以下、図を参照しつつ、位置推定装置について説明する。この位置推定装置は、移動物体に搭載されたカメラなどのセンサを用いて取得された移動物体の周囲の所定の領域内の地物を表す領域データ(例えば、画像)から、地物を表す複数の候補点を検出する。位置推定装置は、複数の候補点の中から、領域データに対して設定される第1照合範囲候補内の候補点の数をカウントし、かつ、複数の候補点の中から、第1照合範囲候補を含みかつ第1照合範囲候補よりも大きい、データ領域に対して設定される第2照合範囲候補内の候補点の数をカウントする。位置推定装置は、第1照合範囲候補内の候補点の数又は第2照合範囲候補内の候補点の数のうちの少なくとも1つに基づいて、地図上の対応する地物と照合する照合範囲をデータ領域に対して設定し、複数の候補点の中から照合範囲内に含まれる候補点と、地図上の対応する地物とを照合することで、移動物体の位置を推定する。これにより、位置推定装置は、十分な数の候補点が照合範囲内に検出される時には、照合範囲を過剰に広げて誤った候補点が照合されないように照合範囲を設定できるので、適切な数の候補点を地図と照合して、移動物体の正しい位置を推定できる。また、位置推定装置は、十分な数の候補点が照合範囲内に検出されない時には、照合範囲を広げて設定することにより、適切な数の候補点を地図と照合する。このように、位置推定装置は、適切な数の候補点の数が地図と照合されるように、照合範囲を適宜設定する。
以下では、位置推定装置を、車両制御システムに適用した例について説明する。この例では、位置推定装置は、移動物体の一例である車両に搭載されたカメラにより取得された領域データの一例である画像(画像データ)に基づいて、位置推定処理を実行することで、地物の一例である車線区画線を表す候補点と地図とを照合する照合範囲を画像に対して設定する。そして、位置推定装置は、照合範囲内に含まれる候補点に基づいて、車両の位置を推定する。但し、本発明の技術範囲はそれらの実施形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
図1は、位置推定装置が実装される車両制御システムの概略構成図である。図2は、位置推定装置の一つの実施形態である電子制御装置のハードウェア構成図である。
本実施形態では、車両10に搭載され、かつ、車両10を制御する車両制御システム1は、車両の前方の画像を取得するカメラ2と、測位情報受信機3とを有する。また、車両制御システム1は、所定の領域の広域地図情報を記憶しており、測位情報受信機3が出力する測位情報に基づいて、測位情報により表される現在位置を含む狭い領域の地図情報を出力する第1電子制御装置(ECU)4を有する。さらに、車両制御システム1は、位置推定装置の一例であり、第1ECU4が出力する地図情報を用いて車両10の位置を推定する第2電子制御装置(ECU)5を有する。
カメラ2は、領域データとして、車両10の前方の画像を撮影する。撮影された画像には、車両10の前方の所定の領域内に含まれる車線区画線などの地物が表わされる。カメラ2は、撮像部の一例であり、CCDあるいはC-MOSなど、可視光に感度を有する光電変換素子のアレイで構成された2次元検出器と、その2次元検出器上に撮影対象となる領域の像を結像する結像光学系を有する。そしてカメラ2は、車両10の前方を向くように、例えば、車両10の車室内に取り付けられる。そしてカメラ2は、所定の撮影周期ごとに車両10の前方領域を撮影し、その前方領域が写った画像を生成する。カメラ2は、画像を生成する度に、画像及び画像を取得した情報取得時刻を、車内ネットワーク6を介して第2ECU5へ出力する。カメラ2により生成された画像は、カラー画像であってもよく、又は、グレー画像であってもよい。
測位情報受信機3は、車両10の現在位置を表す測位情報を取得する。例えば、測位情報受信機3は、GPS受信機とすることができる。そして測位情報受信機3は、所定の受信周期で測位情報を取得する度に、測位情報及び測位情報を取得した時刻を、第1ECU4へ出力する。
第1ECU4は、磁気ディスクドライブ又は不揮発性の半導体メモリなどの記憶装置(図示せず)を有しており、この記憶装置は、車両10の現在位置を含む広い範囲(例えば数km四方の範囲)の広域地図情報を記憶する。この広域地図情報は、道路上の車線区画線などの地物、構造物の種類及び位置を表す情報を含む高精度地図情報であることが好ましい。なお、道路上の地物、構造物の位置は、例えば、実空間における所定の基準位置を原点とする世界座標系で表される。第1ECU4は、例えば、無線通信部(図示せず)を有しており、車両10の現在位置に応じて、無線通信部を用いて外部のサーバから広域地図情報を受信して記憶装置に記憶する。第1ECU4は、測位情報受信機3から入力した測位情報を入力する度に、記憶している広域地図情報を参照して、測位情報により表される現在位置を含む狭い領域(例えば、数十~数百m四方の範囲)の地図情報及び測位情報取得した時刻を、車内ネットワーク6を介して第2ECU5へ出力する。第1ECU4は、地物が表された地図を記憶する記憶部の一例である。
第2ECU5は、車両10を制御する。本実施形態では、第2ECU5は、カメラ2が出力する画像に基づいて車両10の位置を推定して、車両10を自動運転するように車両10を制御する。そのために、第2ECU5は、通信インターフェース21と、メモリ22と、プロセッサ23とを有する。
通信インターフェース21は、通信部の一例であり、第2ECU5を車内ネットワーク6に接続するためのインターフェース回路を有する。すなわち、通信インターフェース21は、車内ネットワーク6を介して、カメラ2などと接続される。そして通信インターフェース21は、例えば、カメラ2から画像及び情報取得時刻を受信する度に、受信した画像及び情報取得時刻をプロセッサ23へわたす。また通信インターフェース21は、第1ECU4から測位情報、測位情報を取得した時刻及び地図情報を受信する度に、受信した測位情報、測位情報取得した時刻及び地図情報をプロセッサ23へわたす。また通信インターフェース21は、図示しない車両速度センサ及びヨーレートセンサから受信した車両速度及びヨーレートを、プロセッサ23へわたす。
メモリ22は、記憶部の一例であり、例えば、揮発性の半導体メモリ及び不揮発性の半導体メモリを有する。そしてメモリ22は、第2ECU5のプロセッサ23により実行される位置決定処理において使用される各種のデータ、例えば、カメラ2の光軸方向及び取り付け位置などの設置位置情報、結像光学系の焦点距離及び画角といった内部パラメータなどを記憶する。また、メモリ22は、カメラ2などから受信した画像、第1ECU4から受信した測位情報、測位情報を取得した時刻及び地図情報などを記憶する。
プロセッサ23は、制御部の一例であり、1個または複数個のCPU(Central Processing Unit)及びその周辺回路を有する。プロセッサ23は、論理演算ユニット、数値演算ユニットあるいはグラフィック処理ユニットといった他の演算回路をさらに有していてもよい。プロセッサ23が複数個のCPUを有する場合、CPUごとにメモリを有していてもよい。そして、プロセッサ23は、カメラ2により画像が生成される度に、この画像に対して設定された照合範囲内に含まれる候補点に基づいて、情報取得時刻における車両10の位置を推定する位置推定処理を実行する。また、プロセッサ23は、所定の周期で設定される位置決定時刻において、前回の位置決定時刻における車両10の位置と、情報取得時刻における車両10の位置と、車両速度及びヨーレートに基づいて、今回の位置決定時刻における車両10の位置を推定する。さらに、プロセッサ23は、推定された車両10の位置と、車両10の周囲の他の物体との相対的な位置関係に基づいて、車両10を自動運転するよう、車両10を制御する。
図3は、位置推定処理を含む車両制御処理に関する、第2ECU5のプロセッサ23の機能ブロック図である。プロセッサ23は、候補点検出部31と、候補点カウント部32と、照合範囲設定部33と、位置推定部34と、物体検出部35と、運転計画部36と、車両制御部37とを有する。プロセッサ23が有するこれらの各部は、例えば、プロセッサ23上で動作するコンピュータプログラムにより実現される機能モジュールである。あるいは、プロセッサ23が有するこれらの各部は、プロセッサ23に設けられる、専用の演算回路であってもよい。また、プロセッサ23が有するこれらの各部のうち、候補点検出部31と、候補点カウント部32と、照合範囲設定部33と、位置推定部34とが、位置推定処理を実行する。
次に、候補点検出部31と、候補点カウント部32と、照合範囲設定部33とが、協働して画像内の照合範囲を設定する処理を、図4~図6を参照して、以下に説明する。この照合範囲を設定する処理は、カメラ2から画像が出力される度に行われることが好ましい。
候補点検出部31は、カメラ2により生成された画像から、地物の一例である車線区画線を表す複数の候補点を検出する。図4(A)は、カメラ2により生成された画像400を示す図である。まず、候補点検出部31は、例えば、カメラ2により生成された画像に対してSobelフィルタといったエッジ検出フィルタを適用してエッジとなる画素を検出し、かつ、検出された画素の中で所定のしきい値以上の輝度を有する画素を候補点として検出する。また、候補点検出部31は、例えば、画像を識別器に入力することで画像内の候補点を検出してもよい。識別器として、例えば、入力された画像から、その画像内の車線区画線などの地物を検出するように予め学習されたディープニューラルネットワーク(DNN)を用いることができる。候補点検出部31は、画像内で地物として識別された領域内の画素を候補点として検出する。図4(B)は、画像410上に検出された候補点411を示す図である。候補点検出部31は、検出された画像内の候補点の位置情報を、候補点カウント部32へ通知する。候補点の位置情報は、例えば、画像400の左上の隅の位置を原点として、右方に伸びるxi軸と、下方に伸びるyi軸とを有する画像座標系で表すことができる。また、候補点検出部31は、候補点を検出するのに用いた画像及び画像が取得された情報取得時刻を、候補点カウント部32へ通知する。
候補点カウント部32は、カメラ2により生成された画像に対して設定される第1照合範囲候補内の候補点の数をカウントする。また、候補点カウント部32は、第1照合範囲候補を含みかつ第1照合範囲候補よりも大きい、カメラ2により生成された画像に対して設定される第2照合範囲候補内の候補点の数をカウントする。
まず、候補点カウント部32は、画像座標系で表された候補点の座標を、カメラ2の位置を原点とするカメラ座標系で表す。カメラ座標系では、撮像面の中心を原点として、車両10の進行方向をzc軸とし、zc軸と直交し、かつ、地面に平行な方向をxc軸とし、鉛直方向をyc軸とする。原点は、地面からカメラ2が設置される高さにある。カメラ2により撮影された地面上の車線区画線は、yc座標が一定である地面上に位置すると仮定される。候補点検出部31は、画像座標系で表された候補点の座標に対して、カメラ2の設置位置情報及び内部パラメータなどの情報を用いて視点変換処理を実行することで、候補点の座標をカメラ座標系で表わす。
そして、候補点カウント部32は、カメラ座標系で表された候補点の座標を、世界座標系で表す。候補点カウント部32は、位置推定部34から通知された前回の位置決定時刻における車両10の位置と、前回の位置決定時刻と情報取得時刻との間の車両10の移動量及び移動方向とに基づいて、情報取得時刻における車両10の位置及び進行方向を推定する。ここで、候補点カウント部32は、前回の位置決定時刻と情報取得時刻との間の車両10の移動量及び移動方向を、その間に通知された車両速度及びヨーレートに基づいて算出する。候補点カウント部32は、カメラ2の設置位置情報及び内部パラメータなどの情報と、推定された車両10の位置及び進行方向とを用いて、情報取得時刻におけるカメラ2の仮定位置及び仮定姿勢を推定する。候補点カウント部32は、情報取得時刻におけるカメラ2の仮定位置及び仮定姿勢に従って、カメラ座標系から、世界座標系への変換式を求める。そのような変換式は、座標系間の回転を表す回転行列と座標系間の平行移動を表す並進ベクトルの組み合わせで表される。そして候補点カウント部32は、その変換式に従って、カメラ座標系で表された候補点の座標を、世界座標系の座標に変換する。
そして、候補点カウント部32は、候補点検出部31から通知された情報取得時刻に取得された画像に対する第1照合範囲候補を、カメラ2により生成された画像に対して設定する。第1照合範囲候補は、候補点をカウントするために使用される画像内の領域である。候補点カウント部32は、情報取得時刻におけるカメラ2の仮定位置及び仮定姿勢に従って、情報取得時刻にカメラ2により生成された画像に表されると仮定される領域を地図情報から切り出して、参照画像を生成する。候補点カウント部32は、カメラ2により生成された画像に対して、参照画像上の車線区画線と対応する領域を含むように第1照合範囲候補を設定する。ここでは、第1照合範囲候補を表す領域の座標は、世界座標系で表される。図5は、参照画像500を用いて、車両10の左右それぞれの車線区画線501a、501bについて第1照合範囲候補503a、503bを設定した図である。
また、候補点カウント部32は、第1照合範囲候補を含みかつ第1照合範囲候補よりも大きい第2照合範囲候補を、カメラ2により生成された画像に対して設定する。ここでは、第2照合範囲候補を表す領域の座標は、世界座標系で表される。候補点カウント部32は、例えば、第1照合範囲候補の輪郭から所定の画素数だけ拡大させて、第2照合範囲候補を設定してもよい。候補点カウント部32は、図5に示すように、第1照合範囲候補503a、503bのそれぞれについて、第1照合範囲候補503a、503bの輪郭を車線区画線501a、501bが伸びる方向と直交する横方向に拡大して、第2照合範囲候補504a、504bを設定してもよい。また、候補点カウント部32は、第2照合範囲候補504a、504bのそれぞれについて、車線区画線が伸びる方向に対して第1照合範囲候補の輪郭を左右対称に拡大して設定してもよいし、または、左右非対称に拡大して設定してもよい。車線区画線の片側が路肩と隣接している場合、車線区画線の車線側の輪郭は、路肩側の輪郭よりも摩耗して候補点として検出されにくくなっていることがある。そこで、候補点カウント部32は、第2照合範囲候補504a、504bのそれぞれについて、第1照合範囲候補の車線側の拡大量を路肩側よりも大きくなるように設定してもよい。これにより、車線区画線が候補点として検出されるやすくなる。また、候補点カウント部32は、第2照合範囲候補504a、504bのそれぞれについて、第1照合範囲候補の路肩側の拡大量がゼロとなるように設定してもよい。これにより、路肩を候補点として検出することが防止される。
なお、候補点カウント部32は、世界座標系で表された地図情報に基づいて、カメラ2により撮影された仮想画像を作成し、仮想画像上の車線区画線と対応する領域を含むように第1照合範囲候補をカメラ2により生成された画像に対して設定してもよい。例えば、候補点カウント部32は、画像が取得された情報取得時刻におけるカメラ2の位置を仮想撮影点とし、かつ、カメラ2の光軸方向を撮影方向として、仮想撮影点から設定された撮影方向に向けて地図情報に含まれる道路上の車線区画線を仮想的に撮影した仮想画像を生成する。仮想画像は、例えば、カメラ2により生成される画像と同サイズとすることが好ましい。候補点カウント部32は、カメラ2により生成された画像を仮想画像上に重畳して、第1照合範囲候補を、仮想画像上の車線区画線と対応する領域を含むようにカメラ2により生成される画像に対して設定することができる。
そして、候補点カウント部32は、カメラ2により生成された画像に対して設定された第1照合範囲候補内の候補点の数をカウントする。例えば、候補点カウント部32は、図5に示す参照画像500において、第1照合範囲候補503a、503bの内側に位置する候補点502の数Aをカウントする。候補点カウント部32は、候補点の数Aと、候補点の位置情報と、第1照合範囲候補を表す情報と、第1照合範囲候補が設定された画像及び情報取得時刻とを、照合範囲設定部33へ通知する。
また、候補点カウント部32は、カメラ2により生成された画像に対して設定された第2照合範囲候補内の候補点の数Bをカウントする。候補点カウント部32は、図5に示す画像500において、第2照合範囲候補504a、504bの内側に位置する候補点502の数Bをカウントする。候補点カウント部32は、候補点の数Bと、候補点の位置情報と、第2照合範囲候補を表す情報と、第2照合範囲候補が設定された画像及び情報取得時刻とを、照合範囲設定部33へ通知する。
照合範囲設定部33は、第1照合範囲候補内の候補点の数又は第2照合範囲候補内の候補点の数のうちの少なくとも1つに基づいて、地図上の対応する車線区画線の位置と照合する照合範囲を画像に対して設定する。図6は、照合範囲設定部の動作を説明するフローチャートである。照合範囲設定部33は、まず、第1照合範囲候補内の候補点の数が、第1のしきい値Th1よりも大きいか否かを判定する(図6のステップS601)。第1のしきい値Th1は、例えば、第1照合範囲候補の領域に含まれる画素数に基づいて決定される。具体的には、照合範囲設定部33は、第1照合範囲候補の領域に含まれる画素数と、所定の係数(0<係数=<1)との積を、第1のしきい値Th1として求めてもよい。
第1照合範囲候補内の候補点の数が、第1のしきい値Th1よりも大きい場合(ステップS601-Yes)、照合範囲設定部33は、第1照合範囲候補を照合範囲として決定する(ステップS603)。照合範囲設定部33は、決定された照合範囲を表す情報と、候補点の位置情報と、照合範囲が設定された画像及び情報取得時刻とを、位置推定部34へ通知する。これにより、照合範囲設定部33は、比較的狭い照合範囲内で十分な数の候補点が得られる場合には、過剰に照合範囲を広げることが抑制されるので、適切でない地物を候補点として照合に用いられないように照合範囲を設定できる。例えば、照合範囲設定部33は、明瞭な車線区画線を撮影できる場合には、照合範囲を比較的狭くすることができる。なお、候補点カウント部32は、第1照合範囲候補内の候補点の数をカウントした時点で、カウントした候補点の数を照合範囲設定部33へ通知し、照合範囲設定部33がステップS601の判定を行うようにしてもよい。この場合、第1照合範囲候補内の候補点の数が、第1のしきい値Th1よりも大きい場合には、候補点カウント部32が、第2照合範囲候補を設定すること及び第2照合範囲候補内の候補点の数をカウントする処理を省略するようにしてもよい。一方、候補点カウント部32は、第1照合範囲候補内の候補点の数が、第1のしきい値Th1以下の場合には、第2照合範囲候補を設定すること及び第2照合範囲候補内の候補点の数をカウントする処理を実行する。
一方、第1照合範囲候補内の候補点の数が、第1のしきい値Th1以下の場合(ステップS601-No)、照合範囲設定部33は、第2照合範囲候補内の候補点の数Bに対する第1照合範囲候補内の候補点の数Aの比(A/B)が第2のしきい値よりも大きいか否かを判定する(ステップS605)。第2のしきい値は、例えば、第1照合範囲候補の領域に含まれる画素数と、第2照合範囲候補の領域に含まれる画素数とに基づいて決定される。具体的には、照合範囲設定部33は、第1照合範囲候補の領域に含まれる画素数に対する第2照合範囲候補の領域に含まれる画素数の比と、所定の係数(0<係数=<1)との積を、第2のしきい値として求めてもよい。
第2照合範囲候補内の候補点の数Bに対する第1照合範囲候補内の候補点の数Aの比(A/B)が第2のしきい値よりも大きい場合(ステップS605-Yes)、照合範囲設定部33は、第1照合範囲候補を照合範囲として決定する(ステップS607)。照合範囲設定部33は、決定された照合範囲を表す情報と、候補点の位置情報と、照合範囲が設定された画像及び情報取得時刻とを、位置推定部34へ通知する。例えば、車線区画線等の地物の状態によっては、そもそも適切な地物から得られる候補点の絶対数が少ないことがある。そのような場合でも、照合範囲設定部33は、第2照合範囲候補内の候補点の数Bに対する第1照合範囲候補内の候補点の数Aの比(A/B)が大きければ、照合範囲を比較的狭い範囲に設定することにより、過剰に照合範囲を広げることが抑制されるので、適切でない地物を候補点として照合に用いられないように照合範囲を設定できる。例えば、車線区画線が摩耗などにより劣化してかすれている場合でも、照合範囲設定部33は、照合範囲を過剰に広げない。
一方、第2照合範囲候補内の候補点の数Bに対する第1照合範囲候補内の候補点の数Aの比(A/B)が第2のしきい値以下の場合(ステップS605-No)、照合範囲設定部33は、第2照合範囲候補を照合範囲として決定する(ステップS609)。照合範囲設定部33は、決定された照合範囲を表す情報と、候補点の位置情報と、照合範囲が設定された画像及び情報取得時刻とを、位置推定部34へ通知する。これにより、車両10の推定位置がずれて第1照合範囲内に検出される候補点の数が少ない場合には、照合範囲設定部33は、照合範囲を広げることにより、十分な数の候補点を検出することができる。
以上が、照合範囲を設定する処理の説明である。
位置推定部34は、複数の候補点の中から照合範囲内に検出された候補点と、地図上の対応する車線区画線とを照合することで、車両10の位置を推定する。位置推定部34は、照合範囲設定部33から画像及びこの画像に対する照合範囲が通知される度に、画像及び照合範囲を用いて、情報取得時刻における車両10の位置を推定する。位置推定部34は、情報取得時刻におけるカメラ2の仮定位置及び仮定姿勢に従って、照合範囲内に含まれる候補点の座標を、地図情報により表される地図上に投影して、地図情報に表された車両10の周囲の車線区画線と照合範囲内に含まれる候補点との一致度合を算出する。位置推定部34は、仮定位置及び仮定姿勢を所定量ずつ変化させながら、上記と同様のカメラ座標系から世界座標系への位置変換及び一致度合の算出の各処理を実行することで、複数の仮定位置及び仮定姿勢のそれぞれについて、地図情報に表された車両10の周囲の車線区画線と照合範囲内に含まれる候補点との一致度合を算出する。位置推定部34は、一致度合が最大となるときの仮定位置及び仮定姿勢を特定し、そのカメラ2の仮定位置及び仮定姿勢に基づいて、カメラ2が画像を撮影した情報取得時刻における車両10の位置及び進行方向を推定する。第1ECU4は、画像を取得した情報取得時刻と、地図情報を生成するのに使用される測位情報が取得された時刻との間に車両10が走行し得る領域を含むように地図情報を出力することが好ましい。これにより、位置推定部34は、最新の地図情報を用いて、車両10の位置及び進行方向を算出できる。
位置推定部34は、所定の周期で設定される位置決定時刻において、位置決定時刻における車両10の位置を、情報取得時刻における車両10の位置と、位置決定時刻と情報取得時刻との間の車両10の移動量及び移動方向とに基づいて推定する。位置推定部34は、位置決定時刻と情報取得時刻との間の車両10の移動量及び移動方向を、その間に入力した車両速度及びヨーレートに基づいて算出する。
位置決定時刻の周期が、情報取得時刻の更新される間隔と一致しない場合(例えば、位置決定時刻の周期が情報取得時刻の更新される間隔よりも短い場合)、位置推定部34は、前回の位置決定時刻に推定された車両10の位置と、前回の位置決定時刻と今回の位置決定時刻との間の車両10の移動量及び移動方向とに基づいて、今回の位置決定時刻における車両10の位置を推定する。位置推定部34は、前回の位置決定時刻と今回の位置決定時刻との間の車両10の移動量及び移動方向を、その間に入力した車両速度及びヨーレートに基づいて算出する。
物体検出部35は、カメラ2により生成された画像を取得し、この画像に基づいて、車両10の周囲の他の物体を検出する。物体検出部35は、例えば、画像を識別器に入力することで画像に表された物体を検出する。識別器として、例えば、入力された画像から、その画像に表された物体を検出するように予め学習されたディープニューラルネットワーク(DNN)を用いることができる。物体検出部35は、DNN以外の識別器を用いてもよい。例えば、物体検出部35は、識別器として、画像上に設定されるウィンドウから算出される特徴量(例えば、Histograms of Oriented Gradients, HOG)を入力として、そのウィンドウに検出対象となる物体が表される確信度を出力するように予め学習されたサポートベクトルマシン(SVM)を用いてもよい。あるいはまた、物体検出部35は、検出対象となる物体が表されたテンプレートと画像との間でテンプレートマッチングを行うことで、物体領域を検出してもよい。また、物体検出部35は、オプティカルフローに基づく追跡処理に従って、最新の画像から検出された物体を過去の画像から検出された物体と対応付けることで、最新の画像から検出された物体を追跡してもよい。そして物体検出部35は、時間経過に伴う画像上での追跡中の物体のサイズの変化に基づいて、車両10に対するその物体の相対速度を推定してもよい。そして、物体検出部35は、各画像に基づいて検出された物体について同一物を判定し、同一と判定された物体は1つの物体として判断する。物体検出部35は、検出された物体の位置を示す情報を、運転計画部36へ通知する。なお、物体検出部35は、ライダセンサ等の距離画像を取得するセンサが測定した測定結果に基づいて、車両10の周囲の他の物体を検出してもよい。
運転計画部36は、位置決定時刻における車両10の位置と、検出された物体の位置を示す情報と、地図情報とを取得する。運転計画部36は、これらの情報に基づいて、車両10の走行予定経路を1以上生成する。走行予定経路は、例えば、現時刻から所定時間先までの各時刻における、車両10の目標位置の集合として表される。運転計画部36は、車両10の位置と、地図に表された道路上の構造物と、検出された他の物体との位置関係に応じて、車両10と他の物体との相対的な位置関係を推定する。例えば、運転計画部36は、地図に表された車線と、他の物体との位置関係に応じて、他の物体が走行している車線を特定することで、他の物体と車両10とが同じ車線を走行しているか否かを判定する。例えば、運転計画部36は、他の物体の水平方向の中心位置を挟むように位置する互いに隣接する二つの車線区画線で特定される車線を他の物体が走行していると判定する。同様に、運転計画部36は、車両10を挟むように位置する互いに隣接する二つの車線区画線で特定される車線を車両10が走行していると判定する。そして運転計画部36は、車両10が走行中の車線と他の物体が走行中の車線とが同一か否かを判定する。また、地図に表された隣接する二つの車線区画線間の間隔は既知であり、かつ、カメラの焦点距離といった内部パラメータが既知であるため、画像上での隣接する二つの車線区画線間の間隔により、車両10からの距離が推定できる。そこで、運転計画部36は、画像上での他の物体の位置における、地図に表された隣接する二つの車線区画線間の間隔に基づいて、車両10から他の物体までの距離を推定してもよい。このように、運転計画部36は、地図に表された道路上の構造物との位置関係で他の物体と車両10との相対的な位置関係を推定する。そのため、運転計画部36は、画像に写った車線区画線などの道路上の地物が不明瞭でも、他の物体と車両10との相対的な位置関係を正確に推定できる。
運転計画部36は、検出された他の物体が走行中の車線及び相対距離に基づいて、他の物体と車両10とが異なる車線を走行するか、あるいは、車両10から他の物体までの相対距離が所定距離以上となるように、車両10の走行予定経路を生成する。なお、運転計画部36は、複数の走行予定経路を生成してもよい。この場合、運転計画部36は、複数の走行予定経路のうち、車両10の加速度の絶対値の総和が最小となる経路を選択してもよい。運転計画部36は、生成した走行予定経路を車両制御部37へ通知する。
車両制御部37は、位置決定時刻における車両10の位置と、車両速度及びヨーレートと、通知された走行予定経路とに基づいて、車両10が通知された走行予定経路に沿って走行するように車両10の各部を制御する。例えば、車両制御部37は、通知された走行予定経路、及び、車両10の現在の車両速度及びヨーレートに従って、車両10の操舵角、加速度及び角加速度を求め、その操舵角、加速度及び角加速度となるように、操舵量、アクセル開度またはブレーキ量を設定する。そして車両制御部37は、設定された操舵量に応じた制御信号を、車両10の操舵輪を制御するアクチュエータ(図示せず)へ出力する。また、車両制御部37は、設定されたアクセル開度に従って燃料噴射量を求め、その燃料噴射量に応じた制御信号を車両10のエンジンの燃料噴射装置(図示せず)へ出力する。あるいは、車両制御部37は、設定されたブレーキ量に応じた制御信号を車両10のブレーキ(図示せず)へ出力する。
以上に説明してきたように、この位置推定装置は、移動物体の周囲の所定の領域内の地物を表す領域データから、地物を表す候補点を検出する。位置推定装置は、領域データにより表されるデータ領域内に設定される第1照合範囲候補内の候補点の数をカウントし、かつ、第1照合範囲候補を含みかつ第1照合範囲候補よりも大きい、データ領域内に設定される第2照合範囲候補内の前記候補点の数をカウントする。位置推定装置は、第1照合範囲候補内の候補点の数又は第2照合範囲候補内の候補点の数のうちの少なくとも1つに基づいて、地図上の対応する地物の位置と照合する照合範囲をデータ領域に対して設定する。そして、位置推定装置は、照合範囲内に含まれる候補点に基づいて、移動物体の位置を推定する。これにより、適切な地物を表す候補点を含むように照合範囲を設定できるので、検出された候補点に基づいて、移動物体の正しい位置を推定できる。
次に、第1照合範囲候補を設定する他の例を、図7~図10を参照しながら、以下に説明する。
上述したように第1照合範囲候補は、カメラ2により画像が撮影された時の車両10の推定される位置及び姿勢に基づいて設定される。車両10の推定される位置が正しい場合には、第1照合範囲候補は、地図情報に含まれる車線区画線などの地物と対応するように設定されるので、第1照合範囲候補内には、十分な数の候補点を検出することができる。図7(A)は、前方のカーブしている道路を撮影した画像内に設定された照合範囲内に十分な数の候補点を検出できた例を示す図である。車両700の前方に位置する車線区画線701を含むように第1照合範囲候補702が設定されており、第1照合範囲候補702内には、多くの数の候補点703が検出されている。
一方、車両10の推定される位置には誤差が生じる場合がある。例えば、車両10の進行方向の推定される位置が正しい位置に対してずれていると、前方のカーブしている道路の車線区画線を検出する場合、第1照合範囲候補が車線区画線からずれてしまうおそれがある。図7(B)は、前方のカーブしている道路を撮影した画像に設定された照合範囲内に含まれる候補点が少ない例を示す図である。車両700の進行方向の推定される位置が正しい位置に対してずれているので、第1照合範囲候補702内に検出される候補点703の数が減少する。
そこで、候補点カウント部32は、カメラ2により生成された画像内に検出された複数の候補点により形成される曲線から、画像内の車線区画線の曲率を推定し、この曲率が大きい程、第1照合範囲候補の幅が広がるように第1照合範囲候補を設定してもよい。
候補点カウント部32は、世界座標系で表された複数の候補点の座標(xw、zw)をクロソイドの近似式:xw=P1+P2×zw+(P3/2)×zw2+(P4/6)×zw3に入力する。ここで、P1は、zw=0における車線区画線のxw座標、P2は、zw=0における車線区画線の方位角、P3は、zw=0における車線区画線の曲率、P4は、曲率変化率(クロソイド曲線では一定)である。なお、地面に対して鉛直方向の候補点の座標ywは、一定であると仮定している。
候補点カウント部32は、クロソイドの近似式に対して、最小二乗法等の多変量解析を適用して、P1、P2、P3、P4を求める。これにより、照合範囲設定部33は、車線区画線の曲率P4を得る。
候補点カウント部32は、カメラ2により生成された画像に対して、車線区画線の曲率が大きい程、第1照合範囲候補における車両10の進行方向と直交する方向である横方向の幅が広がるように第1照合範囲候補を設定する。候補点カウント部32は、第1照合範囲候補を含みかつ第1照合範囲候補よりも大きくなるように、第2照合範囲候補を設定する。照合範囲設定部33は、このように設定された第1照合範囲候補または第2照合範囲候補のうちの少なくとも1つに基づいて、照合範囲を設定する。図8は、車線区画線の曲率に応じて、車両の進行方向と直交する横方向の照合範囲を変化させることを説明する図である。図8に示すように、車両10の前方の道路がカーブしており、車線区画線801も同様にカーブしている場合、照合範囲802の横方向の幅は、車両10からの距離が離れる程大きく設定される。このように、候補点カウント部32は、車線区画線の曲率が大きい程、照合範囲を拡大することで、十分な数の候補点を検出することができる。ここで、候補点カウント部32は、車線区画線の曲率が所定のしきい値以下の場合、車線区画線は直線であると判定して、第1照合範囲候補の横方向の幅を一定としてもよい。
また、候補点カウント部32は、カメラ2により画像が撮影された情報取得時刻における車両10の位置及び進行方向と、地図情報が含む車線区画線の位置情報とに基づいて、走行している車線の曲率として車線区画線の曲率を求め、この曲率が大きい程、第1照合範囲候補の横方向の幅が広がるように第1照合範囲候補を設定してもよい。情報取得時刻における車両10の進行方向を、位置決定時刻における位置の経時変化、又は、情報取得時刻におけるヨーレートに基づいて決定してもよい。
更に、候補点カウント部32は、第3のしきい値以上の曲率の車線区画線を含む画像内の領域を、照合範囲から除外してもよい。候補点カウント部32は、この第3のしきい値を、例えば、以下のようにして求めることができる。まず、測位情報に基づいて決定される車両10の進行方向のずれΔzは既知であるとする。また、候補点カウント部32は、地図情報に含まれる車線区画線と車線区画線と隣接する路肩の位置情報に基づいて、車線区画線と隣接する路肩との距離Δxを求める。候補点カウント部32は、地図情報が含む車線区画線の位置を、進行方向にΔzずらして、車線区画線が隣接する路肩と重なる位置における車線区画線の曲率を求めて、この車線区画線の曲率を第3のしきい値とする。
図9は、カメラ2により生成された画像900内に検出された候補点の一部を照合範囲から除外することを説明する図である。画像900は、車線区画線901と、照合範囲902とを含む。候補点カウント部32は、第3のしきい値以上の曲率の車線区画線を含む画像内の領域1003を、画像内の照合範囲から除外する。これにより、候補点カウント部32は、路肩等の地物を照合範囲から除外して、候補点として照合されることを防ぐ。
また、プロセッサ23は、カメラ2により生成された画像を、車両10の進行方向又は横方向に沿って複数の領域に分割する領域分割部38を有していてもよい(図3参照)。領域分割部38は、画像を、複数の領域に分割して、複数の領域を表す情報を、候補点検出部31へ通知する。図10は、カメラ2により生成された画像1000を車両10の進行方向において3つの領域1000a、1000b、1000cに分割して、分割された領域ごとに照合範囲を設定することを説明する図である。候補点カウント部32は、複数の領域1000a、1000b、1000cごとに設定される第1照合範囲候補内の候補点の数をカウントし、かつ、複数の領域1000a、1000b、1000cごとに設定される第2照合範囲候補内の数を前記候補点の数をカウントする。照合範囲設定部33は、複数の領域1000a、1000b、1000cごとに、第1照合範囲候補内の候補点の数又は第2照合範囲候補内の候補点の数のうちの少なくとも1つに基づいて、照合範囲1001,1002,1003を設定する。
本発明では、上述した実施形態の位置推定装置、本発明の趣旨を逸脱しない限り適宜変更が可能である。
例えば、上述した実施形態では、領域データは、カメラが撮影した画像であり、2次元の情報を有していた。この領域データは、レーザ又はミリ波等の電磁波を照射して地物から反射された反射波に基づいて求められた地物を表す距離画像であってもよい。この場合、領域データは、三次元の情報を有する。
また、上述した実施形態では、画像内に検出される候補点は、車線区画線であったが、画像内に検出される候補点は、路肩、壁又はガードレールであってもよい。例えば、候補点として、路肩が検出される場合、照合範囲は、路肩と隣接するガードレールが候補点として照合されないように設定されることが好ましい。
また、上述した実施形態において、第2照合範囲候補を含みかつ第2照合範囲候補よりも大きい、領域データ内に設定される第3照合範囲候補内の候補点の数をカウントして、第1照合範囲候補内の候補点の数又は第2照合範囲候補内の候補点の数又は第3照合範囲候補内の候補点の数のうちの少なくとも1つに基づいて、地図上の対応する地物の位置と照合する照合範囲を領域データに対して設定してもよい。
また、上述した実施形態において、領域データ(画像)内に左側の車線区画線を含むように照合範囲を設定し、かつ、領域データ内に右側の車線区画線を含むように照合範囲を設定してもよい。これにより、領域データ内の左右それぞれの照合範囲内の候補点を独立して検出することができる。