道路白線検出方法、道路白線検出プログラムおよび道路白線検出装置
【課題】道路白線を精度良く検出することの可能な道路白線検出方法を提供する。
【解決手段】時刻tiにおける観測値m(j)と、推定値Xd(j)および誤差共分散Cxd(j)の時刻tiにおける初期値と、時刻tiにおけるカルマンゲインKd(j)とを求める(ステップS107,S108,S109)。次に、観測値m(j)と、カルマンゲインKd(j)とに基づいて、時刻tiにおける推定値Xd(j)を更新すると共に(ステップS110)、カルマンゲインKd(j)に基づいて、時刻tiにおける誤差共分散Cxd(j)を更新する(ステップS111)。次に、更新した推定値Xd(j)および誤差共分散Cxd(j)を用いて上記のステップS109〜S111を複数回、繰り返し実行し、時刻tiにおける道路白線の位置座標としての推定値Xd(j)を導出する(ステップS112)。
【解決手段】時刻tiにおける観測値m(j)と、推定値Xd(j)および誤差共分散Cxd(j)の時刻tiにおける初期値と、時刻tiにおけるカルマンゲインKd(j)とを求める(ステップS107,S108,S109)。次に、観測値m(j)と、カルマンゲインKd(j)とに基づいて、時刻tiにおける推定値Xd(j)を更新すると共に(ステップS110)、カルマンゲインKd(j)に基づいて、時刻tiにおける誤差共分散Cxd(j)を更新する(ステップS111)。次に、更新した推定値Xd(j)および誤差共分散Cxd(j)を用いて上記のステップS109〜S111を複数回、繰り返し実行し、時刻tiにおける道路白線の位置座標としての推定値Xd(j)を導出する(ステップS112)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、道路白線を検出する道路白線検出方法、道路白線検出プログラムおよび道路白線検出装置に関する。
【背景技術】
【0002】
現代社会において自動車は、人間にとって最も身近で欠くことのできない交通手段の一つである。その自動車の運転を支援するものとしてカーナビゲーションシステムが普及しており、現在その販売台数は年間400万台にも上っている。しかし、その普及に伴い、ドライバが走行中にナビゲーション画面を注視し過ぎ、脇見運転をしたことに起因する交通事故が年々増加している。そこで、ナビゲーション画面を注視し過ぎるのを防止するために、ナビゲーション画面の見易さを改善する取り組みがなされている。その取り組みの一つとして、例えば、車載カメラで撮影した実写映像を用いてナビゲーションを行う直接視覚ナビゲーションシステム(VICNAS)の開発が盛んに行われている。このVICNASが実用化されることによって、ドライバがナビゲーション画面をひと目ちらっと見るだけで、直感的に現実世界との対応付けを行うことができるので、カーナビゲーションの使用に起因する交通事故を低減することができるものと多くの人が期待している。
【0003】
このVICNASの構築には、自車両の正確な位置をリアルタイムに把握し、実写映像上へ仮想物体を正しい位置に投影することが必要となる。しかし、現在のカーナビゲーションシステムで使用されているGPSでは、GPS衛星から1秒周期でしかGPSデータが出力されないので、例えば、3軸ジャイロセンサや、車速センサなどを用いて、GPSデータの出力されていない期間における自車両の正確な位置および方位角を求めてやることが望ましい(非特許文献1参照)。
【0004】
【非特許文献1】Z.Hu, K.Uchimura, ”Fusion of Vision, GPS and 3D Gyro Data in solving Camera Registration Problem for Direct Visual Navigation”, International Journal of ITS, vol.4, No.1, December 2006
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、3軸ジャイロセンサや車速センサなどを用いて自車両の位置および方位角を求めた場合であっても、それらのデータには依然として大きな誤差が含まれている。そのため、実写映像上の正しい位置に仮想物体を配置することができる程度にまで、これらの誤差を小さくする新たな方策を導入することが求められている。
【0006】
現在、この問題を解決する有力な方策の一つとして、道路白線の検知により自車両の位置および方位角を推定する方策が注目されている。従来の検知方法では、実写映像の輝度値を利用して道路白線を検出していたので、処理が非常に単純で高速である。しかし、道路画像上に路面表示や横断歩道といった白線以外のエッジが多く存在する様な状況では安定した白線認識が難しく、精度面に関して問題があった。また、他の車両が道路白線を遮蔽したり、悪天候によって輝度値が変化した場合にも、道路白線をうまく検知することができないことがあるという問題があった。
【0007】
本発明はかかる問題点に鑑みてなされたもので、その目的は、道路白線を精度良く検出することの可能な道路白線検出方法、道路白線検出プログラムおよび道路白線検出装置を提供することにある。
【課題を解決するための手段】
【0008】
本発明による道路白線検出方法は、以下の(A1)〜(A8)の各ステップを含むものである。
(A1)センサ出力データから得られた移動体の位置および方位角に基づいて移動体近傍のノード、道路リンク、補間点および道路リンクの道路属性についてのデータを地図データから抽出するステップ
(A2)地図データから抽出された道路リンクを、道路属性に基づいて直線段、円弧段およびこれらと繋がった緩和曲線段に分けたのち、複数の区間に分割し、分割した区間ごとに道路水平曲率を求めるステップ
(A3)実写画像データに対して所定の画像処理を行うことにより得られたエッジ画像データからエッジ線分を抽出したのち、抽出したエッジ線分を複数の区間に分割し、分割した区間ごとにエッジ水平曲率を求めるステップ
(A4)道路水平曲率とエッジ水平曲率とを対比して、エッジ画像データにおいて道路白線に対応するエッジ線分を探索する範囲を決定するステップ
(A5)探索範囲内において、所定の検索条件に基づいてエッジ線分を選択し、選択したエッジ線分に対応した座標を観測値として取得するステップ
(A6)道路水平曲率から得られる線分をエッジ画像データに投影したときに得られる仮想道路白線に対応した座標を推定値の初期値として取得すると共に、車線幅、道路白線からのオフセット幅、偏向角および俯角のそれぞれの標準誤差を用いて得られたものを誤差共分散の初期値として取得し、さらに推定値を用いてカルマンゲインを算出するステップ
(A7)観測値とカルマンゲインとに基づいて推定値を更新すると共に、カルマンゲインに基づいて誤差共分散を更新するステップ
(A8)更新した推定値を用いてカルマンゲインを更新したのち、観測値と更新したカルマンゲインとに基づいて推定値を更に更新すると共に、更新したカルマンゲインに基づいて誤差共分散を更に更新するステップ
【0009】
本発明による道路白線検出プログラムは、以下の(B1)〜(B8)の各ステップをコンピュータに実行させるものである。
(B1)センサ出力データから得られた移動体の位置および方位角に基づいて移動体近傍のノード、道路リンク、補間点および道路リンクの道路属性についてのデータを地図データから抽出するステップ
(B2)地図データから抽出された道路リンクを、道路属性に基づいて直線段、円弧段およびこれらと繋がった緩和曲線段に分けたのち、複数の区間に分割し、分割した区間ごとに道路水平曲率を求めるステップ
(B3)実写画像データに対して所定の画像処理を行うことにより得られたエッジ画像データからエッジ線分を抽出したのち、抽出したエッジ線分を複数の区間に分割し、分割した区間ごとにエッジ水平曲率を求めるステップ
(B4)道路水平曲率とエッジ水平曲率とを対比して、エッジ画像データにおいて道路白線に対応するエッジ線分を探索する範囲を決定するステップ
(B5)探索範囲内において、所定の検索条件に基づいてエッジ線分を選択し、選択したエッジ線分に対応した座標を観測値として取得するステップ
(B6)道路水平曲率から得られる線分をエッジ画像データに投影したときに得られる仮想道路白線に対応した座標を推定値の初期値として取得すると共に、車線幅、道路白線からのオフセット幅、偏向角および俯角のそれぞれの標準誤差を用いて得られたものを誤差共分散の初期値として取得し、さらに推定値を用いてカルマンゲインを算出するステップ
(B7)観測値とカルマンゲインとに基づいて推定値を更新すると共に、カルマンゲインに基づいて誤差共分散を更新するステップ
(B8)更新した推定値を用いてカルマンゲインを更新したのち、観測値と更新したカルマンゲインとに基づいて推定値を更に更新すると共に、更新したカルマンゲインに基づいて誤差共分散を更に更新するステップ
【0010】
本発明による道路白線検出装置は、以下の(C1)〜(C8)の各構成を備えたものである。
(C1)センサ出力データから得られた移動体の位置および方位角に基づいて移動体近傍のノード、道路リンク、補間点および道路リンクの道路属性についてのデータを地図データから抽出する抽出手段
(C2)地図データから抽出された道路リンクを、道路属性に基づいて直線段、円弧段およびこれらと繋がった緩和曲線段に分けたのち、複数の区間に分割し、分割した区間ごとに道路水平曲率を求める道路水平曲率導出手段
(C3)実写画像データに対して所定の画像処理を行うことにより得られたエッジ画像データからエッジ線分を抽出したのち、抽出したエッジ線分を複数の区間に分割し、分割した区間ごとにエッジ水平曲率を求めるエッジ水平曲率導出手段
(C4)道路水平曲率とエッジ水平曲率とを対比して、エッジ画像データにおいて道路白線に対応するエッジ線分を探索する範囲を決定する探索範囲決定手段
(C5)探索範囲内において、所定の検索条件に基づいてエッジ線分を選択し、選択したエッジ線分に対応した座標を観測値として取得する観測値取得手段
(C6)道路水平曲率から得られる線分をエッジ画像データに投影したときに得られる仮想道路白線に対応した座標を推定値の初期値として取得すると共に、車線幅、道路白線からのオフセット幅、偏向角および俯角のそれぞれの標準誤差を用いて得られたものを誤差共分散の初期値として取得し、さらに推定値を用いてカルマンゲインを算出する初期値取得手段
(C7)観測値とカルマンゲインとに基づいて推定値を更新すると共に、カルマンゲインに基づいて誤差共分散を更新する第1更新手段
(C8)更新した推定値を用いてカルマンゲインを更新したのち、観測値と更新したカルマンゲインとに基づいて推定値を更に更新すると共に、更新したカルマンゲインに基づいて誤差共分散を更に更新する第2更新手段
【0011】
本発明による道路白線検出方法、道路白線検出プログラムおよび道路白線検出装置では、地図データから抽出された道路リンクが、道路属性に基づいて直線段、円弧段およびこれらと繋がった緩和曲線段に分けられたのち、複数の区間に分割され、分割された区間ごとに道路水平曲率が求められる。これにより、地図データから道路水平曲率を簡単に抽出することができる。また、推定されたエッジ水平曲率を道路水平曲率と対応付けることができるので、現在位置の推定に使うことができる。
【発明の効果】
【0012】
本発明による道路白線検出方法、道路白線検出プログラムおよび道路白線検出装置によれば、地図データから道路水平曲率を簡単に抽出することができると共に、推定されたエッジ水平曲率を道路水平曲率と対応付けることができるようにしたので、道路白線を精度良く検出することができる。
【発明を実施するための最良の形態】
【0013】
以下、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【0014】
図1は、本発明の一実施の形態に係るナビゲーション装置1の概要構成を表したものである。なお、本発明の一実施の形態に係る白線検出方法は、このナビゲーション装置1の動作によって具現化されるものであるから、以下、それらを併せて説明する。
【0015】
このナビゲーション装置1は、運転者の運転する移動体(例えば自動車)に搭載されたものであり、例えば、センサ入力部10と、地図管理部20と、中央処理部30と、映像表示部40とを、その主要部として備えている。
【0016】
センサ入力部10は、CCD(固体撮像素子)カメラ101(車載カメラ)と、GPSセンサ102と、ジャイロセンサ103(慣性センサ)と、車速センサ104とを備えている。
【0017】
CCDカメラ101は、例えば運転者がフロントガラス越しに見る視線とほぼ同様のカメラアングルで車両前方の景観を撮影(撮像)することができるように、移動体に固定されている。このCCDカメラ101は、例えば固定焦点距離の単眼方式のものであり、道路を含んだ前方の景観を例えば1/30秒ごとに撮像して、撮像により得られた実写画像データを中央処理部30に転送するようになっている。
【0018】
GPSセンサ102は、例えば、地球上の現在位置を調べるための衛星測位システム(GPS)において、宇宙空間に打ち上げられた多数のGPS衛星から地表に向けて送信されてくる電波を受信するレシーバであり、受信した電波に含まれる各種データ(GPSデータ)を中央処理部30に転送するようになっている。なお、中央処理部30は、GPSデータから、移動体の位置(緯度および経度)と、移動体の方位角とを算出することができる。
【0019】
GPS衛星からは、例えば1秒ごとにGPSデータを含む電波が出力されているが、その電波は、地表に到達するまでの間に電離層などの影響を受けて、1秒から2秒の不確定性を持ってレシーバに到達する。ここで、廉価な商用GPSでは、位置(緯度および経度)の精度がおよそ20メートル、方位角の精度がおよそ10度となっている。
【0020】
なお、GPS衛星から送信されてくる電波を受信する代わりに、DGPS(Differential GPS)において、基準局から送信されてくる中波やFM放送などの地上波を受信するようにしてもよい。このDGPSとは、位置の分かっている基準局でGPSによる測量を行い、実際の位置とGPSで算出された位置とのずれを中波やFM放送などの地上波で送信することにより、GPS衛星からの信号により計測した結果を補正することの可能なシステムであり、GPSよりも精度よく測位することが可能である。
【0021】
ジャイロセンサ103は、例えば、コリオリ力による振動を電気的に検出する3次元振動ジャイロからなり、検出した振動データを中央処理部30に転送するようになっている。なお、中央処理部30は、得られた振動データから、例えば1/60秒ごとに移動体の角速度を算出することが可能である。
【0022】
車速センサ104は、例えば、車速の大きさに応じたパルス信号を出力するパルスセンサであり、出力されたパルス信号を中央処理部30に転送するようになっている。なお、中央処理部30は、得られたパルス信号から、例えば1/50秒ごとに移動体の車速を算出することが可能である。
【0023】
地図管理部20は、所定の地理的領域の地図データが記録された記録媒体201と、この記録媒体201から地図データを読み出すドライバ202とを有している。この地図管理部20は、中央処理部30からの読み出し命令に従って、地図データ(例えば、所定の地域に含まれる道路に関するデータや、その道路に付随するデータなど)を記録媒体201から読み出して、中央処理部30に転送するようになっている。
【0024】
ここで、道路に関するデータには、例えば、ノードと呼ばれる交差点、分岐点、補間点(変曲点)および補曲点などの位置(緯度、経度、海抜)や、ノード間を繋ぐ道路リンクの道路属性が含まれている。道路属性とは、等級(国道、県道、農道などにそれぞれ割り当てられている数値)、車線数、車線幅、最高速度などのことを指す。また、道路に付随するデータには、例えば、ランドマーク、鉄道の駅、病院およびガソリンスタンドなどの位置、形状、大きさおよびアイコンなどが含まれている。
【0025】
中央処理部30は、例えば、測位処理モジュール301と、白線検知モジュール302と、画像処理モジュール303とをその主要部として有している。
【0026】
測位処理モジュール301は、センサ入力部10から入力された各種データおよびパルス信号から、移動体の位置、方位角、角速度および車速を算出し、算出した移動体の位置、方位角、角速度および車速と、地図管理部20から読み出された道路に関するデータとに基づいて、移動体の位置および方位角を特定する演算を行うデバイスである。なお、移動体の位置および方位角の特定方法については後に詳述する。
【0027】
白線検知モジュール302は、測位処理モジュール301で特定された移動体の位置および方位角と、CCDカメラ101から得られた実写画像データと、地図管理部20から読み出された道路に関するデータとに基づいて、実写画像データに含まれる道路白線を検知する演算や、測位処理モジュール301で特定された移動体の位置および方位角を修正する演算を行うデバイスである。なお、道路白線の検知方法については後に詳述する。
【0028】
画像処理モジュール303は、白線検知モジュール302で修正された移動体の位置および方位角などに基づいて、実写画像データ上に、道路に付随するデータをアイコンで表現したものや、道路白線を重ね合わせた合成画像データを生成する演算を行うデバイスである。
【0029】
映像表示部40は、例えば液晶表示装置からなり、画像処理モジュール302によって生成された画像データを画面に表示するようになっている。
【0030】
次に、移動体の位置および方位角の特定方法について説明する。
【0031】
図2(1),(2),(3)は、各センサからデータが出力されるタイミングを模式的に表したものである。図2(1),(2),(3)に示したように、GPSデータは周期TgでGPSセンサ102から出力され、ジャイロデータは周期Twでジャイロセンサ103から出力され、車速データは周期Tvで車速センサ104から出力され、実写画像データは周期TmでCCDカメラ101から出力される。ここで、ジャイロデータの周期Twおよび車速データの周期Tvは、GPSデータの周期Tgよりも短い。そのため、測位処理モジュール301は、GPSデータがこない間は、ジャイロデータおよび車速データを用いて移動体の位置および方位角を推定する。また、各センサおよびカメラからデータが出力されるタイミングは、一般に互いに同期していない。そこで、測位処理モジュール301は、各センサからの出力タイミングが互いに同期していない場合には、例えば、ジャイロセンサ103、車速センサ104またはCCDカメラ101の出力タイミングの時刻に合わせて、移動体の位置および方位角を推定する。なお、本実施の形態では、CCDカメラ101の出力タイミングの時刻に合わせて、移動体の位置および方位角を推定するものとする。
【0032】
図3は、移動体の位置および方位角が時々刻々と変化する様子を模式的に表したものである。なお、図3には、図2(1)〜(4)の時刻t0,t1,t2における移動体の変位を高さ方向から眺めた様子が例示されている。測位処理モジュール301は、時刻t0における移動体の位置(xg(t0),yg(t0))および方位角(orig(t0))を、GPSデータから直接得ることができる。他方、時刻t1における移動体の位置(xg(t1),yg(t1))および方位角(orig(t1))を、GPSデータから直接得ることができない。そこで、測位処理モジュール301は、車速データから得られた移動体の車速v(t0)にΔt(=時刻t1−時刻t0)を乗算することにより移動距離Δd(t0)を求めると共に、ジャイロデータから得られた移動体の角速度w(t0)にΔtを乗算することにより方位角の変位量Δori(t0)を求めたのち、移動距離Δd(t0)を(orig(t0)+Δori(t0))(=orig(t1))を用いてx成分とy成分とに分解することにより、時刻t1における移動体の位置(xg(t1),yg(t1))および方位角(orig(t1))を推定する。これらを一般化したものを以下の数1〜3に示す。
【0033】
【数1】
【数2】
【数3】
【0034】
このように、測位処理モジュール301において、GPSデータから直接得られた時刻t0における移動体の位置(xg(t0),yg(t0))および方位角(orig(t0))を始点として、時刻tiにおける移動体の位置((xg(ti),yg(ti))および方位角(orig(ti))を、ジャイロデータおよび車速データを利用して推定する。
【0035】
なお、さらに、GPSデータ、ジャイロデータおよび車速データを利用して得られた時刻tiにおける移動体の位置((xg(ti),yg(ti))および方位角(orig(ti))に対してマップマッチング処理を行うことにより、道路上の移動体の位置および方位角を求めるようにしてもよい。
【0036】
マップマッチング処理は、例えば、生成された道路形状モデルと、移動体の種々の情報とを対比し、その対比の結果に基づいて、移動体が実際に存在する可能性の最も高い道路上に移動体が存在するように移動体の位置を強制的に移動させる処理である。上記の道路形状モデルは、例えば、移動体の位置および方位角をベースに、移動体位置の前方の道路に関するデータを検索し、検索により得られた道路に関するデータに基づいて、道路の水平形状を表す数学モデルであるクロソイド(clothoid)曲線モデルのパラメータを推定することにより生成することが可能である。
【0037】
次に、道路白線の検知方法について説明する。
【0038】
図4,5は、道路白線を検知する手順を表したものである。図6(A)は、道路白線検知用の道路線形モデルを模式的に表したものであり、図6(B)は、図6(A)の道路線形モデルの道路水平曲率Chmを表したものである。図7はエッジ画像データを、図8は図7のエッジ画像データにおける道路白線の探索範囲Sを、図9は図7のエッジ画像データから抽出された中央線分W1,W2および観測値m(j)を、図10は地図データから得られた仮想道路白線E1,E2、推定値Xd(j)および誤差共分散Cxd(j)(C11,C12,C21,C22)をそれぞれ模式的に表したものである。
【0039】
まず、白線検知モジュール302は、測位処理モジュール301で特定された時刻tiにおける移動体の位置および方位角に基づいて、移動体近傍のノードN、道路リンクL、補間点(変曲点)Pおよび補曲点Q(図6参照)の位置データおよび道路リンクLの属性を地図データから抽出し、それらのデータに基づいて時刻tiにおける移動体前方(CCDカメラ101の視野範囲)の道路水平曲率Chmを推定する(ステップS101)。
【0040】
具体的には、まず、地図データから抽出された道路リンクL(L1,L2)を、道路属性および道路構造令に基づいて直線段LA、円弧段LBおよび緩和曲線段LCに分ける。なお、緩和曲線段LCは、直線段LAと円弧段LBとを滑らかに繋げるクロソイド曲線で近似されたものである。次に、直線段LA、円弧段LBおよび緩和曲線段LCの道路水平曲率Chmをそれぞれ求める。このとき、道路水平曲率Chmを、直線段LAにおいて0(ゼロ)とし、円弧段LBにおいて1/ri(riは、曲率半径)とし、緩和曲線段LCにおいては線形的に変化するものとする。次に、道路リンクL(L1,L2)を細かな区間に分割し、区間ごとに道路水平曲率Chmを求める。つまり、各道路リンクL(L1,L2)には、離散化した複数の道路水平曲率Chmが与えられる。このようにして、各道路リンクL(L1,L2)の道路水平曲率Chmを求めたのち、測位処理モジュール301で特定された時刻tiにおける移動体の位置を基準として、測位処理モジュール301で特定された時刻tiにおける移動体の方位角の方向の視野範囲内の道路水平曲率Chmを抽出する。このとき、視野範囲内を、移動体の方位角の方向において等間隔で複数に(例えば40に)区分し、区分したエリアごとに道路水平曲率Chmを割り振る。従って、視野範囲内のエリアごとに割り振られた道路水平曲率Chmx(x=1,2,…,n)の集合として道路水平曲率Chmを抽出する。
【0041】
次に、時刻tiにおける実写画像データからR成分を抽出することによりR画像データを生成したのち(ステップS102)、R画像データに対して、左エッジおよび右エッジを抽出するフィルタを掛け、2値化処理を行うことによりエッジ画像データを生成する(ステップS103)。なお、R画像データを実写画像データ全体から生成する必要はなく、実写画像データにおける道路の最遠部(フェードアウトする部分)を含む下方の領域、つまり、実写画像データにおいて道路の存在可能な領域だけから生成すれば充分である。また、他の方法を用いてエッジ画像データを生成することも可能である。
【0042】
次に、Hough変換および逆変換を行うことにより、エッジ画像データから左エッジ線分WL1,WL2および右エッジ線分WR1,WR2を検出する(ステップS104、図7参照)。なお、図7には、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2のいずれもが連続した線分となっているが、仮に実写画像データ内に道路白線を遮蔽する物体(他の移動体や、標識など)が存在する場合や、悪天候などにより実写画像データ内の道路白線のエッジが不鮮明となっている場合には、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2において、遮蔽物体で遮蔽されている部分や、エッジの不鮮明な部分に対応する箇所に欠けが生じることになる。また、実写画像データ上に路面表示や横断歩道といった白線以外のエッジが多く存在する場合には、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2の他にも多数のエッジ線分が検出されることとなる。
【0043】
次に、エッジ画像データを複数の仮想線分Lj(0≦j≦n)で複数のセクションSjに分割し、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2のセクションSjごとのエッジ水平曲率Chejを、CCDカメラ101の姿勢(偏向角ψ、俯角α)を考慮して推定する(ステップS105、図7参照)。つまり、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2に、離散化した複数のエッジ水平曲率Chejを与える。このとき、実空間において等間隔(例えば1m間隔)となるように、仮想線分Ljを、エッジ画像データ内において上に向かうにつれて狭い間隔で配置する。図7には、仮想線分Ljが10本配置されている場合が例示されているが、道路白線の探索し易さの観点からは、仮想線分Ljの本数をそれよりも多く(例えば40本)して、セクションSjの数を多くすることが好ましい。
【0044】
次に、セクションSjごとのエッジ水平曲率Chejと道路水平曲率Chmとを対比して、エッジ画像データにおいて道路白線に対応するエッジ線分を探索する範囲(探索範囲S)を決定する(ステップS106、図8参照)。例えば、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2と、道路水平曲率Chmから得られる道路との全体としての位置ずれがなるべく小さくなるように、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2を含む領域上に、道路水平曲率Chmから得られる道路を投影したときに、エッジ画像データに対して道路Rを投影し得る領域を探索範囲Sとする。
【0045】
次に、道路白線の探索範囲S内において、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2の中から道路白線に対応するエッジ線分(道路白線の候補)を所定の検索条件を用いて選択し、選択した左エッジ線分WL1と選択した右エッジ線分WR1との中央線分W1、および選択した左エッジ線分WL2と選択した右エッジ線分WR2との中央線分W2を求めたのち、各中央線分W1,W2と仮想線分Ljとの交点の座標m1j,m2jを時刻tiにおける観測値m(j)として求める(ステップS107、図9参照)。
【0046】
なお、実写画像データ上に路面表示や横断歩道といった白線以外のエッジが多く存在していたために、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2の他にも多数のエッジ線分が検出されていた場合には、上記検索条件が甘いと、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2以外の多くの線分も選択されることとなる。そのため、所望の線分だけうまく選択することができるような検索条件を設定することが好ましいが、検索条件をあまり厳しくし過ぎると、所望の線分までも選択対称から除外されてしまう可能性がある。従って、エッジ画像データに対して検索条件をかける前に、探索範囲Sを充分に小さくしておき、探索範囲S内に不要なエッジ線分が含まれないようにしておくことがより好ましい。もっとも、本実施の形態では、探索範囲Sはエッジ水平曲率Chejと道路水平曲率Chmとの対比によって設定されているので、エッジ画像データに占める探索範囲Sの割合は充分に小さくなっており、不要なエッジ線分がほとんど排除されている。
【0047】
次に、道路水平曲率Chmから得られる線分をCCDカメラ101の2次元座標面(例えばエッジ画像データ)に投影したときに得られる仮想道路白線E1,E2と、仮想線分Ljとの交点の座標u1j,u2jを推定値Xd(j)の時刻tiにおける初期値として与えると共に、車線幅L、左側道路白線からのオフセット幅X0、CCDカメラ101の偏向角ψ、CCDカメラ101の俯角αおよび道路垂直曲率Clのそれぞれの標準誤差Se(j)を用いて得られたものを誤差共分散Cxd(j)の時刻tiにおける初期値として与える(ステップS108、図10参照)。なお、推定値Xd(j)、座標u1j、座標u2jについては、以下の数(4)〜(6)で表され、誤差共分散Cxd(j)については、以下の数(7)で表される。また、誤差共分散Cxd(j)を求める際に、道路垂直曲率Clの影響は小さいことから、道路垂直曲率Clを省略することも可能である。
【0048】
【数4】
【数5】
【数6】
【数7】
【0049】
ここで、数4〜数6において、EvはCCDカメラ101のx方向の焦点距離を、EuはCCDカメラ101のy方向の焦点距離をそれぞれ指している。
【0050】
なお、数5,6に示した拡張カルマンフィルタの基本式は、以下のようにして求めることができる。図11に示したように、現在道路位置を(xo,zo)とし、現在位置から前方視認距離Nメートル以内の道路白線点の座標を(xi,zi)(i=0,1,2,…,N)とする。このとき、点(xi,zi)と、次の点(xi+1,zi+1)の間の距離が十分短い場合(例えば1m)には、この部分の道路各点の曲率をCiで近似できる。そのため、点(xi+1,zi+1)から点(xi,zi)までのずれdxi’、dzi’は、以下の数8で計算できる。
【0051】
【数8】
上記のずれを、(xo,zo)を原点とする座標系へ数9を用いて換算する。ここで、θiは、数10に示した式で表される。
【0052】
【数9】
【数10】
【0053】
これにより、現在位置から見えた視認距離内の各点座標を、以下の数11,12で求めることができ、それを2次元平面へ射影すれば、上記した数5,6 を得ることができる。
【数11】
【数12】
【0054】
次に、推定値Xd(j)を用いて時刻tiにおけるカルマンゲインKd(j)を算出する(ステップS109)。このようにして、時刻tiにおける観測値m(j)と、推定値Xd(j)および誤差共分散Cxd(j)の時刻tiにおける初期値と、時刻tiにおけるカルマンゲインKd(j)とを準備したのち、以下の数(13)〜(15)に示したように、観測値m(j)と、カルマンゲインKd(j)とに基づいて、時刻tiにおける推定値Xd(j)を更新すると共に(ステップS110)、カルマンゲインKd(j)に基づいて、時刻tiにおける誤差共分散Cxd(j)を更新する(ステップS111)。
【0055】
【数13】
【数14】
【数15】
【0056】
ここで、Hdは、x(j)=Hd(j)Xd(j)となる値である。x(j)は、推定値である。m(j)は観測値である。
【0057】
次に、更新した推定値Xd(j)および誤差共分散Cxd(j)を用いて上記のステップS109〜S111を複数回、繰り返し実行し、時刻tiにおける最適な推定値Xd(j)を取得する(ステップS112)。ここで、最適か否かについては、例えば、誤差共分散Cxd(j)の収束の有無を基準に判断する。このようにして、時刻tiにおける道路白線の位置座標としての推定値Xd(j)を求めることができる。
【0058】
なお、実写画像データ内に道路白線を遮蔽する物体が存在したり、悪天候などにより実写画像データ内の道路白線のエッジが不鮮明となっていたために、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2に欠けが生じていた場合には、その欠けに対応する領域において、最適な推定値Xd(j)を取得することができず、道路白線の検出を失敗してしまう。
【0059】
そこで、そのような場合に、移動体から見て左側と右側との両側に対となって存在する2つの道路白線のうち他方の道路白線を検出することができているときには、一つ前の時刻ti−1のフレームにおいて検出した道路白線間の距離を用いて、時刻tiのフレームにおける一方の道路白線の位置を推定する。また、対となる2つの道路白線の双方を検出することができなかったときには、対となる2つの道路白線の検出に成功したことのある過去のフレームのうち最新のフレームにおいて検出した道路白線の位置を、時刻tiのフレームにおける道路白線の位置として推定する。
【0060】
なお、最適な推定値Xd(j)および誤差共分散Cxd(j)を取得することができた座標数が少ない場合や、最適な推定値Xd(j)および誤差共分散Cxd(j)を取得することができたものの、取得した推定値Xd(j)が実際の道路白線からずれてしまっている割合が大きい場合には、検索条件を緩和して再度、道路白線を検出することが好ましい。
【0061】
以上のようにして、白線検知モジュール302において、時刻tiにおける道路白線の位置を検出することができるが、時刻ti+1における道路白線の位置を検出し、道路白線を追跡する際には、時刻tiにおける最適な推定値Xd(j)および誤差共分散Cxd(j)を時刻ti+1における初期値として上記ステップS109〜S112を実行すればよい(ステップS113)。
【0062】
ところで、本実施の形態では、上記のようにして求めた、時刻tiにおける道路白線の位置座標としての推定値Xd(j)を利用して、カメラパラメータX(j)を取得することができる。そこで、白線検知モジュール302において、数16に示したように、推定値Xd(j)を利用してカメラパラメータX(j)を求め、カメラパラメータX(j)から移動体の位置および方位角を推定し、測位処理モジュール301で特定された移動体の位置(特に道路幅方向の位置)および方位角を修正する。
【0063】
【数16】
【0064】
ここで、カメラパラメータX(j)とは、車線幅L、オフセット幅X0、偏向角ψ、俯角αおよび道路垂直曲率Clのことであり、数16に示したように、初期カメラパラメータX(0)に、推定値Xd(j)の初期データからの変化量を考慮することにより算出される。
【0065】
このとき、両側白線検出時には全てのパラメータを、片側白線検出時にはL,α以外のパラメータだけを更新するようにゲインKを調整し、両側の白線検知に失敗した時にはカメラパラメータの更新を行わない。
【0066】
白線検出から得られるパラメータは正常な白線検出時においても微小な揺れを生じ、また誤検出時においてはパラメータの大幅な変動を招く。このようなパラメータの変動は安定した自車両位置の推定が出来ないだけでなく、VICNASの表示アイコンのジャンプ化にも繋がる。そこで、道路走行時に変化量の少ないと考えられる車線幅L,俯角αのパラメータを安定制御するために近似メディアンフィルタ(AMF)法と確率密度関数(PDF)を適用する。これにより、高速かつロバストなパラメータの更新を行うことができる。
【0067】
ここで、AMF法とは、平均値を求める代わりに中央値を随時更新することで近似的にメディアンフィルタ(MF)を実現する手法である。現在の取得パラメータ観測値をx、前回までのフレームの中央値をmean、パラメータ更新の変化量をnとしたとき、AMFによる中央値の更新は、以下の数17に示したようにして行われる。
【0068】
【数17】
【0069】
AMFで大きなメモリを確保する必要がなく、他の手法に比べ処理効率が良い。しかも、過去数フレームの平均値を取る様な処理と同程度の安定化が期待できる。このAMFによって更新された中央値からの取得パラメータの誤差を、PDFを用いることで安定制御を行う。本実施の形態では、この確率密度関数にガウス分布を用いてパラメータの補正を行なう。
【0070】
【数18】
【数19】
【0071】
ここで、数18がパラメータの補正式であり、数19が確率密度関数である。xnewは、新たに更新されたデータを表す.xは白線検出から取得したパラメータ観測値であり、μは平均(ここでは中央値mean)であり、σは偏差である。これにより正しい検出結果におけるパラメータの安定化を図ると共に、誤検出時におけるパラメータの急激な変動を抑制することができる。
【0072】
さらに、本実施の形態では、上記のようにして求めた、時刻tiにおける道路白線の位置座標としての推定値Xd(j)を利用して、測位処理モジュール301で特定された移動体の位置(特に道路延在方向の位置)を修正することが可能である。
【0073】
具体的には、測位処理モジュール301で特定された移動体の位置を含む、道路延在方向(前後方向)の複数の位置に移動体がいるものとしたときに、道路水平曲率Chmから得られる線分を、それぞれの位置でCCDカメラ101の2次元座標面(例えばエッジ画像データ)に投影したときに得られる仮想道路白線E1,E2と、推定値Xd(j)から得られる線分を、測位処理モジュール301で特定された移動体の位置でCCDカメラ101の2次元座標面(例えばエッジ画像データ)に投影したときに得られる仮想道路白線との全体としての位置ずれが最も小さなときの、仮想道路白線E1,E2が投影された移動体の位置を求め、その位置を移動体の位置として、測位処理モジュール301で特定された移動体の位置と置き換える修正を行う。
【0074】
特に、仮想道路白線E1,E2の道路水平曲率Chmが、仮想道路白線E1,E2が投影された2次元座標面内にいずれかの場所において、0よりも十分に大きい場合には、移動体の位置を道路延在方向において高精度に修正することができる。
【0075】
次に、本実施の形態のナビゲーション装置1の動作について説明する。
【0076】
この移動体位置検出装置1では、測位処理モジュール301において、GPSデータから直接得られた時刻t0における移動体の位置(xg(t0),yg(t0))および方位角(orig(t0))を始点として、時刻tiにおける移動体の位置((xg(ti),yg(ti))および方位角(orig(ti))が、ジャイロデータおよび車速データを利用して推定される。また、必要に応じて、GPSデータ、ジャイロデータおよび車速データを利用して得られた時刻tiにおける移動体の位置((xg(ti),yg(ti))および方位角(orig(ti))に対してマップマッチング処理を行うことにより、道路上の移動体の位置および方位角を求める。
【0077】
次に、白線検知モジュール302において、まず、時刻tiにおける観測値m(j)と、推定値Xd(j)および誤差共分散Cxd(j)の時刻tiにおける初期値と、時刻tiにおけるカルマンゲインKd(j)とが求められる。その後、観測値m(j)と、カルマンゲインKd(j)とに基づいて、時刻tiにおける推定値Xd(j)が更新されると共に、カルマンゲインKd(j)に基づいて、時刻tiにおける誤差共分散Cxd(j)が更新され、その結果、時刻tiにおける道路白線の位置座標としての推定値Xd(j)が導出される。
【0078】
さらに、画像処理モジュール303において、まず、白線検知モジュール302で求められた、時刻tiにおける道路白線の位置座標としての推定値Xd(j)を利用して、カメラパラメータX(j)が導出され、カメラパラメータX(j)から移動体の位置および方位角が推定され、測位処理モジュール301で特定された移動体の位置および方位角が修正される。その後、修正した移動体の位置および方位角と、白線検知モジュール302で特定されたカメラパラメータと、CCDカメラ101から得られた実写画像データと、地図管理部20から読み出された道路に付随するデータとに基づいて、実写画像データ上に、道路に付随するデータをアイコンで表現したものを重ね合わせた合成画像データが生成される。そして、画像処理モジュール303において生成された合成画像データが、映像表示部40にて表示される。
【0079】
ところで、車載カメラによる自動運転や運転補助のために開発された従来の白線検知方法では、視野内にある白線線形が一本の曲線(つまり、1つの水平曲率)で近似されていた。そのため、白線線形において水平曲率が大きく変化する部分において誤差が大きくなるので、そのような場所では、現在位置が分かった場合であっても、前方道路地図の設計図面から道路白線検出用水平曲率の参考値を抽出することができない。また、鮮明な道路白線を検出した場合であっても、推定された道路水平曲率の値を地図の設計数値と対応付けることができないので、現在位置の推定に使うことができない。
【0080】
一方、本実施の形態では、道路属性および道路構造令に基づいて直線段LA、円弧段LBおよび緩和曲線段LCに分けられた道路リンクL(L1,L2)を細かな区間に分割し、分割した区間ごとに道路水平曲率Chmを求めているので、現在位置が分かれば、地図データから道路水平曲率Chmを簡単に抽出することができる。また、鮮明な道路白線を検出することができれば、推定された道路水平曲率(エッジ水平曲率Chej)を地図の設計数値(道路水平曲率Chm)と対応付けることができるので、現在位置の推定に使うことができる。
【0081】
また、本実施の形態では、道路水平曲率Chmとエッジ水平曲率Chejとを対比して、エッジ画像データにおいて道路白線を探索する範囲(探索範囲S)が決定されるので、エッジ画像データの全ての領域に対して道路白線を検索する必要がない。これにより、検知速度を高速化することができる。さらに、検索範囲Sを絞り込んだ結果、道路白線の候補を選択する条件を緩和することができるので、よりロバストな検知を実現することができる。
【0082】
また、本実施の形態では、拡張カルマンフィルタを用いて求めた推定値Xd(j)を利用して、カメラパラメータを取得している。このカメラパラメータには、上述したように、車線幅L、オフセット幅X0、偏向角ψおよび俯角αが少なくとも含まれていることから、これらのパラメータから、移動体の、道路幅方向の位置を精確に求めることができる。さらに、エッジ水平曲率Chejおよび道路水平曲率Chmから、移動体の、道路延在方向(進行方向)の位置を精確に求めることができる。
【0083】
また、本実施の形態では、白線検知モジュール302において修正された、時刻tiにおける道路白線の位置および方位角と、白線検知モジュール302で特定されたカメラパラメータと、CCDカメラ101から得られた実写画像データと、地図管理部20から読み出された道路に付随するデータとに基づいて、画像データ上に、道路に付随するデータをアイコンで表現したものや、道路白線を重ね合わせた画像データを生成することができる。これにより、他の車両が前方を遮っていたり、夜間や悪天候などによって前方が暗いときなど、前方の視認性が低い場合に、実写画像に道路白線を重ね合せることにより、ドライバに安心感を与えることができる。
【0084】
以上、実施の形態およびその変形例ならびに実施例を挙げて本発明を説明したが、本発明はこれに限定されるものではなく、種々の変形が可能である。
【0085】
例えば、上記実施の形態では、測位処理モジュール301、白線検知モジュール302および画像処理モジュール303はデバイス(ハードウェア)として記述されていたが、中央処理部30にロードされたプログラムであってもよい。また、記録媒体2に記録されている地図データについても、あらかじめ中央処理部30にロードされていてもよい。
【図面の簡単な説明】
【0086】
【図1】本発明の一実施の形態に係るナビゲーション装置の概要構成図である。
【図2】センサ入力部からの各入力の周期およびタイミングを表す関係図である。
【図3】移動体の変位の様子の一例を表す平面図である。
【図4】図1の白線検知モジュールについて説明するための流れ図である。
【図5】図4に続く流れ図である。
【図6】地図データを模式的に表した模式図である。
【図7】エッジ画像データを模式的に表した模式図である。
【図8】図7のエッジ画像データにおける道路白線の探索範囲を模式的に表した模式図である。
【図9】図7のエッジ画像データから抽出された中央線分および観測値を模式的に表した模式図である。
【図10】地図データから得られた仮想道路白線、推定値および誤差共分散を模式的に表した模式図である。
【図11】拡張カルマンフィルタの導出について説明するための模式図である。
【符号の説明】
【0087】
1…ナビゲーション装置、10…センサ入力部、20…地図管理部、30…中央処理部、40…映像表示部。101…CCDカメラ、102…GPSセンサ、103…ジャイロセンサ、104…車速センサ、201…記録媒体、202…ドライバ、301…測位処理モジュール、302…白線検知モジュール、303…画像処理モジュール。
【技術分野】
【0001】
本発明は、道路白線を検出する道路白線検出方法、道路白線検出プログラムおよび道路白線検出装置に関する。
【背景技術】
【0002】
現代社会において自動車は、人間にとって最も身近で欠くことのできない交通手段の一つである。その自動車の運転を支援するものとしてカーナビゲーションシステムが普及しており、現在その販売台数は年間400万台にも上っている。しかし、その普及に伴い、ドライバが走行中にナビゲーション画面を注視し過ぎ、脇見運転をしたことに起因する交通事故が年々増加している。そこで、ナビゲーション画面を注視し過ぎるのを防止するために、ナビゲーション画面の見易さを改善する取り組みがなされている。その取り組みの一つとして、例えば、車載カメラで撮影した実写映像を用いてナビゲーションを行う直接視覚ナビゲーションシステム(VICNAS)の開発が盛んに行われている。このVICNASが実用化されることによって、ドライバがナビゲーション画面をひと目ちらっと見るだけで、直感的に現実世界との対応付けを行うことができるので、カーナビゲーションの使用に起因する交通事故を低減することができるものと多くの人が期待している。
【0003】
このVICNASの構築には、自車両の正確な位置をリアルタイムに把握し、実写映像上へ仮想物体を正しい位置に投影することが必要となる。しかし、現在のカーナビゲーションシステムで使用されているGPSでは、GPS衛星から1秒周期でしかGPSデータが出力されないので、例えば、3軸ジャイロセンサや、車速センサなどを用いて、GPSデータの出力されていない期間における自車両の正確な位置および方位角を求めてやることが望ましい(非特許文献1参照)。
【0004】
【非特許文献1】Z.Hu, K.Uchimura, ”Fusion of Vision, GPS and 3D Gyro Data in solving Camera Registration Problem for Direct Visual Navigation”, International Journal of ITS, vol.4, No.1, December 2006
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、3軸ジャイロセンサや車速センサなどを用いて自車両の位置および方位角を求めた場合であっても、それらのデータには依然として大きな誤差が含まれている。そのため、実写映像上の正しい位置に仮想物体を配置することができる程度にまで、これらの誤差を小さくする新たな方策を導入することが求められている。
【0006】
現在、この問題を解決する有力な方策の一つとして、道路白線の検知により自車両の位置および方位角を推定する方策が注目されている。従来の検知方法では、実写映像の輝度値を利用して道路白線を検出していたので、処理が非常に単純で高速である。しかし、道路画像上に路面表示や横断歩道といった白線以外のエッジが多く存在する様な状況では安定した白線認識が難しく、精度面に関して問題があった。また、他の車両が道路白線を遮蔽したり、悪天候によって輝度値が変化した場合にも、道路白線をうまく検知することができないことがあるという問題があった。
【0007】
本発明はかかる問題点に鑑みてなされたもので、その目的は、道路白線を精度良く検出することの可能な道路白線検出方法、道路白線検出プログラムおよび道路白線検出装置を提供することにある。
【課題を解決するための手段】
【0008】
本発明による道路白線検出方法は、以下の(A1)〜(A8)の各ステップを含むものである。
(A1)センサ出力データから得られた移動体の位置および方位角に基づいて移動体近傍のノード、道路リンク、補間点および道路リンクの道路属性についてのデータを地図データから抽出するステップ
(A2)地図データから抽出された道路リンクを、道路属性に基づいて直線段、円弧段およびこれらと繋がった緩和曲線段に分けたのち、複数の区間に分割し、分割した区間ごとに道路水平曲率を求めるステップ
(A3)実写画像データに対して所定の画像処理を行うことにより得られたエッジ画像データからエッジ線分を抽出したのち、抽出したエッジ線分を複数の区間に分割し、分割した区間ごとにエッジ水平曲率を求めるステップ
(A4)道路水平曲率とエッジ水平曲率とを対比して、エッジ画像データにおいて道路白線に対応するエッジ線分を探索する範囲を決定するステップ
(A5)探索範囲内において、所定の検索条件に基づいてエッジ線分を選択し、選択したエッジ線分に対応した座標を観測値として取得するステップ
(A6)道路水平曲率から得られる線分をエッジ画像データに投影したときに得られる仮想道路白線に対応した座標を推定値の初期値として取得すると共に、車線幅、道路白線からのオフセット幅、偏向角および俯角のそれぞれの標準誤差を用いて得られたものを誤差共分散の初期値として取得し、さらに推定値を用いてカルマンゲインを算出するステップ
(A7)観測値とカルマンゲインとに基づいて推定値を更新すると共に、カルマンゲインに基づいて誤差共分散を更新するステップ
(A8)更新した推定値を用いてカルマンゲインを更新したのち、観測値と更新したカルマンゲインとに基づいて推定値を更に更新すると共に、更新したカルマンゲインに基づいて誤差共分散を更に更新するステップ
【0009】
本発明による道路白線検出プログラムは、以下の(B1)〜(B8)の各ステップをコンピュータに実行させるものである。
(B1)センサ出力データから得られた移動体の位置および方位角に基づいて移動体近傍のノード、道路リンク、補間点および道路リンクの道路属性についてのデータを地図データから抽出するステップ
(B2)地図データから抽出された道路リンクを、道路属性に基づいて直線段、円弧段およびこれらと繋がった緩和曲線段に分けたのち、複数の区間に分割し、分割した区間ごとに道路水平曲率を求めるステップ
(B3)実写画像データに対して所定の画像処理を行うことにより得られたエッジ画像データからエッジ線分を抽出したのち、抽出したエッジ線分を複数の区間に分割し、分割した区間ごとにエッジ水平曲率を求めるステップ
(B4)道路水平曲率とエッジ水平曲率とを対比して、エッジ画像データにおいて道路白線に対応するエッジ線分を探索する範囲を決定するステップ
(B5)探索範囲内において、所定の検索条件に基づいてエッジ線分を選択し、選択したエッジ線分に対応した座標を観測値として取得するステップ
(B6)道路水平曲率から得られる線分をエッジ画像データに投影したときに得られる仮想道路白線に対応した座標を推定値の初期値として取得すると共に、車線幅、道路白線からのオフセット幅、偏向角および俯角のそれぞれの標準誤差を用いて得られたものを誤差共分散の初期値として取得し、さらに推定値を用いてカルマンゲインを算出するステップ
(B7)観測値とカルマンゲインとに基づいて推定値を更新すると共に、カルマンゲインに基づいて誤差共分散を更新するステップ
(B8)更新した推定値を用いてカルマンゲインを更新したのち、観測値と更新したカルマンゲインとに基づいて推定値を更に更新すると共に、更新したカルマンゲインに基づいて誤差共分散を更に更新するステップ
【0010】
本発明による道路白線検出装置は、以下の(C1)〜(C8)の各構成を備えたものである。
(C1)センサ出力データから得られた移動体の位置および方位角に基づいて移動体近傍のノード、道路リンク、補間点および道路リンクの道路属性についてのデータを地図データから抽出する抽出手段
(C2)地図データから抽出された道路リンクを、道路属性に基づいて直線段、円弧段およびこれらと繋がった緩和曲線段に分けたのち、複数の区間に分割し、分割した区間ごとに道路水平曲率を求める道路水平曲率導出手段
(C3)実写画像データに対して所定の画像処理を行うことにより得られたエッジ画像データからエッジ線分を抽出したのち、抽出したエッジ線分を複数の区間に分割し、分割した区間ごとにエッジ水平曲率を求めるエッジ水平曲率導出手段
(C4)道路水平曲率とエッジ水平曲率とを対比して、エッジ画像データにおいて道路白線に対応するエッジ線分を探索する範囲を決定する探索範囲決定手段
(C5)探索範囲内において、所定の検索条件に基づいてエッジ線分を選択し、選択したエッジ線分に対応した座標を観測値として取得する観測値取得手段
(C6)道路水平曲率から得られる線分をエッジ画像データに投影したときに得られる仮想道路白線に対応した座標を推定値の初期値として取得すると共に、車線幅、道路白線からのオフセット幅、偏向角および俯角のそれぞれの標準誤差を用いて得られたものを誤差共分散の初期値として取得し、さらに推定値を用いてカルマンゲインを算出する初期値取得手段
(C7)観測値とカルマンゲインとに基づいて推定値を更新すると共に、カルマンゲインに基づいて誤差共分散を更新する第1更新手段
(C8)更新した推定値を用いてカルマンゲインを更新したのち、観測値と更新したカルマンゲインとに基づいて推定値を更に更新すると共に、更新したカルマンゲインに基づいて誤差共分散を更に更新する第2更新手段
【0011】
本発明による道路白線検出方法、道路白線検出プログラムおよび道路白線検出装置では、地図データから抽出された道路リンクが、道路属性に基づいて直線段、円弧段およびこれらと繋がった緩和曲線段に分けられたのち、複数の区間に分割され、分割された区間ごとに道路水平曲率が求められる。これにより、地図データから道路水平曲率を簡単に抽出することができる。また、推定されたエッジ水平曲率を道路水平曲率と対応付けることができるので、現在位置の推定に使うことができる。
【発明の効果】
【0012】
本発明による道路白線検出方法、道路白線検出プログラムおよび道路白線検出装置によれば、地図データから道路水平曲率を簡単に抽出することができると共に、推定されたエッジ水平曲率を道路水平曲率と対応付けることができるようにしたので、道路白線を精度良く検出することができる。
【発明を実施するための最良の形態】
【0013】
以下、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【0014】
図1は、本発明の一実施の形態に係るナビゲーション装置1の概要構成を表したものである。なお、本発明の一実施の形態に係る白線検出方法は、このナビゲーション装置1の動作によって具現化されるものであるから、以下、それらを併せて説明する。
【0015】
このナビゲーション装置1は、運転者の運転する移動体(例えば自動車)に搭載されたものであり、例えば、センサ入力部10と、地図管理部20と、中央処理部30と、映像表示部40とを、その主要部として備えている。
【0016】
センサ入力部10は、CCD(固体撮像素子)カメラ101(車載カメラ)と、GPSセンサ102と、ジャイロセンサ103(慣性センサ)と、車速センサ104とを備えている。
【0017】
CCDカメラ101は、例えば運転者がフロントガラス越しに見る視線とほぼ同様のカメラアングルで車両前方の景観を撮影(撮像)することができるように、移動体に固定されている。このCCDカメラ101は、例えば固定焦点距離の単眼方式のものであり、道路を含んだ前方の景観を例えば1/30秒ごとに撮像して、撮像により得られた実写画像データを中央処理部30に転送するようになっている。
【0018】
GPSセンサ102は、例えば、地球上の現在位置を調べるための衛星測位システム(GPS)において、宇宙空間に打ち上げられた多数のGPS衛星から地表に向けて送信されてくる電波を受信するレシーバであり、受信した電波に含まれる各種データ(GPSデータ)を中央処理部30に転送するようになっている。なお、中央処理部30は、GPSデータから、移動体の位置(緯度および経度)と、移動体の方位角とを算出することができる。
【0019】
GPS衛星からは、例えば1秒ごとにGPSデータを含む電波が出力されているが、その電波は、地表に到達するまでの間に電離層などの影響を受けて、1秒から2秒の不確定性を持ってレシーバに到達する。ここで、廉価な商用GPSでは、位置(緯度および経度)の精度がおよそ20メートル、方位角の精度がおよそ10度となっている。
【0020】
なお、GPS衛星から送信されてくる電波を受信する代わりに、DGPS(Differential GPS)において、基準局から送信されてくる中波やFM放送などの地上波を受信するようにしてもよい。このDGPSとは、位置の分かっている基準局でGPSによる測量を行い、実際の位置とGPSで算出された位置とのずれを中波やFM放送などの地上波で送信することにより、GPS衛星からの信号により計測した結果を補正することの可能なシステムであり、GPSよりも精度よく測位することが可能である。
【0021】
ジャイロセンサ103は、例えば、コリオリ力による振動を電気的に検出する3次元振動ジャイロからなり、検出した振動データを中央処理部30に転送するようになっている。なお、中央処理部30は、得られた振動データから、例えば1/60秒ごとに移動体の角速度を算出することが可能である。
【0022】
車速センサ104は、例えば、車速の大きさに応じたパルス信号を出力するパルスセンサであり、出力されたパルス信号を中央処理部30に転送するようになっている。なお、中央処理部30は、得られたパルス信号から、例えば1/50秒ごとに移動体の車速を算出することが可能である。
【0023】
地図管理部20は、所定の地理的領域の地図データが記録された記録媒体201と、この記録媒体201から地図データを読み出すドライバ202とを有している。この地図管理部20は、中央処理部30からの読み出し命令に従って、地図データ(例えば、所定の地域に含まれる道路に関するデータや、その道路に付随するデータなど)を記録媒体201から読み出して、中央処理部30に転送するようになっている。
【0024】
ここで、道路に関するデータには、例えば、ノードと呼ばれる交差点、分岐点、補間点(変曲点)および補曲点などの位置(緯度、経度、海抜)や、ノード間を繋ぐ道路リンクの道路属性が含まれている。道路属性とは、等級(国道、県道、農道などにそれぞれ割り当てられている数値)、車線数、車線幅、最高速度などのことを指す。また、道路に付随するデータには、例えば、ランドマーク、鉄道の駅、病院およびガソリンスタンドなどの位置、形状、大きさおよびアイコンなどが含まれている。
【0025】
中央処理部30は、例えば、測位処理モジュール301と、白線検知モジュール302と、画像処理モジュール303とをその主要部として有している。
【0026】
測位処理モジュール301は、センサ入力部10から入力された各種データおよびパルス信号から、移動体の位置、方位角、角速度および車速を算出し、算出した移動体の位置、方位角、角速度および車速と、地図管理部20から読み出された道路に関するデータとに基づいて、移動体の位置および方位角を特定する演算を行うデバイスである。なお、移動体の位置および方位角の特定方法については後に詳述する。
【0027】
白線検知モジュール302は、測位処理モジュール301で特定された移動体の位置および方位角と、CCDカメラ101から得られた実写画像データと、地図管理部20から読み出された道路に関するデータとに基づいて、実写画像データに含まれる道路白線を検知する演算や、測位処理モジュール301で特定された移動体の位置および方位角を修正する演算を行うデバイスである。なお、道路白線の検知方法については後に詳述する。
【0028】
画像処理モジュール303は、白線検知モジュール302で修正された移動体の位置および方位角などに基づいて、実写画像データ上に、道路に付随するデータをアイコンで表現したものや、道路白線を重ね合わせた合成画像データを生成する演算を行うデバイスである。
【0029】
映像表示部40は、例えば液晶表示装置からなり、画像処理モジュール302によって生成された画像データを画面に表示するようになっている。
【0030】
次に、移動体の位置および方位角の特定方法について説明する。
【0031】
図2(1),(2),(3)は、各センサからデータが出力されるタイミングを模式的に表したものである。図2(1),(2),(3)に示したように、GPSデータは周期TgでGPSセンサ102から出力され、ジャイロデータは周期Twでジャイロセンサ103から出力され、車速データは周期Tvで車速センサ104から出力され、実写画像データは周期TmでCCDカメラ101から出力される。ここで、ジャイロデータの周期Twおよび車速データの周期Tvは、GPSデータの周期Tgよりも短い。そのため、測位処理モジュール301は、GPSデータがこない間は、ジャイロデータおよび車速データを用いて移動体の位置および方位角を推定する。また、各センサおよびカメラからデータが出力されるタイミングは、一般に互いに同期していない。そこで、測位処理モジュール301は、各センサからの出力タイミングが互いに同期していない場合には、例えば、ジャイロセンサ103、車速センサ104またはCCDカメラ101の出力タイミングの時刻に合わせて、移動体の位置および方位角を推定する。なお、本実施の形態では、CCDカメラ101の出力タイミングの時刻に合わせて、移動体の位置および方位角を推定するものとする。
【0032】
図3は、移動体の位置および方位角が時々刻々と変化する様子を模式的に表したものである。なお、図3には、図2(1)〜(4)の時刻t0,t1,t2における移動体の変位を高さ方向から眺めた様子が例示されている。測位処理モジュール301は、時刻t0における移動体の位置(xg(t0),yg(t0))および方位角(orig(t0))を、GPSデータから直接得ることができる。他方、時刻t1における移動体の位置(xg(t1),yg(t1))および方位角(orig(t1))を、GPSデータから直接得ることができない。そこで、測位処理モジュール301は、車速データから得られた移動体の車速v(t0)にΔt(=時刻t1−時刻t0)を乗算することにより移動距離Δd(t0)を求めると共に、ジャイロデータから得られた移動体の角速度w(t0)にΔtを乗算することにより方位角の変位量Δori(t0)を求めたのち、移動距離Δd(t0)を(orig(t0)+Δori(t0))(=orig(t1))を用いてx成分とy成分とに分解することにより、時刻t1における移動体の位置(xg(t1),yg(t1))および方位角(orig(t1))を推定する。これらを一般化したものを以下の数1〜3に示す。
【0033】
【数1】
【数2】
【数3】
【0034】
このように、測位処理モジュール301において、GPSデータから直接得られた時刻t0における移動体の位置(xg(t0),yg(t0))および方位角(orig(t0))を始点として、時刻tiにおける移動体の位置((xg(ti),yg(ti))および方位角(orig(ti))を、ジャイロデータおよび車速データを利用して推定する。
【0035】
なお、さらに、GPSデータ、ジャイロデータおよび車速データを利用して得られた時刻tiにおける移動体の位置((xg(ti),yg(ti))および方位角(orig(ti))に対してマップマッチング処理を行うことにより、道路上の移動体の位置および方位角を求めるようにしてもよい。
【0036】
マップマッチング処理は、例えば、生成された道路形状モデルと、移動体の種々の情報とを対比し、その対比の結果に基づいて、移動体が実際に存在する可能性の最も高い道路上に移動体が存在するように移動体の位置を強制的に移動させる処理である。上記の道路形状モデルは、例えば、移動体の位置および方位角をベースに、移動体位置の前方の道路に関するデータを検索し、検索により得られた道路に関するデータに基づいて、道路の水平形状を表す数学モデルであるクロソイド(clothoid)曲線モデルのパラメータを推定することにより生成することが可能である。
【0037】
次に、道路白線の検知方法について説明する。
【0038】
図4,5は、道路白線を検知する手順を表したものである。図6(A)は、道路白線検知用の道路線形モデルを模式的に表したものであり、図6(B)は、図6(A)の道路線形モデルの道路水平曲率Chmを表したものである。図7はエッジ画像データを、図8は図7のエッジ画像データにおける道路白線の探索範囲Sを、図9は図7のエッジ画像データから抽出された中央線分W1,W2および観測値m(j)を、図10は地図データから得られた仮想道路白線E1,E2、推定値Xd(j)および誤差共分散Cxd(j)(C11,C12,C21,C22)をそれぞれ模式的に表したものである。
【0039】
まず、白線検知モジュール302は、測位処理モジュール301で特定された時刻tiにおける移動体の位置および方位角に基づいて、移動体近傍のノードN、道路リンクL、補間点(変曲点)Pおよび補曲点Q(図6参照)の位置データおよび道路リンクLの属性を地図データから抽出し、それらのデータに基づいて時刻tiにおける移動体前方(CCDカメラ101の視野範囲)の道路水平曲率Chmを推定する(ステップS101)。
【0040】
具体的には、まず、地図データから抽出された道路リンクL(L1,L2)を、道路属性および道路構造令に基づいて直線段LA、円弧段LBおよび緩和曲線段LCに分ける。なお、緩和曲線段LCは、直線段LAと円弧段LBとを滑らかに繋げるクロソイド曲線で近似されたものである。次に、直線段LA、円弧段LBおよび緩和曲線段LCの道路水平曲率Chmをそれぞれ求める。このとき、道路水平曲率Chmを、直線段LAにおいて0(ゼロ)とし、円弧段LBにおいて1/ri(riは、曲率半径)とし、緩和曲線段LCにおいては線形的に変化するものとする。次に、道路リンクL(L1,L2)を細かな区間に分割し、区間ごとに道路水平曲率Chmを求める。つまり、各道路リンクL(L1,L2)には、離散化した複数の道路水平曲率Chmが与えられる。このようにして、各道路リンクL(L1,L2)の道路水平曲率Chmを求めたのち、測位処理モジュール301で特定された時刻tiにおける移動体の位置を基準として、測位処理モジュール301で特定された時刻tiにおける移動体の方位角の方向の視野範囲内の道路水平曲率Chmを抽出する。このとき、視野範囲内を、移動体の方位角の方向において等間隔で複数に(例えば40に)区分し、区分したエリアごとに道路水平曲率Chmを割り振る。従って、視野範囲内のエリアごとに割り振られた道路水平曲率Chmx(x=1,2,…,n)の集合として道路水平曲率Chmを抽出する。
【0041】
次に、時刻tiにおける実写画像データからR成分を抽出することによりR画像データを生成したのち(ステップS102)、R画像データに対して、左エッジおよび右エッジを抽出するフィルタを掛け、2値化処理を行うことによりエッジ画像データを生成する(ステップS103)。なお、R画像データを実写画像データ全体から生成する必要はなく、実写画像データにおける道路の最遠部(フェードアウトする部分)を含む下方の領域、つまり、実写画像データにおいて道路の存在可能な領域だけから生成すれば充分である。また、他の方法を用いてエッジ画像データを生成することも可能である。
【0042】
次に、Hough変換および逆変換を行うことにより、エッジ画像データから左エッジ線分WL1,WL2および右エッジ線分WR1,WR2を検出する(ステップS104、図7参照)。なお、図7には、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2のいずれもが連続した線分となっているが、仮に実写画像データ内に道路白線を遮蔽する物体(他の移動体や、標識など)が存在する場合や、悪天候などにより実写画像データ内の道路白線のエッジが不鮮明となっている場合には、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2において、遮蔽物体で遮蔽されている部分や、エッジの不鮮明な部分に対応する箇所に欠けが生じることになる。また、実写画像データ上に路面表示や横断歩道といった白線以外のエッジが多く存在する場合には、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2の他にも多数のエッジ線分が検出されることとなる。
【0043】
次に、エッジ画像データを複数の仮想線分Lj(0≦j≦n)で複数のセクションSjに分割し、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2のセクションSjごとのエッジ水平曲率Chejを、CCDカメラ101の姿勢(偏向角ψ、俯角α)を考慮して推定する(ステップS105、図7参照)。つまり、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2に、離散化した複数のエッジ水平曲率Chejを与える。このとき、実空間において等間隔(例えば1m間隔)となるように、仮想線分Ljを、エッジ画像データ内において上に向かうにつれて狭い間隔で配置する。図7には、仮想線分Ljが10本配置されている場合が例示されているが、道路白線の探索し易さの観点からは、仮想線分Ljの本数をそれよりも多く(例えば40本)して、セクションSjの数を多くすることが好ましい。
【0044】
次に、セクションSjごとのエッジ水平曲率Chejと道路水平曲率Chmとを対比して、エッジ画像データにおいて道路白線に対応するエッジ線分を探索する範囲(探索範囲S)を決定する(ステップS106、図8参照)。例えば、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2と、道路水平曲率Chmから得られる道路との全体としての位置ずれがなるべく小さくなるように、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2を含む領域上に、道路水平曲率Chmから得られる道路を投影したときに、エッジ画像データに対して道路Rを投影し得る領域を探索範囲Sとする。
【0045】
次に、道路白線の探索範囲S内において、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2の中から道路白線に対応するエッジ線分(道路白線の候補)を所定の検索条件を用いて選択し、選択した左エッジ線分WL1と選択した右エッジ線分WR1との中央線分W1、および選択した左エッジ線分WL2と選択した右エッジ線分WR2との中央線分W2を求めたのち、各中央線分W1,W2と仮想線分Ljとの交点の座標m1j,m2jを時刻tiにおける観測値m(j)として求める(ステップS107、図9参照)。
【0046】
なお、実写画像データ上に路面表示や横断歩道といった白線以外のエッジが多く存在していたために、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2の他にも多数のエッジ線分が検出されていた場合には、上記検索条件が甘いと、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2以外の多くの線分も選択されることとなる。そのため、所望の線分だけうまく選択することができるような検索条件を設定することが好ましいが、検索条件をあまり厳しくし過ぎると、所望の線分までも選択対称から除外されてしまう可能性がある。従って、エッジ画像データに対して検索条件をかける前に、探索範囲Sを充分に小さくしておき、探索範囲S内に不要なエッジ線分が含まれないようにしておくことがより好ましい。もっとも、本実施の形態では、探索範囲Sはエッジ水平曲率Chejと道路水平曲率Chmとの対比によって設定されているので、エッジ画像データに占める探索範囲Sの割合は充分に小さくなっており、不要なエッジ線分がほとんど排除されている。
【0047】
次に、道路水平曲率Chmから得られる線分をCCDカメラ101の2次元座標面(例えばエッジ画像データ)に投影したときに得られる仮想道路白線E1,E2と、仮想線分Ljとの交点の座標u1j,u2jを推定値Xd(j)の時刻tiにおける初期値として与えると共に、車線幅L、左側道路白線からのオフセット幅X0、CCDカメラ101の偏向角ψ、CCDカメラ101の俯角αおよび道路垂直曲率Clのそれぞれの標準誤差Se(j)を用いて得られたものを誤差共分散Cxd(j)の時刻tiにおける初期値として与える(ステップS108、図10参照)。なお、推定値Xd(j)、座標u1j、座標u2jについては、以下の数(4)〜(6)で表され、誤差共分散Cxd(j)については、以下の数(7)で表される。また、誤差共分散Cxd(j)を求める際に、道路垂直曲率Clの影響は小さいことから、道路垂直曲率Clを省略することも可能である。
【0048】
【数4】
【数5】
【数6】
【数7】
【0049】
ここで、数4〜数6において、EvはCCDカメラ101のx方向の焦点距離を、EuはCCDカメラ101のy方向の焦点距離をそれぞれ指している。
【0050】
なお、数5,6に示した拡張カルマンフィルタの基本式は、以下のようにして求めることができる。図11に示したように、現在道路位置を(xo,zo)とし、現在位置から前方視認距離Nメートル以内の道路白線点の座標を(xi,zi)(i=0,1,2,…,N)とする。このとき、点(xi,zi)と、次の点(xi+1,zi+1)の間の距離が十分短い場合(例えば1m)には、この部分の道路各点の曲率をCiで近似できる。そのため、点(xi+1,zi+1)から点(xi,zi)までのずれdxi’、dzi’は、以下の数8で計算できる。
【0051】
【数8】
上記のずれを、(xo,zo)を原点とする座標系へ数9を用いて換算する。ここで、θiは、数10に示した式で表される。
【0052】
【数9】
【数10】
【0053】
これにより、現在位置から見えた視認距離内の各点座標を、以下の数11,12で求めることができ、それを2次元平面へ射影すれば、上記した数5,6 を得ることができる。
【数11】
【数12】
【0054】
次に、推定値Xd(j)を用いて時刻tiにおけるカルマンゲインKd(j)を算出する(ステップS109)。このようにして、時刻tiにおける観測値m(j)と、推定値Xd(j)および誤差共分散Cxd(j)の時刻tiにおける初期値と、時刻tiにおけるカルマンゲインKd(j)とを準備したのち、以下の数(13)〜(15)に示したように、観測値m(j)と、カルマンゲインKd(j)とに基づいて、時刻tiにおける推定値Xd(j)を更新すると共に(ステップS110)、カルマンゲインKd(j)に基づいて、時刻tiにおける誤差共分散Cxd(j)を更新する(ステップS111)。
【0055】
【数13】
【数14】
【数15】
【0056】
ここで、Hdは、x(j)=Hd(j)Xd(j)となる値である。x(j)は、推定値である。m(j)は観測値である。
【0057】
次に、更新した推定値Xd(j)および誤差共分散Cxd(j)を用いて上記のステップS109〜S111を複数回、繰り返し実行し、時刻tiにおける最適な推定値Xd(j)を取得する(ステップS112)。ここで、最適か否かについては、例えば、誤差共分散Cxd(j)の収束の有無を基準に判断する。このようにして、時刻tiにおける道路白線の位置座標としての推定値Xd(j)を求めることができる。
【0058】
なお、実写画像データ内に道路白線を遮蔽する物体が存在したり、悪天候などにより実写画像データ内の道路白線のエッジが不鮮明となっていたために、左エッジ線分WL1,WL2および右エッジ線分WR1,WR2に欠けが生じていた場合には、その欠けに対応する領域において、最適な推定値Xd(j)を取得することができず、道路白線の検出を失敗してしまう。
【0059】
そこで、そのような場合に、移動体から見て左側と右側との両側に対となって存在する2つの道路白線のうち他方の道路白線を検出することができているときには、一つ前の時刻ti−1のフレームにおいて検出した道路白線間の距離を用いて、時刻tiのフレームにおける一方の道路白線の位置を推定する。また、対となる2つの道路白線の双方を検出することができなかったときには、対となる2つの道路白線の検出に成功したことのある過去のフレームのうち最新のフレームにおいて検出した道路白線の位置を、時刻tiのフレームにおける道路白線の位置として推定する。
【0060】
なお、最適な推定値Xd(j)および誤差共分散Cxd(j)を取得することができた座標数が少ない場合や、最適な推定値Xd(j)および誤差共分散Cxd(j)を取得することができたものの、取得した推定値Xd(j)が実際の道路白線からずれてしまっている割合が大きい場合には、検索条件を緩和して再度、道路白線を検出することが好ましい。
【0061】
以上のようにして、白線検知モジュール302において、時刻tiにおける道路白線の位置を検出することができるが、時刻ti+1における道路白線の位置を検出し、道路白線を追跡する際には、時刻tiにおける最適な推定値Xd(j)および誤差共分散Cxd(j)を時刻ti+1における初期値として上記ステップS109〜S112を実行すればよい(ステップS113)。
【0062】
ところで、本実施の形態では、上記のようにして求めた、時刻tiにおける道路白線の位置座標としての推定値Xd(j)を利用して、カメラパラメータX(j)を取得することができる。そこで、白線検知モジュール302において、数16に示したように、推定値Xd(j)を利用してカメラパラメータX(j)を求め、カメラパラメータX(j)から移動体の位置および方位角を推定し、測位処理モジュール301で特定された移動体の位置(特に道路幅方向の位置)および方位角を修正する。
【0063】
【数16】
【0064】
ここで、カメラパラメータX(j)とは、車線幅L、オフセット幅X0、偏向角ψ、俯角αおよび道路垂直曲率Clのことであり、数16に示したように、初期カメラパラメータX(0)に、推定値Xd(j)の初期データからの変化量を考慮することにより算出される。
【0065】
このとき、両側白線検出時には全てのパラメータを、片側白線検出時にはL,α以外のパラメータだけを更新するようにゲインKを調整し、両側の白線検知に失敗した時にはカメラパラメータの更新を行わない。
【0066】
白線検出から得られるパラメータは正常な白線検出時においても微小な揺れを生じ、また誤検出時においてはパラメータの大幅な変動を招く。このようなパラメータの変動は安定した自車両位置の推定が出来ないだけでなく、VICNASの表示アイコンのジャンプ化にも繋がる。そこで、道路走行時に変化量の少ないと考えられる車線幅L,俯角αのパラメータを安定制御するために近似メディアンフィルタ(AMF)法と確率密度関数(PDF)を適用する。これにより、高速かつロバストなパラメータの更新を行うことができる。
【0067】
ここで、AMF法とは、平均値を求める代わりに中央値を随時更新することで近似的にメディアンフィルタ(MF)を実現する手法である。現在の取得パラメータ観測値をx、前回までのフレームの中央値をmean、パラメータ更新の変化量をnとしたとき、AMFによる中央値の更新は、以下の数17に示したようにして行われる。
【0068】
【数17】
【0069】
AMFで大きなメモリを確保する必要がなく、他の手法に比べ処理効率が良い。しかも、過去数フレームの平均値を取る様な処理と同程度の安定化が期待できる。このAMFによって更新された中央値からの取得パラメータの誤差を、PDFを用いることで安定制御を行う。本実施の形態では、この確率密度関数にガウス分布を用いてパラメータの補正を行なう。
【0070】
【数18】
【数19】
【0071】
ここで、数18がパラメータの補正式であり、数19が確率密度関数である。xnewは、新たに更新されたデータを表す.xは白線検出から取得したパラメータ観測値であり、μは平均(ここでは中央値mean)であり、σは偏差である。これにより正しい検出結果におけるパラメータの安定化を図ると共に、誤検出時におけるパラメータの急激な変動を抑制することができる。
【0072】
さらに、本実施の形態では、上記のようにして求めた、時刻tiにおける道路白線の位置座標としての推定値Xd(j)を利用して、測位処理モジュール301で特定された移動体の位置(特に道路延在方向の位置)を修正することが可能である。
【0073】
具体的には、測位処理モジュール301で特定された移動体の位置を含む、道路延在方向(前後方向)の複数の位置に移動体がいるものとしたときに、道路水平曲率Chmから得られる線分を、それぞれの位置でCCDカメラ101の2次元座標面(例えばエッジ画像データ)に投影したときに得られる仮想道路白線E1,E2と、推定値Xd(j)から得られる線分を、測位処理モジュール301で特定された移動体の位置でCCDカメラ101の2次元座標面(例えばエッジ画像データ)に投影したときに得られる仮想道路白線との全体としての位置ずれが最も小さなときの、仮想道路白線E1,E2が投影された移動体の位置を求め、その位置を移動体の位置として、測位処理モジュール301で特定された移動体の位置と置き換える修正を行う。
【0074】
特に、仮想道路白線E1,E2の道路水平曲率Chmが、仮想道路白線E1,E2が投影された2次元座標面内にいずれかの場所において、0よりも十分に大きい場合には、移動体の位置を道路延在方向において高精度に修正することができる。
【0075】
次に、本実施の形態のナビゲーション装置1の動作について説明する。
【0076】
この移動体位置検出装置1では、測位処理モジュール301において、GPSデータから直接得られた時刻t0における移動体の位置(xg(t0),yg(t0))および方位角(orig(t0))を始点として、時刻tiにおける移動体の位置((xg(ti),yg(ti))および方位角(orig(ti))が、ジャイロデータおよび車速データを利用して推定される。また、必要に応じて、GPSデータ、ジャイロデータおよび車速データを利用して得られた時刻tiにおける移動体の位置((xg(ti),yg(ti))および方位角(orig(ti))に対してマップマッチング処理を行うことにより、道路上の移動体の位置および方位角を求める。
【0077】
次に、白線検知モジュール302において、まず、時刻tiにおける観測値m(j)と、推定値Xd(j)および誤差共分散Cxd(j)の時刻tiにおける初期値と、時刻tiにおけるカルマンゲインKd(j)とが求められる。その後、観測値m(j)と、カルマンゲインKd(j)とに基づいて、時刻tiにおける推定値Xd(j)が更新されると共に、カルマンゲインKd(j)に基づいて、時刻tiにおける誤差共分散Cxd(j)が更新され、その結果、時刻tiにおける道路白線の位置座標としての推定値Xd(j)が導出される。
【0078】
さらに、画像処理モジュール303において、まず、白線検知モジュール302で求められた、時刻tiにおける道路白線の位置座標としての推定値Xd(j)を利用して、カメラパラメータX(j)が導出され、カメラパラメータX(j)から移動体の位置および方位角が推定され、測位処理モジュール301で特定された移動体の位置および方位角が修正される。その後、修正した移動体の位置および方位角と、白線検知モジュール302で特定されたカメラパラメータと、CCDカメラ101から得られた実写画像データと、地図管理部20から読み出された道路に付随するデータとに基づいて、実写画像データ上に、道路に付随するデータをアイコンで表現したものを重ね合わせた合成画像データが生成される。そして、画像処理モジュール303において生成された合成画像データが、映像表示部40にて表示される。
【0079】
ところで、車載カメラによる自動運転や運転補助のために開発された従来の白線検知方法では、視野内にある白線線形が一本の曲線(つまり、1つの水平曲率)で近似されていた。そのため、白線線形において水平曲率が大きく変化する部分において誤差が大きくなるので、そのような場所では、現在位置が分かった場合であっても、前方道路地図の設計図面から道路白線検出用水平曲率の参考値を抽出することができない。また、鮮明な道路白線を検出した場合であっても、推定された道路水平曲率の値を地図の設計数値と対応付けることができないので、現在位置の推定に使うことができない。
【0080】
一方、本実施の形態では、道路属性および道路構造令に基づいて直線段LA、円弧段LBおよび緩和曲線段LCに分けられた道路リンクL(L1,L2)を細かな区間に分割し、分割した区間ごとに道路水平曲率Chmを求めているので、現在位置が分かれば、地図データから道路水平曲率Chmを簡単に抽出することができる。また、鮮明な道路白線を検出することができれば、推定された道路水平曲率(エッジ水平曲率Chej)を地図の設計数値(道路水平曲率Chm)と対応付けることができるので、現在位置の推定に使うことができる。
【0081】
また、本実施の形態では、道路水平曲率Chmとエッジ水平曲率Chejとを対比して、エッジ画像データにおいて道路白線を探索する範囲(探索範囲S)が決定されるので、エッジ画像データの全ての領域に対して道路白線を検索する必要がない。これにより、検知速度を高速化することができる。さらに、検索範囲Sを絞り込んだ結果、道路白線の候補を選択する条件を緩和することができるので、よりロバストな検知を実現することができる。
【0082】
また、本実施の形態では、拡張カルマンフィルタを用いて求めた推定値Xd(j)を利用して、カメラパラメータを取得している。このカメラパラメータには、上述したように、車線幅L、オフセット幅X0、偏向角ψおよび俯角αが少なくとも含まれていることから、これらのパラメータから、移動体の、道路幅方向の位置を精確に求めることができる。さらに、エッジ水平曲率Chejおよび道路水平曲率Chmから、移動体の、道路延在方向(進行方向)の位置を精確に求めることができる。
【0083】
また、本実施の形態では、白線検知モジュール302において修正された、時刻tiにおける道路白線の位置および方位角と、白線検知モジュール302で特定されたカメラパラメータと、CCDカメラ101から得られた実写画像データと、地図管理部20から読み出された道路に付随するデータとに基づいて、画像データ上に、道路に付随するデータをアイコンで表現したものや、道路白線を重ね合わせた画像データを生成することができる。これにより、他の車両が前方を遮っていたり、夜間や悪天候などによって前方が暗いときなど、前方の視認性が低い場合に、実写画像に道路白線を重ね合せることにより、ドライバに安心感を与えることができる。
【0084】
以上、実施の形態およびその変形例ならびに実施例を挙げて本発明を説明したが、本発明はこれに限定されるものではなく、種々の変形が可能である。
【0085】
例えば、上記実施の形態では、測位処理モジュール301、白線検知モジュール302および画像処理モジュール303はデバイス(ハードウェア)として記述されていたが、中央処理部30にロードされたプログラムであってもよい。また、記録媒体2に記録されている地図データについても、あらかじめ中央処理部30にロードされていてもよい。
【図面の簡単な説明】
【0086】
【図1】本発明の一実施の形態に係るナビゲーション装置の概要構成図である。
【図2】センサ入力部からの各入力の周期およびタイミングを表す関係図である。
【図3】移動体の変位の様子の一例を表す平面図である。
【図4】図1の白線検知モジュールについて説明するための流れ図である。
【図5】図4に続く流れ図である。
【図6】地図データを模式的に表した模式図である。
【図7】エッジ画像データを模式的に表した模式図である。
【図8】図7のエッジ画像データにおける道路白線の探索範囲を模式的に表した模式図である。
【図9】図7のエッジ画像データから抽出された中央線分および観測値を模式的に表した模式図である。
【図10】地図データから得られた仮想道路白線、推定値および誤差共分散を模式的に表した模式図である。
【図11】拡張カルマンフィルタの導出について説明するための模式図である。
【符号の説明】
【0087】
1…ナビゲーション装置、10…センサ入力部、20…地図管理部、30…中央処理部、40…映像表示部。101…CCDカメラ、102…GPSセンサ、103…ジャイロセンサ、104…車速センサ、201…記録媒体、202…ドライバ、301…測位処理モジュール、302…白線検知モジュール、303…画像処理モジュール。
【特許請求の範囲】
【請求項1】
センサ出力データから得られた移動体の位置および方位角に基づいて移動体近傍のノード、道路リンク、補間点および道路リンクの道路属性についてのデータを地図データから抽出するステップと、
前記地図データから抽出された道路リンクを、前記道路属性に基づいて直線段、円弧段およびこれらと繋がった緩和曲線段に分けたのち、複数の区間に分割し、分割した区間ごとに道路水平曲率を求めるステップと、
実写画像データに対して所定の画像処理を行うことにより得られたエッジ画像データからエッジ線分を抽出したのち、抽出したエッジ線分を複数の区間に分割し、分割した区間ごとにエッジ水平曲率を求めるステップと、
前記道路水平曲率と前記エッジ水平曲率とを対比して、前記エッジ画像データにおいて道路白線に対応するエッジ線分を探索する範囲を決定するステップと、
前記探索範囲内において、所定の検索条件に基づいてエッジ線分を選択し、選択したエッジ線分に対応した座標を観測値として取得するステップと、
前記道路水平曲率から得られる線分を前記エッジ画像データに投影したときに得られる仮想道路白線に対応した座標を推定値の初期値として取得すると共に、車線幅、道路白線からのオフセット幅、偏向角および俯角のそれぞれの標準誤差を用いて得られたものを誤差共分散の初期値として取得し、さらに前記推定値を用いてカルマンゲインを算出するステップと、
前記観測値と前記カルマンゲインとに基づいて前記推定値を更新すると共に、前記カルマンゲインに基づいて前記誤差共分散を更新するステップと、
更新した推定値を用いてカルマンゲインを更新したのち、前記観測値と更新したカルマンゲインとに基づいて前記推定値を更に更新すると共に、更新したカルマンゲインに基づいて前記誤差共分散を更に更新するステップと
を含むことを特徴とする道路白線検出方法。
【請求項2】
更新により得られた推定値から得られる線分と、前記道路水平曲率から得られる線分とを利用して、センサ出力データから得られた移動体の位置および方位角を修正する
ことを特徴とする請求項1に記載の道路白線検出方法。
【請求項3】
センサ出力データから得られた移動体の位置および方位角に基づいて移動体近傍のノード、道路リンク、補間点および道路リンクの道路属性についてのデータを地図データから抽出するステップと、
前記地図データから抽出された道路リンクを、前記道路属性に基づいて直線段、円弧段およびこれらと繋がった緩和曲線段に分けたのち、複数の区間に分割し、分割した区間ごとに道路水平曲率を求めるステップと、
実写画像データに対して所定の画像処理を行うことにより得られたエッジ画像データからエッジ線分を抽出したのち、抽出したエッジ線分を複数の区間に分割し、分割した区間ごとにエッジ水平曲率を求めるステップと、
前記道路水平曲率と前記エッジ水平曲率とを対比して、前記エッジ画像データにおいて道路白線に対応するエッジ線分を探索する範囲を決定するステップと、
前記探索範囲内において、所定の検索条件に基づいてエッジ線分を選択し、選択したエッジ線分に対応した座標を観測値として取得するステップと、
前記道路水平曲率から得られる線分を前記エッジ画像データに投影したときに得られる仮想道路白線に対応した座標を推定値の初期値として取得すると共に、車線幅、道路白線からのオフセット幅、偏向角および俯角のそれぞれの標準誤差を用いて得られたものを誤差共分散の初期値として取得し、さらに前記推定値を用いてカルマンゲインを算出するステップと、
前記観測値と前記カルマンゲインとに基づいて前記推定値を更新すると共に、前記カルマンゲインに基づいて前記誤差共分散を更新するステップと、
更新した推定値を用いてカルマンゲインを更新したのち、前記観測値と更新したカルマンゲインとに基づいて前記推定値を更に更新すると共に、更新したカルマンゲインに基づいて前記誤差共分散を更に更新するステップと
をコンピュータに実行させることを特徴とする道路白線検出プログラム。
【請求項4】
センサ出力データから得られた移動体の位置および方位角に基づいて移動体近傍のノード、道路リンク、補間点および道路リンクの道路属性についてのデータを地図データから抽出する抽出手段と、
前記地図データから抽出された道路リンクを、前記道路属性に基づいて直線段、円弧段およびこれらと繋がった緩和曲線段に分けたのち、複数の区間に分割し、分割した区間ごとに道路水平曲率を求める道路水平曲率導出手段と、
実写画像データに対して所定の画像処理を行うことにより得られたエッジ画像データからエッジ線分を抽出したのち、抽出したエッジ線分を複数の区間に分割し、分割した区間ごとにエッジ水平曲率を求めるエッジ水平曲率導出手段と、
前記道路水平曲率と前記エッジ水平曲率とを対比して、前記エッジ画像データにおいて道路白線に対応するエッジ線分を探索する範囲を決定する探索範囲決定手段と、
前記探索範囲内において、所定の検索条件に基づいてエッジ線分を選択し、選択したエッジ線分に対応した座標を観測値として取得する観測値取得手段と、
前記道路水平曲率から得られる線分を前記エッジ画像データに投影したときに得られる仮想道路白線に対応した座標を推定値の初期値として取得すると共に、車線幅、道路白線からのオフセット幅、偏向角および俯角のそれぞれの標準誤差を用いて得られたものを誤差共分散の初期値として取得し、さらに前記推定値の初期値を用いてカルマンゲインの初期値を算出する初期値取得手段と、
前記観測値と前記カルマンゲインとに基づいて前記推定値を更新すると共に、前記カルマンゲインに基づいて前記誤差共分散を更新する第1更新手段と、
更新した推定値を用いてカルマンゲインを更新したのち、前記観測値と更新したカルマンゲインとに基づいて前記推定値を更に更新すると共に、更新したカルマンゲインに基づいて前記誤差共分散を更に更新する第2更新手段と
を備えたことを特徴とする道路白線検出装置。
【請求項1】
センサ出力データから得られた移動体の位置および方位角に基づいて移動体近傍のノード、道路リンク、補間点および道路リンクの道路属性についてのデータを地図データから抽出するステップと、
前記地図データから抽出された道路リンクを、前記道路属性に基づいて直線段、円弧段およびこれらと繋がった緩和曲線段に分けたのち、複数の区間に分割し、分割した区間ごとに道路水平曲率を求めるステップと、
実写画像データに対して所定の画像処理を行うことにより得られたエッジ画像データからエッジ線分を抽出したのち、抽出したエッジ線分を複数の区間に分割し、分割した区間ごとにエッジ水平曲率を求めるステップと、
前記道路水平曲率と前記エッジ水平曲率とを対比して、前記エッジ画像データにおいて道路白線に対応するエッジ線分を探索する範囲を決定するステップと、
前記探索範囲内において、所定の検索条件に基づいてエッジ線分を選択し、選択したエッジ線分に対応した座標を観測値として取得するステップと、
前記道路水平曲率から得られる線分を前記エッジ画像データに投影したときに得られる仮想道路白線に対応した座標を推定値の初期値として取得すると共に、車線幅、道路白線からのオフセット幅、偏向角および俯角のそれぞれの標準誤差を用いて得られたものを誤差共分散の初期値として取得し、さらに前記推定値を用いてカルマンゲインを算出するステップと、
前記観測値と前記カルマンゲインとに基づいて前記推定値を更新すると共に、前記カルマンゲインに基づいて前記誤差共分散を更新するステップと、
更新した推定値を用いてカルマンゲインを更新したのち、前記観測値と更新したカルマンゲインとに基づいて前記推定値を更に更新すると共に、更新したカルマンゲインに基づいて前記誤差共分散を更に更新するステップと
を含むことを特徴とする道路白線検出方法。
【請求項2】
更新により得られた推定値から得られる線分と、前記道路水平曲率から得られる線分とを利用して、センサ出力データから得られた移動体の位置および方位角を修正する
ことを特徴とする請求項1に記載の道路白線検出方法。
【請求項3】
センサ出力データから得られた移動体の位置および方位角に基づいて移動体近傍のノード、道路リンク、補間点および道路リンクの道路属性についてのデータを地図データから抽出するステップと、
前記地図データから抽出された道路リンクを、前記道路属性に基づいて直線段、円弧段およびこれらと繋がった緩和曲線段に分けたのち、複数の区間に分割し、分割した区間ごとに道路水平曲率を求めるステップと、
実写画像データに対して所定の画像処理を行うことにより得られたエッジ画像データからエッジ線分を抽出したのち、抽出したエッジ線分を複数の区間に分割し、分割した区間ごとにエッジ水平曲率を求めるステップと、
前記道路水平曲率と前記エッジ水平曲率とを対比して、前記エッジ画像データにおいて道路白線に対応するエッジ線分を探索する範囲を決定するステップと、
前記探索範囲内において、所定の検索条件に基づいてエッジ線分を選択し、選択したエッジ線分に対応した座標を観測値として取得するステップと、
前記道路水平曲率から得られる線分を前記エッジ画像データに投影したときに得られる仮想道路白線に対応した座標を推定値の初期値として取得すると共に、車線幅、道路白線からのオフセット幅、偏向角および俯角のそれぞれの標準誤差を用いて得られたものを誤差共分散の初期値として取得し、さらに前記推定値を用いてカルマンゲインを算出するステップと、
前記観測値と前記カルマンゲインとに基づいて前記推定値を更新すると共に、前記カルマンゲインに基づいて前記誤差共分散を更新するステップと、
更新した推定値を用いてカルマンゲインを更新したのち、前記観測値と更新したカルマンゲインとに基づいて前記推定値を更に更新すると共に、更新したカルマンゲインに基づいて前記誤差共分散を更に更新するステップと
をコンピュータに実行させることを特徴とする道路白線検出プログラム。
【請求項4】
センサ出力データから得られた移動体の位置および方位角に基づいて移動体近傍のノード、道路リンク、補間点および道路リンクの道路属性についてのデータを地図データから抽出する抽出手段と、
前記地図データから抽出された道路リンクを、前記道路属性に基づいて直線段、円弧段およびこれらと繋がった緩和曲線段に分けたのち、複数の区間に分割し、分割した区間ごとに道路水平曲率を求める道路水平曲率導出手段と、
実写画像データに対して所定の画像処理を行うことにより得られたエッジ画像データからエッジ線分を抽出したのち、抽出したエッジ線分を複数の区間に分割し、分割した区間ごとにエッジ水平曲率を求めるエッジ水平曲率導出手段と、
前記道路水平曲率と前記エッジ水平曲率とを対比して、前記エッジ画像データにおいて道路白線に対応するエッジ線分を探索する範囲を決定する探索範囲決定手段と、
前記探索範囲内において、所定の検索条件に基づいてエッジ線分を選択し、選択したエッジ線分に対応した座標を観測値として取得する観測値取得手段と、
前記道路水平曲率から得られる線分を前記エッジ画像データに投影したときに得られる仮想道路白線に対応した座標を推定値の初期値として取得すると共に、車線幅、道路白線からのオフセット幅、偏向角および俯角のそれぞれの標準誤差を用いて得られたものを誤差共分散の初期値として取得し、さらに前記推定値の初期値を用いてカルマンゲインの初期値を算出する初期値取得手段と、
前記観測値と前記カルマンゲインとに基づいて前記推定値を更新すると共に、前記カルマンゲインに基づいて前記誤差共分散を更新する第1更新手段と、
更新した推定値を用いてカルマンゲインを更新したのち、前記観測値と更新したカルマンゲインとに基づいて前記推定値を更に更新すると共に、更新したカルマンゲインに基づいて前記誤差共分散を更に更新する第2更新手段と
を備えたことを特徴とする道路白線検出装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2009−140192(P2009−140192A)
【公開日】平成21年6月25日(2009.6.25)
【国際特許分類】
【出願番号】特願2007−315266(P2007−315266)
【出願日】平成19年12月5日(2007.12.5)
【出願人】(507080628)
【Fターム(参考)】
【公開日】平成21年6月25日(2009.6.25)
【国際特許分類】
【出願日】平成19年12月5日(2007.12.5)
【出願人】(507080628)
【Fターム(参考)】
[ Back to top ]