以下、本発明の実施形態を図面に基づいて説明する。
<(1)第1実施形態>
<(1-1)情報処理システムの構成>
図1は、本発明の第1実施形態に係る情報処理システム1Aの概略構成を示す図であり、図2は、情報処理システム1Aの要部構成を示すブロック図である。
情報処理システム1Aは、2眼のステレオカメラ2と、ステレオカメラ2に対してデータ伝送可能に接続する情報処理装置3Aとを備える。
2眼のステレオカメラ2には、それぞれ撮像素子を有する2つの撮像系21,22が設けられる。撮像系21,22は、所定方向に沿って離隔配置され、カメラ正面の被写体OBを、同じタイミングで異なる視点から撮像するように構成される。撮像系21,22によって同じタイミングで撮像される2つの画像は、いわゆるステレオ画像であり、データ線CBを介して情報処理装置3Aに送信される。
なお、ステレオ画像を構成する2画像のうち、撮像系21によって撮像されて取得される画像を、適宜「第1撮像画像」G1と称し、撮像系22によって撮影されて取得される画像を、適宜「第2撮像画像」G2と称する。従って、2眼のステレオカメラ2によって、同一の被写体OBがそれぞれとらえられた第1撮像画像G1と第2撮像画像G2とを含む複数の画像が取得される。
情報処理装置3Aは、例えばパーソナルコンピュータ(パソコン)で構成され、マウスやキーボードを含む操作部31と、例えば液晶ディスプレイ等で構成される表示部32と、ステレオカメラ2からのデータを受信するインターフェース(I/F)部33とを備える。また、情報処理装置3Aは、記憶部34と入出力部35と制御部36Aとを有する。
記憶部34は、例えばハードディスク等で構成され、後述する対応点探索処理を行うためのプログラムPGa等が格納される。
入出力部35は、例えばディスクドライブを備えて構成され、光ディスク等の記憶媒体9を受け付け、制御部36Aとの間でデータの授受を行う。
制御部36Aは、プロセッサーとして働くCPU36a、および情報を一時的に記憶するメモリ36bを有し、情報処理装置3Aの各部を統括的に制御する。制御部36Aでは、記憶部34内のプログラムPGaが読み込まれて実行されることで、各種機能や情報処理等が実現される。
制御部36Aのメモリ36bには、記憶媒体9に記憶されているプログラムデータを入出力部35を介して格納させることができる。これにより、この格納したプログラムを情報処理装置3Aの動作に反映させることができる。
また、制御部36Aは、ステレオカメラ2で取得されたステレオ画像を構成する2画像(具体的には、第1および第2撮像画像G1,G2)間において対応点を探索する処理(対応点探索処理)を行う。この対応点探索処理については後述する。更に、制御部36Aは、画像間の対応点から三角測量の原理に基づき、被写体OBの3次元位置を算出する。
表示部32では、制御部36Aで算出された被写体OBの3次元位置に基づく被写体OBの3次元画像が可視的に出力される。
なお、本実施形態では、説明を簡素化するために、ステレオカメラ2の収差は良好に補正されており、且つ撮像系21,22は、略平行(好ましくは完全に平行)に設定されている。つまり、撮像系21,22の光軸が略平行(好ましくは完全に平行)に設定され、第1および第2撮像画像G1,G2で捉えられた被写体は、第1および第2撮像画像G1,G2の外縁に対して略同一の角度関係(好ましくは完全に同一の角度関係)を有する。また、実際のステレオカメラ2の構成が、このような条件にない場合は、画像処理によって同等の条件下で撮像されたステレオ画像に変換されても良い。
<(1-2)対応点探索処理>
情報処理装置3Aでは、制御部36Aにおいて、ステレオ画像を構成する2画像間の対応点探索処理が行われる。この対応点探索処理では、簡単には、下記ステップ(I)〜(III)の処理が順次に行われる。
(I)基準画像としての第1撮像画像G1を構成する全画素のうちの一部の複数の画素が、対応点の探索における基準画素(探索基準点)として設定される。
(II)各探索基準点について、参照画像としての第2撮像画像G2を対象として探索基準点と同じ被写体の部分をとらえた該探索基準点に対応する点(対応点)が探索される。これにより、各探索基準点について、第1撮像画像G1と第2撮像画像G2との間における探索基準点の座標とその対応点の座標との間の距離が、視差として導出される。このとき、各視差の信頼性を示す値(信頼度)が導出される。
(III)第1撮像画像G1のうちの基準画素(探索基準点)以外の画素が、対応点が演算によって推定される画素(演算基準点)として順次に設定され、演算基準点を挟む2点の探索基準点に係る視差および該視差の信頼度に基づいて、各演算基準点に係る視差の推定値(推定視差)が決定される。
ここで、ステップ(II)における対応点探索手法としては、振幅成分を抑制した相関法が知られており、位相限定相関法(POC;Phase Only Correlation)やDCT符号限定相関法(参考論文:「画像信号処理と画像パターン認識の融合−DCT符号限定相関とその応用」貴塚仁志)等がある。これらの相関法では、パターンの周波数分解信号から、振幅成分を抑制した位相成分のみの信号を用いて類似度演算が行われる。このため、画像を取得するためのステレオカメラ2における撮影条件の差(ここでは、撮像系21,22における撮影条件の差)や、ノイズ等の影響を受け難く、欠陥が生じ難い対応点探索が可能である。
なお、本実施形態では、位相限定相関法を用いた対応点探索処理が行われるものとする。ここで、位相限定相関法を用いた対応点探索の基本原理について説明する。
<(1-2-1)位相限定相関法を用いた対応点探索の基本原理>
ステレオカメラ2の撮像系21,22によって同期して取得された第1および第2撮像画像G1,G2のうち、第1撮像画像G1が基準画像として設定され、第2撮像画像G2が参照画像として設定される。以下、基準画像G1および参照画像G2とも称する。
なお、ここでは、基準画像G1および参照画像G2は、それぞれ相互に直交するX方向およびY方向に沿って多数の画素がマトリックス状に配置されて形成されているものとする。また、基準画像G1および参照画像G2では、X方向に沿って所定数(N個)の画素が配列されることで長辺が形成され、X方向とは異なるY方向に沿って所定数(M個)の画素が配列されることで短辺が形成されているものとする。
図3は、基準画像G1と参照画像G2との間において対応点探索を行う際に、基準画像G1に対して設定されるウィンドウの設定態様を例示する図である。また、図4は、基準画像G1と参照画像G2との間において対応点探索を行う際に、参照画像G2に対して設定されるウィンドウの設定態様を例示する図である。なお、図3および図3以降の図では、基準画像G1および参照画像G2の長辺に沿ったX方向と、短辺に沿ったY方向とを明示するために、XYの直交する2軸が付されている。
また、基準画像G1および参照画像G2では、左下の画素が基準(例えば原点)とされるとともに、各画素の位置がXYの座標(X,Y)で示され、例えば、X方向に1画素ずれるとX座標の値が1増加し、Y方向に1画素ずれるとY座標の値が1増加するものとする。
更に、ここでは、撮像系21で取得される基準画像G1で被写体のある部分をとらえた画素の座標と、撮像系22で取得される参照画像G2で同じ被写体のある部分をとらえた画素の座標とが、Y方向にはほとんどずれず、X方向にずれるように、撮像系21と撮像系22とが設置されているものとする。
まず、図3で示されるように、基準画像G1上で指定される点(以下「指定点」と称する)Pを中心点として内包するウィンドウ(基準領域)W1が基準画像G1上に設定される。その一方で、図4で示されるように、ウィンドウW1のサイズと同じサイズを有するウィンドウ(比較領域)W2が参照画像G2における複数の位置に設定される。
ここでは、基準領域W1および比較領域W2では、それぞれX方向およびY方向に沿って複数の画素がマトリックス状に配列される。具体的には、X方向に沿って所定数N1の画素が配列され、Y方向に沿って所定数N2の画素が配列される。
次に、基準領域W1および各比較領域W2が演算処理の対象となる領域(処理対象領域)とされて、基準領域W1と各比較領域W2との相関を示す値(以下「相関値」と称する)が算出される。そして、各比較領域W2に係る相関値(ここでは、後述するPOC値)に基づき、参照画像G2上で指定点Pに対応する点(対応点)が検出される。
更に、基準画像G1に対して、図5の矢印で示されるように、指定点Pを中心として内包する基準領域W1が、上方向(+Y方向)から順に、左から右方向(X方向)に沿って所定画素ずつずらされながら時間順次に設定され、各指定点Pに対応する対応点が、参照画像G2上で検出される。
具体的には、基準画像G1については、+Y方向から−Y方向に向けて並んだX方向に平行な各画素列に沿って、指定点Pが時間順次に設定される。そして、X方向に平行な1つの画素列に沿った指定点Pの設定が完了すると、1画素だけ−Y方向に位置するX方向に平行な次の画素列に沿って指定点Pが時間順次に設定される。すなわち、指定点を内包する基準領域W1によって基準画像G1の走査(スキャン)が行われる。このスキャンの方向(スキャン方向)は、X方向に沿った方向、すなわちX方向に平行な方向となる。
各対応点が検出される際には、図4で示されるように、参照画像G2に対して、基準画像G1の指定点PのY座標と同じY座標の点を中心とした比較領域W2が、左から右方向(X方向)に沿って1画素ずつずらされながら時間順次に設定される。すなわち、参照画像G2が比較領域W2によってX方向に沿って走査(スキャン)される。このように、指定点Pに対応する対応点が存在し得る領域が比較領域W2が設定される対象となる領域(設定対象領域)とされ、その限定された領域に比較領域W2が設定されるようにスキャンが行われることが、効率良く対応点が検出される上で好ましい。
この設定対象領域については、撮像系21,22の配置、撮像系21,22の撮影方向(具体的には光軸の設定)、および撮像系21,22の撮影範囲(具体的には画角)などといった撮像系21,22に係る各種設定に従って適宜設定可能である。なお、例えば、図5で示された基準領域W1と同様に、参照画像G2のほぼ全体が比較領域W2によってスキャンされるように、設定対象領域が設定されても構わない。
図6は、位相限定相関法を用いた対応点探索処理を説明するための図である。
位相限定相関法を用いた対応点探索処理では、まず、基準画像G1に対するウィンドウW1の設定処理T0aと、参照画像G2に対するウィンドウW2の設定処理T0bとが行われる。このとき、基準画像G1上のウィンドウW1内の画像領域(基準領域)と、参照画像G2上のウィンドウ内の画像領域(比較領域)とがそれぞれ抽出される。これらの画像領域については、次の数1で表されるものとする。
ここで、上記の数1におけるf(n1,n2)は、基準画像G1上のウィンドウW1内の基準領域を示し、上記の数1におけるg(n1,n2)は、参照画像G2上のウィンドウW2内の比較領域を示す。また、N1およびN2は、例えばN1=2M1+1、N2=2M2+1と設定されている。
次に、基準画像G1および参照画像G2のウィンドウW1,W2内の各画像領域に対し、次の数2で示される演算式を用いた2次元のフーリエ変換処理T1a、T1bが行われる。
なお、上記の数2のただし書におけるWの添字Pには、N1、N2が代入され、またkの添字sには、1、2が代入される。
このようなフーリエ変換処理T1a、T1bが施された各画像領域に対しては、次の数3で示される演算式を用いて、画像の振幅成分を除去するための規格化処理T2a、T2bが行われる。
規格化処理T2a、T2bが完了すると、次の数4で示される演算式を用いた合成処理T3が行われるとともに、数5で示される演算式を用いた2次元の逆フーリエ変換処理T4が行われる。これにより、各画像間の相関演算が実施されることとなり、その結果(POC値)が出力される。
以上の処理により、基準領域W1と比較領域W2との相関を示す演算結果(POC値)が得られ、例えば、図7で示されるような結果(POC値)が得られる。
図7においては、ウィンドウ(N1×N2)内で相関が高い箇所のPOC値が大きくなっており、参照画像G2上のウィンドウW2内のうち、POC値のピークJcに対応する位置が、基準画像G1上の基準領域W1の中心点(指定点)Pに対応した参照画像G2上の対応点に相当する。
ここでは、1つの基準領域W1と、参照画像G2上に設定された複数の比較領域W2との間で相関演算が行われ、POC値のピークJcが検出される。その結果、基準画像G1上の指定点Pに対応した参照画像G2上の対応点が検出される。
更に、同様な手法により、基準画像G1に対して、指定点Pを中心点として内包する複数の基準領域W1が設定され、各指定点Pに対応した参照画像G2上の対応点が検出される。
以上のような位相限定相関法を用いた対応点探索処理によれば、画像の振幅成分が除去され、画像の位相成分のみで相関演算が行われるため、輝度変動やノイズの影響が抑制されて対応点が精度良く検出される。
なお、POC値は、離散的に求められるため、隣接画素間で補間演算を行い、ピークJcの位置を1画素のサイズよりも細かいサブピクセルのサイズで推定することで、更に細かく対応点の検出を行うこともできる。補間演算の手法としては、離散的に求められたPOC値の分布から放物線の関数を求める手法等が考えられる。
ここまで、位相限定相関法による対応点探索の基本原理について説明したが、基準画像G1と参照画像G2との間で、各座標点の対応付けを行うためには、多数回の2次元フーリエ変換を含む2次元演算を行う必要性がある。従って、2次元演算を単に繰り返し行ったのでは、演算処理に多大な時間を要してしまい、画像間の各座標点の対応付けを高速で行うことができない。
そこで、本願の発明者らは、基準画像G1の一部の画素(指定点)に対応する参照画像G2上での対応点の探索を行い、その際に得られる指定点と対応点との間の座標間距離(視差)および該視差の信頼度を用いて、基準画像G1の全画素について基準画像G1と参照画像G2との間における視差を求めることで、演算量の低減を図りつつ、画像間における座標点の対応付けを高速かつ高精度で行う技術を創出した。
以下、本実施形態に係る対応点探索処理の具体的な処理内容について説明する。
<(1-2-2)対応点探索処理の具体的な処理内容>
図8は、対応点探索処理を実行するための制御部36Aの機能的な構成を示す図である。制御部36Aでは、例えば、記憶部34に格納されるプログラムPGaを読み込んで実行することで、図8で示されるような機能的な構成を実現する。
図8で示されるように、制御部36Aは、機能的な構成として、画像取得部361、実探索基準点設定部362、視差導出部363、演算基準点設定部364、推定視差決定部365A、視差演算部366A、および記憶制御部367を有する。
画像取得部361は、記憶部34から同一の被写体を同じタイミングでとらえた基準画像G1および参照画像G2を取得する。ここでは、厳密には、基準画像G1および参照画像G2を示すデータが取得されるが、以下では、基準画像G1を示すデータおよび基準画像G1そのものを基準画像G1と総称し、参照画像G2を示すデータおよび参照画像G2そのものを参照画像G2と総称する。
図9は、基準画像G1および参照画像G2を例示する図である。図9では、基準画像G1および参照画像G2として、縦方向(Y方向)に19画素が配列され且つ横方向(X方向)に25画素が配列される格子状の画素配列をそれぞれ有する簡略化された例が示されている。但し、実際には、基準画像G1および参照画像G2は、例えば、縦方向(Y方向)に960画素が配列され且つ横方向(X方向)に1280画素が配列される格子状の画素配列をそれぞれ有する。
実探索基準点設定部362は、画像取得部361によって取得された基準画像G1に対して、位相限定相関法を用いた対応点探索処理が実際に行われる複数の対象画素を、複数の探索基準点Pstとして設定する。
図10は、基準画像G1に対して設定される複数の探索基準点Pstを例示する図である。図10では、基準画像G1のうちの横方向について、4画素毎に1つの探索基準点Pst(図中の斜線ハッチングが付された画素)が設定される様子が示されている。より詳細には、基準画像G1を構成する縦方向に沿った複数の画素列(垂直ライン)のうち、両端の垂直ライン、および4本の垂直ライン毎の1本の垂直ラインを構成する複数の画素が、複数の探索基準点Pstとして設定される。なお、ここでは、基準画像G1の両端の垂直ラインが複数の探索基準点Pstによって構成されるため、実際には、基準画像G1の垂直ラインの本数に応じて、複数の探索基準点Pstによって構成される垂直ラインの間隔が適宜調整される。
視差導出部363は、対応点探索部363a、信頼度認識部363b、および視差算出部363cを有する。
対応点探索部363aは、上述された位相限定相関法による対応点探索の基本原理に従って、実探索基準点設定部362で設定された各探索基準点Pstについて、順次に参照画像G2上の対応点を探索する。
信頼度認識部363bは、各探索基準点Pstについて、対応点探索部363aにおいて対応点が検出される際に該対応点に対して算出されたPOC値を信頼度として認識する。
視差算出部363cは、各探索基準点Pstについて、基準画像G1における探索基準点Pstの座標と参照画像G2における対応点の座標とのずれ量、すなわち座標間距離が、視差として算出される。
このような処理により、視差導出部363では、各探索基準点Pstについて参照画像G2から対応点を探索することで、基準画像G1と参照画像G2との間における各探索基準点Pstに係る視差と該視差の信頼度とが導出される。ここで導出される信頼度は、導出された視差が、どの程度正確であるかのを表す指標となる。
演算基準点設定部364は、基準画像G1のうち、探索基準点Pstとして設定されなかった各画素を、該画素の近傍に位置する探索基準点Pstに係る視差と該視差に係る信頼度とを用いて対応点が演算によって推定される画素(演算基準点)として設定する。
推定視差決定部365Aは、各演算基準点について、基準画像G1と参照画像G2との間における視差の推定値(推定視差)を決定する。
図11は、推定視差決定部365Aにおける推定視差の決定処理を説明するための図である。図11では、基準画像G1のうち、最も上の水平方向に並ぶ画素列(画素ライン)の右から2番目の探索基準点Pstが第1の探索基準点PAとして示されるとともに、該画素ラインの最も右の探索基準点Pstが第2の探索基準点PEとして示される。また、図11では、基準画像G1に設定される多数の演算基準点のうち、隣り合う第1の探索基準点PAと第2の探索基準点PEとによって挟まれる3つの画素が、左から順に第1の演算基準点PB、第2の演算基準点PC、および第3の演算基準点PDとして示される。
図12は、本実施形態に係る第1〜3の演算基準点PB〜PDの各推定視差の決定処理を説明するための図である。図12では、横軸がX座標を示し、縦軸が視差を示すとともに、第1の探索基準点PAのX座標がXA、第1の演算基準点PBのX座標がXB、第2の演算基準点PCのX座標がXC、第3の演算基準点PDのX座標がXD、第2の探索基準点PEのX座標がXEとして示される。ここでは、図12で示されるように、視差導出部363によって、第1の探索基準点PAに係る視差Δacalおよび該視差Δacalの信頼度REaと、第2の探索基準点PEに係る視差Δecalおよび該視差Δecalの信頼度REeとが導出されるものとする。
また、図13は、第1〜3の演算基準点PB〜PDの各視差を線形補間によって導出する処理を説明するための図である。図13において実線の白抜きの丸印で示されるように、第1の探索基準点PAと第2の探索基準点PEの間に順次に配置される第1〜3の演算基準点PB〜PDの視差が、X座標の変化に対して単純に比例するものと考えることができる。このような場合には、第1の探索基準点PAに係る視差Δacalと第2の探索基準点PEに係る視差Δecalと距離とを用いた線形補間の演算によって、第1の演算基準点PBに係る視差の推定値(推定視差)Δbest、第2の演算基準点PCに係る視差の推定値(推定視差)Δcest、および第3の演算基準点PDに係る視差の推定値(推定視差)Δdestが求められる。
例えば、第1の探索基準点PAのX座標と第1の演算基準点PBのX座標との差分、すなわちX方向に沿った第1の探索基準点PAと第1の演算基準点PBとの間の距離をΔm(=XB−XA)、第2の探索基準点PEのX座標と第1の演算基準点PBのX座標との差分、すなわちX方向に沿った第2の探索基準点PEと第1の演算基準点PBとの間の距離をΔn(=XE−XB)とすると、第1の演算基準点PBの推定視差Δbestは、一般式としての下式(1)で示される。
Δbest=(Δn×Δacal+Δm×Δecal)/(Δm+Δn) ・・・(1)。
具体的には、第1の演算基準点PBに係る推定視差Δbestは、下式(2)で示されるとともに、第2,3の演算基準点PC,PDに係る推定視差Δcest,Δdestは、下式(3)および(4)で示される。
Δbest=0.75×Δacal+0.25×Δecal ・・・(2)
Δcest=0.50×Δacal+0.50×Δecal ・・・(3)
Δdest=0.25×Δacal+0.75×Δecal ・・・(4)。
しかしながら、図13において破線の丸印で示されるように、実際には、第1の探索基準点PAと第1の演算基準点PBとの間で急激に視差が変化している場合も有り得る。つまり、基準画像G1と参照画像G2とでとらえられた被写体が、遠距離に存在するものと近距離に存在するものとが混在している状態(遠近競合状態)にある場合も有り得る。このような場合には、線形補間によって求められる第1〜3の演算基準点PB〜PDの推定視差(白抜きの丸印で示された視差)は、実際の第1〜3の演算基準点PB〜PDの視差(破線の丸印で示された視差)とは大きく異なる。
すなわち、被写体が遠近競合状態にある場合には、演算基準点を挟む2つの探索基準点に係る視差と距離とを用いた線形補間の演算によって求められる該演算基準点に係る推定視差が、該演算基準点に係る実際の視差(実視差)とは大きく異なる頻度が高まる。
そこで、本実施形態に係る推定視差決定部365Aでは、各演算基準点について、該演算基準点を挟む2つの探索基準点に係る視差と距離とに加えて、該2つの探索基準点に係る視差の信頼度を用いた演算により、該演算基準点に係る推定視差が求められる。つまり、推定視差決定部365Aでは、各演算基準点に係る推定視差が、該演算基準点を挟む2つの探索基準点に係る視差および該視差の信頼度に基づいて決定される。
具体的には、例えば、第1の演算基準点PBの推定視差Δbestは、第1の探索基準点PAに係る視差Δacalの信頼度REaと、第2の探索基準点PEに係る視差Δecalの信頼度REeとを用いて、一般式としての下式(5)で示される。
Δbest=(REa×Δn×Δacal+REe×Δm×Δecal)/(REa×Δn+REe×Δm) ・・・(5)。
具体的には、第1の演算基準点PBに係る推定視差Δbestは、下式(6)で示されるとともに、第2,3の演算基準点PC,PDに係る推定視差Δcest,Δdestは、下式(7)および(8)で示される。
Δbest=(REa×0.75×Δacal+REe×0.25×Δecal)/(REa×0.75+REe×0.25) ・・・(6)
Δcest=(REa×0.50×Δacal+REe×0.50×Δecal)/(REa×0.50+REe×0.50) ・・・(7)
Δdest=(REa×0.25×Δacal+REe×0.75×Δecal)/(REa×0.25+REe×0.75) ・・・(8)。
推定視差決定部365Aでは、上式(5),(6)で示されるように、距離Δm,Δnと、信頼度REa,REeとに基づいて、第1の探索基準点PAの視差Δacalに係る係数REa/(REa×Δn+REe×Δm)と、第2の探索基準点PEの視差Δecalに係る係数REe/(REa×Δn+REe×Δm)とが算出される。そして、該係数REa/(REa×Δn+REe×Δm),REe/(REa×Δn+REe×Δm)と、距離Δm,Δnと、視差Δacal,Δecalとに基づき、第1の演算基準点PBに係る推定視差Δbestが決定される。なお、推定視差Δbestが決定されるに際して、係数REa/(REa×Δn+REe×Δm),REe/(REa×Δn+REe×Δm)は、視差Δacal,Δecalの何れを重要視するのかを示す重み付け係数の役割を果たす。
また、第2,3の演算基準点PC,PDに係る推定視差Δcest,Δdestについても、第1の演算基準点PBに係る推定視差Δbestの決定処理と同様に、重み付け係数を利用した演算によって決定される。
図12では、上式(6)〜(8)によって導出される推定視差Δbest,Δcest,Δdestが、黒丸で示される。
また、推定視差決定部365Aでは、同様な演算によって、基準画像G1のうちの全ての演算基準点に係る推定視差が順次に求められる。
なお、ここで説明された推定視差決定部365Aにおける推定視差の決定では、対応点の探索対象となる被写体の部分の近傍において遠距離に存在するものと近距離に存在するものとが混在している程度(すなわち遠近競合の程度)が大きければ大きいほど、信頼度(ここではPOC値の最大値)が低くなることが利用されている。
ここで、遠近競合の程度が大きい場合に信頼度が低下することについて説明する。図12において実線の白抜きの丸印で示されるように、第1の探索基準点PAと第1の演算基準点PBとの間で、視差が大きく変化している場合を想定する。この場合、第1の探索基準点PAを中心点として内包する基準領域W1には、第1の探索基準点PAの周囲の第1および第2の演算基準点PB,PC等も含まれる。このため、第1の探索基準点PAに係るPOC値の最大値が低下する。
これに対して、図12で示されるように、第2の探索基準点PEと第3の演算基準点PDとの間で、視差がほとんど変化していない場合を想定する。この場合、第2の探索基準点PEを中心点として内包する基準領域W1には、第2の探索基準点PEの周囲の第2および第3の演算基準点PC,PD等も含まれる。このため、第2の探索基準点PEに係るPOC値が上昇する。
図8に戻って説明を続ける。
視差演算部366Aは、初期位置設定部366aA、対応点探索部366bA、および視差算出部366cAを有する。
初期位置設定部366aAは、各演算基準点について視差を求める際に、推定視差決定部365Aで決定された該演算基準点に係る推定視差を基準となる初期視差とし、該初期視差に応じて、参照画像G2において比較領域W2を設定する際に基準となる位置(初期位置)を設定する。具体的には、参照画像G2のうち、基準画像G1における演算基準点のX座標から推定視差の分ずれたX座標の位置が初期位置として設定される。
対応点探索部366bAは、各演算基準点について、位相限定相関法による対応点探索の基本原理に従って、順次に参照画像G2上の対応点を探索する。対応点探索部366bAでは、基準画像G1に対して、演算基準点を中心点として内包する基準領域W1が設定されるとともに、図14で示されるように、参照画像G2に対して、該演算基準点に係る初期位置Pprを中心点として内包する比較領域W2が設定される。そして、対応点探索部366bAでは、基準領域W1と比較領域W2との相関を示す相関値(ここではPOC値)が算出され、POC値のピークJcに対応する位置が、該演算基準点に係る対応点として検出される。
ここでは、参照画像G2のうち、演算基準点に対応する対応点の近傍に位置すると推定される初期位置Pprを中心点として内包する比較領域W2が設定される。このため、1つの演算基準点に係る対応点を探索する際に、参照画像G2に対して比較領域W2を1回設定すれば、精度良く対応点が検出される。つまり、対応点探索における演算量を低減することが可能であり、対応点探索の精度が維持されつつ該対応点探索の迅速化が図られる。
視差算出部366cAは、各演算基準点について、演算基準点と対応点探索部366bAによって検出される対応点との間の座標間距離(視差)を算出する。
このようにして、視差演算部366Aでは、参照画像G2について演算基準点に対応する対応点の探索が推定視差決定部365Aによって決定された推定視差が基準とされて実行される。その結果、基準画像G1と参照画像G2との間における演算基準点に係る視差が求められる。
記憶制御部367は、視差導出部363によって各探索基準点に係る視差が導出される度に、探索基準点と該探索基準点に係る視差とが関連付けられたデータを記憶部34に記憶する。また、記憶制御部367は、視差演算部366Aによって各演算基準点に係る視差が導出される度に、演算基準点と該演算基準点に係る視差とが関連付けられたデータを記憶部34に記憶する。
なお、基準画像G1と参照画像G2との間で視差が求められれば、該視差と、ステレオカメラ2における撮像系21の光軸と撮像系22の光軸との距離(基線長)を含むカメラパラメータとに基づいて、被写体の各部分までの距離を求めることが可能となる。
<(1-2-3)対応点探索処理の動作フロー>
図15から図17は、本実施形態に係る制御部36Aにおいて実行される対応点探索処理の動作フローを示すフローチャートである。本動作フローは、制御部36AがプログラムPGaを読み込んで実行することで実現される。なお、本動作フローは、例えば、操作部31からの指示に応じて開始されて、図15のステップSa1に進む。
ステップSa1では、画像取得部361によって、記憶部34から基準画像G1と参照画像G2とが取得される。
ステップSa2では、実探索基準点設定部362によって、基準画像G1を構成する全画素のうち、位相限定相関法を用いた対応点探索処理が実際に行われる複数の画素が、複数の探索基準点として設定される。
ステップSa3では、視差導出部363によって、各探索基準点に係る視差が導出される処理が行われる。具体的には、図16で示される動作フローが実行される。
図16のステップSa31では、視差導出部363によって、ステップSa2で設定された複数の探索基準点から、対応点探索処理の対象となる1つの探索基準点が指定される。なお、ステップSa31では、ステップSa34から戻ってくる度に、ステップSa2で設定された複数の探索基準点のうちで、対応点探索処理の対象として未だに指定されていない探索基準点が指定される。
ステップSa32では、対応点探索部363aによって、参照画像G2を対象として、ステップSa31で指定された探索基準点に対応する対応点の探索が行われる。ここでは、位相限定相関法を用いた対応点探索処理が行われ、POC値が最も大きくなる位置が対応点として検出される。また、このPOC値の最大値が、信頼度認識部363bによって、検出された対応点の信頼度として認識される。
ステップSa33では、視差算出部363cによって、ステップSa31において基準画像G1上で指定された探索基準点の座標と、ステップSa32において検出された対応点の座標との間の距離(座標間距離)が、該探索基準点に係る視差として導出される。また、このステップSa33では、探索基準点に係る視差が導出される度に、記憶制御部367によって、探索基準点と該探索基準点に係る視差とが関連付けられたデータが記憶部34に記憶される。
ステップSa34では、視差導出部363によって、ステップSa2で設定された全ての探索基準点について、ステップSa31〜Sa33の処理によって視差が導出されたか否か判定される。ここで、全ての探索基準点に係る視差の導出が完了していなければ、ステップSa31に戻り、全ての探索基準点に係る視差の導出が完了していれば、図15のステップSa4に進む。
図15のステップSa4では、演算基準点設定部364、推定視差決定部365A、および視差演算部366Aによって、各演算基準点に係る視差が導出される処理が行われる。具体的には、図17で示される動作フローが実行される。
図17のステップSa41では、演算基準点設定部364によって、基準画像G1のうち、ステップSa2で探索基準点として設定されなかった全画素が、演算基準点として設定される。
ステップSa42では、推定視差決定部365Aによって、ステップSa41で設定された複数の演算基準点から、視差の導出対象となる1つの演算基準点が指定される。なお、ステップSa42では、ステップSa48から戻ってくる度に、ステップSa41で設定された複数の演算基準点のうちで、視差の導出対象として未だに指定されていない演算基準点が指定される。
ステップSa43では、推定視差決定部365Aによって、ステップSa42で指定された演算基準点と該演算基準点を挟む2つの探索基準点との間の距離と、ステップSa32で導出された該2つの探索基準点に係る視差の信頼度とに基づき、該2つの探索基準点の視差に係る係数(ここでは重み付け係数)が算出される。
ステップSa44では、推定視差決定部365Aによって、ステップSa43で算出された2つの探索基準点の視差に係る係数と、ステップSa32で導出された該2つの探索基準点の視差とに基づき、ステップSa42で指定された演算基準点に係る推定視差が決定される。
ステップSa45では、初期位置設定部366aAによって、ステップSa44で決定された演算基準点に係る推定視差が初期視差として設定され、参照画像G2のうち、ステップSa42で指定された演算基準点のX座標から該初期視差の分ずれたX座標の位置が、初期位置として設定される。
ステップSa46では、対応点探索部366bAによって、ステップSa42で指定された演算基準点について、参照画像G2上の対応点が探索される。ここでは、基準画像G1に対して、ステップSa42で指定された演算基準点を中心点として内包する基準領域W1が設定されるとともに、参照画像G2に対して、ステップSa45で設定された初期位置を中心点として内包する比較領域W2が設定される。そして、基準領域W1と比較領域W2との相関を示す相関値(ここではPOC値)が算出され、POC値のピークJcに対応する位置が、該演算基準点に係る対応点として検出される。
ステップSa47では、視差算出部366cAによって、ステップSa42で指定された演算基準点について、該演算基準点とステップSa46で検出された対応点との間の座標間距離(視差)が導出される。また、このステップSa47では、演算基準点に係る視差が導出される度に、記憶制御部367によって、演算基準点と該演算基準点に係る視差とが関連付けられたデータが記憶部34に記憶される。
ステップSa48では、視差演算部366Aによって、ステップSa41で設定された全ての演算基準点について、ステップSa42〜Sa47の処理によって視差が導出されたか否か判定される。ここで、全ての演算基準点に係る視差の導出が完了していなければ、ステップSa42に戻り、全ての演算基準点に係る視差の導出が完了していれば、本動作フローが終了する。
以上のように、第1実施形態に係る情報処理システム1Aでは、基準画像G1と参照画像G2との間において、演算基準点を挟む2点の視差とその信頼度とに基づいて該演算基準点に係る推定視差が求められる。このため、基準画像G1と参照画像G2との間において対応点を迅速且つ精度良く探索することが可能となる。
また、実際の視差に近い推定視差を基準として、演算基準点に対応する対応点の探索が行われる。このため、2つの画像の間において対応点を迅速且つ精度良く探索することが可能となる。
また、演算基準点と該演算基準点を挟む2つの探索基準点との間の距離と、該2つの探索基準点の視差に係る信頼度とを加味した重み付け係数に基づいて、確度の低い情報の影響が低減された演算基準点に係る推定視差が求められる。
<(2)第2実施形態>
上記第1実施形態では、演算基準点と該演算基準点を挟む2つの探索基準点との間の距離と、該2つの探索基準点の視差に係る信頼度とを加味した重み付け係数を用いて、演算基準点に係る推定視差が決定された。これに対して、第2実施形態では、演算基準点と該演算基準点を挟む2つの探索基準点との間の距離と、該2つの探索基準点の視差に係る信頼度とに基づいて算出される該2つの探索基準点に係る係数のうち、相対的に大きな係数に対応する探索基準点に係る視差が、演算基準点に係る推定視差として決定される。
第2実施形態に係る情報処理システム1Bは、上記第1実施形態に係る情報処理システム1Aと比較して、推定視差決定部365Aおよび視差演算部366Aが、処理動作が異なる推定視差決定部365Bおよび視差演算部366Bに変更され、該変更に伴って、制御部36Aが制御部36Bに変更されるとともに、情報処理装置3Aが情報処理装置3Bに変更されたものとなっている。従って、第2実施形態に係る情報処理システム1Bのうち、第1実施形態に係る情報処理システム1Aと同様な構成については同じ符号を付して説明を省略する。
以下、第2実施形態に係る情報処理システム1Bのうち、第1実施形態に係る情報処理システム1Aと異なる部分、具体的には推定視差決定部365Bおよび視差演算部366Bについて説明する。
<(2-1)対応点探索処理の具体的な処理内容>
図18は、推定視差決定部365Bにおける第1〜3の演算基準点PB〜PD(図11)に係る推定視差の決定処理を説明するための図である。図18では、図12と同様に、横軸がX座標を示し、縦軸が視差を示すとともに、第1の探索基準点PAのX座標XA、第1〜3の演算基準点PB,PC,PDのX座標XB,XC,XD、第2の探索基準点PEのX座標XE、第1の探索基準点PAに係る視差Δacal、第2の探索基準点PEに係る視差Δecal、X方向に沿った第1の探索基準点PAと第1の演算基準点PBとの間の距離Δm、およびX方向に沿った第2の探索基準点PEと第1の演算基準点PBとの間の距離Δnがそれぞれ示される。
推定視差決定部365Bは、上記第1実施形態に係る推定視差決定部365Aと同様に、距離Δm,Δnと、信頼度REa,REeとに基づいて、第1の探索基準点PAの視差Δacalに係る係数REa/(REa×Δn+REe×Δm)と、第2の探索基準点PEの視差Δecalに係る係数REe/(REa×Δn+REe×Δm)とを算出する。そして、推定視差決定部365Bは、該2つの係数REa/(REa×Δn+REe×Δm),REe/(REa×Δn+REe×Δm)のうち、相対的に大きな係数に対応する探索基準点の視差を、第1〜3演算基準点PB〜PDに係る推定視差として決定する。
例えば、第1の探索基準点PAの視差Δacalに係る係数REa/(REa×Δn+REe×Δm)が、第2の探索基準点PEの視差Δecalに係る係数REe/(REa×Δn+REe×Δm)よりも大きな場合には、第1の探索基準点PAに係る視差Δacalが、第1〜3演算基準点PB〜PDに係る推定視差Δbest,Δcest,Δdestとして決定される。つまり、Δbest=Δcest=Δdest=Δacalの等式が成立する。
一方、第2の探索基準点PEの視差Δecalに係る係数REe/(REa×Δn+REe×Δm)が、第1の探索基準点PAの視差Δacalに係る係数REa/(REa×Δn+REe×Δm)よりも大きな場合には、第2の探索基準点PEに係る視差Δecalが、第1〜3演算基準点PB〜PDに係る推定視差Δbest,Δcest,Δdestとして決定される。つまり、Δbest=Δcest=Δdest=Δecalの等式が成立する。図18では、Δbest=Δcest=Δdest=Δecalの等式が成立する場合における推定視差Δbest,Δcest,Δdestが、黒丸で示されている。
このように、推定視差決定部365Bでは、第1の探索基準点PAの視差Δacalおよび該視差Δacalに係る信頼度REaと、第2の探索基準点PEの視差Δecalおよび該視差Δecalに係る信頼度REeとに基づき、基準画像G1において第1の探索基準点PAと第2の探索基準点PEとによって挟まれる第1〜3演算基準点PB〜PDについて、基準画像G1と参照画像G2との間における推定視差Δbest,Δcest,Δdestが決定される。
また、推定視差決定部365Bでは、同様な演算によって、基準画像G1のうちの全ての演算基準点に係る推定視差が順次に求められる。このような各演算基準点に係る推定視差の決定により、減り張りを付けた、推定視差の決定が可能となる。
推定視差決定部365Bにおける推定視差の決定では、基準画像G1のうちの探索基準点の近傍でとらえられた被写体の部分における遠近競合の程度が大きければ大きいほど、該探索基準点に係る視差の信頼度(ここではPOC値)が低くなることが利用されている。
但し、推定視差決定部365Bにおいて、演算基準点を挟む2つの探索基準点に係る視差のうち、一方の視差を該演算基準点に係る推定視差として決定した場合には、決定された演算基準点に係る推定視差が実際の視差から大きく外れる可能性もある。このような問題に対して、本実施形態では、視差演算部366Bにおける演算基準点に係る視差の演算処理に工夫が施されている。以下、視差演算部366Bにおける処理について説明する。
視差演算部366Bは、初期位置設定部366aB、対応点探索部366bB、および視差算出部366cBを有する。
この初期位置設定部366aBは、各演算基準点について視差を求める際に、推定視差決定部365Bで決定された該演算基準点に係る推定視差を基準となる初期視差とする。このとき、初期位置設定部366aBは、該初期視差に応じて、参照画像G2において比較領域W2を設定する際に基準となる位置(初期位置)を設定する。具体的には、参照画像G2のうち、基準画像G1における演算基準点のX座標から推定視差の分ずれたX座標の位置が初期位置として設定される。
対応点探索部366bBは、各演算基準点について、位相限定相関法による対応点探索の基本原理に従って、順次に参照画像G2上の対応点を探索する。対応点探索部366bBでは、基準画像G1に対して、演算基準点を中心点として内包する基準領域W1が設定されるとともに、図14で示されたように、参照画像G2に対して、該演算基準点に係る初期位置Pprを中心点として内包する比較領域W2が設定される。そして、対応点探索部366bBでは、基準領域W1と比較領域W2との相関を示す相関値(ここではPOC値)が算出され、POC値のピークJcに対応する位置が、該演算基準点に係る対応点として検出される。
但し、ある演算基準点について、参照画像G2に対して上記初期位置を中心点として内包するように設定される比較領域W2と、基準画像G1に設定される基準領域W1との相関値(ここでは、POC値)の最大値が所定値未満となれば、初期位置設定部366aBは、推定視差決定部365Bにおいて算出された相対的に小さな係数に係る探索基準点の視差を、第1〜3演算基準点PB〜PDに係る初期視差として設定し直す。このとき、初期位置設定部366aBは、該初期視差に応じて、参照画像G2において比較領域W2を設定する際に基準となる初期位置を再設定する。そして、対応点探索部366bBでは、参照画像G2に対して再設定された初期位置を中心点として内包するように設定される比較領域W2と、基準画像G1に設定される基準領域W1との相関値(ここでは、POC値)が算出され、POC値のピークJcに対応する位置が、該演算基準点に係る対応点として検出される。
視差算出部366cBは、各演算基準点について、演算基準点と対応点探索部366bBによって検出される対応点との間の座標間距離(視差)を算出する。
このようにして、視差演算部366Bでは、参照画像G2について演算基準点に対応する対応点の探索が推定視差決定部365Bによって決定された推定視差が基準とされて実行される。但し、検出された対応点に係る視差の信頼度(ここでは、POC値)が所定値未満であれば、視差演算部366Bでは、演算基準点を挟む2つの探索基準点に係る視差のうち、推定視差決定部365Bによって決定された一方の視差とは異なる他方の視差が基準とされて、参照画像G2について演算基準点に対応する対応点の探索が実行される。その結果、基準画像G1と参照画像G2との間における演算基準点に係る視差が求められる。
<(2-2)対応点探索処理の動作フロー>
図15、図16、図19、および図20は、本実施形態に係る制御部36Bにおいて実行される対応点探索処理の動作フローを示すフローチャートである。本動作フローは、制御部36BがプログラムPGbを読み込んで実行することで実現される。また、本動作フローは、上記第1実施形態に係る対応点探索処理の動作フローと比較して、ステップSa4の第2の視差の導出処理(図17)が、ステップSb4の第2の視差の導出処理(図19および図20)に変更されたものとなっている。従って、以下では、異なる処理内容である図19および図20で示される動作フローについて説明する。
図19のステップSb41では、図17のステップSa41と同様な処理が行われる。
ステップSb42では、図17のステップSa42と同様に、推定視差決定部365Bによって、ステップSb41で設定された複数の演算基準点から、視差の導出対象となる1つの演算基準点が指定される。なお、ステップSb42では、ステップSb49から戻ってくる度に、ステップSb41で設定された複数の演算基準点のうちで、視差の導出対象として未だに指定されていない演算基準点が指定される。
ステップSb43では、推定視差決定部365Bによって、各演算基準点に係る初期視差の選択および初期位置の設定が行われる。具体的には、図20で示される動作フローが実行される。
図20のステップSb431では、推定視差決定部365Bによって、第1の探索基準点PAと演算基準点との距離(例えば、Δm)と、第2の探索基準点PEと演算基準点との距離(例えば、Δn)と、第1の探索基準点PAの視差Δacalに係る信頼度REaと、第2の探索基準点PEの視差Δecalに係る信頼度REeとに基づいて、第1の探索基準点PAの視差Δacalに係る係数(例えば、REa/(REa×Δn+REe×Δm))と、第2の探索基準点PEの視差Δecalに係る係数(例えば、REe/(REa×Δn+REe×Δm))とが算出される。
ステップSb432では、推定視差決定部365Bによって、ステップSb431で算出された2つの係数の比較が行われる。
ステップSb433では、推定視差決定部365Bによって、ステップSb432における比較結果に基づいて、2つの係数のうち、相対的に大きな係数に対応する探索基準点の視差が、演算基準点に係る推定視差として選択される。
ステップSb434では、初期位置設定部366aBによって、ステップSb433で選択された演算基準点に係る推定視差が初期視差として設定され、参照画像G2のうち、ステップSb42で指定された演算基準点のX座標から該初期視差の分ずれたX座標の位置が、初期位置として設定される。
ステップSb44では、対応点探索部366bBによって、ステップSb42で指定された演算基準点について、参照画像G2上の対応点が探索される。ここでは、基準画像G1に対して、ステップSb42で指定された演算基準点を中心点として内包する基準領域W1が設定されるとともに、参照画像G2に対して、ステップSb434で設定された初期位置を中心点として内包する比較領域W2が設定される。そして、基準領域W1と比較領域W2との相関を示す相関値(ここではPOC値)が算出され、POC値のピークJcに対応する位置が、該演算基準点に係る対応点として検出される。また、このとき、POC値の最大値が信頼度として認識される。
ステップSb45では、対応点探索部366bBによって、ステップSb44で認識された信頼度(ここでは、POC値の最大値)が、所定値未満であるか否か判定される。ここで、POC値の最大値が所定値未満であれば、ステップSb46に進み、POC値の最大値が所定値未満でなければ、ステップSb48に進む。
ステップSb46では、初期位置設定部366aBによって、ステップSb433で選択されなかった他方の探索基準点に係る推定視差が初期視差として選択され、参照画像G2のうち、ステップSb42で指定された演算基準点のX座標から該初期視差の分ずれたX座標の位置が、初期位置として再設定される。
ステップSb47では、対応点探索部366bBによって、ステップSb42で指定された演算基準点について、参照画像G2上の対応点が探索される。ここでは、基準画像G1に対して、ステップSb42で指定された演算基準点を中心点として内包する基準領域W1が設定されるとともに、参照画像G2に対して、ステップSb46で再設定された初期位置を中心点として内包する比較領域W2が設定される。そして、基準領域W1と比較領域W2との相関を示す相関値(ここではPOC値)が算出され、POC値のピークJcに対応する位置が、該演算基準点に係る対応点として検出される。
ステップSb48では、視差算出部366cBによって、ステップSb42で指定された演算基準点について、視差が導出される。ここでは、ステップSb45から進んで来た場合には、演算基準点とステップSb44で検出された対応点との間の座標間距離(視差)が導出される。一方、ステップSb47から進んで来た場合には、演算基準点とステップSb47で検出された対応点との間の座標間距離(視差)が導出される。なお、このステップSa48では、演算基準点に係る視差が導出される度に、記憶制御部367によって、演算基準点と該演算基準点に係る視差とが関連付けられたデータが記憶部34に記憶される。
ステップSb49では、視差演算部366Bによって、ステップSb41で設定された全ての演算基準点について、ステップSb42〜Sb48の処理によって視差が導出されたか否か判定される。ここで、全ての演算基準点に係る視差の導出が完了していなければ、ステップSb42に戻り、全ての演算基準点に係る視差の導出が完了していれば、本動作フローが終了する。
以上のように、第2実施形態に係る情報処理システム1Bでは、演算基準点を挟む2つの探索基準点に係る視差のうち、該演算基準点と該2つの探索基準点との距離と、視差に係る信頼度とに基づいて算出される係数が大きな方の探索基準点に係る視差が、演算基準点に係る初期視差として選択される。そして、該初期視差を基準とした対応点探索処理が行われる。このため、減り張りを付けた視差の導出が可能となる。
また、一旦選択された初期視差を基準とした対応点探索処理によって導出される視差に係る信頼度が所定値未満である場合には、選択されなかった他方の探索基準点に係る視差が、演算基準点に係る初期視差として再選択される。このため、次の段階の対応点の探索において基準となる視差の選択に誤りがあった場合でも、次の段階における視差の算出精度が確保される。
なお、演算基準点に係る初期視差が再選択され、該初期視差を基準とした対応点探索処理によっても、所定値以上の信頼度が得られない場合には、第1〜3の演算基準点PB〜PDの各視差が上述した線形補間によって導出されても良い。
<(3)第3実施形態>
上記第2実施形態では、演算基準点を挟む2つの探索基準点に係る視差のうち、演算基準点と該演算基準点を挟む2つの探索基準点との距離と、視差に係る信頼度とに基づいて算出される係数が大きな方の探索基準点に係る視差が、演算基準点に係る初期視差として選択された。これに対して、第3実施形態では、演算基準点を挟む2つの探索基準点に係る視差のうち、信頼度が大きな方の探索基準点に係る視差が、演算基準点に係る初期視差として選択される。
第3実施形態に係る情報処理システム1Cは、上記第2実施形態に係る情報処理システム1Bと比較して、推定視差決定部365Bおよび視差演算部366Bが、処理動作が異なる推定視差決定部365Cおよび視差演算部366Cに変更され、該変更に伴って、制御部36Bが制御部36Cに変更されるとともに、情報処理装置3Bが情報処理装置3Cに変更されたものとなっている。
以下、第3実施形態に係る情報処理システム1Cのうち、第2実施形態に係る情報処理システム1Bと異なる部分、具体的には推定視差決定部365Cおよび視差演算部366Cについて説明する。なお、第3実施形態に係る情報処理システム1Cのうち、第2実施形態に係る情報処理システム1Bと同様な構成については同じ符号を付して説明を省略する。
<(3-1)対応点探索処理の具体的な処理内容>
推定視差決定部365Cは、演算基準点を挟む2つの探索基準点に係る視差のうち、視差導出部363で導出された信頼度(ここでは、POC値)が大きな方の探索基準点に係る視差を、演算基準点に係る初期視差として選択する。
例えば、第1の探索基準点PAの視差Δacalに係るPOC値が、第2の探索基準点PEの視差Δecalに係るPOC値よりも大きな場合には、第1の探索基準点PAに係る視差Δacalが、第1〜3演算基準点PB〜PDに係る推定視差Δbest,Δcest,Δdestとして決定される。つまり、Δbest=Δcest=Δdest=Δacalの等式が成立する。
一方、第2の探索基準点PEの視差Δecalに係るPOC値が、第1の探索基準点PAの視差Δacalに係るPOC値よりも大きな場合には、第2の探索基準点PEに係る視差Δecalが、第1〜3演算基準点PB〜PDに係る推定視差Δbest,Δcest,Δdestとして決定される。つまり、Δbest=Δcest=Δdest=Δecalの等式が成立する。図18では、Δbest=Δcest=Δdest=Δecalの等式が成立する場合における推定視差Δbest,Δcest,Δdestが、黒丸で示されている。
このように、推定視差決定部365Cでは、第1の探索基準点PAの視差Δacalおよび該視差Δacalに係る信頼度と、第2の探索基準点PEの視差Δecalおよび該視差Δecalに係る信頼度とに基づき、基準画像G1において第1の探索基準点PAと第2の探索基準点PEとによって挟まれる第1〜3演算基準点PB〜PDについて、基準画像G1と参照画像G2との間における推定視差Δbest,Δcest,Δdestが決定される。
また、推定視差決定部365Cでは、同様な演算によって、基準画像G1のうちの全ての演算基準点に係る推定視差が順次に求められる。このような各演算基準点に係る推定視差の決定により、減り張りを付けた、推定視差の決定が可能となる。
推定視差決定部365Cにおける推定視差の決定では、基準画像G1のうちの探索基準点の近傍でとらえられた被写体の遠近競合の程度が大きければ大きいほど、該探索基準点に係る視差の信頼度(ここではPOC値)が低くなることが利用されている。
但し、推定視差決定部365Cにおいて、演算基準点を挟む2つの探索基準点に係る視差のうち、一方の視差を該演算基準点に係る推定視差として決定した場合には、決定された演算基準点に係る推定視差が実際の視差から大きく外れる可能性もある。このような問題に対して、本実施形態では、上記第2実施形態と同様に、視差演算部366Cにおける演算基準点に係る視差の演算処理に工夫が施されている。以下、視差演算部366Cにおける処理について説明する。
視差演算部366Cは、初期位置設定部366aC、対応点探索部366bC、および視差算出部366cCを有する。
この初期位置設定部366aCは、各演算基準点について視差を求める際に、推定視差決定部365Cで決定された該演算基準点に係る推定視差を基準となる初期視差とする。このとき、初期位置設定部366aCは、該初期視差に応じて、参照画像G2において比較領域W2を設定する際に基準となる位置(初期位置)を設定する。具体的には、参照画像G2のうち、基準画像G1における演算基準点のX座標から推定視差の分ずれたX座標の位置が初期位置として設定される。
対応点探索部366bCは、各演算基準点について、位相限定相関法による対応点探索の基本原理に従って、順次に参照画像G2上の対応点を探索する。対応点探索部366bCでは、基準画像G1に対して、演算基準点を中心点として内包する基準領域W1が設定されるとともに、参照画像G2に対して、図14で示されるように、該演算基準点に係る初期位置Pprを中心点として内包する比較領域W2が設定される。そして、対応点探索部366bCでは、基準領域W1と比較領域W2との相関を示す相関値(ここではPOC値)が算出され、POC値のピークJcに対応する位置が、該演算基準点に係る対応点として検出される。
但し、ある演算基準点について、上記初期位置を中心点として内包する様に参照画像G2に設定される比較領域W2と、基準画像G1に設定される基準領域W1との相関値(ここでは、POC値)の最大値が所定値未満となれば、初期位置設定部366aCは、推定視差決定部365Bにおいて選択されなかった相対的に小さな信頼度に係る探索基準点の視差を、第1〜3演算基準点PB〜PDに係る初期視差として設定し直す。このとき、初期位置設定部366aCは、該初期視差に応じて、参照画像G2において比較領域W2を設定する際に基準となる初期位置を再設定する。そして、対応点探索部366bCでは、再設定された初期位置を中心点として内包するように設定される比較領域W2と、基準画像G1に設定される基準領域W1との相関値(ここでは、POC値)が算出され、POC値のピークJcに対応する位置が、該演算基準点に係る対応点として検出される。
視差算出部366cCは、各演算基準点について、演算基準点と対応点探索部366bCによって検出される対応点との間の座標間距離(視差)を算出する。
このようにして、視差演算部366Cでは、参照画像G2について演算基準点に対応する対応点の探索が推定視差決定部365Cによって決定された推定視差が基準とされて実行される。但し、検出された対応点に係る視差の信頼度(ここでは、POC値)が所定値未満であれば、視差演算部366Cでは、演算基準点を挟む2つの探索基準点に係る視差のうち、推定視差決定部365Cによって決定された一方の視差とは異なる他方の視差が基準とされて、参照画像G2について演算基準点に対応する対応点の探索が実行される。その結果、基準画像G1と参照画像G2との間における演算基準点に係る視差が求められる。
<(3-2)対応点探索処理の動作フロー>
図15、図16、図19、および図21は、本実施形態に係る制御部36Cにおいて実行される対応点探索処理の動作フローを示すフローチャートである。本動作フローは、制御部36CがプログラムPGcを読み込んで実行することで実現される。また、本動作フローは、第2実施形態に係る対応点探索処理の動作フローと比較して、ステップSb43の初期視差の選択処理(図20)が、ステップSc43の初期視差の選択処理(図21)に変更され、その他の処理については同様な処理を行うものとなっている。従って、以下では、異なる処理内容である図21で示される動作フローについて説明する。
図21のステップSc431では、推定視差決定部365Cによって、第1の探索基準点PAの視差Δacalに係る信頼度REaと、第2の探索基準点PEの視差Δecalに係る信頼度REeとの比較が行われる。
ステップSc432では、推定視差決定部365Cによって、ステップSc431における比較結果に基づいて、2つの信頼度REa,REeのうち、相対的に大きな信頼度に対応する探索基準点の視差が、演算基準点に係る推定視差として選択される。
ステップSc433では、初期位置設定部366aCによって、ステップSc432で選択された演算基準点に係る推定視差が初期視差として設定され、参照画像G2のうち、ステップSb42で指定された演算基準点のX座標から該初期視差の分ずれたX座標の位置が、初期位置として設定される。
以上のように、第3実施形態に係る情報処理システム1Cでは、演算基準点を挟む2つの探索基準点に係る視差のうち、信頼度が大きな方の探索基準点に係る視差が、演算基準点に係る初期視差として選択される。そして、該初期視差を基準とした対応点探索処理が行われる。このため、減り張りを付けた視差の導出が可能となる。
また、一旦選択された初期視差を基準とした対応点探索処理によって導出される視差に係る信頼度が所定値未満である場合には、選択されなかった他方の探索基準点に係る視差が、演算基準点に係る初期視差として再選択される。このため、次の段階の対応点の探索において基準となる視差の選択に誤りがあった場合でも、次の段階における視差の算出精度が確保される。
なお、演算基準点に係る初期視差が再選択され、該初期視差を基準とした対応点探索処理によっても、所定値以上の信頼度が得られない場合には、第1〜3の演算基準点PB〜PDの各視差が上述した線形補間によって導出されても良い。
<(4)第4実施形態>
上記第3実施形態では、演算基準点を挟む2つの探索基準点に係る視差のうち、信頼度が大きな方の探索基準点に係る視差が、演算基準点に係る初期視差として選択された。これに対して、第4実施形態では、演算基準点を挟む2つの探索基準点に係る視差の差分が閾値以下の場合には、演算基準点と該演算基準点を挟む2つの探索基準点との距離と、演算基準点を挟む2つの探索基準点に係る視差とを用いた線形補間によって、該演算基準点に係る初期視差が決定される。また、第4実施形態では、演算基準点を挟む2つの探索基準点に係る視差の差分が閾値を超える場合には、演算基準点を挟む2つの探索基準点に係る視差のうち、信頼度が大きな方の探索基準点に係る視差が、演算基準点に係る初期視差として選択される。
第4実施形態に係る情報処理システム1Dは、上記第1〜3実施形態に係る情報処理システム1A〜1Cと比較して、推定視差決定部365A〜365Cおよび視差演算部366A〜366Cが、処理動作が異なる推定視差決定部365Dおよび視差演算部366Dに変更され、該変更に伴って、制御部36A〜36Cが制御部36Dに変更されるとともに、情報処理装置3A〜3Cが情報処理装置3Dに変更されたものとなっている。
以下、第4実施形態に係る情報処理システム1Dのうち、第1〜3実施形態に係る情報処理システム1A〜1Cと異なる部分、具体的には推定視差決定部365Dおよび視差演算部366Dについて説明する。なお、第4実施形態に係る情報処理システム1Dのうち、第1〜3実施形態に係る情報処理システム1A〜1Cと同様な構成については同じ符号を付して説明を省略する。
<(4-1)対応点探索処理の具体的な処理内容>
図22および図23は、推定視差決定部365Dにおける第1〜3の演算基準点PB〜PD(図11)に係る推定視差の決定処理を説明するための図である。図22および図23では、図12と同様に、横軸がX座標を示し、縦軸が視差を示すとともに、第1の探索基準点PAのX座標XA、第1〜3の演算基準点PB,PC,PDのX座標XB,XC,XD、第2の探索基準点PEのX座標XE、第1の探索基準点PAに係る視差Δacal、第2の探索基準点PEに係る視差Δecal、X方向に沿った第1の探索基準点PAと第1の演算基準点PBとの間の距離Δm、およびX方向に沿った第2の探索基準点PEと第1の演算基準点PBとの間の距離Δnがそれぞれ示される。
推定視差決定部365Dは、演算基準点を挟む2つの探索基準点に係る視差の差分が閾値以下の場合には、演算基準点と該演算基準点を挟む2つの探索基準点との間の距離と、該2つの探索基準点に係る視差とを用いた線形補間によって推定視差を決定する。また、推定視差決定部365Dは、演算基準点を挟む2つの探索基準点に係る視差の差分が閾値を超える場合には、第3実施形態に係る推定視差決定部365Cと同様に、演算基準点を挟む2つの探索基準点に係る視差のうち、信頼度が大きな方の視差を、演算基準点に係る推定視差として決定する。
なお、ここで言う「閾値」は、視差演算部366Dによる推定視差を基準とした対応点の探索可能範囲に応じた値となっている。例えば、図24で示されるように、比較領域W2が、初期位置Pprを中心とした一辺の長さがL21である正方形の領域である場合には、対応点の探索を精度良く行うことが可能な領域は、初期位置Pprを中心とした一辺の長さがL21の略半分(L22=L21/2)の正方形の領域となる。このとき、閾値は、比較領域W2の一辺の長さL21の1/4の値(L21/4)となる。図22および図23では、対応点の探索可能範囲が太線の矢印(双方向矢印)で示されている。なお、ここでは、参照画像G2において、初期位置Pprを中心として比較領域W2が設定される場合について説明したが、初期位置Ppr以外の点も中心として比較領域W2が設定される場合には、複数箇所に順次に設定される比較領域W2のずれ量も考慮して、閾値が設定されれば良い。
具体的には、図22で示されるように、第1の探索基準点PAに係る視差Δacalと第2の探索基準点PEに係る視差Δecalとの差分が、閾値(ここでは、L21/4)以下の場合には、例えば、視差Δacal,Δecalと、第1〜3の演算基準点PB,PC,PDと第1および第2の探索基準点PA,PEとの間の距離を用いた線形補間によって、第1〜3の演算基準点PB,PC,PDに係る推定視差(図22の実線で描かれた白抜きの丸印)が決定される。そして、視差演算部366Dにおいては、各演算基準点PB,PC,PDに係る推定視差を初期視差として各演算基準点PB,PC,PDに対応する対応点の探索処理が行われる。このとき、図22で示されるように、初期視差を基準として、視差Δacalと視差Δecalとの間の全ての値域範囲を含む視差に対応する対応点の探索が可能となる。従って、対応点の探索を精度良く行うことが可能となる。
これに対して、図23で示されるように、第1の探索基準点PAに係る視差Δacalと第2の探索基準点PEに係る視差Δecalとの差分が、閾値(ここでは、L21/4)以上の場合には、例えば、第1の探索基準点PAの視差Δacalに係るPOC値が、第2の探索基準点PEの視差Δecalに係るPOC値よりも大きければ、第1の探索基準点PAに係る視差Δacalが、第1〜3演算基準点PB〜PDに係る推定視差Δbest,Δcest,Δdestとして決定される。つまり、Δbest=Δcest=Δdest=Δacalの等式が成立する。
一方、第2の探索基準点PEの視差Δecalに係るPOC値が、第1の探索基準点PAの視差Δacalに係るPOC値よりも大きければ、第2の探索基準点PEに係る視差Δecalが、第1〜3演算基準点PB〜PDに係る推定視差Δbest,Δcest,Δdestとして決定される。つまり、Δbest=Δcest=Δdest=Δecalの等式が成立する。図23では、Δbest=Δcest=Δdest=Δecalの等式が成立する場合における推定視差Δbest,Δcest,Δdestが、実線の白抜きの丸印で示されている。
ここで、仮に、視差Δacal,Δecalと、第1〜3の演算基準点と第1および第2の探索基準点PA,PEとの間の距離を用いた線形補間によって、第1〜3の演算基準点PB,PC,PDに係る推定視差(図23の破線で描かれた白抜きの丸印)が決定される場合を想定する。このような場合には、各演算基準点PB,PC,PDに係る実際の視差が、第2の探索基準点PEの視差Δecalと近い値を示すものとすると、各演算基準点PB,PC,PDに係る推定視差を初期視差として各演算基準点PB,PC,PDに対応する対応点の探索処理が行われれば、図23で示されるように、第1〜3の演算基準点PB,PC,PDに係る実際の視差が、探索可能範囲には含まれない。従って、対応点の探索を精度良く行うことが出来ない。
また、推定視差決定部365Dでは、同様な演算によって、基準画像G1のうちの全ての演算基準点に係る推定視差が順次に求められる。
但し、推定視差決定部365Dにおいて、演算基準点を挟む2つの探索基準点に係る視差のうち、一方の視差を該演算基準点に係る推定視差として決定した場合には、決定された演算基準点に係る推定視差が実際の視差から大きく外れる可能性もある。このような問題に対して、本実施形態では、上記第2および第3実施形態と同様に、視差演算部366Dにおける演算基準点に係る視差の演算処理に工夫が施されている。以下、視差演算部366Dにおける処理について説明する。
視差演算部366Dは、初期位置設定部366aD、対応点探索部366bD、および視差算出部366cDを有する。
この初期位置設定部366aDは、各演算基準点について視差を求める際に、推定視差決定部365Dで決定された該演算基準点に係る推定視差を基準となる初期視差とする。このとき、初期位置設定部366aDは、該初期視差に応じて、参照画像G2において比較領域W2を設定する際に基準となる位置(初期位置)を設定する。具体的には、参照画像G2のうち、基準画像G1における演算基準点のX座標から推定視差の分ずれたX座標の位置が初期位置として設定される。
対応点探索部366bDは、各演算基準点について、位相限定相関法による対応点探索の基本原理に従って、順次に参照画像G2上の対応点を探索する。対応点探索部366bDでは、基準画像G1に対して、演算基準点を中心点として内包する基準領域W1が設定されるとともに、参照画像G2に対して、図14で示されるように、該演算基準点に係る初期位置Pprを中心点として内包する比較領域W2が設定される。そして、対応点探索部366bDでは、基準領域W1と比較領域W2との相関を示す相関値(ここではPOC値)が算出され、POC値のピークJcに対応する位置が、該演算基準点に係る対応点として検出される。
但し、第1の探索基準点PAに係る視差Δacalと第2の探索基準点PEに係る視差Δecalとの差分が、閾値(ここでは、L21/4)以下の場合には、ある演算基準点について、上記初期位置を中心点として内包する様に参照画像G2に設定される比較領域W2と、基準画像G1に設定される基準領域W1との相関値(ここでは、POC値)の最大値が所定値未満となれば、初期位置設定部366aDは、推定視差決定部365Dにおいて選択されなかった相対的に小さな信頼度に係る探索基準点の視差を、第1〜3演算基準点PB〜PDに係る初期視差として設定し直す。このとき、初期位置設定部366aDは、該初期視差に応じて、参照画像G2において比較領域W2を設定する際に基準となる初期位置を再設定する。そして、対応点探索部366bDでは、参照画像G2において再設定された初期位置を中心点として内包するように設定される比較領域W2と、基準画像G1に設定される基準領域W1との相関値(ここでは、POC値)が算出され、POC値のピークJcに対応する位置が、該演算基準点に係る対応点として検出される。
視差算出部366cDは、各演算基準点について、演算基準点と対応点探索部366bDによって検出される対応点との間の座標間距離(視差)を算出する。
このようにして、視差演算部366Dでは、参照画像G2について演算基準点に対応する対応点の探索が推定視差決定部365Dによって決定された推定視差が基準とされて実行される。但し、検出された対応点に係る視差の信頼度(ここでは、POC値)が所定値未満であれば、視差演算部366Dでは、演算基準点を挟む2つの探索基準点に係る視差のうち、推定視差決定部365Dによって決定された一方の視差とは異なる他方の視差が基準とされて、参照画像G2について演算基準点に対応する対応点の探索が実行される。その結果、基準画像G1と参照画像G2との間における演算基準点に係る視差が求められる。
<(4-2)対応点探索処理の動作フロー>
図15、図16、図20、および図25は、本実施形態に係る制御部36Dにおいて実行される対応点探索処理の動作フローを示すフローチャートである。本動作フローは、制御部36DがプログラムPGdを読み込んで実行することで実現される。また、本動作フローは、第1実施形態に係る対応点探索処理の動作フローと比較して、ステップSa4の第2の視差の導出処理(図17)が、ステップSd4の第2の視差の導出処理(図25)に変更されたものとなっている。従って、以下では、異なる処理内容である図25で示される動作フローについて説明する。
図25のステップSd41では、図17のステップSa41と同様な処理が行われる。
ステップSd42では、図17のステップSa42と同様に、推定視差決定部365Dによって、ステップSd41で設定された複数の演算基準点から、視差の導出対象となる1つの演算基準点が指定される。なお、ステップSd42では、ステップSd55から戻ってくる度に、ステップSd41で設定された複数の演算基準点のうちで、視差の導出対象として未だに指定されていない演算基準点が指定される。
ステップSd43では、推定視差決定部365Dによって、ステップSd42で指定された演算基準点を挟む2つの探索基準点に係る視差の差分が算出される。
ステップSd44では、推定視差決定部365Dによって、ステップSd43で算出された視差の差分が、閾値以下であるか否か判定される。ここで、視差の差分が閾値を超えているのであれば、ステップSd45に進み、視差の差分が閾値以下であれば、ステップSd51に進む。
ステップSd45〜Sd50では、図19のステップSb43〜Sb48と同様な処理が行われて、ステップSd55に進む。但し、ステップSd45〜Sd50では、図19のステップSb43〜Sb48と比較して、処理を行う推定視差決定部365B、視差演算部366B、初期位置設定部366aB、対応点探索部366bB、および視差算出部366cBが、推定視差決定部365D、視差演算部366D、初期位置設定部366aD、対応点探索部366bD、および視差算出部366cDに変更され、ステップSb42で指定された演算基準点が、ステップSd42で指定された演算基準点に変更されたものとなっている。
ステップSd51では、推定視差決定部365Dによって、ステップSd42で指定された演算基準点を挟む2つの探索基準点に係る視差と、該演算基準点と該2つの探索基準点との間の距離とを用いた線形補間の演算により、該演算基準点に係る推定視差が決定される。
ステップSd52〜Sd54では、図17のステップSa45〜Sa47と同様な処理が行われて、ステップSd55に進む。但し、ステップSd52〜Sd54では、図17のステップSa45〜Sa47と比較して、処理を行う推定視差決定部365A、視差演算部366A、初期位置設定部366aA、対応点探索部366bA、および視差算出部366cAが、推定視差決定部365D、視差演算部366D、初期位置設定部366aD、対応点探索部366bD、および視差算出部366cDに変更され、ステップSa42で指定された演算基準点が、ステップSd42で指定された演算基準点に変更されたものとなっている。
ステップSd55では、図17のステップSa48と同様に、視差演算部366Dによって、ステップSd41で設定された全ての演算基準点について、ステップSd42〜Sd54の処理によって視差が導出されたか否か判定される。ここで、全ての演算基準点に係る視差の導出が完了していなければ、ステップSd42に戻り、全ての演算基準点に係る視差の導出が完了していれば、本動作フローが終了する。
以上のように、本発明の第4実施形態に係る情報処理システム1Dでは、演算基準点を挟む2つの探索基準点に係る視差の差分が閾値以下であれば、線形補間を用いて演算基準点に係る推定視差が決定され、該差分が閾値を超えているのであれば、2つの探索基準点に係る視差のうち、信頼度が大きな方の探索基準点に係る視差が、演算基準点に係る初期視差として選択される。このため、演算基準点の周辺の視差の状況に応じて、2以上の画像の間において対応点を迅速且つ精度良く探索することが可能となる。
また、演算基準点の周辺の視差の差分が大きいか否かが、次の段階の対応点の探索が可能な範囲に応じて決められる。このため、次の段階における視差の算出精度が高められる。
なお、演算基準点に係る初期視差が再選択され、該初期視差を基準とした対応点探索処理によっても、所定値以上の信頼度が得られない場合には、第1〜3の演算基準点PB〜PDの各視差が線形補間によって導出されても良い。
<変形例>
なお、本発明は上述の実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更、改良等が可能である。
◎例えば、上記第1〜4実施形態では、演算基準点について推定視差が決定された後に、該推定視差を初期視差として、該演算基準点に係る対応点探索処理が行われることで、該演算基準点に係る視差が導出されたが、これに限られない。例えば、演算基準点について決定される推定視差を、該演算基準点に係る視差としても良い。
◎また、上記第4実施形態では、演算基準点を挟む2つの探索基準点に係る視差の差分が閾値を超えているのであれば、2つの探索基準点に係る視差のうち、信頼度が大きな方の探索基準点に係る視差が、演算基準点に係る初期視差として選択されたが、これに限られない。例えば、演算基準点を挟む2つの探索基準点に係る視差の差分が閾値を超えているのであれば、上記第3実施形態と同様に、演算基準点と該演算基準点を挟む2つの探索基準点との距離と、視差に係る信頼度とに基づいて算出される係数が大きな方の探索基準点に係る視差が、演算基準点に係る初期視差として選択されても良い。
◎また、上記第1〜4実施形態では、基準画像G1と参照画像G2との間で対応点探索が行われる際に、基準画像G1と参照画像G2とがそのまま採用されたが、これに限られない。例えば、基準画像G1および参照画像G2から、同様なルールに従って画素が間引かれた間引き基準画像Ge1と間引き参照画像Ge2とが生成され、間引き基準画像Ge1と間引き参照画像Ge2との間で対応点探索が行われた結果が用いられて、基準画像G1と参照画像G2との間で対応点探索が行われても良い。このような構成が採用されても、実際の視差に近い推定視差を基準として、演算基準点に対応する対応点の探索が行われるため、基準画像G1と参照画像G2との間において対応点を迅速且つ精度良く探索することが可能となる。
ここで、本変形例に係る情報処理システム1Eを構成する情報処理装置3Eについて具体的に説明する。
図26は、変形例の対応点探索処理に係る制御部36Eの機能的な構成を示す図である。変形例に係る制御部36Eの機能的な構成は、記憶部34に格納されるプログラムPGeが読み込まれて実行されることで実現される。なお、本変形例に係る情報処理システム1Eのうち、第1〜4実施形態に係る情報処理システム1A〜1Dと同様な構成については、同じ符号を付して説明を省略する。
図26で示されるように、変形例に係る制御部36Eは、機能的な構成として、画像取得部361E、間引き画像生成部362E、第1実探索基準点設定部363E、第1視差導出部364E、第1演算基準点設定部365E、第1推定視差決定部366E、第2実探索基準点設定部367E、第2視差導出部368E、第2演算基準点設定部369E、第2推定視差決定部370E、視差演算部371E、および記憶制御部372Eを有する。
画像取得部361Eは、上記第1〜4実施形態に係る画像取得部361と同様に、記憶部34から同一の被写体を同じタイミングでとらえた基準画像G1および参照画像G2を取得する。
間引き画像生成部362Eは、画像取得部361Eによって取得された基準画像G1から所定のルールに従って画素ラインが間引かれた画像(間引き基準画像)Ge1を生成するとともに、画像取得部361Eによって取得された参照画像G2から所定のルールに従って画素ラインが間引かれた画像(間引き参照画像)Ge2を生成する。なお、ここでは、「所定のルール」が、例えば、縦方向(Y方向)に沿った隣接する2本の画素ラインのうちの一方の画素ラインが間引かれる、すなわち縦方向の画素ラインが、2本の画素ライン毎に1本の画素ラインが間引かれるようなルールであるものとする。
図27は、間引き基準画像Ge1および間引き参照画像Ge2を例示する図である。図27では、縦方向(Y方向)に19画素が配列され且つ横方向(X方向)に13画素が配列される格子状の画素配列をそれぞれ有する簡略化された例が示されているが、実際には、例えば、縦方向(Y方向)に960画素が配列され且つ横方向(X方向)に640画素が配列される格子状の画素配列をそれぞれ有する。
第1実探索基準点設定部363Eは、間引き画像生成部362Eによって生成された間引き基準画像Ge1に対して、位相限定相関法を用いた対応点探索処理が実際に行われる複数の対象画素を、複数の探索基準点Pestとして設定する。
図28は、間引き基準画像Ge1および間引き参照画像Ge2に係る対応点探索処理を説明するための図である。図28で示されるように、間引き基準画像Ge1のうちの横方向について、4画素おきに探索基準点Pest(図中の斜線ハッチングが付された画素)が設定される。より詳細には、間引き基準画像Ge1を構成する縦方向に沿った複数の画素列(垂直ライン)のうち、両端の垂直ライン、および4本の垂直ライン毎の1本の垂直ラインを構成する複数の画素が、複数の探索基準点Pestとして設定される。なお、ここでは、間引き基準画像Ge1の両端の垂直ラインが複数の探索基準点Pestによって構成されるため、実際には、間引き基準画像Ge1の垂直ラインの本数に応じて、複数の探索基準点Pestによって構成される垂直ラインの間隔が適宜調整される。
第1視差導出部364Eは、上記第1〜4実施形態に係る視差導出部363と同様な機能を有し、第1実探索基準点設定部363Eによって設定された複数の探索基準点Pestについて、間引き基準画像Ge1と間引き参照画像Ge2との間における視差および該視差の信頼度を導出する。
第1演算基準点設定部365Eは、間引き基準画像Ge1のうち、探索基準点Pestとして設定されなかった画素を、該画素の近傍に位置する探索基準点Pestに係る視差と該視差に係る信頼度とを用いて対応点が演算によって推定される画素(演算基準点)として設定する。ここでは、図28で示されるように、探索基準点Pestからなる縦方向に沿って伸びる2本の画素ラインの中間に位置する縦方向に沿って伸びる画素ラインを構成する画素が演算基準点Pcalとして設定されるものとして説明する。
第1推定視差決定部366Eは、第1演算基準点設定部365Eによって設定された各演算基準点Pcalについて、間引き基準画像Ge1と間引き参照画像Ge2との間における推定視差を決定する。第1推定視差決定部366Eでは、上記第1〜4実施形態に係る推定視差決定部365A〜365Dと同様な処理により、演算基準点Pcalを挟む第1および第2の探索基準点Pestの視差および該視差の信頼度に基づき、該演算基準点Pcalについて、間引き基準画像Ge1と間引き参照画像Ge2との間における推定視差が決定される。ここでは、図28で示されるように、演算基準点Pcalを挟む2つの探索基準点Pestの視差および該視差の信頼度に基づき、該演算基準点Pcalに係る推定視差が決定される。
第2実探索基準点設定部367Eは、基準画像G1に対して、位相限定相関法を用いた対応点探索処理が実際に行われる複数の対象画素を、次の段階(次段)の複数の探索基準点Pstとして設定する。ここでは、図10で示されるように、基準画像G1のうち、全ての探索基準点Pestおよび全ての演算基準点Pcalに対応する複数の画素が、次段の探索基準点Pstとして設定される。
第2視差導出部368Eは、上記第1〜4実施形態に係る視差演算部366A〜366Dと同様な処理により、第2実探索基準点設定部367Eによって設定された複数の探索基準点Pstについて、基準画像G1と参照画像G2との間における視差および該視差の信頼度を導出する。但し、第2視差導出部368Eでは、各探索基準点Pstについて、対応する探索基準点Pestまたは演算基準点Pcalに係る視差が基準の視差(初期視差)とされて、参照画像G2について探索基準点Pstに対応する対応点の探索が実行される。つまり、参照画像G2では、初期視差に応じた初期位置を中心とした比較領域W2が設定されることで、対応点の探索が行われる。その結果、基準画像G1と参照画像G2との間における次段の探索基準点Pstに係る視差が求められる。
第2演算基準点設定部369Eは、基準画像G1のうち、探索基準点Pstとして設定されなかった全ての画素を、該画素の近傍に位置する探索基準点Pstに係る視差と該視差に係る信頼度とを用いて対応点が演算によって推定される画素(演算基準点)として設定する。
第2推定視差決定部370Eは、第2演算基準点設定部369Eによって設定された各演算基準点について、基準画像G1と参照画像G2との間における推定視差を決定する。第2推定視差決定部370Eでは、上記第1〜4実施形態に係る推定視差決定部365A〜365Dと同様な処理により、演算基準点を挟む第1および第2の探索基準点Pstの視差および該視差の信頼度に基づき、該演算基準点について、基準画像G1と参照画像G2との間における推定視差が決定される。ここでは、例えば、図11で示されるように、第1〜3演算基準点PB〜PDを挟む第1および第2探索基準点PA,PEの視差および該視差の信頼度に基づき、第1〜3演算基準点PB〜PDに係る推定視差が決定される。
視差演算部371Eは、上記第1〜4実施形態に係る視差演算部366A〜366Dと同様な処理により、参照画像G2について演算基準点に対応する対応点の探索が推定視差決定部370Eによって決定された推定視差が基準とされて実行される。その結果、基準画像G1と参照画像G2との間における演算基準点に係る視差が求められる。
記憶制御部372Eは、第2視差導出部368Eによって各探索基準点に係る視差が導出される度に、探索基準点と該探索基準点に係る視差とが関連付けられたデータを記憶部34に記憶する。また、記憶制御部372Eは、視差演算部371Eによって各演算基準点に係る視差が導出される度に、演算基準点と該演算基準点に係る視差とが関連付けられたデータを記憶部34に記憶する。
なお、本変形例に係る情報処理システム1Eでは、図28で示されたように、演算基準点Pcalを挟む第1および第2の探索基準点Pestの視差および該視差の信頼度に基づき、該演算基準点Pcalについて、間引き基準画像Ge1と間引き参照画像Ge2との間における推定視差が決定される。これに対して、従来では、図29で示されるように、間引き基準画像Ge1において、全ての探索基準点Pestと全ての演算基準点Pcalとに対応する画素を探索基準点Pfstとし、各探索基準点Pfstについて位相限定相関法等を用いた対応点探索処理が行われる。従って、本変形例に係る情報処理システム1Eでは、図29で示される従来技術と比較して、間引き基準画像Ge1と間引き参照画像Ge2との間における対応点探索処理に係る探索基準点の数が半減する。このため、演算量の大幅な削減が図られる。
図30〜図32は、本変形例に係る対応点探索処理のフローを示すフローチャートである。本動作フローは、制御部36EがプログラムPGeを読み込んで実行することで実現される。なお、本動作フローは、例えば、操作部31からの指示に応じて開始されて、図30のステップSe1に進む。
ステップSe1では、画像取得部361Eによって、図15のステップSa1と同様に、記憶部34から基準画像G1と参照画像G2とが取得される。
ステップSe2では、間引き画像生成部362Eによって、基準画像G1および参照画像G2から、間引き基準画像Ge1および間引き参照画像Ge2が生成される。
ステップSe3では、第1実探索基準点設定部363Eによって、対応点の探索対象として、間引き基準画像Ge1および間引き参照画像Ge2が採用される。
ステップSe4では、第1実探索基準点設定部363Eによって、図28で示されるように、間引き基準画像Ge1に対して複数の探索基準点Pestが設定される。
ステップSe5では、第1視差導出部364Eによって、第1の視差の導出処理が行われる。ここでは、第1視差導出部364Eによって、図16で示されたものと同様な処理が行われる。
ステップSe6では、第1演算基準点設定部365Eおよび第1推定視差決定部366Eによって、第2の視差の導出処理が行われる。このステップSe6では、図31で示される動作フローが実行される。
ステップSe61では、第1演算基準点設定部365Eによって、間引き基準画像Ge1のうち、探索基準点Pestとして設定されなかった複数の画素が、演算基準点として設定される。
ステップSe62では、第1推定視差決定部366Eによって、ステップSe61で設定された複数の演算基準点から、視差の導出対象となる1つの演算基準点が指定される。なお、ステップSe62では、ステップSe65から戻ってくる度に、ステップSe61で設定された複数の演算基準点のうちで、視差の導出対象として未だに指定されていない演算基準点が指定される。
ステップSe63では、第1推定視差決定部366Eによって、ステップSe62で指定された演算基準点と該演算基準点を挟む2つの探索基準点との間の距離と、ステップSe5で導出された該2つの探索基準点に係る視差の信頼度とに基づき、該2つの探索基準点の視差に係る係数(ここでは重み付け係数)が算出される。
ステップSe64では、第1推定視差決定部366Eによって、ステップSe63で算出された2つの探索基準点の視差に係る係数と、該2つの探索基準点の視差とに基づき、ステップSe62で指定された演算基準点に係る推定視差が決定される。この推定視差の決定方法としては、例えば、上記第1実施形態の方法等が挙げられる。
ステップSe65では、第1推定視差決定部366Eによって、ステップSe61で設定された全ての演算基準点について、ステップSe62〜Se64の処理によって推定視差が決定されたか否か判定される。ここで、全ての演算基準点に係る推定視差の決定が完了していなければ、ステップSe62に戻り、全ての演算基準点に係る推定視差の決定が完了していれば、図30のステップSe7に進む。
ステップSe7では、第2実探索基準点設定部367Eによって、対応点の探索対象として、基準画像G1および参照画像G2が採用される。
ステップSe8では、第2実探索基準点設定部367Eによって、基準画像G1のうち、間引き基準画像Ge1で設定された探索基準点Pestと演算基準点Pecalとに対応する画素が、次段の探索基準点Pstとして設定される。
ステップSe9では、第2視差導出部368Eによって、ステップSe8で設定された全ての探索基準点Pstについて、初期視差が設定される。ここでは、各探索基準点Pstに対して、対応する探索基準点Pest(または演算基準点Pecal)に係る視差(または推定視差)が、初期視差として設定される。また、各探索基準点Pstについて、参照画像G2のうち、探索基準点PstのX座標から初期視差の分ずれたX座標の位置が、初期位置として設定される。
ステップSe10では、第2視差導出部368Eによって、第3の視差の導出処理が行われる。このステップSe10では、図32で示される動作フローが実行される。
ステップSe101では、第2視差導出部368Eによって、ステップSe8で設定された複数の探索基準点Pstから、対応点探索処理の対象となる1つの探索基準点が指定される。なお、ステップSe101では、ステップSe104から戻ってくる度に、ステップSe8で設定された複数の探索基準点のうちで、対応点探索処理の対象として未だに指定されていない探索基準点が指定される。
ステップSe102では、第2視差導出部368Eによって、参照画像G2を対象として、ステップSe101で指定された探索基準点に対応する対応点の探索が行われる。ここでは、参照画像G2においてステップSe9で設定された初期位置を中心点として包含する比較領域W2と、基準画像G1においてステップSe101で指定された探索基準点を中心として包含する基準領域W1との間の相関を取る位相限定相関法を用いた対応点探索処理が行われる。なお、POC値が最も大きくなる位置が対応点として検出され、このPOC値の最大値が信頼度として認識される。
ステップSe103では、第2視差導出部368Eによって、ステップSe101において基準画像G1上で指定された探索基準点の座標と、ステップSe102において検出された対応点の座標との間の距離(座標間距離)が、該探索基準点に係る視差として導出される。また、このステップSe103では、探索基準点に係る視差が導出される度に、記憶制御部372Eによって、探索基準点と該探索基準点に係る視差とが関連付けられたデータが記憶部34に記憶される。
ステップSe104では、第2視差導出部368Eによって、ステップSe8で設定された全ての探索基準点について、ステップSe101〜Se103の処理によって視差が導出されたか否か判定される。ここで、全ての探索基準点に係る視差の導出が完了していなければ、ステップSe101に戻り、全ての探索基準点に係る視差の導出が完了していれば、図30のステップSe11に進む。
ステップSe11では、第2演算基準点設定部369E、第2推定視差決定部370E、視差演算部371E、および記憶制御部372Eによって、第4の視差の導出処理が行われる。このステップSe11では、第1実施形態に係るステップSa4(図17)、第2実施形態に係るステップSb4(図19)、第3実施形態に係るステップSc4(図19)、および第4実施形態に係るステップSd4(図25)のうちの何れか1つの動作フローと同様な処理が実行される。このステップSe11では、基準画像G1のうち、探索基準点として設定されなかった全ての画素が演算基準点として設定され、各演算基準点に係る視差が順次に導出される。また、演算基準点に係る視差が導出される度に、記憶制御部372Eによって、演算基準点と該演算基準点に係る視差とが関連付けられたデータが記憶部34に記憶される。
なお、上記ステップSe6では、第1実施形態における推定視差の決定方法と同様な方法によって、間引き基準画像Ge1の各演算基準点Pcalに係る推定視差が決定されたが、これに限られない。例えば、第2〜4実施形態のうちの何れか1つの実施形態における推定視差の決定方法と同様な方法によって、間引き基準画像Ge1の各演算基準点Pcalに係る推定視差が決定されても良い。
また、ここでは、基準画像G1および参照画像G2から、解像度が低減された間引き基準画像Ge1および間引き参照画像Ge2が生成され、解像度が低い間引き基準画像Ge1と間引き参照画像Ge2との間における対応点探索処理の結果が、基準画像G1と参照画像G2との間における対応点探索処理に用いられたが、これに限られない。例えば、基準画像G1および参照画像G2から、解像度が多段階で低減された間引き基準画像および間引き参照画像が生成され、最も解像度が低い間引き基準画像と間引き参照画像との間における対応点探索処理から開始され、対応点探索処理の結果が、解像度が1段階高い画像を対象とした次段の対応点探索処理に用いられる処理が繰り返されても良い。
また、解像度を多段階で低減させる態様としては、例えば、横方向に640個の画素および縦方向に480個の画素が並ぶ基準画像および参照画像から、横方向に160個の画素および縦方向に480個の画素が並ぶ間引き基準画像および間引き参照画像、横方向に40個の画素および縦方向に480個の画素が並ぶ間引き基準画像および間引き参照画像、横方向に10個の画素および縦方向に480個の画素が並ぶ間引き基準画像および間引き参照画像が生成されるような態様が考えられる。
なお、ステップSe6に第4実施形態に係るステップSd4(図25)が採用される場合には、第4実施形態で言う「閾値」は、間引き度合いに応じて設定される。例えば、1段階の解像度の低減において横方向の画素数が1/4となるように画素が間引かれる場合には、閾値も1/4となる。例えば、比較領域W2の一辺の長さがL21である場合には、閾値は、L21/4の更に1/4であるL21/16となる。
◎また、上記第1〜4実施形態では、対応点探索手法として、位相限定相関法(POC;Phase Only Correlation)が採用されたが、これに限られない。例えば、対応点探索手法として、SAD(Sum of Absolute Differences;差分絶対値和)法等が採用されても良い。
◎また、上記第1〜4実施形態では、同一の被写体を同じタイミングでとらえた基準画像G1および参照画像G2について、各画素の視差が求められたが、これに限られない。例えば、同一の被写体を同じタイミングでとらえた基準画像G1と参照画像G2とを含む3以上の画像について、各画素の視差が求められても良い。このような構成によれば、2以上の画像の間において対応点を迅速且つ精度良く探索することが可能となる。