この発明は、車両に搭載した画像センサにより撮像した画像を用いて車両の走行車線を判定する走行車線判定プログラムおよびその記録媒体、走行車線判定装置ならびに走行車線判定方法に関し、特に、車線の境界線が実線であるか破線であるかにかかわらず走行車線を判定することができる走行車線判定プログラムおよびその記録媒体、走行車線判定装置ならびに走行車線判定方法に関するものである。
地図データベースやGPS(グローバル・ポジショニング・システム)を用いた車両の位置検出によって、車両の現在位置と目的地に応じてドライバに走行路を案内するカーナビゲーションシステムが発達し、広範に普及している。
カーナビゲーションシステムでは、GPSによって得られる緯度、経度の情報を基に、自車両の位置を地図上に重ねて表示している。また、音声や視覚情報などを用いてドライバに目的地までの経路を案内することも行なわれている。
カーナビゲーションシステムは、ドライバに交差点での左折や右折を指示することができるが、片側複数車線の道路において、交差点を左折するときは左側のレーン、右折するとき右側のレーンに車がいなければ、ドライバは意図する進路が取れない場合がある。また、直進するときでも右折または左折専用レーンがある場合や自動車専用道路などにおいて出口や分岐がある場合も、走行車線によっては意図する進路を取れない場合がある。
すなわち、GPSを用いた位置検出手法では、片側複数車線の道路において自車両がどの車線を走行しているかを特定することができないため、自車の走行レーンに応じた案内をすることができない。
そこで、自車両の走行する車線(レーン)が最も左側の車線であるのか、最も右側の車線であるのか、その他の車線であるのかを判定する技術が必要となり、このような技術として、車両に搭載した画像センサによって撮像された画像を用いて走行路の両側の白線が実線であるのか破線であるのかを認識し、認識した結果に基づいて走行車線を判定する技術が開発されている(例えば、特許文献1参照。)。
しかしながら、走行路の両側の白線が実線であるのか破線であるのかを認識して走行車線を判定する従来技術には、車道中央線が破線であったり、同一方向の車線の境界線が破線でなかったりすることがあるため、確実な走行車線の判定はできないという問題がある。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、車線の境界線が実線であるか破線であるかにかかわらず走行車線を判定することができる走行車線判定プログラムおよびその記録媒体、走行車線判定装置ならびに走行車線判定方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、車両に搭載した画像センサにより撮像した画像を用いて該車両の走行車線を判定する走行車線判定プログラムであって、前記画像を用いて走行路面の車線境界線を検出する車線境界線検出手順と、前記車線境界線検出手順により検出された車線境界線に基づいて前記画像を複数の領域に分割する領域分割手順と、前記領域分割手順により分割された領域の画像の特徴に基づいて走行車線を判定する走行車線判定手順とをコンピュータに実行させることを特徴とする。
また、本発明は、車両に搭載した画像センサにより撮像した画像を用いて該車両の走行車線を判定する走行車線判定プログラムを記録したコンピュータ読み取り可能な記録媒体であって、前記画像を用いて走行路面の車線境界線を検出する車線境界線検出手順と、前記車線境界線検出手順により検出された車線境界線に基づいて前記画像を複数の領域に分割する領域分割手順と、前記領域分割手順により分割された領域の画像の特徴に基づいて走行車線を判定する走行車線判定手順とをコンピュータに実行させる走行車線判定プログラムを記録したことを特徴とする。
また、本発明は、車両に搭載した画像センサにより撮像した画像を用いて該車両の走行車線を判定する走行車線判定装置であって、前記画像を用いて走行路面の車線境界線を検出する車線境界線検出手段と、前記車線境界線検出手段により検出された車線境界線に基づいて前記画像を複数の領域に分割する領域分割手段と、前記領域分割手段により分割された領域の画像の特徴に基づいて走行車線を判定する走行車線判定手段とを備えたことを特徴とする。
また、本発明は、車両に搭載した画像センサにより撮像した画像を用いて該車両の走行車線を判定する走行車線判定方法であって、前記画像を用いて走行路面の車線境界線を検出する車線境界線検出工程と、前記車線境界線検出工程により検出された車線境界線に基づいて前記画像を複数の領域に分割する領域分割工程と、前記領域分割工程により分割された領域の画像の特徴に基づいて走行車線を判定する走行車線判定工程とを含んだことを特徴とする。
かかる発明によれば、画像を用いて走行路面の車線境界線を検出し、検出した車線境界線に基づいて画像を複数の領域に分割し、分割した領域の画像の特徴に基づいて走行車線を判定するよう構成したので、車線の境界線が実線であるか破線であるかにかかわらず走行車線を判定することができる。
本発明によれば、車線の境界線が実線であるか破線であるかにかかわらず走行車線を判定するので、走行車線を正確に判定することができるという効果を奏する。
以下に添付図面を参照して、この発明に係る走行車線判定プログラムおよびその記録媒体、走行車線判定装置ならびに走行車線判定方法の好適な実施例を詳細に説明する。
まず、本実施例1に係る走行車線判定装置の構成について説明する。図1は、本実施例1に係る走行車線判定装置の構成を示す機能ブロック図である。同図に示すように、この走行車線判定装置10は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、輝度情報取得部15と、車線判定部16と、制御部17とを有する。
画像入力部11は、画像センサ1が撮像した画像の情報を入力して画像記憶部12に格納する処理部である。ここで、画像センサ1は、車両の前方に自車走行路の両端の2本の白線が撮像できるように設置される。
なお、ここでは1台の画像センサを設置した場合について説明するが、お互いのカメラの位置関係が既知であれば、複数台の画像センサを用いて自車走行路の両端の2本の白線を捉え、それらの画像を用いることも可能である。
また、画像センサは色情報を用いる場合は必ずカラー画像センサを用いるが、それ以外はモノクロ画像センサでもカラー画像センサでもよい。また、画像センサは、車両の後方に設置することもできる。
画像記憶部12は、画像入力部11が入力した画像の情報および走行車線判定装置10による画像処理結果を記憶する記憶部である。図2は、画像記憶部12の一例を示す図である。同図に示すように、この画像記憶部12は、画像を構成する画素ごとに、x座標、y座標、輝度(Y)、色差情報(C1,C2)、白線フラグおよび領域ラベルを記憶する。
ここで、白線フラグは、各画素が車線の境界を示す白線に属するか否かを示すフラグであり、白線に属する場合には「1」であり、白線に属さない場合には「0」である。また、領域ラベルは、画像が白線により分割された領域のラベル番号であり、「ラベル0」〜「ラベル3」のいずれかの値をとる。
例えば、図2において、x座標が「1」でありy座標が「1」である画素は、輝度(Y)が「100」であり、色差情報(C1,C2)が(30,40)であり、白線に属さず、領域ラベルは「ラベル1」である。
なお、x座標、y座標、輝度(Y)および色差情報(C1,C2)は、画像入力部11により入力される情報であり、白線フラグおよび領域ラベルは、走行車線判定装置10による処理結果として得られる情報である。
また、ここでは各画素の情報として輝度(Y)および色差情報(C1,C2)を用いるが、赤(R)緑(G)青(B)、または色相(H)彩度(S)輝度(V)を用いることもできる。因みに、YC1C2とRGBとHSVは、以下の関係で表わすことができる。
Y=rR+gG+bB(ただし、r、g、bは予め定められた値である)
C1=Y−R,C2=Y−B
C1=S・sin(H),C2=S・cos(H)
ここで、輝度情報を除いた情報、すなわち色相H、彩度S、色差C1、C2の情報が色情報である。
白線検出部13は、画像記憶部12に記憶された画像から走行路の両端の白線を検出する処理部である。図3−1〜図3−3は、白線検出部13による白線検出処理を説明するための説明図(1)〜(3)である。
この白線検出部13は、図3−1に示す画像上の白線を、図3−2に示すような予め定められた領域内で検出する。すなわち、この白線検出部13は、自車走行路の左端にある白線を検出する領域と、右端にある白線を検出する領域をあらかじめ設定しておく。
そして、設定した各領域において、微分フィルタをかける。微分フィルタは、ラプラシアンフィルタやSobelフィルタなどどの微分フィルタを用いてもよい。ここで、ラプラシアンフィルタとは、入力画像をf(x,y)、出力画像をg(x,y)としたときに下記のように出力画像g(x,y)を算出する。
g(i,j)=0*f(i−1,j−1)+1*f(i,j−1)+0*f(i+1,j−1)
+1*f(i−1,j)-4*f(i,j)+1*f(i+1,j)
+0*f(i−1,j+1)+1*f(i,j+1)+0*f(i+1,j+1)
ただし、i,jは画像内のx,y座標を示す。
そして、あらかじめ定めた閾値で微分フィルタの結果を2値化する。また、検出する白線を直線と仮定すると、領域内から1本ずつの直線を検出する。ここで、直線を検出するのに一般的に用いられている代表的な手法として、ハフ(Hough)変換と最小2乗法があるが、ここでは、直線を検出するのにハフ変換を用いる。ハフ変換式には以下の式が用いられる。
ρ=xcosθ+ysinθ
ここで、白線検出部13は、2値化の結果、「1」になった画素(x,y)についてρ-θ空間に投影する。直線が投影された場合、ρ-θ空間では点で表される。そのため、一番投票数が多い点を直線として検出し、これを白線検出の結果とする。このようにして検出された白線の例を図3−3に示す。
領域分割部14は、白線検出部13により検出された白線を用いて、画像の予め定められた領域を分割する処理部である。図4は、領域分割部14による領域分割処理を説明するための説明図である。
同図に示すように、この領域分割部14は、検出された2本の白線の間を走行路領域として、「ラベル1」をつける。また、右側の白線の右側の領域に「ラベル2」をつけ、左側の白線の左側の領域に「ラベル3」をつける。
輝度情報取得部15は、「ラベル1」、「ラベル2」および「ラベル3」の各領域の輝度情報の平均値を算出する処理部である。ここで、平均値は、各領域に属する画素の輝度の合計をその領域の面積で除算した値である。
車線判定部16は、自車の走行領域(「ラベル1」の領域)の輝度平均値と、右側領域(「ラベル2」の領域)および左側領域(「ラベル3」の領域)の輝度平均値とを比較することで左右の領域が路肩であるか隣接車線であるかの判別を行なう処理部である。
例えば、図3−1のように、右側領域が隣接車線で、左側領域が路肩であった場合、「ラベル1」の領域と「ラベル2」の領域の輝度の差は小さく、「ラベル1」の領域と「ラベル3」の領域の輝度の差は大きい。したがって、隣接領域の輝度平均値と走行領域の輝度平均値の差が所定の値より大きいか小さいかによって、隣接領域が路肩であるか車線であるかを判定することができる。
この車線判定部16が輝度情報取得部15が算出した輝度情報を用いて隣接領域が路肩であるか車線であるかを判定することによって、走行車線判定装置10は、走行車線を判定することができる。
制御部17は、走行車線判定装置10全体の制御をおこなう処理部であり、具体的には、機能部間の制御の移動や機能部と記憶部の間のデータの受け渡しなどをおこなうことによって、走行車線判定装置10を一つの装置として機能させる。
次に、本実施例1に係る走行車線判定装置10の処理手順について説明する。図5は、本実施例1に係る走行車線判定装置10の処理手順を示すフローチャートである。同図に示すように、この走行車線判定装置10は、まず画像入力部11が画像センサ1から画像情報を入力して画像記憶部12に格納する画像入力処理を行なう(ステップS101)。
そして、白線検出部13が画像記憶部12に記憶された画像情報を用いて2本の白線を検出する白線検出処理を行ない(ステップS102)、領域分割部14が白線検出部13により検出された2本の白線を用いて所定の画像領域を3つの領域に分割する領域分割処理を行なう(ステップS103)。
そして、輝度情報取得部15が領域分割部14により3つに分割された各領域の輝度の平均値を算出する輝度情報取得処理を行ない(ステップS104)、車線判定部16が輝度情報取得部15により算出された輝度平均値を用いて走行車線を判定する走行車線判定処理を行なう(ステップS105)。
このように、この走行車線判定装置10は、車線判定部16が白線により分割された領域の輝度を用いて走行車線を判定することによって、車線の境界線が実線であるか破線であるかにかかわらず走行車線を判定することができる。
次に、図5に示した白線検出処理(ステップS102)の処理手順について説明する。図6は、図5に示した白線検出処理の処理手順を示すフローチャートである。なお、この白線検出処理は、図1に示した白線検出部13が行なう処理である。
図6に示すように、この白線検出処理は、白線を検出する領域を設定し(ステップS121)、設定した領域の画素に対して微分フィルタ処理を行なう(ステップS122)。そして、微分フィルタ処理結果を2値化し(ステップS123)、2値化して「1」になった画素に対してハフ変換を行なう(ステップS124)。そして、ハフ変換結果に基づいて直線を抽出する(ステップS125)。
このように、この白線検出処理は、所定の領域に含まれる画素に対して微分フィルタ処理、2値化、ハフ変換を行なうことによって、車線の境界線を精度よく検出することができる。
次に、図5に示した領域分割処理(ステップS103)の処理手順について説明する。図7は、図5に示した領域分割処理の処理手順を示すフローチャートである。なお、この領域分割処理は、図1に示した領域分割部14が行なう処理である。
図7に示すように、この領域分割処理は、ラベルのつけられていない画素を一つ選択し(ステップS141)、選択した画素が2本の白線の間に位置するか否かを判定する(ステップS142)。
その結果、選択した画素が2本の白線の間に位置する場合には、その画素の領域ラベルを「ラベル1」として画像記憶部12に書き込む(ステップS143)。一方、選択した画素が2本の白線の間に位置しない場合には、右側の白線より右側に位置するか否かを判定する(ステップS144)。
その結果、右側の白線より右側に位置する場合には、領域ラベルを「ラベル2」として画像記憶部12に書き込み(ステップS145)、右側の白線より右側に位置しない場合には、領域ラベルを「ラベル3」として画像記憶部12に書き込む(ステップS146)。
そして、全ての画素に対してラベルをつけたか否かを判定し(ステップS147)、全ての画素に対してラベルをつけていない場合には、ステップS141に戻って他の画素にラベルをつけ、全ての画素に対してラベルをつけた場合には、処理を終了する。
このように、この領域分割処理は、各画素について2本の白線との位置関係を判定することによって、所定の画像領域を3つの領域に分割することができる。
なお、走行車線判定装置10は、自車走行路の路面と隣接車線の路面の情報を比較して自車の走行車線を判定する。しかし、自車両の前に先行車がいる場合などは、先行車の情報が自社走行路の路面の情報として比較対象に含まれてしまうことが考えられる。
そこで、路面の彩度は一般的に低く、車両には彩度の高い色が塗装に使われていることを利用して、彩度の高い領域には「ラベル0」をつけ、先行車の情報を走行車線領域内の情報に含めないようにする領域分割処理について説明する。
図8は、先行車の情報を走行車線領域内の情報に含めないようにする領域分割処理の処理手順を示すフローチャートである。同図に示すように、この領域分割処理は、ラベルのつけられていない画素を一つ選択し(ステップS151)、選択した画素が2本の白線の間に位置するか否かを判定する(ステップS152)。
その結果、選択した画素が2本の白線の間に位置する場合には、その画素の彩度が閾値より低いか否かを判定し(ステップS153)、閾値より低い場合には、その画素の領域ラベルを「ラベル1」として画像記憶部12に書き込み(ステップS154)、閾値より低くない場合には、その画素は先行車についての画素であると判断し、その画素の領域ラベルを「ラベル0」として画像記憶部12に書き込む(ステップS155)。
一方、選択した画素が2本の白線の間に位置しない場合には、右側の白線より右側に位置するか否かを判定し(ステップS156)、右側の白線より右側に位置する場合には、領域ラベルを「ラベル2」として画像記憶部12に書き込み(ステップS157)、右側の白線より右側に位置しない場合には、領域ラベルを「ラベル3」として画像記憶部12に書き込む(ステップS158)。
そして、全ての画素に対してラベルをつけたか否かを判定し(ステップS159)、全ての画素に対してラベルをつけていない場合には、ステップS151に戻って他の画素にラベルをつけ、全ての画素に対してラベルをつけた場合には、処理を終了する。
このように、この領域分割処理は、走行車線領域に含まれる画素に対して、その画素の彩度が所定の閾値より低いか否かを判定することによって、先行車両の領域を走行車線領域から取り除くことができる。
次に、図5に示した輝度情報取得処理(ステップS104)の処理手順について説明する。図9は、図5に示した輝度情報取得処理の処理手順を示すフローチャートである。なお、この輝度情報取得処理は、図1に示した輝度情報取得部15が行なう処理である。
図9に示すように、この輝度情報取得処理は、「ラベル1」の領域の輝度の合計および面積を計算し(ステップS161〜ステップS162)、輝度の合計を面積で割って「ラベル1」の領域の輝度の平均値を計算する(ステップS163)。
同様に、「ラベル2」の領域の輝度の合計および面積を計算し(ステップS164〜ステップS165)、輝度の合計を面積で割って「ラベル2」の領域の輝度の平均値を計算する(ステップS166)。
同様に、「ラベル3」の領域の輝度の合計および面積を計算し(ステップS167〜ステップS168)、輝度の合計を面積で割って「ラベル3」の領域の輝度の平均値を計算する(ステップS169)。
このように、この輝度情報取得処理は、「ラベル1」〜「ラベル3」のそれぞれの領域について、輝度の合計および面積を計算し、輝度の合計を面積で割って輝度の平均値を計算する。
次に、図5に示した走行車線判定処理(ステップS105)の処理手順について説明する。図10は、図5に示した走行車線判定処理の処理手順を示すフローチャートである。なお、この走行車線判定処理は、図1に示した車線判定部16が行なう処理である。
図10に示すように、この走行車線判定処理は、「ラベル1」の領域の輝度平均値と「ラベル2」の領域の輝度平均値との差が閾値以上であるか否かを判定し(ステップS181)、閾値以上である場合には、右側領域の路面の状況が車線とは異なるので、走行車線は右車線であると判定する(ステップS182)。
一方、「ラベル1」の領域の輝度平均値と「ラベル2」の領域の輝度平均値との差が閾値以上でない場合には、「ラベル1」の領域の輝度平均値と「ラベル3」の領域の輝度平均値との差が閾値以上であるか否かを判定し(ステップS183)、閾値以上である場合には、左側領域の路面の状況が車線とは異なるので、走行車線は左車線であると判定する(ステップS184)。
これに対して、「ラベル1」の領域の輝度平均値と「ラベル3」の領域の輝度平均値との差が閾値以上でない場合には、左右どちらも車線であるので、走行車線は、中央車線または右車線であると判定する(ステップS185)。
このように、この走行車線判定処理は、走行車線領域の輝度平均値と左右領域の輝度平均値との差が閾値以上であるか否かを判定することによって、走行車線を判定することができる。
上述してきたように、本実施例1では、白線検出部13が画像の所定領域から2本の白線を検出し、領域分割部14が白線検出部13により検出され2本の白線を用いて画像を複数の領域に分割し、輝度情報取得部15が領域分割部14により3つに分割された各領域の輝度平均値を算出し、車線判定部16が輝度情報取得部15により算出された輝度平均値を用いて走行車線を判定することとしたので、車線の境界線が実線であるか破線であるかにかかわらず、走行車線を判定することができる。
ところで、上記実施例1では、画像の輝度情報を用いて走行車線を判定する場合について説明したが、輝度情報の代わりに色情報を用いて走行車線を判定することもできる。そこで、本実施例2では、画像の色情報を用いて走行車線を判定する走行車線判定装置について説明する。
まず、本実施例2に係る走行車線判定装置の構成について説明する。図11は、本実施例2に係る走行車線判定装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図1に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図11に示すように、この走行車線判定装置20は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、色情報取得部25と、車線判定部26と、走行車線判定装置20全体の制御を行なう制御部27とを有する。
色情報取得部25は、領域分割部14により画像が分割された得られた各領域の色差(C1,C2)の平均値を算出する処理部である。路面は一般的にモノトーンであるため彩度が低い。それに対し、路面以外の部分ではモノトーンではなく、彩度が高い可能性がある。走行車線判定装置20は、この路面の特徴を利用して路面と路肩の判断を行なう。
そこで、この色情報取得部25が、領域分割部14により画像が分割された得られた各領域の色情報として色差(C1,C2)の平均値を算出する。なお、平均値の算出は輝度情報の算出と同様に行なう。
車線判定部26は、色情報取得部25により算出された色差の平均値を用いて走行車線を判定する処理部である。具体的には、この車線判定部26は、2つの領域の色差(C1,C2)の平均値の距離Dを特徴量として用いて「ラベル1」と「ラベル2」、「ラベル1」と「ラベル3」の領域を比較することにより、自車の走行車線を判定する。
ここで、ラベルaの領域の色差の平均値を(C1a,C2a)とし、ラベルbの領域の色差の平均値を(C1b,C2b)とすると、距離D
abは式(1)により算出される。
次に、車線判定部26による走行車線判定処理の処理手順について説明する。図12は、車線判定部26による走行車線判定処理の処理手順を示すフローチャートである。同図に示すように、この車線判定部26は、「ラベル1」と「ラベル2」の領域の色差の平均値の距離D12を算出する(ステップS221)。
そして、算出した距離D12が閾値以上であるか否かを判定し(ステップS222)、閾値以上である場合には、右側領域の路面の状況が車線とは異なるので、走行車線は右車線であると判定する(ステップS223)。
一方、算出した距離D12が「閾値以上でない場合には、「ラベル1」と「ラベル3」の領域の色差の平均値の距離D13を算出する(ステップS224)。そして、算出した距離D13が閾値以上であるか否かを判定し(ステップS225)、閾値以上である場合には、左側領域の路面の状況が車線とは異なるので、走行車線は左車線であると判定する(ステップS226)。
これに対して、算出した距離D13が閾値以上でない場合には、左右どちらも車線であるので、走行車線は中央車線または右車線であると判定する(ステップS227)。
このように、この車線判定部26は、走行車線領域と左右領域の色差の平均値の距離Dを算出し、算出した距離Dが閾値以上であるか否かを判定することによって、走行車線を判定することができる。
上述してきたように、本実施例2では、色情報取得部25が領域分割部14により3つに分割された各領域の色差平均値を算出し、車線判定部26が色情報取得部25により算出された色差平均値間の距離を用いて走行車線を判定することとしたので、車線の境界線が実線であるか破線であるかにかかわらず、走行車線を判定することができる。
上記実施例1では、画像の輝度情報を用いて走行車線を判定する場合について説明し。上記実施例2では、画像の色情報を用いて走行車線を判定する場合について説明したが、輝度情報と色情報の両方を用いて走行車線を判定することもできる。そこで、本実施例3では、画像の輝度情報と色情報の両方を用いて走行車線を判定する走行車線判定装置について説明する。
まず、本実施例3に係る走行車線判定装置の構成について説明する。図13は、本実施例3に係る走行車線判定装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図1または11に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図13に示すように、この走行車線判定装置30は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、輝度情報取得部15と、色情報取得部25と、車線判定部36と、走行車線判定装置30全体の制御を行なう制御部37とを有する。
すなわち、この走行車線判定装置30は、領域分割部14により3つに分割された各領域の輝度の平均値を算出する輝度情報取得部15と、各領域の色差(C1,C2)の平均値を算出する色情報取得部25の両方を有する。
車線判定部36は、輝度情報取得部15により算出された輝度の平均値と色情報取得部25により算出された色差の平均値の両方を用いて走行車線を判定する処理部である。この車線判定部36が輝度と色の情報を合わせて走行車線判定に用いることで、個々の情報による走行車線判定では十分な判定が行なえないような場合に、正しく判定を行なうことが可能となる。
例えば、路片側の領域が路面と同じくモノトーンであっても、輝度が路面に比べ著しく高い場合などには、色による判定だけでは路肩と判断できないが、輝度によって路肩と判断することが可能となる。
次に、車線判定部36による走行車線判定処理の処理手順について説明する。図14は、車線判定部36による走行車線判定処理の処理手順を示すフローチャートである。同図に示すように、この車線判定部36は、色による走行車線の判定を行ない、その結果が「走行車線は中央車線または右車線である」か否かを判定する(ステップS301)。
そして、色による判定結果が「走行車線は中央車線または右車線である」場合には、輝度による走行車線の判定を行ない、その結果を走行車線判定結果として採用し(ステップS302)、色による判定結果が「走行車線は中央車線または右車線である」でない場合には、色による判定結果を走行車線判定結果として採用する(ステップS303)。
このように、この車線判定部36が色情報による判定を優先的に採用し、色情報による判定結果が「走行車線は中央車線または右車線である」場合、すなわち色情報では路肩を見つけられなかった場合に輝度情報の判定結果を採用することによって、色情報による判定が不明確な場合に輝度情報の判定によって補うことができる。
なお、ここでは、色情報による判定を優先的に採用する場合について説明したが、色情報による判定と輝度情報による判定の組み合わせ手法としては、両方の判定結果が一致した場合だけを採用するなどの他の手法を用いることもできる。
上述してきたように、本実施例3では、車線判定部36が色情報による走行車線の判定と輝度情報による走行車線の判定を組み合わせることによって、より正確に走行車線を判定することができる。
上記実施例では、画像の輝度情報および色情報を用いて走行車線を判定する場合について説明したが、輝度情報や色情報の代わりに微分情報を用いて走行車線を判定することもできる。そこで、本実施例4では、画像の微分情報を用いて走行車線を判定する走行車線判定装置について説明する。
まず、本実施例4に係る走行車線判定装置の構成について説明する。図15は、本実施例4に係る走行車線判定装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図1に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図15に示すように、この走行車線判定装置40は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、微分情報取得部25と、車線判定部46と、走行車線判定装置40全体の制御を行なう制御部47とを有する。
微分情報取得部45は、領域分割部14により3つに分割された各領域に微分フィルタをかけ、その出力値のそれぞれの平均値を算出する処理部である。ここで、微分フィルタとしては、ラプラシアンフィルタやSobelフィルタなどどの微分フィルタを用いてもよい。また、平均値の算出は輝度情報の算出と同様に行なう。
車線判定部46は、微分情報取得部45により算出された微分平均値を用いて走行車線を判定する処理部である。すなわち、この車線判定部46は、2つの領域の微分平均値を特徴量として用いて「ラベル1」と「ラベル2」、「ラベル1」と「ラベル3」の領域を比較することにより、自車の走行車線を判定する。
次に、車線判定部46による走行車線判定処理の処理手順について説明する。図16は、車線判定部46による走行車線判定処理の処理手順を示すフローチャートである。同図に示すように、この車線判定部46は、「ラベル1」の領域の微分値の平均値と「ラベル2」の領域の微分値の平均値との差が閾値以上であるか否かを判定し(ステップS421)、閾値以上である場合には、右側領域の路面の状況が車線とは異なるので、走行車線は右車線であると判定する(ステップS422)。
一方、「ラベル1」の領域の微分値の平均値と「ラベル2」の領域の微分値の平均値との差が閾値以上でない場合には、「ラベル1」の領域の微分値の平均値と「ラベル3」の領域の微分値の平均値との差が閾値以上であるか否かを判定し(ステップS423)、閾値以上である場合には、左側領域の路面の状況が車線とは異なるので、走行車線は左車線であると判定する(ステップS424)。
これに対して、「ラベル1」の領域の微分値の平均値と「ラベル3」の領域の微分値の平均値との差が閾値以上でない場合には、左右どちらも車線であるので、走行車線は、中央車線または右車線であると判定する(ステップS425)。
このように、この車線判定部46は、走行車線領域と左右領域の微分値の平均値を比較し、比較結果が閾値以上であるか否かを判定することによって、走行車線を判定することができる。
上述してきたように、本実施例4では、微分情報取得部45が領域分割部14により3つに分割された各領域の微分値の平均値を算出し、車線判定部46が微分情報取得部45により算出された微分値の平均値を用いて走行車線を判定することとしたので、車線の境界線が実線であるか破線であるかにかかわらず、走行車線を判定することができる。
上記実施例1では、画像の輝度情報を用いて走行車線を判定する場合について説明し、上記実施例4では、画像の微分情報を用いて走行車線を判定する場合について説明したが、輝度情報と微分情報の両方を用いて走行車線を判定することもできる。そこで、本実施例5では、画像の輝度情報と微分情報の両方を用いて走行車線を判定する走行車線判定装置について説明する。
まず、本実施例5に係る走行車線判定装置の構成について説明する。図17は、本実施例5に係る走行車線判定装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図1または15に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図17に示すように、この走行車線判定装置50は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、輝度情報取得部15と、微分情報取得部45と、車線判定部56と、走行車線判定装置50全体の制御を行なう制御部57とを有する。
すなわち、この走行車線判定装置50は、領域分割部14により3つに分割された各領域の輝度の平均値を算出する輝度情報取得部15と、各領域の微分値の平均値を算出する微分情報取得部45の両方を有する。
車線判定部56は、輝度情報取得部15により算出された輝度の平均値と微分情報取得部45により算出された微分値の平均値の両方を用いて走行車線を判定する処理部である。この車線判定部56が輝度と微分値の情報を合わせて走行車線判定に用いることで、個々の情報による走行車線判定では十分な判定が行なえないような場合に、正しく判定を行なうことが可能となる。
例えば、路片側の領域が路面と同じく微分情報がほとんど存在しない場合でも輝度が路面に比べ著しく高い場合などには、微分による判定だけでは路肩と判断できないが、輝度によって路肩と判断することが可能となる。
次に、車線判定部56による走行車線判定処理の処理手順について説明する。図18は、車線判定部56による走行車線判定処理の処理手順を示すフローチャートである。同図に示すように、この車線判定部56は、微分による走行車線の判定を行ない、その結果が「走行車線は中央車線または右車線である」か否かを判定する(ステップS501)。
そして、微分による判定結果が「走行車線は中央車線または右車線である」場合には、輝度による走行車線の判定を行ない、その結果を走行車線判定結果として採用し(ステップS502)、微分による判定結果が「走行車線は中央車線または右車線である」でない場合には、微分による判定結果を走行車線判定結果として採用する(ステップS503)。
このように、この車線判定部56が微分情報による判定を優先的に採用し、微分情報による判定結果が「走行車線は中央車線または右車線である」場合、すなわち微分情報では路肩を見つけられなかった場合に輝度情報の判定結果を採用することによって、微分情報による判定が不明確な場合に輝度情報の判定によって補うことができる。
なお、ここでは、微分情報による判定を優先的に採用する場合について説明したが、微分情報による判定と輝度情報による判定の組み合わせ手法としては、両方の判定結果が一致した場合だけを採用するなどの他の手法を用いることもできる。
上述してきたように、本実施例5では、車線判定部56が微分情報による走行車線の判定と輝度情報による走行車線の判定を組み合わせることによって、より正確に走行車線を判定することができる。
上記実施例5では画像の輝度情報と微分情報を組み合わせて走行車線を判定する場合について説明したが、色情報と微分情報を組み合わせて走行車線を判定することもできる。そこで、本実施例6では、画像の色情報と微分情報を組み合わせて走行車線を判定する走行車線判定装置について説明する。
まず、本実施例6に係る走行車線判定装置の構成について説明する。図19は、本実施例6に係る走行車線判定装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図11または15に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図19に示すように、この走行車線判定装置60は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、色情報取得部25と、微分情報取得部45と、車線判定部66と、走行車線判定装置60全体の制御を行なう制御部67とを有する。
すなわち、この走行車線判定装置60は、領域分割部14により3つに分割された各領域の色差の平均値を算出する色情報取得部25と、各領域の微分値の平均値を算出する微分情報取得部45を有する。
車線判定部66は、色情報取得部25により算出された色差の平均値と微分情報取得部45により算出された微分値の平均値を用いて走行車線を判定する処理部である。この車線判定部66が色情報と微分情報とを合わせて走行車線判定に用いることで、個々の情報による走行車線判定では十分な判定が行なえないような場合に、正しく判定を行なうことが可能となる。
例えば、路片側の領域が路面と同じく微分情報がほとんど存在しないが色の情報に違いがある場合、またその逆の場合などに、一方の情報だけでは路肩と判断できないが、両方を使うことによって路肩と判断することが可能となる。
次に、車線判定部66による走行車線判定処理の処理手順について説明する。図20は、車線判定部66による走行車線判定処理の処理手順を示すフローチャートである。同図に示すように、この車線判定部66は、色による走行車線の判定を行ない、その結果が「走行車線は中央車線または右車線である」か否かを判定する(ステップS601)。
そして、色による判定結果が「走行車線は中央車線または右車線である」場合には、微分による走行車線の判定を行ない、その結果を走行車線判定結果として採用し(ステップS602)、色による判定結果が「走行車線は中央車線または右車線である」でない場合には、色による判定結果を走行車線判定結果として採用する(ステップS603)。
このように、この車線判定部66が色情報による判定を優先的に採用し、色情報による判定結果が「走行車線は中央車線または右車線である」場合、すなわち色情報では路肩を見つけられなかった場合に微分情報の判定結果を採用することによって、色情報による判定が不明確な場合に微分情報の判定によって補うことができる。
なお、ここでは、色情報による判定を優先的に採用する場合について説明したが、色情報による判定と微分情報による判定の組み合わせ手法としては、両方の判定結果が一致した場合だけを採用するなどの他の手法を用いることもできる。
上述してきたように、本実施例6では、車線判定部66が色情報による走行車線の判定と微分情報による走行車線の判定を組み合わせることによって、より正確に走行車線を判定することができる。
上記実施例5および6では、画像の微分情報を輝度情報または色情報と組み合わせて走行車線を判定する場合について説明したが、輝度情報、色情報および微分情報の全てを用いて走行車線を判定することもできる。そこで、本実施例7では、画像の輝度情報、色情報および微分情報を用いて走行車線を判定する走行車線判定装置について説明する。
まず、本実施例7に係る走行車線判定装置の構成について説明する。図21は、本実施例7に係る走行車線判定装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図17または19に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図21に示すように、この走行車線判定装置70は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、輝度情報取得部15と、色情報取得部25と、微分情報取得部45と、車線判定部76と、走行車線判定装置70全体の制御を行なう制御部77とを有する。
すなわち、この走行車線判定装置70は、領域分割部14により3つに分割された各領域の輝度の平均値を算出する輝度情報取得部15と、各領域の色差の平均値を算出する色情報取得部25と、各領域の微分値の平均値を算出する微分情報取得部45とを有する。
車線判定部76は、輝度情報取得部15により算出された輝度平均値と、色情報取得部25により算出された色差平均値と、微分情報取得部45により算出された微分値平均値とを用いて走行車線を判定する処理部である。この車線判定部76が輝度と色と微分の情報を合わせて走行車線判定に用いることで、個々の情報による走行車線判定では十分な判定が行なえないような場合に、正しく判定を行なうことが可能となる。
例えば、路片側の領域が路面と同じくモノトーンでかつ微分情報がほとんど存在しないが、輝度が著しく高い場合などに、色や微分の情報だけでは路肩と判断できないが、輝度によって路肩と判断することが可能となる。
次に、車線判定部76による走行車線判定処理の処理手順について説明する。図22は、車線判定部76による走行車線判定処理の処理手順を示すフローチャートである。同図に示すように、この車線判定部76は、色による走行車線の判定を行ない、その結果が「走行車線は中央車線または右車線である」か否かを判定する(ステップS701)。
そして、色による判定結果が「走行車線は中央車線または右車線である」でない場合には、色による判定結果を走行車線判定結果として採用し(ステップS702)、色による判定結果が「走行車線は中央車線または右車線である」場合には、微分による走行車線の判定を行ない、その結果が「走行車線は中央車線または右車線である」か否かを判定する(ステップS703)。
そして、微分による判定結果が「走行車線は中央車線または右車線である」でない場合には、微分による判定結果を走行車線判定結果として採用し(ステップS704)、微分による判定結果が「走行車線は中央車線または右車線である」場合には、輝度による走行車線の判定を行ない、その結果を走行車線判定結果として採用する(ステップS705)。
このように、この車線判定部76が色情報による判定を優先的に採用し、色情報による判定結果が「走行車線は中央車線または右車線である」場合、すなわち色情報では路肩が見つからなかった場合に微分情報の判定結果を採用し、微分情報によっても路肩が見つからなかった場合に輝度情報の判定結果を採用することによって、色情報による判定が不明確な場合に微分情報や輝度情報の判定によって補うことができる。
なお、ここでは、色情報による判定を優先的に採用する場合について説明したが、色情報による判定、微分情報による判定および輝度情報による判定の組み合わせ手法としては、全ての判定結果が一致した場合だけを採用するなどの他の手法を用いることもできる。
上述してきたように、本実施例7では、車線判定部76が色情報による走行車線の判定と微分情報による走行車線の判定と輝度情報による走行車線の判定を組み合わせることによって、より正確に走行車線を判定することができる。
上記実施例では、画像の輝度情報などを用いて走行車線を判定する場合について説明したが、輝度情報などの代わりに周波数情報を用いて走行車線を判定することもできる。そこで、本実施例8では、画像の周波数情報を用いて走行車線を判定する走行車線判定装置について説明する。
まず、本実施例8に係る走行車線判定装置の構成について説明する。図23は、本実施例8に係る走行車線判定装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図1に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図23に示すように、この走行車線判定装置80は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、周波数情報取得部85と、車線判定部86と、走行車線判定装置80全体の制御を行なう制御部87とを有する。
周波数情報取得部85は、領域分割部14により3つに分割された各領域の画像データをフーリエ変換によって周波数成分に変換する処理部である。ここで、フーリエ変換には、DFT(Discrete Fourier Transform:離散フーリエ変換)を用い、2次元の離散フーリエ変換式は、入力画像をf[m,n]、画像サイズをM×Nとしたとき、式(2)となる。
車線判定部86は、周波数情報取得部85により算出された周波数の相関値を用いて走行車線を判定する処理部である。すなわち、この車線判定部86は、2つの領域の周波数の相関値を特徴量として用いて「ラベル1」と「ラベル2」、「ラベル1」と「ラベル3」の領域を比較することにより、自車の走行車線を判定する。
なお、相関値の算出には、「ラベルa」の周波数情報をFa[k,l]、「ラベルb」の周波数情報をFb[k,l]とし、画像サイズがともにM×Nである場合、例えば式(3)を用いることができる。
次に、車線判定部86による走行車線判定処理の処理手順について説明する。図24は、車線判定部86による走行車線判定処理の処理手順を示すフローチャートである。同図に示すように、この車線判定部86は、「ラベル1」の領域の周波数と「ラベル2」の領域の周波数の相関値が閾値以上であるか否かを判定し(ステップS821)、閾値以上である場合には、右側領域の路面の状況が車線とは異なるので、走行車線は右車線であると判定する(ステップS822)。
一方、「ラベル1」の領域の周波数と「ラベル2」の領域の周波数の相関値が閾値以上でない場合には、「ラベル1」の領域の周波数と「ラベル3」の領域の周波数の相関値が閾値以上であるか否かを判定し(ステップS823)、閾値以上である場合には、左側領域の路面の状況が車線とは異なるので、走行車線は左車線であると判定する(ステップS824)。
これに対して、「ラベル1」の領域の周波数と「ラベル3」の領域の周波数の相関値が閾値以上でない場合には、左右どちらも車線であるので、走行車線は中央車線または右車線であると判定する(ステップS825)。
このように、この車線判定部86は、走行車線領域と左右領域の周波数の相関値を算出し、算出した相関値が閾値以上であるか否かを判定することによって、走行車線を判定することができる。
上述してきたように、本実施例8では、周波数情報取得部85が領域分割部14により3つに分割された各領域の画像データを周波数成分に変換し、車線判定部86が周波数情報取得部85により画像データから変換された周波数を用いて走行車線を判定することとしたので、車線の境界線が実線であるか破線であるかにかかわらず、走行車線を判定することができる。
上記実施例1では、画像の輝度情報を用いて走行車線を判定する場合について説明し、上記実施例8では、画像の周波数情報を用いて走行車線を判定する場合について説明したが、輝度情報と周波数情報を用いて走行車線を判定することもできる。そこで、本実施例9では、画像の輝度情報と周波数情報を用いて走行車線を判定する走行車線判定装置について説明する。
まず、本実施例9に係る走行車線判定装置の構成について説明する。図25は、本実施例9に係る走行車線判定装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図1または23に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図25に示すように、この走行車線判定装置90は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、輝度情報取得部15と、周波数情報取得部85と、車線判定部96と、走行車線判定装置90全体の制御を行なう制御部97とを有する。
すなわち、この走行車線判定装置90は、領域分割部14により3つに分割された各領域の輝度の平均値を算出する輝度情報取得部15と、各領域の周波数を算出する周波数情報取得部85とを有する。
車線判定部96は、輝度情報取得部15により算出された輝度の平均値と周波数情報取得部85により算出された周波数の両方を用いて走行車線を判定する処理部である。この車線判定部96が輝度と周波数の情報を合わせて走行車線判定に用いることで、個々の情報による走行車線判定では十分な判定が行なえないような場合に、正しく判定を行なうことが可能となる。
例えば、路片側の領域が路面と同じく周波数情報がほとんど存在しない場合でも輝度が路面に比べ著しく高い場合などには、周波数による判定だけでは路肩と判断できないが、輝度によって路肩と判断することが可能となる。
次に、車線判定部96による走行車線判定処理の処理手順について説明する。図26は、車線判定部96による走行車線判定処理の処理手順を示すフローチャートである。同図に示すように、この車線判定部96は、周波数による走行車線の判定を行ない、その結果が「走行車線は中央車線または右車線である」か否かを判定する(ステップS901)。
そして、周波数による判定結果が「走行車線は中央車線または右車線である」場合には、輝度による走行車線の判定を行ない、その結果を走行車線判定結果として採用し(ステップS902)、周波数による判定結果が「走行車線は中央車線または右車線である」でない場合には、周波数による判定結果を走行車線判定結果として採用する(ステップS903)。
このように、この車線判定部96が周波数情報による判定を優先的に採用し、周波数情報による判定結果が「走行車線は中央車線または右車線である」場合、すなわち周波数情報では路肩を見つけられなかった場合に輝度情報の判定結果を採用することによって、周波数情報による判定が不明確な場合に輝度情報の判定によって補うことができる。
なお、ここでは、周波数情報による判定を優先的に採用する場合について説明したが、周波数情報による判定と輝度情報による判定の組み合わせ手法としては、両方の判定結果が一致した場合だけを採用するなどの他の手法を用いることもできる。
上述してきたように、本実施例9では、車線判定部96が周波数情報による走行車線の判定と輝度情報による走行車線の判定を組み合わせることによって、より正確に走行車線を判定することができる。
上記実施例9では、画像の輝度情報と周波数情報を組み合わせて走行車線を判定する場合について説明したが、画像の色情報と周波数情報を組み合わせて走行車線を判定することもできる。そこで、本実施例10では、画像の色情報と周波数情報を組み合わせて走行車線を判定する走行車線判定装置について説明する。
まず、本実施例10に係る走行車線判定装置の構成について説明する。図27は、本実施例10に係る走行車線判定装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図11または23に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図27に示すように、この走行車線判定装置100は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、色情報取得部25と、周波数情報取得部85と、車線判定部106と、走行車線判定装置100全体の制御を行なう制御部107とを有する。
すなわち、この走行車線判定装置100は、領域分割部14により3つに分割された各領域の色差の平均値を算出する色情報取得部25と、各領域の周波数を算出する周波数情報取得部85とを有する。
車線判定部106は、色情報取得部25により算出された色差の平均値と周波数情報取得部85により算出された周波数を用いて走行車線を判定する処理部である。この車線判定部106が色と周波数の情報を合わせて走行車線判定に用いることで、個々の情報による走行車線判定では十分な判定が行なえないような場合に、正しく判定を行なうことが可能となる。
例えば、路片側の領域が路面と同じく色情報がほとんど存在しない場合でも周波数情報が存在する場合などには、色による判定だけでは路肩と判断できないが、周波数によって路肩と判断することが可能となる。
次に、車線判定部106による走行車線判定処理の処理手順について説明する。図28は、車線判定部106による走行車線判定処理の処理手順を示すフローチャートである。同図に示すように、この車線判定部106は、色による走行車線の判定を行ない、その結果が「走行車線は中央車線または右車線である」か否かを判定する(ステップS1001)。
そして、色による判定結果が「走行車線は中央車線または右車線である」場合には、周波数による走行車線の判定を行ない、その結果を走行車線判定結果として採用し(ステップS1002)、色による判定結果が「走行車線は中央車線または右車線である」でない場合には、色による判定結果を走行車線判定結果として採用する(ステップS1003)。
このように、この車線判定部106が色情報による判定を優先的に採用し、色情報による判定結果が「走行車線は中央車線または右車線である」場合、すなわち色情報では路肩を見つけられなかった場合に周波数情報の判定結果を採用することによって、色情報による判定が不明確な場合に周波数情報の判定によって補うことができる。
なお、ここでは、色情報による判定を優先的に採用する場合について説明したが、色情報による判定と周波数情報による判定の組み合わせ手法としては、両方の判定結果が一致した場合だけを採用するなどの他の手法を用いることもできる。
上述してきたように、本実施例10では、車線判定部106が色情報による走行車線の判定と周波数情報による走行車線の判定を組み合わせることによって、より正確に走行車線を判定することができる。
上記実施例7では、画像の輝度情報、色情報および微分情報を組み合わせて走行車線を判定する場合について説明したが、輝度情報、色情報および周波数情報を組み合わせて走行車線を判定することもできる。そこで、本実施例11では、画像の輝度情報、色情報および周波数情報を組み合わせて走行車線を判定する走行車線判定装置について説明する。
まず、本実施例11に係る走行車線判定装置の構成について説明する。図29は、本実施例11に係る走行車線判定装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図1、11または23に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図29に示すように、この走行車線判定装置110は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、輝度情報取得部15と、色情報取得部25と、周波数情報取得部85と、車線判定部116と、走行車線判定装置110全体の制御を行なう制御部117とを有する。
すなわち、この走行車線判定装置110は、領域分割部14により3つに分割された各領域の輝度の平均値を算出する輝度情報取得部15と、各領域の色差の平均値を算出する色情報取得部25と、各領域の周波数を算出する周波数情報取得部85とを有する。
車線判定部116は、輝度情報取得部15により算出された輝度平均値と、色情報取得部25により算出された色差平均値と、周波数情報取得部85により算出された周波数を用いて走行車線を判定する処理部である。この車線判定部116が輝度と色と周波数の情報を合わせて走行車線判定に用いることで、個々の情報による走行車線判定では十分な判定が行なえないような場合に、正しく判定を行なうことが可能となる。
例えば、路片側の領域が路面と同じくモノトーンでかつ周波数情報がほとんど存在しないが、輝度が著しく高い場合などに、色や周波数の情報だけでは路肩と判断できないが、輝度によって路肩と判断することが可能となる。
次に、車線判定部116による走行車線判定処理の処理手順について説明する。図30は、車線判定部116による走行車線判定処理の処理手順を示すフローチャートである。同図に示すように、この車線判定部116は、色による走行車線の判定を行ない、その結果が「走行車線は中央車線または右車線である」か否かを判定する(ステップS1101)。
そして、色による判定結果が「走行車線は中央車線または右車線である」でない場合には、色による判定結果を走行車線判定結果として採用し(ステップS1102)、色による判定結果が「走行車線は中央車線または右車線である」場合には、周波数による走行車線の判定を行ない、その結果が「走行車線は中央車線または右車線である」か否かを判定する(ステップS1103)。
そして、周波数による判定結果が「走行車線は中央車線または右車線である」でない場合には、周波数による判定結果を走行車線判定結果として採用し(ステップS1104)、周波数による判定結果が「走行車線は中央車線または右車線である」場合には、輝度による走行車線の判定を行ない、その結果を走行車線判定結果として採用する(ステップS1105)。
このように、この車線判定部116が色情報による判定を優先的に採用し、色情報による判定結果が「走行車線は中央車線または右車線である」場合、すなわち色情報では路肩を見つけられなかった場合に周波数情報の判定結果を採用し、周波数情報によっても路肩を見つけられなかった場合に輝度情報の判定結果を採用することによって、色情報による判定が不明確な場合に周波数情報や輝度情報の判定によって補うことができる。
なお、ここでは、色情報による判定を優先的に採用する場合について説明したが、色情報による判定、周波数情報による判定および輝度情報による判定の組み合わせ手法としては、全ての判定結果が一致した場合だけを採用するなどの他の手法を用いることもできる。
上述してきたように、本実施例11では、車線判定部116が色情報による走行車線の判定と周波数情報による走行車線の判定と輝度情報による走行車線の判定を組み合わせることによって、より正確に走行車線を判定することができる。
上記実施例では、画像の輝度情報などを用いて路肩を検出して走行車線を判定する場合について説明したが、路肩を検出する代わりに対向車を検出して走行車線を判定することもできる。そこで、本実施例12では、対向車を検出して走行車線を判定する走行車線判定装置について説明する。
まず、本実施例12に係る走行車線判定装置の構成について説明する。図31は、本実施例12に係る走行車線判定装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図1に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図31に示すように、この走行車線判定装置120は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、オプティカルフロー算出部121と、対向車検出部125と、車線判定部126と、走行車線判定装置120全体の制御を行なう制御部127とを有する。
オプティカルフロー算出部121は、領域分割部14により3つに分割された各領域のオプティカルフローを算出する処理部である。ここで、オプティカルフローとは、動画像処理を行なうときに、画像内のある点または領域の画像上でのみかけの動きを矢印の方向と大きさで表す手法であり、オプティカルフローの検出手法には、相関法、濃度勾配法などさまざまなものが知られている。ここでは、相関法を用いてオプティカルフローを検出することとするが、どの手法によりオプティカルフローを算出してもよい。
オプティカルフローの算出には連続した2枚のフレームfn(x,y)およびfn+1(x,y)の画像を用いる。まず、fn(x,y)の中のある大きさの矩形領域(ブロック)とfn+1(x,y)で輝度の分布が似ているブロックを探索する。
ここで、2つのブロックの輝度の分布の類似度を示す量として、輝度相関値を用いる。また、ブロック内の輝度相関値の算出手法はいくつかあるが、ここでは以下の式で求める。
ΣΣ|f n+1 (x−mx, y−my) − fn (x,y)|2
そして、この相関値が最小となる動き(mx,my)が求めるオプティカルフローとなる。図32は、オプティカルフローを説明するための説明図である。同図に示すように、ブロックの大きさを5×5とした場合、左に6、下に5移動した場合の、相関値が最小となった場合オプティカルフローは(-6,5)である。
図33は、対向車および併走車がいない場合のオプティカルフローを示す図である。一方、図34は、対向車および併走車がいる場合のオプティカルフローを示す図である。図33の場合には、自車両の動きにより、画像の全領域においてオプティカルフローが生じ、そのオプティカルフローは自車両の車速やカメラのパラメータによって算出することが可能である。
一方、図34のように対向車が走行している場合、自車両との相対速度が大きくなるため、大きなオプティカルフローが生じる。また、併走車が走行している場合には、自車両との相対速度は小さくなるまたはマイナスの相対速度になるため、検出されるオプティカルフローが小さくなったり、反対方向のオプティカルフローが生じたりする。このようなオプティカルフローの特徴を利用して、対向車および併走車の検出を行なうことができる。
対向車検出部125は、オプティカルフロー算出部121により算出されたオプティカルフローを用いて対向車の検出を行なう処理部である。具体的には、この対向車検出部125は、「ラベル1」の領域内のオプティカルフローと、「ラベル2」の領域内のオプティカルフローとを比較し、「ラベル2」の領域内のオプティカルフローが「ラベル1」の領域内のオプティカルフローよりも大きく、その差があらかじめ定めた閾値よりも大きい場合に「ラベル2」の領域に対向車が存在すると判定する。
車線判定部126は、対向車検出部125による対向車の検出結果に基づいて走行車線を判定する処理部である。すなわち、この車線判定部126は、対向車検出部125により「ラベル2」の領域に対向車が存在すると判定された場合に、走行車線は右車線であると判定する。
次に、本実施例12に係る走行車線判定装置120の処理手順について説明する。図35は、本実施例12に係る走行車線判定装置120の処理手順を示すフローチャートである。同図に示すように、この走行車線判定装置120は、まず画像入力部11が画像センサ1から画像情報を入力して画像記憶部12に格納する画像入力処理を行なう(ステップS1201)。
そして、白線検出部13が画像記憶部12に記憶された画像情報を用いて2本の白線を検出する白線検出処理を行ない(ステップS1202)、領域分割部14が白線検出部13により検出された2本の白線を用いて所定の画像領域を3つの領域に分割する領域分割処理を行なう(ステップS1203)。
そして、オプティカルフロー算出部121が領域分割部14により3つに分割された各領域のオプティカルフローを算出するオプティカルフロー算出処理を行ない(ステップS1204)、対向車検出部125がオプティカルフロー算出部121により算出された「ラベル1」と「ラベル2」の領域のオプティカルフローを比較して右領域の対向車を検出する対向車検出処理を行なう(ステップS1205)。そして、車線判定部126が対向車検出部125による対向車検出結果を用いて走行車線を判定する走行車線判定処理を行なう(ステップS1206)。
このように、この走行車線判定装置120は、右領域に対向車がいる場合に、車線判定部126が右領域の対向車の検出結果を用いて走行車線を判定することによって、車線の境界線が実線であるか破線であるかにかかわらず走行車線が右車線であることを特定することができる。
次に、図35に示した対向車検出処理(ステップS1205)の処理手順について説明する。図36は、図35に示した対向車検出処理の処理手順を示すフローチャートである。なお、この対向車検出処理は、図31に示した対向車検出部125が行なう処理である。
図36に示すように、この対向車検出処理は、「ラベル2」の領域内のオプティカルフローが「ラベル1」の領域内のオプティカルフローより大きく、その差が閾値以上であるか否かを判定する(ステップS1221)。
その結果、「ラベル2」の領域内のオプティカルフローが「ラベル1」の領域内のオプティカルフローより大きく、その差が閾値以上である場合には、「ラベル2」の領域に対向車が存在すると判定し(ステップS1222)、それ以外の場合には、「ラベル2」の領域に対向車は存在しないと判定する(ステップS1223)。
このように、この対向車検出処理は、「ラベル1」の領域内のオプティカルフローと、「ラベル2」の領域内のオプティカルフローとを比較することによって、右領域の対向車を検出することができる。
次に、図35に示した走行車線判定処理(ステップS1206)の処理手順について説明する。図37は、図35に示した走行車線判定処理の処理手順を示すフローチャートである。なお、この走行車線判定処理は、図31に示した車線判定部126が行なう処理である。
図37に示すように、この走行車線判定処理は、「ラベル2」の領域に対向車が存在するか否かを判定し(ステップS1241)、「ラベル2」の領域に対向車が存在する場合には、走行車線は右車線であると判定する(ステップS1242)。
このように、この走行車線判定処理は、「ラベル2」の領域に対向車が存在する場合には、走行車線が右車線であると特定することができる。
上述してきたように、本実施例12では、オプティカルフロー算出部121が領域分割部14により3つに分割された各領域のオプティカルフローを算出し、対向車検出部125がオプティカルフロー算出部121により算出されたオプティカルフローを用いて右領域の対向車を検出し、車線判定部126が対向車検出部125により右領域に対向車が検出された場合に走行車線を右車線であると特定することとしたので、車線の境界線が実線であるか破線であるかにかかわらず、走行車線が右車線であることを特定することができる。
上記実施例12では、対向車を検出して走行車線が右車線であることを特定する場合について説明したが、対向車の代わりに併走車を検出して走行車線を判定することもできる。そこで、本実施例13では、併走車を検出して走行車線を判定する走行車線判定装置について説明する。
まず、本実施例13に係る走行車線判定装置の構成について説明する。図38は、本実施例13に係る走行車線判定装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図31に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図38に示すように、この走行車線判定装置130は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、オプティカルフロー算出部121と、併走車検出部135と、車線判定部136と、走行車線判定装置130全体の制御を行なう制御部137とを有する。
併走車検出部135は、オプティカルフロー算出部121により算出されたオプティカルフローを用いて併走車の検出を行なう処理部である。具体的には、この併走車検出部135は、「ラベル1」の領域内のオプティカルフローと、「ラベル2」の領域内のオプティカルフローとを比較し、「ラベル2」の領域内のオプティカルフローが「ラベル1」の領域内のオプティカルフローよりも小さく、その差があらかじめ定めた閾値以上の場合に「ラベル2」の領域に併走車が存在すると検出する。
また、この併走車検出部135は、「ラベル1」の領域内のオプティカルフローと、「ラベル3」の領域内のオプティカルフローとを比較し、「ラベル3」の領域内のオプティカルフローが「ラベル1」の領域内のオプティカルフローよりも小さく、その差があらかじめ定めた閾値以上の場合に「ラベル3」の領域に併走車が存在すると検出する。
車線判定部136は、併走車検出部135による併走車の検出結果に基づいて走行車線を判定する処理部である。すなわち、この車線判定部136は、併走車が「ラベル2」の領域および「ラベル3」の領域のどちらにも存在した場合、走行車線は中央車線であると判定する。
また、この車線判定部136は、併走車が「ラベル2」の領域のみに存在した場合、走行車線は左車線または中央車線であると判定し、併走車が「ラベル3」の領域のみに存在した場合、走行車線は右車線または中央車線であると判定する。
次に、併走車検出部135による併走車検出処理の処理手順について説明する。図39は、併走車検出部135による併走車検出処理の処理手順を示すフローチャートである。同図に示すように、この併走車検出処理は、「ラベル2」の領域内のオプティカルフローが「ラベル1」の領域内のオプティカルフローより小さく、その差が閾値以上であるか否かを判定する(ステップS1321)。
その結果、「ラベル2」の領域内のオプティカルフローが「ラベル1」の領域内のオプティカルフローより小さく、その差が閾値以上である場合には、「ラベル2」の領域に併走車が存在すると判定し(ステップS1322)、それ以外の場合には、「ラベル2」の領域に併走車は存在しないと判定する(ステップS1323)。
また、「ラベル3」の領域内のオプティカルフローが「ラベル1」の領域内のオプティカルフローより小さく、その差が閾値以上であるか否かを判定する(ステップS1324)。
その結果、「ラベル3」の領域内のオプティカルフローが「ラベル1」の領域内のオプティカルフローより小さく、その差が閾値以上である場合には、「ラベル3」の領域に併走車が存在すると判定し(ステップS1325)、それ以外の場合には、「ラベル3」の領域に併走車は存在しないと判定する(ステップS1326)。
このように、この対向車検出処理は、「ラベル1」の領域内のオプティカルフローと、「ラベル2」の領域内のオプティカルフローとを比較することによって、右領域の併走車を検出し、「ラベル1」の領域内のオプティカルフローと、「ラベル3」の領域内のオプティカルフローとを比較することによって、左領域の併走車を検出することができる。
次に、図38に示した車線判定部136による走行車線判定処理の処理手順について説明する。図40は、図38に示した車線判定部136による走行車線判定処理の処理手順を示すフローチャートである。
図40に示すように、この走行車線判定処理は、「ラベル3」の領域に併走車が存在するか否かを判定し(ステップS1341)、「ラベル3」の領域に併走車が存在する場合には、「ラベル2」の領域に併走車が存在するか否かを判定する(ステップS1342)。その結果、「ラベル2」の領域に併走車が存在する場合には、走行車線は中央車線または左車線であると判定する(ステップS1343)。
一方、「ラベル3」の領域に併走車が存在しない場合には、「ラベル2」の領域に併走車が存在するか否かを判定し(ステップS1344)、「ラベル2」の領域に併走車が存在する場合には、走行車線は中央車線であると判定し(ステップS1345)、「ラベル2」の領域に併走車が存在しない場合には、走行車線は中央車線または右車線であると判定する(ステップS1346)。
このように、この走行車線判定処理は、「ラベル2」または「ラベル3」の領域の併走車の有無に基づいて、走行車線を判定することができる。
上述してきたように、本実施例13では、オプティカルフロー算出部121が領域分割部14により3つに分割された各領域のオプティカルフローを算出し、併走車検出部135がオプティカルフロー算出部121により算出されたオプティカルフローを用いて併走車を検出し、車線判定部136が併走車検出部135により検出された併走車に基づいて走行車線を判定することとしたので、車線の境界線が実線であるか破線であるかにかかわらず、走行車線を判定することができる。
上記実施例12では、対向車を検出して走行車線を判定する場合について説明し、上記実施例13では、併走車を検出して走行車線を判定する場合について説明したが、対向車と併走車の両方を検出して走行車線を判定することもできる。そこで、本実施例14では、対向車と併走車の両方を検出して走行車線を判定する走行車線判定装置について説明する。
まず、本実施例14に係る走行車線判定装置の構成について説明する。図41は、本実施例14に係る走行車線判定装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図31または38に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図41に示すように、この走行車線判定装置140は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、オプティカルフロー算出部121と、対向車検出部125と、併走車検出部135と、車線判定部146と、走行車線判定装置140全体の制御を行なう制御部147とを有する。
すなわち、この走行車線判定装置140は、対向車を検出する対向車検出部125と、併走車を検出する併走車検出部135とを有する。
車線判定部146は、対向車検出部125により検出された対向車の情報と、併走車検出部135により検出された併走車の情報の両方を用いて走行車線を判定する処理部である。この車線判定部146が対向車と併走車の情報を合わせて走行車線判定に用いることで、個々の情報による走行車線判定では十分な判定が行なえないような場合に、正しく判定を行なうことが可能となる。
次に、車線判定部146による走行車線判定処理の処理手順について説明する。図42は、車線判定部146による走行車線判定処理の処理手順を示すフローチャートである。同図に示すように、この車線判定部146は、対向車による走行車線の判定を行ない、その結果が「走行車線は右車線である」か否かを判定する(ステップS1401)。
そして、対向車による判定結果が「走行車線は右車線である」でない場合には、併走車による走行車線の判定を行ない、その結果を走行車線判定結果として採用し(ステップS1402)、対向車による判定結果が「走行車線は右車線である」場合には、対向車による判定結果を走行車線判定結果として採用する(ステップS1403)。
このように、この車線判定部146が対向車による判定を優先的に採用し、対向車が存在しなかったときに併走車による判定結果を採用することによって、対向車がいない場合にも車線判定を行なうことができる。
なお、ここでは、対向車による判定を優先的に採用する場合について説明したが、対向車による判定と併走車による判定の組み合わせ手法としては、他の手法を用いることもできる。
上述してきたように、本実施例14では、車線判定部146が対向車による走行車線の判定と併走車による走行車線の判定を組み合わせることによって、より正確に走行車線を判定することができる。
ところで、輝度や色、微分情報を用いて走行車線の判定を行なうことは、路肩を判定することによって走行車線の判定を行なうことであるのに対し、対向車や併走車の情報を用いて走行車線の判定を行なうことは、周囲の交通の状況によって走行車線の判定を行なうことである。
したがって、これらの情報を組み合わせて判定を行なうことにより、走行車線の判定をより詳しく、正確に行なうことが可能である。そこで、本実施例15では、路肩情報と対向車の情報と組み合わせて判定を行なう走行車線判定装置について説明する。
まず、本実施例15に係る走行車線判定装置の構成について説明する。図43は、本実施例15に係る走行車線判定装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図21または31に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図43に示すように、この走行車線判定装置150は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、輝度情報取得部15と、色情報取得部25と、微分情報取得部45と、オプティカルフロー算出部121と、対向車検出部125と、車線判定部156と、走行車線判定装置150全体の制御を行なう制御部157とを有する。
すなわち、この走行車線判定装置150は、輝度、色および微分値の情報を用いて路肩を判定することによって走行車線を判定するとともに、対向車の情報を用いて走行車線を判定する。
車線判定部156は、路肩情報および対向車の情報を用いて走行車線を判定する処理部である。この車線判定部156が路肩情報と対向車の情報を合わせて走行車線判定に用いることで、個々の情報による走行車線判定では十分な判定が行なえないような場合に、正しく判定を行なうことが可能となる。
次に、車線判定部156による走行車線判定処理の処理手順について説明する。図44は、車線判定部156による走行車線判定処理の処理手順を示すフローチャートである。同図に示すように、この車線判定部156は、対向車による走行車線の判定を行ない、その結果が「走行車線は右車線である」か否かを判定する(ステップS1501)。
そして、対向車による判定結果が「走行車線は右車線である」場合には、その判定結果を走行車線判定結果として採用し(ステップS1502)、対向車による判定結果が「走行車線は右車線である」でない場合には、実施例7で示した路肩情報による走行車線の判定を行ない、その結果を走行車線判定結果として採用する(ステップS1503)。
このように、この車線判定部156が対向車情報による判定を優先的に採用し、対向車が存在しなかったときに、路肩情報を用いて走行車線を判定することによって、対向車がいない場合にも、走行車線を判定することができる。
なお、ここでは、路肩を判定する場合に色、輝度および微分情報を用いる場合について説明したが、路肩を判定する場合には、これらの情報の一部を用いて判定することもでき、また、周波数情報を他の情報と任意に組み合わせて判定することもできる。
上述してきたように、本実施例15では、対向車による走行車線の判定と路肩情報による走行車線の判定とを組み合わせることによって、より正確に走行車線を判定することができる。
上記実施例15では、路肩情報と対向車の情報とを組み合わせて判定を行なう走行車線判定装置について説明したが、対向車の情報の代わりに併走車の情報を用いることもできる。そこで、本実施例16では、路肩情報と併走車の情報とを組み合わせて判定を行なう走行車線判定装置について説明する。
まず、本実施例16に係る走行車線判定装置の構成について説明する。図45は、本実施例16に係る走行車線判定装置の構成を示す機能ブロック図である。同図に示すように、この走行車線判定装置160は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、輝度情報取得部15と、色情報取得部25と、微分情報取得部45と、オプティカルフロー算出部121と、併走車検出部135と、車線判定部166と、走行車線判定装置160全体の制御を行なう制御部167とを有する。
すなわち、この走行車線判定装置160は、輝度、色および微分値の情報を用いて路肩を判定することによって走行車線を判定するとともに、併走車の情報を用いて走行車線を判定する。
車線判定部166は、路肩情報および併走車の情報を用いて走行車線を判定する処理部である。具体的には、この車線判定部166は、併走車による判定を優先し、併走車が存在しなかったときに路肩情報による判定結果を採用する。
この車線判定部166が路肩情報と併走車の情報を合わせて走行車線判定に用いることで、個々の情報による走行車線判定では十分な判定が行なえないような場合に、正しく判定を行なうことが可能となる。
次に、車線判定部166による走行車線判定処理の処理手順について説明する。図46は、車線判定部166による走行車線判定処理の処理手順を示すフローチャートである。図46に示すように、この走行車線判定処理は、併走車による走行車線判定を行い、その結果が「走行車線は中央車線である」か否かを判定する(ステップS1601)。
そして、併走車による判定結果が「走行車線は中央車線である」場合には、その判定結果を走行車線判定結果とし(ステップS1602)、併走車による判定結果が「走行車線は中央車線である」でない場合には、併走車による判定結果が「走行車線は左車線または中央車線である」か否かを判定する(ステップS1603)。
その結果、併走車による判定結果が「走行車線は左車線または中央車線である」場合には、路肩情報による判定を行ない、その結果が「走行車線は左車線である」か否かを判定し(ステップS1604)、路肩情報による判定が「走行車線は左車線である」場合には、「走行車線は左車線である」を走行車線判定結果とし(ステップS1605)、路肩情報による判定が「走行車線は左車線である」でない場合には、「走行車線は中央車線である」を走行車線判定結果とする(ステップS1606)。
一方、併走車による判定結果が「走行車線は左車線または中央車線である」でない場合には、併走車による判定結果が「走行車線は右車線または中央車線である」か否かを判定し(ステップS1607)、併走車による判定結果が「走行車線は右車線または中央車線である」場合には、路肩情報による判定を行ない、その結果が「走行車線は右車線である」か否かを判定する(ステップS1608)。
そして、路肩情報による判定が「走行車線は右車線である」場合には、「走行車線は右車線である」を走行車線判定結果とし(ステップS1609)、路肩情報による判定が「走行車線は右車線である」でない場合には、「走行車線は右車線または中央車線である」を走行車線判定結果とする(ステップS1610)。
これに対して、併走車による判定結果が「走行車線は右車線または中央車線である」でない場合には、路肩情報による判定結果を走行車線判定結果として採用する(ステップS1611)。
このように、この車線判定部166が併走車情報による判定を優先的に採用し、併走車が存在しなかったときに、路肩情報を用いて走行車線を判定することによって、併走車がいない場合にも、走行車線を判定することができる。
上述してきたように、本実施例16では、併走車による走行車線の判定と路肩情報による走行車線の判定とを組み合わせることによって、より正確に走行車線を判定することができる。
上記実施例15では、路肩情報と対向車の情報と組み合わせて判定を行なう走行車線判定装置について説明し、上記実施例16では、路肩情報と併走車の情報と組み合わせて判定を行なう走行車線判定装置について説明したが、路肩情報と対向車の情報と併走車の情報とを組み合わせることもできる。そこで、本実施例17では、路肩情報と対向車の情報と併走車の情報とを組み合わせて判定を行なう走行車線判定装置について説明する。
まず、本実施例17に係る走行車線判定装置の構成について説明する。図47は、本実施例17に係る走行車線判定装置の構成を示す機能ブロック図である。同図に示すように、この走行車線判定装置170は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、輝度情報取得部15と、色情報取得部25と、微分情報取得部45と、オプティカルフロー算出部121と、対向車検出部125と、併走車検出部135と、車線判定部176と、走行車線判定装置170全体の制御を行なう制御部177とを有する。
すなわち、この走行車線判定装置170は、輝度、色および微分値の情報を用いて路肩を判定することによって走行車線を判定するとともに、対向車および併走車の情報を用いて走行車線を判定する。
車線判定部176は、路肩情報、対向車の情報および併走車の情報を用いて走行車線を判定する処理部である。具体的には、この車線判定部176は、対向車による判定を優先し、対向車が存在しなかったときに、併走車による判定を採用し、併走車が存在しなかったときに路肩情報による判定結果を採用する。
この車線判定部176が路肩情報、対向車の情報および併走車の情報を合わせて走行車線判定に用いることで、個々の情報による走行車線判定では十分な判定が行なえないような場合に、正しく判定を行なうことが可能となる。
次に、車線判定部176による走行車線判定処理の処理手順について説明する。図48は、車線判定部176による走行車線判定処理の処理手順を示すフローチャートである。図48に示すように、この走行車線判定処理は、対向車による走行車線判定を行い、その結果が「走行車線は右車線である」か否かを判定する(ステップS1701)。
そして、対向車による判定結果が「走行車線は右車線である」場合には、その判定結果を走行車線判定結果とし(ステップS1702)、対向車による判定結果が「走行車線は右車線である」でない場合には、併走車による走行車線判定を行い、その結果が「走行車線は中央車線である」か否かを判定する(ステップS1703)。
そして、併走車による判定結果が「走行車線は中央車線である」場合には、その判定結果を走行車線判定結果とし(ステップS1704)、併走車による判定結果が「走行車線は中央車線である」でない場合には、併走車による判定結果が「走行車線は左車線または中央車線である」か否かを判定する(ステップS1705)。
その結果、併走車による判定結果が「走行車線は左車線または中央車線である」場合には、路肩情報による判定を行ない、その結果が「走行車線は左車線である」か否かを判定し(ステップS1706)、路肩情報による判定が「走行車線は左車線である」場合には、「走行車線は左車線である」を走行車線判定結果とし(ステップS1707)、路肩情報による判定が「走行車線は左車線である」でない場合には、「走行車線は中央車線である」を走行車線判定結果とする(ステップS1708)。
一方、併走車による判定結果が「走行車線は左車線または中央車線である」でない場合には、併走車による判定結果が「走行車線は右車線または中央車線である」か否かを判定し(ステップS1709)、併走車による判定結果が「走行車線は右車線または中央車線である」場合には、路肩情報による判定を行ない、その結果が「走行車線は右車線である」か否かを判定する(ステップS1710)。
そして、路肩情報による判定が「走行車線は右車線である」場合には、「走行車線は右車線である」を走行車線判定結果とし(ステップS1711)、路肩情報による判定が「走行車線は右車線である」でない場合には、「走行車線は右車線または中央車線である」を走行車線判定結果とする(ステップS1712)。
これに対して、併走車による判定結果が「走行車線は右車線または中央車線である」でない場合には、路肩情報による判定結果を走行車線判定結果として採用する(ステップS1713)。
このように、この車線判定部176が対向車情報による判定を優先的に採用し、対向車が存在しなかったときに、併走車情報による判定を採用し、併走車も存在しなかったときに、路肩情報を用いて走行車線を判定することによって、対向車および併走車がいない場合にも、走行車線を判定することができる。
上述してきたように、本実施例17では、対向車による走行車線の判定と併走車による走行車線の判定と路肩情報による走行車線の判定とを組み合わせることによって、より正確に走行車線を判定することができる。
上記実施例12では、オプティカルフローを用いて対向車を検出して走行車線を判定する場合について説明したが、画像上の移動量とオプティカルフローを用いて対向車を検出することもできる。そこで、本実施例18では、画像上の移動量とオプティカルフローを用いて対向車を検出して走行車線を判定する走行車線判定装置について説明する。
まず、本実施例18に係る走行車線判定装置の構成について説明する。図49は、本実施例18に係る走行車線判定装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図31に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図49に示すように、この走行車線判定装置180は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、オプティカルフロー算出部121と、移動量算出部181と、俯角算出部182と、対向車検出部185と、車線判定部126と、走行車線判定装置180全体の制御を行なう制御部187とを有する。
移動量算出部181は、俯角を用いて画像上の画素の所定時間における移動量を算出する処理部である。図50−1〜図50−3は、移動量算出部181による移動量算出手法を説明するための説明図(1)〜(3)である。
画像内の座標を(x,y)とすると、画像センサ1の焦点距離f、画像の縦方向(y軸方向)の受光格子サイズlより、yの位置に撮像された画素の画像センサ1の光軸とのなす角θsは、図50−1に示すように、θs=arctan(ly / f)となる。したがって、画像センサ1の設置時の俯角をθ0とすると、yの位置に撮像された画素の俯角θは、θ=θs+θ0となる。
また、画像センサ1のレンズの中心が、図50−2に示すように、O1から車速vでΔ
t時間後にO2に移動したとき、画像内の座標y1の位置の画素が座標y2に移動することとすると、移動量算出部181は、図50−3に示すように、y1−y2を移動量として算出する。
具体的には、画像センサ1の路上からの設置の高さをh、y1のときの俯角をθ1、y2のときの俯角をθ2とすると、図50−2から、tanθ2 = h / ( h / tanθ1−vΔt)となる。したがって、移動量算出部181は、y1からθ1=arctan(l y1 / f)を計算して俯角θ1を求め、求めたθ1からtanθ2 = h / ( h / tanθ1−vΔt)を計算してθ2 を算出する。そして、y2 = ( f / l ) / tan(θ2−θ0)を用いてθ2 からy2 を算出し、算出したy2 を用いて移動量y1−y2を算出する。なお、車速vは、車輪に設置された複数のセンサによって構成される車速センサ2を用いて検出される。
俯角算出部182は、移動量算出部181が移動量の算出に用いる俯角を算出する処理部である。すなわち、この俯角算出部182は、座標yからθs=arctan(ly / f)を算出し、算出したθsから俯角θ=θs+θ0を算出する。
対向車検出部185は、オプティカルフロー算出部121により算出されたオプティカルフローと移動量算出部181により算出された移動量を用いて対向車の検出を行なう処理部である。
具体的には、この対向車検出部185は、移動量算出部181により算出された移動量と、「ラベル2」の領域内のオプティカルフローのy成分を比較し、「ラベル2」の領域内のオプティカルフローのy成分が移動量よりも大きく、その差があらかじめ定めた閾値以上である場合に「ラベル2」の領域に対向車が存在すると検出する。
次に、本実施例18に係る走行車線判定装置180の処理手順について説明する。図51は、本実施例18に係る走行車線判定装置180の処理手順を示すフローチャートである。同図に示すように、この走行車線判定装置180は、まず画像入力部11が画像センサ1から画像情報を入力して画像記憶部12に格納する画像入力処理を行なう(ステップS1801)。
そして、白線検出部13が画像記憶部12に記憶された画像情報を用いて2本の白線を検出する白線検出処理を行ない(ステップS1802)、領域分割部14が白線検出部13により検出された2本の白線を用いて所定の画像領域を3つの領域に分割する領域分割処理を行なう(ステップS1803)。
そして、オプティカルフロー算出部121が領域分割部14により3つに分割された各領域のオプティカルフローを算出するオプティカルフロー算出処理を行ない(ステップS1804)、移動量算出部181が画像上の移動量を俯角算出部182を用いて算出する(ステップS1805)。
なお、ここでは、オプティカルフロー算出部121がオプティカルフローを算出した後に、移動量算出部181が画像上の移動量を算出しているが、移動量算出部181による移動量の算出は、ステップS1801〜S1804の処理と並行して行なうことができる。
そして、対向車検出部185がオプティカルフロー算出部121により算出された「ラベル2」の領域のオプティカルフローと、移動量算出部181により算出された移動量とを比較して右車線の対向車を検出する対向車検出処理を行なう(ステップS1806)。そして、車線判定部126が対向車検出部185による対向車検出結果を用いて走行車線を判定する走行車線判定処理を行なう(ステップS1807)。
このように、この走行車線判定装置180は、対向車がある場合に、対向車検出部185がオプティカルフローと移動量から対向車を検出することによって、走行車線が右車線であることを特定することができる。
次に、図51に示した移動量算出処理(ステップS1805)の処理手順について説明する。図52は、図51に示した移動量算出処理の処理手順を示すフローチャートである。なお、この移動量算出処理は、図49に示した移動量算出部181が行なう処理である。
図52に示すように、この移動量算出処理は、画像センサ1の設置高度hおよび設置俯角θ0を取得し(ステップS1821〜ステップS1822)、俯角算出部182を用いてy1のときの俯角θ1を算出し、算出した俯角θ1を用いて俯角θ2を算出する(ステップS1823)。そして、俯角θ2およびθ0よりy2を算出し(ステップS1824)、算出したy2を用いて移動量y1−y2を算出する(ステップS1825)。
このように、この移動量算出処理が俯角を用いて画像上の移動量を算出することによって、走行車線判定装置180は、オプティカルフローと移動量を用いて対向車を検出することができる。
次に、図49に示した俯角算出部182による俯角算出処理の処理手順について説明する。図53は、図49に示した俯角算出部182による俯角算出処理の処理手順を示すフローチャートである。
同図に示すように、この俯角算出部182は、画像センサ1の設置俯角θ0を取得し(ステップS1841)、画像内のy座標yにある画素のカメラと光軸とのなす角θsを算出する(ステップS1842)。そして、θsとθ0を加えて俯角θを算出する(ステップS1843)。
このように、この俯角算出部182が画像内のy座標から俯角を算出することによって、走行車線判定装置180は、画像上の移動量を算出し、算出した移動量とオプティカルフローを用いて対向車を検出することができる。
次に、図51に示した対向車検出処理(ステップS1806)の処理手順について説明する。図54は、図51に示した対向車検出処理の処理手順を示すフローチャートである。なお、この対向車検出処理は、図49に示した対向車検出部185が行なう処理である。
図54に示すように、この対向車検出処理は、「ラベル2」の領域内のオプティカルフローのy成分が移動量算出部181が算出した移動量より大きく、その差が閾値以上であるか否かを判定する(ステップS1861)。
その結果、「ラベル2」の領域内のオプティカルフローのy成分が移動量算出部181が算出した移動量より大きく、その差が閾値以上である場合には、「ラベル2」の領域に対向車が存在すると判定し(ステップS1862)、それ以外の場合には、「ラベル2」の領域に対向車は存在しないと判定する(ステップS1863)。
このように、この対向車検出処理は、移動量算出部181が算出した移動量と、「ラベル2」の領域内のオプティカルフローのy成分とを比較することによって、右車線の対向車を検出することができる。
上述してきたように、本実施例18では、移動量算出部181が画像上の移動量を算出し、対向車検出部185がオプティカルフロー算出部121により算出されたオプティカルフローのy成分と移動量算出部181により算出された移動量を用いて右車線の対向車を検出し、車線判定部126が対向車検出部185により右領域に対向車が検出された場合に走行車線を右車線であると特定することとしたので、車線の境界線が実線であるか破線であるかにかかわらず、走行車線が右車線であることを特定することができる。
上記実施例18では、画像上の移動量とオプティカルフローのy成分を用いて対向車を検出して走行車線を判定する場合について説明したが、画像上の移動量とオプティカルフローのy成分を用いて併走車を検出して走行車線を判定することもできる。そこで、本実施例19では、画像上の移動量とオプティカルフローのy成分を用いて併走車を検出して走行車線を判定する走行車線判定装置について説明する。
まず、本実施例19に係る走行車線判定装置の構成について説明する。図55は、本実施例19に係る走行車線判定装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図49に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図54に示すように、この走行車線判定装置190は、画像入力部11と、画像記憶部12と、白線検出部13と、領域分割部14と、オプティカルフロー算出部121と、移動量算出部181と、俯角算出部182と、併走車検出部195と、車線判定部136と、走行車線判定装置190全体の制御を行なう制御部197とを有する。
併走車検出部195は、オプティカルフロー算出部121により算出されたオプティカルフローと移動量算出部181により算出された移動量を用いて併走車の検出を行なう処理部である。
具体的には、この対向車検出部195は、移動量算出部181により算出された移動量と、「ラベル2」の領域内のオプティカルフローのy成分を比較し、「ラベル2」の領域内のオプティカルフローのy成分が移動量よりも小さく、その差があらかじめ定めた閾値以上である場合に「ラベル2」の領域に併走車が存在すると検出する。
また、この併走車検出部195は、移動量算出部181により算出された移動量と、「ラベル3」の領域内のオプティカルフローのy成分を比較し、「ラベル3」の領域内のオプティカルフローのy成分が移動量よりも小さく、その差があらかじめ定めた閾値以上である場合に「ラベル3」の領域に併走車が存在すると検出する。
次に、併走車検出部195による併走車検出処理の処理手順について説明する。図56は、併走車検出部195による併走車検出処理の処理手順を示すフローチャートである。同図に示すように、この併走車検出処理は、「ラベル2」の領域内のオプティカルフローのy成分が移動量算出部181により算出された移動量より小さく、その差が閾値以上であるか否かを判定する(ステップS1921)。
その結果、「ラベル2」の領域内のオプティカルフローのy成分が移動量算出部181により算出された移動量より小さく、その差が閾値以上である場合には、「ラベル2」の領域に併走車が存在すると判定し(ステップS1922)、それ以外の場合には、「ラベル2」の領域に併走車は存在しないと判定する(ステップS1923)。
そして、「ラベル3」の領域内のオプティカルフローのy成分が移動量算出部181により算出された移動量より小さく、その差が閾値以上であるか否かを判定する(ステップS1924)。
その結果、「ラベル3」の領域内のオプティカルフローのy成分が移動量算出部181により算出された移動量より小さく、その差が閾値以上である場合には、「ラベル3」の領域に併走車が存在すると判定し(ステップS1925)、それ以外の場合には、「ラベル3」の領域に併走車は存在しないと判定する(ステップS1926)。
このように、この併走車検出処理は、移動量算出部181が算出した移動量と、「ラベル2」および「ラベル3」の領域内のオプティカルフローのy成分とを比較することによって、併走車を検出することができる。
上述してきたように、本実施例19では、移動量算出部181が画像上の移動量を算出し、併走車検出部195がオプティカルフロー算出部121により算出されたオプティカルフローのy成分と移動量算出部181により算出された移動量を用いて併走車を検出し、車線判定部136が併走車検出部195により検出された併走車の情報を用いて走行車線を判定することとしたので、車線の境界線が実線であるか破線であるかにかかわらず、走行車線を判定することができる。
なお、本実施例1〜19では、輝度情報、色情報、微分情報、周波数情報、対向車情報および併走車情報を組み合わせて走行車線を判定するいくつかの場合について説明したが、本発明はこれの実施例に限定されるものではなく、他の組み合わせにより走行車線を判定する場合にも同様に適用することができる。
また、本実施例1〜19では、走行車線判定装置について説明したが、この走行車線判定装置が有する構成をソフトウェアによって実現することで、同様の機能を有する走行車線判定プログラムを得ることができる。そこで、この走行車線判定プログラムを実行するコンピュータについて説明する。
図57は、本実施例1〜19に係る走行車線判定プログラムを実行するコンピュータを示す図である。同図に示すように、このコンピュータ200は、CPU210と、ROM220と、RAM230と、I/Oインタフェース240とを有する。
CPU210は、走行車線判定プログラムを実行する処理装置であり、ROM220は、走行車線判定プログラムなどを記憶したメモリである。RAM230は、画像記憶部12に記憶されるデータや走行車線判定プログラムの実行途中結果を記憶するメモリであり、I/Oインタフェース240は、画像センサ1および車速センサ2からのデータを受け取るインタフェースである。
(付記1)車両に搭載した画像センサにより撮像した画像を用いて該車両の走行車線を判定する走行車線判定プログラムであって、
前記画像を用いて走行路面の車線境界線を検出する車線境界線検出手順と、
前記車線境界線検出手順により検出された車線境界線に基づいて前記画像を複数の領域に分割する領域分割手順と、
前記領域分割手順により分割された領域の画像の特徴に基づいて走行車線を判定する走行車線判定手順と
をコンピュータに実行させることを特徴とする走行車線判定プログラム。
(付記2)前記走行車線判定手順は、前記領域分割手順により分割された領域の画像の輝度情報に基づいて走行車線を判定することを特徴とする付記1に記載の走行車線判定プログラム。
(付記3)前記走行車線判定手順は、前記領域分割手順により分割された領域の画像の色情報に基づいて走行車線を判定することを特徴とする付記1に記載の走行車線判定プログラム。
(付記4)前記走行車線判定手順は、前記領域分割手順により分割された領域の画像の微分情報に基づいて走行車線を判定することを特徴とする付記1に記載の走行車線判定プログラム。
(付記5)前記走行車線判定手順は、前記領域分割手順により分割された領域のオプティカルフローに基づいて対向車を検出して走行車線を判定することを特徴とする付記1に記載の走行車線判定プログラム。
(付記6)前記走行車線判定手順は、前記領域分割手順により分割された領域のオプティカルフローに基づいて併走車を検出して走行車線を判定することを特徴とする付記1に記載の走行車線判定プログラム。
(付記7)前記走行車線判定手順は、前記領域分割手順により分割された領域のオプティカルフローと、車両の移動にともなう撮像画像の移動量とに基づいて対向車を検出して走行車線を判定することを特徴とする付記5に記載の走行車線判定プログラム。
(付記8)前記走行車線判定手順は、前記領域分割手順により分割された領域のオプティカルフローと、車両の移動にともなう撮像画像の移動量とに基づいて併走者車を検出して走行車線を判定することを特徴とする付記6に記載の走行車線判定プログラム。
(付記9)車両に搭載した画像センサにより撮像した画像を用いて該車両の走行車線を判定する走行車線判定プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記画像を用いて走行路面の車線境界線を検出する車線境界線検出手順と、
前記車線境界線検出手順により検出された車線境界線に基づいて前記画像を複数の領域に分割する領域分割手順と、
前記領域分割手順により分割された領域の画像の特徴に基づいて走行車線を判定する走行車線判定手順と
をコンピュータに実行させる走行車線判定プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
(付記10)車両に搭載した画像センサにより撮像した画像を用いて該車両の走行車線を判定する走行車線判定装置であって、
前記画像を用いて走行路面の車線境界線を検出する車線境界線検出手段と、
前記車線境界線検出手段により検出された車線境界線に基づいて前記画像を複数の領域に分割する領域分割手段と、
前記領域分割手段により分割された領域の画像の特徴に基づいて走行車線を判定する走行車線判定手段と
を備えたことを特徴とする走行車線判定装置。
(付記11)車両に搭載した画像センサにより撮像した画像を用いて該車両の走行車線を判定する走行車線判定方法であって、
前記画像を用いて走行路面の車線境界線を検出する車線境界線検出工程と、
前記車線境界線検出工程により検出された車線境界線に基づいて前記画像を複数の領域に分割する領域分割工程と、
前記領域分割工程により分割された領域の画像の特徴に基づいて走行車線を判定する走行車線判定工程と
を含んだことを特徴とする走行車線判定方法。
以上のように、本発明に係る走行車線判定プログラムおよびその記録媒体、走行車線判定装置方法ならびに走行車線判定方法は、カーナビゲーションシステムや自動車の自動走行制御システムに適している。
本実施例1に係る走行車線判定装置の構成を示す機能ブロック図である。
画像記憶部の一例を示す図である。
白線検出部による白線検出処理を説明するための説明図(1)である。
白線検出部による白線検出処理を説明するための説明図(2)である。
白線検出部による白線検出処理を説明するための説明図(3)である。
領域分割部による領域分割処理を説明するための説明図である。
本実施例1に係る走行車線判定装置の処理手順を示すフローチャートである。
図5に示した白線検出処理の処理手順を示すフローチャートである。
図5に示した領域分割処理の処理手順を示すフローチャートである。
先行車の情報を走行車線領域内の情報に含めないようにする領域分割処理の処理手順を示すフローチャートである。
図5に示した輝度情報取得処理の処理手順を示すフローチャートである。
図5に示した走行車線判定処理の処理手順を示すフローチャートである。
本実施例2に係る走行車線判定装置の構成を示す機能ブロック図である。
車線判定部による走行車線判定処理の処理手順を示すフローチャートである。
本実施例3に係る走行車線判定装置の構成を示す機能ブロック図である。
車線判定部による走行車線判定処理の処理手順を示すフローチャートである。
本実施例4に係る走行車線判定装置の構成を示す機能ブロック図である。
車線判定部による走行車線判定処理の処理手順を示すフローチャートである。
本実施例5に係る走行車線判定装置の構成を示す機能ブロック図である。
車線判定部による走行車線判定処理の処理手順を示すフローチャートである。
本実施例6に係る走行車線判定装置の構成を示す機能ブロック図である。
車線判定部による走行車線判定処理の処理手順を示すフローチャートである。
本実施例7に係る走行車線判定装置の構成を示す機能ブロック図である。
車線判定部による走行車線判定処理の処理手順を示すフローチャートである。
本実施例8に係る走行車線判定装置の構成を示す機能ブロック図である。
車線判定部による走行車線判定処理の処理手順を示すフローチャートである。
本実施例9に係る走行車線判定装置の構成を示す機能ブロック図である。
車線判定部による走行車線判定処理の処理手順を示すフローチャートである。
本実施例10に係る走行車線判定装置の構成を示す機能ブロック図である。
車線判定部による走行車線判定処理の処理手順を示すフローチャートである。
本実施例11に係る走行車線判定装置の構成を示す機能ブロック図である。
車線判定部による走行車線判定処理の処理手順を示すフローチャートである。
本実施例12に係る走行車線判定装置の構成を示す機能ブロック図である。
オプティカルフローを説明するための説明図である。
対向車および併走車がいない場合のオプティカルフローを示す図である。
対向車および併走車がいる場合のオプティカルフローを示す図である。
本実施例12に係る走行車線判定装置の処理手順を示すフローチャートである。
図35に示した対向車検出処理の処理手順を示すフローチャートである。
図35に示した走行車線判定処理の処理手順を示すフローチャートである。
本実施例13に係る走行車線判定装置の構成を示す機能ブロック図である。
併走車検出部による併走車検出処理の処理手順を示すフローチャートである。
図38に示した車線判定部による走行車線判定処理の処理手順を示すフローチャートである。
本実施例14に係る走行車線判定装置の構成を示す機能ブロック図である。
車線判定部による走行車線判定処理の処理手順を示すフローチャートである。
本実施例15に係る走行車線判定装置の構成を示す機能ブロック図である。
車線判定部による走行車線判定処理の処理手順を示すフローチャートである。
本実施例16に係る走行車線判定装置の構成を示す機能ブロック図である。
車線判定部による走行車線判定処理の処理手順を示すフローチャートである。
本実施例17に係る走行車線判定装置の構成を示す機能ブロック図である。
車線判定部による走行車線判定処理の処理手順を示すフローチャートである。
本実施例18に係る走行車線判定装置の構成を示す機能ブロック図である。
移動量算出部による移動量算出手法を説明するための説明図(1)である。
移動量算出部による移動量算出手法を説明するための説明図(2)である。
移動量算出部による移動量算出手法を説明するための説明図(3)である。
本実施例18に係る走行車線判定装置の処理手順を示すフローチャートである。
図51に示した移動量算出処理の処理手順を示すフローチャートである。
図49に示した俯角算出部による俯角算出処理の処理手順を示すフローチャートである。
図51に示した対向車検出処理の処理手順を示すフローチャートである。
本実施例19に係る走行車線判定装置の構成を示す機能ブロック図である。
併走車検出部による併走車検出処理の処理手順を示すフローチャートである。
本実施例1〜19に係る走行車線判定プログラムを実行するコンピュータを示す図である。
符号の説明
1 画像センサ
2 車速センサ
10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190 走行車線判定装置
11 画像入力部
12 画像記憶部
13 白線検出部
14 領域分割部
15 輝度情報取得部
16,26,36,46,56,66,76,86,96,106,116,126,136,146,156,166,176 車線判定部
17,27,37,47,57,67,77,87,97,107,117,127,137,147,157,167,177,187,197 制御部
25 色情報取得部
45 微分情報取得部
85 周波数情報取得部
121 オプティカルフロー算出部
125,185 対向車検出部
135,195 併走車検出部
181 移動量算出部
182 俯角算出部
200 コンピュータ
210 CPU
220 ROM
230 RAM
240 I/Oインタフェース