ナビゲーション装置
【課題】走行中の車両から前方を撮像して画像処理を行うことにより、走行車両の安全を保つことが可能なナビゲーション装置を提供する。
【解決手段】車両前方を撮像して、撮像された画像中の物体の時間tからt+Δtの動きを示す移動ベクトルを車両の走行中にCCDカメラ19にて得られる画像を比較することによって求め、当該検出された移動ベクトルに基づいて、走行中の道路の道路端までの余裕度を判定し、この判定結果に基づいて、ドライバーに告知させるようにしたナビゲーション装置は、上記移動ベクトルの検出結果に基づいてCCDカメラ19の撮像方向を校正する。
【解決手段】車両前方を撮像して、撮像された画像中の物体の時間tからt+Δtの動きを示す移動ベクトルを車両の走行中にCCDカメラ19にて得られる画像を比較することによって求め、当該検出された移動ベクトルに基づいて、走行中の道路の道路端までの余裕度を判定し、この判定結果に基づいて、ドライバーに告知させるようにしたナビゲーション装置は、上記移動ベクトルの検出結果に基づいてCCDカメラ19の撮像方向を校正する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、走行中の車両において、撮像手段からの画像に基づいて道路端を求めるナビゲーション装置等の技術分野に属する。
【背景技術】
【0002】
従来から、移動体としての車両の現在位置を検出し、周辺の道路地図と共に検出された現在位置を表示画面に表示して経路案内を行うナビゲーション装置が広く用いられている。この種のナビゲーション装置においては、地図データが記憶された大容量の記録媒体を備えており、表示画面上の表示データを生成するために用いられる。記録媒体上の地図データには、道路形状に関するデータや表示用の各種データなどに加え、これに付随する道幅情報が含まれる。よって、走行中の道路に対応する道幅情報を読み出して、現在走行している道路の道幅を把握することができる。
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上記従来のナビゲーション装置では、地図データに含まれる道幅情報は正確な道幅を示すものではなく、例えば5.5m〜8mのように、その道路の概略の道幅を示すに過ぎなかった。よって、道路のポイントに対応したきめ細かく正確な道幅情報は取得することができなかった。
【0004】
また、単に道路の道幅を知るだけではなく、道路端までの距離をリアルタイムに求め、これを車両の安全走行に役立てることへのニーズも強くなっている。一方、複数台のカメラを設置して三角測量の原理を応用すれば、立体的に距離を計測可能であり、道路端までの距離を求めることができるが、装置の構成が複雑となってコストアップの要因となる。
【0005】
そこで、本発明はこのような問題に鑑みなされたものであり、簡単な構成で、走行中の車両から撮像した画像に基づき壁面等の道路端までの距離及び道幅を求めることができる画像処理装置、及び、画像処理の結果に応じて、ドライバーに対し安全走行を確保するための警告や案内を行うことが可能なナビゲーション装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、請求項1に記載のナビゲーション装置は、車両前方を撮像して画像を出力する撮像手段と、前記画像中の物体の時間tからt+Δtの動きを示す移動ベクトルを前記車両の走行中に前記撮像手段にて得られる画像を比較することによって求める移動ベクトル検出手段と、前記検出された移動ベクトルに基づいて、前記走行中の道路の道路端までの余裕度を判定する余裕度判定手段と、前記余裕度判定手段の判定結果に基づいて、告知手段を制御する制御手段と、を備え、前記移動ベクトル検出手段の検出結果に基づいて前記撮像手段の撮像方向を校正する校正手段を有することを特徴とする。
【発明を実施するための最良の形態】
【0007】
以下、本発明の好適な実施の形態を図面に基づいて説明する。以下の実施の形態においては、本発明を車両に搭載されるナビゲーション装置に適用した場合について説明する。
【0008】
図1は、本実施形態に係るナビゲーション装置の概略構成を示す図である。図1に示すナビゲーション装置は、制御部11と、地図データ記憶部12と、道幅データ記憶部13と、センサ部14と、現在位置検出部15と、ディスプレイ16と、スピーカ17と、画像処理部18と、CCDカメラ19とを含んで構成されている。
【0009】
以上の構成において、制御部11は、ナビゲーション装置全体の動作を制御する。制御部11はCPU等からなり、図示しないROMに格納される制御プログラムを読み出して実行し、ナビゲーション装置の各構成要素に制御信号を送出すると共に、データを入出力する。
【0010】
地図データ記憶部12は、地図データを格納する記憶容量の大きなメモリであり、例えばCD−ROMやDVD−ROMが用いられる。地図データ記憶部12に格納される地図データは、道路形状データ、名称データ、背景データなどを含んで構成される。
【0011】
道幅データ記憶部13は、本発明に係る画像処理に伴って得られた車両走行中の道幅データを更新可能に記録するメモリである。上述の地図データ記憶部12の地図データにも簡易な道幅情報が含まれるが、道幅データ記憶部13に記憶される道幅データは更に詳細なデータであり、道路の位置に応じて変化する道幅を正確に求めたデータである。なお、道幅データの生成方法については後述する。
【0012】
センサ部14は、車両の現在位置を検出するために必要な各種センサを含んでいる。具体的には、車両の速度を検出する車速センサや、車両の方位変化量を検出する方位センサや、GPS(Global Positioning System)衛星からの電波を受信するGPS受信部などを含んで構成される。
【0013】
現在位置検出部15は、センサ部14からの出力信号に基づいて、車両の現在位置を算出し、現在位置データを出力する。なお、現在位置データは、制御部11によって前述の地図データと照合されて、マップマッチング処理等により補正される。
【0014】
ディスプレイ16には、制御部11の指示の下、地図データが種々の態様で表示されると共に、これに重畳して車両の現在位置がカーマークとして表示される。このディスプレイ16は、例えばCRT、液晶表示素子などから構成される。また、スピーカ17からは、車両の経路に沿った誘導情報が音声により出力されると共に、本発明に係る画像処理に関連して後述の案内音声が出力される。
【0015】
画像処理部18は、車両に設置されるCCDカメラ19からの画像信号を解析して、本実施形態に係る画像処理を行う手段である。ここで、図2を用いて、画像処理部18の構成及び動作について説明する。
【0016】
図2に示すように、画像処理部18は、A/Dコンバータ21と、第1画像メモリ22と、第2画像メモリ23と、移動ベクトル検出部24と、移動ベクトル処理部25を含んで構成されている。また、画像制御部18は、制御部11からの制御信号に従って動作する。
【0017】
図2において、A/Dコンバータ21は、CCDカメラ19によって撮像された画像に基づくアナログ画像信号をディジタル画像信号に変換する。通常、A/Dコンバータ21から出力されるディジタル画像信号は、所定のフレーム周期ごとに1つのフレーム画像データを構成し、連続する複数のフレーム画像データからなる。
【0018】
第1画像メモリ22及び第2画像メモリ23は、それぞれA/Dコンバータ21から出力されるフレーム画像データを格納する。第1画像メモリ22は最新のフレーム画像データを格納し、第2画像メモリ23は1つ前のフレーム画像データを格納する。よって、画像処理部18では、常に最新の2フレーム分の画像データが保持されており、これらを用いて後述の処理が行われる。
【0019】
移動ベクトル検出部24は、第1画像メモリ22及び第2画像メモリ23に格納されるフレーム画像データに基づいて、画像中の各領域ごとの移動ベクトルを検出する。この際、センサ部14から出力された車速データを用いる。
【0020】
また、移動ベクトル処理部25は、移動ベクトル検出部24により検出された移動ベクトルに基づいて、走行道路の前方側における壁面等の道路端までの水平方向の距離及びこれに基づく道幅を求め、道幅データ等として出力する。
【0021】
なお、移動ベクトル検出部24と移動ベクトル処理部25における処理の詳細については後述する。
【0022】
図1に戻って、本発明の撮像手段としてのCCDカメラ19は、車両の所定位置に設置され、車両の前方方向を撮像し、画像信号を出力する。ここで図3に、CCDカメラ19の車両への設置状態を示す。
【0023】
図3(a)は、車両上方から見たCCDカメラ19の設置状態を示す図である。図3(a)に示すように、CCDカメラ19は車両室内上部の中央付近に取付けられている。CCDカメラ19は、車両前方を真っ直ぐ向いて撮像可能な位置に固定される。
【0024】
また、図3(b)は、CCDカメラ19に関し、車両側方からから見た設置状態を撮像範囲と共に示す図である。図3(b)に示すように、CCDカメラ19は車両前方に向かって画角θの範囲を撮像する。通常、撮像された画像の中心を道路面に対し水平方向に一致させる。また、CCDカメラ19は、道路面からの高さHの位置に取付けられる。例えば、H=1.5(m)程度になる。
【0025】
次に、本実施形態に係る画像処理の原理について、図4〜図9を参照して説明する。
【0026】
図4は、前述のCCDカメラ19により撮像された画像をピンホールカメラのモデルで表した図である。図4においては、CCDカメラ19の受光素子部に対応する画像平面P0と、レンズ部に対応する焦点面Fとが焦点距離fを隔てて平行に配置されている。焦点面Fのレンズ中心Cがピンホールに対応し、このレンズ中心Cを中心に空間座標系(X,Y,Z)を考える。一方、画像平面P0では、空間座標(0,0,−f)を画像中心cとして、カメラ座標系(x,y)を考える。
【0027】
ここで、空間座標系の点M(Xm,Ym,Zm)を考える。この点Mは、例えば図3(b)の視野内にある道路面や壁面上の所定の位置に対応させることができる。この点Mに対する中心射影を考えると、点Mから焦点面Fのレンズ中心Cを通って画像平面P0までが直線で結ばれ、カメラ座標系の点m(xm,ym)に射影される。このとき、点M(Xm,Ym,Zm)と射影された点m(xm,ym)の関係は次式で表される。
[数1]
xm = f・Xm/Zm
ym = f・Ym/Zm
【0028】
次に図5は、図4に対応して、空間座標系(X,Y,Z)と画像データのピクセル座標系(u,v)の関係を表した図である。図5においては簡単のため、図4の画像平面P0を焦点面Fの前方側に配置させると共に、カメラ座標系(x,y)のx軸、y軸をそれぞれ反転させてu軸、v軸とすることにより、ピクセル画像系(u,v)としたものである。図4の配置を図5の配置に置き換えても、互いに等価であるため、同様の関係が成り立つ。
【0029】
図5において、ピクセル画像系の画像平P1面は、水平方向の画素数Nwと垂直方向の画素数Nhの表示画像に対応しており、画像平面P1には全部でNw×Nhの画素が含まれる。一方、この画像平面P1は、サイズが横幅w、高さhとなるCCDカメラ19の受光領域に一致する。そして、図4と同様に空間座標系の点M(X,Y,Z)を考えると、図5に示すように、画像平面P1の点m(u,v)を通って焦点面Fのレンズ中心Cまで直線で結ばれる。
【0030】
ここで、図4と同様に、点mに対する中心射影を考えると、数1に対応して、点M(X,Y,Z)と射影された点m(u,v)の関係は次式で表される。
[数2]
u = (f・X/Z)・Nw/w
v = (f・Y/Z)・Nh/h
【0031】
すなわち、数2は、点m(u,v)の画像平面P1における画素位置を表している。数2において、uが水平方向の画素位置に対応し、vが垂直方向の画素位置に対応している。
【0032】
本実施形態では、走行中の車両から撮像された画像を処理するので、画像平面P1内の物体の動きを想定する必要がある。そのため、画像平面P1におけるオプティカルフロー、すなわち移動ベクトルV(u,v)を求める必要がある。3次元空間の同一点の明るさIが一定に保たれる場合、次の時空間微分方程式が成り立つ。
[数3]
dI/dt = Ix・u+Iy・v+It = 0
ただし、それぞれ画像平面P1内において、Ixが水平方向の偏微分、Iyが垂直方向の偏微分、Itが時間軸方向の偏微分、u、vは上述の移動ベクトルVの水平方向、垂直方向の成分である。
【0033】
次に、図6及び図7を用いて移動ベクトルVを求める方法について説明する。図6に示すように、時刻tにおける画像平面P1内に参照ブロックRを定義する。この参照ブロックRは、左上の画素prを起点として、u軸にm画素、v軸にn画素の範囲の矩形領域であり、全部でm×n個の画素を含んでいる。そして、画像平面P1を複数の参照ブロックRに分割し、各々の参照ブロックRごとに移動ベクトルVを求める。図6の例では、m=8、n=8となる参照ブロックRを示している。
【0034】
図7は、画像平面P1内の所定の参照ブロックRに対する移動ベクトルVの求め方を説明する図である。図7は、図6の時刻tからΔtが経過した時刻t+Δtにおける画像平面P1に対応する。そして、センサ部14からの車速データ等に基づいて、画像平面P1内の所定の領域を予めサーチ範囲Sとして定めておく。サーチ範囲Sは、u軸にM画素、v軸にN画素となる矩形領域であって、通常は、M、Nがm、nに比べると十分大きくなる。
【0035】
そして、サーチ範囲Sに対し、参照ブロックRと同サイズの比較ブロックCを所定の位置に定義する。サーチ範囲Sは参照ブロックRに比べサイズが十分大きいため、比較ブロックCの位置をサーチ範囲S内で少しづつ動かす必要がある。図7では、比較ブロックCは参照ブロックRと同様にm×nのサイズであり、参照ブロックの左上の画素prに対応する比較ブロックCの左上の画素pcを示している。最初はサーチ範囲Sの左上の画素を比較ブロックCの画素pcに設定し、その後はサーチ範囲Sの中で、u軸方向又はv軸方向に画素pcの位置を1画素づつ動かして、サーチ範囲S内に定義可能な全ての比較ブロックCについて後述の演算を行う。
【0036】
次いで、図6の時刻tにおける参照ブロックRと、図7の時刻t+Δtにおける比較ブロックCの間で相関値を求める。ここで、画素の集合である画像データでは、m×n個の全ての画素に濃度値を対応させているので、参照ブロックRと比較ブロックCの対応する画素ごとの濃度値の差分を求める。この濃度値の各画素ごとの差分に対し、m×n個の画素についての和をとれば、相関値を計算することができる。
【0037】
そして、参照ブロックRに対し、サーチ範囲Sの中の全ての比較ブロックCとの間の相関値を求め、最小の相関値を与える比較ブロックCを探索する。例えば、図7に示す比較ブロックCが最小の相関値を与えるとする。
【0038】
この場合は、図7に示すように、画像平面P1において、点線で示した時刻tにおける参照ブロックRから時刻t+Δtにおける比較ブロックCに向かうベクトルを移動ベクトルVとして決定することができる。
【0039】
図7では1つの移動ベクトルVのみ示したが、実際には移動ベクトルVを、画像平面P1に定義可能な全ての参照ブロックRについて求める。これにより移動ベクトルVの空間的な分布を求める。そして、この移動ベクトルVの空間的な分布に基づいて後述の処理が行われる。
【0040】
次に、図8〜図9を用いて、走行中の車両から撮像された画像における移動ベクトルの求め方、及び、車両から道路端までの距離、走行道路の道幅を算出する方法について説明する。
【0041】
図8は、CCDカメラ19から撮像した画像の一例を示す図である。図8では簡単のため、一定幅で直進する道路において両側の道路端に一定の高さの壁面があり、車両はセンターラインから所定距離だけ左側を走行している場合の画像を示している。また、道路面は、左側壁面と境界線BLで接し、右側壁面と境界線BRで接している。
【0042】
図8に示すように、画像の中心をピクセル画像座標系(u,v)における原点(0,0)に対応させる。すなわち、画像の撮像方向が道路面及び壁面に対し平行になり、境界線BL、BRなどが交わる消失点が、原点(0,0)に合致する。また、画像の全体は、左上の点(−Nw/2,Nh/2)と、右上の点(Nw/2,Nh/2)と、左下の点(−Nw/2,−Nh/2)と、右下の点(Nw/2,−Nh/2)の4画素を頂点とする矩形領域である。後述の画像処理を行うに際して、CCDカメラ19の撮像方向や取り付け高さHを予め正確に校正しておく必要がある。ただし、原点(0,0)と消失点が一致しない場合でも、校正により消失点の位置を正確に特定できれば、本発明に係る画像処理を行うことができる。
【0043】
図8において、画像中にv=VRで表される基準水平ラインLを設定する。基準水平ラインLは、道路面と左右両側の壁面を横切る位置、すなわち道路端と交差する位置に設定する必要があり、VRは負の値となる。例えば車両から10m前方の道路面上の相対位置に対応する画像位置に基準水平ラインLを設定すればよい。そして、図8において、時刻tから時刻t+Δtとなる間の基準水平ラインL上の移動ベクトルVを求める。Δtが経過するまで車両が一定距離だけ前方に進むと、基準水平ラインL上の撮像対象物はその分だけ車両に近づくので、基準水平ラインL上の移動ベクトルVのv成分は負の値となる。
【0044】
基準水平ラインLを設定すべき車両との相対位置は、10mに限られず適切な距離に設定できる。ただし、車両に近づき過ぎると、左右の壁面を横切らない配置となって不適切となる。また、車両から離れ過ぎると、道路面と壁面を横切るとしても距離が大きくなり過ぎて、道路のカーブ等の形状変化による誤差が生じやすくなる。そのため、道路面と壁面に十分重なる範囲で車両にできるだけ近距離の相対位置に設定することが望ましい。
【0045】
ここで、速度v0(m/秒)で走行している車両において、フレーム周期T(秒)でCCDカメラ19による撮像を行うとする。この場合、1フレーム間の車両の移動距離dは、
[数4]
d=v0・T(m)
と表すことができる。一方、車両の移動に伴い基準水平ラインLの移動ベクトルVは、消失点である原点(0,0)から放射状に向かうベクトルとなる。そして、移動ベクトルVの大きさは、基準水平ラインL上の撮像対象物と車両との距離が近いほど大きくなるように変化する。
【0046】
このとき、基準水平ラインLにおける移動ベクトルVの分布をとると、道路面と左右の壁面とでは異なるパターンに従って変化する。よって、移動ベクトルVのパターン変化を分析して、基準水平ラインLと境界線BL、BRとの交点の位置をそれぞれ求め、これに基づき車両の位置から左右の道路端までの距離DL、DRを算出し、更に走行道路の道幅RWを算出する。
【0047】
ここで、図8の基準水平ラインLにおけるピクセル画像座標系(u,v)と実際の空間座標系(X,Y,Z)の関係について、図9を参照して説明する。図8の撮像対象物の奥行きを表すZは、数2に基づき次式で表される。
[数5]
Z = X・f・Nw/(u・w)
【0048】
図9(a)は、画像横軸のuに対する撮像位置から見た奥行きZの変化を示す図である。図9(a)において、変曲点PLは基準水平ラインLと境界線BLの交点に対応し、変曲点PRは基準水平ラインLと境界線BRの交点に対応する。図9(a)に示すように、道路面ではZが一定値となるのに対し、壁面では外側に行くほどZが小さくなっていく。すなわち、数5からわかるように、道路面では基準水平ラインLが水平面にあるため、uとXが比例し、Zは一定値となる。一方、左右の壁面では基準水平ラインLが垂直面にあるため、Xが固定値となって、Zはuに反比例して変化する。
【0049】
次に、図8の基準水平ラインLにおける高さYは、数2及び数5に基づき次式で表される。
[数6]
Y = Z・v・h/(f・Nh)
【0050】
図9(b)は、画像横軸のuに対する高さYの変化を示す図である。図9(b)においては、図9(a)と同様、変曲点PL及び変曲点PRの間の道路面では、Yが一定値となる。一方、壁面では外側に行くほどYが大きくなっていく。数6においてuが負の値となるので、図9(a)の場合と逆の変化になっている。
【0051】
次に、図8の状態から車両がΔZ(m)進んだ場合を考える。このとき、図8の基準水平ラインLの垂直位置がΔv(ピクセル)動くとすると、ΔvとΔZの関係は、数6に基づき次式で表される。
[数7]
Δv = Y・f・Nh/((Z−ΔZ)・h)−Y・f・Nh/(Z・h)
【0052】
図9(c)は、画像横軸のuに対し、車両がΔZ(m)進んだ時のΔvの変化を示す図である。図9(c)においては、図9(a)、(b)と同様、変曲点PL及び変曲点PRの間の道路面では、Δvが一定値となる。一方、壁面では外側に行くほどΔvが小さくなっていく。従って、数7に示されるΔvの値に基づいて、後述の演算が行われる。
【0053】
なお、上述の例では道路端全体に壁面が存在する場合を説明したが、例えばガードレールのように部分的な壁面となる場であっても、移動ベクトルVが道路面とそれ以外の部分で変化する場合には、距離DL、DR、道幅RWを算出することができる。
【0054】
図10は、移動ベクトルVを数7に基づき評価して、車両から左右の道路端の壁面までの距離DL、DR等を算出する方法を示すフローチャートである。なお、以下の処理を行うに際しては、予めCCDカメラ19の撮像方向と取付け高さHを校正しておくものとする。
【0055】
図10の処理において、ステップS1では、上述のように、基準水平ラインLにおける移動ベクトルVを算出する。すなわち、連続する2つのフレーム画像データの画像を比較して、フレーム周期Tの間の基準水平ラインLにおける移動ベクトルVを算出する。
【0056】
ステップS2では、移動ベクトルVのv成分を評価して、数7に基づき基準水平ラインL上の左側の変曲点PLと右側の変曲点PRを抽出する。このとき、変曲点PLのu方向位置ulと変曲点PRのu方向位置urが得られるとする。
【0057】
ステップS3では、抽出された変曲点PL、PRのそれぞれのu方向位置ul、urを空間座標のX方向位置に変換する。具体的には、数2に基づく次式を計算すればよい。
[数8]
X = u・Z・w/(Nw・f)
ただし、数8のZは、Z=−H・f・Nh/(v・h)である。数8に示されるXを、左右の変曲点PL、PRについて計算する。
【0058】
ステップS4では、左側壁面までの距離DL、右側壁面までの距離DR、道幅RWを求める。すなわち、ステップS4にて計算結果に基づいて、左側の変曲点PLのX方向位置が距離DLに対応し、右側の変曲点PRのX方向位置が距離DRに対応する。これらを加えることにより道幅RWを、
[数9]
RW = DL+DR
と求めることができる。なお、距離DL、DRの相対的関係に基づいて車両位置を知ることができる。
【0059】
ステップS5では、カメラが車両の水平方向の中心に設置されていると考えて、左側壁面に対する余裕度MLと右側壁面に対する余裕度MRを次式により求める。
[数10]
ML = DL−W/2
MR = DR−W/2
ただし、Wは車両の横幅を表している。数10に示す左右の余裕度ML、MRは、後述のようにドライバーに警告を与える際の判断基準となる。
【0060】
以上のステップS1〜ステップS5の処理は、移動ベクトルVのv成分を評価することにより行うものであるが、移動ベクトルVのu成分も、同様に変曲点PL、PRで特性が変わるので、これを評価して上述の処理を行うようにしてもよい。
【0061】
なお、算出された道幅RWに対応する道幅データを地図データと関連づけて道幅データ記憶部13に更新可能に記憶すれば、後述の各種の処理に利用することができる。
【0062】
更に、上述の画像処理における各数値の具体例としては、焦点距離f=4(mm)、水平方向の画素数Nw=320(ピクセル)、受光領域の横幅w=4(mm)、フレーム周期T=1/30(秒)程度になる。
【0063】
次に、本実施形態に係るナビゲーション装置における具体的な画像処理に関し、図11及び図12を参照して説明する。図11は、走行中の車両が道路端に近接するのを防止するための処理を示すフローチャートであり、図12は、複数車線の道路を走行中の車両が設定経路に対し適正な車線を走行させるための処理を示すフローチャートである。なお、図11及び図12は、主に制御部11の制御に従って行われる処理である。
【0064】
図11に示す処理が開始されると、上述のような画像処理部18の処理により、両側の壁面までの距離DL、DRが求められ、これに基づき数9に従って道幅RWが算出され、更に数10に従って左右の壁面に対する余裕度ML、MRが算出される(ステップS11)。そして、ステップS11にて算出された道幅RWに対応する道幅データは、地図データと関連づけられて道幅データ記憶部13に書き込まれる(ステップS12)。このとき、予め設定された道路上の所定のポイントにおいて、道幅データの書き込みを行うようにしてもよい。
【0065】
次いで、ステップS11において得られた余裕度ML、MRに基づいて、走行中の車両が道路端に寄り過ぎているか否かが判断される(ステップS13)。すなわち、基準となる所定の値を設定しておき、余裕度ML又はMRがこの所定の値より小さくなるとき、車両が道路端に寄り過ぎであると判断すればよい。
【0066】
ステップS13の判断結果が「YES」である場合、車両が道路端に寄り過ぎであることをドライバーに警告する(ステップS14)。例えば、道路端に寄り過ぎである旨を示す所定のメッセージを、スピーカ17から音声として出力すればよい。あるいは、同様のメッセージ又は表示記号等をディスプレイ16に表示してもよい。
【0067】
ステップS13の判断結果が「NO」である場合、あるいはステップS14を終えると、車両が走行中であるか否かを判断する(ステップS15)。車両が走行中でない場合(ステップS15;NO)、画像処理を行う必要がないので処理を終える。一方、車両がまだ走行中である場合(ステップS15;YES)、ステップS11〜ステップS15の処理を繰り返す。
【0068】
ナビゲーション装置において、以上のステップS11〜ステップS15の処理を行うことにより、常に正確な道幅RWをリアルタイムに求めることができる。そして、道路左右の壁面までの距離DL、DRを監視し、走行中の車両が道路端に寄り過ぎた時に、つまり、車両が道路端に近接し過ぎて余裕がない状態を検知したときに、ドライバーに警告を行うようにしたので、ドライバーの運転を補助して走行中の安全を確保することができる。また、道幅データを道幅データ記憶部13に適宜に書き込むようにしたので、後に同じ道路を走行する場合、有効に道幅データを活用することが可能となる。
【0069】
次に、図12に示す処理は、ナビゲーション装置に所望の目的地が設定され、経路が判断される状況下にて行われる。まず、ステップS11と同様にして、両側の壁面までの距離DL、DRが求められ、更に道幅RWが算出される(ステップS21)。
【0070】
そして、地図データ記憶部12の地図データに含まれる走行中の車線に対する車線情報を読み出す(ステップS22)。この車線情報は、走行中の道路が何車線であるを示す情報であるため、車線情報に基づき走行中の道路が複数車線であるか否かを判断する(ステップS23)。
【0071】
ステップS23の判断結果が「YES」である場合、ステップS21の判断結果に基づいて、複数車線のうち現在どの車線を走行中であるかを判定する(ステップS24)。この判定は、ステップS11にて求めた車両の両側の壁面までの距離DLとDRとの比に基づいて行うことができる。
【0072】
続いて、ステップS24で判定された車線が、目的地に達する経路に対応して適正な車線であるか否かを判断する(ステップS25)。すなわち、例えば3車線の道路を走行している場合を例にとると、一般的には前方で右折するときは右側の車線が適正となり、前方で左折するときは左側の車線が適正となり、そのまま直進するときは何れの車線であってもよいことになる。あるいは予め左折、右折時の適正車線の情報を設定しておいてもよい。
【0073】
ステップS25の判定の結果、車両が適正な車線を走行している場合は(ステップS25;YES)処理を終える。一方、車両が適正ではない車線を走行している場合は(ステップS25;NO)、ドライバーに車線変更の案内を指示する(ステップS26)。例えば、右折ポイントの手前で左側の車線を走行している場合、もう2車線右に移動することをドライバーに促す旨のメッセージを、スピーカ17から音声として出力し、あるいはディスプレイ16に表示すればよい。
【0074】
ナビゲーション装置において、以上のステップS21〜ステップS26の処理を行うことにより、複数車線の道路において車両が位置する車線をリアルタイムに判定することができる。そして、右折や左折等を行うために適正な車線に位置しない場合のみ、ドライバーに車線変更の案内を行うようにしたので、必要な場合のみ案内が行われ、既に適正な車線を走行している場合は、不要な案内が行われずに済む。そのため、利便性が高く、ドライバーにとって一層快適なナビゲーションが実現可能となる。
【0075】
なお、図12の例では、車両が適正ではない車線を走行しているときにのみ車線変更の案内を指示する場合、すなわち、適正な車線を走行しているときに車線変更の案内を指示しない場合を説明したが、これに限られず、車両が適正な走行しているとき、何らかの案内を行うようにしてもよい。例えば、適正な車線を走行中に、「このままの車線を維持して下さい」などの案内を音声等により出力してもよい。これにより、運転中のドライバーに適正な車線を走行していることを把握させて安心感を与えることができる。
【0076】
ここで、本実施形態におけるCCDカメラ19の校正方法について説明する。上述したように、良好な精度で画像処理を行うためにCCDカメラ19の校正が必要となる。特にCCDカメラ19の撮像方向がずれると、道幅RW等を正確に求められなくなる。従って、CCDカメラ19の取付け時に撮像方向や取付け高さHを計測し、これらの値を設定しておくことにより校正を行う。あるいは、カメラ取付け時だけではなく、CCDカメラ19を撮像に用いつつ、その画像に基づき随時校正を行ってもよい。この場合、校正すべき各パラメータを統計的に求める必要がある。
【0077】
また、CCDカメラ19により撮像された画像中の移動ベクトルVを、撮像方向の校正に利用することができる。すなわち、移動ベクトルVを画像の広い範囲にわたって求めると、その方向は消失点に向かう。移動ベクトルVの誤差等を考慮して平均化することにより、消失点を特定して、対応する画素位置を決定すれば、撮像方向を校正することができる。
【0078】
以上、実施形態に基づき本発明を説明したが、本発明は上記実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【0079】
以上説明したように、上記実施形態に係るナビゲーション装置によれば、車両前方を撮像して、撮像された画像中の物体の時間tからt+Δtの動きを示す移動ベクトルを車両の走行中にCCDカメラ19にて得られる画像を比較することによって求め、当該検出された移動ベクトルに基づいて、走行中の道路の道路端までの余裕度を判定し、この判定結果に基づいて、ドライバーに告知させる(例えば、判定された余裕度が所定の基準値より小さい場合、車両が道路端に近接したことを告知手段に告知させる)ようにしたので、ドライバーに対し安全走行を確保するための警告や案内を行うことができる。更に、上記移動ベクトルの検出結果に基づいてCCDカメラ19の撮像方向を校正(例えば、消失点を定めることにより撮像方向を校正)するようにしたので、CCDカメラ19の取付け状態のばらつきを考慮した画像処理が行われると共に、当該構成に移動ベクトルを利用すればよいため、簡易な校正方法を提供することができる。
【0080】
なお、走行中の道路の道路端は、CCDカメラ19より得られる画像中に設けた基準水平ライン上の移動ベクトルの空間的な分布を検出し、当該分布を構成する各移動ベクトルの変化量より基準水平ライン上の左右の道路端に対応する変曲点を特定し、この変曲点に基づいて求められる。つまり、画像中に設定された基準水平ラインにおける移動ベクトルは、道路面及び道路端の構造物にそれぞれ対応する画素部分では特性が異なるため、移動ベクトルの変曲点を求めることにより道路端を判別でき、道路端までの距離が算出できる。
【0081】
また、上記ナビゲーション装置によれば、上記検出された移動ベクトルに基づいて、走行中の道路の道幅を算出し、当該算出された道幅に対応する道幅データを地図データと関連付けて記憶するようにしたので、車両が走行した道路の道幅データを保持し、その後、再び同じ道路を通ったときに活用できるので、ナビゲーション装置の機能を支援することができる。
【0082】
また、上記ナビゲーション装置によれば、上記検出された移動ベクトルと、上記地図データに含まれる車線数の情報と、算出された道路端までの道幅と、目的地までの経路とに基づいて、走行すべき適切(適正)な車線を告知するようにしたので、最適経路に対応する車線を走行させるためドライバーの注意を喚起することができ、快適なナビゲーション機能を実現できる。
【0083】
以上のように、簡単な構成で、走行車両の安全確保や道幅データの取得など、車両の安全性と利便性を高めることが可能となり、本願をナビゲーション装置に適用すれば、車両の道路端近接時のドライバーへの告知、車線判定に基づく車線変更の告知、道幅データの記憶などにより、ナビゲーション装置を支援して機能向上を図ることが可能となる。
【図面の簡単な説明】
【0084】
【図1】本実施形態に係るナビゲーション装置の概略構成を示す図である。
【図2】ナビゲーション装置の画像処理部の構成を示す図である。
【図3】CCDカメラの車両への設置状態を示す図であり、(a)は車両上方から見た設置状態、(b)は車両側方の設置状態をそれぞれ示す図である。
【図4】CCDカメラにより撮像された画像をピンホールカメラのモデルで表した図である。
【図5】空間座標系と画像データのピクセル座標系の関係を表した図である。
【図6】移動ベクトルを求める際に画像平面内に定義する参照ブロックについて説明する図である。
【図7】画像平面内の所定の参照ブロックに対し、サーチ範囲内に比較ブロックを定義して、移動ベクトルを求める方法を説明する図である。
【図8】本実施形態に係る画像処理において、本発明のCCDカメラから撮像した画像の一例を示す図である。
【図9】画像内の基準水平ラインにおけるピクセル画像座標系と空間座標系の関係を説明する図である。
【図10】移動ベクトルに基づき車両から左右道路端の壁面までの距離等を算出する方法を示すフローチャートである。
【図11】本実施形態に係るナビゲーション装置において、道幅検出に対応して、走行中の車両が道路端に近接するのを防止するための処理を示すフローチャートである。
【図12】本実施形態に係るナビゲーション装置において、道幅検出に対応して、複数車線の道路を走行中の車両が設定経路に対し適正な車線を走行させるための処理を示すフローチャートである。
【符号の説明】
【0085】
11…制御部
12…地図データ記憶部
13…道幅データ記憶部
14…センサ部
15…現在位置検出部
16…ディスプレイ
17…スピーカ
18…画像処理部
19…CCDカメラ
21…A/Dコンバータ
22…第1画像メモリ
23…第2画像メモリ
24…移動ベクトル検出部
25…移動ベクトル処理部
V…移動ベクトル
L…基準水平ライン
PL、PR…変曲点
【技術分野】
【0001】
本発明は、走行中の車両において、撮像手段からの画像に基づいて道路端を求めるナビゲーション装置等の技術分野に属する。
【背景技術】
【0002】
従来から、移動体としての車両の現在位置を検出し、周辺の道路地図と共に検出された現在位置を表示画面に表示して経路案内を行うナビゲーション装置が広く用いられている。この種のナビゲーション装置においては、地図データが記憶された大容量の記録媒体を備えており、表示画面上の表示データを生成するために用いられる。記録媒体上の地図データには、道路形状に関するデータや表示用の各種データなどに加え、これに付随する道幅情報が含まれる。よって、走行中の道路に対応する道幅情報を読み出して、現在走行している道路の道幅を把握することができる。
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上記従来のナビゲーション装置では、地図データに含まれる道幅情報は正確な道幅を示すものではなく、例えば5.5m〜8mのように、その道路の概略の道幅を示すに過ぎなかった。よって、道路のポイントに対応したきめ細かく正確な道幅情報は取得することができなかった。
【0004】
また、単に道路の道幅を知るだけではなく、道路端までの距離をリアルタイムに求め、これを車両の安全走行に役立てることへのニーズも強くなっている。一方、複数台のカメラを設置して三角測量の原理を応用すれば、立体的に距離を計測可能であり、道路端までの距離を求めることができるが、装置の構成が複雑となってコストアップの要因となる。
【0005】
そこで、本発明はこのような問題に鑑みなされたものであり、簡単な構成で、走行中の車両から撮像した画像に基づき壁面等の道路端までの距離及び道幅を求めることができる画像処理装置、及び、画像処理の結果に応じて、ドライバーに対し安全走行を確保するための警告や案内を行うことが可能なナビゲーション装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、請求項1に記載のナビゲーション装置は、車両前方を撮像して画像を出力する撮像手段と、前記画像中の物体の時間tからt+Δtの動きを示す移動ベクトルを前記車両の走行中に前記撮像手段にて得られる画像を比較することによって求める移動ベクトル検出手段と、前記検出された移動ベクトルに基づいて、前記走行中の道路の道路端までの余裕度を判定する余裕度判定手段と、前記余裕度判定手段の判定結果に基づいて、告知手段を制御する制御手段と、を備え、前記移動ベクトル検出手段の検出結果に基づいて前記撮像手段の撮像方向を校正する校正手段を有することを特徴とする。
【発明を実施するための最良の形態】
【0007】
以下、本発明の好適な実施の形態を図面に基づいて説明する。以下の実施の形態においては、本発明を車両に搭載されるナビゲーション装置に適用した場合について説明する。
【0008】
図1は、本実施形態に係るナビゲーション装置の概略構成を示す図である。図1に示すナビゲーション装置は、制御部11と、地図データ記憶部12と、道幅データ記憶部13と、センサ部14と、現在位置検出部15と、ディスプレイ16と、スピーカ17と、画像処理部18と、CCDカメラ19とを含んで構成されている。
【0009】
以上の構成において、制御部11は、ナビゲーション装置全体の動作を制御する。制御部11はCPU等からなり、図示しないROMに格納される制御プログラムを読み出して実行し、ナビゲーション装置の各構成要素に制御信号を送出すると共に、データを入出力する。
【0010】
地図データ記憶部12は、地図データを格納する記憶容量の大きなメモリであり、例えばCD−ROMやDVD−ROMが用いられる。地図データ記憶部12に格納される地図データは、道路形状データ、名称データ、背景データなどを含んで構成される。
【0011】
道幅データ記憶部13は、本発明に係る画像処理に伴って得られた車両走行中の道幅データを更新可能に記録するメモリである。上述の地図データ記憶部12の地図データにも簡易な道幅情報が含まれるが、道幅データ記憶部13に記憶される道幅データは更に詳細なデータであり、道路の位置に応じて変化する道幅を正確に求めたデータである。なお、道幅データの生成方法については後述する。
【0012】
センサ部14は、車両の現在位置を検出するために必要な各種センサを含んでいる。具体的には、車両の速度を検出する車速センサや、車両の方位変化量を検出する方位センサや、GPS(Global Positioning System)衛星からの電波を受信するGPS受信部などを含んで構成される。
【0013】
現在位置検出部15は、センサ部14からの出力信号に基づいて、車両の現在位置を算出し、現在位置データを出力する。なお、現在位置データは、制御部11によって前述の地図データと照合されて、マップマッチング処理等により補正される。
【0014】
ディスプレイ16には、制御部11の指示の下、地図データが種々の態様で表示されると共に、これに重畳して車両の現在位置がカーマークとして表示される。このディスプレイ16は、例えばCRT、液晶表示素子などから構成される。また、スピーカ17からは、車両の経路に沿った誘導情報が音声により出力されると共に、本発明に係る画像処理に関連して後述の案内音声が出力される。
【0015】
画像処理部18は、車両に設置されるCCDカメラ19からの画像信号を解析して、本実施形態に係る画像処理を行う手段である。ここで、図2を用いて、画像処理部18の構成及び動作について説明する。
【0016】
図2に示すように、画像処理部18は、A/Dコンバータ21と、第1画像メモリ22と、第2画像メモリ23と、移動ベクトル検出部24と、移動ベクトル処理部25を含んで構成されている。また、画像制御部18は、制御部11からの制御信号に従って動作する。
【0017】
図2において、A/Dコンバータ21は、CCDカメラ19によって撮像された画像に基づくアナログ画像信号をディジタル画像信号に変換する。通常、A/Dコンバータ21から出力されるディジタル画像信号は、所定のフレーム周期ごとに1つのフレーム画像データを構成し、連続する複数のフレーム画像データからなる。
【0018】
第1画像メモリ22及び第2画像メモリ23は、それぞれA/Dコンバータ21から出力されるフレーム画像データを格納する。第1画像メモリ22は最新のフレーム画像データを格納し、第2画像メモリ23は1つ前のフレーム画像データを格納する。よって、画像処理部18では、常に最新の2フレーム分の画像データが保持されており、これらを用いて後述の処理が行われる。
【0019】
移動ベクトル検出部24は、第1画像メモリ22及び第2画像メモリ23に格納されるフレーム画像データに基づいて、画像中の各領域ごとの移動ベクトルを検出する。この際、センサ部14から出力された車速データを用いる。
【0020】
また、移動ベクトル処理部25は、移動ベクトル検出部24により検出された移動ベクトルに基づいて、走行道路の前方側における壁面等の道路端までの水平方向の距離及びこれに基づく道幅を求め、道幅データ等として出力する。
【0021】
なお、移動ベクトル検出部24と移動ベクトル処理部25における処理の詳細については後述する。
【0022】
図1に戻って、本発明の撮像手段としてのCCDカメラ19は、車両の所定位置に設置され、車両の前方方向を撮像し、画像信号を出力する。ここで図3に、CCDカメラ19の車両への設置状態を示す。
【0023】
図3(a)は、車両上方から見たCCDカメラ19の設置状態を示す図である。図3(a)に示すように、CCDカメラ19は車両室内上部の中央付近に取付けられている。CCDカメラ19は、車両前方を真っ直ぐ向いて撮像可能な位置に固定される。
【0024】
また、図3(b)は、CCDカメラ19に関し、車両側方からから見た設置状態を撮像範囲と共に示す図である。図3(b)に示すように、CCDカメラ19は車両前方に向かって画角θの範囲を撮像する。通常、撮像された画像の中心を道路面に対し水平方向に一致させる。また、CCDカメラ19は、道路面からの高さHの位置に取付けられる。例えば、H=1.5(m)程度になる。
【0025】
次に、本実施形態に係る画像処理の原理について、図4〜図9を参照して説明する。
【0026】
図4は、前述のCCDカメラ19により撮像された画像をピンホールカメラのモデルで表した図である。図4においては、CCDカメラ19の受光素子部に対応する画像平面P0と、レンズ部に対応する焦点面Fとが焦点距離fを隔てて平行に配置されている。焦点面Fのレンズ中心Cがピンホールに対応し、このレンズ中心Cを中心に空間座標系(X,Y,Z)を考える。一方、画像平面P0では、空間座標(0,0,−f)を画像中心cとして、カメラ座標系(x,y)を考える。
【0027】
ここで、空間座標系の点M(Xm,Ym,Zm)を考える。この点Mは、例えば図3(b)の視野内にある道路面や壁面上の所定の位置に対応させることができる。この点Mに対する中心射影を考えると、点Mから焦点面Fのレンズ中心Cを通って画像平面P0までが直線で結ばれ、カメラ座標系の点m(xm,ym)に射影される。このとき、点M(Xm,Ym,Zm)と射影された点m(xm,ym)の関係は次式で表される。
[数1]
xm = f・Xm/Zm
ym = f・Ym/Zm
【0028】
次に図5は、図4に対応して、空間座標系(X,Y,Z)と画像データのピクセル座標系(u,v)の関係を表した図である。図5においては簡単のため、図4の画像平面P0を焦点面Fの前方側に配置させると共に、カメラ座標系(x,y)のx軸、y軸をそれぞれ反転させてu軸、v軸とすることにより、ピクセル画像系(u,v)としたものである。図4の配置を図5の配置に置き換えても、互いに等価であるため、同様の関係が成り立つ。
【0029】
図5において、ピクセル画像系の画像平P1面は、水平方向の画素数Nwと垂直方向の画素数Nhの表示画像に対応しており、画像平面P1には全部でNw×Nhの画素が含まれる。一方、この画像平面P1は、サイズが横幅w、高さhとなるCCDカメラ19の受光領域に一致する。そして、図4と同様に空間座標系の点M(X,Y,Z)を考えると、図5に示すように、画像平面P1の点m(u,v)を通って焦点面Fのレンズ中心Cまで直線で結ばれる。
【0030】
ここで、図4と同様に、点mに対する中心射影を考えると、数1に対応して、点M(X,Y,Z)と射影された点m(u,v)の関係は次式で表される。
[数2]
u = (f・X/Z)・Nw/w
v = (f・Y/Z)・Nh/h
【0031】
すなわち、数2は、点m(u,v)の画像平面P1における画素位置を表している。数2において、uが水平方向の画素位置に対応し、vが垂直方向の画素位置に対応している。
【0032】
本実施形態では、走行中の車両から撮像された画像を処理するので、画像平面P1内の物体の動きを想定する必要がある。そのため、画像平面P1におけるオプティカルフロー、すなわち移動ベクトルV(u,v)を求める必要がある。3次元空間の同一点の明るさIが一定に保たれる場合、次の時空間微分方程式が成り立つ。
[数3]
dI/dt = Ix・u+Iy・v+It = 0
ただし、それぞれ画像平面P1内において、Ixが水平方向の偏微分、Iyが垂直方向の偏微分、Itが時間軸方向の偏微分、u、vは上述の移動ベクトルVの水平方向、垂直方向の成分である。
【0033】
次に、図6及び図7を用いて移動ベクトルVを求める方法について説明する。図6に示すように、時刻tにおける画像平面P1内に参照ブロックRを定義する。この参照ブロックRは、左上の画素prを起点として、u軸にm画素、v軸にn画素の範囲の矩形領域であり、全部でm×n個の画素を含んでいる。そして、画像平面P1を複数の参照ブロックRに分割し、各々の参照ブロックRごとに移動ベクトルVを求める。図6の例では、m=8、n=8となる参照ブロックRを示している。
【0034】
図7は、画像平面P1内の所定の参照ブロックRに対する移動ベクトルVの求め方を説明する図である。図7は、図6の時刻tからΔtが経過した時刻t+Δtにおける画像平面P1に対応する。そして、センサ部14からの車速データ等に基づいて、画像平面P1内の所定の領域を予めサーチ範囲Sとして定めておく。サーチ範囲Sは、u軸にM画素、v軸にN画素となる矩形領域であって、通常は、M、Nがm、nに比べると十分大きくなる。
【0035】
そして、サーチ範囲Sに対し、参照ブロックRと同サイズの比較ブロックCを所定の位置に定義する。サーチ範囲Sは参照ブロックRに比べサイズが十分大きいため、比較ブロックCの位置をサーチ範囲S内で少しづつ動かす必要がある。図7では、比較ブロックCは参照ブロックRと同様にm×nのサイズであり、参照ブロックの左上の画素prに対応する比較ブロックCの左上の画素pcを示している。最初はサーチ範囲Sの左上の画素を比較ブロックCの画素pcに設定し、その後はサーチ範囲Sの中で、u軸方向又はv軸方向に画素pcの位置を1画素づつ動かして、サーチ範囲S内に定義可能な全ての比較ブロックCについて後述の演算を行う。
【0036】
次いで、図6の時刻tにおける参照ブロックRと、図7の時刻t+Δtにおける比較ブロックCの間で相関値を求める。ここで、画素の集合である画像データでは、m×n個の全ての画素に濃度値を対応させているので、参照ブロックRと比較ブロックCの対応する画素ごとの濃度値の差分を求める。この濃度値の各画素ごとの差分に対し、m×n個の画素についての和をとれば、相関値を計算することができる。
【0037】
そして、参照ブロックRに対し、サーチ範囲Sの中の全ての比較ブロックCとの間の相関値を求め、最小の相関値を与える比較ブロックCを探索する。例えば、図7に示す比較ブロックCが最小の相関値を与えるとする。
【0038】
この場合は、図7に示すように、画像平面P1において、点線で示した時刻tにおける参照ブロックRから時刻t+Δtにおける比較ブロックCに向かうベクトルを移動ベクトルVとして決定することができる。
【0039】
図7では1つの移動ベクトルVのみ示したが、実際には移動ベクトルVを、画像平面P1に定義可能な全ての参照ブロックRについて求める。これにより移動ベクトルVの空間的な分布を求める。そして、この移動ベクトルVの空間的な分布に基づいて後述の処理が行われる。
【0040】
次に、図8〜図9を用いて、走行中の車両から撮像された画像における移動ベクトルの求め方、及び、車両から道路端までの距離、走行道路の道幅を算出する方法について説明する。
【0041】
図8は、CCDカメラ19から撮像した画像の一例を示す図である。図8では簡単のため、一定幅で直進する道路において両側の道路端に一定の高さの壁面があり、車両はセンターラインから所定距離だけ左側を走行している場合の画像を示している。また、道路面は、左側壁面と境界線BLで接し、右側壁面と境界線BRで接している。
【0042】
図8に示すように、画像の中心をピクセル画像座標系(u,v)における原点(0,0)に対応させる。すなわち、画像の撮像方向が道路面及び壁面に対し平行になり、境界線BL、BRなどが交わる消失点が、原点(0,0)に合致する。また、画像の全体は、左上の点(−Nw/2,Nh/2)と、右上の点(Nw/2,Nh/2)と、左下の点(−Nw/2,−Nh/2)と、右下の点(Nw/2,−Nh/2)の4画素を頂点とする矩形領域である。後述の画像処理を行うに際して、CCDカメラ19の撮像方向や取り付け高さHを予め正確に校正しておく必要がある。ただし、原点(0,0)と消失点が一致しない場合でも、校正により消失点の位置を正確に特定できれば、本発明に係る画像処理を行うことができる。
【0043】
図8において、画像中にv=VRで表される基準水平ラインLを設定する。基準水平ラインLは、道路面と左右両側の壁面を横切る位置、すなわち道路端と交差する位置に設定する必要があり、VRは負の値となる。例えば車両から10m前方の道路面上の相対位置に対応する画像位置に基準水平ラインLを設定すればよい。そして、図8において、時刻tから時刻t+Δtとなる間の基準水平ラインL上の移動ベクトルVを求める。Δtが経過するまで車両が一定距離だけ前方に進むと、基準水平ラインL上の撮像対象物はその分だけ車両に近づくので、基準水平ラインL上の移動ベクトルVのv成分は負の値となる。
【0044】
基準水平ラインLを設定すべき車両との相対位置は、10mに限られず適切な距離に設定できる。ただし、車両に近づき過ぎると、左右の壁面を横切らない配置となって不適切となる。また、車両から離れ過ぎると、道路面と壁面を横切るとしても距離が大きくなり過ぎて、道路のカーブ等の形状変化による誤差が生じやすくなる。そのため、道路面と壁面に十分重なる範囲で車両にできるだけ近距離の相対位置に設定することが望ましい。
【0045】
ここで、速度v0(m/秒)で走行している車両において、フレーム周期T(秒)でCCDカメラ19による撮像を行うとする。この場合、1フレーム間の車両の移動距離dは、
[数4]
d=v0・T(m)
と表すことができる。一方、車両の移動に伴い基準水平ラインLの移動ベクトルVは、消失点である原点(0,0)から放射状に向かうベクトルとなる。そして、移動ベクトルVの大きさは、基準水平ラインL上の撮像対象物と車両との距離が近いほど大きくなるように変化する。
【0046】
このとき、基準水平ラインLにおける移動ベクトルVの分布をとると、道路面と左右の壁面とでは異なるパターンに従って変化する。よって、移動ベクトルVのパターン変化を分析して、基準水平ラインLと境界線BL、BRとの交点の位置をそれぞれ求め、これに基づき車両の位置から左右の道路端までの距離DL、DRを算出し、更に走行道路の道幅RWを算出する。
【0047】
ここで、図8の基準水平ラインLにおけるピクセル画像座標系(u,v)と実際の空間座標系(X,Y,Z)の関係について、図9を参照して説明する。図8の撮像対象物の奥行きを表すZは、数2に基づき次式で表される。
[数5]
Z = X・f・Nw/(u・w)
【0048】
図9(a)は、画像横軸のuに対する撮像位置から見た奥行きZの変化を示す図である。図9(a)において、変曲点PLは基準水平ラインLと境界線BLの交点に対応し、変曲点PRは基準水平ラインLと境界線BRの交点に対応する。図9(a)に示すように、道路面ではZが一定値となるのに対し、壁面では外側に行くほどZが小さくなっていく。すなわち、数5からわかるように、道路面では基準水平ラインLが水平面にあるため、uとXが比例し、Zは一定値となる。一方、左右の壁面では基準水平ラインLが垂直面にあるため、Xが固定値となって、Zはuに反比例して変化する。
【0049】
次に、図8の基準水平ラインLにおける高さYは、数2及び数5に基づき次式で表される。
[数6]
Y = Z・v・h/(f・Nh)
【0050】
図9(b)は、画像横軸のuに対する高さYの変化を示す図である。図9(b)においては、図9(a)と同様、変曲点PL及び変曲点PRの間の道路面では、Yが一定値となる。一方、壁面では外側に行くほどYが大きくなっていく。数6においてuが負の値となるので、図9(a)の場合と逆の変化になっている。
【0051】
次に、図8の状態から車両がΔZ(m)進んだ場合を考える。このとき、図8の基準水平ラインLの垂直位置がΔv(ピクセル)動くとすると、ΔvとΔZの関係は、数6に基づき次式で表される。
[数7]
Δv = Y・f・Nh/((Z−ΔZ)・h)−Y・f・Nh/(Z・h)
【0052】
図9(c)は、画像横軸のuに対し、車両がΔZ(m)進んだ時のΔvの変化を示す図である。図9(c)においては、図9(a)、(b)と同様、変曲点PL及び変曲点PRの間の道路面では、Δvが一定値となる。一方、壁面では外側に行くほどΔvが小さくなっていく。従って、数7に示されるΔvの値に基づいて、後述の演算が行われる。
【0053】
なお、上述の例では道路端全体に壁面が存在する場合を説明したが、例えばガードレールのように部分的な壁面となる場であっても、移動ベクトルVが道路面とそれ以外の部分で変化する場合には、距離DL、DR、道幅RWを算出することができる。
【0054】
図10は、移動ベクトルVを数7に基づき評価して、車両から左右の道路端の壁面までの距離DL、DR等を算出する方法を示すフローチャートである。なお、以下の処理を行うに際しては、予めCCDカメラ19の撮像方向と取付け高さHを校正しておくものとする。
【0055】
図10の処理において、ステップS1では、上述のように、基準水平ラインLにおける移動ベクトルVを算出する。すなわち、連続する2つのフレーム画像データの画像を比較して、フレーム周期Tの間の基準水平ラインLにおける移動ベクトルVを算出する。
【0056】
ステップS2では、移動ベクトルVのv成分を評価して、数7に基づき基準水平ラインL上の左側の変曲点PLと右側の変曲点PRを抽出する。このとき、変曲点PLのu方向位置ulと変曲点PRのu方向位置urが得られるとする。
【0057】
ステップS3では、抽出された変曲点PL、PRのそれぞれのu方向位置ul、urを空間座標のX方向位置に変換する。具体的には、数2に基づく次式を計算すればよい。
[数8]
X = u・Z・w/(Nw・f)
ただし、数8のZは、Z=−H・f・Nh/(v・h)である。数8に示されるXを、左右の変曲点PL、PRについて計算する。
【0058】
ステップS4では、左側壁面までの距離DL、右側壁面までの距離DR、道幅RWを求める。すなわち、ステップS4にて計算結果に基づいて、左側の変曲点PLのX方向位置が距離DLに対応し、右側の変曲点PRのX方向位置が距離DRに対応する。これらを加えることにより道幅RWを、
[数9]
RW = DL+DR
と求めることができる。なお、距離DL、DRの相対的関係に基づいて車両位置を知ることができる。
【0059】
ステップS5では、カメラが車両の水平方向の中心に設置されていると考えて、左側壁面に対する余裕度MLと右側壁面に対する余裕度MRを次式により求める。
[数10]
ML = DL−W/2
MR = DR−W/2
ただし、Wは車両の横幅を表している。数10に示す左右の余裕度ML、MRは、後述のようにドライバーに警告を与える際の判断基準となる。
【0060】
以上のステップS1〜ステップS5の処理は、移動ベクトルVのv成分を評価することにより行うものであるが、移動ベクトルVのu成分も、同様に変曲点PL、PRで特性が変わるので、これを評価して上述の処理を行うようにしてもよい。
【0061】
なお、算出された道幅RWに対応する道幅データを地図データと関連づけて道幅データ記憶部13に更新可能に記憶すれば、後述の各種の処理に利用することができる。
【0062】
更に、上述の画像処理における各数値の具体例としては、焦点距離f=4(mm)、水平方向の画素数Nw=320(ピクセル)、受光領域の横幅w=4(mm)、フレーム周期T=1/30(秒)程度になる。
【0063】
次に、本実施形態に係るナビゲーション装置における具体的な画像処理に関し、図11及び図12を参照して説明する。図11は、走行中の車両が道路端に近接するのを防止するための処理を示すフローチャートであり、図12は、複数車線の道路を走行中の車両が設定経路に対し適正な車線を走行させるための処理を示すフローチャートである。なお、図11及び図12は、主に制御部11の制御に従って行われる処理である。
【0064】
図11に示す処理が開始されると、上述のような画像処理部18の処理により、両側の壁面までの距離DL、DRが求められ、これに基づき数9に従って道幅RWが算出され、更に数10に従って左右の壁面に対する余裕度ML、MRが算出される(ステップS11)。そして、ステップS11にて算出された道幅RWに対応する道幅データは、地図データと関連づけられて道幅データ記憶部13に書き込まれる(ステップS12)。このとき、予め設定された道路上の所定のポイントにおいて、道幅データの書き込みを行うようにしてもよい。
【0065】
次いで、ステップS11において得られた余裕度ML、MRに基づいて、走行中の車両が道路端に寄り過ぎているか否かが判断される(ステップS13)。すなわち、基準となる所定の値を設定しておき、余裕度ML又はMRがこの所定の値より小さくなるとき、車両が道路端に寄り過ぎであると判断すればよい。
【0066】
ステップS13の判断結果が「YES」である場合、車両が道路端に寄り過ぎであることをドライバーに警告する(ステップS14)。例えば、道路端に寄り過ぎである旨を示す所定のメッセージを、スピーカ17から音声として出力すればよい。あるいは、同様のメッセージ又は表示記号等をディスプレイ16に表示してもよい。
【0067】
ステップS13の判断結果が「NO」である場合、あるいはステップS14を終えると、車両が走行中であるか否かを判断する(ステップS15)。車両が走行中でない場合(ステップS15;NO)、画像処理を行う必要がないので処理を終える。一方、車両がまだ走行中である場合(ステップS15;YES)、ステップS11〜ステップS15の処理を繰り返す。
【0068】
ナビゲーション装置において、以上のステップS11〜ステップS15の処理を行うことにより、常に正確な道幅RWをリアルタイムに求めることができる。そして、道路左右の壁面までの距離DL、DRを監視し、走行中の車両が道路端に寄り過ぎた時に、つまり、車両が道路端に近接し過ぎて余裕がない状態を検知したときに、ドライバーに警告を行うようにしたので、ドライバーの運転を補助して走行中の安全を確保することができる。また、道幅データを道幅データ記憶部13に適宜に書き込むようにしたので、後に同じ道路を走行する場合、有効に道幅データを活用することが可能となる。
【0069】
次に、図12に示す処理は、ナビゲーション装置に所望の目的地が設定され、経路が判断される状況下にて行われる。まず、ステップS11と同様にして、両側の壁面までの距離DL、DRが求められ、更に道幅RWが算出される(ステップS21)。
【0070】
そして、地図データ記憶部12の地図データに含まれる走行中の車線に対する車線情報を読み出す(ステップS22)。この車線情報は、走行中の道路が何車線であるを示す情報であるため、車線情報に基づき走行中の道路が複数車線であるか否かを判断する(ステップS23)。
【0071】
ステップS23の判断結果が「YES」である場合、ステップS21の判断結果に基づいて、複数車線のうち現在どの車線を走行中であるかを判定する(ステップS24)。この判定は、ステップS11にて求めた車両の両側の壁面までの距離DLとDRとの比に基づいて行うことができる。
【0072】
続いて、ステップS24で判定された車線が、目的地に達する経路に対応して適正な車線であるか否かを判断する(ステップS25)。すなわち、例えば3車線の道路を走行している場合を例にとると、一般的には前方で右折するときは右側の車線が適正となり、前方で左折するときは左側の車線が適正となり、そのまま直進するときは何れの車線であってもよいことになる。あるいは予め左折、右折時の適正車線の情報を設定しておいてもよい。
【0073】
ステップS25の判定の結果、車両が適正な車線を走行している場合は(ステップS25;YES)処理を終える。一方、車両が適正ではない車線を走行している場合は(ステップS25;NO)、ドライバーに車線変更の案内を指示する(ステップS26)。例えば、右折ポイントの手前で左側の車線を走行している場合、もう2車線右に移動することをドライバーに促す旨のメッセージを、スピーカ17から音声として出力し、あるいはディスプレイ16に表示すればよい。
【0074】
ナビゲーション装置において、以上のステップS21〜ステップS26の処理を行うことにより、複数車線の道路において車両が位置する車線をリアルタイムに判定することができる。そして、右折や左折等を行うために適正な車線に位置しない場合のみ、ドライバーに車線変更の案内を行うようにしたので、必要な場合のみ案内が行われ、既に適正な車線を走行している場合は、不要な案内が行われずに済む。そのため、利便性が高く、ドライバーにとって一層快適なナビゲーションが実現可能となる。
【0075】
なお、図12の例では、車両が適正ではない車線を走行しているときにのみ車線変更の案内を指示する場合、すなわち、適正な車線を走行しているときに車線変更の案内を指示しない場合を説明したが、これに限られず、車両が適正な走行しているとき、何らかの案内を行うようにしてもよい。例えば、適正な車線を走行中に、「このままの車線を維持して下さい」などの案内を音声等により出力してもよい。これにより、運転中のドライバーに適正な車線を走行していることを把握させて安心感を与えることができる。
【0076】
ここで、本実施形態におけるCCDカメラ19の校正方法について説明する。上述したように、良好な精度で画像処理を行うためにCCDカメラ19の校正が必要となる。特にCCDカメラ19の撮像方向がずれると、道幅RW等を正確に求められなくなる。従って、CCDカメラ19の取付け時に撮像方向や取付け高さHを計測し、これらの値を設定しておくことにより校正を行う。あるいは、カメラ取付け時だけではなく、CCDカメラ19を撮像に用いつつ、その画像に基づき随時校正を行ってもよい。この場合、校正すべき各パラメータを統計的に求める必要がある。
【0077】
また、CCDカメラ19により撮像された画像中の移動ベクトルVを、撮像方向の校正に利用することができる。すなわち、移動ベクトルVを画像の広い範囲にわたって求めると、その方向は消失点に向かう。移動ベクトルVの誤差等を考慮して平均化することにより、消失点を特定して、対応する画素位置を決定すれば、撮像方向を校正することができる。
【0078】
以上、実施形態に基づき本発明を説明したが、本発明は上記実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【0079】
以上説明したように、上記実施形態に係るナビゲーション装置によれば、車両前方を撮像して、撮像された画像中の物体の時間tからt+Δtの動きを示す移動ベクトルを車両の走行中にCCDカメラ19にて得られる画像を比較することによって求め、当該検出された移動ベクトルに基づいて、走行中の道路の道路端までの余裕度を判定し、この判定結果に基づいて、ドライバーに告知させる(例えば、判定された余裕度が所定の基準値より小さい場合、車両が道路端に近接したことを告知手段に告知させる)ようにしたので、ドライバーに対し安全走行を確保するための警告や案内を行うことができる。更に、上記移動ベクトルの検出結果に基づいてCCDカメラ19の撮像方向を校正(例えば、消失点を定めることにより撮像方向を校正)するようにしたので、CCDカメラ19の取付け状態のばらつきを考慮した画像処理が行われると共に、当該構成に移動ベクトルを利用すればよいため、簡易な校正方法を提供することができる。
【0080】
なお、走行中の道路の道路端は、CCDカメラ19より得られる画像中に設けた基準水平ライン上の移動ベクトルの空間的な分布を検出し、当該分布を構成する各移動ベクトルの変化量より基準水平ライン上の左右の道路端に対応する変曲点を特定し、この変曲点に基づいて求められる。つまり、画像中に設定された基準水平ラインにおける移動ベクトルは、道路面及び道路端の構造物にそれぞれ対応する画素部分では特性が異なるため、移動ベクトルの変曲点を求めることにより道路端を判別でき、道路端までの距離が算出できる。
【0081】
また、上記ナビゲーション装置によれば、上記検出された移動ベクトルに基づいて、走行中の道路の道幅を算出し、当該算出された道幅に対応する道幅データを地図データと関連付けて記憶するようにしたので、車両が走行した道路の道幅データを保持し、その後、再び同じ道路を通ったときに活用できるので、ナビゲーション装置の機能を支援することができる。
【0082】
また、上記ナビゲーション装置によれば、上記検出された移動ベクトルと、上記地図データに含まれる車線数の情報と、算出された道路端までの道幅と、目的地までの経路とに基づいて、走行すべき適切(適正)な車線を告知するようにしたので、最適経路に対応する車線を走行させるためドライバーの注意を喚起することができ、快適なナビゲーション機能を実現できる。
【0083】
以上のように、簡単な構成で、走行車両の安全確保や道幅データの取得など、車両の安全性と利便性を高めることが可能となり、本願をナビゲーション装置に適用すれば、車両の道路端近接時のドライバーへの告知、車線判定に基づく車線変更の告知、道幅データの記憶などにより、ナビゲーション装置を支援して機能向上を図ることが可能となる。
【図面の簡単な説明】
【0084】
【図1】本実施形態に係るナビゲーション装置の概略構成を示す図である。
【図2】ナビゲーション装置の画像処理部の構成を示す図である。
【図3】CCDカメラの車両への設置状態を示す図であり、(a)は車両上方から見た設置状態、(b)は車両側方の設置状態をそれぞれ示す図である。
【図4】CCDカメラにより撮像された画像をピンホールカメラのモデルで表した図である。
【図5】空間座標系と画像データのピクセル座標系の関係を表した図である。
【図6】移動ベクトルを求める際に画像平面内に定義する参照ブロックについて説明する図である。
【図7】画像平面内の所定の参照ブロックに対し、サーチ範囲内に比較ブロックを定義して、移動ベクトルを求める方法を説明する図である。
【図8】本実施形態に係る画像処理において、本発明のCCDカメラから撮像した画像の一例を示す図である。
【図9】画像内の基準水平ラインにおけるピクセル画像座標系と空間座標系の関係を説明する図である。
【図10】移動ベクトルに基づき車両から左右道路端の壁面までの距離等を算出する方法を示すフローチャートである。
【図11】本実施形態に係るナビゲーション装置において、道幅検出に対応して、走行中の車両が道路端に近接するのを防止するための処理を示すフローチャートである。
【図12】本実施形態に係るナビゲーション装置において、道幅検出に対応して、複数車線の道路を走行中の車両が設定経路に対し適正な車線を走行させるための処理を示すフローチャートである。
【符号の説明】
【0085】
11…制御部
12…地図データ記憶部
13…道幅データ記憶部
14…センサ部
15…現在位置検出部
16…ディスプレイ
17…スピーカ
18…画像処理部
19…CCDカメラ
21…A/Dコンバータ
22…第1画像メモリ
23…第2画像メモリ
24…移動ベクトル検出部
25…移動ベクトル処理部
V…移動ベクトル
L…基準水平ライン
PL、PR…変曲点
【特許請求の範囲】
【請求項1】
車両前方を撮像して画像を出力する撮像手段と、
前記画像中の物体の時間tからt+Δtの動きを示す移動ベクトルを前記車両の走行中に前記撮像手段にて得られる画像を比較することによって求める移動ベクトル検出手段と、
前記検出された移動ベクトルに基づいて、前記走行中の道路の道路端までの余裕度を判定する余裕度判定手段と、
前記余裕度判定手段の判定結果に基づいて、告知手段を制御する制御手段と、
を備え、
前記移動ベクトル検出手段の検出結果に基づいて前記撮像手段の撮像方向を校正する校正手段を有することを特徴とするナビゲーション装置。
【請求項2】
前記検出された移動ベクトルに基づいて、前記走行中の道路の道幅を算出する道幅算出手段と、前記算出された道幅に対応する道幅データを地図データと関連付けて記憶する道幅データ記憶手段とをさらに有することを特徴とする請求項1に記載のナビゲーション装置。
【請求項3】
前記検出された移動ベクトルと、前記地図データに含まれる車線数の情報と、前記算出された道幅と、目的地までの経路とに基づいて、走行すべき適切な車線を告知する車線告知手段をさらに備えたことを特徴とする請求項2に記載のナビゲーション装置。
【請求項4】
前記移動ベクトル検出手段は、比較する前記t+Δtの画像のサーチ範囲を車速データに基づいて設定することを特徴とする請求項1に記載のナビゲーション装置。
【請求項5】
前記移動ベクトル検出手段は、前記撮像手段より得られる画像中に設けた基準水平ライン上の前記移動ベクトルの空間的な分布を検出し、
前記余裕度判定手段は、前記分布を構成する各移動ベクトルの変化量より前記基準水平ライン上の左右の道路端に対応する変曲点を特定し、この変曲点に基づいて前記走行中の道路の道路端までの余裕度を判定することを特徴とする請求項1に記載のナビゲーション装置。
【請求項1】
車両前方を撮像して画像を出力する撮像手段と、
前記画像中の物体の時間tからt+Δtの動きを示す移動ベクトルを前記車両の走行中に前記撮像手段にて得られる画像を比較することによって求める移動ベクトル検出手段と、
前記検出された移動ベクトルに基づいて、前記走行中の道路の道路端までの余裕度を判定する余裕度判定手段と、
前記余裕度判定手段の判定結果に基づいて、告知手段を制御する制御手段と、
を備え、
前記移動ベクトル検出手段の検出結果に基づいて前記撮像手段の撮像方向を校正する校正手段を有することを特徴とするナビゲーション装置。
【請求項2】
前記検出された移動ベクトルに基づいて、前記走行中の道路の道幅を算出する道幅算出手段と、前記算出された道幅に対応する道幅データを地図データと関連付けて記憶する道幅データ記憶手段とをさらに有することを特徴とする請求項1に記載のナビゲーション装置。
【請求項3】
前記検出された移動ベクトルと、前記地図データに含まれる車線数の情報と、前記算出された道幅と、目的地までの経路とに基づいて、走行すべき適切な車線を告知する車線告知手段をさらに備えたことを特徴とする請求項2に記載のナビゲーション装置。
【請求項4】
前記移動ベクトル検出手段は、比較する前記t+Δtの画像のサーチ範囲を車速データに基づいて設定することを特徴とする請求項1に記載のナビゲーション装置。
【請求項5】
前記移動ベクトル検出手段は、前記撮像手段より得られる画像中に設けた基準水平ライン上の前記移動ベクトルの空間的な分布を検出し、
前記余裕度判定手段は、前記分布を構成する各移動ベクトルの変化量より前記基準水平ライン上の左右の道路端に対応する変曲点を特定し、この変曲点に基づいて前記走行中の道路の道路端までの余裕度を判定することを特徴とする請求項1に記載のナビゲーション装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2006−268865(P2006−268865A)
【公開日】平成18年10月5日(2006.10.5)
【国際特許分類】
【出願番号】特願2006−105852(P2006−105852)
【出願日】平成18年4月7日(2006.4.7)
【分割の表示】特願平11−211273の分割
【原出願日】平成11年7月26日(1999.7.26)
【出願人】(000005016)パイオニア株式会社 (3,620)
【Fターム(参考)】
【公開日】平成18年10月5日(2006.10.5)
【国際特許分類】
【出願日】平成18年4月7日(2006.4.7)
【分割の表示】特願平11−211273の分割
【原出願日】平成11年7月26日(1999.7.26)
【出願人】(000005016)パイオニア株式会社 (3,620)
【Fターム(参考)】
[ Back to top ]