以下、本発明の例示的な実施形態について、図面を参照しながら詳細に説明する。以下の説明では、移動体として車両を例にとり説明するが、移動体は車両に限定されない。車両には、例えば自動車、電車、無人搬送車等の車輪のついた乗り物が広く含まれる。車両以外の移動体として、例えば船舶や航空機等が挙げられる。
また以下の説明では、車両の直進進行方向であって、運転席からハンドルに向かう方向を「前方向」とする。また、車両の直進進行方向であって、ハンドルから運転席に向かう方向を「後方向」とする。また、車両の直進進行方向及び鉛直線に垂直な方向であって、前方向を向いている運転者の右側から左側に向かう方向を「左方向」とする。また、車両の直進進行方向及び鉛直線に垂直な方向であって、前方向を向いている運転者の左側から右側に向かう方向を「右方向」とする。
<1.異常検出システム>
図1は、実施形態に係る異常検出システムSYS1の構成を示すブロック図である。本実施形態において、異常は、カメラの取付けのずれが生じた状態である。すなわち、異常検出システムSYS1は、車両に搭載されたカメラ(車載カメラ)の取付けのずれを検出するシステムである。図1に示すように、異常検出システムSYS1は、異常検出装置1及び撮影部2を備える。
異常検出装置1は、車載カメラで撮影された撮影画像に基づいて異常を検出する装置である。異常検出装置1は、車載カメラを搭載する車両ごとに備えられる。本実施形態では、異常検出装置1は、撮影部2から撮影画像を取得する。
撮影部2は、車両周辺の状況を監視する目的で設けられる。撮影部2は、4つのカメラ21~24を備える。4つのカメラ21~24は、車載カメラである。図2は、4つの車載カメラ21~24が車両5に配置される位置を例示する図である。
車載カメラ21は車両5の前端に設けられる。このため、車載カメラ21をフロントカメラ21とも呼ぶ。フロントカメラ21の光軸21aは上からの平面視で車両5の前後方向に沿っている。フロントカメラ21は車両5の前方向を撮影する。車載カメラ22は車両5の後端に設けられる。このため、車載カメラ22をバックカメラ22とも呼ぶ。バックカメラ22の光軸22aは上からの平面視で車両5の前後方向に沿っている。バックカメラ22は車両5の後方向を撮影する。フロントカメラ21及びバックカメラ22の取付位置は、車両5の左右中央であることが好ましいが、左右中央から左右方向に多少ずれた位置であってもよい。
車載カメラ23は車両5の左側ドアミラー51に設けられる。このため、車載カメラ23を左サイドカメラ23とも呼ぶ。左サイドカメラ23の光軸23aは上からの平面視で車両5の左右方向に沿っている。左サイドカメラ23は車両5の左方向を撮影する。車載カメラ24は車両5の右側ドアミラー52に設けられる。このため、車載カメラ24を右サイドカメラ24とも呼ぶ。右サイドカメラ24の光軸24aは上からの平面視で車両5の左右方向に沿っている。右サイドカメラ24は車両5の右方向を撮影する。なお、車両5がいわゆるドアミラーレス車である場合には、左サイドカメラ23は左サイドドアの回転軸(ヒンジ部)の周辺にドアミラーを介することなく取り付けられ、右サイドカメラ24は右サイドドアの回転軸(ヒンジ部)の周辺にドアミラーを介することなく取り付けられる。
各車載カメラ21~24の水平方向の画角θは180度以上である。このため、車載カメラ21~24によって、車両5の水平方向における全周囲を撮影することができる。また、車載カメラ21~24によって撮影される画像には、車載カメラ21~24を搭載する車両5のボディが映り込む。
なお、本実施形態では、車載カメラの数を4つとしているが、この数は適宜変更されてよく、複数であっても単数であってもよい。例えば、車両5がバックで駐車することを支援する目的で車載カメラが搭載されている場合には、車載カメラは、バックカメラ22、左サイドカメラ23、右サイドカメラ24の3つで構成されてもよい。
図1に戻って、本実施形態では、ステアリングホイール(ハンドル)の回転角を検出する舵角センサ3の出力及び車両5の速度を検出する車速度センサ4の出力は、CAN(Controller Area Network)バス等の通信バスB1を介して異常検出装置1に入力される。
<2.異常検出装置>
図1に示すように、異常検出装置1は、取得部11と、制御部12と、記憶部13と、を備える。
取得部11は、車載カメラ21~24からアナログ又はデジタルの撮影画像を所定の周期(例えば、1/30秒周期)で時間的に連続して取得する。すなわち、取得部11によって取得される撮影画像の集合体が車載カメラ21~24で撮影された動画像である。そして、取得した撮影画像がアナログの場合には、取得部11は、そのアナログの撮影画像をデジタルの撮影画像に変換(A/D変換)する。取得部11は、取得した撮影画像、或いは、取得及び変換した撮影画像を制御部12に出力する。取得部11から出力される1つの撮影画像が1つのフレーム画像となる。
制御部12は、例えばマイクロコンピュータであり、異常検出装置1の全体を統括的に制御する。制御部12は、不図示のCPU(Central Processing Unit)、RAM(Random Access Memory)、及びROM(Read Only Memory)を含む。記憶部13は、例えば、フラッシュメモリ等の不揮発性のメモリであり、各種の情報を記憶する。記憶部13は、ファームウェアとしてのプログラムや各種のデータを記憶する。
制御部12は、抽出部121、特定部122、推定部123、及び判定部124を備える。なお、制御部12の抽出部121、特定部122、推定部123、及び判定部124の少なくともいずれか一つは、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等のハードウェアで構成されてもよい。また、抽出部121、特定部122、推定部123、及び判定部124は、概念的な構成要素である。1つの構成要素が実行する機能を複数の構成要素に分散させたり、複数の構成要素が有する機能を1つの構成要素に統合したりしてよい。また、取得部11は、制御部12のCPUがプログラムに従って演算処理を行うことによって実現される構成でもよい。
抽出部121は、各車載カメラ21~24からの撮影画像から第1特徴点及び第2特徴点を含む複数の特徴点を抽出する。特徴点は、撮影画像中のエッジの交点など、撮影画像において際立って検出できる点である。特徴点は、例えば路面に描かれた白線のエッジ、路面上のひび、路面上のしみ、路面上の砂利などである。特徴点は、通常、1つの撮影画像の中に多数存在する。抽出部121は、例えば、ハリスオペレータ等の公知の手法を用いて特徴点を抽出する。抽出部121は、路面上の特徴点の中から第1特徴点及び第2特徴点を選定する。第1特徴点と第2特徴点とは互いに異なる特徴点である。なお、本実施形態では、所定の平面として路面を想定する。
特定部122は、異なる時刻で撮影された2つの撮影画像から抽出された第1特徴点及び第2特徴点の各オプティカルフローを導出する。オプティカルフローは、異なる時刻で撮影された2つの撮影画像間における特徴点の動きを示す動きベクトルである。異なる時刻の間隔は、取得部11のフレーム周期と同一であってもよく、取得部11のフレーム周期の複数倍であってもよい。
特定部122は、第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第1所定距離以上第2所定距離未満離れていると推定でき、且つ、車両5の実世界上の上記異なる時刻の間隔での移動量が第3所定距離以上第4所定距離未満であると推定できる場合に、第1特徴点及び第2特徴点の各オプティカルフローを用いて、異なる時刻で撮影された2つの撮影画像から抽出された第1特徴点及び第2特徴点の各位置変化を算出する。なお、第2所定距離は第1所定距離より長く、第4所定距離は第3所定距離より長い。第1所定距離と第3所定距離とは同一であってもよく異なっていてもよい。第2所定距離と第4所定距離とは同一であってもよく異なっていてもよい。撮影画像がフロントカメラ21又はバックカメラ22で撮影された画像である場合、所定の方向は左右方向にすればよい。一方、撮影画像が左サイドカメラ23又は右サイドカメラ24で撮影された画像である場合、所定の方向は前後方向にすればよい。
特定部122は、第1特徴点の位置変化及び第2特徴点の位置変化に基づき、所定の平面との交線が互いに平行となる面の組を2組特定する。
なお、単一の撮影画像から第1特徴点及び第2特徴点のいずれか一方のみしか抽出できない場合がある。また、単一の撮影画像から抽出された第1特徴点及び第2特徴点が適切な位置関係でない場合がある。
単一の撮影画像から第1特徴点及び第2特徴点のいずれか一方のみしか抽出できない場合の例として、図3に示す撮影画像及び図4に示す撮影画像を挙げることができる。
図3は、フロントカメラ21で撮影される撮影画像を模式的に示している。図3に示す撮影画像は、車両5のボディが映り込む領域BOを含む。図3に示す撮影画像内の斜線部は影を示しており、図3に示す撮影画像内の点線四角内が特徴点の抽出可能領域となるROI(region of interest)である。図3に示す撮影画像では、影の影響により路面RS上に存在する特徴点FPを一つしか抽出できない。
図4は、左サイドカメラ23で撮影される撮影画像を模式的に示している。図4に示す撮影画像は、車両5のボディが映り込む領域BOを含む。図4に示す撮影画像内の点線四角内が特徴点の抽出可能領域となるROIである。図4に示す撮影画像では、ROI内に白線のコーナーが1つしか存在しないため路面RS上に存在する特徴点FPを一つしか抽出できない。
単一の撮影画像から抽出された第1特徴点及び第2特徴点が適切な位置関係でない場合の例として、図5に示す撮影画像を挙げることができる。
図5は、フロントカメラ21で撮影される撮影画像を模式的に示している。図5に示す撮影画像は、車両5のボディが映り込む領域BOを含む。図5に示す撮影画像内の斜線部は影を示しており、図5に示す撮影画像内の点線四角内が特徴点の抽出可能領域となるROIである。図5に示す撮影画像では、影の影響により路面RS上に存在する特徴点FPを局所的な場所でしか抽出できない。第1特徴点と第2特徴点が局所的な場所に偏在していると、PAN軸、TILT軸、及びROLL軸の一部でカメラの姿勢推定の精度が劣るおそれがある。
単一の撮影画像から第1特徴点及び第2特徴点のいずれか一方のみしか抽出できない場合、又は、単一の撮影画像から抽出された第1特徴点及び第2特徴点が適切な位置関係でない場合、抽出部121は、第1時刻と第1時刻より後の第2時刻で撮影された2つの撮影画像それぞれから特徴点を抽出し、第1時刻より後の第3時刻と第3時刻より後の第4時刻で撮影された2つの前記撮影画像それぞれから特徴点を抽出すればよい。そして、特定部122は、第1時刻と第2時刻で撮影された2つの撮影画像から抽出された特徴点から、互いに対応する第1特徴点を選定し、第1特徴点の位置変化を算出し、第3時刻と第4時刻で撮影された2つの撮影画像から抽出された特徴点から、第1特徴点とは異なり、互いに対応する第1特徴点を選定し、第2特徴点の位置変化を算出し、第1特徴点の位置変化及び第2特徴点の位置変化に基づき、所定の平面との交線が互いに平行となる面の組を2組特定すればよい。
推定部123は、特定部122で特定した面の組に基づきカメラの姿勢(カメラの取付け角度)を推定する。例えば抽出部121がフロントカメラ21から第1特徴点及び第2特徴点を抽出した場合、推定部123はフロントカメラ21の姿勢(カメラの取付け角度)を推定する。
判定部124は、推定部123によって推定されたカメラの姿勢に基づき、カメラの取付けのずれが生じた状態であるか否かを判定する。カメラの取付けのずれが生じた状態であると判定されると、異常検出装置1がカメラの異常を検出したことになる。例えば、この異常を異常検出装置1が車両5のユーザに報知することで、車両5のユーザはディーラによるカメラの取付調整を依頼する等の対策をとることが可能となる。
取得部11、抽出部121、特定部122、及び推定部123によって姿勢推定装置14が構成される。言い換えると、異常検出装置1は姿勢推定装置14を備える。図6は、姿勢推定装置14によるカメラの姿勢推定フローの一例を示すフローチャートである。以下、フロントカメラ21の姿勢を推定する場合を例に挙げて説明する。
図6に示すように、抽出部121は特徴点を抽出する(ステップS1)。より詳細には、ステップS1において、抽出部121は、最新の撮影画像である現フレームの特徴点と現フレームよりLフレーム前の撮影画像の特徴点を抽出する。
次に、特定部122は、オプティカルフローを導出する(ステップS2)。より詳細には、ステップS2において、抽出部121は、最新の撮影画像(現フレーム)と現フレームよりL(Lは自然数)フレーム前の撮影画像から抽出された特徴点のオプティカルフローを導出する。
なお、ステップS2においてオプティカルフローが1つも導出されない場合は、現フレームより1フレーム後のフレームを新たな現フレームとし、その新たな現フレームに関して、ステップS1及びS2の処理を実行する。
記憶部13は、ステップS2で導出されたオプティカルフローを最新のオプティカルフローとして記憶する。最新のオプティカルフローは、現フレームの更新により過去のオプティカルフローに変化する。記憶部13は、最新のオプティカルフローが過去のオプティカルフローに変化した時点から一定時間が経過する迄の間、過去のオプティカルフローを記憶する。
ステップS2におけるオプティカルフローの導出が終了すると、特定部122は、特徴点に対し、記憶部13に記憶されているフロントカメラ21に内部パラメータを用いて座標変換を行う。座標変換では、フロントカメラ21の収差補正と、歪補正とが行われる。収差補正は、フロントカメラ21の光学系の収差による歪みを補正するために行われる。具体的には樽型歪みや糸巻歪みなど歪曲収差の補正である。歪み補正は、フロントカメラ21の光学系そのものの歪みを補正するために行われる。具体的には魚眼補正などである。座標変換により、特徴点の座標は、被写体が透視投影によって撮影された場合に二次元画像上で得られる座標に変換される。
上述した特徴点の座標変換が終了すると、特定部122は、最新のオプティカルフローのみで四角形を仮想的に形成できるか否かを判定する(ステップS3)。
第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第1所定距離以上第2所定距離未満離れていると推定でき、車両5の実世界上の現フレームの撮影時点と現フレームよりL(Lは自然数)フレーム前の撮影時点との間隔での移動量が第3所定距離以上第4所定距離未満であると推定でき、且つ最新のオプティカルフローのみで四角形を仮想的に形成できると判定した場合(ステップS3のYES)、特定部122は、最新のオプティカルフローのみで四角形を仮想的に形成する(ステップS4)。以降、説明のために四角形や、該四角形の辺などの幾何的要素を仮想的に形成して用いる。しかし、実際の処理では、特徴点の座標や直線の方向などのベクトル演算に基づき、同等の作用を持つ幾何的要素に基づかない処理としてもよい。
ここで、ステップS1、S2、S3、及びS4の順で処理が実行される場合の具体例について図7A、図7B、及び図8を参照して説明する。図7Aは現フレームよりL(Lは自然数)フレーム前の撮影画像を模式的に示す図である。図7Bは現フレームを模式的に示す図である。図8は仮想的に形成される四角形を模式的に示す図である。
図7Aに示す撮影画像P1及び図7Bに示す撮影画像P2はフロントカメラ21で撮影される。撮影画像P1及びP2は、車両5のボディが映り込む領域BOを含む。第1特徴点FP1及び第2特徴点FP2は路面RS上に存在する。図7A及び図7Bにおいては、路面に描かれている白線のコーナーに第1特徴点FP1及び第2特徴点FP2が存在する。
撮影画像P1の撮影時点から撮影画像P2の撮影時点迄の間に、車両5は前方に直進している。図7Bに示す丸印FP1Pは、撮影画像P1の撮影時点における第1特徴点FP1の位置を示す。図7Bに示す丸印FP2Pは、撮影画像P1の撮影時点における第2特徴点FP2の位置を示す。
図7Bに示すように、車両5が前方に直進すると、車両5の前方に存在する第1特徴点FP1及び第2特徴点FP2は車両5に近づく。すなわち、第1特徴点FP1及び第2特徴点FP2は、撮影画像P2と撮影画像P1とで異なる位置に現れる。特定部122は、撮影画像P2の第1特徴点FP1と撮影画像P1の第1特徴点FP1とを、その近傍の画素値に基づいて対応付け、対応付けた第1特徴点FP1のそれぞれの位置に基づいて、第1特徴点FP1のオプティカルフローOF1を導出する。同様に、特定部122は、撮影画像P2の第2特徴点FP2と撮影画像P1の第2特徴点FP2とを、その近傍の画素値に基づいて対応付け、対応付けた第2特徴点FP2のそれぞれの位置に基づいて、第2特徴点FP2のオプティカルフローOF2を導出する。
第1特徴点FP1のオプティカルフローOF1と第2特徴点FP2のオプティカルフローOF2が導出されると、特定部122は、特徴点に対し、記憶部13に記憶されているフロントカメラ21に内部パラメータを用いて座標変換を行う。座標変換では、フロントカメラ21の収差補正と、歪補正とが行われる。収差補正は、フロントカメラ21の光学系の収差による歪みを補正するために行われる。具体的には樽型歪みや糸巻歪みなど歪曲収差の補正である。歪み補正は、フロントカメラ21の光学系そのものの歪みを補正するために行われる。具体的には魚眼補正などである。座標変換により、特徴点の座標は、被写体が透視投影によって撮影された場合に二次元画像上で得られる座標に変換される。
特徴点の座標変換が行われると、特定部122は、図8に示すように、第1特徴点FP1のオプティカルフローOF1の始点を頂点SP1、第1特徴点FP1のオプティカルフローOF1の終点を頂点EP1、第2特徴点FP1のオプティカルフローOF2の始点を頂点SP2、及び第2特徴点FP2のオプティカルフローOF2の終点を頂点EPとする四角形QLを仮想的に形成する。
図6に戻ってフローチャートのステップS5に関して説明する。最新のオプティカルフローのみで四角形を仮想的に形成できないと判定した場合(ステップS3のNO)、特定部122は、第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第1所定距離以上第2所定距離未満離れていると推定でき、且つ車両5の実世界上の現フレームの撮影時点と現フレームよりL(Lは自然数)フレーム前の撮影時点との間隔及び現フレームよりN(Nは自然数)フレーム前の撮影時点と現フレームよりM(Mは自然数)フレーム前の撮影時点の間隔それぞれでの移動量が第3所定距離以上第4所定距離未満であると推定できれば、過去のオプティカルフローと最新のオプティカルフローを用いて四角形を仮想的に形成する(ステップS5)。なお、上述した推定ができなければ、ステップS5~S9を実施することなく、フローチャートを終了する。本実施形態では、上記N、M、及びLについてN>M>Lであるが、MとLは同一であってもよく、LがMより大きく且つNより小さくてもよい。
ここで、ステップS1、S2、S3、及びS5の順で処理が実行される場合の具体例について図7C~図7F及び図8を参照して説明する。図7Cは現フレームよりNフレーム前の撮影画像を模式的に示す図である。図7Dは現フレームよりMフレーム前の撮影画像を模式的に示す図である。図7Eは現フレームよりLフレーム前の撮影画像を模式的に示す図である。図7Fは現フレームを模式的に示す図である。
図7Cに示す撮影画像P11は第1時刻で撮影された撮影画像の一例である。図7Dに示す撮影画像P12は第1時刻より後の第2時刻で撮影された撮影画像の一例である。図7Eに示す撮影画像P13は第2時刻以後の第3時刻で撮影された撮影画像の一例である。図7Fに示す撮影画像P14は第3時刻より後の第4時刻で撮影された撮影画像の一例である。
図7C~図7Fに示す撮影画像P11~P14はフロントカメラ21で撮影される。撮影画像P11~P14は、車両5のボディが映り込む領域BOを含む。第1特徴点FP1及び第2特徴点FP2は路面RS上に存在する。図7C及び図7Dにおいては、路面に描かれている白線のコーナーに第1特徴点FP1が存在する。図7E及び図7Fにおいては、路面に描かれている白線のコーナーに第2特徴点FP2が存在する。
撮影画像P11の撮影時点から撮影画像P12の撮影時点迄の間に、車両5は前方に直進している。図7Dに示す丸印FP1Pは、撮影画像P11の撮影時点における第1特徴点FP1の位置を示す。同様に、撮影画像P13の撮影時点から撮影画像P14の撮影時点迄の間に、車両5は前方に直進している。図7Fに示す丸印FP2Pは、撮影画像P13の撮影時点における第2特徴点FP2の位置を示す。
図7Dに示すように、車両5が前方に直進すると、車両5の前方に存在する第1特徴点FP1は車両5に近づく。すなわち、第1特徴点FP1は、撮影画像P12と撮影画像P11とで異なる位置に現れる。特定部122は、撮影画像P12の第1特徴点FP1と撮影画像P11の第1特徴点FP1とを、その近傍の画素値に基づいて対応付け、対応付けた第1特徴点FP1のそれぞれの位置に基づいて、第1特徴点FP1のオプティカルフローOF1を導出する。
図7Fに示すように、車両5が前方に直進すると、車両5の前方に存在する第2特徴点FP2は車両5に近づく。すなわち、第2特徴点FP2は、撮影画像P14と撮影画像P13とで異なる位置に現れる。特定部122は、撮影画像P14の第2特徴点FP2と撮影画像P13の第2特徴点FP2とを、その近傍の画素値に基づいて対応付け、対応付けた第2特徴点FP2のそれぞれの位置に基づいて、第2特徴点FP2のオプティカルフローOF2を導出する。
第1特徴点FP1のオプティカルフローOF1と第2特徴点FP2のオプティカルフローOF2が導出されると、特定部122は、特徴点に対し、記憶部13に記憶されているフロントカメラ21に内部パラメータを用いて座標変換を行う。座標変換では、フロントカメラ21の収差補正と、歪補正とが行われる。収差補正は、フロントカメラ21の光学系の収差による歪みを補正するために行われる。具体的には樽型歪みや糸巻歪みなど歪曲収差の補正である。歪み補正は、フロントカメラ21の光学系そのものの歪みを補正するために行われる。具体的には魚眼補正などである。座標変換により、特徴点の座標は、被写体が透視投影によって撮影された場合に二次元画像上で得られる座標に変換される。
特徴点の座標変換が行われると、特定部122は、図8に示すように、第1特徴点FP1のオプティカルフローOF1の始点を頂点SP1、第1特徴点FP1のオプティカルフローOF1の終点を頂点EP1、第2特徴点FP1のオプティカルフローOF2の始点を頂点SP2、及び第2特徴点FP2のオプティカルフローOF2の終点を頂点EPとする四角形QLを仮想的に形成する。
図6に戻ってフローチャートのステップS5より後の処理に関して説明する。
四角形QLが仮想的に形成されると、特定部122は、四角形QLと、記憶部13に記憶されているフロントカメラ21の内部パラメータとを用いて、三次元空間におけるフロントカメラ21の投影面IMG上に四角形QLを移動させ、投影面IMG上での四角形QL1を仮想的に生成する(ステップS6)。
なお説明のため、以下のように四角形QL1の辺を定義する(図9参照)。四角形QL1の第1辺SD1は、四角形QLにおいて、頂点SP1および頂点SP2を結んだ辺に対応する。つまり、第1特徴点FP1のオプティカルフローOF1の始点と第2特徴点FP2のオプティカルフローOF2の始点とを結んだ辺に相当する。同様に、四角形QL1の第2辺SD2は、四角形QLにおいて、頂点SP2および頂点EP2を結んだ辺に対応する。つまり、第2特徴点FP2のオプティカルフローOF2に相当する。同様に、四角形QL1の第3辺SD3は、四角形QLにおいて、頂点EP1および頂点EP2を結んだ辺に対応する。つまり、第1特徴点FP1のオプティカルフローOF1の終点と第2特徴点FP2のオプティカルフローOF2の終点とを結んだ辺に相当する。同様に、四角形QL1の第4辺SD4は、四角形QLにおいて、頂点SP1および頂点EP1を結んだ辺に対応する。つまり、第1特徴点FP1のオプティカルフローOF1に相当する。
また、以下のように面を定義する(図9参照)。四角形QL1の第1辺SD1とフロントカメラ21の光学中心OCとが含まれる面を第1面F1とする。同様に、四角形QL1の第2辺SD2とフロントカメラ21の光学中心OCとが含まれる面を第2面F2とする。同様に、四角形QL1の第3辺SD3とフロントカメラ21の光学中心OCとが含まれる面を第3面F3とする。同様に、四角形QL1の第4辺SD4とフロントカメラ21の光学中心OCとが含まれる面を第4面F4とする。
ステップS6に続くステップS7において、特定部122は、所定の平面との交線が互いに平行になる面の組を2組特定する。所定の平面とはあらかじめ平面の法線が分かっている面である。具体的には車両5が移動を行っている平面であり、つまり路面である。所定の平面は、厳密な平面でなくてもよく、特定部122が所定の平面との交線が互いに平行になる面の組を2組特定する際に平面とみなすことができるものであればよい。
本実施形態では、第1特徴点及び第2特徴点は路面などの所定の平面上に位置している静止物から抽出される。したがって、特定部122によって導出される第1特徴点及び第2特徴点の各オプティカルフローは実世界上では、車両5に対する静止物の相対的な位置変化を表す。つまり向きが逆となった車両5の移動ベクトルである。
四角形QL1の第2辺SD2と第4辺SD4とは、共に特徴点のオプティカルフローに対応するので、共に実世界上では車両5の移動ベクトルに相当する。したがって、路面上では互いに平行となると想定される。
また、四角形QL1の第1辺SD1と第3辺SD3とは、共に特徴点同士の位置関係なので、実世界上では車両5の移動に伴う静止物同士の位置関係に相当する。移動前の位置関係が第1辺SD1に相当し、移動後の位置関係が第3辺SD3に相当する。このとき静止物の位置は変わらないため、移動前後で位置関係は変わらない。したがって、路面上ではこれも互いに平行となると想定される。
したがって、特定部122は、路面との交線が平行な面として、第2面F2と第4面F4との組と、第1面F1と第3面F3との組と、の2つの組を特定する。つまり、特定部122は、オプティカルフローを含む面同士を1つの組とし、同時刻に撮影された特徴点を含む面同士を他の組として、計2つの組を特定する。
なお、図9において四角形QL2は、図7Aに示す撮影画像P1及び図7Bに示す撮影画像P2で得られるオプティカルフローを用いて仮想的に形成した場合、撮影画像P2の撮影時点での第1特徴点FP1の3次元空間(実世界)上の位置、撮影画像P2の撮影時点での第2特徴点FP2の3次元空間上の位置、撮影画像P1の撮影時点での第1特徴点FP1の3次元空間上の位置、及び撮影画像P1の撮影時点での第2特徴点FP2の3次元空間上の位置を頂点とする四角形である。
一方、図9において四角形QL2は、図7Cに示す撮影画像P11、図7Dに示す撮影画像P12、図7Eに示す撮影画像P13、及び図7Fに示す撮影画像P14で得られるオプティカルフローを用いて仮想的に形成した場合、撮影画像P12の撮影時点での第1特徴点FP1の3次元空間(実世界)上の位置、撮影画像P14の撮影時点での第2特徴点FP2の3次元空間上の位置、撮影画像P11の撮影時点での第1特徴点FP1の3次元空間上の位置、及び撮影画像P13の撮影時点での第2特徴点FP2の3次元空間上の位置を頂点とする四角形である。
第1面F1は、四角形QL2の第1辺SD11を含む。同様に、第2面F2は四角形QL2の第2辺SD12を含み、第3面F3は四角形QL2の第3辺SD13を含み、第4面F4は四角形QL2の第4辺SD14を含む。このとき、上記のように四角形QL2は路面上に形成される平行四辺形であると想定される。
次に、推定部123は、路面の法線を算出する(ステップS8)。まず、推定部123は、特定部122で特定した面の組の一方である第1面F1と第3面F3とに基づき、面同士の交線の方向を求める。詳細には、第1面F1と第3面F3との交線CL1の向きを求める(図10参照)。交線CL1の方向ベクトルV1は、第1面F1の法線ベクトル及び第3面F3の法線ベクトルそれぞれと垂直なベクトルである。したがって、推定部123は、第1面F1の法線ベクトルと第3面F3の法線ベクトルとの外積により、交線CL1の方向ベクトルV1を求める。第1面F1と第3面F3は、路面との交線が平行となるため、方向ベクトルV1は路面と平行になる。
同様に、推定部123は、特定部122で特定した面の組の他方である第2面F2と第4面F4との交線の方向を求める。詳細には第2面F2と第4面F4との交線CL2の向きを求める(図11参照)。交線CL2の方向ベクトルV2は、第2面F2の法線ベクトル及び第4面F4の法線ベクトルそれぞれと垂直なベクトルである。したがって、推定部123は、第2面F2の法線ベクトルと第4面F4の法線ベクトルとの外積により、交線CL2の方向ベクトルV2を求める。第2面F2と第4面F4も同様に、路面との交線が平行となるため、方向ベクトルV2は路面と平行になる。
推定部123は、方向ベクトルV1と方向ベクトルV2との外積により、四角形QL2の面の法線、すなわち路面の法線を算出する。推定部123が算出した路面の法線はフロントカメラ21のカメラ座標系で算出されるため、実際の路面の法線である垂直方向との違いから3次元空間の座標系を求め、路面に対するフロントカメラ21の姿勢を推定することができる。その推定結果から推定部123は車両5に対するフロントカメラ21の姿勢を推定する(ステップS9)。なお、ステップS7の算出処理は、例えば公知のARToolkitを利用して実行することができる。
ステップS9におけるフロントカメラ21の姿勢推定が終了すると、図6に示すフローが終了する。
姿勢推定装置14は、車両5の移動を利用して、自律的に所定の平面との交線が互いに平行になる面の組を2組特定することで、特徴点の抽出誤差のみが推定精度に影響するカメラの姿勢推定を行うことができる。すなわち、姿勢推定装置14は、誤差要因が少ないカメラの姿勢推定を行うことができる。したがって、姿勢推定装置14は、カメラの姿勢を精度良く推定することができる。
また、姿勢推定装置14は、第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第1所定距離以上離れていると推定できる場合に、推定部122での特定処理及び推定部123での推定処理を実行している。これにより、図11に示す第2面F2と第4面F4とのなす角度α(α<90°)が小さくなり過ぎることを防止することができるので、交線CL2の方向ベクトルV2の算出精度の低下を防止できるとともに、第1特徴点及び第2特徴点の各座標にドットずれが生じた際の影響度を抑えることができる。その結果、第1特徴点の位置及び第2特徴点の位置に依存してカメラの姿勢推定の精度が低下することを抑制できる。
例えば、図12Aに示す撮影画像のように、抽出部121が、実世界上で所定の方向に沿って第1所定距離以上離れて並ぶ2つのROI5A及び5Bを撮影画像内に設定し、互いに撮影画像内の異なる位置に設定された2つのROI5A及び5Bの一方から第1特徴点を抽出し、他方から第2特徴点を抽出するようにしてもよい。これにより、必然的に第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第1所定距離以上離れるので、特定部122は、第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第1所定距離以上離れていると推定すればよい。つまり、第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第1所定距離以上離れているか否かを推定する推定処理が実質的に不要となる。
また、図12Bに示す撮影画像のように、抽出部121が、実世界上で所定の方向に沿って並ぶ3つ以上(図12Bでは4つ)のROI5C~5Fを撮影画像内に設定し、互いに撮影画像内の異なる位置に設定され隣り合っていない2つのROIの一方から第1特徴点を抽出し、他方から第2特徴点を抽出するようにしてもよい。この場合も、必然的に第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とを所定の方向において第1所定距離以上離すことが可能である。なお、3つ以上のROIを撮影画像内に設定し、互いに撮影画像内の異なる位置に設定され隣り合っていない2つのROIの一方から第1特徴点を抽出し、他方から第2特徴点を抽出する場合には、隣り合うROI同士が接していてもよい。
また、特定部122は、撮影画像上での第1特徴点のオプティカルフローの始点と第2特徴点のオプティカルフローの始点との距離に基づき、第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第1所定距離以上離れているか否かを推定してもよい。例えば、撮影画像上での第1特徴点のオプティカルフローの始点と第2特徴点のオプティカルフローの始点との距離が閾値以上であれば、第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第1所定距離以上離れていると推定すればよい。
撮影画像上での第1特徴点のオプティカルフローの始点と第2特徴点のオプティカルフローの始点との距離として、撮影画像がフロントカメラ21またはバックカメラ22で撮影した画像である場合には例えば撮影画像の水平方向距離を採用すればよく、撮影画像がフロントカメラ21又はバックカメラ22で撮影した画像である場合には例えば撮影画像の水平方向距離を採用すればよく、左サイドカメラ23又は右サイドカメラ24で撮影した画像である場合には例えば撮影画像の垂直方向距離を採用すればよい。
撮影画像上での第1特徴点のオプティカルフローの始点と第2特徴点のオプティカルフローの始点との距離の代わりに、或いは、撮影画像上での第1特徴点のオプティカルフローの始点と第2特徴点のオプティカルフローの始点との距離に加えて、撮影画像上での第1特徴点のオプティカルフローの終点と第2特徴点のオプティカルフローの終点との距離を用いてもよい。
撮影画像の位置によって撮影画像上の距離と実世界上の距離との関係は変わるので、特定部122は、撮影画像上での第1特徴点のオプティカルフローの始点の位置、撮影画像上での第2特徴点のオプティカルフローの始点の位置、撮影画像上での第1特徴点のオプティカルフローの終点の位置、及び撮影画像上での第2特徴点のオプティカルフローの終点の位置の少なくとも一つに基づき、第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第1所定距離以上離れているか否かを推定してもよい。これにより、撮影画像上での第1特徴点のオプティカルフロー及び第2特徴点のオプティカルフローのみから、第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第1所定距離以上離れているか否かを推定することができる。例えば、上記の閾値を、撮影画像上での第1特徴点のオプティカルフローの始点の位置、撮影画像上での第2特徴点のオプティカルフローの始点の位置、撮影画像上での第1特徴点のオプティカルフローの終点の位置、及び撮影画像上での第2特徴点のオプティカルフローの終点の位置の少なくとも一つに基づき、変更すればよい。
なお、本実施形態では、第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第1所定距離未満しか離れていないと推定できる場合に、推定部122での特定処理及び推定部123での推定処理を実行しないことにより、第1特徴点の位置及び第2特徴点の位置に依存してカメラの姿勢推定の精度が低下することを抑制している。しかしながら、本実施形態と異なり、第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第1所定距離未満しか離れていないと推定できる場合でも、推定部122での特定処理及び推定部123での推定処理を実行し、例えば、カメラの姿勢推定の精度が低いことをカメラの姿勢推定結果とセットで姿勢推定装置14が出力するようにしてもよい。
また、姿勢推定装置14は、第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第1所定距離以上離れていると推定できても第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第2所定距離以上離れていると推定できる場合に、推定部122での特定処理及び推定部123での推定処理を実行しない。これにより、撮影画像において歪みが大きい位置の第1特徴点及び第2特徴点が抽出されることを防止できるので、歪みの影響によってカメラの姿勢推定の精度が低下することを抑制できる。
また、姿勢推定装置14は、第1特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量及び第2特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量がそれぞれ第3所定距離以上であると推定できる場合に、推定部122での特定処理及び推定部123での推定処理を実行している。これにより、図10に示す第1面F1と第3面F3とのなす角度β(β<90°)が小さくなり過ぎることを防止することができるので、交線CL1の方向ベクトルV1の算出精度の低下を防止できるとともに、第1特徴点及び第2特徴点の各座標にドットずれが生じた際の影響度を抑えることができる。その結果、第1特徴点の位置及び第2特徴点の位置に依存してカメラの姿勢推定の精度が低下することを抑制できる。
例えば、車両5の速度が第1所定速度以下であるときに、特定部122は、第1特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量及び第2特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量がそれぞれ第3所定距離以上であると推定すればよい。これにより、当該推定が容易になる。車両5の速度は、車速度センサ4で検出される実測値であってもよく、第1特徴点のオプティカルフロー及び第2特徴点のオプティカルフローから推定される推定速度であってもよい。
例えば、抽出部121は、車両5の速度が第1所定速度以下であるときに、上述したLフレームのLの値を車両5の速度が第1所定速度より速い場合に比べて大きくし、上述したMフレーム及びNフレームのMとNとの差を車両5の速度が第1所定速度より速い場合に比べて大きくしてもよい。これにより、第1特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量及び第2特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量がそれぞれ第3所定距離以上であると推定できる場合を増やすことができる。
また、特定部122は、撮影画像上での第1特徴点のオプティカルフローの大きさに基づき、第1特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量及び第2特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量がそれぞれ第3所定距離以上であるか否かを推定してもよい。例えば、撮影画像上での第1特徴点のオプティカルフローの大きさが閾値以上であれば、第1特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量及び第2特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量がそれぞれ第3所定距離以上であると推定すればよい。
撮影画像上での第1特徴点のオプティカルフローの大きさの代わりに、或いは、撮影画像上での第1特徴点のオプティカルフローの大きさに加えて、撮影画像上での第2特徴点のオプティカルフローの大きさを用いてもよい。
撮影画像の位置によって撮影画像上の距離と実世界上の距離との関係は変わるので、特定部122は、撮影画像上での第1特徴点のオプティカルフローの始点の位置、撮影画像上での第2特徴点のオプティカルフローの始点の位置、撮影画像上での第1特徴点のオプティカルフローの終点の位置、及び撮影画像上での第2特徴点のオプティカルフローの終点の位置の少なくとも一つに基づき、第1特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量及び第2特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量がそれぞれ第3所定距離以上であるか否かを推定してもよい。これにより、撮影画像上での第1特徴点のオプティカルフローや第2特徴点のオプティカルフローのみから、第1特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量及び第2特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量がそれぞれ第3所定距離以上であるか否かを推定することができる。例えば、上記の閾値を、撮影画像上での第1特徴点のオプティカルフローの始点の位置、撮影画像上での第2特徴点のオプティカルフローの始点の位置、撮影画像上での第1特徴点のオプティカルフローの終点の位置、及び撮影画像上での第2特徴点のオプティカルフローの終点の位置の少なくとも一つに基づき、変更すればよい。
なお、本実施形態では、第1特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量及び第2特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量がそれぞれ第3所定距離未満であると推定できる場合に、推定部122での特定処理及び推定部123での推定処理を実行しないことにより、第1特徴点の位置及び第2特徴点の位置に依存してカメラの姿勢推定の精度が低下することを抑制している。しかしながら、本実施形態と異なり、第1特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量及び第2特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量がそれぞれ第3所定距離未満であると推定できる場合でも、推定部122での特定処理及び推定部123での推定処理を実行し、例えば、カメラの姿勢推定の精度が低いことをカメラの姿勢推定結果とセットで姿勢推定装置14が出力するようにしてもよい。
また、姿勢推定装置14は、第1特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量及び第2特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量がそれぞれ第3所定距離未満であると推定できても第1特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量及び第2特徴点がオプティカルフローの始点から終点まで移動したときの車両5の実世界上の移動量がそれぞれ第4所定距離以上であると推定できる場合に、推定部122での特定処理及び推定部123での推定処理を実行しない。これにより、第1特徴点のオプティカルフローの終点及び第2特徴点のオプティカルフローの終点が撮影画像内に収まらず、第1特徴点のオプティカルフローの終点及び第2特徴点のオプティカルフローの終点を抽出できないという不具合を防止することができる。
また、姿勢推定装置14は、上述した通り、最新のオプティカルフローのみで四角形を仮想的に形成できない場合に、過去のオプティカルフローと最新のオプティカルフローを用いて四角形を仮想的に形成する。したがって、姿勢推定装置14は、最新のオプティカルフローのみで四角形を仮想的に形成することができない構成、すなわち、図6に示すフローチャートからステップS3及びS5を取り除いた動作を行う構成に比べて、カメラの姿勢推定に要する時間の長期化を抑制できる。なお、本実施形態では、第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第1所定距離以上第2所定距離未満離れていると推定でき、且つ、車両5の実世界上の現フレームの撮影時点と現フレームよりL(Lは自然数)フレーム前の撮影時点との間隔での移動量が第3所定距離以上第4所定距離未満であると推定できるという条件を満たさなければ、ステップS4が実行されないので、上述したカメラの姿勢推定に要する時間の長期化抑制効果が大きくなる。
しかしながら、過去のオプティカルフローと最新のオプティカルフローを用いて四角形を仮想的に形成する場合、適切なオプティカルフローを用いなければ、最新のオプティカルフローのみで四角形を仮想的に形成する場合に比べて、カメラの姿勢推定の精度が大幅に低下するおそれがある。
図6に示すステップS5の処理で用いるオプティカルフローが適切であるかは車両5の移動具合に依存する。そこで、図6に示すステップS5の処理を実行する場合、第1特徴点のオプティカルフローOP1と第2特徴点のオプティカルフローOP2との組合せは、車両5の移動情報に基づき決定されることが望ましい。
上述した通り、姿勢推定装置14は、四角形QL2が路面上に形成される平行四辺形であるとの想定の下、カメラの姿勢推定を行っている。
第1特徴点のオプティカルフローOP1が発生するときの車両5の舵角と第2特徴点のオプティカルフローOP2が発生するときの車両5の舵角との違いが少ないほど、上記の想定と現実との乖離が小さくなる。したがって、上述した車両5の移動情報に車両5の舵角情報を含め、図6に示すステップS5の処理を実行する場合、第1特徴点のオプティカルフローOP1と第2特徴点のオプティカルフローOP2との組合せは、車両5の舵角情報に基づき決定されることが望ましい。以下、この組合せ決定手法を第1決定手法という。例えば、舵角センサ3から通信バスB1を経由して姿勢推定装置14に供給される舵角センサ3の出力を車両5の舵角情報として用いると、車両5の舵角情報が舵角の推定情報ではなく舵角の実測情報になるので、車両5の舵角情報の精度を高めることができる。
例えば、図7Dに示す撮影画像P12の撮影時点における車両5の舵角と図7Fに示す撮影画像P14の撮影時点における車両5の舵角との差が所定角度以内になるように、第1特徴点のオプティカルフローOP1と第2特徴点のオプティカルフローOP2との組合せを決定すればよい。また、例えば、図7Cに示す撮影画像P11の撮影時点から図7Dに示す撮影画像P12の撮影時点までの車両5の舵角の平均値と図7Eに示す撮影画像P13の撮影時点から図7Fに示す撮影画像P14の撮影時点までの車両5の舵角の平均値との差が所定角度以内になるように、第1特徴点のオプティカルフローOP1と第2特徴点のオプティカルフローOP2との組合せを決定してもよい。
第1特徴点のオプティカルフローOP1が発生するときの車両5の速度と第2特徴点のオプティカルフローOP2が発生するときの車両5の速度との違いが少ないほど、上記の想定と現実との乖離が小さくなる。したがって、上述した車両5の移動情報に車両5の速度情報を含め、図6に示すステップS5の処理を実行する場合、第1特徴点のオプティカルフローOP1と第2特徴点のオプティカルフローOP2との組合せは、車両5の速度情報に基づき決定されることが望ましい。以下、この組合せ決定手法を第2決定手法という。例えば、車速度センサ4から通信バスB1を経由して姿勢推定装置14に供給される車速度センサ4の出力を車両5の速度情報として用いると、車両5の速度情報が速度の推定情報ではなく速度の実測情報になるので、車両5の速度情報の精度を高めることができる。
例えば、図7Dに示す撮影画像P12の撮影時点における車両5の速度と図7Fに示す撮影画像P14の撮影時点における車両5の速度との差が所定速度以内になるように、第1特徴点のオプティカルフローOP1と第2特徴点のオプティカルフローOP2との組合せを決定すればよい。また、例えば、図7Cに示す撮影画像P11の撮影時点から図7Dに示す撮影画像P12の撮影時点までの車両5の速度の平均値と図7Eに示す撮影画像P13の撮影時点から図7Fに示す撮影画像P14の撮影時点までの車両5の速度の平均値との差が所定速度以内になるように、第1特徴点のオプティカルフローOP1と第2特徴点のオプティカルフローOP2との組合せを決定してもよい。
なお、第1特徴点のオプティカルフローOP1が発生するときと第2特徴点のオプティカルフローOP1が発生するときとの時間差が短ければ、車両5の移動具合の変化も小さいことが期待できる。したがって、図6に示すステップS5の処理を実行する場合、第1特徴点のオプティカルフローOP1と第2特徴点のオプティカルフローOP2との組合せは、図7Cに示す撮影画像P11の撮影時点と図7Dに示す撮影画像P12の撮影時点の少なくとも一方に関連する時刻と図7Eに示す撮影画像P13の撮影時点と図7Fに示す撮影画像P14の撮影時点の少なくとも一方に関連する時刻との時間差に基づき決定されることが望ましい。以下、この組合せ決定手法を第3決定手法という。
図7Cに示す撮影画像P11の撮影時点と図7Dに示す撮影画像P12の撮影時点の少なくとも一方に関連する時刻としては、例えば、図7Cに示す撮影画像P11の撮影時点の時刻、図7Dに示す撮影画像P12の撮影時点の時刻、図7Cに示す撮影画像P11の撮影時点と図7Dに示す撮影画像P12の撮影時点との中点の時刻等を挙げることができる。同様に、図7Eに示す撮影画像P13の撮影時点と図7Fに示す撮影画像P14の撮影時点の少なくとも一方に関連する時刻としては、例えば、図7Eに示す撮影画像P13の撮影時点の時刻、図7Fに示す撮影画像P14の撮影時点の時刻、図7Eに示す撮影画像P13の撮影時点と図7Fに示す撮影画像P14の撮影時点との中点の時刻等を挙げることができる。
上述した第1決定手法、第2決定手法、第3決定手法はそれぞれ単独で実施してもよく、任意の2つ以上を組み合わせて実施してもよい。
また、第1特徴点及び第2特徴点の各オプティカルフローは、向きが逆となった車両5の移動ベクトルであるので、上述した移動情報を、第1特徴点及び第2特徴点の各オプティカルフローを路面上に座標変換した結果に基づき推定された情報としてもよい。第1特徴点及び第2特徴点の各オプティカルフローを路面上に座標変換し、路面上での長さを算出することで車両5の速度を推定でき、路面上での傾きを算出することで車両5の舵角を推定できる。つまり、上述した第1決定手法、第2決定手法の代わりとして実施することができる。上述した移動情報を、第1特徴点及び第2特徴点の各オプティカルフローを路面上に座標変換した結果に基づき推定された情報とする場合、姿勢推定装置14と通信バスB1との接続が不要になる。
また、特定部122は、第1特徴点のオプティカルフローOP1が発生するときの車両5の速度(車速度センサ4で検出される実測値であってもよく上述した推定速度であってもよい)と第2特徴点のオプティカルフローOP2が発生するときの車両5の速度(車速度センサ4で検出される実測値であってもよく上述した推定速度であってもよい)との違いに基づき、第1特徴点のオプティカルフローOP1及び第2特徴点のオプティカルフローOP2の少なくとも一方を補正し、少なくとも一方が補正された第1特徴点及び第2特徴点の各オプティカルフローに基づき、路面との交線が互いに平行となる面の組を2組特定することが望ましい。これにより、カメラの姿勢推定の精度を向上させることができる。
例えば、第1特徴点のオプティカルフローOP1が発生するときの車両5の速度が第2特徴点のオプティカルフローOP2が発生するときの車両5の速度より大きい場合、第1特徴点のオプティカルフローOP1が短くなるように補正してよく、第2特徴点のオプティカルフローOP2が長くなるように補正してよく、第1特徴点のオプティカルフローOP1が短くなり且つ第2特徴点のオプティカルフローOP2が長くなるように補正してよい。
なお、例えば路面RSがコンクリートで構成される場合、特徴点が抽出され難い。このため、特徴点の抽出誤差が大きくなり易い。しかしながら、例えば、コンクリートで構成される路面RSに汚れが存在する場合、その汚れ部分から第1特徴点FP1及び第2特徴点FP2を抽出すると、特徴度が高い特徴点を第1特徴点FP1及び第2特徴点FP2として選定することになり、第1特徴点FP1及び第2特徴点FP2の抽出誤差を抑制できると考えられる。
汚れに限らず、特徴点が他に比べて集中して存在する高密度領域が存在する場合、その高密度領域の中から、第1特徴点FP1及び第2特徴点FP2を抽出することにより、第1特徴点FP1及び第2特徴点FP2の抽出誤差を抑制できると考えられる。したがって、特徴点が他に比べて集中して存在する高密度領域が存在する場合、その高密度領域の中から、第1特徴点FP1及び第2特徴点FP2が抽出部121によって抽出されてもよい。
また、コーナー度が高い特徴点の抽出では、抽出誤差が小さくなる。したがって、記第1特徴点及び前記第2特徴点を、コーナーらしさを示すコーナー度が所定のコーナー度閾値以上となる特定の特徴点としてもよい。コーナーとは2つのエッジが交わる部分である。コーナーでは、コーナー度が高くなる。コーナー度は、例えばHarrisオペレータやKLT(Kanade-Lucas-Tomasi)トラッカーなどの公知の検出手法を用いて求めることができる。
なお、上記の説明ではフロントカメラ21の光学中心OCと、四角形QL1の1つの辺を含む平面を特定するとしたがこの限りではない。当該平面の法線方向の特定をもって平面を特定するとしてもよい。例えば光学中心OCから各頂点への方向ベクトルの外積により平面の法線方向を求め、該法線方向によって面を特定するとしてもよい。この場合、第1面F1の法線方向と第3面F3の法線方向とを1つの組とし、第2面F2の法線方向と第4面F4の法線方向とを他の組として2つの組を特定するとよい。
また、面は平行移動させてもよい。例えば第1面F1の代わりに、第1面F1を平行移動させた面を第3面F3と組としてもよい。平行移動しても所定の平面との交線の向きは変わらないからである。
<3.補正システム>
図13は、実施形態に係る補正システムSYS2の構成を示すブロック図である。図13において、図1と同一の部分には同一の符号を付し詳細な説明を省略する。図13に示すように、補正システムSYS2は、補正装置1’及び撮影部2を備える。
補正装置1’は、図1に示す異常検出装置1から判定部124を取り除き補正部125を追加した構成と同一である。すなわち、補正装置1’は、姿勢推定装置14及び補正部125を備える。
補正部125は、推定部123によって推定されたカメラの姿勢に基づき、カメラのパラメータを補正する。これにより、カメラの取付けのずれが生じても、そのずれに応じたカメラのキャリブレーションが実行されることになり、カメラの取付けのずれが撮影画像に及ぼす悪影響を抑制することができる。
<4.留意事項>
本明細書における実施形態や実施例の構成は、本発明の例示にすぎない。実施形態や変形例の構成は、本発明の技術的思想を超えない範囲で適宜変更されてもよい。また、複数の実施形態及び変形例は、可能な範囲で組み合わせて実施されてよい。
本発明は、上述した実施形態のように、自動駐車等の移動体の運転支援を行うカメラの姿勢推定を行うために利用することができる。また、本発明は、ドライブレコーダ等の運転情報を記録するカメラの姿勢推定を行うために利用することができる。また、本発明は、上述した実施形態のように、カメラの姿勢の推定情報を利用して撮影画像を補正する補正装置等に利用することができる。また、本発明は、複数の移動体とネットワークにより通信可能に設けられるセンターと連携して動作する装置等に利用することができる。当該装置は、例えば、センターに撮影画像を送信する場合に、カメラの異常情報や姿勢の推定情報を撮影画像とセットにして送信する構成であってよい。そしてセンターでは、カメラの姿勢の推定情報を用いて、各種画像処理(カメラの姿勢も考慮した画像の視点・視方向を変更する処理、例えば車両の車体前方方向の画像に視点・視方向変換した画像を生成する等)、画像を用いた計測処理におけるカメラの姿勢に対する補正処理、カメラ姿勢の経年変化を統計処理(多くの車両のデータ)、等を行いユーザへの有用な提供データを生成する等する。
上述した実施形態では、第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第1所定距離以上第2所定距離未満離れていると推定でき、且つ、車両5の実世界上の現フレームの撮影時点と現フレームよりL(Lは自然数)フレーム前の撮影時点との間隔での移動量が第3所定距離以上第4所定距離未満であると推定できるという条件を満たさなければ、ステップS4が実行されない。
しかしながら、第1特徴点の実世界上の位置と第2特徴点の実世界上の位置とが所定の方向において第1所定距離以上第2所定距離未満離れていると推定できるという条件を満たしさえすれば、ステップS4が実行されるようにしてもよい。また、車両5の実世界上の現フレームの撮影時点と現フレームよりL(Lは自然数)フレーム前の撮影時点との間隔での移動量が第3所定距離以上第4所定距離未満であると推定できるという条件を満たしさえすれば、ステップS4が実行されるようにしてもよい。ステップS5の実行に関しても同様の変形が可能である。これらの変形例は、上述した実施形態に比べると、姿勢推定の精度が低下することを抑制する効果が小さくなるが、上記のような条件設定を全く行わない場合に比べると、姿勢推定の精度が低下することを抑制することができる。
また、上述した実施形態に比べると、姿勢推定の精度が低下することを抑制する効果が小さくなるが、第2所定距離に関する条件を設けないようにしてもよい。同様に、第4所定距離に関する条件を設けないようにしてもよい。