(57)【要約】【課題】任意の位置・姿勢で設置した複数のカメラを用いた場合において、被写体の輝度勾配やラインなどのエッジの影響を低減することができ、高精度に被写体の３次元情報を取得することが可能となる画像処理装置を提供する。【解決手段】共通の被写体を含む３つ以上の視差画像のうち、いずれか１つを基準画像とし、該基準画像以外の視差画像のうち１つを参照画像とし、対応点探索により被写体の３次元情報を算出する画像処理装置であって、基準画像以外の視差画像のそれぞれにおけるエピポーラ線上の輝度勾配に関して評価値を算出し、算出された評価値に基づいて参照画像を決定する決定手段を有することを特徴とする。【選択図】図５
2018032144.tif 000002
【特許請求の範囲】
【請求項１】
共通の被写体を含む３つ以上の視差画像のうち、いずれか１つを基準画像とし、該基準画像以外の視差画像のうち１つを参照画像とし、対応点探索により前記被写体の３次元情報を算出する画像処理装置であって、
前記基準画像以外の視差画像のそれぞれにおけるエピポーラ線上の輝度勾配に関して評価値を算出し、算出された評価値に基づいて前記参照画像を決定する決定手段を有することを特徴とする画像処理装置。
【請求項２】
共通の被写体を含む３つ以上の視差画像のうち、いずれか１つを基準画像とし、該基準画像以外の視差画像の全てを参照画像とし、対応点探索により前記被写体の３次元情報を算出する画像処理装置であって、
前記基準画像以外の視差画像のそれぞれにおけるエピポーラ線上の輝度勾配に関して評価値を算出し、算出された評価値に基づいて、前記被写体の３次元情報の算出に用いる各参照画像の重みを決定する決定手段を有することを特徴とする画像処理装置。
【請求項３】
前記決定手段は、前記基準画像の画素毎に決定を行うことを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記決定手段は、
前記基準画像の画素毎に、該画素に対応する前記基準画像以外の視差画像のそれぞれにおけるエピポーラ線を算出するエピポーラ線算出手段と、
前記エピポーラ線算出手段で算出されたエピポーラ線上の輝度勾配に関して前記評価値を算出する評価値算出手段と
を有することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記評価値算出手段は、前記エピポーラ線上の輝度勾配の大きさを表す値を前記評価値として算出することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記評価値算出手段は、前記エピポーラ線上の輝度勾配の方向と前記エピポーラ線の方向との類似度を表す値を前記評価値として算出することを特徴とする請求項４に記載の画像処理装置。
【請求項７】
前記評価値算出手段は、前記エピポーラ線上の輝度勾配の方向と前記エピポーラ線の方向との成す角度を前記評価値として算出することを特徴とする請求項４に記載の画像処理装置。
【請求項８】
前記画像処理装置は、前記基準画像の画素毎に、該画素の近傍における画素の対応点の探索結果に基づいて探索範囲を限定する限定手段をさらに有し、
前記評価値算出手段は、前記探索範囲における前記エピポーラ線上の輝度勾配に関して前記評価値を算出することを特徴とする請求項４乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記３次元情報は、前記基準画像を撮像するカメラから前記被写体までの距離であることを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
共通の被写体を含む３つ以上の視差画像のうち、いずれか１つを基準画像とし、該基準画像以外の視差画像のうち１つを参照画像とし、対応点探索により前記被写体の３次元情報を算出する画像処理方法であって、
前記基準画像以外の視差画像のそれぞれにおけるエピポーラ線上の輝度勾配に関して評価値を算出し、算出された評価値に基づいて前記参照画像を決定する決定工程を含むことを特徴とする画像処理方法。
【請求項１１】
共通の被写体を含む３つ以上の視差画像のうち、いずれか１つを基準画像とし、該基準画像以外の視差画像の全てを参照画像とし、対応点探索により前記被写体の３次元情報を算出する画像処理方法であって、
前記基準画像以外の視差画像のそれぞれにおけるエピポーラ線上の輝度勾配に関して評価値を算出し、算出された評価値に基づいて、前記被写体の３次元情報の算出に用いる各参照画像の重みを決定する決定工程を含むことを特徴とする画像処理方法。
【請求項１２】
コンピュータを、請求項１乃至９のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は共通の被写体を含む視差画像に基づいて対応点探索により被写体の３次元情報を推定する技術に関する。
【背景技術】
【０００２】
共通の被写体を含む視差画像に基づいて対応点探索により被写体まで距離や、被写体の形状を推定する技術が存在する。これらの技術には、ブロックマッチングによって視差画像間で対応点を探索することで視差を求め、この視差に基づいて被写体までの距離を推定するアルゴリズムが用いられる。ブロックマッチングでは、画像中のある直線に沿って対応点を探索することが一般的に行われている。このとき、探索方向と直交する方向に輝度勾配が存在する場合や、探索方向に平行なラインなどのエッジが存在する場合に、対応点の探索精度が低下することによって距離の推定精度も低下してしまうという課題があった。
【０００３】
そこで、輝度勾配やエッジなどの影響を低減する技術として、特許文献１及び特許文献２に記載の技術が知られている。特許文献１では、マイクロレンズアレイで被写体を撮像することで複数の視差画像を得る。そのうち１つの画像に対し、横方向の視差を持つ画像及び縦方向の視差を持つ画像においてそれぞれ横方向及び縦方向でブロックマッチングを行い、領域ごとに信頼度に応じて横・縦のどちらの方向のブロックマッチング結果を採用するかを決定する。また、特許文献２では、横方向及び縦方向の視差を持って設置したカメラで被写体を撮像することで横方向及び縦方向の視差を持つ画像の組を得る。そして、被写体上のエッジ方向を判別してエッジ方向とは異なる方向の視差を持つ画像の組を用いて距離を算出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１７１８５８号公報
【特許文献２】特開２０１５−２２６３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１及び特許文献２に記載の技術は、横方向及び縦方向の視差を持って設置したカメラやレンズで撮像することで得られた視差画像を用いることを前提としている。すなわち、横・縦のどちらの方向の視差を持つ視差画像を用いるかを決定することで輝度勾配やエッジなどの影響を低減する技術である。複数のカメラを任意の位置・姿勢で設置した場合には、適用することができないという課題があった。
【課題を解決するための手段】
【０００６】
本発明に係る画像処理装置は、共通の被写体を含む３つ以上の視差画像のうち、いずれか１つを基準画像とし、該基準画像以外の視差画像のうち１つを参照画像とし、対応点探索により前記被写体の３次元情報を算出する画像処理装置であって、前記基準画像以外の視差画像のそれぞれにおけるエピポーラ線上の輝度勾配に関して評価値を算出し、算出された評価値に基づいて前記参照画像を決定する決定手段を有することを特徴とする。
【発明の効果】
【０００７】
本発明によって、任意の位置・姿勢で設置した複数のカメラを用いた場合において、被写体の輝度勾配やラインなどのエッジの影響を低減することができ、高精度に被写体の３次元情報を取得することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】実施例１において複数の視点から共通の被写体を撮像する場合の様子を示す図である。
【図２】実施例１における画像処理装置の内部構成を示すブロック図である。
【図３】実施例１における画像処理装置の機能構成を示すブロック図である。
【図４】実施例１における画像処理装置の処理フローを示す図。
【図５】実施例１における参照画像決定部の機能構成を示すブロック図である。
【図６】実施例１における参照画像決定部の処理フローを示す図である。
【図７】エピポーラ線を説明するための模式図。
【図８】実施例１における対応探索範囲の決定方法を説明するための図である。
【図９】従来の距離推定技術による対応点探索を行う場合を示す図である。
【図１０】実施例１の効果を説明するための図である。
【発明を実施するための形態】
【０００９】
［実施例１］
図１は、本実施例において複数の視点から共通の被写体を撮像する場合の様子を示す図である。図１に示すように、カメラ１０１〜１０５は、それぞれ異なる任意の位置及び姿勢（視点）で被写体１０６を取り囲むように配置される。カメラ１０１〜１０５は、被写体の光情報をセンサで受光し、Ａ／Ｄ変換を施すことによってデジタル画像データを取得する。取得されたデジタル画像データは、共通の被写体１０６を含む視差画像データである。尚、本実施例では、５台のカメラを用いる場合を例として説明を行うが、カメラの数はこれに限られず、３以上の任意の数のカメラを用いることができる。または、同じカメラにより３つ以上の視点から被写体１０６を撮像することで、３つ以上の視差画像データを取得することもできる。取得された視差画像データは、画像処理装置１００に送信される。本実施例では、画像処理装置１００は、カメラ１０１〜１０５によって撮像した５枚の視差画像データを取得し、それらの視差画像データに基づいて、被写体の距離情報や、被写体の形状情報を算出する。
【００１０】
図２は、本実施例における画像処理装置１００の内部構成を示すブロック図である。画像処理装置１００は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、ＨＤＤＩ／Ｆ２０４、ＨＤＤ２０５、入力Ｉ／Ｆ２０６、出力Ｉ／Ｆ２０７、及びシステムバス２０８を有している。
【００１１】
ＣＰＵ２０１は画像処理装置１００の各構成部を制御するプロセッサであり、ＲＡＭ２０２とＲＯＭ２０３は、それぞれ画像処理装置１００で扱われる種々のデータを記憶するメモリである。ＣＰＵ２０１は、ＲＡＭ２０２をワークメモリとして、ＲＯＭ２０３に格納されたプログラムを実行し、システムバス２０８を介して画像処理装置１００の各構成部を統括的に制御する。これにより、後述する様々な処理が実行される。
【００１２】
ＨＤＤＩ／Ｆ２０４は、例えばシリアルＡＴＡ（ＳＡＴＡ）等のインタフェイスであり、二次記憶装置としてのＨＤＤ２０５を接続する。ＣＰＵ２０１は、ＨＤＤＩ／Ｆ２０４を介してＨＤＤ２０５からのデータ読み出し及びＨＤＤ２０５へのデータ書き込みを行うことが可能である。さらにＣＰＵ２０１は、ＨＤＤ２０５に格納されたデータをＲＡＭ２０２に展開し、同様に、ＲＡＭ２０２に展開されたデータをＨＤＤ２０５に保存することが可能である。そしてＣＰＵ２０１は、ＲＡＭ２０２に展開したデータをプログラムとみなし、実行することができる。尚、二次記憶装置はＨＤＤの他、光ディスクドライブ等の記憶デバイスでもよい。
【００１３】
入力Ｉ／Ｆ２０６は、例えばＵＳＢやＩＥＥＥ１３９４等のシリアルバスインタフェイスである。ＣＰＵ２０１は、入力Ｉ／Ｆ２０６を介して、カメラ１０１〜１０５、操作部２０９（例えば、マウスやキーボード）からデータを取得する。
【００１４】
出力Ｉ／Ｆ２０７は、例えばＤＶＩやＨＤＭＩ（登録商標）等の映像出力インタフェイスである。ＣＰＵ２０１は、出力Ｉ／Ｆ２０７を介して、表示部２１０（ディスプレイなどの各種出力デバイス）に、カメラ１０１〜１０５の撮像画像や、撮像画像に対し何らかの処理を行い合成した画像を表示することができる。尚、タッチパネル式のディスプレイが操作部２０９と表示部２１０を兼ねてもよい。尚、画像処理装置１００の構成要素は上記以外にも存在するが、本発明の主眼ではないので、説明を省略する。
【００１５】
次に、本実施例の画像処理装置１００におけるカメラ１０１〜１０５で撮像した視差画像から被写体１０６の距離情報を算出する処理について、図３及び図４を参照して説明する。
【００１６】
＜画像処理装置の機能構成＞
図３は、本実施例における画像処理装置１００の機能構成を示すブロック図である。視差画像取得部３０１は、カメラ１０１〜１０５で撮像した５枚の視差画像を、入力Ｉ／Ｆ２０６を介して取得する。
【００１７】
基準画像設定部３０２は、視差画像取得部３０１で取得された５枚の視差画像のうちいずれか１つを基準画像として設定する。基準画像の選択方法はどのような方法であってもよく、例えば５台のカメラのうち真ん中に配置されているカメラ１０３の撮像画像を選択してもよいし、ユーザが操作部２０９を介して選択してもよい。
【００１８】
尚、以下、基準画像を撮像したカメラを、基準カメラと呼ぶ。本実施例における画像処理装置１００は、基準カメラを基準として、被写体までの距離を被写体の３次元情報として算出する。本実施例では、基準画像の各画素に対応する被写体の３次元情報を算出するためには、別のカメラで撮像した視差画像と対応を取り、三角測量をする必要がある。以下、基準画像の各画素に対応する被写体の３次元情報を算出するために用いる、別のカメラで撮像した画像を参照画像と呼ぶ。基準画像のうち被写体の３次元情報の算出処理を行う画素のことを注目画素と呼ぶ。尚、本実施例では、基準画像の画素毎に１枚の参照画像を基準画像以外の視差画像のうちから決定する。
【００１９】
撮像パラメータ取得部３０３は、視差画像取得部３０１で取得された各視差画像に対応する撮像パラメータを取得する。本実施例では、カメラ１０１〜１０５の撮像パラメータを取得する。ここで、撮像パラメータは、カメラの位置及び姿勢を表す外部パラメータと、カメラの焦点距離、主点位置及び歪曲を表す内部パラメータとを含むが、詳細について後述する。本実施例では、予め各カメラのパラメータを測定した値が記述されたファイルをＨＤＤ２０５に記憶しておき、撮像パラメータ取得部３０３は、ＨＤＤＩ／Ｆ２０４を介してＨＤＤ２０５からデータを読み取ることで各カメラの撮像パラメータを取得する。また、例えば、撮像パラメータ取得部３０３は、視差画像取得部３０１で取得した視差画像から自然特徴点を抽出し、Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎを用いてカメラの撮像パラメータを算出する。
【００２０】
参照画像決定部３０４は、基準画像以外の各視差画像について、対応点の探索を行う直線（エピポーラ線）上の輝度勾配の大きさに関する評価値を算出し、算出された評価値に基づいて、参照画像を基準画像以外の視差画像のうちから決定する。
【００２１】
対応点探索部３０５は、参照画像決定部３０４で決定された参照画像から、基準画像の注目画素に対応する画素を探索する。距離算出部３０６は、基準カメラの撮像画像における注目画素の２次元座標と、参照カメラの撮像画像における対応点の２次元座標と、基準カメラ及び参照カメラの撮像パラメータとに基づいて、三角測量によって、基準カメラから被写体までの距離を算出する。尚、本実施例では被写体の３次元情報として基準カメラから被写体までの距離を算出する例を説明するが、これに限定されない。例えば、視差や被写体の３次元形状を算出する場合においても、同様に本実施例を適用することができる。
【００２２】
距離情報出力部３０７は、基準画像の全画素について算出された被写体までの距離を、出力Ｉ／Ｆ２０７を介して表示部２１０に出力したり、ＨＤＤＩ／Ｆ２０４を通じＨＤＤ２０５に保存したりする。
【００２３】
＜画像処理装置の処理フロー＞
図４は、本実施例における画像処理装置１００の処理フローを示す図である。画像処理装置１００は、視差画像に基づいて被写体の距離情報を算出して出力する。ステップＳ４０１において視差画像取得部３０１は、カメラ１０１〜１０５の各カメラで共通の被写体１０６を撮像して得られた視差画像を取得する。
【００２４】
ステップＳ４０２において撮像パラメータ取得部３０３は、カメラ１０１〜１０５それぞれについて撮像パラメータを取得する。撮像パラメータは、前述のように、カメラの位置及び姿勢を表す外部パラメータと、カメラの焦点距離及び主点位置を表す内部パラメータとを含む。以下、撮像パラメータの詳細について説明する。
【００２５】
＜＜撮像パラメータ＞＞
内部パラメータは、下記の式（１）に示す３×３の行列Ａとして表現することができる。ここで、ｘ方向の焦点距離をｆx、ｙ方向の焦点距離をｆy、主点位置を（ｃx，ｃy）とする。
【００２６】
【数１】
2018032144.tif 000003
【００２７】
外部パラメータは、姿勢を表す３×３の回転行列Ｒと位置を表す３×１の並進行列Ｔとからなる、４×３の行列［Ｒ│Ｔ］として表現することができる。尚、外部パラメータはこれに限らず、各カメラの位置及び姿勢を表すことができればどのような表現形式であってもよい。
【００２８】
以下では、ｉ番目（ｉは１から５の整数で、カメラ１０１〜１０５にそれぞれ対応する）のカメラについて、内部パラメータをＡi、外部パラメータのうち回転行列をＲi、並進ベクトルをＴiとして説明を行う。内部パラメータＡiと外部パラメータＲi、Ｔiとを用いることで、ｉ番目のカメラで撮像した画像中の画素の２次元座標（ｕi，ｖi）と、その画素に対応する３次元空間中の点の３次元座標（Ｘ，Ｙ，Ｚ）との間の関係は下記の式（２）で表すことができる。ここで、ωiはスケールファクタである。
【００２９】
【数２】
2018032144.tif 000004
【００３０】
これは、３次元座標（Ｘ，Ｙ，Ｚ）の点を、カメラで撮像すると、撮像画像中の２次元座標（ｕi，ｖi）に記録されることを表している。尚、上記の外部パラメータＲiとＴiを用いることで、カメラの３次元座標（Ｘci，Ｙci，Ｚci）は下記の式（３）により算出することができる。
【００３１】
【数３】
2018032144.tif 000005
【００３２】
次にステップＳ４０３において基準画像設定部３０２は、ステップＳ４０１で取得された視差画像のうちいずれか１つを基準画像として設定する。次のステップＳ４０４からステップＳ４０８の処理は、基準画像の全画素について対応する被写体の３次元情報の算出を行う。
【００３３】
ステップＳ４０４では、基準画像における未処理の画素の中から、注目画素として任意の１画素を選択する。本ステップで選択された注目画素は、次のステップＳ４０５からステップＳ４０７の処理の対象となる。尚、注目画素は、どのような順番で選択してもよい。例えば、まず初めに画像の左上の端の画素を選択し、その後はラスター走査によって右下の端の画素までを順番に選択してよい。
【００３４】
ステップＳ４０５において参照画像決定部３０４は、注目画素について１枚の参照画像を基準画像以外の視差画像のうちから決定する。本実施例では、基準画像以外の各視差画像について、その視差画像における基準画像の注目画素のエピポーラ線を算出し、算出されたエピポーラ線に基づいて、その視差画像から注目画素の対応点を探索する場合の信頼度を表す評価値を算出する。算出された評価値を比較することで参照画像を決定する。本ステップの参照画像決定処理の詳細について後述する。
【００３５】
ステップＳ４０６において対応点探索部３０５は、ステップＳ４０５で決定された参照画像から注目画素の対応点を探索する。本実施例では、参照画像のうち基準画像の注目画素に対応するエピポーラ線上に位置する画素の中から、注目画素の対応点を探索する。尚、参照画像の中から対応点を探索する範囲は、エピポーラ線全体ではなく、後述の探索範囲決定部５０３で決定された探索範囲の中から探索することもできる。
【００３６】
対応点探索の方法としては、例えばブロックマッチングを用いることができる。すなわち、基準画像の注目画素とその近傍の画素からなるブロックに対する、参照画像上の等しいサイズで設定したブロックの相違度を算出する。そして、参照画像上のブロックの位置を上記の探索範囲の中で順次移動させながら相違度を算出し、この相違度が最も低くなったブロックの位置を求めることで、注目画素の対応点を探索する。この時、ブロック同士の相違度の算出には、例えば下記の式（４）で表わされるＳＳＤ（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）を用いることができる。
【００３７】
【数４】
2018032144.tif 000006
【００３８】
ここで、Ｉmainは基準画像の画素値を表し、Ｉsubは参照画像の画素値を表す。基準画像上のブロックは、座標が（ｕo，ｖo）である注目画素を中心とするＭ×Ｎ画素のブロックとする。参照画像上のブロックは、中心座標が（ｕ，ｖ）であるＭ×Ｎ画素のブロックとする。参照画像上のブロックを探索範囲の中で順次移動させながらＳＳＤを上記の式（４）により算出する。算出されるＳＳＤが最も低くなるときの（ｕ，ｖ）が、注目画素の対応点の座標である。以下ではＳＳＤが最も低くなるときの（ｕ，ｖ）、すなわち参照画像上の対応点の座標を（ｕm，ｖm）と記述する。
【００３９】
尚、上記の例では、相違度としてＳＳＤを用いたが、ＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）などの他の指標を用いることもできる。また、相違度ではなく、正規化相互相関などの類似度を指標として用いることもできる。この場合、類似度が最も高くなるブロックの位置を求めることで注目画素の対応点を探索する。尚、対応点の探索方法としては、ブロックマッチングに限られず、他の探索方法を用いることもできる。
【００４０】
次に、ステップＳ４０７において距離算出部３０６は、基準画像上の注目画素の座標（ｕo，ｖo）と、ステップＳ４０６で得られた参照画像上の対応点の座標（ｕm，ｖm）と、基準画像及び参照画像に対応する撮像パラメータとを用いて、被写体までの距離を算出する。まず、注目画素に対応する被写体上の点の３次元座標は、次のように三角測量に基づき算出することができる。すなわち、基準カメラについて、内部パラメータをＡmとし、外部パラメータをＲm、Ｔmとすると、式（２）より下記の式（５）が成り立つ。
【００４１】
【数５】
2018032144.tif 000007
【００４２】
同様に、参照画像を撮像したカメラについて、内部パラメータをＡsとし、外部パラメータをＲs、Ｔsとすると、式（２）より下記の式（６）が成り立つ。
【００４３】
【数６】
2018032144.tif 000008
【００４４】
上記の式（５）及び式（６）はωm、ωs、Ｘ、Ｙ、Ｚを未知数とする連立方程式になっており、これを解くことで得られるＸ、Ｙ、Ｚは、注目画素に対応する被写体の上の点の３次元座標である。そして、得られた被写体の３次元座標と、式（３）で算出できる基準カメラの３次元座標とを比較することで被写体までの距離を算出することができる。
【００４５】
次にステップＳ４０８では、基準画像の全画素についてステップＳ４０５からステップＳ４０７の処理が実行されたか否かを判定する。全ての画素について処理が実行されたと判定された場合は、処理はステップＳ４０９へ移行する。一方、全ての画素については処理が実行されておらず、未処理の画素が残っていると判定された場合は、処理はステップＳ４０６へ移行する。
【００４６】
ステップＳ４０９において距離情報出力部３０７は、ステップＳ４０７で算出された被写体までの距離を、出力Ｉ／Ｆ２０７を介して表示部２１０へ出力したり、ＨＤＤＩ／Ｆ２０４を介してＨＤＤ２０５へ記録したりする。以上で、画像処理装置１００における被写体１０６の距離情報を算出する処理の流れが完了する。
【００４７】
＜参照画像決定処理の詳細＞
続いて、ステップＳ４０５で参照画像決定部３０４が行う参照画像決定処理の詳細を説明する。図５は、本実施例における参照画像決定部３０４の機能構成を示すブロック図である。参照画像決定部３０４は、画像選択部５０１、エピポーラ線算出部５０２、探索範囲決定部５０３、評価値算出部５０４及び評価値利用部５０５を含む。
【００４８】
画像選択部５０１は、基準画像以外の視差画像から１つの視差画像を評価対象画像として選択する。本実施例において、エピポーラ線算出部５０２、探索範囲決定部５０３及び評価値算出部５０４の処理が基準画像以外の全視差画像について行われるため、画像選択部５０１は基準画像以外の視差画像から未処理の視差画像を１つずつ選択してよい。尚、未処理の視差画像はどのような順で選択してもよい。
【００４９】
エピポーラ線算出部５０２は、評価対象画像における、基準画像の注目画素に対応するエピポーラ線を算出する。探索範囲決定部５０３は、注目画素に対応するエピポーラ線と、既に処理済みの近傍画素についての距離算出結果とに基づいて、基準画像の注目画素に対する評価対象画像における対応点の探索範囲を決定する。評価値算出部５０４は、評価対象画像中の探索範囲内の輝度勾配の大きさに関する評価値を算出する。本実施例では、探索範囲内の輝度勾配の絶対値の平均値を評価値として算出する。算出された評価値は、値が大きいほど、評価対象画像から基準画像の注目画素の対応点を探索する場合の信頼度が高いことを表す。
【００５０】
評価値利用部５０５は、基準画像以外の視差画像のそれぞれについて算出された評価値を比較して、参照画像を決定する。本実施例では、基準画像以外の視差画像のうち評価値が最も大きい視差画像を参照画像として決定する。
【００５１】
図６は、本実施例における参照画像決定部３０４の処理フローを示す図である。ステップＳ６０１では、基準画像以外の視差画像から、評価対象画像として未処理の視差画像を１つ選択する。本ステップで選択された評価対象画像は、ステップＳ６０２からステップＳ６０４の処理の対象となる。
【００５２】
ステップＳ６０２においてエピポーラ線算出部５０２が、基準画像及び評価対象画像に対応する撮像パラメータと、基準画像上の注目画素の座標とから評価対象画像におけるエピポーラ線を算出する。
【００５３】
＜＜エピポーラ線の算出＞＞
図７は、エピポーラ線を説明するための図である。カメラ７０１は、カメラ１０１〜１０５のうち基準画像を撮像したカメラを表し、カメラ７０５は、カメラ１０１〜１０５のうち評価対象画像を撮像したカメラを表す。カメラ７０１で撮像した基準画像を３次元空間中に仮想的に表示したものを画像７０２で表す。カメラ７０５で撮像した参照画像を３次元空間中に仮想的に表示したものを画像７０６で表す。また、画像７０２上の注目画素７０３について、画像７０６から注目画素７０３に対応する点を探索する。直線７０４はカメラ７０１と注目画素７０３を結んだ直線の延長線である。画像７０２上の注目画素７０３は、３次元空間上では直線７０４上のいずれかの位置に存在するはずである。直線７０４を画像７０６に投影したものが、画像７０６上の直線７０７となる。この直線７０７がエピポーラ線である。
【００５４】
エピポーラ線７０７は、次の性質を持つ。すなわち、直線７０４上の任意の点、例えば点７０８とカメラ７０５を結ぶ直線７０９を考えると、直線７０９と参照画像７０６との交点７１０は、エピポーラ線７０７上に乗るという性質である。評価対象画像におけるエピポーラ線は、基準画像の注目画素の座標と、基準画像を撮像した基準カメラ及び評価対象画像を撮像したカメラの撮像パラメータとから算出することができる。
【００５５】
まず、基準画像を撮像した基準カメラについて内部パラメータをＡm、回転行列をＲm、並進ベクトルをＴmとし、評価対象画像を撮像したカメラについて内部パラメータをＡo、回転行列をＲo、並進ベクトルをＴoとする。次の式（７）によりＲmo及びＴmoを算出する。ここで、Ｔmoはｔの歪対象行列と呼ばれる。
【００５６】
【数７】
2018032144.tif 000009
【００５７】
そして、上記のＲmo、Ｔmoを用いて次の式（８）により基礎行列Ｆを算出する。
【００５８】
【数８】
2018032144.tif 000010
【００５９】
さらに、エピポーラ線は上記の基礎行列Ｆと、基準画像上の注目画素の座標（ｕo，ｖo）とから、評価対象画像上の座標系ｕ，ｖを用いて下記の式（９）で表わすことができる。
【００６０】
【数９】
2018032144.tif 000011
【００６１】
次に、ステップＳ６０３において探索範囲決定部５０３は、評価対象画像のうち、基準画像の注目画素と対応する画素を探索する範囲を決定する。これは、基準画像の注目画素の対応点の探索にかかる計算コストを低減するために、評価対象画像の中でも探索を行う領域を限定するためである。一般的にはステップＳ６０２で算出されたエピポーラ線上を探索範囲とするが、本実施例ではエピポーラ線上への限定に加え、近傍における既処理済みの画素についての対応点探索結果（距離算出結果）に基づいて探索範囲をさらに小さく限定する。
【００６２】
＜＜探索範囲の決定＞＞
図８は、本実施例における探索範囲の決定方法を説明するための図である。カメラ７０１で撮像した画像７０２における注目画素について、カメラ７０５で撮像した画像７０６において注目画像の対応点を探索する。画素８０１はカメラ７０１で撮像した画像７０２における注目画素を表す。直線８０３はカメラ７０１と注目画素８０１を結んだ直線である。カメラ７０５で撮像した画像７０６における直線８０３がエピポーラ線である。
【００６３】
探索範囲をさらに限定するために、注目画素８０１の近傍における既処理済みの画素８０２について考える。画素８０２は先述のステップＳ４０７の処理により、対応する被写体上の点が３次元空間中の点８０４として算出されたとする。そして、被写体の表面は滑らかであり、近傍画素では被写体までの距離の変化は大きくないと仮定することで探索範囲の限定を行う。具体的には、点８０４を含む画像７０２に平行な平面を平面８０５とし、平面８０５を挟んで、距離Ｄだけ離れた平面８０６と平面８０７を仮定する。そして、直線８０３のうち平面８０６と平面８０７に挟まれた領域（図８では実線で記した線分８０８）を画像７０６に投影した線分８０９を探索範囲として決定する。
【００６４】
尚、ここで、近傍画素として注目画素の左隣の画素８０２を利用する場合を例として説明したが、近傍画素としてはこれに限られるものではなく、他の既処理済みの画素を用いてもよい。また、複数の近傍画素を利用してもよい。尚、平面８０５から平面８０６及び平面８０７の距離Ｄは、全処理に渡って変化しない一定値を用いてよいし、複数の既処理済みの近傍画素について算出された距離の変化量に比例して変化してもよい。また、複数の既処理済みの近傍画素について算出された距離の変化量として、例えば分散や微分（差分）値などを用いることができる。
【００６５】
次に、ステップＳ６０４において評価値算出部５０４は、評価対象画像に関する探索範囲内での輝度勾配の絶対値の平均値を評価値として算出する。評価値Ｅは下記の式（１０）により算出することができる。
【００６６】
【数１０】
2018032144.tif 000012
【００６７】
ここで、ａ、ｂ、ｃは式（９）で算出されたエピポーラ線の直線の方程式の係数を表し、Ｉ（ｕ，ｖ）は座標（ｕ，ｖ）における評価対象画像の輝度値を表す。また、ＳはステップＳ６０３で決定された探索範囲を表す。
【００６８】
次に、ステップＳ６０５では、上述のステップＳ６０１からステップＳ６０４の処理を、基準画像以外の全視差画像に対し実行したか否かを判定する。全視差画像について実行したと判定された場合は、処理はステップＳ６０６に移行する。まだ未処理の視差画像が残っている場合は、処理はステップＳ６０１へ移行する。
【００６９】
ステップＳ６０６において評価値利用部５０５は、基準画像以外の視差画像のそれぞれについて算出された評価値を比較して、評価値が最も大きい視差画像を参照画像として決定する。
【００７０】
＜本実施例の効果＞
以下では、本実施例によって得られる効果について説明する。従来の距離推定技術では、参照画像のエピポーラ線上の画素の中から注目画素との相違度が最も低くなる画素を探索することで基準画像の注目画素の対応点を探索する。しかし、参照画像のエピポーラ線上において輝度の変化が少ない場合、エピポーラ線上の画素間で相違度の変化が小さい。そのため、例えば画像に含まれるノイズなどによって算出された相違度に誤差が生じると、本来対応している画素とは別の位置で相違度が最も低くなり誤った画素を対応点として探索してしまうことがある。
【００７１】
図９は、従来の距離推定技術による対応点探索を行う場合を示す図である。尚、図９は、参照画像のエピポーラ線上で輝度の変化が少ない場合の例を示している。図９（ａ）は、カメラ７０１とカメラ７０５の２台のカメラで被写体９０１を撮像する様子を示している。被写体９０１は、カメラ７０１で撮像した画像７０２においては領域９０２のように写り、カメラ７０５で撮像した画像７０６においては領域９０３のように写っているとする。このとき、画像７０２における注目画素７０３に対応する、被写体９０１上の点７０８の距離を推定する場合、画像７０６のエピポーラ線７０７の中から対応点７１０を探索する必要がある。
【００７２】
図９（ｂ）は、対応点の探索のために算出された、注目画素７０３とエピポーラ線７０７上の各画素との相違度を模式的に示している。画像７０６中の領域９０３はエピポーラ線７０７上では輝度の変化が少ないため、図９（ｂ）のように点７１０とその周辺の画素との間では相違度の変化が少なく誤った画素９０４を対応点として探索してしまう。
【００７３】
一方、本実施例によれば、複数の視差画像を参照画像の候補とし、複数の候補からエピポーラ線上での輝度の変化が大きい視差画像を参照画像とするため、エピポーラ線上の画素間で相違度の変化が大きくなる。そのため、画像にノイズが含まれていた場合であっても、正しい対応点を探索することが可能となる。
【００７４】
図１０は、本実施例による対応点探索を行う場合を示す図である。図１０（ａ）において、カメラ１０１からカメラ１０５までの５つのカメラに対し、それぞれの撮像画像を３次元空間上に表示したものが画像１００１から画像１００５である。また、カメラ１０３で撮像した画像１００３を基準画像とし、基準画像１００３における注目画素１００６に対応する被写体の距離情報を推定する。このとき、画像１００１、１００２、１００４、１００５に対し算出したエピポーラ線は、それぞれエピポーラ線１００７、１００８、１００９、１０１０となる。そして、各エピポーラ線上で輝度値の変化が最も大きい画像（例えば画像１００５）を参照画像として選択する。
【００７５】
図１０の（ｂ）は、選択された参照画像１００５のエピポーラ線１０１０上における相違度を模式的に示している。参照画像１００５では、エピポーラ線１０１０上で輝度の変化が大きいため図１０（ｂ）に示すようにブロックマッチング時の相違度の変化が大きくなり、明確なピークを持つため正しい対応点を探索することが可能となる。
【００７６】
尚、図１０では輝度が緩やかに変化する場合を例に説明したが、輝度の変化が急峻ないわゆるエッジである場合にも同様の効果が得られる。また、上記では図１に示すように複数のカメラが同時に被写体を撮像する場合を例に説明を行ったが、本実施例は、手が持った１台のカメラを被写体に対し移動しながら撮像する場合にも適用可能である。
【００７７】
以上のとおり、本実施例によって、複数のカメラを任意の位置・姿勢で設置して視差画像を撮像した場合において、エピポーラ線上に輝度勾配やラインなどのエッジが存在してもその影響を低減することができ、高精度に距離を推定することができる。尚、上記では、処理中は基準カメラを固定し、基準カメラから被写体までの距離を推定する場合について説明を行ったが、本発明は基準カメラが処理中に変化する場合にも適用が可能である。
【００７８】
［実施例２］
実施例１では、探索範囲内の輝度勾配の大きさに関する評価値を算出して参照画像の決定に用いたが、本実施例では、探索範囲内の輝度勾配の方向に関する評価値を算出して参照画像の決定に用いる。すなわち、本実施例では、評価対象画像のエピポーラ線上の輝度勾配の方向と、エピポーラ線の方向との類似度を評価値として用いる。
【００７９】
以下では、本実施例における画像処理装置の動作について説明するが、実施例１と異なる部分について説明を行う。実施例１と動作が異なるのは、評価値算出部の動作である。その他の各部の動作は実施例１と同様のため、説明は省略する。
【００８０】
本実施例における評価値算出部５０４′の動作を説明する。まず、評価値算出部５０４′は、エピポーラ線算出部５０２で算出されたエピポーラ線について、その方向を算出する。次に、評価値算出部５０４′は、探索範囲決定部５０３で決定された探索範囲に基づいて、評価対象画像の探索範囲内の輝度勾配の方向の平均値を算出する。さらに、評価値算出部５０４′は、算出された探索範囲内の輝度勾配の方向の平均値とエピポーラ線の方向との類似度を評価値として算出する。
【００８１】
以下、本実施例の評価値算出部５０４′の処理フローについて説明する。本処理フローでは、基準画像以外の４枚の視差画像について、各視差画像における探索範囲内の輝度勾配の方向に関する評価値を算出する。本実施例の評価値算出部５０４′は、実施例１と同様で、図６に示すフローチャートで処理を行うが、ステップＳ６０４の評価値算出処理が異なる。以下では本実施例における評価値算出処理を行うステップＳ６０４′について説明する。その他のステップについては実施例１と同様の処理内容であるため説明を省略する。
【００８２】
＜＜エピポーラ線の方向Ｄ＞＞
まず、評価値算出部５０４′は、エピポーラ線算出部５０２で算出されたエピポーラ線について、その方向を算出する。ここで、エピポーラ線の方向はどのような形式で表現してもよく、例えば、画像中の横軸（ｕ軸）とエピポーラ線が成す角で表現することができるし、画像の横軸（ｕ軸）方向と縦軸（ｖ軸）方向の２成分から成る方向ベクトルで表現することができる。以下では、エピポーラ線の方向を方向ベクトルで表現する。エピポーラ線は、式（８）で表わすことができるため、エピポーラ線の方向Ｄは、下記の式（１１）のように表わすことができる。
【００８３】
【数１１】
2018032144.tif 000013
【００８４】
＜＜輝度勾配の方向の平均値Ｇ＞＞
そして、評価値算出部５０４′は、探索範囲決定部５０３で決定された探索範囲に基づいて、評価対象画像における探索範囲内の輝度勾配の方向の平均値を算出する。ここで、画像Ｉの座標（ｕ，ｖ）の画素における輝度勾配の方向Ｇ（ｕ，ｖ）は、ｕ軸方向及びｖ軸方向の微分を用いて下記の式（１２）のように表わすことができる。
【００８５】
【数１２】
2018032144.tif 000014
【００８６】
式（１２）におけるｕ軸方向の微分は、マスクＤu（ｉ，ｊ）を用いて下式の式（１３）により算出することができる。
【００８７】
【数１３】
2018032144.tif 000015
【００８８】
尚、マスクＤu（ｉ，ｊ）としてはどのような微分マスクを用いてもよく、例えばＰｒｅｖｉｔｔマスクやＳｏｂｅｌマスクを用いることができる。Ｐｒｅｖｉｔｔマスクを用いる場合、マスクＤu（ｉ，ｊ）は下記の式（１４）で表わすことができる。
【００８９】
【数１４】
2018032144.tif 000016
【００９０】
同様に、式（１２）におけるｖ軸方向の微分は、マスクＤv（ｉ，ｊ）を用いて下記の式（１５）により算出することができる。
【００９１】
【数１５】
2018032144.tif 000017
【００９２】
尚、Ｐｒｅｖｉｔｔマスクを用いる場合、マスクＤv（ｕ，ｖ）は下記の式（１６）で表わすことができる。
【００９３】
【数１６】
2018032144.tif 000018
【００９４】
そして、探索範囲に含まれる全画素における輝度勾配の方向の平均値を算出する。輝度勾配の方向の平均値Ｇは、下記の式（１７）により算出する。
【００９５】
【数１７】
2018032144.tif 000019
【００９６】
＜＜方向の類似度＞＞
最後に、評価値算出部５０４′は、輝度勾配の方向の平均値Ｇとエピポーラ線の方向Ｄとの類似度を下記の式（１８）により算出し、評価値Ｅとする。このとき、方向の類似度は０以上１以下の実数とし、上記２方向の類似度が高い場合に１に近い値となり、類似度が低い場合に０に近い値となるものとする。本実施例では、方向の類似度としては、２つの方向ベクトルの内積を用いる例を示すが、類似度の算出方法は上記に限られるものではなく、どのような式で算出してもよい。
【００９７】
【数１８】
2018032144.tif 000020
【００９８】
尚、方向の相違度の算出方法は上記に限られるものではなく、どのような式で算出してもよい。
【００９９】
本実施例では、基準画像以外の視差画像のうち評価値算出部５０４′により算出された評価値Ｅが最も大きい視差画像を参照画像として用いる。評価値Ｅが大きいほど、輝度勾配の方向とエピポーラ線の方向との類似度が大きく、探索範囲の輝度の変化が大きくなる。そのため、探索範囲内におけるブロックマッチング時の相違度の変化が大きくなり、明確なピークを持つため正しい対応点を探索することが可能となる。そのため、複数のカメラを任意の位置・姿勢で設置して視差画像を撮像した場合において、エピポーラ線上に輝度勾配やラインなどのエッジが存在してもその影響を低減することができ、高精度に距離を推定することができる。
【０１００】
尚、本実施例では、輝度勾配の方向とエピポーラ線の方向との類似度を評価値として算出したが、輝度勾配の方向とエピポーラ線の方向との相違度を評価値として算出してもよい。また、輝度勾配の方向とエピポーラ線の方向との相違度としては、例えば輝度勾配の方向とエピポーラ線の方向との角度を用いることができる。この場合、基準画像以外の視差画像のうち算出された相違度が最も小さい視差画像を参照画像として用いる。
【０１０１】
［実施例３］
実施例１及び実施例２では、評価値に基づいて１枚の視差画像を距離算出用の参照画像として選択したが、本実施例では、参照画像を１枚に限定するのではなく、基準画像以外の全ての視差画像を参照画像として用いて距離を算出する。また、本実施例では、評価値に応じた重みで各視差画像を用いて距離を算出する。
【０１０２】
実施例１の参照画像決定部３０４、対応点探索部３０５及び距離算出部３０６とは動作が異なる本実施例の参照画像決定部３０４′、対応点探索部３０５′及び距離算出部３０６′について説明する。本実施例では、参照画像を１枚に限定するのではなく、基準画像以外の全ての視差画像を参照画像として用いて距離を算出する。本実施例の参照画像決定部３０４′は、距離算出用の各視差画像の重みを決定する。具体的に、参照画像決定部３０４′における評価値利用部５０５′は、評価値算出部５０４で算出された評価値に応じて、評価対象画像の重みを決定する。また、本実施例における対応点探索部３０５′は、基準画像以外の全ての視差画像についても、基準画像の注目画素の対応点の探索を行う。本実施例における距離算出部３０６′は、参照画像決定部３０４′で決定された重みに基づいて、基準画像以外の全ての視差画像における対応点の探索結果を用いて被写体までの距離を算出する。
【０１０３】
また、本実施例における画像処理装置１００は、実施例１と同様で、図４に示すフローチャートで処理を行うが、ステップＳ４０５からステップＳ４０7の処理が異なる。以下では本実施例におけるステップＳ４０５′からステップＳ４０７′について説明する。その他のステップについては実施例１と同様の処理内容であるため説明を省略する。
【０１０４】
ステップＳ４０５′において参照画像決定部３０４′は、実施例１の参照画像決定部３０４と同様に、基準画像以外の各視差画像について評価値を算出する。そして、算出された評価値に応じて各視差画像の重みを決定する。尚、各視差画像の重みの合計値が１になる。また、各視差画像の重みは、評価値に比例する値として決定してもよいし、別の方法で決定してもよい。また、評価値に応じて、一部の視差画像の重みを０にしてもよい。例えば、評価値が所定値以下である視差画像の重みを０にする。ステップＳ４０６′において対応点探索部３０５′は、基準画像以外の全ての視差画像について、基準画像の注目画素の対応点の探索を行う。各視差画像における対応点は、実施例１と同様に相違度を用いたブロックマッチングによって探索を行うことができる。
【０１０５】
ステップＳ４０７′において距離算出部３０６′は、基準画像以外の全ての視差画像を用いて被写体までの距離を算出する。具体的には、各視差画像の対応点探索結果からそれぞれ式（５）、式（６）の連立方程式を解くことで算出した距離の加重平均を算出する。このとき、各視差画像で算出した距離に対する重みとして、ステップＳ４０５′で決定された重みを用いる。
【０１０６】
エピポーラ線上の輝度勾配の大きさや方向から評価値を算出し、被写体までの距離の算出に利用するが、輝度勾配の大きさや角度の評価値を算出する際に、ノイズなどによって評価値に誤差が生じてしまうことがある。そのため、実施例１、２のように１枚の参照画像を用いる場合、評価値に生じた誤差によって効果が十分に得られない可能性がある。本実施例では、全てのカメラから被写体までの距離を算出し、その加重平均の重みとして評価値を用いることで、ノイズなどによる評価値の誤差の影響の低減することができる。そのため、エピポーラ線上に輝度勾配やラインなどのエッジが存在する場合の影響を低減することが可能となる。
【０１０７】
（他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１０８】
また、前述の実施例では、基準画像の画素毎に参照画像の選択または参照画像の重みの決定を行う例を説明したが、これに限られるものではなく、所定サイズの領域毎に参照画像の選択または参照画像の重みの決定を行ってもよい。
【符号の説明】
【０１０９】
３０４  参照画像決定部
５０２  エピオーラ線算出部
５０４  評価値算出部
【図１】
2018032144.tif 000021
【図２】
2018032144.tif 000022
【図３】
2018032144.tif 000023
【図４】
2018032144.tif 000024
【図５】
2018032144.tif 000025
【図６】
2018032144.tif 000026
【図７】
2018032144.tif 000027
【図８】
2018032144.tif 000028
【図９】
2018032144.tif 000029
【図１０】
2018032144.tif 000030