ここでは、下記の順序に従って本発明の実施の形態について説明する。
(1)ナビゲーション装置の構成:
(2)道路端検出処理:
(3)他の実施形態:
(1)ナビゲーション装置の構成:
図1は、本発明の一実施形態にかかる道路端検出システムを含むナビゲーション装置10の構成を示すブロック図である。ナビゲーション装置10は、車両に備えられている。ナビゲーション装置10は、制御部20と記録媒体30とを備えている。制御部20は、CPUとRAMとROM等を備え、記録媒体30やROMに記憶されたプログラムを実行する。記録媒体30は、地図情報30aと位置変換テーブル30bと判定値データ30cとを記録する。
地図情報30aは、道路上に設定されたノードの位置等を示すノードデータと、ノード同士を接続する道路に対応するリンクについての情報を示すリンクデータと、ノード同士を接続する道路の幅方向の中央線上に設定された形状補間点の位置等を示す形状補間点データとを含んでいる。3本以上のリンクが接続するノードは交差点に対応する。リンクデータは、道路の幅を示す情報と、道路上に形成された各レーンの本数および幅を示す情報とを含む。
位置変換テーブル30bは、車両の前方の投影空間内の位置と、前方画像内の位置との対応関係を規定したテーブルである。投影空間とは、車両の前方の実空間のうち、カメラ44が車両の前方の風景を撮影する際の視野内の空間である。前方画像とは、カメラ44が車両の前方の風景を撮影することによって生成される画像である。位置変換テーブル30bは、カメラ44の光学的な仕様(画角、光軸方向、光学倍率等)に基づいて作成され、予め記録媒体30に記録されている。制御部20は、位置変換テーブル30bによって投影空間内の任意の位置を変換することにより、当該任意の位置に存在する物体の像が前方画像内において投影される位置を取得する。反対に、制御部20は、位置変換テーブル30bによって前方画像内の任意の位置を変換することにより、当該任意の位置に像が投影される物体の投影空間内の位置を取得する。
車両は、GPS受信部41と車速センサ42とジャイロセンサ43とカメラ44とディスプレイ45とを備える。GPS受信部41は、GPS衛星からの電波を受信し、車両の位置を算出するための信号を制御部20に出力する。車速センサ42は、車両が備える車輪の回転速度に対応した信号を制御部20に出力する。ジャイロセンサ43は、車両に作用する角加速度に対応した信号を制御部20に出力する。
カメラ44は、前方画像を生成するイメージセンサである。カメラ44が生成した前方画像は、制御部20に出力される。カメラ44は、水平方向において光軸に関して対称な光学系を有する。カメラ44は、車両の幅方向の中央位置に備えられており、光軸方向が車両の進行方向と一致する。
図2Aは前方画像を示す図である。前方画像における横方向(前方画像の水平方向)は道路およびレーンの幅方向に対応し、前方画像の下辺の中点Pが車両の現在位置(カメラ44の位置)に対応する。また、カメラ44の光軸方向は水平方向となっており、無限遠の水平面を撮影した場合に、地平線は前方画像の縦方向の二等分線上に表れる。カメラ44の光軸よりも低い位置に存在する物体の像は、地平線よりも下方に表れ、車両から前方に遠い位置に存在する物体の像ほど、前方画像の縦方向(前方画像の垂直方向)の上方に位置する。カメラ44の光軸よりも高い位置に存在する物体の像は、地平線よりも上方に表れ、車両から前方に遠い位置に存在する物体の像ほど、前方画像の縦方向の下方に位置する。実空間において水平な道路面に対して垂直な線の像は、前方画像の縦方向の線として表れる。本実施形態では、車両が現在走行している直線状の走行道路上に4本のレーンが形成されており、左から2番目のレーン上を車両が走行していることとする。
制御部20は、GPS受信部41、車速センサ42、及びジャイロセンサ43等から出力された信号や地図情報30aに基づいて、公知のマップマッチングを行う。これにより、制御部20は、走行道路の幅方向の中央線上において車両の現在位置を特定する。さらに、制御部20は、ジャイロセンサ43からの出力信号等に基づいて車両の進行方向を特定する。
ディスプレイ45は、制御部20から出力された映像信号に基づいて各種運転支援を行うためのナビゲーション画像を出力する映像出力装置である。
制御部20は、道路端検出プログラム21とナビゲーションプログラム22とを実行する。道路端検出プログラム21は、候補線認識部21aと領域設定部21bと垂直エッジ検出部21cと判定部21dとを含む。
候補線認識部21aは、前方画像において道路端線の候補となる候補線を認識する機能を制御部20に実行させるモジュールである。候補線認識部21aの機能により制御部20は、道路上に形成された区画線の像を候補線として認識する。具体的に、制御部20は、前方画像において区画線の像の輪郭上に表れる特徴点を検出し、前方画像上に存在する複数の特徴点を通過するもっともらしい線を候補線として認識する。区画線には、道路上のレーン同士を区画する区画線のほかに、レーンと路側帯とを区画する区画線が含まれる。まず、制御部20は、前方画像のうち下辺から所定高さHまでの範囲において一定の間隔Yごとに横方向の補助直線Sを生成する。そして、制御部20は、補助直線S上の各画素の輝度を取得し、当該輝度の傾きの絶対値が所定の閾値以上の箇所を特徴点として検出する。所定高さHは、例えば縦方向における前方画像の二等分線(地平線)よりも下方に設定される。これにより、道路面に対応する前方画像内の領域にて特徴点を検出できる。輝度の傾きとは、前方画像の横方向における単位距離あたりの輝度の変化量を意味する。
図2Bは、図2Aにおいて最も下方に生成された補助直線S上の各画素の輝度を示すグラフである。図2Bにおいて、縦軸は輝度を示し、横軸は前方画像の横方向における画素の位置を示す。候補線認識部21aの機能により制御部20は、補助直線Sのそれぞれについて、輝度の傾きの絶対値が閾値以上となっている箇所を特徴点として検出する。
図2Cは、前方画像における特徴点K(黒丸)の分布を示す図である。輝度の傾きの絶対値が閾値以上となる箇所は、道路上に形成されたレーンの区画線の像Dの輪郭線上の位置となる。なお、本実施形態において、輝度の傾きの絶対値の閾値は、レーンの区画線の像D(白色または黄色の画素領域)と路面(黒色の画素領域)との輪郭線を判定できる値に設定されていることとする。従って、特徴点Kは、理想的にレーンの区画線の像Dの輪郭線上に表れる。本実施形態において、レーンと路側帯とを区画する走行道路上の区画線は、走行道路の幅方向の端の線に相当する。すなわち、走行道路においてレーンと路側帯とを区画する区画線の像Dは、道路端線に相当する。例えば、輝度の傾きの絶対値の閾値は、当該閾値を変化させながら多数の前方画像にて特徴点Kの検出を行った結果、区画線の像の輪郭上以外の位置にて検出された特徴点Kの割合が所定割合(例えば5%)以下となるように設定されてもよい。
候補線認識部21aの機能により制御部20は、各補助直線S上にて検出した複数の特徴点Kからの距離を最小とする近似直線を候補線C(実線)として認識する。制御部20は、最小自乗法等の公知の近似線算出手法によって近似直線を算出する。以上の構成において、区画線の像Dの輪郭線上に表れた特徴点Kの近傍を通過する線、すなわち区画線の像D上の線が候補線Cとして認識される。図2A,2Cの例では、走行道路のレーンの区画線の像D上に候補線C(5本)が認識されている。
なお、候補線認識部21aの機能により制御部20は、形状補間点データに基づいて走行道路の形状を特定し、走行道路が湾曲している場合には、複数の特徴点Kについての近似直線ではなく近似曲線を候補線Cとして認識してもよい。候補線Cは複数の特徴点Kを近似した線であるため、ノイズ上に特徴点Kが検出された場合でも、ノイズ上の特徴点Kの影響が少ない候補線Cを認識できる。なお、本実施形態では、区画線ごとに候補線Cが認識できればよい。従って、区画線の幅に対応する横方向の範囲内に複数の特徴点Kが検出された場合に、制御部20は、当該範囲内の複数の特徴点Kの平均位置に単一の特徴点Kを検出してもよい。候補線認識部21aの機能により制御部20は、他の手法によって候補線Cを認識してもよく、ハフ変換等の公知の線認識手法によって候補線Cを認識してもよい。
領域設定部21bは、候補線Cよりも道路の幅方向の中央側の領域である内側領域Iと、候補線Cよりも道路の幅方向の中央の反対側の領域である外側領域Oとを、前方画像において設定する機能を制御部20に実行させるモジュールである。図3Aは、前方画像において設定された内側領域I(右肩上がりハッチング)と外側領域O(右肩下がりハッチング)とを示す図である。領域設定部21bの機能により制御部20は、処理対象の候補線Cを1本ずつ選択していき、候補線Cごとに2個の領域(内側領域I,外側領域O)を設定する。なお、走行道路上を走行する車両(カメラ44)は、走行道路の幅方向の端よりも走行道路の中央側を走行するため、前方画像の横方向の中央側が道路の幅方向の中央側であると見なすことができる。従って、制御部20は、処理対象の候補線Cが前方画像の横方向の中央よりも左側に存在している場合、当該候補線Cの右側に内側領域Iを設定し、当該候補線Cの左側に外側領域Oを設定する。反対に、制御部20は、処理対象の候補線Cが前方画像の横方向の中央よりも右側に存在している場合、当該候補線Cの左側に内側領域Iを設定し、当該候補線Cの右側に外側領域Oを設定する。なお、制御部20は、前方画像の下辺の中点Pよりも左側にて候補線Cが当該下辺に交差している場合、候補線Cが前方画像の横方向の中央よりも左側に存在していると判定し、下辺の中点Pよりも右側にて候補線Cが当該下辺に交差している場合、候補線Cが前方画像の横方向の中央よりも右側に存在していると判定する。
領域設定部21bの機能により制御部20は、候補線Cよりも道路の幅方向の中央側に存在する1レーン分の領域を内側領域Iとして設定する。具体的に、領域設定部21bの機能により制御部20は、前方画像おいて認識したレーンの像であって、候補線Cを道路の幅方向の中央の反対側の境界線として有する領域を内側領域Iとして設定する。本実施形態において、候補線Cはレーンの区画線の像Dであるため、前方画像において隣り合う2本の候補線Cによって挟まれた領域が、前方画像において認識したレーンの像を構成する。従って、制御部20は、処理対象の候補線Cが前方画像の横方向の中央よりも左側に存在している場合、右側において処理対象の候補線Cに隣り合う他の候補線Cを特定し、処理対象の候補線Cと当該他の候補線Cとによって挟まれた領域を内側領域Iとして設定する。反対に、制御部20は、処理対象の候補線Cが前方画像の横方向の中央よりも右側に存在している場合、左側において処理対象の候補線Cに隣り合う他の候補線Cを特定し、処理対象の候補線Cと当該他の候補線Cとによって挟まれた領域を内側領域Iとして設定する。
図3Aにおいては、最も左側の候補線C、および、右から2番目の候補線Cがそれぞれ処理対象として選択された場合に設定される内側領域Iが示されている。最も左側の候補線Cは前方画像の下辺の中点Pよりも左側に存在するため、最も左側の候補線Cと当該候補線Cに対して右側に隣り合う候補線Cとによって挟まれた領域が、最も左側の候補線Cが処理対象である場合の内側領域Iとして設定される。右から2番目の候補線Cは前方画像の下辺の中点Pよりも右側に存在するため、右から2番目の候補線Cと当該候補線Cに対して左側に隣り合う候補線Cとによって挟まれた領域が、右から2番目の候補線Cが処理対象である場合の内側領域Iとして設定される。
一方、領域設定部21bの機能により制御部20は、候補線Cよりも道路の幅方向の中央の反対側に存在する1レーン分の領域を外側領域Oとして設定する。具体的に、領域設定部21bの機能により制御部20は、1レーン分の幅を有する仮想の領域であって、候補線Cを道路の幅方向の中央側の境界線として有する領域を外側領域Oとして設定する。本実施形態において、制御部20は、処理対象の候補線Cよりも道路の幅方向の中央の反対側に仮想線V(破線)を生成し、当該仮想線Vと処理対象の候補線Cとによって挟まれた領域を外側領域Oとして特定する。制御部20は、処理対象の候補線Cに対応する区画線と仮想線Vに対応する線とが実空間において1レーン分の幅だけ離れて互いに平行となるように、仮想線Vを生成する。すなわち、制御部20は、位置変換テーブル30bに基づいて処理対象の候補線Cと仮想線Vとをそれぞれ実空間内における線に変換した場合に、変換後の2本の線が1レーン分の幅だけ離れて互いに平行となるように、前方画像にて仮想線Vを生成する。また、処理対象の候補線Cが前方画像の横方向の中央よりも左側に存在している場合、制御部20は、処理対象の候補線Cよりも左側に仮想線Vを生成する。反対に、処理対象の候補線Cが前方画像の横方向の中央よりも右側に存在している場合、制御部20は、処理対象の候補線Cよりも右側に仮想線Vを生成する。なお、1レーン分の幅とは、走行道路上に形成されたレーンの幅であり、地図情報30aのリンクデータに基づいて取得できる。
図3Bは、仮想線Vと候補線Cとに対応する実空間内の線を示す道路の平面図である。同図において、最も左側の候補線C、および、右から2番目の候補線Cがそれぞれ処理対象として選択された場合に、仮想線Vを生成する様子を示す。最も左側の候補線Cは前方画像の下辺の中点Pよりも左側に存在するため、最も左側の候補線Cが処理対象の場合、最も左側の候補線Cよりも左側において当該候補線Cと仮想線Vとがリンクデータに基づくレーンの幅Wだけ隔てて平行となるように仮想線Vが生成される。右から2番目の候補線Cは前方画像の下辺の中点Pよりも右側に存在するため、右から2番目の候補線Cが処理対象の場合、右から2番目の候補線Cよりも右側において当該候補線Cと仮想線Vとがレーンの幅Wだけ隔てて平行となるように仮想線Vが生成される。
なお、領域設定部21bの機能により制御部20は、車両(カメラ44)の前方の無限遠の範囲に対応するように内側領域Iと外側領域Oとを設定してもよい。すなわち、制御部20は、内側領域Iや外側領域Oの横方向の境界線を構成する候補線Cや仮想線Vの消失点Zの高さまで内側領域Iと外側領域Oとを設定してもよい。また、車両(カメラ44)の前方所定距離以内の範囲に対応するように内側領域Iと外側領域Oとを設定してもよい。制御部20は、前方画像における消失点Zよりも低い高さに設けられた上限線X(一点鎖線)を上辺とするように内側領域Iと外側領域Oとを設定してもよい。
垂直エッジ検出部21cは、道路の路面に対して垂直な垂直エッジを、前方画像において検出する機能を制御部20に実行させるモジュールである。垂直エッジ検出部21cの機能により制御部20は、公知のエッジ検出手法(Sobel,LaplacIn,Canny等)によって、前方画像においてエッジを検出する。制御部20は、前方画像に存在する線状のエッジのうち、所定の角度範囲内のエッジを垂直エッジとして検出する。
本実施形態において、垂直エッジの角度範囲は、前方画像の縦方向から所定の誤差角度(例えば5度)以内の範囲である。なお、前方画像の歪曲特性等に基づいて、前方画像内の位置ごとに垂直エッジの角度範囲を設定してもよい。垂直エッジ検出部21cの機能により制御部20は、車両の前方を走行する他車両の像を構成するエッジを垂直エッジEとして検出しないようにする。具体的に、制御部20は、複数の車種の車両のそれぞれを背面から撮影した画像にて検出したエッジの分布を示すテンプレートデータを記録媒体30に記録しておき、当該テンプレートデータが示すエッジとマッチするエッジについては、垂直エッジEとして検出するエッジから除外する。また、制御部20は、横方向における画像の変化点をエッジとして検出するフィルタを用いて垂直エッジを検出してもよい。本実施形態において、垂直エッジ検出部21cの機能により制御部20は、内側領域Iと外側領域Oとが設定され得る前方画像の全体において垂直エッジEを検出しておく。
垂直エッジ検出部21cの機能により制御部20は、前方画像に虚像が含まれる場合に備えて以下の処理を実行する。図4Aは、図2Aの前方画像に虚像を含まれる場合を示す。図4Aの例では、道路の路面上に水膜が形成されることにより路面が反射状態となっている。そのため、道路の路面の像には、走行道路外にて当該走行道路に沿って植えられた街路樹の虚像が含まれている。このような場合、図4Bに示すように、街路樹の虚像上においても垂直エッジEが検出されることとなる。
そこで、垂直エッジ検出部21cの機能により制御部20は、道路の路面に対して垂直なエッジのうち、候補線Cを貫通する貫通エッジを検出し、当該貫通エッジのうち前方画像にて候補線Cよりも下方の部分を垂直エッジEから除外する。図4Bに示すように、貫通エッジUは、垂直エッジEのうち、候補線Cと交差する連続的な線を構成するエッジである。具体的に、制御部20は、候補線Cよりも上方に上端が存在し、かつ、候補線Cよりも下方に下端が存在する垂直エッジEを貫通エッジUとして検出する。
候補線Cよりも下方の部分とは、候補線Cと貫通エッジUとの交点U1(黒丸)よりも下方の部分である。垂直エッジ検出部21cの機能により制御部20は、候補線Cと貫通エッジUとの交点U1を特定し、前方画像にて当該交点U1よりも下方の部分を垂直エッジEから除外する。図5Aは、図4Bにおける貫通エッジUのうち候補線Cよりも下方の部分が除外された垂直エッジEを示す。同図に示すように、予め前方画像の全体において道路の路面に対して垂直なエッジとして検出された垂直エッジEのうち、候補線Cと貫通エッジUとの交点U1よりも下方の部分を構成するエッジが消去されている。
さらに、垂直エッジ検出部21cの機能により制御部20は、前方画像にて貫通エッジUを検出した場合、候補線Cよりも下方の像のうち、候補線Cよりも上方において候補線Cに関して対称となる像が存在する像上に存在するエッジであって、貫通エッジU以外のエッジを垂直エッジEから除外する。図4Bに示すように、制御部20は、前方画像全体において1本でも貫通エッジUを検出した場合、候補線Cよりも下方に存在する貫通エッジU以外の垂直エッジEである下方エッジELを抽出する。図4Bにおける破線枠の領域Zにおいて、4個の下方エッジELが抽出されている。図5Bは、領域Zの拡大図である。図5Bに示すように、候補線Cよりも下方に存在する下方エッジELとは、垂直エッジEを上方に延長した延長線Q(破線)を生成した場合に、当該延長線Qと交差する候補線Cが存在する垂直エッジEである。制御部20は、下方エッジELの延長線Qと、下方エッジELの上方に存在する候補線Cのうち最も上方の候補線Cである対称候補線CMとの交点Q1を通過する横方向の対称線R(二点鎖線)を生成する。
そして、制御部20は、対称線Rに関して下方エッジELと対称となる垂直エッジEが対称候補線CMよりも上方に存在するか否かを判定する。具体的に、制御部20は、対称線Rに関して下方エッジELと対称となる対称エッジEM(破線)を生成し、当該対称エッジEMと形状が類似する垂直エッジEが存在するか否かを判定する。本実施形態において、対称エッジEMと形状が類似する垂直エッジEとは、対称エッジEMとの横方向の距離が基準距離以下となる垂直エッジEであって、かつ、当該垂直エッジEと対称エッジEMの少なくとも一部が同一の高さ(前方画像の縦方向の位置)に存在している垂直エッジEであることとする。対称エッジEMと形状が類似する垂直エッジEが存在すると判定した場合、制御部20は、対称エッジEMに対応する下方エッジELを垂直エッジEから除外する。なお、制御部20は、路面に対して垂直な下方エッジELと対称となる対称エッジEMが存在するか否かを判定したが、路面に対して垂直なエッジ以外の他の特徴点(水平方向のエッジ等)の分布が対称候補線CMに関して対称となっているか否かを判定してもよい。
垂直エッジ検出部21cの機能により制御部20は、前方画像にて貫通エッジUを1本でも検出した場合、前方画像上に存在するすべての下方エッジELについて垂直エッジEから除外するか否かを判定する処理を実行する。一方、前方画像にて貫通エッジUを1本も検出しなかった場合、制御部20は、下方エッジELを垂直エッジEから除外するか否かを判定する処理を実行しない。
判定部21dは、内側領域Iにおける垂直エッジEの検出結果と、外側領域Oにおける垂直エッジEの検出結果とに基づいて、候補線Cが道路端線であるか否かを判定する機能を制御部20に実行させるモジュールである。すなわち、判定部21dの機能により制御部20は、処理対象の候補線Cに関して設定された内側領域Iにおける垂直エッジEの検出結果と、当該処理対象の候補線Cに関して設定された外側領域Oにおける垂直エッジEの検出結果とに基づいて、当該処理対象の候補線Cが真に道路端線であるか否かを判定する。本実施形態において、制御部20は、内側領域Iと外側領域Oとのそれぞれにおいて検出された垂直エッジEの本数を垂直エッジEの検出結果として取得する。垂直エッジEの検出結果とは、貫通エッジUの下方の部分を垂直エッジEから除外した上で得られる結果である。さらに、前方画像において貫通エッジUが検出された場合、垂直エッジEの検出結果とは、対称候補線CMよりも下方の下方エッジELのうち対称候補線CMよりも上方の垂直エッジEと対称となる下方エッジELを垂直エッジEから除外した上で得られる結果である。
判定部21dの機能により制御部20は、内側領域Iにおける垂直エッジEの検出結果が所定の内側条件を満足し、かつ、外側領域Oにおける垂直エッジEの検出結果が所定の外側条件を満足する場合に、候補線Cが走行道路の道路端線であると判定する。すなわち、制御部20は、処理対象の候補線Cに関して設定された内側領域Iにおける垂直エッジEの検出結果が道路の像における垂直エッジEの検出結果として適正であり、かつ、当該処理対象の候補線Cに関して設定された外側領域Oにおける垂直エッジEの検出結果が道路外の部分の像における垂直エッジEの検出結果として適正である場合に、当該処理対象の候補線Cが真に走行道路の道路端線であると判定する。本実施形態において、候補線Cが真に道路端線であるとは、候補線Cが走行道路上のレーンと路側帯とを区画する区画線の像Dであることを意味する。
具体的に、判定部21dの機能により制御部20は、処理対象の候補線Cに関して設定された内側領域Iにおいて検出された垂直エッジEの本数が内側判定値(例えば1本)未満である場合に、内側領域Iにおける垂直エッジEの検出結果が適正であり、内側条件を満足すると判定する。なお、内側領域Iにおいて検出された垂直エッジEとは、内側領域Iに下端が存在する垂直エッジEである。一方、判定部21dの機能により制御部20は、処理対象の候補線Cに関して設定された外側領域Oにおいて検出された垂直エッジEの本数が外側判定値(例えば2本)以上である場合に、外側領域Oにおける垂直エッジEの検出結果が適正であり、外側条件を満足すると判定する。なお、外側領域Oにおいて検出された垂直エッジEとは、外側領域Oに下端が存在する垂直エッジEである。内側判定値と外側判定値とは判定値データ30cに記録されており、制御部20は、判定値データ30cから内側判定値と外側判定値とを取得する。
本実施形態において、道路端線が既知の前方画像における1レーン分のレーンの像内に存在する垂直エッジEの本数を多数のレーンについて調査し、当該調査した垂直エッジEの本数が内側判定値未満となる確率が閾値(例えば、95%)以上となるように内側判定値が設定されている。内側領域Iにおける垂直エッジEの本数が内側判定値未満であることは、内側領域Iにおける垂直エッジEの検出結果が確率的に適正であると言える。一方、道路端線が既知の前方画像おいて当該既知の道路端線に関して外側領域Oを設定し、当該外側領域O内に存在する垂直エッジEの本数を多数調査し、当該調査した垂直エッジEの本数が外側判定値以上となる確率が閾値(例えば、95%)以上となるように外側判定値が設定されている。外側領域Oにおける垂直エッジEの本数が外側判定値以上であることは、外側領域Oにおける垂直エッジEの検出結果が確率的に適正であると言える。
制御部20は、以上のように処理対象の候補線Cを順に選択することにより、処理対象の候補線Cが真に道路端線であるか否かを判定する処理を各候補線Cについて実行する。
これにより、走行道路上のレーンと左側の路側帯とを区画する区画線の像Dを処理対象の候補線Cとして選択した場合、および、走行道路上のレーンと右側の路側帯とを区画する区画線の像Dを処理対象の候補線Cとして選択した場合、処理対象の候補線Cが真に走行道路の道路端線であると判定できる。
図3Aに示すように、最も左側の候補線Cが処理対象の場合、外側領域Oにおける垂直エッジの本数が外側判定値(例えば2本)以上と判定され、内側領域Iにおける垂直エッジの本数が内側判定値(例えば1本)未満と判定されるため、外側条件と内側条件の双方を満足することとなる。従って、制御部20は、最も左側の候補線Cが真に走行道路の道路端線であると判定する。一方、図3Aに示すように、右から2番目の候補線Cが処理対象の場合、外側領域Oにおける垂直エッジの本数が外側判定値以上と判定されず、外側条件を満足しないこととなる。従って、路面が反射状態でない場合において、制御部20は、右から2番目の候補線Cが真に走行道路の道路端線であると判定しない。
ナビゲーションプログラム22は、前方画像にて検出された道路端線を利用して運転支援を行う機能を制御部20に実行させるプログラムである。ナビゲーションプログラム22の機能により制御部20は、前方画像の下辺上における中点Pと道路端線との距離に基づいて、道路の幅方向の端から車両までの距離を算出し、当該距離と地図情報30aのリンクデータが示す走行道路とレーンの幅とに基づいて車両が走行している走行レーンを特定する。そして、制御部20は、走行レーンに基づいて運転支援を行う。例えば、制御部20は、公知の経路探索手法によって探索した走行予定経路と走行レーンとに基づいて、走行予定経路を走行するためにレーン変更が必要か否かを判定し、レーン変更が必要である場合にはレーン変更の必要性を案内してもよい。
以上説明した本実施形態において、制御部20は、まず前方画像において候補線Cを認識するとともに、当該認識した候補線Cが真に道路端線であるか否かを判定する。候補線が真に走行道路の道路端線であるのであれば、内側領域Iは道路の像であり、外側領域Oは道路外の部分の像となる。従って、内側領域Iでは道路の像における垂直エッジEの検出結果として適正な垂直エッジEの検出結果が得られ、外側領域Oでは道路外の部分の像における垂直エッジEの検出結果として適正な垂直エッジEの検出結果が得られることとなる。そのため、内側領域Iにおける垂直エッジEの検出結果と、外側領域Oにおける垂直エッジEの検出結果とに基づいて、候補線Cが真に道路端線であるか否かを判定できる。
また、道路端線の位置は、垂直エッジEの検出位置ではなく、あくまでも画像において認識した候補線Cの位置によって定まる。従って、前方画像上のノイズの影響を受けやすい垂直エッジEの検出位置によって、不正確な位置にて道路端線が検出されることを防止できる。画像における線(候補線C)の認識においては、画像上に存在する複数の特徴点Kの近似直線を認識する手法が採られるため、前方画像上のノイズの影響を抑制しつつ正確に候補線Cを認識できる。さらに、候補線Cの認識と、垂直エッジEの検出とは、単一の前方画像において行うことができる。従って、単一の前方画像に基づいて道路の端を正確に検出できる。
さらに、制御部20は、内側領域Iにおける垂直エッジEの検出結果が所定の内側条件を満足し、かつ、外側領域Oにおける垂直エッジEの検出結果が所定の外側条件を満足する場合に、候補線Cが走行道路の道路端線であると判定している。これにより、内側領域Iと外側領域Oの一方のみの垂直エッジEの検出結果が適正である場合に候補線Cが真に走行道路の道路端線であると判定するよりも、道路端線の信頼性を向上させることができる。
領域設定部21bの機能により制御部20は、候補線Cよりも道路の幅方向の中央側に存在する1レーン分の領域を内側領域Iとして設定し、候補線Cよりも道路の幅方向の中央の反対側に存在する1レーン分の領域を外側領域Oとして設定している。これにより、垂直エッジEの検出結果が適正であるか否かを判定する領域を1レーン分の大きさで正規化することができる。すなわち、内側領域Iと外側領域Oにおける垂直エッジEの検出結果が、内側領域と外側領域の大きさに依存することを防止し、垂直エッジEの検出結果が内側条件と外側条件とを満足するか否かを正確に判定できる。
具体的に、領域設定部21bの機能により制御部20は、前方画像おいて認識したレーンの像であって、候補線Cを道路の幅方向の中央の反対側の境界線として有する領域を内側領域Iとして設定している。道路の幅方向の端の線よりも道路の幅方向の中央側には道路上のレーンが存在するため、現実に認識した区画線の像D(候補線C)によって挟まれたレーンの像を内側領域Iとして設定することにより、正確に1レーン分の領域を内側領域Iとして設定できる。一方、道路の幅方向の端の線よりも道路の幅方向の中央の反対側には道路上のレーンが存在しない。従って、候補線Cが真に道路端線であれば、候補線Cよりも道路の幅方向の中央の反対側においてレーンの像を認識することはできない。これに対して、制御部20は、1レーン分の幅を有する仮想の領域を外側領域Oとして設定することにより、候補線Cが真に道路端線である場合でも1レーン分の領域を外側領域Oとして設定できる。
道路上には路面に対して垂直な物体が存在する可能性が低いため、画像において道路上に存在する線の像を貫通する貫通エッジUが存在する可能性は低い。つまり、候補線Cが真に道路端線であれば、候補線Cを貫通する貫通エッジUが存在しないはずである。このように存在しないはずの貫通エッジUが検出された場合、当該貫通エッジUは虚像上のエッジを含むと考えることができる。例えば、図4A,4Bに示すように、路面が反射状態にある場合、街路樹の虚像が前方画像に含まれ、当該虚像上の垂直エッジEが候補線Cを貫通する貫通エッジUとなり得る。
前方画像は、道路上を走行する車両において道路を俯瞰するように撮影されるため、道路上において車両に近い物体の像ほど画像の下方に位置することとなる。また、道路の端よりも車両に近い位置に道路が存在するため、前方画像における候補線よりも上方の領域よりも候補線Cよりも下方の領域が道路の像に対応する可能性が高い。このように、前方画像における候補線Cよりも下方の領域が道路の像に対応する可能性が高いため、貫通エッジUのうち候補線Cよりも下方の部分は道路の路面上にて反射した虚像上のエッジである可能性が高い。従って、貫通エッジUのうち候補線Cよりも下方の部分を垂直エッジEから除外した上で、当該垂直エッジEの検出結果に基づいて候補線Cが道路端線であるか否かを判定することにより、虚像の影響を抑制しつつ道路の端を検出することができる。さらに、道路の端を検出するために予め認識した候補線Cを利用して、容易に虚像の影響を抑制することができる。
さらに、区画線の像Dを候補線Cとして認識することにより、道路の幅方向の端に存在する区画線の像Dを道路端線Cとして検出することができる。ここで、道路の幅方向の端に存在する区画線よりも内側の領域は車両が走行するレーンを意味し、レーン上に路面に垂直な物体が存在する可能性は極めて低いと考えることができる。従って、区画線の像Dである候補線Cを貫通する貫通エッジUの下方の部分を垂直エッジEから除外することにより、確実に虚像上のエッジであると判断できるエッジを垂直エッジEから除外できる。
また、前方画像に貫通エッジUが存在する場合、路面が反射状態であると推定できる。
従って、画像に貫通エッジUが存在する場合、候補線Cを貫通しないエッジでも虚像上のエッジである可能性が高くなる。候補線C(対称候補線CM)は道路端線の候補であるため、道路以外の部分の像と反射状態となっている路面の像との境界線を構成する可能性が高く、実像が存在する領域と、当該実像の虚像が存在する領域との境界線を構成する可能性が高い。特に、対称候補線CMは、下方エッジELの上方に存在する候補線Cのうち最も上方の候補線C(車両から遠い位置に存在する像)であるため、他の候補線Cよりも道路端線である可能性が高い。従って、対称候補線CMよりも下方エッジELのうち、対称候補線CMよりも上方において対称候補線CMに関して対称となる垂直エッジEが存在する下方エッジELは、虚像上のエッジであると考えることができる。また、路面が反射状態であると推定できる場合に限り、対称候補線CMよりも下方の下方エッジELが虚像上のエッジであるか否かを判定することができるため、処理負荷を軽減できる。
図4Bの例では、右から2番目の候補線Cに関して設定される外側領域O(右肩下がりハッチング)において、最も右の候補線Cを貫通する貫通エッジUのうち当該候補線Cよりも下方の部分、および、最も右の候補線C(対称候補線CM)よりも上方に対称となる垂直エッジEが存在する下方エッジELが存在する。しかし、図5Aに示すように貫通エッジUのうち候補線Cよりも下方の部分、および、候補線Cよりも上方に対称となる垂直エッジEが存在する下方エッジELを垂直エッジEから除外できる。従って、右から2番目の候補線Cに関して設定される外側領域Oにおいて、街路樹の虚像上のエッジが垂直エッジEの本数として計数されることを防止できる。そのため、右から2番目の候補線Cに関して設定される外側領域Oにおける垂直エッジEの本数が外側判定値以上となる(外側条件を満足する)ことを防止でき、右から2番目の候補線Cが道路端線であると誤判定されることを防止できる。また、図4B,5Aに示す外側領域Oとほぼ同じ領域が、最も右の候補線Cに関する内側領域Iとして設定される。図4B,5Aに示す外側領域Oを最も右の候補線Cに関する内側領域Iとして見た場合に、当該内側領域Iにおける垂直エッジEの本数が内側判定値以上となる(内側条件を満足しなくなる)ことも防止できる。従って、最も右の候補線Cが道路端線でないと誤判定されることを防止できる。
(2)道路端検出処理:
図6は、道路端検出処理のフローチャートである。道路端検出処理は、前方画像の撮影周期ごとに実行される処理である。ナビゲーション装置10は、1枚の前方画像の撮影されるごとに、当該1枚の前方画像において道路端線を検出する。まず、候補線認識部21aの機能により制御部20は、カメラ44にて撮影された前方画像を取得する(ステップS100)。
次に、候補線認識部21aの機能により制御部20は、前方画像において道路端線の候補となる候補線Cを認識する(ステップS105)。具体的に、制御部20は、前方画像のうち下辺から所定高さHまでの範囲において一定の間隔Yごとに生成した横方向の補助直線S(破線)上において、輝度の傾き(横方向における単位距離あたりの輝度の変化量)が閾値以上となる特徴点Kを検出する。そして、制御部20は、検出した複数の特徴点Kの近似直線を候補線Cとして認識する。本実施形態では、輝度の傾きの閾値がレーンの区画線の輪郭線を判定する値に設定されているため、レーンの区画線の像Dが候補線Cとして認識される。
次に、候補線認識部21aの機能により制御部20は、候補線Cが1本でも認識できたか否かを判定する(ステップS110)。候補線Cが1本も認識できなかったと判定した場合(ステップS110:N)、候補線認識部21aの機能により制御部20は、現在の前方画像にて道路端線を検出することができないとして、道路端検出処理を終了させ、次に前方画像が撮影されるまで待機する。一方、候補線Cが1本でも認識できたと判定した場合(ステップS110:Y)、垂直エッジ検出部21cの機能により制御部20は、垂直エッジ検出処理を実行する(ステップS115)。
図7は、垂直エッジ検出処理のフローチャートである。まず、垂直エッジ検出部21cの機能により制御部20は、公知のエッジ検出手法(Sobel,LaplacIn,Canny等)によって、前方画像の全体において垂直エッジを検出する(ステップS200)。制御部20は、前方画像に存在する線状のエッジのうち、所定の角度範囲内のエッジを垂直エッジとして検出する。また、垂直エッジ検出部21cの機能により制御部20は、車両の前方を走行する他車両の像を構成するエッジを垂直エッジEとして検出しないようにする。具体的に、制御部20は、車両を背面から撮影した画像とマッチする画像上のエッジをについては、垂直エッジEとして検出するエッジから除外する。
次に、垂直エッジ検出部21cの機能により制御部20は、候補線Cを貫通する貫通エッジを検出する(ステップS205)。すなわち、制御部20は、候補線Cよりも上方に上端が存在し、かつ、候補線Cよりも下方に下端が存在する垂直エッジEを貫通エッジUとして検出する。次に、垂直エッジ検出部21cの機能により制御部20は、前方画像において1本でも貫通エッジUが検出されたか否かを判定する(ステップS210)。
前方画像において1個でも貫通エッジUが検出されたと判定した場合(ステップS210:Y)、垂直エッジ検出部21cの機能により制御部20は、処理対象の垂直エッジEを選択する(ステップS215)。前方画像において1本でも貫通エッジUが検出されたと判定した場合、道路の路面が反射状態にあり虚像上の垂直エッジEが検出されている可能性が高いことを意味する。なお、道路の路面が反射状態にあると確実に判断できるように、ステップS210において、制御部20は、前方画像において1本よりも多い所定本数の垂直エッジEが検出されたか否かを判定してもよい。次に、垂直エッジ検出部21cの機能により制御部20は、処理対象の垂直エッジEが貫通エッジUであるか否かを判定する(ステップS220)。処理対象の垂直エッジEが貫通エッジUであると判定した場合(ステップS220:Y)、垂直エッジ検出部21cの機能により制御部20は、処理対象の垂直エッジE(貫通エッジU)のうち、候補線Cよりも下方の部分を除外対象として設定する(ステップS225)。すなわち、処理対象の貫通エッジUのうち、候補線Cよりも下方の部分が虚像上のエッジであるとして、垂直エッジEから除外する対象に設定する。なお、候補線Cよりも下方の部分とは、候補線Cと貫通エッジUとの交点U1(黒丸)よりも下方の部分である。
一方、処理対象の垂直エッジEが貫通エッジUであると判定しなかった場合(ステップS220:N)、垂直エッジ検出部21cの機能により制御部20は、処理対象の垂直エッジEがいずれかの候補線Cの下方に存在する下方エッジELであるか否かを判定する(ステップS227)。そして、制御部20は、下方エッジELの上方に存在する候補線Cのうち最も上方の候補線Cを対称候補線CMとして設定する。処理対象の垂直エッジEがいずれかの候補線Cの下方に存在する下方エッジELであるか否かを判定した場合(ステップS227:Y)、垂直エッジ検出部21cの機能により制御部20は、対称候補線CMに関して、処理対象の下方エッジELと対称な垂直エッジEが存在するか否かを判定する(ステップS230)。すなわち、制御部20は、処理対象の垂直エッジE(貫通エッジU以外)が、対称候補線CMよりも上方において対称候補線CMに関して対称となる像が存在する像上に存在する下方エッジELであるか否かを判定する。
図5Bに示すように、制御部20は、下方エッジELを上方に延長した延長線Qと対称候補線CMとの交点Q1を通過する横方向の対称線R(二点鎖線)を生成し、当該対称線Rに関して下方エッジELと対称となる対称エッジEM(破線)を生成する。そして、制御部20は、対称エッジEMと形状が類似する垂直エッジEが存在するか否かを判定する。対称候補線CMに関して下方エッジELと対称な垂直エッジEが存在すると判定した場合(ステップS230:Y)、垂直エッジ検出部21cの機能により制御部20は、処理対象の垂直エッジE(下方エッジEL)の全体を除外対象として設定する(ステップS235)。すなわち、処理対象の垂直エッジEが虚像上のエッジであるとして、垂直エッジEから除外する対象に設定する。
ステップS225またはステップS235にて処理対象の垂直エッジEに関して除外対象を設定した場合、制御部20は、ステップS240を実行する。一方、処理対象の垂直エッジEがいずれかの候補線Cの下方に存在する下方エッジELであるか否かを判定しなかった場合(ステップS227:N)、または、対称候補線CMに関して処理対象の下方エッジELと対称な垂直エッジEが存在すると判定しなかった場合(ステップS230:N)、制御部20は、処理対象の垂直エッジEに関して除外対象を設定することなく、ステップS240を実行する。すなわち、処理対象の垂直エッジEは虚像上のエッジを含んでいないとして、処理対象の垂直エッジEを除外されないようにする。
そして、垂直エッジ検出部21cの機能により制御部20は、すべての垂直エッジEを処理対象として選択したか否かを判定する(ステップS240)。すべての垂直エッジEを処理対象として選択したと判定しなかった場合(ステップS240:N)、制御部20は、ステップS215に戻り、次の垂直エッジEを処理対象として選択する。一方、すべての垂直エッジEを処理対象として選択したと判定した場合(ステップS240:Y)、垂直エッジ検出部21cの機能により制御部20は、除外対象として設定した垂直エッジEおよび垂直エッジEの一部を消去する。これにより、除外対象として設定した垂直エッジEおよび垂直エッジEの一部を、垂直エッジEの検出結果から除外できる。
以上説明したように、前方画像において1本でも貫通エッジUが検出されたと判定した場合(ステップS210:Y)、垂直エッジ検出部21cの機能により制御部20は、虚像上のエッジであると見なせる垂直エッジEを除外するか否かを判定する処理を実行する。一方、前方画像において1本でも貫通エッジUが検出されたと判定しなかった場合(ステップS210:N)、垂直エッジ検出部21cの機能により制御部20は、垂直エッジEを除外することなく、垂直エッジ検出処理を終了する。すなわち、前方画像において1本も貫通エッジUが検出されない場合、道路の路面が反射状態ではなく、垂直エッジEがすべて実像上のエッジであると見なして、垂直エッジ検出処理を終了する。
垂直エッジ検出処理を終了すると、図6に示す道路端検出処理のステップS120に戻る。領域設定部21bの機能により制御部20は、公知のマップマッチングにより車両が現在走行している走行道路と現在位置とを取得する(ステップS120)。さらに、領域設定部21bの機能により制御部20は、処理対象の候補線Cを選択する(ステップS125)。例えば、制御部20は、前方画像の左から順に処理対象の候補線Cを選択してもよい。
次に、領域設定部21bの機能により制御部20は、処理対象の候補線Cに関して外側領域Oを設定する(ステップS130)。具体的に、領域設定部21bの機能により制御部20は、処理対象の候補線Cよりも道路の幅方向の中央の反対側に仮想線Vを生成し、当該仮想線Vと処理対象の候補線Cとによって挟まれた領域を外側領域Oとして特定する。処理対象の候補線Cに対応する区画線と、仮想線Vに対応する線とは、実空間において1レーン分の幅だけ離れて互いに平行となる。なお、制御部20は、候補線Cが前方画像の横方向の中央よりも右側に存在している場合、候補線Cの右側に仮想線Vを生成し、候補線Cが前方画像の横方向の中央よりも左側に存在している場合、候補線Cの左側に仮想線Vを生成する。
次に、判定部21dの機能により制御部20は、外側領域Oにおける垂直エッジEの検出結果が所定の外側条件を満足するか否かを判定する(ステップS135)。具体的に、制御部20は、前方画像の全体において検出された垂直エッジEのうち処理対象の候補線Cに関して設定された外側領域Oにて下端が検出された垂直エッジEの本数を取得するとともに、記録媒体30の判定値データ30cから外側判定値を取得する。そして、制御部20は、外側領域Oにて検出された垂直エッジEの本数が外側判定値以上である場合に、外側領域Oにおける垂直エッジEの検出結果が外側条件を満足すると判定する。
外側領域Oにおける垂直エッジEの検出結果が所定の外側条件を満足すると判定した場合(ステップS135:Y)、領域設定部21bの機能により制御部20は、処理対象の候補線Cに関して内側領域Iを設定する(ステップS140)。具体的に、領域設定部21bの機能により制御部20は、前方画像おいて認識したレーンの像であって、処理対象の候補線Cを道路の幅方向の中央の反対側の境界線として有する領域を内側領域Iとして設定する。制御部20は、処理対象の候補線Cが前方画像の横方向の中央よりも左側に存在している場合、右側において処理対象の候補線Cに隣り合う他の候補線Cを特定し、処理対象の候補線Cと当該他の候補線Cとによって挟まれた領域を内側領域Iとして設定する。反対に、制御部20は、処理対象の候補線Cが前方画像の横方向の中央よりも右側に存在している場合、左側において処理対象の候補線Cに隣り合う他の候補線Cを特定し、処理対象の候補線Cと当該他の候補線Cとによって挟まれた領域を内側領域Iとして設定する。
次に、判定部21dの機能により制御部20は、内側領域Iにおける垂直エッジEの検出結果が所定の内側条件を満足するか否かを判定する(ステップS145)。具体的に、制御部20は、前方画像の全体において下端が検出された垂直エッジEのうち処理対象の候補線Cに関して設定された内側領域Iにて検出された垂直エッジEの本数を取得するとともに、記録媒体30の判定値データ30cから内側判定値を取得する。そして、制御部20は、内側領域Iにて検出された垂直エッジEの本数が内側判定値未満である場合に、内側領域Iにおける垂直エッジEの検出結果が内側条件を満足すると判定する。
内側領域Iにおける垂直エッジEの検出結果が所定の内側条件を満足すると判定した場合(ステップS145:Y)、判定部21dの機能により制御部20は、内側領域Iの幅が適正であるか否かを判定する(ステップS147)。すなわち、制御部20は、内側領域Iの幅が1レーンの像の幅として適正であるか否かを判定する。具体的に、制御部20は、内側領域Iを挟む2本の候補線Cを位置変換テーブル30bによって変換することにより、実空間内における2本の候補線Cの位置を取得する。そして、制御部20は、実空間内における2本の候補線Cの間の間隔が記録媒体30に記録された基準範囲内であるか否かを判定する。例えば、基準範囲は、地図情報30aのリンクデータが示す走行道路上のレーンの幅に所定の比率を乗じた幅の範囲(例えばレーンの幅の80〜120%の範囲)であってもよい。
本実施形態では、区画線の像Dを候補線Cとして認識するが、仮に道路外に存在する線状の地物(例えば歩道の輪郭等)の像が候補線Cとして認識された場合について考える。道路外に存在する線状の地物の像が候補線Cとして認識された場合、道路外に存在する地物(歩道等よりも道路側に存在する街路樹等の地物)の実像上の垂直エッジEが当該候補線Cを貫通する貫通エッジUとなり得る。この場合、道路外に存在する線状の地物の像である候補線Cに関して設定された内側領域Iに存在する実像上のエッジが垂直エッジEから除外され、当該内側領域Iにおける垂直エッジEの検出結果が内側条件を満足し得ることとなる。従って、道路外に存在する線状の地物の像を真の道路端線として誤検出し得ることとなる。本実施形態において、内側領域Iは、2本の区画線の像Dによって挟まれた領域であり、処理対象の候補線Cが真に区画線の像Dであれば、1レーンの像を構成するはずである。しかしながら、処理対象の候補線Cが真に区画線の像Dでなく、道路外に存在する線状の地物の像である場合、内側領域Iの幅が1レーンの像の幅として適正ではない可能性がある。従って、内側領域Iの幅が1レーンの像の幅として適正であるか否かを判定することにより、道路外に存在する線状の地物の像を真の道路端線として誤検出することを防止できる。
内側領域Iの幅が適正であると判定した場合、判定部21dの機能により制御部20は、処理対象の候補線Cが真に走行道路の道路端線であると判定する(ステップS150)。すなわち、制御部20は、内側領域Iにおける垂直エッジEの検出結果が所定の内側条件を満足し(ステップS145:Y)、外側領域Oにおける垂直エッジEの検出結果が所定の外側条件を満足し(ステップS135:Y)、かつ、内側領域Iの幅が適正である場合に(ステップS147:Y)、候補線Cが走行道路の道路端線であると判定する。
一方、制御部20は、内側領域Iにおける垂直エッジEの検出結果が所定の内側条件を満足しない場合(ステップS145:N)、外側領域Oにおける垂直エッジEの検出結果が所定の外側条件を満足しない場合(ステップS135:N)、または、内側領域Iの幅が適正でない場合に(ステップS147:N)、候補線Cが走行道路の道路端線でないと判定する。
次に、領域設定部21bの機能により制御部20は、認識された候補線Cのすべてを処理対象の候補線Cとして選択したか否かを判定する(ステップS155)。そして、認識された候補線Cのすべてを処理対象の候補線Cとして選択したと判定しなかった場合(ステップS155:N)、制御部20は、他の候補線Cを、次の処理対象の候補線Cとして選択する(ステップS125)。一方、認識された候補線Cのすべてを処理対象の候補線Cとして選択したと判定した場合(ステップS155:Y)、制御部20は、道路端線検出処理を終了させる。
(3)他の実施形態:
前記実施形態では、貫通エッジUの下方の部分を垂直エッジEから除外する場合に、虚像上のエッジと判断される貫通エッジU以外のエッジも垂直エッジEから除外するようにしたが、制御部20は、貫通エッジUの下方の部分のみを除外してもよい。さらに、除外対象の垂直エッジEは、必ずしも垂直エッジEの検出結果から消去されなくてもよい。なお、垂直エッジEから除外するとは、除外対象のエッジが、内側領域Iにおける垂直エッジの検出結果と、外側領域Oにおける垂直エッジの検出結果とに反映されないようにすることであればよい。さらに、制御部20は、貫通エッジUの下方の部分が判定部21dによる判定結果に影響を与えないように判定部21dの判定条件を設定することにより、実質的に貫通エッジUの下方の部分を垂直エッジから除外してもよい。例えば、制御部20は、内側領域Iに存在する除外対象の垂直エッジEの本数だけ内側判定値を上方修正することにより、実質的に除外対象の垂直エッジEを除外してもよい。同様に、外側領域Oに存在する除外対象の垂直エッジEの本数だけ外側判定値を上方修正することにより、実質的に除外対象の垂直エッジEを除外してもよい。なお、貫通エッジUのうち、候補線Cよりも下方の部分とは、当該候補線Cについて設定された内側領域I内の部分に相当する。従って、制御部20は、内側領域Iを設定するごとに、貫通エッジUのうち内側領域I内の部分を垂直エッジEから除外してもよい。すなわち、予め前方画像の全体において虚像上の垂直エッジEを除外しなくてもよく、内側領域Iと外側領域Oが設定されるごとに虚像上の垂直エッジEを除外してもよい。
前記実施形態においては、内側領域Iにて検出された垂直エッジEの本数が内側判定値未満であることを内側条件とし、外側領域Oにて検出された垂直エッジEの本数が外側判定値以上であることを外側条件としたが、他の条件を採用してもよい。例えば、判定部21dの機能により制御部20は、内側領域Iにて検出された垂直エッジEの長さと本数とに基づいて、内側領域Iにおける垂直エッジEの検出結果が、内側条件を満足するか否かを判定してもよい。同様に、制御部20は、外側領域Oにて検出された垂直エッジEの長さと本数とに基づいて、外側領域Oにおける垂直エッジEの検出結果が、外側条件を満足するか否かを判定してもよい。
具体的に、判定部21dの機能により制御部20は、記録媒体30に予め記録された判定値データ30cを参照することにより、内側領域Iにおける垂直エッジEの長さの区分ごとに設定された判定値を取得し、内側領域Iにて検出されたいずれかの長さの区分の垂直エッジEの本数が当該判定値以上である場合に、内側領域Iにおける垂直エッジEの検出結果が内側条件を満足しないと判定してもよい。同様に、判定部21dの機能により制御部20は、判定値データ30cを参照することにより、外側領域Oにおける垂直エッジEの長さごとに設定された判定値を取得し、外側領域Oにて検出されたいずれかの長さの垂直エッジEの本数が当該判定値以上である場合に、外側領域Oにおける垂直エッジEの検出結果が外側条件を満足すると判定してもよい。
図8は、本実施形態にかかる判定値データ30cを示すグラフである。同図において、横軸は垂直エッジEの長さを示し、縦軸は判定値を示す。同図に示すように、判定値データ30cにおいて、垂直エッジEの長さの区分ごとに判定値が記録されている。本実施形態において、判定部21dの機能により制御部20は、内側領域Iまたは外側領域Oにて検出された垂直エッジEを長さの区分ごとに分類し、垂直エッジEの長さの区分ごとに垂直エッジEの本数を取得する。そして、判定部21dの機能により制御部20は、垂直エッジEの長さの区分ごとに取得した垂直エッジEの本数が判定値以上であるか否かを判定する。以上の構成により、制御部20は、内側領域に存在する垂直エッジEとして過剰な本数の垂直エッジEが存在しているか否かを、垂直エッジEの長さごとに判定できる。また、制御部20は、外側領域に存在する垂直エッジEとして適正な本数の垂直エッジEが存在しているか否かを、垂直エッジEの長さごとに判定できる。
垂直エッジEの本数は地面に対して高さが急激に変化している箇所の個数を意味し、垂直エッジEの長さは地面に対する高さの変化量を意味する。従って、垂直エッジEの本数と垂直エッジEの長さとがそれぞれ大きいほど、車両の走行が妨げられる可能性が高く、道路の像である内側領域における垂直エッジEの検出結果として適正でないと判定できる。反対に、垂直エッジEの本数と垂直エッジEの長さとがそれぞれ大きいほど、道路外の部分の像である外側領域における垂直エッジEの検出結果として適正である判定できる。ただし、垂直エッジEの本数が少なくても、車両が乗り越えられない程度の高さに対応する長さの垂直エッジEが検出されれば、車両の走行が妨げられる可能性が高いと言える。反対に、長い垂直エッジEが検出されなくても、車両の走行が困難な程度の本数の垂直エッジEが検出されれば、車両の走行が妨げられる可能性が極めて高いと言える。すなわち、垂直エッジEの本数と垂直エッジEの長さとのいずれか一方のみを考慮するだけでは、内側条件および外側条件を満足するか否かを正確に判定できなくなる場合がある。これに対して、垂直エッジEの長さと本数との組み合わせに基づいて内側条件を判定することにより、内側領域における垂直エッジEの検出結果が適正であるか否かを正確に判定できる。
例えば、図8において実線で示すように、所定の基準長さF以上の垂直エッジEの長さの区分については、基準長さF未満の垂直エッジEの長さよりも小さい判定値が記録されてもよい。基準長さFは、車両が乗り越えられる地面からの高さの上限値に対応する垂直エッジEの長さである。従って、内側領域Iにおいて車両が乗り越えられない程度の高さに対応する長さの垂直エッジEが検出された場合、当該長さの垂直エッジEの本数が小さくても、垂直エッジEの検出結果が内側条件を満足しないと判定できる。反対に、外側領域Oにおいて車両が乗り越えられない程度の高さに対応する長さの垂直エッジEが検出された場合、当該長さの垂直エッジEの本数が小さくても、垂直エッジEの検出結果が外側条件を満足すると判定できる。
また、地面に対する高さの変化量が大きい箇所は、個数が少なくても車両の走行の妨げとなるため、制御部20は、垂直エッジEの長さが大きいほど小さい判定値を取得してもよい。図5において破線で示すように、垂直エッジEの長さが長くなるほど小さい判定値が判定値データ30cに記録されてもよい。なお、外側領域Oにおける垂直エッジEの長さごとに設定された判定値は、内側領域Iにおける垂直エッジEの長さごとに設定された判定値と同一であってもよいし、異なってもよい。
さらに、制御部20は、内側領域Iまたは外側領域Oにて検出された垂直エッジEの長さを、垂直エッジEの下端の位置とカメラ44の光学条件とに基づいて実空間における垂直線の長さに変換し、当該実空間における垂直線の長さの区分ごとに垂直エッジEの本数を取得してもよい。そして、制御部20は、実空間における垂直線の長さの区分ごとに、垂直エッジEの本数が判定値以上であるか否かを判定してもよい。この場合、判定値データ30cにおいては、前方画像における垂直エッジEの長さの区分ごとに判定値を記録するのではなく、実空間における垂直線の長さの区分ごとに判定値を記録しておけばよい。
ところで、図8にて実線で示す判定値を用いて内側条件または外側条件を判定することは、車両が乗り越えられない高さの立体物が内側領域Iまたは外側領域Oに存在するか否かを判定することを意味する。すなわち、判定部21dの機能により制御部20は、内側領域Iにおける垂直エッジEの検出結果が、内側領域Iに立体物の像が存在しないことを示す場合に、内側条件を満足すると判定してもよい。道路上には車両の走行を妨げる立体物が存在する可能性が低いため、内側領域Iにおける垂直エッジEの検出結果が内側領域Iに立体物の像が存在しないことを示す場合に、内側領域Iにおける垂直エッジEの検出結果が道路の像における垂直エッジEの検出結果として適正であると判定できる。反対に、判定部21dの機能により制御部20は、外側領域Oにおける垂直エッジEの検出結果が、外側領域Oに立体物の像が存在することを示す場合に、外側条件を満足すると判定してもよい。道路外の部分には車両の走行を妨げる立体物が存在する可能性が高いため、外側領域Oにおける垂直エッジEの検出結果が外側領域Oに立体物の像が存在することを示す場合に、外側領域Oにおける垂直エッジEの検出結果が道路外の部分の像における垂直エッジEの検出結果として適正であると判定できる。
本実施形態においては、図8において一点鎖線で示すように、道路外の部分に設けられる立体物の高さに対応する垂直エッジEの長さの区分については、他の区分よりも小さい判定値が記録されている。例えば、道路外の部分に設けられるガードレールの支柱の高さに対応する垂直エッジEの長さの区分Gについては、他の区分よりも小さい判定値が記録されている。これにより、内側領域Iに立体物としてのガードレールの像が存在しない場合に、内側条件を満足すると判定できる。反対に、内側領域Iに立体物としてのガードレールの像が存在する場合に、外側条件を満足すると判定できる。さらに、制御部20は、道路上に形成される矢印標識等のペイントの像上に表れ得る垂直エッジEの長さについて、他の垂直エッジEの長さよりも大きい判定値を取得してもよい。
さらに、判定部21dの機能により制御部20は、内側領域Iにて検出された垂直エッジEが、前方画像において周期的に存在する場合に、内側領域Iにおける垂直エッジEの検出結果が内側条件を満足しないと判定してもよい。すなわち、制御部20は、内側領域Iにて検出された垂直エッジEが、道路に存在し得ない物体の固有周期に対応した周期で存在する場合には、内側領域Iにおける垂直エッジEの検出結果が内側条件を満足しないと判定する。固有周期とは、道路外の部分に設けられる立体物に固有の空間周期であり、例えばガードレールの支柱の設置周期に対応する前方画像内の周期であってもよい。これにより、内側領域Iにガードレール等の立体物の像が存在する場合に、内側領域Iにおける垂直エッジEの検出結果が内側条件を満足しないと判定できる。また、判定部21dの機能により制御部20は、外側領域Oにて検出された垂直エッジEが、前方画像において周期的に存在する場合に、外側領域Oにおける垂直エッジEの検出結果が外側条件を満足すると判定してもよい。すなわち、制御部20は、外側領域Oにて検出された垂直エッジEが、ガードレール等の固有周期に対応した周期で場合には、外側領域Oにおける垂直エッジEの検出結果が外側条件を満足すると判定してもよい。これにより、外側領域Oにガードレール等の立体物の像が存在する場合に、外側領域Oにおける垂直エッジEの検出結果が外側条件を満足すると判定できる。
また、制御部20は、内側領域Iにおいて垂直エッジEが存在している周期の大きさを問わず、垂直エッジEがいずれかの大きさの周期を持って存在している場合に、内側領域Iにおける垂直エッジEの検出結果が内側条件を満足しないと判定してもよい。人工の立体物は周期構造を有している可能性が高いため、内側領域Iにて検出された垂直エッジEがいずれかの大きさの周期で存在する場合に、内側領域Iに人工の立体物が存在している可能性が高いと判定できる。同様に、制御部20は、外側領域Oにおいて垂直エッジEが存在している周期の大きさを問わず、垂直エッジEがいずれかの大きさの周期を持って存在している場合に、外側領域Oにおける垂直エッジEの検出結果が外側条件を満足すると判定してもよい。一方、周期的でない垂直エッジEは、例えば道路上に形成された汚れや水たまり等に対応すると考えられ、周期的でない垂直エッジEが存在する場合でも、内側領域Iにおける垂直エッジEの検出結果が内側条件を満足すると判定できる。
ここで、垂直エッジEが画像において周期的に存在するとは、画像内における垂直エッジEの位置に対応する実空間内の位置が周期的であることであってもよい。例えば、制御部20は、垂直エッジEの下端の位置を位置変換テーブル30bに基づいて実空間内の位置に変換し、当該実空間内における下端の位置が走行道路の方向に沿った周期性を有するか否かを判定してもよい。以上においては、垂直エッジEの本数と長さと周期性に基づいて候補線Cが道路端線であるか否かを判定する例を挙げたが、これら以外の垂直エッジの検出結果の指標に基づいて候補線Cが道路端線であるか否かを判定してもよい。例えば、垂直エッジの検出結果とは、検出された垂直エッジの量(密度等)を評価する指標であってもよいし、検出された垂直エッジの形状を評価する指標であってもよいし、検出された垂直エッジの分布位置を評価する指標であってもよい。
さらに、判定部21dの機能により制御部20は、内側領域Iにおける垂直エッジEの検出結果が内側条件を満足し、かつ、外側領域Oにおける垂直エッジEの検出結果が外側条件を満足する候補線Cが、道路の幅方向の中央よりも左側または右側の一方に複数存在する場合、当該複数存在する候補線Cのうち道路の幅方向の中央に最も近い候補線Cが道路端線であると判定してもよい。すなわち、制御部20は、図4のステップS150において真に走行道路の道路端線であると判定された2本以上の候補線Cが、前方画像の下辺の中点Pの右側または左側の一方にて下辺に交差する場合、下辺の中点Pの右側または左側の一方にて下辺に交差する候補線Cのうち、最も下辺の中点Pに近い位置にて下辺に交差する候補線Cが真に走行道路の道路端線であると判定してもよい。これにより、走行道路の幅方向の中央よりも左側または右側において道路端線を一意に特定できる。また、道路の幅方向の中央に最も近い候補線Cが道路端線であると判定することにより、現実の道路の幅方向の端よりも外側に存在する線を道路端線として誤検出することを防止できる。
候補線認識部21aの機能により制御部20は、前方画像上の線のうち、道路の方向に平行な線に対応する線を候補線Cとして認識してもよい。道路上には道路の方向に平行なレーンの区画線が複数形成されるため、制御部20は、レーンの区画線の像Dが消失する消失点Z(図2C)に向かって伸びる線を候補線Cとして認識してもよい。すなわち、制御部20は、少なくとも他の2本の候補線Cが交差している点(消失点Z)を通過する線を候補線Cとして認識してもよい。さらに、候補線認識部21aの機能により制御部20は、地図情報30aの形状補間点データに基づいて走行道路の形状を特定し、当該走行道路の形状にマッチする形状の候補線Cを認識してもよい。
さらに、道路端線および候補線Cは、必ずしも区画線に対応する線でなくてもよい。例えば、候補線認識部21aの機能により制御部20は、特徴点Kにおける輝度の傾きの絶対値の閾値を小さく設定することにより、路面と縁石との境界線や、路面と中央分離帯との境界線のようにコントラストが小さい線に対応する候補線Cを認識してもよい。すなわち、制御部20は、車両が走行できるように舗装された路面の端に対応する候補線Cを認識してもよい。このように区画線に対応する線以外の候補線Cを認識した場合、2個の候補線Cによって挟まれた領域が必ずしも1レーン分のレーンの像とならなくなる。従って、領域設定部21bの機能により制御部20は、処理対象の候補線Cよりも前方画像の中央側においても仮想線Vを生成し、当該処理対象の候補線Cと仮想線Vとによって挟まれた領域を内側領域Iとして設定してもよい。さらに、内側領域Iと外側領域Oは、必ずしも1レーン分の領域でなくてもよく、前方画像における一定面積の領域であってもよい。
判定部21dの機能により制御部20は、内側領域Oにおける垂直エッジの検出結果と、外側領域Oにおける垂直エッジの検出結果との双方に基づいて判定を行えばよく、内側領域Iにおける垂直エッジの検出結果と、外側領域Oにおける垂直エッジの検出結果の少なくとも一方が条件を満足する場合に、候補線Cが道路端線であると判定してもよい。さらに、制御部20は、内側領域Iにおける垂直エッジの検出結果と、外側領域Oにおける垂直エッジの検出結果との双方に基づいて判定値を導出し、当該判定値が所定の範囲内である場合に候補線Cが道路端線であると判定してもよい。例えば、制御部20は、内側領域Iにおける垂直エッジの本数を外側領域Oにおける垂直エッジの本数で除算した判定値が閾値以下である場合に、候補線Cが道路端線であると判定してもよい。
さらに、検出した道路端線は、種々の運転支援に利用することができる。例えば、検出した道路端線を利用して車両のステアリングやブレーキ等の制御を行うようにしてもよい。また、道路端検出システムは、ステアリングやブレーキ等の車両制御を行う車両ECUにて実現されてもよい。