次に図面を参照してこの発明の実施の形態を説明する。図1は、この発明の一実施例の対象物認識装置の全体的なブロック図である。この実施例においては、この発明の対象物認識装置により認識すべき対象物を先行車両とする。
図1の撮像装置1は、自車両の前方を画像として撮像する装置である。撮像装置1は典型的には2次元のCCDであり、2次元に配列されたフォトセンサのアレイであってもよい。夜間の使用を考慮すると赤外線を用いた撮像装置にするのがよい。この場合、レンズの前に赤外線透過性のフィルタを置き、赤外線の光源を用いて一定の周期で対象物を照射し、対象物から反射する赤外線を感知するようにするのがよい。撮像装置1により撮像された画像はアナログ・デジタル変換器(図示せず)を介してデジタルデータに変換され、画像記憶部2に格納される。
対象物位置特定部3は、典型的にはレーザレーダまたはミリ波レーダであり、レーザまたはミリ波を対象物に照射し、対象物からの反射波を受信して、自車両から対象物までの距離および自車両に対する対象物の相対的な方位を測定する。レーダは、単一ビームを自車両前方のある角度の範囲にわたって走査するスキャン型レーダを用いることができ、または複数ビームを車両前方のある角度の範囲にわたって照射する複数ビーム型のレーダを用いてもよい。レーダからのビームがカバーする角度の範囲は、認識すべき対象物が撮像装置1により撮像される可能性のある範囲に合わせて設定される。この実施例では認識すべき対象物が先行車両なので、レーダは、少なくとも自車両が走行する自車線領域をカバーするよう設定される。または、1サイクル前に撮像装置1により撮像され、特定された先行車両の位置情報に基づいて、自車両前方の先行車両に確実にビームを照射させるよう、レーダのビームの方位を随時変向させるようにしてもよい。特定された先行車両の距離Dおよび方位θは、図1の対象物位置記憶部4に記憶される。
他の実施例では、対象物位置特定部3を、一対の光学式撮像装置を用いて実現することができる。図2は、その場合の三角計測法による距離の計測原理を説明する図である。簡単に説明するため、図2における一対の撮像装置は、それぞれ一次元のラインセンサとする。ラインセンサ28およびレンズ26は、他方の撮像装置を構成するラインセンサ29およびレンズ27と所定の間隔すなわち基線長Bだけ左右方向に間隔をおいて配置されており、それぞれレンズ26、27の焦点距離fに配置されている。
レンズ26、27のある平面から距離Dにある対象物の像が、ラインセンサ28ではレンズ26の光軸からd1ずれた位置に形成され、ラインセンサ29ではレンズ27の光軸からd2だけずれた位置に形成されるとすると、レンズ26、27の面から対象物25までの距離Dは、三角計測法の原理により、D=B・f/(d1+d2)で求められる。撮像された画像はデジタル化されるので、距離(d1+d2)はデジタル的に算出される。ラインセンサ28および29で得られる画像の片方または両方をシフトさせながら両画像のそれぞれ対応する画素の輝度を示すデジタル値の差の絶対値の総和を求め、これを相関値とする。相関値が最小値になるときの画像のシフト量が両画像の間の位置ずれ、すなわち(d1+d2)を示す。観念的には図2に示すようにラインセンサ28および29から得られる2つの画像を重なり合わせるために2つの画像を相対的に移動させねばならない距離が(d1+d2)である。自車両に対する対象物25の方位θは、たとえばレンズ27の光軸を基準とすると、tanθ=d2/fのように求めることができる。
上記の一対の撮像装置による距離の計測は、たとえば撮像された画像を多数のウィンドウに細分し、ウィンドウごとに計測される。計測された距離を、予め計測して保持されたウィンドウごとの道路までの距離と比較し、道路までの距離よりも短ければ、そのウィンドウについての計測距離を対象物までの距離と判断することができる。たとえば、撮像された画像のうち、ハンドル角などを考慮して自車線領域と考えられるウィンドウを走査して距離を計測することにより、自車両前方にある先行車両までの距離を計測することができる。
対象物位置特定部3を、上記に説明したレーダおよび一対の撮像装置を併用して実現することができる。たとえば、一対の撮像装置により撮像された画像による距離および方位の計測が困難な状況(前方の先行車両が自車両から遠方にある、またはトンネルなど薄暗い場所を走行していて先行車両の撮像が不安定となるような状況)ではレーダによって計測するというようにしてもよい。また、レーダによる距離および方位の計測は、自車両前方の一定の角度範囲に限定され、撮像装置ほど広い視界をカバーするのが困難なことがあるので、撮像装置により計測された先行車両の方位に合わせて、レーダのビームの向きを随時変えるようにしてもよい。しかしながら、この実施例では、対象物位置特定部3をミリ波レーダまたはレーザレーダのようなレーダにより実現し、自車両前方の先行車両の位置(距離および方位)を特定する。
図1の対象物認識部21は、撮像装置1により得られた画像内に処理領域を設定し、処理領域から抽出されたエッジを使用して先行車両の認識を行う。対象物認識部21による処理は、撮像装置1から取り込んだ画像および対象物位置特定部3により計測された対象物の位置に基づいて、ある検出時間間隔(たとえば、100ミリ秒)で実行される。以下、対象物認識部21による対象物認識の方法を詳細に説明する。
図1の処理領域設定部5は、対象物位置記憶部4に記憶された対象物の位置および予め決められた認識すべき対象物の大きさに基づいて、画像記憶部2に記憶された撮像画像内に処理領域を設定する。予め決められた認識すべき対象物の大きさは、処理領域設定部5により予め保持されており、認識すべき対象物全体を囲むことができるよう設定されている。
処理領域の設定方法を、図3および図4を参照して説明する。図3は、前方を走行する先行車両40を撮像した画像である。図3に示すように、撮像した画像においてxおよびy軸を定め、処理領域30を座標(Xa1,Ya1)および(Xa2,Ya2)を使用して設定する。
図4は、この処理領域30を設定する方法を示しており、図4の(a)は、処理領域を特定するx座標すなわちXa1およびXa2を求める方法を示す図であり、図4の(b)は、処理領域を特定するy座標すなわちYa1およびYa2を求める方法を示す図である。
図4の撮像装置1は、自車両に搭載されている撮像装置1を示しており、自車両前方を走行する先行車両40を撮像する。fは、撮像装置1に備えられたレンズ45の焦点距離であり、レンズの特性により定まる値である。WおよびHは、予め決められた先行車両の幅および高さであり、たとえばWは2メートル、Hは2.5メートルのように設定することができる。Dおよびθは、対象物位置記憶部4に格納された先行車両の自車両からの距離および自車両に対する相対的な方位を示す。hは、道路から自車両に搭載された撮像装置1のレンズ45の中心までの高さを示し、撮像装置1の自車両内の位置により定まる。
処理領域設定部5は、これらのパラメータW、H、hを用い、対象物位置記憶部4に記憶されたDおよびθを抽出して、以下の式により処理領域30を特定する座標(Xa1、Ya1)および(Xa2,Ya2)を算出する。
または、Ya1およびYa2については、自車両のピッチングを考慮して、以下のようにピッチング余裕分のαを加えるようにしてもよい。
こうして、座標(Xa1、Ya1)および(Xa2,Ya2)を使用して、撮像された画像内に処理領域30が図3のように設定され、またはピッチングを加味して図5のように設定される。
図1の水平エッジ抽出部7および垂直エッジ抽出部9は、処理領域設定部5により設定された処理領域内から、それぞれ水平方向のエッジおよび垂直方向のエッジを抽出する。この実施例では、水平方向および垂直方向の両方についてエッジを抽出する。水平および垂直エッジの両方とも基本的にが同じ方法で抽出されるので、ここでは水平エッジの抽出について説明する。ここで抽出されるエッジは、画像において輝度が変化する部分を示す。図6に、水平エッジ抽出部7により実行される、エッジを抽出するフローチャートを示す。最初に、水平エッジ抽出部7は、処理領域30内のそれぞれの画素に対して水平方向にフィルタリング処理を行い、水平方向に輝度差のあるエッジ部分を強調する(ステップ61)。図7の(a)は、水平方向のエッジを検出するための水平エッジ用フィルタの例であり、以下に述べる計算の都合上、図7の(b)のようにフィルタのそれぞれの要素に座標を付す。
処理領域30内を図7の水平エッジ用フィルタで走査し、処理領域30内のそれぞれの画素の輝度値に対して以下の式(7)の計算を施すことにより、水平方向のエッジを検出する。
ここで、xおよびyは、処理領域30内の画素の位置を特定する座標を示す。G(x,y)は、撮像されてデジタルデータに変換されたときの座標(x,y)にある画素の輝度値を示し、P(x,y)は、フィルタリング処理を行った後の座標(x,y)にある画素の輝度値を示す。F(i,j)は、図7の(a)に示す水平エッジ用フィルタの座標(i,j)にあるフィルタ要素の値を示す。水平エッジ用フィルタは、水平方向のエッジを強調するよう値が定められているので、上記の計算をそれぞれの画素に対して行うことにより、水平エッジを検出することができる。
他の実施形態では、式(7)の代わりに、以下の式(8)のように単純に垂直方向に隣あった画素間で輝度値の引き算を行う微分処理によりフィルタリング処理を行うことができる。ここで、nは任意の整数であり、たとえばn=1である。
次に、フィルタリング処理が行われたそれぞれの画素の輝度値Pに基づいて、輝度ヒストグラムを算出する(ステップ63)。この実施例で使用する輝度値は、256の階調(真黒「0」から真白「255」の間)を持つデジタルデータとして表される。図8は輝度ヒストグラムの例を示し、横軸は輝度値を示し、右にいくほど高い輝度値を示す。縦軸は、それぞれの輝度値をもつ画素数を示す。
このヒストグラムに基づいて、低輝度側の画素数と高輝度側の画素数が所定の割合となる輝度値を2値化しきい値として設定する(ステップ65)。たとえば、処理領域30の全画素数に対し、先行車両を示すエッジを構成する画素数の割合を予めある程度推定し、ある輝度値以上でその割合になる値をヒストグラムから求めて2値化しきい値とすることができる。この2値化しきい値を使用し、たとえば高輝度側を「1」、低輝度側を「0」として、処理領域30内のそれぞれの画素が2値化される(ステップ67)。こうして2値化された画素のうち、値「1」を持つ画素をエッジ点と呼ぶ。2値化しきい値の設定には既知の様々な方法があり、ここで用いる方法はその一例であり、ここで用いる方法はその一例であり、他の方法を用いてもよい。
次に、2値化によって得られた値「1」を持つ画素すなわちエッジ点を抽出し、エッジ点が連続していれば1つのまとまった水平エッジとしてグループ化する。エッジ点をグループ化する手法として、この実施例ではテンプレートを使用したラベリング処理を利用する。このラベリング処理を、図9を参照して説明する。
図9の(a)のT1〜T3はテンプレートにおける位置を示す。図9の(b)のV1〜V3は、あるエッジ点にT2が合うようテンプレートが置かれた時の、T1〜T3の位置にそれぞれ対応する画素の値(1またはゼロ)をそれぞれ示す。図9の(c)のL1〜L3は、あるエッジ点にT2が合うようテンプレートが置かれた時の、T1〜T3の位置にそれぞれ対応する画素に付与されたラベルを示す。
また、図9の(d)の表は、あるエッジ点にT2が合うようテンプレートが置かれたときの、T1〜T3の位置に対応する画素の値に基づいて、T2の位置に対応するエッジ点にどのようなラベルL2が付与されるかを示したものである。たとえば、T1〜T3の位置に対応する画素の値V1〜V3が条件4を満たせば、T2に対応するエッジ点のラベルL2には、T1に対応する画素のラベルL1と同じラベルが付与される。なお、条件1が満たされた時に付与されるラベル「L」は、まだ使用されていない新たなクラスタラベルを示す。図9の(e)に示すように、テンプレートのT2が処理領域30内のエッジ点に順次置かれるよう処理領域30を走査し、エッジ点にラベルL2を付与していく。
図10は、ラベル付与の処理を説明するための図である。図10の(a)は、2値化された画素(値ゼロは単なる「・」で示されている)を示す画像の一部の例である。画素のうち値1をもつエッジ点にテンプレートのT2が合うようテンプレートが置かれ、上記のようにラベル付与処理を行うと、図10の(b)に示すように連続したエッジ点に同じラベルが付与される。
図9の(d)の条件5を満たす場合には、テンプレートのT1およびT3に対応するラベルを連結し、テンプレートT3に対応するラベルをテンプレートT1に対応するラベルに置き換える。たとえば、図10の(b)のエッジ点91と92およびエッジ点92と93は図9の(d)の条件5を満たすので、結果としてラベルDおよびラベルEをもつエッジ点のすべてが、ラベルCに付与しなおされる(図10の(c))。このラベルを連結する処理は、処理領域30内のすべてのエッジ点を走査してラベルを付与した後に行ってもよい。ラベルを連結することにより、連続するエッジ点はもれなく同じラベルが付与された1つのエッジ群となる。図10の(c)には、ラベルA、BおよびCの3つのエッジ群が示される。このように、水平方向のそれぞれのエッジ群すなわち水平エッジが抽出される。
垂直エッジ抽出部9は、図6のステップ61のフィルタリング処理で、水平エッジ用フィルタの代わりに図11に示す垂直エッジ用フィルタを使用することをのぞき、水平エッジと同様の手法で処理領域30内の垂直エッジを抽出する。
図1に戻り、水平エッジ判定部11は、認識すべき対象物の予め設定された特徴に基づいて、水平エッジ抽出部9により抽出されたエッジが、認識すべき対象物を示すかどうか判定する。たとえば水平エッジの場合、この実施例のように認識すべき対象物が先行車両とすると、先行車両が画像に表されたときの特徴、すなわち箱形で水平エッジが比較的多く、しかも直線的なエッジを持っていることなどに基づいてエッジ判定を行うことができる。具体的には、
1)処理領域設定部5により設定された処理領域の境界線上の画素を含むエッジは、先行車両以外のものを示すエッジと判定する。
2)水平エッジ抽出部7により抽出された水平エッジの直線性を調べ、直線性の悪いエッジは、先行車両以外のものを示すエッジと判定する。
3)水平エッジ抽出部7により抽出された水平エッジの傾きを調べ、傾きが大きいエッジは先行車両以外のものを示すエッジと判定する。
図12は、上記1)〜3)の水平エッジのパターンの例を示す。図12の(a)は撮像された画像を示し、先行車両40の手前に路面標識120が、向こう側に山の稜線130が、サイドに白線140が写し出されている。路面標識120は、処理領域30を横切るようにして広がっている。図12の(b)は、水平エッジ抽出部7により図12の(a)の画像に対して抽出された水平エッジの2値化画像を示す。この2値化画像には、先行車両40を示すエッジだけでなく路面標識120を示すエッジ125および126、山の稜線130の一部を示すエッジ135〜137、および白線140を示すエッジ145および146が抽出されている。
処理領域30は、前述したように先行車両を囲むよう設定されているので、処理領域を横切る水平エッジは先行車両以外のものを示すと判定することができる。具体的には、処理領域30は、前述したように座標(Xa1,Ya1)および(Xa2,Ya2)で特定されるので、水平エッジ判定部11は、水平エッジを構成する画素のx座標値を調べ、x座標値がXa1またはXa2を持つエッジ点があるならば、その水平エッジを処理領域30の境界線を横切るエッジと判断し、その水平エッジは先行車両以外のものを示すと判定する。図12の(b)の例では、エッジ125または126が、x座標値Xa1またはXa2を持つエッジを含むので、エッジ125および126を先行車両以外のものを示すと判定する。
さらに、先行車両を示す水平エッジは水平方向に曲線を描くことはないので、水平エッジ判定部11は、このような直線性の悪いエッジ135〜137は、先行車両以外のものを示すと判定する。水平エッジ判定部11は、抽出された水平エッジを構成するエッジ点のそれぞれのy座標値の分散を算出し、y座標が、予め決められた所定値以上にわたって分散するならば、その水平エッジは先行車両以外のものを示すと判定する。
さらに、先行車両を示す水平エッジは水平方向に大きな傾きを持つことはないので、水平エッジ判定部11は、このような傾きの大きいエッジ145および146は、先行車両以外のものを示すと判定する。水平エッジ判定部11は、水平エッジを構成するエッジ点のxおよびy座標を用いて最小二乗法による直線近似を行い、その傾きを調べ、傾きが予め決められた所定値以上であるならば、その水平エッジは先行車両以外のものを示すと判定する。
こうして水平エッジを判定することにより、先行車両を示すと判定された水平エッジと先行車両以外のものを示すと判定された水平エッジとは、それぞれ区別できるよう水平エッジ記憶部12に記憶される。たとえば、先行車両を示すと判定された水平エッジを構成するエッジ点の画素の値を「1」のまま記憶し、先行車両以外のものを示すと判定された水平エッジを構成するエッジ点の画素の値をゼロに反転して記憶する。または、先行車両以外のものを示すと判定された水平エッジを構成するエッジ点にのみ何らかのフラグを付けて記憶し、その後の処理に使用しないようにすることもできる。図12の(c)は、先行車両以外のものを示すと判定されたエッジ125および126、135〜137、145および146を除外した後の水平エッジを示す2値化画像である。
処理領域の境界線上の画素を含む水平エッジを示すものとして、たとえば背景の建築物、路面上の停止線等の標識が考えられ、直線性の悪い水平エッジを示すものとして、たとえば樹木などの自然物、店の看板として使用される旗などが考えられ、傾きの大きい水平エッジを示すものとして、たとえばガードレール、追い越し禁止車線、路側構造体などが考えられる。上記の処理を行うことにより、このような先行車両以外のものを示す水平エッジに基づいた先行車両の誤認識をなくすことができる。
こうして、認識すべき対象物の予め設定された特徴に基づいて、水平エッジが認識すべき対象物を示すかどうか判定することができる。上記の1)〜3)の判定条件は、そのうちのいずれかを使用して判定してもよく、またはいくつかを併用して判定してもよい。さらに、認識すべき対象物の特徴を表すような新たな判定条件を加えて判定するようにしてもよい。上記の予め設定された特徴は、認識すべき対象物が何であるかに依存して、たとえば対象物の大きさ、形状、輪郭などの対象物の特徴に応じて変えることができる。
垂直エッジ判定部13は、水平エッジ判定部11によるものと同様の手法で、垂直エッジ抽出部9により抽出されたエッジが、先行車両を示すかどうか判定する。先行車両を示すと判定された垂直エッジと先行車両以外のものを示すと判定された垂直エッジとは、それぞれ区別できるよう垂直エッジ記憶部14に記憶される。
図1に戻り、対象物外形認識部15は、水平エッジ記憶部12および垂直エッジ記憶部14にそれぞれ記憶された、対象物を示すと判定されたエッジに基づいて対象物の外形を認識する。この実施例では認識すべき対象物が先行車両であるので、画像に表されたときに対象物を箱形ですることができ、したがって対象物の外形を上端、下端、左端および右端の位置で認識する。
図13は、対象物外形認識部15の詳細を示すブロック図である。図14の(a)は、水平エッジ判定部11により先行車両を示すと判定された水平エッジを表す2値化画像である。図14の(b)は、図14の(a)に対応するヒストグラムであり、図のようにy軸を定め、処理領域30内の水平エッジを構成するエッジ点のy座標ごとの数を表す。水平エッジ端候補選択部31は、このヒストグラムを算出し、所定値P1以上のエッジ点を有する水平エッジで、かつ処理領域30の上の境界線Ya1および下の境界線Ya2に最も近い水平エッジ131および132をそれぞれ選択し、この水平エッジに対応するy座標値をそれぞれ先行車両の上端候補および下端候補として選択する。所定値P1は、処理領域30の水平方向の幅および認識すべき対象物の水平方向の幅に応じて定められる。所定値P1以上のエッジ点を有し、処理領域30の境界線に最も近い水平エッジを選択するのは、そのような水平エッジが先行車両の上端および下端の位置を最もよく表すからである。図14の(b)のヒストグラムでは、先行車両の上端候補はYch1により特定され、下端候補はYch2により特定される。
次に、水平エッジ端候補選択部31は、図14の(b)のヒストグラムに基づいて、上端候補Ych1および下端候補Ych2の間に存在し、最も先行車両の特徴を表す水平エッジを選択する。この実施例では、所定値P1以上の最も多くのエッジ点を有する(すなわち、水平方向に最も長い)水平エッジ133を選択し、その水平エッジ133の左端および右端に対応するx座標値を、それぞれ先行車両の左端候補および右端候補として選択する。最も長い水平エッジを選択するのは、この実施例のように認識すべき対象物が先行車両である場合、画像にほぼ箱形で表されるので、最も長い水平エッジが先行車両の左端および右端の位置を最もよく表すと考えることができるからである。ここで使用される所定値P1は、上記の上端および下端候補を選択するための所定値P1よりも大きな値でもよい。また、左端および右端候補を選択するための水平エッジは、先に選択された上端および下端候補を選択するための水平エッジと同じであってもよい。図14の(a)では、先行車両の左端候補はXch1により特定され、右端候補はXch2により特定される。こうして、水平エッジのみから先行車両の上端、下端、左端および右端候補がそれぞれ選択される。
先行車両の左端および右端の位置を表す水平エッジを選択することができない場合(たとえば、上端候補Ych1および下端候補Ych2のいずれかまたは両方を選択できないために、左端および右端候補を選択するための水平エッジを選択することができない場合)には、水平エッジ端候補選択部31は、所定回数前(前述したように、対象物認識処理はある時間間隔ごとに実行される)に認識された先行車両の上端、下端、左端および右端の位置を表すxおよびy座標値に基づいて、今回認識される先行車両の上端、下端、左端および右端を推定し、以下の式のように、それぞれ推定された端推定値pY1、pY2、pX1およびpX2を先行車両の上端、下端、左端および右端候補とすることができる。
端推定値は、所定回数前に認識された先行車両の上端、下端、左端および右端の位置そのものをそれぞれ用いることもでき、または車体の挙動を検出する手段により得られる車体の挙動値(たとえば、舵角やヨー)や相対速度の変化に基づいて補正された値を用いてもよい。また、対象物情報記憶部18に時系列に記憶されている過去複数回にわたって認識された先行車両の位置に基づいて推定した値であってもよい。
また、水平エッジ端候補選択部31が、水平エッジから上端および下端候補を選択することができたが、左端および右端候補を選択できなかった場合(たとえば、上端および下端候補より大きい所定値を使用して左端および右端候補を選択する場合に、その所定値以上の水平エッジを選択できなかった場合)、上端および下端は水平エッジから選択されたものを候補とし、左端および右端は、上記の左端推定値pX1および右端推定値pX2を候補とするようにしてもよい。
図15の(a)は、垂直エッジ判定部13により先行車両を示すと判定された垂直エッジを表す2値化画像である。図15の(b)は、図15の(a)に対応するヒストグラムであり、図のようにx軸を定め、処理領域30内の水平エッジを構成するエッジ点のx座標ごとの数を表す。垂直エッジ端候補選択部33はこのヒストグラムを算出し、水平エッジ端候補選択部31により選択された左端候補Xch1および右端候補Xch1の近傍にそれぞれあり、所定値P2以上の最も多くのエッジ点を有する(すなわち、垂直方向に最も長い)垂直エッジ141および142をそれぞれ選択する。このように、認識すべき対象物が先行車両の場合は水平エッジが比較的多く抽出されるので、先行車両の左端および右端を表す水平エッジに基づいて垂直エッジを選択するのが好ましい。また、最も長い垂直エッジを選択するのは、それが認識すべき先行車両の左端および右端の位置を最もよく表すと考えることができるからである。選択されたそれぞれの垂直エッジに対応するx座標値Xcv1およびXcv2が、それぞれ先行車両の左端および右端候補として選択される。
次に、垂直エッジ端候補選択部33は、垂直エッジ141および142の上端のy座標値のうち、より上方のy座標値を持つ方の垂直エッジ(ここでは、エッジ141の上端よりもエッジ142の上端の方が画像においてより上方にあるので、エッジ142)を選択し、そのy座標値Ycv1を先行車両の上端候補として選択する。さらに、垂直エッジ141および142の下端のy座標値のうち、より下方のy座標値Ycv2をもつ方の垂直エッジ(ここでは、エッジ141)を選択し、そのy座補値を先行車両の下端候補として選択する。左端および右端にあるそれぞれの垂直エッジのうち、より上方およびより下方にある端をそれぞれ先行車両の上端および下端候補とするのは、先行車両を垂直方向に大きめに判断した方が、先行車両の位置の認識に余裕をもたせられるからである。こうして、垂直エッジのみから先行車両の上端、下端、左端および右端候補がそれぞれ選択される。
図13に戻り、端認識部35は、水平エッジ端候補選択部31により端候補に選択されたYch1、Ych2、Xch1およびXch2、および垂直エッジ端候補選択部33により端候補に選択されたYcv1、Ycv2、Xcv1およびXcv2に基づいて、先行車両の上端、下端、左端および右端の位置を認識する。これを、図16のフローチャートを参照しつつ説明する。
垂直エッジ端候補選択部33が先行車両の左端および右端候補の両方とも選択できた場合には、これら選択された左端候補Xcv1および右端候補Xcv2を、それぞれ先行車両の左端X1および右端X2と認識する(ステップ161および162)。垂直エッジ端候補選択部33により選択された左端および右端候補は、先行車両の左端および右端の位置を表す水平エッジに基づいて選択されたものなので、それらを先行車両の左端および右端の位置と認識することにより、もっとも正確に先行車両の外形を認識することができる。
先行車両の上端および下端については、上端候補Ych1およびYcv1のうち画像においてより上方にある方を先行車両の上端Y1と認識し、下端候補Ych2およびYcv2のうち画像においてより下方にある方を先行車両の下端Y2と認識する(ステップ162)。先行車両を垂直方向に大きめに認識する方が、先行車両の位置の認識に余裕をもたせることができるので、このようにより上方およびより下方にある端候補を先行車両の上端および下端と認識するのが好ましい。または、上端候補Ych1およびYcv1のうち、過去に認識された先行車両の位置に基づいて推定された上端推定値pY1に近い方を先行車両の上端Y1と認識し、下端候補Ych2およびYcv2のうち、下端推定値pY2に近い方を先行車両の下端Y2と認識するようにしてもよい。特に、先行車両との相対速度が変わらない場合には、過去に認識された先行車両の位置に基づいて先行車両の上端および下端の位置を正確に認識することができる。
次に、垂直エッジ端候補選択部33が先行車両の左端候補を選択できなかった場合、水平エッジ端候補選択部31により選択された左端候補Xch1を先行車両の左端X1と認識し、垂直エッジ端候補選択部33により選択された右端候補Xcv2を先行車両の右端X2と認識する(ステップ163および164)。先行車両の上端Y1および下端Y2は、上記のステップ162と同様に認識される。
図17は、垂直エッジから左端候補を選択できない場合を示す。図17の(a)は、処理領域30内に先行車両40が写っている画像を示す。図17の(b)は、水平エッジ端候補選択部31により選択された上端、下端、左端および右端候補を示す。図17の(c)は、垂直エッジ端候補選択部33により選択された上端、下端および右端候補を示し、左端候補は左側の垂直エッジが選択できなかったために選択されていない。図17の(d)は、端認識部35により、水平エッジ端候補選択部31で選択された左端候補Xch1が先行車両の左端X1として認識されたことを示す図であり、こうして先行車両40の外形100を認識することができる。
同様に、垂直エッジ端候補選択部33が先行車両の右端候補を選択できなかった場合、水平エッジ端候補選択部31により選択された右端候補Xch2を先行車両の右端X2と認識し、垂直エッジ端候補選択部33により選択された左端候補Xcv1を先行車両の左端X1と認識する(ステップ165および166)。また、先行車両の上端Y1および下端Y2は、上記のステップ162と同様に認識される。
次に、垂直エッジ端候補選択部33が先行車両の左端および右端候補の両方を選択できなかった場合、水平エッジ端候補選択部31により上端、下端、左端および右端候補が選択されているならば、選択された水平エッジの上端、下端、左端および右端候補Ych1、Ych2、Xch1およびXch2を、それぞれ先行車両の上端、下端、左端および右端Y1、Y2、X1およびX2と認識する(ステップ167および168)。垂直エッジ端候補選択部33により端候補がまったく選択されていないので、水平エッジのみに基づいて先行車両の上端、下端、左端および右端の位置を認識する。こうして、水平エッジのみから先行車両の外形を認識することができる。
図18は、垂直エッジから先行車両の左端および右端候補の両方を選択できない場合を示す。図18の(a)は、処理領域30内に先行車両40が写っている画像を示す。図18の(b)は、水平エッジ端候補選択部31により選択された上端、下端、左端および右端候補を示す。図18の(c)は、垂直エッジ端候補選択部33が垂直エッジを全く選択できなかったために上端、下端、左端および右端候補のすべてが選択されていないことを示す。図18の(d)は、端認識部35により、水平エッジ端候補選択部31により選択された上端、下端、左端および右端候補Ych1、Ych2、Xch1およびXch2が、先行車両の上端、下端、左端および右端Y1、Y2、X1およびX2と認識されたことを示す図であり、こうして先行車両40の外形100が認識される。認識すべき対象物が先行車両であり、比較的多くの水平エッジが抽出されるので、水平エッジのみからでも先行車両の外形を認識することができる。
最後に、垂直エッジ端候補選択部33が左端および右端候補の両方を選択できず、かつ水平エッジ端候補選択部31が上端、下端、左端および右端候補を選択できずに過去に認識された先行車両の位置に基づく端推定値を使用しているならば、「先行車両無し」と判断する(ステップ167および169)。垂直エッジからも水平エッジからも先行車両の端を示す端候補を選択できないので、先行車両が存在しないとみなすことができるからである。
このように、垂直エッジから左端および右端候補のいずれかまたは両方を選択できなくても、水平エッジから上端、下端、左端および右端候補を選択して対象物の外形を認識することができるので、対象物の外形を認識できる確度が向上する。また、水平エッジから上端、下端、左右端候補のいずれかを選択できなくても、過去に認識された対象物の位置に基づいて対象物の上端、下端、左端および右端を推定して端候補とするので、対象物の外形を認識できる確度が向上する。したがって、実際には対象物が存在するにかかわらず、水平エッジまたは垂直エッジから上端、下端、左端および右端候補を選択できないがために「対象物無し」と誤って認識されることがなくなり、対象物を認識する確度が向上する。
図1に戻り、対象物情報出力部17は、対象物外形認識部15により認識された先行車両の外形情報すなわち先行車両の上下左右端の位置を車両走行制御装置19に出力する。さらに、対象物情報出力部17は、対象物外形認識部15から受け取った先行車両に関する情報を対象物情報記憶部18に記憶し、記憶された情報は、前述したように水平エッジ端候補選択部31により過去の先行車両情報に基づいて端を推定するときに使用される。
車両走行制御装置19は、受け取ったこれらの情報に基づいて車両の走行制御を行う。たとえば、先行車両までの距離が適切であるよう自車両を制御したり、先行車両との車間距離がある所定値以下になった場合に運転者に音声やアラームで警告を発したり、自車両のエンジンを制御して強制的に減速させたりなどの制御をすることができる。
図1に示した処理領域設定部5、水平エッジ抽出部7、垂直エッジ抽出部9、水平エッジ判定部11、垂直エッジ判定部13、水平エッジ記憶部12、垂直エッジ記憶部14、対象物外形認識部15、対象物情報出力部17および車両走行制御装置19は、中央演算処理装置(CPU)、制御プログラムおよび制御データを格納する読み出し専用メモリ、CPUの演算作業領域を提供し様々なデータを一時記憶することができるランダムアクセスメモリ(RAM)で構成することができる。画像記憶部2、対象物位置記憶部4、水平エッジ記憶部12、垂直エッジ記憶部14および対象物情報記憶部18は、1つのRAMのそれぞれ異なる記憶領域を使用して実現することができる。また、各種の演算で必要となるデータの一時記憶領域も同じRAMの一部分を使用して実現することができる。
また、この発明の対象物認識装置をエンジンの電子制御ユニット(ECU)、ブレーキ制御ECUその他のECUとLAN接続して対象物認識装置からの出力を車両の全体的な制御に利用することができる。