以下、本発明の例示的な実施形態について、図面を参照しながら詳細に説明する。以下の説明では、移動体として車両を例にとり説明するが、移動体は車両に限定されない。車両には、例えば自動車、電車、無人搬送車等の車輪のついた乗り物が広く含まれる。車両以外の移動体として、例えば船舶や航空機等が挙げられる。
また以下の説明では、車両の直進進行方向であって、運転席からハンドルに向かう方向を「前方向」とする。また、車両の直進進行方向であって、ハンドルから運転席に向かう方向を「後方向」とする。また、車両の直進進行方向及び鉛直線に垂直な方向であって、前方向を向いている運転者の右側から左側に向かう方向を「左方向」とする。また、車両の直進進行方向及び鉛直線に垂直な方向であって、前方向を向いている運転者の左側から右側に向かう方向を「右方向」とする。
<1.第1実施形態>
図1は、第1実施形態に係る姿勢推定装置1の構成を説明するための図である。図1には、姿勢推定装置1に情報を入力する撮影部2および舵角センサ3も示されている。姿勢推定装置1は、撮影部2が搭載される車両ごとに備えられる。以下、姿勢推定装置1が備えられる車両のことを自車両と表現することがある。
撮影部2は、車両周辺の状況を監視する目的で車両に設けられる。撮影部2は、複数のカメラ21~24を備える。複数のカメラ21~24は、車載カメラである。各車載カメラ21~24は、車両に固定配置される。4つの車載カメラ21~24は、それぞれ、姿勢推定装置1に有線又は無線により接続され、撮影画像を姿勢推定装置1に出力する。なお、各車載カメラ21~24は、例えば経年劣化や外部からの衝撃等によって取付け位置や角度がずれることがある。姿勢推定装置1は、このような取付け状態の変化を監視することができる。
詳細には、撮影部2は、フロントカメラ21と、バックカメラ22と、左サイドカメラ23と、右サイドカメラ24と、を備える。フロントカメラ21は、車両の前方を撮影するカメラである。バックカメラ22は、車両の後方を撮影するカメラである。左サイドカメラ23は、車両の左方を撮影するカメラである。右サイドカメラ24は、車両の右方を撮影するカメラである。各車載カメラ21~24は、例えば魚眼レンズを用いて構成され、水平方向の画角θは180度以上である。このため、4つの車載カメラ21~24によって、車両の水平方向における全周囲を撮影することができる。
なお、撮影部2が備えるカメラの数は、4つ以外の複数であってよい。例えば、バックでの駐車することを支援する目的で車載カメラが搭載されている場合には、撮影部2は、バックカメラ22、左サイドカメラ23、右サイドカメラ24の3つの車載カメラを備える構成であってよい。
舵角センサ3は、姿勢推定装置1および撮影部2が搭載される車両に備えられ、当該車両のステアリングホイール(ハンドル)の回転角を検出する。舵角センサ3の出力は、CAN(Controller Area Network)バス等の通信バスB1を介して姿勢推定装置1に入力される。
図1に示すように、姿勢推定装置1は、取得部11と、制御部12と、記憶部13と、を備える。
取得部11は、複数の車載カメラ21~24のそれぞれから撮影画像を取得する。取得部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は、ファームウェアとしてのプログラムや各種のデータを記憶する。
図1に示す推定部121、確定部122、および、設定部123は、制御部12のCPUが記憶部13に記憶されるプログラムに従って演算処理を実行することにより実現される制御部12の機能である。言い換えると、姿勢推定装置1は、推定部121と、確定部122と、設定部123とを備える。
なお、制御部12の推定部121、確定部122、および、設定部123の少なくともいずれか一つは、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等のハードウェアで構成されてもよい。また、推定部121、確定部122、および、設定部123は、概念的な構成要素である。1つの構成要素が実行する機能を複数の構成要素に分散させたり、複数の構成要素が有する機能を1つの構成要素に統合させたりしてよい。また、取得部11は、制御部12のCPUがプログラムに従って演算処理を行うことによって実現される構成でもよい。
推定部121は、車載カメラ21~24の姿勢を推定する推定処理を、撮影画像に基づいて行う。詳細には、推定部121は、各車載カメラ21~24毎に姿勢の推定処理を行う。複数の車載カメラ21~24の姿勢の推定処理は順番に行われる。姿勢の推定処理を行う順番については後述する。推定部121は、4つの車載カメラ21~24のいずれか1つの姿勢の推定を行う場合、姿勢の推定を行うカメラから取得した撮影画像に基づいて推定処理を行う。例えば、推定部121は、フロントカメラ21の姿勢の推定を行う場合、フロントカメラ21から得られる撮影画像に基づいて推定処理を行う。
なお、姿勢の推定は、例えば、車載カメラ21~24の取付け角度等、取付け状態に関する値の推定値を求める構成であってよい。ただし、姿勢の推定は、取付け状態に関する具体的な推定値を求めるのではなく、姿勢が所定の状態から変化したか否かだけを推定する構成等であってもよい。本実施形態の姿勢の推定処理の詳細については後述する。
確定部122は、姿勢の推定処理により獲得される推定結果の獲得数の累積値が所定の複数回数に到達したカメラについて、複数の推定結果に基づいて姿勢の推定を確定させる。すなわち、本実施形態においては、各車載カメラ21~24について、姿勢の推定結果が1つ得られただけでは、姿勢の推定は確定されない。本実施形態においては、各車載カメラ21~24について、姿勢の推定結果が所定の複数回数以上得られた場合に、獲得された複数の推定結果に基づいて姿勢の推定を確定させる。これによれば、姿勢推定装置1から誤った推定姿勢が出力される可能性を低減することができる。
なお、姿勢の推定結果は、例えば姿勢の推定値等、姿勢状態に関する推定情報を含む。換言すると、姿勢状態に関する推定情報が得られなかった場合には、姿勢の推定結果が獲得されたとみなさない。
また、姿勢の推定を確定させるために用いられる複数の推定結果の数は、所定の複数回数と同じでもよいが、異なってもよい。また、所定の複数回数は、例えば実験結果等に基づいて適宜設定されればよい。所定の複数回数は、姿勢推定の確定結果をできるだけ正確としつつ、姿勢推定の確定結果が得られるまでの時間が長くなりすぎないように設定されることが好ましい。また、本実施形態では、所定の複数回数は、全ての車載カメラ21~24で同じとされている。ただし、所定の複数回数は、各車載カメラ21~24毎に別々に設定されてもよい。すなわち、所定の複数回数は、複数の車載カメラ21~24間で、互いに異なる数であってもよい。
設定部123は、車載カメラ21~24毎の姿勢の推定処理の優先度を、車載カメラ21~24毎に行われる姿勢の推定処理により獲得される推定結果の獲得数に基づいて設定する。詳細には、設定部123は、車載カメラ21~24毎の、推定結果の獲得数の累積値の比較結果に基づいて、車載カメラ21~24毎の推定処理の優先度を設定する。設定には、初期の設定、および、その後に行われる変更設定が含まれてよい。
本実施形態によれば、例えば、複数の車載カメラ21~24間において、姿勢の推定結果の獲得数が他に比べて極端に多かったり、少なかったりするカメラが生じた場合に、優先度を調整して推定結果の獲得数の差が大きくなり過ぎることを抑制できる。本実施形態によれば、姿勢推定の確定結果を得られるタイミングを複数の車載カメラ21~24間でできるだけ近づけることができる。例えば、自車両が複数の車載カメラ21~24を用いて自動運転が行われる設定となっている場合、本実施形態の姿勢推定装置1を用いれば、全ての車載カメラ21~24の姿勢が把握できた安全な状態で自動運転を開始できる可能性を高めることができる。
本実施形態では、優先度が上げられると、姿勢の推定処理を実行する頻度が多くされる。また、優先度が下げられると、姿勢の推定処理を実行する頻度が少なくされる。優先度の設定に関する処理の詳細については後述する。
設定部123は、所定のタイミングで優先度の変更を行うか否かを確認する。本実施形態では、所定のタイミングは、姿勢の推定処理の順番が複数(具体的には4つ)の車載カメラ21~24の全てに1回ずつ与えられる毎に発生する。ただし、複数の車載カメラ21~24の中に優先度の設定により順番が飛ばされるカメラがある場合には、当該カメラに順番が与えられたとみなして所定のタイミングは判断される。このように構成することにより、優先度の変更を適切なタイミングで行うことができる。
図2は、第1実施形態の姿勢推定装置1において、4つの車載カメラ21~24の姿勢の推定を行う場合に実行される処理の一例を示すフローチャートである。図2の処理の開始時においては、姿勢の推定結果の獲得数は、4つの車載カメラ21~24のいずれもゼロであり、4つの車載カメラ21~24の間で差がない。このために、4つの車載カメラ21~24毎の姿勢の推定処理の優先度は同じとしている。すなわち、図2の処理の開始時において、4つの車載カメラ21~24の姿勢の推定処理の頻度には差がない。図2の処理の開始時において、4つの車載カメラ21~24に対して等しく順番が与えられる。4つの車載カメラ21~24に対して、予め決められた順番で、姿勢の推定処理が行われる。
ステップS1では、推定部121により、フロントカメラ21の姿勢の推定処理が行われる。フロントカメラ21の姿勢の推定処理が終わると、ステップS2に処理が進められる。ステップS2では、推定部121により、バックカメラ22の姿勢の推定処理が行われる。バックカメラ22の姿勢の推定処理が終わると、ステップS3に処理が進められる。ステップS3では、推定部121により、左サイドカメラ23の姿勢の推定処理が行われる。左サイドカメラ23の姿勢の推定処理が終わると、ステップS4に処理が進められる。ステップS4では、推定部121により、右サイドカメラ24の姿勢の推定処理が行われる。右サイドカメラ24の姿勢の推定処理が終わると、ステップS4に処理が進められる。
なお、本例では、フロントカメラ21、バックカメラ22、左サイドカメラ23、右サイドカメラ24の順番で姿勢の推定処理が行われる構成としているが、これは例示である。他の順番で姿勢の推定処理が行われてもよい。
ここで、車載カメラ21~24の姿勢の推定処理について詳細に説明する。図3は、第1実施形態の姿勢推定装置1による姿勢の推定処理の一例を示すフローチャートである。図3は、図2のステップS1からステップS4における姿勢の推定処理の詳細を示す図である。姿勢の推定処理は、各車載カメラ21~24で同様であるために、以下、フロントカメラ21の場合を例に姿勢の推定処理について説明する。
図3に示すように、まず、推定部121は、フロントカメラ21を搭載する自車両が直進しているか否かを監視する(ステップS11)。自車両が直進しているか否かは、例えば、舵角センサ3から得られるステアリングホイールの回転角情報に基づいて判断することができる。例えば、ステアリングホイールの回転角がゼロのときに自車両が完全にまっすぐに進むとした場合に、回転角がゼロの場合だけでなく、回転角がプラス方向とマイナス方向の一定範囲内の値である場合を含めて、自車両が直進していると判断してよい。なお、直進には、前方方向の直進と、後退方向の直進との両方が含まれる。
推定部121は、自車両の直進を検出するまで、ステップS11の監視を繰り返す。言い換えると、推定部121は、自車両が直進しない限り、姿勢の推定処理を進めない。これによれば、直進移動中における特徴点(詳細は後述する)の位置変化を用いて姿勢の推定が行われることになり、自車両の進行方向が曲がっている場合の情報を用いて姿勢の推定が行われないので、姿勢の推定処理が複雑になることを避けることができる。ただし、自車両の進行方向が曲がっているときの特徴点の位置変化を用いて、姿勢の推定処理が進められる構成としてもよい。
本実施形態では、自車両が直進していると判断される場合(ステップS11でYes)、推定部121は、取得部11を介してフロントカメラ21から所定フレーム数の撮影画像を取得する(ステップS12)。推定部121は、例えば数フレームから数十フレームの撮影画像を取得する。
次に、推定部121は、各フレーム画像に対して特徴点の抽出を行う(ステップS13)。特徴点は、撮影画像中のエッジの交点など、撮影画像において際立って検出できる点である。特徴点は、例えば路面に描かれた白線のエッジ、路面上のひび、路面上のしみ、路面上の砂利などである。本実施形態では、好ましい形態として、コーナーらしさを示すコーナー度が高い特徴点を抽出する。コーナーとは2つのエッジが交わる部分である。コーナー度は、例えばHarrisオペレータやKLT(Kanade-Lucas-Tomasi)トラッカーなどの公知の検出手法を用いて求めることができる。本実施形態では、4つの車載カメラ21~24間で、特徴点の抽出条件は同じである。ただし、4つの車載カメラ21~24間で、特徴点の抽出条件は異なってよい。
図4は、推定部121による特徴点の抽出について説明するための図である。図4は、フロントカメラ21で撮影された撮影画像Pを模式的に示している。撮影画像Pは、自車両のボディが映り込む領域BOを含む。図4に示す例では、路面RSに描かれている制限速度を示す数字の部分にコーナー度が高い第1特徴点FP1及び第2特徴点FP2が存在する。このために、推定部121は、路面RS上に存在する第1特徴点FP1及び第2特徴点FP2を抽出する。
なお、図4では、便宜的に2つの特徴点FP1、FP2のみが示されているが、コーナー度が所定の特徴点閾値を超える特徴点が存在すれば、これ以外にも特徴点は抽出される。逆に、コーナー度が所定の特徴点閾値を超える特徴点が存在しない場合には、特徴点は抽出されない。各フレーム画像において、特徴点が1つも抽出されないこともあり得る。
図3に戻って、推定部121は、全てのフレーム画像に対する特徴点の抽出処理が完了すると、オプティカルフローの導出を行う(ステップS14)。オプティカルフローは、異なる時刻で撮影された2つの撮影画像間における特徴点の動きを示す動きベクトルである。本例では、異なる時刻の間隔は、取得部11のフレーム周期と同一である。ただし、これに限らず、異なる時刻の間隔は、例えば、取得部11のフレーム周期の複数倍であってもよい。
図5は、推定部121によるオプティカルフローの導出について説明するための図である。図5は、図4と同様に便宜的に示された模式図である。図5は、図4に示す撮影画像P(便宜的に前フレームPとする)の撮影後、1フレーム周期経過した後にフロントカメラ21で撮影された撮影画像P’(便宜的に現フレームP’とする)である。図4に示す撮影画像Pの撮影後、1フレーム周期の間、自車両は前方に直進している。図5に示す丸印FP1Pは、図4に示す前フレームPの撮影時点における第1特徴点FP1の位置を示す。図5に示す丸印FP2Pは、図4に示す前フレームPの撮影時点における第2特徴点FP2の位置を示す。
図5に示すように、自車両が前方に直進すると、自車両の前方に存在する第1特徴点FP1及び第2特徴点FP2は自車両に近づく。すなわち、第1特徴点FP1及び第2特徴点FP2は、現フレームP’と前フレームPとで異なる位置に現れる。推定部121は、現フレームP’の第1特徴点FP1と前フレームPの第1特徴点FP1とを、その近傍の画素値に基づいて対応付け、対応付けた第1特徴点FP1のそれぞれの位置に基づいて、第1特徴点FP1のオプティカルフローOF1を導出する。同様に、推定部121は、現フレームP’の第2特徴点FP2と前フレームPの第2特徴点FP2とを、その近傍の画素値に基づいて対応付け、対応付けた第2特徴点FP2のそれぞれの位置に基づいて、第2特徴点FP2のオプティカルフローOF2を導出する。
なお、推定部121は、取得した複数のフレーム画像のそれぞれについて上述のようにしてオプティカルフローの導出を行う。また、各フレーム画像において2つより多くのオプティカルフローが得られる場合がある。このために、推定部121は、姿勢の推定に使うためのオプティカルフローの候補を複数得る場合がある。逆に、推定部121は、姿勢の推定に使うためのオプティカルフローの候補を得られない場合もある。
図3に戻って、推定部121は、オプティカルフローの導出を行うと、以後に行われる処理に使用するオプティカルフローを所定の選択条件にしたがって選択する(ステップS15)。所定の選択条件は、以後に行われる姿勢の推定に適した、2つのオプティカルフローで構成される組が選択されるように設定される。所定の選択条件を満たす組が複数存在する場合には、所定の選択条件を満たす全ての組が選択される。所定の選択条件を満たす組の数は、撮影画像から抽出される特徴点の数等によって変動する。なお、所定の選択条件を満たす組が存在しない場合には、以後の処理を行うことができない。このために、姿勢の推定処理は終了される。この段階で姿勢の推定処理が終了された場合には、姿勢の推定結果は獲得されないことになる。本実施形態では、4つの車載カメラ21~24間において、使用するオプティカルフローの選択条件は同じである。ただし、当該選択条件は、4つの車載カメラ21~24間で異なってもよい。
ここで、ステップS15で選択された使用オプティカルフローの組に、図5に示す第1オプティカルフローOF1と第2オプティカルフローOF2との組が含まれるものして、ステップS16以降の処理について説明する。
推定部121は、第1特徴点FP1のオプティカルフローOF1と第2特徴点FP2のオプティカルフローOF2を用いた処理を進める。推定部121は、特徴点に対し、記憶部13に記憶されているフロントカメラ21の内部パラメータを用いて座標変換を行う。座標変換では、フロントカメラ21の収差補正と、歪補正とが行われる。収差補正は、フロントカメラ21の光学系の収差による歪みを補正するために行われる。具体的には樽型歪みや糸巻歪みなど歪曲収差の補正である。歪み補正は、フロントカメラ21の光学系そのものの歪みを補正するために行われる。具体的には魚眼補正などである。座標変換により、特徴点の座標は、被写体が透視投影によって撮影された場合に二次元画像上で得られる座標に変換される。
特徴点の座標変換が行われると、推定部121は、図6に示すように、第1特徴点FP1のオプティカルフローOF1の始点を頂点SP1、第1特徴点FP1のオプティカルフローOF1の終点を頂点EP1、第2特徴点FP1のオプティカルフローOF2の始点を頂点SP2、及び第2特徴点FP2のオプティカルフローOF2の終点を頂点EPとする四角形QLを仮想的に形成する(ステップS16)。以降、説明のために四角形や、該四角形の辺などの幾何的要素を仮想的に形成して用いる。しかし、実際の処理では、特徴点の座標や直線の方向などのベクトル演算に基づき、同等の作用を持つ幾何的要素に基づかない処理としてもよい。
四角形QLが仮想的に形成されると、推定部121は、四角形QLと、記憶部13に記憶されているフロントカメラ21の内部パラメータとを用いて、三次元空間におけるフロントカメラ21の投影面IMG(図7参照)上に四角形QLを移動させ、投影面IMG上での四角形QL1を仮想的に生成する(ステップS17)。
なお説明のため、以下のように辺を定義する。四角形QL1の第1辺SD1は、四角形QLにおいて、頂点SP1および頂点SP2を結んだ辺に対応する。つまり、前フレームPにおける第1特徴点FP1と第2特徴点FP2を結んだ辺に相当する。同様に、四角形QL1の第2辺SD2は、四角形QLにおいて、頂点SP2および頂点EP2を結んだ辺に対応する。つまり、第2特徴点FP2のオプティカルフローOF2に相当する。同様に、四角形QL1の第3辺SD3は、四角形QLにおいて、頂点EP1および頂点EP2を結んだ辺に対応する。つまり、現フレームP’における第1特徴点FP1と第2特徴点FP2とを結んだ辺に相当する。同様に、四角形QL1の第4辺SD4は、四角形QLにおいて、頂点SP1および頂点EP1を結んだ辺に対応する。つまり、第1特徴点FP1のオプティカルフローOF1に相当する。
また、以下のように面を定義する(図7参照)。四角形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とする。
次に、推定部121は、所定の平面との交線が互いに平行になる面の組を2組特定する(ステップS18)。所定の平面とはあらかじめ平面の法線が分かっている面である。具体的には車両が移動を行っている平面であり、つまり路面である。所定の平面は、厳密な平面でなくてもよく、推定部121が所定の平面との交線が互いに平行になる面の組を2組特定する際に平面とみなすことができるものであればよい。
本実施形態では、姿勢推定装置1は、自車両が直進している場合に、異なる時刻に撮影された2つの画像から特徴点を抽出し、該特徴点のオプティカルフローを算出する。また、該特徴点は路面などの所定の平面上に位置している静止物から抽出される。したがって、算出されるオプティカルフローは実世界上では、自車両に対する静止物の相対的な位置変化を表す。つまり向きが逆となった自車両の移動ベクトルである。
四角形QL1の第2辺SD2と第4辺SD4とは、共に特徴点のオプティカルフローに対応するので、共に実世界上では自車両の移動ベクトルに相当する。したがって、路面上では互いに平行となると想定される。
また、四角形QL1の第1辺SD1と第3辺SD3とは、共に特徴点同士の位置関係なので、実世界上では自車両の移動に伴う静止物同士の位置関係に相当する。移動前の位置関係が第1辺SD1に相当し、移動後の位置関係が第3辺SD3に相当する。このとき静止物の位置は変わらないため、移動前後で位置関係は変わらない。したがって、路面上ではこれも互いに平行となると想定される。
したがって、推定部121は、路面との交線が平行な面として、第2面F2と第4面F4との組と、第1面F1と第3面F3との組と、の2つの組を特定する。つまり、推定部121は、オプティカルフローを含む面同士を1つの組とし、同時刻に撮影された特徴点を含む面同士を他の組として、計2つの組を特定する。
なお、図7において四角形QL2は、現フレームP’の撮影時点での第1特徴点FP1の3次元空間(実世界)上の位置、現フレームP’の撮影時点での第2特徴点FP2の3次元空間上の位置、前フレームPの撮影時点での第1特徴点FP1の3次元空間上の位置、及び前フレームPの撮影時点での第2特徴点FP2の3次元空間上の位置を頂点とする四角形である。第1面F1は、四角形QL2の第1辺SD11を含む。同様に、第2面F2は四角形QL2の第2辺SD12を含み、第3面F3は四角形QL2の第3辺SD13を含み、第4面F4は四角形QL2の第4辺SD14を含む。このとき、上記のように四角形QL2は路面上に形成される平行四辺形であると想定される。
次に、推定部121は、路面の法線を算出する(ステップS19)。まず、推定部121は、先に特定した面の組の一方である第1面F1と第3面F3とに基づき、面同士の交線の方向を求める。詳細には、第1面F1と第3面F3との交線CL1の向きを求める(図8参照)。交線CL1の方向ベクトルV1は、第1面F1の法線ベクトル及び第3面F3の法線ベクトルそれぞれと垂直なベクトルである。したがって、推定部121は、第1面F1の法線ベクトルと第3面F3の法線ベクトルとの外積により、交線CL1の方向ベクトルV1を求める。第1面F1と第3面F3は、路面との交線が平行となるため、方向ベクトルV1は路面と平行になる。
同様に、推定部121は、先に特定した面の組の他方である第2面F2と第4面F4との交線の方向を求める。詳細には第2面F2と第4面F4との交線CL2の向きを求める(図9参照)。交線CL2の方向ベクトルV2は、第2面F2の法線ベクトル及び第4面F4の法線ベクトルそれぞれと垂直なベクトルである。したがって、推定部121は、第2面F2の法線ベクトルと第4面F4の法線ベクトルとの外積により、交線CL2の方向ベクトルV2を求める。第2面F2と第4面F4も同様に、路面との交線が平行となるため、方向ベクトルV2は路面と平行になる。
推定部121は、方向ベクトルV1と方向ベクトルV2との外積により、四角形QL2の面の法線、すなわち路面の法線を算出する。推定部121が算出した路面の法線はフロントカメラ21のカメラ座標系で算出されるため、実際の路面の法線である垂直方向との違いから3次元空間の座標系を求め、路面に対するフロントカメラ21の姿勢を推定することができる。その推定結果から推定部121は自車両に対するフロントカメラ21の姿勢を推定する(ステップS20)。なお、ステップS19の算出処理は、例えば公知のARToolkitを利用して実行することができる。
ステップS20における姿勢推定が終了すると、推定部121は、ステップS15で選択した全てのオプティカルフローの組について、姿勢の推定が完了したか否かを確認する(ステップS21)。全ての組に対して姿勢の推定が完了している場合には(ステップS21でYes)、図3に示すフローが終了する。一方、全ての組に対して姿勢の推定が完了していない場合には(ステップS21でNo)、ステップS16に戻ってステップS16以降の処理が繰り返される。
姿勢推定装置1は、自車両の移動を利用して、自律的に所定の平面との交線が互いに平行になる面の組を2組特定することで、特徴点の抽出誤差のみが推定精度に影響するカメラの姿勢推定を行うことができる。すなわち、姿勢推定装置1は、誤差要因が少ないカメラの姿勢推定を行うことができる。したがって、姿勢推定装置1は、カメラの姿勢を精度良く推定することができる。
なお、上記の説明ではフロントカメラ21の光学中心OCと、四角形QL1の1つの辺を含む平面を特定するとしたがこの限りではない。当該平面の法線方向の特定をもって平面を特定するとしてもよい。例えば光学中心OCから各頂点への方向ベクトルの外積により平面の法線方向を求め、該法線方向によって面を特定するとしてもよい。この場合、第1面F1の法線方向と第3面F3の法線方向とを1つの組とし、第2面F2の法線方向と第4面F4の法線方向とを他の組として2つの組を特定するとよい。
また、面は平行移動させてもよい。例えば第1面F1の代わりに、第1面F1を平行移動させた面を第3面F3と組としてもよい。平行移動しても所定の平面との交線の向きは変わらないからである。
図2に戻って、ステップS5では、確定部122が所定の条件に従って姿勢の推定を確定させる処理を行う。具体的には、確定部122は、4つの車載カメラ21~24のそれぞれについて姿勢の推定結果の獲得数の累積値を求める。第1回目の姿勢の推定処理後においては、得られた獲得数が、そのまま累積値になる。第2回目以降においては、前回得られた累積値に、今回得られた獲得数を加算して獲得数の累積値が得られる。
確定部122は、4つの車載カメラ21~24のそれぞれについて、獲得数の累積値を所定の複数回数と比較する。獲得数の累積値が所定の複数回数以上に到達したカメラについて、確定部122は、その時点で得られている複数の推定結果に基づき姿勢の推定を確定させる。確定部122は、例えば、複数の推定結果の平均値、複数の推定結果から作成されるヒストグラムの中央値やピーク値等を姿勢推定の確定値とする。獲得数の累積値が所定の複数回数以上に到達しないカメラについては、姿勢の推定を確定させないと判断され、姿勢推定は確定されない。確定部122は、推定確定処理が完了すると、次のステップS6に処理を進める。
ステップS6では、確定部122は、全ての車載カメラ21~24について姿勢の推定が確定されたか否かを確認する。全ての車載カメラ21~24について姿勢の推定が確定されている場合には(ステップS6でYes)、図2に示す処理が終了する。この場合は、全ての車載カメラ21~24について姿勢の推定が確定されており、姿勢推定の確定結果が姿勢推定装置1から出力可能になる。なお、姿勢推定が確定したカメラが発生するたびに、姿勢推定の確定結果が外部に出力されてよい。姿勢推定の確定結果に基づいて、例えば、車載カメラ21~24の取付けのずれが生じた状態であるか否かが判定される。車載カメラ21~24の取付けのずれが生じた状態であると判定された場合、例えば、当該異常事態が自車両のユーザに報知される。これにより、自車両のユーザはディーラによるカメラの取付調整を依頼する等の対策をとることが可能となる。
また、各車載カメラ21~24の姿勢推定の確定結果は、各車載カメラ21~24のパラメータの補正に利用されてよい。これにより、車載カメラ21~24の取付けのずれが生じても、そのずれに応じたカメラのキャリブレーションが実行されることになり、車載カメラ21~24の取付けのずれが撮影画像に及ぼす悪影響を抑制することができる。また、姿勢の推定結果は、複数の車両とネットワークにより通信可能に設けられるセンターに撮影画像を送信する場合に、撮影画像とセットにしてセンターに送信されてもよい。これにより、センターでの撮影情報の取り扱いを適切に行うことができる。
姿勢の推定が確定されていない車載カメラ21~24が存在する場合には(ステップS6でNo)、ステップS7に処理が進められる。
ステップS7では、設定部123により、車載カメラ21~24毎の優先度を変更する必要があるか否かが判定される。図10は、第1実施形態の姿勢推定装置1における優先度変更の判定処理の一例を示すフローチャートである。図10は、図2におけるステップS7の処理の詳細を示すフローチャートである。
図10に示すように、まず、設定部123は、姿勢の推定が確定した車載カメラ21~24があるか否かを確認する(ステップS71)。詳細には、設定部123は、直前に行われた推定確定処理で新たに姿勢の推定が確定したカメラが発生した場合、姿勢の推定が確定した車載カメラ21~24があると判断する。そして、設定部123は、姿勢の推定が確定した車載カメラ21~24がある場合(ステップS71でYes)、優先度の変更が必要と判定する(ステップS72)。
すなわち、本実施形態では、設定部123は、姿勢の推定が確定されたカメラが発生すると、優先度を変更する。これによると、姿勢の推定を確定させるためにデータの蓄積が必要なカメラに対して優先的に姿勢の推定処理を行うことができる。
一方、設定部123は、直前に行われた推定確定処理で新たに姿勢の推定が確定したカメラが発生しなかった場合、姿勢の推定が確定した車載カメラ21~24がないと判断して(ステップS71でNo)、次の処理を行う。詳細には、設定部123は、4つの車載カメラ21~24のそれぞれについて得られた推定結果の獲得数の累積値の中から、最大数と最小数を抽出する。そして、設定部123は、最大数と最小数と差が所定閾値以上になったか否かを確認する(ステップS73)。
設定部123は、最大数と最小数と差が所定閾値以上になった場合(ステップS73でYes)、ステップS72に処理を進める。すなわち、本実施形態では、カメラ21~24毎に得られる獲得数の累積値の最大数と最小数との差が所定閾値以上になると、優先度を変更する。これによると、複数のカメラ21~24間において、推定結果の獲得数の累積値に偏りが発生することを抑制できる。
一方、設定部123は、最大数と最小数と差が所定閾値以上に到達していない場合(ステップS73でNo)、前回の優先度変更の判定処理の際に、最大数と最小数との差が所定閾値以上であったか否かを確認する(ステップS74)。設定部123は、前回の優先度変更の判定処理の際に、最大数と最小数との差が所定閾値以上であった場合(ステップS74でYes)、ステップS72に処理を進める。
すなわち、本実施形態では、設定部123は、最大数と最小数との差が所定閾値以上になった後に所定閾値より小さくなった場合に優先度を変更する。これによると、優先度の設定を適切に見直して推定結果の獲得数の累積値に偏りが発生することを抑制できる。
設定部123は、前回の優先度変更の判定処理の際に、最大数と最小数との差が所定閾値より小さかった場合(ステップS74でNo)、優先度の変更が不要と判定する(ステップS75)。
図2に戻って、ステップS7において、優先度の変更を行うと判定されると(ステップS7でYes)、ステップS8に処理が進められる。ステップS7において、優先度の変更が不要と判定されると(ステップS7でNo)、ステップS10に処理が進められる。
ステップS8では、設定部123が優先度の設定を変更する。設定部123は、姿勢の推定が確定した車載カメラ21~24がある場合には、当該カメラの優先度を下げる。設定部123は、車載カメラ21~24毎に得られる推定結果の獲得数の累積値の、最大数と最小数との差が所定閾値以上になっている場合、推定結果の獲得数の累積値が多いカメラの優先度を下げる。設定部123は、最大数と最小数との差が所定閾値以上になった後に所定閾値より小さくなったカメラが存在する場合、先の回で下げた優先度を元に戻す。本実施形態では、優先度が下げられると、姿勢の推定処理の順番が飛ばされる。優先度の低いカメラの順番を飛ばすことにより、優先度の高いカメラの処理を時間的に優先して進めることができる。設定部123による優先度の設定が行われると、次のステップS9に処理が進められる。
ステップS9では、設定部123は、設定変更された優先度にしたがって、推定処理の対象となるカメラについて、順に姿勢の推定処理を行う。推定処理の対象とされた全てのカメラに対して推定処理を終わると、ステップS5の処理に戻る。
ステップS10では、設定部123は、先の回と同じ優先度を維持して、推定対象となるカメラについて、順に姿勢の推定処理を行う。推定処理の対象とされた全てのカメラに対して推定処理を終わると、ステップS5の処理に戻る。
図11は、第1実施形態の姿勢推定装置1における優先度の設定について説明するための図である。図11に示す具体例に基づいて、姿勢推定装置1における優先度の設定について更に説明する。図11に示す例では、デフォルトにおいて4つの車載カメラ21~24に優先度の差はない。デフォルトにおいて、各車載カメラ21~24に対して1回ずつ姿勢の推定処理の順番が与えられる。図11において、実施は姿勢の推定処理が実行されることを指し、未実施は姿勢の推定処理が実行されないことを指す。図11に示す累積値は、姿勢の推定結果の獲得数の累積値である。図11に示す例では、累積値が80(=所定の複数回)以上に到達すると姿勢の推定が確定される。累積値の最大数と最小数との差を判定する所定閾値は20である。
第1回目においては、推定処理の優先度に差がなく、フロントカメラ21、バックカメラ22、左サイドカメラ23、右サイドカメラ24の順に推定処理が行われる。推定処理後の各車載カメラ21~24の累積値はいずれも10であり、いずれのカメラにおいても姿勢の推定は確定されない。また、累積値の最大数と最小数の差はゼロであり、所定閾値(=20)より小さい。更に、初回のために、先の回のデータはなく、前回に累積値の最大数と最小数の差が所定閾値以上であったという事実もない。したがって、4つの車載カメラ21~24の推定処理後に行われる優先度変更の判定処理において、優先度の設定変更不要と判定される。
第2回目においては、第1回目と同様に、フロントカメラ21、バックカメラ22、左サイドカメラ23、右サイドカメラ24の順に推定処理が行われる。推定処理後の各車載カメラ21~24の累積値はいずれも80以上に到達しておらず、いずれのカメラにおいても姿勢の推定は確定されない。一方、累積値の最大数(=50)と最小数(=20)の差は30であり、所定閾値(=20)より大きい。このために、4つの車載カメラ21~24の推定処理後に行われる優先度変更の判定処理において、優先度の設定変更必要と判定される。この例では、累積値が最小数に対して20以上(この設定は適宜変更されてよい)大きくなっているカメラについて、優先度が下げられる。すなわち、フロントカメラ21とバックカメラ22とは優先度が下げられ、次回(第3回目)の順番が飛ばされる。
第3回目においては、左サイドカメラ23、右サイドカメラ24の順に推定処理が行われる。推定処理後の各車載カメラ21~24の累積値はいずれも80以上に到達しておらず、いずれのカメラにおいても姿勢の推定は確定されない。累積値の最大数(=50)と最小数(=40)の差は所定数(=20)より小さい。ただし、前回確認時において、累積値の最大数と最小数の差は所定閾値より大きかったので、最大数と最小数との差が所定閾値以上になった後に所定閾値より小さくなった場合に該当する。このために、2つの車載カメラ23、24の推定処理後に行われる優先度変更の判定処理において、優先度の設定変更必要と判定される。具体的には、前回優先度が下げられたフロントカメラ21とバックカメラ22との優先度の設定が元に戻される。すなわち、4つの車載カメラ21~24の推定処理の優先度に差がなくなり、次回(第4回目)は、4つの車載カメラ21~24の推定処理が行われる。
第4回目においては、フロントカメラ21、バックカメラ22、左サイドカメラ23、右サイドカメラ24の順に推定処理が行われる。推定処理後において、フロントカメラ21について、累積値が80以上に到達しており、姿勢の推定が確定される。このために、4つの車載カメラ21~24の推定処理後に行われる優先度変更の判定処理において、優先度の設定変更必要と判定される。具体的には、姿勢の推定が確定されたフロントカメラ21の優先度の設定が下げられ、次回(第5回目)の順番が飛ばされる。
なお、本例では、第4回目において、累積値の最大数は80、最小数は65となる。このために、最大数と最小数との差は所定閾値(=20)より小さく、この観点に基づいて優先度の設定は変更されない。ただし、右サイドカメラ24の累積値が50であったとする。この場合には、最大数(=80)と最小数(=50)との差が所定閾値(=20)以上となるために、最大数と最小数との差を考慮して優先度の設定が行われる。例えば、最小数より累積値が所定数(本例では20)以上となるバックカメラ22と左サイドカメラ23も優先度が下げられる。
第5回目においては、バックカメラ22、左サイドカメラ23、右サイドカメラ24の順に推定処理が行われる。推定処理を行った3つのカメラ22~24の全てについて、累積値が80以上に到達しており、これらのカメラ22~24について、姿勢の推定が確定される。この場合、4つの車載カメラ21~24の全てについて姿勢の推定が確定されたことになるために、一連の姿勢の推定処理は一旦終了される。
なお、以上においては、累積値の最大数と最小数を判断するに際して、常に、4つの車載カメラ21~24の全てを使う構成としているが、このような構成でなくてもよい。例えば、姿勢の推定が確定したカメラが発生した場合には、当該カメラを除外して、累積値の最大数と最小数との比較が行われる構成としてもよい。すなわち、姿勢の推定処理が確定していないカメラにのみ注目して累積値の最大数と最小数との比較が行われる構成としてもよい。
<2.第2実施形態>
次に、第2実施形態の姿勢推定装置について説明する。第2実施形態の説明にあたっては、第1実施形態と重複する内容については、特に説明の必要がない場合には説明を省略する。
図12は、第2実施形態に係る姿勢推定装置1Aの構成を説明するための図である。図12に示すように、第2実施形態においては、制御部12AのCPUが記憶部13に記憶されるプログラムに従って演算処理を実行することにより実現される機能に判断部124が含まれる。すなわち、姿勢推定装置1Aが判断部124を備える。この点が、第1実施形態と異なる。
判断部124は、複数の車載カメラ21~24の中に、推定結果の獲得数以外に基づく優先条件を有するカメラが存在するか否かを判断する。推定結果の獲得数以外に基づく優先条件は、例えば、運転者の視界に基づく優先条件、自車両の操作状況に基づく優先条件、ナビゲーション装置からの情報に基づく優先条件等であってよい。
運転者の視界に基づく優先条件は、例えば、予め記憶部13に記憶されている。例えば、運転者の視界が確保し易い方向を撮影するフロントカメラ21や右サイドカメラ24(運転席が右側を想定)は、運転者の視界が確保し難い方向を撮影するバックカメラ22や左サイドカメラ23に比べて、推定処理の優先度が下げられる。
自車両の操作状況に基づく優先条件は、例えば、通信バスB1を介して舵角センサ3から得られる情報や、不図示のシフトセンサから得られる情報等に基づいて判断部124が設定してもよいし、外部から入力されてもよい。例えば、シフトセンサが後退である場合には、バックカメラ22の推定処理の優先度が上げられる。
ナビゲーション装置からの情報に基づく優先条件は、姿勢推定装置1Aに接続される不図示のナビゲーション装置から得られる情報に基づいて判断部124が設定してもよいし、外部から入力されてもよい。例えば、ナビゲーション装置において設定された経路からこの先において右折や左折が想定される場合には、当該曲がる方向に対応したカメラの推定処理の優先度が上げられる。
設定部123は、優先条件を有する車載カメラ21~24が存在する場合に、当該優先条件に基づいて推定処理の優先度を設定する。これによれば、車両の運転シーン等に合わせて推定処理の優先度の設定の仕方を変更することができ、運転シーンに適したカメラの姿勢推定を行うことができる。
図13は、第2実施形態の姿勢推定装置1Aにおいて、4つの車載カメラ21~24の姿勢の推定を行う場合に実行される処理の一例を示すフローチャートである。図13の処理の開始時においては、4つの車載カメラ21~24毎の姿勢の推定処理の優先度は同じとされる。すなわち、図13の処理の開始時において、4つの車載カメラ21~24の姿勢の推定処理の頻度には差がない。なお、本例では、新しい優先条件が発生すると、古い優先条件は更新される。また、優先条件にしたがって、優先対象のカメラの姿勢の推定が確定した場合、新たに優先条件が発生しない限り、優先条件はないものとして扱う。ただし、この優先条件の扱いは例示にすぎず、適宜変更されてよい。
ステップS31では、判断部124は、推定処理の獲得数以外に基づく優先条件(以下、単に優先条件と記載することがある)を有するカメラが存在するか否かを確認する。判断部124は、記憶部13に記憶される情報、通信バスB1を利用して得られるCAN情報、ナビゲーション装置から得られるルート情報等を確認することにより、優先条件を有するカメラが存在するか否かを判断する。判断部124により優先条件を有するカメラがあると判断された場合(ステップS31でYes)、ステップS32に処理が進められる。一方、判断部124により優先条件を有するカメラがないと判断された場合(ステップS31でNo)、ステップS34に処理が進められる。
ステップS32では、設定部123は、優先条件に従って各車載カメラ21~24の優先度を設定する。これにより、優先度の設定が処理の開始時の設定から変更される。設定部123により優先度が設定されると、ステップS33に処理が進められる。
ステップS33では、変更設定された優先度にしたがって、姿勢の推定処理の対象となるカメラについて、推定処理が順に行われる。なお、姿勢の推定対象となるカメラは、複数のことも単数のこともあり得る。推定対象の対象とされた全てのカメラに対して推定処理が終わると、ステップS35に処理が進められる。
ステップS34では、優先条件を有するカメラがないために優先度が変更されず、処理の開始時に設定された優先度(全てのカメラ21~24で同じ)で、推定処理の対象となるカメラの推定処理が順に行われる。本例では、フロントカメラ21、バックカメラ22、左サイドカメラ23、右サイドカメラ24の順に姿勢の推定処理が行われる。4つの車載カメラ21~24の全てについて姿勢の推定処理が終わると、ステップS35に処理が進められる。
ステップS35では、確定部122が所定の条件に従って姿勢の推定を確定させる処理を行う。当該処理は、先に説明した図2のステップS5と同じために説明を省略する。確定部122は、推定確定処理が完了すると、次のステップS36に処理を進める。
ステップS36では、確定部122は、全ての車載カメラ21~24について姿勢の推定が確定されたか否かを確認する。全ての車載カメラ21~24について姿勢の推定が確定されている場合には(ステップS36でYes)、図13に示す処理が終了する。姿勢の推定が確定されていない車載カメラ21~24が存在する場合には(ステップS36でNo)、ステップS37に処理が進められる。
ステップS37では、設定部123により、車載カメラ21~24毎の優先度を変更する必要があるか否かが判定される。図14は、第2実施形態の姿勢推定装置1Aにおける優先度変更の判定処理の一例を示すフローチャートである。図14は、図13におけるステップS37の処理の詳細を示す図である。
設定部123は、まず、新たな優先条件が発生したか否かを確認する(ステップS371)。新たな優先条件は、その時点で設定されているカメラ21~24毎の優先度において加味されていない優先条件である。新たな優先条件が発生した場合には(ステップS371でYes)、設定部123は、優先度の変更が必要と判定する(ステップS372)。
新たな優先条件が発生していない場合には(ステップS371でNo)、設定部123は、姿勢の推定が確定した車載カメラ21~24があるか否かを確認する(ステップS373)。当該確認処理は、図10のステップS71と同様である。設定部123は、姿勢の推定が確定した車載カメラ21~24がある場合(ステップS373でYes)、優先度の変更が必要と判定する(ステップS372)。
姿勢の推定が確定した車載カメラ21~24がない場合(ステップS373でNo)、設定部123は、現在の優先度が優先条件に従って設定されたものか否かを確認する(ステップS374)。現在の優先度が優先条件に従って設定されたものである場合(ステップS374でYes)、優先度の設定変更不要と判定する(ステップS377)。
現在の優先度が優先条件に従って設定されたものでない場合(ステップS374でNo)、設定部123は、累積値の最大数と最小数と差が所定閾値以上になったか否かを確認する(ステップS375)。当該処理は、図10に示すステップS73と同じである。この後に行われるステップS376は、図10に示すステップS74と同様である。このため、これらの説明は省略する。
図13に戻って、ステップS37において、優先度の変更を行うと判定されると(ステップS37でYes)、ステップS38に処理が進められる。ステップS37において、優先度の変更が不要と判定されると(ステップS37でNo)、ステップS40に処理が進められる。
ステップS38~ステップS40の処理は、図2に示すステップ8~ステップS10の処理と同様である。このために説明を省略する。なお、優先度の設定変更を行う場合において、新たな優先条件が発生している場合には、先の優先条件を破棄して新たな優先条件で優先度の設定を行う点は、第1実施形態と異なる。
図15は、第2実施形態の姿勢推定装置1Aにおける優先度の設定について説明するための図である。図15に示す具体例に基づいて、姿勢推定装置1Aにおける優先度の設定について更に説明する。図15に示す例では、記憶部13にバックカメラ22および左サイドカメラ23の推定処理を優先するように優先条件が記憶されている。図15において、実施は姿勢の推定処理が実行されることを指し、未実施は姿勢の推定処理が実行されないことを指す。図15に示す累積値は、姿勢の推定結果の獲得数の累積値である。図15に示す例では、累積値が80(=所定の複数回)以上に到達すると姿勢の推定が確定される。
第1回目においては、記憶部13に記憶される優先条件により、バックカメラ22および左サイドカメラ23の姿勢の推定処理の優先度が上げられる。この結果、第1回目においては、フロントカメラ21および右サイドカメラ24の順番が飛ばされ、バックカメラ22、左サイドカメラ23の順に推定処理が行われる。推定処理後のバックカメラ22おの累積値(=30)および左サイドカメラ23の累積値(=10)はいずれも80以上に到達しておらず、いずれのカメラにおいても姿勢の推定は確定されない。また、現在の優先度の設定は優先条件にしたがったものである。したがって、バックカメラ22および左サイドカメラ23の推定処理後に行われる優先度変更の判定処理において、新たな優先条件の発生が認められない場合には、優先度の設定変更不要と判定される。本例では、この段階では新たな優先条件は発生しておらず、優先度の設定は変更されない。
なお、本例では、第1回目終了の時点で、バックカメラ22と左サイドカメラ23との間で、累積値の差が大きくなっている。この差をなくすために、第2回目においては、左サイドカメラ23の推定処理が優先される(バックカメラ22の順番が飛ばされる)構成としてもよい。すなわち、優先処理対象とされるカメラ毎に得られる推定結果の獲得数の累積値の、最大数と最小数との差が所定閾値以上になると優先度を変更してもよい。
第2回目においては、第1回目と同様に、バックカメラ22、左サイドカメラ23の順に推定処理が行われる。ここでも、推定処理後のバックカメラ22および左サイドカメラ23の累積値はいずれも80以上に到達しておらず、いずれのカメラにおいても姿勢の推定は確定されない。また、現在の優先度の設定は優先条件にしたがったものである。したがって、バックカメラ22および左サイドカメラ23の推定処理後に行われる優先度変更の判定処理において、新たな優先条件の発生が認められない場合には、優先度の設定変更不要と判定される。本例では、この段階で新たな優先条件が発生する。このために、優先度の設定変更必要と判定される。新たな優先条件は、ナビゲーション装置からこの先に左折予定があるとの情報が得られたことにより発生した条件であり、具体的には、左サイドカメラ23の推定処理を優先するという条件である。新たな優先条件の発生により、優先度の設定が変更される。これにより、次回(第3回目)においては左サイドカメラ23の推定処理のみが行われる。
第3回目においては、左サイドカメラ23のみ、推定処理が行われる。推定処理後の左サイドカメラ23の累積値は80以上に到達しておらず、姿勢の推定は確定されない。また、現在の優先度の設定は優先条件にしたがったものである。したがって、左サイドカメラ23の推定処理後に行われる優先度変更の判定処理において、新たな優先条件の発生が認められない場合には、優先度の設定変更不要と判定される。本例では、この段階では新たな優先条件は発生しておらず、優先度の設定は変更されない。
第4回目においては、左サイドカメラ23のみ、推定処理が行われる。推定処理後の左サイドカメラ23について、累積値が80以上に到達しており、姿勢の推定が確定される。このために、左サイドカメラ23の推定処理後に行われる優先度変更の判定処理において、優先度の設定変更必要と判定される。姿勢の推定が確定された左サイドカメラ23は、優先度の設定が下げられ、次回(第5回目)の順番が飛ばされる。また、左サイドカメラ23の姿勢推定の確定により、優先条件は存在しないことになる。この結果、車載カメラ21~24毎に得られる累積値の最大数(=85)と最小数(=0)との差が所定閾値以上であるか否かの結果が参酌され、これに基づいて優先度が決められる。これにより、累積値が大きいバックカメラ22の優先度が下げられ、次回の順番が飛ばされる。
第5回目においては、フロントカメラ21、右サイドカメラ24の順に推定処理が行われる。推定処理後のフロントカメラ21および右サイドカメラ24の累積値はいずれも80以上に到達しておらず、先に確定した左サイドカメラ23を除き、姿勢の推定が確定していない。このために、この後も、姿勢推定の確定のための推定処理が、上述した図13等に示すフローチャートにしたがって続けられる。
<3.留意事項>
本明細書における実施形態や変形例の構成は、本発明の例示にすぎない。実施形態や変形例の構成は、本発明の技術的思想を超えない範囲で適宜変更されてもよい。また、複数の実施形態及び変形例は、可能な範囲で組み合わせて実施されてよい。
以上におけるカメラの姿勢の推定処理の方法は例示にすぎない。カメラの姿勢の推定処理の方法は、適宜変更されてよい。カメラの姿勢の推定処理は、例えば、撮影画像から抽出される特徴点の動きと、自車両の移動情報(移動量や速度)とを比較して求める構成等であってもよい。
本発明は、自動駐車等の移動体の運転支援を行うカメラの姿勢推定を行うために利用することができる。また、本発明は、ドライブレコーダ等の運転情報を記録するカメラの姿勢推定を行うために利用することができる。また、本発明は、カメラの姿勢の推定情報を利用して撮影画像を補正する補正装置等に利用することができる。また、本発明は、複数の移動体とネットワークにより通信可能に設けられるセンターと連携して動作する装置等に利用することができる。当該装置は、例えば、センターに撮影画像を送信する場合に、カメラの姿勢の推定情報を撮影画像とセットにして送信する構成であってよい。そして、センターでは、カメラの姿勢の推定情報を用いて、各種画像処理(カメラの姿勢も考慮した画像の視点・視方向を変更する処理、例えば車両の車体前方方向の画像に視点・視方向変換した画像を生成する等)、画像を用いた計測処理におけるカメラの姿勢に対する補正処理、カメラ姿勢の経年変化を統計処理(多くの車両のデータ)、等を行いユーザへの有用な提供データを生成する等する。