説明

画像処理装置及びその方法

【課題】左右の画像間の各点の対応関係を、画像間の視差に関するエネルギー関数を最小化することにより特定する画像処理装置であって、ステレオ画像間の対応づけを高精度に行なう。
【解決手段】視差を画像位置の関数として表現した複数の視差関係を設定する視差関数設定部18と、前記設定した視差関数が規定する画像間の対応領域の類似度を計算するデータ項計算部20と、視差関数の近傍画素との整合性を計算する平滑化項計算部22と、前記設定した複数の視差関数から画像の各点毎に視差関数を選択する視差関数選択部24とを具備する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数台のカメラを用いて対象物までの距離をステレオ視差を用いて測定する画像処理装置及びその方法に関する。
【背景技術】
【0002】
2つのカメラを用いて三角測量により、対象物までの距離を測定するステレオ視は、様々な分野で利用されている有用な画像処理技術である。
【0003】
ステレオ視において最も重要かつ困難な課題は、ステレオ画像間の対応点を探索し、対応点の位置の相違(すなわち、「視差」である)を画像毎に求めることである。ステレオ視差計算には様々な方式があるが、これらはローカル方式とグローバル方式に大別できる。
【0004】
ローカル方式では、局所的な輝度パターンの(非)類似性をウィンドウ内のSAD(Sum of Absolute Difference)やSSD(Sum of Squared Difference)、NNC(Normalized cross correlation)等で計算し、エピポーララインで最も似ている点を対応点とする。このローカル方式は処理がシンプルであり、基本的に各点独立に視差を求めることができるので、処理の並列化を含めた高速化が容易である。しかしその反面、周囲に十分な輝度変化がない点は、視差を正確に求めることはできないという問題点がある。
【0005】
一方、グローバル方式では、全画素の視差に対するエネルギー関数を定義し、その関数が最小となる視差の組合せを求める(例えば、非特許文献1参照)。このグローバル方式では大域的な視差推定を行なうので、模様のない領域であっても視差を復元することができる。
【非特許文献1】V. Kolmogorov and R. Zabih,「Computing Visual Correspondence with Occlusions using Graph Cuts」, IEEE International Conference on Computer Vision(ICCV),2001
【発明の開示】
【発明が解決しようとする課題】
【0006】
ステレオ視差計算は、画像Pの各点p∈Pに対し、予め用意した視差候補ラベルLの中から適切なラベルfを選択して割り当てるという問題に一般化できる。
【0007】
下記の式(1)のエネルギー関数E(f)を最小にするラベルが求める視差となる。
【数1】

【0008】
ここで、f=(f,f,・・・,f,・・・,f|P|)は画像Pの全画素に対するラベルである。|P|は画素数を表す。
【0009】
式(1)の第1項のEdata(f)はデータ項と呼ばれ、推定ラベルと観測データの不一致度(通常、一致する時が0)を表し、式(2)で与えられる。
【数2】

【0010】
ここでD(f)は画素pの推定ラベル(視差)としてfを割り当てるコストを表す。
【0011】
点毎に独立にラベル(視差)推定を行なうローカル方式では、この第1項が最小となるfを求めていることになる。第2項Esmoothは平滑項と呼ばれ、fが局所的に滑らかでない程度を表しており、式(3)で与えられる。
【数3】

【0012】
ここでNは隣接する点の集合であり、Vp,q(fp,)は点pと点qの識別ラベルとして各々fとfを割り当てるコストを表す。
【0013】
さらに、Vp,q(fp,)としては下記の式(4)のモデルが一般的である。
【数4】

