以下、添付図面を参照して、本願の開示する付着物検出装置および付着物検出方法の実施形態を詳細に説明する。なお、以下に示す実施形態により本発明が限定されるものではない。
まず、図1を用いて、実施形態に係る付着物検出方法の概要について説明する。図1は、実施形態に係る付着物検出方法の概要を示す図である。なお、図1には、例えば、車載カメラ(撮像装置の一例)のレンズに雨滴等の水滴が付着した状態で撮像された撮像画像Iを示している。
カメラのレンズに、泥や、埃、雨滴、雪片等の付着物が付着すると、撮像画像Iから車両の周囲の情報、例えば、駐車枠や、他車両や、人の情報を取得できず、駐車枠や、他車両や、人などを正確に検出することができなくなるおそれがある。なお、付着物は、泥、埃、雨滴および雪片に限定されるものではなく、付着物の領域がぼやけた領域となる付着物であればよい。
実施形態に係る付着物検出装置1(図2参照)は、付着物検出方法を実行することで、カメラで撮像された撮像画像Iに基づいてカメラのレンズに付着した付着物を検出する。
具体的には、まず、実施形態に係る付着物検出方法では、撮像画像Iの各画素から検出されるエッジに基づき、カメラのレンズに付着した付着物に対応する付着物領域の候補となる候補領域100を抽出する(ステップS1)。
実施形態に係る付着物検出方法では、例えば、パターンマッチング等のマッチング処理により、雨滴等の円形状の輪郭を含む矩形状の領域を候補領域100として抽出する。
つづいて、実施形態に係る付着物検出方法では、抽出した候補領域100において連続する複数の画素列に関し、所定画素数を単位とする単位領域R1〜R8に分割し、単位領域R1〜R8毎に輝度の平均値(輝度平均)を算出する(ステップS2)。
図1では、候補領域100において、撮像画像Iの垂直方向に連続する複数の画素列を帯領域110として設定し、当該帯領域110を水平方向に8つに分割した単位領域R1〜R8を示している。なお、帯領域110や単位領域R1〜R8の詳細な設定方法については後述する。また、以下では、単位領域R1〜R8を単位領域Rと総称する場合がある。
つづいて、実施形態に係る付着物検出方法では、単位領域R毎に算出した輝度平均の分布における起伏に基づいて候補領域100が付着物領域であるか否かを判定する(ステップS3)。例えば、実施形態に係る付着物検出方法では、輝度平均の分布の起伏変化が所定の変化パターンと合致する場合に、候補領域100が付着物領域であると判定する。より具体的には、実施形態に係る付着物検出方法では、輝度平均の分布における起伏形状が凸状や凹状となる場合に付着物領域と判定する。なお、付着物領域の判定処理の詳細については後述する。
このように、連続する複数の画素列を分割した単位領域Rの輝度平均の分布における起伏に基づいて付着物領域を判定することで、各画素における輝度のノイズによる誤判定を抑制することができる。すなわち、実施形態に係る付着物検出方法によれば、付着物を高精度に検出することができる。
なお、実施形態に係る付着物検出方法では、単位領域R毎に輝度の標準偏差をさらに算出する。そして、算出した輝度の標準偏差が所定の閾値以上の場合には、当該単位領域の輝度平均に代えて異常値を設定することで、候補領域100が付着物領域ではないと判定するようにするが、かかる点については後述する。
次に、図2を用いて、実施形態に係る付着物検出装置1の構成について説明する。図2は、実施形態に係る付着物検出装置1の構成を示すブロック図である。図2に示すように、実施形態に係る付着物検出装置1は、カメラ10と、車速センサ11と、各種機器50とに接続される。なお、図2では、付着物検出装置1は、カメラ10と、各種機器50とは別体で構成される場合を示したが、これに限らず、カメラ10および各種機器50の少なくとも一方と一体で構成されてもよい。
カメラ10は、たとえば、魚眼レンズ等のレンズと、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)などの撮像素子とを備えた車載カメラである。カメラ10は、例えば、車両の前後方、側方の様子を撮像可能な位置にそれぞれ設けられ、撮像された撮像画像Iを付着物検出装置1へ出力する。
車速センサ11は、車両の速度(車速)を検出するセンサである。車速センサ11は、検出した車速の情報を付着物検出装置1へ出力する。なお、車速センサ11を省略して、例えば、付着物検出装置1は、カメラ10の時系列の画像に基づいて車速の情報を算出してもよい。
各種機器50は、付着物検出装置1の検出結果を取得して、車両の各種制御を行う機器である。各種機器50は、例えば、カメラ10のレンズに付着物が付着していることや、ユーザによる付着物の拭き取り指示を通知する表示装置や、流体や気体等をレンズに向かって噴射して付着物を除去する除去装置、自動運転等を制御する車両制御装置を含む。
図2に示すように、実施形態に係る付着物検出装置1は、制御部2と、記憶部3とを備える。制御部2は、画像取得部21と、抽出部22と、算出部23と、判定部24と、フラグ出力部25とを備える。記憶部3は、起伏条件情報31を記憶する。
ここで、付着物検出装置1は、たとえば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、データフラッシュ、入出力ポートなどを有するコンピュータや各種の回路を含む。
コンピュータのCPUは、たとえば、ROMに記憶されたプログラムを読み出して実行することによって、制御部2の画像取得部21、抽出部22、算出部23、判定部24およびフラグ出力部25として機能する。
また、制御部2の画像取得部21、抽出部22、算出部23、判定部24およびフラグ出力部25の少なくともいずれか一つまたは全部をASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等のハードウェアで構成することもできる。
また、記憶部3は、たとえば、RAMやデータフラッシュに対応する。RAMやデータフラッシュは、起伏条件情報31や、各種プログラムの情報等を記憶することができる。なお、付着物検出装置1は、有線や無線のネットワークで接続された他のコンピュータや可搬型記録媒体を介して上記したプログラムや各種情報を取得することとしてもよい。
記憶部3に記憶された起伏条件情報31は、後述の判定部24による処理の基準となる条件を含む情報であり、例えば、輝度分布(輝度平均の分布)の起伏のパターン条件を含む。なお、パターン条件とは、輝度平均の分布の起伏変化の変化パターンや、輝度分布における各画素(単位領域R)がとり得る輝度の閾値範囲である。なお、起伏条件情報31を用いた処理については後述する。
制御部2は、カメラ10から取得した撮像画像Iの各画素から検出されるエッジに基づき、付着物領域の候補領域100を抽出し、抽出した候補領域100における単位領域R毎の輝度平均の分布に基づいて候補領域100が付着物領域であるか否かを判定する。
画像取得部21は、カメラ10で撮像された画像を取得し、現在の撮像画像Iである現在フレームを生成(取得)する。具体的には、画像取得部21は、取得した画像における各画素を輝度に応じて白から黒までの各階調に変換するグレースケール化処理を行う。
また、画像取得部21は、取得した画像に画素の間引き処理を行い、取得した画像よりもサイズが小さい画像を生成する。また、画像取得部21は、間引き処理を施した画像に基づいて、各画素における画素値の和および二乗和の積分画像である現在フレームを生成する。なお、画素値とは、画素の輝度やエッジに対応する情報である。
このように、付着物検出装置は、取得した画像に対して間引き処理を行い、積分画像を生成することで、後段における処理の計算を高速化できるため、付着物を検出するための処理時間を短くすることができる。
なお、画像取得部21は、各画素について、平均化フィルタなどの平滑化フィルタを用いて平滑化処理を行ってもよい。また、画像取得部21は、間引き処理を行わず、取得した画像と同じサイズの現在フレームを生成してもよい。また、以下では、現在フレームを撮像画像Iと記載する場合がある。
抽出部22は、画像取得部21が取得した撮像画像Iの各画素から検出されるエッジに基づき、撮像画像Iの中から付着物領域の候補領域100を抽出する。具体的には、まず、抽出部22は、撮像画像Iにおける各画素の輝度およびエッジ情報を抽出する。各画素の輝度は、例えば、0〜255のパラメータで表現される。
また、抽出部22は、各画素の輝度に基づいてエッジ検出処理を行って、各画素について、X軸方向(撮像画像Iの左右方向)のエッジと、Y軸方向(撮像画像Iの上下方向)のエッジとを検出する。エッジ検出処理には、例えば、Sobelフィルタや、Prewittフィルタ等の任意のエッジ検出フィルタを用いることができる。
そして、抽出部22は、X軸方向のエッジと、Y軸方向のエッジとに基づき、三角関数を用いることで、画素のエッジ角度およびエッジ強度の情報を含むベクトルをエッジ情報として検出する。具体的には、エッジ角度は、ベクトルの向きによって表現され、エッジ強度は、ベクトルの長さによって表現される。
そして、抽出部22は、予め作成された付着物の輪郭を示すテンプレート情報と、検出したエッジ情報とのマッチング処理(テンプレートマッチング)を行い、テンプレート情報と類似するエッジ情報を抽出する。そして、抽出部22は、抽出したエッジ情報の領域、すなわち、付着物の輪郭を含む矩形状の領域である候補領域100を抽出する。
抽出部22は、抽出した候補領域100の情報を算出部23へ出力する。
算出部23は、抽出部22によって抽出された候補領域100において連続する複数の画素列に関し、所定画素数を単位とする単位領域Rに分割し、単位領域R毎に輝度の平均値および輝度の標準偏差を算出する。
ここで、図3A〜図4Bを用いて、算出部23の処理内容について説明する。図3A〜図4Bは、算出部23の処理内容を示す図である。
図3Aおよび図3Bに示すように、まず、算出部23は、候補領域100において連続する複数の画素列を帯領域110として設定する。かかる帯領域110は、後段の単位領域Rの分割処理および輝度情報(平均値および標準偏差)の算出処理の対象となる領域である。
具体的には、図3Aに示すように、まず、算出部23は、候補領域100における水平方向の3列の画素列H1〜H3と、垂直方向の3列の画素列V1〜V3とを選択する。そして、算出部23は、選択した各画素列について、当該画素列を含む複数の画素列を帯領域110として設定する。
図3Bでは、水平方向の画素列H1を含む帯領域110を示している。なお、垂直方向の画素列を含む帯領域110の設定方法については、以下に説明する水平方向の画素列H1を含む帯領域110の設定方法とほぼ同様(画素列が水平方向か垂直方向かの違いのみ)であるため、記載を省略する。
図3Bに示すように、算出部23は、選択した画素列H1を中心にして、垂直方向に連続する複数の画素列を帯領域110として設定する。換言すれば、選択した画素列H1と当該画素列H1に平行な画素列であって、互いに隣接する複数の画素列とを帯領域110として設定する。
図3Bでは、水平方向の画素列H1に対して垂直方向の上側および下側それぞれに連続する3本の画素列(計6本の画素列)と、1本の画素列H1とを含む計7本の画素列を帯領域110として設定する。
なお、帯領域110における画素列H1の位置は、帯領域110の中心でなくてもよく、垂直方向の上側および下側のいずれかに寄った位置であってもよい。また、画素列H1に対して垂直方向の上側および下側それぞれに連続する画素列は、2本以下でも、4本以上でもよい。
また、選択する画素列H1〜H3、V1〜V3は、水平方向の画素列H1〜H3、または、垂直方向の画素列V1〜V3のいずれか一方の方向の画素列であってもよい。また、各方向において選択する画素列H1〜H3、V1〜V3の本数は、3本に限らず、2本以下や、4本以上であってもよい。
つづいて、図4Aに示すように、算出部23は、設定した帯領域110において所定画素数を単位とする単位領域R1〜R8に分割し、単位領域R1〜R8毎に輝度の平均値および輝度の標準偏差を算出する。
なお、図4Aでは、算出部23は、帯領域110を等間隔(同じ画素数)で分割した8つの単位領域R1〜R8を設定する場合を示しているが、単位領域Rの数は6つ以下でも、9つ以上でもよい。また、各単位領域Rに含まれる画素数は同じであっても、異なってもよい。
そして、算出部23は、算出した輝度の標準偏差が所定値未満である場合、帯領域110における単位領域Rの代表値として輝度の平均値を設定する。
一方、図4Bに示すように、算出部23は、算出した輝度の標準偏差が所定値以上である場合、帯領域110における輝度平均の分布として、単位領域Rの輝度平均に代えて、所定の異常値を単位領域Rの代表値に設定する。
図4Bに示す例では、算出部23は、単位領域R8について、輝度の標準偏差が所定値以上である場合、単位領域R8の輝度の平均値に代えて、所定の異常値(例えば、最低値やゼロ等)を単位領域R8の代表値に設定する。
この異常値は、後段の判定部24によって付着物領域ではないと判定される値である。例えば、算出部23は、後述する判定部24が輝度平均の分布が所定のパターンに合致するか否かで付着物領域を判定する場合、かかる所定のパターンに合致しないような異常値を設定する。すなわち、後段の判定部24は、単位領域Rの標準偏差が所定値以上である場合、候補領域100が付着物領域ではないと判定する。これにより、ノイズ成分を含んだ候補領域100を付着物領域として誤判定することを抑制できる。
さらに、後段の判定部24によって付着物領域ではないと判定されるような異常値を設定することで、新たな処理を追加することなく付着物領域でない候補領域100を除くことができるため、処理が複雑化することを抑制できる。
なお、算出部23は、単位領域Rの代表値として、輝度の平均値を用いたが、例えば、単位領域R1〜R8毎に輝度のヒストグラムを作成し、ヒストグラムにおける最頻値や中央値、平均値等を代表値として設定してもよい。
判定部24は、算出部23によって単位領域R毎に算出した輝度平均の分布における起伏に基づいて候補領域100が付着物領域であるか否かを判定する。
まず、判定部24は、候補領域100に含まれる画素の輝度分布(輝度平均の分布)の起伏が所定の除外条件を満たす場合、候補領域100を付着物領域の判定処理の対象から除外する。
ここで、判定部24による候補領域100の除外処理について図5を用いて説明する。図5は、判定部24による除外処理を示す図である。図5では、所定の候補領域100から算出された各帯領域110の輝度平均の分布を示している。図5では、候補領域100に設定された各画素列H1〜H3、V1〜V3に対応する帯領域110毎の輝度平均の分布を示している。例えば、図5において「H1」のグラフは、画素列H1を含む帯領域110における単位領域Rの輝度平均の分布を示す。
判定部24は、各画素列H1〜H3、V1〜V3に対応する帯領域110毎の輝度平均の分布における起伏が所定の除外条件を満たす場合、候補領域100を付着物領域の判定処理の対象から除外する。
例えば、判定部24は、帯領域110に含まれる単位領域Rの代表値に異常値が含まれる場合、候補領域100を付着物領域の判定処理の対象から除外する。換言すれば、判定部24は、帯領域110において隣接する2つの単位領域Rの代表値の差分が所定値以上となる場合、候補領域100を付着物領域の判定処理の対象から除外する。
さらに言い換えれば、判定部24は、帯領域110における単位領域Rの中に、代表値の標準偏差が所定値以上の単位領域R(つまり、異常値が設定された単位領域R)が含まれる場合、候補領域100を付着物領域の判定処理の対象から除外する。
すなわち、判定部24は、輝度平均の分布における起伏の一部が、異常値により急激に凹凸した形状である場合、除外条件を満たすとして、当該候補領域100を付着物領域の判定処理の対象から除外する。このように、判定部24は、異常値に基づいて除外処理(付着物領域ではないと判定する処理ともいえる)を行うこと、付着物でない領域を高精度に除去できる。
また、図5の画素列V1〜V3のグラフに示すように、判定部24は、単位領域Rの輝度平均の分布における起伏が3つのグラフとも平坦、つまり、垂直方向の画素列V1〜V3に対応する3つの帯領域110すべてについて、輝度平均の起伏変化が所定の範囲内である場合、候補領域100を付着物領域の判定処理の対象から除外する。具体的には、候補領域100がバックランプの光が壁に反射した場合、単位領域Rの輝度平均の分布が平坦になる傾向にあることが実験により判明した。そこで、輝度平均の起伏変化が所定の範囲内である場合は候補領域100がバックランプの反射で生じたものであると判定し、付着物領域400の判定処理の対象から除外する。
なお、図5では、垂直方向の画素列V1〜V3における3つの輝度分布が平坦である場合を示したが、水平方向の画素列H1〜H3における3つの輝度分布が平坦である場合や、垂直方向および水平方向の画素列H1〜H3、V1〜V3における6つの輝度分布が平坦である場合に、候補領域100を付着物領域の判定処理の対象から除外してもよい。つまり、判定部24は、候補領域100における垂直方向および水平方向の画素列のうち、少なくとも一方の画素列の輝度分布の起伏変化が所定の範囲内である場合、除外条件を満たすとし、候補領域100を付着物領域の判定処理の対象から除外する。
このように、判定部24は、候補領域100における輝度分布の起伏が所定の除外条件を満たす場合に、かかる候補領域100を付着物領域の判定処理の対象から除外することで、付着物領域の誤判定を減らすことができる。すなわち、付着物を高精度に検出することができる。
つづいて、判定部24は、除外条件により除外した候補領域100以外の候補領域100について、付着物領域であるか否かの判定処理を行う。ここで、図6を用いて、判定部24による判定処理について説明する。
図6は、判定部24の判定処理を示す図である。まず、図6に示すように、判定部24は、まず、各帯領域110について、隣接する単位領域R1〜R8の輝度平均の変化量D1〜D7を算出する。
そして、判定部24は、候補領域100における複数の帯領域110のうち、単位領域Rの輝度平均の分布における起伏変化のパターンが所定の変化パターンを満たす帯領域110が存在する場合に、候補領域100が付着物領域であると判定する。例えば、判定部24は、変化量D1〜D7の各値と、記憶部3に記憶された起伏条件情報31に含まれる変化パターンの各値とを比較して判定処理を行う。なお、起伏条件情報31に含まれる変化パターンとは、変化量D1〜D7のとり得る最大値および最小値の閾値範囲である。
つまり、判定部24は、算出した変化量D1〜D7の各値が、起伏条件情報31に含まれる変化量D1〜D7それぞれの閾値範囲内である場合、候補領域100が付着物領域であると判定する。
換言すれば、判定部24は、隣接する単位領域R1〜R8の輝度平均の変化量D1〜D7のパターンが、起伏条件情報31で設定された閾値範囲である変化パターンを満たす場合に、付着物領域であると判定する。
また、起伏条件情報31において変化量D1〜D7の最大値および最小値を設定して幅をもたせることで、輝度分布の起伏が多少ばらついても、付着物領域として検出することができる。
なお、図6では、起伏条件情報31について、すべての変化量D1〜D7の閾値範囲を設定した場合を示したが、例えば、小さいサイズの付着物領域を検出する場合には、変化量D1〜D7のうち、一部の変化量の閾値範囲のみを設定してもよい。
なお、判定部24は、付着物領域であると判定した候補領域100について、所定領域における輝度変化量を算出し、かかる輝度変化量に基づいて付着物領域の判定結果を確定する確定処理を行ってもよい。かかる点について、図7および図8を用いて説明する。
図7および図8は、判定部24による付着物領域の確定処理を示す図である。確定処理において、判定部24は、まず、付着物領域であると判定した候補領域100における所定の内部領域200において所定方向に連続する複数画素の輝度変化量を算出する。
具体的には、図7に示すように、判定部24は、まず、候補領域100に対して内部領域200を設定する。例えば、判定部24は、候補領域100を垂直方向および水平方向それぞれで所定数に分割する。図7では、候補領域100を垂直方向および水平方向それぞれで4分割する場合を示すが、3分割以下でも、5分割以上でもよい。
そして、判定部24は、所定数に分割した分割領域のうち、中央領域を内部領域200として設定する。図7では、垂直方向および水平方向それぞれで4分割して生成された16の分割領域のうち、中央領域である4つの分割領域を内部領域200として設定する。
そして、判定部24は、内部領域200において複数画素の輝度変化量を算出する。図7では、判定部24は、垂直方向に連続する3画素の輝度変化量を算出する。これは、路面反射の領域が垂直方向に延びる場合が多いためである。これにより、後段の判定処理により路面反射の領域を高精度に判定することができる。なお、算出部23は、水平方向に連続する複数画素の輝度変化量を算出してもよい。
まず、判定部24は、垂直方向に隣接する2つの画素の輝度差分値を第1差分として算出する。図7の中段には、1つの第1差分を1マスとし、画素の配列に対応させて2次元状に配列している。つまり、図7の中段において、1つのマスは垂直方向に隣接する2画素の輝度差分値、すなわち第1差分であり、垂直方向に隣接する2つのマスは、3画素から算出された2つの第1差分である。
つづいて、判定部24は、垂直方向に連続する2つの第1差分の差分値である第2差分を算出する。図7の下段には、絶対値に変換した1つの第2差分を1マスとし、画素の配列に対応させて2次元状に配列している。つまり、図7の下段において、1つのマスは、3画素から算出された1つの第2差分(輝度変化量)である。換言すれば、第2差分は第1差分の変化量である。
このように、輝度が急激に上下する場合は路面の小さな傷等に起因して発生するケースが考えられ、路面反射の領域である可能性が高い。そこで、判定部24は、第2差分を複数画素の輝度変化量として算出することで、後段処理において、付着物領域であるか路面反射の領域であるかを容易に判定することができる。具体的には、例えば、路面の小さな傷等に起因して、連続する3画素の輝度が急激に上下する領域(図7に示す「180」→「160」→「180」)では、第2差分が高くなる。すなわち、第2差分を算出することで、このような輝度が急激に上下する領域を容易に識別できるようになるため、後段処理において、付着物領域であるか路面反射の領域であるかを容易に判定することができる。
なお、判定部24は、第2差分を複数画素の輝度変化量としたが、第1差分を複数画素の輝度変化量としてもよい。第1差分を複数画素の輝度変化量とする場合、複数画素における画素数が2画素以上であればよい。具体的には、2画素の輝度変化量を算出する場合には、算出した1つの第1差分を輝度変化量としてもよく、3画素以上の輝度変化量を算出する場合には、算出した複数の第1差分の平均値を輝度変化量としてもよい。
つづいて、判定部24は、算出結果である第2差分を複数画素の輝度変化量として確定処理を行う。具体的には、図8に示すように、判定部24は、算出した複数画素の輝度変化量をヒストグラム化することで、候補領域100が付着物領域であると確定する。
図8では、一の内部領域200に含まれる複数の複数画素毎の輝度変化量のヒストグラムを示している。図8に示すヒストグラムでは、横軸を輝度変化量とし、縦軸を領域度数として示している。また、図8では、候補領域100が付着物領域である場合のヒストグラムと、候補領域100が路面反射の領域(付着物以外の領域)である場合のヒストグラムとを示している。
なお、領域度数とは、複数画素の数に対応した数であり、1つの度数が1つの複数画素に対応している。言い換えれば、1つの度数は、1つの複数画素における輝度変化量(すなわち、1つの輝度変化量)に対応している。また、領域度数は、度数総和が所定値となるよう正規化した度数である。つまり、図8に示すヒストグラムの領域度数の総和は、大きさの異なる各内部領域200間で同じとなる。
図8に示すように、付着物領域のヒストグラムと、路面反射の領域のヒストグラムとを比較した場合、第1の範囲における領域度数は双方が類似しているものの、第2の範囲において、路面反射の領域の方が、付着物領域に比べて、領域度数の合計がわずかに多い。これは、路面反射の領域では、路面にできた傷や、汚れ等が第2の範囲の領域度数に影響しているためである。
かかる点に着目して、判定部24は、輝度変化量が第1の範囲にある輝度変化量の数と、第1の範囲よりも輝度変化量が大きい第2の範囲にある輝度変化量の数とに基づいて候補領域100が付着物領域であると確定する。
具体的には、判定部24は、輝度変化量「0」を最小値とする第1の範囲にある領域度数の和と、第1の範囲の最大値よりも最小値が大きい第2の範囲にある領域度数の和とに基づいて候補領域100が付着物領域であると確定する。
例えば、判定部24は、第1の範囲にある領域度数の和が所定値以上、かつ、第2の範囲にある領域度数の和が所定値未満である場合、候補領域100が付着物領域であると確定する。
一方、判定部24は、第1の範囲にある領域度数の和が所定値以上、かつ、第2の範囲にある領域度数の和が所定値以上である場合、候補領域100が付着物領域ではない(路面反射領域である)と確定する。
これにより、判定部24は、候補領域100の中から、路面反射の領域に対応する領域を除くことができるため、路面反射の領域を付着物領域として誤検出することを抑制することができる。
また、判定部24は、第1の範囲にある領域度数の和が所定値未満である場合には、第2の範囲にある領域度数の和に関わらず、候補領域100が付着物領域ではないと確定する。
そして、判定部24は、候補領域100について付着物領域として継続して判定(確定)されたか否かの継続性の判定処理を行う。ここで、判定部24による継続性の判定処理について説明する。
図9は、判定部24による継続性の判定処理を示す図である。図9では、各候補領域100の状態を管理するためのステートマシンの図を示しており、候補領域100の付着物に関する状態の遷移を示している。
図9に示すように、候補領域100は、「IDLE」、「潜伏」、「付着」および「移動付着」の4つの状態に遷移し得る。
「IDLE」は、付着物領域として判定されていない状態を示す。すなわち、「IDLE」は、付着物領域として継続していない候補領域100であることを示す。
「潜伏」は、付着物が付着している可能性があることを示す状態である。すなわち、「潜伏」は、付着物領域であると判定されたものの、付着物領域として継続判定されている期間が所定期間未満の候補領域100であることを示す。
「付着」は、付着物が付着していることを示す状態である。すなわち、「付着」は、付着物領域として継続判定されている期間が所定期間以上の候補領域100であることを示す。
「移動付着」は、車両が移動中(車速が所定値以上)も継続して付着物が付着していることを示す状態である。すなわち、「移動付着」は、車両が移動中も、引き続き付着物領域として所定期間以上継続判定されている候補領域100であることを示す。なお、以下では、「移動付着」の状態の候補領域100(付着物領域)を移動付着物領域と記載する場合がある。
以下、各状態間の遷移について説明する。なお、状態の遷移は、判定処理の継続性を示すスコアに基づいて行うことができる。
<「IDLE」→「潜伏」>
例えば、判定部24は、初めて付着物領域であると判定した候補領域100について、「IDLE」から「潜伏」へ遷移させる。
<「潜伏」→「IDLE」>
例えば、判定部24は、付着物領域として継続判定されている期間が所定期間未満である候補領域100について、現在の撮像画像Iにおいて付着物領域ではないと判定した場合に、「潜伏」から「IDLE」へ遷移させる。
<「潜伏」→「付着」>
例えば、判定部24は、付着物領域として継続判定されている期間が所定期間以上となった場合に、「潜伏」から「付着」へ遷移させる。判定部24は、「潜伏」から「付着」へ遷移した場合、「付着」の状態であることを紐付けた付着物領域の情報をフラグ出力部25へ出力する。
<「付着」→「IDLE」>
例えば、判定部24は、付着物領域として継続判定されている期間が所定期間以上である候補領域100について、現在の撮像画像Iにおいて付着物領域ではないと判定した場合に、「付着」から「IDLE」へ遷移させる。
<「付着」→「移動付着」>
例えば、判定部24は、「付着」状態に遷移した後に、車両が移動中も付着物領域として継続判定されている期間が所定期間以上となった場合に、「付着」から「移動付着」へ遷移させる。判定部24は、「付着」から「移動付着」へ遷移した場合、「移動付着」の状態であることを紐付けた付着物領域(移動付着物領域)の情報をフラグ出力部25へ出力する。
<「移動付着」→「IDLE」>
例えば、判定部24は、「移動付着」の状態で、車両の移動中に取得した現在の撮像画像Iにおいて付着物領域ではないと判定した場合に、「移動付着」から「IDLE」へ遷移させる。
フラグ出力部25は、判定部24の判定結果に基づいて付着物が付着しているか否かを示す付着物フラグを各種機器50へ出力する。まず、フラグ出力部25は、判定部24によって付着物領域と判定された領域に基づいて、所定の面積計算処理を行う。
ここで、図10を用いて、フラグ出力部25による付着物領域の面積計算処理について説明する。
図10は、フラグ出力部25による面積計算処理を示す図である。図10に示すように、まず、フラグ出力部25は、撮像画像Iの全体領域を所定の小領域500で分割するとともに、小領域500単位で、3つの領域510、520a、520bに区分けする。
具体的には、第1の領域510は、路面に対応する領域である。第2の領域520aは、車体に対応する領域(車体領域)である。第3の領域520bは、上空(スカイ)に対応する領域である。
例えば、フラグ出力部25は、撮像画像Iにおける水平線を検出し、当該水平線よりも上側の領域を第3の領域520bとして設定する。また、第2の領域520aは、カメラ10の取付位置に応じて予め設定される領域である。また、フラグ出力部25は、撮像画像Iの全体領域のうち、第2の領域520aおよび第3の領域520bを除いた領域を第1の領域510として設定する。
そして、フラグ出力部25は、判定部24によって付着物領域であると判定された領域を小領域500の単位に変換し、3つの領域510、520a、520bそれぞれにおける付着物領域(小領域500)の面積比を算出する。例えば、フラグ出力部25は、付着物領域全体を1(100%)として、各領域510、520a、520bに位置する付着物領域の面積比を算出する。
例えば、フラグ出力部25は、各領域510、520a、520bにおける面積比が概ね同じ(領域510、520a、520b間での面積比の差分が所定値未満)である場合、3つの領域510、520a、520bそれぞれの付着物領域の合計面積を面積計算処理の計算結果とする。
一方、フラグ出力部25は、各領域510、520a、520bのうち、第1の領域510の面積比が他の領域520a、520bよりも所定値以上大きい場合、他の領域520a、520bの付着物領域の合計面積を面積計算処理の計算結果とする。
これは、雨滴等の付着物の場合、撮像画像I全体に万遍なく付着する場合が多く、一方で、路面反射の領域は、撮像画像Iの路面領域に集中する場合が多いことに着目している。
つまり、フラグ出力部25は、路面領域である第1の領域510に付着物領域が集中している場合、当該付着物領域が路面反射の領域であるとし、付着物領域全体から路面反射の領域を減算した面積を面積計算処理の計算結果とする。
なお、フラグ出力部25は、路面領域である第1の領域510に付着物領域が集中している場合であっても、かかる付着物領域が移動付着物領域である場合には、付着物領域全体から第1の領域510の付着物領域を減算しない。
これは、判定結果として確度が高い移動付着物領域が少量付着したことを検出するためである。つまり、路面領域である第1の領域510に移動付着物領域が集中していた場合には、路面反射の領域ではなく付着物領域の可能性が高いためである。
そして、フラグ出力部25は、面積計算処理の計算結果として算出された面積が所定値以上である場合には、付着物フラグONを各種機器50へ出力し、かかる面積が所定値未満である場合には、付着物フラグOFFを各種機器50へ出力する。
具体的には、フラグ出力部25は、移動付着物領域の面積が第1閾値以上である場合、付着物フラグONを出力し、移動付着物領域の面積が第1閾値未満である場合、付着物フラグOFFを出力する。
また、フラグ出力部25は、付着物領域(「付着」および「移動付着」)の面積が第1閾値よりも大きい第2閾値以上である場合、付着物フラグONを出力し、第2閾値未満である場合、付着物フラグOFFを出力する。
このように、フラグ出力部25は、移動付着物領域の場合、第2閾値よりも小さい第1閾値を設定することで、判定結果の確度が高い移動付着物領域が少量付着した場合でも、高精度に検出することができる。
次に、図11を用いて、実施形態に係る付着物検出装置1が実行する処理の処理手順について説明する。図11は、実施形態に係る付着物検出装置1が実行する付着物の検出処理の処理手順を示すフローチャートである。
図9に示すように、まず、画像取得部21は、カメラ10で撮像された撮像画像Iを取得し、取得した撮像画像Iに対してグレースケール化処理および間引き処理した後、縮小した撮像画像Iの画素値に基づいて生成した積分画像を撮像画像Iとして取得する(ステップS101)。
つづいて、抽出部22は、画像取得部21が取得した撮像画像Iの各画素から検出されるエッジに基づき、カメラ10に付着した付着物に対応する付着物領域の候補領域100を抽出する(ステップS102)。
つづいて、算出部23は、候補領域100において連続する複数の画素列を含む帯領域110に関し、所定画素数を単位とする単位領域Rに分割する(ステップS103)。
つづいて、算出部23は、単位領域Rの輝度情報を算出する(ステップS104)。輝度情報は、例えば、輝度の平均値および輝度の標準偏差である。
つづいて、算出部23は、算出した輝度の標準偏差が所定値未満であるか否かを判定する(ステップS105)。
算出部23は、輝度の標準偏差が所定値未満である場合(ステップS105:Yes)、単位領域Rの代表値として輝度の平均値(輝度平均)を設定する(ステップS106)。
一方、算出部23は、輝度の標準偏差が所定値以上である場合(ステップS105:No)、単位領域Rの代表値として異常値を設定する(ステップS107)。
つづいて、判定部24は、候補領域100における単位領域Rの輝度平均の分布が所定の除外条件を満たす場合に当該候補領域100を付着物領域の判定処理の対象から除外する除外処理を行う(ステップS108)。
つづいて、判定部24は、候補領域100における単位領域Rの輝度平均の分布における起伏変化が所定の変化パターンに合致する場合に、当該候補領域100を付着物領域と判定する判定処理を行う(ステップS109)。
つづいて、フラグ出力部25は、判定部24によって継続した付着物領域と判定された領域の面積に基づいて、所定の面積計算処理を行い、計算結果として算出された面積が所定値以上であるか否かを判定する(ステップS110)。
フラグ出力部25は、計算結果である面積が所定値以上の場合に、(ステップS110:Yes)、付着物フラグONを各種機器50へ出力し(ステップS111)、処理を終了する。
一方、フラグ出力部25は、計算結果である面積が所定値未満の場合に、(ステップS110:No)、付着物フラグOFFを各種機器50へ出力し(ステップS112)、処理を終了する。
上述してきたように、実施形態に係る付着物検出装置1は、抽出22部と、判定24部とを備える。抽出部22は、撮像装置(カメラ10)で撮像された撮像画像Iの各画素から検出されるエッジに基づき、撮像装置に付着した付着物に対応する付着物領域の候補領域100を抽出する。判定部24は、抽出部22によって抽出された候補領域100において連続する複数の画素列に関し、所定画素数を単位とする単位領域Rに分割し、当該単位領域R毎に算出した輝度平均の分布における起伏に基づいて候補領域100が付着物領域であるか否かを判定する。これにより、付着物を高精度に検出することができる。
また、上述した実施形態では、車両に搭載されるカメラで撮像された撮像画像Iを用いたが、撮像画像Iは、例えば、防犯カメラや、街灯等に設置されたカメラで撮像された撮像画像Iであってもよい。つまり、カメラのレンズに付着物が付着する可能性があるカメラで撮像された撮像画像Iであればよい。
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。