(57)【特許請求の範囲】
【請求項１】
画素毎に距離情報を備えた距離画像から、オブジェクトの高さの基準とする基準オブジェクトを検出する基準検出部と、
前記基準オブジェクトからの高さ範囲を、それぞれ異なる高さ範囲に設定した複数のマップのうち、前記距離画像の各画素における前記基準オブジェクトからの高さに対応する高さ範囲の前記マップに対して、前記各画素の距離情報を投票するマップ生成部と、
前記各マップから、前記距離情報の集合領域を検出する集合検出部と、
前記各マップにおける前記集合領域の分布に基づいて、前記集合領域のオブジェクトの種類を分類する分類部と、を備え、
前記マップ生成部は、前記距離画像上のオブジェクトとの間の実距離を横軸とし、前記距離画像の距離情報を縦軸として生成した２次元ヒストグラムを、前記マップとして生成すること
を特徴とする画像処理装置。
【請求項２】
前記分類部は、各オブジェクトの予め設定された基準サイズと前記集合領域のサイズとの比較結果、及び、前記各マップにおける前記集合領域の分布に基づいて、前記集合領域のオブジェクトの種類を分類すること
を特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記マップ生成部は、対象となる高さの範囲がオーバーラップした前記マップを作成すること
を特徴とする請求項１又は請求項２に記載の画像処理装置。
【請求項４】
前記距離画像は視差画像であり、
前記距離情報は、前記実距離に応じて間引き処理された視差値である間引き視差であること
を特徴とする請求項１から請求項３のうち、いずれか一項に記載の画像処理装置。
【請求項５】
請求項１乃至４のいずれか一項に記載の画像処理装置と、
複数の撮像装置と、
前記複数の撮像装置により撮像された複数の画像から視差画像を生成する視差画像生成部と、を備え、
前記画像処理装置は、前記視差画像生成部が生成する視差画像に基づいてオブジェクトの種類の分類を行うこと
を特徴とする撮像装置。
【請求項６】
請求項５に記載の撮像装置を備え、
分類された前記オブジェクトの種類に基づいて機器の制御を行う
移動体機器制御システム。
【請求項７】
基準検出部が、画素毎に距離情報を備えた距離画像から、オブジェクトの高さの基準とする基準オブジェクトを検出する基準検出ステップと、
マップ生成部が、前記基準オブジェクトからの高さ範囲を、それぞれ異なる高さ範囲に設定した複数のマップのうち、前記距離画像の各画素における前記基準オブジェクトからの高さに対応する高さ範囲の前記マップに対して、前記各画素の距離情報を投票するマップ生成ステップと、
集合検出部が、前記各マップから、前記距離情報の集合領域を検出する集合検出ステップと、
分類部が、前記各マップにおける前記集合領域の分布に基づいて、前記集合領域のオブジェクトの種類を分類する分類ステップと、を備え、
前記マップ生成ステップでは、前記距離画像上のオブジェクトとの間の実距離を横軸とし、前記距離画像の距離情報を縦軸として生成した２次元ヒストグラムを、前記マップとして生成すること
を特徴とする画像処理方法。
【請求項８】
コンピュータを、
画素毎に距離情報を備えた距離画像から、オブジェクトの高さの基準とする基準オブジェクトを検出する基準検出部と、
前記基準オブジェクトからの高さ範囲を、それぞれ異なる高さ範囲に設定した複数のマップのうち、前記距離画像の各画素における前記基準オブジェクトからの高さに対応する高さ範囲の前記マップに対して、前記各画素の距離情報を投票するマップ生成部と、
前記各マップから、前記距離情報の集合領域を検出する集合検出部と、
前記各マップにおける前記集合領域の分布に基づいて、前記集合領域のオブジェクトの種類を分類する分類部として機能させ、
前記マップ生成部は、前記距離画像上のオブジェクトとの間の実距離を横軸とし、前記距離画像の距離情報を縦軸として生成した２次元ヒストグラムを、前記マップとして生成すること
を特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、撮像装置、移動体機器制御システム、画像処理方法、及び画像処理プログラムに関する。
【背景技術】
【０００２】
今日において、ミリ波レーダ、レーザレーダ、又は、ステレオカメラによる測距等により、人又は自動車等のオブジェクトを高速に検出する技術が知られている。例えば、ステレオカメラによる測距で、人又は先行車両等のオブジェクトの三次元的な位置及び大きさを検出する場合、オブジェクトの視差を補間した後、路面の位置を検出し、その路面に接しているオブジェクトを検出する。このようなオブジェクトの検出出力は、自動ブレーキ制御又は自動ハンドル制御等に用いられる。
【０００３】
特許文献１（特開２０１４−０９６００５号公報）には、同一とみなされるオブジェクトを正確にグループ化して検出する物体検出装置が開示されている。この物体検出装置は、距離画像を用いて有効領域同士をグルーピングした後、グルーピングされた物体に対して濃淡画像の輪郭部分（エッジ）に着目して領域を分割する。
【０００４】
特許文献２（国際公開第２０１２／０１７６５０号）には、物体及び路面を精度よく検出可能な物体検出装置が開示されている。この物体検出装置は、路面領域を検出した後、路面以上の高さを持つデータを物体候補領域として検出し、形状特徴に基づいて物体及び路面の判別を行う。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に開示されている物体検出装置は、１つの領域にグルーピングされた物体が、濃淡画像において複雑なエッジを持っていた場合、正しく分離することが困難となる問題がある。また、特許文献２に開示されている物体検出装置は、路面以上のオブジェクトが存在し得る領域に対して、隣接するオブジェクトが結合して検出される問題がある。このようなことから、特許文献１の物体検出装置及び特許文献２の物体検出装置は、オブジェクトを精度良く検出困難な問題があった。
【０００６】
本発明は、上述の課題に鑑みてなされたものであり、オブジェクトを精度良く検出可能な画像処理装置、撮像装置、移動体機器制御システム、画像処理方法、及び画像処理プログラムの提供を目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、画素毎に距離情報を備えた距離画像から、オブジェクトの高さの基準とする基準オブジェクトを検出する基準検出部と、基準オブジェクトからの高さ範囲を、それぞれ異なる高さ範囲に設定した複数のマップのうち、距離画像の各画素における基準オブジェクトからの高さに対応する高さ範囲のマップに対して、各画素の距離情報を投票するマップ生成部と、各マップから、距離情報の集合領域を検出する集合検出部と、各マップにおける集合領域の分布に基づいて、集合領域のオブジェクトの種類を分類する分類部と、を備え、マップ生成部は、距離画像上のオブジェクトとの間の実距離を横軸とし、距離画像の距離情報を縦軸として生成した２次元ヒストグラムを、マップとして生成する。
【発明の効果】
【０００８】
本発明によれば、オブジェクトを精度良く検出できるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態の移動体制御システムの概略構成を示す模式図である。
【図２】図２は、撮像ユニット及び解析ユニットの概略構成を示すブロック図である。
【図３】図３は、ＸＺ平面上における被写体と各撮像部の撮像レンズとの位置関係を示す図である。
【図４】図４は、実施の形態の移動体制御システムの各種機能の機能ブロック図である。
【図５】図５は、撮像ユニットで撮像された撮像画像を示す図である。
【図６】図６は、図５の撮像画像に対応するＶマップを示す図である。
【図７】図７は、撮像画像の一例を示す図である。
【図８】図８は、図７の撮像画像に対応する頻度のＵマップを示す図である。
【図９】図９は、図７の撮像画像に対応する高さのＵマップを示す図である。
【図１０】図１０は、図７の撮像画像に対応するリアルＵマップを示す図である。
【図１１】図１１は、撮像画像の一例を示す図である。
【図１２】図１２は、図１１の撮像画像に対応するリアルＵマップを示す図である。
【図１３】図１３は、図１１の撮像画像に対応する、路面からの高さが６０ｃｍ〜２００ｃｍのオブジェクトのレイヤのレイヤＵマップを示す図である。
【図１４】図１４は、図１１の撮像画像に対応する、路面からの高さが１５０ｃｍ〜２００ｃｍのオブジェクトのレイヤのレイヤＵマップを示す図である。
【図１５】図１５は、レイヤＵマップの生成動作を説明するためのフローチャートである。
【図１６】図１６は、撮像画像の一例を示す図である。
【図１７】図１７は、図１６の撮像画像に対応するリアルＵマップを示す図である。
【図１８】図１８は、図１６の撮像画像に対応する、路面からの高さが６０ｃｍ〜２００ｃｍのオブジェクトのレイヤのレイヤＵマップを示す図である。
【図１９】図１９は、図１６の撮像画像に対応する、路面からの高さが１５０ｃｍ〜２００ｃｍのオブジェクトのレイヤのレイヤＵマップを示す図である。
【図２０】図２０は、図１６の撮像画像に対応する、路面からの高さが２００ｃｍ以上のオブジェクトのレイヤのレイヤＵマップを示す図である。
【図２１】図２１は、孤立領域検出処理の流れを示すフローチャートである。
【図２２】図２２は、ラベリング方法を説明するための模式図である。
【図２３】図２３は、ラベリング方法を説明するための他の模式図である。
【図２４】図２４は、ラベリング方法を説明するためのさらに他の模式図である。
【図２５】図２５は、遠方の路面が実際の高さよりも低く検出され、路面と車両が一つのオブジェクトとして検出されたレイヤＵマップを示す図である。
【図２６】図２６は、図２５に対応する高さのリアルＵマップを示す図である。
【図２７】図２７は、周辺領域除去処理の流れを示すフローチャートである。
【図２８】図２８は、周辺領域除去処理で除去される領域を説明するための図である。
【図２９】図２９は、横方向分離処理の流れを示すフローチャートである。
【図３０】図３０は、横方向の評価値の演算処理を説明するための図である。
【図３１】図３１は、評価値の二値化処理を説明するための図である。
【図３２】図３２は、平滑化処理後のレイヤＵマップを示す図である。
【図３３】図３３は、縦方向分離処理の流れを示すフローチャートである。
【図３４】図３４は、各ラインの評価値の算出動作を説明するための図である。
【図３５】図３５は、評価値が最大のラインからオブジェクトの実幅を検出する動作を説明するための図である。
【図３６】図３６は、オブジェクトの分離境界の演算動作を説明するための図である。
【図３７】図３７は、リアルＵマップ上におけるオブジェクトの縦方向の分離位置を説明するための図である。
【図３８】図３８は、孤立領域の検出処理及びオブジェクトタイプの分類処理の流れを示すフローチャートである。
【図３９】図３９は、撮像画像の一例を示す図である。
【図４０】図４０は、図３９の撮像画像に対応する、路面からの高さが６０ｃｍ〜２００ｃｍのオブジェクトのレイヤのレイヤＵマップを示す図である。
【図４１】図４１は、図３９の撮像画像に対応する、路面からの高さが１５０ｃｍ〜２００ｃｍのオブジェクトのレイヤのレイヤＵマップを示す図である。
【図４２】図４２は、図３９の撮像画像に対応する、路面からの高さが２００ｃｍ以上のオブジェクトのレイヤのレイヤＵマップを示す図である。
【図４３】図４３は、図４０〜図４２の各レイヤを重ね合わせた状態のレイヤＵマップを示す図である。
【図４４】図４４は、頻度のリアルＵマップを示す図である。
【図４５】図４５は、オブジェクトライン群の外接矩形を、視差画像におけるオブジェクト領域として決定する動作を説明するための図である。
【図４６】図４６は、視差画像におけるオブジェクト領域（対応領域）の検出処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、実施の形態の移動体制御システムを詳細に説明する。図１は、実施の形態の移動体制御システムの概略構成を示す模式図である。この図１に示すように、移動体制御システムは、移動体の一例である自動車等の車両１に設けられる。移動体制御システムは、撮像ユニット２、解析ユニット３、制御ユニット４及び表示部５を有している。
【００１１】
撮像ユニット２は、車両１のフロントガラス６のルームミラー付近に設けられ、車両１の例えば進行方向等の画像を撮像する。撮像ユニット２の撮像動作で得られる画像データを含む各種データは、解析ユニット３に供給される。解析ユニット３は、撮像ユニット２から供給される各種データに基づいて、車両１が走行中の路面、車両１の前方車両、歩行者、障害物等の認識対象物を解析する。制御ユニット４は、解析ユニット３の解析結果に基づいて、表示部５を介して、車両１の運転者へ警告等を行う。また、制御ユニット４は、解析結果に基づいて、各種車載機器の制御、車両１のハンドル制御又はブレーキ制御等の走行支援を行う。
【００１２】
図２は、撮像ユニット２及び解析ユニット３の概略的なブロック図である。この図２に示すように、撮像ユニット２は、例えば２つの撮像部１０Ａ、１０Ｂを備えたステレオカメラ構成となっている。２つの撮像部１０Ａ、１０Ｂは、それぞれ同じ構成を有している。具体的には、撮像部１０Ａ、１０Ｂは、撮像レンズ１１Ａ、１１Ｂと、受光素子が２次元配置された画像センサ１２Ａ、１２Ｂと、各画像センサ１２Ａ、１２Ｂを撮像駆動するコントローラ１３Ａ、１３Ｂを有している。
【００１３】
解析ユニット３は、ＦＰＧＡ（Field-Programmable  Gate  Array）１４、ＲＡＭ（Random  Access  Memory）１５及びＲＯＭ（Read  Only  Memory）１６を有している。また、解析ユニット３は、ＣＰＵ（Central  Processing  Unit）１７、シリアルインタフェース（シリアルＩＦ）１８、及び、データＩＦ１９を有している。ＦＰＧＡ１４〜データＩＦ１９は、解析ユニット３のデータバスライン２１を介して相互に接続されている。また、撮像ユニット２及び解析ユニット３は、データバスライン２１及びシリアルバスライン２０を介して相互に接続されている。
【００１４】
ＲＡＭ１５には、撮像ユニット２から供給される輝度画像データに基づいて生成された視差画像データ等が記憶される。ＲＯＭ１６には、オペレーションシステム及びオブジェクト検出プログラム等の各種プログラムが記憶されている。
【００１５】
また、ＦＰＧＡ１４は、各撮像部１０Ａ、１０Ｂでそれぞれ撮像された撮像画像のうち、一方を基準画像とすると共に他方を比較画像とする。そして、ＦＰＧＡ１４は、撮像領域内の同一地点に対応する基準画像上の対応画像部分と比較画像上の対応画像部分との位置ズレ量を、対応画像部分の視差値（視差画像データ）として算出する。
【００１６】
図３に、ＸＺ平面上における被写体３０と各撮像部１０Ａ、１０Ｂの撮像レンズ１１Ａ、１１Ｂとの位置関係を示す。この図３において、各撮像レンズ１１Ａ、１１Ｂの間の距離ｂ及び各撮像レンズ１１Ａ、１１Ｂの焦点距離ｆは、それぞれ固定値である。また、被写体３０の注視点Ｐに対する撮像レンズ１１ＡのＸ座標のズレ量をΔ１とする。また、被写体３０の注視点Ｐに対する撮像レンズ１１ＢのＸ座標のズレ量をΔ２とする。この場合において、ＦＰＧＡ１４は、被写体３０の注視点Ｐに対する各撮像レンズ１１Ａ、１１ＢのＸ座標の差である視差値Ｄを、以下の数１式で算出する。
【００１７】
視差値Ｄ＝｜Δ１−Δ２｜・・・（数１式）
【００１８】
解析ユニット３のＦＰＧＡ１４は、撮像ユニット２から供給される輝度画像データに対して、例えばガンマ補正処理及び歪み補正処理（左右の撮像画像の平行化）等のリアルタイム性が要求される処理を施す。また、ＦＰＧＡ１４は、このようなリアルタイム性が要求される処理を施した輝度画像データを用いて上述の数１式の演算を行うことで、視差画像データ（視差値Ｄ）を生成し、ＲＡＭ１５に書き込む。
【００１９】
ＣＰＵ１７は、ＲＯＭ１６に記憶されているオペレーションシステムに基づいて動作し、各撮像部１０Ａ、１０Ｂの全体的な撮像制御を行う。また、ＣＰＵ１７は、ＲＯＭ１６からオブジェクト検出プログラムをロードし、ＲＡＭ１５に書き込まれた視差画像データを用いて各種処理を実行する。具体的には、ＣＰＵ１７は、オブジェクト検出プログラムに基づいて、車両１に設けられた各センサから、データＩＦ１９を介して取得した、車速、加速度、操舵角、ヨーレート等のＣＡＮ（Controller  Area  Network）情報を参照し、路面、ガードレール、車両、人間等の認識対象物の認識処理、視差計算、認識対象物との間の距離の計算等を行う。
【００２０】
ここで、視差値Ｄは、図３に示す各撮像レンズ１１Ａ、１１Ｂから被写体３０までの距離を「Ｚ」として、以下の数２式でも算出できる。
【００２１】
視差値Ｄ＝（ｂ×ｆ）／Ｚ・・・（数２式）
【００２２】
この数２式からわかるように、各撮像レンズ１１Ａ、１１Ｂから被写体３０までの距離Ｚは、算出した視差値Ｄを用いて、以下の数３式で算出できる。
【００２３】
Ｚ＝（ｂ×ｆ）／Ｄ・・・（数３式）
【００２４】
ＣＰＵ１７は、撮像ユニット２から供給される上述の視差値Ｄを用いて、認証対象物との間の距離Ｚを算出する。
【００２５】
ＣＰＵ１７は、処理結果を、シリアルＩＦ１８又はデータＩＦ１９を介して、図１に示す制御ユニット４に供給する。制御ユニット４は、処理結果となるデータに基づいて、例えばブレーキ制御、車速制御、ハンドル制御等を行う。また、制御ユニット４は、処理結果となるデータに基づいて、表示部５に警告表示等を行う。これにより、車両１の運転者の運転支援を行うことができる。
【００２６】
次に、水平方向（幅方向）、高さ方向、奥行き方向の三次元情報（空間情報）を用いて認識対象物を検出する場合、各次元の情報（幅、高さ、奥行きの各情報）を効率的に用いることが重要となる。従来は、座標の横軸（Ｘ軸）を実距離とし、座標の縦軸（Ｙ軸）を視差値とする２次元マップ（Real  U−Disparity  map）を用いて認識対象物の検出を行っている。以下、「Real  U−Disparity  map」を、単に「リアルＵマップ」という。
【００２７】
しかし、従来手法では、リアルＵマップにおいて、カメラ座標の縦軸（Ｙ軸）と平行する地面からの認識対象物の高さ情報は欠如している。このため、複数の認識対象物が互いに隣接して位置する場合、複数の認識対象物が一つの認識対象物として誤検出される不都合が多々生ずる。このような誤検出の発生／未発生は、認識対象物の動き方(写り方)に左右される。従って、従来手法では、認識対象物を精度良く検出することは困難となっている。
【００２８】
これに対して、実施の形態の移動体制御システムは、認識対象物の路面からの高さに基づいた層構造（高さ範囲）で複数のリアルＵマップを作成する。すなわち、視差画像内の視差点をリアルＵマップ上に投票する際に、予め設定した高さ範囲のリアルＵマップに投票することで、各高さ範囲のリアルＵマップを作成する。以下、各高さのＵマップを「レイヤＵマップ」という。そして、実施の形態の移動体制御システムは、各高さ範囲のレイヤＵマップで、それぞれ２次元平面のグルーピング処理を行い、各グルーピング結果の統合又は分離を行う。
【００２９】
すなわち、ステレオ画像から得られた視差画像上の視差点を、路面からの実高さに基づいて、予め用意した高さのレイヤＵマップに投票し、各レイヤＵマップ内の２次元平面でグルーピング処理を行い、各グルーピング結果の統合又は分離を行う。これにより、高速かつ高さ情報を効率的に用いて、認識対象物を高精度に検出できる。実施の形態の移動体制御システムは、特に、人間を高精度に検出可能となっている。
【００３０】
以下、このような実施の形態の移動体制御システムにおける認識対象物の認識動作を具体的に説明する。図４は、実施の形態の移動体制御システムの各種機能の機能ブロック図である。この図４において、平行化画像生成部４１及び視差画像生成部４２は、ＦＰＧＡ１４のプログラム可能な論理ブロックにより、ハードウェアで実現される。なお、この例では、平行化画像生成部４１及び視差画像生成部４２は、ハードウェアで実現することとしたが、以下に説明するオブジェクト検出プログラム等により、ソフトウェアで実現してもよい。
【００３１】
また、図４において、Ｖマップ生成部４５〜３次元位置決定部５４は、ＣＰＵ１７がＲＯＭ１６に記憶されているオブジェクト検出プログラムを実行することで、ソフトウェアで実現される。すなわち、ＣＰＵ１７は、オブジェクト検出プログラムを実行することで、Ｖマップ生成部４５、路面形状検出部４６、リスト生成部４７、Ｕマップ生成部４８、レイヤＵマップ生成部４９、孤立領域検出部５０、分類部５１、対応領域検出部５２、領域抽出部５３及び３次元位置決定部５４として機能する。
【００３２】
なお、この例では、Ｖマップ生成部４５〜３次元位置決定部５４は、ＣＰＵ１７がソフトウェアで実現することとしたが、一部又は全部を、ＩＣ（Integrated  Circuit）等のハードウェアで実現してもよい。また、オブジェクト検出プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ、ブルーレイディスク（登録商標）、半導体メモリ等のコンピュータ装置で読み取り可能な記録媒体に記録して提供してもよい。ＤＶＤは、「Digital  Versatile  Disk」の略記である。また、オブジェクト検出プログラムは、インターネット等のネットワーク経由でインストールする形態で提供してもよい。また、オブジェクト検出プログラムは、機器内のＲＯＭ等に予め組み込んで提供してもよい。
【００３３】
このような移動体制御システムにおいて、ステレオカメラを構成する撮像ユニット２の各撮像部１０Ａ、１０Ｂは、輝度画像データを生成する。具体的には、各撮像部１０Ａ、１０Ｂがカラー仕様の場合、各撮像部１０Ａ、１０Ｂは、以下の数４式の演算を行うことで、ＲＧＢ（赤緑青）の各信号から輝度（Ｙ）信号を生成するカラー輝度変換処理を行う。各撮像部１０Ａ、１０Ｂは、カラー輝度変換処理により生成した輝度画像データを、ＦＰＧＡ１４の平行化画像生成部４１に供給する。
【００３４】
Ｙ＝０．３Ｒ＋０．５９Ｇ＋０．１１Ｂ・・・（数４式）
【００３５】
平行化画像生成部４１は、撮像ユニット２から供給された輝度画像データに対して、平行化処理を施す。この平行化処理は、各撮像部１０Ａ、１０Ｂから出力される輝度画像データを、２つのピンホールカメラが平行に取り付けられたときに得られる理想的な平行化ステレオ画像に変換する処理である。具体的には、各画素の歪み量を、Δｘ＝ｆ（ｘ、ｙ）、Δｙ＝ｇ（ｘ、ｙ）という多項式を用いて計算した計算結果を用いて、各撮像部１０Ａ、１０Ｂから出力される輝度画像データの各画素を変換する。多項式は、例えば、ｘ（画像の横方向位置）、ｙ（画像の縦方向位置）に関する６次多項式に基づく。これにより、撮像部１０Ａ、１０Ｂの光学系の歪みを補正した平行な輝度画像を得ることができる。
【００３６】
次に、視差画像生成部４２は、画素毎に距離情報を備えた距離画像の一例である、画素毎に視差値を備えた視差画像を生成する。すなわち、視差画像生成部４２は、撮像部１０Ａの輝度画像データを基準画像データとし、撮像部１０Ｂの輝度画像データを比較画像データとし、上述の数１式に示す演算を行うことで、基準画像データと比較画像データの視差を示す視差画像データを生成する。具体的には、視差画像生成部４２は、基準画像データの所定の「行」について、一つの注目画素を中心とした複数画素（例えば１６画素×１画素）からなるブロックを定義する。一方、比較画像データにおける同じ「行」において、定義した基準画像データのブロックと同じサイズのブロックを１画素ずつ横ライン方向（Ｘ方向）へズラす。そして、視差画像生成部４２は、基準画像データにおいて定義したブロックの画素値の特徴を示す特徴量と比較画像データにおける各ブロックの画素値の特徴を示す特徴量との相関を示す相関値を、それぞれ算出する。
【００３７】
また、視差画像生成部４２は、算出した相関値に基づき、比較画像データにおける各ブロックの中で最も基準画像データのブロックと相関があった比較画像データのブロックを選定するマッチング処理を行う。その後、基準画像データのブロックの注目画素と、マッチング処理で選定された比較画像データのブロックの対応画素との位置ズレ量を視差値Ｄとして算出する。このような視差値Ｄを算出する処理を基準画像データの全域又は特定の一領域について行うことで、視差画像データを得る。視差画像データは、画像座標であるｘ座標およびｙ座標と、視差値Ｄとを有する３次元のデータの組である。以下、画像という言葉を用いて説明するが、実際に画像として構成されている必要はなく、３次元のデータの組を表すものとして説明する。
【００３８】
マッチング処理に用いるブロックの特徴量としては、例えばブロック内の各画素の値（輝度値）を用いることができる。また、相関値としては、例えば基準画像データのブロック内の各画素の値（輝度値）と、これらの画素にそれぞれ対応する比較画像データのブロック内の各画素の値（輝度値）との差分の絶対値の総和を用いることができる。この場合、当該総和が最も小さくなるブロックが、最も相関があるブロックとして検出される。
【００３９】
このような視差画像生成部４２のマッチング処理としては、例えばＳＳＤ（Sum  of  Squared  Difference）、ＺＳＳＤ（Zero-mean  Sum  of  Squared  Difference）、ＳＡＤ（Sum  of  Absolute  Difference）、又は、ＺＳＡＤ（Zero-mean  Sum  of  Absolute  Difference）等の手法を用いることができる。なお、マッチング処理において、１画素未満のサブピクセルレベルの視差値が必要な場合は、推定値を用いる。推定値の推定手法としては、例えば等角直線方式又は二次曲線方式等を用いることができる。ただし、推定したサブピクセルレベルの視差値には誤差が発生する。このため、推定誤差を減少させるＥＥＣ（推定誤差補正）等の手法を用いてもよい。
【００４０】
なお、本実施形態においては、視差値と距離値が等価に扱えることから、距離画像の一例として視差画像を示しているが、これに限られない。例えば、ミリ波レーダやレーザレーダの距離情報と、ステレオカメラで生成される視差画像を融合させて距離画像を生成しても良い。
【００４１】
次に、視差画像（ｘ座標値、ｙ座標値、視差値Ｄ）の組のうち、Ｘ軸を視差値Ｄ、Ｙ軸をｙ座標値、Ｚ軸を頻度とした２次元ヒストグラムを作成することを考える。以下、この２次元ヒストグラムを「Ｖ−Ｄｉｓｐａｒｉｔｙマップ（Ｖマップ）」という。Ｖマップ生成部４５は、例えば、図５に示すように画面中央に延びる平坦な路面６０上を走行する車両６１の左側に電柱６２が存在する、撮像ユニット２の撮像画像の視差画像の各画素のうち、視差値Ｄ及びｙ座標値を有する画素に対して、一つカウントアップした度数（頻度）を付与する。そして、Ｖマップ生成部４５は、Ｘ軸を視差値Ｄ、Ｙ軸をｙ座標値、Ｚ軸を頻度とした２次元ヒストグラム上に各画素を投票することで、図６に示すように、右下がりの直線として投票される路面６０上に、車両６１及び電柱６２が投票されたＶマップを作成する。このＶマップ上における直線状の画素群を特定することで、路面に相当する画素群を特定できる。このようなＶマップにおいては、路面より下の部分の視差値は検出されない。このため、図６に斜線で示す領域Ａに相当する視差値はカウントされることはない。
【００４２】
もしノイズ等により路面より下の部分の視差値があれば、これらの視差値は以降のオブジェクト検出において利用しないようにすればよい。なお、オブジェクトの高さを検出するためには、路面を正確に検出することが必要となる。そのため、車両１が停止している状態において検出される路面に相当する仮想直線Ｋを用いて、仮想直線Ｋから所定距離内における画素のみをマッピングしたＶマップ（制限Ｖマップ）を路面検出に利用してもよい。
【００４３】
次に、このように生成されたＶマップを用いて路面形状を検出する路面形状検出部４６の動作を説明する。路面形状検出部４６は、基準検出部の一例である。路面形状検出部４６は、各オブジェクトの高さの基準とする基準オブジェクトの一例である路面を検出する。路面形状検出部４６は、Ｖマップ上で路面と推定される位置を直線近似する。路面が平坦な場合は、一本の直線で近似する。また、途中で勾配が変わる路面の場合、Ｖマップ上を複数の区間に分割して直線近似を行う。これにより、途中で勾配が変わる路面の場合でも、精度よく直線近似を行うことができる。
【００４４】
具体的に説明すると、路面形状検出部４６は、まず、Ｖマップを用いて路面候補点を検出する。路面候補点の検出は、横軸を二つに分割し、それぞれの領域で候補点の検出方法を変える。具体的には、路面形状検出部４６は、視差の大きい近距離の領域においては、第１の候補点検出方法で路面候補点の検出を行う。また、路面形状検出部４６は、視差の小さい遠距離の領域においては、第２の候補点検出方法で路面候補点の検出を行う。
【００４５】
ここで、上記のように視差の大きい近距離の領域と視差の小さい遠距離の領域とで路面候補点の検出方法を変更する理由は、以下のとおりである。例えば図５に示す撮影画像のように、近距離では路面の面積が大きく、路面上の視差データがＶマップに投票される頻度が大きいのに対し、遠距離では路面の面積が小さくなり、路面を表す座標の頻度が相対的に小さくなる。つまり、Ｖマップで路面として予測される点の頻度値は、遠距離では小さく、近距離では大きい。このため、同じ基準で路面候補点を検出すると、近距離では路面の候補点は検出できるが、遠距離の路面候補点は検出困難となり、遠距離の路面検出精度が低下する。
【００４６】
このような欠点を解消するために、Ｖマップを視差の大きい領域と視差の小さい領域との二つの領域に分け、それぞれの領域で路面候補点の検出の方法及び基準を変更する。これにより、近距離及び遠距離の双方の路面検出精度を向上させることができる。
【００４７】
次に、リスト生成部４７の動作を説明する。リスト生成部４７は、路面高さを算出してＲＡＭ１５等の記憶部に記憶する（テーブル化する）。Ｖマップから路面を表す直線式が得られたため、視差ｄが決まれば、対応するｙ座標ｙ０が決まる。この座標ｙ０が、路面の高さとなる。リスト生成部４７は、路面の高さを示す座標ｙ０と、必要な範囲の視差とを関連付けた路面高さリストを生成する。また、視差がｄでｙ座標がｙ’である場合、ｙ’−ｙ０が、視差ｄのときの路面からの高さを示す。リスト生成部４７は、座標（ｄ、ｙ’）の路面からの高さＨを、「Ｈ＝（ｚ×（ｙ’−ｙ０））／ｆ」の演算式を用いて算出する。なお、この演算式における「ｚ」は、視差ｄから計算される距離（ｚ＝ＢＦ／（ｄ−ｏｆｆｓｅｔ））、「ｆ」は撮像ユニット２の焦点距離を（ｙ’−ｙ０）の単位と同じ単位に変換した値である。ここで、ＢＦは、撮像ユニット２の基線長Ｂと焦点距離ｆを乗じた値、ｏｆｆｓｅｔは無限遠のオブジェクトを撮影したときの視差である。
【００４８】
次に、Ｕ−Ｄｉｓｐａｒｉｔｙマップ生成部（Ｕマップ生成部）４８の動作を説明する。Ｕマップは、横軸を視差画像のｘ、縦軸を視差画像の視差ｄ、Ｚ軸を頻度とした２次元ヒストグラムである。路面からの高さが、例えば２０ｃｍ〜３ｍ等の所定の高さの範囲にある視差画像の点（ｘ、ｙ、ｄ）を、（ｘ、ｄ）の値に基づいて投票する。Ｕマップ生成部４８は、ある視差画像の点（ｘ、ｙ、ｄ）を視差画像の所定の範囲の画素を投票してＵマップを生成する。すなわち、視差画像の上部１／６の領域には空が写っており、殆どの場合、認識を必要とするオブジェクトが写っていることは無い。このため、Ｕマップ生成部４８は、例えば視差画像の地面側５／６の領域（上部１／６の領域以外の領域）の画素を投票して頻度のＵマップを生成する。
【００４９】
具体的に説明すると、図７に示す輝度画像の場合、左右にガードレール８１、８２があり、車両７７及び車両７９がセンターラインを挟んで対面通行をしている。各走行車線には、それぞれ１台の車両７７又は車両７９が走行している。この場合、Ｕマップ生成部４８は、図８に示す頻度のＵマップを生成する。すなわち、Ｕマップ生成部４８は、各ガードレール８１、８２を、左右から中央上部に伸びる直線として投票した頻度のＵマップを生成する。また、各ガードレール８１、８２の間で、水平線分と、側面が見える状態で車両８１、８２が検出されている場合、Ｕマップ生成部４８は、車両の側面を示す斜線が水平線分に連結した形状で、車両７７、７９を頻度のＵマップ上に投票する。
【００５０】
また、Ｕマップ生成部４８は、このような頻度のＵマップと共に、高さのＵマップを生成する。高さのＵマップは、Ｕマップに投票される（ｘ、ｄ）の組のうち、路面からの高さが、最も高い値を設定したマップである。図９において、各車両７７、７９の高さは、左右のガードレール８１、８２よりも高くなる。これによりオブジェクトの高さ情報を、オブジェクト検出に利用可能とすることができる。
【００５１】
次に、レイヤＵマップ生成部４９の動作を説明する。レイヤＵマップ生成部４９は、マップ生成部の一例である。レイヤＵマップ生成部４９は、画像の画素が横軸となっていた上述のＵマップにおいて、実際の距離（実距離）を横軸としたリアルＵマップを生成する。そして、レイヤＵマップ生成部４９は、リアルＵマップに投票される点を、路面からの高さに応じて、予め設定した該当する高さの（レイヤの）リアルＵマップに投票し、レイヤ毎のリアルＵマップであるレイヤＵマップを生成する。レイヤＵマップは、マップの一例である。
【００５２】
まず、図１０にリアルＵマップの一例を示す。図１０に示すように、リアルＵマップの横軸は、実距離となっている。また、リアルＵマップの縦軸は、距離に応じた間引き率を用いて間引き処理した間引き視差となっている。具体的には、例えば５０ｍ以上の遠距離の場合、レイヤＵマップ生成部４９は、間引き処理しない視差を用いる。また、例えば２０ｍ〜５０ｍ等の中距離の場合、レイヤＵマップ生成部４９は、１／２間引き処理した間引き視差を用いる。また、例えば１０ｍ〜２０ｍ等の近距離の場合、レイヤＵマップ生成部４９は、１／３間引き処理した間引き視差を用いる。また、例えば０ｍ〜１０ｍ等の最近距離の場合、レイヤＵマップ生成部４９は、１／８間引き処理した間引き視差を用いる。
【００５３】
遠方では、認識すべきオブジェクトが小さく、視差情報が少なく、また、距離の分解能も小さいため、間引き処理は行わない。これに対して、近距離の場合は、オブジェクトが大きく写るため、視差情報が多く距離の分解能も大きい。このため、大きな間引き処理を行うことが可能となる。図１０は、頻度のリアルＵマップの一例である。この図１０からわかるように、リアルＵマップの場合、ガードレール８１、８２は、縦の直線状に表され、各車両７７、７９の形状も、実際の車両に近い形状となっている。
【００５４】
横軸を実距離とし、縦軸を視差値とした２次元ヒストグラムを作成することで、高さ情報を圧縮し、２次元平面で孤立領域の検出処理を行うことができる。このため、高速処理を可能とすることができる。
【００５５】
次に、レイヤＵマップ生成部４９は、このような頻度のリアルＵマップを用いて、各高さ範囲のリアルＵマップであるレイヤＵマップを生成する。すなわち、横軸ｘ、縦軸ｙ、視差ｄのＵマップ上に、視差画像の点（ｘ、ｙ、ｄ）を投票する際、路面形状検出部４６の路面形状検出処理により、リアルＵマップに投票される（ｘ、ｄ）の路面からの高さ（ｈ）を計算できる。レイヤＵマップ生成部４９は、レイヤＵマップに投票される点（ｘ、ｄ）の路面からの高さ（ｈ）に基づいて、予め設定した該当する高さ範囲の（レイヤの）リアルＵマップに投票することで、レイヤ毎のレイヤＵマップを生成する。
【００５６】
具体的には、例えば図１１に示すように、左右のガードレール８１、８２の間を、車両７７及び車両７９がセンターラインを挟んで対面通行をしており、車両７９と右のガードレール８２の間に、ガードレール８２に沿って二人の人間８３、８４が存在する撮像画像が得られたとする。この場合、レイヤＵマップ生成部４９は、横軸を実距離、縦軸を間引き視差とした頻度のリアルＵマップを生成する。これにより、図１２に示すように、縦の直線で表されるガードレール８１、８２の間に、各車両７７、７９と、車両７９と右のガードレール８２の間に、ガードレール８２に沿って二人の人間８３、８４が存在するリアルＵマップが生成される。
【００５７】
次に、レイヤＵマップ生成部４９は、路面形状検出部４６の路面形状検出処理により計算した、各オブジェクトの路面からの高さを検出する。これにより、ガードレール８１、８２の路面からの高さは、例えば１５０ｃｍ未満、車両７７の路面からの高さは１５０ｃｍ未満、車両７９の路面からの高さは１５０ｃｍ以上、各人間８３，８４の路面からの高さは１５０ｃｍ以上のように、各オブジェクトの路面からの高さを検出できる。
【００５８】
次に、レイヤＵマップ生成部４９は、図１３に示す路面からの高さが６０ｃｍ〜２００ｃｍのオブジェクト用のレイヤＵマップを生成する。ガードレール８１、８２、車両７７、７９及び人間８３，８４は、全て６０ｃｍ〜２００ｃｍのレイヤに含まれるオブジェクトである。このため、図１２に示したリアルＵマップと同様に、図１３に示すように、縦の直線で表されるガードレール８１、８２の間に、各車両７７、７９と、車両７９と右のガードレール８２の間に、ガードレール８２に沿って二人の人間８３、８４が存在するレイヤＵマップが生成される。
【００５９】
同様に、レイヤＵマップ生成部４９は、図１４に示す路面からの高さが１５０ｃｍ〜２００ｃｍのオブジェクト用のレイヤＵマップを生成する。この場合、路面からの高さが１５０ｃｍ未満であるガードレール８１、８２及び車両７７は、投票されないレイヤＵマップが生成される。すなわち、図１４に示すように路面からの高さが１５０ｃｍ〜２００ｃｍのオブジェクトである、車両７９及び二人の人間８３、８４が投票されたレイヤＵマップが生成される。
【００６０】
このとき、上述した２種類のレイヤＵマップにおいては、対象となる高さがオーバーラップしているため、路面からの高さが１５０ｃｍ〜２００ｃｍを示す画素は両方のレイヤＵマップに投票される。なお、本実施形態においては２種類のレイヤＵマップで、対象となる高さがオーバーラップしているが、これに限られない。例えば、１つ目のレイヤＵマップを６０ｃｍ〜１５０ｃｍ未満とし、２つ目のレイヤＵマップを１５０ｃｍ〜２００ｃｍとすることもできる。ただし、オーバーラップを設けることにより、重複した処理を省略することができるため、高速化が可能となる。
【００６１】
図１５のフローチャートは、このようなレイヤＵマップの生成動作の流れを示している。レイヤＵマップ上にレイヤとして取り扱う高さの閾値は、予め設定されている。あくまでも一例であるが、図１５の例の場合、路面からの高さが６０ｃｍ〜２００ｃｍの人領域レイヤ、１５０ｃｍ〜２００ｃｍの大人領域レイヤ及び２００ｃｍ以上の２ｍ以上領域レイヤの計３つのレイヤが予め設定されている。
【００６２】
ステップＳ１０１では、レイヤＵマップ生成部４９が、視差画像上の点（ｘ、ｙ、ｄ）からレイヤＵマップ上の対応点を計算する（ｘ、ｄ）。ステップＳ１０２では、レイヤＵマップ生成部４９が、投票される点（ｘ、ｄ）の路面からの実高さ（ｈ）を計算する。そして、レイヤＵマップ生成部４９は、ステップＳ１０３において、予め設定されているレイヤのうち、計算した実高さｈが該当するレイヤを判別して投票する（ステップＳ１０４、ステップＳ１０５、ステップＳ１０６）。
【００６３】
例えば、実高さｈ＝１７０ｃｍと計算した場合、レイヤＵマップ生成部４９は、６０ｃｍ〜２００ｃｍ領域のレイヤＵマップ及び１５０ｃｍ〜２００ｃｍ領域のレイヤＵマップに投票を行う。なお、この場合、２００ｃｍ以上のレイヤＵマップに対しては、投票は行わない。
【００６４】
具体的に説明すると、この例の場合、図１６に示すように路面からの実高さが２００ｃｍ以上のオブジェクトが投票されるレイヤと、路面からの実高さが１５０ｃｍ〜２００ｃｍのオブジェクトが投票されるレイヤと、路面からの実高さが０ｃｍ〜２００ｃｍのオブジェクトが投票されるレイヤとが、予め設定されている。すなわち、レイヤＵマップは、上述のリアルＵマップに対して、高さの情報を付加したＵマップとなっている。このため、人間及び物が隣接して存在した場合でも、正確にオブジェクトを特定して検出可能となっている。
【００６５】
複数の人が隣接して画像上に存在する場合、一般的に、路面からの高さが高い部分では独立しているが、例えば路面付近又は人が手を繋いでいる場合等のように、路面からの高さが低い部分では、視差領域が繋がっていることが多い。このため、レイヤＵマップの場合、図１７に示すように、複数の人が一つのオブジェクトとして検出される可能性がある。すなわち、図１６に示す３人の人が、レイヤＵマップ上では、図１７に示すように例えば長方形状のオブジェクトとして繋がって検出される可能性がある。
【００６６】
一方、レイヤＵマップの場合、予め設定される高さに対応するレイヤ構造でデータが格納される。このため、図１８に示すように、６０ｃｍ〜２００ｃｍの高さで設定したレイヤＵマップ上でオブジェクトのデータが結合した場合でも、他のレイヤである１５０ｃｍ〜２００ｃｍの高さで設定したレイヤＵマップ上では、図１９に示すように各オブジェクトのデータが分離されて現れる。これにより、各オブジェクトを正確に検出できる。このようなレイヤＵマップは、設定する高さの閾値により様々な用途がある。例えば、２００ｃｍ以上の高さの閾値を設定した場合、図２０に示すように路面から２００ｃｍ以上の高さの電柱及びポール等の検出が可能となる。
【００６７】
次に、このようなレイヤＵマップを用いて各オブジェクトの検出を行う孤立領域検出部５０の動作を説明する。孤立領域検出部５０は、集合検出部の一例である。孤立領域検出部５０は、各レイヤＵマップから、所定の閾値以上の視差情報の塊の領域である孤立領域（集合領域）を検出する。図２１は、孤立領域検出部５０の動作の流れを示すフローチャートである。ステップＳ１３１では、孤立領域検出部５０が、頻度のレイヤＵマップの平滑化を行う。すなわち、視差には、計算誤差等による分散がある。また、全ての画素に対する視差の計算は行われない。このため、レイヤＵマップは、ノイズを含んでいる。孤立領域検出部５０は、ノイズの除去及び検出するオブジェクトを分離し易くするために、レイヤＵマップの平滑化処理を行う。画像の平滑化と同様に、平滑化フィルタ（例えば、３画素×３画素の単純平均）をレイヤＵマップの頻度値に適用することで、ノイズとなる頻度を減少させることができる。また、オブジェクトの部分では、頻度が周囲より高い纏まったグループを形成でき、後段の孤立領域検出処理を容易化できる。
【００６８】
次に、孤立領域検出部５０は、ステップＳ１３２において、レイヤＵマップを二値化するための閾値を設定する。この二値化処理は、頻度データが存在するか否か（閾値０）で行う。孤立領域検出部５０は、ステップＳ１３３において、最初は閾値０で二値化を行う。レイヤＵマップ上に投票されるオブジェクトは、オブジェクトの高さ、形状、路面視差との分離等により、独立しているオブジェクト及び他オブジェクトと連結しているオブジェクトが存在する。このため、孤立領域検出部５０は、小さい閾値からレイヤＵマップを二値化処理し、徐々に閾値を増加させて二値化処理を行う。これにより、最初は独立した適切な大きさのオブジェクト（孤立領域）を検出し、その後、閾値を増加させていくことで連結しているオブジェクトを分離し、独立した大きさのオブジェクトとして検出できる。
【００６９】
次に、孤立領域検出部５０は、ステップＳ１３４において、値のある座標のラベリング処理を行って、孤立領域を検出する。具体的には、孤立領域検出部５０は、二値化後に黒の値となる座標(頻度値が二値化閾値より高い座標)を、その連結性に基づいてラベリングし、同一ラベルが付いた領域を一つのオブジェクトとして検出する。ラベリングの方法は、図２２に示す「×」印で示す座標が黒であり、ラベル付け対象座標である場合、「×」印で示す座標の左斜め上、上、右斜め上、左の各位置の座標である、「１」、「２」、「３」、「４」の各位置の座標がラベル付けされていれば、同じラベルを「×」印で示す座標に割り当てる。
【００７０】
図２３に示すように、「×」印で示す座標の周囲に、複数のラベルが割り当てられている場合、孤立領域検出部５０は、図２４に示すように、最も小さい値のラベルを、「×」印で示す座標に割り当てる。また、孤立領域検出部５０は、図２４に示すように、「×」印で示す座標の周囲の座標のうち、ラベルが割り当てられていた座標のラベルを、最も小さい値のラベルに置換する。図２３及び図２４の例の場合、孤立領域検出部５０は、「８」のラベルを、「×」印で示す座標に割り当てる。また、孤立領域検出部５０は、「９」又は「８」のラベルが割り当てられていた座標である、「×」印で示す座標の左斜め上、右斜め上及び左の各座標のラベルを、「８」のラベルに置換する。
【００７１】
このようなラベリング処理により検出されたオブジェクトの幅（同じラベルのオブジェクトの幅）は、実際のオブジェクトに近い幅Ｗとみなすことができる。孤立領域検出部５０は、幅Ｗが所定の範囲内のオブジェクトを、オブジェクト候補領域とみなす。
【００７２】
次に、孤立領域検出部５０は、ステップＳ１３５において、検出した複数の孤立領域の大きさをそれぞれ判定する。この大きさの判定処理は、検出対象が歩行者から大型自動車であるため、孤立領域の幅が検出対象のサイズの範囲内であるか否かを判定する処理である。孤立領域の幅が検出対象のサイズよりも大きい場合（ステップＳ１３５：Ｙｅｓ）、孤立領域検出部５０は、ステップＳ１３２に処理を戻す。そして、孤立領域検出部５０は、二値化の閾値を１つインクリメントし、検出対象のサイズよりも大きい幅の孤立領域を、再度二値化処理する。また、孤立領域検出部５０は、再度二値化処理された孤立領域をラベリング処理し、より小さな孤立領域を検出して、検出対象のサイズよりも大きいか否かの判定を行う。孤立領域検出部５０は、このように閾値設定からラベリングの処理を繰り返し行い、所定の大きさの孤立領域を検出する。
【００７３】
次に、所定の大きさの孤立領域を検出すると（ステップＳ１３５：Ｎｏ）、孤立領域検出部５０は、ステップＳ１３６において、周辺領域除去処理を行う。遠方に存在するオブジェクトで、路面検出精度が悪く、路面の視差がレイヤＵマップ内に投票され、オブジェクト及び路面の視差が一塊になって検出される場合がある。このような場合に、孤立領域検出部５０は、オブジェクト及び路面の視差が一塊となっている領域（除去領域）の左右及び近傍の領域で高さが路面に近い領域を削除する周辺領域除去処理を行う。
【００７４】
このような周辺領域除去処理を具体的に説明する。図２５に、遠方の路面が実際の高さよりも低く検出され、路面と車両が一つのオブジェクトとして検出されたレイヤＵマップを示す。この図２５において、右斜線の領域は、頻度が高い領域を示しており、左斜線の領域は、頻度が低い領域を示している。図２６は、図２５のレイヤＵマップに対応する高さのリアルＵマップである。ここでいう高さのリアルＵマップは、画素毎に最大高さの情報を持つマップである。この図２６において、右斜線の領域は、高さが高い領域を示しており、左斜線の領域は、高さが低い領域を示している。図２５及び図２６を見比べて分かるように、レイヤＵマップにおける頻度が高い領域と、高さのリアルＵマップにおける高さが高い領域とが一致しない。また、レイヤＵマップにおける頻度が低い領域も、高さのリアルＵマップにおける高さが低い領域に一致しない。
【００７５】
このような場合、孤立領域検出部５０は、レイヤＵマップの代わりに、高さのリアルＵマップを用いて、オブジェクトと路面の境界を検出して周辺領域を除去する。レイヤＵマップは、各高さ範囲の分割数（レイヤの数）の高さ情報しか有さないが、高さのリアルＵマップは、細かい分解能で高さの情報を有しているため、周辺領域の除去に適しているからである。孤立領域検出部５０は、例えば図２７のフローチャートに示す流れで、近傍領域の除去（ステップＳ１４５）、左領域の除去（ステップＳ１４６）及び右領域の除去（ステップＳ１４７）の順に、周辺領域の除去を行う。
【００７６】
ステップＳ１４５における近傍領域除去の判定は、孤立領域検出部５０が、高さの閾値を以下のように設定し、条件１、条件２又は条件３が、孤立領域の最下端(ボトムライン)から成り立ち続ける場合に、該当するラインの頻度を変更して除去する。高さの閾値を設定する場合、孤立領域検出部５０は、オブジェクト及び路面の視差が一塊となっている領域（除去領域）の最大高さに応じて、高さ閾値を設定する。例えば、最大高さが１２０ｃｍ以上の場合、孤立領域検出部５０は、高さ閾値を６０ｃｍに設定する。また、最大高さが１２０ｃｍ未満の場合、孤立領域検出部５０は、高さ閾値を４０ｃｍに設定する。
【００７７】
条件１は、「ライン内に高さを持つ点が、例えば５つ等の所定の数以下で、高さ閾値以上の高さを持つ点が存在しないこと」である。また、条件２は、「ライン内に高さ閾値以上の高さを持つ点の数が、高さ閾値未満の高さを持つ点の数より少なく、高さ閾値以上の高さを持つ点の数が２つ未満であること」である。また、条件３は、「高さ閾値以上の高さを持つ点の数が、ライン全体の高さを持つ点の数の１０％未満であること」である。孤立領域検出部５０は、上述の条件１、条件２又は条件３が、孤立領域の最下端(ボトムライン)から成り立ち続ける場合に、該当するラインの頻度を変更して除去する。
【００７８】
また、孤立領域検出部５０は、ステップＳ１４６及びステップＳ１４７における左右領域除去の判定は、高さ閾値を以下のように設定し、条件４、条件５又は条件６が孤立領域の左端又は右端の列から成り立ち続ける場合に、該当する列の頻度を変更して除去する。高さ閾値を設定する場合、孤立領域検出部５０は、オブジェクト及び路面の視差が一塊となっている領域（除去領域）の最大高さに応じて設定する。例えば、最大高さが１２０ｃｍ以上の場合、孤立領域検出部５０は、高さ閾値を６０ｃｍに設定する。また、最大高さが１２０ｃｍ未満の場合、孤立領域検出部５０は、高さ閾値を４０ｃｍに設定する。
【００７９】
条件４は、「列内に高さを持つ点が、例えば５つ等の所定の数以下で、高さ閾値以上の高さを持つ点がないこと」である。条件５は、「列内に高さ閾値以上の高さを持つ点の数が、高さ閾値未満の高さを持つ点の数より少なく、高さ閾値以上の高さを持つ点の数が２つ未満であること」である。条件６は、「高さ閾値以上の高さを持つ点の数が、列全体の高さを持つ点の数の１０％未満であること」である。孤立領域検出部５０は、条件４、条件５又は条件６が孤立領域の左端又は右端の列から成り立ち続ける場合に、該当する列の頻度を変更して除去する。
【００８０】
図２８において、中心に位置する黒塗りの領域は、高さが高い孤立領域を示している。また、右斜線、左斜線及び網線で示す孤立領域は、それぞれ高さが低い孤立領域を示している。このうち、右斜線で示す孤立領域は、孤立領域検出部５０により設定された高さ閾値と、上述の条件１、条件２又は条件３に基づいて除去される。また、左斜線及び網線で示す孤立領域は、孤立領域検出部５０により設定された高さ閾値と、上述の条件４、条件５又は条件６に基づいて除去される。これにより、図２８の中心に示す黒塗りの孤立領域のみを抽出できる。
【００８１】
次に、孤立領域検出部５０は、図２１のフローチャートのステップＳ１３７において、他に除去領域が存在するか否かを判別する。他に除去領域が存在する場合（ステップＳ１３７：Ｙｅｓ）、孤立領域検出部５０は、ステップＳ１３４に処理を戻し、再度ラベリング処理を行い、孤立領域の再設定を行う。
【００８２】
次に、孤立領域検出部５０は、ステップＳ１３７において、他に除去領域は存在しないと判別すると（ステップＳ１３７：Ｎｏ）、ステップＳ１３８に処理を進め、周辺領域除去を行った孤立領域の大きさ（幅、高さ、距離）を判定する。
【００８３】
例えば、自動車とバイク、自動車と歩行者、自動車同士等のように、オブジェクト同士が横に並んで近接している場合、レイヤＵマップの平滑化が原因で、複数のオブジェクトの孤立領域を、一つのオブジェクトの孤立領域として検出するおそれがある。または、視差画像の画素点数を補うために視差補間処理を行う場合、異なるオブジェクト同士の視差が繋がることがある。このような場合、孤立領域検出部５０は、以下に説明する横方向分離処理を行い、複数のオブジェクトが重なっている一つの孤立領域を、オブジェクト毎の複数の孤立領域に分離する。
【００８４】
これに対して、隣の車線を走行している複数の先行車が遠方にいる場合、ステレオ画像から得られる視差の分散が大きいと、レイヤＵマップ上では、各オブジェクトの視差が上下に伸び、連結することがある。そして、連結されたオブジェクトの孤立領域を、一つのオブジェクトの孤立領域として検出するおそれがある。このような場合、孤立領域検出部５０は、以下に説明する縦方向分離処理を行い、一つのオブジェクトとして検出された孤立領域を、手前を走る先行車両の孤立領域と、先行車両の前方を走行する車両の孤立領域とに分離する。
【００８５】
ステップＳ１３８では、孤立領域検出部５０が、周辺領域除去を行った孤立領域の大きさ（幅、高さ、距離）を判定することで、このような横方向分離処理又は縦方向分離処理を行うか否かを判別する。孤立領域検出部５０は、いずれの分離処理も行わないと判別した場合は、ステップＳ１３９に処理を進め、周辺領域除去処理を施した孤立領域を、オブジェクト候補として、例えばＲＡＭ１５等の記憶部に一旦、登録する。
【００８６】
これに対して、例えば幅２ｍの自動車に、幅５０ｃｍの別のオブジェクトが近接している場合、レイヤＵマップから検出される孤立領域は、ステップＳ１３８の大きさ判定において、２．５ｍを超える幅のオブジェクトとして判定される。このような場合、孤立領域検出部５０は、ステップＳ１４０に処理を進め、横方向分離処理を実行すると共に、ステップＳ１４２に処理を進め、縦方向分離処理を実行する。
【００８７】
図２９に、孤立領域検出部５０が実行する横方向分離処理の流れを示すフローチャートを示す。ステップＳ１５１では、孤立領域検出部５０が、図３０に示すように各Ｘ座標の頻度情報と高さ情報とを積算処理し、各Ｘ座標の積算値を縦方向（Ｙ方向）に積分処理して横方向の評価値を算出する。
【００８８】
図３１に、横方向の評価値の波形の一例を示す。この評価値のうち、ボトムＢＴ部分が評価値の最小値（最小評価値）を示している。ステップＳ１５２では、孤立領域検出部５０が、この最小評価値の位置を検出する。ステップＳ１５３では、孤立領域検出部５０が、各評価値の平均値に、例えば０．５等の所定の係数を乗算処理し、評価値の二値化閾値Ｔを算出する。そして、孤立領域検出部５０は、図３１中点線で示すように、二値化閾値Ｔを評価値に設定する。そして、ステップＳ１５４において、この二値化閾値に基づいて、評価値を二値化する。
【００８９】
評価値を用いる理由は、以下のとおりである。まず、連結している部分の頻度値を、オブジェクトの頻度値より比較的小さな値で取り扱うことができるためである。また、高さのリアルＵマップでは、連結している部分はオブジェクトの部分と高さが異なり、高さを持つデータが少ないためである。また、視差補間の影響で連結している場合、高さのリアルＵマップにおける視差の分散が小さいためである。
【００９０】
次に、孤立領域検出部５０は、ステップＳ１５５において、図３１に示すように最小評価値を含み、二値化閾値Ｔより小さい評価値を含む領域を分離領域ＳＲとして設定し、分離領域ＳＲの両端を分離境界ＳＫとする。孤立領域検出部５０は、分離境界ＳＫの内側の頻度値を変更することで、各オブジェクトに対応する孤立領域を横方向に分離する。
【００９１】
図２１のフローチャートのステップＳ１４１では、孤立領域検出部５０が、このような横方向分離処理により分離できないオブジェクトを（ステップＳ１４１：Ｎｏ）、オブジェクト候補としてＲＡＭ１５等の記憶部に登録する。また、孤立領域検出部５０は、横方向分離処理ができた場合は（ステップＳ１４１：Ｙｅｓ）、さらに分離できる可能性があるため、ステップＳ１３４に処理を戻し、再度、横方向分離処理を試みる。
【００９２】
図３２に、平滑化処理後のレイヤＵマップを示す。この図３２に示すレイヤＵマップは、左斜線の孤立領域が頻度の高い孤立領域を示しており、右斜線の孤立領域が頻度の低い孤立領域を示している。また、図３２の下側の頻度の高い孤立領域（左斜線の孤立領域）は、直前を走行する先行車両に対応する孤立領域である。また、図３２の上側（奥側）の頻度の高い孤立領域（左斜線の孤立領域）は、直前を走行する先行車両のさらに先を走行する先行車両に対応する孤立領域である。
【００９３】
このような図３２のレイヤＵマップの場合、先行車両の左右端に視差が集中し、視差の分散も大きいため、頻度の高い孤立領域の両側で左カーブを描くように視差が伸びている。視差の伸びが大きいため、図３２中点線の楕円で示すように、手前の先行車両の視差の伸びと、奥側の先行車両の視差の伸びとが連結し、２台の先行車両が１つの孤立領域として検出される。このような場合、検出された孤立領域の幅は、実際の先行車両の幅より大きくなる。このため、孤立領域検出部５０は、先行車両の実幅を算出するための領域の設定を行う。先行車両の実幅を算出するための領域としては、孤立領域検出部５０は、以下に示すように孤立領域の最近傍距離Ｚｍｉｎの大きさに応じて所定の距離範囲Ｚｒを設定する。そして、孤立領域検出部５０は、その距離範囲に相当する視差範囲の領域内で手前の先行車の実幅を探索する。図３２に示す距離範囲の領域が実幅算出領域ＪＲである。このＺｒの値は撮像ユニット２の撮像画像から得られる視差の分散の大きさから設定できる。
【００９４】
具体的には、孤立領域検出部５０は、実幅算出領域の距離範囲Ｚｒを、以下のように設定する。すなわち、例えば「Ｚｍｉｎ＜５０ｍ」の場合、孤立領域検出部５０は、Ｚｒ＝２０ｍに設定する。また、例えば「５０ｍ＜＝Ｚｍｉｎ＜１００ｍ」の場合、孤立領域検出部５０は、Ｚｒ＝２５ｍに設定する。さらに、例えば「Ｚｍｉｎ＞１００ｍ」の場合、孤立領域検出部５０は、Ｚｒ＝３０ｍに設定する。孤立領域検出部５０は、孤立領域内で横方向に連結している複数のオブジェクトを、このような横方向分離処理により分離する。
【００９５】
次に、ステップＳ１４２における縦方向分離処理を説明する。図３２に示したように、レイヤＵマップ上で縦方向にオブジェクトが並んでおり、２台以上の縦列状態を１つの孤立領域として検出した場合、２台以上の車が持つ視差の範囲と車間距離を合せた範囲が、その孤立領域の視差範囲となる。例えば２０ｍ以上の遠方となると、ガードレール又は壁以外で視差（距離）が広い範囲を有し、縦列方向の分離が困難となる。このため、孤立領域検出部５０は、距離に応じた孤立領域の視差（距離）範囲が大きい孤立領域を対象として、縦方向分離処理を行う。なお、ガードレール又は建物の壁等は、視差範囲が広くても幅が狭い。孤立領域検出部５０は、幅の狭い孤立領域に対しては、縦方向分離処理を実行しない。
【００９６】
具体的には、孤立領域検出部５０は、孤立領域の最近傍距離を「Ｚｍｉｎ」、最遠方距離を「Ｚｍａｘ」、幅を「Ｗ」とし、以下の条件７又は条件８のいずれかを満たすときに、縦方向分離処理を実行する。条件７は、「Ｗ＞１５００、かつ、Ｚｍｉｎ＞１００ｍのとき、Ｚｍａｘ−Ｚｍｉｎ＞５０ｍ」である。条件は、「Ｗ＞１５００、かつ、１００ｍ≧Ｚｍｉｎ＞２０ｍのとき、Ｚｍａｘ−Ｚｍｉｎ＞４０ｍ」である。
【００９７】
図３３のフローチャートに、縦方向分離処理の流れを示す。まず、図３２は、上述のように、左隣の車線を走行している２台の先行車両が一つの孤立領域として検出されたレイヤＵマップを示している。この例の場合、図３２中、下側(手前)の頻度の高い斜線の領域が、自車両の直前を走行する先行車両を表し、図３２中、上側(奥側)の頻度の高い斜線の領域が、先行車両のさらに前を走る先行車両を示している。先行車両の左右端に視差が集中し、また、分散も大きいため、頻度の高い領域の両側で左カーブを描くように視差が伸びている。この視差の伸びが大きいため、手前の先行車両の視差の伸びと、奥側の先行車両の視差の伸びとが連結し、２台の先行車両が一つの孤立領域として検出されている。
【００９８】
このような場合、２台の先行車両の幅が重なって検出されているため、実際の１台分の先行車両の幅より、大きい幅として、孤立領域の幅が検出される。このため、孤立領域検出部５０は、図３３のフローチャートのステップＳ１６１において、実幅を算出するための領域の設定を行う。
【００９９】
具体的には、孤立領域検出部５０は、孤立領域のＺｍｉｎからＺｍｉｎの大きさに応じて所定の距離範囲Ｚｒを以下に説明するように設定する。
【０１００】
Ｚｍｉｎ＜５０ｍの場合、Ｚｒ＝２０ｍに設定
５０ｍ≦Ｚｍｉｎ＜１００ｍの場合、Ｚｒ＝２５ｍに設定
Ｚｍｉｎ＞１００ｍの場合、Ｚｒ＝３０ｍに設定
【０１０１】
孤立領域検出部５０は、このように設定した距離範囲に相当する視差範囲の領域内で、手前の先行車両の実幅を検出する．図３２の括弧の範囲の領域が実幅算出領域ＪＲである。孤立領域検出部５０は、撮像ユニット２から得られる視差の分散の大きさに基づいて、所定の距離範囲Ｚｒの値を設定する。
【０１０２】
次に孤立領域検出部５０は、ステップＳ１６２において、実幅算出領域ＪＲ内で横方向評価値を算出する。孤立領域検出部５０は、図３４に示すように実幅算出領域ＪＲのライン毎に積算処理した頻度値を、各ラインの評価値とする。また、孤立領域検出部５０は、図３５に示すように、評価値が最大のラインを実幅検出位置とする。
【０１０３】
次に、孤立領域検出部５０は、ステップＳ１６３において、図３５に示すように、実幅検出位置における頻度値が、連続して存在し、かつ、最大の長さ（幅）を有する実幅領域を検出し、検出した最大の長さを実幅とする。図３５の例の場合、実幅は５となる。
【０１０４】
次に、孤立領域検出部５０は、ステップＳ１６４において、実幅の境界の外側を分離境界とし、分離境界を基準として、孤立領域の各視差における分離境界の位置を順次計算して設定する。すなわち、図３６に示すように、撮像ユニット２のカメラのレンズ中心をＯ、カメラの向いている方向をカメラ中心軸（レイヤＵマップの中心の縦軸）、カメラ中心軸の鉛直方向を横軸とする。例えば、実幅領域の分離境界の位置が、距離Ｚ０、横位置Ｘ０とする。このとき距離Ｚにおける分離境界の位置Ｘは、「Ｘ＝Ｘ０×（Ｚ／Ｚ０）」となる。
【０１０５】
また、撮像ユニット２の基線長Ｂと焦点距離Ｆを掛け合わせた値をＢＦとし、Ｚ０に対応する視差をｄ０、Ｚに対応する視差をｄ、オフセット（ｏｆｆｓｅｔ）を無限遠における視差とする。この場合、「Ｚ＝ＢＦ／（ｄ−ｏｆｆｓｅｔ）」、「Ｚ０＝ＢＦ／（ｄ０−ｏｆｆｓｅｔ）」となる。このため、「Ｘ＝Ｘ０×（Ｚ／Ｚ０）」の数式を「Ｘ＝Ｘ０×（ｄ０−ｏｆｆｓｅｔ）／（ｄ−ｏｆｆｓｅｔ）」のように変形できる。
【０１０６】
視差ｄとレイヤＵマップの間引き視差との対応は分かっているため、孤立領域内の分離境界の位置を、全ての間引き視差の値で決定できる。図３７の黒塗りの領域が、分離境界となる領域を示している。これにより、ステップＳ１６５において、自車両の直前を走行する先行車両（手前のオブジェクト）と、先行車両のされに先を走行する先行車両（奥のオブジェクト）とを分離することができる。
【０１０７】
なお、図３７の例の場合、孤立領域の左下に縦に長い領域が分離される。しかし、分離された縦に長い領域は、幅が細いため、孤立領域検出部５０は、ノイズとして処理する。また、図３７の例は、先行車両が左隣の車線を走行している例であったが、先行車両が右隣の車線を走行している場合は、孤立領域の頻度マップは、図３２の例を左右反転した分布となる。
【０１０８】
自車両の走行車線の隣の車線の遠方を複数の先行車両が走行している場合、撮像画像から得られる視差の分散が大きいため、レイヤＵマップ上では、各オブジェクトの視差が上下に伸びて連結し、一つのオブジェクトとして誤検出されるおそれがある。しかし、このような縦方向分離処理を行うことで、連結して検出されるオブジェクトを分離して、複数のオブジェクトとして検出できる。すなわち、この例の場合、手前を走る先行車両と、さらに前方を走行する先行車両とを分離して認識できる。
【０１０９】
このような縦方向分離処理を行うと、孤立領域検出部５０は、図２１のフローチャートのステップＳ１４３に処理を進め、オブジェクトの縦方向分離を行うことができたか否かを判別する。そして、オブジェクトの縦方向分離を行うことができたと判別した場合（ステップＳ１４３：Ｙｅｓ）、さらに分離できる可能性があるため、孤立領域検出部５０は、ステップＳ１３４に処理を戻し、再度、縦方向分離処理を試みる。これに対して、オブジェクトの縦方向分離を行うことができなかったと判別した場合（ステップＳ１４３：Ｎｏ）、孤立領域検出部５０は、ステップＳ１３９に処理を進め、縦方向分離処理により分離できないオブジェクトを、オブジェクト候補としてＲＡＭ１５等の記憶部に登録する。
【０１１０】
次に、図３８のフローチャートに、孤立領域検出部５０における上述の孤立領域検出処理の流れ、及び、検出された孤立領域に基づく、分類部５１におけるオブジェクト認識処理の流れを示す。図３８のフローチャートのステップＳ１１１〜ステップＳ１１６が、孤立領域検出部５０における孤立領域検出処理の流れを示し、ステップＳ１１７〜ステップＳ１２７が、分類部５１におけるオブジェクト認識処理の流れを示している。
【０１１１】
なお、この図３８のフローチャートの説明において、高さの閾値が６０ｃｍ〜２００ｃｍに設定されたレイヤＵマップを「ＬＲＵＤ＿Ｈ」という。また、高さの閾値が１５０ｃｍ〜２００ｃｍに設定されたレイヤＵマップを「ＬＲＵＤ＿Ａ」という。また、高さの閾値が２００ｃｍ〜に設定されたレイヤＵマップを「ＬＲＵＤ＿Ｔ」という。
【０１１２】
まず、孤立領域検出部５０は、ステップＳ１１１において、ＬＲＵＤ＿Ｈのデータの二値化処理を行う。次に、孤立領域検出部５０は、ステップＳ１１２において、二値化されたＬＲＵＤ＿Ｈに対してラベリング処理を施し、孤立領域の検出を行う。
【０１１３】
同様に、孤立領域検出部５０は、ステップＳ１１３において、ＬＲＵＤ＿Ａのデータの二値化を行い、ステップＳ１１４において、二値化されたＬＲＵＤ＿Ａに対してラベリング処理を行い、孤立領域の検出を行う。また、孤立領域検出部５０は、ステップＳ１１５において、ＬＲＵＤ＿Ｔのデータの二値化処理を行い、ステップＳ１１６において、二値化されたＬＲＵＤ＿Ｔに対してラベリング処理を行い、孤立領域の検出を行う。
【０１１４】
ＬＲＵＤ＿Ａの範囲（１５０ｃｍ〜２００ｃｍ）は、ＬＲＵＤ＿Ｈ（６０ｃｍ〜２００ｃｍ）の範囲に含まれている。このため、孤立領域検出部５０は、ＬＲＵＤ＿Ａに対する二値化処理及びラベリング処理は、ＬＲＵＤ＿Ｈで検出された孤立領域内に限定して処理を行う。これにより、重複した処理を省略して、二値化処理及びラベリング処理を高速化できる。
【０１１５】
ここまでの処理の具体例を説明する。図３９は、撮像画像の一例である。この図３９に示す撮像画像の場合、奥側に車両８５の側面が写っており、手前左側に第１の人グループ８６が、手前右側の奥寄りに第２の人グループ８７が写っている。また、第２の人グループ８７の右側に電柱９３が写っている。
【０１１６】
車両８５は、路面からの実高さが１５０ｃｍ以上２００ｃｍ未満となっている。第１の人グループ８６は、路面からの実高さが１５０ｃｍ未満の子供８８、及び、路面からの実高さが１５０ｃｍ以上２００ｃｍ未満の大人８９のグループとなっている。また、第２の人グループ８７は、路面からの実高さが１５０ｃｍ以上２００ｃｍ未満の２人の大人９１、９２のグループとなっている。電柱９３は、路面からの実高さが２００ｃｍ以上となっている。
【０１１７】
閾値が６０ｃｍ〜２００ｃｍに設定されたレイヤＵマップに、図３９の撮像画像に対応する視差画像を投票すると、図４０に示すレイヤＵマップとなる。閾値が６０ｃｍ〜２００ｃｍの場合、上述の車両８５、第１、第２の人グループ８６、８７及び電柱９３が、それぞれ孤立領域として検出される。すなわち、第１、第２の人グループ８６、８７は、それぞれ複数の人（子供８８、大人８９、大人９１、大人９２）が存在するが、それぞれ連結した一塊の孤立領域として検出される。
【０１１８】
これに対して、図４１は、閾値が１５０ｃｍ〜２００ｃｍに設定されたレイヤＵマップに、図３９の撮像画像に対応する視差画像を投票したレイヤＵマップである。閾値が１５０ｃｍ〜２００ｃｍの場合、路面からの実高さが１５０ｃｍ未満の子供８８はレイヤＵマップ上に投票されない。このため、大人８９のみが、孤立領域として検出される。また、第２の人グループ８７において、大人９１及び大人９２は、路面からの高さが１５０ｃｍ以下の部分で接触している場合、大人９１及び大人９２を、それぞれ二つの孤立領域として検出できる。
【０１１９】
また、図４２は、閾値が２００ｃｍ以上に設定されたレイヤＵマップに、図３９の撮像画像に対応する視差画像を投票したレイヤＵマップである。閾値が２００ｃｍ以上の場合、電柱９３のみが孤立領域として検出される。図４０〜図４２に示す各オブジェクトを重ね合わせると、図４３に示すレイヤＵマップとなる。左斜線の孤立領域が、閾値が６０ｃｍ〜２００ｃｍに設定されたレイヤＵマップから検出される孤立領域である。また、黒塗りの孤立領域が、閾値が１５０ｃｍ〜２００ｃｍに設定されたレイヤＵマップから検出される孤立領域であり、左斜線の孤立領域が、閾値が２００ｃｍ以上に設定されたレイヤＵマップから検出される孤立領域である。
【０１２０】
次に、このような孤立領域の検出処理が完了すると、分類部５１が、オブジェクトタイプの分類処理を行う。すなわち、孤立領域の検出処理が完了すると、図３８のフローチャートの処理がステップＳ１１７に進む。ステップＳ１１７では、分類部５１が、ＲＡＭ１５等の記憶部に記憶されているオブジェクト情報を参照し、ＬＲＵＤ＿Ｈの孤立領域のオブジェクトの種類及びサイズを検出する。このオブジェクト情報は、表１及び表２に示す情報となっている。具体的には、一例として表１に示すように「幅１１００ｍｍ未満、高さ２５００ｍｍ未満、奥行き１０００ｍｍ未満」のサイズのオブジェクトの種類は、オートバイ及び自転車として規定されている。同様に、「幅１１００ｍｍ未満、高さ２５００ｍｍ未満、奥行き１０００ｍｍ以下」のサイズのオブジェクトの種類は、歩行者として規定されている。
【０１２１】
同様に、「幅１７００ｍｍ未満、高さ１７００ｍｍ未満、奥行き１００００ｍｍ未満」のサイズのオブジェクトの種類は、小型車として規定されている。また、「幅１７００ｍｍ未満、高さ２５００ｍｍ未満、奥行き１００００ｍｍ未満」のサイズのオブジェクトの種類は、普通車として規定されている。また、「幅３５００ｍｍ未満、高さ３５００ｍｍ未満、奥行き１５０００ｍｍ未満」のサイズのオブジェクトの種類は、トラック車両として規定されている。
【０１２２】
【表１】
0006753134.tif 000002
【０１２３】
また、歩行者の種類のオブジェクトにおいては、例えば表２に示すように「幅１２００ｍｍ未満、高さ２０００ｍｍ未満、奥行き１２００ｍｍ未満」のオブジェクトは、大人の歩行者に規定されている。また、「幅１２００ｍｍ未満、高さ１５００ｍｍ未満、奥行き１２００ｍｍ未満」のオブジェクトは、子供の歩行者に規定されている。また、「幅２５００ｍｍ未満、高さ１５００ｍｍ未満、奥行き２５００ｍｍ未満」のオブジェクトは、付随物がある歩行者に規定されている。
【０１２４】
【表２】
0006753134.tif 000003
【０１２５】
分類部５１は、ステップＳ１１７において、路面からの実高さが６０ｃｍ〜２００ｃｍの範囲のＬＲＵＤ＿Ｈの孤立領域は、表２に示した付随物を備えた歩行者サイズ未満であるか否かを判別する。付随物は、例えば図３９に示す子供８８である。通常、身長１５０ｃｍ〜２００ｃｍの範囲の大人８９，９１、９２の孤立領域は、表２に示すように幅が１２００ｍｍ以下である。これに対して、図３９に示した第１の人グループ８６のように、付随物である子供と手を繋いでいる大人の歩行者に対応する孤立領域は、表２に示すように幅が２５００ｍｍ以下となる。
【０１２６】
分類部５１は、ＬＲＵＤ＿Ｈ上の孤立領域が、付随物を備えた歩行者サイズ以上であると判別した場合（ステップＳ１１７：Ｎｏ）、処理をステップＳ１２０及びステップＳ１２１に進める。これに対して、ＬＲＵＤ＿Ｈの孤立領域が歩行者サイズ未満であると判別した場合（ステップＳ１１７：Ｙｅｓ）、分類部５１は、処理をステップＳ１１８に進める。
【０１２７】
ステップＳ１１８では、分類部５１が、路面からの実高さが１５０ｃｍ〜２００ｃｍの範囲のＬＲＵＤ＿Ａに現れている、ＬＲＵＤ＿Ｈの孤立領域に相当する孤立領域のサイズは、表２に示す大人の歩行者サイズ以上であるか否かを判別する。図３９に示す第１の人グループ８６の子供８８が身長１５０ｃｍ未満である場合（ステップＳ１１８：Ｎｏ）、図４１に示すように路面からの実高さが１５０ｃｍ〜２００ｃｍの範囲のＬＲＵＤ＿Ａには現れない。分類部５１は、この場合、ステップＳ１２２に処理を進める。そして、分類部５１は、歩行者サイズであり、かつ、ＬＲＵＤ＿Ａには現れない孤立領域のオブジェクトを、ステップＳ１２２において、身長１５０ｃｍ未満の子供の歩行者とするオブジェクトタイプの分類を行い、この分類情報を、孤立領域のオブジェクトに関連付けて、例えばＲＡＭ１５等の記憶部に一旦登録する。
【０１２８】
また、ＬＲＵＤ＿Ａに現れている、ＬＲＵＤ＿Ｈの孤立領域に相当する孤立領域のサイズは、表２に示す大人の歩行者サイズ以上と判別した場合（ステップＳ１１８：Ｙｅｓ）、分類部５１は、ステップＳ１１９に処理を進める。ステップＳ１１９では、分類部５１が、例えば図４０に示す路面からの実高さが６０ｃｍ〜２００ｃｍの範囲のＬＲＵＤ＿Ｈに現れている各孤立領域と、図４２に示す路面からの実高さが２００ｃｍ以上の範囲のＬＲＵＤ＿Ｔに現れている各孤立領域とを比較する。そして、分類部５１は、ＬＲＵＤ＿Ｈに現れている各孤立領域及びＬＲＵＤ＿Ｔに現れている各孤立領域で、位置が一致する孤立領域を検出する。
【０１２９】
例えば、図４２に示す電柱９３は、図４０に示すＬＲＵＤ＿Ｈ上の孤立領域の位置と、図４２に示すＬＲＵＤ＿Ｔ上の孤立領域の位置とが一致する（ステップＳ１１９：Ｙｅｓ）。このため、分類部５１は、ステップＳ１２３において、ＬＲＵＤ＿Ｈ上の孤立領域のオブジェクトを、例えば電柱９３等の２００ｃｍ以上のオブジェクトとするオブジェクトタイプの分類を行い、例えばＲＡＭ１５等の記憶部に一旦登録する。
【０１３０】
これに対して、ＬＲＵＤ＿Ｈに現れている孤立領域の位置と、ＬＲＵＤ＿Ｔに現れている孤立領域の位置とが不一致ということは（ステップＳ１１９：Ｎｏ）、ＬＲＵＤ＿Ｈに現れている孤立領域は、例えば図４１に示す大人８９、９１、９２のように、１５０ｃｍ〜２００ｃｍの範囲のオブジェクトであることを意味する。このため、分類部５１は、ステップＳ１２４において、ＬＲＵＤ＿Ｈ上のオブジェクトを、身長１５０ｃｍ以上の人間とするオブジェクトタイプの分類を行い、例えばＲＡＭ１５等の記憶部に一旦登録する。
【０１３１】
一方、ステップＳ１１７で、ＬＲＵＤ＿Ｈの孤立領域は、表１に示した付随物を備えた歩行者サイズ以上と判別することで、処理をステップＳ１２０に進めると、分類部５１は、ＬＲＵＤ＿Ｈ上で付随物を備えた歩行者サイズ以上のサイズと判別した孤立領域に相当するＬＲＵＤ＿Ａ上の孤立領域は、表２に示す大人の歩行者サイズであるか否かを判別する。付随物を備えた歩行者の場合、子供の身長が１５０ｃｍ未満の場合、ＬＲＵＤ＿Ａ上には、身長が１５０ｃｍ以上の大人８９の孤立領域のみが現れる。このため、分類部５１は、ＬＲＵＤ＿Ｈの孤立領域が付随物を備えた歩行者サイズ以上、かつ、対応するＬＲＵＤ＿Ａ上の孤立領域が、大人の歩行者サイズである場合（ステップＳ１２０：Ｙｅｓ）、ステップＳ１２５において、ＬＲＵＤ＿Ａ上の孤立領域は、付随物を所持している歩行者として分類し、例えばＲＡＭ１５等の記憶部に一旦登録する。
【０１３２】
また、ステップＳ１１７で、ＬＲＵＤ＿Ｈの孤立領域は、付随物を備えた歩行者サイズ以上であると判別することで（ステップＳ１２０：Ｎｏ）、処理をステップＳ１２１に進めると、分類部５１は、ＬＲＵＤ＿Ａの孤立領域は、表２に示す子供の歩行者サイズ未満か否かを判別する。子供の歩行者サイズ未満であると判別した場合（ステップＳ１２１：Ｙｅｓ）、分類部５１は、ステップＳ１２６に処理を進める。そして、分類部５１は、ステップＳ１２６において、ＬＲＵＤ＿Ａの孤立領域は、例えばガードレール等の背が低く長いオブジェクトとするオブジェクトタイプの分類を行い、ＲＡＭ１５等の記憶部に一旦登録する。これに対して、子供の歩行者サイズ以上であると判別した場合（ステップＳ１２１：Ｎｏ）、分類部５１は、ステップＳ１２７に処理を進め、ＬＲＵＤ＿Ａの孤立領域は、自転車、オートバイ、自動車、バス又はトラック等の人以上のサイズのオブジェクトとするオブジェクトタイプの分類を行い、ＲＡＭ１５等の記憶部に一旦登録する。
【０１３３】
このように分類部５１は、各レイヤＵマップにおける孤立領域の分布に基づいて、各孤立領域に対応するオブジェクトタイプを分類する。
【０１３４】
このようなオブジェクト分類動作の流れを再度説明すると、例えば図３９に示す第１の人グループ８６の場合、路面からの実高さが６０ｃｍ〜２００ｃｍの範囲のレイヤＵマップ（ＬＲＵＤ＿Ｈ）において、図４０に示すように歩行者サイズ以上の孤立領域として現れる。しかし、第１の人グループ８６の場合、路面からの実高さが１５０ｃｍ〜２００ｃｍの範囲のレイヤＵマップ上（ＬＲＵＤ＿Ａ）では、図４１に示すように大人の歩行者サイズの孤立領域として現れる。このため、分類部５１は、ＬＲＵＤ＿Ｈ上の孤立領域において、人サイズより大きいサイズの孤立領域であり、ＬＲＵＤ＿Ａ上において、人サイズとなる孤立領域を、付随物を所持している歩行者として登録する（ステップＳ１２５）。
【０１３５】
一方、図３９に示す第２の人グループ８７の場合、ＬＲＵＤ＿Ｈ上では、人サイズより大きなサイズの１つの孤立領域が、ＬＲＵＤ＿Ａ上では、人サイズとなる２つの孤立領域となる。このため、２つの孤立領域は、１５０ｃｍ以上のサイズの大人の歩行者としてそれぞれ登録される。車両は、ＬＲＵＤ＿Ｈ及びＬＲＵＤ＿Ａの双方において、人サイズより大きい孤立領域として検出されるため、人サイズ以上のオブジェクトとして登録される。また、図３９に示す電柱９３は、ＬＲＵＤ＿Ｈ及びＬＲＵＤ＿Ａの双方において、人サイズとなるが、２００ｃｍ以上の範囲のレイヤＵマップ（ＬＲＵＤ＿Ｔ）上にも、孤立領域として存在するため、２ｍ以上の高さをもつオブジェクトとして登録する。このようにレイヤＵマップ内で検出された孤立領域を立体物候補として、それぞれのサイズや各レイヤ間（ＬＲＵＤ＿Ｈ〜ＬＲＵＤ＿Ｔ間）での対応関係からオブジェクトタイプを分類し、ＲＡＭ１５等に登録する。
【０１３６】
すなわち、視差画像中におけるオブジェクトの実幅及び実高は、以下の数式で算出できる。
【０１３７】
実幅＝オブジェクトまでの距離×（視差画像におけるオブジェクト領域の幅）／ｆ
実高＝オブジェクトまでの距離×（視差画像におけるオブジェクト領域の高さ）／ｆ
【０１３８】
また、レイヤＵマップの矩形領域の最小視差ｄｍｉｎと最大視差ｄｍａｘから、オブジェクトの奥行きも、以下の数式で算出できる。
【０１３９】
奥行き＝ＢＦ×（１／（ｄｍｉｎ−ｏｆｆｓｅｔ）−１／（ｄｍａｘ−ｏｆｆｓｅｔ））  
【０１４０】
分類部５１は、これらの情報に基づいて、例えば表１に示す歩行者、自転車、小型車、トラック等のオブジェクトタイプの分類を行う。
【０１４１】
次に、レイヤＵマップで検出した孤立領域を囲む矩形の幅は、検出したオブジェクトの幅、高さは検出したオブジェクトの奥行きに相当する。また、オブジェクトの高さは、レイヤＵマップの高さの最大値である。図４に示す対応領域検出部５２は、オブジェクトの正確な位置及び高さを検出するために、レイヤＵマップで検出した孤立領域に対応する視差画像の対応領域を検出する。
【０１４２】
すなわち、レイヤＵマップで検出した孤立領域の位置、幅及び最小視差から、視差画像で検出すべき範囲（ｘｍｉｎ、ｘｍａｘ）を決定できる。また、視差画像において、オブジェクトの高さ及び位置（ｙｍｉｎ＝最大視差ｄｍａｘの時の路面からの最大高さに相当するｙ座標から、ｙｍａｘ＝最大視差ｄｍａｘから得られる路面の高さを示すｙまで）を決定できる。対応領域検出部５２は、オブジェクトの正確な位置を検出するため、設定した画像領域を走査し、孤立領域検出した矩形の奥行き（最小視差ｄｍｉｎ、最大視差ｄｍａｘ）の範囲の値を視差に持つ画素を候補画素として抽出する。そして、対応領域検出部５２は、抽出した候補画素群の中で、検出幅に対して横方向に所定の割合以上存在するラインを候補ラインとする。
【０１４３】
候補ラインが存在する領域は、例えば図４４に示すように、車両７７、７９を囲む矩形１１１、１１２となる。次に、対応領域検出部５２は、縦方向走査を行い、注目しているラインの周囲に候補ラインが所定の密度以上存在する場合に、その注目ラインをオブジェクトラインとして検出する。
【０１４４】
次に、図４に示す領域抽出部５３は、視差画像の探索領域でオブジェクトラインを検出し、オブジェクトラインの最下端及び最上端を決定する。そして、領域抽出部５３は、図４５に示すようにオブジェクトライン群の外接矩形１１１、１１２を視差画像におけるオブジェクト領域として決定する。
【０１４５】
図４６のフローチャートに、対応領域検出部５２及び領域抽出部５３における、視差画像の対応領域検出処理の流れを示す。まず、ステップＳ１７１において、対応領域検出部５２が、レイヤＵマップの孤立領域の位置、幅及び最小視差から、視差画像内のｘの探索範囲を決定する。次にステップＳ１７２において、対応領域検出部５２が、孤立領域の最大視差ｄｍａｘ及び路面高さの関係から、ｙ方向の最大探索値ｙｍａｘを求める。次に、ステップＳ１７３では、対応領域検出部５２が、レイヤＵマップの孤立領域の最大高さ、ｙｍａｘ及びｄｍａｘから、最小探索値ｙｍｉｎを求める。
【０１４６】
次に、対応領域検出部５２は、ステップＳ１７４において、設定した探索範囲で視差画像を探索し、孤立領域の最小視差ｄｍｉｎから最大視差ｄｍａｘの範囲内にある画素を抽出し、オブジェクト候補画素とする。ステップＳ１７５では、対応領域検出部５２が、オブジェクト候補画素が横方向に一定の割合以上存在するラインを、オブジェクト候補ラインとして抽出する。ステップＳ１７６では、対応領域検出部５２が、オブジェクト候補ラインの密度を計算し、所定の値より大きい密度のラインを、オブジェクトラインと決定する。ステップＳ１７７では、領域抽出部５３が、オブジェクトライン群の外接矩形を視差画像内のオブジェクト領域として検出する。
【０１４７】
次に、図４に示す３次元位置決定部５４は、視差の情報からオブジェクトまでの距離、視差画像の画像中心と視差画像上のオブジェクトの領域中心までの画像上の距離に基づいて、オブジェクトの３次元位置を決定する。具体的には、３次元位置決定部５４は、視差画像上のオブジェクトの領域の中心座標を（ｒｅｇｉｏｎ＿ｃｅｎｔｅｒＸ、ｒｅｇｉｏｎ＿ｃｅｎｔｅｒＹ）とし、視差画像の画像中心座標を（ｉｍａｇｅ＿ｃｅｎｔｅｒＸ、ｉｍａｇｅ＿ｃｅｎｔｅｒＹ）とし、オブジェクトの撮像ユニット２に対する相対的な横位置及び高さ位置を、以下の数式の演算を行うことで算出する。
【０１４８】
横位置＝Ｚ×（ｒｅｇｉｏｎ＿ｃｅｎｔｅｒＸ−ｉｍａｇｅ＿ｃｅｎｔｅｒＸ）／ｆ
高さ位置＝Ｚ×（ｒｅｇｉｏｎ＿ｃｅｎｔｅｒＹ−ｉｍａｇｅ＿ｃｅｎｔｅｒＹ）／ｆ
【０１４９】
以上の説明から明らかなように、実施の形態の移動体制御システムは、オブジェクトの路面からの高さ情報に基づく層構造で、複数のレイヤＵマップを作成する。換言すると、実施の形態の移動体制御システムは、撮像ユニット２から得られた視差画像上の視差点を路面からの実高さに基づいて、それぞれ異なる高さに設定された層構造のレイヤＵマップに視差画像内の視差点を投票し、各レイヤＵマップ内の２次元平面でグルーピング処理を行い、それぞれの結果を用いてグルーピング結果の統合又は分離を行う。
【０１５０】
路面検出処理の誤検出、視差補間処理の副作用又は視差の分散の影響により、レイヤＵマップからオブジェクトを検出する際、複数のオブジェクトが連結されて一つのオブジェクトとして誤検出する不都合を生じていた。
【０１５１】
しかし、実施の形態の移動体制御システムの場合、路面からの実高さ情報を用いているため、連結されたオブジェクトを分割し、個々のオブジェクトとして正しい大きさ、位置及び距離で検出できる。これにより、高精度かつ高速なオブジェクト検出を行うことができる。特に、人間は、精度良く検出できる。従って、車載ステレオカメラ（撮像ユニット２）を利用して、高精度の車両制御を行うことができる。
【０１５２】
上述の実施の形態は、例として提示したものであり、本発明の範囲を限定することは意図していない。この新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことも可能である。実施の形態および各実施の形態の変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１５３】
１  車両
２  撮像ユニット
３  解析ユニット
４  制御ユニット
５  表示部
１０Ａ  撮像部
１０Ｂ  撮像部
１１Ａ  撮像レンズ
１１Ｂ  撮像レンズ
１２Ａ  画像センサ
１２Ｂ  画像センサ
１３Ａ  コントローラ
１３Ｂ  コントローラ
１４  ＦＰＧＡ
１５  ＲＡＭ
１６  ＲＯＭ
１７  ＣＰＵ
１８  シリアルインタフェース（シリアルＩＦ）
１９  データＩＦ
２０  シリアルバスライン
２１  データバスライン
４１  平行化画像生成部
４２  視差画像生成部
４５  Ｖマップ生成部
４６  路面形状検出部
４７  リスト生成部
４８  Ｕマップ生成部
４９  レイヤＵマップ生成部
５０  孤立領域検出部
５１  分類部
５２  対応領域検出部
５３  領域抽出部
５４  ３次元位置決定部
６０  路面のオブジェクト
６１  車両のオブジェクト
６２  電柱のオブジェクト
７１  視差分割路面候補点検出部
７２  区分直線近似部
７３  区分近似直線連続化部
７４  直線補正部
７５  補正点検出部
７７  車両のオブジェクト
７９  車両のオブジェクト
８１  ガードレールのオブジェクト
８２  ガードレールのオブジェクト
８３  人間のオブジェクト
８４  人間のオブジェクト
８５  車両のオブジェクト
８６  第１の人グループ
８７  第２の人グループ
８８  子供のオブジェクト
８９  大人のオブジェクト
９１  大人のオブジェクト
９２  大人のオブジェクト
９３  電柱のオブジェクト
【先行技術文献】
【特許文献】
【０１５４】
【特許文献１】特開２０１４−０９６００５号公報
【特許文献２】国際公開第２０１２／０１７６５０号
【図１】
0006753134.tif 000004
【図２】
0006753134.tif 000005
【図３】
0006753134.tif 000006
【図４】
0006753134.tif 000007
【図５】
0006753134.tif 000008
【図６】
0006753134.tif 000009
【図７】
0006753134.tif 000010
【図８】
0006753134.tif 000011
【図９】
0006753134.tif 000012
【図１０】
0006753134.tif 000013
【図１１】
0006753134.tif 000014
【図１２】
0006753134.tif 000015
【図１３】
0006753134.tif 000016
【図１４】
0006753134.tif 000017
【図１５】
0006753134.tif 000018
【図１６】
0006753134.tif 000019
【図１７】
0006753134.tif 000020
【図１８】
0006753134.tif 000021
【図１９】
0006753134.tif 000022
【図２０】
0006753134.tif 000023
【図２１】
0006753134.tif 000024
【図２２】
0006753134.tif 000025
【図２３】
0006753134.tif 000026
【図２４】
0006753134.tif 000027
【図２５】
0006753134.tif 000028
【図２６】
0006753134.tif 000029
【図２７】
0006753134.tif 000030
【図２８】
0006753134.tif 000031
【図２９】
0006753134.tif 000032
【図３０】
0006753134.tif 000033
【図３１】
0006753134.tif 000034
【図３２】
0006753134.tif 000035
【図３３】
0006753134.tif 000036
【図３４】
0006753134.tif 000037
【図３５】
0006753134.tif 000038
【図３６】
0006753134.tif 000039
【図３７】
0006753134.tif 000040
【図３８】
0006753134.tif 000041
【図３９】
0006753134.tif 000042
【図４０】
0006753134.tif 000043
【図４１】
0006753134.tif 000044
【図４２】
0006753134.tif 000045
【図４３】
0006753134.tif 000046
【図４４】
0006753134.tif 000047
【図４５】
0006753134.tif 000048
【図４６】
0006753134.tif 000049