【0014】
但し、T(・)は引数として与えた条件が真であるときに1、それ以外は0を返す演算子である。
【0015】
がfと等しくないならT=1、f=fならT=0となるので、隣接画素の視差が異なれば正定数のペナルティλを与え、等しければ0とする。これは局所的に均一な視差、言い替えれば局所的に画像面に平行に勾配を持つ物体表面は正しく復元されにくいということになる。
【0016】
例えば、車に搭載したステレオカメラで道路シーンの視差を復元する場合、通常、動路面の法線ベクトルとカメラの光軸はほぼ直交し、局所的に一様な視差を持つという仮定が成り立たないため、視差を正しく推定することができないという問題点がある。
【0017】
そこで本発明は、上記問題点を解決するためになされたものであり、従来技術に比べ高精度に視差を計算することができる画像処理装置及びその方法を提供することを目的とする。
【課題を解決するための手段】
【0018】
本発明は、異なる位置で撮影され共通の視野を有する第1の画像と第2の画像とを入力する入力部と、前記第1の画像上の複数の注目点の各々について、前記各注目点の座標から視差を求めるための視差関数を記憶する視差関数記憶部と、前記各注目点の座標から前記視差関数に基づく視差を求める第1の計算部と、前記求められた視差に基づいて、前記注目点に対応する前記第2の画像上の対応点を求める第2の計算部と、前記各注目点の輝度と前記対応点の輝度との輝度差を計算する輝度差計算部と、前記各注目点の前記視差関数と前記各注目点の周囲にある他の注目点の前記視差関数とが類似するほど小さい値となる整合度を計算する整合度計算部と、前記各注目点の前記視差関数を変えながら、前記輝度差と前記整合度との前記複数の注目点に関する和が最小になる前記視差関数の組み合わせを求める視差関数探索部と、を有する画像処理装置である。
【発明の効果】
【0019】
本発明によれば、物体表面の局所的な勾配方向や模様の有無に関わらず、ステレオ画像から高密度で高精度な視差データを取得できる。
【発明を実施するための最良の形態】
【0020】
本発明の一実施形態の画像処理装置であるステレオ視差計算装置について図1〜図5に基づいて説明する。
【0021】
(1)ステレオ視差計算装置10の構成
ステレオ視差計算装置10の概略構成を図1に示す。
【0022】
ステレオ視差計算装置10は図1のように画像入力部12、画像蓄積部14、初期化部16、視差関数設定部18、データ項計算部20、平滑化項計算部22、視差関数選択部24から構成され、任意画像の視差関数が処理結果として出力される。
【0023】
(2)視差関数
「視差関数」とは、視差を画像位置(x,y)の関数として表現したものであり、画像位置の関数であれば形態は任意であるが、本実施形態では画像位置について式(5)に示す一次関数とする。
【数5】

【0024】
視差関数のf=(α,β,γ)を「視差アフィンパラメータ」と呼ぶ。視差アフィンパラメータと視差関数は一対一に対比するから各点の視差関数を求めることと、視差アフィンパラメータfを求めることは同じである。
【0025】
また、画像全点の視差をまとめて示す場合は「視差マップ」、同様に視差アフィンパラメータをまとめて示す場合は「視差アフィンパラメータマップ」と呼ぶ。画像に通し番号1,2,・・・,p,・・・,|P|を付与すると、視差アフィンパラメータマップFは式(6)により与えられる。このFが求めるべき変数である。
【数6】

【0026】
(3)画像入力部12
画像入力部12は、カメラを用いて撮影視点が異なる複数枚の画像を入力する。
【0027】
これら複数視点画像は、2台以上のカメラで同時に撮影しても良いし、撮影シーンに動く物体が含まれない場合には1台のカメラを移動させて撮影しても良い。また、視野に重なりがあれば互いの向きも任意である。
【0028】
本実施形態では、同一の2台のカメラを左右平行に配置してステレオ画像を撮影する状況を想定する。ステレオカメラに図2に示す座標系を設定する。原点を右カメラの視点(レンズ中心)にとり、左右カメラの視点を結ぶ直線をX軸、鉛直下向きにY軸、カメラの光軸方向にZ軸を設定する。カメラ間の距離(基線長)をB、左カメラの位置を(−B,0,0)とする。
【0029】
さらに、図2に示すように右画像に対し、水平、垂直方向に各々x,y軸、同様に左画像に対してx′,y′軸を設定し、各画像の水平方向はX軸方向と一致するものとする。
【0030】
このような場合、右画像上の点(x,y)の左画像の対応点を(x′,y′)とすると、y=y′となるので、水平方向の位置の違いのみを考えれば良い。以下ではこの水平位置の違いを視差と呼び、右画像を基準画像として、d=x′−xと表記する。
【0031】
(4)画像蓄積部14
画像蓄積部14は、画像入力部12により入力されたステレオ画像を画像メモリに蓄積する。
【0032】
(5)初期化部16
初期化部16は、基準画像の各点の視差関数、すなわち、視差アフィンパラメータマップFを初期化する。
【0033】
初期値は任意の値でも良いが、例えば、ブロックマッチングで計算した視差マップを初期値として用いても良い。
【0034】
また、探索範囲内の任意の視差d(dmin<=d<=dmax)を仮定した時のステレオ画像間の対応画素の相違度を、各画素pについて計算する。対応画素の相違度はI,I′をステレオ画像とし、I(p)等を点pの輝度値とすると、前記の視差dを用いて式(7)のように計算する。
【数7】

