(57)【要約】【課題】ステレオ画像において垂直方向のずれがある場合でも、ステレオ画像から立体物を正確に検知する。【解決手段】立体物推定部１２１は、視差算出部１２０により算出された視差画像に基づいて、基準画像および参照画像に含まれる物体が立体物であるか否かを推定する立体物の推定を行う。物体領域垂直ずれ検出部１２２は、立体物推定部１２１により物体が立体物であると推定された場合、立体物の推定が行われたのと同じフレームの基準画像および参照画像を用いて、基準画像内の物体を含む物体領域と参照画像内の物体を含む物体領域との垂直ずれを検出する。物体領域立体物判定部１２３は、物体領域垂直ずれ検出部１２２により検出された基準画像の物体領域と参照画像の物体領域との垂直ずれに基づいて物体の視差を算出し、物体が立体物であるか否かを判定する。【選択図】図１
2020095646.tif 000002
【特許請求の範囲】
【請求項１】
ステレオカメラを構成する一対の撮像部により所定のフレームレートごとにそれぞれ撮像された第一画像および第二画像を取り込む画像取込部と、
予め設定された幾何補正情報を用いて、前記第一画像および前記第二画像の幾何補正を行う幾何補正部と、
前記幾何補正部による幾何補正後の前記第一画像および前記第二画像に基づく視差画像を算出する視差算出部と、
前記視差算出部により算出された前記視差画像に基づいて、前記第一画像および前記第二画像に含まれる物体が立体物であるか否かを推定する立体物の推定を行う立体物推定部と、
前記立体物推定部により前記物体が立体物であると推定された場合、前記立体物の推定が行われたのと同じフレームの前記第一画像および前記第二画像を用いて、前記第一画像内の前記物体を含む第一領域と前記第二画像内の前記物体を含む第二領域との垂直ずれを検出する垂直ずれ検出部と、
前記垂直ずれ検出部により検出された前記第一領域と前記第二領域との垂直ずれに基づいて前記物体の視差を算出し、前記物体が立体物であるか否かを判定する立体物判定部と、を備える画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記垂直ずれ検出部は、前記第一領域内で縦エッジと横エッジがともに存在する特徴点を検出し、前記第二領域内で前記特徴点に対応する対応点を検出して、前記第一領域における前記特徴点と、前記第二領域における前記対応点との間の垂直方向のずれを、前記第一領域と前記第二領域との垂直ずれとして検出する画像処理装置。
【請求項３】
請求項１に記載の画像処理装置において、
前記垂直ずれ検出部は、前記第一領域内で所定の角度範囲内に延びる直線エッジを斜めエッジとして検出し、角度差が所定の閾値未満である複数の斜めエッジが検出された場合、前記第一領域における前記斜めエッジの端部と、前記第二領域における前記斜めエッジの端部との間の垂直方向のずれを、前記第一領域と前記第二領域との垂直ずれとして検出する画像処理装置。
【請求項４】
請求項１から請求項３のいずれか一項に記載の画像処理装置において、
前記立体物判定部は、前記第一領域と前記第二領域との垂直ずれを補正し、補正後の前記第一領域と前記第二領域との視差を算出することにより前記物体の視差を算出して、前記物体が立体物であるか否かを判定する画像処理装置。
【請求項５】
請求項１から請求項３のいずれか一項に記載の画像処理装置において、
前記垂直ずれ検出部は、検出した前記第一領域と前記第二領域との垂直ずれに基づいて前記第一画像の垂直移動量および前記第二画像の垂直移動量のいずれか一方または両方を算出し、
前記幾何補正部は、前記垂直ずれ検出部により算出された前記第一画像の垂直移動量および前記第二画像の垂直移動量のいずれか一方または両方を用いて、前記第一画像および前記第二画像の幾何補正を行う画像処理装置。
【請求項６】
請求項５に記載の画像処理装置において、
前記垂直ずれ検出部は、前記第一領域と前記第二領域との垂直ずれの検出回数が所定の閾値以上になると、前記第一画像の垂直移動量および前記第二画像の垂直移動量のいずれか一方または両方を算出する画像処理装置。
【請求項７】
請求項５に記載の画像処理装置において、
前記垂直ずれ検出部は、前記第一画像の垂直移動量および前記第二画像の垂直移動量のいずれか一方または両方を算出済みである場合、前記第一領域と前記第二領域との垂直ずれの検出を停止する画像処理装置。
【請求項８】
請求項５に記載の画像処理装置において、
前記垂直ずれ検出部が前記第一画像の垂直移動量および前記第二画像の垂直移動量のいずれか一方または両方を算出済みである場合、前記立体物判定部は、前記垂直ずれに基づく前記物体の視差を算出せずに、前記物体が立体物であると判定する画像処理装置。
【請求項９】
請求項１から請求項３のいずれか一項に記載の画像処理装置において、
前記垂直ずれ検出部は、過去のフレームで立体物ではないと判定済みの前記物体については、前記第一領域と前記第二領域との垂直ずれの検出を行わない画像処理装置。
【請求項１０】
請求項９に記載の画像処理装置において、
前記立体物判定部は、前記垂直ずれ検出部が過去のフレームで立体物ではないと判定済みの前記物体については、前記垂直ずれに基づく前記物体の視差を算出せずに、前記物体が立体物ではないと判定する画像処理装置。
【請求項１１】
請求項１から請求項３のいずれか一項に記載の画像処理装置において、
複数フレームの前記第一画像および前記第二画像を用いて、前記第一領域と前記第二領域との垂直ずれに基づく前記第一画像の垂直移動量および前記第二画像の垂直移動量のいずれか一方または両方を算出する幾何校正部をさらに備え、
前記幾何補正部は、前記幾何校正部により算出された前記第一画像の垂直移動量および前記第二画像の垂直移動量のいずれか一方または両方を用いて、前記第一画像および前記第二画像の幾何補正を行う画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。
【背景技術】
【０００２】
従来、ステレオカメラで撮影されたステレオ画像に対して、ステレオカメラを構成する二つのカメラ間でのカメラパラメータのずれを補正する技術が知られている。特許文献１には、ステレオ画像を撮影する撮影装置に係るキャリブレーションデータを保持するキャリブレーションデータ保持部と、上記撮影装置が撮影したステレオ画像から特徴を抽出する特徴抽出部と、上記特徴抽出部が抽出した特徴を表す情報に基づき、上記キャリブレーションデータ保持部に保持されたキャリブレーションデータに関するキャリブレーションずれを補正するキャリブレーションデータ補正部と、を具備することを特徴とするキャリブレーションずれ補正装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３５４２５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の従来技術では、ステレオ画像を構成する二つの画像のうち一方の画像上で異なる二つ以上の方向のエッジを持つ特徴を検出する処理と、もう一方の画像上で当該特徴に対応した箇所を検出する処理とを行う必要があり、これらの処理の負荷が重い。一般的に、車両に搭載して使用されるステレオカメラでは演算性能があまり高くない演算装置が用いられるため、上記の処理は複数のフレームにわたって分割して行われる。この場合、ステレオ画像において車両の進行方向に対して垂直方向のずれがあると、カメラパラメータのずれを適切に補正することができない。その結果、実際には立体物が存在しない領域を誤って立体物と判定してしまうことにより、立体物の誤検知が生じる可能性がある。
【課題を解決するための手段】
【０００５】
本発明による画像処理装置は、ステレオカメラを構成する一対の撮像部により所定のフレームレートごとにそれぞれ撮像された第一画像および第二画像を取り込む画像取込部と、予め設定された幾何補正情報を用いて、前記第一画像および前記第二画像の幾何補正を行う幾何補正部と、前記幾何補正部による幾何補正後の前記第一画像および前記第二画像に基づく視差画像を算出する視差算出部と、前記視差算出部により算出された前記視差画像に基づいて、前記第一画像および前記第二画像に含まれる物体が立体物であるか否かを推定する立体物の推定を行う立体物推定部と、前記立体物推定部により前記物体が立体物であると推定された場合、前記立体物の推定が行われたのと同じフレームの前記第一画像および前記第二画像を用いて、前記第一画像内の前記物体を含む第一領域と前記第二画像内の前記物体を含む第二領域との垂直ずれを検出する垂直ずれ検出部と、前記垂直ずれ検出部により検出された前記第一領域と前記第二領域との垂直ずれに基づいて前記物体の視差を算出し、前記物体が立体物であるか否かを判定する立体物判定部と、を備える。
【発明の効果】
【０００６】
本発明によれば、ステレオ画像において垂直方向のずれがある場合でも、ステレオ画像から立体物を正確に検知することができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施形態に係るステレオカメラシステムの構成を示す図である。
【図２】本発明の一実施形態に係るステレオカメラシステムにおける演算部の動作手順を示す図である。
【図３】本発明の一実施形態による物体領域間の垂直ずれの検出処理の動作手順を示す図である。
【図４】本発明の一実施形態による立体物の判定処理の動作手順を示す図である。
【図５】幾何校正処理の動作手順を示す図である。
【図６】幾何校正処理の動作手順を示す図である。
【図７】基準画像と参照画像にそれぞれ設定されたテンプレート画像と被探索画像の例を示す図である。
【図８】探索位置とパターン一致度の例を示す図である。
【図９】基準画像と参照画像のゼブラゾーンの領域にそれぞれ設定された物体領域の例を示す図である。
【図１０】視差画像から作成される距離画像の例を示す図である。
【図１１】基準画像と参照画像にそれぞれ設定された物体領域の例を示す図である。
【図１２】基準画像の物体領域と参照画像の物体領域にそれぞれ設定された特徴点領域および対応点領域の例を示す図である。
【図１３】本発明の変形例による物体領域間の垂直ずれの検出処理の動作手順を示す図である。
【図１４】本発明の変形例による立体物の判定処理の動作手順を示す図である。
【発明を実施するための形態】
【０００８】
（第１の実施形態）
図１は、本発明の一実施形態に係るステレオカメラシステムの構成を示す図である。本実施形態のステレオカメラシステムは、例えば車両に搭載されて利用されるものであり、ステレオカメラを構成する一対の撮像部１００ａ、１００ｂと、画像処理装置を構成する演算部１１０と、画面音声出力部１３０と、制御部１４０とを備えている。
【０００９】
撮像部１００ａ、１００ｂは、左右に所定の間隔を空けて、車両周囲の所定の方向、例えば車両前方に向けて設置されている。撮像部１００ａ、１００ｂは、光学素子部１０１ａ、１０１ｂと、撮像素子部１０２ａ、１０２ｂとをそれぞれ備えている。光学素子部１０１ａ、１０１ｂは、所定の焦点距離を有するレンズなどにより構成されており、撮像部１００ａ、１００ｂに対して入射された光をそれぞれ屈折させて撮像素子部１０２ａ、１０２ｂ上に像を結ぶ。撮像素子部１０２ａ、１０２ｂは、光学素子部１０１ａ、１０１ｂにより結像された像を受光し、その光の強さに応じた撮像画像を所定のフレームレートごとにそれぞれ生成することにより、撮像を行う。なお、撮像部１００ａにおける光学素子部１０１ａの光軸方向および焦点距離と、撮像部１００ｂにおける光学素子部１０１ｂの光軸方向および焦点距離とは、それぞれ同一となるように設定されている。
【００１０】
撮像部１００ａによる撮像画像は、演算部１１０において後述の視差画像を作成するときに基準となる画像である。そのため、以下ではこれを「基準画像」と称する。一方、撮像部１００ｂによる撮像画像は、視差画像を作成するときに、基準画像から抽出した領域と一致する領域を探索するために参照される画像である。そのため、以下ではこれを「参照画像」と称する。
【００１１】
演算部１１０は、基準画像および参照画像を用いて所定の画像処理を行う画像処理装置であり、ＣＰＵやメモリなどを用いて構成される。演算部１１０は、その機能として、撮像画像記憶部１１１、幾何補正画像記憶部１１２、視差画像記憶部１１３、幾何補正情報記憶部１１４、幾何補正変更情報記憶部１１５、物体領域情報記憶部１１６、同期信号発生部１１７、基準画像取込部１１８ａ、参照画像取込部１１８ｂ、幾何補正部１１９、視差算出部１２０、立体物推定部１２１、物体領域垂直ずれ検出部１２２、物体領域立体物判定部１２３、認識部１２４、および幾何校正部１２５を備えている。
【００１２】
演算部１１０において、撮像画像記憶部１１１、幾何補正画像記憶部１１２、視差画像記憶部１１３、幾何補正情報記憶部１１４、幾何補正変更情報記憶部１１５、および物体領域情報記憶部１１６は、メモリなどを用いてそれぞれ実現される。また、同期信号発生部１１７、基準画像取込部１１８ａ、参照画像取込部１１８ｂ、幾何補正部１１９、視差算出部１２０、立体物推定部１２１、物体領域垂直ずれ検出部１２２、物体領域立体物判定部１２３、認識部１２４、および幾何校正部１２５は、ＣＰＵがメモリに記憶された所定のプログラムを実行することによりそれぞれ実現される。なお、これらの機能の一部または全部を、ＦＰＧＡ等のハードウェアを用いて実現してもよい。
【００１３】
撮像画像記憶部１１１は、撮像部１００ａ、１００ｂからそれぞれ出力される基準画像および参照画像を格納する。
【００１４】
幾何補正画像記憶部１１２は、基準画像および参照画像をそれぞれ幾何的に補正した幾何補正後の画像を格納する。なお、基準画像および参照画像の幾何補正は、幾何補正部１１９により行われる。
【００１５】
視差画像記憶部１１３は、幾何補正後の基準画像および参照画像に基づいて生成される視差画像を格納する。なお、視差画像の生成は視差算出部１２０により行われる。
【００１６】
幾何補正情報記憶部１１４は、幾何補正部１１９が基準画像および参照画像に対して幾何補正を行う際に用いる幾何補正情報を格納する。この幾何補正情報は、撮像部１００ａ、１００ｂにおける光学素子部１０１ａ、１０１ｂのレンズ歪みや光軸ずれによって生じる基準画像および参照画像の歪みや位置ずれを補正するための情報であり、光学素子部１０１ａ、１０１ｂの光学特性等に応じて予め設定されている。
【００１７】
幾何補正変更情報記憶部１１５は、幾何補正部１１９が基準画像および参照画像に対して幾何補正を行う際に用いられる幾何補正変更情報を格納する。この幾何補正変更情報は、経年変化、熱変化、衝撃振動等によって生じた撮像部１００ａ、１００ｂの撮像方向の機械的なずれを補正するための情報であり、物体領域垂直ずれ検出部１２２や幾何校正部１２５により算出される。さらに、幾何校正部１２５が行う幾何校正処理において取得および利用される後述の様々な情報も、幾何補正変更情報記憶部１１５に格納される。
【００１８】
物体領域情報記憶部１１６は、立体物推定部１２１、物体領域垂直ずれ検出部１２２および物体領域立体物判定部１２３がそれぞれ行う処理において利用される様々な情報を格納する。物体領域情報記憶部１１６に格納される情報の詳細については後述する。
【００１９】
同期信号発生部１１７は、撮像部１００ａ、１００ｂがそれぞれ撮像を行うフレームレートに同期した同期信号を生成する。同期信号発生部１１７が生成した同期信号は、基準画像取込部１１８ａおよび参照画像取込部１１８ｂへ出力される。
【００２０】
基準画像取込部１１８ａは、同期信号発生部１１７から入力された同期信号に応じて、露光時間等の撮像情報を撮像部１００ａに送信する。そして、撮像部１００ａにより撮像された基準画像を取り込み、撮像画像記憶部１１１に記憶させる。
【００２１】
参照画像取込部１１８ｂは、同期信号発生部１１７から入力された同期信号に応じて、露光時間等の撮像情報を撮像部１００ｂに送信する。そして、撮像部１００ｂにより撮像された参照画像を取り込み、撮像画像記憶部１１１に格納する。
【００２２】
幾何補正部１１９は、幾何補正情報記憶部１１４から幾何補正情報を読み込むとともに、幾何補正変更情報記憶部１１５から幾何補正変更情報を読み込む。そして、読み込んだこれらの情報に基づいて、撮像画像記憶部１１１に格納された基準画像および参照画像の幾何補正を行い、幾何補正後の基準画像および参照画像を幾何補正画像記憶部１１２に格納する。なお、幾何補正部１１９が行う幾何補正の詳細については後述する。
【００２３】
視差算出部１２０は、幾何補正画像記憶部１１２から幾何補正後の基準画像および参照画像を読み込み、これらの画像に基づいて、基準画像と参照画像との間の領域ごとの視差を表した視差画像を算出する。そして、算出した視差画像を視差画像記憶部１１３に格納する。なお、視差算出部１２０による視差画像の算出方法の詳細については後述する。
【００２４】
立体物推定部１２１は、視差画像記憶部１１３から視差画像を読み込み、視差画像に基づいて、基準画像および参照画像に含まれる物体が立体物であるか否かを推定する。その結果、立体物であると推定した物体がある場合は、その物体の３次元位置および基準画像上の物体領域の範囲を物体領域情報記憶部１１６に格納する。なお、立体物推定部１２１による立体物の推定方法の詳細については後述する。
【００２５】
物体領域垂直ずれ検出部１２２は、立体物推定部１２１により立体物と推定された物体がある場合に、同じフレームの基準画像および参照画像を用いて、その物体に対応する物体領域を基準画像および参照画像上にそれぞれ設定し、設定した物体領域間の垂直ずれを検出する。そして、検出した物体領域間の垂直ずれの値から参照画像の垂直移動量を算出し、幾何補正変更情報記憶部１１５に格納する。なお、物体領域垂直ずれ検出部１２２による垂直ずれの検出方法の詳細については後述する。
【００２６】
物体領域立体物判定部１２３は、立体物推定部１２１により立体物と推定された物体がある場合に、物体領域垂直ずれ検出部１２２により検出された物体領域間の垂直ずれに基づいて当該物体の視差を算出する。そして、算出した視差に基づいて、当該物体が本当に立体物であるか否かを判定する。なお、物体領域立体物判定部１２３による立体物の判定方法の詳細については後述する。
【００２７】
認識部１２４は、立体物推定部１２１により立体物と推定されるか、または物体領域立体物判定部１２３により立体物と判定された物体を認識対象として、車両との相対位置や相対速度を算出する。さらに、当該立体物が車両と衝突するまでの衝突時間を算出し、この衝突時間に基づいて、当該立体物と車両との衝突判定を行う。そして、算出した相対位置、相対速度および衝突時間と、衝突判定の結果とを、画面音声出力部１３０および制御部１４０に出力する。
【００２８】
幾何校正部１２５は、幾何補正画像記憶部１１２から幾何補正後の基準画像および参照画像を読み込むとともに、視差画像記憶部１１３から視差画像を読み込み、これらの画像に基づいて、幾何補正変更情報を算出するための幾何校正処理を行う。この幾何校正処理では、幾何補正後の複数フレームの基準画像および参照画像を用いて、経年変化、熱変化、衝撃振動等によって生じた撮像部１００ａ、１００ｂの撮像方向の機械的なずれを補正するための水平移動量および垂直移動量を、基準画像と参照画像のそれぞれについて算出する。そして、算出した基準画像と参照画像の水平移動量および垂直移動量を、幾何補正変更情報として幾何補正変更情報記憶部１１５に格納する。なお、幾何校正部１２５による幾何校正処理の詳細については後述する。
【００２９】
画面音声出力部１３０は、液晶ディスプレイ等のモニタやスピーカを用いて構成されており、認識部１２４から出力される情報を車両の乗員に提示する。例えば、幾何補正後の基準画像や参照画像、視差画像等をモニタに画面表示し、その画像上で認識された立体物の位置を示す枠やマーカを表示することにより、立体物の存在を乗員に提示する。このとき、認識部１２４による衝突判定の結果に応じて枠やマーカの表示形態を変化させることにより、乗員への注意喚起を行うようにしてもよい。また、認識部１２４によって車両と衝突する可能性があると判定された立体物が存在する場合には、所定の警告音を出力することにより、乗員への注意喚起を行ってもよい。
【００３０】
制御部１４０は、認識部１２４から出力される情報に基づいて、車両の挙動を制御するための制御信号を生成し、ステレオカメラシステムの外部へ出力する。制御部１４０から出力された制御信号は、例えば車両内のＥＣＵ（Electronic Control Unit）に送られ、ＥＣＵが行う車両制御において利用される。
【００３１】
次に、上記のステレオカメラシステムの動作手順について、以下に図２〜図６を参照して説明する。図２は、本発明の一実施形態に係るステレオカメラシステムにおける演算部１１０の動作手順を示す図である。演算部１１０は、所定の処理周期、例えば、撮像部１００ａ、１００ｂからの基準画像と参照画像の出力周期に相当するフレームレートごとに、図２の動作手順に従った処理を繰り返し実行する。
【００３２】
（ステップ２０１：基準画像、参照画像の取り込み）
ステップ２０１では、基準画像取込部１１８ａおよび参照画像取込部１１８ｂにより、撮像部１００ａ、１００ｂでそれぞれ撮像された基準画像および参照画像を取り込む。このとき同期信号発生部１１７は、同期信号を生成して、基準画像取込部１１８ａと参照画像取込部１１８ｂに送る。
【００３３】
基準画像取込部１１８ａは、同期信号発生部１１７から同期信号を受け取ると、撮像素子部１０２ａに同期信号および露光時間の情報を送る。撮像素子部１０２ａは、基準画像取込部１１８ａから同期信号および露光時間の情報を受け取ると、光学素子部１０１ａにより結像された像を指定された露光時間だけ受光することにより撮像を行い、その光の強さに応じた撮像画像を生成して、基準画像取込部１１８ａに送る。基準画像取込部１１８ａは、撮像素子部１０２ａから撮像画像を受け取ると、その撮像画像を基準画像として撮像画像記憶部１１１に格納する。
【００３４】
参照画像取込部１１８ｂは、同期信号発生部１１７から同期信号を受け取ると、撮像素子部１０２ｂに同期信号および露光時間の情報を送る。撮像素子部１０２ｂは、参照画像取込部１１８ｂから同期信号および露光時間の情報を受け取ると、光学素子部１０１ｂにより結像された像を指定された露光時間だけ受光することにより撮像を行い、その光の強さに応じた撮像画像を生成して、参照画像取込部１１８ｂに送る。参照画像取込部１１８ｂは、撮像素子部１０２ｂから撮像画像を受け取ると、その撮像画像を参照画像として撮像画像記憶部１１１に格納する。
【００３５】
（ステップ２０２：幾何補正）
ステップ２０２では、幾何補正部１１９により、ステップ２０１で取得した基準画像および参照画像の幾何補正を行う。このとき幾何補正部１１９は、撮像画像記憶部１１１から基準画像および参照画像を読み込む。また、幾何補正情報記憶部１１４から基準画像および参照画像の幾何補正情報を読み込むとともに、幾何補正変更情報記憶部１１５から基準画像と参照画像の水平移動量および垂直移動量を表す幾何補正変更情報を読み込む。そして、読み込んだこれらの情報に基づいて、基準画像および参照画像の幾何補正を行う。例えば幾何補正部１１９は、以下の式（１）、（２）を用いて、基準画像の各画素の位置（Ｘ１，Ｙ１）に対応する幾何補正後の基準画像の各画素の位置（Ｘ２，Ｙ２）を算出するとともに、基準画像の各画素とその周辺に位置する画素の輝度値を用いて２次元線形補間を実施することにより、幾何補正後の基準画像の各画素の輝度値を算出する。これにより、基準画像の幾何補正を実施する。なお、式（１）、（２）において、Ｆｘ、Ｆｙは光学素子部１０１ａのレンズ歪みや光軸ずれによって生じる基準画像の歪みを表しており、これらの情報は幾何補正情報に含まれる。また、ΔＸ２、ΔＹ２は基準画像の水平移動量と垂直移動量をそれぞれ表しており、これらの情報は幾何補正変更情報に含まれる。
Ｘ１＝Ｆｘ（Ｘ２，Ｙ２）＋ΔＸ２    ・・・（１）
Ｙ１＝Ｆｙ（Ｘ２，Ｙ２）＋ΔＹ２    ・・・（２）
【００３６】
また、幾何補正部１１９は参照画像についても上記と同様の手順により、参照画像の幾何補正を実施し、幾何補正後の参照画像の各画素の輝度値を算出する。基準画像と参照画像について幾何補正をそれぞれ実施した後、幾何補正部１１９は、幾何補正後の基準画像および参照画像を幾何補正画像記憶部１１２に格納する。
【００３７】
（ステップ２０３：視差の算出）
ステップ２０３では、視差算出部１２０により、ステップ２０２で実施した幾何補正後の基準画像および参照画像に基づいて、視差画像を算出する。このとき視差算出部１２０は、幾何補正画像記憶部１１２から幾何補正後の基準画像および参照画像を読み込む。そして、幾何補正後の基準画像から所定サイズの領域をテンプレート画像として抽出し、このテンプレート画像を用いたテンプレートマッチングを幾何補正後の参照画像に対して行うことにより、視差画像を生成する。
【００３８】
ステップ２０３における視差画像の生成について、以下に図７に示す基準画像および参照画像の例を用いて説明する。図７に示すように、視差算出部１２０は、最初に、幾何補正後の基準画像７０１から所定サイズの領域の画像７０３を、テンプレート画像として抽出する。次に、幾何補正後の参照画像７０２において、テンプレート画像７０３と同じ対象物が写っている領域の画像７０５を、テンプレート画像７０３に対応する対応画像として探索する。ここでは、例えば以下のようなテンプレートマッチングにより、テンプレート画像７０３に対応する対応画像７０５を参照画像７０２の中で探索する。
【００３９】
テンプレートマッチングでは、幾何補正後の参照画像７０２において、テンプレート画像７０３と同じ高さで任意の横位置にある所定サイズの領域の画像７０４を、被探索画像として抽出する。そして、テンプレート画像７０３と被探索画像７０４の間における輝度値の差の絶対値を画素ごとに算出し、各画素について算出された絶対値の画像全体での和を算出することにより、テンプレート画像７０３に対する被探索画像７０４のＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）を算出する。このようなＳＡＤの算出を、幾何補正後の参照画像７０２に対してテンプレート画像７０３と同じ高さで被探索画像７０４の横位置を変化させながら実施して、ＳＡＤが最小値となる被探索画像７０４を特定する。その結果、ＳＡＤが最小値となる被探索画像７０４を特定でき、その画像をテンプレート画像７０３に対応する対応画像７０５とする。これにより、対応画像７０５を探索することができる。
【００４０】
上記のようにしてテンプレート画像７０３に対応する対応画像７０５を幾何補正後の参照画像７０２において探索した後、さらに、対応画像７０５の横位置をサブピクセル単位で算出する。例えば、対応画像７０５のＳＡＤおよび対応画像７０５の左右にそれぞれ隣接する被探索画像７０４のＳＡＤを用いて等角直線フィッティングを行うことにより、対応画像７０５の横位置をサブピクセル単位で算出することができる。そして、上記で求めたテンプレート画像７０３と対応画像７０５の位置の差に、算出したサブピクセル単位の横位置を加算することにより、幾何補正後の基準画像７０１上のテンプレート画像７０３と幾何補正後の参照画像７０２上の対応画像７０５との間の視差を算出する。
【００４１】
次に、算出した視差が有効であるか無効であるかの判定を行う。ここでは、例えば以下の二つの判定方法により、視差が有効であるか無効であるかの判定を行うことができる。
【００４２】
一つ目の判定方法では、対応画像７０５に対して求められたＳＡＤが所定の閾値以上であるか否かを判定する。その結果、対応画像７０５のＳＡＤが閾値以上である場合は、テンプレート画像７０３と対応画像７０５が一致していないとして、テンプレート画像７０３に対応する領域の視差が無効であると判定する。一方、対応画像７０５のＳＡＤが閾値未満である場合は、視差が有効であると判定する。
【００４３】
二つ目の判定方法では、各被探索画像７０４に対して求められたＳＡＤの変化に基づいて、視差が有効であるか無効であるかを判定する。以下では、図８に示す探索位置とパターン一致度の具体例を用いて、この判定方法の説明を行う。
【００４４】
例えば、幾何補正後の参照画像７０２上の位置に応じて、テンプレート画像７０３とのパターンの一致度を表す各被探索画像７０４のＳＡＤが図８の曲線８０１に示すように変化したとする。この場合、互いに隣接する被探索画像７０４同士でＳＡＤの差を算出し、その差が負から正に変化する箇所８０２〜８０４を検出して、その中でＳＡＤが最小の箇所８０２と、ＳＡＤが２番目に小さい箇所８０３とを特定する。そして、これらの箇所８０２、８０３におけるＳＡＤの差が所定の閾値未満であるか否かを判定する。その結果、ＳＡＤの差が閾値未満である場合は、幾何補正後の参照画像７０２において対応画像７０５以外にもテンプレート画像７０３と似たパターンが存在しており、ミスマッチングの可能性があると判断して、テンプレート画像７０３に対応する領域の視差が無効であると判定する。一方、ＳＡＤの差が閾値以上である場合は、視差が有効であると判定する。なお、隣接する被探索画像７０４同士でＳＡＤの差が負から正に変化する箇所が１箇所しかない場合も、視差が有効であると判定する。
【００４５】
テンプレートマッチングによる視差の算出後には、以上説明した二つの判定方法により、テンプレート画像７０３に対応する領域の視差が有効であるか無効であるかを判定する。その結果、二つの判定方法でともに視差が有効と判定された場合は、当該領域の視差を有効とし、少なくともどちらか一方の判定方法で視差が無効と判定された場合は、当該領域の視差を無効とする。なお、いずれか一方の判定方法のみを用いて、視差が有効か無効かを判定してもよい。
【００４６】
ステップ２０３において、視差算出部１２０は、上記のような処理を幾何補正後の基準画像７０１上の全ての領域について実施して、基準画像７０１の全体での視差を算出する。そして、算出した視差を基準画像７０１上の各領域に対して設定することにより、視差画像を生成する。こうして幾何補正後の基準画像および参照画像に基づく視差画像を生成した後、視差算出部１２０は、生成した視差画像を視差画像記憶部１１３に格納する。
【００４７】
（ステップ２０４：立体物の推定）
ステップ２０４では、立体物推定部１２１により、ステップ２０３で算出した視差画像に基づいて、基準画像および参照画像に含まれる物体が立体物であるか否かを推定する。このとき立体物推定部１２１は、視差画像記憶部１１３から視差画像を読み込む。そして、読み込んだ視差画像の各領域に対して、光軸方向における車両からの距離（ステレオカメラからの距離）を算出する。例えば立体物推定部１２１は、以下の式（３）を用いて、光軸方向における車両からの距離Ｌを算出する。なお、式（３）において、ｆは撮像部１００ａ、１００ｂの光学素子部１０１ａ、１０１ｂにおける焦点距離の設計値を表し、Ｂは撮像部１００ａと撮像部１００ｂの主点間の距離（基線長）を表す。また、ｄは視差画像における視差を表し、ｃは撮像素子部１０２ａ、１０２ｂの画素ピッチを表す。
Ｌ＝ｆ×Ｂ／（ｄ×ｃ）    ・・・（３）
【００４８】
立体物推定部１２１は、上記の式（３）を用いた距離Ｌの算出処理を視差画像の全体について実施し、車両からの距離を視差画像の領域ごとに算出する。そして、算出した距離情報を視差画像に反映させることにより、距離画像を作成する。
【００４９】
距離画像を作成した後、立体物推定部１２１は、以下の式（４）〜式（６）を用いて、距離画像上の各領域の３次元位置を算出する。ここで、３次元位置を表す３次元座標系は、例えば、撮像部１００ａの光学素子部１０１ａの主点から垂直に下した路面上の点を原点として、右方向にＸ座標を、上方向にＹ座標を、進行方向にＺ座標をとるように設定される。また、以下の式（４）〜式（６）において、Ｕ，Ｖは距離画像上の各領域の横位置と縦位置をそれぞれ表し、Ｕ０，Ｖ０は基準画像上の光軸位置を表している。また、Ｈは路面からの撮像部１００ａの取り付け高さを表している。
Ｘ＝Ｌ×ｃ×（Ｕ−Ｕ０）／ｆ    ・・・（４）
Ｙ＝Ｈ＋Ｌ×ｃ×（Ｖ−Ｖ０）／ｆ    ・・・（５）
Ｚ＝Ｌ    ・・・（６）
【００５０】
ステップ２０４において、立体物推定部１２１は、上記のような処理を距離画像の全ての領域について実施し、距離画像全体での各領域の３次元位置を算出する。そして、領域内での距離の差が１％以内である領域を検出し、その領域の面積が閾値以上であり、かつ、路面からの高さ（Ｙ座標）が閾値以上である場合には、当該領域に対応する物体が立体物であると推定する。こうして物体が立体物であると推定した後、立体物推定部１２１は、立体物と判定した物体領域の３次元位置の平均を算出して、それを物体領域の３次元位置とするとともに、基準画像上の物体領域の範囲の中心位置を算出して、それを基準画像上の物体領域の位置として、当該物体を含む領域の３次元位置、基準画像上の物体領域の位置および範囲を物体領域情報記憶部１１６に格納する。
【００５１】
ここで、本実施形態のステレオカメラにおいて、経年変化、熱変化、衝撃振動等によって撮像部１００ａ、１００ｂの撮像方向に機械的なずれが生じており、そのため基準画像と参照画像の間に垂直方向のずれが発生している状態で、起動後から現在までの間に車線の両脇にある路面上の白線（車道外側線、車線境界線、車道中央線等）が継続して撮影されているとする。この場合、基準画像には二つ以上の方向のエッジを持つ特徴点が存在しないため、基準画像から特徴点を検出することができず、その結果、基準画像と参照画像の垂直ずれを補正できない。このとき、例えば前述の図７に示すように、上記白線とは別の方向、例えば車両の進行方向に対して斜め４５°の方向にそれぞれ延びる複数の線が描かれたゼブラゾーンが路上に現れると、視差に誤差が生じてしまい、その結果、ゼブラゾーンの領域が誤って立体物と推定されてしまうことがある。
【００５２】
上記の立体物の誤推定について、さらに図９に示す基準画像と参照画像における物体領域の具体例を参照して以下に説明する。図９の例では、基準画像と参照画像のゼブラゾーンの領域に物体領域９０１、９０２がそれぞれ設定され、これらの間に垂直ずれ９０７が存在している。この状態で、基準画像上の物体領域９０１内の所定サイズの画像９０３をテンプレート画像としてテンプレートマッチングを行うと、参照画像上の物体領域９０２では、本来の正しい領域の画像９０５ではなく、誤った領域の画像９０４が、テンプレート画像９０３に対応する対応画像として探索される。その結果、符号９０６に示す画像上の距離に応じた値だけ、テンプレート画像９０３に対して算出される視差が大きくなる。同様に、基準画像上の物体領域９０１内の所定サイズの画像９０８をテンプレート画像としてテンプレートマッチングを行うと、参照画像上の物体領域９０２では、本来の正しい領域の画像９１０ではなく、誤った領域の画像９０９が、テンプレート画像９０８に対応する対応画像として探索される。その結果、符号９１１に示す画像上の距離に応じた値だけ、テンプレート画像９０８に対して算出される視差が大きくなる。
【００５３】
ここで、上記のテンプレート画像９０８は、基準画像上の物体領域９０１内ではテンプレート画像９０３よりも上方に、すなわち実空間上では遠方に位置している。一方、テンプレート画像９０８に対して算出される視差の誤差を表す画像上の距離９１１は、テンプレート画像９０３に対して算出される視差の誤差を表す画像上の距離９０６よりも大きい。このように、基準画像上の物体領域９０１と参照画像上の物体領域９０２の間に垂直ずれ９０７がある場合において、路面上のゼブラゾーンに対してテンプレートマッチングを行うと、車両から遠方にある領域ほど視差の誤差が大きくなり、実際の視差よりも大きな値が算出される。
【００５４】
上記のような視差画像を用いて算出される距離画像では、本来は画像上の上側と下側で異なる距離を有するゼブラゾーンに対して、実際よりも近い距離が算出されるとともに、その距離の差が小さくなってしまう。そのため、あたかもゼブラゾーンの領域に立体物が存在するような距離分布となってしまい、その結果、ゼブラゾーンの領域が誤って立体物と推定されてしまう原因となる。
【００５５】
図１０は、図９で説明したような垂直ずれによる視差の誤差が生じた場合に、図７に示した基準画像７０１および参照画像７０２に基づいて算出された視差画像から作成された距離画像の例を示している。図１０の距離画像１００１では、車両からの距離を画像の明暗（濃淡）で表しており、白色に近い部分ほど距離が近く、黒色に近い部分ほど距離が遠い。なお、白線以外の部分は黒色で表示されており、これは視差を検出できなかった無効領域を表している。この距離画像１００１において、ゼブラゾーンの領域１００２は、上側の部分と下型の部分がほぼ同じ距離であり、あたかも立体物のような距離分布を示していることが分かる。
【００５６】
（ステップ２０５：物体領域間の垂直ずれの検出）
ステップ２０５では、物体領域垂直ずれ検出部１２２により、基準画像と参照画像における物体領域間の垂直ずれを検出する。このとき物体領域垂直ずれ検出部１２２は、ステップ２０４で立体物と推定された物体について、基準画像と参照画像において当該物体に対応する領域をそれぞれ物体領域として設定し、これらの物体領域間の垂直ずれを検出する。なお、立体物と推定された物体が複数存在する場合は、各物体について物体領域間の垂直ずれをそれぞれ検出し、その平均値を算出する。そして、物体領域間の垂直ずれを検出した画像のフレーム（コマ）数が所定数以上に達した場合、それらのフレームにおける物体領域間の垂直ずれの平均値を算出することにより、参照画像における物体領域の垂直移動量を求める。こうして参照画像の垂直移動量が求められたら、物体領域垂直ずれ検出部１２２は、算出した垂直移動量を幾何補正変更情報として幾何補正変更情報記憶部１１５に格納する。なお、ステップ２０５の処理の詳細については、後で図３を参照して説明する。
【００５７】
（ステップ２０６：立体物の判定）
ステップ２０６では、物体領域立体物判定部１２３により、ステップ２０４で立体物と推定された物体が本当に立体物であるか否かを判定する。ここでは、ステップ２０５で検出した物体領域間の垂直ずれに基づいて参照画像の物体領域に対する幾何補正を行った上で、基準画像における物体領域と参照画像における物体領域との視差を算出する。そして、算出した視差に基づいて、ステップ２０４と同様の手法により、物体領域の３次元位置を算出して当該物体が立体物であるか否かを判定する。こうして物体が立体物であると判定した後、物体領域立体物判定部１２３は、当該物体領域の３次元位置および基準画像上の位置を物体領域情報記憶部１１６に格納する。なお、ステップ２０６の処理の詳細については、後で図４を参照して説明する。
【００５８】
（ステップ２０７：対象物の認識）
ステップ２０７では、認識部１２４により、ステップ２０６で立体物と判定された物体を対象物として認識し、車両との衝突判定を実施する。このとき認識部１２４は、物体領域情報記憶部１１６から、前回の処理においてステップ２０６で求められた過去のフレームでの物体領域の３次元位置と、今回の処理においてステップ２０６で求められた現在のフレームでの物体領域の３次元位置とを読み込む。そして、これらの物体領域内における３次元位置の平均値をそれぞれ算出することにより、過去のフレームでの立体物の３次元位置（Ｐｘａ，Ｐｙａ，Ｐｚａ）と、現在のフレームでの立体物の３次元位置（Ｐｘｂ，Ｐｙｂ，Ｐｚｂ）とを算出する。こうして過去と現在のフレームについて立体物の３次元位置をそれぞれ算出した後、認識部１２４は、これらの差分をフレームレート、すなわち図２のフローチャートの処理周期でそれぞれ割ることにより、本実施形態のステレオカメラが設置された車両直下の路面に対する立体物の相対速度（Ｖｘ，Ｖｙ，Ｖｚ）を算出する。
【００５９】
認識部１２４は、上記のようにして算出される立体物の相対速度に基づいて、対象物である立体物と車両との衝突判定を実施する。例えば、Ｚ軸方向における立体物の相対速度Ｖｚが０以上である場合、すなわち車両の進行方向に対する立体物の速度が車両よりも大きい場合は、車両が立体物に衝突しないと判定する。一方、立体物の相対速度Ｖｚが負である場合は、現在のフレームに対して今回の処理で算出したＸ軸方向における立体物の相対位置Ｐｘｂを相対速度Ｖｚの絶対値で割ることにより、車両が立体物に衝突するまでの時間（衝突時間）を算出する。そして、Ｘ軸方向における立体物の相対速度Ｖｘに算出した衝突時間を乗算し、その値を相対位置Ｐｘｂに加えることにより、Ｘ軸方向における衝突時の立体物の相対位置Ｐｘｏを算出する。その結果、衝突時間が所定の閾値以内であり、かつ、衝突時の立体物の相対位置Ｐｘｏの絶対値が所定の閾値以内である場合は、車両が立体物に衝突すると判定し、それ以外の場合は衝突しないと判定する。
【００６０】
上記のような衝突判定を実施した後、認識部１２４は、対象物の認識結果を画面音声出力部１３０および制御部１４０に送る。例えば、立体物を含む物体領域の基準画像上での大きさと位置の情報（基準画像における物体領域の四隅の座標値等）や、今回の処理で算出した立体物の３次元位置および相対速度、衝突判定結果、衝突時間等の情報を、対象物の認識結果として画面音声出力部１３０と制御部１４０にそれぞれ出力する。
【００６１】
（ステップ２０８：幾何校正）
ステップ２０８では、幾何校正部１２５により、基準画像および参照画像に対する幾何校正を実施する。このとき幾何校正部１２５は、幾何補正画像記憶部１１２から幾何補正後の基準画像および参照画像を読み込み、視差画像記憶部１１３から視差画像を読み込む。そして、幾何補正後の基準画像と参照画像において車線の左右両脇にある路面上の白線をそれぞれ探索し、これらの交点の位置を算出することにより、基準画像と参照画像における消失点の位置をそれぞれ求める。そして、求められた消失点の位置が撮像部１００ａ、１００ｂの光学素子部１０１ａ、１０１ｂの光軸位置の設計値とそれぞれ一致するように、基準画像および参照画像の水平移動量と、基準画像の垂直移動量とを算出する。また、複数のフレームにわたって、基準画像上で異なる二つ以上のエッジを含む特徴点を探索し、これらの特徴点に対応する参照画像上の対応点を検出する。そして、検出された特徴点と対応点との位置関係に基づいて、基準画像と参照画像間の垂直ずれを検出し、その値を参照画像の垂直移動量に設定する。こうして基準画像および参照画像の水平移動量と垂直移動量が求められた後、幾何校正部１２５は、これらの値を幾何補正変更情報として幾何補正変更情報記憶部１１５に格納する。なお、ステップ２０８の処理の詳細については、後で図５および図６を参照して説明する。
【００６２】
（ステップ２０９：画面、音声の出力）
ステップ２０９では、画面音声出力部１３０により、車両の運転者に対して立体物の存在を報知するための画面や音声を出力する。このとき画面音声出力部１３０は、ステップ２０７で認識部１２４から出力された対象物の認識結果を受け取るとともに、幾何補正画像記憶部１１２から幾何補正後の基準画像を読み込む。そして、車両内の所定位置に設置されたモニタに基準画像を表示し、その基準画像上で立体物を含む物体領域の範囲を枠等により表示する。このとき、衝突判定結果の内容に応じて、枠の表示形態（色、線幅等）を変化させることが好ましい。さらに、立体物への衝突を示す衝突判定結果の場合は、警告音を出力することにより運転者への注意喚起を行うようにしてもよい。
【００６３】
（ステップ２１０：制御信号の生成、出力）
ステップ２１０では、制御部１４０により、車両に対する制御信号を生成して出力する。このとき制御部１４０は、ステップ２０７で認識部１２４から出力された対象物の認識結果を受け取り、その内容に応じた制御信号を生成する。例えば、立体物への衝突を示す衝突判定結果の場合は、衝突を回避するため、ブレーキやステアリングの動作を制御する制御信号を生成して出力する。
【００６４】
続いて、上記ステップ２０５、２０６、２０８の各処理の詳細について、図３〜図６を参照してそれぞれ説明する。
【００６５】
（ステップ２０５の詳細）
最初に、ステップ２０５で物体領域垂直ずれ検出部１２２が実施する物体領域間の垂直ずれの検出処理の動作手順について、以下に図３を用いて説明する。
【００６６】
ステップ３０１において、物体領域垂直ずれ検出部１２２は、参照画像の垂直移動量が未算出であり、かつ、ステップ２０４で立体物推定部１２１が立体物と推定した物体があるか否かを判定する。その結果、これらの条件をいずれも満たす場合はステップ３０２に進み、少なくともいずれか一方の条件を満たさない場合は、ステップ２０５の処理を終了してステップ２０６に進む。なお、参照画像の垂直移動量は、ステップ２０５の物体領域間の垂直ずれの検出処理において、後述のステップ３１１で物体領域垂直ずれ検出部１２２により算出されるか、または、ステップ２０８の幾何校正処理において、後述のステップ５２０で幾何校正部１２５により算出される。
【００６７】
ステップ３０２において、物体領域垂直ずれ検出部１２２は、ステップ２０４で立体物と推定された物体に対応する前回のフレームでの基準画像上の物体領域の位置を探索する。ここでは、物体領域垂直ずれ検出部１２２は、幾何補正画像記憶部１１２から、ステップ２０２で格納された前回のフレームでの幾何補正後の基準画像と、今回の処理においてステップ２０２で格納された現在のフレームでの幾何補正後の基準画像とを読み込む。また、物体領域情報記憶部１１６から、今回の処理においてステップ２０４で格納された、現在のフレームで立体物と推定された物体に対応する基準画像上の物体領域の位置および範囲を読み込む。物体領域情報記憶部１１６から、前回の処理においてステップ４０７で格納された前回のフレームで立体物と判定された物体に対応する基準画像上の物体領域の位置を読み込む。現在のフレームで立体物と推定された基準画像上の物体領域の位置から所定の範囲に、前回のフレームで立体物と判定された物体に対する基準画像上の物体領域の位置がない場合、現在のフレームで推定された物体領域は、前回のフレームで立体物と判定されていないと判断する。現在のフレームで立体物と推定された基準画像上の物体領域の位置から所定の範囲に、過去のフレームで立体物と判定された物体に対する基準画像上の物体領域の位置がある場合、現在のフレームの基準画像上の物体領域と、前フレームの基準画像上において現在のフレームで求めた物体領域の位置から所定の範囲とのＳＡＤを算出する。その最小値が所定の閾値以上である場合、現在のフレームで推定された物体領域は、前フレームに立体物と判定されていないと判断する。それ以外の場合、つまり、現在のフレームで求めた物体領域の位置から所定の範囲に、前フレームで立体物と推定された物体領域があり、現在のフレームの物体領域と、前フレームの基準画像上において現在のフレームで求めた物体領域の位置から所定の範囲のＳＡＤの最小値が所定の閾値未満である場合、現在のフレームで推定された物体領域は、前フレームで立体物と判定されたと判断する。
【００６８】
ステップ３０３において、物体領域垂直ずれ検出部１２２は、ステップ３０２で、立体物と推定された物体が、前回の処理において立体物ではないと判定されたか否かを判断した結果をもとに、次のステップを示す。ステップ２０４で立体物と推定された物体が、前回の処理において立体物ではないと判定された場合、ステップ３０７に進む。前回の処理において立体物であると判定された場合、ステップ３０４に進む。ここで、ステップ３０２とステップ３０３を統合してもよい。
【００６９】
ステップ３０４において、物体領域垂直ずれ検出部１２２は、基準画像の物体領域における特徴点を検出する。ここでは物体領域垂直ずれ検出部１２２は、幾何補正後の基準画像における当該物体領域内の各画素の輝度値と、各画素の右隣りの画素の輝度値との差を算出して、その差の絶対値が所定の閾値以上であるか否かを判定する。その結果、絶対値が閾値以上である場合は、物体領域内に縦エッジがあると判断して縦エッジの値に「１」を設定し、そうでない場合は「０」を設定して、基準画像の物体領域の各画素に対して縦エッジを算出する。また、幾何補正後の基準画像における当該物体領域内の各画素の輝度値と、各画素の上隣りの画素の輝度値との差を算出して、その差の絶対値が所定の閾値以上であるか否かを判定する。その結果、絶対値が閾値以上である場合は、物体領域内に横エッジがあると判断して横エッジの値に「１」を設定し、そうでない場合は「０」を設定して、基準画像の物体領域の各画素に対して横エッジを算出する。こうして各画素の縦エッジと横エッジの値を設定した後、これらの値を確認することにより縦エッジと横エッジがともに存在する画素を特徴点として検出する。
【００７０】
ステップ３０５において、物体領域垂直ずれ検出部１２２は、ステップ３０４で基準画像から検出した特徴点に対応する点を、参照画像の物体領域内で検出する。ここでは物体領域垂直ずれ検出部１２２は、幾何補正画像記憶部１１２から、今回の処理においてステップ２０２で格納された現在のフレームでの幾何補正後の参照画像を読み込み、視差画像記憶部１１３から視差画像を読み込む。そして、読み込んだこれらの画像と、ステップ３０４で基準画像の物体領域において検出した特徴点とに基づき、例えば以下のようにして、参照画像の物体領域内で特徴点に対応する対応点を検出する。
【００７１】
ステップ３０５における対応点の検出について、以下に図１１、図１２の例を用いて説明する。ここでは図１１に示すように、幾何補正後の基準画像１１０１における物体領域１１０３に対して、幾何補正後の参照画像１１０２では物体領域１１０４が対応しているとする。また、基準画像の物体領域１１０３において、ステップ３０４で複数の特徴点が検出されているとする。この場合、物体領域垂直ずれ検出部１２２は、図１２において複数の枠線で示したように、特徴点をそれぞれ含む複数の特徴点領域を基準画像の物体領域１１０３内に設定し、そのうち特徴点領域１２０３を参照画像の物体領域１１０４上で視差の分だけ移動させた位置を含む所定の範囲を、ＳＡＤの算出対象範囲として設定する。そして、特徴点領域１２０３および設定した算出対象範囲の輝度値に基づいて、特徴点領域１２０３に対する算出対象範囲のＳＡＤを算出し、ＳＡＤが最も小さい位置を対応点の位置として検出する。こうして対応点の位置を検出した後、物体領域垂直ずれ検出部１２２は、その対応点を含む対応点領域１２０４を、幾何補正後の参照画像の物体領域１１０４上に設定する。なお、図１２に示すように、特徴点領域１２０３と対応点領域１２０４との間には、基準画像と参照画像との垂直ずれに応じた垂直位置誤差１２０５が存在する。
【００７２】
ステップ３０５では、上記のような処理を各特徴点領域について実施することにより、特徴点ごとに対応点を検出して、特徴点領域に対応する対応点領域を参照画像上に設定することができる。
【００７３】
ステップ３０６において、物体領域垂直ずれ検出部１２２は、基準画像の物体領域と参照画像の物体領域との間の垂直ずれを算出する。例えば図１２の例の場合、物体領域垂直ずれ検出部１２２は、基準画像の物体領域１１０３上の特徴点領域１２０３と、ステップ３０５で検出した参照画像の対応点領域１２０４との間の垂直位置誤差１２０５を求め、この垂直位置誤差１２０５の値を、基準画像の物体領域１１０３と参照画像の物体領域１１０４との間の垂直ずれとする。このとき、対応点領域１２０４の上下方向に１画素ずつずれた領域について、特徴点領域１２０３に対するＳＡＤをそれぞれ求め、これらを用いて等角直線フィッティングを行うことにより対応点領域１２０４の位置をサブピクセル単位で求めることにより、物体領域間の垂直ずれの値をサブピクセル単位で算出してもよい。
【００７４】
ステップ３０７において、物体領域垂直ずれ検出部１２２は、ステップ２０４で立体物と推定された全ての物体について、ステップ３０６で物体領域間の垂直ずれを算出するか、またはステップ３０３で肯定判定を実施済みであるか否かを判定する。その結果、少なくともいずれか一つの物体についてこれらの条件を満たさない場合は、ステップ３０２に戻ってステップ３０２〜３０６の処理を継続する。一方、全ての物体について物体領域間の垂直ずれを算出済みか、または前回の処理で立体物ではないと判定済みである場合は、ステップ３０８に進む。
【００７５】
ステップ３０８において、物体領域垂直ずれ検出部１２２は、今回の処理でステップ３０６が少なくとも１回以上実施されており、現在のフレームに対して物体領域間の垂直ずれが一つ以上算出されているか否かを判定する。その結果、物体領域間の垂直ずれが一つ以上算出されている場合はステップ３０９に進み、一つも算出されていない場合は、ステップ２０５の処理を終了してステップ２０６に進む。
【００７６】
ステップ３０９において、物体領域垂直ずれ検出部１２２は、今回の処理のステップ３０６で算出した現在のフレームにおける物体領域間の垂直ずれの平均値を算出して、物体領域情報記憶部１１６に格納する。
【００７７】
ステップ３１０において、物体領域垂直ずれ検出部１２２は、現在のフレームまでに物体領域間の垂直ずれを算出した回数が所定の閾値以上であるか否かを判定する。このとき物体領域垂直ずれ検出部１２２は、例えば、物体領域情報記憶部１１６において、現在のフレームよりも前のフレームに対して算出された物体領域間の垂直ずれの平均値がいくつ格納されているかを確認し、その格納数を所定の閾値と比較することにより、ステップ３１０の判定を行うことができる。その結果、現在のフレームまでに物体領域間の垂直ずれを算出した回数が閾値以上であれば、ステップ３１１に進む。そうでない場合は、ステップ２０５の処理を終了してステップ２０６に進む。
【００７８】
ステップ３１１において、物体領域垂直ずれ検出部１２２は、現在のフレームまでに算出した物体領域間の垂直ずれに基づいて、参照画像の垂直移動量を算出する。具体的には、例えば、過去から現在までの複数のフレームについて、ステップ３０９でそれぞれ算出されて物体領域情報記憶部１１６に格納された物体領域間の垂直ずれの平均値を、物体領域情報記憶部１１６から取得する。また、幾何補正変更情報記憶部１１５から参照画像の垂直移動量を読み込む。そして、取得したこれらの平均値同士の平均値をさらに算出して、物体領域間の垂直ずれの平均値を、読み込んだ参照画像の垂直移動量に加算することにより、基準画像と参照画像の垂直ずれを補正するための参照画像の垂直移動量を算出する。こうして過去から現在までの複数のフレームにおける物体領域間の垂直ずれに基づいて参照画像の垂直移動量を算出した後、物体領域垂直ずれ検出部１２２は、その値を幾何補正変更情報として幾何補正変更情報記憶部１１５に格納する。ステップ３１１を実施した後、ステップ２０５の処理を終了してステップ２０６に進む。
【００７９】
（ステップ２０６の詳細）
次に、ステップ２０６で物体領域立体物判定部１２３が実施する立体物の判定処理の動作手順について、以下に図４を用いて説明する。
【００８０】
ステップ４０１において、物体領域立体物判定部１２３は、ステップ２０４で立体物推定部１２１が立体物と推定した物体があるか否かを判定する。その結果、立体物と推定された物体が少なくとも一つ以上ある場合はステップ４０２に進み、一つもない場合は、ステップ２０６の処理を終了してステップ２０７に進む。
【００８１】
ステップ４０２において、物体領域立体物判定部１２３は、参照画像の垂直移動量が未算出であるか否かを判定する。なお、参照画像の垂直移動量は、前述のように、図３のステップ３１１で物体領域垂直ずれ検出部１２２により算出されるか、または、ステップ２０８の幾何校正処理において、後述のステップ５２０で幾何校正部１２５により算出される。その結果、参照画像の垂直移動量が未算出である場合はステップ４０３に進み、算出済みである場合はステップ４０７に進む。
【００８２】
ステップ４０３において、物体領域立体物判定部１２３は、ステップ２０４で立体物と推定された物体のいずれかを選択し、その物体が前回の処理において立体物ではないと判定されていたか否かを判定する。ここでは、例えば図３のステップ３０２、３０３と同様の手法により、現在のフレームにおける基準画像上の物体領域と、前回のフレームの基準画像上の所定の範囲とのＳＡＤを算出して、算出したＳＡＤの最小値が所定の閾値未満であるか否かをもとに、前回の処理結果が立体物であるか否かの判定を行う。その結果、当該物体が前回の処理において立体物ではないと判定されていた場合はステップ４０７に進み、立体物であると判定されていた場合はステップ４０４に進む。なお、ステップ３０３の処理結果を利用することにより、ステップ４０３の処理を省略してもよい。
【００８３】
ステップ４０４において、物体領域立体物判定部１２３は、ステップ３０６で物体領域垂直ずれ検出部１２２が当該物体について算出した基準画像と参照画像の物体領域間の垂直ずれが、所定の閾値以上であるか否かを判定する。その結果、物体領域間の垂直ずれが閾値以上である場合はステップ４０５に進み、閾値未満である場合はステップ４０７に進む。
【００８４】
ステップ４０５において、物体領域立体物判定部１２３は、幾何補正後の参照画像における当該物体に対応する物体領域に対して、さらなる幾何補正を行う。このとき物体領域立体物判定部１２３は、例えばステップ２０２と同様の手法により、物体領域の幾何補正を行うことができる。すなわち、前述の式（１）、（２）を用いて、ステップ２０２で幾何補正を実施済みの参照画像における物体領域の各画素の位置（Ｘ１，Ｙ１）に対応する、さらなる幾何補正後の参照画像における物体領域の各画素の位置（Ｘ２，Ｙ２）を算出する。このとき、式（２）のΔＹ２には、ステップ３０６で算出した垂直ずれの値が用いられる。また、参照画像における物体領域の各画素とその周辺に位置する画素の輝度値を用いて２次元線形補間を実施することにより、さらなる幾何補正後の参照画像における物体領域の各画素の輝度値を算出する。これにより、幾何補正後の参照画像における物体領域に対してさらなる幾何補正を実施する。
【００８５】
ステップ４０６において、物体領域立体物判定部１２３は、幾何補正後の基準画像における物体領域と、ステップ４０５でさらなる幾何補正を実施した参照画像の物体領域とについて、これらの間の視差を算出する。このとき物体領域立体物判定部１２３は、例えばステップ２０３と同様の手法により、これらの物体領域の間の視差を算出することができる。
【００８６】
ステップ４０７において、物体領域立体物判定部１２３は、物体領域の立体物の判定を行う。このとき物体領域立体物判定部１２３は、ステップ４０２、４０３、４０４の判定結果や、ステップ４０６で算出した視差に基づいて、ステップ２０４で立体物と推定された物体が本当に立体物であるか否かを判定する。具体的には、例えば、ステップ４０２で参照画像の垂直移動量が算出済みであると判定した場合は、立体物と推定された物体を全て立体物であると判定する。また、ステップ４０３で前回の処理結果が立体物であると判定した場合は、当該物体は立体物であると判定する。一方、ステップ４０３で前回の処理結果が立体物ではないと判定した場合は、当該物体は立体物ではないと判定する。また、ステップ４０４で物体領域間の垂直ずれが閾値未満であると判定した場合は、ステップ２０４の推定結果の通り、当該物体は立体物であると判定し、当該物体に対応する物体領域内に立体物が存在していると判断する。また、ステップ４０６で視差を算出した場合は、その視差の値に基づいてステップ２０４と同様の処理を行うことにより、当該物体が立体物であるか否かを判断する。その結果、当該物体が立体物であると判定した場合は、その物体に対応する物体領域の３次元位置および基準画像上の位置を物体領域情報記憶部１１６に格納する。
【００８７】
ステップ４０８において、物体領域立体物判定部１２３は、ステップ２０４で立体物と推定された全ての物体について、ステップ４０７で立体物の判定を実施済みであるか否かを判定する。その結果、少なくともいずれか一つの物体について立体物の判定を未実施のない場合は、ステップ４０３に戻ってステップ４０３〜４０７の処理を継続する。一方、全ての物体について立体物の判定を実施済みである場合は、ステップ２０６の処理を終了してステップ２０７に進む。
【００８８】
（ステップ２０８の詳細）
次に、ステップ２０８で幾何校正部１２５が実施する幾何校正処理の動作手順について、以下に図５および図６を用いて説明する。なお、図５および図６では、基準画像と参照画像の間の垂直ずれを補正するための参照画像の垂直移動量の算出を、１０回の処理に分割して行う場合の動作手順の一例を示している。すなわち、図５および図６に示す幾何校正処理は、撮像部１００ａ、１００ｂがそれぞれ取得する撮像画像の１０フレーム分にわたって実行される。
【００８９】
ステップ５０１において、幾何校正部１２５は、基準画像および参照画像の水平移動量と、基準画像の垂直移動量とを算出する。ここでは幾何校正部１２５は、幾何補正画像記憶部１１２から、今回の処理においてステップ２０２で格納された現在のフレームでの幾何補正後の基準画像および参照画像を読み込み、視差画像記憶部１１３から視差画像を読み込む。そして、前述のような手法により、基準画像および参照画像の水平移動量と、基準画像の垂直移動量とを算出する。すなわち、基準画像については、幾何補正後の基準画像において車線の左右両脇にある路面上の白線を探索し、これらの交点の位置を算出することにより、基準画像における消失点の位置を求める。そして、求められた消失点の位置が撮像部１００ａの光学素子部１０１ａの光軸位置の設計値と一致するように、基準画像の水平移動量および垂直移動量を算出する。また、参照画像についても同様に、幾何補正後の参照画像において車線の左右両脇にある路面上の白線を探索し、これらの交点の位置を算出することにより、参照画像における消失点の位置を求める。そして、求められた消失点の横位置が撮像部１００ｂの光学素子部１０１ｂの光軸位置の設計値と一致するように、参照画像の水平移動量を算出する。こうして基準画像および参照画像の水平移動量と、基準画像の垂直移動量とが求められた後、幾何校正部１２５は、これらの値を幾何補正変更情報として幾何補正変更情報記憶部１１５に格納する。
【００９０】
ステップ５０２において、幾何校正部１２５は、ステップ５０１で読み込んだ幾何補正後の基準画像および参照画像が、ステレオカメラの起動後に取得された最初のフレームであるか、あるいは、前回のフレームに対して実施された前回のステップ２０８の幾何校正処理において後述のステップ５２０を実施したか否かを判定する。その結果、これらの条件のいずれかを満たす場合はステップ５０３に進み、そうでない場合はステップ５０４に進む。
【００９１】
ステップ５０３において、幾何校正部１２５は、基準画像の縦エッジおよび横エッジを検出する。ここでは幾何校正部１２５は、ステップ５０１で読み込んだ幾何補正後の基準画像に対して、前述のステップ３０４と同様の手法により、縦エッジと横エッジを検出する。すなわち、幾何補正後の基準画像の各画素の輝度値と、各画素の右隣りの画素の輝度値との差を算出して、その差の絶対値が所定の閾値以上であるか否かを判定する。その結果、絶対値が閾値以上である場合は、縦エッジがあると判断して縦エッジの値に「１」を設定し、そうでない場合は「０」を設定して、基準画像の各画素に対して縦エッジを算出する。また、幾何補正後の基準画像の各画素の輝度値と、各画素の上隣りの画素の輝度値との差を算出して、その差の絶対値が所定の閾値以上であるか否かを判定する。その結果、絶対値が閾値以上である場合は、横エッジがあると判断して横エッジの値に「１」を設定し、そうでない場合は「０」を設定して、基準画像の各画素に対して横エッジを算出する。
【００９２】
基準画像の縦エッジおよび横エッジを検出した後、幾何校正部１２５は、読み込んだ幾何補正後の基準画像、幾何補正後の参照画像および視差画像を、各画素の縦エッジおよび横エッジの値とともに、幾何補正変更情報記憶部１１５に格納する。これにより、これらの情報を次回以降の処理においても利用できるようにする。ステップ５０３の処理を実行した後、ステップ２０８の処理を終了してステップ２０９に進む。
【００９３】
ステップ５０４において、幾何校正部１２５は、前回のフレームに対して実施された前回のステップ２０８の幾何校正処理において、ステップ５０３を実施したか否かを判定する。その結果、前回の幾何校正処理でステップ５０３を実施した場合はステップ５０５に進み、そうでない場合はステップ５０６に進む。
【００９４】
ステップ５０５において、幾何校正部１２５は、ステップ５０３で縦エッジおよび横エッジを検出した基準画像のうち所定の領域について、特徴点の検出を実施する。ここでは、例えば基準画像を第１領域〜第４領域の４つの領域に分割し、そのうち第１領域を検出対象として特徴点を検出する。具体的には、幾何校正部１２５は、幾何補正変更情報記憶部１１５から、ステップ５０３で格納された基準画像の各画素の縦エッジおよび横エッジの値を読み込む。そして、第１領域内に存在する各画素についてこれらの値を確認することにより、縦エッジと横エッジがともに存在する画素を特徴点として検出する。
【００９５】
なお、幾何補正後の基準画像における第１領域〜第４領域の分割方法は、いずれか任意の方法を用いることができる。例えば、幾何補正後の基準画像を左上、右上、左下、右下の４つの領域に分割し、それぞれを第１領域〜第４領域としてもよく、幾何補正後の基準画像を上下方向または左右方向に４分割することにより４つの領域に分割し、それぞれを第１領域〜第４領域としてもよい。このとき、各領域の面積を等しくしてもよく、特徴点の表れやすさに応じて領域ごとに面積を異ならせてもよい。
【００９６】
基準画像の第１領域における特徴点を検出した後、幾何校正部１２５は、検出した各特徴点の位置を幾何補正変更情報記憶部１１５に格納する。ステップ５０５の処理を実行した後、ステップ２０８の処理を終了してステップ２０９に進む。
【００９７】
ステップ５０６において、幾何校正部１２５は、前回のフレームに対して実施された前回のステップ２０８の幾何校正処理において、ステップ５０５を実施したか否かを判定する。その結果、前回の幾何校正処理でステップ５０５を実施した場合はステップ５０７に進み、そうでない場合はステップ５０８に進む。
【００９８】
ステップ５０７において、幾何校正部１２５は、ステップ５０３で縦エッジおよび横エッジを検出した基準画像のうち所定の領域について、特徴点の検出を実施する。ここでは、例えば基準画像を第１領域〜第４領域の４つの領域に分割し、そのうち第２領域を検出対象として特徴点を検出する。具体的には、幾何校正部１２５は、幾何補正変更情報記憶部１１５から、ステップ５０３で格納された基準画像の各画素の縦エッジおよび横エッジの値を読み込む。そして、第２領域内に存在する各画素についてこれらの値を確認することにより、縦エッジと横エッジがともに存在する画素を特徴点として検出する。
【００９９】
基準画像の第２領域における特徴点を検出した後、幾何校正部１２５は、検出した各特徴点の位置を幾何補正変更情報記憶部１１５に格納する。ステップ５０７の処理を実行した後、ステップ２０８の処理を終了してステップ２０９に進む。
【０１００】
ステップ５０８において、幾何校正部１２５は、前回のフレームに対して実施された前回のステップ２０８の幾何校正処理において、ステップ５０７を実施したか否かを判定する。その結果、前回の幾何校正処理でステップ５０７を実施した場合はステップ５０９に進み、そうでない場合はステップ５１０に進む。
【０１０１】
ステップ５０９において、幾何校正部１２５は、ステップ５０３で縦エッジおよび横エッジを検出した基準画像のうち所定の領域について、特徴点の検出を実施する。ここでは、例えば基準画像を第１領域〜第４領域の４つの領域に分割し、そのうち第３領域を検出対象として特徴点を検出する。具体的には、幾何校正部１２５は、幾何補正変更情報記憶部１１５から、ステップ５０３で格納された基準画像の各画素の縦エッジおよび横エッジの値を読み込む。そして、第３領域内に存在する各画素についてこれらの値を確認することにより、縦エッジと横エッジがともに存在する画素を特徴点として検出する。
【０１０２】
基準画像の第３領域における特徴点を検出した後、幾何校正部１２５は、検出した各特徴点の位置を幾何補正変更情報記憶部１１５に格納する。ステップ５０９の処理を実行した後、ステップ２０８の処理を終了してステップ２０９に進む。
【０１０３】
ステップ５１０において、幾何校正部１２５は、前回のフレームに対して実施された前回のステップ２０８の幾何校正処理において、ステップ５０９を実施したか否かを判定する。その結果、前回の幾何校正処理でステップ５０９を実施した場合はステップ５１１に進み、そうでない場合は図６のステップ５１２に進む。
【０１０４】
ステップ５１１において、幾何校正部１２５は、ステップ５０３で縦エッジおよび横エッジを検出した基準画像のうち所定の領域について、特徴点の検出を実施する。ここでは、例えば基準画像を第１領域〜第４領域の４つの領域に分割し、そのうち第４領域を検出対象として特徴点を検出する。具体的には、幾何校正部１２５は、幾何補正変更情報記憶部１１５から、ステップ５０３で格納された基準画像の各画素の縦エッジおよび横エッジの値を読み込む。そして、第４領域内に存在する各画素についてこれらの値を確認することにより、縦エッジと横エッジがともに存在する画素を特徴点として検出する。
【０１０５】
基準画像の第４領域における特徴点を検出した後、幾何校正部１２５は、検出した各特徴点の位置を幾何補正変更情報記憶部１１５に格納する。ステップ５１１の処理を実行した後、ステップ２０８の処理を終了してステップ２０９に進む。
【０１０６】
ステップ５１２において、幾何校正部１２５は、前回のフレームに対して実施された前回のステップ２０８の幾何校正処理において、ステップ５１１を実施したか否かを判定する。その結果、前回の幾何校正処理でステップ５１１を実施した場合はステップ５１３に進み、そうでない場合はステップ５１４に進む。
【０１０７】
ステップ５１３において、幾何校正部１２５は、ステップ５０５で検出した基準画像の第１領域内の各特徴点について、参照画像から対応する点を検出し、これらの間の垂直ずれを算出する。ここでは、例えば図３のステップ３０５、３０６と同様の手法により、基準画像の第１領域内の特徴点と参照画像の対応点との間の垂直ずれを算出する。具体的には、幾何校正部１２５は、幾何補正変更情報記憶部１１５から、ステップ５０３で格納された幾何補正後の基準画像、幾何補正後の参照画像および視差画像と、ステップ５０５で格納された基準画像の第１領域における各特徴点の位置とを読み込む。そして、幾何補正後の基準画像から第１領域の特徴点を含む特徴点領域を特徴点ごとに抽出し、その位置を幾何補正後の参照画像上で視差の分だけ移動させた位置を含む所定の範囲を、ＳＡＤの算出対象範囲として設定する。そして、基準画像の特徴点領域および参照画像の算出対象範囲の輝度値に基づいて、特徴点領域に対する算出対象範囲のＳＡＤを算出し、ＳＡＤが最も小さい位置を対応点の位置として検出する。このとき、ステップ３０６と同様に、対応点を含む対応点領域を幾何補正後の参照画像上に設定し、対応点領域の上下方向に１画素ずつずれた領域について、特徴点領域に対するＳＡＤをそれぞれ求め、これらを用いて等角直線フィッティングを行うことにより対応点の位置をサブピクセル単位で求めてもよい。
【０１０８】
こうして基準画像の第１領域における特徴点ごとに、参照画像上で対応点の位置を検出した後、幾何校正部１２５は、垂直方向における各特徴点と各対応点の位置の差を、これらの間の垂直ずれとして算出し、幾何補正変更情報記憶部１１５に格納する。なお、ステップ５０５において基準画像の第１領域内に特徴点が一つも検出されなかった場合は、ステップ５１３では、第１領域における特徴点と対応点間の垂直ずれは算出されない。ステップ５１３の処理を実行した後、ステップ２０８の処理を終了してステップ２０９に進む。
【０１０９】
ステップ５１４において、幾何校正部１２５は、前回のフレームに対して実施された前回のステップ２０８の幾何校正処理において、ステップ５１３を実施したか否かを判定する。その結果、前回の幾何校正処理でステップ５１３を実施した場合はステップ５１５に進み、そうでない場合はステップ５１６に進む。
【０１１０】
ステップ５１５において、幾何校正部１２５は、ステップ５０７で検出した基準画像の第２領域内の各特徴点について、参照画像から対応する点を検出し、これらの間の垂直ずれを算出する。ここでもステップ５１３と同じく、例えば図３のステップ３０５、３０６と同様の手法により、基準画像の第２領域内の特徴点と参照画像の対応点との間の垂直ずれを算出する。具体的には、幾何校正部１２５は、幾何補正変更情報記憶部１１５から、ステップ５０３で格納された幾何補正後の基準画像、幾何補正後の参照画像および視差画像と、ステップ５０７で格納された基準画像の第２領域における各特徴点の位置とを読み込む。そして、幾何補正後の基準画像から第２領域の特徴点を含む特徴点領域を特徴点ごとに抽出し、その位置を幾何補正後の参照画像上で視差の分だけ移動させた位置を含む所定の範囲を、ＳＡＤの算出対象範囲として設定する。そして、基準画像の特徴点領域および参照画像の算出対象範囲の輝度値に基づいて、特徴点領域に対する算出対象範囲のＳＡＤを算出し、ＳＡＤが最も小さい位置を対応点の位置として検出する。このとき、ステップ３０６と同様に、対応点を含む対応点領域を幾何補正後の参照画像上に設定し、対応点領域の上下方向に１画素ずつずれた領域について、特徴点領域に対するＳＡＤをそれぞれ求め、これらを用いて等角直線フィッティングを行うことにより対応点の位置をサブピクセル単位で求めてもよい。
【０１１１】
こうして基準画像の第２領域における特徴点ごとに、参照画像上で対応点の位置を検出した後、幾何校正部１２５は、垂直方向における各特徴点と各対応点の位置の差を、これらの間の垂直ずれとして算出し、幾何補正変更情報記憶部１１５に格納する。なお、ステップ５０７において基準画像の第２領域内に特徴点が一つも検出されなかった場合は、ステップ５１５では、第２領域における特徴点と対応点間の垂直ずれは算出されない。ステップ５１５の処理を実行した後、ステップ２０８の処理を終了してステップ２０９に進む。
【０１１２】
ステップ５１６において、幾何校正部１２５は、前回のフレームに対して実施された前回のステップ２０８の幾何校正処理において、ステップ５１５を実施したか否かを判定する。その結果、前回の幾何校正処理でステップ５１５を実施した場合はステップ５１７に進み、そうでない場合はステップ５１８に進む。
【０１１３】
ステップ５１７において、幾何校正部１２５は、ステップ５０９で検出した基準画像の第３領域内の各特徴点について、参照画像から対応する点を検出し、これらの間の垂直ずれを算出する。ここでもステップ５１３、５１５と同じく、例えば図３のステップ３０５、３０６と同様の手法により、基準画像の第３領域内の特徴点と参照画像の対応点との間の垂直ずれを算出する。具体的には、幾何校正部１２５は、幾何補正変更情報記憶部１１５から、ステップ５０３で格納された幾何補正後の基準画像、幾何補正後の参照画像および視差画像と、ステップ５０９で格納された基準画像の第３領域における各特徴点の位置とを読み込む。そして、幾何補正後の基準画像から第３領域の特徴点を含む特徴点領域を特徴点ごとに抽出し、その位置を幾何補正後の参照画像上で視差の分だけ移動させた位置を含む所定の範囲を、ＳＡＤの算出対象範囲として設定する。そして、基準画像の特徴点領域および参照画像の算出対象範囲の輝度値に基づいて、特徴点領域に対する算出対象範囲のＳＡＤを算出し、ＳＡＤが最も小さい位置を対応点の位置として検出する。このとき、ステップ３０６と同様に、対応点を含む対応点領域を幾何補正後の参照画像上に設定し、対応点領域の上下方向に１画素ずつずれた領域について、特徴点領域に対するＳＡＤをそれぞれ求め、これらを用いて等角直線フィッティングを行うことにより対応点の位置をサブピクセル単位で求めてもよい。
【０１１４】
こうして基準画像の第３領域における特徴点ごとに、参照画像上で対応点の位置を検出した後、幾何校正部１２５は、垂直方向における各特徴点と各対応点の位置の差を、これらの間の垂直ずれとして算出し、幾何補正変更情報記憶部１１５に格納する。なお、ステップ５０９において基準画像の第３領域内に特徴点が一つも検出されなかった場合は、ステップ５１７では、第３領域における特徴点と対応点間の垂直ずれは算出されない。ステップ５１７の処理を実行した後、ステップ２０８の処理を終了してステップ２０９に進む。
【０１１５】
ステップ５１８において、幾何校正部１２５は、前回のフレームに対して実施された前回のステップ２０８の幾何校正処理において、ステップ５１７を実施したか否かを判定する。その結果、前回の幾何校正処理でステップ５１７を実施した場合はステップ５１９に進み、そうでない場合はステップ５２０に進む。
【０１１６】
ステップ５１９において、幾何校正部１２５は、ステップ５１１で検出した基準画像の第４領域内の各特徴点について、参照画像から対応する点を検出し、これらの間の垂直ずれを算出する。ここでもステップ５１３、５１５、５１７と同じく、例えば図３のステップ３０５、３０６と同様の手法により、基準画像の第４領域内の特徴点と参照画像の対応点との間の垂直ずれを算出する。具体的には、幾何校正部１２５は、幾何補正変更情報記憶部１１５から、ステップ５０３で格納された幾何補正後の基準画像、幾何補正後の参照画像および視差画像と、ステップ５１１で格納された基準画像の第４領域における各特徴点の位置とを読み込む。そして、幾何補正後の基準画像から第４領域の特徴点を含む特徴点領域を特徴点ごとに抽出し、その位置を幾何補正後の参照画像上で視差の分だけ移動させた位置を含む所定の範囲を、ＳＡＤの算出対象範囲として設定する。そして、基準画像の特徴点領域および参照画像の算出対象範囲の輝度値に基づいて、特徴点領域に対する算出対象範囲のＳＡＤを算出し、ＳＡＤが最も小さい位置を対応点の位置として検出する。このとき、ステップ３０６と同様に、対応点を含む対応点領域を幾何補正後の参照画像上に設定し、対応点領域の上下方向に１画素ずつずれた領域について、特徴点領域に対するＳＡＤをそれぞれ求め、これらを用いて等角直線フィッティングを行うことにより対応点の位置をサブピクセル単位で求めてもよい。
【０１１７】
こうして基準画像の第４領域における特徴点ごとに、参照画像上で対応点の位置を検出した後、幾何校正部１２５は、垂直方向における各特徴点と各対応点の位置の差を、これらの間の垂直ずれとして算出し、幾何補正変更情報記憶部１１５に格納する。なお、ステップ５１１において基準画像の第４領域内に特徴点が一つも検出されなかった場合は、ステップ５１９では、第４領域における特徴点と対応点間の垂直ずれは算出されない。ステップ５１９の処理を実行した後、ステップ２０８の処理を終了してステップ２０９に進む。
【０１１８】
ステップ５２０において、幾何校正部１２５は、ステップ５１３、５１５、５１７、５１９でそれぞれ算出した第１〜第４領域における特徴点と対応点間の垂直ずれに基づいて、参照画像の垂直移動量を算出する。具体的には、幾何校正部１２５は、幾何補正変更情報記憶部１１５から、ステップ５１３、５１５、５１７、５１９でそれぞれ格納された第１〜第４領域の各特徴点と各対応点の垂直ずれを読み込む。また、幾何補正変更情報記憶部１１５から参照画像の垂直移動量を読み込む。そして、これらの垂直ずれの平均値を算出して、物体領域間の垂直ずれの平均値を、読み込んだ参照画像の垂直移動量に加算することにより、基準画像と参照画像の垂直ずれを補正するための参照画像の垂直移動量を算出する。こうして第１〜第４領域に対してそれぞれ検出された特徴点と対応点との垂直ずれに基づいて参照画像の垂直移動量を算出した後、幾何校正部１２５は、その値を幾何補正変更情報として幾何補正変更情報記憶部１１５に格納する。ステップ５２０を実施した後、ステップ２０８の処理を終了してステップ２０９に進む。
【０１１９】
従来技術では、前述したように、経年変化、熱変化、衝撃振動等によって撮像部１００ａ、１００ｂの撮像方向に機械的なずれが生じており、そのため基準画像と参照画像の間に垂直方向のずれが発生している状態で、ステレオカメラの起動後に車線の両脇にある路面上の白線のみが撮影されていると、基準画像と参照画像の垂直ずれを補正できない。こうした状況下で、例えば図７に示したようなゼブラゾーンが路面上に現れると、視差に誤差が生じてしまい、ゼブラゾーンの領域が誤って立体物と推定されてしまうことがある。
（詳細は［０００４］、［００５１］〜［００５４］を参照）
【０１２０】
これに対して、以上説明したような本実施形態のステレオカメラによれば、図２のステップ２０５において、物体領域垂直ずれ検出部１２２により、物体領域間の垂直ずれの検出を行い、その結果を用いて、ステップ２０６において、物体領域立体物判定部１２３により、立体物の判定を行う。これにより、基準画像と参照画像の間に垂直ずれが存在する場合でも、現在のフレーム内で立体物を正確に判定して、立体物の誤判定を防ぐことができる。
【０１２１】
また、本実施形態のステレオカメラによれば、図３のステップ３１１において、物体領域垂直ずれ検出部１２２により、現在のフレームまでに算出した物体領域間の垂直ずれに基づいて、参照画像の垂直移動量を算出する。ステップ２０２では、この垂直移動量を用いて参照画像の幾何補正を行うことにより、基準画像と参照画像の間の垂直ずれを適切に補正できる。
【０１２２】
また、本実施形態のステレオカメラによれば、図３のステップ３０１において、参照画像の垂直移動量が未算出であり、かつ、立体物と推定された物体が存在するか否かを判定し、これらの条件を満たす場合にのみ、物体領域垂直ずれ検出部１２２により、ステップ３０２以降の処理を実施して物体領域間の垂直ずれの検出を行う。そのため、参照画像の垂直移動量を算出済みである場合や、立体物と推定された物体が存在しない場合には、物体領域垂直ずれ検出部１２２の動作を停止して処理負荷を低減できる。これにより、演算部１１０の温度上昇を抑えるとともに、演算部１１０の処理がフレームレート内で完了できずに途中で中断してしまうリスクを低減できる。
【０１２３】
また、本実施形態のステレオカメラによれば、図４のステップ４０１において、立体物と推定された物体が存在するか否かを判定し、この条件を満たす場合にのみ、物体領域立体物判定部１２３により、ステップ４０２以降の処理を実施して立体物の判定を行う。そのため、立体物と推定された物体が存在しない場合には、物体領域立体物判定部１２３の動作を停止して処理負荷を低減できる。これにより、演算部１１０の温度上昇を抑えるとともに、演算部１１０の処理がフレームレート内で完了できずに途中で中断してしまうリスクを低減できる。
【０１２４】
また、本実施形態のステレオカメラによれば、図３のステップ３０３において、立体物と推定された物体が前回の処理において立体物ではないと判定されたか否かを判定し、立体物ではないと判定されていた場合、物体領域垂直ずれ検出部１２２は、物体領域間の垂直ずれの検出を行わない。そのため、既に立体物ではないと判定済みの物体については、物体領域垂直ずれ検出部１２２の処理を省略して処理負荷を低減できる。これにより、演算部１１０の温度上昇を抑えるとともに、演算部１１０の処理がフレームレート内で完了できずに途中で中断してしまうリスクを低減できる。
【０１２５】
また、本実施形態のステレオカメラによれば、図４のステップ４０２において、参照画像の垂直移動量が未算出であるか否かを判定し、ステップ４０３において、立体物と推定された物体が前回の処理において立体物ではないと判定されたか否かを判定し、ステップ４０４において、物体領域間の垂直ずれが閾値以上であるか否かを判定する。そして、参照画像の垂直移動量が算出済みである場合や、物体が立体物ではないと判定されていた場合や、物体領域間の垂直ずれが閾値以内である場合、物体領域立体物判定部１２３は、物体領域間の垂直ずれを補正したときの視差を算出せずに、ステップ４０７で立体物の判定を行う。そのため、参照画像の垂直移動量を算出済みである場合や、既に立体物ではないと判定済みの物体や、物体領域間の垂直ずれの影響が小さい物体については、物体領域立体物判定部１２３の処理を省略して処理負荷を低減できる。これにより、演算部１１０の温度上昇を抑えるとともに、演算部１１０の処理がフレームレート内で完了できずに途中で中断してしまうリスクを低減できる。
【０１２６】
なお、本発明のステレオカメラは、上記で説明したような実施の形態に限定されるものではなく、様々に変形して適用することができる。以下では、本発明のステレオカメラの変形例について説明する。
【０１２７】
（変形例１）
本変形例では、図２のステップ２０５で物体領域垂直ずれ検出部１２２が行う物体領域間の垂直ずれの検出処理において、図３に示した動作手順に替えて、図１３の動作手順を実施するとともに、図２のステップ２０６で物体領域立体物判定部１２３が行う立体物の判定処理において、図４に示した動作手順に替えて、図１４の動作手順を実施する例を説明する。なお、図１３の動作手順において、ステップ３０１〜３０３、３０７〜３１１の各処理は、図３で説明したものとそれぞれ同一であり、図１４の動作手順において、ステップ４０１〜４０３、４０７〜４０８の各処理は、図３、図４で説明したものとそれぞれ同一であるため、以下では図３、図４とはそれぞれ異なるステップ１３０１〜１３０４、ステップ１４０１〜１４０２についてのみ説明する。
【０１２８】
ステップ１３０１において、物体領域垂直ずれ検出部１２２は、基準画像の物体領域内で縦エッジおよび横エッジを検出する。ここでは物体領域垂直ずれ検出部１２２は、ステップ３０２で前回のフレームで立体物と判定されていないと判断した幾何補正後の基準画像における物体領域に対して、図３のステップ３０４と同様の手法により、縦エッジと横エッジを検出する。すなわち、幾何補正後の基準画像における当該物体領域内の各画素の輝度値と、各画素の右隣りの画素の輝度値との差を算出して、その差の絶対値が所定の閾値以上であるか否かを判定する。その結果、絶対値が閾値以上である場合は、物体領域内に縦エッジがあると判断して縦エッジの値に「１」を設定し、そうでない場合は「０」を設定して、基準画像の物体領域内の各画素に対して縦エッジを算出する。また、幾何補正後の基準画像における当該物体領域内の各画素の輝度値と、各画素の上隣りの画素の輝度値との差を算出して、その差の絶対値が所定の閾値以上であるか否かを判定する。その結果、絶対値が閾値以上である場合は、物体領域内に横エッジがあると判断して横エッジの値に「１」を設定し、そうでない場合は「０」を設定して、基準画像の物体領域内の各画素に対して横エッジを算出する。
【０１２９】
ステップ１３０２において、物体領域垂直ずれ検出部１２２は、ステップ１３０１で検出した縦エッジおよび横エッジに基づいて、基準画像の物体領域内で斜めエッジを検出する。具体的には、例えば物体領域垂直ずれ検出部１２２は、ステップ１３０１で求めた縦エッジと横エッジの論理和を求めて、これを物体領域内のエッジとする。この物体領域内のエッジを用いてハフ変換を行い、物体領域内で斜め方向に直線状に延びるエッジの位置および角度を算出することにより、一つまたは複数の斜めエッジを検出する。基準画像の物体領域内で一つまたは複数の斜めエッジを検出した後、物体領域垂直ずれ検出部１２２は、それらの位置および角度を物体領域情報記憶部１１６に格納する。なお、ここで検出される斜めエッジには、物体領域内で水平方向または垂直方向に延びるものが含まれる場合もある。
【０１３０】
ステップ１３０３において、物体領域垂直ずれ検出部１２２は、ステップＳ１３０２で検出した各斜めエッジの位置および角度に基づいて、基準画像の物体領域内に所定の条件を満たす斜めエッジが２本以上あるか否かを判定する。具体的には、例えば物体領域垂直ずれ検出部１２２は、ステップ１３０２で算出した角度が水平方向に対してそれぞれ所定の角度範囲内であり、かつ、その差が所定の閾値未満である２本以上の斜めエッジがある場合は、基準画像の物体領域内に条件を満たす斜めエッジが２本以上あると判定してステップ１３０４に進む。一方、これらの条件を満たす斜めエッジがない場合は、ステップ３０７に進む。なお、斜めエッジの角度範囲の条件は、垂直方向を含まずに水平方向を含むように、例えば水平方向を基準として、−４５〜＋４５°等の範囲で設定される。これは、水平方向に対する角度が小さい斜めエッジが存在すると、基準画像と参照画像の間の垂直ずれが視差の誤差に大きな影響を与える可能性があるためである。
【０１３１】
ステップ１３０４において、物体領域垂直ずれ検出部１２２は、基準画像の物体領域内でステップＳ１３０３の判定条件を満たす斜めエッジについて、その端部での基準画像と参照画像間の垂直ずれを、基準画像と参照画像の物体領域間の垂直ずれとして検出する。このとき、例えば物体領域垂直ずれ検出部１２２は、ステップ１３０２で算出した当該斜めエッジの位置や角度に基づいて、幾何補正後の基準画像の物体領域内における当該斜めエッジの端部の位置を検出する。そして、検出した斜めエッジ端の位置を幾何補正後の参照画像上で視差の分だけ移動させた位置を含む所定の範囲を、ＳＡＤの算出対象範囲として設定する。そして、基準画像における斜めエッジ端周囲の所定範囲および参照画像の算出対象範囲の輝度値に基づいて、斜めエッジ端に対する算出対象範囲のＳＡＤを算出し、ＳＡＤが最も小さい位置を斜めエッジ端の対応点の位置として検出する。このとき、ステップ３０６やステップ５１３と同様に、斜めエッジ端の対応点を含む領域を幾何補正後の参照画像上に設定し、その領域の上下方向に１画素ずつずれた領域について、斜めエッジ端に対するＳＡＤをそれぞれ求め、これらを用いて等角直線フィッティングを行うことにより斜めエッジ端の対応点の位置をサブピクセル単位で求めてもよい。
【０１３２】
こうして基準画像の物体領域内の斜めエッジ端について、参照画像上で当該斜めエッジ端の対応点の位置を検出した後、物体領域垂直ずれ検出部１２２は、垂直方向における斜めエッジ端とその対応点との位置の差を、当該斜めエッジの端部での基準画像と参照画像間の垂直ずれとして算出し、幾何補正変更情報記憶部１１５に格納する。こうした処理を、ステップ１３０３の判定条件を満たす全ての斜めエッジについてそれぞれ実施することにより、幾何補正後の基準画像の物体領域内にある斜めエッジごとに、その端部での垂直ずれを物体領域間の垂直ずれとして検出することができる。ここで、斜めエッジの端部には異なる二つの方向のエッジが含まれるため、斜めエッジの端部は前述の特徴点に相当し、これに対応する対応点を参照画像上で求めることができる。
【０１３３】
ステップ１４０１において、物体領域立体物判定部１２３は、ステップ１３０４で物体領域垂直ずれ検出部１２２が当該物体について算出した物体領域間の垂直ずれ、すなわち斜めエッジの端部での垂直ずれが、所定の閾値以上であるか否かを判定する。その結果、斜めエッジの端部での垂直ずれが閾値以上である場合はステップ１４０２に進み、閾値未満である場合はステップ４０７に進む。
【０１３４】
ステップ１４０２において、物体領域立体物判定部１２３は、斜めエッジの端部での垂直ずれを補正した物体領域の視差を算出する。このとき物体領域立体物判定部１２３は、ステップ１３０２で格納された物体領域内の斜めエッジの位置および角度を物体領域情報記憶部１１６から読み込み、今回の処理においてステップ１３０４で格納された斜めエッジの端部での垂直ずれを幾何補正変更情報記憶部１１５から読み込むとともに、視差画像記憶部１１３から視差画像を読み込む。そして、これらの情報に基づき、例えば以下の式（７）を用いて、斜めエッジの端部での垂直ずれを補正した物体領域の視差Ｄｃを算出する。式（７）において、Ｄｅは垂直ずれを補正する前の視差、ΔＶは斜めエッジの端部での垂直ずれ、θｅは斜めエッジの角度をそれぞれ表している。
Ｄｃ＝Ｄｅ＋ΔＶ／ｔａｎθｅ    ・・・（７）
【０１３５】
以上説明した本変形例のステレオカメラによれば、図１３のステップ１３０１〜ステップ１３０３において、基準画像の物体領域内で斜めエッジを検出し、この斜めエッジが立体物の誤判定の発生条件を満たす場合、すなわち、２本以上の斜めエッジが閾値以内の角度差で存在する場合にのみ、ステップ１３０４で物体領域垂直ずれ検出部１２２により垂直ずれの検出を行う。そのため、立体物の誤判定が発生するおそれがないときには、物体領域垂直ずれ検出部１２２の処理を省略して処理負荷を低減できる。これにより、演算部１１０の温度の上昇を抑えるとともに、演算部１１０の処理がフレームレート内で完了できずに途中で中断してしまうリスクを低減できる。
【０１３６】
また、本変形例のステレオカメラによれば、図１４のステップ１４０１において、斜めエッジの端部での垂直ずれが閾値以上であるか否かを判定する。そして、閾値以内である場合、物体領域立体物判定部１２３は、ステップ１４０２で斜めエッジの端部での垂直ずれを補正した物体領域の視差を算出することなく、ステップ４０７で立体物の判定を行う。そのため、垂直ずれの影響が小さい物体については、物体領域立体物判定部１２３の処理を省略して処理負荷を低減できる。これにより、演算部１１０の温度上昇を抑えるとともに、演算部１１０の処理がフレームレート内で完了できずに途中で中断してしまうリスクを低減できる。
【０１３７】
（変形例２）
以上説明した第１の実施形態および変形例１では、図３、図１３のステップ３０１において、参照画像の垂直移動量が未算出であり、かつ、ステップ２０４で立体物推定部１２１が立体物と推定した物体があるか否かを判定し、これらの条件をいずれも満たす場合にのみ、ステップ３０２以降の処理を実施して基準画像と参照画像の物体領域間の垂直ずれを検出するようにしていた。しかしながら、参照画像の垂直移動量が未算出であるか否かに関わらず、立体物と推定された物体がある場合には、基準画像と参照画像の物体領域間の垂直ずれを検出するようにしてもよい。このようにすれば、ステレオカメラの動作中に熱変化、衝撃振動等によって撮像部１００ａ、１００ｂの撮像方向に機械的なずれが発生した場合でも、それによる視差の誤差を補正し、路面上の斜め線の模様を立体物と誤って判定してしまうのを防ぐことができる。
【０１３８】
（変形例３）
以上説明した第１の実施形態および変形例１では、図５、図６のステップ５０４〜５１９において、基準画像を第１領域〜第４領域の４つの領域に分割し、各領域についてフレームごとに特徴点の検出および特徴と対応点間の垂直ずれの算出を行う例を説明したが、基準画像の分割数は４つに限定されない。演算部１１０の演算処理能力や、撮像部１００ａ、１００ｂが撮像画像を出力するフレームレートなどに応じて、任意の分割数で基準画像を分割し、これらの処理を行うことができる。
【０１３９】
（変形例４）
以上説明した第１の実施形態、変形例１及び変形例２では、図３、図１３のステップ３１１、図６のステップ５２０において、物体領域間の垂直ずれ、第１〜第４領域に対してそれぞれ検出された特徴点と対応点との垂直ずれに基づいて参照画像の垂直移動量を算出するとともに、図３、図１３のステップ３０１、図４、図１４のステップ４０２において、参照画像の垂直移動量が算出されたか否かをもとに、処理を分岐する例を説明したが、基準画像と参照画像を補正するパラメータは参照画像の垂直移動量だけに限定しない。つまり、図３、図１３のステップ３１１、図６のステップ５２０において、物体領域間の垂直ずれ、第１〜第４領域に対してそれぞれ検出された特徴点と対応点との垂直ずれに基づいて、基準画像の垂直移動量、あるいは、基準画像の垂直移動量と参照画像の垂直移動量の両方を算出するとともに、図３、図１３のステップ３０１、図４、図１４のステップ４０２において、基準画像の垂直移動量、あるいは、基準画像の垂直移動量と参照画像の垂直移動量の両方が算出されたか否かをもとに、処理を分岐したとしても、基準画像と参照画像間の垂直ずれを補正できる。
【０１４０】
以上説明した本発明の一実施形態および変形例によれば、以下の作用効果を奏する。
【０１４１】
（１）画像処理装置である演算部１１０は、基準画像取込部１１８ａおよび参照画像取込部１１８ｂと、幾何補正部１１９と、視差算出部１２０と、立体物推定部１２１と、物体領域垂直ずれ検出部１２２と、物体領域立体物判定部１２３とを備えている。基準画像取込部１１８ａおよび参照画像取込部１１８ｂは、ステレオカメラを構成する一対の撮像部１００ａ、１００ｂにより所定のフレームレートごとにそれぞれ撮像された基準画像および参照画像を取り込む（ステップ２０１）。幾何補正部１１９は、予め設定されて幾何補正情報記憶部１１４に格納された幾何補正情報を用いて、基準画像および参照画像の幾何補正を行う（ステップ２０２）。視差算出部１２０は、幾何補正部１１９による幾何補正後の基準画像および参照画像に基づく視差画像を算出する（ステップ２０３）。立体物推定部１２１は、視差算出部１２０により算出された視差画像に基づいて、基準画像および参照画像に含まれる物体が立体物であるか否かを推定する立体物の推定を行う（ステップ２０４）。物体領域垂直ずれ検出部１２２は、立体物推定部１２１により物体が立体物であると推定された場合、立体物の推定が行われたのと同じフレームの基準画像および参照画像を用いて、基準画像内の物体を含む物体領域と参照画像内の物体を含む物体領域との垂直ずれを検出する（ステップ２０５）。物体領域立体物判定部１２３は、物体領域垂直ずれ検出部１２２により検出された基準画像の物体領域と参照画像の物体領域との垂直ずれに基づいて物体の視差を算出し、物体が立体物であるか否かを判定する（ステップ２０６）。このようにしたので、ステレオ画像において垂直方向のずれがある場合でも、ステレオ画像から立体物を正確に検知することができる。
【０１４２】
（２）物体領域垂直ずれ検出部１２２は、基準画像の物体領域内で縦エッジと横エッジがともに存在する特徴点を検出し（ステップ３０４）、参照画像の物体領域内で特徴点に対応する対応点を検出して（ステップ３０５）、基準画像の物体領域における特徴点と、参照画像の物体領域における対応点との間の垂直方向のずれを、基準画像の物体領域と参照画像の物体領域との垂直ずれとして検出する（ステップ３０６）。このようにしたので、１フレームの画像から物体領域間の垂直ずれを確実に検出することができる。
【０１４３】
（３）また、物体領域垂直ずれ検出部１２２は、基準画像の物体領域内で所定の角度範囲内に延びる直線エッジを斜めエッジとして検出し（ステップ１３０２）、角度差が所定の閾値未満である複数の斜めエッジが検出された場合（ステップ１３０３）、基準画像の物体領域における斜めエッジの端部と、参照画像の物体領域における斜めエッジの端部との間の垂直方向のずれを、基準画像の物体領域と参照画像の物体領域との垂直ずれとして検出する（ステップ１３０４）。このようにしても、１フレームの画像から物体領域間の垂直ずれを確実に検出することができる。
【０１４４】
（４）物体領域立体物判定部１２３は、基準画像の物体領域と参照画像の物体領域との垂直ずれを補正し、補正後の基準画像の物体領域と参照画像の物体領域との視差を算出することにより物体の視差を算出して（ステップ４０５および４０６、またはステップ１４０２）、物体が立体物であるか否かを判定する（ステップ４０７）。このようにしたので、立体物推定部１２１により立体物と推定された物体が、本当に立体物であるか否かを確実に判定することができる。
【０１４５】
（５）物体領域垂直ずれ検出部１２２は、ステップ３０６またはステップ１３０４で検出した基準画像の物体領域と参照画像の物体領域との垂直ずれに基づいて基準画像の垂直移動量および参照画像の垂直移動量のいずれか一方または両方を算出する（ステップ３１１）。幾何補正部１１９は、ステップ２０２において、物体領域垂直ずれ検出部１２２により算出された基準画像の垂直移動量および参照画像の垂直移動量のいずれか一方または両方を用いて、基準画像および参照画像の幾何補正を行う。このようにしたので、ステレオ画像において垂直方向のずれが生じた場合でも、そのずれを正確に補正することができる。
【０１４６】
（６）物体領域垂直ずれ検出部１２２は、基準画像の物体領域と参照画像の物体領域との垂直ずれの検出回数が所定の閾値以上になると（ステップ３１０：「はい」）、ステップ３１１において基準画像の垂直移動量および参照画像の垂直移動量のいずれか一方または両方を算出する。このようにしたので、基準画像と参照画像における物体領域間の垂直ずれを、ノイズを除去して正確に検出できるため、基準画像の垂直移動量および参照画像の垂直移動量のいずれか一方または両方を正確に算出することができる。
【０１４７】
（７）物体領域垂直ずれ検出部１２２は、前回の処理のステップ３１１で基準画像の垂直移動量および参照画像の垂直移動量のいずれか一方または両方を算出済みである場合（ステップ３０１：「いいえ」）、ステップ３０６またはステップ１３０４を実施しないことにより、基準画像の物体領域と参照画像の物体領域との垂直ずれの検出を停止する。このようにしたので、処理負荷の軽減を図ることができる。
【０１４８】
（８）また、物体領域垂直ずれ検出部１２２がステップ３１１で基準画像の垂直移動量および参照画像の垂直移動量のいずれか一方または両方を算出済みである場合（ステップ４０２：「いいえ」）、物体領域立体物判定部１２３は、ステップ４０６またはステップ１４０２を実施しないことにより、垂直ずれに基づく物体の視差を算出せずに、ステップ４０７で物体が立体物であると判定する。このようにしたので、処理負荷の軽減を図ることができる。
【０１４９】
（９）また、物体領域垂直ずれ検出部１２２は、過去のフレームで立体物ではないと判定済みの物体については（ステップ３０３：「はい」）、ステップ３０６またはステップ１３０４を実施しないことにより、基準画像の物体領域と参照画像の物体領域との垂直ずれの検出を行わない。このようにしたので、処理負荷の軽減を図ることができる。
【０１５０】
（１０）また、物体領域立体物判定部１２３は、物体領域垂直ずれ検出部１２２が過去のフレームで立体物ではないと判定済みの物体については（ステップ４０３：「はい」）、ステップ４０６またはステップ１４０２を実施しないことにより、垂直ずれに基づく物体の視差を算出せずに、ステップ４０７で物体が立体物ではないと判定する。このようにしたので、処理負荷の軽減を図ることができる。
【０１５１】
（１１）画像処理装置である演算部１１０は、複数フレームの基準画像および参照画像を用いて、基準画像の物体領域と参照画像の物体領域との垂直ずれに基づく基準画像の垂直移動量および参照画像の垂直移動量のいずれか一方または両方を算出する（ステップ５０２〜５２０）幾何校正部１２５をさらに備える。幾何補正部１１９は、ステップ２０２において、幾何校正部１２５により算出された基準画像の垂直移動量および参照画像の垂直移動量のいずれか一方または両方を用いて、基準画像および参照画像の幾何補正を行う。このようにしたので、ステレオ画像において垂直方向のずれが生じた場合に、そのずれを正確に補正することができる。
【０１５２】
以上説明した各実施形態や各種変形例はあくまで一例であり、発明の特徴が損なわれない限り、本発明はこれらの内容に限定されるものではない。また、上記では種々の実施形態や変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【０１５３】
１００ａ，１００ｂ…撮像部、１０１ａ，１０１ｂ…光学素子部、１０２ａ，１０２ｂ…撮像素子部、１１０…演算部、１１１…撮像画像記憶部、１１２…幾何補正画像記憶部、１１３…視差画像記憶部、１１４…幾何補正情報記憶部、１１５…幾何補正変更情報記憶部、１１６…物体領域情報記憶部、１１７…同期信号発生部、１１８ａ…基準画像取込部、１１８ｂ…参照画像取込部、１１９…幾何補正部、１２０…視差算出部、１２１…立体物推定部、１２２…物体領域垂直ずれ検出部、１２３…物体領域立体物判定部、１２４…認識部、１２５…幾何校正部、１３０…画面音声出力部、１４０…制御部
【図１】
2020095646.tif 000003
【図２】
2020095646.tif 000004
【図３】
2020095646.tif 000005
【図４】
2020095646.tif 000006
【図５】
2020095646.tif 000007
【図６】
2020095646.tif 000008
【図７】
2020095646.tif 000009
【図８】
2020095646.tif 000010
【図９】
2020095646.tif 000011
【図１０】
2020095646.tif 000012
【図１１】
2020095646.tif 000013
【図１２】
2020095646.tif 000014
【図１３】
2020095646.tif 000015
【図１４】
2020095646.tif 000016