(57)【特許請求の範囲】
【請求項１】
視差を有する複数の画像を画像処理する画像処理装置（１０）にて実行され、複数の画像間の対応点を探索する対応点探索方法（Ｓ１０〜Ｓ１００）であって、
予め設定された第１の手法を用いて前記複数の画像のうちの基準画像中の画素毎に前記複数の画像間の対応点を探索する第１探索工程（Ｓ５０）と、
前記第１の手法とは異なる第２の手法を用いて前記複数の画像のうちの基準画像中の画素毎に前記複数の画像間の対応点を探索する第２探索工程（Ｓ６０）と、
前記第１の手法において利用した基準画像を複数に区分した区分領域毎に、前記第１の手法による対応点の探索精度が基準値以上であるか否かを判定する探索精度判定工程（Ｓ７０：Ｓ４３０）と、
前記探索精度が基準値以上である区分領域にて前記第１の手法による対応点を採用し、前記探索精度が基準値未満である区分領域にて前記第２の手法による対応点を採用することで、複数の画像間の対応点を設定する対応点設定工程（Ｓ４２０，Ｓ４４０）と、
を実施することを特徴とする対応点探索方法。
【請求項２】
請求項１に記載の対応点探索方法において、
前記対応点設定工程では、前記第１の手法によって得られた対応点を前記複数の画像間の対応点として設定し、前記探索精度が基準値未満である区分領域の対応点を前記第２の手法による対応点と入れ替えること
を特徴とする対応点探索方法。
【請求項３】
請求項１または請求項２に記載の対応点探索方法において、
前記第１探索工程では、
前記複数の画像のうちの基準画像中のある画素を表す基準画素における画素情報と、前記基準画像を除く他の画像中の画素を表す比較画素における画素情報と、の差異に基づく画素コストを、前記基準画素および前記比較画素を変更しつつ、前記基準画素毎に演算する画素コスト演算工程（Ｓ２１０）と、
前記基準画素を変更する際において前記基準画素と前記比較画素との座標差である視差の変化量に対するコストを表す視差コストを、前記基準画素毎に演算し、前記各基準画素に対して、前記画素コストと前記視差コストとに基づく総合コストが最小値となる際の比較画素との組み合わせを演算する最小コスト画素演算工程（Ｓ２２０〜Ｓ２６０）と、
前記各基準画素に対応する比較画素を、前記各基準画素に対応する対応点の候補として抽出する対応点抽出工程（Ｓ２７０）と、
を実施し、
前記最小コスト画素演算工程では、
前記基準画素および前記比較画素を複数の方向に沿って順に変更したときにおける合計コストが最小となるときの最小コストを演算し、方向毎に演算された最小コストを互いに加算した値を前記最小値とすること
を特徴とする対応点探索方法。
【請求項４】
請求項１〜請求項３の何れか１項に記載の対応点探索方法において、
前記第２探索工程では、オプティカルフローを用いて基準画像中の各画素に対応する画素を対応点の候補として抽出すること
を特徴とする対応点探索方法。
【請求項５】
視差を有する複数の撮像画像を用いて撮像画像中の物体までの距離を測定する距離測定装置（１）であって、
前記複数の撮像画像における各画素間の位置関係を対応付ける画素対応手段（Ｓ１０〜Ｓ１００）と、
前記各画素間の位置関係に基づいて物標までの距離を測定する測定手段（Ｓ１１０）と、
を備え、
前記画素対応手段は、請求項１〜請求項４の何れか１項に記載の対応点探索方法を用いて前記複数の撮像画像における各画素間の位置関係を対応付けること
を特徴とする距離測定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の画像間の対応点を探索する対応点探索方法、および対応点探索方法を利用する距離測定装置に関する。
【背景技術】
【０００２】
上記の対応点探索方法として、例えば左右の撮像画像の水平方向にビタビアルゴリズムを適用し、対応点の探索を行うものが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−０８５５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、一般的に上記のような対応点探索方法では、利用する撮像画像によって良好に対応点を探索できる場合とそうでない場合とが生じる傾向がある。
そこで、このような問題点を鑑み、複数の画像間の対応点を探索する対応点探索方法において、利用する画像に拘わらず、より精度よく対応点の探索ができるようにすることを本発明の目的とする。
【課題を解決するための手段】
【０００５】
本発明の対応点探索方法において、第１探索工程では、予め設定された第１の手法を用いて複数の画像のうちの基準画像中の画素毎に複数の画像間の対応点を探索する。また、第２探索工程では、第１の手法とは異なる第２の手法を用いて複数の画像のうちの基準画像中の画素毎に複数の画像間の対応点を探索する。
【０００６】
そして、探索精度判定工程では、第１の手法において利用した基準画像を複数に区分した区分領域毎に、第１の手法による対応点の探索精度が基準値以上であるか否かを判定する。さらに、対応点設定工程では、探索精度が基準値以上である区分領域にて前記第１の手法による対応点を採用し、探索精度が基準値未満である区分領域にて第２の手法による対応点を採用することで、複数の画像間の対応点を設定する。
【０００７】
すなわち、本発明の対応点探索方法では、複数の手法で対応点を探索し、ある手法での対応点の探索精度が基準値以上であればこの手法による対応点を採用し、この手法での対応点の探索精度が基準値未満であれば他の手法による対応点を採用する。
【０００８】
このような対応点探索方法によれば、得られる画像によってある手法での精度が悪い場合に他の手法による対応点を採用するので、探索精度のよい対応点を採用できる確度を向上させることができる。
【０００９】
なお、各請求項の記載は、可能な限りにおいて任意に組み合わせることができる。この際、一部構成を除外してもよい。
【図面の簡単な説明】
【００１０】
【図１】本発明が適用された距離検出装置１の概略構成を示すブロック図である。
【図２】処理部１０（ＣＰＵ１１）が実行する距離演算処理を示すフローチャートである。
【図３】分解画像を生成する処理の一例を示す画像図である。
【図４】距離演算処理のうちの対応点探索処理を示すフローチャートである。
【図５】左右方向におけるコスト演算の概略を示す説明図である。
【図６】ＳＳＩＭを説明する模式図である。
【図７】上下方向におけるコスト演算の概略を示す説明図である。
【図８】斜め方向におけるコスト演算の概略を示す説明図である。
【図９】高速処理の概略の示す説明図である。
【図１０】距離演算処理のうちの視差統合処理を示すフローチャートである。
【図１１】本実施形態による効果の一例を示す画像図である。
【発明を実施するための形態】
【００１１】
以下に本発明にかかる実施の形態を図面と共に説明する。
［本実施形態の構成］
本発明が適用された距離検出装置１は、複数の撮像画像の視差を検出することによって撮像画像中の各点（物体）までの距離を検出する装置である。特に、本実施形態の距離検出装置１では、動的計画法であるビタビアルゴリズムを複数の方向に適用することで複数の撮像画像を構成する画素間の対応関係（視差）を高精度かつ低負荷で求めることができるよう配慮されている。また、オプティカルフローを併用することで、より精度よく距離を推定できるよう設定されている。
【００１２】
詳細には、距離検出装置１は、乗用車等の車両に搭載されており、図１に示すように、処理部１０と、２つの撮像部２１，２２と、車両制御部３０とを備えている。なお、撮像部は２つに限られることなく、３以上設けられていてもよい。
【００１３】
撮像部２１，２２は、それぞれ車両の進行方向が撮像範囲内となる周知のカメラとして構成されている。撮像部２１，２２は、中心軸が平行かつ水平方向に所定の距離だけ離れて配置されたステレオカメラを構成している。これらの撮像部２１，２２は、予め決まった時間で周期的に同時に撮像を行うよう設定されている。
【００１４】
処理部１０は、ＣＰＵ１１と、ＲＯＭ、ＲＡＭ等のメモリ１２とを備えた周知のコンピュータとして構成されている。処理部１０（ＣＰＵ１１）は、撮像部２１，２２によって撮像された撮像画像を取得する。そして、メモリ１２に格納されたプログラムに基づいて後述する距離演算処理等の各種処理を実行する。
【００１５】
車両制御部３０は、処理部１０による処理結果を利用して車両を制御する処理を行う。例えば、車両制御部３０は、撮像部２１，２２による撮像範囲内の各点（各画素）における距離の情報を処理部１０から取得し、この距離の情報に基づいて物体の位置および相対速度を認識する。そして、物体が走行に支障を来す虞がある場合、走行軌道を変更する車両制御を行う。
【００１６】
［本実施形態の処理］
このように構成された距離検出装置１において、処理部１０（ＣＰＵ１１）は、図２以下に示す距離演算処理を実施する。距離演算処理は、撮像画像中の各点までの距離を演算する処理である。距離演算処理は、例えば距離検出装置１の電源が投入されると開始され、その後、一定周期毎に繰り返し実施される。
【００１７】
この処理では、まず、撮像部２１，２２によって撮像された撮像画像を取得する（Ｓ１０）。続いて、撮像された画像を平行化する（Ｓ２０）。ここで、画像の平行化とは、撮像画像のレンズによる画像の歪みや姿勢のずれを補正する処理等を示す。
【００１８】
続いて、分解画像を生成する（Ｓ３０）。ここで、分解画像とは、撮像画像に含まれる構造部または模様部を示す画像を表す。なお、構造部とは、撮像画像（図３（ａ）参照）中の物体等における大まかな輪郭や幾何構造を表し、図３（ｂ）に具体例を示す。また、模様部とは、構造部に対してより細かな部分であって、撮像画像中の物体表面の模様等を表し、図３（ｃ）に具体例を示す。
【００１９】
この処理では、まず、構造部の画像をIs、撮像画像をIとして、以下の最小化を実施することによって構造部の画像を得る。
【００２０】
【数１】
0006423314.tif 000002
【００２１】
なお、上記式（１）において、∇（ナブラ）Isの項は、構造部の画像の輝度の偏微分ができるだけ小さくなるようにするための項である。この項によって、輝度の変化が大きいエッジ部分のみが残るようになる効果が得られる。また、上記式（１）において、1/2θ(Is-I)2の項は、構造部の画像と撮像画像の輝度の差が小さくなるようにするための項である。この項によって、構造部の画像と撮像画像とにおける輝度の差が大きく異ならないようにする効果が得られる。
【００２２】
続いて、模様部の画像をItとして、It=I-Isを演算することによって模様部の画像を得る。このようにして得られた構造部および模様部の画像は、メモリ１２において記録される。
【００２３】
続いて、ピラミッド画像を生成する（Ｓ４０）。ピラミッド画像とは、１つの撮像画像から生成される解像度の異なる複数の画像を示す。例えば、撮像画像から、画像拡大率ηが１，１／２，１／４に設定された３種類の画像を生成し、これらをピラミッド画像としてメモリ１２に記録させる。
【００２４】
なお、以下の処理は、解像度が低い順（画像拡大率ηが小さい順）に、ピラミッド画像を構成するそれぞれの画像について実施される。また、ピラミッド画像は、撮像画像のみから生成されてもよいし、分解画像のそれぞれから生成されてもよい。
【００２５】
続いて、オプティカルフローによる視差演算を行う（Ｓ５０）。オプティカルフローによる視差演算では、ピラミッド画像のそれぞれに対して、公知の論文（A. Wedel, T. Pock, C. Zach, D. Cremers, and H. Bischof., An improved algorithm for tv - l1 optical flow. , Proc. of the Dagstuhl Motion Workshop, 2008.の2節）にて開示された論文中のオプティカルフローの式（論文中の式（５））を下記式（２）として用いることにより視差を求める。
【００２６】
【数２】
0006423314.tif 000003
【００２７】
中括弧内の前側の項は輝度やコントラストを表すデータ項（マッチングコスト）である。データ項では、観測された輝度情報をもとにして左右画像の差が算出される。また、中括弧内の後側の項は、平滑化等を行うための正則化項である。正則化項では、▽u、▽vの変化が大きい場合に、その変化を抑制してノイズなどにロバストに解を推定できるようにするものである。本手法では、特に正則化項にTotal Generalized Variation(http://www.uni-graz.at/imawww/optcon/projects/bredies/tgv.html)にて提案されたＬｐノルムを用いる。特に、Ｌｐノルムは０より大きく１未満の値に設定される。この構成によって、ノイズに対してロバストでかつシャープな輪郭部が得られる構成を実現する。
【００２８】
ここで、データ項は、例えば、マッチング特徴量であるCensus transform(C)およびSSIM(SS) （Structural Simirality）を用いて、以下のよう表す。
【００２９】
【数３】
0006423314.tif 000004
【００３０】
なお、この式では特徴量不変とする。
一方、正則化項は、下記式にて求める。
【００３１】
【数４】
0006423314.tif 000005
【００３２】
なお、上記式（４）において、ｖはｕの近似値を示し、また、α１、α２、β、γは定数を示す。また、ｎは画像の輝度勾配の向きに垂直なベクトルを示す。上記式（４）においては、構造部の画像輝度のエッジに対して垂直な成分が大きい点ならば、ｕとｖとが大きくずれても許容される。構造部の画像輝度のエッジに対して垂直な成分が大きくない場合には、ｖの変化が抑制される。
【００３３】
続いて、対応点探索処理を実施する（Ｓ６０）。対応点探索処理は、基準画像（例えば撮像部２１による撮像画像）を構成する各画素と比較画像（例えば撮像部２２による撮像画像）を構成する各画素との対応関係、すなわち、同じものが写っている場所を関連付ける処理である。
【００３４】
詳細には図４に示すように、まず、節点のコストを算出する（Ｓ２１０）。ここで、節点とは、図５（ａ）に示すように、基準画像の画素位置を横軸に取り、基準画像の画素位置と比較画像の画素位置との視差を縦軸に取ったマトリクスにおいて、このマトリクスを構成する要素（基準画像の画素位置と視差との関係）の１つ１つを示す。
【００３５】
なお、この処理では、基準画像の画素位置毎に、比較画像の視差探索する範囲内にある画素に対するコストを算出する。また、この処理は、前述のオプティカルフローを用いた手法とは独立した処理である。
【００３６】
ここで、ピクセル位置ｐ，視差ｕｐのときの節点のコストをＤ（ｐ，ｕｐ）と表現する。また、コストＤ（ｐ，ｕｐ）は、下記ＳＳＩＭ（Structual Similarity）を用いて求める。
【００３７】
【数５】
0006423314.tif 000006
【００３８】
なお、上記数式における各記号の定義については、図６に示す。また、上記数式中のα、β、γは、任意の定数である。
次に、ビタビアルゴリズムによるコストを求める（Ｓ２２０〜Ｓ２６０）。Ｓ２２０の処理では、コストＥｘを下記の手順を実施することで求める。
【００３９】
［手順１−１］
まず、基準画像の画素については、基準画像の左上の画素から右方向に順に選択し、右端まで選択し終わると、１段下の左端の画素を選択し、再び右方向に順に選択する処理を繰り返す。この際、比較画像については、基準画像の選択中の画素と同じ高さ（鉛直方向の位置）にある比較画像の画素を、左から右に向かう方向（右方向）に左端から右端まで順次選択する。すなわち、図５（ｂ）に示すように、基準画像および比較画像についてそれぞれ水平方向（Ｘ方向）について選択する画素の座標を遷移させる。
【００４０】
そして、比較画像の各画素について、視差（基準画像の画素の位置と比較画像の画素の位置の差）が大きくなるにつれてコストが大きくなるよう予め設定された関数を用いて視差コストＳ（ｕｐ，ｕｑ）を求める。なお、Ｓ（ｕｐ，ｕｑ）は、ｐからｑに視差が変化する際の視差コストを示す。
【００４１】
［手順１−２］
そして、節点のコストＤ（ｐ，ｕｐ）と、視差コストＳ（ｕｐ，ｕｑ）とについてビタビアルゴリズムを適用する。
【００４２】
【数６】
0006423314.tif 000007
【００４３】
上記式（ビタビアルゴリズムの式）では、前述のある節点について、図５（ａ）に示すマトリクスにおける左端の何れかの節点からその節点（ある節点）に至るまでの、節点のコストＤ（ｐ，ｕｐ）と、視差コストＳ（ｕｐ，ｕｑ）との和、を示している。
【００４４】
ここでは、節点毎に、このＥ（ｕｐ）が最小となる節点コストおよび視差コストの組み合わせをビタビアルゴリズムを用いて求める。この演算によって得られるこれらのデータを右方向のコストとする。
【００４５】
［手順１−３］
上記［手順１−１］〜［手順１−２］と同様の方法を、右から左に向かう方向（左方向）に適用することによって、ビタビアルゴリズムのコストを得る。この演算によって得られるこれらのデータを左方向のコストとする。
【００４６】
［手順１−４］
上記の手順にて求めた右方向のコストと左方向のコストとを対応する節点同士で加算し、得られたデータを左右方向のコストＥｘとしてメモリ１２に記録させる。
【００４７】
続いて、Ｓ２３０の処理では、コストＥｙを下記の手順を実施することで求める。
［手順２−１］
まず、図７（ｂ）に示すように、各節点について、Ｙ方向（画像の鉛直方向）からみた仮想的な平面を準備する。そしてこの平面に対応する画素を選択する。すなわち、基準画像の画素については、基準画像の左上の画素から下方向に順に選択し、下端まで選択し終わると、１段右側の上端の画素を選択し、再び下方向に順に選択する処理を繰り返す。この際、比較画像については、基準画像のうちの選択中の画素と同じ左右位置（水平方向の位置）にある比較画像の画素を、上から下に向かう方向（下方向）に上端から下端まで順次選択する。
【００４８】
そして、この際の視差コストＳ（ｕｐ，ｕｑ）を求める。
［手順２−２］
そして、計算済みの節点のコストＤ（ｐ，ｕｐ）と、視差コストＳ（ｕｐ，ｕｑ）とに
ついてビタビアルゴリズムを適用する。
【００４９】
ここでは、図７（ａ）に示すように、前述のビタビアルゴリズムの式を利用して、節点毎に、このＥ（ｕｐ）が最小となる節点コストおよび視差コストの組み合わせを求める。この演算によって得られるこれらのデータを下方向のコストとする。
【００５０】
［手順２−３］
上記［手順２−１］〜［手順２−２］と同様の方法を、下から上に向かう方向（上方向）に適用することによって、ビタビアルゴリズムのコストを得る。この演算によって得られるこれらのデータを上方向のコストとする。
【００５１】
［手順２−４］
上記の手順にて求めた下方向のコストと上方向のコストとを対応する節点同士で加算し、得られたデータを上下方向のコストＥｙとしてメモリ１２に記録させる。
【００５２】
続いて、Ｓ２４０の処理では、コストＥｘ−ｙを下記の手順を実施することで求める。
［手順３−１］
まず、図８（ｂ）に示すように、各節点について、ＸＹ方向（画像の左下から４５度斜め右上方向）からみた仮想的な平面を準備する。そしてこの平面に対応する画素を選択する。すなわち、基準画像の画素については、基準画像の左上の画素を選択し、４５度右上の画素を順に選択する。
【００５３】
そして、端部まで選択し終わると、左端の画素のうちの最も上段の画素を選択し、再び４５度右上に順に選択する処理を繰り返す。この際、比較画像については、基準画像のうちの選択中の画素と対応する斜め方向に位置する画素を左下端から右上端まで順次選択する。
【００５４】
そして、この際の視差コストＳ（ｕｐ，ｕｑ）を求める。
［手順３−２］
そして、計算済みの節点のコストＤ（ｐ，ｕｐ）と、視差コストＳ（ｕｐ，ｕｑ）とについてビタビアルゴリズムを適用する。
【００５５】
ここでは、図８（ａ）に示すように、前述のビタビアルゴリズムの式を利用して、節点毎に、このＥ（ｕｐ）が最小となる節点コストおよび視差コストの組み合わせを求める。この演算によって得られるこれらのデータを右斜め上方向のコストとする。
【００５６】
［手順３−３］
上記［手順３−１］〜［手順３−２］と同様の方法を、右上から左斜め下に向かう方向に適用することによって、ビタビアルゴリズムのコストを得る。この演算によって得られるこれらのデータを右斜め下方向のコストとする。
【００５７】
［手順３−４］
上記の手順にて求めた右斜め下方向のコストと右斜め上方向のコストとを対応する節点同士で加算し、得られたデータを右斜め方向のコストＥｘ−ｙとしてメモリ１２に記録させる。
【００５８】
［手順４］
続いて、Ｓ２５０の処理では、コストＥｘ＋ｙを下記の手順を実施することで求める。この際には、［手順３−１］〜［手順３−４］と同様に、左斜め方向のコストＥｘ＋ｙを求め、メモリ１２に記録させる。
【００５９】
ここで、上記の各処理において、ビタビアルゴリズムのコストＥ（ｐ，ｕ）（Ｅｘ、Ｅｙ、Ｅｘ−ｙ、Ｅｘ＋ｙ）は以下の式（１３）で求められる。
【００６０】
【数７】
0006423314.tif 000008
【００６１】
ただし、Ｅ（ｐ，ｕ）は、ピクセル位置ｐ、ピクセル位置ｐ−１との視差ｕの際のビタビアルゴリズムによるコスト、ｓ（ｕ，ｖ）は、ピクセル位置ｐ−１からピクセル位置ｐになるときに、視差がｖからｕに変化する際のコスト、Ｄ（ｐ，ｕ）は、ピクセル位置ｐ、視差ｕのときの節点のコストを表す。
【００６２】
図９に示す例では、例えば、左から右方向に向けて、ピクセル位置ｐ-1からｐへのビタビアルゴリズムのコストを演算する例を示している。ピクセル位置ｐ, 視差ｕのビタビアルゴリズムのコストは、ピクセル位置ｐ−１にある全ての節点から接続される経路の内で、最も小さい｛Ｅｐ−１，ｖ｝＋ｓ（ｕ，ｖ）｝に自ノードのＤ（ｐ，ｕ）を足したものになる。
【００６３】
ここで、取り得る視差の範囲をｍ, 探索範囲(図９での矢印の本数)をｎ個とすると、ピクセル位置ｐ−１からｐへ遷移するためには、ｍ×ｎ回の探索を行う必要があるといえる。
【００６４】
しかしながら、本実施形態においては、下記式を用いてＥ（ｐ，ｕ）を求める。
【００６５】
【数８】
0006423314.tif 000009
【００６６】
この式（１４）では、視差（ｕ−１）かつピクセル位置ｐでのコストと、視差ｕ、ピクセル位置（ｐ−１）のコストと、節点のコストＤ（ｐ，ｕ）とを利用して、最適解を求めている。
【００６７】
本実施形態において式（１３）の代わりに式（１４）を用いるのは、式（１３）と式（１４）とが等価であるからである。式（１３）と式（１４）とが等価であることを以下に証明する。
【００６８】
【数９】
0006423314.tif 000010
【００６９】
式（１５）について、Ｅ（ｐ，ｕ）は上記のように，ｍｉｎの部分について，｛ｖ＝０，…，ｕ−１｝の範囲と｛ｖ＝ｕ｝のときの２項比較と等価となる。また、式（１６）は、式（１３）におけるｕを（ｕ−１）に置換した定義と同様の式である。
【００７０】
【数１０】
0006423314.tif 000011
【００７１】
式（１６）の右辺のＤを左辺に移項することによって上記式（１７）が得られ、さらに、この式（１７）における両辺に−ｓ(ｕ−１，ｖ)＋ｓ（ｕ，ｖ）を足すと以下の式（１８）が得られる。
【００７２】
【数１１】
0006423314.tif 000012
【００７３】
そして、式（１５）の右辺のｍｉｎ｛Ｅ（ｐ−１，ｖ）＋ｓ（ｕ，ｖ）｝の部分を式（１８）の左辺に置き換えると、Ｅ（ｐ，ｕ）は上記の式（１４）で表される。つまり、２項の比較演算（ｍｉｎ部分）と節点コストＤとの足し算により算出できることが分かる。
【００７４】
なお、上記においては、ｓ（ｕ, ｖ）＝ｕ−ｖとしている。このように式（１３）に換えて式（１４）を用いてコストＥ（ｐ，ｕ）を求めることで、ｍ×ｎ回の探索を２ｍ回の探索とすることができる。すなわち、処理を高速化することができる。
【００７５】
続いて、図４に戻り、コストＥ（Ｅ（ｐ，ｕ））に従って、最小となる視差を選択し（Ｓ２７０）、基準画像における各画素と比較画像における各画素との対応関係をメモリ１２に記録し（Ｓ２８０）、対応点探索処理を終了する。
【００７６】
このような対応点探索処理が終了すると、図２に戻り、視差統合処理を実施する（Ｓ７０）。視差統合処理は、距離を推定する際に、各画素について、オプティカルフローによる視差推定結果を利用するか、ビタビアルゴリズムによる視差推定結果を利用するかを設定する処理である。
【００７７】
視差統合処理では、図１０に示すように、まず、オクルージョン領域の判定を行う（Ｓ４１０）。ここでいうオクルージョン領域とは、ビタビアルゴリズムによる視差推定結果の信頼性が低い領域を示し、例えば、前述のコストＥが比較的大きくなる領域（判定閾値以上となる領域）を示す。オクルージョン領域の判定の際には、判定を行う画像を任意に区分した区分領域毎に判定を行う。つまり、区分領域は、１画素のみから構成されていてもよいし、複数の画素から構成されてもよい。
【００７８】
オクルージョン領域の判定を行う処理としては、例えば、Peter Sandらによる手法”Particle Video: Long-Range Motion Estimation using Point Trajectories”等を用いることができる。
【００７９】
続いて、全ての画素について、取り敢えずはビタビアルゴリズムによる視差推定結果を利用するよう設定し（Ｓ４２０）、区分領域の何れかにおいてオクルージョン領域が存在するか否かを判定する（Ｓ４３０）。オクルージョン領域が存在していなければ（Ｓ４３０：ＮＯ）、Ｓ４２０の処理に移行する。
【００８０】
また、オクルージョン領域が存在していれば（Ｓ４３０：ＹＥＳ）、オクルージョン領域である区分領域について、オプティカルフローによる視差推定結果を利用するよう設定する（Ｓ４４０）。つまり、オクルージョン領域について、ビタビアルゴリズムによる視差推定結果をオプティカルフローによる視差推定結果に入れ替える。このような処理が終了すると、視差統合処理を終了する。
【００８１】
視差統合処理が終了すると、図２に戻り、各画素の視差について外れ値があるか否かを判定する（Ｓ８０）。この処理では、例えば、ある画素における視差とこの画素の周囲に位置する画素における視差とがかけ離れている場合に、この画素の視差が外れ値であると判定する。例えば、この処理としては、“Secrets of Optical Flow Estimation and Their Principles”を採用することができる。
【００８２】
外れ値があれば（Ｓ８０：ＹＥＳ）、この外れ値を除去する（Ｓ９０）。つまり、外れ値となった画素における視差の推定結果を削除する。この処理の後、Ｓ３０の処理に戻る。
【００８３】
また、外れ値がなければ（Ｓ８０：ＮＯ）、平滑化を行う（Ｓ１００）。この処理では、例えば、公知の手法である、D. Ferstl等による”Image Guided Depth Upsampling using anisotropic total generalized variation”による手法を応用する。
【００８４】
すなわち、該公知手法による、下記式（２１）におけるＤｓを、下記式（２２）に示すように、各解像度で得られた視差情報levels_uで置き換える。
【００８５】
【数１２】
0006423314.tif 000013
【００８６】
【数１３】
0006423314.tif 000014
【００８７】
なお、視差情報levels_uは、前段のピラミッド画像（解像度が１段階低い撮像画像）において推定された視差を示す。このような式（２２）を採用して平滑化を行うことで、シャープなエッジを残しながら路面などの表面を滑らかに処理する構成にできる。
【００８８】
続いて、各画素における対応点の視差に応じて各画素に写っている物体までの距離を算出する（Ｓ１１０）。そして、これらの画素と距離との対応データを車両制御部３０に対して出力する（Ｓ１２０）。このような処理が終了すると、距離演算処理を終了する。
【００８９】
ここで、距離演算処理によって出力される対応データは、画素毎に距離が対応付けられた距離画像となる。距離画像においては、濃淡によって距離が表現されており、濃度が高くなるにつれて距離が遠くなることを示す。距離画像の一例を図１１（ｂ）、図１１（ｃ）に示す。なお、図１１（ａ）は、撮像画像であり、図１１（ｂ）は、本実施形態の手法による距離画像であり、図１１（ｃ）は、ビダビアルゴリズムのみによって得られた距離画像である。
【００９０】
図１１（ｃ）に示すビアルゴリズムのみによって得られた距離画像では、図中の枠にて示す電話ボックス付近の領域がオクルージョン領域となっており、輪郭がぼやけている。一方、図１１（ｂ）に示す本実施形態の手法による距離画像では、電話ボックス付近の領域がより鮮明になっており、距離の推定精度が相対的に向上しているといえる。
【００９１】
［本実施形態による効果］
上記の距離検出装置１において処理部１０は以下に示す各工程を実施する。すなわち、第１探索工程では、予め設定された第１の手法を用いて複数の画像のうちの基準画像中の画素毎に複数の画像間の対応点を探索する（Ｓ５０）。また、第２探索工程では、第１の手法とは異なる第２の手法を用いて複数の画像のうちの基準画像中の画素毎に複数の画像間の対応点を探索する（Ｓ６０）。そして、探索精度判定工程では、第１の手法において利用した基準画像を複数に区分した区分領域毎に、第１の手法による対応点の探索精度が基準値以上であるか否かを判定する（Ｓ７０：Ｓ４３０）。さらに、対応点設定工程では、探索精度が基準値以上である区分領域にて第１の手法による対応点を採用し、探索精度が基準値未満である区分領域にて第２の手法による対応点を採用することで、複数の画像間の対応点を設定する（Ｓ４２０，Ｓ４４０）。
【００９２】
すなわち、本発明の対応点探索方法では、複数の手法で対応点を探索し、ある手法での対応点の探索精度が基準値以上であればこの手法による対応点を採用し、この手法での対応点の探索精度が基準値未満であれば他の手法による対応点を採用する。
【００９３】
このような距離検出装置１によれば、得られる画像によってある手法での精度が悪い場合に他の手法による対応点を採用するので、探索精度のよい対応点を採用できる確度を向上させることができる。
【００９４】
なお、上記実施形態の距離検出装置１において、第１の手法は区分領域毎の探索精度の差が比較的大きく異なり、第２の手法は区分領域毎の探索精度の差が第１の手法よりも小さいものが採用される。第２の手法による平均的な探索精度よりも第１の手法による探索精度が低い区分領域について第２の手法を採用するようにすればよい。
【００９５】
また、上記の距離検出装置１において処理部１０は、第１の手法によって得られた対応点を複数の画像間の対応点として設定し、探索精度が基準値未満である区分領域の対応点を第２の手法による対応点と入れ替える。
【００９６】
このような距離検出装置１によれば、探索精度が低い部位のみ第２の手法による対応点と入れ替えるので、全体的に探索精度が高い場合に入れ替える処理を不要とすることができ、処理負荷を軽減することができる。
【００９７】
また、上記の距離検出装置１において処理部１０は、複数の画像のうちの基準画像中のある画素を表す基準画素における画素情報と、基準画像を除く他の画像中の画素を表す比較画素における画素情報と、の差異に基づく画素コストを、基準画素および比較画素を変更しつつ、基準画素毎に演算する（Ｓ２１０）。そして、基準画素を変更する際において基準画素と比較画素との座標差である視差の変化量に対するコストを表す視差コストを、基準画素毎に演算し、各基準画素に対して、画素コストと視差コストとに基づく総合コストが最小値となる際の比較画素との組み合わせを演算する（Ｓ２２０〜Ｓ２６０）。この際、基準画素および比較画素を複数の方向に沿って順に変更したときにおける合計コストが最小となるときの最小コストを演算し、方向毎に演算された最小コストを互いに加算または左から右，右から左といった方向ペア毎の計算ステップにおいてコストを畳込みした値を最小値とする。また、各基準画素に対応する比較画素を、各基準画素に対応する対応点の候補として抽出する（Ｓ２７０）。
【００９８】
すなわち、距離検出装置１においては、第１探索工程にて複数の方向においてビダビアルゴリズムを採用したマルチパスビダビを用いる。このような距離検出装置１によれば、ビダビアルゴリズムが得意とする領域においては高精度に対応点を探索できる。
【００９９】
また、上記の距離検出装置１において処理部１０は、オプティカルフローを用いて基準画像中の各画素に対応する画素を対応点の候補として抽出する。
このような距離検出装置１によれば、オプティカルフローを用いることで全領域においてある程度の精度で対応点を探索できる。よって、第１の手法での精度がオプティカルフローを用いた精度を下回る場合にオプティカルフローを用いて得られた対応点を採用する構成とすることで対応点の探索精度を向上させることができる。
【０１００】
また、上記の距離検出装置１において処理部１０は、各画素間の位置関係に基づいて物体までの距離を測定する（Ｓ１１０）。
このような距離検出装置１によれば、前述の対応点探索方法を用いることで対応点の探索精度を向上させることができるので、物体までの距離を精度よく測定することができる。
【０１０１】
［その他の実施形態］
本発明は、上記の実施形態によって何ら限定して解釈されない。また、上記の実施形態の説明で用いる符号を特許請求の範囲にも適宜使用しているが、各請求項に係る発明の理解を容易にする目的で使用しており、各請求項に係る発明の技術的範囲を限定する意図ではない。上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を、課題を解決できる限りにおいて省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
【０１０２】
上述した距離検出装置１の他、当該距離検出装置１を構成要素とするシステム、当該距離検出装置１としてコンピュータを機能させるためのプログラム、このプログラムを記録した媒体、距離検出方法、対応点探索方法など、種々の形態で本発明を実現することもできる。
【０１０３】
例えば、上記実施形態において、ピラミッド画像や分解画像のそれぞれについて、オプティカルフローによる視差推定、平滑化等の各処理を実施したが、これらの処理は、ピラミッド画像や分解画像の一部について実施してもよい。また、処理の種別毎に、利用する画像を変更してもよい。
【０１０４】
［実施形態の構成と本発明の手段との対応関係］
上記実施形態において処理部１０は、本発明でいう画像処理装置に相当する。また、処理部１０が実行する処理のうちのＳ１０〜Ｓ１００は、本発明でいう対応点探索方法および画素対応手段に相当する。
【０１０５】
また、上記実施形態においてＳ５０の処理は本発明でいう第１探索工程に相当し、上記実施形態においてＳ６０の処理は本発明でいう第２探索工程に相当する。また、上記実施形態においてＳ２１０の処理は本発明でいう画素コスト演算工程に相当し、上記実施形態においてＳ２２０〜Ｓ２６０の処理は本発明でいう最小コスト画素演算工程に相当する。
【０１０６】
また、上記実施形態においてＳ２７０の処理は本発明でいう対応点抽出工程に相当し、上記実施形態においてＳ１１０の処理は本発明でいう測定手段に相当する。また、上記実施形態においてＳ４３０の処理は本発明でいう探索精度判定工程に相当する。
【０１０７】
また、上記実施形態においてＳ４２０，Ｓ４４０の処理は本発明でいう対応点設定工程に相当する。
【符号の説明】
【０１０８】
１…距離検出装置、１０…処理部、１１…ＣＰＵ、１２…メモリ、２１…撮像部、２２…撮像部、３０…車両制御部。
【図１】
0006423314.tif 000015
【図２】
0006423314.tif 000016
【図３】
0006423314.tif 000017
【図４】
0006423314.tif 000018
【図５】
0006423314.tif 000019
【図６】
0006423314.tif 000020
【図７】
0006423314.tif 000021
【図８】
0006423314.tif 000022
【図９】
0006423314.tif 000023
【図１０】
0006423314.tif 000024
【図１１】
0006423314.tif 000025