(57)【特許請求の範囲】
【請求項１】
白線を検出する機能を備えた電子装置であって、
路面を撮像する撮像手段と、
前記撮像手段により撮像された画像データの輝度情報と第１のしきい値とを比較することにより画素間の輝度差が第１のしきい値以上となるエッジを含む白線候補を抽出する抽出手段と、
前記白線候補が他の白線候補と隣接するか否かを判定する判定手段と、
前記白線候補が他の白線候補に隣接すると判定された場合、白線候補の隣接する側の輝度差を、第２のしきい値よりも大きな輝度差に補正する補正手段と、
前記白線候補と第２のしきい値とを比較することにより前記白線候補の中から第２のしきい値以下の非白線候補を除去する除去手段と、
前記非白線候補が除去された白線候補に基づき白線を検出する検出手段とを有し、
第１のしきい値は、第２のしきい値よりも輝度差の大きい画素を抽出する、電子装置。
【請求項２】
前記白線候補の一方の側が他の白線候補に隣接するとき、前記補正手段は、前記白線候補の隣接する側の輝度差を、隣接しない側の輝度差に置換する、請求項１に記載の電子装置。
【請求項３】
前記白線候補の両側が他の白線候補に隣接するとき、前記補正手段は、前記白線候補の両側の輝度差を、複数の白線候補の中の白線候補に隣接しない側の輝度差に置換する、請求項１に記載の電子装置。
【請求項４】
前記抽出手段は、画像データを水平方向に走査する走査手段を含み、
前記補正手段は、前記走査手段により１つの水平ラインが走査される毎に、水平ラインの白線候補の輝度差を補正する、請求項１ないし３いずれか１つに記載の電子装置。
【請求項５】
前記抽出手段はさらに、前記走査手段によって走査された複数の水平ライン群をグループ化する手段を含み、前記補正手段は、グループ化された後に各水平ラインの白線候補の輝度差を補正する、請求項４に記載の電子装置。
【請求項６】
前記検出手段は、二重の白線または三重の白線を検出する、請求項１に記載の電子装置。
【請求項７】
路面を撮像する撮像手段を備えた電子装置が実行する白線検出プログラムであって、
前記撮像手段により撮像された画像データの輝度情報と第１のしきい値とを比較することにより画素間の輝度差が第１のしきい値以上となるエッジを含む白線候補を抽出するステップと、
前記白線候補が他の白線候補と隣接するか否かを判定するステップと、
前記白線候補が他の白線候補に隣接すると判定された場合、前記白線候補の隣接する側の輝度差を、第２のしきい値よりも大きな輝度差に補正するステップと、
前記白線候補と第２のしきい値とを比較することにより前記白線候補の中から第２のしきい値以下の非白線候補を除去するステップと、
前記非白線候補が除去された白線候補に基づき白線を検出するステップとを有し、
第１のしきい値は、第２のしきい値よりも輝度差の大きい画素を抽出する、白線検出プログラム。
【請求項８】
路面を撮像する撮像手段を備えた電子装置における白線検出方法であって、
前記撮像手段により撮像された画像データの輝度情報と第１のしきい値とを比較することにより画素間の輝度差が第１のしきい値以上となるエッジを含む白線候補を抽出するステップと、
前記白線候補が他の白線候補と隣接するか否かを判定するステップと、
前記白線候補が他の白線候補に隣接すると判定された場合、前記白線候補の隣接する側の輝度差を、第２のしきい値よりも大きな輝度差に補正するステップと、
前記白線候補と第２のしきい値とを比較することにより前記白線候補の中から第２のしきい値以下の非白線候補を除去するステップと、
前記非白線候補が除去された白線候補に基づき白線を検出するステップとを有し、
第１のしきい値は、第２のしきい値よりも輝度差の大きい画素を抽出する、白線検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車線の白線を検出する機能を備えた電子装置に関し、特に、二重の白線や三重の白線を精度良く検出する方法に関する。
【背景技術】
【０００２】
車両に搭載されたカメラで撮像した路面画像に基づき、道路の白線（レーンマーク）を検出する技術が存在する。例えば、特許文献１では、路面画像中の輝度が「暗」から「明」に変化するエッジ点（以下、正のエッジ点と呼ぶ）と、輝度が「明」から「暗」に変化するエッジ点（以下、負のエッジ点と呼ぶ）を検出し、これらのエッジ点に対するピークをペアとして探索することにより白線（レーンマーク）を検出している。特許文献２では、正のエッジ点に関し、画像内の平均輝度をしきい値として、左側の画素の輝度がしきい値未満で右側の画素の輝度がしきい値以上の画素をエッジ点として抽出し、左側の画素との輝度の差がしきい値以上となる画素をエッジ点として抽出する方法を開示している。特許文献３では、正のエッジ点と負のエッジ点間を、レーンマークを構成する水平ラインとして取り出し、それらをグループ化し、グループ内の水平ラインの中点、あるいは最少二乗法で求められた線をレーンマークとして検出している。
【０００３】
さらに特許文献４では、撮像手段によって撮像された原画像に基づき作成された２値化画像の濃度平均値を利用した道路の白線認識方法を開示している。特許文献５では、周囲の構造物やノイズの影響を受けずに、線上マークの検出に係る信頼性を向上させた、線上マーク検出方法および装置を開示している。こうして検出された白線情報は、例えば、レーン逸脱を警報するシステムや自動運転システムに利用される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−８５９９９号公報
【特許文献２】特開２００４−３１０５２２号公報
【特許文献３】特開２０１３−１８６６６０号公報
【特許文献４】特開平１１−１６７６２４号公報
【特許文献５】特開２０００−５７３５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１ないし３等に記載のエッジ点検出方法を用いれば、例えば、図１９（Ａ）に示すような、重複していない単一の白線Ｌであれば、画像を水平方向に走査したときに得られる白線Ｌと路面Ｒとの輝度差Ｐが十分であり、正および負のエッジ点Ｚを正確に抽出することができる。
【０００６】
しかし、図１９（Ｂ）に示すような、二重線Ｌ１または三重線Ｌ２のような多重白線の場合、カメラの解像度や画像のひずみ補正などの影響により、白線間の画素数が少ないと、白線が隣接した側の輝度差Ｐ１が十分に生じないことがある。例えば、二重線Ｌ１を走査したとき、正のエッジ点ａが選択され、次に負のエッジ点ｂが輝度差Ｐ１がしきい値未満となり選択されず、次にエッジ点ｃが選択される。その結果、二重線が単線と認識されることがある。三重線の場合にも同様に、両側が隣接する中央の白線が認識されず、単線または二重線と認識されることがある。
【０００７】
一方、輝度差を判定するためのしきい値を小さくすれば、エッジ点ｂのような小さな輝度差を検出することが可能であるが、路面上の小さいわだちやタイヤ痕なども一定の輝度を生じさせるため、これらのノイズを白線と誤認識してしまうおそれがある。
【０００８】
本発明は、このような従来の課題を解決するものであり、２重線や３重線のような多重線を正確に検出することができる電子装置、白線検出プログラムおよび白線検出方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る白線を検出する機能を備えた電子装置は、路面を撮像する撮像手段と、前記撮像手段により撮像された画像データの輝度情報と第１のしきい値とを比較することにより第１のしきい値以上の輝度差を有する少なくとも１つの白線候補を抽出する抽出手段と、前記白線候補が他の白線候補と隣接するか否かを判定する判定手段と、前記白線候補が他の白線候補に隣接すると判定された場合、白線候補の隣接する側の輝度差を、第２のしきい値よりも大きな輝度差に補正する補正手段と、前記白線候補と第２のしきい値とを比較することにより前記白線候補の中から第２のしきい値以下の非白線候補を除去する除去手段と、前記非白線候補が除去された白線候補に基づき白線を検出する検出手段とを有し、第１のしきい値は、第２のしきい値よりも輝度差の大きい画素を抽出する。
【００１０】
好ましくは前記白線候補の一方の側が他の白線候補に隣接するとき、前記補正手段は、前記白線候補の隣接しない他方の側の輝度差を前記一方の側の輝度差に置換する。好ましくは前記白線候補の両側が他の白線候補に隣接するとき、前記補正手段は、前記白線候補の両側の輝度差を、複数の白線候補の中の白線候補に隣接しない側の輝度差に置換する。好ましくは前記抽出手段は、画像データを水平方向に走査する走査手段を含み、前記補正手段は、前記走査手段により１つの水平ラインが走査される毎に、水平ラインの白線候補の輝度差を補正する。好ましくは前記抽出手段はさらに、前記走査手段によって走査された複数の水平ライン群をグループ化する手段を含み、前記補正手段は、グループ化された後に各水平ラインの白線候補の輝度差を補正する。好ましくは前記検出手段は、二重の白線または三重の白線を検出する。
【００１１】
本発明に係る白線検出プログラムまたは白線検出方法は、路面を撮像する撮像手段を備えた電子装置が実行するものであって、前記撮像手段により撮像された画像データの輝度情報と第１のしきい値とを比較することにより第１のしきい値以上の輝度差を有する少なくとも１つの白線候補を抽出するステップと、前記白線候補が他の白線候補と隣接するか否かを判定するステップと、前記白線候補が他の白線候補に隣接すると判定された場合、前記白線候補の隣接する側の輝度差を、第２のしきい値よりも大きな輝度差に補正するステップと、前記白線候補と第２のしきい値とを比較することにより前記白線候補の中から第２のしきい値以下の非白線候補を除去するステップと、前記非白線候補が除去された白線候補に基づき白線を検出するステップとを有し、第１のしきい値は、第２のしきい値よりも輝度差の大きい画素を抽出する。
【発明の効果】
【００１２】
本発明によれば、白線候補が他の白線候補と隣接すると判定された場合には、白線候補の隣接する側の輝度差を第２のしきい値よりも大きな輝度差に補正し、第２のしきい値以下の非白線候補を白線候補の中から除去し、非白線候補が除去された白線候補に基づき白線を検出するようにしたので、わだちやタイヤ痕のような非白線候補と白線候補から区別することができると同時、多重線のような複数の白線候補を正確に検出することができる。
【図面の簡単な説明】
【００１３】
【図１】図１（Ａ）は、本発明の第１の実施例に係る電子装置の構成を示す図、図１（Ｂ）は、白線検出プログラムの機能的な構成を示すブロック図である。
【図２】第１の実施例に係るレーンマーク候補抽出部の処理を示すフロー図である。
【図３】図３（Ａ）は、撮像された画像を水平方向に走査したときの輝度変化を表し、図３（Ｂ）は、白線部分の輝度の拡大図である。
【図４】水平ラインのグループ化の処理を説明する図である。
【図５】線分の抽出の処理を説明する図である。
【図６】グループ化された水平ラインの変数の格納例を示す図である。
【図７Ａ】第１の実施例に係る非レーンマーク候補除去部のフローを示す図である。
【図７Ｂ】第１の実施例に係る非レーンマーク候補除去部のフローを示す図である。
【図７Ｃ】第１の実施例に係る非レーンマーク候補除去部のフローを示す図である。
【図８】左側隣接グループ有無の判断処理のフローを示す図である。
【図９】右側隣接グループ有無の判断処理のフローを示す図である。
【図１０】本発明の第１の実施例による白線候補の輝度差の補正の具体例を説明する図である。
【図１１】本発明の第１の実施例における除去しきい値の変形例を説明する図である。
【図１２Ａ】関数ｎｅｉｇｈｂｏｒＬｉｎｅｓの処理動作を示すフロー図である。
【図１２Ｂ】関数ｎｅｉｇｈｂｏｒＬｉｎｅｓの処理動作を示すフロー図である。
【図１２Ｃ】関数ｎｅｉｇｈｂｏｒＬｉｎｅｓの処理動作を示すフロー図である。
【図１３】関数ｎｅｉｇｈｂｏｒＬｉｎｅｓの処理を具体的に説明する図である。
【図１４】本発明の第２の実施例に係る電子装置の構成を示す図である。
【図１５】本発明の第２の実施例に係るレーンマーク候補抽出部の動作を示すフロー図である。
【図１６】第２の実施例による水平ラインのデータの変数の格納例を示す図である。
【図１７Ａ】第２の実施例による輝度差の補正処理を示すフロー図である。
【図１７Ｂ】第２の実施例による輝度差の補正処理を示すフロー図である。
【図１８】第２の実施例に係る非レーンマーク候補除去部の処理を示すフロー図である。
【図１９】従来の白線検出処理の課題を説明する図である。
【発明を実施するための形態】
【００１４】
本発明の電子装置は、白線検出機能を備えている。白線検出機能は、好ましくは撮像装置によって撮像された画像を解析することにより実施される。また、本発明の電子装置は、車両に搭載可能なもの、あるいは車両に搭載されたもののいずれであってもよい。さらに本発明の電子装置の機能は、白線検出機能に加えて、例えば、ナビゲーション機能、運転支援機能、自動運転機能などを備えることができる。
【実施例】
【００１５】
次に、本発明の実施例について図面を参照して詳細に説明する。図１は、第１の実施例に係る電子装置の構成を示すブロック図である。同図に示すように、電子装置１０は、車両の前方または後方に搭載された撮像部２０と、各種の信号等を入力する入力部３０と、各種の信号等を出力する出力部４０と、記憶部５０と、制御部６０とを含む。但し、この構成は一例であり、本発明の電子装置は、このような構成に限定されない。
【００１６】
撮像部２０は、自車の前方または後方の道路を撮像し、その撮像データを制御部６０へ提供する。制御部６０は、撮像データを画像処理等によって解析し、その解析結果から白線を検出する。白線の検出結果は、例えば、ナビゲーション機能、運転支援機能、あるいは自動運転機能などにおいて利用される。１つの例では、ナビゲーション機能の走行車線の判定に利用されたり、あるいは、自車のレーン逸脱判定に利用され、レーンを逸脱した場合には、出力部４０から警告が発せられる。
【００１７】
制御部６０は、電子装置１０が有する白線検出機能を実行する。制御部６０は、好ましい態様では、ＲＯＭ、ＲＡＭなどを含むマイクロコントローラ等から構成され、ＲＯＭまたはＲＡＭは、種々のプログラムを格納することができる。本実施例では、制御部６０は、白線検出プログラムを実行する。記憶部５０は、例えば、種々のアプリケーションソフトウエアを記憶することができ、制御部６０がそれらのソフトウエアを実行することで電子装置１０に種々の機能が与えられる。
【００１８】
図１（Ｂ）は、制御部６０が実行する白線検出プログラムの機能的な構成を示している。
同図に示すように、白線検出プログラムは、撮像部２０によって撮像された画像データからレーンマーク（白線）候補を抽出するレーンマーク候補抽出部１００と、抽出されたレーンマークの中から、わだちやタイヤ痕等の非レーンマークを除去する非レーンマーク候補除去部１１０と、レーンマーク候補とレーンマーク推定位置から次のレーンマークを検出するレーンマーク検出部１２０と、検出されたレーンマークから次のレーンマーク位置を推定するレーンマーク位置推定部１３０とを含む。
【００１９】
図２は、レーンマーク候補抽出部１００の処理を示すフロー図である。レーンマーク候補抽出部１００は、撮像部２０によって撮像された画像データを受け取る。画像データが視野角の大きな魚眼レンズによって撮像されたものである場合には、画像データの歪みを補正する。レーンマーク候補抽出部１００はさらに、画像データからグレースケールの輝度画像を取り出す（Ｓ１００）。
【００２０】
次に、レーンマーク候補抽出部１００は、輝度画像を水平方向に走査することにより、正のエッジ点および負のエッジ点を含む水平ラインを取得する（Ｓ１０２）。水平ラインからの正のエッジ点および負のエッジ点の抽出方法を図３に示す。
【００２１】
図３（Ａ）は、撮像画像を水平方向に走査したときに得られた輝度を表し、図３（Ｂ）は、白線部分の輝度の拡大図である。正のエッジ点は、次のように抽出する。ｉ番目（ｉは自然数）画素の輝度＜ｉ＋１番目の画素の輝度の条件を満足する所定の画素数以内の画素列で、開始画素と最終画素の輝度差がしきい値以上となる画素列を抽出する。抽出された画素列の中で、ｉ＋１番目の画素の輝度−ｉ番目の画素の輝度が最大となるｉ＋１番目の画素を正のエッジ点とする。
【００２２】
同様に負のエッジ点は、次のように抽出する。ｉ番目の画素の輝度＞ｉ＋１番目の画素の輝度の条件を満足する所定の画素数以内の画素列で、最終画素と開始画素の輝度差がしきい値以上となる画素列を抽出する。抽出された画素列の中で、ｉ番目の画素の輝度−ｉ＋１番目の画素の輝度が最大となるｉ番目の画素を負のエッジ点とする。
【００２３】
図３（Ｂ）の具体的を用いて示せば、画素ｂから画素ｅまでが正のエッジ点の画素列となり、隣り合う画素の輝度差が最も大きい画素ｄが正のエッジ点となる。この場合の輝度差は、画素ｅの最大輝度−画素ｂの最小輝度の差となる。また、画素ｈから画素ｋまでが負のエッジ点の画素列となり、隣り合う画素の輝度差が最も大きい画素ｉが負のエッジ点となる。この場合の輝度差は、画素ｈの最大輝度−画素ｋの最低輝度の差となる。
【００２４】
同様に、画素ｇ、ｈが正のエッジ点、画素ｅ、ｆが負のエッジ点の画素列となるが、輝度差が小さく、しきい値よりも小さくなるため、エッジ点の画素列として取得されない。
【００２５】
ここでは、輝度差を、例えば、正のエッジ点の場合、暗から明になる画素列の最小値と最大値を求めたが、明側として後出する水平ラインの平均値や中央値、暗側としてエッジ点から一定間隔離れた点や一定間隔離れたところの一定範囲の画素列の平均を求めて、これらから輝度差を算出しても良い。
【００２６】
抽出された正のエッジ点と負のエッジ点の組で、正のエッジ点から負のエッジ点までの長さが、ある所定の長さ（白線幅）を満足する部分を水平ラインとして取り出す。このとき、正のエッジ点は、水平ラインの左エッジ点、負のエッジ点は右エッジ点になる。この水平ラインの取得を、決められた走査範囲の下から上方向に行うと、図４に示すような複数の水平ラインが抽出される。
【００２７】
水平ラインの取得で用いられるしきい値は、２重線や３重線の線間に生じ得る小さな輝度差、わだちやタイヤ痕によって生じ得る輝度差を抽出し得る小さな値に設定される。すなわち、水平ラインで取得された画像は、正のエッジ点および負のエッジ点を含む白線幅の部分、多重線の間の部分、およびわだちやタイヤ痕等の部分を包含し得る。但し、わだちやタイヤ痕等は、後述する非レーンマーク候補除去部１１０において除去される。
【００２８】
次に、レーンマーク候補抽出部１００は、水平ラインのグループ化を行う（Ｓ１０４）。レーンマーク候補抽出部１００は、取得した水平ライン群に対して、Ｘ方向で重なった水平ライン群をグループ化する。グループ化では、後述する図６に示す変数に、グループ数と各グループのデータを格納する。格納は、例えば記憶部５０に記憶される。グループのデータは、水平ライン数とグループを構成する水平ラインデータ群から構成される。水平ラインデータは、Ｙ座標が大きい値のものから小さい値の順で格納し、それぞれのデータは、Ｙ座標、左エッジ点のＸ座標と輝度差、右エッジ点のＸ座標と輝度差から構成される。ここで格納するＸ座標、Ｙ座標は、画素位置である。例えば、図３に示す水平ラインの取得結果を表す図４は、水平ライン群を２つのグループに分け、グループ[０]は、１２個の水平ラインから構成され、グループ[１]は、１３個の水平ラインから構成される。
【００２９】
次に、レーンマーク候補抽出部１００は、線分の抽出を行う（Ｓ１０６）。線分の抽出は、図５に示すように、各グループの水平ラインを３次元座標の路面（Ｚ＝０）に投影して、その各水平ラインの中点、すなわち、左エッジ点と右エッジ点の中央値を求め、これらの値から最小二乗法でレーンマーク候補となる線分の直線式Ｙ＝ａＸ＋ｂ（Ｚ＝０）の傾きａとＹ切片ｂを算出する。このときの原点は、好ましくは、車の中央位置であり、Ｘ軸上前方がプラス、Ｙ軸上左側がプラスである。また、グループ毎に水平ラインの幅（左右エッジ点間の距離）の平均をとり、レーンマーク幅を算出する。例えば、３次元座標でのＸ座標、Ｙ座標の単位は、ｍ（メートル）である。線分の抽出の処理では、図６に示す変数に、グループ毎に算出した線分データ（直線式の傾きａとＹ切片ｂ）とレーンマークデータ（線幅）を格納する。
【００３０】
次に、非レーンマーク候補除去部１１０について説明する。レーンマーク候補抽出部１００による抽出では、小さなしきい値により輝度差が小さい多重線間の領域を抽出するため、同時に、わだちやタイヤ痕等のノイズデータも抽出する可能性がある。非レーンマーク候補除去部１１０は、二重線や三重線など多重線の水平ラインのグループから、輝度差の小さいわだちやタイヤ痕の水平ラインのグループを取り除く処理を行う。図７Ａないし図７Ｃは、非レーンマーク候補除去部の動作フローである（Ｔは、True、Ｆは、Faultである）。
【００３１】
まず、レーンマーク候補抽出部１００で取得した水平ラインのグループ群を、グループの線分のＹ切片ｂを使用して降順にソートする（Ｓ３０１）。例えば、図５のグループ［０］、［１］について処理が実行されると、そのグループ内の水平ラインがソートされる。更に、除去するグループを管理する除去対象グループを対象グループ無しに初期化する（Ｓ３０２）。次に、各グループに対して、除去するか否かを判定する。そのために、グループを示す変数ｉを０に初期化する（Ｓ３０３）。
【００３２】
次に、ｉがグループ数（図６でいえばｍの値）未満か否かを判断し（Ｓ３０４）、グループ数以上ならば、対象グループがなくなったので、除去対象グループに登録したグループを削除して（Ｓ３２０）、終了する。ｉがグループ数未満であれば、グループ[ｉ]が、除去対象か否かを判定する処理を行う。図４の例で言えば、グループ[０]から、除去対象か否かの判定が行われる。
【００３３】
この処理では、先ず、除去対象グループの左側および右側に隣接グループがあるか否かを示す変数「ｎｅｉｇｈｂｏｒ」を、両側に隣接グループ無しを示す値「０」に設定する（Ｓ３０５）。変数「ｎｅｉｇｈｂｏｒ」は、値が０のとき「隣接グループなし」、１のとき「左側に隣接グループあり」、２のとき「右側に隣接グループあり」、３のとき「両側に隣接グループあり」を示す。
【００３４】
次に、グループ[ｉ]の水平ライン群について、左エッジ点の輝度差の平均を求め、変数「ｐｏｓＤｉｆｆ」に格納する（Ｓ３０６）。同様に、グループ[ｉ]の水平ライン群について、右エッジ点の輝度差の平均を求め、変数「ｎｅｇＤｉｆｆ」に格納する（Ｓ３０７）。グループ[ｉ]の左右のエッジ点の輝度差の平均の算出は、図６に示すグループ毎の水平ラインデータが用いられる。
【００３５】
左右の輝度差平均の算出後、図８に示す左側隣接グループ有無の判断処理（後述する）を行い、グループ[ｉ]の左側に隣接グループがあるか否かを判定する（Ｓ３０８）。左側に隣接グループがあると判定された場合には、左側の輝度差が小さく出ている可能性があるので、左側の輝度差平均を示すｐｏｓＤｉｆｆを、隣接していなければ生成された値に近い右側の輝度差平均を示す変数ｎｅｇＤｉｆｆに置き換え（Ｓ３０９）、ｎｅｉｇｈｂｏｒに１を設定する（Ｓ３１０）。
【００３６】
同様に、図９に示す右側隣接グループ有無の判断処理（後述する）を行い、グループ[ｉ]の右側に隣接グループがあるか否かを判定する（Ｓ３１１）。右側に隣接グループがあると判定された場合には、右側の輝度差が小さくでている可能性があるので、右側の輝度差平均を示す変数ｎｅｇＤｉｆｆを、隣接してなければ生成された値に近い左側の輝度差平均を示す変数ｐｏｓＤｉｆｆで置き換え（Ｓ３１２）、ｎｅｉｇｈｂｏｒに２を加算する（Ｓ３１３）。
【００３７】
左右の隣接グループの有無を判定後、変数ｎｅｉｇｈｂｏｒが３か否か、つまり、両側に隣接グループがあるか否かを判定する（Ｓ３１４）。両側に隣接グループがある場合は、両側とも輝度差が小さく出ている可能性があるので、左側の輝度差平均を示す変数ｐｏｓＤｉｆｆと右側の輝度差平均を示す変数ｎｅｇＤｉｆｆを、除去しきい値よりも大きい値、例えば、除去しきい値＋１に設定して、除去対象グループにならないようにする（Ｓ３１５、Ｓ３１６）。両側に隣接グループが存在する場合は、例えば、３重線の真ん中の白線が該当する。
【００３８】
隣接グループの判定後、グループ[ｉ]が除去対象グループか否かの判定を行う（Ｓ３１７）。判定は、左右いずれか一方の輝度差平均が除去しきい値以下か否かを判定する。  この除去しきい値は、水平ラインの取得（Ｓ１０２）において、エッジ点を求めるしきい値よりも大きな値であり、単一の白線線のエッジ点と、わだちやタイヤ痕のエッジ点とを区別できる値である。
【００３９】
除去対象グループと判定された場合には、グループ[ｉ]を除去対象グループに登録し（Ｓ３１８）、次のグループの判定を行うために、グループを示す変数ｉを１加算する（Ｓ３１９）。Ｓ３１９後は、Ｓ３０４の判定に戻る。
【００４０】
図１０は、Ｓ３０８からＳ３１７の処理の一例を示す図である。図１０（Ａ）に示すように、白線候補を抽出するためのしきい値（例えば、小さな値である２）を設定し、当該しきい値よりも輝度差の大きい水平ラインを取得する（Ｓ１０２）。白線Ｌ１、Ｌ２の二重線の輝度差Ｐ＝１０、およびその白線Ｌ１と白線Ｌ２の間の輝度差＝５、白線Ｌ３、Ｌ４、Ｌ５の三重線の輝度差＝１０、および白線Ｌ３、Ｌ４、Ｌ５の間の輝度差＝５、わだちやタイヤ痕Ｎの輝度差＝３であるとき、二重線、三重線、わだちやタイヤ痕のすべてがしきい値よりも大きいため、レーンマーク候補として抽出される。図１０（Ｂ）は、全てのスキャン後の取得された水平ラインを示している。レーンマーク候補に含まれる、わだちやタイヤ痕のようなノイズＮは、非レーンマーク候補除去部１１０によって除去される。
【００４１】
例えば、白線Ｌ１のグループに対して非レーンマーク候補除去部１１０の処理が実行されるとき、白線Ｌ１の右側に白線Ｌ２の隣接グループが存在するため、白線Ｌ１の右側のエッジ点の輝度差が、左側のエッジ点の輝度差（平均）に置き換えられる。同様に、白線Ｌ２の左側には、隣接する白線Ｌ１が存在するため、白線Ｌ２の左側のエッジ点の輝度差は、水際のエッジ点の輝度差（平均）に置き換えられる。また、三重線の白線Ｌ３の右側のエッジには白線Ｌ４が隣接するため、右側のエッジ点は、左側のエッジ点の輝度差に置き換えられ、白線Ｌ５も同様に、左側のエッジ点の輝度差が右側のエッジ点の輝度差に置き換えられる。両側において隣接する白線Ｌ４に関しては、除去しきい値よりも大きな値、例えば、除去しきい値が７であるとき、左右の輝度差が８に設定される。但し、白線Ｌ４の左右のエッジ点を、白線Ｌ３の隣接する白線Ｌ４が存在しない左側のエッジ点の輝度差、あるいは白線Ｌ５の隣接する白線Ｌ４が存在しない右側のエッジ点の輝度差に置換するようにしてもよい。
【００４２】
図１０（Ｃ）は、白線の隣接する側のエッジ点の輝度差を補正した後の水冷ラインの輝度差を表している。輝度差の補正を行った後、除去対象グループの判定（Ｓ３１７）が行われ、いずれか一方に除去しきい値よりも大きな輝度差を有する白線Ｌ１、Ｌ２、Ｌ３、Ｌ５は、除去対象グループにならずに処理を終える。一方で、ノイズＮであるわだちやタイヤ痕は、除去しきい値＝７よりも小さな輝度差＝３であるため、除去対象グループと判定され、非レーンマーク候補として除去される。
【００４３】
ここで、除去しきい値は、次のように対応しても良い。線分の抽出処理（Ｓ１０６）において、例えば、図１１の２４１、２４２に示すように、原点に最も近い水平ラインまでの距離を求め、距離が大きくなるに従って、この除去しきい値を下げるように可変しても良い。これは、カメラの解像度や画像のひずみ補正などの影響により、遠い位置ほど輝度差が表れ難くなるためである。
【００４４】
また、レーンマークの色が黄色の場合は、白に比べて輝度差が出にくいので、線分の色を求めて、色に応じて、除去しきい値を変えるようにしても良い。色の判定は、例えば、水平ラインの取得（Ｓ１０２）で各水平ラインの色、線分の抽出（Ｓ１０４）で水平ライン群の色の中で最も多い色を線分の色とすることができる。
【００４５】
次に、上記した左側の隣接グループ有無の判断処理について説明する。図８は、図７ＢのＳ３０８で実行される処理である。まず、グループを示す変数ｉが１以上か否かを判定する（Ｓ３０８１）。ｉが１未満ならば、左側に隣接グループが存在しないので、結果を示す変数ｒｅｓｕｌｔに「隣接グループ無し」を設定して（Ｓ３０８６）、その値を返して終了する。ｉが１以上ならば、図１２に示す２つのグループでＹ座標が同じ水平ラインで２つの水平ライン間の距離が所定の範囲にある水平ライン数を算出する関数ｎｅｉｇｈｂｏｒＬｉｎｅｓを、１つ前のグループ（左側のグループ）と現在のグループを引数にして呼び出し、該当する水平ライン数を変数ｎｕｍＬｉｎｅｓに設定する（Ｓ３０８２）。関数ｎｅｉｇｈｂｏｒＬｉｎｅｓの詳細については後述する。
【００４６】
該当する水平ライン数ｎｕｍＬｉｎｅｓが現在のグループの水平ライン数の何％になるのかの割合を算出し、これを変数ｒａｔｉｏに格納し（Ｓ３０８３）、ｒａｔｉｏ値が隣接しきい値以上か否かを判定する（Ｓ３０８４）。隣接しきい値未満の場合は、結果を示す変数ｒｅｓｕｌｔに「隣接グループ無し」を設定して（Ｓ３０８６）、その値を返して終了する。隣接しきい値以上の場合は、結果を示す変数ｒｅｓｕｌｔに「隣接グループ有り」を設定して（Ｓ３０８５）、その値を返して終了する。
【００４７】
次に、図９に示す右側隣接グループ有無の判断処理について説明する。最初に、グループを示す変数ｉがグループ数−１未満か否かを判断する（Ｓ３１１１）。グループ数−１以上ならば、右側に隣接グループはないので、結果を示す変数ｒｅｓｕｌｔに「隣接グループ無し」を設定して（Ｓ３１１６）、その値を返して終了する。グループ数−１未満ならば、図１２に示す２つのグループでＹ座標が同じ水平ラインで２つの水平ライン間の距離が所定の範囲にある水平ライン数を算出する関数ｎｅｉｇｈｂｏｒＬｉｎｅｓを、現在のグループと１つ後のグループ（右側のグループ）とを引数にして呼び出し、該当する水平ライン数を変数ｎｕｍＬｉｎｅｓに設定する（Ｓ３１１２）。
【００４８】
該当する水平ライン数ｎｕｍＬｉｎｅｓが現在のグループの水平ライン数の何％になるかの割合を算出し、これを変数ｒａｔｉｏに格納し（Ｓ３１１３）、ｒａｔｉｏ値が隣接しきい値以上か否かを判定する（Ｓ３１１４）。隣接しきい値未満の場合は、結果を示す変数ｒｅｓｕｌｔに「隣接グループ無し」を設定して（Ｓ３１１６）、その値を返して終了する。隣接しきい値以上の場合は、結果を示す変数ｒｅｓｕｌｔに「隣接グループ有り」を設定して（Ｓ３１１５）、その値を返して終了する。
【００４９】
次に、関数ｎｅｉｇｈｂｏｒＬｉｎｅｓの処理を、図１２Ａないし図１２Ｃのフローを参照して説明する。ｎｅｉｇｈｂｏｒＬｉｎｅｓは、２つのグループでＹ座標が同じ水平ラインで２つの水平ライン間の距離が所定の範囲にある水平ライン数を算出する関数であり、引数ｍ、ｎは、それぞれグループ[ｍ]、グループ[ｎ]を示し、グループ[ｎ]は、グループ[ｍ]の右側にある値（ｍ＋１＝ｎ）で呼ばれる。
【００５０】
まず、Ｙ座標が同じ水平ラインで２つの水平ライン間の距離が所定の範囲にある水平ライン数を示す変数ｎｕｍＬｉｎｅｓを０に初期化し（Ｓ３４０１）、グループ[ｍ]の水平ラインを示す変数ｉを０に初期化し（Ｓ３４０２）、グループ[ｎ]の水平ラインを示す変数ｊを０に初期化する（Ｓ３４０３）。
【００５１】
次に、グループ[ｍ]の水平ラインを示す変数ｉがグループ[ｍ]の水平ライン未満か否かを判断する（Ｓ３４０４）。水平ライン数以上ならば、比較する水平ラインデータがないので、関数値として変数ｎｕｍＬｉｎｅｓの値を返して処理を終了する。水平ライン数未満ならば、同様に、グループ[ｎ]の水平ラインを示す変数ｊがグループ[ｎ]の水平ライン数未満か否かを判断する（Ｓ３４０５）。水平ライン数以上ならば、比較する水平ラインデータがないので、関数値として変数ｎｕｍＬｉｎｅｓの値を返して処理を終了する。
【００５２】
水平ライン数未満ならば、グループ[ｍ]の水平ライン[ｉ]のＹ座標が、グループ[ｎ]の水平ライン[ｊ]のＹ座標と同じか否かを判断する（Ｓ３４０６）。Ｙ座標が同じ場合は、２つの水平ライン間の距離が所定の範囲にあるか否かを判断する（Ｓ３４０７）。２つの水平ライン間の距離が所定の範囲にあるか否かの判断は、グループ[ｎ]のｊ番目の水平ライン[ｊ]の左エッジ点Ｘ座標とグループ[ｍ]の水平ライン[ｉ]の右エッジ点Ｘ座標間の距離（画素数）が範囲しきい値以下か否かを判断して行う。
【００５３】
範囲しきい値以下の場合は、Ｘ座標が所定の範囲にあると判断して、Ｘ座標が所定の範囲にある水平ライン数を示す変数ｎｕｍＬｉｎｅｓを１加算する（Ｓ３４０９）。次に、次の水平ラインの比較を行うために、グループ[ｍ]の水平ラインを示す変数ｉを１加算し（Ｓ３４１０）、グループ[ｎ]の水平ラインを示す変数ｊも１加算して（Ｓ３４１１）、次の水平ラインの比較を行う。
【００５４】
Ｓ３４０６でＹ座標が異なると判断された場合は、グループ[ｍ]の水平ライン[ｉ]のＹ座標とグループ[ｎ]の水平ライン[ｊ]のＹ座標の値の比較を行い（Ｓ３４０８）、グループ[ｍ]の水平ライン[ｉ]のＹ座標が大きい場合、図６で各グループの水平ラインはＹ座標が降順に格納されているので、Ｙ座標の値を合わせるために、変数ｉを１加算して（Ｓ３４１２）、次の水平ラインの比較を行う。グループ[ｎ]の水平ライン[ｊ]のＹ座標が大きい場合、同様に、Ｙ座標の値を合わせるために、変数ｊを１加算して（Ｓ３４１３）、次の水平ラインの比較を行う。
【００５５】
図１３は、関数ｎｅｉｇｈｂｏｒＬｉｎｅｓの処理を具体的に説明する図である。図１３（Ｂ）は、左側レーンマークが２重線、右側レーンマークが単線からなるレーンの撮像画像図１３（Ａ）に基づいて水平ラインを検出し、グループ化した状態を示す図である。なお、図１３（Ｂ）の方眼は、１マスが１画素を示すものとする。
【００５６】
具体例として図１３（Ｂ）を用いて説明する。図１３（Ｂ）は、左側レーンマークが二重線、右側レーンマークが単線からなるレーンの撮像画像Ｄである図１３（Ａ）から水平ラインを検出して、グループ化したものである。この画像で１マスが１画素を表す。
【００５７】
関数ｎｅｉｇｈｂｏｒＬｉｎｅｓの範囲しきい値を２画素と仮定すると、関数ｎｅｉｇｈｂｏｒＬｉｎｅｓ（０，１）の結果は、グループ[０]とグループ[１]でＹ座標が同じ水平ラインが８本あり、この中でグループ[１]の左エッジ点Ｘ座標とグループ[０]の右エッジ点Ｘ座標の間隔が２画素以下の水平ライン数は８なので、変数ｎｕｍＬｉｎｅｓの値は８となる。同様に、関数ｎｅｉｇｈｂｏｒＬｉｎｅｓ（１，２）を算出すると、全ての左右エッジ間の距離が２以上なので、０となる。
【００５８】
図８に示す左側隣接グループの有無の判断処理において、隣接しきい値を０．４と仮定すると、ｉ＝０（グループ[０]）のとき隣接グループ無し、ｉ＝１（グループ[１]）のとき隣接グループ有り、ｉ＝２（グループ[２]）のとき隣接グループ無しとなる。この算出において、処理中の変数ｒａｔｉｏの値は、ｉ＝１（グループ[１]）のとき８／９＝０．８９、ｉ＝２（グループ[２]）のとき０／１７＝０、となる。なお、ｉ＝０（グループ[０]）のときは、左側に隣接グループはないので、変数ｒａｔｉｏの値を算出せずに隣接グループ無しとなる。
【００５９】
同様に、図９に示す右側隣接グループ有無の判断処理において、隣接しきい値を０．４と仮定すると、ｉ＝０（グループ[０]）のとき隣接グループ有り、ｉ＝１（グループ[１]）のとき隣接グループ無し、ｉ＝２（グループ[２]）のとき隣接グループ無しとなる。この算出において、処理中の変数ｒａｔｉｏの値は、ｉ＝０（グループ[０]）のとき８／１８＝０．４４、ｉ＝１（グループ[２]）のとき０／９＝０、となる。なお、ｉ＝２（グループ[２]）のときは、右側に隣接グループはないので、変数ｒａｔｉｏの値を算出せずに隣接グループ無しとなる。
【００６０】
レーンマーク検出部１２０は、非レーンマーク候補除去部１１０から出力されたグループ情報の線分データとレーンマーク位置推定部１３０から出力されるレーンマークの推定一からレーンマークを検出し、レーンマーク情報を出力する。レーンマーク位置推定部１３０は、検出したレーンマークの線分データと過去のレーンマークの線分データから、次の線分データを推定する。レーンマーク検出部１２０やレーンマーク位置推定部１３０の詳細は、例えば、特許文献３に開示されている。
【００６１】
このように本実施例によれば、二重線や三重線のような多重線が撮像されたとき、白線候補が他の白線候補に隣接するか否かを判定し、隣接すると判定された場合には、隣接する側の白線側の輝度差を、ノイズ等の非白線候補を除去するときの除去しきい値よりも大きな輝度差に補正するようにしたので、多重線の白線候補の間隔とわだちやタイヤ痕のようなノイズをと識別することが可能となり、多重線を正確に検出しつつ不要なノイズを削除することができる。
【００６２】
次に、本発明の第２の実施例について説明する。第１の実施例は、全ての水平ラインの走査を行った後に、隣接する側のエッジの輝度差を補正するものであるが、第２の実施例は、水平ラインを走査する毎に輝度差の補正を行うものである。図１４は、第２の実施例に係る白線検出プログラムの機能的な構成を示すブロック図であり、第１の実施例と同様のものについては同一参照番号を附す。
【００６３】
レーンマーク候補抽出部１００Ａの動作フローを図１５に示す。レーンマーク候補抽出部１００Ａは、まず、撮像部２０が撮像した画像からグレースケールの輝度画像を取り出し（Ｓ６００）、撮像画像の走査位置を示す変数ｉを０に初期化する（Ｓ６０２）。次に、走査位置を示す変数ｉが走査数未満か否かを判断する（Ｓ６０４）。変数ｉが走査数未満ならば、水平方向に走査して水平ラインを取得し（Ｓ６０６）、取得した水平ラインの輝度差を補正する（Ｓ６０８）。次に、変数ｉに１を加算して（Ｓ６１０）、次の走査処理を行う。すなわち、第１の実施例が全ての水平ラインの取得後に輝度差を補正したのに対し、第２の実施例では、水平ラインを取得する毎に輝度差を補正する。変数ｉが走査数以上となったとき走査範囲の走査が終了し、第１の実施例のときと同様に、取得した水平ライン群がグループ化され（Ｓ６１２）、線分が抽出される（Ｓ６１４）。
【００６４】
次に、水平ラインの取得処理（Ｓ６０６）について説明する。水平ラインの取得は、第１の実施例と同様の処理で、変数ｉの示した走査位置を水平方向（Ｘ方向）に走査して、正のエッジ点と負のエッジ点を抽出する。輝度差のしきい値は小さな値に設定され、２重線や３重線の多重線の間の輝度差や、わだちやタイヤ痕等のノイズの輝度差も抽出され得る。走査してエッジ点を抽出した結果は、図１６に示す変数の走査[ｉ]に格納される。すなわち、走査したときのＹ座標、抽出した水平ライン数（ｎ）、各水平ライン[ｋ]（ｋ＝０、１、２、・・・、ｎ−１）の情報を格納する。水平ライン[ｋ]のデータは、左右エッジ点のＸ座標と輝度差から構成される。水平ラインは走査方向で抽出した順、Ｘ座標が小さい順に格納される。
【００６５】
次に、輝度差の補正処理（Ｓ６０８）について説明する。図１７Ａおよび図１７Ｂは、輝度差の補正処理を示すフローである。まず、右エッジ点の隣接状態を示す変数ｐｒｅＲｉｇｈｔｌｓＮｅａｒを０に初期化する（Ｓ６３０１）。この変数は、水平ラインの右エッジ点が次の水平ラインの左エッジ点と隣接しているとき１、隣接していないとき０である。次に、水平ラインのインデックスｋを０に初期化する（Ｓ６３０２）。
【００６６】
次に、水平ラインインデックスｋが走査[ｉ]の水平ライン数未満か否か判断する（Ｓ６３０３）。ｋが水平ライン数以上ならば、処理を終了する。水平ラインインデックスｋが走査[ｉ]の水平ライン数未満ならば、変数ｐｒｅＲｉｇｈｔｌｓＮｅａｒが１か否かを判断することにより、１つ前の水平ライン[ｋ−１]の右エッジ点Ｘ座標が現在の水平ライン[ｋ]の左エッジ点Ｘ座標と隣接しているか否かを判断する（Ｓ６３０４）。
【００６７】
１つ前の水平ライン[ｋ−１]の右エッジ点Ｘ座標が現在の水平ライン[ｋ]の左エッジ点Ｘ座標と隣接していることは、現在の水平ライン[ｋ]の左エッジ点Ｘ座標が１つ前の水平ライン[ｋ−１]の右エッジ点Ｘ座標と隣接していることになるので、走査[ｉ]の水平ライン[ｋ]の左エッジ点輝度差に隣接していなければ生成された値に近い右エッジ点の輝度差を設定する（Ｓ６３０５）。このように、第２の実施例では、走査[ｉ]の単位で、輝度差の置き換え補正を行っている。
【００６８】
次に、水平ラインインデックスｋが走査[ｉ]の水平ライン数−１未満か否か、つまり右側に水平ラインがあるか否かを判断する（Ｓ６３０６）。右側に水平ラインがない場合、右エッジ点の隣接状態を示す変数ｐｒｅＲｉｇｈｔｌｓＮｅａｒを０（右側隣接なし）を設定し（Ｓ６３０８）、水平ラインインデックスｋを１加算して（Ｓ６３１４）、次の水平ラインの処理を行う。
【００６９】
右側に水平ラインがある場合、走査[ｉ]の水平ライン[ｋ]の右エッジ点Ｘ座標と右側の走査[ｉ]の水平ライン[ｋ＋１]の左エッジ点Ｘ座標の距離（画素数）が範囲しきい値以下か否かを判断する（Ｓ６３０７）。差が範囲しきい値以下ならば、右エッジ点が隣接していると判断する。
【００７０】
隣接していない場合、右エッジ点の隣接状態を示す変数ｐｒｅＲｉｇｈｔｌｓＮｅａｒを０（右側隣接なし）に設定して（Ｓ６３０８）、水平ラインインデックスｋを１加算して（Ｓ６３１４）、次の水平ラインの処理を行う。右エッジ点が隣接していると判断した場合、変数ｐｒｅＲｉｇｈｔｌｓＮｅａｒの値により左エッジ点が隣接しているか否かを判断する（Ｓ６３０９）。左エッジ点も隣接している場合、両エッジ点の輝度差が小さく出ている可能性があるので、両エッジ点の輝度差を（除去しきい値＋１）に設定する（Ｓ６３１０、Ｓ６３１１）。
【００７１】
左エッジ点が隣接していない場合、走査[ｉ]の水平ライン[ｋ]の右エッジ点輝度差に隣接していなければ生成された値に近い左エッジ点の輝度差を設定する（Ｓ６３１２）。次に、右エッジ点の隣接状態を示す変数ｐｒｅＲｉｇｈｔｌｓＮｅａｒに１（右側隣接あり）を設定し（Ｓ６３１３）、水平ラインインデックスｋを１加算して（Ｓ６３１４）、次の水平ラインの処理を行う。
【００７２】
次に、輝度差の補正の具体例を、図１３（Ｂ）を参照して説明する。ここで、範囲しきい値は、２と仮定する。グループ[２]は、隣接する水平ラインがないので、輝度差の補正はない。グループ[０]の水平ライン[ｋ]，（ｋ＝０、１、・・・、１７）の左右エッジ点の輝度差（左エッジ点輝度差，右エッジ点輝度差）を水平ライン順（Ｙ座標の降順）に、（１２０，２２）、（１１８，２０）、（１１６，１８）、（１１４，１８）、（１１２，１４）、（１１０，１８）、（１０８，１８）、（１０６，２０）、（１０４，８０）、（１０２，１０２）、（１０４，１０２）、（１００，１００）、（９８，１００）、（１００，１００）、（１０２，１００）、（１００，１０２）、（９６，９８）、（１００，１００）、グループ[１]の水平ライン[ｍ]，ｍ＝０、１、・・・、８の左右エッジ点の輝度差を水平ライン順に、（８８，１４０）、（２８，１３８）、（２０，１３６）、（２２，１３４）、（２０，１３２）、（１８，１３２）、（２２，１３０）、（２４，１２８）、（２２，１２６）、と仮定すると、輝度差の補正を行った後の結果は次の通りである。輝度差の補正後のグループ[０]の水平ライン[ｋ]，（ｋ＝０、１、・・・、１７）の左右エッジ点の輝度差は、（１２０，１２０）、（１１８，１１８）、（１１６，１１６）、（１１４，１１４）、（１１２，１１２）、（１１０，１１０）、（１０８，１０８）、（１０６，１０６）、（１０４，８０）、（１０２，１０２）、（１０４，１０２）、（１００，１００）、（９８，１００）、（１００，１００）、（１０２，１００）、（１００，１０２）、（９６，９８）、（１００，１００）、グループ[１]の水平ライン[ｍ]，ｍ＝０、１、・・・、８の左右エッジ点の輝度差は、（８８，１４０）、（１３８，１３８）、（１３６，１３６）、（１３４，１３４）、（１３２，１３２）、（１３２，１３２）、（１３０，１３０）、（１２８，１２８）、（１２６，１２６）となる。
【００７３】
水平ラインのグループ化は（Ｓ６１２）、第１の実施例のときの水平ラインのグループ化（Ｓ１０４）と同様の処理である。図１６に示す変数に、取り出した水平ラインに対してＸ方向で重なった水平ライン群をグループ化して、図６に示す変数にグループ数と各グループの水平ラインデータを格納する。第２の実施例では、図６に示す格納の時点で、既に置き換え処理が行われていることになる。線分を抽出（Ｓ６１４）は、第１の実施例のときの線分の抽出（Ｓ１０６）と同様の処理である。図６に示すように格納した各グループの水平ラインのデータから線分データとレーンマークデータを算出して、図６に示す変数に格納する。
【００７４】
次に、非レーンマーク候補除去部１１０Ａについて、図１８のフローを参照して説明する。この処理は、水平ラインのグループから輝度差が小さい水平ラインのグループを取り除く処理を行う。まず、グループを示す変数ｉを０に初期化する（Ｓ３８０１）。次に、ｉがグループ数未満か否かを判断し（Ｓ３８０２）、グループ数以上ならば除去対象グループがなくなったので終了する。グループ数未満ならば、グループ[ｉ]が、除去対象か否かを判定する処理を行う。
【００７５】
グループ[ｉ]の水平ライン群について、左エッジ点の輝度差の平均を求め、変数ｐｏｓＤｉｆｆに格納する（Ｓ３８０３）。同様に、グループ[ｉ]の水平ライン群について、右エッジ点の輝度差の平均を求め、変数ｎｅｇＤｉｆｆに格納する（Ｓ３８０４）。次に、グループ[ｉ]が削除対象か否かの判定を行う（Ｓ３８０５）。判定は、左右いずれか一方の輝度差平均が除去しきい値以下か否かである。削除対象ならば、グループ[ｉ]を削除する（Ｓ３８０６）。次に、グループを示す変数ｉに１加算して（Ｓ３８０７）、次の水平ラインのグループの処理を行う。
【００７６】
本実施例では、水平ラインが取得される毎に、白線候補が隣接するか否かを判定し、隣接すると判定された場合には、隣接する側の白線側の輝度差を、ノイズ等の非白線候補を除去するときの除去しきい値よりも大きな輝度差に補正するようにしたので、第１の実施例の時と比較して処理時間を短縮することができる。
【００７７】
以上、本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された発明の要旨の範囲において、種々の変形、変更が可能である。
【符号の説明】
【００７８】
１０：電子装置                              ２０：撮像部
３０：入力部                                ４０：出力部
５０：記憶部                                ６０：制御部
１００、１００Ａ：レーンマーク候補抽出部
１１０、１１０Ａ：非レーンマーク候補除去部
１２０：レーンマーク検出部
１３０：レーンマーク位置推定部
Ｌ、Ｌ１、Ｌ２、Ｌ３、Ｌ４、Ｌ５：白線
Ｎ：ノイズ
【図１】
0006525853.tif 000002
【図２】
0006525853.tif 000003
【図３】
0006525853.tif 000004
【図４】
0006525853.tif 000005
【図５】
0006525853.tif 000006
【図６】
0006525853.tif 000007
【図７Ａ】
0006525853.tif 000008
【図７Ｂ】
0006525853.tif 000009
【図７Ｃ】
0006525853.tif 000010
【図８】
0006525853.tif 000011
【図９】
0006525853.tif 000012
【図１０】
0006525853.tif 000013
【図１１】
0006525853.tif 000014
【図１２Ａ】
0006525853.tif 000015
【図１２Ｂ】
0006525853.tif 000016
【図１２Ｃ】
0006525853.tif 000017
【図１３】
0006525853.tif 000018
【図１４】
0006525853.tif 000019
【図１５】
0006525853.tif 000020
【図１６】
0006525853.tif 000021
【図１７Ａ】
0006525853.tif 000022
【図１７Ｂ】
0006525853.tif 000023
【図１８】
0006525853.tif 000024
【図１９】
0006525853.tif 000025