以下、本発明に係る車線位置検出装置の実施の形態について、図面を参照して説明する。
図1は、本実施形態に係る車線位置検出装置のブロック図である。車線位置検出装置1は、主に撮像手段2と、変換手段3と、画像処理手段6と、検出手段9とから構成されている。
撮像手段2は、車輌周辺を撮像するものであり、所定のサンプリング周期で車輌前方の道路を含む風景を撮像して一対の画像を出力するように構成されている。本実施形態では、互いに同期が取られたCCDやCMOSセンサ等のイメージセンサがそれぞれ内蔵された一対のメインカメラ2aおよびサブカメラ2bからなるステレオカメラが用いられている。本実施形態では、メインカメラ2aおよびサブカメラ2bにはCCDカメラが用いられている。
メインカメラ2aとサブカメラ2bは、例えば、ルームミラー近傍に車幅方向に所定の間隔をあけて取り付けられている。前記一対のステレオカメラのうち、運転者に近い方のカメラが後述するように各画素について距離が算出され車線が検出される基となる画像を撮像するメインカメラ2a、運転者から遠い方のカメラが前記距離等を求めるために比較される画像を撮像するサブカメラ2bとされている。
メインカメラ2aおよびサブカメラ2bには、変換手段3としてのA/Dコンバータ3a、3bがそれぞれ接続されている。A/Dコンバータ3a、3bでは、メインカメラ2aおよびサブカメラ2bから出力されてきた一対のアナログ画像がそれぞれ画素ごとに例えば256階調のグレースケール等の所定の輝度階調の輝度値を有するデジタル画像に変換されるように構成されている。そして、前述した各画素について距離が算出され車線が検出される基となる画像から変換されたデジタル画像が基準画像として、また距離等を求めるために比較される画像から変換されたデジタル画像が比較画像として出力されるようになっている。
A/Dコンバータ3a、3bには、画像補正部4が接続されている。画像補正部4では、A/Dコンバータ3a、3bから出力されてきた基準画像および比較画像に対してメインカメラ2aおよびサブカメラ2bの取付位置の誤差に起因するずれやノイズの除去等を含む輝度値の補正等の画像補正がアフィン変換等を用いて行われるようになっている。
なお、例えば、基準画像Tは図2に示されるような水平方向が512画素、垂直方向が200画素分の輝度値からなる画像データとして、比較画像は図示を省略するが水平方向が640画素、垂直方向が200画素分の輝度値からなる画像データとしてそれぞれ画像補正部4から出力されるように構成されている。また、それぞれの画像データは画像補正部4に接続された画像データメモリ5に格納され、同時に検出手段9に送信されるようになっている。
前述したように、本実施形態では、メインカメラ2a等にCCDカメラが用いられている。メインカメラ2aやサブカメラ2bは、自車輌前方の風景を下側から順に水平方向にライン状に走査して撮像し、各水平ラインごとに撮像されたデータを順次変換手段3に送信する。そして、変換手段3で送信させてきた水平ラインの各画素ごとに撮像データを所定の輝度階調の輝度値に変換され、画像補正部4で画像補正が行われた後、各水平ラインごとの画像データが画像データメモリ5に格納されると同時に検出手段9に順次送信されるようになっている。
画像補正部4には、画像処理手段6が接続されており、画像処理手段6は、主に、イメージプロセッサ7と距離データメモリ8とから構成されている。
イメージプロセッサ7では、画像補正部4から出力されたステレオマッチング処理とフィルタリング処理により画像補正部4から出力された基準画像Tおよび比較画像のデジタルデータに基づいて基準画像Tの各画素または複数画素から構成するブロックからなる各設定領域について実空間における距離を算出するための視差dpを算出するようになっている。この視差dpの算出については、本願出願人により先に提出された特開平5−114099号公報に詳述されているが、以下、その要点を簡単に述べる。
イメージプロセッサ7は、512×200画素を有する基準画像Tについて設定領域としての4×4画素の画素ブロックごとに1つの視差dpを算出するようになっている。1つの画素ブロックを構成する16画素には、前述したようにそれぞれ0〜255の輝度値p1ijが割り当てられており、その16画素の輝度値p1ijがその画素ブロック特有の輝度値特性を形成している。
なお、輝度値p1ijの添字iおよびjは、基準画像Tの画像平面の左下隅を原点とし、水平方向をi座標軸、垂直方向をj座標軸とした場合の画素ブロックの左下隅の画素のi座標およびj座標を表す。また、比較画像については基準画像Tの原点に予め対応付けられた画素を原点として同様にi座標、j座標を取る。
イメージプロセッサ7におけるステレオマッチング処理では、前記のように基準画像Tを4×4画素ごとに最大128×50個の画素ブロックに分割し、比較画像を水平方向に延在する4画素幅の水平ラインに分割する。そして、基準画像Tの1つの画素ブロックを取り出してそれに対応する比較画像の水平ライン上を1画素ずつ水平方向、すなわちi方向にシフトさせながら下記(1)式で求められるシティブロック距離CBが最小となる水平ライン上の画素ブロック、すなわち基準画像Tの画素ブロックと似た輝度値特性を有する比較画像上の画素ブロックを探索するようになっている。
CB=Σ|p1ij−p2ij| …(1)
なお、p2ijは比較画像上の座標(i,j)の画素の輝度値を表す。また、本実施形態では、前述したように画像補正部4から水平ラインごとの画像データが出力されるため、イメージプロセッサ7では、水平ライン4本分の画像データが入力されるごとに前記4×4画素の画素ブロックに対するステレオマッチング処理を行うようになっている。
イメージプロセッサ7は、このようにして特定した比較画像上の画素ブロックともとの基準画像T上の画素ブロックとのずれ量を算出し、そのずれ量を視差dpとして基準画像T上の画素ブロックに割り付けるようになっている。
この視差dpは、前記メインカメラ2aおよびサブカメラ2bの一定距離の離間に由来する基準画像Tおよび比較画像における同一物体の写像位置に関する水平方向の相対的なずれ量であり、メインカメラ2aおよびサブカメラ2bの中央位置から物体までの距離と視差dpとを三角測量の原理に基づいて対応付けることができる。
具体的には、実空間上で、メインカメラ2aおよびサブカメラ2bの中央真下の道路面上の点を原点とし、自車輌の車幅方向すなわち左右方向にX軸、車高方向にY軸、車長方向すなわち距離方向にZ軸を取ると、距離画像上の点(i,j,dp)から実空間上の点(X,Y,Z)への座標変換は下記の(2)〜(4)式に基づいて行われる。
X=CD/2+Z×PW×(i−IV) …(2)
Y=CH+Z×PW×(j−JV) …(3)
Z=CD/(PW×(dp−DP)) …(4)
すなわち、メインカメラ2aおよびサブカメラ2bの中央位置、正確には中央真下の道路面上の点から物体までの距離Lと視差dpとは、前記(4)式のZを距離Lとすることで一意に対応付けられる。ここで、CDはメインカメラ2aとサブカメラ2bとの間隔、PWは1画素当たりの視野角、CHはメインカメラ2aとサブカメラ2bの取り付け高さ、IVおよびJVは自車輌正面の無限遠点の距離画像上のi座標およびj座標、DPは消失点視差を表す。
また、イメージプロセッサ7は、視差dpの信頼性を向上させる目的から、このようにして求めた視差dpに対してフィルタリング処理を施し、有効とされた視差dpのみを出力するようになっている。すなわち、例えば、車道の映像のみからなる特徴に乏しい4×4画素の画素ブロックを比較画像の4画素幅の水平ライン上で走査しても、比較画像の車道が撮像されている部分ではすべて相関が高くなり、対応する画素ブロックが特定されて視差dpが算出されてもその視差dpの信頼性は低い。そのため、そのような視差dpは前記フィルタリング処理で無効とされ、視差dpの値として0を出力するようになっている。
したがって、イメージプロセッサ7から出力される基準画像Tの各画素の距離L、すなわち基準画像Tの各画素ブロックについて実空間における距離を算出するための視差dpは、通常、基準画像Tの左右方向に隣り合う画素間で輝度値p1ijの差が大きいいわゆるエッジ部分についてのみ有効な値を持つデータとなる。
イメージプロセッサ7で算出された基準画像Tの各画素ブロックの視差dpは前記(4)式に基づいてZすなわち距離Lに変換されて、画像処理手段6の距離データメモリ8に格納されるようになっている。なお、検出手段9における処理では、基準画像Tの1つの画素ブロックは4×4個の画素として扱われ、1画素ブロックに属する16個の画素は同一の距離Lを有する独立した画素(i,j)として処理されるようになっている。以下、画素(i,j)の距離LをLijと表す。なお、検出手段9における処理で、画素ブロックを16個の独立した画素として扱わず、画素ブロックすなわち設定領域のまま扱うように構成することも可能である。
検出手段9は、本実施形態では、図示しないCPUやROM、RAM、入出力インターフェース等がバスに接続されたマイクロコンピュータより構成されている。検出手段9は、基準画像Tの各画素(i,j)の輝度値p1ijおよび距離Lijに基づいて基準画像T上における道路面上の左右の車線の検出が行われるようになっている。
具体的には、前述したように、検出手段9には、基準画像Tの各画素(i,j)の輝度値p1ijのデータが基準画像Tの1画素幅分の水平ラインごとに画像補正部4から入力されるようになっている。そして、水平ラインが順次下側から上向きに1画素幅ずつオフセットされながら各画素の輝度値p1ijが入力され、最終的に基準画像Tの全画素(i,j)の輝度値p1ijのデータが検出手段9に入力されるようになっている。
なお、水平ライン上の各画素(i,j)のj座標は同一であることから、ライン上の各画素のj座標がjである水平ラインを水平ラインjと表す。
検出手段9は、図3に示す基本フローに従って、画像補正部4から入力されてきた水平ラインj上を探索して、後述する条件を満たす画素を車線を表している可能性がある画素、すなわち車線候補点として検出し、検出された車線候補点に基づいて自車輌の左右の車線位置を検出するようになっている。
なお、車線候補点の探索は、基準画像Tの画像全体に対して行うことができる。しかし、本実施形態では、車線候補点の誤検出の抑制や処理速度の向上等の観点から、図4に示すように前回のサンプリング周期における検出で自車輌の左右に右車線位置LRlastおよび左車線位置LLlastが検出された場合には、今回の探索では、基準画像T上の前回の右車線位置LRlastおよび左車線位置LLlastの周囲のみを探索領域Sr、Slとして設定し、それらの領域内でのみ車線候補点の探索を行うようになっている。
本実施形態では、探索領域Sr、Slは、前回の右車線位置LRlastおよび左車線位置LLlastから実空間上で左右方向にそれぞれ一定の距離だけ離間した位置までとされている。具体的には、図5に示すように、右車線位置LRlastや左車線位置LLlastに対して自車輌に近い側、すなわち右車線位置LRlastの左側および左車線位置LLlastの右側の探索領域の規定値として内側規定値Wth_in設定されており、右車線位置LRlastや左車線位置LLlastに対して自車輌から遠い側、すなわち右車線位置LRlastの右側および左車線位置LLlastの左側の探索領域の規定値として外側規定値Wth_outが設定されている。内側規定値Wth_inおよび外側規定値Wth_outは40cm程度の値が適宜設定される。
また、車線候補点の探索は、探索を行う水平ラインjと右車線側探索領域Srの左端および左車線側探索領域Slの右端と交点の画素をそれぞれの領域の探索開始点isとし、右車線側では水平ラインj上を右向きに、左車線側では水平ラインj上を左向きにそれぞれ1画素ずつオフセットしながら探索するようになっている。また、探索は、水平ラインjと右車線側探索領域Srの右端および左車線側探索領域Slの左端と交点の画素をそれぞれの領域の探索終了点ieとしてそれぞれの探索終了点ieまで行われるようになっている。
検出手段9は、図3の基本フローの第1プロセスである車線候補点検出変換処理(ステップS10)において、図6に示すフローチャートに従って車線候補点を検出するようになっている。なお、左右の探索領域Sr、Slについての車線候補点の検出は同様に行われるから、以下、代表して右車線側探索領域Srを探索する場合について述べる。また、左車線側探索領域Slの探索は同一水平ラインjについて右車線側探索領域Srの探索と同時に行われるように構成されている。
検出手段9は、画像補正部4から基準画像Tの水平ラインj上の各画素(i,j)の輝度値p1ijが送信されてくると、図4に示した要領で探索領域Srについての探索開始点isおよび探索終了点ieを設定する(ステップS101)。検出手段9は、続いて、探索する画素を右方にオフセットさせながら(ステップS102)、探索画素が下記の第1開始点条件を満たすか否かを判断する(ステップS103)。
[第1開始点条件]
条件1:その探索画素の輝度値p1ijが道路面輝度値proadより第1開始点輝度閾値pth1以上大きく、かつ、輝度微分値で表されるエッジ強度Eijが第1開始点エッジ強度閾値Eth1以上であること。
条件2:その探索画素に対応する実空間上の点が道路面上にあること。
ここで、道路面輝度値proadは、現在探索が行われている水平ラインjの直下のすでに探索が行われた4行分の水平ラインj−1、j−2、j−3、j−4上における画素の輝度値ヒストグラムの出現度数が最大となる輝度値として水平ラインjごとに算出される。
前記条件1は、図7(A)、(B)に示すように輝度値p1ijが道路面輝度値proadから閾値pth1以上に大きくなり輝度微分値であるエッジ強度Eijが閾値Eth1以上である探索画素を、車線候補点となり得る開始点を見出すための条件である。条件2は、道路面より上方にある先行車のピラーやバンパ等の車体部分やガードレール、電信柱等のエッジ部分である探索画素を開始点から除外するための条件である。
検出手段9は、条件1を満たす画素が現れると、その画素についての距離Lijを距離データメモリ8から読み出してその画素に対応する実空間上の点が道路面上にあるか否かを判断する。
ここで、条件2を満たすか否かの判断の手法について簡単に説明する。図8に示すように、まず、基準画像T上の探索画素Mが属する水平ラインjに消失点Vpから引いた垂線の足を画素mとすると、画素mに対応する実空間上の点mは自車輌の正面に位置する。点mが道路面上にあるとすると、自車輌に搭載されたメインカメラ2aから点mまでの距離をLm、メインカメラ2aの焦点距離をf、メインカメラ2aの取付高さをhとすると、メインカメラ2aの結像位置における点mの映像と消失点Vpとのずれyは、
y=h×f/Lm …(5)
で表される。
基準画像T上での画素mと消失点Vpとの画素間隔をypixelとすると、ピクセル長をpとしたときypixel=y/pの関係が成り立つから、画素mと消失点Vpとの画素間隔ypixelとメインカメラ2aから点mまでの距離Lmとは、
ypixel=y/p=h×f/(Lm×p) …(6)
すなわち、
Lm=h×f/(p×ypixel) …(7)
の関係が成り立つ。消失点Vpのj座標は予め分かっているから、水平ラインjのj座標から(7)式に基づいて実空間上の自車輌から点mまでの距離Lmが算出される。
また、同様にして、基準画像Tの画素mと探索画素Mとの画素間隔xpixelから実空間上の点mと探索画素Mに対応する道路面上の点Mとの距離Lm-Mが算出でき、この距離Lm-Mと前記距離Lmとから自車輌と道路面上の点Mとの実空間上の距離LMが算出される。
そして、この実空間上の自車輌と道路面上の点Mとの距離LMと、距離データメモリ8から読み出された距離Lijとを比較して、一定の誤差範囲で一致すれば探索画素Mに対応する実空間上の点Mは道路面上にあると判断でき、距離Lijが前記距離LMより小さければ、探索画素Mに対応する実空間上の点Mは道路面より高い位置に存在する先行車のピラー等であると判断することができる。
検出手段9は、探索画素が前記第1開始点条件を満たすと判断すると(図6のステップS103:YES)、その探索画素を開始点PsとしてRAM上にセットし、第1車線幅閾値Wth1をセットする(ステップS104)。第1車線幅閾値Wth1は、開始点Psが検出された場合に探索範囲を確保するための閾値であり、例えば実空間上の距離として1mに設定されている。
検出手段9は、開始点Psと第1車線幅閾値Wth1とをセットすると、さらに水平ラインj上を右方に探索を続け、探索画素が下記の第2開始点条件を満たすか否かを判断する(ステップS105)。これは、図9に示すように開始点Psとしてセットされた画素が実際には消えかかった古い車線Loldの端部に対応する画素Psoldであり、その古い車線Loldと一部重なるようにして新しく塗り直された車線Lnewが引かれている場合に、元の開始点Ps等のセットを取り消して、塗り直された車線Lnewの端部に対応する画素Psnewを開始点Psとして新たにセットするための判断基準である。
[第2開始点条件]
条件3:その探索画素の輝度値p1ijが道路面輝度値proadより第2開始点輝度値閾値pth2以上大きく、かつ、輝度微分値で表されるエッジ強度Eijが第2開始点エッジ強度閾値Eth2以上であること。ただし、pth2>pth1。
条件4:開始点Psからその探索画素の左隣の画素までの平均輝度値と道路面輝度値proadとの差が第1車線平均輝度値閾値Ath1以下であること。
条件5:その探索画素に対応する実空間上の点が道路面上にあること。
そして、探索画素が前記第2開始点条件を満たす場合には(ステップS105:YES)、検出手段8は、元の開始点Psおよび第1車線幅閾値Wth1のセットを解除し、現在の探索画素を新たな開始点Psとして再セットし、第1車線幅閾値Wth1も再セットする(ステップS106)。
なお、図10(A)は第2開始点条件の第2開始点輝度閾値pth2を説明する図であり、図10(B)は第2開始点エッジ強度閾値Eth2を説明する図である。また、条件4において、元の開始点から現在の探索画素の左隣の画素までの領域Kの平均輝度値と道路面輝度値proadとの差が閾値Ath1より大きければ、その領域Kに対応する車線は現在もいわば生きている車線として標示されていると考えられるから、開始点Psを再セットする必要はない。
また、通常の車線位置検出では、古い車線Loldの上に塗り直された車線Lnewではなく、最初から通常の車線が検出される場合が多いが、その場合には、前記第1開始点条件を満たす探索画素は同時に第2開始点条件を満たす。そのため、第1開始点条件を満たした時点で開始点Psとしてセットされ、第1車線幅閾値Wth1がセットされ、即座に第2開始点条件を満たすと判断されて開始点Ps等が再セットされる。
検出手段9は、水平ラインj上を右方に探索を続け、探索画素が下記の終了点条件を満たすか否かを判断する(図6のステップS107)。
[終了点条件]
条件6:その探索画素の輝度微分値で表されるエッジ強度Eijが終了点エッジ強度閾値−Eth2以下であるか、またはその探索画素の輝度値が開始点Psにおける輝度値より小さいこと。
これは、図示を省略するが、終了点Peが車線に対応する高輝度の画素から道路面に対応する低輝度値の画素に移行する点であることを表す。なお、本実施形態では、終了点エッジ強度閾値−Eth2の絶対値は前記第2開始点エッジ強度閾値Eth2の絶対値と同一に設定されている。
検出手段9は、終了点条件を満たす点、すなわち終了点Peが検出されなければ(ステップS107:NO)、第1車線幅閾値Wth1に達するまで探索を行い、第1車線幅閾値Wth1に達しても終了点Peが検出されない場合は(ステップS108:YES)、開始点Psおよび第1車線幅閾値Wth1のセットを解除する。
そして、探索終了点ieに達していなければ(ステップS102:NO)、引き続き水平ラインj上の探索を続行し、探索画素が第1開始点条件を満たすか否かの判断(ステップS103)からの前記処理を繰り返す。なお、このフローチャートから分かるように、開始点Psから右方に探索を続けて探索終了点ieを超える場合でも第1車線幅閾値Wth1に達していなければ第1車線幅閾値Wth1に達するまで水平ラインj上の探索が続行される。
また、検出手段9は、終了点Peを検出すると(ステップS107:YES)、開始点Psから終了点Peの左隣の画素までの平均輝度値が下記の第1平均輝度値条件を満たすか否かを判断する(ステップS109)。
[第1平均輝度値条件]
条件7:開始点Psから終了点Peの左隣の画素までの平均輝度値と道路面輝度値proadとの差が前記第1車線平均輝度値閾値Ath1以下であること。
本実施形態では、この条件7における第1車線平均輝度値閾値Ath1は、前記第2開始点条件の条件4における第1車線平均輝度値閾値Ath1と同一の値が用いられる。前述したように、第1車線平均輝度値閾値Ath1は、消えかかった古い車線Loldに対応する平均輝度値と新たに塗り直された車線Lnewに対応する平均輝度値とを分ける閾値である。
検出手段9は、開始点Psから終了点Peの左隣の画素までの平均輝度値が前記第1平均輝度値条件を満たす(ステップS109:YES)、すなわち、平均輝度値が低い車線に相当する平均輝度値であると判断すると、この車線の近くに新しく塗られた車線がある可能性があるため、既に車線候補点が図示しない記憶手段に保存されていなければ(ステップS110:YES)、この開始点Psの座標(i,j)をとりあえず車線候補点として保存し(ステップS111)、さらに水平ラインj上の探索を続ける。
一方、検出手段9は、開始点Psから終了点Peの左隣の画素までの平均輝度値が前記第1平均輝度値条件を満たさない(ステップS109:NO)、すなわち、平均輝度値が高い車線に相当する平均輝度値であると判断すると、同一の水平ラインj上の探索で既に保存されている平均輝度値が低い車線に対応する車線候補点があれば(ステップS112:YES)、その車線候補点を削除して(ステップS113)、平均輝度値が高い方の開始点Psを車線候補点として保存して(ステップS114)、同一水平ラインj上の探索を打ち切る。
本実施形態では、以上のように、水平ラインj上の探索が終了する場合は、平均輝度値が高い車線が見出されて探索が打ち切られた場合、平均輝度値が低い車線しか見出されず探索終了点ieに達した場合、車線が見出されず探索終了点ieに達した場合の3通りの場合である。そして、平均輝度値が高くいわば生きている車線が見出されればその車線を優先しながら、第1開始点条件または第2開始点条件を満たす画素のうち自車輌に最も近い画素を車線候補点として検出する。
水平ラインj上の探索が終了すると、検出手段9は、車線候補点が保存されているか否かを判断する(ステップS115)。車線候補点が保存されていなければ(ステップS115:NO)、水平ラインjが200行目に達したか否かを判断し(ステップS116)、200行目に達していなければ(ステップS116:NO)、200行目に達するまで、画像補正部4から送信されてきた1画素分上側の水平ラインj+1について前記処理手順を繰り返す。
車線候補点が保存されていれば(ステップS115:YES)、検出手段9は、車線候補点から対応する終了点Peの左隣の画素までの平均輝度値が下記の第2平均輝度値条件を満たすか否かを判断する(ステップS117)。
[第2平均輝度値条件]
条件8:車線候補点から対応する終了点Peの左隣の画素までの平均輝度値と道路面輝度値proadとの差が第2車線平均輝度値閾値Ath2以上であること。
本実施形態では、前述したように第1車線平均輝度値閾値Ath1は、消えかかった古い車線Loldに対応する平均輝度値と新たに塗り直された車線Lnewに対応する平均輝度値とを画する閾値であったが、条件8における第2車線平均輝度値閾値Ath2は、車線として最低限要求される平均輝度値と道路面輝度値proadとの差を画するものであり、第1車線平均輝度値閾値Ath1より小さい値が適宜設定される。
検出手段9は、車線候補点が第2平均輝度値条件を満たさないと判断すると(ステップS117:NO)、その車線候補点を削除する(ステップS118)。一方、車線候補点が第2平均輝度値条件を満たすと判断されると(ステップS117:NO)、その車線候補点は削除されずに生き残り、図11に示すように、最終的にその水平ラインj上に車線候補点(Ij,Jj)が検出されたことになる。
検出手段9は、続いて、以上のようにして水平ラインj上に検出した車線候補点に対してハフ変換を実行するようになっている(ステップS119)。なお、ハフ変換は、基準画像T上の複数の車線候補点に基づいて車線位置検出の基準となる直線を検出することを目的とするものである。
本実施形態では、ハフ変換については公知の方法が用いられる。具体的には、例えば、検出された車線候補点が基準画像T上の直線
i=aj+b …(8)
上に存在すると仮定すると、Ij、Jjは、
Ij=aJj+b …(9)
を満たす。
前記(9)式は、
b=−Jj×a+Ij …(10)
と変形できる。(10)式から分かるように、前記車線候補点検出処理で水平ラインj上に車線候補点(Ij,Jj)が検出されると、−Jj、Ijを傾きおよびb切片として図12に示すようにハフ平面であるa−b平面上に1本の直線を引くことができる。
a−b平面は、図13に示すように所定の大きさに升目に区切られており、(10)式で表される直線が引かれると、図13の斜線を付した升目のような直線が通過する升目の計数値が1増加される。なお、a−b平面の各升目には所定のaおよびbの値が対応しているから、a−b平面で升目を選択することは、対応するa、bの値を選択すること、すなわち(8)式で表されるように基準画像T上に傾きa、i切片bの直線を選択することと同義である。
検出手段9は、基準画像T上を水平ラインを上向きに1画素分ずつずらしながら探索を行い、各水平ライン上に車線候補点が検出されるごとに前記ハフ変換を行ってa−b平面の升目の計数値を加算していくようになっている。そして、最終的に基準画像Tの最上段の200行目の水平ラインまで探索が終了すると、図14の領域Aに示すように複数の車線候補点が得られ、a−b平面の各升目にはそれぞれ計数値が加算された状態となる。
なお、図14以下の図では、車線候補点が基準画像T上や実空間上でいわば疎らに検出されるように示されているが、実際には非常に細かく多数検出される。また、上記では右車線側探索領域Srを探索する場合について述べたが、左車線側探索領域Slを探索する場合についても同様に検出された車線候補点(Ij,Jj)についてハフ変換が行われ、右車線側探索領域Srの場合とは別個にa−b平面が作成され、a−b平面の各升目にはそれぞれ計数値が加算される。
また、ハフ変換は、前記の方法に限らず、例えば、車線候補点(Ij,Jj)が直線
ρ=isinθ+jcosθ …(11)
上にある、すなわち、
ρ=Ijsinθ+Jjcosθ …(12)
が成り立つとして、ρ−θ平面の各升目にそれぞれ計数値が加算された状態を形成するようにしてもよい。
水平ラインj上の右向きおよび左向きの探索で検出されたすべての車線候補点に対するハフ変換および2枚のa−b平面の各升目への計数値の加算を終え、200行目の水平ラインjの探索が終了すると(図6のステップS116:YES)、図3に示した基本フローの第1プロセスである車線候補点検出変換処理(ステップS10)が終了する。
次に、検出手段9は、基本フローの第2プロセスである車線直線検出処理(ステップS20)に移行する。
検出手段9は、前記ハフ変換で得られた右車線側探索領域Srおよび左車線側探索領域Slの各a−b平面から計数値が大きな単数または複数の升目をそれぞれ抽出する。
すなわち、まず、升目ごとに計数値が算出されている右車線側探索領域Srのa−b平面を、b値一定の各行ごとにaの値を変化させて計数値が最大となる升目およびその最大値を求め、その最大値をbに対してプロットすると、図15に示されるような分布が得られる。検出手段9は、このようにして得られた分布の平均値をピーク閾値Qとし、分布の最大値およびピーク閾値Qを超える極大値を抽出する。
図15に示したような分布からは、最大値であるピーク1および極大値であるピーク2が抽出される。そして、前記(8)式にピーク1、2のa、bをそれぞれ代入すると、図16に示すピーク直線r1、r2がそれぞれ抽出される。左車線側探索領域Slのa−b平面についても同様の作業を行うと、図16に示すピーク直線l1、l2がそれぞれ抽出される。また、それらを実空間上に表すと図17のように表すことができる。
続いて、検出手段9は、抽出された複数のピーク直線のうち下記の選択条件に適合するものを棄却し、ピーク直線が1本に絞られるまで右向き探索および左向き探索の各場合についてそれぞれ選択を行う。
[選択条件]
条件11:所定の前方距離におけるピーク直線の位置が、自車輌の中心から換算した車幅の位置より内側に存在すること。ただし、連続して車線位置が検出されている場合には前回検出された車線位置からの変化量を用いて所定の閾値以内であれば条件11は適用しない。
条件12:自車輌の前記推定軌跡Lestとの平行度が一定の閾値より大きいこと。
条件13:図16および図17に一点破線Ldで表される所定の前方距離における自車輌の中心からの左右差距離が規定値far_th以上に遠いピーク直線と規定値near_th以下のピーク直線がある場合の規定値far_th以上のピーク直線であること。ただし、far_th>near_th。
条件14:前回検出された車線位置や幅から推定した車線推定中心位置に最も近いピーク直線を残すこと。
図16や図17の例では、条件11によりピーク直線r2が棄却される。なお、条件11のただし書きは、車線変更等の場合に前回検出された車線位置からの連続性を考慮したものであり、この場合、ピーク直線は棄却されない。
また、条件12によってもピーク直線r2が棄却される。なお、ピーク直線と自車輌の推定軌跡Lestとは、測定された自車輌の車速とステアリングホイールの舵角とから算出された自車輌のヨーレートから推定される自車輌の軌跡を表す。また、自車輌の推定軌跡Lestとピーク直線との平行度は、本実施形態では、図18に示すように実空間上における自車輌の10mおよび20m前方での自車輌の推定軌跡Lestとピーク直線との距離p10、p20の差の絶対値|p10−p20|を間隔10mで除した値で表され、平行度の値が小さいほど平行の度合が高いことを表す。
また、条件13は、例えば、隣の走行路の車線の位置に対応するピーク直線が抽出されているような場合にそのピーク直線を排除することを意味する。図16や図17の例では、このようなピーク直線は抽出されていない。さらに、条件14によってピーク直線l2が棄却される。
検出手段9は、このようにして右車線側探索領域Srおよび左車線側探索領域Slで抽出されたピーク直線から車線位置としてふさわしい直線を表す左右のピーク直線r1、l1をそれぞれ図19に示すような車線直線r1、l1として1本ずつ選択して、図3の車線直線検出処理(ステップS20)を終了するようになっている。
次に、検出手段9は、基本フローの第3プロセスである車線位置検出処理(ステップS30)に移行する。車線位置検出処理は、図20に示すフローチャートに従って行われるようになっている。
車線位置検出処理では、前述した処理で得られた車線直線を基準にして自車輌の左右に存在する直線状や曲線状の車線の車線位置を検出する。前述したように、前記各条件を満たす自車輌に最も近い画素を車線候補点として検出することから、このように車線候補点を追跡することで自車輌に最も近い車線位置が検出される。そのため、車線の内側や外側に破線が描かれている場合や車線自体が破線状に標示されている場合には、それらの破線が検出される。
検出手段9は、まず、図21に示すように、基準画像Tの下側、すなわち自車輌に近い側の車線位置を車線直線r1、l1を基準にして確定する。右車線側探索領域Srと左車線側探索領域Slとでそれぞれ同時にかつ独立に処理が行われる。
具体的には、検出手段9は、基準画像Tにおける最下部に位置する水平ラインjから順に水平ラインjを上向きに1画素分ずつずらしながら基準画像Tの全域に対して処理を行う(ステップS301)。
そして、水平ラインjごとに車線候補点が検出されているか否かを検索し、車線候補点が存在する場合には、前記車線直線検出処理で検出された右側の車線直線r1或いは左側の車線直線l1を基準として車線候補点と各直線とのi方向の差が閾値以内であるか否かを判断し(ステップS302)、閾値以内である車線候補点を車線ポジションとして記録する(ステップS303)。
この段階で、図21に点線で囲まれて示される車線直線r1、l1とのi方向の差が閾値以内にない車線候補点は、車線位置を表す点とはみなされず誤検出として除外される。
検出手段9は、続いて、記録された車線ポジションが実空間上で自車輌から所定距離以内にあれば(ステップS304:YES)、その車線ポジションについて車線破線識別処理(ステップS305)およびグループ化処理(ステップS306)を行う。
車線破線識別処理やグループ化処理では後述するように車線ポジション間の距離や車線ポジションと終了点との距離が重要な意味を持つが、自車輌から遠方に離れた地点ではそれらの距離に対する信頼性が低下するため、遠方の地点に対応する車線ポジションは以下の2つの処理の対象としないように前記所定距離がCCDカメラの性能等に応じて適宜設定される。
車線破線識別処理では、図22に示すように、まず、記録された車線ポジションと同一水平ラインj上の当該車線ポジションに対応する終了点Peとの間の実空間上の距離を算出する(ステップS401)。車線ポジションと終了点Peとの距離は、車線や破線の左右方向の長さすなわち車線や破線の幅に相当する。
検出手段9は、続いて、算出された距離が第1範囲内にあるか否かを判断する(ステップS402)。この第1範囲とは、算出された車線ポジションと終了点Peとの距離が車線に対応するものかどうかを判断する基準となる範囲であり、例えば20cm未満に設定されている。検出手段9は、算出された距離が第1範囲内にあると判断すると(ステップS402:YES)、車線に対応する車線ポジションであるとして車線カウント数を1増加させる(ステップS403)。
また、算出された距離が第1範囲内にないと判断すると(ステップS402:NO)、算出された距離が第2範囲内にあるか否かを判断する(ステップS404)。この第2範囲とは、算出された車線ポジションと終了点Peとの距離が車線の内側や外側等に標示された破線に対応するものかどうかを判断する基準となる範囲である。
例えば、図23に示すような車線の内側に標示された破線BLの幅すなわち左右方向の長さは通常30cm程度であるから、本実施形態では、第2範囲は30cmを含む数値範囲が設定されている。また、車線ポジションが自車輌から遠い地点に対応する場合、破線と隣接する車線とが一体となっているように撮像される場合があるから、第2範囲として前記の数値範囲に加えて50cm前後の数値を含む数値範囲を設定することも可能である。
検出手段9は、算出された距離が第2範囲内にあると判断すると(ステップS404:YES)、破線に対応する車線ポジションであるとして破線カウント数を1増加させる(ステップS405)。
続いて、検出手段9は、車線ポジションのグループ化の処理を行う(図20のステップS306)。図24に示すように、グループ化処理では、まず、現在の車線ポジションの検出の直前に検出された車線ポジションと現在の車線ポジションとの実空間上の距離が閾値以内であるか否かが判断される(ステップS501)。本実施形態では、この閾値は1mに設定されている。
なお、1つのグループは、図23に示す破線を構成する1つのブロック状の標示に対応している。
また、現在の車線ポジションを直前の車線ポジションが含まれるグループに属させるか否かについては、本実施形態のようにそれらの距離の閾値のみで判断せず、より厳密に、例えば、実空間上や基準画像T上において、両車線ポジションを結ぶ線分を算出し、直前の車線ポジションが含まれるグループに属する各車線ポジションから所定の基準に基づいて算出される直線に対してその線分の傾きや方向性がどの程度変位しているかの基準を加味して判断するように構成することも可能である。
検出手段9は、検出された車線ポジションとその直前に検出された車線ポジションとの距離が閾値以内であると判断すると(ステップS501:YES)、現在の車線ポジションを直前の車線ポジションが属するグループに対応付けて記録する(ステップS502)。
また、検出された車線ポジションとその直前に検出された車線ポジションとの距離が閾値以内にはないと判断すると(ステップS501:NO)、現在検出された車線ポジションは新たなグループに属する車線ポジションであるとして、グループカウント数を1増加させる(ステップS503)。そして、前記判断の際に算出された現在の車線ポジションと直前の車線ポジションとの距離をグループ間の距離として記録する(ステップS504)。
例えば、図21に例示した基準画像Tの右側の車線直線r1に対応する車線ポジションでは、実際には非常に細かく密に検出される車線ポジション間の距離は通常前記閾値以内にあるため、ほぼ全体が1つのグループとして対応付けられる。それに対し、図23に例示した基準画像Tの右側の車線直線r1に対応する車線ポジションでは、車線ポジションa1〜a5はそれぞれ前記閾値以内であるため同一グループとして対応付けられる。また、車線ポジションb1〜b3も同一グループとして対応付けられる。
しかし、車線ポジションa5と車線ポジションb1との距離は前記閾値より大きくなるため、車線ポジションa1〜a5と車線ポジションb1〜b3とはそれぞれ別のグループに属すると判断される。そして、この場合、車線ポジションa5と車線ポジションb1との実空間上の距離がグループ間の距離として記録される。
続いて、検出手段9は、直前の車線ポジションが属するグループの末端の車線ポジション同士の実空間上の距離を算出し、直前の車線ポジションが属するグループの距離方向の長さとして記録する(ステップS505)。図23の例でいえば、車線ポジションa1〜a5が属するグループの距離方向の長さは、車線ポジションa1と車線ポジションa5との実空間上の距離として算出される。
検出手段9は、前記車線ポジションの検出(図20のステップS302)、記録(ステップS303)、および前記所定距離以内であれば車線破線識別処理(ステップS305)、グループ化処理(ステップS306)を所定の個数の車線ポジションが検出されるまで行う(ステップS307)。所定個数に達しないうちに水平ラインjが基準画像Tの最上部に達した場合(ステップS301:YES)には車線カウント数や破線カウント数、グループカウント数をリセットして(ステップS317)、第3プロセスを終了する。
また、所定の個数の車線ポジションが検出されるまでの間、検出手段9は、右側の車線直線r1に対応する車線ポジションと左側の車線直線l1に対応する車線ポジションとの間隔を記録していく。すなわち、具体的には、距離画像を用いて該当する車線ポジション間の画素数を距離データから実空間上の道幅に換算して記録していき、その最大値Lmaxth、最小値Lminthを算出して記録する。
次に、検出手段9は、図21や図23に示したように右側の車線直線r1上や左側の車線直線l1上或いはそれらの近傍に車線ポジションを前記所定の個数記録して基準画像Tの下側、すなわち自車輌に近い側の車線位置を車線直線r1、l1を基準にして確定すると、その上方の水平ラインjでは、今度は左右の車線直線r1、l1には拘束されずに、車線ポジションを検出していく。すなわち、後述する基準に従って車線を追い、車線がカーブしている場合にもそのカーブに追随して車線ポジションを検出していく。
具体的には、検出手段9は、上方の水平ラインjでは、さらに上方の水平ラインj上に車線候補点が検出されている場合には(ステップS308:NO)、その車線候補点が直前に検出された車線ポジションとの関係において所定の基準を満たすか否かを判断する(ステップS309)。そして、前記所定の基準を満たすと判断すると(ステップS309:YES)、その車線候補点bを車線ポジションbとして記録する(ステップS310)。
本実施形態では、前記所定の基準の1つとして、図25(A)に示すように、車線候補点bと直前に検出された車線ポジションaとのi方向、j方向の変位が規定値以内であれば車線候補点bを車線ポジションbとして記録するようになっている。
また、もう1つの基準として、図25(B)に示すように、車線候補点cと直前に検出された車線ポジションbとのi方向、j方向の変位が規定値以内でない場合でも、前回までに検出した車線ポジションを延長した直線、すなわち、図25(B)では車線ポジションbと車線ポジションaとを結ぶ直線からの車線候補点cのi方向の変位が規定値以内であれば、車線候補点cを車線ポジションcとして記録するようになっている。車線候補点dと車線ポジションcとの関係においても同様である。
検出手段9は、左右の車線ポジション間の実空間上の間隔すなわち道幅が記録された前記道幅の最大値Lmaxthと最小値Lminthの範囲にあることを確認しつつ水平ラインjを基準画像Tの上方にずらしながら順次車線ポジションを検出して、図26に示されるように直線状或いは曲線状の車線に追随しながら右車線位置LRおよび左車線位置LLを検出していく。また、図26に点線で囲まれて示されるような前記基準に当てはまらず前回検出された車線ポジションとの関連性が薄い車線候補点は誤検出として除外される。
検出手段9は、このようにして車線ポジションを記録すると、記録された車線ポジションが実空間上で自車輌から所定距離以内にあれば(ステップS311:YES)、車線破線識別処理(ステップS312)およびグループ化処理(ステップS313)を行う。これらの処理は前述した車線破線識別処理(ステップS305)およびグループ化処理(ステップS306)と同様にして行われ、それぞれの判断に従って車線カウント数や破線カウント数、グループカウント数が1増加され、グループへの対応付け等が行われる。
このようにして、図27に示すように、自車輌に対して右側および左側の車線位置LR、LLが検出される。一方、図23に示した車線の内側に破線が標示されている基準画像Tでは、図28に示すように自車輌に対して右側および左側に右破線位置BLRおよび左破線位置BLLが検出される。
また、同様にして、図29に示すように自車輌の右側の車線の外側に破線が標示されている場合には、図30に示すように、自車輌の右側に破線位置BLRが検出され、自車輌の左側には車線位置LLが検出される。図31に示すように自車輌の左側の車線自体が破線状に標示された破線である場合には、図32に示すように、自車輌の左側に破線位置BLLが検出され、自車輌の右側には車線位置LRが検出される。
検出手段9は、以上のようにしてすべての車線候補点について検索を終了すると(図20のステップS308:YES)、破線を検出したか否かを判断するようになっている。破線が検出されていれば破線位置や車線位置をより精度よく検出できるように各種閾値等の変更を行い、また、破線が検出されなくなれば各種閾値等の変更を解除して車線位置検出装置1を通常の車線位置検出の仕様に戻すようになっている。
検出手段9は、破線を検出したか否かの判断(ステップS314)においては、下記の破線条件を満たすか否かを基準に判断を行い、下記条件15〜18をすべて満たす場合に破線を検出したと判断するようになっている。
[破線条件]
条件15:破線カウント数が所定数以上である。
条件16:グループ数カウント数が所定数以上である。
条件17:記録されたグループの距離方向の長さが所定長さ程度である。
条件18:記録されたグループ間の距離が所定長さ程度である。
条件15は、破線カウント数すなわち図28等に示す破線BLの1つのブロック状の標示の左右方向の長さが30cm程度である車線ポジションの数が例えば10個以上検出されることを要求するものである。条件16は、グループカウント数、すなわち破線BLの1つのブロック状の標示に対応するグループが例えば3個以上検出されることを要求するものである。
条件17は、いくつか検出されたグループすなわち破線BLの1つのブロック状の標示の距離方向の長さが破線にふさわしい長さであることを要求するものである。条件18は、グループ間の間隔すなわち破線BLのブロック状の標示同士の間隔が破線にふさわしい間隔であることを要求するものである。
検出手段9は、自車輌が図2のように通常の車線を走行している場合には破線が検出されないから、前記条件15〜18がすべて満たされず破線を検出していないと判断すると(ステップS314:NO)、状態(0)であるか否かを判断する(ステップS315)。
ここで、状態(0)とは、図2に示した基準画像Tのように破線が標示されていない通常の車線状態をいう。また、後述する状態(1)とは、図31に示したように車線自体が破線状に標示されている状態、状態(2)とは、図23に示したように車線の内側に破線BLが標示されている状態、状態(3)とは、図29に示したように車線の外側に破線BLが標示されている状態をいう。
なお、本発明では、例えば図31に示した高速道路の合流点等に標示される破線BLのように、通常の車線よりも幅が広く距離方向の長さが短い標示を車線自体が破線状に標示された破線といい、前記のように状態(1)が割り当てられる。一方、図2の左車線のように車線自体が破線状に標示されていても、幅が15cm程度で距離方向の長さが6m程度の標示は通常の車線とされ、状態(0)が割り当てられる。
自車輌が図2のように通常の車線を走行している場合には、検出手段9は、状態(0)であると判断し(図20のステップS315:YES)、図27に示した自車輌の左右に検出した車線位置LR、LLを出力する。これらの車線位置LR、LLは、例えばキープレーン制御等の種々の制御の基準として用いられる。
検出手段9は、続いて、道幅算出処理を行う(ステップS316)。道幅算出処理では、検出手段9は、図27に示したように今回の検出で基準画像T上に検出された右車線位置LRと左車線位置LLとの自車輌前方10mの地点における実空間上の間隔すなわち道幅を算出し、RAMに保存する。このようにして、検出手段9は、状態(0)である場合には道幅をRAMに蓄積していく。
一方、検出手段9は、破線を検出したか否かの判断において、破線を検出したと判断すると(ステップS314:YES)、状態(1)から状態(3)のいずれの状態にあるかを検出して、破線位置や車線位置をより精度よく検出できるように各種閾値等の変更処理(ステップS318)を行うようになっている。
この各種閾値等の変更処理では、今回の検出で自車輌の左右に検出された破線位置BLR、BLL同士の間隔または破線位置BLR、BLLと車線位置LR、LLとの間隔が、前記道幅算出処理で道幅よりも所定量以上狭いか否かが判断され、破線が車線の内側に標示されているか否かを判断する。
この道幅には、例えば、破線が検出されない場合に算出されRAMに蓄積されている直近の道幅を用いることも可能である。しかし、本実施形態では、破線が車線の内側に標示されているか否かを精度よく検出するという観点から、道幅として下記の要領で算出された基準道幅が用いられるようになっている。
RAMに蓄積されている破線が検出されない場合に算出された道幅のデータを、直近のデータからさかのぼって5秒間隔に分けてそれぞれの平均値を求める。すなわち、直近のデータから5秒前までのデータ、5〜10秒前までのデータ、…、20〜25秒前までのデータのそれぞれについて道幅の平均値を求める。そして、算出された5つの道幅の平均値の中央値を基準道幅とするようになっている。
検出手段9は、図33に示すように、まず、次回の検出に向けて、図7に示した前記第1開始点条件の条件1における探索画素の輝度値についての閾値である第1開始点輝度閾値pth1とその探索画素における輝度微分値についての閾値である第1開始点エッジ強度閾値Eth1とをそれぞれ下げる(ステップS601)。
これは、図23や図31に示した破線BLや図29に示した破線BLの内側の車線は、車輌のタイヤに踏まれて薄くなっている場合があるため、破線BLや車線を的確に精度よく検出するために行われる。前回の検出で破線BLが検出され、既に閾値が下げられている場合は、それらの閾値が維持される。
検出手段9は、続いて、基準道幅が算出されているか否かを判断し(ステップS602)、算出されていなければ(ステップS602:NO)、前記要領に従って基準道幅を算出する(ステップS603)。なお、今回の検出以降、例えば、車線の内側に標示された破線が検出され続ける場合には、今回算出された基準道幅が用いられ、基準道幅が改めて算出されることはない。
続いて、検出手段9は、前述したように今回の検出で自車輌の左右に検出された破線位置同士または破線位置と車線位置との自車輌前方10mの地点における実空間上の間隔を算出し、その間隔が基準道幅よりも所定量以上狭いか否かが判断される(ステップS604)。所定量は例えば10cm等に適宜設定される。
検出手段9は、前記間隔が基準道幅よりも所定量以上狭いと判断すると(ステップS604:YES)、検出された破線が車線の内側に標示されていると判断して、状態(2)にセットする(ステップS605)。
そして、検出手段9は、図34に示すように、検出された破線位置BLR、BLLからそれぞれ外側に所定距離離間した位置を車線位置LR、LLとして検出して出力する(ステップS606)。この車線位置LR、LLがキープレーン制御等の種々の制御の基準として用いられる。なお、自車輌の左右いずれか一方にのみ破線が標示されていて、他方では車線位置が検出されている場合には、一方の破線に対しては外側に所定距離離間した位置を車線位置とし、他方の車線位置が検出されている側ではその車線位置を車線位置として検出する。
検出手段9は、続いて、次回の検出に向けて、破線位置の周囲のみに設定された探索領域を狭める(ステップS607)。すなわち、前述したように、探索領域Sr、Slは、前回の検出で破線が検出されない場合には内側規定値Wth_inおよび外側規定値Wth_outは例えば実空間上の距離として40cm程度の値が適宜設定されているが、その内側規定値Wth_inや外側規定値Wth_outを例えば20cm程度の値に設定し直す。
これは、図23に示した車線の内側に標示された破線BLの最も内側の端部で開始点や車線候補点を安定して検出し、破線位置BLR、BLLを安定して的確に検出できるようにするために行われる処置である。
一方、検出手段9は、今回の検出で検出された破線位置同士または破線位置と車線位置との間隔が基準道幅よりも所定量以上に狭くないと判断すると(ステップS604:NO)、続いて、検出された破線の内側に車線があるか否かを判断する(ステップS608)。そして、破線の内側に車線があると判断すると(ステップS608:YES)、検出された破線は車線の外側に標示された破線であると判断して、状態(3)にセットする(ステップS609)。
本実施形態では、検出された破線の内側に車線があるか否かの判断は、前述した車線カウント数に基づいて行われる。図30に示したように、車線の外側に標示された破線の場合には、通常、一部車線の最も内側の端部も破線位置に含まれる。そして、それらの車線のエッジ部分に対応する車線ポジションとそれに対応する終了点Peとの距離は例えば20cm未満に設定された前記第1範囲内にあるから、車線に対応する車線ポジションが検出されるごとに車線カウントが1ずつ増加する。
従って、車線カウント数に適当な閾値を設定すれば、車線の外側に標示された破線であるか車線自体が破線状に標示された破線であるかを識別することができる。本実施形態では、検出手段9は、車線カウント数が3以上であれば破線の内側に車線があると判断するようになっている。車線自体が破線状に標示された破線の場合すなわち状態(1)の場合には、破線の内側に車線が見出されることはない。
検出手段9は、状態(3)にセットすると(ステップS609)、続いて、次回の検出に向けて、第1車線幅閾値Wth2を設定する(ステップS610)。なお、本実施形態では、この場合、次回の検出では検出された破線位置の周囲のみを探索領域として車線候補点の探索が行われる。
第2車線幅閾値Wth2は、次回以降の検出で、前記終了点条件に下記の条件19として追加させる条件の判断基準となるものである。
条件19:条件6を満たす探索画素と開始点Psとの実空間上の距離が第2車線幅閾値Wth2の範囲内にないこと。
また、第2車線幅閾値Wth2は、図30に示したように破線BLの最も内側の端部を検出せずに、図35に示すように破線BLの内側の車線の最も内側の端部が車線位置LRとして検出されるように設定される。具体的には、第2車線幅閾値Wth2は、もともとの第1車線幅閾値Wth1から破線BLの幅に相当する数値範囲を除くため、例えば25cm〜45cmの範囲に設定される。
つまり、図6に示した車線候補点検出変換処理における水平ラインj上の探索で、終了点条件の条件6を満たす探索画素が見出され、その探索画素と開始点Psとの実空間上の距離が第2車線幅閾値Wth2の範囲外すなわち25cm以下か45cm以上の範囲であれば、その探索画素は終了点Peとされ終了点条件を満たす(ステップS107:YES)。
しかし、その距離が破線を検出している可能性がある第2車線幅閾値Wth2の範囲内であれば、その探索画素は終了点条件を満たさないとされ(ステップS107:NO)、水平ラインj上の探索が続行され、第1車線幅閾値Wth1に達して(ステップS108:YES)、探索終了点ieに達する(ステップS102:YES)。結局、見出された開始点Psは、対応する終了点Peが見出されないから車線候補点とはされない。このようにして、破線に対応する画素を車線候補点として検出することが回避される。
このように第2車線幅閾値Wth2が設定されれば、次回以降の検出で破線BLの内側の車線の最も内側の端部が車線位置LRとして検出され(図33のステップS611)、その車線位置LRを出力することができる。また、次々回以降の検出ではその車線位置LRに基づいて探索領域が設定されるから、車線位置を的確に検出することができる。
そのため、前述したように、次回の検出では今回検出された破線位置BLRの周囲のみを探索領域として車線候補点の探索が行われるが、次回の検出で破線位置BLRの内側の車線位置LRを確実に検出するように、状態(2)の場合とは異なり、次回の検出に向けての探索領域の変更は行わないことが好ましい。
さて、検出手段9は、今回の検出で検出された破線位置同士または破線位置と車線位置との間隔が基準道幅よりも所定量以上に狭くなく状態(2)ではないと判断し(ステップS604:NO)、検出された破線の内側に車線がなく状態(3)ではないと判断すると(ステップS608:NO)、車線自体が破線状に標示された破線であると判断して、状態(1)にセットする(ステップS612)。
検出手段9は、図32に示した状態(1)の場合、自車輌の左側に検出した破線位置BLLを車線位置LLとして検出してよいから、状態(1)にセットすると(ステップS612)、検出した破線位置を車線位置として検出して出力する(ステップS613)。
なお、高速道路の合流等で標示される車線自体が破線状に標示された破線は、通常、比較的幅広に標示されるから、この段階で、次回の検出に向けて、開始点Psが検出された場合に探索範囲を確保するための閾値である第1車線幅閾値Wth1を、破線が確実に検出できるように拡大する変更を行ってもよい。
さて、検出手段9は、破線を検出していないと判断したにもかかわらず(図20のステップS314:NO)、状態(0)でなく状態(1)や状態(2)、状態(3)であるとされている場合には(ステップS315:NO)、各種閾値等について行った変更の解除等の処理を行う(ステップS319)。
各種閾値等の変更の解除等の処理では、図36に示すように、検出手段9は、まず、状態(1)か否かを判断する(ステップS701)。状態(1)すなわち車線自体が破線状に標示された破線である場合(ステップS701:YES)、破線であることが検出できなくなれば現在検出しているのは車線であると判断できるから、状態(0)にセットする(ステップS702)。
そして、検出手段9は、前記第1開始点条件の条件1における輝度値についての第1開始点輝度閾値pth1と輝度微分値についての第1開始点エッジ強度閾値Eth1の変更を解除するとともに(ステップS703)、第1車線幅閾値Wth1の変更を行った場合はその変更を解除して初期設定に戻す。さらに、標準道幅をリセットして未算出の状態にする(ステップS704)。
また、検出手段9は、状態(1)でないと判断すると(ステップS701:NO)、状態(2)か否かを判断する(ステップS705)。そして、状態(2)であると判断すると(ステップS705:YES)、続いて、今回の検出で自車輌の左右に検出された破線位置同士または破線位置と車線位置との自車輌前方10mの地点における実空間上の間隔を算出し、その間隔が基準道幅よりも所定量以上狭いか否かを判断する(ステップS706)。この判断は、前述した判断(図33のステップS604)と同様にして行われる。
この判断(ステップS706)は、破線が検出されない場合でも、自車輌の左右に検出された破線位置や車線位置の間隔が狭ければ、依然として車線の内側に標示された破線を検出している可能性があるため、狭い場合は各種閾値等の変更を解除しないようにするための判断である。
検出手段9は、自車輌の左右に検出された破線位置や車線位置の間隔が基準道幅よりも所定量以上狭いと判断すると(ステップS706:YES)、各種閾値等の変更を解除せずに状態(2)のままこのサブルーチンから出る。なお、破線が検出されないにもかかわらず前記間隔が標準道幅よりも狭い状態が続く場合には、道幅自体が狭まったと判断して、状態(2)を状態(0)にセットし直し、各種閾値等の変更や探索領域の変更等を解除して初期の設定に戻すように構成することも可能である。
検出手段9は、前記間隔が基準道幅より所定量以上狭くないと判断すると(ステップS706:NO)、状態(0)にセットし(ステップS707)、前記第1開始点条件の条件1における輝度値についての第1開始点輝度閾値pth1と輝度微分値についての第1開始点エッジ強度閾値Eth1の変更を解除する(ステップS708)。
また、探索領域を狭める変更を解除して(ステップS709)、内側規定値Wth_inおよび外側規定値Wth_outを初期設定に戻す。さらに、標準道幅をリセットして未算出の状態にする(ステップS710)。
検出手段9は、状態(2)か否かの判断(ステップS705)で状態(2)ではないと判断すると(ステップS705:NO)、状態(3)であると判断して、検出された車線位置或いは破線位置の内側に車線があるか否かを判断する(ステップS711)。この判断は、前述した判断(図33のステップS608)と同様にして行われる。
そして、破線の内側に車線があると判断すると(ステップS711:YES)、各種閾値等の変更を解除せずに状態(3)のままこのサブルーチンから出る。なお、破線が検出されないにもかかわらず内側に車線が検出される状態が続く場合には、近接して並列に標示された複数の車線を検出していると判断して、状態(3)を状態(0)にセットし直し、第2車線幅閾値Wth2の設定を解除して初期の設定に戻すように構成することも可能である。
検出手段9は、内側に車線がないと判断すると(ステップS711:NO)、状態(0)にセットし(ステップS712)、第2車線幅閾値Wth2の設定を解除して(ステップS713)、標準道幅をリセットして未算出の状態にする(ステップS714)。
検出手段9は、以上の各処理を終了すると、続いて、車線カウント数や破線カウント数、グループカウント数をリセットして(図20のステップS317)、第3プロセスを終了する。
車線位置検出装置1が以上のようにして検出した車線位置等の情報を、図示しないキープレーン制御のための制御装置に送信するように構成することが可能である。また、車線位置検出装置1をキープレーン制御装置に組み込むことも可能である。さらに、車線位置や破線位置等の情報を、例えば、図示しない自動変速機(AT)制御部やエンジン制御部、ブレーキ制御部、トラクションコントロールシステム(TCS)制御部、車輌挙動制御部等の各種制御部に出力するように構成することも可能である。また、それらの情報をモニタ等の表示手段に送信して表示し、あるいは警報装置に送信して運転者に必要な警告を発するように構成することも可能である。
以上のように、本実施形態に係る車線位置検出装置1によれば、撮像手段で撮像された基準画像の各画素の輝度と距離とに基づいて道路面上の点に対応する画素のみを対象として車線位置検出を行うため、道路面より上方にある先行車のピラーやバンパ等の車体部分やガードレール、電信柱等のエッジ部分が検出対象が除外され、的確に道路面上の表示のみを検出することが可能となる。
また、自車輌に最も近い車線や破線の最も内側の端部を車線候補点として検出し、それに基づいて車線位置や破線位置を検出する。その際、前記特許文献3、4のように、画像から車線や破線のエッジ部分をすべて抽出して形成されたマトリクス状に分散した対象に対してグループ化して車線位置を検出するのではなく、前記のように検出された車線候補点を基準画像の下側から追跡し、車線ポジションとの関連性が薄い車線候補点が除外されながら車線位置や破線位置を特定していく。そのため、車線位置や破線位置を安定して検出することが可能となる。
さらに、前記特許文献2のように、画像から車線や破線のエッジ部分をすべて抽出し、それらの全エッジ部分に対してハフ変換を行うのではなく、自車輌に最も近い車線や破線の最も内側の端部を車線候補点として検出してハフ変換を行って車線直線を得る。そのため、自車輌に最も近い側に表示されているものが車線であっても破線であっても、その車線や破線を安定して的確に検出し、車線位置や破線位置を確実に検出することが可能となる。
そして、車線候補点のグループ化により形成されたグループの個数、各グループの実空間上における距離方向の長さ、左右方向の長さおよび各グループ間の距離に基づいて、検出されたものが車線であるか破線であるかを識別することができる。また、検出された車線位置や破線位置の左右の間隔が標準道幅よりも狭ければ、検出されたものが車線の内側に標示された破線であることを識別することができる。
さらに、検出されたものが車線の内側に標示された破線であれば、検出された破線位置から所定量だけ外側に離れた位置を車線位置として検出することができる。また、探索領域を狭めることで、破線の外側の車線を誤検出することなく車線の内側に標示された破線のみを安定して的確に検出することが可能となり、それにより車線位置を確実に検出することが可能となる。
また、検出されたものが車線の外側に標示された破線であれば、次回からの検出では破線を検出しないようにすることで破線の内側の車線のみを安定して検出することが可能となり、車線位置を確実に検出することが可能となる。さらに、検出されたものが車線自体が破線状に標示された破線であれば、検出された破線位置を車線位置とすることで、車線位置を確実に検出することが可能となる。
このように、本発明では、車線の内側に標示された破線、車線の外側に標示された破線および車線自体が破線状に標示された破線を的確に区別して検出することができるため、それぞれに応じて的確に探索領域や検出の基準を変更することが可能となり、自車輌の左右に標示されている車線や破線を安定して的確に検出し、車線位置を確実に検出することが可能となる。
また、車線や破線の自車輌に近いエッジ部分は、車輌のタイヤに踏まれて薄くなっている場合がある。そのような場合でも、本発明に係る車線位置検出装置によれば、破線を検出した際に車線候補点の検出に係る画素の輝度値や輝度微分値の閾値を下げることで車線や破線のエッジ部分を的確に安定して検出することが可能となる。
このようにして、本発明では、車線位置が確実に安定して検出できるため、道路形状の認識や車輌のキープレーン制御等を行う際の基準となる車線位置の情報を確実に安定して供給することが可能となる。
なお、本実施形態では、各種閾値等の変更処理(図20のステップS318)で、状態(3)と状態(1)との判別、すなわち車線の外側に標示された破線であるか車線自体が破線状に標示された破線であるかの判別を、破線の内側に車線があるか否か(図33のステップS608)で判別する場合について述べた。
この他にも、例えば、状態(2)との判別と同様に、今回の検出で自車輌の左右に検出された破線位置同士または破線位置と車線位置との自車輌前方10mの地点における実空間上の間隔を算出し、その間隔が基準道幅よりも所定量以上広いか否かで判別するように構成することも可能である。