JP2833248B2 - ライン検出装置 - Google Patents

ライン検出装置

Info

Publication number
JP2833248B2
JP2833248B2 JP3064789A JP6478991A JP2833248B2 JP 2833248 B2 JP2833248 B2 JP 2833248B2 JP 3064789 A JP3064789 A JP 3064789A JP 6478991 A JP6478991 A JP 6478991A JP 2833248 B2 JP2833248 B2 JP 2833248B2
Authority
JP
Japan
Prior art keywords
white line
line
detected
value
detection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP3064789A
Other languages
English (en)
Other versions
JPH05289743A (ja
Inventor
昌宏 美尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP3064789A priority Critical patent/JP2833248B2/ja
Publication of JPH05289743A publication Critical patent/JPH05289743A/ja
Application granted granted Critical
Publication of JP2833248B2 publication Critical patent/JP2833248B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、車両の自動運転等のた
めに、道路に沿って設けられたガイドラインを検出する
ライン検出装置に関する。
【0002】
【従来の技術】従来より、運転者の負担を軽くするため
に、各種の運転制御装置が車両に搭載されている。この
中でハンドル操作も自動的に行う自動運転が研究されて
おり、通常の自動車においても自動運転ができるような
機構を搭載することが検討されている。
【0003】この自動運転のためには、車両の走路(道
路)に対する位置を常時把握し、車両が走路に沿って走
行するように制御しなければならない。
【0004】そして、この走路の検出の方法として走路
に沿って形成されている白線をテレビカメラによって撮
影し、この白線の位置から車両の走路に対する位置を検
出することが提案されている。
【0005】道路には、通常センターライン、車線を分
割するライン等が設けられており、自動運転のための位
置検出を、白線検出によって行えば、道路側における設
備を非常に簡単なものとできると考えられる。
【0006】例えば、特開昭63−40913号公報に
は、車両に搭載したCCDカメラを用いて、前方の白線
を検出する方法が開示されている。すなわち、この例に
おいては、CCDカメラによって得られた路面の輝度が
所定値以上の部分を白線と判定する。通常の道路はアス
ファルト等の黒い部分に白線が形成されており、白線の
部分の輝度はその他の部分より十分大きいため、これに
よって白線が検出できる。
【0007】
【発明が解決しようとする課題】しかしながら、車両の
走行においては、車両の姿勢が大きく変化する場合もあ
る。そして、このよな場合に、従来の装置では、白線が
視野から外れ、これを見失ってしまう場合がある。
【0008】これを解消するためには、CCDカメラの
視野を広げることが考えられる。しかし、視野角を広げ
ると、複数の車線を有する道路において、複数の白線が
視野に入ることになる。すなわち、一車線の幅が約3.
7mの場合には、4m幅の路面を視野とすれば2本の白
線が写り、8m幅の路面を視野とすれば3本の白線が写
ることになる。そこで、複数の白線の中から自車両が沿
うべき白線を常に判別することが必要となる。
【0009】関連技術 本発明者は、このような問題点を解決するために、特願
平2−294774号において、ライン位置を予測し、
予測範囲のみライン検出処理を行うことを提案した。
【0010】すなわち、今回の検出ライン位置wL,前
回の検出ライン位置wL1、前前回の検出ライン位置w
L0から次式によって次回のライン位置wLLを算出す
る。 wLL=3(wL−wL1)+wL0 そして、この予測ライン位置の前後所定範囲のデータの
みをライン検出処理の対象とする。
【0011】従って、このような予測により、ライン検
出処理の対象データ数を削減でき、かつラインを確実に
検出することができる。
【0012】ところが、このような予測処理を行うと、
車両のピッチングなどによってライン検出位置が大きく
変化した場合に、この影響が大きく予測位置が大きく異
なってしまう場合があった。
【0013】すなわち、図14に示すように道路に窪み
があり、ここにおいて車両のピッチングが生起された場
合には、予測ライン位置が実際のライン位置と大きく異
なることになり、ラインが処理対象範囲から外れてしま
い、ラインが検出できないという問題点があった。な
お、図14においては、検出した車線幅wを表示してい
るが、これは検出車線幅wがピッチングに応じて変化す
るからである。
【0014】発明の目的 本発明は上記問題点を解決することを課題としてなされ
たものであり、ピッチングの影響を最小限とし、かつ効
率的なデータ処理によるライン検出が行えるライン検出
装置を提供することを目的とする。
【0015】
【課題を解決するための手段】本発明に係るライン検出
装置は、車両に搭載され、道路に沿って設けられたガイ
ドラインを検出するライン検出装置であって、所定範囲
の道路の画像を繰返し出力するカメラと、このカメラか
ら出力される一回毎の画像を処理し、ガイドラインを検
出するライン検出手段と、このライン検出手段によって
検出されたライン位置を複数回分記憶するライン位置記
憶手段と、このライン位置記憶手段に記憶されている複
数のライン位置を移動平均することで所定時間における
ラインの平均位置を随時算出して、時間的経過に応じた
複数の平均ライン位置を得る平均ライン位置算出手段
と、この平均ライン位置算出手段によって得られた時間
的経過に応じた複数のライン位置の変化状態から今回検
出のライン位置を予測するライン位置予測手段と、この
ライン位置予測手段によって得られた予測位置に最も近
い検出ラインを選択するライン選択手段と、を有するこ
とを特徴とする。
【0016】
【作用】本発明に係るライン検出装置においては、カメ
ラで得られた一回毎の画像を処理してラインを検出する
が、ライン位置記憶手段に少なくとも複数回分のライン
位置を記憶している。そして、この複数回のライン位置
データを時間的経過に応じて複数移動平均し、時系列の
複数の平均ライン位置を算出する。
【0017】また、この時系列の平均ライン位置から次
回の検出されるラインの位置を予測し、この予測位置に
最も近いラインを選択する。
【0018】従って、カメラで得られた画像中にライン
が複数ある場合においても、自車両が沿うべきラインを
適確に選択することができるとともに、ピッチングなど
による異常なデータの影響を最小限に抑制することがで
きる。
【0019】
【実施例】以下、本発明に係るライン検出装置につい
て、図面に基づいて説明する。
【0020】図1は本発明に係るライン検出装置の構成
を示すブロック図であり、CCDカメラ10を有してい
る。このCCDカメラ10はレンズ12、絞り14から
なる光学系と、一次元に配置された光電変換素子を有す
るCCDリニアセンサ16からなっている。そのCCD
カメラ10は、車両の前方の画像を得ることができる位
置に取り付けられ、CCDリニアセンサ16から出力さ
れる各光電素子毎の輝度に関する情報をシリアル信号と
して出力する。
【0021】そして、このCCDカメラ10には、白線
検出ECU20が接続されている。この白線検出ECU
20はCCDカメラ10から入力される信号を増幅する
と共に波形をなまらせるアンプ22、AD変換器24、
CPU26、CPU26の動作についてのプログラムを
記憶するROM28、CPU26の処理の際に記憶エリ
アとして使用するRAM30、入出力動作のためのI/
O部32からなっている。そして、この白線検出ECU
20によって検出された白線についての情報が車両制御
ECU40に供給され、この車両制御ECU40が車両
の操舵等を制御し、検出した白線に沿った車両の走行が
行われるよう制御する。
【0022】次に、CCDカメラ10における白線検出
の機構について図2に基づいて説明する。
【0023】CCDカメラ10は、そのレンズ12の前
方L1の距離の画像を取り込むように車両に設置されて
いる。そして、レンズ12の焦点距離はfであり、レン
ズ12の後方L2の距離にあるCCDリニアセンサ16
において結像するようになっている。そこで、CCDリ
ニアセンサ16の横幅wにおいて検出できる前方の画像
の幅はWとなる。そこで、レンズ12の前方L1 におい
て、白線がその中心線よりxずれた位置にあれば、CC
Dリニアセンサ16において、この白線が結像される位
置は、一義的に決定される。そして、このCCDリニア
センサ16の幅wにおける素子数をNとし、CCDリニ
アセンサ16における中心からの素子数をIとすれば、
白線の中心からの距離xは次のように示されることとな
る。
【0024】まず、凸レンズ公式より、 1/L1+1/L2=1/f であり、その倍率より、 W=w・L2/L2 である。
【0025】このため、 W=w・(L1+f)/f となり、 x=(W/N)・(N/2−I) となる。
【0026】そこで、白線がCCDリニアセンサ16に
おける何番目の素子において検出されるかを検出すれ
ば、白線の位置xを検出することができる。
【0027】全体フロー 次に、上述のような原理を利用した、白線検出ECU2
0におけるCCDカメラ10からの信号処理(白線検
出)について説明する。
【0028】図3は白線検出処理の全体動作を説明する
フローチャートであり、まず、CCDカメラ10におけ
る露光量が所定範囲に収まるよう露光制御を行う(S
1)。そして、所定の露光制御が行われたCCDカメラ
10からの各素子毎の輝度信号がシリアルデータとして
出力されるため、これをAD変換器24においてデジタ
ルデータに変換する(S2)。ここで、CCDカメラ1
0からのデータの出力はCCDリニアセンサ16の水平
出力シフトレジスタに供給されるクロックによって決定
されているため、このAD変換器24におけるクロック
周波数もこれに同期したものとする。
【0029】そこで、CCDリニアセンサ16における
N個の各素子において得られたそれぞれの輝度信号が、
N個のデジタルデータとしてAD変換器24から順次出
力されることとなる。このデジタル信号はRAM30の
所定の場所に記憶される。
【0030】そして、このようにして得られたCCDカ
メラ10における輝度信号の最大値検出及び平均値計算
を行い、この最大値及び平均値に基づいてしきい値を計
算する(S3)。
【0031】次に、得られたしきい値を利用してAD変
換して得られたN個のデジタルデータをそれぞれ二値化
するとともに、この二値化デ―タの変化状態より、白線
の左右エッジ部を検出する(S4)。そして、検出され
た左右エッジの数から画像端部に白線がかかった場合を
考慮したエッジ補正を行う(S5)。
【0032】このようにして、複数の白線エッジが検出
され、この中から自車両が沿うべき白線を検出するが、
このとき少なくとも前回、前々回の白線位置の変化状態
から今回の白線位置を予測し、予測位置に最も近いもの
を選択する。そして、選択された白線の座標を出力する
(S6)。
【0033】この白線の座標は上述の説明の通り、白線
の中央からの距離に対応しており、このxを車両制御E
CU40に供給することにより、車両制御ECU40が
このxに基づいて操舵制御し、車線(白線)に沿った車
両走行が達成される。
【0034】このようにして、本実施例によれば、複数
検出された白線位置から自車両の沿うべき白線を予測、
選択するため、車両姿勢が大きく変化した場合において
も適確なライン白線検出を行うことができる。
【0035】しきい値算出 本実施例におけるしきい値算出の動作について、図4に
基づいて説明する。
【0036】まず、初期設定として3つの変数である平
均値avb、最大値maxd、AD変換データカウンタ
adcountの3つの変数を0にリセットすると共
に、AD変換して得られた輝度データのRAM30にお
ける先頭アドレス(e000h)を変数Aにセットする
(S101)。なお、ここでセットされた各変数の値
は、RAM30において記憶される。
【0037】次に、adcountが400h(102
4)に至ったか否かを判定する(S102)。これは、
CCDリニアセンサ16における有効な素子数(幅wの
範囲の素子数)、すなわち一度の撮影時niAD変換器
24から出力されるデータの数に対応している。そこ
で、adcountが1024に至ったことで、全デー
タの処理が終了したことを判定できる。
【0038】adcountが1024以下であった場
合には、データの処理がまだ終了していないため、変数
bc,ax,upに、次のようなデータを入力する(S
103)。
【0039】 bc=A,ax=adcount,up=bc+ax ここで、変数upにはCCDリニアセンサ16で得られ
た1024の輝度信号が格納されるRAM30における
アドレスが順次指定されることとなる。そして、この変
数upで指定されたアドレスのデータを読み出し、これ
を変数DATAの値として入力する(S104)。
【0040】次に、最大値の検出のために、DATAが
最大値maxdより小さいか否かを判定する(S10
5)。そして、DATAがmaxdより大きい場合に
は、これを最大値とすべきであり、変数maxdにDA
TAを入力して、この値を更新する(S106)。一
方、DATAが最大でない場合には、最大値maxdを
更新する必要はないため、S106を通らずに、次の処
理に移る。
【0041】次に、平均値avb算出のために、DAT
Aの値をデータ数1024で除算した値を順次加算する
(S107)。そして、adcountに1を加算し
(S108)、S102に戻る。
【0042】このため、最大値、平均値の算出(S10
6,S107)をデータ数が1024に至るまで繰り返
こととなり、全て(1024個)のデータについての処
理が終わった場合に、S102においてYESとなり、
しきい値thL0 を次式によって算出する(S10
9)。
【0043】thL0=(avb+maxd)/2 このようにして、本実施例においては、CCDリニアセ
ンサ16によって得られた全ての素子におけるデータの
平均値と最大値の中間の値がしきい値thL0となる。
【0044】二値化、エッジ検出処理 次に、図5及び図6に基づいて、二値化処理、エッジ検
出処理について説明する。
【0045】まず、次のように各変数に初期値をセット
する。(S201)。
【0046】白線部継続カウント許可フラグcok1=
0,路面部継続カウント許可フラグcok2=0,白線
継続カウンタfc1=0,路面継続カウンタfc2=
0,白線左エッジ候補座標wn01=0,白線右エッジ
候補座標wn02=0,白線検出フラグfw1=0,白
線右エッジカウンタwc1=0,路面検出フラグfw2
=1,白線左エッジカウンタwc2=0 また、上述のしきい値算出の場合と同様に、変数Aに輝
度データの先頭アドレス(e000h)を入力し(S2
02)、1024個のデータのナンバーを表すAD変換
データカウンタadcountを0にセットする(S2
03)。
【0047】まず、adcountが1024(400
h)に至り、全データの処理が終了したかを判定する
(S204)。そして、処理が終了していない場合に
は、変数bc,ax,upにA,adcount,bc
+axの値を代入するとともに、upで決定されるアド
レスの輝度データの値を変数DATAに入力する(S2
05)。
【0048】次に、二値化処理を行うが、まず変数DA
TAとしきい値thLを比較する(S206)。
【0049】ここで、このthLは上述のS110で算
出されたthL1とは異なる。すなわち、このしきい値
thLは今回の処理において算出されたしきい値ではな
く前回以前の処理において算出されたものである。
【0050】そして、DATA≦thLの場合には路面
部であるため、白線部の継続検出数を表わす変数fc1
=0,白線左エッジの検出座標を示す変数wn01=
0,路面検出を示す変数fw2=1にセットする(S2
07)。
【0051】また、cok1が0であるかを判定する
(S208)。cok1は、後述するように黒から白
(DATA≦thL→DATA>thL)に変化した場
合に1となり、白の状態が2つ続いた場合には、0に戻
るフラグである。このため、黒を検出した際(DATA
≦thL)にcok1が0でないということは、前回の
白(DATA>thL)検出が1回で終了したことを示
している。そして、白の検出が1回で終了したというこ
とは、路面の中に白線でない白い点などが存在したもの
と考えられ、この時に右エッジを検出すべきではない。
そこで、S208において、cok1が0でなかった場
合にはcok1=0,fw1=0として(S209)、
白を検出したことについてのフラグを0にリセットする
とともに、adcountに1を加算して(S21
0)、S204に戻る。
【0052】一方、cok1=0であった場合には、前
回の検出結果が上述のような異常な状態でなかったた
め、次のようにして右エッジを検出する。まず、fw1
=1か否かを判定する(S211)。fw1はS201
において初期設定としては0にセットされており、白線
を検出した際、すなわちDATA>thLの場合に1に
セットされるものである。従って、S206においてデ
ータが≦thLであり、S208においてfw1が1で
あるということは、白線の右エッジを検出したことを意
味している。そこで、S211においてfw1=1であ
れば、路面の検出が検出されたため、fw1=0とする
とともに,右エッジの検出位置を示す変数wn02=a
dcount,路面継続カウント許可フラグcok2=
1とする(S212)。
【0053】ここで、エッジを検出した場合にそのad
countの値をそのままエッジ位置として記憶しても
よいが、この例においては、右エッジを検出した後、次
のデータも白線でない場合にのみその位置を右エッジと
判定し、誤判定の発生を抑制する。このために、路面継
続カウント許可フラグcok2=1としている。
【0054】次に、路面継続許可フラグcok2が1か
否かを判定する(S213)。cok2が1であった場
合には、路面継続カウンタfc2に1を加算し(S21
4)、cok2が1でなかった場合には、この加算は行
わず、次にfc2が2であるか否かを判定する(S21
5)。このfc2はS214を2回続けて通った場合、
すなわちしきい値thL以下のデータが2つ続いた場合
に2となっている。そこで、fc2が2である場合に
は、右エッジカウンタwc2で特定される白線右エッジ
座標を示す配列変数wn2[wc2]に上述のS212
でセットされた白線右エッジ候補座標wn02の値を記
憶する。また、変数cok2,fc2を0にリセットす
ると共に、右エッジカウンタwc2に1を加算する(S
216)。従って、次回の右エッジ検出の場合には、w
c2が1多い数となっている。このため、配列変数wn
2に次の右エッジの位置が記憶できることとなる。S2
15においてfc2<2の場合及びS216の処理をお
えた場合には、右エッジについての処理が終了したた
め、adcountに1を加算し(S210)、S20
4に戻る。
【0055】一方、S206においてDATA>thL
と判定され、白線部分を検出した場合には、次のように
して左エッジの検出を行う。
【0056】まず、路面継続カウンタfc2,左エッジ
候補座標wn02を0にリセットし、白線検出フラグf
w1を1にセットする(S217)。すなわち、fc2
は路面のデータが続いた数を示す変数であるため、白線
についてのデータが検出した場合に0にリセットする。
また、wn02は右エッジの候補座標についての変数で
あるが、左エッジの検出のル―プに入ったためここでリ
セットする。さらに、fw1は白線部を検出したことを
示すフラグであり、ここでfw=1とする。
【0057】また、cok2が0であるかを判定する
(S218)。cok2は、前述したように白から黒
(DATA>thL→DATA)に変化した場合に1と
なり(S212)、黒の状態が2つ続いた場合には、0
に戻る(S216)フラグである。このため、S206
において白を検出した際(DATA>thL)にcok
2が0でないということは、前回の黒(DATA≦th
L)検出が1回で終了したことを示している。そして、
黒の検出が1回で終了したということは、白線の中にか
すれている部分などが存在したものと考えられ、この時
に左エッジを検出すべきではない。そこで、S218に
おいて、cok2が0でなかった場合にはcok2=
0,fw2=0として(S219)、黒を検出したこと
についてのフラグを0にリセットするとともに、adc
ountに1を加算して(S210)、S204に戻
る。
【0058】一方、cok1=0であった場合には、前
回の検出結果が上述のような異常な状態でなかったた
め、次のようにして右エッジを検出する。まず、fw2
=1か否かを判定する(S216)。このfw2は、路
面を検出した時に1にセットされるものであるため、こ
こにおいてfw2=1であることにより、路面より白線
に移ったこと、すなわち左エッジを認識する。そして、
路面を検出したことを示す変数fw2を0にリセット
し、左エッジ候補座標wn01にadcountの値を
入力し、左エッジ検出カウンタcok1を1にセットす
る(S221)。
【0059】そして、次に白線継続カウント許可フラグ
cok1及び白線継続カウンタfc1を用いて、白線部
が2つ続いて右エッジを検出されたか否かを判定する。
【0060】このために、まずcok1が1であるかを
判定する(S222)。そして、cok1が1であれ
ば、左エッジを検出したしたため、左エッジ検出時の白
線検出数を示す左エッジカウンタfc1に1を加算する
(S223)。次に、fc1が2であるか否かを判定し
(S224)、2であれば、路面から白線に移り、白線
のデータが2つ続いたことを意味しているため、S22
1で入力された候補座標wn01の値をwc1で特定さ
れる配列変数wn1[wc1]に入力する。これによっ
て、検出された白線右エッジの位置が記憶される。ま
た、この入力がなされたため、フラグcok1=1,f
c1=0にリセットすると共に、右エッジの数を示す変
数wc1に1を加算する(S225)。そして、adc
ountに1を加算し(S210)、S204に戻る。
【0061】このような動作adcount=1024
まで繰り返し、右エッジ及び左エッジの位置を検出した
数だけ記憶することができる。また、その検出した数
は、wc1,wc2に記憶される。そして、S204に
おいてadcountが1024に至ったことを判定し
た場合には、全データについての白線エッジ検出が終了
したため、二値化、白線エッジ検出の動作を終了し、検
出エッジ補正の処理を行う。
【0062】検出エッジ補正 次に、図7に基づいて、検出エッジ補正について説明す
る。上述のようにして、左右エッジの位置を配列変数w
n1[wc1]・wn2[wc2]に入力した場合に
は、wc1,wc2より1を減算する。これは、上述の
エッジ検出の処理の際にwc1,wc2に1を加算して
いる(S213,S221)ため、これを実際に配列変
数に使用されたwc1,wc2にその値を戻すためであ
る(S401)。
【0063】そしてwc1とwc2を比較する(S40
2)。wc1<wc2の場合には、左エッジの数が右エ
ッジの数より小さいことを意味しており、カメラの画像
の左端に白線がかかっていることを意味している。この
ため、この左端に左エッジを挿入することで、画面の左
端にかかった白線を認識することができる。
【0064】そこで、変数jにwc1の値を代入し(S
403)、このjの値を1と比較する(S404)。そ
して、j>1の場合には変数axにjの値を代入し、こ
のaxによって特定される配列変数wn1[ax]の値
を変数upに代入する(S405)。次に変数axにj
+1を代入し、このaxによって特定される配列変数w
n1[ax]に上述のS405で得られた変数upの値
を入力する(S406)。これによってwn1[j]の
値がwn1[j+1]の値に変換される。そして、jの
値を1減算し(S407)、S404に戻る。
【0065】このようにしてjが1になるまで、この処
理を繰り返すため、配列変数wn1[wc1]に入力さ
れていた値がそれぞれwn1[wc1+1]に変換され
る。即ち、wn1の値としてn個の値があり、これがw
n1[1]〜wn1[n]の値として記憶されていた場
合、この処理によりwn1[2]〜wn1[n+1]の
値に変換される。
【0066】次に、wn1[1]に0の値を代入する
(S407)。これによって、配列変数wn1の値とし
て1つ強制的に挿入され、左エッジが検出できなかった
場合にも、これが挿入される。
【0067】一方、S402において、wc1≧wc2
であった場合には、右エッジが欠けているか、両者が同
数である。そこで、次にwc2とwc1を比較する(S
409)。ここで、wc2≧wc1であった場合には、
両者が等しいことを意味しており、補正処理は不要であ
る。
【0068】一方、wc2の方がwc1より小さかった
場合には、右エッジ挿入の補正を行わねばならない。そ
こで、wc2に1を加算し、このwc2によって特定さ
れる配列変数wn2[wc2]に1023を強制挿入す
る。これによって右エッジとして、視野の右端の値が挿
入されることとなる。
【0069】このようにして、左エッジが欠けた場合に
は、カメラ視野の左端を左エッジの値として入力し、ラ
インが右端にかかり右エッジが欠けた場合には、カメラ
視野の右端である1023の値が右エッジの位置として
入力される。
【0070】白線座標出力・予測値算出 次に、白線座
標の出力及び次回の白線位置の予測について図8〜図1
1に基づいて説明する。上述のようにして、エッジ検出
を行った場合には、これより白線を検出すると共に、次
回の白線検出位置の予測を行う。ここで、まず制御開始
当初か否かを示す変数scが0であるかを判定し(S3
00)、sc=0の場合には、制御開始当初であるた
め、CCDカメラの中心付近の白線を自車が沿うべき白
線とするために、後述するCCD中心優先法による処理
を行う。
【0071】そして、sc≠0の場合には、通常の白線
検出の処理を行うため、wc1またはwc2が0か否か
を判定する(S301,S302)。このwc1及びw
c2は白線位置検出の数を表すものであり、いずれかが
0であれば、白線検出ができなかったことを示してい
る。そこで、この場合にはエラー処理のループに入る。
次に、wc1とwc2を比較する(S303)。そし
て、両者が等しくない場合には、右エッジの数と左エッ
ジの数が相違しており、正確な白線検出が行われなかっ
たものと判断し、エラー処理のループに進む。
【0072】一方、wc1=wc2であった場合には、
次のようにして白線の位置を検出する。すなわち、検出
した白線候補の数を表す変数knを0にセットし(S3
04)、何番目の白線であるかを示す変数jを1にセッ
トする(S305)。そして、このjと検出された白線
の数wc1とを比較する(S306)。jがwc1以下
であれば、ここまでの処理が正常であったものと判断さ
れ、白線の左右エッジ座標よりj番目の白線の中央座標
hLと白線の幅RP2を次式によって算出する(S30
7)。
【0073】 hL=(wn1[j]+wn2[j])/2 RP2=wn2[j]−wn1[j] 次に、算出された白線位置hLが所定の範囲内にあるか
を判定する。即ち、前回以前の処理ループにおいて算出
され、記憶されている予測白線位置wcの周辺の所定の
範囲内(±moff)にあるかを次のようにして判定す
る。
【0074】まず、変数ax=wc−moffとして
(S308)、このaxが0か否かを判定する(S30
9)。axが0以上であれば、axはカメラ視野範囲に
あるため、そのままとするが、ax<0であればax=
0とする(S310)。次に、axを検出した白線位置
hLと比較する(S311)。hL<axであった場合
には、予測範囲外であるためこの白線位置の記憶は行わ
れない。
【0075】一方、hL≧axであった場合には、この
hLが所定の上限値以下であるかを判断しなければなら
ない。そこで、bc=wc+moffとしてbcに範囲
の上限をセットし(S312)、白線位置hLとbcを
比較する(S313)。
【0076】そしてhL≦bcであった場合には、hL
が所定範囲内(ax≧hL≧bc)にあった為、kn=
kn+1(S314)、wLk[kn]=hL(S31
5)、wLd[kn]=rp2(S316)として、推
定範囲内において検出した白線の数によって特定される
白線座標、白線の幅を配列変数wLk[kn]及びwL
d[kn]にセットする。
【0077】そして、次の白線の判定を行うために、j
=j+1として(S317、S316)に戻る。なお、
S311、S313において、hL<axまたはhL>
bcと判定された場合には、上述の白線位置、白線幅の
セットは行わず、直接S317に進む。
【0078】このような処理を検出したすべての白線に
ついての処理が終わるまで(j>wc)繰り返し、所定
の推定範囲内にある白線の位置及び幅を配列変数wLk
[kn]及びwLd[kn]にセットする。
【0079】このようにして、予測範囲内の白線候補を
検出した場合には、これらの中から推定値wcに1番近
いものを選択する。まず、knが0か否かを判定するこ
とにより推定範囲内に白線があったか否かを判定し(S
401)、knが0でなかった場合には、推定値wcに
最も近い位置にある白線の番号を表す変数pitに0を
セットする(S402)。また、推定範囲内において最
初に検出された白線位置wLk[1]の値をaxに代入
すると共に(S403)、このaxの値をhLに代入す
る(S404)。
【0080】次に、knが1であるかを判定し(S40
5)、これが1であった場合には、白線の選択が不要な
ため、次の処理に進むが、これが1でなかった場合に
は、次のような白線選択の処理を行う。
【0081】まず、推定値wcに最も近い白線位置が入
力される変数wLmに最初の白線位置ax(wLk
[1])を代入する(S406)。そして、ax=ax
−wcとして、axに推定位置からの距離を一旦入れて
おき(S407)、この差axが0以下であった場合に
はaxに0をセットし(S408,S409)、得られ
た推定白線位置からの距離を変数difに代入する(S
410)。
【0082】次に、この差difが最も小さい白線位置
をwLmに代入するために、次のような処理を行う。す
なわち、j2をセットし(S411)、このjがkn以
下であるかを判定する(S412)。jがkn以下であ
れば、次の白線候補があるため、ax=wLk[j]と
して次の白線候補の座標をaxに代入し(S413)、
このaxを変数hLに代入する(S414)。そして、
今回の白線位置と予測値の差ax=ax−wcを求め
(S415)、この差axが0以下であった場合にはこ
れを0にセットし(S416,S417)、このように
して求められたaxと前回までに求められている差di
fを比較する(S418)。そして、ax<difであ
った場合には、今回の白線位置の方がこれまでに検出し
た他の白線位置よりも推定値wcに近いため、dif=
axとしてdifをより小さな値に変更し(S41
9)、この時の白線位置座標hLをwLmに代入するこ
とによってwLmにその時点で最も推定値wcに近い白
線位置座標に更新し(S420)、その時のjをpit
に代入して、このpitを最も推定値wcに近い白線番
号に更新する(S421)。
【0083】このように、白線位置の更新を行った場
合、またはS418でax≧difであり、更新の必要
がなかった場合には、jに1を加算し(S422)、S
412に戻る。この処理をj>knになるまで繰り返す
ことにより、推定範囲内において検出した白線候補の中
から推定値wcに最も近い白線の位置を検出することが
でき、この値がwLmにセットされている為、hL=w
Lmとする(S412)。これによって、hLに推定値
wcに最も近い白線の中心位置座標が入力されることと
なる。
【0084】次に、上述のようにして検出された白線に
ついて、その幅が大き過ぎないかを判定する。すなわ
ち、ax=wLd[pit]とし(S501)、このa
xが224(70h)以上か否かを判定する(S50
2)。白線の幅がCCDの数として224以上であった
場合には、誤検出とみなされるため、hL=wcとし
(S502)、検出した白線位置に代え、推定値wcを
今回検出の白線位置座標とする(S502)。また、S
502において、ax<70hであった場合には、正常
な白線検出が行われたのであり、このようなhLの書き
替えは行わない。
【0085】そしてax=hLとし(S503)、ax
=ax−w1として(S504)、前回検出の白線位置
と今回検出の白線位置の差を求める。また、このように
して求めた差がマイナスであれば、これを0に戻し(S
505,S506)、この値が160以下であるかを判
定する(S507)。前回の検出値と今回の検出値が大
きく離れる(160以上)ことは、現実には考えられ
ず、この場合にはエラーとし、所定範囲内の場合にのみ
次回の白線位置予測のループに進む。
【0086】推定値wcの算出 まず、今回検出した白線座標hLと過去2回の白線座標
wL、w1を移動平均し最新の平均白線位置座標を算出
する(S601)。そして、このようにして算出された
最新の平均位置座標を含め、移動平均座標のデータを1
つ送る(S602)。これによって、ws0、ws1、
wsLにそれぞれ前々回、前回、今回の移動平均座標が
入力されることとなる。
【0087】また、検出した白線位置座標について送り
も行う(S603)。これによって、w0、w1、wL
にそれぞれ前々回、前回、今回の検出した白線位置座標
が入力されることとなる。
【0088】そして、上述の3つの移動平均座標ws
0、ws1、wsLを用いて、次回の白線座標の推定値
wcを次式によって算出する。
【0089】wc=3×(wsL−ws1)+ws0 これは図10に模式的に示す。すなわち、w1〜w3の
結果によってws0が算出され、w2〜w4の結果によ
ってws1が算出され、w3〜w5の値によってwsL
が算出される。そしてこれらws0〜wsLの結果を用
いてwcが算出されこれが磁界の白線座標w6を検出す
るための推定値wcとなる。
【0090】ここで、3つの移動平均値から次回の白線
位置座標の推定値を算出する算出式について図11に基
づいて説明する。
【0091】白線検出ECU20における1回の処理ル
―チンに要する時間をΔtとし、横軸に時間、縦軸にC
CDカメラ10によって検出した白線位置をとる。そし
て、図11(A)に示すように車両が左にカ―ブした場
合について考える。
【0092】処理サイクルΔt毎に得られた5つの検出
位置w1,w2,w3,w4,w5より、次の演算を行
い、今回移動平均位置wsL、前回位置ws1、前々回
位置ws0が得られる。
【0093】ws0=(w1+w2+w3)/3 ws2=(w2+w3+w4)/3 ws3=(w3+w4+w5)/3 そして、前々回位置→前回位置の差Δ1、前回→今回位
置の差Δ2、今回→次回の予測される差Δ3とすると、
Δ2→Δ3の変化量は、Δ1→Δ2の変化量と同一であ
ると推定するのがよいと考えられる。すなわち、処理サ
イクルΔtは微小であり、時間Δtの前後においては、
操舵量は同一と置いても考えられる。そして、操舵量が
同一であれば、白線検出位置の変化量は同一だからであ
る。このため、図11(B)に示すように、横軸に時間
を取り縦軸に差Δ1〜Δ3をとれば、直線Δ1とΔ2を
結ぶ直線上にΔ3が位置すると推定されることになる。
【0094】従って、Δ3は次のように表される。
【0095】 Δ3={(Δ2−Δ1)/Δt}・Δt+Δ2=Δ2−Δ1+Δ2 そこで、wcは次のように表され、この式を利用して、
wcを算出する(S611)。
【0096】 wc=wsL+Δ3=wsL+2・Δ2−Δ1 =wsL+2(wsL−ws1)−(ws1−ws0) =3(wsL−ws1)+ws0 このようにして、次回の処理ル―プにおいて用いる予測
白線位置wLLを算出することができ、これを利用し
て、白線の選択をすることができるため、常に正確な白
線位置検出を行うことができる。
【0097】そして、算出した推定値wcが所定の範囲
(255以下)であるかを判定して実際のwcを決定す
る(S604〜S606)。
【0098】一方、上述のようにして、wLに今回求め
た白線位置座標が入力されているわけであるが、この値
は16ビットの値である。そこで、これを8ビットのデ
ータに変換すると共に、車線の中心位置を表わす値に換
算する(S607,S608)。そして、正常な白線検
出が行われたため、エラーカウンタを0にクリアし(S
609)、換算結果の白線位置座標wLcを出力する
(S610)。
【0099】エラー処理 一方、上述の処理において、白線検出が正常に行われな
かった場合には、次のようにしてエラー処理を行う。
【0100】すなわち、図12に示すように、まず検出
または算出できなかった今回の移動平均値wsL、今回
の検出位置wL、前回の白線位置w1、予測白線位置w
cについて、前回算出した予測値ws1を代入する(S
701)。そして、この値に基づいてwLcを算出する
と共に(S702,S703)、エラーカウンタに1を
加算する(S704)。そして、エラーカウンタの値が
16に達するか否かを判定し、16以下であれば、wL
cを出力すると共に(S706)、S610におけるw
Lcのシリアル出力に戻る。一方、エラーカウンタが1
6以上となった場合には、エラーの続く回数が所定以上
とみなし、エラーコードを出力すると共に(S70
7)、エラーカウンタを0にクリアする(S708)。
【0101】中心優先法 次に、ライン検出装置の動作開始時には、複数映った白
線の中から自車両が沿うべき白線を選択しなければなら
ない。そこで、ライン検出装置の動作開始時には、CC
Dリニアセンサの中心座標付近の白線を選択することと
する。これは、通常の場合ライン検出の動作開始はドラ
イバが直進時において指示することが多いと考えられる
からである。このCCD中心優先法の動作フローについ
て図13に基づいて説明する。
【0102】まず、sc=sc−1として中心優先法を
行うべき回数を1減算しておく(S801)。ここで、
この変数scについては、初期設定として、6程度の値
にセットしておく。これによって6回の処理ループ(Δ
t×6の時間)については上述の推定値による方法では
なく、中心付近の白線を検出することが優先となる。次
に、jに1をセットし(S802)、jがwc1より大
きいか否かを判定する(S803)。このwc1は、左
エッジの検出数(右エッジの検出数も等しい)であり、
j≦wc1の場合には、次式によって白線の中心座標を
検出する(S804)。
【0103】 ax=(wn1[j]+wn2[j])/2 そして、このようにして算出した白線位置axをsuL
と比較する。このsuLはCCD画素数の約半分くらい
の値にセットしておく。そして、このsuLが最小の白
線を探すための下限値となっている。そこで、suLよ
りaxの方が小さい場合にはjに1を加算し(S80
6)、一方、ax≧suLであった場合には、ws0=
ws1,ws1=wsL、wsL=axとして(S80
7)、移動平均の値を更新すると共に、w0=w1、w
1=wL、wL=axとして(S808)、白線座標に
ついてのデータを更新する。
【0104】このようにして、中心優先法のループにい
る間は、移動平均は行わず、移動平均値についての変数
にも白線検出値を入力しておく。
【0105】そして、wLb=wL/8として今回の検
出白線位置を8ビットの値に換算して変数wLbに代入
する(S810)。更に、wLc=wLb+coff
(S811)として、wLcに白線位置から車線幅の1
/2離れた車線中心位置の座標値を入力する。
【0106】一方、S803においてjがwc1より大
きくなった場合には、白線がもう検出されていないた
め、suL=suL−8としてsuLの値を減少し(S
812)検出範囲を広げると共に、sc=sc+1とし
てscの値を元に戻した後(S813)wLc出力する
(S814)。
【0107】このようにしてCCD中心優先法の場合に
は、検出した白線座標から中心付近のものを選択してこ
れを白線座標とする。
【0108】
【発明の効果】以上説明したように、本発明に係るライ
ン検出装置によれば、過去の検出白線位置を移動平均し
たものから、次回の白線位置を予測し、この予測結果に
応じてライン検出処理を行う対象を限定するため、処理
効率が上昇し、高速の処理が可能となるとともに、自車
両が沿うべきラインを見失うことを防止することができ
る。
【図面の簡単な説明】
【図1】本発明に係るライン検出装置の一実施例を示す
構成ブロック図である。
【図2】CCDカメラにおける位置検出を説明するため
の説明図である。
【図3】白線検出ECUにおける処理動作を説明するた
めのフローチャートである。
【図4】しきい値計算の動作を示すフローチャートであ
る。
【図5】エッジ検出、二値化処理の動作を示すフローチ
ャートである。
【図6】エッジ検出、二値化処理の動作を示すフローチ
ャートである。
【図7】エッジ補正の動作を示すフローチャートであ
る。
【図8】白線座標出力、白線位置予測の動作を示すフロ
ーチャートである。
【図9】白線座標出力、白線位置予測の動作を示すフロ
ーチャートである。
【図10】白線座標出力、白線位置予測の動作を示すフ
ローチャートである。
【図11】白線位置予測の手法を示す説明図である。
【図12】エラー処理の動作を示すフローチャートであ
る。
【図13】CCD中心有線方の動作を示すフローチャー
トである。
【図14】白線位置予測の例を示す説明図である。
【符号の説明】
10 CCDカメラ 20 白線検出ECU 24 AD変換器 26 CPU

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】車両に搭載され、道路に沿って設けられた
    ガイドラインを検出するライン検出装置であって、 所定範囲の道路の画像を繰返し出力するカメラと、 このカメラから出力される一回毎の画像を処理し、ガイ
    ドラインを検出するライン検出手段と、 このライン検出手段によって検出されたライン位置を複
    数回分記憶するライン位置記憶手段と、 このライン位置記憶手段に記憶されている複数のライン
    位置を移動平均することで所定時間におけるラインの平
    均位置を随時算出して、時間的経過に応じた複数の平均
    ライン位置を得る平均ライン位置算出手段と、 この平均ライン位置算出手段によって得られた時間的経
    過に応じた複数のライン位置の変化状態から今回検出の
    ライン位置を予測するライン位置予測手段と、 このライン位置予測手段によって得られた予測位置に最
    も近い検出ラインを選択するライン選択手段と、 を有することを特徴とするライン検出装置。
JP3064789A 1991-03-28 1991-03-28 ライン検出装置 Expired - Fee Related JP2833248B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3064789A JP2833248B2 (ja) 1991-03-28 1991-03-28 ライン検出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3064789A JP2833248B2 (ja) 1991-03-28 1991-03-28 ライン検出装置

Publications (2)

Publication Number Publication Date
JPH05289743A JPH05289743A (ja) 1993-11-05
JP2833248B2 true JP2833248B2 (ja) 1998-12-09

Family

ID=13268354

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3064789A Expired - Fee Related JP2833248B2 (ja) 1991-03-28 1991-03-28 ライン検出装置

Country Status (1)

Country Link
JP (1) JP2833248B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006345626A (ja) * 2005-06-08 2006-12-21 Sumitomonacco Materials Handling Co Ltd 駆動輪速度補正方法及び装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3373773B2 (ja) * 1998-01-27 2003-02-04 株式会社デンソー レーンマーク認識装置、車両走行制御装置および記録媒体
US6591000B1 (en) 1998-04-21 2003-07-08 Denso Corporation Apparatus and method for preprocessing a picked-up image, lane mark recognizing system, related vehicle traveling control system, and recording media
JP2001180631A (ja) * 1999-12-22 2001-07-03 Sato Corp ラベルプリンタおよびラベル位置検出方法
JP2002055718A (ja) * 2000-08-11 2002-02-20 Meidensha Corp 無人車位置検出方式
JP4541609B2 (ja) 2001-09-06 2010-09-08 富士重工業株式会社 停止線認識装置、及び、その停止線認識装置を用いた車両用運転支援装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006345626A (ja) * 2005-06-08 2006-12-21 Sumitomonacco Materials Handling Co Ltd 駆動輪速度補正方法及び装置

Also Published As

Publication number Publication date
JPH05289743A (ja) 1993-11-05

Similar Documents

Publication Publication Date Title
US5424952A (en) Vehicle-surroundings monitoring apparatus
JP4028135B2 (ja) 物体検出装置
US5530420A (en) Running guide apparatus for vehicle capable of keeping safety at passing through narrow path and the method thereof
US5410346A (en) System for monitoring condition outside vehicle using imaged picture by a plurality of television cameras
JPH04313199A (ja) 車間距離検出装置
JP2833248B2 (ja) ライン検出装置
US5303019A (en) Inter-vehicle distance measuring device
JPH07119606B2 (ja) 追尾式車間距離検出装置
JPH05242399A (ja) 車間距離検出装置
JPH1047954A (ja) 複眼カメラによる車間距離計測装置
JPH10267618A (ja) 距離計測装置
JP2833249B2 (ja) ライン検出装置
JPH04299799A (ja) ライン検出装置
JP3762406B2 (ja) 車輌用走行案内装置
JP2003252149A (ja) 車線認識画像処理装置及びその処理を実行させるためのプログラム
JP2635232B2 (ja) 車間距離検出装置
JP4528320B2 (ja) 物体検出装置
JP3094758B2 (ja) 車両用画像センサ
JPH0754253B2 (ja) 追尾式車間距離測定装置
JPH04184603A (ja) 案内ライン検出装置
JPH03170012A (ja) 追尾式車間距離計
JPH04167007A (ja) ライン検出装置
JPH1148885A (ja) 車両用距離測定装置
JP3822275B2 (ja) 移動体用画像センサおよび移動体用走行制御装置
JPH10138851A (ja) 車両用障害物検出装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081002

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081002

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091002

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees