(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-08
(45)【発行日】2024-11-18
(54)【発明の名称】実スケール奥行算出装置、実スケール奥行算出方法、および実スケール奥行算出プログラム
(51)【国際特許分類】
G01C 3/06 20060101AFI20241111BHJP
G01B 11/00 20060101ALI20241111BHJP
G06T 7/55 20170101ALI20241111BHJP
G06T 7/00 20170101ALI20241111BHJP
【FI】
G01C3/06 120Z
G01B11/00 H
G06T7/55
G06T7/00 350C
(21)【出願番号】P 2021163567
(22)【出願日】2021-10-04
【審査請求日】2024-02-26
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】川崎 敦史
【審査官】國田 正久
(56)【参考文献】
【文献】特開2019-049457(JP,A)
【文献】特開2019-011971(JP,A)
【文献】特開2019-124537(JP,A)
【文献】特開2018-179911(JP,A)
【文献】特開2020-148483(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 3/06
G01B 11/00
G06T 7/55
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
移動体に搭載された撮影部から撮影時刻の異なる複数の撮影画像を取得する撮影画像取得部と、
前記撮影画像から不定スケール奥行情報を導出する不定スケール奥行導出部と、
複数の前記撮影画像の各々の撮影時の前記撮影部の実スケール位置姿勢情報を取得する位置姿勢取得部と、
複数の前記撮影画像、前記不定スケール奥行情報、および前記実スケール位置姿勢情報から、幾何的整合性に基づいて実スケール奥行情報を導出する実スケール奥行導出部と、
を備える実スケール奥行算出装置。
【請求項2】
前記実スケール奥行導出部は、
複数の前記撮影画像、前記不定スケール奥行情報、および前記実スケール位置姿勢情報を用いて、前記不定スケール奥行情報を前記実スケール奥行情報に変換するためのスケール変換値を算出するスケール変換値算出部と、
前記不定スケール奥行情報に前記スケール変換値を乗算した乗算結果を前記実スケール奥行情報として算出するスケール変換部と、
を有する請求項1に記載の実スケール奥行算出装置。
【請求項3】
前記スケール変換値算出部は、
複数の前記撮影画像に含まれる基準時刻に撮影された第1撮影画像および対象時刻に撮影された第2撮影画像と、
前記基準時刻の前記第1撮影画像から導出された前記不定スケール奥行情報である第1不定スケール奥行情報と、
前記基準時刻の前記撮影部の前記実スケール位置姿勢情報である第1実スケール位置姿勢情報および前記対象時刻の前記撮影部の前記実スケール位置姿勢情報である第2実スケール位置姿勢情報と、から、
前記第1撮影画像と前記第2撮影画像との間で対応する座標点の対に基づき、前記不定スケール奥行情報に乗算する変数であるスケール変換変数を変化させて前記座標点の対の幾何的整合性が最大となる前記スケール変換変数を、前記スケール変換値として算出する、
請求項2に記載の実スケール奥行算出装置。
【請求項4】
前記スケール変換値算出部は、
前記第1撮影画像上の座標点である第1座標点を、前記第1不定スケール奥行情報、前記第1実スケール位置姿勢情報、前記第2実スケール位置姿勢情報、および前記スケール変換変数を用いて前記第2撮影画像上に投影した、前記第1座標点に対応する座標点である第2座標点と、前記第1座標点と、の一致度が最大となる前記スケール変換変数を前記スケール変換値として算出する、
請求項3に記載の実スケール奥行算出装置。
【請求項5】
前記スケール変換値算出部は、
前記第1不定スケール奥行情報、前記第1実スケール位置姿勢情報、前記第2実スケール位置姿勢情報、および前記スケール変換変数を用いて、前記第1撮影画像を前記対象時刻の前記第2実スケール位置姿勢情報によって表される実スケール位置姿勢の前記撮影部で撮影されたワーピング画像に変換し、
前記ワーピング画像に含まれる座標点と前記第2撮影画像に含まれる該座標点と同じ座標の座標点との一致度が最大となる前記スケール変換変数を、前記スケール変換値として算出する、
請求項3に記載の実スケール奥行算出装置。
【請求項6】
前記スケール変換値算出部は
前記第1撮影画像と前記第2撮影画像との間で同じ対象物上の対応する座標点の対である対応点、前記第1実スケール位置姿勢情報、および前記第2実スケール位置姿勢情報から、三角測量により前記対応点によって示される前記対象物上の実スケール点の実スケール三次元位置座標を導出し、
前記第1不定スケール奥行情報から導出される前記対応点の不定スケール三次元位置座標に前記スケール変換変数を乗算した不定スケール乗算三次元位置座標と、前記実スケール三次元位置座標と、の一致度が最大となる前記スケール変換変数を前記スケール変換値として算出する、
請求項3に記載の実スケール奥行算出装置。
【請求項7】
前記一致度は、
輝度差、特徴量記述子から得られる特徴ベクトルの差、または距離、が小さいほど大きい値である、
請求項4または請求項5に記載の実スケール奥行算出装置。
【請求項8】
前記一致度は、三次元座標間の距離の差または奥行の差が小さいほど大きい値である、
請求項6に記載の実スケール奥行算出装置。
【請求項9】
前記スケール変換変数は、
所定範囲内で任意の値をとる変数、
前記一致度を目的関数とした最小化問題の解、
または、
前記撮影部の不定スケール設置高さに対する、変数である前記撮影部の実スケール設置高さの比率、によって表される、
請求項4~請求項8の何れか1項に記載の実スケール奥行算出装置。
【請求項10】
前記スケール変換値算出部は、
前記撮影画像に含まれる移動体領域以外の領域内の前記座標点を用いる、
請求項3~請求項9の何れか1項に記載の実スケール奥行算出装置。
【請求項11】
前記スケール変換値算出部は、
前記撮影画像取得部で取得された複数の前記撮影画像の内、撮影時刻間の前記撮影部の移動量が閾値以上の2つの前記撮影画像を、前記第1撮影画像および前記第2撮影画像として用いる、
請求項3~請求項10の何れか1項に記載の実スケール奥行算出装置。
【請求項12】
前記位置姿勢取得部は、
車両に搭載された外界センサおよび内界センサの少なくとも一方から、前記実スケール位置姿勢情報を取得する、
請求項1~請求項11の何れか1項に記載の実スケール奥行算出装置。
【請求項13】
前記不定スケール奥行導出部は、
ニューラルネットワークまたはSLAMを用いた幾何的手法によって、前記撮影画像から前記不定スケール奥行情報を導出する、
請求項1~請求項12の何れか1項に記載の実スケール奥行算出装置。
【請求項14】
移動体に搭載された撮影部から撮影時刻の異なる複数の撮影画像を取得する撮影画像取得ステップと、
前記撮影画像から不定スケール奥行情報を導出する不定スケール奥行導出ステップと、
複数の前記撮影画像の各々の撮影時の前記撮影部の実スケール位置姿勢情報を取得する位置姿勢取得ステップと、
複数の前記撮影画像、前記不定スケール奥行情報、および前記実スケール位置姿勢情報から、幾何的整合性に基づいて実スケール奥行情報を導出する実スケール奥行導出ステップと、
を含む実スケール奥行算出方法。
【請求項15】
前記実スケール奥行導出ステップは、
複数の前記撮影画像、前記不定スケール奥行情報、および前記実スケール位置姿勢情報を用いて、前記不定スケール奥行情報を前記実スケール奥行情報に変換するためのスケール変換値を算出するスケール変換値算出ステップと、
前記不定スケール奥行情報に前記スケール変換値を乗算した乗算結果を前記実スケール奥行情報として算出するスケール変換ステップと、
を含む、請求項14に記載の実スケール奥行算出方法。
【請求項16】
前記スケール変換値算出ステップは、
複数の前記撮影画像に含まれる基準時刻に撮影された第1撮影画像および対象時刻に撮影された第2撮影画像と、
前記基準時刻の前記第1撮影画像から導出された前記不定スケール奥行情報である第1不定スケール奥行情報と、
前記基準時刻の前記撮影部の前記実スケール位置姿勢情報である第1実スケール位置姿勢情報および前記対象時刻の前記撮影部の前記実スケール位置姿勢情報である第2実スケール位置姿勢情報と、から、
前記第1撮影画像と前記第2撮影画像との間で対応する座標点の対に基づき、前記不定スケール奥行情報に乗算する変数であるスケール変換変数を変化させて前記座標点の対の幾何的整合性が最大となる前記スケール変換変数を前記スケール変換値として算出する、
請求項15に記載の実スケール奥行算出方法。
【請求項17】
前記スケール変換値算出ステップは、
前記第1撮影画像上の座標点である第1座標点を、前記第1不定スケール奥行情報、前記第1実スケール位置姿勢情報、前記第2実スケール位置姿勢情報、および前記スケール変換変数を用いて前記第2撮影画像上に投影した、前記第1座標点に対応する座標点である第2座標点と、前記第1座標点と、の一致度が最大となる前記スケール変換変数を前記スケール変換値として算出する、
請求項16に記載の実スケール奥行算出方法。
【請求項18】
前記スケール変換値算出ステップは、
前記第1不定スケール奥行情報、前記第1実スケール位置姿勢情報、前記第2実スケール位置姿勢情報、および前記スケール変換変数を用いて、前記第1撮影画像を前記対象時刻の前記第2実スケール位置姿勢情報によって表される実スケール位置姿勢の前記撮影部で撮影されたワーピング画像に変換し、
前記ワーピング画像に含まれる座標点と前記第2撮影画像に含まれる該座標点と同じ座標の座標点との一致度が最大となる前記スケール変換変数を前記スケール変換値として算出する、
請求項16に記載の実スケール奥行算出方法。
【請求項19】
前記スケール変換値算出ステップは
前記第1撮影画像と前記第2撮影画像との間で同じ対象物上の対応する座標点の対である対応点、前記第1実スケール位置姿勢情報、および前記第2実スケール位置姿勢情報から、三角測量により前記対応点によって示される前記対象物上の実スケール点の実スケール三次元位置座標を導出し、
前記第1不定スケール奥行情報から導出される前記対応点の不定スケール三次元位置座標に前記スケール変換変数を乗算した不定スケール乗算三次元位置座標と、前記実スケール三次元位置座標と、の一致度が最大となる前記スケール変換変数を前記スケール変換値として算出する、
請求項16に記載の実スケール奥行算出方法。
【請求項20】
前記一致度は、
輝度差、特徴量記述子から得られる特徴ベクトルの差、または距離、が小さいほど大きい値である、
請求項17または請求項18に記載の実スケール奥行算出方法。
【請求項21】
前記一致度は、三次元座標間の距離の差または奥行の差が小さいほど大きい値である、
請求項19に記載の実スケール奥行算出方法。
【請求項22】
前記スケール変換変数は、
所定範囲内で任意の値をとる変数、
前記一致度を目的関数とした最小化問題の解、
または、
前記撮影部の不定スケール設置高さに対する、変数である前記撮影部の実スケール設置高さの比率、によって表される、
請求項17~請求項21の何れか1項に記載の実スケール奥行算出方法。
【請求項23】
前記スケール変換値算出ステップは、
前記撮影画像に含まれる移動体領域以外の領域内の前記座標点を用いる、
請求項16~請求項22の何れか1項に記載の実スケール奥行算出方法。
【請求項24】
前記スケール変換値算出ステップは、
前記撮影画像取得ステップで取得された複数の前記撮影画像の内、撮影時刻間の前記撮影部の移動量が閾値以上の2つの前記撮影画像を、前記第1撮影画像および前記第2撮影画像として用いる、
請求項16~請求項23の何れか1項に記載の実スケール奥行算出方法。
【請求項25】
移動体に搭載された撮影部から撮影時刻の異なる複数の撮影画像を取得する撮影画像取得ステップと、
前記撮影画像から不定スケール奥行情報を導出する不定スケール奥行導出部と、
複数の前記撮影画像の各々の撮影時の前記撮影部の実スケール位置姿勢情報を取得する位置姿勢取得ステップと、
複数の前記撮影画像、前記不定スケール奥行情報、および前記実スケール位置姿勢情報から、幾何的整合性に基づいて実スケール奥行情報を導出する実スケール奥行導出ステップと、
をコンピュータに実行させるための実スケール奥行算出プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、実スケール奥行算出装置、実スケール奥行算出方法、および実スケール奥行算出プログラムに関する。
【背景技術】
【0002】
自動車の安全且つ快適な自動運転および走行支援、並びにドローンやロボットなどの自立移動の実現には、物体までの距離を表す奥行情報として、実空間すなわち実寸大の三次元空間上のスケールである実スケール奥行情報を用いる必要がある。実スケール奥行情報を用いることで、障害物を避けた走行経路の生成などを行うことが可能となる。
【0003】
物体までの実スケール奥行情報を算出する方法として、車両に搭載されたカメラで撮影された撮影画像を用いる方法が開示されている(例えば、非特許文献1および特許文献1等参照)。非特許文献1では、撮影画像から得られる相対的なスケールの奥行である不定スケール奥行情報から算出した路面領域の三次元平面を用いて、不定スケールのカメラ設置高さを導出する。そして、非特許文献1には、導出した不定スケールのカメラ設置高さと予め実測されたカメラ設置高さとの比を不定スケール奥行情報に乗算することで、実スケール奥行情報を算出する方法が開示されている。特許文献1には、Visual SLAM(Simultaneous Localization and Mapping)とGNSS(Global Navigation Satellite System)とを組合せることで、カメラ間の不定スケールの位置姿勢を実スケールに変換することが開示されている。そして、特許文献1では、該変換に用いた値と、位置姿勢と同じスケールのカメラ間の不定スケールの奥行情報とを用いて、実スケール奥行情報を取得する方法が開示されている。
【0004】
しかし、非特許文献1の技術では、カメラの設置高さの実測値が不明な環境、または飛翔体などに搭載されることでカメラの設置高さの実測値が変動する環境では、実スケール奥行情報を導出することは困難であった。また、特許文献1の技術では、カメラ間の不定スケールの位置姿勢と、カメラ間の不定スケールの奥行情報とは、同じスケールである必要がある。このため、位置姿勢と奥行情報とを異なる手法で取得する場合、実スケール奥行情報を導出することは困難であった。すなわち、従来技術では、撮影画像から実スケール奥行情報を導出することが困難となる場合があった。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【文献】山口晃一郎ら、「車載単眼カメラによる車両前方の障害物検出」、情報処理学会、研究報告コンピュータビジョンとイメージメディア(CVIM)、69頁-76頁、2005.
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明が解決しようとする課題は、撮影画像から実スケール奥行情報を導出することができる、実スケール奥行算出装置、実スケール奥行算出方法、および実スケール奥行算出プログラムを提供することである。
【課題を解決するための手段】
【0008】
実施形態の実スケール奥行算出装置は、撮影画像取得部と、不定スケール奥行導出部と、位置姿勢取得部と、実スケール奥行導出部と、を備える。撮影画像取得部は、移動体に搭載された撮影部から撮影時刻の異なる複数の撮影画像を取得する。不定スケール奥行導出部は、前記撮影画像から不定スケール奥行情報を導出する。位置姿勢取得部は、複数の前記撮影画像の各々の撮影時の前記撮影部の実スケール位置姿勢情報を取得する。実スケール奥行導出部は、複数の前記撮影画像、前記不定スケール奥行情報、および前記実スケール位置姿勢情報から、幾何的整合性に基づいて実スケール奥行情報を導出する。
【図面の簡単な説明】
【0009】
【
図1】実スケール奥行算出装置を搭載した車両の模式図。
【
図2】実スケール奥行導出部の機能的構成の説明図。
【
図3】第2撮影画像への投影点を用いた探索方法の説明図。
【
図5】不定スケール設置高さに対する実スケール設置高さの比率の説明図。
【
図6】撮影画像間の三次元位置座標を用いた探索方法の説明図。
【
図8】投影点を用いた探索方法によるスケール変化値算出処理の流れのフローチャート。
【
図9】ワーピング画像を用いた探索方法によるスケール変化値算出処理の流れのフローチャート。
【
図10】不定スケール設置高さに対する実スケール設置高さの比率を用いる場合の処理の流れのフローチャート。
【
図11】撮影画像間の三次元位置座標を用いた探索方法によるスケール変化値算出処理の流れのフローチャート。
【発明を実施するための形態】
【0010】
以下に添付図面を参照して、実スケール奥行算出装置、実スケール奥行算出方法、および実スケール奥行算出プログラムを詳細に説明する。
【0011】
図1は、本実施形態の実スケール奥行算出装置10を搭載した車両1の一例の模式図である。
【0012】
車両1は、移動体の一例である。移動体とは、移動可能な対象である。移動体は、例えば、車両1、歩行者、ロボット、飛翔体、船舶、などである。ロボットまたは飛翔体には、遠隔操縦によって飛行または自律飛行するドローンが含まれる。車両1は、例えば、自動二輪車、自動四輪車、自転車などである。本実施形態では、移動体が車両1である形態を一例として説明する。また、本実施形態では、車両1が自動四輪車である場合を一例として説明する。車両1は、例えば、人による運転操作を介して走行する移動体、および人による運転操作を介さずに自律走行可能な移動体の何れであってもよい。
【0013】
車両1は、実スケール奥行算出装置10と、出力部20と、外界センサ22と、内界センサ24と、を備える。実スケール奥行算出装置10、出力部20、外界センサ22、および内界センサ24は、バス26などを介して通信可能に接続されている。
【0014】
出力部20は、各種の情報を出力する。出力部20は、通信部、表示部、およびスピーカなどを含む。通信部は、情報を他の情報処理装置などとの間で送受信する。表示部は、各種の情報を表示するディスプレイ、投影装置などである。スピーカは、音を出力する。
【0015】
外界センサ22および内界センサ24は、車両1の環境を観測するセンサである。
【0016】
外界センサ22は、車両1の外界の環境を観測する。外界センサ22は、例えば、撮影部22Aと、位置センサ22Bと、を含む。
【0017】
撮影部22Aは、撮影によって撮影画像データを得る。以下では、撮影画像データを、撮影画像と称して説明する。撮影部22Aは、例えば、単眼カメラである。撮影画像は、白黒画像およびカラー画像の何れであってもよい。
【0018】
本実施形態では、撮影部22Aは、少なくとも車両1の走行方向の前方の領域を撮影可能となるように、設置位置、撮影方向、および撮影画角が予め調整されている。なお、撮影部22Aの設置位置は限定されない。撮影部22Aは、撮影によって時系列に沿って連続する複数の撮影画像を得る。
【0019】
車両1には、複数の撮影部22Aが設けられた形態であってもよい。本実施形態では、1台の撮影部22Aが車両1に搭載された形態を一例として説明する。
【0020】
位置センサ22Bは、車両1の位置を検出する。位置センサ22Bは、例えば、GNSS(Global Navigation Satellite System)、GPS(Global Positioning System)などである。
【0021】
内界センサ24は、車両1の内界の環境を観測する。内界センサ24は、車両1の角速度、加速度、速度、姿勢、走行方向、などを観測する。内界センサ24は、例えば、慣性計測装置(IMU:Inertial Measurement Unit)、加速度センサ、速度センサ、ホイールエンコーダ、ロータリエンコーダ、などである。IMUは、移動体の三軸加速度および三軸角速度を観測する。
【0022】
実スケール奥行算出装置10は、撮影画像から実スケール奥行情報を算出する装置である。実スケール奥行算出装置10は、撮影画像から導出した不定スケール奥行情報などを用いて、実スケール奥行情報を算出する。
【0023】
奥行情報とは、三次元空間の奥行の情報であり、撮影部22Aから対象物までの距離を表す情報である。対象物は、被写体の一例である。
【0024】
実スケールとは、実空間すなわち実寸大の三次元空間上のスケールを意味する。実スケール奥行情報は、実スケールの奥行を表す情報である。詳細には、実スケール奥行情報は、実寸大の三次元空間における撮影部22Aから対象物までの距離を表す情報である。具体的には、実スケール奥行情報は、メートルなどの実世界の単位で得られる、撮影部22Aから対象物までの距離を表す情報である。
【0025】
不定スケールとは、相対的なスケールを意味する。不定スケール奥行情報は、不定スケールの奥行を表す情報である。詳細には、不定スケール奥行情報は、撮影部22Aから対象物までの相対距離を表す情報である。具体的には、不定スケール奥行情報は、撮影部22Aから対象物までの、基準とする距離に対する相対的な比率で表される。
【0026】
実スケール奥行算出装置10は、記憶部12と、処理部14と、を備える。記憶部12、処理部14、出力部20、外界センサ22、および内界センサ24は、バス26などを介して通信可能に接続されている。
【0027】
記憶部12、出力部20、外界センサ22、および内界センサ24は、有線または無線で処理部14に通信可能に接続された構成であればよい。記憶部12、出力部20、外界センサ22、および内界センサ24の少なくとも一つと、処理部14とを、ネットワークを介して接続してもよい。
【0028】
記憶部12は、各種のデータを記憶する。記憶部12は、実スケール奥行算出装置10の外部に設けられた記憶装置であってもよい。また、記憶部12および処理部14に含まれる1または複数の機能部の少なくとも1つを、ネットワークなどを介して実スケール奥行算出装置10に通信可能に接続された外部の情報処理装置に搭載した構成としてもよい。すなわち、記憶部12および処理部14に含まれる1または複数の機能部の少なくとも1つを、車両1に対して通信可能に接続された車両1の外部の情報処理装置などに搭載した形態であってもよい。
【0029】
処理部14は、実スケール奥行算出装置10において情報処理を実行する。処理部14は、撮影画像取得部14Aと、不定スケール奥行導出部14Bと、位置姿勢取得部14Cと、実スケール奥行導出部14Dと、を含む。実スケール奥行導出部14Dは、スケール変換値算出部14Eと、スケール変換部14Fと、を含む。
【0030】
撮影画像取得部14A、不定スケール奥行導出部14B、位置姿勢取得部14C、実スケール奥行導出部14D、スケール変換値算出部14E、およびスケール変換部14Fは、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のICなどのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
【0031】
撮影画像取得部14Aは、車両1に搭載された撮影部22Aから撮影時刻の異なる複数の撮影画像を取得する。なお、撮影部22Aは、時系列に沿って順次撮影した撮影画像を記憶部12に記憶してもよい。この場合、撮影画像取得部14Aは、記憶部12から撮影画像を取得すればよい。
【0032】
不定スケール奥行導出部14Bは、撮影画像から不定スケール奥行情報を導出する。詳細には、不定スケール奥行導出部14Bは、撮影画像に含まれる画素領域ごとに、不定スケール奥行情報を導出する。画素領域は、1画素の領域、隣接する複数画素から成る領域、の何れであってもよい。本実施形態では、画素領域が1画素の領域である形態を一例として説明する。このため、以下では、画素領域を、単に画素と称して説明する場合がある。
【0033】
不定スケール奥行導出部14Bは、公知の方法で撮影画像から不定スケール奥行情報を導出する。不定スケール奥行導出部14Bは、時系列に沿って順次撮影される複数の撮影画像の各々から不定スケール奥行情報を導出する。このため、不定スケール奥行導出部14Bは、撮影画像の撮影時刻の各々に対応する不定スケール奥行情報を導出する。
【0034】
例えば、不定スケール奥行導出部14Bは、ニューラルネットワークまたはSLAM(Simultaneous Localization and Mapping)を用いた幾何的手法によって、撮影画像から不定スケール奥行情報を導出する。
【0035】
詳細には、例えば、不定スケール奥行導出部14Bは、撮影画像をニューラルネットワークに入力し、該ニューラルネットワークからの出力として画素ごとの不定スケール奥行情報を導出する。また、例えば、不定スケール奥行導出部14Bは、複数の撮影画像間の対応する画素を用いた対応画素ベースのVisual SLAMにより不定スケール奥行情報を導出する。また、例えば、不定スケール奥行導出部14Bは、Visual SLAMにより複数の撮影画像間の対応する画素の画素値を直接用いた直接法ベースのVisual SLAMにより不定スケール奥行情報を導出する。
【0036】
位置姿勢取得部14Cは、複数の撮影画像の各々の撮影時の撮影部22Aの実スケール位置姿勢情報を取得する。車両1の走行状況に伴い、車両1に搭載された撮影部22Aの位置姿勢は時系列に沿って変化する。位置姿勢取得部14Cは、車両1の走行状況に伴って時系列に沿って変化する実スケール位置姿勢情報を順次取得する。
【0037】
実スケール位置姿勢情報とは、実空間すなわち実寸大の三次元空間における撮影部22Aの位置および姿勢を表す情報である。実空間の三次元空間における撮影部22Aの位置は、例えば、実空間の三次元空間における位置座標によって表される。実空間の三次元空間における撮影部22Aの姿勢は、例えば、撮影部22Aに設けられたレンズの光軸の姿勢を表す。
【0038】
位置姿勢取得部14Cは、公知の方法で、実スケール位置姿勢情報を取得すればよい。例えば、位置姿勢取得部14Cは、外界センサ22および内界センサ24の少なくとも一方から、実スケール位置姿勢情報を取得する。すなわち、位置姿勢取得部14Cは、外界センサ22および内界センサ24によって時系列に沿って順次観測される観測結果であるセンサ情報を用いて実スケール位置姿勢情報を取得する。このため、位置姿勢取得部14Cは、撮影時刻の各々に対応する実スケール位置姿勢情報を取得する。
【0039】
詳細には、例えば、位置姿勢取得部14Cは、GNSSまたはIMUから得られるセンサ情報から、GNSSまたはIMUの座標系におけるGNSSまたはIMUの実スケールの位置姿勢情報を算出する。そして、位置姿勢取得部14Cは、撮影部22Aの設置位置とGNSSまたはIMUの設置位置とから得られる座標系の変換行列など用いて、GNSSまたはIMUの実スケールの位置姿勢情報から撮影部22Aの実スケール位置姿勢情報を算出する。
【0040】
また、例えば、位置姿勢取得部14Cは、ホイールエンコーダを介して撮影部22Aの実スケール位置姿勢情報を取得してもよい。また、位置姿勢取得部14Cは、撮影画像をニューラルネットワークに入力し、該ニューラルネットワークからの出力として撮影部22Aの不定スケール位置姿勢情報を取得してもよい。そして、位置姿勢取得部14Cは、取得した不定スケール位置姿勢情報を、GNSSおよびホイールエンコーダのセンサ情報を用いて、実スケール位置姿勢情報に変換してもよい。
【0041】
また、例えば、位置姿勢取得部14Cは、上述した対応画素ベースのVisual SLAMまたは直接法ベースのVisual SLAMにより撮影部22Aの不定スケール位置姿勢情報を導出する。そして、位置姿勢取得部14Cは、導出した不定スケール位置姿勢情報を、GNSSおよびホイールエンコーダのセンサ情報を用いて、実スケール位置姿勢情報に変換してもよい。また、位置姿勢取得部14Cは、撮影画像内に映り込むサイズが既知であるマーカ等を用いて、撮影部22Aの実スケール位置姿勢情報を導出してもよい。
【0042】
実スケール奥行導出部14Dは、複数の撮影画像、不定スケール奥行情報、および実スケール位置姿勢情報から、幾何的整合性に基づいて、撮影画像の実スケール奥行情報を導出する。幾何的整合性とは、実スケールの三次元空間の座標系と、不定スケールの三次元空間の座標系と、の三次元的な整合性を意味する。
【0043】
図2は、実スケール奥行導出部14Dの機能的構成の一例の説明図である。実スケール奥行導出部14Dは、スケール変換値算出部14Eと、スケール変換部14Fと、を有する。
【0044】
スケール変換値算出部14Eは、複数の撮影時刻ごとの撮影画像30、複数の撮影時刻ごとの不定スケール奥行情報D、および複数の撮影時刻ごとの実スケール位置姿勢情報Vを、撮影画像取得部14A、不定スケール奥行導出部14B、および位置姿勢取得部14Cから受付ける。
【0045】
スケール変換値算出部14Eは、複数の撮影画像30、不定スケール奥行情報D、および実スケール位置姿勢情報Vを用いて、幾何的整合性が最大となるスケール変換値Sを算出する。スケール変換値Sは、不定スケール奥行情報Dを実スケール奥行情報Drに変換するために用いる変換値である。
【0046】
スケール変換部14Fは、不定スケール奥行情報Dにスケール変換値算出部14Eで算出されたスケール変換値Sを乗算した乗算結果を、実スケール奥行情報Drとして算出する。すなわち、スケール変換部14Fは、以下式(1)を用いて実スケール奥行情報Drを算出する。
【0047】
Dr=D×S ・・・・式(1)
【0048】
式(1)中、Drは、実スケール奥行情報Drを表す。Dは、不定スケール奥行情報Dを表す。Sは、スケール変換値Sを表す。
【0049】
スケール変換値算出部14Eおよびスケール変換部14Fによるこれらの処理によって、実スケール奥行導出部14Dは撮影画像30から実スケール奥行情報Drを導出する。
【0050】
スケール変換値算出部14Eによる、幾何的整合性が最大となるスケール変換値Sの算出処理について詳細に説明する。
【0051】
スケール変換値算出部14Eは、撮影画像取得部14Aから受付けた複数の撮影画像30の内、基準時刻T1に撮影された第1撮影画像30Aと、対象時刻T2に撮影された第2撮影画像30Bと、を取得する。
【0052】
基準時刻T1は、撮影画像30に含まれる複数の撮影画像30の各々の撮影時刻の内、任意の1つの撮影時刻であればよい。対象時刻T2は、基準時刻T1より時系列方向の下流側の他の撮影時刻であればよい。
【0053】
なお、スケール変換値算出部14Eは、撮影画像取得部14Aで取得された複数の撮影画像30の内、撮影時刻間の撮影部22Aの移動量が閾値以上の2つの撮影画像30を、第1撮影画像30Aおよび第2撮影画像30Bとして用いる事が好ましい。
【0054】
すなわち、スケール変換値算出部14Eは、撮影時刻間の撮影部22Aの移動量が閾値以上の2つの撮影時刻を、基準時刻T1および対象時刻T2として用いることが好ましい。スケール変換値算出部14Eは、撮影時刻の各々の実スケール位置姿勢情報Vから、2つの撮影時刻間の撮影部22Aの移動量を算出し、移動量が閾値以上の2つの撮影時刻を基準時刻T1および対象時刻T2として用いればよい。移動量の閾値には、幾何的整合性をとることの可能な値を予め定めればよい。また、移動量の閾値は、ユーザによる操作指示などに応じて変更可能としてもよい。
【0055】
スケール変換値算出部14Eは、更に、基準時刻T1の第1撮影画像30Aから導出された不定スケール奥行情報Dである第1不定スケール奥行情報D1を取得する。
【0056】
また、スケール変換値算出部14Eは、基準時刻T1の撮影部22Aの実スケール位置姿勢情報Vである第1実スケール位置姿勢情報V1と、対象時刻T2の撮影部22Aの実スケール位置姿勢情報Vである第2実スケール位置姿勢情報V2と、を取得する。
【0057】
そして、スケール変換値算出部14Eは、第1撮影画像30A、第2撮影画像30B、第1不定スケール奥行情報D1、第1実スケール位置姿勢情報V1、および第2実スケール位置姿勢情報V2から、第1撮影画像30Aと第2撮影画像30Bとの間で対応する座標点の対を1組以上特定する。対応する座標点の対には、例えば、第1撮影画像30Aと第2撮影画像30Bとの間における、画素値の差が閾値未満の画素の対を用いればよい。そして、スケール変換値算出部14Eは、スケール変換変数S’を変化させて座標点の対の幾何的整合性が最大となるスケール変換変数S’を、スケール変換値Sとして算出する。すなわち、スケール変換値算出部14Eは、幾何的整合性が最大となるスケール変換変数S’を探索することで、スケール変換値Sを算出する。
【0058】
スケール変換変数S’は、スケール変換値Sの変数である。言い換えると、スケール変換変数S’は、実数空間の中で任意の値をとる変数である。スケール変換変数S’には、上限および下限の少なくとも一方を設定することで規定される所定範囲内の変数を用いてよい。
【0059】
なお、スケール変換値算出部14Eがスケール変換値Sの特定に用いる座標点の対は、1組以上であればよく、1組に限定されない。
【0060】
また、スケール変換値算出部14Eは、撮影画像30に含まれる移動体の像を表す移動体領域以外の領域内の座標点を、スケール変換変数S’の探索時に用いる座標点として用いる事が好ましい。撮影画像30に含まれる移動体領域以外の領域内に座標点を設定することで、移動体領域に座標点を設定した場合に比べて幾何的整合性がとりやすく、スケール変換値Sの算出精度の向上を図ることができる。撮影画像30に含まれる移動体領域の特定には、公知の方法を用いればよい。例えば、公知の物体検出器により撮影画像30に含まれる移動体領域を検出すればよい。
【0061】
幾何的整合性が最大となるスケール変換変数S’の探索方法は限定されない。
【0062】
例えば、スケール変換値算出部14Eは、第2撮影画像30Bへの投影点を用いた探索方法、ワーピング画像を用いた探索方法、撮影画像30間の三次元位置座標を用いた探索方法、などの探索方法を用いる。
【0063】
各探索方法について詳細に説明する。
【0064】
まず、第2撮影画像30Bへの投影点を用いた探索方法について説明する。
【0065】
図3は、第2撮影画像30Bへの投影点を用いた探索方法の一例の説明図である。
【0066】
スケール変換値算出部14Eは、基準時刻T1の第1撮影画像30A、対象時刻T2の第2撮影画像30B、基準時刻T1の第1不定スケール奥行情報D1、基準時刻T1の第1実スケール位置姿勢情報V1、および対象時刻T2の第2実スケール位置姿勢情報V2を取得する。
【0067】
上述したように、不定スケール奥行導出部14Bは、撮影画像30に含まれる画素ごとに、不定スケール奥行情報Dを導出する。このため、スケール変換値算出部14Eは、基準時刻T1の第1撮影画像30Aに含まれる画素ごとの第1不定スケール奥行情報D1を規定した不定スケール奥行画像32を取得することとなる。
【0068】
スケール変換値算出部14Eは、取得したこれらの情報およびスケール変換変数S’を用いて、スケール変換変数S’を変化させながら、第1撮影画像30A上の座標点Pである第1座標点P1を第2撮影画像30B上に投影した投影点である第2座標点P2を算出する。
【0069】
詳細には、スケール変換値算出部14Eは、式(2)を用いて第1座標点P1を第2撮影画像30Bに投影した第2座標点P2を算出する。
【0070】
P2=KT1→2S’D1(P1)K-1P1 ・・・・式(2)
【0071】
式(2)中、P1は、第1撮影画像30Aの画素である第1座標点P1の座標(同次座標)を表す。P2は、第1座標点P1を第2撮影画像30B上に投影した投影点である第2座標点P2の座標(同次座標)を表す。D1は、第1不定スケール奥行情報D1を表す。D1(P1)は、第1座標点P1の第1不定スケール奥行情報D1を表す。T1→2は、第1実スケール位置姿勢情報V1から第2実スケール位置姿勢情報V2への実スケールの位置姿勢の変換行列を表す。Kは、撮影部22Aの内部パラメータである。
【0072】
式(2)によって表されるように、スケール変換値算出部14Eは、第1座標点P1の座標にK-1を乗算することで、第1座標点P1の座標を基準時刻T1の正規化座標系の座標に変換する。そして、スケール変換値算出部14Eは、更に、S’D1(P1)を乗算することで、基準時刻T1のカメラ座標系の座標に変換する。スケール変換値算出部14Eは、更にT1→2を乗算することで、対象時刻T2のカメラ座標系の座標に変換する。スケール変換値算出部14Eは、更にKを乗算することで、第1座標点P1を対象時刻T2の第2撮影画像30Bに投影した投影点である第2座標点P2の座標を算出する。
【0073】
第1実スケール位置姿勢情報V1、第2実スケール位置姿勢情報V2、および第1不定スケール奥行情報D1がスケールも含めて正しい値である場合を想定する。この場合、第1座標点P1と、該第1座標点P1を第2撮影画像30Bに投影した投影点である第2座標点P2と、の座標は同じ値となるはずである。
【0074】
そこで、スケール変換値算出部14Eは、スケール変換変数S’を変化させながら第1撮影画像30A上の第1座標点P1を第2撮影画像30B上に投影する。そして、スケール変換値算出部14Eは、第1座標点P1と投影した投影点である第2座標点P2との一致度が最も高くなるときのスケール変換変数S’をスケール変換値Sとして算出する。
【0075】
詳細には、スケール変換値算出部14Eは、スケール変換変数S’を所定範囲内で順次変更し、スケール変換変数S’を変更するごとに、上記式(2)を用いて第2座標点P2の座標を算出する。
【0076】
このため、例えば、
図3に示すように、第1撮影画像30A上の第1座標点P1の一例である第1座標点P1aに対応する投影点として、第2撮影画像30B上には、互いに異なる複数のスケール変換変数S’の各々を用いて算出された複数の第2座標点P2a1~第2座標点P2anが投影される。なお、nは1以上の整数であり、第1座標点P1aに対して互いに異なるスケール変換変数S’を用いて算出された複数の投影点の数に相当する。また、例えば、第1撮影画像30A上の第1座標点P1の一例である第1座標点P1bに対応する投影点として、第2撮影画像30B上には、互いに異なる複数のスケール変換変数S’の各々を用いて算出された複数の第2座標点P2b1~第2座標点P2bmが投影される。なお、mは1以上の整数であり、第1座標点P1bに対して互いに異なるスケール変換変数S’を用いて算出された複数の投影点の数に相当する。
【0077】
そして、スケール変換値算出部14Eは、第1座標点P1と、第1座標点P1に対してスケール変換変数S’を順次変更して第2撮影画像30B上に投影することで得られた複数の第2座標点P2の各々と、の一致度を算出する。
【0078】
第1座標点P1と第2座標点P2との一致度には、輝度差、特徴量記述子から得られる特徴ベクトルの差、または距離を用いればよい。このため、第1座標点P1と第2座標点P2との一致度は、輝度差、特徴量記述子から得られる特徴ベクトルの差、または距離、が小さいほど大きい値を示す。
【0079】
具体的には、例えば、スケール変換値算出部14Eは、第1座標点P1と第2座標点P2との輝度差の絶対値の値が小さいほど、大きい値を表す一致度を算出する。また、例えば、スケール変換値算出部14Eは、第1座標点P1および第2座標点P2の各々について、SIFT(Scale-invariant feature transform)やSURF(Speeded Up Robust Features)などのアルゴリズムの特徴量記述子から得られる特徴ベクトルの差が小さいほど、大きい値を表す一致度を算出する。また、例えば、スケール変換値算出部14Eは、第1座標点P1と第2座標点P2との距離が小さいほど、大きい値を表す一致度を算出する。
【0080】
そして、スケール変換値算出部14Eは、一致度が最大となる第1座標点P1の投影点である第2座標点P2の算出に用いたスケール変換変数S’を、スケール変換値Sとして算出する。
【0081】
このように、スケール変換値算出部14Eは、第2撮影画像30Bへの投影点を用いた探索方法により、スケール変換値Sを算出してよい。
【0082】
次に、ワーピング画像を用いた探索方法について説明する。
【0083】
図4は、ワーピング画像36を用いた探索方法の一例の説明図である。
【0084】
スケール変換値算出部14Eは、基準時刻T1の第1撮影画像30A、対象時刻T2の第2撮影画像30B、基準時刻T1の第1不定スケール奥行情報D1、基準時刻T1の第1実スケール位置姿勢情報V1、および対象時刻T2の第2実スケール位置姿勢情報V2を取得する。上記と同様に、スケール変換値算出部14Eは、基準時刻T1の第1撮影画像30Aに含まれる画素ごとの第1不定スケール奥行情報D1を規定した、不定スケール奥行画像32を取得する。
【0085】
スケール変換値算出部14Eは、取得したこれらの情報およびスケール変換変数S’を用いて、基準時刻T1に撮影された第1撮影画像30Aを、対象時刻T2の第2実スケール位置姿勢情報V2によって表される実スケール位置姿勢の撮影部22Aで撮影されたワーピング画像36に変換する。
【0086】
詳細には、スケール変換値算出部14Eは、第1撮影画像30Aに含まれる複数の画素の各々の座標点ごとに、上記式(2)を用いて対象時刻T2の座標点を算出する。この算出処理であるワーピング処理によって、第1撮影画像30Aに含まれる複数の画素の各々に対応する対象時刻T2の複数の座標点からなるワーピング画像36が生成される。すなわち、スケール変換値算出部14Eは、第1撮影画像30Aをワーピング処理することで、対象時刻T2の時点の実スケール位置姿勢の撮影部22Aで撮影されたワーピング画像36を生成する。
【0087】
第1実スケール位置姿勢情報V1、第2実スケール位置姿勢情報V2、および第1不定スケール奥行情報D1がスケールも含めて正しい値である場合、第2撮影画像30Bとワーピング画像36とは同一の画像となるはずである。すなわち、ワーピング画像36と第2撮影画像30Bとの一致度が最も高いとき、幾何的整合性が最も高く、正しいスケール変換が行えているといえる。
【0088】
そこで、スケール変換値算出部14Eは、スケール変換変数S’を変化させながらワーピング画像36を生成する。詳細には、スケール変換値算出部14Eは、所定範囲内でスケール変換変数S’を変化させながらワーピング処理を繰返し実行することで、互いに異なるスケール変換変数S’の各々に対応する複数のワーピング画像36を算出する。
【0089】
そして、スケール変換値算出部14Eは、ワーピング画像36に含まれる座標点と、第2撮影画像30Bに含まれる該座標点と同じ座標の座標点と、の一致度が最大となるスケール変換変数S’を、スケール変換値Sとして算出する。
【0090】
例えば、
図4に示すように、第1撮影画像30A上の第1座標点P1が、ワーピング処理によってワーピング画像36上の座標点P3の座標に位置された場面を想定する。この場合、スケール変換値算出部14Eは、ワーピング画像36における座標点P3の座標の画素と、第2撮影画像30Bにおける該座標点P3と同じ座標の第2座標点P2の画素と、の一致度を算出する。同様にして、スケール変換値算出部14Eは、ワーピング画像36に含まれる複数の画素の各々について、第2撮影画像30Bに含まれる同じ座標の画素との一致度を算出する。
【0091】
ワーピング画像36に含まれる1または複数の画素、すなわち座標点の各々と、第2撮影画像30Bに含まれる該座標点と同じ座標の座標点と、の一致度には、輝度差、特徴量記述子から得られる特徴ベクトルの差、または距離を用いればよい。すなわち、ワーピング画像36に含まれる座標点と、第2撮影画像30Bに含まれる該座標点と同じ座標の座標点と、の一致度は、輝度差、特徴量記述子から得られる特徴ベクトルの差、または距離、が小さいほど大きい値を示す。
【0092】
なお、スケール変換値算出部14Eは、ワーピング画像36に含まれる全ての画素の各々の座標点と、第2撮影画像30Bに含まれる該座標点と同じ座標の画素である座標点と、の一致度の平均値を、ワーピング画像36と第2撮影画像30Bとの一致度として算出してよい。
【0093】
そして、スケール変換値算出部14Eは、一致度が最大となるワーピング画像36の算出に用いたスケール変換変数S’を、スケール変換値Sとして算出する。
【0094】
このように、スケール変換値算出部14Eは、ワーピング画像36を用いた探索方法により、スケール変換値Sを算出してよい。
【0095】
なお、幾何的整合性が最大となるスケール変換変数S’の探索は、上述した所定範囲内の探索に限定されない。すなわち、スケール変換変数S’は、任意の値をとる変数であればよく、実数空間の中で所定範囲内の任意の値をとる変数に限定されない。例えば、スケール変換変数S’は、上記一致度を目的関数とした最小化問題の解であってよい。この場合、スケール変換値算出部14Eは、一致度を目的関数とした最小化問題の解を求めることで、スケール変換変数S’の探索を行えばよい。
【0096】
また、スケール変換変数S’は、撮影部22Aの不定スケール設置高さに対する、変数である撮影部22Aの実スケール設置高さの比率であってもよい。
【0097】
図5は、撮影部22Aの不定スケール設置高さhに対する撮影部22Aの実スケール設置高さhrの比率の一例の説明図である。
【0098】
撮影部22Aの路面に対する実スケールの高さである実スケール設置高さhrの実測値が得られていない場合がある。しかし、撮影部22Aが車両1に搭載されている場合、実スケール設置高さhrの取りうる値の範囲である値域は、一般的な車両1の車高の範囲内に限定される。実スケール設置高さhrの値域が限定されることで、探索範囲は限定され、局所解に陥ることも少なくなる。
【0099】
そこで、スケール変換値算出部14Eは、第1不定スケール奥行情報D1に基づいて、路面領域の不定スケール三次元平面Rを導出する。スケール変換値算出部14Eは、不定スケール奥行画像32に含まれる複数の画素の各々の第1不定スケール奥行情報D1から、これらの複数の画素の三次元点群を求め、最小二乗法による平面フィッティングなどの手法を用いることで、不定スケール三次元平面Rを導出する。次に、スケール変換値算出部14Eは、不定スケール三次元平面Rを基準とした不定スケールの撮影部22Aの設置高さである不定スケール設置高さhを算出する。スケール変換値算出部14Eは、不定スケール三次元平面Rの切片を求めることで、不定スケール設置高さhを算出すればよい。
【0100】
スケール変換値算出部14Eは、算出した不定スケール設置高さhに対する、変数である撮影部22Aの実スケール設置高さhrの比率を、スケール変換変数S’として用いる。この場合、スケール変換変数S’は、下記式(3)によって表される。
【0101】
S’=hr/h ・・・式(3)
【0102】
式(3)中、S’は、スケール変換変数S’を表す。hrは、実スケール設置高さhrを表す。hは、不定スケール設置高さhを表す。
【0103】
スケール変換値算出部14Eは、変数である実スケール設置高さhrを、一般的な車両1の車高の範囲内である値域の範囲内で変更することでスケール変換変数S’を順次変更する。そして、スケール変換値算出部14Eは、実スケール設置高さhrの変更によりスケール変換変数S’を変更しながら、上記第2撮影画像30Bへの投影点を用いた探索方法、または上記ワーピング画像36を用いた探索方法により、スケール変換値Sを算出してよい。
【0104】
次に、撮影画像30間の三次元位置座標を用いた探索方法について説明する。
【0105】
図6は、撮影画像30間の三次元位置座標を用いた探索方法の一例の説明図である。
【0106】
スケール変換値算出部14Eは、基準時刻T1の第1撮影画像30A、対象時刻T2の第2撮影画像30B、基準時刻T1の第1不定スケール奥行情報D1、基準時刻T1の第1実スケール位置姿勢情報V1、および対象時刻T2の第2実スケール位置姿勢情報V2を取得する。
【0107】
スケール変換値算出部14Eは、第1撮影画像30Aと第2撮影画像30Bとの間で同じ対象物B上の対応する座標点Pの対である対応点P’を特定する。詳細には、スケール変換値算出部14Eは、第1撮影画像30Aに含まれるある対象物B上の座標点PAと、第2撮影画像30Bに含まれる同じ対象物B上の座標点PBと、の対を対応点P’として特定する。すなわち対応点P’を構成する座標点Pの対である座標点PAおよび座標点PBは、実空間に存在する該対象物Bにおける同じ位置を表す。
【0108】
スケール変換値算出部14Eは、公知の特徴点検出・マッチング手法などを用いて、同一の対象物Bを表す撮影画像30(第1撮影画像30A、第2撮影画像30B)の座標点Pの対応を、対応点P’として特定すればよい。
【0109】
スケール変換値算出部14Eは、1点以上の対応点P’を特定すればよい。
図6には、一例として、1点の対応点P’を特定した例を示す。
【0110】
スケール変換値算出部14Eは、対応点P’、第1実スケール位置姿勢情報V1、および第2実スケール位置姿勢情報V2から、三角測量により、対応点P’によって示される対象物B上の実スケール点の実スケール三次元位置座標Wを導出する。上述したように、対応点P’を構成する座標点Pの対である座標点PAおよび座標点PBは、実空間に存在する該対象物Bにおける同じ位置を表す。このため、スケール変換値算出部14Eは、座標点PAおよび座標点PBの対からなる対応点P’と、第1実スケール位置姿勢情報V1および第2実スケール位置姿勢情報V2と、を用いた三角測量により、実空間における対象物B上の実スケールの点の三次元位置座標である実スケール三次元位置座標Wを導出する。
【0111】
また、スケール変換値算出部14Eは、第1不定スケール奥行情報D1から対応点P’の不定スケール三次元位置座標Gを算出する。スケール変換値算出部14Eは、不定スケール奥行導出部14Bで導出された、基準時刻T1の第1撮影画像30Aに含まれる画素ごとの第1不定スケール奥行情報D1を規定した不定スケール奥行画像32を取得する(
図4も参照)。そして、スケール変換値算出部14Eは、不定スケール奥行画像32から、対応点P’を構成する第1撮影画像30A上の座標点PAと同じ座標の画素の第1不定スケール奥行情報D1を特定する。そして、スケール変換値算出部14Eは、特定した第1不定スケール奥行情報D1から、対応点P’の不定スケール三次元位置座標Gを算出する。
【0112】
対応点P’から算出された実スケール三次元位置座標Wと、第1不定スケール奥行情報D1から算出された不定スケール三次元位置座標Gにスケール変換変数S’を乗算した不定スケール乗算三次元位置座標Fとは、幾何的整合性が取れている状態では、一致するはずである。
【0113】
このため、スケール変換値算出部14Eは、スケール変換変数S’を変化させ、実スケール三次元位置座標Wと、不定スケール三次元位置座標Gとスケール変換変数S’との乗算結果である不定スケール乗算三次元位置座標Fと、の一致度が最大となるスケール変換変数S’を、スケール変換値Sとして算出する。
【0114】
実スケール三次元位置座標Wと不定スケール乗算三次元位置座標Fとの一致度には、実スケール三次元位置座標Wと不定スケール乗算三次元位置座標Fとの三次元座標間の距離の差または奥行の差を用いればよい。すなわち、実スケール三次元位置座標Wと不定スケール乗算三次元位置座標Fとの一致度は、実スケール三次元位置座標Wと不定スケール乗算三次元位置座標Fとの三次元座標間の距離の差または奥行の差が小さいほど大きい値を示す。
【0115】
そして、スケール変換値算出部14Eは、実スケール三次元位置座標Wと不定スケール乗算三次元位置座標Fとの一致度が最大となる、不定スケール乗算三次元位置座標Fの算出に用いたスケール変換変数S’を、スケール変換値Sとして算出する。
【0116】
このように、スケール変換値算出部14Eは、撮影画像30間の三次元位置座標を用いた探索方法により、スケール変換値Sを算出してよい。
【0117】
図2に戻り説明を続ける。上述したように、スケール変換部14Fは、スケール変換値算出部14Eで算出されたスケール変換値Sを不定スケール奥行情報Dに乗算した乗算結果を、実スケール奥行情報Drとして導出する。
【0118】
詳細には、例えば、スケール変換部14Fは、基準時刻T1の第1撮影画像30Aに含まれる画素ごとの第1不定スケール奥行情報D1を規定した不定スケール奥行画像32を取得する。そして、スケール変換部14Fは、不定スケール奥行画像32に含まれる画素ごとの第1不定スケール奥行情報D1の各々にスケール変換値Sを乗算する。この乗算処理によって、スケール変換部14Fは、画素ごとに実スケール奥行情報Drを規定した実スケール奥行画像34を算出する。なお、スケール変換部14Fは、不定スケール奥行画像32に含まれる少なくとも1部の画素にスケール変換値Sを乗算することで、実スケール奥行画像34を算出すればよい。すなわち、スケール変換部14Fは、不定スケール奥行画像32に含まれる1部の画素の実スケール奥行情報Drを算出してもよい。
【0119】
スケール変換部14Fは、算出した実スケール奥行情報Drを出力部20に出力する。実スケール奥行情報Drを出力部20へ出力することで、スケール変換値算出部14Eは、実スケール奥行情報Drを車両1の外部の情報処理装置へ出力することができる。また、スケール変換値算出部14Eは、実スケール奥行情報Drを表示部に表示することができる。また、スケール変換部14Fは、算出した実スケール奥行情報Drを記憶部12へ記憶してもよい。
【0120】
次に、実スケール奥行算出装置10で実行する情報処理の流れの一例を説明する。
【0121】
図7は、本実施形態の実スケール奥行算出装置10が実行する情報処理の流れの一例を示すフローチャートである。
【0122】
撮影画像取得部14Aは、撮影部22Aで撮影された撮影時刻の異なる複数の撮影画像30を取得する(ステップS100)。
【0123】
不定スケール奥行導出部14Bは、ステップS100で取得した複数の撮影画像30の各々から不定スケール奥行情報Dを導出する(ステップS102)。
【0124】
位置姿勢取得部14Cは、ステップS100で取得した複数の撮影画像30の各々の撮影時の撮影部22Aの実スケール位置姿勢情報Vを取得する(ステップS104)。
【0125】
スケール変換値算出部14Eは、ステップS100~ステップS104で取得した撮影画像30、不定スケール奥行情報D、および実スケール位置姿勢情報Vを用いて、幾何的整合性が最大となるスケール変換値Sを算出する(ステップS106)。ステップS106の処理であるスケール変換値算出処理の詳細は後述する。
【0126】
スケール変換部14Fは、ステップS102で取得した不定スケール奥行情報DにステップS106で算出したスケール変換値Sを乗算した乗算結果を、実スケール奥行情報Drとして算出する(ステップS108)。そして、本ルーチンを終了する。
【0127】
次に、ステップS106のスケール変換値算出処理の流れの一例を説明する。
【0128】
図8は、第2撮影画像30Bへの投影点を用いた探索方法によるスケール変化値算出処理の流れの一例を示すフローチャートである。
図8には、スケール変換変数S’を実数空間の中で所定範囲内の任意の値をとる変数とした場合を示す。
【0129】
スケール変換値算出部14Eは、第1撮影画像30Aおよび第2撮影画像30Bを取得する(ステップS200)。スケール変換値算出部14Eは、ステップS100(
図7参照)で取得した複数の撮影画像30から、基準時刻T1の第1撮影画像30Aおよび対象時刻T2の第2撮影画像30Bを取得することで、第1撮影画像30Aおよび第2撮影画像30Bを取得する。
【0130】
また、スケール変換値算出部14Eは、基準時刻T1の第1不定スケール奥行情報D1を取得する(ステップS202)。スケール変換値算出部14Eは、ステップS102(
図7参照)で導出された不定スケール奥行情報Dの内、基準時刻T1を撮影時刻とする第1撮影画像30Aから導出された第1不定スケール奥行情報D1を取得する。詳細には、スケール変換値算出部14Eは、画素ごとに第1不定スケール奥行情報D1を規定した不定スケール奥行画像32を取得する。
【0131】
また、スケール変換値算出部14Eは、第1実スケール位置姿勢情報V1、および第2実スケール位置姿勢情報V2を取得する(ステップS204)。不定スケール奥行導出部14Bは、ステップS104(
図7参照)で取得した実スケール位置姿勢情報Vの内、基準時刻T1の撮影部22Aの第1実スケール位置姿勢情報V1および対象時刻T2の撮影部22Aの第2実スケール位置姿勢情報V2を取得する。ステップS204の処理によって、スケール変換値算出部14Eは、第1実スケール位置姿勢情報V1から第2実スケール位置姿勢情報V2への実スケールの位置姿勢の変換行列T
1→2を取得する。
【0132】
次に、スケール変換値算出部14Eは、スケール変換変数S’に、所定範囲内の予め定めた初期値を設定する(ステップS206)。例えば、スケール変換値算出部14Eは、所定範囲の下限値を初期値とし、該初期値をスケール変換変数S’に設定する。
【0133】
スケール変換値算出部14Eは、設定されたスケール変換変数S’を用いて、第1撮影画像30A上の第1座標点P1を第2撮影画像30B上に投影した投影点である第2座標点P2を算出する(ステップS208)。スケール変換値算出部14Eは、上記式(2)を用いて第1座標点P1を第2撮影画像30Bに投影した第2座標点P2を算出する。
【0134】
次に、スケール変換値算出部14Eは、ステップS208の算出に用いた第1座標点P1と、ステップS208で算出された第2座標点P2と、の一致度を算出する(ステップS210)。例えば、スケール変換値算出部14Eは、第1座標点P1と第2座標点P2との輝度差、特徴量記述子から得られる特徴ベクトルの差、または距離、が小さいほど、大きい値を表す一致度を算出する。
【0135】
そして、スケール変換値算出部14Eは、ステップS210で算出した一致度と、該一致度の算出に用いたスケール変換変数S’と、を対応付けて記憶部12へ記憶する(ステップS212)。
【0136】
次に、スケール変換値算出部14Eは、スケール変換変数S’を所定範囲内で変更完了したか否かを判断する(ステップS214)。例えば、スケール変換値算出部14Eは、スケール変換変数S’を所定範囲の下限値から上限値に渡って変更したか否かを判断する。具体的には、例えば、スケール変換値算出部14Eは、現在設定されているスケール変換変数S’の値が所定範囲の上限値であるか否かを判別することで、ステップS214の判断を行えばよい。
【0137】
ステップS214で否定判断すると(ステップS214:No)、ステップS216へ進む。ステップS216では、現在設定されているスケール変換変数S’の値に、予め定めた所定値αを加算した値を、スケール変換変数S’の新たな値として設定する(ステップS216)。所定値αには、所定範囲を複数の小範囲に分割したときの該小範囲の値を定めればよい。そして、上記ステップS208へ戻る。
【0138】
一方、ステップS214で肯定判断すると(ステップS214:Yes)、ステップS218へ進む。ステップS218では、スケール変換値算出部14Eは、一致度が最大となる第1座標点P1の投影点である第2座標点P2の算出に用いたスケール変換変数S’を、スケール変換値Sとして算出する(ステップS218)。スケール変換値算出部14Eは、記憶部12に記憶されている複数のスケール変換変数S’の内、対応する一致度が最大の値を示すスケール変換変数S’を、スケール変換値Sとすればよい。
【0139】
そして、スケール変換値算出部14Eは、本ルーチンを終了する。
【0140】
次に、ワーピング画像36を用いた探索方法によるスケール変化値算出処理の流れの一例を説明する。
【0141】
図9は、ワーピング画像36を用いた探索方法によるスケール変化値算出処理の流れの一例を示すフローチャートである。
図9には、スケール変換変数S’を実数空間の中で所定範囲内の任意の値をとる変数とした場合を示す。
【0142】
スケール変換値算出部14Eは、ステップS200~ステップS206(
図8参照)と同様にして、ステップS300~ステップS306の処理を行う。
【0143】
詳細には、スケール変換値算出部14Eは、第1撮影画像30Aおよび第2撮影画像30Bを取得する(ステップS300)。また、スケール変換値算出部14Eは、基準時刻T1の第1不定スケール奥行情報D1を取得する(ステップS302)。また、スケール変換値算出部14Eは、第1実スケール位置姿勢情報V1、および第2実スケール位置姿勢情報V2を取得する(ステップS304)。
【0144】
次に、スケール変換値算出部14Eは、スケール変換変数S’に、所定範囲内で予め定めた初期値を設定する(ステップS306)。例えば、スケール変換値算出部14Eは、所定範囲の下限値を初期値とし、該初期値をスケール変換変数S’に設定する。なお、
図9の処理で用いる所定範囲には、
図8の処理で用いた所定範囲と同じ範囲を用いてもよいし、異なる範囲を用いてもよい。
【0145】
次に、スケール変換値算出部14Eは、設定されたスケール変換変数S’を用いて、第1撮影画像30Aを、対象時刻T2の第2実スケール位置姿勢情報V2によって表される実スケール位置姿勢の撮影部22Aで撮影されたワーピング画像36に変換する(ステップS308)。
【0146】
そして、スケール変換値算出部14Eは、ワーピング画像36に含まれる座標点と第2撮影画像30Bに含まれる該座標点と同じ座標の座標点との一致度を算出する(ステップS310)。例えば、スケール変換値算出部14Eは、これらの座標点の輝度差、特徴量記述子から得られる特徴ベクトルの差、または距離、が小さいほど、大きい値を表す一致度を算出する。
【0147】
そして、スケール変換値算出部14Eは、ステップS310で算出した一致度と、該一致度の算出に用いたスケール変換変数S’と、を対応付けて記憶部12へ記憶する(ステップS312)。
【0148】
次に、スケール変換値算出部14Eは、スケール変換変数S’を所定範囲内で変更完了したか否かを判断する(ステップS314)。例えば、スケール変換値算出部14Eは、スケール変換変数S’を所定範囲の下限値から上限値に渡って変更したか否かを判断する。具体的には、例えば、スケール変換値算出部14Eは、現在設定されているスケール変換変数S’の値が所定範囲の上限値であるか否かを判別することで、ステップS314の判断を行えばよい。
【0149】
ステップS314で否定判断すると(ステップS314:No)、ステップS316へ進む。ステップS316では、現在設定されているスケール変換変数S’の値に、予め定めた所定値αを加算した値を、スケール変換変数S’の新たな値として設定する(ステップS316)。所定値αには、上記ステップS216と同じ値を用いてもよいし、異なる値を用いてもよい。そして、上記ステップS308へ戻る。
【0150】
一方、ステップS314で肯定判断すると(ステップS314:Yes)、ステップS318へ進む。ステップS318では、スケール変換値算出部14Eは、一致度が最大となる座標点のワーピング画像36の算出に用いたスケール変換変数S’を、スケール変換値Sとして算出する(ステップS318)。スケール変換値算出部14Eは、記憶部12に記憶されている複数のスケール変換変数S’の内、対応する一致度が最大の値を示すスケール変換変数S’を、スケール変換値Sとすればよい。
【0151】
そして、スケール変換値算出部14Eは、本ルーチンを終了する。
【0152】
次に、スケール変換変数S’として、不定スケール設置高さhに対する実スケール設置高さhrの比率hr/hを用いる場合の処理の流れの一例を説明する。
【0153】
図10は、不定スケール設置高さhに対する実スケール設置高さhrの比率hr/hをスケール変換変数S’として用いる場合の処理の流れの一例を示すフローチャートである。
図10には、ワーピング画像36を用いた探索方法に、スケール変換変数S’として比率hr/hを用いる場合を一例として示す。
【0154】
スケール変換値算出部14Eは、ステップS300~ステップS304(
図9参照)と同様にして、ステップS400~ステップS404の処理を行う。
【0155】
詳細には、スケール変換値算出部14Eは、第1撮影画像30Aおよび第2撮影画像30Bを取得する(ステップS400)。また、スケール変換値算出部14Eは、基準時刻T1の第1不定スケール奥行情報D1を取得する(ステップS402)。また、スケール変換値算出部14Eは、第1実スケール位置姿勢情報V1、および第2実スケール位置姿勢情報V2を取得する(ステップS404)。
【0156】
次に、スケール変換値算出部14Eは、第1撮影画像30Aから導出された第1不定スケール奥行情報D1に基づいて、路面領域の不定スケール三次元平面Rを算出する(ステップS406)。
【0157】
そして、スケール変換値算出部14Eは、ステップS406で算出された不定スケール三次元平面Rを基準とした不定スケールの撮影部22Aの設置高さである不定スケール設置高さhを算出する(ステップS408)。
【0158】
次に、スケール変換値算出部14Eは、変数である実スケール設置高さhrに、所定範囲内で予め定めた初期値を設定する(ステップS410)。例えば、スケール変換値算出部14Eは、所定範囲の下限値を初期値とし、該初期値を実スケール設置高さhrに設定する。なお、
図10の処理で用いる所定範囲には、例えば、一般的な車両1の車高の範囲である値域の範囲を定めればよい。
【0159】
次に、スケール変換値算出部14Eは、設定された不定スケール設置高さhに対する、変数である撮影部22Aの実スケール設置高さhrの比率hr/hを、スケール変換変数S’として算出する(ステップS412)。
【0160】
次に、スケール変換値算出部14Eは、ステップS142で算出されたスケール変換変数S’を用いて、第1撮影画像30Aを、対象時刻T2の第2実スケール位置姿勢情報V2によって表される実スケール位置姿勢の撮影部22Aで撮影されたワーピング画像36に変換する(ステップS414)。
【0161】
そして、スケール変換値算出部14Eは、ワーピング画像36に含まれる座標点と第2撮影画像30Bに含まれる該座標点と同じ座標の座標点との一致度を算出する(ステップS416)。ステップS416の処理は、ステップS310(
図9参照)と同様である。
【0162】
そして、スケール変換値算出部14Eは、ステップS416で算出した一致度と、該一致度の算出に用いたスケール変換変数S’と、を対応付けて記憶部12へ記憶する(ステップS418)。
【0163】
次に、スケール変換値算出部14Eは、実スケール設置高さhrを所定範囲内で変更完了したか否かを判断する(ステップS420)。例えば、スケール変換値算出部14Eは、実スケール設置高さhrを所定範囲の下限値から上限値に渡って変更したか否かを判断する。具体的には、例えば、スケール変換値算出部14Eは、現在設定されている実スケール設置高さhrの値が一般的な車両1の車高の範囲である値域の上限値であるか否かを判別することで、ステップS420の判断を行えばよい。
【0164】
ステップS420で否定判断すると(ステップS420:No)、ステップS422へ進む。ステップS422では、現在設定されている実スケール設置高さhrの値に、予め定めた所定値βを加算した値を、実スケール設置高さhrの新たな値として設定する(ステップS422)。所定値βには、上記所定範囲である値域を複数の小範囲に分割したときの該小範囲の値を定めればよい。そして、上記ステップS412へ戻る。
【0165】
一方、ステップS420で肯定判断すると(ステップS420:Yes)、ステップS424へ進む。ステップS424では、スケール変換値算出部14Eは、一致度が最大となる座標点のワーピング画像36の算出に用いたスケール変換変数S’を、スケール変換値Sとして算出する(ステップS424)。スケール変換値算出部14Eは、記憶部12に記憶されている複数のスケール変換変数S’の内、対応する一致度が最大の値を示すスケール変換変数S’を、スケール変換値Sとすればよい。
【0166】
そして、スケール変換値算出部14Eは、本ルーチンを終了する。
【0167】
次に、撮影画像30間の三次元位置座標を用いた探索方法によるスケール変化値算出処理の流れの一例を説明する。
【0168】
図11は、撮影画像30間の三次元位置座標を用いた探索方法によるスケール変化値算出処理の流れの一例を示すフローチャートである。
【0169】
スケール変換値算出部14Eは、ステップS200~ステップS204(
図8参照)と同様にして、ステップS500~ステップS504の処理を行う。
【0170】
詳細には、スケール変換値算出部14Eは、第1撮影画像30Aおよび第2撮影画像30Bを取得する(ステップS500)。また、スケール変換値算出部14Eは、基準時刻T1の第1不定スケール奥行情報D1を取得する(ステップS502)。また、スケール変換値算出部14Eは、第1実スケール位置姿勢情報V1、および第2実スケール位置姿勢情報V2を取得する(ステップS504)。
【0171】
次に、スケール変換値算出部14Eは、第1撮影画像30Aと第2撮影画像30Bとの間で同じ対象物B上の対応する座標点Pの対である対応点P’を導出する(ステップS506)。
【0172】
スケール変換値算出部14Eは、座標点PAおよび座標点PBの対からなる対応点P’と、第1実スケール位置姿勢情報V1および第2実スケール位置姿勢情報V2と、を用いた三角測量により、実空間における対象物B上の実スケールの点の三次元位置座標である実スケール三次元位置座標Wを導出する(ステップS508)。
【0173】
次に、スケール変換値算出部14Eは、ステップS502で取得した第1不定スケール奥行情報D1から、ステップS506で導出した対応点P’の不定スケール三次元位置座標Gを算出する(ステップS510)。
【0174】
次に、スケール変換値算出部14Eは、スケール変換変数S’に、所定範囲内で予め定めた初期値を設定する(ステップS512)。例えば、スケール変換値算出部14Eは、所定範囲の下限値を初期値とし、該初期値をスケール変換変数S’に設定する。なお、
図9の処理で用いる所定範囲には、
図8および
図9の処理で用いた所定範囲と同じ範囲を用いてもよいし、異なる範囲を用いてもよい。
【0175】
次に、スケール変換値算出部14Eは、設定されたスケール変換変数S’を用いて、不定スケール乗算三次元位置座標Fを算出する(ステップS514)。スケール変換値算出部14Eは、ステップS510で算出された不定スケール三次元位置座標Gに、設定されたスケール変換変数S’を乗算することで、不定スケール乗算三次元位置座標Fを算出する。
【0176】
次に、スケール変換値算出部14Eは、ステップS508で算出した実スケール三次元位置座標Wと、ステップ514で算出した不定スケール乗算三次元位置座標Fと、の一致度を算出する(ステップS516)。スケール変換値算出部14Eは、実スケール三次元位置座標Wと不定スケール乗算三次元位置座標Fとの三次元座標間の距離の差または奥行の差が小さいほど大きい値の一致度を算出する。
【0177】
そして、スケール変換値算出部14Eは、ステップS516で算出した一致度と、該一致度の算出に用いたスケール変換変数S’と、を対応付けて記憶部12へ記憶する(ステップS518)。
【0178】
次に、スケール変換値算出部14Eは、スケール変換変数S’を所定範囲内で変更完了したか否かを判断する(ステップS520)。例えば、スケール変換値算出部14Eは、スケール変換変数S’を所定範囲の下限値から上限値に渡って変更したか否かを判断する。具体的には、例えば、スケール変換値算出部14Eは、現在設定されているスケール変換変数S’の値が所定範囲の上限値であるか否かを判別することで、ステップS520の判断を行えばよい。
【0179】
ステップS520で否定判断すると(ステップS520:No)、ステップS522へ進む。ステップS522では、現在設定されているスケール変換変数S’の値に、予め定めた所定値γを加算した値を、スケール変換変数S’の新たな値として設定する(ステップS522)。所定値γには、所定範囲を複数の小範囲に分割したときの該小範囲の値を定めればよい。そして、上記ステップS514へ戻る。
【0180】
一方、ステップS520で肯定判断すると(ステップS520:Yes)、ステップS524へ進む。ステップS524では、スケール変換値算出部14Eは、一致度が最大となる不定スケール乗算三次元位置座標Fの算出に用いたスケール変換変数S’を、スケール変換値Sとして算出する(ステップS524)。スケール変換値算出部14Eは、記憶部12に記憶されている複数のスケール変換変数S’の内、対応する一致度が最大の値を示すスケール変換変数S’を、スケール変換値Sとすればよい。そして、本ルーチンを終了する。
【0181】
以上説明したように、本実施形態の実スケール奥行算出装置10は、撮影画像取得部14Aと、不定スケール奥行導出部14Bと、位置姿勢取得部14Cと、実スケール奥行導出部14Dと、を備える。撮影画像取得部14Aは、車両1に搭載された撮影部22Aから撮影時刻の異なる複数の撮影画像30を取得する。不定スケール奥行導出部14Bは、撮影画像30から不定スケール奥行情報Dを導出する。位置姿勢取得部14Cは、複数の撮影画像30の各々の撮影時の撮影部22Aの実スケール位置姿勢情報Vを取得する。実スケール奥行導出部14Dは、複数の撮影画像30、不定スケール奥行情報D、および実スケール位置姿勢情報Vから、幾何的整合性に基づいて実スケール奥行情報Drを導出する。
【0182】
ここで、物体までの奥行情報を算出する方法には、レーザーセンサやレーダーセンサからの観測情報を用いる方法が知られている。しかし、これらのセンサは単価が高額であり、またセンササイズが大きいといった問題がある。そこで、安価かつ小型のカメラで撮影された撮影画像30を用いる方法が開示されている。
【0183】
例えば、従来では、撮影画像30の特徴点とその対応から、カメラ間の位置・姿勢と特徴点の3次元座標を同時に推定するVisual SLAMベースの手法、ニューラルネットワークを用いて画素値に対応する点の奥行を規定した奥行画像を直接推定するニューラルネットワークベースの手法、などが知られている。しかし、これらの手法は、単眼のカメラ画像から奥行情報を取得する手法である。このため、原理的に単眼カメラから実スケールの奥行情報を算出することはできず、これらの手法では、不定スケールの相対的な距離しか求めることができなかった。
【0184】
また、不定スケールのカメラ設置高さと予め実測されたカメラ設置高さとの比を不定スケール奥行情報に乗算することで、実スケール奥行情報を算出する技術が開示されている。しかし、この方法では、カメラの設置高さの実測値が不明な環境、または飛翔体などに搭載されることでカメラの設置高さの実測値が変動する環境では、実スケール奥行情報を導出することは困難であった。
【0185】
また、Visual SLAMとGNSSとを組合せることでカメラ間の不定スケールの位置姿勢を実スケールに変換し、該変換に用いた値と、位置姿勢と同じスケールのカメラ間の不定スケールの奥行情報とを用いて、実スケール奥行情報を取得する方法が開示されている。しかし、この方法は、カメラ間の不定スケールの位置姿勢と、カメラ間の不定スケールの奥行と、が同じスケールであることを前提とした方法である。しかし、位置姿勢をGNSS/IMUやホイールエンコーダで取得し、奥行をニューラルネットワークで推定するなど、位置姿勢と奥行とを異なる手法で取得する場合がある。従来技術では、位置姿勢と奥行とを異なる手法で取得する場合、位置姿勢と奥行とのスケールが異なるため、実スケール奥行情報を導出することは困難であった。
【0186】
すなわち、従来技術では、撮影画像30から実スケール奥行情報Drを導出することが困難となる場合があった。
【0187】
一方、本実施形態の実スケール奥行算出装置10では、実スケール奥行導出部14Dが、撮影時刻の異なる複数の撮影画像30、不定スケール奥行情報D、および実スケール位置姿勢情報Vから、幾何的整合性に基づいて、実スケール奥行情報Drを導出する。
【0188】
このため、本実施形態の実スケール奥行算出装置10では、単眼カメラで撮影された撮影画像30から推定した画素ごとの不定スケール奥行情報Dを規定した不定スケール奥行画像32を、実スケール化することができる。また、実スケール奥行算出装置10は、撮影部22Aの実スケール設置高さhrが不明な環境や変動する環境であっても、高精度に実スケール奥行情報Drを算出することができる。また、実スケール奥行算出装置10は、撮影部22Aの位置姿勢と奥行とのスケールが異なる場合であっても、高精度に実スケール奥行情報Drを算出することができる。
【0189】
従って、本実施形態の実スケール奥行算出装置10は、撮影画像30から実スケール奥行情報Drを導出することができる。
【0190】
次に、上記実施形態の実スケール奥行算出装置10の、ハードウェア構成の一例を説明する。
【0191】
図12は、上記実施形態の実スケール奥行算出装置10の一例のハードウェア構成図である。
【0192】
上記実施形態の実スケール奥行算出装置10は、CPU(Central Processing Unit)90Dなどの制御装置と、ROM(Read Only Memory)90EやRAM(Random Access Memory)90FやHDD(ハードディスクドライブ)90Gなどの記憶装置と、各種機器とのインターフェースであるI/F部90Bと、出力情報などの各種情報を出力する出力部90Aと、ユーザによる操作を受付ける入力部90Cと、各部を接続するバス90Hとを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0193】
上記実施形態の実スケール奥行算出装置10では、CPU90Dが、ROM90EからプログラムをRAM90F上に読み出して実行することにより、上記各部がコンピュータ上で実現される。
【0194】
なお、上記実施形態の実スケール奥行算出装置10で実行される上記各処理を実行するためのプログラムは、HDD90Gに記憶されていてもよい。また、上記実施形態の10で実行される上記各処理を実行するためのプログラムは、ROM90Eに予め組み込まれて提供されていてもよい。
【0195】
また、上記実施形態の実スケール奥行算出装置10で実行される上記処理を実行するためのプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM、CD-R、メモリカード、DVD(Digital Versatile Disc)、フレキシブルディスク(FD)等のコンピュータで読み取り可能な記憶媒体に記憶されてコンピュータプログラムプロダクトとして提供されるようにしてもよい。また、上記実施形態の実スケール奥行算出装置10で実行される上記処理を実行するためのプログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記実施形態の実スケール奥行算出装置10で実行される上記処理を実行するためのプログラムを、インターネットなどのネットワーク経由で提供または配布するようにしてもよい。
【0196】
なお、上記には、本発明の実施形態を説明したが、上記実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0197】
1 車両
10 実スケール奥行算出装置
14A 撮影画像取得部
14B 不定スケール奥行導出部
14C 位置姿勢取得部
14D 実スケール奥行導出部
14E スケール変換値算出部
14F スケール変換部
22 外界センサ
22A 撮影部
24 内界センサ
30 撮影画像
30A 第1撮影画像
30B 第2撮影画像