【0035】
上記では相違度を対応画素の輝度値の差の自乗としたが、対応画素周囲の輝度の差の絶対値の総和や、輝度の差の自乗和、正規化相互相関を用いても良い。但し他の尺度が相違度(不一致度)を表すのに対し、正規化相互相関は一致度を表すので、符号の反転等の適当な変換を行なう必要がある。
【0036】
(6)視差関数設定部18
視差関数設定部18は、初期化部16、または、後ほど説明する視差関数選択部24から供給される視差アフィンパラメータマップFの中間結果と、視差関数fαをデータ項計算部20と平滑化項計算部22に供給する。
【0037】
視差関数fαは対象とするシーンに関する事前知識を用いて予め複数設定しておき、それを順次使用すれば処理の効率化を図ることができる。
【0038】
一次の視差関数は実空間では平面を表すが、まずその理由について説明する。
【0039】
図2に示した座標系において、空間中の点(X,Y,Z)の基準画像への投影位置(x,y)、及び、視差dは式(8)により与えられる。
【数8】

【0040】
ここでレンズの焦点距離は簡単のため省略した。
【0041】
空間中の平面πの方程式をZ=pX+qY+rとして、式(8)を用いてX,Y,Zを消去すると空間平面πの方程式は、
【数9】

【0042】
となり、一次の視差関数となる。
【0043】
但し、α=−pγ,β=−qγ,γ=B/rである。
【0044】
視差関数は実空間では平面を表すので、視差関数設定部18は実空間において存在し得る平面に対応する視差関数を設定する。例えば、道路シーンの場合には、物体は道路面の上方に存在すると仮定できる場合が多いので、基準面(道路)より上に存在する平面の視差関数を考えれば良いことになる。図3に水平面(Y=一定)と垂直面(Z=一定)の2つの視差関数を例示する。
【0045】
(9)データ項計算部20と平滑化項計算部22
データ項計算部20と平滑化項計算部22は、視差関数設定部18が供給した視差アフィンパラメータfαと視差アフィンパラメータマップの中間結果Fcurから図4に示すようなグラフGを構築する。
【0046】
上下の丸いノードは各々視差アフィンパラメータを表し、上のノード(ソース:source)は視差関数設定部18が設定した視差アフィンパラメータfα、下のノード(シンク:sink)は視差アフィンパラメータマップの中間結果Fcurを表す。四角のノードp,q,r,sは各々画素に対応する。すなわち横に並んだ4つの画素から構成される画素の場合に生成されるグラフを例示している。
【0047】
これら4つのノードは、隣り合う同士が結ばれており、さらに、上下のノード(シンクとノード)と結合されている。これらの結合をリンクと呼び、各リンクにデータ項計算部20、または、平滑化項計算部22で計算した重みを付与する。
【0048】
(9−1)データ項計算部20
データ項計算部20では、シンク、または、ノードと各点を結ぶリンクに重みを付与する。ソース(α)からノードp,q,r,sへのリンクには、初期化部16で計算した相違度D(α’),D(α’),D(α’),D(α’)を付与する。
【0049】
ソースから各ノードへのリンクに与える相違度は、例えば、D(α’)の場合は、視差アフィンパラメータマップの中間結果Fcurの点pの視差関数が特定する視差の相違度とし、D(α’),D(α’),D(α’)も同様に定義する。
【0050】
各ノードからシンクへのリンクに与える相違度は、視差関数設定部18が供給した視差アフィンパラメータfαによって特定される視差の相違度を用いる。
【0051】
(9−2)平滑化項計算部22
平滑化項計算部22では互いに隣接するノードを結ぶリンクに重みを付与する。例えば、画素(ノード)pと画素(ノード)qを結ぶリンクに付与する重みVp,q(f,f)は式(10)で与えられる。
【数10】

