(57)【要約】【課題】動きぼけを抑制する【解決手段】測距装置は、互いに異なる視点から同一の撮影領域を含むように同時に撮影された右撮影画像および左撮影画像を取得する。測距装置は、右撮影画像および左撮影画像のそれぞれについて、撮影画像を、複数の画素で構成された部分領域ＤＲに分割し、分割された複数の部分領域ＤＲ毎に、部分領域ＤＲ内に写っている物体が撮影画像内で移動する大きさと方向とを示す動きベクトルｆを設定する。測距装置は、右撮影画像および左撮影画像のそれぞれについて、少なくとも、撮影画像の周波数特性を、撮影画像に設定された動きベクトルｆの周波数特性で除算した演算を行い、更に、この演算結果の周波数特性に対応する復元後撮影画像を生成する。【選択図】図３
2018066604.tif 000002
【特許請求の範囲】
【請求項１】
互いに異なる視点から同一の撮影領域を含むように同時に撮影された複数の撮影画像を取得するように構成された画像取得部（Ｓ１０）と、
複数の前記撮影画像のそれぞれについて、前記撮影画像を、複数の画素で構成された部分領域に分割し、分割された複数の前記部分領域毎に、前記部分領域内に写っている物体が前記撮影画像内で移動する大きさと方向とを示す動きベクトルを設定するように構成されたベクトル設定部（Ｓ３０）と、
複数の前記撮影画像のそれぞれについて、少なくとも、前記撮影画像の周波数特性を示す画像周波数特性を、前記撮影画像に設定された前記動きベクトルの周波数特性を示すベクトル周波数特性で除算した演算を行い、更に、この演算結果の周波数特性に対応する画像である演算後画像を生成するように構成された画像生成部（Ｓ４０〜Ｓ７０）と、
複数の前記撮影画像のそれぞれに対応して前記画像生成部により生成された複数の前記演算後画像を用いて、複数の前記演算後画像間の視差を検出するように構成された視差検出部（Ｓ８０）と
を備える視差検出装置（５）。
【請求項２】
請求項１に記載の視差検出装置であって、
前記画像生成部は、前記撮影画像の輝度の二次元分布に対してフーリエ変換を行うことにより前記画像周波数特性を算出し、前記撮影画像に設定された前記動きベクトルの二次元分布に対してフーリエ変換を行うことにより前記ベクトル周波数特性を算出し、前記演算結果に対して逆フーリエ変換を行うことにより、前記演算後画像を生成する視差検出装置。
【請求項３】
請求項１または請求項２に記載の視差検出装置であって、
前記視差検出装置は、車両に搭載され、
前記車両の走行速度を検出する車速検出部（４）を備え、
前記ベクトル設定部は、前記車速検出部により検出された前記走行速度と、前記撮影画像内における前記部分領域の位置とに基づいて、前記部分領域に前記動きベクトルを設定する視差検出装置。
【請求項４】
請求項１または請求項２に記載の視差検出装置であって、
前記ベクトル設定部は、前記部分領域内に写っている前記物体を、前記画像取得部により取得された前記撮影画像のうち撮影時刻の異なる複数の前記撮影画像内において探索し、複数の前記撮影画像内における前記物体の位置に基づいて、前記部分領域に前記動きベクトルを設定する視差検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、互いに異なる視点から撮影された複数の画像を用いて視差を検出する視差検出装置に関する。
【背景技術】
【０００２】
特許文献１には、互いに平行に隣接して配置された第１撮影装置と第２撮影装置のそれぞれから第１画像と第２画像を取得し、第１画像と第２画像との間の視差を検出することにより、第１撮影装置および第２撮影装置が撮影した物体までの距離を測定する測距装置が記載されている。
【０００３】
特許文献１に記載の測距装置では、第１画像と第２画像のうち、ぼけの強い方の画像のぼけを、ぼけの弱い方の画像のぼけに合わせることにより、第１画像と第２画像のぼけを補正し、視差検出の精度を向上させている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２６８４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に記載の技術は、撮影装置のレンズに起因したぼけを補正するものであり、例えば撮影装置が車両に搭載されて高速で移動していることに起因して撮影画像に生じる動きぼけを補正することができない。
【０００６】
本開示は、動きぼけを抑制する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本開示の一態様は、画像取得部（Ｓ１０）と、ベクトル設定部（Ｓ３０）と、画像生成部（Ｓ４０〜Ｓ７０）と、視差検出部（Ｓ８０）とを備える視差検出装置（５）である。
画像取得部は、互いに異なる視点から同一の撮影領域を含むように同時に撮影された複数の撮影画像を取得するように構成される。
【０００８】
ベクトル設定部は、複数の撮影画像のそれぞれについて、撮影画像を、複数の画素で構成された部分領域に分割し、分割された複数の部分領域毎に、部分領域内に写っている物体が撮影画像内で移動する大きさと方向とを示す動きベクトルを設定するように構成される。
【０００９】
画像生成部は、複数の撮影画像のそれぞれについて、少なくとも、撮影画像の周波数特性を示す画像周波数特性を、撮影画像に設定された動きベクトルの周波数特性を示すベクトル周波数特性で除算した演算を行い、更に、この演算結果の周波数特性に対応する画像である演算後画像を生成するように構成される。
【００１０】
視差検出部は、複数の撮影画像のそれぞれに対応して画像生成部により生成された複数の演算後画像を用いて、複数の演算後画像間の視差を検出するように構成される。
このように構成された本開示の視差検出装置は、上記の画像周波数特性を上記のベクトル周波数特性で除算した演算を行うことにより、上記の動きベクトルの大きさと方向に応じた動きぼけを抑制することができる。そして、上記の動きベクトルは、部分領域内に写っている物体が撮影画像内で移動する大きさと方向とを示す。このため、本開示の視差検出装置は、撮影画像内に写っている物体が撮影画像内で移動することに起因して撮影画像に生じる動きぼけを抑制することができ、視差検出の精度を向上させることができる。
【００１１】
なお、この欄及び特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１２】
【図１】測距装置１の構成を示すブロック図である。
【図２】距離測定処理を示すフローチャートである。
【図３】部分領域ＤＲと処理領域ＰＲを説明する図である。
【図４】撮影画像ＰＧ上に動きベクトルｆを設定した具体例を示す図である。
【図５】三角窓関数ｗと処理領域ＰＲとの対応関係を示す図である。
【図６】処理領域ＰＲ２内の画素ＰＸ２と処理領域ＰＲ３内の画素ＰＸ３との対応関係を示す図である。
【図７】視差算出処理を示すフローチャートである。
【図８】節点ＮＰを配置する方法を説明する図である。
【図９】節点空間ＮＰＳの斜視図である。
【図１０】Ｘ−Ｚ平面を示す斜視図である。
【図１１】Ｙ−Ｚ平面を示す斜視図である。
【図１２】右斜め平面を示す斜視図である。
【図１３】左斜め平面を示す斜視図である。
【図１４】測距装置１の距離測定結果を説明する図である。
【発明を実施するための形態】
【００１３】
以下に本開示の実施形態を図面とともに説明する。
本実施形態の測距装置１は、車両に搭載され、図１に示すように、右撮像装置２と、左撮像装置３と、車速センサ４と、画像処理装置５とを備える。以下、測距装置１が搭載された車両を自車両という。
【００１４】
右撮像装置２と左撮像装置３は、自車両前方の風景を連続して撮影し、その撮影画像を示す画像データを画像処理装置５へ出力する。右撮像装置２と左撮像装置３はそれぞれ、自車両の進行方向に対して右側と左側に設置される。以下、右撮像装置２の画像データを右画像データ、左撮像装置３の画像データを左画像データという。
【００１５】
右撮像装置２と左撮像装置３は、平行等位に配置される。具体的には、右撮像装置２と左撮像装置３は、右撮像装置２の光軸と左撮像装置３の光軸とが平行になるように配置される。これにより、右撮像装置２の撮像面と左撮像装置３の撮像面が同一平面上に配置される。さらに、右撮像装置２と左撮像装置３は、右撮像装置２の撮像面の横軸と左撮像装置３の撮像面の横軸とが一致するように、水平方向に沿って予め設定された基線長だけ離れて配置される。撮像面の横軸は、撮像面上において撮像面と光軸との交点を原点とした二次元直交座標系のＸ軸およびＹ軸のうちのＸ軸である。
【００１６】
車速センサ４は、自車両の走行速度（以下、車速）を検出し、その検出結果を示す車速信号を画像処理装置５へ出力する。
画像処理装置５は、ＣＰＵ、ＲＯＭ、ＲＡＭ、Ｉ／Ｏ及びこれらの構成を接続するバスラインなどからなる周知のマイクロコンピュータを中心に構成される。マイクロコンピュータの各種機能は、ＣＰＵが非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。この例では、ＲＯＭが、プログラムを格納した非遷移的実体的記録媒体に該当する。また、このプログラムの実行により、プログラムに対応する方法が実行される。なお、ＣＰＵが実行する機能の一部または全部を、一つあるいは複数のＩＣ等によりハードウェア的に構成してもよい。また、画像処理装置５を構成するマイクロコンピュータの数は１つでも複数でもよい。
【００１７】
このように構成された測距装置１において、画像処理装置５は、距離測定処理を実行する。この距離測定処理は、画像処理装置５の動作中において繰り返し実行される処理である。
【００１８】
この距離測定処理が実行されると、画像処理装置５は、図２に示すように、まずＳ１０にて、右撮像装置２から右画像データを取得するとともに、左撮像装置３から左画像データを取得する。そしてＳ２０にて、Ｓ１０で取得した右画像データが示す右撮影画像と、Ｓ１０で取得した左撮像データが示す左撮影画像との間の垂直方向のずれを補正し、右撮影画像と左撮影画像を互いに平行化する。具体的には、右撮影画像と左撮影画像との間で互いに対応関係にある画像領域（例えば、画素）の高さが一致するように、予め設定された補正パラメータに従って画素全体の垂直方向の座標を変換し、垂直方向のずれを補正する。
【００１９】
次にＳ３０にて、右撮影画像および左撮影画像のそれぞれについて動きベクトルを設定する。以下、右撮影画像および左撮影画像をまとめて撮影画像という。具体的には、図３に示すように、まず、撮影画像ＰＧを、Ｘ軸方向にｍ画素（ｍは正の整数）でＹ軸方向にｎ画素（ｎは正の整数）の矩形状の部分領域ＤＲに分割する。本実施形態では、撮影画像ＰＧは、例えば、Ｘ軸方向に沿って８０個の部分領域ＤＲが存在し、Ｙ軸方向に沿って８０個の部分領域ＤＲが存在するように分割される。
【００２０】
そして、複数の部分領域ＤＲのそれぞれについて、車速センサ４が検出した車速ｖと、画像処理装置５のＲＯＭに予め記憶されている動きベクトル設定マップとに基づいて、動きベクトルｆを設定する。
【００２１】
なお、動きベクトルｆは、下式（１）で表される。なお、下式（１）のｄは焦点距離、ｓは物体と撮像装置との相対速度、ｚは物体と撮像装置との距離である。
ｆ  ＝  ｄ×ｓ／ｚ    ・・・（１）
動きベクトル設定マップは、撮影画像ＰＧ内における部分領域ＤＲの位置と、車速センサ４が検出した車速ｖと、動きベクトルｆの大きさおよび方向との対応関係を示す。
【００２２】
次に、動きベクトル設定マップの作成方法を説明する。
自車両が車速ｖで直進していると仮定して動きベクトルｆを計算する。まず、撮影画像上の座標ｘ＝（ｘ１，ｙ１）において、自車両を原点とした実空間上の三次元座標Ｘ＝（Ｘ１，Ｙ１，Ｚ１）に位置する静止物が写っているとする。この場合に、撮影画像上の座標と実空間上の三次元点とを対応付けるカメラパラメータをＰとして、ｘ＝ＰＸが成り立つ。
【００２３】
自車両が車速ｖで直進しているため、予め設定されたベクトル算出用設定時間Δｔが経過した後における上記の静止物の自車両を原点とした実空間上の三次元座標Ｘ’＝（Ｘ２，Ｙ２，Ｚ２）は算出可能である。このため、予め設定されたベクトル算出用設定時間Δｔが経過した後における上記静止物の撮影画像上の座標ｘ’＝（ｘ２，ｙ２）は、ｘ’＝ＰＸ’により算出することができる。そして、動きベクトルｆは、（ｆ＝ｘ’−ｘ）により算出される。
【００２４】
このようにした動きベクトルｆの算出を、撮影画像ＰＧ内の全ての画素について実行する。そして、全ての部分領域ＤＲのそれぞれについて、部分領域ＤＲに含まれる画素の動きベクトルｆの平均を算出し、この平均化した動きベクトルｆを、部分領域ＤＲの動きベクトルｆとして決定する。
【００２５】
そして、このようにした部分領域ＤＲの動きベクトルｆの設定を複数の車速ｖで実行することにより、動きベクトル設定マップが作成される。なお、動きベクトル設定マップ内に記述されていない車速での動きベクトルｆについては、動きベクトル設定マップに記述されている車速の動きベクトルｆを用いた線形補間により算出することができる。
【００２６】
撮影画像上に動きベクトルｆを設定した具体例を図４に示す。図４に示す撮影画像ＰＧ上には、動きベクトルｆとして多数の白色の矢印が設定されている。
そして、Ｓ３０の処理が終了すると、図２に示すように、Ｓ４０にて、撮影画像上に、複数の処理領域ＰＲを設定する。図３に示すように、処理領域ＰＲは、Ｘ軸方向に２×ｍ画素でＹ軸方向にｎ画素（ｎは正の整数）の矩形状の領域である。すなわち、処理領域ＰＲは、Ｘ軸方向に２つ並べた部分領域ＤＲを備える。そして、撮影画像上に設定される複数の処理領域ＰＲはそれぞれ、少なくとも１つの部分領域ＤＲが他の処理領域ＰＲと異なるように設定される。
【００２７】
例えば、図３に示す撮影画像ＰＧでは、最も上の行に設定されている部分領域ＤＲを左から順に、部分領域ＤＲ１、部分領域ＤＲ２、部分領域ＤＲ３、部分領域ＤＲ４、部分領域ＤＲ５、部分領域ＤＲ６、・・・・・とする。また、最も上の行に設定されている処理領域ＰＲを左から順に、処理領域ＰＲ１、処理領域ＰＲ２、処理領域ＰＲ３、処理領域ＰＲ４、処理領域ＰＲ５、・・・・・とする。
【００２８】
この場合に、処理領域ＰＲ１は、部分領域ＤＲ１と部分領域ＤＲ２とを備える。処理領域ＰＲ２は、部分領域ＤＲ２と部分領域ＤＲ３とを備える。処理領域ＰＲ３は、部分領域ＤＲ３と部分領域ＤＲ４とを備える。処理領域ＰＲ４は、部分領域ＤＲ４と部分領域ＤＲ５とを備える。処理領域ＰＲ５は、部分領域ＤＲ５と部分領域ＤＲ６とを備える。
【００２９】
そして、Ｓ４０の処理が終了すると、図２に示すように、Ｓ５０にて、右撮影画像および左撮影画像の全ての処理領域ＰＲについて、処理領域ＰＲ内の画像の動きぼけを除去するフィルタ処理を行う。具体的には、まず、全ての処理領域ＰＲのそれぞれについて、下式（２），（３），（４），（５）で示すフーリエ変換を実行する。下式（２）〜（５）のｆｆｔは、フーリエ変換を示す。
【００３０】
下式（２）は、処理領域ＰＲにおける輝度Ｉの二次元分布に対するフーリエ変換により、輝度Ｉの周波数特性Ｌを算出することを示す。下式（３）は、処理領域ＰＲにおける動きベクトルｆの二次元分布に対するフーリエ変換により、動きベクトルｆの周波数特性Ｆを算出することを示す。
【００３１】
下式（４）は、Ｘ軸方向の微分演算子ｆｘに対するフーリエ変換により、微分演算子ｆｘの周波数特性Ｆｘを算出することを示す。微分演算子ｆｘは、下式（６）で定義される。下式（５）は、Ｙ軸方向の微分演算子ｆｙに対するフーリエ変換により、微分演算子ｆｙの周波数特性Ｆｙを算出することを示す。微分演算子ｆｙは、下式（７）で定義される。
【００３２】
【数１】
2018066604.tif 000003
全ての処理領域ＰＲについて下式（２）〜（５）で示すフーリエ変換を実行した後に、全ての処理領域ＰＲのそれぞれについて、下式（８）で示す逆フーリエ変換を実行する。下式（８）のｉｆｆｔは、逆フーリエ変換を示す。下式（８）のλは、画像の滑らかさを調整するためのパラメータである。下式（８）の左辺の画像ｘは、フィルタ処理が行われた後の処理領域ＰＲにおける輝度Ｉの二次元分布を示す。
【００３３】
【数２】
2018066604.tif 000004
なお、上式（８）における右辺の括弧内の分子は、周波数特性ＬとインバースＦとの積である。インバースＦは、（１／Ｆ）であり、動きベクトルｆの周波数特性Ｆに掛けることにより振幅が１となり位相が０になるものである。
【００３４】
ここで、フーリエ変換を用いて、画像のぼけを除去する手法について簡単に説明する。
まず、ぼけた画像ｇ（ｘ、ｙ）と、ぼけのない画像ｆ（ｘ、ｙ）との関係を、下式（９）でモデル化する。ここで、下式（９）のｈ（ｘ、ｙ）は、ぼけ関数である。また、下式（９）のｎ（ｘ、ｙ）は、ノイズである。なお、下式（９）の右辺の「＊」は乗算記号ではなく、畳み込みの演算記号である。
【００３５】
【数３】
2018066604.tif 000005
ぼけ関数ｈ（ｘ、ｙ）は、下式（１０）に示すように、ぼけのない画像ｆ（ｘ、ｙ）の各画素に適用される。このように、ぼけ関数を各画素に適用する演算を畳み込みという。
【００３６】
【数４】
2018066604.tif 000006
ぼけた画像ｇ（ｘ、ｙ）から、ぼけのない画像ｆ（ｘ、ｙ）を直接的に導出するには、多くの連立方程式を解く必要があり、困難を伴う。しかし、フーリエ変換を用いて畳み込み定理を適用すると、下式（１１）が成立することが知られている。空間領域の畳み込みは、周波数領域での単純な積で表されるためである。
【００３７】
【数５】
2018066604.tif 000007
したがって、周波数領域おいて、ぼけた画像Ｇ（ｕ、ｖ）と、ぼけのない画像Ｆ（ｕ、ｖ）との関係を、下式（１２）でモデル化することができる。ここで、下式（１２）のＮ（ｕ、ｖ）は、周波数領域におけるノイズである。
【００３８】
【数６】
2018066604.tif 000008
下式（１２）に示すぼけた画像Ｇ（ｕ、ｖ）を、周波数領域におけるぼけ関数Ｈ（ｕ、ｖ）で除算することにより、ぼけのない画像が得られる。但し、下式（１３）に示すように、Ｇ（ｕ、ｖ）をＨ（ｕ、ｖ）で除算することより、周波数領域においてぼけが除去された画像Ｆ＾（ｕ、ｖ）が得られる。
【００３９】
【数７】
2018066604.tif 000009
但し、一般的に、Ｈ（ｕ、ｖ）は、０となるか０付近の値となる場合が多い。これにより、ノイズ部分（すなわち、Ｎ（ｕ、ｖ）／Ｈ（ｕ、ｖ））を増幅させてしまい、ぼけの除去が困難となることが多いため、種々のフィルタ処理が提案されている。例えば、下式（１４）に、「Constrained Least Square Filtering」と呼ばれる手法を示す。
【００４０】
【数８】
2018066604.tif 000010
本実施形態では、下式（１４）のｙ｜Ｐ（ｕ，ｖ）｜２の部分を、下式（１５）に置き換えたものを使用している。下式（１５）は、ノイズ成分を模擬する形になっており、この大きさをパラメータλで調整することにより、ぼけが除去された画像を復元できるようにしている。なお、パラメータλを大きくすると画像が滑らかになり、パラメータλを小さくすると画像がざらつく。
【００４１】
【数９】
2018066604.tif 000011
そして、Ｓ５０の処理が終了すると、図２に示すように、Ｓ６０にて、Ｓ５０でのフィルタ処理が行われた全ての処理領域ＰＲのそれぞれについて、三角窓関数ｗを適用する。三角窓関数ｗは、図５に示すように、処理領域ＰＲにおけるＸ軸方向の位置と、重み係数との対応関係が三角形となるように設定されている。具体的には、まず、１つの処理領域ＰＲ内において最も左に位置している画素のＸ軸方向の位置を１［ピクセル］とし、最も右側に位置している画素のＸ軸方向の位置を２ｍ［ピクセル］とする。そして、Ｘ軸方向の位置が１［ピクセル］および２ｍ［ピクセル］のときの重み係数を０とし、Ｘ軸方向の位置が（ｍ＋０．５）［ピクセル］のときの重み係数を１とする。そして、Ｘ軸方向の位置が１［ピクセル］と（ｍ＋０．５）［ピクセル］との間である場合には、Ｘ軸方向の位置をｘとして、重み係数を｛（ｘ−１）／（ｍ−０．５）｝とする。一方、Ｘ軸方向の位置が（ｍ＋０．５）［ピクセル］と２ｍ［ピクセル］との間である場合には、Ｘ軸方向の位置をｘとして、重み係数を｛（２ｍ−ｘ）／（ｍ−０．５）｝とする。
【００４２】
Ｓ６０では、全ての処理領域ＰＲの中から１つの処理領域ＰＲを選択し、選択した処理領域ＰＲを構成する全ての画素のそれぞれについて、画素のＸ軸方向の位置を特定し、特定したＸ軸方向の位置に対応する重み係数を、三角窓関数ｗを用いて算出する。そして、算出した重み係数と、画素の輝度とを乗算し、この乗算値を、画素の新たな輝度として更新する。このようにした全画素の輝度の更新を、全ての処理領域ＰＲについて実行する。
【００４３】
そして、Ｓ６０の処理が終了すると、図２に示すように、Ｓ７０にて、Ｓ６０で三角窓関数ｗが適用された後の処理領域ＰＲを統合して、右撮影画像および左撮影画像のそれぞれを復元する。以下、Ｓ７０にて復元された後の撮影画像を復元後撮影画像という。また、Ｓ７０にて復元された後の右撮影画像を復元後右撮影画像、復元された後の左撮影画像を復元後左撮影画像という。
【００４４】
具体的には、Ｓ６０で三角窓関数ｗが適用された後の全ての処理領域ＰＲについて、撮影画像内における位置が同一の画素を抽出し、抽出した１または複数の画素の輝度の総和を算出する。この総和を、下式（１６）で示す三角窓関数ｗの総和Ｓｗで除算し、この除算値を、上記の位置における画素の輝度とする。下式（１６）において、ｗｉは、画素のＸ軸方向の位置がｉであるときの重み係数である。また、ｉは１から２ｍまでの整数である。
【００４５】
【数１０】
2018066604.tif 000012
例えば、図６に示すように、処理領域ＰＲ２においてＸ軸方向の位置がｓ［ピクセル］でありＹ軸方向の位置がｔ［ピクセル］である画素ＰＸ２と、処理領域ＰＲ３においてＸ軸方向の位置が（ｓ−ｍ）［ピクセル］でありＹ軸方向の位置がｔ［ピクセル］である画素ＰＸ３は、撮影画像内における位置が同一である。このため、画素ＰＸ２の輝度と画素ＰＸ３の輝度とを加算し、この加算値を三角窓関数ｗの総和Ｓｗで除算する。
【００４６】
このようにした輝度の計算を、撮影画像内における全ての画素について実行する。
そして、Ｓ７０の処理が終了すると、図２に示すように、Ｓ８０にて、視差算出処理を実行する。ここで、Ｓ８０で実行される視差算出処理の手順を説明する。
【００４７】
この視差算出処理が実行されると、画像処理装置５は、図７に示すように、まずＳ２１０にて、右撮影画像および左撮影画像のそれぞれに対応する復元後右撮影画像および復元後左撮影画像を用いて、節点空間ＮＰＳ内に節点ＮＰを配置するとともに、節点ＮＰのコストを算出する。
【００４８】
具体的には、図８に示すように、復元後右撮影画像および復元後左撮影画像のそれぞれについて、撮影画像を構成する各画素の位置を、物理座標系で設定する。物理座標は、撮影画像の左上の角を原点として、Ｘ軸の正方向が右向きとなり、Ｙ軸の正方向が下向きとなる座標である。これにより、撮影画像を構成する各画素の位置が、ピクセル単位で設定される。以下、Ｘ軸方向の位置をＸ座標位置、Ｙ軸方向の位置をＹ座標位置という。また、復元後右撮影画像および復元後左撮影画像をそれぞれ、基準画像および比較画像ともいう。
【００４９】
そして、基準画像を、Ｘ軸方向にｐ画素（ｐは正の整数）でＹ軸方向にｑ画素（ｑは正の整数）の矩形状のブロックＢＬに分割する。
次に、分割された複数のブロックＢＬのそれぞれについて、領域ＳＲで示すように、比較画像の中からＹ座標位置が同じ領域を探索領域として設定する。この探索領域において、ブロックＢＬとの視差が互いに異なり、且つ、ブロックＢＬと同じ大きさ（すなわち、Ｘ軸方向にｐ画素でＹ軸方向にｑ画素の矩形）の複数のブロックを節点設定用ブロックＢＬｎとして抽出する。そして、抽出された複数の節点設定用ブロックＢＬｎに基づいて、節点空間ＮＰＳ内に節点ＮＰを配置する。節点空間ＮＰＳは、図９に示すように、ブロックＢＬのＸ座標位置をＸ軸とし、ブロックＢＬのＹ座標位置をＹ軸とし、ブロックＢＬに対応する節点設定用ブロックＢＬｎの視差をＺ軸とした３次元直交座標空間である。
【００５０】
例えば、図８では、基準画像内のブロックＢＢ１について、矢印ＡＬ１で示すように、探索領域ＳＲ内でＸ座標位置が同じブロックＢＣ１（１）を節点設定用ブロックＢＬｎとして抽出するとする。この場合に、ブロックＢＢ１のＸ座標位置をｘ１、ブロックＢＢ１のＹ座標位置をｙ１、ブロックＢＢ１とブロックＢＣ１（１）との視差をｄ１と表記すると、矢印ＡＬ２で示すように、ブロックＢＣ１（１）に対応する節点ＮＰ１（１）は節点空間ＮＰＳ内の（ｘ１，ｙ１，ｄ１）に配置される。なお、図８に示す節点空間ＮＰＳは、Ｙ座標がｙ１であるＸ−Ｚ平面である。
【００５１】
また、基準画像内のブロックＢＢ１について、矢印ＡＬ３で示すように、探索領域ＳＲ内でＸ座標位置が異なるブロックＢＣ１（２）を節点設定用ブロックＢＬｎとして抽出するとする。この場合に、ブロックＢＢ１とブロックＢＣ１（２）との視差をｄ２と表記すると、矢印ＡＬ４で示すように、ブロックＢＣ１（２）に対応する節点ＮＰ１（２）は節点空間ＮＰＳ内の（ｘ１，ｙ１，ｄ２）に配置される。
【００５２】
また、基準画像内のブロックＢＢ１に隣接するブロックＢＢ２についても、ブロックＢＢ１と同じ探索領域ＳＲ内で節点設定用ブロックＢＬｎを抽出する。
例えば、基準画像内のブロックＢＢ２について、矢印ＡＬ５で示すように、探索領域ＳＲ内でＸ座標位置が同じブロックＢＣ２（１）を節点設定用ブロックＢＬｎとして抽出するとする。この場合に、ブロックＢＢ２のＸ座標位置をｘ２、ブロックＢＬのＹ座標位置をｙ１、ブロックＢＢ２とブロックＢＣ２（１）との視差をｄ１と表記すると、矢印ＡＬ６で示すように、ブロックＢＣ２（１）に対応する節点ＮＰ２（１）は節点空間ＮＰＳ内の（ｘ２，ｙ１，ｄ１）に配置される。
【００５３】
また、節点空間ＮＰＳ内に配置された複数の節点ＮＰのそれぞれについて、コストを算出する。コストは、節点ＮＰを節点空間ＮＰＳ内に配置する際に用いられた２つのブロック間の類似度を表す値である。上記２つのブロックは、基準画像内のブロックＢＬと、このブロックＢＬに対応して節点ＮＰを配置するために比較画像から抽出された節点設定用ブロックＢＬｎである。例えば、節点ＮＰ１（１）のコストは、ブロックＢＢ１と、ブロックＢＣ１（１）とを用いて算出される。
【００５４】
節点空間ＮＰＳ内における節点ＮＰのＸ座標位置とＹ座標位置をまとめて節点位置ｐと表記し、節点ＮＰの視差をｕｐと表記する。さらに、節点空間ＮＰＳ内において節点位置ｐと視差ｕｐで特定される位置に配置される節点ＮＰのコストをＤ（ｐ，ｕｐ）と表記する。
【００５５】
本実施形態では、周知のＳＳＩＭ（Structural Similarity）を用いて、コストＤ（ｐ，ｕｐ）を下式（１７）で算出する。
【００５６】
【数１１】
2018066604.tif 000013
なお、上式（１７）において、μｘは、基準画像内のブロックＢＬに含まれる画素の輝度の平均値である。μｙは、比較画像内の節点設定用ブロックＢＬｎに含まれる画素の輝度の平均値である。σｘは、基準画像内のブロックＢＬに含まれる画素の輝度の標準偏差である。σｙは、比較画像内の節点設定用ブロックＢＬｎに含まれる画素の輝度の標準偏差である。σｘｙは、基準画像内のブロックＢＬと比較画像内の節点設定用ブロックＢＬｎに含まれる画素の輝度の共分散である。ｃ１，ｃ２，ｃ３，α，β，γは予め設定される定数である。
【００５７】
このようにして、分割されたブロックＢＬの全てについて節点ＮＰを節点空間ＮＰＳ内に配置するとともに、配置された節点ＮＰの全てについてコストＤ（ｐ，ｕｐ）を算出すると、Ｓ２１０の処理を終了する。
【００５８】
Ｓ２１０の処理が終了すると、図７に示すように、Ｓ２２０にて、節点ＮＰのＸ方向移動コストＥｘを算出する。Ｘ方向移動コストＥｘについては後述する。図８に示すように、ブロックＢＬはＹ軸方向に沿ってｑ画素毎に分割されている。このため、図１０の平面ＰＬ１，ＰＬ２，ＰＬ３で示すように、節点空間ＮＰＳ内には、複数の節点ＮＰが配置されたＸ−Ｚ平面がＹ軸方向に沿ってｑ画素毎に存在する。
【００５９】
これら複数のＸ−Ｚ平面のそれぞれについて、節点ＮＰのＸ方向移動コストＥｘを算出する。以下に、節点ＮＰのＸ方向移動コストＥｘの算出方法を説明する。
例えば、図８に示すように、Ｘ−Ｚ平面において、複数の節点ＮＰが２次元行列状に配列されているとする。また、以下の説明のために、Ｚ軸方向を列方向とし、Ｘ軸方向を行方向として、第ｉ行（ｉは正の整数）の第ｊ列（ｊは正の整数）に位置する節点ＮＰをＮＰ（ｉ，ｊ）と表記する。なお、視差が小さいほどｉは小さくなり、Ｘ座標位置が原点から近いほどｊは小さくなる。
【００６０】
まず、Ｘ−Ｚ平面に配列されている複数の節点ＮＰの中から１つの節点ＮＰを終点として選択する。Ｘ座標位置が原点から最も近い複数の節点ＮＰ（すなわち、第ｉ行の第１列に位置する節点ＮＰ）のうちの１つを始点とする。そして、図８と図１０の移動方向Ｍ１で示すように、始点から、Ｘ軸の正方向に向かって、隣の列（すなわち、第２列）に位置する複数の節点ＮＰのうちの１つへ移動させる。さらに、移動した節点ＮＰから更に隣の列（すなわち、第３列）に位置する複数の節点ＮＰのうちの１つへ移動させる。このように、始点の節点ＮＰから、Ｘ軸の正方向に向かって１列ずつ節点ＮＰへ順次移動させ、終点として選択された節点ＮＰまで移動させた１つの移動経路を確定する。以下、この移動経路を右方向移動経路という。図８では、左からＮＰ（４，１）、ＮＰ（３，２）、ＮＰ（３，３）、ＮＰ（３，４）の順に右方向へ移動する右方向移動経路を示している。
【００６１】
そして、確定した移動経路のコストＥを、下式（１８）で算出する。
【００６２】
【数１２】
2018066604.tif 000014
上式（１８）の右辺の第１項は、移動経路上に存在する節点ＮＰのコストＤ（ｐ，ｕｐ）の総和を示す。上式（１８）の右辺の第１項は、データ項という。上式（１８）の右辺の第２項は、正則化項である。上式（１８）の右辺の第２項のＳ（ｕｐ，ｕｑ）は、視差がｕｐである節点ＮＰから、視差がｕｑである節点ＮＰへ移動する場合の視差コストである。Ｓ（ｕｐ，ｕｑ）は、視差ｕｐと視差ｕｑとの差が大きくほど値が大きくなるように設定された関数である。本実施形態では、Ｓ（ｕｐ，ｕｑ）は、視差ｕｐと視差ｕｑとの差分の絶対値である。したがって、上式（１８）の右辺の第２項は、移動経路を通過することによる視差の変化の総和を示す。
【００６３】
このようにして、第１列に位置する複数の節点ＮＰの何れか１点を始点とし、複数の節点ＮＰの中から選択された１つの節点ＮＰを終点とした場合において可能な全ての移動経路を確定することができ、確定した全ての移動経路についてコストＥを算出することができる。これにより、コストＥが最小となる移動経路を特定することができる。
【００６４】
本実施形態では、上記のように全ての移動経路でコストＥを算出する代わりに、動的計画法の一種である周知のビタビアルゴリズムを用いて、コストＥが最小となる移動経路を特定する演算を行う。
【００６５】
Ｓ２２０では、コストＥが最小となる右方向移動経路の特定を、１つのＸ−Ｚ平面に配列されている全ての節点ＮＰについて行う。これにより、このＸ−Ｚ平面に配列されている全ての節点ＮＰのそれぞれについて、右方向移動経路の最小コスト（以下、右方向移動コスト）が算出される。
【００６６】
次に、右方向移動コストの算出と同様にして、このＸ−Ｚ平面に配列されている全ての節点ＮＰのそれぞれについて、左方向移動経路の最小コスト（以下、左方向移動コスト）を算出する。
【００６７】
具体的には、Ｘ−Ｚ平面に配列されている複数の節点ＮＰの中から１つの節点ＮＰを終点として選択する。Ｘ座標位置が原点から最も遠い複数の節点ＮＰ（すなわち、第ｉ行の最終列に位置する節点ＮＰ）のうちの１つを始点とする。そして、図８と図１０の移動方向Ｍ２で示すように、始点から、Ｘ軸の負方向に向かって、隣の列に位置する複数の節点ＮＰのうちの１つへ移動させる。さらに、移動した節点ＮＰから更に隣の列に位置する複数の節点ＮＰのうちの１つへ移動させる。このように、始点の節点ＮＰから、Ｘ軸の負方向に向かって１列ずつ節点ＮＰへ順次移動させ、終点として選択された節点ＮＰまで移動させた１つの移動経路を確定する。以下、この移動経路を左方向移動経路という。
【００６８】
Ｓ２２０では、右方向移動経路の場合と同様にして、コストＥが最小となる左方向移動経路の特定を、１つのＸ−Ｚ平面に配列されている全ての節点ＮＰについて行う。これにより、このＸ−Ｚ平面に配列されている全ての節点ＮＰのそれぞれについて、左方向移動経路の最小コスト（以下、左方向移動コスト）が算出される。
【００６９】
そして、Ｓ２２０では、このＸ−Ｚ平面に配列されている全ての節点ＮＰのそれぞれについて、右方向移動コストと左方向移動コストとを加算した加算値を、Ｘ方向移動コストＥｘとして算出する。
【００７０】
このＸ−Ｚ平面でＸ方向移動コストＥｘの算出が終了すると、次のＸ−Ｚ平面について、同様にして、Ｘ方向移動コストＥｘの算出を行う。そして、全てのＸ−Ｚ平面についてＸ方向移動コストＥｘの算出を行うと、Ｓ２２０の処理を終了する。
【００７１】
Ｓ２２０の処理が終了すると、図７に示すように、Ｓ２３０にて、節点ＮＰのＹ方向移動コストＥｙを算出する。Ｙ方向移動コストＥｙについては後述する。ブロックＢＬは、図５に示すように、Ｘ軸方向に沿ってｐ画素毎に分割されている。このため、図１１の平面ＰＬ１１，ＰＬ１２，ＰＬ１３，ＰＬ１４で示すように、節点空間ＮＰＳ内には、複数の節点ＮＰが配置されたＹ−Ｚ平面がＸ軸方向に沿ってｐ画素毎に存在する。
【００７２】
Ｓ２３０では、これら複数のＹ−Ｚ平面のそれぞれについて、節点ＮＰのＹ方向移動コストＥｙを算出する。節点ＮＰのＹ方向移動コストＥｙの算出は、Ｘ−Ｚ平面の代わりにＹ−Ｚ平面を用いている点が、上述したＸ方向移動コストＥｘの算出と異なる。
【００７３】
具体的には、Ｙ−Ｚ平面において、図１１の移動方向Ｍ３で示すように、Ｙ座標位置が原点から最も近い複数の節点ＮＰのうちの１つを始点して、Ｙ軸の正方向に向かって、１列ずつ節点ＮＰへ順次移動させ、終点として選択された節点ＮＰまで移動させた移動経路を下方向移動経路とする。また、Ｙ−Ｚ平面において、図１１の移動方向Ｍ４で示すように、Ｙ座標位置が原点から最も遠い複数の節点ＮＰのうちの１つを始点して、Ｙ軸の負方向に向かって、１列ずつ節点ＮＰへ順次移動させ、終点として選択された節点ＮＰまで移動させた移動経路を上方向移動経路とする。
【００７４】
Ｓ２３０では、コストＥが最小となる下方向移動経路と上方向移動経路の特定を、１つのＹ−Ｚ平面に配列されている全ての節点ＮＰについて行う。これにより、このＹ−Ｚ平面に配列されている全ての節点ＮＰのそれぞれについて、下方向移動経路の最小コスト（以下、下方向移動コスト）と、上方向移動経路の最小コスト（以下、上方向移動コスト）が算出される。
【００７５】
そして、Ｓ２３０では、このＹ−Ｚ平面に配列されている全ての節点ＮＰのそれぞれについて、下方向移動コストと上方向移動コストとを加算した加算値を、Ｙ方向移動コストＥｙとして算出する。
【００７６】
このＹ−Ｚ平面でＹ方向移動コストＥｙの算出が終了すると、次のＹ−Ｚ平面について、同様にして、Ｙ方向移動コストＥｙの算出を行う。そして、全てのＹ−Ｚ平面についてＹ方向移動コストＥｙの算出を行うと、Ｓ２３０の処理を終了する。
【００７７】
Ｓ２３０の処理が終了すると、図７に示すように、Ｓ２４０にて、節点ＮＰの右斜め方向移動コストＥｘ−ｙを算出する。右斜め方向移動コストＥｘ−ｙについては後述する。
Ｓ２４０では、まず、図１２の平面ＰＬ２１，ＰＬ２２，ＰＬ２３で示すように、節点空間ＮＰＳ内において、Ｘ軸とＹ軸との間に跨ってＸ−Ｙ平面と垂直になるように形成された複数の平面（以下、右斜め平面）を設定する。これら複数の右斜め平面は、互いに平行となるように、且つ、その平面の全面に亘って節点ＮＰが配置されるように設定されている。
【００７８】
Ｓ２４０では、これら複数の右斜め平面のそれぞれについて、節点ＮＰの右斜め方向移動コストＥｘ−ｙを算出する。節点ＮＰの右斜め方向移動コストＥｘ−ｙの算出は、Ｘ−Ｚ平面の代わりに右斜め平面を用いている点が、上述したＸ方向移動コストＥｘの算出と異なる。
【００７９】
具体的には、右斜め平面において、図１２の移動方向Ｍ５で示すように、Ｙ軸から最も近い複数の節点ＮＰのうちの１つを始点して、Ｘ軸に向かって、１列ずつ節点ＮＰへ順次移動させ、終点として選択された節点ＮＰまで移動させた移動経路を右上方向移動経路とする。また、右斜め平面において、図１２の移動方向Ｍ６で示すように、Ｘ軸からから最も遠い複数の節点ＮＰのうちの１つを始点して、Ｙ軸に向かって、１列ずつ節点ＮＰへ順次移動させ、終点として選択された節点ＮＰまで移動させた移動経路を左下方向移動経路とする。
【００８０】
Ｓ２４０では、コストＥが最小となる右上方向移動経路と左下方向移動経路の特定を、１つの右斜め平面に配列されている全ての節点ＮＰについて行う。これにより、この右斜め平面に配列されている全ての節点ＮＰのそれぞれについて、右上方向移動経路の最小コスト（以下、右上方向移動コスト）と、左下方向移動経路の最小コスト（以下、左下方向移動コスト）が算出される。
【００８１】
そして、Ｓ２４０では、この右斜め平面に配列されている全ての節点ＮＰのそれぞれについて、右上方向移動コストと左下方向移動コストとを加算した加算値を、右斜め方向移動コストＥｘ−ｙとして算出する。
【００８２】
この右斜め平面で右斜め方向移動コストＥｘ−ｙとの算出が終了すると、次の右斜め平面について、同様にして、右斜め方向移動コストＥｘ−ｙの算出を行う。そして、全ての右斜め平面について右斜め方向移動コストＥｘ−ｙの算出を行うと、Ｓ２４０の処理を終了する。
【００８３】
Ｓ２４０の処理が終了すると、図７に示すように、Ｓ２５０にて、節点ＮＰの左斜め方向移動コストＥｘ＋ｙを算出する。左斜め方向移動コストＥｘ＋ｙについては後述する。
Ｓ２５０では、まず、図１３の平面ＰＬ３１，ＰＬ３２，ＰＬ３３，ＰＬ３４で示すように、節点空間ＮＰＳ内において、右斜め平面と交差するように形成された複数の平面（以下、左斜め平面）を設定する。。これら複数の左斜め平面は、互いに平行となるように、且つ、その平面の全面に亘って節点ＮＰが配置されるように設定されている。
【００８４】
Ｓ２５０では、これら複数の左斜め平面のそれぞれについて、節点ＮＰの左斜め方向移動コストＥｘ＋ｙを算出する。節点ＮＰの左斜め方向移動コストＥｘ＋ｙの算出は、Ｘ−Ｚ平面の代わりに左斜め平面を用いている点が、上述したＸ方向移動コストＥｘの算出と異なる。
【００８５】
具体的には、左斜め平面において、図１３の移動方向Ｍ７で示すように、原点から最も近い複数の節点ＮＰのうちの１つを始点して、原点から離れる方向に向かって、１列ずつ節点ＮＰへ順次移動させ、終点として選択された節点ＮＰまで移動させた移動経路を右下方向移動経路とする。また、左斜め平面において、図１３の移動方向Ｍ８で示すように、原点から最も遠い複数の節点ＮＰのうちの１つを始点して、原点へ近付く方向に向かって、１列ずつ節点ＮＰへ順次移動させ、終点として選択された節点ＮＰまで移動させた移動経路を左上方向移動経路とする。
【００８６】
Ｓ２５０では、コストＥが最小となる右下方向移動経路と左上方向移動経路の特定を、１つの左斜め平面に配列されている全ての節点ＮＰについて行う。これにより、この左斜め平面に配列されている全ての節点ＮＰのそれぞれについて、右下方向移動経路の最小コスト（以下、右下方向移動コスト）と、左上方向移動経路の最小コスト（以下、左上方向移動コスト）が算出される。
【００８７】
そして、Ｓ２５０では、この左斜め平面に配列されている全ての節点ＮＰのそれぞれについて、右下方向移動コストと左上方向移動コストとを加算した加算値を、左斜め方向移動コストＥｘ＋ｙとして算出する。
【００８８】
この左斜め平面で左斜め方向移動コストＥｘ＋ｙとの算出が終了すると、次の左斜め平面について、同様にして、左斜め方向移動コストＥｘ＋ｙの算出を行う。そして、全ての左斜め平面について左斜め方向移動コストＥｘ＋ｙの算出を行うと、Ｓ２５０の処理を終了する。
【００８９】
Ｓ２５０の処理が終了すると、図７に示すように、Ｓ２６０にて、節点空間ＮＰＳ内の全ての節点ＮＰについて、総方向移動コストＥｓｕｍを、下式（１９）で算出する。
【００９０】
【数１３】
2018066604.tif 000015
そしてＳ２７０にて、基準画像を構成する全てのブロックＢＬのそれぞれについて、ブロックＢＬと同じＸ座標位置とＹ座標位置を有して視差が互いに異なる複数の節点ＮＰの中から、総方向移動コストＥｓｕｍが最小となる節点ＮＰを選択する。
【００９１】
さらにＳ２８０にて、Ｓ２７０で選択された節点ＮＰの視差を、対応するブロックＢＬの視差として決定する。Ｓ２８０にて、基準画像を構成する全てのブロックＢＬについて視差を決定すると、視差算出処理を終了する。
【００９２】
Ｓ８０の処理が終了すると、図２に示すように、Ｓ９０にて、基準画像を構成する全てのブロックＢＬｍについて、Ｓ８０で算出された視差に基づき、視差を用いた周知の距離算出式を用いて距離を算出し、距離測定処理を終了する。これにより、基準画像を構成するブロックＢＬｍ毎に、ブロックＢＬｍ内に写っている物体までの距離が特定される。
【００９３】
このように構成された測距装置１は、互いに異なる視点から同一の撮影領域を含むように同時に撮影された右撮影画像および左撮影画像を取得する。測距装置１は、右撮影画像および左撮影画像のそれぞれについて、撮影画像を、複数の画素で構成された部分領域ＤＲに分割し、分割された複数の部分領域ＤＲ毎に、部分領域ＤＲ内に写っている物体が撮影画像内で移動する大きさと方向とを示す動きベクトルｆを設定する。
【００９４】
測距装置１は、右撮影画像および左撮影画像のそれぞれについて、上式（２）〜（８）に示すように、少なくとも、撮影画像の周波数特性Ｌを、撮影画像に設定された動きベクトルｆの周波数特性Ｆで除算した演算を行い、更に、この演算結果の周波数特性に対応する復元後撮影画像を生成する。
【００９５】
測距装置１は、右撮影画像および左撮影画像のそれぞれに対応して生成された復元後右撮影画像および復元後左撮影画像を用いて、復元後右撮影画像と復元後左撮影画像間との間の視差を検出する。
【００９６】
なお測距装置１は、撮影画像の輝度Ｉの二次元分布に対してフーリエ変換を行うことにより周波数特性Ｌを算出する。また測距装置１は、撮影画像に設定された動きベクトルｆの二次元分布に対してフーリエ変換を行うことにより周波数特性Ｆを算出する。また測距装置１は、演算結果に対して逆フーリエ変換を行うことにより、復元後撮影画像を生成する。
【００９７】
このように測距装置１は、周波数特性Ｌを周波数特性Ｆで除算した演算を行うことにより、動きベクトルｆの大きさと方向に応じた動きぼけを抑制することができる。そして動きベクトルｆは、撮影画像内に写っている物体が撮影画像内で移動する大きさと方向とを示す。このため、測距装置１は、撮影画像内に写っている物体が撮影画像内で移動することに起因して撮影画像に生じる動きぼけを抑制することができ、視差検出の精度を向上させることができる。
【００９８】
図１４に、動きぼけを抑制する前の撮影画像Ｇ１を用いた距離測定結果と、動きぼけを抑制した後の撮影画像Ｇ２を用いた距離測定結果とを示す。
図１４に示す画像Ｇ１は、自車両がトンネル内を走行しているときに右撮像装置２で撮影された画像である。画像Ｇ２は、画像Ｇ１から動きぼけを抑制した後の画像である。
【００９９】
図１４に示す画像Ｇ３は、画像Ｇ１において指示円ＣＩ１で示す領域を用いて距離を測定した結果を示す。画像Ｇ４は、画像Ｇ２において指示円ＣＩ２で示す領域を用いて距離を測定した結果を示す。
【０１００】
図１４の画像Ｇ３と画像Ｇ４とを比較すると明らかなように、画像Ｇ４は、画像Ｇ３よりも、距離の長短を示す濃淡の変化が明確になっており、画像Ｇ２は画像Ｇ１よりも動きぼけが抑制されている。
【０１０１】
また測距装置１は、車両に搭載され、車両の走行速度を検出する車速センサ４を備える。測距装置１は、車速センサ４により検出された車速と、撮影画像内における部分領域ＤＲの位置とに基づいて、部分領域ＤＲに動きベクトルｆを設定する。
【０１０２】
これにより、測距装置１は、撮影時刻の異なる少なくとも２枚の撮影画像から同一の物体を探索して、少なくとも２枚の撮影画像における物体の位置の相違から動きベクトルｆを算出するという処理を行うことなく、簡便に動きベクトルｆを設定することができる。このため、測距装置１は、測距装置１の処理負荷を低減することができる。
【０１０３】
以上説明した実施形態において、画像処理装置５は視差検出装置に相当し、Ｓ１０は画像取得部としての処理に相当し、Ｓ３０はベクトル設定部としての処理に相当し、Ｓ４０〜Ｓ７０は画像生成部としての処理に相当し、Ｓ８０は視差検出部としての処理に相当する。
【０１０４】
また、周波数特性Ｌは画像周波数特性に相当し、周波数特性Ｆはベクトル周波数特性に相当し、復元後右撮影画像および復元後左撮影画像は演算後画像に相当し、車速センサ４は車速検出部に相当する。
【０１０５】
以上、本開示の一実施形態について説明したが、本開示は上記実施形態に限定されるものではなく、種々変形して実施することができる。
［変形例１］
例えば上記実施形態では、２台の撮像装置（すなわち、右撮像装置２と左撮像装置３）を用いて視差を検出するものを示したが、３台以上の撮像装置を用いるようにしてもよい。
【０１０６】
［変形例２］
上記実施形態では、動きベクトル設定マップに基づいて動きベクトルｆを設定するものを示した。しかし、動きベクトルｆの設定方法はこれに限定されるものではなく、例えば、撮影時刻の異なる少なくとも２枚の撮影画像から同一の物体を探索して、複数の撮影画像における物体の位置の相違から動きベクトルｆを算出するようにしてもよい。撮影時刻の異なる複数の撮影画像から同一の物体を探索する方法としては、例えば、周知のオプティカルフローが挙げられる。このように、複数の撮影画像から同一の物体を探索することにより、部分領域ＤＲ内に写っている物体が撮影画像内で移動する大きさと方向を示す動きベクトルを正確に設定することができる。このため、測距装置１は、動きぼけを更に抑制することができ、視差検出の精度を更に向上させることができる。
【０１０７】
［変形例３］
上記実施形態では、部分領域ＤＲに含まれる画素の動きベクトルｆの平均を算出し、この平均化した動きベクトルｆを、部分領域ＤＲの動きベクトルｆとして決定するものを示した。しかし、部分領域ＤＲの動きベクトルｆを、部分領域ＤＲの中心位置の画素における動きベクトルｆで代表させるようにしてもよい。
【０１０８】
また、上記実施形態における１つの構成要素が有する機能を複数の構成要素に分担させたり、複数の構成要素が有する機能を１つの構成要素に発揮させたりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加、置換等してもよい。なお、特許請求の範囲に記載の文言から特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
【０１０９】
上述した測距装置１の他、当該測距装置１を構成要素とするシステム、当該測距装置１としてコンピュータを機能させるためのプログラム、このプログラムを記録した媒体、視差検出方法など、種々の形態で本開示を実現することもできる。
【符号の説明】
【０１１０】
１…測距装置、２…右撮像装置、３…左撮像装置、５…画像処理装置、
【図１】
2018066604.tif 000016
【図２】
2018066604.tif 000017
【図３】
2018066604.tif 000018
【図４】
2018066604.tif 000019
【図５】
2018066604.tif 000020
【図６】
2018066604.tif 000021
【図７】
2018066604.tif 000022
【図８】
2018066604.tif 000023
【図９】
2018066604.tif 000024
【図１０】
2018066604.tif 000025
【図１１】
2018066604.tif 000026
【図１２】
2018066604.tif 000027
【図１３】
2018066604.tif 000028
【図１４】
2018066604.tif 000029