以下、本発明の例示的な実施形態が開示される。以下に示される実施形態の構成、ならびに当該構成によってもたらされる作用、結果、および効果は、一例である。本発明は、以下の実施形態に開示される構成以外によって実現可能であるとともに、基本的な構成に基づく種々の効果や、派生的な効果のうち、少なくとも1つを得ることが可能である。
本実施形態にかかるカメラキャリブレーション装置を搭載する車両は、内燃機関(エンジン)を駆動源とする自動車(内燃機関自動車)であっても良いし、電動機(モータ)を駆動源とする自動車(電気自動車、燃料電池自動車等)であっても良いし、それらの双方を駆動源とする自動車(ハイブリッド自動車)であっても良い。また、車両は、種々の変速装置、内燃機関や電動機の駆動に必要な種々の装置(システム、部品等)を搭載可能である。また、車両における車輪の駆動に関わる装置の方式、個数、レイアウト等は、種々に設定可能である。
図1は、本実施形態にかかるカメラキャリブレーション装置を搭載する車両の車室の一部が透視された状態の一例が示された斜視図である。図1に示すように、車両1は、車体2と、操舵部4と、加速操作部5と、制動操作部6と、変速操作部7と、モニタ装置11と、を備える。車体2は、乗員が乗車する車室2aを有する。車室2a内には、乗員としての運転手が座席2bに臨む状態で、操舵部4や、加速操作部5、制動操作部6、変速操作部7等が設けられている。操舵部4は、例えば、ダッシュボード24から突出したステアリングホイールである。加速操作部5は、例えば、運転手の足下に位置されたアクセルペダルである。制動操作部6は、例えば、運転手の足下に位置されたブレーキペダルである。変速操作部7は、例えば、センターコンソールから突出したシフトレバーである。
モニタ装置11は、例えば、ダッシュボード24の車幅方向(すなわち、左右方向)の中央部に設けられる。モニタ装置11は、例えば、ナビゲーションシステムまたはオーディオシステム等の機能を有していても良い。モニタ装置11は、表示装置8、音声出力装置9、および操作入力部10を有する。また、モニタ装置11は、スイッチ、ダイヤル、ジョイスティック、および押しボタン等の各種の操作入力部を有しても良い。
表示装置8は、LCD(Liquid Crystal Display)やOELD(Organic Electroluminescent Display)等で構成され、画像データに基づいて各種画像を表示可能である。音声出力装置9は、スピーカ等で構成され、音声データに基づいて各種音声を出力する。音声出力装置9は、車室2a内において、モニタ装置11以外の異なる位置に設けられていても良い。
操作入力部10は、タッチパネル等で構成され、乗員による各種情報の入力を可能とする。また、操作入力部10は、表示装置8の表示画面に設けられ、表示装置8に表示される画像を透過可能である。これにより、操作入力部10は、表示装置8の表示画面に表示される画像を乗員に視認させることを可能とする。操作入力部10は、表示装置8の表示画面上における乗員のタッチ操作を検出することによって、乗員による各種情報の入力を受け付ける。
図2は、本実施形態にかかる車両の一例の平面図である。図1および図2に示すように、車両1は、四輪自動車等であり、左右2つの前輪3Fと、左右2つの後輪3Rと、を有する。4つの車輪3の全てまたは一部が、転舵可能である。
車両1は、複数の撮像部15(車載カメラ)を搭載する。本実施形態では、車両1は、例えば、4つの撮像部15a~15dを搭載する。撮像部15は、CCD(Charge Coupled Device)またはCIS(CMOS Image Sensor)等の撮像素子を有するデジタルカメラである。撮像部15は、所定のフレームレートで車両1の周囲を撮像可能である。そして、撮像部15は、車両1の周囲を撮像して得られた撮像画像を出力する。撮像部15は、それぞれ、広角レンズまたは魚眼レンズを有し、水平方向には、例えば、140°~220°の範囲を撮像可能である。また、撮像部15の光軸は、斜め下方に向けて設定されている場合もある。
具体的には、撮像部15aは、例えば、車体2の後側の端部2eに位置し、リアハッチのドア2hのリアウィンドウの下方の壁部に設けられている。そして、撮像部15aは、車両1の周囲のうち、当該車両1の後方の領域を撮像可能である。撮像部15bは、例えば、車体2の右側の端部2fに位置し、右側のドアミラー2gに設けられている。そして、撮像部15bは、車両1の周囲のうち、当該車両の側方の領域を撮像可能である。撮像部15cは、例えば、車体2の前側、すなわち、車両1の前後方向の前方側の端部2cに位置し、フロントバンパやフロントグリル等に設けられている。そして、撮像部15cは、車両1の周囲のうち、当該車両1の前方の領域を撮像可能である。撮像部15dは、例えば、車体2の左側、すなわち、車幅方向の左側の端部2dに位置し、左側のドアミラー2gに設けられている。そして、撮像部15dは、車両1の周囲のうち、当該車両1の側方の領域を撮像可能である。
図3は、本実施形態にかかる車両の機能構成の一例を示すブロック図である。次に、図3を用いて、本実施形態にかかる車両1の機能構成の一例について説明する。
図3に示すように、車両1は、操舵システム13と、ブレーキシステム18と、舵角センサ19と、アクセルセンサ20と、シフトセンサ21と、車輪速センサ22と、車内ネットワーク23と、ECU(Electronic Control Unit)14と、を備える。
モニタ装置11、操舵システム13、ブレーキシステム18、舵角センサ19、アクセルセンサ20、シフトセンサ21、車輪速センサ22、およびECU14は、電気通信回線である車内ネットワーク23を介して電気的に接続されている。車内ネットワーク23は、CAN(Controller Area Network)等により構成される。
操舵システム13は、電動パワーステアリングシステムやSBW(Steer By Wire)システム等である。操舵システム13は、アクチュエータ13aおよびトルクセンサ13bを有する。そして、操舵システム13は、ECU14等によって電気的に制御され、アクチュエータ13aを動作させて、操舵部4に対して、トルクを付加して操舵力を補うことによって、車輪3を転舵する。トルクセンサ13bは、運転者が操舵部4に与えるトルクを検出し、その検出結果をECU14に送信する。
ブレーキシステム18は、車両1のブレーキのロックを制御するABS(Anti-lock Brake System)、コーナリング時の車両1の横滑りを抑制する横滑り防止装置(ESC:Electronic Stability Control)、ブレーキ力を増強させてブレーキをアシストする電動ブレーキシステム、およびBBW(Brake By Wire)を含む。
ブレーキシステム18は、アクチュエータ18aおよびブレーキセンサ18bを有する。ブレーキシステム18は、ECU14等によって電気的に制御され、アクチュエータ18aを介して、車輪3に制動力を付与する。ブレーキシステム18は、左右の車輪3の回転差等から、ブレーキのロック、車輪3の空回り、および横滑りの兆候等を検出して、ブレーキのロック、車輪3の空回り、および横滑りを抑制する制御を実行する。ブレーキセンサ18bは、制動操作部6の可動部としてのブレーキペダルの位置を検出する変位センサであり、ブレーキペダルの位置の検出結果をECU14に送信する。
舵角センサ19は、ステアリングホイール等の操舵部4の操舵量を検出するセンサである。本実施形態では、舵角センサ19は、ホール素子等で構成され、操舵部4の回転部分の回転角度を操舵量として検出し、その検出結果をECU14に送信する。
アクセルセンサ20は、加速操作部5の可動部としてのアクセルペダルの位置を検出する変位センサであり、その検出結果をECU14に送信する。
シフトセンサ21は、変速操作部7の可動部(バー、アーム、ボタン等)の位置を検出するセンサであり、その検出結果をECU14に送信する。
車輪速センサ22は、ホール素子等を有し、車輪3の回転量や単位時間当たりの車輪3の回転数を検出するセンサであり、その検出結果をECU14に送信する。
ECU14は、コンピュータ等で構成され、ハードウェアとソフトウェアが協働することにより、車両1の制御全般を司る。具体的には、ECU14は、CPU(Central Processing Unit)14a、ROM(Read Only Memory)14b、RAM(Random Access Memory)14c、表示制御部14d、音声制御部14e、およびSSD(Solid State Drive)14fを備える。CPU14a、ROM14b、およびRAM14cは、同一の回路基板内に設けられていても良い。
CPU14aは、ROM14b等の不揮発性の記憶装置に記憶されたプログラムを読み出し、当該プログラムに従って各種の演算処理を実行する。例えば、CPU14aは、表示装置8に表示させる画像データに対する画像処理、駐車位置等の目標位置までの目標経路に従った車両1の走行の制御、撮像部15のキャリブレーションに関わる処理等を実行する。
ROM14bは、各種プログラムおよび当該プログラムの実行に必要なパラメータ等を記憶する。
RAM14cは、CPU14aでの演算で用いられる各種データを一時的に記憶する。
表示制御部14dは、ECU14での演算処理のうち、主として、撮像部15から取得してCPU14aへ出力する画像データに対する画像処理、CPU14aから取得した画像データを表示装置8に表示させる表示用の画像データへの変換等を実行する。
音声制御部14eは、ECU14での演算処理のうち、主として、CPU14aから取得して音声出力装置9に出力させる音声の処理を実行する。
SSD14fは、書き換え可能な不揮発性の記憶部であって、ECU14の電源がオフされた場合にあってもCPU14aから取得したデータを記憶し続ける。
図4は、本実施形態にかかる車両が有するECUの機能構成の一例を示すブロック図である。
次に、図4を用いて、本実施形態にかかる車両1が有するECU14の機能構成の一例について説明する。
図4に示すように、ECU14は、画像取得部401、カメラ位置姿勢推定部402、地図作成部403、完了判定部404、KF選択部405、シーン検索部406、地図統合部407、全体最適化部408、およびカメラパラメータ算出部409を備える。
例えば、回路基板に搭載されたCPU14a等のプロセッサが、ROM14bまたはSSD14f等の記憶媒体内に格納されたカメラキャリブレーションプログラムを実行することにより、ECU14は、画像取得部401、カメラ位置姿勢推定部402、地図作成部403、完了判定部404、KF選択部405、シーン検索部406、地図統合部407、全体最適化部408、およびカメラパラメータ算出部409の機能を実現する。画像取得部401、カメラ位置姿勢推定部402、地図作成部403、完了判定部404、KF選択部405、シーン検索部406、地図統合部407、全体最適化部408、およびカメラパラメータ算出部409の一部または全部を回路等のハードウェアによって構成しても良い。
画像取得部401は、撮像部15によって車両1(移動体の一例)の周囲を撮像して得られる撮像画像(フレーム)を取得する。本実施形態では、画像取得部401は、車両1の駐車時に、撮像部15から、フレームを取得する。これにより、複数の撮像部15によって同一の領域を撮像して得られるフレームを用いて、複数の撮像部15間の位置および姿勢の関係を示すカメラパラメータを算出することができるので、カメラパラメータの算出精度を向上させることができる。例えば、画像取得部401は、操作入力部10を介して、車両1の自動駐車が指示されてから、車両1の駐車が完了するまでの間、撮像部15から、フレームを取得する。
KF選択部405は、複数の撮像部15のそれぞれによって撮像されるフレームのうち所定タイミングのフレームである第1キーフレームを選択するKF選択部の一例である。ここで、所定タイミングは、1つ前の第1キーフレームが撮像されてから所定時間経過するタイミング、または、1つ前の第1キーフレームが撮像されてから車両1が所定距離移動するタイミングである。なお、所定時間は、予め設定された時間であり、一定時間であっても良いし、一定時間でなくても良い。また、所定距離は、予め設定された距離であり、一定距離であっても良いし、一定距離でなくても良い。また、複数の撮像部15間において、所定タイミングは、同じタイミングであって良いし、その差分が予め設定された閾値以下のタイミングであっても良い。
これにより、同一のタイミングに撮像されたフレームに基づいて推定される位置姿勢情報を用いて、複数の撮像部15間の位置姿勢情報の関係を求めることができる。その結果、複数の撮像部15の位置姿勢情報の関係の算出精度を向上させることができる。
カメラ位置姿勢推定部402は、KF選択部405によって選択される第1キーフレームに基づいて、各撮像部15の位置姿勢情報を推定する推定部の一例である。ここで、位置姿勢情報は、撮像部15の位置(以下、自己位置と言う)および姿勢を示す情報である。例えば、カメラ位置姿勢推定部402は、SFM(Structure from Motion)やVisual Slam等によって、第1キーフレームに基づいて、撮像部15の位置姿勢情報を推定する。本実施形態では、カメラ位置姿勢推定部402は、第1キーフレームに基づいて、各撮像部15の位置姿勢情報を推定しているが、後述する第2キーフレームに基づいても、各撮像部15の位置姿勢情報を推定しても良い。
地図作成部403は、撮像部15により撮像したフレーム内に存在する特徴点を抽出し、当該特徴点に基づいて、各撮像部15の地図(以下、周囲地図と言う)を作成する作成部の一例である。ここで、周囲地図は、車両1の周囲の地図(例えば、三次元の地図)である。また、周囲地図は、撮像部15の自己位置および撮像部15の姿勢(すなわち、位置姿勢情報)を含む。
例えば、地図作成部403は、Visual SLAM(Simultaneous Localization And Mapping)やSFM等によって、周囲地図を作成する。具体的には、地図作成部403は、撮像部15により撮像したフレームから特徴点を抽出する。次いで、地図作成部403は、撮像部15の位置姿勢情報、および抽出した特徴点に基づいて、三角測量によって、撮像部15と当該特徴点間の距離を求めることにより、周囲地図を作成する。
本実施形態では、地図作成部403は、撮像部15により撮像されるフレームから、第2キーフレームを選択する。ここで、第2キーフレームは、撮像部15により撮像したフレームのうち、後述する地図作成部403による周囲地図の作成において、重要な位置において撮像されたフレームである。例えば、地図作成部403は、所定フレームの特徴点と、当該所定フレームよりも前のフレームの特徴点と、が一致する数または割合が所定値以下となる場合に、当該所定フレームを第2キーフレームとして選択する。ここで、第1キーフレームとして選択されるフレームが第2キーフレームとして選択されても良い。そして、地図作成部403は、撮像部15により撮像したフレームのうち、当該選択した第2キーフレーム内に存在する特徴点に基づいて、周囲地図を作成する。
これにより、周囲地図の作成に用いるフレームの間隔が長くなり過ぎて、高精度な周囲地図の作成に十分な特徴点が得られなくなることを防止できるので、周囲地図の精度を向上させることができる。また、周囲地図の作成に用いるフレームの数が多くなり、当該フレームから抽出される特徴点の数が多くなり過ぎることを防止できるので、周囲地図の作成による処理負荷を軽減することができる。
また、本実施形態では、地図作成部403は、車輪速センサ22により検出される車輪3の回転数や、図示しないIMU(Inertial Measurement Unit)によって検出される車両1に作用する角速度や加速度等に基づいて、撮像部15の位置姿勢情報を補正すること等によって、周囲地図に含まれるスケールドリフトの影響を軽減する。
完了判定部404は、撮像部15の移動が停止して、地図作成部403による周囲地図の作成が完了したか否かを判定する。本実施形態では、完了判定部404は、車輪速センサ22により検出される車輪3の回転数や、図示しないIMUによって検出される車両1に作用する角速度や加速度等に基づいて、撮像部15の移動が停止したか否かを判定する。そして、完了判定部404は、撮像部15の移動が停止したと判定した場合、地図作成部403による周囲地図の作成が完了したと判定する。
シーン検索部406は、複数の撮像部15のうちいずれかの撮像部(以下、第1撮像部と言う)15のフレームと、複数の撮像部15のうち第1撮像部15とは異なる撮像部(以下、第2撮像部と言う)15のフレームと、の類似する箇所(例えば、特徴点。以下、類似箇所と言う。)を検索する検索部の一例である。本実施形態では、シーン検索部406は、第1,2撮像部15のそれぞれの周囲地図の作成に用いたフレームから類似箇所を検索する。これにより、第1,2撮像部15のフレーム間の類似箇所の検索精度を高めることができるので、後述する地図統合部407によって高精度な統合地図を作成可能となる。
例えば、シーン検索部406は、Bag-Of-Visual Wordsや、Fisher Vectors、Deep Learning等によって、第1,2撮像部15のそれぞれのフレームを特徴量で表現したり、第1,2撮像部15のそれぞれのフレーム間の局所特徴量の類似性を求めたりする。これにより、シーン検索部406は、第1,2撮像部15のそれぞれのフレームに含まれる特徴点のうち、同一領域を撮像した特徴点を、類似箇所として検索する。
本実施形態では、シーン検索部406は、完了判定部404によって、地図作成部403による周囲地図の作成が完了したと判定された場合に、第1,2撮像部15のそれぞれのフレームの類似箇所を検索するものとする。
地図統合部407は、第1撮像部15の周囲地図と、第2撮像部15の周囲地図と、を統合した地図(以下、統合地図と言う)を作成する統合部の一例である。具体的には、地図統合部407は、第1,2撮像部15のそれぞれのフレーム間における類似箇所の対応関係、および第1,2撮像部15のそれぞれの周囲地図に含まれる特徴点(以下、地図点群と言う)と類似箇所との対応関係に基づいて、第1,2撮像部15のそれぞれの周囲地図に対して、回転、並進、拡縮等を実行する。これにより、地図統合部407は、第1撮像部15の周囲地図と、第2撮像部15の周囲地図と、を統合した統合地図を作成する。
本実施形態では、地図統合部407は、第1,2撮像部15のそれぞれの周囲地図に対して、拡縮を実行しているが、車輪速センサ22により検出される車輪3の回転数や、図示しないIMUによって検出される車両1に作用する角速度や加速度等を用いて、絶対的なスケールが求められている場合には、第1,2撮像部15のそれぞれの周囲地図に対して、回転および並進のみを実行して、統合地図を作成しても良い。
全体最適化部408は、地図統合部407により作成される統合地図の全体最適化を実行する。具体的には、全体最適化部408は、第1,2撮像部15のそれぞれのフレーム(本実施形態では、第1キーフレームおよび第2キーフレーム)の特徴点のうち、シーン検索部406により検索した類似箇所以外の特徴点に対応する周囲地図の地図点群が、第1,2撮像部15のそれぞれの周囲地図間において一致するように、統合地図を調整する。これにより、より高精度な統合地図が作成されるので、第1,2撮像部15間における位置姿勢情報の関係をより高精度に求めることができる。
カメラパラメータ算出部409は、統合地図の所定タイミングにおける第1,2撮像部15のそれぞれの位置姿勢情報に基づいて、第1,2撮像部15間の位置姿勢情報の関係を示すカメラパラメータを算出する。これにより、平坦な路面や区画線等の特定の物体を用いずに統合地図を作成することができるので、平坦な路面や区画線等の特定の物体が存在しない場合でも、第1,2撮像部15間の位置姿勢情報の関係を算出することができる。
本実施形態では、カメラパラメータ算出部409は、全体最適化部408によって全体最適化された統合地図の所定タイミングにおける第1,2撮像部15のそれぞれの位置姿勢情報に基づいて、カメラパラメータを算出する。これにより、より高精度な統合地図を用いてカメラパラメータを算出することができるので、第1,2撮像部15間の位置姿勢情報の関係の算出精度を向上させることができる。
本実施形態では、カメラパラメータ算出部409は、撮像部15毎に、当該撮像部15とは異なる撮像部15とのカメラパラメータを算出する。そして、カメラパラメータ算出部409は、複数の撮像部15のそれぞれについて算出したカメラパラメータに基づいて、各撮像部15について算出したカメラパラメータを、複数の撮像部15のうちいずれか1つの撮像部15の位置姿勢情報を基準とするカメラパラメータに補正する。
図5は、本実施形態にかかる車両が有するECUによる周辺地図の作成処理の一例を説明するための図である。
次に、図5を用いて、本実施形態にかかるECU14による周囲地図の作成処理の一例について説明する。
ここでは、図5に示すように、車両1を、駐車開始位置Sから、切り返し位置Tを経由して、駐車目標位置Eに横列駐車する場合における、撮像部15b,15cの周囲地図M1,M2の作成処理について説明する。なお、他の撮像部15a,15dについても、同様にして周囲地図を作成するものとする。
車両1を駐車目標位置Eに対して横列駐車させる場合、地図作成部403は、例えば、図5に示すように、車両1の前方を撮像可能な撮像部15cの第2キーフレーム、および当該撮像部15cの第1キーフレームに基づいて推定される位置姿勢情報I1-1~I1-7に基づいて、周囲地図M1を作成する。ここで、周囲地図M1には、図5に示すように、位置姿勢情報I1-1~I1-7、および撮像部15cの第2キーフレームに含まれる特徴点に対応する地図点群P1~P8が含まれる。
また、地図作成部403は、例えば、図5に示すように、車両1の右側方を撮像可能な撮像部15bの第2キーフレーム、および当該撮像部15bの第1キーフレームに基づいて推定した位置姿勢情報I2-1~I2-7に基づいて、周囲地図M2を作成する。周囲地図M2には、図5に示すように、位置姿勢情報I2-1~I2-7、および撮像部15bの第2キーフレームに含まれる特徴点に対応する地図点群P1~P8が含まれる。
さらに、地図作成部403は、図5に示すように、撮像部15cの第2キーフレームに基づいて推定される位置姿勢情報I1´-1~I1´-7を、周囲地図M1に含める。同様にして、地図作成部403は、図5に示すように、撮像部15bの第2キーフレームに基づいて推定される位置姿勢情報I2´-1~I2´-7を、周囲地図M2に含める。
ここで、位置姿勢情報I1-1~I1-7,I1´-1~I1´-7,I2-1~I2-7,I2´-1~I2´-7は、図5に示すように、三角錐や四角錐等の錐体により表される。そして、周囲地図M1,M2における錐体の位置が、第1キーフレームまたは第2キーフレームが撮像された撮像部15c,15bの自己位置を表す。また、錐体の底面BAの向きが、撮像部15c,15bの姿勢を表している。
図6は、本実施形態にかかる車両が有するECUによる統合地図の作成処理の一例を説明するための図である。
次に、図5および図6を用いて、本実施形態にかかる車両1が有するECU14による統合地図の作成処理の一例について説明する。ここでは、撮像部15cの周囲地図M1と撮像部15bの周囲地図M2を統合した統合地図Mを作成する例、および当該統合地図Mを用いて撮像部15cと撮像部15とのカメラパラメータを算出する例について説明するが、他の撮像部15間についても、同様にして、統合地図の作成およびカメラパラメータの算出を実行するものとする。
完了判定部404によって、地図作成部403による各撮像部15a~15dの周囲地図の作成が完了したと判定された場合(図5参照)、シーン検索部406は、第1撮像部15の一例である撮像部15cのフレーム(本実施形態では、第2キーフレーム)と、第2撮像部15の一例である撮像部15bのフレーム(本実施形態では、第2キーフレーム)と、の類似箇所を検索する。
すなわち、シーン検索部406は、車両1の駐車時における、第1撮像部15cのフレームと、第2撮像部15bのフレームと、の類似箇所を検索する。これにより、同一の領域を撮像したフレームから類似箇所を検索できる可能性が高まるので、類似箇所の検索精度を高めることができる。
本実施形態では、シーン検索部406は、車両1の切り返し前の第1撮像部15cの第2キーフレームと、車両1の切り返し後の第2撮像部15bの第2キーフレームと、の類似箇所を検索する。これにより、複数の撮像部15a~15dの第2キーフレームの中から類似箇所を検索する際に、複数の撮像部15a~15dの第2キーフレームのうち一部の第2キーフレームの中から類似箇所を検索すれば良いので、類似箇所の検索による処理負荷を軽減することができる。
その際、シーン検索部406は、図5に示すように、車両1の駐車開始位置Sから切り返し位置Tまでの中間領域R1における第1撮像部15cの第2キーフレームと、切り返し位置Tから駐車目標位置Eまでの中間領域R2における第2撮像部15bの第2キーフレームと、の類似箇所を検索することが好ましい。
これにより、複数の撮像部15a~15dの第2キーフレームの中から類似箇所を検索する際に、類似箇所を検索する第2キーフレームを減少させることができるので、類似箇所の検索による処理負荷をより軽減することができる。
次いで、地図統合部407は、図6に示すように、上述したように、第1,2撮像部15c,15bのそれぞれの第2キーフレーム間における類似箇所の対応関係、および周囲地図M1,M2に含まれる地図点群P1~P8と類似箇所との対応関係に基づいて、周囲地図M1,M2に対して、回転、並進、拡縮等を実行する。図5に示す例においては、地図統合部407は、周囲地図M2を時計回りに90度回転させた後、周囲地図M1,M2のそれぞれに含まれる地図点群P1~P8が一致するように、周囲地図M1,M2を並進および拡縮させる。これにより、地図統合部407は、図6に示すように、周囲地図M1,M2を統合した統合地図Mを作成する。
統合地図Mが作成されると、カメラパラメータ算出部409は、図6に示すように、第1撮像部15cの位置姿勢情報I1-1~I1-7,I1´-1~I1´-7から、予め設定されるタイミング(例えば、所定タイミング)における位置姿勢情報(例えば、位置姿勢情報I1´-7)を抽出する。さらに、カメラパラメータ算出部409は、図6に示すように、第2撮像部15bの位置姿勢情報I2-1~I2-7,I2´-1~I2´-7から、所定タイミングにおける位置姿勢情報(例えば、位置姿勢情報I2´-7)を抽出する。そして、カメラパラメータ算出部409は、位置姿勢情報I1´-7と、位置姿勢情報I2´-7と、に基づいて、第1,2撮像部15c,15b間の位置姿勢情報の関係を示すカメラパラメータを算出する。
図7は、本実施形態にかかる車両が有するECUによるカメラパラメータの算出処理の流れの一例を示すフローチャートである。
次に、図7を用いて、本実施形態にかかる車両1が有するECU14によるカメラパラメータの算出処理の流れの一例について説明する。
操作入力部10を介して、車両1の自動駐車が指示されると、画像取得部401によってフレームが取得される度に、地図作成部403は、撮像部15毎に、当該撮像部15の位置姿勢情報および当該撮像部15により撮像した第2キーフレームに基づいて、Visual SLAMやSFM等によって、周囲地図を作成する(ステップS701)。
KF選択部405は、複数の撮像部15のそれぞれのフレームから、第1キーフレームを選択する(ステップS702)。そして、地図作成部403は、第1キーフレームに基づいて推定された位置姿勢情報を、撮像部15のそれぞれの周囲地図に含める。
次いで、完了判定部404は、撮像部15の移動が停止して、複数の撮像部15のそれぞれの周囲地図の作成が完了したか否かを判断する(ステップS703)。複数の撮像部15のそれぞれの周囲地図の作成が完了していない場合(ステップS703:No)、ステップS701に戻り、地図作成部403は、周囲地図を作成し続ける。
一方、複数の撮像部15のそれぞれの周囲地図の作成が完了した場合(ステップS703:Yes)、シーン検索部406は、複数の撮像部15のうち第1撮像部15の第2キーフレームと、複数の撮像部15のうち第2撮像部15の第2キーフレームと、の類似箇所を検索する(ステップS704)。
そして、地図統合部407は、シーン検索部406により検索される類似箇所に基づいて、第1撮像部15の周囲地図と、第2撮像部15の周囲地図と、を統合して、統合地図を作成する(ステップS705)。さらに、全体最適化部408は、作成した統合地図の全体最適化を実行する(ステップS706)。
次いで、カメラパラメータ算出部409は、全体最適化された統合地図における、所定タイミングの第1撮像部15および第2撮像部15のそれぞれの位置姿勢情報に基づいて、第1撮像部15と第2撮像部15間の位置姿勢情報の関係を示すカメラパラメータを算出する(ステップS707)。
このように、本実施形態にかかる車両1によれば、平坦な路面や区画線等の特定の物体を用いずに統合地図を作成することができるので、平坦な路面や区画線等の特定の物体が存在しない場合でも、第1,2撮像部15間の位置姿勢情報の関係を算出することができる。