JP2019120590A - 視差値算出装置、視差値算出方法及びプログラム - Google Patents
視差値算出装置、視差値算出方法及びプログラム Download PDFInfo
- Publication number
- JP2019120590A JP2019120590A JP2018000877A JP2018000877A JP2019120590A JP 2019120590 A JP2019120590 A JP 2019120590A JP 2018000877 A JP2018000877 A JP 2018000877A JP 2018000877 A JP2018000877 A JP 2018000877A JP 2019120590 A JP2019120590 A JP 2019120590A
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- image
- value
- parallax
- pixels
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Length Measuring Devices By Optical Means (AREA)
- Measurement Of Optical Distance (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
【課題】複数の画像間の視差値の算出精度を向上する技術を提供する。【解決手段】視差値算出装置は、2つのカメラで撮像された第1の画像及び第2の画像を取得し、前記第1の画像及び前記第2の画像それぞれに対して、予め定められた視差方向への拡大処理により、第1の拡大画像及び第2の拡大画像を生成し、前記第1の拡大画像の第1の画素毎及び前記第2の拡大画像の第2の画素毎に、周囲の画素との画素値の比較により、第1のセンサス特徴量及び第2のセンサス特徴量を算出し、各第1の画素について、前記第1のセンサス特徴量と前記第2のセンサス特徴量とを用いて、前記第2の画素それぞれに対する相違度を算出し、各第1の画素について、最も小さい相違度に対応する視差値を、前記第1の拡大画像に対応する視差画像の画素の視差値として取得し、前記視差画像を縮小処理することにより、前記第1の画像の画素毎の視差値を算出する。【選択図】図14
Description
本開示は、視差値算出装置、視差値算出方法及びプログラムに関する。
近年、自動車の安全運転支援システム及び自動運転システム、不審者等を検出する監視カメラシステム又はロボット等の開発分野において、カメラで撮像された画像を用いて、カメラから被写体までの距離を算出する技術が検討されている。上記距離を算出する技術として、複数のカメラで撮像された画像から上記距離を算出するステレオ測距技術がある。複数のカメラの撮像画像では、同一の被写体が見える方向が異なり、このような方向の違いは、視差と呼ばれる。ステレオ測距技術では、三角測量の技術が利用され、視差に基づき被写体までの距離が算出される。視差の精度は、被写体が遠い程、被写体の測距結果の誤差に与える影響が大きい。そこで、複数の画像間の視差を求めるための技術が検討されている。例えば、特許文献1は、ステレオカメラで撮像された2つの画像における視差を算出する技術を、開示している。特許文献1では、2つの画像の画素を対応付けるために、画素値のセンサス変換とセンサス変換された画素値の相関演算とが用いられる。非特許文献1は、Semi−Global Maching(SGM)と呼ばれる視差値算出方法を開示している。
Heiko Hirschmuller著、「Stereo Processing by Semiglobal Matching and Mutual Information」、IEEE、IEEE Transactions on Pattern Analysis Machine Intelligence、2008年2月、Vol. 39、No. 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の画素毎に、周囲の画素との画素値の比較により、第2のセンサス特徴量を算出し、(d)前記複数の第1の画素それぞれについて、前記第1のセンサス特徴量と、少なくとも1つの前記第2の画素の前記第2のセンサス特徴量とを用いて、前記少なくとも1つの第2の画素それぞれの位置での前記第1の画素に対する視差値に対応する相違度を算出し、(e)前記複数の第1の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第1の拡大画像に対応する視差画像における画素毎の視差値を取得し、(f)前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第2の画像に対する前記第1の画像の画素毎の視差値を算出する。
本開示の一態様に係る視差値算出方法は、(a)第1の位置に配置された第1のカメラで撮像される第1の画像と、第2の位置に配置された第2のカメラで撮像される第2の画像とを取得し、(b)前記第1の画像に対して、予め定められた視差方向への拡大処理により、前記第1の画像の画素の数を増やすことによって、複数の第1の画素を含む第1の拡大画像を生成し、前記第2の画像に対して、予め定められた視差方向への拡大処理により、前記第2の画像の画素の数を増やすことによって、複数の第2の画素を含む第2の拡大画像を生成し、(c)前記第1の拡大画像において、前記複数の第1の画素毎に、周囲の画素との画素値の比較により、第1のセンサス特徴量を算出し、前記第2の拡大画像において、前記複数の第2の画素毎に、周囲の画素との画素値の比較により、第2のセンサス特徴量を算出し、(d)前記複数の第1の画素それぞれについて、前記第1のセンサス特徴量と、少なくとも1つの前記第2の画素の前記第2のセンサス特徴量とを用いて、前記少なくとも1つの第2の画素それぞれの位置での前記第1の画素に対する視差値に対応する相違度を算出し、(e)前記複数の第1の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第1の拡大画像に対応する視差画像における画素毎の視差値を取得し、(f)前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第2の画像に対する前記第1の画像の画素毎の視差値を算出し、処理(a)〜処理(f)の少なくとも1つは、少なくとも1つのプロセッサによって実行される。
本開示の一態様に係るプログラムは、(a)第1の位置に配置された第1のカメラで撮像された第1の画像と、第2の位置に配置された第2のカメラで撮像された第2の画像とを取得し、(b)前記第1の画像に対して、予め定められた視差方向への拡大処理により、前記第1の画像の画素の数を増やすことによって、複数の第1の画素を含む第1の拡大画像を生成し、前記第2の画像に対して、予め定められた視差方向への拡大処理により、前記第2の画像の画素の数を増やすことによって、複数の第2の画素を含む第2の拡大画像を生成し、(c)前記第1の拡大画像において、前記複数の第1の画素毎に、周囲の画素との画素値の比較により、第1のセンサス特徴量を算出し、前記第2の拡大画像において、前記複数の第2の画素毎に、周囲の画素との画素値の比較により、第2のセンサス特徴量を算出し、(d)前記複数の第1の画素それぞれについて、前記第1のセンサス特徴量と、少なくとも1つの前記第2の画素の前記第2のセンサス特徴量とを用いて、前記少なくとも1つの第2の画素それぞれの位置での前記第1の画素に対する視差値に対応する相違度を算出し、(e)前記複数の第1の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第1の拡大画像に対応する視差画像における画素毎の視差値を取得し、(f)前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第2の画像に対する前記第1の画像の画素毎の視差値を算出することを、コンピュータに実行させる。
なお、上記の包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読取可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばCD−ROM(Compact Disc-Read Only Memory)等の不揮発性の記録媒体を含む。
本開示の視差値算出装置等によれば、複数の画像間の視差値の算出精度を向上することが可能になる。
[発明者による知見]
本発明者らは、デジタル画像を用いた測距精度の向上のために、デジタル画像の画素単位よりも細かいサブピクセル精度で、画像間の視差値を算出する技術を検討した。なお、視差値の単位は、1画素つまりピクセルであり、サブピクセルは、1画素未満を示す。本発明者らは、特許文献1及び非特許文献1に開示される技術を、以下に説明するように検討した。例えば、特許文献1に開示される従来技術では、複数のカメラ又は複眼カメラで撮像された複数の画像であるステレオ画像それぞれの画素が、センサス変換され、各画素について、センサス変換後の特徴量であるセンサス特徴量が算出される。さらに、ステレオ画像間において、各画素のセンサス特徴量の相違度が、ハミング距離を用いて算出される。一方の画像における着目画素について、当該着目画素とのハミング距離が最小となる画素が他方の画像から抽出され、抽出された画素は、着目画素に対応する画素に決定される。さらに、他方の画像における着目画素に対応する画素とその近傍の画素とについて、着目画素に対するハミング距離と、画素間の位置関係とに基づき、等角フィティングと呼ばれる方法を用いることによって、1画素未満のサブピクセル精度で視差値が算出される。
本発明者らは、デジタル画像を用いた測距精度の向上のために、デジタル画像の画素単位よりも細かいサブピクセル精度で、画像間の視差値を算出する技術を検討した。なお、視差値の単位は、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字型の関数の関係が当てはめられる。
例えば、図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の画像とを前記メモリから取得し、(b)前記第1の画像に対して、予め定められた視差方向への拡大処理により、前記第1の画像の画素の数を増やすことによって、複数の第1の画素を含む第1の拡大画像を生成し、前記第2の画像に対して、予め定められた視差方向への拡大処理により、前記第2の画像の画素の数を増やすことによって、複数の第2の画素を含む第2の拡大画像を生成し、(c)前記第1の拡大画像において、前記複数の第1の画素毎に、周囲の画素との画素値の比較により、第1のセンサス特徴量を算出し、前記第2の拡大画像において、前記複数の第2の画素毎に、周囲の画素との画素値の比較により、第2のセンサス特徴量を算出し、(d)前記複数の第1の画素それぞれについて、前記第1のセンサス特徴量と、少なくとも1つの前記第2の画素の前記第2のセンサス特徴量とを用いて、前記少なくとも1つの第2の画素それぞれの位置での前記第1の画素に対する視差値に対応する相違度を算出し、(e)前記複数の第1の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第1の拡大画像に対応する視差画像における画素毎の視差値を取得し、(f)前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第2の画像に対する前記第1の画像の画素毎の視差値を算出する。
上記態様によれば、視差値算出装置は、第1の拡大画像及び第2の拡大画像を用いて、第1の拡大画像の各画素に対応する視差画像の各画素の視差値を算出する。さらに、視差値算出装置は、視差画像の視差値を縮小処理することによって、第2の画像に対する第1の画像の画素毎の視差値を算出する。上述のような視差値は、1画素未満の精度、つまりサブピクセル精度であり得る。例えば、視差画像の視差値が、整数精度であっても、このような視差値が縮小されることによって、サブピクセル精度となり得る。また、第1の拡大画像及び第2の拡大画像は、同じ方向に拡大された画像であるため、縮小処理による視差値の算出は簡易である。よって、視差値算出装置は、複数の画像間の視差値を高い精度で簡易に算出することができる。
本開示の一態様に係る視差値算出装置において、前記プロセッサは、前記第1のセンサス特徴量と前記第2のセンサス特徴量との間のハミング距離を、前記相違度として算出してもよい。
上記態様によれば、センサス特徴量間のハミング距離を用いた相違度の算出は、簡易である。よって、視差値算出装置は、相違度を簡易に算出することができる。
本開示の一態様に係る視差値算出装置において、前記プロセッサは、処理(d)と処理(e)の間において、(g)前記第1の拡大画像において、視差値の算出対象の前記第1の画素である着目画素から、所定の方向に位置する前記第1の画素である評価画素それぞれについて、前記評価画素のうち、第1の評価画素に前記所定の方向で隣り合う第2の評価画素の視差値と、前記第2の拡大画像における前記第1の評価画素に対応する位置の対応画素に対する、相違度算出のための探索範囲内の前記第2の画素それぞれの視差値との比較に基づき、前記探索範囲内の前記第2の画素それぞれの第1の評価値を算出し、前記第1の評価画素と前記探索範囲内の前記第2の画素それぞれとの間の相違度と、前記探索範囲内の前記第2の画素それぞれの第1の評価値とに基づき、前記探索範囲内の前記第2の画素それぞれの視差値についての第2の評価値を算出し、前記探索範囲内の前記第2の画素それぞれの視差値に対応する全ての前記評価画素の前記第2の評価値を加算して、加算評価値を算出し、処理(e)において、最小の前記加算評価値に対応する前記視差値を前記着目画素の視差値に決定してもよい。
上記態様によれば、第2の評価値は、着目画素の周囲の画素の視差値の変化を相違度に反映した指標である。視差値算出装置は、第2の評価値の和を最小にするような視差値を着目画素の視差値に決定するため、着目画素における視差値がその周囲の画素の視差値と同様の値を取りやすくなる。よって、視差値算出装置は、被写体のエッジ、境界等のライン間で視差値が異なることによる筋状のアーチファクトが生じるストリーキングアーチファクトを低減し、高い精度で視差値を算出することができる。
本開示の一態様に係る視差値算出装置において、前記プロセッサは、処理(c)において、対象画素のセンサス特徴量を算出する際に比較する周囲の画素の領域である比較領域として、前記対象画素を含み且つ前記対象画素に対する位置が異なる複数の前記比較領域を決定し、前記比較領域それぞれについて、前記複数の第1の画素の前記第1のセンサス特徴量と、前記複数の第2の画素の前記第2のセンサス特徴量とを算出し、処理(d)において、前記比較領域それぞれについて、前記相違度を算出し、処理(e)において、全ての前記比較領域の前記相違度のうち、最も小さい相違度に対応する視差値を選択することにより、前記第1の拡大画像に対応する視差画像における画素毎の視差値を取得してもよい。
上記態様によれば、視差値算出装置は、複数の比較領域に関する着目画素の相違度のうち、最も小さい相違度に対応する視差値を着目画素の視差値に決定する。このような視差値は、着目画素に対する比較領域の位置に起因する視差値の誤差を低減する。よって、視差値算出装置は、オクルージョンの境界又は視差値が変化する前景及び背景間の境界付近に位置する画素について、視差画像での視差値の差異による境界の位置と、被写体の輪郭の位置とを正確に整合させることができる。
本開示の一態様に係る視差値算出装置において、前記プロセッサは、処理(d)において、前記相違度が算出される前記第1の画素及び前記第2の画素について、前記第1の画素の前記周囲の画素の画素値である輝度値と前記第2の画素の前記周囲の画素の画素値である輝度値との差異と、前記第1の画素の前記周囲の画素の輝度勾配と前記第2の画素の前記周囲の画素の輝度勾配との差異との少なくとも一方に基づく重みを、前記相違度に付加してもよい。
上記態様によれば、第1の画素の周囲の画素の輝度値と第2の画素の周囲の画素の輝度値との差異に基づく重みも、第1の画素の周囲の画素の輝度勾配と第2の画素の周囲の画素の輝度勾配との差異に基づく重みも、着目画素に対する比較領域の配置が固定されていても、比較領域の内部を空間的に重み付けする。これにより、相違度は、輝度値の変化及び/又は輝度勾配の変化を反映することができる。よって、視差値算出装置は、オクルージョンの境界又は視差値が変化する前景及び背景間の境界付近に位置する画素について、着目画素に対して単一の比較領域を用いるだけで、視差画像での視差値の差異による境界の位置と、被写体の輪郭の位置とを正確に整合させることができる。
本開示の一態様に係る視差値算出方法は、(a)第1の位置に配置された第1のカメラで撮像される第1の画像と、第2の位置に配置された第2のカメラで撮像される第2の画像とを取得し、(b)前記第1の画像に対して、予め定められた視差方向への拡大処理により、前記第1の画像の画素の数を増やすことによって、複数の第1の画素を含む第1の拡大画像を生成し、前記第2の画像に対して、予め定められた視差方向への拡大処理により、前記第2の画像の画素の数を増やすことによって、複数の第2の画素を含む第2の拡大画像を生成し、(c)前記第1の拡大画像において、前記複数の第1の画素毎に、周囲の画素との画素値の比較により、第1のセンサス特徴量を算出し、前記第2の拡大画像において、前記複数の第2の画素毎に、周囲の画素との画素値の比較により、第2のセンサス特徴量を算出し、(d)前記複数の第1の画素それぞれについて、前記第1のセンサス特徴量と、少なくとも1つの前記第2の画素の前記第2のセンサス特徴量とを用いて、前記少なくとも1つの第2の画素それぞれの位置での前記第1の画素に対する視差値に対応する相違度を算出し、(e)前記複数の第1の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第1の拡大画像に対応する視差画像における画素毎の視差値を取得し、(f)前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第2の画像に対する前記第1の画像の画素毎の視差値を算出し、処理(a)〜処理(f)の少なくとも1つは、少なくとも1つのプロセッサによって実行される。上記態様によれば、本開示の一態様に係る視差値算出装置を同様の効果が得られる。
本開示の一態様に係る視差値算出方法において、前記第1のセンサス特徴量と前記第2のセンサス特徴量との間のハミング距離を、前記相違度として算出してもよい。
本開示の一態様に係る視差値算出方法において、処理(d)と処理(e)の間において、(g)前記第1の拡大画像において、視差値の算出対象の前記第1の画素である着目画素から、所定の方向に位置する前記第1の画素である評価画素それぞれについて、前記評価画素のうち、第1の評価画素に前記所定の方向で隣り合う第2の評価画素の視差値と、前記第2の拡大画像における前記第1の評価画素に対応する位置の対応画素に対する、相違度算出のための探索範囲内の前記第2の画素それぞれの視差値との比較に基づき、前記探索範囲内の前記第2の画素それぞれの第1の評価値を算出し、前記第1の評価画素と前記探索範囲内の前記第2の画素それぞれとの間の相違度と、前記探索範囲内の前記第2の画素それぞれの第1の評価値とに基づき、前記探索範囲内の前記第2の画素それぞれの視差値についての第2の評価値を算出し、前記探索範囲内の前記第2の画素それぞれの視差値に対応する全ての前記評価画素の前記第2の評価値を加算して、加算評価値を算出し、処理(e)において、最小の前記加算評価値に対応する前記視差値を前記着目画素の視差値に決定してもよい。
本開示の一態様に係る視差値算出方法では、処理(c)において、対象画素のセンサス特徴量を算出する際に比較する周囲の画素の領域である比較領域として、前記対象画素を含み且つ前記対象画素に対する位置が異なる複数の前記比較領域を決定し、前記比較領域それぞれについて、前記複数の第1の画素の前記第1のセンサス特徴量と、前記複数の第2の画素の前記第2のセンサス特徴量とを算出し、処理(d)において、前記比較領域それぞれについて、前記相違度を算出し、処理(e)において、全ての前記比較領域の前記相違度のうち、最も小さい相違度に対応する視差値を選択することにより、前記第1の拡大画像に対応する視差画像における画素毎の視差値を取得してもよい。
本開示の一態様に係る視差値算出方法では、処理(d)において、前記相違度が算出される前記第1の画素及び前記第2の画素について、前記第1の画素の前記周囲の画素の画素値である輝度値と前記第2の画素の前記周囲の画素の画素値である輝度値との差異と、前記第1の画素の前記周囲の画素の輝度勾配と前記第2の画素の前記周囲の画素の輝度勾配との差異との少なくとも一方に基づく重みを、前記相違度に付加するとしてもよい。
本開示の一態様に係るプログラムは、(a)第1の位置に配置された第1のカメラで撮像された第1の画像と、第2の位置に配置された第2のカメラで撮像された第2の画像とを取得し、(b)前記第1の画像に対して、予め定められた視差方向への拡大処理により、前記第1の画像の画素の数を増やすことによって、複数の第1の画素を含む第1の拡大画像を生成し、前記第2の画像に対して、予め定められた視差方向への拡大処理により、前記第2の画像の画素の数を増やすことによって、複数の第2の画素を含む第2の拡大画像を生成し、(c)前記第1の拡大画像において、前記複数の第1の画素毎に、周囲の画素との画素値の比較により、第1のセンサス特徴量を算出し、前記第2の拡大画像において、前記複数の第2の画素毎に、周囲の画素との画素値の比較により、第2のセンサス特徴量を算出し、(d)前記複数の第1の画素それぞれについて、前記第1のセンサス特徴量と、少なくとも1つの前記第2の画素の前記第2のセンサス特徴量とを用いて、前記少なくとも1つの第2の画素それぞれの位置での前記第1の画素に対する視差値に対応する相違度を算出し、(e)前記複数の第1の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第1の拡大画像に対応する視差画像における画素毎の視差値を取得し、(f)前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第2の画像に対する前記第1の画像の画素毎の視差値を算出することを、コンピュータに実行させる。上記態様によれば、本開示の一態様に係る視差値算出装置を同様の効果が得られる。
なお、上記の包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読取可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばCD−ROM等の不揮発性の記録媒体を含む。また、装置は、1つ以上の装置で構成されてもよい。装置が2つ以上の装置で構成される場合、当該2つ以上の装置は、1つの機器内に配置されてもよく、分離した2つ以上の機器内に分かれて配置されてもよい。本明細書及び特許請求の範囲では、「装置」とは、1つの装置を意味し得るだけでなく、複数の装置からなるシステムも意味し得る。
以下、本開示に係る視差値算出装置について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも包括的又は具体的な例を示すものである。以下の実施の形態で示される数値、形状、構成要素、構成要素の配置位置及び接続形態、ステップ(工程)、ステップの順序等は、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、各図は模式図であり、必ずしも厳密に図示されたものではない。さらに、各図において、実質的に同一の構成要素に対しては同一の符号を付しており、重複する説明は省略又は簡略化される場合がある。
[実施の形態1]
実施の形態1に係る視差値算出装置100を含む測距システム1を説明する。測距システム1は、複数のカメラで取得された複数の撮像画像から、当該撮像画像内の被写体と複数のカメラとの距離を算出する、つまり、当該撮像画像内の被写体の位置を3次元的に測距する。視差値算出装置100は、測距に用いられる複数の撮像画像間の視差値を算出する。なお、視差値算出装置100が備えられる対象は、測距システム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と、水平縮小部105とを含む。上記の画像処理部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と、初期視差画像Dinitとを、予め定められた視差探索方向である水平方向の視差方向に拡大する、つまり水平拡大する。視差探索方向は、後述する探索範囲内における画素の並び方向である。撮像画像I1及びI2はそれぞれ、拡大画像I1h及びI2hに水平拡大される。初期視差画像Dinitは、カメラ11a及び11bのカメラパラメタに基づき予め算出された視差値の初期値を、各画素の画素値として含む画像である。このような視差値の初期値は、全ての画素において同一であってもよい。初期視差画像Dinitの全ての画素の視差値は、0であってもよい。カメラパラメタの例は、カメラの位置及び向き、並びに、焦点距離及び光軸中心位置等である。視差探索方向は、視差値を算出する際に、カメラ11a及び11bの画像間で画素を比較する方向であり、本実施の形態では、水平方向の一次元の探索方向である。この場合、カメラ11aの画像を基準として視差値を算出する際、当該画像の1つの画素である着目画素に対して、カメラ11bの画像において、着目画素と同じラインの参照画素が、水平方向、つまりライン方向に順次探索され、着目画素と比較される。カメラ11aの画像ではなく、カメラ11bの画像を基準とする場合も同様である。ここで、撮像画像I1は、第1の画像の一例であり、撮像画像I2は、第2の画像の一例であり、視差探索方向は、予め定められた視差方向の一例である。
水平拡大処理では、水平方向の画素数が増やされるが、鉛直方向の画素数は変わらない。つまり、画素列の数量が増加し、画素行の数量は一定である。水平拡大処理は補間拡大によって行われる。補間拡大の方法には複数のものが知られているが、本実施の形態では、復元画質が高いことで知られているバイキュービック補間よりもバイリニア補間を行うことが好ましい。その理由は、バイキュービック補間で重畳されるオーバーシュート成分が後述するセンサス変換結果を用いた相違度計算の誤差要因となり得るからである。
センサス変換部102は、拡大画像I1h及びI2hをセンサス変換する。センサス変換とは、着目画素とその周囲の周辺画素との大小関係により、着目画素周囲の周辺画素の画素値つまり輝度値の分布をビット列に変換する処理である。具体的には、例えば、着目画素の画素値が周辺画素の画素値よりも大きい場合、当該周辺画素のセンサス変換値は1であり、着目画素の画素値が周辺画素の画素値以下の場合、当該周辺画素のセンサス変換値は0である。センサス変換部102は、拡大画像I1h及びI2hそれぞれの全ての画素に対して、センサス変換する。
例えば、図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)で示される。このようにして、拡大画像I1h及びI2hそれぞれの全ての画素に対して、ビット列が生成される。なお、周辺画素の数量及び配置は、図18A及び18Bの数量及び配置に限る必要はなく、他の数量及び配置であってもかまわない。ここで、センサス変換値からなる上記のようなビット列は、センサス特徴量を構成する。
相違度算出部103は、予め決められた探索範囲内の画素について、拡大画像I1h及びI2hの間のセンサス特徴量の相違度を算出する。本実施の形態では、センサス特徴量の相違度として、ハミング距離が用いられる。ここで、探索範囲について説明する。探索範囲は、少なくとも1つの画素を含む。図15に示すように、本実施の形態では、カメラ11aは、撮像方向である向きDに向かって、カメラ11bよりも左側に配置され、左カメラを構成し、カメラ11bは、右カメラを構成する。
このようなカメラ11aの撮像画像I1に対応する拡大画像I1hを基準画像とし、カメラ11bの撮像画像I2に対応する拡大画像I2hを参照画像とする場合の探索範囲を説明する。この場合、図20に示すように、例えば、基準画像I1h上の画素(以下、「着目画素」とも呼ぶ)I1hpは、参照画像I2h上の探索範囲内の全ての画素(以下、「参照画素」とも呼ぶ)I2hp1〜I2hpnそれぞれとの間で、センサス特徴量の相違度が求められる。なお、図20は、相違度の算出の際の画素の探索範囲の一例を示す図である。参照画素I2hp1〜I2hpnは、着目画素I1hpと画素座標のy座標が同じ画素の行を構成し、当該画素の行は、探索範囲を構成する。このような探索範囲は、画素座標における一次元探索範囲であり、参照画像I2hにおける1つの画素の行の全てである。
又は、着目画素I1hpは、参照画像I2h上における着目画素I1hpと同じ画素座標である対応画素I2hpmを含むk+1個(kは、正の整数)の参照画素それぞれとの間で、センサス特徴量の相違度が求められてもよい。着目画素I1hpの画素座標と、対応画素I2hpmの画素座標とは、着目画素I1hpでの視差値に対応して異なるが、本実施の形態では、各画素の視差値の初期値を示す初期視差画像における各画素の視差値は0である。このため、着目画素I1hpの画素座標と、対応画素I2hpmの画素座標とが同じである。このような参照画素は、対応画素I2hpmとy座標が同じであり且つ対応画素I2hpmからx軸負方向にk+1個の画素、つまり、対応画素I2hpmから画素I2hpm−kのk+1個の画素であり、探索範囲を構成する。このような探索範囲は、一次元探索範囲であり、参照画像I2hの対応画素I2hpmを含む画素の行において、対応画素I2hpmから基線BLに沿ってカメラ11aに向かうk+1個の画素の範囲である。以下の実施の形態では、k+1個の画素を探索範囲とするケースを説明する。
なお、着目画素I1hpに対する対応画素I2hpmの視差値は、0画素であり、着目画素I1hpに対する画素I2hpm−kの視差値は、−k画素である。このため、探索範囲は、着目画素I1hpに対する水平方向の視差値が0画素から−k画素である範囲でもある。なお、上記探索範囲は、視差値が0以下の範囲であるが、これに限定されず、視差値が0超である範囲も含んでもよい。本実施の形態では、視差値は、正の値である場合、x軸正方向の視差を示し、負の値である場合、x軸負方向の視差を示す。
同様に、拡大画像I2hを基準画像とし、拡大画像I1hを参照画像とする場合の探索範囲を説明する。この場合、図21に示すように、基準画像I2h上の着目画素I2hpは、参照画像I1h上の探索範囲内の全ての参照画素I1hp1〜I1hpnそれぞれとの間で、センサス特徴量の相違度が求められる。なお、図21は、相違度の算出の際の画素の探索範囲の別の一例を示す図である。このような探索範囲は、参照画像I1hにおける1つの画素の行の全てであり、この行のy座標は、着目画素I2hpと同じである。
又は、着目画素I2hpは、参照画像I1h上における対応画素I1hpmを含むk+1個の参照画素それぞれとの間で、センサス特徴量の相違度が求められてもよい。このような参照画素は、対応画素I1hpmとy座標が同じであり且つ対応画素I1hpmからx軸正方向のk+1個の画素、つまり、対応画素I1hpmから画素I1hpm+kのk+1個の画素であり、探索範囲を構成する。このような探索範囲は、参照画像I1hの対応画素I1hpmを含む画素の行において、対応画素I1hpmから基線BLに沿ってカメラ11bに向かうk+1個の画素の範囲である。また、探索範囲は、着目画素I2hpに対する水平方向の視差値が0画素からk画素である範囲でもある。上記探索範囲は、視差値が0以上の範囲であるが、これに限定されず、視差値が0未満である範囲も含んでもよい。
また、ハミング距離を用いた相違度は、以下のように求められる。例えば、基準画像の着目画素のセンサス特徴量が、ビット列(00011011)であり、参照画像の参照画素のセンサス特徴量が、ビット列(10110001)である場合、これら2つの画素間のハミング距離は、1+0+1+0+1+0+1+0=4であり、相違度は、「4」である。相違度は、ハミング距離であり、2つの画素のセンサス特徴量であるビット列間において、同じ桁同士のビットの数値が異なる桁数である。つまり、ハミング距離の算出では、2つのビット列間において、同じ桁のビットの数値が同じ場合、ビット間差異が「0」であり、同じ桁のビットの数値が異なる場合、ビット間差異が「1」であり、全てのビット間差異の和がハミング距離である。
このように、相違度算出部103は、基準画像の着目画素それぞれについて、着目画素のセンサス特徴量と、参照画像の少なくとも1つの参照画素のセンサス特徴量とを用いて、少なくとも1つの参照画素それぞれの位置での着目画素に対する視差値に対応する相違度を算出する。
視差選択部104は、着目画素について、対応する探索範囲内の参照画素の相違度のうちから、最小の相違度を選択し、当該相違度に対応する参照画素の視差値を特定する。そして、視差選択部104は、特定された視差値を、着目画素の視差値に決定する。視差選択部104は、基準画像内の全ての画素を、着目画素として順次走査することにより、基準画像内の各画素における視差値を決定する。これにより、視差選択部104は、各画素の画素値が視差値である視差画像を生成する。視差画像は、基準画像の各画素における輝度値からなる画素値を視差値に置き換えた画像である。
具体的には、着目画素の視差値の決定は、以下に説明するように処理される。例えば、図22には、1つの着目画素に対して算出される相違度と、相違度に対応する参照画素の視差値との関係の一例が、図化されている。このように、相違度は、予め設定された視差値の最小値及び最大値で決まる探索範囲内において、1画素間隔で算出される。そして、視差選択部104は、探索範囲内の相違度から、最小の相違度を選択し、当該相違度に対応する視差値を、着目画素の視差値に決定する。
水平縮小部105は、視差選択部104によって決定された基準画像の各画素の視差値を、水平拡大部101における水平拡大率に対応した水平縮小率で縮小することによって、水平拡大前のスケールの視差値に変換する。例えば、水平拡大部101における水平拡大率が2倍の場合、水平縮小部105は、2分の1の水平縮小率で水平縮小処理を行う。例えば、水平拡大部101における水平拡大率が4倍の場合、水平縮小部105は、4分の1の水平縮小率で水平縮小処理を行う。
具体的には、水平縮小部105は、視差選択部104によって生成された視差画像を、上記の水平縮小率で縮小する。例えば、水平縮小率が2分の1の場合、水平縮小部105は、水平方向つまりx軸方向に並ぶ2つの画素の画素値を平均化する、2つの画素の画素値の一方を選ぶ等で当該2つの画素を統合することにより、画素数を2分の1にするように視差画像を縮小する。さらに、水平縮小部105は、統合後の各画素の画素値、つまり視差値を2分の1にする。これにより、水平縮小部105は、視差画像を2分の1に縮小した1/2視差画像を、縮小視差画像として生成する。このような1/2視差画像の各画素は、2分の1画素精度の視差値を含む。
よって、水平拡大部101による2倍の水平拡大及び水平縮小部105による2分の1の水平縮小の場合、2分の1画素精度の視差値の算出が可能であり、水平拡大部101による4倍の水平拡大及び水平縮小部105による4分の1の水平縮小の場合、4分の1画素精度の視差値の算出が可能である。
なお、本実施の形態では、左右のカメラ11a及び11bの配置が適切である場合を想定している。すなわち、図15に示すように、カメラ11a及び11bの光軸中心OAa及びOAbが基線BL方向に垂直であり、且つ、光軸中心OAa及びOAbが互いに平行であり、且つ、カメラ11a及び11bの水平スキャン方向と基線BL方向とが平行あり、且つ、カメラ11a及び11bに画像歪がない場合を想定している。基準画像中の着目点に対応する参照画像中の対応点は、当該着目点の画素座標のy座標と、画素座標のy座標が同じであるx軸方向の水平ライン中に存在する。上記のカメラ11a及び11bの配置によるステレオ画像の撮像を平行撮像と呼ぶ。カメラ11a及び11bの配置が、平行撮像の配置からずれている、又は、撮像画像の歪みが無視できない程大きい場合には、水平拡大部101により水平拡大を行う前又は後に、歪み補正及び画像の平行化処理を行うことで、歪みを有さず且つ平行撮像による画像となるように、画像を補正してもよい。また、図17に示すように、カメラ11a及び11bが上下方向に離して配置される場合、基準画像中の着目点に対応する参照画像中の対応点は、当該着目点の画素座標のx座標と、画素座標のx座標が同じであるy軸方向の垂直コラム中に存在する。
さらに、実施の形態1に係る視差値算出装置100の動作を説明する。図23は、実施の形態1に係る視差値算出装置100の動作の一例を示すフローチャートである。まず、ステップS101において、水平拡大部101は、記憶部20から、カメラ11a及び11bそれぞれにより撮像された撮像画像I1及びI2を取得する。撮像画像I1及びI2は、同じ被写体を写し出す画像であり、同じ時刻にカメラ11a及び11bにより撮像された画像である。つまり、撮像画像I1及びI2は、ステレオ画像である。
次いで、ステップS102において、水平拡大部101は、撮像画像I1及びI2それぞれを、視差探索方向である画素座標のx軸方向、つまり水平方向に、所定の水平拡大率で拡大することによって、拡大画像I1h及びI2hを生成する。水平拡大部101は、補間拡大により画素数を増やすことよって水平拡大処理をする。本実施の形態では、バイリニア補間が補間拡大の方法として用いられる。
次いで、ステップS103において、センサス変換部102は、拡大画像I1h及びI2hそれぞれをセンサス変換する。センサス変換部102は、拡大画像I1h及びI2hそれぞれの全ての画素をセンサス変換し、各画素のセンサス特徴量を算出する。センサス特徴量は、例えば、図18A、図18B、図19A及び図19Bに示すように、センサス変換される着目画素の周辺画素に対応するビット列であり、「センサスベクトル」とも呼ばれる。
次いで、ステップS104において、相違度算出部103は、拡大画像I1h及びI2hのうちの一方の基準画像の各画素について、拡大画像I1h及びI2hのうちの他方の参照画像に対する相違度を算出する。本実施の形態では、相違度算出部103は、図15に示すように左側に位置するカメラ11aに対応する拡大画像I1hを、基準画像に決定し、拡大画像I2hを参照画像に決定するが、これに限定されない。基準画像及び参照画像の決定は、予め決められた規則に従って行われてもよく、図示しない入力装置を介したユーザによる指令に従って行われてもよい。相違度算出部103は、基準画像I1hの着目画素について、例えば、図20に示すような、参照画像I2hにおける着目画素に対応する探索範囲の参照画素それぞれと着目画素との間で、センサス特徴量の相違度を算出する。相違度算出部103は、基準画像I1hの全ての画素を着目画素として、相違度を算出する。本実施の形態では、相違度は、着目画素及び参照画素のセンサス特徴量間のハミング距離である。例えば、探索範囲内の参照画素の数量がk+1個である場合、1つの着目画素に対してk+1個の相違度が算出される。
次いで、ステップS105において、視差選択部104は、基準画像I1hの各画素について、算出された相違度に基づき、当該画素の視差値を決定する。視差選択部104は、例えば、図22に示すように、基準画像I1hの着目画素に対応する相違度から最小の相違度を抽出し、最小の相違度に対応する参照画素と着目画素との視差値を特定する。視差値は、例えば、図20に示すように、着目画素I1hpに対応する参照画像I2hの対応画素I2hpmに対する参照画素の位置から、算出可能である。視差選択部104は、基準画像I1h内で、全ての画素を着目画素として順次走査することにより、基準画像I1h内の全ての画素の視差値を決定する。これにより、視差選択部104は基準画像I1hの視差画像を生成する。
次いで、ステップS106において、水平縮小部105は、視差画像を、ステップS102における水平拡大率に応じた水平縮小率で縮小することによって、縮小視差画像を生成する。このとき、水平縮小部105は、視差画像において、水平方向つまりx軸方向で隣り合う複数の画素を統合することによって、撮像画像I1と同じ画素数の縮小視差画像を生成する。水平縮小部105は、複数の画素の統合の際、画素値である視差値も、水平縮小率で縮小する。これにより、縮小視差画像は、水平拡大前のスケールにおける視差値を画素値として含む。例えば、ステップS102での水平拡大率が2倍の場合、水平縮小率は2分の1であり、水平拡大率が4倍の場合、水平縮小率は4分の1である。縮小視差画像は、前者の場合、2分の1画素精度の視差値を含み、後者の場合、4分の1画素精度の視差値を含む。
なお、左右のカメラ11a及び11bの配置が適切でない場合、ステップS102又はステップS103の前に、画像の歪み補正及び平行化処理等を行ってもよい。またその際、平行化に伴う画像中心(図15及び図17における光軸中心OAa及びOAbの画像中での位置)の移動を考慮し、初期視差画像における視差値の初期値を0以外の値に設定するようにしてもよい。
上述したように、実施の形態1に係る視差値算出装置100は、カメラ11aで撮像された撮像画像I1と、カメラ11bで撮像された撮像画像I2とを記憶部20から取得し、撮像画像I1に対して、予め定められた視差方向への拡大処理により、画素の数を増やすことによって、拡大画像I1hを生成し、撮像画像I2に対して、予め定められた視差方向への拡大処理により、画素の数を増やすことによって、拡大画像I2hを生成する。さらに、視差値算出装置100は、拡大画像I1hの複数の第1の画素毎に第1のセンサス特徴量を算出し、拡大画像I2hの複数の第2の画素毎に第2のセンサス特徴量を算出し、複数の第1の画素それぞれについて、第1のセンサス特徴量と、少なくとも1つの第2の画素それぞれの第2のセンサス特徴量とを用いて、少なくとも1つの第2の画素それぞれの位置での視差値に対応する相違度を算出する。視差値算出装置100は、複数の第1の画素それぞれについて、相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、拡大画像I1hに対応する視差画像における画素毎の視差値を取得し、視差画像の画素毎の視差値に対して、縮小処理をすることにより、撮像画像I2に対する撮像画像I1の画素毎の視差値を算出する。
上記構成によると、視差値算出装置100は、拡大画像I1h及びI2hを用いて、基準画像である拡大画像I1hの各画素に対応する視差画像の各画素の視差値を、整数精度で算出する。拡大画像I1h及びI2hは、同じ方向に拡大されているため、上記の視差値の算出は簡易である。上述のような視差画像が縮小処理されることによって得られる視差値は、1画素未満の精度、つまりサブピクセル精度である。よって、視差値算出装置100は、複数の画像間の視差値を高い精度で算出することができる。より具体的には、視差値算出装置100は、ハミング距離である相違度が最小となる整数画素精度の視差値付近でサブピクセル精度の視差値を算出することができる。なお、拡大画像I2hが基準画像である場合も同様である。
また、実施の形態1に係る視差値算出装置100において、相違度は、第1のセンサス特徴量と第2のセンサス特徴量との間のハミング距離であるため、相違度の算出が簡易である。よって、視差値算出装置100は、複数の画像間の視差値を、高い精度で且つ簡易に算出することができる。
[実施の形態2]
実施の形態1に係る視差値算出装置100は、カメラ11a及び11bに対応する拡大画像I1h及びI2hの一方を基準画像とし、他方を参照画像と決定し、基準画像の画素に対応する視差値を算出した。実施の形態2に係る視差値算出装置200は、拡大画像I1h及びI2hそれぞれを基準画像に決定し、各基準画像に対応する視差値を比較することによって、視差値の一貫性をチェックする。つまり、実施の形態2に係る視差値算出装置200は、視差値の算出結果の信頼性を高めるために、双方向の視差値の算出を行い、視差値の算出結果の比較から一貫性をチェックすることで、視差値の算出精度を高める。実施の形態2において、実施の形態1と同様の構成要素については、実施の形態1と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1と異なる点を中心に説明し、実施の形態1と同様の点の説明を省略する。
実施の形態1に係る視差値算出装置100は、カメラ11a及び11bに対応する拡大画像I1h及びI2hの一方を基準画像とし、他方を参照画像と決定し、基準画像の画素に対応する視差値を算出した。実施の形態2に係る視差値算出装置200は、拡大画像I1h及びI2hそれぞれを基準画像に決定し、各基準画像に対応する視差値を比較することによって、視差値の一貫性をチェックする。つまり、実施の形態2に係る視差値算出装置200は、視差値の算出結果の信頼性を高めるために、双方向の視差値の算出を行い、視差値の算出結果の比較から一貫性をチェックすることで、視差値の算出精度を高める。実施の形態2において、実施の形態1と同様の構成要素については、実施の形態1と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1と異なる点を中心に説明し、実施の形態1と同様の点の説明を省略する。
図24は、実施の形態2に係る視差値算出装置200の機能的な構成の一例のブロック図を示す。図24に示すように、視差値算出装置200は、水平拡大部101と、センサス変換部102と、相違度算出部103と、第一視差選択部204aと、第二視差選択部204bと、L/Rチェック部(「左右チェック部」とも呼ぶ)206と、水平縮小部105とを含む。
相違度算出部103は、カメラ11a及び11bの撮像画像I1及びI2それぞれに対応する拡大画像I1h及びI2hそれぞれを基準画像として、基準画像の各画素の相違度を算出する。具体的には、相違度算出部103は、第一基準画像である拡大画像I1h中の各画素に関して、第一参照画像である拡大画像I2hの探索範囲中の各画素に対して、つまり、探索範囲中の各視差値について、センサス特徴量の相違度を算出する。同様に、相違度算出部103は、第二基準画像である拡大画像I2h中の各画素に関して、第二参照画像である拡大画像I1hの探索範囲中の各画素に対して、センサス特徴量の相違度を算出する。
第一視差選択部204aは、拡大画像I1hの各画素に対して算出された相違度について、当該画素の相違度のうちから最小の相違度を抽出し、最小の相違度を与える拡大画像I2hの画素の視差値を特定する。そして、第一視差選択部204aは、拡大画像I1hの視差画像を、第一基準画像の視差画像として生成する。
第二視差選択部204bは、拡大画像I2hの各画素に対して算出された相違度について、当該画素の相違度のうちから最小の相違度を抽出し、最小の相違度を与える拡大画像I1hの画素の視差値を特定する。そして、第二視差選択部204bは、拡大画像I2hの視差画像を、第二基準画像の視差画像として生成する。
L/Rチェック部206は、第一基準画像の視差画像と、第二基準画像の視差画像との間の一貫性をチェックする。つまり、L/Rチェック部206は、拡大画像I1hの視差画像と、拡大画像I2hの視差画像との間の一貫性をチェックする。L/Rチェック部206は、一貫性のチェックに、以下の式2を用いる。
上記の式2において、d1は、拡大画像I1hの着目画素の視差値である。x’は、水平拡大後の拡大画像I1hにおける画素のx座標を示し、(x’,y)は、着目画素の画素座標である。x’+d1(x’,y)は、拡大画像I1hの着目画素の視差値に対応する位置の拡大画像I2hの画素である視差対応画素のx座標を示す。d2は、拡大画像I2hの上記視差対応画素の視差値である。x’+d1(x’,y)+d2(x’+d1(x’,y),y)は、拡大画像I2hの上記視差対応画素の視差値に対応する位置の拡大画像I1hの画素のx座標を示す。このような式2は、拡大画像I1hを基準にした視差値と、拡大画像I2hを基準とした視差値との差異を表す。上記の式2の値が所定の閾値以下である場合、拡大画像I1hの着目画素の視差値の信頼性が高く、拡大画像I1hを基準にした視差値と、拡大画像I2hを基準とした視差値との間に一貫性がある見なすことができる。上記の式2の値が所定の閾値よりも大きい場合、拡大画像I1hの着目画素の視差値の信頼性が低く、上記一貫性がないと見なすことができる。上記閾値は、要求される一貫性の程度に応じて予め決められる。上記閾値の例は、1画素である。
L/Rチェック部206は、上記の式2の値が所定の閾値以下である場合、視差値d1をそのまま、拡大画像I1hの着目画素(x’,y)の視差値に決定し出力する。一方、L/Rチェック部206は、上記の式2の値が閾値よりも大きい場合には、拡大画像I1hの着目画素(x’,y)の視差値を、例えば探索範囲に含まれる視差値以外の特定の値に変更し出力する。この特定の値は、視差値の一貫性がないことを示す値である。例えば、図20に示すように、探索範囲が0画素から−k画素である場合、上記の特定の値は、−k画素未満の値であってもよい。L/Rチェック部206は、上述のように、拡大画像I1hの視差画像における各画素の視差値を、一貫性の有無に基づき、維持又は変更することによって、新たな視差画像を生成する。
水平縮小部105は、L/Rチェック部206によって生成された新たな視差画像を、水平拡大部101における水平拡大率に応じた水平縮小率で縮小し、水平拡大前の撮像画像と同じ画素数の縮小視差画像を生成する。具体的には、水平縮小部105は、拡大画像I1hの視差画像から生成された新たな視差画像を縮小する。水平縮小部105は、複数の画素を統合する際、視差値の一貫性がある画素の視差値を、上記水平縮小率で縮小し、統合後の画素の画素値に決定する。このような統合後の画素の視差値は、水平拡大前のスケールにおける視差値を示す。一方、水平縮小部105は、視差値の一貫性がない画素の視差値については、視差値の一貫性がないことを示す上記の特定の値を、縮小せずに、統合後の画素の画素値に決定する。これにより、水平縮小部105が出力する縮小視差画像では、視差値の一貫性がある画素は、算出されたサブピクセル精度の視差値を画素値として含み、視差値の一貫性がない画素は、一貫性つまり信頼性が低いことを示す例外値を画素値として含む。
図25を参照しつつ、視差値算出装置200の動作を説明する。図25は、実施の形態2に係る視差値算出装置200の動作の一例を示すフローチャートである。視差値算出装置200は、ステップS101〜S103の処理を、実施の形態1と同様に行う。
次いで、ステップS201において、相違度算出部103は、拡大画像I1hを第一基準画像として、第一参照画像である拡大画像I2hに対する相違度を、拡大画像I1hの各画素について算出する。さらに、相違度算出部103は、拡大画像I2hを第二基準画像として、第二参照画像である拡大画像I1hに対する相違度を、拡大画像I2hの各画素について算出する。
次いで、ステップS202において、第一視差選択部204aは、第一基準画像である拡大画像I1hの各画素について、算出された相違度に基づき、当該画素の視差値を決定する。第一視差選択部204aは、拡大画像I1h内の各画素の輝度値を視差値に置き換えることによって、拡大画像I1h、つまり第一基準画像の視差画像を生成する。
次いで、ステップS203において、第二視差選択部204bは、第二基準画像である拡大画像I2hの各画素について、算出された相違度に基づき、当該画素の視差値を決定する。第二視差選択部204bは、拡大画像I2h内の各画素の輝度値を視差値に置き換えることによって、拡大画像I2h、つまり第二基準画像の視差画像を生成する。なお、ステップS202及びS203の順序は、逆であってもよい。
次いで、ステップS204において、L/Rチェック部206は、第一基準画像である拡大画像I1hの視差画像の各画素について、拡大画像I2hの視差画像との間で、視差値の一貫性をチェックする。L/Rチェック部206は、拡大画像I1hの視差画像における各画素の視差値を、一貫性がある場合には維持し、一貫性がない場合には例外的な視差値に変更することによって、新たな視差画像を生成する。
次いで、ステップS205において、水平縮小部105は、ステップS204で生成された新たな視差画像を、ステップS102における水平拡大率に応じた水平縮小率で縮小することによって、縮小視差画像を生成する。水平縮小部105は、複数の画素を統合する際、視差値の一貫性がある画素の視差値を、上記水平縮小率で縮小し、統合後の画素の画素値に決定する。水平縮小部105は、視差値の一貫性がない画素については、当該画素に設定された例外的な視差値を、縮小せずに、統合後の画素の画素値に決定する。
上述のような実施の形態2に係る視差値算出装置200によれば、実施の形態1と同様の効果が得られる。さらに、視差値算出装置200は、カメラ11aの撮像画像I1の拡大画像I1hを基準画像とし且つカメラ11bの撮像画像I2の拡大画像I2hを参照画像とする場合の拡大画像I1hの各画素の視差値を算出する。さらに、視差値算出装置200は、拡大画像I2hを基準画像とし且つ拡大画像I1hを参照画像とする場合の拡大画像I2hの各画素の視差値を算出する。視差値算出装置200は、拡大画像I1hを基準にした視差値と、拡大画像I2hを基準とした視差値との差異に基づき、視差値の一貫性を決定し、一貫性のある視差値を画素に適用し、一貫性のない視差値を一貫性が低いことを示す値に置き換えて画素に適用する。そして、視差値算出装置200は、各画素の視差値の一貫性の有無の判別が容易である視差画像を生成する。よって、視差値算出装置200は、複数の画像間の視差値を高い精度及び信頼性で算出することができる。
本実施の形態では、L/Rチェック部206は、拡大画像I1hの視差画像と拡大画像I2hの視差画像との間の視差値の一貫性の有無に応じて、拡大画像I1hの視差画像の各画素の視差値を変更し、新たな視差画像を生成したが、これに限定されない。L/Rチェック部206は、上記一貫性の有無に応じて、拡大画像I2hの視差画像の各画素の視差値を変更し、新たな視差画像を生成してもよい。この場合、水平縮小部105は、拡大画像I2hの視差画像から生成された新たな視差画像を縮小する。
又は、L/Rチェック部206は、拡大画像I1hの視差画像の各画素について、拡大画像I2hの視差画像との間の視差値の一貫性の有無を判定し、且つ、拡大画像I2hの視差画像の各画素について、拡大画像I1hの視差画像との間の視差値の一貫性の有無を判定してもよい。さらに、L/Rチェック部206は、拡大画像I1hの視差画像及び拡大画像I2hの視差画像の対応する2つの画素間で、視差値の一貫性の有無を比較してもよい。この場合、L/Rチェック部206は、対応する2つの画素のいずれもが、視差値の一貫性を有する場合、当該画素それぞれの視差値をそのまま採用し、対応する2つの画素のいずれもが、視差値の一貫性を有さない場合、当該画素それぞれの視差値を上記特定の値に変更する。また、L/Rチェック部206は、対応する2つの画素の一方が、視差値の一貫性を有し、且つ他方が視差値の一貫性を有さない場合、当該画素それぞれの視差値として、一貫性を有する画素の視差値を採用してもよく、上記特定の値を採用してもよい。
[実施の形態3]
実施の形態3に係る視差値算出装置300を説明する。実施の形態3に係る視差値算出装置300は、実施の形態2に係る視差値算出装置200と比較して、画像を縮小及び拡大する処理をさらに行う。具体的には、実施の形態2に係る視差値算出装置200は、水平方向の画像の拡大及び縮小のみを行ったが、実施の形態3に係る視差値算出装置300は、垂直方向の画像の縮小及び拡大をさらに行う。実施の形態3において、実施の形態1又は2と同様の構成要素については、実施の形態1及び2と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1及び2と異なる点を中心に説明し、実施の形態1又は2と同様の点の説明を省略する。
実施の形態3に係る視差値算出装置300を説明する。実施の形態3に係る視差値算出装置300は、実施の形態2に係る視差値算出装置200と比較して、画像を縮小及び拡大する処理をさらに行う。具体的には、実施の形態2に係る視差値算出装置200は、水平方向の画像の拡大及び縮小のみを行ったが、実施の形態3に係る視差値算出装置300は、垂直方向の画像の縮小及び拡大をさらに行う。実施の形態3において、実施の形態1又は2と同様の構成要素については、実施の形態1及び2と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1及び2と異なる点を中心に説明し、実施の形態1又は2と同様の点の説明を省略する。
図26は、実施の形態3に係る視差値算出装置300の機能的な構成の一例のブロック図を示す。図26に示すように、視差値算出装置300は、縮小部307と、水平拡大部101と、センサス変換部102と、相違度算出部103と、第一視差選択部204aと、第二視差選択部204bと、L/Rチェック部206と、水平縮小部105と、拡大部308と、終了判断部309とを含む。
縮小部307は、カメラ11a及び11bの撮像画像I1及びI2を、予め定められた縮小率で縮小し、水平拡大部101に出力する。縮小部307は、記憶部20から初期視差画像を取得する、又は拡大部308から視差画像を取得し、当該視差画像を予め定められた縮小率で縮小し、水平拡大部101に出力する。縮小部307は、撮像画像I1及びI2について、通常の等方的な縮小処理を行う、つまり、水平方向及び垂直方向であるx軸方向及びy軸方向に同じ縮小処理を行う。例えば、縮小率が2分の1の場合、撮像画像I1及びI2はそれぞれ、x軸方向の画素数が2分の1に減少され且つy軸方向の画素数が2分の1に減少された画像に、補間縮小によって変換される。本実施の形態では、バイリニア補間が補間縮小の方法として用いられる。
縮小部307は、視差画像について、通常の縮小処理に加えて、縮小率に応じて画素値である視差値を縮小(「ゲインダウン」とも呼ばれる)させる。これは、例えば2分の1の縮小率により視差画像の幅が水平方向に2分の1に縮小されると、これに応じて各画素の視差値も縮小前の2分の1の大きさになるためである。
縮小部307による縮小処理は、後述する繰り返し処理の回数に応じて複数回行われる。例えば、繰り返し処理の回数が3回の場合、縮小率の一例は、1回目の4分の1の縮小率、2回目の2分の1の縮小率、3回目の等倍の縮小率(すなわち入力信号そのままの出力)である。縮小部307は、1回目の繰り返し処理では、初期視差画像を縮小し、2回目以降の繰り返し処理では、拡大部409から取得する視差画像を縮小する。初期視差画像では、全ての画素の画素値である視差値が0である。
拡大部308は、水平縮小部105によって出力された縮小視差画像を、縮小部307での縮小率に対応する拡大率で拡大処理をし、縮小部307に出力する。拡大部308は、縮小視差画像について、通常の拡大処理に加えて、拡大率に応じて画素値である視差値を拡大させる。例えば、縮小率が2分の1の場合、拡大部308は、縮小視差画像に対して、2倍の拡大率で通常の補間拡大処理及び各画素の視差値の拡大処理を行う。縮小視差画像は、x軸方向の画素数が2倍に増加され且つy軸方向の画素数が2倍に増加された画像に、補間拡大によって変換される。本実施の形態では、バイリニア補間が補間拡大の方法として用いられる。
終了判断部309は、視差画像を算出するための縮小部307での縮小率に基づき、視差値の計算を継続するか終了するかを決定する。終了判断部309は、上記縮小率が1未満の場合、すなわち等倍未満である場合、視差値の計算の継続を決定し、等倍の場合、視差値の計算の終了を決定し、上記視差画像を出力する。
図27を参照しつつ、視差値算出装置300の動作を説明する。図27は、実施の形態3に係る視差値算出装置300の動作の一例を示すフローチャートである。まず、ステップS301において、縮小部307は、記憶部20から、カメラ11a及び11bそれぞれにより撮像されたステレオ画像である撮像画像I1及びI2と、初期視差画像Ii1及びIi2とを取得する。初期視差画像Ii1及びIi2はそれぞれ、カメラ11a及び11bに対応して予め設定される視差画像であり、初期視差画像Ii1及びIi2の全ての画素の視差値は、0である。
次いで、ステップS302において、縮小部307は、撮像画像I1及びI2それぞれを、所定の縮小率Sで通常の縮小処理することによって、縮小画像I1s及びI2sを生成する。縮小部307は、縮小画像I1s及びI2sを、水平拡大部101に出力する。また、縮小部307は、初期視差画像Ii1及びIi2、又は、拡大部308から取得した視差画像Id1及びId2それぞれを、撮像画像I1及びI2と同じ縮小率で縮小し、縮小視差画像Id1s及びId2sを生成する。この際、縮小部307は、各視差画像の各画素の視差値も当該縮小率で縮小する。縮小部307は、縮小視差画像Id1s及びId2sを水平拡大部101に出力する。視差画像Id1及びId2はそれぞれ、撮像画像I1及びI2の視差画像である。
なお、ステップS301〜S307の一連の処理の繰り返し回数が予め設定され、さらに、各回での縮小率が予め設定され、記憶部20に格納されている。縮小率は、繰り返された回数が多くなるに従い、大きくなる。本実施の形態では、3回の繰り返し処理回数が設定され、1回目、2回目及び3回目の処理の際の縮小率がそれぞれ、4分の1、2分の1、及び等倍に設定されている。縮小部307は、縮小処理の回数をカウントし、カウント数を繰り返し処理回数として、当該繰り返し処理回数に対応する縮小率で、撮像画像I1及びI2それぞれを縮小し、且つ、初期視差画像Ii1及びIi2又は視差画像Id1及びId2を縮小する。縮小部307は、1回目の繰り返し処理では、初期視差画像Ii1及びIi2を縮小し、2回目以降の繰り返し処理では、視差画像Id1及びId2を縮小する。また、縮小率が等倍の場合、縮小部307は、撮像画像I1及びI2並びに視差画像Id1及びId2を縮小せずにそのまま、出力する。初期視差画像Ii1及びIi2の各画素の視差値は、0である。
次いで、ステップS303において、水平拡大部101は、縮小画像I1s及びI2sそれぞれを、所定の水平拡大率Hで拡大することによって、拡大画像I1sh及びI2shを生成する。また、水平拡大部101は、縮小視差画像Id1s及びId2sそれぞれを、水平拡大率Hで拡大することによって、拡大視差画像Id1sh及びId2shを生成する。この際、水平拡大部101は、縮小視差画像Id1s及びId2sの各画素の視差値も水平拡大率Hで拡大する。水平拡大部101は、拡大画像I1sh及びI2shをセンサス変換部102に出力し、拡大視差画像Id1sh及びId2shを相違度算出部103に出力する。
拡大画像I1sh及びI2shそれぞれのx軸方向の画素数は、撮像画像I1及びI2それぞれのx軸方向の画素数のH/S倍である。拡大画像I1sh及びI2shそれぞれのy軸方向の画素数は、撮像画像I1及びI2それぞれのy軸方向の画素数の1/S倍である。拡大視差画像Id1sh及びId2shそれぞれのx軸方向の画素数及びy軸方向の画素数は、拡大画像I1sh及びI2shと同じであり、初期視差画像Ii1及びIi2又は視差画像Id1及びId2それぞれのx軸方向の画素数のH/S倍であり、y軸方向の画素数の1/S倍である。拡大視差画像Id1sh及びId2shそれぞれの各画素の視差値は、初期視差画像Ii1及びIi2又は視差画像Id1及びId2それぞれの各画素の視差値のH/S倍である。
次いで、ステップS304において、センサス変換部102は、実施の形態1におけるステップS103と同様に、拡大画像I1sh及びI2shそれぞれをセンサス変換する。
次いで、ステップS305において、相違度算出部103は、実施の形態2のステップS201と同様に、拡大画像I1shを第一基準画像として、第一参照画像である拡大画像I2shに対する相違度を、拡大画像I1shの各画素について算出する。さらに、相違度算出部103は、拡大画像I2shを第二基準画像として、第二参照画像である拡大画像I1shに対する相違度を、拡大画像I2shの各画素について算出する。
なお、相違度算出部103は、1回目の繰り返し処理では、予め決められた探索範囲に従って、相違度を算出する。具体的には、相違度算出部103は、撮像画像と同じスケールでの予め設定された視差探索範囲と、縮小率と、水平拡大率とに基づき、探索範囲を決定する。例えば、1回目の繰り返し処理における縮小率が4分の1であり、水平拡大率が2倍であり、撮像画像と同じスケールでの視差探索範囲がx軸方向の64画素である場合、探索範囲は、基準画像の着目画素に対応する参照画像の対応画素を中心として、x軸方向で、±64画素×1/4×2=±32画素に決定される。なお、基準画像と参照画像との位置関係、すなわち、基準画像がカメラ11a及び11bの撮像画像I1及びI2のいずれに対応するかが既知の場合、探索範囲は、対応画素からx軸正方向の画素又はx軸負方向画素の一方にすることができる。具体的には、基準画像が撮像画像I1に対応する場合は、図20においてk=32であるケースに該当し、探索範囲は、対応画素に対する−32画素から0画素の範囲である。基準画像が撮像画像I2に対応する場合は、図21においてk=32であるケースに該当し、探索範囲は、対応画素に対する0画素から32画素の範囲である。
2回目以降の繰り返し処理では、相違度算出部103は、直前の繰り返し処理によって得られた視差値の近傍の範囲を探索範囲として、相違度を算出する。具体的には、相違度算出部103は、直前の繰り返し処理によって得られた拡大視差画像Id1sh及びId2shに基づき、参照画像において、着目画素の視差値に対応する位置の画素を、着目画素の対応画素に決定し、当該対応画素のx軸方向での近傍範囲を探索範囲に決定する。例えば、相違度算出部103は、当該対応画素を中心として、x軸方向で、±2画素の範囲を探索範囲に決定する。このような探索範囲は、1回目の繰り返し処理よりも小さくてよい。
ステップS302での縮小率は、処理が繰り返された回数が多くなる従い、大きくなる。このため、繰り返し処理が進行することによって、画素密度が粗である探索から密である探索に移行する。つまり、繰り返し処理による粗密探索が行われる。相違度算出部103は、1回目の繰り返し処理では、容量が小さな低解像度の画像に対する粗な探索を全探索で行った後に、繰り返し処理の回数の増加に応じて、解像度がより高い画像を用いた徐々に密な探索を、直前の探索結果の周辺だけで行う。これにより、視差値の算出精度が高く維持されつつ視差値算出の全体の計算量が削減する。
次いで、ステップS202〜S205において、視差値算出装置300は、ステップS305で算出された拡大画像I1sh及びI2shそれぞれの各画素の相違度に基づき、実施の形態2と同様の処理を行う。
次いで、ステップS306において、終了判断部309は、視差値の計算処理を継続するか否かを判定する。終了判断部309は、視差値の計算処理を継続する場合(ステップS306でYes)、ステップS307に進み、視差値の計算処理を継続しない場合(ステップS306でNo)、処理を終了する。具体的には、終了判断部309は、ステップS302での縮小率を縮小部307から取得し、ステップS205で生成された視差画像をL/Rチェック部206から取得する。そして、終了判断部309は、縮小率が1未満の場合、視差値の計算処理を継続し、取得された視差画像を拡大部308に出力する。終了判断部309は、縮小率が等倍の場合、計算処理を終了し、取得された視差画像を距離算出部31及び記憶部20等に出力する。なお、縮小率が等倍の場合、L/Rチェック部206から取得される視差画像のスケールは、撮像画像I1及びI2と同じである。
次いで、ステップS307において、拡大部308は、終了判断部309から取得した視差画像に対して、ステップS302での縮小率に対応する拡大率で、通常の拡大処理及び各画素の視差値の拡大処理を行い、縮小部307に出力する。本実施の形態では、1回目、2回目及び3回目の処理の際の拡大率はそれぞれ、縮小率4分の1、2分の1及び等倍に対応する、4倍、2倍及び等倍である。なお、縮小率が等倍の場合、ステップS306で上述したように、拡大部308は視差画像を取得しない。
ステップS307の次のステップS302では、縮小部307は、前回の繰り返し処理よりも大きい縮小率で、撮像画像I1及びI2、並びに視差画像Id1及びId2を縮小し、縮小画像I1sa及びI2sa、並びに縮小視差画像Id1sa及びId2saを生成する。ステップS303では、水平拡大部101は、縮小画像I1sa及びI2sa、並びに縮小視差画像Id1sa及びId2saを水平拡大し、拡大画像I1sah及びI2sah、並びに拡大視差画像Id1sah及びId2sahを生成する。ステップS304では、センサス変換部102は、拡大画像I1sah及びI2sahをセンサス変換する。ステップS305では、相違度算出部103は、拡大画像I1sahが基準画像である場合、拡大視差画像Id1sahに基づき、拡大画像I1sahの着目画素の視差値を取得する。さらに、相違度算出部103は、参照画像である拡大画像I2sah上において、着目画素と同じ位置に上記視差値を付加した位置の画素を、着目画素の対応画素に決定し、対応画素の近傍範囲を探索範囲に決定する。相違度算出部103は、上記探索範囲に基づき、着目画素の相違度を算出する。また、相違度算出部103は、拡大画像I2sahが基準画像である場合も、拡大視差画像Id2sahに基づき、上記と同様に処理する。また、視差値算出装置300は、ステップS202〜S307の処理を、前回の繰り返し処理と同様に繰り返す。
上述のような実施の形態3に係る視差値算出装置300によれば、実施の形態2と同様の効果が得られる。さらに、視差値算出装置300は、撮像画像に縮小率を大きくするように変化させつつ、視差値の計算の繰り返し処理を行う。視差値算出装置300は、繰り返し処理において、相違度の算出のための探索範囲を、前回の繰り返し処理で得られた視差画像を用いて限定する。視差値算出装置300は、1回目の繰り返し処理では、小さく縮小された低解像度の画像に対する粗な探索を全探索で行うことで相違度及び視差値を算出した後に、繰り返し処理の回数の増加に応じて、徐々に大きく縮小された高解像度の画像に対する密な探索を直前の視差画像から得られる限定された探索範囲で行うことで相違度及び視差値を算出する。これにより、視差値算出装置300は、視差値の算出精度をサブピクセル精度に維持しつつ、視差値算出の全体の演算量を低減することができる。
実施の形態3に係る視差値算出装置300は、実施の形態2に係る視差値算出装置200に、縮小部307と、拡大部308と、終了判断部309とを加えた構成であるが、図28に示す実施の形態3の変形例に係る視差値算出装置300aのように、実施の形態1に係る視差値算出装置100に、縮小部307と、拡大部308と、終了判断部309とを加えた構成であってもよい。なお、図28は、実施の形態3の変形例に係る視差値算出装置300aの機能的な構成の一例を示すブロック図である。
[実施の形態4]
実施の形態4に係る視差値算出装置400を説明する。実施の形態3に係る視差値算出装置300は、撮像画像に対して、縮小部307による等方的な縮小の後、水平拡大部101による水平拡大を行い、さらに、L/Rチェック部206による一貫性チェックの後、視差画像に対して、水平縮小部105による水平縮小と、拡大部308による等方的な拡大を行っている。実施の形態4に係る視差値算出装置400は、縮小部307及び水平拡大部101による縮小及び拡大処理、並びに、水平縮小部105及び拡大部308による縮小及び拡大処理をそれぞれ、個別に行わず、合成した処理で一度に行う。実施の形態4において、実施の形態1〜3と同様の構成要素については、実施の形態1〜3と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1〜3と異なる点を中心に説明し、実施の形態1〜3と同様の点の説明を省略する。
実施の形態4に係る視差値算出装置400を説明する。実施の形態3に係る視差値算出装置300は、撮像画像に対して、縮小部307による等方的な縮小の後、水平拡大部101による水平拡大を行い、さらに、L/Rチェック部206による一貫性チェックの後、視差画像に対して、水平縮小部105による水平縮小と、拡大部308による等方的な拡大を行っている。実施の形態4に係る視差値算出装置400は、縮小部307及び水平拡大部101による縮小及び拡大処理、並びに、水平縮小部105及び拡大部308による縮小及び拡大処理をそれぞれ、個別に行わず、合成した処理で一度に行う。実施の形態4において、実施の形態1〜3と同様の構成要素については、実施の形態1〜3と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1〜3と異なる点を中心に説明し、実施の形態1〜3と同様の点の説明を省略する。
図29は、実施の形態4に係る視差値算出装置400の機能的な構成の一例のブロック図を示す。図29に示すように、視差値算出装置400は、異方性縮小部410と、センサス変換部102と、相違度算出部103と、第一視差選択部204aと、第二視差選択部204bと、L/Rチェック部206と、終了判断部309と、異方性拡大部411とを含む。視差値算出装置400は、実施の形態3に係る視差値算出装置300において、縮小部307及び水平拡大部101が異方性縮小部410に変更され、水平縮小部105及び拡大部308が異方性拡大部411に変更された構成である。
異方性縮小部410は、縮小部307の縮小処理と水平拡大部101の水平拡大処理とを合成した処理を行う。例えば、実施の形態3で例示したように、3回の繰り返し処理における1回目、2回目及び3回目の縮小率がそれぞれ、4分の1、2分の1及び等倍であり、各回の繰り返し処理での水平拡大率が2倍である場合、異方性縮小部410は、以下のような変化率で縮小処理を行う。つまり、1回目の繰り返し処理での変化率は、水平方向2分の1、且つ垂直方向4分の1であり、2回目の繰り返し処理での変化率は、水平方向等倍、且つ垂直方向2分の1であり、3回目の繰り返し処理での変化率は、水平方向2倍、且つ垂直方向等倍である。このように、異方性縮小部410は、縮小部307での縮小率と水平拡大部101での水平拡大率とを合成した変化率で、撮像画像の縮小処理を行う。また、異方性縮小部410は、視差画像の各画素の視差値について、本実施の形態では、視差値の探索方向でもある水平方向の変化率で縮小する。具体的には、1回目の繰り返し処理では、2分の1の変化率が適用され、2回目の繰り返し処理では、等倍の変化率が適用され、3回目の繰り返し処理では、2倍の変化率が適用される。
異方性拡大部411は、水平縮小部105の水平縮小処理と拡大部308の拡大処理とを合成した処理を行う。つまり、異方性拡大部411は、異方性縮小部410の変化率に対応する変化率で、視差画像の拡大処理を行うことによって、視差画像のスケールを撮像画像と同じスケールに変換する。例えば、上記の実施の形態3の例と同様に処理する場合、異方性拡大部411における1回目の繰り返し処理での変化率は、水平方向2倍、且つ垂直方向4倍であり、2回目の繰り返し処理での変化率は、水平方向等倍、且つ垂直方向2倍であり、3回目の繰り返し処理での変化率は、水平方向2分の1、且つ垂直方向等倍である。また、異方性拡大部411は、視差画像の各画素の視差値について、本実施の形態では、水平方向の変化率で拡大する。具体的には、1回目の繰り返し処理では、2倍の変化率が適用され、2回目の繰り返し処理では、等倍の変化率が適用され、3回目の繰り返し処理では、2分の1の変化率が適用される。
上述のような実施の形態4に係る視差値算出装置400によれば、実施の形態3と同様の効果が得られる。さらに、視差値算出装置400は、撮像画像の縮小及び水平拡大処理を合成した処理で一度に行い、視差画像の水平縮小及び拡大処理を合成した処理で一度に行うため、処理に要する演算量を低減することができる。
実施の形態4に係る視差値算出装置400は、実施の形態3に係る視差値算出装置300をベースとした構成であるが、図30に示す実施の形態4の変形例に係る視差値算出装置400aのように、実施の形態3の変形例に係る視差値算出装置300aをベースにした構成であってもよい。このような視差値算出装置400aは、異方性縮小部410と、センサス変換部102と、相違度算出部103と、視差選択部104と、終了判断部309と、異方性拡大部411とを含む。なお、図30は、実施の形態4の変形例に係る視差値算出装置400aの機能的な構成の一例を示すブロック図である。
[実施の形態5]
実施の形態5に係る視差値算出装置500を説明する。実施の形態5に係る視差値算出装置500は、実施の形態1に係る視差値算出装置100において、相違度に重み付けをし、重み付けされた相違度に基づき、視差値を決定する構成である。実施の形態5において、実施の形態1〜4と同様の構成要素については、実施の形態1〜4と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1〜4と異なる点を中心に説明し、実施の形態1〜4と同様の点の説明を省略する。
実施の形態5に係る視差値算出装置500を説明する。実施の形態5に係る視差値算出装置500は、実施の形態1に係る視差値算出装置100において、相違度に重み付けをし、重み付けされた相違度に基づき、視差値を決定する構成である。実施の形態5において、実施の形態1〜4と同様の構成要素については、実施の形態1〜4と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1〜4と異なる点を中心に説明し、実施の形態1〜4と同様の点の説明を省略する。
図31は、実施の形態5に係る視差値算出装置500の機能的な構成の一例のブロック図を示す。図31に示すように、視差値算出装置500は、水平拡大部101と、センサス変換部102と、相違度算出部103と、コスト算出部512と、コスト集約部513と、視差選択部104と、水平縮小部105とを含む。視差値算出装置500は、実施の形態1に係る視差値算出装置100に対して、コスト算出部512及びコスト集約部513が加えられた構成である。水平拡大部101、センサス変換部102及び水平縮小部105は、実施の形態1と同様である。
コスト算出部512は、基準画像中の着目画素について、着目画素から複数の走査方向それぞれに沿った画素における視差値の分布に関するコストを算出する。具体的には、コスト算出部512は、着目画素を通る複数の直線それぞれの上での視差値の分布に関するコストを算出する。複数の直線の例は、着目画素を起点とする放射状の半直線である。本実施の形態では、複数の直線は、着目画素から8又は16の方向に等間隔に延びる半直線であり、8の半直線は、着目画素を通過する4の直線を構成し、16の半直線は、着目画素を通過する8の直線を構成する。ここで、走査方向、つまり、半直線の方向は、所定の方向の一例である。
コスト集約部513は、コスト算出部512によって算出された着目画素から延びる複数の半直線上での視差値の分布に関するコストについて、相違度算出のための探索範囲の各視差値に対して複数の半直線でのコストを加算し集約する。
視差選択部104は、コスト集約部513によって集約された着目画素における視差値毎のコストについて、最小のコストを与える視差値を着目画素の視差値として決定する。
ここで、コスト算出処理及びコスト集約処理の詳細を説明する。拡大画像I1hが基準画像であり、拡大画像I2hが参照画像である場合において、8の方向のうちのx軸負方向の半直線上の視差値の分布のコストに関する処理例を説明する。コスト算出部512は、図32に示すように、拡大画像I1hの着目画素I1hpaを中心とする8の方向の半直線L1〜L8を、拡大画像I1h上で設定する。そして、コスト算出部512は、各半直線L1〜L8上における画素の視差値の分布のコストを算出する。なお、図32は、コスト算出の際の着目画素からの複数の走査方向の例を示す図である。
図33に示すように、コスト算出部512は、x軸正方向の半直線L1上の各画素について、当該画素に対応する探索範囲と、探索範囲内の視差値に対応する相違度とに基づき、コストを算出する。コスト算出部512は、拡大画像I1hの縁から着目画素I1hpaに向かって順に、つまり、画素座標のx座標が1である画素I1hp1から着目画素I1hpaに向かって順に、半直線L1上の各画素に関するコストを算出する。なお、図33は、コスト算出の際の着目画素を通る直線上での画素の走査方向の例を示す図である。
例えば、図34は、画素I1hp1と着目画素I1hpaとの間の画素I1hpi(iは正の整数)に関するコストの例を示す。図34に示すように、コスト算出部512は、画素I1hpiについて、相違度算出部103によって算出された探索範囲内の各視差値に対応する相違度を取得する。なお、図34は、コスト算出のための走査ライン上の1つの画素におけるコストの例を示す図である。本例では、探索範囲は、0画素から−k画素である。さらに、コスト算出部512は、探索範囲内の各視差値と、隣接画素I1hpi−1の視差値との差異に基づき、当該視差値のペナルティ値を決定する。探索範囲内の視差値と画素I1hpi−1の視差値とが同じである場合、ペナルティ値はP1であり、探索範囲内の視差値と画素I1hpi−1の視差値とが異なる場合、ペナルティ値はP2である。本実施の形態では、P2はP1よりも大きい。画素I1hpi−1は、画素I1hpiに対して、x軸正方向に隣接する画素であり、半直線L1に沿って画素I1hpiの直前にコスト計算された画素である。コスト算出部512は、探索範囲内の各視差値について、その相違度にペナルティ値を加算した値であるコストを算出する。これにより、画素I1hpiに関する探索範囲内の各視差値のコストが求まる。ここで、半直線L1上の画素I1hpiは、第1の評価画素の一例であり、画素I1hpi−1は、第2の評価画素の一例であり、ペナルティ値は、第1の評価値の一例であり、コストは、第2の評価値の一例である。
コスト算出部512は、半直線L1上の全ての画素について、探索範囲内の各視差値のコストを算出する。なお、画素I1hp1については、隣接する画素が存在しないため、ペナルティ値がなく、各視差値の相違度がコストになる。さらに、コスト算出部512は、他の半直線L2〜L8それぞれについても、当該半直線上の全ての画素について、探索範囲内の各視差値のコストを算出する。よって、半直線L1〜L8上の全ての画素について、0画素から−k画素の視差値それぞれのコストが算出される。コスト集約部513は、半直線L1〜L8上の全ての画素について、同じ視差値のコストの和を算出する。そして、視差選択部104は、0画素から−k画素の視差値それぞれのコストの和のうち、最小の和を有する視差値を、着目画素I1hpaの視差値に決定する。コスト算出部512及びコスト集約部513は、拡大画像I1hの全ての画素を着目画素として上述のような処理を行うことによって、各画素の視差値を決定する。ここで、コストの和は、加算評価値の一例である。
上述のように、コスト算出部512は、例えば、第1の拡大画像としての拡大画像I1hにおいて、視差値の算出対象の第1の画素としての着目画素I1hpaから、所定の方向に位置する評価画素としての画素I1hpiそれぞれについて、画素I1hpiに所定の方向で隣り合う画素I1hpi−1の視差値と、第2の拡大画像としての拡大画像I2hにおける画素I1hpiに対応する位置の対応画素に対する、相違度算出のための探索範囲内の画素それぞれの視差値との比較に基づき、探索範囲内の画素それぞれの第1の評価値としてのペナルティ値を算出する。さらに、コスト算出部512は、画素I1hpiと探索範囲内の画素それぞれとの間の相違度と、探索範囲内の画素それぞれのペナルティ値とに基づき、探索範囲内の画素それぞれの視差値についての第2の評価値としてのコストを算出する。コスト集約部513は、探索範囲内の画素それぞれの視差値に対応する全ての評価画素のコストを加算して、加算評価値としてのコストの和を算出する。視差選択部104は、最小のコストの和に対応する視差値を着目画素I1hpaの視差値に決定する。
図35を参照しつつ、視差値算出装置500の動作を説明する。図35は、実施の形態5に係る視差値算出装置500の動作の一例を示すフローチャートである。視差値算出装置500は、実施の形態1と同様に、ステップS101〜S104の処理を行うことによって、記憶部20から撮像画像I1及びI2を取得し、撮像画像I1及びI2の拡大画像I1h及びI2hの各画素のセンサス特徴量を算出する。さらに、視差値算出装置500は、拡大画像I1hを基準画像として、拡大画像I1hの各画素に関して、拡大画像I2hの探索範囲の各画素に対する相違度を算出する。
次いで、ステップS501において、コスト算出部512は、基準画像である拡大画像I1h中の着目画素について、着目画素を通る複数の直線それぞれの上での視差値の分布に関するコストを算出する。コスト算出部512は、各直線上の画素それぞれについて、相違度算出のための探索範囲内の視差値と、当該画素に隣接する画素の視差値との差異に基づき、探索範囲内の各視差値に対応する相違度を重み付けした値であるコストを算出する。コスト算出部512は、拡大画像I1hの全ての画素を着目画素として、コストを算出する。
次いで、ステップS502において、コスト集約部513は、拡大画像I1h中の着目画素について、複数の直線上の画素それぞれに対して算出されたコストを、探索範囲の視差値毎に加算し集約する、つまり、同じ視差値のコストの全てを加算する。これにより、探索範囲の視差値毎に、コストの和が求められる。コスト集約部513は、拡大画像I1hの全ての画素を着目画素として、各画素のコストを集約する。
次いで、ステップS503において、視差選択部104は、拡大画像I1h中の着目画素について、探索範囲の視差値毎のコストの和のうち、最小のコストの和を与える視差値を着目画素の視差値に決定する。視差選択部104は、拡大画像I1hの全ての画素を着目画素として、各画素の視差値を決定し、拡大画像I1hの視差画像を生成する。
次いで、ステップS106では、視差値算出装置500は、実施の形態1と同様に、拡大画像I1hの視差画像を水平縮小した縮小視差画像を生成する。
上述のような実施の形態5に係る視差値算出装置500によれば、実施の形態1と同様の効果が得られる。また、視差値算出装置500は、基準画像の着目画素の周囲の画素の視差値の変化を相違度に反映したコストに基づき、着目画素の視差値を算出する。これにより、視差値算出装置500は、着目画素における視差値がその周囲の画素の視差値と同様の値を取りやすくし、被写体のエッジ、境界等のライン間で視差値が異なることによる筋状のアーチファクトが生じるストリーキングアーチファクトを低減することができる。よって、視差値算出装置500は、高い精度で視差値を算出することができる。上述では、視差値算出装置500は、拡大画像I1hを基準画像としていたが、拡大画像I2hを基準画像としてもよい。
実施の形態5に係る視差値算出装置500は、実施の形態1に係る視差値算出装置100をベースとした構成であるが、実施の形態2〜4及びその変形例をベースとした構成であってもよい。例えば、実施の形態2をベースとする実施の形態5の変形例1に係る視差値算出装置500aは、図36に示すような構成である。また、実施の形態3をベースとする実施の形態5の変形例2に係る視差値算出装置500bは、図37に示すような構成である。また、実施の形態4をベースとする実施の形態5の変形例3に係る視差値算出装置500cは、図38に示すような構成である。変形例1〜3において、コスト算出部512は、相違度算出部103から相違度を取得し、コスト集約部513は、集約したコストを、第一視差選択部204a及び第二視差選択部204bに出力する。また、実施の形態4の変形例をベースとする実施の形態5の変形例4に係る視差値算出装置500dは、図39に示すような構成である。変形例4において、コスト算出部512は、相違度算出部103から相違度を取得し、コスト集約部513は、集約したコストを視差選択部104に出力する。
[実施の形態6]
実施の形態6に係る視差値算出装置600を説明する。実施の形態1に係る視差値算出装置100では、センサス変換の際、着目画素に対する周辺画素の領域は、例えば、図18A及び図18Bに示すように一定である。実施の形態6に係る視差値算出装置600は、着目画素に対する周辺画素の様々な領域に基づき、着目画素のセンサス特徴量を算出する。本明細書において、センサス変換において、着目画素に対して参照される周辺画素の領域を、「窓領域」とも呼ぶ。実施の形態6において、実施の形態1〜5と同様の構成要素については、実施の形態1〜5と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1〜5と異なる点を中心に説明し、実施の形態1〜5と同様の点の説明を省略する。ここで、窓領域は、比較領域の一例である。
実施の形態6に係る視差値算出装置600を説明する。実施の形態1に係る視差値算出装置100では、センサス変換の際、着目画素に対する周辺画素の領域は、例えば、図18A及び図18Bに示すように一定である。実施の形態6に係る視差値算出装置600は、着目画素に対する周辺画素の様々な領域に基づき、着目画素のセンサス特徴量を算出する。本明細書において、センサス変換において、着目画素に対して参照される周辺画素の領域を、「窓領域」とも呼ぶ。実施の形態6において、実施の形態1〜5と同様の構成要素については、実施の形態1〜5と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1〜5と異なる点を中心に説明し、実施の形態1〜5と同様の点の説明を省略する。ここで、窓領域は、比較領域の一例である。
窓領域が、手前の被写体により背後の被写体が見えない状態であるオクルージョンの領域、又は視差が大きく変化する領域をまたぐ場合、このような窓領域に基づき視差値が算出された視差画像の領域では、撮像画像における前景及び背景の境界等の被写体の輪郭と、視差値の差異により形成される視差画像の境界ラインとが、一致しない場合がある。本実施の形態では、視差値算出装置600は、実施の形態1〜5のように、着目画素が窓領域の中央に位置する通常の窓領域以外に、着目画素が中央からずらした位置にある少なくとも1つの窓領域を用いる。視差値算出装置600は、これら複数の窓領域について算出した相違度を最も小さくする視差値を決定することにより、視差値の差異の境界が実際の被写体の輪郭とより整合する視差画像を生成する。
図40は、実施の形態6に係る視差値算出装置600の機能的な構成の一例のブロック図を示す。図40に示すように、視差値算出装置600は、実施の形態1と同様に、水平拡大部101と、センサス変換部602と、相違度算出部603と、視差選択部604と、水平縮小部105とを含む。水平拡大部101及び水平縮小部105の構成は、実施の形態1と同様である。
センサス変換部602は、基準画像の着目画素に対して、複数の窓領域を設定する。センサス変換部602は、各窓領域について、着目画素と当該窓領域内の周辺画素との間でセンサス変換を行い、センサス特徴量を算出する。センサス変換部602は、拡大画像I1h及びI2hそれぞれの全ての画素に対して、複数の窓領域それぞれについてのセンサス特徴量を算出する。
例えば、本実施の形態では、センサス変換部602は、図41に示すように、9つの窓領域W1〜W9を、1つの着目画素ctrに対して設定する。なお、図41は、着目画素の複数の窓領域の一例を示す図である。窓領域W5は、着目画素ctrが窓領域の中央に位置する通常の窓領域である。窓領域W1〜W4及びW6〜W9ではそれぞれ、着目画素ctrが、窓領域の中央以外に位置する。センサス変換部602は、着目画素ctrについて、窓領域W1〜W9それぞれの周辺画素との間でセンサス変換することによって、9つのセンサス特徴量を算出する。
相違度算出部603は、各窓領域に関して、基準画像の各画素の参照画像に対する相違度を算出する。相違度算出部603は、基準画像の着目画素の相違度を算出する際、着目画素のセンサス特徴量の算出に使用した窓領域と同じ窓領域を使用して算出された、参照画像の各画素のセンサス特徴量と、当該着目画素のセンサス特徴量との間で、相違度を算出する。つまり、相違度の算出では、基準画像と参照画像との間において、センサス特徴量の算出に使用される窓領域と着目画素及び参照画素との位置関係が同じである。すなわち、例えば、窓領域W1が、基準画像のセンサス特徴量の算出に用いられた場合、当該基準画像の着目画素の相違度計算に用いられる参照画像のセンサス特徴量は、窓領域W1を用いて算出されたものである。よって、図41の例の場合、相違度算出部603は、基準画像の1つの着目画素に対して、窓領域W1〜W9それぞれに対応する相違度を算出する。
視差選択部604は、相違度算出部603によって算出された窓領域毎の基準画像の各画素の相違度に基づき、各窓領域について、基準画像の着目画素の相違度のうちから、最小の相違度を抽出し、当該最小の相違度を与える視差値を抽出する。さらに、視差選択部604は、全ての窓領域それぞれにおいて抽出された視差値の相違度のうちから、最小の相違度を抽出し、当該最小の相違度を与える視差値を、着目画素の視差値に決定する。つまり、視差選択部604は、全ての窓領域における着目画素の相違度のうちから、最小の相違度を抽出し、当該最小の相違度を与える視差値を、着目画素の視差値に決定する。さらに、視差選択部604は、基準画像の全ての画素を着目画素として、当該画素の視差値を決定し、視差画像を生成する。
上述のような実施の形態6に係る視差値算出装置600によれば、実施の形態1と同様の効果が得られる。また、視差値算出装置600は、窓領域に対する着目画素の位置が異なる複数の窓領域のうち、相違度を最小にする窓領域を用いて算出されたセンサス特徴量を用いた相違度に基づき、視差値を算出する。このような視差値は、着目画素に対する窓領域の位置に起因する視差値の誤差を低減する。よって、視差値算出装置600は、オクルージョンの境界又は視差値が変化する前景及び背景間の境界付近に位置する画素について、視差画像での視差値の差異による境界の位置と、被写体の輪郭の位置とを正確に整合させることができる。
なお、着目画素に対する窓領域の位置は、図41に示す例に限定されず、窓領域内のいかなる位置に着目画素が位置してもよい。また、図41の例では、複数の窓領域の形状は、矩形であったが、いかなる形状であってもよい。
また、実施の形態6に係る視差値算出装置600は、実施の形態1に係る視差値算出装置100をベースする構成であったが、実施の形態2〜5及びその変形例をベースする構成であってもよい。
例えば、実施の形態5をベースとする実施の形態6の変形例に係る視差値算出装置600aは、図42に示すような構成である。変形例に係る視差値算出装置600aにおいて、上述の実施の形態6と同様に、センサス変換部602は、拡大画像I1h及びI2hそれぞれの全ての画素に対して、複数の窓領域それぞれについてのセンサス特徴量を算出する。相違度算出部603は、各窓領域に関して、基準画像の各画素の参照画像に対する相違度を算出する。
コスト算出部512は、各窓領域に関して、基準画像中の全ての画素を着目画素として、着目画素を通る複数の直線それぞれの上での視差値の分布に関する着目画素のコストを算出する。コスト算出部512は、各直線上の画素それぞれについて、相違度算出のための探索範囲内の視差値と、当該画素に隣接する画素の視差値との差異に基づき、探索範囲内の各視差値に対応する相違度を重み付けした値を、着目画素のコストとして算出する。コスト集約部513は、各窓領域に関して、着目画素を通る複数の直線上の画素それぞれに対して算出されたコストを、探索範囲の視差値毎に加算する、つまり視差値毎のコストの和を算出することによって、着目画素のコストを集約する。視差選択部604は、着目画素に関して、全ての窓領域における探索範囲の視差値毎のコストの和のうちから、最小のコストの和を抽出し、最小のコストの和を与える窓領域及び視差値を特定し、特定した視差値を着目画素の視差値に決定する。さらに、視差選択部604は、基準画像の全ての画素を着目画素として、当該画素の視差値を決定し、視差画像を生成する。
[実施の形態7]
実施の形態7に係る視差値算出装置700を説明する。実施の形態6に係る視差値算出装置600は、視差画像における視差値の差異による境界ラインを、前景及び背景の境界等の被写体の輪郭と一致させるために、1つの着目画素に設定される複数の窓領域について、相違度又はコストを算出することによって、着目画素の視差値を決定した。実施の形態7に係る視差値算出装置700は、基準画像の着目画素と参照画像の参照画素との間の相違度であるハミング距離を計算する際、2つの画素のセンサス特徴量のビット列間におけるビット間差異を、センサス変換での対応画素間の画素値の差である輝度差で重み付けする。実施の形態7において、実施の形態1〜6と同様の構成要素については、実施の形態1〜6と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1〜6と異なる点を中心に説明し、実施の形態1〜6と同様の点の説明を省略する。
実施の形態7に係る視差値算出装置700を説明する。実施の形態6に係る視差値算出装置600は、視差画像における視差値の差異による境界ラインを、前景及び背景の境界等の被写体の輪郭と一致させるために、1つの着目画素に設定される複数の窓領域について、相違度又はコストを算出することによって、着目画素の視差値を決定した。実施の形態7に係る視差値算出装置700は、基準画像の着目画素と参照画像の参照画素との間の相違度であるハミング距離を計算する際、2つの画素のセンサス特徴量のビット列間におけるビット間差異を、センサス変換での対応画素間の画素値の差である輝度差で重み付けする。実施の形態7において、実施の形態1〜6と同様の構成要素については、実施の形態1〜6と同一の参照符号を付し、その説明を省略する。以下において、実施の形態1〜6と異なる点を中心に説明し、実施の形態1〜6と同様の点の説明を省略する。
図43は、実施の形態7に係る視差値算出装置700の機能的な構成の一例のブロック図を示す。図43に示すように、視差値算出装置700は、実施の形態1と同様に、水平拡大部101と、センサス変換部102と、相違度算出部703と、視差選択部104と、水平縮小部105とを含む。水平拡大部101、センサス変換部102、視差選択部104及び水平縮小部105は、実施の形態1と同様である。
相違度算出部703は、拡大画像I1h及びI2hについてのセンサス特徴量間の視差値に応じた相違度であるハミング距離を算出する際に、対応画素間の画素値の差である輝度差に応じて重み付けする。具体的には、相違度算出部703は、拡大画像I1h及びI2hのうちの基準画像の着目画素の相違度を算出する際、着目画素のセンサス特徴量のビット列と、参照画像の参照画素のセンサス特徴量のビット列との間における同じ桁のビットの数値の差異であるビット間差異を、着目画素のセンサス変換の際に参照した周辺画素の輝度値と参照画素のセンサス変換の際に参照した周辺画素の輝度値との、対応画素での差で重み付けする。ここで、対応画素間の輝度差に応じた重みは、対応画素間で輝度差が大きい場合には小さく、対応画素間で輝度差が小さい場合には大きくされる。これにより、対応画素間で輝度差の小さい場合のハミング距離のビット間差異は、ハミング距離に重点的に反映され、対応画素間で輝度差の大きい場合のハミング距離のビット間差異は、ハミング距離への影響が少なくなる。
例えば、図44は、着目画素と参照画素との間におけるビット間差異と輝度差に基づく重みとの関係の一例を示す。図44は、センサス変換の際に、8つの周辺画素が参照されるケースである。図44において、相違度算出部703は、拡大画像I1hを基準画像とし、拡大画像I2hを参照画像として処理を行う。相違度算出部703は、基準画像において、着目画素ctrの周囲の周辺画素の輝度値を、拡大画像I1hから取得する。周辺画素は、着目画素ctrのセンサス変換において参照される8つの画素である。さらに、相違度算出部703は、参照画像において、参照画素refの周囲の周辺画素の輝度値を、拡大画像I2hから取得する。参照画素refは、着目画素ctrとの間で相違度を算出する対象である探索範囲内の画素であり、参照画素refの周辺画素は、参照画素refのセンサス変換において参照される8つの画素である。
相違度算出部703は、着目画素ctrの周辺画素の窓領域A1と、参照画素refの周辺画素の窓領域A2との間で、窓領域に対して同じ位置の周辺画素である対応周辺画素同士の輝度値の差異、つまり、輝度値の差の絶対値を算出する。さらに、相違度算出部703は、8組の対応周辺画素それぞれについて、輝度値の差異に基づく重みを算出する。本実施の形態では、相違度算出部703は、輝度値の差異の逆数を、重みとして算出する。なお、重みは、これに限定されず、輝度値の差異の逆数の2乗等、差異が大きい場合に小さく、差異が小さい場合に大きくなるものであればよい。例えば、相違度算出部703は、窓領域A1における輝度値「85」の周辺画素と、窓領域A2における輝度値「120」の周辺画素との間で、輝度値の差異に基づく重み「0.03」を算出する。相違度算出部703は、窓領域A1の8つの周辺画素それぞれについて、重みを算出する。
さらに、相違度算出部703は、着目画素のセンサス特徴量と、参照画素のセンサス特徴量とから、センサス特徴量のビット列間のビット間差異を算出する。相違度算出部703は、窓領域A1内の各周辺画素における着目画素に対するセンサス変換値と、窓領域A2内の各周辺画素における参照画素に対するセンサス変換値とを比較し、窓領域に対して同じ位置の対応画素同士の間で、センサス変換値が同じであるか否かに基づく、ビット間差異を算出する。例えば、相違度算出部703は、窓領域A1における左上角のセンサス変換値「1」と、窓領域A2における左上角のセンサス変換値「0」との間で、ビット間差異「1」を算出する。相違度算出部703は、窓領域A1の8つの周辺画素それぞれについて、ビット間差異を算出する。
さらに、相違度算出部703は、窓領域A1の周辺画素それぞれの重みと、窓領域A1の周辺画素それぞれのビット間差異とから、窓領域A1の周辺画素それぞれにおける重み付け後ビット間差異である重み付けビット間差異を算出する。相違度算出部703は、窓領域A1内の同一の周辺画素に対応する重みとビット間差異とを乗算することによって、重み付けビット間差異を算出する。例えば、相違度算出部703は、窓領域A1における左上角の周辺画素の重み「0.03」とビット間差異「1」とを乗算することによって、重み付けビット間差異「0.03」を算出する。
さらに、相違度算出部703は、着目画素ctrの各周辺画素の重み付けビット間差異の和を、着目画素ctrの相違度として算出する。図44の例では、相違度算出部703は、窓領域A1の各周辺画素の重み付けビット間差異の和「0.03+0.09+0.04=0.16」を、着目画素ctrの相違度として算出する。
視差選択部104は、着目画素に対して、参照画像における探索範囲内の参照画素それぞれとの間で、相違度算出部703によって算出された相違度のうちから、最小の相違度を抽出し、抽出した相違度に対応する視差値を、着目画素の視差値に決定する。
上述のような実施の形態7に係る視差値算出装置700によれば、実施の形態1と同様の効果が得られる。また、視差値算出装置700は、基準画像の着目画素と参照画像の参照画素との相違度に対して、着目画素のセンサス変換で参照される周辺画素の輝度値と、参照画素のセンサス変換で参照される周辺画素の輝度値との差異に基づく重み付けを行う。この重み付けは、輝度値の差異が小さくなるほど大きくされ、輝度値の差異が大きくなるほど小さくされる。輝度値の差異が小さい相違度の構成要素は、相違度に重点的に反映され、輝度値の差異が大きい相違度の構成要素は、相違度に与える影響が小さい。このような重み付けは、例えば、着目画素に対する窓領域の配置が窓領域の中央のみであっても、窓領域の内部を空間的に重み付けすることができ、窓領域に対する重心位置を適応的に変更することができることを示す。つまり、着目画素に対して窓領域をあたかも適応的に動かしたのと同様の効果が得られる。これにより、相違度は、画素値の変化を反映することができる。よって、視差値算出装置700は、オクルージョンの境界又は視差値が変化する前景及び背景間の境界付近に位置する画素について、着目画素に対して単一の窓領域を用いるだけで、視差画像での視差値の差異による境界の位置と、被写体の輪郭の位置とを正確に整合させることができる。
なお、ビット間差異に対する重み付けは、着目画素及び参照画素の比較領域間の対応画素の輝度差に限らず、対応画素におけるそれぞれの輝度勾配の差であってもよく、さらに簡略化して、着目画素又は対応画素における輝度勾配であってもよい。さらに、上記重み付けは、対応画素間の輝度差と、対応画素における輝度勾配の差と、着目画素又は対応画素の輝度勾配との少なくとも2つを組み合わせたものあってもよい。ここで、上記重み付けは、上記の輝度差、輝度勾配の差、又は、着目画素若しくは対応画素における輝度勾配が大きいほど重くなり、小さいほど軽くなるように設定される。このような重み付けによっても、対応画素間の輝度差を用いた重み付けの場合と同様の効果を得ることができる。輝度勾配は、画像座標で、x軸方向の勾配であってもよく、y軸方向の勾配であってもよく、x軸方向及びy軸方向の勾配の両者を考慮した勾配であってもよく、その他の任意の方向の勾配であってもよい。
上述のように、視差値算出装置700は、相違度が算出される基準画像の着目画素及び参照画像の参照画素について、着目画素の周囲の画素の輝度値と参照画素の周囲の画素の輝度値との差異、着目画素の周囲の画素の輝度勾配と参照画素の周囲の画素の輝度勾配との差異と、着目画素、参照画素又はその周囲の画素における輝度勾配とのうちの少なくとも一つに基づく重みを、相違度に付加してもよい。
また、実施の形態7に係る視差値算出装置700は、実施の形態1に係る視差値算出装置100をベースする構成であったが、実施の形態2〜6及びその変形例をベースする構成であってもよい。
例えば、実施の形態5をベースとする実施の形態7の変形例に係る視差値算出装置700aは、図45に示すような構成である。変形例に係る視差値算出装置700aにおいて、実施の形態7と同様に、相違度算出部703は、基準画像である拡大画像I1hの全ての画素に対して、重み付けされた相違度を算出する。
コスト算出部512は、基準画像中の全ての画素を着目画素として、着目画素を通る複数の直線それぞれの上での視差値の分布に関する着目画素のコストを算出する。コスト算出部512は、各直線上の画素それぞれについて、相違度算出のための探索範囲内の視差値と、当該画素に隣接する画素の視差値との差異に基づき、探索範囲内の各視差値に対応する重み付けされた相違度を、さらに重み付けした値を、着目画素のコストとして算出する。コスト集約部513は、着目画素を通る複数の直線上の画素それぞれに対して算出されたコストを、探索範囲の視差値毎に加算する、つまり視差値毎のコストの和を算出することによって、着目画素のコストを集約する。視差選択部104は、着目画素に関して、探索範囲の視差値毎のコストの和のうちから、最小のコストの和を抽出し、最小のコストの和を与える視差値を特定し、特定した視差値を着目画素の視差値に決定する。さらに、視差選択部104は、基準画像の全ての画素を着目画素として、当該画素の視差値を決定し、視差画像を生成する。
なお、変形例に係る視差値算出装置700aは、重み付けを相違度に対して行うが、これに限る必要はなく、コスト計算時又はコスト集約時に同様の重み付けを各画素に対して行ってもよい。このような場合も、同様の効果を得ることができる。
具体的には、図34に示す着目画素I1hpiのコストの場合、ペナルティ値P1及びP2の値が、着目画素及び対応画素間の輝度差、着目画素及び対応画素間の輝度勾配の差、又は、これらの組み合わせに応じて、重み付けされる。さらに簡略化して、ペナルティ値P1及びP2は、着目画素又は対応画素における輝度勾配に応じて、重み付けされてもよい。ここで、基準画像中の着目画素I1hpiのx座標値をxbとすると、視差値0の場合、対応画素は、参照画像中において、xb−0=xbをx座標とする画素である。同様に、対応画素は、視差値−1の場合、参照画像中でxb−1をx座標とする画素であり、視差値−kの場合、参照画像中でxb−kをx座標とする画素である。ちなみに、参照画像中のいずれの対応画素のy座標も、基準画像中の着目画素I1hpiのy座標と等しい。
なお、上記重み付けは、上記の輝度差、輝度勾配の差、又は、着目画素若しくは対応画素における輝度勾配が大きいほど重くなり、小さいほど軽くなるように設定される。輝度勾配は、画像座標で、x軸方向の勾配であってもよく、y軸方向の勾配であってもよく、x軸方向及びy軸方向の勾配の両者を考慮した勾配であってもよく、その他の任意の方向の勾配であってもよい。
上述のように、視差値算出装置は、第1の評価画素としての着目画素I1hpiとその対応画素の探索範囲内の画素との間における輝度値の差異、着目画素I1hpiと上記探索範囲内の画素との間における輝度勾配の差異、並びに、着目画素I1hpi又は上記探索範囲内の画素における輝度勾配のうちの少なくとも一つに基づく重みを、第1の評価値としてのペナルティ値に付加してもよい。
[その他]
以上、1つ又は複数の態様に係る視差値算出装置について、実施の形態及び変形例に基づいて説明したが、本開示は、これらの実施の形態及び変形例に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を実施の形態及び変形例に施したものや、異なる実施の形態及び変形例における構成要素を組み合わせて構築される形態も、1つ又は複数の態様の範囲内に含まれてもよい。
以上、1つ又は複数の態様に係る視差値算出装置について、実施の形態及び変形例に基づいて説明したが、本開示は、これらの実施の形態及び変形例に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を実施の形態及び変形例に施したものや、異なる実施の形態及び変形例における構成要素を組み合わせて構築される形態も、1つ又は複数の態様の範囲内に含まれてもよい。
実施の形態及び変形例に係る視差値算出装置は、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つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
本開示の技術は、カメラの撮像画像間のサブピクセル精度の視差値を算出する技術に有用である。本開示の技術は、車両、船舶、飛行体又はロボットなどに搭載されるカメラを用いた距離センサ等の、カメラの撮像画像間の視差値を用いるいかなる技術にも有用である。
20 記憶部(メモリ)
100,200,300,300a,400,400a,500,500a,500b,500c,500d,600,600a,700,700a 視差値算出装置
101 水平拡大部
102,602 センサス変換部
103,603,703 相違度算出部
104,604 視差選択部
105,205 水平縮小部
204a 第一視差選択部
204b 第二視差選択部
206 L/Rチェック部
307 縮小部
308 拡大部
309 終了判断部
410 異方性縮小部
411 異方性拡大部
512 コスト算出部
513 コスト集約部
100,200,300,300a,400,400a,500,500a,500b,500c,500d,600,600a,700,700a 視差値算出装置
101 水平拡大部
102,602 センサス変換部
103,603,703 相違度算出部
104,604 視差選択部
105,205 水平縮小部
204a 第一視差選択部
204b 第二視差選択部
206 L/Rチェック部
307 縮小部
308 拡大部
309 終了判断部
410 異方性縮小部
411 異方性拡大部
512 コスト算出部
513 コスト集約部
Claims (11)
- プロセッサとメモリとを備え、
前記プロセッサは、
(a)第1の位置に配置された第1のカメラで撮像された第1の画像と、第2の位置に配置された第2のカメラで撮像された第2の画像とを前記メモリから取得し、
(b)前記第1の画像に対して、予め定められた視差方向への拡大処理により、前記第1の画像の画素の数を増やすことによって、複数の第1の画素を含む第1の拡大画像を生成し、前記第2の画像に対して、予め定められた視差方向への拡大処理により、前記第2の画像の画素の数を増やすことによって、複数の第2の画素を含む第2の拡大画像を生成し、
(c)前記第1の拡大画像において、前記複数の第1の画素毎に、周囲の画素との画素値の比較により、第1のセンサス特徴量を算出し、前記第2の拡大画像において、前記複数の第2の画素毎に、周囲の画素との画素値の比較により、第2のセンサス特徴量を算出し、
(d)前記複数の第1の画素それぞれについて、前記第1のセンサス特徴量と、少なくとも1つの前記第2の画素の前記第2のセンサス特徴量とを用いて、前記少なくとも1つの第2の画素それぞれの位置での前記第1の画素に対する視差値に対応する相違度を算出し、
(e)前記複数の第1の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第1の拡大画像に対応する視差画像における画素毎の視差値を取得し、
(f)前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第2の画像に対する前記第1の画像の画素毎の視差値を算出する
視差値算出装置。 - 前記プロセッサは、前記第1のセンサス特徴量と前記第2のセンサス特徴量との間のハミング距離を、前記相違度として算出する
請求項1に記載の視差値算出装置。 - 前記プロセッサは、
処理(d)と処理(e)の間において、
(g)前記第1の拡大画像において、視差値の算出対象の前記第1の画素である着目画素から、所定の方向に位置する前記第1の画素である評価画素それぞれについて、
前記評価画素のうち、第1の評価画素に前記所定の方向で隣り合う第2の評価画素の視差値と、前記第2の拡大画像における前記第1の評価画素に対応する位置の対応画素に対する、相違度算出のための探索範囲内の前記第2の画素それぞれの視差値との比較に基づき、前記探索範囲内の前記第2の画素それぞれの第1の評価値を算出し、
前記第1の評価画素と前記探索範囲内の前記第2の画素それぞれとの間の相違度と、前記探索範囲内の前記第2の画素それぞれの第1の評価値とに基づき、前記探索範囲内の前記第2の画素それぞれの視差値についての第2の評価値を算出し、
前記探索範囲内の前記第2の画素それぞれの視差値に対応する全ての前記評価画素の前記第2の評価値を加算して、加算評価値を算出し、
処理(e)において、最小の前記加算評価値に対応する前記視差値を前記着目画素の視差値に決定する
請求項1または2に記載の視差値算出装置。 - 前記プロセッサは、
処理(c)において、対象画素のセンサス特徴量を算出する際に比較する周囲の画素の領域である比較領域として、前記対象画素を含み且つ前記対象画素に対する位置が異なる複数の前記比較領域を決定し、
前記比較領域それぞれについて、前記複数の第1の画素の前記第1のセンサス特徴量と、前記複数の第2の画素の前記第2のセンサス特徴量とを算出し、
処理(d)において、前記比較領域それぞれについて、前記相違度を算出し、
処理(e)において、全ての前記比較領域の前記相違度のうち、最も小さい相違度に対応する視差値を選択することにより、前記第1の拡大画像に対応する視差画像における画素毎の視差値を取得する
請求項1〜3のいずれか一項に記載の視差値算出装置。 - 前記プロセッサは、
処理(d)において、前記相違度が算出される前記第1の画素及び前記第2の画素について、前記第1の画素の前記周囲の画素の画素値である輝度値と前記第2の画素の前記周囲の画素の画素値である輝度値との差異と、前記第1の画素の前記周囲の画素の輝度勾配と前記第2の画素の前記周囲の画素の輝度勾配との差異との少なくとも一方に基づく重みを、前記相違度に付加する
請求項1〜4のいずれか一項に記載の視差値算出装置。 - (a)第1の位置に配置された第1のカメラで撮像される第1の画像と、第2の位置に配置された第2のカメラで撮像される第2の画像とを取得し、
(b)前記第1の画像に対して、予め定められた視差方向への拡大処理により、前記第1の画像の画素の数を増やすことによって、複数の第1の画素を含む第1の拡大画像を生成し、前記第2の画像に対して、予め定められた視差方向への拡大処理により、前記第2の画像の画素の数を増やすことによって、複数の第2の画素を含む第2の拡大画像を生成し、
(c)前記第1の拡大画像において、前記複数の第1の画素毎に、周囲の画素との画素値の比較により、第1のセンサス特徴量を算出し、前記第2の拡大画像において、前記複数の第2の画素毎に、周囲の画素との画素値の比較により、第2のセンサス特徴量を算出し、
(d)前記複数の第1の画素それぞれについて、前記第1のセンサス特徴量と、少なくとも1つの前記第2の画素の前記第2のセンサス特徴量とを用いて、前記少なくとも1つの第2の画素それぞれの位置での前記第1の画素に対する視差値に対応する相違度を算出し、
(e)前記複数の第1の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第1の拡大画像に対応する視差画像における画素毎の視差値を取得し、
(f)前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第2の画像に対する前記第1の画像の画素毎の視差値を算出し、
処理(a)〜処理(f)の少なくとも1つは、少なくとも1つのプロセッサによって実行される
視差値算出方法。 - 前記第1のセンサス特徴量と前記第2のセンサス特徴量との間のハミング距離を、前記相違度として算出する
請求項6に記載の視差値算出方法。 - 処理(d)と処理(e)の間において、
(g)前記第1の拡大画像において、視差値の算出対象の前記第1の画素である着目画素から、所定の方向に位置する前記第1の画素である評価画素それぞれについて、
前記評価画素のうち、第1の評価画素に前記所定の方向で隣り合う第2の評価画素の視差値と、前記第2の拡大画像における前記第1の評価画素に対応する位置の対応画素に対する、相違度算出のための探索範囲内の前記第2の画素それぞれの視差値との比較に基づき、前記探索範囲内の前記第2の画素それぞれの第1の評価値を算出し、
前記第1の評価画素と前記探索範囲内の前記第2の画素それぞれとの間の相違度と、前記探索範囲内の前記第2の画素それぞれの第1の評価値とに基づき、前記探索範囲内の前記第2の画素それぞれの視差値についての第2の評価値を算出し、
前記探索範囲内の前記第2の画素それぞれの視差値に対応する全ての前記評価画素の前記第2の評価値を加算して、加算評価値を算出し、
処理(e)において、最小の前記加算評価値に対応する前記視差値を前記着目画素の視差値に決定する
請求項6または7に記載の視差値算出方法。 - 処理(c)において、対象画素のセンサス特徴量を算出する際に比較する周囲の画素の領域である比較領域として、前記対象画素を含み且つ前記対象画素に対する位置が異なる複数の前記比較領域を決定し、
前記比較領域それぞれについて、前記複数の第1の画素の前記第1のセンサス特徴量と、前記複数の第2の画素の前記第2のセンサス特徴量とを算出し、
処理(d)において、前記比較領域それぞれについて、前記相違度を算出し、
処理(e)において、全ての前記比較領域の前記相違度のうち、最も小さい相違度に対応する視差値を選択することにより、前記第1の拡大画像に対応する視差画像における画素毎の視差値を取得する
請求項6〜8のいずれか一項に記載の視差値算出方法。 - 処理(d)において、前記相違度が算出される前記第1の画素及び前記第2の画素について、前記第1の画素の前記周囲の画素の画素値である輝度値と前記第2の画素の前記周囲の画素の画素値である輝度値との差異と、前記第1の画素の前記周囲の画素の輝度勾配と前記第2の画素の前記周囲の画素の輝度勾配との差異との少なくとも一方に基づく重みを、前記相違度に付加する
請求項6〜9のいずれか一項に記載の視差値算出方法。 - (a)第1の位置に配置された第1のカメラで撮像された第1の画像と、第2の位置に配置された第2のカメラで撮像された第2の画像とを取得し、
(b)前記第1の画像に対して、予め定められた視差方向への拡大処理により、前記第1の画像の画素の数を増やすことによって、複数の第1の画素を含む第1の拡大画像を生成し、前記第2の画像に対して、予め定められた視差方向への拡大処理により、前記第2の画像の画素の数を増やすことによって、複数の第2の画素を含む第2の拡大画像を生成し、
(c)前記第1の拡大画像において、前記複数の第1の画素毎に、周囲の画素との画素値の比較により、第1のセンサス特徴量を算出し、前記第2の拡大画像において、前記複数の第2の画素毎に、周囲の画素との画素値の比較により、第2のセンサス特徴量を算出し、
(d)前記複数の第1の画素それぞれについて、前記第1のセンサス特徴量と、少なくとも1つの前記第2の画素の前記第2のセンサス特徴量とを用いて、前記少なくとも1つの第2の画素それぞれの位置での前記第1の画素に対する視差値に対応する相違度を算出し、
(e)前記複数の第1の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第1の拡大画像に対応する視差画像における画素毎の視差値を取得し、
(f)前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第2の画像に対する前記第1の画像の画素毎の視差値を算出する
ことを、コンピュータに実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018000877A JP2019120590A (ja) | 2018-01-05 | 2018-01-05 | 視差値算出装置、視差値算出方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018000877A JP2019120590A (ja) | 2018-01-05 | 2018-01-05 | 視差値算出装置、視差値算出方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019120590A true JP2019120590A (ja) | 2019-07-22 |
Family
ID=67307252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018000877A Pending JP2019120590A (ja) | 2018-01-05 | 2018-01-05 | 視差値算出装置、視差値算出方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019120590A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112802079A (zh) * | 2021-01-19 | 2021-05-14 | 奥比中光科技集团股份有限公司 | 一种视差图获取方法、装置、终端和存储介质 |
CN113763269A (zh) * | 2021-08-30 | 2021-12-07 | 上海工程技术大学 | 一种用于双目图像的立体匹配方法 |
JP7408337B2 (ja) | 2019-10-10 | 2024-01-05 | キヤノン株式会社 | 画像処理方法、および画像処理装置 |
-
2018
- 2018-01-05 JP JP2018000877A patent/JP2019120590A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7408337B2 (ja) | 2019-10-10 | 2024-01-05 | キヤノン株式会社 | 画像処理方法、および画像処理装置 |
CN112802079A (zh) * | 2021-01-19 | 2021-05-14 | 奥比中光科技集团股份有限公司 | 一种视差图获取方法、装置、终端和存储介质 |
CN113763269A (zh) * | 2021-08-30 | 2021-12-07 | 上海工程技术大学 | 一种用于双目图像的立体匹配方法 |
CN113763269B (zh) * | 2021-08-30 | 2023-11-24 | 上海工程技术大学 | 一种用于双目图像的立体匹配方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6986683B2 (ja) | 視差値算出装置、視差値算出方法及びプログラム | |
US10944960B2 (en) | Free-viewpoint video generating method and free-viewpoint video generating system | |
Jeon et al. | Accurate depth map estimation from a lenslet light field camera | |
JP7282317B2 (ja) | 3次元計測システム及び3次元計測方法 | |
JP7043085B2 (ja) | 視点から距離情報を取得するための装置及び方法 | |
US8452081B2 (en) | Forming 3D models using multiple images | |
US8447099B2 (en) | Forming 3D models using two images | |
JP7105246B2 (ja) | 再構成方法および再構成装置 | |
JP7058277B2 (ja) | 再構成方法および再構成装置 | |
JP5955028B2 (ja) | 画像処理装置、画像処理方法および画像処理用のプログラム | |
US20210044787A1 (en) | Three-dimensional reconstruction method, three-dimensional reconstruction device, and computer | |
US20140340486A1 (en) | Image processing system, image processing method, and image processing program | |
JP6655379B2 (ja) | 焦点スタックから適応スライス画像を生成する方法および装置 | |
KR102407137B1 (ko) | 영상 처리 방법 및 장치 | |
JP4701848B2 (ja) | 画像マッチング装置、画像マッチング方法および画像マッチング用プログラム | |
JP2019120590A (ja) | 視差値算出装置、視差値算出方法及びプログラム | |
JPWO2018147059A1 (ja) | 画像処理装置、および画像処理方法、並びにプログラム | |
JP6285686B2 (ja) | 視差画像生成装置 | |
WO2018133027A1 (zh) | 基于灰度约束的三维数字散斑的整像素搜索方法及装置 | |
JP6494402B2 (ja) | 画像処理装置、撮像装置、画像処理方法、プログラム | |
JP2009186287A (ja) | 平面パラメータ推定装置、平面パラメータ推定方法及び平面パラメータ推定プログラム | |
JP7312026B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP2017199285A (ja) | 情報処理装置、情報処理方法、プログラム | |
JP6671589B2 (ja) | 3次元計測システム、3次元計測方法及び3次元計測プログラム | |
JP6843552B2 (ja) | 画像処理装置、画像処理方法およびプログラム。 |