(57)【特許請求の範囲】
【請求項１】
複数の撮像部で各々撮影された複数の撮影画像における路面の距離に応じた距離値を有する距離画像から、前記距離画像の垂直方向に対する距離値の頻度の分布を示す垂直方向分布データを生成する生成部と、
前記垂直方向分布データにおいて、各距離値に対し、当該各距離値を含む複数の距離値に応じた幅と、前記垂直方向の所定の範囲に応じた高さを有する探索範囲に含まれる画素のうち、前記頻度の値が最も高い画素を各々抽出する抽出部と、
前記抽出された各画素に基づいて、前記路面を検出する検出部と、
を備え、
前記探索範囲の高さは、前記垂直方向分布データにおいて、前記各距離値で所定値以上の値を有し、かつ前記垂直方向の高さが最も低い画素からの所定の高さである、
ことを特徴とする画像処理装置。
【請求項２】
前記抽出された各画素に基づいて近似直線を算出し、前記抽出された各画素のうち、前記近似直線と距離が所定の閾値以上離れている画素を除去する除去部を備え、
前記検出部は、前記抽出された各画素のうち、前記除去部により除去されていない画素に基づいて、前記路面を検出する、
ことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記除去部は、前記所定の閾値を、前記路面の距離に応じて設定する、
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
複数の撮像部と、
前記複数の撮像部で各々撮影された複数の撮影画像から、前記複数の撮影画像における路面の視差に応じた距離値を有する距離画像を生成する距離画像生成部と、
前記距離画像の垂直方向に対する距離値の頻度の分布を示す垂直方向分布データを生成する生成部と、
前記垂直方向分布データにおいて、各距離値に対し、当該各距離値を含む複数の距離値に応じた幅と、前記垂直方向の所定の範囲に応じた高さを有する探索範囲に含まれる画素のうち、前記頻度の値が最も高い画素を各々抽出する抽出部と、
前記抽出された各画素に基づいて、前記路面を検出する検出部と、
を備え、
前記探索範囲の高さは、前記垂直方向分布データにおいて、前記各距離値で所定値以上の値を有し、かつ前記垂直方向の高さが最も低い画素からの所定の高さである、
撮像装置。
【請求項５】
移動体に搭載され、前記移動体の前方を撮像する複数の撮像部と、
前記複数の撮像部で各々撮影された複数の撮影画像から、前記複数の撮影画像における移動面及び物体の視差に応じた距離値を有する距離画像を生成する距離画像生成部と、
前記距離画像の垂直方向に対する距離値の頻度の分布を示す垂直方向分布データを生成する生成部と、
前記垂直方向分布データにおいて、各距離値に対し、当該各距離値を含む複数の距離値に応じた幅と、前記垂直方向の所定の範囲に応じた高さを有する探索範囲に含まれる画素のうち、前記頻度の値が最も高い画素を各々抽出する抽出部と、
前記抽出された各画素に基づいて、前記移動面を検出する検出部と、
前記検出された前記移動面、及び前記距離画像に基づいて、前記物体を検出する物体検出部と、
前記検出された前記物体のデータに基づいて、前記移動体の制御を行う制御部と、
を備え、
前記探索範囲の高さは、前記垂直方向分布データにおいて、前記各距離値で所定値以上の値を有し、かつ前記垂直方向の高さが最も低い画素からの所定の高さである、
移動体機器制御システム。
【請求項６】
画像処理装置が、
複数の撮像部で各々撮影された複数の撮影画像における路面の距離に応じた距離値を有する距離画像から、前記距離画像の垂直方向に対する距離値の頻度の分布を示す垂直方向分布データを生成するステップと、
前記垂直方向分布データにおいて、各距離値に対し、当該各距離値を含む複数の距離値に応じた幅と、前記垂直方向の所定の範囲に応じた高さを有する探索範囲に含まれる画素のうち、前記頻度の値が最も高い画素を各々抽出するステップと、
前記抽出された各画素に基づいて、前記路面を検出するステップと、
を実行し、
前記探索範囲の高さは、前記垂直方向分布データにおいて、前記各距離値で所定値以上の値を有し、かつ前記垂直方向の高さが最も低い画素からの所定の高さである、画像処理方法。
【請求項７】
画像処理装置に、
複数の撮像部で各々撮影された複数の撮影画像における路面の距離に応じた距離値を有する距離画像から、前記距離画像の垂直方向に対する距離値の頻度の分布を示す垂直方向分布データを生成するステップと、
前記垂直方向分布データにおいて、各距離値に対し、当該各距離値を含む複数の距離値に応じた幅と、前記垂直方向の所定の範囲に応じた高さを有する探索範囲に含まれる画素のうち、前記頻度の値が最も高い画素を各々抽出するステップと、
前記抽出された各画素に基づいて、前記路面を検出するステップと、
を実行させ、
前記探索範囲の高さは、前記垂直方向分布データにおいて、前記各距離値で所定値以上の値を有し、かつ前記垂直方向の高さが最も低い画素からの所定の高さである、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、撮像装置、移動体機器制御システム、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
自動車の安全性において、従来は歩行者や自動車と衝突したときに、いかに歩行者を守れるか、乗員を保護できるかの観点から自動車のボディー構造などの開発が行われてきた。しかしながら近年、情報処理技術、画像処理技術の発達により、高速に人や自動車等を検出する技術が開発されてきている。これらの技術を応用して、衝突する前に自動的にブレーキをかけ、衝突を未然に防ぐという自動車もすでに発売されている。
【０００３】
自動的にブレーキをかけるには人や他車等の物体までの距離を測定する必要があり、そのために、ステレオカメラの画像を用いた測定が実用化されている。
【０００４】
このステレオカメラの画像を用いた測定では、次のような画像処理を行うことで、人や他車等の物体の認識を行う技術が知られている（例えば、特許文献１参照）。
【０００５】
まず、ステレオカメラで撮像した複数の画像から、画像の垂直方向の座標を一方の軸とし、画像の視差(disparity)を他方の軸とし、視差の頻度の値を画素値とするV-Disparity画像を生成する。次に、生成したV-Disparity画像から、路面を検出する。検出した路面を用いて、画像の水平方向の座標を縦軸とし、画像の視差を横軸とし、路面よりも高い位置の物体の視差値の頻度を画素値とするU-Disparity画像を生成する。そして、生成したU-Disparity画像に基づいて、人や他車等の物体の認識を行う。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、従来技術には、V-Disparity画像（V-Disparity Map）から路面を検出する際、V-Disparity画像に含まれるノイズデータにより、路面を正しく検出できない場合がある。
【０００７】
そこで、路面を検出する精度を向上させる技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
画像処理装置において、複数の撮像部で各々撮影された複数の撮影画像における路面の距離に応じた距離値を有する距離画像から、前記距離画像の垂直方向に対する距離値の頻度の分布を示す垂直方向分布データを生成する生成部と、前記垂直方向分布データにおいて、各距離値に対し、当該各距離値を含む複数の距離値に応じた幅と、前記垂直方向の所定の範囲に応じた高さを有する探索範囲に含まれる画素のうち、前記頻度の値が最も高い画素を各々抽出する抽出部と、前記抽出された各画素に基づいて、前記路面を検出する検出部と、を備え、前記探索範囲の高さは、前記垂直方向分布データにおいて、前記各距離値で所定値以上の値を有し、かつ前記垂直方向の高さが最も低い画素からの所定の高さである。
【発明の効果】
【０００９】
開示の技術によれば、路面を検出する精度を向上させることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係る車載機器制御システムの構成を示す模式図である。
【図２】撮像ユニット及び画像解析ユニットの構成を示す模式図である。
【図３】移動体機器制御システムの機能ブロック図である。
【図４】視差画素データ抽出処理を説明する図である。
【図５】視差画像データ、及びその視差画像データから生成されるＶマップについて説明するための図である。
【図６】一方の撮像部で撮像された基準画像としての撮影画像の画像例と、その撮影画像に対応するＶマップを示す図である。
【図７】標本点抽出処理の一例を示すフローチャートである。
【図８】標本点抽出処理を説明する図である。
【図９】外れ点除去処理の一例を示すフローチャートである。
【図１０】外れ点除去処理を説明する図である。
【図１１】区分直線近似処理の流れを示すフローチャートである。
【図１２】当初の区間を示す説明図、及び当初の第１区間を延長した後の区間を示す説明図である。
【図１３】当初の区間を示す説明図、及び当初の第２区間を延長した後の区間を示す説明図である。
【図１４】得られた各区間の近似直線が区間境界で連続にならない状態を示す説明図、及び各区間の近似直線が区間境界において連続になるように修正した例を示す説明図である。
【発明を実施するための形態】
【００１１】
以下、実施形態に係る画像処理装置を有する移動体機器制御システムについて説明する。
【００１２】
〈車載機器制御システムの構成〉
図１は、本発明の実施形態に係る移動体機器制御システムとしての車載機器制御システムの構成を示す図である。
【００１３】
この車載機器制御システム１は、移動体である自動車などの自車両１００に搭載されており、撮像ユニット１０１、画像解析ユニット１０２、表示モニタ１０３、及び車両走行制御ユニット１０４からなる。そして、撮像ユニット１０１で、移動体の前方を撮像した自車両進行方向前方領域（撮像領域）の撮像画像データから、自車両前方の路面（移動面）の相対的な高さ情報（相対的な傾斜状況を示す情報）を検知し、その検知結果から、自車両前方の走行路面の３次元形状を検出し、その検出結果を利用して移動体や各種車載機器の制御を行う。移動体の制御には、例えば、警告の報知、自車両１００（自移動体）のハンドルの制御、または自車両１００（自移動体）のブレーキが含まれる。
【００１４】
撮像ユニット１０１は、例えば、自車両１００のフロントガラス１０５のルームミラー（図示せず）付近に設置される。撮像ユニット１０１の撮像によって得られる撮像画像データ等の各種データは、画像処理手段としての画像解析ユニット１０２に入力される。
【００１５】
画像解析ユニット１０２は、撮像ユニット１０１から送信されてくるデータを解析して、自車両１００が走行している路面部分（自車両の真下に位置する路面部分）に対する自車両前方の走行路面上の各地点における相対的な高さ（位置情報）を検出し、自車両前方の走行路面の３次元形状を把握する。また、自車両前方の他車両、歩行者、各種障害物などの認識対象物を認識する。
【００１６】
画像解析ユニット１０２の解析結果は、表示モニタ１０３及び車両走行制御ユニット１０４に送られる。表示モニタ１０３は、撮像ユニット１０１で得られた撮像画像データ及び解析結果を表示する。車両走行制御ユニット１０４は、画像解析ユニット１０２による自車両前方の他車両、歩行者、各種障害物などの認識対象物の認識結果に基づいて、例えば、自車両１００の運転者へ警告を報知したり、自車両のハンドルやブレーキを制御するなどの走行支援制御を行う。
【００１７】
〈撮像ユニット１０１及び画像解析ユニット１０２の構成〉
図２は、撮像ユニット１０１及び画像解析ユニット１０２の構成を示す図である。
【００１８】
撮像ユニット１０１は、撮像手段としての２つの撮像部１１０ａ，１１０ｂを備えたステレオカメラで構成されており、２つの撮像部１１０ａ，１１０ｂは同一のものである。各撮像部１１０ａ，１１０ｂは、それぞれ、撮像レンズ１１１ａ，１１１ｂと、受光素子が２次元配置された画像センサ１１３ａ，１１３ｂを含んだセンサ基板１１４ａ，１１４ｂと、センサ基板１１４ａ，１１４ｂから出力されるアナログ電気信号（画像センサ１１３ａ，１１３ｂ上の各受光素子が受光した受光量に対応する電気信号）をデジタル電気信号に変換した撮像画像データを生成して出力する信号処理部１１５ａ，１１５ｂとから構成されている。撮像ユニット１０１からは、輝度画像データと視差画像データが出力される。
【００１９】
また、撮像ユニット１０１は、ＦＰＧＡ（Field-Programmable Gate Array）等からなる処理ハードウェア部１２０を備えている。この処理ハードウェア部１２０は、各撮像部１１０ａ，１１０ｂから出力される輝度画像データから視差画像を得るために、各撮像部１１０ａ，１１０ｂでそれぞれ撮像した撮像画像間の対応画像部分の視差値を演算する視差画像情報生成手段としての視差演算部１２１を備えている。
【００２０】
ここでいう視差値とは、各撮像部１１０ａ，１１０ｂでそれぞれ撮像した撮像画像の一方を基準画像、他方を比較画像とし、撮像領域内の同一地点に対応した基準画像上の画像部分に対する比較画像上の画像部分の位置ズレ量を、当該画像部分の視差値として算出したものである。三角測量の原理を利用することで、この視差値から当該画像部分に対応した撮像領域内の当該同一地点までの距離を算出することができる。
【００２１】
画像解析ユニット１０２は、画像処理基板等から構成され、撮像ユニット１０１から出力される輝度画像データ及び視差画像データを記憶するＲＡＭやＲＯＭ等で構成される記憶手段１２２と、識別対象の認識処理や視差計算制御などを行うためのコンピュータプログラムを実行するＣＰＵ（Central Processing Unit）１２３と、データＩ／Ｆ（インタフェース）１２４と、シリアルＩ／Ｆ１２５を備えている。
【００２２】
処理ハードウェア部１２０を構成するＦＰＧＡは、画像データに対してリアルタイム性が要求される処理、例えばガンマ補正、ゆがみ補正（左右の撮像画像の平行化）、ブロックマッチングによる視差演算を行って視差画像の情報を生成し、画像解析ユニット１０２のＲＡＭに書き出す処理などを行う。画像解析ユニット１０２のＣＰＵ１２３は、各撮像部１１０Ａ，１１０Ｂの画像センサコントローラの制御および画像処理基板の全体的な制御を担うとともに、路面の３次元形状の検出処理、ガードレールその他の各種オブジェクト（識別対象物）の検出処理などを実行するプログラムをＲＯＭからロードして、ＲＡＭに蓄えられた輝度画像データや視差画像データを入力として各種処理を実行し、その処理結果をデータＩ／Ｆ１２４やシリアルＩ／Ｆ１２５から外部へと出力する。このような処理の実行に際し、データＩ／Ｆ１２４を利用して、自車両１００の車速、加速度（主に自車両前後方向に生じる加速度）、操舵角、ヨーレートなどの車両動作情報を入力し、各種処理のパラメータとして使用することもできる。外部に出力されるデータは、自車両１００の各種機器の制御（ブレーキ制御、車速制御、警告制御など）を行うための入力データとして使用される。
【００２３】
なお、撮像ユニット１０１及び画像解析ユニット１０２は、一体の装置である撮像装置２として構成してもよい。
【００２４】
図３は、図２における処理ハードウェア部１２０、画像解析ユニット１０２、及び車両走行制御ユニット１０４で実現される車載機器制御システム１の機能ブロック図である。なお、画像解析ユニット１０２で実現される機能部は、画像解析ユニット１０２にインストールされた１以上のプログラムが、画像解析ユニット１０２のＣＰＵ１２３に実行させる処理により実現される。
【００２５】
以下、本実施形態における処理について説明する。
【００２６】
《視差画像生成処理》
視差演算部１２１（図２）によって構成される視差画像生成部１３１において、視差画像データ（視差画像情報）を生成する視差画像生成処理を行う。視差画像生成処理では、まず、２つの撮像部１１０ａ，１１０ｂのうちの一方の撮像部１１０ａの輝度画像データを基準画像データとし、他方の撮像部１１０ｂの輝度画像データを比較画像データとし、これらを用いて両者の視差を演算して、視差画像データを生成して出力する。この視差画像データは、基準画像データ上の各画像部分について算出される視差値ｄに応じた画素値をそれぞれの画像部分の画素値として表した視差画像を示すものである。
【００２７】
具体的には、視差画像生成部１３１は、基準画像データのある行について、一つの注目画素を中心とした複数画素（例えば１６画素×１画素）からなるブロックを定義する。一方、比較画像データにおける同じ行において、定義した基準画像データのブロックと同じサイズのブロックを１画素ずつ横ライン方向（ｘ方向）へずらし、基準画像データにおいて定義したブロックの画素値の特徴を示す特徴量と比較画像データにおける各ブロックの画素値の特徴を示す特徴量との相関を示す相関値を、それぞれ算出する。そして、算出した相関値に基づき、比較画像データにおける各ブロックの中で最も基準画像データのブロックと相関があった比較画像データのブロックを選定するマッチング処理を行う。その後、基準画像データのブロックの注目画素と、マッチング処理で選定された比較画像データのブロックの対応画素との位置ズレ量を視差値ｄとして算出する。このような視差値ｄを算出する処理を基準画像データの全域又は特定の一領域について行うことで、視差画像データを得ることができる。
【００２８】
マッチング処理に用いるブロックの特徴量としては、例えば、ブロック内の各画素の値（輝度値）を用いることができ、相関値としては、例えば、基準画像データのブロック内の各画素の値（輝度値）と、これらの画素にそれぞれ対応する比較画像データのブロック内の各画素の値（輝度値）との差分の絶対値の総和を用いることができる。この場合、当該総和が最も小さくなるブロックが最も相関があると言える。
【００２９】
視差画像生成部１３１でのマッチング処理をハードウェア処理によって実現する場合には、例えばＳＳＤ（Sum of Squared Difference）、ＺＳＳＤ（Zero-mean Sum of Squared Difference）、ＳＡＤ（Sum of Absolute Difference）、ＺＳＡＤ（Zero-mean Sum of Absolute Difference）、ＮＣＣ（Normalized cross correlation）などの方法を用いることができる。なお、マッチング処理では画素単位での視差値しか算出できないので、１画素未満のサブピクセルレベルの視差値が必要な場合には推定値を用いる必要がある。その推定方法としては、例えば、等角直線方式、二次曲線方式等を利用することができる。
【００３０】
《視差画素データ抽出処理》
次に、図４を参照して、視差画素データ抽出部１３２による視差画素データ抽出処理について説明する。図４は、視差画素データ抽出処理を説明する図である。
【００３１】
視差画素データ抽出部１３２は、視差画像生成部１３１によって生成された視差画像データを取得し、視差画像データに含まれる各視差画素データにおけるｘ方向位置とｙ方向位置と視差値ｄとの組（ｘ，ｙ，ｄ）を、視差画像の所定のエリアから抽出する。
【００３２】
図４の例では、水平方向に平行な直線により、５つのエリア（以降、適宜、下から順にエリア５１１〜エリア５１５と称する）に等間隔に分割する。そして、エリア５１１を１つのセグメント５２１とし、エリア５１２、５１３をそれぞれ３つのセグメント５２２〜５２４、５２５〜５２７とする。
【００３３】
ステレオカメラの消失点に近づくほど１画素あたりの距離の変化量が大きくなるため、図４の例では、セグメント５２１は比較的大きな範囲とし、重要度が高い５２２〜５２７のセグメントを比較的小さな範囲としている。なお、視差画素データ抽出部１３２は、坂道であることを検出した等の場合に、各セグメントの範囲を動的に変更してもよい。
【００３４】
視差画素データ抽出部１３２は、各セグメントから視差画素データを抽出し、標本点抽出部１３４に出力する。そして、後述するＶマップ生成処理、及び標本点抽出処理は、それぞれのセグメント毎に行う。路面は視差画像の上方向（Ｙ方向）に行くほど自車両からの距離が大きくなるため、水平なセグメント毎に処理を行うことにより、距離方向（d方向）のノイズに強い路面検出処理ができる。
【００３５】
《Ｖマップ生成処理》
Ｖマップ生成部１３３は、視差画素データ抽出部１３２により抽出された視差画素データに基づき、Ｖマップ（V-Disparity Map、「垂直方向分布データ」の一例）を生成するＶマップ生成処理を実行する。視差画像データに含まれる各視差画素データは、ｘ方向位置とｙ方向位置と視差値ｄとの組（ｘ，ｙ，ｄ）で示される。これを、Ｘ軸にｄ、Ｙ軸にｙ、Ｚ軸に頻度ｆを設定した三次元座標情報（ｄ，ｙ，ｆ）に変換したもの、又はこの三次元座標情報（ｄ，ｙ，ｆ）から所定の頻度閾値を超える情報に限定した三次元座標情報（ｄ，ｙ，ｆ）を、視差ヒストグラム情報として生成する。本実施形態の視差ヒストグラム情報は、三次元座標情報（ｄ，ｙ，ｆ）からなり、この三次元ヒストグラム情報をＸ−Ｙの２次元座標系に分布させたものを、Ｖマップと呼ぶ。
【００３６】
具体的に説明すると、Ｖマップ生成部１３３は、視差画像を上下方向に複数分割して得られる各行領域について、視差値頻度分布を計算する。この視差値頻度分布を示す情報が視差ヒストグラム情報である。
【００３７】
図５は視差画像データ、及びその視差画像データから生成されるＶマップについて説明するための図である。ここで、図５Ａは視差画像の視差値分布の一例を示す図であり、図５Ｂは、図５Ａの視差画像の行毎の視差値頻度分布を示すＶマップを示す図である。
【００３８】
図５Ａに示すような視差値分布をもった視差画像データが入力されたとき、Ｖマップ生成部１３３は、行毎の各視差値のデータの個数の分布である視差値頻度分布を計算し、これを視差ヒストグラム情報として出力する。このようにして得られる各行の視差値頻度分布の情報を、Ｙ軸に視差画像上のｙ方向位置（撮像画像の上下方向位置）をとりＸ軸に視差値ｄをとった二次元直交座標系上に表すことで、図５Ｂに示すようなＶマップを得ることができる。このＶマップは、頻度ｆに応じた画素値をもつ画素が前記二次元直交座標系上に分布した画像として表現することもできる。
【００３９】
図６は、一方の撮像部で撮像された基準画像としての撮影画像の画像例と、その撮影画像に対応するＶマップを示す図である。ここで、図６Ａが撮影画像であり、図６ＢがＶマップである。即ち、図６Ａに示すような撮影画像から図６Ｂに示すＶマップが生成される。Ｖマップでは、路面より下の領域には視差は検出されないので、斜線で示した領域Ａで視差がカウントされることはない。
【００４０】
図６Ａに示す画像例では、自車両が走行している路面４０１と、自車両の前方に存在する先行車両４０２と、路外に存在する電柱４０３が映し出されている。また、図６Ｂに示すＶマップには、画像例に対応して、路面５０１、先行車両５０２、及び電柱５０３がある。
【００４１】
この画像例は、自車両の前方路面が、相対的に平坦な路面、即ち、自車両の前方路面が自車両の真下の路面部分と平行な面を自車両前方へ延長して得られる仮想の基準路面（仮想基準移動面）に一致している場合のものである。この場合、画像の下部に対応するＶマップの下部において、高頻度の点は、画像上方へ向かうほど視差値ｄが小さくなるような傾きをもった略直線状に分布する。このような分布を示す画素は、視差画像上の各行においてほぼ同一距離に存在していてかつ最も占有率が高く、しかも画像上方へ向かうほど距離が連続的に遠くなる識別対象物を映し出した画素であると言える。
【００４２】
撮像部１１０ａでは自車両前方領域を撮像するため、その撮像画像の内容は、図６Ａに示すように、画像上方へ向かうほど路面の視差値ｄは小さくなる。また、同じ行（横ライン）内において、路面を映し出す画素はほぼ同じ視差値ｄを持つことになる。従って、Ｖマップ上において上述した略直線状に分布する高頻度の点は、路面（移動面）を映し出す画素が持つ特徴に対応したものである。よって、Ｖマップ上における高頻度の点を直線近似して得られる近似直線上又はその近傍に分布する点の画素は、高い精度で、路面を映し出している画素であると推定することができる。また、各画素に映し出されている路面部分までの距離は、当該近似直線上の対応点の視差値ｄから高精度に求めることができる。
【００４３】
《標本点抽出処理》
標本点抽出部１３４は、Ｖマップ生成部１３３により生成されたＶマップにおいて、各距離値に対し、標本点を探索するための探索範囲を設定する。標本点抽出部１３４は、例えば、Ｖマップにおける各距離値に対し、当該各距離値を含む複数の距離値に応じた幅と、当該各距離値で所定値以上の値を有し、垂直方向の高さが最も低い画素からの所定の高さを有する探索範囲を設定する。そして、標本点抽出部１３４は、探索範囲に含まれる画素のうち、画素値の値が最も大きい画素（最頻点）を標本点として抽出する。
【００４４】
次に、図７、図８を参照して、標本点抽出部１３４による標本点抽出処理の詳細例について説明する。図７は、標本点抽出処理の一例を示すフローチャートである。図８は、標本点抽出処理を説明する図である。
【００４５】
まず、標本点抽出部１３４は、Ｖマップ生成部１３３により生成されたＶマップのＸ座標において、着目点xdを設定する（ステップＳ１０）。
【００４６】
続いて、標本点抽出部１３４は、着目点xdを含む複数のＸ座標（例えば、xd−α〜xd＋α）を選択する（ステップＳ１１）。なお、標本点抽出部１３４は、当該着目点xdを含む複数のＸ座標を、例えば（xd〜xd＋α）としてもよい。また、抽出範囲は、例えば１座標ずつ飛ばして、（xd−２α〜xd＋２α）としてもよい。なお、αは整数であり、例えば２乃至４とする。
【００４７】
続いて、標本点抽出部１３４は、着目点xdのＸ座標上において、Ｙ座標の値を変化させることにより視差画像の上方に向かって画素の値を走査し、値を有する（画素値が０でない）画素（投票データ）を検出する（ステップＳ１２）。図８の例では、図７のステップＳ１２にて、着目点xdのＸ座標上において、値を有する画素５３１が検出される。
【００４８】
続いて、標本点抽出部１３４は、当該値を有する画素のＹ座標の値に、所定の定数Ｒ（例えば６０）を減算した値を算出する（ステップＳ１３）。なお、Ｒの値は、ステレオカメラの性能や環境等に応じた値を予め設定する。または、例えば過去の路面検出の結果に応じて動的に設定してもよい。なお、定数Ｒを減算するのは、視差画像とＶマップにおいて、左上を原点（０、０）として設定しているためである。
【００４９】
続いて、標本点抽出部１３４は、横方向の範囲（幅）を、ステップＳ１１で設定した複数のＸ座標とし、縦方向の範囲（高さ）を、ステップＳ１２で検出したＹ座標の値からステップＳ１３で算出した値（y＋Ｒ）までとする探索範囲を設定する（ステップＳ１４）。
【００５０】
続いて、標本点抽出部１３４は、探索範囲の中から、画素値の値が最も大きい画素（最頻点）を標本点として抽出する（ステップＳ１５）。図８の例では、画素５３１のｙ座標の値から、当該Ｙ座標にＲを減算した値までの高さの範囲、着目点xdを含む複数のＸ座標の幅の範囲で、最頻点５３２を標本点として抽出する。
【００５１】
なお、標本点抽出部１３４は、着目点xdの値を変えることにより、各セグメントに応じたＶマップの所定のＸ座標の範囲について上記処理を行う。
【００５２】
《外れ点除去処理》
外れ点除去部１３５は、標本点抽出部１３４により抽出された標本点のうち、直線近似に適さない点を除外する。
【００５３】
図９、図１０を参照して、外れ点除去部１３５による外れ点除去処理について説明する。図９は、外れ点除去処理の一例を示すフローチャートである。図１０は、外れ点除去処理を説明する図である。
【００５４】
まず、外れ点除去部１３５は、標本点抽出部１３４により抽出された全ての標本点（図４の各セグメント５２１〜５２７に応じた各Ｖマップからそれぞれ抽出された標本点の全て）から、近似直線を算出する（ステップＳ２０）。外れ点除去部１３５は、例えば最小二乗法を用いて近似直線を算出する。図１０の例では、近似直線５４１が、図９のステップＳ２０にて算出される。
【００５５】
続いて、外れ点除去部１３５は、Ｘ座標の値に応じた閾値を算出する（ステップＳ２１）。図１０の例では、所定のＸ座標の値Ｄ（例えば自車両からの距離５０ｍに相当する視差値）を境界として、Ｄ未満（自車両から所定距離より遠い）は所定の閾値を２σ、Ｄ以上（自車両から所定距離以下）をσとしている。これは、視差値が小さい、すなわち自車両からの距離が遠い位置の路面については、ステレオカメラで計測する際の誤差が大きいため、除去する際の閾値を緩くするためである。
【００５６】
続いて、外れ点除去部１３５は、算出した近似直線に対し、ユークリッド距離がステップＳ２１で算出した閾値以上離れている標本点を除去する（ステップＳ２２）。図１０の例では、Ｄ以上で所定の閾値σ以上離れている標本点５４２を除去する。
【００５７】
《路面形状検出処理》
路面形状検出部１３６は、Ｖマップ生成部１３３により生成されたＶマップから、標本点抽出部１３４により標本点が抽出され、外れ点除去部１３５により外れ点が除去されたＶマップ（補正Ｖマップ）に基づき、路面の形状（位置、高さ）を検出する。
【００５８】
なお、路面が平坦な場合には一本の直線で十分な精度で近似可能であるが、車両進行方向において路面の傾斜状況が変化するような路面については、一本の直線で十分な精度の近似は難しい。従って、本実施形態においては、Ｖマップの情報（Ｖマップ情報）を視差値に応じて２以上の視差値区画に区分けし、各視差値区画についてそれぞれ個別に直線近似を行う。
【００５９】
図１１は、路面形状検出部１３６で行う区分直線近似処理の流れを示すフローチャートであり、図１２は、当初の区間を示す説明図（図１２Ａ）、及び当初の第１区間を延長した後の区間を示す説明図（図１２Ｂ）である。また、図１３は、当初の区間を示す説明図（図１３Ａ）、及び当初の第２区間を延長した後の区間を示す説明図（図１３Ｂ）である。また、図１４は、得られた各区間の近似直線が区間境界で連続にならない状態を示す説明図（図１４Ａ）、及び各区間の近似直線が区間境界において連続になる修正した例を示す説明図（図１４Ｂ）である。
【００６０】
路面形状検出部１３６は、補正Ｖマップのデータにおいて、最近距離の第１区間（最も視差値が大きい区間）を設定する（ステップＳ９１）。そして、この第１区間内に存在する、標本点抽出部１３４により抽出され、外れ点除去部１３５により除去されていない標本点である路面候補点を抽出する（ステップＳ９２）。このとき、抽出された路面候補点の数が所定の値以下である場合（ステップＳ９３：NO）、当該第１区間を所定の視差値分だけ延長する（ステップＳ９４）。具体的には、図１２Ａに示す当初の第１区間と第２区間とを結合して、図１２Ｂに示すように、新たにひとつの第１区間（延長された第１区間）とする。このとき、当初の第３区間は新たな第２区間となる。そして、延長された第１区間内の路面候補点を再び抽出し（ステップＳ９２）、抽出された路面候補点の数が所定の値よりも多くなった場合には（ステップＳ９３：YES）、抽出した路面候補点について直線近似処理を行う（ステップＳ９５）。
【００６１】
なお、第１区間ではない区間、例えば第２区間を延長する場合には、図１３Ａに示す当初の第２区間と第３区間とを結合して、図１３Ｂに示すように、新たに一つの第２区間（延長された第２区間）とする。
【００６２】
このようにして直線近似処理を行ったら（ステップＳ９６：NO）、次に、その直線近似処理により得られる近似直線の信頼性判定を行う。この信頼性判定では、最初に、得られた近似直線の傾きと切片が所定の範囲内にあるかどうかを判定する（ステップＳ９７）。この判定で所定の範囲内ではない場合には（ステップＳ９7：NO）、当該第１区間を所定の視差値分だけ延長し（ステップＳ９４）、延長された第１区間について再び直線近似処理を行う（ステップＳ９２〜９５）。そして、所定の範囲内ではあると判定されたら（ステップＳ９７：YES）、その直線近似処理を行った区間が第１区間か否かを判断する（ステップＳ９８）。
【００６３】
このとき、第１区間であると判断された場合には（ステップＳ９８：YES）、その近似直線の相関値が所定の値よりも大きいかどうかを判定する（ステップＳ９９）。この判定において、近似直線の相関値が所定の値よりも大きければ、その近似直線を当該第１区間の近似直線として決定する。近似直線の相関値が所定の値以下であれば、当該第１区間を所定の視差値分だけ延長し（ステップＳ９４）、延長された第１区間について再び直線近似処理を行い（ステップＳ９２〜９５）、再び信頼性判定を行う（ステップＳ９７〜Ｓ９９）。なお、第１区間でない区間については（ステップＳ９８：NO）、近似直線の相関値に関する判定処理（ステップＳ９９）は実施しない。
【００６４】
その後、残りの区間があるか否かを確認し（ステップＳ１００）、もし残りの区間が無ければ（ステップＳ１００：NO）、路面形状検出部１３６は区分直線近似処理を終了する。一方、残りの区間がある場合には（ステップＳ１００：YES）、前区間の幅に対応する距離を定数倍した距離に対応する幅をもった次の区間（第２区間）を設定する（ステップＳ１０１）。そして、この設定後に残っている区間が更に次に設定される区間（第３区間）よりも小さいか否かを判断する（ステップＳ１０２）。この判断において小さくないと判断されたなら（ステップＳ１０２：NO）、当該第２区間内の路面候補点を抽出して直線近似処理を行うとともに（ステップＳ９２〜Ｓ９５）、信頼性判定処理を行う（ステップＳ９７〜Ｓ９９）。
【００６５】
このようにして順次区間を設定し、その区間の直線近似処理及び信頼性判定処理を行うという処理を繰り返していくと、いずれ、前記ステップＳ１０２において、設定後に残っている区間が更に次に設定される区間よりも小さいと判断される（ステップＳ１０２：YES）。この場合、設定された区間を延長して当該残っている区間を含めるようにし、これを最後の区間として設定する（ステップＳ１０３）。この場合、この最後の区間内の路面候補点を抽出し（ステップＳ９２）、抽出した路面候補点について直線近似処理を行ったら（ステップＳ１５）、ステップＳ９６において最後の区間であると判断されるので（ステップＳ９６：YES）、路面形状検出部１３６は区分直線近似処理を終了する。
【００６６】
このようにして路面形状検出部１３６が各区間の直線近似処理を実行して得た各区間の近似直線は、図１４Ａに示すように、通常、区間境界で連続したものにはならない。そのため、本実施形態では、路面形状検出部１３６は、図１４Ａに示す各区間の近似直線が区間境界において連続になるように、近似直線を図１４Ｂに示すように修正する。具体的には、例えば、区間の境界上における両区間の近似直線の端点間の中点を通るように両近似直線を修正する。
【００６７】
《路面高さテーブル算出処理》
路面高さテーブル算出部１３７は、路面形状検出部１３６からの近似直線の情報に基づいて、路面高さ（自車両の真下の路面部分に対する相対的な高さ）を算出してテーブル化する路面高さテーブル算出処理を行う。路面形状検出部１３６により生成された近似直線の情報から、撮像画像上の各行領域（画像上下方向の各位置）に映し出されている各路面部分までの距離を算出できる。一方、自車両の真下に位置する路面部分をその面に平行となるように自車両進行方向前方へ延長した仮想平面の自車両進行方向における各面部分が、撮像画像中のどの各行領域に映し出されるかは予め決まっており、この仮想平面（基準路面）はＶマップ上で直線（基準直線）により表される。路面形状検出部１３６から出力される近似直線を基準直線と比較することで、自車両前方の各路面部分の高さを得ることができる。簡易的には、路面形状検出部１３６から出力される近似直線上のＹ軸位置から、これに対応する視差値から求められる距離だけ自車両前方に存在する路面部分の高さを算出できる。路面高さテーブル算出部１３７では、近似直線から得られる各路面部分の高さを、必要な視差範囲についてテーブル化する。
【００６８】
なお、ある視差値ｄにおいてＹ軸位置がｙ'である地点に対応する撮像画像部分に映し出されている物体の路面からの高さは、当該視差値ｄにおける近似直線上のＹ軸位置をｙ０としたとき、（ｙ'−ｙ０）から算出することができる。一般に、Ｖマップ上における座標（ｄ，ｙ'）に対応する物体についての路面からの高さＨは、下記の式より算出することができる。ただし、下記の式において、「ｚ」は、視差値ｄから計算される距離（ｚ＝ＢＦ／（ｄ−ｏｆｆｓｅｔ））であり、「ｆ」はカメラの焦点距離を（ｙ'−ｙ０）の単位と同じ単位に変換した値である。ここで、「ＢＦ」は、ステレオカメラの基線長と焦点距離を乗じた値であり、「ｏｆｆｓｅｔ」は無限遠の物体を撮影したときの視差値である。
【００６９】
Ｈ＝ｚ×（ｙ'−ｙ０）／ｆ
《物体検出処理》
物体検出部１３８は、視差画像データに含まれる各視差画素データにおけるｘ方向位置とｙ方向位置と視差値ｄとの組（ｘ，ｙ，ｄ）を、Ｘ軸にｘ、Ｙ軸にｄ、Ｚ軸に頻度を設定し、Ｘ−Ｙの２次元ヒストグラム情報（頻度Ｕマップ）を作成する。
【００７０】
物体検出部１３８は、路面高さテーブル算出部１３７によってテーブル化された各路面部分の高さに基づいて、路面からの高さＨが所定の高さ範囲（たとえば２０ｃｍから３ｍ）にある視差画像の点（ｘ，ｙ，ｄ）についてだけ頻度Ｕマップを作成する。この場合、路面から当該所定の高さ範囲に存在する物体を適切に抽出することができる。
【００７１】
《走行支援制御》
制御部１３９は、物体検出部１３８による、物体の検出結果に基づいて、例えば、自車両１００の運転者へ警告を報知したり、自車両のハンドルやブレーキを制御するなどの走行支援制御を行う。
【００７２】
なお、距離の値（距離値）と視差値は等価に扱えることから、本実施形態においては距離画像の一例として視差画像を用いて説明しているが、これに限られない。例えば、ステレオカメラを用いて生成した視差画像に対して、ミリ波レーダやレーザレーダ等の検出装置を用いて生成した距離情報を統合して、距離画像を生成してもよい。また、ステレオカメラと、ミリ波レーダやレーザレーダ等の検出装置を併用し、上述したステレオカメラによる物体の検出結果と組み合わせることにより、検出の精度をさらに高める構成としてもよい。
【００７３】
上述した実施形態におけるシステム構成は一例であり、用途や目的に応じて様々なシステム構成例があることは言うまでもない。
【００７４】
例えば、処理ハードウェア部１２０、画像解析ユニット１０２、及び車両走行制御ユニット１０４の各機能部は、ハードウェアによって実現される構成としてもよいし、ＣＰＵが記憶装置に格納されたプログラムを実行することによって実現される構成としてもよい。このプログラムは、インストール可能な形式又は実行可能な形式のファイルによって、コンピュータで読み取り可能な記録メディアに記録されて流通されるようにしても良い。また、上記記録メディアの例として、ＣＤ−Ｒ(Compact Disc Recordable)、ＤＶＤ(Digital Versatile Disk)、ブルーレイディスク等が挙げられる。また、各プログラムが記憶されたＣＤ−ＲＯＭ等の記録メディア、並びに、これらプログラムが記憶されたＨＤ５０４は、プログラム製品(Program Product)として、国内又は国外へ提供されることができる。
【符号の説明】
【００７５】
１  車載機器制御システム（「機器制御システム」の一例）
１００  自車両
１０１  撮像ユニット
１０２  画像解析ユニット（「画像処理装置」の一例）
１０３  表示モニタ
１０６  車両走行制御ユニット（「制御部」の一例）
１１０ａ，１１０ｂ  撮像部
１２０  処理ハードウェア部
１３１  視差画像生成部（「距離画像生成部」の一例）
１３２  視差画素データ抽出部
１３３  Ｖマップ生成部（「生成部」の一例）
１３４  標本点抽出部（「抽出部」の一例）
１３５  外れ点除去部（「除去部」の一例）
１３６  路面形状検出部
１３７  路面高さテーブル算出部
１３８  物体検出部
１３９  制御部
２  撮像装置
【先行技術文献】
【特許文献】
【００７６】
【特許文献１】特開２０１５−０７５８００号公報
【図１】
0006733225.tif 000002
【図２】
0006733225.tif 000003
【図３】
0006733225.tif 000004
【図４】
0006733225.tif 000005
【図５】
0006733225.tif 000006
【図６】
0006733225.tif 000007
【図７】
0006733225.tif 000008
【図８】
0006733225.tif 000009
【図９】
0006733225.tif 000010
【図１０】
0006733225.tif 000011
【図１１】
0006733225.tif 000012
【図１２】
0006733225.tif 000013
【図１３】
0006733225.tif 000014
【図１４】
0006733225.tif 000015