以下に、本願の開示する車線検出プログラム及び車線検出装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
続いて、実施例2に係る車載装置について説明する。図2は、実施例2に係る車載装置の構成を示すブロック図である。図2に示すように、車載装置10は、その内部に記憶部11と、制御部12とを有する。また、車載装置10は、車両に搭載される他の装置と接続されており、例えば、車載カメラ200、車両ECU(Electronic Control Unit)300や出力デバイス400などの他の装置と接続される。
まず、車載装置10に接続される他の装置を説明する。このうち、車載カメラ200は、車両に搭載されるカメラである。一例としては、車載カメラ200として、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)などの撮像装置を適用できる。なお、本実施例では、車載カメラ200が後述のエッジ検出部12aへ白黒画像を入力する場合を説明するが、カラー画像を入力することとしてもかまわない。
この車載カメラ200は、自車両の所定の設置位置に取り付けられるとともにカメラの光軸の向きが所定の設置角度になるように取り付けられる。例えば、車載カメラ200は、車両の前方の所定領域、例えば自車両のフロントグリルから30m前方までの領域を撮像することができるように設置位置及び設置角度が調節される。なお、本実施例では、車載カメラ200が固定設置される場合を説明するが、車載カメラ200が水平方向または鉛直方向に可動または回動する場合にも開示の装置を適用できる。
車両ECU300は、車両を制御するためのユニットである。例えば、車両ECU300は、後述の自車位置判断部12fによって出力された自車位置の判断結果に基づき、車両のエンジン、ブレーキやハンドルなどの制御を行う。一例としては、車両ECU300は、方向指示器の操作を受け付けていないにもかかわらず、一方の車線に所定の距離まで近付いている場合や車線からはみ出している場合などには危険防止制御を行う。かかる危険防止制御として、車両ECU300は、エンジンブレーキ又はブレーキにより制動をかけたり、或いは2つの車線により形成される走行領域の中央に車両が復帰するように操舵角を調節したりする。
出力デバイス400は、モニタ、ディスプレイやタッチパネルなどの表示装置、スピーカなどの音声出力装置などを含む。この出力デバイス400は、車載装置10や車両ECU300などの指示に基づき、車載装置10または車両ECU300で実行された処理の結果を表示または音声出力する。一例としては、出力デバイス400は、後述の自車位置判断部12fによって判断された自車位置を表示したり、さらに、自車両が内側線または外側線からはみ出している場合には、その旨を警告として音声出力したりする。
次に、車載装置10の内部構成を説明する。図2に示すように、記憶部11は、例えば、フラッシュメモリ(flash memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部13は、上記の種類の記憶装置に限定されるものではなく、RAM(Random Access Memory)、ROM(Read Only Memory)であってもよい。
記憶部11は、制御部12で実行される各種プログラム(例えば、車線検出用プログラムや自車位置判断用プログラムなど)やそのプログラムの実行に必要なデータ(例えば、車載カメラ200の設置位置、設置角度、撮影画像など)を記憶する。このほか、記憶部11は、例えば白線候補データ11aと、路面標示データ11bと、白線データ11cとを記憶する。
このうち、白線候補データ11aは、車載カメラ200により撮像された撮影画像から白線候補抽出部12bにより白線候補として抽出されたエッジ線分を示す情報である。この白線候補データ11aは、撮影画像上で垂直方向に線分をなす一対のエッジ線分であり、あくまで白線に似た特徴を有する候補である。すなわち、白線候補データ11aには、実際の白線も含まれるものの、白線に特徴が類似する他の路面標示、例えば横断歩道、矢印標示や速度標示なども含まれる。
路面標示データ11bは、白線候補データ11aのうち後述の路面標示除外部12cによって白線候補から除外された路面標示を示すエッジ線分である。すなわち、路面標示データ11bには、白線に類似しているが白線ではない路面標示、例えば横断歩道、矢印標示や速度標示などが含まれる。
白線データ11cは、白線候補データ11aのうち後述の白線決定部12dによって白線として決定された白線を示すエッジ線分である。すなわち、白線データ11cは、白線候補データ11aから横断歩道、矢印標示および速度標示などの他の路面標示が除外された白線候補同士を道路が連なる方向に沿って連結したものである。
制御部12は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、または、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
この制御部12は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部12は、図2に示すように、エッジ検出部12aと、白線候補抽出部12bと、路面標示除外部12cと、白線決定部12dと、出力制御部12eと、自車位置判断部12fとを有する。
このうち、エッジ検出部12aは、撮影画像の中からエッジ成分を検出する処理部である。一例としては、エッジ検出部12aは、画像上における水平方向、垂直方向や斜め方向のエッジを検出するための所定のフィルタを用いて、撮影画像の各画素の輝度値からエッジ点を検出する。なお、輝度値とは、各画素の明るさを示し、例えば「1〜256」の数値で表現される。そして、エッジ検出部12aは、このようにして検出したエッジ点を繋ぎ合わせることによりエッジ線分を検出する。このエッジ検出の段階で得られたエッジ線分には、白線、横断歩道、矢印標示や速度標示などの路面標示だけでなく、道路のひび割れなどのノイズ成分も含まれる。
なお、エッジ検出部12aでは、車載カメラ200によって撮像された撮影画像をそのまま入力画像としてエッジ検出を行うこととしてもよいし、記憶部11に格納してから読み出して処理を行うこととしてもかまわない。また、エッジ検出部12aは、必ずしも撮影画像全てに対してエッジ検出を行う必要はない。
図3は、撮影画像の一例を示す図である。図3に示す符号「Vp」は、撮影画像31における消失点を示す。図3に示す例で言えば、エッジ検出部12aは、撮影画像31の全領域のうち消失点Vpよりも下部に所在する路面領域だけをエッジ検出の対象とすることもできる。このように、エッジ検出の処理対象を限定するのは、消失点Vpよりも上部の領域にエッジ検出を行ったとしても白線は検出できないからである。さらには、撮影画像に含まれる施設や置物などが後述の白線候補抽出部12bにより白線と誤って抽出されることを防止するためでもある。
白線候補抽出部12bは、エッジ検出部12aによって検出されたエッジ線分から白線候補を抽出する処理部である。ここでは、自車両の走行領域の左側にある白線候補の抽出を行う場合を想定して以下の説明を行う。かかる場合には、白線候補抽出部12bは、撮影画像の中心部により近いエッジ線分から順にそのエッジ線分を内側線とし、その内側線と対をなす、すなわち内側線よりも左側に所在し、かつ内側線と略平行であるエッジ線分を外側線として検索する。ここで言う「内側線」とは、2つの白線によって形成される自車両の走行領域において白線と路面舗装との輝度値の差により顕在化するエッジ成分のうち各白線の内側に現れるエッジ成分を指す。また、「外側線」とは、2つの白線によって形成される自車両の走行領域において白線と路面舗装との輝度値の差により顕在化するエッジ成分のうち各白線の外側に現れるエッジ成分を指す。このとき、白線候補抽出部12bは、撮影画像における中心部よりも左側に所在するエッジ線分のうち、垂直方向に対する傾きが所定の角度以内であるエッジ線分を内側線として選定するものとする。なお、ここでは、自車両の走行領域の左側にある白線候補の抽出を行う場合を想定して説明を行ったが、自車両の走行領域の右側にある白線候補の抽出を行う場合も内側線および外側線の左右が逆になるだけでその他の処理は同様である。
そして、白線候補抽出部12bは、このようにして検索した内側線および外側線の重複率が所定の閾値以上であるか否かを判定する。ここで言う重複率とは、内側線および外側線の両方が重複する重複部分の長さが内側線の長さに占める割合をいう。図4は、白線のエッジ画像の一例を示す図である。図4に示す符号「41」は内側線を示す。図4に示す符号「42」は外側線を示す。図4に示す符号「43」は内側線41と外側線42の重複部分の長さを示す。図4に示す符号「44」は内側線41の長さを示す。図4に示す符号「45」は内側線41および外側線42が形成する帯線の横幅を指す。図4に示す例で言えば、白線候補抽出部12bは、内側線41および外側線42の両方が重複する重複部分の長さ43が内側線41の長さ44で占める百分率が25%以上であるか否かを判定する。
続いて、白線候補抽出部12bは、重複率が所定の閾値以上である場合に、内側線および外側線の輝度値の変化が所定の閾値以内であるか否かをさらに判定する。ここで言う輝度値の変化とは、内側線および外側線における高輝度側の輝度値の差分の絶対値と、内側線および外側線における低輝度側の輝度値の差分の絶対値との和を指す。
図5は、内側線および外側線を境界とした輝度値の変化を説明するための図である。図5に示す符号「51A」は内側線41の高輝度側の領域を指す。図5に示す符号「51B」は内側線41の低輝度側の領域を指す。図5に示す符号「52A」は外側線42の高輝度側の領域を指す。図5に示す符号「52B」は外側線42の低輝度側の領域を指す。図5に示す例で言えば、白線候補抽出部12bは、領域51Aの輝度値の平均値および領域52Aの輝度値の平均値の差分値の絶対値と、領域51Bの輝度値の平均値および領域52Bの輝度値の平均値の差分値の絶対値とを足し合わせる。そして、白線候補抽出部12bは、2つの差分値の絶対値を足し合わせた合算値が所定の閾値、例えば50以内であるか否かを判定する。このとき、白線候補抽出部12bは、合算値が所定の閾値以上である場合には、内側線および外側線として仮決めした一対のエッジ線分を白線候補として抽出はしない。かかる輝度値の変化が閾値よりも大きい場合に白線候補から除外するのは、内側線および外側線の間で白線の色が大幅に変化することが稀であるからである。さらに、内側線が面する道路の舗装および外側線が面する道路の舗装の色が大幅に変化することも稀であるからである。
そして、白線候補抽出部12bは、内側線および外側線の輝度値の変化が所定の閾値以内である場合に、内側線および外側線が形成する帯線の横幅が所定の範囲以内であるか否かをさらに判定する。図4に示した例で言えば、白線候補抽出部12bは、内側線41および外側線42が形成する帯線の横幅45が「10cm≦横幅≦75cm」の範囲に収まるか否かを判定する。このとき、白線候補抽出部12bは、帯線の横幅45が上記の範囲に収まらない場合には、内側線および外側線として仮決めした一対のエッジ線分を白線以外の他の路面標示候補として記憶部11の白線候補データ11aに登録する。
なお、ここでは、説明の便宜上、帯線の横幅と比較する値として、画像スケールから実寸スケールに換算された値を例示しているが、実際には画像スケールの値で帯線の横幅との比較が行われる。
続いて、白線候補抽出部12bは、内側線および外側線が形成する帯線の白線らしさを表す指標、以下白線スコアと表記を算出する。一例として、白線候補抽出部12bは、下記の算出式を用いて白線スコアを算出する。
上記の算出式において「帯線の輝度値」とは、内側線および外側線が形成する帯線に含まれる画素いずれかの輝度値または各画素の平均値を指す。かかる「帯線の輝度値」を分子とする算出式とした場合には、帯線の色が白ければ白いほど白線スコアを上げる重み付けを行うことができる。
また、「輝度値の差分」とは、内側線の高輝度側の輝度値−内側線の低輝度側の輝度値と、外側線の高輝度側の輝度値−外側線の低輝度側の輝度値との平均値を指す。図5に示す例で言い換えれば、領域51Aの輝度値の平均値−領域51Bの輝度値の平均値と、領域52Aの輝度値の平均値−領域52Bの輝度値の平均値との平均値を指す。かかる「輝度値の差分」を分子とする算出式とした場合には、白線と路面舗装のコントラストが明瞭であるほど白線スコアを上げる重み付けを行うことができる。
また、「処理範囲の長さ」とは、撮影画像のうちエッジ検出をはじめとする画像処理の対象とした範囲の垂直方向の長さを示す。かかる「処理範囲の長さ」を分母とし、「内側線の長さ」を分子とする算出式とした場合には、処理範囲に占める内側線の割合が多ければ多いほど白線スコアを上げる重み付けを行うことができる。
また、「重複率」を加算する算出式とした場合には、内側線および外側線の両方が重複する重複部分の長さが内側線の長さに占める割合が大きいほど白線スコアを上げる重み付けを行うことができる。
このように、上記の算出式を用いた場合には、白線候補抽出部12bは、一対のエッジ線分が白線と類似する傾向を示すほどスコアが高くなるように白線スコアを算出することができる。
なお、白線スコアの算出式は、上記の算出式に限定されるものではない。例えば、白線スコアの算出式では、「帯線の輝度値」を含む項、「輝度値の差分」を含む項、「内側線の長さ」を含む項、重複率の項のうち一部の項を省くこともできるし、新たな項を追加することもできる。また、白線スコアの算出式では、各項に対して任意の定数を乗じたり、除したりすることで任意の重み付けを行うこともできる。また、上記の白線スコアの算出式では、加点方式としたが減点方式の算出式としてもかまわない。
そして、白線候補抽出部12bは、白線スコアが所定の閾値以上である場合には、先に内側線および外側線と仮決めした一対のエッジ線分を白線候補として抽出し、抽出した一対のエッジ成分を白線候補データ11aとして記憶部11へ登録する。なお、白線候補抽出部12bは、白線スコアが所定の閾値未満である場合には、先に内側線および外側線と仮決めした一対のエッジ線分を白線候補として抽出しない。
この白線候補を抽出した段階で得られたエッジ線分では、撮影画像に含まれるエッジ線分のうち道路のひび割れなどのノイズ成分が除外され、白線をはじめ、白線と類似する横断歩道、矢印標示や速度標示などの路面標示に絞られる。
図2の説明に戻り、路面標示除外部12cは、白線候補の中から白線以外の路面標示を除外する処理部である。すなわち、路面標示除外部12cは、白線候補抽出部12bによって抽出された白線候補から「横断歩道」、「矢印標示」及び「速度標示」を除外する。
まず、白線候補から横断歩道を除外する場合について説明する。路面標示除外部12cは、撮影画像における1つの水平ラインに含まれる白線候補を探索し、1つの水平ラインに含まれる白線候補の数が所定の閾値以上であるか否かを判定する。例えば、路面標示除外部12cは、道路には1つの走行領域に2つの白線が含まれるのが原則であるので、先の閾値を3つとして白線候補の数が3つ以上存在する場合には白線候補が横断歩道の可能性があると判定する。
さらに、路面標示除外部12cは、1つの水平ラインに含まれる白線候補の数が所定の閾値以上である場合に、その水平ラインに含まれる各白線候補のエッジ点間の距離が所定の範囲以内であるか否かをさらに判定する。ここで、横断歩道の縞模様の間隔は、予め道路標識、区画線および道路標示に関する命令により定められている。このため、路面標示除外部12cでは、各白線候補のエッジ点間の距離が横断歩道の縞模様の間隔として規定される規定値を含む所定の範囲、例えば「45cm≦横幅≦50cm」の範囲に収まるか否かを判定する。このとき、路面標示除外部12cは、各白線候補のエッジ点間の距離が所定の範囲内に収まる場合には、各白線候補のエッジ点を横断歩道候補のエッジ点と推定し、その横断歩道候補を路面標示データ11bとして記憶部11へ登録する。
かかる水平ラインに対する白線候補の探索が撮影画像の全ラインについて終了すると、路面標示除外部12cは、記憶部11に路面標示データ11bとして記憶された横断歩道候補のエッジ点が垂直方向に連続するか否かを判定する。そして、路面標示除外部12cは、垂直方向に連続する横断歩道候補の長さが所定の閾値以上であるか否かを判定する。ここで、横断歩道において歩行者が横断方向と直行する方向の幅、すなわち横断歩道の横幅は、少なくとも2m以上であると想定される。このため、路面標示除外部12cでは、横断歩道候補の長さが2m以上であるか否かを判定する。このとき、路面標示除外部12cは、横断歩道候補の長さが2m以上である場合には、横断歩道候補を横断歩道と決定し、横断歩道候補を横断歩道として記憶部11へ確定登録する。そして、路面標示除外部12cは、記憶部11に白線候補データ11aとして記憶された白線候補の中から、横断歩道として確定登録した横断歩道候補のエッジ点を含む白線候補を削除することにより、白線候補から横断歩道を除外する。
次に、白線候補から矢印標示を除外する場合について説明する。路面標示除外部12cは、矢印標示の特徴に基づいて白線候補から矢印標示を除外する。図6は、矢印標示の一例を示す図である。図6に示す符号「61A」は直進矢印標示を示す。図6に示す符号「62B」は、右折矢印標示を示す。図7は、矢印標示のエッジ画像の一例を示す図である。図7に示す符号「71A」及び「72A」は直線矢印標示の矢印部分のエッジ線分を示す。図7に示す符号「73A」は直線矢印標示の矢印部分のエッジ線分の交点を示す。図7に示す符号「74A」は直線矢印標示の帯線部分を形成するエッジ線分を示す。図7に示す符号「71B」〜「74B」は右折矢印標示の矢印部分のエッジ線分を示す。図7に示す符号「75B」及び「76B」は右折矢印標示の矢印部分のエッジ線分の交点を示す。図7に示す符号「77B」は右折矢印標示の帯線部分を形成するエッジ線分を示す。
図6に示す直線矢印標示61A及び右折矢印標示62Bは、図7に示すように、いずれも矢印標示の矢印部分のエッジ線分が交わるエッジ画像が得られるという傾向、さらには、矢印部分の下部近傍に白線と類似する帯線部分を有する傾向がある。図7の例で言えば、直線矢印標示61Aのエッジ画像では、エッジ線分71Aを内側線、エッジ線分72Aを外側線とする白線候補が交点73Aで交わる。さらに、直線矢印標示61Aのエッジ画像では、エッジ線分71A及び72Aを有する白線候補の下部近傍に、白線と類似する帯線部分74Aを有する他の白線候補が存在する。一方、右折矢印標示62Bのエッジ画像では、エッジ線分71Bを内側線、エッジ線分72Bを外側線とする白線候補が交点75Bで交わり、エッジ線分73Bを内側線、エッジ線分74Bを外側線とする白線候補が交点76Bで交わる。さらに、右折矢印標示61Bのエッジ画像では、エッジ線分71B及び72Bを有する白線候補と、エッジ線分73B及びエッジ線分74Bを有する白線候補の下部近傍に、白線と類似する帯線部分77Bを有する他の白線候補が存在する。
これらのことから、路面標示除外部12cは、白線候補に含まれる内側線および外側線が交わり、かつその白線候補の下部近傍に他の白線候補が存在する場合には、白線候補及び他の白線候補を矢印標示として推定する。これによって、路面標示除外部12cは、白線と類似する帯線部分を有する矢印標示を白線候補から除外できる。
これを説明すると、路面標示除外部12cは、記憶部11に白線候補データ11aとして記憶された白線候補を1つ取り出す。そして、路面標示除外部12cは、白線候補に含まれる内側線および外側線が交わるか否かを判定する。そして、路面標示除外部12cは、内側線および外側線が交わる場合には、その白線候補の下部近傍に他の白線候補が存在するか否かをさらに判定する。このとき、路面標示除外部12cは、他の白線候補が存在する場合には、白線候補及び他の白線候補を矢印標示として記憶部11へ登録し直す。その後、路面標示除外部12cは、交点の探索および矢印標示の帯線部分の探索を全白線候補を対象に繰り返し行う。そして、全白線候補について探索が終了すると、路面標示除外部12cは、記憶部11に白線候補データ11aとして記憶された白線候補の中から、矢印標示として登録し直した白線候補を削除することにより、白線候補から矢印標示を除外する。
次に、白線候補から速度標示を除外する場合について説明する。路面標示除外部12cは、速度標示の特徴に基づいて白線候補から速度標示を除外する。すなわち、速度標示には、「40(km/h)」、「50(km/h)」、「60(km/h)」、・・・というように一の位が必ず「0」になるという傾向がある。このことから、路面標示除外部12cでは、速度標示に含まれる「0」の部分を検出し、検出した「0」の部分から速度標示がなされる領域を推定する。そして、路面標示除外部12cは、速度標示領域に含まれる白線候補を除外することにより、白線候補から速度標示を除外する。
図8は、速度標示における数字ゼロの特定要領を説明するための図である。図8に示す符号「80」は速度標示の一例を示す図である。図8に示す符号「80a」は速度標示に含まれる数字ゼロを示す。図8に示す符号「80b」は速度標示に含まれる数字ゼロ80aのエッジ線分を示す。図8に示す符号「81」は白線候補の外側のエッジ線分間の間隔を示す。図8に示す符号「82」は水平方向に整列する二組の白線候補を示す。図8に示す符号「83」は、撮影画像の奥側、すなわち上側の水平方向のエッジ線分を示す。図8に示す符号「84」は、撮影画像の手前側、すなわち下側の水平方向のエッジ線分を示す。図8に示す符号「85」は速度標示80のエッジ画像を示す。
図8に示すように、速度標示80には数字ゼロ80aが含まれる。路面標示除外部12cは、撮影画像の水平方向に整列する白線候補82の組を探索する。このとき、路面標示除外部12cは、白線候補82の外側同士のエッジ線分の間隔81が所定値、例えば速度標示に含まれる数字ゼロ80aの規定値である50cmであるか否かを判定する。なお、ここでは、白線候補82の外側のエッジ線分間の間隔81が数字ゼロ80aの規定値との間で過不足がない場合に速度標示の数字ゼロ80aである可能性ありと判定する場合を説明したが、規定値を基準とする所定の範囲に収まるか否かと幅を設けてもよい。
また、路面標示除外部12cは、白線候補82の外側同士のエッジ線分の間隔81が所定値である場合に、その白線候補82の組の下部近傍に水平方向のエッジ線分84が存在するか否かをさらに判定する。ここで、路面標示除外部12cは、車載カメラ200と速度標示80との位置関係からいって撮影画像の奥側のエッジ線分83よりも手前側のエッジ線分84の方が車載カメラ200に近くなるので、エッジ線分84の方がエッジ線分の成分も大きくなる。このため、路面標示除外部12cでは、速度標示の数字ゼロ80aの検出に撮影画像の手前側のエッジ線分84を用いることとしたが、撮影画像の奥側の2つのエッジ線分83を用いることとしてもよい。
そして、路面標示除外部12cは、白線候補82の組の下部近傍に水平方向のエッジ線分84が存在する場合には、速度標示の数字ゼロ80aが撮影画像に含まれるものと見做し、数字ゼロ80aの標示領域から速度標示領域を算出する。
図9は、速度標示領域の算出要領を説明するための図である。図9に示す符号「91」は速度標示に含まれる数字ゼロの標示領域を示す。図9に示す符号「92」は速度標示に含まれる十の位の数字の標示領域を示す図9に示す符号「93」は二桁の速度標示を行う場合の速度標示領域を示す。図9に示す例で言えば、速度標示に含まれる数字ゼロの標示領域91は縦5m及び横50cmの領域と規定されている。また、速度標示に含まれる十の位の数字の標示領域92は縦5m及び横70cmの領域と規定されている。このため、路面標示除外部12cは、数字ゼロの標示領域91の左側に十の位の数字の標示領域92を併せた領域、すなわち縦5m及び横1.2mの領域を速度標示領域93として算出する。なお、図9の例では、二桁の速度標示を行う場合の速度標示領域を説明したが、三桁の速度標示を行う場合にも同様にして速度標示領域を算出できる。
このようにして速度標示領域93を算出すると、路面標示除外部12cは、速度標示の数字ゼロ80aと検出した白線候補82を速度標示として記憶部11へ登録し直す。その後、路面標示除外部12cは、数字ゼロ80aの検出および速度標示領域の算出を全白線候補を対象に繰り返し行う。そして、全白線候補について処理が終了すると、路面標示除外部12cは、記憶部11に白線候補データ11aとして記憶された白線候補の中から、速度標示として登録し直した白線候補を削除することにより、白線候補から速度標示を除外する。
この路面標示を除外した段階で得られた白線候補には、白線と類似する横断歩道、矢印標示および速度標示などの他の路面標示が除外され、全てのエッジ成分のうち白線に係るエッジ線分だけが白線候補データ11aとして記憶部11に残されることになる。
図2の説明に戻り、白線決定部12dは、路面標示除外部12cによって白線以外の他の路面標示が除外された白線候補に基づき、白線を決定する処理部である。例えば、白線決定部12dは、路面標示除外部12cによって路面標示が除外された後に、記憶部11に白線候補データ11aとして記憶された白線候補同士を道路が連なる方向に沿って連結し、連結した白線を白線データ11cとして記憶部11へ登録する。
出力制御部12eは、白線データ11cの出力制御を行う処理部である。一例としては、出力制御部12eは、路面標示除外部12cによって白線以外の他の路面標示が検出されずに白線決定部12dによって白線だけが単独で検出された場合にはその白線の検出結果である白線データ11cを自車位置判断部12fへ出力する。一方、出力制御部12eは、白線決定部12dによって白線が検出されるとともに路面標示除外部12cによって白線以外の他の路面標示が検出された場合には白線データ11cを自車位置判断部12fへ出力するのを抑止する。なお、ここでは、車載装置10内の他の機能部として自車位置判断部12fへ白線データを出力させる場合の制御について説明したが、車載装置10の外部装置へ白線データを出力する場合の制御についても同様である。
自車位置判断部12fは、出力制御部12eによって出力される白線データ11cと、車載カメラ200の設置位置及び設置角度とを用いて路面上での自車位置を判断する処理部である。この自車位置判断部12fには、白線決定部12dで白線データ11cが生成されたからといって必ずしも白線データ11cが供給されるとは限らない。すなわち、自車位置判断部12fは、出力制御部12eによって白線データ11cが出力された場合、つまり白線が単独検出された場合に、2つの白線により形成される走行領域上で自車両が所在する位置を認識する。このとき、自車位置判断部12fは、自車両が白線に所定の距離、例えば30cmまで近付いている場合や白線からはみ出している場合などには、車両ECU300や出力デバイス400にその旨を出力する。
[処理の流れ]
次に、本実施例に係る車載装置の処理の流れを説明する。図10は、実施例2に係る出力制御処理の手順を示すフローチャートである。この処理は、車載カメラ200によって撮影画像が入力画像として入力されるか、或いは記憶部11に記憶された撮影画像が読み出された場合に処理が起動する。
図10に示すように、撮影画像が入力されると(ステップS101肯定)、エッジ検出部12aは、撮影画像の各画素の輝度値からエッジ点を検出し(ステップS102)、検出したエッジ点を繋ぎ合わせることによりエッジ線分を検出する(ステップS103)。続いて、白線候補抽出部12bは、エッジ検出部12aによって検出されたエッジ線分から白線候補を抽出する「白線候補抽出処理」を行う(ステップS104)。
ここで、図11を用いて、図10のステップS104で示した白線候補抽出処理について説明する。図11は、実施例2に係る白線候補抽出処理の手順を示すフローチャートである。図11に示すように、白線候補抽出部12bは、撮影画像の中心部により近いエッジ線分から順にそのエッジ線分を内側線と仮決めし、その内側線と対をなす外側線を検索する(ステップS201)。
そして、白線候補抽出部12bは、これら内側線および外側線の重複率が所定の閾値以上であるか否かを判定する(ステップS202)。このとき、重複率が所定の閾値以上である場合(ステップS202肯定)には、白線候補抽出部12bは、内側線および外側線の輝度値の変化が所定の閾値以内であるか否かをさらに判定する(ステップS203)。なお、輝度値の変化とは、例えば、内側線および外側線における高輝度側の輝度値の差分の絶対値と、内側線および外側線における低輝度側の輝度値の差分の絶対値との和を指す。
続いて、内側線および外側線の輝度値の変化が所定の閾値以内である場合(ステップS203肯定)には、白線候補抽出部12bは、内側線および外側線が形成する帯線の横幅が所定の範囲以内であるか否かをさらに判定する(ステップS204)。
そして、内側線および外側線が形成する帯線の横幅が所定の範囲以内である場合(ステップS204肯定)には、白線候補抽出部12bは、内側線および外側線が形成する帯線の白線スコアを算出する(ステップS205)。
ここで、白線スコアが所定の閾値以上である場合(ステップS206肯定)には、白線候補抽出部12bは、先に内側線および外側線と仮決めした一対のエッジ線分を白線候補データ11aとして記憶部11へ登録する(ステップS207)。一方、白線スコアが所定の閾値未満である場合(ステップS206否定)には、そのままステップS209へ移行する。
また、内側線及び外側線が形成する帯線の横幅が所定の範囲以内でない場合(ステップS204否定)に、白線候補抽出部12bは、内側線及び外側線として仮決めした一対のエッジ線分を他の路面標示候補として記憶部11に登録する(ステップS208)。
また、重複率が所定の閾値未満である場合(ステップS202否定)或いは内側線および外側線の輝度値の変化が所定の閾値以上である場合(ステップS203否定)、そのままステップS209へ移行する。
その後、エッジ検出部12aによって検出された全てのエッジ線分を内側線として探索が終了するまで(ステップS209否定)、上記のステップS201〜S208までの処理を繰り返し行う。そして、全てのエッジ線分を内側線として探索が終了した場合(ステップS209肯定)に、白線候補抽出部11cは処理を終了する。
図10の説明に戻り、路面標示除外部12cは、白線候補抽出部11bによって抽出された白線候補から横断歩道を除外する「横断歩道除外処理」を実行する(ステップS105)。
ここで、図12を用いて、図10のステップS105で示した横断歩道除外処理について説明する。図12は、実施例2に係る横断歩道除外処理の手順を示すフローチャートである。図12に示すように、路面標示除外部12cは、撮影画像における1つの水平ラインに含まれる白線候補を探索する(ステップS301)。
そして、路面標示除外部12cは、1つの水平ラインに含まれる白線候補の数が所定の閾値以上であるか否かを判定する(ステップS302)。このとき、白線候補の数が所定の閾値以上である場合(ステップS302肯定)には、路面標示除外部12cは、その水平ラインに含まれる各白線候補のエッジ点間の距離が所定の範囲以内であるか否かをさらに判定する(ステップS303)。
ここで、各白線候補のエッジ点間の距離が所定の範囲内に収まる場合(ステップS303肯定)に、路面標示除外部12cは、各白線候補のエッジ点を横断歩道候補のエッジ点と推定し、その横断歩道候補のエッジ点を記憶部11へ登録する(ステップS304)。
また、白線候補の数が所定の閾値未満である場合(ステップS302否定)、或いは各白線候補のエッジ点間の距離が所定の範囲内に収まる場合(ステップS303否定)には、路面標示除外部12cは、ステップS305へ処理を移行する。
そして、水平ラインに対する白線候補の探索が全ラインについて終了するまで(ステップS305否定)、路面標示除外部12cは、上記のステップS301〜S304までの処理を繰り返し行う。
その後、水平ラインに対する白線候補の探索が全ラインについて終了すると(ステップS305肯定)、路面標示除外部12cは、記憶部11に記憶された横断歩道候補のエッジ点が垂直方向に連続するか否かを判定する(ステップS306)。そして、横断歩道候補のエッジ点が垂直方向に連続する場合(ステップS306肯定)には、路面標示除外部12cは、垂直方向に連続する横断歩道候補の長さが所定の閾値以上であるか否かを判定する(ステップS307)。
ここで、横断歩道候補の長さが所定の閾値以上である場合(ステップS307肯定)には、路面標示除外部12cは、横断歩道候補を横断歩道と決定し、横断歩道候補を横断歩道として記憶部11へ確定登録する(ステップS308)。そして、路面標示除外部12cは、記憶部11に白線候補データ11aとして記憶された白線候補の中から、横断歩道として確定登録した横断歩道候補のエッジ点を含む白線候補を削除することにより、白線候補から横断歩道を除外する(ステップS309)。
一方、記憶部11に記憶された横断歩道候補のエッジ点が垂直方向に連続しない場合(ステップS306否定)或いは横断歩道候補の長さが所定の閾値未満である場合(ステップS307否定)には、路面標示除外部12cは、そのまま処理を終了する。
図10の説明に戻り、路面標示除外部12cは、記憶部11に白線候補データ11aとして記憶された白線候補から矢印標示を除外する「矢印標示除外処理」を実行する(ステップS106)。
ここで、図13を用いて、図10のステップS106で示した矢印標示除外処理について説明する。図13は、実施例2に係る矢印標示除外処理の手順を示すフローチャートである。
図13に示すように、路面標示除外部12cは、記憶部11に白線候補データ11aとして記憶された白線候補を1つ取り出す(ステップS401)。そして、路面標示除外部12cは、白線候補に含まれる内側線および外側線が交わるか否かを判定する(ステップS402)。このとき、内側線および外側線が交わる場合(ステップS402肯定)には、路面標示除外部12cは、その白線候補の下部近傍に他の白線候補が存在するか否かをさらに判定する(ステップS403)。
ここで、他の白線候補が存在する場合(ステップS403肯定)には、路面標示除外部12cは、白線候補及び他の白線候補を矢印標示として記憶部11へ登録し直す(ステップS404)。一方、内側線および外側線が交らない場合(ステップS402否定)、或いは他の白線候補が存在しない場合(ステップS403否定)には、路面標示除外部12cは、ステップS405まで処理を移行する。
そして、全白線候補について処理が終了するまで(ステップS405否定)、路面標示除外部12cは、上記のステップS401〜404までの処理を繰り返し行う。その後、全白線候補について処理が終了すると(ステップS405肯定)、路面標示除外部12cは、矢印標示が存在しなかった場合(ステップS406否定)には、そのまま処理を終了する。
一方、矢印標示が存在した場合(ステップS406肯定)には、路面標示除外部12cは、記憶部11に白線候補データ11aとして記憶された白線候補の中から、矢印標示として登録し直した白線候補を削除し(ステップS407)、処理を終了する。
図10の説明に戻り、路面標示除外部12cは、記憶部11に白線候補データ11aとして記憶された白線候補から速度標示を除外する「速度標示除外処理」を実行する(ステップS107)。
ここで、図14を用いて、図10のステップS107で示した速度標示除外処理について説明する。図14は、実施例2に係る速度標示除外処理の手順を示すフローチャートである。図14に示すように、撮影画像の水平方向に整列する白線候補の組を探索する(ステップS501)。そして、路面標示除外部12cは、白線候補の外側同士のエッジ線分の間隔が所定値であるか否かを判定する(ステップS502)。
このとき、白線候補の外側同士のエッジ線分の間隔が所定値である場合(ステップS502肯定)に、路面標示除外部12cは、その白線候補の組の下部近傍に水平方向のエッジ線分が存在するか否かをさらに判定する(ステップS503)。なお、白線候補の外側同士のエッジ線分の間隔が所定値でない場合(ステップS502否定)又は白線候補の組の下部近傍に水平方向のエッジ線分が存在しない場合(ステップS503否定)には、路面標示除外部12cは、ステップS506の処理へ移行する。
ここで、白線候補の組の下部近傍に水平方向のエッジ線分が存在する場合(ステップS503肯定)には、路面標示除外部12cは、速度標示の数字ゼロが撮影画像に含まれるものと見做し、数字ゼロの標示領域から速度標示領域を算出する(ステップS504)。そして、路面標示除外部12cは、速度標示の数字ゼロと検出した白線候補を速度標示として記憶部11へ登録し直す(ステップS505)。
その後、全白線候補について処理が終了するまで(ステップS506否定)、路面標示除外部12cは、上記のステップS501〜S505までの処理を繰り返し行う。そして、全白線候補について処理が終了すると(ステップS506肯定)、路面標示除外部12cは、速度標示が存在しなかった場合(ステップS507否定)には、そのまま処理を終了する。
一方、速度標示が存在した場合(ステップS507肯定)には、路面標示除外部12cは、記憶部11に白線候補データ11aとして記憶された白線候補の中から、速度標示として登録し直した白線候補を削除し(ステップS508)、処理を終了する。
図10の説明に戻り、白線決定部12dは、路面標示除外部12cによって白線以外の他の路面標示が除外された白線候補に基づき、白線を決定する(ステップS108)。そして、出力制御部12eは、撮影画像から路面標示データ11bが検出されずに白線データ11cだけが単独で検出された場合(ステップS109肯定)には、その白線データ11cを自車位置判断部12fへ出力する(ステップS110)。その後、自車位置判断部12fは、出力制御部12eによって出力される白線データ11cと、車載カメラ200の設置位置及び設置角度とを用いて路面上での自車位置を判断し(ステップS111)、処理を終了する。
一方、白線データ11cとともに路面標示データ11bが検出された場合(ステップS109否定)には、出力制御部12eは、白線データ11cの自車位置判断部12fへの出力を抑止し(ステップS112)、自車位置を判断させずに処理を終了する。
なお、図10のフローチャートでは、ステップS105、ステップS106及びステップS107の処理はそれぞれの順番を入れ替えることとしてもよいし、それぞれの処理を並列して行うこともできる。
[実施例2の効果]
上述してきたように、本実施例に係る車載装置10では、白線と混同し得る他の路面標示が白線の検出結果に含まれている可能性が高い場合に、白線の検出結果を利用する別処理が実行されることはない。また、本実施例に車載装置10では、白線の検出結果が出力されたとしても白線と混同し得る他の路面標示が含まれていないので、別処理で白線と混同して実行されることもない。したがって、本実施例に係る車載装置10によれば、白線の検出結果を利用した別処理を行う場合に、誤った処理結果が導出されることを防止することが可能になる。
また、本実施例に係る車載装置10では、白線の検出結果が出力された場合に、該白線の内側位置に基づき、路面上での自車位置を判断する。したがって、本実施例に係る車載装置10によれば、白線の検出結果を利用して自車位置を判断する場合に、白線以外の路面標示を白線と混同して自車位置の判断処理が実行されることを防止することが可能である。