(57)【要約】【課題】算出する距離の精度を向上できる。【解決手段】演算装置は、第１のブロック単位で視差を示す粗距離画像を格納する記憶部と、第１のカメラで撮影して得られた画像である基準画像、および第２のカメラで撮影して得られた画像である参照画像を用いて、第１のブロック以下の大きさである第２のブロック単位で、第２のブロックごとに視差の候補である視差候補に基づき、基準画像における視差を算出して詳細な距離画像である詳細距離画像を生成する第１視差探索部と、第１視差探索部が視差を算出する第２のブロックを含む第１のブロックの大きさを有する領域である親ブロックの視差、親ブロックに隣接する第１のブロックの大きさを有する領域である隣接ブロックの視差、および探索条件に基づき視差候補を算出する候補算出部とを備える。【選択図】図３
2020140497.tif 000002
【特許請求の範囲】
【請求項１】
第１のブロック単位で視差を示す粗距離画像を格納する記憶部と、
第１のカメラで撮影して得られた画像である基準画像、および第２のカメラで撮影して得られた画像である参照画像を用いて、前記第１のブロック以下の大きさである第２のブロック単位で、前記第２のブロックごとに視差の候補である視差候補に基づき、前記基準画像における視差を算出して詳細な距離画像である詳細距離画像を生成する第１視差探索部と、
前記第１視差探索部が視差を算出する前記第２のブロックを含む前記第１のブロックの大きさを有する領域である親ブロックの視差、前記親ブロックに隣接する前記第１のブロックの大きさを有する領域である隣接ブロックの視差、および探索条件に基づき前記視差候補を算出する候補算出部とを備える演算装置。
【請求項２】
請求項１に記載の演算装置において、
前記基準画像および前記参照画像を用いて前記粗距離画像を作成し前記記憶部に格納する第２視差探索部をさらに備える演算装置。
【請求項３】
請求項１に記載の演算装置において、
前記粗距離画像を受信し前記記憶部に格納するインタフェースをさらに備える演算装置。
【請求項４】
請求項１に記載の演算装置において、
前記候補算出部は、前記粗距離画像において前記親ブロックおよび前記隣接ブロックのそれぞれに設定されている視差を用いて前記視差候補を探索する演算装置。
【請求項５】
請求項１に記載の演算装置において、
前記候補算出部は、前記粗距離画像において前記親ブロックおよび前記隣接ブロックのそれぞれに設定されている視差からいずれか１つの視差を選択し、前記選択した視差を用いて前記視差候補を探索する演算装置。
【請求項６】
請求項１に記載の演算装置において、
前記基準画像および前記参照画像のいずれも、鉛直方向および水平方向に広がりのある３次元空間を撮影して得られた画像であり、
前記候補算出部は、３次元空間において前記親ブロックの水平方向に存在する前記第１のブロックを前記隣接ブロックとする演算装置。
【請求項７】
請求項１に記載の演算装置において、
前記演算装置、前記第１のカメラ、および前記第２のカメラは車両に搭載され、
前記候補算出部は、前記車両の速度および前記親ブロックの視差に基づき、前記親ブロックの視差のみを用いて前記視差候補を決定するか、前記親ブロックおよび前記隣接ブロックの視差を用いて前記視差候補を決定するかを判断する演算装置。
【請求項８】
請求項１に記載の演算装置において、
前記基準画像から特徴情報を算出する特徴情報算出部をさらに備え、
前記候補算出部は、前記特徴情報算出部が算出した前記特徴情報に基づき、前記親ブロックの視差のみを用いて前記視差候補を決定するか、前記親ブロックおよび前記隣接ブロックの視差を用いて前記視差候補を決定するかを判断する演算装置。
【請求項９】
請求項８に記載の演算装置において、
前記特徴情報とは画像のエッジであり、
前記候補算出部は、前記親ブロックの領域が前記特徴情報算出部により算出されたエッジと重複する場合には前記親ブロックおよび前記隣接ブロックの視差を用いて前記視差候補を決定し、前記親ブロックの領域が前記特徴情報算出部により算出されたエッジと重複しない場合には前記親ブロックの視差のみを用いて前記視差候補を決定する演算装置。
【請求項１０】
請求項８に記載の演算装置において、
前記特徴情報とは画像のノイズ情報であり、
前記候補算出部は、前記親ブロックの領域におけるノイズレベルが所定の閾値よりも低い場合には前記親ブロックおよび前記隣接ブロックの視差を用いて前記視差候補を決定し、前記親ブロックの領域におけるノイズレベルが前記所定の閾値以上の場合には前記親ブロックの視差のみを用いて前記視差候補を決定する演算装置。
【請求項１１】
第１のブロック単位で視差を示す粗距離画像を格納する記憶部を備える演算装置が実行する視差算出方法であって、
第１のカメラで撮影して得られた画像である基準画像、および第２のカメラで撮影して得られた画像である参照画像を用いて、前記第１のブロック以下の大きさである第２のブロック単位で、前記第２のブロックごとに視差の候補である視差候補に基づき、前記基準画像における視差を算出して詳細な距離画像である詳細距離画像を生成することと、
視差の算出対象である前記第２のブロックを含む前記第１のブロックの大きさを有する領域である親ブロックの視差、前記親ブロックに隣接する前記第１のブロックの大きさを有する領域である隣接ブロックの視差、および探索条件に基づき前記視差候補を算出することとを含む視差算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算装置、および視差算出方法に関する。
【背景技術】
【０００２】
一対のカメラを有するステレオカメラで撮影されたステレオ画像を用いて、カメラ視野内に存在する物体までの距離を三角測量の原理で計測する位置測定装置が知られている。特許文献１には、複数の撮像装置により物体を撮像し、得られた一方の画像から複数の小領域画像を切り出し照合領域とし、各照合領域と他方との画像との相関演算により前記撮像装置から前記物体までの距離分布又は該物体を形成する面の面方向を検出する画像における相関演算方法であって、前記複数の画像に対してそれぞれ解像度の異なる複数の画像を生成し、解像度別に階層構造に画像を形成する多重解像度画像生成手段を備え、Ｎ，Ｍを整数とする時、Ｎ層間の相関演算によって前記各照合領域に対する各視差を求め、該各視差に基づいてＭ層の相関演算に対する照合領域とその探索領域を確定し、その確定された各照合領域と各探索領域で前記相関演算を行うことによって前記物体までの距離分布、又は前記物体を形成する面の面方向を検出することを特徴とする画像における相関演算方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−３１９２２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載されている発明では、精度を向上する余地がある。
【課題を解決するための手段】
【０００５】
本発明の第１の態様による演算装置は、第１のブロック単位で視差を示す粗距離画像を格納する記憶部と、第１のカメラで撮影して得られた画像である基準画像、および第２のカメラで撮影して得られた画像である参照画像を用いて、前記第１のブロック以下の大きさである第２のブロック単位で、前記第２のブロックごとに視差の候補である視差候補に基づき、前記基準画像における視差を算出して詳細な距離画像である詳細距離画像を生成する第１視差探索部と、前記第１視差探索部が視差を算出する前記第２のブロックを含む前記第１のブロックの大きさを有する領域である親ブロックの視差、前記親ブロックに隣接する前記第１のブロックの大きさを有する領域である隣接ブロックの視差、および探索条件に基づき前記視差候補を算出する候補算出部とを備える。
本発明の第２の態様による視差算出方法は、第１のブロック単位で視差を示す粗距離画像を格納する記憶部を備える演算装置が実行する視差算出方法であって、第１のカメラで撮影して得られた画像である基準画像、および第２のカメラで撮影して得られた画像である参照画像を用いて、前記第１のブロック以下の大きさである第２のブロック単位で、前記第２のブロックごとに視差の候補である視差候補に基づき、前記基準画像における視差を算出して詳細な距離画像である詳細距離画像を生成することと、視差の算出対象である前記第２のブロックを含む前記第１のブロックの大きさを有する領域である親ブロックの視差、前記親ブロックに隣接する前記第１のブロックの大きさを有する領域である隣接ブロックの視差、および探索条件に基づき前記視差候補を算出することとを含む。
【発明の効果】
【０００６】
本発明によれば、算出する距離の精度を向上できる。
【図面の簡単な説明】
【０００７】
【図１】車両９のハードウエア構成図
【図２】左画像２１、右画像３１、粗距離画像４１、および詳細距離画像４６の比較を説明する図
【図３】演算装置１の機能ブロック図
【図４】親ブロックと子ブロックの関係を説明する図
【図５】図５は候補算出部１０６の動作を説明する図
【図６】第１視差探索部１０３Ａによる視差の決定を説明する概念図
【図７】第１の実施の形態における演算装置１の動作を示すフローチャート
【図８】変形例１における演算装置１の機能ブロック図
【図９】変形例３における演算装置１の動作を示すフローチャート
【図１０】探索条件のバリエーションを示す図
【図１１】変形例７における第１視差探索部１０３Ａの動作を説明する図
【図１２】変形例８における第１視差探索部１０３Ａの出力を示す概念図
【図１３】変形例１０における詳細距離画像４６を出力するタイミングを示す概念図
【図１４】第２の実施の形態における演算装置１Ａの機能ブロック図
【図１５】第２の実施の形態における演算装置１Ａの処理を示すフローチャート
【図１６】第２の実施の形態の変形例２における演算装置１Ａの機能ブロック図
【発明を実施するための形態】
【０００８】
―第１の実施の形態―
以下、図１〜図５を参照して、本発明に係る演算装置の第１の実施の形態を説明する。
【０００９】
（ハードウエア構成）
図１は、本発明に係る演算装置１を搭載する車両９のハードウエア構成図である。車両９は、演算装置１と、左カメラ２と、右カメラ３と、車両制御装置４と、距離センサ５とを備える。演算装置１および車両制御装置４は電子制御装置（Electronic  Control  Unit）である。左カメラ２および右カメラ３は、車両９の周囲を撮影して得られた撮影画像を演算装置１に出力する。左カメラ２および右カメラ３は、水平方向に並んで配置される。以下では、左カメラ２の撮影画像を左画像２１、右カメラ３の撮影画像を右画像３１と呼ぶ。また左カメラ２を「第１のカメラ」と呼び、右カメラ３を「第２のカメラ」と呼ぶこともある。
【００１０】
左カメラ２および右カメラ３は水平方向を向くように配置されるので、左画像２１および右画像３１のいずれも、鉛直方向および水平方向に広がりのある３次元空間を撮影して得られた画像である。ただしここでいう水平や垂直は厳密な意味ではなく、左画像２１および右画像３１の左右方向が天地ではなく左右方向に対応するという程度の意味である。たとえば、左カメラ２および右カメラ３が光軸を回転中心として最大で３０度程度傾いてもよい。
【００１１】
距離センサ５は、距離情報を取得なセンサ、たとえばレーザレンジファインダ、超音波センサ、およびＬｉＤＡＲ（Light  Detection  and  Ranging）などである。距離センサ５は、左カメラ２および右カメラ３と同一の方向を向いている。距離センサ５は粗距離画像４１を生成し、演算装置１に出力する。なお粗距離画像４１は便宜的な名称であり、実際には所定の規則で記載された距離情報の羅列であってもよい。所定の規則とはたとえば、左上から５度ずつ右方向に走査し、１２０度走査すると下方向に１０度移動させて再び左から５度ずつ走査することを繰り返して得られる順番に記載する規則である。
【００１２】
左画像２１、右画像３１、および粗距離画像４１に記録されている三次元空間は少なくとも一部が重複していればよい。左カメラ２、右カメラ３、および距離センサ５の車両９における取り付け位置や取り付け姿勢は既知であり、左画像２１、右画像３１、および粗距離画像４１の相互の位置関係も既知である。そのため、左画像２１における所定の画素の三次元空間における位置が、粗距離画像４１のどの位置に相当するかも既知である。左画像２１、右画像３１、および粗距離画像４１の相互の位置関係は、演算で求めてもよいしあらかじめルックアップテーブルなどを用意して参照して求めてもよい。
【００１３】
左カメラ２と右カメラ３の相対位置は既知であり、２つのカメラの内部パラメータも既知なので、被写体のカメラまでの距離と視差の関係も既知である。本実施の形態では、距離と視差の関係は、後述する視差テーブル１２１として演算装置１に格納される。本実施の形態では距離と視差の関係は既知なので、視差は「距離に対応する情報」と呼ぶこともできる。また本実施の形態では、距離と視差は相互に容易に変換可能なので、両者は実質的に同一の情報とみなせる。
【００１４】
演算装置１は、中央演算装置であるＣＰＵ１１、読み出し専用の記憶装置であるＲＯＭ１２、読み書き可能な記憶装置であるＲＡＭ１３、およびインタフェース１４を備える。ＣＰＵ１１がＲＯＭ１２に格納されるプログラムをＲＡＭ１３に展開して実行することで後述する複数の機能を実現する。ただし演算装置１は、ＣＰＵ１１、ＲＯＭ１２、およびＲＡＭ１３の組み合わせの代わりに、書き換え可能な論理回路であるＦＰＧＡ（Field  Programmable  Gate  Array）や特定用途向け集積回路であるＡＳＩＣ（Application  Specific  Integrated  Circuit）により実現されてもよい。また演算装置１は、ＣＰＵ１１、ＲＯＭ１２、およびＲＡＭ１３の組み合わせの代わりに、異なる構成の組み合わせ、たとえばＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３とＦＰＧＡの組み合わせにより実現されてもよい。
【００１５】
インタフェース１４は、左画像２１、右画像３１、粗距離画像４１を受信し、ＣＰＵ１１に提供する。ただしＣＰＵ１１に備えられるレジスタにはわずかな情報しか格納できないので、ＣＰＵ１１が自由にそれらの情報を参照できるように、インタフェース１４は受信した左画像２１、右画像３１、および粗距離画像４１をＲＡＭ１３に格納する。
【００１６】
演算装置１は、入力される左画像２１、右画像３１および粗距離画像４１を用いて詳細距離画像４６を作成し、車両制御装置４に出力する。演算装置１が詳細距離画像４６を作成する過程は図２以降を参照してのちに詳述する。粗距離画像４１や詳細距離画像４６とは、二次元平面における距離の遠近を色の濃淡や色の彩度で表したものである。粗距離画像４１と詳細距離画像４６のフォーマットは同一であってもよいし異なっていてもよい。本実施の形態では説明を簡略にするために、粗距離画像４１および詳細距離画像４６のいずれも、各画素には距離の遠近を表す「０」〜「２５５」の整数値が格納されるとして説明する。
【００１７】
詳細距離画像４６に示される範囲は、左画像２１および右画像３１と略同一である。ただし詳細距離画像４６に示される範囲は、左画像２１および右画像３１に示される範囲よりも狭くてもよい。詳細距離画像４６の画素数は、左画像２１および右画像３１と略同一でもよいし、数分の一程度でもよい。
【００１８】
車両制御装置４は、演算装置１から入力される詳細距離画像４６を用いて車両９を制御する。車両制御装置４はたとえば、詳細距離画像４６から車両９の周辺に存在する障害物を検出し、車両９と検出した障害物との衝突を避けるように車両９を制御する。車両制御装置４による車両９の制御は、たとえば車両制御装置４が不図示の操舵装置および不図示の制動装置に動作指令を出力することにより実現される。
【００１９】
（画像）
図２は、左画像２１、右画像３１、粗距離画像４１、および詳細距離画像４６に格納される情報の解像度の比較を説明する図である。ただしここでいう解像度とは、奥行き方向の距離ではなく、画像上の上下方向や左右方向の分解能の高さを意味する。
【００２０】
図２（ａ）は車両９の周辺の様子を示す図であり、車両９０１が存在している。図２（ｂ）は粗距離画像４１の解像度を示す概念図、図２（ｃ）は詳細距離画像４６の解像度を示す概念図である。図２（ｂ）に示す粗距離画像４１には、図２（ａ）に示す領域を縦と横のそれぞれを５分割した合計２５個の領域ごとの距離情報が格納される。図２（ｃ）に示す詳細距離画像４６には、図２（ａ）に示す領域を縦と横のそれぞれを１０分割した合計１００個の領域ごとの距離情報が格納される。粗距離画像４１および詳細距離画像４６は、図示上下が天地方向に、図示左右が水平方向に対応する。
【００２１】
本実施の形態では、図２（ｂ）に示すように粗距離画像４１に含まれる１つの距離情報が示す領域を「第１のブロック」と呼び、図２（ｃ）に示すように詳細距離画像４６に含まれる１つの距離情報が示す領域を「第２のブロック」と呼ぶ。第１のブロックは第２のブロックよりも大きい。図２に示す例および本実施の形態では、第１のブロックは第２のブロックに比べて幅と高さがそれぞれ２倍であり、面積は４倍である。ただし第１のブロックが第２のブロックよりも大きければよく、倍数は特に制限されない。
【００２２】
なお距離センサ５が出力する１点の距離情報は、必ずしも第１のブロック全体を測定して得られた距離情報ではないが、本実施の形態ではその距離情報が便宜的に第１のブロック全体を代表する距離情報とみなしている。また詳細距離画像４６における第２のブロックのそれぞれが、粗距離画像４１におけるいずれの第１のブロックの領域に含まれるかも既知である。
【００２３】
左画像２１および右画像３１のそれぞれは、第２のブロックと同等以上の解像度で輝度や彩度の情報を有する。図２の例に即すると、左画像２１および右画像３１のそれぞれは図２（ａ）に示す範囲について縦と横ともに少なくとも１０画素、すなわち全部で１００画素以上の情報を有する。左画像２１と右画像３１は、詳細距離画像４６と略同一の画素数でもよいし、縦方向や横方向が２倍や１０倍の画素を有していてもよい。本実施の形態では、左画像２１と右画像３１は、詳細距離画像４６と略同一の画素数とする。
【００２４】
（機能ブロック）
図３は、演算装置１が有する機能を機能ブロックとして示した機能ブロック図である。ただし図３には、説明の便宜のために、記憶部１３１およびＲＯＭ１２に格納される情報も示している。演算装置１はその機能として、第１視差探索部１０３Ａと、候補算出部１０６と、記憶部１３１とを備える。記憶部１３１はたとえばＲＡＭ１３により実現される。記憶部１３１には距離センサ５から入力される粗距離画像４１が格納される。粗距離画像４１は、距離センサ５から新たな粗距離画像４１が入力されるたびに上書きされる。なお厳密には左画像２１および右画像３１もＲＡＭである記憶部１３１に入力されるが、図３では記載を省略している。
【００２５】
ＲＯＭ１２に格納される視差テーブル１２１は、左カメラ２と右カメラ３についての視差と距離との関係を示すテーブルである。念のために記載すると、視差と距離の関係は、２つのカメラの相対位置や内部パラメータの影響を受ける。ＲＯＭ１２に格納されている視差テーブル１２１は、本実施の形態における左カメラ２と右カメラ３の位置関係や内部パラメータにあわせてあらかじめ作成されたものである。
【００２６】
第１視差探索部１０３Ａには、左画像２１および右画像３１が入力される。第１視差探索部１０３Ａは、まず左画像２１および右画像３１のいずれか一方を基準画像、他方を参照画像とする。第１視差探索部１０３Ａは基準画像として左画像２１と右画像３１のいずれを選択してもよいが、この選択は本実施の形態では一貫させる。第１視差探索部１０３Ａは、基準画像を第２のブロックごとに処理し、基準画像の全領域についてそれぞれの第２のブロックに対応する参照画像の領域を探索する。第１視差探索部１０３Ａは、参照画像におけるエピポーラ線上のすべての領域を探索するのではなく、全域視差候補４３に基づき参照画像の特定の領域のみを探索する。
【００２７】
第１視差探索部１０３Ａによる探索には、既知の手法を用いる。たとえば第１視差探索部１０３Ａは探索範囲についてＳＡＤ（Sum  of  Absolute  Differences）により非類似度を算出し、非類似度が最も小さい参照画像上の領域を探索する。第１視差探索部１０３Ａは、ＳＡＤの代わりに、ＺＳＡＤ（Zero-mean  Sum  of  Absolute  Differences）、ＺＳＳＤ（Zero-mean  Sum  of  Squared  Differences）、ＢＭ（Block  Matching）、ＳＧＭ（Semi  Global  Matching）、ＮＣＣ（Normalized  Cross  Correlation）、およびＺＮＣＣ（Zero-mean  Normalized  Cross  Correlation）のいずれかを用いてもよい。
【００２８】
第１視差探索部１０３Ａはたとえば、基準画像を第２のブロックの大きさに区切り、１つ目の第２のブロックについて、全域視差候補４３に基づき定められた領域を対象として参照画像における対応する領域を探索し、その第２のブロックの視差を決定する。そして次に第１視差探索部１０３Ａは、基準画像の２つ目の第２のブロックについて、全域視差候補４３に基づき定められた領域を対象として参照画像における対応する領域を探索し、その第２のブロックの視差を決定する。このように第１視差探索部１０３Ａは基準画像を第２のブロックの大きさに区切り、各ブロックの視差を算出して詳細距離画像４６を作成する。第１視差探索部１０３Ａによる全域視差候補４３を用いた探索の動作は後述する。
【００２９】
候補算出部１０６は、次の２つの処理を実行する。候補算出部１０６は第１の処理として、粗距離画像４１および視差テーブル１２１を読み込み、粗距離画像４１における第１のブロックごとの距離情報を左カメラ２および右カメラ３の視差に変換する。候補算出部１０６は第２の処理として、あらかじめ定められた探索条件に基づき、基準画像の第２のブロックの大きさに区切られた領域ごとに視差候補４３ａを作成し、すべてのブロックについての視差候補４３ａを全域視差候補４３として第１視差探索部１０３Ａに出力する。すなわち全域視差候補４３は、基準画像を第２のブロックの大きさに区切った領域の数と同じ数だけ視差候補４３ａを含む。本実施の形態における探索条件は、「親ブロックおよび親ブロックの水平方向に隣接するブロック」である。視差候補４３ａおよび全域視差候補４３の作成については後述する。探索条件はたとえば設計者によりあらかじめ決定され、ＲＯＭ１２に格納されるプログラムにハードコーディングされる。
【００３０】
図４は、親ブロックと子ブロックの関係を説明する図である。図４（ａ）は粗距離画像４１の概念図であり図２（ｂ）と同一である。図４（ｂ）は左画像２１の概念図であり、本実施の形態では左画像２１と詳細距離画像４６は略同一の画素数を有するので、図２（ｃ）と同一のように図示されている。図４（ａ）に示す粗距離画像４１におけるある１つの第１のブロックである領域９０２は、図４（ｂ）に示す左画像２１では領域９０３に相当する。図４（ｂ）に示すある１つの第２のブロックである領域９０４は、領域９０３に含まれる。
【００３１】
このような関係にある場合に本実施の形態では、領域９０２と領域９０４の関係を「親ブロック」と「子ブロック」の関係と呼ぶ。具体的には、領域９０２の子ブロックが領域９０４であり、領域９０４の親ブロックが領域９０２である。
【００３２】
（候補算出部１０６の動作）
図５は候補算出部１０６の動作を説明する図である。図５（ａ）および図５（ｂ）は粗距離画像４１の概念図、図５（ｃ）は全域視差候補４３の概念図である。厳密には図５（ｃ）は、左画像２１を構成する第２のブロックの領域に、そのブロックの視差候補４３ａの基準値を記載したものである。ただし図５（ａ）〜（ｃ）のいずれも粗距離画像４１や全域視差候補４３の一部のみを示している。また図５（ａ）および図５（ｂ）における四角の枠は第１のブロックを表しており、図５（ｃ）における四角の枠は第２のブロックを表している。なお図５（ｂ）と図５（ｃ）の太線の枠は対応しており、図５（ｂ）の四角の枠で示す第２のブロックと、図５（ｃ）の四角の枠に含まれる４つの小さな第２のブロックのそれぞれは、親ブロックと子ブロックの関係にある。
【００３３】
ただし厳密には全域視差候補４３のそれぞれの要素、すなわちそれぞれの視差候補４３ａは第２のブロックの大きさを有するわけではなく、それぞれの視差候補４３ａを利用する対象が第２のブロックの大きさを有する。そのため厳密には”図５（ｂ）と図５（ｃ）が親ブロックと子ブロックの関係にある”という説明も正しくはないが、対応関係を示すためにそのように表現している。
【００３４】
図５（ａ）に示す粗距離画像４１は、第１のブロックごとの距離情報を示している。距離センサ５の出力はメートル単位に限定されず、たとえば距離に対応する符号でもよいが、図５（ａ）に示す例では一般化してメートル単位で記載している。図５（ｂ）は、候補算出部１０６が視差テーブル１２１を用いて粗距離画像４１の距離情報を視差、すなわち画素数に変換したものである。ただし図５（ｂ）では作図の都合により「画素」を「ｐｘｌ」として表記している。
【００３５】
候補算出部１０６は、第１の処理として図５（ａ）の情報と視差テーブル１２１を用いて図５（ｂ）に示す情報を作成する。候補算出部１０６はたとえば「２００ｍ」を「５画素」に置き換え、「８０ｍ」を「３０画素」に置き換え。候補算出部１０６は第２の処理として、探索条件にしたがって図５（ｂ）に示す情報を用いて図５（ｃ）に示す情報を作成する。前述のとおり、本実施の形態における探索条件は親ブロックおよび親ブロックの水平方向に隣接するブロックである。
【００３６】
候補算出部１０６は、処理対象とする第２のブロックの視差の基準値を、親ブロックの視差、および３次元空間において親ブロックの水平方向に隣接する第１のブロックの視差とする。簡潔に記載すると、ある第２のブロックの視差の基準値は、親ブロックの視差、親ブロックの右隣のブロックの視差、および親ブロックの左隣のブロックの視差である。そして候補算出部１０６は、視差候補４３ａの基準値から所定の範囲、たとえばプラスマイナス２０画素を視差候補４３ａとする。
【００３７】
本実施の形態では、図５（ｃ）に示すように親ブロックが同一であれば子ブロックの視差候補４３ａの基準値は同一である。そのため同一の親ブロックを有する子ブロックは、いずれか１つの子ブロックについて視差候補４３ａを作成・記録すればよい。
【００３８】
（第１視差探索部１０３Ａの動作）
図６は、第１視差探索部１０３Ａによる視差の決定を説明する概念図である。図６（ａ）に左画像２１と右画像３１が示されている。この例では、基準画像である左画像２１の領域９１１に対応する参照画像、すなわち右画像３１の領域を探索している。本実施の形態では左カメラ２と右カメラ３が水平方向に並んで設置されているので、エピポーラ線は符号９１２で示す水平方向に延びる破線である。左画像２１および右画像３１の図示横方向の幅が８００画素であり、領域９１１の中心が左端から２００画素目の場合に、参照画像である右画像３１には図示するように−２００〜＋６００の数値が振られる。たとえば参照画像の左から６００画素を中心とする領域９０３が基準画像の領域９０１に対応する、すなわち非類似度が最も低いと判断された場合には、視差は「４００」と算出される。
【００３９】
図６（ｂ）は、参照画像の破線９１２上の位置ごとの領域９１１との非類似度の一例を示す図である。前述のように、非類似度の算出にはＳＡＤなどが用いられる。なお図６（ｂ）では−２００〜＋６００の全域にわたって非類似度を示しているが、本実施の形態では全域視差候補４３に含まれる処理対象の領域の視差候補４３ａのみ非類似度を算出すればよい。図５（ｃ）に示す例によれば視差候補４３ａの基準値が５０、１００、４００なので、視差候補４３ａはそれぞれを中心としたプラスマイナス２０画素、すなわち３０〜７０、８０〜１２０、３８０〜４２０となる。
【００４０】
そのため第１視差探索部１０３Ａは、図６（ｂ）に示すハッチングを施した領域は非類似度の算出は不要であり、視差が３０〜７０、８０〜１２０、３８０〜４２０の範囲のみ非類似度を算出すればよい。図６（ｂ）に示す例では、視差候補４３ａである３０〜７０、８０〜１２０、３８０〜４２０のうち、最少となるピークが「４００」なので視差は「４００」と算出される。
【００４１】
（フローチャート）
図７は、第１の実施の形態における演算装置１の動作を表すフローチャートである。以下に説明する各ステップの実行主体は演算装置１のＣＰＵ１１である。ステップＳ３０１では候補算出部１０６は、記憶部１３１から粗距離画像４１を取得する。続くステップＳ３０２では候補算出部１０６は、ＲＯＭ１２から視差テーブル１２１を読み込み、粗距離画像４１に格納されている距離を視差に変換する。続くステップＳ３０３では候補算出部１０６は、左画像２１の全ての第２ブロックを処理対象として、粗距離画像４１における親ブロックおよび親ブロックの左右に隣接するブロックから視差を取得する。なおこの視差は視差候補４３ａの基準値として扱われる。
【００４２】
続くステップＳ３０４では候補算出部１０６は、ステップＳ３０３において取得した視差に対して所定の範囲、たとえばプラスマイナス２０画素を設定して各ブロックの視差候補４３ａを作成し、全ブロックの視差候補４３ａをまとめて全域視差候補４３として出力する。続くステップＳ３０５では第１視差探索部１０３Ａは、左画像２１の全ての第２のブロックを処理対象とし、ブロックごとに視差候補４３ａの全範囲について非類似度を算出して視差を探索する。続くステップＳ３０６では第１視差探索部１０３Ａは、ステップＳ３０５において探索した視差を用いて詳細距離画像４６を生成して出力し、図７に示す処理を終了する。
【００４３】
上述した第１の実施の形態によれば、次の作用効果が得られる。
（１）演算装置１は、第１のブロック単位で二次元平面の視差を示す粗距離画像４１を格納する記憶部１３１と、第１のカメラすなわち左カメラ２で撮影して得られた画像である左画像２１すなわち基準画像、および第２のカメラすなわち右カメラ３で撮影して得られた画像である右画像３１すなわち参照画像を用いて、第１のブロック以下の大きさである第２のブロック単位で、第２のブロックごとに視差の候補である視差候補４３ａに基づき基準画像における視差を算出して詳細な距離画像である詳細距離画像４６を生成する第１視差探索部１０３Ａと、第１視差探索部１０３Ａが視差を算出する第２のブロックを含む第１のブロックの大きさを有する領域である親ブロックの視差、親ブロックに隣接する第１のブロックの大きさを有する領域である隣接ブロックの視差、および探索条件に基づき視差候補４３ａを算出する候補算出部１０６とを備える。そのため、親ブロックだけでなく親ブロックに隣接するブロックの視差も用いて視差候補４３ａを決定するので、算出する距離の精度を向上できる。この利点を詳述する。
【００４４】
図４（ｂ）の領域９０２などのように物体の輪郭が含まれる親ブロックでは、複数の子ブロックの視差が異なるため１つの親ブロックの視差だけを用いて視差を算出すると精度の低下が避けられない。仮に１つの親ブロックの視差のみを使って子ブロックの視差を探索すると、最適な視差が探索できず親ブロックの視差付近の値となってしまう。なお範囲を限定せずにエピポーラ線上のすべての領域を探索することも可能であるが、その場合は計算量が増加する問題、および全く異なる視差が選択されてしまう問題が生じうる。その一方で、本実施の形態では親ブロックに隣接するブロックの視差も用いるため、適切な範囲を探索でき、全探索を行うよりも計算量は少なく、親ブロックのみの視差を用いる場合や全探索をする場合よりも精度を向上できる。
【００４５】
（２）演算装置１は、粗距離画像４１を受信し記憶部１３１に格納するインタフェース１４を備える。そのため演算装置１は、粗距離画像４１を計算することなく容易に取得できるので計算量を削減できる。
【００４６】
（３）候補算出部１０６は、粗距離画像４１において親ブロックおよび隣接ブロックのそれぞれに設定されている視差を用いて視差候補４３ａを探索する。具体的には候補算出部１０６は粗距離画像４１から親ブロックおよび隣接ブロックの視差の値を読み込んで視差候補４３ａの基準値とし、基準値に所定の幅を持たせたものを視差候補４３ａとし、その全域を探索する。そのため、より確からしい視差を算出できる。
【００４７】
（４）基準画像および参照画像のいずれも、鉛直方向および水平方向に広がりのある３次元空間を撮影して得られた画像である。候補算出部１０６は、３次元空間において親ブロックの水平方向に存在する第１のブロックを隣接ブロックとする。たとえば自動車用のアプリケーションでは、鉛直方向の距離精度よりも水平方向の距離精度が必要とされる傾向にあり、候補算出部１０６が参照する候補を増やすほど第１視差探索部１０３Ａの計算量は増加する。そのため、参照する親ブロックの位置を精度確保の要請が強い水平方向に限定することで、要求制度を満たしつつ計算量を削減できる。
【００４８】
（変形例１）
上述した第１の実施の形態では、粗距離画像４１は距離センサ５が出力した。しかし演算装置１が粗距離画像４１を生成する第２視差探索部を備えてもよい。この場合は車両９は距離センサ５を備えなくてもよい。
【００４９】
図８は、変形例１における演算装置１の機能ブロック図である。図８に示す機能ブロック図は、図３に比べて第２視差探索部１０３Ｂが追加されている。第１視差探索部１０３Ａの動作は第１の実施の形態と同様である。候補算出部１０６は、距離を視差に変換する第１の処理を行わなくてよい。第２視差探索部１０３Ｂには、左画像２１および右画像３１が入力される。第２視差探索部１０３Ｂは、粗距離画像４１を生成して記憶部１３１に格納する。
【００５０】
第２視差探索部１０３Ｂの動作を詳述すると次のとおりである。第２視差探索部１０３Ｂはまず、左画像２１を基準画像、右画像３１を参照画像として、第１のブロックの単位で基準画像の各領域に対応する参照画像の領域を特定して視差を算出する。そして第２視差探索部１０３Ｂは、算出したそれぞれの第１のブロックの視差をそのまま粗距離画像４１として出力する。第２視差探索部１０３Ｂによる視差の算出は次のとおりである。
【００５１】
第２視差探索部１０３Ｂは視差を算出するために、参照画像におけるエピポーラ線上の全ての第１のブロックを対象として非類似度を算出し、非類似度が最も小さいブロックを探索する。そして第２視差探索部１０３Ｂは、処理対象の基準画像のブロックの基準画像上の座標と、非類似度が最も小さいブロックの参照画像上の座標との差を視差とする。なお第２視差探索部１０３Ｂによる非類似度の算出は、ＳＡＤ、ＺＳＡＤ、ＺＳＳＤ、ＢＭ、ＳＧＭ、ＮＣＣ、およびＺＮＣＣのいずれを用いてもよい。
【００５２】
第１視差探索部１０３Ａと第２視差探索部１０３Ｂの動作の違いは、処理対象とするブロックの大きさと、探索対象が制限されるか否かである。第１視差探索部１０３Ａは処理対象が第２のブロックであり、第２視差探索部１０３Ｂは処理対象が第１のブロックである。第１視差探索部１０３Ａは、処理対象の視差の算出にあたりエピポーラ線上でありかつ視差候補４３ａで示される範囲のみ視差の探索を行う。第２視差探索部１０３Ｂは、探索範囲を特に限定せずエピポーラ線上の全ての領域を探索する。ただし第２視差探索部１０３Ｂ一律に探索範囲を制限し、たとえば水平方向の全域ではなく６０％の範囲のみ、具体的には視差がゼロの位置を中心に８００画素の６０％である４８０画素の範囲を探索範囲としてもよい。
【００５３】
この変形例１によれば、次の作用効果が得られる。
（５）演算装置１は、基準画像および参照画像を用いて粗距離画像４１を作成し記憶部１３１に格納する第２視差探索部１０３Ｂを備える。そのため車両９が距離センサ５を備えなくても詳細距離画像４６を作成できる。
【００５４】
なお変形例１において、第１視差探索部１０３Ａと第２視差探索部１０３Ｂは共通のプログラム部品やハードウエア回路を用いて実現してもよい。
【００５５】
（変形例２）
上述した第１の実施の形態では、第１のブロックは第２のブロックよりも大きかった。しかし第１のブロックと第２のブロックは同一のサイズであってもよい。すなわちこの場合は、処理対象とするブロックの視差、すなわち距離の情報を、周辺のブロックの視差を利用して改めて算出する。そのため、詳細距離画像４６に格納される距離情報は、粗距離画像４１に格納される距離情報よりも精度が高くなる利点があり、一定の有用性が認められる。
【００５６】
（変形例３）
上述した第１の実施の形態では、候補算出部１０６は親ブロックと親ブロックの左右に隣接するブロックの視差の全てを視差候補４３ａの基準値とした。しかし候補算出部１０６は視差候補４３ａの基準値を１つに絞り、１つの基準値から所定の範囲を視差候補４３ａとしてもよい。この場合に候補算出部１０６は、それぞれの視差候補４３ａの基準値について非類似度を算出し、最も確からしい視差、すなわち非類似度が最も低い基準値を採用する。
【００５７】
たとえば左画像２１におけるある第２のブロックをブロックＸとしたときに、ブロックＸの親ブロックとその親ブロックの左右に隣接するブロックの視差が、５０、１００、４００画素であったとする。この場合に候補算出部１０６は、ブロックＸと、ブロックＸに対して視差が５０、１００、４００画素である右画像３１の領域との非類似度を算出し、非類似度が最小の領域の視差を視差の基準値とする。そしてその基準値から所定の範囲、たとえばプラスマイナス２０画素を視差候補４３ａとする。
【００５８】
図９は、本変形例における演算装置１の動作を表すフローチャートである。本フローチャートは第１の実施の形態における図７に比べて、ステップＳ３０３Ａが追加されている点が異なる。ステップＳ３０３Ａでは候補算出部１０６は、ステップＳ３０３において取得した視差のうち最も確からしい視差、すなわち非類似度が最も低い基準値を特定する。続くステップＳ３０４ではステップＳ３０３Ａにおいて特定した視差から所定の範囲を視差候補４３ａとして出力する。ステップＳ３０５以降の処理は第１の実施の形態と同様なので説明を省略する。
【００５９】
この変形例３によれば、次の作用効果が得られる。
（６）候補算出部１０６は、粗距離画像４１において親ブロックおよび隣接ブロックのそれぞれに設定されている視差からいずれか１つの視差を選択し、選択した視差を用いて視差候補４３ａを決定する。そのため、計算量を削減することができる。
【００６０】
（変形例４）
上述した第１の実施の形態では、候補算出部１０６の探索条件は「親ブロックおよび親ブロックの水平方向に隣接するブロック」であった。しかし探索条件はこれに限定されない。
【００６１】
図１０は探索条件のバリエーションを示す図である。図１０（ａ）は第１の実施の形態における探索条件を示す図、図１０（ｂ）〜図１０（ｅ）は本変形例で例示する探索条件を示す図である。図１０におけるそれぞれのアルファベットは、粗距離画像４１における第１のブロックに便宜的に付した名称である。図１０に示すアルファベットのうち、「Ｐ」は親ブロックを示しており、他のアルファベットに特別な意味はない。
【００６２】
図１０（ａ）に示すように第１の実施の形態では、親ブロックおよび親ブロックの水平方向に隣接するブロック、すなわちブロックＥ、Ｐ、Ｆの視差を候補の基準値とした。しかし図１０（ｂ）〜図１０（ｅ）に示すように探索条件を変化させてもよい。図１０（ｂ）に示す例における探索条件は、親ブロックを中心とする全９ブロックである。この場合にはブロックＰおよびブロックＢ〜Ｉの視差が候補の基準値となる。
【００６３】
図１０（ｃ）における探索条件は親ブロックおよび親ブロックの上下左右である。この場合にはブロックＰ、Ｃ、Ｅ、Ｆ、Ｈの視差が候補の基準値となる。図１０（ｄ）における探索条件は親ブロック、親ブロックの左上、親ブロックの左、および親ブロックの上である。この場合にはブロックＰ、Ｂ、Ｃ、Ｅの視差が候補の基準値となる。図１０（ｅ）における探索条件は親ブロックおよび左右２ブロックである。この場合にはブロックＰ、Ｋ、Ｅ、Ｆ、Ｎの視差が候補の基準値となる。この変形例４によれば、様々な探索条件を設定できる。
【００６４】
（変形例５）
候補算出部１０６および第１視差探索部１０３Ａは、詳細距離画像４６を用いてさらに詳細な距離画像を作成してもよい。換言すると演算装置１は、第１の実施の形態における粗距離画像４１から詳細距離画像４６を作成する処理を、詳細距離画像４６からさらに詳細な距離画像の作成に適用してもよい。さらに演算装置１は、この処理を繰り返し実行して距離画像の解像度を徐々に向上させ、最終的には１画素ごとに距離を算出してもよい。
【００６５】
本変形例では第２のブロック以下のサイズを有する第３のブロックを定義し、第１視差探索部１０３Ａが詳細距離画像４６を作成した後に、候補算出部１０６が基準画像における第３のブロックごとに詳細距離画像４６を用いて視差候補を作成する。そして第１視差探索部１０３Ａは、候補算出部１０６が詳細距離画像４６を用いて作成した視差候補に基づき第３のブロックごとにより詳細な距離画像を作成する。この変形例５によれば、より詳細な距離画像を作成できる。
【００６６】
（変形例６）
候補算出部１０６は、取得した視差候補４３ａの基準値からあらかじめ定めた所定の範囲を視差候補４３ａとした。たとえば上述した第１の実施の形態では、所定の範囲はプラスマイナス２０画素として説明した。しかし候補算出部１０６は、この範囲を距離に応じて可変としてもよい。被写体までの距離が遠く視差が小さい場合には変化量も小さいが、被写体までの距離が近く視差が大きい場合には変化量が大きい傾向にあるためである。
【００６７】
たとえば候補算出部１０６は、親ブロックの距離の遠近に応じてこの範囲を決定してもよい。この場合に候補算出部１０６は、親ブロックの距離が近いほど範囲を広く設定し、親ブロックの距離が近いほど範囲を狭く設定する。別な一例として候補算出部１０６は、基準となる視差の値の大小に応じてこの範囲を決定してもよい。この場合には、視差候補４３ａの基準値が大きいほど範囲を広く設定し、比佐の候補の基準値が小さいほど範囲を狭く設定する。
【００６８】
（変形例７）
上述した第１の実施の形態では、第１視差探索部１０３Ａは、非類似度を算出する領域と視差を設定する領域を一致させていた。しかし第１視差探索部１０３Ａは、非類似度を算出する領域よりも視差を設定する領域を狭く設定してもよい。非類似度の算出、すなわち対応する位置の探索を広い領域で行い、視差は狭い範囲で行うことによりノイズの影響を受けにくくする利点を有する。
【００６９】
図１１は、変形例７における第１視差探索部１０３Ａの動作を説明する図である。図１１に示す内側の四角が視差を設定する領域であり、外側の四角が非類似度を算出する領域である。図１１に示すでは視差を設定する領域に対して非類似度を算出する領域は９倍の面積を有するが、この面積の比率は任意である。また、図示縦方向の比率と図示横方向の比率も任意であり、たとえば視差を設定する領域に対して非類似度を算出する領域が図示横方向には４倍、図示縦方向には１．５倍の長さを有してもよい。
【００７０】
（変形例８）
上述した第１の実施の形態では、候補算出部１０６は処理対象の第２のブロックの親ブロックの視差および親ブロックの左右に隣接するブロックの視差を視差候補４３ａの基準値とした。しかし所定の場合には、親ブロックの視差のみを視差候補４３ａの基準値としてもよい。所定の場合とはたとえば、親ブロックの視差の値と、親ブロックの左右に隣接するブロックの視差との差が所定値以下の場合である。別の所定の場合とは、親ブロックの視差の値が非常に大きい、または非常に小さい場合である。
【００７１】
また演算装置１が車両９に搭載された速度センサから車両９の速度の情報を取得可能な場合は、次の２つの変形例も採用可能である。車両９の速度が所定の閾値より速くかつ親ブロックの視差の値が所定の閾値よりも大きい場合には親ブロックの視差のみを視差候補４３ａの基準値としてもよい。また車両９の速度が所定の閾値より遅くかつ親ブロックの視差の値が所定の閾値よりも小さい場合には親ブロックの視差のみを視差候補４３ａの基準値としてもよい。この２つの変形例は、車速が早い場合の近い距離の情報や車速が遅い場合の遠い距離の情報は重要性が低いため精度の向上をよりも計算用の低減を重視するものである。
【００７２】
さらに本変形例では第１視差探索部１０３Ａは、詳細距離画像４６に第２のブロックごとの処理経過を示す付加情報を付加して出力してもよい。具体的には付加情報は、第２のブロックごとに視差の基準値が親ブロックの視差のみであるか、親ブロックおよび親ブロックの左右に隣接するブロックの視差であるかを示す情報である。付加情報は第１視差探索部１０３Ａが作成してもよいし、候補算出部１０６が作成してもよい。
【００７３】
図１２は第１視差探索部１０３Ａの出力を示す概念図である。図１２に示す符号３００１が付加情報を表している。図１２に示すように付加情報３００１は詳細距離画像４６の先頭に付加されてもよいし、図１２とは逆に付加情報３００１が詳細距離画像４６の末尾に付加されてもよい。また付加情報３００１と詳細距離画像４６の情報がたとえば１ブロックずつ交互に記載されてもよい。
【００７４】
この変形例８によれば、次の作用効果が得られる。
（７）演算装置１、左カメラ２、および右カメラ３は車両９に搭載される。候補算出部１０６は、車両９の速度および親ブロックの視差に基づき、親ブロックの視差のみを用いて視差候補４３ａを決定するか否かを決定する。そのため、不要な演算を削減できる。
【００７５】
（変形例９）
特定の条件を満たす場合には、第１視差探索部１０３Ａは探索を行わず、親ブロックの視差の値をそのまま子ブロックの視差としてもよい。本変形例では、候補算出部１０６は以下に述べる所定の場合に、第２のブロックごとに、第１視差探索部１０３Ａに探索が不要な旨の特別な信号および親ブロックの視差を出力し、この特別な信号を受信した第１視差探索部１０３Ａは受信した親ブロックの視差を子ブロックの視差とする。
【００７６】
候補算出部１０６は親ブロックの視差の値と、親ブロックの左右に隣接するブロックの視差との差が所定値以下の場合に、前述の特別な信号および親ブロックの視差の値を出力してもよい。また候補算出部１０６は、親ブロックの視差の値が非常に大きい、または非常に小さい場合に前述の特別な信号および親ブロックの視差の値を出力してもよい。
【００７７】
また演算装置１が車両９に搭載された速度センサから車両９の速度の情報を取得可能な場合は、次の２つの変形例も採用可能である。車両９の速度が所定の閾値より速くかつ親ブロックの視差の値が所定の閾値よりも大きい場合には、候補算出部１０６は前述の特別な信号および親ブロックの視差の値を出力してもよい。また車両９の速度が所定の閾値より遅くかつ親ブロックの視差の値が所定の閾値よりも小さい場合には、候補算出部１０６は前述の特別な信号および親ブロックの視差の値を出力してもよい。この２つの変形例は、車速が早い場合の近い距離の情報や車速が遅い場合の遠い距離の情報は重要性が低いため精度の向上をよりも計算用の低減を重視するものである。
【００７８】
さらに本変形例では第１視差探索部１０３Ａは、詳細距離画像４６に第２のブロックごとの処理経過を示す付加情報を付加して出力してもよい。具体的には付加情報は、第２のブロックごとに探索を行って視差を決定したのか、親ブロックの視差をそのまま使用したのかを示す情報である。付加情報は第１視差探索部１０３Ａが作成してもよいし、候補算出部１０６が作成してもよい。
【００７９】
（変形例１０）
上述した第１の実施の形態では、詳細距離画像４６を出力するタイミングは特に規定しなかった。しかし以下に説明するように第１〜第４のいずれのタイミングで出力してもよい。第１のタイミングは、詳細距離画像４６の全体が作成されたタイミングである。第１のタイミングで出力する場合には、詳細距離画像４６の全体が一度に出力される。第２のタイミングは、詳細距離画像４６の図示横方向の１ラインが作成されたタイミングである。第２のタイミングで出力する場合には、詳細距離画像４６の１ラインが作成されるたびにその１ラインの情報が出力される。
【００８０】
第３のタイミングは、図示横方向に連続する４画素以上の所定の画素数の距離情報が作成されたタイミングである。第３のタイミングで出力する場合には、詳細距離画像４６の所定の画素数の距離情報が作成されるたびにその所定の画素数の情報が出力される。第４のタイミングは、図示横方向に連続する３画素の距離情報が作成されたタイミングである。第４のタイミングで出力する場合には、詳細距離画像４６の３画素の距離情報が作成されるたびにその３画素の情報が出力される。
【００８１】
図１３は変形例１０における詳細距離画像４６を出力するタイミングを示す概念図である。図１３（ａ）〜（ｄ）のそれぞれは、上述した第１〜第４のタイミングに対応する。
【００８２】
（変形例１１）
上述した第１の実施の形態では、第１視差探索部１０３Ａが出力する詳細距離画像４６には視差の値そのものが含まれた。しかし第１視差探索部１０３Ａは、視差テーブル１２１を用いて詳細距離画像４６に含まれる視差を距離に変換して出力してもよい。この場合に第１視差探索部１０３Ａは、各画素の値が所定の範囲、たとえば０〜２５５となるように全画素の値に最適な係数を掛ける、いわゆる正規化処理をさらに施してもよい。
【００８３】
（変形例１２）
第１の実施の形態において、説明した演算装置１の機能構成は一例に過ぎない。図２に示したいくつかの機能構成を一体に構成されてもよいし、図３では１つの機能ブロック図で表した構成を２以上の機能に分割してもよい。また各機能ブロックが有する機能の一部を他の機能ブロックが備える構成としてもよい。たとえば視差候補４３ａには基準値のみを含め、第１視差探索部１０３Ａが基準値を中心とした所定の範囲を探索範囲としてもよい。たとえば本変形例では視差候補４３ａが「５０、１００、４００画素」であり、第１視差探索部１０３Ａはこの視差候補４３ａが入力されると「３０〜７０、８０〜１２０、３８０〜４２０画素」を探索する。
【００８４】
―第２の実施の形態―
図１４〜図１５を参照して、本発明に係る演算装置の第２の実施の形態を説明する。以下の説明では、第１の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第１の実施の形態と同じである。本実施の形態では、主に、撮影画像からエッジを検出しエッジを利用して探索範囲を変化させる点で、第１の実施の形態と異なる。本実施の形態における演算装置１Ａのハードウエア構成、および演算装置１Ａを搭載する車両９のハードウエア構成は第１の実施の形態と同様なので説明を省略する。
【００８５】
（機能ブロック）
図１４は、第２の実施の形態における演算装置１Ａが有する機能を機能ブロックとして示した機能ブロック図である。第１の実施の形態との違いは、演算装置１Ａが特徴情報算出部１０７をさらに備える点である。第１視差探索部１０３Ａの動作は第１の実施の形態と同様である。候補算出部１０６の動作は後述するように第１の実施の形態と一部が異なる。
【００８６】
特徴情報算出部１０７には左画像２１が入力される。特徴情報算出部１０７は左画像２１からエッジを検出して特徴情報４７を算出し、特徴情報４７を候補算出部１０６に出力する。エッジの検出には種々の既知の手法を用いることができ、たとえばソーベルフィルタやガウシアンフィルタによりエッジを検出する。特徴情報算出部１０７は、検出したエッジの位置を特徴情報４７として候補算出部１０６に出力する。
【００８７】
候補算出部１０６は、処理対象の第２のブロックの親ブロックがエッジ上であるか否かにより処理を次のように変化させる。候補算出部１０６は、処理対象の第２のブロックの親ブロックがエッジ上に存在する場合には、第１の実施の形態と同様に親ブロックと親ブロックの左右に隣接するブロックの視差を取得する。その一方で処理対象の第２のブロックの親ブロックがエッジ上にない場合は、候補算出部１０６は親ブロックの視差のみを取得する。親ブロックがエッジ上にない場合には、親ブロックの領域において急激な距離の変化はないと考えられるので、処理を軽減するために親ブロックの視差のみを視差候補４３ａの基準値とする。
【００８８】
図１５は第２の実施の形態における演算装置１Ａの処理を示すフローチャートである。第１の実施の形態との違いは、ステップＳ３０３の代わりにステップＳ３０３ＰおよびステップＳ３０３Ｑを備える点である。ステップＳ３０１およびステップＳ３０２の処理は第１の実施の形態と同様なので説明を省略する。ステップＳ３０３Ｐでは候補算出部１０６は、親ブロックがエッジ上にある第２のブロックについて、親ブロックとその親ブロックの左右に隣接するブロックの視差を取得する。ステップＳ３０３Ｑでは候補算出部１０６は、親ブロックがエッジ上にない第２のブロックについて、親ブロックの視差を取得する。
【００８９】
念のために記載すると、候補算出部１０６はステップＳ３０３ＰおよびステップＳ３０３Ｑを合わせると、基準画像におけるすべての第２のブロックを対象として何らかの視差を取得する。ステップＳ３０３ＰおよびステップＳ３０３Ｑにおいて取得した視差は、視差候補４３ａの基準値として使用される。ステップＳ３０４以降の処理は第１の実施の形態と同様なので説明を省略する。
【００９０】
上述した第２の実施の形態によれば、次の作用効果が得られる。
（８）演算装置１Ａは、左画像２１から特徴情報４７を算出する特徴情報算出部１０７を備える。候補算出部１０６は、特徴情報算出部１０７が算出した特徴情報４７に基づき、親ブロックの視差のみを用いて視差候補４３ａを決定するか否かを決定する。そのため、撮影した画像の特徴を利用して計算を削減できる。
【００９１】
（９）特徴情報４７とは画像のエッジ情報である。候補算出部１０６は、親ブロックの領域が特徴情報算出部により算出されたエッジと重複する場合には親ブロックおよび隣接ブロックの視差を用いて視差候補４３ａを決定し、親ブロックの領域が特徴情報算出部により算出されたエッジと重複しない場合には親ブロックの視差のみを用いて視差候補４３ａを決定する。そのため、エッジの境界付近の距離精度を向上することができる。
【００９２】
（第２の実施の形態の変形例１）
上述した第２の実施の形態では、画像中の特徴情報としてエッジが用いられた。しかし特徴情報としてエッジの代わりにノイズを用いてもよい。特徴情報算出部１０７は、左画像２１の細かい領域ごとにノイズレベルを評価し、領域ごとのノイズレベルの大きさを特徴情報４７として候補算出部１０６に出力してもよい。ノイズの評価には既知の手法を用いることができ、たとえばＲＭＳ（root  mean  square）粒状度やウィーナースペクトルを用いて評価することができる。
【００９３】
候補算出部１０６は、親ブロックが存在する領域のノイズレベルが所定の閾値よりも低いことを親ブロックがエッジ上に存在することと同様に扱い、親ブロックが存在する領域のノイズレベルが所定の閾値以上であることを親ブロックがエッジ上に存在しないことと同様に扱う。なお特徴情報算出部１０７は、ノイズの評価とエッジの検出の両方を実行し、両方の情報を特徴情報４７として出力してもよい。その場合は候補算出部１０６は、ノイズとエッジの両方の情報を用いて判断を行う。
【００９４】
本変形例によれば次の作用効果が得られる。
（１０）特徴情報４７とは画像のノイズ情報である。候補算出部１０６は、親ブロックの領域におけるノイズレベルが所定の閾値よりも低い場合には親ブロックおよび隣接ブロックの視差を用いて視差候補４３ａを決定し、親ブロックの領域におけるノイズレベルが所定の閾値以上の場合には親ブロックの視差のみを用いて視差候補４３ａを決定する。そのためノイズが多く参照量を増やしても距離精度の改善が見込めない領域の計算量を削減できる。
【００９５】
（第２の実施の形態の変形例２）
第２の実施の形態において、演算装置１Ａが粗距離画像４１を生成する第２視差探索部を備えてもよい。この場合は、車両９は距離センサ５を備えなくてもよい。なお本変形例は、第２の実施の形態の構成と、第１の実施の形態の変形例１とを組み合わせてもよいことを明示するものである。
【００９６】
図１６は、第２の実施の形態の変形例２における演算装置１の機能ブロック図である。図１６に示す機能ブロック図は、図１４に比べて第２視差探索部１０３Ｂが追加されている。第１視差探索部１０３Ａの動作は第１の実施の形態と同様である。候補算出部１０６は、距離を視差に変換する第１の処理を行わなくてよい。第２視差探索部１０３Ｂには、左画像２１および右画像３１が入力される。第２視差探索部１０３Ｂは、粗距離画像４１を生成して記憶部１３１に格納する。これ以降の処理は、第１の実施の形態の変形例１および第２の実施の形態において説明済みなので説明を省略する。
【００９７】
上述した各実施の形態および変形例において、プログラムは不図示のＲＯＭに格納されるとしたが、プログラムは不図示の不揮発性記憶装置に格納されていてもよい。また、演算装置が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースと演算装置が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、例えば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やＦＰＧＡにより実現されてもよい。
【００９８】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【００９９】
１、１Ａ…演算装置
２…左カメラ
３…右カメラ
４…車両制御装置
５…距離センサ
９…車両
１４…インタフェース
２１…左画像
３１…右画像
４１…粗距離画像
４３…視差候補ａ
４３…全域視差候補
４６…詳細距離画像
４７…特徴情報
１０３Ａ…第１視差探索部
１０３Ｂ…第２視差探索部
１０６…候補算出部
１０７…特徴情報算出部
１２１…視差テーブル
１３１…記憶部
【図１】
2020140497.tif 000003
【図２】
2020140497.tif 000004
【図３】
2020140497.tif 000005
【図４】
2020140497.tif 000006
【図５】
2020140497.tif 000007
【図６】
2020140497.tif 000008
【図７】
2020140497.tif 000009
【図８】
2020140497.tif 000010
【図９】
2020140497.tif 000011
【図１０】
2020140497.tif 000012
【図１１】
2020140497.tif 000013
【図１２】
2020140497.tif 000014
【図１３】
2020140497.tif 000015
【図１４】
2020140497.tif 000016
【図１５】
2020140497.tif 000017
【図１６】
2020140497.tif 000018