【0052】
,fは各々画素(ノード)pとqの視差アフィンパラメータを表し、λは正定数、T(・)は引数として与えた条件が真であるときに1、それ以外は0を返す演算子である。
【0053】
つまり、Vp,q(f,f)は画素(ノード)pとqの視差アフィンパラメータが一致する場合に0、異なる場合にλとなる。λは全ての画素に対して同じ値を用いても良いが、対応画素の輝度の差に応じて変化させても良い。
【0054】
(10)視差関数選択部24
視差関数選択部24は、データ項計算部20と平滑化項計算部22が構築したグラフを2つに分割することによって、視差アフィンパラメータを更新する。分割方式を以下に説明する。
【0055】
まず、分割は一方のソースが含まれ、他方にはシンクが含まれるものとする。ソースが含まれる方のノードの集合をSとする。Sから出てS以外のノードに向かうリンクの集合をカット、カットに含まれるリンクの重みをカット容量と呼ぶ。
【0056】
例えば、図5の点線が示す分割の場合、集合Sの要素はソースとノードp,qであり、カットは、pとシンク、qとシンク、rとソース、sとソース、rとsを各々結ぶ合計の5本のリンクから構成される。
【0057】
全ての可能なカットの中でカット容量が最小となるカットを「最小カット」と呼ぶ。視差関数選択部24は、最小カットによりグラフGを分割する。最小カットは例えばグラフカットアルゴリズムより求める。
【0058】
分割後、ソースを含む部分集合(S)に含まれる画素(ノード)のアフィン視差関数をfαと更新し、Sに含まれない画素(ノード)のアフィン視差関数は変更しない。
【0059】
変更後の視差アフィンパラメータマップFは、視差関数設定部18で設定した全ての視差関数に対する処理が終了していなければ、中間結果として視差関数設定部18に供給し、終了していれば、Fを視差データの最終結果として出力する。
【0060】
(11)変更例
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しな範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【0061】
その他、本発明の要旨を逸脱しな範囲で変形を実施できる。
【0062】
(11−1)変更例1
本実施形態では、2台のカメラを左右平行に並べた場合のステレオ視について説明したが、上下に並べても良いし、3台以上のカメラを用いても良い。
【0063】
(11−2)変更例2
本実施形態では、エネルギー最小化手法としてグラフカットを使用したが、信念伝播法(Belief Propagation)等の他の最適化アルゴリズムを用いても良い。
【0064】
(11−3)変更例3
本実施形態では、全画素の視差をエネルギー最小化手法を用いて大域推定する場合について説明したが、特定の領域に対して処理を行なっても良い。
【0065】
例えば、まず、ブロックマッチングで視差を求め、物体表面の勾配を推定し、画像面に平行でない局所勾配を持つ領域についてのみ、本実施形態で説明した方式で視差を求めても良い。
【0066】
(11−4)変更例4
本実施形態では、視差関数を一次関数として設定したが、これに限らず、曲面を表す二次関数やその他の関数でもよい。
【図面の簡単な説明】
【0067】
【図1】本発明の一実施形態のステレオ視差計算装置の構成図である。
【図2】ステレオ視差計算装置で使用する座標系を説明するための図である。
【図3】視差関数を説明するための図である。
【図4】グラフGを説明するための図である。
【図5】グラフGの分割を説明するための図である。
【符号の説明】
【0068】
10 ステレオ視差計算装置
12 画像入力部
14 画像蓄積部
16 初期化部
18 視差関数設定部
20 データ項計算部
22 平滑化項計算部
24 視差関数選択部

