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