以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値などは、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書および図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。
近年では、車両に搭載した車載カメラによって自車両の前方の道路環境を撮像し、撮像した画像内における色情報や位置情報に基づいて先行車両等の対象物を特定し、特定された対象物との衝突を回避したり、先行車両との車間距離を安全な距離に保つ(ACC:Adaptive Cruise Control)、所謂衝突防止機能を搭載した車両が普及しつつある。
かかるACCや衝突防止機能では、例えば、自車両前方に位置する対象物の、自車両との相対距離を導出し、かかる相対距離に基づいて、自車両の前方に位置する対象物との衝突を回避したり、対象物が車両(先行車両)であった場合、その先行車両との相対距離を安全な距離に保つように制御する。また、先行車両のブレーキランプの点灯有無等を認識し、先行車両の減速動作を推測する処理を組み込むことで、より円滑なクルーズコントロールを実現することが可能となる。以下、このような目的を達成するための環境認識システムを説明し、その具体的な構成要素である車外環境認識装置を詳述する。
(環境認識システム100)
図1は、環境認識システム100の接続関係を示したブロック図である。環境認識システム100は、自車両1内に設けられた、撮像装置110と、車外環境認識装置120と、車両制御装置(ECU:Engine Control Unit)130とを含んで構成される。
撮像装置110は、CCD(Charge-Coupled Device)やCMOS(Complementary Metal-Oxide Semiconductor)等の撮像素子を含んで構成され、自車両1の前方に相当する環境を撮像し、カラー値で表されるカラー画像を生成することができる。ここで、カラー値は、1つの輝度(Y)と2つの色差(UV)からなる、または、3つの色相(R(赤)、G(緑)、B(青))からなる数値群である。
また、撮像装置110は、自車両1の進行方向側において2つの撮像装置110それぞれの光軸が略平行になるように、略水平方向に離隔して配置される。撮像装置110は、自車両1の前方の検出領域に存在する対象物を撮像した画像データを、例えば1/20秒のフレーム毎(20fps)に連続して生成する。ここで、認識する対象物は、車両、歩行者、信号機、道路(進行路)、ガードレール、建物といった独立して存在する立体物のみならず、ブレーキランプ、ハイマウントストップランプ、テールランプ、ウィンカー(方向指示器)、信号機の各点灯部分等、立体物の一部として特定できる物も含む。以下の実施形態における各機能部は、このような画像データの更新を契機としてフレーム毎に各処理を遂行する。
さらに、本実施形態において、撮像装置110は、車外環境の明るさ(照度計の計測結果等)に応じた露光時間や絞りを示す第1露光態様で検出領域を撮像し、第1画像を生成する。また、撮像装置110は、ブレーキランプ等、特定の発光源が自発光しているか否かを判別可能な画像を生成する。その方法としては、ダイナミックレンジが広い撮像素子を用い、発光していない対象物が黒く潰れず、発光源が白とびしないように撮像してもよいし、第1露光態様とは露光態様(露光時間、絞り)が異なる第2露光態様で検出領域を撮像し、第2画像を生成してもよい。例えば、昼間であれば、明るい車外環境に応じた第1露光態様の露光時間より第2露光態様の露光時間を短くして、または、絞りを強くして第2画像を生成する。本実施形態において、第1画像および第2画像はそれぞれカラー画像および距離画像として用いられる。また、上記第1露光態様と第2露光態様とは、以下のようにして実現される。
例えば、撮像装置110の周期的な撮像タイミングを時分割し、第1露光態様による撮像と第2露光態様による撮像とを交互に行うことで、第1画像と第2画像とを順次生成することができる。また、画素毎に2つのキャパシタが設けられ、その2つのキャパシタに並行して電荷をチャージできる撮像素子において、一度の露光でチャージする時間を異ならせて露光態様の異なる2つの画像を並行して生成することもできる。さらに、1つのキャパシタの電荷のチャージ中に、時間を異ならせて2回読み出し、露光態様の異なる2つの画像を並行して生成したりすることでも上記の目的を達成できる。また、撮像装置110を、露光態様を異ならせて予め2セット準備しておき(ここでは、2つの撮像装置110×2セット)、2セットの撮像装置110からそれぞれ画像を生成したりすることも可能である。露光態様を支配する露光時間は、例えば1〜60msecの範囲で適切に制御される。
車外環境認識装置120は、2つの撮像装置110それぞれから画像データを取得し、一方の画像データから任意に抽出したブロック(例えば水平4画素×垂直4画素の配列)に対応するブロックを他方の画像データから検索する、所謂パターンマッチングを用いて視差、および、任意のブロックの画面内の位置を示す画面位置を含む視差情報を導出する。ここで、水平は、撮像した画像の画面横方向を示し、垂直は、撮像した画像の画面縦方向を示す。このパターンマッチングとしては、一対の画像間において、任意のブロック単位で輝度(Y)を比較することが考えられる。例えば、輝度値の差分をとるSAD(Sum of Absolute Difference)、差分を2乗して用いるSSD(Sum of Squared intensity Difference)や、各画素の輝度から平均値を引いた分散値の類似度をとるNCC(Normalized Cross Correlation)等の手法がある。車外環境認識装置120は、このようなブロック単位の視差導出処理を検出領域(例えば600画素×200画素)に映し出されている全てのブロックについて行う。ここでは、ブロックを4画素×4画素としているが、ブロック内の画素数は任意に設定することができる。
ただし、車外環境認識装置120では、検出分解能単位であるブロック毎に視差を導出することはできるが、そのブロックがどのような対象物の一部であるかを認識できない。したがって、視差情報は、対象物単位ではなく、検出領域における検出分解能単位(例えばブロック単位)で独立して導出されることとなる。ここでは、このようにして導出された視差情報を画像データに対応付けた画像を、上述したカラー画像と区別して距離画像という。
図2は、カラー画像126と距離画像128を説明するための説明図である。例えば、2つの撮像装置110を通じ、検出領域124について図2(a)のようなカラー画像(画像データ)126が生成されたとする。ただし、ここでは、理解を容易にするため、2つのカラー画像126の一方のみを模式的に示している。車外環境認識装置120は、このようなカラー画像126からブロック毎の視差を求め、図2(b)のような距離画像128を形成する。距離画像128における各ブロックには、そのブロックの視差が関連付けられている。ここでは、説明の便宜上、視差が導出されたブロックを黒のドットで表している。本実施形態では、このようなカラー画像126と距離画像128とを第1画像および第2画像それぞれに基づいて生成している。したがって、本実施形態では、第1画像に基づくカラー画像126、第1画像に基づく距離画像128、第2画像に基づくカラー画像126、第2画像に基づく距離画像128が用いられる。
また、車外環境認識装置120は、カラー画像126に基づくカラー値、および、距離画像128に基づく自車両1との相対距離を含む実空間における3次元の位置情報を用い、カラー値が等しく3次元の位置情報が近いブロック同士を対象物としてグループ化して、自車両1前方の検出領域における対象物がいずれの特定物(例えば、先行車両)に対応するかを特定する。例えば、相対距離等によって先行車両を特定し、さらに、カラー値によってその先行車両のブレーキランプの位置や点灯有無を把握することができる。このような処理により、ブレーキランプの点灯による当該車両の減速を迅速に把握し、衝突回避制御やACCに利用することが可能となる。
なお、上記相対距離は、距離画像128におけるブロック毎の視差情報を、所謂ステレオ法を用いて三次元の位置情報に変換することで求められる。ここで、ステレオ法は、三角測量法を用いることで、対象物の視差からその対象物の撮像装置110に対する相対距離を導出する方法である。
車外環境認識装置120は、対象物を任意の特定物、例えば、先行車両を特定すると、その先行車両を追跡しつつ、先行車両との相対距離および先行車両の相対速度等を導出し、先行車両と自車両1とが衝突する可能性が高いか否かの判定を行う。このとき、先行車両のブレーキランプを特定していれば、そのブレーキランプの点灯により先行車両の減速を早期に認識できる。ここで、先行車両と衝突の可能性が高いと判定した場合、車外環境認識装置120は、その旨、運転者の前方に設置されたディスプレイ122を通じて運転者に警告表示(報知)を行うとともに、車両制御装置130に対して、その旨を示す情報を出力する。
車両制御装置130は、ステアリングホイール132、アクセルペダル134、ブレーキペダル136を通じて運転者の操作入力を受け付け、操舵機構142、駆動機構144、制動機構146に伝達することで自車両1を制御する。また、車両制御装置130は、車外環境認識装置120の指示に従い、駆動機構144、制動機構146を制御する。例えば、車外環境認識装置120から先行車両と衝突の可能性が高い旨の情報が入力されると、車両制御装置130は、制動機構146を通じて運転者のブレーキ操作を支援する。
以下、車外環境認識装置120の構成について詳述する。ここでは、本実施形態に特徴的な、先行車両やブレーキランプの特定処理について詳細に説明し、本実施形態の特徴と無関係の構成については説明を省略する。
(車外環境認識装置120)
図3は、車外環境認識装置120の概略的な機能を示した機能ブロック図である。図3に示すように、車外環境認識装置120は、I/F部150と、データ保持部152と、中央制御部154とを含んで構成される。
I/F部150は、撮像装置110や車両制御装置130との双方向の情報交換を行うためのインターフェースである。データ保持部152は、RAM、フラッシュメモリ、HDD等で構成され、特定物テーブルや、以下に示す各機能部の処理に必要な様々な情報を保持し、また、撮像装置110から受信した画像データ(第1画像および第2画像に基づくカラー画像126、距離画像128)を一時的に保持する。ここで、特定物テーブルは、以下のように定義される。
図4は、特定物テーブル200を説明するための説明図である。特定物テーブル200では、複数の特定物に対して、カラー値(ここではR、G、B)の範囲を示すカラー範囲202と、道路表面からの高さの範囲を示す高さ範囲204と、特定物の水平距離の幅範囲206と、特定物の垂直距離の幅範囲208と、同一特定物との水平距離の差分210と、同一特定物との垂直距離の差分212と、同一特定物との面積比214とが対応付けられている。ここで、特定物としては、「ブレーキランプ(赤)」、「ハイマウントストップランプ(赤)」、「テールランプ(赤)」、「ウィンカー(橙)」等、車両を特定する際に要する様々な物が想定されている。ただし、特定物は図4に記載された物に限定されないのは言うまでもない。特定物のうち、例えば、特定物「ブレーキランプ(赤)」には、カラー範囲(R)「200以上」、カラー範囲(G)「50以下」、カラー範囲(B)「50以下」、高さ範囲「0.3〜2.0m」、水平距離の幅範囲「0.05〜0.2m」、垂直距離の幅範囲「0.05〜0.2m」、水平距離の差分「1.4〜1.9m」、垂直距離の差分「0.3m以下」、面積比「50〜200%」が対応付けられている。
図3に戻って説明すると、中央制御部154は、中央処理装置(CPU)、プログラム等が格納されたROM、ワークエリアとしてのRAM等を含む半導体集積回路で構成され、システムバス156を通じて、I/F部150、データ保持部152等を制御する。また、本実施形態において、中央制御部154は、画像取得部160、位置情報導出部162、対象物特定部164、位置対応付け部166、配置判定部168、ブレーキランプ特定部170としても機能する。以下、各機能部の動作を説明するとともに、本実施形態に特徴的な車外環境認識処理について詳述する。
(車外環境認識処理)
図5は、車外環境認識処理を示すフローチャートである。車外環境認識装置120の画像取得部160は、撮像装置110から、車外環境の明るさに応じた第1露光態様で検出領域124を撮像した第1画像と、第1露光態様と露光態様が異なる第2露光態様で検出領域124を撮像した第2画像とを取得する(S300)。
続いて、位置情報導出部162は、第1画像に基づく距離画像128における検出領域124内のブロック毎の視差情報を、上述したステレオ法を用いて、水平距離x、(道路表面からの)高さyおよび相対距離zを含む三次元の位置情報に変換する(S302)。ここで、視差情報が、距離画像128における各ブロックの視差を示すのに対し、三次元の位置情報は、実空間における各ブロックの相対距離の情報を示す。また、視差情報が画素単位ではなくブロック単位、即ち複数の画素単位で導出されている場合、その視差情報はブロックに属する全ての画素の視差情報とみなして、画素単位の計算を実行することができる。かかる三次元の位置情報への変換については、特開2013−109391号公報等、既存の技術を参照できるので、ここでは、その詳細な説明を省略する。
次に、対象物特定部164は、第1画像および第2画像に基づいて、画像内の対象物がいずれの特定物に対応するか特定する。本実施形態において、対象物特定部164は、特に、先行する車両(先行車両)と、ブレーキランプ(発光源)と、ハイマウントストップランプ(発光源)を特定する。したがって、以下では、対象物特定部164のうち、先行車両を特定する機能部を車両特定部164aとし、ブレーキランプやハイマウントストップランプを特定する機能部を発光源候補特定部164bとして説明する。また、対象物特定部164(車両特定部164a、発光源候補特定部164b)は、特定物が特定された対象物を追跡(追尾)し、その対象物の自車両1に対する相対距離、相対速度、相対加速度、および、自車両1の走行状態を加味した先行車両の絶対速度、絶対加速度も検出する。
図6および図7は、車両特定部164aの処理を説明するための説明図である。車両特定部164aは、まず、第1画像に基づく距離画像128の検出領域124を、水平方向に対して複数の分割領域216に分割する(S304)。すると、分割領域216は図6(a)のような短冊形状になる。このような短冊形状の分割領域216は、本来、例えば、水平幅4画素のものが150列配列してなるが、ここでは、説明の便宜上、検出領域124を16等分したもので説明する。
続いて、車両特定部164aは、分割領域216毎に、位置情報に基づき、道路表面より上方に位置する全てのブロックを対象に、複数に区分した所定距離それぞれに含まれる相対距離を積算してヒストグラム(図6(b)中、横長の四角(バー)で示す、以下、「距離ヒストグラム」と称する)を生成する(S306)。すると、図6(b)のような距離分布218が得られる。ここで、縦方向は、区分した所定距離(距離区分)を、横方向は、距離区分それぞれに相対距離が含まれるブロックの個数(度数)を示している。ただし、図6(b)は計算を行う上での仮想的な画面であり、実際には視覚的な画面の生成を伴わない。そして、車両特定部164aは、このようにして導出された距離分布218を参照し、ピークに相当する相対距離である代表距離(図6(b)中、黒で塗りつぶした四角で示す)220を特定する(S308)。ここで、ピークに相当するとは、ピーク値またはピーク近傍で任意の条件を満たす値をいう。
次に、車両特定部164aは、隣接する分割領域216同士を比較し、図7に示すように、代表距離220が近接する(例えば、1m以下に位置する)分割領域216をグループ化して1または複数の分割領域群222を生成する(S310)。このとき、3以上の分割領域216で代表距離220が近接していた場合にも、連続する全ての分割領域216を分割領域群222として纏める。かかるグループ化によって、車両特定部164aは、道路表面より上方に位置する立体物を特定することができる。
続いて、車両特定部164aは、分割領域群222内における、相対距離zが代表距離220に相当するブロックを基点として、そのブロックと、水平距離xの差分、高さyの差分および相対距離zの差分が予め定められた範囲(例えば0.1m)内にあるブロックとを、同一の特定物に対応すると仮定してグループ化する(S312)。こうして、仮想的なブロック群である対象物224が生成される。上記の範囲は実空間上の距離で表され、製造者や搭乗者によって任意の値に設定することができる。また、車両特定部164aは、グループ化により新たに追加されたブロックに関しても、そのブロックを基点として、水平距離xの差分、高さyの差分および相対距離zの差分が所定範囲内にあるブロックをさらにグループ化する。結果的に、同一の特定物と仮定可能なブロック全てがグループ化されることとなる。
また、ここでは、水平距離xの差分、高さyの差分および相対距離zの差分をそれぞれ独立して判定し、全てが所定範囲に含まれる場合のみ同一のグループとしているが、他の計算によることもできる。例えば、水平距離xの差分、高さyの差分および相対距離zの差分の二乗平均√((水平距離xの差分)2+(高さyの差分)2+(相対距離zの差分)2)が所定範囲に含まれる場合に同一のグループとしてもよい。かかる計算により、ブロック同士の実空間上の正確な距離を導出することができるので、グループ化精度を高めることができる。
次に、車両特定部164aは、グループ化した対象物224が、予め定められた車両に相当する所定の条件を満たしていれば、その対象物224を特定物「車両」として決定する(S314)。例えば、車両特定部164aは、グループ化された対象物224が道路上に位置する場合、その対象物224全体の大きさが、特定物「車両」の大きさに相当するか否かを判定し、特定物「車両」の大きさに相当すると判定されれば、その対象物224を特定物「車両」と特定する。ここで、車両特定部164aは、特定物「車両」と特定された対象物224が画面上占有する領域の外接矩形に相当する領域を車両領域とする。
こうして、車外環境認識装置120では、第1画像としての距離画像128から、1または複数の対象物224を、特定物、例えば、車両(先行車両)として抽出することができ、その情報を様々な制御に用いることが可能となる。例えば、検出領域124内の任意の対象物224が車両であると特定されると、特定した車両(先行車両)を追跡し、相対距離や相対加速度を検出して、先行車両との衝突を回避したり、先行車両との車間距離を安全な距離に保つように制御することができる。このような先行車両の特定や先行車両の挙動をさらに迅速に把握するため、以下では、車両領域に存在する発光源をブレーキランプとみなし、その点灯有無を判定する。
続いて、発光源候補特定部164bは、第2画像に基づくカラー画像126から、画素単位で3つの色相(R、G、B)のカラー値を取得する(S316)。このとき、検出領域124が例えば雨天や曇天であった場合、発光源候補特定部164bは、本来のカラー値を取得できるようにホワイトバランスを調整してから取得してもよい。
発光源候補特定部164bは、データ保持部152に保持された特定物テーブル200と、第2画像に基づくカラー画像126の各画素のカラー値とによって所定の発光源を仮に特定する(S318)。具体的に、発光源候補特定部164bは、特定物テーブル200に登録されている特定物から、第2露光態様に対応付けられた特定の発光源(ここでは「ブレーキランプ」)を選択し、取得した1の画素のカラー値が、選択した特定物のカラー範囲202に含まれるか否か判定する。そして、対象となるカラー範囲202に含まれれば、その画素を当該特定物「ブレーキランプ」と仮定する。
上記第2画像は、上述したように特定の発光源、例えば、特定物「ブレーキランプ」が自発光しているか否かを判別可能な第2露光態様で撮像した画像である。ここで、特定物「ブレーキランプ」のように自発光するものは、太陽や街灯の明るさに拘わらず、高いカラー値を取得することができる。特に、特定物「ブレーキランプ」の点灯時の明るさは法規で概ね規定されているので、所定の明るさしか露光できない露光態様(例えば、短時間の露光)で撮像することで、特定物「ブレーキランプ」に相当する画素のみを容易に抽出することが可能である。
図8は、第1露光態様による撮像と第2露光態様による撮像との違いを説明するための説明図である。図8(a)は、第1露光態様による第1画像を示し、特に、図8(a)の左図ではテールランプが点灯しており、図8(a)の右図ではテールランプに加えブレーキランプが点灯している。図8(a)を参照して理解できるように、車外環境の明るさに応じた第1露光態様では、ブレーキランプ非点灯かつテールランプ点灯時のテールランプ位置230のカラー値と、ブレーキランプ点灯かつテールランプ点灯時のブレーキランプ位置232とでカラー値の差がほとんど生じない。これは、露光時間の長い第1露光態様では、テールランプもブレーキランプもRGB成分全てのカラー値がサチレーションしてしまうことに起因する。
図8(b)は、第2露光態様による第2画像を示し、特に、図8(b)の左図ではテールランプが点灯しており、図8(b)の右図ではテールランプに加えブレーキランプが点灯している。第2露光態様は、ブレーキランプが点灯しているときのカラー値のみを取得可能に設定されている。したがって、図8(b)を参照して理解できるように、テールランプが点灯していてもテールランプ位置230では、その明るさに準じるカラー値をほとんど取得できず、ブレーキランプ点灯時のブレーキランプ位置232では、明確に高いカラー値を取得できている。
かかる第2露光態様では、ブレーキランプのカラー値が撮像素子において、R成分がサチレーションするかしないかといった程度の露光時間に設定することが望ましい。撮像装置110は、通常、ダイナミックレンジが人間より大幅に狭いので、夕方くらいの明度の低さで第1露光態様により撮像すると、車外環境に対して相対的にブレーキランプのカラー値が高くなる。すると、R成分のみならず、R成分とオーバーラップしてG成分やB成分も最大値(例えばカラー値が255)にサチレーションし、画素が白くなってしまう。そこで、第2露光態様を、ブレーキランプ点灯時にR成分がサチレーションするかしないかといった程度の露光時間とすることで、外部の環境に拘わらず、G成分やB成分のカラー値への影響を抑制しつつ、R成分のみを最大値で抽出する。こうして、例えば、テールランプとのカラー値差を最大限確保することが可能となる。
具体的に、夜間の走行時に先行車両が存在する場合に、テールランプが点灯している程度、例えば、カラー範囲(R)「50」、カラー範囲(G)「50」、カラー範囲(B)「50」程度では第2画像に表示されない。これに対して、ブレーキランプが点灯していると、図4の特定物テーブル200に示すように、カラー範囲202が、カラー範囲(R)「200以上」、カラー範囲(G)「50以下」、カラー範囲(B)「50以下」となり、第2露光態様で撮像したとしても、その位置が把握できる程度に第2画像に表示される。こうして発光源候補特定部164bは、第2画像を通じて、ブレーキランプ等、所定の発光源のみを特定することが可能となる。また、ここでは、第2露光態様による露光時間を固定しているが、車外環境に応じて自発的にまたは搭乗者の操作に応じて調整されるとしてもよい。
また、発光源候補特定部164bは、発光源の候補とされた画素同士の水平距離xの差分、高さyの差分および相対距離zの差分が所定範囲(例えば0.1m)内にある場合、その複数の画素を1の発光源候補としてグループ化する(S320)。こうして、ブレーキランプを構成する画素が複数に跨がっていても、また、車両の左右のブレーキランプがそれぞれ複数のランプで構成されている場合であっても、それを左右に存在するブレーキランプの一方として個々に認識することが可能となる。
また、発光源候補特定部164bは、この1の発光源候補の大きさが予め定められた閾値(例えば、水平および垂直の幅0.05m)以上の場合にのみ、1の発光源候補を発光源として特定する(S322)。なお、発光源候補特定部164bは、大きさに加えて、その発光源候補の形も条件としてよい。例えば、ブレーキランプが車両後部の左右端部に鉛直方向に延伸する形状である場合、その大きさのみならず、ブレーキランプとみなせる形状であることを判定する。また、発光源候補特定部164bは、ブレーキランプと同等の手順で、1の発光源候補の大きさや形状からハイマウントストップランプも特定する。こうして、本来、所定の発光源としてみなすべきではないノイズに相当する発光源を排除し、ブレーキランプ等、所望する発光源を抽出することができるので、特定物を高精度に特定することが可能となる。
このように、発光源候補特定部164bによって、ブレーキランプやハイマウントストップランプを高精度に抽出することができる。しかし、第2露光態様による第2画像のみでは、夜間などに検出領域124全体のカラー値が低く(暗く)なってしまい、ブレーキランプ等の発光源以外は何も把握できなくなってしまう。そこで、当該「ブレーキランプ」と、上述した第1露光態様による第1画像によって特定した「車両」とを対応付ける。
位置対応付け部166は、車両特定部164aが特定物「車両」としてグループ化した車両領域と、発光源候補特定部164bが特定した発光源(ブレーキランプ)の位置とを対応付ける(S324)。そして、車両特定部164aによる特定物「車両」の追跡と、発光源候補特定部164bによる特定物「ブレーキランプ」の追跡とを支援し、一方の位置情報で他方の位置情報を校正する。こうして、先行する車両の外縁と車両のブレーキランプとの位置関係を維持することができる。
配置判定部168は、同一の先行車両に存在すると仮定される1対のブレーキランプの組み合わせを特定し、図4に示した特定物テーブル200に基づいて、位置対応付け部166によって対応付けられた車両領域と発光源であるブレーキランプの位置との相対配置が適切な配置か否かを判定する(S326)。配置判定部168は、例えば、ブレーキランプが、それ単体で高さ範囲「0.3〜2.0m」、水平距離の幅範囲「0.05〜0.2m」、垂直距離の幅範囲「0.05〜0.2m」の条件を満たすか判定する。さらに、配置判定部168は、1対のブレーキランプの組み合わせが、水平距離の差分「1.4〜1.9m」、垂直距離の差分「0.3m以下」、面積比「50〜200%」の条件を満たすか否かを判定する。
このように、上記の発光源候補特定部164b、位置対応付け部166、配置判定部168によって、ブレーキランプの形状や位置関係から1対の発光源で構成されるブレーキランプを特定することができる。しかし、1対の発光源で構成されるブレーキランプのうち、一方の発光源が消灯していたり、先行車両の姿勢等によって一方の発光源が画像(第2画像)に映り込まなかったりする(以下、単に「片付」と称する)場合に、その片付のブレーキランプの点灯を検出できなくなってしまう問題があった。
そこで、本実施形態では、先行車両の車両領域における発光源候補の点灯時間に基づいて、1対の発光源が両方点灯している(以下、「両付」と称する)ブレーキランプのみならず、片付のブレーキランプの点灯を適切に特定する。そして、上記の発光源候補特定部164b、位置対応付け部166、配置判定部168によるブレーキランプの特定は、ブレーキランプらしさを判定する上で補助的(冗長的)に用いることとする。
(ブレーキランプ特定処理S328)
図9は、ブレーキランプ特定処理S328を示すフローチャートである。図9に示すように、ブレーキランプ特定部170は、まず、学習ロジックを遂行する学習ロジック処理(S340)を実行する。そして、ブレーキランプ特定部170は、学習ロジック処理S340の結果に基づいて、位置対応付け部166によって先行車両の車両領域に対応付けられた個々の発光源候補の点灯有無を仮判定する点灯仮判定処理(S350)を実行する。続いて、ブレーキランプ特定部170は、発光源候補の点灯時間に基づいて、発光源候補がブレーキランプであるか否かを判定するブレーキランプ判定処理(S360)を実行する。そして、ブレーキランプ特定部170は、ブレーキランプであると判定した発光源候補からノイズを除外するノイズ除外処理(S370)を実行し、先行車両のブレーキランプが点灯しているか否かを特定する。以下、学習ロジック処理S340、点灯仮判定処理S350、ブレーキランプ判定処理S360、ノイズ除外処理S370について詳述する。
(学習ロジック処理S340)
図10は、学習ロジック処理S340を示すフローチャートである。まず、ブレーキランプ特定部170は、車両特定部164aに特定された先行車両の車両領域において、予め定められた1または複数のカラー閾値に基づくカラー条件(例えば、R成分が150を上回り、G成分が113未満、B成分が66未満)を満たした画素の数(画素数)を計数する(S340−1)。そして、ブレーキランプ特定部170は、画素数を3次元空間上の実際の面積に変換(正規化)する(S340−2)。
このとき、発光源特定処理におけるグループ化処理S320においてグループ化された1の発光源候補ごとの面積と、グループ化されたすべての発光源候補の面積の和(以下、「車両領内の面積」と称する)を計算する。その後、ブレーキランプ特定部170は、変換した車両領域内の面積に応じてヒストグラム(相異なる複数段階の面積区分を階級とし、その面積区分毎の度数を示す、以下、「面積ヒストグラム」と称する)を生成する(S340−3)。一方、ブレーキランプ特定部170は、前回までに蓄積された面積ヒストグラムと、先行車両の加減速とを勘案して、点灯有無の基準となる所定の閾値THhighを導出する(S340−4)。ここで、閾値THhighは、例えば、1対のブレーキランプが両方点灯している場合、面積ヒストグラムにおける相対的に度数が高い面積区分が閾値THhigh以上となるように設定される値である。
そして、ブレーキランプ特定部170は、今回計算した車両領域内の面積が、閾値THhigh以上であるか否かに基づき、ブレーキランプが点灯しているか否かを判定する(S340−5)。つまり、1対のブレーキランプが両方点灯しているか否かを判定する。なお、かかる面積ヒストグラムの生成、閾値THhighの導出、および、面積ヒストグラムによる発光源候補の点灯有無の判定については、特願2014−073374号等、既存の技術を参照できるので、ここでは、その詳細な説明を省略する。
また、1対のブレーキランプが両方点灯していると判定した場合は、発光源候補が点灯しているか否かを判定するための閾値THeachを更新する。閾値THeachは、所定のカラー条件を満たす面積を計算する処理(S340−2)で計算した面積のうち、1の発光源候補に対応する面積を超えないように設定される。例えば、閾値THeachは、1の発光源候補に対応する面積の半分程度の値とする。
(点灯仮判定処理S350)
図11は、点灯仮判定処理S350を示すフローチャートである。ブレーキランプ特定部170は、発光源候補特定部164bが特定した発光源候補であって、位置対応付け部166によって先行車両の車両領域に対応付けられた、1または複数の発光源候補の数を取得し、発光源候補の数を候補数カウンタCNが取り得る最大値maxとして記憶する。そして、ブレーキランプ特定部170は、1または複数の発光源候補から、1の発光源候補を取得し、候補数カウンタCNに1をセットする(候補数カウンタセット処理S350−1)。
そして、ブレーキランプ特定部170は、ランプ仮点灯判定処理S350−2を実行する。図12は、ランプ仮点灯判定処理S350−2を示すフローチャートである。ブレーキランプ特定部170は、まず、上記学習ロジック処理S340の結果(S340−5の結果)が利用可能な状態であるか否かを判定する(S350−2−1)。ブレーキランプ特定部170は、学習ロジック処理S340で生成した面積ヒストグラムにおいて、度数が所定の閾値THa以上の面積区分があれば、学習ロジック処理S340の結果が利用可能な状態であると判定する。
そして、ブレーキランプ特定部170は、上記学習ロジック処理S340の結果が利用可能な状態であると判定すると(S350−2−1におけるYES)、上記S340−2で計算した面積のうち発光源候補ごとの面積が、閾値THeach以上であるか否かを判定する(S350−2−2)。ブレーキランプ特定部170は、上記S350−2−2において、発光源候補ごとの面積が、閾値THeach以上であると判定された場合(S350−2−2におけるYES)、発光源候補が点灯していると仮判定し、個々ランプフラグをONにする(S350−2−3)。一方、上記S340−2で計算した発光源候補ごとの面積が、閾値THeach以上ではないと判定された場合(S350−2−2におけるNO)、発光源候補が消灯していると仮判定し、個々ランプフラグをOFFにして(S350−2−4)、当該ランプ仮点灯判定処理S350−2を終了する。
なお、個々ランプフラグは、1の発光源候補が点灯しているか否かを示すフラグであり、個々ランプフラグがONは、発光源候補が点灯していることを示し、個々ランプフラグがOFFは、発光源候補が消灯していることを示す。
一方、ブレーキランプ特定部170は、学習ロジック処理S340の結果が利用可能な状態ではないと判定すると(S350−2−1におけるNO)、面積判定処理S350−2−5に移る。面積判定処理S350−2−5は、R成分が所定値を上回る面積が所定以上であるか否かを判定する処理である。例えば、面積判定処理S350−2−5は、R成分が200を上回る画素が2画素以上あるか否かを判定する。
そして、ブレーキランプ特定部170は、R成分が所定値を上回る面積が所定以上である場合(S350−2−5におけるYES)、個々ランプフラグをONにし(S350−2−6)、R成分が所定値を上回る面積が所定以上ではない場合(S350−2−5におけるNO)、個々ランプフラグをOFFにして(S350−2−7)、当該ランプ仮点灯判定処理S350−2を終了する。
図11に戻って説明すると、ブレーキランプ特定部170は、個々ランプフラグがONであるか否かを判定する(S350−3)。そして、個々ランプフラグがONである場合(S350−3におけるYES)、個別面積換算値判定処理S350−4に移り、個々ランプフラグがONでない場合、つまり、個々ランプフラグがOFFである場合(S350−3におけるNO)連続点灯カウンタ値判定処理S350−11に移る。
る。
ブレーキランプ特定部170は、車両領域の占有面積に対する当該発光源候補の占有面積の割合(以下、「個別面積換算値」と称する)が、所定の閾値THlow以上であるか否かを判定する(S350−4)。ここで、閾値THlowは、例えば、ブレーキランプのうち、少なくとも一方の発光源が点灯してさえいれば、個別面積換算値が閾値THlow以上となるように予め設定される値である。また、上記したランプ仮点灯判定処理S350−2において学習ロジック処理S340の結果が利用可能な状態であると判定した場合には、面積ヒストグラムに基づいて閾値THlowが設定され、上記ランプ仮点灯判定処理S350−2において学習ロジック処理S340の結果が利用可能な状態でないと判定した場合には、予め定められた閾値THlowが設定される。そして、個別面積換算値が閾値THlow以上であると判定した場合(S350−4におけるYES)、サチレーション判定処理S350−5に移る。一方、個別面積換算値が閾値THlow未満であると判定した場合(S350−4におけるNO)、連続点灯カウンタ値判定処理S350−11に移る。
個別面積換算値判定処理S350−4を実行することにより、1の発光源候補の大きさが、ブレーキランプの一方の発光源の大きさに相当するか否かを判定することができ、ブレーキランプとみなせる大きさ未満の発光源候補をブレーキランプと誤認識してしまう事態を回避することが可能となる。
続いて、ブレーキランプ特定部170は、太陽光の反射によって発光源候補と誤って特定(誤認識)されたか否かを判定する処理(S350−5、S350−6、S350−7)を実行する。なお、太陽光の反射が所定範囲に含まれる場合(太陽光の反射が安定している場合)、上記学習ロジック処理S340によってブレーキランプの点灯の有無が判定できる。
まず、ブレーキランプ特定部170は、発光源候補を構成する画素のうち、サチレーションを起こしている画素が、所定数(例えば、1)以上あるか否かを判定する(S350−5)。ここでは、R成分、G成分、および、B成分のうち、少なくともいずれかの成分のカラー値が、カラー値の取り得る最大値(例えばカラー値が255)である画素を、サチレーションを起こしている画素とする。サチレーションを起こしている画素が所定数未満であると判定した場合(S350−5におけるNO)、ブレーキランプ特定部170は、太陽光反射判定処理S350−6に移る。一方、サチレーションを起こしている画素が所定数以上あると判定した場合(S350−5におけるYES)、ブレーキランプ特定部170は、連続点灯カウンタ値判定処理S350−11に移る。
発光源候補特定部164bによって特定される発光源候補が、太陽光の反射により発光源候補と特定される場合、発光源候補を構成する画素においてサチレーションを起こしている画素が含まれることもある。したがって、サチレーション判定処理S350−5を実行することにより、太陽光の反射により特定された発光源候補、つまり、太陽光の反射によって発光源候補と誤って特定(誤認識)された発光源候補を判定することが可能となる。
図13は、太陽光反射判定処理S350−6を示すフローチャートである。図13に示すように、ブレーキランプ特定部170は、発光源候補が太陽光の反射により発光源候補として特定されたか否かを判定する(S350−6−1)。具体的に説明すると、ブレーキランプ特定部170は、先行車両の車両領域うち、R成分が例えば120以上の画素数が所定の閾値THb以上であり、かつ、上記学習ロジック処理S340と同様の技術で生成したR成分のみの面積ヒストグラムにおいて、最も小さい面積区分の度数が所定の閾値THc(例えば、1)以上であるかを判定する(S350−6−1)。ここで、R成分のみの面積ヒストグラムを生成する際には、カラー条件として、例えば、R成分が200を上回り、G成分が50未満、B成分が50未満を採用する。
太陽光の反射により発光源候補と特定される場合、発光源候補を構成する画素において全体的にR値が高くなり、かつ、R成分のみの面積ヒストグラムにおいて最も小さい面積区分の度数が1以上となる(最も小さい面積区分にピークが出現する)。一方、太陽光の反射ではなく発光源候補が特定される場合、発光源候補を構成する画素において全体的にR値が小さくなり、かつ、R成分のみの面積ヒストグラムにおいて最も小さい面積区分の度数が0となる(最も小さい面積区分にピークが出現しない)。したがって、ブレーキランプ特定部170が、S350−6−1の処理を実行することで、太陽光の反射によって発光源候補と誤って特定(誤認識)された発光源候補を判定することができる。
そして、R成分が120以上の画素数が閾値THb以上であり、かつ、R成分のみの面積ヒストグラムにおいて、最も小さい面積区分の度数が所定の閾値THc以上であると判定した場合(S350−6−1におけるYES)、発光源候補が太陽光の反射により発光源候補として特定されたと判定する(S350−6−2)。一方、R成分が120以上の画素数が閾値THb未満である、または、R成分のみの面積ヒストグラムにおいて、最も小さい面積区分の度数が所定の閾値THc未満であると判定した場合(S350−6−1におけるNO)、発光源候補が太陽光の反射により発光源候補として特定されたわけではないと判定する(S350−6−3)。
図11に戻って説明すると、ブレーキランプ特定部170は、学習ロジック処理S340において蓄積された面積ヒストグラムと先行車両の加減速を勘案した、1対のブレーキランプが消灯していると想定される面積区分のR成分の面積換算値が所定の閾値THd以上であるか、または、上記太陽光反射判定処理S350−6において発光源候補が太陽光反射によって特定されたと判定されたかを判定する(S350−7)。ここで、閾値THdは、例えば、学習ロジック処理S340において蓄積された面積ヒストグラムと先行車両の加減速を勘案した、1対のブレーキランプが消灯していると想定される面積区分のR成分の面積換算値が、太陽光反射を起こしていると推定されるときに取りうる値となるように予め設定される値である。太陽光反射を起こしていると推定されるときに取りうる値は、例えば1の発光源候補が点灯している場合に取りうるR成分の個別面積換算値未満である。
そして、ブレーキランプ特定部170は、学習ロジック処理S340において蓄積された面積ヒストグラムと先行車両の加減速を勘案した、1対のブレーキランプが消灯していると想定される面積区分のR成分の面積換算値が閾値THd以上である、または、発光源候補が太陽光反射によって特定されたと判定された場合(S350−7におけるYES)、連続点灯カウンタ値判定処理S350−11に移る。一方、ブレーキランプ特定部170は、学習ロジック処理S340において蓄積された面積ヒストグラムと先行車両の加減速を勘案した、1対のブレーキランプが消灯していると想定される面積区分のR成分の面積換算値が閾値THd未満であり、かつ、発光源候補が太陽光反射によって特定されていないと判定された場合(S350−7におけるNO)、連続点灯カウンタ値判定処理S350−8に移る。
上記太陽光反射確認処理S350−7を実行することにより、太陽光の反射により特定された発光源候補、つまり、太陽光の反射によって発光源候補と誤って特定(誤認識)された発光源候補を判定することが可能となる。
そして、ブレーキランプ特定部170は、上記S350−3においてYES、S350−4においてYES、S350−5においてNO、S350−7においてNOである場合に、それぞれの発光源候補に対応付けられて記憶されている連続点灯カウンタRTのカウンタ値に2加算する(S350−8)。ここで、連続点灯カウンタRTは、発光源候補が連続して点灯していることを、その値の大小で示すものであり、連続点灯カウンタRTの値が大きくなるにつれて、対応付けられた発光源候補がより長い期間点灯していることを表す。また、連続点灯カウンタRTは、例えば、上限80、下限0といったように、上下限が設けられている。このように、上下限を設けることで、発光源候補を検出していない期間や、発光源候補を検出している期間が長時間に亘ったとしても点数の絶対値が大きくなることがなく、発光源候補の点灯の検出の有無が切り替わった場合に、迅速に、その点灯の有無を判定することが可能となる。なお、連続点灯カウンタRTは、点灯仮判定処理S350が実行される度に更新される。
そして、ブレーキランプ特定部170は、連続点灯カウンタRTのカウンタ値が80を上回るか否かを判定する(S350−9)。連続点灯カウンタRTのカウンタ値が80を上回る場合(S350−9におけるYES)、連続点灯カウンタRTのカウンタ値を80にセットし、発光源候補に対応づけて連続点灯カウンタRTのカウンタ値を記憶(更新)する(S350−10)。一方、連続点灯カウンタRTのカウンタ値が80以下である場合(S350−9におけるNO)、現在のカウンタ値を、発光源候補に対応づけて記憶(更新)する。
一方、ブレーキランプ特定部170は、上記S350−3においてNO、S350−4においてNO、S350−5においてYES、S350−7においてYESである場合に、連続点灯カウンタRTのカウンタ値から10減算する(S350−11)。そして、ブレーキランプ特定部170は、連続点灯カウンタRTのカウンタ値が0未満であるか否かを判定する(S350−12)。連続点灯カウンタRTのカウンタ値が0未満である場合(S350−12におけるYES)、連続点灯カウンタRTのカウンタ値を0にセットし、発光源候補に対応づけて記憶(更新)する(S350−13)。一方、連続点灯カウンタRTのカウンタ値が0未満でない場合(S350−12におけるNO)、現在のカウンタ値を、発光源候補に対応づけて記憶(更新)する。
続いて、ブレーキランプ特定部170は、先行車両の車両領域に対応付けられたすべての発光源候補についてS350−2からS350−13までの処理を実行したか否か、すなわち、候補数カウンタCNが最大値max以上であるか否かを判定する(S350−14)。そして、最大値max以上でなければ(S350−14におけるNO)、現在の値を1インクリメントして(S350−15)、S350−2からの処理を繰り返す。一方、ブレーキランプ特定部170は、候補数カウンタCNが最大値max以上であると判定すると(S350−14におけるYES)、個々ランプフラグをOFFして、当該点灯仮判定処理S350を終了する。
以上説明したように、点灯仮判定処理S350では、各発光源候補について、ブレーキランプとして点灯しているか否かを仮判定し、点灯していると仮判定した場合には、連続点灯カウンタRTのカウント値をインクリメントしていく。一方、ブレーキランプとして点灯していないと判定した場合には、連続点灯カウンタRTのカウント値をデクリメントしていく。
(ブレーキランプ判定処理S360)
図14、図15、図16は、ブレーキランプ判定処理S360を示すフローチャートである。なお、図14、図15、図16において、実質的に等しい処理に関しては、同一の符号を付して説明を省略する。なお、ブレーキランプ判定処理S360では、先行車両について、前回までの判定で両付のブレーキランプを検出していることを示す両付フラグ、先行車両について、前回までの判定で片付のブレーキランプを検出していることを示す片付フラグを用いる。また、ブレーキランプ判定処理S360では、現在のフレームにおいて、先行車両のブレーキランプが点灯していることを示すランプ点灯フラグ、発光源候補が点灯していることを示す仮点灯フラグを用いる。
ここで、両付フラグがTrue(以下、単に「T」で示す)は、先行車両について両付のブレーキランプを検出していることを示し、両付フラグがFalse(以下、単に「F」で示す)は、先行車両について両付のブレーキランプを検出していないことを示す。片付フラグがTは、先行車両について片付のブレーキランプを検出していることを示し、片付フラグがFは、先行車両について片付のブレーキランプを検出していないことを示す。なお、両付フラグと片付フラグは排他的であり、両付フラグがTの場合片付フラグは必ずFであり、片付フラグがTの場合両付フラグは必ずFである。
また、ランプ点灯フラグがONは、先行車両のブレーキランプが点灯していることを示し、ランプ点灯フラグがOFFは、先行車両のブレーキランプが消灯している(点灯していない)ことを示す。仮点灯フラグがONは、発光源候補が点灯していることを示し、仮点灯フラグがOFFは、発光源候補が消灯している(点灯していない)ことを示す。なお、ランプ点灯フラグは、初期状態においてOFFとなっている。
また、ブレーキランプ判定処理S360では、両付フラグがTかつランプ点灯フラグがON、両付フラグがTかつランプ点灯フラグがOFF、片付フラグがTかつランプ点灯フラグがON、片付フラグがTかつランプ点灯フラグがOFF、両付フラグおよび片付フラグがFかつランプ点灯フラグがOFFの5の結果のうちいずれかの結果が得られることとなる。
ブレーキランプ特定部170は、車両領域の占有面積に対する、すべての発光源候補の占有面積の合計の割合(以下、「合計面積換算値」と称する)が、上記閾値THlow以上であるか否かを判定する(S360−1)。そして、合計面積換算値が閾値THlow以上であると判定した場合(S360−1におけるYES)、ブレーキランプ特定部170は、フラグ判定処理S360−2へ移る。一方、合計面積換算値が閾値THlow未満であると判定した場合(S360−1におけるNO)、ブレーキランプ特定部170は、当該ブレーキランプ判定処理S360を終了する。
かかる合計面積換算値判定処理S360−1を実行することにより、消灯しているブレーキランプ、点灯から消灯へ向かう消灯過程のブレーキランプ、および、消灯しているが連続点灯カウンタRTがまだ0を上回っているブレーキランプについて、下記S360−2以降の処理の実行を回避することができ、処理負荷を低減することが可能となる。
ブレーキランプ特定部170は、両付フラグがFであり、かつ、片付フラグがFであるか否かを判定する(S360−2)。そして、両付フラグおよび片付フラグがFであると判定した場合(S360−2におけるYES)、ブレーキランプ特定部170は、ペア点灯判定処理S360−3に移る。一方、両付フラグおよび片付フラグのいずれか一方がFではない、すなわち、両付フラグおよび片付フラグのいずれか一方がTであると判定した場合(S360−2におけるNO)、図15に示す片付フラグ判定処理S360−21に移る。
そして、ブレーキランプ特定部170は、発光源候補が他の発光源候補と予め定められたペア条件を満たすか否かを判定する(S360−3)。具体的に説明すると、ブレーキランプ特定部170は、下記(1)に示す条件を満たし、かつ、下記(2−1)および(2−2)のいずれか一方の条件を満たした場合、ペア条件を満たすと判定する。
(1)の条件は、合計面積換算値が、上記学習ロジック処理S340で導出された閾値THhigh以上であることである。
また、(2−1)の条件は、上記学習ロジック処理S340で、ブレーキランプが点灯していると0.8sec以上判定されたこと、すなわち、0.8sec(第1期間)以上点灯している発光源候補が、他の発光源候補とブレーキランプを構成すると判定されたことである。
上述したように、本実施形態において、撮像装置110は、20fps(50msecごと)で画像データ(第1画像および第2画像)を生成している。したがって、第1画像、もしくは、第2画像に対して、100msecごとに学習ロジック処理S340が実行される。したがって、上述した学習ロジック処理S340において、ブレーキランプが点灯していると、8回以上連続して判定されたことをもって、0.8sec以上点灯している発光源候補が、他の発光源候補とブレーキランプを構成すると判定する。
(2−2)の条件は、消灯型ウィンカーチェック処理が遂行中であることを示す消灯型ウィンカーチェック処理中であり、消灯型ウィンカーチェック処理において0.2sec以上連続してブレーキランプと判定されたことである。ここで、消灯型ウィンカーは、ブレーキランプを構成する一方の発光源を所定の点滅周期で点滅させる(例えば、0.5sec点灯、0.5sec消灯の繰り返し)ことで、ブレーキランプにウィンカーとしての機能を担わせたものである。したがって、消灯型ウィンカーを採用する車両では、ブレーキ中で、かつ、一方のブレーキランプ(消灯型ウィンカー)を点滅させている場合には、両方のブレーキランプが0.5sec点灯、一方のブレーキランプが0.5sec点灯を繰り返すことになる。また、ブレーキをかけていない状態で、一方のブレーキランプ(消灯型ウィンカー)を点滅させている場合には、一方のブレーキランプが0.5sec点灯、両方のブレーキランプが0.5sec消灯を繰り返すことになる。
そこで、消灯型ウィンカーチェック処理として、連続した8回の学習ロジック処理S340において、いずれかのタイミングで2回以上連続して(0.2sec以上連続して)1対のブレーキランプが両方点灯していると判定されたか否かを判定する処理を実行する。消灯型ウィンカーチェック処理の開始条件は、前回の撮像タイミングで、配置判定部168による判定処理(S326)の結果、発光源候補が他の発光源候補を対(ペア)を構成できると判定され、かつ、ブレーキランプ特定処理S328の結果、先行車両のブレーキランプが点灯していると、所定期間(例えば0.2sec)以上連続して特定されたことである。また、消灯型ウィンカーチェック処理の終了条件は、配置判定部168による判定処理(S326)の結果、発光源候補が他の発光源候補を対(ペア)を構成できないとする判定結果が所定期間(例えば0.8sec)以上連続して導出されたこと、もしくは、消灯型ウィンカーチェック処理の開始時に記憶した、対を構成する発光源候補が両方とも消灯したことである。
なお、消灯型ウィンカーチェック処理において2回以上連続して点灯していると判定すると、ブレーキランプが点灯していると判定し、2回以上連続して点灯していないと判定するとブレーキランプが点灯していないと判定する。ウィンカーの点灯時間は、0.25sec〜1sec未満(毎分60回以上120回以下の点滅)であるため、(2−1)、(2−2)のいずれか一方の条件を満たすことで、消灯型ウィンカーにおいて、ブレーキランプとして機能しておらず、ウィンカーとして機能している場合を排除することができる。
ペア点灯判定処理S360−3の結果、発光源候補が上記ペア条件を満たすと判定すると(S360−3におけるYES)、ブレーキランプ特定部170は、両付フラグをTにし、片付フラグをFにする(S360−4)。そして、ブレーキランプ特定部170は、ランプ点灯フラグをONして(S360−5)、当該ブレーキランプ判定処理S360を終了する。
一方、ペア点灯判定処理S360−3の結果、発光源候補が上記ペア条件を満たさないと判定すると(S360−3におけるNO)、ブレーキランプ特定部170は、車両領域に対応付けられた、1または複数の発光源候補の数を取得し、発光源候補の数を候補数カウンタCNが取り得る最大値maxとして記憶する。そして、ブレーキランプ特定部170は、1または複数の発光源候補から、1の発光源候補を取得し、候補数カウンタCNに1をセットする(S360−6)。
そして、ブレーキランプ特定部170は、連続点灯カウンタRTのカウンタ値が40以上であるか否かを判定する(S360−7)。上述したように、本実施形態において、100msecごとにブレーキランプ特定処理S328が実行される。ここで、上述した点灯仮判定処理S350において、発光源候補の点灯が判定されると連続点灯カウンタRTのカウンタ値が2加算されることから、連続点灯カウンタ値判定処理S360−7では、発光源候補が2sec(40×100msec/2、第2期間)以上点灯していると判定されたか否かを判定していることとなる。
連続点灯カウンタ値判定処理S360−7を実行することにより、太陽光の反射によって発光源候補と誤って特定された発光源候補や、消灯型ウィンカーが、ブレーキランプとして機能しておらず、ウィンカーとして機能している場合を排除し、片付ブレーキランプを精度よく特定することができる。
連続点灯カウンタ値判定処理S360−7の結果、連続点灯カウンタRTのカウンタ値が40以上であると判定すると(S360−7におけるYES)、ブレーキランプ特定部170は、発光源候補に対して仮点灯フラグをONして(S360−8)、候補数カウンタ値判定処理(S360−9)に移る。一方、連続点灯カウンタRTのカウンタ値が40未満であると判定すると(S360−7におけるNO)、発光源候補に対して仮点灯フラグをONにせず(OFFにして)、ブレーキランプ特定部170は、候補数カウンタ値判定処理(S360−9)に移る。
続いて、ブレーキランプ特定部170は、先行車両の車両領域に対応付けられたすべての発光源候補についてS360−7、S360−8の処理を実行したか否か、すなわち、候補数カウンタCNが最大値max以上であるか否かを判定する(S360−9)。そして、最大値max以上でなければ(S360−9におけるNO)、現在の値を1インクリメントして(S360−10)、連続点灯カウンタ値判定処理S360−7からの処理を繰り返す。
一方、ブレーキランプ特定部170は、候補数カウンタCNが最大値max以上であると判定すると(S360−9におけるYES)、仮点灯フラグがONである発光源候補があるか否かを判定する(S360−11)。仮点灯フラグがONである発光源候補がある場合(S360−11におけるYES)、ブレーキランプ特定部170は、片付フラグをTにし、両付フラグをFにする(S360−12)。そして、ブレーキランプ特定部170は、ランプ点灯フラグをONし(S360−13)、仮点灯フラグをOFFして、当該ブレーキランプ判定処理S360を終了する。一方、仮点灯フラグがONである発光源候補がない場合(S360−11におけるNO)、ブレーキランプ特定部170は、当該ブレーキランプ判定処理S360を終了する。
上記フラグ判定処理S360−2において、両付フラグおよび片付フラグのいずれか一方がFではないと判定した場合(S360−2におけるNO)、図15に示すように、ブレーキランプ特定部170は、片付フラグがTであるか否かを判定する(S360−21)。そして、片付フラグがTである場合(S360−21におけるYES)、ペア点灯判定処理S360−23に処理を移し、片付フラグがTでない場合(S360−21におけるNO)、図16に示すペア点灯判定処理S360−23に移る。
ペア点灯判定処理S360−23は、ブレーキランプ特定部170が、上記(1)に示す条件を満たし、かつ、(2−1)の条件を満たすか否か判定する処理である(S360−23)。そして、ブレーキランプ特定部170は、ペア点灯判定処理S360−23の結果、上記(1)の条件を満たし、かつ、(2−1)の条件を満たした場合(S360−23におけるYES)、両付フラグT片付フラグF処理S360−4、ランプ点灯フラグON処理S360−5を実行して、当該ブレーキランプ判定処理S360を終了する。
一方、ペア点灯判定処理S360−23の結果、上記(1)および(2−1)の条件を満たしていない場合(S360−23におけるNO)、ブレーキランプ特定部170は、候補数カウンタセット処理S360−6を実行した後、連続点灯カウンタ値判定処理S360−25を実行する。
ここで、連続点灯カウンタ値判定処理S360−25は、連続点灯カウンタRTのカウンタ値が16以上であるか否かを判定する処理である(S360−25)。つまり、ブレーキランプ特定部170は、発光源候補が0.8sec(16×100msec/2、第3期間)以上点灯していると判定されたか否かを判定している。
連続点灯カウンタ値判定処理S360−25の結果、連続点灯カウンタRTのカウンタ値が16以上であると判定すると(S360−25におけるYES)、ブレーキランプ特定部170は、発光源候補に対して仮点灯フラグをONして(S360−8)、候補数カウンタ値判定処理(S360−9)に移る。一方、連続点灯カウンタRTのカウンタ値が16未満であると判定すると(S360−25におけるNO)、発光源候補に対して仮点灯フラグをONにせず(OFFにして)、ブレーキランプ特定部170は、候補数カウンタ値判定処理(S360−9)に移る。
このように、当該連続点灯カウンタ値判定処理S360−25は、先行車両の車両領域に片付のブレーキランプがあると既に判定されているため(S360−21におけるYES)、上記連続点灯カウンタ値判定処理S360−7と比較して、仮点灯フラグをONするための閾値(点灯とみなす時間、第3期間)を短く設定している。これにより、少なくとも一度、片付フラグがTになった車両領域(片付のブレーキランプがあると判定した車両)を迅速に判定することができる。また、太陽光の反射が不安定な場合、当該連続点灯カウンタ値判定処理S360−25を実行することにより、つまり、連続点灯時間を観測することで、太陽光の反射によって発光源候補と誤って特定された発光源候補を排除することができる。
そして、ブレーキランプ特定部170は、候補数カウンタCNが最大値max以上であるか否かを判定し(S360−9)、最大値max以上でなければ(S360−9におけるNO)、現在の値を1インクリメントして(S360−10)、連続点灯カウンタ値判定処理S360−25からの処理を繰り返す。
一方、ブレーキランプ特定部170は、候補数カウンタ値判定処理S360−9の結果、候補数カウンタCNが最大値max以上であると判定すると(S360−9におけるYES)、仮点灯フラグがONである発光源候補があるか否かを判定する(S360−11)。仮点灯フラグがONである発光源候補がある場合(S360−11におけるYES)、ブレーキランプ特定部170は、ランプ点灯フラグをONにして(S360−13)、当該ブレーキランプ判定処理S360を終了する。一方、仮点灯フラグがONである発光源候補がない場合(S360−11におけるNO)、ブレーキランプ特定部170は、ランプ点灯フラグをOFFにして(S360−27)、当該ブレーキランプ判定処理S360を終了する。
上記片付フラグ判定処理S360−21において、片付フラグがTでないと判定した場合、すなわち、両付フラグがTである場合(S360−21におけるNO)、図16に示すように、ブレーキランプ特定部170は、ペア点灯判定処理S360−23を実行する。そして、ペア点灯判定処理S360−23の結果、上記(1)および(2−1)の条件を満たした場合(S360−23におけるYES)、ブレーキランプ特定部170は、ランプ点灯フラグON処理S360−5を実行して、当該ブレーキランプ判定処理S360を終了する。
一方、ペア点灯判定処理S360−23の結果、上記(1)の条件、または、(2−1)の条件を満たしていない場合(S360−23におけるNO)、ブレーキランプ特定部170は、候補数カウンタセット処理S360−6を遂行した後、連続点灯カウンタ値判定処理S360−31を実行する。ここで、連続点灯カウンタ値判定処理S360−31は、連続点灯カウンタRTのカウンタ値が16以上であるか(発光源候補が0.8sec(16×100msec/2、第3期間、第4期間)以上点灯していると判定されたか否か)、または、下記(3)の条件を満たすかを判定する処理である。
(3)の条件は、消灯型ウィンカーチェック処理が遂行中であることを示す消灯型ウィンカーチェック処理中であり、連続点灯カウンタRTのカウンタ値が4以上であり、さらに、配置判定部168による判定処理(S326)の結果、発光源候補が他の発光源候補を対(ペア)を構成できないと判定された期間が0.8sec以下であることである。
連続点灯カウンタ値判定処理S360−31を実行することにより、消灯型ウィンカーが、ブレーキランプとして機能しておらず、ウィンカーとして機能している場合を排除することができる。
連続点灯カウンタ値判定処理S360−31の結果、連続点灯カウンタRTのカウンタ値が16以上である、または、上記(3)の条件を満たすと判定すると(S360−31におけるYES)、ブレーキランプ特定部170は、発光源候補に対して仮点灯フラグをONして(S360−8)、候補数カウンタ値判定処理(S360−9)に移る。一方、連続点灯カウンタRTのカウンタ値が16未満であり、上記条件(3)を満たさないと判定すると(S360−31におけるNO)、発光源候補に対して仮点灯フラグをONにせず(OFFにして)、ブレーキランプ特定部170は、候補数カウンタ値判定処理(S360−9)に移る。
そして、ブレーキランプ特定部170は、候補数カウンタCNが最大値max以上であるか否かを判定し(S360−9)、最大値max以上でなければ(S360−9におけるNO)、現在の値を1インクリメントして(S360−10)、連続点灯カウンタ値判定処理S360−31からの処理を繰り返す。
一方、ブレーキランプ特定部170は、候補数カウンタ値判定処理S360−9の結果、候補数カウンタCNが最大値max以上であると判定すると(S360−9におけるYES)、仮点灯フラグがONである発光源候補があるか否かを判定する(S360−11)。仮点灯フラグがONである発光源候補がある場合(S360−11におけるYES)、ブレーキランプ特定部170は、片付判定処理S360−33に移る。一方、仮点灯フラグがONである発光源候補がない場合(S360−11におけるNO)、ブレーキランプ特定部170は、ランプ点灯フラグをOFFにして(S360−27)、当該ブレーキランプ判定処理S360を終了する。
片付判定処理S360−33は、下記(4)の条件を満たすかを判定する処理である。(4)の条件は、配置判定部168による判定処理(S326)の結果、発光源候補が他の発光源候補を対(ペア)を構成できないと判定された期間が0.8sec以上であることである。
片付判定処理S360−33の結果、上記(4)の条件を満たすと判定すると(S360−33におけるYES)、ブレーキランプ特定部170は、片付フラグをTにし、両付フラグをFにし(S360−12)、ランプ点灯フラグをONにして(S360−13)、当該ブレーキランプ判定処理S360を終了する。一方、片付判定処理S360−33の結果、上記(4)の条件を満たさないと判定すると(S360−33におけるNO)、ブレーキランプ特定部170は、両付フラグをTのまま維持し、ランプ点灯フラグをONにして(S360−13)、当該ブレーキランプ判定処理S360を終了する。
(ノイズ除外処理S370)
図17は、ノイズ除外処理S370を示すフローチャートである。ブレーキランプ特定部170は、ランプ点灯フラグがONであるか否かを判定する(S370−1)。ランプ点灯フラグがONであると判定した場合(S370−1におけるYES)、ブレーキランプ特定部170は、太陽光反射判定処理S370−2に移る。一方、ランプ点灯フラグがONではないと判定した場合(S370−1におけるNO)、ブレーキランプ特定部170は、当該ノイズ除外処理S370を終了する。
ブレーキランプ特定部170は、当該第2画像の直前に取得した第1画像において、先行車両の車両領域のうち、輝度が所定の閾値THg以上の画素の画素数が所定の閾値THj以上であるか否かを判定する(S370−2)。太陽光反射判定処理S370−2を実行することにより、太陽光の反射によってランプ点灯フラグがONとされた場合を除外することができる。ここで、閾値THgは、第1画像を撮像する際の露光時間、第1画像を撮像する際のシャッタのセンサのゲイン、第2画像を撮像する際の露光時間、第2画像を撮像する際のシャッタのセンサのゲイン、予め定められたR成分の値(例えば、120)に基づいて決定される。また、閾値Thjは、実際に取得したデータに基づいて決定される。
そして、ブレーキランプ特定部170は、輝度が閾値THg以上の画素数が閾値THj未満である場合(S370−2におけるNO)、リアフォグ点灯判定処理S370−3に移る。一方、ブレーキランプ特定部170は、輝度が閾値THg以上の画素数が閾値THj以上である場合(S370−2におけるYES)、ランプ点灯フラグOFF処理S370−5に移る。
ブレーキランプ特定部170は、リアフォグランプが点灯しているか否かを判定する(S370−3)。具体的にブレーキランプ特定部170は、先行車両が動いており、先行車両が減速しておらず、かつ、発光源候補が所定時間Ta以上点灯している場合、リアフォグランプが点灯していると判定する。なお、先行車両の挙動の判定については、既存の技術を参照できるので、ここでは、その詳細な説明を省略する。また、所定時間Taは、実際に取得したデータに基づき、減速度が出ないままブレーキランプが点灯している時間より長めに取る(例えば、45sec)とよい。なお、所定時間Taは、先行車両の速度や減速度のばらつき、路面の摩擦係数μ等の走行環境によって変化させてもよい。
そして、ブレーキランプ特定部170は、リアフォグランプが点灯していないと判定した場合(S370−3におけるNO)、ブレーキランプ特定処理S370−4に移る。一方、ブレーキランプ特定部170は、リアフォグランプが点灯していると判定した場合(S370−3におけるYES)、ランプ点灯フラグOFF処理S370−5に移る。
そして、ブレーキランプ特定部170は、リアフォグランプが点灯していないと判定した場合(S370−3におけるNO)、ランプ点灯フラグがONとなっている発光源候補が存在すれば、先行車両のブレーキランプが点灯していると特定し(S370−4)、次回の処理のためにランプ点灯フラグをOFFにして(S370−5)、当該ノイズ除外処理S370を終了する。
このように、ノイズ除外処理S370を実行することにより、太陽光の反射によって発光源候補として特定されてしまった発光源候補や、リアフォグランプ由来の発光源候補を除外することができる。
なお、車両特定部164aによる先行車両(車両領域)の特定がなされない期間が所定時間以上経過すると、ブレーキランプ特定部170は、両付フラグおよび片付フラグをFにする。
こうして、車外環境認識装置120では、1対の発光源で構成されるブレーキランプのうち、一方の発光源が消灯していたり、先行車両の姿勢等によって一方の発光源が画像に映り込まなかったりする場合であってもブレーキランプの点灯を検出することが可能となる。また、学習ロジック処理S340でブレーキランプであると判定されないような大きさの発光源候補や、学習ロジック処理S340でブレーキランプであると判定されないような複雑な形状のブレーキランプであっても、ブレーキランプの点灯を検出することが可能となる。
また、コンピュータを、車外環境認識装置120として機能させるプログラムや当該プログラムを記録した、コンピュータで読み取り可能なフレキシブルディスク、光磁気ディスク、ROM、CD、DVD、BD等の記憶媒体も提供される。ここで、プログラムは、任意の言語や記述方法にて記述されたデータ処理手段をいう。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる実施形態に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
例えば、上述した実施形態において、ブレーキランプ特定部170は、撮像装置110が生成したカラー画像に基づいてブレーキランプの点灯有無を判定しているが、モノクロ画像に基づいてブレーキランプの点灯有無を判定するとしてもよい。
また、上記実施形態において、第1期間、第3期間、第4期間を実質的に等しい時間としているが、第1期間、第3期間、第4期間のうち、いずれか1または複数を異なる時間としてもよい。
なお、本明細書の車外環境認識処理の各工程は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいはサブルーチンによる処理を含んでもよい。