図1は、本発明の一実施形態による車載装置としての車載システムの機能ブロック図である。本車載システムは車両100に搭載されており、ナビゲーション装置1、走行車線推定装置2、画像認識装置3およびカメラ4を有する。ナビゲーション装置1、走行車線推定装置2および画像認識装置3は、CAN(Controller Area Network)と呼ばれる車両100内のネットワークを介して互いに接続されている。カメラ4は画像認識装置3と接続されている。
ナビゲーション装置1は、車両100に搭乗しているユーザからの操作に応じて、車両100の目的地を設定し、その目的地まで車両100を案内する。
走行車線推定装置2は、分岐点の手前において車両100が走行している道路上の走行車線(走行レーン)を推定し、その推定結果をCANを介してナビゲーション装置1へ出力する。ナビゲーション装置1は、走行車線推定装置2による走行車線の推定結果に基づいて、必要に応じて車両100の進行方向等をユーザへ指示することにより、車両100を目的地まで案内する。
画像認識装置3は、カメラ4により撮影された路面の撮影画像に基づいて、車両100が走行している車線の左側に存在する白線(左白線)と、右側に存在する白線(右白線)とについて、これらの白線の種別を認識するための画像処理を行う。具体的には、撮影画像から左白線と右白線の部分をそれぞれ抽出し、これらが実線または破線のいずれであるかをそれぞれ識別する。この画像処理には、たとえば周知のエッジ検出処理やハフ変換などを用いることができる。なお、ここでは各車線を区分するために道路上に描かれている区画線を白線と称しているが、区画線の色は白に限定されない。
画像認識装置3により左白線および右白線の種別が認識されると、その認識結果に関する情報が画像認識装置3からCANを介して走行車線推定装置2へ出力される。走行車線推定装置2は、この情報を用いて走行車線推定処理を行う。
カメラ4は、車両100の後方の路面を撮影し、その撮影範囲内に左白線および右白線が少なくとも含まれるように車両100に設置されている。たとえば、駐車支援等に利用されるリアビューカメラをカメラ4として利用することができる。カメラ4により撮影された撮影画像は画像認識装置3へ出力され、画像認識装置3が行う前述の画像処理において用いられる。
片側に複数の車線を有する道路上を車両100が走行しているとき、前方に存在する分岐点から所定距離以内に車両100が近づくと、図1に示す車載システムにおいて、分岐後に車両100が走行する道路を推定するための処理が実行される。この処理の具体的な内容については、後で詳しく説明する。
図2は、ナビゲーション装置1の構成を示すブロック図である。図2に示すように、ナビゲーション装置1は、制御部10、GPS(Global Positioning System)受信部11、振動ジャイロ12、車速センサ13、ハードディスクドライブ(HDD)14、表示モニタ15、スピーカ16、入力装置17および通信部18を備えている。
制御部10は、マイクロプロセッサや各種周辺回路、RAM、ROM等によって構成されており、HDD14に記録されている制御プログラムや地図データに基づいて、各種の処理を実行する。たとえば、目的地を設定する際の目的地の検索処理、設定された目的地までの推奨経路の探索処理、車両100の現在位置の検出処理、各種の画像表示処理、音声出力処理などが制御部10によって実行される。
GPS受信部11は、GPS衛星から送信されるGPS信号を受信して制御部10へ出力する。GPS信号には、車両100の現在位置を求めるための情報として、そのGPS信号を送信したGPS衛星の位置と送信時刻に関する情報が含まれている。したがって、所定数以上のGPS衛星からGPS信号を受信することにより、これらの情報に基づいて、車両100の現在位置を制御部10において算出することができる。
振動ジャイロ12は、車両100の角速度を検出するためのセンサである。車速センサ13は、車両100の走行速度を検出するためのセンサである。これらのセンサの検出結果に基づく車両100の移動方向および移動量の算出結果と、前述のGPS信号に基づく車両100の現在位置の算出結果とに基づいて、制御部10において所定時間ごとに位置検出処理が実行され、車両100の現在位置が検出される。
HDD14は不揮発性の記録媒体であり、制御部10において上記のような処理を実行するための制御プログラムや地図データなどが記録されている。HDD14に記録されているデータは、必要に応じて制御部10の制御により読み出され、制御部10が実行する様々な処理や制御に利用される。
HDD14に記録された地図データは、経路計算データと、道路データと、背景データとを含む。経路計算データは、目的地までの推奨経路を探索する際などに用いられるデータである。道路データは、道路の形状や種別などを表すデータである。背景データは、地図の背景を表すデータである。なお、地図の背景とは、地図上に存在する道路以外の様々な構成物である。たとえば、河川、鉄道、緑地帯、各種構造物などが背景データによって表される。
地図データにおいて各道路の最小単位はリンクと呼ばれている。すなわち、各道路は所定の道路区間にそれぞれ対応する複数のリンクによって構成されており、リンク単位で経路計算データおよび道路データが表現されている。リンク同士を接続している点、すなわち各リンクの端点はノードと呼ばれる。地図データにおける各ノードの情報には、位置情報(座標情報)が含まれている。なお、リンク内においてノードとノードの間に必要に応じて形状補間点と呼ばれる点が設定されていることもある。地図データにおける各形状補間点の情報には、ノードの場合と同様に位置情報(座標情報)が含まれている。このノードと形状補間点の位置情報によって、各リンクの形状、すなわち道路の形状が決定される。このように、HDD14に記憶されている地図データにおいて、道路は複数のノードとリンクを用いて表されている。
片側に複数の走行車線を有する道路が分岐している場合、その分岐点に相当するノードの情報には、当該道路の走行車線数に関する車線数情報と、各車線の分岐後の進行方向に関するバイファケーション情報(分岐情報)とが含まれている。これらの情報は、後で説明するように、走行車線推定装置2が行う走行車線推定処理において利用される。
経路計算データには、各道路区間に対応するリンクごとに、車両100が当該道路区間を走行する際の通過所要時間等に応じたリンクコストが設定されている。このリンクコストに基づいて、予め設定された経路探索条件に応じたリンクの組合せを求めることにより、ナビゲーション装置1において推奨経路の探索が行われる。たとえば、移動時間の短さを最優先として経路探索を行うような経路探索条件が設定されている場合は、出発地から目的地までの通過所要時間が最小となるリンクの組合せが推奨経路として求められる。
なお、上記ではナビゲーション装置1において地図データがHDD14に記録されている例を説明したが、これらをHDD以外の記録媒体に記録することとしてもよい。たとえば、CD−ROMやDVD−ROM、メモリカードなどに記録された地図データを用いることができる。すなわち、ナビゲーション装置1では、どのような記録媒体を用いてこれらのデータを記憶してもよい。
表示モニタ15は、ナビゲーション装置1において様々な画面表示を行うための装置であり、液晶ディスプレイ等を用いて構成される。この表示モニタ15により、地図画面の表示や推奨経路の案内表示などが行われる。表示モニタ15に表示される画面の内容は、制御部10が行う画面表示制御によって決定される。表示モニタ15は、たとえば車両100のダッシュボード上やインストルメントパネル内など、ユーザが見やすいような位置に設置されている。
スピーカ16は、制御部10の制御により様々な音声情報を出力する。たとえば、推奨経路に従って車両100を目的地まで案内するための経路案内用の音声や、各種の警告音などがスピーカ16から出力される。
入力装置17は、ナビゲーション装置1を動作させるための様々な入力操作をユーザが行うための装置であり、各種の入力スイッチ類を有している。ユーザは、入力装置17を操作することにより、たとえば、目的地に設定したい施設や地点の名称等を入力したり、推奨経路の探索条件を設定したり、予め登録された登録地の中から目的地を選択したり、地図を任意の方向にスクロールしたりすることができる。この入力装置17は、操作パネルやリモコンなどによって実現することができる。あるいは、入力装置17を表示モニタ15と一体化されたタッチパネルとしてもよい。
ユーザが入力装置17を操作して目的地および経路探索条件を設定すると、ナビゲーション装置1は、前述のようにして検出された車両100の現在位置を出発地として、前述の経路計算データに基づいて所定のアルゴリズムの演算による経路探索処理を行う。この処理により、出発地から目的地まで至る推奨経路を探索する。さらにナビゲーション装置1は、たとえば色を変える等の方法により、表示モニタ15に表示された地図上において他の道路と識別可能な形態で探索された推奨経路を表示する。そして、推奨経路に従って所定の画像情報や音声情報を表示モニタ15やスピーカ16から出力することにより、車両100を目的地まで案内する。
通信部18は、ナビゲーション装置1と走行車線推定装置2または画像認識装置3との間でCANを介した通信を行う際に所定のインタフェース処理を行う。走行車線推定装置2により走行車線推定処理が行われると、その結果が走行車線推定装置2からナビゲーション装置1へ出力され、通信部18を介して制御部10により取得される。こうして取得した走行車線の推定結果に基づいて、制御部10が表示モニタ15やスピーカ16を制御して所定の画面表示や音声出力を行うことにより、分岐点における車両100の案内を必要に応じて行うことができる。
次に、図1に示した車載システムにおいて実行される処理について説明する。前述したように、片側に複数の車線を有する道路を車両100が走行しているときに、その道路の前方に存在する分岐点から所定距離以内に車両100が近づくと、分岐後に車両100が走行する道路を推定するために、図3のフローチャートに示す処理が車載システムにおいて実行される。
ステップS10において、ナビゲーション装置1は、車両100が車線変更中であるか否かを制御部10において判定する。この判定は、車両100のステアリング角度やウィンカーの動作状態、振動ジャイロ12により検出された車両100の角速度などに基づいて行うことができる。あるいは、カメラ4の撮影画像に基づいて、車両100が左白線または右白線を跨いで移動したか否かを画像認識装置3において判断することにより、ステップS10の判定を行ってもよい。このステップS10の判定により、車両100が車線変更中であると判定した場合はステップS10に留まり、車線変更中でないと判定したら次のステップS20へ進む。
ステップS20において、走行車線推定装置2は、車両100の前方に存在する分岐点に関する情報をナビゲーション装置1から取得する。このときナビゲーション装置1は、HDD14に記憶されている地図データの中から当該分岐点に対応するノードの情報を検索し、そのノードの情報に含まれている車線数情報およびバイファケーション情報を通信部18からCANを介して走行車線推定装置2へ出力する。こうしてナビゲーション装置1から出力された情報を受信することにより、走行車線推定装置2において処理対象とする前方の分岐点に関する情報が取得される。
ステップS30において、画像認識装置3は、車両100の後方の路面を撮影した撮影画像をカメラ4から取得する。
ステップS40において、画像認識装置3は、ステップS30で取得した撮影画像に基づいて、車両100が走行している車線の左右に存在する左白線および右白線の種別をそれぞれ認識する。ここでは、画像認識装置3において前述のような画像処理を行うことにより、左白線および右白線が実線または破線のいずれであるかをそれぞれ識別する。この左右の白線種別の識別結果は、画像認識装置3からCANを介して走行車線推定装置2へ出力される。
ステップS50において、走行車線推定装置2は、分岐点よりも手前に位置する分岐路境界地点を車両100が通過する前であるか否かを判定する。この判定は、たとえば、車両100の現在位置から分岐点までの距離の情報をナビゲーション装置1から走行車線推定装置2へ出力し、その距離が所定のしきい値以上であるか否かを走行車線推定装置2において判断することで行うことができる。あるいは、ステップS50の判定をナビゲーション装置1が行うようにしてもよい。このステップS50の判定により、車両100が分岐路境界地点を通過する前であると判定した場合はステップS60へ進み、既に分岐路境界地点を通過した後であると判定したらステップS130へ進む。
上記の分岐路境界地点とは、分岐点の手前において道路上の各車線が分岐路ごとに分離される境界地点のことである。この分岐路境界地点では、道路上に描かれている各車線の白線のうち分岐点につながる白線の種別が破線から実線に変化することで、各車線が分岐路ごとに分離されることを示している。
なお、ステップS50の判定において用いられる上記のしきい値は、分岐路境界地点から分岐点までの距離に相当するものであり、分岐点ごとに異なっている。したがって、走行車線推定装置2またはナビゲーション装置1によりステップS50の判定を行うためには、ナビゲーション装置1において、HDD14に記録されている地図データのうち各分岐点に対応するノードの情報の中に、当該分岐路境界地点から分岐点までの距離に関する情報を含めて記録しておくことが好ましい。走行車線推定装置2によりステップS50の判定を行う場合は、こうした情報を、たとえばステップS20において車線数情報およびバイファケーション情報と共にナビゲーション装置1から走行車線推定装置2へ出力すればよい。
ステップS60において、走行車線推定装置2は、ステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が実線かつ右白線が破線であるか否かを判定する。左白線が実線かつ右白線が破線である場合はステップS90へ進み、左白線が実線でない場合、または右白線が破線でない場合はステップS70へ進む。
ステップS70において、走行車線推定装置2は、ステップS40における左右の白線種別の識別結果に基づいて、左白線が破線かつ右白線が実線であるか否かを判定する。左白線が破線かつ右白線が実線である場合はステップS100へ進み、左白線が破線でない場合、または右白線が実線でない場合はステップS80へ進む。
ステップS80において、走行車線推定装置2は、ステップS40における左右の白線種別の識別結果に基づいて、左白線が破線かつ右白線が破線であるか否かを判定する。左白線が破線かつ右白線が破線である場合はステップS110へ進み、左白線が破線でない場合、または右白線が破線でない場合はステップS120へ進む。
ステップS90において、走行車線推定装置2は、左端レーン、すなわち道路の片側にある複数の車線のうち最も路肩に近い位置にある車線を、現在の車両100の走行車線に設定する。ステップS90を実行したらステップS10へ戻り、前述のような処理を繰り返す。
ステップS100において、走行車線推定装置2は、右端レーン、すなわち道路の片側にある複数の車線のうち最も中央線または中央分離帯に近い位置にある車線を、現在の車両100の走行車線に設定する。ステップS100を実行したらステップS10へ戻り、前述のような処理を繰り返す。
ステップS110において、走行車線推定装置2は、上記の右端レーンと左端レーンを除いた中間レーン、すなわち道路の片側にある複数の車線のうち右端の車線と左端の車線の間に位置する車線を、現在の車両100の走行車線に設定する。なお、片側4車線以上の道路を車両100が走行中の場合、右端の車線と左端の車線の間に2つ以上の車線が存在するため、その中でいずれの車線が車両100の走行車線であるかをこの時点では確定することができない。ステップS110を実行したらステップS10へ戻り、前述のような処理を繰り返す。
ステップS120において、走行車線推定装置2は、現在の車両100の走行車線が不明であると設定する。ステップS120を実行したらステップS10へ戻り、前述のような処理を繰り返す。
車両100が分岐路境界地点を通過する前では、上記ステップS60〜S120で説明したような処理が実行されることにより、走行車線推定装置2において車両100の走行車線が推定される。
一方、車両100が既に分岐路境界地点を通過したとステップS50において判定した場合、ステップS130において走行車線推定装置2は、ステップS20で取得した車線数情報に基づいて、車両100が現在走行している道路の片側車線数を判定する。その結果、片側2車線であると判定した場合はステップS140へ、片側3車線であると判定した場合はステップS150へ、片側4車線以上であると判定した場合はステップS160へとそれぞれ進む。
ステップS140において、走行車線推定装置2は、片側2車線の道路に対して分岐路境界地点通過後における車両100の走行車線を推定するための2車線用判定処理を行う。この処理では、片側2車線の道路においていずれか一方の車線が分岐路境界地点通過後の走行車線として設定される。なお、2車線用判定処理の詳細については、後で図4のフローチャートにより詳しく説明する。ステップS140を実行したら、走行車線推定装置2はステップS170へ進む。
ステップS150において、走行車線推定装置2は、片側3車線の道路に対して分岐路境界地点通過後における車両100の走行車線を推定するための3車線用判定処理を行う。この処理では、片側3車線の道路においていずれかの車線が分岐路境界地点通過後の走行車線として設定される。なお、3車線用判定処理の詳細については、後で図5および6のフローチャートにより詳しく説明する。ステップS150を実行したら、走行車線推定装置2はステップS170へ進む。
ステップS160において、走行車線推定装置2は、片側4車線以上の道路に対して分岐路境界地点通過後における車両100の走行車線を推定するための多車線用判定処理を行う。この処理では、片側4車線以上の道路においていずれかの車線が分岐路境界地点通過後の走行車線として設定される。なお、多車線用判定処理の詳細については、後で図7および8のフローチャートにより詳しく説明する。ステップS160を実行したら、走行車線推定装置2はステップS170へ進む。
車両100が分岐路境界地点を通過した後では、上記ステップS130〜S160で説明したような処理が実行されることにより、走行車線推定装置2において車両100の走行車線が推定される。
ステップS170において、走行車線推定装置2は、ステップS140、S150またはS160のいずれかの処理によって推定された分岐路境界地点通過後の車両100の走行車線に対応する分岐道路を判別する。ここでは、ステップS20で取得したバイファケーション情報に基づいて、ステップS140、S150またはS160で設定された分岐路境界地点通過後の走行車線について分岐後の進行方向を判断し、その進行方向に対応する分岐道路を特定する。これにより、車両100がどの分岐道路を走行しようとしているかを判別することができる。こうして車両100の走行車線に対応する分岐道路を判別したら、走行車線推定装置2はステップS180へ進む。
ステップS180において、走行車線推定装置2は、ステップS170の判別結果をナビゲーション装置1へCANを介して出力する。こうして車両100の走行車線に対応する分岐道路の判別結果が走行車線推定装置2から出力されることで、車両100がどちらの分岐道路に向かって走行しようとしているかをナビゲーション装置1により判断し、分岐点の手前において車線変更の指示等を必要に応じて行うことができる。ステップS180の処理を実行したら、走行車線推定装置2は図3のフローチャートを終了する。
次に、図3のステップS140で実行される2車線用判定処理について説明する。図4は、2車線用判定処理のフローチャートである。
ステップS200において、走行車線推定装置2は、分岐路境界地点を通過する前の車両100の走行車線が左端レーンと右端レーンのいずれであったかを判定する。この判定は、図3のステップS50で車両100が分岐路境界地点を通過したと判定される前の時点において、最後にどの車線が走行車線として設定されたかを判断することにより行うことができる。最後にステップS90が実行されて左端レーンが走行車線に設定された場合は、分岐路境界地点を通過する前の車両100の走行車線が左端レーンであったと判定してステップS210へ進む。一方、最後にステップS100が実行されて右端レーンが走行車線に設定された場合は、分岐路境界地点を通過する前の車両100の走行車線が右端レーンであったと判定してステップS220へ進む。
なお、最後にステップS110が実行されて中間レーンが走行車線に設定された場合や、最後にステップS120が実行されて走行車線が不明であると設定された場合は、分岐路境界地点通過後の走行車線が不明であると判断し、図4の2車線用判定処理を中断することが好ましい。
ステップS210において、走行車線推定装置2は、直近のステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が実線かつ右白線が実線であるか否かを判定する。左白線が実線かつ右白線が実線である場合はステップS230へ進み、左白線が実線でない場合、または右白線が実線でない場合はステップS240へ進む。
ステップS220において、走行車線推定装置2は、直近のステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が実線かつ右白線が実線であるか否かを判定する。左白線が実線かつ右白線が実線である場合はステップS250へ進み、左白線が実線でない場合、または右白線が実線でない場合はステップS240へ進む。
ステップS230において、走行車線推定装置2は、片側2車線のうちの第1レーン、すなわち車両100が分岐路境界地点を通過する前に走行していた左端レーンを、分岐路境界地点通過後の走行車線に設定する。ステップS230を実行したら図4のフローチャートを終了し、図3のステップS170へ進む。
ステップS240において、走行車線推定装置2は、分岐路境界地点通過後の車両100の走行車線が不明であると設定する。ステップS240を実行したら図4のフローチャートを終了し、図3のステップS170へ進む。
ステップS250において、走行車線推定装置2は、片側2車線のうちの第2レーン、すなわち車両100が分岐路境界地点を通過する前に走行していた右端レーンを、分岐路境界地点通過後の走行車線に設定する。ステップS250を実行したら図4のフローチャートを終了し、図3のステップS170へ進む。
以上説明したように、2車線用判定処理では、ステップS210またはS220で左白線および右白線の種別がいずれも実線であると判定されたときに、ステップS230またはS250の処理が実行され、第1レーンまたは第2レーンが分岐路境界地点通過後の車両100の走行車線として設定される。これにより、分岐路境界地点通過前に推定された走行車線と同じ走行車線を、分岐路境界地点通過後の走行車線として推定することができる。
次に、図3のステップS150で実行される3車線用判定処理について説明する。図5および6は、3車線用判定処理のフローチャートである。
ステップS300において、走行車線推定装置2は、分岐路境界地点を通過する前の車両100の走行車線が左端レーン、右端レーンまたは中間レーンのいずれであったかを判定する。この判定は、図4のステップS200と同様に、図3のステップS50で車両100が分岐路境界地点を通過したと判定される前の時点において、最後にどの車線が走行車線として設定されたかを判断することにより行うことができる。最後にステップS90が実行されて左端レーンが走行車線に設定された場合は、分岐路境界地点を通過する前の車両100の走行車線が左端レーンであったと判定してステップS310へ進む。一方、最後にステップS100が実行されて右端レーンが走行車線に設定された場合は、分岐路境界地点を通過する前の車両100の走行車線が右端レーンであったと判定してステップS360へ進む。また、最後にステップS110が実行されて中間レーンが走行車線に設定された場合は、分岐路境界地点を通過する前の車両100の走行車線が中間レーンであったと判定して図6のステップS410へ進む。
なお、最後にステップS120が実行されて走行車線が不明であると設定された場合は、分岐路境界地点通過後の走行車線が不明であると判断し、図5および6の3車線用判定処理を中断することが好ましい。
ステップS310において、走行車線推定装置2は、ステップS20で取得したバイファケーション情報に基づいて、片側3車線のうちの第1レーン、すなわち左端レーンに対応する分岐道路が1車線であるか否かを判定する。第1レーンのバイファケーション情報が示す進行方向と、その隣にある第2レーンのバイファケーション情報が示す進行方向とが互いに異なる場合は、第1レーンに対応する分岐道路が1車線であると判定してステップS320へ進み、そうでない場合はステップS330へ進む。
ステップS320において、走行車線推定装置2は、直近のステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が実線かつ右白線が実線であるか否かを判定する。左白線が実線かつ右白線が実線である場合はステップS340へ進み、左白線が実線でない場合、または右白線が実線でない場合はステップS350へ進む。
ステップS330において、走行車線推定装置2は、直近のステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が実線かつ右白線が破線であるか否かを判定する。左白線が実線かつ右白線が破線である場合はステップS340へ進み、左白線が実線でない場合、または右白線が破線でない場合はステップS350へ進む。
ステップS340において、走行車線推定装置2は、片側3車線のうちの第1レーン、すなわち車両100が分岐路境界地点を通過する前に走行していた左端レーンを、分岐路境界地点通過後の走行車線に設定する。ステップS340を実行したら図5および6のフローチャートを終了し、図3のステップS170へ進む。
ステップS350において、走行車線推定装置2は、分岐路境界地点通過後の車両100の走行車線が不明であると設定する。ステップS350を実行したら図5および6のフローチャートを終了し、図3のステップS170へ進む。
ステップS360において、走行車線推定装置2は、ステップS20で取得したバイファケーション情報に基づいて、片側3車線のうちの第3レーン、すなわち右端レーンに対応する分岐道路が1車線であるか否かを判定する。第3レーンのバイファケーション情報が示す進行方向と、その隣にある第2レーンのバイファケーション情報が示す進行方向とが互いに異なる場合は、第3レーンに対応する分岐道路が1車線であると判定してステップS370へ進み、そうでない場合はステップS380へ進む。
ステップS370において、走行車線推定装置2は、直近のステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が実線かつ右白線が実線であるか否かを判定する。左白線が実線かつ右白線が実線である場合はステップS390へ進み、左白線が実線でない場合、または右白線が実線でない場合はステップS400へ進む。
ステップS380において、走行車線推定装置2は、直近のステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が破線かつ右白線が実線であるか否かを判定する。左白線が破線かつ右白線が実線である場合はステップS390へ進み、左白線が破線でない場合、または右白線が実線でない場合はステップS400へ進む。
ステップS390において、走行車線推定装置2は、片側3車線のうちの第3レーン、すなわち車両100が分岐路境界地点を通過する前に走行していた右端レーンを、分岐路境界地点通過後の走行車線に設定する。ステップS390を実行したら図5および6のフローチャートを終了し、図3のステップS170へ進む。
ステップS400において、走行車線推定装置2は、分岐路境界地点通過後の車両100の走行車線が不明であると設定する。ステップS400を実行したら図5および6のフローチャートを終了し、図3のステップS170へ進む。
図6のステップS410において、走行車線推定装置2は、ステップS20で取得したバイファケーション情報に基づいて、片側3車線のうちの第2レーン、すなわち中央の車線に対応する分岐道路が1車線であるか否かを判定する。第2レーンのバイファケーション情報が示す進行方向と、他の第1レーンおよび第3レーンのバイファケーション情報が示す進行方向とが互いに異なる場合は、第2レーンに対応する分岐道路が1車線であると判定してステップS430へ進み、そうでない場合はステップS420へ進む。
ステップS420において、走行車線推定装置2は、ステップS20で取得したバイファケーション情報に基づいて、分岐後の第2レーンの位置が左端と右端のいずれであるかを判定する。第2レーンと第3レーンのバイファケーション情報が示す進行方向が同じであり、その進行方向と第1レーンのバイファケーション情報が示す進行方向とが異なる場合は、分岐後の第2レーンの位置が左端であると判定してステップS440へ進む。一方、第1レーンと第2レーンのバイファケーション情報が示す進行方向が同じであり、その進行方向と第3レーンのバイファケーション情報が示す進行方向とが異なる場合は、分岐後の第2レーンの位置が右端であると判定してステップS450へ進む。
ステップS430において、走行車線推定装置2は、直近のステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が実線かつ右白線が実線であるか否かを判定する。左白線が実線かつ右白線が実線である場合はステップS460へ進み、左白線が実線でない場合、または右白線が実線でない場合はステップS470へ進む。
ステップS440において、走行車線推定装置2は、直近のステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が実線かつ右白線が破線であるか否かを判定する。左白線が実線かつ右白線が破線である場合はステップS460へ進み、左白線が実線でない場合、または右白線が破線でない場合はステップS470へ進む。
ステップS450において、走行車線推定装置2は、直近のステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が破線かつ右白線が実線であるか否かを判定する。左白線が破線かつ右白線が実線である場合はステップS460へ進み、左白線が破線でない場合、または右白線が実線でない場合はステップS470へ進む。
ステップS460において、走行車線推定装置2は、片側3車線のうちの第2レーン、すなわち車両100が分岐路境界地点を通過する前に走行していた中央の走行車線を、分岐路境界地点通過後の走行車線に設定する。ステップS460を実行したら図5および6のフローチャートを終了し、図3のステップS170へ進む。
ステップS470において、走行車線推定装置2は、分岐路境界地点通過後の車両100の走行車線が不明であると設定する。ステップS470を実行したら図5および6のフローチャートを終了し、図3のステップS170へ進む。
以上説明したように、3車線用判定処理では、ステップS310、S360またはS410において、分岐路境界地点を車両100が通過する前に推定した走行車線に対応する分岐道路が1車線であるか否かを判定する。その結果、当該分岐道路が1車線であると判定した場合は、ステップS320、S370またはS430で左白線および右白線の種別がいずれも実線であると判定されたときに、ステップS340、S390またはS460の処理が実行され、第1レーン、第2レーンまたは第3レーンが分岐路境界地点通過後の車両100の走行車線として設定される。
一方、当該分岐道路が1車線でないと判定した場合は、分岐路境界地点を車両100が通過する前に推定した走行車線が第1レーンであれば、ステップS330で左白線の種別が実線かつ右白線の種別が破線であると判定されたときに、ステップS340の処理が実行され、第1レーンが分岐路境界地点通過後の車両100の走行車線として設定される。一方、分岐路境界地点を車両100が通過する前に推定した走行車線が第3レーンであれば、ステップS380で左白線の種別が破線かつ右白線の種別が実線であると判定されたときに、ステップS390の処理が実行され、第3レーンが分岐路境界地点通過後の車両100の走行車線として設定される。
また、分岐路境界地点を車両100が通過する前に推定した走行車線が第2レーンであれば、ステップS420において、分岐後の第2レーンの位置が左端と右端のいずれであるかを判定する。その結果、左端であると判定した場合は、ステップS440で左白線の種別が実線かつ右白線の種別が破線であると判定されたときに、ステップS460の処理が実行され、第2レーンが分岐路境界地点通過後の車両100の走行車線として設定される。一方、右端であると判定した場合は、ステップS450で左白線の種別が破線かつ右白線の種別が実線であると判定されたときに、ステップS460の処理が実行され、第2レーンが分岐路境界地点通過後の車両100の走行車線として設定される。
上記のような3車線用判定処理により、分岐路境界地点通過前に推定された走行車線と同じ走行車線を、分岐路境界地点通過後の走行車線として推定することができる。
次に、図3のステップS160で実行される多車線用判定処理について説明する。図7および8は、多車線用判定処理のフローチャートである。
ステップS500において、走行車線推定装置2は、分岐路境界地点を通過する前の車両100の走行車線が左端レーン、右端レーンまたは中間レーンのいずれであったかを判定する。この判定は、図4のステップS200や図5のステップS300と同様に、図3のステップS50で車両100が分岐路境界地点を通過したと判定される前の時点において、最後にどの車線が走行車線として設定されたかを判断することにより行うことができる。最後にステップS90が実行されて左端レーンが走行車線に設定された場合は、分岐路境界地点を通過する前の車両100の走行車線が左端レーンであったと判定してステップS510へ進む。一方、最後にステップS100が実行されて右端レーンが走行車線に設定された場合は、分岐路境界地点を通過する前の車両100の走行車線が右端レーンであったと判定してステップS560へ進む。また、最後にステップS110が実行されて中間レーンが走行車線に設定された場合は、分岐路境界地点を通過する前の車両100の走行車線が中間レーンであったと判定して図6のステップS610へ進む。
なお、最後にステップS120が実行されて走行車線が不明であると設定された場合は、分岐路境界地点通過後の走行車線が不明であると判断し、図7および8の多車線用判定処理を中断することが好ましい。
ステップS510において、走行車線推定装置2は、ステップS20で取得したバイファケーション情報に基づいて、片側4車線以上のうちの第1レーン、すなわち左端レーンに対応する分岐道路が1車線であるか否かを判定する。第1レーンのバイファケーション情報が示す進行方向と、その隣にある第2レーンのバイファケーション情報が示す進行方向とが互いに異なる場合は、第1レーンに対応する分岐道路が1車線であると判定してステップS520へ進み、そうでない場合はステップS530へ進む。
ステップS520において、走行車線推定装置2は、直近のステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が実線かつ右白線が実線であるか否かを判定する。左白線が実線かつ右白線が実線である場合はステップS540へ進み、左白線が実線でない場合、または右白線が実線でない場合はステップS550へ進む。
ステップS530において、走行車線推定装置2は、直近のステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が実線かつ右白線が破線であるか否かを判定する。左白線が実線かつ右白線が破線である場合はステップS540へ進み、左白線が実線でない場合、または右白線が破線でない場合はステップS550へ進む。
ステップS540において、走行車線推定装置2は、片側4車線以上のうちの第1レーン、すなわち車両100が分岐路境界地点を通過する前に走行していた左端レーンを、分岐路境界地点通過後の走行車線に設定する。ステップS540を実行したら図7および8のフローチャートを終了し、図3のステップS170へ進む。
ステップS550において、走行車線推定装置2は、分岐路境界地点通過後の車両100の走行車線が不明であると設定する。ステップS550を実行したら図7および8のフローチャートを終了し、図3のステップS170へ進む。
ステップS560において、走行車線推定装置2は、ステップS20で取得したバイファケーション情報に基づいて、車両100が現在走行している道路の片側車線数をN(N≧4)としたときの第Nレーン、すなわち右端レーンに対応する分岐道路が1車線であるか否かを判定する。第Nレーンのバイファケーション情報が示す進行方向と、その隣にある第(N−1)レーンのバイファケーション情報が示す進行方向とが互いに異なる場合は、第Nレーンに対応する分岐道路が1車線であると判定してステップS570へ進み、そうでない場合はステップS580へ進む。
ステップS570において、走行車線推定装置2は、直近のステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が実線かつ右白線が実線であるか否かを判定する。左白線が実線かつ右白線が実線である場合はステップS590へ進み、左白線が実線でない場合、または右白線が実線でない場合はステップS600へ進む。
ステップS580において、走行車線推定装置2は、直近のステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が破線かつ右白線が実線であるか否かを判定する。左白線が破線かつ右白線が実線である場合はステップS590へ進み、左白線が破線でない場合、または右白線が実線でない場合はステップS600へ進む。
ステップS590において、走行車線推定装置2は、片側N車線のうちの第Nレーン、すなわち車両100が分岐路境界地点を通過する前に走行していた右端レーンを、分岐路境界地点通過後の走行車線に設定する。ステップS590を実行したら図7および8のフローチャートを終了し、図3のステップS170へ進む。
ステップS600において、走行車線推定装置2は、分岐路境界地点通過後の車両100の走行車線が不明であると設定する。ステップS600を実行したら図7および8のフローチャートを終了し、図3のステップS170へ進む。
図8のステップS610において、走行車線推定装置2は、ステップS20で取得したバイファケーション情報に基づいて、車両100が現在走行中の道路が分岐後の走行車線を判定不能な分岐形状であるか否かを判定する。ここでは、車両100が分岐路境界地点通過後に左端レーンと右端レーン以外の車線を走行しているときに、その走行車線がどの分岐道路に対応するかを左右の白線の種別からは判別できないような場合に該当するか否かを判断する。たとえば、片側6車線の道路が左右に3車線ずつ分岐している場合、左側の分岐道路において中央に位置する第2レーンと、右側の分岐道路において中央に位置する第5レーンとでは、両方とも左右の白線が破線である。そのため、左右の白線の種別が破線であるときには、車両100がどちらの車線を走行しているか判断することができない。したがって、車両100が現在走行中の道路がこのような道路に該当する場合は、判定不能な分岐形状であるとステップS610において判定し、ステップS720へ進む。一方、車両100が現在走行中の道路がこのような道路に該当しない場合は、判定不能な分岐形状ではないとステップS610において判定し、ステップS620へ進む。なお、車両100が現在走行中の道路が左右2つに分岐する場合、そのいずれか少なくとも一方が片側2車線以下であれば、分岐路境界地点通過後の走行車線を左右の白線の種別に基づいて判別可能である。
ステップS620において、走行車線推定装置2は、変数kに対して2を設定する。この変数kは、以下に説明するステップS630〜S720の処理において、左端レーンと右端レーンの間にある各車線について、画像認識装置3による左白線および右白線の種別の識別結果が当該車線のものと一致するか否かをそれぞれ判定するために用いられる。
ステップS630において、走行車線推定装置2は、ステップS20で取得したバイファケーション情報と、現在の変数kの値とに基づいて、片側N車線のうちの第kレーンに対応する分岐道路が1車線であるか否かを判定する。第kレーンのバイファケーション情報が示す進行方向が、その左右両隣にある第(k−1)レーンおよび第(k+1)レーンのバイファケーション情報が示す進行方向のいずれとも異なる場合は、第kレーンに対応する分岐道路が1車線であると判定してステップS650へ進み、そうでない場合はステップS640へ進む。
ステップS640において、走行車線推定装置2は、ステップS20で取得したバイファケーション情報に基づいて、分岐後の第kレーンの位置が左端、右端または中間のいずれであるかを判定する。第kレーンのバイファケーション情報が示す進行方向と、その左隣にある第(k−1)レーンのバイファケーション情報が示す進行方向とが異なる場合は、分岐後の第kレーンの位置が左端であると判定してステップS670へ進む。一方、第kレーンのバイファケーション情報が示す進行方向と、その右隣にある第(k+1)レーンのバイファケーション情報が示す進行方向とが異なる場合は、分岐後の第kレーンの位置が右端であると判定してステップS680へ進む。また、第kレーンのバイファケーション情報が示す進行方向と、その左右両隣にある第(k−1)レーンおよび第(k+1)レーンのバイファケーション情報が示す進行方向とがいずれも一致する場合は、分岐後の第kレーンの位置が左端でも右端でもなく、その中間にあるものと判定してステップS660へ進む。
ステップS650において、走行車線推定装置2は、直近のステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が実線かつ右白線が実線であるか否かを判定する。左白線が実線かつ右白線が実線である場合はステップS690へ進み、左白線が実線でない場合、または右白線が実線でない場合はステップS700へ進む。
ステップS660において、走行車線推定装置2は、直近のステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が破線かつ右白線が破線であるか否かを判定する。左白線が破線かつ右白線が破線である場合はステップS690へ進み、左白線が破線でない場合、または右白線が破線でない場合はステップS700へ進む。
ステップS670において、走行車線推定装置2は、直近のステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が実線かつ右白線が破線であるか否かを判定する。左白線が実線かつ右白線が破線である場合はステップS690へ進み、左白線が実線でない場合、または右白線が破線でない場合はステップS700へ進む。
ステップS680において、走行車線推定装置2は、直近のステップS40で画像認識装置3により行われた左右の白線種別の識別結果に基づいて、左白線が破線かつ右白線が実線であるか否かを判定する。左白線が破線かつ右白線が実線である場合はステップS690へ進み、左白線が破線でない場合、または右白線が実線でない場合はステップS700へ進む。
ステップS690において、走行車線推定装置2は、片側N車線のうち、その時点における変数kの値に応じた第kレーンを分岐路境界地点通過後の走行車線に設定する。ステップS690を実行したら図7および8のフローチャートを終了し、図3のステップS170へ進む。
ステップS700において、走行車線推定装置2は、変数kの値が片側車線数Nから1を減じた値である(N−1)に達したか否かを判定する。変数kの値が(N−1)未満であればステップS710へ進み、(N−1)に達したらステップS720へ進む。
ステップS710において、走行車線推定装置2は、変数kの値に1を加える。ステップS710を実行したらステップS630へ戻り、前述したような処理を繰り返す。これにより、第2レーンから第(N−1)レーンの各車線について、ステップS650〜S680の各判定条件のうち当該車線に対応する判定条件が満たされるまで、これらの判定を繰り返し行う。
ステップS720において、走行車線推定装置2は、分岐路境界地点通過後の車両100の走行車線が不明であると設定する。ステップS720を実行したら図7および8のフローチャートを終了し、図3のステップS170へ進む。
以上説明したように、多車線用判定処理では、分岐路境界地点を車両100が通過する前に推定した走行車線が第1レーンと第Nレーンのいずれでもない場合は、ステップS650〜S680において、第1レーンおよび第Nレーンを除いた各走行車線について、左白線および右白線の種別が分岐後の当該走行車線の位置に応じた白線の種別と一致するか否かをそれぞれ判定する。すなわち、分岐後の当該走行車線の位置が左端である場合は、ステップS670で左白線の種別が実線かつ右白線の種別が破線であると判定されたときに、ステップS690の処理が実行され、当該走行車線が分岐路境界地点通過後の車両100の走行車線として設定される。一方、分岐後の当該走行車線の位置が右端である場合は、ステップS680で左白線の種別が破線かつ右白線の種別が実線であると判定されたときに、ステップS690の処理が実行され、当該走行車線が分岐路境界地点通過後の車両100の走行車線として設定される。
また、分岐後の当該走行車線の位置が左端または右端のいずれでもない場合は、ステップS660で左白線の種別が破線かつ右白線の種別が破線であると判定されたときに、ステップS690の処理が実行され、当該走行車線が分岐路境界地点通過後の車両100の走行車線として設定される。さらに、分岐後の当該走行車線に対応する分岐道路が1車線である場合は、ステップS650で左白線の種別が実線かつ右白線の種別が実線であると判定されたときに、ステップS690の処理が実行され、当該走行車線が分岐路境界地点通過後の車両100の走行車線として設定される。
分岐路境界地点を車両100が通過する前に推定した走行車線が第1レーンである場合は、第1レーンに対応する分岐道路が1車線であれば、ステップS520で左白線の種別が実線かつ右白線の種別が実線であると判定されたときに、ステップS540の処理が実行され、第1レーンが分岐路境界地点通過後の車両100の走行車線として設定される。一方、第1レーンに対応する分岐道路が1車線でなければ、ステップS530で左白線の種別が実線かつ右白線の種別が破線であると判定されたときに、ステップS540の処理が実行され、第1レーンが分岐路境界地点通過後の車両100の走行車線として設定される。
また、分岐路境界地点を車両100が通過する前に推定した走行車線が第Nレーンである場合は、第Nレーンに対応する分岐道路が1車線であれば、ステップS570で左白線の種別が実線かつ右白線の種別が実線であると判定されたときに、ステップS590の処理が実行され、第Nレーンが分岐路境界地点通過後の車両100の走行車線として設定される。一方、第Nレーンに対応する分岐道路が1車線でなければ、ステップS580で左白線の種別が破線かつ右白線の種別が実線であると判定されたときに、ステップS590の処理が実行され、第Nレーンが分岐路境界地点通過後の車両100の走行車線として設定される。
上記のような多車線用判定処理により、分岐路境界地点通過前に推定された走行車線と同じ走行車線を、分岐路境界地点通過後の走行車線として推定することができる。さらに、分岐路境界地点通過前の走行車線が第1レーンと第Nレーンのいずれでもなく、その走行車線の推定結果を確定できない場合にも、分岐路境界地点通過後に走行車線の推定結果を確定することができる。
続いて、以上説明したようなフローチャートに従って実行される本実施形態の車載システムの処理について、様々な具体例に適用した場合をそれぞれ説明する。
図9は、片側2車線道路が分岐する様子の一例を示す図である。図9では、車線21と車線22が左右にそれぞれ分岐している。これらの分岐方向に対応する進行方向21a、22aは、当該分岐点のノード情報に含まれるバイファケーション情報によって表されている。車線21と車線22の間にある白線は、分岐路境界地点23において破線から実線に変化している。
車両100が車線21を走行していた場合、分岐路境界地点23を通過する前では、図3のステップS60が肯定判定されることにより、ステップS90において左端レーン、すなわち車線21が走行車線に設定される。その後、車両100が分岐路境界地点23を通過すると、図4のステップS200において分岐路境界地点23を通過する前の走行車線が左端レーンであると判定された後、ステップS210が肯定判定されることにより、ステップS230において第1レーン、すなわち車線21が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
一方、車両100が車線22を走行していた場合、分岐路境界地点23を通過する前では、図3のステップS70が肯定判定されることにより、ステップS100において右端レーン、すなわち車線22が走行車線に設定される。その後、車両100が分岐路境界地点23を通過すると、図4のステップS200において分岐路境界地点23を通過する前の走行車線が右端レーンであると判定された後、ステップS220が肯定判定されることにより、ステップS250において第2レーン、すなわち車線22が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
図10は、片側3車線道路が分岐する様子の一例を示す図である。図10では、車線31が左に分岐し、車線32および33が右に分岐している。これらの分岐方向に対応する進行方向31a、32aおよび33aは、当該分岐点のノード情報に含まれるバイファケーション情報によって表されている。車線31と車線32の間にある白線は、分岐路境界地点34において破線から実線に変化している。
車両100が車線31を走行していた場合、分岐路境界地点34を通過する前では、図3のステップS60が肯定判定されることにより、ステップS90において左端レーン、すなわち車線31が走行車線に設定される。その後、車両100が分岐路境界地点34を通過すると、図5のステップS300において分岐路境界地点34を通過する前の走行車線が左端レーンであると判定された後、ステップS310およびS320が肯定判定されることにより、ステップS340において第1レーン、すなわち車線31が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
一方、車両100が車線32を走行していた場合、分岐路境界地点34を通過する前では、図3のステップS80が肯定判定されることにより、ステップS110において中間レーン、すなわち車線32が走行車線に設定される。その後、車両100が分岐路境界地点34を通過すると、図5のステップS300において分岐路境界地点34を通過する前の走行車線が中間レーンであると判定された後、図6のステップS410が否定判定される。そして、ステップS420において分岐後の第2レーン、すなわち車線32の位置が左端であると判定され、ステップS440が肯定判定されることにより、ステップS460において第2レーンである車線32が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
また、車両100が車線33を走行していた場合、分岐路境界地点34を通過する前では、図3のステップS70が肯定判定されることにより、ステップS100において右端レーン、すなわち車線33が走行車線に設定される。その後、車両100が分岐路境界地点34を通過すると、図5のステップS300において分岐路境界地点34を通過する前の走行車線が右端レーンであると判定された後、ステップS360が否定判定され、ステップS380が肯定判定されることにより、ステップS390において第3レーン、すなわち車線33が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
図11は、片側3車線道路が分岐する様子の他の一例を示す図である。図11では、車線41および42が左に分岐し、車線43が右に分岐している。これらの分岐方向に対応する進行方向41a、42aおよび43aは、当該分岐点のノード情報に含まれるバイファケーション情報によって表されている。車線42と車線43の間にある白線は、分岐路境界地点44において破線から実線に変化している。
車両100が車線41を走行していた場合、分岐路境界地点44を通過する前では、図3のステップS60が肯定判定されることにより、ステップS90において左端レーン、すなわち車線41が走行車線に設定される。その後、車両100が分岐路境界地点44を通過すると、図5のステップS300において分岐路境界地点44を通過する前の走行車線が左端レーンであると判定された後、ステップS310が否定判定され、ステップS330が肯定判定されることにより、ステップS340において第1レーン、すなわち車線41が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
一方、車両100が車線42を走行していた場合、分岐路境界地点44を通過する前では、図3のステップS80が肯定判定されることにより、ステップS110において中間レーン、すなわち車線42が走行車線に設定される。その後、車両100が分岐路境界地点44を通過すると、図5のステップS300において分岐路境界地点44を通過する前の走行車線が中間レーンであると判定された後、図6のステップS410が否定判定される。そして、ステップS420において分岐後の第2レーン、すなわち車線42の位置が右端であると判定され、ステップS450が肯定判定されることにより、ステップS460において第2レーンである車線42が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
また、車両100が車線43を走行していた場合、分岐路境界地点44を通過する前では、図3のステップS70が肯定判定されることにより、ステップS100において右端レーン、すなわち車線43が走行車線に設定される。その後、車両100が分岐路境界地点44を通過すると、図5のステップS300において分岐路境界地点44を通過する前の走行車線が右端レーンであると判定された後、ステップS360およびS370が肯定判定されることにより、ステップS390において第3レーン、すなわち車線43が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
図12は、片側4車線道路が分岐する様子の一例を示す図である。図12では、車線51および52が左に分岐し、車線53および54が右に分岐している。これらの分岐方向に対応する進行方向51a、52a、53aおよび54aは、当該分岐点のノード情報に含まれるバイファケーション情報によって表されている。車線52と車線53の間にある白線は、分岐路境界地点55において破線から実線に変化している。
車両100が車線51を走行していた場合、分岐路境界地点55を通過する前では、図3のステップS60が肯定判定されることにより、ステップS90において左端レーン、すなわち車線51が走行車線に設定される。その後、車両100が分岐路境界地点55を通過すると、図7のステップS500において分岐路境界地点55を通過する前の走行車線が左端レーンであると判定された後、ステップS510が否定判定され、ステップS530が肯定判定されることにより、ステップS540において第1レーン、すなわち車線51が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
一方、車両100が車線52を走行していた場合、分岐路境界地点55を通過する前では、図3のステップS80が肯定判定されることにより、ステップS110において中間レーン、すなわち車線52または車線53のいずれかが走行車線であると仮設定される。その後、車両100が分岐路境界地点55を通過すると、図7のステップS500において分岐路境界地点55を通過する前の走行車線が中間レーンであると判定された後、図8のステップS620でk=2が設定されてステップS630が否定判定される。そして、ステップS640において分岐後の第2レーン、すなわち車線52の位置が右端であると判定され、ステップS680が肯定判定されることにより、ステップS690において第2レーンである車線52が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
他方、車両100が車線53を走行していた場合、分岐路境界地点55を通過する前では、図3のステップS80が肯定判定されることにより、ステップS110において中間レーン、すなわち車線52または車線53のいずれかが走行車線であると仮設定される。その後、車両100が分岐路境界地点55を通過すると、図7のステップS500において分岐路境界地点55を通過する前の走行車線が中間レーンであると判定された後、図8のステップS620でk=2が設定される。すると、ステップS630が否定判定され、ステップS640において分岐後の第2レーン、すなわち車線52の位置が右端であると判定された後、ステップS680が否定判定されることにより、ステップS710でk=3が設定されてステップS630へ戻る。続いて、ステップS630が否定判定され、ステップS640において分岐後の第3レーン、すなわち車線53の位置が左端であると判定された後、ステップS670が肯定判定されることにより、ステップS690において第3レーンである車線53が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
また、車両100が車線54を走行していた場合、分岐路境界地点55を通過する前では、図3のステップS70が肯定判定されることにより、ステップS100において右端レーン、すなわち車線54が走行車線に設定される。その後、車両100が分岐路境界地点55を通過すると、図7のステップS500において分岐路境界地点55を通過する前の走行車線が右端レーンであると判定された後、ステップS560が否定判定され、ステップS580が肯定判定されることにより、ステップS590において第4レーン、すなわち車線54が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
図13は、片側4車線道路が分岐する様子の他の一例を示す図である。図13では、車線61が左に分岐し、車線62、63および64が右に分岐している。これらの分岐方向に対応する進行方向61a、62a、63aおよび64aは、当該分岐点のノード情報に含まれるバイファケーション情報によって表されている。車線61と車線62の間にある白線は、分岐路境界地点65において破線から実線に変化している。
車両100が車線61を走行していた場合、分岐路境界地点65を通過する前では、図3のステップS60が肯定判定されることにより、ステップS90において左端レーン、すなわち車線61が走行車線に設定される。その後、車両100が分岐路境界地点65を通過すると、図7のステップS500において分岐路境界地点65を通過する前の走行車線が左端レーンであると判定された後、ステップS510およびS520が肯定判定されることにより、ステップS540において第1レーン、すなわち車線61が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
一方、車両100が車線62を走行していた場合、分岐路境界地点65を通過する前では、図3のステップS80が肯定判定されることにより、ステップS110において中間レーン、すなわち車線62または車線63のいずれかが走行車線であると仮設定される。その後、車両100が分岐路境界地点65を通過すると、図7のステップS500において分岐路境界地点65を通過する前の走行車線が中間レーンであると判定された後、図8のステップS620でk=2が設定されてステップS630が否定判定される。そして、ステップS640において分岐後の第2レーン、すなわち車線62の位置が左端であると判定され、ステップS670が肯定判定されることにより、ステップS690において第2レーンである車線62が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
他方、車両100が車線63を走行していた場合、分岐路境界地点65を通過する前では、図3のステップS80が肯定判定されることにより、ステップS110において中間レーン、すなわち車線62または車線63のいずれかが走行車線であると仮設定される。その後、車両100が分岐路境界地点65を通過すると、図7のステップS500において分岐路境界地点65を通過する前の走行車線が中間レーンであると判定された後、図8のステップS620でk=2が設定される。すると、ステップS630が否定判定され、ステップS640において分岐後の第2レーン、すなわち車線62の位置が左端であると判定された後、ステップS670が否定判定されることにより、ステップS710でk=3が設定されてステップS630へ戻る。続いて、ステップS630が否定判定され、ステップS640において分岐後の第3レーン、すなわち車線63の位置が中間であると判定された後、ステップS660が肯定判定されることにより、ステップS690において第3レーンである車線63が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
また、車両100が車線64を走行していた場合、分岐路境界地点65を通過する前では、図3のステップS70が肯定判定されることにより、ステップS100において右端レーン、すなわち車線64が走行車線に設定される。その後、車両100が分岐路境界地点65を通過すると、図7のステップS500において分岐路境界地点65を通過する前の走行車線が右端レーンであると判定された後、ステップS560が否定判定され、ステップS580が肯定判定されることにより、ステップS590において第4レーン、すなわち車線64が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
図14は、片側4車線道路が分岐する様子の別の一例を示す図である。図14では、車線71、72および73が左に分岐し、車線74が右に分岐している。これらの分岐方向に対応する進行方向71a、72a、73aおよび74aは、当該分岐点のノード情報に含まれるバイファケーション情報によって表されている。車線73と車線74の間にある白線は、分岐路境界地点75において破線から実線に変化している。
車両100が車線71を走行していた場合、分岐路境界地点75を通過する前では、図3のステップS60が肯定判定されることにより、ステップS90において左端レーン、すなわち車線71が走行車線に設定される。その後、車両100が分岐路境界地点75を通過すると、図7のステップS500において分岐路境界地点75を通過する前の走行車線が左端レーンであると判定された後、ステップS510が否定判定され、ステップS530が肯定判定されることにより、ステップS540において第1レーン、すなわち車線71が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
一方、車両100が車線72を走行していた場合、分岐路境界地点75を通過する前では、図3のステップS80が肯定判定されることにより、ステップS110において中間レーン、すなわち車線72または車線73のいずれかが走行車線であると仮設定される。その後、車両100が分岐路境界地点75を通過すると、図7のステップS500において分岐路境界地点75を通過する前の走行車線が中間レーンであると判定された後、図8のステップS620でk=2が設定されてステップS630が否定判定される。そして、ステップS640において分岐後の第2レーン、すなわち車線72の位置が中間であると判定され、ステップS660が肯定判定されることにより、ステップS690において第2レーンである車線72が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
他方、車両100が車線73を走行していた場合、分岐路境界地点75を通過する前では、図3のステップS80が肯定判定されることにより、ステップS110において中間レーン、すなわち車線72または車線73のいずれかが走行車線であると仮設定される。その後、車両100が分岐路境界地点75を通過すると、図7のステップS500において分岐路境界地点75を通過する前の走行車線が中間レーンであると判定された後、図8のステップS620でk=2が設定される。すると、ステップS630が否定判定され、ステップS640において分岐後の第2レーン、すなわち車線72の位置が中間であると判定された後、ステップS660が否定判定されることにより、ステップS710でk=3が設定されてステップS630へ戻る。続いて、ステップS630が否定判定され、ステップS640において分岐後の第3レーン、すなわち車線73の位置が右端であると判定された後、ステップS680が肯定判定されることにより、ステップS690において第3レーンである車線73が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
また、車両100が車線74を走行していた場合、分岐路境界地点75を通過する前では、図3のステップS70が肯定判定されることにより、ステップS100において右端レーン、すなわち車線74が走行車線に設定される。その後、車両100が分岐路境界地点75を通過すると、図7のステップS500において分岐路境界地点75を通過する前の走行車線が右端レーンであると判定された後、ステップS560およびS570が肯定判定されることにより、ステップS590において第4レーン、すなわち車線74が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
図15は、片側4車線道路が分岐する様子のさらに別の一例を示す図である。図15では、車線81および84が右に分岐し、車線82および83が左に分岐している。これらの分岐方向に対応する進行方向81a、82a、83aおよび84aは、当該分岐点のノード情報に含まれるバイファケーション情報によって表されている。車線81と車線82の間にある白線および車線83と車線84の間にある白線は、分岐路境界地点85において破線から実線にそれぞれ変化している。
車両100が車線81を走行していた場合、分岐路境界地点85を通過する前では、図3のステップS60が肯定判定されることにより、ステップS90において左端レーン、すなわち車線81が走行車線に設定される。その後、車両100が分岐路境界地点85を通過すると、図7のステップS500において分岐路境界地点85を通過する前の走行車線が左端レーンであると判定された後、ステップS510およびS520が肯定判定されることにより、ステップS540において第1レーン、すなわち車線81が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
一方、車両100が車線82を走行していた場合、分岐路境界地点85を通過する前では、図3のステップS80が肯定判定されることにより、ステップS110において中間レーン、すなわち車線82または車線83のいずれかが走行車線であると仮設定される。その後、車両100が分岐路境界地点85を通過すると、図7のステップS500において分岐路境界地点85を通過する前の走行車線が中間レーンであると判定された後、図8のステップS620でk=2が設定されてステップS630が否定判定される。そして、ステップS640において分岐後の第2レーン、すなわち車線82の位置が左端であると判定され、ステップS670が肯定判定されることにより、ステップS690において第2レーンである車線82が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
他方、車両100が車線83を走行していた場合、分岐路境界地点85を通過する前では、図3のステップS80が肯定判定されることにより、ステップS110において中間レーン、すなわち車線82または車線83のいずれかが走行車線であると仮設定される。その後、車両100が分岐路境界地点85を通過すると、図7のステップS500において分岐路境界地点85を通過する前の走行車線が中間レーンであると判定された後、図8のステップS620でk=2が設定される。すると、ステップS630が否定判定され、ステップS640において分岐後の第2レーン、すなわち車線82の位置が左端であると判定された後、ステップS670が否定判定されることにより、ステップS710でk=3が設定されてステップS630へ戻る。続いて、ステップS630が否定判定され、ステップS640において分岐後の第3レーン、すなわち車線83の位置が右端であると判定された後、ステップS680が肯定判定されることにより、ステップS690において第3レーンである車線83が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
また、車両100が車線84を走行していた場合、分岐路境界地点85を通過する前では、図3のステップS70が肯定判定されることにより、ステップS100において右端レーン、すなわち車線84が走行車線に設定される。その後、車両100が分岐路境界地点85を通過すると、図7のステップS500において分岐路境界地点85を通過する前の走行車線が右端レーンであると判定された後、ステップS560およびS570が肯定判定されることにより、ステップS590において第4レーン、すなわち車線84が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
図16は、片側5車線道路が分岐する様子の一例を示す図である。図16では、車線91および92が左に分岐し、車線93、94および95が右に分岐している。これらの分岐方向に対応する進行方向91a、92a、93a、94aおよび95aは、当該分岐点のノード情報に含まれるバイファケーション情報によって表されている。車線92と車線93の間にある白線は、分岐路境界地点96において破線から実線に変化している。
車両100が車線91を走行していた場合、分岐路境界地点96を通過する前では、図3のステップS60が肯定判定されることにより、ステップS90において左端レーン、すなわち車線91が走行車線に設定される。その後、車両100が分岐路境界地点96を通過すると、図7のステップS500において分岐路境界地点96を通過する前の走行車線が左端レーンであると判定された後、ステップS510が否定判定され、ステップS520が肯定判定されることにより、ステップS540において第1レーン、すなわち車線91が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
一方、車両100が車線92を走行していた場合、分岐路境界地点96を通過する前では、図3のステップS80が肯定判定されることにより、ステップS110において中間レーン、すなわち車線92、93または94のいずれかが走行車線であると仮設定される。その後、車両100が分岐路境界地点96を通過すると、図7のステップS500において分岐路境界地点96を通過する前の走行車線が中間レーンであると判定された後、図8のステップS620でk=2が設定されてステップS630が否定判定される。そして、ステップS640において分岐後の第2レーン、すなわち車線92の位置が右端であると判定され、ステップS680が肯定判定されることにより、ステップS690において第2レーンである車線92が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
他方、車両100が車線93を走行していた場合、分岐路境界地点96を通過する前では、図3のステップS80が肯定判定されることにより、ステップS110において中間レーン、すなわち車線92、93または94のいずれかが走行車線であると仮設定される。その後、車両100が分岐路境界地点96を通過すると、図7のステップS500において分岐路境界地点96を通過する前の走行車線が中間レーンであると判定された後、図8のステップS620でk=2が設定される。すると、ステップS630が否定判定され、ステップS640において分岐後の第2レーン、すなわち車線92の位置が右端であると判定された後、ステップS680が否定判定されることにより、ステップS710でk=3が設定されてステップS630へ戻る。続いて、ステップS630が否定判定され、ステップS640において分岐後の第3レーン、すなわち車線93の位置が左端であると判定された後、ステップS670が肯定判定されることにより、ステップS690において第3レーンである車線93が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
また、車両100が車線94を走行していた場合、分岐路境界地点96を通過する前では、図3のステップS80が肯定判定されることにより、ステップS110において中間レーン、すなわち車線92、93または94のいずれかが走行車線であると仮設定される。その後、車両100が分岐路境界地点96を通過すると、図7のステップS500において分岐路境界地点96を通過する前の走行車線が中間レーンであると判定された後、図8のステップS620でk=2が設定される。すると、ステップS630が否定判定され、ステップS640において分岐後の第2レーン、すなわち車線92の位置が右端であると判定された後、ステップS680が否定判定されることにより、ステップS710でk=3が設定されてステップS630へ戻る。続いて、ステップS630が否定判定され、ステップS640において分岐後の第3レーン、すなわち車線93の位置が左端であると判定された後、ステップS670が否定判定されることにより、ステップS710でk=4が設定されてステップS630へ戻る。その後、ステップS630が否定判定され、ステップS640において分岐後の第4レーン、すなわち車線94の位置が中間であると判定された後、ステップS660が肯定判定されることにより、ステップS690において第4レーンである車線94が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
車両100が車線95を走行していた場合、分岐路境界地点96を通過する前では、図3のステップS70が肯定判定されることにより、ステップS100において右端レーン、すなわち車線95が走行車線に設定される。その後、車両100が分岐路境界地点96を通過すると、図7のステップS500において分岐路境界地点96を通過する前の走行車線が右端レーンであると判定された後、ステップS560が否定判定され、ステップS580が肯定判定されることにより、ステップS590において第5レーン、すなわち車線95が走行車線に設定される。このようにして、車両100の走行車線を正しく推定することができる。
以上説明した実施の形態によれば、次のような作用効果を奏する。
(1)本実施形態の車載システムは、車両100の後方の路面の撮影画像をカメラ4から取得し(ステップS30)、その撮影画像に基づいて、車両100が走行している車線の左右に存在する左白線および右白線の種別を画像認識装置3によりそれぞれ認識する(ステップS40)。こうして認識された左白線および右白線の種別に基づいて、車両100が走行している道路上の走行車線を走行車線推定装置2により推定し(ステップS50〜S160)、車両100の前方に分岐点がある場合に、推定された走行車線に基づいて、分岐後に車両100が走行する道路を推定する(ステップS170)。このとき走行車線推定装置2は、左白線および右白線の種別と、分岐点よりも手前に位置する分岐路境界地点を車両100が通過する前にステップS60〜S120で推定した走行車線とに基づいて、ステップS130〜S160の処理により、分岐路境界地点を車両100が通過した後の走行車線を推定する。このようにしたので、分岐点よりも手前に位置する分岐路境界地点を車両100が通過したときに、その走行車線を直ちにかつ確実に推定することができる。したがって、分岐後に車両100が走行する道路を適切なタイミングで推定することができる。
(2)走行車線推定装置2は、分岐点に関する情報として、車両100が走行している道路の走行車線数および各走行車線の分岐後の進行方向に関する情報を取得する(ステップS20)。この情報と、左白線および右白線の種別と、分岐路境界地点を車両100が通過する前にステップS60〜S120で推定した走行車線とに基づいて、分岐路境界地点を車両が通過した後の走行車線をステップS130〜S160で推定する。このようにしたので、分岐路境界地点を車両100が通過した後の走行車線を正しく推定することができる。
(3)走行車線推定装置2は、ステップS20で取得した情報に基づいて、車両100が現在走行している道路の片側車線数を判定し(ステップS130)、その走行車線数に応じた処理をステップS140、S150またはS160において行うことにより、分岐路境界地点を車両が通過した後の走行車線を推定する。このようにして、走行車線数に応じて最適な処理を行うようにしたので、分岐路境界地点を車両100が通過した後の走行車線を正しく推定することができる。
なお、以上説明した実施の形態では、カメラ4が車両100の後方の路面を撮影するようにしたが、車両100の前方の路面を撮影してもよい。車両100が走行している車線の左白線および右白線を撮影できる限り、カメラ4の撮影範囲をどのように設定しても構わない。
また、上記実施の形態では、ナビゲーション装置1、走行車線推定装置2、画像認識装置3およびカメラ4によって構成される車載システムにより本発明を実現した例を説明したが、本発明を実現するための構成はこれに限定されるものではない。たとえば、走行車線推定装置2や画像認識装置3を省略し、これらの処理をナビゲーション装置1が行うようにしてもよい。車両に搭載されている装置であれば、どのような形態のもので本発明を実現してもよい。
上記実施の形態では、ステップS170で得られた分岐後の走行道路の推定結果をナビゲーション装置1へ出力し、これをナビゲーション装置1が行う車両100の案内において利用する例を説明したが、他の目的に利用してもよい。たとえば、走行道路の形状等に応じて車両100の減速制御や制動制御を行う際などに、この推定結果を利用することができる。
以上説明した実施の形態や各種の変形例はあくまで一例であり、発明の特徴が損なわれない限り、本発明はこれらの内容に限定されるものではない。