(57)【要約】【課題】実運用に耐え得るように路面の推定処理の精度を向上させることができる画像処理装置、物体認識装置、機器制御システム、移動体、画像処理方法およびプログラムを提供する。【解決手段】物体に対する距離画像における縦方向の位置と、各位置における距離値と、を関連付けた距離値の頻度分布を示す頻度画像において、距離値の方向における所定区間を、分割数が異なる複数の分割パターンに従って１以上の区間に分割する分割部と、頻度画像の各頻度点に基づいて、各分割パターンでの各区間の路面の形状を推定する推定部と、少なくとも、推定部により各分割パターンでの各区間で推定された推定路面に基づいて、所定区間の最終的な推定路面を決定する決定部と、を備える。【選択図】図７
2019160247.tif 000002
【特許請求の範囲】
【請求項１】
物体に対する距離画像における縦方向の位置と、前記各位置における距離値と、を関連付けた前記距離値の頻度分布を示す頻度画像において、前記距離値の方向における所定区間を、分割数が異なる複数の分割パターンに従って１以上の区間に分割する分割部と、
前記頻度画像の各頻度点に基づいて、前記各分割パターンでの前記各区間の路面の形状を推定する推定部と、
少なくとも、前記推定部により前記各分割パターンでの前記各区間で推定された推定路面に基づいて、前記所定区間の最終的な推定路面を決定する決定部と、
を備えた画像処理装置。
【請求項２】
前記推定部により前記各分割パターンでの前記各区間で推定された推定路面に対して、適切な路面であるか否かを判定する判定部を、さらに備え、
前記決定部は、さらに、前記判定部による判定結果に基づいて、前記所定区間の最終的な推定路面を決定する請求項１に記載の画像処理装置。
【請求項３】
前記頻度画像の前記各頻度点から、前記各距離値の位置において標本点を探索する探索部を、さらに備え、
前記推定部は、前記探索部により探索された前記各区間での前記標本点を用いて、該各区間の路面の形状を推定する請求項１に記載の画像処理装置。
【請求項４】
前記分割部は、前記所定区間を分割数が１である第１分割パターン、および分割数が２である第２分割パターンに従って分割し、
前記決定部は、前記判定部により、前記第１分割パターンおよび前記第２分割パターンそれぞれにおける前記各区間での推定路面が適切であると判定された場合、前記第２分割パターンで分割された２つの前記区間の境界に対する該区間での推定路面の交点が、共に、前記第１分割パターンでの前記区間での推定路面よりも上側または下側に存在する場合、前記第２分割パターンで分割された前記各区間での推定路面を、前記所定区間の最終的な推定路面として決定する請求項２に記載の画像処理装置。
【請求項５】
前記分割部は、前記頻度画像において、前記距離値の方向に、前記区間の最小単位として複数のセグメントに分割し、
前記推定部は、前記頻度画像において、前記セグメント単位でオーバーラップする複数の前記所定区間それぞれにおいて、前記各分割パターンでの前記各区間の路面の形状を推定し、
前記決定部は、前記各所定区間の前記各分割パターンでの前記各区間で推定された推定路面から、該各所定区間の推定路面を決定し、さらに、該各所定区間での推定路面に基づいて、前記各セグメントの最終的な推定路面を決定する請求項１に記載の画像処理装置。
【請求項６】
前記推定部により前記各所定区間において前記各分割パターンでの前記各区間で推定された推定路面に対して、適切な路面であるか否かを判定する判定部を、さらに備え、
前記決定部は、さらに、前記判定部による判定結果に基づいて、前記各セグメントの最終的な推定路面を決定する請求項５に記載の画像処理装置。
【請求項７】
前記分割部は、前記頻度画像において、前記距離値の方向に、前記区間の最小単位として複数のセグメントに分割し、
前記推定部は、前記頻度画像において、前記セグメント単位でオーバーラップする複数の前記所定区間それぞれにおいて、前記各分割パターンでの前記各区間の路面の形状を推定し、さらに、前記各所定区間を包含する全体区間での路面形状を推定し、
前記決定部は、前記各所定区間の前記各分割パターンでの前記各区間で推定された推定路面、および前記全体区間での推定路面に基づいて、前記各セグメントの最終的な推定路面を決定する請求項１に記載の画像処理装置。
【請求項８】
前記推定部により前記各所定区間において前記各分割パターンでの前記各区間で推定された推定路面、および前記全体区間での推定路面に対して、適切な路面であるか否かを判定する判定部を、さらに備え、
前記決定部は、前記判定部によって、前記各所定区間において前記各分割パターンでの前記各区間で推定された推定路面のうち、不適切と判定された推定路面が存在する場合、前記全体区間での推定路面を前記各セグメントの最終的な推定路面として決定する請求項７に記載の画像処理装置。
【請求項９】
前記決定部は、前記判定部により前記各分割パターンでの前記各区間で推定された推定路面が不適切と判定された場合、平坦な路面と仮定した路面、または、前記頻度画像に対応するフレームより前のフレームで推定された路面に基づく路面を、該推定路面であるものと見なす請求項２、４、６または８に記載の画像処理装置。
【請求項１０】
前記判定部は、前記所定区間において前記各分割パターンでの前記各区間で推定された推定路面に対して、該推定路面の角度、該推定路面での前記頻度点の点数、該推定路面に隣り合う推定された路面との連続性、および、該推定路面の推定時に求まる相関係数のうち、少なくともいずれか１つまたは２以上の組み合わせに基づいて、適切な路面であるか否かを判定する請求項２、６または８に記載の画像処理装置。
【請求項１１】
前記距離画像を入力する入力部と、
前記入力部により入力された前記距離画像から前記頻度画像を生成する第１生成部と、
をさらに備えた請求項１〜１０のいずれか一項に記載の画像処理装置。
【請求項１２】
前記決定部により決定された推定路面のうち、隣り合う推定路面が連続するように補正する補正部を、さらに備えた請求項１〜１１のいずれか一項に記載の画像処理装置。
【請求項１３】
被写体を撮像することにより第１撮像画像を得る第１撮像部と、
前記第１撮像部の位置とは異なる位置に配置され、前記被写体を撮像することにより第２撮像画像を得る第２撮像部と、
前記第１撮像画像および前記第２撮像画像から前記被写体に対して求めた前記距離値に基づいて、前記距離画像を生成する第２生成部と、
請求項１〜１２のいずれか一項に記載の画像処理装置と、
を備えた物体認識装置。
【請求項１４】
請求項１３に記載の物体認識装置と、
前記物体認識装置により認識された前記物体の情報に基づいて、制御対象を制御する制御装置と、
を備えた機器制御システム。
【請求項１５】
請求項１４に記載の機器制御システムを備えた移動体。
【請求項１６】
物体に対する距離画像における縦方向の位置と、前記各位置における距離値と、を関連付けた前記距離値の頻度分布を示す頻度画像において、前記距離値の方向における所定区間を、分割数が異なる複数の分割パターンに従って１以上の区間に分割する分割ステップと、
前記頻度画像の各頻度点に基づいて、前記各分割パターンでの前記各区間の路面の形状を推定する推定ステップと、
少なくとも、前記各分割パターンでの前記各区間で推定した推定路面に基づいて、前記所定区間の最終的な推定路面を決定する決定ステップと、
を有する画像処理方法。
【請求項１７】
コンピュータに、
物体に対する距離画像における縦方向の位置と、前記各位置における距離値と、を関連付けた前記距離値の頻度分布を示す頻度画像において、前記距離値の方向における所定区間を、分割数が異なる複数の分割パターンに従って１以上の区間に分割する分割ステップと、
前記頻度画像の各頻度点に基づいて、前記各分割パターンでの前記各区間の路面の形状を推定する推定ステップと、
少なくとも、前記各分割パターンでの前記各区間で推定した推定路面に基づいて、前記所定区間の最終的な推定路面を決定する決定ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、物体認識装置、機器制御システム、移動体、画像処理方法およびプログラムに関する。
【背景技術】
【０００２】
従来、自動車の安全性において、歩行者と自動車とが衝突したときに、いかに歩行者を守れるか、および、乗員を保護できるかの観点から、自動車のボディー構造等の開発が行われてきた。しかし、近年、情報処理技術および画像処理技術の発達により、高速に人および自動車を検出する技術が開発されてきている。これらの技術を応用して、自動車が物体に衝突する前に自動的にブレーキをかけ、衝突を未然に防ぐというＡＥＢ（Ａｕｔｏｍａｔｉｃ  Ｅｍｅｒｇｅｎｃｙ  Ｂｒａｋｉｎｇ：衝突被害軽減ブレーキ）の制御機能を搭載した自動車も既に開発されている。また、安全性能に加えてドライバーの運転時の負荷を軽減するため、前方車両を認識して、自動で追従する制御機能であるＡＣＣ（Ａｄａｐｔｉｖｅ  Ｃｒｕｉｓｅ  Ｃｏｎｔｒｏｌ）も既に車載システムとして発売されている。
【０００３】
これらの制御を実現するためには、自車から人または他車等の物体までの距離を正確に測定する必要があり、そのためには、ミリ波レーダおよびレーザレーダによる測距、ならびに、ステレオカメラによる測距等が実用化されている。このような車両の自動制御を実用化するためには、測距された距離情報に基づいて、画面上に写る物体を検出し、物体ごとに制御を行う必要がある。例えば、検出された物体が歩行者か車両かによって制御を変えることが想定される。
【０００４】
ステレオカメラで測距する場合、左右のカメラで撮影された局所領域のずれ量（視差）に基づいて視差画像（距離画像の一例）を生成し、前方物体と自車との距離を測定することができる。そして、同程度の距離に存在する（同程度の視差値を有する）視差画素の群を１つの物体として検出するクラスタリング処理を行い、一定の大きさの物体として検出することで前方に存在する物体を検出することができる。しかし、視差画像においてすべての視差画素をクラスタリングしてしまうと、検出対象となる物体とは別に、路面上の白線等の視差画素も物体として検出し、平坦であるはずの路面の一部分を物体として誤検出してしまう問題がある。この場合、システムは前方に物体が存在するものであると判定して、例えば、急ブレーキをかけてしまうという問題が生じる。
【０００５】
この問題を解決するために、各視差画素（視差画像上の一点）を、視差画像の垂直位置（ｙ座標の位置）に対して、その視差画素の視差値（距離値の一例）が示す水平座標（以下、「ｄｐ座標」と称する場合がある）に投票したＶ−Ｄｉｓｐａｒｉｔｙマップ（縦軸：視差画像の垂直座標、横軸：視差値）（以下、単に「Ｖマップ」と称する場合がある）（頻度画像の一例）を生成し、Ｖマップに投票された点（以下、「視差点」と称する場合がある）群に対して最小二乗法等の統計手法を用いて路面形状を推定するという方法がある。ここで、Ｖ−Ｄｉｓｐａｒｉｔｙマップとは、上述のように、縦軸を視差画像のｙ軸とし、横軸を視差画像の視差値（または距離）とした、視差値の頻度分布を示す二次元ヒストグラムである。また、投票とは、Ｖマップ上の所定の座標の視差点の値（画素値）（初期値＝０）を１だけインクリメントする処理をいうものとする。そして、推定された路面（推定路面）よりも高い位置に存在する視差点に対応する視差画像の視差画素によってクラスタリング処理を行うことによって、路面等から検出された不要な視差画素を誤って物体として検出してしまう問題を緩和することができる。
【０００６】
このような路面形状を推定する技術として、画像中の大部分を路面以外の物体が占める状況下にある場合、路面の勾配が大きい場合、および、障害物が路面に対して垂直ではなく勾配を持っており路面と類似した視差分布になる場合において、路面形状を正確に推定する方法が開示されている（特許文献１参照）。具体的には、特許文献１に記載された技術では、まず、視差画像中の着目画素に対して、隣接する画素との視差勾配を算出する。次に、この画素（視差）に対する勾配閾値を事前に定義しておいたテーブルから算出し、予め算出した勾配が、閾値以上の場合には、着目画素が路面の画素（視差）であると見なしてＶマップに投票する。この方法を全画素に対して実行することにより、Ｖマップを構成する。したがって、当該技術は、Ｖマップに路面以外の物体視差が混入するリスクを軽減し、路面形状を正確に推定しようとするものである。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載された技術では、閾値テーブルを構成する際、路面の取りうる最大の勾配を事前に定義して視差値に対する勾配閾値を算出しているが、これは路面の視差勾配と物体の視差勾配とを分離できることを前提にした方法である。一般的に、遠方の場合、視差精度が悪いため、路面の視差勾配と、物体の視差勾配とを明確に分離できるとは限らない。つまり、Ｖマップ上の路面視差群と物体視差群とが類似した分布パターンを持つ場合がある。その場合、路面以外の視差を除外することは困難である。また、距離によって視差精度が変わることを考慮すると、視差値ごとに物体視差と分離するための最大の勾配を決定することも難しい。特に、実世界には２５％を超える急勾配の路面も存在しており、その場合、Ｖマップ上の視差分布は、物体視差と類似する可能性が高い。また、アプリケーションによっては急勾配も検出対象となる可能性があり、その場合、閾値を高めに設定すると、視差勾配が全て閾値以下になってしまい、物体視差と路面視差とをそもそも分離できなくなる可能性がある。したがって、Ｖマップ生成時に、画素ごとに投票有無を決定することは実運用を考慮すると困難であるといえる。すなわち、Ｖマップを生成する処理において、Ｖマップ上の視差点数および視差分布は、上述のような実路面の形状（平坦、上り坂、下り坂、バンク等）を含め、天候（晴天、雨天、雪天等）、および時間（朝、昼、夕、夜等）等で変化するため、最適な路面を推定することが困難であった。
【０００８】
本発明は、上記に鑑みてなされたものであって、実運用に耐え得るように路面の推定処理の精度を向上させることができる画像処理装置、物体認識装置、機器制御システム、移動体、画像処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、物体に対する距離画像における縦方向の位置と、前記各位置における距離値と、を関連付けた前記距離値の頻度分布を示す頻度画像において、前記距離値の方向における所定区間を、分割数が異なる複数の分割パターンに従って１以上の区間に分割する分割部と、前記頻度画像の各頻度点に基づいて、前記各分割パターンでの前記各区間の路面の形状を推定する推定部と、少なくとも、前記推定部により前記各分割パターンでの前記各区間で推定された推定路面に基づいて、前記所定区間の最終的な推定路面を決定する決定部と、を備えたことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、実運用に耐え得るように路面の推定処理の精度を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、第１の実施形態に係る機器制御システムを車両に搭載した例を示す図である。
【図２】図２は、第１の実施形態に係る物体認識装置の外観の一例を示す図である。
【図３】図３は、第１の実施形態に係る物体認識装置のハードウェア構成の一例を示す図である。
【図４】図４は、第１の実施形態に係る物体認識装置の機能ブロック構成の一例を示す図である。
【図５】図５は、視差画像から生成されるＶマップの一例を示す図である。
【図６】図６は、視差画像から生成されるＵマップの一例を示す図である。
【図７】図７は、第１の実施形態に係る物体認識装置の路面推定部の機能ブロック構成の一例を示す図である。
【図８】図８は、Ｖマップの生成動作を説明する図である。
【図９】図９は、Ｖマップにおいて所定の数の区間に分割する動作を説明する図である。
【図１０】図１０は、第１の実施形態に係る路面推定部の多段階推定処理の一例を説明する図である。
【図１１】図１１は、第１の実施形態の多段階推定処理の効果を説明する図である。
【図１２】図１２は、第１の実施形態の多段階推定処理の効果を説明する図である。
【図１３】図１３は、第１の実施形態の路面推定部の路面推定処理の動作の一例を示すフローチャートである。
【図１４】図１４は、第２の実施形態に係る物体認識装置の路面推定部の機能ブロック構成の一例を示す図である。
【図１５】図１５は、第２の実施形態に係る路面推定部の多段階推定処理の一例を説明する図である。
【図１６】図１６は、第２の実施形態の路面推定部の路面推定処理の動作の一例を示すフローチャートである。
【図１７】図１７は、第３の実施形態に係る物体認識装置の路面推定部の機能ブロック構成の一例を示す図である。
【図１８】図１８は、第３の実施形態に係る路面推定部の多段階推定処理の一例を説明する図である。
【図１９】図１９は、第１の実施形態と第２の実施形態の多段階推定処理を組み合せることによる効果を説明する図である。
【図２０】図２０は、第３の実施形態の路面推定部の路面推定処理の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に、図１〜図２０を参照しながら、本発明に係る画像処理装置、物体認識装置、機器制御システム、移動体、画像処理方法およびプログラムの実施形態を詳細に説明する。また、以下の実施形態によって本発明が限定されるものではなく、以下の実施形態における構成要素には、当業者が容易に想到できるもの、実質的に同一のもの、およびいわゆる均等の範囲のものが含まれる。さらに、以下の実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換、変更および組み合わせを行うことができる。
【００１３】
［第１の実施形態］
（物体認識装置を備えた車両の概略構成）
図１は、第１の実施形態に係る機器制御システムを車両に搭載した例を示す図である。図１を参照しながら、本実施形態に係る機器制御システム６０が車両７０に搭載される場合を例に説明する。
【００１４】
図１のうち、図１（ａ）は、機器制御システム６０を搭載した車両７０（移動体の一例）の側面図であって、機器制御システム６０の搭載態様の概略図であり、図１（ｂ）は、車両７０の正面図であり、そして、図１（ｃ）は、車両７０の平面図（上面図）である。
【００１５】
図１に示すように、自動車である車両７０は、機器制御システム６０を搭載している。機器制御システム６０は、車両７０の居室空間である車室に設置された物体認識装置１と、車両制御装置６（制御装置）と、ステアリングホイール７と、ブレーキペダル８と、を備えている。
【００１６】
物体認識装置１は、車両７０の進行方向を撮像する撮像機能を有し、例えば、車両７０のフロントウィンドウ内側のバックミラー近傍に設置される。物体認識装置１は、構成および動作の詳細は後述するが、各ハードウェア部品を内蔵した本体部２と、本体部２に固定された撮像部１０ａと、撮像部１０ｂとを備えている。撮像部１０ａ、１０ｂは、車両７０の進行方向の被写体を撮像できるように本体部２に固定されている。図１（ｃ）に示すように、撮像部１０ａで撮像される視界（右目視界）と、撮像部１０ｂで撮像される視界（左目視界）とは、ずれがあるため、これが視差として測定される。
【００１７】
車両制御装置６は、物体認識装置１から受信した認識情報に基づいて、各種車両制御を実行するＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）である。車両制御装置６は、車両制御の例として、物体認識装置１から受信した認識情報に基づいて、ステアリングホイール７を含むステアリング系統（制御対象の一例）を制御して障害物を回避するステアリング制御、または、ブレーキペダル８（制御対象の一例）を制御して車両７０を減速および停止させるブレーキ制御等を実行する。
【００１８】
このような物体認識装置１および車両制御装置６を含む機器制御システム６０のように、ステアリング制御またはブレーキ制御等の車両制御が実行されることによって、車両７０の運転の安全性を向上することができる。
【００１９】
なお、上述のように、物体認識装置１は、車両７０の前方を撮像するものとしたが、これに限定されるものではない。すなわち、物体認識装置１は、車両７０の後方または側方を撮像するように設置されるものとしてもよい。この場合、物体認識装置１は、車両７０の後方の後続車および人、または側方の他の車両および人等の位置を検出することができる。そして、車両制御装置６は、車両７０の車線変更時または車線合流時等における危険を検知して、上述の車両制御を実行することができる。また、車両制御装置６は、車両７０の駐車時等におけるバック動作において、物体認識装置１によって出力された車両７０の後方の障害物についての認識情報に基づいて、衝突の危険があると判断した場合に、上述の車両制御を実行することができる。
【００２０】
（物体認識装置の構成）
図２は、第１の実施形態に係る物体認識装置の外観の一例を示す図である。図２に示すように、物体認識装置１は、上述のように、各ハードウェア部品を内蔵した本体部２と、本体部２に固定された撮像部１０ａと、撮像部１０ｂとを備えている。撮像部１０ａ、１０ｂは、本体部２に対して平行等位に配置された一対の円筒形状のカメラで構成されている。また、説明の便宜上、図２に示す撮像部１０ａを右のカメラと称し、撮像部１０ｂを左のカメラと称する場合がある。
【００２１】
＜物体認識装置のハードウェア構成＞
図３は、第１の実施形態に係る物体認識装置のハードウェア構成の一例を示す図である。図３を参照しながら、本実施形態に係る物体認識装置１のハードウェア構成について説明する。
【００２２】
図３に示すように、物体認識装置１は、撮像部１０ａ（第１撮像部）と、撮像部１０ｂ（第２撮像部）と、情報処理部３０と、を備えている。撮像部１０ａおよび撮像部１０ｂによって、いわゆるステレオカメラが構成される。
【００２３】
撮像部１０ａは、前方の被写体を撮像して撮像画像（輝度画像）（第１撮像画像）を生成する処理部である。撮像部１０ａは、撮像レンズ１１ａと、画像センサ１３ａと、センサコントローラ２０ａと、を備えている。
【００２４】
撮像レンズ１１ａは、入射する光を屈折させて物体の像を画像センサ１３ａに結像させるための光学素子である。画像センサ１３ａは、撮像レンズ１１ａに入射して透過した光を電気的なアナログの画像信号に変換する半導体素子である。画像センサ１３ａは、例えば、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅｓ）またはＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）等の固体撮像素子によって実現される。
【００２５】
センサコントローラ２０ａは、画像センサ１３ａの露光制御、画像読み出し制御、外部回路との通信、および画像データの送信制御等を行うコントローラである。センサコントローラ２０ａは、画像センサ１３ａによって得られたアナログの画像信号をデジタル形式の画像データ（以下、単に「画像」と称する場合がある）（撮像画像、輝度画像）に変換して、後段の情報処理部３０に送信する。
【００２６】
撮像部１０ｂは、前方の被写体を撮像して撮像画像（輝度画像）（第２撮像画像）を生成する処理部である。撮像部１０ｂは、撮像レンズ１１ｂと、画像センサ１３ｂと、センサコントローラ２０ｂと、を備えている。なお、撮像レンズ１１ｂ、画像センサ１３ｂおよびセンサコントローラ２０ｂの機能は、それぞれ上述した撮像レンズ１１ａ、画像センサ１３ａおよびセンサコントローラ２０ａの機能と同様である。また、撮像レンズ１１ａおよび撮像レンズ１１ｂは、左右のカメラが同一の条件で撮像されるように、それぞれのレンズの主面が互いに同一平面上にあるように設置されている。
【００２７】
情報処理部３０は、撮像部１０ａ、１０ｂからそれぞれ得られた輝度画像から、視差画像を生成し、当該視差画像に基づいて、輝度画像に写り込んでいる人および車等の物体を認識する物体認識処理を行う装置である。情報処理部３０は、物体認識処理の結果を示す認識情報を、車両制御装置６に出力する。情報処理部３０は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）３１と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３２と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３３と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３４と、データＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３５と、シリアルＩ／Ｆ３６と、シリアルバスライン３８と、データバスライン３９と、を備えている。
【００２８】
ＦＰＧＡ３１は、画像データに対してリアルタイム性が要求される処理を行う集積回路である。ＦＰＧＡ３１は、例えば、ガンマ補正、歪み補正（左右画像の平行化）、ブロックマッチングによる視差演算を行い、視差画像を生成し、生成した視差画像をＲＡＭ３４に書き込む。
【００２９】
ＣＰＵ３２は、情報処理部３０の各機能を制御する演算装置である。ＣＰＵ３２は、例えば、撮像部１０ａ、１０ｂのセンサコントローラ２０ａ、２０ｂの制御を行う。また、ＣＰＵ３２は、データＩ／Ｆ３５を介して、車両７０のＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）情報（例えば、車速、加速度、舵角、ヨーレート等）を取得し、ＲＯＭ３３に記憶されている物体認識処理プログラムに従って、ＲＡＭ３４に記憶されている輝度画像および視差画像を用いて、物体に対する物体認識処理を行う。
【００３０】
ＲＯＭ３３は、ＣＰＵ３２が情報処理部３０の物体認識処理を実行する物体認識処理プログラムを記憶している不揮発性の記憶装置である。物体認識処理プログラムは、画像処理プログラムの一例である。
【００３１】
ＲＡＭ３４は、ＣＰＵ３２にワークエリアとして使用される揮発性の記憶装置である。
【００３２】
データＩ／Ｆ３５は、車両７０のＣＡＮに接続され、ＣＡＮ情報を受信するインターフェースである。シリアルＩ／Ｆ３６は、情報処理部３０による物体認識処理により生成された認識情報を、例えば、外部の車両制御装置６に送信するためのインターフェースである。
【００３３】
シリアルバスライン３８は、ＦＰＧＡ３１またはＣＰＵ３２からのセンサ露光値の変更制御データ、画像読み出しパラメータの変更制御データ、および各種設定データ等を、センサコントローラ２０ａ、２０ｂへ送信するためのバスである。データバスライン３９は、図３に示すように、センサコントローラ２０ａ、２０ｂ、ＦＰＧＡ３１、ＣＰＵ３２、ＲＯＭ３３、ＲＡＭ３４、データＩ／Ｆ３５およびシリアルＩ／Ｆ３６が互いに通信可能となるように接続するバスである。
【００３４】
なお、情報処理部３０は、視差画像を生成する集積回路としてＦＰＧＡ３１を備えるものとしているが、これに限定されるものではなく、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等のその他の集積回路であってもよい。
【００３５】
また、図３に示す物体認識装置１のハードウェア構成は一例であって、これに限定されるものではなく、図３に示した構成要素を全て含む必要はなく、または、その他の構成要素を含むものとしてもよい。
【００３６】
＜物体認識装置の機能ブロックの構成および動作＞
図４は、第１の実施形態に係る物体認識装置の機能ブロック構成の一例を示す図である。図５は、視差画像から生成されるＶマップの一例を示す図である。図６は、視差画像から生成されるＵマップの一例を示す図である。図４〜図６を参照しながら、本実施形態に係る物体認識装置１の機能ブロック構成および動作について説明する。
【００３７】
図４に示すように、本実施形態に係る物体認識装置１は、画像取得部１００ａ、１００ｂと、変換部２００ａ、２００ｂと、視差演算部３００（第２生成部）と、路面推定部４００と、クラスタリング部４５０と、棄却部５００と、トラッキング判定部５５０と、を有する。
【００３８】
画像取得部１００ａは、右のカメラにより前方の被写体を撮像して、アナログの画像信号を生成し、画像信号に基づく画像（撮像画像）である輝度画像を得る機能部である。画像取得部１００ａは、図３に示す撮像部１０ａによって実現される。
【００３９】
画像取得部１００ｂは、左のカメラにより前方の被写体を撮像して、アナログの画像信号を生成し、画像信号に基づく画像（撮像画像）である輝度画像を得る機能部である。画像取得部１００ｂは、図３に示す撮像部１０ｂによって実現される。
【００４０】
変換部２００ａは、画像取得部１００ａにより得られた輝度画像の画像データに対して、ノイズの除去等を行い視差画像の基となる基準画像Ｉａに変換して生成する機能部である。変換部２００ａは、図３に示すＦＰＧＡ３１によって実現される。
【００４１】
変換部２００ｂは、画像取得部１００ｂにより得られた輝度画像の画像データに対して、ノイズの除去等を行い視差画像の基となる比較画像Ｉｂに変換して生成する機能部である。変換部２００ｂは、図３に示すＦＰＧＡ３１によって実現される。
【００４２】
すなわち、変換部２００ａ、２００ｂは、画像取得部１００ａ、１００ｂそれぞれから出力された２つの輝度画像に基づいて、それぞれ基準画像Ｉａおよび比較画像Ｉｂを視差演算部３００へ出力する。また、変換部２００ａは、基準画像Ｉａを、棄却部５００へ出力する。
【００４３】
視差演算部３００は、変換部２００ａ、２００ｂそれぞれから受け取った基準画像Ｉａおよび比較画像Ｉｂに基づいて、局所領域のブロックマッチング等を用いて、基準画像Ｉａの各画素についての視差値ｄｐを導出し、基準画像Ｉａの各画素に視差値を対応させた視差画像を生成する機能部である。視差演算部３００は、生成した視差画像を、路面推定部４００およびクラスタリング部４５０へ出力する。視差演算部３００は、図３に示すＦＰＧＡ３１によって実現される。
【００４４】
路面推定部４００は、視差演算部３００から受信した視差画像の各画素値（視差値）をＶマップの対応する座標の視差点に対して投票することによって最終的なＶマップを生成し、Ｖマップにおける投票された視差点から標本点を探索し、探索された標本点群に対して直線近似（または、曲線近似）することで路面形状を推定する機能部である。ここで、図５（ａ）は、視差演算部３００から出力される視差画像Ｉｐを示し、図５（ｂ）は、路面推定部４００により視差画像Ｉｐから生成されるＶマップＶＭを示す。図５（ｂ）に示すように、ＶマップＶＭの縦軸は視差画像Ｉｐのｙ座標に対応し、横軸は視差値ｄｐに対応している。ＶマップＶＭの生成時においては、所定のｙ座標における視差画像Ｉｐ中の水平ラインに存在する視差値を、ＶマップＶＭ上のｄｐ座標に投票していくため、ＶマップＶＭの各座標の画素値には視差値の頻度が格納される。
【００４５】
図５（ａ）に示す視差画像Ｉｐには、例えば、路面６００と、車６０１と、とが写り込んでいる。この視差画像Ｉｐの路面６００は、ＶマップＶＭにおいては推定路面６００ａに対応し、車６０１は、車部６０１ａに対応する。推定路面６００ａは、下記のように、ＶマップＶＭにおいて路面６００に対応する視差点から推定された路面形状である。
【００４６】
また、路面推定部４００は、生成したＶマップＶＭから、路面と推定される位置（標本点）について直線近似する。具体的には、路面推定部４００は、ＶマップＶＭに対して投票された視差点から、路面形状の推定に必要な代表点である標本点を探索し、それらを最小二乗法等により直線近似することによって、路面形状を推定し推定路面６００ａを得る。路面が平坦な場合は、１本の直線で近似可能であるが、勾配が変わる路面の場合は、ＶマップＶＭの区間を分割して精度よく直線近似する必要がある。
【００４７】
また、視差値は、自車に近いほど、値が大きくなるため、視差画像の下方の視差値は上方の視差値に比べて大きな値を有する。したがって、ＶマップＶＭ上の推定路面６００ａは、図５（ｂ）に示すように、右下下がり（左上上がり）の形状となる。この時、物体が存在するｙ座標の範囲（図５に示す水平の破線の間の範囲内）には、物体を表す視差が投票される。物体は路面よりも高い位置に存在しているため、ＶマップＶＭ上の分布は上下方向に延びる形状をしている。これは、同じ物体であれば物体認識装置１からの距離がほぼ一定となるため、この物体について求められた各視差値同士は互いに近い数値になるためである。なお、路面推定部４００の詳細な構成および動作は、図７〜図１２で後述する。
【００４８】
ＶマップＶＭにおいて、推定された推定路面６００ａより上方に位置する塊である車部６０１ａは、実際の路面上の物体である車６０１に相当する。後述するクラスタリング部４５０によりＵ−Ｄｉｓｐａｒｉｔｙマップが生成される際には、ノイズ除去のため推定された路面より上方の情報のみが用いられる。
【００４９】
クラスタリング部４５０は、変換部２００ａから受信した基準画像（輝度画像）、視差演算部３００から受信した視差画像、ならびに、路面推定部４００により出力されるＶマップおよび推定路面の情報に基づいて、視差画像に写っている物体を検出する機能部である。具体的には、クラスタリング部４５０は、まず、Ｖマップ上において路面推定部４００により推定された推定路面より上方に位置する情報のみを利用、すなわち、例えば、図６（ａ）に示す視差画像Ｉｐの左ガードレール６１１、右ガードレール６１２、車６１３および車６１４に対応する情報を利用して、物体を認識するために、図６（ｂ）に示すＵ−Ｄｉｓｐａｒｉｔｙマップ（以下、単に「Ｕマップ」と称する場合がある）であるＵマップＵＭを生成する。ここで、Ｕ−Ｄｉｓｐａｒｉｔｙマップとは、横軸を視差画像Ｉｐのｘ軸とし、縦軸を視差画像Ｉｐの視差値ｄｐ（または距離）とした、視差値ｄｐの頻度分布を示す二次元ヒストグラムである。図６（ａ）に示す視差画像Ｉｐの左ガードレール６１１は、ＵマップＵＭにおいては左ガードレール部６１１ａに対応し、右ガードレール６１２は、右ガードレール部６１２ａに対応し、車６１３は、車部６１３ａに対応し、車６１４は、車部６１４ａに対応する。なお、クラスタリング部４５０は、視差画像ＩｐからＲｅａｌ  Ｕ−Ｄｉｓｐａｒｉｔｙマップ（俯瞰画像）を生成してもよい。ここで、Ｒｅａｌ  Ｕ−Ｄｉｓｐａｒｉｔｙマップとは、横軸を、撮像部１０ｂ（左のカメラ）から撮像部１０ａ（右のカメラ）へ向かう方向の実距離とし、縦軸を、視差画像の視差値ｄｐ（またはその視差値ｄｐから変換した奥行き方向の距離）とした二次元ヒストグラムである。
【００５０】
なお、変換部２００ａからクラスタリング部４５０に基準画像Ｉａが入力されることに限定されるものではなく、変換部２００ｂからの比較画像Ｉｂを対象とするものとしてもよい。
【００５１】
クラスタリング部４５０は、生成したＵマップから、物体の視差画像および基準画像Ｉａにおけるｘ軸方向の位置および幅（ｘｍｉｎ，ｘｍａｘ）を特定できる。また、クラスタリング部４５０は、生成したＵマップでの物体の高さの情報（ｄｍｉｎ，ｄｍａｘ）から物体の実際の奥行きを特定できる。また、クラスタリング部４５０は、受信したＶマップから、物体の視差画像および基準画像Ｉａにおけるｙ軸方向の位置および高さ（ｙｍｉｎ＝「最大視差値の路面からの最大高さに相当するｙ座標」，ｙｍａｘ＝「最大視差値から得られる路面の高さを示すｙ座標」）を特定できる。また、クラスタリング部４５０は、視差画像において特定した物体のｘ軸方向の幅（ｘｍｉｎ，ｘｍａｘ）、ｙ軸方向の高さ（ｙｍｉｎ，ｙｍａｘ）およびそれぞれに対応する視差値ｄｐから、物体の実際のｘ軸方向およびｙ軸方向のサイズが特定できる。以上のように、クラスタリング部４５０は、ＶマップおよびＵマップを利用して、基準画像Ｉａでの物体の位置、ならびに実際の幅、高さおよび奥行きを特定することができる。また、クラスタリング部４５０は、基準画像Ｉａでの物体の位置が特定されるので、視差画像における位置も定まり、物体までの距離も特定できる。
【００５２】
また、クラスタリング部４５０は、物体について特定した実際のサイズ（幅、高さ、奥行き）から、下記の（表１）を用いて、物体が何であるかを特定することができる。例えば、物体の幅が１３００［ｍｍ］、高さが１８００［ｍｍ］、奥行きが２０００［ｍｍ］である場合、物体は「普通車」であると特定できる。なお、（表１）のような幅、高さおよび奥行きと、物体の種類（物体タイプ）とを関連付ける情報をテーブルとして、ＲＡＭ３４等に記憶させておくものとすればよい。
【００５３】
【表１】
2019160247.tif 000003
【００５４】
そして、クラスタリング部４５０は、検出した物体の画像（認識画像）に関する情報（例えば、基準画像Ｉａでの位置を示す座標、およびサイズ等）（以下、単に「認識画像情報」と称する）を出力する。
【００５５】
棄却部５００は、変換部２００ａから出力された基準画像Ｉａ、およびクラスタリング部４５０から出力された認識画像情報に基づいて、認識画像情報で示される認識画像について棄却するか否かを判定する棄却判定を行う機能部である。ここで、棄却とは、その物体を後段の処理（追跡処理等）の対象外とする処理を示す。棄却部５００は、当該棄却判定の結果を、対応する認識画像情報に含めるものとすればよい。
【００５６】
トラッキング判定部５５０は、棄却部５００からの棄却判定の結果に基づいて、認識画像に含まれる物体に対してトラッキングを行うか否かを判定する機能部である。例えば、トラッキング判定部５５０は、棄却部５００で棄却と判定されなかった物体に対してトラッキングを行うものと判定し、その物体の認識画像情報にトラッキングを行う旨の情報を含め、認識情報として車両制御装置６に出力する。
【００５７】
また、図４に示す物体認識装置１の路面推定部４００、クラスタリング部４５０、棄却部５００およびトラッキング判定部５５０は、それぞれ図３に示すＣＰＵ３２がプログラム（物体認識処理プログラム）を実行することによって実現される。なお、路面推定部４００、クラスタリング部４５０、棄却部５００およびトラッキング判定部５５０の一部または全部は、ハードウェア回路であるＦＰＧＡ３１、または、その他のハードウェア回路（ＡＳＩＣ等）によって実現されるものとしてもよい。
【００５８】
なお、本発明に係る「画像処理装置」は、路面推定部４００であってもよく、路面推定部４００を含む情報処理部３０であってもよい。
【００５９】
また、図４に示す物体認識装置１の各機能部は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、図４に示す物体認識装置１で独立した機能部として図示した複数の機能部を、１つの機能部として構成してもよい。一方、図４に示す物体認識装置１で１つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
【００６０】
＜＜路面推定部の機能ブロックの構成および動作＞＞
図７は、第１の実施形態に係る物体認識装置の路面推定部の機能ブロック構成の一例を示す図である。図８は、Ｖマップの生成動作を説明する図である。図９は、Ｖマップにおいて所定の数の区間に分割する動作を説明する図である。図１０は、第１の実施形態に係る路面推定部の多段階推定処理の一例を説明する図である。図１１は、第１の実施形態の多段階推定処理の効果を説明する図である。図１２は、第１の実施形態の多段階推定処理の効果を説明する図である。図７〜図１２を参照しながら、本実施形態に係る路面推定部４００の機能ブロックの具体的な構成および動作について説明する。
【００６１】
図７に示すように、路面推定部４００は、入力部４０１と、Ｖマップ生成部４０２（第１生成部）と、多段階推定処理部４０４と、スムージング部４０５（補正部）と、出力部４０６と、を有する。
【００６２】
入力部４０１は、視差演算部３００から視差画像を入力する機能部である。
【００６３】
Ｖマップ生成部４０２は、入力部４０１により入力された視差画像の各視差画素の視差値を、Ｖマップの対応する視差点に対して投票することによってＶマップを生成する機能部である。Ｖマップ生成部４０２によるＶマップの生成において、視差画像のｙ座標とＶマップのｙ座標とは対応関係にあり、視差画像の特定のｙ座標の水平ライン上の視差値は、Ｖマップの対応するｙ座標の水平ラインのいずれかの視差点に投票される。したがって、視差画像の同じ水平ラインに含まれる視差値は同値となるものも存在するため、Ｖマップの任意の座標の視差点には、視差値の頻度が格納されることになる。視差画像を特定の水平ラインにおいては、同じ路面であれば、視差値は互いに類似する値となるため、Ｖマップにおける路面に対応する視差点は密集して投票されることになる。
【００６４】
なお、Ｖマップ生成部４０２は、視差画像中の全ての視差画素の視差値をＶマップに投票してもよいが、図８に示す視差画像Ｉｐ１のように、所定の領域（例えば、図８に示す投票領域７０１〜７０３）を設定し、その領域に含まれる視差画素の視差値のみを投票するものとしてもよい。例えば、路面は遠方になるにつれて、消失点に向かって狭くなっていくという性質を利用し、図８に示すように、路面の幅にあった投票領域を所定数設定する方法が考えられる。このように投票領域に制限することによって、路面以外のノイズがＶマップに混入することを抑制することができる。
【００６５】
また、視差画像中の一水平ラインにおける視差画素を適宜間引いて投票するものとしてもよい。また、間引きに関しては、水平方向だけではなく、垂直方向に対して実行してもよい。
【００６６】
多段階推定処理部４０４は、Ｖマップを複数段において分割した区間において路面を推定し、各推定路面について適切な路面であるか否かの成否判定を行って、最終的な推定路面を決定する多段階推定処理を実行する機能部である。多段階推定処理部４０４は、図７に示すように、区間分割部４１１（分割部）と、標本点探索部４１２（探索部）と、形状推定部４１３（推定部）と、成否判定部４１４（判定部）と、路面決定部４１５（決定部）と、を有する。
【００６７】
区間分割部４１１は、多段階推定処理において、予め定められた複数段の分割に従って、Ｖマップのｄｐ方向（水平方向）における所定区間を１以上の区間に分割する機能部である。ここで、「段」とは、所定区間を何分割に分割するかの分割パターンを示す。したがって、複数段の分割とは、複数の分割パターンに従って分割することを示す。例えば、図９では、ＶマップＶＭ１全体を所定区間とし、特定の段に従って、所定区間を８つの区間に分割した例を示す。なお、図９では、ｄｐ方向について複数の区間に分割した例を示しているが、これに限定されるものではなく、例えば、ｙ方向について複数の区間に分割するものとしてもよい。これによって、例えば、路面の視差が分布する位置が特定できる場合、ｙ方向を分割することでより限定した領域内を処理することができるため、ノイズの混入を防止する効果、および処理時間の短縮に寄与する。本実施形態では、Ｖマップのｄｐ方向での区間に分割するものとし、所定区間をＶマップのｄｐ方向（水平方向）の全体の幅であるものとして説明する。
【００６８】
図１０に示す例では、段数を２段として多段階推定処理を行う場合の例を示している。この場合、区間分割部４１１は、ＶマップＶＭ２において、１段目（第１分割パターン）においては分割数を１とし、所定区間を分割しない、すなわち、所定区間を１つの区間としている（１つの区間に分割するとも言える）。そして、区間分割部４１１は、ＶマップＶＭ２において、２段目（第２分割パターン）においては分割数を２とし、所定区間を等分に２つの区間に分割する。なお、図１０に示す例は、段数を２段とした例を示しているが、これに限定されるものではなく、所定区間を３段以上の段数として、各段に応じた区間に分割するものとしてもよい。また、各段における分割数は連続している必要はなく、例えば、１段目において分割数を１として、２段目において分割数を３としてもよい。
【００６９】
そして、後述するように、多段階推定処理では、各段において分割された区間において、標本点探索部４１２により各ｄｐ座標における視差点から標本点が探索される。
【００７０】
標本点探索部４１２は、多段階推定処理において、Ｖマップに投票された視差点（頻度点の一例）のうち、区間分割部４１１により分割された各区間における各ｄｐ座標の位置から、少なくとも１つ以上の代表点（以下、「標本点」と称する）を探索して選択する機能部である。標本点の探索方法としては、例えば、各ｄｐ座標に対して、その垂直（縦）方向に存在する視差点のうち、単純に頻度の最も多い視差点（最頻点）を選択してもよく、または、着目するｄｐ座標とその左右の複数の画素を併せてＶマップの下方向から上方向に上げていき、路面の視差点が含まれ得る領域を制限した上で、その中から最頻点を探索して選択することにより正確に路面の視差点を捉える方法を用いてもよい。または、視差点がない位置（座標）を標本点として探索し選択するものとしてもよい。例えば、着目している座標（ｄｐ，ｙ）には視差点は存在していないが、周囲に頻度が多い視差点が集中している場合、偶発的に座標（ｄｐ，ｙ）の視差点が欠落している可能性があるため、この抜けている位置を標本点として選択することも可能である。そして、後述するように、多段階推定処理では、各区間において探索された標本点群から、形状推定部４１３により路面が推定される。
【００７１】
なお、標本点探索部４１２は、探索した標本点のうち、不適切な標本点を除去してもよい。これによって、後述するように、形状推定部４１３によって標本点群から路面を推定する際に、不適切な標本点（外れ点）の影響を受けて、推定路面の形状が不適切になってしまうことを抑制することができる。外れ点の除去方法としては、例えば、一旦、対象の区間内の全ての標本点を使って最小二乗法で直線近似し、近似直線から所定の距離離れた標本点を除去するものとしてもよい。この場合、外れ点を除去した状態で、再度、最小二乗法により推定した路面が最終的な推定路面となる。
【００７２】
形状推定部４１３は、多段階推定処理において、標本点探索部４１２により各区間で探索された標本点群から、当該区間での路面形状の推定（路面推定）を行う機能部である。路面推定の方法としては、例えば、最小二乗法等によって標本点群に対して直線近似を行う方法、または、多項式近似等を用いて曲線形状を推定する方法等がある。以降の説明では、特に断らない限り、路面推定では直線近似によるものとして説明する。
【００７３】
図１０に示す例では、形状推定部４１３は、分割数が１である１段目においては、標本点探索部４１２により探索された標本点群を用いて、ＶマップＶＭ２において、所定区間の推定路面として推定路面８０１を求めている。また、形状推定部４１３は、分割数が２である２段目においては、距離が近いものから、２つの区間でそれぞれ推定路面８０２ａ、８０２ｂを求めている。
【００７４】
また、形状推定部４１３は、例えば、成否判定部４１４による推定路面の成否判定で使用するために、各段、各区間で推定された推定路面に対する信頼度を算出する。例えば、形状推定部４１３は、各段、各区間で路面を推定するために最小二乗法を用いて直線近似した場合、相関係数をその推定路面の信頼度として算出するものとしてもよい。なお、信頼度の算出方法は、上述の方法に限定されるものではなく、推定路面の信頼度を定量化できる方法であれば、任意の方法を使用することができる。
【００７５】
そして、後述するように、多段階推定処理では、形状推定部４１３により推定された各段の各区間での推定路面に対して、成否判定部４１４により推定路面が適切であるか否かの成否判定が行われる。
【００７６】
成否判定部４１４は、多段階推定処理において、形状推定部４１３により推定された各段、各区間での推定路面が適切（成功）か否かを判定する成否判定を行う機能部である。例えば、成否判定部４１４は、標本点の並びが右上並びに整列していると推定された場合、すなわち推定路面の角度が不適切である場合、路面として不適切（失敗）であると判定する。このような問題の発生の原因としては、例えば、個々の標本点の探索が独立して実行されることが挙げられる。また、成否判定部４１４は、例えば、形状推定部４１３により算出された各段、各区間における推定路面の信頼度に基づいて、当該推定路面が適切か否かを判定するものとしてもよい。例えば、成否判定部４１４は、特定の推定路面の信頼度が所定の閾値よりも小さい場合、当該推定路面を不適切（失敗）であると判定する。なお、成否判定部４１４は、上述の推定路面の角度および信頼度の他、推定するときに用いた標本点数（視差点数でもよい）、または、隣り合う２つの推定路面の連続性に基づいて、推定路面に対する成否判定を行ってもよい。
【００７７】
図１０に示す例では、成否判定部４１４は、分割数１である１段目で推定された推定路面８０１に対して成否判定を行い、分割数が２である２段目で推定された推定路面８０２ａ、８０２ｂに対してそれぞれ成否判定を行う。
【００７８】
そして後述するように、多段階推定処理では、成否判定部４１４により成否判定により適切と判定された各推定路面から、路面決定部４１５により所定区間における最終的な推定路面が決定される。
【００７９】
なお、形状推定部４１３により各段、各区間で推定された推定路面に対する信頼度が算出されるものとしたが、これに限定されるものではなく、成否判定部４１４が当該信頼度を算出するものとしてもよい。
【００８０】
路面決定部４１５は、成否判定部４１４により成否判定により適切と判定された各推定路面から、所定区間における最終的な推定路面を決定する機能部である。例えば、路面決定部４１５は、各段における推定路面の信頼度のうち、最も信頼度の高い段における推定路面を、所定区間における最終的な推定路面として決定する。
【００８１】
図１０に示す例では、路面決定部４１５は、例えば、１段目で推定された推定路面８０１の信頼度と、２段目で推定された推定路面８０２ａ、８０２ｂのそれぞれの信頼度の平均値とを比較し、高い信頼度を有する段の推定路面を、所定区間における最終的な推定路面として決定する。
【００８２】
なお、上述では、段ごとに信頼度を求めて（分割数が２であれば、２つの区間での推定路面の各信頼度の平均値）、最も高い信頼度を有する段の推定路面を決定するものとしているが、これに限定されるものではない。例えば、決定する推定路面を区間ごとに決定するものとしてもよい。例えば、図１０に示す例の場合、２つに分割した右側の区間については、推定路面８０１および推定路面８０２ａのうち、信頼度が高い方の推定路面を最終的な路面として決定し、左側の区間については、推定路面８０１および推定路面８０２ｂのうち、信頼度が高い推定路面を最終的な推定路面として決定するものとすればよい。
【００８３】
ここで、図１１および図１２を参照しながら、多段階推定処理の効果を説明する。図１１では、視差点数が少ないＶマップＶＭ２ａにおいて、所定区間を細かく分割して路面推定した場合の多段階推定処理の効果が示されている。なお、図１０と同様の段数および分割数として説明するが、あくまで例示であって、これらの段数および分割数に限定されるものではない。図１１に示すように、視差点数が少ない場合、区間を分割して、別々に路面推定して推定路面８１２ａ、８１２ｂを求めた場合、物体の視差等の路面以外の視差の影響を受けて推定路面が不適切な傾きを持つ等のリスクが生じる。この問題に対し、分割しないで所定区間を１つの区間として路面推定して推定路面８１１を求めた場合、一定数以上の路面に関する視差点が使用可能となるため、正しい路面として推定される可能性が高まる。
【００８４】
一方で、図１２では、所定区間を２つの区間に分割してそれぞれの区間で推定した路面を採用した方が、適切な路面形状を推定できる例を示している。図１２に示すＶマップＶＭ２ｂのように、所定区間の途中で路面勾配が変化するような場合は、区間に分割して路面推定した方が複雑な路面形状を精度よく捉えることができる。
【００８５】
以上のように、複数段の各段において区間の分割数を変えながら、所定区間内で路面推定し、各推定路面に対して成否判定を行って適切か否かを判定することによって、視差点数の大小、または、視差分散が生じている場合等の様々な状況でロバストな路面形状の推定が可能となる。
【００８６】
なお、必ずしも、上述の区間分割部４１１、標本点探索部４１２および形状推定部４１３の動作により推定された各推定路面から、所定区間の最終的な推定路面を決定するものとしなくてもよい。例えば、路面決定部４１５は、区間分割部４１１により分割された特定の区間で推定された各推定路面（複数段なので当該区間で推定された推定路面は複数存在する）のすべての信頼度が所定の閾値以下である場合、当該区間におけるすべての路面推定に失敗したものと見なして、当該区間における履歴路面またはデフォルト路面を、当該区間の推定路面と見なすものとしてもよい。具体的には、推定に失敗した区間は、履歴路面の当該区間に該当する路面を使って補間するという方法等が挙げられる。ここで、履歴路面とは、１フレーム以上前のフレームで推定された過去の推定路面を示し、過去の所定数のフレームで推定された各路面を平均した路面であってもよい。また、デフォルト路面とは、平坦な路面と仮定した場合の路面を示す。
【００８７】
また、各推定路面が成否判定で成功だった場合、２つの分割した区間の境界（手前の区間を区間ｎとしたときに、区間ｎの終点と次の区間ｎ＋１の始点とが一致する）における、各推定路面の位置関係を判定して、最終的な推定路面を決定するものとしてもよい。例えば、図１０に示す例の場合、区間の境界位置における推定路面８０１、８０２ａ、８０２ｂの交点をそれぞれ交点Ａ〜Ｃとした場合、ｙ軸方向において、交点Ａに対して、交点Ｂ、Ｃの両方が上側、または下側に存在する場合には、推定路面８０２ａ、８０２ｂを、最終的な推定路面として決定する。図１０に示すように、区間の境界で勾配が変わる場合、推定路面８０１を採用してしまうと、勾配を正確に捉えた路面推定が実行できなくなるため、交点Ｂ、Ｃの双方が交点Ａより上側または下側に存在する場合は、推定路面８０２ａ、８０２ｂを採用することによって、当該勾配を捉えた路面推定が可能となる。
【００８８】
また、上述では、区間分割部４１１は、特定の段で所定区間を複数の区間に分割する場合、等分するものとしたが、これに限定されるものではない。例えば、所定区間の長さを１００とし、２つの区間に分割する場合、（５０，５０）のように等分することに限らず、長さを変えて、例えば、（２０，８０）または（８０，２０）のように、各区間の長さを変えて分割するものとしてもよい。また、視差値を実距離に換算した時の長さで区間を分割するものとしてもよい。視差の１［ピクセル］あたりの実距離は遠方に行くほど大きくなるという性質がある。したがって、Ｖマップの横軸を図１０のように取ったとき、左側の方が遠距離に位置するため、実距離（例えば、１０［ｍ］刻み)で区間を分割した時、右側よりも左側に位置する区間の方が、長さは短くなる。また、所定区間内で路面の傾きが変わる場合、変わる位置は推定してみないとわからないため、複数の分割位置で分割し、分割して推定した各推定路面の信頼度の平均値等を算出し、その平均値が最大となった時の分割位置、および、その時の推定路面群を採用するといった方法が考えられる。これにより、所定区間内を２つの区間に分割した場合の路面推定の精度を向上させることができる。もちろん、３つ以上の区間の分割であっても同様に区間の長さを様々な組み合わせで分割して処理することが可能である。
【００８９】
スムージング部４０５は、多段階推定処理部４０４により推定（決定）された推定路面に対して、スムージング処理を行う機能部である。Ｖマップを複数の区間に分割した場合、区間の間で推定された路面が不連続になる可能性がある。そこで、ある２つの区間の推定路面のうち、一方の推定路面の始点の座標と、もう一方の推定路面の終点の座標とが所定のｙ座標を通るように補正する、すなわち、推定路面のＶマップ上における傾きおよび切片を変更することによって、区間の間で推定路面に連続性を担保する。所定のｙ座標としては、例えば、上述の一方の推定路面の始点のｙ座標と、もう一方の推定路面の終点のｙ座標との中点のｙ座標を採用することができる。このようなスムージング処理を行うことにより、ある区間での推定結果が適していない場合に、修正される可能性があるため、路面推定の精度を向上させる効果がある。
【００９０】
出力部４０６は、Ｖマップ、および、スムージング部４０５によりスムージング処理がされたＶマップ上の推定路面の情報（路面情報）を、クラスタリング部４５０に出力する機能部である。なお、Ｖマップ上の路面情報が、後段（クラスタリング部４５０等）で特に必要とされない場合においては、例えば、路面情報を図３に示すＲＡＭ３４等に記憶させておくものとしてもよい。
【００９１】
図７に示す入力部４０１、Ｖマップ生成部４０２、区間分割部４１１、標本点探索部４１２、形状推定部４１３、成否判定部４１４、路面決定部４１５、スムージング部４０５および出力部４０６は、それぞれ図３に示すＣＰＵ３２がプログラム（物体認識処理プログラム）を実行することによって実現される。なお、入力部４０１、Ｖマップ生成部４０２、区間分割部４１１、標本点探索部４１２、形状推定部４１３、成否判定部４１４、路面決定部４１５、スムージング部４０５および出力部４０６の一部または全部は、ハードウェア回路であるＦＰＧＡ３１、または、その他のハードウェア回路（ＡＳＩＣ等）によって実現されるものとしてもよい。
【００９２】
なお、図７に示す路面推定部４００の入力部４０１、Ｖマップ生成部４０２、区間分割部４１１、標本点探索部４１２、形状推定部４１３、成否判定部４１４、路面決定部４１５、スムージング部４０５および出力部４０６は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、図７に示す路面推定部４００で独立した機能部として図示した複数の機能部を、１つの機能部として構成してもよい。一方、図７に示す路面推定部４００で１つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
【００９３】
（路面推定部の路面推定処理）
図１３は、第１の実施形態の路面推定部の路面推定処理の動作の一例を示すフローチャートである。図１３を参照しながら、本実施形態に係る路面推定部４００による路面推定処理の動作について説明する。
【００９４】
＜ステップＳ１０１＞
入力部４０１は、視差演算部３００から視差画像を入力する。なお、視差画像は、ステレオカメラを構成する画像取得部１００ａ、１００ｂ、変換部２００ａ、２００ｂおよび視差演算部３００で生成した視差画像を直接入力してもよく、これらの情報を予め、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の記録メディア、または、ネットワークストレージ等に記憶させておき、必要に応じて、これらから視差画像を読み込んで使用するものとしてもよい。また、視差画像は１画像のみを入力するものとしてもよく、または、動画像データをフレームごとに逐次入力するものとしてもよい。そして、ステップＳ１０２へ移行する。
【００９５】
＜ステップＳ１０２＞
Ｖマップ生成部４０２は、入力部４０１により入力された視差画像の各視差画素の視差値を、Ｖマップの対応する視差点に対して投票することによってＶマップを生成する。そして、ステップＳ１０３へ移行する。
【００９６】
＜ステップＳ１０３＞
多段階推定処理部４０４は、現在処理している段数を示す段数変数ｓｔａｇｅ＿ｉｄｘを１に初期化する。そして、ステップＳ１０４へ移行する。
【００９７】
＜ステップＳ１０４＞
多段階推定処理部４０４は、以降のステップＳ１０５〜Ｓ１１２の処理を、所定の段数分だけ繰り返す。そして、ステップＳ１０５へ移行する。
【００９８】
＜ステップＳ１０５＞
多段階推定処理部４０４は、現在処理中の段において現在処理している区間を示す区間変数ｄｉｖ＿ｉｄｘを１に初期化する。そして、ステップＳ１０６へ移行する。
【００９９】
＜ステップＳ１０６＞
区間分割部４１１は、多段階推定処理において、段数変数ｓｔａｇｅ＿ｉｄｘが示す現在の段に対応する分割数で所定区間を１以上の区間に分割する。なお、上述のように、区間分割部４１１は、分割後の各区間の長さを任意の長さに分割することが可能である。そして、ステップＳ１０７へ移行する。
【０１００】
＜ステップＳ１０７＞
多段階推定処理部４０４は、区間分割部４１１により分割された各区間に対して、以降のステップＳ１０８〜Ｓ１１０の処理を実行する。そして、ステップＳ１０８へ移行する。
【０１０１】
＜ステップＳ１０８＞
標本点探索部４１２は、多段階推定処理において、ｄｉｖ＿ｉｄｘ番目の区間で投票された視差点（頻度点の一例）のうち、当該区間における各ｄｐ座標の位置から、少なくとも１つ以上の代表点である標本点を探索して選択する。なお、標本点探索部４１２による標本点の探索は、このタイミングで実行される必要はなく、所定区間全体で予め探索しておくことが可能であるため、例えば、ステップＳ１０２のＶマップ生成直後に、標本点探索部４１２によって所定区間の全域にわたって各ｄｐ座標における標本点を探索しておくものとしてもよい。また、各段または各区間で、標本点の探索の方法を変えるものとしてもよい。そして、ステップＳ１０９へ移行する。
【０１０２】
＜ステップＳ１０９＞
形状推定部４１３は、多段階推定処理において、ｄｉｖ＿ｉｄｘ番目の区間で標本点探索部４１２により探索された標本点群から、当該区間での路面形状の推定（路面推定）を行う。そして、ステップＳ１１０へ移行する。
【０１０３】
＜ステップＳ１１０＞
多段階推定処理部４０４は、現在処理中の段において現在処理している区間を示す区間変数ｄｉｖ＿ｉｄｘをインクリメントして、次の区間の処理に移行する。そして、ステップＳ１１１へ移行する。
【０１０４】
＜ステップＳ１１１＞
多段階推定処理部４０４は、現在処理中の段において、分割したすべての区間について、上述のステップＳ１０８〜Ｓ１１０の処理が完了したか否かを判定する。分割したすべての区間について処理が完了した場合、ステップＳ１１２へ移行し、処理が完了していない場合、ステップＳ１０８へ戻る。
【０１０５】
＜ステップＳ１１２＞
多段階推定処理部４０４は、現在処理している段数を示す段数変数ｓｔａｇｅ＿ｉｄｘをインクリメントして、次の段の処理に移行する。そして、ステップＳ１１３へ移行する。
【０１０６】
＜ステップＳ１１３＞
多段階推定処理部４０４は、すべての段について、上述のステップＳ１０５〜Ｓ１１２の処理が完了したか否かを判定する。すべての段について処理が完了した場合、ステップＳ１１４へ移行し、処理が完了していない場合、ステップＳ１０５へ戻る。
【０１０７】
＜ステップＳ１１４＞
成否判定部４１４は、多段階推定処理において、形状推定部４１３により推定された各段、各区間での推定路面が適切（成功）か否かを判定する成否判定を行う。なお、成否判定部４１４による推定路面に対する成否判定は、このタイミングで実行されることに限定されるものではなく、例えば、ステップＳ１０９で区間での路面推定がなされた後に実行されるものとしてもよい。そして、ステップＳ１１５へ移行する。
【０１０８】
＜ステップＳ１１５＞
路面決定部４１５は、成否判定部４１４により成否判定により適切と判定された各推定路面から、所定区間における最終的な推定路面を決定する。なお、所定区間における最終的な推定路面の決定方法の詳細については、上述した通りである。例えば、分割数１（分割なし）の場合の推定路面の信頼度が最も高ければ、所定区間は、１本の推定路面により粗く推定されたことになる。また、分割数３の場合、各区間の推定路面の信頼度の平均値が他の段で算出された信頼度の平均値よりも高ければ、所定区間は３本の推定路面により細かく推定されたことになる。そして、路面推定部４００の路面推定処理が終了する。
【０１０９】
以上のステップＳ１０１〜Ｓ１１５の処理により、路面推定部４００による路面推定処理が実行される。
【０１１０】
以上のように、本実施形態では、Ｖマップに対して、複数段の各段において区間の分割数を変えながら、所定区間内で路面推定を行い、各推定路面に対して成否判定を行って適切か否かを判定することによって、最終的に当該所定区間の推定路面を決定するものとしている。これによって、例えば、視差点数の大小、または、視差分散が生じている場合等の様々な状況でロバストな路面形状の推定が可能となり、実運用に耐え得るように路面推定処理の精度を向上させることができる。
【０１１１】
なお、本実施形態では、後述する第２の実施形態のセグメント分割部４０３のように、Ｖマップを複数のセグメントを分割せずに、Ｖマップ全体を所定区間として（換言すると、本実施形態は１つのセグメントに対して多段階処理を適用しているとも考えることができる）、当該所定区間内を複数段で多段階推定処理を行う動作について説明した。しかし、これに限定されるものではなく、Ｖマップを複数のセグメントに分割し、各セグメントに対して、上述の多段階推定処理を行うものとしてもよい。また、この場合、各セグメントのうち、多段階推定処理を適用するセグメントと、適用しないセグメントとが混在しているものとしてもよい。例えば、精度を重視するセグメントに対して多段階推定処理を実行するものとしてもよい。ここで、セグメントは、路面を推定する単位であるのに対し、区間は、その単位（セグメント）をより詳細に見て推定するものと捉えることができる。したがって、近方はセグメントで推定し、遠方のように少ない視差が実距離換算で長距離となる場合に、セグメントでは推定しづらい路面を、多段階推定処理でより細かく判定しながら推定するという実施の仕方が考えられる。その結果、２段以上の路面が採用された場合には、当該セグメントを各区間が表す新たなセグメントと定義し直してもよい（例えば、２つの区間が新たなセグメントとなり、元のセグメント数が８である場合、多段階推定処理後のセグメント数は９となる)。
【０１１２】
［第２の実施形態］
第２の実施形態に係る物体認識装置について、第１の実施形態に係る物体認識装置１と相違する点を中心に説明する。第１の実施形態では、Ｖマップに対して、複数段の各段において区間の分割数を変えながら、所定区間内で路面推定を行い、各推定路面に対して成否判定を行って適切か否かを判定することによって、最終的に当該所定区間の推定路面を決定する動作を説明した。本実施形態では、Ｖマップをセグメントに分割し、２つ以上の連続するセグメントを所定区間と見なして、セグメント間をオーバーラップさせながら逐次、多段階推定処理を実行する動作について説明する。なお、第２の実施形態ではセグメント分割を前提に説明するが、第１の実施形態のようにＶマップの全区間を１つのセグメントと見なし、その中で、複数の区間がオーバーラップするように処理してもよい。
【０１１３】
なお、本実施形態に係る物体認識装置のハードウェア構成および機能ブロック構成は、第１の実施形態で説明した構成と同様である。
【０１１４】
（路面推定部の機能ブロック構成および動作）
図１４は、第２の実施形態に係る物体認識装置の路面推定部の機能ブロック構成の一例を示す図である。図１５は、第２の実施形態に係る路面推定部の多段階推定処理の一例を説明する図である。図１４および図１５を参照しながら、本実施形態に係る路面推定部４００ａの機能ブロックの具体的な構成および動作について説明する。
【０１１５】
図１４に示すように、路面推定部４００ａは、入力部４０１と、Ｖマップ生成部４０２（第１生成部）と、セグメント分割部４０３（分割部）と、多段階推定処理部４０４ａと、スムージング部４０５（補正部）と、出力部４０６と、を有する。なお、入力部４０１、Ｖマップ生成部４０２、スムージング部４０５および出力部４０６の機能は、第１の実施形態で説明した機能と同様である。
【０１１６】
セグメント分割部４０３は、Ｖマップ生成部４０２により生成されたＶマップを、ｄｐ方向（水平方向）において、２以上のセグメントに分割する機能部である。本実施形態では、このセグメントを最小単位として、後述する多段階推定処理が実行される。なお、後述するセグメント間をオーバーラップさせながら逐次、各所定区間について多段階推定処理を行う場合、実質的には、Ｖマップは、３つ以上のセグメントに分割されている必要がある。また、分割されたセグメントの幅は、全セグメントで同一でもよく、または、距離に応じて決定されるものとしてもよい。例えば、遠方を精度よく路面推定するために、近距離は粗く（幅を広く）セグメント分割し、遠距離は細かく（幅を狭く）セグメント分割するものとしてもよい。
【０１１７】
図１５に示す例では、セグメント分割部４０３は、ＶマップＶＭ３を７つのセグメントに分割している。また、後述の説明上、視差値ｄｐが小さい方の３つのセグメントをそれぞれ第７セグメントｓｅｇ７、第６セグメントｓｅｇ６、第５セグメントｓｅｇ５としている。
【０１１８】
そして、後述するように、多段階推定処理では、標本点探索部４１２ａによりＶマップの各ｄｐ座標における視差点から標本点が探索される。
【０１１９】
多段階推定処理部４０４ａは、複数のセグメントに分割されたＶマップについて、２つ以上の連続するセグメントを所定区間と見なして、近距離から遠距離へ向けて、セグメント間をオーバーラップさせながら逐次、各所定区間について多段階推定処理を実行する機能部である。ここで、近距離から遠距離へ向けて処理するのは、近距離の方が視差画像中に含まれる路面の面積が大きいため、路面に係る視差点が多くＶマップに投票されることになり、その結果、路面形状を正確に推定できるためである。多段階推定処理部４０４ａは、図１４に示すように、標本点探索部４１２ａ（探索部）と、形状推定部４１３ａ（推定部）と、成否判定部４１４ａ（判定部）と、路面決定部４１５ａ（決定部）と、を有する。
【０１２０】
標本点探索部４１２ａは、多段階推定処理において、Ｖマップに投票された視差点（頻度点の一例）のうち、Ｖマップのｄｐ方向の全域について各ｄｐ座標の位置から、少なくとも１つ以上の代表点である標本点を探索して選択する機能部である。なお、標本点探索部４１２ａは、第１の実施形態の標本点探索部４１２と同様の標本点の探索方法を採用すればよく、探索した標本点のうち、不適切な標本点を除去してもよい。
【０１２１】
そして、後述するように、多段階推定処理では、探索された標本点群から、形状推定部４１３ａにより路面が推定される。
【０１２２】
形状推定部４１３ａは、多段階推定処理において、複数のセグメントで構成される所定区間で、標本点探索部４１２ａにより探索された標本点群から、当該所定区間の各区間（この場合、１以上のセグメントで構成される）での路面形状の推定（路面推定）を行う機能部である。路面推定の方法は、第１の実施形態の形状推定部４１３による路面推定と同様の方法であり、特に断らない限り、路面推定では直線近似によるものとして説明する。
【０１２３】
図１５（ａ）に示す例では、第５セグメントｓｅｇ５および第６セグメントｓｅｇ６を所定区間とした場合に、当該所定区間に対して多段階推定処理（段数を２としている）を行う場合を示している。形状推定部４１３ａは、分割数が１である１段目においては、標本点探索部４１２ａにより探索された標本点群を用いて、所定区間（第５セグメントｓｅｇ５および第６セグメントｓｅｇ６）の推定路面として推定路面８２１を求めている。また、形状推定部４１３ａは、分割数が２である２段目においては、距離が近いものから、２つのセグメントでそれぞれ推定路面８２２ａ、８２２ｂを求めている。
【０１２４】
図１５（ｂ）に示す例では、第６セグメントｓｅｇ６および第７セグメントｓｅｇ７を所定区間とした場合に、当該所定区間に対して多段階推定処理（段数を２としている）を行う場合を示している。図１５（ｂ）に示す所定区間である第６セグメントｓｅｇ６および第７セグメントｓｅｇ７は、図１５（ａ）に示す所定区間である第５セグメントｓｅｇ５および第６セグメントｓｅｇ６と、第６セグメントｓｅｇ６でオーバーラップしていることになる。形状推定部４１３ａは、分割数が１である１段目においては、標本点探索部４１２ａにより探索された標本点群を用いて、所定区間（第６セグメントｓｅｇ６および第７セグメントｓｅｇ７）の推定路面として推定路面８３１を求めている。また、形状推定部４１３ａは、分割数が２である２段目においては、距離が近いものから、２つのセグメントでそれぞれ推定路面８３２ａ、８３２ｂを求めている。
【０１２５】
また、形状推定部４１３ａは、例えば、成否判定部４１４ａによる推定路面の成否判定で使用するために、各段、各区間で推定された推定路面に対する信頼度を算出する。例えば、形状推定部４１３ａは、各段、各区間で路面を推定するために最小二乗法を用いて直線近似した場合、相関係数をその推定路面の信頼度として算出するものとしてもよい。なお、信頼度の算出方法は、上述の方法に限定されるものではなく、推定路面の信頼度を定量化できる方法であれば、任意の方法を使用することができる。
【０１２６】
そして、後述するように、多段階推定処理では、形状推定部４１３ａにより推定された各段の各区間での推定路面に対して、成否判定部４１４ａにより適切であるか否かの成否判定が行われる。
【０１２７】
成否判定部４１４ａは、多段階推定処理において、形状推定部４１３ａにより推定された各段、各区間での推定路面が適切（成功）か否かを判定する成否判定を行う機能部である。また、成否判定部４１４ａは、例えば、形状推定部４１３ａにより算出された各段、各区間における推定路面の信頼度に基づいて、当該推定路面が適切か否かを判定するものとしてもよい。
【０１２８】
図１５（ａ）に示す例では、成否判定部４１４ａは、分割数１である１段目で推定された推定路面８２１に対して成否判定を行い、分割数が２である２段目で推定された推定路面８２２ａ、８２２ｂに対してそれぞれ成否判定を行う。図１５（ｂ）に示す例では、成否判定部４１４ａは、分割数１である１段目で推定された推定路面８３１に対して成否判定を行い、分割数が２である２段目で推定された推定路面８３２ａ、８３２ｂに対してそれぞれ成否判定を行う。
【０１２９】
そして後述するように、多段階推定処理では、成否判定部４１４ａにより成否判定により適切と判定された各推定路面から、路面決定部４１５ａにより所定区間における最終的な推定路面が決定される。
【０１３０】
なお、形状推定部４１３ａにより各段、各区間で推定された推定路面に対する信頼度が算出されるものとしたが、これに限定されるものではなく、成否判定部４１４ａが当該信頼度を算出するものとしてもよい。
【０１３１】
路面決定部４１５ａは、成否判定部４１４ａにより成否判定により適切と判定された各推定路面から、所定区間における最終的な推定路面を決定する機能部である。例えば、路面決定部４１５ａは、特定の所定区間において、各段における推定路面の信頼度のうち、最も信頼度の高い段における推定路面を、当該所定区間における最終的な推定路面として決定する。
【０１３２】
図１５（ａ）に示す例では、路面決定部４１５ａは、例えば、第５セグメントｓｅｇ５および第６セグメントｓｅｇ６で構成された所定区間において、１段目で推定された推定路面８２１の信頼度と、２段目で推定された推定路面８２２ａ、８２２ｂのそれぞれの信頼度の平均値とを比較し、高い信頼度を有する段の推定路面を、当該所定区間における最終的な推定路面として決定する。図１５（ｂ）に示す例では、路面決定部４１５ａは、例えば、第６セグメントｓｅｇ６および第７セグメントｓｅｇ７で構成された所定区間において、１段目で推定された推定路面８３１の信頼度と、２段目で推定された推定路面８３２ａ、８３２ｂのそれぞれの信頼度の平均値とを比較し、高い信頼度を有する段の推定路面を、当該所定区間における最終的な推定路面として決定する。
【０１３３】
ここで、例えば、各セグメントを別々に処理していくと、セグメント内の視差点数が少なかったり、視差分散が大きかったり、物体の視差点が多く含まれていたりする場合に、各セグメントの路面形状を正確に推定することができない可能性がある。また、一つ前のセグメントの推定結果に基づいて次のセグメントを推定するような処理を実行していた場合、不適切な推定結果に悪影響を受けて、それ以降のセグメントが本来成功する場合であっても、成否判定で失敗と判定されてしまう可能性もある。
【０１３４】
そこで、本実施形態では、上述のように、近距離から遠距離へ向けて、各所定区間をセグメント単位でオーバーラップさせながら逐次、当該各所定区間について多段階推定処理を実行するものである。図１５の例では、第６セグメントｓｅｇ６がオーバーラップしているセグメントとなっている。まず、図１５（ａ）では、上述のように、第５セグメントｓｅｇ５および第６セグメントｓｅｇ６を所定区間として多段階推定処理をする。その結果、図１５（ａ）に示すように、第６セグメントｓｅｇ６の不適切に引き上がった推定路面８２２ｂではなく、第５セグメントｓｅｇ５および第６セグメントｓｅｇ６を１つの区間として推定した推定路面８２１が採用されたとする。次に、図１５（ｂ）に示すように、第６セグメントｓｅｇ６および第７セグメントｓｅｇ７を所定区間として多段階推定処理をする。その結果、図１５（ｂ）に示すように、セグメント毎では、物体の視差、または、路面の視差点数の不足等によって、推定路面８３２ａおよび推定路面８３２ｂのうち少なくともいずれかが不適切と判定され、第６セグメントｓｅｇ６および第７セグメントｓｅｇ７を１つの区間として推定した推定路面８３１が採用されたとする。ここで、第５セグメントｓｅｇ５および第６セグメントｓｅｇ６を所定区間とした場合に行われた多段階推定処理で推定（決定）された第５セグメントｓｅｇ５の推定路面を、推定路面８２５としている。このとき、図１５（ａ）に示す多段階推定処理と、図１５（ｂ）に示す多段階推定処理とでは、第６セグメントｓｅｇ６がオーバーラップしていることにより、第６セグメントｓｅｇ６について決定された推定路面は２つ存在することになる。この場合、例えば、当該２つの推定路面の平均を第６セグメントｓｅｇ６の最終的な推定路面として決定するものとする。このように、近距離から遠距離へ向けて、セグメントをオーバーラップさせながら逐次、各所定区間について多段階推定処理を実行することによって、より多くの視差点を用いながら、かつ、多段階で推定処理を行うことになり、視差分布状況に合わせて細かい形状、およびノイズに対してロバストな路面推定ができるようになる。
【０１３５】
なお、図１５の例では、２つのセグメントに対して１つのセグメント分をオーバーラップさせているものであるが、これに限定されるものではなく、オーバーラップさせるセグメント数、および、所定区間に含めるセグメント数は任意としてよい。例えば、所定区間に含まれるセグメントを３つとし、２つのセグメント分がオーバーラップするという方法も可能である。
【０１３６】
また、オーバーラップしたセグメントについては、２つ以上の推定路面が推定（決定）されることになるが、例えば、２つ以上の推定路面の平均を、当該オーバーラップしたセグメントの最終的な推定路面として決定するものとしてもよい。また、成否判定したときの信頼度に応じて重み付けして平均したものを、当該オーバーラップしたセグメントの最終的な推定路面として決定するものとしてもよい。さらに、オーバーラップしたセグメントの両端のセグメントの推定路面の連続性を鑑みて、より不連続にならない推定路面（例えば、オーバーラップしたセグメントの両端位置でのｙ座標の差の和が最小となる推定路面）、または、当該オーバーラップしたセグメントの推定路面を廃棄した場合における両端のセグメントの終点と始点とを結ぶ線を、当該オーバーラップしたセグメントの最終的な推定路面として決定するものとしてもよい。
【０１３７】
図１４に示す入力部４０１、Ｖマップ生成部４０２、セグメント分割部４０３、標本点探索部４１２ａ、形状推定部４１３ａ、成否判定部４１４ａ、路面決定部４１５ａ、スムージング部４０５および出力部４０６は、それぞれ図３に示すＣＰＵ３２がプログラム（物体認識処理プログラム）を実行することによって実現される。なお、入力部４０１、Ｖマップ生成部４０２、セグメント分割部４０３、標本点探索部４１２ａ、形状推定部４１３ａ、成否判定部４１４ａ、路面決定部４１５ａ、スムージング部４０５および出力部４０６の一部または全部は、ハードウェア回路であるＦＰＧＡ３１、または、その他のハードウェア回路（ＡＳＩＣ等）によって実現されるものとしてもよい。
【０１３８】
なお、図１４に示す路面推定部４００ａの入力部４０１、Ｖマップ生成部４０２、セグメント分割部４０３、標本点探索部４１２ａ、形状推定部４１３ａ、成否判定部４１４ａ、路面決定部４１５ａ、スムージング部４０５および出力部４０６は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、図１４に示す路面推定部４００ａで独立した機能部として図示した複数の機能部を、１つの機能部として構成してもよい。一方、図１４に示す路面推定部４００ａで１つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
【０１３９】
（路面推定部の路面推定処理）
図１６は、第２の実施形態の路面推定部の路面推定処理の動作の一例を示すフローチャートである。図１６を参照しながら、本実施形態に係る路面推定部４００ａによる路面推定処理の動作について説明する。なお、図１６では、図１５に示した構成、すなわち、Ｖマップを７つのセグメントに分割し、２つのセグメント分を所定区間とし、１つのセグメント分だけオーバーラップする構成として説明する。
【０１４０】
＜ステップＳ１２１＞
入力部４０１は、視差演算部３００から視差画像を入力する。そして、ステップＳ１２２へ移行する。
【０１４１】
＜ステップＳ１２２＞
Ｖマップ生成部４０２は、入力部４０１により入力された視差画像の各視差画素の視差値を、Ｖマップの対応する視差点に対して投票することによってＶマップを生成する。そして、ステップＳ１２３へ移行する。
【０１４２】
＜ステップＳ１２３＞
セグメント分割部４０３は、Ｖマップ生成部４０２により生成されたＶマップを、ｄｐ方向（水平方向）において、２以上のセグメントに分割する。そして、ステップＳ１２４へ移行する。
【０１４３】
＜ステップＳ１２４＞
標本点探索部４１２ａは、多段階推定処理において、Ｖマップに投票された視差点（頻度点の一例）のうち、Ｖマップのｄｐ方向の全域について各ｄｐ座標の位置から、少なくとも１つ以上の代表点である標本点を探索して選択する。そして、ステップＳ１２５へ移行する。
【０１４４】
＜ステップＳ１２５＞
多段階推定処理部４０４ａは、現在処理している所定区間に含まれる最も手前のセグメントを示すセグメント変数ｓｅｇ＿ｉｄｘを１に初期化する。そして、ステップＳ１２６へ移行する。
【０１４５】
＜ステップＳ１２６＞
多段階推定処理部４０４ａは、以降のステップＳ１２７〜Ｓ１３０の処理を、セグメント分割部４０３により分割されたセグメント数−１分だけ繰り返す。そして、ステップＳ１２７へ移行する。
【０１４６】
＜ステップＳ１２７＞
形状推定部４１３ａは、ｓｅｇ＿ｉｄｘ番目のセグメントおよび（ｓｅｇ＿ｉｄｘ＋１）番目のセグメントで構成された所定区間に対して、多段階推定処理を実行する。具体的には、形状推定部４１３ａは、上述の２つのセグメントで構成される所定区間で、標本点探索部４１２ａにより探索された標本点群から、当該所定区間の各区間（ｓｅｇ＿ｉｄｘ番目のセグメントの区間、ｓｅｇ＿ｉｄｘ＋１番目のセグメントの区間、および、ｓｅｇ＿ｉｄｘ番目のセグメントおよび（ｓｅｇ＿ｉｄｘ＋１）番目のセグメントを合わせた区間）での路面形状の推定（路面推定）を行う。そして、ステップＳ１２８へ移行する。
【０１４７】
＜ステップＳ１２８＞
成否判定部４１４ａは、形状推定部４１３ａにより推定された各段、各区間での推定路面が適切（成功）か否かを判定する成否判定を行う。そして、ステップＳ１２９へ移行する。
【０１４８】
＜ステップＳ１２９＞
路面決定部４１５ａは、成否判定部４１４ａにより成否判定により適切と判定された各推定路面から、所定区間（ｓｅｇ＿ｉｄｘ番目のセグメントおよび（ｓｅｇ＿ｉｄｘ＋１）番目のセグメント）における推定路面を決定する。そして、ステップＳ１３０へ移行する。
【０１４９】
＜ステップＳ１３０＞
多段階推定処理部４０４ａは、現在処理している所定区間に含まれる最も手前のセグメントを示すセグメント変数ｓｅｇ＿ｉｄｘをインクリメントして、次の所定区間の処理に移行する。そして、ステップＳ１３１へ移行する。
【０１５０】
＜ステップＳ１３１＞
多段階推定処理部４０４ａは、すべての所定区間（セグメント数−１分の所定区間）について、上述のステップＳ１２７〜Ｓ１３０の処理が完了したか否かを判定する。すべての所定区間について処理が完了した場合、ステップＳ１３２へ移行し、処理が完了していない場合、ステップＳ１２７へ戻る。
【０１５１】
＜ステップＳ１３２＞
路面決定部４１５ａは、成否判定部４１４ａにより成否判定により適切と判定された各推定路面から、Ｖマップの各セグメントにおける最終的な推定路面を決定する。最終的な推定路面の決定方法は、上述した通りである。そして、路面推定部４００ａの路面推定処理が終了する。
【０１５２】
以上のステップＳ１２１〜Ｓ１３２の処理により、路面推定部４００ａによる路面推定処理が実行される。
【０１５３】
以上のように、本実施形態では、Ｖマップをセグメントに分割し、２つ以上の連続するセグメントを所定区間と見なして、近距離から遠距離へ向けて、セグメント間をオーバーラップさせながら逐次、多段階推定処理を実行するものとしている。これによって、近距離から遠距離へ向けて、セグメントをオーバーラップさせながら逐次、各所定区間について多段階推定処理を実行することによって、より多くの視差点を用いながら、かつ、多段階で推定処理を行うことになり、視差分布状況に合わせて細かい形状、およびノイズに対してロバストな路面推定ができるようになり、実運用に耐え得るように路面推定処理の精度を向上させることができる。
【０１５４】
［第３の実施形態］
第３の実施形態に係る物体認識装置について、第２の実施形態に係る物体認識装置と相違する点を中心に説明する。第２の実施形態では、Ｖマップをセグメントに分割し、２つ以上の連続するセグメントを所定区間と見なして、セグメント間をオーバーラップさせながら逐次、多段階推定処理を実行する動作について説明した。本実施形態では、第２の実施形態に係る路面推定処理に対して、第１の実施形態に係る路面推定処理を組み合せる動作について説明する。なお、第３の実施形態ではセグメント分割を前提に説明するが、第１の実施形態のようにＶマップの全区間を１つのセグメントと見なし、その中で、複数の区間がオーバーラップするように処理してもよい。
【０１５５】
なお、本実施形態に係る物体認識装置のハードウェア構成および機能ブロック構成は、第１の実施形態で説明した構成と同様である。
【０１５６】
（路面推定部の機能ブロック構成および動作）
図１７は、第３の実施形態に係る物体認識装置の路面推定部の機能ブロック構成の一例を示す図である。図１８は、第３の実施形態に係る路面推定部の多段階推定処理の一例を説明する図である。図１９は、第１の実施形態と第２の実施形態の多段階推定処理を組み合せることによる効果を説明する図である。図１７〜図１９を参照しながら、本実施形態に係る路面推定部４００ｂの機能ブロックの具体的な構成および動作について説明する。
【０１５７】
図１７に示すように、路面推定部４００ｂは、入力部４０１と、Ｖマップ生成部４０２（第１生成部）と、セグメント分割部４０３（分割部）と、多段階推定処理部４０４ｂと、スムージング部４０５（補正部）と、出力部４０６と、を有する。なお、入力部４０１、Ｖマップ生成部４０２、セグメント分割部４０３、スムージング部４０５および出力部４０６の機能は、第２の実施形態で説明した機能と同様である。
【０１５８】
また、図１８に示す例では、セグメント分割部４０３は、ＶマップＶＭ３を７つのセグメントに分割している。また、後述の説明上、視差値ｄｐが小さい方の３つのセグメントをそれぞれ第７セグメントｓｅｇ７、第６セグメントｓｅｇ６、第５セグメントｓｅｇ５としている。
【０１５９】
多段階推定処理部４０４ｂは、第２の実施形態に係る多段階推定処理に対して、第１の実施形態に係る多段階推定処理を組み合せた動作を実行する機能部である。具体的には、多段階推定処理部４０４ｂは、複数のセグメントに分割されたＶマップについて、２つ以上の連続するセグメントを所定区間と見なして、近距離から遠距離へ向けて、セグメント間をオーバーラップさせながら逐次、各所定区間について多段階推定処理を実行し、最後に、多段階推定処理を行った各所定区間を含む区間（以下、「全体区間」と称する場合がある）について路面推定を行う。多段階推定処理部４０４ｂは、図１７に示すように、標本点探索部４１２ｂ（探索部）と、形状推定部４１３ｂ（推定部）と、成否判定部４１４ｂ（判定部）と、路面決定部４１５ｂ（決定部）と、を有する。
【０１６０】
標本点探索部４１２ｂは、多段階推定処理において、Ｖマップに投票された視差点（頻度点の一例）のうち、Ｖマップのｄｐ方向の全域について各ｄｐ座標の位置から、少なくとも１つ以上の代表点である標本点を探索して選択する機能部である。なお、標本点探索部４１２ｂは、第１の実施形態の標本点探索部４１２と同様の標本点の探索方法を採用すればよく、探索した標本点のうち、不適切な標本点を除去してもよい。
【０１６１】
そして、後述するように、多段階推定処理では、探索された標本点群から、形状推定部４１３ｂにより路面が推定される。
【０１６２】
形状推定部４１３ｂは、多段階推定処理において、複数のセグメントで構成される所定区間で、標本点探索部４１２ｂにより探索された標本点群から、当該所定区間の各区間（この場合、１以上のセグメントで構成される）での路面形状の推定（路面推定）を行う機能部である。形状推定部４１３ｂは、さらに、多段階推定処理を行った各所定区間を含む全体区間について路面推定を行う。路面推定の方法は、第１の実施形態の形状推定部４１３による路面推定と同様の方法であり、特に断らない限り、路面推定では直線近似によるものとして説明する。
【０１６３】
図１８に示す例では、まず、形状推定部４１３ｂは、第５セグメントｓｅｇ５および第６セグメントｓｅｇ６を所定区間とした場合に、当該所定区間に対して多段階推定処理（段数を２としている）を行っている。すなわち、形状推定部４１３ｂは、分割数が１である１段目においては、標本点探索部４１２ｂにより探索された標本点群を用いて、所定区間（第５セグメントｓｅｇ５および第６セグメントｓｅｇ６）の推定路面として推定路面８４１ａを求めている。また、形状推定部４１３ｂは、分割数が２である２段目においては、距離が近いものから、２つのセグメントでそれぞれ推定路面８４２ａ、８４２ｂを求めている。
【０１６４】
次に、形状推定部４１３ｂは、第６セグメントｓｅｇ６および第７セグメントｓｅｇ７を所定区間とした場合に、当該所定区間に対して多段階推定処理（段数を２としている）を行っている。図１８に示す所定区間である第６セグメントｓｅｇ６および第７セグメントｓｅｇ７は、別の所定区間である第５セグメントｓｅｇ５および第６セグメントｓｅｇ６と、第６セグメントｓｅｇ６でオーバーラップしていることになる。形状推定部４１３ｂは、分割数が１である１段目においては、標本点探索部４１２ｂにより探索された標本点群を用いて、所定区間（第６セグメントｓｅｇ６および第７セグメントｓｅｇ７）の推定路面として推定路面８４１ｂを求めている。また、形状推定部４１３ｂは、分割数が２である２段目においては、距離が近いものから、２つのセグメントでそれぞれ推定路面８４２ｂ、８４２ｃを求めている。
【０１６５】
さらに、形状推定部４１３ｂは、多段階推定処理を行った各所定区間を含む全体区間（第５セグメントｓｅｇ５、第６セグメントｓｅｇ６および第７セグメントｓｅｇ７）について路面推定を行い、推定路面８４３を求めている。なお、形状推定部４１３ｂは、上述の多段階推定処理において各所定区間での各段、各区間で路面を推定する場合に用いる標本点とは異なる方式で標本点探索部４１２ｂにより探索された標本点を用いて、全体区間について路面推定を行うものとしてもよい。
【０１６６】
また、形状推定部４１３ｂは、例えば、成否判定部４１４ｂによる推定路面の成否判定で使用するために、各段、各区間および全体区間で推定された推定路面に対する信頼度を算出する。例えば、形状推定部４１３ｂは、各段、各区間および全体区間で路面を推定するために最小二乗法を用いて直線近似した場合、相関係数をその推定路面の信頼度として算出するものとしてもよい。なお、信頼度の算出方法は、上述の方法に限定されるものではなく、推定路面の信頼度を定量化できる方法であれば、任意の方法を使用することができる。
【０１６７】
そして、後述するように、多段階推定処理では、形状推定部４１３ｂにより推定された各段、各区間および全体区間での各推定路面に対して、成否判定部４１４ｂにより適切であるか否かの成否判定が行われる。
【０１６８】
成否判定部４１４ｂは、多段階推定処理において、形状推定部４１３ｂにより推定された各段、各区間および全体区間での推定路面が適切（成功）か否かを判定する成否判定を行う機能部である。また、成否判定部４１４ｂは、例えば、形状推定部４１３ｂにより算出された各段、各区間および全体区間における推定路面の信頼度に基づいて、当該推定路面が適切か否かを判定するものとしてもよい。
【０１６９】
図１８に示す例では、成否判定部４１４ｂは、各所定区間での推定路面８４１ａ、８４１ｂ、および、各セグメントでの推定路面８４２ａ〜８４２ｃに対して、それぞれ成否判定を行う。また、成否判定部４１４ｂは、全体区間での推定路面８４３に対しても成否判定を行う。
【０１７０】
なお、成否判定部４１４ｂは、上述の多段階推定処理において各所定区間の各段、各区間での推定路面に対する成否判定に使用するパラメータとは異なるパラメータを用いて、全体区間での推定路面に対する成否判定を行うものとしてもよい。
【０１７１】
路面決定部４１５ｂは、成否判定部４１４ｂにより成否判定により適切と判定された各推定路面から、最終的な推定路面を決定する機能部である。
【０１７２】
具体的には、路面決定部４１５ｂは、特定の所定区間において、各段における推定路面の信頼度のうち、最も信頼度の高い段における推定路面を、当該所定区間における推定路面として決定する。このとき、決定された各所定区間の推定路面において、オーバーラップしている区間（セグメント）がある場合、例えば、上述の第２の実施形態と同様に、２つの推定路面の平均をオーバーラップしている区間（セグメント）の最終的な推定路面とすればよい。
【０１７３】
また、成否判定部４１４ｂによる成否判定によっては、各所定区間における各段の推定路面が適切でないと判定され、当該各所定区間の最終的な推定路面が決定できない場合がある。例えば、図１９（ａ）に示す例では、第５セグメントｓｅｇ５の推定路面８５２ａは適切と判定されても、第６セグメントｓｅｇ６が物体の視差等の影響により、引き上がった路面（推定路面８５２ｂ）として推定された場合、第７セグメントｓｅｇ７の推定路面８５２ｃが成否判定により適切でないと判定されてしまう可能性がある。また、第５セグメントｓｅｇ５および第６セグメントｓｅｇ６で構成される所定区間の推定路面も、第６セグメントｓｅｇ６および第７セグメントｓｅｇ７で構成される所定区間の推定路面も、前者に関しては引き上がった路面として推定され、後者については点数不足で適切でないと判定される可能性がある。このような条件下でも、図１９（ｂ）に示すように、全セグメント（全体区間）で推定した路面（推定路面８５３）では、第５セグメントｓｅｇ５の視差点数が十分に存在するため、適切な路面であると判定される可能性がある。通常、セグメントを細かく分割したほうが、複雑な路面形状を捉えることができるようになるが、上述のように、セグメントの分割数および視差分布によっては、点数不足等で推定に失敗してしまう可能性もある。
【０１７４】
そこで、全てのセグメントを合わせた区間（全体区間）の路面も推定処理の選択候補に入れることで、このような問題に対応して正しい路面形状を推定できるようになる。したがって、この場合、路面決定部４１５ｂは、全体区間の推定路面が成否判定部４１４ｂにより適切であると判定されている場合、当該推定路面を全体区間の最終的な推定路面として決定する。
【０１７５】
なお、推定路面と決定する手順としては、多段階推定処理を行った各所定区間で推定された各段、各区間の推定路面のうち、適切でないと判定（失敗と判定）された推定路面がある場合、各所定区間を包含する全体区間で推定された路面を最終的な推定路面として決定するという方法が挙げられる。ただし、この場合、当該全体区間で推定された路面は、適切であると判定されている必要がある。また、図１８に示す例では、第５セグメントｓｅｇ５および第７セグメントｓｅｇ７については、それぞれ３つの推定路面が存在し、第６セグメントｓｅｇ６については、４つの推定路面が存在することになるため、各推定路面の平均路面（傾きおよび切片の平均）、または、適切と判定された推定路面のうち信頼度が最も高い路面を、最終的な推定路面として決定するという方法も挙げられる。このように、各段、各区間および全体区間で推定された推定路面から、どのように最終的な推定路面として決定するのかは、任意に選択することが可能である。
【０１７６】
また、図１８および図１９の例では、セグメント３つを全体区間として説明したが、４つ以上のセグメントを全体区間として処理を行ってもよい。また、この場合、１つのセグメントの路面、２つのセグメントを合わせた路面（セグメント間のオーバーラップあり）、３つのセグメントを合わせた路面（セグメント間のオーバーラップあり）、および、４つのセグメントを合わせた路面を推定し、上述と同様な手順で、最終的な推定路面を決定するものとしてもよい。すなわち、全体区間に含まれるセグメント数、および多段階推定処理の段数は任意に設定可能である。
【０１７７】
図１７に示す入力部４０１、Ｖマップ生成部４０２、セグメント分割部４０３、標本点探索部４１２ｂ、形状推定部４１３ｂ、成否判定部４１４ｂ、路面決定部４１５ｂ、スムージング部４０５および出力部４０６は、それぞれ図３に示すＣＰＵ３２がプログラム（物体認識処理プログラム）を実行することによって実現される。なお、入力部４０１、Ｖマップ生成部４０２、セグメント分割部４０３、標本点探索部４１２ｂ、形状推定部４１３ｂ、成否判定部４１４ｂ、路面決定部４１５ｂ、スムージング部４０５および出力部４０６の一部または全部は、ハードウェア回路であるＦＰＧＡ３１、または、その他のハードウェア回路（ＡＳＩＣ等）によって実現されるものとしてもよい。
【０１７８】
なお、図１７に示す路面推定部４００ｂの入力部４０１、Ｖマップ生成部４０２、セグメント分割部４０３、標本点探索部４１２ｂ、形状推定部４１３ｂ、成否判定部４１４ｂ、路面決定部４１５ｂ、スムージング部４０５および出力部４０６は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、図１７に示す路面推定部４００ｂで独立した機能部として図示した複数の機能部を、１つの機能部として構成してもよい。一方、図１７に示す路面推定部４００ｂで１つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
【０１７９】
（路面推定部の路面推定処理）
図２０は、第３の実施形態の路面推定部の路面推定処理の動作の一例を示すフローチャートである。図２０を参照しながら、本実施形態に係る路面推定部４００ｂによる路面推定処理の動作について説明する。なお、図２０では、図１８および図１９で示した構成、すなわち、２つのセグメントを所定区間とし、１つのセグメント分だけオーバーラップする構成として説明するものとし、図１８および図１９で示した第５セグメントｓｅｇ５〜第７セグメントｓｅｇ７に着目した処理内容（図２０のフローチャートでは、第１セグメント〜第３セグメントとする）について説明する。
【０１８０】
＜ステップＳ１４１＞
入力部４０１は、視差演算部３００から視差画像を入力する。そして、ステップＳ１４２へ移行する。
【０１８１】
＜ステップＳ１４２＞
Ｖマップ生成部４０２は、入力部４０１により入力された視差画像の各視差画素の視差値を、Ｖマップの対応する視差点に対して投票することによってＶマップを生成する。そして、ステップＳ１４３へ移行する。
【０１８２】
＜ステップＳ１４３＞
セグメント分割部４０３は、Ｖマップ生成部４０２により生成されたＶマップを、ｄｐ方向（水平方向）において、２以上のセグメントに分割する。そして、ステップＳ１４４へ移行する。
【０１８３】
＜ステップＳ１４４＞
標本点探索部４１２ｂは、多段階推定処理において、Ｖマップに投票された視差点（頻度点の一例）のうち、Ｖマップのｄｐ方向の全域について各ｄｐ座標の位置から、少なくとも１つ以上の代表点である標本点を探索して選択する。そして、ステップＳ１４５へ移行する。
【０１８４】
＜ステップＳ１４５＞
多段階推定処理部４０４ｂは、現在処理している所定区間に含まれる最も手前のセグメントを示すセグメント変数ｓｅｇ＿ｉｄｘを１に初期化する。そして、ステップＳ１４６へ移行する。
【０１８５】
＜ステップＳ１４６＞
多段階推定処理部４０４ｂは、以降のステップＳ１４７〜Ｓ１５５の処理を、セグメント分割部４０３により分割されたセグメント数−１分だけ繰り返す。そして、ステップＳ１４７へ移行する。
【０１８６】
＜ステップＳ１４７＞
形状推定部４１３ｂは、ｓｅｇ＿ｉｄｘ番目のセグメントおよび（ｓｅｇ＿ｉｄｘ＋１）番目のセグメントで構成された所定区間に対して、多段階推定処理を実行する。具体的には、形状推定部４１３ｂは、上述の２つのセグメントで構成される所定区間で、標本点探索部４１２ｂにより探索された標本点群から、当該所定区間の各区間（ｓｅｇ＿ｉｄｘ番目のセグメントの区間、ｓｅｇ＿ｉｄｘ＋１番目のセグメントの区間、および、ｓｅｇ＿ｉｄｘ番目のセグメントおよび（ｓｅｇ＿ｉｄｘ＋１）番目のセグメントを合わせた区間）での路面形状の推定（路面推定）を行う。そして、ステップＳ１４８へ移行する。
【０１８７】
＜ステップＳ１４８＞
成否判定部４１４ｂは、形状推定部４１３ｂにより推定された各段、各区間での推定路面が適切（成功）か否かを判定する成否判定を行う。そして、ステップＳ１４９へ移行する。
【０１８８】
＜ステップＳ１４９＞
多段階推定処理部４０４ｂは、（ｓｅｇ＿ｉｄｘ−１）番目のセグメントについて既に路面が推定されているか否かを判定する。（ｓｅｇ＿ｉｄｘ−１）番目のセグメントについて既に路面が推定されている場合（ステップＳ１４９：Ｙｅｓ）、ステップＳ１５０へ移行し、推定されていない場合（ここでは、具体的には、セグメント変数ｓｅｇ＿ｉｄｘ＝０の値を取る場合）（ステップＳ１４９：Ｎｏ）、ステップＳ１５５へ移行する。
【０１８９】
＜ステップＳ１５０＞
形状推定部４１３ｂは、多段階推定処理を行った各所定区間を含む全体区間（ここでは、（ｓｅｇ＿ｉｄｘ＋１）番目、ｓｅｇ＿ｉｄｘ番目および（ｓｅｇ＿ｉｄｘ−１）番目の区間）の路面を推定する。そして、ステップＳ１５１へ移行する。
【０１９０】
＜ステップＳ１５１＞
成否判定部４１４ｂは、多段階推定処理を行った各所定区間を含む全体区間の推定路面が適切（成功）か否かを判定する成否判定を行う。そして、ステップＳ１５２へ移行する。
【０１９１】
＜ステップＳ１５２＞
路面決定部４１５ｂは、多段階推定処理における各段、各区間のうち適切でない推定路面があり、かつ、全体区間の推定路面が適切であるかを判定する。多段階推定処理における各段、各区間のうち適切でない推定路面があり、かつ、全体区間の推定路面が適切である場合（ステップＳ１５２：Ｙｅｓ）、ステップＳ１５３へ移行し、それ以外の場合（ステップＳ１５２：Ｎｏ）、ステップＳ１５４へ移行する。
【０１９２】
＜ステップＳ１５３＞
路面決定部４１５ｂは、形状推定部４１３ｂにより全体区間（ここでは、（ｓｅｇ＿ｉｄｘ＋１）番目、ｓｅｇ＿ｉｄｘ番目および（ｓｅｇ＿ｉｄｘ−１）番目の区間）で推定された路面を、当該全体区間の最終的な推定路面として決定する。そして、ステップＳ１５５へ移行する。
【０１９３】
＜ステップＳ１５４＞
路面決定部４１５ｂは、多段階推定処理において、成否判定部４１４ｂにより成否判定により適切と判定された各段、各区間の推定路面の成否判定の結果に基づいて、各セグメントにおける最終的な推定路面を決定する。そして、ステップＳ１５５へ移行する。
【０１９４】
＜ステップＳ１５５＞
多段階推定処理部４０４ｂは、現在処理している所定区間に含まれる最も手前のセグメントを示すセグメント変数ｓｅｇ＿ｉｄｘをインクリメントして、次の所定区間の処理に移行する。そして、ステップＳ１５６へ移行する。
【０１９５】
＜ステップＳ１５６＞
多段階推定処理部４０４ｂは、すべての所定区間（セグメント数−１分の所定区間）について、上述のステップＳ１４７〜Ｓ１５５の処理が完了したか否かを判定する。すべての所定区間について処理が完了した場合、路面推定部４００ｂの路面推定処理が終了し、処理が完了していない場合、ステップＳ１４７へ戻る。
【０１９６】
以上のステップＳ１４１〜Ｓ１５６の処理により、路面推定部４００ｂによる路面推定処理が実行される。
【０１９７】
以上のように、本実施形態では、第１の実施形態および第２の実施形態での路面推定処理を組み合わせた路面推定処理を実行することによって、多段階推定処理で各所定区間での各段、各区間の推定路面のうち、適切でないと判定（失敗と判定）された推定路面がある場合、各所定区間を包含する全体区間での推定路面を、最終的な推定路面として決定するものとしている。このように、全てのセグメントを合わせた区間（全体区間）の路面も推定処理の選択候補に入れることで、第１の実施形態および第２の実施形態よりもロバストな路面推定が可能となり、実運用に耐え得るように路面推定処理の精度をさらに向上させることができる。
【０１９８】
また、上述の各実施形態では、車両７０としての自動車に搭載される物体認識装置について説明したが、これに限定されるものではない。例えば、他の車両の一例としてバイク、自転車、車椅子または農業用の耕運機等の車両に搭載されるものとしてもよい。また、移動体の一例としての車両だけでなく、ロボット等の移動体であってもよい。
【０１９９】
また、上述の各実施形態において、物体認識装置の情報処理部３０の各機能部の少なくともいずれかがプログラムの実行によって実現される場合、そのプログラムは、ＲＯＭ等に予め組み込まれて提供される。また、上述の各実施形態に係る物体認識装置で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅｃｏｒｄａｂｌｅ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。また、上述の各実施形態の物体認識装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上述の各実施形態の物体認識装置で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、上述の各実施形態の物体認識装置で実行されるプログラムは、上述した各機能部のうち少なくともいずれかを含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ３２が上述のＲＯＭ３３からプログラムを読み出して実行することにより、上述の各機能部が主記憶装置（ＲＡＭ３４等）上にロードされて生成されるようになっている。
【符号の説明】
【０２００】
１  物体認識装置
２  本体部
６  車両制御装置
７  ステアリングホイール
８  ブレーキペダル
１０ａ、１０ｂ  撮像部
１１ａ、１１ｂ  撮像レンズ
１３ａ、１３ｂ  画像センサ
２０ａ、２０ｂ  センサコントローラ
３０  情報処理部
３１  ＦＰＧＡ
３２  ＣＰＵ
３３  ＲＯＭ
３４  ＲＡＭ
３５  データＩ／Ｆ
３６  シリアルＩ／Ｆ
３８  シリアルバスライン
３９  データバスライン
６０  機器制御システム
７０  車両
１００ａ、１００ｂ  画像取得部
２００ａ、２００ｂ  変換部
３００  視差演算部
４００、４００ａ、４００ｂ  路面推定部
４０１  入力部
４０２  Ｖマップ生成部
４０３  セグメント分割部
４０４、４０４ａ、４０４ｂ  多段階推定処理部
４０５  スムージング部
４０６  出力部
４１１  区間分割部
４１２、４１２ａ、４１２ｂ  標本点探索部
４１３、４１３ａ、４１３ｂ  形状推定部
４１４、４１４ａ、４１４ｂ  成否判定部
４１５、４１５ａ、４１５ｂ  路面決定部
４５０  クラスタリング部
５００  棄却部
５５０  トラッキング判定部
６００  路面
６００ａ  推定路面
６０１  車
６０１ａ  車部
６１１  左ガードレール
６１１ａ  左ガードレール部
６１２  右ガードレール
６１２ａ  右ガードレール部
６１３  車
６１３ａ  車部
６１４  車
６１４ａ  車部
７０１〜７０３  投票領域
８０１、８０２ａ、８０２ｂ  推定路面
８１１、８１２ａ、８１２ｂ  推定路面
８２１、８２２ａ、８２２ｂ、８２５  推定路面
８３１、８３２ａ、８３２ｂ  推定路面
８４１ａ、８４１ｂ、８４２ａ〜８４２ｃ、８４３  推定路面
８５２ａ〜８５２ｃ、８５３  推定路面
ｄｐ  視差値
Ｉａ  基準画像
Ｉｂ  比較画像
Ｉｐ、Ｉｐ１  視差画像
ｓｅｇ５  第５セグメント
ｓｅｇ６  第６セグメント
ｓｅｇ７  第７セグメント
ＵＭ  Ｕマップ
ＶＭ、ＶＭ１、ＶＭ２、ＶＭ２ａ、ＶＭ２ｂ、ＶＭ３  Ｖマップ
【先行技術文献】
【特許文献】
【０２０１】
【特許文献１】特開２０１５−０７５８００号公報
【図１】
2019160247.tif 000004
【図２】
2019160247.tif 000005
【図３】
2019160247.tif 000006
【図４】
2019160247.tif 000007
【図５】
2019160247.tif 000008
【図６】
2019160247.tif 000009
【図７】
2019160247.tif 000010
【図８】
2019160247.tif 000011
【図９】
2019160247.tif 000012
【図１０】
2019160247.tif 000013
【図１１】
2019160247.tif 000014
【図１２】
2019160247.tif 000015
【図１３】
2019160247.tif 000016
【図１４】
2019160247.tif 000017
【図１５】
2019160247.tif 000018
【図１６】
2019160247.tif 000019
【図１７】
2019160247.tif 000020
【図１８】
2019160247.tif 000021
【図１９】
2019160247.tif 000022
【図２０】
2019160247.tif 000023