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