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