(57)【要約】【課題】基準点の３次元座標が事前に与えられることなく、カメラの自己校正を可能にするカメラパラメタセット算出技術を提供する。【解決手段】カメラパラメタセット算出方法は、（ａ１）第１カメラの第１画像と第２カメラの第２画像とを取得し、（ａ２）前記第１カメラ及び前記第２カメラのカメラパラメタセットを取得し、（ａ３）前記第１画像から、仮定の３次元位置情報が設定された所定部分を抽出し、（ａ４）前記３次元位置情報、前記第１画像及び前記第１カメラパラメタセットに基づいて、前記所定部分の３次元座標を算出し、（ａ５）前記３次元座標に基づいて、前記第１画像及び前記第２画像それぞれでの前記所定部分の第１画素座標及び第２画素座標を決定し、（ａ６）前記第１画素座標での画素値と前記第２画素座標での画素値とに基づいて評価値を算出し、（ａ７）前記評価値に基づいて、前記カメラパラメタセットを更新する。【選択図】図１９
2018191275.tif 000002
【特許請求の範囲】
【請求項１】
（ａ１）第１カメラで撮影された第１画像と、第２カメラで撮影された第２画像とを取得し、
（ａ２）前記第１カメラの１つ以上のカメラパラメタを含む第１カメラパラメタセットと、前記第２カメラの１つ以上のカメラパラメタを含む第２カメラパラメタセットとを取得し、
（ａ３）前記第１画像から、仮定の３次元位置情報が設定された所定部分を抽出し、
（ａ４）前記３次元位置情報、前記第１画像及び前記第１カメラパラメタセットに基づいて、前記所定部分の３次元座標を算出し、
（ａ５）前記所定部分の３次元座標及び前記第１カメラパラメタセットに基づいて前記第１画像における前記所定部分の第１画素座標を決定し、前記３次元座標及び前記第２カメラパラメタセットに基づいて前記第２画像における前記所定部分の第２画素座標を決定し、
（ａ６）前記第１画素座標での前記第１画像の画素値と前記第２画素座標での前記第２画像の画素値とに基づいて評価値を算出し、
（ａ７）前記評価値に基づいて、前記第１カメラパラメタセット及び前記第２カメラパラメタセットを更新し、
（ａ８）更新された前記第１カメラパラメタセット及び前記第２カメラパラメタセットを出力し、
処理（ａ１）〜処理（ａ８）の少なくとも１つがプロセッサによって実行される
カメラパラメタセット算出方法。
【請求項２】
（ｂ１）前記第１画像から、前記所定部分以外の部分である所定外部分を抽出し、
（ｂ２）前記第１画像、前記第２画像、前記第１カメラパラメタセット及び前記第２カメラパラメタセットに基づいて、前記所定外部分に含まれる被写体上の３次元座標を算出し、
（ｂ３）前記第１カメラパラメタセットに基づいて前記所定外部分における前記３次元座標を前記第１画像に投影した点の第１対象画素座標を決定し、前記第２カメラパラメタセットに基づいて前記所定外部分における前記３次元座標を第２画像に投影した点の第２対象画素座標を決定し、
処理（ａ６）では、前記第１画素座標での前記第１画像の画素値及び前記第２画素座標での前記第２画像の画素値の関係と、前記第１対象画素座標での前記第１画像の画素値及び前記第２対象画素座標での前記第２画像の画素値の関係とに基づいて評価値を算出し、
処理（ａ１）〜処理（ａ８）及び処理（ｂ１）〜処理（ｂ３）の少なくとも１つがプロセッサによって実行される
請求項１に記載のカメラパラメタセット算出方法。
【請求項３】
処理（ｂ２）では、前記所定外部分と前記第２画像との間の対応点の組を推定する処理を含み、前記対応点の組に前記所定外部分における前記３次元座標が対応する
請求項２に記載のカメラパラメタセット算出方法。
【請求項４】
処理（ａ６）では、前記評価値の算出に、画素値の差異を用いる
請求項１〜３のいずれか一項に記載のカメラパラメタセット算出方法。
【請求項５】
処理（ａ３）では、前記第１画像から、前記仮定の３次元位置情報と異なる他の仮定の３次元位置情報が設定された、前記所定部分と異なる他の所定部分を抽出し、
処理（ａ４）では、前記他の３次元位置情報、前記第１画像及び前記第１カメラパラメタセットに基づいて、前記他の所定部分の他の３次元座標を算出し、
処理（ａ５）では、前記他の３次元座標及び前記第１カメラパラメタセットに基づいて前記第１画像における前記他の所定部分の他の第１画素座標を決定し、前記他の３次元座標及び前記第２カメラパラメタセットに基づいて前記第２画像における前記他の所定部分の他の第２画素座標を決定し、
処理（ａ６）では、前記第１画素座標での前記第１画像の画素値と前記第２画素座標での前記第２画像の画素値との第１の差と、前記他の第１画素座標での前記第１画像の画素値と前記他の第２画素座標での前記第２画像の画素値との第２の差との和に基づいて前記評価値を算出する
請求項４に記載のカメラパラメタセット算出方法。
【請求項６】
処理（ａ６）では、前記第１の差は絶対値の差であり、前記第２の差は絶対値の差である
請求項５に記載のカメラパラメタセット算出方法。
【請求項７】
前記所定部分は、空の像を示し、
前記３次元位置情報は、前記空と前記第１カメラとの仮定の３次元距離の情報を含み、
前記空と前記第１カメラとの仮定の３次元距離は、前記第１カメラと前記第２カメラとの３次元距離と比較して大幅に大きい値に設定されている
請求項１〜６のいずれか一項に記載のカメラパラメタセット算出方法。
【請求項８】
前記所定部分は、被写体が３次元空間内で形成する平面の像を示し、
前記３次元位置情報は、前記平面の仮定の３次元位置の情報を含む
請求項１〜７のいずれか一項に記載のカメラパラメタセット算出方法。
【請求項９】
前記平面は、路面である
請求項８に記載のカメラパラメタセット算出方法。
【請求項１０】
前記平面は、構造物の天井面である
請求項８または９に記載のカメラパラメタセット算出方法。
【請求項１１】
前記平面は、構造物の壁面である
請求項８〜１０のいずれか一項に記載のカメラパラメタセット算出方法。
【請求項１２】
測距器から現在の位置情報を取得し、
前記現在の位置情報は、前記第１カメラの周辺の前記所定部分の位置情報を含む
請求項１〜１１のいずれか一項に記載のカメラパラメタセット算出方法。
【請求項１３】
コンピュータに実行させるカメラパラメタセット算出プログラムであって、
（ａ１）第１カメラで撮影された第１画像と、第２カメラで撮影された第２画像とを取得し、
（ａ２）前記第１カメラの１つ以上のカメラパラメタを含む第１カメラパラメタセットと、前記第２カメラの１つ以上のカメラパラメタを含む第２カメラパラメタセットとを取得し、
（ａ３）前記第１画像から、仮定の３次元位置情報が設定された所定部分を抽出し、
（ａ４）前記３次元位置情報、前記第１画像及び前記第１カメラパラメタセットに基づいて、前記所定部分の３次元座標を算出し、
（ａ５）前記所定部分の３次元座標及び前記第１カメラパラメタセットに基づいて前記第１画像における前記所定部分の第１画素座標を決定し、前記３次元座標及び前記第２カメラパラメタセットに基づいて前記第２画像における前記所定部分の第２画素座標を決定し、
（ａ６）前記第１画素座標での前記第１画像の画素値と前記第２画素座標での前記第２画像の画素値とに基づいて評価値を算出し、
（ａ７）前記評価値に基づいて、前記第１カメラパラメタセット及び前記第２カメラパラメタセットを更新し、
（ａ８）更新された前記第１カメラパラメタセット及び前記第２カメラパラメタセットを出力することを、
前記コンピュータに実行させるカメラパラメタセット算出プログラム。
【請求項１４】
少なくとも２つのカメラのカメラパラメタを算出する処理回路を備え、
前記処理回路は、
（ａ１）前記少なくとも２つのカメラの第１カメラで撮影された第１画像と、前記少なくとも２つのカメラの第２カメラで撮影された第２画像とを取得し、
（ａ２）前記第１カメラの１つ以上のカメラパラメタを含む第１カメラパラメタセットと、前記第２カメラの１つ以上のカメラパラメタを含む第２カメラパラメタセットとを取得し、
（ａ３）前記第１画像から、仮定の３次元位置情報が設定された所定部分を抽出し、
（ａ４）前記３次元位置情報、前記第１画像及び前記第１カメラパラメタセットに基づいて、前記所定部分の３次元座標を算出し、
（ａ５）前記所定部分の３次元座標及び前記第１カメラパラメタセットに基づいて前記第１画像における前記所定部分の第１画素座標を決定し、前記３次元座標及び前記第２カメラパラメタセットに基づいて前記第２画像における前記所定部分の第２画素座標を決定し、
（ａ６）前記第１画素座標での前記第１画像の画素値と前記第２画素座標での前記第２画像の画素値とに基づいて評価値を算出し、
（ａ７）前記評価値に基づいて、前記第１カメラパラメタセット及び前記第２カメラパラメタセットを更新し、
（ａ８）更新された前記第１カメラパラメタセット及び前記第２カメラパラメタセットを出力する
カメラパラメタセット算出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、カメラパラメタセット算出方法、カメラパラメタセット算出プログラム及びカメラパラメタセット算出装置に関する。
【背景技術】
【０００２】
自動車の安全運転支援システム、移動ロボットの遠隔操作システム、又は不審者等を検出する監視カメラシステムなどにおいて、ユーザ及びシステムが判断及び制御を行うためには、システムの周辺の画像及び画像に対応する３次元座標の情報が必要となる。複眼カメラの各カメラで撮影された画像から、ステレオ視により被写体の３次元座標を取得する種々の技術が知られている（例えば、特許文献１〜４、及び非特許文献１を参照）。ステレオ視により被写体の３次元座標を取得するためには、各カメラの種々のカメラパラメタの組であるカメラパラメタセットが必要であり、このカメラパラメタセットを算出することをカメラ校正と呼ぶ。特許文献４及び非特許文献１には、カメラ校正について詳細な説明が記載されている。
【０００３】
例えば、非特許文献１に開示されるカメラ校正技術では、校正の基準となる基準点の３次元座標と当該基準点の画素座標との組が複数組用意されて、これらが入力され、さらに、カメラパラメタを用いて３次元座標の基準点を画像上に投影した点と、当該基準点に対応する画素座標との距離（再投影誤差とも呼ばれる）が算出される。さらに、各基準点の再投影誤差の総和を最小化するカメラパラメタセットが算出される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２８５６９２号公報
【特許文献２】特開平６−１６７５６４号公報
【特許文献３】特開２００７−２４６４７号公報
【特許文献４】特表２００３−５２８３０４号公報
【非特許文献】
【０００５】
【非特許文献１】Roger Y. Tsai、「A Versatile Camera Calibration Technique for High-Accuracy 3D Machine Vision Metrology Using Off-the-Shelf TV Cameras and Lenses」、Journal of Robotics and Automation、IEEE、1987年8月、Vol. RA-3、No.4、p.323-344
【非特許文献２】C. Zach、T. Pock及びH. Bischof、「A duality based approach for realtime TV-L1 optical flow」、In Proceedings of the 29th DAGM conference on Pattern recognition、2007年、p214-223
【非特許文献３】松山隆司、ほか編、「コンピュータビジョン」、株式会社新技術コミュニケーションズ、p123-137
【非特許文献４】佐々木稔、ほか編、「昼間における空画像からの雲と太陽領域の抽出方法」、FIT2012  第11回情報科学技術フォーラム  H-005、p125-126
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の校正技術では、基準点、すなわち、基準点の３次元座標及び画素座標の組が必要である。しかしながら、基準点の３次元位置が、経年変化、外力又は温度変化等の影響で変化し、変化後の３次元座標が未知である場合に、正しく校正できないという課題がある。
【０００７】
本開示は、基準点の３次元座標が事前に与えられることなく、カメラの自己校正を可能にするカメラパラメタセット算出方法、カメラパラメタセット算出プログラム及びカメラパラメタセット算出装置を提供する。
【課題を解決するための手段】
【０００８】
本開示の一態様に係るカメラパラメタセット算出方法は、（ａ１）第１カメラで撮影された第１画像と、第２カメラで撮影された第２画像とを取得し、（ａ２）前記第１カメラの１つ以上のカメラパラメタを含む第１カメラパラメタセットと、前記第２カメラの１つ以上のカメラパラメタを含む第２カメラパラメタセットとを取得し、（ａ３）前記第１画像から、仮定の３次元位置情報が設定された所定部分を抽出し、（ａ４）前記３次元位置情報、前記第１画像及び前記第１カメラパラメタセットに基づいて、前記所定部分の３次元座標を算出し、（ａ５）前記所定部分の３次元座標及び前記第１カメラパラメタセットに基づいて前記第１画像における前記所定部分の第１画素座標を決定し、前記３次元座標及び前記第２カメラパラメタセットに基づいて前記第２画像における前記所定部分の第２画素座標を決定し、（ａ６）前記第１画素座標での前記第１画像の画素値と前記第２画素座標での前記第２画像の画素値とに基づいて評価値を算出し、（ａ７）前記評価値に基づいて、前記第１カメラパラメタセット及び前記第２カメラパラメタセットを更新し、（ａ８）更新された前記第１カメラパラメタセット及び前記第２カメラパラメタセットを出力し、処理（ａ１）〜処理（ａ８）の少なくとも１つがプロセッサによって実行される。
【０００９】
本開示の一態様に係るカメラパラメタセット算出プログラムは、コンピュータに実行させるカメラパラメタセット算出プログラムであって、（ａ１）第１カメラで撮影された第１画像と、第２カメラで撮影された第２画像とを取得し、（ａ２）前記第１カメラの１つ以上のカメラパラメタを含む第１カメラパラメタセットと、前記第２カメラの１つ以上のカメラパラメタを含む第２カメラパラメタセットとを取得し、（ａ３）前記第１画像から、仮定の３次元位置情報が設定された所定部分を抽出し、（ａ４）前記３次元位置情報、前記第１画像及び前記第１カメラパラメタセットに基づいて、前記所定部分の３次元座標を算出し、（ａ５）前記所定部分の３次元座標及び前記第１カメラパラメタセットに基づいて前記第１画像における前記所定部分の第１画素座標を決定し、前記３次元座標及び前記第２カメラパラメタセットに基づいて前記第２画像における前記所定部分の第２画素座標を決定し、（ａ６）前記第１画素座標での前記第１画像の画素値と前記第２画素座標での前記第２画像の画素値とに基づいて評価値を算出し、（ａ７）前記評価値に基づいて、前記第１カメラパラメタセット及び前記第２カメラパラメタセットを更新し、（ａ８）更新された前記第１カメラパラメタセット及び前記第２カメラパラメタセットを出力することを、前記コンピュータに実行させる。
【００１０】
本開示の一態様に係るカメラパラメタセット算出装置は、少なくとも２つのカメラのカメラパラメタを算出する処理回路を備え、前記処理回路は、（ａ１）前記少なくとも２つのカメラの第１カメラで撮影された第１画像と、前記少なくとも２つのカメラの第２カメラで撮影された第２画像とを取得し、（ａ２）前記第１カメラの１つ以上のカメラパラメタを含む第１カメラパラメタセットと、前記第２カメラの１つ以上のカメラパラメタを含む第２カメラパラメタセットとを取得し、（ａ３）前記第１画像から、仮定の３次元位置情報が設定された所定部分を抽出し、（ａ４）前記３次元位置情報、前記第１画像及び前記第１カメラパラメタセットに基づいて、前記３次元座標を算出し、（ａ５）前記所定部分の３次元座標及び前記第１カメラパラメタセットに基づいて前記第１画像における前記所定部分の第１画素座標を決定し、前記３次元座標及び前記第２カメラパラメタセットに基づいて前記第２画像における前記所定部分の第２画素座標を決定し、（ａ６）前記第１画素座標での前記第１画像の画素値と前記第２画素座標での前記第２画像の画素値とに基づいて評価値を算出し、（ａ７）前記評価値に基づいて、前記第１カメラパラメタセット及び前記第２カメラパラメタセットを更新し、（ａ８）更新された前記第１カメラパラメタセット及び前記第２カメラパラメタセットを出力する。
【００１１】
なお、上記の包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の不揮発性の記録媒体を含む。
【発明の効果】
【００１２】
本開示のカメラパラメタセット算出技術によると、基準点の３次元座標が事前に与えられることなく、カメラの自己校正が可能になる。
【００１３】
本開示の一態様の付加的な恩恵及び有利な点は本明細書及び図面から明らかとなる。この恩恵及び／又は有利な点は、本明細書及び図面に開示した様々な態様及び特徴により個別に提供され得るものであり、その１つ以上を得るために全てが必要ではない。
【図面の簡単な説明】
【００１４】
【図１】図１は、従来の校正指標の例を示す模式図である。
【図２】図２は、実施の形態１に係る複眼カメラシステムの機能的な構成を示すブロック図である。
【図３Ａ】図３Ａは、実施の形態１に係る撮像部の構成の一例を示す模式図である。
【図３Ｂ】図３Ｂは、実施の形態１に係る撮像部の構成の別の一例を示す模式図である。
【図４】図４は、実施の形態１に係る複眼カメラシステムの画像処理部をコンピュータによって構成したブロック図である。
【図５】図５は、実施の形態１に係る画像処理部の画像生成時の動作の流れの一例を示すフローチャートである。
【図６Ａ】図６Ａは、実施の形態１に係る複眼カメラシステムの設置の例を示す模式図である。
【図６Ｂ】図６Ｂは、実施の形態１における撮像状況の例を示す模式図である。
【図７Ａ】図７Ａは、実施の形態１に係る撮像部の構成の一例を示す模式図である。
【図７Ｂ】図７Ｂは、実施の形態１における撮像画像の例を示す模式図である。
【図８Ａ】図８Ａは、実施の形態１における画像の例を示す模式図である。
【図８Ｂ】図８Ｂは、実施の形態１における位置情報の例を示す模式図である。
【図９】図９は、実施の形態１における画像生成部から出力される合成画像の例を示す模式図である。
【図１０】図１０は、実施の形態１に係るカメラパラメタセット算出装置の機能的な構成を示す模式図である。
【図１１】図１１は、実施の形態１に係る画像処理部の自己校正時の動作の流れの一例を示すフローチャートである。
【図１２Ａ】図１２Ａは、自己校正の実験例における入力画像の例である。
【図１２Ｂ】図１２Ｂは、自己校正の実験例における入力画像の例である。
【図１３Ａ】図１３Ａは、自己校正の実験条件１の実験例におけるカメラパラメタと評価値との関係の例である。
【図１３Ｂ】図１３Ｂは、自己校正の実験条件１の実験例におけるカメラパラメタと評価値との関係の例である。
【図１３Ｃ】図１３Ｃは、自己校正の実験条件１の実験例におけるカメラパラメタと評価値との関係の例である。
【図１３Ｄ】図１３Ｄは、自己校正の実験条件１の実験例におけるカメラパラメタと評価値との関係の例である。
【図１４Ａ】図１４Ａは、自己校正の実験条件１の実験例におけるカメラパラメタと評価値との関係の例である。
【図１４Ｂ】図１４Ｂは、自己校正の実験条件１の実験例におけるカメラパラメタと評価値との関係の例である。
【図１４Ｃ】図１４Ｃは、自己校正の実験条件１の実験例におけるカメラパラメタと評価値との関係の例である。
【図１５Ａ】図１５Ａは、自己校正の実験条件１の実験例におけるカメラパラメタと評価値との関係の例である。
【図１５Ｂ】図１５Ｂは、自己校正の実験条件１の実験例におけるカメラパラメタと評価値との関係の例である。
【図１６Ａ】図１６Ａは、自己校正の実験条件２の実験例における試行回数と評価値との関係の例である。
【図１６Ｂ】図１６Ｂは、自己校正の実験条件２の実験例における試行回数と再投影誤差との関係の例である。
【図１７】図１７は、実施の形態２に係る複眼カメラシステムのカメラパラメタセット算出装置の機能的な構成を示す模式図である。
【図１８】図１８は、実施の形態２に係る画像処理部の自己校正時の動作の流れの一例を示すフローチャートである。
【図１９】図１９は、図１８の３次元点群算出処理の流れの詳細の一例を示すフローチャートである。
【図２０】図２０は、実施の形態２に係るカメラパラメタセット算出装置によって抽出される所定領域の一例を示す図である。
【図２１】図２１は、変形例１に係る複眼カメラシステムの構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
［本開示の基礎となった知見］
本発明者らは、「背景技術」の欄において記載したカメラ校正に関し、以下の問題が生じることを見出した。具体的には、自動車の安全運転支援システム、移動ロボットの遠隔操作システム、又は不審者等を検出する監視カメラシステムなどにおいて、ユーザ及びシステムが判断及び制御を行うためには、システムの周辺の画像及び画像に対応する３次元座標の情報が必要となる。特に、人及び車等のように監視対象が移動する場合、並びに、システムを搭載する自動車、ロボット等と共にシステム自身が移動する場合、より広い視野角の画像及び画像に対応する３次元座標の取得が重要である。
【００１６】
画像及び画像に対応する３次元座標を取得する手段としては、いわゆるステレオ視が一般的である。ステレオ視では、互いに異なる視点に位置し且つ視野が重複するように配置された２台のカメラを用いて２つの画像が取得され、２つの画像間の対応点の組が推定され、対応点の組と予め求めておいたカメラの位置及び向き等の情報とを用いて、対応点の組に対する被写体上の点の３次元座標が計算される。
【００１７】
（校正技術の従来例）
例えば、複眼カメラで撮影された画像から、ステレオ視により被写体の３次元座標を取得するためには、各カメラのカメラパラメタセットが必要である。カメラパラメタセットとは、カメラのモデル及び当該モデルに応じた複数のパラメタである。カメラのモデル及び当該モデルに応じた複数のパラメタは、撮影空間内のある点の３次元座標と撮影によって得られた画像上での当該点の２次元座標（画素座標とも呼ばれる）との関係を表す。このカメラパラメタセットを算出することをカメラ校正と呼ぶ。
【００１８】
より詳細には、カメラパラメタセットは、外部パラメタセット及び内部パラメタセットの２つのカメラパラメタセットで構成される。外部パラメタセットは、カメラの撮影空間を基準として定められた３次元の世界座標系と、カメラを基準として定められた３次元のカメラ座標系との間での位置関係を表す。内部パラメタセットは、カメラ座標系における被写体の３次元座標と当該カメラで撮影した画像上での当該被写体の位置との関係を表す。
【００１９】
非特許文献１が開示するカメラ校正技術では、基準点の３次元座標及び当該基準点の画素座標の組が複数組用意されて、これらを入力要素とし、カメラパラメタを用いて３次元座標の基準点を画像上に投影した点と、当該基準点に対応する画素座標との距離（再投影誤差）の総和を最小化するカメラパラメタセットが算出される。
【００２０】
基準点の３次元座標及び当該基準点の画素座標の組を得るために、特定模様の校正指標が一般的に用いられる。校正指標の例を、図１に示す。図１の例では、格子状の模様が箱状の被写体の内側に一定間隔で配置されている。格子点、つまり、模様の角を基準点とし、基準点に対応する格子点の３次元座標の設計値、又は、基準点の設置後に計測された基準点の３次元座標が保持される。さらに、基準点をカメラで撮影し、基準点に対応する格子点の画素座標を画像処理で推定することで、基準点の３次元座標及び画素座標の組の情報が得られる。このような校正指標を用いる校正技術は、校正指標を備える設備等が必要になる反面、高精度な校正ができることから、カメラ製造後の工場等での校正で有効である。
【００２１】
一方、カメラ校正は、製造時の校正以外に、カメラを搭載する装置が稼動している状態で、経年変化、外力による変形又は温度変化等の影響によって、カメラパラメタセットが変わってしまった場合にも必要になる。自動車の安全運転支援システム、移動ロボットの遠隔操作システム、及び、監視カメラシステムなどにおいては、校正方法は、校正指標を備える設備等が不要であり、且つ、人手による操作が不要であることが望ましい。つまり、自己校正による校正方法が望ましい。ここで、カメラを備えるシステムがカメラパラメタセットを自動で更新することを自己校正と呼ぶ。
【００２２】
特許文献４には、車両に設置されたステレオカメラをシステムが自動で校正する自己校正技術が開示されている。特許文献４の技術では、格子等の特定模様の校正指標を用いる代わりに、カメラの視野内にある静止物が校正目標として記憶され、校正目標の位置が変わった場合に、校正目標の３次元座標の情報を用いて、カメラの自己校正が行われる。
【００２３】
しかしながら、従来の校正技術では、校正目標の３次元座標は事前に得られており変化しないと仮定しているため、校正目標の３次元座標が経年変化、外力又は温度変化等の影響で変化した場合に、正しく校正できないという課題がある。そこで、本発明者らは、校正基準点の３次元座標が事前に与えられることなく、カメラの自己校正を可能にする技術を、下記のように創案した。
【００２４】
本開示の一態様に係るカメラパラメタセット算出方法は、（ａ１）第１カメラで撮影された第１画像と、第２カメラで撮影された第２画像とを取得し、（ａ２）前記第１カメラの１つ以上のカメラパラメタを含む第１カメラパラメタセットと、前記第２カメラの１つ以上のカメラパラメタを含む第２カメラパラメタセットとを取得し、（ａ３）前記第１画像から、仮定の３次元位置情報が設定された所定部分を抽出し、（ａ４）前記３次元位置情報、前記第１画像及び前記第１カメラパラメタセットに基づいて、前記所定部分の３次元座標を算出し、（ａ５）前記所定部分の３次元座標及び前記第１カメラパラメタセットに基づいて前記第１画像における前記所定部分の第１画素座標を決定し、前記３次元座標及び前記第２カメラパラメタセットに基づいて前記第２画像における前記所定部分の第２画素座標を決定し、（ａ６）前記第１画素座標での前記第１画像の画素値と前記第２画素座標での前記第２画像の画素値とに基づいて評価値を算出し、（ａ７）前記評価値に基づいて、前記第１カメラパラメタセット及び前記第２カメラパラメタセットを更新し、（ａ８）更新された前記第１カメラパラメタセット及び前記第２カメラパラメタセットを出力し、処理（ａ１）〜処理（ａ８）の少なくとも１つがプロセッサによって実行される。
【００２５】
上記態様によれば、評価値に基づいた第１カメラ及び第２カメラのカメラパラメタセットの算出が可能である。評価値の算出に用いられる所定部分の画素値は、第１画像及び第２画像から抽出される。所定部分は、その３次元位置情報が仮定に基づき設定され得る部分であり、正確な座標が既知である予め設定された校正指標等の基準ではない。つまり、所定部分は、第１画像及び第２画像の被写体から抽出される部分である。このため、カメラパラメタセットの算出過程における３次元座標と画素座標との対応付けに、既知の基準点を含む校正指標を備える設備が不要である。言い換えると、本態様は、事前に得た基準点の３次元座標を用いないため、経年変化、外力、温度変化等の影響による基準点の変化とは無関係に、カメラを正しく自己校正できる。
【００２６】
また、所定部分は、その３次元位置情報が仮定により設定された部分であるため、所定部分の３次元座標は、３次元位置情報、第１画像及び第１カメラパラメタセットに基づいて、算出可能である。例えば、２つの画像の間において同じ被写体を指す対応点を推定し、推定された２つの対応点の画素座標を用いて対応点の３次元座標を算出する方法、いわゆる、ステレオ視による算出方法では、結果として得られる３次元座標が、対応点の推定精度による影響を受ける。しかしながら、本態様は、３次元座標の算出の際に、推定された対応点ではなく、３次元位置情報が設定された所定部分を用いるため、対応点の推定精度による影響を低減することができる。よって、正確なカメラの自己校正が可能になる。
【００２７】
なお、第１カメラパラメタセット及び第２カメラパラメタセットが正しい場合に、ある点の３次元座標に対応する第１画素座標での第１画像の画素値及び第２画素座標での第２画像の画素値は、互いに等しく、第１カメラパラメタセット又は第２カメラパラメタセットが正解値から離れるほど、つまり誤差を多く含むほど、第１画像の画素値と第２画像の画素値との間に差異が生じる。このため、第１カメラパラメタセット又は第２カメラパラメタセットが誤差を含む場合に、第１画像の画素値と第２画像の画素値との差異に基づいて、例えば、差異を最小にするように、第１カメラパラメタセット及び第２カメラパラメタセットを変更することで、正しいカメラパラメタセットを得ることができる。すなわち、第１及び第２カメラを校正することができる。
【００２８】
また、本開示の一態様に係るカメラパラメタセット算出方法はさらに、（ｂ１）前記第１画像から、前記所定部分以外の部分である所定外部分を抽出し、（ｂ２）前記第１画像、前記第２画像、前記第１カメラパラメタセット及び前記第２カメラパラメタセットに基づいて、前記所定外部分に含まれる被写体上の３次元座標を算出し、（ｂ３）前記第１カメラパラメタセットに基づいて前記所定外部分における前記３次元座標を前記第１画像に投影した点の第１対象画素座標を決定し、前記第２カメラパラメタセットに基づいて前記所定外部分における前記３次元座標を第２画像に投影した点の第２対象画素座標を決定し、処理（ａ６）では、前記第１画素座標での前記第１画像の画素値及び前記第２画素座標での前記第２画像の画素値の関係と、前記第１対象画素座標での前記第１画像の画素値及び前記第２対象画素座標での前記第２画像の画素値の関係とに基づいて評価値を算出し、処理（ａ１）〜処理（ａ８）及び処理（ｂ１）〜処理（ｂ３）の少なくとも１つがプロセッサによって実行されてもよい。
【００２９】
上記態様によれば、所定外部分に関して、評価値の算出に用いられる２つの画素値に対応する第１画素座標、第２画素座標は予め設定された校正指標等の基準ではない。このため、所定外部分に関しても、カメラパラメタセットの算出過程における３次元座標と画素座標との対応付けに、既知の基準点を含む校正指標を備える設備が不要である。そして、評価値は、所定部分のデータと、所定外部分とのデータとを用いて算出されるため、第１画像及び第２画像の広い領域を反映することが可能である。これにより、評価値に基づく第１カメラパラメタセット及び第２カメラパラメタセットの算出精度の向上が可能になる。
【００３０】
また、本開示の一態様に係るカメラパラメタセット算出方法は、処理（ｂ２）では、前記所定外部分と前記第２画像との間の対応点の組を推定する処理を含み、前記対応点の組に前記所定外部分における前記３次元座標が対応してもよい。
【００３１】
また、本開示の一態様に係るカメラパラメタセット算出方法は、処理（ａ６）では、前記評価値の算出に、画素値の差異を用いてもよい。上記態様によれば、互いに対応する被写体における第１画像の画素値と第２画像の画素値との間に差異がある場合、第１カメラパラメタセット及び第２カメラパラメタセットに、真値に対する誤差があると判定することが可能である。よって、第１カメラパラメタセット及び第２カメラパラメタセットの良否の判定が容易である。さらに、例えば、上記差異を小さくするように、第１カメラパラメタセット及び第２カメラパラメタセットを変更つまり更新することによって、第１カメラパラメタセット及び第２カメラパラメタセットを適切にすることが可能である。
【００３２】
また、本開示の一態様に係るカメラパラメタセット算出方法は、処理（ａ３）では、前記第１画像から、前記仮定の３次元位置情報と異なる他の仮定の３次元位置情報が設定された、前記所定部分と異なる他の所定部分を抽出し、処理（ａ４）では、前記他の３次元位置情報、前記第１画像及び前記第１カメラパラメタセットに基づいて、前記他の所定部分の他の３次元座標を算出し、処理（ａ５）では、前記他の３次元座標及び前記第１カメラパラメタセットに基づいて前記第１画像における前記他の所定部分の他の第１画素座標を決定し、前記他の３次元座標及び前記第２カメラパラメタセットに基づいて前記第２画像における前記他の所定部分の他の第２画素座標を決定し、処理（ａ６）では、前記第１画素座標での前記第１画像の画素値と前記第２画素座標での前記第２画像の画素値との第１の差と、前記他の第１画素座標での前記第１画像の画素値と前記他の第２画素座標での前記第２画像の画素値との第２の差との和に基づいて前記評価値を算出してもよい。
【００３３】
上記態様によれば、複数の差異を用いることによって、評価値の精度が向上する。さらに、例えば、複数の差異の和を小さくするように、第１カメラパラメタセット及び第２カメラパラメタセットを更新することによって、第１カメラパラメタセット及び第２カメラパラメタセットを最適にすることが可能である。
【００３４】
また、本開示の一態様に係るカメラパラメタセット算出方法は、処理（ａ６）では、前記第１の差は絶対値の差であり、前記第２の差は絶対値の差であってもよい。上記態様によれば、差の絶対値を用いることによって、評価値の算出の際に、差同士が打ち消し合うことが抑えられる。よって、正確な評価値の算出が可能になる。
【００３５】
また、本開示の一態様に係るカメラパラメタセット算出方法において、前記所定部分は、空の像を示し、前記３次元位置情報は、前記空と前記第１カメラとの仮定の３次元距離の情報を含み、前記空と前記第１カメラとの仮定の３次元距離は、前記第１カメラと前記第２カメラとの３次元距離と比較して大幅に大きい値に設定されていてもよい。上記態様において、空の部分と第１カメラとの仮定の３次元距離は、例えば、１００００ｍ又は無限大のような非常に大きい値に設定することができる。よって、空の仮定の３次元位置は、容易に設定されることができる。
【００３６】
また、本開示の一態様に係るカメラパラメタセット算出方法において、前記所定部分は、被写体が３次元空間内で形成する平面の像を示し、前記３次元位置情報は、前記平面の仮定の３次元位置の情報を含んでもよい。上記態様において、平面の仮定の３次元位置は、容易に設定されることができる。
【００３７】
また、本開示の一態様に係るカメラパラメタセット算出方法において、前記平面は、路面であってもよい。上記態様において、路面は、略水平であるため、路面の仮定の３次元位置は、高い精度で容易に設定されることができる。
【００３８】
また、本開示の一態様に係るカメラパラメタセット算出方法において、前記平面は、構造物の天井面であってもよい。上記態様において、天井面は、略水平であるため、天井面の仮定の３次元位置は、高い精度で容易に設定されることができる。
【００３９】
また、本開示の一態様に係るカメラパラメタセット算出方法において、前記平面は、構造物の壁面であってもよい。上記態様において、壁面は、略鉛直であるため、壁面の仮定の３次元位置は、高い精度で容易に設定されることができる。
【００４０】
また、本開示の一態様に係るカメラパラメタセット算出方法は、測距器から現在の位置情報を取得し、前記現在の位置情報は、前記第１カメラの周辺の前記所定部分の位置情報を含んでもよい。上記態様によれば、第１カメラ及びその周辺の位置情報がリアルタイムに得られる。これにより、第１カメラの位置に応じた所定部分の仮の３次元位置情報の決定が可能である。よって、所定部分の仮の３次元位置情報の精度の向上が可能である。
【００４１】
本開示の一態様に係るカメラパラメタセット算出プログラムは、コンピュータに実行させるカメラパラメタセット算出プログラムであって、（ａ１）第１カメラで撮影された第１画像と、第２カメラで撮影された第２画像とを取得し、（ａ２）前記第１カメラの１つ以上のカメラパラメタを含む第１カメラパラメタセットと、前記第２カメラの１つ以上のカメラパラメタを含む第２カメラパラメタセットとを取得し、（ａ３）前記第１画像から、仮定の３次元位置情報が設定された所定部分を抽出し、（ａ４）前記３次元位置情報、前記第１画像及び前記第１カメラパラメタセットに基づいて、前記所定部分の３次元座標を算出し、（ａ５）前記所定部分の３次元座標及び前記第１カメラパラメタセットに基づいて前記第１画像における前記所定部分の第１画素座標を決定し、前記３次元座標及び前記第２カメラパラメタセットに基づいて前記第２画像における前記所定部分の第２画素座標を決定し、（ａ６）前記第１画素座標での前記第１画像の画素値と前記第２画素座標での前記第２画像の画素値とに基づいて評価値を算出し、（ａ７）前記評価値に基づいて、前記第１カメラパラメタセット及び前記第２カメラパラメタセットを更新し、（ａ８）更新された前記第１カメラパラメタセット及び前記第２カメラパラメタセットを出力することを、前記コンピュータに実行させる。上記態様によれば、本開示の一態様に係るカメラパラメタセット算出方法と同様の効果が得られる。
【００４２】
本開示の一態様に係るカメラパラメタセット算出装置は、少なくとも２つのカメラのカメラパラメタを算出する処理回路を備え、前記処理回路は、（ａ１）前記少なくとも２つのカメラの第１カメラで撮影された第１画像と、前記少なくとも２つのカメラの第２カメラで撮影された第２画像とを取得し、（ａ２）前記第１カメラの１つ以上のカメラパラメタを含む第１カメラパラメタセットと、前記第２カメラの１つ以上のカメラパラメタを含む第２カメラパラメタセットとを取得し、（ａ３）前記第１画像から、仮定の３次元位置情報が設定された所定部分を抽出し、（ａ４）前記３次元位置情報、前記第１画像及び前記第１カメラパラメタセットに基づいて、前記所定部分の３次元座標を算出し、（ａ５）前記所定部分の３次元座標及び前記第１カメラパラメタセットに基づいて前記第１画像における前記所定部分の第１画素座標を決定し、前記３次元座標及び前記第２カメラパラメタセットに基づいて前記第２画像における前記所定部分の第２画素座標を決定し、（ａ６）前記第１画素座標での前記第１画像の画素値と前記第２画素座標での前記第２画像の画素値とに基づいて評価値を算出し、（ａ７）前記評価値に基づいて、前記第１カメラパラメタセット及び前記第２カメラパラメタセットを更新し、（ａ８）更新された前記第１カメラパラメタセット及び前記第２カメラパラメタセットを出力する。上記態様によれば、本開示の一態様に係るカメラパラメタセット算出方法と同様の効果が得られる。
【００４３】
なお、上記の全般的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばＣＤ−ＲＯＭ等の不揮発性の記録媒体を含む。
【００４４】
以下、実施の形態に係るカメラパラメタセット算出装置等を、図面を参照しながら説明する。なお、以下で説明される実施の形態は、包括的又は具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ（工程）、並びにステップの順序等は、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、以下の実施の形態の説明において、略平行、略直交のような「略」を伴った表現が、用いられる場合がある。例えば、略平行とは、完全に平行であることを意味するだけでなく、実質的に平行である、すなわち、例えば数％程度の差異を含むことも意味する。他の「略」を伴った表現についても同様である。
【００４５】
［実施の形態１］
［１−１．複眼カメラシステムの構成］
［１−１−１．複眼カメラシステムの全体構成］
本開示の実施の形態１に係るカメラパラメタセット算出装置１１１を備える複眼カメラシステム１０を説明する。これに限定するものではないが、本実施の形態では、複眼カメラシステム１０は、カメラパラメタセット算出装置１１１を用いた車載用の複眼カメラシステムであるとして、説明する。図２を参照すると、実施の形態１に係るカメラパラメタセット算出装置１１１を備える複眼カメラシステム１０の機能的な構成を示すブロック図が示されている。図２に示されるように、複眼カメラシステム１０は、撮像部１００と、画像処理部１１０と、ディスプレイ１２０とを備える。
【００４６】
撮像部１００は、画像を撮影して取得し、画像処理部１１０に出力する。撮像部１００は、２つ以上のカメラ１０１を備え、本実施の形態では、２つのカメラ１０１ａ及び１０１ｂを備える。画像処理部１１０は、撮像部１００によって撮影された画像を処理し、その処理結果をディスプレイ１２０等に出力する。画像処理部１１０は、カメラパラメタセット算出装置１１１と、位置算出部１１２と、画像生成部１１３と、カメラパラメタ記憶部１１４とを備える。カメラパラメタセット算出装置１１１のことを、自己校正部とも呼ぶ。また、ディスプレイ１２０は、画像処理部１１０から出力された画像等を表示する。ディスプレイ１２０は、液晶パネル、有機又は無機ＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ）等の表示パネルによって構成されてよい。なお、同様の構成要素を区別するために添え字ａ〜ｄを用いるが、以下では、これらの構成要素を特に区別しない場合には、添え字を除いた符号のみを用いることがある。
【００４７】
複眼カメラシステム１０は、主に画像生成と、自己校正との２種類の動作をする。画像生成時、撮像部１００は画像を撮影して画像処理部１１０に出力し、画像処理部１１０は、入力された画像から被写体の３次元座標を算出し、算出した３次元座標に基づいて画像を生成して出力し、ディスプレイ１２０に表示する。自己校正時、撮像部１００は画像を撮影して画像処理部１１０に出力し、画像処理部１１０のカメラパラメタセット算出装置１１１は、カメラパラメタ記憶部１１４に格納されているカメラパラメタセットを更新する。なお、画像生成と自己校正との２種類の動作は、同時に行われてもよく、別々に行われてもよい。
【００４８】
［１−１−２．撮像部の構成］
図３Ａを参照すると、複眼カメラシステム１０の撮像部１００の構成の一例が模式的に示されている。図３Ａでは、２つのカメラ１０１を一体として固定した構成の撮像部１００の例が示されている。図３Ａにおいて、撮像部１００は、（ａ）の正面図、（ｂ）の側面図、及び、（ｃ）の断面図で示されている。上記断面図は、撮像部１００の２つのカメラ１０１の２つのレンズの中心を通る断面で、撮像部１００を切断した図である。撮像部１００を構成する２つのカメラ１０１それぞれのレンズは魚眼レンズであるものとする。
【００４９】
なお、本実施の形態に係る複眼カメラシステム１０において、撮像部１００は、２つのカメラで構成される２眼カメラとしたが、撮像部１００を構成するカメラは、２つに限定されず、３つ以上であってもよい。つまり、撮像部１００は、２つ以上のカメラを備えるように構成されてもよい。例えば、図３Ｂに示すように、撮像部１００は、３つのカメラ１０１で構成される３眼カメラであってもよい。このような撮像部１００は、２つのカメラ１０１を備える代わりに、３つのカメラ１０１を一体として固定した構成を有する。図３Ｂにおいて、撮像部１００は、（ａ）の正面図、及び、（ｂ）の側面図で示されている。なお、図３Ａ及び図３Ｂに示されるように、隣接するカメラ１０１の光軸間の距離は基線長と呼ばれ、撮像部１００において、各カメラ１０１の光軸上に撮像素子が配置されている。また、撮像部１００において、各カメラ１０１は、一体化されていなくてもよく、別々に配置されていてもよい。さらに、別々に配置されたカメラ１０１は、互いに近接していなくてもよい。
【００５０】
撮像素子は、カメラ１０１のレンズを通って入射する光を受光して、受光した光から像を形成する構成を有するものであればよく、例えば、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）イメージセンサ又はＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）イメージセンサ等のイメージセンサであってもよい。
【００５１】
撮像部１００は、視野角が概ね１８０度の魚眼レンズを有する２つのカメラ１０１ａ及び１０１ｂで構成される。２つのカメラ１０１ａ及び１０１ｂは、図３Ａに示すように配置され、視野内の画像をそれぞれ撮影して２つの画像を出力する（以降、この画像をカメラ画像とも呼ぶ）。
【００５２】
［１−１−３．画像処理部の構成］
図２を参照して、画像処理部１１０の構成を説明する。上述したように、画像処理部１１０は、カメラパラメタセット算出装置１１１、位置算出部１１２、画像生成部１１３及びカメラパラメタ記憶部１１４を備える。
【００５３】
カメラパラメタ記憶部１１４は、カメラ１０１ａ及び１０１ｂそれぞれのカメラパラメタセットと、カメラ画像における撮像部１００によって遮蔽された領域の情報である遮蔽情報とを少なくとも予め格納している。カメラ１０１ａ及び１０１ｂのカメラパラメタセットは、各カメラの位置及び向き等の外部パラメタセットと、各カメラのレンズの歪及び焦点距離等の内部パラメタセットとを含み得る。
【００５４】
自己校正部でもあるカメラパラメタセット算出装置１１１は、カメラ１０１ａ及び１０１ｂによって撮影されたカメラ画像と、カメラパラメタ記憶部１１４に記憶されたカメラ１０１ａ及び１０１ｂの初期カメラパラメタセットとを用いて、カメラパラメタ記憶部１１４のカメラパラメタセットを更新する。初期カメラパラメタセットは、カメラパラメタ記憶部１１４に既に記憶されているカメラ１０１ａ及び１０１ｂのカメラパラメタセットであってよい。例えば、初期カメラパラメタセットは、カメラ１０１ａ及び１０１ｂの設計時のカメラパラメタセットであってもよく、使用段階においてカメラ１０１ａ及び１０１ｂに設定されているカメラパラメタセットであってもよい。
【００５５】
位置算出部１１２は、カメラ１０１ａ及び１０１ｂから出力された２つのカメラ画像間の対応点の組を推定する。２つのカメラ画像に同一の被写体が映っている場合、すなわち、一方のカメラ画像の被写体上の点が、他方のカメラ画像にも映っている場合、これら２つの点のそれぞれを対応点と呼び、この２つの点の組を対応点の組と呼ぶ。対応点の組を推定するとは、具体的には、対応点の組のそれぞれの対応点の画素座標を算出することである。さらに、位置算出部１１２は、カメラパラメタ記憶部１１４からカメラ１０１ａ及び１０１ｂそれぞれのカメラパラメタセットを読み出す。位置算出部１１２は、対応点の組と、各カメラパラメタセットに含まれる外部パラメタセット及び内部パラメタセットとに基づいて、２つのカメラ画像の両方に写っている３次元物体上の点、すなわち、被写体上の点の３次元座標を算出する。そして、位置算出部１１２は、算出した３次元座標と対応点の画素座標の組とをあわせて、３次元物体上の点、すなわち、被写体上の点の位置情報として出力する。
【００５６】
画像生成部１１３は、２つのカメラ画像と、位置算出部１１２によって算出された３次元物体の位置情報とに基づいて、合成画像を生成して出力する。生成される合成画像は、具体的には、撮影空間内の３次元物体の画像であり、当該３次元物体の３次元座標に基づく合成画像である。
【００５７】
図２の複眼カメラシステム１０のうちの画像処理部１１０を構成する各構成要素は、電子回路又は集積回路等のハードウェアで実現されてもよく、コンピュータ上で実行されるプログラム等のソフトウェアで実現されてもよい。
【００５８】
図４を参照して、画像処理部１１０のハードウェア構成の一例を説明する。なお、図４は、複眼カメラシステム１０のハードウェア構成の一例を示す図である。複眼カメラシステム１０は、撮像部１００と、画像処理部１１０に対応するコンピュータ３００と、ディスプレイ１２０とを備える。複眼カメラシステム１０において、撮像部１００は画像を撮影して出力し、コンピュータ３００が画像処理部１１０として動作することにより、画像を生成して出力する。ディスプレイ１２０はコンピュータ３００で生成された画像を表示する。
【００５９】
コンピュータ３００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）３０４、ビデオ入力Ｉ／Ｆ（インタフェース）３０５及びビデオカード３０６を含む。
【００６０】
コンピュータ３００を動作させるプログラムは、ＲＯＭ３０２又はＨＤＤ３０４に予め保持されている。プログラムは、プロセッサであるＣＰＵ３０１によって、ＲＯＭ３０２又はＨＤＤ３０４からＲＡＭ３０３に読み出されて展開される。
【００６１】
ＣＰＵ３０１は、ＲＡＭ３０３に展開されたプログラム中のコード化された各命令を実行する。ビデオ入力Ｉ／Ｆ３０５は、プログラムの実行に応じて、撮像部１００で撮影された画像を、ＲＡＭ３０３へ取り込む。ビデオカード３０６は、プログラムの実行に応じて生成された画像を処理してディスプレイ１２０に出力し、ディスプレイ１２０がその画像を表示する。
【００６２】
なお、コンピュータプログラムは、半導体装置であるＲＯＭ３０２又はＨＤＤ３０４に限られず、例えばＣＤ―ＲＯＭ等の記録媒体に格納されていてもよい。また、コンピュータプログラムは、有線ネットワーク、無線ネットワーク又は放送等を介して伝送され、コンピュータ３００のＲＡＭ３０３に取り込まれてもよい。
【００６３】
［１−２．複眼カメラシステムの動作］
複眼カメラシステム１０の動作を説明する。具体的には、複眼カメラシステム１０における、画像生成時の動作と、自己校正時の動作とを、順に説明する。
【００６４】
［１−２−１．画像生成時の動作］
複眼カメラシステム１０における画像生成時の動作を、図５を用いて説明する。なお、図５は、複眼カメラシステム１０の画像処理部１１０における、画像生成時の動作の一例を表すフローチャートである。図５に示されるように、画像生成時の動作は、カメラパラメタセット読み出しのステップＳ４０１の処理と、位置算出のステップＳ４０２の処理と、画像生成のステップＳ４０３の処理とを含む。図５に示される各動作は、図４のコンピュータ３００で実行されてもよい。
【００６５】
これに限定するものではないが、本実施の形態では、複眼カメラシステム１０が自動車に設置される例を説明する。具体的には、複眼カメラシステム１０は、自動車の後方のカメラ画像と当該カメラ画像の３次元座標とを取得して障害物を検出し、その結果を自動車内に設置されたディスプレイに表示し、それにより、利用者であるドライバに車体後方の状況を提示する。
【００６６】
図６Ａを参照すると、複眼カメラシステム１０の自動車への設置例を示す平面図が示されている。撮像部１００は、カメラ１０１の光軸が概ね自動車の前後方向に一致するように、車体後部に車体後方に向けて設置される。画像処理部１１０及びディスプレイ１２０はそれぞれ、ドライバから見える車室内に設置される。また、図６Ｂを参照すると、自動車に搭載された複眼カメラシステム１０による撮影が行われている状況の例が、平面図で示されている。これに限定されるものではないが、本実施の形態では、撮像部１００の２つのカメラ１０１ａ及び１０１ｂは、互いに同期して一定時間間隔で、画像を撮像して出力する。
【００６７】
図７Ａを参照すると、撮像部１００における２つのカメラ１０１ａ及び１０１ｂの配置の例が、正面図の（ａ）及び背面図の（ｂ）により示されている。また、図７Ｂを参照すると、図６Ｂの撮影状況において、図７Ａの２つのカメラ１０１ａ及び１０１ｂで撮影される画像の例が示されている。カメラ１０１ａ及び１０１ｂそれぞれの視野角は概ね１８０度である。カメラ１０１ａ及び１０１ｂの各視野内の大半で、共通の被写体が映っていることがわかる。
【００６８】
コンピュータ３００は、撮像部１００の動作と並行して、予め定められたプログラムを実行することで、図５のステップＳ４０１〜Ｓ４０３の処理を行う。以降、コンピュータ３００で実行されるステップＳ４０１〜Ｓ４０３の詳細な処理を、図７Ａ〜図９を用いて説明する。
【００６９】
ステップＳ４０１では、位置算出部１１２は、カメラパラメタ記憶部１１４から、カメラパラメタ記憶部１１４に予め格納されているカメラ１０１ａ及び１０１ｂの内部パラメタセット及び外部パラメタセットを含むカメラパラメタセットと、遮蔽情報とを読み出す。
【００７０】
カメラの外部パラメタセットＭと３次元座標との関係、及び、カメラの内部パラメタセット（ｆ，ｄｐｘ，ｄｐｙ，ｃｕ，ｃｖ）と３次元座標と画素座標との関係を下記の式１〜式３に示す。
【００７１】
【数１】
2018191275.tif 000003
【数２】
2018191275.tif 000004
【数３】
2018191275.tif 000005
【００７２】
ここで、上記の式１における外部パラメタセットＭは、世界座標系とカメラ座標系との位置関係を表す外部パラメタセットであり、世界座標系の３次元座標（ｘｗ，ｙｗ，ｚｗ）を、カメラ座標系の３次元座標（ｘｅ，ｙｅ，ｚｅ）に変換する４×４の行列で表す。上記の式１及び式２に示すように、外部パラメタセットＭは、世界座標系のＸ、Ｙ及びＺの各軸周りの回転（Ｒｘ，Ｒｙ，Ｒｚ）と、Ｘ、Ｙ及びＺの各軸方向の平行移動（ｔｘ，ｔｙ，ｔｚ）とを表す。上記の式３は、カメラ座標系の３次元座標（ｘｅ，ｙｅ，ｚｅ）と画素座標（ｕ，ｖ）との関係を表している。内部パラメタセットのｆはカメラの焦点距離であり、ｄｐｘ及びｄｐｙはそれぞれ、カメラの撮像素子のｘ方向及びｙ方向の画素サイズであり、（ｃｕ，ｃｖ）はカメラ座標系のｚｅ軸とカメラの撮像面との交点の画素座標である。なお、デジタル画像を「２次元の格子点（すなわち、画素座標）における値（すなわち画素値）」の集合と考えた場合に、画像上の画素の位置を２次元の画素座標で表現する。
【００７３】
外部パラメタセットＭ及び内部パラメタセット（ｆ，ｄｐｘ，ｄｐｙ，ｃｕ，ｃｖ）は、前述した従来技術のカメラ校正方法で予め求めておく。なお、ｄｐｘ、ｄｐｙ及びｆの算出には、上記の式１〜式３だけでは拘束条件が足りない。そこで、ｄｐｘ、ｄｐｙ及びｆのいずれか１つは設計値が用いられ、残りの２つのパラメタが従来技術のカメラ校正方法で算出されてもよい。
【００７４】
なお、上記の式３では、レンズの投影モデルとして透視投影モデル（ピンホールカメラモデルとも呼ばれる）を用いたが、これは投影モデルを限定するものではなく、等距離射影モデル、立体射影モデル及び等立体角射影モデル等の他の投影モデルを用いてもよい。例えば、等距離射影モデルの場合、上記の式３の内部パラメタセットの代わりに、下記の式４に示される内部パラメタセットを用いる。
【００７５】
【数４】
2018191275.tif 000006
【００７６】
以降、説明を簡単にするため、カメラ１０１ａ及び１０１ｂそれぞれをカメラｉ及びｊと記載する場合がある。この場合、カメラｉ及びｊの位置関係を表す外部パラメタセットＭｉ及びＭｊを、下記の式５のように示すことができる。
【００７７】
【数５】
2018191275.tif 000007
【００７８】
また、カメラ１０１ａの内部パラメタセット及び外部パラメタセットをまとめたカメラパラメタセットを、下記の式６に示すようなＣａで表す。カメラ１０１ｂの内部パラメタセット及び外部パラメタセットをまとめたカメラパラメタセットを、下記の式７に示すようなＣｂで表す。
【００７９】
【数６】
2018191275.tif 000008
【００８０】
ステップＳ４０２では、位置算出部１１２は、撮像部１００のカメラ１０１ａ及び１０１ｂで同じ被写体を撮影して得られた２つのカメラ画像を取得する。そして、位置算出部１１２は、取得した２つのカメラ画像と、ステップＳ４０１で読み出したカメラ１０１ａ及び１０１ｂのカメラパラメタセットとを用いて、ステレオ視により２つのカメラ画像間の対応点の組に対する被写体上の点の３次元座標を算出する。具体的には、位置算出部１１２は、カメラ１０１ａのカメラ画像及びカメラ１０１ｂのカメラ画像のそれぞれに含まれる点であって且つ互いに対応する点の組、すなわち、対応点の組を推定し抽出する。さらに、位置算出部１１２は、対応点の組に含まれる２点に対する被写体上の点の視差から、三角測量の原理を用いて、対応点の組に対する被写体上の点の３次元座標を算出する。これにより、カメラ画像に含まれる点に対する被写体上の点の３次元座標が算出される。なお、位置算出部１１２は、対応点の組を複数抽出し、複数の対応点の組のそれぞれに対する被写体上の複数の点の３次元座標を算出する。複数の対応点の組と被写体上の複数の点の３次元座標とは１対１で対応する。最後に、位置算出部１１２は、算出した複数の３次元座標を含む位置情報を出力する。
【００８１】
ここで、ステップＳ４０２における位置算出部１１２の処理の詳細を説明する。カメラ１０１ａ及び１０１ｂで撮影された２つのカメラ画像を、それぞれＩａ及びＩｂとする。位置算出部１１２は、カメラ画像Ｉａに含まれる被写体上の点Ｐｎを撮像した点の画素座標Ｑａｎと、カメラ画像Ｉｂに含まれる当該被写体上の同一の点Ｐｎを撮像した点の画素座標Ｑｂｎとを、例えば画像の類似、後述する輝度拘束、滑らかさ拘束などに基づいて、算出する。すなわち対応する画素座標の組（Ｑａｎ，Ｑｂｎ）を算出する。画素座標の組（Ｑａｎ，Ｑｂｎ）は、２つのカメラ画像のそれぞれに含まれる画素座標の組であり且つ互いに対応する画素座標の組である。なお、カメラ画像Ｉａ含まれる点とカメラ画像Ｉｂ含まれる点とが互いに対応する場合、この対応点の組をカメラ画像Ｉａに含まれる点の画素座標とカメラ画像Ｉｂに含まれる点の画素座標との組で表現してもよい。
【００８２】
例えば、位置算出部１１２は、カメラ画像Ｉａに含まれる複数の画素のうちのｎ番目の画素について、当該画素の画素座標（ｕａｎ，ｖａｎ）を取得する。さらに、位置算出部１１２は、カメラ画像Ｉｂ上において、当該画素が表す被写体と同じ被写体上の対応点を推定し、この対応点の画素座標（ｕｂｎ，ｖｂｎ）を算出する。
【００８３】
２つのカメラ画像間の対応点の組とは、２つのカメラ画像に同一の被写体が映っている場合、すなわち、一方のカメラ画像に写っている被写体上の点が、もう一方のカメラ画像にも写っている場合の、当該２つのカメラ画像上の点の組のことである。ここでは画素座標の組で対応点の組を表す。例えば、カメラ画像の組がＩａ及びＩｂの場合、２画像間の対応点の組として、カメラ画像Ｉａ上の画素座標（ｕａｎ，ｖａｎ）に対応するカメラ画像Ｉｂ上の画素座標（ｕｂｎ，ｖｂｎ）を算出する。この画素座標の組の算出は、カメラ画像Ｉａに含まれる全ての画素について実行される。
【００８４】
カメラ画像Ｉａの画素座標（ｕａｎ，ｖａｎ）と、カメラ画像Ｉｂの画素座標（ｕｂｎ，ｖｂｎ）とが、対応点の組に含まれる２つの対応点の画素座標である場合、２つの対応点つまり２つの画素座標での画素値Ｉａ（ｕａｎ，ｖａｎ）及びＩｂ（ｕｂｎ，ｖｂｎ）が等しい。これを輝度拘束と呼ぶ。また、ある１つの被写体は、カメラ画像中の複数の隣接する画素を占めることから、カメラ画像Ｉａの画素座標（ｕａｎ，ｖａｎ）に隣接する画素で特定される点に対応するカメラ画像Ｉｂに含まれる点は、カメラ画像Ｉｂの画素座標（ｕｂｎ，ｖｂｎ）で特定される点の近くにある可能性が高い。これを滑らかさ拘束と呼ぶ。カメラ画像Ｉａ及びＩｂ間の対応点の組は、上述した輝度拘束と滑らかさ拘束との２つの条件を最もよく満たす画素座標（ｕａｎ，ｖａｎ）及び（ｕｂｎ，ｖｂｎ）の組の集まりを算出することで、得ることができる。
【００８５】
対応点の組の画素座標の組を実数精度で算出する対応点探索手法又は動き推定手法は、例えば、上記の非特許文献２等に詳しく記載されているが、既知な技術であるためその詳細な説明を省略する。
【００８６】
次に、位置算出部１１２は、各対応点の組について、カメラ画像Ｉａ及びＩｂそれぞれの対応点の組の画素座標の組［（ｕａｎ，ｖａｎ），（ｕｂｎ，ｖｂｎ）］と、予め求めておいたカメラ１０１ａ及び１０１ｂのカメラパラメタセットＣａ及びＣｂとを用いて、２つのカメラ１０１ａ及び１０１ｂについての式１と式３とを連立させて解くことにより、対応点の組に対する被写体上の点の３次元座標（ｘａｎ，ｙａｎ，ｚａｎ）を算出する。３次元座標は、カメラ１０１ａのカメラ座標系の座標値とする。
【００８７】
なお、対応点の組と２つのカメラのカメラパラメタセットとを用いて対応点の組に対する被写体上の点の３次元座標を算出する２眼ステレオ手法は、上述した方法に限るものでなく、他の方法であってもよい。他の２眼ステレオ手法は、例えば、上記の非特許文献３等に詳しく記載されているが、既知な技術であるため、その詳細な説明を省略する。
【００８８】
以降の説明を簡単にするために、カメラ画像Ｉａ及びＩｂから、対応点の組に含まれる対応点の画素座標（ｕａｎ，ｖａｎ）及び（ｕｂｎ，ｖｂｎ）を算出する処理を、下記の式８に示す関数Ｔで表す。さらに対応点の組に含まれる対応点の画素座標（ｕａｎ，ｖａｎ）及び（ｕｂｎ，ｖｂｎ）と、カメラ１０１ａ及び１０１ｂのカメラパラメタセットＣａ及びＣｂとを用いて、上記の式１〜式３により、対応点の組に対する被写体上の点の３次元座標を算出する処理を、下記の式９に示す関数Ｆで表す。
【００８９】
【数７】
2018191275.tif 000009
【００９０】
カメラ画像Ｉａ及びＩｂ間のｎ番目の対応点の組の画素座標の組と、当該対応点の組に対応する被写体上の点の３次元座標とを合わせて、ｎ番目の位置情報ｐａ，ｂ，ｎ（ｎ＝１，・・・，Ｎ）で表す。また、Ｎ個の位置情報ｐａ，ｂ，ｎの集まりをＰａ，ｂで表す（式１０）。位置情報ｐａ，ｂ，ｎは、カメラ画像Ｉａに含まれる対応点の画素座標（ｕａｎ，ｖａｎ）及びカメラ画像Ｉｂに含まれる対応点の画素座標（ｕｂｎ，ｖｂｎ）と、当該対応点の組に対応する点の３次元座標（ｘａｎ，ｙａｎ，ｚａｎ）とを含む。なお、画素座標（ｕａｎ，ｖａｎ）と画素座標（ｕｂｎ，ｖｂｎ）との組は、画素座標（ｕａｎ，ｖａｎ）で特定されるカメラ画像Ｉａに含まれる対応点と画素座標（ｕｂｎ，ｖｂｎ）で特定されるカメラ画像Ｉｂに含まれる対応点とを含む対応点の組と対応する。なお、数量Ｎは、カメラ画像Ｉａ及びＩｂの画素数と同一であってもよく、カメラ画像Ｉａ及びＩｂの画素数よりも少なくてもよい。
【００９１】
【数８】
2018191275.tif 000010
【００９２】
上述したように、位置算出部１１２は、対応点の組を複数算出し、複数の対応点の組にそれぞれ対する複数の被写体上の点の３次元座標を算出し、『「対応点の組に含まれる画素座標の組」と「対応点の組に対する被写体上の点の３次元座標」との組』を複数含む位置情報Ｐａ，ｂとして出力する。これにより、例えば、図８Ａ及び図８Ｂに示すような、カメラからの距離を濃淡で表した距離画像を得ることができる。なお、図８Ａは、カメラ画像の一例を示し、図８Ｂは、当該カメラ画像の距離画像の一例を示す。距離画像では、カメラから対象点までの距離が、画素の輝度で表現されている。
【００９３】
最後に、ステップＳ４０３では、画像生成部１１３は、カメラ画像Ｉａ及びＩｂの一方であるカメラ画像、例えばカメラ画像Ｉａと、『「対応点の組に含まれる画素座標の組」と「対応点の組に対する被写体上の点の３次元座標」との組』を複数含む位置情報｛Ｐａ，ｂ｝とを取得する。さらに、画像生成部１１３は、カメラ画像Ｉａ内において、複数の対応点によって表される障害物等の３次元物体を検出する。そして、画像生成部１１３は、例えば図９に示すように、検出した３次元物体の位置に対応するカメラ画像上の領域に、注視領域を示す枠を重畳合成して合成画像として出力する。なお、図９は、実施の形態における画像生成部１１３から出力される合成画像の例を示す模式図である。
【００９４】
画像生成部１１３において、位置情報から障害物等の３次元物体を検出する方法として、本実施の形態では、位置情報に含まれる複数点の３次元座標から、それぞれの点とカメラ１０１との距離が予め定められた距離ｄｔｈよりも小さく、且つ、地面よりも高い位置にある点を抽出し、抽出した複数の点を３次元物体とする。具体的には、画像生成部１１３は、Ｐａ，ｂに含まれるｎ番目の位置情報ｐａ，ｂ，ｎに含まれる３次元座標（ｘａｎ，ｙａｎ，ｚａｎ）から、３次元座標（ｘａｎ，ｙａｎ，ｚａｎ）とカメラ１０１ａとの距離ｄｎと、３次元座標（ｘａｎ，ｙａｎ，ｚａｎ）に対応する世界座標系の３次元座標（ｘｗｎ，ｙｗｎ，ｚｗｎ）とを算出する。そして、画像生成部１１３は、距離ｄｎが予め定められた距離ｄｔｈよりも小さく（ｄｎ＜ｄｔｈ）、且つ、世界座標系の３次元座標の高さが地面よりも高い（ｚｗｎ＞０）場合に、当該位置情報ｐａ，ｂ，ｎに含まれる３次元座標（ｘａｎ，ｙａｎ，ｚａｎ）で特定される３次元空間中の点を３次元物体上の点として抽出する。さらに、画像生成部１１３は、３次元物体上の点として検出された複数の位置情報に含まれる３次元座標値をカメラ画像Ｉａに投影した投影点の集まりを抽出し、抽出された投影点の集まりに外接する矩形状等の枠を、カメラ画像Ｉａに重畳し、合成画像を生成する。そして、画像生成部１１３は、合成画像を出力し、ディスプレイ１２０に表示させる。
【００９５】
以上のように、コンピュータ３００で実行されるステップＳ４０１〜Ｓ４０３の処理によって、画像処理部１１０は、撮像部１００で撮像された２つのカメラ画像から、３次元物体の画像と３次元物体に関する位置情報とを生成して出力する。さらに、撮像部１００及びコンピュータ３００は、上記の処理を繰り返してもよい。
【００９６】
図９には、ステップＳ４０３の処理によって生成される合成画像の例が、示されている。車体後方のカメラに近い位置にある障害物、例えば、図９の例では、歩行者及び停止車両に注意を喚起する枠が表示されるため、接触する可能性が高い障害物の存在を運転者が容易に認知できる。また、特に、複眼カメラシステム１０では、各カメラは魚眼レンズを用いていることから、１８０度のカメラ画像とカメラ画像に対応する３次元座標との取得が可能である。
【００９７】
以上のように、複眼カメラシステム１０の撮像部１００、及び、コンピュータ３００で実現される画像処理部１１０は、これらによる動作の結果、２つのカメラで撮像されたカメラ画像からカメラ画像に含まれる点に対応する被写体上の点の３次元座標を算出する。さらに、画像処理部１１０は、「対応点の組に含まれる画素座標の組」と「対応点の組に対する被写体上の点の３次元座標」との組に基づいて、カメラの視野内の障害物等の３次元物体を検出し表示することができる。その結果、複眼カメラシステム１０を搭載した自動車の運転者は、自動車の周囲の障害物等の３次元物体を容易に把握することができる。
【００９８】
［１−２−２．自己校正動作］
上述した複眼カメラシステム１０は、予め記録しておいたカメラパラメタセットを用いて被写体の３次元座標の算出をしている。一方、このカメラパラメタセットは、経年変化、外力又は温度変化等の影響を受けた場合に、変形等を生じて変わる場合がある。このような場合、カメラの校正が必要になる。以下、複眼カメラシステム１０における自己校正時の動作について、図１０及び図１１を用いて説明する。なお、図１０は、図２の複眼カメラシステム１０のカメラパラメタセット算出装置１１１の詳細な構成を示した機能的な構成図である。図１１は、実施の形態１に係る複眼カメラシステム１０の画像処理部１１０における自己校正処理Ｓ１１１の一例を表すフローチャートである。自己校正処理Ｓ１１１は、自己校正動作の際の画像処理部１１０の処理である。
【００９９】
図１０に示すように、自己校正処理Ｓ１１１を行うカメラパラメタセット算出装置１１１は、取得部９０１と、対応点算出部９０２と、評価値算出部９０３と、カメラパラメタ決定部９０４と、カメラパラメタ出力部９０５とを含む。取得部９０１と、対応点算出部９０２と、評価値算出部９０３と、カメラパラメタ決定部９０４と、カメラパラメタ出力部９０５とによる各構成要素は、画像処理部１１０の各構成要素と同様の構成を有してもよい。
【０１００】
取得部９０１は、カメラ１０１ａ及び１０１ｂそれぞれによって撮影されたカメラ画像Ｉａ及びＩｂを、撮像部１００から取得する。取得部９０１は、撮像部１００又は画像処理部１１０等が有する図示しない半導体メモリのようなメモリ等の記憶装置に格納されたカメラ画像Ｉａ及びＩｂを取得してもよい。各カメラ画像Ｉａ及びＩｂは、校正の基準となる同一の対象を含む。また、取得部９０１は、カメラ１０１ａ及び１０１ｂに現在設定されているカメラパラメタで構成される初期カメラパラメタセットを、カメラパラメタ記憶部１１４から取得する。
【０１０１】
対応点算出部９０２は、カメラ画像Ｉａ及びＩｂにおいて、互いに対応する点の組すなわち対応点の組を推定して抽出し、カメラ画像Ｉａ及びＩｂそれぞれでの対応点の画素座標を算出する。
【０１０２】
評価値算出部９０３は、対応点の画素座標及び初期カメラパラメタセットに基づき、上述したステレオ測距技術を用いて、対応点の組に対する被写体上の点の３次元座標を算出する。以降の説明において、対応点の組に対する被写体上の点を、測距点とも呼ぶ。
【０１０３】
また、評価値算出部９０３は、測距点の３次元座標をカメラ画像Ｉａ及びＩｂにそれぞれ投影した点の画素値に基づき、カメラパラメタセットの評価値を算出する。以降の説明において、測距点の３次元座標を２つのカメラ画像に投影して得られる当該２つのカメラ画像上の点をそれぞれ、投影点と呼ぶ。カメラ１０１ａで被写体を撮像して得たカメラ画像Ｉａ及びカメラ１０１ｂで被写体を撮像して得たカメラ画像Ｉｂに基づいて取得した測距点Ｐをカメラ画像Ｉａに投影した投影点を第１投影点と呼び、同一の測距点Ｐをカメラ画像Ｉｂに投影した投影点を第２投影点と呼んでもよい。
【０１０４】
カメラパラメタ決定部９０４は、評価値算出部９０３によって算出された評価値に基づき、現在、カメラ１０１ａ及び１０１ｂに設定されているカメラパラメタセットを変更すべきか否かを判定する。カメラパラメタ決定部９０４は、判定結果に基づき、カメラパラメタセットを変更つまり更新する。このように、カメラパラメタ決定部９０４は、カメラパラメタセットを決定する。カメラパラメタ出力部９０５は、カメラパラメタ決定部９０４で決定されたカメラパラメタセットを取得し、カメラパラメタ記憶部１１４等に出力する。
【０１０５】
図１１に示すように、カメラパラメタセット算出装置１１１は、ステップＳ１００１〜Ｓ１００８を含む自己校正処理Ｓ１１１を行うことによって、カメラ１０１ａ及び１０１ｂに設定されているカメラパラメタのセット、つまり、初期カメラパラメタセットを校正する。自己校正処理Ｓ１１１において、カメラパラメタセット算出装置１１１は、自動的に校正処理を行う。カメラパラメタセット算出装置１１１は、スイッチ、タッチパッド、キーボード等の図示しない入力装置を介して、ユーザによって複眼カメラシステム１０へ校正指示が入力されると、カメラ１０１ａ及び１０１ｂの自己校正処理を開始する。例えば、ユーザは、カメラ１０１ａ又は１０１ｂの異常を確認した場合、校正指示を入力してもよく、カメラ１０１ａ及び１０１ｂの製造完了後の工場出荷前に、校正指示を入力してもよい。また、カメラパラメタセット算出装置１１１は、予め設定された時期に、自己校正処理を自動的に開始してもよい。
【０１０６】
カメラパラメタセット算出装置１１１の自己校正処理Ｓ１１１の開始後、ステップＳ１００１において、取得部９０１は、カメラ１０１ａ及び１０１ｂによって撮影されたカメラ画像Ｉａ及びＩｂを取得する。さらに、ステップＳ１００２において、取得部９０１は、カメラパラメタ記憶部１１４に予め格納されているカメラ１０１ａ及び１０１ｂそれぞれの初期カメラパラメタセットＣａ０及びＣｂ０を読み込む。ここで、「予め」とは、「カメラパラメタセット算出装置１１１が自己校正処理を開始する前」であることを意味してもよい。
【０１０７】
ステップＳ１００３において、対応点算出部９０２は、取得されたカメラ１０１ａ及び１０１ｂのカメラ画像Ｉａ及びＩｂを用いて、図５に示すステップＳ４０２と同じ対応点探索手法により、２つのカメラ画像Ｉａ及びＩｂ間の対応点の組を複数組推定する。さらに、対応点算出部９０２は、カメラ画像Ｉａに含まれる対応点Ｐａｎの画素座標（ｕａｎ，ｖａｎ）及びカメラ画像Ｉｂに含まれる対応点Ｐｂｎの画素座標（ｕｂｎ，ｖｂｎ）を算出して出力する。なお、ｎは、１〜Ｎの値をとり、第ｎの対応点の組は対応点Ｐａｎ及び対応点Ｐｂｎを含む。
【０１０８】
ここで、ステップＳ１００４〜Ｓ１００７は、ステップＳ１００６での判定結果に応じて、繰り返される。そして、繰り返しの度に、カメラ１０１ａ及び１０１ｂそれぞれのカメラパラメタセットが更新される。このため、ｒ回目の繰り返し時のカメラ１０１ａ及び１０１ｂそれぞれのカメラパラメタセットを、カメラパラメタセットＣａｒ及びＣｂｒと表す。初期カメラパラメタセットの場合、ｒ＝０である。
【０１０９】
ステップＳ１００４において、評価値算出部９０３は、Ｎ個の対応点の組にそれぞれ含まれる対応点の画素座標と、カメラ１０１ａ及び１０１ｂそれぞれのカメラパラメタセットＣａｒ及びＣｂｒとを用いて、ステレオ測距技術を用いた下記の式１１により、Ｎ個の対応点の組に対応する点の３次元座標（ｘａｒｎ，ｙａｒｎ，ｚａｒｎ）を算出して出力する。つまり、評価値算出部９０３は、Ｎ個の測距点の３次元座標を算出する。
【０１１０】
【数９】
2018191275.tif 000011
【０１１１】
さらに、ステップＳ１００５において、評価値算出部９０３は、Ｎ個の測距点の３次元座標と、カメラ１０１ａ及び１０１ｂのカメラパラメタセットＣａｒ及びＣｂｒとを用いて、各測距点をカメラ１０１ａ及び１０１ｂのカメラ画像Ｉａ及びＩｂに投影する。そして、評価値算出部９０３は、各測距点について、測距点をカメラ画像Ｉａ及びカメラ画像Ｉｂそれぞれに投影して得られる第１投影点及び第２投影点を算出する。カメラ画像Ｉａ上の投影点が第１投影点、カメラ画像Ｉｂ上の投影点が第２投影点である。「測距点をカメラ画像Ｉａに投影する」とは、評価値算出部９０３が、下記の式１２により、測距点の３次元座標を、カメラ画像Ｉａの画素座標に座標変換する、ことである。「測距点をカメラ画像Ｉｂに投影する」とは、評価値算出部９０３が、下記の式１３により、測距点の３次元座標を、カメラ画像Ｉｂの画素座標に座標変換する、ことである。これにより、評価値算出部９０３は、測距点をカメラ画像Ｉａに投影した投影点の画素座標（ｕａｒｎ，ｖａｒｎ）、及び、同一の測距点をカメラ画像Ｉｂに投影した投影点の画素座標（ｕｂｒｎ，ｖｂｒｎ）を、各測距点について算出する。式１２における関数Ｇは、上記式１〜式３及び式５に基づく、測距点の３次元座標からカメラ画像Ｉａの画素座標への座標変換を示す。式１３における関数Ｈは、上記式１〜式３及び式５に基づく、測距点の３次元座標からカメラ画像Ｉｂの画素座標への座標変換を示す。
【０１１２】
【数１０】
2018191275.tif 000012
【０１１３】
さらに、評価値算出部９０３は、カメラ画像Ｉａ及びＩｂと、カメラパラメタセットＣａｒ及びＣｂｒとを用いて、測距点をカメラ画像Ｉａに投影した第１投影点の画素値ｉａｒと、同一の測距点をカメラ画像Ｉｂに投射した第２投影点の画素値ｉｂｒとを算出する。例えば、第１投影点の画素座標を（ｕａｒｎ，ｖａｒｎ）とし、第２投影点の画素座標を（ｕｂｒｎ，ｖｂｒｎ）とすると、第１投影点の画素値ｉａｒは、Ｉａ（ｕａｒｎ，ｖａｒｎ）と表され、第２投影点の画素値ｉｂｒは、Ｉｂ（ｕｂｒｎ，ｖｂｒｎ）と表される。
【０１１４】
なお、評価値算出部９０３は、測距点をカメラ画像Ｉａに投影した投影点の座標値と、同一の測距点をカメラ画像Ｉｂに投影した投影点の座標値とを、各測距点について算出する。そして、評価値算出部９０３は、カメラ画像Ｉａ上の投影点の画素値ｉａｒとカメラ画像Ｉｂ上の投影点の画素値ｉｂｒとの差の絶対値の総和で定義される評価値Ｊを、下記の式１４に示す評価関数に基づき算出する。なお、式１４において、Ｎは、測距点の数量である。
【０１１５】
【数１１】
2018191275.tif 000013
【０１１６】
また、本実施の形態では、画素値は、画素の輝度値である。実数精度の画素座標に対し、画素値はバイキュービック補間で算出される。なお、画素値は輝度値に限定するものではなく、輝度値の代わりにＲＧＢ値を用いてもよい。また、実数精度の画素座標に対する画素値の算出方法は、バイキュービック補間に限定されるものではなく、バイリニア補間など他の補間方法であってもよい。また、評価値Ｊの計算における各測距点に対応するカメラ画像Ｉａ上の投影点の画素値とカメラ画像Ｉｂ上の投影点の画素値との差の絶対値を加算した値を算出する際に、画素値の差の絶対値に重みを付けてもよい。例えば、被写体の色が連続的に変化する点群の重みを大きくしてもよく、被写体の表面の凹凸が大きい点群の重みを小さくしてもよい。これらの重み付けは、カメラパラメタの連続的な変化に対し、評価値Ｊの変化を滑らかにし、評価値Ｊを最小化し易くする効果が期待できる。
【０１１７】
次に、ステップＳ１００６において、カメラパラメタ決定部９０４は、カメラ１０１ａ及び１０１ｂのカメラパラメタセットＣａｒ及びＣｂｒの更新の終了条件が満たされているか否かを判定する。終了条件が満たされていない場合（ステップＳ１００６でＮＯ）、カメラパラメタ決定部９０４は、カメラパラメタセットＣａｒ及びＣｂｒを変更するために、ステップＳ１００７の処理に進む。終了条件が満たされている場合（ステップＳ１００６でＹＥＳ）、カメラパラメタ決定部９０４は、カメラパラメタセットの更新の終了をして、更新されて最新の状態のカメラパラメタセットＣａｒ及びＣｂｒを、カメラ１０１ａ及び１０１ｂのカメラパラメタセットに決定して出力し、ステップＳ１００８の処理に進む。なお、終了条件は、カメラパラメタの所与の探索範囲内の探索が完了していること、評価値Ｊが第一閾値未満であること、及び、ステップＳ１００４〜Ｓ１００７の繰り返し回数ｒが第二閾値よりも大きいことの少なくとも１つである。
【０１１８】
ステップＳ１００７において、カメラパラメタ決定部９０４は、ｒ＋１回目のカメラパラメタセットの変更、つまり更新を行う。具体的には、カメラパラメタ決定部９０４は、カメラ１０１ａ及び１０１ｂのカメラパラメタセットＣａｒ及びＣｂｒを所与の範囲で変更し、新たなカメラパラメタセットＣａｒ＋１及びＣｂｒ＋１を算出する。カメラパラメタ決定部９０４は、カメラパラメタセットＣａｒ＋１及びＣｂｒ＋１を出力し、ステップＳ１００４の処理に進む。これにより、ステップＳ１００４〜Ｓ１００７によるｒ＋１回目の一連の反復処理が行われる。なお、カメラパラメタの探索範囲は、予め設定された各カメラパラメタが取り得る範囲であってもよい。例えば、探索範囲は、全て初期カメラパラメタの±５％であってもよい。
【０１１９】
ステップＳ１００８において、カメラパラメタ出力部９０５は、上述したステップＳ１００４〜ステップＳ１００７の反復処理によって算出されたカメラパラメタセットと、当該カメラパラメタセットに対応する評価値Ｊとによる複数の組を取得する。カメラパラメタセットに対応する評価値Ｊは、当該カメラパラメタセットを用いて算出された評価値である。カメラパラメタ出力部９０５は、複数組のカメラパラメタセット及び評価値Ｊから、評価値Ｊが最小である組のカメラパラメタセットを選択する。さらに、カメラパラメタ出力部９０５は、選択したカメラパラメタセットに対応する評価値Ｊが、初期カメラパラメタセットに対応する評価値Ｊよりも小さい場合に、カメラパラメタ記憶部１１４に記憶された初期カメラパラメタセットを、選択したカメラパラメタセットで置き換える。このように、カメラパラメタセットが最適なカメラパラメタセットに更新される。また、上述したステップＳ１００２〜Ｓ１００８の動作を、下記の式１５に表すことができる。なお、ステップＳ１００１〜Ｓ１００８の処理は、図４のコンピュータ３００で実行されてもよい。
【０１２０】
【数１２】
2018191275.tif 000014
【０１２１】
以上のように、カメラパラメタセット算出装置１１１は、自己校正処理Ｓ１１１により、カメラ１０１ａ及び１０１ｂのカメラ画像からステレオ測距により複数の対応点の組のそれぞれに対応する測距点の３次元座標を算出する。さらに、カメラパラメタセット算出装置１１１は、測距点をカメラ画像Ｉａに投影した第１投影点の画素座標及び同一の測距点をカメラ画像Ｉｂに投影した第２投影点の画素座標を算出し、第１投影点の画素値と第２投影点の画素値との差に基づいて評価値を算出する。カメラパラメタセット算出装置１１１は、この評価値を最小にするカメラ１０１ａ及び１０１ｂのカメラパラメタセットＣａｒ及びＣｂｒを算出することで、正解値又は正解値との誤差の小さいカメラパラメタセットを得ることができる。
【０１２２】
［１−３．自己校正処理の効果の検証］
以下、上述したカメラパラメタセット算出装置１１１の自己校正処理Ｓ１１１が、カメラ１０１ａ及び１０１ｂのカメラパラメタを正確に算出することが可能であることを、シミュレーションによる実験結果をもとに検証し説明する。
【０１２３】
上記の式１４に示す評価値Ｊの評価関数に基づいて、カメラパラメタの正解値に対する誤差を小さくするカメラパラメタを算出するためには、式１４の評価関数が以下の２つの条件を満たす必要がある。
（ｉ）カメラパラメタが正解値である場合に、評価値Ｊも最小であること
（ｉｉ）カメラパラメタの正解値の近傍で、評価関数が下に凸の線形を形成すること
【０１２４】
カメラ１０１ａ及び１０１ｂで撮影されるカメラ画像として、図１２Ａ及び図１２Ｂのカメラ画像が入力された場合を例に、式１４の評価値Ｊの評価関数が、上述の２つの条件（ｉ）及び（ｉｉ）を満たしていることを、以下の実験結果により示す。
【０１２５】
（実験条件１）
実験条件１では、カメラのカメラパラメタの１つを変更しつつ評価値を算出し、評価値の算出結果と、予め既知であるカメラパラメタの正解値とを比較する実験を行った。各カメラ１０１ａ及び１０１ｂのカメラパラメタセットのうち、内部パラメタセットは、上記の式４の等距離射影モデルに従って、カメラの光軸中心の画素座標（ｃｕ，ｃｖ）、カメラの焦点距離ｆ、カメラの撮像素子１画素分のｘ方向及びｙ方向それぞれの長さｄｐｘ及びｄｐｙの計５個のパラメタを含む。外部パラメタセットＭは、上記の式１及び式２と同様の下記の式１６のように示される。外部パラメタセットＭは、カメラ座標系の世界座標系に対する具体的な変位量として、Ｘ、Ｙ及びＺの各軸周りの回転量ＲＸ、ＲＹ及びＲＺと、Ｘ、Ｙ及びＺの各軸方向の並進量ＴＸ、ＴＹ及びＴＺの計６個のパラメタを含む。２台のカメラ１０１ａ及び１０１ｂのカメラパラメタセットには、合計２２個のパラメタが含まれる。なお、Ｘ軸、Ｙ軸及びＺ軸は、世界座標系の基準軸である。
【０１２６】
【数１３】
2018191275.tif 000015
【０１２７】
ここで、ｄｐｘとｆ、及び、ｄｐｙとｆは、スケールの不定性により一意に求める事ができないため、ｄｐｙを設計値（一定）とする。また、図７Ａのように設置された２つのカメラのカメラ画像を用いる場合、２つのカメラのカメラパラメタにおける基線長方向（例えば、Ｘ軸方向）の並行移動量ＴＸについても、スケールの不定性により一意に求めることができないため、ＴＸは設計値（一定）とする。これにより、評価値Ｊは、ｃｕ、ｃｖ、ｆ、ｄｐｘ、ＲＸ、ＲＹ、ＲＺ、ＴＹ及びＴＺによる各カメラで９個のカメラパラメタを変数とする関数となる。
【０１２８】
実験に用いた画像が図１２Ａ及び図１２Ｂに示されている。図１２Ａ及び図１２Ｂは、駐車場のシーンのカメラ画像の例であり、コンピュータグラフィックス（ＣＧ）で生成した。図１２Ａに示す画像及び図１２Ｂに示す画像はそれぞれ、カメラ１０１ａ及び１０１ｂのカメラ画像である。本実験では、対応点算出部９０２によって、図１２Ａのカメラ画像及び図１２Ｂのカメラ画像のそれぞれに含まれる点であって且つ互いに対応する点の組、すなわち、対応点の組を算出する代わりに、予め既知である対応点の組の正解値を用いた。
【０１２９】
対応点の組の正解値を入力値として、カメラ１０１ａ及び１０１ｂの全てのカメラパラメタを正解値である設計値に設定したのち、カメラ１０１ｂの１つのカメラパラメタのみを変えた場合の評価値Ｊを算出した。
【０１３０】
（実験結果１）
上記の実験条件１による実験結果１を説明する。具体的には、９個のカメラパラメタについて、正解値近傍での評価値が、図１３Ａ〜図１５Ｂに示すように得られた。各図中の横軸が各カメラパラメタの値を示し、縦軸が評価値Ｊを示す。変化させるカメラパラメタはそれぞれ、図１３Ａではｃｕ、図１３Ｂではｃｖ、図１３Ｃではｆ、図１３Ｄではｄｐｘ、図１４ＡではＲＸ、図１４ＢではＲＹ、図１４ＣではＲＺ、図１５ＡではＴＹ、図１５ＢではＴＺである。
【０１３１】
また、各カメラパラメタの正解値は、ｃｕでは６４０ｐｉｘｅｌ、ｃｖでは４８０ｐｉｘｅｌ、ｆでは１．１２ｍｍ、ｄｐｘでは２．７５μｍ、ＲＸでは０°、ＲＹでは０°、ＲＺでは０°、ＴＹでは０ｍｍ、ＴＺでは０ｍｍである。各図中の横軸の中央部がカメラパラメタの正解値である。
【０１３２】
図１３Ａ〜図１５Ｂのいずれにおいても、カメラパラメタの正解値の近傍（横軸の中央部）で評価関数は下に凸の線形を描き、且つ、評価値が最小となるカメラパラメタは正解値と一致していることがわかる。このことから、図１３Ａ〜図１５Ｂで示すカメラパラメタの範囲において、評価値Ｊが最小となるカメラパラメタを算出できると言える。言い換えると、本方式によるカメラ校正が可能である。
【０１３３】
例えば、図１３Ａに関して、ｃｕの６３４〜６４６ｐｉｘｅｌの範囲において、ｃｕを一定の間隔又はランダムな間隔で増減させながら評価値が算出される。さらに、算出された評価値の中で、評価値が最小となるカメラパラメタｃｕ、又は評価値が十分小さいパラメタｃｕが、最適値として決定される。このように決定されたカメラパラメタｃｕは、正解値である又は正解値との誤差が小さいカメラパラメタである。
【０１３４】
以上のことから、式１４の評価関数が、正解値の近傍で上述の２つの条件（ｉ）及び（ｉｉ）を満たしていることが、実験条件１の実験例により示される。
【０１３５】
（実験条件２）
実験条件２では、本開示のカメラパラメタセット算出装置１１１を用いて自己校正処理Ｓ１１１を実施することにより、誤差を小さくするようにカメラパラメタを算出し、算出結果を検証する実験を行った。
【０１３６】
本実験では、図１２Ａ及び図１２Ｂに示される２つのカメラ画像がカメラパラメタセット算出装置１１１に入力され、２つのカメラ画像間の対応点の組には、実験条件１と同様に、予め既知である正解値が用いられた。また、カメラ１０１ａ及び１０１ｂの全てのカメラパラメタを正解値である設計値に設定したのち、カメラ１０１ｂの９つのカメラパラメタについて所定の範囲内のランダムノイズを加算し、加算後のカメラパラメタを初期カメラパラメタとした。カメラ１０１ｂの９つのパラメタのうち１つのパラメタのみを、所定の範囲内で変化させつつ評価値を算出し、算出された評価値の中で、評価値が最小となるカメラパラメタを最適値に決定する。この処理を９つのカメラパラメタに対して順に繰り返す処理を１回の試行として、さらに複数回の試行を繰り返した。
【０１３７】
（実験結果２）
上記の実験条件２による実験結果２を説明する。具体的には、実験結果２の例が、図１６Ａ及び図１６Ｂに示すように得られた。図１６Ａでは、横軸が試行回数を示し、縦軸が式１４の評価値Ｊを示す。つまり、図１６Ａは、横軸の回数での試行を実施して得られたカメラパラメタを用いて算出した評価値が、縦軸の値で示されている。図１６Ｂでは、横軸が試行回数を示し、縦軸が再投影誤差のＲＭＳ値を示す。再投影誤差とは、算出したカメラパラメタが、式１と式３とを満たす度合いを表す。具体的には、カメラ１０１ｂのカメラ画像Ｉｂに映った被写体上の３次元座標とその画素座標との組の正解値が既知である場合に、算出したカメラ１０１ｂのカメラパラメタを用いて、正解の３次元座標をカメラ画像Ｉｂ上に投影した画素座標を算出し、算出した画素座標と正解の画素座標との差を、再投影誤差と呼ぶ。すなわち、再投影誤差が小さいほど、式１及び式３を満たすような、正解との誤差が小さいカメラパラメタであることを表す。図１６Ａ及び図１６Ｂのいずれにおいても、試行回数が増えるほど評価値が小さくなる。よって、２つのカメラ画像の投影点における画素値の差が小さくなる。同時に、試行回数が増えるほど再投影誤差も小さくなっている。
【０１３８】
以上のことから、本開示のカメラパラメタセット算出装置１１１による自己校正処理Ｓ１１１によって、再投影誤差が小さい、すなわち、式１及び式３をよく満たし且つ正解値との誤差の小さいカメラパラメタを算出できているといえる。
【０１３９】
以上のことから、自己校正処理Ｓ１１１によって得られた、上記の式１４の評価値Ｊを最小にするカメラパラメタは、少なくとも評価値Ｊの評価関数が前述の２つの条件（ｉ）及び（ｉｉ）を満たす場合に、正解値、又は誤差の小さいカメラパラメタであると言える。すなわち、カメラパラメタセット算出装置１１１によるステップＳ１００１〜ステップＳ１００８の処理によって、カメラ１０１ａ及び１０１ｂの２つのカメラ画像と初期カメラパラメタセットとを用いて、カメラ１０１ａ及び１０１ｂの正確なカメラパラメタを算出して更新できるという効果がある。
【０１４０】
従来の校正技術では、３次元座標と画素座標との対応が既知である複数の基準点を用いるため、校正指標を備える設備等が必要にある。これに対し、本実施の形態に係るカメラパラメタセット算出装置１１１は、２つのカメラのカメラ画像を用いて対応点の組を抽出し、抽出された対応点の組に対する被写体上の点の３次元座標を算出し、さらに３次元座標を用いて各カメラのカメラ画像における対応点の組に含まれる対応点の投影点を算出する。カメラパラメタが正しい場合、２つのカメラ画像の投影点の画素値は一致し、カメラパラメタの誤差が大きいほど２つのカメラ画像の投影点の画素値の差が大きくなる。そこで、カメラパラメタセット算出装置１１１は、２つのカメラ画像の投影点の画素値の差を最小にするカメラパラメタを算出することで、最適つまり正解のカメラパラメタを算出する。これにより、カメラパラメタセット算出装置１１１は、３次元座標と画素座標との対応が既知である基準点、つまり校正指標を備える設備等がなくても、カメラの校正を可能にするという効果を奏する。
【０１４１】
［実施の形態２］
実施の形態２に係る複眼カメラシステム２０は、そのカメラパラメタセット算出装置２１１が、実施の形態１における対応点算出部９０２の代わりに３次元点群算出部９０６を備える点で、実施の形態１と異なる。以下、実施の形態２に係る複眼カメラシステム２０について、実施の形態１と異なる点を中心に説明する。
【０１４２】
図１７を参照すると、実施の形態２に係る複眼カメラシステム２０における画像処理部２１０のカメラパラメタセット算出装置２１１の機能的な構成を示す模式図が示されている。画像処理部２１０は、カメラパラメタセット算出装置２１１、位置算出部１１２、画像生成部１１３及びカメラパラメタ記憶部１１４を備える。カメラパラメタセット算出装置２１１は、取得部９０１、３次元点群算出部９０６、評価値算出部９０３、カメラパラメタ決定部９０４及びカメラパラメタ出力部９０５を含む。
【０１４３】
３次元点群算出部９０６は、カメラ１０１ａ及び１０１ｂの一方によって撮影されたカメラ画像において、所定領域を示す点の３次元座標を算出する。つまり、３次元点群算出部９０６は、所定の領域を示す３次元点群を算出し出力する。所定領域は、カメラ１０１ａ及び１０１ｂに対する位置情報が、仮定により定められている領域であり、所定領域に対応する３次元空間における領域の位置が不動であってもよい。具体的には、所定領域に対応する３次元空間における領域は、カメラ１０１ａ及び１０１ｂから十分に離れた不動な領域であってもよく、例えば、空の領域であってもよい。所定領域に対応する３次元空間における領域は、カメラ１０１ａ及び１０１ｂに対する位置が、実際の計測値ではなく仮定により設定できるような不動な領域であってもよく、例えば、路面、地面、構造物の天井面、又は、構造物の壁面の３次元空間内で平面を形成する被写体の領域であってもよい。３次元点群算出部９０６は、カメラ画像上の画素が所定領域に含まれるか否かを、例えば、画素の輝度、又はテクスチャに基づき判定し得る。さらに、３次元点群算出部９０６は、所定領域が空を撮像した領域、路面を撮像した領域、地面を撮像した領域、構造物の天井面を撮像した領域、構造物の壁面を撮像した領域等のいずれであるか、つまり所定領域の種類を、例えば、画素の輝度、又は、テクスチャに基づき判定し得る。ここで、所定領域は、所定部分の一例である。所定領域は、点であってもよく、１つの画素程度の面積を有する部分であってもよく、複数の画素を含むような面積を有する部分であってもよい。あるカメラ画像において、仮定の３次元位置情報が設定された所定領域を、当該画像中の所定部分とも呼ぶ。同様に、あるカメラ画像において、所定領域以外の領域を、当該画像中の所定外部分とも呼ぶ。
【０１４４】
次いで、図１７〜図１９を用いて、実施の形態２に係る複眼カメラシステム２０の自己校正の動作を説明する。なお、図１８は、実施の形態２に係る画像処理部２１０の自己校正時の動作の流れの一例を示すフローチャートである。図１９は、図１８における３次元点群を算出する処理であるステップＳ２００３の処理の流れの詳細の一例を示すフローチャートである。図１８における自己校正処理Ｓ２１１は、自己校正動作の際の画像処理部２１０の処理である。
【０１４５】
例えば、実施の形態１における自己校正処理Ｓ１１１では、ステップＳ１００３及びＳ１００４において、カメラ１０１ａ及び１０１ｂの２つのカメラ画像間で、Ｎ組の対応点の組のそれぞれに含まれる対応点の画素座標（ｕａｎ，ｖａｎ）及び対応点の画素座標（ｕｂｎ，ｖｂｎ）が算出されていた。さらに、それぞれの対応点の組に含まれる対応点の画素座標と、カメラ１０１ａ及び１０１ｂのカメラパラメタセットＣａｒ及びＣｂｒとを用いて、測距点の３次元座標（ｘａｒｎ，ｙａｒｎ，ｚａｒｎ）が算出されていた。しかしながら、実施の形態２における自己校正処理Ｓ２１１では、２つのカメラ画像間で推定された対応点の組を用いてその対応点の組に対応する３次元座標を算出する代わりに、位置情報が仮定により設定された領域が用いられる。例えば、位置情報が仮定により設定された領域は、所定領域に関して上述した領域で例示される。
【０１４６】
図１８に示すように、自己校正処理Ｓ２１１は、３次元点群を算出するステップＳ２００３の処理を除き、自己校正処理Ｓ１１１と同様のステップＳ１００１、１００２及びＳ１００５〜Ｓ１００８の処理を含む。ステップＳ２００３の処理は、ステップＳ１００２とステップＳ１００５との間で行われる。さらに、自己校正処理Ｓ２１１では、ステップＳ１００７の処理の後、ステップＳ２００３の処理が行われる。カメラパラメタを更新するために、自己校正処理Ｓ１１１では、ステップＳ１００４〜Ｓ１００７の処理が繰り返されていたが、自己校正処理Ｓ２１１では、ステップＳ２００３及びＳ１００５〜Ｓ１００７の処理が繰り返される。
【０１４７】
具体的には、自己校正処理Ｓ２１１では、ステップＳ１００１及びＳ１００２において、カメラパラメタセット算出装置２１１の取得部９０１が、カメラ１０１ａ及び１０１ｂによって撮影されたカメラ画像Ｉａ及びＩｂと、カメラ１０１ａ及び１０１ｂそれぞれの初期カメラパラメタセットＣａ０及びＣｂ０とを取得する。カメラ画像Ｉａ及びＩｂは、同じの被写体を撮影して得られた画像である。次いで、ステップＳ２００３において、カメラパラメタセット算出装置２１１の３次元点群算出部９０６は、カメラ１０１ａ及び１０１ｂの一方で撮影されたカメラ画像において、所定領域を示す３次元点群を算出し出力する。その後、カメラパラメタセット算出装置２１１は、ステップＳ１００５〜Ｓ１００８の処理を行う。
【０１４８】
ここで、図１９を参照して、自己校正処理Ｓ２１１におけるステップＳ２００３の処理の詳細を説明する。以下の説明では、カメラ１０１ａのカメラ画像Ｉａの各画素に対応する３次元座標を算出して、３次元点群を出力する場合の動作について示す。なお、カメラ１０１ｂのカメラ画像Ｉｂを用いてカメラ画像Ｉｂの各画素に対応する３次元座標を算出して、３次元点群を出力する場合の動作は、カメラ画像Ｉａを用いてカメラ画像Ｉａの各画素に対応する３次元座標を算出して、３次元点群を出力する場合の動作と同様に説明できる。
【０１４９】
まず、ステップＳ２１０１において、３次元点群算出部９０６は、ステップＳ１００１で取得されたカメラ１０１ａ及び１０１ｂのそれぞれのカメラ画像Ｉａ及びＩｂと、カメラ１０１ａ及び１０１ｂのカメラパラメタセットＣａｒ及びＣｂｒとを読み込む。カメラパラメタセットＣａｒ及びＣｂｒは、図１８のステップＳ２００３及びＳ１００５〜Ｓ１００７の反復がｒ回目であるときのカメラパラメタセットである。ステップＳ１００２で取得された初期カメラパラメタセットは、カメラパラメタセットＣａ０及びＣｂ０である。
【０１５０】
３次元点群算出部９０６は、カメラ画像Ｉａのｍ番目の画素に対して、以降のステップＳ２１０２〜Ｓ２１０６の処理を行う。３次元点群算出部９０６は、カメラ画像Ｉａに含まれるＭ個の画素全てに対して、ステップＳ２１０２〜Ｓ２１０６の処理を順次実施し、それにより、Ｍ個の３次元座標を算出する。
【０１５１】
ステップＳ２１０２において、３次元点群算出部９０６は、カメラ画像Ｉａのｍ番目の画素について、パターン認識手法を用いて、所定領域に該当する画素であるか否かを判定する。画像中での上述したような所定領域の抽出、例えば、空を撮像した領域の抽出及び路面を撮像した領域の抽出は、パターン認識手法を含めて既知の様々な手法を用いて実現可能である。例えば、上記の非特許文献４に、そのような抽出手法が開示されているが、その詳細な説明を省略する。そして、３次元点群算出部９０６は、Ｍ個全ての画素について、所定領域に該当するか否かを判定する。３次元点群算出部９０６は、所定領域に該当する画素（ステップＳ２１０２でＹＥＳ）については、ステップＳ２１０５の処理を行い、所定領域に該当しない画素（ステップＳ２１０２でＮＯ）については、ステップＳ２１０３及びＳ２０１４の処理を行う。
【０１５２】
図２０に、ステップＳ２１０２において、カメラ１０１ａのカメラ画像Ｉａの各画素が所定領域に該当するか否かを判定した結果の一例を示す。なお、図２０は、実施の形態２に係るカメラパラメタセット算出装置２１１によって抽出される所定領域Ｐの一例を示す図である。図２０における（Ａ）は、カメラ１０１ａのカメラ画像Ｉａを示す図であり、図２０における（Ｂ）は、当該カメラ画像Ｉａにおける所定領域に該当する画素領域を示す図である。カメラ画像Ｉａからは、当該画素領域として、斜線でハッチ付けされた空領域Ｓと、縦線でハッチ付けされたアスファルトの路面領域Ｇとが抽出されている。以降、説明を簡単にするために、空領域Ｓ及び路面領域Ｇをあわせて所定領域Ｐと呼ぶこともある。
【０１５３】
３次元点群算出部９０６は、所定領域Ｐとして判定された画素それぞれについて、ステップＳ２１０５の処理により、それらの３次元座標を算出する。３次元点群算出部９０６は、所定領域Ｐとして判定されなかった画素それぞれについて、ステップＳ２１０３及びＳ２１０４の処理により、それらの３次元座標を算出する。以降の説明において、所定領域Ｐとして判定された画素を域内画素と呼び、所定領域Ｐとして判定されなかった画素を域外画素と呼ぶ。カメラ画像に所定領域Ｐが含まれない場合、全ての画素が域外画素である。
【０１５４】
ステップＳ２１０３では、３次元点群算出部９０６は、所定領域Ｐとして判定されなかったカメラ画像Ｉａの域外画素を第１対応点とし、当該第１対応点に対応するカメラ画像Ｉｂ上の第２対応点を、実施の形態１のステップＳ１００３での対応点探索手法と同様の手法により推定する。つまり、３次元点群算出部９０６は、「カメラ画像Ｉａの域外画素」と、「カメラ画像Ｉｂ上の画素であってカメラ画像Ｉａの域外画素に対応する画素」との組を推定する。そして、３次元点群算出部９０６は、各域外画素に位置する対応点ついて、画像Ｉａ及びＩｂでの画素座標（ｕａｍｑ，ｖａｍｑ）及び（ｕｂｍｑ，ｖｂｍｑ）を算出する。つまり、域外画素の画素座標（ｕａｍｑ，ｖａｍｑ）及び画素座標（ｕｂｍｑ，ｖｂｍｑ）を含む画素座標の組を算出する。画素座標（ｕａｍｑ，ｖａｍｑ）は、カメラ画像Ｉａの域外画素におけるｍｑ番目の域外画素の画素座標を示す。
【０１５５】
ステップＳ２１０４では、３次元点群算出部９０６は、域外画素の画素座標を含む画素座標の組［（ｕａｍｑ，ｖａｍｑ），（ｕｂｍｑ，ｖｂｍｑ）］と、カメラ１０１ａ及び１０１ｂのカメラパラメタセットＣａｒ及びＣｂｒとを用いて、上記の式１１により域外画素の画素座標を含む画素座標の組［（ｕａｍｑ，ｖａｍｑ），（ｕｂｍｑ，ｖｂｍｑ）］に対する３次元座標（ｘａｒｍｑ，ｙａｒｍｑ，ｚａｒｍｑ）を算出する。よって、ステップＳ２１０３及びＳ２０１４の処理は、実施の形態１におけるステップＳ１００３及びＳ１００４の処理と同様である。
【０１５６】
また、ステップＳ２１０５では、３次元点群算出部９０６は、所定領域Ｐとして判定された域内画素それぞれの３次元座標（ｘａｒｍｐ，ｙａｒｍｐ，ｚａｒｍｐ）を算出する。３次元座標（ｘａｒｍｐ，ｙａｒｍｐ，ｚａｒｍｐ）は、カメラ画像Ｉａの域内画素におけるｍｐ番目の域内画素の３次元座標を示す。３次元点群算出部９０６は、所定領域Ｐ内の全ての域内画素の３次元座標を算出する。例えば、空領域Ｓの域内画素については、空とカメラ１０１ａとの距離が十分遠いと仮定することに基づき、３次元座標が算出される。また、路面領域Ｇの域内画素については、域内画素の被写体つまり路面が、３次元空間内の所定の平面上であると仮定することに基づき、３次元座標が算出される。
【０１５７】
空領域Ｓの域内画素の３次元座標は、カメラ画像Ｉａにおける域内画素の画素座標が（ｕａｍｐ，ｖａｍｐ）であり、カメラ１０１ａのカメラパラメタセットがＣａｒであるとき、上記の式１〜式３において、例えばｚｅ＝１００００［ｍ］のように、カメラ座標系での空の高さ位置ｚｅを非常に大きな値に仮定して決定することで、算出され得る。路面領域Ｇの域内画素の３次元座標は、カメラ画像Ｉａにおける域内画素の画素座標が（ｕａｍｐ，ｖａｍｐ）であり、カメラ１０１ａのカメラパラメタセットがＣａｒであるとき、上記の式１〜式３において、例えば、ｚｗ＝０［ｍ］のように、世界座標系での略水平な路面の高さ位置ｚｗを所定の位置に仮定して決定することで、算出され得る。上述のように仮定された空領域Ｓの高さ位置ｚｅ及び路面領域Ｇの高さ位置ｚｗは、所定領域Ｐの仮定の３次元位置情報の一例である。仮定の３次元位置情報は、下記に示すように、様々な位置情報が適用されてもよい。
【０１５８】
なお、空とカメラとの距離が十分遠いという仮定に基づき空領域Ｓの３次元座標を算出する場合、空とカメラとの距離の一例として、ｚｅ＝１００００［ｍ］を採用したが、空とカメラとの距離は、これに限定されない。空とカメラとの距離は、カメラ１０１ａとカメラ１０１ｂとの間の距離に対して十分に大きな値であれば他の値でもよい。また、空とカメラとの距離は、空の高さ位置ｚｅに限定されるものでなく、カメラ座標系での空の水平方向位置ｘｅ又はｙｅを用いて、設定されてもよく、ｘｅ、ｙｅ及びｚｅの少なくとも１つを用いて設定されてもよい。例えば、空とカメラとの距離は、｜ｘｅ，ｙｅ，ｚｅ｜＝１００００［ｍ］である、つまり、カメラから空上の点（ｘｅ，ｙｅ，ｚｅ）までの距離が１００００［ｍ］であるとしてもよい。
【０１５９】
ステップＳ２１０４及びＳ２１０５に続くステップＳ２１０６において、３次元点群算出部９０６は、カメラ画像Ｉａの全ての画素について、３次元座標の算出が完了したか否かを判定する。３次元点群算出部９０６は、全ての画素の３次元座標の算出が完了している場合（ステップＳ２１０６でＹＥＳ）、ステップＳ２１０７の処理に進む。３次元点群算出部９０６は、３次元座標の算出が完了していない画素がある場合（ステップＳ２１０６でＮＯ）、ステップＳ２１０２に進み、３次元座標が未算出の画素に対して、ステップＳ２１０２〜Ｓ２１０５の処理を行う。そして、３次元点群算出部９０６は、全ての画素の３次元座標を算出するまで、ステップＳ２１０２〜Ｓ２１０６の処理を繰り返す。
【０１６０】
ステップＳ２１０７では、３次元点群算出部９０６は、カメラ画像Ｉａの全ての画素の３次元座標、つまり、算出したＭ個の３次元座標（ｘａｒｍ，ｙａｒｍ，ｚａｒｍ）を出力する。なお、（ｘａｒｍ，ｙａｒｍ，ｚａｒｍ）は、（ｘａｒｍｐ，ｙａｒｍｐ，ｚａｒｍｐ）及び（ｘａｒｍｑ，ｙａｒｍｑ，ｚａｒｍｑ）を含む。
【０１６１】
上述したように、３次元点群算出部９０６は、ステップＳ２００３が含むステップＳ２１０１〜Ｓ２１０７の処理により、所定領域Ｐ及び所定領域Ｐ以外の領域についてのＭ個の点つまり測距点の３次元座標（ｘａｒｍ，ｙａｒｍ，ｚａｒｍ）を算出する。
【０１６２】
図１８を参照すると、ステップＳ２００３の後、ステップＳ１００５において、カメラパラメタセット算出装置２１１の評価値算出部９０３は、Ｍ個の測距点の３次元座標と、カメラ１０１ａ及び１０１ｂのカメラパラメタセットＣａｒ及びＣｂｒとを用いて、各測距点をカメラ画像Ｉａ及びＩｂにそれぞれ投影した投影点を算出する。評価値算出部９０３は、カメラ画像Ｉａにおける投影点（ｕａｒｍ，ｖａｒｍ）での画素値Ｉａ（ｕａｒｍ，ｖａｒｍ）及びカメラ画像Ｉｂにおける投影点（ｕｂｒｍ，ｖｂｒｎ）での画素値Ｉｂ（ｕｂｒｍ，ｖｂｒｍ）を算出する。そして、評価値算出部９０３は、画素値Ｉａ（ｕａｒｍ，ｖａｒｍ）と画素値Ｉｂ（ｕｂｒｍ，ｖｂｒｍ）との差を表す評価値Ｊを算出する。
【０１６３】
ステップＳ１００６以降の処理において、カメラパラメタセット算出装置２１１は、実施の形態１と同様にして、評価値Ｊに基づいて、評価値Ｊを最小にするカメラパラメタセットＣａｒ及びＣｂｒを求める。このようなカメラパラメタセットＣａｒ及びＣｂｒを求めることで、カメラ１０１ａ及び１０１ｂの正しいカメラパラメタセットを求めることができる。すなわち、カメラ１０１ａ及び１０１ｂの校正が可能となる。
【０１６４】
以上のように、実施の形態２に係る複眼カメラシステム２０は、カメラ１０１ａ及び１０１ｂの自己校正動作において、実施の形態１での自己校正動作と同様に、校正指標上の基準点などの３次元座標が既知の点と、当該既知の点のカメラ画像上での画素座標との対応付けを必要としない。そのため、校正指標等を備える設備が不要であるという効果がある。
【０１６５】
また、実施の形態２に係る複眼カメラシステム２０の自己校正動作では、カメラと所定領域に対応する３次元空間の領域との距離に対して、所定領域に含まれる領域の１つに対応する３次元空間の領域である空がカメラから十分遠いという仮定と、所定領域の１つである路面の領域がｚｗ＝０の平面上にあるという仮定とを適用した。これらの仮定は、時間の経過、外力の付与及び温度変化等が生じた場合でも、変わらない。このような複眼カメラシステム２０は、自己校正動作において、実施の形態１の自己校正動作と同様に、校正指標等の３次元座標が既知の特定の被写体を用いないため、特定の被写体の３次元座標が変化するような、時間の経過、外力の付与及び温度変化等が生じた場合でも、カメラを正しく校正できるという効果がある。
【０１６６】
実施の形態１に係る複眼カメラシステム１０は、自己校正動作において、対応点の組に対する３次元座標（ｘａｒｎ，ｙａｒｎ，ｚａｒｎ）を求めるために、対応点探索手法により、カメラ１０１ａ及び１０１ｂのカメラ画像間の対応点の組に含まれる対応点の画素座標（ｕａｎ，ｖａｎ）及び対応点の画素座標（ｕｂｎ，ｖｂｎ）を算出した。対応点探索手法によって推定された対応点の組に含まれる対応点の画素座標には、誤差が含まれる可能性がある。その結果、対応点の画素座標を用いて算出した対応点の組に対する３次元座標（ｘａｒｎ，ｙａｒｎ，ｚａｒｎ）にも、誤差が含まれる可能性がある。
【０１６７】
一方、実施の形態２に係る複眼カメラシステム２０は、自己校正動作において、カメラに対する距離を仮定して設定できる空領域Ｓ及び路面領域Ｇ等の所定領域Ｐを用い、カメラに対する所定領域Ｐの距離を仮定して、所定領域Ｐ内の点の３次元座標を算出した。このような仮定に基づき算出された所定領域Ｐの３次元座標は、実施の形態１のように対応点探索手法により算出された３次元座標に対して、誤差の低減が期待できる。そのため、複眼カメラシステム２０の自己校正動作は、実施の形態１の自己校正動作よりも、算出したカメラパラメタの誤差が少ない、すなわち校正精度が高いという効果がある。
【０１６８】
なお、複眼カメラシステム２０の３次元点群算出部９０６は、自己校正処理Ｓ２１１において、所定領域Ｐと、所定領域Ｐ以外の領域とを判定し、各領域の３次元座標を算出した。しかしながら、３次元点群算出部９０６は、上記２つの領域の一方のみの３次元座標を算出し、算出した３次元座標に基づき、カメラパラメタセットを算出してもよい。また、所定領域Ｐが、空領域Ｓ及び路面領域Ｇ等のカメラとの距離が異なる複数の領域を含む場合、３次元点群算出部９０６は、複数の領域の少なくとも１つの３次元座標を算出してもよい。そして、３次元点群算出部９０６は、少なくとも１つの領域の３次元座標に基づき、カメラパラメタセットを算出してもよい。又は、３次元点群算出部９０６は、所定領域Ｐ以外の領域の３次元座標も算出し、所定領域Ｐ以外の領域の３次元座標と、所定領域Ｐの少なくとも１つの領域の３次元座標とに基づき、カメラパラメタセットを算出してもよい。
【０１６９】
また、本実施の形態では、所定領域Ｐとして、空領域Ｓ及び路面領域Ｇを例示して説明したが、所定領域Ｐは、これらに限定されない。所定領域Ｐには、路面以外の平面を３次元空間内で形成する被写体が適用されてもよい。例えば、所定領域Ｐに、構造物の天井面又は壁面等が適用されてよい。
【０１７０】
所定領域Ｐに構造物の天井面が適用される場合、複眼カメラシステム２０の３次元点群算出部９０６は、カメラ画像上において、屋内駐車場又はトンネル等の構造物の天井面の領域を判定する。そして、３次元点群算出部９０６は、天井面の領域の画素の３次元位置を、世界座標系での高さ位置ｚｗ＝ｈ［ｍ］（ｈは天井の高さ）の略水平面上であると仮定して、天井面の領域の画素の３次元座標を算出してもよい。所定領域Ｐに構造物の壁面が適用される場合、３次元点群算出部９０６は、カメラ画像上において、特定の駐車場等の構造物の壁面の領域を判定する。そして、３次元点群算出部９０６は、壁面の領域の画素の３次元位置を、世界座標系での水平方向位置ｙｗ＝ｄ［ｍ］（ｄはカメラから壁面までの水平距離）の略鉛直面上であると仮定して、壁面の領域の画素の３次元座標を算出してもよい。
【０１７１】
また、複眼カメラシステム２０は、例えば、画像処理部２１０の図示しないメモリ等に、所定領域Ｐに該当する天井面又は壁面を有する構造物及びその位置情報、並びに、構造物における天井面及び壁面の位置情報を、予め記憶してもよい。そして、画像処理部２１０は、上記の位置情報に基づき、カメラ画像上において、所定領域Ｐに該当する天井面又は壁面が存在するか否かを判定してもよい。又は、画像処理部２１０は、複眼カメラシステム２０が搭載される自動車のカーナビゲーションシステムから受け取る位置情報に基づき、カメラ画像上において、所定領域Ｐに該当する天井面又は壁面が存在するか否かを判定してもよい。カーナビゲーションシステムは、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）測距器を介して、緯度、経度及び高度等の自動車の３次元位置を取得する。又は、複眼カメラシステム２０は、複眼カメラシステム２０が搭載される自動車の外部から、無線通信等の通信を介して、天井面及び壁面に関する上記情報を取得してもよい。複眼カメラシステム２０は、その所在位置に応じた、所定領域Ｐに該当する平面の位置情報を用いることで、より誤差の少ないカメラパラメタセットの算出を可能にする。
【０１７２】
また、所定領域Ｐが、空領域Ｓ、路面領域Ｇ、天井面領域及び壁面領域等のうち２つ以上の領域を含む場合、複眼カメラシステム２０の３次元点群算出部９０６は、各領域の域内画素の画素座標から３次元座標を算出する際の信頼度、つまり精度に基づき、３次元座標を算出する領域を取捨選択してもよい。例えば、３次元点群算出部９０６は、所定以上の信頼度のある領域を選択してもよい。信頼度は、各領域に仮定される３次元位置情報と、各領域の実際の位置情報との一致度等に基づいてもよい。例えば、領域が示す平面の高さ傾き等の変化の頻度が多い場合、信頼度が低くなり得る。
【０１７３】
［自己校正動作の変形例１］
実施の形態１及び２に係るカメラパラメタセット算出装置は、ユーザによる入力を、自己校正処理Ｓ１１１及びＳ２１１の開始のトリガとしていたが、これに限定されない。カメラパラメタセット算出装置は、自己校正処理Ｓ１１１及びＳ２１１の開始を、他のトリガによって自動的に開始してもよい。例えば、カメラパラメタセット算出装置は、温度センサ、衝撃センサ、タイマ等のセンサからの入力をトリガとして、自動的に自己校正を開始してもよい。
【０１７４】
例えば、図２１を参照すると、センサ部１３０を備える変形例１に係る複眼カメラシステム３０の構成を示すブロック図が示されている。複眼カメラシステム３０は、実施の形態２の複眼カメラシステム２０に加えて、温度センサ１３１、衝撃センサ１３２及びタイマ１３３を含むセンサ部１３０を備える。複眼カメラシステム３０の画像処理部３１０のカメラパラメタセット算出装置３１１は、実施の形態２のカメラパラメタセット算出装置２１１に加えて、センサ部１３０から検知情報を取得し自己校正処理の開始指令を出力するセンサ情報取得部９０７を備える。
【０１７５】
本変形例に係るカメラパラメタセット算出装置３１１は、複眼カメラシステム３０の電源投入直後に、１回の自己校正処理を、実施してもよい。なお、上記の電源投入後の実施の代わりに、カメラパラメタセット算出装置３１１は、自己校正処理を、センサ部１３０のタイマ１３３からの入力に基づいて実施してもよく、センサ部１３０の衝撃センサ１３２からの入力に基づいて実施してもよく、センサ部１３０の温度センサ１３１の入力に基づいて実施してもよい。タイマ１３３からの入力に基づいた実施は、タイマ１３３によって検知される一定の時間ごとの実施であってもよい。衝撃センサ１３２からの入力に基づく実施は、複眼カメラシステム３０が搭載された自動車に事故などによって加わる強い衝撃を衝撃センサ１３２が検知する場合に行われてもよい。なお、衝撃センサ１３２は、加速度センサで構成されてもよい。温度センサ１３１の入力に基づく実施は、複眼カメラシステム３０の周囲の温度が所定の温度になることを温度センサ１３１が検知する場合に行われてもよい。なお、実施の形態１に係る複眼カメラシステム１０が、センサ部１３０を備えるように構成されてもよく、さらに、複眼カメラシステム１０のカメラパラメタセット算出装置１１１が、センサ情報取得部９０７を備えるように構成されてもよい。
【０１７６】
［自己校正動作の変形例２］
実施の形態１及び２に係るカメラパラメタセット算出装置は、自己校正処理において、カメラ画像Ｉａ及びＩｂに基づき３次元座標を算出した測距点の全てを用いて評価値Ｊを算出した。しかしながら、評価値Ｊの算出に測距点を全て用いる必要はない。
【０１７７】
本変形例では、カメラパラメタセット算出装置は、測距点の３次元座標のうちから、画像の輝度勾配が無い又は十分小さい測距点の３次元座標を取り除く。これにより、カメラパラメタセット算出装置は、評価値Ｊの算出に用いる測距点を少なくし、評価値Ｊの算出における計算量を低減する。
【０１７８】
本変形例に係るカメラパラメタセット算出装置の自己校正処理は、ステップＳ１００５の動作を除き、実施の形態１又は２と同様である。このため、本変形例に係るステップＳ１００５の動作を説明し、その他の説明を省略する。
【０１７９】
ステップＳ１００５では、カメラパラメタセット算出装置の評価値算出部９０３は、測距点の３次元座標と、カメラ１０１ａ及び１０１ｂのカメラパラメタセットＣａｒ及びＣｂｒとを用いて、上記の式１２及び式１３により、各測距点をカメラ１０１ａ及び１０１ｂのカメラ画像Ｉａ及びＩｂそれぞれに投影した投影点の画素座標を算出する。
【０１８０】
そして、Ｋａ個の測距点が存在する場合、評価値算出部９０３は、測距点のうちから、測距点をカメラ画像Ｉａに投影した投影点の画素座標（ｕａｒ，ｖａｒ）における画素値の輝度勾配が０又は十分小さい測距点を除去する。除去される測距点が、Ｋｂ個（Ｋｂ＞又は＝０）存在する場合、評価値算出部９０３は、（Ｋａ−Ｋｂ）個の測距点の３次元座標を選択する。
【０１８１】
測距点の３次元座標（ｘａｒ，ｙａｒ，ｚａｒ）に対応する画素座標（ｕａｒ，ｖａｒ）の周りの画素値の輝度勾配が０の場合、カメラパラメタを微小変化させることで、この測距点に対応する画素座標（ｕａｒ，ｖａｒ）が微小変化しても、その画素座標の画素値Ｉａ（ｕａｒ，ｖａｒ）は変化しない。言い換えると、評価値Ｊが変化しない。そのため、この様な測距点を除去したとしても評価値Ｊには影響が無く、且つ、測距点の数が減るため、ステップＳ１００５の計算量を低減できるという効果がある。
【０１８２】
なお、ステップＳ１００５における評価値Ｊの算出に用いる測距点の削減には、他の手法が用いられてもよい。例えば、測距点のうちから、２つのカメラ１０１ａ及び１０１ｂの一方のカメラに映っていない測距点が除外されてもよい。この場合、測距点の３次元座標に対応する投影点のカメラ画像Ｉａ及びＩｂでの画素座標を算出し、２つの画素座標のうちいずれか一方がカメラ画像の不可視領域に位置する場合に、当該測距点を評価値Ｊの算出から除外してもよい。
【０１８３】
上記の式１４は、同一の測距点が２つのカメラ画像Ｉａ及びＩｂに写っている場合、測距点をカメラ画像Ｉａへ投影した投影点の画素値と、同一の測距点をカメラ画像Ｉｂへ投影した投影点の画素値との差が０になることを意味している。一方、測距点をカメラ画像Ｉａへ投影した第１投影点及び同一の測距点をカメラ画像Ｉｂへ投影した第２投影点のいずれかが、カメラ１０１ａ及び１０１ｂの遮蔽領域にある場合、撮影範囲内にあっても他の物体に遮蔽されてカメラ画像に映らない、すなわち、第１投影点と第２投影点とが同一の測距点ではなく、測距点及び投影点に誤りが含まれている可能性があることを意味している。このような第１投影点及び第２投影点は、カメラパラメタが正確な場合でも、第１投影点の画素値と第２投影点の画素値との差が０にならないため、評価値の誤差になる。そこで、ステップＳ１００５における評価値Ｊの算出に用いる測距点を削減する方法として、複数の測距点のうち、その投影点が少なくとも一方のカメラに写らない、つまり、当該カメラの不可視領域に位置する測距点を評価値の算出から除外するとしてもよい。このようにすることで、評価値の誤差を小さくできるという効果が期待できる。測距点の投影点がカメラの不可視領域にあるか否かは、前述したようなカメラの撮影範囲外となる３次元空間の範囲を規定する遮蔽情報に基づいて判定してもよい。
【０１８４】
なお、実施の形態１及び２に係るカメラパラメタセット算出装置の自己校正処理のステップＳ１００６では、評価値Ｊが第一閾値よりも小さいこと、及び、処理の繰り返し回数ｒが第二閾値よりも大きいこと等の終了条件に基づき、反復計算を終了するとしたが、反復計算の終了条件をこれに限定するものではない。例えば、他の終了条件が加わってもよい。例えば、カメラパラメタセットを変化させても評価値Ｊが変化しないことを、終了条件としてもよい。
【０１８５】
なお、カメラパラメタセット算出装置の自己校正処理は、評価値Ｊの評価関数が前述した２つの条件を満たす場合に、評価値Ｊが小さい、つまり正解値とカメラパラメタとの差が小さい、言い換えると、誤差の小さいカメラパラメタを算出して更新することができる。しかしながら、評価関数が前述した２つの条件を満たさない場合、必ずしも誤差の小さいカメラパラメタを算出できるとは限らない。例えば、カメラの撮影範囲が極端に暗く、全ての画素値が０になる場合、及び、被写体が均一色でテクスチャが全くない場合、上記の式１４の評価値Ｊは、カメラパラメタを変えてもその値は変わらず、一定値（例えば、０）となる。このようなカメラ画像をカメラパラメタセット算出装置が取得した場合、自己校正処理では、処理の反復回数ｒが第二閾値以上になるまで反復処理が終了せず、評価値は一定のままで更新されない。この際、カメラパラメタを更新しないにも関わらず、処理における計算負荷がかかる。これに対し、カメラパラメタを変化させても評価値が変化しない場合に、反復処理を終了するとすることで、計算負荷を低減できるという効果がある。
【０１８６】
［評価関数のバリエーション］
実施の形態及び変形例に係る自己校正処理において、カメラパラメタセット算出装置の自己校正処理で用いる評価値Ｊに、上記の式１４に示すように、複数の測距点それぞれに対応する画素値の差の絶対値の和に基づく評価関数が適用された。しかしながら、評価関数は、上記に限定されるものではなく、測距点に対応する２つのカメラ画像の画素値の差に基づく関数であれば、他の関数であってもよい。例えば、評価関数は、複数の測距点それぞれに対応する２つのカメラ画像の２つの画素値の差の２乗の総和を用いる評価関数でもよい。具体的には、測距点をカメラ画像Ｉａに投影した投影点での画素値と同一の測距点をカメラ画像Ｉｂに投影した投影点での画素値との差の２乗を各測距点について求めて、求めた値を加算する評価関数の例を、下記の式１７に示す。
【０１８７】
【数１４】
2018191275.tif 000016
【０１８８】
上記の式１４に示すような画素値の差の絶対値和で定義される評価値に基づいて算出されたカメラパラメタは、画素値の差がラプラス分布の場合に、真値に近い、つまり、真値に対する誤差が小さいという効果が期待できる。
【０１８９】
これに対し、上記の式１７に示すような画素値の差の２乗和で定義される評価値に基づいて算出されたカメラパラメタは、画素値の誤差がガウス分布の場合に、真値に近い、つまり、真値に対する誤差が小さいという効果が期待できる。
【０１９０】
［その他］
以上、本開示の１つ以上の態様に係るカメラパラメタセット算出装置等について、実施の形態等に基づいて説明したが、本開示は、実施の形態等に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態等に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本開示の１つ以上の態様の範囲内に含まれてもよい。
【０１９１】
実施の形態及び変形例では、撮像部１００は２つのカメラ１０１ａ及び１０１ｂで構成されるものとしたが、カメラの数量を２つに限定するものではない。本開示の自己校正のためには、撮像部１００は、少なくとも２つのカメラを備えればよく、カメラは２つ以上であればいくらでもよい。また、カメラ同士は、一体化されていてもよく、別々に配置されていてもよい。
【０１９２】
実施の形態及び変形例では、複眼カメラシステムの撮像部、画像処理部及びディスプレイは、いずれも自動車に搭載されており、画像処理部を構成するカメラパラメタセット算出装置も自動車に搭載されているものとしたが、これに限定されない。例えば、撮像部、画像処理部及びディスプレイは、自動車以外のいかなる移動体に搭載されてもよい。移動体は、自動車以外の車両、船舶、飛行体又はロボット等であってもよい。自動車以外の車両は、トラック、バス、二輪車、搬送車、鉄道、建設機械、荷役機械等であってもよい。飛行体は、航空機、ドローン等であってもよい。
【０１９３】
また、カメラパラメタセット算出装置は、自動車とネットワークで接続された別の場所に設置されているコンピュータで構成してもよい。カメラパラメタセット算出装置におけるカメラパラメタの自己校正処理は、計算負荷が大きいことから、自動車に搭載された計算能力に制約のあるコンピュータ上で実施するよりも、サーバーなどの計算能力の高いコンピュータで実施することで、計算時間がより短く、精度がより高いパラメタの算出ができる、という効果がある。
【０１９４】
また、上述したように、本開示の技術は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読取可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばＣＤ−ＲＯＭ等の不揮発性の記録媒体を含む。
【０１９５】
例えば、上記実施の形態及び変形例に係る複眼カメラシステムに含まれる各構成要素は典型的には集積回路であるＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）として実現される。これらは個別に１チップ化されてもよいし、一部又は全てを含むように１チップ化されてもよい。
【０１９６】
また、集積回路化はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、又はＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０１９７】
なお、上記実施の形態及び変形例において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、ＣＰＵ又はプロセッサなどのプログラム実行部が、ハードディスク又は半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
【０１９８】
また、上記構成要素の一部又は全部は、脱着可能なＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード又は単体のモジュールから構成されてもよい。ＩＣカード又はモジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等から構成されるコンピュータシステムである。ＩＣカード又はモジュールは、上記のＬＳＩ又はシステムＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ＩＣカード又はモジュールは、その機能を達成する。これらＩＣカード及びモジュールは、耐タンパ性を有するとしてもよい。
【０１９９】
本開示のカメラパラメタセット算出方法は、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＣＰＵ、プロセッサ、ＬＳＩなどの回路、ＩＣカード又は単体のモジュール等によって、実現されてもよい。
【０２００】
さらに、本開示の技術は、ソフトウェアプログラム又はソフトウェアプログラムからなるデジタル信号によって実現されてもよく、プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【０２０１】
また、上記で用いた序数、数量等の数字は、全て本開示の技術を具体的に説明するために例示するものであり、本開示は例示された数字に制限されない。また、構成要素間の接続関係は、本開示の技術を具体的に説明するために例示するものであり、本開示の機能を実現する接続関係はこれに限定されない。
【０２０２】
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを１つの機能ブロックとして実現したり、１つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
【産業上の利用可能性】
【０２０３】
本開示に係るカメラパラメタ算出装置等は、少なくとも２つのカメラのカメラパラメタの算出に有用である。
【符号の説明】
【０２０４】
１０，２０，３０  複眼カメラシステム
１００  撮像部
１０１，１０１ａ，１０１ｂ  カメラ
１１０，２１０，３１０  画像処理部
１１１，２１１，３１１  カメラパラメタセット算出装置
１１２  位置算出部
１１３  画像生成部
１１４  カメラパラメタ記憶部
１２０  ディスプレイ
３００  コンピュータ
３０１  ＣＰＵ
３０２  ＲＯＭ
３０３  ＲＡＭ
３０４  ＨＤＤ
３０５  ビデオ入力Ｉ／Ｆ
３０６  ビデオカード
９０１  取得部
９０２  対応点算出部
９０３  評価値算出部
９０４  カメラパラメタ決定部
９０５  カメラパラメタ出力部
９０６  ３次元点群算出部
９０７  センサ情報取得部
【図１】
2018191275.tif 000017
【図２】
2018191275.tif 000018
【図３Ａ】
2018191275.tif 000019
【図３Ｂ】
2018191275.tif 000020
【図４】
2018191275.tif 000021
【図５】
2018191275.tif 000022
【図６Ａ】
2018191275.tif 000023
【図６Ｂ】
2018191275.tif 000024
【図７Ａ】
2018191275.tif 000025
【図７Ｂ】
2018191275.tif 000026
【図８Ａ】
2018191275.tif 000027
【図８Ｂ】
2018191275.tif 000028
【図９】
2018191275.tif 000029
【図１０】
2018191275.tif 000030
【図１１】
2018191275.tif 000031
【図１２Ａ】
2018191275.tif 000032
【図１２Ｂ】
2018191275.tif 000033
【図１３Ａ】
2018191275.tif 000034
【図１３Ｂ】
2018191275.tif 000035
【図１３Ｃ】
2018191275.tif 000036
【図１３Ｄ】
2018191275.tif 000037
【図１４Ａ】
2018191275.tif 000038
【図１４Ｂ】
2018191275.tif 000039
【図１４Ｃ】
2018191275.tif 000040
【図１５Ａ】
2018191275.tif 000041
【図１５Ｂ】
2018191275.tif 000042
【図１６Ａ】
2018191275.tif 000043
【図１６Ｂ】
2018191275.tif 000044
【図１７】
2018191275.tif 000045
【図１８】
2018191275.tif 000046
【図１９】
2018191275.tif 000047
【図２０】
2018191275.tif 000048
【図２１】
2018191275.tif 000049