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