(57)【要約】【課題】妥当な視差を算出できる。【解決手段】演算装置は、第１のカメラで撮影して得られた画像である基準画像、および第２のカメラで撮影して得られた画像である参照画像を用いて、第１のブロック単位で基準画像における視差を算出して仮距離画像を生成する第１視差探索部と、仮距離画像から視差の算出に失敗した無効領域を特定する視差無効判定部と、仮距離画像を用いて無効領域の視差の候補を含む探索条件を生成する条件生成部と、基準画像、参照画像、および探索条件を用いて、無効領域の視差を第１のブロック以下のサイズである第２のブロック単位で算出する第２視差探索部とを備える。【選択図】図２
2020140344.tif 000002
【特許請求の範囲】
【請求項１】
第１のカメラで撮影して得られた画像である基準画像、および第２のカメラで撮影して得られた画像である参照画像を用いて、第１のブロック単位で前記基準画像における視差を算出して仮距離画像を生成する第１視差探索部と、
前記仮距離画像から視差の算出に失敗した無効領域を特定する視差無効判定部と、
前記仮距離画像を用いて前記無効領域の視差の候補を含む探索条件を生成する条件生成部と、
前記基準画像、前記参照画像、および前記探索条件を用いて、前記無効領域の視差を前記第１のブロック以下のサイズである第２のブロック単位で算出する第２視差探索部とを備える演算装置。
【請求項２】
請求項１に記載の演算装置において、
前記第２視差探索部は、前記視差の候補から所定の範囲を探索範囲として前記無効領域の視差を第２のブロック単位で探索する演算装置。
【請求項３】
請求項１に記載の演算装置において、
前記第１のブロックと前記第２のブロックのサイズは同一であり、
前記第１視差探索部は、前記無効領域の視差の候補である候補値を前記第２視差探索部に出力し、
前記第２視差探索部は、前記視差の候補を用いて前記候補値から１つを選択して前記無効領域の視差とする演算装置。
【請求項４】
請求項１に記載の演算装置において、
前記第２のブロックのサイズは前記第１のブロックのサイズよりも小さく、
前記第１視差探索部は、前記無効領域の視差の候補である候補値を前記第２視差探索部に出力し、
前記第２視差探索部は、前記視差の候補を用いて前記候補値から１つを選択して仮視差とし、前記無効領域に含まれる前記第２のブロックの視差を前記仮視差から所定の範囲を探索範囲として算出する演算装置。
【請求項５】
請求項１に記載の演算装置において、
前記第１のブロックと前記第２のブロックのサイズは同一である演算装置。
【請求項６】
請求項２に記載の演算装置において、
前記第２のブロックのサイズは前記第１のブロックのサイズよりも小さく、
前記第２視差探索部は、前記無効領域以外における前記第２のブロック単位の視差は、算出対象である前記第２のブロックを含む前記第１のブロックの視差から所定の範囲を探索範囲として視差を算出する演算装置。
【請求項７】
請求項１に記載の演算装置において、
前記条件生成部は、前記無効領域に隣接する領域の視差を前記無効領域の視差の候補とする演算装置。
【請求項８】
請求項１に記載の演算装置において、
前記基準画像および前記参照画像のいずれも、鉛直方向および水平方向に広がりのある３次元空間を撮影して得られた画像であり、
前記条件生成部は、前記無効領域に隣接する領域であって、前記無効領域の水平方向に存在する領域の視差を前記無効領域の視差の候補とする演算装置。
【請求項９】
請求項８に記載の演算装置において、
前記演算装置、前記第１のカメラ、前記第２のカメラは車両に搭載され、
前記条件生成部は、前記車両の車両情報に基づき水平方向を特定する演算装置。
【請求項１０】
第１のカメラで撮影して得られた画像である基準画像、および第２のカメラで撮影して得られた画像である参照画像が入力される演算装置が実行する視差算出方法であって、前記演算装置が、
前記基準画像および前記参照画像を用いて、第１のブロック単位で前記基準画像における視差を算出して仮距離画像を生成することと、
前記仮距離画像から視差の算出に失敗した無効領域を特定することと、
前記仮距離画像を用いて前記無効領域の視差の候補を含む探索条件を生成することと、
前記基準画像、前記参照画像、および前記探索条件を用いて、前記無効領域の視差を前記第１のブロック以下のサイズである第２のブロック単位で算出することとを含む視差算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算装置、および視差算出方法に関する。
【背景技術】
【０００２】
一対のカメラを有するステレオカメラで撮影されたステレオ画像を用いて、カメラ視野内に存在する物体までの距離を三角測量の原理で計測する位置測定装置が知られている。三角測量の原理とはすなわち、左右のカメラによって撮影された同一の物体の像の位置のずれ、すなわち視差を用いて、カメラからその物体までの距離を算出するものである。視差の導出は、物体の一方の画像上における像が、他方の画像上のどこに存在するかを特定することによって実現する。
これまでに様々な視差の導出手法が提案されている。たとえば古典的手法では、一方の画像中の複数画素からなる領域に対して、他方の画像中で最も非類似度の低い領域を探索するブロックマッチングが知られている。視差計算の密度は、複数画素に対して１視差、１画素に対して１視差など用途に応じて決定することができる。ただし、非類似度の低い領域を探索する過程で、非類似度が低い領域が複数存在した場合に、いずれが正しい視差か決定できず、その領域の視差を無効と判定せざるを得ない問題、いわゆる無効視差の問題が存在する。視差無効の解消に関して、たとえば特許文献１の手法が知られている。特許文献１には、撮像画像の各画素の特徴量に基づいて、有効画素を決定する有効画素決定部と、前記撮像画像に対応する視差画像における、前記有効画素に相当する有効視差の近傍の有効視差でない視差を有効化する有効化部とを有する視差画像生成装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−５４４８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載されている発明では、視差が算出できなかったブロックの非類似度計算結果を全く用いずに視差を決定しているので、決定された視差の有効性や精度に問題が生じうる。
【課題を解決するための手段】
【０００５】
本発明の第１の態様による演算装置は、第１のカメラで撮影して得られた画像である基準画像、および第２のカメラで撮影して得られた画像である参照画像を用いて、第１のブロック単位で前記基準画像における視差を算出して仮距離画像を生成する第１視差探索部と、前記仮距離画像から視差の算出に失敗した無効領域を特定する視差無効判定部と、前記仮距離画像を用いて前記無効領域の視差の候補を含む探索条件を生成する条件生成部と、前記基準画像、前記参照画像、および前記探索条件を用いて、前記無効領域の視差を前記第１のブロック以下のサイズである第２のブロック単位で算出する第２視差探索部とを備える。
本発明の第２の態様による視差算出方法は、第１のカメラで撮影して得られた画像である基準画像、および第２のカメラで撮影して得られた画像である参照画像が入力される演算装置が実行する視差算出方法であって、前記演算装置が、前記基準画像および前記参照画像を用いて、第１のブロック単位で前記基準画像における視差を算出して仮距離画像を生成することと、前記仮距離画像から視差の算出に失敗した無効領域を特定することと、前記仮距離画像を用いて前記無効領域の視差の候補を含む探索条件を生成することと、前記基準画像、前記参照画像、および前記探索条件を用いて、前記無効領域の視差を前記第１のブロック以下のサイズである第２のブロック単位で算出することとを含む。
【発明の効果】
【０００６】
本発明によれば、妥当な視差を算出できる。
【図面の簡単な説明】
【０００７】
【図１】車両９のハードウエア構成図
【図２】第１の実施の形態における演算装置１の機能ブロック図
【図３】第１視差探索部１０３Ａによる視差の決定を説明する概念図
【図４】条件生成部１０６および第２視差探索部１０３Ｂの動作を説明する概念図
【図５】第１の実施の形態における演算装置１の動作を表すフローチャート
【図６】変形例２における演算装置１の機能構成図
【図７】変形例３において条件生成部１０６が参照する画素ブロックを示す図
【図８】条件生成部１０６が無効領域１０９に水平方向に隣接する画素ブロックの視差の値を基準値とする具体例を示す図
【図９】条件生成部１０６が無効領域に隣接する画素ブロック以外を参照する例を示す図
【図１０】変形例５における演算装置１の機能構成図
【図１１】変形例５における演算装置１の動作を表すフローチャート
【図１２】変形例６における演算装置１の機能構成図
【図１３】変形例６における第４視差探索部１０３Ｄの動作を説明する図
【図１４】第２の実施の形態における演算装置１Ａの機能ブロック図
【図１５】第２の実施の形態における演算装置１Ａの動作を示すフローチャート
【図１６】第３の実施の形態における車両９Ｂのハードウエア構成図
【図１７】第２の実施の形態において条件生成部１０６Ｂが参照する画素ブロックを示す図
【発明を実施するための形態】
【０００８】
―第１の実施の形態―
以下、図１〜図５を参照して、本発明に係る演算装置１の第１の実施の形態を説明する。
【０００９】
（構成）
図１は、本発明に係る演算装置１を搭載する車両９のハードウエア構成図である。車両９は、演算装置１と、左カメラ２と、右カメラ３と、車両制御装置４とを備える。演算装置１および車両制御装置４は電子制御装置（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）である。左カメラ２および右カメラ３は、車両９の周囲を撮影して得られた撮影画像を演算装置１に出力する。左カメラ２および右カメラ３は、水平方向に並んで配置される。以下では、左カメラ２の撮影画像を左画像２１、右カメラ３の撮影画像を右画像３１と呼ぶ。また左カメラ２を「第１のカメラ」と呼び、右カメラ３を「第２のカメラ」と呼ぶこともある。
【００１０】
演算装置１は、中央演算装置であるＣＰＵ１１、読み出し専用の記憶装置であるＲＯＭ１２、読み書き可能な記憶装置であるＲＡＭ１３、および左画像２１や右画像３１を受信するインタフェース１４を備える。ＣＰＵ１１がＲＯＭ１２に格納されるプログラムをＲＡＭ１３に展開して実行することで後述する複数の機能を実現する。ただし演算装置１は、ＣＰＵ１１、ＲＯＭ１２、およびＲＡＭ１３の組み合わせの代わりに、書き換え可能な論理回路であるＦＰＧＡ（Field  Programmable  Gate  Array）や特定用途向け集積回路であるＡＳＩＣ（Application  Specific  Integrated  Circuit）により実現されてもよい。また演算装置１は、ＣＰＵ１１、ＲＯＭ１２、およびＲＡＭ１３の組み合わせの代わりに、異なる構成の組み合わせ、たとえばＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３とＦＰＧＡの組み合わせにより実現されてもよい。
【００１１】
演算装置１は、入力される左画像２１および右画像３１を用いて仮距離画像４１を作成し、車両制御装置４に出力する。演算装置１が仮距離画像４１を作成する過程は図２以降を参照してのちに詳述する。仮距離画像４１とは、二次元平面における距離の遠近を色の濃淡や色の彩度で表したものである。ただし本実施の形態では、仮距離画像４１の各画素には濃淡を表す「０」〜「２５５」の整数値が格納される。このうち「０」は、距離の算出が不可能であったことを示す特別な数値である。
【００１２】
仮距離画像４１に示される範囲は、左画像２１および右画像３１と略同一である。ただし仮距離画像４１に示される範囲は、左画像２１および右画像３１に示される範囲よりも狭くてもよい。仮距離画像４１の画素数は、左画像２１および右画像３１と略同一でもよいし、数分の一程度でもよい。
【００１３】
車両制御装置４は、演算装置１から入力される仮距離画像４１を用いて車両９を制御する。車両制御装置４はたとえば、仮距離画像４１から車両９の周辺に存在する障害物を検出し、車両９と検出した障害物との衝突を避けるように車両９を制御する。車両制御装置４による車両９の制御は、たとえば車両制御装置４が不図示の操舵装置および不図示の制動装置に動作指令を出力することにより実現される。
【００１４】
図２は、演算装置１が有する機能を機能ブロックとして示した機能ブロック図である。演算装置１はその機能として、第１視差探索部１０３Ａと、第２視差探索部１０３Ｂと、視差無効判定部１０５と、条件生成部１０６とを備える。第１視差探索部１０３Ａ、第２視差探索部１０３Ｂ、視差無効判定部１０５、および条件生成部１０６は、前述のＣＰＵ１１によりソフトウエア処理により実現される。なお以下に説明する処理により生成される情報、たとえば仮距離画像４１、無効領域を示す情報４２、探索条件４３、および距離画像４４は、ＲＡＭ１３に一時的に保存される。
【００１５】
第１視差探索部１０３Ａには、左画像２１および右画像３１が入力される。第１視差探索部１０３Ａは、まず左画像２１および右画像３１のいずれか一方を基準画像、他方を参照画像とする。第１視差探索部１０３Ａは基準画像として左画像２１と右画像３１のいずれを選択してもよいが、この選択は本実施の形態では一貫させる。そして第１視差探索部１０３Ａは、基準画像の画素ブロックに対応する参照画像の領域を探索する。この探索には、既知の手法を用いる。たとえば第１視差探索部１０３ＡはＺＳＡＤ（Zero-mean  Sum  of  Absolute  Differences）により非類似度を算出し、ＺＳＡＤ値が最も小さい参照画像上の領域を探索する。
【００１６】
第１視差探索部１０３Ａは、エピポーラ線上のすべての領域を探索してもよいし、エピポーラ線上の所定の範囲のみを探索してもよい。第１視差探索部１０３Ａが探索を行う画素ブロックの大きさは、１画素ｘ１画素、すなわち１画素ごとでもよいし、４画素ｘ４画素、８画素ｘ８画素、１６画素ｘ２５画素などでもよい。なおこの画素ブロックのサイズのことを「第１の画素ブロック」のサイズとも呼ぶ。第１視差探索部１０３Ａは、ＺＳＡＤの代わりにＳＡＤ（Sum  of  Absolute  Differences）、ＳＳＤ（Sum  of  Squared  Differences）、ＺＳＳＤ（Zero-mean  Sum  of  Squared  Differences）、ＮＣＣ（Normalized  Cross  Correlation）、およびＺＮＣＣ（Zero-mean  Normalized  Cross  Correlation）のいずれかを用いてもよい。
【００１７】
第１視差探索部１０３Ａは、画素ブロックごとに視差を算出して仮距離画像４１を作成する。ただし第１視差探索部１０３Ａは、視差が決定できない場合にはその画素ブロックに対応する仮距離画像４１の画素値を視差が算出できないことを示す特別な値、たとえば「０」に設定する。なお第１視差探索部１０３Ａは、算出した視差をそのまま仮距離画像４１の各画素の値としてもよいし、最小値〜最大値が１〜２５５となるように視差の値をスケール変換してもよい。なお、第１視差探索部１０３Ａの演算が第１の画素ブロックを単位として行われるので、出力される仮距離画像４１も第１の画素ブロックの単位となる。
【００１８】
視差無効判定部１０５は、仮距離画像４１において視差が無効にされている画素、すなわち画素値が「０」に設定されている画素を仮距離画像４１から特定する。以下では、視差が無効にされている画素の領域を「無効領域」と呼ぶ。視差無効判定部１０５は、無効領域を示す情報４２を条件生成部１０６に出力する。条件生成部１０６は、視差無効判定部１０５から無効領域を示す情報４２が入力されると、第１視差探索部１０３Ａが生成した仮距離画像４１を用いて探索条件４３を生成して第２視差探索部１０３Ｂに出力する。条件生成部１０６の動作は後述する。
【００１９】
第２視差探索部１０３Ｂには、左画像２１、右画像３１、および探索条件４３が入力される。第２視差探索部１０３Ｂは、探索条件４３にしたがって基準画像の無効領域に対応する参照画像の領域を探索する。第２視差探索部１０３Ｂの詳細な動作は後述するが、第２視差探索部１０３Ｂは第１視差探索部１０３Ａと同様にＺＳＡＤなどを用いる。第２視差探索部１０３Ｂは演算により距離画像４４を生成して車両制御装置４に出力する。第２視差探索部１０３Ｂは、第１視差探索部１０３Ａが視差を算出できた画素ブロックの視差の値を再計算してもよいし、第１視差探索部１０３Ａから仮距離画像４１を受信して計算結果を利用してもよい。
【００２０】
図３は、第１視差探索部１０３Ａによる視差の決定を説明する概念図である。図３（ａ）に左画像２１と右画像３１が示されている。この例では、基準画像である左画像２１の領域９０１に対応する参照画像、すなわち右画像３１の領域を探索している。本実施の形態では左カメラ２と右カメラ３が水平方向に並んで設置されているので、エピポーラ線は符号９０２で示す水平方向に延びる破線である。左画像２１および右画像３１の図示横方向の幅が１０００画素であり、領域９０１の中心が左端から４００画素目の場合に、参照画像である右画像３１には図示するように−４００〜＋６００の数値が振られる。たとえば参照画像の左から５００画素を中心とする領域９０３が基準画像の領域９０１に対応すると判断された場合には、視差は「１００」と算出される。
【００２１】
図３（ｂ）は、参照画像の破線９０２上の位置ごとの領域９０１との非類似度の一例を示す図である。図３（ｂ）に示す例では、非類似度が最小となるピークが存在し、他に近い値のピークが存在しないため、領域９０１の視差が「１００」と算出される。図３（ｃ）は、参照画像の破線９０２上の位置ごとの領域９０１との非類似度の別の一例を示す図である。図３（ｂ）に示す例では、非類似度が最小となるピークが２つ存在しそれらの値が略同一のため、領域９０１の視差が「−１８０」と「＋１１５」のいずれであるのかが決定できない。このような場合には第１視差探索部１０３Ａは、領域９０１は無効領域として仮距離画像４１の領域９０１に対応する位置には「０」を設定する。
【００２２】
図４は、条件生成部１０６および第２視差探索部１０３Ｂの動作を説明する概念図である。条件生成部１０６は、視差無効判定部１０５から無効領域を示す情報４２を受信すると、仮距離画像４１を参照して無効領域の視差の候補値を決定する。視差の候補値は、仮距離画像４１において無効領域の周辺に設定されている１つ以上の視差の値に基づき決定される。無効領域の周辺とは、無効領域に隣接する領域であってもよいし、無効領域の周辺であって無効領域に隣接しない領域であってもよい。本実施の形態では、無効領域の右側に隣接する領域の視差値を候補の基準値に採用するとして以下で具体的な動作を説明する。また本実施の形態では、基準値からプラスマイナス２０画素の範囲を候補とする。
【００２３】
たとえば図４（ａ）の左に示すように無効領域の右に隣接する領域の視差値が「１００」の場合に、条件生成部１０６は視差の候補値を「１００」のプラスマイナス２０なので、「８０〜１２０」とする。すなわちこの場合の探索条件４３は、「領域９０１の視差値の候補が８０〜１２０」であることを示す情報である。なお実際には領域９０１を特定可能なように、たとえば領域９０１の基準画像におけるＸ座標やＹ座標の情報が格納される。
【００２４】
この探索条件４３を受信した第２視差探索部１０３Ｂは、基準画像の領域９０１の視差を視差８０〜１２０の範囲で探索する。たとえば図３（ｃ）に示した例では全域を対象としていたのでピークが２つ存在したが、図４（ｂ）に示すように視差８０〜１２０の範囲のみで探索を行うことで視差を「１１５」と特定できる。そのため図４（ａ）の右に示すように、無効領域の視差を特定できる。
【００２５】
図５は、本実施の形態における演算装置１の動作を表すフローチャートである。ただし図５は表記及び説明を簡潔にするために１つの画素ブロックの処理についてのみ記載している。実際には演算装置１は、基準画像における処理対象の画素ブロックを次々に変更して、基準画像の全域について図５に示す処理を実行する。
【００２６】
まずステップＳ３０１において第１視差探索部１０３Ａは、処理対象の画素ブロックの水平方向に並ぶ参照画像の各ブロックの非類似度を算出し、その極小値を示すピークを検出する。続くＳ３０２において第１視差探索部１０３Ａは、得られたピークが視差として採用すべき有効な値か否かを判別する。たとえば第１視差探索部１０３Ａは、複数のピークが得られ、非類似度の最小値を示すピークの他に近い値を示すピークが存在した場合に無効と判定する。第１視差探索部１０３Ａは、有効と判定した場合はそのピーク値に対応する視差値を仮距離画像４１および距離画像４４に設定して出力し（Ｓ３０７）、図５に示す処理を終了する。
【００２７】
ステップＳ３０２において第１視差探索部１０３Ａが無効と判断をすると（Ｓ３０２：ＮＯ）、仮距離画像４１では処理対象の画素ブロックには視差が算出できないことを示す特別な値、たとえば「０」に設定されて出力される。そのため視差無効判定部１０５により処理対象の画素ブロックが検出され、無効領域を示す情報４２にその処理対象の画素ブロックを特定する情報が記載されて条件生成部１０６に出力される。続くステップＳ３０３では条件生成部１０６が、仮距離画像４１における無効領域、すなわち処理対象の画素ブロックに隣接する画素ブロックの視差を読み出し、その視差の値に所定の幅、たとえばプラスマイナス２０画素を加えて視差の候補、すなわち探索範囲として探索条件４３を決定する。
【００２８】
条件生成部１０６は探索条件４３を第２視差探索部１０３Ｂに出力するので、第２視差探索部１０３ＢはステップＳ３０４において探索条件４３にしたがって再度の探索を行う。具体的には第２視差探索部１０３Ｂは、探索条件４３において設定された範囲でステップＳ３０１と同様に非類似度を算出してピークを検出する。続くＳ３０５において第２視差探索部１０３Ｂは、ステップＳ３０２と同様に、得られたピークが視差として採用すべき有効な値か否かを判別する。
【００２９】
第２視差探索部１０３ＢはＳ３０５を肯定判断する場合には、距離画像４４の処理対象の画素ブロックにそのピーク値に対応する視差値を設定して出力し、図５に示す処理を終了する。第２視差探索部１０３ＢはＳ３０５を否定判断する場合には、距離画像４４の処理対象の画素ブロックに視差が算出できないことを示す特別な値、たとえば「０」に設定して出力し、図５に示す処理を終了する。
【００３０】
上述した第１の実施の形態によれば、次の作用効果が得られる。
（１）演算装置１は、左カメラ２で撮影して得られた画像である左画像２１、すなわち基準画像、および右カメラ３で撮影して得られた画像である右画像３１、すなわち参照画像を用いて、画素ブロック単位で左画像２１における視差を算出して仮距離画像４１を生成する第１視差探索部１０３Ａと、仮距離画像４１から視差の算出に失敗した無効領域を特定する視差無効判定部１０５と、仮距離画像４１を用いて無効領域の視差の候補を含む探索条件４３を生成する条件生成部１０６と、左画像２１、右画像３１、および探索条件４３を用いて、無効領域の視差を画素ブロック単位で算出する第２視差探索部１０３Ｂとを備える。そのため視差が算出できなかった画素ブロックについて、探索条件４３を加えることで非類似度の計算結果を用いて視差を算出できる。すなわち、その画素ブロック自体の非類似度の計算結果を利用しているので、妥当な視差を算出できる。
【００３１】
（２）第２視差探索部１０３Ｂは、視差の候補から所定の範囲を探索範囲として無効領域の視差を画素ブロック単位で算出する。そのため探索条件４３で制限された範囲で改めて探索を行うので、非類似度のピークを正しく評価できる。
【００３２】
（３）条件生成部１０６は、無効領域に隣接する領域の視差を無効領域の視差の候補とする。距離は連続的に変化することが多いため、無効領域からの距離が最も近い隣接する領域の視差を候補とすることで、算出する視差の精度を向上させることができる。
【００３３】
（４）左画像２１および右画像３１のいずれも、鉛直方向および水平方向に広がりのある３次元空間を撮影して得られた画像である。条件生成部１０６は、無効領域に隣接する領域であって、無効領域の水平方向に存在する領域の視差を無効領域の視差の候補とする。障害物が存在しなくても、撮影画像では鉛直方向の下から上に向かって、地面までの距離は遠くなるが、水平方向は障害物が存在しなければ距離は略一定である。そのため水平方向に隣接する領域の視差を候補とすることで、算出する視差の精度を向上させることができる。
【００３４】
（変形例１）
車両９には車両制御装置４が搭載されなくてもよい。この場合には、車両９には仮距離画像４１を利用する何らかの装置が搭載されればよい。たとえば仮距離画像４１を車両９の乗員に提示する表示装置が搭載されてもよいし、仮距離画像４１を車両９の外部に送信する無線通信装置が搭載されてもよい。
【００３５】
（変形例２）
第１の実施の形態において、説明した演算装置１の機能構成は一例に過ぎない。図２に示したいくつかの機能構成を一体に構成されてもよいし、図２では１つの機能ブロック図で表した構成を２以上の機能に分割してもよい。特に、動作が類似する第１視差探索部１０３Ａおよび第２視差探索部１０３Ｂを一体に構成してもよい。なお一体に構成するとは、ハードウエア演算回路やソフトウエアを重複して利用することを含む。
【００３６】
図６は、変形例２における演算装置１の機能構成図である。変形例２では演算装置１は、第１視差探索部１０３Ａおよび第２視差探索部１０３Ｂの代わりに、両者を一体に構成した第３視差探索部１０３Ｃを備える。第３視差探索部１０３Ｃは、条件生成部１０６から探索条件４３が入力されたか否かにより動作を変更する。第３視差探索部１０３Ｃは、条件生成部１０６から探索条件４３が入力されない場合には第１視差探索部１０３Ａとして動作し、条件生成部１０６から探索条件４３が入力される場合には第２視差探索部１０３Ｂとして動作する。
【００３７】
（変形例３）
図７は、変形例３において条件生成部１０６が参照する画素ブロックを示す図である。上述した第１の実施の形態では、条件生成部１０６は、無効領域の周辺の１つの領域のみを参照する具体例を説明した。しかし条件生成部１０６は、図７（ｂ）〜（ｄ）に示すように複数の領域を参照して視差の候補値を決定してもよい。
【００３８】
図７（ａ）は画素ブロックの名称を説明する図である。図７（ａ）は、ある無効領域９０１と、無効領域９０１に隣接する画素ブロックを示す図であり、無効領域９０１に隣接する８つの画素ブロックにアルファベット１文字のＢ〜Ｉの名称を付している。第１の実施の形態では、無効領域９０１の右隣の画素ブロックのみを参照したので、図７（ａ）ではブロックＦのみを参照することに相当する。
【００３９】
本変形例では条件生成部１０６は、図７（ｂ）〜（ｄ）に示すように無効領域９０１に隣接する２以上の領域を選択し、選択した領域に格納される視差の値を基準値としてもよい。条件生成部１０６は図７（ｂ）に示すように領域Ｂ〜Ｉの全ての領域の視差の値を基準値として採用してもよい。計算コストに余裕がある場合に有用である。また条件生成部１０６は、図７（ｃ）に示すように水平方向に並ぶ領域Ｅおよび領域Ｆの視差の値を基準値としてもよい。水平方向の隣接する領域は近い視差となることを利用した方法であり、図７（ｂ）に示す手法に比べて少ない計算コストで実施可能である。
【００４０】
さらに条件生成部１０６は、図７（ｄ）に示すように無効領域の上下左右の領域のみ、すなわち領域Ｃ、Ｅ、Ｆ、Ｈの視差の値のみを基準値として採用してもよい。図７（ｄ）に示す手法は、図７（ｂ）と図７（ｃ）の中間的な計算コストで実現でき、両者の中間的な効果が得られる。次に図７（ｃ）に示す手法の具体例を説明する。
【００４１】
図８は、条件生成部１０６が無効領域１０９に水平方向に隣接する画素ブロックの視差の値を基準値とする具体例を示す図であり、第１の実施の形態における図４に対応する。図８（ａ）の左に示すように無効領域の右に隣接する領域の視差値が「１００」、無効領域の左に隣接する領域の視差値が「１８０」の場合に、条件生成部１０６は視差の候補値を「１００」と「１８０」それぞれのプラスマイナス２０なので、「８０〜１２０」、「１６０〜２００」とする。すなわちこの場合の探索条件４３は、「領域９０１の視差値の候補が８０〜１２０および１６０〜２００」であることを示す情報である。
【００４２】
この探索条件４３を受信した第２視差探索部１０３Ｂは、基準画像の領域９０１の視差を視差８０〜１２０および視差１６０〜２００の範囲で探索する。なお図８（ｂ）に示す例では視差１６０〜２００には極小値のピークが存在しないので、第２視差探索部１０３Ｂの出力は第１の実施の形態と同様である。
【００４３】
（変形例４）
条件生成部１０６が参照する画素ブロックは、無効領域に隣接するブロックに限定されない。図９は、条件生成部１０６が無効領域に隣接する画素ブロック以外を参照する例を示す図である。図９に示す例では、中央に存在する３つの画素ブロック、すなわち画素ブロック６０１〜６０３は無効領域であり、その左に存在する画素ブロック６０５および画素ブロック６０７、その右に存在する画素ブロック６０４および画素ブロック６０６は無効領域ではない。
【００４４】
無効領域である画素ブロック６０１が処理対象である場合に、条件生成部１０６は処理対象の画素ブロックに最も近く、かつ無効領域ではない画素ブロックを参照する。図９に示す例では、処理対象の画素ブロック６０１に隣接する画素ブロック６０２および画素ブロック６０３のいずれも無効領域なので、次に近い画素ブロック６０４および画素ブロック６０５のいずれかを参照する。
【００４５】
（変形例５）
上述した第１の実施の形態では第２視差探索部１０３Ｂは、探索する領域は狭まっているものの第１視差探索部１０３Ａと同様に探索を行った。しかし第２視差探索部１０３Ｂは過去の計算経過を利用して計算を簡略化し、選択を行うだけでもよい。この場合には第２視差探索部１０３Ｂは、第１視差探索部１０３Ａから計算経過を取得する。
【００４６】
図１０は、変形例５における演算装置１の機能構成図である。図１０に示す機能構成図では、図２に比べて第１視差探索部１０３Ａから第２視差探索部１０３Ｂへ算出経過４５が出力されている点が異なる。本変形例では、第１視差探索部１０３Ａの動作および第２視差探索部１０３Ｂの動作が次のように第１の実施の形態と異なる。
【００４７】
すなわち第１視差探索部１０３Ａは、視差が決定できない画素ブロックについて、複数の視差の候補、すなわち非類似度が極小値を有する視差の値を出力する。たとえば図３（ｃ）に示す例では第１視差探索部１０３Ａは、「左から４００画素目の無効領域９０１は視差候補が−１８０と＋１１５である」旨の情報を算出経過４５として出力する。
【００４８】
第２視差探索部１０３Ｂは、探索条件４３と算出経過４５とを用いて視差を決定する。具体的には第２視差探索部１０３Ｂは、算出経過４５から探索条件４３に含まれる視差を選択する。たとえば算出経過４５が前述の情報であり、探索条件４３が「領域９０１の視差値の候補が８０〜１２０」の場合には、第２視差探索部１０３Ｂは領域９０１の視差として「−１８０」と「＋１１５」の２つから「８０〜１２０」の範囲に含まれる「＋１１５」を選択する。
【００４９】
図１１は、変形例５における演算装置１の動作を表すフローチャートである。図１１は、第１の実施の形態における図５に対応する。第１の実施の形態との違いは、ステップＳ３０４の代わりにステップＳ３０４Ａを実行する点である。ステップＳ３０４Ａでは第２視差探索部１０３Ｂは、前述のように探索条件４３と算出経過４５とを用いて視差を決定する。ただし第２視差探索部１０３Ｂは、算出経過４５のいずれも探索条件４３に含まれる視差の範囲に該当しない場合は、視差が算出できないことを示す特別な値、たとえば「０」に決定する。ステップＳ３０４Ａ以外の処理は第１の実施の形態と同様なので説明を省略する。
【００５０】
本変形例によれば、次の作用効果が得られる。
（５）第１視差探索部１０３Ａは、無効領域の視差の候補を算出経過として第２視差探索部１０３Ｂに出力する。第２視差探索部１０３Ｂは、探索条件４３に含まれる視差の候補を用いて算出経過４５から１つの視差の候補を選択して無効領域の視差とする。そのため第２視差探索部１０３Ｂは改めて非類似度を算出する必要がなく、第２視差探索部１０３Ｂの演算量を減らすことができる。
【００５１】
（変形例６）
第１の実施の形態の変形例５において、第１の画素ブロックのサイズが１画素ｘ１画素よりも大きい場合に、より小さい画素ブロックを第２の画素ブロックとして定義する。たとえば第１の画素ブロックが４画素ｘ４画素、第２の画素ブロックが１画素ｘ１画素である。この場合に演算装置１はさらに、第１の画素ブロックに含まれる第２の画素ブロックの視差を、第１の画素ブロックの視差を利用して算出してもよい。本変形例において変形例５と重複する構成、特に第２視差探索部１０３Ｂが算出経過４５を用いて視差の値を選択する動作の説明は省略する。ただし本実施の形態では、第２視差探索部１０３Ｂが算出経過４５を用いて選択した無効領域の視差の値を「仮視差」とも呼ぶ。
【００５２】
図１２は、変形例６における演算装置１の機能構成図である。変形例６では、演算装置１は第４視差探索部１０３Ｄをさらに備える。本実施の形態では、第２視差探索部１０３Ｂは距離画像４４を車両制御装置４ではなく第４視差探索部１０３Ｄに出力する点が変形例５と異なる。第４視差探索部１０３Ｄは、第２の画素ブロック単位の距離情報が格納された詳細距離画像４６を生成して車両制御装置４に出力する。
【００５３】
図１３は、変形例６における第４視差探索部１０３Ｄの動作を説明する図である。図１３の左側に示すＡ〜Ｉの９個のブロックは、それぞれが第１の画素ブロックのサイズ、たとえば４画素ｘ４画素である。図１３の右側に示すａ００〜ａ３３の１６個のブロックは、それぞれが第２の画素ブロックのサイズ、たとえば１画素ｘ１画素である。前述のとおり、距離画像４４は第１の画素ブロック単位で距離情報が格納され、詳細距離画像４６は第２の画素ブロック単位で距離情報が格納される。そのため図１３の左右のそれぞれは、距離画像４４と詳細距離画像４６の一部に相当するともいえる。第４視差探索部１０３Ｄは、距離画像４４を構成するすべての画素ブロックについて、図１３に示すように詳細な距離情報を算出する。
【００５４】
本変形例では、図１３の左に示すＡのブロックと、図１３の右に示すａ００〜ａ３３の各ブロックとの関係を、上位・下位の関係と呼ぶ。ここでは、領域が広いほうが上位とする。たとえばブロックａ００の上位ブロックがブロックＡであり、ブロックＡの下位ブロックはブロックａ００〜ａ３３である。
【００５５】
図１３の右側に示すａ００〜ａ３３は、Ａのブロックの詳細を示すものである。第４視差探索部１０３Ｄは、ａ００〜ａ３３のそれぞれについて、第１視差探索部１０３Ａと同様に非類似度を算出し、参照画像における対応する領域を特定して視差を算出する。ただし第４視差探索部１０３Ｄは、参照画像からａ００〜ａ３３に対応する領域を探索する際に、上位ブロックであるＡの視差を基準として所定の範囲のみを探索する。たとえばブロックＡの視差が「＋１１５」の場合にプラスマイナス２０画素の範囲として「＋９５〜＋１３５」の範囲のみを探索する。ただし第４視差探索部１０３Ｄは、上位ブロックの視差が算出されていない場合には、対応する下位ブロックの視差は算出不能としてもよいし、範囲を特定することなくエピポーラ線上の全点を探索してもよい。
【００５６】
第２視差探索部１０３Ｂと第４視差探索部１０３Ｄの動作を比較すると、対象とするブロックの大きさおよび探索範囲を制限する情報の出所が異なる。対象とするブロックの大きさは、第２視差探索部１０３Ｂは第１の画素ブロック単位であり、第４視差探索部１０３Ｄは第２の画素ブロック単位である。探索範囲を制限する情報の出所は、第２視差探索部１０３Ｂは探索条件４３であり、第４視差探索部１０３Ｄは対応する上位ブロックの視差である。
【００５７】
本変形例によれば、次の作用効果が得られる。
（６）第２のブロックのサイズは第１のブロックのサイズよりも小さい。第１視差探索部１０３Ａは、無効領域の視差の候補である候補値を算出経過４５として第２視差探索部１０３Ｂに出力する。第２視差探索部１０３Ｂは、視差の候補を用いて候補値から１つを選択して仮視差とし、第４視差探索部１０３Ｄは、無効領域に含まれる第２のブロックの視差を仮視差から所定の範囲を探索範囲として算出する。そのため演算装置１０１は、第１のブロックのサイズで視差が得られなかった場合でも、先に周辺の視差情報を用いて第２視差探索部１０３Ｂが仮視差を算出し、その仮視差を用いて第２のブロックの視差を算出できる。
【００５８】
なお、本変形例では第２視差探索部１０３Ｂは算出経過４５を用いて仮視差を算出したが、第１の実施の形態のように第２視差探索部１０３Ｂは算出経過４５を用いることなく、無効領域の非類似度を改めて算出してもよい。
【００５９】
なお、本変形例では第２視差探索部１０３Ｂと第４視差探索部１０３Ｄとを異なる構成として説明したが、両者が一体に構成されてもよい。
【００６０】
（変形例７）
上述した第１の実施の形態では、条件生成部１０６が視差の候補の基準値に範囲を持たせた情報を探索条件４３に含ませた。しかし探索条件４３には視差の候補の基準値を含めるが範囲の情報は含ませず、第２視差探索部１０３Ｂが基準値に基づき範囲を定めてもよい。たとえば第１の実施の形態における探索条件４３は、たとえば「領域９０１の視差値の候補が８０〜１２０」であることを示す情報であった。しかし本変形例では探索条件４３を、「領域９０１の視差値の基準値が１００」であることを示す情報とし、第２視差探索部１０３Ｂが「１００」を中心にプラスマイナス２０に設定して「８０〜１２０」の範囲を定めてもよい。
【００６１】
（変形例８）
第１視差探索部１０３Ａおよび第２視差探索部１０３Ｂは、有効な視差を算出できなか否かを、仮距離画像４１や距離画像４４とは独立して生成して出力してもよい。また、仮距離画像４１、無効領域を示す情報４２、探索条件４３、および距離画像４４の少なくとも１つは、計算の過程で演算装置１の外部に存在する不図示の記憶装置に保存されてもよい。
【００６２】
―第２の実施の形態―
図１４〜図１５を参照して、本発明に係る演算装置の第２の実施の形態を説明する。以下の説明では、第１の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第１の実施の形態と同じである。本実施の形態では、主に、距離画像４４を経ることなく詳細距離画像４６を作成する第５視差探索部を備える点で、第１の実施の形態の変形例６と異なる。また本実施の形態では変形例６と同様に、第１のブロックのサイズは１画素ｘ１画素よりも大きいとし、第２のブロックサイズを第１のブロックサイズよりも小さいサイズと定義する。
【００６３】
第２の実施の形態における演算装置１Ａのハードウエア構成は第１の実施の形態における演算装置１のハードウエア構成と同一のため説明を省略する。
【００６４】
図１４は、第２の実施の形態における演算装置１Ａの機能構成図である。第１の実施の形態における図２との違いは、第２視差探索部１０３Ｂの代わりに第５視差探索部１０３Ｅを備える点である。第５視差探索部１０３Ｅの機能は、第２視差探索部１０３Ｂの機能と変形例６における第４視差探索部１０３Ｄの機能とを組み合わせたものに概ね相当する。第５視差探索部１０３Ｅの動作の詳細は後述する。
【００６５】
本実施の形態では、第１視差探索部１０３Ａは、算出した仮距離画像４１を第５視差探索部１０３Ｅにも出力する。第５視差探索部１０３Ｅには、左画像２１、右画像３１、仮距離画像４１、および探索条件４３が入力される。第５視差探索部１０３Ｅは、車両制御装置４に詳細距離画像４６を出力する。視差無効判定部１０５および条件生成部１０６の動作は第１の実施の形態と同様である。
【００６６】
第５視差探索部１０３Ｅは、仮距離画像４１を構成する第１の画素ブロックごとに、より解像度の高い距離情報、すなわち複数の第２の画素ブロックの視差を算出する。このとき第５視差探索部１０３Ｅは、処理対象とする第１の画素ブロックに視差が設定されている場合はその視差の値を基準として第２の画素ブロックの視差を探索する範囲を決定する。また第５視差探索部１０３Ｅは、処理対象とする第１の画素ブロックに視差が設定されていない場合は、換言すると処理対象の第１の画素ブロックが無効領域である場合は、探索条件４３に設定されている範囲を探索する。
【００６７】
（演算装置１Ａの動作）
図１５は、第２の実施の形態における演算装置１Ａの動作を示すフローチャートである。以下に説明する演算装置１Ａの動作のうち、ステップＳ３０１〜Ｓ３０７までが第１の画素ブロックごとの処理であり、ステップＳ３５１以降は第２の画素ブロックごとの処理である。以下に説明するフローチャートでは、記載を簡潔にするために繰り返し処理の記号を省略しているが、実際には基準画像を構成する全ての第１の画素ブロックについてステップＳ３０１〜Ｓ３０７の処理が実行され、仮距離画像４１を構成する全ての第２の画素ブロックについてステップＳ３５１以降の処理が実行される。すなわちステップＳ３０１〜Ｓ３０７における「処理対象」は第１の画素ブロックごとであり、ステップＳ３５１以降における「処理対象」は第２の画素ブロックごとである。
【００６８】
まずステップＳ３０１において第１視差探索部１０３Ａは、基準画像に含まれる第１の画素ブロックを処理対象として、水平方向に並ぶ参照画像の各ブロックの非類似度を算出し、その極小値を示すピークを検出する。続くＳ３０２において第１視差探索部１０３Ａは、得られたピークが視差として採用すべき有効な値か否かを判別する。第１視差探索部１０３Ａは、有効な値であると判定をした場合は、そのピーク値に対応する視差値を仮距離画像４１の処理対象の画素ブロックの値に設定して出力し（Ｓ３０７）、ステップＳ３５１に進む。
【００６９】
ステップＳ３０２において第１視差探索部１０３Ａが無効と判断をすると（Ｓ３０２：ＮＯ）、仮距離画像４１では処理対象の画素ブロックには視差が算出できないことを示す特別な値、たとえば「０」に設定して出力する。そのため視差無効判定部１０５により処理対象の画素ブロックが検出され、無効領域を示す情報４２にその処理対象の画素ブロックを特定する情報が記載されて条件生成部１０６に出力される。続くステップＳ３０３では条件生成部１０６が、仮距離画像４１における無効領域、すなわち処理対象の画素ブロックに隣接する画素ブロックの視差を読み出す。そして条件生成部１０６は、その視差の値に所定の幅、たとえばプラスマイナス２０画素を加えて視差の候補、すなわち探索範囲として探索条件４３を決定し、決定した探索条件４３を第５視差探索部１０３Ｅに出力してステップＳ３５１に進む。
【００７０】
ステップＳ３５１では第５視差探索部１０３Ｅは、基準画像に含まれる第２の画素ブロックを処理対象として非類似度を算出する。ステップＳ３５１の処理はＳ３０１と類似しているが、視差の候補値を用いる点が異なる。第５視差探索部１０３Ｅが用いる視差の候補値について説明する。非類似度の算出に用いる視差の候補値は、原則として仮距離画像４１における処理対象の画素ブロックの上位の画素ブロックに設定されている視差の値を基準とする。たとえば仮距離画像４１において、処理対象の画素ブロックの上位の画素ブロックの視差が「１００」に設定されていた場合は、「１００」を基準値として、基準値を中心とした所定の範囲、たとえばプラスマイナス２０画素として「８０〜１２０」を視差の候補値とする。
【００７１】
ただし第５視差探索部１０３Ｅは、仮距離画像４１における処理対象の画素ブロックの上位の画素ブロックに視差が設定されていない場合には、探索条件４３に記載された値を視差の候補値とする。上位の画素ブロックに視差が設定されていない場合とは、たとえば視差が算出できないことを示す特別な値、たとえば「０」が設定されている場合である。第５視差探索部１０３Ｅは視差の候補値だけを対象として非類似度を算出すればよいので、計算量を減らしつつ視差の算出精度を向上できる。
【００７２】
続くステップＳ３５２では第５視差探索部１０３Ｅは、ステップＳ３０２と同様に得られたピークが視差として採用すべき有効な値か否かを判別する。ただしステップＳ３０２とステップＳ３５２では処理対象の画素ブロックの大きさが異なる。また第５視差探索部１０３ＥはステップＳ３５２を肯定判断する場合はステップＳ３５４に進み、ステップＳ３５２を否定判断する場合はステップＳ３５３に進む。
【００７３】
ステップＳ３５３では第５視差探索部１０３Ｅは、詳細距離画像４６における処理対象に対応する領域の値を、視差が算出できないことを示す特別な値、たとえば「０」に設定して出力し図＃１６＃に示す処理を終了する。ステップＳ３５４では第５視差探索部１０３Ｅは、詳細距離画像４６における処理対象に対応する領域の値を、有効であると判断した視差の値に設定して出力し図＃１６＃に示す処理を終了する。
【００７４】
（変形例６との比較）
第２の実施の形態と同様に詳細距離画像４６を出力する、第１の実施の形態の変形例６の動作と、本実施の形態の動作を比較して説明する。変形例６では、第１の画素ブロックの視差が算出できなかった場合に、第２視差探索部１０３Ｂが周辺の画素ブロックの視差を利用して第１の画素ブロックの視差を改めて算出し、そのうえで第４視差探索部１０３Ｄが第２の画素ブロックの視差を算出した。その一方で本実施の形態では、第１の画素ブロックの視差が算出できなかった場合は、第５視差探索部１０３Ｅが処理対象である第２の画素ブロックの上位の画素ブロックに隣接する、他の第１の画素ブロックの視差の値を利用して第２の画素ブロックの視差を算出する。
【００７５】
変形例６と第２の実施の形態は、処理対象の周辺に存在する画素ブロックの視差の値を利用して処理対象の画素ブロックにおける視差を算出する点で共通する。またいずれの手法も、計算量を削減しつつ視差の精度を高める点も共通する。
【００７６】
上述した第２の実施の形態によれば、次の作用効果が得られる。
（７）第２のブロックのサイズは第１のブロックのサイズよりも小さい。
第５視差探索部１０３Ｅは、無効領域以外における第２のブロック単位の視差は、算出対象である第２のブロックを含む第１のブロックの視差から所定の範囲を探索範囲として視差を算出する。そのため演算装置１Ａは、基準画像の全体を対象とした詳細距離画像４６を作成できる。
【００７７】
―第３の実施の形態―
図１６〜図１７を参照して、本発明に係る演算装置の第３の実施の形態を説明する。以下の説明では、第の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第１の実施の形態と同じである。本実施の形態では、主に、車両の傾きを考慮する点で、第１の実施の形態と異なる。
【００７８】
図１６は第３の実施の形態における車両９Ｂのハードウエア構成図である。図ＥＸ３は、第１の実施の形態における図１に比べて、車両情報取得装置５が追加されている点が異なる。車両情報取得装置５は、車両情報４７を不図示のセンサにより取得して演算装置１に出力する。車両情報４７とは、少なくとも車両９Ｂの傾きを算出可能な情報である。車両情報４７はたとえば、車両９が現在走行している路面の湾曲、傾斜、カーブの曲率、およびタイヤの摩耗に関する情報である。ただし車両情報４７に、車両９Ｂの傾きを測定した不図示の傾斜計やジャイロセンサの出力が含まれてもよい。
【００７９】
演算装置１の機能構成、および各機能構成の動作は条件生成部１０６の動作を除いて第１の実施の形態と同様である。条件生成部１０６は、車両９Ｂの傾きにあわせて参照する画素ブロックを変更する。鉛直方向の位置の変化に対する奥行きの変化の割合に比べて、水平方向の位置変化に対する奥行きの変化のほうが緩やかなので、車体の傾きにあわせて参照する画素ブロックを変更する。
【００８０】
図１７は、本実施の形態において条件生成部１０６Ｂが参照する画素ブロックを示す図である。
【００８１】
図１７（ａ）は、路面の湾曲や傾斜やカーブ、タイヤの磨耗などによって車両９Ｂが路面に対して傾斜していた場合に、参照する画素ブロックを左右非対称に選択する例を示す図である。図１７（ａ）は、車両９Ｂが進行方向に向かって時計回りに傾斜していた場合、すなわち左カメラ２や右カメラ３により撮影された画像が反時計回りに回転していた場合に対応する。この場合は、視差が無効と判定されたブロック５０１に対して視差を再探索するために、ブロック５０１の画像上の水平方向に隣接するブロック５０５とブロック５０６に加えて、ブロック５０４とブロック５０７の視差の値を用いる。
【００８２】
図１７（ｂ）は図１７（ａ）とは逆側に車両９Ｂが傾斜した場合の例を示す図である。この場合は回転方向が逆なので、参照する画素ブロックも逆、すなわちブロック５０５とブロック５０６に加えて、ブロック５０２とブロック５０９を選択することになる。
【００８３】
上述した第３の実施の形態によれば、次の作用効果が得られる。
（８）演算装置１Ｃ、左カメラ２、および右カメラ３は、車両９Ｂに搭載される。条件生成部１０６は、車両情報４７に基づき水平方向を特定する。そのため、車両９Ｂがタイヤの摩耗や道路の傾斜などで傾いている際にも、無効領域の視差の探索に、鉛直方向よりも差異が少ない水平方向に隣接する画素ブロックの視差の値を候補の基準値に用いることができる。
【００８４】
上述した各実施の形態および変形例において、プログラムは不図示のＲＯＭに格納されるとしたが、プログラムは演算装置１の不図示の不揮発性メモリに格納されていてもよい。また、演算装置１が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースと演算装置１が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、たとえば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やＦＰＧＡにより実現されてもよい。
【００８５】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。特に第２の実施の形態と、変形例１〜４を組み合わせることが好適である。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【００８６】
１…演算装置
２…左カメラ
３…右カメラ
４…車両制御装置
９、９Ｂ…車両
１１…ＣＰＵ
２１…左画像
３１…右画像
４１…仮距離画像
４２…情報
４４…距離画像
４５…算出経過
４６…詳細距離画像
４７…車両情報
１０３Ａ…第１視差探索部
１０３Ｂ…第２視差探索部
１０３Ｃ…第３視差探索部
１０３Ｄ…第４視差探索部
１０３Ｅ…第５視差探索部
１０５…視差無効判定部
１０６、１０６Ｂ…条件生成部
１０６Ｂ…条件生成部
【図１】
2020140344.tif 000003
【図２】
2020140344.tif 000004
【図３】
2020140344.tif 000005
【図４】
2020140344.tif 000006
【図５】
2020140344.tif 000007
【図６】
2020140344.tif 000008
【図７】
2020140344.tif 000009
【図８】
2020140344.tif 000010
【図９】
2020140344.tif 000011
【図１０】
2020140344.tif 000012
【図１１】
2020140344.tif 000013
【図１２】
2020140344.tif 000014
【図１３】
2020140344.tif 000015
【図１４】
2020140344.tif 000016
【図１５】
2020140344.tif 000017
【図１６】
2020140344.tif 000018
【図１７】
2020140344.tif 000019