以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値などは、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書および図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。
(環境認識システム100)
図1は、環境認識システム100の接続関係を示したブロック図である。環境認識システム100は、自車両1内に設けられた、撮像装置110と、車外環境認識装置120と、車両制御装置(ECU:Engine Control Unit)130とを含んで構成される。
撮像装置110は、CCD(Charge-Coupled Device)やCMOS(Complementary Metal-Oxide Semiconductor)等の撮像素子を含んで構成され、自車両1の前方に相当する環境を撮像し、3つの色相(R(赤)、G(緑)、B(青))からなるカラー画像やモノクロ画像を生成することができる。ここでは、撮像装置110で撮像されたカラー画像を輝度画像として採用し、後述する距離画像と区別する。
また、撮像装置110は、自車両1の進行方向側において2つの撮像装置110それぞれの光軸が略平行になるように、略水平方向に離隔して配置される。撮像装置110は、自車両1の前方の検出領域に存在する立体物を撮像した画像データを、例えば1/60秒のフレーム毎(60fps)に連続して生成する。ここで、認識する立体物は、車両、歩行者、信号機、道路(進行路)、ガードレール、建物といった独立して存在する立体物のみならず、テールランプやウィンカー、信号機の各点灯部分等、立体物の一部として特定できる物も含む。以下の実施形態における各機能部は、このような画像データの更新を契機としてフレーム毎に各処理を遂行する。
車外環境認識装置120は、2つの撮像装置110それぞれから画像データを取得し、所謂パターンマッチングを用いて視差を導き出し、導出された視差情報(後述する相対距離に相当)を画像データに対応付けて距離画像を生成する。輝度画像および距離画像については後ほど詳述する。また、車外環境認識装置120は、輝度画像に基づく輝度、および、距離画像に基づく自車両1との相対距離(奥行距離)を用いて自車両1前方の検出領域における立体物がいずれの特定物に対応するかを特定する。
車外環境認識装置120は、特定物を特定すると、その特定物(例えば、先行車両)を追跡しつつ、特定物と自車両1とが衝突する可能性が高いか否かの判定を行う。ここで、衝突の可能性が高いと判定した場合、車外環境認識装置120は、その旨、運転者の前方に設置されたディスプレイ122を通じて運転者に警告表示(報知)を行うとともに、車両制御装置130に対して、その旨を示す情報を出力する。
車両制御装置130は、ステアリングホイール132、アクセルペダル134、ブレーキペダル136を通じて運転者の操作入力を受け付け、操舵機構142、駆動機構144、制動機構146に伝達することで自車両1を制御する。また、車両制御装置130は、車外環境認識装置120の指示に従い、駆動機構、制動機構を制御する。
以上、説明したように、環境認識システム100では、輝度画像に写る立体物を、自車両1前方に存在する、例えば先行車両と特定し、先行車両への追従制御や、先行車両との衝突回避制御を実行する。
以下では、車外環境認識装置120の構成について詳述する。ここでは、本実施形態に特徴的な立体物を浮遊物と特定する手順について詳細に説明し、本実施形態の特徴と無関係の構成については説明を省略する。
(車外環境認識装置120)
図2は、車外環境認識装置120の概略的な機能を示した機能ブロック図である。図2に示すように、車外環境認識装置120は、I/F部150と、データ保持部152と、中央制御部154とを含んで構成される。
I/F部150は、撮像装置110や車両制御装置130との双方向の情報交換を行うためのインターフェースである。データ保持部152は、RAM、フラッシュメモリ、HDD等で構成され、以下に示す各機能部の処理に必要な様々な情報を保持し、また、撮像装置110から受信した輝度画像を一時的に保持する。
中央制御部154は、中央処理装置(CPU)、プログラム等が格納されたROM、ワークエリアとしてのRAM等を含む半導体集積回路で構成され、システムバス156を通じて、I/F部150、データ保持部152等を制御する。また、本実施形態において、中央制御部154は、画像処理部160、3次元位置導出部162、立体物特定部164、浮遊物特定部166、特定物特定部168、点数リセット部170としても機能する。以下、このような機能部について大凡の目的を踏まえ、フレームごとに行われる画像処理、立体物特定処理、浮遊物特定処理(低輝度浮遊物特定処理、高輝度浮遊物特定処理)、特定物特定処理、点数リセット処理について、順に詳細な動作を説明する。
(画像処理)
画像処理部160は、2つの撮像装置110それぞれから輝度画像を取得し、一方の輝度画像から任意に抽出したブロック(例えば水平4画素×垂直4画素の配列)に対応するブロックを他方の輝度画像から検索する、所謂パターンマッチングを用いて視差を導き出す。ここで、「水平」は画面横方向を示し、「垂直」は画面縦方向を示す。
このパターンマッチングとしては、2つの輝度画像間において、任意の画像位置を示すブロック単位で輝度(Y色差信号)を比較することが考えられる。例えば、輝度の差分をとるSAD(Sum of Absolute Difference)、差分を2乗して用いるSSD(Sum of Squared intensity Difference)や、各画素の輝度から平均値を引いた分散値の類似度をとるNCC(Normalized Cross Correlation)等の手法がある。画像処理部160は、このようなブロック単位の視差導出処理を検出領域(例えば水平600画素×垂直180画素)に映し出されている全てのブロックについて行う。ここでは、ブロックを水平4画素×垂直4画素としているが、ブロック内の画素数は任意に設定することができる。以下、かかる視差情報を導出する単位となるブロックを視差ブロックと称する。
ただし、画像処理部160では、検出分解能単位である視差ブロック毎に視差を導出することはできるが、その視差ブロックがどのような立体物の一部であるかを認識できない。したがって、視差情報は、立体物単位ではなく、検出領域における検出分解能単位(例えば視差ブロック単位)で独立して導出されることとなる。ここでは、このようにして導出された視差情報(後述する相対距離zに相当)を輝度画像に対応付けた画像を距離画像という。
図3は、輝度画像212と距離画像214を説明するための説明図である。例えば、2つの撮像装置110を通じ、検出領域216について図3(a)のような輝度画像212が生成されたとする。ただし、ここでは、理解を容易にするため、撮像装置110それぞれが生成した2つの輝度画像212の一方のみを模式的に示している。本実施形態において、画像処理部160は、このような輝度画像212から視差ブロック毎の視差を求め、図3(b)のような距離画像214を生成する。距離画像214における各視差ブロックには、その視差ブロックの視差が関連付けられている。ここでは、説明の便宜上、視差が導出された視差ブロックを黒のドットで表している。
(3次元位置導出処理)
図2に戻って説明すると、3次元位置導出部162は、画像処理部160で生成された距離画像214に基づいて検出領域216内の視差ブロック毎の視差情報を、所謂ステレオ法を用いて、水平距離x、高さyおよび相対距離zを含む実空間における3次元位置に変換する。ここで、ステレオ法は、三角測量法を用いることで、立体部位(画素または複数の画素からなるブロック)の距離画像214における視差からその立体部位の撮像装置110に対する相対距離zを導出する方法である。このとき、3次元位置導出部162は、立体部位の相対距離zと、立体部位と同相対距離zにある道路表面上の点と立体部位との距離画像214上の検出距離とに基づいて、立体部位の道路表面からの高さyを導出する。そして、導出された3次元位置が示された位置情報を改めて距離画像214に対応付ける。かかる相対距離zの導出処理や3次元位置の特定処理は、様々な公知技術を適用できるので、ここでは、その説明を省略する。
(立体物特定処理)
立体物特定部164は、3次元位置の差分が所定範囲内にある立体部位同士をグループ化して立体物とする。具体的に、立体物特定部164は、距離画像214における、水平距離xの差分、高さyの差分および相対距離zの差分が予め定められた範囲(例えば0.1m)内にある立体部位同士を、同一の特定物に対応すると仮定してグループ化する。こうして、仮想的な立体グループである立体物が生成される。上記の範囲は実空間上の距離で表され、製造者や搭乗者によって任意の値に設定することができる。また、立体物特定部164は、グループ化により新たに追加された立体部位に関しても、その立体部位を基点として、水平距離xの差分、高さyの差分および相対距離zの差分が所定範囲内にある立体部位をさらにグループ化する。結果的に、同一の特定物と仮定可能な立体部位全てがグループ化されることとなる。
なお、ここでは、水平距離xの差分、高さyの差分および相対距離zの差分をそれぞれ独立して判定し、全てが所定範囲に含まれる場合のみ同一のグループとしているが、他の計算によることもできる。例えば、水平距離xの差分、高さyの差分および相対距離zの差分の二乗平均√((水平距離xの差分)2+(高さyの差分)2+(相対距離zの差分)2)が所定範囲に含まれる場合に同一のグループとしてもよい。かかる計算により、立体部位同士の実空間上の正確な距離を導出することができるので、グループ化精度を高めることができる。
また、立体物特定部164は、予め定められた範囲内にある立体部位同士をグループ化した立体物が含まれる、外形線が水平線および垂直線からなる矩形状(以下、単に矩形状という)の領域(以下、ウィンドウとも呼ぶ)を設定する。
さらに、立体物特定部164は、今回のフレームにおいて立体物が特定されると、当該立体物の位置情報(立体物としてグループ化された立体部位の位置情報)と、前回のフレームにおいて特定された立体物の位置情報とに基づいて、今回のフレームにおいて特定された立体物と、前回のフレームにおいて特定された立体物との対応関係を判定する。そして、立体物特定部164は、今回のフレームにおいて特定された立体物と、前回のフレームにおいて特定された立体物とが対応すると判定すると、これらの立体物同士を関連付ける。
図4は、立体物特定処理を例示した説明図である。例えば、図4(a)のような輝度画像212において、立体物特定部164は、図4(b)に一点鎖線で囲んだように、距離画像214に基づく位置情報を用いて、水平距離xの差分、高さyの差分および相対距離zの差分が予め定められた範囲内にある浮遊物220の立体部位同士をグループ化する。このとき、立体物特定部164は、立体物(立体部位の集合体)とともに、立体物が含まれるウィンドウ222を設定する。なお、図4(b)では、説明の便宜上、水平距離xおよび相対距離zの関係のみ記載し、高さyについては省略している。
(浮遊物特定処理)
浮遊物特定部166は、立体物特定部164により特定された立体物から、浮遊物を特定する。
ところで、夜など全体的に暗い環境(以下、低輝度シーンともよぶ)で、黒色の車両や黒服の歩行者など、極端に輝度が低い物体が撮像された輝度画像212においては、極端に輝度が低い物体が立体物として特定される。この輝度画像212では、極端に輝度が低い物体にかかる立体物と背景との輝度差が小さくなるため、非浮遊物にかかる立体物のエッジ成分が減少する。
また、昼など全体的に明るい環境(以下、高輝度シーンともよぶ)で撮像された輝度画像212においては、輝度値が全体的に高くなる。したがって、非浮遊物が立体物として特定された場合、輝度画像212における立体物および背景の輝度値がともに増加し、輝度値が最大値になる画素も増加することから、立体物と背景との輝度差が小さくなるため、非浮遊物にかかる立体物のエッジ成分が減少する。
このように、非浮遊物のエッジ成分が減少すると、非浮遊物が立体物として特定された場合の輝度ヒストグラムと、浮遊物が立体物として特定された場合の輝度ヒストグラムとが似たような輝度分布となってしまい、輝度ヒストグラムを用いて、非浮遊物と浮遊物とを区別して特定することが困難となる。
したがって、低輝度シーンおよび高輝度シーンにおいては、輝度ヒストグラムを用いて浮遊物を精度よく特定することができないといった問題が生じ得る。そこで、本実施形態においては、低輝度シーンおよび高輝度シーンそれぞれに応じた、立体物の輝度値に基づく判定条件(第1判定条件)で浮遊物を特定する特定処理(低輝度浮遊物特定処理、高輝度浮遊物特定処理)により、立体物特定部164で特定した立体物から浮遊物を特定する。
(低輝度浮遊物特定処理)
図5は、低輝度浮遊物特定処理を例示した説明図である。浮遊物特定部166は、低輝度シーンに応じた判定条件の浮遊物の特定処理として低輝度浮遊物特定処理を行う。図5(a)に示すように、浮遊物特定部166は、3次元位置導出部162により導出された立体部位の位置情報に基づいて、ウィンドウ222内における立体物の輪郭を判定し、輪郭によって形成された内側の領域をアクセス領域224として設定する。
そして、図5(b)に示すように、浮遊物特定部166は、3次元位置導出部162により導出された立体部位の位置情報に基づいて、鉛直方向の任意の位置におけるアクセス領域224の水平方向の幅(アクセス領域幅)Wを導出する。その後、図5(c)に示すように、浮遊物特定部166は、アクセス領域224の境界、すなわち、立体物の輪郭を基準として、水平方向における左右方向それぞれに対して、アクセス領域幅Wの1/6の範囲である輝度検出範囲W/6を設定する。また、浮遊物特定部166は、同様にして、鉛直方向の全ての位置に対応する画素ごとに、アクセス領域幅W、および、輝度検出範囲W/6を設定する。
そして、浮遊物特定部166は、輝度検出範囲W/6が設定された立体物側(アクセス領域224側)の画素の輝度値の平均値(平均輝度値)と、輝度検出範囲W/6が設定された立体物とは反対側(背景側でありアクセス領域224の境界の外側)の画素の平均輝度値とを導出する。
浮遊物特定部166は、導出した立体物側の平均輝度値と背景側の平均輝度値との輝度差が予め設定された輝度差閾値以上であった場合、立体物が浮遊物らしい特徴を有すると判断して低輝度浮遊物点数に+1を積算(1を加算)する。一方、浮遊物特定部166は、導出した立体物側の平均輝度値と背景側の平均輝度値との輝度差が予め設定された輝度差閾値未満であった場合、立体物が浮遊物らしい特徴を有していない、つまり、立体物が非浮遊物らしい特徴を有すると判断して低輝度浮遊物点数に−1を積算(1を減算)する。
ここで、輝度差閾値は、白色であり輝度値が比較的高い浮遊物と、低輝度シーンにおいて輝度値が低い物体(例えば、黒色の車両や歩行者)とを考慮して、背景の輝度値に対して浮遊物とされる立体物が特定し得るように設定される。
このように、浮遊物特定部166は、ウィンドウ222における立体物の輪郭を境界とした立体物側(アクセル領域222側)の平均輝度値と背景側(アクセル領域222の外側)の平均輝度値との輝度差が輝度差閾値以上であった場合には、立体物が浮遊物らしい特徴を有すると判定する。したがって、低輝度シーンであっても、立体物と背景との輝度差に基づいて、立体物が浮遊物らしい特徴を有するか否かを判断することができるので、精度よく浮遊物を特定することができる。
(高輝度浮遊物特定処理)
図6は、高輝度浮遊物特定処理を例示した説明図である。浮遊物特定部166は、高輝度シーンに適した浮遊物の特定処理として高輝度浮遊物特定処理を行う。図6(a)に示すように、浮遊物特定部166は、低輝度浮遊物特定処理と同様に、ウィンドウ222内における立体部位の集合体のみの領域をアクセス領域224として設定する。また、浮遊物特定部166は、ウィンドウ222を垂直方向および水平方向それぞれに対して均等に3分割した9つの分割領域226a〜226iを設定する。
そして、図6(b)に示すように、浮遊物特定部166は、分割領域226a〜226iそれぞれについて、分割領域226a〜226i内のアクセス領域224の輝度について輝度ヒストグラムを生成する。輝度ヒストグラムは、横軸を輝度値(0〜255)とし、縦軸を度数とする。
浮遊物特定部166は、生成した輝度ヒストグラムについて、度数が最も高い輝度値(ピーク輝度値)を分割領域226a〜226iそれぞれについて導出する(図6(b)中、黒ぬりの輝度値で示す)。また、浮遊物特定部166は、導出したピーク輝度値が所定の輝度値閾値(例えば166、図6(b)中、破線で示す)以上である分割領域の数(高輝度分割領域数)を導出する。
そして、浮遊物特定部166は、高輝度分割領域数が予め設定された高輝度分割領域数閾値(例えば、「7」)以上であった場合、立体物が浮遊物らしい特徴を有すると判断して高輝度浮遊物点数に+1を積算する。一方、浮遊物特定部166は、高輝度分割領域数が予め設定された高輝度分割領域数閾値未満であった場合、立体物が浮遊物らしい特徴を有していない、つまり、立体物が非浮遊物らしい特徴を有すると判断して高輝度浮遊物点数に−1を積算(1を減算)する。
ここで、例えば、立体物が車両であった場合には、車両のリヤウインドウやタイヤに相当するアクセス領域224は輝度値が低いため、車両のリヤウインドウやタイヤに相当するアクセス領域224を含む分割領域のピーク輝度値は輝度値閾値未満となる。したがって、立体物が車両であった場合には、高輝度分割領域数が予め設定された高輝度分割領域数閾値未満となる可能性が高い。
一方、立体物が白色の浮遊物であった場合には、浮遊物に相当するアクセス領域224の輝度値は全体的に高いため、浮遊物に相当するアクセス領域224を含む分割領域のピーク輝度値は輝度値閾値以上となる。したがって、立体物が浮遊物であった場合には、高輝度分割領域数が予め設定された高輝度分割領域数閾値以上となる可能性が高い。
浮遊物特定部166は、高輝度分割領域数を高輝度分割領域数閾値と比較することで、高輝度シーンであっても、立体物が全体的に高輝度であるか否かによって、立体物が浮遊物らしい特徴を有するか否かを判断することができるので、精度よく浮遊物を特定することができる。
そして、浮遊物特定部166は、フレーム毎に積算していく低輝度浮遊物点数または高輝度浮遊物点数が0点(第1点数閾値)より大きいか否か判定し、低輝度浮遊物点数または高輝度浮遊物点数が0点より大きければ、立体物を浮遊物と特定する。また、浮遊物特定部166は、低輝度浮遊物点数および高輝度浮遊物点数が0点(第2点数閾値)以下である場合、立体物を非浮遊物と特定する。なお、浮遊物特定部166は、立体物が非浮遊物であると特定した場合であっても、立体物がいずれかの特定物であることまでは特定しない。
また、積算後の低輝度浮遊物点数および高輝度浮遊物点数には、例えば、上限20点、下限−20点といったように上下限が設けられている。このように、上下限を設けることで、浮遊物を検出していない期間や浮遊物を検出している期間が長時間に亘ったとしても点数の絶対値が大きくなることがなく、浮遊物の検出の有無が切り替わった場合に、迅速に、その有無を判定することが可能となる。
このように、浮遊物特定部166は、低輝度浮遊物特定処理および高輝度浮遊物特定処理をフレーム毎に実行し、低輝度浮遊物点数または高輝度浮遊物点数の少なくとも一方が0点より大きければ、立体物を浮遊物と特定する。
ところで、自車両1には、撮像装置110が固定されているため、自車両1が走行している際の上下方向へのピッチングにより、撮像装置110で撮像される輝度画像212に像がぶれた立体物が写し出されることがある。また、自車両1の前方を横切る車両や人が移動している場合にも、撮像装置110で撮像される輝度画像212に像がぶれた立体物が写し出されることがある。像がぶれた立体物は、背景との輝度差が小さくなり、輝度画像212における立体物のエッジ成分が減少し、立体物のヒストグラムを精度よく検出することが困難となる。そのため、像がぶれた立体物が写し出された輝度画像212では、立体物が車両や人であっても、浮遊物と誤って特定してしまうことが起こり得る。
そこで、浮遊物特定部166は、低輝度浮遊物特定処理および高輝度浮遊物特定処理において立体物を浮遊物と特定した場合であっても、浮遊物は奥行き方向および水平方向に所定速度以上では移動しないことを考慮して、以下の条件を満たす場合には、一旦浮遊物と特定した立体物を非浮遊物であると特定(再特定)する。
具体的には、浮遊物特定部166は、立体物が±10km/h以上で奥行方向に移動し、かつ、水平方向に±2km/h以上で移動している場合、一旦浮遊物と特定した立体物を非浮遊物であると特定(再特定)する。
また、浮遊物特定部166は、立体物が±15km/h以上で水平方向に移動している場合にも、一旦浮遊物と特定した立体物を非浮遊物であると特定(再特定)する。
(特定物特定処理)
特定物特定部168は、浮遊物特定部166によって非浮遊物として特定された立体物の大きさ、形状、色相等に基づいて、立体物がいずれかの特定物(車両、人等)であるか判定する。
(点数リセット処理)
図7は、先行車両が浮遊物を通過する様子、および、その時の立体物の特定を説明する図である。図8は、先行車両から浮遊物が発生する様子、および、その時の立体物の特定を説明する図である。
図7(a)に示すように、先行車両300が浮遊物310に突入する際、浮遊物310よりも先行車両300が自車両1側に位置している場合には、図7(b)に示すように、自車両1側に位置する先行車両300が立体物として特定され、立体物(先行車両300)を含むウィンドウ222が設定される。そして、ウィンドウ222内の立体物は、非浮遊物らしい特徴を有しているので、上記した浮遊物特定処理において、立体物は非浮遊物(車両)として特定されることになる。このとき、上記の低輝度浮遊物点数および高輝度浮遊物点数は、下限値である−20点やそれに近い値となっている可能性が高い。
このような状態において、図7(c)に示すように、先行車両300が浮遊物310に突入すると、浮遊物310が先行車両300よりも自車両1側に位置することになり、図7(d)に示すように、自車両1側に位置する浮遊物310が立体物として特定され、立体物(浮遊物310)を含むウィンドウ222が設定される。しかしながら、上記浮遊物特定処理では、浮遊物らしい特徴を有することを検出しても、毎フレームごとに低輝度浮遊物点数および高輝度浮遊物点数が+1更新されるだけである。したがって、低輝度浮遊物点数および高輝度浮遊物点数の少なくとも一方が0点より大きくなるまで(例えば、20フレーム分の期間)は、実際には立体物が浮遊物310であったとしても、非浮遊物であると特定されてしまうことになる。
また、図8(a)に示すように、先行車両300から排ガス等の浮遊物310が発生した際、浮遊物310が発生した時点では、図8(b)に示すように、先行車両300が立体物として特定され、立体物(先行車両300)を含むウィンドウ222が設定される。そして、ウィンドウ222内の立体物は、非浮遊物らしい特徴を有しているので、上記した浮遊物特定処理において、立体物(先行車両300)は非浮遊物(車両)として特定されている。
このような状態において、図8(c)に示すように、浮遊物310が発生してから時間が経過すると、先行車両300は前方へ移動するが、浮遊物310は発生した絶対的な位置からほぼ移動することがなく(自車両1との相対距離は短くなる)、浮遊物310が先行車両300よりも自車両1側に位置することになる。このような場合、図8(d)に示すように、浮遊物310が立体物として特定され、立体物(浮遊物310)を含むウィンドウ222が設定される。このような場合にも、実際には立体物が浮遊物310であったとしても、非浮遊物であると特定されてしまうことになる。
このように、非浮遊物を特定していた状態から、浮遊物を特定するまでに相当の期間を要する場合には、車外環境認識装置120では、非浮遊物に衝突しないように回避または停止する旨を示す情報を車両制御装置130に出力する。したがって、車両制御装置130は、自車両1が回避または停止する制御を行うことになる。このような制御は、実際にはそのまま進行可能な浮遊物を回避するといった、運転者が予期しない動作をとることとなり、運転者に違和感を与えることになる。
そこで、点数リセット部170は、上記した浮遊物特定処理の前に、立体物を非浮遊物として特定している場合において、上記の第1判定条件とは異なる第2判定条件に基づいて、立体物が浮遊物らしい特徴を有していると判断した場合には、低輝度浮遊物点数および高輝度浮遊物点数を0にリセットする点数リセット処理(浮遊物突入用点数リセット処理、浮遊物発生用点数リセット処理)を実行する。以下、点数リセット処理を具体的に説明する。
(浮遊物突入用点数リセット処理)
点数リセット部170は、非浮遊物と特定された立体物を含むウィンドウ222について、立体物(立体部位の集合体)の位置情報と、前回のフレームで撮像された輝度画像212における関係付けられた立体物の位置情報とに基づいて、立体物の加速度および加速度の微分である加加速度を導出する。
また、点数リセット部170は、非浮遊物と特定されたウィンドウ222内で、ブレーキランプが点灯しているか否かを判定する。ブレーキランプの点灯を判定する方法としては、例えば、ウィンドウ222内の所定範囲のR成分を満たす画素領域の輝度変化または面積変化に基づいてブレーキランプの点灯を検出するようにしてもよく、他の既知のブレーキランプの検出方法を用いてもよい。
点数リセット部170は、導出した加速度が−0.2G未満で、かつ、加加速度が0.01G以上で、かつ、ブレーキランプが消灯していれば、低輝度浮遊物点数および高輝度浮遊物点数を0にリセットする。ここで、図7に示したように、ウィンドウ222内の立体物が非浮遊物から浮遊物に切り替わった場合には、浮遊物310の絶対位置が変化しないので、所定範囲のマイナスの加速度が検出され、かつ、所定範囲のプラスの加加速度が検出される。一方、先行車両300がブレーキを掛けた場合にも、所定範囲のマイナスの加速度が検出され、かつ、所定範囲のプラスの加加速度が検出される。しかしながら、ウィンドウ222内の立体物が非浮遊物から浮遊物に切り替わった場合の方が、先行車両300がブレーキを掛けた場合より、検出されるマイナスの加速度およびプラスの加加速度の値が大きい。したがって、所定範囲のマイナスの加速度(−0.2G未満)が検出され、かつ、所定範囲のプラスの加加速度(0.01G以上)が検出された場合には、ウィンドウ222内の立体物が非浮遊物から浮遊物に切り替わったと判定することができる。
さらに、先行車両300がブレーキを掛けた場合には、先行車両30のブレーキランプの点灯が検出されるので、マイナスの加速度、プラスの加加速度に加え、ブレーキランプの点灯の有無を検出することで、より正確に、ウィンドウ222内の立体物が非浮遊物から浮遊物に切り替わったと判定することができる。
このように、加速度、加加速度、および、ブレーキランプの点灯の有無に基づいて、非浮遊物が浮遊物に突入した場合について、立体物が非浮遊物から浮遊物に切り替わったか否かを判定することができる。なお、加速度および加加速度に基づいて立体物が非浮遊物から浮遊物に切り替わったか否かを判定してもよい。
(浮遊物発生用点数リセット処理)
点数リセット部170は、例えば3×3画素の空間微分フィルタを輝度画像212全体にかけ、空間微分フィルタによるエッジ画像を作成する。そして、点数リセット部170は、エッジ画像のうち、ウィンドウ222内に含まれるエッジの総数(エッジ総数)を算出する。
ここで、ウィンドウ222内の立体物が浮遊物である場合にはエッジ総数は少なく、ウィンドウ222内の立体物が非浮遊物である場合にはエッジ総数は多い。したがって、ウィンドウ222内の立体物が非浮遊物のまま継続している場合には、エッジ総数の変化率は小さいが、ウィンドウ222内の立体物が非浮遊物から浮遊物に切り替わった場合には、エッジ総数の変化率は大きくなる。
そこで、点数リセット部170は、前回のフレームにおける輝度画像212に対して設定された、関連付けられたウィンドウ222内のエッジ総数に対する、今回のフレームにおける輝度画像212に対して設定されたウィンドウ222内のエッジ総数の変化率を導出する。そして、点数リセット部170は、導出したエッジ総数の変化率が80%(エッジ総数閾値)以上である場合に、ウィンドウ222内の立体物が非浮遊物から浮遊物に切り替わったと判定する。
図9は、対称性判定による浮遊物発生用点数リセット処理を説明する図である。また、点数リセット部170は、図9に示すように、輝度画像212に対して設定されたウィンドウ222に対して、ウィンドウ222を水平方向に等分する垂直方向に延びる中心線CLを設定する。そして、点数リセット部170は、中心線CL上の鉛直方向の画素ごとに、設定した中心線CLを基準として左右方向それぞれに、相対距離に応じて設定される離隔位置IPだけ離隔した画素が、ともに立体物に相当する画素であるかを判定する。そして、点数リセット部170は、中心線CLを基準として左右方向それぞれに離隔位置IPだけ離隔した画素が、ともに立体物に相当する画素であると判定された対称性総数を導出する。なお、離隔位置IPは、ウィンドウ222内の画素が選択されるように設定される。
ここで、図9(a)に示すように、ウィンドウ222内の立体物が浮遊物である場合、中心線CLを基準とした左右方向の対称性が低いので、対称性総数が少なくなる。一方、図9(b)に示すように、ウィンドウ222内の立体物が非浮遊物(例えば、車両)である場合、中心線CLを基準とした左右方向の対称性が高いので、対称性総数が多くなる。したがって、ウィンドウ222内の立体物が非浮遊物のまま継続している場合には、対称性総数の変化率は小さいが、ウィンドウ222内の立体物が非浮遊物から浮遊物に切り替わった場合には、対称性総数の変化率は大きくなる。
そこで、点数リセット部170は、前回の輝度画像212に対して設定されたウィンドウ222の対称性総数に対して、今回の輝度画像212に対して設定された、関連付けられたウィンドウ222の対称性総数の変化率を導出する。そして、点数リセット部170は、導出した変化率が80%(対称性閾値)以上である場合に、ウィンドウ222内の立体物が非浮遊物から浮遊物に切り替わったと判定する。
そして、点数リセット部170は、エッジ総数の変化率および対称性総数の変化率の少なくとも一方が80%以上であった場合、低輝度浮遊物点数および高輝度浮遊物点数を0にリセットする。これにより、浮遊物特定部166は、例えば、下限値である−20点から1点までにかかる期間よりも短い、0点から1点までの期間で、浮遊物を特定することができ、早期に立体物を浮遊物として特定することができる。
(車外環境認識処理の流れ)
次に、中央制御部154が実行する、上記した画像処理、立体物特定処理、浮遊物特定処理、特定物特定処理、点数リセット処理を含む車外環境認処理の流れについて説明する。
図10は、車外環境認識処理の流れを示すフローチャートである。図11は、点数リセット処理の流れを示すフローチャートである。図12は、浮遊物突入用点数リセット処理の流れを示すフローチャートである。図13は、浮遊物発生用点数リセット処理の流れを示すフローチャートである。図14は、浮遊物特定処理の流れを示すフローチャートである。図15は、低輝度浮遊物判定処理の流れを示すフローチャートである。図16は、高輝度浮遊物判定処理の流れを示すフローチャートである。図11に示す点数リセット処理のフローチャート、および、図14に示す浮遊物特定処理のフローチャートは、図10に示す車外環境認識処理のフローチャートのサブルーチンである。また、図12に示す浮遊物突入用点数リセット処理のフローチャート、および、図13に示す浮遊物発生用点数リセット処理のフローチャートは、図11に示す点数リセット処理のフローチャートのサブルーチンである。また、図15に示す低輝度浮遊物判定処理のフローチャート、および、図16に示す高輝度浮遊物判定処理のフローチャートは、図14に示す浮遊物特定処理のフローチャートのサブルーチンである。
図10に示すように、まず、画像処理部160が、撮像装置110から取得した画像を処理して距離画像214を生成し(S400)、3次元位置導出部162が、画像から立体部位の3次元の位置情報を導出し(S402)、立体物特定部164が、3次元位置に基づいてグループ化された立体物を特定する(S404)。そして、点数リセット部170が、ウィンドウ222内の立体物が非浮遊物から浮遊物に切り替わったと判定した場合、低輝度浮遊物点数および高輝度浮遊物点数を0にリセットする点数リセット処理を実行する(S500)。その後、浮遊物特定部166が、ウィンドウ222内の立体物を浮遊物、または、非浮遊物のどちらであるか特定する浮遊物特定処理を実行し(S600)、特定物特定部168が、非浮遊物と特定された立体物をいずれかの特定物であるかを特定する特定物特定処理を実行し(S406)、当該車外環境認識処理を終了する。以下、点数リセット処理S500および浮遊物特定処理S600について詳述する。
(点数リセット処理S500)
図11に示すように、点数リセット部170は、立体物特定処理S404で特定された立体物が1以上あって、当該点数リセット処理S500において、前回の浮遊物特定処理S600において非浮遊物と特定され、かつ、まだ選択されていない立体物があるか否かを判断する(S502)。まだ選択していない立体物があれば(S502におけるYES)、点数リセット部170は、まだ選択していない立体物を1つ選択する(S504)。
次に、点数リセット部170は、浮遊物突入用点数リセット処理を実行し(S506)、その後、浮遊物発生用点数リセット処理を実行する(S508)。なお、浮遊物突入用点数リセット処理S506および浮遊物発生用点数リセット処理S508については、後述する。
点数リセット部170は、詳しくは後述する浮遊物突入用点数リセット処理S506および浮遊物発生用点数リセット処理S508の少なくとも一方において、低輝度浮遊物点数および高輝度浮遊物点数をリセットするための浮遊物点数リセットフラグがオンされたか否かを判断する(S510)。浮遊物点数リセットフラグがオンしていなければ(S510におけるNO)、S502の処理に戻る。
一方、浮遊物点数リセットフラグがオンしていれば(S510におけるYES)、点数リセット部170は、低輝度浮遊物点数および高輝度浮遊物点数を0にリセットし(S512)、浮遊物点数リセットフラグをオフにして(S514)、S502の処理に戻る。
S502の処理において、まだ選択していない立体物がなくなると(S502におけるNO)、当該点数リセット処理S500を終了する。
(浮遊物突入用点数リセット処理S506)
図12に示すように、点数リセット部170は、上記3次元位置導出処理S402で導出された立体物の位置情報と、前回の立体物の位置情報とに基づいて、立体物の加速度および加加速度を導出する(S506−1)。また、点数リセット部170は、立体物を含むウィンドウ222内でのブレーキランプの点灯の有無を検出する(S506−2)。
そして、点数リセット部170は、S506−1で導出した加速度が−0.2G未満であるか否かを判断し(S506−3)、加速度が−0.2G未満であれば(S506−3におけるYES)、S506−1で導出した加加速度が0.01G以上であるか否かを判断する(S506−4)。加加速度が0.01G以上であれば(S506−4におけるYES)、点数リセット部170は、ブレーキランプが消灯しているか否かを判断し(S506−5)、ブレーキランプが消灯していれば(S506−5におけるYES)、浮遊物点数リセットフラグをオンにし(S506−6)、当該浮遊物突入用点数リセット処理S506を終了する。
一方、加速度が−0.2G未満でない(S506−3におけるNO)、加加速度が0.01G以上でない(S506−4におけるNO)、または、ブレーキランプが消灯していなければ(S506−5におけるNO)、点数リセット部170は、当該浮遊物突入用点数リセット処理S506を終了する。
(浮遊物発生用点数リセット処理S508)
図13に示すように、点数リセット部170は、ウィンドウ222内の各画素に対して空間フィルタをかけ、ウィンドウ222内のエッジを導出するとともに、導出したエッジの総数を導出する(S508−1)。また、点数リセット部170は、ウィンドウ222を水平方向に等分する中心線CLを設定し、中心線CLから左右方向それぞれに離隔位置IPだけ離隔した画素がともに立体物に相当する画素である対称性総数を導出する(S508−2)。
点数リセット部170は、前回のS508−1で導出したエッジ総数に対して、今回のS508−1で導出したエッジ総数の変化率が80%以上であるか否かを判断する(S508−3)。エッジ総数の変化率が80%以上でなければ(S508−3におけるNO)、点数リセット部170は、前回のS508−2で導出した対称性総数に対して、今回のS508−2で導出した対称性総数の変化率が80%以上であるか否かを判断する(S508−4)。
そして、エッジ総数の変化率が80%以上である(S508−3におけるYES)、または、対称性総数の変化率が80%以上であれば(S508−4におけるYES)、点数リセット部170は、浮遊物点数リセットフラグをオンにし(S508−5)、当該浮遊物発生用点数リセット処理S508を終了する。
また、エッジ総数の変化率が80%以上でなく(S508−3におけるNO)、かつ、対称性総数の変化率が80%以上でなければ(S508−4におけるNO)、点数リセット部170は、当該浮遊物発生用点数リセット処理S508を終了する。
(浮遊物特定処理S600)
図14に示すように、浮遊物特定部166は、立体物特定処理S404で特定された立体物が1以上あって、まだ選択されていない立体物があるか否かを判断する(S602)。まだ選択していない立体物があれば(S602におけるYES)、浮遊物特定部166は、まだ選択していない立体物を1つ選択する(S604)。
次に、浮遊物特定部166は、低輝度浮遊物特定処理を実行し(S606)、その後、高輝度浮遊物特定処理を実行する(S608)。なお、低輝度浮遊物特定処理S606および高輝度浮遊物特定処理S608については、後述する。
浮遊物特定部166は、詳しくは後述する低輝度浮遊物特定処理S606において導出された低輝度浮遊物点数が0点より大きいか否かを判断する(S610)。そして、低輝度浮遊物点数が0点より大きくなければ(S610におけるNO)、浮遊物特定部166は、詳しくは後述する高輝度浮遊物特定処理S608において導出された高輝度浮遊物点数が0点より大きいか否かを判断する(S612)。
低輝度浮遊物点数が0点以下であり(S610におけるNO)、かつ、高輝度浮遊物点数が0点以下であれば(S612におけるNO)、浮遊物特定部166は、立体物を非浮遊物と特定し(S622)、S602の処理に戻る。
一方、低輝度浮遊物点数が0点より大きい(S610におけるYES)、または、高輝度浮遊物点数が0点より大きければ(S612におけるYES)、浮遊物特定部166は、S402で導出された位置情報に基づいて、立体物の奥行速度および水平速度を導出する(S614)。そして、浮遊物特定部166は、奥行速度が±10km/h以上で、かつ、水平速度が±2km/h以上であるか否かを判断し(S616)、奥行速度が±10km/h未満または水平速度が±2km/h未満であれば(S616におけるNO)、水平速度が±15km/h以上であるかを判断する(S618)。水平速度の絶対値が±15km/h未満であれば(S618におけるNO)、浮遊物特定部166は、立体物を浮遊物と特定し(S620)、S602の処理に戻る。
一方、奥行速度が±10km/h以上で、かつ、水平速度が±2km/h以上である(S616におけるYES)、または、水平速度が±15km/h以上であれば(S618におけるYES)、浮遊物特定部166は、立体物を非浮遊物と特定し(S622)、S602の処理に戻る。
(低輝度浮遊物特定処理S606)
図15に示すように、浮遊物特定部166は、3次元位置導出部162により導出された立体部位の位置情報に基づいて、ウィンドウ222内における立体部位の集合体のみの領域をアクセス領域224として設定する(S606−1)。
そして、浮遊物特定部166は、設定したアクセス領域224のアクセス領域幅W、および、アクセス領域224の境界を基準として、水平方向における左右方向に輝度検出範囲W/6を設定する。その後、浮遊物特定部166は、輝度検出範囲W/6が設定された立体物側の平均輝度値と、輝度検出範囲W/6が設定された背景側の平均輝度値とを導出する(S606−2)。そして、浮遊物特定部166は、輝度検出範囲W/6が設定された立体物側の平均輝度値と、輝度検出範囲W/6が設定された背景側の平均輝度値との輝度差を導出する(S606−3)。
そして、浮遊物特定部166は、輝度差が輝度差閾値より大きいか否かを判断し(S606−4)、輝度差が輝度差閾値より大きければ(S606−4におけるYES)、低輝度浮遊物点数が20点以上であるか否かを判定する(S606−5)。そして、浮遊物特定部166は、低輝度浮遊物点数が20点以上であれば(S606−5におけるYES)、当該低輝度浮遊物特定処理S606を終了し、低輝度浮遊物点数が20点未満であれば(S606−5におけるNO)、低輝度浮遊物点数に+1を積算し(S606−6)、当該低輝度浮遊物特定処理S606を終了する。
一方、輝度差が輝度差閾値以下であれば(S606−4におけるNO)、浮遊物特定部166は、低輝度浮遊物点数が−20点以下であるか否かを判定する(S606−7)。そして、浮遊物特定部166は、低輝度浮遊物点数が−20点以下であれば(S606−7におけるYES)、当該低輝度浮遊物特定処理S606を終了し、低輝度浮遊物点数が−20点より大きければ(S606−7におけるNO)、低輝度浮遊物点数に−1を積算し(S606−8)、当該低輝度浮遊物特定処理S606を終了する。
(高輝度浮遊物特定処理S608)
図16に示すように、浮遊物特定部166は、ウィンドウ222内にアクセス領域224として設定するとともに、ウィンドウ222を垂直方向および水平方向それぞれを3分割した9つの分割領域226a〜226iを設定する(S608−1)。そして、浮遊物特定部166は、分割領域226a〜226iそれぞれについて、分割領域226a〜226i内のアクセス領域224の輝度について輝度ヒストグラムを生成する(S608−2)。その後、浮遊物特定部166は、生成した輝度ヒストグラムについてピーク輝度値を分割領域226a〜226iそれぞれについて導出するとともに、ピーク輝度値が輝度値閾値以上である高輝度分割領域数を導出する(S608−3)。
そして、浮遊物特定部166は、高輝度分割領域数が高輝度分割領域数閾値以上であるか否かを判断し(S608−4)、高輝度分割領域数が高輝度分割領域数閾値以上であれば(S608−4におけるYES)、高輝度浮遊物点数が20点以上であるか否かを判定する(S608−5)。そして、浮遊物特定部166は、高輝度浮遊物点数が20点以上であれば(S608−5におけるYES)、当該高輝度浮遊物特定処理S608を終了し、高輝度浮遊物点数が20点未満であれば(S608−5におけるNO)、高輝度浮遊物点数に+1を積算し(S608−6)、当該高輝度浮遊物特定処理S608を終了する。
一方、高輝度分割領域数が高輝度分割領域数閾値未満であれば(S608−4におけるNO)、浮遊物特定部166は、高輝度浮遊物点数が−20点以下であるか否かを判定する(S608−7)。そして、浮遊物特定部166は、高輝度浮遊物点数が−20点以下であれば(S608−7におけるYES)、当該高輝度浮遊物特定処理S608を終了し、高輝度浮遊物点数が−20点より大きければ(S608−7におけるNO)、高輝度浮遊物点数に−1を積算し(S608−8)、当該高輝度浮遊物特定処理S608を終了する。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる実施形態に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
また、コンピュータを、車外環境認識装置120として機能させるプログラムや当該プログラムを記録した、コンピュータで読み取り可能なフレキシブルディスク、光磁気ディスク、ROM、CD、DVD、BD等の記憶媒体も提供される。ここで、プログラムは、任意の言語や記述方法にて記述されたデータ処理手段をいう。
例えば、上述した実施形態においては、低輝度浮遊物特定処理および高輝度浮遊物特定処理により浮遊物を特定する例を挙げているが、特開2009−110168号公報に示すような、物体の各立体部位の距離の平均値に対するばらつき(分散)に応じて浮遊物を特定する技術や、特開2012−243049号公報に示すような、立体物の輝度ヒストグラムに対する輝度の平均値、分散値、歪度、または尖度のいずれか1または複数の特徴量に基づいて浮遊物を特定する技術と、本実施形態の技術を併用して、その総合評価により、浮遊物を特定するとしてもよい。こうして、浮遊物の特定精度を高めることが可能となる。
なお、上記の実施形態においては、低輝度浮遊物点数が0点(第1点数閾値)より大きい場合に、立体物を浮遊物と特定し、低輝度浮遊物点数が0点以下の場合に、立体物を非浮遊物と特定するようにした。しかしながら、例えば、低輝度浮遊物点数が10点(第1点数閾値)より大きい場合に、立体物を浮遊物と特定し、低輝度浮遊物点数が−10点(第2点数閾値)以下の場合に、立体物を非浮遊物と特定するようにしてもよい。同様に、例えば、高輝度浮遊物点数が10点(第1点数閾値)より大きい場合に、立体物を浮遊物と特定し、高輝度浮遊物点数が−10点(第2点数閾値)以下の場合に、立体物を非浮遊物と特定するようにしてもよい。
また、上記の実施形態においては、点数リセット部170は、立体物を非浮遊物として特定している場合において、第2判定条件に基づいて、立体物が浮遊物らしい特徴を有していると判断した場合には、低輝度浮遊物点数および高輝度浮遊物点数を0にリセットするようにした。しかしながら、例えば、低輝度浮遊物点数および高輝度浮遊物点数が10点(第1点数閾値)より大きい場合に、立体物を浮遊物と特定し、低輝度浮遊物点数および高輝度浮遊物点数が−10点(第2点数閾値)以下の場合に、立体物を非浮遊物と特定する際には、低輝度浮遊物点数および高輝度浮遊物点数を10点(第1点数閾値)および−10点(第2点数閾値)の間のいずれかの値にリセットするようにしてもよい。
なお、本明細書の車外環境認識方法の各工程は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいはサブルーチンによる処理を含んでもよい。