(57)【要約】  画像処理装置において、路面上の物体を撮像した複数の撮影画像における物体の距離に応じた画素値を有する距離画像を取得し、前記距離画像から画素値を抽出する抽出部と、前記抽出された画素値に基づいて、前記距離画像の垂直方向の距離値の頻度分布を示す垂直方向分布データを生成する第１の生成部と、前記距離画像に対応する垂直方向分布データの生成が完了する前に、前記距離画像における路面の高さを算出する算出部と、前記抽出された画素値と、前記算出された路面の高さに基づいて、前記距離画像の水平方向の距離値の頻度分布を示す水平方向分布データを生成する第２の生成部と、を備える。
2017090326.tif 000002
【特許請求の範囲】
【請求項１】
路面上の物体を撮像した複数の撮影画像における物体の距離に応じた画素値を有する距離画像を取得し、前記距離画像から画素値を抽出する抽出部と、
前記抽出された画素値に基づいて、前記距離画像の垂直方向の距離値の頻度分布を示す垂直方向分布データを生成する第１の生成部と、
前記距離画像に対応する垂直方向分布データの生成が完了する前に、前記距離画像における路面の高さを算出する算出部と、
前記抽出された画素値と、前記算出された路面の高さに基づいて、前記距離画像の水平方向の距離値の頻度分布を示す水平方向分布データを生成する第２の生成部と、
を備える画像処理装置。
【請求項２】
前記抽出部は、前記距離画像における前記路面が写るエリア、及び前記距離画像における前記物体の距離値が大きいエリアのうちの少なくとも一方である第１のエリアから、第１の割合で画素値を抽出し、前記距離画像の第２のエリアから、前記第１の割合よりも低い第２の割合で画素値を抽出する、請求項１記載の画像処理装置。
【請求項３】
前記算出部は、前記抽出部により前回取得された距離画像から生成された垂直方向分布データに基づいて、前記路面の高さを算出する、
請求項１または２記載の画像処理装置。
【請求項４】
前記算出部は、前記抽出部により以前に取得された複数の距離画像からそれぞれ生成された複数の垂直方向分布データに基づいて、前記路面の高さを算出する、
請求項１または２に記載の画像処理装置。
【請求項５】
前記第１の生成部は、前記第１のエリアの垂直方向分布データを生成した後、前記第２のエリアの垂直方向分布データを生成し、
前記算出部は、前記第２のエリアの垂直方向分布データの生成が完了する前に、前記第１のエリアの垂直方向分布データに基づいて、前記路面の高さを算出する、
請求項２記載の画像処理装置。
【請求項６】
前記第２の生成部は、前記第１のエリアの水平方向分布データを生成した後、前記第２のエリアの水平方向分布データを生成し、
前記第１のエリアの水平方向分布データに基づいて、前記物体を認識した後、前記第２のエリアの水平方向分布データに基づいて、前記物体を認識する認識部を備える、
請求項５記載の画像処理装置。
【請求項７】
複数の撮像部と、
前記複数の撮像部により路面上の物体を撮像した複数の撮影画像から、前記複数の撮影画像における物体の距離に応じた画素値を有する距離画像を生成する距離画像生成部と、
前記距離画像から画素値を抽出する抽出部と、
前記抽出された画素値に基づいて、前記距離画像の垂直方向の距離値の頻度分布を示す垂直方向分布データを生成する第１の生成部と、
前記距離画像に対応する垂直方向分布データの生成が完了する前に、前記距離画像における路面の高さを算出する算出部と、
前記抽出された画素値と、前記算出された路面の高さに基づいて、前記距離画像の水平方向の距離値の頻度分布を示す水平方向分布データを生成する第２の生成部と、
を備える撮像装置。
【請求項８】
移動体に搭載され、前記移動体の前方を撮像する複数の撮像部と、
前記複数の撮像部により路面上の物体を撮像した複数の撮影画像から、前記複数の撮影画像における物体の距離に応じた画素値を有する距離画像を生成する距離画像生成部と、
前記距離画像から画素値を抽出する抽出部と、
前記抽出された画素値に基づいて、前記距離画像の垂直方向の距離値の頻度分布を示す垂直方向分布データを生成する第１の生成部と、
前記距離画像に対応する垂直方向分布データの生成が完了する前に、前記距離画像における路面の高さを算出する算出部と、
前記抽出された画素値と、前記算出された路面の高さに基づいて、前記距離画像の水平方向の距離値の頻度分布を示す水平方向分布データを生成する第２の生成部と、
前記水平方向分布データに基づいて、前記移動体の制御を行う制御部と、
を備える移動体機器制御システム。
【請求項９】
画像処理装置が、
路面上の物体を撮像した複数の撮影画像における物体の距離に応じた画素値を有する距離画像を取得し、前記距離画像から画素値を抽出するステップと、
前記抽出された画素値に基づいて、前記距離画像の垂直方向の距離値の頻度分布を示す垂直方向分布データを生成するステップと、
前記距離画像に対応する垂直方向分布データの生成が完了する前に、前記距離画像における路面の高さを算出するステップと、
前記抽出された画素値と、前記算出された路面の高さに基づいて、前記距離画像の水平方向の距離値の頻度分布を示す水平方向分布データを生成するステップと、
を実行する、分布データ生成方法。
【請求項１０】
画像処理装置に、
路面上の物体を撮像した複数の撮影画像における物体の距離に応じた画素値を有する距離画像を取得し、前記距離画像から画素値を抽出するステップと、
前記抽出された画素値に基づいて、前記距離画像の垂直方向の距離値の頻度分布を示す垂直方向分布データを生成するステップと、
前記距離画像に対応する垂直方向分布データの生成が完了する前に、前記距離画像における路面の高さを算出するステップと、
前記抽出された画素値と、前記算出された路面の高さに基づいて、前記距離画像の水平方向の距離値の頻度分布を示す水平方向分布データを生成するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、撮像装置、機器制御システム、分布データ生成方法、及びプログラムに関する。
【背景技術】
【０００２】
自動車の安全性において、従来は歩行者や自動車と衝突したときに、いかに歩行者を守れるか、乗員を保護できるかの観点から自動車のボディー構造などの開発が行われてきた。しかしながら近年、情報処理技術、画像処理技術の発達により、高速に人や自動車等を検出する技術が開発されてきている。これらの技術を応用して、衝突する前に自動的にブレーキをかけ、衝突を未然に防ぐという自動車もすでに発売されている。【０００３】
自動的にブレーキをかけるには人や他車等の物体までの距離を測定する必要があり、そのために、ステレオカメラの画像を用いた測定が実用化されている。【０００４】
このステレオカメラの画像を用いた測定では、次のような画像処理を行うことで、人や他車等の物体の認識を行う技術が知られている（例えば、特許文献１参照）。【０００５】
まず、ステレオカメラで撮像した複数の画像から、画像の垂直方向の座標を一方の軸とし、画像の視差(disparity)を他方の軸とし、視差の頻度の値を画素値とするV-Disparity画像を生成する。次に、生成したV-Disparity画像から、路面を検出する。検出した路面を用いて、画像の水平方向の座標を縦軸とし、画像の視差を横軸とし、路面よりも高い位置の物体の視差値の頻度を画素値とするU-Disparity画像を生成する。そして、生成したU-Disparity画像に基づいて、人や他車等の物体の認識を行う。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１５−０７５８００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、従来技術には、ステレオカメラの視差画像のような距離情報を示す距離画像を用いて物体を認識するための画像処理に時間がかかるという問題がある。【０００８】
そこで、距離画像を用いて物体を認識するための画像処理を高速に行うことができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一実施の形態によれば、路面上の物体を撮像した複数の撮影画像における物体の距離に応じた画素値を有する距離画像を取得し、前記距離画像から画素値を抽出する抽出部と、前記抽出された画素値に基づいて、前記距離画像の垂直方向の距離値の頻度分布を示す垂直方向分布データを生成する第１の生成部と、前記距離画像に対応する垂直方向分布データの生成が完了する前に、前記距離画像における路面の高さを算出する算出部と、前記抽出された画素値と、前記算出された路面の高さに基づいて、前記距離画像の水平方向の距離値の頻度分布を示す水平方向分布データを生成する第２の生成部と、を備える画像処理装置が提供される。
【発明の効果】
【００１０】
少なくとも１つの実施の形態によれば、距離画像を用いて物体を認識するための画像処理を高速に行うことが可能となる。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係る車載機器制御システムの構成を示す模式図である。
【図２】撮像ユニット及び画像解析ユニットの構成を示す模式図である。
【図３】視差値から距離を算出する原理を説明するための図である。
【図４】実施形態に係る物体検出処理を行う機能ブロック図である。
【図５】第１の実施形態の視差値の頻度分布画像の生成処理の一例のシーケンス図である。
【図６】従来の視差値の頻度分布画像の生成処理のシーケンス図である。
【図７】路面の高さを算出する処理を説明するための図である。
【図８】視差画素データ抽出処理のフローチャートである。
【図９】視差画像データを複数のエリアに分割する処理を説明する図である。
【図１０】視差画素データを抽出する処理について説明する図である。
【図１１Ａ】視差画像データを複数のエリアに分割する別の処理を説明する図である。
【図１１Ｂ】視差画像データを複数のエリアに分割する別の処理を説明する図である。
【図１２Ａ】視差画像データの例を示す図である。
【図１２Ｂ】視差画像データから生成されるＶマップの例を示す図である。
【図１３Ａ】一方の撮像部で撮像された基準画像としての撮影画像の例を示す図である。
【図１３Ｂ】撮影画像に対応するＶマップの例を示す図である。
【図１４】路面形状検出部内の機能ブロック図である。
【図１５】第１路面候補点検出処理及び第２路面候補点検出処理の検出方法を説明するための図である。
【図１６】路面候補点検出処理のフローチャートである。
【図１７】Ｖマップを３つの区間（視差値区画）に分けした例を示す説明図である。
【図１８】Ｖマップを３つの区間（視差値区画）に分けした他の例を示す説明図である。
【図１９Ａ】最終区間が狭い場合のＶマップの例を示す図である。
【図１９Ｂ】最終区間をひとつ前の区間と結合した場合のＶマップの例を示す図である。
【図２０】区分直線近似処理のフローチャートである。
【図２１Ａ】Ｖマップの当初の区間を説明する図である。
【図２１Ｂ】Ｖマップの第１区間を延長した場合の例を示す図である。
【図２２Ａ】Ｖマップの当初の区間を説明する図である。
【図２２Ｂ】Ｖマップの第２区間を延長した場合の例を示す図である。
【図２３Ａ】近似直線がＶマップの区間境界で連続にならない状態を示す図である。
【図２３Ｂ】近似直線がＶマップの区間境界において連続になるように修正した例を示す図である。
【図２４】基準画像の一例を模式的に表した画像例を示す図である。
【図２５Ａ】頻度Ｕマップの例を示す図である。
【図２５Ｂ】高さＵマップの例を示す図である。
【図２６】Ｕマップに対応するリアルＵマップを示す図である。
【図２７】Ｕマップの横軸の値からリアルＵマップの横軸の値を求める方法を説明するための図である。
【図２８】孤立領域検出処理のフローチャートである。
【図２９】孤立領域が内接する矩形領域を設定したリアル頻度Ｕマップを示す図である。
【図３０】矩形領域に対応する走査範囲を設定した視差画像を示す図である。
【図３１】オブジェクト領域を設定した視差画像を示す図である。
【図３２】視差画像の対応領域検出部及びオブジェクト領域抽出部で行われる処理のフローチャートである。
【図３３】オブジェクトタイプの分類を行うためのテーブルデータの一例を示す図である。
【図３４】第２の実施形態の視差値の頻度分布画像の生成処理の一例のシーケンス図である。
【発明を実施するための形態】
【００１２】
以下、実施形態に係る画像処理装置を有する移動体機器制御システムについて説明する。
【００１３】
〈車載機器制御システムの構成〉
図１は、本発明の実施形態に係る移動体機器制御システムとしての車載機器制御システムの構成を示す図である。
【００１４】
この車載機器制御システム１は、移動体である自車両１００に搭載されており、撮像ユニット１０１、画像解析ユニット１０２、表示モニタ１０３、及び車両走行制御ユニット１０４からなる。車載機器制御システム１は、撮像ユニット１０１で、移動体の前方の撮像領域を撮像した画像から、自車両前方の路面の相対的な高さ情報（相対的な傾斜状況を示す情報）が検知される。車載機器制御システム１は、検知された相対的な高さ情報から、自車両前方の路面の３次元形状を検出し、その検出結果を利用して移動体や各種車載機器の制御を行う。移動体の制御には、例えば、警告の報知、自車両１００のハンドルの制御、または自車両１００のブレーキが含まれる。
【００１５】
撮像ユニット１０１は、例えば、自車両１００のフロントガラス１０５のルームミラー（図示せず）付近に設置される。撮像ユニット１０１の撮像によって得られる撮像画像データ等の各種データは、画像処理手段としての画像解析ユニット１０２に入力される。
【００１６】
画像解析ユニット１０２は、撮像ユニット１０１から送信されてくるデータを解析する。画像解析ユニット１０２は、自車両１００自車両の真下に位置する路面部分に対する走行方向の路面上の各地点の相対的な高さを検出し、自車両前方の路面の３次元形状を把握する。また、自車両前方の他車両、歩行者、各種障害物などを認識する。
【００１７】
画像解析ユニット１０２の解析結果は、表示モニタ１０３及び車両走行制御ユニット１０４に送られる。表示モニタ１０３は、撮像ユニット１０１で撮像した画像及び解析結果を表示する。車両走行制御ユニット１０４は、画像解析ユニット１０２の解析結果に基づいて、例えば、自車両１００の運転者へ警告を報知したり、自車両のハンドルやブレーキを制御するなどの走行支援制御を行う。
【００１８】
〈撮像ユニット１０１及び画像解析ユニット１０２の構成〉
図２は、撮像ユニット１０１及び画像解析ユニット１０２の構成を示す図である。
【００１９】
撮像ユニット１０１は、撮像手段としての２つの撮像部１１０ａ，１１０ｂを備えたステレオカメラで構成されており、２つの撮像部１１０ａ，１１０ｂは同一のものである。各撮像部１１０ａ，１１０ｂは、それぞれ、撮像レンズ１１１ａ，１１１ｂと、受光素子が２次元配置された画像センサ１１３ａ，１１３ｂを含んだセンサ基板１１４ａ，１１４ｂと、センサ基板１１４ａ，１１４ｂから出力されるアナログ電気信号（画像センサ１１３ａ，１１３ｂ上の各受光素子が受光した受光量に対応する電気信号）をデジタル電気信号に変換した撮像画像データを生成して出力する信号処理部１１５ａ，１１５ｂとから構成されている。撮像ユニット１０１からは、輝度画像データと視差画像データが出力される。
【００２０】
また、撮像ユニット１０１は、ＦＰＧＡ（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）、ＮＣＣ（Normalized cross correlation）などの方法を用いることができる。なお、マッチング処理では画素単位での視差値しか算出できないので、１画素未満のサブピクセルレベルの視差値が必要な場合には推定値を用いる必要がある。その推定方法としては、例えば、等角直線方式、二次曲線方式等を利用することができる。
【００３３】
《オブジェクトトラッキング》
次に、オブジェクトトラッキング部１３３は、過去の撮像フレームの画像検出処理で検出されたオブジェクトを追跡する処理を実行する。
【００３４】
本実施形態においては、過去の画像検出処理で検出されたオブジェクトの情報を示すオブジェクトデータリスト１３５が保存される。オブジェクトデータリスト１３５は、検出したオブジェクトデータの最新情報（最新の位置、大きさ、距離、相対速度、視差情報）に加え、オブジェクト予測データ（次の撮像フレームにおいて当該オブジェクトがどの位置にいるかを推測する情報）、オブジェクトトラッキング部１３３や後述のオブジェクトマッチング部１４８で利用するオブジェクト特徴量、当該オブジェクトがどれだけのフレーム数検出されたか又は連続して検出されなかったかを示す検出／未検出フレーム数、当該オブジェクトが追跡すべき対象かどうかを示す要追跡確度（安定フラグ：Ｓ）などを含む。
【００３５】
オブジェクト選択部１３４は、オブジェクトデータリスト１３５のオブジェクトについて、当該オブジェクトの存在確度、当該オブジェクトの位置等に基づいて、当該オブジェクトを追跡するか否かを決定する。具体的には、オブジェクトデータリスト１３５のオブジェクト予測データに基づいて当該オブジェクトが位置すると予測される視差画像データ中の予測範囲を設定し、その予測範囲内における当該オブジェクトの高さを特定した後、オブジェクトデータリスト１３５のオブジェクト特徴量を参照して、特定した高さから当該オブジェクトの幅を特定し、特定した幅から視差画像データ上におけるオブジェクトの横方向位置を推定する。このようにして推定したオブジェクトの横方向位置が所定の追跡対象条件を満たせば、当該オブジェクトを追跡対象として決定し、その結果をオブジェクトトラッキング部１３３に出力する。例えば、推定したオブジェクトの横方向位置から、オブジェクトが画面内に存在している確度が高いと認識される場合、当該オブジェクトの位置が追跡対象とするのにふさわしい位置である等の場合、追跡対象条件が満たされる。なお、オブジェクト選択部１３４の結果に基づき、オブジェクトデータリスト１３５の情報を更新する。
【００３６】
オブジェクトトラッキング部１３３は、オブジェクト選択部１３４により追跡対象として決定されたオブジェクトについて追跡処理を行う。この追跡処理のため、オブジェクトトラッキング部１３３には、視差画像生成部１３２で生成された視差画像データと、オブジェクト選択部１３４で決定されたオブジェクトのオブジェクト予測データ及びオブジェクト特徴量が入力される。
【００３７】
《視差画像補間処理》
視差画像生成処理を行ったら、次に画像解析ユニット１０２によって構成される視差補間部１３６において、視差画像補間処理を行う。
【００３８】
視差値ｄは水平方向の位置ズレの度合いなので、撮像画像３１０の水平エッジ部分や輝度変化の少ない部分では視差が計算できないため、車両を一つのオブジェクトとして認識できなくなる。そこで、視差補間部１３６では、例えば、所定の条件を満たした場合に、視差画像の中の２点間の画素を補間する。視差画像の２点間の実距離が所定の長さより短く、２点間に他の視差値が存在しないなどの場合に、この条件が満たされる。
【００３９】
［第１の実施形態］
＜＜視差値の頻度分布画像の生成処理＞＞
次に、視差画像データに基づいて、視差値の頻度分布画像が生成される。ここでは、以下の処理が行われる。
【００４０】
路面形状検出部１３９及び路面高さテーブル算出部１４０は、視差画像に対応するＶマップの生成が完了するよりも前に、路面の高さを算出しておく。例えば、過去の視差画像データ（例えば前回取得した視差画像のフレーム）から生成された、視差画像の垂直方向の視差値の頻度分布を示すＶマップ（「垂直方向分布データ」の一例）に基づいて、事前に路面の高さを算出しておく。なお、Ｖマップに基づいて、路面の高さを算出する処理の詳細例は、路面形状検出処理及び路面高さテーブル算出処理として後述する。また、本実施形態における視差画像の垂直方向とは、厳密な鉛直方向を意味するものではなく、視差画像の生成に用いられる自車両前方の輝度画像におけるｙ方向を意味している。
【００４１】
視差画素データ抽出部１３７は、視差画像データを取得し、視差画像の所定の領域から、所定の割合で画素値（視差画素データ）を抽出する。視差画素データ抽出部１３７は、例えば、視差画像における路面の領域、及び視差画像における物体の視差値が大きい領域（自車からの距離が近いエリア）の少なくとも一方のである第１の領域から、第１の割合で画素値を抽出し、視差画像の第２の領域から、第１の割合よりも低い第２の割合で画素値を抽出する。なお、視差画素データ抽出処理の詳細例は後述する。
【００４２】
Ｖマップ生成部１３８は、視差画素データ抽出部１３７により抽出された各画素値に基づいて、Ｖマップを生成する。なお、Ｖマップ生成処理の詳細例は後述する。
【００４３】
Ｕマップ生成部１４１は、視差画素データ抽出部１３７により抽出された各画素値と、路面高さテーブル算出部１４０により算出された路面の高さに基づいて、視差画像の水平方向の視差値の頻度分布を示すＵマップ（「水平方向分布データ」の一例）を生成する。なお、Ｕマップ生成処理の詳細例は後述する。
【００４４】
リアルＵマップ生成部１４２は、Ｕマップ生成部１４１が生成したＵマップに基づいて、視差画像の水平方向の視差値の頻度分布を示すリアルＵマップ（「水平方向分布データ」の他の一例）を生成する。なお、リアルＵマップ生成処理の詳細例は後述する。なお、リアルＵマップ生成部１４２は、Ｕマップの代わりに、視差画素データ抽出部１３７により抽出された各画素値と、路面高さテーブル算出部１４０により算出された路面の高さに基づいて、リアルＵマップを生成する構成としてもよい。その場合、Ｕマップの生成と、リアルＵマップの生成は、並行して行う構成としてもよい。
【００４５】
次に、図５を参照して、視差値の頻度分布画像の生成処理の詳細例について説明する。図５は、第１の実施形態の視差値の頻度分布画像の生成処理の一例のシーケンス図である。
【００４６】
視差画素データ抽出部１３７は、視差画像のｎ番目のフレームを取得する（ステップＳ１）。
【００４７】
視差画素データ抽出部１３７は、ｎ番目のフレームの視差画像データから、画素値（視差画素データ）を抽出する（ステップＳ２）。
【００４８】
視差画素データ抽出部１３７は、抽出した画素値を、Ｖマップ生成部１３８及びＵマップ生成部１４１にそれぞれ出力する（ステップＳ３−１、Ｓ３−２）。
【００４９】
Ｕマップ生成部１４１は、路面高さテーブル算出部１４０から、前回取得されたフレーム（ｎ−１番目のフレーム）に対応する路面の高さのデータを取得する（ステップＳ４）。
【００５０】
Ｕマップ生成部１４１は、視差画素データ抽出部１３７により抽出された各画素値と、路面高さテーブル算出部１４０により算出された路面の高さに基づいて、Ｕマップを生成するＵマップ生成処理を行う（ステップＳ５）。
【００５１】
Ｕマップ生成部１４１によるステップＳ４、Ｓ５の処理と並行して、Ｖマップ生成部１３８は、Ｕマップ生成部１４１によるステップＳ４、Ｓ５の処理と並行して、視差画素データ抽出部１３７により抽出された各画素値に基づいて、Ｖマップを生成するＶマップ生成処理を行う（ステップＳ６）。
【００５２】
路面形状検出部１３９及び路面高さテーブル算出部１４０は、ステップＳ６で生成された、ｎ番目のフレームに対応するＶマップを取得する（ステップＳ７）。そして、当該Ｖマップに基づいて、路面形状検出処理及び路面高さテーブル算出処理を行い、ｎ番目のフレームに対応する路面の高さを算出する（ステップＳ８）。
【００５３】
次に、図６を参照して、上述した実施形態の効果を説明するために、従来の視差値の頻度分布画像の生成処理について説明する。図６は、従来の視差値の頻度分布画像の生成処理のシーケンス図である。
【００５４】
視差画素データ抽出部１３７は、視差画像データを取得する（ステップＳ１１）。
【００５５】
視差画素データ抽出部１３７は、視差画像データから、Ｖマップ生成用の画素値（視差画素データ）を抽出する（ステップＳ１２）。
【００５６】
視差画素データ抽出部１３７は、抽出した画素値を、Ｖマップ生成部１３８に出力する（ステップＳ１３）。
【００５７】
Ｖマップ生成部１３８は、視差画素データ抽出部１３７により抽出された各画素値に基づいて、Ｖマップを生成するＶマップ生成処理を行う（ステップＳ１４）。
【００５８】
路面形状検出部１３９及び路面高さテーブル算出部１４０は、生成されたＶマップを取得する（ステップＳ１５）。そして、生成されたＶマップに基づいて、路面形状検出処理及び路面高さテーブル算出処理を行い、路面の高さを算出する（ステップＳ１６）。
【００５９】
視差画素データ抽出部１３７は、視差画像データから、Ｕマップ生成用の画素値（視差画素データ）を抽出する（ステップＳ１７）。
【００６０】
視差画素データ抽出部１３７は、抽出した画素値を、Ｕマップ生成部１４１に出力する（ステップＳ１８）。
【００６１】
Ｕマップ生成部１４１は、路面高さテーブル算出部１４０から、路面の高さのデータを取得する（ステップＳ１９）。
【００６２】
Ｕマップ生成部１４１は、視差画素データ抽出部１３７により抽出された各画素値、および、路面高さテーブル算出部１４０により算出された路面の高さに基づいて、Ｕマップを生成するＵマップ生成処理を行う（ステップＳ２０）。
【００６３】
従来は、あらたに取得した視差画像データに基づいて路面の高さを算出するため、Ｖマップを生成して路面の高さを算出した後、Ｕマップを生成していた。一方、実施形態では、Ｖマップを生成する処理と、Ｕマップを生成する処理を並行に行うことができる。
【００６４】
また、従来は、Ｖマップを生成する際と、Ｕマップを生成する際の二度、視差画像データにアクセスし、画素値を抽出していた。一方、実施形態では、一度の視差画像データへのアクセスにより、ＶマップとＵマップを生成できる。このため、例えば、Ｖマップを生成するために抽出される画素とＵマップを生成するために抽出される画素が重複する場合は、視差画像データの画素を抽出する回数を減らすことができる。
【００６５】
したがって、実施形態では、ステレオカメラの画像を用いて物体を認識するための画像処理を高速に行うことができる。
【００６６】
＜変形例＞
路面高さテーブル算出部１４０による、事前に路面の高さを算出する処理は、例えば以下のような処理でもよい。
【００６７】
例えば、以前に取得した複数の視差画像データに基づいて生成した複数のＶマップに基づいて路面の高さが算出する構成としてもよい。この場合、図７に示すように、路面の高さと、時間（取得した視差画像のフレームの順番）とに基づいて、カーブフィッティングにより近似曲線を決定し、現在の路面の高さを算出する構成としてもよい。図７に示す例では、以前に取得したｍ個の各視差画像データのＶマップに基づいて算出した各路面の高さと、各視差画像データの順番に基づいて近似曲線５５１を決定し、今回の各視差画像データの路面の高さ５５２を算出する。それにより、例えば坂道を走行するような場合、路面の算出の精度をより高めることができる。
【００６８】
また、例えば、後述する基準直線６１１を、現在の路面の高さとして算出する構成としてもよい。
【００６９】
さらに、例えば、既に生成されたＶマップのデータがない場合は、次のような処理が行われるようにしてもよい。すなわち、視差画像の所定の領域（例えば、上述した第１の領域）の画素値に基づいて当該エリアのＶマップを生成し、路面の高さを算出する。そして、視差画像に対する完全なＶマップが生成された後は、上述したように、以前の１または複数の視差画像データに基づいて生成されたＶマップに基づいて算出する構成としてもよい。それにより、例えば、起動時に、以前の視差画像データに基づいて生成したＶマップのデータが消去されている場合でも、Ｕマップを生成する処理を並行して行うことができる。
【００７０】
《視差画素データ抽出処理》
次に、上述した視差画素データ抽出処理の詳細例について説明する。
【００７１】
視差画素データ抽出部１３７は、視差画像生成部１３２によって生成された視差画像データを取得し、視差画像データに含まれる各視差画素データにおけるｘ方向位置とｙ方向位置と視差値ｄとの組（ｘ，ｙ，ｄ）を、視差画像の各部分に応じた割合で抽出する。視差画素データ抽出部１３７は、例えば、視差画像を水平方向に所定数の領域に区分する。各領域の中で、垂直方向（上下方向）で一番下の部分、垂直方向で一番上の部分、中心に近い部分（「距離画像の中で物体の距離値が大きくなる部分」の一例）が定義される。中心に近い部分での抽出割合が最も高くなり、一番下の部分の抽出割合が最も低くなるように、各部分での画素値の抽出割合が設定される。
【００７２】
次に、図８を参照し、視差画素データ抽出部１３７の処理の一例について説明する。図８は、視差画素データ抽出部１３７の視差画素データ抽出処理のフローチャートである。
【００７３】
視差画素データ抽出部１３７は、視差画像データを、鉛直方向の所定の各位置で、水平方向（視差画像のＸ軸）に並行な直線により複数の部分に分割する（ステップＳ５１）。
【００７４】
分割された各部分に対応して設定された抽出割合に応じた割合で、視差画素データを抽出する（ステップＳ５２）。
【００７５】
抽出した視差画素データを、Ｕマップ生成部１４１及びリアルＵマップ生成部１４２に出力する（ステップＳ５３）。
【００７６】
次に、図９を参照して、図８のステップＳ１０１の、視差画像データを複数の部分に分割する処理について説明する。
【００７７】
図９は、水平方向に平行な直線により、視差画像データを複数の部分に分割する処理を説明する図である。なお、図９では、一例として５つの部分（以降、適宜、上から順に部分５１１〜部分５１５と称する）に等間隔に分割しているが、分割する数はいくつでも良い。また、各部分の間隔は等しくなくとも良い。
【００７８】
次に、図１０を参照して、図８のステップＳ１０２の、視差画素データを抽出する処理について説明する。
【００７９】
図１０の例では、一番上の部分５１１（「第２の部分」の一例）は、抽出割合の重みが例えば「低」（「第２の割合」の一例）と設定されており、部分５１１に含まれる視差画素データは低い割合で抽出する。部分５１１に物体が存在する場合、その物体は、例えば、トラックなどの大型車の一部と考えられ、この部分にのみ物体が存在している可能性は低い。従って、部分５１１は、物体を認識するための重要性は低いと考えられる。このため、重要性の低い部分の視差画素データを抽出割合が小さく設定される。
【００８０】
部分５１２は、抽出割合の重みが例えば「中」と設定されており、視差画素データが中程度の割合で抽出される。部分５１２に物体が存在する場合、その物体は、遠方の車や人等であると考えられる。従って、部分５１２は、部分５１１より、物体を認識するための重要性が高いと考えられる。このため、視差画素データを抽出割合が中程度に設定される。
【００８１】
部分５１３、５１４（「第１の部分」の一例）は、抽出割合の重みが例えば「高」（「第１の割合」の一例）と設定されており、視差画素データが高い割合で抽出される。部分５１２に物体が存在する場合、その物体は、近くにある車や人等であると考えらる。従って、部分５１３、５１４は、部分５１２より、物体を認識するための重要性が高いと考えられる。このため、視差画素データを抽出割合が高く設定される。
【００８２】
一番下の部分５１５（「第３の部分」の一例）は、抽出割合の重みが例えば「なし」（「第３の割合」の一例）と設定されており、部分５１５に含まれる視差画素データは抽出しない。それにより、路面の視差画素データを抽出する処理を省くことができる。
【００８３】
視差画素データ抽出部１３７は、視差画像データの画素数が、例えば、１２８０×８００画素の場合、抽出割合の重みが「低」、「中」、「高」に設定されたそれぞれの部分について、全画素の１／１００、１／５０、１／３の画素の画素値（視差画素データ）を抽出する。
【００８４】
＜変形例＞
視差画素データ抽出部１３７は、垂直方向の各部分の抽出割合を、水平方向の領域に応じて変える構成としてもよい。その場合、視差画素データ抽出部１３７は、例えば、自車両１００の左右両側にある障害物や子供等を確実に検出できるように、右下部分および左下部分の抽出割合を比較的大きくする構成としてもよい。
【００８５】
また、後述する路面の抽出範囲６１２に対応する画素の座標を含む部分、すなわち、視差画像にて路面が写る部分（「第１の部分」の一例）の重みをより高くする構成としてもよい。その場合、例えば図１１Ａおよび図１１Ｂのように、異なる矩形を組み合わせた形状や台形の部分を設定し、当該部分の重みをより高くする構成としてもよい。図１１Ａは、視差画像にて路面が写る部分を含む、異なる矩形を組み合わせた形状の部分５１４Ａの重みを「最高」とした場合の例である。図１１Ｂは、視差画像にて路面が写る部分を含む台形の部分５１４Ａの重みを「最高」とした場合の例である。なお、路面が写る部分は、予め設定しておく構成としてもよいし、例えば路面形状検出処理の検出結果に応じて動的に設定する構成としてもよい。
【００８６】
視差画像にて路面が写るエリアの抽出割合の重みをより高くすることにより、Ｖマップを生成するために必要な画素とＵマップを生成するために必要な画素が重複する頻度が高くなり、認識処理の高速化、及び認識精度の向上が可能となる。
【００８７】
《Ｖマップ生成処理》
次に、上述したＶマップ生成処理の詳細例について説明する。
【００８８】
Ｖマップ生成部１３８は、Ｖマップを生成するＶマップ生成処理を実行する。視差画像データに含まれる各視差画素データは、ｘ方向位置とｙ方向位置と視差値ｄとの組（ｘ，ｙ，ｄ）で示される。これを、Ｘ軸にｄ、Ｙ軸にｙ、Ｚ軸に頻度ｆを設定した三次元座標情報（ｄ，ｙ，ｆ）に変換したものを視差ヒストグラム情報として生成する。あるいは、三次元座標情報（ｄ，ｙ，ｆ）の頻度ｆが所定の閾値を超えるものが選択されて、視差ヒストグラム情報として生成されるようにしてもよい。本実施形態の視差ヒストグラム情報は、三次元座標情報（ｄ，ｙ，ｆ）からなり、この三次元ヒストグラム情報をＸ−Ｙの２次元座標系に分布させたものを、Ｖマップ（視差ヒストグラムマップ、V-disparity map）と呼ぶ。
【００８９】
具体的に説明すると、Ｖマップ生成部１３８は、画像を上下方向に複数分割して得られる視差画像データの各行について、視差値頻度分布を計算する。この視差値頻度分布を示す情報が視差ヒストグラム情報である。
【００９０】
図１２Ａおよび図１２Ｂは視差画像データ、及びその視差画像データから生成されるＶマップについて説明するための図である。ここで、図１２Ａは視差画像の視差値分布の一例を示す図であり、図１２Ｂは、図１２Ａの視差画像の行毎の視差値頻度分布を示すＶマップを示す図である。
【００９１】
図１２Ａに示すような視差値分布をもった視差画像データが入力されたとき、Ｖマップ生成部１３８は、行毎の各視差値の個数である視差値頻度分布を計算し、これを視差ヒストグラム情報として出力する。このようにして得られる各行の視差値頻度分布の情報を、Ｙ軸に視差画像上のｙ方向位置（撮像画像の上下方向位置）をとりＸ軸に視差値をとった二次元座標系で表すことで、図１２Ｂに示すようなＶマップを得ることができる。このＶマップは、頻度ｆに応じた画素値をもつ画素が二次元座標系に分布した画像として表現することもできる。
【００９２】
図１３Ａは、一方の撮像部で撮像された基準画像としての撮影画像の例を示す図である。図１３Ｂは、図１３Ａの撮影画像に対応するＶマップを示す図である。即ち、図１３Ａに示すような撮影画像から図１３Ｂに示すＶマップが生成される。Ｖマップでは、路面より下の領域には視差は検出されないので、斜線で示した領域Ａで視差がカウントされることはない。
【００９３】
図１３Ａに示す画像では、路面４０１と、自車両の前方に存在する先行車両４０２と、路外に存在する電柱４０３が映し出されている。また、図１３Ｂに示すＶマップには、路面５０１、先行車両５０２、及び電柱５０３が表示されている。
【００９４】
この画像例は、自車両の前方路面が相対的に平坦である場合、即ち、自車両の前方路面が自車両の真下の路面部分と平行な面を自車両前方へ延長して得られる仮想の基準路面に一致している場合のものである。この場合、画像の下部に対応するＶマップの下部において、高頻度の視差値は、画像の下側では視差値が大きく、画像の上側では視差値が小さくなるように略直線状に分布している。このような分布を示す画素は、視差画像の各行において占有率が高く、しかも画像の上側向かうほど距離が連続的に遠くなる識別対象物を撮像した画素であると言える。
【００９５】
撮像部１１０ａでは自車両前方領域を撮像するため、図１３Ａに示すように、画像の上側へ向かうほど路面の視差値ｄは小さくなる。また、同じ行内において、路面を映し出す画素はほぼ同じ視差値ｄを持つことになる。従って、Ｖマップ上において上述した略直線状に分布する高頻度の視差値に対応する点は、路面を映し出す画素が持つ特徴に対応したものである。よって、Ｖマップ上における高頻度の点を近似して得られる近似直線上又はその近傍に分布する点の画素は、高い精度で、路面を映し出している画素であると推定することができる。また、各画素に対応する路面部分までの距離は、当該近似直線上の対応点の視差値ｄから高精度に求めることができる。
【００９６】
《路面形状検出処理》
次に、上述した路面形状検出処理の詳細例について説明する。
【００９７】
路面形状検出部１３９は、Ｖマップ生成部１３８においてＶマップ情報が生成されたら、路面に対応する視差値及びｙ方向位置の組（Ｖマップ要素）が示す特徴、すなわち、撮像画像の上側に向かうほど視差値が低くなるという特徴を示すＶマップ上で直線近似する処理を行う。なお、路面が平坦な場合には一本の直線で十分な精度で近似可能であるが、車両進行方向において路面の傾斜状況が変化するような路面については、一本の直線で十分な精度の近似は難しい。したがって、本実施形態においては、Ｖマップ情報を視差値に応じて２以上の視差値区画に区分けし、各視差値区画についてそれぞれ個別に直線近似を行う。
【００９８】
図１４は、路面形状検出部１３９内の機能ブロック図である。本実施形態の路面形状検出部１３９は、Ｖマップ生成部１３８から出力されるＶマップ情報を受け取ると、まず、路面候補点検出部１３９ａにおいて、路面に対応するＶマップ要素が示す特徴、即ち、撮像画像の上側に向かうほど視差値が低くなるという特徴を示すＶマップ上の高頻度の点を、路面候補点として検出する。
【００９９】
このとき、本実施形態では、路面候補点検出部１３９ａでの路面候補点検出処理は、Ｖマップ情報を視差値に応じて２以上の視差値区画に分け、各視差値区画にそれぞれ対応した決定アルゴリズムに従って各視差値区画における路面候補点を決定する。例えば、所定の基準距離に対応する視差値を境に、ＶマップをＸ軸方向（横軸方向）に２つの領域、すなわち視差値の大きい領域と小さい領域に分け、その領域ごとに異なる路面候補点検出アルゴリズムを用いて路面候補点を検出する。なお、視差値の大きい近距離領域については、後述する第１路面候補点検出処理を行い、視差の小さい遠距離領域については、後述する第２路面候補点検出処理を行う。
【０１００】
ここで、前記のように視差の大きい近距離領域と視差の小さい遠距離領域とで、路面候補点検出処理の方法を変える理由について説明する。図１３Ａに示したように、自車両１００の前方を撮像した撮像画像で、近距離領域では路面の占有面積が大きく、路面に対応する画素数が多いので、Ｖマップ上の頻度が大きい。これに対し、遠距離領域では路面の占有面積が小さく、路面に対応する画素数が少ないので、Ｖマップ上の頻度が小さい。すなわち、Ｖマップにおいて、路面に対応する点の頻度値は、遠距離では小さく、近距離では大きい。そのため、例えば同じ頻度閾値を用いて路面候補点を検出しようとすると、近距離領域については路面候補点を適切に検出できるが、遠距離領域については路面候補点が適切に検出できないおそれがある。あるいは、近距離領域のノイズ成分が多く検出され、近距離領域の路面検出精度が劣化するおそれがある。そこで、本実施形態では、Ｖマップを近距離領域と遠距離領域とに区分し、各領域についてそれぞれ適した基準や検出方法を用いて路面候補点を検出することにより、両領域の路面検出精度を高く維持している。
【０１０１】
図１５は、第１路面候補点検出処理及び第２路面候補点検出処理の検出方法を説明するための図である。
【０１０２】
第１路面候補点検出処理では、各視差値ｄについて、所定の検索範囲内でｙ方向位置を変えながら、Ｖマップ情報に含まれる各Ｖマップ要素（ｄ，ｙ，ｆ）の頻度値ｆが第１頻度閾値よりも大きいＶマップ要素を探索する。探索されたＶマップ要素の中で、最も頻度値ｆが大きいＶマップ要素が当該視差値ｄについての路面候補点として決定される。このときの第１頻度閾値は、低めに設定するのが好ましい。路面に対応するＶマップ要素が誤って除外されないようにするためである。本実施形態においては、上述したとおり、Ｖマップ生成部１３８において路面に対応するＶマップ要素を抽出しているので、第１頻度閾値を低めに設定しても、路面に対応しないＶマップ要素が路面候補点として決定される事態は生じにくい。
【０１０３】
ここで、各視差値ｄについてｙ値を変化させる検索範囲は、上述したＶマップ生成部１３８における抽出範囲６１２、すなわち、基準直線６１１の画像上下方向位置ｙｐを中心にとした画像上下方向へ±δの範囲である。具体的には、「ｙｐ−δｎ」から「ｙｐ＋δｎ」の範囲を探索範囲とする。これにより、探索すべきｙ値の範囲が限定され、高速な路面候補点検出処理を実現できる。なお、基準直線６１１は、例えば、前回（前フレーム）で検出された路面についての近似直線としてもよい。また、基準直線６１１は、路面候補点が現れる領域を想定して設定された直線であって、予め記憶させた直線としてもよい。
【０１０４】
一方、第２路面候補点検出処理は、第１頻度閾値の変わりにこれとは別の第２頻度閾値を用いる点を除いて、前記第１路面候補点検出処理と同じである。すなわち、第２路面候補点検出処理では、各視差値ｄについて、所定の検索範囲内でｙ方向位置を変えながら、Ｖマップ情報に含まれる各Ｖマップ要素（ｄ，ｙ，ｆ）の頻度値ｆが第２頻度閾値よりも大きいＶマップ要素を探索する。探索されたＶマップ要素の中で、最も頻度値ｆが大きいＶマップ要素が当該視差値ｄについての路面候補点として決定される。
【０１０５】
図１６は、路面候補点検出部１３９ａで行う路面候補点検出処理の流れを示すフローチャートである。
【０１０６】
入力されるＶマップの情報について、例えば視差値ｄの大きい順に路面候補点の検出を行い、各視差値ｄについての路面候補点（ｙ，ｄ）を検出する。視差値ｄが所定の基準距離に対応する基準視差値よりも大きい場合（ステップＳ８１：YES）、上述した第１路面候補点検出処理を行う。すなわち、当該視差値ｄに応じたｙの探索範囲（「ｙｐ−δｎ」〜「ｙｐ＋δｎ」）を設定し（ステップＳ８２）、この探索範囲内における頻度値ｆが第１頻度閾値よりも大きいＶマップ要素（ｄ，ｙ，ｆ）を抽出する（ステップＳ８３）。そして、抽出したＶマップ要素のうち、最大の頻度値ｆを持つＶマップ要素（ｄ，ｙ，ｆ）を、当該視差値ｄの路面候補点として検出する（ステップＳ８４）。
【０１０７】
そして、視差値ｄが基準視差値以下になるまで第１路面候補点検出処理を繰り返し行い（ステップＳ８５）、視差値ｄが基準視差値以下になったら（ステップＳ８１：NO）、上述した第２路面候補点検出処理で路面候補点検出を行う。すなわち、第２路面候補点検出処理でも当該視差値ｄに応じたｙの探索範囲（「ｙｐ−δｎ」〜「ｙｐ＋δｎ」）を設定し（ステップＳ８６）、この探索範囲内における頻度値ｆが第１頻度閾値よりも大きいＶマップ要素（ｄ，ｙ，ｆ）を抽出する（ステップＳ８７）。そして、抽出したＶマップ要素のうち、最大の頻度値ｆを持つＶマップ要素（ｄ，ｙ，ｆ）を、当該視差値ｄの路面候補点として検出する（ステップＳ８８）。この第２路面候補点検出処理を、視差値ｄが０になるまで繰り返し行う（ステップＳ８９）。
【０１０８】
このようにして路面候補点検出部１３９ａにより各視差値ｄについての路面候補点（抽出処理対象）を検出したら、次に、区分直線近似部１３９ｂにより、これらの路面候補点についてＶマップ上の近似直線を求める直線近似処理を行う。このとき、路面が平坦な場合、Ｖマップの視差値範囲全域にわたって一本の直線で十分な精度の近似が可能であるが、車両進行方向において路面の傾斜状況が変化している場合には、一本の直線で十分な精度の近似が難しい。したがって、本実施形態においては、上述したように、Ｖマップ情報を視差値に応じて２以上の視差値区画に区分けし、各視差値区画についてそれぞれ個別に直線近似処理を行う。
【０１０９】
直線近似処理は、最小二乗近似を利用することができるが、より正確に行うにはＲＭＡ（Reduced Major Axis）などの他の近似を用いるのがよい。最小二乗近似は、Ｘ軸のデータに誤差がなく、Ｙ軸のデータに誤差が存在するという前提があるときに、有効である。しかしながら、Ｖマップ情報から検出される路面候補点の性質を考えると、Ｖマップ情報に含まれる各Ｖマップ要素のデータは、Ｙ軸の値ｙについては画像上の正確な位置を示していると言えるが、Ｘ軸の値である視差値ｄについては、誤差を含んでいるものである。また、路面候補点検出処理では、Ｙ軸方向に沿って路面候補点の探索を行い、最大のｆ値をもつＶマップ要素を路面候補点として検出するものであるため、路面候補点はＹ軸方向の誤差も含んでいる。従って、路面候補点となっているＶマップ要素は、Ｘ軸方向にもＹ軸方向にも誤差を含んでいることになる。したがって、二変数（ｄとｙ）に互換性のある回帰直線（ＲＭＡ）を用いて近似直線を得ることが好ましい。
【０１１０】
図１７は、Ｖマップを３つの区間（視差値区画）に区分けした例を示す説明図である。本実施形態においては、Ｖマップ情報を視差値に応じて３つの視差値区画に分ける。具体的には、視差値が大きい順に、第１区間、第２区間、第３区間に区分けする。このとき、距離を基準にして区間を等しく分ける場合、Ｖマップ上では遠距離の区間ほど区間（視差値範囲）が狭くなり、直線近似の精度が悪化する。また、視差値を基準にして区間を等しく区分けする場合、Ｖマップ上において近距離の区間の視差値範囲が狭くなる。この場合、第１区間が非常に狭いものとなって、ほとんど意味を成さなくなる。
【０１１１】
そこで、本実施形態においては、第１区間については予め決められた固定距離に対応する視差値範囲をもつように設定とし、第２区間及び第３区間については、それぞれ第１区間および第２区間に対応する距離の定数倍（たとえば２倍）の距離に対応する視差値範囲を設定する。このようにすることで、どの区間についても、適度な視差値範囲を持たせることができる。すなわち、各区間に対応する距離が異なることになるが、各区間の直線近似処理に使用する路面候補点の数が各区間で均一化でき、どの区間でも適切な直線近似処理を行うことができるようになる。
【０１１２】
なお、図１７に示した例では、第１区間及び第２区間が重複（オーバーラップ）することなく連続し、第２区間及び第３区間も重複することなく連続しているが、各区間が重複するように分けてもよい。例えば、図１８に示すように、第２区間の始点Ｓ２Ｌを第１区間の３：１内分点とし（第２区間の終点Ｅ２は図１７の例と同じ。）、第３区間の始点Ｓ３Ｌを第１区間の終点Ｅ１と第２区間の終点Ｅ２との間の３：１内分点としてもよい（第３区間の終点Ｅ３は図１７の例と同じ。）。
【０１１３】
区間に応じて対応する距離を変更したり、区間をオーバーラップさせたりすることで、各区間の直線近似処理に使用する候補点数を均一化して、直線近似処理の精度を高めることができる。また、区間をオーバーラップさせることにより、各区間の直線近似処理の相関を高めることもできる。
【０１１４】
また、視差値が大きい順に区間を設定すると、図１９Ａに示すように、例えば、最終の第４区間において、設定すべき視差値範囲より狭い視差値範囲しか設定できない場合がある。このような場合には、図１９Ｂに示すように、第４区間を第３区間と結合して、ひとつの区間（第３区間）として設定してもよい。
【０１１５】
図２０は、区分直線近似部１３９ｂで行う区分直線近似処理の流れを示すフローチャートであり、図２１Ａは、当初の区間を説明する図である。図２１Ｂは、当初の第１区間を延長した後の区間を説明する図である。また、図２２Ａは、当初の区間を説明する図である。図２２Ｂは、当初の第２区間を延長した後の区間を説明する図である。また、図２３Ａは、得られた各区間の近似直線が区間境界で連続にならない状態を説明する図である。図２３Ｂは、各区間の近似直線が区間境界において連続になるように修正した例を説明する図である。
【０１１６】
区分直線近似部１３９ｂは、路面候補点検出部１３９ａから出力される路面候補点のデータを受け取ったら、まず、最近距離の第１区間（最も視差値が大きい区間）を設定する（ステップＳ９１）。そして、この第１区間内の各視差値ｄに対応した路面候補点を抽出する（ステップＳ９２）。このとき、抽出された路面候補点の数が所定の値以下である場合（ステップＳ９３：NO）、当該第１区間を所定の視差値分だけ延長する（ステップＳ９４）。具体的には、図２１Ａに示す当初の第１区間と第２区間とを結合して、図２１Ｂに示すように、新たにひとつの第１区間（延長された第１区間）とする。このとき、当初の第３区間は新たな第２区間となる。そして、延長された第１区間内の視差値ｄに対応した路面候補点を再び抽出し（ステップＳ９２）、抽出された路面候補点の数が所定の値よりも多くなった場合には（ステップＳ９３：YES）、抽出した路面候補点について直線近似処理を行う（ステップＳ９５）。
【０１１７】
なお、第１区間ではない区間、例えば第２区間を延長する場合には、図２２Ａに示す当初の第２区間と第３区間とを結合して、図２２Ｂに示すように、新たに一つの第２区間（延長された第２区間）とする。
【０１１８】
このようにして直線近似処理を行ったら（ステップＳ９６：NO）、次に、その直線近似処理により得られる近似直線の信頼性判定を行う。この信頼性判定では、最初に、得られた近似直線の傾きと切片が所定の範囲内にあるかどうかを判定する（ステップＳ９７）。この判定で所定の範囲内ではない場合には（ステップＳ９7：NO）、当該第１区間を所定の視差値分だけ延長し（ステップＳ９４）、延長された第１区間について再び直線近似処理を行う（ステップＳ９２〜９５）。そして、得られた近似直線の傾きと切片が所定の範囲内ではあると判定されたら（ステップＳ９７：YES）、その直線近似処理を行った区間が第１区間か否かを判断する（ステップＳ９８）。
【０１１９】
このとき、第１区間であると判断された場合には（ステップＳ９８：YES）、その近似直線の相関値が所定の値よりも大きいかを判定する（ステップＳ９９）。この判定において、近似直線の相関値が所定の値よりも大きければ、その近似直線を当該第１区間の近似直線として決定する。近似直線の相関値が所定の値以下であれば、当該第１区間を所定の視差値分だけ延長し（ステップＳ９４）、延長された第１区間について再び直線近似処理を行い（ステップＳ９２〜９５）、再び信頼性判定を行う（ステップＳ９７〜Ｓ９９）。なお、第１区間でない区間については（ステップＳ９８：NO）、近似直線の相関値に関する判定処理（ステップＳ９９）は実施しない。
【０１２０】
その後、残りの区間があるか否かを確認し（ステップＳ１００）、もし残りの区間が無ければ（ステップＳ１００：NO）、区分直線近似処理は終了される。一方、残りの区間がある場合には（ステップＳ１００：YES）、前区間の幅に対応する距離を定数倍した距離に対応する視差値範囲をもった区間（第２区間）を設定する（ステップＳ１０１）。そして、この設定後に残っている区間が更に次に設定される区間（第３区間）よりも小さいか否かを判断する（ステップＳ１０２）。この判断において小さくないと判断されたなら（ステップＳ１０２：NO）、当該第２区間内の各視差値ｄに対応した路面候補点を抽出して直線近似処理を行うとともに（ステップＳ９２〜Ｓ９５）、信頼性判定処理を行う（ステップＳ９７〜Ｓ９９）。
【０１２１】
このようにして順次区間を設定し、その区間の直線近似処理及び信頼性判定処理を行うという処理を繰り返す。ステップＳ１０２において、設定後に残っている区間が更に次に設定される区間よりも小さいと判断された場合（ステップＳ１０２：YES）、設定された区間を延長して当該残っている区間を含めるようにし、これを最後の区間として設定する（ステップＳ１０３）。ステップＳ９６において最後の区間であると判断された場合（ステップＳ９６：YES）、区分直線近似処理は終了される。
【０１２２】
このようにして区分直線近似部１３９ｂが各区間の直線近似処理を実行して得た各区間の近似直線は、図２３Ａに示すように、通常、区間境界で連続したものにはならない。そのため、本実施形態では、各区間の近似直線が区間境界において連続になるように、区分直線近似部１３９ｂから出力される近似直線を図２３Ｂに示すように修正する。具体的には、例えば、区間の境界上における両区間の近似直線の端点間の中点を通るように両近似直線を修正する。
【０１２３】
《路面高さテーブル算出処理》
次に、上述した路面高さテーブル算出処理の詳細例について説明する。
【０１２４】
路面高さテーブル算出部１４０は、近似直線の情報に基づいて、路面高さ（自車両の真下の路面部分に対する相対的な高さ）を算出してテーブル化する路面高さテーブル算出処理を行う。路面形状検出部１３９により生成されたＶマップ上の近似直線の情報から、撮像画像上の各行領域（画像上下方向の各位置）に映し出されている各路面部分までの距離を算出できる。一方、自車両の真下に位置する路面部分をその面に平行となるように自車両進行方向前方へ延長した仮想平面の各部が、撮像画像中のどの行に映し出されるかは予め決まっている。この仮想平面（基準路面）はＶマップ上で直線（基準直線６１１）により表される。路面形状検出部１３９から出力される近似直線を基準直線６１１と比較することで、自車両前方の路面の高さを得ることができる。簡易的には、路面形状検出部１３９から出力される近似直線上のＹ軸位置に対応する視差値から求められる距離だけ自車両から離れた路面の高さを算出できる。路面高さテーブル算出部１４０では、近似直線から得られる各路面部分の高さを、必要な視差範囲についてテーブル化する。
【０１２５】
なお、ある視差値ｄにおいてＹ軸位置がｙ’である位置にある物体の路面からの高さは、当該視差値ｄにおける近似直線上のＹ軸位置をｙ０としたとき、（ｙ’−ｙ０）から算出することができる。一般に、Ｖマップ上における座標（ｄ，ｙ’）に対応する物体についての路面からの高さＨは、下記の式〔２〕より算出することができる。ただし、下記の式〔２〕において、「ｚ」は、視差値ｄから計算される距離（ｚ＝ＢＦ／（ｄ−ｏｆｆｓｅｔ））であり、「ｆ」はカメラの焦点距離を（ｙ’−ｙ０）の単位と同じ単位に変換した値である。ここで、「ＢＦ」は、ステレオカメラの基線長と焦点距離を乗じた値であり、「ｏｆｆｓｅｔ」は無限遠の物体を撮影したときの視差値である。
【０１２６】
Ｈ＝ｚ×（ｙ’−ｙ０）／ｆ  …式〔２〕
《Ｕマップ生成処理》
次に、上述したＵマップ生成処理の詳細例について説明する。
【０１２７】
Ｕマップ生成部１４１は、Ｕマップ（U-disparity map）を生成するＵマップ生成処理として、頻度Ｕマップ生成処理及び高さＵマップ生成処理を実行する。
【０１２８】
頻度Ｕマップ生成処理では、視差画素データ抽出部１３７により抽出された、視差画像データに含まれる各視差画素データにおけるｘ方向位置とｙ方向位置と視差値ｄとの組（ｘ，ｙ，ｄ）を、Ｘ軸にｘ、Ｙ軸にｄ、Ｚ軸に頻度を設定し、Ｘ−Ｙの２次元ヒストグラム情報を作成する。これを頻度Ｕマップと呼ぶ。本実施形態のＵマップ生成部１４１では、路面高さテーブル算出部１４０によってテーブル化された各部の高さに基づいて、路面からの高さＨが所定の高さ範囲（たとえば２０ｃｍから３ｍ）にある視差画像の点（ｘ，ｙ，ｄ）についてだけ頻度Ｕマップを作成する。この場合、路面から当該所定の高さ範囲に存在する物体を適切に抽出することができる。
【０１２９】
また、高さＵマップ生成処理では、視差画素データ抽出部１３７により抽出された、視差画像データに含まれる各視差画素データにおけるｘ方向位置とｙ方向位置と視差値ｄとの組（ｘ，ｙ，ｄ）を、Ｘ軸にｘ、Ｙ軸にｄ、Ｚ軸に路面からの高さを設定して、Ｘ−Ｙの２次元ヒストグラム情報を作成する。これを高さＵマップと呼ぶ。Ｚ軸の高さの値は路面からの高さが最高のものである。
【０１３０】
図２４は、撮像部１１０ａで撮像される基準画像の一例を模式的に表した画像例であり、図２５Ａおよび図２５Ｂは、図２４の画像例に対応するＵマップである。ここで、図２５Ａは頻度Ｕマップであり、図２５Ｂは高さＵマップである。
【０１３１】
図２４に示す画像例では、路面の左右両側にガードレール４１３，４１４が存在し、他車両としては、先行車両４１１と対向車両４１２がそれぞれ１台ずつ存在する。このとき、頻度Ｕマップにおいては、図２５Ａに示すように、左右のガードレール４１３，４１４に対応して視差値の頻度が高くなる点が存在する。この高頻度の点は、左右両端側から中央に向かって上方へ延びるような略直線状６０３，６０４に分布する。一方、先行車両４１１と対向車両４１２に対応する高頻度の点は、左右のガードレールの間で、略Ｘ軸方向に平行に延びる線分の状態６０１，６０２で分布する。なお、先行車両４１１の背面部分（又は対向車両４１２の前面部分）以外に、この車両の側面部分が撮像されている場合、同じ他車両が撮像された画像領域内において異なる視差が生じる。このような場合、図２５Ａに示すように、他車両に対応する高頻度の点は、略Ｘ軸方向に平行に延びる線分とＸ軸方向に対して傾斜した線分とが連結した状態の分布を示す。
【０１３２】
また、高さＵマップにおいては、左右のガードレール４１３，４１４、先行車両４１１、及び対向車両４１２における路面からの高さが最高の点が頻度Ｕマップと同様に分布する。ここで、先行車両に対応する点の分布７０１及び対向車両に対応する点の分布７０２の高さはガードレールに対応する点の分布７０３，７０４よりも高くなる。これにより、高さＵマップにおける物体の高さ情報を物体検出に利用することができる。
【０１３３】
《リアルＵマップ生成処理》
次に、リアルＵマップ生成部１４２について説明する。リアルＵマップ生成部１４２では、リアルＵマップ（Real U-disparity map）を生成するＵマップ生成処理として、リアル頻度Ｕマップ生成処理及びリアル高さＵマップ生成処理を実行する。
【０１３４】
リアルＵマップは、Ｕマップにおける横軸の単位を画素数から実際の距離に変換し、縦軸の視差値を距離に応じた間引き率を有する間引き視差に変換したものである。
【０１３５】
リアルＵマップ生成部１４２は、リアル頻度Ｕマップ生成処理において、視差画素データ抽出部１３７により抽出された、視差画像データに含まれる各視差画素データにおけるｘ方向位置とｙ方向位置と視差値ｄとの組（ｘ，ｙ，ｄ）を、Ｘ軸に水平方向の実際の距離、Ｙ軸に間引き視差、Ｚ軸に頻度を設定して、Ｘ−Ｙの２次元ヒストグラム情報を作成する。なお、本実施形態のリアルＵマップ生成部１４２は、Ｕマップ生成部１４１と同様に、路面高さテーブル算出部１４０によってテーブル化された各路面部分の高さに基づいて、路面からの高さＨが所定の高さ範囲にある視差画像の点（ｘ，ｙ，ｄ）についてだけリアル頻度Ｕマップを作成する。なお、リアルＵマップ生成部１４２は、Ｕマップ生成部１４１が生成したＵマップに基づいて、リアルＵマップを生成する構成としてもよい。
【０１３６】
図２６は、図２５Ａに示す頻度Ｕマップに対応するリアルＵマップ（以下、リアル頻度Ｕマップ）を示す図である。図示のように、左右のガードレールは垂直の線状のパターン８０３，８０４で表され、先行車両、対向車両も実際の形に近いパターン８０１、８０２で表される。
【０１３７】
縦軸の間引き視差は、遠距離（ここでは５０ｍ以上）については間引きなし、中距離（２０ｍ以上、５０ｍ未満）については１／２に間引き、近距離（１０ｍ以上、２０ｍ未満）については１／３に間引き、近距離（１０ｍ以上、２０ｍ未満）については１／８に間引いたものである。
【０１３８】
つまり、遠方ほど、間引く量を少なくしている。遠方では物体が小さく写るため、視差データが少なく、距離分解能も小さいので間引きを少なくし、逆に近距離では、物体が大きく写るため、視差データが多く、距離分解能も大きいので間引きを多くする。
【０１３９】
横軸を画像の画素単位から実際の距離へ変換する方法、Ｕマップの（ｘ，ｄ）からリアルＵマップの（Ｘ，ｄ）を求める方法の一例について図２７を用いて説明する。
【０１４０】
カメラの左右１０ｍずつ、即ち２０ｍの幅をオブジェクト検出範囲として設定する。リアルＵマップの横方向１画素の幅を１０ｃｍとすると、リアルＵマップの横方向サイズは２００画素となる。
【０１４１】
カメラの焦点距離をｆ、カメラ中心からのセンサの横方向の位置をｐ、カメラから被写体までの距離をＺ、カメラ中心から被写体までの横方向の位置をＸとする。センサの画素サイズをｓとすると、ｘとｐの関係は「ｘ＝ｐ／ｓ」で表される。また、ステレオカメラの特性から、「Ｚ＝Ｂｆ／ｄ」の関係がある。
【０１４２】
また、図より、「ｘ＝ｐ＊Ｚ／ｆ」の関係があるから、「Ｘ＝ｓｘＢ／ｄ」で表すことができる。Ｘは実距離であるが、リアルＵマップ上での横方向１画素の幅が１０ｃｍあるので、容易にＸのリアルＵマップ上での位置を計算することができる。
【０１４３】
図２５Ｂに示す高さＵマップに対応するリアルＵマップ（以下、リアル高さＵマップ）も同様の手順で作成することができる。
【０１４４】
リアルＵマップを用いることで、縦横の長さをＵマップより小さくできるので処理が高速になる。また、横方向の位置が物体との距離に依存しないため、遠方、近傍いずれでも同じ物体は同じ幅で検出することが可能になる。その結果、後段の周辺領域除去や、横分離、縦分離への処理分岐の判定（幅の閾値処理）が簡単になる。
【０１４５】
Ｕマップにおける縦方向の長さは、測定可能な最短距離を何メートルにするかで決定される。つまり、「ｄ＝Ｂｆ／Ｚ」であるから、測定可能な最短のＺに応じて、ｄの最大値は決定される。また、視差値ｄは少数を含むため、視差値に所定値を乗じて小数部分を四捨五入して整数化した視差値を使用する。
【０１４６】
測定可能な最短のＺが１／２になると、ｄは２倍になるので，それだけＵマップのデータは巨大となる。そこで、リアルＵマップを作成するときには、近距離ほど画素を間引いてデータを圧縮し、Ｕマップよりもデータ量を削減する。そのため、ラベリングによるオブジェクト検出を高速に行うことができる。
【０１４７】
《孤立領域検出》
次に、孤立領域検出部１４３について説明する。図２８は、孤立領域検出部１４３で行う孤立領域検出処理の流れを示すフローチャートである。孤立領域検出部１４３では、まずリアルＵマップ生成部１４２で生成された頻度リアルＵマップの情報の平滑化を行う（ステップＳ１１１）。
【０１４８】
これは、頻度値を平均化することで、有効な孤立領域を検出しやすくするためである。即ち、視差値の計算誤差などのため、また、視差値がすべての画素について計算されていないため、リアルＵマップは図２６に示した模式図とは異なり、ノイズを含んでいる。そこで、ノイズを除去するためと、検出したいオブジェクトを分離しやすくするため、リアルＵマップを平滑化する。例えば、平滑化フィルタ(例えば３×３画素の単純平均)をリアルＵマップの頻度値（頻度リアルＵマップ）に対して適用する。これにより、ノイズと考えられるような頻度は減少し、オブジェクトの部分では頻度が周囲より高くなり、後段の孤立領域検出処理を容易にすることができる。
【０１４９】
次に、二値化の閾値を設定する（ステップＳ１１２）。最初は小さい値（＝０）を用いて、平滑化されたリアルＵマップの二値化を行う（ステップＳ１１３）。その後、値のある座標のラベリングを行って、孤立領域を検出する（ステップＳ１１４）。
【０１５０】
この二つのステップでは、リアル頻度Ｕマップで頻度が周囲より高い孤立領域(島と呼ぶことにする)を検出する。検出には、リアル頻度Ｕマップをまず二値化する（ステップＳ１１３）。最初は閾値０で二値化を行う。オブジェクトの高さ、形状、路面視差との分離などがあるため、島が孤立していることもあるし、他の島と連結していることもある。即ち、小さい閾値からリアル頻度Ｕマップを二値化することで最初は孤立した適切な大きさの島を検出し、その後、閾値を増加させ、連結している島を分離する。このようにして、孤立した適切な大きさの島として検出することができる。
【０１５１】
二値化後の島を検出する方法はラベリングを用いる（ステップＳ１１４）。二値化後の黒である座標(頻度値が二値化閾値より高い座標)をその連結性に基づいてラベリングして、同一ラベルが付いた領域を島とする。
【０１５２】
検出された複数の孤立領域についてそれぞれ大きさの判定を行う（ステップＳ１１５）。これは、検出対象が歩行者から大型自動車であるため、孤立領域の幅がそのサイズの範囲であるか否かを判定するのである。もし、その大きさが大きければ（ステップＳ１１５：YES）、二値化閾値を１だけインクリメントして（ステップＳ１１２）、リアル頻度Ｕマップの当該孤立領域内だけ二値化を行う（ステップＳ１１３）。そしてラベリングを行い、より小さな孤立領域を検出して（ステップＳ１１４）、その大きさを判定する（ステップＳ１１５）。
【０１５３】
上記の閾値設定からラベリングの処理を繰り返し行い、所望の大きさの孤立領域を検出する。所望の大きさの孤立領域が検出できたなら（ステップＳ１１５：NO）、次に周辺領域除去を行う（ステップＳ１１６）。これは、物体が遠方にあり、路面検出の精度が悪く、物体の視差と路面の視差が混濁している場合、この物体の近傍の部分であって、高さが路面に近い部分を削除する処理である。除去すべき領域がある場合は（ステップＳ１１７：YES）、もう一度ラベリングを行って孤立領域の再設定を行う（ステップＳ１１４）。
【０１５４】
除去すべき領域がなくなったら（ステップＳ１１７：NO）、周辺領域除去を行った孤立領域の大きさ(幅と高さ、距離)を判定し（ステップＳ１１８）、その結果に応じて、横方向分離（ステップＳ１１９）又は縦方向分離（ステップＳ１２０）又は何もしないでオブジェクト候補として登録する。横方向分離又は縦方向分離を行った場合は（ステップＳ１２１：YES、ステップＳ１２２：YES）、もう一度ラベリングを行って孤立領域の再設定を行う（ステップＳ１１４）。
【０１５５】
物体同士が横に並んで近接している(自動車とバイク、自動車と歩行者、自動車同士など)場合、リアル頻度Ｕマップの平滑化が原因で一つの孤立領域として検出されることがある。或いは視差画像の視差補間の悪影響で異なる物体同士がつながってしまうことがある。横方向分離はこのようなケースを検出して分離する処理である（詳細については後述）。
【０１５６】
また、遠方の複数の先行車両が隣の車線を走行している場合、ステレオ画像から得られる視差の分散が大きいとき、リアル頻度Ｕマップ上では物体それぞれの視差値が上下に伸び、連結してしまうことがある。このため、複数の先行車両を一つの孤立領域として検出してしまう場合がある。縦方向分離はこのようなケースを検出して、自車両に近い先行車両と、自車両から遠い先行車両とに分離する処理である（詳細については後述）。
【０１５７】
《視差画像の対応領域検出、及びオブジェクト領域抽出》
次に、視差画像の対応領域検出部１４４及びオブジェクト領域抽出部１４５について説明する。図２９は、孤立領域検出部で検出された孤立領域が内接する矩形領域を設定したリアル頻度Ｕマップを示す図である。図３０は、図２９における矩形領域に対応する走査範囲を設定した視差画像を示す図である。図３１は、図３０における走査範囲を探索してオブジェクト領域を設定した視差画像を示す図である。
【０１５８】
例えば、図２９に示すように、孤立領域検出部１４３によりオブジェクト候補領域として、第１車両８０１、第２車両８０２がそれぞれ孤立領域として決定される。孤立領域である第１車両８０１、第２車両８０２が内接する矩形領域として第１検出島８１１及び第２検出島８１２を設定したとき、この矩形領域の幅（Ｕマップ上のＸ軸方向長さ）は、当該孤立領域に対応する物体の幅に対応する。また、設定した矩形領域の高さは、当該孤立領域に対応する物体の奥行き（自車両進行方向長さ）に対応している。一方で、各孤立領域に対応する物体の高さについては、この段階では不明である。視差画像の対応領域検出部１４４は、オブジェクト候補領域に係る孤立領域に対応したオブジェクトの高さを得るために、当該孤立領域に対応する視差画像上の対応領域を検出する。
【０１５９】
視差画像の対応領域検出部１４４は、孤立領域検出部１４３から出力される孤立領域の情報、並びに、リアルＵマップから検出した第１検出島８１１及び第２検出島８１２島の位置、幅、および最小視差に基づいて、第１検出島対応領域走査範囲４８１及び第２検出島対応領域走査範囲４８２のｘ方向範囲（ｘmin，ｘmax)を決定する。なお、第１検出島対応領域走査範囲４８１及び第２検出島対応領域走査範囲４８２のｘ方向範囲（ｘ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Ｙ）／ｆ  …式〔７〕
《オブジェクトマッチング》
次に、オブジェクトマッチング部１４８について説明する。オブジェクトマッチング部１４８では、ある１つの撮像フレームから検出された各オブジェクト領域について、オブジェクトデータリスト１３５内の、安定化フラグＳの値が０（Ｓ＝０）であって追跡対象となっていないデータリストと比較マッチングを実行する。この比較マッチングによりマッチしたオブジェクト領域については、オブジェクトデータリスト１３５のオブジェクト（過去（例えば直前の撮像フレーム）に検出されたオブジェクト）と同一のものであるとして、”Ｍａｔｃｈｅｄ”に分類される。一方、オブジェクトデータリスト１３５内のオブジェクトとはマッチしなかったオブジェクト領域については、新規に検出されたオブジェクトとして、”ＮｅｗＯｂｊｅｃｔ”に分類される。”ＮｅｗＯｂｊｅｃｔ”に分類されたオブジェクト領域についての各種情報は、新たに、オブジェクトデータリスト１３５内に追加される。
【０１７６】
このようにして比較マッチングを実行した後、マッチしなかったオブジェクトデータリスト１３５内のオブジェクトについては、”Ｍｉｓｓｉｎｇ”に分類される。”Ｍｉｓｓｉｎｇ”に分類されたオブジェクトは、未検出フレーム数がカウントアップされる。未検出フレーム数が規定値に達したオブジェクトは、オブジェクトデータリスト１３５内から消去される。
【０１７７】
［第２の実施形態］
第１の実施形態では、路面を事前に算出しておき、Ｖマップを生成する処理と、当該路面に基づいてＵマップを生成する処理とを並列に行う例について説明した。
【０１７８】
第２の実施形態では、視差画像の所定のエリアの画素値に基づいて生成したＶマップから、路面を特定した後、当該路面に基づいてＵマップを生成する例について説明する。
【０１７９】
第２の実施形態に係る物体検出処理を行う機能ブロック図は、第１の実施形態の図４と同じである。
【０１８０】
＜＜視差値の頻度分布画像の生成処理＞＞
次に、第２の実施形態に係る視差値の頻度分布画像の生成処理について説明する。
【０１８１】
第２の実施形態に係るＶマップ生成部１３８は、視差画素データ抽出部１３７により抽出された第１のエリア（例えば、視差画像の中心から下の領域であって、自車からの距離が近い領域）及び第２のエリア（第１のエリア以外である他のエリア）の各画素値に基づいて、第１のエリア及び第２のエリアのＶマップをそれぞれ生成する。
【０１８２】
第２の実施形態に係る路面形状検出部１３９、及び第２の実施形態に係る路面高さテーブル算出部１４０は、Ｖマップ生成部１３８による第２のエリアのＶマップの生成が完了する前に、Ｖマップ生成部１３８により生成された第１のエリアのＶマップに基づいて、路面形状を検出し、路面の高さを算出する。なお、第１の実施形態に係る路面形状検出部１３９は、Ｖマップを視差値に応じて２以上の区画に分け、各区画についてそれぞれ個別に直線近似を行う例について説明した。第２の実施形態に係る路面形状検出部１３９は、第１のエリアのＶマップの視差値が比較的小さいため、区画に分けることなく、路面を一本の直線にて近似する構成としてもよい。
【０１８３】
第２の実施形態に係るＵマップ生成部１４１は、視差画素データ抽出部１３７により抽出された第１のエリア及び第２のエリアの各画素値と、路面高さテーブル算出部１４０により算出された路面の高さに基づいて、第１のエリア及び第２のエリアのＵマップをそれぞれ生成する。
【０１８４】
第２の実施形態に係るＵマップ生成部１４１は、リアルＵマップ生成部１４２に、第１のエリアのＵマップを生成した際に、第１のエリアのＵマップを出力し、第２のエリアのＵマップを生成した際に、第２のエリアのＵマップを出力する。そして、オブジェクト領域抽出部１４５、オブジェクトマッチング部１４８、及びオブジェクトトラッキング部１３３等は、視差画像の１フレームに対する全体のＵマップの生成が完了する前に、第１のエリアのＵマップに基づいて物体の認識等を行う。そのため、例えば自車からの距離が近いため、比較的検出の優先度が高い第１のエリアの物体について、より高速に認識等を行うことができる。
【０１８５】
次に、図３４を参照して、視差値の頻度分布画像の生成処理の詳細例について説明する。図３４は、第２の実施形態の視差値の頻度分布画像の生成処理の一例のシーケンス図である。
【０１８６】
視差画素データ抽出部１３７は、視差画像データを取得する（ステップＳ３１）。
【０１８７】
視差画素データ抽出部１３７は、第１のエリアから、画素の画素値を抽出する（ステップＳ３２）。
【０１８８】
視差画素データ抽出部１３７は、抽出した画素の画素値を、Ｖマップ生成部１３８及びＵマップ生成部１４１に出力する（ステップＳ３３−１、Ｓ３３−２）。
【０１８９】
Ｖマップ生成部１３８は、抽出された画素に基づいて、第１のエリアのＶマップを生成する（ステップＳ３４）。
【０１９０】
路面形状検出部１３９及び路面高さテーブル算出部１４０は、生成されたＶマップを取得し（ステップＳ３５）、生成されたＶマップに基づいて、路面の高さを算出する（ステップＳ３６）。
【０１９１】
Ｕマップ生成部１４１は、算出された路面の高さを取得し（ステップＳ３７）、路面の高さと、抽出された画素に基づいて、第１のエリアのＵマップを生成する（ステップＳ３８）。
【０１９２】
視差画素データ抽出部１３７は、第２のエリアから、画素の画素値を抽出する（ステップＳ３９）。
【０１９３】
視差画素データ抽出部１３７は、抽出した画素の画素値を、Ｖマップ生成部１３８及びＵマップ生成部１４１に出力する（ステップＳ４０−１、Ｓ４０−２）。
【０１９４】
Ｖマップ生成部１３８は、抽出された画素に基づいて、第２のエリアのＶマップを生成する（ステップＳ４１）。
【０１９５】
Ｕマップ生成部１４１は、ステップＳ３６の処理により第１のエリアのＶマップに基づいて算出された路面の高さと、抽出された画素に基づいて、第２のエリアのＵマップを生成する（ステップＳ４２）。
【０１９６】
なお、上述した例では、第１のエリアと第２のエリアに分けて処理を行う例について説明したが、第１のエリアと第２のエリアは、さらに小さいエリアに分けてそれぞれ処理を行う構成としてもよい。
【０１９７】
第２の実施形態では、視差画像データ中の第２のエリアについて、Ｖマップの生成処理とＵマップの生成処理を並行して行う。それにより、第１の実施形態と同様の効果を奏する。
【０１９８】
上述した実施形態におけるシステム構成は一例であり、用途や目的に応じて様々なシステム構成例があることは言うまでもない。
【０１９９】
例えば、処理ハードウェア部１２０及び画像解析ユニット１０２の各機能部は、ハードウェアによって実現される構成としてもよいし、ＣＰＵが記憶装置に格納されたプログラムを実行することによって実現される構成としてもよい。このプログラムは、インストール可能な形式又は実行可能な形式のファイルによって、コンピュータで読み取り可能な記録メディアに記録されて流通されるようにしても良い。また、上記記録メディアの例として、ＣＤ−Ｒ(Compact Disc Recordable)、ＤＶＤ(Digital Versatile Disk)、ブルーレイディスク等が挙げられる。また、各プログラムが記憶されたＣＤ−ＲＯＭ等の記録メディア、並びに、これらプログラムが記憶されたＨＤ５０４は、プログラム製品(Program Product)として、国内又は国外へ提供されることができる。
【０２００】
以上、本発明を実施の形態に基づいて説明したが、本発明は上記実施の形態に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【０２０１】
本願は、日本特許庁に２０１５年１１月２７日に出願された基礎出願２０１５−２３２２００号の優先権を主張するものであり、その全内容を参照によりここに援用する。
【符号の説明】
【０２０２】
１  車載機器制御システム（「機器制御システム」の一例）
１００  自車両
１０１  撮像ユニット
１０２  画像解析ユニット（「画像処理装置」の一例）
１０３  表示モニタ
１０６  車両走行制御ユニット（「制御部」の一例）
１１０ａ，１１０ｂ  撮像部
１２０  処理ハードウェア部
１３１  平行化画像生成部
１３２  視差画像生成部
１３７  視差画素データ抽出部（「抽出部」の一例）
１３８  Ｖマップ生成部（「第１の生成部」の一例）
１３９  路面形状検出部
１４０  路面高さテーブル算出部
１４１  Ｕマップ生成部（「第２の生成部」の一例）
１４２  リアルＵマップ生成部（「第２の生成部」の他の一例）
１４５  オブジェクト領域抽出部（「認識部」の一例）
２  撮像装置
【図１】
2017090326.tif 000003
【図２】
2017090326.tif 000004
【図３】
2017090326.tif 000005
【図４】
2017090326.tif 000006
【図５】
2017090326.tif 000007
【図６】
2017090326.tif 000008
【図７】
2017090326.tif 000009
【図８】
2017090326.tif 000010
【図９】
2017090326.tif 000011
【図１０】
2017090326.tif 000012
【図１１Ａ】
2017090326.tif 000013
【図１１Ｂ】
2017090326.tif 000014
【図１２Ａ】
2017090326.tif 000015
【図１２Ｂ】
2017090326.tif 000016
【図１３Ａ】
2017090326.tif 000017
【図１３Ｂ】
2017090326.tif 000018
【図１４】
2017090326.tif 000019
【図１５】
2017090326.tif 000020
【図１６】
2017090326.tif 000021
【図１７】
2017090326.tif 000022
【図１８】
2017090326.tif 000023
【図１９Ａ】
2017090326.tif 000024
【図１９Ｂ】
2017090326.tif 000025
【図２０】
2017090326.tif 000026
【図２１Ａ】
2017090326.tif 000027
【図２１Ｂ】
2017090326.tif 000028
【図２２Ａ】
2017090326.tif 000029
【図２２Ｂ】
2017090326.tif 000030
【図２３Ａ】
2017090326.tif 000031
【図２３Ｂ】
2017090326.tif 000032
【図２４】
2017090326.tif 000033
【図２５Ａ】
2017090326.tif 000034
【図２５Ｂ】
2017090326.tif 000035
【図２６】
2017090326.tif 000036
【図２７】
2017090326.tif 000037
【図２８】
2017090326.tif 000038
【図２９】
2017090326.tif 000039
【図３０】
2017090326.tif 000040
【図３１】
2017090326.tif 000041
【図３２】
2017090326.tif 000042
【図３３】
2017090326.tif 000043
【図３４】
2017090326.tif 000044
【国際調査報告】
2017090326.tif 000045
2017090326.tif 000046
2017090326.tif 000047
2017090326.tif 000048