以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、本明細書および図面において、実質的に同一の機能構成を有する複数の構成要素を、同一の符号の後に異なるアルファベットを付して区別する場合もある。ただし、実質的に同一の機能構成を有する複数の構成要素の各々を特に区別する必要がない場合、同一符号のみを付する。
[情報処理装置の概要]
図1は、情報処理装置の概要を説明するための図である。図1を参照しながら、情報処理装置の概要について説明する。図1に示すように、情報処理装置10、道路平面および車両Vが実空間に存在する。また、撮像部が組み込まれた情報処理装置10は、撮像方向が道路平面に向けられた状態で設置されている。道路平面上には車両Vが存在するため、情報処理装置10により撮像された撮像画像Img’には車両が映っている。また、図1に示すように、情報処理装置10のレンズの中心が原点Oと設定されている。
図1には、車両Vの斜め右上を撮像するように撮像方向が向けられている例について示されているが、車両Vの向きは特に限定されない。
また、図1には、情報処理装置10に撮像機能を有する撮像部が組み込まれている例が示されているが、撮像部は情報処理装置10に組み込まれておらず情報処理装置10の外部に設置されていてもよい。かかる場合、例えば、情報処理装置10は、撮像部から送信された撮像画像Img’を受信することにより撮像画像Img’を取得してもよい。また、例えば、情報処理装置10は、撮像部により記録媒体に記録された撮像画像Img’を読み込むことにより撮像画像Img’を取得してもよい。
[本実施形態の詳細]
まず、本実施形態の詳細について説明する。図2は、本実施形態に係る情報処理装置10の機能構成を示すブロック図である。図2に示すように、本実施形態に係る情報処理装置10は、制御部110、入力部120、撮像部130、記憶部150および表示部190を備える。
入力部120は、操作者から入力される操作を受け付ける。また、入力部120は、操作者から入力される操作を制御部110に提供することができる。本実施形態では、入力部120がタッチパネルである場合を主に想定するが、入力部120はタッチパネル以外の入力装置(例えば、マウスなど)であってもよい。撮像部130は、実空間を撮像することにより撮像画像を取得する。また、撮像部130は、撮像画像を制御部110に提供することができる。
記憶部150は、制御部110を動作させるためのプログラムやデータを記憶することができる。また、記憶部150は、制御部110の動作の過程で必要となる各種データを一時的に記憶することもできる。表示部190は、制御部110による制御に従って、表示画面に各種情報を表示することができる。
なお、入力部120、撮像部130、記憶部150および表示部190は、情報処理装置10の外部に備えられていてもよい。制御部110は、画像取得部111、入力情報取得部112、キャリブレーション部113および表示制御部114を備える。以下、制御部110が備えるこれらの各機能部の詳細について説明する。
例えば、情報処理装置10により車両Vに関する情報(例えば、サイズ、種別等)が判別される前に、キャリブレーションが行われる必要がある。より詳細には、車両Vが存在する道路の平面式(以下、「道路平面式」とも言う)を算出する処理がキャリブレーションとして行われる必要がある。以下では、情報処理装置10によって行われるキャリブレーションについて説明する。
図3は、キャリブレーション部113により使用されるパラメータを示す図である。キャリブレーション部113は、まず、撮像部130を構成する撮像素子のサイズと制御部110に提供される撮像画像Img’のサイズとに基づいて、撮像素子の単位pixel当たりの撮像画像Img’のサイズpix_dotをパラメータとして算出する必要がある。撮像画像Img’は、原点Oから焦点距離だけ離れた撮像素子の撮像面上に撮像された撮像画像Imgに基づいて生成される。
図3に示すように、ここでは、撮像素子がCCD(Charge Coupled Device)である場合を例として説明するが、CCDは撮像素子の一例に過ぎない。したがって、撮像素子はCMOS(Complementary Metal Oxide Semiconductor)等であってもよい。
ここで、CCDサイズをccd_sizeとし、撮像画像Img’(横:width×縦:height)のサイズをimg_sizeとすると、キャリブレーション部113は、以下の(数式1)によりpix_dotを算出することができる。一般的に、CCDサイズは、CCDの対角線の長さで表されるため、この(数式1)に示されるように、pix_dotは、撮像画像Img’の縦横の2乗和の平方根がCCDサイズで除されることにより算出される。しかし、このような手法によるパラメータpix_dotの算出は一例に過ぎないため、他の手法によりパラメータpix_dotが算出されてもよい。例えば、CCDの対角線の代わりにCCDの縦または横の長さが用いられてもよい。
なお、CCDサイズは、例えば、撮像部130から容易に取得される。また、撮像画像Img’のサイズは、例えば、記憶部150から取得される。したがって、制御部110は、これらのサイズに基づいて、CCDの撮像面に撮像される撮像画像Imgの実空間における3次元座標と制御部110に提供される撮像画像Img’の2次元座標との対応関係を把握することができる。すなわち、制御部110は、この対応関係に基づいて、制御部110に提供される撮像画像Img’の2次元座標からCCDの撮像面に撮像される撮像画像Imgの実空間における3次元座標を把握することができる。
このように算出されたパラメータを用いてキャリブレーションが行われる。まず、画像取得部111は、撮像部130によって道路が撮像された撮像画像を取得する。そして、表示制御部114は、撮像画像を表示画面に表示させる。キャリブレーション部113は、撮像画像と道路に関する道路情報とに基づいて、撮像面における座標を実空間における道路平面上の座標に変換するための道路平面パラメータを推定する。
続いて、操作者は、道路平面に少なくとも一端が存在するラインの方向を撮像画像において入力する。そして、入力情報取得部112は、撮像画像において入力された当該ラインの方向を取得する。キャリブレーション部113は、撮像画像において入力された当該ラインの方向と道路平面パラメータを含む演算式によって表される当該方向とに基づいて、道路平面パラメータを推定する。かかるキャリブレーション処理によれば、道路平面パラメータをより高精度に推定することが可能となる。
また、道路平面に少なくとも一端が存在するラインの方向の他に、道路平面に少なくとも一端が存在する実空間における二点間の距離が操作者によって入力された場合、入力情報取得部112は、実空間において入力された平行な二直線をさらに取得する。そして、キャリブレーション部113は、撮像画像において入力された当該ラインの方向と、道路平面パラメータを含む演算式によって表される当該方向と、実空間において入力された当該距離と、道路平面パラメータを含む演算式によって表される当該距離とに基づいて、道路平面パラメータを推定する。
また、道路平面に少なくとも一端が存在するラインの方向の他に、道路平面に存在する平行な二直線が操作者によって撮像画像において入力された場合、入力情報取得部112は、撮像画像において入力された平行な二直線をさらに取得する。そして、キャリブレーション部113は、撮像画像において入力された当該ラインの方向と、道路平面パラメータを含む演算式によって表される当該方向と、撮像画像において入力された平行な二直線が満たすべき条件とに基づいて、道路平面パラメータを推定する。
以下の説明においては、道路平面に少なくとも一端が存在するライン2本それぞれの方向の他に、道路平面に少なくとも一端が存在する実空間における二点間の距離3つが操作者によって入力された場合、かつ、道路平面に存在する平行な二直線が操作者によって撮像画像において入力された場合を想定する。しかし、後に説明するように、本実施形態はかかる場合に限定されない。また、操作者によって入力される情報の順序は、以下に説明する順序に限定されない。
道路平面に存在する平行な二直線の入力例について説明する。図4は、道路平面に存在する平行な二直線の入力画面の例を示す図である。図4に示すように、表示制御部114は、入力画面G1を表示部190に表示させている。入力画面G1には、撮像部130によって撮像された撮像画像が含まれている。また、入力画面G1には、入力情報1として道路平面上の平行線を入力する旨の指示が含まれ、次へボタンG11が含まれている。
操作者が撮像画像において平行な二直線(直線L1および直線L2)を入力すると、入力情報取得部112は、撮像画像において入力された平行な二直線(直線L1および直線L2)を取得する。ここで、平行な二直線それぞれの入力はどのようになされてもよい。一例として、操作者が各直線の始点から終点までドラッグ操作を行うことによって各直線の入力が可能であってよい。あるいは、撮像画像にあらかじめ表示されている各直線の始点および終点をドラッグ操作によって移動することが可能であってもよい。
例えば、操作者は、撮像画像において平行な二直線を入力し終わると、次へボタンG11を押下する操作を行う。例えば、次へボタンG11を押下する操作は、次へボタンG11に対するタッチ操作等であってよい。入力情報取得部112が、次へボタンG11を押下する操作を受け付けると、キャリブレーション部113は、撮像画像において平行な二直線をキャリブレーションに利用する。
図5は、撮像画像において入力された平行な二直線のキャリブレーションへの利用について説明するための図である。図5に示すように、本実施形態においては、原点Oを基準としたxyz座標系(実空間)を想定する。このxyz座標系において、道路平面式をR1・x+R2・y+R3・z+R4=0とする。なお、以下の説明では、図5に示したように、原点Oから焦点距離fだけ離れた点(焦点)をy軸上に設定し、この焦点を通りy軸に垂直な平面を撮像面とし、この撮像面上に撮像画像が撮像されるものとして説明を続ける。しかし、各座標軸の設定はこのような例に限定されない。
図5には、撮像画像において入力された平行な二直線のうち、一本目の直線上の2点(点a1および点a2)が示され、二本目の直線上の2点(点a3および点a4)が示されている。ここで、点a1〜点a4は、撮像面上に存在するため、そのy座標は焦点距離fであり、実空間における点a1〜点a4の座標は、以下の(数式2)のように表現することが可能である。
また、点a1に対応する道路平面上の点A1は、原点Oと点a1とを通過する直線上に存在する。同様に、点a2に対応する道路平面上の点A2は、原点Oと点a2とを通過する直線上に存在する。また、点a3に対応する道路平面上の点A3は、原点Oと点a3とを通過する直線上に存在する。また、点a4対応する道路平面上の点A4は、原点Oと点a4とを通過する直線上に存在する。したがって、実空間における点A1〜点A4の座標は、以下の(数式3)のように表現することが可能である。
ここで、点A1〜点A4は、道路平面上に存在する。したがって、道路平面式R1・x+R2・y+R3・z+R4=0と(数式3)とに基づいて、以下の(数式4)が導き出される。
また、ベクトルA2−A1とベクトルA4−A3とは平行であるという条件を満たすと仮定し、(数式3)をこの条件に適用すると、以下の(数式5)によって示されるF1が0(ゼロ)であるという条件が導き出される。(数式5)によって示されるF1は、後に利用される。
続いて、道路平面に少なくとも一端が存在する実空間における二点間の距離(一つ目)として、実空間におけるカメラ(撮像部130)から道路までの高さの入力例について説明する。図6は、実空間におけるカメラ(撮像部130)から道路までの入力画面の例を示す図である。図6に示すように、表示制御部114は、入力画面G2を表示部190に表示させている。入力画面G2には、撮像部130によって撮像された撮像画像が含まれている。また、入力画面G2には、入力情報2としてカメラ(撮像部130)から道路までの高さを入力する旨の指示が含まれ、入力欄G21、戻るボタンG22および次へボタンG23が含まれている。
操作者が実空間におけるカメラ(撮像部130)から道路までの高さを入力すると、入力情報取得部112は、実空間において入力されたカメラ(撮像部130)から道路までの高さを取得する。ここで、高さの入力はどのようになされてもよい。一例として、操作者が入力欄G21にタッチ操作を行って数値を入力することによって、高さの入力が可能であってよい。
例えば、操作者は、実空間におけるカメラ(撮像部130)から道路までの高さを入力し終わると、次へボタンG23を押下する操作を行う。入力情報取得部112が、次へボタンG23を押下する操作を受け付けると、キャリブレーション部113は、実空間におけるカメラ(撮像部130)から道路までの高さをキャリブレーションに利用する。一方、戻るボタンG22を押下する操作が操作者によってなされ、入力情報取得部112が、戻るボタンG22を押下する操作を受け付けると、表示制御部114は、入力画面G1を表示部190に再度表示させる。
図7は、実空間におけるカメラ(撮像部130)から道路までの高さのキャリブレーションへの利用について説明するための図である。図7には、実空間において入力されたカメラ(撮像部130)から道路までの高さDが示されている。ここで、カメラ(撮像部130)の位置は原点に設定されているため、道路平面パラメータを含む演算式によって表されるカメラ(撮像部130)から道路までの高さから高さDを減じた結果F2は、以下の(数式6)のように表現することが可能である。
道路平面パラメータを含む演算式によって表されるカメラ(撮像部130)から道路までの高さと、実空間において入力されたカメラ(撮像部130)から道路までの高さDとが完全に一致すれば、F2が0(ゼロ)であるという関係が成立する。(数式6)によって示されるF2は、後に利用される。
続いて、道路平面に少なくとも一端が存在する実空間における二点間の距離(二つ目)として、実空間における道路平面上の二点間の距離の入力例について説明する。また、この例では、この二点に対応する撮像画像における二点も入力される。図8は、実空間における道路平面上の二点間の距離とこの二点に対応する撮像画像における二点との入力画面の例を示す図である。図8に示すように、表示制御部114は、入力画面G3を表示部190に表示させている。入力画面G3には、撮像部130によって撮像された撮像画像が含まれている。また、入力画面G3には、入力情報3として撮像画像における道路に線分を引き、その二点に対応する実空間における二点間の距離を入力する旨の指示が含まれ、入力欄G31、戻るボタンG32および次へボタンG33が含まれている。
操作者が撮像画像において道路平面上の線分L3を入力し、線分L3に対応する実空間における距離を入力欄G31に入力すると、入力情報取得部112は、撮像画像において入力された道路平面上の線分L3と線分L3に対応する実空間における距離とを取得する。例えば、操作者は、入力が完了すると、次へボタンG33を押下する操作を行う。入力情報取得部112が、次へボタンG33を押下する操作を受け付けると、キャリブレーション部113は、撮像画像において入力された道路平面上の線分L3と線分L3に対応する実空間における距離とをキャリブレーションに利用する。一方、戻るボタンG32を押下する操作が操作者によってなされ、入力情報取得部112が、戻るボタンG32を押下する操作を受け付けると、表示制御部114は、入力画面G2を表示部190に再度表示させる。
図9は、撮像画像において入力された道路平面上の線分L3と線分L3に対応する実空間における距離とのキャリブレーションへの利用について説明するための図である。図9には、撮像画像において入力された線分L3の両端が点b1および点b2として示されている。ここで、点b1および点b2は、撮像面上に存在するため、そのy座標は焦点距離fであり、実空間における点b1および点b2の座標は、以下の(数式7)のように表現することが可能である。
また、点b1に対応する道路平面上の点B1は、原点Oと点b1とを通過する直線上に存在する。同様に、点b2に対応する道路平面上の点B2は、原点Oと点b2とを通過する直線上に存在する。したがって、実空間における点B1および点B2の座標は、以下の(数式8)のように表現することが可能である。
ここで、点B1および点B2は、道路平面上に存在する。したがって、道路平面式R1・x+R2・y+R3・z+R4=0と(数式8)とに基づいて、以下の(数式9)が導き出される。
また、道路平面パラメータを含む演算式によって表される実空間における点B1と点B2との距離から、実空間において入力された点B1と点B2との距離Wを減じた結果F3は、以下の(数式10)のように表現することが可能である。
道路平面パラメータを含む演算式によって表される実空間における点B1と点B2との距離と、実空間において入力された点B1と点B2との距離Wとが完全に一致すれば、F3が0(ゼロ)であるという関係が成立する。(数式10)によって示されるF3は、後に利用される。
続いて、道路平面に少なくとも一端が存在する実空間における二点間の距離(三つ目)として、実空間における道路平面から伸びる垂線の距離の入力例について説明する。また、この例では、この垂線に対応する撮像画像における距離も入力される。図10は、実空間における道路平面から伸びる垂線の距離とこの垂線に対応する撮像画像における距離との入力画面の例を示す図である。図10に示すように、表示制御部114は、入力画面G4を表示部190に表示させている。入力画面G4には、撮像部130によって撮像された撮像画像が含まれている。また、入力画面G4には、入力情報4として撮像画像における道路平面から伸びる垂線を入力し、その垂線に対応する実空間における距離を入力する旨の指示が含まれ、入力欄G41、戻るボタンG42および次へボタンG43が含まれている。
操作者が撮像画像において道路平面から伸びる垂線L4を入力し、垂線L4に対応する実空間における距離を入力欄G41に入力すると、入力情報取得部112は、撮像画像において入力された垂線L4と垂線L4に対応する実空間において入力された距離とを取得する。例えば、操作者は、入力が完了すると、次へボタンG43を押下する操作を行う。入力情報取得部112が、次へボタンG43を押下する操作を受け付けると、キャリブレーション部113は、撮像画像において入力された垂線L4と垂線L4に対応する実空間において入力された距離とをキャリブレーションに利用する。一方、戻るボタンG42を押下する操作が操作者によってなされ、入力情報取得部112が、戻るボタンG42を押下する操作を受け付けると、表示制御部114は、入力画面G3を表示部190に再度表示させる。
図11は、撮像画像において入力された垂線L4と垂線L4に対応する実空間において入力された距離とのキャリブレーションへの利用について説明するための図である。図11には、撮像画像において入力された垂線L4の両端が点c1および点c2として示されている。ここで、点c1および点c2は、撮像面上に存在するため、そのy座標は焦点距離fであり、実空間における点c1および点c2の座標は、以下の(数式11)のように表現することが可能である。
また、点c1に対応する道路平面上の点C1は、原点Oと点c1とを通過する直線上に存在する。同様に、点c2に対応する道路平面上の点C2は、原点Oと点c2とを通過する直線上に存在する。したがって、実空間における点C1および点C2の座標は、以下の(数式12)のように表現することが可能である。
ここで、ベクトルC1−C2は、道路平面式R1・x+R2・y+R3・z+R4=0で表現される道路平面に垂直であるという条件と(数式12)とに基づいて、以下の(数式13)が導き出される。
(数式13)をxyzそれぞれの成分について記述すると、以下の(数式14)から(数式16)のように表現される。
ここで、x軸が実空間における水平方向に設定されているとすると、道路平面の垂線であるベクトルC1−C2のx成分は小さいため、(数式13)に示されたベクトルC1−C2のx成分を無視することができる。そこで、(数式13)に示されたベクトルC1−C2のyz成分を連立方程式として扱い、この連立方程式を解くと、以下の(数式17)が導き出される。
また、点C1は、道路平面上に存在する。(なお、点C2は点C1の鉛直線上に存在する。)したがって、道路平面式R1・x+R2・y+R3・z+R4=0と(数式12)とに基づいて、以下の(数式18)が導き出される。
また、道路平面パラメータを含む演算式によって表される実空間における点C1と点C2との距離は、以下の(数式19)のように表される。
また、道路平面パラメータを含む演算式によって表される実空間における点C1と点C2との距離から、実空間において入力された点C1と点C2との距離Hを減じた結果F4は、以下の(数式20)のように表現することが可能である。
道路平面パラメータを含む演算式によって表される実空間における点C1と点C2との距離と、実空間において入力された点C1と点C2との距離Wとが完全に一致すれば、F4が0(ゼロ)であるという関係が成立する。(数式20)によって示されるF4は、後に利用される。
続いて、キャリブレーション部113は、F1〜F4の加算結果が最小となる場合を算出し、F1〜F4の加算結果が最小となる場合における道路平面パラメータ(上記したR1、R2、R3およびR4)および焦点距離fを特定する。F1〜F4の加算結果が最小となる場合を算出する手法は特に限定されない。例えば、F1〜F4の加算結果が最小となる場合を算出する手法は、最小二乗法であってもよいし、連立方程式の計算であってもよいし、他の手法であってもよい。
なお、キャリブレーションの計算量を軽減するため、焦点距離fを正とするとよい。また、道路平面に対して撮像部130が存在する範囲だけを道路平面パラメータの探索範囲とすればよいため、R2を正とし、R3を負とすれば、キャリブレーションの計算量が軽減される。また、F1〜F4それぞれには、重みW1〜W4が乗じられてから加算されてもよい。探索範囲および重みW1〜W4は、設定ファイルに記録されていれば、設定ファイルの更新によって探索範囲および重みW1〜W4を変更することが可能である。
続いて、表示制御部114は、道路平面パラメータによって特定される道路平面に応じた所定の情報を撮像面における座標に変換し、変換後の情報を撮像画像に重畳させる。所定の情報は特に限定されないが、道路平面上の矩形枠を示す情報および道路平面の垂線を示す情報のうち、少なくともいずれか一方を含んでもよい。ここでは、所定の情報が道路平面上の矩形枠を示す情報および道路平面の垂線を示す情報の両方を含む場合を想定する。
図12は、道路平面上の矩形枠を示す情報および道路平面の垂線を示す情報の例を示す図である。図12に示すように、表示制御部114は、出力画面G5を表示部190に表示させている。出力画面G5には、撮像部130によって撮像された撮像画像が含まれている。また、出力画面G5には、出力情報として道路の垂線と道路平面を表示する旨の通知が含まれ、キャリブレーション継続ボタンG51およびキャリブレーション完了ボタンG52が含まれている。
ここで、出力画面G5には、道路平面パラメータによって特定される道路平面上の矩形枠が撮像面における座標に変換された後の矩形枠P1が含まれている。また、出力画面G5には、道路平面パラメータによって特定される道路平面の垂線が撮像面における座標に変換された後の垂線N1が含まれている。矩形枠P1は、道路平面から大きく外れており、垂線N1も道路平面の垂線から大きく外れてしまっている。したがって、操作者がキャリブレーション継続ボタンG51を押下し、入力情報取得部112がキャリブレーション継続ボタンG51の押下を取得した場合を想定する。
続いて、キャリブレーションの精度を向上させるため、道路平面に少なくとも一端が存在するラインの方向もキャリブレーションに利用する。まず、道路平面に少なくとも一端が存在するラインの方向の入力例(一つ目)について説明する。図13は、道路から伸びる垂線の方向の入力画面の例を示す図である。図13に示すように、表示制御部114は、入力画面G6を表示部190に表示させている。入力画面G6には、撮像部130によって撮像された撮像画像が含まれている。また、入力画面G6には、入力情報5として道路から伸びる垂線の方向を入力する旨の指示が含まれ、戻るボタンG61および次へボタンG62が含まれている。
操作者が撮像画像における道路から伸びる垂線の方向L6を入力すると、入力情報取得部112は、撮像画像における道路から伸びる垂線の方向L6を取得する。例えば、操作者は、撮像画像における道路から伸びる垂線の方向L6を入力し終わると、次へボタンG63を押下する操作を行う。入力情報取得部112が、次へボタンG63を押下する操作を受け付けると、キャリブレーション部113は、撮像画像における道路から伸びる垂線の方向L6をキャリブレーションに利用する。一方、戻るボタンG61を押下する操作が操作者によってなされ、入力情報取得部112が、戻るボタンG61を押下する操作を受け付けると、表示制御部114は、出力画面G5を表示部190に再度表示させる。
図14は、撮像画像における道路から伸びる垂線の方向L6のキャリブレーションへの利用について説明するための図である。図14には、撮像画像における道路から伸びる垂線の方向L6の両端が点d1および点d2として示されている。ここで、点d1および点d2は、撮像面上に存在するため、そのy座標は焦点距離fであり、実空間における点d1および点d2の座標は、以下の(数式21)のように表現することが可能である。
また、点d1に対応する道路平面上の点D1は、原点Oと点d1とを通過する直線上に存在する。同様に、点d2に対応する道路平面上の点D2は、原点Oと点d2とを通過する直線上に存在する。したがって、実空間における点D1および点D2の座標は、以下の(数式22)のように表現することが可能である。ただし、ベクトルD1−D2の長さは如何なる値であってもよいため、点D2を表す式のうち、垂線方向(R1,R2,R3)に乗じられる係数は便宜的に決めている。
また、点D1および点D2を撮像面上に射影した点を点D1’および点D2’とすると、点D1’および点D2’は、撮像面上に存在するため、そのy座標は焦点距離fであり、点D1と点D1’とを結ぶ直線が原点を通過し、点D2と点D2’とを結ぶ直線が原点を通過する。したがって、点D1’および点D2’の座標は、以下の(数式23)のように表現することが可能である。
ここで、ベクトルD2’−D1’は、(数式23)に基づいて、以下の(数式24)のように表現することが可能である。
一方、ベクトルd2−d1は、(数式21)に基づいて、以下の(数式25)のように表現することが可能である。
(数式24)によって示されるベクトルD2’−D1’と(数式25)によって示されるベクトルd2−d1とのなす角度をθ1とすると、cosθ1は、以下の(数式26)のように表現することが可能である。
このとき、θ1をF5とすると、F5は、以下の(数式27)のように表現することが可能である。
道路平面パラメータを含む演算式によって表される道路から伸びる垂線の方向と、撮像画像において入力された道路から伸びる垂線の方向L6とが完全に一致すれば、F5が0(ゼロ)であるという関係が成立する。(数式27)によって示されるF5は、後に利用される。
続いて、道路平面に少なくとも一端が存在するラインの方向の入力例(二つ目)について説明する。図15は、車両の進行方向の入力画面の例を示す図である。図15に示すように、表示制御部114は、入力画面G7を表示部190に表示させている。入力画面G7には、撮像部130によって撮像された撮像画像が含まれている。また、入力画面G7には、入力情報6−1として道路上に車両の進行方向を入力する旨の指示が含まれ、戻るボタンG71および次へボタンG72が含まれている。
操作者が撮像画像における道路上の車両の進行方向L71を入力すると、入力情報取得部112は、撮像画像における道路上の車両の進行方向L71を取得する。例えば、操作者は、撮像画像における道路上の車両の進行方向L71を入力し終わると、次へボタンG72を押下する操作を行う。入力情報取得部112が、次へボタンG72を押下する操作を受け付けると、キャリブレーション部113は、撮像画像における道路上の車両の進行方向L71をキャリブレーションに利用する。
一方、戻るボタンG71を押下する操作が操作者によってなされ、入力情報取得部112が、戻るボタンG71を押下する操作を受け付けると、表示制御部114は、出力画面G6を表示部190に再度表示させる。なお、ここでは、操作者が道路上の車両の進行方向L71を入力する例を説明したが、既に操作者によって撮像画像において入力された平行な二直線の一方が撮像画像における道路上の車両の進行方向L71として用いられてもよい。
図16は、撮像画像における道路上の車両の進行方向L71のキャリブレーションへの利用について説明するための図である。図16には、撮像画像における道路上の車両の進行方向L71を示すベクトルの両端が点pt1および点pt2として示されている。ここで、撮像面における点pt1および点pt2に対応する実空間における道路平面上の点を、点PT1および点PT2とする。このとき、実空間における道路上の車両の進行方向を示すベクトルPT2−PT1を、以下の(数式28)のように定義する。
ここで、実空間における道路平面の垂線ベクトル(R1,R2,R3)と実空間における道路上の車両の進行方向を示すベクトルdirVecとの両方に対して垂直なベクトルVecは、以下の(数式29)のように表現される。このベクトルVecは、車両の走行レーンを車両の進行方向に対して垂直方向に横断する方向(以下、「横断方向」とも言う。)を示すベクトル(以下、「横断ベクトル」とも言う。)に相当し、キャリブレーションに利用される。
図17は、横断方向の入力画面の例を示す図である。図17に示すように、表示制御部114は、入力画面G8を表示部190に表示させている。入力画面G8には、撮像部130によって撮像された撮像画像が含まれている。また、入力画面G8には、入力情報6−2として横断方向を入力する旨の指示が含まれ、戻るボタンG81および次へボタンG82が含まれている。
操作者が撮像画像における横断方向L72を入力すると、入力情報取得部112は、撮像画像における横断方向L72を取得する。例えば、操作者は、撮像画像における横断方向L72を入力し終わると、次へボタンG82を押下する操作を行う。入力情報取得部112が、次へボタンG82を押下する操作を受け付けると、キャリブレーション部113は、撮像画像における横断方向L72をキャリブレーションに利用する。一方、戻るボタンG81を押下する操作が操作者によってなされ、入力情報取得部112が、戻るボタンG81を押下する操作を受け付けると、表示制御部114は、出力画面G8を表示部190に再度表示させる。
図18は、撮像画像における横断方向L72のキャリブレーションへの利用について説明するための図である。図18には、撮像画像における横断方向L72を示すベクトルの両端が点e1および点e2として示されている。点e1および点e2は、撮像面上に存在するため、そのy座標は焦点距離fであり、実空間における点e1および点e2の座標は、以下の(数式30)のように表現することが可能である。
また、点e1に対応する道路平面上の点E1は、原点Oと点e1とを通過する直線上に存在する。同様に、点e2に対応する道路平面上の点E2は、原点Oと点e2とを通過する直線上に存在する。したがって、実空間における点E1および点E2の座標は、以下の(数式31)のように表現することが可能である。
ここで、点E1および点E2は、道路平面上に存在する。したがって、道路平面式R1・x+R2・y+R3・z+R4=0と(数式31)とに基づいて、以下の(数式32)が導き出される。
また、点E1に横断ベクトルVecを加算することによって得られる点を点E3とし、点E3を撮像面上に射影した点を点e3とし、ベクトルe3−e1とベクトルe2−e1とのなす角度をθ2とすると、cosθ2は、以下の(数式33)のように表現することが可能である。
このとき、θ2をF6とすると、F6は、以下の(数式34)のように表現することが可能である。
道路平面パラメータを含む演算式によって表される撮像画像における横断ベクトルe1−e3と撮像画像において入力された横断ベクトルe1−e2とが完全に一致すれば、F6が0(ゼロ)であるという関係が成立する。(数式34)によって示されるF6は、後に利用される。
続いて、キャリブレーション部113は、F1〜F6に基づいて道路平面パラメータを再推定する。より具体的には、F1〜F6に対して重みW1〜W6が乗じられて得られた乗算値W1・F1〜W6・F6に基づいて、道路平面パラメータを再推定する。例えば、キャリブレーション部113は、以下の(数式35)によって示されるCostが最小となる場合を算出し、F1〜F4の加算結果が最小となる場合における道路平面パラメータ(上記したR1、R2、R3およびR4)および焦点距離fを特定する。
なお、上記と同様に、F1〜F6の加算結果が最小となる場合を算出する手法は特に限定されない。例えば、F1〜F6の加算結果が最小となる場合を算出する手法は、最小二乗法であってもよいし、連立方程式の計算であってもよいし、他の手法であってもよい。
また、上記したように、キャリブレーションの計算量を軽減するため、焦点距離fを正とするとよい。また、道路平面に対して撮像部130が存在する範囲だけを道路平面パラメータの探索範囲とすればよいため、R2を正とし、R3を負とすれば、キャリブレーションの計算量が軽減される。また、上記したように、探索範囲および重みW1〜W6は、設定ファイルに記録されていれば、設定ファイルの更新によって探索範囲および重みW1〜W6を変更することが可能である。
重みW1〜W6を設定する利点としては、様々な利点が考えられる。一つ目の利点としては、F1〜F6はオーダが異なるのが通例であるため、F1〜F6の間でオーダを調整することができるという利点が考えられる。二つ目の利点としては、F1〜F6の重要度をキャリブレーションに反映することができるという利点が考えられる。
一例として、操作者は、W1=0.018182、W2=0.018182、W3=0.036364、W4=0.018182、W5=0.454545、および、W6=0.0454545と設定してもよい。この例では、車両の速度の精度を求めるためには、道路平面上の二点間の距離の重要性が高いという事情に鑑み、W3を大きくしている。また、W5およびW6がW2およびW4の25倍に設定されているため、F5およびF6における1度のずれが、F2およびF4における25cmのずれに相当する。
続いて、表示制御部114は、再推定によって得られた道路平面パラメータによって特定される道路平面に応じた所定の情報を撮像面における座標に変換し、変換後の情報を撮像画像に重畳させる。所定の情報は特に限定されないが、道路平面上の矩形枠を示す情報および道路平面の垂線を示す情報のうち、少なくともいずれか一方を含んでもよい。ここでは、所定の情報が道路平面上の矩形枠を示す情報および道路平面の垂線を示す情報の両方を含む場合を想定する。
図19は、道路平面上の矩形枠を示す情報および道路平面の垂線を示す情報の例を示す図である。図19に示すように、表示制御部114は、出力画面G9を表示部190に表示させている。出力画面G9には、撮像部130によって撮像された撮像画像が含まれている。また、出力画面G9には、出力情報として道路の垂線と道路平面を表示する旨の通知が含まれ、キャリブレーション継続ボタンG91およびキャリブレーション完了ボタンG92が含まれている。
ここで、出力画面G9には、再推定によって得られた道路平面パラメータによって特定される道路平面上の矩形枠が撮像面における座標に変換された後の矩形枠P2が含まれている。また、出力画面G9には、再推定によって得られた道路平面パラメータによって特定される道路平面の垂線が撮像面における座標に変換された後の垂線N2が含まれている。キャリブレーションの精度が向上したため、矩形枠P2は、道路平面にほぼ合致しており、垂線N2も道路平面の垂線にほぼ合致している。
以上に説明したように、本実施形態によれば、撮像画像において入力された当該ラインの方向と道路平面パラメータを含む演算式によって表される当該方向とに基づいて、道路平面パラメータを推定する。かかる構成によれば、道路平面パラメータを推定するキャリブレーション処理の精度を向上させることが可能となる。
[変形例の説明]
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
例えば、上記においては、撮像画像において入力されるラインの方向以外の情報(F1〜F4)に基づいてキャリブレーションが行われ、さらに高精度なキャリブレーションが必要と操作者によって判断された場合に、再度キャリブレーションが行われる例を説明した。かかる構成によって、必要な場合にのみキャリブレーションが実行され得る。しかし、最初から撮像画像において入力されるラインの方向も考慮した(F1〜F6を考慮した)キャリブレーションが実行されてもよい。
また、上記においては、撮像画像において入力されるラインの方向として二つの方向を考慮した(F5およびF6を考慮した)キャリブレーションが行われる例を説明した。しかし、上記したように、未知数がR1、R2、R3、R4およびfの合計5つである場合には、撮像画像において入力されるラインの方向は一つ用いられればよい(例えば、F1〜F5が用いられてもよいし、F1〜F4およびF6が用いられてもよい)。また、事前にパラメータ(例えば、焦点距離f)が存在する場合には、F1〜F6よりそのパラメータの分だけ少ない数が用いられればよい。
例えば、情報処理装置10の制御部110を構成する各ブロックは、例えば、CPU(Central Processing Unit)、RAM(Random Access Memory)等から構成され、記憶部150により記憶されているプログラムがCPUによりRAMに展開されて実行されることにより、その機能が実現され得る。あるいは、制御部110を構成する各ブロックは、専用のハードウェアにより構成されていてもよいし、複数のハードウェアの組み合わせにより構成されてもよい。