【解決手段】周囲環境認識装置1は、撮影画像に基づいて移動体の周囲環境に存在する物体像を認識する画像認識部と、その撮影画像に基づいてカメラレンズに付着した付着物を検知する付着物検知部200と、付着物検知部の検知結果に基づいて画像認識部の動作を中止させるか否かを判定する中止判定部と、画像取得部が基準フレームに取得した撮影画像の所定領域から追尾対象の画像の特徴量を検出して、画像取得部が基準フレームよりも後のフレームに取得した撮影画像から特徴量が検出されるべき推定領域を算出して、推定領域の中の追尾対象の画像の特徴量の有無を判断する追尾部300と、少なくとも追尾部300による追尾対象の画像の特徴量の有無の判断結果に基づいて、画像認識部の動作を中止状態から復帰させるか否かを判定する復帰判定部と、を備える。
【発明を実施するための形態】
【0008】
図1は、本発明の一実施形態による周囲環境認識装置1を備えるカメラシステムのブロック構成図である。
図1に図示されているカメラシステムは、車両9に設けられており、周囲環境認識装置1と、カメラ2aおよび2bと、インターフェース部600とを備える。
【0009】
周囲環境認識装置1は、車両に搭載されるECU(Electric Control Unit)であって、不図示のCPUとメモリ10とを備える。メモリ10には、ROMとワーキングメモリ、バッファメモリとして利用されるRAMとが含まれ、ROMには周囲環境認識装置1のCPUにより実行されるプログラムが記憶されている。
【0010】
周囲環境認識装置1は、カメラ2aおよび2bと、インターフェース部600とに接続されている。また、周囲環境認識装置1は、不図示のCAN(Controller Area Network)に接続されており、カーナビゲーション装置や周囲環境認識装置1よりも上位のECUなどから情報を取得することができる。たとえば、周囲環境認識装置1は、CANを介して車両9の走行速度、ヨーレート、ワイパの動作状態など、車両9に関する情報を取得することができる。
【0011】
カメラ2aおよび2bは、たとえばボディ、バンパーなどの車両9の各部にそれぞれ設置されている。カメラ2aは、カメラレンズを車両9の前方に向けており、車両前方の路面と車両前方に設置されている道路標識とを同時に撮影することができる程度の画角を有する。カメラ2bは、カメラレンズを車両9の後方に向けており、車両後方の路面と車両後方の風景とを同時に撮影することができる程度の画角を有する。
【0012】
周囲環境認識装置1は、カメラ2aおよび2bの撮影画像に対して画像認識処理を実行して、撮影画像に含まれるレーンマーク、他車両、歩行者、道路標識、駐車枠などの画像を認識する。ここで、レーンマークとは、ペイントや道路鋲(ボッツドッツ)などにより形成された車線境界線、車道中央線、車道外側線などを表す。周囲環境認識装置1は、画像認識処理の結果に基づいて、たとえば車両9が走行車線を逸脱しようとしていることや車両9が他車両と衝突しようとしていることなどを検出する。
【0013】
カメラ2aおよび2bの各カメラレンズには、水滴、泥、融雪剤などが付着することがある。特に車両9が走行している場合には、路上の水、泥、融雪剤などが車両に跳ね上げられて、カメラレンズに付着しやすい。カメラレンズに付着する水滴は、雨滴などであり不純物を多く含有することが多く、乾燥するとカメラレンズに水滴痕が残ることがある。また、水滴痕や泥水などがカメラレンズに付着することによりカメラレンズが白濁した状態になることがある。以降、カメラレンズに付着した水滴、水滴痕、泥などの異物や、白濁などのカメラレンズの汚れなどを総称して付着物と記載する。
【0014】
インターフェース部600は、車両9の各部、たとえばいずれも不図示の警報ランプ、警報ブザー、アクセル、ブレーキ、ナビゲーション装置、インストルパネル、エアーポンプ、ウォッシャーポンプ、ワイパ駆動部などに接続されている。インターフェース部600は、周囲環境認識装置1からの指令に従って車両9の各部の制御を行う。
【0015】
図2は、周囲環境認識装置1の機能ブロック図である。周囲環境認識装置1は、メモリ10に記憶されたプログラムを実行することにより、撮影画像取得部100と、付着物検知部200と、追尾部300と、システムギブアップ判定部400と、アプリケーション実行部500として機能する。
【0016】
撮影画像取得部100は、所定のフレームレートでカメラ2aおよび2bから撮影画像をそれぞれ取得する。撮影画像取得部100は、フレームごとに取得した各撮影画像を付着物検知部200と追尾部300とアプリケーション実行部500へ出力する。
【0017】
付着物検知部200は、撮影画像取得部100が出力した撮影画像の中からカメラ2aおよび2bの各カメラレンズに付着した付着物の種類を検知する。付着物検知部200は、後述するように付着物の検知結果を付着物の種類ごとに生成して、各検知結果をシステムギブアップ判定部400へ出力する。
【0018】
追尾部300は、撮影画像取得部100が出力した撮影画像中において路面上に現れるレーンマーク、路面状態、立体物、路面ペイントなどの構造物を追尾対象として追尾する。追尾とは、異なるフレームでそれぞれ取得した複数の撮影画像の互いに対応する画像領域から同一構造物の特徴量を検出することである。すなわち、追尾部300は、同一構造物検出部とも称することができる。追尾部300は、基準フレームに取得した撮影画像(基準画像)の所定領域から検出された構造物の特徴量が基準画像とは異なるフレームに取得した撮影画像の推定領域から検出された場合、追尾が成功したと判断する。さらに、追尾部300は、詳細を後述する各種追尾処理の成否に基づいて、カメラ2aおよび2bの各カメラレンズの視認性を評価する。追尾部300は、その視認性の評価結果をシステムギブアップ判定部400へ出力する。
【0019】
アプリケーション実行部500は、撮影画像取得部100が出力した撮影画像に対して画像認識を行う画像認識部である。アプリケーション実行部500は、撮影画像に対する画像認識により、レーンマーク、他車両、歩行者、道路標識、駐車枠などの物体像を検知する。アプリケーション実行部500の検知結果は、車線逸脱防止、他車両や歩行者との衝突防止、駐車支援などに用いられる。なお、アプリケーション実行部500が検出する物体像には、レーンマークのように、追尾部300が追尾対象とする道路上の構造物と共通するものも含まれるが、共通しないものも含まれることがある。
【0020】
カメラレンズに付着物が付着している状態では、アプリケーション実行部500において誤検知や不検知が発生するおそれがある。システムギブアップ判定部400は、付着物検知部200の出力に基づいて、アプリケーション実行部500による検知をギブアップ(中止)させる。また、システムギブアップ判定部400は、付着物検知部200の出力と追尾部300の出力とに基づいて、アプリケーション実行部500による検知をギブアップ状態から復帰させる。システムギブアップ判定部400の詳細については後述する。
【0021】
インターフェース部600は、警報部610と、走行系制御部620と、表示部630と、汚れ除去部640とを有する。警報部610は、車両の運転者に対して警報ランプ、警報ブザー、警報表示画面等による警報を出力する。走行系制御部620は、車両9のアクセル、ブレーキ、操舵角度を周囲環境認識装置1の出力結果に基づいて制御する。表示部630は、車両9に搭載されたナビゲーション装置の表示画面や車両9のインストルメントパネルなどであり、警報部610により警報を出力する代わりに警告画面などの種々の画面を表示する。汚れ除去部640は、エアーポンプ、ウォッシャーポンプ、ワイパ駆動部など、カメラ2aおよび2bの各カメラレンズから付着物を除去するための除去装置である。
【0022】
(付着物検知部200)
図3は、付着物検知部200の機能構成例を示す。
図3に例示する付着物検知部200は、水滴検知部210と、白濁検知部220と、水滴痕検知部230と、泥検知部240とを有する。
【0023】
(水滴検知部210)
水滴検知部210は、カメラ2aおよび2bに付着した水滴を検知する。
図4(a)および(b)を用いて水滴検知部210の動作について説明する。
図4(a)に示されるように、水滴検知部210は、撮影画像30の画像領域を複数のブロックB(x,y)に分割する。たとえば、画像領域の左隅を原点とし、100×100の画像に分割した場合、画像領域には、ブロックB(0,0)〜ブロックB(100,100)の1万個の分割画像ブロックが含まれる。各分割画像ブロックを以下ではブロックB(x,y)と記述し、各分割画像ブロックには、それぞれ撮影画像の複数の画素が含まれている。たとえば、カメラの撮像素子が10万画素を有する場合、一つの分割画像ブロックには10画素分の画像が含まれる。
【0024】
水滴検知部210は、各ブロックB(x,y)ごとにスコアS
1(x,y)を算出する。スコアS
1(x,y)は、初期値がゼロであって、以下に説明する判定によりそのブロックB(x,y)内に水滴が付着していると判定されるたびに所定値増加する。
【0025】
水滴検知部210による各画素ごとのスコア計算は以下のとおりである。
図4(b)は、任意の画素31を着目点とした図である。水滴検知部210は、その着目点31から上方向、右上方向、右下方向、左上方向、左下方向にそれぞれ所定距離(たとえば、3pix)離れた画素を内部参照点32に設定して、それらの5方向にさらに所定距離(たとえば、3pix)離れた画素を外部参照点33に設定する。次に、水滴検知部210は、各内部参照点32と各外部参照点33のそれぞれについて、輝度を算出する。なお、着目点31、内部参照点32、外部参照点33の各画素数は、たとえば1画素であって、分割画像ブロックに含まれる画素数よりも少ない。
【0026】
水滴の中心部は、縁部よりもレンズ効果で明るい可能性が高い。そこで、水滴検知部210は、5方向の各々について、内部参照点32の輝度が外部参照点33の輝度よりも高いか否かを判定する。換言すると、水滴検知部210は、着目点31が水滴の中心部であるか否かを判定する。水滴検知部210は、各方向の内部参照点32の輝度が同方向の外部参照点33の輝度よりも高い場合、水滴が付着していると判断して、その着目点31が属するB(x,y)のスコアS
1(x,y)を1だけ増加させる。
【0027】
次に、水滴検知部210は、全ブロックB(x,y)の中からスコアS
1(x,y)が所定値以上のブロックを検出して、検出されたブロックの個数N
1を算出する。水滴検知部230は、検出されたN
1個のブロックに含まれる画素について、内部参照点32と外部参照点33の輝度差を算出して、それらの画素の輝度差の平均A
D1を算出する。
【0028】
水滴検知部210は、撮影画像取得部100が撮影画像を出力するごとに、ブロックB(x,y)の各々についてスコアS
1(x,y)を更新する。また、水滴検知部210は、t1フレームが経過するごとにスコアS
1(x,y)をフレーム数t1で除して、正規化スコアNS
1(x,y)を算出する。
【0029】
水滴検知部210は、全ブロックB(x,y)の正規化スコアNS
1(x,y)の平均A
S1を算出する。水滴検知部210は、この正規化スコアNS
1(x,y)の平均A
S1が所定値を超えていた時間t2を計時し、この時間t2を用いてスコアS
1(x,y)の信頼度R
1を算出する。たとえば、この時間t2を所定値で除することにより信頼度R
1を算出する。
【0030】
水滴検知部210は、毎フレームごとに、信頼度R
1と、最新の正規化スコアNS
1(x,y)、スコアS
1(x,y)が所定値以上のブロックの個数N
1と、輝度差の平均A
D1とをシステムギブアップ判定部400へ出力する。水滴検知部210は、システムギブアップ判定部400へ正規化スコアNS
1(x,y)等を送信した後、スコアS
1(x,y)と時間t2をゼロにリセットする。
【0031】
(白濁検知部220)
図5(a)を用いて白濁検知部220の動作について説明する。
図5(a)に示されるように、白濁検知部220は、撮影画像40の画像領域を複数のブロックB(x,y)に分割する。各ブロックB(x,y)には、それぞれ撮影画像40の複数の画素が含まれている。白濁検知部220は、各ブロックB(x,y)ごとにスコアS
2(x,y)を算出する。
【0032】
図5(a)に示されるように、白濁検知部220は、撮影画像中に地平線が写り込む予定の位置に左上検知領域41と上検知領域42と右上検知領域43とを設定する。上検知領域42は、路面に互いに平行に設けられた2本のレーンマークの消失点が含まれるような位置に設定される。
図5(a)では、2本のレーンマーク46の消失点47が上検知領域42の内側に含まれている。左上検知領域41は上検知領域42よりも左側に設定され、右上検知領域43は上検知領域42よりも右側に設定される。また、白濁検知部220は、撮影画像中にレーンマークが写る予定の位置に左下検知領域44と右下検知領域45とを設定する。
【0033】
白濁検知部220は、左上検知領域41と上検知領域42と右上検知領域43と左下検知領域44と右下検知領域45のそれぞれの領域内の画素に対して、水平方向のエッジ検出処理を行う。左上検知領域41と上検知領域42と右上検知領域43に対するエッジ検出では、地平線などのエッジが検出される。また、左下検知領域44と右下検知領域45とに対するエッジ検出では、レーンマーク46などのエッジが検出される。白濁検知部220は、各検知領域41〜45に含まれる各画素についてそれぞれエッジ強度を算出する。そして、白濁検知部220は、各検知領域41〜45ごとにエッジ強度の平均値A
E2を算出して、その平均値A
E2が所定の閾値ε未満か否かを判定する。白濁検知部220は、エッジ強度の平均値A
E2が閾値ε未満の検知領域は白濁していると判断する。
【0034】
白濁検知部220は、
図5(b)に示すように画像領域を五つのグループに分ける。左上のグループ48aに属するブロックB(x,y)は、左上検知領域41が白濁していると判断された場合、スコアS
2(x,y)を1だけ増加させる。中央上のグループ48bに属するブロックB(x,y)は、上検知領域42が白濁していると判断された場合、スコアS
2(x,y)を1だけ増加させる。同様に、右上のグループ48cに属するブロックB(x,y)は右上検知領域43に対応し、左下のグループ48dに属するブロックB(x,y)は左下検知領域44に対応し、右下のグループ48eに属するブロックB(x,y)は右下検知領域45に対応する。各グループ48a〜48eに属するブロックB(x,y)は、対応する検知領域が白濁していると判断された場合、スコアS
2(x,y)を1だけ増加させる。
【0035】
なお、左下検知領域44と右下検知領域45との間に位置するブロックB(x,y)については、グループ48dおよび48eとは別のグループに属するものとしてもよい。グループ48dとグループ48eとの間に設けられたグループのスコアS
2(x,y)は、グループ48dのスコアS
2(x,y)とグループ48eのスコアS
2(x,y)とを用いて線形補間することが好ましい。
【0036】
白濁検知部220は、各検知領域41〜45の中でエッジ強度の平均値A
E2が閾値ε未満の検知領域の個数、すなわち白濁している検知された検知領域の個数N
2を算出する。その後、白濁検知部220は、各検知領域41〜45が白濁していると継続的に判断された時間t3を算出する。そして、白濁検知部220は、各検知領域41〜45の時間t3の総和を検知領域の個数、すなわち、5個で除して平均継続時間t4を算出する。白濁検知部220は、この平均継続時間t4を、白濁検知部220の検知結果の信頼度R
2に変換する。たとえば、白濁検知部220は、平均継続時間t4を所定値で除することにより信頼度R
2を算出する。また、白濁検知部220は、白濁していると検知された検知領域に関するエッジ強度の平均値A
E2の総和を検知領域の個数、すなわち、5個で除して、平均エッジ強度A
A2を算出する。
【0037】
白濁検知部220は、撮影画像取得部100が撮影画像を出力するごとに、全ブロックB(x,y)の各々についてスコアS
2(x,y)を更新する。また、白濁検知部220は、t1フレームが経過するごとにスコアS
2(x,y)をフレーム数t1で除して、正規化スコアNS
2(x,y)を算出する。また、白濁検知部220は、毎フレームごとに信頼度R
2と、白濁していると検知された検知領域の個数N
2と、平均エッジ強度A
A2と、最新の正規化スコアNS
2(x,y)とをシステムギブアップ判定部400へ出力する。白濁検知部220は、正規化スコアNS
2(x,y)等をシステムギブアップ判定部400へ出力した後、スコアS
2(x,y)をゼロにリセットする。
【0038】
(水滴痕検知部230)
水滴痕検知部230の動作について説明する。水滴痕検知部230も、水滴検知部210と同様に、撮影画像30の画像領域を
図4(a)に示されるように複数のブロックB(x,y)に分割する。
【0039】
水滴痕検知部230は、撮影画像30全体に対して水平方向に走査する縦エッジ検出処理を行い、画素ごとのエッジ強度を生成する。そして、水滴痕検知部230は、各ブロックB(x,y)ごとにそのブロックB(x,y)に含まれる同じ画素位置に所定フレーム連続して同じ方向のエッジが検出されたかどうかに基づいてブロックB(x,y)のスコアS
3(x,y)を所定値増加させる。たとえば、同じ画素位置に所定フレーム連続して検出された同じ方向のエッジの個数が所定の閾値を超えているブロックB(x,y)について、スコアS
3(x,y)に1を加算する。
【0040】
水滴痕検知部230は、各ブロックB(x,y)のスコアS
3(x,y)が最適閾値を超えてからの経過時間t5(x,y)を計時する。そして、水滴痕検知部230は、全ブロックB(x,y)の経過時間t5(x,y)の平均を算出し、その算出結果に基づいて信頼度R
3を算出する。たとえば、水滴痕検知部230は、全ブロックB(x,y)の経過時間t5(x,y)の平均を所定値で除することにより、信頼度R
3を算出する。
【0041】
水滴痕検知部230は、撮影画像取得部100が撮影画像を出力するごとに、ブロックB(x,y)の各々についてスコアS
3(x,y)を更新する。また、水滴痕検知部230は、t1フレームが経過するごとにスコアS
3(x,y)をフレーム数t1で除して、正規化スコアNS
3(x,y)を算出する。
【0042】
水滴痕検知部230は、全ブロックB(x,y)の中からスコアS
3(x,y)が所定値以上のブロックを検出して、検出されたブロックの個数N
3を算出する。水滴痕検知部230は、毎フレームごとに信頼度R
3と、最新の正規化スコアNS
3(x,y)と、スコアS
3(x,y)が所定値以上のブロックの個数N
3とをシステムギブアップ判定部400へ出力する。水滴痕検知部230は、正規化スコアNS
3(x,y)等をシステムギブアップ判定部400へ出力した後、スコアS
3(x,y)をゼロにリセットする。
【0043】
(泥検知部240)
泥検知部240の動作について説明する。泥検知部240も、水滴検知部210と同様に、撮影画像30の画像領域を
図4(a)に示されるように複数のブロックB(x,y)に分割する。
【0044】
泥検知部240は、撮影画像30の各画素の輝度を検出する。そして、泥検知部240は、各ブロックB(x,y)ごとにそのブロックB(x,y)に含まれる各画素の輝度の総和I
T(x,y)を算出する。泥検知部240は、現フレームTの撮影画像について算出したI
T(x,y)と前フレームT−1の撮影画像について同様に算出したI
T−1(x,y)との差ΔI(x,y)を各ブロックB(x,y)ごとに算出する。
【0045】
泥検知部240は、このΔI(x,y)が小さく、更にI
T(x,y)が周囲のブロックと比較して小さいブロックB(x,y)を検出して、そのブロックB(x,y)に対応するスコアS
4(x,y)を1増加させる。また、泥検知部240は、スコアS
4(x,y)がリセットされるまでの間、ブロックB(x,y)ごとにΔI(x,y)を積算する。
【0046】
泥検知部240は、撮影画像取得部100が撮影画像を出力するごとに、ブロックB(x,y)の各々についてスコアS
4(x,y)を更新する。また、泥検知部240は、t1フレームが経過するごとにスコアS
4(x,y)をフレーム数t1で除して、正規化スコアNS
4(x,y)を算出する。
【0047】
また、泥検知部240は、各ブロックB(x,y)のスコアS
4(x,y)が最適閾値を超えてからの経過時間t6(x,y)を計時する。そして、泥検知部240は、全ブロックB(x,y)の経過時間t6(x,y)の平均を算出し、その算出結果に基づいて信頼度R
4を算出する。たとえば、泥検知部240は、全ブロックB(x,y)の経過時間t6(x,y)の平均を所定値で除することにより、信頼度R
4を算出する。
【0048】
また、泥検知部240は、毎フレームごとに信頼度R
4と、最新の正規化スコアNS
4(x,y)と、スコアS
4(x,y)が所定値以上のブロックの個数N
4とをシステムギブアップ判定部400へ出力する。泥検知部240は、正規化スコアNS
4(x,y)等をシステムギブアップ判定部400へ出力した後、スコアS
4(x,y)をゼロにリセットする。
【0049】
(追尾部300)
図6は、追尾部300の機能構成例を示す。
図6に例示する追尾部300は、レーントラッキング部310と路面トラッキング部320と立体物トラッキング部330と路面ペイント検知部340と距離分解能チェック部350とを有する。
【0050】
(レーントラッキング部310)
レーントラッキング部310は、アプリケーション実行部500によるレーンマークの認識結果(後述)に基づいて、レーンマークを追尾する。そして、レーントラッキング部310は、その追尾が成功したか否かを判定する。すなわち、レーントラッキング部310は、所定フレームTの撮影画像から認識されたレーンが次フレームT+1の撮影画像中に含まれると推測される位置で認識されるか否かを判定する。レーンマークの追尾が成功した場合、レーントラッキング部310は、追尾対象のレーンマークの像を含む画像領域については視認性がよいと判断する。
【0051】
図7(a)〜(d)に示す例を用いて、レーントラッキング部310の動作について説明する。
図7(d)に示すように、車両9が破線のレーンマークで挟まれた車線を走行しているものとする。車両9の後方を撮影するカメラ2bは、フレームTでは
図7(a)に示すような像を撮影する。
図7(a)に示す撮影画像は、複数の分割画像ブロックB(x,y)で分割されている。
図7(a)の撮影画像の下辺領域のブロックB(x,y)には、車両9のバンパーの像が写り、そのバンパーの像の両端近傍にはレーンマーク111および112の端部の像が写っている。
【0052】
アプリケーション実行部500は、水平方向に走査する縦エッジ検出処理により、撮影画像中からレーンマーク111および112に関する特徴点を検出する。レーントラッキング部310は、アプリケーション実行部500からそれらの特徴点の位置と特徴量(輝度差)に関する情報を取得する。
図7(a)では、太線で囲われたブロックB(x,y)の画像領域113および114からレーンマーク111および112に関する特徴点が検出される。
【0053】
レーントラッキング部310は、車両9の走行速度、フレームレート等に基づいて、次フレームT+1の撮影時点での車両9の位置を推定する。レーントラッキング部310は、その車両9の推定位置に基づいて、次フレームT+1においてそれらの特徴点がどの画像領域に移動するかを推測する。たとえば、レーントラッキング部310は、
図7(b)に示す画像領域115および116に特徴点が含まれると推測する。
【0054】
アプリケーション実行部500は、フレームT+1でも水平方向に走査する縦エッジ検出処理により、撮影画像中からレーンマーク111および112に関する特徴点を検出する。レーントラッキング部310は、フレームT+1においてアプリケーション実行部500が検出した特徴点の位置と特徴量に関する情報を取得する。
【0055】
レーントラッキング部310は、フレームTに取得したレーンマーク111および112に関する特徴点と同じ特徴量を有する特徴点が画像領域115および116から検出されたか否かを判定する。レーントラッキング部310は、フレームTで取得したレーンマーク111および112に関する特徴点と同じ特徴量を有する特徴点が画像領域115および116から検出された場合、画像領域113〜116に含まれる複数の画像分割ブロックB(x,y)については、視認性がよいと判断する。
図7(c)には、視認性がよいとレーントラッキング部310が判断した複数の画像分割ブロックB(x,y)が太線で囲われている。
【0056】
レーントラッキング部310は、各ブロックB(x,y)の視認性の良さを視認可能領域V1(x,y)で表す。レーントラッキング部310は、
図7(c)に示したような視認性がよいと判断した複数の画像分割ブロックB(x,y)に対応する視認可能領域V1(x,y)の値を所定値増加させる。レーントラッキング部310は、フレームごとにこの視認可能領域V1(x,y)を更新する。そして、レーントラッキング部310は、フレームごとに更新した視認可能領域V1(x,y)をシステムギブアップ判定部400に出力する。
【0057】
(路面トラッキング部320)
路面トラッキング部320は、撮影画像取得部100が撮影画像を出力するたびに、その撮影画像に対して水平方向と垂直方向の2方向に走査して縦エッジ検出と横エッジ検出を行う。水平方向の縦エッジ検出では、路面トラッキング部320は、垂直方向に隣接する二つの画素の輝度差を算出して、二つの画素のうち暗い画素から明るい画素に向かうベクトルを検出する。垂直方向の横エッジ検出では、路面トラッキング部320は、水平方向に隣接する二つの画素の輝度差を算出して、二つの画素のうち暗い画素から明るい画素に向かうベクトルを検出する。路面トラッキング部320は、2方向のエッジ検出の結果でそれぞれ検出された暗い画素から明るい画素に向かうベクトルを画素ごとに合成して、その合成ベクトルが向く方向に基づいてエッジ角度を算出する。たとえば、画素から左隣の画素に向かうベクトルと上隣の画素に向かうベクトルとが検出されている場合は、左上方向のベクトルに合成され、エッジ角度は45°となる。
【0058】
路面トラッキング部320は、画素ごとに算出したエッジ角度についてヒストグラムを生成する。このヒストグラムのことをエッジ角度ヒストグラムと呼ぶ。エッジ角度ヒストグラムは、たとえば45°刻みで8個の階級に分けられる。
【0059】
路面トラッキング部320は、フレームTの撮影画像のエッジ画像から、路面テクスチャ領域のエッジを検出する。
図8(a)の例では、路面トラッキング部320は、フレームTの撮影画像から路面テクスチャ領域121のエッジを検出する。路面テクスチャ領域121は、たとえば路面上の汚れによる模様や工事によりできた補修である。路面トラッキング部320は、その路面テクスチャ領域121を有するブロックB(x,y)の画像領域122について、エッジ角度ヒストグラムH
Tを生成する。
【0060】
路面トラッキング部320は、車両9の走行速度、フレームレートに基づいて、次フレームT+1の撮影時点での車両9の位置を推定する。路面トラッキング部320は、その車両9の推定位置に基づいて、次フレームT+1において路面テクスチャ領域121がどの画像分割ブロックB(x,y)に含まれるかを推測する。
図8(b)には、次フレームT+1の撮影画像において路面テクスチャ領域121が含まれると推測された複数の画像分割ブロックB(x,y)を含む画像領域123が例示されている。
【0061】
路面トラッキング部320は、次フレームT+1の撮影画像において路面テクスチャ領域121が含まれると推測されたブロックB(x,y)を含む画像領域123について、エッジ角度ヒストグラムH
T+1を生成する。路面トラッキング部320は、エッジ角度ヒストグラムH
T+1がエッジ角度ヒストグラムH
Tと一致する場合、フレームTおよびT+1において路面上の路面テクスチャ領域121の追尾が成功したものとして判断する。そして、路面トラッキング部320は、画像領域122および123に含まれるブロックB(x,y)については、視認性がよいと判断する。
図8(c)には、路面トラッキング部320が視認性がよいと判断したブロックB(x,y)が太線で囲われている。
【0062】
路面トラッキング部320は、視認性の良い画像分割ブロックB(x,y)を視認可能領域V2(x,y)で表す。路面トラッキング部320は、
図8(c)に示した視認性がよいと判断した画像分割ブロックB(x,y)に対応する視認可能領域V2(x,y)の値を所定値増加させる。路面トラッキング部320は、フレームごとにこの視認可能領域V2(x,y)を更新する。そして、路面トラッキング部320は、フレームごとに更新した視認可能領域V2(x,y)をシステムギブアップ判定部400に出力する。
【0063】
(立体物トラッキング検知330)
立体物トラッキング部330は、カメラ2aおよび2bが撮影した画像に基づいて鳥瞰画像を生成して、車両9の周辺に存在する立体形状の物体を追尾する。そして、立体物トラッキング部330は、立体形状の物体の追尾が成功したか否かを判定する。
【0064】
路上を走行する車両9の周辺には、塀、壁、電柱などの立体形状を有する物体が存在する。以降、立体形状を有する物体のことを立体物と記載する。立体物は、鉛直方向上向きに延びる辺を有することが多い。鉛直方向上向きに延びる辺は、鳥瞰画像においてカメラ2aまたは2bを中心にした放射状に延在する。立体物トラッキング部330は、鳥瞰画像に対してカメラ2aまたは2bを中心とした放射方向のエッジ検出を行い、立体物の特徴点を検出し、立体物を認識する。立体物トラッキング部330は、所定フレームTで認識された立体物が次フレームT+1で再び認識されるか否かを判定する。立体物トラッキング部330は、立体物の追尾が成功した場合、追尾対象の物体の像を含む画像領域については視認性がよいと判断する。
【0065】
図9に示す概略鳥瞰図のように、車両9の右後方(図面左上方向)に塀131が存在している状況を考える。車両9の後方を撮影するカメラ2bは、フレームTでは
図10(a)に示すような像を撮影する。
図10(a)に示す撮影画像は、複数の画像分割ブロックB(x,y)で分割されている。
図10(a)の撮影画像には、塀131の像が写っている。
【0066】
立体物トラッキング部330は、撮影画像の鳥瞰画像を生成して、その鳥瞰画像に対してカメラ2bを中心とした放射方向、たとえば、
図9に示す一点鎖線132のような放射線に沿った方向にエッジ検出を行う。このエッジ検出により検出された塀131に関する放射線エッジ量は、たとえば、
図9の鳥瞰図に重ねて示すヒストグラム133のようになる。立体物トラッキング部330は、所定閾値以上のエッジ量が検出された位置に立体物が存在することを認識する。所定閾値は、ガードレールや高速道路の防音壁などのように周期的に撮影画面中に現れる立体物を認識することができ、道路標識や樹木のように周期的に撮影画面中に現れない立体物を認識することができないような値に設定する。
【0067】
図10(a)では、フレームTの撮影画像のうち所定閾値以上の放射線エッジ量が検出された鳥瞰画像の画像領域に対応する部分領域134を太線で示している。立体物トラッキング部330は、車両9の走行速度と、フレームレートに基づいて、次フレームT+1の撮影時点での車両9の位置を推定する。立体物トラッキング部330は、その車両9の推定位置に基づいて、次フレームT+1において部分領域134に含まれた像がどの画像分割ブロックB(x,y)に含まれるかを推測する。
図10(b)に示す一例は、画像領域135で示した複数の画像分割ブロックB(x,y)内に像が含まれると立体物トラッキング部330が判断している一例を示している。
【0068】
立体物トラッキング部330は、
図10(b)に示すような次フレームT+1の撮影画像が撮影画像取得部100から入力されると、その撮影画像の鳥瞰画像を生成する。そして、立体物トラッキング部330は、その鳥瞰画像に対して、カメラ2bを中心とした放射方向のエッジ検出を行う。立体物トラッキング部330は、推測された画像領域135に対応する鳥瞰画像の画像領域から所定値以上の放射線エッジ量が検出された場合、立体物の追尾が成功したと判定する。立体物トラッキング部330は、部分領域134および画像領域135のいずれか少なくとも一方に含まれる画像分割ブロックB(x,y)について視認性がよいと判断する。
【0069】
立体物トラッキング部330は、各ブロックB(x,y)の視認性の良さを視認可能領域V3(x,y)で表す。立体物トラッキング部330は、視認性がよいと判断したブロックB(x,y)に対応する視認可能領域V3(x,y)の値を所定値増加させる。立体物トラッキング部330は、フレームごとにこの視認可能領域V3(x,y)を更新する。そして、立体物トラッキング部330は、フレームごとに更新した視認可能領域V3(x,y)をシステムギブアップ判定部400に出力する。
【0070】
(ペイント検知部340)
ペイント検知部340は、道路標示のように路面上に描かれた所定形状の図形をカメラ2aおよび2bが撮影した画像から認識する。ペイント検知部340は、道路標示等の認識にパターン認識を用いる。たとえば、ペイント検知部340は、
図11(a)に示す撮影画像から道路標示141を認識する。
図11(a)には、フレームTにおいて認識された道路標示141の画像を含むブロックB(x,y)の画像領域142が太線で囲われている。
【0071】
ペイント検知部340は、車両9の走行速度、フレームレート等に基づいて、次フレームT+1の撮影時点での車両9の位置を推定する。ペイント検知部340は、その車両9の推定位置に基づいて、次フレームT+1において道路標示141が検出される画像領域143を推測する。ペイント検知部340は、
図11(b)のように推測された画像領域143からフレームTと同一の道路標示141が検出されたか否かをパターン認識の手法を用いて判定する。ペイント検知部340は、推測された画像領域143からフレームTと同一の道路標示141が検出された場合、画像領域142および143に含まれるブロックB(x,y)の視認性がよいと判断する。
図11(c)には、視認性がよいとペイント検知部340が判断したブロックB(x,y)が太線で囲われている。
【0072】
ペイント検知部340は、各ブロックB(x,y)の視認性の良さを視認可能領域V4(x,y)で表す。ペイント検知部340は、視認性がよいと判断したブロックB(x,y)に対応する視認可能領域V4(x,y)の値を所定値増加させる。ペイント検知部340は、フレームごとにこの視認可能領域V4(x,y)を更新する。そして、ペイント検知部340は、フレームごとに更新した視認可能領域V4(x,y)をシステムギブアップ判定部400に出力する。
【0073】
(距離分解能チェック部350)
カメラ2aおよび2bは、被写体との距離が離れるほど距離分解能が低下する。距離分解能チェック部350は、カメラ2aおよび2bの距離分解能が被写体との距離に応じて低下することを確認する。換言すると、距離分解能チェック部350は、車両9の移動により被写体との距離が変化したときに、被写体に関する距離分解能が適切に変化することを確認する。たとえば、距離分解能チェック部350は、車両9の移動により被写体との距離が離れるときに、被写体に関する距離分解能が低下することを確認する。
【0074】
距離分解能チェック部350は、フレームTの撮影画像中の路面に
図12(a)に示すような画像領域151を設定する。画像領域151は、縦横に2×6個の部分領域151aを有する。距離分解能チェック部350は、車両9の走行速度、フレームレート等に基づいて、次フレームT+1の撮影時点での車両9の位置を推定する。距離分解能チェック部350は、その車両9の推定位置に基づいて、次フレームT+1の撮影画像において画像領域151が設定された路面の像が含まれる画像領域を推測する。
図12(b)には、T+1フレームの撮影画像の一例と共にその推測された画像領域152の一例が図示されている。画像領域152は、画像領域151の部分領域にそれぞれ対応する2×6個の部分領域を有している。
【0075】
撮影画像取得部100からフレームTの撮影画像が出力されると、距離分解能チェック部350は、画像領域151の部分領域151aごとにエッジ強度ヒストグラムH3を生成する。また、撮影画像取得部100からフレームT+1の撮影画像が出力されると、距離分解能チェック部350は、画像領域152の各部分領域ごとにエッジ強度ヒストグラムH4を生成する。エッジ強度ヒストグラムH3およびH4は、各部分領域から検出されたエッジの強度を複数の階級に分類したものである。
【0076】
路面がカメラ2bから離れるほど、距離分解能の低下により、当該路面の模様等は撮影画像中でつぶれてしまう。したがって、路面がカメラから離れるほど、当該路面に関するエッジ強度は低くなる。距離分解能チェック部350は、画像領域152の各部分領域のエッジ強度ヒストグラムH4を対応する画像領域151の部分領域のエッジ強度ヒストグラムH3と比較する。たとえば、距離分解能チェック部350は、画像領域151の各部分領域151aのエッジ強度ヒストグラムH3の平均よりも、当該部分領域151aに対応する画像領域152の部分領域のエッジ強度ヒストグラムH4の平均が小さいか否かを判定する。距離分解能チェック部350は、画像領域152の部分領域のエッジ強度ヒストグラムH4の平均の方が画像領域151の部分領域のエッジ強度ヒストグラムH3よりも小さかったとき、画像領域151を含むブロックB(x,y)と、画像領域152を含むブロックB(x,y)の視認性がよいと判断する。
【0077】
距離分解能チェック部350は、各ブロックB(x,y)の視認性の良さを視認可能領域V5(x,y)で表す。距離分解能チェック部350は、視認性がよいと判断したブロックB(x,y)に対応する視認可能領域V5(x,y)の値を所定値増加させる。距離分解能チェック部350は、フレームごとにこの視認可能領域V5(x,y)を更新する。そして、距離分解能チェック部350は、フレームごとに更新した視認可能領域V5(x,y)をシステムギブアップ判定部400に出力する。
【0078】
(システムギブアップ判定部400)
図13は、システムギブアップ判定部400の機能構成例を示す。
図13に例示するシステムギブアップ判定部400は、ギブアップ部410と、復帰部420と、制御部450とを有する。
【0079】
(ギブアップ部410)
ギブアップ部410は、付着物検知部200の各部の検知結果に基づいて、アプリケーション実行部500の動作のギブアップを行うか否かを判定する。ギブアップ部410は、付着物マップ管理部411と、レンズ状態解析部412と、ギブアップ判定部413とを有する。
【0080】
(付着物マップ管理部411)
付着物マップ管理部411は、付着部検知物200の各部から入力された正規化スコアNS
1(x,y)〜NS
4(x,y)と、信頼度R
1〜R
4とに基づいて、付着物が付着しているブロックB(x,y)を表す付着物マップM
P(x,y)を演算する。
【0081】
付着物マップ管理部411は、たとえば次の演算を行う。付着物マップ管理部411は、付着物マップM
P(x,y)を初期値、たとえば0に初期化する。そして、付着物マップ管理部411は、水滴検知部210から入力された信頼度R
1が所定値以上の場合、正規化スコアNS
1(x,y)の所定定数倍(たとえば、1/4)を付着物マップM
P(x,y)に加算する。同様に、付着物マップ管理部411は、白濁検知部220から入力された信頼度R
2が所定値以上の場合、正規化スコアNS
2(x,y)の所定定数倍を付着物マップM
P(x,y)に加算する。また、同様に、付着物マップ管理部411は、水滴痕検知部230から入力された信頼度R
3が所定値以上の場合、正規化スコアNS
3(x,y)の所定定数倍を付着物マップM
P(x,y)に加算する。また、同様に、付着物マップ管理部411は、泥検知部240から入力された信頼度R
4が所定値以上の場合、正規化スコアNS
4(x,y)の所定定数倍を付着物マップM
P(x,y)に加算する。
【0082】
付着物マップ管理部411が算出した付着物マップM
P(x,y)は、ブロックB(x,y)に対する付着物の付着度合を表す。付着物マップ管理部411は、算出した付着物マップM
P(x,y)を復帰部420と制御部450へ送信する。
【0083】
(レンズ状態解析部412)
レンズ状態解析部412は、付着物検知部200の各部の検知結果を、
図14に示す座標空間に投影する。
図14に示す座標空間は、メモリ10に制御マップ50として記憶されている。制御マップ50は、レンズ汚れの透過率に関する座標軸と、カメラレンズに付着物が付着している付着面積に関する座標軸とを有している。制御マップ50において、レンズ汚れの透過率は、原点から遠ざかるほど不透過になる。また、付着面積は、原点から遠ざかるほど大きくなる。
【0084】
レンズ状態解析部412は、付着物検知部200の各部から入力された正規化スコアNS
1(x,y)〜NS
4(x,y)を用いて(式1)を演算し、制御マップ50上の座標(M(x),M(y))を算出する。M(x)は、カメラ2aおよび2bのレンズ透過率を表す指標であり、値が大きいほどカメラレンズが不透過である状態を表す。M(y)は、付着物の付着面積を表す指標であり、レンズに付着物が付着していないとき0.0となり、レンズの全面に付着物が付着しているとき1.0となる。なお、係数a1、a2、a3、a4、sx、b1、b2、b3、b4、およびsyは予め定められた値であって、M(x)およびM(y)の値がそれぞれ0.0以上1.0以下となるように設定されている。
【0086】
また、制御マップ50には、破線で示す長方形状の水滴範囲51および泥範囲54と、実線で示す長方形状の白濁範囲52および水滴痕範囲53とが予め設定されている。カメラレンズの汚れが水滴のみである場合、座標(M(x),M(y))は、水滴範囲51の内側の座標になる。同様に、カメラレンズの汚れが白濁のみである場合、座標(M(x),M(y))は、白濁範囲52の内側の座標になる。また、同様に、カメラレンズの汚れが水滴痕のみである場合、座標(M(x),M(y))は、水滴痕範囲53の内側の座標になる。また、同様に、カメラレンズの汚れが泥のみである場合、座標(M(x),M(y))は、泥範囲54の内側の座標になる。レンズ状態解析部412は、(式1)を用いて算出した座標(M(x),M(y))をギブアップ判定部413と復帰部420へ送信する。
【0087】
(ギブアップ判定部413)
ギブアップ判定部413は、アプリケーション実行部500によるレーンマーク、他車両、歩行者、道路標識、駐車枠などの検知をギブアップさせるか否かを判定する。ギブアップ判定部413は、たとえば、以下の条件(C1)が成立したとき、アプリケーション実行部500による検知をギブアップさせることを肯定する。
(C1)レンズ状態解析部412で得られた座標(M(x),M(y))に基づいて後述する制御部450が誤検知対策用第3抑制モードまたは不検知対策用第3抑制モードによる処理の実行指令を出力した後、汚れ除去部640を用いた付着物の除去を所定回数以上繰り返しても座標(M(x),M(y))が制御マップ50の原点に近づかない場合。
【0088】
(復帰部420)
復帰部420は、アプリケーション実行部500をギブアップ状態から復帰させる。復帰部420は、復帰マップ管理部421と、復帰判定部425とを有する。
【0089】
(復帰マップ管理部421)
復帰マップ管理部421は、追尾部300の各部から入力される視認可能領域V1(x,y)、V2(x,y)、V3(x,y)、V4(x,y)、V5(x,y)を用いて、(式2)を演算して復帰マップM
R(x,y)を生成する。
M
R(x,y)=V1(x,y)+V2(x,y)+V3(x,y)+V4(x,y)+V5(x,y) …(式2)
【0090】
この復帰マップM
R(x,y)の値が大きいほど、ブロックB(x,y)の画像に対応するレンズ表面は付着物が少なくきれいであることを表す。
【0091】
(復帰判定部425)
復帰判定部425は、付着物マップ管理部411が出力した付着物マップM
P(x,y)と、レンズ状態解析部412が出力した座標(M(x),M(y))と、復帰マップ管理部421が生成した復帰マップM
R(x,y)とに基づいて、アプリケーション実行部500をギブアップ状態から復帰させるか否かを判定する。
【0092】
復帰判定部425は、以下の条件(C3)、(C4)、(C5)のすべてが満たされたとき、アプリケーション実行部500をギブアップ状態から復帰させることを肯定する。
(C3)すべてのブロックB(x,y)に対する付着物マップM
P(x,y)の平均値が減少傾向にある。
(C4)所定時間以上連続して座標(M(x),M(y))が制御マップ50の原点に近づいている。
(C5)追尾部300にてレーンマーク、路面反射などの追尾部300の追尾対象が正しく認識できるほどにカメラレンズの汚れが改善している。
【0093】
条件(C4)の判定では、復帰判定部425は、座標(M(x),M(y))と制御マップ50の原点との間の距離が所定時間の間に小さくなっているか否かを判定する。すなわち、復帰判定部425は、M(x)とM(y)の少なくとも一方が所定時間の間に小さくなり、他方がその所定時間の間に少なくとも大きくなっていないか否かを判定する。
【0094】
条件(C5)の判定では、復帰判定部425は、たとえば、復帰マップM
R(x,y)の平均Σ
xΣ
yM
R(x,y)/N
Bが第1所定閾値以上であるか否かを判定することにしてもよいし、復帰マップM
R(x,y)の総和Σ
xΣ
yM
R(x,y)が第2所定閾値以上であるか否かを判定することにしてもよい。なお、N
Bは、ブロックB(x,y)の総数である。
【0095】
(制御部450)
制御部450は、ギブアップ部410の各部と復帰部420の各部の出力に基づいて、アプリケーション実行部500が画像認識に用いる画像領域を決定する。制御部450は、アプリケーション実行部500が画像認識に用いない画像領域をレンズマップM
L(x,y)で表す。
【0096】
制御部450は、レンズマップ管理部451と抑制制御部452と統合判定部453とを有する。
レンズマップ管理部451は、付着物マップ管理部411が生成した付着物マップM
P(x,y)と、復帰マップ管理部421が生成した復帰マップM
R(x,y)とに基づいて、後にフローチャートと共に説明する方法によりレンズマップM
L(x,y)を更新する。
【0097】
レンズマップM
L(x,y)は、アプリケーション実行部500の各部がレーンマーク、他車両、歩行者、道路標識、駐車枠などの検知を行う際の検知領域を表す。たとえば、レンズマップM
L(x,y)が所定値以上のブロックB(x,y)については、検知領域から除外する。
【0098】
抑制制御部452は、レンズ状態解析部412が出力した座標(M(x),M(y))に基づいて、アプリケーション実行部500の各部の抑制モードの変更に関する判断を実施する。
【0099】
図15に示すように、制御マップ50には、六つの動作決定領域71、72、73、74、75、76が設定されている。
図15には、レンズ状態解析部412により投影変換される座標のうち最も原点から離れている座標77が図示されており、その座標77を中心とする1/4円78,79,80が三つ図示されている。以降、座標77のことを最悪汚濁点77と称する。各1/4円78,79,80の半径は、1/4円78,79,80の順に小さくなる。また、
図15には、1/4円78,79,80の各々を二等分する線分81と、透過率に関する座標軸に平行な線分82と、付着面積に関する座標軸に平行な線分83とが最悪汚濁点77から延ばされている。
【0100】
(誤検知対策)
動作決定領域71は、付着面積に関する座標軸より透過率に関する座標軸が近い位置に存在し、1/4円78の円周と1/4円79の円周と線分81と線分83とで囲われた領域である。座標(M(x),M(y))が動作決定領域71の範囲内の座標であるとき、抑制制御部452は、アプリケーション実行部500に対して誤検知対策用第1抑制モードによる処理の実行指令を出力する。
【0101】
動作決定領域73は、付着面積に関する座標軸より透過率に関する座標軸が近い位置に存在し、1/4円79の円周と1/4円80の円周と線分81と線分83とで囲われた領域である。座標(M(x),M(y))が動作決定領域73の範囲内の座標であるとき、抑制制御部452は、アプリケーション実行部500に対して誤検知対策用第2抑制モードにより処理の実行指令を出力する。
【0102】
動作決定領域75は、付着面積に関する座標軸より透過率に関する座標軸が近い位置に存在し、1/4円80の円周と線分81と線分83とで囲われた領域である。座標(M(x),M(y))が動作決定領域75の範囲内の座標であるとき、抑制制御部452は、アプリケーション実行部500に対して誤検知対策用第3抑制モードによる処理の実行指令を出力する。
【0103】
(不検知対策)
動作決定領域72は、透過率に関する座標軸より付着面積に関する座標軸が近い位置に存在し、1/4円78の円周と1/4円79の円周と線分81と線分82とで囲われた領域である。座標(M(x),M(y))が動作決定領域72の範囲内の座標であるとき、抑制制御部452は、アプリケーション実行部500に対して不検知対策である第1抑制モードによる処理の実行指令を出力する。
【0104】
動作決定領域74は、透過率に関する座標軸より付着面積に関する座標軸が近い位置に存在し、1/4円79の円周と1/4円80の円周と線分81と線分82とで囲われた領域である。座標(M(x),M(y))が動作決定領域74の範囲内の座標であるとき、抑制制御部452は、アプリケーション実行部500に対して不検知対策用第2抑制モードによる処理の実行指令を出力する。
【0105】
動作決定領域76は、透過率に関する座標軸より付着面積に関する座標軸が近い位置に存在し、1/4円80の円周と線分81と線分82とで囲われた領域である。座標(M(x),M(y))が動作決定領域76の範囲内の座標であるとき、抑制制御部452は、アプリケーション実行部500に対して不検知対策用第3抑制モードによる処理の実行指令を出力する。
【0106】
換言すると、抑制制御部452は、座標(M(x),M(y))が透過率に関する座標軸と付着面積に関する座標軸とのどちらに近いかという点に基づいて、誤検知対策および不検知対策のどちらを実行するのかを決定する。また、その決定と同時に、抑制制御部452は、最悪汚濁点77から座標(M(x),M(y))までの距離に基づいて、それらの対策をどの段階の抑制モードで実行するのかを決定する。
【0107】
(統合判定部453)
統合判定部453は、抑制制御部452の決定と、ギブアップ判定部413の判定結果と、復帰判定部425の判定結果とに基づいて、アプリケーション実行部500の各部へのギブアップ、復帰、抑制モード等に関する指令を決定して、その指令をアプリケーション実行部500へ送信する。また、統合判定部453は、抑制制御部452の決定、ギブアップ判定部413の判定結果、復帰判定部425の判定結果、およびアプリケーション実行部500へ送信した指令に関する履歴をメモリ10などに記録する。
【0108】
さらに、統合判定部453は、アプリケーション実行部500の各部のギブアップおよび復帰に関する状況に関する情報をインターフェース部600へ出力する。たとえば、アプリケーション実行部500の各部をギブアップさせた場合には、ギブアップさせたことに関する情報を警報部610に送信して、警報を出力させる。また、たとえば、アプリケーション実行部500の各部をギブアップ状態から復帰させた場合には、統合判定部453は、警報部610による警報を停止させる。
【0109】
(アプリケーション実行部500)
図16は、アプリケーション実行部500の機能構成例を示す。
図16に例示するアプリケーション実行部500は、レーン認識部510と車両検知部520と歩行者検知部530と標識検知部540と駐車枠検知部560とを有する。
【0110】
(レーン認識部510)
図17および
図18を用いて、誤検知対策も不検知対策も実行していない場合のレーン認識部510の動作について説明する。
【0111】
図17は、レーン認識部510の処理に関するフローチャートである。ステップS10では、レーン認識部510は、カメラ2aおよび2bから撮影画像を取得する。ステップS20では、レーン認識部510は、ステップS10で取得した撮影画像から、路面上で自車両9の走行車線の左右に描かれたレーンマークに対応する特徴点を抽出する。レーン認識部510は、たとえば撮影画像内の所定部分に抽出領域を設定して、その抽出領域内で輝度変化が所定の閾値以上であるエッジ点を特徴点として抽出する。
【0112】
図18には、撮影画像から抽出された特徴点の一例が図示されている。
図18に示す撮影画像90は、路面が撮影されている路面画像領域92と、背景が撮影されている背景画像領域93とに分けられている。
図17のステップS20において、レーン認識部510は、
図18に示すように、この撮影画像90に対して、自車両9の右側の車線区画線の内側に対応する抽出領域94と、自車両9の左側の車線区画線の内側に対応する抽出領域95とを設定する。そして、これらの抽出領域94および95の中で隣接する各画素の輝度をそれぞれ比較することでエッジ点を検出し、特徴点96として抽出する。これにより、左右のレーンマークの内側の輪郭線に沿って、特徴点96がそれぞれ複数ずつ抽出される。
【0113】
図17のステップS30では、レーン認識部510は、ステップS20で抽出した特徴点の中から同一直線上に所定個数N
th個以上並んでいる特徴点群を、レーンマークとして認識する。
図18の例では、抽出領域94および95の中でそれぞれ11個の特徴点96が同一直線状に並んでいる。たとえば、所定個数N
thが5個であれば、
図18に例示された抽出領域94および95の中の特徴点群はそれぞれレーンマークとして認識する。レーン認識部510は、ステップS30で認識されたレーンマークに関する情報をインターフェース部600などへ出力する。
【0114】
ステップS40では、レーン認識部510は、ステップS30でレーンマークとして認識された特徴点群に含まれる特徴点の個数の時間平均を算出する。たとえば、レーン認識部510は、以前のフレームにおいてレーンマークとして認識された各特徴点群に含まれる特徴点の個数についてそれぞれ履歴をメモリ10に記憶しておき、その履歴を用いて特徴点の個数の時間平均を算出する。
【0115】
ステップS50では、レーン認識部510は、ステップS40で算出された特徴点の個数の時間平均に基づいて、レーンマークの視認性を表す指標uを算出する。ステップS60では、レーン認識部510は、レーンマークの視認性を表す指標uが所定の閾値U
th未満か否かを判定する。ステップS60が肯定判定された場合、すなわち指標uが所定の閾値U
th未満の場合、レーン認識部510は、ステップS70の処理に進む。一方、ステップS60が否定判定された場合、すなわち指標uが所定の閾値U
th以上の場合、レーン認識部510は、ステップS10の処理に進み、カメラ2aおよび2bから次フレームの撮影画像を取得する。
【0116】
ステップS70では、レーン認識部510は、警報部610(
図2)から車両逸脱等の警報を出力しないように制御部450に対して指令を出力して、その後ステップS10の処理に進む。レーン認識部510は、ステップS10にてカメラ2aおよび2bから次フレームの撮影画像を取得する。
【0117】
第1抑制モードの誤検知対策では、動作制御部15は、所定個数N
thの設定値を大きくする。これにより、ステップS30において、レーン認識部510が同一直線上に並んだ特徴点群をレーンマークとして認識しにくくなる。また、閾値U
thの設定値を大きくして、誤った警報が出力されにくくする。所定個数N
thの設定値や、閾値U
thの設定値は、座標(M(x),M(y))の位置に基づいて変化させてよい。
【0118】
第1抑制モードの不検知対策では、動作制御部15は、所定個数N
thの設定値を小さくする。これにより、ステップS30において、レーン認識部510が同一直線上に並んだ特徴点群をレーンマークとして認識しやすくなる。また、閾値U
thの設定値を小さくして、警報部610が警報を出力しやすくする。所定個数N
thの設定値や、閾値U
thの設定値は、座標(M(x),M(y))の位置に基づいて変化させてもよい。
【0119】
第2抑制モードの誤検知対策では、動作制御部15は、第1抑制モードよりも所定個数N
thの設定値をさらに大きくする。これにより、レーン認識部510が同一直線上に並んだ特徴点群をレーンマークとしてさらに認識しにくくなる。また、周囲環境認識装置1は、ステップS20における特徴点抽出処理の対象とする画像領域の中から付着物が検知された領域を除外、またはステップS20において抽出された特徴点の中から付着物が検知された領域から抽出された特徴点を除外する。
【0120】
第2抑制モードの不検知対策では、動作制御部15は、第1抑制モードよりも所定個数N
thの設定値をさらに小さくする。これにより、レーン認識部510が同一直線上に並んだ特徴点群をレーンマークとしてさらに認識しやすくなる。
【0121】
第3抑制モードの誤検知対策および第3抑制モードの不検知対策では、動作制御部15は、汚れ除去部640に対してカメラレンズから付着物を除去する指令を出力する。汚れ除去部640による付着物除去動作を行ってもカメラレンズの汚濁状態が改善しない場合、ギブアップ判定部431は、レーン認識部510によるレーン認識をギブアップさせる。
【0122】
なお、駐車枠検知部560が駐車枠を認識するための処理は、
図18を用いて説明したレーン認識部510がレーンマークを認識するための処理と同様である。そして、駐車枠検知部560が各抑制モードの誤検知対策および不検知対策において実施する対策は、レーン認識部510が各抑制モードの誤検知対策および不検知対策において実施した対策と同様の対策でよい。
【0123】
(車両検知部520)
図19を用いて、誤検知対策も不検知対策も実行していない場合の車両検知部520の動作について説明する。
図19は、車両検知部520の処理に関するフローチャートである。
【0124】
ステップS110では、車両検知部520は、カメラ2aおよび2bから撮影画像を取得する。ステップS120では、車両検知部520は、ステップS110で取得した撮影画像に対してエッジ検出処理を実行し、所定の輝度差の閾値I
thを基準にして二値化したエッジ画像を生成する。ステップS130では、車両検知部520は、ステップS120で生成したエッジ画像に対してパターン認識処理を実行し、他車両と推定される画像を検出する。
【0125】
ステップS140では、車両検知部520は、ステップS130において所定フレーム数F
th以上連続して他車両と推定される画像が検出されたか否かを判定する。ステップS140が否定判定された場合、すなわち所定フレーム数F
th以上連続して他車両と推定される画像が検出されていない場合、車両検知部520はステップS110の処理に進み次フレームの撮影画像を取得する。ステップS140が肯定判定された場合、すなわち所定フレーム数F
th以上連続して他車両と推定される画像が検出された場合、車両検知部520はステップS150の処理に進む。ステップS150では、車両検知部520は、所定フレーム数F
th以上連続して他車両と推定された画像を、他車両として認識する。その後、車両検知部520はステップS110の処理に進み次フレームの撮影画像を取得する。
【0126】
第1抑制モードの誤検知対策では、制御部450は、所定フレーム数F
thの設定値を大きくする。所定フレーム数F
thの設定値を大きくすることで、車両検知部520はステップS120において他車両と推定された画像を他車両と認識しにくくなるため、他車両を誤検知することが低減される。
【0127】
第1抑制モードの不検知対策では、制御部450は、所定の輝度差の閾値I
thの設定値を小さくする。所定の輝度差の閾値I
thの設定値を小さくすることで、他車両のエッジが検出されやすくなるため、車両検知部520が他車両を不検知することが低減される。所定の輝度差の閾値I
thの設定値は、座標(M(x),M(y))の位置に基づいて変化させてもよい。
【0128】
第2抑制モードの誤検知対策では、制御部450は、ステップS120やステップS130の処理対象とする画像領域の中から付着物が検知された領域を除外する。また、制御部450は、車両検知部520が検知対象とする他車両を自車両9にとって危険性の高い車両に絞り、その他の車両を検知対象から除外する。たとえばカメラ2aの撮影画像からは自車両9の走行車線を走行する前方の他車両のみを検知対象とする。また、たとえばカメラ2bの撮影画像からは自車両9の走行車線を走行し、自車両9に接近してくる他車両のみを検知対象にする。
【0129】
第2抑制モードの不検知対策では、制御部450は、第1抑制モードよりも所定の輝度差の閾値I
thの設定値をさらに小さくする。または、車両検知部520は、撮影画像のコントラストが低い場合でも他車両の特徴量を検出可能な他の車両認識方法を用いる。
【0130】
第3抑制モードの誤検知対策および第3抑制モードの不検知対策では、制御部450は、汚れ除去部640に対してカメラレンズから付着物を除去する指令を出力する。汚れ除去部640による付着物除去動作を行ってもカメラレンズの汚濁状態が改善しない場合、制御部450は、車両検知部520による他車両の認識を断念する。
【0131】
なお、歩行者検知部530および標識検知部540がそれぞれ歩行者や道路標識を認識するための処理は、
図19を用いて説明した車両検知部520が他車両を認識するための処理と同様である。そして、歩行者検知部530および標識検知部540が各抑制モードの誤検知対策および不検知対策において実施する対策は、車両検知部520が各抑制モードの誤検知対策および不検知対策において実施した対策と同様の対策でよい。
【0132】
図20は、システムギブアップ判定部400の動作に関するフローチャートである。システムギブアップ判定部400には、付着物検知部200の各部または追尾部300の各部から検知結果や視認可能領域等が入力される。
【0133】
ステップS81では、システムギブアップ判定部400は、入力された情報が付着物検知部200の各部の検知結果であるか、追尾部300の各部から出力された視認可能領域であるかを判定する。システムギブアップ判定部400は、付着物検知部200の各部の検知結果が入力された場合は、ステップS82の処理に進み、追尾部300の各部から出力された視認可能領域である場合は、ステップS90の処理に進む。
【0134】
ステップS82では、ギブアップ部410の付着物マップ管理部411が付着物検知部200の各部の出力結果に基づいて、付着物マップM
P(x,y)の管理を行う。付着物マップ管理部411は、付着物マップM
P(x,y)を復帰部420へ出力する。
【0135】
ステップS83では、ギブアップ判定部410のレンズ状態解析部412が座標(M(x),M(y))を算出する。レンズ状態解析部412は、算出した座標(M(x),M(y))をギブアップ判定部413と復帰部420と制御部450に出力する。
【0136】
ステップS84では、抑制制御部452がステップS83でレンズ状態解析部412が算出した座標(M(x),M(y))に基づいて、抑制モードを決定する。
【0137】
ステップS85では、ギブアップ判定部413がアプリケーション実行部500によるレーンマーク、他車両、歩行者、道路標識、駐車枠などの検知をギブアップさせるか否かを判定する。すなわち、ギブアップ判定部413は、上記条件(C1)が成立したか否かを判定する。ギブアップ判定部413は、上記条件(C1)が成立しなかった場合は、ステップS85を否定判定して、ステップS86の処理に進む。ギブアップ判定部413は、上記条件(C1)が成立した場合は、ステップS85を肯定判定して、ステップS87の処理に進む。
【0138】
ステップS86では、抑制制御部452がステップS85で決定した抑制モードが直前の抑制モードから変化したか否かを判定する。ここで、抑制モードの変化とは、第1抑制モードから第2抑制モードに遷移した等、抑制モードのレベルが上下したこと、誤検知対策用の抑制モードと不検知対策用の抑制モードとが切り替わったことなどの変化を含む。抑制制御部452は、抑制モードが変化しなかった場合、ステップS86を否定判定して、ステップS89へ処理を進める。抑制制御部452は、抑制モードが変化した場合、ステップS86を肯定判定して、ステップS87へ処理を進める。
【0139】
ステップS87では、付着物マップ管理部411が出力した付着物マップM
P(x,y)をレンズマップM
L(x,y)に代入する。たとえば、
図21(a)に示すような付着物マップM
P(x,y)の値をレンズマップM
L(x,y)に代入することにより、レンズマップM
L(x,y)の値は、
図21(b)に示すような値となる。
【0140】
ステップS88では、抑制制御部452がアプリケーション実行部500への抑制制御を決定し、統合判定部453が抑制制御に関する指令をアプリケーション実行部500へ送信する。
ステップS89では、統合判定部453がアプリケーション部500の各部のギブアップおよび復帰に関する状況に関する情報をインターフェース部600へ出力して、ステップS81の処理に戻る。
【0141】
ステップS90では、復帰マップ管理部421が追尾部300の各部から入力される視認可能領域V1(x,y)、V2(x,y)、V3(x,y)、V4(x,y)、V5(x,y)を用いて、復帰マップM
R(x,y)を生成する。
【0142】
ステップS91では、復帰判定部425が復帰判定を行う。復帰判定部425は、上記の条件(C3)、(C4)、(C5)のすべてが満たされたか否かを判定する。復帰判定部425は、上記の条件(C3)、(C4)、(C5)のいずれかが満たされなかった場合、ステップS91の処理を否定判定して、ステップS90の処理に進む。復帰判定部425は、上記の条件(C3)、(C4)、(C5)のすべてが満たされた場合、ステップS91の処理を肯定判定して、ステップS92の処理に進む。
【0143】
ステップS92では、レンズマップ管理部451がステップS90で生成された復帰マップM
R(x,y)に基づいて、レンズマップM
L(x,y)を更新する。たとえば、レンズマップ管理部451は、M
L(x,y)−M
R(x,y)を算出して、その結果をM
L(x,y)とする。たとえば、
図22(a)に示すようなレンズマップM
L(x,y)の値から
図22(b)に示す復帰マップM
R(x,y)の値を減ずることにより、レンズマップM
L(x,y)の値が
図22(c)に示すような値に更新される。
ステップS92でレンズマップM
L(x,y)を更新した後、システムギブアップ判定部400は、ステップS88の処理に進む。
【0144】
以上説明した実施の形態によれば、以下の作用効果が得られる。
(1)周囲環境認識装置1は、カメラレンズに付着した付着物を検知する付着物検知部200と、カメラから異なるフレームでそれぞれ取得した複数の撮影画像の互いに対応する画像領域から同一構造物の特徴量を検出する、換言すると基準フレームに取得された撮影画像の所定領域から追尾対象の画像の特徴量を検出して、基準フレームよりも後のフレームに取得した撮影画像から同一の追尾対象の画像の特徴量が検出されるべき推定領域を算出して、推定領域の中の同一の追尾対象の画像の特徴量の有無を判断する追尾部300、たとえばレーントラッキング部310と、撮影画像に基づいて車両9の周囲環境に存在する所定の物体像を認識するアプリケーション実行部500、たとえばレーン認識部510と、付着物検知部200の検知結果に基づいてアプリケーション実行部500の動作を中止させるか否かを判定するギブアップ判定部413と、追尾部300による追尾の成否、すなわち同一の追尾対象の画像の特徴量の検出の成否に基づいてアプリケーション実行部500の動作をギブアップ状態から復帰させるか否かを判定する復帰判定部425と、を備える。したがって、周囲環境認識装置1は、復帰判定部425がギブアップ判定部413の判定で用いる情報とは性質の異なる情報に基づいてアプリケーション実行部500の各部のギブアップと復帰の判定を行うため、物体の検知処理のギブアップと復帰を安定させることができる。
【0145】
また、追尾部300、たとえばレーントラッキング部310は、フレームTに取得した撮影画像の所定の画像領域、たとえば画像領域113から追尾対象に関する特徴量、たとえばレーンマーク111に関する特徴点を検出する。追尾部300、たとえばレーントラッキング部310は、フレームT+1に取得した撮影画像からその特徴量が検出されるべき推定領域、たとえば画像領域115を算出する。追尾部300、たとえばレーントラッキング部310は、その推定領域からフレームTで検出された特徴量と同一の特徴量が検出された場合、追尾対象、たとえばレーンマークの追尾が成功したと判断する。周囲環境認識装置1は、特定の特徴量が検出されるべき画像領域からその特徴量が検出されることを追尾部300が判定することにより、物体の検知処理の復帰を精度よく判定することができる。
【0146】
(2)追尾部300、たとえばレーントラッキング部310は、追尾対象の追尾が成功した場合、当該追尾に用いた所定領域、たとえば画像領域113と、推定領域、たとえば画像領域115についてカメラレンズの視認性に関する指標、たとえば視認可能領域V1(x,y)を所定量増加させ、追尾対象の追尾が失敗した場合、視認性に関する指標を増加させず、復帰判定部425は、撮影画像に含まれる複数の画像領域の各々、たとえば分割画像ブロックB(x,y)に関する複数の視認性に関する指標の総和が所定閾値以上である場合、たとえば条件(C5)を満足する場合、アプリケーション実行部500の動作を中止状態から復帰させるよう判定する。したがって、物体の検知処理の復帰を精度よく判定することができる。
【0147】
(3)復帰判定部425は、追尾部300による追尾対象の追尾の成否による復帰条件、たとえば条件(C5)と付着物検知部200の検知結果による復帰条件、たとえば条件(C3)および(C4)が成立した場合、アプリケーション実行部500の動作を中止状態から復帰させるよう判定する。したがって、物体の検知処理の復帰を追尾対象の追尾の成否による復帰条件だけで判定している場合よりもさらに精度よく判定することができる。
【0148】
(4)レンズ状態解析部412は、付着物検知部200の各部の検知結果に基づいて、カメラ2aおよび2bのカメラレンズのレンズ透過率に関する指標であるM(x)と、付着物の付着面積に関する指標であるM(y)とを算出する。そして、復帰判定部425は、カメラレンズのレンズ透過率と付着物の付着面積とのいずれか少なくとも一方が改善しているか否かを判定する(条件(C4))。したがって、アプリケーション実行部500の動作の復帰を精度よく判断することができる。
【0149】
(5)付着物検知部200は、レンズに付着する複数種類の付着物、たとえば水滴、白濁、水滴痕、泥などを検出する。付着物マップ管理部411は、付着物検知部200が検知した複数種類の付着物の各検知結果に基づいて複数の検知結果を統合して座標(M(x),M(y))を算出する。したがって、複数の検知結果によってアプリケーション実行部500が矛盾した動作を行うことが防止される。
【0150】
以上説明した実施形態は、以下のように変形して実施できる。
上記の実施の形態では、カメラ2aおよび2bを用いて車両の前方または後方の路面を撮影したが、さらに車両の左側方または右側方の路面を撮影するカメラを設けることにしてもよい。また、車両の周囲の路面を撮影できる限り、カメラの設置位置および撮影範囲をどのように設定しても構わない。
【0151】
上記の実施の形態では、追尾部300は、車両9の移動量を車両9の走行速度に基づいて算出したが、他の方法で算出することにしてもよい。たとえば、追尾部300は、CANに接続されているカーナビゲーション装置から車両9の移動量を取得することにしてもよい。
【0152】
上記の実施の形態では、付着物検知部200は、水滴検知部210と白濁検知部220と水滴痕検知部230と泥検知部240とを有することにした。しかし、付着物検知部200は、これらの一部を有しないことにしてもよいし、他の検知部をさらに有することにしてもよい。なお、水滴検知部210と白濁検知部220と水滴痕検知部230と泥検知部240のいずれかが存在しない場合、存在しない検知部に関する正規化スコアと、その正規化スコアに乗ぜられる係数とを式(1)から削除することにしてもよいし、存在しない検知部に関する正規化スコアをゼロとして式(1)を算出することにしてもよい。また、制御マップ50は、あくまで一例であって、水滴検知部210と白濁検知部220と水滴痕検知部230と泥検知部240のいずれかが存在しない場合、水滴範囲51および泥範囲54と、実線で示す長方形状の白濁範囲52および水滴痕範囲53とのうち存在しない検知部に対応する領域を設けない。また、制御マップ50の座標軸は、レンズ汚れの透過率に関する座標軸やカメラレンズに付着物が付着している付着面積に関する座標軸以外の座標軸でもよい。
【0153】
上記の実施の形態では、復帰判定部425は、上記条件(C3)、(C4)、(C5)のすべてが満たされたとき、アプリケーション実行部500をギブアップ状態から復帰させることを肯定することにした。しかし、復帰判定部425は、少なくとも条件(C5)が成立していれば、アプリケーション実行部500をギブアップ状態から復帰させることを肯定することにしてもよい。たとえば、条件(C5)だけが満たされた場合、条件(C5)および(C3)が満たされた場合、条件(C5)および(C4)が満たされた場合などであってもアプリケーション実行部500をギブアップ状態から復帰させることを肯定することにしてもよい。また、条件(C5)については、追尾部300の追尾対象が正しく認識したら直ちにアプリケーション実行部500をギブアップ状態から復帰させるか否かを判定することにしてもよい。
【0154】
上記の実施の形態では、距離分解能チェック部350は、画像領域151の各部分領域151aのエッジ強度ヒストグラムH3の平均よりも、当該部分領域151aに対応する画像領域152の部分領域のエッジ強度ヒストグラムH4の平均が小さいか否かの判定に基づいて、画像領域151を含むブロックB(x,y)と画像領域152を含むブロックB(x,y)の視認性を判断した。しかし、距離分解能チェック部350は、他の判定方法で画像領域151を含むブロックB(x,y)と画像領域152を含むブロックB(x,y)の視認性を判断することにしてもよい。たとえば、距離分解能チェック部350は、次の手順で判定を行うことにしてもよい。距離分解能チェック部350は、画像領域151の上側(遠方側)の6個の部分領域151aの各エッジ強度と画像領域152の上側(遠方側)の6個の部分領域の各エッジ強度との差をそれぞれ算出する。また、距離分解能チェック部350は、画像領域151の下側(至近側)の6個の部分領域151aと画像領域152の下側(至近側)の6個の部分領域との間のエッジ強度の差をそれぞれ算出する。距離分解能チェック部350は、上側(遠方側)の部分領域間のエッジ強度の低下量が下側(至近側)の部分領域間のエッジ強度の低下量よりも小さいか否かをさらに判定する。距離分解能チェック部350は、上側(遠方側)の部分領域間のエッジ強度の低下量が下側(至近側)の部分領域間のエッジ強度の低下量よりも小さい場合、画像領域151を含むブロックB(x,y)と画像領域152を含むブロックB(x,y)の視認性がよいと判断する。
【0155】
上記の実施の形態では、ギブアップ判定部413は、条件(C1)が成立したとき、アプリケーション実行部500によるレーンマーク、他車両、歩行者、道路標識、駐車枠などの検知をギブアップさせることにした。しかし、ギブアップ判定部413は、アプリケーション実行部500による検知をギブアップさせることの代わりに、アプリケーション実行部500による検知結果に基づいた出力を中止させることにしてもよい。たとえば、車両検知部520による他車両の検知結果に基づいて他車両との衝突のおそれがある場合に警告音声を出力する場合には、その警告音声の出力を中止させることにしてもよい。このようにすることで、カメラレンズの汚れを他車両と認識して、警告音声を誤って出力することを防ぐことができる。また、ギブアップ判定部413は、レーン認識部510に対しては、レーン認識部510によるレーンマークの検知をギブアップさせる代わりに、所定の閾値U
thを小さくして、ステップS50が肯定判定され易くすることにしてもよい。
【0156】
上記の実施の形態では、周囲環境認識装置1は、車両9に搭載されるものとして説明したが、軽車両、列車などの他の移動体に搭載されることにしてもよい。
【0157】
以上で説明した実施の形態や変形例はあくまで例示に過ぎず、発明の特徴が損なわれない限り本発明はこれらの内容に限定されない。また、以上で説明した実施の形態や変形例は発明の特徴が損なわれない限り組み合わせて実行してもよい。