【特許請求の範囲】
【請求項1】
異なる位置で撮影され共通の視野を有する第1の画像と第2の画像とを入力する入力部と、
前記第1の画像上の複数の注目点の各々について、前記各注目点の座標から視差を求めるための視差関数を記憶する視差関数記憶部と、
前記各注目点の座標から前記視差関数に基づく視差を求める第1の計算部と、
前記求められた視差に基づいて、前記注目点に対応する前記第2の画像上の対応点を求める第2の計算部と、
前記各注目点の輝度と前記対応点の輝度との輝度差を計算する輝度差計算部と、
前記各注目点の前記視差関数と前記各注目点の周囲にある他の注目点の前記視差関数とが類似するほど小さい値となる整合度を計算する整合度計算部と、
前記各注目点の前記視差関数を変えながら、前記輝度差と前記整合度との前記複数の注目点に関する和が最小になる前記視差関数の組み合わせを求める視差関数探索部と、
を有する画像処理装置。
【請求項2】
前記視差関数記憶部は、前記各注目点の前記視差関数のパラメータを記憶し、
前記視差関数探索部は、前記パラメータを変えることにより前記視差関数を変える、
請求項1記載の画像処理装置。
【請求項3】
前記視差関数は、d=αx+βy+γで表され、但し、(x,y)は座標、dは視差、α、β、γはパラメータである、
請求項2記載の画像処理装置。
【請求項4】
前記輝度差計算部は、前記注目点の周囲領域の輝度パターンと、前記対応点の周囲領域の輝度パターンとの誤差を前記輝度差として計算する、
請求項1記載の画像処理装置。
【請求項5】
前記第1の画像上の点毎の前記視差関数と、予め設定した道路面を表す関数とに基づいて、前記第1の画像上の道路領域を抽出する道路領域抽出部をさらに有する、
請求項1記載の画像処理装置。
【請求項6】
前記視差関数探索部で求められた前記視差関数に基づいて、前記基準画像上の前記各点の視差を求める視差計算部をさらに有する、
請求項1記載の画像処理装置。
【請求項7】
異なる位置で撮影され共通の視野を有する第1の画像と第2の画像とを入力する入力ステップと、
前記第1の画像上の複数の注目点の各々について、前記各注目点の座標から視差を求めるための視差関数を記憶する視差関数記憶ステップと、
前記各注目点の座標から前記視差関数に基づく視差を求める第1の計算ステップと、
前記求められた視差に基づいて、前記注目点に対応する前記第2の画像上の対応点を求める第2の計算ステップと、
前記各注目点の輝度と前記対応点の輝度との輝度差を計算する輝度差計算ステップと、
前記各注目点の前記視差関数と前記各注目点の周囲にある他の注目点の前記視差関数とが類似するほど小さい値となる整合度を計算する整合度計算ステップと、
前記各注目点の前記視差関数を変えながら、前記輝度差と前記整合度との前記複数の注目点に関する和が最小になる前記視差関数の組み合わせを求める視差関数探索ステップと、
を有する画像処理方法。
【請求項8】
前記視差関数記憶ステップは、前記各注目点の前記視差関数のパラメータを記憶し、
前記視差関数探索ステップは、前記パラメータを変えることにより前記視差関数を変える、
請求項7記載の画像処理方法。
【請求項9】
前記視差関数は、d=αx+βy+γで表され、但し、(x,y)は座標、dは視差、α、β、γはパラメータである、
請求項8記載の画像処理方法。
【請求項10】
前記輝度差計算ステップは、前記注目点の周囲領域の輝度パターンと、前記対応点の周囲領域の輝度パターンとの誤差を前記輝度差として計算する、
請求項7記載の画像処理方法。
【請求項11】
前記第1の画像上の点毎の前記視差関数と、予め設定した道路面を表す関数とに基づいて、前記第1の画像上の道路領域を抽出する道路領域抽出ステップをさらに有する、
請求項7記載の画像処理方法。
【請求項12】
前記視差関数探索部で求められた前記視差関数に基づいて、前記基準画像上の前記各点の視差を求める視差計算ステップをさらに有する、
請求項7記載の画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2009−133753(P2009−133753A)
【公開日】平成21年6月18日(2009.6.18)
【国際特許分類】
【出願番号】特願2007−310775(P2007−310775)
【出願日】平成19年11月30日(2007.11.30)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】