(57)【特許請求の範囲】
【請求項１】
ステレオカメラと、
前記ステレオカメラにより取得した画像を処理する処理装置とを含み、
前記処理装置は、
前記ステレオカメラの一方の画像の注目画素に対する他方の画像の探索領域内の各画素の類似度を表す指標値に基づいて前記注目画素に係る視差候補を抽出する処理を、複数の注目画素に対してそれぞれ実行する視差候補抽出手段と、
前記視差候補抽出手段により１つの注目画素に対して複数の視差候補を抽出した場合に、視差候補毎に、該１つの注目画素の周辺画素を前記注目画素として抽出された視差候補（以下、周辺画素内視差候補という）であって、前記視差候補との視差の差の絶対値が所定値以下である前記周辺画素内視差候補に係る指標値と、前記視差候補に係る指標値とに基づいて、複合指標値を生成する複合指標値生成手段と、
前記複合指標値生成手段により生成された前記複数の視差候補のそれぞれに係る複合指標値に基づいて、前記複数の視差候補のうちから前記１つの注目画素に係る視差を特定する視差特定手段とを備え、
前記複合指標値生成手段は、視差候補毎に、前記周辺画素内視差候補に係る指標値を、又は、該周辺画素内視差候補に係る指標値と所定の基準値との間の差の絶対値を、前記視差候補に係る指標値に加算して正規化する処理を実行することにより、前記複数の視差候補のそれぞれに係る複合指標値を生成することを特徴とする、ステレオ視差算出装置。
【請求項２】
前記指標値は、類似度が高いほど値が小さくなる第１指標値、又は、類似度が高いほど値が大きくなる第２指標値であり、
前記視差特定手段は、前記指標値が第１指標値である場合、前記複合指標値が最小となる視差候補を前記１つの注目画素に係る視差として特定し、前記指標値が第２指標値である場合、前記複合指標値が最大となる視差候補を前記１つの注目画素に係る視差として特定する、請求項１に記載のステレオ視差算出装置。
【請求項３】
前記指標値は、ＳＡＤ（差分絶対和：Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅｓ）であり、
前記視差特定手段は、前記複数の視差候補のうちから、前記複合指標値が最小となる視差候補を前記１つの注目画素に係る視差として特定する、請求項２に記載のステレオ視差算出装置。
【請求項４】
前記視差候補抽出手段は、視差を横軸として前記指標値を縦軸とした波形において前記指標値が極値となるときの視差であって、その極値を取る視差に対して左右それぞれ所定視差分ずれた各視差に係る前記指標値の少なくともいずれか一方が前記極値に対して第１所定閾値以上相違する視差について、前記注目画素に係る視差候補として抽出する、請求項１〜３のうちのいずれか１項に記載のステレオ視差算出装置。
【請求項５】
前記視差候補抽出手段は、視差を横軸として前記指標値を縦軸とした波形において前記指標値が極値となるときの視差であって、その極値を取る視差に対して左右それぞれ所定視差分ずれた各視差に係る前記指標値の双方が前記極値に対して第２所定閾値以上相違する視差について、前記注目画素に係る視差候補として抽出する、請求項１〜４のうちのいずれか１項に記載のステレオ視差算出装置。
【請求項６】
前記指標値は、類似度が高いほど値が小さくなる指標値であり、
前記視差候補抽出手段は、前記注目画素に係る各画素の前記指標値の平均値が第３所定閾値よりも小さい場合には、前記注目画素に係る視差候補を抽出しない、請求項１〜５のうちのいずれか１項に記載のステレオ視差算出装置。
【請求項７】
前記指標値は、類似度が高いほど値が大きくなる指標値であり、
前記視差候補抽出手段は、前記注目画素に係る各画素の前記指標値の平均値が第４所定閾値よりも大きい場合には、前記注目画素に係る視差候補を抽出しない、請求項１〜５のうちのいずれか１項に記載のステレオ視差算出装置。
【請求項８】
前記視差候補抽出手段は、視差を横軸として前記指標値を縦軸とした波形において前記指標値が極値となるときの視差であって、前記指標値の平均値に対する前記極値の差分の絶対値が第５所定閾値よりも小さい視差については、前記注目画素に係る視差候補として抽出しない、請求項１〜７のうちのいずれか１項に記載のステレオ視差算出装置。
【請求項９】
前記周辺画素は、前記注目画素を中心として対称に位置する複数の周辺画素を含む、請求項１〜８のうちのいずれか１項に記載のステレオ視差算出装置。
【請求項１０】
前記周辺画素は、前記注目画素を中心として縦長又は横長に位置する複数の周辺画素を含む、請求項１〜９のうちのいずれか１項に記載のステレオ視差算出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ステレオ視差算出装置に関する。
【背景技術】
【０００２】
従来から、ステレオカメラを用いたステレオマッチングにおいて、基準点に対するＳＡＤなどの評価値分布において複数の対応点候補が存在した場合、対応点が複数存在すると判定された基準点の評価値分布と、その基準点の周辺領域に存在する別の各基準点の評価値分布とを重畳して、評価値マップを生成し、評価値マップ上の最も直線の強い線分を抽出することで、一直線上に連続する柵などの距離を算出する視差算出装置が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−５８８１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の特許文献１に記載の構成は、評価値マップに対してハフ変換を行うことにより、座標変動値（視差の変動値）が最小である対応点候補を対応点として抽出する構成であり、ハフ変換を利用することに起因して処理負荷が高いという問題がある。また、視差の変動値（極小値の分布）のみが評価され、評価値（極小値）の大きさ自体が直接的に評価されないので（極小値であるか否かしか評価されていないので）、精度良く視差を算出できない虞もある。
【０００５】
そこで、本発明は、視差候補が複数存在する場合でも、処理負荷が高くならない態様で精度良く視差を算出することができるステレオ視差算出装置の提供を目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の一局面によれば、ステレオカメラと、
前記ステレオカメラにより取得した画像を処理する処理装置とを含み、
前記処理装置は、
前記ステレオカメラの一方の画像の注目画素に対する他方の画像の探索領域内の各画素の類似度を表す指標値に基づいて前記注目画素に係る視差候補を抽出する処理を、複数の注目画素に対してそれぞれ実行する視差候補抽出手段と、
前記視差候補抽出手段により１つの注目画素に対して複数の視差候補を抽出した場合に、視差候補毎に、該１つの注目画素の周辺画素を前記注目画素として抽出された視差候補（以下、周辺画素内視差候補という）であって、前記視差候補との視差の差の絶対値が所定値以下である前記周辺画素内視差候補に係る指標値と、前記視差候補に係る指標値とに基づいて、複合指標値を生成する複合指標値生成手段と、
前記複合指標値生成手段により生成された前記複数の視差候補のそれぞれに係る複合指標値に基づいて、前記複数の視差候補のうちから前記１つの注目画素に係る視差を特定する視差特定手段とを備え、
前記複合指標値生成手段は、視差候補毎に、前記周辺画素内視差候補に係る指標値を、又は、該周辺画素内視差候補に係る指標値と所定の基準値との間の差の絶対値を、前記視差候補に係る指標値に加算して正規化する処理を実行することにより、前記複数の視差候補のそれぞれに係る複合指標値を生成することを特徴とする、ステレオ視差算出装置が提供される。
【発明の効果】
【０００７】
本発明によれば、視差候補が複数存在する場合でも、処理負荷が高くならない態様で精度良く視差を算出することができるステレオ視差算出装置が得られる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施例によるステレオ視差算出装置１の要部構成を示した図である。
【図２】本実施例のステレオＥＣＵ２０により実現される主要処理の一例を示すフローチャートである。
【図３】ステレオカメラ１７の座標軸の一例を示す図である。
【図４】Ｓｏｂｅｌフィルタを用いたエッジ検出方法を模式的に示す図である。
【図５】ＳＡＤウインドウ７２を用いたＳＡＤ演算方法の一例を模式的に示す図である。
【図６】ＳＡＤ波形の一例を示す図である。
【図７】メディアンフィルタによるフィルタ処理を模式的に示す図である。
【図８】視差拡大処理を模式的に示す図である。
【図９】極小値判定条件（抽出条件）に関連する各種ＳＡＤ波形を示す図である。
【図１０】他の極小値判定条件（棄却条件）に関連する各種ＳＡＤ波形を示す図である。
【図１１】更なる他の極小値判定条件に関連するＳＡＤ波形を示す図である。
【図１２】参照画素設定方法の一例を示す図である。
【図１３】参照画素の参照順序の一例を示す図である。
【図１４】参照画素設定方法の他の一例を示す図である。
【図１５】参照画素設定方法の更なる他の一例を示す図である。
【図１６】参照画素設定方法の更なる他の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、本発明を実施するための最良の形態の説明を行う。
【００１０】
図１は、本発明の一実施例によるステレオ視差算出装置１の要部構成を示した図である。ステレオ視差算出装置１は、撮像装置１０とステレオＥＣＵ（Electric  Control  Unit）２０を備える。ＥＣＵは、中央処理演算装置（ＣＰＵ）、プログラムを記憶するＲＯＭ、データを一時的に記憶するＲＡＭ、入力インターフェース、出力インターフェースなどの複数の回路要素が一ユニットとして構成されたものである。
【００１１】
撮像装置１０は、撮像素子１１，１２やレンズ１５，１６を備えるステレオカメラ１７を含む。また、撮像装置１０は、カメラＣＰＵ１３、画像出力部１４等を有する。撮像素子１１，１２は、例えば、ＣＣＤ（Charge  Coupled  Device）で構成されている。カメラＣＰＵ１３は、ステレオＥＣＵ２０からの制御信号に基づいてカメラ側の露出等の制御を行う。カメラＣＰＵ１３は、出力インターフェースである画像出力部１４を介して、撮像素子１１，１２による撮像画像を画像信号としてステレオＥＣＵ２０に送信する。なお、撮像素子は２個に限らず、それ以上の数を有してもよい。また、撮像素子１１，１２やレンズ１５，１６は、必ずしも同一のカメラユニット内に配置される必要はなく、車両横方向に離間して配置されていればよい。
【００１２】
ステレオＥＣＵ２０は、入力インターフェースである画像入力部２１、幾何変換ＬＳＩ２２、画像処理ＬＳＩ２４、各処理部を監督するＳＶ−ＣＰＵ２３等を有する。
【００１３】
撮像装置１０の画像出力部１４から出力された画像信号は、ステレオＥＣＵ２０の入力インターフェースである画像入力部２１に送られる。画像出力部１４と画像入力部２１は、所定のデジタル伝送方式のインターフェースである。
【００１４】
画像信号を受けた画像入力部２１は、画像信号の画像データを幾何変換ＬＳＩ２２に送る。幾何変換ＬＳＩ２２は、キャリブレーションデータを用いて、ステレオ演算処理等に使用されるステレオカメラ１７の撮像画像から、撮像素子１１，１２やレンズ１５，１６等によるハード的な内部誤差要因（レンズ歪み、光軸ずれ、焦点距離ずれ及び撮像素子歪み等）の影響を取り除き、エピポーラ線を画像水平線にあわせる周知の処理を行う。幾何変換ＬＳＩ２２は、メモリ２５に記憶された幾何変換用のＬＵＴ（Look  Up  Table）に基づき入力画像を変換する。
【００１５】
画像処理ＬＳＩ２４は、幾何変換ＬＳＩ２２からの幾何変換された画像データに基づいて画像認識処理を行う。画像処理プログラムや処理すべき画像はメモリ２６に記録され、画像処理ＬＳＩ２４は、それらを読み込んで画像認識処理を行う。画像認識処理は、視差画像（視差情報）に基づく物体認識処理を含む。
【００１６】
視差画像に基づく物体認識処理は、例えば左右に配置された撮像素子１１，１２により撮像された一対の画像の相関を求め、同一物体に対する視差に基づいて三角測量の要領でその物体までの距離を算出するものである。つまり、画像処理ＬＳＩ２４は、撮像素子１１，１２により撮像された一組のステレオ画像から同一の撮像対象物が写っている部分を抽出し、一組のステレオ画像同士でその撮像対象物の同一点を対応づけ、対応づけられた点（対応点）のずれ量（視差）を求めることによって撮像対象物までの距離を算出する。撮像対象物が前方にある場合、撮像素子１１による画像と撮像素子１２による画像とを重ね合わせると、撮像対象物が左右横方向にずれる。そして、片方の画像を１画素ずつシフトしながら最も重なり合う位置を求める。このときシフトした画素数をｎとする。レンズの焦点距離をｆ、光軸間の距離をｍ、画素ピッチをｄとすると、撮像対象物までの距離Ｌは、Ｌ＝（ｆ・ｍ）／（ｎ・ｄ）という関係式が成立する。この（ｎ・ｄ）の項が視差である。視差算出方法の詳細については後述する。
【００１７】
ＳＶ−ＣＰＵ２３は、各処理部を監督（supervisor）するＣＰＵである。画像処理ＬＳＩ２４が兼ねても可である。ＳＶ−ＣＰＵ２３は、画像処理ＬＳＩ２４の処理画像に基づいて算出されたカメラ制御値（例えば、露出調整のパラメータであるシャッタスピード情報）を撮像装置１０内のカメラＣＰＵ１３に送信・指示する。
【００１８】
このような撮像装置１０やステレオＥＣＵ２０を車両に搭載することによって、路上の障害物等の画像認識情報を利用する制御に使用することが可能である。例えば、ＳＶ−ＣＰＵ２３が、車内ＬＡＮを介して、画像認識処理結果（障害物認識結果）を必要とする他のＥＣＵにその結果を送信すればよい。他のＥＣＵとは、例えば、ACC(オートクルーズコントロール）等の先行車追従システム、衝突回避・衝突軽減システムを制御するＥＣＵ、車線維持支援システムや車線逸脱警報システムを制御するＥＣＵ、車間ＥＣＵ、ブレーキＥＣＵ等である。
【００１９】
図２は、本実施例のステレオＥＣＵ２０により実現される主要処理の一例を示すフローチャートである。図２に示す処理ルーチンは、車両のイグニッションスイッチがオンの間、所定周期毎に繰り返し実行されてもよい。尚、所定周期は、ステレオカメラ１７からの画像の取り込み周期に対応してよい。
【００２０】
ステップ２０１では、ステレオカメラ１７の撮像素子１１，１２からの画像が取り込まれる。
【００２１】
ステップ２０２では、ステップ２０１で取得された画像（ステレオ画像データ）は、レンズの歪補正と光軸の平行化補正を受け、補正後のステレオ画像データに変換される。レンズの歪補正を行う方法は、任意の方法であってよく、例えば、レンズの設計値を用いた補正変換テーブルによる歪補正方法や、半径方向の歪曲収差のモデルを用いたパラメータ推定による補正方法等であってよい。また、光軸の平行化補正方法についても、任意の方法であってよく、例えば、ステレオカメラ１７の撮像素子１１，１２の共通視野に格子パターンを設置し、対応付けされた格子点位置からステレオカメラ１７の撮像素子１１，１２の相対関係を算出し、光軸の平行化補正を行う方法であってもよい。このような画像の平行化を行うことにより、視差（対応点）を探索するラインが画像のＸ軸（水平方向）と平行になるため、Ｘ軸のみに沿って視差を探索することができるので、効率的な視差探索が可能となる。即ち、図３に示すように、点Ｐｌに対応する点Ｐｒは必ず直線上に存在するため、この直線（エピポーラ線）上に沿って対応点を探索すればよく、画像の平行化を行なえば、エピポーラ線はＸ軸に平行となるため、Ｘ軸に沿って対応点を探索すればよく処理速度が高くなる。
【００２２】
ステップ２０３では、上記ステップ２０２の処理後のステレオ画像データ（入力画像）のサイズが縮小される。例えば、入力画像のサイズは、面積比１／４に縮小されてもよい。縮小方法は、任意であるが、例えば４画素の画素値の和を１／４にする方法であってよい。尚、入力画像のサイズを縮小する理由は、処理負荷の低減のためである。従って、ステレオＥＣＵ２０のスペック（処理能力）に余裕がある場合には、縮小処理は省略されてもよい。
【００２３】
ステップ２０４では、エッジ検出が行われる。エッジを検出する理由は、エッジを強調した画像の方が対応点を見つけやすいためである。但し、輝度値を直接用いる方法も可能であるし、エッジ強度と輝度値を足し合わせた（ブレンドさせた）画像を用いる方法も可能である。尚、本ステップ２０４の処理の結果、エッジ強度の絶対値が低い画素の場合には、空領域のようにテクスチャがほとんどない領域であるため、かかる画素に対しては、ステップ２０５以降の処理は実行されなくてもよい。この場合、空のようなテクスチャの少ない領域に対してステレオマッチングを行うことで誤マッチングする問題を抑制しつつ、処理負荷の低減を図ることができる。エッジ検出方法は、任意であるが、例えばＳｏｂｅｌフィルタを用いて縦エッジが検出される。この場合、図４に模式的に示すように、輝度値画像に対して、ソーベルフィルタ係数のウインドウ７０を左上から右下へと走査して、ソーベルフィルタ係数に従った演算を行い、演算結果を書き込むことでソーベルフィルタ画像が得られる。
【００２４】
ステップ２０５では、視差候補の抽出処理が実行される。ここでは、ステレオカメラ１７の撮像素子１１よる画像が右側の画像（右画像）であり、撮像素子１２よる画像が左側の画像（左画像）であり、右画像を基準画像とする。視差候補の抽出処理は、先ず、右画像を基準に、水平にＳＡＤ（差分絶対和：Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅｓ）演算を行い、視差毎のＳＡＤ値（ＳＡＤ波形）を得る。次いで、ＳＡＤ波形における極小値を持つ視差を視差候補として抽出する。
【００２５】
より具体的には、図５に示すように、右画像（右ソーベルフィルタ画像）内の注目画素（ｘ、ｙ）を中心としてＳＡＤウインドウ７２を生成し、ＳＡＤウインドウ７２を左画像（左ソーベルフィルタ画像）内の視差探索範囲内で水平方向に走査しながら、各位置（各視差）でＳＡＤ値（ＳＡＤ波形）を算出する。視差探索範囲は、右画像の注目画素（ｘ、ｙ）と同一のｙ座標を持ち、ｘ方向に所定幅を有する範囲であってよい。ＳＡＤ波形は、図６に示すように、注目画素に対応する可能性が高い対応点（視差）にて極小値となる。尚、図６に示す例では、２つの極小値が存在し、いずれの極小値が注目画素に対応する視差かについて更なる判定ロジックが必要である。視差候補の抽出方法としては、簡易的に、極小値が所定の閾値以下である場合、その極小値を視差候補として抽出してもよい。或いは、ＳＡＤ波形の形状（極小値周辺でのＳＡＤの変化態様や、平均ＳＡＤ等）が考慮されてもよい。視差候補の抽出方法の他の好ましい例については後述する。
【００２６】
ステップ２０６では、視差候補のうちから１つの視差候補を選択して視差画像が生成される。ここでは、上記ステップ２０５で得られた視差候補に基づく視差候補画像が想定される。視差候補画像とは、各画素に、上記ステップ２０５で抽出された視差候補（上述の如く複数の視差候補を含みうる）が対応付けられた画像である。即ち、各画素に対応付けられた視差候補は、上記ステップ２０５で各画素を注目画素としてそれぞれ抽出された視差候補である。
【００２７】
一例として、視差候補の選択処理は、先ず、注目画素の各視差候補のそれぞれに対して、以下の処理（１）−（３）を実行する。尚、注目画素の視差候補が１つしかない場合は、その視差候補がそのまま選択されてよいし、特定の場合は破棄されてもよい（即ち視差未検出とされてもよい）。
（１）注目画素の視差候補と、注目画素の周辺の参照画素の視差（又は視差候補）との差が所定閾値Ｔｈ１以内である場合には、その参照画素の視差候補に係るＳＡＤ値を、注目画素の視差候補に係るＳＡＤ値に加算する。所定閾値Ｔｈ１は、略同一の距離に存在すると看做せる物体に対して変動しうる視差の範囲に対応してよく、例えば±３ピクセルであってもよい。所定閾値Ｔｈ１は、注目画素と参照画素との距離（ピクセル数）に応じて可変されてもよい。このようにして、注目画素の視差候補毎に、加算されたＳＡＤ値（ＳＡＤ合計値）が得られる。尚、参照画素は、任意の態様で決定されてもよく、その数についても任意である。例えば、参照画素は、注目画素を中心とした所定サイズのブロック内の全画素であってもよいし、当該ブロック内の一部の画素であってもよい。参照画素の幾つかの好ましい設定例等については図１２等を参照して後述する。また、参照画素の視差候補は、本ステップ２０６の処理により既に視差が確定している場合があり、その場合は、確定している視差のＳＡＤ値が加算されればよい。また、本例では、加算するＳＡＤ値は、参照画素の視差（又は視差候補）に係るＳＡＤ値そのものであったが、参照画素の視差候補のＳＡＤ値と所定の基準値との差分（絶対値）が加算されてもよい。所定の基準値は、所定の固定値であってもよいし、注目画素の視差候補に係るＳＡＤ値であってもよい。後者の場合、注目画素の視差候補に係るＳＡＤ値に、参照画素の視差候補のＳＡＤ値と、注目画素の視差候補に係るＳＡＤ値との差分（絶対値）が加算されることになる。
（２）注目画素の各視差候補に対して算出されたそれぞれのＳＡＤ合計値（加算値）の正規化を行う。これは、ＳＡＤ値を加算する回数（即ち、（１）の条件を満たす参照画素の視差候補の数）は、各視差候補で異なりうるためである。正規化は、例えば、（ＳＡＤ値を加算した回数）＋１でＳＡＤ合計値を除算することにより実現されてもよい。即ち、正規化は、ＳＡＤ合計値を平均化して実現されてもよい。
（３）注目画素の各視差候補に対して算出された複数のＳＡＤ合計値（正規化済み）の中で最も小さいＳＡＤ合計値を探索し、その最小のＳＡＤ合計値を持つ視差候補を、注目画素の視差として特定（確定）する。この際、ＳＡＤ値を加算した回数が一定数に満たない視差候補については、同等に考慮されてもよいし、破棄されてもよい（探索対象から外されてよい）。破棄される構成では、ＳＡＤ値を加算した回数が一定数以上である複数のＳＡＤ合計値の中で最も小さいＳＡＤ合計値を持つ視差候補が注目画素の視差として特定されることになる。
【００２８】
このようにして、ステップ２０６では、ある注目画素に対して上記ステップ２０５で抽出された複数の視差候補のうちから、周辺画素の視差との連続性を評価して、１つの視差候補が視差として選択される。即ち、注目画素の周辺の視差候補（又は既に特定している場合は、視差）を参照し、視差の連続性を評価して、注目画素の視差が決定（特定）される。注目画素は、例えば左上から右下まで順次変更され、全ての画素について視差が特定される。
【００２９】
ステップ２０７では、上記ステップ２０６で得られた視差画像に対してメディアンフィルタがかけられる。例えば図７に示すように、３×３のメディアンフィルタを使用する場合、３×３の矩形ウインドウ７４を左上から右下へと走査しながら、矩形ウインドウ７４内の中央値を対象ピクセル（一例として、左上に位置するときの矩形ウインドウ７４に対応する対象ピクセルが符合７５にて指示）に書き込むことで、メディアンフィルタ済み視差画像が得られる。尚、矩形ウインドウ７４のサイズは、あくまで一例であり、他のサイズが使用されてもよい。
【００３０】
ステップ２０８では、縮小した画像での視差画像が元の画像サイズに拡大される。例えば、上記ステップ２０３にて入力画像を面積比１／４に縮小した場合には、図８に模式的に示すように、縮小画像の１画素に対し、その座標を２倍した位置の元画像４画素に２倍した視差データをコピーする。尚、上記ステップ２０３の縮小処理を行わない場合は、それに伴い、本ステップ２０８の処理は省略される。
【００３１】
ステップ２０９では、元画像のサイズに視差を拡大処理した整数視差を中心に、再度ＳＡＤ演算を行い、元画像サイズでの視差を得る。ＳＡＤ演算、極小値判定は共に上述の縮小画像サイズの場合と同様であってよい。ＳＡＤ再演算後、等角フィッティング等の方法によりサブピクセル算出を行い、最終出力が生成される。サブピクセルの算出方法は、任意であり、上記の方法以外の方法が利用されてもよい。尚、極小値が検出できない場合は、その座標の視差は未検出とされてよい。
【００３２】
ところで、視差算出対象物が、道路の路面、道路脇のコンクリート壁や段差（例えば土手）などのような、道路の長さ方向に連続して延在する物体である場合、上述の如く、視差候補（極小値）が複数検出されうる。この場合、その中から対応する視差を特定することは一般的に困難である。これに対して、本実施例によれば、上述の如く、複数の視差候補のうちから、周辺画素の視差との連続性を評価して、対応する視差を特定するので、高精度に視差を算出（特定）することができる。即ち、視差算出対象物が、路面や段差等のような道路の長さ方向に連続して延在する物体である場合、注目画素に対して複数の視差候補が抽出されやすくなるが、その注目画素の周辺画素（参照画素）は、注目画素に係る正しい視差と同様の視差候補と共に、信頼性の高いＳＡＤ値（適正な態様の極小値であり、値自体も小さいＳＡＤ値）とを持つ傾向がある。本実施例では、この点を利用して、周辺画素の視差候補の大きさ（注目画素の視差候補に対する差異の大きさ）及び周辺画素の視差候補に係るＳＡD値の大きさをも評価することで、注目画素に係る視差を精度良く特定することができる。
【００３３】
次に、図９乃至図１１を参照して、上述の図２のステップ２０５の処理で使用されよい極小値判定方法について説明する。
【００３４】
図９（Ａ）は、極小値（視差ｄ）の画素の左右１ピクセル（視差ｄ±１）のＳＡＤ値が極小値よりも大きく、且つ、少なくともいずれか一方のＳＡＤ値が極小値よりも所定閾値α１以上大きい場合を示す。図９（Ｂ）は、極小値の画素（視差ｄ）に対して左２ピクセル分（視差ｄ−１、ｄ−２）の各ＳＡＤ値が連続で下がり、同画素に対して右２ピクセル分（視差ｄ＋１、ｄ＋２）の各ＳＡＤ値が連続で上がり、且つ、極小値の画素に対して左右それぞれ２ピクセルずれた画素（視差ｄ−２、ｄ＋２）の双方の各ＳＡＤ値が極小値よりも所定閾値α２以上大きい場合を示す。図９（Ｃ）は、極小値の画素（視差ｄ）に対して左３ピクセル分（視差ｄ−１、ｄ−２、ｄ−３）の各ＳＡＤ値が連続で下がり、同画素に対して右３ピクセル分（視差ｄ＋１、ｄ＋２、ｄ＋３）の各ＳＡＤ値が連続で上がり、且つ、極小値の画素に対して左右それぞれ３ピクセルずれた画素（視差ｄ−３、ｄ＋３）の双方の各ＳＡＤ値が極小値よりも所定閾値α３以上大きい場合を示す。
【００３５】
一実施例では、図９（Ａ）、（Ｂ）及び（Ｃ）に示す各条件のいずれか１つを満たした場合に、当該極小値を視差候補として抽出してもよい。他の一実施例では、図９（Ａ）及び（Ｂ）に示す各条件のいずれか１つを満たした場合に、当該極小値を視差候補として抽出してもよいし、他の一実施例では、図９（Ｂ）及び（Ｃ）に示す各条件のいずれか１つを満たした場合に、当該極小値を視差候補として抽出してもよい。このように、図９（Ａ）、（Ｂ）及び（Ｃ）に示す各条件は、単独、又は、任意の組み合わせ（OR条件）で使用されてもよい。また、図９（Ｂ）及び（Ｃ）に示す各条件に関して、条件の一部が無くされてもよい（条件が緩くされてもよい）。例えば、図９（Ｂ）に示す条件は、極小値の画素（視差ｄ）に対して左右それぞれ２ピクセルずれた画素（視差ｄ−２、ｄ＋２）の双方の各ＳＡＤ値が極小値よりも所定閾値α２以上大きいという条件のみであってもよい。また、同様に、図９（Ｃ）に示す条件は、極小値の画素に対して左右それぞれ３ピクセルずれた画素（視差ｄ−３、ｄ＋３）の双方の各ＳＡＤ値が極小値よりも所定閾値α３以上大きいという条件のみであってもよい。或いは、図９（Ｂ）に示す条件は、極小値の画素（視差ｄ）に対して左２ピクセル分（視差ｄ−１、ｄ−２）の各ＳＡＤ値が連続で下がり、且つ、同画素に対して右２ピクセル分（視差ｄ＋１、ｄ＋２）の各ＳＡＤ値が連続で上がるという条件のみであってもよい。
【００３６】
このようにＳＡＤ波形における極小値周辺でのＳＡＤ値の変化態様を考慮することで、単に極小値が所定の閾値以下である場合に視差候補として抽出する場合に比べて、注目画素に対応する可能性が高い極小値（視差候補）を精度良く抽出することができる。
【００３７】
図１０（Ａ）は、ある注目画素に関する各視差のＳＡＤ値の平均（平均ＳＡＤ値）が所定閾値α４よりも小さい場合を示す。図１０（Ａ）に示す条件を満たした場合、このＳＡＤ波形に現れる全ての極小値は視差候補から外されてよい。これは、平均ＳＡＤ値が小さいことは、注目画素周辺のテクスチャが薄いことに起因するためである。図１０（Ｂ）は、平均ＳＡＤ値に対して極小値が占める割合（極小値／平均ＳＡＤ値）が所定閾値α５よりも大きい場合を示す。図１０（Ｂ）に示す条件を満たした場合、当該極小値は視差候補から外されてよい。これは、平均ＳＡＤ値に対して極小値が占める割合が大きいことは、基準画像の注目画素周辺に対して左画像に明確な対応点が存在しないことを意味するためである。尚、図１０（Ｂ）に示す条件は、平均ＳＡＤ値と極小値との差分の絶対値が所定閾値α６より小さい場合に含まれる。
【００３８】
このようにＳＡＤ波形における平均ＳＡＤやそれと極小値との関係を考慮することで、注目画素に対応する可能性が低い極小値を効率的に精度良く間引くことができる。
【００３９】
尚、図１０（Ａ）及び（Ｂ）に示す各条件は、上述の図９（Ａ）、（Ｂ）及び（Ｃ）に示す各条件と任意の態様で組み合わせて使用されてもよい。例えば、図１０（Ａ）及び（Ｂ）に示す各条件で不適切な極小値を破棄した上で、上述の図９（Ａ）、（Ｂ）及び（Ｃ）に示す各条件を判断してもよい。
【００４０】
また、これらの各所定閾値α１〜α５（又はα６）は、試験により適合されてよい。即ち、所望の視差算出対象物が存在する多様なシーンで撮像された画像に基づいて、真の視差に対応した視差候補が確実に抽出されるように、試験により適合されてよい。尚、図９（Ａ）、（Ｂ）及び（Ｃ）に示す各条件のいずれか１つを満たした場合に、当該極小値を視差候補として抽出する構成では、所定閾値α１〜α３は、好ましくは、α１＞α２＞α３の関係を有する。これにより、不要な視差候補を抽出するのを防止しつつ、必要な視差候補をより多く抽出することが可能である。
【００４１】
図１１は、ＳＡＤ波形に極小値が６つ以上現れる場合を示す。図１１に示す条件を満たした場合、小さい順に５つの極小値が視差候補として抽出されてもよい。この場合、抽出されない極小値は破棄される。尚、図１１に示す例では、抽出数（登録数）が最大５つであるが、登録数は、ステレオＥＣＵ２０のスペック（マイコンスペック）に応じて任意であってよい。
【００４２】
尚、図１１に示す条件は、上述の図９（Ａ）、（Ｂ）及び（Ｃ）に示す各条件や図１０（Ａ）及び（Ｂ）に示す各条件と任意の態様で組み合わせて使用されてもよい。例えば、図１０（Ａ）及び（Ｂ）に示す各条件で不適切な極小値を棄却した上で、図１１の条件が適用されてもよい。この場合、図１０（Ａ）及び（Ｂ）に示す各条件で不適切な極小値を棄却して得られる残りの極小値が６つ以上の場合に、小さい順に５つの極小値が視差候補として抽出されることになる。また、図９（Ａ）、（Ｂ）及び（Ｃ）に示す各条件により抽出した極小値が６つ以上の場合に、小さい順に５つの極小値が視差候補として抽出されてもよい。
【００４３】
次に、図１２乃至図１６を参照して、上述の図２のステップ２０６の処理で使用されよい参照画素設定方法について説明する。
【００４４】
図１２は、参照画素設定方法の一例を示す図である。図１２には、注目画素１１０を中心として２３×２３ピクセルのブロックが図示される。参照画素１１２は、図１２に示すように、注目画素１１０を中心として対称に設定されてもよい。図１２に示す例では、注目画素１１０を中心（原点）としたときの第１象限領域については、Ｘ軸方向と、Ｙ軸方向と、斜め４５度方向に離散的に参照画素１１２が設定されている。第２、第３、第４象限についても同様である。尚、参照画素１１２の数が大きいほど処理負荷が増加するが、ステレオＥＣＵ２０のスペックに応じて参照画素１１２の数は増減されてもよい。また、ブロックのサイズも任意であり、ステレオＥＣＵ２０のスペックに応じて増減されてもよいし、視差算出対象物のサイズに応じて増減されてもよい。
【００４５】
図１３は、参照画素の参照順序の一例を示す図である。図１３に示す例では、参照画素１１２は、図１２に示した場合と同様の態様で、注目画素１１０を中心として対称に設定されている。ここで、上述の図２のステップ２０６の処理において、処理負荷の低減のために、ＳＡＤ値を合計したい参照画素数が一定数以上越えた場合に、ＳＡＤ値の和を中止してもよい。この場合、図１３にて矢印で模式的に示すように、注目画素から距離が遠い参照画素から順に参照しながらＳＡＤ値の加算を行うこととする。即ち、注目画素から距離が遠い参照画素から順に参照しながらＳＡＤ値の加算を行い、合計した参照画素数（又は合計したＳＡＤ値の数）が一定数以上越えた場合に、その時点でＳＡＤ値の和を中止する（ＳＡＤ合計値を確定する）。これにより、処理効率を高めつつ、より広範囲の周辺の視差の連続性を評価することができる。
【００４６】
図１４は、参照画素設定方法の他の一例を示す図である。図１４（Ａ）は、前方に道路があり、道路の両側に障害物が無いシーンを概略的に示し、図１４（Ｂ）は、図１４（Ａ）に適した参照画素設定方法を示す図である。尚、図１４（Ａ）には、図１４（Ｂ）により設定された参照画素（７×２３ピクセルの横長のブロック）の配置例が図示されている。このブロック（ウインドウ）は、注目画素毎に順次移動（走査）される。
【００４７】
図１４（Ａ）に模式的に示すように、前方に延在する道路の両側に障害物が無いシーンでは、画像上でＦＯＥ（無限遠点：Focus  of  Expansion）より下の領域では、上部ほど視差が小さく、下部ほど視差が大きくなる。このため、路面での視差精度を高めるために、図１４（Ｂ）に示すように、垂直方向よりも水平方向に広い範囲で参照画素が設定されてもよい。図１４（Ｂ）に示す例では、７×２３ピクセルの横長のブロックが図示される。参照画素１１２は、図１４（Ｂ）に示すように、注目画素１１０を中心として対称に設定されてもよい。図１４（Ｂ）に示す例では、注目画素１１０を中心（原点）としてＸ軸方向と、Ｙ軸方向とに離散的に参照画素１１２が設定され、Ｘ方向の方がＹ軸方向よりも参照画素１１２が多く設定されている。尚、参照画素１１２の数が大きいほど処理負荷が増加するが、ステレオＥＣＵ２０のスペックに応じて参照画素１１２の数は増減されてもよい。また、ブロックのサイズも任意であり、ステレオＥＣＵ２０のスペックに応じて増減されてもよいし、視差算出対象物のサイズ（この場合、道路の幅）に応じて増減されてもよい。
【００４８】
尚、図１４に示す例において、路面の視差算出精度を更に高めるために、白線認識等の任意の手段によりＦＯＥや道路領域を検出してもよい。この場合、道路領域内の注目画素に対しては、道路領域内に参照画素が存在する態様で、参照画素が設定されてもよい。
【００４９】
図１５は、参照画素設定方法の更なる他の一例を示す図である。図１５（Ａ）は、道路の両側に壁（例えばコンクリート壁）があるシーンを概略的に示し、図１５（Ｂ）は、図１５（Ａ）に適した参照画素設定方法を示す図である。尚、図１５（Ａ）には、図１５（Ｂ）により設定された参照画素（２３×７ピクセルの縦長のブロック）の配置例（２例）が図示されている。このブロック（ウインドウ）は、注目画素毎に順次移動（走査）される。
【００５０】
図１５（Ａ）に模式的に示すように、前方に延在する道路の両側に壁があるシーンでは、画像の外側ほど視差が大きく、内側（中心側）ほど視差が小さくなる。このため、道路両側にある構造物に対する視差精度を高めるために、図１５（Ｂ）に示すように、水平方向よりも垂直方向に広い範囲で参照画素が設定されてもよい。図１５（Ｂ）に示す例では、２３×７ピクセルの縦長のブロックが図示される。参照画素１１２は、図１５（Ｂ）に示すように、注目画素１１０を中心として対称に設定されてもよい。図１５（Ｂ）に示す例では、注目画素１１０を中心（原点）としてＸ軸方向と、Ｙ軸方向とに離散的に参照画素１１２が設定され、Ｙ方向の方がＸ軸方向よりも参照画素１１２が多く設定されている。尚、参照画素１１２の数が大きいほど処理負荷が増加するが、ステレオＥＣＵ２０のスペックに応じて参照画素１１２の数は増減されてもよい。また、ブロックのサイズも任意であり、ステレオＥＣＵ２０のスペックに応じて増減されてもよいし、視差算出対象物のサイズ（例えば壁の高さ）に応じて増減されてもよい。
【００５１】
尚、図１５に示す例において、道路両側にある構造物に対する視差精度を更に高めるために、前回フレームの視差情報を３次元情報（高さ）に変換して、一定高さ以上の領域に視差探索範囲を限定してもよい。即ち、道路両側にある構造物領域内の注目画素に対しては、同構造物領域内に参照画素が存在する態様で、参照画素が設定されてもよい。
【００５２】
図１６は、参照画素設定方法の更なる他の一例を示す図である。図１６（Ａ）は、図１５（Ｂ）と同様、道路の両側に壁があるシーンを概略的に示し、図１６（Ｂ）は、図１６（Ａ）に適した参照画素設定方法を示す図である。尚、図１６（Ａ）には、図１６（Ｂ）により設定された参照画素（十字状のブロック）の配置例（３例）が図示されている。このブロック（ウインドウ）は、注目画素毎に順次移動（走査）される。
【００５３】
図１６（Ａ）に模式的に示すように、前方に延在する道路の両側に壁があるシーンでは、画像上でＦＯＥ（無限遠点）より下の領域では、上部ほど視差が小さく、下部ほど視差が大きくなる。また、画像の外側ほど視差が大きく、内側（中心側）ほど視差が小さくなる。このため、路面での視差精度と共に道路両側にある構造物に対する視差精度を高めるために、図１６（Ｂ）に示すように、十字状の範囲で参照画素が設定されてもよい。即ち、図１４（Ｂ）に示す範囲と図１５（Ｂ）に示す範囲とを組み合わせた範囲で参照画素が設定されてもよい。尚、参照画素１１２の数が大きいほど処理負荷が増加するが、ステレオＥＣＵ２０のスペックに応じて参照画素１１２の数は増減されてもよい。また、ブロックのサイズも任意であり、ステレオＥＣＵ２０のスペックに応じて増減されてもよいし、視差算出対象物のサイズに応じて増減されてもよい。
【００５４】
尚、図１４乃至図１６に示す参照画素設定方法は、各シーンを予測又は検出して、使い分けることもできる。例えば前フレームの情報から、前方に延在する道路の両側に壁があるシーンが検出された場合には、図１５に示した参照画素設定方法が使用され、両側に壁がないシーンが検出された場合には、図１４に示した参照画素設定方法が使用されてもよい。また、例えば前フレームの情報等から、道路の領域と壁の領域とが予測できる場合には、前方に延在する道路の両側に壁があるシーンが検出された場合に、道路の領域に対しては図１４に示した参照画素設定方法が使用され、壁の領域に対しては図１５に示した参照画素設定方法が使用されるようにしてもよい。
【００５５】
以上、本発明の好ましい実施例について詳説したが、本発明は、上述した実施例に制限されることはなく、本発明の範囲を逸脱することなく、上述した実施例に種々の変形及び置換を加えることができる。
【００５６】
例えば、上述した実施例では、ＳＡＤを用いているが、差分二乗和（ＳＳＤ：Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅｓ）、正規化相互相関（ＮＣＣ：Ｎｏｒｍａｌｉｚｅｄ  Ｃｒｏｓｓ  Ｃｏｒｒｅｌａｔｉｏｎ）などの他の指標値を同様に使用することができる。例えば、正規化相関（ＮＣＣ）など、類似度が高いほど値が大きくなる指標値は、極大値が上述の極小値と実質的に同様の態様（但し、大小逆となる態様）で判定され、指標値合計値（例えばＮＣＣ合計値）が最大となる視差候補が特定されてもよい。例えば極大値の判定に関して、ＮＣＣを用いる場合、例えば図９（Ａ）に示す条件は、極大値（視差ｄ）の画素の左右１ピクセル（視差ｄ±１）のＮＣＣ値が極大値よりも小さく、且つ、少なくともいずれか一方のＮＣＣ値が極大値よりも所定閾値α７以上小さい場合と置き換えられてよい。また、例えば図１０（Ａ）に示す条件は、ある注目画素に関する各視差のＮＣＣ値の平均（平均ＮＣＣ値）が所定閾値α８よりも大きい場合と置き換えられてよい。或いは、類似度が高いほど値が大きくなる指標値は、例えば逆数にしてＳＡＤと同様の態様で利用されてもよい。
【００５７】
また、図１には、特定のハードウェア構成を備えるステレオ視差算出装置１が開示されているが、ステレオ視差算出装置１のハードウェア構成は任意であってよい。また、図１に示すハードウェア構成において、カメラＣＰＵ１３及びステレオＥＣＵ２０の機能分担も任意であり、一方の機能の一部又は全部が他方により実現されてもよい。
【００５８】
また、上述した実施例では、ステレオカメラ１７の撮像素子１１，１２は左右方向に離間して配置されているが、上下方向に離間して配置されてもよい。また、３つ以上の撮像素子が使用されてもよい。
【符号の説明】
【００５９】
１    ステレオ視差算出装置
１０    撮像装置
１１，１２    撮像素子
１３    カメラＣＰＵ
１４    画像出力部
１５，１６    レンズ
１７    ステレオカメラ
２０    ステレオＥＣＵ
２１    画像入力部
２２    幾何変換ＬＳＩ
２３    ＳＶ−ＣＰＵ
２４    画像処理ＬＳＩ
２５，２６    メモリ
２８    ＥＥＰＲＯＭ
７２    ＳＡＤウインドウ
１１０    注目画素
１１２    参照画素
【図１】
0005752618.tif 000002
【図２】
0005752618.tif 000003
【図３】
0005752618.tif 000004
【図４】
0005752618.tif 000005
【図５】
0005752618.tif 000006
【図６】
0005752618.tif 000007
【図７】
0005752618.tif 000008
【図８】
0005752618.tif 000009
【図９】
0005752618.tif 000010
【図１０】
0005752618.tif 000011
【図１１】
0005752618.tif 000012
【図１２】
0005752618.tif 000013
【図１３】
0005752618.tif 000014
【図１４】
0005752618.tif 000015
【図１５】
0005752618.tif 000016
【図１６】
0005752618.tif 000017