(57)【要約】【課題】移動体の前方を複数の撮像手段で撮像して得た複数の撮像画像及びその撮像画像から生成した視差画像に基づいて、当該移動体が移動する移動面上の立体物の三次元的な位置や大きさを検出するときに、移動面を正確に検出して移動面の視差値と物体の視差値の連結を防止し、立体物の正確な位置や大きさを検出できるようにする。【解決手段】ステレオカメラの撮像画像から視差画像を生成する視差画像生成部１３２と、前記撮像画像内における路面を検出する路面形状検出部１３５と、検出された路面と視差画像とに基づいて、横軸を横方向の距離、縦軸を移動方向の距離とした視差値の頻度分布及び高さ分布を表すマップ情報を生成するリアルＵマップ生成部１３８と、前記頻度分布に基づいて孤立領域を検出する孤立領域検出部１３９と、前記孤立領域に基づいて路面上の立体物（物体）を抽出するオブジェクト領域抽出部１４１と、を有する。【選択図】図４
2015179302.tif 000002
【特許請求の範囲】
【請求項１】
移動面上を移動する移動体に搭載された複数の撮像手段により前記移動体の移動方向の前方を撮像して得た複数の撮像画像及びその撮像画像から生成した視差画像に基づいて、前記移動面上の立体物を検出する立体物検出装置であって、
前記複数の撮像画像内における前記移動面を検出する移動面検出手段と、
前記検出された移動面と前記視差画像とに基づいて、前記移動方向に対する横方向の距離と前記移動方向の距離とを関連付けた視差値の頻度分布を表すマップを生成するマップ生成手段と、
前記頻度分布に基づいて孤立領域を検出する孤立領域検出手段と、
前記孤立領域検出手段の出力に基づいて、前記移動面上の立体物を検出する立体物検出手段と、
を有する立体物検出装置。
【請求項２】
請求項１に記載された立体物検出装置において、
前記マップ生成手段は、前記視差値の高さ分布を表すマップを生成し、
前記孤立領域検出手段は、所定の大きさの孤立領域を検出する手段と、前記検出された孤立領域内の周辺部で高さが所定の閾値以下の部分を周辺領域として前記高さ分布に基づいて除去する周辺領域除去手段と、を有し、前記周辺領域が除去された孤立領域を出力する立体物検出装置。
【請求項３】
請求項２に記載された立体物検出装置において、
前記周辺領域除去手段は、前記周辺部で前記移動方向の距離が近い近傍領域を除去する近傍領域除去手段と、前記周辺部における左側の部分を除去する左側領域除去手段と、前記周辺部における右側の部分を除去する右側領域除去手段と、を有する立体物検出装置。
【請求項４】
請求項２に記載された立体物検出装置において、
前記所定の閾値は、前記孤立領域内の高さの最大値に応じて設定される立体物検出装置。
【請求項５】
請求項１に記載された立体物検出装置において、
前記マップ生成手段は、前記移動方向の距離に応じて、前記視差値を間引く量を変化させる手段を有する立体物検出装置。
【請求項６】
請求項１に記載された立体物検出装置において、
前記孤立領域検出手段は、前記検出された孤立領域のうち、前記頻度分布及び高さ分布の積の前記他方の軸の方向の総和が最小の行で前記孤立領域を分割する分離手段を有する立体物検出装置。
【請求項７】
請求項１に記載された立体物検出装置において、
前記立体物検出手段は、前記孤立領域検出手段で検出された孤立領域に対応する視差画像内の対応領域を検出する対応領域検出手段と、前記検出された対応領域から前記立体物を抽出する立体物抽出手段と、を有する立体物検出装置。
【請求項８】
移動面上を移動する移動体に搭載された複数の撮像手段により前記移動体の移動方向の前方を撮像して得た複数の撮像画像及びその撮像画像から生成した視差画像に基づいて、前記移動面上の立体物を検出する立体物検出装置により実行される立体物検出方法であって、
前記複数の撮像画像内における前記移動面を検出する工程と、
前記検出された移動面と前記視差画像とに基づいて、前記移動方向に対する横方向の距離と前記移動方向の距離とを関連付けた視差値の頻度分布を表すマップを生成する工程と、
前記頻度分布に基づいて孤立領域を検出する工程と、
前記検出された孤立領域に基づいて、前記移動面上の立体物を検出する工程と、
を有する立体物検出方法。
【請求項９】
コンピュータを、請求項１乃至７のいずれかに記載された立体物検出装置における各手段として機能させるための立体物検出プログラム。
【請求項１０】
移動面上を移動する移動体に搭載された複数の撮像手段により前記移動体の移動方向の前方を撮像して得た複数の撮像画像及びその撮像画像から生成した視差画像に基づいて、前記移動面上の立体物を検出する立体物検出手段と、
前記立体物検出手段の処理結果に基づいて、前記移動体に搭載された所定の機器を制御する移動体機器制御手段と、を有する移動体機器制御システムであって、
前記立体物検出手段として、請求項１乃至７のいずれかに記載された立体物検出装置を用いる、移動体機器制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両などの移動体の前方を複数の撮像手段により撮像した複数の撮像画像に基づいて当該移動体が移動する移動面上の立体物を検出する立体物検出装置、立体物検出方法、立体物検出プログラム、及びその検出結果を用いて移動体に搭載された機器を制御する移動体機器制御システムに関する。
【背景技術】
【０００２】
自動車の安全性において、従来は歩行者や自動車と衝突したときに、いかに歩行者を守れるか、乗員を保護できるかの観点から自動車のボディー構造などの開発が行われてきた。しかしながら近年、情報処理技術、画像処理技術の発達により、高速に人や自動車を検出する技術が開発されてきている。これらの技術を応用して、衝突する前に自動的にブレーキをかけ、衝突を未然に防ぐという自動車もすでに発売されている。自動的にブレーキをかけるには人や他車までの距離を正確に測定する必要があり、そのためには、ミリ波レーダ、レーザレーダによる測距、ステレオカメラによる測距などが実用化されている。
【０００３】
また、ステレオカメラで人や他車などの物体の三次元的な位置や大きさを正確に検出するためには路面の位置を検出し、その路面に接している物体を検出する技術が既に知られている。即ち、特許文献１には、道路上の物体を検出する目的で、視差画像から路面を検出し、路面より上方にある視差データを使って物体候補領域を抽出し、その物体候補領域とその周囲領域を合わせて物体判定領域とし、その物体判定領域の形状に基づいて物体か路面かを判定する構成を有する物体検出装置、物体検出方法及びプログラムが記載されている。
【０００４】
しかしながら、特許文献１に記載された物体検出装置、物体検出方法及びプログラムでは、路面検出に失敗し、検出した路面が実際より低くなった場合には、物体候補領域は路面も含んだ領域になってしまう。その場合、遠方の物体が路面と連結して物体候補になり、異なる大きさの物体として認識してしまうという問題がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、このような問題を解決するためになされたものであり、その目的は、車両などの移動体の前方を複数の撮像手段で撮像して得た複数の撮像画像及びその撮像画像から生成した視差画像に基づいて、当該移動体が移動する移動面上の立体物の三次元的な位置や大きさを検出するときに、移動面を正確に検出して移動面の視差値と物体の視差値の連結を防止し、立体物の正確な位置や大きさを検出できるようにすることである。
【課題を解決するための手段】
【０００６】
本発明に係る立体物検出装置は、移動面上を移動する移動体に搭載された複数の撮像手段により前記移動体の移動方向の前方を撮像して得た複数の撮像画像及びその撮像画像から生成した視差画像に基づいて、前記移動面上の立体物を検出する立体物検出装置であって、前記複数の撮像画像内における前記移動面を検出する移動面検出手段と、前記検出された移動面と前記視差画像とに基づいて、前記移動方向に対する横方向の距離と前記移動方向の距離とを関連付けた視差値の頻度分布を表すマップを生成するマップ生成手段と、前記頻度分布に基づいて孤立領域を検出する孤立領域検出手段と、前記孤立領域検出手段の出力に基づいて、前記移動面上の立体物を検出する立体物検出手段と、を有する立体物検出装置である。
【発明の効果】
【０００７】
本発明によれば、車両などの移動体の前方を複数の撮像手段で撮像して得た複数の撮像画像及びその撮像画像から生成した視差画像に基づいて、当該移動体が移動する移動面上の立体物の三次元的な位置や大きさを検出するときに、移動面を正確に検出して移動面の視差値と物体の視差値の連結を防止し、立体物の正確な位置や大きさを検出することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係る車載機器制御システムの概略構成を示す模式図である。
【図２】図１における撮像ユニット及び画像解析ユニットの概略構成を示す模式図である。
【図３】三角測量の原理を利用することで視差値から距離を算出する原理を説明するための図である。
【図４】図２における処理ハードウェア部及び画像解析ユニットで実現される物体検出処理について説明するための処理ブロック図である。
【図５】視差画像補間処理の概要について説明するための図である。
【図６】視差画像補間処理の全体の流れを示すフローチャートである。
【図７】図６における水平エッジ検出処理の詳細について説明するための図である。
【図８】図６における遠方視差値検出処理のアルゴリズムを示すフローチャートである。
【図９】視差画像データ、及びその視差画像データから生成されるＶマップについて説明するための図である。
【図１０】一方の撮像部で撮像された基準画像としての撮影画像の画像例と、その撮影画像に対応するＶマップを示す図である。
【図１１】抽出範囲を説明するためのＶマップである。
【図１２】相対的に上り傾斜である路面のＶマップ情報を示す説明図である。
【図１３】自車両が加速している時の路面のＶマップ情報を示す説明図である。
【図１４】図４におけるＶマップ生成部の内部構成の一例を示す処理ブロック図である。
【図１５】図４におけるＶマップ生成部の内部構成の別の一例を示す処理ブロック図である。
【図１６】本実施形態におけるＶマップ情報生成処理の第１の処理例の流れを示すフローチャートである。
【図１７】視差画像に設定される路面画像候補領域について説明するための図である。
【図１８】本実施形態におけるＶマップ情報生成処理の第２の処理例の流れを示すフローチャートである。
【図１９】路面形状検出部内の処理ブロック図である。
【図２０】第１路面候補点検出処理及び第２路面候補点検出処理の検出方法を説明するための図である。
【図２１】路面候補点検出部で行う路面候補点検出処理の流れを示すフローチャートである。
【図２２】Ｖマップを３つの区間（視差値区画）に区分けした例を示す説明図である。
【図２３】Ｖマップを３つの区間（視差値区画）に区分けした他の例を示す説明図である。
【図２４】最終区間が本来の区間幅（視差値範囲）より狭い幅しか設定できない場合の説明図、及び最終区間をひとつ前の区間と結合し、ひとつの区間として設定した例の説明図である。
【図２５】区分直線近似部で行う区分直線近似処理の流れを示すフローチャートである。
【図２６】当初の区間を示す説明図、及び当初の第１区間を延長した後の区間を示す説明図である。
【図２７】当初の区間を示す説明図、及び当初の第２区間を延長した後の区間を示す説明図である。
【図２８】得られた各区間の近似直線が区間境界で連続にならない状態を示す説明図、及び各区間の近似直線が区間境界において連続になるように修正した例を示す説明図である。
【図２９】図２の撮像部で撮像される基準画像の一例を模式的に表した画像例を示す図である。
【図３０】図２９の画像例に対応するＵマップを示す図である。
【図３１】図３０のＵマップに対応するリアルＵマップを示す図である。
【図３２】Ｕマップの横軸の値からリアルＵマップの横軸の値を求める方法を説明するための図である。
【図３３】孤立領域検出部で行う孤立領域検出処理の流れを示すフローチャートである。
【図３４】孤立領域検出処理におけるラベリングの方法について説明するための図である。
【図３５】周辺領域除去について説明するためのリアルＵマップである。
【図３６】周辺領域除去処理の流れを示すフローチャートである。
【図３７】横方向分離について説明するための図である。
【図３８】横方向分離処理の流れを示すフローチャートである。
【図３９】縦方向分離について説明するための図である。
【図４０】縦方向分離処理の流れを示すフローチャートである。
【図４１】縦方向分離における分離境界の計算方法について説明するための図である。
【図４２】孤立領域検出部で検出された孤立領域が内接する矩形領域を設定したリアル頻度Ｕマップを示す図である。
【図４３】図４２における矩形領域に対応する走査範囲を設定した視差画像を示す図である。
【図４４】図４３における走査範囲を探索してオブジェクト領域を設定した視差画像を示す図である。
【図４５】視差画像の対応領域検出部及びオブジェクト領域抽出部で行われる処理の流れを示すフローチャートである。
【図４６】オブジェクトタイプの分類を行うためのテーブルデータの一例を示す図である。
【図４７】ガードレール検出部で行われるガードレール検出処理の流れを示すフローチャートである。
【図４８】ガードレール検出処理の対象範囲について直線近似処理して得られた近似直線を表したＵマップを示す図である。
【図４９】直線近似処理して得られた直線からガードレール候補座標を検出するための処理について説明するための図である。
【図５０】図１７に示す視差画像上にガードレール検出部で検出されたガードレール領域を重畳した図である。
【図５１】自車両の前輪の舵角から消失点の画像左右方向位置Ｖｘを検出する原理を示す説明図である。
【図５２】自車両のヨーレート及び車速から消失点の画像左右方向位置Ｖｘを検出する原理を示す説明図である。
【図５３】自車両の加速時や減速時に消失点の画像上下方向位置Ｖｙが変化することを示す説明図である。
【図５４】変形例１における主要な処理の流れを示すフローチャートである。
【図５５】路面の消失点と視差画像の下端中心とを結ぶ直線を境界にして左右に二分割した視差画像の例を示す説明図である。
【図５６】消失点と視差画像左下点とを結ぶ直線Ｌ３と、消失点と視差画像右下点とを結ぶ直線Ｌ４とを設定した視差画像の例を示す説明図である。
【図５７】図５６の視差画像に対して、ひとつの画像走査ラインＬ５を設定したときの説明図である。
【図５８】２つの直線Ｌ３，Ｌ４と画像走査ラインとの両交点以外の画像走査ライン上の視差値を線形補間したときの説明図である。
【図５９】変形例２において、路面の消失点と視差画像の左１／４の下端地点とを結ぶ直線Ｌ６と、路面の消失点と視差画像の右１／４の下端地点とを結ぶ直線Ｌ７とを境界にして左右に三分割した視差画像の例を示す説明図である。
【図６０】図５９の視差画像に対し、ひとつの画像走査ラインＬ５を設定したときの説明図である。
【図６１】３つの直線Ｌ３，Ｌ４，Ｌ８と画像走査ラインとの両交点以外の画像走査ライン上の視差値を線形補間したときの説明図である。
【図６２】道路状況に応じて路面高さ設定のための直線を変化させることを説明するための図である。
【発明を実施するための形態】
【０００９】
以下、本発明に係る立体物検出装置を有する移動体機器制御システムの実施形態について説明する。
【００１０】
〈車載機器制御システムの概略構成〉
図１は、本発明の実施形態に係る移動体機器制御システムとしての車載機器制御システムの概略構成を示す模式図である。
この車載機器制御システムは、移動体である自動車などの自車両１００に搭載されており、撮像ユニット１０１、画像解析ユニット１０２、表示モニタ１０３、及び車両走行制御ユニット１０４からなる。そして、撮像ユニット１０１で撮像した自車両進行方向前方領域（撮像領域）の撮像画像データから、自車両前方の路面（移動面）の相対的な高さ情報（相対的な傾斜状況を示す情報）を検知し、その検知結果から、自車両前方の走行路面の３次元形状を検出し、その検出結果を利用して各種車載機器の制御を行う。
【００１１】
撮像ユニット１０１は、例えば、自車両１００のフロントガラス１０５のルームミラー（図示せず）付近に設置される。撮像ユニット１０１の撮像によって得られる撮像画像データ等の各種データは、画像処理手段としての画像解析ユニット１０２に入力される。画像解析ユニット１０２は、撮像ユニット１０１から送信されてくるデータを解析して、自車両１００が走行している路面部分（自車両の真下に位置する路面部分）に対する自車両前方の走行路面上の各地点における相対的な高さ（位置情報）を検出し、自車両前方の走行路面の３次元形状を把握する。
【００１２】
画像解析ユニット１０２の解析結果は、表示モニタ１０３及び車両走行制御ユニット１０４に送られる。表示モニタ１０３は、撮像ユニット１０１で得られた撮像画像データ及び解析結果を表示する。車両走行制御ユニット１０４は、画像解析ユニット１０２による走行路面の相対傾斜状況の認識結果に基づいて自車両前方の他車両、歩行者、各種障害物などの認識対象物を認識し、その認識結果に基づいて、自車両１００の運転者へ警告を報知したり、自車両のハンドルやブレーキを制御するなどの走行支援制御を行ったりする。
【００１３】
〈撮像ユニット１０１及び画像解析ユニット１０２の概略構成〉
図２は、図１における撮像ユニット１０１及び画像解析ユニット１０２の概略構成を示す模式図である。
撮像ユニット１０１は、撮像手段としての２つの撮像部１１０ａ，１１０ｂを備えたステレオカメラで構成されており、２つの撮像部１１０ａ，１１０ｂは同一のものである。各撮像部１１０ａ，１１０ｂは、それぞれ、撮像レンズ１１１ａ，１１１ｂと、受光素子が２次元配置された画像センサ１１３ａ，１１３ｂを含んだセンサ基板１１４ａ，１１４ｂと、センサ基板１１４ａ，１１４ｂから出力されるアナログ電気信号（画像センサ１１３ａ，１１３ｂ上の各受光素子が受光した受光量に対応する電気信号）をデジタル電気信号に変換した撮像画像データを生成して出力する信号処理部１１５ａ，１１５ｂとから構成されている。撮像ユニット１０１からは、輝度画像データと視差画像データが出力される。
【００１４】
また、撮像ユニット１０１は、ＦＰＧＡ（Field-Programmable Gate Array）等からなる処理ハードウェア部１２０を備えている。この処理ハードウェア部１２０は、各撮像部１１０ａ，１１０ｂから出力される輝度画像データから視差画像を得るために、各撮像部１１０ａ，１１０ｂでそれぞれ撮像した撮像画像間の対応画像部分の視差値を演算する視差画像情報生成手段としての視差演算部１２１を備えている。
【００１５】
ここでいう視差値とは、各撮像部１１０ａ，１１０ｂでそれぞれ撮像した撮像画像の一方を基準画像、他方を比較画像とし、撮像領域内の同一地点に対応した基準画像上の画像部分に対する比較画像上の画像部分の位置ズレ量を、当該画像部分の視差値として算出したものである。三角測量の原理を利用することで、この視差値から当該画像部分に対応した撮像領域内の当該同一地点までの距離を算出することができる。
【００１６】
図３は、三角測量の原理を利用することで視差値から距離を算出する原理を説明するための図である。図において、ｆは撮像レンズ１１１ａ，１１１ｂのそれぞれの焦点距離であり、Ｄは光軸間の距離である。また、Ｚは撮像レンズ１１１ａ，１１１ｂから被写体３０１までの距離（光軸に平行な方向の距離）である。この図において、被写体３０１上にある点Ｏに対する左右画像での結像位置は、結像中心からの距離がそれぞれΔ１とΔ２となる。このときの視差値ｄは、ｄ＝Δ１＋Δ２と規定することができる。
【００１７】
図２の説明に戻る。画像解析ユニット１０２は、画像処理基板等から構成され、撮像ユニット１０１から出力される輝度画像データ及び視差画像データを記憶するＲＡＭやＲＯＭ等で構成される記憶手段１２２と、識別対象の認識処理や視差計算制御などを行うためのコンピュータプログラムを実行するＣＰＵ（Central Processing Unit）１２３と、データＩ／Ｆ（インタフェース）１２４と、シリアルＩ／Ｆ１２５を備えている。
【００１８】
処理ハードウェア部１２０を構成するＦＰＧＡは、画像データに対してリアルタイム性が要求される処理、例えばガンマ補正、ゆがみ補正（左右の撮像画像の平行化）、ブロックマッチングによる視差演算を行って視差画像の情報を生成し、画像解析ユニット１０２のＲＡＭに書き出す処理などを行う。画像解析ユニット１０２のＣＰＵは、各撮像部１１０Ａ，１１０Ｂの画像センサコントローラの制御および画像処理基板の全体的な制御を担うとともに、路面の３次元形状の検出処理、ガードレールその他の各種オブジェクト（識別対象物）の検出処理などを実行するプログラムをＲＯＭからロードして、ＲＡＭに蓄えられた輝度画像データや視差画像データを入力として各種処理を実行し、その処理結果をデータＩ／Ｆ１２４やシリアルＩ／Ｆ１２５から外部へと出力する。このような処理の実行に際し、データＩ／Ｆ１２４を利用して、自車両１００の車速、加速度（主に自車両前後方向に生じる加速度）、操舵角、ヨーレートなどの車両動作情報を入力し、各種処理のパラメータとして使用することもできる。外部に出力されるデータは、自車両１００の各種機器の制御（ブレーキ制御、車速制御、警告制御など）を行うための入力データとして使用される。
【００１９】
〈物体検出処理の概要〉
図４は、図２における処理ハードウェア部１２０及び画像解析ユニット１０２で実現される物体検出処理について説明するための処理ブロック図である。以下、本実施形態における物体検出処理について説明する。
【００２０】
ステレオカメラを構成する２つの撮像部１１０ａ，１１０ｂからは輝度画像データが出力される。このとき、撮像部１１０ａ，１１０ｂがカラーの場合には、そのＲＧＢ信号から輝度信号（Ｙ）を得るカラー輝度変換を、例えば下記の式〔１〕を用いて行う。
Ｙ＝０．３Ｒ＋０．５９Ｇ＋０．１１Ｂ  …式〔１〕
【００２１】
《平行化画像生成処理》
輝度画像データに対して、まず、平行化画像生成部１３１で平行化画像生成処理が実行される。この平行化画像生成処理は、撮像部１１０ａ，１１０ｂにおける光学系の歪みや左右の撮像部１１０ａ，１１０ｂの相対的な位置関係から、各撮像部１１０ａ，１１０ｂから出力される輝度画像データ（基準画像と比較画像）を、２つのピンホールカメラが平行に取り付けられたときに得られる理想的な平行化ステレオ画像となるように変換する。これは、各画素での歪み量を、Δｘ＝ｆ（ｘ，ｙ）、Δｙ＝ｇ（ｘ，ｙ）という多項式を用いて計算し、その計算結果を用いて、各撮像部１１０ａ，１１０ｂから出力される輝度画像データ（基準画像と比較画像）の各画素を変換する。多項式は、例えば、ｘ（画像の横方向位置）、ｙ（画像の縦方向位置）に関する５次多項式に基づく。
【００２２】
《視差画像生成処理》
このようにして平行化画像処理を行った後、次に、視差演算部１２１（図２）によって構成される視差画像生成部１３２において、視差画像データ（視差画像情報）を生成する視差画像生成処理を行う。視差画像生成処理では、まず、２つの撮像部１１０ａ，１１０ｂのうちの一方の撮像部１１０ａの輝度画像データを基準画像データとし、他方の撮像部１１０ｂの輝度画像データを比較画像データとし、これらを用いて両者の視差を演算して、視差画像データを生成して出力する。この視差画像データは、基準画像データ上の各画像部分について算出される視差値ｄに応じた画素値をそれぞれの画像部分の画素値として表した視差画像を示すものである。
【００２３】
具体的には、視差画像生成部１３２は、基準画像データのある行について、一つの注目画素を中心とした複数画素（例えば１６画素×１画素）からなるブロックを定義する。一方、比較画像データにおける同じ行において、定義した基準画像データのブロックと同じサイズのブロックを１画素ずつ横ライン方向（Ｘ方向）へずらし、基準画像データにおいて定義したブロックの画素値の特徴を示す特徴量と比較画像データにおける各ブロックの画素値の特徴を示す特徴量との相関を示す相関値を、それぞれ算出する。そして、算出した相関値に基づき、比較画像データにおける各ブロックの中で最も基準画像データのブロックと相関があった比較画像データのブロックを選定するマッチング処理を行う。その後、基準画像データのブロックの注目画素と、マッチング処理で選定された比較画像データのブロックの対応画素との位置ズレ量を視差値ｄとして算出する。このような視差値ｄを算出する処理を基準画像データの全域又は特定の一領域について行うことで、視差画像データを得ることができる。
【００２４】
マッチング処理に用いるブロックの特徴量としては、例えば、ブロック内の各画素の値（輝度値）を用いることができ、相関値としては、例えば、基準画像データのブロック内の各画素の値（輝度値）と、これらの画素にそれぞれ対応する比較画像データのブロック内の各画素の値（輝度値）との差分の絶対値の総和を用いることができる。この場合、当該総和が最も小さくなるブロックが最も相関があると言える。
【００２５】
視差画像生成部１３２でのマッチング処理をハードウェア処理によって実現する場合には、例えばＳＳＤ（Sum of Squared Difference）、ＺＳＳＤ（Zero-mean Sum of Squared Difference）、ＳＡＤ（Sum of Absolute Difference）、ＺＳＡＤ（Zero-mean Sum of Absolute Difference）などの方法を用いることができる。なお、マッチング処理では画素単位での視差値しか算出できないので、１画素未満のサブピクセルレベルの視差値が必要な場合には推定値を用いる必要がある。その推定方法としては、例えば、等角直線方式、二次曲線方式等を利用することができる。ただし、このサブピクセルレベルの推定視差値には誤差が発生するので、この推定誤差を減少させるＥＥＣ（推定誤差補正）などを用いてもよい。
【００２６】
《視差画像補間処理の概要》
視差画像生成処理を行ったら、次に画像解析ユニット１０２によって構成される視差補間部１３３において、視差画像補間処理を行い、補間視差画像を生成する。図５は、視差画像補間処理の概要について説明するための図である。ここで、図５Ａは撮像画像、図５Ｂは視差画像である。また、図５Ｃ〜Ｅは、視差画像補間処理を実行する条件を説明するための図である。
【００２７】
図５Ａに示す車両の撮像画像（輝度画像）３１０から、視差画像生成部１３２により図５Ｂに示す視差画像３２０が生成される。視差値ｄｄは水平方向の位置ズレの度合いなので、撮像画像３１０の水平エッジ部分や輝度変化の少ない部分では視差が計算できないため、車両を一つのオブジェクトとして認識できなくなる。
【００２８】
そこで、視差補間部１３３では、下記ａ〜ｅの５つの判定条件に基づいて、視差画像の同一ライン上の２点、即ち図５Ｂに示す同一Ｙ座標（画像の垂直方向）の２点の画素Ｐ１（視差値Ｄ１）、Ｐ２（視差値Ｄ２）を補間する。
ａ：２点間の実距離が所定の長さより短い（第１判定条件）。
視差値Ｄ１に対応する距離をＺ１、画素Ｐ１、Ｐ２間の画像上の距離をＰＸとすると、２点間の近似的な実距離ＲＺは、ステレオカメラの焦点距離をｆとすると、「ＲＺ＝Ｚ１／ｆ＊ＰＸ」で算出することができる。ＲＺが所定の値（乗用車１台に相当する幅：１９００ｍｍ）以内であれば、この条件は満たされる。
【００２９】
ｂ：２点間に他の視差値が存在しない（第２判定条件）。
即ち、図５Ｃにおける画素Ｐ１と画像Ｐ２を結ぶライン３２１上の画素に視差値が存在しない。
ｃ：２点の奥行の差（自車両１００の前方方向の距離の差）がどちらか一方の距離に応じて設定する閾値より小さい、又は２点の奥行の差がどちらか一方の距離における測距精度に応じて設定する閾値より小さい（第３判定条件）。
ここで、左側の画素Ｐ１の視差値Ｄ１より距離Ｚ１を計算する。ステレオ方式の測距精度、特にブロックマッチングによる測距精度は距離に依存する。つまり、その精度は例えば距離±１０％のという具合である。そこで、測距精度が１０％であるならば、奥行の差の閾値をＺ１の２０％（＝Ｚ１＊０．２）とする。
【００３０】
ｄ：２点より高く、かつ所定の高さ（例えば１．５ｍ：車高に対応）以下の位置に水平エッジが存在する（第４判定条件）。
即ち、図５Ｄに示すように、例えば２点から１．５ｍ以内の高さの領域３２２に水平エッジが所定数以上存在するか否かを判定する。高さ１．５ｍに相当する画素数ＰＺは、画素Ｐ１の視差値Ｄ１から算出される距離Ｚ１とステレオカメラの焦点距離ｆから、「ＰＺ＝１．５ｍ＊ｆ／Ｚ１」の式により算出することができる。
【００３１】
ここで、水平エッジが存在する場合とは、画素Ｐ１、Ｐ２間のある画素（注目画素）において、その上方の領域３２２内に水平エッジがあることを意味する。つまり、後述するエッジ位置カウントのラインバッファの前記画素位置における値が１以上ＰＺ以下である。
【００３２】
そして、後述する水平エッジ検出処理（図６のステップＳ２、図７Ａ）を１ライン実行した後、次ラインの視差補間において画素Ｐ１、Ｐ２間を補間しようとするとき、画素Ｐ１、Ｐ２間に水平エッジが存在する場合が画素Ｐ１、Ｐ２間の画素数の１／２より大きいとき、第４判定条件は真となる。
想定するシーンは車両の屋根３２３である。水平エッジが連続している場合、画素Ｐ１、Ｐ２の視差値Ｄ１、Ｄ２の差が所定値以下であれば補間する。
【００３３】
ｅ：２点間の上下近傍にその２点より遠方の視差情報（遠方視差値）が存在しない（第５判定条件）。
遠方の視差情報とは、視差値Ｄ１、Ｄ２から得られる距離Ｚ１、Ｚ２の大きい方の値の２０％以上遠方の距離に対応する視差値である。
【００３４】
即ち、例えば図５Ｅに示すように、画素Ｐ１、Ｐ２より高い位置（上側１．５ｍ以内。画素数でいえばＰＺ以内）の領域３２２、或いは領域３２２の下側１０ライン以内の領域３２４で、画素Ｐ１、Ｐ２間の各画素の上下方向に遠方視差を持つ場合を画素Ｐ１、Ｐ２間の全画素について数える。そして、その総和が所定の値（例えば２）以上のとき、第５判定条件は真となる。
【００３５】
ここで、Ｐ１、Ｐ２間のある画素が遠方視差を持つ場合とは、後述する上側視差位置カウントに１以上ＰＺ以下の値があるか、又は後述する下側視差位置ビットフラグの各ビットのいずれかに１が立っている場合である。
第５判定条件が偽となる場合とは、補間しようとするラインの近傍に遠方視差が存在する場合、即ち、遠方の物体が見えている場合である。その場合は、視差補間をしないことになる。
【００３６】
《視差画像補間処理のフロー》
次に視差補間処理について詳細に説明する。
図６は、視差画像補間処理の全体の流れを示すフローチャートである。
まず、第４判定条件用ラインバッファ（エッジ位置カウント）、及び第５判定条件用ラインバッファ（上側視差位置カウント、下側視差位置ビットフラグ）を初期化する（ステップＳ１）。
【００３７】
ここで、エッジ位置カウントは、視差補間するラインより何ライン上に水平エッジがあるかを表す情報を画素単位で保持するためにラインバッファに設定されたカウンタである。また、上側視差位置カウントは、視差補間するラインより何ライン上の領域３２２内に遠方視差値があるかを示す情報を保持するためにラインバッファに設定されたカウンタである。また、下側視差位置ビットフラグは、視差補間するラインの下側１０ライン以内（領域３２４内）に遠方視差値があることを表す情報を保持するためにラインバッファに設定されたカウンタである。下側視差位置ビットフラグは、１１ビットフラグが１ラインの画素数分用意される。
【００３８】
次に、第４判定条件のために、ある１ラインの水平エッジを検出する（ステップＳ２）。図７は、ステップＳ２（水平エッジ検出処理）の詳細について説明するための図である。ここで、図７Ａは、水平エッジ検出処理のアルゴリズムを示すフローチャートであり、図７Ｂは、エッジ位置カウント及びその値の変化の例を示す図である。
【００３９】
まず輝度画像をSobel（ソーベル）フィルタで処理することで、垂直エッジ及び水平エッジの強度を求め（ステップＳ１１）、水平エッジ強度が垂直エッジ強度の２倍を超えているか否かを判断する（ステップＳ１２）。
【００４０】
そして、水平エッジ強度が垂直エッジ強度の２倍を超えているときは（ステップＳ１２：YES）、水平エッジありと判断してエッジ位置カウントを１に設定する（ステップＳ１３）。一方、水平エッジ強度が垂直エッジ強度の２倍以下のときは（ステップＳ１２：NO）、水平エッジなしと判断して、エッジ位置カウントが０より大きいか否かを判断する（ステップＳ１４）。そして、０より大きいときは（ステップＳ１４：YES）、エッジ位置カウントを１つインクリメントする（ステップＳ１５）。ステップＳ１４でエッジ位置カウントが０であると判断したときは（ステップＳ１４：NO）、エッジ位置カウントを更新しない。
【００４１】
水平エッジの有無とエッジ位置カウントの値によりステップＳ１３、Ｓ１５でエッジ位置カウントの値を更新した後、又はステップＳ１４でエッジ位置カウントが０であると判断した後（ステップＳ１４：NO）、ステップＳ１６に進み、ライン内の次の画素の有無を判断する。
【００４２】
次の画素があるときは（ステップＳ１６：YES）、ステップＳ１１に移行し、ステップＳ１１〜Ｓ１５を繰り返す。次の画素がないときは（ステップＳ１６：NO）、この図に示す１ライン分の水平エッジ検出処理が終了する。
【００４３】
図７Ａに示すように、各画素に対応するエッジ位置カウントの初期値はステップＳ１で初期化された０になっている。あるラインで水平エッジが見つかり始めると、ステップＳ１３でエッジ位置カウントが１に設定される。図７Ｂでは、全１２画素のうち、中央の２画素及び両端の４画素を除く６画素について、水平エッジが検出されたことを示している。次のラインでは、両端の４画素を除く８画素について、水平エッジが検出されたことを示している。その次のラインでは、水平エッジが検出されないため、ステップＳ１５でエッジカウントがインクリメントされ、２になっている。
【００４４】
以後の各ラインで水平エッジが検出された場合は、エッジカウントの値が１となり、水平エッジが検出されない限り、エッジカウントが１ずつインクリメントされる。従って、各画素に対応するエッジカウントの値により、視差補間をしようとする何ライン上に水平エッジがあるかが判る。
【００４５】
１ライン分の水平エッジ検出処理が終了したら、次に第５判定条件のために遠方視差値を検出する（ステップＳ３）。図８は、ステップＳ３（遠方視差値検出処理）のアルゴリズムを示すフローチャートである。
【００４６】
図５Ｅにおける上側の領域３２２に対する処理、下側の領域３２４に対する処理が並行して行われるが、便宜上、上側の領域３２２に対する処理、下側の領域３２４に対する処理の順で個別に説明する。
【００４７】
上側については、まず遠方視差値の有無を判断する（ステップＳ２１）。判断の結果、あるときは（ステップＳ２１：YES）、上側視差位置カウントを１に設定し（ステップＳ２２）、ないときは（ステップＳ２１：NO）、上側視差位置カウントが０より大きいか否かを判断する（ステップＳ２３）。そして、０より大きいときは（ステップＳ２３：YES）、上側視差位置カウントを１つインクリメントする（ステップＳ２４）。
【００４８】
遠方視差値の有無とそのときの上側視差位置カウントの値によりステップＳ２２或いはＳ２４で上側視差位置カウントの値を更新した後、又はステップＳ２３で上側視差位置カウントが０であると判断した後（ステップＳ２３：NO）、ステップＳ２５に進み、ライン内の次の画素の有無を判断する。
【００４９】
次の画素があるときは（ステップＳ２５：YES）、ステップＳ２１に移行し、ステップＳ２１〜Ｓ２４を繰り返す。次の画素がないときは（ステップＳ２５：NO）、この図に示す１ライン分の上側遠方視差値の検出処理が終了する。
【００５０】
つまり、上側遠方視差の検出処理は、図７Ａに示す処理における水平エッジを遠方視差値に変えたものである。
【００５１】
下側については、まず下側１１ライン目に遠方視差値があるか否かを判断する（ステップＳ２６）。判断の結果、あるときは（ステップＳ２６：YES）、下側視差位置ビットフラグの１１ビット目を１に設定した後（ステップＳ２７）、下側視差位置ビットフラグを１ビット右へシフトする（ステップＳ２８）。判断の結果、ないときは（ステップＳ２６：NO）、そのまま下側視差位置ビットフラグを１ビット右へシフトする。これにより、２つの画素（Ｐ１、Ｐ２）間の画素の下側１０ライン内で最も近いラインにある視差の位置が判る。
【００５２】
ライン内に次の画素がある間は（ステップＳ２９：YES）、ステップＳ２６〜Ｓ２８を繰り返し、なくなったら（ステップＳ２９：NO）、この図に示す１ライン分の下側遠方視差値の検出処理が終了する。
【００５３】
１ライン分の遠方視差検出処理が終了したら、次のラインに進み（ステップＳ４）、第１〜第３判定条件を満たす２点を設定する（ステップＳ５）。次に、ステップＳ５で設定した２点に対して、第４、第５判定条件を満たすか否かを調べ（ステップＳ６）、満たしている場合は、視差値を補間する（ステップＳ７）。このとき、２点の視差値の平均値を２点間の視差値とする。
【００５４】
視差値を補間しようとする画素がある間は（ステップＳ８：YES）、ステップＳ５〜Ｓ７を繰り返し、なくなったら（ステップＳ８：NO）、ステップＳ９に進んで、次のラインの有無を判断する。そして、次のラインがある間は（ステップＳ９：YES）、ステップＳ２〜Ｓ８を繰り返し、なくなったら（ステップＳ９：NO）、この図に示す視差補間処理が終了する。
【００５５】
《Ｖマップ生成処理》
このようにして視差画像補間処理を行ったら、次にＶマップ生成部１３４において、Ｖマップを生成するＶマップ生成処理を実行する。視差画像データに含まれる各視差画素データは、ｘ方向位置とｙ方向位置と視差値ｄとの組（ｘ，ｙ，ｄ）で示される。これを、Ｘ軸にｄ、Ｙ軸にｙ、Ｚ軸に頻度ｆを設定した三次元座標情報（ｄ，ｙ，ｆ）に変換したもの、又はこの三次元座標情報（ｄ，ｙ，ｆ）から所定の頻度閾値を超える情報に限定した二次元座標情報（ｄ，ｙ，ｆ）を、視差ヒストグラム情報として生成する。本実施形態の視差ヒストグラム情報は、三次元座標情報（ｄ，ｙ，ｆ）からなり、この三次元ヒストグラム情報をＸ−Ｙの２次元座標系に分布させたものを、Ｖマップ（視差ヒストグラムマップ）と呼ぶ。
【００５６】
具体的に説明すると、Ｖマップ生成部１３４は、画像を上下方向に複数分割して得られる視差画像データの各行領域について、視差値頻度分布を計算する。この視差値頻度分布を示す情報が視差ヒストグラム情報である。
【００５７】
図９は視差画像データ、及びその視差画像データから生成されるＶマップについて説明するための図である。ここで、図９Ａは視差画像の視差値分布の一例を示す図であり、図９Ｂは、図９Ａの視差画像の行毎の視差値頻度分布を示すＶマップを示す図である。
【００５８】
図９Ａに示すような視差値分布をもった視差画像データが入力されたとき、Ｖマップ生成部１３４は、行毎の各視差値のデータの個数の分布である視差値頻度分布を計算し、これを視差ヒストグラム情報として出力する。このようにして得られる各行の視差値頻度分布の情報を、Ｙ軸に視差画像上のｙ方向位置（撮像画像の上下方向位置）をとりＸ軸に視差値をとった二次元直交座標系上に表すことで、図９Ｂに示すようなＶマップを得ることができる。このＶマップは、頻度ｆに応じた画素値をもつ画素が前記二次元直交座標系上に分布した画像として表現することもできる。
【００５９】
図１０は、一方の撮像部で撮像された基準画像としての撮影画像の画像例と、その撮影画像に対応するＶマップを示す図である。ここで、図１０Ａが撮影画像であり、図１０ＢがＶマップである。即ち、図１０Ａに示すような撮影画像から図１０Ｂに示すＶマップが生成される。Ｖマップでは、路面より下の領域には視差は検出されないので、斜線で示した領域Ａで視差がカウントされることはない。
【００６０】
図１０Ａに示す画像例では、自車両が走行している路面４０１と、自車両の前方に存在する先行車両４０２と、路外に存在する電柱４０３が映し出されている。また、図１０Ｂに示すＶマップには、画像例に対応して、路面５０１、先行車両５０２、及び電柱５０３がある。
【００６１】
この画像例は、自車両の前方路面が相対的に平坦な路面、即ち、自車両の前方路面が自車両の真下の路面部分と平行な面を自車両前方へ延長して得られる仮想の基準路面（仮想基準移動面）に一致している場合のものである。この場合、画像の下部に対応するＶマップの下部において、高頻度の点は、画像上方へ向かうほど視差値ｄが小さくなるような傾きをもった略直線状に分布する。このような分布を示す画素は、視差画像上の各行においてほぼ同一距離に存在していてかつ最も占有率が高く、しかも画像上方へ向かうほど距離が連続的に遠くなる識別対象物を映し出した画素であると言える。
【００６２】
撮像部１１０ａでは自車両前方領域を撮像するため、その撮像画像の内容は、図１０Ａに示すように、画像上方へ向かうほど路面の視差値ｄは小さくなる。また、同じ行（横ライン）内において、路面を映し出す画素はほぼ同じ視差値ｄを持つことになる。従って、Ｖマップ上において上述した略直線状に分布する高頻度の点は、路面（移動面）を映し出す画素が持つ特徴に対応したものである。よって、Ｖマップ上における高頻度の点を直線近似して得られる近似直線上又はその近傍に分布する点の画素は、高い精度で、路面を映し出している画素であると推定することができる。また、各画素に映し出されている路面部分までの距離は、当該近似直線上の対応点の視差値ｄから高精度に求めることができる。
【００６３】
ここで、Ｖマップ上における高頻度の点を直線近似する際、その直線近似処理に含める点をどの範囲まで含めるかは、その処理結果の精度を大きく左右する。即ち、直線近似処理に含める範囲が広いほど、路面に対応しない点が多く含まれ、処理精度を落とすことになり、また、直線近似処理に含める範囲が狭いほど、路面に対応する点の数が少なく、やはり処理精度を落とす結果となる。そこで、本実施形態では、後述する直線近似処理の対象とする視差ヒストグラム情報部分を、以下のようにして抽出している。
【００６４】
図１１は、抽出範囲を説明するためのＶマップを示す図である。
本実施形態における抽出条件は、自車両の前方路面が自車両の真下の路面部分５１０と平行な面を自車両前方へ延長して得られる仮想の基準路面（仮想基準移動面）に対応する視差値ｄと画像上下方向位置ｙとの関係を基準として定まる所定の抽出範囲２δｎ内に属するという条件である。この基準路面に対応する視差値ｄと画像上下方向位置ｙとの関係は、図１１に示すように、Ｖマップ上において直線（以下「基準直線」という。）５１１で示される。本実施形態では、この基準直線５１１を中心に画像上下方向へ±δの範囲を、抽出範囲５１２として規定している。この抽出範囲５１２は、状況に応じて刻々と変化する実際の路面のＶマップ要素（ｄ，ｙ，ｆ）の変動範囲を含むように設定される。
【００６５】
具体的には、例えば、自車両前方の路面が相対的に上り傾斜である場合、当該路面が相対的に平坦である場合よりも、撮像画像中に映し出される路面画像部分（移動面画像領域）は画像上側へ広がる。しかも、同じ画像上下方向位置ｙに映し出される路面画像部分を比較すると、相対的に上り傾斜である場合には、相対的に平坦である場合よりも、視差値ｄが大きくなる。この場合のＶマップ要素（ｄ，ｙ，ｆ）は、Ｖマップ上において、図１２に示すように、おおよそ、基準直線５１１に対し、上側に位置し、かつ、傾き（絶対値）が大きい直線を示すものとなる。本実施形態では、前方の路面５１０ａにおける相対的な上り傾斜が想定され得る範囲内であれば、その路面のＶマップ要素（ｄ，ｙ，ｆ）が抽出範囲５１２内に収まる。
【００６６】
また、例えば、自車両前方の路面が相対的に下り傾斜である場合、そのＶマップ要素（ｄ，ｙ，ｆ）は、Ｖマップ上において、基準直線に対し、下側に位置し、かつ、傾き（絶対値）が小さい直線を示すものとなる。本実施形態では、前方の路面における相対的な下り傾斜が想定され得る範囲内であれば、その路面のＶマップ要素（ｄ，ｙ，ｆ）が抽出範囲内に収まる。
【００６７】
また、例えば、自車両１００が速度を加速している加速時においては、自車両１００の後方に加重がかかり、自車両の姿勢は、自車両前方が鉛直方向上側を向くような姿勢となる。この場合、自車両１００の速度が一定である場合と比べて、撮像画像中に映し出される路面画像部分（移動面画像領域）は画像下側へシフトする。この場合のＶマップ要素（ｄ，ｙ，ｆ）は、Ｖマップ上において、図１３に示すように、おおよそ、基準直線５１１に対し、下側に位置し、かつ、基準直線とほぼ平行な直線を示すものとなる。本実施形態では、自車両１００の加速が想定され得る範囲内であれば、その路面５１０ｂのＶマップ要素（ｄ，ｙ，ｆ）が抽出範囲５１２内に収まる。
【００６８】
また、例えば、自車両１００が速度を減速している減速時においては、自車両１００の前方に加重がかかり、自車両の姿勢は、自車両前方が鉛直方向下側を向くような姿勢となる。この場合、自車両１００の速度が一定である場合と比べて、撮像画像中に映し出される路面画像部分（移動面画像領域）は画像上側へシフトする。この場合のＶマップ要素（ｄ，ｙ，ｆ）は、Ｖマップ上において、おおよそ、基準直線に対し、上側に位置し、かつ、基準直線とほぼ平行な直線を示すものとなる。本実施形態では、自車両１００の減速が想定され得る範囲内であれば、その路面のＶマップ要素（ｄ，ｙ，ｆ）が抽出範囲５１２内に収まる。
【００６９】
本実施形態では、路面を検出するための抽出範囲５１２は、この路面の上下、つまり加速減速に応じて仮想路面直線５１１を上下させることで、路面の視差データをＶマップの抽出範囲５１２の中心にすえることができ、常に最適な状態で路面データの抽出と近似を行うことが可能になる。これにより、δnを小さくすることができ、Ｖマップの抽出範囲５１２を狭めることができるので、処理時間の短縮につながる。
【００７０】
車両の加速減速度に応じて基準直線５１１を上下させる度合いは、実験によって，車両の加速度センサの出力とそのときの基準直線５１１の変動との対応テーブルを作ったり、その関係を近似する関係式を作ったりして、車両毎に決定することができる。
【００７１】
ただし、加速時には基準直線５１１を下げ(切片を大きくする)、減速時には基準直線５１１を上げる(切片を小さくする)ことには各車種共通であり、実際には加速度の値に応じてどれだけ基準直線５１１の切片を変更するか、小さな変換テーブルをもつことで対応する。
【００７２】
この切片の変動に伴い，消失点のｙ座標Ｖｙが変動する。消失点の変動に応じて後述する多重Ｖマップを作成する際の領域が変動し、より正確に路面の視差データをＶマップに反映させることが可能になる。なお、消失点の詳細については後述する。
【００７３】
《Ｖマップ生成部の内部構成》
図１４は、図４におけるＶマップ生成部の内部構成の一例を示す処理ブロック図である。このＶマップ生成部１３４−１は、車両動作情報入力部１３４ａ、視差画像路面領設定部１３４ｂ、処理範囲抽出部１３４ｃ、及びＶマップ情報生成部１３４ｄからなる。
【００７４】
Ｖマップ生成部１３４−１は、視差補間部１３３から出力される視差画像データを受け取ると、まず、車両動作情報入力部１３４ａにおいて、自車両１００の加速度情報を含む車両動作情報を取得する。車両動作情報入力部１３４ａに入力される車両動作情報は、自車両１００に搭載されている機器から取得してもよいし、撮像ユニット１０１に加速度センサ等の車両動作情報取得手段を搭載し、その車両動作情報取得手段から取得してもよい。
【００７５】
このようにして車両動作情報を取得したら、次に、視差画像路面領域設定部１３４ｂにおいて、視差補間部１３３から取得した視差画像データに対し、撮像画像の一部である所定の路面画像候補領域（移動面画像候補領域）を設定する。この設定では、想定される状況の範囲内では路面が映し出されることがない領域を除外した画像領域を路面画像候補領域として設定する。具体的な設定方法としては、予め決められた固定の画像領域を路面画像候補領域として設定してもよいが、本実施形態では、撮像画像内における路面の消失点を示す消失点情報に基づいて路面画像候補領域を設定する。
【００７６】
このようにして路面画像候補領域を設定したら、次に、処理範囲抽出部１３４ｃにおいて、視差画像路面領域設定部１３４ｂが設定した路面画像候補領域内の視差画像データの中から、上述した抽出条件を満たす視差画素データ（視差画像情報構成要素）を抽出する処理を行う。即ち、Ｖマップ上において基準直線５１１を中心にした画像上下方向へ±δｎの範囲に属する視差値ｄと画像上下方向位置ｙとをもつ視差画素データを抽出する。このようにして抽出条件を満たす視差画素データを抽出した後、Ｖマップ情報生成部１３４ｄにおいて、処理範囲抽出部１３４ｃが抽出した視差画素データ（ｘ，ｙ，ｄ）をＶマップ要素（ｄ，ｙ，ｆ）に変換して、Ｖマップ情報を生成する。
【００７７】
以上の説明では、Ｖマップ情報生成部１３４ｄでＶマップ情報を生成する前段階の処理範囲抽出部１３４ｃにおいて、路面画像部分に対応しない視差画像データ部分と区別して路面画像部分に対応する視差画像データ部分を抽出する例について説明したが、次のように、Ｖマップ情報を生成した後の段階で、同様の抽出処理を行ってもよい。
【００７８】
図１５は、Ｖマップ情報を生成した後の段階で抽出処理を行う例におけるＶマップ生成部１３４内の処理ブロック図である。このＶマップ生成部１３４−２は、車両動作情報入力部１３４ａ、視差画像路面領設定部１３４ｂ、Ｖマップ情報生成部１３４ｅ、及び処理範囲抽出部１３４ｆからなる。
【００７９】
Ｖマップ生成部１３４−２では、視差画像路面領域設定部１３４ｂにおいて路面画像候補領域を設定した後、Ｖマップ情報生成部１３４ｅにおいて、視差画像路面領域設定部１３４ｂが設定した路面画像候補領域内の視差画素データ（ｘ，ｙ，ｄ）をＶマップ要素（ｄ，ｙ，ｆ）に変換して、Ｖマップ情報を生成する。このようにしてＶマップ情報を生成した後、処理範囲抽出部１３４ｆにおいて、Ｖマップ情報生成部１３４ｅが生成したＶマップ情報の中から、上述した抽出条件を満たすＶマップ要素を抽出する処理を行う。即ち、Ｖマップ上において基準直線５１１を中心にとした画像上下方向へ±δｎの範囲に属する視差値ｄと画像上下方向位置ｙとをもつＶマップ要素を抽出する。そして、抽出したＶマップ要素で構成されるＶマップ情報を出力する。
【００８０】
《Ｖマップ生成処理のフロー》
〔第１の処理例〕
図１６は、本実施形態におけるＶマップ情報生成処理の第１の処理例の流れを示すフローチャートである。また、図１７は、視差画像に設定される路面画像候補領域について説明するための図である。
【００８１】
本処理例においては、車両動作情報（自車両前後方向の加速度情報）を用いずにＶマップ情報を作成する例である。本処理例においては、自車両１００の加速度情報を用いないため、基準路面に対応する基準直線を中心にとした抽出範囲すなわち値δの大きさは、比較的大きなものを用いる。
【００８２】
本処理例においては、まず、路面の消失点情報に基づいて路面画像候補領域を設定する（ステップＳ４１）。路面の消失点情報を求める方法には特に制限はなく、公知の方法を広く利用することができる。
【００８３】
本処理例では、この路面の消失点情報（Ｖｘ，Ｖｙ）が示す消失点の画像上下方向位置Ｖｙから所定のｏｆｆｓｅｔ値を引いた画像上下方向位置（Ｖｙ−ｏｆｆｓｅｔ値）から、当該視差画像データの画像上下方向位置ｙの最大値ｙｓｉｚｅ（視差画像の最下部）までの範囲を、路面画像候補領域に設定する。また、画像上下方向位置が消失点に近い画像部分においては、その画像左右方向両端部分の画像領域に路面が映し出されることはあまり無い。そこで、この画像領域も除外して路面画像候補領域に設定してもよい。この場合、視差画像上に設定される路面画像候補領域は、図１７に示すＷＡＢＣＤの各点で囲まれた領域となる。
【００８４】
このようにして路面画像候補領域を設定した後、この第１の処理例では、設定された路面画像候補領域内の視差画像データの中から、上述した抽出条件を満たす視差画素データ（視差画像情報構成要素）を抽出する処理を行う（ステップＳ４２）。この処理では、予め設定されている固定の基準直線の情報と、その基準直線を基準とした抽出範囲を規定するための±δの情報とを用いて、当該抽出範囲に属する視差画素データを抽出する。その後、抽出した視差画素データ（ｘ，ｙ，ｄ）をＶマップ要素（ｄ，ｙ，ｆ）に変換して、Ｖマップ情報を生成する（ステップＳ４３）。
【００８５】
〔第２の処理例〕
図１８は、本実施形態におけるＶマップ情報生成処理の第２の処理例の流れを示すフローチャートである。
この第２の処理例においては、車両動作情報（自車両前後方向の加速度情報）を用いてＶマップ情報を作成する例である。まず、車両動作情報を入力したら（ステップＳ５１）、この車両動作情報に含まれる自車両前後方向の加速度情報に基づき、消失点情報と基準直線の情報を補正する（ステップＳ５２）。以後のステップＳ５４、Ｓ５５は、それぞれ第１の処理例におけるステップＳ４２、Ｓ４３と同じである。
【００８６】
ステップＳ５２における消失点情報の補正は、次のようにして行う。例えば自車両１００の加速時には、自車両後方部分が加重され、自車両１００の姿勢は、自車両前方が鉛直方向上側を向くような姿勢となる。この姿勢変化により、路面の消失点は、画像下側へ変位することになるので、これ合わせて、路面の消失点情報の画像上下方向位置Ｖｙを加速度情報に基づいて補正する。例えば自車両１００の減速時にも、同様に、その加速度情報に基づいて路面の消失点情報の画像上下方向位置Ｖｙを補正する。このような補正を行うことで、後述する消失点情報を用いた路面画像候補領域の設定処理において、路面を映し出している画像部分を適切に路面画像候補領域として設定することができる。
【００８７】
また、基準直線情報の補正は、次のようにして行う。基準直線情報は、基準直線の傾きαと、切片（画像左端と基準直線とが交わる点の画像上下方向位置）βとを含む情報である。例えば自車両１００の加速時には、自車両後方部分が加重され、自車両１００の姿勢は、自車両前方が鉛直方向上側を向くような姿勢となる。この姿勢変化により、路面を映し出す路面画像部分は、全体的に画像下側へ変位することになる。
【００８８】
そこで、これに合わせて、抽出範囲を画像下側へシフトさせるために、その抽出範囲の基準となる基準直線の切片βを加速度情報に基づいて補正する。例えば自車両１００の減速時にも、同様に、基準直線の切片βを加速度情報に基づいて補正する。このような補正を行うことで、抽出範囲内の視差画素データを抽出する処理において、路面を映し出している画像部分を適切に路面画像候補領域として設定することができる。このように加速度情報を用いて基準直線の情報を補正するので、抽出範囲を規定するδｎ値は、自車両の加速や減速を考慮しないでもよくなる。そのため、第２の処理例の抽出範囲は、固定された基準直線を基準に抽出範囲を設定する上述の処理例１よりも、狭くすることができ、処理時間の短縮や路面検出精度の向上を図ることができる。
【００８９】
以上説明した第１の処理例及び第２の処理例は、いずれも、Ｖマップ情報を生成する前段階で、路面画像部分に対応する視差画像データ部分を抽出する処理、即ち図１４に示すＶマップ生成部１３４−１により実行される処理である。Ｖマップ情報を生成した後の段階で、路面画像部分に対応するＶマップ要素を抽出する処理、即ち図１５に示すＶマップ生成部１３４−２により実行される処理でも同様である。
【００９０】
《路面形状検出》
次に、路面形状検出部１３５で行う処理について説明する。
路面形状検出部１３５では、Ｖマップ生成部１３４においてＶマップ情報が生成されたら、路面に対応する視差値及びｙ方向位置の組（Ｖマップ要素）が示す特徴、すなわち、撮像画像の上方に向かうほど視差値が低くなるという特徴を示すＶマップ上の高頻度の点を直線近似する処理を行う。なお、路面が平坦な場合には一本の直線で十分な精度で近似可能であるが、車両進行方向において路面の傾斜状況が変化するような路面については、一本の直線で十分な精度の近似は難しい。したがって、本実施形態においては、Ｖマップの情報（Ｖマップ情報）を視差値に応じて２以上の視差値区画に区分けし、各視差値区画についてそれぞれ個別に直線近似を行う。
【００９１】
図１９は、路面形状検出部１３５内の処理ブロック図である。
本実施形態の路面形状検出部１３５は、Ｖマップ生成部１３４から出力されるＶマップ情報（Ｖマップ情報）を受け取ると、まず、路面候補点検出部１３５ａにおいて、路面に対応するＶマップ要素が示す特徴、即ち、撮像画像の上方に向かうほど視差値が低くなるという特徴を示すＶマップ上の高頻度の点を、路面候補点として検出する。
【００９２】
このとき、本実施形態では、路面候補点検出部１３５ａでの路面候補点検出処理は、Ｖマップの情報（Ｖマップ情報）を視差値に応じて２以上の視差値区画に区分けし、各視差値区画にそれぞれ対応した決定アルゴリズムに従って各視差値区画における路面候補点を決定する。具体的には、例えば、所定の基準距離に対応する視差値を境に、ＶマップをＸ軸方向（横軸方向）に２つの領域、すなわち視差値の大きい領域と小さい領域に区分けし、その領域ごとに異なる路面候補点検出アルゴリズムを用いて路面候補点を検出する。なお、視差値の大きい近距離領域については、後述する第１路面候補点検出処理を行い、視差の小さい遠距離領域については、後述する第２路面候補点検出処理を行う。
【００９３】
ここで、前記のように視差の大きい近距離領域と視差の小さい遠距離領域とで、路面候補点検出処理の方法を変える理由について説明する。
図１０Ａに示したように、自車両１００の前方を撮像した撮像画像で、近距離の路面部分についてはその路面画像領域の占有面積が大きく、路面に対応する画素数が多いので、Ｖマップ上の頻度が大きい。これに対し、遠距離の路面部分については、その路面画像領域の撮像画像内における占有面積が小さく、路面に対応する画素数が少ないので、Ｖマップ上の頻度が小さい。すなわち、Ｖマップにおいて、路面に対応する点の頻度値は、遠距離では小さく、近距離では大きい。そのため、例えば同じ頻度閾値を用いるなど、両領域について同じ基準で路面候補点を検出しようとすると、近距離領域については路面候補点を適切に検出できるが、遠距離領域については路面候補点が適切に検出できないおそれがあり、遠距離領域の路面検出精度が劣化する。逆に、遠距離領域の路面候補点を十分に検出できるような基準で近距離領域の検出を行うと、近距離領域のノイズ成分が多く検出され、近距離領域の路面検出精度が劣化する。そこで、本実施形態では、Ｖマップを近距離領域と遠距離領域とに区分し、各領域についてそれぞれ適した基準や検出方法を用いて路面候補点を検出することにより、両領域の路面検出精度を高く維持している。
【００９４】
図２０は、第１路面候補点検出処理及び第２路面候補点検出処理の検出方法を説明するための図である。
第１路面候補点検出処理では、各視差値ｄについて、所定の検索範囲内でｙ方向位置を変えながら、Ｖマップ情報に含まれる各Ｖマップ要素（ｄ，ｙ，ｆ）の頻度値ｆが第１頻度閾値よりも大きく、かつ、最も頻度値ｆが大きいＶマップ要素を探索し、そのＶマップ要素を当該視差値ｄについての路面候補点として決定する。このときの第１頻度閾値は、低めに設定し、路面に対応するＶマップ要素が抜け落ちないようにするのが好ましい。本実施形態においては、上述したとおり、Ｖマップ生成部１３４において路面に対応するＶマップ要素を抽出していることから、第１頻度閾値を低めに設定しても、路面分に対応しないＶマップ要素が路面候補点として決定される事態は軽減されるからである。
【００９５】
ここで、各視差値ｄについてｙ値を変化させる検索範囲は、上述したＶマップ生成部１３４における抽出範囲、すなわち、基準直線の画像上下方向位置ｙｐを中心にとした画像上下方向へ±δの範囲である。具体的には、「ｙｐ−δｎ」から「ｙｐ＋δｎ」の範囲を探索範囲とする。これにより、探索すべきｙ値の範囲が限定され、高速な路面候補点検出処理を実現できる。
【００９６】
一方、第２路面候補点検出処理は、第１頻度閾値の変わりにこれとは別の第２頻度閾値を用いる点を除いて、前記第１路面候補点検出処理と同じである。すなわち、第２路面候補点検出処理では、各視差値ｄについて、所定の検索範囲内でｙ方向位置を変えながら、Ｖマップ情報に含まれる各Ｖマップ要素（ｄ，ｙ，ｆ）の頻度値ｆが第２頻度閾値よりも大きく、かつ、最も頻度値ｆが大きいＶマップ要素を探索し、そのＶマップ要素を当該視差値ｄについての路面候補点として決定する。
【００９７】
図２１は、路面候補点検出部１３５ａで行う路面候補点検出処理の流れを示すフローチャートである。
入力されるＶマップの情報について、例えば視差値ｄの大きい順に路面候補点の検出を行い、各視差値ｄについての路面候補点（ｙ，ｄ）を検出する。視差値ｄが所定の基準距離に対応する基準視差値よりも大きい場合（ステップＳ８１：YES）、上述した第１路面候補点検出処理を行う。すなわち、当該視差値ｄに応じたｙの探索範囲（「ｙｐ−δｎ」〜「ｙｐ＋δｎ」）を設定し（ステップＳ８２）、この探索範囲内における頻度値ｆが第１頻度閾値よりも大きいＶマップ要素（ｄ，ｙ，ｆ）を抽出する（ステップＳ８３）。そして、抽出したＶマップ要素のうち、最大の頻度値ｆを持つＶマップ要素（ｄ，ｙ，ｆ）を、当該視差値ｄの路面候補点として検出する（ステップＳ８４）。
【００９８】
そして、視差値ｄが基準視差値以下になるまで第１路面候補点検出処理を繰り返し行い（ステップＳ８５）、視差値ｄが基準視差値以下になったら（ステップＳ８１：NO）、今度は、上述した第２路面候補点検出処理で路面候補点検出を行う。すなわち、第２路面候補点検出処理でも当該視差値ｄに応じたｙの探索範囲（「ｙｐ−δｎ」〜「ｙｐ＋δｎ」）を設定し（ステップＳ８６）、この探索範囲内における頻度値ｆが第１頻度閾値よりも大きいＶマップ要素（ｄ，ｙ，ｆ）を抽出する（ステップＳ８７）。そして、抽出したＶマップ要素のうち、最大の頻度値ｆを持つＶマップ要素（ｄ，ｙ，ｆ）を、当該視差値ｄの路面候補点として検出する（ステップＳ８８）。この第２路面候補点検出処理を、視差値ｄがなくなるまで繰り返し行う（ステップＳ８９）。
【００９９】
このようにして路面候補点検出部１３５ａにより各視差値ｄについての路面候補点（抽出処理対象）を検出したら、次に、区分直線近似部１３５ｂにより、これらの路面候補点についてＶマップ上の近似直線を求める直線近似処理を行う。このとき、路面が平坦な場合であれば、Ｖマップの視差値範囲全域にわたって一本の直線で十分な精度の近似が可能であるが、車両進行方向において路面の傾斜状況が変化している場合には、一本の直線で十分な精度の近似が難しい。したがって、本実施形態においては、Ｖマップの情報（Ｖマップ情報）を視差値に応じて２以上の視差値区画に区分けし、各視差値区画についてそれぞれ個別に直線近似処理を行う。
【０１００】
直線近似処理は、最小二乗近似を利用することができるが、より正確に行うにはＲＭＡ（Reduced Major Axis）などの他の近似を用いるのがよい。その理由は、最小二乗近似は、Ｘ軸のデータに誤差がなく、Ｙ軸のデータに誤差が存在するという前提があるときに、正確に計算されるものである。しかしながら、Ｖマップ情報から検出される路面候補点の性質を考えると、Ｖマップ情報に含まれる各Ｖマップ要素のデータは、Ｙ軸のデータｙについては画像上の正確な位置を示していると言えるが、Ｘ軸のデータである視差値ｄについては、誤差を含んでいるものである。また、路面候補点検出処理では、Ｙ軸方向に沿って路面候補点の探索を行い、その最大のｙ値をもつＶマップ要素を路面候補点として検出するものであるため、路面候補点はＹ軸方向の誤差も含んでいる。従って、路面候補点となっているＶマップ要素は、Ｘ軸方向にもＹ軸方向にも誤差を含んでいることになり、最小二乗近似の前提が崩れている。したがって、二変数（ｄとｙ）に互換性のある回帰直線（ＲＭＡ）が有効である。
【０１０１】
図２２は、Ｖマップを３つの区間（視差値区画）に区分けした例を示す説明図である。
本実施形態においては、Ｖマップ情報を視差値に応じて３つの視差値区画に区分けする。具体的には、視差値が大きい順に、第１区間、第２区間、第３区間に区分けする。このとき、距離を基準にして区間を等しく区分けする場合、Ｖマップ上では遠距離の区間ほど区間（視差値範囲）が狭くなり、直線近似の精度が悪化する。また、視差値を基準にして区間を等しく区分けする場合、今度は、Ｖマップ上において近距離の区間の幅が狭くなる。この場合、第１区間が非常に狭いものとなって、その第１区間はほとんど意味を成さなくなる。
【０１０２】
そこで、本実施形態においては、第１区間については予め決められた固定距離に対応する幅をもつように設定とし、第２区間及び第３区間については、一つ前の区間の幅に対応する距離の定数倍（たとえば２倍）の距離に対応する幅をもつように設定するという区分けルールを採用している。このような区分けルールにより、どの区間についても、適度な幅（視差値範囲）を持たせることができる。すなわち、このような区分けルールによって各区間にそれぞれ対応する距離範囲が異なることになるが、各区間の直線近似処理に使用する路面候補点の数が各区間で均一化でき、どの区間でも適切な直線近似処理を行うことができるようになる。
【０１０３】
なお、図２２に示した例では、第１区間及び第２区間が重複（オーバーラップ）することなく連続し、第２区間及び第３区間も重複することなく連続するように各区間を区分けしているが、各区間が重複するように区分けしてもよい。例えば、図２３に示すように、第２区間の始点Ｓ２Ｌを第１区間の３：１内分点とし（第２区間の終点Ｅ２は図２２の例と同じ。）、第３区間の始点Ｓ３Ｌを第１区間の終点Ｅ１と第２区間の終点Ｅ２との間の３：１内分点としてもよい（第３区間の終点Ｅ３は図２２の例と同じ。）。
【０１０４】
区間に応じて距離範囲を変更したり、区間をオーバーラップさせたりすることで、各区間の直線近似処理に使用する候補点数を均一化して、各区間の直線近似処理の精度を高めることができる。また、区間をオーバーラップさせることにより、各区間の直線近似処理の相関を高めることもできる。
【０１０５】
また、上述した区分けルールに従って視差値が大きい順に区間を設定していくと、図２４Ａに示すように、例えば、最終の第４区間が本来の区間幅（視差値範囲）より狭い幅しか設定できない場合がある。このような場合には、図２４Ｂに示すように、最終の第４区間をひとつ前の第３区間と結合して、ひとつの区間（第３区間）として設定してもよい。
【０１０６】
図２５は、区分直線近似部１３５ｂで行う区分直線近似処理の流れを示すフローチャートであり、図２６は、当初の区間を示す説明図（図２６Ａ）、及び当初の第１区間を延長した後の区間を示す説明図（図２６Ｂ）である。また、図２７は、当初の区間を示す説明図（図２７Ａ）、及び当初の第２区間を延長した後の区間を示す説明図（図２７Ｂ）である。また、図２８は、得られた各区間の近似直線が区間境界で連続にならない状態を示す説明図（図２８Ａ）、及び各区間の近似直線が区間境界において連続になる修正した例を示す説明図（図２８Ｂ）である。
【０１０７】
区分直線近似部１３５ｂは、路面候補点検出部１３５ａから出力される各視差値ｄの路面候補点のデータを受け取ったら、まず、最近距離の第１区間（最も視差値が大きい区間）を設定する（ステップＳ９１）。そして、この第１区間内の各視差値ｄに対応した路面候補点を抽出する（ステップＳ９２）。このとき、抽出された路面候補点の数が所定の値以下である場合（ステップＳ９３：NO）、当該第１区間を所定の視差値分だけ延長する（ステップＳ９４）。具体的には、図２６Ａに示す当初の第１区間と第２区間とを結合して、図２６Ｂに示すように、新たにひとつの第１区間（延長された第１区間）とする。このとき、当初の第３区間は新たな第２区間となる。そして、延長された第１区間内の各視差値ｄに対応した路面候補点を再び抽出し（ステップＳ９２）、抽出された路面候補点の数が所定の値よりも多くなった場合には（ステップＳ９３：YES）、抽出した路面候補点について直線近似処理を行う（ステップＳ９５）。
【０１０８】
なお、第１区間ではない区間、例えば第２区間を延長する場合には、図２７Ａに示す当初の第２区間と第３区間とを結合して、図２７Ｂに示すように、新たに一つの第２区間（延長された第２区間）とする。
【０１０９】
このようにして直線近似処理を行ったら（ステップＳ９６：NO）、次に、その直線近似処理により得られる近似直線の信頼性判定を行う。この信頼性判定では、最初に、得られた近似直線の傾きと切片が所定の範囲内にあるかどうかを判定する（ステップＳ９７）。この判定で所定の範囲内ではない場合には（ステップＳ９7：NO）、当該第１区間を所定の視差値分だけ延長し（ステップＳ９４）、延長された第１区間について再び直線近似処理を行う（ステップＳ９２〜９５）。そして、所定の範囲内ではあると判定されたら（ステップＳ９７：YES）、その直線近似処理を行った区間が第１区間か否かを判断する（ステップＳ９８）。
【０１１０】
このとき、第１区間であると判断された場合には（ステップＳ９８：YES）、その近似直線の相関値が所定の値よりも大きいかどうかを判定する（ステップＳ９９）。この判定において、近似直線の相関値が所定の値よりも大きければ、その近似直線を当該第１区間の近似直線として決定する。近似直線の相関値が所定の値以下であれば、当該第１区間を所定の視差値分だけ延長し（ステップＳ９４）、延長された第１区間について再び直線近似処理を行い（ステップＳ９２〜９５）、再び信頼性判定を行う（ステップＳ９７〜Ｓ９９）。なお、第１区間でない区間については（ステップＳ９８：NO）、近似直線の相関値に関する判定処理（ステップＳ９９）は実施しない。
【０１１１】
その後、残りの区間があるか否かを確認し（ステップＳ１００）、もし残りの区間が無ければ（ステップＳ１００：NO）、区分直線近似部１３５ｂは区分直線近似処理を終了する。一方、残りの区間がある場合には（ステップＳ１００：YES）、前区間の幅に対応する距離を定数倍した距離に対応する幅をもった次の区間（第２区間）を設定する（ステップＳ１０１）。そして、この設定後に残っている区間が更に次に設定される区間（第３区間）よりも小さいか否かを判断する（ステップＳ１０２）。この判断において小さくないと判断されたなら（ステップＳ１０２：NO）、当該第２区間内の各視差値ｄに対応した路面候補点を抽出して直線近似処理を行うとともに（ステップＳ９２〜Ｓ９５）、信頼性判定処理を行う（ステップＳ９７〜Ｓ９９）。
【０１１２】
このようにして順次区間を設定し、その区間の直線近似処理及び信頼性判定処理を行うという処理を繰り返していくと、いずれ、前記ステップＳ１０２において、設定後に残っている区間が更に次に設定される区間よりも小さいと判断される（ステップＳ１０２：YES）。この場合、設定された区間を延長して当該残っている区間を含めるようにし、これを最後の区間として設定する（ステップＳ１０３）。この場合、この最後の区間内の各視差値ｄに対応した路面候補点を抽出し（ステップＳ９２）、抽出した路面候補点について直線近似処理を行ったら（ステップＳ１５）、ステップＳ９６において最後の区間であると判断されるので（ステップＳ９６：YES）、区分直線近似部１３５ｂは区分直線近似処理を終了する。
【０１１３】
このようにして区分直線近似部１３５ｂが各区間の直線近似処理を実行して得た各区間の近似直線は、図２８Ａに示すように、通常、区間境界で連続したものにはならない。そのため、本実施形態では、各区間の近似直線が区間境界において連続になるように、区分直線近似部１３５ｂから出力される近似直線を図２８Ｂに示すように修正する。具体的には、例えば、区間の境界上における両区間の近似直線の端点間の中点を通るように両近似直線を修正する。
【０１１４】
《路面高さテーブル算出》
以上のようにして、路面形状検出部１３５においてＶマップ上の近似直線の情報が得られたら、次に、路面高さテーブル算出部１３６において、路面高さ（自車両の真下の路面部分に対する相対的な高さ）を算出してテーブル化する路面高さテーブル算出処理を行う。路面形状検出部１３５により生成されたＶマップ上の近似直線の情報から、撮像画像上の各行領域（画像上下方向の各位置）に映し出されている各路面部分までの距離を算出できる。一方、自車両の真下に位置する路面部分をその面に平行となるように自車両進行方向前方へ延長した仮想平面の自車両進行方向における各面部分が、撮像画像中のどの各行領域に映し出されるかは予め決まっており、この仮想平面（基準路面）はＶマップ上で直線（基準直線）により表される。路面形状検出部１３５から出力される近似直線を基準直線と比較することで、自車両前方の各路面部分の高さを得ることができる。簡易的には、路面形状検出部１３５から出力される近似直線上のＹ軸位置から、これに対応する視差値から求められる距離だけ自車両前方に存在する路面部分の高さを算出できる。路面高さテーブル算出部１３６では、近似直線から得られる各路面部分の高さを、必要な視差範囲についてテーブル化する。
【０１１５】
なお、ある視差値ｄにおいてＹ軸位置がｙ’である地点に対応する撮像画像部分に映し出されている物体の路面からの高さは、当該視差値ｄにおける近似直線上のＹ軸位置をｙ０としたとき、（ｙ’−ｙ０）から算出することができる。一般に、Ｖマップ上における座標（ｄ，ｙ’）に対応する物体についての路面からの高さＨは、下記の式〔２〕より算出することができる。ただし、下記の式〔２〕において、「ｚ」は、視差値ｄから計算される距離（ｚ＝ＢＦ／（ｄ−ｏｆｆｓｅｔ））であり、「ｆ」はカメラの焦点距離を（ｙ’−ｙ０）の単位と同じ単位に変換した値である。ここで、「ＢＦ」は、ステレオカメラの基線長と焦点距離を乗じた値であり、「ｏｆｆｓｅｔ」は無限遠の物体を撮影したときの視差値である。
Ｈ＝ｚ×（ｙ’−ｙ０）／ｆ  …式〔２〕
【０１１６】
《Ｕマップ生成》
次に、Ｕマップ生成部１３７について説明する。
Ｕマップ生成部１３７では、Ｕマップを生成するＵマップ生成処理として、頻度Ｕマップ生成処理及び高さＵマップ生成処理を実行する。
【０１１７】
頻度Ｕマップ生成処理では、視差画像データに含まれる各視差画素データにおけるｘ方向位置とｙ方向位置と視差値ｄとの組（ｘ，ｙ，ｄ）を、Ｘ軸にｘ、Ｙ軸にｄ、Ｚ軸に頻度を設定して、Ｘ−Ｙの２次元ヒストグラム情報を作成する。これを頻度Ｕマップと呼ぶ。本実施形態のＵマップ生成部１３７では、路面高さテーブル算出部１３４によってテーブル化された各路面部分の高さに基づいて、路面からの高さＨが所定の高さ範囲（たとえば２０ｃｍから３ｍ）にある視差画像の点（ｘ，ｙ，ｄ）についてだけ頻度Ｕマップを作成する。この場合、路面から当該所定の高さ範囲に存在する物体を適切に抽出することができる。なお、例えば、撮像画像の下側５／６の画像領域に対応する視差画像の点（ｘ，ｙ，ｄ）についてだけＵマップを作成するようにしてもよい。この場合、撮像画像の上側１／６は、ほとんどの場合、空が映し出されていて認識対象とする必要のある物体が映し出されていないためである。
【０１１８】
また、高さＵマップ生成処理では、視差画像データに含まれる各視差画素データにおけるｘ方向位置とｙ方向位置と視差値ｄとの組（ｘ，ｙ，ｄ）を、Ｘ軸にｘ、Ｙ軸にｄ、Ｚ軸に路面からの高さを設定して、Ｘ−Ｙの２次元ヒストグラム情報を作成する。これを高さＵマップと呼ぶ。このときの高さの値は路面からの高さが最高のものである。
【０１１９】
図２９は、撮像部１１０ａで撮像される基準画像の一例を模式的に表した画像例であり、図３０は、図２９の画像例に対応するＵマップである。ここで、図３０Ａは頻度Ｕマップであり、図３０Ｂは高Ｕマップである。
【０１２０】
図２９に示す画像例では、路面の左右両側にガードレール４１３，４１４が存在し、他車両としては、先行車両４１１と対向車両４１２がそれぞれ１台ずつ存在する。このとき、頻度Ｕマップにおいては、図３０Ａに示すように、左右のガードレール４１３，４１４に対応する高頻度の点は、左右両端側から中央に向かって上方へ延びるような略直線状６０３，６０４に分布する。一方、先行車両４１１と対向車両４１２に対応する高頻度の点は、左右のガードレールの間で、略Ｘ軸方向に平行に延びる線分の状態６０１，６０２で分布する。なお、先行車両４１１の背面部分又は対向車両４１２の前面部分以外に、これらの車両の側面部分が映し出されているような状況にあっては、同じ他車両を映し出している画像領域内において視差が生じる。このような場合、図３０Ａに示すように、他車両に対応する高頻度の点は、略Ｘ軸方向に平行に延びる線分と略Ｘ軸方向に対して傾斜した線分とが連結した状態の分布を示す。
【０１２１】
また、高さＵマップにおいては、左右のガードレール４１３，４１４、先行車両４１１、及び対向車両４１２における路面からの高さが最高の点が頻度Ｕマップと同様に分布する。ここで、先行車両に対応する点の分布７０１及び対向車両に対応する点の分布７０２の高さはガードレールに対応する点の分布７０３，７０４よりも高くなる。これにより、高さＵマップにおける物体の高さ情報を物体検出に利用することができる。
【０１２２】
《リアルＵマップ生成》
以上のようにＵマップを生成したら、次にリアルＵマップ生成部１３８がリアルＵマップを生成する。リアルＵマップは、Ｕマップにおける横軸を画像の画素単位から実際の距離に変換し、縦軸の視差値を距離に応じた間引き率を有する間引き視差に変換したものである。
【０１２３】
図３１は、図３０Ａに示す頻度Ｕマップに対応するリアルＵマップ（以下、リアル頻度Ｕマップ）を示す図である。図示のように、左右のガードレールは垂直の線状のパターン８０３，８０４で表され、先行車両、対向車両も実際の形に近いパターン８０１、８０２で表される。
【０１２４】
縦軸の間引き視差は、遠距離（ここでは５０ｍ以上）については間引きなし、中距離（２０ｍ以上、５０ｍ未満）については１／２に間引き、近距離（１０ｍ以上、２０ｍ未満）については１／３に間引き、近距離（１０ｍ以上、２０ｍ未満）については１／８に間引いたものである。
【０１２５】
つまり、遠方ほど、間引く量を少なくしている。その理由は、遠方では物体が小さく写るため、視差データが少なく、距離分解能も小さいので間引きを少なくし、逆に近距離では、物体が大きく写るため、視差データが多く、距離分解能も大きいので間引きを多くする。
【０１２６】
横軸を画像の画素単位から実際の距離へ変換する方法、Ｕマップの（ｘ，ｄ）からリアルＵマップの（Ｘ，ｄ）を求める方法の一例について図３２を用いて説明する。
カメラから見て左右１０ｍずつ、即ち２０ｍの幅をオブジェクト検出範囲として設定する。リアルＵマップの横方向１画素の幅を１０ｃｍとすると、リアルＵマップの横方向サイズは２００画素となる。
【０１２７】
カメラの焦点距離をｆ、カメラ中心からのセンサの横方向の位置をｐ、カメラから被写体までの距離をＺ、カメラ中心から被写体までの横方向の位置をＸとする。センサの画素サイズをｓとすると、ｘとｐの関係は「ｘ＝ｐ／ｓ」で表される。また、ステレオカメラの特性から、「Ｚ＝Ｂｆ／ｄ」の関係がある。
【０１２８】
また、図より、「ｘ＝ｐ＊Ｚ／ｆ」の関係があるから、「Ｘ＝ｓｘＢ／ｄ」で表すことができる。Ｘは実距離であるが、リアルＵマップ上での横方向１画素の幅が１０ｃｍあるので、容易にＸのリアルＵマップ上での位置を計算することができる。
【０１２９】
図３０Ｂに示す高さＵマップに対応するリアルＵマップ（以下、リアル高さＵマップ）も同様の手順で作成することができる。
【０１３０】
リアルＵマップには、縦横の高さをＵマップより小さくできるので処理が高速になるというメリットがある。また、横方向が距離に非依存になるため、遠方、近傍いずれでも同じ物体は同じ幅で検出することが可能になり、後段の周辺領域除去や、横分離、縦分離への処理分岐の判定（幅の閾値処理）が簡単になるというメリットもある。
【０１３１】
Ｕマップの高さは，最短距離を何メートルにするかで決定される。つまり、「ｄ＝Ｂｆ／Ｚ」であるから、ｄの最大値は決定される。視差値ｄはステレオ画像を扱うため、通常画素単位で計算されるが、少数を含むため、視差値に例えば３２を乗じて小数部分を四捨五入して整数化した視差値を使用する。
【０１３２】
例えば、４ｍを最短距離にして、画素単位の視差値が３０であるステレオカメラの場合、Ｕマップの高さの最大値は３０×３２で９６０となる。また、２ｍを最短距離にして、画素単位の視差値が６０であるステレオカメラの場合、６０×３２で１９２０となる。
【０１３３】
Ｚが１／２になると、ｄは２倍になるので，それだけＵマップの高さ方向のデータは巨大となる。そこで、リアルＵマップを作成するときには、近距離ほど間引いてその高さを圧縮する。
【０１３４】
上記のカメラの場合、５０ｍでは視差値が２．４画素、２０ｍで視差値が６画素、８ｍで視差値が１５画素、２ｍで６０画素となる。従って、５０ｍ以上では視差値は間引きなし、２０ｍ以上５０ｍ未満では１／２間引き、８ｍ以上２０ｍ未満では１／３間引き、８ｍ未満では１／１５間引きというように近距離になるほど大きな間引きをする。
【０１３５】
この場合、無限遠から５０ｍまでは、高さが２．４×３２＝７７、５０ｍから２０ｍまでは高さが（６−２．４）×３２／２＝５８、２０ｍから８ｍまでは高さが（１５−６）×３２／３＝９６、８ｍ未満では高さが（６０−１５）×３２／１５＝９６となる。この結果、リアルＵマップの総高さは７７＋５８＋９６＋９６＝３２７となり，Ｕマップの高さよりかなり小さくなるから、ラベリングによるオブジェクト検出を高速に行うことができる。
【０１３６】
《孤立領域検出》
次に、孤立領域検出部１３９について説明する。
図３３は、孤立領域検出部１３９で行う孤立領域検出処理の流れを示すフローチャートである。
孤立領域検出部１３９では、まずリアルＵマップ生成部１３８で生成された頻度リアルＵマップの情報の平滑化を行う（ステップＳ１１１）。
【０１３７】
これは、頻度値を平均化することで、有効な孤立領域を検出しやすくするためである。即ち、視差値には計算誤差等もあって分散があり、かつ、視差値がすべての画素について計算されているわけではないので、リアルＵマップは図３１に示した模式図とは異なり、ノイズを含んでいる。そこで、ノイズを除去するためと、検出したいオブジェクトを分離しやすくするため、リアルＵマップを平滑化する。これは画像の平滑化と同様に、平滑化フィルタ(例えば３×３画素の単純平均)をリアルＵマップの頻度値（頻度リアルＵマップ）に対して適用することで、ノイズと考えられるような頻度は減少し、オブジェクトの部分では頻度が周囲より高い、まとまったグループとなり，後段の孤立領域検出処理を容易にする効果がある。
【０１３８】
次に、二値化の閾値を設定する（ステップＳ１１２）。最初は小さい値（＝０）を用いて、平滑化されたリアルＵマップの二値化を行う（ステップＳ１１３）。その後、値のある座標のラベリングを行って、孤立領域を検出する（ステップＳ１１４）。
【０１３９】
この二つのステップでは、リアル頻度Ｕマップで頻度が周囲より高い孤立領域(島と呼ぶことにする)を検出する。検出には、リアル頻度Ｕマップをまず二値化する（ステップＳ１１３）。最初は閾値０で二値化を行う。これは、オブジェクトの高さや、その形状、路面視差との分離などがあるため、島は孤立しているものもあれば他の島と連結しているものもあることの対策である。即ち、小さい閾値からリアル頻度Ｕマップを二値化することで最初は孤立した適切な大きさの島を検出し、その後、閾値を増加させていくことで連結している島を分離し、孤立した適切な大きさの島として検出することを可能にしたものである。
【０１４０】
二値化後の島を検出する方法はラベリングを用いる（ステップＳ１１４）。二値化後の黒である座標(頻度値が二値化閾値より高い座標)をその連結性に基づいてラベリングして、同一ラベルが付いた領域を島とする。
【０１４１】
図３４は、ラベリングの方法について説明するための図である。図３４Ａに示すように、○の位置が黒であってラベル付け対象座標（注目画素）であるとき、１,２,３,４の位置の座標にラベル付けされた座標があれば、その画素のラベルと同一ラベルを割り当てる。もし、図３４Ｂに示すように複数のラベル（ここでは８と９）が存在すれば、図３４Ｃに示すように、最も小さい値のラベル（ここでは８）を割り当て、その他のラベル（ここでは９）が付いた座標のラベルをそのラベルで置き換える。その島の幅は実のオブジェクトに近い幅Ｗとみなすことができる。この幅Ｗが所定の範囲内にあるものをオブジェクト候補領域とみなす。
【０１４２】
図３３の説明に戻る。検出された複数の孤立領域についてそれぞれ大きさの判定を行う（ステップＳ１１５）。これは、検出対象が歩行者から大型自動車であるため、孤立領域の幅がそのサイズの範囲であるか否かを判定するのである。もし、その大きさが大きければ（ステップＳ１１５：YES）、二値化閾値を１だけインクリメントして（ステップＳ１１２）、リアル頻度Ｕマップの当該孤立領域内だけ二値化を行う（ステップＳ１１３）。そしてラベリングを行い、より小さな孤立領域を検出して（ステップＳ１１４）、その大きさを判定する（ステップＳ１１５）。
【０１４３】
上記の閾値設定からラベリングの処理を繰り返し行い、所望の大きさの孤立領域を検出するのである。所望の大きさの孤立領域が検出できたなら（ステップＳ１１５：NO）、次に周辺領域除去を行う（ステップＳ１１６）。これは、遠方にある物体で、路面検出の精度が悪く、路面の視差がリアルＵマップ内に導入され、物体と路面の視差が一塊になって検出された場合のその左右、近傍の高さが路面に近い部分の領域（孤立領域内の周辺部分）を削除する処理である。除去領域が存在する場合は（ステップＳ１１７：YES）、もう一度ラベリングを行って孤立領域の再設定を行う（ステップＳ１１４）。
【０１４４】
除去領域がなくなったら（ステップＳ１１７：NO）、周辺領域除去を行った孤立領域の大きさ(幅と高さ、距離)を判定し（ステップＳ１１８）、その結果に応じて、横方向分離（ステップＳ１１９）又は縦方向分離（ステップＳ１２０）又は何もしないでオブジェクト候補として登録する。横方向分離又は縦方向分離を行った場合は（ステップＳ１２１：YES、ステップＳ１２２：YES）、もう一度ラベリングを行って孤立領域の再設定を行う（ステップＳ１１４）。
【０１４５】
物体同士が横に並んで近接している(自動車とバイク、自動車と歩行者、自動車同士など)場合、リアル頻度Ｕマップの平滑化が原因で一つの孤立領域として検出されることがある。或いは視差画像の視差補間の悪影響で異なる物体同士の視差がつながってしまうことがある。横方向分離はこのようなケースを検出して分離する処理である（詳細については後述）。
【０１４６】
また、複数の先行車両が隣の車線を走行しているときに、それらが遠方にいる場合、ステレオ画像から得られる視差の分散が大きい場合、リアル頻度Ｕマップ上では物体それぞれの視差値が上下に伸び、連結してしまうことがある。このため、これを一つの孤立領域として検出してしまう場合がある。縦方向分離はこのようなケースを検出して、手前を走る先行車両とその向こうを走る先行車両とに分離する処理である（詳細については後述）。
【０１４７】
以下、周辺領域除去、横方向分離、縦方向分離について詳細に説明する。
《周辺領域除去》
図３５は、周辺領域除去について説明するためのリアルＵマップであり、図３６は、周辺領域除去処理の流れを示すフローチャートである。ここで、図３５Ａは、平滑化後のリアル頻度Ｕマップであり、図３５Ｂは、リアル高さＵマップであり、図３５Ｃは、周辺領域が除去されたリアル高さＵマップである。これらのマップは実データを模式的に示したものである（後記の図３７、図３９も同様）。また、このリアル頻度Ｕマップは、図３１における車両（先行車両や対向車両）に対応する点の分布の付近を取り出したものである。また、リアル高さＵマップは、不図示のリアル高さＵマップにおける車両に対応する点の分布の付近を取り出したものである。
【０１４８】
図３５Ａ、図３５Ｂは、いずれも、遠方の路面（白線等）が実際の高さよりも低く検出され、路面と車両とが一緒に検出された塊の例を示している。図３５Ａと図３５Ｂとを比較すると、図３５Ｂにおける高さの高い領域、高さの低い領域と、図３５Ａにおける頻度の高い領域、頻度の高い領域とが合致していない。このようなケースでは、頻度情報ではなく、高さ情報を利用することで、オブジェクトと路面との境界を検出して周辺領域を除去する。高さ情報の方が物体の形をより正確に表しているからである。
【０１４９】
周辺領域の除去処理は、図３６に示すように、近傍領域除去処理（ステップＳ１３１）、左側領域除去処理（ステップＳ１３２）、右側領域除去処理（ステップＳ１３３）からなる。
【０１５０】
近傍領域除去処理（ステップＳ１３１）における近傍領域除去の判定方法は、高さの閾値を下記のように設定し，下記(i)又は(ii)又は(iii)が孤立領域の最下端(ボトムライン)から成り立ち続ける場合に該当ラインの頻度を変更して除去する。
【０１５１】
高さの閾値の設定：高さ閾値を塊内の最大高さに応じて設定する。即ち、例えば、最大高さが１２０ｃｍ以上であれば閾値を６０ｃｍ、最大高さが１２０ｃｍ未満であれば閾値を４０ｃｍとする。
(i)ライン内に高さを持つ点が所定の点数(たとえば５)以下で閾値以上の高さを持つ点がない。
(ii)ライン内に閾値以上の高さを持つ点数が閾値未満の高さを持つ点数より少なく、閾値以上の高さを持つ点数が２未満である．
(iii)閾値以上の高さを持つ点数がライン全体の高さを持つ点数の１０％未満である。
【０１５２】
左側領域除去処理（ステップＳ１３２）及び右側領域除去処理（ステップＳ１３３）における左右領域除去の判定方法は、高さの閾値を下記のように設定し、下記(iv)又は(v)又は(vi)が孤立領域の左端又は右端の列から成り立ち続ける場合に該当列の頻度を変更して除去する。
【０１５３】
高さの閾値の設定：高さ閾値を塊内の最大高さに応じて設定する。即ち、例えば、最大高さが１２０ｃｍ以上であれば閾値を６０ｃｍ、最大高さが１２０ｃｍ未満であれば閾値を４０ｃｍとする。
【０１５４】
(iv)列内に高さを持つ点が所定の点数(たとえば５)以下で閾値以上の高さを持つ点がない。
(v)列内に閾値以上の高さを持つ点数が閾値未満の高さを持つ点数より少なく，閾値以上の高さを持つ点数が２未満である。
(vi)閾値以上の高さを持つ点数が列全体の高さを持つ点数の１０％未満である。
【０１５５】
以上のようにして近傍、及び左右の高さが低い領域を除去すると、図３５Ｃに示すように、中央の高さの高い領域が残り、近傍及び左右の高さの低い領域が除去される。なお、ここで提示した数値は一例に過ぎず、他の数値でもよいことは言うまでもない。
【０１５６】
《横方向分離》
図３７は、横方向分離について説明するための図であり、図３８は、横方向分離処理の流れを示すフローチャートである。ここで、図３７Ａは、平滑化後のリアル頻度Ｕマップを示し、図３７Ｂは、リアル高さＵマップを示す。また、図３７Ｃは、分離境界の検出方法を示す。
【０１５７】
まず横方向分離の実行条件（ステップＳ１１８→ステップＳ１１９）について説明する。横方向分離が有効なケースでは、横方向にオブジェクトが連結しているので、例えば自動車１台の幅(約２ｍ)に別の物体が近接している(例えば５０ｃｍ離れている)ときには、リアルＵマップら検出した孤立領域の幅が２．５ｍを越えていると推定される。そこで、孤立領域の幅が２．５ｍを越えている場合は、この横方向分離を実行する。
【０１５８】
横方向分離処理は、図３８に示すように、縦方向評価値算出処理（ステップＳ１４１）、最小評価値位置検出処理（ステップＳ１４２）、二値化閾値設定処理（ステップＳ１４３）、評価値二値化処理（ステップＳ１４４）、分離境界検出処理（ステップＳ１４５）からなる。
【０１５９】
縦方向評価値算出処理（ステップＳ１４１）では、周辺領域が除去された孤立領域のリアル頻度Ｕマップとリアル高さＵマップの各点における値の積を列方向に加算して、横方向の評価値を算出する。即ち、図３７Ａ、図３７Ｂの各Ｘ座標の評価値を「Σ（頻度＊高さ）」として算出する。ここで、ΣはＹ方向の総和をとることを意味する。
【０１６０】
最小評価値位置検出処理（ステップＳ１４２）では、図３７Ｃに示すように、算出した評価値から最小値とその位置を検出する。また、二値化閾値設定処理（ステップＳ１４３）では、図３７Ｃに示すように、各評価値の平均に所定の係数(例えば０．５)を乗じて、評価値の二値化閾値を求める。
【０１６１】
評価値二値化処理（ステップＳ１４４）では、その二値化閾値で評価値を二値化する。また、分離境界検出処理（ステップＳ１４５）では、図３７Ｃに示すように、最小評価値を含み、二値化閾値より小さい評価値を含む領域を分離領域として設定する。そして、その分離領域の両端を分離境界とし、その分離境界の内側の頻度値を変更することで、孤立領域を横方向に分離する。
【０１６２】
このような評価値を用いた理由として、下記(vii)、(viii)、(ix)の３点が挙げられる。
(vii)連結している部分の頻度値は、オブジェクトの頻度値よりも比較的小さくなる。
(viii)高さＵマップで連結している部分は、オブジェクトの部分とは高さが異なったり、高さを持つデータが少なかったりする。
(ix)視差補間の影響で連結している部分は、高さＵマップにおける視差の分散が小さい。
【０１６３】
《縦方向分離》
図３９は、縦方向分離について説明するための図であり、図４０は、縦方向分離処理の流れを示すフローチャートである。また、図４１は、縦方向分離における分離境界について説明するための図である。
【０１６４】
まず縦方向分離の実行条件（ステップＳ１１８→ステップＳ１２０）について説明する。縦方向分離が有効なケースでは、リアルＵマップ上で縦方向にオブジェクトが並んでいるので、二台以上の縦列状態を一つの孤立領域として検出した場合は二台以上の車が持つ視差の範囲と車間距離を合わせた範囲がその孤立領域の視差範囲となる。そのため、ガードレールや壁以外で視差(距離)が広い範囲を有するものということで、基本的には縦列走行の分離が難しくなるある程度遠方(たとえば２０ｍ以遠)で、距離に応じて孤立領域の視差(距離)範囲が大きい孤立領域が縦方向分離の対象となる。一方、ガードレールや建物の壁などは視差範囲が広くても幅が狭いので幅の狭い孤立領域は縦方向分離の対象とはならない。
【０１６５】
具体的には孤立領域の最近傍距離をＺmin、最遠方距離をＺmax、幅をＷとすると下記(x)、(xi)以下のいずれかの条件を満たすときに縦方向分離を実行する。
(x)Ｗ＞１５００ｍｍかつＺmin＞１００ｍのとき、Ｚmax−Ｚmin＞５０ｍ
(xi)Ｗ＞１５００ｍｍかつ１００ｍ≧Ｚmin＞２０ｍのとき、Ｚmax−Ｚmin＞４０ｍ
【０１６６】
縦方向分離処理は、図４０に示すように、実幅算出領域設定処理（ステップＳ１５１）、横方向評価値算出処理（ステップＳ１５２）、実幅設定処理（ステップＳ１５３）、分離境界設定処理（ステップＳ１５４）、分離処理（ステップＳ１５５）からなる。
【０１６７】
図３９Ａは左隣の車線を走行している２台の先行車が一つの孤立領域として検出された平滑化後のリアル頻度Ｕマップの例を示している。この場合、下側(手前)の頻度の大きい領域がすぐ前を走る先行車を表し、上側(奥側)の頻度の大きい領域がさらに前を走る先行車を表す。先行車の左右端に視差が集中し、その分散が大きいので、頻度の大きい領域の両側で左カーブを描くように視差が伸びている。この伸びが大きいため、手前の先行車の視差の伸びと奥側の先行車の視差の伸びとが連結して二台の先行車がひとつの孤立領域として検出されてしまっている。
【０１６８】
このような場合、検出された孤立領域の幅は実際の先行車の幅より大きい事が常である。そこで、実幅を算出するための領域をまず設定する（実幅算出領域設定処理：ステップＳ１５１）。これは、孤立領域のZmaxからZminの大きさに応じて、所定の距離範囲Ｚrを下記の(xii)〜(xiv)に示すように設定して、その距離範囲に相当する視差範囲の領域内で手前の先行車の実幅を探索する処理である。
【０１６９】
(xii)Zmin＜５０ｍならば、Zr＝２０ｍ
(xii1)５０ｍ≦Zmin＜１００ｍならば、Zr＝２５ｍ
(xiv)１００ｍ≦Zminならば、Zr＝３０ｍ
【０１７０】
図３９Ａにおいて、上端がZmax、下端がZmin、破線の枠で示された領域が実幅算出領域Zrである。このZrの値はステレオカメラから得られる視差の分散の大きさから設定することができる。
【０１７１】
次に、上記実幅算出領域内で横方向評価値を算出する（横方向評価値算出処理：ステップＳ１５２）。即ち、図３９Ｂに示すように、実幅算出領域の各ラインで頻度値の積算し、それを各ラインでの評価値とする。そしてその評価値が最大であるラインを実幅検出位置とする。
【０１７２】
次いで、この実幅検出位置における、頻度値が連続して存在して最大の長さ(幅)を有する領域を実幅領域と検出する。また、その長さを実幅とする（実幅設定処理：ステップＳ１５３）。図３９Ｃの場合は、実幅は５となる。
【０１７３】
次に、その実幅の境界の外側を分離境界とし（分離境界設定処理：ステップＳ１５４）、その分離境界を基準として孤立領域の各視差における分離境界の位置を順次計算して設定する（分離処理：ステップＳ１５５）。
【０１７４】
分離境界の計算方法について図４１を用いて説明する。
カメラの原点（レンズの中心）をＯ、カメラの向いている方向をカメラ中心軸(リアルＵマップの中心の縦軸)の方向とする。また、実幅領域の分離境界の位置が、距離Ｚ０，横位置Ｘ０とする。このとき距離Ｚにおける分離境界の位置をＸとすると下記の式〔３〕が成り立つ。
Ｘ＝Ｘ０＊（Ｚ／Ｚ０）  …式〔３〕
【０１７５】
また、ＢＦをステレオカメラの基線長と焦点距離を掛け合わせたもの、ｄ０をＺ０に対応する視差、ｄをＺに対応する視差、offsetを無限遠における視差とすると、「Ｚ＝ＢＦ／（ｄ−offset）」、「Ｚ０＝ＢＦ／（ｄ０−offset）」であるので、式〔３〕を下記の式〔４〕のように変形することができる。
Ｘ＝Ｘ０＊（ｄ０−offset）／（ｄ−offset）  …式〔４〕
【０１７６】
視差値ｄとリアルＵマップの間引き視差との対応関係がわかっているので、式〔４〕から孤立領域内の分離境界の位置を全ての間引き視差の値で決定することができる。その結果が図３９Ｄに「頻度値を更新、分離する位置」として示した箇所である。この箇所は、図３３のステップＳ１２２経由でステップＳ１１４に移行したときに、頻度値が０に更新される。
【０１７７】
このようにすると、手前にある先行車の領域と奥に見えるオブジェクトの領域とを分離することができる。また、孤立領域の左下に縦に長い領域が分離されるがこれは幅が細いのでノイズとして処理されることになる。
【０１７８】
なお、図３９に示す例は先行車が左隣の車線を走行している場合であったが、先行車が右隣の車線を走行している場合は、孤立領域のリアル頻度Ｕマップは、図３９の例を左右反転した分布となる。
【０１７９】
《視差画像の対応領域検出、及びオブジェクト領域抽出》
次に、視差画像の対応領域検出部１４０及びオブジェクト領域抽出部１４１について説明する。図４２は、孤立領域検出部で検出された孤立領域が内接する矩形領域を設定したリアル頻度Ｕマップを示す図であり、図４３は、図４２における矩形領域に対応する走査範囲を設定した視差画像を示す図であり、図４４は、図４３における走査範囲を探索してオブジェクト領域を設定した視差画像を示す図である。
【０１８０】
孤立領域検出部１３９によりオブジェクト候補領域として決定された孤立領域について、図４２に示すように、当該孤立領域としての第１車両８０１、第２車両８０２が内接する矩形領域として第１検出島８１１及び第２検出島８１２を設定したとき、この矩形領域の幅（Ｕマップ上のＸ軸方向長さ）は、当該孤立領域に対応する識別対象物（オブジェクト）の幅に対応する。また、設定した矩形領域の高さは、当該孤立領域に対応する識別対象物（オブジェクト）の奥行き（自車両進行方向長さ）に対応している。一方で、各孤立領域に対応する識別対象物（オブジェクト）の高さについては、この段階では不明である。視差画像の対応領域検出部１４０は、オブジェクト候補領域に係る孤立領域に対応したオブジェクトの高さを得るために、当該孤立領域に対応する視差画像上の対応領域を検出する。
【０１８１】
視差画像の対応領域検出部１４０は、孤立領域検出部１３９から出力される孤立領域の情報に基づき、リアルＵマップから検出した第１検出島８１１及び第２検出島８１２島の位置、幅と最小視差から、図４３に示す視差画像で検出すべき範囲である第１検出島対応領域走査範囲４８１及び第２検出島対応領域走査範囲４８２のｘ方向範囲（ｘmin，ｘmax)を決定できる。また、視差画像においてオブジェクトの高さと位置(ｙmin=”最大視差ｄmaxの時の路面からの最大高さに相当するｙ座標”からｙmax=”最大視差ｄmaxから得られる路面の高さを示すｙ”まで)を決定できる。
【０１８２】
次に、オブジェクトの正確な位置を検出するため、設定した走査範囲を走査し、孤立領域検出部１３９で検出した矩形の奥行き(最小視差ｄmin,最大視差ｄmax)の範囲の値を視差にもつ画素を候補画素として抽出する。そして、抽出した候補画素群の中で検出幅に対して横方向に所定の割合以上あるラインを候補ラインとする。
【０１８３】
次に、縦方向に走査して、ある注目しているオブジェクト候補ラインの周囲に他のオブジェクト候補ラインが所定の密度以上ある場合には，その注目しているオブジェクト候補ラインをオブジェクトラインとして判定する。
【０１８４】
次に、オブジェクト領域抽出部１４１は、視差画像の探索領域でオブジェクトラインを探索して、オブジェクトラインの最下端、最上端を決定し、図４４に示すように、オブジェクトライン群の外接矩形４６１，４６２を視差画像におけるオブジェクト（第１車両、第２車両）の領域４５１，４５２として決定する。
【０１８５】
図４５は、視差画像の対応領域検出部１４０及びオブジェクト領域抽出部１４１で行われる処理の流れを示すフローチャートである。
まずリアルＵマップにおける島の位置、幅と最小視差から、視差画像に対するｘ軸方向の探索範囲を設定する（ステップＳ１６１）。
【０１８６】
次に島の最大視差ｄmaxと路面高さの関係から、視差画像に対するｙ軸方向の最大探索値ｙmaxを設定する（ステップＳ１６２）。次にリアル高さＵマップにおける島の最大高さ、及びステップＳ１７２で設定したymaxとdmaxとから、視差画像に対するｙ軸方向の最小探索値ｙminを求めて設定することで、視差画像に対するｙ軸方向の探索範囲を設定する（ステップＳ１６３）。
【０１８７】
次いで設定した探索範囲で視差画像を探索して、島の最小視差ｄmin，最大視差ｄmaxの範囲内にある画素を抽出し、オブジェクト候補画素とする（ステップＳ１６４）。そのオブジェクト候補画素が横方向に一定以上の割合にあるとき、そのラインをオブジェクト候補ラインとして抽出する（ステップＳ１６５）。
【０１８８】
オブジェクト候補ラインの密度を計算して、密度が所定の値より大きい場合はそのラインをオブジェクトラインと決定する（ステップＳ１６６）。最後にオブジェクトライン群の外接矩形を視差画像内のオブジェクト領域として検出する（ステップＳ１６７）。
【０１８９】
《オブジェクトタイプ分類》
次に、オブジェクトタイプ分類部１４２について説明する。
前記オブジェクト領域抽出部１４１で抽出されるオブジェクト領域の高さ（ｙomax−ｙomin）から、下記の式〔５〕より、そのオブジェクト領域に対応する画像領域に映し出されている識別対象物（オブジェクト）の実際の高さＨｏを計算できる。ただし、「ｚo」は、当該オブジェクト領域内の最小視差値ｄから計算される当該オブジェクト領域に対応するオブジェクトと自車両との距離であり、「ｆ」はカメラの焦点距離を（ｙomax−ｙomin）の単位と同じ単位に変換した値である。
Ｈo＝ｚo×（ｙomax−ｙomin）／ｆ  …式〔５〕
【０１９０】
同様に、オブジェクト領域抽出部１４１で抽出されるオブジェクト領域の幅（ｘomax−ｘomin）から、下記の式〔６〕より、そのオブジェクト領域に対応する画像領域に映し出されている識別対象物（オブジェクト）の実際の幅Ｗoを計算できる。
Ｗo＝ｚo×（ｘomax−ｘomin）／ｆ  …式〔６〕
【０１９１】
また、当該オブジェクト領域に対応する画像領域に映し出されている識別対象物（オブジェクト）の奥行きＤoは、当該オブジェクト領域に対応した孤立領域内の最大視差値ｄmaxと最小視差値ｄminから、下記の式〔７〕より計算することができる。
Ｄo＝ＢＦ×｛（１／（ｄmin−offset）−１／（ｄmax−offset）｝  …式〔７〕
【０１９２】
オブジェクトタイプ分類部１４２は、このようにして計算できるオブジェクト領域に対応するオブジェクトの高さ、幅、奥行きの情報から、そのオブジェクトタイプの分類を行う。図４６に示す表は、オブジェクトタイプの分類を行うためのテーブルデータの一例を示すものである。これによれば、自車両前方に存在する識別対象物（オブジェクト）が、歩行者なのか、自転車なのか、小型車なのか、トラックなどか等を区別して認識することが可能となる。
【０１９３】
《３次元位置決定》
次に、３次元位置決定部１４３について説明する。
検出されたオブジェクト領域に対応するオブジェクトまでの距離や、視差画像の画像中心と視差画像上のオブジェクト領域の中心との画像上の距離も把握されることから、オブジェクトの３次元位置を決定することができる。
【０１９４】
視差画像上のオブジェクト領域の中心座標を（region_centerＸ，region_centerＹ）とし、視差画像の画像中心座標を（image_centerＸ，image_centerＹ）としたとき、識別対象物（オブジェクト）の撮像部１１０ａ，１１０ｂに対する相対的な横方向位置および高さ方向位置は、下記の式〔８〕及び式〔９〕より計算できる。
Ｘo＝Ｚ×（region_centerＸ−image_centerＸ）／ｆ  …式〔８〕
Ｙo＝Ｚ×（region_centerＹ−image_centerＹ）／ｆ  …式〔９〕
【０１９５】
《ガードレール検出》
次にガードレール検出部１４４について説明する。
図４７は、ガードレール検出部１４４で行われるガードレール検出処理の流れを示すフローチャートであり、図４８は、ガードレール検出処理の対象範囲について直線近似処理して得られた近似直線を表したＵマップを示す図である。また、図４９は、直線近似処理して得られた直線からガードレール候補座標を検出するための処理について説明するための図である。
【０１９６】
路面の側方などに設置される側壁やガードレールは、一般に、路面から３０〜１００ｃｍの範囲内に存在するので、ガードレール検出処理の対象範囲として、この範囲に対応するＵマップ内の領域を選定する。その後、この対象範囲について、Ｕマップの頻度に重み付けを行い、Ｈｏｕｇｈ（ハフ）変換して（ステップＳ１７１）、図４８に示すような近似直線Ｌ１，Ｌ２を検出する（ステップＳ１７２）。この近似直線Ｌ１，Ｌ２において、視差が大きい方の端点は画像の境界とし、視差が小さい方の端点は距離換算で例えば３０ｍの距離に相当する視差値とする。なお、Ｈｏｕｇｈ変換により直線が見つからなかった場合は、ガードレールは検出されない。
【０１９７】
このような近似直線が得られたら、次に、図４９に示すように、近似直線上Ｌ１の座標位置を中心とした周囲の領域（たとえば５×５領域６１１）について、頻度値の総和が所定の閾値を超えている座標位置を、左ガードレールの視差マップ６１２からガードレール候補座標６１３として検出する（ステップＳ１７３）。このようにして検出されるガードレール候補座標６１３の間隔が所定の距離以下である場合には、それらのガードレール候補座標６１３をつないでガードレール線分６１４として決定する（ステップＳ１７４）。
【０１９８】
その後、このようにして得られ得るガードレール線分の最小Ｘ座標ｘminと最大Ｘ座標ｘmaxにそれぞれ対応する視差値ｄ１，ｄ２を、検出した近似直線の式から算出する。このとき、上述した路面形状検出部１３６で算出したｙとｄの近似直線より、該当する視差ｄ１，ｄ２における路面座標（ｙ１，ｙ２）が決定される。ガードレールは、路面の高さから３０ｃｍ以上１ｍ以下の範囲としているので、前記式〔２〕を利用し、視差画像上でのガードレールの高さ（３０ｃｍと１ｍ）として、ｙg1_30、ｙg1_100、ｙg2_30、ｙg2_100が決定される。
【０１９９】
図５０は、図１７に示す視差画像上にガードレール検出部１４４で検出されたガードレール領域を重畳した図である。
視差画像上でのガードレール領域４７１は、（ｘgmin，ｙg1_30）、（ｘgmin、ｙg1_100）、（ｘgmax、ｙg2_100）、（ｘgmax＿ｙg2_30）の４点で囲まれる領域（図中に網掛けした領域）となる。なお、ここでは左側のガードレールについて説明したが、右側のガードレールについても同様に検出できる。
【０２００】
《消失点情報》
次に、Ｖマップ生成部１３４における処理に用いる消失点情報について説明する。
消失点情報は、路面の消失点に対応する画像上の位置座標を示す情報である。この消失点情報は、撮像画像上に映し出される路面上の白線や車両動作情報などから特定することができる。
【０２０１】
図５１は、自車両の前輪の舵角から消失点の画像左右方向位置Ｖｘを検出する原理を示す説明図であり、図５２は、自車両のヨーレート及び車速から消失点の画像左右方向位置Ｖｘを検出する原理を示す説明図である。また、図５３は、自車両の加速時や減速時に消失点の画像上下方向位置Ｖｙが変化することを示す説明図である。
【０２０２】
例えば、自車両１００の前輪の舵角θが車両動作情報として取得できる場合には、図５１に示すように、その舵角θから消失点の画像左右方向位置Ｖｘを検出することが可能である。即ち、カメラレンズから距離Ｌだけ離れた位置におけるカメラからの水平方向への位置ズレ量は、Ｌ×tanθから求めることができる。したがって、画像センサ上の水平方向位置ズレ量をΔｘは、カメラの焦点距離をｆとし、画像センサの画素サイズをpixelsizeとすると、下記の式〔１０〕から求めることができる。この式〔１０〕を用いることにより、画像センサのＸ方向サイズをｘsizeとすると、消失点のＸ座標Ｖｘは、下記の式〔１１〕から求めることができる。
Δｘ＝ｆ×tanθ／pixelsize  …式〔１０〕
Ｖｘ＝ｘsize／２＋Δｘ  …式〔１１〕
【０２０３】
また、例えば、自車両１００のヨーレート（回転角速度）ωと、車速ｖが車両動作情報として取得できる場合には、図５２に示すように、そのヨーレートωと車速ｖとを用いて消失点の画像左右方向位置Ｖｘを検出することが可能である。即ち、自車両１００が距離Ｌだけ進んだときに想定される水平位置のズレ量は、自車両１００の回転半径ｒ（ｒ＝Ｌ／θ）と回転角とから、（１−cosθ）となる。従って、画像センサ上の水平方向位置ズレ量Δｘは、下記の式〔１２〕から求めることができる。この式〔１２〕を用いて得られるΔｘを用いて、消失点のＸ座標Ｖｘは、前記の式〔１１〕から求めることができる。このときの距離Ｌは、例えば１００ｍと設定する。
Δｘ＝±（１−cosθ）×ｆ×ｒ／Ｌ／pixelsize  …式〔１２〕
【０２０４】
このようにして求まる消失点のＸ座標Ｖｘが画像外を示すものとなった場合、消失点情報のＸ座標Ｖｘとして、画像端部を設定する。
【０２０５】
一方、消失点のＹ座標Ｖｙについては、直前の処理によって求めた路面の近似直線の切片から求めることができる。消失点のＹ座標Ｖｙは、Ｖマップ上において、上述した処理によって求まる路面の近似直線の切片に対応している。従って、直前の処理によって求めた路面の近似直線の切片をそのまま消失点のＹ座標Ｖｙとして決定してもよい。
【０２０６】
ただし、自車両１００が加速している時には、自車両後方部分が加重され、自車両１００の姿勢は、自車両前方が鉛直方向上側を向くような姿勢となる。この姿勢変化により、加速時における路面の近似直線は、図５３に示すように、等速時における路面の近似直線よりもＶマップ上において下側へシフトしたものとなる。逆に、減速時における路面の近似直線は、図５３に示すように、等速時における路面の近似直線よりもＶマップ上において上側へシフトしたものとなる。したがって、直前の処理によって求めた路面の近似直線の切片を、車速前後方向における加速度情報（車両動作情報）によって補正したものを、消失点のＹ座標Ｖｙとして決定するのが好ましい。
【０２０７】
〔変形例１〕
次に、前記実施形態についての他の変形例（以下「変形例１」という。）について説明する。
前記実施形態においては、自車両進行方向における路面の高さ変化（自車両進行方向における路面の起伏）を把握することはできるが、路面幅方向における路面高さの違い（路面幅方向における路面の傾斜）を把握することはできない。本変形例１では、路面幅方向における路面の傾斜を把握することができる例について説明する。
【０２０８】
図５４は、本変形例１における主要な処理の流れを示すフローチャートであり、図５５は、路面の消失点と視差画像の下端中心とを結ぶ直線を境界にして左右に二分割した視差画像の例を示す説明図である。また、図５６は、消失点と視差画像左下点とを結ぶ直線Ｌ３と、消失点と視差画像右下点とを結ぶ直線Ｌ４とを設定した視差画像の例を示す説明図であり、図５７は、図５６の視差画像に対して、ひとつの画像走査ラインＬ５を設定したときの説明図である。また、図５８は、２つの直線Ｌ３，Ｌ４と画像走査ラインとの両交点以外の画像走査ライン上の視差値を線形補間したときの説明図である。
【０２０９】
まず、前記実施形態と同様、図５５に示すように、路面の消失点（Ｖｘ，Ｖｙ）が示す消失点の画像上下方向位置Ｖｙから所定のoffset値を引いた画像上下方向位置（Ｖｙ−offset値）の地点Ｗと、図５５中に示したＡＢＣＤの各点で囲まれた領域を設定する。そして、図５５に示すように、視差画像上において、路面の消失点（Ｖｘ，Ｖｙ）と視差画像の下端中心Ｍ（xsize／２，ysize）とを結ぶ直線を分離境界にして、ＷＡＢＣＤの各点で囲まれた領域を、ＷＡＢＭの各点で囲まれた左領域と、ＷＭＣＤの各点で囲まれた右領域とに左右二分割して、各領域をそれぞれ路面画像候補領域として設定する。その後、各路面画像候補領域に対し、それぞれ個別に上述した実施形態の方法でＶマップを作成する（ステップＳ１８１）。このようにして視差画像上の路面画像候補領域を複数の領域に分割して各領域について個別に作成した部分的なＶマップを組み合わせたものを、多重Ｖマップという。
【０２１０】
その後、それぞれの領域のＶマップから、領域ごとに、上述した実施形態の方法で路面に対応する区分近似直線を得る。また、図５６に示すように、消失点Ｖ（Ｖｘ，Ｖｙ）と同じｙ座標を持つ地点Ｐ（xsize／３，Ｖｙ）と地点Ｂ（０，ysize）とを結ぶ直線Ｌ３を作成する。また、消失点Ｖ（Ｖｘ，Ｖｙ）と同じｙ座標を持つ他の地点Ｑ（xsize×２／３，Ｖｙ）と地点Ｃ（xsize，ysize）とを結ぶ直線Ｌ４を作成する。そして、それぞれの直線上における点（ｘ，ｙ）に対し、左右の領域についてそれぞれ得た区分近似直線上の点（ｙ，ｄ）を関連付け、（ｘ，ｙ，ｄ）の関係を作成する（ステップＳ１８２）。これにより、図５６に示す左右の直線Ｌ３，Ｌ４上における路面の高さを決定することができる（ステップＳ１８３）。
【０２１１】
なお、地点Ｐ，ＱのＸ座標を消失点ＶのＸ座標と同じ位置にすると、地点Ｐと地点Ｑとの間の路面高さが異なるときに、その地点で路面高さの急激な変化が生じ、不具合が起こす。逆に、地点Ｐ，ＱとのＸ方向距離が離れすぎると、路面の実情（画像内では路面が遠くに行くほど狭くなる）と整合しない。本変形例１においては、これらを考慮して、地点Ｐ，ＱのＸ座標は、それぞれ、xsize／３、ysize×２／３としている。
【０２１２】
次に、図５６に示した左右の直線Ｌ３，Ｌ４以外の路面の高さを決定する。まず、図５７に示すように、ひとつの画像走査ライン（視差画像Ｘ軸方向ライン）Ｌ５を設定する。この画像走査ラインＬ５と左の直線Ｌ３との交点を（ｘＬ，ｙ，ｄＬ）とし、この画像走査ラインＬ５と右の直線Ｌ４との交点を（ｘＲ，ｙ，ｄＲ）とする。画像走査ラインＬ５上における両交点の間の視差値は、図５８に示すように線形補間するとともに、画像走査ラインＬ５上における両交点の左右外側の視差値は、それぞれの交点における視差値ｄＲ，ｄＬと同じ視差値を割り当てる。これにより、路面幅方向に路面が傾斜している場合についても、その傾斜を反映させた路面形状を検出することができる（ステップＳ１７２，Ｓ１７３）。なお、画像走査ラインＬ５の開始端は地点Ｂと地点Ｃとを通るラインであり、終端は地点Ｐと地点Ｑとを通るラインである。
【０２１３】
〔変形例２〕
次に、前記実施形態についての他の変形例（以下「変形例２」という。）について説明する。
実際の路面の中には、路面の排水を良くするために路面の幅方向中央部分が高くなっているかまぼこ型の形状を示す路面がある。このような路面については、前記変形例１の場合には、路面幅方向における路面傾斜を適切に検出することができない。本変形例２においては、前記変形例１よりもより高精度に路面幅方向における路面傾斜を把握することができるものである。
【０２１４】
図５９は、変形例２において、路面の消失点と視差画像の左１／４の下端地点とを結ぶ直線Ｌ６と、路面の消失点と視差画像の右１／４の下端地点とを結ぶ直線Ｌ７とを境界にして左右に三分割した視差画像の例を示す説明図である。また、図６０は、図５９の視差画像に対し、ひとつの画像走査ラインＬ５を設定したときの説明図であり、図６１は、３つの直線Ｌ３，Ｌ４，Ｌ８と画像走査ラインとの両交点以外の画像走査ライン上の視差値を線形補間したときの説明図である。
【０２１５】
具体的に説明すると、図５９に示すように、視差画像上において、視差画像の下端を４等分したときの画像左側１／４の地点Ｌ（xsize／４，ysize）と地点Ｗとを結ぶ直線Ｌ６を設定するとともに、画像右側１／４の地点Ｒ（３／４×xsize，ysize）と地点Ｗとを結ぶ直線Ｌ７を設定する。本変形例２では、これらの直線Ｌ６，Ｌ７を境界にして、ＷＡＢＣＤの各点で囲まれた領域を、ＷＡＢＬの各点で囲まれた左領域と、ＷＬＲの各点で囲まれた中央領域と、ＷＲＣＤの各点で囲まれた右領域とに、三分割して、各領域をそれぞれ路面画像候補領域として設定する。その後、各路面画像候補領域に対し、それぞれ個別に上述した実施形態の方法でＶマップを作成する。その後、それぞれの領域のＶマップから、領域ごとに、上述した実施形態の方法で路面に対応する区分近似直線を得る。
【０２１６】
また、図６０に示すように、本変形例２においては、前記変形例１の場合と同様に、地点Ｐ（xsize／３，Ｖｙ）と地点Ｂ（０，ysize）とを結ぶ直線Ｌ３を作成するとともに、地点Ｑ（xsize×２／３，Ｖｙ）と地点Ｃ（xsize，ysize）とを結ぶ直線Ｌ４を作成するのほか、新たに、路面の消失点Ｖと視差画像の下端中心Ｍ（xsize／２，ysize）とを結ぶ直線Ｌ８を作成する。そして、それぞれの直線上における点（ｘ，ｙ）に対し、先に求めた３つの領域についてそれぞれ得た区分近似直線上の点（ｙ，ｄ）を関連付け、（ｘ，ｙ，ｄ）の関係を作成する。これにより、図６０に示す３つの直線Ｌ３，Ｌ４，Ｌ８上における路面の高さを決定することができる。
【０２１７】
次に、図６０に示した３つの直線Ｌ３，Ｌ４，Ｌ８以外の路面の高さを決定する。まず、前記変形例１と同様、図６０に示すように、ひとつの画像走査ライン（視差画像Ｘ軸方向ライン）Ｌ５を設定する。この画像走査ラインＬ５と左の直線Ｌ３との交点を（ｘＬ，ｙ，ｄＬ）とし、この画像走査ラインＬ５と右の直線Ｌ４との交点を（ｘＲ，ｙ，ｄＲ）とし、この画像走査ラインＬ５と中央の直線Ｌ８との交点を（ｘＭ，ｙ，ｄＭ）とする。画像走査ラインＬ５上における各交点の間の視差値は、図６１に示すように線形補間するとともに、画像走査ラインＬ５上における左右の交点の左右外側の視差値は、それぞれの左右交点における視差値ｄＲ，ｄＬと同じ視差値を割り当てる。これにより、路面幅方向に路面がかまぼこ形状に傾斜している場合についても、その傾斜を反映させた路面形状を検出することができる。
【０２１８】
このように路面高さを三つの区分近似直線を用いて近似することでさらに路面高さの近似精度を向上させることができる。なお、この破線で示した直線は固定ではなく、道路状況に応じて設定することにしてもかまわない。即ち、例えば図６２に示すように、ガードレールの下端としたり、白線の上に設定したりすることで少なくとも破線の上では、より正確な3次元路面高さを検出することができる。
【０２１９】
なお、変形例１及び変形例２は、視差画像をそれぞれ二分割、三分割する例を示しているが、同様の構成で視差画像の分割数を増やすことで、より精確な路面の形状の検出が可能となる。
【０２２０】
以上のように、本実施形態においては、路面高さ（自車両進行方向における路面の起伏や路面幅方向における路面傾斜など）を高い精度で検出することができる。路面高さの検出精度が高ければ、路面の高さを利用して検出するオブジェクトの検出精度も向上し、歩行者や他車両などのオブジェクト分類の精度も向上する結果、オブジェクトへの衝突回避の確率を向上させ、道路交通の安全に貢献することが可能である。
【符号の説明】
【０２２１】
１００…自車両、１０４…車両走行制御ユニット、１１０ａ，１１０ｂ…撮像部、１３２…視差画像生成部、１３５…路面形状検出部、１３８…リアルＵマップ生成部、１３９…孤立領域検出部。
【先行技術文献】
【特許文献】
【０２２２】
【特許文献１】ＷＯ２０１２／０１７６５０
【図１】
2015179302.tif 000003
【図２】
2015179302.tif 000004
【図３】
2015179302.tif 000005
【図４】
2015179302.tif 000006
【図５】
2015179302.tif 000007
【図６】
2015179302.tif 000008
【図７】
2015179302.tif 000009
【図８】
2015179302.tif 000010
【図９】
2015179302.tif 000011
【図１０】
2015179302.tif 000012
【図１１】
2015179302.tif 000013
【図１２】
2015179302.tif 000014
【図１３】
2015179302.tif 000015
【図１４】
2015179302.tif 000016
【図１５】
2015179302.tif 000017
【図１６】
2015179302.tif 000018
【図１７】
2015179302.tif 000019
【図１８】
2015179302.tif 000020
【図１９】
2015179302.tif 000021
【図２０】
2015179302.tif 000022
【図２１】
2015179302.tif 000023
【図２２】
2015179302.tif 000024
【図２３】
2015179302.tif 000025
【図２４】
2015179302.tif 000026
【図２５】
2015179302.tif 000027
【図２６】
2015179302.tif 000028
【図２７】
2015179302.tif 000029
【図２８】
2015179302.tif 000030
【図２９】
2015179302.tif 000031
【図３０】
2015179302.tif 000032
【図３１】
2015179302.tif 000033
【図３２】
2015179302.tif 000034
【図３３】
2015179302.tif 000035
【図３４】
2015179302.tif 000036
【図３５】
2015179302.tif 000037
【図３６】
2015179302.tif 000038
【図３７】
2015179302.tif 000039
【図３８】
2015179302.tif 000040
【図３９】
2015179302.tif 000041
【図４０】
2015179302.tif 000042
【図４１】
2015179302.tif 000043
【図４２】
2015179302.tif 000044
【図４３】
2015179302.tif 000045
【図４４】
2015179302.tif 000046
【図４５】
2015179302.tif 000047
【図４６】
2015179302.tif 000048
【図４７】
2015179302.tif 000049
【図４８】
2015179302.tif 000050
【図４９】
2015179302.tif 000051
【図５０】
2015179302.tif 000052
【図５１】
2015179302.tif 000053
【図５２】
2015179302.tif 000054
【図５３】
2015179302.tif 000055
【図５４】
2015179302.tif 000056
【図５５】
2015179302.tif 000057
【図５６】
2015179302.tif 000058
【図５７】
2015179302.tif 000059
【図５８】
2015179302.tif 000060
【図５９】
2015179302.tif 000061
【図６０】
2015179302.tif 000062
【図６１】
2015179302.tif 000063
【図６２】
2015179302.tif 000064