(57)【要約】【課題】物体の検出精度を十分に確保可能な情報処理装置、撮像装置、機器制御システム、移動体、情報処理方法およびプログラムを提供する。【解決手段】本発明の情報処理装置は、取得部と生成部と検出部と抽出部と分離部とを備える。取得部は、画素毎に距離情報を有する距離画像を取得する。生成部は、距離画像に基づいて、横方向の位置と、奥行方向の位置とが対応付けられた第１の対応情報を生成する。検出部は、第１の対応情報から、距離情報の集合領域を検出する。抽出部は、集合領域の輪郭を抽出する。分離部は、抽出部により抽出された輪郭の特徴に基づいて、集合領域を分離する。【選択図】図５
2018092608.tif 000002
【特許請求の範囲】
【請求項１】
画素毎に距離情報を有する距離画像を取得する取得部と、
前記距離画像に基づいて横方向の位置と、奥行方向の位置とが対応付けられた第１の対応情報を生成する生成部と、
前記第１の対応情報から、前記距離情報の集合領域を検出する検出部と、
前記集合領域の輪郭を抽出する抽出部と、
前記抽出部により抽出された前記輪郭の特徴に基づいて、前記集合領域を分離する分離部と、を備える、
情報処理装置。
【請求項２】
前記分離部は、前記抽出部により抽出された前記輪郭が同一方向の複数の面を有する場合に、前記集合領域を分離する、
請求項１に記載の情報処理装置。
【請求項３】
前記抽出部は、前記輪郭を構成する複数の画素ごとに、当該複数の画素の繋がりの方向を示す方向情報を設定する、
請求項２に記載の情報処理装置。
【請求項４】
前記分離部は、前記輪郭を構成する複数の画素の各々に設定された前記方向情報に基づいて、同一方向の複数の側面が存在する状態を判別する、
請求項３に記載の情報処理装置。
【請求項５】
前記分離部は、
前記集合領域を含む関心領域の行ごとに前記横方向にサーチしていき、繋がりの方向として同一の縦方向を示す前記方向情報が２回目以降にカウントされる画素を対象画素として特定し、
前記横方向の位置と、前記奥行方向にわたって前記対象画素をカウントした頻度値とが対応付けられた第２の対応情報を生成する、
請求項４に記載の情報処理装置。
【請求項６】
前記分離部は、前記第２の対応情報に基づいて、２つ目の側面に対応する頻度値が閾値を超えるか否かを判断し、該２つ目の側面に対応する頻度値が前記閾値を超える場合に、該２つ目の側面を分離対象とする、
請求項５に記載の情報処理装置。
【請求項７】
前記分離部は、２つ目の側面に対応する前記横方向の位置から１つ目の側面に対応する前記横方向の位置へ向かう方向において、最も遠い前記奥行方向の位置に対応する前記横方向の位置を分離位置として特定する、
請求項６に記載の情報処理装置。
【請求項８】
請求項１〜７の何れか一つに記載の情報処理装置を備える、撮像装置。
【請求項９】
請求項８に記載の撮像装置と、前記撮像装置の出力結果に基づいて機器を制御する制御部と、を備える、機器制御システム。
【請求項１０】
請求項９に記載の機器制御システムを備え、前記制御部により制御される移動体。
【請求項１１】
画素毎に距離情報を有する距離画像を取得する取得ステップと、
前記距離画像に基づいて横方向の位置と、奥行方向の位置とが対応付けられた第１の対応情報を生成する生成ステップと、
前記第１の情報から、前記距離情報の集合領域を検出する検出ステップと、
前記集合領域の輪郭を抽出する抽出ステップと、
前記抽出ステップにより抽出された前記輪郭の特徴に基づいて、前記集合領域を分離する分離ステップと、を含む、
情報処理方法。
【請求項１２】
コンピュータに、
画素毎に距離情報を有する距離画像を取得する取得ステップと、
前記距離画像に基づいて横方向の位置と、奥行方向の位置とが対応付けられた第１の情報を生成する生成ステップと、
前記第１の情報から、前記距離情報の集合領域を検出する検出ステップと、
前記集合領域の輪郭を抽出する抽出ステップと、
前記抽出ステップにより抽出された前記輪郭の特徴に基づいて、前記集合領域を分離する分離ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、撮像装置、機器制御システム、移動体、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
従来、自動車の安全性において、歩行者と自動車とが衝突したときに、いかに歩行者を守れるか、および、乗員を保護できるかの観点から、自動車のボディー構造等の開発が行われてきた。しかしながら、近年、情報処理技術および画像処理技術の発達により、高速に人および自動車を検出する技術が開発されてきている。これらの技術を応用して、自動車が物体に衝突する前に自動的にブレーキをかけ、衝突を未然に防ぐという自動車もすでに開発されている。車両の自動制御には、人または他車等の物体までの距離を正確に測定する必要があり、そのためには、ミリ波レーダおよびレーザレーダによる測距、ならびに、ステレオカメラによる測距等が実用化されている。例えばステレオカメラで測距する場合、左右のカメラで撮影された局所領域のズレ量（視差）に基づいて視差画像を生成し、前方物体と自車との距離を測定することができる。そして、同程度の距離に存在する（同程度の視差値を有する）視差画素の群を１つの物体として検出するクラスタリング処理を行う。
【０００３】
ステレオカメラなどを用いて得られる３次元データから物体検出を行うには算出された視差を塊として検出する必要があるが、物体間の位置が近い場合は同じ視差塊と判断されることが多く、複数の物体を結合した１つの物体として誤検出され易い。例えば特許文献１には、距離データの並び方向から物体面を検出し、その物体面の位置関係から物体を検出する技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術においては、複数の物体を結合した１つの物体として誤検出されることを十分に防ぐことはできなかった。つまり、物体の検出精度を十分に確保することが困難であるという問題があった。
【０００５】
本発明は、上記に鑑みてなされたものであって、物体の検出精度を十分に確保可能な情報処理装置、撮像装置、機器制御システム、移動体、情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、画素毎に距離情報を有する距離画像を取得する取得部と、前記距離画像に基づいて横方向の位置と、奥行方向の位置とが対応付けられた第１の対応情報を生成する生成部と、前記第１の対応情報から、前記距離情報の集合領域を検出する検出部と、前記集合領域の輪郭を抽出する抽出部と、前記抽出部により抽出された前記輪郭の特徴に基づいて、前記集合領域を分離する分離部と、を備える情報処理装置である。
【発明の効果】
【０００７】
本発明によれば、物体の検出精度を十分に確保することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態の機器制御システムの概略構成を示す模式図である。
【図２】図２は、撮像ユニットおよび解析ユニットの概略的なブロック図である。
【図３】図３は、被写体と各カメラ部の撮像レンズとの位置関係を示す図である。
【図４】図４は、解析ユニットが有する機能を概略的に説明するための図である。
【図５】図５は、物体検出処理部が有する機能の一例を示す図である。
【図６】図６は、路面検出処理部が有する機能の一例を示す図である。
【図７】図７は、撮像画像の一例を示す図である。
【図８】図８は、Ｈｉｇｈ  Ｕｍａｐの一例を示す図である。
【図９】図９は、Ｓｔａｎｄａｒｄ  Ｕｍａｐの一例を示す図である。
【図１０】図１０は、クラスタリング処理部の詳細な機能の一例を示す図である。
【図１１】図１１は、撮像画像の一例を示す図である。
【図１２】図１２は、孤立領域の一例を示す図である。
【図１３】図１３は、図１２に示す孤立領域に対応する視差画像上の領域を示す図である。
【図１４】図１４は、オブジェクトタイプごとに定められたサイズ範囲を示す図である。
【図１５】図１５は、棄却処理を説明するための図である。
【図１６】図１６は、クラスタリング処理部による処理の一例を示すフローチャートである。
【図１７】図１７は、孤立領域検出処理の一例を示すフローチャートである。
【図１８】図１８は、二値化処理後の一例を示す図である。
【図１９】図１９は、面検出処理部が有する機能の一例を示す図である。
【図２０】図２０は、面検出処理の流れを示すフローチャートである。
【図２１】図２１は、抽出部による輪郭抽出処理の一例を示すフローチャートである。
【図２２】図２２は、探索処理を説明するための図である。
【図２３】図２３は、探索処理を説明するための図である。
【図２４】図２４は、探索処理を説明するための図である。
【図２５】図２５は、探索処理を説明するための図である。
【図２６】図２６は、探索順が記録された画素の繋がりを示す図である。
【図２７】図２７は、分離部による分離処理の一例を示すフローチャートである。
【図２８】図２８は、集合領域の位置判断を説明するための図である。
【図２９】図２９は、対象画素の特定方法を説明するための図である。
【図３０】図３０は、対象画素の特定方法を説明するための図である。
【図３１】図３１は、第２の対応情報の生成方法を説明するための図である。
【図３２】図３２は、第２の対応情報の他の態様を説明するための図である。
【図３３】図３３は、分離位置の特定方法を説明するための図である。
【図３４】図３４は、分離部による分離を説明するための図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら、本発明に係る情報処理装置、撮像装置、機器制御システム、移動体、情報処理方法およびプログラムの実施形態を詳細に説明する。図１は、実施形態の機器制御システム１００の概略構成を示す模式図である。図１に示すように、機器制御システム１００は、移動体の一例である自動車等の車両１０１に設けられる。機器制御システム１００は、撮像ユニット１０２、解析ユニット１０３、制御ユニット１０４および表示部１０５を有している。
【００１０】
撮像ユニット１０２は、移動体の一例としての車両１０１のフロントガラス１０６のルームミラー付近に設けられ、車両１０１の例えば進行方向等の画像を撮像する。撮像ユニット１０２の撮像動作で得られる画像データを含む各種データは、解析ユニット１０３に供給される。解析ユニット１０３は、撮像ユニット１０２から供給される各種データに基づいて、車両１０１が走行中の路面、車両１０１の前方車両、歩行者、障害物等の認識対象物を解析する。制御ユニット１０４は、解析ユニット１０３の解析結果に基づいて、表示部１０５を介して、車両１０１の運転者へ警告等を行う。また、制御ユニット１０４は、解析結果に基づいて、各種車載機器の制御、車両１０１のハンドル制御又はブレーキ制御等の走行支援を行う。なお、以下、移動体の一例として車両１０１について説明するが、本実施の形態の機器制御システム１００は、船舶、航空機、ロボット等にも適用可能である。
【００１１】
図２は、撮像ユニット１０２および解析ユニット１０３の概略的なブロック図である。この例では、解析ユニット１０３は「情報処理装置」として機能し、撮像ユニット１０２および解析ユニット１０３の組は「撮像装置」として機能する。なお、上述の制御ユニット１０４は、「制御部」として機能し、撮像装置の出力結果に基づいて機器（この例では車両１０１）を制御する。撮像ユニット１０２は、左目用となる第１のカメラ部１Ａと、右目用となる第２のカメラ部１Ｂとの、２台のカメラ部が平行に組み付けられて構成されている。つまり、撮像ユニット１０２は、ステレオ画像を撮像するステレオカメラとして構成されている。ステレオ画像とは、複数の視点ごとの撮像で得られる複数の撮像画像（複数の視点と１対１に対応する複数の撮像画像）を含む画像であり、撮像ユニット１０２は、このステレオ画像を撮像するための装置である。第１のカメラ部１Ａおよび第２のカメラ部１Ｂは、それぞれ撮像レンズ５Ａ，５Ｂ、画像センサ６Ａ，６Ｂ、センサコントローラ７Ａ，７Ｂを備えている。画像センサ６Ａ，６Ｂは、例えばＣＣＤイメージセンサまたはＣＭＯＳイメージセンサとなっている。ＣＣＤは、「Charge  Coupled  Device」の略記である。また、ＣＭＯＳは、「Complementary  Metal-Oxide  Semiconductor」の略記である。センサコントローラ７Ａ，７Ｂは、画像センサ６Ａ，６Ｂの露光制御、画像読み出し制御、外部回路との通信、および画像データの送信制御等を行う。
【００１２】
解析ユニット１０３は、データバスライン１０、シリアルバスライン１１、ＣＰＵ１５、ＦＰＧＡ１６、ＲＯＭ１７、ＲＡＭ１８、シリアルＩＦ１９、およびデータＩＦ２０を有している。ＣＰＵは、「Central  Processing  Unit」の略記である。ＦＰＧＡは、「Field-Programmable  Gate  Array」の略記である。ＲＯＭは、「Read  Only  Memory」の略記である。ＲＡＭは、「Random  Access  Memory」の略記である。ＩＦは、「interface」の略記である。
【００１３】
上述の撮像ユニット１０２は、データバスライン１０およびシリアルバスライン１１を介して解析ユニット１０３と接続されている。ＣＰＵ１５は、解析ユニット１０３全体の動作、画像処理、および画像認識処理を実行制御する。第１のカメラ部１Ａおよび第２のカメラ部１Ｂの画像センサ６Ａ，６Ｂで撮像された撮像画像の輝度画像データは、データバスライン１０を介して解析ユニット１０３のＲＡＭ１８に書き込まれる。ＣＰＵ１５またはＦＰＧＡ１６からのセンサ露光値の変更制御データ、画像読み出しパラメータの変更制御データ、および各種設定データ等は、シリアルバスライン１１を介して送受信される。
【００１４】
ＦＰＧＡ１６は、ＲＡＭ１８に保存された画像データに対してリアルタイム性が要求される処理を行う。ＦＰＧＡ１６は、第１のカメラ部１Ａおよび第２のカメラ部１Ｂでそれぞれ撮像された輝度画像データ（撮像画像）のうち、一方を基準画像とすると共に他方を比較画像とする。そして、ＦＰＧＡ１６は、撮像領域内の同一地点に対応する基準画像上の対応画像部分と比較画像上の対応画像部分との位置ズレ量を、対応画像部分の視差値（視差画像データ）として算出する。
【００１５】
図３に、ＸＺ平面上における被写体３０と、第１のカメラ部１Ａの撮像レンズ５Ａと、第２のカメラ部１Ｂの撮像レンズ５Ｂとの位置関係を示す。この図３において、各撮像レンズ５Ａ,５Ｂの間の距離ｂおよび各撮像レンズ５Ａ、５Ｂの焦点距離ｆは、それぞれ固定値である。また、被写体３０の注視点Ｇに対する撮像レンズ５ＡのＸ座標のズレ量をΔ１とする。また、被写体３０の注視点Ｇに対する撮像レンズ５ＢのＸ座標のズレ量をΔ２とする。この場合において、ＦＰＧＡ１６は、被写体３０の注視点Ｇに対する各撮像レンズ５Ａ,５ＢのＸ座標の差である視差値ｄを、以下の式１で算出する。
【００１６】
【数１】
2018092608.tif 000003
【００１７】
解析ユニット１０３のＦＰＧＡ１６は、撮像ユニット１０２から供給される輝度画像データに対して、例えばガンマ補正処理および歪み補正処理（左右の撮像画像の平行化）等のリアルタイム性が要求される処理を施す。また、ＦＰＧＡ１６は、このようなリアルタイム性が要求される処理を施した輝度画像データを用いて上述の式１の演算を行うことで、視差画像データを生成し、ＲＡＭ１８に書き込む。
【００１８】
図２に戻って説明を続ける。ＣＰＵ１５は、撮像ユニット１０２の各センサコントローラ７Ａ，７Ｂの制御、および解析ユニット１０３の全体的な制御を行う。また、ＲＯＭ１７には、後述する状況認識、予測、立体物認識等を実行するための立体物認識プログラムが記憶されている。立体物認識プログラムは、画像処理プログラムの一例である。ＣＰＵ１５は、データＩＦ２０を介して、例えば自車両のＣＡＮ情報（車速、加速度、舵角、ヨーレート等）をパラメータとして取得する。そして、ＣＰＵ１５は、ＲＯＭ１７に記憶されている立体物認識プログラムに従って、ＲＡＭ１８に記憶されている輝度画像および視差画像を用いて、状況認識等の各種処理を実行制御することで、例えば先行車両等の認識対象の認識を行う。ＣＡＮは、「Controller  Area  Network」の略記である。
【００１９】
認識対象の認識データは、シリアルＩＦ１９を介して、制御ユニット１０４へ供給される。制御ユニット１０４は、認識対象の認識データを用いて自車両のブレーキ制御や自車両の速度制御等の走行支援を行う。
【００２０】
図４は、解析ユニット１０３が有する機能を概略的に説明するための図である。ステレオカメラを構成する撮像ユニット１０２で撮像されるステレオ画像は解析ユニット１０３へ供給される。例えば第１のカメラ部１Ａおよび第２のカメラ部１Ｂがカラー仕様の場合、第１のカメラ部１Ａおよび第２のカメラ部１Ｂの各々は、以下の式２の演算を行うことで、ＲＧＢ（赤緑青）の各信号から輝度（ｙ）信号を生成するカラー輝度変換処理を行う。第１のカメラ部１Ａおよび第２のカメラ部１Ｂの各々は、カラー輝度変換処理により生成した輝度画像データ（撮像画像）を、解析ユニット１０３が有する前処理部１１１へ供給する。第１のカメラ部１Ａで撮像された輝度画像データ（撮像画像）と、第２のカメラ部１Ｂで撮像された輝度画像データ（撮像画像）との組がステレオ画像であると考えることができる。この例では、前処理部１１１は、ＦＰＧＡ１６により実現される。
【００２１】
【数２】
2018092608.tif 000004
【００２２】
前処理部１１１は、第１のカメラ部１Ａおよび第２のカメラ部１Ｂから受け取った輝度画像データの前処理を行う。この例では、前処理としてガンマ補正処理を行う。そして、前処理部１１１は、前処理を行った後の輝度画像データを平行化画像生成部１１２へ供給する。
【００２３】
平行化画像生成部１１２は、前処理部１１１から供給された輝度画像データに対して、平行化処理（歪み補正処理）を施す。この平行化処理は、第１のカメラ部１Ａ、第２のカメラ部１Ｂから出力される輝度画像データを、２つのピンホールカメラが平行に取り付けられたときに得られる理想的な平行化ステレオ画像に変換する処理である。具体的には、各画素の歪み量を、Δｘ＝ｆ（ｘ、ｙ）、Δｙ＝ｇ（ｘ、ｙ）という多項式を用いて計算した計算結果を用いて、第１のカメラ部１Ａ、第２のカメラ部１Ｂから出力される輝度画像データの各画素を変換する。多項式は、例えば、ｘ（画像の横方向位置）、ｙ（画像の縦方向位置）に関する５次多項式に基づく。これにより、第１のカメラ部１Ａ、第２のカメラ部１Ｂの光学系の歪みを補正した平行な輝度画像を得ることができる。この例では、平行化画像生成部１１２は、ＦＰＧＡ１６により実現される。
【００２４】
視差画像生成部１１３は、撮像ユニット１０２により撮像されたステレオ画像から、画素毎に距離情報を備えた距離画像の一例である、画素毎に視差値を備えた視差画像を生成する。ここでは、視差画像生成部１１３は、第１のカメラ部１Ａの輝度画像データを基準画像データとし、第２のカメラ部１Ｂの輝度画像データを比較画像データとし、上述の式１に示す演算を行うことで、基準画像データと比較画像データの視差を示す視差画像データを生成する。具体的には、視差画像生成部１１３は、基準画像データの所定の「行」について、一つの注目画素を中心とした複数画素（例えば１６画素×１画素）からなるブロックを定義する。一方、比較画像データにおける同じ「行」において、定義した基準画像データのブロックと同じサイズのブロックを１画素ずつ横ライン方向（Ｘ方向）へズラす。そして、視差画像生成部１１３は、基準画像データにおいて定義したブロックの画素値の特徴を示す特徴量と比較画像データにおける各ブロックの画素値の特徴を示す特徴量との相関を示す相関値を、それぞれ算出する。なお、ここでいう視差画像は、縦方向位置と横方向位置と奥行き方向位置（視差）が対応付けられた情報を意味する。
【００２５】
また、視差画像生成部１１３は、算出した相関値に基づき、比較画像データにおける各ブロックの中で最も基準画像データのブロックと相関があった比較画像データのブロックを選定するマッチング処理を行う。その後、基準画像データのブロックの注目画素と、マッチング処理で選定された比較画像データのブロックの対応画素との位置ズレ量を視差値ｄとして算出する。このような視差値ｄを算出する処理を基準画像データの全域又は特定の一領域について行うことで、視差画像データを得る。なお、視差画像の生成方法としては、公知の様々な技術を利用可能である。要するに、視差画像生成部１１３は、ステレオカメラで撮像されるステレオ画像から、画素毎に距離情報を有する距離画像（この例では視差画像）を算出（生成）していると考えることができる。
【００２６】
マッチング処理に用いるブロックの特徴量としては、例えばブロック内の各画素の値（輝度値）を用いることができる。また、相関値としては、例えば基準画像データのブロック内の各画素の値（輝度値）と、これらの画素にそれぞれ対応する比較画像データのブロック内の各画素の値（輝度値）との差分の絶対値の総和を用いることができる。この場合、当該総和が最も小さくなるブロックが、最も相関があるブロックとして検出される。
【００２７】
このような視差画像生成部１１３のマッチング処理としては、例えばＳＳＤ（Sum  of  Squared  Difference）、ＺＳＳＤ（Zero-mean  Sum  of  Squared  Difference）、ＳＡＤ（Sum  of  Absolute  Difference）、又は、ＺＳＡＤ（Zero-mean  Sum  of  Absolute  Difference）等の手法を用いることができる。なお、マッチング処理において、１画素未満のサブピクセルレベルの視差値が必要な場合は、推定値を用いる。推定値の推定手法としては、例えば等角直線方式又は二次曲線方式等を用いることができる。ただし、推定したサブピクセルレベルの視差値には誤差が発生する。このため、推定誤差を減少させるＥＥＣ（推定誤差補正）等の手法を用いてもよい。
【００２８】
この例では、視差画像生成部１１３は、ＦＰＧＡ１６により実現される。視差画像生成部１１３により生成された視差画像は、物体検出処理部１１４へ供給される。この例では、物体検出処理部１１４の機能は、ＣＰＵ１５が立体物認識プログラムを実行することにより実現される。
【００２９】
図５は、物体検出処理部１１４が有する機能の一例を示す図である。図５に示すように、物体検出処理部１１４は、取得部１２１、路面検出処理部１２２、クラスタリング処理部１２３、トラッキング処理部１２４を有する。取得部１２１は、視差画像生成部１１３により生成された視差画像を取得する。取得部１２１は、ステレオカメラで撮像されるステレオ画像から算出された、画素毎に距離情報を有する距離画像（この例では視差画像）を取得する機能を有していると考えることができる。取得部１２１により取得された視差画像は路面検出処理部１２２およびクラスタリング処理部１２３へ入力される。
【００３０】
図６に示すように、路面検出処理部１２２は、路面推定部１３１と、生成部１３２と、を有する。路面推定部１３１は、視差画像を用いて、画像の垂直方向（ステレオカメラの光軸と直交する上下方向）を示す縦方向の位置と、ステレオカメラの光軸の方向を示す奥行方向の位置とが対応付けられた対応情報を生成する。この例では、路面推定部１３１は、視差画像の各画素（視差値）を、画像の垂直方向の座標（ｙ）を縦軸、視差値ｄを横軸とするマップ（以下、「Ｖマップ（Ｖ−Ｄｉｓｐａｒｉｔｙマップ）」と称する）に投票し、投票された視差点から所定の方法で標本点を選択し、選択された点群を直線近似（または、曲線近似）する形で路面形状を推定する。この路面推定の方法としては公知の様々な技術を利用可能である。Ｖマップとは、視差画像の（ｘ座標値、ｙ座標値、視差値ｄ）の組のうち、ｘ軸を視差値ｄ、ｙ軸をｙ座標値、ｚ軸を頻度とした２次元ヒストグラムである。要するに、上記対応情報（この例ではＶマップ）は、縦方向の位置と視差値ｄ（奥行方向の位置に相当）との組み合わせごとに、視差の頻度値を記録した情報であると考えることもできる。路面推定部１３１による推定結果（路面推定情報）は、生成部１３２、クラスタリング処理部１２３へ入力される。
【００３１】
生成部１３２は、視差画像に基づいて、ステレオカメラの光軸と直交する方向を示す横方向の位置と、ステレオカメラの光軸の方向を示す奥行方向の位置とが対応付けられた第１の対応情報を生成する。このとき、ノイズを除去するため、視差画像のうち、路面（オブジェクトの高さの基準となる基準オブジェクトの一例）よりも高い範囲に対応する複数の画素に基づいて、第１の対応情報を生成するのが好ましい。なお、この例では、第１の対応情報は、横軸を横方向の実際の距離（実距離）、縦軸を視差画像の視差値ｄ、奥行方向の軸を頻度とした２次元ヒストグラムである。第１の対応情報は、実距離と視差値ｄとの組み合わせごとに、視差の頻度値を記録した情報であると考えることもできる。
【００３２】
ここで、上述の路面推定部１３１の路面推定により、路面を表す直線式が得られているため、視差値ｄが決まれば、対応するｙ座標ｙ０が決まり、この座標ｙ０が路面の高さとなる。例えば視差値がｄでｙ座標がｙ’である場合、ｙ’−ｙ０が視差値ｄのときの路面からの高さを示す。上述の座標（ｄ，ｙ’）の路面からの高さＨは、Ｈ＝（ｚ×（ｙ’−ｙ０））／ｆという演算式で求めることができる。なお、この演算式における「ｚ」は、視差値ｄから計算される距離（ｚ＝ＢＦ／（ｄ−ｏｆｆｓｅｔ））、「ｆ」は撮像ユニット１０２の焦点距離を（ｙ’−ｙ０）の単位と同じ単位に変換した値である。ここで、ＢＦは、撮像ユニット１０２の基線長Ｂと焦点距離ｆを乗じた値、ｏｆｆｓｅｔは無限遠のオブジェクトを撮影したときの視差である。
【００３３】
生成部１３２は、第１の対応情報として、「Ｈｉｇｈ  Ｕｍａｐ」、「Ｓｔａｎｄａｒｄ  Ｕｍａｐ」、「Ｓｍａｌｌ  Ｕｍａｐ」のうちの少なくとも１つを生成する。以下、これらのマップについて説明する。まず、「Ｈｉｇｈ  Ｕｍａｐ」について説明する。視差画像の横方向の位置をｘ、縦方向の位置をｙ、画素ごとに設定される視差値をｄとすると、生成部１３２は、視差画像のうち、路面よりも高い第１の範囲内の所定値以上の高さの範囲を示す第２の範囲内に対応する点（ｘ、ｙ、ｄ）を、（ｘ、ｄ）の値に基づいて投票することで、横軸を視差画像のｘ、縦軸を視差値ｄ、奥行方向の軸を頻度とした２次元ヒストグラムを生成する。そして、この２次元ヒストグラムの横軸を実距離に変換して、Ｈｉｇｈ  Ｕｍａｐを生成する。
【００３４】
例えば図７に示す撮像画像においては、大人と子供を含む人グループ１と、大人同士の人グループ２と、ポールと、車両とが映り込んでいる。この例では、路面からの実高さが１５０ｃｍ〜２００ｃｍの範囲が第２の範囲として設定され、該第２の範囲の視差値ｄが投票されたＨｉｇｈ  Ｕｍａｐは図８のようになる。高さが１５０ｃｍ未満の子供の視差値ｄは投票されないためマップ上に現れないことになる。なお、縦軸は、距離に応じた間引き率を用いて視差値ｄを間引き処理した間引き視差となっている。生成部１３２により生成されたＨｉｇｈ  Ｕｍａｐはクラスタリング処理部１２３に入力される。
【００３５】
次に、「Ｓｔａｎｄａｒｄ  Ｕｍａｐ」について説明する。視差画像の横方向の位置をｘ、縦方向の位置をｙ、画素ごとに設定される視差値をｄとすると、生成部１３２は、視差画像のうち第１の範囲内に対応する点（ｘ、ｙ、ｄ）を、（ｘ、ｄ）の値に基づいて投票することで、横軸を視差画像のｘ、縦軸を視差値ｄ、奥行方向の軸を頻度とした２次元ヒストグラムを生成する。そして、この２次元ヒストグラムの横軸を実距離に変換して、Ｓｔａｎｄａｒｄ  Ｕｍａｐを生成する。図７の例では、０ｃｍ〜２００ｃｍの範囲（上述の第２の範囲を含んでいる）が第１の範囲として設定され、該第１の範囲の視差値ｄが投票されたＳｔａｎｄａｒｄ  Ｕｍａｐは図９のようになる。また、生成部１３２は、Ｓｔａｎｄａｒｄ  Ｕｍａｐと併せて、Ｓｔａｎｄａｒｄ  Ｕｍａｐに投票される視差点（実距離と視差値ｄとの組）のうち、路面からの高さ（ｈ）が最も高い視差点の高さを記録して、横軸を実距離（カメラの左右方向の距離）、縦軸を視差値ｄとし、対応する点ごとに高さが記録された高さ情報を生成することもできる。高さ情報は、実距離と視差値ｄとの組み合わせごとに高さを記録した情報であると考えてもよい。以下の説明では、この高さ情報を、「Ｓｔａｎｄａｒｄ  Ｕｍａｐの高さマップ」と称する。「Ｓｔａｎｄａｒｄ  Ｕｍａｐの高さマップ」に含まれる各画素の位置はＳｔａｎｄａｒｄ  Ｕｍａｐに含まれる各画素の位置に対応している。生成部１３２により生成されたＳｔａｎｄａｒｄ  ＵｍａｐおよびＳｔａｎｄａｒｄ  Ｕｍａｐの高さマップはクラスタリング処理部１２３に入力される。なお、本処理は物体を検出しやすくするために俯瞰的なマップ（鳥瞰画像、俯瞰画像）を生成するものであるため、横軸は実距離でなくとも実距離に相当するものであればよい。
【００３６】
次に、「Ｓｍａｌｌ  Ｕｍａｐ」について説明する。視差画像の横方向の位置をｘ、縦方向の位置をｙ、画素ごとに設定される視差値をｄとすると、生成部１３２は、視差画像のうち第１の範囲内に対応する点（ｘ、ｙ、ｄ）を、（ｘ、ｄ）の値に基づいて投票（Ｓｔａｎｄａｒｄ  Ｕｍａｐを作成する場合よりも少ない数を投票）することで、横軸を視差画像のｘ、縦軸を視差値ｄ、奥行方向の軸を頻度とした２次元ヒストグラムを生成する。そして、この２次元ヒストグラムの横軸を実距離に変換して、Ｓｍａｌｌ  Ｕｍａｐを生成する。Ｓｍａｌｌ  Ｕｍａｐは、Ｓｔａｎｄａｒｄ  Ｕｍａｐと比較して１画素の距離分解能が低い。また、生成部１３２は、Ｓｍａｌｌ  Ｕｍａｐと併せて、Ｓｍａｌｌ  Ｕｍａｐに投票される視差点（実距離と視差値ｄとの組）のうち、路面からの高さ（ｈ）が最も高い視差点の高さを記録して、横軸を実距離（カメラの左右方向の距離）、縦軸を視差値ｄとし、対応する点ごとに高さが記録された高さ情報を生成することもできる。高さ情報は、実距離と視差値ｄとの組み合わせごとに高さを記録した情報であると考えてもよい。以下の説明では、この高さ情報を、「Ｓｍａｌｌ  Ｕｍａｐのマップ高さ」と称する。「Ｓｍａｌｌ  Ｕｍａｐの高さマップ」に含まれる各画素の位置はＳｍａｌｌ  Ｕｍａｐに含まれる各画素の位置に対応している。生成部１３２により生成されたＳｍａｌｌ  ＵｍａｐおよびＳｍａｌｌ  Ｕｍａｐの高さマップはクラスタリング処理部１２３に入力される。
【００３７】
この例では、生成部１３２はＳｔａｎｄａｒｄ  Ｕｍａｐを生成し、その生成されたＳｔａｎｄａｒｄ  Ｕｍａｐがクラスタリング処理部１２３に入力される場合を例に挙げて説明するが、これに限らず、例えば「Ｈｉｇｈ  Ｕｍａｐ」、「Ｓｔａｎｄａｒｄ  Ｕｍａｐ」、「Ｓｍａｌｌ  Ｕｍａｐの高さマップ」を用いて物体検出を行う場合は、生成部１３２は、「Ｈｉｇｈ  Ｕｍａｐ」、「Ｓｔａｎｄａｒｄ  Ｕｍａｐ」、「Ｓｍａｌｌ  Ｕｍａｐ」を生成し、これらのマップがクラスタリング処理部１２３に入力されてもよい。
【００３８】
図５に戻って説明を続ける。クラスタリング処理部１２３は、路面検出処理部１２２から受け取った各種の情報を用いて、取得部１２１により取得された視差画像上の物体位置を検出する。図１０は、クラスタリング処理部１２３の詳細な機能の一例を示す図である。図１０に示すように、クラスタリング処理部１２３は、孤立領域検出処理部１４０、面検出処理部１４１、視差画処理部１５０、棄却処理部１６０を有する。
【００３９】
孤立領域検出処理部１４０は、「検出部」の一例であり、前述の第１の対応情報（この例ではＳｔａｎｄａｒｄ  Ｕｍａｐ）から、視差値ｄの塊の領域である孤立領域（集合領域）を検出する。以下の説明では、この検出処理を「孤立領域検出処理」と称する。例えば図１１に示す撮像画像の場合、左右にガードレール８１,８２があり、車両７７および車両７９がセンターラインを挟んで対面通行をしている。各走行車線には、それぞれ１台の車両７７又は車両７９が走行している。車両７９とガードレール８２との間には２本のポール８０Ａ，８０Ｂが存在している。図１２は、図１１に示す撮像画像に基づいて得られたＳｔａｎｄａｒｄ  Ｕｍａｐであり、枠で囲まれた領域が孤立領域に相当する。
【００４０】
面検出処理部１４１は、孤立領域検出処理部１４０により検出された孤立領域（集合領域）の輪郭から面情報を算出し、検出結果に３次元構造として情報化する。また、検出された孤立領域が、同一方向の側面を複数持つと判断した場合は、該孤立領域を分離する処理を行う。以下の説明では、面検出処理部１４１による処理を「面検出処理」と称する。より具体的な内容については後述する。
【００４１】
視差画処理部１５０は、孤立領域検出処理部１４０により検出された孤立領域に対応する視差画像上の領域や実空間での物体情報を検出する視差画処理を行う。図１３は、図１２に示す孤立領域に対応する視差画像上の領域（視差画処理部１５０による処理の結果）を示す図であり、図１３の領域９１はガードレール８１に対応する領域であり、領域９２は車両７７に対応する領域であり、領域９３は車両７９に対応する領域であり、領域９４はポール８０Ａに対応する領域であり、領域９５はポール８０Ｂに対応する領域であり、領域９６はガードレール８２に対応する領域である。
【００４２】
棄却処理部１６０は、視差画処理部１５０により検出された視差画上の領域や実空間での物体情報に基づき、出力すべきオブジェクトを選別する棄却処理を行う。棄却処理部１６０は、物体のサイズに着目したサイズ棄却と、物体同士の位置関係に着目したオーバラップ棄却とを実行する。例えばサイズ棄却では、図１４に示す物体（オブジェクト）タイプごとに定められたサイズ範囲に当てはまらないサイズの検出結果を棄却する。例えば図１５の例では、領域９１および領域９６は棄却されている。また、オーバラップ棄却では、視差画処理により検出された、視差画上の孤立領域（リアルＵマップ上の検出結果）に対応する領域同士に対し、重なりを持つ結果の取捨選択を行う。
【００４３】
図１６は、クラスタリング処理部１２３による処理の一例を示すフローチャートである。この例では、Ｓｔａｎｄａｒｄ  Ｕｍａｐ、Ｓｔａｎｄａｒｄ  Ｕｍａｐの高さマップ、視差画像、路面推定情報が入力情報として入力され、視差画像上の検出結果が出力情報として出力される。まず孤立領域検出処理部１４０は孤立領域検出処理を行う（ステップＳ１）。次に、面検出処理部１４１は、面検出処理を行う（ステップＳ２）。視差画処理部１５０は、視差画処理を行う（ステップＳ３）。そして、棄却処理部１６０は、ステップＳ３の視差画処理の結果を用いて棄却処理を行い（ステップＳ４）、最終的な視差画像上の検出結果を出力情報として出力する。なお、ステップＳ２の面検出処理は、ステップＳ３の視差画処理とステップＳ４の棄却処理との間に行われてもよい。
【００４４】
なお、クラスタリング処理部１２３からの出力情報（検出結果）は図５に示すトラッキング処理部１２４に入力される。トラッキング処理部１２４は、クラスタリング処理部１２３による検出結果（検出された物体）が複数のフレームにわたって連続して出現する場合に追跡対象であると判定し、追跡対象である場合には、その検出結果を物体検出結果として制御ユニット１０４へ出力する。
【００４５】
次に、孤立領域検出処理の具体的な内容を説明する。図１７は、孤立領域検出処理の一例を示すフローチャートである。この例では、Ｓｔａｎｄａｒｄ  Ｕｍａｐが入力情報として入力される。出力情報については後述の説明で明らかになる。まず、孤立領域検出処理部１４０は、Ｓｔａｎｄａｒｄ  Ｕｍａｐ内の視差の塊ごとにグルーピングしてＩＤを付与するラベリング処理を行う（ステップＳ２１）。具体的には、孤立領域検出処理部１４０は、Ｓｔａｎｄａｒｄ  Ｕｍａｐに含まれる複数の画素ごとに着目していき、着目画素、および、該着目画素の近傍に存在する８画素（右方向、右斜め上方向、上方向、左斜め上方向、左方向、左斜め下方向、下方向、右斜め下方向の８つの方向と１対１に対応する８つの画素）のうち、頻度値を含む画素の画素値を「１」に設定し、頻度値を含まない画素の画素値を「０」に設定して二値化する。なお、二値化の方法はこれに限らず任意であり、例えば近傍８画素のうち閾値以上の視差の頻度値を含む画素の画素値を「１」とし、それ以外の画素の画素値を「０」とする形態であってもよい。そして、画素値「１」の集合で形成される閉領域を視差の塊（１つのグループ）とし、該閉領域に含まれる各画素に対してＩＤを付与する。なお、ＩＤは、各グループを識別可能な値に設定される。
【００４６】
図１８は、二値化処理後の一例を示す図であり、領域２００に含まれる５つの画素の各々に対して、同一のＩＤが付与されることになる。
【００４７】
図１７に戻って説明を続ける。ステップＳ２１の後、孤立領域検出処理部１４０は、検出矩形作成処理を行う（ステップＳ２２）。具体的には、孤立領域検出処理部１４０は、同一のＩＤが割り振られた画素の集合領域に外接する矩形を算出し、算出した外接矩形を検出矩形とする。なお、ここでいう検出矩形とは、矩形の位置および大きさを示す情報のことをいい、例えば矩形の角の座標と高さおよび幅をいう。次に、孤立領域検出処理部１４０は、ステップＳ２２で作成した検出矩形のサイズをチェックするサイズチェック処理を行う（ステップＳ２３）。例えば孤立領域検出処理部１４０は、ステップＳ２２で作成した検出矩形のサイズが、ノイズに相当するサイズとして予め定められた閾値以下の場合、該検出矩形を破棄する処理を行う。次に、孤立領域検出処理部１４０は、ステップＳ２２で作成した検出矩形に含まれる各画素の頻度値（視差の頻度値）をチェックする頻度チェック処理を行う（ステップＳ２４）。例えば孤立領域検出処理部１４０は、ステップＳ２２で作成した検出矩形に含まれる頻度値（視差の頻度値）の累積値が、物体を表すのに必要な数として予め定められた閾値以下の場合、該検出矩形を破棄する処理を行う。
【００４８】
以上の孤立領域検出処理により、Ｓｔａｎｄａｒｄ  Ｕｍａｐ上の検出矩形を示す情報が出力情報として出力される。なお、Ｓｔａｎｄａｒｄ  Ｕｍａｐ上の検出矩形に含まれる各画素に対しては、グループを識別するＩＤが割り当てられている。つまり、Ｓｔａｎｄａｒｄ  Ｕｍａｐ上でグルーピングされたＩＤのマップを示す情報（「Ｓｔａｎｄａｒｄ  Ｕｍａｐ上のＩＤ  Ｕｍａｐ」、他と区別しない場合は単に「ＩＤマップ」と称する場合がある）が出力情報として出力されることにもなる。
【００４９】
次に、面検出処理の具体的な内容を説明する。図１９に示すように、面検出処理部１４１は、補間処理部１４２と、抽出部１４３と、分離部１４４と、を有する。孤立領域検出処理部１４０による検出結果は面検出処理部１４１に入力されることになり、面検出処理部１４１は、孤立領域検出処理部１４０による検出結果を用いて面検出処理を行う。
【００５０】
図２０は、面検出処理の流れを示すフローチャートである。ここでは、孤立領域検出処理による検出結果（Ｓｔａｎｄａｒｄ  Ｕｍａｐ上の検出矩形）ごとに、図２０に示す処理が繰り返される。まず補間処理部１４２は補間処理を行う（ステップＳ１００）。次に、抽出部１４３は輪郭抽出処理を行う（ステップＳ１０１）。次に、分離部１４４は分離処理を行う（ステップＳ１０２）。各ステップの具体的な内容は後述する。
【００５１】
図１９に示す補間処理部１４２は、孤立領域検出処理部１４０による検出結果に対して、ノイズを平滑化するための補間処理を行う。補間処理により追加された画素に対しては新たにＩＤを付与する。
【００５２】
図１９に示す抽出部１４３は、集合領域の輪郭を抽出する。本実施形態では、抽出部１４３は、輪郭を構成する複数の画素ごとに、繋がりの方向を示す方向情報を設定する。より具体的には以下のとおりである。図２１は、抽出部１４３による輪郭抽出処理の一例を示すフローチャートである。以下、図２１のフローチャートの内容を説明する。
【００５３】
図２１に示すように、抽出部１４３は、開始画素を探索する開始画素探索処理を行う（ステップＳ１１１）。より具体的には、図２２に示すように、抽出部１４３は、検出矩形の左下から右上へＩＤを持つ画素を探索し、最初に見つかった画素を着目画素とする。
【００５４】
図２１に戻って説明を続ける。開始画素が見つかった場合（ステップＳ１１２：Ｙｅｓ）、抽出部１４３は、輪郭を抽出する処理を行う（ステップＳ１１３）。開始画素が見つからなかった場合（ステップＳ１１２：Ｎｏ）、そのまま処理は終了する。
【００５５】
以下、上述のステップＳ１１３の処理の具体的な内容を説明する。この例では、抽出部１４３は、着目画素に隣接する８画素について、図２３に示すような左回りの探索順位でＩＤを持つ画素を探索していく。図２３に示す探索順位は、着目画素に隣接する８画素のうち、左下に隣接する画素を第１番目に探索し、真下に隣接する画素を第２番目に探索し、右下に隣接する画素を第３番目に探索し、右に隣接する画素を第４番目に探索し、右上に隣接する画素を第５番目に探索し、真上に隣接する画素を第６番目に探索し、左上に隣接する画素を第７番目に探索し、左に隣接する画素を第８番目に探索することを表している。探索の結果、ＩＤを持つ画素が見つかった場合は、そのときの探索順を着目画素に記録し、発見した画素を次の着目画素として探索を繰り返していく。例えば図２４に示すように、着目画素の右上に隣接する画素が、ＩＤを持つ画素として最初に発見された場合、そのときの探索順である「４」を着目画素に記録し、該着目画素の右上に隣接する画素を次の着目画素として探索を続ける。このとき、着目画素に記録された「４」を示す探索順は、輪郭の繋がりの方向を示す（着目画素から右上の方向に繋がることを示す）情報であり、方向情報に対応している。
【００５６】
そして、図２５に示すように、新たな着目画素に隣接する８画素について、図２３に示すような左回りの探索順位でＩＤを持つ画素を探索していく。なお、処理後の画素（探索順が記録済みの画素）については、再び探索されても探索順が記録されることはない。図２５の例では、着目画素の左下に隣接する画素（「４」を示す探索順が記録された直前の着目画素）は既に探索順が記録済みであるので、着目画素の右に隣接する画素が、ＩＤを持つ対象画素として発見される。したがって、このときの探索順である「３」を着目画素に記録し、該着目画素の右に隣接する画素を次の着目画素として探索を続ける。以上のようにして、図２６に示すように、集合領域（ＩＤを付与された画素の集合）の輪郭を構成する画素ごとに、探索順を示す情報（方向情報に対応）が記録（設定）されていく。つまり、集合領域の輪郭は、探索順を示す情報が記録された画素を連結したものとなる。抽出部１４３は、以上のようにして抽出した輪郭の特徴（すなわち、ここでは物体の輪郭を構成する画素が並ぶ方向）に基づいて、背面位置、側面位置を算出することができる。例えば輪郭抽出の経路（着目画素の探索順）が左回りの場合（図２３の場合）、右から左へ向かう方向を示す方向情報（この例では「７」を示す探索順）が設定された画素が最も多いＹ座標値（奥行方向（視差値ｄの方向）の座標値）から背面の距離を算出することができる。また、上から下へ向かう方向を示す方向情報（この例では「１」を示す探索順）が設定された画素が最も多いＹ座標値を左側面の位置として算出し、下から上へ向かう方向を示す情報（この例では「５」を示す探索順）が設定された画素が最も多いＹ座標値を右側面の位置として算出することができる。
【００５７】
図１９に戻って説明を続ける。分離部１４４は、抽出部１４３により抽出された輪郭の特徴に基づいて、集合領域を分離する。より具体的には、分離部１４４は、抽出部１４３により抽出された輪郭が同一方向の複数の側面を有する場合に、集合領域を分離する。本実施形態では、分離部１４４は、輪郭を構成する複数の画素の各々に設定された方向情報に基づいて、同一方向の複数の側面が存在する状態を判別する。より具体的には、分離部１４４は、孤立領域検出処理部１４０により検出された集合領域を含む関心領域（第１の対応情報であるＳｔａｎｄａｒｄ  Ｕｍａｐ上の領域）の行ごとに横方向（Ｓｔａｎｄａｒｄ  Ｕｍａｐの横軸（Ｘ軸）方向）にサーチしていき、繋がりの方向として同一の縦方向を示す方向情報が２回目以降にカウントされる画素を対象画素として特定していく。
【００５８】
そして、分離部１４４は、横方向の位置と、奥行方向（Ｓｔａｎｄａｒｄ  Ｕｍａｐの縦軸（Ｙ軸）方向）にわたって対象画素をカウントした頻度値と、が対応付けられた第２の対応情報を生成する。分離部１４４は、この第２の対応情報に基づいて、２つ目の側面に対応する頻度値が閾値を超えるか否かを判断し、該２つ目の側面に対応する頻度値が閾値を超える場合に、該２つ目の側面を分離対象とする。さらに、分離部１４４は、分離対象の２つ目の側面に対応する横方向の位置から１つ目の側面に対応する横方向の位置へ向かう方向において、最も遠い奥行方向の位置に対応する横方向の位置を分離位置として特定する。そして、分離部１４４は、特定した分離位置を境界として１つの集合領域を２つの集合領域に分離し、ＩＤを振り直す（別々のＩＤを割り当てる）。
【００５９】
より具体的には以下のとおりである。図２７は、分離部１４４による処理（分離処理）の一例を示すフローチャートである。分離部１４４は、抽出部１４３により輪郭が抽出された集合領域ごとに、図２７の処理を繰り返す。以下、図２７のフローチャートの内容を説明する。
【００６０】
分離部１４４は、集合領域（物体）の位置は、右または左であるか否かを判断する（ステップＳ１１）。より具体的には、分離部１４４は、集合領域の左端位置と右端位置から、集合領域がＳｔａｎｄａｒｄ  Ｕｍａｐ上の中心のＸ座標に対して左側か右側かを判断する。ここでは、図２８に示すように、Ｓｔａｎｄａｒｄ  Ｕｍａｐ上の中心のＸ座標から、集合領域の左端のＸ座標までの距離をＤｉｆｆ＿Ｌｅｆｔ、中心のＸ座標から、集合領域の右端のＸ座標までの距離をＤｉｆｆ＿Ｒｉｇｈｔと表記する。そして、分離部１４４は、Ｄｉｆｆ＿Ｌｅｆｔが、Ｄｉｆｆ＿Ｒｉｇｈｔよりも所定数の画素分（左寄りか右寄りかを判別可能な数であればよい。この例では５０ｃｍに相当する４つ分）だけ大きい場合、集合領域の位置は左であると判断する。また、分離部１４４は、Ｄｉｆｆ＿Ｒｉｇｈｔが、Ｄｉｆｆ＿Ｌｅｆｔよりも所定の画素数分だけ大きい場合、集合領域の位置は右であると判断する。上記の何れの条件にも該当しない場合、分離部１４４は、集合領域の位置は中心であると判断する。この場合、ステップＳ１１の結果は否定となり、そのまま処理は終了する。一方、集合領域の位置が右または左であると判断した場合、ステップＳ１１の結果は肯定となり、処理はステップＳ１２に移行する。
【００６１】
ステップＳ１２では、分離部１４４は、上述の第２の対応情報を生成する。この例では、分離部１４４は、集合領域を含む関心領域（例えばＳｔａｎｄａｒｄ  Ｕｍａｐ上の検出矩形であってもよい）の行ごとに横方向にサーチし、繋がりの方向として同一の縦方向を示す方向情報が２回目以降にカウントされる画素を対象画素として特定していく。そして、分離部１４４は、横方向（Ｓｔａｎｄａｒｄ  Ｕｍａｐの横軸の方向）の位置と、奥行方向（Ｓｔａｎｄａｒｄ  Ｕｍａｐの縦軸の方向）にわたって対象画素をカウントした頻度値とが対応付けられた第２の対応情報を生成する。例えば集合領域の位置が右である場合、サーチの開始位置は関心領域の左端であり、サーチ方向は左から右へ向かう方向であり、分離部１４４は、上から下へ向かう方向を示す方向情報（この例では「１」を示す探索順）が２回目以降にカウントされる画素を対象画素として特定する。
【００６２】
例えば図２９のように下の行から順番にサーチする場合において、第３番目のサーチで「１」を示す探索順が設定された画素が発見されているが、「１」を示す探索順が設定された画素は１回しか発見されていないので（「１」を示す探索順が設定された画素のカウント数は１なので）、対象画素は存在しないことになる。また、例えば図３０のように、第４番目のサーチでは、「１」を示す探索順が設定された画素が２回発見されているので（「１」を示す探索順が設定された画素のカウント数は２なので）、対象画素は存在することになり、２回目にカウントされた画素が対象画素として特定される。そして、分離部１４４は、横方向（Ｓｔａｎｄａｒｄ  Ｕｍａｐの横軸の方向）の位置ごとに、以上のようにして特定した対象画素の数を奥行方向（Ｓｔａｎｄａｒｄ  Ｕｍａｐの縦軸の方向）にわたってカウントしていき、そのカウント数に対応する頻度値を対応付ける。図３１の例では、横方向の位置Ｐに対して、カウント数「５」（奥行方向にわたってカウントされた対象画素の数）を示す頻度値が対応付けられる。このようにして第２の対応情報が生成されることになる。
【００６３】
また、例えば集合領域が斜めの形状を持つ場合に対応するために、第２の対応情報は、横方向の位置ごとに、該横方向の位置を含む横方向の所定の範囲内における対象画素の数を奥行方向にわたってカウントした数の総数を頻度値として対応付けた情報であってもよい。例えば図３２において、横方向の位置Ｐを含む所定の範囲は左右に隣接する位置Ｑ、位置Ｒを含む範囲であり、この所定の範囲内における対象画素の数を奥行方向にわたってカウントした数は「５」となる。同様に、横方向の位置Ｑを含む所定の範囲は左右に隣接する位置Ｓ、位置Ｐを含む範囲であり、この所定の範囲内における対象画素の数を奥行方向にわたってカウントした数は「５」となる。同様に、横方向の位置Ｒを含む所定の範囲は左右に隣接する位置Ｐ、位置Ｔを含む範囲であり、この所定の範囲内における対象画素の数を奥行方向にわたってカウントした数は「５」となる。この場合、第２の対応情報は、位置Ｑに対してカウント数「５」を示す頻度値が対応付けられ、位置Ｐに対してカウント数「５」を示す頻度値が対応付けられ、位置Ｒに対してカウント数「５」を示す頻度値が対応付けられた情報となる。
【００６４】
図２７に戻って説明を続ける。ステップＳ１２で第２の対応情報を生成した後、分離部１４４は、集合領域（第２の対応情報の生成元の集合領域）が分離対象であるか否かを判断する（ステップＳ１３）。この例では、第２の対応情報の最大の頻度値（最大頻度）は２つ目の側面の長さと考えることができ、分離部１４４は、第２の対応情報の最大頻度が、もともとの奥行きに比べて十分な長さを有しているか否かを判断する。ここでは、分離部１４４は、第２の対応情報の最大頻度が、もともとの奥行きに比べて十分な長さを有しているか否かを判断するための第１の閾値よりも大きいか否かを判断（第１の条件を満たすか否かを判断）する。また、分離部１４４は、検出物体の距離（奥行方向の距離）に着目し、第２の対応情報の最大頻度（２つ目の側面の長さに対応）が、視差誤差による側面らしい形状をした集合領域を２つ目の側面として検出していないか否かを判断するための第２の閾値よりも大きいか否かを判断（第２の条件を満たすか否かを判断）する。ここでは、分離部１４４は、第１の条件および第２の条件を満たす場合、集合領域は分離対象であると判断する。要するに、分離部１４４は、第２の対応情報に基づいて、２つ目の側面に対応する頻度値が閾値を超えるか否かを判断し、２つ目の側面に対応する頻度値が閾値を超える場合に、該２つ目の側面を分離対象とする。見方を変えれば、第２の対応情報において閾値を超える頻度値は、分離対象とする２つ目の側面に対応する頻度値となる。
【００６５】
ステップＳ１３の結果が肯定の場合（ステップＳ１３：Ｙｅｓ）、分離部１４４は集合領域を分離する処理を行う（ステップＳ１４）。一方、ステップＳ１３の結果が否定の場合（ステップＳ１３：Ｎｏ）、そのまま処理は終了する。以下、上述のステップＳ１４の処理の具体的な内容について説明する。分離部１４４は、第２の対応情報の最大頻度値に対応付けられた横方向の位置を、２つ目の側面の位置と判断する。例えば図３２の態様の場合は、最大頻度値に対応付けられた３つの横方向の位置（Ｐ、Ｑ、Ｒ）のうち、奥行方向の位置が最も近い対象画素（視差値が最も大きい対象画素（この例では「１」を示す探索順が設定された画素））が対応付けられた位置Ｐを、２つ目の側面に対応する位置として判断することができる。そして、２つ目の側面に対応する横方向の位置から１つ目の側面に対応する横方向の位置へ向かう方向において、最小視差を持つ画素（奥行方向に最も遠い画素）を特定する。集合領域の位置が右である場合、図３３に示すように、分離部１４４は、２つ目の側面に対応する位置から左へ向かう方向において、最小視差を持つ画素の横方向の位置を分離位置として特定する。つまり、奥行方向の空白領域が最も大きい画素の横方向の位置を分離位置として特定する。そして、図３４に示すように、分離部１４４は、以上のようにして特定した分離位置を境界として、１つの集合領域を２つの集合領域（図３４の例では、第１の集合領域と第２の集合領域）に分離する。
【００６６】
以上に説明したように、本実施形態では、抽出部１４３により抽出された集合領域の輪郭の特徴に基づいて集合領域を分離する。より具体的には、分離部１４４は、抽出部１４３により抽出された集合領域の輪郭が同一方向の複数の面を有する場合に、該集合領域を分離する。これは通常、同一の物体であれば、その物体を囲む面は同一方向に複数存在しないので、同一方向の面が複数ある場合には、複数の物体が連結して誤検出されていると判断できるためである。これにより、複数の物体を結合した１つの物体として誤検出されることを防止できる。すなわち、本実施形態によれば、物体の検出精度を十分に確保することができる。
【００６７】
以上、本発明に係る実施形態について説明したが、本発明は、上述の各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【００６８】
また、上述した実施形態の機器制御システム１００で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【符号の説明】
【００６９】
１Ａ    第１のカメラ部
１Ｂ    第２のカメラ部
５Ａ，５Ｂ    撮像レンズ
６Ａ，６Ｂ    画像センサ
７Ａ，７Ｂ    センサコントローラ
１０    データバスライン
１１    シリアルバスライン
１５    ＣＰＵ
１６    ＦＰＧＡ
１７    ＲＯＭ
１８    ＲＡＭ
１９    シリアルＩＦ
２０    データＩＦ
１００  機器制御システム
１０１  車両
１０２  撮像ユニット
１０３  解析ユニット
１０４  制御ユニット
１０５  表示部
１０６  フロントガラス
１１１  前処理部
１１２  平行化画像生成部
１１３  視差画像生成部
１１４  物体検出処理部
１２１  取得部
１２２  路面検出処理部
１２３  クラスタリング処理部
１２４  トラッキング処理部
１３１  路面推定部
１３２  生成部
１４０  孤立領域検出処理部
１４１  面検出処理部
１４２  補間処理部
１４３  抽出部
１４４  分離部
１５０  視差画処理部
１６０  棄却処理部 
【先行技術文献】
【特許文献】
【００７０】
【特許文献１】特許第３３４９０６０号公報
【図１】
2018092608.tif 000005
【図２】
2018092608.tif 000006
【図３】
2018092608.tif 000007
【図４】
2018092608.tif 000008
【図５】
2018092608.tif 000009
【図６】
2018092608.tif 000010
【図７】
2018092608.tif 000011
【図８】
2018092608.tif 000012
【図９】
2018092608.tif 000013
【図１０】
2018092608.tif 000014
【図１１】
2018092608.tif 000015
【図１２】
2018092608.tif 000016
【図１３】
2018092608.tif 000017
【図１４】
2018092608.tif 000018
【図１５】
2018092608.tif 000019
【図１６】
2018092608.tif 000020
【図１７】
2018092608.tif 000021
【図１８】
2018092608.tif 000022
【図１９】
2018092608.tif 000023
【図２０】
2018092608.tif 000024
【図２１】
2018092608.tif 000025
【図２２】
2018092608.tif 000026
【図２３】
2018092608.tif 000027
【図２４】
2018092608.tif 000028
【図２５】
2018092608.tif 000029
【図２６】
2018092608.tif 000030
【図２７】
2018092608.tif 000031
【図２８】
2018092608.tif 000032
【図２９】
2018092608.tif 000033
【図３０】
2018092608.tif 000034
【図３１】
2018092608.tif 000035
【図３２】
2018092608.tif 000036
【図３３】
2018092608.tif 000037
【図３４】
2018092608.tif 000038