(57)【特許請求の範囲】
【請求項１】
実空間上の領域で真上から見た場合の、物体の視差の頻度の分布を表す俯瞰マップを取得する取得部と、
所定の物体に対応する前記分布において、視野角が最小、及び最大となる位置から所定範囲内で、視差の頻度が大きい第１の位置、及び第２の位置をそれぞれ決定する決定部と、
前記分布に基づいて、前記第１の位置及び前記第２の位置を直径の端点とする円周上から、前記所定の物体のコーナーの位置を検出する検出部と、
を備える検出装置。
【請求項２】
前記検出部は、前記第１の位置と前記円周上の各位置との間の視差の頻度、及び前記第２の位置と前記各位置との間の視差の頻度に基づいて、前記コーナーの位置を検出する、
請求項１記載の検出装置。
【請求項３】
前記検出部は、前記各位置のうち、前記第１の位置との間及び前記第２の位置との間の、視差の頻度の平均値が最も大きい位置を、前記コーナーの位置として検出する、
請求項２記載の検出装置。
【請求項４】
前記検出部は、前記第１の位置と前記コーナーの位置、または前記第２の位置と前記コーナーの位置に基づいて、前記所定の物体の向きを検出する、
請求項１乃至３のいずれか一項に記載の検出装置。
【請求項５】
前記検出部は、前記所定の物体に対応する視差の頻度の分布に基づいて、前記所定の物体の、前記第１の位置と前記コーナーの位置を含む面、または前記第２の位置と前記コーナーの位置を含む面の高さを検出する、
請求項１乃至４のいずれか一項に記載の検出装置。
【請求項６】
検出装置が、
実空間上の領域で真上から見た場合の、物体の視差の頻度の分布を表す俯瞰マップを取得するステップと、
所定の物体に対応する前記分布において、視野角が最小、及び最大となる位置から所定範囲内で、視差の頻度が大きい第１の位置、及び第２の位置をそれぞれ決定するステップと、
前記分布に基づいて、前記第１の位置及び前記第２の位置を直径の端点とする円周上から、前記所定の物体のコーナーの位置を検出するステップと、
を実行する検出方法。
【請求項７】
検出装置に、
実空間上の領域で真上から見た場合の、物体の視差の頻度の分布を表す俯瞰マップを取得する手順と、
所定の物体に対応する前記分布において、視野角が最小、及び最大となる位置から所定範囲内で、視差の頻度が大きい第１の位置、及び第２の位置をそれぞれ決定する手順と、
前記分布に基づいて、前記第１の位置及び前記第２の位置を直径の端点とする円周上から、前記所定の物体のコーナーの位置を検出する手順と、
を実行させるプログラム。
【請求項８】
物体を撮影する２つの撮像部と、
前記２つの撮像部により撮影した画像データに基づき、実空間上の領域で真上から見た場合の、物体の視差の頻度の分布を表す俯瞰マップを生成する生成部と、
所定の物体に対応する前記分布において、視野角が最小、及び最大となる位置から所定範囲内で、視差の頻度が大きい第１の位置、及び第２の位置をそれぞれ決定する決定部と、
前記分布に基づいて、前記第１の位置及び前記第２の位置を直径の端点とする円周上から、前記所定の物体のコーナーの位置を検出する検出部と、
を備える撮像装置。
【請求項９】
物体を撮影する２つの撮像部と、
前記２つの撮像部により撮影した画像データに基づき、実空間上の領域で真上から見た場合の、物体の視差の頻度の分布を表す俯瞰マップを生成する生成部と、
所定の物体に対応する前記分布において、視野角が最小、及び最大となる位置から所定範囲内で、視差の頻度が大きい第１の位置、及び第２の位置をそれぞれ決定する決定部と、
前記分布に基づいて、前記第１の位置及び前記第２の位置を直径の端点とする円周上から、前記所定の物体のコーナーの位置を検出する検出部と、
前記コーナーの位置に応じて、警告の報知、自車のハンドルの制御、または自車のブレーキの制御を行う制御部と、
を備える機器制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検出装置、検出方法、撮像装置、機器制御システム、及びプログラムに関する。
【背景技術】
【０００２】
近年、情報処理技術、画像処理技術の発達により、高速に人や自動車を検出する技術が開発されてきている。これらの技術を応用し、ミリ波レーダ、レーザレーダ、ステレオカメラ等により人や他車までの距離を測定し、衝突する前に自動的にブレーキをかけて衝突を未然に防ぐ技術が実用化されてきている。
【０００３】
隣接車線の極近傍の先行車、あるいは直前の先行車が車線変更するとき、その挙動を正確に把握し、安全な車間距離を保ったり、ドライバーに警告したりするためには、先行車の車両（先行車両）のうち、最も自車に接近している部分の位置や距離を把握することが重要となる。言い換えれば、先行車が割り込みを行う等の際、先行車両の最も近い位置（左の先行車両なら右後ろのコーナーの位置、右の先行車両なら左後ろのコーナーの位置）を把握することが重要となる。
【０００４】
ミリ波レーダ、レーザレーダは分解能が低いため、先行車両のコーナーの位置を正確に把握できない。一方、ステレオカメラを用いると、比較的高精度に把握できる。
【０００５】
特許文献１には、ステレオカメラを用いて、次のような処理により、先行車両のコーナーの位置を検出する技術が開示されている。まず、画像を短冊状の区分に分割し、各区分の視差を実空間上にプロットし、プロットされた各点間の距離や方向性に基づいて、互いに隣接する各点をグループ化し、各グループに属する各点をそれぞれ直線近似する。そして、それぞれのグループ内の各点が自車の車幅方向に略平行に並ぶグループと、各点が自車の車長方向に略平行に並ぶグループの、交点とみなすことができる箇所をコーナーの位置として検出する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の技術では、ステレオカメラを用いて、先行車両や対向車両等のコーナーの位置を検出する場合、車両の色、天候、昼夜、車の形状、視差値の分散等の条件によっては、当該位置を正確に検出できないという問題がある。
【０００７】
そこで、ステレオカメラを用いて、先行車両等のコーナーの位置を検出する場合に、当該位置を高精度に検出できる技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
検出装置において、実空間上の領域で真上から見た場合の、物体の視差の頻度の分布を表す俯瞰マップを取得する取得部と、所定の物体に対応する前記分布において、視野角が最小、及び最大となる位置から所定範囲内で、視差の頻度が大きい第１の位置、及び第２の位置をそれぞれ決定する決定部と、前記分布に基づいて、前記第１の位置及び前記第２の位置を直径の端点とする円周上から、前記所定の物体のコーナーの位置を検出する検出部と、を備える。
【発明の効果】
【０００９】
開示の技術によれば、ステレオカメラを用いて、先行車両等のコーナーの位置を検出する場合に、当該位置を高精度に検出できる。
【図面の簡単な説明】
【００１０】
【図１】実施形態における車載機器制御システムの概略構成を示す模式図である。
【図２】同車載機器制御システムを構成する撮像ユニットの概略構成を示す模式図である。
【図３】画像処理基板および画像解析ユニットで実現される物体検出処理を説明するための処理ブロック図である。
【図４】（ａ）は視差画像の視差値分布の一例を示す説明図である。（ｂ）は、同（ａ）の視差画像の行ごとの視差値頻度分布を示す行視差分布マップ（Ｖマップ）を示す説明図である。
【図５】一方の撮像部で撮像される基準画像の一例を模式的に表した画像例である。
【図６】基準画像の一例に対応するＶマップを示す説明図である。
【図７】一方の撮像部で撮像される基準画像の他の一例を模式的に表した画像例である。
【図８】基準画像の他の一例に対応する頻度Ｕマップを示す説明図である。
【図９】基準画像の他の一例に対応する高さＵマップを示す説明図である。
【図１０】基準画像の他の例に対応するリアル頻度Ｕマップを示す説明図である。
【図１１】コーナー検出部内の処理ブロック図である。
【図１２】コーナー検出部による検出処理のフローチャートである。
【図１３】俯瞰マップにおける先行車両の頻度分布の例である。
【図１４】第１の位置、及び第２の位置をそれぞれ検出する処理の第１の例を説明する図である。
【図１５】第１の位置、及び第２の位置をそれぞれ検出する処理の第２の例を説明する図である。
【図１６】第１の位置、及び第２の位置をそれぞれ検出する処理の第３の例を説明する図である。
【図１７】隣の車線を走行している先行車両の頻度分布を用いて、先行車両のコーナー等を検出する処理を説明する図である。
【図１８】自車と同じ車線を走行している先行車両の頻度分布を用いて、先行車両のコーナー等を検出する処理を説明する図である。
【図１９】隣接車線を走る先行車両を検知する場合の実施形態による効果を説明する図である。
【図２０】側壁を検知する場合の実施形態による効果を説明する図である。
【発明を実施するための形態】
【００１１】
以下、本発明に係る物体検出装置を、移動体機器制御システムである車載機器制御システムに用いた一実施形態について説明する。
【００１２】
図１は、本実施形態における車載機器制御システムの概略構成を示す模式図である。
【００１３】
本車載機器制御システムは、移動体である自動車などの自車１００に搭載された撮像ユニット１０１で撮像した自車進行方向前方領域（撮像領域）の撮像画像データから検出対象物を検出し、その検知結果を利用して各種車載機器の制御を行う。
【００１４】
本実施形態の車載機器制御システムには、走行する自車１００の進行方向前方領域を撮像領域として撮像する撮像ユニット１０１が設けられている。この撮像ユニット１０１は、例えば、自車１００のフロントガラス１０５のルームミラー付近に設置される。撮像ユニット１０１の撮像によって得られる撮像画像データ等の各種データは、画像解析ユニット１０２に入力される。画像解析ユニット１０２は、撮像ユニット１０１から送信されてくるデータを解析して、撮像領域内に存在する他車両等の検出対象物を検出する。なお、撮像ユニット１０１及び画像解析ユニット１０２は、一体の装置である撮像装置として構成してもよい。
【００１５】
画像解析ユニット１０２の検出結果は、ＥＣＵ(Engine Control Unit)等である車両走行制御ユニット１０６に送られる。車両走行制御ユニット１０６は、画像解析ユニット１０２が検出した検出結果に基づいて、自車１００の運転者へ表示モニタ１０３を用いて警告を報知したり、自車のハンドルやブレーキを制御するなどの走行支援制御を行ったりする。
【００１６】
図２は、撮像ユニット１０１の概略構成を示す模式図である。
【００１７】
撮像ユニット１０１は、撮像手段としての２つの撮像部１１０Ａ，１１０Ｂを備えたステレオカメラを備えており、２つの撮像部１１０Ａ，１１０Ｂは同一のものである。各撮像部１１０Ａ，１１０Ｂは、それぞれ、撮像レンズ１１１Ａ，１１１Ｂと、受光素子が２次元配置された画像センサ１１３Ａ，１１３Ｂと、画像センサコントローラ１１５Ａ，１１５Ｂとから構成されている。画像センサコントローラ１１５Ａ，１１５Ｂは、画像センサ１１３Ａ，１１３Ｂの露光制御、画像読み出し制御、外部回路との通信、画像データの送信等の役割を担う。画像センサコントローラ１１５Ａ，１１５Ｂからは、画像センサ１１３Ａ，１１３Ｂから出力されるアナログ電気信号（画像センサ上の各受光素子が受光した受光量）をデジタル電気信号に変換した撮像画像データ（輝度画像データ）が出力される。
【００１８】
また、撮像ユニット１０１は、２つの撮像部１１０Ａ、１１０Ｂに対してデータバス及びシリアルバスで接続された画像処理基板１２０を備えている。画像処理基板１２０には、ＣＰＵ（Central  Processing  Unit）１２１、ＲＡＭ１２２、ＲＯＭ１２３、ＦＰＧＡ１２４（Field-Programmable  Gate  Array）、シリアルＩＦ（インターフェース）１２５、データＩＦ１２６などが設けられている。画像処理基板１２０のデータバスは、２つの撮像部１１０Ａ，１１０Ｂから出力される輝度画像データを画像処理基板１２０上のＲＡＭ１２２に転送する。画像処理基板１２０のシリアルバスは、ＣＰＵ１２１やＦＰＧＡ１２４からのセンサ露光制御値の変更命令、画像読み出しパラメータの変更命令、各種設定データなどの送受信を行う。画像処理基板１２０のＦＰＧＡ１２４は、ＲＡＭ１２２に保存された画像データに対してリアルタイム性が要求される処理、例えばガンマ補正、ゆがみ補正（左右画像の平行化）、ブロックマッチングによる視差演算を行って視差画像データを生成し、ＲＡＭ１２２に書き戻す。ＣＰＵ１２１は、路面形状検出処理、オブジェクト検出処理等を実行するためのプログラムをＲＯＭ１２３からロードし、ＲＡＭ１２２に蓄えられた輝度画像データや視差画像データを入力して、各種処理を実行する。検出された各種データは、データＩＦ１２６やシリアルＩＦ１２５から外部へ出力される。各種処理の実行に際しては、データＩＦ１２６を利用して、適宜、車両の情報（車速、加速度、舵角、ヨーレートなど）を入力し、各種処理のパラメータとして使用する。
【００１９】
次に、本実施形態における物体検出処理について説明する。
【００２０】
図３は、主に画像処理基板１２０上のＣＰＵ１２１がプログラムを実行することによってあるいはＦＰＧＡ１２４によって実現される物体検出処理を説明するための処理ブロック図である。
【００２１】
ステレオカメラを構成する２つの撮像部１１０Ａ，１１０Ｂからは輝度画像データが出力される。このとき、撮像部１１０Ａ，１１０Ｂがカラーの場合には、そのＲＧＢ信号から輝度信号（Ｙ）を得るカラー輝度変換を、例えば下記の式（１）を用いて行う。
【００２２】
Ｙ  ＝  ０．３Ｒ  ＋  ０．５９Ｇ  ＋  ０．１１Ｂ  ・・・（１）
輝度画像データが入力されると、まず、平行化画像生成部１３１で平行化画像生成処理を実行する。この平行化画像生成処理は、撮像部１１０Ａ，１１０Ｂにおける光学系の歪みや左右の撮像部１１０Ａ，１１０Ｂの相対的な位置関係から、各撮像部１１０Ａ，１１０Ｂから出力される輝度画像データ（基準画像と比較画像）を、２つのピンホールカメラが平行に取り付けられたときに得られる理想的な平行化ステレオ画像となるように変換する。これは、各画素での歪み量を、Δｘ＝ｆ（ｘ，ｙ）、Δｙ＝ｇ（ｘ，ｙ）という多項式を用いて計算し、その計算結果を用いて、各撮像部１１０Ａ，１１０Ｂから出力される輝度画像データ（基準画像と比較画像）の各画素を変換する。多項式は、例えば、ｘ（画像の横方向位置）、ｙ（画像の縦方向位置）に関する５次多項式に基づく。
【００２３】
このようにして平行化画像処理を行った後、次に、ＦＰＧＡ１２４等で構成される視差画像生成部１３２において、視差画像データ（視差画像情報）を生成する視差画像生成処理を行う。視差画像生成処理では、まず、２つの撮像部１１０Ａ，１１０Ｂのうちの一方の撮像部１１０Ａの輝度画像データを基準画像データとし、他方の撮像部１１０Ｂの輝度画像データを比較画像データとし、これらを用いて両者の視差を演算して、視差画像データを生成して出力する。この視差画像データは、基準画像データ上の各画像部分について算出される視差値ｄに応じた画素値をそれぞれの画像部分の画素値として表した視差画像を示すものである。
【００２４】
具体的には、視差画像生成部１３２は、基準画像データのある行について、一の注目画素を中心とした複数画素（例えば１６画素×１画素）からなるブロックを定義する。一方、比較画像データにおける同じ行において、定義した基準画像データのブロックと同じサイズのブロックを１画素ずつ横ライン方向（Ｘ方向）へずらし、基準画像データにおいて定義したブロックの画素値の特徴を示す特徴量と比較画像データにおける各ブロックの画素値の特徴を示す特徴量との相関を示す相関値を、それぞれ算出する。そして、算出した相関値に基づき、比較画像データにおける各ブロックの中で最も基準画像データのブロックと相関があった比較画像データのブロックを選定するマッチング処理を行う。その後、基準画像データのブロックの注目画素と、マッチング処理で選定された比較画像データのブロックの対応画素との位置ズレ量を視差値ｄとして算出する。このような視差値ｄを算出する処理を基準画像データの全域又は特定の一領域について行うことで、視差画像データを得ることができる。
【００２５】
マッチング処理に用いるブロックの特徴量としては、例えば、ブロック内の各画素の値（輝度値）を用いることができ、相関値としては、例えば、基準画像データのブロック内の各画素の値（輝度値）と、これらの画素にそれぞれ対応する比較画像データのブロック内の各画素の値（輝度値）との差分の絶対値の総和を用いることができる。この場合、当該総和が最も小さくなるブロックが最も相関があると言える。
【００２６】
視差画像生成部１３２でのマッチング処理をハードウェア処理によって実現する場合には、例えばＳＳＤ（Sum of Squared Difference）、ＺＳＳＤ（Zero-mean Sum of Squared Difference）、ＳＡＤ（Sum of Absolute Difference）、ＺＳＡＤ（Zero-mean Sum of Absolute Difference）などの方法を用いることができる。なお、マッチング処理では画素単位での視差値しか算出できないので、１画素未満のサブピクセルレベルの視差値が必要な場合には推定値を用いる必要がある。その推定方法としては、例えば、等角直線方式、二次曲線方式等を利用することができる。ただし、このサブピクセルレベルの推定視差値には誤差が発生するので、この推定誤差を減少させるＥＥＣ（推定誤差補正）などを用いてもよい。
【００２７】
次に、Ｖマップ生成部１３３において、Ｖマップを生成するＶマップ生成処理を実行する。視差画像データに含まれる各視差画素データは、ｘ方向位置とｙ方向位置と視差値ｄとの組（ｘ，ｙ，ｄ）で示されるところ、これを、Ｘ軸にｄ、Ｙ軸にｙ、Ｚ軸に頻度ｆを設定した三次元座標情報（ｄ，ｙ，ｆ）に変換したもの、又はこの三次元座標情報（ｄ，ｙ，ｆ）から所定の頻度閾値を超える情報に限定した三次元座標情報（ｄ，ｙ，ｆ）を生成する。この三次元座標情報（ｄ，ｙ，ｆ）をＸ−Ｙの２次元座標系に分布させたものを、Ｖマップ（V-disparity map）と呼ぶ。
【００２８】
具体的に説明すると、Ｖマップ生成部１３３は、画像を上下方向に複数分割して得られる視差画像データの各行領域について、視差値頻度分布を計算する。具体例を挙げて説明すると、図４（ａ）に示すような視差値分布をもった視差画像データが入力されたとき、Ｖマップ生成部１３３は、行ごとの各視差値のデータの個数の分布である視差値頻度分布を計算して出力する。このようにして得られる各行の視差値頻度分布の情報を、Ｙ軸に視差画像上のｙ方向位置（撮像画像の上下方向位置）をとりＸ軸に視差値をとった二次元直交座標系上に表すことで、図４（ｂ）に示すようなＶマップを得ることができる。このＶマップは、頻度ｆに応じた画素値をもつ画素が前記二次元直交座標系上に分布した画像として表現することもできる。
【００２９】
次に、本実施形態では、Ｖマップ生成部１３３が生成したＶマップの情報（視差ヒストグラム情報）から、路面形状検出部１３４において、自車１００の前方路面の３次元形状を検出する路面形状検出処理が実行される。
【００３０】
図５は、撮像部１１０Ａで撮像される基準画像の一例を模式的に表した画像例である。
【００３１】
図５に示す画像例では、自車１００が走行している路面と、自車１００の前方に存在する先行車両と、路外に存在する電柱が映し出されている。この画像例は、自車１００の前方路面が相対的に平坦な路面、すなわち、自車１００の前方路面が自車１００の真下の路面部分と平行な面を自車前方へ延長して得られる仮想の基準路面（仮想基準移動面）に一致している場合のものである。この場合、画像の下部に対応するＶマップの下部において、高頻度の点は、画像上方へ向かうほど視差値ｄが小さくなるような傾きをもった略直線状に分布する。このような分布を示す画素は、視差画像上の各行においてほぼ同一距離に存在していてかつ最も占有率が高く、しかも画像上方へ向かうほど距離が連続的に遠くなる検出対象物を映し出した画素であると言える。
【００３２】
図６は、図５の画像例に対応するＶマップである。
【００３３】
撮像部１１０Ａでは自車前方領域を撮像するため、その撮像画像の内容は、図６に示すように、画像上方へ向かうほど路面の視差値ｄは小さくなる。また、同じ行（横ライン）内において、路面を映し出す画素はほぼ同じ視差値ｄを持つことになる。したがって、Ｖマップ上において上述した略直線状に分布する高頻度の点は、路面（移動面）を映し出す画素が持つ特徴に対応したものである。よって、Ｖマップ上における高頻度の点を直線近似して得られる近似直線上又はその近傍に分布する点の画素は、高い精度で、路面を映し出している画素であると推定することができる。また、各画素に映し出されている路面部分までの距離は、当該近似直線上の対応点の視差値ｄから高精度に求めることができる。
【００３４】
次に、路面高さテーブル算出部１３５において、路面高さ（自車の真下の路面部分に対する相対的な高さ）を算出してテーブル化する路面高さテーブル算出処理を行う。路面形状検出部１３４により生成されたＶマップ上の近似直線の情報から、撮像画像上の各行領域（画像上下方向の各位置）に映し出されている各路面部分までの距離を算出できる。一方、自車の真下に位置する路面部分をその面に平行となるように自車進行方向前方へ延長した仮想平面の自車進行方向における各面部分が、撮像画像中のどの各行領域に映し出されるかは予め決まっており、この仮想平面（基準路面）はＶマップ上で直線（基準直線）により表される。路面形状検出部１３４から出力される近似直線を基準直線と比較することで、自車前方の各路面部分の高さを得ることができる。簡易的には、路面形状検出部１３４から出力される近似直線上のＹ軸位置から、これに対応する視差値から求められる距離だけ自車前方に存在する路面部分の高さを算出できる。路面高さテーブル算出部１３５では、近似直線から得られる各路面部分の高さを、必要な視差範囲についてテーブル化する。
【００３５】
なお、ある視差値ｄにおいてＹ軸位置がｙ'である地点に対応する撮像画像部分に映し出されている物体の路面からの高さは、当該視差値ｄにおける近似直線上のＹ軸位置をｙ０としたとき、（ｙ'−ｙ０）から算出することができる。一般に、Ｖマップ上における座標（ｄ，ｙ'）に対応する物体についての路面からの高さＨは、下記の式（２）より算出することができる。ただし、下記の式（２）において、「ｚ」は、視差値ｄから計算される距離（ｚ＝ＢＦ／（ｄ−ｏｆｆｓｅｔ））であり、「ｆ」はカメラの焦点距離を（ｙ'−ｙ０）の単位と同じ単位に変換した値である。ここで、「ＢＦ」は、ステレオカメラの基線長と焦点距離を乗じた値であり、「ｏｆｆｓｅｔ」は無限遠の物体を撮影したときの視差値である。
【００３６】
Ｈ  ＝  ｚ×（ｙ'−ｙ０）／ｆ  ・・・（２）
次に、Ｕマップ生成部１３６について説明する。
【００３７】
Ｕマップ生成部１３６では、Ｕマップを生成するＵマップ生成処理を実行する。Ｕマップ生成処理では、視差画像データに含まれる各視差画素データにおけるｘ方向位置とｙ方向位置と視差値ｄとの組（ｘ，ｙ，ｄ）を、Ｘ軸にｘ、Ｙ軸にｄ、Ｚ軸に頻度を設定した三次元座標情報（ｘ，ｄ，ｆ）に変換したもの、又はこの三次元座標情報（ｘ，ｄ，ｆ）から所定の頻度閾値を超える情報に限定した三次元座標情報（ｘ，ｄ，ｆ）を、視差ヒストグラム情報として生成する。この三次元座標情報（ｘ，ｄ，ｆ）をＸ−Ｙの２次元座標系に分布させたものを、頻度Ｕマップ（U-disparity map）と呼ぶ。
【００３８】
具体的に説明すると、Ｕマップ生成部１３６は、画像を左右方向に複数分割して得られる視差画像データの各列領域について、視差値頻度分布を計算する。この視差値頻度分布を示す情報が視差ヒストグラム情報である。具体的には、視差値分布をもった視差画像データが入力されたとき、Ｕマップ生成部１３６は、列ごとの各視差値のデータの個数の分布である視差値頻度分布を計算し、これを視差ヒストグラム情報として出力する。このようにして得られる各列の視差値頻度分布の情報を、Ｘ軸に視差画像上のｘ方向位置（撮像画像の左右方向位置）をとりＹ軸に視差値をとった二次元直交座標系上に表すことで、頻度Ｕマップを得ることができる。この頻度Ｕマップは、頻度ｆに応じた画素値をもつ画素が前記二次元直交座標系上に分布した画像として表現することもできる。
【００３９】
本実施形態のＵマップ生成部１３６では、路面高さテーブル算出部１３５によってテーブル化された各路面部分の高さに基づいて、路面からの高さＨが所定の高さ範囲（たとえば２０ｃｍから３ｍ）にある視差画像の点（ｘ，ｙ，ｄ）についてだけＵマップを作成する。この場合、路面から当該所定の高さ範囲に存在する物体を適切に抽出することができる。なお、例えば、撮像画像の下側５／６の画像領域に対応する視差画像の点（ｘ，ｙ，ｄ）についてだけＵマップを作成するようにしてもよい。この場合、撮像画像の上側１／６は、ほとんどの場合、空が映し出されていて認識対象とする必要のある物体が映し出されていないためである。
【００４０】
また、各視差画像の点（ｘ，ｙ，ｄ）については、路面高さテーブル算出部１３５によってテーブル化された各路面部分の高さに基づいて路面からの高さＨが対応づけされることから、頻度に関する三次元座標情報（ｘ，ｄ，ｆ）だけでなく、三次元座標情報（ｘ，ｄ，Ｈ）も得ることができる。この三次元座標情報（ｘ，ｄ，Ｈ）をＸ−Ｙの２次元座標系に分布させたものを、高さＵマップと呼ぶ。この高さＵマップは、高さＨに応じた画素値をもつ画素が前記二次元直交座標系上に分布した画像として表現することもできる。本実施形態では、頻度Ｕマップを構成する三次元座標情報（ｘ，ｄ，ｆ）から、視差値ｄごとの最大高さＨｍａｘを用いて、三次元座標情報（ｘ，ｄ，Ｈｍａｘ）を抽出し、この三次元座標情報（ｘ，ｄ，Ｈｍａｘ）をＸ−Ｙの２次元座標系に分布させた高さＵマップを用いる。
【００４１】
図７は、撮像部１１０Ａで撮像される基準画像の他の一例を模式的に表した画像例である。
【００４２】
図８は、図７の画像例に対応するＵマップであり、頻度ｆに応じた画素値をもつ画素が二次元直交座標系上に分布した画像として表現した頻度Ｕマップである。
【００４３】
図９は、図７の画像例に対応するＵマップであり、視差値ごとの実空間上の最大高さＨmaxに応じた画素値をもつ画素が二次元直交座標系上に分布した画像として表現した高さＵマップである。
【００４４】
図７に示す画像例では、路面の左右両側にガードレールが存在し、他車両としては、先行車両と対向車両がそれぞれ１台ずつ存在する。このとき、頻度Ｕマップにおいては、図８に示すように、左右のガードレールに対応する高頻度の点は、左右両端側から中央に向かって上方へ延びるような略直線状に分布する。一方、他車両に対応する高頻度の点は、左右のガードレールの間で、略Ｘ軸方向に平行に延びる線分の状態で分布する。なお、先行車両の背面部分又は対向車両の前面部分以外に、これらの車両の側面部分が映し出されているような状況にあっては、同じ他車両を映し出している画像領域内において視差が生じる。このような場合、図８に示すように、他車両に対応する高頻度の点は、略Ｘ軸方向に平行に延びる線分と略Ｘ軸方向に対して傾斜した線分とが連結した状態の分布を示す。
【００４５】
また、高さＵマップにおいては、図９に示すように、図８に示す頻度Ｕマップと同様の画像形状を示すが、左右のガードレールに対応する箇所は実空間上の高さが相対的に低いので画素値が低く、他車両に対応する箇所は実空間上の高さが相対的に高いので画素値が高くなっている。
【００４６】
次に、リアルＵマップ生成部１３７について説明する。
【００４７】
リアルＵマップ生成部１３７は、Ｕマップ生成部１３６で生成される頻度Ｕマップ及び高さＵマップにおけるＸ軸を、視差画像データ上のｘ方向位置から、実空間上のｘ方向位置に変換する。視差画像データ上のｘ方向位置は、実空間上のｘ方向位置が同じであっても、距離が離れるほど（画像上側ほど）、視差画像データ上の消失点に近づくので、頻度Ｕマップ及び高さＵマップについて、このような視差画像データ上のｘ方向位置を実空間上のｘ方向位置に変換したものをそれぞれリアル頻度Ｕマップ（Real U-disparity map、俯瞰マップ）及びリアル高さＵマップと呼ぶ。リアル頻度Ｕマップは、実空間上の領域で真上から見た場合の、視差の頻度の分布を表すデータである。
【００４８】
図１０は、図８に示した頻度Ｕマップに対応するリアル頻度Ｕマップである。
【００４９】
図１０に示すリアル頻度Ｕマップでは、Ｙ軸を、頻度Ｕマップでの視差ｄを距離に応じた間引き率で変換した間引き視差という単位としている。近距離の物体は大きく映し出されるために算出される視差値の距離に対する分解能が高いので、視差値について大きく間引くことが可能になる。図１０に示すリアル頻度Ｕマップにおいて、左右のガードレールについては上下方向に延びる線分の状態で分布し、他車両については略長方形状の状態で分布するため、いずれも、実空間上の自車前方領域を真上から見たときの実際の形状に近い分布形状をとる。なお、リアルＵマップ生成部１３７では、同様にしてリアル高さＵマップも生成する。
【００５０】
なお、上述したリアル頻度Ｕマップのことを、以下では適宜、俯瞰マップと称する。
【００５１】
続いて、図１１を参照し、コーナー検出部１３８の処理について説明する。図１１は、コーナー検出部１３８内の処理ブロック図である。
【００５２】
コーナー検出部１３８は、取得部１３８Ａ、決定部１３８Ｂ、検出部１３８Ｃを有する。
【００５３】
取得部１３８Ａは、リアルＵマップ生成部１３７が生成した俯瞰マップと、リアル高さＵマップを取得する。
【００５４】
決定部１３８Ｂは、俯瞰マップの、先行車両や対向車両等の物体に対応する視差の頻度の分布において、視野角（ステレオカメラの中心を原点とした、ステレオカメラの光軸方向に対する角度）が最小、及び最大となる位置から所定範囲内で、視差の頻度が大きい第１の位置、及び第２の位置をそれぞれ決定する。なお、視野角は、例えば、水平面で左側を正の値とし、水平面で右側を負の値とする。その場合、視野角は、−９０°から９０°までの値となる。
【００５５】
検出部１３８Ｃは、第１の位置及び第２の位置を直径の端点とする円周上から、物体のコーナーの位置を検出する。具体的には、検出部１３８Ｃは、第１の位置及び第２の位置を直径の端点とする円周上の各位置のうち、第１の位置との間及び第２の位置との間の、視差の頻度の平均値が最も大きい位置を、コーナーの位置であると判断する。
【００５６】
検出部１３８Ｃは、第１の位置とコーナーの位置、または第２の位置とコーナーの位置に基づいて、所定の物体の向きを検出する。
【００５７】
検出部１３８Ｃは、所定の物体の視差に基づいて、物体の、第１の位置とコーナーの位置を含む面、または第２の位置とコーナーの位置を含む面の高さを検出する。
【００５８】
続いて、図１２を参照し、コーナー検出部１３８が、俯瞰マップを用いて、先行車両や対向車両等のコーナー等を検出する検出処理について説明する。以下では、コーナー等を検出する対象が先行車両であるものとして説明するが、対向車両であっても同様に検出できる。
図１２は、コーナー検出部１３８による検出処理のフローチャートである。以下では、俯瞰マップにおいて、ステレオカメラの光軸方向（自車の進行方向、車長方向）をＺ軸、ステレオカメラの光軸方向と垂直な水平方向（車幅方向）をＸ軸、ステレオカメラの光軸方向と垂直な鉛直方向をＹ軸として説明する。
【００５９】
リアルＵマップ生成部１３７によって作成された、俯瞰マップを取得する（ステップＳ１）。
【００６０】
俯瞰マップ上の物体のうちの一の物体を抽出する（ステップＳ２）。
【００６１】
抽出した物体について、視野角が最小、及び最大に近い位置で、視差頻度が最も高い第１の位置（点Ａ）及び第２の位置（点Ｂ）をそれぞれ検出する（ステップＳ３）。
【００６２】
点Ａ、Ｂを直径の端点とする円周上の点Ｄを俯瞰マップ上で設定する（ステップＳ４）。
【００６３】
線分ＡＤ及び線分ＤＢが通過する俯瞰マップ上の点（ブロック）の頻度の平均値を、頻度平均値として算出する（ステップＳ５）。
【００６４】
弧ＡＢ間で頻度平均値が最大となる点ＤをＤｍａｘとして記憶する（ステップＳ６）。なお、Ｄｍａｘが、先行車両等の最も近い位置（角、コーナー）として出力される。
【００６５】
抽出した物体が極小面を含むか判断する（ステップＳ７）。正面の車両、または側壁を誤認識した場合に、物体の２面のうちの１面の幅が極小さく検出する場合があるため、この処理により、誤認識した物体を削除する。なお、極小面を含むかの判断は、例えば、点Ａと点Ｄｍａｘとの間の距離が所定値（例えば２５６ｍｍ）以下であり、かつ、点Ａと点Ｄｍａｘを含む面の幅が所定値（例えば２５６ｍｍ）以下である場合、及び点Ｄｍａｘと点Ｂとの間の距離が所定値以下であり、かつ、点Ｄｍａｘと点Ｂを含む面の幅が所定値以下である場合に、極小面を含むと判断する。
【００６６】
極小面を含むと判断した場合（ステップＳ７でＹＥＳ）、ステップＳ１０の処理に進む。それにより、対象の物体が、正面の車や側壁であった場合は、以下の処理をスキップする。
【００６７】
極小面を含まないと判断した場合（ステップＳ７でＮＯ）、線分ＡＤｍａｘ、及び線分ＢＤｍａｘの、ステレオカメラの光軸方向（自車の進行方向、車長方向）と垂直な水平方向（車幅方向）に対する角度を算出する（ステップＳ８）。それにより、先行車両の向きが検出される。
【００６８】
俯瞰マップを生成する元となった画像において、リアル高さＵマップを用いて、線分ＡＤｍａｘに対応する面、及び線分ＢＤｍａｘに対応する面について、面の左右の辺のＸ座標、Ｙ座標の最大値、最小値をそれぞれ算出する（ステップＳ９）。Ｙ座標の高さについて、最も高いＹ座標は、リアル高さＵマップから取得する。最も低いＹ座標は、路面高さテーブル算出部１３５によって算出された路面の高さである。なお、リアル高さＵマップを用いる代わりに、高さＵマップを用いる構成としてもよい。
【００６９】
俯瞰マップ上の物体のうち、未抽出の物体があるか判断する（ステップＳ１０）。
【００７０】
未抽出の物体があれば（ステップＳ１０でＹＥＳ）、未抽出の物体を抽出し（ステップＳ１１）、ステップＳ３の処理へ進む。
【００７１】
未抽出の物体がなければ（ステップＳ１０でＮＯ）、処理を終了する。
【００７２】
なお、ステップＳ５、ステップＳ６で、頻度の平均値が最大となる点ＤをＤｍａｘとする代わりに、頻度の合計値が最大となる点ＤをＤｍａｘとする構成としてもよい。その場合、線分ＡＤ及び線分ＤＢが通過する、俯瞰マップ上のブロック毎の頻度の値を積分することにより、合計値を算出する構成としてもよい。
【００７３】
続いて、図１３を参照し、俯瞰マップにおける先行車両の頻度分布について説明する。図１３は、俯瞰マップにおける先行車両の頻度分布の例である。
【００７４】
俯瞰マップの分解能を例えば１２８ｍｍとすると、先行車両の頻度分布は、１２８ｍｍ×１２８ｍｍのブロックが複数並んだ形状となる。なお、俯瞰マップの分解能を高くすると（例えば、６４ｍｍ）、精度は上がるが、ブロックの密度が疎らになり検出が困難になる。分解能を低くすると（例えば、２５６ｍｍ）、ブロックの密度が密になるが、分解能が低いため正確な位置が検出しにくくなる。
【００７５】
先行車両の頻度分布においてＺ軸方向、及びＸ軸方向において、ステレオカメラからの距離が遠い位置では、斜め方向にブロックが伸びる形状となる。これは、撮影時の条件等に応じて生じる視差の誤差（分散）によりものである。俯瞰マップを作成する元となった画像において、先行車両の側面しか写っていない場合は、当該斜め方向に延びるブロックは少ない。俯瞰マップを作成する元となった画像において、先行車両の近くに遠方に存在するものが背景として写っている場合等は、当該背景の視差の影響による誤差で、当該斜め方向に延びるブロックが多くなる。
【００７６】
続いて、図１４乃至図１６を参照し、図１２のステップＳ３で、抽出した物体について、視野角が最小、及び最大に近い位置で、視差頻度が最も高い第１の位置（点Ａ）及び第２の位置（点Ｂ）をそれぞれ検出する処理の例について説明する。
【００７７】
図１４は、視野角が最小、及び最大となる位置から所定範囲内で、視差の頻度が大きい第１の位置、及び第２の位置をそれぞれ検出する処理の第１の例を説明する図である。
【００７８】
まず、先行車両の頻度分布において、視野角が最小、及び最大となる位置を検出する。
【００７９】
続いて、点集合である先行車両の頻度分布を包含する矩形（正方形または長方形）を設定し、当該矩形の中で、検出した２つの位置をそれぞれ包含し、向かい合う、所定の大きさの２つの三角形の領域を設定する。
【００８０】
続いて、２つの三角形の領域の中で、視差頻度が最も高い第１の位置（点Ａ）及び第２の位置（点Ｂ）をそれぞれ検出する。
【００８１】
図１５は、視野角が最小、及び最大となる位置から所定範囲内で、視差の頻度が大きい第１の位置、及び第２の位置をそれぞれ検出する処理の第２の例を説明する図である。
【００８２】
まず、先行車両の頻度分布において、視野角が最小、及び最大となる位置を検出する。
【００８３】
続いて、検出した２つの位置をそれぞれ中心とする、所定の大きさの２つの矩形の領域の中で、視差頻度が最も高い第１の位置（点Ａ）及び第２の位置（点Ｂ）をそれぞれ検出する。
【００８４】
図１６は、視野角が最小、及び最大となる位置から所定範囲内で、視差の頻度が大きい第１の位置、及び第２の位置をそれぞれ検出する処理の第３の例を説明する図である。
【００８５】
まず、先行車両の頻度分布において、視野角が最小、及び最大となる位置を検出する。
【００８６】
続いて、検出した２つの位置をそれぞれ中心とする、所定の大きさの円形または楕円形の領域の中で、視差頻度が最も高い第１の位置（点Ａ）及び第２の位置（点Ｂ）をそれぞれ検出する。
【００８７】
続いて、図１７を参照し、図１２のステップＳ４、ステップＳ５で、隣の車線を走行している先行車両の頻度分布を用いて、当該先行車両のコーナー等を検出する処理について説明する。
【００８８】
図１７は、隣の車線を走行している先行車両の頻度分布を用いて、先行車両のコーナー等を検出する処理を説明する図である。
【００８９】
図１２のステップＳ４で、点Ａ、Ｂを直径の端点とする円周上の点Ｄを俯瞰マップ上で設定する。
【００９０】
図１２のステップＳ５で、線分ＡＤ及び線分ＢＤが通過する俯瞰マップ上の点（ブロック）の頻度の平均値を、頻度平均値として算出する。
【００９１】
頻度平均値の算出は、例えば、次のように算出する構成としてもよい。俯瞰マップ上の各ブロックの中心を、Ｘ座標及びＺ座標の整数の座標値とする。そして、点ＡのＸ座標の値から、点ＤのＸ座標の値まで、１づつ値を変え、各Ｘ座標の値において、線分ＡＤのＺ座標の小数点以下を四捨五入する等により量子化する。各Ｘ座標における量子化されたＺ座標の各ブロックの頻度の値を合計する。それにより、線分ＡＤについての頻度の合計値が算出される。同様に、線分ＢＤについての頻度の合計値も算出する。そして、線分ＡＤ、線分ＢＤの頻度の合計値を、当該合計値に自身の頻度の値を算入された上記各ブロックの数で除算する。図１７に示す例の場合、○が付与されたブロックに対応する頻度の値が合計され、○が付与されたブロックの数である１１で除算される。
【００９２】
または、線分ＡＤ及び線分ＤＢが通過する俯瞰マップ上のブロック毎の頻度の値を積分することにより合計値を算出し、線分ＡＤ及び線分ＤＢの長さで除算することにより、頻度平均値の算出する構成としてもよい。
【００９３】
図１２のステップＳ５で、点Ｄを、点Ａから点Ｂまで移動させ、頻度平均値の算出を繰り返す。例えば、点Ｄを、点Ａ、Ｂを直径の端点とする円周上で、円の中心からの角度が所定の角度（例えば２°）ずつ変わるように移動させる。そして、弧ＡＢ間で頻度平均値が最大となる点ＤをＤｍａｘとし、出力する。
【００９４】
なお、図１７の場合、図１２のステップＳ８で算出される、線分ＡＤｍａｘ、及び線分ＢＤｍａｘの、Ｘ軸方向に対する角度は、それぞれ０度、９０度となる。
【００９５】
続いて、図１８を参照し、図１２のステップＳ３〜ステップＳ５で、自車と同じ車線（正面）を走行している先行車両の頻度分布を用いて、当該先行車両のコーナー等を検出する処理について説明する。
【００９６】
図１８は、自車と同じ車線を走行している先行車両の頻度分布を用いて、先行車両のコーナー等を検出する処理を説明する図である。
【００９７】
自車と同じ車線（正面）を走行している先行車両の頻度分布に、図１２のステップＳ３〜ステップＳ５の処理を行うと、頻度平均値が最大となる点Ｄｍａｘは、点Ａまたは点Ｂの位置となる。
【００９８】
なお、図１８の場合、図１２のステップＳ８で算出される、線分ＡＤｍａｘ、及び線分ＢＤｍａｘの、Ｘ軸方向に対する角度は、どちらも０度となる。
【００９９】
続いて、図１９を参照し、隣接車線を走る先行車両を検知する場合の実施形態による効果を説明する。
【０１００】
先行車両の最も近い位置であるコーナーを検出できない場合、先行車両を枠５１のようにしか表現できないため、車線からはみ出していると認識される可能性がある。コーナーの位置を検出する精度が低い場合も同様であり、隣接車線を走る先行車を、車線からはみ出していると認識され、自動で急ブレーキをかけるといった誤作動を起こしかねない。一方、実施形態によれば、枠５２のように、車両の側面を精度良く検知でき、隣接車線内を走っていると認識できる。
【０１０１】
続いて、図２０を参照し、側壁を検知する場合の実施形態による効果を説明する。
【０１０２】
物体の矩形を検出しただけでは当該物体の向きがわからず、枠５３のように、目前に物体が正対しているように認識される場合がある。一方、実施形態によれば、枠５４のように、左側の検出物体（側壁）が、厚さがほとんどなく、壁状の物体で、進行方向を向いているということを精度良く検出できる。その結果、走行に支障がないことを把握できる。
【０１０３】
実施形態では、先行車両のコーナーが直角に近いことを利用して、図１２のステップＳ３〜ステップＳ５のように、視野角が最小、及び最大に近い位置で、視差頻度の高い点Ａ、Ｂを直径の端点とする円周上の点で、頻度平均値が最大となる点を、先行車両のコーナーの位置であると判断する。それにより、車両の色、天候等により視差の誤差が大きい場合であっても、先行車両のコーナーの位置を高い精度で検出することができる。
【０１０４】
また、側壁等の一つの面で形成される物体の向きも検出することができるため、走行に支障のある物体か否かを容易に判断することが可能になる。
【０１０５】
なお、上述した実施形態におけるシステム構成は一例であり、用途や目的に応じて様々なシステム構成例があることは言うまでもない。
【符号の説明】
【０１０６】
１００  自車
１０１  撮像ユニット
１０２  画像解析ユニット（「検出装置」の一例）
１０３  表示モニタ
１０６  車両走行制御ユニット（「制御部」の一例）
１１０Ａ，１１０Ｂ  撮像部
１１３Ａ，１１３Ｂ  画像センサ
１１５Ａ，１１５Ｂ  画像センサコントローラ
１２０  画像処理基板
１３１  平行化画像生成部
１３２  視差画像生成部
１３３  Ｖマップ生成部
１３４  路面形状検出部
１３５  テーブル算出部
１３６  Ｕマップ生成部
１３７  リアルＵマップ生成部
１３８  コーナー検出部
１３８Ａ  取得部
１３８Ｂ  決定部
１３８Ｃ  検出部
【先行技術文献】
【特許文献】
【０１０７】
【特許文献１】特開２００９−１７６０８７号公報
【図１】
0006561688.tif 000002
【図２】
0006561688.tif 000003
【図３】
0006561688.tif 000004
【図４】
0006561688.tif 000005
【図５】
0006561688.tif 000006
【図６】
0006561688.tif 000007
【図７】
0006561688.tif 000008
【図８】
0006561688.tif 000009
【図９】
0006561688.tif 000010
【図１０】
0006561688.tif 000011
【図１１】
0006561688.tif 000012
【図１２】
0006561688.tif 000013
【図１３】
0006561688.tif 000014
【図１４】
0006561688.tif 000015
【図１５】
0006561688.tif 000016
【図１６】
0006561688.tif 000017
【図１７】
0006561688.tif 000018
【図１８】
0006561688.tif 000019
【図１９】
0006561688.tif 000020
【図２０】
0006561688.tif 000021