(57)【要約】【課題】改善された、撮像装置、車両及びプログラムを提供する。【解決手段】撮像装置は、相対的な位置姿勢が定められた左カメラ及び右カメラと、制御部とを備える。制御部は、複数の画像の中の２つの画像に対応する位置姿勢を推定し、２つの画像に含まれる特徴点を復元する１回目の推定処理をする。制御部は、位置姿勢が未推定である画像等に基づいて、当該未推定である画像に対応する位置姿勢を推定する追加の推定処理をする。制御部は、該追加の推定処理において、少なくとも１回、同時刻に生成された２つの画像に対応する位置姿勢に対して拘束条件を適用して推定済みの位置姿勢をバンドル調整により最適化する。制御部は、追加の推定処理を繰り返し実行した後、複数の画像の少なくとも一部の画像に対応する推定した位置姿勢に基づいて、左カメラと右カメラとの間の相対的な位置姿勢の推定処理をする。【選択図】図６
2020201587.tif 000002
【特許請求の範囲】
【請求項１】
相対的な位置姿勢が定められた左カメラ及び右カメラと、制御部とを備え、
前記制御部は、
移動中の前記左カメラ及び前記右カメラが時系列的に生成した複数の画像から特徴点を抽出し、前記複数の画像において対応する特徴点を特定し、
前記複数の画像の中の２つの画像に含まれる前記特徴点の一部に基づいて前記２つの画像に対応する位置姿勢を推定し、推定した前記位置姿勢に基づいて前記２つの画像に含まれる前記特徴点を復元する１回目の推定処理をし、
位置姿勢が未推定である前記画像と、前記復元した特徴点の中の該未推定である画像に含まれる特徴点の少なくとも一部とに基づいて、該未推定である画像に対応する位置姿勢を推定する追加の推定処理をし、該追加の推定処理において、少なくとも１回、同時刻に生成された２つの前記画像に対応する位置姿勢に対して拘束条件を適用して推定済みの位置姿勢をバンドル調整により最適化し、
前記追加の推定処理を繰り返し実行した後、前記複数の画像の少なくとも一部の画像に対応する推定した位置姿勢に基づいて、前記左カメラと右カメラとの間の相対的な位置姿勢の推定処理をする、
撮像装置。
【請求項２】
請求項１に記載の撮像装置であって、
前記制御部は、前記２つの画像として、前記複数の画像の中で、同時刻に生成された２つの画像のうち、前記対応する特徴点を最も多く含むものを選択し、該２つの画像に対応する前記位置姿勢を推定する、撮像装置。
【請求項３】
請求項１又は２に記載の撮像装置であって、
前記制御部は、前記追加の推定処理において、位置姿勢が未推定である前記複数の画像の中で、復元済みの前記特徴点に対応する前記特徴点を最も多く含む画像を優先して選択し、該画像に対応する位置姿勢を推定する、撮像装置。
【請求項４】
請求項１から３までの何れか一項に記載の撮像装置であって、
前記制御部は、前記追加の推定処理において、前記画像に対応する位置姿勢を新たに推定すると、該画像と同時刻に生成された前記画像に対応する位置姿勢を推定する、撮像装置。
【請求項５】
請求項１から４までの何れか一項に記載の撮像装置であって、
前記制御部は、前記追加の推定処理において、同時刻に生成された２つの前記画像に対応する位置姿勢を推定する毎に、前記拘束条件を適用して推定済みの位置姿勢をバンドル調整により最適化する、撮像装置。
【請求項６】
請求項１から５までの何れか一項に記載の撮像装置であって、
前記少なくとも一部の画像は、前記複数の画像の全てである、撮像装置。
【請求項７】
請求項１から６までの何れか一項に記載の撮像装置であって、
前記拘束条件は、前記左カメラと前記右カメラとの間の相対的な位置姿勢が一定であるとの条件である、撮像装置。
【請求項８】
請求項１から７までの何れか一項に記載の撮像装置であって、
前記制御部は、前記追加の推定処理において、新たに推定した位置姿勢をバンドル調整により最適化する、撮像装置。
【請求項９】
請求項１から８までの何れか一項に記載の撮像装置であって、
前記制御部は、前記追加の推定処理において、新たに推定した位置姿勢に基づいて復元可能な前記特徴点を復元する、撮像装置。
【請求項１０】
請求項１から９までの何れか一項に記載の撮像装置を搭載した車両。
【請求項１１】
移動中の相対的な位置姿勢が定められた左カメラ及び右カメラが時系列的に生成した複数の画像から特徴点を抽出し、前記複数の画像において対応する特徴点を特定するステップと、
前記複数の画像の中の２つの画像に含まれる前記特徴点の一部に基づいて前記２つの画像に対応する位置姿勢を推定し、推定した前記位置姿勢に基づいて前記２つの画像に含まれる前記特徴点を復元する１回目の推定処理をするステップと、
位置姿勢が未推定である前記画像と、前記復元した特徴点の中の該未推定である画像に含まれる特徴点の少なくとも一部とに基づいて、該未推定である画像に対応する位置姿勢を推定する追加の推定処理をするステップであって、該追加の推定処理をするステップにおいて、少なくとも１回、同時刻に生成された２つの前記画像に対応する位置姿勢に対して拘束条件を適用して推定済みの位置姿勢をバンドル調整により最適化する、推定処理をするステップと、
前記追加の推定処理を繰り返し実行した後、前記複数の画像の少なくとも一部の画像に対応する推定した位置姿勢に基づいて、前記左カメラと右カメラとの間の相対的な位置姿勢の推定処理をするステップと、を装置に実行させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、撮像装置、車両及びプログラムに関する。
【背景技術】
【０００２】
近年、先進運転支援システム（ＡＤＡＳ；Advance Driving Assistant System）のセンサの１つとして、ステレオカメラが利用されている。このようなステレオカメラをキャリブレーションする方法が知られている（例えば、非特許文献１）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】洞山  慶太、他２名、“２時刻間のカメラ運動推定を伴うステレオセルフキャリブレーション”、第24回画像センシングシンポジウム（SSII2018）、pp.ＳＯ１−ＩＳ１−２９−１−３、２０１８年６月
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のステレオカメラには、改善の余地がある。
【０００５】
かかる点に鑑みてなされた本開示の目的は、改善された、撮像装置、車両及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
本開示の一実施形態に係る撮像装置は、
相対的な位置姿勢が定められた左カメラ及び右カメラと、制御部とを備え、
前記制御部は、
移動中の前記左カメラ及び前記右カメラが時系列的に生成した複数の画像から特徴点を抽出し、前記複数の画像において対応する特徴点を特定し、
前記複数の画像の中の２つの画像に含まれる前記特徴点の一部に基づいて前記２つの画像に対応する位置姿勢を推定し、推定した前記位置姿勢に基づいて前記２つの画像に含まれる前記特徴点を復元する１回目の推定処理をし、
位置姿勢が未推定である前記画像と、前記復元した特徴点の中の当該未推定である画像に含まれる特徴点の少なくとも一部とに基づいて、当該未推定である画像に対応する位置姿勢を推定する追加の推定処理をし、該追加の推定処理において、少なくとも１回、同時刻に生成された２つの前記画像に対応する位置姿勢に対して拘束条件を適用して推定済みの位置姿勢をバンドル調整により最適化し、
前記追加の推定処理を繰り返し実行した後、前記複数の画像の少なくとも一部の画像に対応する推定した位置姿勢に基づいて、前記左カメラと右カメラとの間の相対的な位置姿勢の推定処理をする。
【０００７】
本開示の一実施形態に係る車両は、上述の撮像装置を備える。
【０００８】
上述したように本開示の解決手段を装置として説明してきたが、本開示は、これらを含む態様としても実現し得るものであり、また、これらに実質的に相当する方法、プログラム、プログラムを記録した記憶媒体としても実現し得るものであり、本開示の範囲にはこれらも包含されるものと理解されたい。
【０００９】
本開示の一実施形態に係るプログラムは、
移動中の相対的な位置姿勢が定められた左カメラ及び右カメラが時系列的に生成した複数の画像から特徴点を抽出し、前記複数の画像において対応する特徴点を特定するステップと、
前記複数の画像の中の２つの画像に含まれる前記特徴点の一部に基づいて前記２つの画像に対応する位置姿勢を推定し、推定した前記位置姿勢に基づいて前記２つの画像に含まれる前記特徴点を復元する１回目の推定処理をするステップと、
位置姿勢が未推定である前記画像と、前記復元した特徴点の中の当該未推定である画像に含まれる特徴点の少なくとも一部とに基づいて、当該未推定である画像に対応する位置姿勢を推定する追加の推定処理をするステップであって、該追加の推定処理をするステップにおいて、少なくとも１回、同時刻に生成された２つの前記画像に対応する位置姿勢に対して拘束条件を適用して推定済みの位置姿勢をバンドル調整により最適化する、推定処理をするステップと、
前記追加の推定処理を繰り返し実行した後、前記複数の画像の少なくとも一部の画像に対応する推定した位置姿勢に基づいて、前記左カメラと右カメラとの間の相対的な位置姿勢の推定処理をするステップと、を装置に実行させる。
【発明の効果】
【００１０】
本開示の一実施形態によれば、改善された、撮像装置、車両及びプログラムが提供され得る。
【図面の簡単な説明】
【００１１】
【図１】本開示の第１実施形態に係る車両の機能ブロック図である。
【図２】本開示の第１実施形態に係る特徴点の一例を示す図である。
【図３】本開示の第１実施形態に係る対応する特徴点の一例を示す図である。
【図４】本開示の第１実施形態に係る撮像装置の処理の流れを示すフローチャートである。
【図５】本開示の第２実施形態に係る画像選択の一例を示す図である。
【図６】本開示の第２実施形態に係る撮像装置の処理の流れを示すフローチャートである（その１）。
【図７】本開示の第２実施形態に係る撮像装置の処理の流れを示すフローチャートである（その２）。
【発明を実施するための形態】
【００１２】
ステレオカメラは、相対的な位置姿勢が互いに定められた、複数のカメラを含む。本開示において「カメラの位置姿勢」とは、ワールド座標系において、基準となる位置に対するカメラの位置、及び、基準となる方向に対するカメラの傾き（姿勢）を意味する。カメラの位置姿勢は、外部パラメータともいう。本開示において「ワールド座標系」とは、ステレオカメラの外部の三次元空間に基づいて設定された座標系を意味する。
【００１３】
ステレオカメラは、相対的な位置姿勢が互いに定められた複数のカメラにより、被写体を異なる方向から、同時に撮像可能である。つまり、ステレオカメラは、被写体を異なる方向から同時に撮像して複数の画像を生成可能である。この複数の画像から求めた視差と、複数のカメラ間の相対的な位置姿勢とを用いた、三角測量の原理を利用することにより、被写体までの方向及び距離が測定され得る。
【００１４】
ステレオカメラを先進運転支援システムのセンサの１つとして用いる場合、ステレオカメラは、車両に搭載される。ステレオカメラを車両に搭載させる場合、ステレオカメラに含まれる複数のカメラ間の相対的な位置姿勢は、車両の走行時の振動、温度及び経年劣化により、ずれる場合がある。そのため、ステレオカメラを車両に搭載させる場合、ステレオカメラを定期的にキャリブレーションすることが求められる。本開示において「キャリブレーション」とは、ステレオカメラに含まれる複数のカメラ間の実際の相対的な位置姿勢を推定することである。ステレオカメラに含まれる複数のカメラ間の実際の相対的な位置姿勢を推定することにより、推定した位置姿勢に基づいて、複数のカメラが生成した複数の画像から求めた視差を補正することができる。
【００１５】
ここで、ステレオカメラをキャリブレーションする方法の一例として、オフラインキャリブレーション及びセルフキャリブレーション等が挙げられる。
【００１６】
オフラインキャリブレーションでは、チャッカーボード等の専用器具を用いて、複数のカメラ間の相対的な位置姿勢が推定される。オフラインモードでは専用器具を用いる必要があるため、オフラインキャリブレーションを車両に搭載されたステレオカメラに対して実行する場合、その際の作業は煩雑となり得る。
【００１７】
これに対し、セルフキャリブレーションでは、移動中にステレオカメラが生成した複数の画像を用いて、複数のカメラ間の相対的な位置姿勢が推定される。つまり、ステレオカメラを車両に搭載させる場合、セルフキャリブレーションでは、車両の走行中にステレオカメラが生成した複数の画像を、移動中にステレオカメラが生成した複数の画像として用い、複数のカメラ間の相対的な位置姿勢を推定することができる。そのため、セルフキャリブレーションは、車両に搭載されたステレオカメラに対して、比較的容易に実行され得る。
【００１８】
本開示では、ステレオカメラに含まれる複数のカメラ間の相対的な位置姿勢を、より精度良く推定可能な、セルフキャリブレーションを実行する撮像装置及び車両を提供する。複数のカメラ間の相対的な位置姿勢をより精度良く推定可能なセルフキャリブレーションを実行する撮像装置及び車両を提供することにより、本開示は、被写体までの方向及び距離をより精度良く測定することができる。従って、本開示によれば、改善された、撮像装置及び車両が提供され得る。以下、本開示の一実施形態について、図面を参照して説明する。
【００１９】
（第１実施形態）
図１に示すように、車両１は、電子機器２と、撮像装置３とを備える。車両１は、限定ではないが、自動車、鉄道車両、産業車両又は生活車両等であってよい。
【００２０】
電子機器２は、車両１に搭載される機器である。電子機器２は、ＥＣＵ（Electronic Control Unit）であってよい。電子機器２は、撮像装置３と通信可能である。電子機器２は、撮像装置３から、他車両及び歩行者等の被写体までの方向及び距離を取得する。電子機器２は、取得した被写体までの方向及び距離に基づいて、ブレーキを制御する信号等を生成してよい。
【００２１】
撮像装置３は、車両１の外部の被写体を撮像可能な位置に設置され得る。撮像装置３は、限定ではないが、車両１の前方の周辺領域を撮像可能な位置に搭載されてよい。撮像装置３は、先進運転支援システムのセンサの１つとして、車両１に搭載されてよい。撮像装置３は、電子機器２と通信可能である。
【００２２】
撮像装置３は、左カメラ１０と、右カメラ１１と、記憶部１２と、通信部１３と、制御部１４とを備える。以下、左カメラ１０と右カメラ１１とを特に区別しない場合、左カメラ１０及び右カメラ１１は、単に「カメラ」とも記載する。撮像装置３は、２台のカメラを備える。ただし、撮像装置３は、３台以上のカメラを備えてよい。
【００２３】
左カメラ１０は、車両１の前方に向かって左側に位置する。右カメラ１１は、車両１の前方に向かって右側に位置する。左カメラ１０及び右カメラ１１の各々は、制御部１４の制御に基づいて、被写体を撮像して画像を生成する。左カメラ１０及び右カメラ１１の各々は、生成した画像を、制御部１４に出力する。左カメラ１０及び右カメラ１１の各々は、光学系及び撮像素子を含んで構成されてよい。光学系は、レンズ等を含んで構成され得る。光学系は、被写体の像を結像可能である。撮像素子は、ＣＣＤ（Charge Coupled Device）撮像素子又はＣＭＯＳ（Complementary Metal Oxide Semiconductor）撮像素子等を含んでよい。撮像素子は、光学系が結像した像に相当する撮像画像（画像）を出力する。
【００２４】
左カメラ１０及び右カメラ１１は、例えば互いに固定されることにより、相対的な位置姿勢が互いに定められている。本実施形態では、左カメラ１０の位置姿勢［ＲＬ｜ｔＬ］を基準として、右カメラ１１の位置姿勢［ＲＲ｜ｔＲ］が定められている。ＲＬ及びＲＲの各々は、ワールド座標系における左カメラ１０及び右カメラ１１の各々の姿勢である。ｔＬ及びｔＲの各々は、ワールド座標系における左カメラ１０及び右カメラ１１の各々の位置である。例えば、右カメラ１１の位置姿勢［ＲＲ｜ｔＲ］は、左カメラ１０の位置姿勢［ＲＬ｜ｔＬ］を基準として、式（１）によって定められる。
ＲＬα＝ＲＲ
ｔＬβ＝ｔＲ                                  式（１）
【００２５】
式（１）において、変換式αは、左カメラ１０から右カメラ１１への回転の変換式である。変換式βは、左カメラ１０から右カメラ１１への並進の変換式である。本実施形態では、回転の変換式αと並進の変換式βとによって、左カメラ１０と右カメラ１１との間の互いに定められた相対的な位置姿勢が示される。変換式α及び変換式βの初期値は、撮像装置３の設計時又は撮像装置３の製造時におけるオフラインキャリブレーション時に、与えられ得る。本実施形態では、左カメラ１０と右カメラ１１との間の相対的な位置関係として、変換式α及び変換式βを用いることにより、被写体までの方向及び距離が測定され得る。
【００２６】
左カメラ１０と右カメラ１１との間の相対的な位置姿勢すなわち式（１）の変換式α及び変換式βは、車両１の走行時の振動、温度及び経年劣化により、初期値から、ずれる場合がある。左カメラ１０と右カメラ１１との間の相対的な位置姿勢がずれると、被写体までの方向及び距離を精度良く測定できなくなる。本実施形態に係る撮像装置３は、後述のセルフキャリブレーションを実行することにより、左カメラ１０及び右カメラ１１の現在の位置姿勢を推定して、新たな変換式α及び変換式βを取得する。本実施形態に係る撮像装置３は、新たな変換式α及び変換式βを取得することにより、被写体までの方向及び距離を精度良く測定することができる。
【００２７】
記憶部１２は、例えば、ＲＡＭ（Random Access Memory）及びＲＯＭ（Read Only Memory）等、任意の記憶デバイスを含む。記憶部１２は、制御部１４を機能させる多様なプログラム及び制御部１４が用いる多様な情報を記憶する。
【００２８】
記憶部１２は、式（１）の変換式α及び変換式βを記憶する。記憶部１２は、左カメラ１０及び右カメラ１１の内部パラメータを記憶する。本開示において「カメラの内部パラメータ」は、カメラの焦点距離、及び、カメラが生成した画像における二次元座標（以下、「画像座標系」ともいう）の画像中心を含んでよい。本実施形態では、左カメラ１０及び右カメラ１１の内部パラメータは、固定値である。
【００２９】
通信部１３は、有線又は無線により、電子機器２と通信可能である。通信部１３は、無線により、サーバ等の外部機器と通信可能であってよい。通信部１３は、物理コネクタ及び無線通信モジュールを含んで構成されてよい。物理コネクタは、電気信号による伝送に対応した電気コネクタ、光信号による伝送に対応した光コネクタ、及び、電磁波による伝送に対応した電磁コネクタを含んでよい。無線通信モジュールは、Ｂｌｕｅｔｏｏｔｈ（登録商標）及びＩＥＥＥ８０２．１１を含む各規格に準拠するものであってよい。無線通信モジュールは、少なくとも１つのアンテナを含み得る。
【００３０】
制御部１４は、一以上のプロセッサ及びメモリを含む。プロセッサは、特定のプログラムを読み込ませて特定の機能を実行する汎用のプロセッサ、及び、特定の処理に特化した専用のプロセッサを含んでよい。専用のプロセッサは、特定用途向けＩＣ（ＡＳＩＣ；Application Specific Integrated Circuit）を含んでよい。プロセッサは、プログラマブルロジックデバイス（ＰＬＤ；Programmable Logic Device）を含んでよい。ＰＬＤは、ＦＰＧＡ（Field-Programmable Gate Array）を含んでよい。制御部１４は、１つ又は複数のプロセッサが協働するＳｏＣ（System-on-a-Chip）及びＳｉＰ（System In a Package）の何れかであってもよい。
【００３１】
制御部１４は、通信部１３によって外部機器又は電子機器２から、被写体までの方向及び距離の測定指令を取得する。制御部１４は、測定指令を取得すると、左カメラ１０及び右カメラ１１に、被写体の画像を同時に生成させる。制御部１４は、これらの画像から被写体の視差及び画像座標系における被写体の位置を取得する。制御部１４は、取得した視差及び画像座標系における被写体の位置と、式（１）の変換式α，βと、カメラの外部パラメータと、後述の内部パラメーラとに基づいて、被写体までの方向及び距離を測定する。制御部１４は、測定した被写体までの方向及び距離を、通信部１３によって外部機器又は電子機器２に、出力する。
【００３２】
［セルフキャリブレーション］
制御部１４は、通信部１３によって外部機器又は電子機器２から、キャリブレーション指令を取得し得る。キャリブレーション指令は、外部機器又は電子機器２から、撮像装置３へ例えば定期的に送信され得る。なお、制御部１４は、キャリブレーション指令を取得する代わりに、自身の機能により定期的にキャリブレーションを実行してよい。本実施形態では、制御部１４は、ＳｆＭ（Structure from Motion）を利用して、セルフキャリブレーションを実行する。ＳｆＭとは、複数の画像を用いて、後述の復元点の三次元座標及びカメラの位置姿勢を推定する手法である。
【００３３】
制御部１４は、キャリブレーション指令を取得すると、通信部１３によって電子機器２から、車両１の移動情報を取得する。車両１の移動情報は、電子機器２が測定した車両１の速度等を含んでよい。制御部１４は、車両１の移動情報に基づいて、車両１が移動中であるか否か判定する。例えば、制御部１４は、電子機器２から取得した車両１の速度が、所定値を超えると判定するとき、車両１が移動中であると判定する。又は、制御部１４は、車両１の移動情報の代わりに、車両１が移動中であることを示す情報を、通信部１３によって電子機器２から取得してよい。車両１が移動中であることを示す情報は、電子機器２が測定した車両１の速度に基づいて電子機器２のＥＣＵが判断した車両１が移動中であることを示す情報である。
【００３４】
制御部１４は、車両１が移動中であると判定すると、左カメラ１０及び右カメラ１１に、複数の画像を時系列的に生成させる。本実施形態では、制御部１４は、左カメラ１０及び右カメラ１１に、所定フレーム数の画像を、複数の画像として生成させる。制御部１４は、左カメラ１０及び右カメラ１１に、被写体までの方向及び距離の測定時と同一又は異なる所定フレームレート（ｆｐｓ；frames per second）で画像を生成させてよい。制御部１４は、左カメラ１０及び右カメラ１１が生成した各画像を識別する番号を付加する。
【００３５】
制御部１４は、移動中の左カメラ１０及び右カメラ１１が時系列的に生成した複数の画像から、特徴点を抽出する。本開示において「特徴点」とは、画像に写された被写体の部分のうち、隣接する他の部分から際立っており、例えば画素値の比較等により抽出可能な部分を意味する。特徴点の一例として、画像に写された被写体の輪郭上の一点、及び、画像において画素値が極大又は極小となる点が挙げられる。制御部１４は、特徴点を抽出する任意のアルゴリズムを用いてよい。特徴点を抽出するアルゴリズムの一例として、ＡＫＡＺＥ（Accelerated KAZE）等が挙げられる。
【００３６】
図２に、本開示の第１実施形態に係る特徴点の一例を示す。第１画像２０は、カメラによって生成された画像である。第１画像２０には、被写体として、車両１が走行する道路、及び、住宅が写っている。制御部１４は、第１画像２０に写された住宅の輪郭上の一点を、特徴点２１，２２，２３として抽出する。
【００３７】
制御部１４は、複数の画像において、対応する特徴点を特定する。本開示において「対応する特徴点」とは、異なる画像間において同一の対象点を示す特徴点を意味する。本開示において「対象点」とは、三次元空間上の被写体のうち、特徴点として画像から抽出された部分を意味する。制御部１４は、抽出した特徴点に対して任意のマッチング処理を実行することにより、対応する特徴点を特定してよい。マッチング処理の一例として、ブルート・フォーズ（brute-force）等が挙げられる。
【００３８】
図３に、本開示の第１実施形態に係る対応する特徴点の一例を示す。第１画像２０、第２画像３０、第３画像４０及び第４画像５０は、各々異なる位置姿勢のカメラによって生成された複数の画像の一部である。図３では、第１画像２０、第２画像３０、第３画像４０及び第４画像５０は、説明の簡易化のために、位置姿勢が大きく異なるカメラによって生成された画像として描画されている。ただし、これらの画像は、位置姿勢が実際には微小に異なるカメラによって生成された画像であってよい。カメラの位置姿勢は、例えば、移動中において異なる時刻にカメラが画像を生成することにより異なり得る。また、カメラの位置姿勢は、例えば、画像を生成させるカメラが左カメラ１０又は右カメラ１１であるかによって異なり得る。
【００３９】
例えば、第１画像２０では、三次元空間上の対象点６１，６２，６３が、各々特徴点２１，２２，２３として抽出される。また、第２画像３０では、三次元空間上の対象点６１，６２，６４が、各々特徴点３１，３２，３４として抽出される。また、第３画像４０では、三次元空間上の対象点６１，６２，６３，６４が、各々特徴点４１，４２，４３，４４として抽出される。また、第４画像５０では、三次元空間上の対象点６２，６４が、各々特徴点５２，５４として抽出される。なお、図３には、便宜上、第１画像２０、第２画像３０、第３画像４０及び第４画像５０から抽出される特徴点の一部のみを示す。
【００４０】
制御部１４は、対応する特徴点として、異なる画像間で同一の対象点６１を示す特徴点２１，３１，４１を特定する。また、制御部１４は、対応する特徴点として、異なる画像間で同一の対象点６２を示す特徴点２２，３２，４２を特定する。また、制御部１４は、対応する特徴点として、異なる画像間で同一の対象点６３を示す特徴点２３，４３を特定する。また、制御部１４は、対応する特徴点として、異なる画像間で同一の対象点６４を示す特徴点３４，４４，５４を特定する。
【００４１】
ここで、上述のように、カメラは、移動中である。そのため、生成された時刻の差が大きい画像同士には、異なる物体が写っている可能性が高い。異なる物体が写っている画像から抽出した特徴点に対してマッチング処理を実行すると、対応する特徴点を精度良く特定できない場合がある。そこで、制御部１４は、対応する特徴点を特定する際、所定時間内に生成された画像からすなわちフレームの間隔が所定間隔となる画像から抽出した特徴点に対して、マッチング処理を実行してよい。このような処理により、対応する特徴点が精度良く特定され得る。所定時間は、車両１の速度等を考慮して適宜設定されてよい。
【００４２】
制御部１４は、対応を特定した特徴点から、任意のアルゴリズムを用いて、外れ値を除去してよい。外れ値を除去するアルゴリズムの一例として、８点アルゴリズムを利用したＲＡＮＳＡＣ（Random Sampling Consensus）等が挙げられる。
【００４３】
＜１回目の推定処理＞
制御部１４は、複数の画像の中から、２つの画像を選択する。制御部１４は、２つの画像として、左カメラ１０及び右カメラ１１が同時刻に生成した画像を選択してよい。又は、制御部１４は、複数の画像の中から、対応する特徴点を最も多く含む２つの画像を選択してよい。例えば、制御部１４は、２つの画像として、第１画像２０及び第２画像３０を選択する。
【００４４】
制御部１４は、選択した２つの画像に対応する位置姿勢を推定する。本開示において「画像に対応する位置姿勢」とは、当該画像を生成したカメラの、当該画像を生成したときの位置姿勢を意味する。制御部１４は、２つの画像に含まれる対応する特徴点の一部に基づいて、画像に対応する位置姿勢を推定してよい。例えば、制御部１４は、２つの画像に含まれる対応する特徴点に対して、５点アルゴリズム及びＲＡＮＳＡＣを実行することにより、２つの画像の各々に対応する位置姿勢を推定してよい。例えば、制御部１４は、１回目の推定処理では、第１画像２０に対応する位置姿勢と、第２画像３０に対応する位置姿勢を推定する。
【００４５】
制御部１４は、推定した位置姿勢に基づいて、２つの画像に含まれる対応する特徴点に三次元空間にて対応する点を、復元点とみなして復元する。制御部１４は、復元点のワールド座標系における三次元座標を取得する。なお、画像に含まれるノイズ等の影響により、復元点のワールド座標系における三次元座標と、当該復元点に対応する対象点のワールド座標系における三次元座標との間には、ずれが生じる場合がある。制御部１４は、推定した位置姿勢（すなわち外部パラメータ）と、カメラの内部パラメータとを用いた、三角測量の原理を利用することにより、２つの画像に含まれる対応する特徴点を復元してよい。
【００４６】
例えば、図３に示すように、制御部１４は、第１画像２０に対応する位置姿勢と、第２画像３０に対応する位置姿勢とに基づいて、特徴点２１，３１を復元することにより、復元点７１のワールド座標系における三次元座標を取得する。制御部１４は、第１画像２０に対応する位置姿勢と、第２画像３０に対応する位置姿勢とに基づいて、特徴点２２，３３を復元することにより、復元点７２のワールド座標系における三次元座標を取得する。
【００４７】
制御部１４は、復元した特徴点に基づいて、推定した位置姿勢をバンドル調整により最適化する。バンドル調整とは、復元点のワールド座標系の三次元座標と、当該復元点に対応する対象点のワールド座標系の三次元座標との間のずれが最小化されるように、推定した位置姿勢及び復元点の三次元座標の少なくとも何れかを調整して最適化する処理である。上述のように、例えば画像に含まれるノイズ等の影響により、復元点のワールド座標系における三次元座標と、当該復元点に対応する対象点のワールド座標系における三次元座標との間には、ずれが生じ得る。例えば、図３に示すように、復元点７１と対象点６１との間にずれが生じ、復元点７２と対象点６２との間にずれが生じている。バンドル調整では、このようなずれが最小化されるように、推定した位置姿勢及び復元点の三次元座標の少なくとも何れかを調整して最適化する。本実施形態のバンドル調整では、復元点を画像の画像座標系に再投影させて得られる点（以下、「再投影点」ともいう）の二次元座標と、当該復元点に対応する特徴点の二次元座標との間のずれが最小化されるように、推定した位置姿勢等を調整する。例えば、制御部１４は、再投影点の二次元座標と特徴点の二次元座標との誤差を示すコスト関数Ｅが最小化されるように、推定した位置姿勢及び復元点の三次元座標の少なくとも何れかを調整して最適化する。コスト関数Ｅは、式（２）によって表される。
【００４８】
【数１】
2020201587.tif 000003
【００４９】
式（２）において、ｉは、画像を識別する番号である。ｎは、バンドル調整に用いられる画像の枚数である。ｊは、特徴点を識別する番号である。ｍは、バンドル調整に用いられる特徴点の数である。ｘｉｊは、ｉ番の画像から抽出したｊ番の特徴点の二次元座標である。Ｘｊは、特徴点ｘｊに対応する復元点の三次元座標である。Ｐｉは、ｉ番の画像の射影行列（Projection matrix）である。つまり、ＰｉＸｊは、復元点Ｘｊを番号ｉで識別される画像の画像座標系に再投影させて得られる再投影点である。式（２）における射影行列Ｐは、以下の式（３）によって表される。
【００５０】
【数２】
2020201587.tif 000004
ここで、式（３）のＡ及び［Ｒ｜ｔ］は、以下のように表される。
2020201587.tif 000005
【００５１】
式（３）において、行列Ａは、カメラの内部パラメータ行列である。ｆｘ，ｆｙは、カメラの焦点距離である。ｃｘ，ｃｙは、カメラの画像座標系の中心座標である。上述のように、左カメラ１０及び右カメラ１１の内部パラメータは、固定値である。そのため、行列Ａは、固定値となる。行列［Ｒ｜ｔ］は、カメラの外部パラメータ行列である。つまり、行列［Ｒ｜ｔ］は、推定された位置姿勢である。
【００５２】
制御部１４は、式（２）の復元点Ｘｊの値及び射影行列Ｐｉの値を調整することにより、式（２）のコスト関数Ｅを最小化させるように調整してよい。この場合、上述のように行列Ａは固定値であるため、制御部１４は、式（２）の復元点Ｘｊの値と、射影行列Ｐｉの一成分である式（３）の行列［Ｒ｜ｔ］の値とを調整することにより、式（２）のコスト関数Ｅを最小化させるように調整する。又は、制御部１４は、式（２）の復元点Ｘｊを固定し、射影行列Ｐｉの一成分である式（３）の行列［Ｒ｜ｔ］の値を調整することにより、式（２）のコスト関数Ｅを最小化させるように調整してよい。
【００５３】
＜追加の推定処理＞
制御部１４は、複数の画像の中から、位置姿勢が未推定である画像を１つ選択する。制御部１４は、復元済みの特徴点に対応する特徴点を最も多く含む画像を優先して選択してよい。
【００５４】
例えば、１回目の推定処理が終了した直後では、第３画像４０及び第４画像５０に対応する位置姿勢は、未推定である。第３画像４０は、復元済みの特徴点２１，３１に対応する特徴点４１と、復元済みの特徴点２２，３２に対応する特徴点４２とを含む。つまり、第３画像４０は、復元済みの特徴点に対応する特徴点を２つ含む。これに対し、第４画像５０は、復元済みの特徴点２２，３２に対応する特徴点５２を含む。つまり、第４画像５０は、復元済みの特徴点に対応する特徴点を１つ含む。この場合、制御部１４は、第３画像４０及び第４画像５０のうち、復元済みの特徴点に対応する特徴点を最も多く含む画像として、第３画像４０を優先して選択する。
【００５５】
制御部１４は、選択した位置姿勢が未推定である画像と、当該画像に含まれる特徴点の少なくとも一部とに基づいて、当該画像に対応する位置姿勢を推定する。制御部１４は、当該画像に含まれる特徴点の少なくとも一部として、当該画像に含まれる特徴点のうち、復元済みの特徴点に対応する特徴点を用いる。例えば、制御部１４は、第３画像４０に含まれる特徴点４１〜４４のうち、復元済みの特徴点２１，３１に対応する特徴点４１、及び、復元済みの特徴点２２，３２に対応する特徴点４２を含む少なくとも３点以上の特徴点を用いる。制御部１４は、ＰｎＰ問題（perspective n-Point Problem）を解くことにより、位置姿勢が未推定である画像に対応する位置姿勢を推定してよい。例えば、制御部１４は、第３画像４０と、特徴点４１，４２を含む３点以上の特徴点等とに基づいて、第３画像４０に対応する位置姿勢を推定する。
【００５６】
制御部１４は、新たに推定した位置姿勢をバンドル調整により最適化する。制御部１４は、当該バンドル調整として、ローカルバンドル調整を実施してよい。ローカルバンドル調整とは、１つの位置姿勢のみを最適化する処理である。つまり、制御部１４は、新たに推定した位置姿勢のみを最適化の対象として、ローカルバンドル調整を実施してよい。例えば、制御部１４は、第３画像４０に対応する位置姿勢のみを最適化の対象として、ローカルバンドル調整を実施してよい。
【００５７】
ローカルバンドル調整では、制御部１４は、最適化の対象となる位置姿勢が推定された画像に含まれる復元済みの特徴点に対応する特徴点の二次元座標と、当該復元済みの特徴点により復元された復元点の当該画像への再投影点の二次元座標との間のずれが最小化されるように、最適化の対象となる位置姿勢を調整して最適化する。例えば、制御部１４は、第３画像４０の特徴点４１，４２の各々の二次元座標と、復元点７１，７２の各々の第３画像４０への再投影点の各々の二次元座標との間のずれが最小化されるように第３画像４０に対応する位置姿勢を調整して最適化する。式（２）のコスト関数Ｅを用いる場合、ｉには、第３画像４０を識別する番号のみが代入される。ｊには、図３に示す特徴点４１，４２を識別する番号の各々が代入される。つまり、ｘｉｊには、図３に示す特徴点４１，４２の二次元座標の各々が代入される。Ｘｊには、図３に示す復元点７１，７２の三次元座標の各々が代入される。また、射影行列Ｐｉの一成分である式（３）の行列［Ｒ｜ｔ］は、第３画像４０に対応する位置姿勢が代入される。ローカルバンドル調整では、式（２）の復元点Ｘｊを固定し、式（３）の行列［Ｒ｜ｔ］の値を調整することにより、式（２）のコスト関数Ｅが最小化させるように調整する。
【００５８】
制御部１４は、ローカルバンドル調整後、未復元の特徴点の中で、新たに推定した位置姿勢によって復元可能な特徴点を、復元する。例えば、制御部１４は、新たに推定した位置姿勢と、推定済みの位置姿勢と、カメラの内部パラメータとを用いた、三角測量の原理を利用することにより、未復元の特徴点の中で、復元可能な特徴点を復元する。
【００５９】
例えば、第３画像４０に対応する位置姿勢は、追加の推定処理にて、新たに推定された位置姿勢である。また、第１画像２０及び第２画像３０に対応する位置姿勢は、１回目の推定処理にて既に推定された、推定済みの位置姿勢である。第１画像２０の特徴点２３と第３画像４０の特徴点４３は、第１画像２０に対応する位置姿勢及び第３画像４０に対応する位置姿勢を用いた三角測量の原理により、復元可能である。制御部１４は、第１画像２０の特徴点２３及び第３画像４０の特徴点４３を復元することにより、復元点７３のワールド座標系における三次元座標を取得する。また、第２画像３０の特徴点３４と第３画像４０の特徴点４４は、第２画像３０に対応する位置姿勢及び第３画像４０に対応する位置姿勢を用いた三角測量の原理により、復元可能である。制御部１４は、第２画像の特徴点３４及び第３画像４０の特徴点４４を復元することにより、復元点７４のワールド座標系における三次元座標を取得する。
【００６０】
＜相対的な位置姿勢の推定処理＞
制御部１４は、上述の追加の推定処理を繰り返し実行する。制御部１４は、複数の画像の中で、位置姿勢が未推定である画像が存在しないと判定するまで、上述の追加の推定処理を繰り返してよい。
【００６１】
制御部１４は、上述の追加の推定処理を繰り返し実行した後、複数の画像の少なくとも一部に対応する推定した位置姿勢をバンドル調整により最適化する。制御部１４は、複数の画像の全てに対応する推定した位置姿勢を、バンドル調整により最適化してよい。制御部１４は、当該バンドル調整として、グローバルバンドル調整を実施してよい。
【００６２】
グローバルバンドル調整では、制御部１４は、複数の画像の各々において、画像に含まれる特徴点の二次元座標と、当該特徴点に対応する復元点の当該画像への再投影点の二次元座標との間のずれが最小化されるように、推定した位置姿勢及び復元点の三次元座標を調整して最適化する。式（２）のコスト関数Ｅを用いる場合、グローバルバンドル調整では、式（２）の復元点Ｘｊの値と、射影行列Ｐｉの一成分である式（３）の行列［Ｒ｜ｔ］の値を調整することにより、コスト関数Ｅが最小化されるように調整する。
【００６３】
制御部１４は、推定した位置姿勢に対して拘束条件を適用して、グローバルバンドル調整を実施してよい。拘束条件は、セルフキャリブレーションを実行する程度の短時間では、左カメラ１０と右カメラ１１との間の相対的な位置姿勢が一定であるとの条件であってよい。つまり、式（１）の変換式α，βが、セルフキャリブレーションを実行する程度の短時間では、変化しないとの条件であってよい。式（２）のコスト関数Ｅに、式（１）を適用することにより、式（２）のコスト関数Ｅに含まれるパラメータが複雑化する蓋然性が低減され得る。パラメータが複雑化する蓋然性が低減されることで、コスト関数Ｅを最小化させる精度が向上され得る。
【００６４】
例えば、式（２）の射影行列Ｐｉの一成分である式（３）の行列［Ｒ｜ｔ］は、左カメラ１０の位置姿勢［ＲＬ｜ｔＬ］及び右カメラ１１の位置姿勢［ＲＲ｜ｔＲ］の何れかに対応する。制御部１４は、式（２）のコスト関数Ｅに含まれる行列［ＲＲ｜ｔＲ］に、式（１）による［ＲＬα｜ｔＬβ］を代入する。この場合、制御部１４は、コスト関数Ｅに含まれる行列［Ｒ｜ｔ］に関するパラメータに関しては、コスト関数Ｅが最小化されるように、パラメータ（ＲＬ，ｔＬ，ＲＬα，ｔＬβ）を調整する。又は、制御部１４は、式（２）のコスト関数Ｅに含まれる行列［ＲＬ｜ｔＬ］に、式（１）による［ＲＲ／α｜ｔＲ／β］を代入してよい。この場合、制御部１４は、コスト関数Ｅに含まれるパラメータに関しては、コスト関数Ｅが最小化されるように、パラメータ（ＲＲ，ｔＲ，ＲＲ／α，ｔＲ／β）を調整する。
【００６５】
制御部１４は、グローバルバンドル調整により最適化された位置姿勢に基づいて、左カメラ１０と右カメラ１１との間の相対的な位置姿勢を推定する。例えば、制御部１４は、上述の拘束条件を適用したグローバルバンドル調整を実行した場合、上述のように、位置姿勢を最適化するために、パラメータの１つとして変換式α，βを調整する。この場合、制御部１４は、左カメラ１０と右カメラ１１との間の相対的な位置姿勢として、調整後の変換式α，βを取得する。又は、制御部１４は、上述の拘束条件を適用しないグローバルバンドル調整を実行した場合、最適化後の左カメラ１０の位置姿勢［ＲＬ｜ｔＬ］及び右カメラ１１の位置姿勢［ＲＲ｜ｔＲ］を取得する。さらに、制御部１４は、最適化後の位置姿勢［ＲＬ｜ｔＬ］及び位置姿勢［ＲＲ｜ｔＲ］を式（１）代入することにより、回転の変換式α及び並進の変換式βを取得する。
【００６６】
制御部１４は、セルフキャリブレーション後、通信部１３によって外部機器又は電子機器２から被写体までの方向及び距離の測定指令を取得すると、新たに取得した変換式α，βを用いて、被写体までの方向及び距離を測定する。新たに取得した変換式α，βを用いることにより、被写体までの方向及び距離がより精度良く測定され得る。
【００６７】
図４は、本開示の第１実施形態に係る撮像装置３の処理の流れを示すフローチャートである。制御部１４は、通信部１３によって外部機器又は電子機器２から、キャリブレーション指令を取得すると、図４に示す処理を開始する。
【００６８】
制御部１４は、車両１が移動中であるか否か判定する（ステップＳ１０）。制御部１４は、車両１が移動中であると判定するとき（ステップＳ１０：Ｙｅｓ）、ステップＳ１１の処理に進む。一方、制御部１４は、車両１が移動中であると判定しないとき（ステップＳ１０：Ｎｏ）、ステップＳ１０の処理を再び実行する。
【００６９】
制御部１４は、移動中の左カメラ１０及び右カメラ１１に、複数の画像を時系列的に生成させる（ステップＳ１１）。
【００７０】
制御部１４は、移動中の左カメラ１０及び右カメラ１１が時系列的に生成した複数の画像から、特徴点を抽出する（ステップＳ１２）。
【００７１】
制御部１４は、複数の画像において、対応する特徴点を特定する（ステップＳ１３）。制御部１４は、対応を特定した特徴点から、外れ値を除去する（ステップＳ１４）。
【００７２】
制御部１４は、複数の画像の中から、２つの画像を選択する（ステップＳ１５）。制御部１４は、選択した２つの画像に対応する位置姿勢を推定する（ステップＳ１６）。制御部１４は、推定した位置姿勢に基づいて、２つの画像に含まれる対応する特徴点に三次元空間にて対応する点を、復元点とみなして復元する（ステップＳ１７）。制御部１４は、復元した特徴点に基づいて、推定した位置姿勢をバンドル調整により最適化する（ステップＳ１８）。
【００７３】
制御部１４は、複数の画像の中から、位置姿勢が未推定である画像を１つ選択する（ステップＳ１９）。制御部１４は、ステップＳ１９の処理で選択した位置姿勢が未推定である画像と、当該画像に含まれる特徴点の少なくとも一部とに基づいて、当該画像に対応する位置姿勢を推定する（ステップＳ２０）。
【００７４】
制御部１４は、新たに推定した位置姿勢を、ローカルバンドル調整により最適化する（ステップＳ２１）。制御部１４は、新たに位置姿勢を推定すると、未復元の特徴点の中で、新たに推定した位置姿勢によって復元可能な特徴点を、復元する（ステップＳ２２）。
【００７５】
制御部１４は、ステップＳ１１の処理で取得した複数の画像の中で、位置姿勢が未推定である画像が存在するか否か判定する（ステップＳ２３）。制御部１４は、位置姿勢が未推定である画像が存在すると判定するとき（ステップＳ２３：Ｙｅｓ）、ステップＳ１９からステップＳ２３までの処理を繰り返し実行する。制御部１４は、位置姿勢が未推定である画像が存在しないと判定するとき（ステップＳ２３：Ｎｏ）、ステップＳ２４の処理に進む。
【００７６】
ステップＳ２４の処理では、制御部１４は、ステップＳ１１の処理で取得した複数の画像の少なくとも一部に対応する推定した位置姿勢を、グローバルバンドル調整により最適化する。ステップＳ２４の処理では、制御部１４は、推定した位置姿勢に対して拘束条件を適用して、グローバルバンドル調整を実施してよい。
【００７７】
制御部１４は、グローバルバンドル調整により最適化された位置姿勢に基づいて、左カメラ１０と右カメラ１１との間の相対的な位置姿勢を推定する（ステップＳ２５）。
【００７８】
以上のように、第１実施形態では、制御部１４は、推定した位置姿勢に対して拘束条件を適用して、グローバルバンドル調整を実施することができる。推定した位置姿勢に対して拘束条件を適用してグローバルバンドル調整を実施することにより、式（２）のコスト関数Ｅに含まれるパラメータが複雑化する蓋然性が低減され得る。パラメータが複雑化する蓋然性が低減されることで、コスト関数Ｅを最小化させる精度が向上され得る。コスト関数Ｅを最小化させる精度が向上することにより、左カメラ１０と右カメラ１１との間の相対的な位置姿勢をより精度良く推定することができる。このような構成により、第１実施形態では、被写体までの方向及び距離をより精度良く測定することができる。従って、第１実施形態によれば、改善された、撮像装置３及び車両１が提供され得る。
【００７９】
（第２実施形態）
以下、本開示の第２実施形態に係る撮像装置ついて説明する。第２実施形態と第１実施形態とでは、セルフキャリブレーションにおける追加の推定処理の内容が異なる。第２実施形態に係る撮像装置の構成には、第１実施形態に係る撮像装置３の構成を採用することができる。従って、第２実施形態に係る撮像装置の構成については、図１を参照して説明する。
【００８０】
［セルフキャリブレーション］
第１実施形態と同様に、制御部１４は、通信部１３によって外部機器又は電子機器２から、キャリブレーション指令を取得し得る。第１実施形態と同様に、制御部１４は、複数の画像から特徴点を抽出する。第１実施形態と同様に、制御部１４は、複数の画像において対応する特徴点を特定する。
【００８１】
＜１回目の推定処理＞
第２実施形態と同様に、制御部１４は、１回目の推定処理を実行する。ただし、第２実施形態では、制御部１４は、２つの画像として、左カメラ１０及び右カメラ１１が同時刻に生成した画像を選択する。
【００８２】
＜追加の推定処理＞
図５に、本開示の第２実施形態に係る画像選択の一例を示す。第１左画像８０Ｌ及び第１右画像８０Ｒと、第２左画像８１Ｌ及び第２右画像８１Ｒと、第３左画像８２Ｌ及び第３右画像８２Ｒとは、左カメラ１０及び右カメラ１１によって時系列的に生成された複数の画像の一部である。第１左画像８０Ｌ、第１右画像８０Ｒ、第２左画像８１Ｌ、第２右画像８１Ｒ、第３左画像８２Ｌ及び第３右画像８２Ｒは、各々異なる位置姿勢のカメラによって生成された画像である。図５では、第１左画像８０Ｌ、第１右画像８０Ｒ、第２左画像８１Ｌ、第２右画像８１Ｒ、第３左画像８２Ｌ及び第３右画像８２Ｒは、説明の簡易化のために、位置姿勢が大きく異なるカメラによって生成された画像として描画されている。ただし、これらの画像は、位置姿勢が実際には微小に異なるカメラによって生成された画像であってよい。第１左画像８０Ｌ及び第１右画像８０Ｒは、左カメラ１０及び右カメラ１１の各々が同時刻に生成した画像である。第２左画像８１Ｌ及び第２右画像８１Ｒは、左カメラ１０及び右カメラ１１の各々によって、同時刻に生成された画像である。第３左画像８２Ｌ及び第３右画像８２Ｒは、左カメラ１０及び右カメラ１１の各々によって、同時刻に生成された画像である。第１左画像８０Ｌ及び第１右画像８０Ｒは、１回目の推定処理にて選択された画像である。つまり、第１左画像８０Ｌ及び第１右画像８０Ｒに対応する位置姿勢は、１回目の推定処理にて、推定済みである。第２左画像８１Ｌ、第２右画像８１Ｒ、第３左画像８２Ｌ、第３右画像８２Ｒに対応する位置姿勢は、１回目の推定処理が終了した直後では、未推定である。
【００８３】
第１実施形態と同様に、制御部１４は、複数の画像の中から、位置姿勢が未推定である画像を１つ選択する。第１実施形態と同様に、制御部１４は、復元済みの特徴点に対応する特徴点を最も多く含む画像を優先して選択してよい。第１実施形態と同様に、制御部１４は、選択した位置姿勢が未推定である画像と、当該画像に含まれる特徴点の一部とに基づいて、当該画像に対応する位置姿勢を推定する。第１実施形態と同様に、制御部１４は、新たに推定した位置姿勢をローカルバンドル調整により最適化してよい。第１実施形態と同様に、制御部１４は、ローカルバンドル調整後、未復元の特徴点の中で、新たに推定した位置姿勢によって復元可能な特徴点を、復元してよい。例えば、制御部１４は、位置姿勢が未推定である画像として、第２右画像８１Ｒを選択ものとする。制御部１４は、第２右画像８１Ｒに対応する位置姿勢を推定し、第２右画像８１Ｒに対応する位置姿勢をローカルバンドル調整により最適化する。制御部１４は、第２右画像８１Ｒに対応する位置姿勢によって復元可能な特徴点を復元する。
【００８４】
第２実施形態では、制御部１４は、画像に対応する位置姿勢を新たに推定すると、位置姿勢が未推定の画像の中で、当該画像と同時刻に生成された画像を選択する。例えば、制御部１４は、位置姿勢が未推定の第２左画像８１Ｌ、第３左画像８２Ｌ及び第３右画像８２Ｒの中で、位置姿勢を推定した第２右画像８１Ｒと同時刻に生成された第２左画像８１Ｌを選択する。制御部１４は、新たな画像を選択すると、第１実施形態と同様に、新たに選択した画像に対応する位置姿勢を推定する。第１実施形態と同様に、制御部１４は、新たに選択した画像に対応する位置姿勢をローカルバンドル調整により最適化してよい。第１実施形態と同様に、制御部１４は、ローカルバンドル調整後、新たに選択した画像に対応する位置姿勢によって復元可能な特徴点を、復元してよい。例えば、制御部１４は、第２左画像８１Ｌに対応する位置姿勢を推定し、第２左画像８１Ｌに対応する位置姿勢をローカルバンドル調整により最適化する。また、制御部１４は、第２左画像８１Ｌに対応する位置姿勢によって復元可能な特徴点を復元する。
【００８５】
第２実施形態では、制御部１４は、同時刻に生成された２つの画像に対応する位置姿勢を推定すると、当該２つの画像に対応する位置姿勢に対して拘束条件を適用して、推定済みの位置姿勢をグローバルバンドル調整により最適化する。拘束条件は、第１実施形態と同様に、セルフキャリブレーションを実行する程度の短時間では、左カメラ１０と右カメラ１１との間の相対的な位置姿勢が一定であるとの条件であってよい。例えば、制御部１４は、第１左画像８０Ｌ、第１右画像８０Ｒ、第２右画像８１Ｒ及び第２左画像８１Ｌに対応する位置姿勢をグローバルバンドル調整により最適化する。以下、第１左画像８０Ｌに対応する位置姿勢は、［Ｒ８０Ｌ｜ｔ８０Ｌ］と記載する。また、第１右画像８０Ｒに対応する位置姿勢は、［Ｒ８０Ｒ｜ｔ８０Ｒ］と記載する。また、第２右画像８１Ｒに対応する位置姿勢は、［Ｒ８１Ｒ｜ｔ８１Ｒ］と記載する。また、第２左画像８１Ｌに対応する位置姿勢は、［Ｒ８１Ｌ｜ｔ８１Ｌ］と記載する。ここで、式（２）のコスト関数Ｅを用いる場合、式（２）の射影行列Ｐｉの一成分である式（３）の行列［Ｒ｜ｔ］には、［Ｒ８０Ｌ｜ｔ８０Ｌ］、［Ｒ８０Ｒ｜ｔ８０Ｒ］、［Ｒ８１Ｒ｜ｔ８１Ｒ］及び［Ｒ８１Ｌ｜ｔ８１Ｌ］が代入される。制御部１４は、式（２）のコスト関数Ｅに含まれる［Ｒ８０Ｌ｜ｔ８０Ｌ］に、式（１）による［Ｒ８０Ｒ／α｜ｔ８０Ｒ／β］を代入するか、又は、式（２）のコスト関数Ｅに含まれる［Ｒ８０Ｒ｜ｔ８０Ｒ］に、式（１）による［Ｒ８０Ｒα｜ｔ８０Ｒβ］を代入する。また、制御部１４は、式（２）のコスト関数Ｅに含まれる行列［Ｒ８１Ｌ｜ｔ８１Ｌ］に、式（１）による［Ｒ８１Ｒ／α｜ｔ８１Ｒ／β］を代入するか、又は、コスト関数Ｅに含まれる行列［Ｒ８１Ｒ｜ｔ８１Ｒ］に式（１）による［Ｒ８１Ｌα｜ｔ８１Ｌβ］を代入する。このような処理により、式（２）のコスト関数Ｅに含まれるパラメータが複雑化する蓋然性が低減され得る。パラメータが複雑化する蓋然性が低減されることで、コスト関数Ｅを最小化させる精度が向上され得る。
【００８６】
制御部１４は、追加の推定処理において、同時刻に生成された２つの画像に対応する位置姿勢を推定する毎に、同時刻に生成された２つの画像に対応する位置姿勢に対して拘束条件を適用して、推定済みの位置姿勢をグローバルバンドル調整により最適化してよい。同時刻に生成された２つの画像に対応する位置姿勢を推定する毎にグローバルバンドル調整により最適化することにより、画像を追加する毎に、当該画像に含まれるノイズ等により、画像に対応する位置姿勢の推定誤差が増幅する蓋然性がより低減され得る。ただし、本実施形態では、制御部１４は、追加の推定処理において、少なくとも１回、同時刻に生成された２つの画像に対応する位置姿勢に対して拘束条件を適用して推定済みの位置姿勢をグローバルバンドル調整により最適化すればよい。つまり、制御部１４は、追加の推定処理において、同時刻に生成された２つの画像に対応する位置姿勢を推定する毎に、推定済みの位置姿勢を当該グローバルバンドル調整により最適化しなくてもよい。
【００８７】
＜相対的な位置姿勢の推定処理＞
制御部１４は、上述の追加の推定処理を繰り返し実行する。第１実施形態と同様に、制御部１４は、複数の画像の中で、位置姿勢が未推定である画像が存在しないと判定するまで、上述の追加の推定処理を繰り返してよい。
【００８８】
ここで、上述のように、追加の推定処理において、制御部１４は、同時刻に生成された２つの画像に対応する位置姿勢を推定する毎に、上述の拘束条件を適用して推定済みの位置姿勢をグローバルバンドル調整により最適化しなくてよい。この場合、第１実施形態と同様に、制御部１４は、上述の追加の推定処理を繰り返し実行した後、複数の画像の少なくとも一部に対応する推定した位置姿勢をグローバルバンドル調整により最適化してよい。第１実施形態と同様に、制御部１４は、複数の画像の全てに対応する推定した位置姿勢を、グローバルバンドル調整により最適化してよい。
【００８９】
第１実施形態と同様に、制御部１４は、グローバルバンドル調整により最適化された位置姿勢に基づいて、左カメラ１０と右カメラ１１との間の相対的な位置姿勢を推定する。
【００９０】
図６は、本開示の第２実施形態に係る撮像装置３の処理の流れを示すフローチャートである（その１）。図７は、本開示の第２実施形態に係る撮像装置３の処理の流れを示すフローチャートである（その２）。制御部１４は、通信部１３によって外部機器又は電子機器２から、キャリブレーション指令を取得すると、図６に示す処理を開始する。
【００９１】
制御部１４は、図４に示すステップＳ１０〜Ｓ１８の処理と同様にして、ステップＳ３０〜Ｓ３８の処理を実行する。制御部１４は、ステップＳ３８の処理の実行後、図７に示す処理に進む。
【００９２】
制御部１４は、図４に示すステップＳ１９〜Ｓ２２の処理と同様にして、ステップＳ３９〜Ｓ４２の処理を実行する。
【００９３】
制御部１４は、位置姿勢が未推定の画像の中で、ステップＳ３９の処理で選択した画像と同時刻に生成された画像を選択する（ステップＳ４３）。例えば、制御部１４は、ステップＳ３９の処理で第２右画像８１Ｒを選択した場合、ステップＳ４３の処理では、図５に示す第２左画像８１Ｌを選択する。
【００９４】
制御部１４は、ステップＳ４３の処理で選択した画像に対して、ステップＳ４０〜Ｓ４２の処理と同様にして、ステップＳ４４〜Ｓ４６の処理を実行する。
【００９５】
制御部１４は、同時刻に生成された２つの画像に対応する位置姿勢に対して拘束条件を適用して、推定済みの位置姿勢をグローバルバンドル調整により最適化する（ステップＳ４７）。
【００９６】
制御部１４は、図６に示すステップＳ３１の処理で取得した複数の画像の中で、位置姿勢が未推定である画像が存在するか否か判定する（ステップＳ４８）。制御部１４は、位置姿勢が未推定である画像が存在すると判定するとき（ステップＳ４８：Ｙｅｓ）、ステップＳ３９からの処理を繰り返し実行する。制御部１４は、位置姿勢が未推定である画像が存在しないと判定するとき（ステップＳ４８：Ｎｏ）、ステップＳ４９の処理に進む。
【００９７】
制御部１４は、図３に示すステップＳ２４，Ｓ２５の処理と同様にして、ステップＳ４９，Ｓ５０の処理を実行する。
【００９８】
なお、制御部１４は、追加の推定処理において、少なくとも１回、同時刻に生成された２つの画像に対応する位置姿勢に対して拘束条件を適用して推定済みの位置姿勢をバンドル調整により最適化すればよい。例えば、図７に示す繰り返し実行されるステップＳ３９〜Ｓ４８の処理では、少なくとも１回、ステップＳ４７の処理が実行されればよい。また、制御部１４は、図７に示す繰り返し実行されるステップＳ３９〜Ｓ４８の処理において、ステップＳ４７の処理を毎回実行する場合、ステップＳ４９の処理を実行しなくてよい。
【００９９】
以上のように、第２実施形態では、制御部１４は、追加の推定処理において、推定済みの位置姿勢をグローバルバンドル調整により最適化する。換言すると、制御部１４は、位置姿勢を推定する画像を追加してく中で、推定済みの位置姿勢をグローバルバンドル調整により最適化する。このような構成により、画像を追加する毎に、当該画像に含まれるノイズ等により、画像に対応する位置姿勢の推定誤差が増幅する蓋然性が低減され得る。画像に対応する位置姿勢の推定誤差が増幅する蓋然性が低減されることにより、左カメラ１０と右カメラ１１との間の相対的な位置姿勢をより精度良く推定することができる。
【０１００】
さらに、第２実施形態では、同時刻に生成された２つの画像に対応する位置姿勢に対して拘束条件を適用して、推定済みの位置姿勢をグローバルバンドル調整により最適化する。拘束条件を適用することにより、式（２）に示すコスト関数Ｅのパラメータが複雑化する蓋然性を低減することができる。コスト関数Ｅのパラメータが複雑化する蓋然性を低減することにより、追加の推定処理においてグローバルバンドル調整を実施しても、計算量が増加する蓋然性が低減され得る。
【０１０１】
本開示に係る実施形態について、諸図面及び実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形又は修正を行うことが容易であることに注意されたい。従って、これらの変形又は修正は本開示の範囲に含まれることに留意されたい。例えば、各構成部等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成部等を１つに組み合わせたり、或いは、分割したりすることが可能である。
【０１０２】
例えば、上述の実施形態では、式（１）で示されるような、左カメラ１０から右カメラ１１への変換式を用いた。つまり、上述の実施形態では、式（１）で示されるように、右カメラの位置姿勢［ＲＲ｜ｔＲ］が、左カメラ１０の位置姿勢［ＲＬ｜ｔＬ］と、回転の変換式α及び並進の変換式βとによって表されていた。ただし、右カメラ１１から左カメラ１０への変換式を用いてもよい。つまり、左カメラ１０の位置姿勢［ＲＬ｜ｔＬ］が、右カメラ１０の位置姿勢［ＲＲ｜ｔＲ］と、右カメラ１０から左カメラ１１への回転の変換式及び並進の変換式とによって表されてよい。この構成では、制御部１４は、推定した位置姿勢に対して拘束条件を適用して、グローバルバンドル調整を実施する際、式（２）のコスト関数Ｅに含まれる行列［ＲＬ｜ｔＬ］に、行列［ＲＲ｜ｔＲ］と、右カメラ１０から左カメラ１１への回転の変換式及び並進の変換式とによって表される行列［ＲＬ｜ｔＬ］を代入してよい。
【符号の説明】
【０１０３】
１  車両
２  電子機器
３  撮像装置
１０  左カメラ
１１  右カメラ
１２  記憶部
１３  通信部
１４  制御部
２０  第１画像
３０  第２画像
４０  第３画像
５０  第４画像
８０Ｌ  第１左画像
８０Ｒ  第１右画像
８１Ｌ  第２左画像
８１Ｒ  第２右画像
８２Ｌ  第３左画像
８２Ｒ  第３右画像
２１，２２，２３，３１，３２，３４，４１，４２，４３，４４，５２，５４  特徴点
６１，６２，６３，６４  対象点
７１，７２，７３，７４  復元点
【図１】
2020201587.tif 000006
【図２】
2020201587.tif 000007
【図３】
2020201587.tif 000008
【図４】
2020201587.tif 000009
【図５】
2020201587.tif 000010
【図６】
2020201587.tif 000011
【図７】
2020201587.tif 000012