(57)【要約】【課題】左右の画像間の各点の対応関係を、画像間の視差に関するエネルギー関数を最小化することにより特定する画像処理装置であって、ステレオ画像間の対応づけを高精度に行なう。【解決手段】視差を画像位置の関数として表現した複数の視差関係を設定する視差関数設定部１８と、前記設定した視差関数が規定する画像間の対応領域の類似度を計算するデータ項計算部２０と、視差関数の近傍画素との整合性を計算する平滑化項計算部２２と、前記設定した複数の視差関数から画像の各点毎に視差関数を選択する視差関数選択部２４とを具備する。【選択図】      図１
2009133753.tif 000002
【特許請求の範囲】
【請求項１】
異なる位置で撮影され共通の視野を有する第１の画像と第２の画像とを入力する入力部と、
前記第１の画像上の複数の注目点の各々について、前記各注目点の座標から視差を求めるための視差関数を記憶する視差関数記憶部と、
前記各注目点の座標から前記視差関数に基づく視差を求める第１の計算部と、
前記求められた視差に基づいて、前記注目点に対応する前記第２の画像上の対応点を求める第２の計算部と、
前記各注目点の輝度と前記対応点の輝度との輝度差を計算する輝度差計算部と、
前記各注目点の前記視差関数と前記各注目点の周囲にある他の注目点の前記視差関数とが類似するほど小さい値となる整合度を計算する整合度計算部と、
前記各注目点の前記視差関数を変えながら、前記輝度差と前記整合度との前記複数の注目点に関する和が最小になる前記視差関数の組み合わせを求める視差関数探索部と、
を有する画像処理装置。
【請求項２】
前記視差関数記憶部は、前記各注目点の前記視差関数のパラメータを記憶し、
前記視差関数探索部は、前記パラメータを変えることにより前記視差関数を変える、
請求項１記載の画像処理装置。
【請求項３】
前記視差関数は、ｄ＝αｘ＋βｙ＋γで表され、但し、（ｘ，ｙ）は座標、ｄは視差、α、β、γはパラメータである、
請求項２記載の画像処理装置。
【請求項４】
前記輝度差計算部は、前記注目点の周囲領域の輝度パターンと、前記対応点の周囲領域の輝度パターンとの誤差を前記輝度差として計算する、
請求項１記載の画像処理装置。
【請求項５】
前記第１の画像上の点毎の前記視差関数と、予め設定した道路面を表す関数とに基づいて、前記第１の画像上の道路領域を抽出する道路領域抽出部をさらに有する、
請求項１記載の画像処理装置。
【請求項６】
前記視差関数探索部で求められた前記視差関数に基づいて、前記基準画像上の前記各点の視差を求める視差計算部をさらに有する、
請求項１記載の画像処理装置。
【請求項７】
異なる位置で撮影され共通の視野を有する第１の画像と第２の画像とを入力する入力ステップと、
前記第１の画像上の複数の注目点の各々について、前記各注目点の座標から視差を求めるための視差関数を記憶する視差関数記憶ステップと、
前記各注目点の座標から前記視差関数に基づく視差を求める第１の計算ステップと、
前記求められた視差に基づいて、前記注目点に対応する前記第２の画像上の対応点を求める第２の計算ステップと、
前記各注目点の輝度と前記対応点の輝度との輝度差を計算する輝度差計算ステップと、
前記各注目点の前記視差関数と前記各注目点の周囲にある他の注目点の前記視差関数とが類似するほど小さい値となる整合度を計算する整合度計算ステップと、
前記各注目点の前記視差関数を変えながら、前記輝度差と前記整合度との前記複数の注目点に関する和が最小になる前記視差関数の組み合わせを求める視差関数探索ステップと、
を有する画像処理方法。
【請求項８】
前記視差関数記憶ステップは、前記各注目点の前記視差関数のパラメータを記憶し、
前記視差関数探索ステップは、前記パラメータを変えることにより前記視差関数を変える、
請求項７記載の画像処理方法。
【請求項９】
前記視差関数は、ｄ＝αｘ＋βｙ＋γで表され、但し、（ｘ，ｙ）は座標、ｄは視差、α、β、γはパラメータである、
請求項８記載の画像処理方法。
【請求項１０】
前記輝度差計算ステップは、前記注目点の周囲領域の輝度パターンと、前記対応点の周囲領域の輝度パターンとの誤差を前記輝度差として計算する、
請求項７記載の画像処理方法。
【請求項１１】
前記第１の画像上の点毎の前記視差関数と、予め設定した道路面を表す関数とに基づいて、前記第１の画像上の道路領域を抽出する道路領域抽出ステップをさらに有する、
請求項７記載の画像処理方法。
【請求項１２】
前記視差関数探索部で求められた前記視差関数に基づいて、前記基準画像上の前記各点の視差を求める視差計算ステップをさらに有する、
請求項７記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数台のカメラを用いて対象物までの距離をステレオ視差を用いて測定する画像処理装置及びその方法に関する。
【背景技術】
【０００２】
２つのカメラを用いて三角測量により、対象物までの距離を測定するステレオ視は、様々な分野で利用されている有用な画像処理技術である。
【０００３】
ステレオ視において最も重要かつ困難な課題は、ステレオ画像間の対応点を探索し、対応点の位置の相違（すなわち、「視差」である）を画像毎に求めることである。ステレオ視差計算には様々な方式があるが、これらはローカル方式とグローバル方式に大別できる。
【０００４】
ローカル方式では、局所的な輝度パターンの（非）類似性をウィンドウ内のＳＡＤ（Sum of Absolute Difference）やＳＳＤ（Sum of Squared Difference)、ＮＮＣ（Normalized cross correlation）等で計算し、エピポーララインで最も似ている点を対応点とする。このローカル方式は処理がシンプルであり、基本的に各点独立に視差を求めることができるので、処理の並列化を含めた高速化が容易である。しかしその反面、周囲に十分な輝度変化がない点は、視差を正確に求めることはできないという問題点がある。
【０００５】
一方、グローバル方式では、全画素の視差に対するエネルギー関数を定義し、その関数が最小となる視差の組合せを求める（例えば、非特許文献１参照）。このグローバル方式では大域的な視差推定を行なうので、模様のない領域であっても視差を復元することができる。
【非特許文献１】V. Kolmogorov and R. Zabih,「Computing Visual Correspondence with Occlusions using Graph Cuts」, IEEE International Conference on Computer Vision（ICCV),2001
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ステレオ視差計算は、画像Ｐの各点ｐ∈Ｐに対し、予め用意した視差候補ラベルＬの中から適切なラベルｆｐを選択して割り当てるという問題に一般化できる。
【０００７】
下記の式（１）のエネルギー関数Ｅ（ｆ）を最小にするラベルが求める視差となる。
【数１】
2009133753.tif 000003
【０００８】
ここで、ｆ＝（ｆ１，ｆ２，・・・，ｆｐ，・・・，ｆ｜Ｐ｜）は画像Ｐの全画素に対するラベルである。｜Ｐ｜は画素数を表す。
【０００９】
式（１）の第１項のＥｄａｔａ（ｆ）はデータ項と呼ばれ、推定ラベルと観測データの不一致度（通常、一致する時が０）を表し、式（２）で与えられる。
【数２】
2009133753.tif 000004
【００１０】
ここでＤｐ（ｆｐ）は画素ｐの推定ラベル（視差）としてｆｐを割り当てるコストを表す。
【００１１】
点毎に独立にラベル（視差）推定を行なうローカル方式では、この第１項が最小となるｆを求めていることになる。第２項Ｅｓｍｏｏｔｈは平滑項と呼ばれ、ｆが局所的に滑らかでない程度を表しており、式（３）で与えられる。
【数３】
2009133753.tif 000005
【００１２】
ここでＮは隣接する点の集合であり、Ｖｐ，ｑ（ｆｐ，ｆｑ）は点ｐと点ｑの識別ラベルとして各々ｆｐとｆｑを割り当てるコストを表す。
【００１３】
さらに、Ｖｐ，ｑ（ｆｐ，ｆｑ）としては下記の式（４）のモデルが一般的である。
【数４】
2009133753.tif 000006
【００１４】
但し、Ｔ（・）は引数として与えた条件が真であるときに１、それ以外は０を返す演算子である。
【００１５】
ｆｐがｆｑと等しくないならＴ＝１、ｆｐ＝ｆｑならＴ＝０となるので、隣接画素の視差が異なれば正定数のペナルティλを与え、等しければ０とする。これは局所的に均一な視差、言い替えれば局所的に画像面に平行に勾配を持つ物体表面は正しく復元されにくいということになる。
【００１６】
例えば、車に搭載したステレオカメラで道路シーンの視差を復元する場合、通常、動路面の法線ベクトルとカメラの光軸はほぼ直交し、局所的に一様な視差を持つという仮定が成り立たないため、視差を正しく推定することができないという問題点がある。
【００１７】
そこで本発明は、上記問題点を解決するためになされたものであり、従来技術に比べ高精度に視差を計算することができる画像処理装置及びその方法を提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明は、異なる位置で撮影され共通の視野を有する第１の画像と第２の画像とを入力する入力部と、前記第１の画像上の複数の注目点の各々について、前記各注目点の座標から視差を求めるための視差関数を記憶する視差関数記憶部と、前記各注目点の座標から前記視差関数に基づく視差を求める第１の計算部と、前記求められた視差に基づいて、前記注目点に対応する前記第２の画像上の対応点を求める第２の計算部と、前記各注目点の輝度と前記対応点の輝度との輝度差を計算する輝度差計算部と、前記各注目点の前記視差関数と前記各注目点の周囲にある他の注目点の前記視差関数とが類似するほど小さい値となる整合度を計算する整合度計算部と、前記各注目点の前記視差関数を変えながら、前記輝度差と前記整合度との前記複数の注目点に関する和が最小になる前記視差関数の組み合わせを求める視差関数探索部と、を有する画像処理装置である。
【発明の効果】
【００１９】
本発明によれば、物体表面の局所的な勾配方向や模様の有無に関わらず、ステレオ画像から高密度で高精度な視差データを取得できる。
【発明を実施するための最良の形態】
【００２０】
本発明の一実施形態の画像処理装置であるステレオ視差計算装置について図１〜図５に基づいて説明する。
【００２１】
（１）ステレオ視差計算装置１０の構成
ステレオ視差計算装置１０の概略構成を図１に示す。
【００２２】
ステレオ視差計算装置１０は図１のように画像入力部１２、画像蓄積部１４、初期化部１６、視差関数設定部１８、データ項計算部２０、平滑化項計算部２２、視差関数選択部２４から構成され、任意画像の視差関数が処理結果として出力される。
【００２３】
（２）視差関数
「視差関数」とは、視差を画像位置（ｘ，ｙ）の関数として表現したものであり、画像位置の関数であれば形態は任意であるが、本実施形態では画像位置について式（５）に示す一次関数とする。
【数５】
2009133753.tif 000007
【００２４】
視差関数のｆ＝（α，β，γ）を「視差アフィンパラメータ」と呼ぶ。視差アフィンパラメータと視差関数は一対一に対比するから各点の視差関数を求めることと、視差アフィンパラメータｆを求めることは同じである。
【００２５】
また、画像全点の視差をまとめて示す場合は「視差マップ」、同様に視差アフィンパラメータをまとめて示す場合は「視差アフィンパラメータマップ」と呼ぶ。画像に通し番号１，２，・・・，ｐ，・・・，｜Ｐ｜を付与すると、視差アフィンパラメータマップＦは式（６）により与えられる。このＦが求めるべき変数である。
【数６】
2009133753.tif 000008
【００２６】
（３）画像入力部１２
画像入力部１２は、カメラを用いて撮影視点が異なる複数枚の画像を入力する。
【００２７】
これら複数視点画像は、２台以上のカメラで同時に撮影しても良いし、撮影シーンに動く物体が含まれない場合には１台のカメラを移動させて撮影しても良い。また、視野に重なりがあれば互いの向きも任意である。
【００２８】
本実施形態では、同一の２台のカメラを左右平行に配置してステレオ画像を撮影する状況を想定する。ステレオカメラに図２に示す座標系を設定する。原点を右カメラの視点（レンズ中心）にとり、左右カメラの視点を結ぶ直線をＸ軸、鉛直下向きにＹ軸、カメラの光軸方向にＺ軸を設定する。カメラ間の距離（基線長）をＢ、左カメラの位置を（−Ｂ，０，０）とする。
【００２９】
さらに、図２に示すように右画像に対し、水平、垂直方向に各々ｘ，ｙ軸、同様に左画像に対してｘ′，ｙ′軸を設定し、各画像の水平方向はＸ軸方向と一致するものとする。
【００３０】
このような場合、右画像上の点（ｘ，ｙ）の左画像の対応点を（ｘ′，ｙ′）とすると、ｙ＝ｙ′となるので、水平方向の位置の違いのみを考えれば良い。以下ではこの水平位置の違いを視差と呼び、右画像を基準画像として、ｄ＝ｘ′−ｘと表記する。
【００３１】
（４）画像蓄積部１４
画像蓄積部１４は、画像入力部１２により入力されたステレオ画像を画像メモリに蓄積する。
【００３２】
（５）初期化部１６
初期化部１６は、基準画像の各点の視差関数、すなわち、視差アフィンパラメータマップＦを初期化する。
【００３３】
初期値は任意の値でも良いが、例えば、ブロックマッチングで計算した視差マップを初期値として用いても良い。
【００３４】
また、探索範囲内の任意の視差ｄ（ｄｍｉｎ＜＝ｄ＜＝ｄｍａｘ）を仮定した時のステレオ画像間の対応画素の相違度を、各画素ｐについて計算する。対応画素の相違度はＩ，Ｉ′をステレオ画像とし、Ｉ（ｐ）等を点ｐの輝度値とすると、前記の視差ｄを用いて式（７）のように計算する。
【数７】
2009133753.tif 000009
【００３５】
上記では相違度を対応画素の輝度値の差の自乗としたが、対応画素周囲の輝度の差の絶対値の総和や、輝度の差の自乗和、正規化相互相関を用いても良い。但し他の尺度が相違度（不一致度）を表すのに対し、正規化相互相関は一致度を表すので、符号の反転等の適当な変換を行なう必要がある。
【００３６】
（６）視差関数設定部１８
視差関数設定部１８は、初期化部１６、または、後ほど説明する視差関数選択部２４から供給される視差アフィンパラメータマップＦの中間結果と、視差関数ｆαをデータ項計算部２０と平滑化項計算部２２に供給する。
【００３７】
視差関数ｆαは対象とするシーンに関する事前知識を用いて予め複数設定しておき、それを順次使用すれば処理の効率化を図ることができる。
【００３８】
一次の視差関数は実空間では平面を表すが、まずその理由について説明する。
【００３９】
図２に示した座標系において、空間中の点（Ｘ，Ｙ，Ｚ）の基準画像への投影位置（ｘ，ｙ）、及び、視差ｄは式（８）により与えられる。
【数８】
2009133753.tif 000010
【００４０】
ここでレンズの焦点距離は簡単のため省略した。
【００４１】
空間中の平面πの方程式をＺ＝ｐＸ＋ｑＹ＋ｒとして、式（８）を用いてＸ，Ｙ，Ｚを消去すると空間平面πの方程式は、
【数９】
2009133753.tif 000011
【００４２】
となり、一次の視差関数となる。
【００４３】
但し、α＝−ｐγ，β＝−ｑγ，γ＝Ｂ／ｒである。
【００４４】
視差関数は実空間では平面を表すので、視差関数設定部１８は実空間において存在し得る平面に対応する視差関数を設定する。例えば、道路シーンの場合には、物体は道路面の上方に存在すると仮定できる場合が多いので、基準面（道路）より上に存在する平面の視差関数を考えれば良いことになる。図３に水平面（Ｙ＝一定）と垂直面（Ｚ＝一定）の２つの視差関数を例示する。
【００４５】
（９）データ項計算部２０と平滑化項計算部２２
データ項計算部２０と平滑化項計算部２２は、視差関数設定部１８が供給した視差アフィンパラメータｆαと視差アフィンパラメータマップの中間結果Ｆｃｕｒから図４に示すようなグラフＧを構築する。
【００４６】
上下の丸いノードは各々視差アフィンパラメータを表し、上のノード（ソース：ｓｏｕｒｃｅ）は視差関数設定部１８が設定した視差アフィンパラメータｆα、下のノード（シンク：ｓｉｎｋ）は視差アフィンパラメータマップの中間結果Ｆｃｕｒを表す。四角のノードｐ，ｑ，ｒ，ｓは各々画素に対応する。すなわち横に並んだ４つの画素から構成される画素の場合に生成されるグラフを例示している。
【００４７】
これら４つのノードは、隣り合う同士が結ばれており、さらに、上下のノード（シンクとノード）と結合されている。これらの結合をリンクと呼び、各リンクにデータ項計算部２０、または、平滑化項計算部２２で計算した重みを付与する。
【００４８】
（９−１）データ項計算部２０
データ項計算部２０では、シンク、または、ノードと各点を結ぶリンクに重みを付与する。ソース（α）からノードｐ，ｑ，ｒ，ｓへのリンクには、初期化部１６で計算した相違度Ｄｐ（α’），Ｄｑ（α’），Ｄｒ（α’），Ｄｓ（α’）を付与する。
【００４９】
ソースから各ノードへのリンクに与える相違度は、例えば、Ｄｐ（α’）の場合は、視差アフィンパラメータマップの中間結果Ｆｃｕｒの点ｐの視差関数が特定する視差の相違度とし、Ｄｑ（α’），Ｄｒ（α’），Ｄｓ（α’）も同様に定義する。
【００５０】
各ノードからシンクへのリンクに与える相違度は、視差関数設定部１８が供給した視差アフィンパラメータｆαによって特定される視差の相違度を用いる。
【００５１】
（９−２）平滑化項計算部２２
平滑化項計算部２２では互いに隣接するノードを結ぶリンクに重みを付与する。例えば、画素（ノード）ｐと画素（ノード）ｑを結ぶリンクに付与する重みＶｐ，ｑ（ｆｐ，ｆｑ）は式（１０）で与えられる。
【数１０】
2009133753.tif 000012
【００５２】
ｆｐ，ｆｑは各々画素（ノード）ｐとｑの視差アフィンパラメータを表し、λは正定数、Ｔ（・）は引数として与えた条件が真であるときに１、それ以外は０を返す演算子である。
【００５３】
つまり、Ｖｐ，ｑ（ｆｐ，ｆｑ）は画素（ノード）ｐとｑの視差アフィンパラメータが一致する場合に０、異なる場合にλとなる。λは全ての画素に対して同じ値を用いても良いが、対応画素の輝度の差に応じて変化させても良い。
【００５４】
（１０）視差関数選択部２４
視差関数選択部２４は、データ項計算部２０と平滑化項計算部２２が構築したグラフを２つに分割することによって、視差アフィンパラメータを更新する。分割方式を以下に説明する。
【００５５】
まず、分割は一方のソースが含まれ、他方にはシンクが含まれるものとする。ソースが含まれる方のノードの集合をＳとする。Ｓから出てＳ以外のノードに向かうリンクの集合をカット、カットに含まれるリンクの重みをカット容量と呼ぶ。
【００５６】
例えば、図５の点線が示す分割の場合、集合Ｓの要素はソースとノードｐ，ｑであり、カットは、ｐとシンク、ｑとシンク、ｒとソース、ｓとソース、ｒとｓを各々結ぶ合計の５本のリンクから構成される。
【００５７】
全ての可能なカットの中でカット容量が最小となるカットを「最小カット」と呼ぶ。視差関数選択部２４は、最小カットによりグラフＧを分割する。最小カットは例えばグラフカットアルゴリズムより求める。
【００５８】
分割後、ソースを含む部分集合（Ｓ）に含まれる画素（ノード）のアフィン視差関数をｆαと更新し、Ｓに含まれない画素（ノード）のアフィン視差関数は変更しない。
【００５９】
変更後の視差アフィンパラメータマップＦは、視差関数設定部１８で設定した全ての視差関数に対する処理が終了していなければ、中間結果として視差関数設定部１８に供給し、終了していれば、Ｆを視差データの最終結果として出力する。
【００６０】
（１１）変更例
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しな範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【００６１】
その他、本発明の要旨を逸脱しな範囲で変形を実施できる。
【００６２】
（１１−１）変更例１
本実施形態では、２台のカメラを左右平行に並べた場合のステレオ視について説明したが、上下に並べても良いし、３台以上のカメラを用いても良い。
【００６３】
（１１−２）変更例２
本実施形態では、エネルギー最小化手法としてグラフカットを使用したが、信念伝播法（Belief Propagation）等の他の最適化アルゴリズムを用いても良い。
【００６４】
（１１−３）変更例３
本実施形態では、全画素の視差をエネルギー最小化手法を用いて大域推定する場合について説明したが、特定の領域に対して処理を行なっても良い。
【００６５】
例えば、まず、ブロックマッチングで視差を求め、物体表面の勾配を推定し、画像面に平行でない局所勾配を持つ領域についてのみ、本実施形態で説明した方式で視差を求めても良い。
【００６６】
（１１−４）変更例４
本実施形態では、視差関数を一次関数として設定したが、これに限らず、曲面を表す二次関数やその他の関数でもよい。
【図面の簡単な説明】
【００６７】
【図１】本発明の一実施形態のステレオ視差計算装置の構成図である。
【図２】ステレオ視差計算装置で使用する座標系を説明するための図である。
【図３】視差関数を説明するための図である。
【図４】グラフＧを説明するための図である。
【図５】グラフＧの分割を説明するための図である。
【符号の説明】
【００６８】
１０    ステレオ視差計算装置
１２    画像入力部
１４    画像蓄積部
１６    初期化部
１８    視差関数設定部
２０    データ項計算部
２２    平滑化項計算部
２４    視差関数選択部
【図１】
2009133753.tif 000013
【図２】
2009133753.tif 000014
【図３】
2009133753.tif 000015
【図４】
2009133753.tif 000016
【図５】
2009133753.tif 000017