図面を参照して、本発明の一実施形態を説明する。図面の記載において同一部分には同一符号を付して説明を省略する。
(ハードウェア構成)
先ず、図1を参照して、本実施形態に係る自己位置算出装置のハードウェア構成を説明する。自己位置算出装置は、投光器11と、カメラ12と、エンジンコントロールユニット(ECU)13とを備える。投光器11は、車両に搭載され、車両周囲の路面にパターン光を投光する。カメラ12は、車両に搭載され、パターン光が投光された領域を含む車両周囲の路面を撮像して画像を取得する撮像部の一例である。ECU13は、投光器11を制御し、且つカメラ12により取得された画像から車両の移動量を推定する一連の情報処理サイクルを実行する制御部の一例である。
カメラ12は、固体撮像素子、例えばCCD及びCMOSを用いたデジタルカメラであって、画像処理が可能なデジタル画像を取得する。カメラ12の撮像対象は車両周囲の路面であって、車両周囲の路面には、車両の前部、後部、側部、車両底部の路面が含まれる。例えば、図2に示すように、カメラ12は、車両10の前部、具体的にはフロントバンパ上に搭載することができる。
カメラ12が設置される高さ及び向きは、車両10の前方の路面31上の特徴点(テクスチャ)及び投光器11により投光されたパターン光32bを撮像できるように調整され、且つ、カメラ12が備えるレンズのピント及び絞りが自動調整される。カメラ12は、所定の時間間隔をおいて繰り返し撮像を行い、一連の画像(フレーム)群を取得する。カメラ12により取得された画像データは、ECU13へ転送され、ECU13が備えるメモリに記憶される。
投光器11は、図2に示すように、カメラ12の撮像範囲内の路面31に向けて、正方形や長方形の格子像を含む所定の形状を有するパターン光32bを投光する。カメラ12は、路面31に照射されたパターン光を撮像する。投光器11は、例えば、レーザポインター及び回折格子を備える。レーザポインターから射出されたレーザ光を回折格子で回折することにより、投光器11は、図2〜4に示すように、格子像、或いは行列状に配列された複数のスポット光Spからなるパターン光(32b、32a)を生成する。図3及び図4に示す例では、5×7のスポット光Spからなるパターン光32aを生成している。尚、各スポット光Spは、形状を付与したり、強度を変化させる等の処理が行われているので、路面31を撮像した画像の中で、それらの特徴に基づいて識別することができる。
図1に戻り、ECU13は、CPU、メモリ、及び入出力部を備えるマイクロコントローラからなり、予めインストールされたコンピュータプログラムを実行することにより、自己位置算出装置が備える複数の情報処理部を構成する。ECU13は、カメラ12により取得された画像から車両の現在位置を算出する一連の情報処理サイクルを、画像(フレーム)毎に繰り返し実行する。ECU13は、車両10にかかわる他の制御に用いるECUと兼用してもよい。
複数の情報処理部には、路面ペイント検出部20と、パターン光抽出部21と、姿勢角算出部22と、特徴点検出部23と、姿勢変化量算出部24と、自己位置算出部26と、パターン光制御部27とが含まれる。
路面ペイント検出部20は、カメラ12により取得された画像をメモリから読み込み、読み込んだ画像から路面のペイント領域を検出する。例えば、図5(a)に示すような画像がカメラ12で撮像されると、路面ペイント検出部20は、その画像を取得して二値化処理を施すことにより、図5(b)に示すような二値化画像を生成する。この二値化処理では、カメラ12で撮像される画像の各画素の輝度値が0〜255に設定されているので、閾値を180に設定して二値化画像を生成する。
次に、路面ペイント検出部20は、生成した二値化画像を図5(c)に示すようにメッシュ状に複数のメッシュ領域50に区切る。そして、これらのメッシュ領域50の中で、二値化によって輝度値が大きいと判定された画素が90%以上含まれるメッシュ領域をペイント領域と判定する。図5(c)では、ペイント領域として、メッシュ領域50a、50b、50cが検出されている。ペイント領域と判定されたメッシュ領域の位置はメモリに記憶される。尚、メッシュ領域は、例えば縦横共に20ピクセルで区切られている。また、実際に撮像された画像では、カメラの撮像領域は図5で例示した画像よりも小さいので、画面に占めるペイント領域の割合は図5の場合よりも大きくなる。
パターン光抽出部21は、カメラ12により取得された画像をメモリから読み込み、画像からパターン光の位置を抽出する。図3(a)に示すように、例えば、投光器11が行列状に配列された複数のスポット光からなるパターン光32aを路面31に向けて投光する。このとき、図6に示すように、パターン光32aを構成する各スポット光Spは、上述した図5のメッシュ領域50に必ず1点以上投光される。図6では、カメラ12の撮像領域60を複数のメッシュ領域50に区分し、各メッシュ領域50にスポット光Spが1点ずつ投光されている。ただし、想定される路面に対して、カメラ12(車両)がロール、ピッチ、バウンス方向(上下方向)に動いたとしても、スポット光Spは必ずメッシュ領域50に1点以上スポット光Spが投光されるように、投光器11とカメラ12は配置されている。そして、路面31で反射されたパターン光32aがカメラ12で検出されると、パターン光抽出部21は、カメラ12で取得された画像に対して二値化処理を施すことにより、図4(a)及び図4(b)に示すように、スポット光Spの画像のみを抽出する。パターン光抽出部21は、図4(c)に示すように、各スポット光Spの重心の位置He、即ちスポット光Spの画像上の座標(Uj、Vj)を算出することにより、パターン光32aの位置を抽出する。座標は、カメラ12の撮像素子の画素を単位とし、5×7のスポット光Spの場合、“j”は1以上35以下の自然数である。スポット光Spの画像上の座標(Uj、Vj)は、パターン光32aの位置を示すデータとしてメモリに記憶される。
姿勢角算出部22は、パターン光32aの位置を示すデータをメモリから読み込み、カメラ12により取得された画像におけるパターン光32aの位置から、路面31に対する車両10の距離及び姿勢角を算出する。このとき、姿勢角算出部22は、少なくともペイント領域上にあるパターン光の位置に基づいて、路面31に対する車両10の距離及び姿勢角を算出する。
例えば、図7(a)に示す状況では、カメラ12が撮像領域70を撮像し、この撮像領域70にはペイント領域73が撮像されている。この場合に、姿勢角算出部22は、図7(b)に示すように撮像領域70のすべてのスポット光Spを用いて距離及び姿勢角を算出してもよいが、ペイント領域73上の投光されたスポット光Spが当たっている領域75のみを用いて距離及び姿勢角を算出してもよい。このように、少なくともペイント領域上にあるパターン光の位置に基づいて距離及び姿勢角を算出するので、距離及び姿勢角の誤差を抑制し、ひいては移動量推定の誤差も抑制することができる。
次に、姿勢角算出部22による車両の距離及び姿勢角の算出方法を具体的に説明する。例えば、図3(a)に示すように、投光器11とカメラ12の間の基線長Lbと、各スポット光の画像上の座標(Uj、Vj)とから、三角測量の原理を用いて、各スポット光が照射された路面31上の位置を、カメラ12に対する相対位置として算出する。そして、姿勢角算出部22は、カメラ12に対する各スポット光の相対位置から、パターン光32aが投光された路面31の平面式、即ち、路面31に対するカメラ12の距離及び姿勢角(法線ベクトル)を算出する。なお、車両10に対するカメラ12の搭載位置及び撮像方向は既知であるため、実施形態においては、路面31に対する車両10の距離及び姿勢角の一例として、路面31に対するカメラ12の距離及び姿勢角を算出する。以後、路面31に対するカメラ12の距離及び姿勢角を、「距離及び姿勢角」と略す。姿勢角算出部22により算出された距離及び姿勢角は、メモリに記憶される。
具体的には、カメラ12及び投光器11は車両10にそれぞれ固定されているため、パターン光32aの照射方向と、カメラ12と投光器11との距離(基線長Lb)は既知である。そこで、姿勢角算出部22は、三角測量の原理を用いて、各スポット光の画像上の座標(Uj、Vj)から各スポット光が照射された路面31上の位置を、カメラ12に対する相対位置(Xj,Yj,Zj)として求めることができる。
なお、カメラ12に対する各スポット光の相対位置(Xj,Yj,Zj)は同一平面上に存在しない場合が多い。なぜなら、路面31に表出するアスファルトの凹凸に応じて各スポット光の相対位置が変化するからである。そこで、最小二乗法を用いて、各スポット光との距離誤差の二乗和が最小となるような平面式を求めてもよい。
特徴点検出部23は、カメラ12により取得された画像をメモリから読み込み、メモリから読み込んだ画像から、路面31上の特徴点を検出する。特徴点検出部23は、路面31上の特徴点を検出するために、例えば、「D.G. Lowe,“Distinctive Image Features from Scale-Invariant Keypoints,” Int. J. Comput. Vis., vol.60, no.2, pp. 91-110, Nov. 200 」、或いは、「金澤 靖, 金谷健一, “コンピュータビジョンのための画像の特徴点抽出,” 信学誌, vol.87, no.12, pp.1043-1048, Dec. 2004」に記載の手法を用いることができる。
具体的には、特徴点検出部23は、例えば、ハリス(Harris)作用素又はSUSANオペレータを用いて、物体の頂点のように周囲に比べて輝度値が大きく変化する点を特徴点として検出する。或いは、特徴点検出部23は、SIFT(Scale-Invariant Feature Transform)特徴量を用いて、その周囲で輝度値がある規則性のもとで変化している点を特徴点として検出してもよい。そして、特徴点検出部23は、1つの画像から検出した特徴点の総数Nを計数し、各特徴点に識別番号(i(1≦i≦N))を付す。各特徴点の画像上の位置(Ui、Vi)は、ECU13内のメモリに記憶される。図9(a)及び図9(b)は、カメラ12により取得された画像から検出された特徴点Teの例を示す。各特徴点の画像上の位置(Ui、Vi)は、メモリに記憶される。
なお、実施形態において、路面31上の特徴点は、主に大きさが1cm以上2cm以下のアスファルト混合物の粒を想定している。この特徴点を検出するために、カメラ12の解像度はVGA(約30万画素)である。また、路面31に対するカメラ12の距離は、おおよそ70cmである。更に、カメラ12の撮像方向は、水平面から約45degだけ路面31に向けて傾斜させる。また、カメラ12により取得される画像をECU13に転送するときの輝度数値は、0〜255(0:最も暗い,255:最も明るい)の範囲内である。
姿勢変化量算出部24は、一定の情報処理サイクル毎に撮像されるフレームのうち、前回フレームに含まれる複数の特徴点の画像上の位置(Ui、Vi)をメモリから読み込む。更に、今回フレームに含まれる複数の特徴点の画像上の位置(Ui、Vi)をメモリから読み込む。そして、複数の特徴点の画像上での位置変化に基づいて、車両の姿勢変化量を求める。ここで、「車両の姿勢変化量」とは、路面31に対する「距離及び姿勢角」の変化量、及び路面上での「車両(カメラ12)の移動量」の双方を含んでいる。以下、距離及び姿勢角の変化量及び車両の移動量の算出方法について説明する。
図9(a)は、時刻tに取得された第1フレーム(画像)38の一例を示す。図8或いは図9(a)に示すように、第1フレーム38において、例えば3つの特徴点Te1、Te2、Te3の相対位置(Xi,Yi,Zi)がそれぞれ算出されている場合を考える。この場合、特徴点Te1、Te2、Te3によって特定される平面Gを路面と見なすことができる。よって、姿勢変化量算出部24は、相対位置(Xi,Yi,Zi)から、路面(平面G)に対するカメラ12の距離及び姿勢角(法線ベクトル)を求めることができる。更に、姿勢変化量算出部24は、既知のカメラモデルによって、各特徴点Te1、Te2、Te3の間の距離(l1、l2、l3)及び夫々の特徴点Te1、Te2、Te3を結ぶ直線が成す角度を求めることができる。図8のカメラ12は、第1フレームにおけるカメラの位置を示す。
なお、カメラ12に対する相対位置を示す3次元座標(Xi,Yi,Zi)として、カメラ12の撮像方向をZ軸に設定し、撮像方向を法線とし且つカメラ12を含む平面内に、互いに直交するX軸及びY軸を設定する。一方、画像38上の座標として、水平方向及び垂直方向をそれぞれV軸及びU軸に設定する。
図9(b)は、時刻tから時間Δtだけ経過した時刻(t+Δt)に取得された第2フレームを示す。図8のカメラ12’は、第2フレーム38’を撮像したときのカメラの位置を示す。図8或いは図9(b)に示すように、第2フレーム38’において、カメラ12’が特徴点Te1、Te2、Te3を撮像し、特徴点検出部23が特徴点Te1、Te2、Te3を検出する。この場合、姿勢変化量算出部24は、時刻tにおける各特徴点Te1、Te2、Te3の相対位置(Xi,Yi,Zi)と、各特徴点の第2フレーム38’上の位置P1(Ui、Vi)と、カメラ12のカメラモデルとから、時間Δtにおけるカメラ12の移動量(ΔL)だけでなく、距離及び姿勢角の変化量も算出することができる。例えば、以下の(1)〜(4)式からなる連立方程式を解くことにより、姿勢変化量算出部24は、カメラ12(車両)の移動量(ΔL)、及び距離及び姿勢角の変化量を算出することができる。なお、(1)式はカメラ12が歪みや光軸ずれのない理想的なピンホールカメラとしてモデル化したものであり、λiは定数、fは焦点距離である。カメラモデルのパラメータは、予めキャリブレーションをしておけばよい。
図3(b)は、カメラ12の撮像範囲のうち、パターン光32aが照射された領域とは異なる他の領域33から検出された特徴点の時間変化から、カメラ12の移動方向34を求める様子を模式的に示す。また、図9(a)及び図9(b)には、各特徴点Teの位置の変化方向及び変化量を示すベクトルDteを画像に重畳して示す。姿勢変化量算出部24は、時間Δtにおけるカメラ12の移動量(ΔL)だけでなく、距離及び姿勢角の変化量も同時に算出することができる。よって、姿勢変化量算出部24は、距離及び姿勢角の変化量を考慮して、6自由度の移動量(ΔL)を精度よく算出することができる。すなわち、車両10の旋回や加減速によるロール運動或いはピッチ運動によって距離や姿勢角が変化しても、移動量(ΔL)の推定誤差を抑制することができる。
なお、姿勢変化量算出部24は、相対位置が算出された特徴点すべてを用いるのではなく、特徴点同士の位置関係に基づいて最適な特徴点を選定してもよい。選定方法としては、例えば、エピポーラ幾何(エピ極線幾何,R.I. Hartley: “A linear method for reconstruction from lines and points,” Proc. 5th International Conference on Computer Vision, Cambridge, Massachusetts, pp.882-887(1995))を用いることができる。
前後フレーム間で特徴点を対応付けるには、例えば、検出した特徴点の周辺の小領域の画像をメモリに記録しておき、輝度や色情報の類似度から判断すればよい。具体的には、ECU13は、検出した特徴点を中心とする5×5(水平×垂直)画素分の画像をメモリに記録する。姿勢変化量算出部24は、例えば、輝度情報が20画素以上で誤差1%以下に収まっていれば、前後フレーム間で対応関係が取れる特徴点であると判断する。
このように、相対位置(Xi,Yi,Zi)が算出された特徴点Te1、Te2、Te3が、後のタイミングで取得された画像38’からも検出された場合に、姿勢変化量算出部24は、路面上の複数の特徴点の時間変化に基づいて、「車両の姿勢変化量」を算出することができる。
ここで、特徴点検出部23は、投光器11によるパターン光の投光領域の周囲に特徴点検出領域を設定し、この特徴点検出領域内で路面31上の特徴点を検出する。特徴点検出領域は、路面31上の特徴点を検出するにあたって、パターン光に対してパターン光の影響が十分小さくなる距離だけ離れた領域を意味する。パターン光の影響が十分小さくなる距離は、予め実験的に求めておくことができる。本実施形態では、パターン光の影響が十分小さくなる距離の一例として、想定される光環境下で99%以上の確率で特徴点を誤検出しなくなる距離を求めておく。
例えば、投光器11は、図10に示すように、路面31上のカメラ12の撮像領域80内に、パターン光32aとして25(5×5)個のスポット光Spを投光する。図10において、矢印82は車両10の移動方向を示し、矢印82に対して逆向きの矢印83は特徴点の移動方向を示す。ここで、各スポット光Spに対して、特徴点を検出する際にパターン光の影響が十分小さくなる距離だけ離間した領域をパターン光領域84とする。
特徴点検出部23は、図11に示すように、カメラ12の撮像領域80内で、パターン光領域84の周囲を囲むように特徴点検出領域86を設定する。特徴点検出領域86は、格子状を有し、パターン光領域84に隣接している。特徴点検出部23は、カメラ12による撮像領域80内のうち、パターン光領域84内は特徴点の検出対象とせずに、特徴点検出領域86内で特徴点を検出する。この結果、パターン光と特徴点とを容易に区別することができるので、特徴点を精度良く検出することができる。特徴点検出領域86は、パターン光領域84に隣接するのではなく、スポット光Spに隣接するように設定することもできる。
自己位置算出部26は、姿勢変化量算出部24で算出された「距離及び姿勢角の変化量」から距離及び姿勢角を算出する。更に、姿勢変化量算出部24で算出された「車両の移動量」から車両の現在位置を算出する。
具体的には、姿勢角算出部22(図1参照)にて算出された距離及び姿勢角が起点として設定された場合、この起点(距離及び姿勢角)に対して、姿勢変化量算出部24で算出された各フレーム毎の距離及び姿勢角の変化量を逐次加算する(積分演算する)ことにより、距離及び姿勢角を最新な数値に更新する。また、姿勢角算出部22にて距離及び姿勢角が算出された際の車両位置が起点(車両の初期位置)として設定され、この初期位置から車両の移動量を逐次加算する(積分演算する)ことにより、車両の現在位置を算出する。例えば、地図上の位置と照合された起点(車両の初期位置)を設定することで、地図上の車両の現在位置を逐次算出することができる。
このように、前後フレーム間で対応関係が取れる3点以上の特徴点を検出し続けることができれば、距離及び姿勢角の変化量を加算する処理(積分演算)を継続することにより、パターン光32aを用いることなく、距離や姿勢角を最新な数値に更新し続けることができる。ただし、最初の情報処理サイクルにおいては、パターン光32aを用いて算出された距離及び姿勢角、或いは所定の初期距離及び初期姿勢角を用いてもよい。つまり、積分演算の起点となる距離及び姿勢角は、パターン光32aを用いて算出しても、或いは、所定の初期値を用いても構わない。所定の初期距離及び初期姿勢角は、少なくとも車両10への乗員及び搭載物を考慮した距離及び姿勢角であることが望ましい。例えば、車両10のイグニションスイッチがオン状態であって、且つシフトポジションがパーキングから他のポジションへ移動した時に、パターン光32aを投光し、パターン光32aから算出された距離及び姿勢角を、所定の初期距離及び初期姿勢角として用いればよい。これにより、車両10の旋回や加減速によるロール運動或いはピッチ運動が発生していない時の距離や姿勢角を求めることができる。
なお、実施形態では、距離及び姿勢角の変化量を算出し、距離及び姿勢角の変化量を逐次加算することにより、距離及び姿勢角を最新な数値に更新した。しかし、路面31に対するカメラ12の姿勢角だけをその変化量の算出及び更新の対象としても構わない。この場合、路面31に対するカメラ12の距離は一定と仮定すればよい。これにより、姿勢角の変化量を考慮して、移動量(ΔL)の推定誤差を抑制しつつ、ECU13の演算負荷を軽減し、且つ演算速度を向上させることもできる。
パターン光制御部27は、投光器11によるパターン光32aの投光を制御する。例えば、車両10のイグニションスイッチがオン状態となり、自己位置算出装置が起動すると同時に、パターン光制御部27は、パターン光32aの投光を開始する。その後、パターン光制御部27は、自己位置算出装置が停止するまで、パターン光32aを連続して投光する。或いは、所定の時間間隔をおいて、投光のオン/オフを繰り返してもよい。さらに、パターン光制御部27は、各スポット光Spに形状を付与したり、強度を変化させる等の処理を行っているので、各スポット光Spはユニークに識別される。
(情報処理サイクル)
次に、カメラ12により取得された画像38から車両10の移動量を推定する自己位置算出方法の一例として、ECU13により繰り返し実行される情報処理サイクルを、図12を参照しながら説明する。図12のフローチャートに示す情報処理サイクルは、車両10のイグニションスイッチがオン状態となり、自己位置算出装置が起動すると同時に開始され、自己位置算出装置が停止するまで、繰り返し実行される。
図12のステップS01において、パターン光制御部27は、投光器11を制御して、車両周囲の路面31にパターン光32aを投光する。図12のフローチャートでは、パターン光32aを連続して投光する例を説明する。
ステップS03に進み、ECU13は、カメラ12を制御して、パターン光32aが投光された領域を含む車両周囲の路面31を撮像して画像38を取得する。ECU13は、カメラ12により取得された画像データを、メモリに記憶する。
なお、ECU13はカメラ12の絞りを自動制御できる。前の情報処理サイクルで取得した画像38の平均輝度から、輝度値の最大値と最小値の中間値になるようにカメラ12の絞りをフィードバック制御してもよい。また、パターン光32aが投光されている領域は輝度値が高いため、パターン光32aを抽出した部分を除いた領域から、平均輝度値を求めてもよい。
ステップS05において、路面ペイント検出部20は、カメラ12で撮像された画像をメモリから読み込み、この画像に二値化処理を行って二値化画像を生成し、二値化画像のメッシュ領域の中からペイント領域を検出する。路面ペイント検出部20は、検出されたペイント領域をメモリに記憶する。
ステップS07に進み、ECU13は、パターン光が路面上のペイント領域に照射されているか否かを判定する。具体的には、ステップS05においてペイント領域が検出されていればパターン光が路面上のペイント領域に照射されていると判定して、ステップS09に進む。一方、ステップS05においてペイント領域が検出されていなければパターン光は路面上のペイント領域に照射されていないと判定して、ステップS11に進む。
ステップS09において、先ず、パターン光抽出部21は、カメラ12により取得された画像38をメモリから読み込み、図4(c)に示すように、画像38からパターン光32aの位置を抽出する。パターン光抽出部21は、パターン光32aの位置を示すデータとして算出されたスポット光Spの画像上の座標(Uj、Vj)をメモリに記憶する。
また、ステップS09において、姿勢角算出部22は、パターン光32aの位置を示すデータをメモリから読み込み、パターン光32aの位置から、距離及び姿勢角を算出し、メモリに記憶する。
一方、ステップS11では、ECU13は、画像38から特徴点を検出し、前後の情報処理サイクルの間で対応関係が取れる特徴点を抽出し、特徴点の画像上の位置(Ui、Vi)から、距離及び姿勢角の変化量、及び車両の移動量を算出する。
具体的に、先ず、特徴点検出部23は、カメラ12により取得された画像38をメモリから読み込み、図11に示すようにパターン光領域84を囲むように特徴点検出領域86を設定する。更に、特徴点検出部23は、画像38から特徴点検出領域86内にある路面31上の特徴点を検出し、各特徴点の画像上の位置(Ui、Vi)をメモリに記憶する。
姿勢変化量算出部24は、各特徴点の画像上の位置(Ui、Vi)をメモリから読み込み、距離及び姿勢角と、特徴点の画像上の位置(Ui、Vi)とから、カメラ12に対する特徴点の相対位置(Xi,Yi,Zi)を算出する。なお、姿勢変化量算出部24は、前の情報処理サイクルのステップS13において設定された距離及び姿勢角を用いる。姿勢変化量算出部24は、カメラ12に対する特徴点の相対位置(Xi,Yi,Zi)を、メモリに記憶する。
そして、姿勢変化量算出部24は、特徴点の画像上の位置(Ui、Vi)と、前の情報処理サイクルのステップS11において算出された特徴点の相対位置(Xi,Yi,Zi)をメモリから読み込む。姿勢変化量算出部24は、前後の情報処理サイクルの間で対応関係が取れる特徴点の相対位置(Xi,Yi,Zi)及び画像上の位置(Ui、Vi)を用いて、距離及び姿勢角の変化量を算出する。更に、前回の情報処理サイクルにおける特徴点の相対位置(Xi,Yi,Zi)と今回の情報処理サイクルにおける特徴点の相対位置(Xi,Yi,Zi)とから、車両の移動量を算出する。ステップS11で算出された「距離及び姿勢角の変化量」及び「車両の移動量」は、ステップS15の処理で用いられる。
ステップS13に進み、ECU13は、最初の情報処理サイクルでは、パターン光を用いて算出した距離及び姿勢角、或いは所定の初期位置及び初期姿勢角を用いて、自己位置を算出するための積分演算の起点を設定する。以降の情報処理サイクルでは、前回フレームと今回フレームの間で対応関係が取れる3点以上の特徴点を継続して検出できれば、距離及び姿勢角の変化量を加算する処理(積分演算)を継続することにより、パターン光を用いずに距離及び姿勢角を更新し続けることができる。
ステップS15に進み、自己位置算出部26は、ステップS13の処理で設定された積分演算の起点、及びステップS11の処理で算出された車両の移動量から、車両の現在位置を算出する。
こうして、本実施形態に係る自己位置算出装置は、上記した一連の情報処理サイクルを繰り返し実行して車両10の移動量を積算することにより、車両10の現在位置を算出することができる。
[変形例]
次に、変形例として、パターン光を投光する領域を変化させる場合について説明する。例えば、図13に示すように、カメラ12の撮像領域90のうち一部の領域のみにパターン光92を投光する。図13では、カメラ12の撮像領域90が複数のメッシュ領域50に区分され、その中の中央付近にある9個のメッシュ領域にスポット光Spが1点ずつ投光されている。
このとき、特徴点検出部23は、パターン光92が投光されたメッシュ領域に隣接させて特徴点検出領域を設定する。例えば、図14(a)に示す状況では、カメラ12が撮像領域90を撮像し、この撮像領域90にはペイント領域94が撮像されている。この場合に、特徴点検出部23は、図14(b)に示すようにパターン光92が投光されているメッシュ領域に隣接したメッシュ領域を特徴点検出領域に設定する。図14(b)では、パターン光92の左右(車幅方向)にそれぞれ特徴点検出領域96a、96bが設定されている。
さらに、パターン光制御部27は、路面ペイント検出部20で検出されたペイント領域にパターン光が投光されるように投光位置を設定し、この投光位置にパターン光が投光されるように投光器11を制御する。この場合、パターン光制御部27は、前回の情報処理サイクルで検出された路面のペイント領域をメモリから取得し、取得したペイント領域に基づいてパターン光の投光位置を設定する。この後、パターン光制御部27は、投光器11を制御して、設定された投光位置にパターン光を投光する。これにより、路面上のペイント領域にパターン光が投光される。
[実施形態の効果]
以上、詳細に説明したように、本実施形態に係る自己位置算出装置では、カメラ12で取得した画像から路面のペイント領域を検出し、検出したペイント領域上にあるパターン光の位置に基づいて路面に対する車両の距離及び姿勢角を算出する。路面のペイント領域は表面が多孔質ではなく、アスファルト部分に比べ、凹凸の少ない、滑らかな表面であるので、ペイント領域に投光されたパターン光は、多孔質材料であるアスファルト路面に投光されたパターン光より同一平面上に存在している可能性が高い。したがって、本実施形態に係る自己位置算出装置によれば、路面上にパターン光を投光する場合、路面に対する車両の距離及び姿勢角の誤差を抑制し、ひいては移動量推定の誤差を抑制することができる。
また、本実施形態に係る自己位置算出装置では、ペイント領域に基づいてパターン光の投光位置を設定し、設定された投光位置にパターン光が投光されるように投光器11を制御する。これにより、確実にパターン光をペイント領域上に投光することができるので、距離及び姿勢角の誤差を抑制し、ひいては移動量推定の誤差を抑制することができる。
上記のように、本発明の実施形態を記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
なお、図2は、カメラ12と投光器11を車両10の前面に取り付けた例を示したが、車両10の側方,後方,真下に向けて設置してもよい。また、本実施形態では車両10の一例として、四輪の乗用自動車を図2に示したが、オートバイ、貨物自動車、或いは例えば建設機械を運搬する特殊車両など、道路の路面或いは壁面上の特徴点を撮像することが可能な移動体(車両)すべてに適用可能である。