(57)【要約】【課題】  走行レーンと周辺レーンの白線情報を利用して走行レーン位置を評価する走行レーン検出装置を提供する。【解決手段】  本発明に係る走行レーン検出装置１０は、自車が走行するレーンの両側のレーンマークを検出するほか、走行レーンの周辺レーンのレーンマークも検出するレーンマーク検出手段２と、レーンマーク検出手段２により検出されたレーンマークの情報および自車が走行している道路のレーン数から、自車が走行レーンに位置する確からしさを評価する走行レーン評価手段４と、走行レーン評価手段４の評価結果に基づき自車が走行する走行レーンを判断する走行レーン判断手段５とを含む。【選択図】  図４
2019028856.tif 000002
【特許請求の範囲】
【請求項１】
自車が走行する道路を撮像する撮像手段と、
前記撮像手段により撮像された画像データに基づき自車が走行する走行レーンの両側の白線、および前記走行レーンの周辺レーンの白線を検出する検出手段と、
自車が走行している道路のレーン数を取得する取得手段と、
前記検出手段により検出された前記走行レーンの白線情報および前記周辺レーンの白線情報に基づき、現在の自車が前記走行レーンに位置する確からしさを評価する評価手段と、
前記評価手段の評価結果に基づき自車が位置する走行レーンを判断する判断手段と、
を有する走行レーン検出装置。
【請求項２】
前記評価手段は、前記判断手段により判断された走行レーンに関する情報をフィードバック入力し、当該走行レーンに自車が位置する確からしさを評価する、請求項１に記載の走行レーン検出装置。
【請求項３】
前記評価手段は、複数の評価結果に基づき前記確からしさを評価する、請求項１に記載の走行レーン検出装置。
【請求項４】
前記評価手段は、前記白線情報に含まれる白線の種類および白線の本数に基づき前記確からしさを評価する、請求項１に記載の走行レーン検出装置。
【請求項５】
前記評価手段は、前記取得手段により取得された道路のレーン毎の自車が走行する確からしさに関する評価値を算出し、算出された評価値の累積値が第１の閾値に到達したとき、そのレーンを自車が走行していると評価する、請求項１ないし４いずれか１つに記載の走行レーン検出装置。
【請求項６】
前記評価手段は、算出された評価値の累積値が前記第１の閾値と極性を異にする第２の閾値に到達したとき、そのレーンを自車が走行していないと評価する、請求項１ないし５いずれか１つに記載の走行レーン検出装置。
【請求項７】
前記評価値は、正の値および負の値を含む、請求項５または６に記載の走行レーン検出装置。
【請求項８】
前記評価手段は、前記評価位置を加算または減算する、請求項５ないし６いずれか１つに記載の走行レーン検出装置。
【請求項９】
前記評価手段は、一定の時間間隔または一定の走行距離毎に確からしさを評価する、請求項１ないし８いずれか１つに記載の走行レーン検出装置。
【請求項１０】
前記白線情報は、二重線、三重線等の多重線の情報を含む、請求項１ないし４いずれか１つに記載の走行レーン検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両が走行するレーンの検出装置に関し、特に、カメラにより撮像された画像データを利用して走行レーンの検出に関する。
【背景技術】
【０００２】
カメラにより撮像された画像データを利用して自車の走行レーンを検出することが行われている。例えば、特許文献１は、画像認識により自車レーンの判定を行うことができない不明区間を通過する際に、当該不明区間を退出後の自車レーンを絞り込むための判定を行うレーン判定装置を開示している。また、非特許文献１は、スキャンライン上の情報のみを時系列的に並べて表示した画像を時空間画像と定義し、この字空間画像を利用して白線を抽出する方法を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−０７１８１０号公報
【非特許文献】
【０００４】
【非特許文献１】「時空間画像を用いた自車両走行レーン位置認識」、本多  充知等、社団法人  情報処理学会  研究報告(IPSJ SIG Technical Report)  2008-CVIM-161(36) P243-248
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の走行レーン検出方法の１つに、自車が走行するレーンの左右のレーンマーク（白線）を検出し、その左右のレーンマークの種別（実線、破線）の組合せから、左端レーン、右端レーンあるいはそれ以外のレーンを走行しているかを判定するものがある。例えば、図１に示すような３つのレーン（レーン番号０、レーン番号１、レーン番号２）を走行するとき、左レーンマークが実線、右レーンマークが破線の場合、自車Ｍが左端レーン（レーン番号０）を走行していると判定される。左レーンマークが破線、右レーンマークが実線の場合、自車Ｍが右端レーン（レーン番号２）を走行していると判断される。さらに、左レーンマークと右レーンマークが両方とも破線の場合、自車Ｍが中間レーン（レーン番号１）を走行していると判定される。上記以外は、走行レーンが不明と判定される。
【０００６】
上記のような検出方法では、レーンマークの種別の一意的な組合せで左端レーン、右端レーンを判定しているため、図２に示すように、左右のレーンマークが両方とも実線の場合、走行レーンを判定することができず、走行レーン不明となる。
【０００７】
また、実線のレーンマークは、摩耗などによるかすれや傷などによって破線と認識されることがある。このような場合、例えば、図１のレーン番号０を走行しているとき、左レーンマークの破線と誤認識されてしまうと、左端レーンの走行と判定されず、中間レーン（レーン番号１）の走行と誤判定されてしまう。
【０００８】
さらに、図３に示すような４レーンの道路の場合、左右両側のレーンマークが両方とも破線の場合、中間レーンの走行と判定することはできるが、レーン番号１またはレーン番号２のどちらを走行しているのかを判定することができない。
【０００９】
上記した走行レーンの検出方法では、レーンマークの種別の一意の組合せに基づき走行レーンを判定しているので、例えば、図１のレーン番号０を走行中に、左のレーンマークが破線と誤認識された瞬間に、レーン番号１を走行していると判定され、また、実線が検出されると、レーン番号０を走行していると判定される。このようなレーンマークの誤認識により、走行レーン位置が頻繁に動くことになり、実際にどのレーンにいるのかを判断することが難しくなる。
【００１０】
一方、車両の周辺を撮像するカメラの画像データには、隣接レーンを他車が走行してなければ、自車の走行レーンの周辺レーンのレーンマーク情報が含まれており、このようなレーンマーク情報を利用すれば、さらに走行レーンの判定精度を高めることが可能である。例えば、三重線は、左端レーンの左側のレーンマークや、右端レーンの右側のレーンマークには使用されない、という情報を利用すれば、走行レーンの判定精度がさらに高くなり、誤判定を少なくすることができる。
【００１１】
本発明は、このような従来の課題を解決するものであり、走行レーンと周辺レーンのレーンマーク情報を利用して走行レーン位置を評価する走行レーン検出装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係る走行レーン検出装置は、自車が走行する道路を撮像する撮像手段と、前記撮像手段により撮像された画像データに基づき自車が走行する走行レーンの両側のレーンマーク、および前記走行レーンの周辺レーンのレーンマークを検出する検出手段と、自車が走行している道路のレーン数を取得する取得手段と、前記検出手段により検出された前記走行レーンのレーンマーク情報および前記周辺レーンのレーンマーク情報に基づき、現在の自車が前記走行レーンに位置する確からしさを評価する評価手段と、前記評価手段の評価結果に基づき自車が位置する走行レーンを判断する判断手段とを有する。
【００１３】
好ましくは前記評価手段は、前記判断手段により判断された走行レーンに関する情報をフィードバック入力し、当該走行レーンに自車が位置する確からしさを評価する。好ましくは前記評価手段は、複数の評価結果に基づき前記確からしさを評価する。好ましくは前記評価手段は、前記レーンマーク情報に含まれるレーンマークの種類およびレーンマークの本数に基づき前記確からしさを評価する。好ましくは前記評価手段は、前記取得手段により取得された道路のレーン毎の自車が走行する確からしさに関する評価値を算出し、算出された評価値の累積値が第１の閾値に到達したとき、そのレーンを自車が走行していると評価する。好ましくは前記評価手段は、算出された評価値の累積値が前記第１の閾値と極性を異にする第２の閾値に到達したとき、そのレーンを自車が走行していないと評価する。好ましくは前記評価値は、正の値および負の値を含む。好ましくは前記評価手段は、前記評価位置を加算または減算する。好ましくは前記評価手段は、一定の時間間隔または一定の走行距離毎に確からしさを評価する。好ましくは前記白線情報は、二重線、三重線等の多重線の情報を含む。
【発明の効果】
【００１４】
本発明によれば、自車が走行する走行レーンの両側のレーンマーク情報と、当該走行レーンの周辺の周辺レーンのレーンマーク情報とに基づき自車が走行レーンに位置する確からしさを評価するようにしたので、従来と比較して、自車が走行する走行レーンの判断精度を高めることができる。また、複数回の評価結果により自車が走行レーンに位置する確からしさを評価するようにしたので、走行レーンの判断結果が煩雑に切り替わることを避けることができる。
【図面の簡単な説明】
【００１５】
【図１】従来の走行レーン検出方法を説明する図である。
【図２】従来の走行レーン検出装置の課題を説明する図である。
【図３】従来の走行レーン検出装置の課題を説明する図である。
【図４】本発明の実施例に係る走行レーン検出装置の構成を示すブロック図である。
【図５】本実施例に係る走行レーン検出装置により実施されるレーン位置特定処理の全体フローを示す図である。
【図６】本実施例によるレーンマーク情報の詳細を示す図である。
【図７】本実施例に係る走行レーン評価手段の評価処理を示すフロー図である。
【図８】レーン数が３レーンの場合の評価方法を示すフロー図である。
【図８Ａ】レーン数が３レーンの場合の評価方法を示すフロー図である。
【図９】検出レーン数の関数getCaseNoの処理フローを示す図である。
【図１０】３レーンケース５の評価を示すフロー図である。
【図１１】ケース５の場合の左右レーンマークの種類に対応した場合分けの例を示す図である。
【図１２】３レーンケース５の評価テーブルと評価データを示す図である。
【図１３】関数getTypeLMの処理フローを示す図である。
【図１４】関数voteの処理フローを示す図である。
【図１５】走行レーンを示す変数laneNoを示す図である。
【図１６】レーン数を示す変数numLanesである。
【図１７】レーン評価値を示す変数evalLane[i]である。
【図１８】本実施例の走行レーン判断手段の走行レーンの判断フローを示す図である。
【図１９】関数getMaxEvalLaneの処理フローを示す図である。
【図２０】３レーンケース６の評価の処理フローを示す図である。
【図２１】３レーンケース６の左右レーンマークの種類に対応した場合分け値indexの例を示す図である。
【図２１Ａ】３レーンケース６の左右レーンマークの種類に対応した場合分け値indexの例を示す図である。
【図２２】３レーンケース６の評価テーブルと評価データを示す図である。
【図２３】３レーンケース１０の評価の処理フローを示す図である。
【図２４】３レーンケース１０の左右レーンマークの種類に対応した場合分け値indexの例を示す図である。
【図２５】３レーンケース１０の評価テーブルと評価データを示す図である。
【図２６】３レーン走行時のレーン位置特定の具体例を示す図である。
【図２７】本実施例の走行レーン検出装置が二重線に適用されるときの二重線の例示である。
【図２８】本実施例に係る走行レーン検出機能を含む電子装置を示すブロック図である。
【発明を実施するための形態】
【００１６】
次に、本発明の実施の形態について図面を参照して詳細に説明する。好ましい実施定用では、本発明に係る走行レーン検出装置は、カメラ等の撮像装置を備え、撮像された画像データを解析することでレーンマーク（白線や黄色線等）を検出する機能を有する。本発明の走行レーン検出装置は、それ単独で実施されてもよいし、ナビゲーション装置などの他の機能を有する電子装置と連携して実施されてもよい。例えば、走行レーン検出装置は、運転アシスト機能、オーディオ・ビデオデータを再生する機能、テレビ・ラジオ放送を受信する機能、アプリケーションソフトウエアを実行する機能などを備えた装置と連携することが可能である。
【００１７】
好ましい態様では、本発明に係る走行レーン検出装置は、カメラで撮像されたレーンマークの全ての情報（自車の両側のレーンマークおよび周辺レーンのレーンマーク）を利用して自車が走行するレーンを判定する。判定は、一定距離を走行するごと、あるいは一定時間が経過するごとに、ｎ個の走行レーン０、走行レーン１、走行レーン２・・・走行レーンｎ−１の定量的な評価を行い、評価による累積値が閾値以上となったとき、自車がその走行レーンを走行していると判定し、累積値が閾値以下となったとき、自車はその走行レーンを走行していないと判定する。
【実施例】
【００１８】
次に、本発明の実施例に係る走行レーン検出装置について説明する。図４は、本実施例に係る走行レーン検出装置の構成を示すブロック図である。走行レーン検出装置１０は、カメラなどの撮像装置により撮像された画像データを入力する画像入力手段１と、入力された画像データから走行レーンの左右の境界線となるレーンマークとその周辺レーンのレーンマークを検出するレーンマーク検出手段２と、現在走行している道路のレーン数を取得するレーン数取得手段３と、レーンマーク検出手段２が検出した走行レーンの左右レーンマーク情報および周辺レーンのレーンマーク情報とレーン数取得手段３が取得した走行している道路のレーン数から、現在の走行レーンの確からしさを評価する走行レーン評価手段４と、走行レーン評価手段４の評価結果を用いて走行しているレーン位置の判断を行う走行レーン判断手段５とを含んで構成される。走行レーン評価手段４には、走行レーン判断手段５により判断された走行レーンの情報がフィードバック入力され、この走行レーンを自車が走行する確からしさが評価される。
【００１９】
図５は、本実施例に係る走行レーン検出装置によるレーン位置特定処理の全体動作を示すフローである。この処理は、例えば、走行レーン検出装置１００がプログラムを実行することにより実施され得る。ここで、レーン位置を示すレーン番号は、図１に示すように、左から右へ０、１、２・・・と割り当てるものとする。
【００２０】
先ず、画像入力手段１から自車前方または後方を撮像した道路の画像データを入力する（Ｓ１）。画像入力手段１は、自車の走行する道路および周辺の道路を撮像する。撮像カメラは、例えば、自車後方を撮像するリアカメラ、自車前方を撮像するフロントカメラ、自車側方を撮像するサイドカメラ等を含むことができる。
【００２１】
次に、レーンマーク検出手段２は、撮像した道路の画像データから自車が走行するレーンの左右のレーンマークと周辺のレーンマークを検出する（Ｓ２）。周辺のレーンマークは、例えば、自車が走行する走行レーンの左右のレーンマークからレーン幅を算出し、その左右のレーンマークを基準に、その±レーン幅の範囲にある白線を隣接レーンのレーンマークとして検出する。さらに、隣接レーンのレーンマークを基準にして、さらに遠方の周辺レーンマークを検出することができる。また、画像データからレーンマークを検出する方法は、例えば、画像データの輝度が「暗」から「明」に変化するエッジ点と、輝度が「明」から「暗」に変化するエッジ点を検出し、これらのエッジ点に対するピークをペアとして探索することによりレーンマークを検出することができる。
【００２２】
図６に、レーンマーク検出手段２により検出されたレーンマーク情報の詳細な構成を示す。レーンマーク検出手段２は、その検出結果をレーンマーク情報としてメモリ等に格納し、逐次、その検出結果を更新する。レーンマーク情報は、自車の左側に検出したレーンマーク情報leftLMs、右側に検出したレーンマーク情報rightLMsを含む。左右のレーンマーク情報lefLMsとrightLMsは、それぞれ検出したレーンマーク数numLMarksと、検出したレーンマーク情報laneMark[i]（i＝０、１、・・・、numLMarks−１）とを含む。レーンマーク情報は、自車に最も近いレーンマークから遠くなる順に格納される。
【００２３】
１つのレーンマーク情報laneMark[i]は、多重線を構成する各線分情報を管理するために、線分数laneMark[i].numと、各線分の情報を格納する線分laneMark[i].line[j]（j＝０、・・・、laneMark[i].num−１）と、レーン境界線laneMark[i].baseLineを含む。図６に示す例は、三重線まで対応している。
【００２４】
単線の場合、laneMark[i].numは1で、この単線の情報をlaneMark[i].baseLineと、laneMark[i].line[0]に格納する。
二重線の場合、laneMark[i].numは２で、二重線を構成する２本の線分情報をlaneMark[i].line[0]、line[1]に格納し、これら２本の線分から算出したレーン境界線をlaneMark[i].baseLineに格納する。
三重線の場合、laneMark[i].numは３で、三重線を構成する３本の線分情報をlaneMark[i].line[0]、line[1]、line[2]に格納し、これらのレーン境界線をlaneMark[i].baseLineに格納する。
各線分の情報は、線分を地面に投影して直線式Ｙ＝ａＸ＋ｂ（Ｚ＝０、Ｚは原点）で表したとき、係数ａ、ｂ、と線幅width、線種typeなどを含む。
線種typeは、０のとき破線、１のとき実線を示す。また、baseLineに格納される値は、一例として、同一のlaneMark[i]に含まれるline[j]の平均値が格納される。
【００２５】
次に、走行レーン評価手段４は、検出したレーンマーク情報と、レーン数取得手段３から取得したレーン数とを用いて、現在走行しているレーンを評価する（Ｓ３）。評価の詳細は後述するが、走行レーン評価手段４は、評価結果として、自車が走行レーンに位置する可能性、自車が走行レーン以外の各レーンに位置する可能性を、例えば、百分率（％）で出力する。
【００２６】
次に、走行レーン判断手段５は、走行レーン評価手段４の評価結果に従い、自車が走行する走行レーンを判断する（Ｓ４）。この詳細は後述する。
【００２７】
走行レーン検出装置１０は、自車が走行するレーン位置が特定されるまで、ステップＳ１からＳ４の処理を定期的に繰り返す。なお、図５に示すレーン位置特定処理は、例えば、レーン変更などで走行レーン位置が変更になった場合、検出した左右のレーンマーク数の片方が０のとき、交差点を通過した後などに起動される。
【００２８】
次に、走行レーン評価手段４の具体的な動作について説明する。走行レーン評価手段４は、自車が走行中の道路のレーン数と検出されたレーンマーク情報に基づき現在走行しているレーンを評価する。この評価処理のフローを図７に示す。
【００２９】
先ず、走行レーン評価手段４は、レーン数取得手段３から現在走行している道路のレーン数を取得して、図１６に示す変数numLanesにレーン数を設定する（Ｓ３０１）。レーン数取得手段３は、例えば、ＧＰＳ(Global Positioning System)センサなどから現在位置を取得して、地図データ等から走行している道路のレーン数を取得する。レーン数が1未満のときは、レーンが存在しないので、何もしないで終了する（Ｓ３０２）。
【００３０】
レーン数が１のとき、自車が走行するレーンはレーン番号０しかないので、図１７に示す走行レーン評価値を示す変数evalLane[i]の走行レーン０の評価値evalLane[0]に１００を設定する（Ｓ３０３、Ｓ３０４）。この「１００」は、１００％を意味し、レーン数が１しかない場合には、レーン番号０の走行が明らかであり、従って、そのレーンを走行している確からしさは１００％である。２レーン以上のときは、レーン数に応じて検出したレーンマーク情報を参照して、各レーンに自車が存在する可能性を算出する（Ｓ３０５、Ｓ３０６、Ｓ３０７、Ｓ３０８、Ｓ３０９、Ｓ３１０、Ｓ３１１）。
【００３１】
次に、各レーンに存在する可能性を算出する処理例として、３レーンのときの評価（Ｓ３０８）について説明する。３レーンのときの詳細な評価処理を図８および図８Ａに示す。まず、検出したレーン情報の左右の検出レーンマーク数をパラメータとして、図９に示す関数getCaseNoを呼び、場合分けの値を算出し、変数caseNoに格納する（Ｓ３０９００）。関数getCaseNoは、図９に示すように検出した左右レーンマーク数をパラメータとして、どちらも４未満のとき（Ｓ３０９００２、Ｓ３０９００３）、左のレーンマーク数を４倍し、右のレーンマーク数を加算した値（Ｓ３０９００４）を、それ以外のときは１６（Ｓ３０９００１）を返す（Ｓ３０９００５）。これにより、検出した左右のレーンマーク数に対応した場合分けの値を算出する。
【００３２】
この場合分けの値は、検出した左右レーンマーク数が両方とも０のとき０、検出した左レーンマーク数が０、右レーンマーク数が１のとき１、…、検出した左レーンマーク数が１、右レーンマーク数が０のとき４、検出した左右レーンマーク数が両方とも１のとき５、…のようになる。
【００３３】
次に、検出した左右レーンマーク数から求めた場合分けcaseNoに対応した各場合分けの評価を行う（Ｓ３０９０１〜Ｓ３０９３１）。図１０は、３レーンケース５を評価するときの例である。ケース５は、検出した左右レーンマーク数がそれぞれ１本のときである。
【００３４】
まず、図１３に示す関数getTypeLMに、１本目の左側レーンマーク情報のアドレスを渡してレーンマークのタイプを取得して変数indexに格納する（Ｓ３５１）。関数getTypeLMは、図１３に示すように、渡されたレーンマーク情報を用いて、三重線か否か（Ｓ５０１）、三重線でないときに、実線か否か（Ｓ５０３）を判断する。判断結果として、三重線のとき２（Ｓ５０２）、実線のとき１（Ｓ５０４）、それ以外のとき（破線のとき）０（Ｓ５０５）を返す（Ｓ５０６）。
【００３５】
次に、変数indexを３倍して、１本目の右側レーンマーク情報に対しても同じように関数getTypeLMを呼び、その結果を変数indexに加算する（Ｓ３５２）。これにより、左右レーンマークの種類に対応した場合分け値を変数indexに格納する。このケース５のときの場合分け値の例を図１１に示す。例えば、左レーンマークが三重線、右レーンマークが破線の場合、indexは６となる。
【００３６】
左右レーンマークの種類に対応した場合分け値を変数indexに格納後、図１５の走行レーンlaneNoに対応した評価値テーブルから評価データを選択して、走行レーン評価データの投票を行う（Ｓ３５３、Ｓ３５４、Ｓ３５５、Ｓ３５６、Ｓ３５７）。この３レーンケース５の評価テーブルと評価データを図１２に示す。
走行レーンlaneNoが０、１、２に対して、評価テーブルvote３５０、vote３５１、vote３５２をそれぞれ選択し、その中の使用する評価データを場合分け値indexで選択する。
【００３７】
レーン数と選択した評価データの先頭アドレスを引数として、図１４に示す関数voteを呼び走行レーン評価の投票を行う。関数voteは、図１４に示すように、図１７に示す走行レーン評価値を格納する変数evalLane[i]に、投票する評価データpVotes[i]（ｉ＝０、１・・・num−１）を各レーンの評価値に加算する。なお、走行レーン評価値evalLane[i]（ｉ＝０、１、・・・）は、レーン位置特定処理が開始行されるときに、０に初期化される。
【００３８】
例えば、３レーンの道路で左端レーンを走行している場合（走行レーンlaneNoが０のとき）、左側レーンマークとして1本検出し、それが三重線、右側レーンマークとして1本検出し、それが破線の場合は、３レーンケース５で評価テーブルとしてvote350が選択され、indexは６となり、評価データとしてvote350[６]が選択される。
【００３９】
vote350[６]は、図１２に示すように、評価値が、−３０、３０、０の組であり、走行レーン０に存在する可能性が−３０％、走行レーン１に存在する可能性が３０％、走行レーン２に存在する可能性は０％であることを示す。ここで、マイナスは存在しない可能性（誤っている可能性）を示す。
【００４０】
同様に、３レーンケース６の評価の処理フローを図２０に示す。このときの左右レーンマークの種類に対応した場合分け値indexの例を図２１および図２１Ａ、評価テーブルと評価データを図２２に示す。３レーンケース１０の評価の処理フローを図２３に示す。このときの左右レーンマークの種類に対応した場合分け値indexの例を図２４、評価テーブルと評価データを図２５に示す。
【００４１】
次に、上記の評価結果に基づき、走行レーン判断手段５による走行レーンの判断処理（Ｓ４）を図１８のフローに示す。まず、現在の走行レーンlaneNoの示す走行レーン評価値evallane[laneNo]が１００以上か否かを判断する（Ｓ４０１）。１００以上ならば、laneNoの示すレーンを走行レーンとして確定し（Ｓ４０２）、レーン位置特定処理を終了する（Ｓ４０３）。
【００４２】
評価値が１００以上でないとき、現在の走行レーンlaneNoの示す走行レーン評価値evalLane[laneNo]が−１００以下か否かを判断する（Ｓ４０４）。−１００以下の場合は、現在の走行レーンlaneNoが誤っている可能性があるので、図１９に示す関数getMaxEvalLaneを呼び、可能性がある走行レーン番号を取得して変数maxEvalに設定する（Ｓ４０５）。関数getMaxEvalLaneの処理を図１９に示す。この関数は、走行レーン評価値evalLane[i]（ｉ＝０、１、…、numLanes−１）を参照して、レーンの中で一番大きな評価値を持つレーン番号を取得して、その値を返す。評価値が０を超えるものがなければ、そのようなレーンがないということを示すために、−１を返す。
【００４３】
次に、関数getMaxEvalLaneの結果maxEvalが０以上か否かを判断する（Ｓ４０６）。０未満のとき（−１のとき）は、可能性のあるレーンがないので、現状の走行レーンlaneNoでレーン位置特定処理を継続する。変数maxEvalが０以上のときは、その値が可能性ある走行レーン番号になるので、現在の走行レーンを示すlaneNoに、変数maxEvalの値を設定し（Ｓ４０７）、走行レーン評価値evalLane[i]（i＝０、１、・・・）を初期化して（Ｓ４０８）、修正した走行レーンlaneNoでレーン位置特定処理を継続する。
【００４４】
例えば、図２６（ａ）に示すように、全てのレーンマークが実線である３レーンの道路でレーン番号１を走行しているとき、このレーン位置特定機能を動作させた場合の処理について説明する。このとき、左右レーンマークが図２６（ｂ）、（ｃ）、（ｄ）、（ｅ）、（ｆ）の順で検出されるものとする。
【００４５】
図２６（ｂ）は、左レーンマーク１本（実線）、右レーンマーク２本（両方とも実線）であり、図２６（ｃ）は、左レーンマーク１本（実線）、右レーンマーク２本（車に近い方から破線、実線）であり、図２６（ｄ）は、左レーンマーク１本（実線）、右レーンマーク１本（破線）であり、図２６（ｅ）は、左レーンマーク１本（実線）、右レーンマーク２本（車に近い方から実線、実線）であり、図２６（ｆ）は、左レーンマーク２本（両方とも実線）、右レーンマーク２本（両方とも実線）である。
【００４６】
先ず、検出結果が図２６（ｂ）のとき、図２０に示す３レーンケース６の評価が呼ばれ、indexは図２１に示すように１３になり、laneNoは１なので、図２２に示す評価テーブルvote361の評価データvote361[13]が選択され、走行レーン評価値evalLane[0]、[1]、[2]は、それぞれ０、１０、０となる。
【００４７】
次に、検出結果が図２６（ｃ）のとき、これは右レーンマークを実線から破線に誤認識した場合である。このとき、同様に図２０に示す３レーンケース６の評価が呼ばれ、indexは、図２１に示すように１０になり、走行レーンlaneNoは１なので、図２２に示す評価テーブルvote361の評価データvote361[10]が選択され、走行レーン評価値evalLane[0]、[1]、[2]は、それぞれ０、２０、０になる。
【００４８】
検出結果が図２６（ｄ）のとき、これは1本目の右レーンマークを実線から破線に誤認識した場合である。このとき、図１０に示す３レーンケース５の評価が呼ばれ、indexは図１１に示すように３になり、図１２に示す評価テーブルvote351の評価データvote351[3]が選択され、走行レーン評価値evalLane[0]、[1]、[2]は、それぞれ０、２０、０になる。前と同じである。
【００４９】
次に、図２６（ｅ）のとき、図２０に示す３レーンケース６の評価が呼ばれ、indexは図２１に示すように１３になり、走行レーンlaneNoは１なので、図２２に示す評価テーブルvote361の評価データvote361[13]が選択され、走行レーン評価値evalLane[0]、[1]、[2]は、それぞれ０、３０、０になる。
【００５０】
図２６（ｆ）のとき、図２３に示す３レーンケース１０が呼ばれ、indexは図２４に示すように４０になり、走行レーンlaneNoは１なので、図２５に示す評価テーブルvote3101の評価データvote3101[40]が選択され、走行レーン評価値evalLane[0]、[1]、[2]は、それぞれ０、１１０、０になる。
【００５１】
ここで、走行レーンlaneNoの走行レーン評価値evalLane[1]が１１０となり、閾値１００以上なので、laneNoが示すレーン番号１が走行レーンとして確定してレーン位置特定処理を終了する。このように、周辺レーンマーク情報を利用することで精度良いレーン位置を判断することができる。また、１回のレーンマーク情報で決めるのではなく、何回かの情報による可能性を示す値を累積してレーン位置を判断するので、走行レーン位置が煩雑の動くことが避けられる。
【００５２】
なお、図１２、２２、２４の評価データにおいて、三重線は、左端レーンの左レーンマークに使われない、右端レーンの右レーンマークに使われないことを前提に評価データを決定している。従って、二重線についても、図２７（ａ）に示す二重線は、左端レーンの左レーンマークに使われない、図２７（ｂ）に示す二重線は、右端レーンの右レーンマークに使われないことを評価データに反映してもよい。
【００５３】
また本実施例では、レーン位置特定処理を一定間隔で処理をしているが、自車の速度等を用いてある一定距離を走行したとき処理をするようにしてもよい。これにより、低速で走行しているときに、同じような場所の画像入力を避けられることが出来、広範囲の画像で走行レーンを判断できる。
【００５４】
図２８は、本実施例に係る走行レーン検出機能を含む電子装置の構成を示すブロック図である。電子装置１００は、車両の周辺を撮像する撮像部１１０と、ユーザーからの指示を受け取る入力部１２０と、音声や映像等を出力する出力部１３０と、種々のデータ等を格納する記憶部１４０と、各部を制御する制御部１５０とを含む。制御部１５０は、例えば、ＲＯＭ／ＲＡＭ、マイクロコントローラ、マイクロプロセッサ等を含み、記憶部１４０に格納されたアプリケーションソフトウエアやプログラム等を実行し、走行レーン検出機能の他に、ナビゲーション機能、運転アシスト機能、オーディオ・ビデオデータを再生する機能等を提供することができる。
【００５５】
以上、本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された発明の要旨の範囲において、種々の変形、変更が可能である。
【符号の説明】
【００５６】
１：画像入力手段                            ２：レーンマーク検出手段
３：レーン数取得手段                        ４：走行レーン評価手段
５：走行レーン判断手段                    １０：走行レーン検出装置
１００：電子装置                            １１０：撮像部
１２０：入力部                              １３０：出力部
１４０：記憶部
【図１】
2019028856.tif 000003
【図２】
2019028856.tif 000004
【図３】
2019028856.tif 000005
【図４】
2019028856.tif 000006
【図５】
2019028856.tif 000007
【図６】
2019028856.tif 000008
【図７】
2019028856.tif 000009
【図８】
2019028856.tif 000010
【図８Ａ】
2019028856.tif 000011
【図９】
2019028856.tif 000012
【図１０】
2019028856.tif 000013
【図１１】
2019028856.tif 000014
【図１２】
2019028856.tif 000015
【図１３】
2019028856.tif 000016
【図１４】
2019028856.tif 000017
【図１５】
2019028856.tif 000018
【図１６】
2019028856.tif 000019
【図１７】
2019028856.tif 000020
【図１８】
2019028856.tif 000021
【図１９】
2019028856.tif 000022
【図２０】
2019028856.tif 000023
【図２１】
2019028856.tif 000024
【図２１Ａ】
2019028856.tif 000025
【図２２】
2019028856.tif 000026
【図２３】
2019028856.tif 000027
【図２４】
2019028856.tif 000028
【図２５】
2019028856.tif 000029
【図２６】
2019028856.tif 000030
【図２７】
2019028856.tif 000031
【図２８】
2019028856.tif 000032