[発明者による知見]
本発明者らは、デジタル画像を用いた測距精度の向上のために、デジタル画像の画素単位よりも細かいサブピクセル精度で、画像間の視差値を算出する技術を検討した。なお、視差値の単位は、1画素つまりピクセルであり、サブピクセルは、1画素未満を示す。本発明者らは、特許文献1及び非特許文献1に開示される技術を、以下に説明するように検討した。例えば、特許文献1に開示される従来技術では、複数のカメラ又は複眼カメラで撮像された複数の画像であるステレオ画像それぞれの画素が、センサス変換され、各画素について、センサス変換後の特徴量であるセンサス特徴量が算出される。さらに、ステレオ画像間において、各画素のセンサス特徴量の相違度が、ハミング距離を用いて算出される。一方の画像における着目画素について、当該着目画素とのハミング距離が最小となる画素が他方の画像から抽出され、抽出された画素は、着目画素に対応する画素に決定される。さらに、他方の画像における着目画素に対応する画素とその近傍の画素とについて、着目画素に対するハミング距離と、画素間の位置関係とに基づき、等角フィティングと呼ばれる方法を用いることによって、1画素未満のサブピクセル精度で視差値が算出される。
例えば、図1は、特許文献1が開示するイメージ処理システムを示す。このシステムは、左右のカメラ21及び22で撮像されたオリジナルイメージデータ200及び201から、視差イメージ290を生成する。視差イメージ290は、オリジナルイメージの中の個々のイメージ要素に対する選択された最適な視差の組である。この視差イメージ290を得るために、イメージデータ200及び201は、変換され、これらの間で相関演算され、エラー及び信頼性の検査がなされる。
例えば、左カメラ21及び右カメラ22が、光景10をキャプチャし、フレームグラバ及びデジタイザが、再構成可能なイメージの処理システムにイメージデータを提供する。個別のピクセル要素及びその各々の輝度の形態である左のイメージデータ200及び右のイメージデータ201はそれぞれ、左の輝度イメージ210及び右の輝度イメージ211にマッピングされる。これらの輝度イメージそれぞれは、Xの幅であり、Yの高さであり、つまり、X×Yの輝度イメージである。センサス変換又はランク変換のような非パラメトリック局所変換215及び216が、これらの輝度イメージの各々に適用される。変換215は、矢印218によって示されるように、左の輝度イメージ210に適用されて、変換されたベクトル左イメージ220を生成する。同様に、変換216は、矢印219によって示されるように、右の輝度イメージ211に適用されて、変換されたベクトル右イメージ221を生成する。これらの変換は、これら2つの輝度イメージ各々の中のイメージ要素の近隣部、又はウインドウの中における2つの輝度イメージのイメージ要素の実質的に全てに適用される。従って、ウインドウのサイズ及び参照イメージ要素の位置は、輝度イメージの端のどのイメージ要素が変換計算で無視されるかを決定する。これらの無視されたイメージ要素は、参照イメージ要素としては使用されないが、当該イメージ要素は、他の参照イメージ要素の変換ベクトルの計算では、依然として使用され得る。
図1のイメージ処理システムは、相関合計プロセス225をさらに含む。相関合計プロセス225は、左イメージ220と右イメージ221との間の対応の決定における1つのステップである。相関合計プロセス225は、左イメージ220のための相関ウインドウの内部の変換ベクトル、及び右イメージ221の中の同じサイズの相関ウインドウの内部の変換ベクトルに動作して、単一の矢印226で示されるように、相関合計マトリクス230を生成する。この相関合計マトリクス230の生成において、左又は右イメージ220又は221の何れかが参照イメージとして使用され、もう一方のイメージの中のウインドウがシフトされる。右イメージ221が参照イメージとして取り扱われるならば、相関合計マトリクス230は、相関ウインドウの中の右イメージ221の各右イメージ要素がどのように相関しているか、又は、左イメージ220の左イメージ要素の右イメージ要素からのシフト若しくは視差の各々についての相関ウインドウの中で左イメージ要素にどのように対応しているかを示すデータを含む。定義によって、特定の左イメージ要素の、右イメージ要素の様々なシフト若しくは視差との相関又は対応を示すデータは、やはり相関合計マトリクス230に含まれている。これらの視差に基づく相関合計及び相関合計マトリクス230、矢印231で示される最適視差は、各右イメージ要素について選択され、外部インデックス(「指標」とも呼ばれる)アレイ270に記憶され得る。最終的な視差イメージ290は、その後に、矢印271で示されるように、外部インデックスアレイ270で決定される。ステレオ視の場合には、視差は、変換イメージ1のウインドウと変換イメージ2のウインドウとの間の水平オフセットである。
図1では含まれていないが、特許文献1は、等角フィッティング法(「等角直線フィッティング法」とも呼ばれる)により、サブピクセル精度の視差を導出することを開示している。この等角フィッティング法では、相関合計の最小値を与える視差値、及び、その前後の視差値、例えば相関合計の最小値を与える視差値±1の視差値のそれぞれについての相関合計の値(以下、「相関合計値」とも呼ぶ)と、視差値との関係に対して、V字型又は逆V字型の関数の関係が当てはめられる。
例えば、図2A及び図2Bは、特許文献1に開示される等角フィッティング法を説明する図である。図2Aにおいて、相関合計値及び視差値の関係が示され、相関合計値は、視差値2において、最小値Y2である。この場合、相関合計値が最小値Y2であり且つ視差値が2である点Aに加えて、視差値1且つ相関合計値Y1の点Bと、視差値3且つ相関合計値Y3の点Cが用いられる。さらに、図2Bに示すように、これら3点を通るV字型の関数が当てはめられる。このとき、V字型の関数の2つのラインの傾きの絶対値は、点A及び点Bの間の視差値の差異に対する相関合計値の差異の傾きの絶対値と、点A及び点Cとの間の視差値の差異に対する相関合計値の差異の傾きの絶対値とのうち、大きい方と等しくされる。具体的には、図2Aでは、点Aと点Cとの間の傾きである相関合計値の差分(Y3−Y2)の絶対値の方が、点Aと点Bとの間の傾きである相関合計値の差分(Y2−Y1)の絶対値よりも大きい。このため、(Y3−Y2)の絶対値が、V字型の関数の傾きに採用される。V字型の関数では、V字の頂点の両側のラインの傾きの絶対値が同じである。つまり、両側のラインと水平ラインとの角度1及び2が同じである。これにより、点Bを通り且つ上記傾きの絶対値で負の傾きを持つ直線と、点A及び点Cを通り且つ上記傾きの絶対値で正の傾きを持つ直線とが、形成される。これら2つの直線の交点Dを求めることにより、1画素未満の間隔のサブピクセル精度で、視差値が求められる。例えば、図2Bの例では、視差値は1.8である。
図1における視差イメージ290の決定は、3つのオプションの信頼/エラー検出検査、すなわち、対象演算、左右一貫性検査、及びモードフィルタを含み得る。対象演算は、輝度イメージが高レベル信頼に関連しているかを、キャプチャされた光景の模様(テクスチャ)に基づいて決定する。これにより、均一な模様(テクスチャ)である光景のイメージ要素に関連している対象演算は、模様(テクスチャ)が変化している光景よりも、低い信頼を有する。対象演算は、輝度イメージの一つのみ、左側或いは右側の輝度イメージのいずれかのみに、適用される。しかしながら、他の態様では、両輝度イメージに適用される対象演算がカバーされ得る。図1では、対象演算235は、矢印236によって示されるように、右輝度イメージ2に適用され、対象ウインドウの内部の各イメージ要素について、矢印237で示されるように、合計のスライディング視差(SSD)アレイ240を生成する。閾値演算241の適用によって、最終対象結果アレイ250が対象結果として生成される。対象結果は、特定のイメージ要素がこのイメージ処理システムの中に確立された信頼閾値をパスするかどうかを反映するデータを含む。対象結果アレイ250の中のデータに基づいて、視差イメージ290は、外部インデックスアレイ270に関連して決定され得る。
左右一貫性検査は、エラー検出の形態である。この検査は、右イメージの中のイメージ要素によって最適イメージ要素として選択された左イメージの中のイメージ要素が、最適イメージ要素として、右イメージの中の同じイメージ要素をまた選択する事を、決定且つ確認する。左右一貫性検査245は、矢印246によって示されるように、相関合計アレイ230に適用され、矢印276で示されるように、外部インデックスアレイ270と比較され、矢印247によって示されるように、LR結果アレイ260を生成する。LR結果アレイ260は、左右一貫性検査245をパスするイメージ要素を示すデータを含む。LR結果アレイ260は、外部インデックスアレイ270と協同して、矢印261によって示されるように、視差イメージ290を生成するために使用される。
第3の信頼/エラー検出検査は、モードフィルタである。モードフィルタは、個体群解析に基づいて最適視差を選択することによって、選択された最適視差が高度の一貫性を有するかどうかを決定する。これにより、外部インデックスアレイ270の中の選択された最適視差が、高度の一貫性を示さないならば、その後これらの最適視差は無効にされる。モードフィルタ275は、矢印276に示されるように、外部インデックスアレイ270に動作し、矢印277に示されるように、モードフィルタ外部インデックス(「指標」とも呼ばれる)アレイ280を生成する。モードフィルタ外部インデックスアレイ280は、特定のイメージ要素が視差の一貫性検査をパスした視差を選択したかどうかを示すデータを含む。データ及びモードフィルタ外部インデックスアレイ280は、矢印281に示されるように、外部インデックスアレイ270と協同して視差イメージ290を生成するために使用され得る。
これらの3つの信頼/エラー検出検査を行うかどうかは選択可能である。ある態様では、視差イメージ290の決定に当たってこれらの3つの検査の全てを行い得るが、他の態様では、これらの検査を全く含まなくてもよい。更に他の態様では、これらの検査の組合せが含まれ得る。
例えば、特許文献1に記載されるような従来技術の視差値算出処理は、図3に示すように模式的に示すことができる。なお、図3は、従来技術の視差値算出処理の流れを模式的に示す図である。ステレオ画像である入力画像I1及びI2ではそれぞれ、ステップS1501において、各画素が、センサス変換され、各センサス特徴量が求められる。さらに、ステップS1502では、入力画像I1及びI2の間において、画素間の視差値についてのセンサス特徴量の相関(「相違度」とも呼ばれる)が、入力画像I1及びI2の各画素について視差値毎に算出される。ここでは、ハミング距離によりセンサス特徴量間の相違度算出を行う。
ステップS1503a及びS1503bではそれぞれ、入力画像I1及びI2のうちの一方の画像である基準画像の各画素について、他方の画像における予め設定された探索範囲内の各画素の視差値及び相違度(すなわちハミング距離)から、最小の相違度を与える視差値が選択される。これにより、基準画像の各画素におけるピクセル精度の視差値が得られる。ステップS1503aでは、入力画像I1を基準画像として、ステップS1503bでは、入力画像I2を基準画像として、それぞれにおいて上記処理が行われる。
ステップS1504a及びS1504bではそれぞれ、図2A及び図2Bを用いて説明したような等角フィッティング法により、基準画像I1及び基準画像I2それぞれにおける各画素でのサブピクセル精度の視差値が算出される。具体的には、基準画像の各画素について、最小相違度及びそれを与える視差値と、当該視差値の前後の視差値及びその相違度とを用いて、サブピクセル精度の視差値が算出される。ステップS1505では、基準画像I1の場合の視差値と、基準画像I2の場合の視差値とについて、対応する画素間での一貫性がチェックされる。具体的には、基準画像I1及び基準画像I2の対応する画素間で、双方向の視差値の差が所定の閾値未満であるかがチェックされる。さらに、閾値以上の差を構成する視差値は無効とされ、当該視差値に対応する画素についての視差推定結果は、出力されない。
また、非特許文献1に記載されるようなSemi−Global Maching(以下、「SGM」とも呼ぶ)と呼ばれる視差値算出処理は、図4に示すように模式的に示すことができる。なお、図4は、従来技術のSemi−Global Maching処理の流れを模式的に示す図である。ステップS1601において、入力画像I1及びI2と初期視差画像とが縮小される。初期視差画像は、予め設定された画像であり、各画素は、当該画素における2つの画像間の視差値を画素値として有する。画像の縮小では、画素数が減少される。ステップS1602において、入力画像I1及びI2間の各画素について、視差値毎に相違度が算出される。ステップS1602では、入力画像I1及びI2間の相違度の算出に、相互情報量又は特許文献1と同様のセンサス特徴量を用いたセンサス特徴量間の相違度(ハミング距離)を用いることができる。ステップS1603では、基準画像中の着目画素それぞれについて、着目画素を通る、つまり中心とする8又は16方向の直線上での視差値の分布に対するコストが算出される。ステップS1604では、着目画素を通る8又は16方向の直線上での視差の分布に対するコストに関して、各方向について最小のコストを与える視差値が選択される。つまり、コストが集約される。
ステップS1605a及びS1605bでは、各方向について最小のコストを与える視差値のうちから、最小のコストを与える方向の視差値が選択される。その際、ステップS1605aでは、入力画像I1を基準画像とする視差値が選択され、ステップS1605bでは、入力画像I2を基準画像とする視差値が選択される。ステップS1606では、入力画像I1を基準画像とする視差値と入力画像I2を基準画像とする視差値との一貫性がチェックされる。ステップS1607では、ステップS1606において一貫性チェックが行われた視差値を各画素が画素値として含む視差画像が、拡大される。この拡大では、視差画像に対する空間的な拡大により画素数を増加させる処理と、空間的な拡大に伴って視差値(視差画像の画素値)を大きくする処理との両方が行われる。例えば、空間的な拡大率が2倍の場合、視差値も2倍に変換される。ステップS1608では、ステップS1601〜S1607の処理を繰り返すか否かの終了判断が行われる。
図4において、一例として4段階の繰り返し処理が行われる場合、入力画像I1及びI2に対して、1回目の処理では8分の1に縮小されたスケールで、ステップS1601〜S1608の視差値算出処理がされ、さらに、2回目の処理では4分の1に縮小されたスケールで、3回目の処理では2分の1に縮小されたスケールで、4回目の処理では等倍のスケールで視差値算出処理がされる。そのため、ステップS1608では、繰り返し数が4回目未満の場合、処理が継続され、繰り返し数が4回目の場合、処理が終了する。
SGM及び特許文献1の視差値算出処理の間には、以下のような差異がある。特許文献1では、視差値の探索が局所的な処理(ローカルな処理)で行われており、視差値算出時に、着目画素における視差値とその周囲の画素における視差値との関係について考慮されていない。SGMでは、コスト算出の際、視差値の空間的な変化に対してペナルティを与えることにより、着目画素における視差値がその周囲の画素の視差値と同様の値を取りやすくされている。特許文献1では、視差画像において、ストリーキングアーチファクト(Streaking Artifact)、つまり、エッジ、境界等のライン間で視差値が異なることによる筋状のアーチファクトが生じ得るが、SGMでは、ストリーキングアーチファクトを低減することができる。
しかしながら、特許文献1及び非特許文献1の従来の視差値算出処理では、相違度(つまり、ハミング距離)、又は相違度に基づくコストが最小となる整数画素精度の視差値付近において、具体的には、当該視差値の前後の視差値(当該視差値±1画素の視差値)に対応する相違度又はコストを用いてサブピクセル精度の視差値を算出する場合、得られる視差値の精度が低い、つまり誤差が大きいという問題がある。
本発明者らは、上記問題の発生原因を、以下のように考えた。SAD(Sum of Absolute Difference:輝度値の差の絶対値の合計)及びSSD(Sum of Squared Difference:輝度値の差の2乗の合計)等の輝度差で定義されるコスト関数による視差値算出では、コスト関数の整数画素精度での最小値付近で等角フィッティング又はパラボラフィッティングすることでサブピクセル精度の視差値が算出できることが知られている。このことは、輝度差で定義されるコスト関数の空間的な分布が、その最小値付近で1次式又は2次式でよく近似できることを利用している。このことは、例えば8ビットの画素値の分布を連続量とみなせば、2つの画像の対応点間の画素値の差も連続量とみなせ、±0.5画素程度の区間であれば、低次のテーラー展開でよく近似できるということを意味する。
一方、センサス特徴量間のハミング距離は、着目画素とその周辺画素との間の明るさの大小関係をビット列化したものの差である。このようなハミング距離の最小値付近において、サブピクセル程度の位置変動に対して、ハミング距離が、リニア、つまり直線的に又は2次曲線的に振舞う保証はない。言い換えると、1画素間隔でのハミング距離の変動、すなわち明るさの大小関係の逆転が1画素間隔内で起きる位置は、規則性がないと考えるのが妥当である。このような規則性のない現象については、センサス変換における着目画素の周辺画素である参照画素を増やせば、大数の法則が効くため、滑らかな性質になることが期待される。しかしながら、センサス変換で参照する例えば8画素又は64画素程度の参照画素数では、サブピクセル精度の視差値の算出精度を確保するのに十分なサンプル数になっていないと考えられる。さらに、ハミング距離の最小値付近では、8ビット又は64ビットのビット列中の数ビットしか相違ビットがなく、ハミング距離の最小値付近は、大数の法則が最も効きにくいケースに該当する。
本発明者らは、図5〜図13に示すように、実際に視差値を算出することによって、非特許文献1に記載されるようなSGMを用いた視差値算出処理を検証した。図5は、検証に使用したCG(Computer Graphic)画像であり、図7、図9及び図11は、検証に使用した実写画像である。図6は、図5のCG画像と、このCG画素を水平方向に平行移動した画像とを用いたSGMによる視差値の算出結果を示す。図8は、図7の実写画像と、この実写画素を水平方向に平行移動した画像とを用いたSGMによる視差値の算出結果を示す。図10は、図9の実写画像と、この実写画素を水平方向に平行移動した画像とを用いたSGMによる視差値の算出結果を示す。図12は、図11の実写画像と、この実写画素を水平方向に平行移動した画像とを用いたSGMによる視差値の算出結果を示す。
各画像について、12ケース又は16ケースの水平方向の平行移動が行われ、その内訳は、1.0画素から1.5画素までの0.1画素間隔での移動量による6つケース、又は1.0画素から1.9画素までの0.1画素間隔での移動量による10のケースと、5.0画素から5.5画素までの0.1画素間隔での移動量による6つケースとである。平行移動後の画像である参照画像は、上記移動量での移動後の画像の画素を補間処理することにより、移動の前後で画素座標が対応するように生成した。画素座標は、画像上における2次元座標であり、画像の画素を単位とする座標である。そして、移動前の画像を基準画像として、基準画像と参照画像とから、基準画像の各画素に対応する参照画像の画素の視差値を算出した。例えば、算出視差値が「+1.0」画素又は「−1.0」画素である場合、画素座標で基準画像の画素と同じ位置にある参照画像の画素から、水平方向に、具体的には画素座標のx軸正方向又はx軸負方向に1画素移動した位置の画素は、基準画像の当該画素と同じ被写体を写し出す。
上記の視差値の算出では、上述したように、基準画像の各画素について、SGMで整数精度での視差値における相違度の算出後、最小の相違度を与える画素の視差値と、当該画素の±1画素隣の画素における視差値及び相違度とを用いて、等角フィッティング法によりサブピクセル精度で視差値が算出される。なお、ハミング距離で整数精度での視差値における相違度の算出後、相違度の最小値付近での等角フィッティング法によりサブピクセル精度での視差値の算出を行った場合にも、同様の結果になることは容易に類推できる。
図6、図8、図10及び図12それぞれにおいて、左列は、上記の水平方向の移動量である正解視差値を示し、中列は、左列の移動量から各画素の算出視差値を減じた差の平均値(「mean」とも呼ぶ)を示し、右列は、左列の移動量から各画素の算出視差値を減じた差の2乗平均平方根(「RMS(Root mean square)」とも呼ぶ)を示す。これらの図から、正解視差値が、「1.0」及び「5.0」の整数画素単位の場合と比べて、正解視差値が上記以外のサブピクセル単位の場合の方が、視差値の推定誤差が大きくなる傾向であることがわかる。
なお、整数画素単位の視差値の算出精度が高く、サブピクセル単位の視差値の誤差がランダムな誤差となる場合、整数画素精度の視差値の算出のみを行い、サブピクセル単位の視差値の算出を行わないと仮定する。この場合、正解視差値と算出視差値との関係は、図13に示すように仮定することができる。つまり、サブピクセル単位の視差値は、図13の斜線でハッチングした領域に含まれ、サブピクセル単位の視差値の誤差の分布は、±0.5画素の範囲で一様となると仮定することができる。この場合、サブピクセル単位の視差値の誤差のRMS値は、下記の式1により求まる。
一方、図6において、図5のCG画像について、全ての視差値の誤差のRMS値(全誤差RMS値とも称し、具体的には、1.0から1.9と5.0から5.9までの区間を0.1画素間隔で誤差評価した場合のRMS値である。ここで、1.6から1.9までと5.6から5.9までのRMS値については、1.1から1.4までと5.1から5.4までについてのRMS値を、1.5と5.5に対して折り返す形で用いている。)は、上記式1に示した整数画素精度での視差値算出時の誤差のRMS値を超えている。また、図8、図10及び図12において、実写画像についての全ての視差値の誤差のRMS値は、上記式1に示した誤差のRMS値を下回ってはいるが、いずれのRMS値も、定性的には正解視差値が整数値から離れるにつれて増加しており、サブピクセル精度での視差値の算出が行われていないことを示す。
本発明者らは、上述のような特許文献1及び非特許文献1に記載されるような従来技術の問題点を検討した結果、複数の画像間のサブピクセル精度の視差値の算出精度を向上するために、以下のような技術を創案した。
本開示の一態様に係る視差値算出装置は、プロセッサとメモリとを備え、前記プロセッサは、(a)第1の位置に配置された第1のカメラで撮像された第1の画像と、第2の位置に配置された第2のカメラで撮像された第2の画像とを前記メモリから取得し、ここで、前記第1の画像は複数の第1の画素を有し、前記第2の画像は複数の第2の画素を有し、(b)前記第1の画像において、前記複数の第1の画素毎に、周囲の画素との画素値の比較により、第1のセンサス特徴量を算出し、前記第2の画像において、前記複数の第2の画素毎に、周囲の画素との画素値の比較により、第2のセンサス特徴量を算出し、(c)前記複数の第1の画素それぞれについて、前記第1のセンサス特徴量と、少なくとも1つの前記第2の画素の前記第2のセンサス特徴量とを用いて、前記少なくとも1つの第2の画素それぞれの位置での前記第1の画素に対する視差値に対応する相違度を算出し、(d)前記複数の第1の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第1の画素の整数画素精度の第1の視差値を取得し、(e)前記複数の第1の画素それぞれについて、前記第1の画素の前記第1の視差値及び前記第1の視差値の近傍視差値それぞれに対応する位置の複数の参照画素を、前記第2の画素から抽出し、前記第1の画素及びその周辺画素の画素値と各参照画素及びその周辺画素の画素値との関係に基づく複数のサブピクセル評価値を算出し、前記複数のサブピクセル評価値を用いた等角フィッティングを用いて、前記第1の画素のサブピクセル精度の第2の視差値を算出し、(f)前記複数の第1の画素それぞれの前記第2の視差値を用いて、前記第2の画像に対する前記第1の画像の視差画像における画素毎の視差値を取得する。
上記態様によれば、視差値算出装置は、第1の画像及び第2の画像を用いて、第1の画像の各画素の整数画素精度の視差値を、センサス特徴量及び相違度に基づき算出する。さらに、視差値算出装置は、第1の画像の第1の画素を着目画素として、着目画素と第2の画像の第2の画素である複数の参照画素との間において、それぞれの周辺画素を含めた画素値の関係に基づくサブピクセル評価値を算出し、サブピクセル評価値を用いて、着目画素のサブピクセル精度の視差値を算出する。このような視差値は、第1の画像における着目画素の周囲の画素値の分布、及び、第2の画像における参照画素の周囲の画素値の分布を反映する視差値である。このような視差値からなる視差画像は、被写体のエッジ、境界等のライン間で視差値が異なることによる筋状のアーチファクトが発生することを抑えることができる。よって、視差値算出装置は、複数の画像間の視差値を高い精度で算出することができる。
本開示の一態様に係る視差値算出装置において、前記複数の第1の画素は、第3の画素と、第4の画素と、第5の画素とを含み、前記複数の第2の画素は、第6の画素と、第7の画素と、第8の画素とを含み、前記第4の画素及び前記第5の画素は、前記第1の画像上における前記第3の画素から所定の距離内に位置する前記第3の画素に対する周囲の画素であり、前記第7の画素及び前記第8の画素は、前記第2の画像上における前記第6の画素から所定の距離内に位置する前記第6の画素に対する周囲の画素であり、処理(b)において、前記第3の画素の前記第1のセンサス特徴量は、前記第3の画素の画素値と前記第4の画素の画素値との比較値と、前記第3の画素の画素値と前記第5の画素の画素値との比較値とを有し、前記第6の画素の前記第2のセンサス特徴量は、前記第6の画素の画素値と前記第7の画素の画素値との比較値と、前記第6の画素の画素値と前記第8の画素の画素値との比較値とを有してもよい。
本開示の一態様に係る視差値算出装置において、前記プロセッサは、前記第1のセンサス特徴量と前記第2のセンサス特徴量との間のハミング距離を、前記相違度として算出してもよい。
上記態様によれば、センサス特徴量間のハミング距離を用いた相違度の算出は、簡易である。よって、視差値算出装置は、相違度を簡易に算出することができる。
本開示の一態様に係る視差値算出装置において、前記プロセッサは、処理(e)において、前記第1の画素の前記第1の視差値と、前記第1の視差値の第1の近傍視差値と、前記第1の視差値の第2の近傍視差値とのそれぞれに対応する位置にある第1の参照画素、第2の参照画素及び第3の参照画素を、前記第2の画素から抽出し、前記第1の画素及びその周辺画素の画素値と、前記第1の参照画素及びその周辺画素の画素値との差異に基づく、第1のサブピクセル評価値を算出し、前記第1の画素及びその周辺画素の画素値と、前記第2の参照画素及びその周辺画素の画素値との差異に基づく、第2のサブピクセル評価値を算出し、前記第1の画素及びその周辺画素の画素値と、前記第3の参照画素及びその周辺画素の画素値との差異に基づく、第3のサブピクセル評価値を算出し、前記第1のサブピクセル評価値と前記第1の視差値との組、前記第2のサブピクセル評価値と前記第1の近傍視差値との組、及び、前記第3のサブピクセル評価値と前記第2の近傍視差値との組を用いた等角フィッティングを用いて、前記第1の画素の前記第2の視差値を算出してもよい。
上記態様によれば、視差値算出装置は、第1の画像の第1の画素を着目画素として、着目画素と第2の画像の第1〜第3の参照画素との間において、それぞれの周辺画素を含めた画素値の差異に基づくサブピクセル評価値を算出し、当該サブピクセル評価値を用いた等角フィッティング法により、最適なサブピクセル評価値及び当該サブピクセル評価値に対応するサブピクセル精度の視差値を算出する。よって、視差値算出装置は、着目画素のサブピクセル精度の視差値を高い精度で算出することができる。
本開示の一態様に係る視差値算出装置において、前記プロセッサは、処理(c)と処理(d)との間において、(g)前記第1の画像において、視差値の算出対象の前記第1の画素である着目画素から、所定の方向に位置する前記第1の画素である評価画素それぞれについて、前記評価画素のうち、第1の評価画素に前記所定の方向で隣り合う第2の評価画素の視差値と、前記第2の画像における前記第1の評価画素に対応する位置の対応画素に対する、相違度算出のための探索範囲内の前記第2の画素それぞれの視差値との比較に基づき、前記探索範囲内の前記第2の画素それぞれの第1の評価値を算出し、前記第1の評価画素と前記探索範囲内の前記第2の画素それぞれとの間の相違度と、前記探索範囲内の前記第2の画素それぞれの第1の評価値とに基づき、前記探索範囲内の前記第2の画素それぞれの視差値についての第2の評価値を算出し、前記探索範囲内の前記第2の画素それぞれの視差値に対応する全ての前記評価画素の前記第2の評価値を加算して、加算評価値を算出し、処理(d)において、最小の前記加算評価値に対応する前記視差値を前記着目画素の前記第1の視差値に決定してもよい。
上記態様によれば、第2の評価値は、着目画素の周囲の画素の視差値の変化を相違度に反映した指標である。視差値算出装置は、第2の評価値の和を最小にするような視差値を着目画素の第1の視差値に決定するため、着目画素における第1の視差値がその周囲の画素の視差値と同様の値を取りやすくなり、着目画素における第2の視差値も同様である。よって、視差値算出装置は、被写体のエッジ、境界等のライン間で視差値が異なることによる筋状のアーチファクトが生じるストリーキングアーチファクトを低減し、高い精度で視差値を算出することができる。
本開示の一態様に係る視差値算出装置において、前記プロセッサは、処理(e)において、前記第1の画素について、前記第1の視差値と、前記複数のサブピクセル評価値のうちの最大値又は最小値を与える前記第2の画素に対応する第3の視差値とが一致しない場合、前記第1の画素と前記第1の画素の周囲の画素との間の視差値の連続性に基づき、小数点以下の視差値として−0.5又は0.5の視差値を決定し、決定された視差値を前記第1の視差値に加算した視差値を、前記第1の視差値の代わりに用いてもよい。
上記態様によれば、第1の視差値に基づくサブピクセル評価値の算出精度が向上する。
本開示の一態様に係る視差値算出装置において、前記プロセッサは、処理(b)において、対象画素のセンサス特徴量を算出する際に比較する周囲の画素の領域である比較領域として、前記対象画素を含み且つ前記対象画素に対する位置が異なる複数の前記比較領域を決定し、前記比較領域それぞれについて、前記複数の第1の画素の前記第1のセンサス特徴量と、前記複数の第2の画素の前記第2のセンサス特徴量とを算出し、処理(c)において、前記比較領域それぞれについて、前記相違度を算出し、処理(d)において、全ての前記比較領域の前記相違度のうち、最も小さい相違度に対応する視差値を選択することにより、前記第1の画素の整数画素精度の第1の視差値を取得してもよい。
上記態様によれば、視差値算出装置は、複数の比較領域に関する着目画素の相違度のうち、最も小さい相違度に対応する視差値を着目画素の第1の視差値に決定する。このような第1の視差値は、着目画素に対する比較領域の位置に起因する視差値の誤差を低減し、第2の視差値も同様である。よって、視差値算出装置は、オクルージョンの境界又は視差値が変化する前景及び背景間の境界付近に位置する画素について、視差画像での視差値の差異による境界の位置と、被写体の輪郭の位置とを正確に整合させることができる。
本開示の一態様に係る視差値算出装置において、前記プロセッサは、処理(c)において、前記相違度が算出される前記第1の画素及び前記第2の画素について、前記第1の画素の前記周囲の画素の画素値である輝度値と前記第2の画素の前記周囲の画素の画素値である輝度値との差異と、前記第1の画素の前記周囲の画素の輝度勾配と前記第2の画素の前記周囲の画素の輝度勾配との差異との少なくとも一方に基づく重みを、前記相違度に付加してもよい。
上記態様によれば、第1の画素の周囲の画素の輝度値と第2の画素の周囲の画素の輝度値との差異に基づく重みも、第1の画素の周囲の画素の輝度勾配と第2の画素の周囲の画素の輝度勾配との差異に基づく重みも、着目画素に対する比較領域の配置が固定されていても、比較領域の内部を空間的に重み付けする。これにより、相違度は、輝度値の変化及び/又は輝度勾配の変化を反映することができる。よって、視差値算出装置は、オクルージョンの境界又は視差値が変化する前景及び背景間の境界付近に位置する画素について、着目画素に対して単一の比較領域を用いるだけで、視差画像での視差値の差異による境界の位置と、被写体の輪郭の位置とを正確に整合させることができる。
本開示の一態様に係る視差値算出装置において、前記プロセッサは、処理(g)において、前記第1の評価画素と前記探索範囲内の前記第2の画素との間における画素値の差異である輝度値の差異、前記第1の評価画素と前記探索範囲内の前記第2の画素との間における輝度勾配の差異、並びに、前記第1の評価画素又は前記探索範囲内の前記第2の画素における輝度勾配のうちの少なくとも一つに基づく重みを、前記第1の評価値に付加してもよい。
上記態様によれば、上記重みは、着目画素に対する比較領域の配置が固定されていても、比較領域の内部を空間的に重み付けする。これにより、第1の評価値に基づき算出される加算評価値は、輝度値の変化及び/又は輝度勾配を反映することができる。よって、視差値算出装置は、オクルージョンの境界又は視差値が変化する前景及び背景間の境界付近に位置する画素について、着目画素に対して単一の比較領域を用いるだけで、視差画像での視差値の差異による境界の位置と、被写体の輪郭の位置とを正確に整合させることができる。
本開示の一態様に係る視差値算出方法は、(a)第1の位置に配置された第1のカメラで撮像される第1の画像と、第2の位置に配置された第2のカメラで撮像される第2の画像とを取得し、(b)前記第1の画像において、前記第1の画像の複数の第1の画素毎に、周囲の画素との画素値の比較により、第1のセンサス特徴量を算出し、前記第2の画像において、前記第2の画像の複数の第2の画素毎に、周囲の画素との画素値の比較により、第2のセンサス特徴量を算出し、(c)前記複数の第1の画素それぞれについて、前記第1のセンサス特徴量と、少なくとも1つの前記第2の画素の前記第2のセンサス特徴量とを用いて、前記少なくとも1つの第2の画素それぞれの位置での前記第1の画素に対する視差値に対応する相違度を算出し、(d)前記複数の第1の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第1の画素の整数画素精度の第1の視差値を取得し、(e)前記複数の第1の画素それぞれについて、前記第1の画素の前記第1の視差値及び前記第1の視差値の近傍視差値それぞれに対応する位置の複数の参照画素を、前記第2の画素から抽出し、前記第1の画素及びその周辺画素の画素値と各参照画素及びその周辺画素の画素値との関係に基づく複数のサブピクセル評価値を算出し、前記複数のサブピクセル評価値を用いた等角フィッティングを用いて、前記第1の画素のサブピクセル精度の第2の視差値を算出し、(f)前記複数の第1の画素それぞれの前記第2の視差値を用いて、前記第2の画像に対する前記第1の画像の視差画像における画素毎の視差値を取得し、処理(a)〜処理(f)の少なくとも1つは、少なくとも1つのプロセッサによって実行される。上記態様によれば、本開示の一態様に係る視差値算出装置を同様の効果が得られる。
本開示の一態様に係る視差値算出方法において、前記複数の第1の画素は、第3の画素と、第4の画素と、第5の画素とを含み、前記複数の第2の画素は、第6の画素と、第7の画素と、第8の画素とを含み、前記第4の画素及び前記第5の画素は、前記第1の画像上における前記第3の画素から所定の距離内に位置する前記第3の画素に対する周囲の画素であり、前記第7の画素及び前記第8の画素は、前記第2の画像上における前記第6の画素から所定の距離内に位置する前記第6の画素に対する周囲の画素であり、処理(b)において、前記第3の画素の前記第1のセンサス特徴量は、前記第3の画素の画素値と前記第4の画素の画素値との比較値と、前記第3の画素の画素値と前記第5の画素の画素値との比較値とを有し、前記第6の画素の前記第2のセンサス特徴量は、前記第6の画素の画素値と前記第7の画素の画素値との比較値と、前記第6の画素の画素値と前記第8の画素の画素値との比較値とを有してもよい。
本開示の一態様に係る視差値算出方法において、前記第1のセンサス特徴量と前記第2のセンサス特徴量との間のハミング距離を、前記相違度として算出してもよい。
本開示の一態様に係る視差値算出方法において、処理(e)において、前記第1の画素の前記第1の視差値と、前記第1の視差値の第1の近傍視差値と、前記第1の視差値の第2の近傍視差値とのそれぞれに対応する位置にある第1の参照画素、第2の参照画素及び第3の参照画素を、前記第2の画素から抽出し、前記第1の画素及びその周辺画素の画素値と、前記第1の参照画素及びその周辺画素の画素値との差異に基づく、第1のサブピクセル評価値を算出し、前記第1の画素及びその周辺画素の画素値と、前記第2の参照画素及びその周辺画素の画素値との差異に基づく、第2のサブピクセル評価値を算出し、前記第1の画素及びその周辺画素の画素値と、前記第3の参照画素及びその周辺画素の画素値との差異に基づく、第3のサブピクセル評価値を算出し、前記第1のサブピクセル評価値と前記第1の視差値との組、前記第2のサブピクセル評価値と前記第1の近傍視差値との組、及び、前記第3のサブピクセル評価値と前記第2の近傍視差値との組を用いた等角フィッティングを用いて、前記第1の画素の前記第2の視差値を算出してもよい。
本開示の一態様に係る視差値算出方法において、処理(c)と処理(d)との間において、(g)前記第1の画像において、視差値の算出対象の前記第1の画素である着目画素から、所定の方向に位置する前記第1の画素である評価画素それぞれについて、前記評価画素のうち、第1の評価画素に前記所定の方向で隣り合う第2の評価画素の視差値と、前記第2の画像における前記第1の評価画素に対応する位置の対応画素に対する、相違度算出のための探索範囲内の前記第2の画素それぞれの視差値との比較に基づき、前記探索範囲内の前記第2の画素それぞれの第1の評価値を算出し、前記第1の評価画素と前記探索範囲内の前記第2の画素それぞれとの間の相違度と、前記探索範囲内の前記第2の画素それぞれの第1の評価値とに基づき、前記探索範囲内の前記第2の画素それぞれの視差値についての第2の評価値を算出し、前記探索範囲内の前記第2の画素それぞれの視差値に対応する全ての前記評価画素の前記第2の評価値を加算して、加算評価値を算出し、処理(d)において、最小の前記加算評価値に対応する前記視差値を前記着目画素の前記第1の視差値に決定してもよい。
本開示の一態様に係る視差値算出方法において、処理(e)において、前記第1の画素について、前記第1の視差値と、前記複数のサブピクセル評価値のうちの最大値又は最小値を与える前記第2の画素に対応する第3の視差値とが一致しない場合、前記第1の画素と前記第1の画素の周囲の画素との間の視差値の連続性に基づき、小数点以下の視差値として−0.5又は0.5の視差値を決定し、決定された視差値を前記第1の視差値に加算した視差値を、前記第1の視差値の代わりに用いてもよい。
本開示の一態様に係る視差値算出方法において、処理(b)において、対象画素のセンサス特徴量を算出する際に比較する周囲の画素の領域である比較領域として、前記対象画素を含み且つ前記対象画素に対する位置が異なる複数の前記比較領域を決定し、前記比較領域それぞれについて、前記複数の第1の画素の前記第1のセンサス特徴量と、前記複数の第2の画素の前記第2のセンサス特徴量とを算出し、処理(c)において、前記比較領域それぞれについて、前記相違度を算出し、処理(d)において、全ての前記比較領域の前記相違度のうち、最も小さい相違度に対応する視差値を選択することにより、前記第1の画素の整数画素精度の第1の視差値を取得してもよい。
本開示の一態様に係る視差値算出方法において、処理(c)において、前記相違度が算出される前記第1の画素及び前記第2の画素について、前記第1の画素の前記周囲の画素の画素値である輝度値と前記第2の画素の前記周囲の画素の画素値である輝度値との差異と、前記第1の画素の前記周囲の画素の輝度勾配と前記第2の画素の前記周囲の画素の輝度勾配との差異との少なくとも一方に基づく重みを、前記相違度に付加してもよい。
本開示の一態様に係る視差値算出方法において、処理(g)において、前記第1の評価画素と前記探索範囲内の前記第2の画素との間における画素値の差異である輝度値の差異、前記第1の評価画素と前記探索範囲内の前記第2の画素との間における輝度勾配の差異、並びに、前記第1の評価画素又は前記探索範囲内の前記第2の画素における輝度勾配うちの少なくとも一つに基づく重みを、前記第1の評価値に付加してもよい。
本開示の一態様に係るプログラムは、(a)第1の位置に配置された第1のカメラで撮像された第1の画像と、第2の位置に配置された第2のカメラで撮像された第2の画像とを取得し、(b)前記第1の画像において、前記第1の画像の複数の第1の画素毎に、周囲の画素との画素値の比較により、第1のセンサス特徴量を算出し、前記第2の画像において、前記第2の画像の複数の第2の画素毎に、周囲の画素との画素値の比較により、第2のセンサス特徴量を算出し、(c)前記複数の第1の画素それぞれについて、前記第1のセンサス特徴量と、少なくとも1つの前記第2の画素の前記第2のセンサス特徴量とを用いて、前記少なくとも1つの第2の画素それぞれの位置での前記第1の画素に対する視差値に対応する相違度を算出し、(d)前記複数の第1の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第1の画素の整数画素精度の第1の視差値を取得し、(e)前記複数の第1の画素それぞれについて、前記第1の画素の前記第1の視差値及び前記第1の視差値の近傍視差値それぞれに対応する位置の複数の参照画素を、前記第2の画素から抽出し、前記第1の画素及びその周辺画素の画素値と各参照画素及びその周辺画素の画素値との関係に基づく複数のサブピクセル評価値を算出し、前記複数のサブピクセル評価値を用いた等角フィッティングを用いて、前記第1の画素のサブピクセル精度の第2の視差値を算出し、(f)前記複数の第1の画素それぞれの前記第2の視差値を用いて、前記第2の画像に対する前記第1の画像の視差画像における画素毎の視差値を取得することを、コンピュータに実行させる。上記態様によれば、本開示の一態様に係る視差値算出装置を同様の効果が得られる。
なお、上記の包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読取可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばCD−ROM等の不揮発性の記録媒体を含む。また、装置は、1つ以上の装置で構成されてもよい。装置が2つ以上の装置で構成される場合、当該2つ以上の装置は、1つの機器内に配置されてもよく、分離した2つ以上の機器内に分かれて配置されてもよい。本明細書及び特許請求の範囲では、「装置」とは、1つの装置を意味し得るだけでなく、複数の装置からなるシステムも意味し得る。
以下、本開示に係る視差値算出装置について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも包括的又は具体的な例を示すものである。以下の実施の形態で示される数値、形状、構成要素、構成要素の配置位置及び接続形態、ステップ(工程)、ステップの順序等は、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、各図は模式図であり、必ずしも厳密に図示されたものではない。さらに、各図において、実質的に同一の構成要素に対しては同一の符号を付しており、重複する説明は省略又は簡略化される場合がある。
[実施の形態1]
実施の形態1に係る視差値算出装置100を含む測距システム1を説明する。測距システム1は、複数のカメラで取得された複数の撮像画像から、当該撮像画像内の被写体と複数のカメラとの距離を算出する、つまり、当該撮像画像内の被写体の位置を3次元的に測距する。視差値算出装置100は、測距に用いられる複数の撮像画像間の視差値を算出する。なお、視差値算出装置100が備えられる対象は、測距システム1に限定されず、複数の撮像画像間の視差値を用いるものであれば、いかなる対象でもよい。
図14は、実施の形態1に係る視差値算出装置100を含む測距システム1の機能的な構成の一例のブロック図を示す。図14に示すように、測距システム1は、撮像部10と、記憶部20と、画像処理部30とを備える。撮像部10、記憶部20及び画像処理部30は、1つの機器に搭載されてもよく、複数の機器に分かれて搭載されてもよい。後者の場合、複数の機器は、有線通信又は無線通信を介して、情報を授受してもよい。上記有線通信には、既存のいかなる有線通信が適用されてもよい。上記無線通信には、既存のいかなる無線通信が適用されてもよい。例えば、上記無線通信には、Wi−Fi(登録商標)(Wireless Fidelity)などの無線LAN(Local Area Network)が適用されてもよく、Bluetooth(登録商標)、ZigBee(登録商標)等の近距離無線通信が適用されてもよい。
撮像部10は、画像を撮像して取得し、記憶部20に出力する。撮像部10は、少なくとも2つのカメラを備え、本実施の形態では、異なる光軸中心で配置された2つのカメラ11a及び11bを備える。本実施の形態では、カメラ11a及び11bは、各画素の画素値が輝度値であるデジタル画像を、動画及び/又は静止画として撮像するカメラであるが、いかなるデジタル画像を撮像するカメラであってもよい。カメラ11a及び11bは、別々のカメラを構成してもよく、一体化されて複眼のカメラを構成してもよい。なお、カメラの数量は、2つに限定されず、2つ以上のいかなる数量であってもよい。本実施の形態では、カメラ11a及び11bは、同時に撮像を行う。
例えば、図15には、撮像部10のカメラ11a及び11bの配置例が模式的な斜視図で示されている。さらに、図16には、図15のカメラ11a及び11bの基線長の例が模式的な正面図で示されている。図15の例では、カメラ11a及び11bは、水平方向に並んで配置されている。この場合、カメラ11a及び11bのレンズの中心を結ぶ基線BLは、水平方向に延びる。さらに、カメラ11a及び11bそれぞれの光軸中心OAa及びOAbは、互いから離れて水平方向に並び且つ平行であり、基線BL方向に対して垂直である。この場合、図16に示すように、カメラ11a及び11bの光軸中心OAa及びOAbの距離である基線長Lは、0よりも大きい。さらに、カメラ11a及び11bは、同じ向きDに向けられ、例えば、図15の例では、光軸中心OAa及びOAbは、水平方向に延び且つ向きDに平行である。さらにまた、カメラ11a及び11bの水平スキャン方向と基線BL方向とが平行である。水平スキャン方向は、カメラが有する複数の撮像素子の縦横の並び方向のうちの横方向であり、基線BL方向と同様の水平方向である。複数の撮像素子は、例えば、横方向である水平方向と、これに垂直な縦方向である垂直方向との2つの方向に格子状に平面的に配置されている。ここで、カメラ11aは、第1の位置に配置された第1のカメラの一例であり、カメラ11bは、第2の位置に配置された第2のカメラの一例である。
なお、カメラ11a及び11bの配置は、図15に示すような水平方向に並ぶ配置に限定されず、例えば、図17に示すように、鉛直方向、つまり上下方向に並ぶ配置であってもよい。図17は、撮像部10のカメラ11a及び11bの別の配置例を示す模式的な斜視図である。この場合、基線BLは鉛直方向に延びる。カメラ11a及び11bの光軸中心OAa及びOAbは、互いから離れて鉛直方向に並び且つ平行であり、基線BL方向に対して垂直である。さらに、カメラ11a及び11bは、同じ向きDに向けられ、例えば、図17の例では、光軸中心OAa及びOAbは、水平方向に延び且つ向きDに平行である。さらにまた、カメラ11a及び11bの水平スキャン方向と基線BL方向とが垂直である。
上述のようなカメラ11a及び11bは、同じ被写体を撮像することができるステレオカメラを構成し、このようなカメラ11a及び11bによって撮像された画像は、ステレオ画像を構成する。
本明細書及び特許請求の範囲において、「平行」及び「垂直」とはそれぞれ、完全に平行及び垂直であるケースだけでなく、完全な平行及び垂直に対して差異があるケースも意味し得る。上記差異は、例えば、10°未満の角度の差異であってもよい。
記憶部20は、種々の情報の格納及び取り出しを可能にする。例えば、記憶部20は、撮像部10によって取得された撮像画像を格納する。記憶部20は、撮像部10及び/又は画像処理部30を動作させるためのプログラムを格納してもよい。これらのプログラムは、撮像部10及び画像処理部30が有する図示しないメモリに格納されてもよい。記憶部20は、例えば、ROM(Read-Only Memory)、RAM(Random Access Memory)、フラッシュメモリなどの半導体メモリ、ハードディスクドライブ、又はSSD(Solid State Drive)等の記憶装置によって実現される。ここで、記憶部20は、メモリの一例である。
画像処理部30は、視差値算出装置100と、距離算出部31と、出力部32とを備える。さらに、視差値算出装置100は、センサス変換部101と、相違度算出部102と、視差選択部103と、サブピクセル視差算出部104とを含む。上記の画像処理部30及び視差値算出装置100の各構成要素は、CPU(Central Processing Unit)又はDSP(Digital Signal Processor)等のプロセッサ、並びに、RAM及びROM等のメモリなどからなるコンピュータシステム(図示せず)により構成されてもよい。各構成要素の一部又は全部の機能は、CPU又はDSPがRAMを作業用のメモリとして用いてROMに記録されたプログラムを実行することによって達成されてもよい。また、各構成要素の一部又は全部の機能は、電子回路又は集積回路等の専用のハードウェア回路によって達成されてもよい。各構成要素の一部又は全部の機能は、上記のソフトウェア機能とハードウェア回路との組み合わせによって構成されてもよい。プログラムは、アプリケーションとして、インターネット等の通信網を介した通信、モバイル通信規格による通信、その他の無線ネットワーク、有線ネットワーク、又は放送等で提供されるものであってもよい。
視差値算出装置100は、カメラ11a及び11bによって取得された対応する撮像画像を用いて、撮像画像上の様々な位置、具体的には、各画素における撮像画像間の視差を算出し、距離算出部31に出力する。対応する撮像画像の例は、カメラ11a及び11bによって同時刻に撮像された画像である。距離算出部31は、カメラ11a及び11bの撮像画像間の視差に基づき、三角測量の技術を用いて、撮像画像の上の様々な位置、具体的には、各画素における、当該画素に写し出される被写体とカメラ11a及び11bとの距離を算出し、出力部32に出力する。距離算出部31は、被写体とカメラ11a及び11bの基線BLとの距離を算出する。距離算出部31は、各画素の画素値が基準カメラ(カメラ11a又はカメラ11b)の光学中心(図15及び図17におけるOAa又はOAb)からの距離である距離画像を生成してもよい。出力部32は、距離算出部31によって算出された撮像画像の各画素の距離、及び距離画像等の距離情報を、撮像画像と対応付けて、記憶部20、測距システム1を搭載する機器等に出力する。例えば、測距システム1が自動車に搭載される場合、出力部32は、距離情報を自動車のECU(Electronic Control Unit:電子制御ユニット)に出力してもよい。
視差値算出装置100のセンサス変換部101は、入力画像であるカメラ11a及び11bそれぞれの撮像画像I1及びI2をセンサス変換する。センサス変換とは、着目画素とその周囲の周辺画素との大小関係により、着目画素周囲の周辺画素の画素値つまり輝度値の分布をビット列に変換する処理である。具体的には、例えば、着目画素の画素値が周辺画素の画素値よりも大きい場合、当該周辺画素のセンサス変換値は1であり、着目画素の画素値が周辺画素の画素値以下の場合、当該周辺画素のセンサス変換値は0である。センサス変換部101は、撮像画像I1及びI2それぞれの全ての画素に対して、センサス変換する。周辺画素は、着目画素から所定の距離内に位置する画素であり、周辺画素の領域のことを「比較領域」と呼ぶ。
例えば、図18A及び図18Bは、センサス変換における周辺画素の一例を示す。図19A及び図19Bはそれぞれ、図18A及び図18Bの周辺画素のセンサス変換の一例を示す。図18A、図18B、図19A及び図19Bにおいて、ctrは着目画素を示す。図18A及び図19Aは、着目画素の近傍の8画素が周辺画素である例であり、図18B及び図19Bは、着目画素の近傍の64画素が周辺画素である例である。図19A及び図19Bの例ではそれぞれ、センサス変換により、着目画素周囲の周辺画素の画素値の分布は、8ビット又は64ビットのビット列で表すことができる。具体的には、図19A及び図19Bはそれぞれ、センサス変換前の周辺画素及び着目画素の画素値の例と、周辺画素のセンサス変換値の例と、センサス変換値からなるビット列の例とを示す。
例えば、図18A、図18B、図19A及び図19Bにおいて、図面上で水平方向に画素座標のx軸が定義され、上記水平方向の垂直方向に画素座標のy軸が定義され、図面上で水平方向右方向にx軸正方向が定義され、垂直方向下方向にy軸正方向が定義される。x軸は、カメラ11a及び11bの基線BLに沿う方向に延びる。ビット列は、例えば、y座標最小且つx座標最小の周辺画素のセンサス変換値を最初の要素、つまりビットとして含み、さらに、y座標が同じであるx軸正方向の周辺画素のセンサス変換値を順次要素として含み、次いで、y座標を1つずつ増やしつつ、y座標が同じであるx軸正方向の周辺画素のセンサス変換値を順次要素として含む。例えば、図19Aの例では、ビット列は、(00011011)で示される。このようにして、撮像画像I1及びI2それぞれの全ての画素に対して、ビット列が生成される。なお、周辺画素の数量及び配置は、図18A及び18Bの数量及び配置に限る必要はなく、他の数量及び配置であってもかまわない。ここで、センサス変換値からなる上記のようなビット列は、センサス特徴量を構成する。
相違度算出部102は、予め決められた探索範囲内の画素について、撮像画像I1及びI2の間のセンサス特徴量の相違度を算出する。本実施の形態では、センサス特徴量の相違度として、ハミング距離が用いられる。ここで、探索範囲について説明する。探索範囲は、少なくとも1つの画素を含む。図15に示すように、本実施の形態では、カメラ11aは、撮像方向である向きDに向かって、カメラ11bよりも左側に配置され、左カメラを構成し、カメラ11bは、右カメラを構成する。
このようなカメラ11aの撮像画像I1を基準画像とし、カメラ11bの撮像画像I2を参照画像とする場合の探索範囲を説明する。この場合、図20に示すように、例えば、基準画像I1上の画素(以下、「着目画素」とも呼ぶ)I1pは、参照画像I2上の探索範囲内の全ての画素(以下、「参照画素」とも呼ぶ)I2p1〜I2pnそれぞれとの間で、センサス特徴量の相違度が求められる。なお、図20は、相違度の算出の際の画素の探索範囲の一例を示す図である。参照画素I2p1〜I2pnは、着目画素I1pと画素座標のy座標が同じ画素の行を構成し、当該画素の行は、探索範囲を構成する。このような探索範囲は、画素座標における一次元探索範囲であり、参照画像I2における1つの画素の行の全てである。
又は、着目画素I1pは、参照画像I2上における着目画素I1pと同じ画素座標である対応画素I2pmを含むk+1個(kは、正の整数)の参照画素それぞれとの間で、センサス特徴量の相違度が求められてもよい。着目画素I1pの画素座標と、対応画素I2pmの画素座標とは、着目画素I1pでの視差値に対応して異なるが、本実施の形態では、各画素の視差値の初期値を示す初期視差画像における各画素の視差値は0である。このため、着目画素I1pの画素座標と、対応画素I2pmの画素座標が同じである。このような参照画素は、対応画素I2pmとy座標が同じであり且つ対応画素I2pmからx軸負方向にk+1個の画素、つまり、対応画素I2pmから画素I2pm−kのk+1個の画素であり、探索範囲を構成する。このような探索範囲は、一次元探索範囲であり、参照画像I2の対応画素I2pmを含む画素の行において、対応画素I2pmから基線BLに沿ってカメラ11aに向かうk+1個の画素の範囲である。以下の実施の形態では、k+1個の画素を探索範囲とするケースを説明する。
なお、着目画素I1pに対する対応画素I2pmの視差値は、0画素であり、着目画素I1pに対する画素I2pm−kの視差値は、−k画素である。このため、探索範囲は、着目画素I1pに対する水平方向の視差値が0画素から−k画素である範囲でもある。なお、上記探索範囲は、視差値が0以下の範囲であるが、これに限定されず、視差値が0超である範囲も含んでもよい。本実施の形態では、視差値は、正の値である場合、x軸正方向の視差を示し、負の値である場合、x軸負方向の視差を示す。
同様に、撮像画像I2を基準画像とし、撮像画像I1を参照画像とする場合の探索範囲を説明する。この場合、図21に示すように、基準画像I2上の着目画素I2pは、参照画像I1上の探索範囲内の全ての参照画素I1p1〜I1pnそれぞれとの間で、センサス特徴量の相違度が求められる。なお、図21は、相違度の算出の際の画素の探索範囲の別の一例を示す図である。このような探索範囲は、参照画像I1における1つの画素の行の全てであり、この行のy座標は、着目画素I2pと同じである。
又は、着目画素I2pは、参照画像I1上における対応画素I1pmを含むk+1個の参照画素それぞれとの間で、センサス特徴量の相違度が求められてもよい。このような参照画素は、対応画素I1pmとy座標が同じであり且つ対応画素I1pmからx軸正方向のk+1個の画素、つまり、対応画素I1pmから画素I1pm+kのk+1個の画素であり、探索範囲を構成する。このような探索範囲は、参照画像I1の対応画素I1pmを含む画素の行において、対応画素I1pmから基線BLに沿ってカメラ11bに向かうk+1個の画素の範囲である。また、探索範囲は、着目画素I2pに対する水平方向の視差値が0画素からk画素である範囲でもある。上記探索範囲は、視差値が0以上の範囲であるが、これに限定されず、視差値が0未満である範囲も含んでもよい。
また、ハミング距離を用いた相違度は、以下のように求められる。例えば、基準画像の着目画素のセンサス特徴量が、ビット列(00011011)であり、参照画像の参照画素のセンサス特徴量が、ビット列(10110001)である場合、これら2つの画素間のハミング距離は、1+0+1+0+1+0+1+0=4であり、相違度は、「4」である。相違度は、ハミング距離であり、2つの画素のセンサス特徴量であるビット列間において、同じ桁同士のビットの数値が異なる桁数である。つまり、ハミング距離の算出では、2つのビット列間において、同じ桁のビットの数値が同じ場合、ビット間差異が「0」であり、同じ桁のビットの数値が異なる場合、ビット間差異が「1」であり、全てのビット間差異の和がハミング距離である。
このように、相違度算出部102は、基準画像の着目画素それぞれについて、着目画素のセンサス特徴量と、参照画像の少なくとも1つの参照画素のセンサス特徴量とを用いて、少なくとも1つの参照画素それぞれの位置での着目画素に対する視差値に対応する相違度を算出する。ここで、基準画像としての撮像画像I1の複数の画素は、複数の第1の画素の一例であり、第3の画素と、第4の画素と、第5の画素とを含む。参照画像としての撮像画像I2の複数の画素は、複数の第2の画素の一例であり、第6の画素と、第7の画素と、第8の画素とを含む。そして、第4の画素及び第5の画素は、撮像画像I1上における比較領域のような第3の画素から所定の距離内に位置する第3の画素に対する周囲の画素である。第7の画素及び第8の画素は、撮像画像I2上における比較領域のような第6の画素から所定の距離内に位置する第6の画素に対する周囲の画素である。第3の画素のセンサス特徴量は、第3の画素の画素値と第4の画素の画素値との比較値と、第3の画素の画素値と第5の画素の画素値との比較値とを有する。第6の画素のセンサス特徴量は、第6の画素の画素値と第7の画素の画素値との比較値と、第6の画素の画素値と第8の画素の画素値との比較値とを有する。
視差選択部103は、着目画素について、対応する探索範囲内の参照画素の相違度のうちから、最小の相違度を選択し、当該相違度に対応する参照画素の視差値を特定する。そして、視差選択部103は、特定された視差値を、着目画素の整数精度の視差値、つまり整数画素精度の視差値に決定する。視差選択部103は、基準画像内の全ての画素を、着目画素として順次走査することにより、基準画像内の各画素における整数精度の視差値を決定する。視差選択部103は、基準画像の整数精度の視差画像を生成してもよい。当該視差画像は、整数精度の視差値を各画素の画素値として含み、基準画像の各画素における輝度値からなる画素値を視差値に置き換えた画像である。
具体的には、着目画素の整数精度の視差値の決定は、以下に説明するように処理される。例えば、図22には、1つの着目画素に対して算出される相違度と、相違度に対応する探索範囲内の参照画素の視差値との関係の一例が、図化されている。このように、相違度は、予め設定された視差値の最小値及び最大値で決まる探索範囲内において、1画素間隔で算出される。そして、視差選択部103は、探索範囲内の相違度から、最小の相違度を選択し、当該相違度に対応する視差値を、着目画素の整数精度の視差値に決定する。このように、視差選択部103は、基準画像内の全ての画素を、着目画素として順次走査することにより、基準画像内の各画素における視差値を整数精度で決定する。
サブピクセル視差算出部104は、撮像画像I1及びI2について、基準画像の着目画素及び参照画像の参照画素の周囲に窓領域を設定し、窓領域間において輝度差ベースの評価値であるサブピクセル評価値を算出する。さらに、サブピクセル視差算出部104は、サブピクセル評価値を用いた等角フィッティング法により、着目画素のサブピクセル精度の視差推定を行う。
例えば、特許文献1に開示されるような従来技術は、2つの入力画像それぞれの各画素について、図18A及び図18Bに例示するような着目画素と周辺画素との間でセンサス変換し、2つの入力画像の画素間でセンサス特徴量のハミング距離を算出することによって、1画素間隔の視差値についての相違度を算出する。さらに、当該従来技術は、一方の入力画像である基準画像の画素について、他方の入力画像である参照画像の画素との間で算出された相違度の中の最小の相違度に対応する視差値を、整数精度の視差値として、基準画像の当該画素の視差値に決定する。さらに、当該従来技術は、最小の相違度に対応する視差値の±1画素の視差値での相違度と、最小の相違度と、それぞれの視差値との関係に基づき、等角フィッティング法を用いることによって、基準画像の当該画素のサブピクセル精度の視差値を算出する。
これに対して、本実施形態に係るサブピクセル視差算出部104は、撮像画像I1又はI2である基準画像内の着目画素に対して、図18A及び図18Bに例示するようなセンサス変換での周辺画素の領域と同じ領域である窓領域を設定する。
さらに、サブピクセル視差算出部104は、視差選択部103によって決定された整数精度の着目画素の視差値に基づき、着目画素の視差値に対応する位置にある参照画像の第一参照画素を特定する。相違度計算のための探索範囲は、画素座標でx軸方向の範囲であるため、着目画素の整数精度の視差値がd画素である場合、第一参照画素は、参照画像における着目画素と同じ画素座標である対応画素に対して、x軸正方向にd画素ずれた位置の画素である。そして、サブピクセル視差算出部104は、第一参照画素と、参照画像における第一参照画素に視差値が近傍である画素とに、基準画素と同じ窓領域を設定する。本実施の形態では、視差値が近傍である画素は、第一参照画素に対してx軸方向の視差値が±1画素異なる画素であり、x軸方向の視差値がd−1及びd+1の画素である。視差値d−1及びd+1の画素はそれぞれ、第一参照画素に対して画素座標でx軸正方向に−1画素及び+1画素ずれた位置の画素である。このような2つの画素を、第二参照画素及び第三参照画素と呼ぶ。なお、第二参照画素は、視差値d−1の画素に対応し、第三参照画素は、視差値d+1の画素に対応する。
サブピクセル視差算出部104は、基準画像及び参照画像の窓領域の画素間のSAD、つまり輝度差の絶対値和をサブピクセル評価値として算出し、絶対値和と視差値との関係に基づく等角フィッティング法により、サブピクセル評価値の最適値を算出する。サブピクセル視差算出部104は、サブピクセル評価値の最適値に対応する視差値を、基準画像の着目画素のサブピクセル精度の視差値に決定する。具体的には、着目画素の窓領域内の各画素の画素値つまり輝度値と、第一参照画素の窓領域内の各画素の輝度値との差の絶対値和S1が算出される。絶対値和S1に対応する視差値はdである。さらに、着目画素の窓領域内の各画素の輝度値と、第二参照画素の窓領域内の各画素の輝度値との差の絶対値和S2が算出される。絶対値和S2に対応する視差値はd−1である。さらに、着目画素の窓領域内の各画素の輝度値と、第三参照画素の窓領域内の各画素の輝度値との差の絶対値和S3が算出される。絶対値和S3に対応する視差値はd+1である。サブピクセル視差算出部104は、絶対値和S1、S2及びS3と、対応する視差値d−1、d及びd+1との関係に基づき、図23に示すように、等角フィッティング法により、絶対値和の極値Ssに対応するサブピクセル精度の視差値dsを算出する。図23の等角フィッティング法では、V字型の関数が当てはめられている。サブピクセル視差算出部104は、視差値dsを、着目画素のサブピクセル精度の視差値に決定する。なお、図23は、等角フィッティング法によりサブピクセル精度の視差値を算出する例を示す図である。
ここで、サブピクセル精度の視差値の算出の具体的例を説明する。例えば、図24は、着目画素、第一参照画素、第二参照画素及び第三参照画素の窓領域の一例を示す。図25は、着目画素と第一〜第三参照画素との間における窓領域内の画素の輝度値の関係の一例を示す。図24及び図25は、窓領域が8つの周辺画素の領域であるケースを示す。つまり、窓領域は9つの画素を含む。図24及び図25の例では、サブピクセル視差算出部104は、撮像画像I1を基準画像とし、撮像画像I2を参照画像として処理を行う。サブピクセル視差算出部104は、基準画像において、着目画素ctrの窓領域A1内の全ての画素の輝度値を、撮像画像I1から取得する。さらに、サブピクセル視差算出部104は、参照画像において、視差値dに対応する第一参照画素ref1の窓領域B1内の全ての画素の輝度値と、視差値d−1に対応する第二参照画素ref2の窓領域B2内の全ての画素の輝度値と、視差値d+1に対応する第三参照画素ref3の窓領域B3内の全ての画素の輝度値とを、撮像画像I2から取得する。
サブピクセル視差算出部104は、窓領域A1と窓領域B1との間で、窓領域に対して同じ位置の画素である対応画素同士の輝度値の差の絶対値を、窓領域の全ての画素について算出する。つまり、9つの絶対値が算出される。さらに、サブピクセル視差算出部104は、9つの絶対値の和である絶対値和S1を算出する。例えば、サブピクセル視差算出部104は、窓領域A1における輝度値「85」の画素と、窓領域B1における輝度値「120」の画素との間で、輝度値の差の絶対値「35」を算出する。
同様に、サブピクセル視差算出部104は、窓領域A1と窓領域B2との間で、対応画素同士の輝度値の差の絶対値を算出し、9つの絶対値の絶対値和S2を算出する。また、サブピクセル視差算出部104は、窓領域A1と窓領域B3との間で、対応画素同士の輝度値の差の絶対値を算出し、9つの絶対値の絶対値和S3を算出する。そして、サブピクセル視差算出部104は、図23に示すように、等角フィッティング法により、サブピクセル評価値の極値Ssを最適値に決定し、最適値Ssに対応する視差値dsを算出する。サブピクセル視差算出部104は、視差値dsを、着目画素ctrのサブピクセル精度の視差値に決定する。
なお、窓領域A1、B1、B2及びB3はそれぞれ、着目画素、第一参照画素、第二参照画素及び第三参照画素が窓領域の中央に位置するように配置されていたが、これに限定されず、着目画素、第一参照画素、第二参照画素及び第三参照画素を含めばいかなる位置でもよい。窓領域A1、B1、B2及びB3に含まれる周辺画素の数量及び周辺画素の領域は、センサス変換での周辺画素の数量及び周辺画素の領域と異なっていてもよい。
また、サブピクセル視差算出部104は、サブピクセル評価値として、SADに限らず、SSD、つまり輝度差の2乗和を用いてもよい。また、サブピクセル視差算出部104は、着目画素と、第一参照画素、第二参照画素及び第三参照画素との間でのSADと、それぞれの視差値とを用いて、パラボラフィッティング法により、着目画素のサブピクセル精度の視差値を算出してもよい。ちなみに、サブピクセル評価値とサブピクセル精度の視差値の推定方法との組み合わせについては、SADの場合には等角フィッティング法が、他の組み合わせと比べて視差推定誤差が小さくなり、SSDの場合にはパラボラフィッティング法が、他の組み合わせと比べて視差推定誤差が小さくなることが、非特許文献2に開示されている。
なお、本実施の形態では、左右のカメラ11a及び11bの配置が適切である場合を想定している。すなわち、図15に示すように、カメラ11a及び11bの光軸中心OAa及びOAbが基線BL方向に垂直であり、且つ、光軸中心OAa及びOAbが互いに平行であり、且つ、カメラ11a及び11bの水平スキャン方向と基線BL方向とが平行あり、且つ、カメラ11a及び11bに画像歪がない場合を想定している。基準画像中の着目点に対応する参照画像中の対応点は、当該着目点の画素座標のy座標と、画素座標のy座標が同じであるx軸方向の水平ライン中に存在する。上記のカメラ11a及び11bの配置によるステレオ画像の撮像を平行撮像と呼ぶ。カメラ11a及び11bの配置が、平行撮像の配置からずれている、又は、撮像画像の歪みが無視できない程大きい場合には、画像変換の前に、歪み補正及び画像の平行化処理を行うことで、歪みを有さず且つ平行撮像による画像となるように、画像を補正してもよい。また、図17に示すように、カメラ11a及び11bが上下方向に離して配置される場合、基準画像中の着目点に対応する参照画像中の対応点は、当該着目点の画素座標のx座標と、画素座標のx座標が同じであるy軸方向の垂直コラム中に存在する。
さらに、実施の形態1に係る視差値算出装置100の動作を説明する。図26は、実施の形態1に係る視差値算出装置100の動作の一例を示すフローチャートである。まず、ステップS101において、センサス変換部101は、記憶部20から、カメラ11a及び11bそれぞれにより撮像された撮像画像I1及びI2を取得する。撮像画像I1及びI2は、同じ被写体を写し出す画像であり、同じ時刻にカメラ11a及び11bにより撮像された画像である。つまり、撮像画像I1及びI2は、ステレオ画像である。
次いで、ステップS102において、センサス変換部101は、撮像画像I1及びI2それぞれをセンサス変換する。センサス変換部101は、撮像画像I1及びI2それぞれの全ての画素をセンサス変換し、各画素のセンサス特徴量を算出し、相違度算出部102に出力する。センサス特徴量は、例えば、図18A、図18B、図19A及び図19Bに示すように、センサス変換される着目画素の周辺画素に対応するビット列であり、「センサスベクトル」とも呼ばれる。
次いで、ステップS103において、相違度算出部102は、撮像画像I1及びI2のうちの一方の基準画像の各画素について、撮像画像I1及びI2のうちの他方の参照画像に対する相違度を算出し、視差選択部103に出力する。本実施の形態では、相違度算出部102は、図15に示すように左側に位置するカメラ11aの撮像画像I1を、基準画像に決定し、撮像画像I2を参照画像に決定するが、これに限定されない。基準画像及び参照画像の決定は、予め決められた規則に従って行われてもよく、図示しない入力装置を介したユーザによる指令に従って行われてもよい。相違度算出部102は、基準画像I1の着目画素について、例えば、図20に示すような、参照画像I2における着目画素に対応する探索範囲の参照画素それぞれと着目画素との間で、センサス特徴量の相違度を算出する。相違度算出部102は、基準画像I1の全ての画素を着目画素として、相違度を算出する。本実施の形態では、相違度は、着目画素及び参照画素のセンサス特徴量間のハミング距離である。例えば、探索範囲内の参照画素の数量がk+1個である場合、1つの着目画素に対してk+1個の相違度が算出される。
次いで、ステップS104において、視差選択部103は、基準画像I1の各画素について、算出された相違度に基づき、当該画素の視差値を整数精度で決定し、サブピクセル視差算出部104に出力する。視差選択部103は、例えば、図22に示すように、基準画像I1の着目画素に対応する相違度から最小の相違度を抽出し、最小の相違度に対応する参照画素と着目画素との視差値を特定する。視差値は、例えば、図20に示すように、着目画素I1pに対応する参照画像I2の対応画素I2pmに対する参照画素の位置から、算出可能である。視差選択部103は、基準画像I1内で、全ての画素を着目画素として順次走査することにより、基準画像I1内の全ての画素の視差値を整数精度で決定する。
次いで、ステップS105において、サブピクセル視差算出部104は、撮像画像I1及びI2のうちの基準画像の各画素について、サブピクセル精度の視差値を算出する。具体的には、サブピクセル視差算出部104は、記憶部20から撮像画像I1及びI2を取得し、撮像画像I1及びI2と、撮像画像I1つまり基準画像の各画素の整数精度の視差値とを用いて、基準画像の各画素のサブピクセル精度の視差値を算出する。サブピクセル視差算出部104は、基準画像内の着目画素に対して、着目画素周辺に窓領域を設定する。さらに、サブピクセル視差算出部104は、着目画素の視差値に対応する位置にある参照画像の第一参照画素と、参照画像における第一参照画素に視差値が近傍である第二参照画素及び第三参照画素とにそれぞれ、窓領域を設定する。サブピクセル視差算出部104は、着目画素の窓領域内の全ての画素と、第一〜第三参照画素それぞれの窓領域内の全ての画素との間で、輝度差ベースのサブピクセル評価値である輝度差の絶対値和を算出する。サブピクセル視差算出部104は、3つの絶対値和と、各絶対値和に対応する視差値との関係に基づき、等角フィッティング法により、着目画素のサブピクセル精度の視差値を算出する。サブピクセル視差算出部104は、基準画像の各画素を着目画素として、各画素のサブピクセル精度の視差値を算出する。そして、サブピクセル視差算出部104は、基準画像の各画素における輝度値からなる画素値を、サブピクセル精度の視差値に置き換えた視差画像を生成する。
なお、左右のカメラ11a及び11bの配置が適切でない場合、ステップS102の前に、画像の歪み補正及び平行化処理等を行ってもよい。またその際、平行化に伴う画像中心(図15及び図17における光軸中心OAa及びOAbの画像中での位置)の移動を考慮し、初期視差画像における視差値の初期値を0以外の値に設定するようにしてもよい。
上述したように、実施の形態1に係る視差値算出装置100は、カメラ11aで撮像された撮像画像I1と、カメラ11bで撮像された撮像画像I2とを記憶部20から取得する。視差値算出装置100は、撮像画像I1の複数の第1の画素毎に第1のセンサス特徴量を算出し、撮像画像I2の複数の第2の画素毎に第2のセンサス特徴量を算出し、複数の第1の画素それぞれについて、第1のセンサス特徴量と、少なくとも1つの第2の画素の第2のセンサス特徴量とを用いて、少なくとも1つの第2の画素それぞれの位置での第1の画素に対する視差値に対応する相違度を算出する。視差値算出装置100は、複数の第1の画素それぞれについて、相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、撮像画像I1の第1の画素についての整数画素精度の第1の視差値を取得する。さらに、視差値算出装置100は、複数の第1の画素それぞれについて、第1の画素の第1の視差値及び第1の視差値の近傍視差値それぞれに対応する位置の複数の参照画素を、撮像画像I2から抽出する。視差値算出装置100は、第1の画素及びその周辺画素の画素値と各参照画素及びその周辺画素の画素値との関係に基づくサブピクセル評価値を算出し、サブピクセル評価値を用いた等角フィッティングを用いて、第1の画素のサブピクセル精度の第2の視差値を算出する。そして、視差値算出装置100は、複数の第1の画素それぞれの第2の視差値を用いて、撮像画像I2に対する撮像画像I1の視差画像における画素毎の視差値を取得する。
上記構成によると、視差値算出装置100は、撮像画像I1及びI2を用いて、基準画像である撮像画像I1の各画素の整数画素精度の視差値を、センサス特徴量及び相違度に基づき算出する。さらに、視差値算出装置100は、撮像画像I1の第1の画素を着目画素として、着目画素と、参照画像である撮像画像I1の複数の参照画素との間におけるそれぞれの周辺画素を含めた画素値の関係に基づくサブピクセル評価値を用いて、着目画素のサブピクセル精度の視差値を算出する。このような視差値は、撮像画像I1における着目画素の周囲の輝度値の分布、及び、撮像画像I2における参照画素の周囲の輝度値の分布を反映する視差値である。例えば、撮像画像I1及びI2の間での輝度差がある場合でも、輝度差の影響を低減した視差値が得られる。さらに、このような視差値からなる視差画像は、被写体のエッジ、境界等のライン間で視差値が異なることによる筋状のアーチファクトが発生することを抑えることができる。よって、視差値算出装置100は、複数の画像間の視差値を高い精度で算出することができる。なお、撮像画像I2が基準画像である場合も同様である。
[実施の形態2]
実施の形態1に係る視差値算出装置100は、カメラ11a及び11bの撮像画像I1及びI2において、対応する画素間の輝度値の差異が小さい程、サブピクセル精度の視差値の算出精度が高い。実施の形態2に係る視差値算出装置200は、カメラ11a及び11bの撮像画像I1及びI2において、対応する画素間の輝度値の差異を低減する構成をさらに備える。実施の形態2において、実施の形態1と同様の構成要素については、実施の形態1と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1と異なる点を中心に説明し、実施の形態1と同様の点の説明を省略する。
図27は、実施の形態2に係る視差値算出装置200の機能的な構成の一例のブロック図を示す。図27に示すように、視差値算出装置200は、センサス変換部101と、相違度算出部102と、視差選択部103と、サブピクセル視差算出部104と、低域カット部205とを含む。
低域カット部205は、画像の低域カットフィルタを構成し、画像の低周波数成分を除去又は抑制する。低域カット部205は、被写体のエッジ、境界等を強調した画像を出力する。低域カット部205は、記憶部20から取得した撮像画像を変換し、サブピクセル視差算出部104に出力する。サブピクセル視差算出部104は、低域カット部205による変換後の画像を用いて、サブピクセル評価値に基づく、サブピクセル精度の視差値を算出する。サブピクセル視差算出部104は、低域カット部205による変換画像を用いることによって、左右のカメラのゲイン特性の差及び周辺減光等に起因するカメラ11a及び11bの撮像画像I1及びI2間の輝度差の影響を低減したサブピクセル精度の視差値を算出することができる。また、低域カット部205は、変換した画像をセンサス変換部101にも出力し、センサス変換部101は、低域カット部205による変換画像をセンサス変換し、相違度算出部102に出力してもよい。このような場合も、サブピクセル視差算出部104によって算出されるサブピクセル精度の視差値は、上記と同様の効果を奏することができる。
上述のような実施の形態2に係る視差値算出装置200によれば、実施の形態1と同様の効果が得られる。さらに、視差値算出装置200は、撮像画像間における対応する画素の輝度値の差異による影響を低減したサブピクセル精度の視差値を算出することができる。
[実施の形態3]
実施の形態1に係る視差値算出装置100は、カメラ11a及び11bの撮像画像I1及びI2の一方を基準画像とし、他方を参照画像と決定し、基準画像の画素の視差値を算出した。実施の形態3に係る視差値算出装置300は、撮像画像I1及びI2それぞれを基準画像に決定し、各基準画像の視差値を比較することによって、視差値の一貫性をチェックする。つまり、実施の形態3に係る視差値算出装置300は、視差値の算出結果の信頼性を高めるために、双方向の視差値の算出を行い、視差値の算出結果の比較から一貫性をチェックすることで、視差値の算出精度を高める。実施の形態3において、実施の形態1又は2と同様の構成要素については、実施の形態1及び2と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1及び2と異なる点を中心に説明し、実施の形態1又は2と同様の点の説明を省略する。
図28は、実施の形態3に係る視差値算出装置300の機能的な構成の一例のブロック図を示す。図28に示すように、視差値算出装置300は、センサス変換部101と、相違度算出部102と、第一視差選択部303aと、第二視差選択部303bと、第一サブピクセル視差算出部304aと、第二サブピクセル視差算出部304bと、L/Rチェック部(「左右チェック部」とも呼ぶ)306とを含む。
相違度算出部102は、カメラ11a及び11bの撮像画像I1及びI2それぞれを基準画像として、基準画像の各画素の相違度を算出する。具体的には、相違度算出部102は、第一基準画像である撮像画像I1中の各画素に関して、第一参照画像である撮像画像I2の探索範囲中の各画素に対して、つまり、探索範囲中の各視差値について、センサス特徴量の相違度を算出する。同様に、相違度算出部102は、第二基準画像である撮像画像I2中の各画素に関して、第二参照画像である撮像画像I1の探索範囲中の各画素に対して、センサス特徴量の相違度を算出する。
第一視差選択部303aは、撮像画像I1の各画素に対して算出された相違度について、当該画素の相違度のうちから最小の相違度を抽出し、最小の相違度を与える撮像画像I2の画素の視差値を、撮像画像I1の当該画素の整数精度の視差値として特定する。そして、第一視差選択部303aは、撮像画像I1の各画素の整数精度の視差値を、第一基準画像の各画素の整数精度の視差値として算出する。
第二視差選択部303bは、撮像画像I2の各画素に対して算出された相違度について、当該画素の相違度のうちから最小の相違度を抽出し、最小の相違度を与える撮像画像I1の画素の視差値を、撮像画像I2の当該画素の整数精度の視差値として特定する。そして、第二視差選択部303bは、撮像画像I2の各画素の整数精度の視差値を、第二基準画像の各画素の整数精度の視差値として算出する。
第一サブピクセル視差算出部304aは、実施の形態1に係るサブピクセル視差算出部104と同様に、第一基準画像である撮像画像I1の各画素を着目画素とし、着目画素の窓領域内の全ての画素と、着目画素に対応する撮像画像I2の第一〜第三参照画素それぞれの窓領域内の全ての画素との間で、サブピクセル評価値である輝度差の絶対値和を算出する。第一サブピクセル視差算出部304aは、3つの絶対値和と、各絶対値和に対応する視差値との関係に基づき、等角フィッティング法により、着目画素のサブピクセル精度の視差値を算出する。第一サブピクセル視差算出部304aは、撮像画像I1の全ての画素について、サブピクセル精度の視差値を算出することで、撮像画像I1の視差画像をサブピクセル精度で生成する。
第二サブピクセル視差算出部304bは、実施の形態1に係るサブピクセル視差算出部104と同様に、第二基準画像である撮像画像I2の各画素を着目画素とし、着目画素の窓領域内の全ての画素と、着目画素に対応する撮像画像I1の第一〜第三参照画素それぞれの窓領域内の全ての画素との間で、サブピクセル評価値である輝度差の絶対値和を算出する。第二サブピクセル視差算出部304bは、3つの絶対値和と、各絶対値和に対応する視差値との関係に基づき、等角フィッティング法により、着目画素のサブピクセル精度の視差値を算出する。第二サブピクセル視差算出部304bは、撮像画像I2の全ての画素について、サブピクセル精度の視差値を算出することで、撮像画像I2の視差画像をサブピクセル精度で生成する。
L/Rチェック部306は、第一基準画像の視差画像と、第二基準画像の視差画像との間の一貫性をチェックする。つまり、L/Rチェック部306は、撮像画像I1の視差画像と、撮像画像I2の視差画像との間の一貫性をチェックする。L/Rチェック部306は、一貫性のチェックに、以下の式2を用いる。
上記の式2において、d1は、撮像画像I1の着目画素のサブピクセル精度の視差値である。xは、撮像画像I1の画素のx座標を示し、(x,y)は、着目画素の画素座標である。x+d1(x,y)は、撮像画像I1の着目画素の視差値d1に対応する位置の撮像画像I2の画素である視差対応画素のx座標を示す。d2は、撮像画像I2の上記視差対応画素におけるサブピクセル精度の視差値である。x+d1(x,y)+d2(x+d1(x,y),y)は、撮像画像I2の上記視差対応画素の視差値d2に対応する位置の撮像画像I1の画素のx座標を示す。このような式2は、撮像画像I1を基準にした視差値と、撮像画像I2を基準とした視差値との差異を表す。上記の式2の値が所定の閾値以下である場合、撮像画像I1の着目画素の視差値の信頼性が高く、撮像画像I1を基準にした視差値と、撮像画像I2を基準とした視差値との間に一貫性がある見なすことができる。上記の式2の値が所定の閾値よりも大きい場合、撮像画像I1の着目画素の視差値の信頼性が低く、上記一貫性がないと見なすことができる。上記閾値は、要求される一貫性の程度に応じて予め決められる。上記閾値の例は、1画素である。
L/Rチェック部306は、上記の式2の値が所定の閾値以下である場合、視差値d1をそのまま、撮像画像I1の着目画素の視差値に決定し出力する。一方、L/Rチェック部306は、上記の式2の値が閾値よりも大きい場合には、撮像画像I1の着目画素の視差値を、例えば探索範囲に含まれる視差値以外の特定の値に変更し出力する。この特定の値は、視差値の一貫性がないことを示す値である。例えば、図20に示すように、探索範囲が0画素から−k画素である場合、上記の特定の値は、−k画素未満の値であってもよい。L/Rチェック部306は、上述のように、撮像画像I1の視差画像における各画素の視差値を、一貫性の有無に基づき、維持又は変更することによって、新たな視差画像を生成する。新たな視差画像では、視差値の一貫性がある画素は、算出されたサブピクセル精度の視差値を画素値として含み、視差値の一貫性がない画素は、一貫性つまり信頼性が低いことを示す例外値を画素値として含む。
図29を参照しつつ、視差値算出装置300の動作を説明する。図29は、実施の形態3に係る視差値算出装置300の動作の一例を示すフローチャートである。視差値算出装置300は、ステップS101及びS102の処理を、実施の形態1と同様に行う。
次いで、ステップS301において、相違度算出部102は、撮像画像I1を第一基準画像として、第一参照画像である撮像画像I2に対する相違度を、撮像画像I1の各画素について算出する。さらに、相違度算出部102は、撮像画像I2を第二基準画像として、第二参照画像である撮像画像I1に対する相違度を、撮像画像I2の各画素について算出する。
次いで、ステップS302において、第一視差選択部303aは、第一基準画像である撮像画像I1の各画素について、算出された相違度に基づき、当該画素の整数精度の視差値を決定する。
次いで、ステップS303において、第一サブピクセル視差算出部304aは、撮像画像I1の着目画素の窓領域内の全ての画素と、着目画素に対応する撮像画像I2の第一〜第三参照画素それぞれの窓領域内の全ての画素との間で、サブピクセル評価値である輝度差の絶対値和を算出する。第一サブピクセル視差算出部304aは、絶対値和を用いた等角フィッティング法により、着目画素のサブピクセル精度の視差値を算出する。第一サブピクセル視差算出部304aは、撮像画像I1の各画素を着目画素としてサブピクセル精度の視差値を算出し、当該視差値を画素値に含む視差画像を生成する。
次いで、ステップS304において、第二視差選択部303bは、第二基準画像である撮像画像I2の各画素について、算出された相違度に基づき、当該画素の整数精度の視差値を決定する。
次いで、ステップS305において、第二サブピクセル視差算出部304bは、撮像画像I2の着目画素の窓領域内の全ての画素と、撮像画像I1の第一〜第三参照画素それぞれの窓領域内の全ての画素との間で、輝度差の絶対値和を算出し、絶対値和を用いた等角フィッティング法により、着目画素のサブピクセル精度の視差値を算出する。第二サブピクセル視差算出部304bは、撮像画像I2の各画素を着目画素としてサブピクセル精度の視差値を算出し、当該視差値を画素値に含む視差画像を生成する。なお、ステップS302〜S305の順序は、上述の順序に限定されず、変更されてもよい。
次いで、ステップS306において、L/Rチェック部306は、撮像画像I1の視差画像の各画素について、撮像画像I2の視差画像との間で、視差値の一貫性をチェックする。L/Rチェック部306は、撮像画像I1の視差画像における各画素の視差値を、一貫性がある場合には維持し、一貫性がない場合には例外的な視差値に変更することによって、新たな視差画像を生成し出力する。
上述のような実施の形態3に係る視差値算出装置300によれば、実施の形態1と同様の効果が得られる。さらに、視差値算出装置300は、カメラ11aの撮像画像I1を基準画像とし且つカメラ11bの撮像画像I2を参照画像とする場合の撮像画像I1の各画素の視差値を算出する。さらに、視差値算出装置300は、撮像画像I2を基準画像とし且つ撮像画像I1を参照画像とする場合の撮像画像I2の各画素の視差値を算出する。視差値算出装置300は、撮像画像I1を基準にした視差値と、撮像画像I2を基準とした視差値との差異に基づき、視差値の一貫性を決定し、一貫性のある視差値を画素に適用し、一貫性のない視差値を一貫性が低いことを示す値に置き換えて画素に適用する。そして、視差値算出装置300は、各画素の視差値の一貫性の有無の判別が容易である視差画像を生成する。よって、視差値算出装置300は、複数の画像間の視差値を高い精度及び信頼性で算出することができる。
本実施の形態では、L/Rチェック部306は、撮像画像I1の視差画像と撮像画像I2の視差画像との間の視差値の一貫性の有無に応じて、撮像画像I1の視差画像の各画素の視差値を変更し、新たな視差画像を生成したが、これに限定されない。L/Rチェック部306は、上記一貫性の有無に応じて、撮像画像I2の視差画像の各画素の視差値を変更し、新たな視差画像を生成してもよい。
又は、L/Rチェック部306は、撮像画像I1の視差画像の各画素について、撮像画像I2の視差画像との間の視差値の一貫性の有無を判定し、且つ、撮像画像I2の視差画像の各画素について、撮像画像I1の視差画像との間の視差値の一貫性の有無を判定してもよい。さらに、L/Rチェック部306は、撮像画像I1の視差画像及び撮像画像I2の視差画像の対応する2つの画素間で、視差値の一貫性の有無を比較してもよい。この場合、L/Rチェック部306は、対応する2つの画素のいずれもが、視差値の一貫性を有する場合、当該画素それぞれの視差値をそのまま採用し、対応する2つの画素のいずれもが、視差値の一貫性を有さない場合、当該画素それぞれの視差値を上記特定の値に変更する。また、L/Rチェック部306は、対応する2つの画素の一方が、視差値の一貫性を有し、且つ他方が視差値の一貫性を有さない場合、当該画素それぞれの視差値として、一貫性を有する画素の視差値を採用してもよく、上記特定の値を採用してもよい。
[実施の形態4]
実施の形態4に係る視差値算出装置400を説明する。実施の形態4に係る視差値算出装置400は、実施の形態3に係る視差値算出装置300と比較して、画像を縮小及び拡大する処理をさらに行う。実施の形態4において、実施の形態1〜3と同様の構成要素については、実施の形態1〜3と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1〜3と異なる点を中心に説明し、実施の形態1〜3と同様の点の説明を省略する。
図30は、実施の形態4に係る視差値算出装置400の機能的な構成の一例のブロック図を示す。図30に示すように、視差値算出装置400は、縮小部407と、センサス変換部101と、相違度算出部102と、第一視差選択部303aと、第二視差選択部303bと、第一サブピクセル視差算出部304aと、第二サブピクセル視差算出部304bと、L/Rチェック部306と、終了判断部408と、拡大部409とを含む。
縮小部407は、カメラ11a及び11bの撮像画像I1及びI2を、予め定められた縮小率で縮小し、センサス変換部101、並びに、第一サブピクセル視差算出部304a及び第二サブピクセル視差算出部304bに出力する。縮小部407は、記憶部20から初期視差画像を取得する、又は拡大部409から視差画像を取得し、当該視差画像を予め定められた縮小率で縮小し、相違度算出部102に出力する。
縮小部407は、撮像画像I1及びI2について、通常の等方的な縮小処理を行う、つまり、水平方向及び垂直方向であるx軸方向及びy軸方向に同じ縮小処理を行う。例えば、縮小率が2分の1の場合、撮像画像I1及びI2はそれぞれ、x軸方向の画素数が2分の1に減少され且つy軸方向の画素数が2分の1に減少された画像に、補間縮小によって変換される。補間縮小の方法には複数のものが知られているが、本実施の形態では、復元画質が高いことで知られているバイキュービック補間よりもバイリニア補間を行うことが好ましい。その理由は、バイキュービック補間で重畳されるオーバーシュート成分がセンサス特徴量を用いた相違度計算の誤差要因となり得るからである。
縮小部407は、視差画像について、通常の縮小処理に加えて、縮小率に応じて画素値である視差値を縮小(「ゲインダウン」とも呼ばれる)させる。これは、例えば2分の1の縮小率により視差画像の幅が水平方向に2分の1に縮小されると、これに応じて各画素の視差値も縮小前の2分の1の大きさになるためである。
縮小部407による縮小処理は、後述する繰り返し処理の回数に応じて複数回行われる。例えば、繰り返し処理の回数が3回の場合、縮小率の一例は、1回目の4分の1の縮小率、2回目の2分の1の縮小率、3回目の等倍の縮小率(すなわち入力信号そのままの出力)である。縮小部407は、1回目の繰り返し処理では、初期視差画像を縮小し、2回目以降の繰り返し処理では、拡大部409から取得する視差画像を縮小する。初期視差画像では、全ての画素の画素値である視差値が0である。
終了判断部408は、視差画像を算出するための縮小部407での縮小率に基づき、視差値の計算を継続するか終了するかを決定する。終了判断部408は、上記縮小率が1未満の場合、すなわち等倍未満である場合、視差値の計算の継続を決定し、等倍の場合、視差値の計算の終了を決定し、上記視差画像を出力する。
拡大部409は、L/Rチェック部306によって生成された視差画像を、縮小部407での縮小率に対応する拡大率で拡大処理をし、縮小部407に出力する。拡大部409は、視差画像について、通常の拡大処理に加えて、拡大率に応じて画素値である視差値を拡大させる。例えば、縮小率が2分の1の場合、拡大部409は、視差画像に対して、2倍の拡大率で、通常の補間拡大処理及び各画素の視差値の拡大処理を行う。視差画像は、x軸方向の画素数が2倍に増加され且つy軸方向の画素数が2倍に増加された画像に、補間拡大によって変換される。本実施の形態では、バイリニア補間が補間拡大の方法として用いられる。
図31を参照しつつ、視差値算出装置400の動作を説明する。図31は、実施の形態4に係る視差値算出装置400の動作の一例を示すフローチャートである。まず、ステップS401において、縮小部407は、記憶部20から、カメラ11a及び11bそれぞれにより撮像されたステレオ画像である撮像画像I1及びI2と、初期視差画像Ii1及びIi2とを取得する。初期視差画像Ii1及びIi2はそれぞれ、カメラ11a及び11bに対応して予め設定される視差画像であり、初期視差画像Ii1及びIi2の全ての画素の視差値は、0である。
次いで、ステップS402において、縮小部407は、撮像画像I1及びI2それぞれを、所定の縮小率で通常の縮小処理することによって、縮小画像I1s及びI2sを生成する。縮小部407は、縮小画像I1s及びI2sを、センサス変換部101、並びに、第一サブピクセル視差算出部304a及び第二サブピクセル視差算出部304bに出力する。また、縮小部407は、初期視差画像Ii1及びIi2、又は、拡大部409から取得した視差画像Id1及びId2それぞれを、撮像画像I1及びI2と同じ縮小率で縮小し、縮小視差画像Id1s及びId2sを生成する。この際、縮小部407は、各視差画像の各画素の視差値も当該縮小率で縮小する。縮小部407は、縮小視差画像Id1s及びId2sを相違度算出部102に出力する。視差画像Id1及びId2はそれぞれ、撮像画像I1及びI2の視差画像である。
なお、ステップS401〜S406の一連の処理の繰り返し回数が予め設定され、さらに、各回での縮小率が予め設定され、記憶部20に格納されている。縮小率は、繰り返された回数が多くなるに従い、大きくなる。本実施の形態では、3回の繰り返し処理回数が設定され、1回目、2回目及び3回目の処理の際の縮小率がそれぞれ、4分の1、2分の1、及び等倍に設定されている。縮小部407は、縮小処理の回数をカウントし、カウント数を繰り返し処理回数として、当該繰り返し処理回数に対応する縮小率で、撮像画像I1及びI2を縮小し、且つ、初期視差画像Ii1及びIi2又は視差画像Id1及びId2を縮小する。なお、縮小部407は、1回目の処理では、初期視差画像Ii1及びIi2を縮小し、2回目以降の処理では、視差画像Id1及びId2を縮小する。また、縮小率が等倍の場合、縮小部407は、撮像画像I1及びI2並びに視差画像Id1及びId2を縮小せずにそのまま、出力する。初期視差画像Ii1及びIi2の各画素の視差値は、0である。
次いで、ステップS403において、センサス変換部101は、実施の形態1におけるステップS102と同様に、縮小画像I1s及びI2sそれぞれをセンサス変換する。
次いで、ステップS404において、相違度算出部102は、実施の形態3のステップS301と同様に、縮小画像I1sを第一基準画像として、第一参照画像である縮小画像I2sに対する相違度を、縮小画像I1sの各画素について算出する。さらに、相違度算出部102は、縮小画像I2sを第二基準画像として、第二参照画像である縮小画像I1sに対する相違度を、縮小画像I2sの各画素について算出する。
なお、相違度算出部102は、1回目の繰り返し処理では、予め決められた探索範囲に従って、相違度を算出する。具体的には、相違度算出部102は、撮像画像と同じスケールでの予め設定された視差探索範囲と、縮小率とに基づき、探索範囲を決定する。例えば、1回目の繰り返し処理における縮小率が4分の1であり、撮像画像と同じスケールでの視差探索範囲がx軸方向の±64画素である場合、探索範囲は、基準画像の着目画素に対応する参照画像の対応画素を中心として、x軸方向で、±64画素×1/4=±16画素に決定される。なお、基準画像と参照画像との位置関係、すなわち、基準画像がカメラ11a及び11bの撮像画像I1及びI2のいずれに対応するかが既知の場合、探索範囲は、対応画素からx軸正方向の画素又はx軸負方向画素の一方にすることができる。具体的には、基準画像が撮像画像I1に対応する場合は、図20においてk=16であるケースに該当し、探索範囲は、対応画素に対する−16画素から0画素の範囲である。基準画像が撮像画像I2に対応する場合は、図21においてk=16であるケースに該当し、探索範囲は、対応画素に対する0画素から16画素の範囲である。
2回目以降の繰り返し処理では、相違度算出部102は、直前の繰り返し処理によって得られた視差値の近傍の範囲を探索範囲として、相違度を算出する。具体的には、相違度算出部102は、直前の繰り返し処理によって得られた縮小視差画像Id1s及びId2sに基づき、参照画像において、着目画素の視差値に対応する位置の画素を、着目画素の対応画素に決定し、当該対応画素のx軸方向での近傍範囲を探索範囲に決定する。例えば、相違度算出部102は、当該対応画素を中心として、x軸方向で、±2画素の範囲を探索範囲に決定する。このような探索範囲は、1回目の繰り返し処理よりも小さくてよい。
ステップS402での縮小率は、処理が繰り返された回数が多くなる従い、大きくなる。このため、繰り返し処理が進行することによって、画素密度が粗である探索から密である探索に移行する。つまり、繰り返し処理による粗密探索が行われる。相違度算出部102は、1回目の繰り返し処理では、容量が小さな低解像度の画像に対する粗な探索を全探索で行った後に、繰り返し処理の回数の増加に応じて、解像度がより高い画像を用いた徐々に密な探索を、直前の探索結果、つまり、直前に算出された視差値の周辺だけで行う。これにより、視差値の算出精度が高く維持されつつ視差値算出の全体の計算量が削減する。
次いで、ステップS302〜S306において、視差値算出装置400は、ステップS404で算出された縮小画像I1s及びI2sそれぞれの各画素の相違度に基づき、実施の形態3と同様の処理を行うことによって、縮小画像I1s及びI2sそれぞれのサブピクセル精度の視差画像を生成する。
次いで、ステップS405において、終了判断部408は、視差値の計算処理を継続するか否かを判定する。終了判断部408は、視差値の計算処理を継続する場合(ステップS405でYes)、ステップS406に進み、視差値の計算処理を継続しない場合(ステップS405でNo)、処理を終了する。具体的には、終了判断部408は、ステップS402での縮小率を縮小部407から取得し、ステップS306で生成された視差画像をL/Rチェック部306から取得する。そして、終了判断部408は、縮小率が1未満の場合、視差値の計算処理を継続し、取得された視差画像を拡大部409に出力する。終了判断部408は、縮小率が等倍の場合、計算処理を終了し、取得された視差画像を距離算出部31及び記憶部20等に出力する。なお、縮小率が等倍の場合、L/Rチェック部306から取得される視差画像のスケールは、撮像画像I1及びI2と同じである。
次いで、ステップS406において、拡大部409は、終了判断部408から取得した視差画像に対して、ステップS402での縮小率に対応する拡大率で、通常の拡大処理及び各画素の視差値の拡大処理を行い、縮小部407に出力する。本実施の形態では、1回目、2回目及び3回目の処理の際の拡大率はそれぞれ、縮小率4分の1、2分の1及び等倍に対応する、4倍、2倍及び等倍である。なお、縮小率が等倍の場合、ステップS405で上述したように、拡大部409は、視差画像を取得しない。
ステップS406の後のステップS402では、縮小部407は、前回の繰り返し処理よりも大きい縮小率で、撮像画像I1及びI2、並びに視差画像Id1及びId2を縮小し、縮小画像I1sa及びI2sa、並びに縮小視差画像Id1sa及びId2saを生成する。ステップS403では、センサス変換部101は、縮小画像I1sa及びI2saをセンサス変換する。ステップS404では、相違度算出部102は、縮小画像I1saが基準画像である場合、縮小視差画像Id1saに基づき、縮小画像I1saの着目画素の視差値を取得する。さらに、相違度算出部102は、参照画像である縮小画像I2sa上において、着目画素と同じ位置に上記視差値を付加した位置の画素を、着目画素の対応画素に決定し、対応画素の近傍範囲を探索範囲に決定する。相違度算出部102は、上記探索範囲に基づき、着目画素の相違度を算出する。また、相違度算出部102は、縮小画像I2saが基準画像である場合も、縮小視差画像Id2saに基づき、上記と同様に処理する。また、視差値算出装置400は、ステップS302〜S306の処理を、前回の繰り返し処理と同様に繰り返す。
上述のような実施の形態4に係る視差値算出装置400によれば、実施の形態3と同様の効果が得られる。さらに、視差値算出装置400は、撮像画像に縮小率を大きくするように変化させつつ、視差値の計算の繰り返し処理を行う。視差値算出装置400は、繰り返し処理において、相違度の算出のための探索範囲を、前回の繰り返し処理で得られた視差画像を用いて限定する。視差値算出装置400は、1回目の繰り返し処理では、小さく縮小された低解像度の画像に対する粗な探索を全探索で行うことで相違度及び視差値を算出した後に、繰り返し処理の回数の増加に応じて、徐々に大きく縮小された高解像度の画像に対する密な探索を直前の視差画像から得られる限定された探索範囲で行うことで相違度及び視差値を算出する。これにより、視差値算出装置400は、視差値の算出精度をサブピクセル精度に維持しつつ、視差値算出の全体の演算量を低減することができる。
実施の形態4に係る視差値算出装置400は、実施の形態3に係る視差値算出装置300に、縮小部407と、終了判断部408と、拡大部409とを加えた構成であるが、実施の形態1又は2に係る視差値算出装置に、縮小部407と、終了判断部408と、拡大部409とを加えた構成であってもよい。例えば、図32に示す実施の形態4の変形例に係る視差値算出装置400aは、実施の形態1に係る視差値算出装置100に、縮小部407と、終了判断部408と、拡大部409とを加えた構成である。視差値算出装置400aは、撮像画像I1及びI2の一方を基準画像として、当該基準画像のサブピクセル精度の視差画像を生成し、その一貫性を判定せずに、視差値の計算処理を繰り返す。なお、図32は、実施の形態4の変形例に係る視差値算出装置400aの機能的な構成の一例を示すブロック図である。
[実施の形態5]
実施の形態5に係る視差値算出装置500を説明する。実施の形態5に係る視差値算出装置500は、実施の形態1に係る視差値算出装置100において、相違度に重み付けをし、重み付けされた相違度に基づき、視差値を決定する構成である。実施の形態5において、実施の形態1〜4と同様の構成要素については、実施の形態1〜4と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1〜4と異なる点を中心に説明し、実施の形態1〜4と同様の点の説明を省略する。
図33は、実施の形態5に係る視差値算出装置500の機能的な構成の一例のブロック図を示す。図33に示すように、視差値算出装置500は、センサス変換部101と、相違度算出部102と、コスト算出部510と、コスト集約部511と、視差選択部103と、サブピクセル視差算出部104とを含む。視差値算出装置500は、実施の形態1に係る視差値算出装置100に対して、コスト算出部510及びコスト集約部511が加えられた構成である。
コスト算出部510は、基準画像中の着目画素について、着目画素から複数の走査方向それぞれに沿った画素における視差値の分布に関するコストを算出する。具体的には、コスト算出部510は、着目画素を通る複数の直線それぞれの上での視差値の分布に関するコストを算出する。複数の直線の例は、着目画素を起点とする放射状の半直線である。本実施の形態では、複数の直線は、着目画素から8又は16の方向に等間隔に延びる半直線であり、8の半直線は、着目画素を通過する4の直線を構成し、16の半直線は、着目画素を通過する8の直線を構成する。ここで、走査方向、つまり、半直線の方向は、所定の方向の一例である。
コスト集約部511は、コスト算出部510によって算出された着目画素から延びる複数の半直線上での視差値の分布に関するコストについて、相違度算出のための探索範囲の各視差値に対して複数の半直線でのコストを加算し集約する。
視差選択部103は、コスト集約部511によって集約された着目画素における視差値毎のコストについて、最小のコストを与える視差値を着目画素の整数精度の視差値として決定する。
ここで、コスト算出処理及びコスト集約処理の詳細を説明する。撮像画像I1が基準画像であり、撮像画像I2が参照画像である場合において、8の方向のうちのx軸負方向の半直線上の視差値の分布のコストに関する処理例を説明する。コスト算出部510は、図34に示すように、撮像画像I1の着目画素I1paを中心とする8の方向の半直線L1〜L8を、撮像画像I1上で設定する。そして、コスト算出部510は、各半直線L1〜L8上における画素の視差値の分布のコストを算出する。なお、図34は、コスト算出の際の着目画素からの複数の走査方向の例を示す図である。
図35に示すように、コスト算出部510は、x軸正方向の半直線L1上の各画素について、当該画素に対応する探索範囲と、探索範囲内の視差値に対応する相違度とに基づき、コストを算出する。コスト算出部510は、撮像画像I1の縁から着目画素I1paに向かって順に、つまり、画素座標のx座標が1である画素I1p1から着目画素I1paに向かって順に、半直線L1上の各画素に関するコストを算出する。なお、図35は、コスト算出の際の着目画素を通る直線上での画素の走査方向の例を示す図である。
例えば、図36は、画素I1p1と着目画素I1paとの間の画素I1pi(iは正の整数)に関するコストの例を示す。図36に示すように、コスト算出部510は、画素I1piについて、相違度算出部102によって算出された探索範囲内の各視差値に対応する相違度を取得する。なお、図36は、コスト算出のための走査ライン上の1つの画素におけるコストの例を示す図である。本例では、探索範囲は、0画素から−k画素である。さらに、コスト算出部510は、探索範囲内の各視差値と、隣接画素I1pi−1の視差値との差異に基づき、当該視差値のペナルティ値を決定する。探索範囲内の視差値と画素I1pi−1の視差値とが同じである場合、ペナルティ値はP1であり、探索範囲内の視差値と画素I1pi−1の視差値とが異なる場合、ペナルティ値はP2である。本実施の形態では、P2はP1よりも大きい。画素I1pi−1は、画素I1piに対して、x軸正方向に隣接する画素であり、半直線L1に沿って画素I1piの直前にコスト計算された画素である。コスト算出部510は、探索範囲内の各視差値について、その相違度にペナルティ値を加算した値であるコストを算出する。これにより、画素I1piに関する探索範囲内の各視差値のコストが求まる。ここで、半直線L1上の画素I1piは、第1の評価画素の一例であり、画素I1pi−1は、第2の評価画素の一例であり、ペナルティ値は、第1の評価値の一例であり、コストは、第2の評価値の一例である。
コスト算出部510は、半直線L1上の全ての画素について、探索範囲内の各視差値のコストを算出する。なお、画素I1p1については、隣接する画素が存在しないため、ペナルティ値がなく、各視差値の相違度がコストになる。さらに、コスト算出部510は、他の半直線L2〜L8それぞれについても、当該半直線上の全ての画素について、探索範囲内の各視差値のコストを算出する。よって、半直線L1〜L8上の全ての画素について、0画素から−k画素の視差値それぞれのコストが算出される。コスト集約部511は、半直線L1〜L8上の全ての画素について、同じ視差値のコストの和を算出する。そして、視差選択部103は、0画素から−k画素の視差値それぞれのコストの和のうち、最小の和を有する視差値を、着目画素I1paの整数精度の視差値に決定する。コスト算出部510及びコスト集約部511は、撮像画像I1の全ての画素を着目画素として上述のような処理を行うことによって、各画素の整数精度の視差値を決定する。ここで、コストの和は、加算評価値の一例である。
上述のように、コスト算出部510は、例えば、第1の画像としての撮像画像I1において、視差値の算出対象の第1の画素としての着目画素I1paから、所定の方向に位置する評価画素としての画素I1piそれぞれについて、画素I1piに所定の方向で隣り合う画素I1pi−1の視差値と、第2の画像としての撮像画像I2における画素I1piに対応する位置の対応画素に対する、相違度算出のための探索範囲内の画素それぞれの視差値との比較に基づき、探索範囲内の画素それぞれの第1の評価値としてのペナルティ値を算出する。さらに、コスト算出部510は、画素I1piと探索範囲内の画素それぞれとの間の相違度と、探索範囲内の画素それぞれのペナルティ値とに基づき、探索範囲内の画素それぞれの視差値についての第2の評価値としてのコストを算出する。コスト集約部511は、探索範囲内の画素それぞれの視差値に対応する全ての評価画素のコストを加算して、加算評価値としてのコストの和を算出する。視差選択部103は、最小のコストの和に対応する視差値を着目画素I1paの視差値に決定する。
図37を参照しつつ、視差値算出装置500の動作を説明する。図37は、実施の形態5に係る視差値算出装置500の動作の一例を示すフローチャートである。視差値算出装置500は、実施の形態1と同様に、ステップS101〜S103の処理を行うことによって、記憶部20から撮像画像I1及びI2を取得し、撮像画像I1及びI2の各画素のセンサス特徴量を算出する。さらに、視差値算出装置500は、撮像画像I1を基準画像として、撮像画像I1の各画素に関して、撮像画像I2の探索範囲の各画素に対する相違度を算出する。
次いで、ステップS501において、コスト算出部510は、基準画像である撮像画像I1中の着目画素について、着目画素を通る複数の直線それぞれの上での視差値の分布に関するコストを算出する。コスト算出部510は、各直線上の画素それぞれについて、相違度算出のための探索範囲内の視差値と、当該画素に隣接する画素の視差値との差異に基づき、探索範囲内の各視差値に対応する相違度を重み付けした値であるコストを算出する。コスト算出部510は、撮像画像I1の全ての画素を着目画素として、コストを算出する。
次いで、ステップS502において、コスト集約部511は、撮像画像I1中の着目画素について、複数の直線上の画素それぞれに対して算出されたコストを、探索範囲の視差値毎に加算し集約する、つまり、同じ視差値のコストの全てを加算する。これにより、探索範囲の視差値毎に、コストの和が求められる。コスト集約部511は、撮像画像I1の全ての画素を着目画素として、各画素のコストを集約する。
次いで、ステップS503において、視差選択部103は、撮像画像I1中の着目画素について、探索範囲の視差値毎のコストの和のうち、最小のコストの和を与える視差値を着目画素の整数精度の視差値に決定する。視差選択部103は、撮像画像I1の全ての画素を着目画素として、各画素の整数精度の視差値を決定する。
次いで、ステップS105では、サブピクセル視差算出部104は、実施の形態1と同様に、撮像画像I1の各画素の整数精度の視差値と、撮像画像I1及びI2とを用いて、撮像画像I1の各画素のサブピクセル精度の視差値を算出する。さらに、サブピクセル視差算出部104は、サブピクセル精度の視差値を画素値に含む撮像画像I1の視差画像を生成する。
上述のような実施の形態5に係る視差値算出装置500によれば、実施の形態1と同様の効果が得られる。また、視差値算出装置500は、基準画像の着目画素の周囲の画素の視差値の変化を相違度に反映したコストに基づき、着目画素の整数精度の視差値を算出する。さらに、視差値算出装置500は、コストに基づく整数精度の視差値を用いて、サブピクセル精度の視差値を算出する。これにより、視差値算出装置500は、着目画素におけるサブピクセル精度の視差値がその周囲の画素の視差値と同様の値を取りやすくし、被写体のエッジ、境界等のライン間で視差値が異なることによる筋状のアーチファクトが生じるストリーキングアーチファクトを低減することができる。よって、視差値算出装置500は、高い精度で視差値を算出することができる。上述では、視差値算出装置500は、撮像画像I1を基準画像としていたが、撮像画像I2を基準画像としてもよい。
実施の形態5に係る視差値算出装置500は、実施の形態1に係る視差値算出装置100をベースとした構成であるが、実施の形態2〜4及びその変形例をベースとした構成であってもよい。例えば、実施の形態3をベースとする実施の形態5の変形例1に係る視差値算出装置500aは、図38に示すような構成である。また、実施の形態4をベースとする実施の形態5の変形例2に係る視差値算出装置500bは、図39に示すような構成である。また、実施の形態4の変形例をベースとする実施の形態5の変形例3に係る視差値算出装置500cは、図40に示すような構成である。
変形例1及び2に係る視差値算出装置500a及び500bにおいて、第一コスト算出部510aは、相違度算出部102から撮像画像I1の各画素の相違度を取得し、撮像画像I1の各画素のコストを算出する。第一コスト集約部511aは、撮像画像I1の各画素について、探索範囲の視差値毎のコストを集約したコスト和を算出する。第一視差選択部303aは、撮像画像I1の各画素について、コスト和を最小にする視差値を当該画素の整数精度の視差値に決定し、第一サブピクセル視差算出部304aは、撮像画像I1の各画素のサブピクセル精度の視差値を算出し、L/Rチェック部306に出力する。第二コスト算出部510bは、相違度算出部102から撮像画像I2の各画素の相違度を取得し、撮像画像I2の各画素のコストを算出する。第二コスト集約部511bは、撮像画像I2の各画素について、探索範囲の視差値毎のコストを集約したコスト和を算出する。第二視差選択部303bは、撮像画像I2の各画素について、コスト和を最小にする視差値を当該画素の整数精度の視差値に決定し、第二サブピクセル視差算出部304bは、撮像画像I2の各画素のサブピクセル精度の視差値を算出し、L/Rチェック部306に出力する。
変形例3に係る視差値算出装置500cにおいて、コスト算出部510は、相違度算出部102から、撮像画像I1及びI2の縮小画像I1s及びI2sのうちの基準縮小画像の各画素の相違度を取得し、基準縮小画像の各画素のコストを算出する。コスト集約部511は、基準縮小画像の各画素について、探索範囲の視差値毎のコストを集約したコスト和を算出する。視差選択部103は、基準縮小画像の各画素について、コスト和を最小にする視差値を当該画素の整数精度の視差値に決定し、サブピクセル視差算出部104は、基準縮小画像の各画素のサブピクセル精度の視差値を算出し、終了判断部408に出力する。
[実施の形態6]
実施の形態6に係る視差値算出装置600を説明する。実施の形態1に係る視差値算出装置100では、センサス変換の際、着目画素に対する周辺画素の領域である比較領域は、例えば、図18A及び図18Bに示すように一定である。実施の形態6に係る視差値算出装置600は、着目画素に対する様々な比較領域に基づき、着目画素のセンサス特徴量を算出する。実施の形態6において、実施の形態1〜5と同様の構成要素については、実施の形態1〜5と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1〜5と異なる点を中心に説明し、実施の形態1〜5と同様の点の説明を省略する。
比較領域が、手前の被写体により背後の被写体が見えない状態であるオクルージョンの領域、又は視差が大きく変化する領域をまたぐ場合、このような比較領域に基づき視差値が算出された視差画像の領域では、撮像画像における前景及び背景の境界等の被写体の輪郭と、視差値の差異により形成される視差画像の境界ラインとが、一致しない場合がある。本実施の形態では、視差値算出装置600は、実施の形態1〜5のように、着目画素が比較領域の中央に位置する通常の比較領域以外に、着目画素が中央からずらした位置にある少なくとも1つの比較領域を用いる。視差値算出装置600は、これら複数の比較領域について算出した相違度を最も小さくする視差値を決定することにより、視差値の差異の境界が実際の被写体の輪郭とより整合する視差画像を生成する。
図41は、実施の形態6に係る視差値算出装置600の機能的な構成の一例のブロック図を示す。図41に示すように、視差値算出装置600は、実施の形態1と同様に、センサス変換部601と、相違度算出部602と、視差選択部603と、サブピクセル視差算出部104を含む。サブピクセル視差算出部104は、実施の形態1と同様である。
センサス変換部601は、撮像画像I1及びI2のうちの一方である基準画像の着目画素に対して、複数の比較領域を設定する。センサス変換部601は、各比較領域について、着目画素と当該比較領域内の周辺画素との間でセンサス変換を行い、センサス特徴量を算出する。センサス変換部601は、撮像画像I1及びI2それぞれの全ての画素に対して、複数の比較領域それぞれについてのセンサス特徴量を算出する。
例えば、本実施の形態では、センサス変換部601は、図42に示すように、9つの比較領域W1〜W9を、1つの着目画素ctrに対して設定する。なお、図42は、着目画素の複数の比較領域の一例を示す図である。比較領域W5は、着目画素ctrが比較領域の中央に位置する通常の比較領域である。比較領域W1〜W4及びW6〜W9ではそれぞれ、着目画素ctrが、比較領域の中央以外に位置する。センサス変換部601は、着目画素ctrについて、比較領域W1〜W9それぞれの周辺画素との間でセンサス変換することによって、9つのセンサス特徴量を算出する。
相違度算出部602は、各比較領域に関して、基準画像の各画素の参照画像に対する相違度を算出する。相違度算出部602は、基準画像の着目画素の相違度を算出する際、着目画素のセンサス特徴量の算出に使用した比較領域と同じ比較領域を使用して算出された、参照画像の各画素のセンサス特徴量と、当該着目画素のセンサス特徴量との間で、相違度を算出する。つまり、相違度の算出では、基準画像と参照画像との間において、センサス特徴量の算出に使用される比較領域と着目画素及び参照画素との位置関係が同じである。すなわち、例えば、比較領域W1が、基準画像のセンサス特徴量の算出に用いられた場合、当該基準画像の着目画素の相違度計算に用いられる参照画像のセンサス特徴量は、比較領域W1を用いて算出されたものである。よって、図42の例の場合、相違度算出部602は、基準画像の1つの着目画素に対して、比較領域W1〜W9それぞれに対応する相違度を算出する。
視差選択部603は、相違度算出部602によって算出された比較領域毎の基準画像の各画素の相違度に基づき、各比較領域について、基準画像の着目画素の相違度のうちから、最小の相違度を抽出し、当該最小の相違度を与える視差値を抽出する。さらに、視差選択部603は、全ての比較領域それぞれにおいて抽出された視差値の相違度のうちから、最小の相違度を抽出し、当該最小の相違度を与える視差値を、着目画素の整数精度の視差値に決定する。つまり、視差選択部603は、全ての比較領域における着目画素の相違度のうちから、最小の相違度及びその比較領域を抽出し、当該最小の相違度を与える視差値を、着目画素の整数精度の視差値に決定する。さらに、視差選択部603は、基準画像の全ての画素を着目画素として、当該画素の整数精度の視差値を決定する。
サブピクセル視差算出部104は、基準画像である撮像画像I1又はI2の各画素の整数精度の視差値と、撮像画像I1及びI2とを用いて、基準画像の各画素のサブピクセル精度の視差値を算出する。さらに、サブピクセル視差算出部104は、サブピクセル精度の視差値を画素値として含む基準画像の視差画像を生成する。このとき、輝度差のサブピクセル評価値を算出するための窓領域は、着目画素及び第一〜第三参照画素に対して、中央位置等の固定された位置であってもよく、着目画素の整数精度の視差値の算出の際に抽出された最小の相違度を与える比較領域と同じ位置であってもよい。
図43を参照しつつ、視差値算出装置600の動作を説明する。図43は、実施の形態6に係る視差値算出装置600の動作の一例を示すフローチャートである。ステップS101において、センサス変換部601は、実施の形態1と同様に、記憶部20から、カメラ11a及び11bそれぞれにより撮像されたステレオ画像である撮像画像I1及びI2を取得する。以下において、視差値算出装置600は、撮像画像I1を基準画像とし撮像画像I2を参照画像として処理するとして説明する。
次いで、ステップS601において、センサス変換部601は、基準画像の各画素について、複数の比較領域それぞれにおけるセンサス特徴量を算出し、参照画像の各画素について、複数の比較領域それぞれにおけるセンサス特徴量を算出する。センサス変換部601は、基準画像及び参照画像の各画素における複数の比較領域でのセンサス特徴量を、相違度算出部602に出力する。
次いで、ステップS602において、相違度算出部602は、各比較領域に関して、基準画像の各画素の参照画像に対する相違度を算出する。相違度算出部602は、画素に対する位置が同じである比較領域を用いて算出された、基準画像の画素のセンサス特徴量と参照画像の画素のセンサス特徴量との間で相違度を算出する。相違度算出部602は、基準画像の各画素の相違度を算出し、視差選択部103に出力する。
次いで、ステップS603において、視差選択部603は、基準画像の着目画素について、全ての比較領域に対応する相違度のうちから、最小の相違度を抽出し、当該最小の相違度を与える視差値を、着目画素の整数精度の視差値に決定する。視差選択部603は、基準画像の各画素を着目画素として、各画素の整数精度の視差値を決定し、サブピクセル視差算出部104に出力する。
次いで、ステップS105において、サブピクセル視差算出部104は、実施の形態1と同様に、記憶部20から撮像画像I1及びI2を取得し、撮像画像I1及びI2と、撮像画像I1つまり基準画像の各画素の整数精度の視差値とを用いて、基準画像の各画素のサブピクセル精度の視差値を算出する。
上述のような実施の形態6に係る視差値算出装置600によれば、実施の形態1と同様の効果が得られる。また、視差値算出装置600は、比較領域に対する着目画素の位置が異なる複数の比較領域のうち、相違度を最小にする比較領域を用いて算出された相違度に基づき、整数精度の視差値を決定する。そして、視差値算出装置600は、当該整数精度の視差値を用いて、サブピクセル精度の視差値を算出する。このようなサブピクセル精度の視差値は、着目画素に対する比較領域の位置に起因する視差値の誤差を低減する。よって、視差値算出装置600は、オクルージョンの境界又は視差値が変化する前景及び背景間の境界付近に位置する画素について、視差画像での視差値の差異による境界の位置と、被写体の輪郭の位置とを正確に整合させることができる。
なお、着目画素に対する比較領域の位置は、図42に示す例に限定されず、比較領域内のいかなる位置に着目画素が位置してもよい。また、図42の例では、複数の比較領域の形状は、矩形であったが、いかなる形状であってもよい。
また、実施の形態6に係る視差値算出装置600は、実施の形態1に係る視差値算出装置100をベースする構成であったが、実施の形態2〜5及びその変形例をベースする構成であってもよい。
例えば、実施の形態5をベースとする実施の形態6の変形例に係る視差値算出装置600aは、図44に示すような構成である。変形例に係る視差値算出装置600aにおいて、上述の実施の形態6と同様に、センサス変換部601は、撮像画像I1及びI2それぞれの全ての画素に対して、複数の比較領域それぞれについてのセンサス特徴量を算出する。相違度算出部602は、各比較領域に関して、基準画像の各画素の参照画像に対する相違度を算出する。
コスト算出部510は、各比較領域に関して、基準画像中の全ての画素を着目画素として、着目画素を通る複数の直線それぞれの上での視差値の分布に関する着目画素のコストを算出する。コスト算出部510は、各直線上の画素それぞれについて、相違度算出のための探索範囲内の視差値と、当該画素に隣接する画素の視差値との差異に基づき、探索範囲内の各視差値に対応する相違度を重み付けした値を、着目画素のコストとして算出する。コスト集約部511は、各比較領域に関して、着目画素を通る複数の直線上の画素それぞれに対して算出されたコストを、探索範囲の視差値毎に加算する、つまり視差値毎のコストの和を算出することによって、着目画素のコストを集約する。視差選択部603は、着目画素に関して、全ての比較領域における探索範囲の視差値毎のコストの和のうちから、最小のコストの和を抽出し、最小のコストの和を与える比較領域及び視差値を特定し、特定した視差値を着目画素の整数精度の視差値に決定する。さらに、視差選択部603は、基準画像の全ての画素を着目画素として、当該画素の整数精度の視差値を決定する。サブピクセル視差算出部104は、整数精度の視差値に基づき、サブピクセル精度の視差値を算出する。
[実施の形態7]
実施の形態7に係る視差値算出装置700を説明する。実施の形態6に係る視差値算出装置600は、視差画像における視差値の差異による境界ラインを、前景及び背景の境界等の被写体の輪郭と一致させるために、1つの着目画素に設定される複数の比較領域について、相違度又はコストを算出することによって、着目画素の整数精度の視差値を決定した。実施の形態7に係る視差値算出装置700は、基準画像の着目画素と参照画像の参照画素との間の相違度であるハミング距離を計算する際、2つの画素のセンサス特徴量のビット列間におけるビット間差異を、センサス変換での対応画素間の画素値の差である輝度差で重み付けする。実施の形態7において、実施の形態1〜6と同様の構成要素については、実施の形態1〜6と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1〜6と異なる点を中心に説明し、実施の形態1〜6と同様の点の説明を省略する。
図45は、実施の形態7に係る視差値算出装置700の機能的な構成の一例のブロック図を示す。図45に示すように、視差値算出装置700は、実施の形態1と同様に、センサス変換部101と、相違度算出部702と、視差選択部103と、サブピクセル視差算出部104とを含み、さらに、重み算出部712を含む。センサス変換部101、視差選択部103及びサブピクセル視差算出部104は、実施の形態1と同様である。
重み算出部712は、撮像画像I1及びI2のうちの基準画像の着目画素について、相違度計算での探索範囲内の視差値の位置に対応する参照画像の参照画素と着目画素との間における、輝度差に応じた重みを算出する。重み算出部712は、基準画像の各画素を着目画素として、着目画素と参照画素との間における重みを算出する。重み算出部712は、算出した重みを相違度算出部702に出力する。重みは、以下の式3及び式4によって示され得る。
上記式3及び式4は、撮像画像I1を基準画像とする。これらの式において、dは、探索範囲内の視差値である。I1(x,y)は、撮像画像I1における画素座標(x,y)の着目画素に関連する輝度値である。I2(x+d,y)は、参照画素に関連する輝度値である。参照画素は、参照画像における着目画素と同じ画素座標の対応画素に対して、x軸正方向に視差値dずらした位置の画素である。ΔI(x,y,d)は、上記の着目画素及び参照画素の間における輝度値の差異である。w(x,y,d)は、ΔI(x,y,d)に対応する重みである。そして、fは、多項式等の変換式である。重みwは、ΔIが0の場合大きな値であり、ΔIが大きな値の場合小さな値である。本実施の形態では、重みwは、ΔIが大きくなる程、小さくなる。詳細は後述するが、本実施の形態では、I1(x,y)は、着目画素及びその周囲の画素の複数の輝度値を含み、I2(x+d,y)は、参照画素及びその周囲の画素の複数の輝度値を含む。ΔI(x,y,d)は、対応する画素間の複数の輝度値の差異を含む。w(x,y,d)は、対応する画素の組の数量に応じた複数の重みを含む。
相違度算出部702は、撮像画像I1及びI2についてのセンサス特徴量間の視差値に応じた相違度であるハミング距離を算出する際に、対応画素間の輝度差に応じて重み付けする。具体的には、相違度算出部702は、例えば、撮像画像I1が基準画像である場合、基準画像の着目画素の相違度を算出する際、着目画素のセンサス特徴量のビット列と、参照画像である撮像画像I2の参照画素のセンサス特徴量のビット列との間における同じ桁のビットの数値の差異であるビット間差異を、重み算出部712によって算出された重みwで重み付けする。上述したように、重みwは、対応画素間で輝度差が大きい場合には小さく、対応画素間で輝度差が小さい場合には大きくされる。これにより、対応画素間で輝度差の小さい場合のハミング距離のビット間差異は、ハミング距離に重点的に反映され、対応画素間で輝度差の大きい場合のハミング距離のビット間差異は、ハミング距離への影響が少なくなる
例えば、図46は、着目画素と参照画素との間におけるビット間差異と輝度差に基づく重みとの関係の一例を示す。図46は、センサス変換の際に、8つの周辺画素が参照されるケースである。図46において、重み算出部712は、撮像画像I1を基準画像とし、撮像画像I2を参照画像として処理を行う。重み算出部712は、基準画像において、センサス変換での比較領域に基づき、比較領域内における着目画素ctrの周囲の周辺画素の輝度値を、撮像画像I1から取得する。周辺画素は、着目画素ctrのセンサス変換において参照される8つの画素である。さらに、重み算出部712は、参照画像において、センサス変換での比較領域に基づき、比較領域内における参照画素refの周囲の周辺画素の輝度値を、撮像画像I2から取得する。参照画素refは、着目画素ctrとの間で相違度を算出する対象である探索範囲内の画素であり、参照画素refの周辺画素は、参照画素refのセンサス変換において参照される8つの画素である。
重み算出部712は、上記の式3に基づき、着目画素ctrの比較領域A1と、参照画素refの比較領域A2との間で、比較領域に対して同じ位置の周辺画素である対応周辺画素同士の輝度値の差異、つまり、輝度値の差の絶対値を算出する。さらに、重み算出部712は、上記の式4に基づき、8組の対応周辺画素それぞれについて、輝度値の差異に基づく重みを算出する。本実施の形態では、重み算出部712は、輝度値の差異の逆数を、重みとして算出する。なお、重みは、これに限定されず、輝度値の差異の逆数の2乗等、差異が大きい場合に小さく、差異が小さい場合に大きくなるものであればよい。例えば、重み算出部712は、比較領域A1における輝度値「85」の周辺画素と、比較領域A2における輝度値「120」の周辺画素との間で、輝度値の差異に基づく重み「0.03」を算出する。重み算出部712は、比較領域A1の8つの周辺画素それぞれについて、重みを算出する。
相違度算出部702は、着目画素のセンサス特徴量と、参照画素のセンサス特徴量とから、センサス特徴量のビット列間のビット間差異を算出する。相違度算出部702は、比較領域A1内の各周辺画素における着目画素ctrに対するセンサス変換値と、比較領域A2内の各周辺画素における参照画素refに対するセンサス変換値とを比較し、比較領域に対して同じ位置の対応画素同士の間で、センサス変換値が同じであるか否かに基づく、ビット間差異を算出する。例えば、相違度算出部702は、比較領域A1における左上角のセンサス変換値「1」と、比較領域A2における左上角のセンサス変換値「0」との間で、ビット間差異「1」を算出する。相違度算出部702は、窓領域A1の8つの周辺画素それぞれについて、ビット間差異を算出する。
さらに、相違度算出部702は、比較領域A1の周辺画素それぞれの重みと、比較領域A1の周辺画素それぞれのビット間差異とから、比較領域A1の周辺画素それぞれにおける重み付け後ビット間差異である重み付けビット間差異を算出する。相違度算出部702は、比較領域A1内の同一の周辺画素に対応する重みとビット間差異とを乗算することによって、重み付けビット間差異を算出する。例えば、相違度算出部702は、比較領域A1における左上角の周辺画素の重み「0.03」とビット間差異「1」とを乗算することによって、重み付けビット間差異「0.03」を算出する。
さらに、相違度算出部702は、着目画素ctrの各周辺画素の重み付けビット間差異の和を、着目画素ctrの相違度として算出する。図45の例では、相違度算出部702は、比較領域A1の各周辺画素の重み付けビット間差異の和「0.03+0.09+0.04=0.16」を、着目画素ctrの相違度として算出する。
視差選択部103は、着目画素に対して、参照画像における探索範囲内の参照画素それぞれとの間で、相違度算出部702によって算出された相違度のうちから最小の相違度を抽出し、抽出した相違度に対応する視差値を、着目画素の整数精度の視差値に決定する。
図47を参照しつつ、視差値算出装置700の動作を説明する。図47は、実施の形態7に係る視差値算出装置700の動作の一例を示すフローチャートである。ステップS101において、センサス変換部101は、実施の形態1と同様に、記憶部20から、カメラ11a及び11bそれぞれにより撮像されたステレオ画像である撮像画像I1及びI2を取得する。以下において、視差値算出装置700は、撮像画像I1を基準画像とし撮像画像I2を参照画像として処理するとして説明する。
次いで、ステップS102において、センサス変換部101は、基準画像の各画素及び参照画像の各画素のセンサス特徴量を算出し、相違度算出部702に出力する。
次いで、ステップS701において、重み算出部712は、記憶部20から、撮像画像I1及びI2を取得し、基準画像である撮像画像I1の着目画素について、相違度計算での探索範囲内の視差値の位置に対応する参照画像の参照画素と着目画素との間における、輝度差に応じた重みを算出する。重み算出部712は、着目画素の周辺画素と参照画素の周辺画素との間で、画素間の輝度差に応じた重みを算出する。重み算出部712は、基準画像の各画素を着目画素として、各画素の重みを算出し、相違度算出部702に出力する。なお、ステップS102及びS701の順序は逆であってもよい。
次いで、ステップS702において、相違度算出部702は、基準画像の各画素を着目画素として、着目画素の重みと、着目画素のセンサス特徴量と、参照画像の探索範囲内の参照画素のセンサス特徴量とから、当該参照画素に対する着目画素の相違度を算出する。つまり、相違度算出部702は、重み付け相違度を算出する。相違度算出部702は、着目画素及び参照画素のセンサス特徴量のビット列間のビット間差異に重みを付加した、重み付けビット間差異を用いて、重み付け相違度を算出する。相違度算出部702は、基準画像の各画素を着目画素として、各画素の重み付け相違度を算出し、視差選択部103に出力する。
次いで、ステップS104において、視差選択部103は、実施の形態1と同様に、基準画像の各画素の重み付け相違度に基づき、基準画像の各画素の整数精度の視差値を決定し、サブピクセル視差算出部104に出力する。
次いで、ステップS105において、サブピクセル視差算出部104は、実施の形態1と同様に、記憶部20から撮像画像I1及びI2を取得し、撮像画像I1及びI2と、撮像画像I1つまり基準画像の各画素の整数精度の視差値とを用いて、基準画像の各画素のサブピクセル精度の視差値を算出する。
上述のような実施の形態7に係る視差値算出装置700によれば、実施の形態1と同様の効果が得られる。また、視差値算出装置700は、基準画像の着目画素と参照画像の参照画素との相違度に対して、着目画素のセンサス変換で参照される周辺画素の輝度値と、参照画素のセンサス変換で参照される周辺画素の輝度値との差異に基づく重み付けを行う。この重み付けは、輝度値の差異が小さくなるほど大きくされ、輝度値の差異が大きくなるほど小さくされる。輝度値の差異が小さい相違度の構成要素は、相違度に重点的に反映され、輝度値の差異が大きい相違度の構成要素は、相違度に与える影響が小さい。このような重み付けは、例えば、着目画素に対する比較領域の配置が比較領域の中央のみであっても、比較領域の内部を空間的に重み付けすることができ、比較領域に対する重心位置を適応的に変更することができることを示す。つまり、着目画素に対して比較領域をあたかも適応的に動かしたのと同様の効果が得られる。これにより、相違度は、画素値の変化を反映することができる。よって、視差値算出装置700は、オクルージョンの境界又は視差値が変化する前景及び背景間の境界付近に位置する画素について、着目画素に対して単一の比較領域を用いるだけで、視差画像での視差値の差異による境界の位置と、被写体の輪郭の位置とを正確に整合させることができる。
なお、ビット間差異に対する重み付けは、着目画素及び参照画素の比較領域間の対応画素の輝度差に限らず、対応画素におけるそれぞれの輝度勾配の差であってもよく、さらに簡略化して、着目画素又は対応画素における輝度勾配であってもよい。さらに、上記重み付けは、対応画素間の輝度差と、対応画素における輝度勾配の差と、着目画素又は対応画素の輝度勾配との少なくとも2つを組み合わせたものあってもよい。ここで、上記重み付けは、上記の輝度差、輝度勾配の差、又は、着目画素若しくは対応画素における輝度勾配が大きいほど重くなり、小さいほど軽くなるように設定される。このような重み付けによっても、対応画素間の輝度差を用いた重み付けの場合と同様の効果を得ることができる。輝度勾配は、画像座標で、x軸方向の勾配であってもよく、y軸方向の勾配であってもよく、x軸方向及びy軸方向の勾配の両者を考慮した勾配であってもよく、その他の任意の方向の勾配であってもよい。
上述のように、視差値算出装置700は、相違度が算出される基準画像の着目画素及び参照画像の参照画素について、着目画素の周囲の画素の輝度値と参照画素の周囲の画素の輝度値との差異、着目画素の周囲の画素の輝度勾配と参照画素の周囲の画素の輝度勾配との差異と、着目画素、参照画素又はその周囲の画素における輝度勾配とのうちの少なくとも一つに基づく重みを、相違度に付加してもよい。
また、実施の形態7に係る視差値算出装置700は、実施の形態1に係る視差値算出装置100をベースする構成であったが、実施の形態2〜6及びその変形例をベースする構成であってもよい。
例えば、実施の形態5をベースとする実施の形態7の変形例に係る視差値算出装置700aは、図48に示すような構成である。変形例に係る視差値算出装置700aにおいて、実施の形態7と同様に、重み算出部712は、基準画像である撮像画像I1の全ての画素に対して、参照画像である撮像画像I2の参照画素との間で、重みを算出する。相違度算出部702は、基準画像の全ての画素に対して、重み付け相違度を算出する。
コスト算出部510は、基準画像中の全ての画素を着目画素として、着目画素を通る複数の直線それぞれの上での視差値の分布に関する着目画素のコストを算出する。コスト算出部510は、各直線上の画素それぞれについて、相違度算出のための探索範囲内の視差値と、当該画素に隣接する画素の視差値との差異に基づき、探索範囲内の各視差値に対応する重み付け相違度を、さらに重み付けした値を、着目画素のコストとして算出する。コスト集約部511は、着目画素を通る複数の直線上の画素それぞれに対して算出されたコストを、探索範囲の視差値毎に加算する、つまり視差値毎のコストの和を算出することによって、着目画素のコストを集約する。視差選択部103は、着目画素に関して、探索範囲の視差値毎のコストの和のうちから、最小のコストの和を抽出し、最小のコストの和を与える視差値を特定し、特定した視差値を着目画素の整数精度の視差値に決定する。さらに、視差選択部103は、基準画像の全ての画素を着目画素として、当該画素の整数精度の視差値を決定する。サブピクセル視差算出部104は、整数精度の視差値に基づき、サブピクセル精度の視差値を算出する。
なお、変形例に係る視差値算出装置700aは、重み付けを相違度に対して行うが、これに限る必要はなく、コスト計算時又はコスト集約時に同様の重み付けを各画素に対して行ってもよい。このような場合も、同様の効果を得ることができる。
具体的には、図34に示す着目画素I1piのコストの場合、ペナルティ値P1及びP2の値が、着目画素及び対応画素間の輝度差、着目画素及び対応画素間の輝度勾配の差、又は、これらの組み合わせに応じて、重み付けされる。さらに簡略化して、ペナルティ値P1及びP2は、着目画素又は対応画素における輝度勾配に応じて、重み付けされてもよい。ここで、基準画像中の着目画素I1piのx座標値をxbとすると、視差値0の場合、対応画素は、参照画像中において、xb−0=xbをx座標とする画素である。同様に、対応画素は、視差値−1の場合、参照画像中でxb−1をx座標とする画素であり、視差値−kの場合、参照画像中でxb−kをx座標とする画素である。ちなみに、参照画像中のいずれの対応画素のy座標も、基準画像中の着目画素I1piのy座標と等しい。
なお、上記重み付けは、上記の輝度差、輝度勾配の差、又は、着目画素若しくは対応画素における輝度勾配が大きいほど重くなり、小さいほど軽くなるように設定される。輝度勾配は、画像座標で、x軸方向の勾配であってもよく、y軸方向の勾配であってもよく、x軸方向及びy軸方向の勾配の両者を考慮した勾配であってもよく、その他の任意の方向の勾配であってもよい。
上述のように、視差値算出装置は、第1の評価画素としての着目画素I1piとその対応画素の探索範囲内の画素との間における輝度値の差異、着目画素I1piと上記探索範囲内の画素との間における輝度勾配の差異、並びに、着目画素I1pi又は上記探索範囲内の画素における輝度勾配のうちの少なくとも一つに基づく重みを、第1の評価値としてのペナルティ値に付加してもよい。
[その他]
以上、1つ又は複数の態様に係る視差値算出装置について、実施の形態及び変形例に基づいて説明したが、本開示は、これらの実施の形態及び変形例に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を実施の形態及び変形例に施したものや、異なる実施の形態及び変形例における構成要素を組み合わせて構築される形態も、1つ又は複数の態様の範囲内に含まれてもよい。
例えば、実施の形態及び変形例に係る視差値算出装置では、視差選択部は、相違度又はコストの最小値を与える視差値(「センサス特徴量ベースの視差値」とも呼ぶ)を、整数ピクセル精度の視差値に決定する。サブピクセル視差算出部は、当該整数ピクセル精度の視差値を用いて、第一〜第三参照画素における輝度差ベースのサブピクセル評価値の最適値を算出する。この場合、センサス特徴量ベースの整数ピクセル精度の視差値と、第一〜第三参照画素のうちサブピクセル評価値が最小又は最大である画素の整数ピクセル精度の視差値(「輝度差ベースの視差値」とも呼ぶ)とが一致するとして扱われる。例えば、図23の例では、サブピクセル評価値が最小である第一参照画素の整数ピクセル精度の視差値が、輝度差ベースの視差値に該当する。
しかしながら、これらが一致しなくてもよい。この場合、センサス特徴量ベースの視差値及び輝度差ベースの視差値に対応する視差値について、小数点以下の視差値として−0.5又は0.5を周囲の視差値との連続性を考慮して選択することによって、当該視差値を決定するようにしてもよい。具体的には、センサス特徴量ベース及び輝度差ベースの整数ピクセル精度の視差値が一致しない画素のうち、2つの整数ピクセル精度の視差値が一致する画素と隣接する画素について、当該画素である着目画素における小数点以下の視差値を+0.5とする場合と−0.5とする場合との間で、着目画素に隣接する上記画素における視差値と着目画素における視差値との差異がより小さい方の符号の値を選択する。選択された視差値+0.5又は−0.5は、着目画素における小数点以下の視差値とすることができる。なお、着目画素の視差値の整数値には、センサス特徴量ベースの視差値が適用される。つまり、センサス特徴量ベースの視差値に、選択された視差値+0.5又は−0.5が加算された視差値が、着目画素の整数ピクセル精度の視差値の代わりに用いられる。上述のような処理を繰り返すことによって、センサス特徴量ベースと輝度差ベースとの整数ピクセル精度の視差値が一致しない領域における視差値を、その周辺における視差値を用いて順次決定することができる。なお、選択される視差値は、+0.5又は−0.5に限定されず、−1.0超+1.0未満のいずれかの値であってもよい。
上述のように、視差値算出装置は、第1の画素としての着目画素について、その第1の視差値としてのセンサス特徴量ベースの視差値と、その複数のサブピクセル評価値のうちの最大値又は最小値を与える参照画素に対応する第3の視差値としての輝度差ベースの視差値とが一致しない場合、着目画素とその周囲の画素との間の視差値の連続性に基づき、小数点以下の視差値として−0.5又は0.5の視差値を決定し、決定された視差値をセンサス特徴量ベースの視差値に加算した視差値を、センサス特徴量ベースの視差値の代わりに用いる。
例えば、図49は、センサス変換値ベースの相違度又はコストと、輝度差ベースのサブピクセル評価値とに対して、それぞれ最小値又は最大値を与える整数ピクセル精度の視差値の一致の程度の一例を示す。図49は、画像Ia及びIbと、整数ピクセル精度の視差値の一致及び不一致を示す画像Icとを示す。画像Icにおいて、色無しの画素は、視差値が一致する画素であり、黒色の画素は、視差値が不一致である画素である。画像Ia及びIbは、車載カメラの撮像画像を想定したもので、ステレオカメラを横並びの状態から縦並びの状態に90度回転して取り付けたケースのCG画像である。実際には、画像Iaは下側に配置されたカメラの画像であり、画像Ibは上側に配置されたカメラの画像である。画像Ia及びIbそれぞれにおいて、下側の領域は、路面領域である。この路面領域では、視差値は、画像Ia及びIb中で左から右に向かう方向に連続的に減少する。画像Icの路面領域において、周期的に黒色の画素、すなわち、整数ピクセル精度の視差値の不一致が生じている。上記の不一致の要因は、視差値が、整数ピクセル精度の視差値に対して±0.5の小数値を有する場合に、相違度又はコストと、サブピクセル評価値との双方について、最小値又は最大値を与える整数精度の視差値の決定が不安定になることである。そのため、両者が一致しない場合には、小数点以下の視差値として−0.5又は0.5を周囲の視差値との連続性を考慮して選択することで、視差値推定の精度を高めることができる。
実施の形態及び変形例に係る視差値算出装置は、2つのカメラ11a及び11bの撮像画像間の視差値を算出したが、これに限定されない。視差値算出装置は、3つ以上のカメラの撮像画像間の視差値を算出してもよい。この場合、視差値算出装置は、3つ以上のカメラのうちの2つのカメラによるペア毎に、当該ペアの2つの撮像画像間の視差値を算出してもよい。
また、上述したように、本開示の技術は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読取可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばCD−ROM等の不揮発性の記録媒体を含む。
例えば、上記実施の形態及び変形例に係る視差値算出装置に含まれる各処理部は典型的には集積回路であるLSI(Large Scale Integration:大規模集積回路)として実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
なお、上記実施の形態及び変形例において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUなどのプロセッサ等のプログラム実行部が、ハードディスク又は半導体メモリ等の記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
また、上記構成要素の一部又は全部は、脱着可能なIC(Integrated Circuit)カード又は単体のモジュールから構成されてもよい。ICカード又はモジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。ICカード又はモジュールは、上記のLSI又はシステムLSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ICカード又はモジュールは、その機能を達成する。これらICカード及びモジュールは、耐タンパ性を有するとしてもよい。
本開示の視差値算出方法は、MPU(Micro Processing Unit)及びCPU等のプロセッサ、LSI等の回路、ICカード又は単体のモジュール等によって、実現されてもよい。
さらに、本開示の技術は、ソフトウェアプログラム又はソフトウェアプログラムからなるデジタル信号によって実現されてもよく、プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
また、上記で用いた序数、数量等の数字は全て、本開示の技術を具体的に説明するために例示するものであり、本開示は例示された数字に制限されない。また、構成要素間の接続関係は、本開示の技術を具体的に説明するために例示するものであり、本開示の機能を実現する接続関係はこれに限定されない。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを1つの機能ブロックとして実現したり、1つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。