(58)【調査した分野】(Int.Cl.,DB名)
レンズを有する撮像装置からの入力画像に基づいてエッジ画像を作成し、前記エッジ画像を複数の画素を含む複数の領域に分割し、エッジ強度が閾値範囲の領域を注目領域として抽出するエッジ抽出部と、
前記注目領域の輝度値および当該注目領域の周囲領域の輝度値を取得する輝度分布抽出部と、
前記輝度分布抽出部で取得された前記注目領域の輝度値および前記周囲領域の前記輝度値を、所定時間間隔分取得し、当該所定時間間隔分の前記注目領域の前記輝度値に基づいて、前記注目領域の前記輝度値の時系列変化を取得する輝度変化抽出部と、
前記注目領域の前記輝度値の時系列変化に基づいて、レンズ付着物の有無を判別する付着物判別部と、を備えたことを特徴とするレンズ付着物検知装置。
前記エッジ抽出部で抽出した、前記エッジ強度が閾値範囲内の前記領域のうち、レンズ付着物以外の前記領域を前記注目領域から除外するマスク処理部を、さらに備えた請求項1に記載のレンズ付着物検知装置。
前記マスク処理部は、前記入力画像の消失点に向かう方向に延びるエッジを含む領域を前記注目領域から除外するよう構成された請求項2に記載のレンズ付着物検知装置。
前記マスク処理部は、前記入力画像に現れる路面に発生したわだちを含む領域を前記注目領域から除外するよう構成された請求項2または3に記載のレンズ付着物検知装置。
前記マスク処理部は、前記入力画像に現れる、前記撮像装置を設置した被取付け部の影を含む領域を前記注目領域から除外するよう構成された請求項2〜4のいずれか一項に記載のレンズ付着物検知装置。
【発明を実施するための形態】
【0015】
以下、本発明に係るレンズ付着物検知装置を備えた車両システムの実施形態について、図面を参照して説明する。
【0016】
<第1実施例>
図1は、第1実施例に係るレンズ付着物検知装置を備えた車両システムを搭載した車両1の走行状態を示す図である。車両1の後方には、カメラ20が設置されている。このカメラ20は、撮影画角がωであり後方を広範囲に撮影することができるため、運転者の死角となる領域を撮影することができる。このカメラ20を用いて、車両検知アプリケーション等が実行される。例えば、
図1に示すように、車両1が車線L1〜L3からなる三車線道路2の車線L2を走行し、この車両1が車線L2から車線L1に車線変更しようとしたときに、車両1に設置されたカメラ20によって、車両1の後方の死角に存在する他車両3が検出されたとする。この他車両3を検出した車両検知アプリケーションは、警告音を発したり、表示灯を点灯することによって運転者に注意を促す。
【0017】
なお、本実施例では、後方のカメラ20のレンズ付着物検知装置として実施しているが、本願がこれに限定されることはない。前方や側方にカメラを設置している場合は、それらのカメラ等、いずれのレンズ付着物を検知してもよい。そして、これらのうち、いずれのレンズに付着物が付着したかを通知するようレンズ付着物検知装置を構成してもよい。
【0018】
図2を用いて、第1実施例に係る車両システム10のシステム構成を説明する。第1実施例に係る車両システム10は、車両1に搭載され、
図2に示すように、自車両1の後方の画像を撮像するカメラ(撮像装置)20と、カメラ20から入力される入力画像に基づいて、レンズ付着物を検知するレンズ付着物検知装置30と、レンズ付着物検知装置30で検知された結果に基づいて、自動洗浄を行う洗浄機能(洗浄部)51と、警告音を鳴らしてレンズ付着物の存在を運転者に知らせる警告音発生部53と、ランプや文字表示によりレンズ付着物の存在を運転者に知らせる表示部54と、車両検知や車線検知等の画像センシングアプリケーション部52と、処理プログラムや各処理で使用するデータ等が記憶される記憶部60と、を備えて構成されている。
【0019】
カメラ20は、レンズ21と、レンズ21により結像された画像をアナログ電気信号に変換する撮像素子22と、撮像素子22で取得された画像のゲインを調整するゲイン調整部23と、を備えて構成されている。記憶部60は、プログラムやデータを記憶するもので、ハードディスク、外付けメモリなどであってもよいし、RAM、ROMなど、データを一時的に記憶するものであってもよい。
【0020】
レンズ付着物検知装置30は、カメラ20から入力される入力画像に対して各種処理を行って画像情報を蓄積する画像処理部31と、画像処理部31からの情報に基づいて、レンズ付着物の有無を判別する付着物判別部32と、車速等の車両情報を取得する車両情報取得部33と、レンズ付着物の有無に基づいて他の処理部への出力情報を生成する出力情報生成部34と、画像処理部31で取得された画像情報や付着物判別部32での判別結果等を記憶する記憶部60と、を備えて構成されている。第1実施例のレンズ付着物検知装置30では、記憶部として車両システム10に備えられた記憶部60を兼用している。このようなレンズ付着物検知装置30や画像センシングアプリケーション部52は、CPUやメモリ、I/O、タイマ等を有するコンピュータによって実行されるプログラムとして構成することができる。また、レンズ付着物検知装置30では、レンズ付着物検知処理がプログラミングされて、予め定められた周期で繰り返し処理を実行するようになっている。
【0021】
第1実施例の画像処理部31は、
図2に実線で示すように、カメラ20からの入力画像を取得し、処理領域を設定して複数のブロックに分割する処理領域取得部35と、入力画像からエッジ強度の弱い領域を抽出するエッジ抽出部36と、エッジ強度の弱い領域とその周囲の領域の輝度値を取得し輝度分布を抽出する輝度分布抽出部37と、時系列で蓄積された輝度値に基づいて輝度値の時系列変化を取得する輝度変化抽出部38と、を有して構成されている。
【0022】
以下、
図3〜
図8の処理の説明図、および、
図16〜
図20のフローチャートを用いて、第1実施例に係るレンズ付着物検知装置30におけるレンズ付着物検知処理について説明する。ここでは、レンズ付着物として泥汚れを検出する際の処理工程を説明する。
【0023】
図16のフローチャートに示すように、第1実施例のレンズ付着物検知処理は、車両情報取得処理(ステップS10)と、車速判定処理(ステップS20)と、処理領域取得処理(ステップS30)と、エッジ抽出処理(ステップS40)と、輝度分布抽出処理(ステップS50)と、処理時間判定処理(ステップS60)と、輝度変化抽出処理(ステップS70)と、付着物判別処理(ステップS80)と、出力情報生成処理(ステップS90)と、を有する。これらの処理は、制御部(CPU)によって制御されている。
【0024】
(車両情報取得処理および車速判定処理)
車両情報取得処理(ステップS10)、車速判定処理(ステップS20)は、車両情報取得部33により行われる。車両情報取得部33は、速度センサ等から送信される速度情報を取得する(ステップS10)。次に、この車速が所定値以上(例えば1km/h以上)であるか否かを判定する(ステップS20)。車速が所定値以上と判定された場合(Yes)は、次の処理領域取得処理(ステップS30)に進み、10km/h未満と判定された場合(No)は、ステップS30〜ステップS80の処理をスキップして出力情報生成処理(ステップS90)に進み、その後レンズ付着物検知処理全体を終了する。すなわち、泥汚れは、車両1が走行中に付着し易い。そのため、車両1が走行していないとき、あるいは、ゆっくりと走行しているときは、泥汚れが付着しにくく、レンズ付着物検知処理を行う必要がないと判断している。
【0025】
なお、第1実施例では、上述のようにレンズ付着物検知処理の続行、終了の判断基準を一つの所定値としているが、本願がこれに限定されることはない。例えば、開始条件と終了条件とで異なる所定速度で判断してもよいし、エンジン始動やシフトチェンジなどを判断基準としてもよい。また、泥汚れが付着し易い道路状況(オフロード走行中)、天候状況(雨天など)の車両情報に基づいて、判断してもよい。
【0026】
(処理領域取得処理)
処理領域取得処理(ステップS30)は、処理領域取得部35により行われる。処理領域取得処理の詳細を、
図17のフローチャートを用いて説明する。処理領域取得部35は、まず、カメラ20から入力される入力画像を取得し、縮小する(ステップS31)。ただし、本願がこれに限定されることはなく、縮小せずに使用してもよい。しかし、このように縮小した画像を以後の処理で使用することで、処理速度を向上させるとともに、画像情報等の記憶容量を小さくすることが可能となる。
【0027】
次に処理領域取得部35は、縮小したモノクロ画像から、処理対象となる領域を設定する(ステップS32)。この処理対象領域は、入力画像の全部でもよいが、本実施例では、
図3(a)、(b)に示すように、入力画像100のうち、本実施例で使用する画像センシングアプリケーション部52の処理領域(例えば、車両検知での処理領域B、車線検知での処理領域L、洗浄部51での自動洗浄実施を判断する領域など)を包含する領域を処理対象領域102としている。このように、使用する画像センシングアプリケーション部52や各種機能の処理領域を少なくとも包含する位置のレンズ付着を物検することで、画像センシングアプリケーション処理の精度を向上させることができるとともに、レンズ付着物検知処理の処理効率も向上する。
【0028】
そして、この処理対象領域を、
図3(b)に示すように、複数のブロック201に分割する(ステップS33)。以降の処理は、このブロック単位で行うことで、画素単位で処理を行うよりも効率的に行うことができる。本実施例では、各ブロック201のサイズは、検知したい汚れの大きさ以下に設定している。このようなサイズとすることで、泥汚れのみを確実かつ効率的に検知することができる。また、このように分割された各ブロック201の座標等のブロック情報は、ブロック番号と対応付けられて記憶部60等に記憶される。
【0029】
(エッジ抽出処理)
エッジ抽出処理(ステップS40)は、エッジ抽出部36により行われる。エッジ抽出処理の詳細を、
図18のフローチャートを用いて説明する。この
図18に示すように、エッジ抽出部36は、まず、処理領域取得処理(ステップS30)で縮小された入力画像を縮小して、白黒の濃淡画像を取得する(ステップS41)。このように画像を縮小することで、処理の効率化を図っている。次に、エッジ抽出部36は、縮小された入力画像のエッジ抽出を行う(ステップS42)。このエッジ抽出は、従来公知の手法を用いて行うことができる。そして、抽出されたエッジ画像を用いて、エッジ強度に対する閾値処理を行い、本処理に必要なエッジだけを抽出した後、二値化処理を行う(ステップS43)。閾値処理では、例えば、エッジ強度ρが、所定の範囲内のエッジ(弱エッジ)だけを残したエッジ画像を生成する。
図4に、エッジ抽出処理により、入力画像100から生成されたエッジ画像103のイメージ図を示す。
図4(a)に示す入力画像から、
図4(b)に示すエッジ画像に示すように、泥汚れ部分が、弱いエッジとして抽出される。
【0030】
なお、同じ泥汚れでも、オフロードなどのコンディションの悪い道路を走行している場合の泥汚れと、舗装道路(オンロード)を走行している場合の泥汚れとでは、濃度や色合いなどが異なり、弱いエッジ強度の度合いも異なることがある。また、付着物の種類によっても、エッジ強度が異なることもある。そのため、このような道路コンディション、その他走行状況、付着物の種類や付着状況等に応じて、閾値を複数用意しておき、レンズ付着物検知を実行するときに、いずれの閾値を用いるか判断してもよい。
【0031】
次に、上記で生成された弱エッジ画像に存在するノイズを除去するノイズ除去処理(ステップS44)を行う。本実施例では、以下のようなエッジをノイズと定義する。
(a)前回抽出したエッジ画像のエッジ箇所と違う箇所にあるエッジ
(b)面積が所定値以下のエッジ
【0032】
まず、ステップS43で抽出したエッジ画像と、前回抽出したエッジ画像との論理積をとって、上記(a)のノイズを除去する。すなわち、本実施例のレンズ付着物検知処理で抽出したいエッジは、レンズに付着している汚れのエッジであり、レンズに付着した汚れは、一定時間その場所に存在し続けるため、瞬間的に抽出されるエッジはノイズである可能性があるからである。なお、「前回抽出したエッジ画像」とは、前回行ったエッジ抽出処理で得られたエッジ画像を示す。本処理は、所定時間内で複数回繰り返されるので、今回のエッジ抽出処理のエッジ画像を、前回の処理で抽出したエッジ画像と比較するものである。ただし、一回目の処理の場合は、前回のエッジ画像が存在しないので、(a)のノイズ除去はスキップしてもよい。
【0033】
次に、上記(b)の面積が所定値以下のエッジをノイズとして除去する。すなわち、レンズに付着した汚れのエッジは、ある程度塊になって抽出されると想定しているため、このような独立した小さなエッジは汚れではないと判断している。以上のようなノイズ除去を行うことで、レンズ付着物の検知を高精度に行うことができる。
【0034】
(輝度分布抽出処理)
輝度分布抽出処理(ステップS50)は、輝度分布抽出部37によって行われる。輝度分布抽出処理の詳細を、
図19のフローチャートおよび
図5、
図6の説明図を用いて説明する。まず、輝度分布抽出部37では、
図5に示すように、処理対象領域の設定処理にて設定し分割したブロックごとに、ブロック内の画素の輝度値Iの平均輝度値I
aveを、下記式(1)により算出する(ステップS51)。下記式(1)中、u、vはブロックのx、y座標を示し、N、Mはブロック内のx方向(横)およびy方向(縦)の画素数を示し、n、mはブロック内の画素のx方向(横)およびy方向(縦)の位置(相対座標)を示し、n
min、m
minはブロック内の先頭の画素の座標を示す。なお、輝度値は二値化する前の濃淡画像を使用する。
【0036】
輝度分布抽出処理では、次に、上記式(1)で算出された各ブロックの平均輝度値に基づいて、注目ブロックと、その注目ブロックの周囲のブロック(以下、「周囲ブロック」と呼ぶ)とを選択する(ステップS52)。
図6(a)に太線で示したブロック201aが、注目ブロックである。この注目ブロック201aは、平均輝度値が低いブロック201から選択される。すなわち、泥汚れが付着している領域の輝度値は、付着していない領域の平均輝度値より低くなる傾向にある。そのため、本実施例のレンズ付着物検知処理では、この傾向を泥汚れの特徴として利用し、後の付着物判別処理にて泥汚れ付着有無の判定を行う。
【0037】
また、周囲ブロック201bとしては、注目ブロック201aの外周の当該注目ブロック201aと隣接するブロック201の外周に位置する周囲ブロック201bが選択される。すなわち、泥汚れは一つのブロックだけでなく、その隣接するブロックにも付着している場合が多いので、注目ブロック201aと、それと隣接するブロックとでは、平均輝度値の差が出ないと考えられるためである。したがって、隣接するブロックよりも外側のブロックを周囲ブロック201bとして選択している。なお、本願がこれに限定されることはなく、付着物の付着面積が小さい場合等は、注目ブロック201aに隣接するブロック201を周囲ブロック201bとして選択してもよい。また、付着物の付着面積が大きい場合等は、注目ブロック201aから数ブロック離れたブロックを周囲ブロック201bとして選択してもよい。
【0038】
上述のように、注目ブロック201aと周囲ブロック201bとを選択したら、注目ブロック201aの平均輝度値より高い平均輝度値をもつ周囲ブロック201bの数をカウントする(ステップS53)。この場合も、二値化前の濃淡画像を使用してカウントする。次に、明るい周囲ブロック201bの割合(明るい周囲ブロック数/周囲ブロックの総数)を計算する(ステップS54)。その結果、泥汚れが存在するブロック(注目ブロック201a)については、平均輝度値が高い明るい周囲ブロック数の割合が高くなる。
【0039】
次に、エッジ抽出処理(ステップS40)で抽出されたエッジ画像を使用して、弱いエッジをカウントする(ステップS55)。この弱いエッジのカウントは、二値化後の画像を用いて行う。レンズに付着した泥汚れは、焦点が合わず輪郭がぼやけており、弱いエッジがかたまりとなって存在する傾向にある。そのため、本実施例のレンズ付着物検知処理では、ブロックごとに弱いエッジの数をカウントする。
図7に、弱いエッジのイメージを表示した。このブロックでは、内側の白線で囲まれた部分に弱いエッジが存在する。また、弱いエッジのカウント数は、記憶部60に記憶される。
【0040】
(処理時間判定処理)
以上、一つの入力画像に対して、上記処理が終了したら、制御部により、
図16における処理時間判定処理(ステップS60)が行われる。一定時間を経過したか否か判定し、経過した場合は、次の輝度変化抽出処理(ステップS70)に進む。一定時間を経過していない場合は、処理領域取得処理(ステップS30)、エッジ抽出処理(ステップS40)、および、輝度分布抽出処理(ステップS50)を繰り返す。このように、ステップS30〜ステップS50を、所定の時間内で複数回繰り返すことで、平均輝度値、明るい周囲ブロックの割合、弱いエッジのカウント数などの情報が、時系列で記憶部60に蓄積される。本実施例では、1秒ごとに20回、処理を行って情報を蓄積している。なお、この時間は付着物の種類や車速等の車両情報、その他の状態によって任意に設定できる。例えば、雨天時やオフロード走行中では、泥汚れが頻繁に付着するため、短時間で泥汚れの検知が可能であるとともに、迅速な警告が必要となる。そのため、時間を短く設定するのが好ましい。これに対して、晴天時やオンロード走行中では、泥汚れが付着しにくいため、高精度な検知を可能とするためには、長時間、情報を蓄積するのが好ましいため、時間を長く設定するのが好ましい。
【0041】
(輝度変化抽出処理)
輝度変化抽出処理(ステップS70)は、輝度変化抽出部38によって行われる。輝度変化抽出処理の詳細を、
図8の説明図を用いて説明する。レンズに付着した泥汚れは、時間が経過しても動きづらく、透過性が低いため、その領域内の時間方向(経時)における輝度値は変動が小さくなる。このような時間方向における画素値の変化を調べるために、記憶部60には所定時間分の平均輝度値(ブロックの代表輝度値)が蓄積されている。すなわち、ステップS50の輝度分布抽出処理で取得された平均輝度値が、ブロックごとに記憶部60に蓄積されている。
図8に、記憶部60に記憶され蓄積された、時間ごとの各ブロックの平均輝度値のレコードのイメージを表す。
【0042】
この蓄積された平均輝度値に基づいて、下記式(2)を用いて、ブロックごとの代表輝度値Eを算出する。下記式(2)中、I
aveはブロックの平均輝度値を表し、iはブロック番号を表し、Nは一定時間(処理を行った時間)を表わす。
【0044】
次に、上記式(2)で算出されたブロックごとの平均輝度値に基づいて、下記式(3)を用いて、ブロックごとに時間方向の分散Vを算出する。つまり、現在を含め、所定時間内で過去に処理し蓄積した一サイクル分の代表輝度値を用いて、時間方向の分散を計算する。代表輝度値の時間方向の分散Vをブロックごとに算出する。下記式(3)中、I
aveはブロックの平均輝度値を表し、iはブロック番号を表し、Nは一定時間(処理を行った時間)を表わす。
【0046】
(付着物判別処理)
蓄積情報の処理が終了すると、次に、付着物判別部32により付着物判別処理(ステップS80)が行われる。本実施例では、泥汚れの検知を行っているので、本処理では、「泥らしさ」のように、付着物を「泥」と限定して表現しているが、本願がこれに限定されるものではなく、「水滴らしさ」のように「泥」を各付着物に読み替えることができる。
【0047】
付着物判別処理の詳細を、
図20のフローチャートを用いて説明する。まず、記憶部60に蓄積された以下の情報に基づいて、ブロックごとに泥らしさスコアを算出する(ステップS81)。
(a)弱いエッジのカウント数
(b)周囲ブロックにおける明るい周囲ブロック数の割合
(c)処理ブロックごとの平均輝度値の分散
【0048】
具体的には、弱いエッジのカウント数が閾値より少ない注目ブロックでは、泥の付着率は低いため、泥らしさのスコアはカウントしない。さらに、周囲ブロックにおける明るいブロック数の割合が閾値よりも高い場合は、スコアの加算率は大きくなる。また、ブロックごとの平均輝度値の分散が所定の範囲内であれば、スコアの加算率は大きくなる。
【0049】
次に、以下の情報に基づいて、泥汚れ判定を行う(ステップS82)。以下の条件のいずれかを満たす場合は、泥汚れが有ると判断する。
(a)泥らしさスコアが閾値以上
(b)処理ブロックごとの分散値が閾値以下
【0050】
また、本実施例では、泥汚れを判定した後に、後述の出力情報生成処理で、泥汚れ情報を洗浄部51や、車両検知、車線検知等の画像センシングアプリケーション部52に送信するため、出力用の情報を生成している。この処理で用いるために、泥汚れ判定では、判定結果として以下に示す情報を算出している。この算出結果を記憶部60に記憶する。
(a)処理ブロックごとの泥汚れ判定結果(泥汚れ付着有り/無し)
(b)処理ブロック上における泥汚れ面積(単位:ブロック)
【0051】
次に、泥汚れ判定結果に基づいて、以下に示す泥汚れ付着率を算出する(ステップS83)。なお、以下の情報は、一例であり、汚れ付着情報を使用する画像センシングアプリケーション(移動体検知や駐車枠認識など)や汚れへの対処方法等によって、任意の情報を算出することができる。
(a)車線検知での処理領域における泥汚れ付着率
(b)車両検知での処理領域における泥汚れ付着率
(c)自動洗浄実施判断領域の処理ブロックにおける泥汚れ付着率
【0052】
(出力情報生成処理)
出力情報生成処理(ステップS90)は、出力情報生成部34で行われる。ここでは、付着物判別処理によって算出された各種情報に基づいて、他のアプリケーションや装置等に送信するための出力情報を生成し、出力する。なお、車速判定処理(ステップS20)で、Noと判定され処理がスキップされた場合は、レンズ付着物検知処理が行われなかった旨の出力情報(クリア情報など)が出力される。
【0053】
レンズ付着物検知装置30からの出力情報に基づいて、例えば、洗浄部51がレンズの洗浄処理を行う。警告音発生部53、表示部54では、警告音の発生、警告ランプ、文字等の表示を行って、運転者に注意を促す。また、車両検知、車線検知などの画像センシングアプリケーション部52では、出力情報を各処理の判断情報等に使用する。なお、これらの装置やアプリケーションのいずれに情報を送信し、いずれの処理を行うかは、任意であり、車両システム10の構成に応じて適宜選択することができる。
【0054】
以上、第1実施例では、泥汚れの付着の有無を高精度に検知することができる。そのため、レンズの汚れなどを確実に運転者や自動洗浄装置等に通知して、レンズ付着物の迅速な除去を可能とすることができ、カメラを用いた車両検知などの画像センシングアプリケーションを良好に実施することができ、高性能な車両走行が可能となる。また、輝度値および輝度値の経時変化の双方で付着物を検知しているため、経時で変化しにくい景色やガードレール、欄干、歩道など、レンズ付着物以外の撮像物体は注目領域から除外され、高精度な検知が可能となる。その結果、不必要に運転者に汚れを通知することや、不必要に自動洗浄を行うことがなく、効率的で無駄のない良好な車両走行が可能となる。
【0055】
なお、第1実施例ではエッジ抽出処理や輝度分布処理で、各々抽出データを記憶部60に記憶して蓄積し、一定時間が経過したところで、輝度変化抽出処理にて統計処理を行っている。しかし、本願がこれに限定されることはなく、エッジ抽出処理や輝度分布処理で抽出したデータを、輝度変化抽出処理が記憶するよう構成してもよい。さらに、輝度変化抽出処理がタイマにより時間を監視し、一定時間が経過したところで、統計処理を行うよう構成してもよい。
【0056】
<第2実施例>
第2実施例に係るレンズ付着物検知装置を備えた車両システムについて以下に説明する。第2実施例の車両システムの構成は、誤検知を抑制するためのマスク処理部を設けたこと以外は、第1実施例の車両システムと同様の構成を有している。そのため、
図2を使用して第2実施例の車両システムの構成を説明するとともに、第1実施例と同じ構成については、同一の符号を付し詳細な説明は省略する。
【0057】
図2に示すように、第2実施例のレンズ付着物検知装置を備えた車両システム10は、カメラ(撮像装置)20と、レンズ付着物検知装置30と、洗浄部51と、画像センシングアプリケーション部52と、警告音発生部53と、表示部54と、記憶部60と、等を備えて構成されている。
【0058】
第2実施例の画像処理部31は、
図2に実線および点線で示すように、処理領域取得部35と、エッジ抽出部36と、輝度分布抽出部37と、輝度変化抽出部38と、マスク処理部39と、を有して構成されている。
【0059】
以下、図面を用いて第2実施例に係るレンズ付着物検知装置30における、レンズ付着物検知処理について説明する。本実施例でも、レンズ付着物として泥汚れを検知する。また、処理の説明においても、第1実施例と同様の処理については、同じ説明図および同じフローチャートを用いて説明する。
【0060】
図21のフローチャートに示すように、第2実施例のレンズ付着物検知処理は、各種車両情報取得処理(ステップS110)と、処理続行判定処理(ステップS120)と、処理領域取得処理(ステップS130)と、エッジ抽出処理(ステップS140)と、マスク処理(ステップS150)と、輝度分布抽出処理(ステップS160)と、処理時間判定処理(ステップS170)と、輝度変化抽出処理(ステップS180)と、付着物判別処理(ステップS190)と、出力情報生成処理(ステップS200)と、を有する。これらの処理は、制御部(CPU)によって制御されている。
【0061】
(各種車両情報取得処理)
各種車両情報取得処理(ステップS110)では、まず、車両情報取得部33により、車速情報、オンロードまたはオフロード情報、昼夜情報など、各種車両情報が取得される。また、晴れ、雨、雪などの天候情報を取得してもよい。オンロードかオフロードかの情報は、いずれの手段により取得してもよいが、例えば、カメラ20の画像やGPS情報に基づいて判断してもよいし、カーナビ情報に基づいて判断してもよい。また、昼夜情報は、カメラ20の撮像素子22によって取得された画像に対する、ゲイン調整部23によるゲイン調整値の状態によって判別する。画像に対するゲイン調整値が上げられた場合は、暗い画像が取得されたことを示し、夜であると判断できる。逆に、ゲイン調整値が下げられた場合は、明るい画像が取得されたことを示し、昼であると判断できる。車速情報は、速度センサからの信号情報により取得する。天候情報は、ウィンドワイパの駆動信号を利用して降雨の有無を判断してもよいし、通信機能を有するカーナビ情報等から取得することも可能である。
【0062】
(処理続行判定処理)
処理続行判定処理(ステップS120)では、上記で取得した各種車両情報に基づいて、レンズ付着物検知処理を続行するか否かを判定する。まず、昼夜判定では、ゲイン調整値に基づいて、昼と判定されれば、次に洗浄状態判定を行い、昼以外(夜、その他)と判定されればステップS130〜S190の処理をスキップして、出力情報生成処理(ステップS200)に進み、その後処理全体を終了する。
【0063】
なお、第2実施例では、車両1のエンジンの始動や走行開始等をトリガーとして、レンズ付着検知処理が起動され、上述のようにレンズ付着物検知処理の続行、終了、中断の判定を、昼夜と洗浄状態に基づいて行っている。しかし、本願がこれに限定されることはなく、走行状況等に応じて、いずれの条件を判定対象としてもよい。例えば、第1実施例のように、車速に基づいて判定してもよい。また、オンロード、オフロードに基づいて判定し、例えば、オフロードのときに本処理を起動するようにしてもよい。
【0064】
(処理領域取得処理)
処理領域取得処理(ステップS130)は、処理領域取得部35により行われ、カメラ20からの入力画像から、処理対象領域を設定し、ブロック化する。本実施例でも、車両検知での処理領域と、車線検知での処理領域と、自動洗浄判断領域とを包含する領域を処理対象領域としている。処理領域取得処理の概要は、第1実施例と同様であるため、説明を省略する。
【0065】
(エッジ抽出処理)
エッジ抽出処理(ステップS140)は、エッジ抽出部36およびマスク処理部39により行われる。本実施例におけるエッジ抽出処理は、マスク処理部39がレーンマーカー(以下、単に「レーン」と呼ぶ)をマスクした画像を用いて、エッジ抽出部36がエッジ抽出(ステップS42)でエッジを抽出すること以外は、第1実施例と同様の処理を行っている。そのため、同様の処理については説明を省略し、ここではレーンのマスク処理のみについて説明する。道路に表示されたレーンの映像は、通常はカメラ20にくっきりと撮影されるため、通常は道路との境目に弱いエッジは検出されにくい。しかし、レーンが不鮮明であるときや汚れている場合は、縁の部分がぼやけ、弱いエッジが検出されることがあり、レンズ付着物の弱いエッジとの区別がつきにくくなる場合がある。そのため、レーンのマスク処理を行って、道路上のレーンによるレンズ付着物検知処理の検知精度を向上させるために行われる。
【0066】
レーンのマスク処理について、
図9、
図10の説明図を参照して説明する。
図9(c)に、車両の背後を撮影した画像(リアビュー)に映し出されるレーンのイメージ画像を示した。このように、消失点からハ字状に左右対称に現れるレーンL、Rのエッジ抽出を抑制するため、画像を左右に半分に分け、左用と右用にそれぞれ用意したフィルタを適用する。
図9(a)に示す左領域用エッジフィルタ(右上から左下に向かって明るくなるエッジフィルタ)は、
図9(c)のL部分のレーンのエッジを抽出しないことを目的としたフィルタである。
図9(b)に示す右領域用エッジフィルタ(左上から右下に向かって明るくなるエッジフィルタ)は、
図9(c)のR部分のレーンのエッジを抽出しないことを目的としたフィルタである。また、フィルタサイズを大きくすることにより、ノイズエッジを減らすことも目的としている。
【0067】
図10に示すように、左右に分割した入力画像に、右領域用、左領域用フィルタを適用してレーンを抑制した後、右領域、左領域のそれぞれのエッジを抽出する。この右領域と左領域とで別個に得られたエッジ画像を結合して、エッジ画像を生成する。なお、レーンのマスクは、後述する光源等のマスク処理を行う際にまとめて行ってもよい。しかし、エッジ画像を抽出する工程でレーンのマスクを行うことにより、エッジ抽出処理の効率化や高速化を図ることができるだけでなく、以降の処理においても、不要なエッジをカウントする等がなく、これらの処理の効率化等も可能となる。
【0068】
次に、上記で生成された弱エッジ画像に基づいて、閾値処理と二値化処理とを行い、ノイズ除去を行う(
図18のステップS43、S44参照)。これらの処理も第1実施例と同様であるため、詳細な説明は省略する。
【0069】
(マスク処理)
マスク処理(ステップS150)は、マスク処理部39によって行われる。本実施例では、わだちのマスク処理と、光源のマスク処理とを行っている。
図11、
図12の説明図を用いて、マスク処理の詳細を説明する。
【0070】
まず、
図11に示す、わだちマスク画像作成のための各種処理について説明する。路面に発生するわだちには、雪によるわだちや雨によるわだち等がある。また、オフロードの場合には、路面に残ったタイヤの跡によるわだちが現れる。これらのわだちの輪郭が弱いエッジとして抽出されることがあり、泥汚れの弱エッジとの判別がつきにくいことがある。そのため、弱エッジ抽出の際に影響(ノイズ)を与えることがあり、弱エッジ抽出を効率的かつ高精度に行うためにわだちを含む領域をマスクする。なお、わだちは、天候が雪や雨等の際、オンロード走行中などに発生し易い。そのため、わだちが生じにくい晴天時、オンロード走行中などは、このわだち画像処理やわだちマスク処理をスキップしてもよい。また、これらの条件の違いにより、現れるわだちの濃淡も変化するため、条件の違いに対応して、マスク画像の生成処理で使用するパラメータを調整してもよい。
【0071】
わだち検知では、
図11(a)に示すような入力画像において、わだちの輪郭位置を特定する。それには、所定時間分の入力画像を比較し、車両進行方向に、弱いエッジが、時間的、空間的に連続している領域を検出する。
図11(b)では、処理対象領域を複数のフレームに小分割し、2フレーム連続してエッジを検出している画素を白で表示している。さらに、ワールド座標(ここではX軸は車幅方向、Y軸は鉛直方向、Z軸は車両の進行方向とする)上で、Z軸方向にエッジが連続しているラインを抽出し、このラインをマスク対象領域としている。この処理によって作成されたマスク画像を、
図11(c)に示している。これらの処理の詳細について以下に述べる。
【0072】
まず、
図11(b)のように、処理対象領域を複数のフレームに小分割し、フレーム内でのエッジの有無を確認し、カウントする。また、この処理と同時に、各フレームをワールド座標上でZ軸、X軸上に並べた場合の投影を取得する。この場合、エッジ数でなく、エッジ有無(0/1)を投影する。
【0073】
次に、上記わだち検知データに基づいて、ラインごとにわだちの有無判定を行う。わだちの判定には、X軸に投影したエッジ有領域数を用いて、以下の手順で行う。
【0074】
(イ)わだち判定
この判定の際には、処理対象領域の外縁部と、外縁部以外とで、異なる判定を用いる。
なお、外縁部とは、X軸投影の左端側の所定領域、右端側の所定領域と定義する。外縁部以外の場合は、以下の条件(a)&(b)を満たす場合に、当該ラインにわだち有りと判定する。
外縁部の場合は、以下の条件(c)を満たす場合に、当該ラインにわだち有りとする。
(a)当該ラインのエッジ有り領域数が、閾値1以上であること。
(b)当該ラインの左右各2ラインに、エッジ有り領域数が閾値2未満のラインがあること。
(c)当該ラインのエッジ有り領域数が、閾値3以上であること。
【0075】
(ロ)わだち継続判定
上記(イ)の判定で、わだち無しと判定された場合(上記(イ)の条件を満たさない場合)かつ、直近にわだちを検出している場合、以下の条件(d)および(e)の双方を満たす場合に、当該ラインのわだち有り判定を継続する。なお、わだち有りを継続する期間は、2回(1秒間)とし、本処理によりわだち有り判定を継続した場合も、継続期間を再設定する。
(d)当該ラインのエッジ有り領域数が、閾値1の1/2以上であること。
(e)当該ラインの左右各2ラインに、エッジ有り領域数が、閾値2の1/2未満のラインがあること。
【0076】
上記わだち検出結果に基づいて、わだち有りと判定したラインをマスクする画像を作成する。具体的には、以下の手順により、
図11(c)に示すようなわだちマスク画像が作成される。
(a)出力画像を白色で塗りつぶす。
(b)わだち有りと判定したラインがあれば、その領域を黒色で塗りつぶす。
【0077】
次に、光源を含む領域をマスクするための各種処理について説明する。自車後方に、太陽などの光源が存在し、その光源の路面反射領域の境界で弱いエッジが抽出される。この光源による弱いエッジは、泥汚れの弱いエッジとの区別がつきにくく、レンズ付着物検知処理の性能に影響を与えることがある。光源のマスク処理は、この影響を抑制することを目的として行われる。
図12(a)に、光源と路面反射のイメージ画像を示し、
図12(b)に、光源をマスクした光源マスク画像を示す。このような入力画像に対する光源のマスク画像作成手順を、以下に記載する。
【0078】
光源領域の情報として、本実施例では、下記の情報を用いる。
(a)西日判定結果
(b)拡散・反射領域
上記(a)、(b)の情報は、所定値以上の輝度を有する領域であるため、入力画像を所定輝度値で二値化することで、光源領域を取得することができる。なお、光源領域の情報は、これらに限定されることはなく、他のいずれの情報を用いてもよい。このように、光源領域と重なる処理ブロックでは、泥汚れらしさスコアをクリアする。つまり、後述の付着物判別処理を行う際に、光源領域と重なる処理ブロックについて、カウントの対象外とすることにより、泥汚れ以外の領域(光源領域)がカウントされるのを防止することができる。
【0079】
このように、本実施例では、わだちを含む領域と光源を含む領域とのマスク処理を行っているが、本願がこれに限定されることはなく、エッジ抽出をより効率的かつ高精度に行うために、ノイズとなり得るいずれの対象物をマスクしてもよい。マスク対象となる他の例として、
図12に示す自車影や、
図13に示す車体などが挙げられる。自車影をマスクするのは、自車影の輪郭で弱いエッジを検出してしまい、泥汚れのエッジの検出に影響を与えることがあるからである。そのため、本処理では、
図13に示すように、自車影の輪郭をマスクするためのマスク画像を作成する。なお、入力画像に現れる自車影は、固定ではなく、時刻や方角によって画像に現れる映像が異なる。この場合も、所定時間の入力画像を蓄積して、経時による変化のない部分の中から、自車影を特定することで、マスク画像を作成する。この自車影の特定は、例えば、映像の形状に基づいて行ってもよいし、予め用意した自車影のサンプル画像などに基づいて行ってもよい。また、天候によっても、光の強さによって影の輪郭が変化し、また、曇天等では影が現れない場合もある。そのため、天候情報に基づいて、自車影のマスク画像の生成処理を変えてもよいし、生成処理自体をスキップするなどしてもよい。
【0080】
これに対して、車体の映像は、カメラ20の取り付け位置等により、固定的に決まるため、経時処理を行う必要がなく、
図14に示すようなマスク画像を予め用意してもよい。または、レンズ付着物検知処理が起動されたときに、初期処理として、入力画像から車体の映像を取得し、マスク画像を生成してもよい。また、先述したように、レーンのマスク処理を、このステップで行ってもよい。
図15に、マスク処理を行う前の弱いエッジ画像と、マスク処理を行った後の弱いエッジ画像とのイメージ画像を示した。なお、
図15では、わだちマスク画像、自車影マスク画像、車体マスク画像を作成して、マスク処理を行ったイメージを示している。
【0081】
(輝度分布抽出処理)
輝度分布抽出処理(ステップS160)は、輝度分布抽出部37によって行われる。第2実施例における輝度分布抽出処理は、マスクされたブロックについて処理しないこと以外は、第1実施例の処理と同様の処理を行っている。そのため、同様の処理については説明を省略し、ここでは、第1実施例と異なる処理について説明する。
【0082】
第1実施例では、注目ブロック、周囲ブロックの選択(ステップS52)を行う際に、周囲ブロックとして、注目ブロックに隣接するブロックの外周に位置するブロックすべてを処理対象の周囲ブロックとして選択している。しかし、第2実施例では、
図6(b)に示すように、処理対象ブロック201cの中から、周囲ブロック201bを選択している。そのため、点線部分は周囲ブロック201bとして選択されない。この処理対象ブロック201cは、上記マスク処理(ステップS150)で、マスクされなかった部分である。つまり、マスクされた領域は、処理対象ブロックとしない。このような処理により、泥汚れ以外の暗いブロックをカウントするのを防止するとともに、処理対象ブロックがすくなくなるため、処理速度を向上させることができる。また、弱いエッジをカウントする処理(ステップS55)でも、マスクされた部分の弱いエッジがカウントされないため、処理速度を向上させることができる。
【0083】
(処理時間判定処理)
第2実施例に係る処理時間判定処理(ステップS170)では、一定時間が経過したかを判断するにあたり、オンロードかオフロードかによって、上記各処理および情報の蓄積を行う時間間隔を使い分けている。すなわち、オフロードの場合は、泥汚れが付着し易いため、短時間の蓄積情報で、泥汚れの有無を検知することができるため、時間間隔を短く設定している。これに対して、オンロードの場合は、オフロードに比べて泥汚れが付着しにくいため、時間間隔を長く設定して、長時間の情報を蓄積して判定するようにしている。なお、本実施例では、泥汚れの有無を検知しているので、オンロードかオフロードかで、情報蓄積の時間間隔を設定しているが、本願がこれに限定されることはない。例えば、水滴の検知の場合は、天候によって時間間隔を調整してもよい。また、泥汚れの有無検知も、道路状況だけでなく、天候によって時間間隔を調整してもよい。
【0084】
(輝度変化抽出処理)
輝度変化抽出処理(ステップS180)は、輝度変化抽出部38によって行われる。第2実施例における輝度変化抽出処理では、第1実施例の処理と同様の処理を行っている。そのため、処理の詳細な説明は省略する。なお、本処理においても、マスクされたブロックについては、処理が行われないので、処理速度の向上を図ることができる。
【0085】
(付着物判別処理)
蓄積情報が十分取得されると、次に、付着物判別部32により付着物判別処理(ステップS190)が行われる。第2実施例における付着物判別処理は、マスクされたブロックについてカウントしないこと以外は、第1実施例の処理と同様の処理を行っている。そのため、同様の処理については説明を省略し、ここでは、第1実施例と異なる処理について説明する。
【0086】
ブロックごとに泥らしさスコアを算出する際に(ステップS81)、前述した各マスク処理でマスクされたブロックについては、各処理でのカウント対象とはしない。すなわち、前述したように、光源領域と重なる処理ブロック、さらには、わだちと重なる処理ブロック、自車影と重なる処理ブロック、自車車体と重なる処理ブロックについて、泥汚れらしさのカウントの対象外とする。
【0087】
(出力情報生成処理)
出力情報生成処理(ステップS200)は、出力情報生成部34で行われる。第2実施例における出力情報生成処理でも、第1実施例の処理と同様の処理を行っている。そのため、処理の詳細な説明は省略する。
【0088】
以上のように、第2実施例では、泥汚れと誤認識しやすい路面状況(例えば、レーンマーカー、わだち、自車影)や、照明環境(例えば、太陽光や車両灯火類などの光源)が発生した場合でも、レンズ付着物以外の撮像物体を注目ブロックから除外するマスク処理を行っているため、泥汚れの付着の有無をより高精度に検知することができる。また、マスク領域を泥汚れ判定処理の対象外とすることで、レンズ付着物検知処理全体を高速かつ効率的に行うことが可能となる。
【0089】
上記第1、第2実施例では、泥汚れの検知を行った例を説明したが、本願が泥汚れの検知に限定されることはなく、水滴、ほこり、塗料、鳥の糞など、他のいずれのレンズ付着物の検知装置、検知処理に用いてもよい。例えば、レンズに雨や霧などの水滴が付着した場合、撮影画像に歪みを生じる、焦点が合わなくなる、などの不具合を生じ、車両検知や車線検知などの画像センシングアプリケーションの作動に影響を与えることがある。そのため、水滴の付着も検知して、エア等で吹き飛ばすことや、運転者に注意を喚起することなどの対応を行う必要がある。
【0090】
上記各実施例では、泥汚れを検知しているため、輝度分布抽出処理において注目ブロックの平均輝度値が周囲ブロックよりも低く、かつ、輝度変化抽出処理において平均輝度値の変化が小さい場合に、泥汚れの付着が有りと判断している。すなわち、泥汚れは光透過性が低く、黒っぽいため、輝度が小さくなるからである。これに対して、水滴は、光透過性が高く、周囲とほぼ同等の輝度となるが、輝度が時間とともに変化する傾向にある。また、水滴が付着した場合も、水滴の外周で弱いエッジが抽出されるが、このエッジ強度の度合いも泥汚れとは異なる場合がある。そのため、弱いエッジが検出された場合において、注目ブロックの平均輝度値が周囲ブロックと同等の場合や、輝度変化抽出処理において平均輝度値の変化が大きい場合に、水滴の付着有りと判断することができる。
【0091】
したがって、水滴付着を検知する場合は、第1、第2実施例において、エッジ抽出処理で弱いエッジ強度を抽出する際に、水滴に好適な閾値を用いるよう構成するのが好ましい。また、輝度変化抽出処理で注目ブロックの平均輝度値を周囲ブロックと比較するときに、輝度が同等か否かで判断するよう構成する。また、輝度変化抽出処理で輝度変化が大きいか否かで判断するよう構成する。このように、付着物の種類に応じた処理を行うようなロジックで、レンズ付着物検知処理を構成するのが好ましい。さらには、付着物の種類や状態に応じて最適の処理を行うよう、車両システムを構築するのが好ましい。
【0092】
また、第1実施例、第2実施例は本願の例示にしか過ぎないものであるため、本願は実施例の構成にのみ限定されるものではない。本願の要旨を逸脱しない範囲の設計の変更等があっても、本願に含まれることは勿論である。