車両追跡装置及び車両追跡方法
【課題】 追跡対象の車両オブジェクトと車両番号との時間的な連続性が途絶えることを防止しつつオクルージョンに対して頑健で高精度かつ高効率な車両追跡が可能な車両追跡装置を得る。
【解決手段】 道路画像から個々の車両をオブジェクトとして検出する車両検出部1と、この検出された個々のオブジェクトに対して複数の車両番号を割当てる車両番号割当て部2と、車両番号割当て部により割当てられた車両番号の各々に基づいて走行経路を追跡する走行経路追跡部3と、行経路追跡部により得られた追跡経路情報から各経路の確率的な確からしさを尤度として算出する経路尤度算出部4と、車両番号割当て部により割当てられた車両番号のうち経路尤度算出部により算出された尤度が小なる経路に対応した車両番号を削除する車両番号枝刈り部5とを含むことを特徴とする。
【解決手段】 道路画像から個々の車両をオブジェクトとして検出する車両検出部1と、この検出された個々のオブジェクトに対して複数の車両番号を割当てる車両番号割当て部2と、車両番号割当て部により割当てられた車両番号の各々に基づいて走行経路を追跡する走行経路追跡部3と、行経路追跡部により得られた追跡経路情報から各経路の確率的な確からしさを尤度として算出する経路尤度算出部4と、車両番号割当て部により割当てられた車両番号のうち経路尤度算出部により算出された尤度が小なる経路に対応した車両番号を削除する車両番号枝刈り部5とを含むことを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は車両追跡装置及び車両追跡方法に関し、特にカメラによる撮像画像中に存在する車両を追跡する車両追跡方式に関するものである。
【背景技術】
【0002】
近年の自動車開発のキーワードとして、「安全・安心」がある。日本社会の高齢化に伴い、ドライバーの高齢者人口が今後増大していくのは避けられないが、判断力、注意力、体力などが衰えた高齢者ドライバに対して安全で安心できる運転をサポートすることは、自動車業界にとって強く望まれていることである。自動車にとっての安全、安心とは、交通事故の発生を回避するか、発生した場合にその損害を最小限に食い止めることと考えることができる。
【0003】
自動車の高性能化や道路交通法の改正等により、交通事故死者数は平成9年の9,640人から平成18年の6,352人と着実に減少を続けているものの、負傷者数はほぼ横ばいであり、自動車の安全性に関しては更なる向上が求められている。自動車と人や物との衝突を回避するために必要な自動車周辺状況認識技術として、例えばミリ波レーダを用いた前方車両衝突回避システムや、遠赤外線画像をカーナビゲーション画面に表示することによる夜間道路画像明瞭化システム、更には前方カメラを用いて白線を認識することによる車線逸脱警報システムなどが実用化されている。
【0004】
これらは、1台の車両で処理が完結する技術であるが、より高度な状況認識を実現するアプローチとして、車車連携技術や路車連携技術がある。車車連携では、道路上を走行する各車両が互いに無線通信を行い、自車両の周辺状況を他車両に対して提供することによって、自車両のみでは把握が困難な周辺状況の取得が可能となる。車車連携が実現することにより、例えば死角から他車両が飛び出してくることによる出会い頭の衝突事故の回避が期待される。
【0005】
路車連携では、道路脇に設置したセンサを用いて個々の車両の走行状態をモニタリングし、これらの走行情報を各車両に配信する。路車連携が実現することにより、例えば渋滞末尾の検出と通知が可能となる。また、路車連携で用いるセンサの一つとしてカメラを用いることがあるが、カメラで取得した道路画像から個々の車両を検出しその走行経路を追跡することで、交差点内での右折車と直進車の衝突防止警告システムの構築も可能となる。カメラをセンサとして用いることの利点には、簡易な設定および低コストで広範囲をモニタリングでき、また個々の車両を道路上の任意の位置で計測できることが挙げられる。
【0006】
一方、大きな問題点として、注目車両が他車両に遮蔽されることにより画像上で注目車両の一部が欠落して観測されるいわゆるオクルージョンの場合、注目車両が未検出扱いとなる可能性が高くなるという点が挙げられる。特に、路車連携技術が強く望まれている交差点付近では、信号待ち時に車両が停車して画像上でオクルージョンが多発する。従って、画像センサを使った路車連携では、オクルージョンに頑健な車両追跡技術が必須である。路側に設置したセンサから車両を検出し、その走行経路を追跡する従来技術には、以下のようなものが知られている。
【0007】
特許文献1を参照すると、注目車両を構成する部分毎にテンプレートを用意し、これらのテンプレートを入力画像中のオブジェクトにマッチングすることにより個々の車両を検出する。その際、車両位置に対してカルマンフィルタ(Kalman Filter )を適用して得られる1時刻先の予測位置付近に限定してマッチングを行うことによって、車両追跡の高精度化を図っている。
【0008】
また、特許文献2を参照すると、ミリ波レーダを用いた自動追従走行機能のように、先行車両の位置および速度情報が必要な状況において、先行車両の速度低下により先行車両を車両として検出できなくなった場合、それまでの先行車両の速度と位置の情報から現時刻における先行車両の位置を推定している。
【0009】
更に、特許文献3を参照すると、路側に車両感知センサが密に設置されていない道路区間での交通状態の推定精度を上げるために、図22に示すように、実際の道路を車線毎(車線の総数をLaneNum と記す)に等間隔に分割した「セル」を導入する(以下では、このセルを画像化したものをセル画像と記す)。そして、交通流を圧縮性流体と見なし、各セルにおける車両の密度、空間平均速度などをモデル内部状態として、その推定にKalman Filter を用いている。
【0010】
また、非特許文献1に示される交通流シミュレーションモデルには、セルオートマトン(Cell Automaton:CA)を利用したものもよく知られている。このCAでは、セル画像の各セルを車両の存在/不在セルに分ける。注目する車両存在セルが更新条件を満たす時に注目車両存在セルを移動させる。更新条件としては、例えば、ルール184や、Nagel-Schreckenberg アルゴリズムなどがある。
【0011】
いま、セル画像の左から右が車両進行方向と仮定した場合、ルール184では、図23に示すように、現時刻における各車両存在セルに注目し、注目車両存在セルの右隣のセルが車両不在セルの場合には、次時刻において注目車両存在セルを右隣のセルに移動させ、車両存在セルの場合には、注目車両存在セルの位置を移動させない。
【0012】
Nagel-Schreckenberg アルゴリズムは、上記のルール184に実際の車両の挙動(加速や減速)を考慮したものであり、その内容は以下のようにまとめることができる。
(1)注目車両の現時刻での速度をv(セル単位)とする。
(2)加速:v<vmax でかつ前方車との距離がv+1以上であれば、速度を1つ上げる(v→v+1)。
(3)減速:注目車両がセルiにいて、前方車がセルi+j(j<v)にあるとき、速度をj−1まで落とす(v→j−1)。
(4)ランダム化:v>0のとき、確率pで速度を一つ下げる(v→v−1)。
(5)移動:vセル進む。
【0013】
このようなNagel-Schreckenberg アルゴリズムから分かるとおり、Cell Automatonを用いた交通流シミュレーションモデルでは、同一車線上の車両の追い越しという現実にはあり得ない状況を排除したシミュレーションが可能となる。
【0014】
なお、他の技術として、特許文献4に開示のものもある。特許文献4では、複数物体の検出、追跡におけるオクルージョンの影響を極力抑圧すべく、観測領域の周辺にカメラを複数台設置しておき、これらのカメラから得られる各物体の複数方向からのアパーチャ情報を統合して、確率的に尤もらしい各物体の内部状態(位置や方向及びそれらの変化量)を推定するようになっている。
【0015】
【特許文献1】特開2001−357403号公報
【特許文献2】特開2001−043499号公報
【特許文献3】特開2004−078482号公報
【特許文献4】特開2004−220292号公報
【非特許文献1】杉山雄規著「交通流の物理」、ながれ22,2003,p95−p108
【発明の開示】
【発明が解決しようとする課題】
【0016】
特許文献1の技術では、オブジェクトの追跡に従来のカルマンフィルタを用いている。カルマンフィルタは与えられた観測データを用いて隠れ状態を推定する方法であり、現時刻における隠れ状態を算出するろ過処理と1時刻先の隠れ状態を算出する予測処理から構成される。時刻nにおける観測データを、
【数1】
として、ろ過処理の結果得られる隠れ状態が従う正規分布の平均ベクトルと分散共分散行列とを、それぞれ、
【数2】
とする。
【0017】
同様に、予測処理の結果得られる隠れ状態が従う正規分布の平均ベクトルと分散共分散行列とを、それぞれ、
【数3】
とすると、カルマンフィルタでは異なる時刻の隠れ状態間でマルコフ性が、隠れ変数と観測データの間では線形の演算がそれぞれ成り立つと見なして、
【数4】
【数5】
と、それぞれ定式化する。
【0018】
式(1)はシステム方程式、式(2)は観測方程式と呼ばれる。また、行列Fは状態遷移行列、Hは観測行列であり、
【数6】
は、それぞれ行列分散がQ,Rのホワイトノイズである。このときろ過処理、予測処理は、それぞれ、
【数7】
【数8】
【数9】
【数10】
で逐次計算される。
【0019】
なお、式(3),(4)の行列Kはカルマンゲインと呼ばれ、
【数11】
で計算される。例えば、隠れ状態を現時刻および1時刻前の真の車両位置
【数12】
を用いて、
【数13】
と定義し、隣接した3時刻間での車両運動が等速直線運動で近似できるとすると、状態遷移行列と観測行列は、
【数14】
【数15】
の形で記述できる。
【0020】
式(1)〜(10)から分かるとおり、カルマンフィルタは観測データが毎時刻与えられることを前提とした時に精度が保証される処理である。注目車両のオクルージョンが著しい場合には検出漏れが発生し、対応した観測データが存在しないことになる(以下、欠測状態と略す)。観測データが存在しない場合には、一般的に、1時刻前に算出した予測位置を現時刻のろ過位置とするが、欠測状態が長くなればなるほど、実際の車両の挙動との乖離が大きくなり、追跡精度は低下する。
【0021】
特許文献2の技術では、先行車両の速度が予め設定した閾値以下となった場合、自車両の絶対位置と絶対速度、それまでに蓄積した自車両の位置との相対速度、相対速度の変化量から、最尤推定法により現時刻における先行車両の絶対位置と絶対速度を求めているが、特許文献1の技術と同じく、閾値以下の低速走行状態が長くなる程、実際の先行車両の挙動との乖離が大きくなる。
【0022】
特許文献3の技術では、交通量シミュレーションモデルに対してプローブ情報を発信している車両の走行速度情報と、路側に設置した車両感知センサからの交通流および速度に関する情報とを入力として、カルマンフィルタの状態変数を推定しているが、これらの情報の欠測状態が長くなると推定精度が劣化するのは前記の特許文献1や2と同じである。
【0023】
また、特許文献1〜3の技術は、同一車両に同一車両番号が割当てられていることが前提であり、この割当てが正しくない場合には処理が破綻する。オクルージョンが発生しているカメラ画像からの車両検出のように、欠測状態が長期化しやすい状況下で従来どおりカルマンフィルタを用いると、推定した状態と実際の先行車両の挙動との乖離から実際の車両と車両番号とにずれが生じ、前記の同一車両/同一車両番号の前提が成り立たなくなる。
【0024】
特許文献4の技術では、物体番号iと内部状態xとを一対一で対応付けして内部状態を確率分布で表現している。よって、時刻毎の確率分布の更新計算において、オクルージョンの影響で物体iと物体jの確率分布の入れ替りが発生する可能性があり、この場合には、元の物体番号の対応関係に回復することはできず、よって信頼性が乏しいという問題がある。
【0025】
本発明の目的は、追跡対象の車両オブジェクトと車両番号との時間的な連続性が途絶えることを防止しつつオクルージョンに対して頑健で高精度かつ高効率な車両追跡が可能な車両追跡装置及び車両追跡方法ならびにそのプログラムを提供することである。
【課題を解決するための手段】
【0026】
本発明による車両追跡装置は、道路画像から個々の車両をオブジェクトとして検出する車両検出手段と、この検出された個々のオブジェクトに対して複数の車両番号を割当てる車両番号割当て手段と、前記車両番号割当て手段により割当てられた車両番号の各々に基づいて走行経路を追跡する走行経路追跡手段と、前記行経路追跡手段により得られた追跡経路情報から各経路の確率的な確からしさを尤度として算出する経路尤度算出手段と、前記車両番号割当て手段により割当てられた前記車両番号のうち前記経路尤度算出手段により算出された尤度が小なる経路に対応した車両番号を削除する車両番号枝刈り手段とを含むことを特徴とする。
【0027】
本発明による車両追跡方法は、道路画像から個々の車両をオブジェクトとして検出する車両検出ステップと、この検出された個々のオブジェクトに対して複数の車両番号を割当てる車両番号割当てステップと、この割当てられた車両番号の各々に基づいて走行経路を追跡する走行経路追跡ステップと、追跡経路情報から各経路の確率的な確からしさを尤度として算出する経路尤度算出ステップと、前記割当てられた車両番号のうち前記経路尤度算出ステップにより算出された尤度が小なる経路に対応した車両番号を削除する車両番号枝刈りステップとを含むことを特徴とする。
【0028】
本発明によるプログラムは、車両追跡方法をコンピュータにより実行するためのプログラムであって、道路画像から個々の車両をオブジェクトとして検出する処理と、この検出された個々のオブジェクトに対して複数の車両番号を割当てる処理と、この割当てられた車両番号の各々に基づいて走行経路を追跡する処理と、追跡経路情報から各経路の確率的な確からしさを尤度として算出する処理と、前記割当てられた車両番号のうち前記経路尤度算出ステップにより算出された尤度が小なる経路に対応した車両番号を削除する処理とを含むことを特徴とする。
【発明の効果】
【0029】
本発明によれば、道路画像を用いた車両追跡において欠測状態が生じた場合に、車両検出結果に複数の車両番号を割当てることにより、車両検出結果と車両番号との時間的な連続性を確保すると共に、該車両番号のうち追跡処理の結果得られる尤度が小さいものは削除することによって、追跡処理の効率化を図ることができるという効果がある。また、本発明によれば、観測データが存在する場合には尤度を大きく、欠測状態である場合には尤度を小さくすることにより、追跡処理の精度向上を図ることができるという効果がある。
【発明を実施するための最良の形態】
【0030】
以下に、図面を参照しつつ本発明について詳細に説明する。図1は本発明の実施の形態の概略機能ブロック図である。図1を参照すると、本発明の実施の形態による車両追跡装置は、道路画像から個々の車両を検出して座標と共に出力する車両検出部1と、車両検出部1の処理結果である個々の車両を車両オブジェクトと見なして複数の車両番号を割当てる車両番号割当て部2と、車両検出部1から得られた個々の車両オブジェクトの位置情報及び車両番号割当て部2で割当てられた車両番号を用いて、個々の車両番号に対応した車両オブジェクトの走行経路を追跡、記録する走行経路追跡部3と、走行経路追跡部3の出力結果である追跡経路情報から、各経路の確率的な尤もらしさを尤度として算出する経路尤度算出部4と、車両番号割当て部2で割当てられた車両番号のうち、経路尤度算出部4で算出された尤度が小さい経路に対応した車両番号を車両オブジェクトから削除する車両番号枝刈り部5とから構成されている。
【0031】
次に、図1に示した本実施の形態の全体の動作について説明する。車両検出部1では、路側に設置したカメラから得られる道路画像から車両を検出する。車両番号割当て部2では、車両検出部1で検出されて走行経路の追跡を開始すると判定された車両オブジェクトに対して車両番号の割当てを行う。車両番号割当て部2の動作を、時刻t=Tにおける車両オブジェクトの追跡状況を表す図2を用いて説明する。
【0032】
図2において、車両オブジェクトαが走行経路の追跡を開始するオブジェクトと判定されたと仮定する。車両番号割当て部2では、先ず、車両オブジェクトαが走行する車線2上に存在する追跡中の車両オブジェクトのうち、車両オブジェクトαの前方、後方で最も近い位置にある車両オブジェクトの位置を算出する(図2では車両オブジェクトA,Bで表現)。
【0033】
更に、車両オブジェクトαに隣接した車線1、車線3上に存在する追跡中の車両オブジェクトのうち、車両進行方向で車両オブジェクトαと同じ位置(図2の破線)を基点として、前方および後方を探索し、基点に最も近い車両オブジェクトの位置を算出する(図2では、車両オブジェクトC,Dで表現)。車両オブジェクトαには、これらの追跡中の車両オブジェクトに割当ててある車両番号に合わせて、未使用の車両番号を新規に1つ採用して割当てる。
【0034】
図2の場合、車両オブジェクトA〜Dにそれぞれ、{10,21}、{18}、{33、47}、{53}の車両番号が割当てられているので、未使用の車両番号80とこれらの車両番号を合わせて{80/10,21,18,33,47,53}の7つの車両番号が割り当てられる。なお、車両番号集合のうち、/の右側が継承した車両番号、左側が新規に採用した車両番号を表す。
【0035】
走行経路追跡部3では、前記車両番号割当て部2で割り当てた車両番号を用いて、個々の車両オブジェクトの走行経路を追跡してその結果を記録する。この走行経路追跡部3の動作を図3、図4を用いて説明する。図3は、車両オブジェクトαに車両オブジェクトA,Bが保持している車両番号を割当てることによって発生する経路の分岐を表す。図3から分かるとおり、車両オブジェクトαに対して車両番号10を割当てて走行経路を追跡することは、車両オブジェクトαを車両番号10の2番目の経路を走行する車両と仮定して追跡を行うことを意味する。
【0036】
同様に考えることで、車両オブジェクトαは、車両番号10の2番目の経路、車両番号18の2番目の経路、車両番号21の2番目の経路、車両番号80の1番目の経路のそれぞれを走行経路として保持し得る車両を表現していることになる。車両オブジェクトαが保持し得るこれら複数の経路のうち、最も尤度が高い経路を用いて車両オブジェクトαの位置計算などを行う。
【0037】
図4は、図3で説明した各車両番号が持つ複数の経路における車両位置推定を説明するもので、車両番号10が割当てられた車両オブジェクトの走行経路を表す。図2より、時刻t=Tにおいて車両番号10が割当てられている車両実オブジェクトには、車両オブジェクトαとAとがある。
【0038】
図4の太破線で示した時刻t=T−1までの車両番号10の走行経路情報を用い、車両検出部1の出力結果のうち、図4の黒丸印「・」で示した車両オブジェクトAの観測位置を、時刻t=Tにおける車両番号10の車両オブジェクトの観測位置と見なした場合(=車両番号10の1番目の経路)、及び図4のバツ印「×」で示した車両オブジェクトαの観測位置を、時刻t=Tにおける車両番号10の車両オブジェクトの観測位置と見なした場合(=車両番号10の2番目の経路)のそれぞれについて真の車両位置を推定し、その値を走行経路追跡部3の処理結果として出力する。
【0039】
経路尤度算出部4では、走行経路追跡部3で推定した車両オブジェクトの真の位置と観測データの位置とを用いて、推定した走行経路の確率的な確からしさやスコアを尤度として算出する。スコアSとしては、例えば1時刻前に推定した車両実オブジェクトの現時刻iでの予測位置及び観測位置を、それぞれ、
【数16】
とし、更に、任意の微小正数をεとし、また、時刻Tにおける車両実オブジェクトの前後関係に基づいて調整を行う係数をηとして、
【数17】
と定義することにより、推定した予測位置と観測位置とのずれが小さいほど大きな値をとるスコア関数を採用することが可能である。
【0040】
車両番号枝刈り部5では、追跡中の各車両オブジェクトに割当てられた車両番号のうち、経路尤度算出部4で算出された尤度が小さい経路に対応した車両番号を削除する。図2において、進行方向を逆走する車両がないという前提の下で、車両実オブジェクトαにおける車両番号枝刈り部5の動作を説明する。走行経路追跡部3と経路尤度算出部4において、車両実オブジェクトαに割当てられた各車両番号の時刻t=T−1までで持つ走行経路情報を用い、時刻t=Tにおける観測位置が車両検出部1で得られた車両実オブジェクトαの位置と見なした時の真の車両位置と尤度とが、各車両番号に対して計算される。
【0041】
車両が逆走することはないので、車両実オブジェクトαの前方を走行する車両Aから継承した車両番号10,21については、式(11)のηを小さくすることにより、その尤度を小さくすることができる。車両番号枝刈り部5では、車両実オブジェクトαに割当てられた車両番号のうち、車両番号10,21が削除される。
【0042】
本実施の形態における車両検出部1において、車両検出方法には、多層Neural Network、SVM(Support Vector Machine) 、Adaboost等の学習済みの識別器を用いることができる。また、オプティカルフロー法、背景差分法、モーションステレオ法、複眼ステレオ法等を用いて検出を行ってもよい。
【0043】
また、本実施の形態における車両番号割当て部2において、車線変更を考慮しない場合には、隣接車線上の車両実オブジェクトが持つ車両番号の継承を除外してもよい。更に、本実施の形態における走行経路追跡部3では、HMM(Hidden Markov Model)、Kalman Filter 、DBN(Dynamic Bayesian Network) のように、観測データから隠れ状態を推定する統計的な手法を用いてもよい。また、Cell Automatonのように隣接する車両間の挙動に制限を加えるモデルを用いてもよい。
【0044】
更にはまた、本実施の形態における走行経路追跡部3では、観測データと車両オブジェクトとの対応が付いている場合には、Kalman Filter などの隠れ状態推定法、対応が付かない場合には、Cell Automatonなどの車両挙動制限モデルを組み合わせて用いてもよい。隠れ状態推定法としてKalman Filter、車両挙動制限モデルとしてCell Automatonを用いた場合の走行経路追跡方法を、図5を用いて説明する。
【0045】
観測データに基づき走行経路追跡を行っている車両オブジェクトを車両実オブジェクトと記す。また、車両実オブジェクト間に車両が存在するものと見なして配置する車両オブジェクトを車両仮想オブジェクトと記す。Kalman Filter を用いて走行経路追跡を行っている車両実オブジェクトについては、車両仮想オブジェクトの存在に関係なく、尤度の高い走行経路から算出される真の車両位置に基づいてセル画像上でその位置を更新し、同一車線後方に存在する他の車両実オブジェクトの手前まで車両仮想オブジェクトを、図6に示すように設定する。
【0046】
Cell Automatonを用いて走行経路追跡を行っている車両実オブジェクトおよび車両仮想オブジェクトについては、同一車線前方に存在する車両実/仮想オブジェクトの追い越しが発生しないように、車両オブジェクトのセル画像上の位置を更新する。
【0047】
本実施の形態における経路尤度算出部4において用いられる尤度は、車両実オブジェクトの真の位置と観測位置との差が小さいほど大きくなる関数であれば、どのようなものを用いてもよい。
【0048】
以下に、本発明の実施の形態の動作の詳細について、図7から図17のフローチャートを参照して説明する。図7は全体の処理の流れを表しており、図7のステップA1が車両検出部1の動作であり、ステップA2〜A5が車両番号割当て部2の動作を示し、ステップA7〜A8が走行経路追跡部3の動作を示し、またステップA10〜A12が経路尤度算出部4の動作を示す。そして、ステップA6,A9が車両番号枝刈り部5の動作を表している。
【0049】
図8は図7におけるステップA3の処理の流れの詳細を示し、図9は図8におけるステップB3の動作の詳細を示す。図10は図8におけるステップB14の動作の詳細を示し、図11は図10におけるステップD4の動作の詳細を示し、図12は図11におけるステップE9の動作の詳細を示す。
【0050】
また、図13は図11におけるステップE15の動作の詳細を示し、図14は図13におけるステップG5の動作の詳細を示し、図15は図8におけるステップB15の動作の詳細を示す。更に、図16は図7におけるステップA4の動作の詳細を示し、図17は図7におけるステップA8の動作の詳細を示したものである。
【0051】
なお、図10のステップD2,D5,D10及び図15のステップI2,I6が車両番号割当て部2の動作に対応し、図12のステップF4、図14のステップH5が経路尤度算出部4の動作にに対応し、それ以外が走行経路追跡部3の動作に対応する。
【0052】
以下の説明では、車両オブジェクトの1時刻前の真の位置(ろ過位置と略す)と現時刻の観測位置との対応が取れている、もしくは欠測状態の継続時間が予め定めた閾値以下の場合は、Kalman Filter (以下KMと略す)、それ以外の場合はCell Automaton(以下CAと略す)を用いることとし、セル画像上に図5で示した車両実オブジェクト及び車両仮想オブジェクトを設定して、車両オブジェクトの挙動制御を行うものとする。
【0053】
また、各車両実オブジェクト及び各車両番号が持つ走行経路追跡情報を保存するための構造体を、図18及び図19に示し、処理に共通な情報を保存するための構造体を図20のように定義する。図18及び図19において、追跡状態、追跡モードは、注目車両番号の走行経路追跡状態と、走行経路追跡に用いている手法を表す。追跡状態は、初期状態(=0)、待機状態(=1)、実行状態(=2)の3状態、及び追跡モードは、初期モード(=0)、KMを用いるモード(=1)、CAを用いるモード(=2)の3モードを取り、これらの状態間、モード間を図21のように遷移するものとする。また、MaxObjは車両番号の最大数、MaxPath は車両番号1つ当りに対して許容する走行経路の最大数である。
【0054】
ステップA1では、車両検出処理により画像上の座標系(画像座標)で算出された車両の観測データ座標を、道路上に設定した実スケールの座標系(世界座標)に変換して、現時刻における観測データ座標として構造体od[1][i].info[j].Obs.{x/y}に保存する。なお、i(=0,1, …,LaneNum-1)は、観測座標が存在する車線番号、j(=0,1, …,od[1][i].DatNum−1 )は車両実オブジェクトの識別番号であり、od[1][i].DatNum は、現時刻において車線番号iの車線上に存在する観測座標の総数となる。
【0055】
ステップA2では、現時刻における各車両の観測座標od[1][i].info[j].Obs.{x/y}(i=0,1, …,LaneNum-1、j=0,1,…,od[1][i].DatNum-1)と、1時刻前の車両実オブジェクトの予測位置od[0][k].info[l].Prd.{x/y}(k=0,1,…,LaneNum-1,l=0,1, …,od[1][k].DatNum-1)の距離を比較し、その値が予め設定した閾値以外の組を対応付ける。od[1][i].info[j].Obs.{x/y}とod[0][k].info[l].Prd.{x,y}が対応付けられた場合(オブジェクト対応状態と略す)には、対応関係をod[1][i].info[j].CorObsLane=k 、od[1][i].info[j].CorObsNo=l として保存する。
【0056】
更に、od[0][k].info[l]のメンバの値をod[1][i].info[j]にコピーする。現時刻の車両実オブジェクトに対してはステップA3で、1時刻前の車両実オブジェクトのうち現時刻の車両実オブジェクトと対応付いていないものに対してはステップA4で走行経路追跡を実行する。
【0057】
ステップA5では、各車両実オブジェクトに注目し、割振られている車両番号、すなわちod[i][j].info[k].UseFlg[l]=1(i=0,1 j=0, …,LaneNum-1 k=0, …,od[i][j].DatNum-1 l=0, …,MaxObj-1)となるlの経路m(m=0,…,MaxPath-1)で注目車両実オブジェクトを含むもののうち、そのスコアiif[l].info[m][1].Score が最大となる車両番号ObjNo と経路番号PathNoが算出される。
【0058】
そして、
od[i][j].info[k].CurPosi.{x/y}=iif[ObjNo].info[PathNo][1].FltMean[0/1]
od[i][j].info[k].Prd.{x/y}=iif[ObjNo].info[PathNo][1].PrdMean[0/1]
od[i][j].info[k].Obs.{x/y}=iif[ObjNo].info[PathNo][1].Obs.{x/y}
od[i][j].info[k].Velo.{x/y}=追跡開始から現時刻までの注目実オブジェクトの平均速度
od[i][j].info[k].CurTrkStat=iif[ObjNo].info[PathNo][1].TrkStat
od[i][j].info[k].CurTrkMode=iif[ObjNo].info[PathNo][1].TrkMode
od[i][j].info[k].ObsLack=iif[ObjNo].info[PathNo][1].ObsLack
の関係により、個々の車両番号に基づく追跡情報を車両実オブジェクトに対応付ける。
【0059】
ステップA6では、各車両実オブジェクトが保持している車両番号と走行経路の組み合わせの中から、スコアの値が予め定めた閾値より小さいものを特定し、該当するものを車両番号毎の追跡情報構造体iif から削除すると共に、必要に応じて該当車両番号に対応した車両実オブジェクト毎の追跡情報構造体odのメンバ配列UseFlgの値を0に初期化する。
【0060】
ステップA7では、1時刻前と現時刻における車両実オブジェクトのうち、棄却扱いされなかったものを現時刻における車両実オブジェクト毎の追跡情報構造体od[1] に保存し直す。ステップA8では、車両仮想オブジェクトの設定並びに全車両オブジェクトのセル画像上での位置座標の更新が行わなわれ、その結果がpc.CellImg[1] 、pc.ObjPosInfo[1]、pc.ObjVeloInfo[1] に保存される。
【0061】
ステップA9では、棄却扱いと判定された現時刻の車両実オブジェクトが保持している車両番号と走行経路を、対応した車両番号毎の追跡情報構造体から削除する。ステップA10では、棄却扱いされなかった現時刻の車両実オブジェクトを1時刻前における車両実オブジェクト毎の追跡情報構造体od[0] に保存する。
【0062】
なお、追跡状態と追跡モードに関しては、
od[0][i].info[j].PastTrkStat=od[1][i].info[j].CurTrkStat
od[0][i].info[j].PastTrkMode=od[1][i].info[j].CurTrkMode
で更新する。
【0063】
ステップA11では、現時刻における車両番号毎の追跡情報構造体iif[i].info[j][1](i=0,, …,MaxObj −1 j=0,…,MaxPath−1)を1時刻前の車両番号毎の追跡情報構造体iif[i].info[j][0] に保存する。ステップA12では、現時刻におけるセル情報pc.CellImg[1] 、pc.ObjPosInfo[1]、pc.ObjVeloInfo[1] を、1時刻前のセル情報として、pc.CellImg[0、pc.ObjPosInfo[0]、pc.ObjVeloInfo[0] に保存し、現時刻におけるセル情報の初期化を行う。
【0064】
図7のステップA3の処理を図8を用いて説明する。なおステップB8、B11は同じ処理である。図8のステップB1において、現時刻の車両実オブジェクト構造体をA=od[1][i].info[j]として、可能な全てのi,jに対してステップB2〜ステップB15が行われる。ステップB2では、構造体AをCAへの入力構造体InCAに設定し、現時刻の車両実オブジェクトろ過位置A.CurPosi をInCA.FltMean、速度ベクトルA.VeloCAをInCA.Velo とする。
【0065】
ステップB3では、入力InCAに対してCAによる車両位置NewPosi.{x/y} と速度ベクトルNewVelo.{x/y} を算出する。ステップB4では、ステップB3の出力NewPosi 、NewVelo をそれぞれA.PosCA 、A.VeloCAに保存する。ステップB5では、注目オブジェクトの識別のため、TimeNo=1、LaneNo=i、ObsNo=j とされる。
【0066】
ステップB6では、追跡状態TSおよび追跡モードTMを、TS=od[1][i].info[j].CurTrkStat、TM=od[1][i].info[j].CurTrkModeとしてそれぞれ設定する。ステップB7では、注目車両実オブジェクトAの1時刻前の車両実オブジェクトとの対応状態について判定が行われ、対応関係が存在する場合はステップB9、存在しない場合はステップB8に処理がそれぞれ移る。ステップB8では、A.CurTrkStat=0、A.CurTrkMode=1として注目車両実オブジェクトAを追跡準備状態に遷移させる。ステップB9では、TMの値の判定が行われ、TM=0の場合はステップB10へ、それ以外の場合はB13へ処理がそれぞれ移る。
【0067】
ステップB10では、TSの値の判定が行われ、TS=0の場合はステップB11へ、それ以外の場合はB12へ処理がそれぞれ移る。ステップB12では、フラグを立てることにより、注目車両実オブジェクトAを棄却扱いとする。ステップB13では、TMの値の判定が行われ、TM=1の場合はステップB14へ、それ以外の場合はB15へ処理がそれぞれ移る。ステップB14では、A.Obs.{x/y} を観測座標として、注目車両実オブジェクトが現時刻において保持している全ての車両番号(現時刻に新規に生成した車両番号も含む)に対して、KMをベースとした走行経路の追跡を行う。ステップB15では、ステップB14と同じ走行経路の追跡をCAをベースに用いて行う。
【0068】
図8におけるステップB3の動作を図9を用いて説明する。ステップC1では、車両位置を表すInCA.FltMean[0/1] を座標Pos1.{x/y}に設定する。ステップC2では、セル画像上においてPos1.{x/y}に対応したセル座標C1.{x/y}が設定される。ステップC3では、1時刻前のセル画像pc.CellImg[0] において、C1と同一x座標(すなわち同一車線上)の前方を探索し、pc.CellImg[0][C2] ≠0 (後述の図17で説明するとおり、車両オブジェクトが存在するセルを表す)となるセル座標C2.{x/y}およびそれに対応した車両位置Pos2.{x/y}を算出する。
【0069】
ステップC4では、乱数Randomが生成され、ステップC5でy方向速度Velo.y=InCA.Velo.y+Random が設定される。ステップC6では、Pos3.y=Pos1.y+Velo.y、Pos3.x=Pos1.x の関係式で座標Pos3.{x/y}を設定する。ステップC7では、Pos3とPos2の位置関係が判定される。Pos3がPos2より前方となる場合は、同一車線上での車両の追い越しというあり得ない状況を意味しているため、ステップC8でPos3.y=Pos2.y と設定し直す。ステップC9では、Pos3.{x/y}をNewPosi.{x/y} 、NewVelo.{x/y}=Pos3.{x/y}-Pos1.{x/y} として保存する。
【0070】
なお、ステップC5のRandomの加算は車両の加減速を再現するものである。また、x方向速度についても乱数を加算し、ステップC6で車線変更の可能性を加味して良い。
【0071】
図8のステップB14の処理を図10を用いて説明する。なお、ステップD4とD8とD12とは同じ処理であり、またステップD6とD10とは同じ処理であり、更にステップD7とD11とは同じ処理を表す。ステップD1では、TSの値の判定が行われ、TS=0の場合はステップD2へ、それ以外の場合はステップD9へ処理がそれぞれ移る。
【0072】
ステップD2では、現時刻において未使用の車両番号を新規車両番号として生成し、その値をNewNo とする。ステップD3では、KMへの入力車両番号をステップD2で生成したNewNo とする。ステップD4では、入力車両番号に対して観測座標A.Obs.{x/y} を用いてKMもしくはCAを用いた走行経路追跡処理を実行する。
【0073】
ステップD5では、NewNo を既存車両番号扱いするためにA.UseFlg[NewNo]=1 、pc.UseFlg[NewNo]=1としてフラグを立てた上で、A.CurTrkStat=2として追跡状態を実行状態に遷移させる。ステップD6では、注目車両実オブジェクトAの観測位置A.Obs.{x/y} を基準として、自走車線、隣接車線の前後に存在する1時刻前の車両実オブジェクトを探索する。そして、各車線、各方向(前後)で最も注目車両実オブジェクトAに近い車両実オブジェクト(図2を用いた説明を参照)が保持する車両番号を継承し、それらの車両番号xに対してA.UseFlg[x]=1 としてフラグを立て、保持既存車両番号と見なす。
【0074】
ステップD7では、現時刻における注目実車両オブジェクトAの保持既存車両番号をKMへの入力番号として設定する。ステップD9では、現時刻における注目車両実オブジェクトの欠測状態継続フレーム数A.ObsLack の値の判定が行われ、A.ObsLack ≠0 の場合はステップD10へ、それ以外の場合はステップD11へ処理がそれぞれ移る。
【0075】
図10のステップD4の処理を図11を用いて説明する。ステップE1で、車両番号i(=0,1, …,MaxObj-1 )を設定し、全てのiに対してステップE2〜E16の処理を実行する。ステップE2では、pc.UseFlg[i]の値の判定が行われ、その値が1の場合は、走行経路追跡に使用中の車両番号と見なして処理をステップE3に移す。ステップE3では、車両番号iが新規に生成した車両番号か否かの判定が行われ、Yes の場合はステップE4で探索経路上限数End を1に設定し、Noの場合はステップE5でEnd=MaxPath に設定する。
【0076】
ステップE6では、経路番号j(=0,1, …,End-1)を設定し、全てのjに対してステップE7〜E15の処理を行う。ステップE7では、車両番号iのj番目の経路の1時刻前の追跡状態をTS=iif[i].info[j][0].TrkStatとし、追跡モードをTM=iif[i].info[j][0].TrkModeとする。ステップE8では、TMの値の判定が行われ、1の場合はステップE9へ、それ以外の場合はステップE10へ処理をそれぞれ移す。
【0077】
ステップE9では、車両番号iのj番目の走行経路情報iif[i].info[j][0] と、与えられている観測座標を用いてKMを実行する。ステップE10では、TMの値の判定が行われ、TMの値が2の場合はステップE11及びE12でTSの値の判定が行われる。TS=1の場合はステップE13で、mode=1と設定され、TS=2の場合はステップE14でmode=0と設定される。ステップE15で、車両番号iのj番目の走行経路情報iif[i].info[j][0] 及び与えらたmodeの値をモジュール実行モードとしてCAを実行する。
【0078】
ステップE16では、更新された走行経路追跡情報iif[i].info[j][1] をそのスコアiif[i].info[j][1].Score の降順に並び替える。後述のとおり、車両のろ過位置、予測位置、スコアの計算結果はiif[i].info[MaxPath][1] に保存される。ステップE16を行うことにより、iif[i].info[j][1] は常にスコアの大きい順に並んでいることになり、図7のステップA5で行う各車両番号に対する最大スコア経路の探索が容易になる。
【0079】
図11におけるステップE9の動作を図12を用いて説明する。ステップF1では、車両番号iのj番目の走行経路追跡情報iif[i].info[j][0] のろ過分布平均ベクトルFltMean 、分散共分散行列FltVar、予測分布平均ベクトルPrdMean 、分散共分散行列PrdVarを、それぞれ式(1)〜(10)で示した
【数18】
とする。ステップF2で、これらのベクトル、行列と与えられた観測座標を用いてろ過処理と予測処理とを行う。
【0080】
ステップF3では、ステップF2で得られた
【数19】
を、MaxPath+1 番目の走行経路追跡情報iif[i].info[MaxPath][1] のFltMean 、FltVar、PrdMean 、PrdVarにそれぞれ保存する。
【0081】
ステップF4では、iif[i].info[j][0].PrdMean[0/1](すなわち1時刻前に予測した現時刻での車両位置)と与えられた観測座標から、例えば式(11)等を用いて経路スコアが計算される。ステップF5では、ステップF4で得られたスコアがiif[i].info[MatPath][1].Score に保存され、追跡状態iif[i].info[MaxPath][1].TrkStat=2 、追跡モードiif[i].info[MaxPath][1].TrkMode=1 が設定される。
【0082】
ステップF6において、注目車両実オブジェクトが1時刻前の車両実オブジェクトと対応付いていると判定された場合にはステップF7に、未対応と判定された場合にはステップF9に処理がそれぞれ移る。ステップF7では、iif[i].info[MaxPath][1].Obs.{x/y} に入力観測座標が保存される。ステップF8では、欠測状態継続フレーム数を表すiif[i].info[MaxPath][1].ObsLack の値が0に設定される。ステップF9では、iif[i].info[j][0].ObsLack の値をiif[i].info[MaxPath][1].ObsLack にコピーした上で、ステップF10で、iif[i].info[MaxPath][1].ObsLack に1を加算して欠測状態継続フレーム数を更新する。
【0083】
ステップF11では、注目車両実オブジェクトが欠測状態、すなわち対応する観測座標が存在しない状態であるため、ステップF3で得られたろ過処理の平均ベクトルの第0、1成分を観測座標と見なして、iif[i].info[MaxPath][1].Obs.{x/y} に保存される。ステップF12で、iif[i].info[MaxPath][1].ObsLack が予め設定した閾値ObsLackThre と一致したと判定された場合は、CAによる追跡へ追跡モードを遷移させるために、ステップF13で、追跡モードiif[i].info[MaxPath][1].TrkMode の値を2に設定する。
【0084】
図11におけるステップE15の動作を図13を用いて説明する。なお、ステップG7は図11のステップE9と、ステップG8は図11のステップE16とそれぞれ同じであるため、説明を省略する。ステップG1では、1時刻前の予測処理で得られた予測位置iif[i].info[j][0].PrdMean[0/1]と、入力観測座標との変位ベクトルΔx,Δyとがそれぞれ算出される。ステップG2では、入力されたmodeの値が判定され、0の場合はステップG3に、それ以外の場合はステップG4にそれぞれ処理が移る。
【0085】
ステップG3において、Δx,Δyが共に予め設定された閾値以下となる場合はステップG6に、それ以外の場合はステップG5にそれぞれ処理が移る。ステップG4において、Δx,Δy共に予め設定された閾値以下となる場合はステップG7に、それ以外の場合はステップG5にそれぞれ処理が移る。ステップG5では、注目車両実オブジェクトに対してCAが実行される。ステップG6では、CAで追跡を実行中の注目車両実オブジェクトの追跡状態を実行状態から待機状態へ遷移させる処理が行われる。
【0086】
図13におけるステップG5の動作を図14を用いて説明する。なお、図14のステップH7,H8はそれぞれ図12のステップF9,F10とそれぞれ同一であるため説明を省略する。ステップH1では、図8のステップB5や後述する図16のステップJ5で設定した車両実オブジェクトを識別するTimeNo、LaneNo、ObsNo を用いて、od[TimeNo][LaneNo].info[ObsNo]が構造体Aにコピーされる。ステップH2では、与えられている観測座標とCAを用いた更新後の座標との差Disp.{x/y}がDisp.{x/y}=A.PosCA.{x/y}−A.Obs.{x/y} で計算される。
【0087】
ステップH3では、1時刻前のろ過処理分布iif[i].info[j][0].{FltMean,FltVar}と、予測処理分布iif[i].info[j][0].{PrdMean,PrdVar}とが、それぞれiif[i].info[MaxPath][1].{FltMean,FltVar}、iif[i].info[MaxPath][1].{PrdMean,PrdVar}にそれぞれ保存される。ステップH4では、iif[i].info[MaxPath][1].{PrdMean,FltMean}[0/2]にはDisp.xが、iif[i].info[MaxPath][1].{PrdMean,FltMean}[1/3]にはDisp.yがそれぞれ加算される。
【0088】
ステップH5では、注目車両番号iの注目走行経路jについて、例えば式(11)を用いたスコア計算が行われ、iif[i].info[MaxPath][1].Score にその値が保存される。ステップH6では、現時刻における追跡状態iif[i].info[MaxPath][1].TrkStat が追跡実行状態を表す2に設定され、追跡モードiif[i].info[MaxPath][1].TrkMode にはCAを表す2が設定される。
【0089】
また、CAで走行経路の追跡を行うのは欠測状態のときであるので、入力観測座標には、注目車両実オブジェクトのCAを用いた場合の更新座標od[TimeNo][LaneNo].info[ObsNo].PosCA.{x/y}を用いることとし、その値をiif[i].info[MaxPath][1].Obs.{x/y} に保存する。ステップH4の処理を行う理由を説明する。CAが実行モードである間は、ろ過と予測を行うことができないので、CAによる追跡開始時点におけるろ過位置と予測位置との位置関係を時間的に保持するために、CAで算出される車両オブジェクトの位置の分を逐次オフセットとして加算する処理がステップH4である。
【0090】
図13におけるステップG6の動作は、図14のステップH6において、追跡状態iif[i].info[MaxPath][1].TrkStat を、追跡待機状態を表す1に設定する以外は、全て図14と同一である。
【0091】
図8におけるステップB15の動作を図16を用いて説明する。なお、図15のステップI2〜I8、I9〜I10はそれぞれ図10のステップD2〜D8、D11〜D12と同一であるため説明を省略する。ステップI1では、TSの値が判定され、TS=1の場合はステップI2に、それ以外の場合はステップI9にそれぞれ処理を移す。
【0092】
図7におけるステップA4の動作を図16を用いて説明する。なお、図16のステップJ2〜J4は図8のステップB2〜B4と同一であり、図16のステップJ16、ステップJ17は、それぞれ図11のステップE9、図13のステップG5と同一であるので説明を省略する。図16のステップJ1において、1時刻前の車両実オブジェクト構造体をA=od[0][i].info[j]として、可能な全てのi,jに対して、ステップJ2〜J17が行われる。
【0093】
ステップJ5では、注目オブジェクトの識別のため、TimeNo=0、LaneNo=i、ObsNo=j とされる。ステップJ6では、追跡状態TSおよび追跡モードTMを、TS=od[0][i].info[j].CurTrkStat、TM=od[0][i].info[j].CurTrkModeとしてそれぞれ設定する。ステップJ7では、注目車両実オブジェクトAの1時刻前の車両実オブジェクトとの対応状態について判定が行われ、対応関係が存在しない場合はステップJ8に処理が移る。ステップJ8では、TSとTMの値の判定が行われ、TM=1かつTS=0の場合は、ステップJ9で注目車両実オブジェクトを棄却扱いとし、それ以外の場合はステップJ10に処理を移す。
【0094】
ステップJ10では、車両番号k(=0,1, …,MaxObj-1 )を設定し、全てのkに対してステップJ11〜J17の処理を実行する。ステップJ11では、pc.UseFlg[k]の値の判定が行われ、その値が1の場合は走行経路追跡に使用中の車両番号と見なして処理をステップJ12に移す。ステップJ12では、経路番号l(=0,1, …,MaxPath-1)を設定し、全てのlに対してステップJ13〜J17の処理を行う。
【0095】
ステップJ13では、1時刻前における車両番号kのl番目の経路の追跡モードiif[k].info[l][0].TrkMode がtmに保存される。ステップJ14において、tm=1の場合はステップJ16に、それ以外の場合はステップJ15に処理が移る。ステップJ15 においてtm=2と判定された場合はステップJ17 にそれぞれ処理が移る。
【0096】
図7におけるステップA8の動作を図17わ用いて説明する。なお、図17のステップK5は図8のステップB3と同一であるため説明を省略する。ステップK1では、各車両実オブジェクトの車両位置od[1][i].info[j].CurPosi.{x/y}(i=0, …,LaneNum-1、j=0,…,od[1][i].DatNum-1) に対応したセル座標Cを求め、現時刻のセル画像上で対応した画素pc.CellImg[1][C]の値を1に設定する。ステップK2では、全てのk(=0, …,CellNum-1)に対してステップK3〜K7の処理を行う。
【0097】
ステップK3では、1時刻前のセル画像における座標kでの画素値pc.CellImg[0][k]が判定され、その値が2の場合は、該当セル座標上に車両仮想オブジェクトが存在すると見なしてステップK4に処理を移す。ステップK4では、セル座標k上にある車両仮想オブジェクトが持つ位置情報pc.ObjPosInfo[0][k].{x/y} 及び速度情報pc.ObjVeloInfo[0][k].{x/y}がCAの入力InCAに設定される。
【0098】
ステップK6では、ステップK5で算出した車両仮想オブジェクトの更新後車両位置座標NewPosi.{x/y} に対応したセル座標C’が算出される。ステップK7では、更新後の車両仮想オブジェクトの情報が、現時刻の情報としてpc.CellImg[1][C ’]=2 、pc.ObjPosInfo[1][C’].{x/y}=NewPosi.{x/y} 、pc.ObjVeloInfo[1][C ’].{x/y}=NewVelo.{x/y} として保存される。ステップK8では、全てのm(=0, …,CellNum-1)に対してステップK9〜K13の処理を行う。
【0099】
ステップK9では、現時刻でのセル画像pc.CellImg[1][m]の値が判定され、その値が1の場合はステップK10に処理が移る。ステップK10では、セル座標m上に存在する車両実オブジェクトの現時刻における追跡モードがTrkMode に保存される。ステップK11では、TrkMode の値に対する判定が行われ、その値が1の場合はステップK12に処理が移る。ステップK12では、現時刻におけるセル画像pc.CellImg[1] 上においてセル座標mと同一x座標(すなわち同一車線)かつ後方において、車両実オブジェクトが存在するセルの探索が行われ、該当するセル座標がnとして保存される。
【0100】
ステップK13では、セル座標mとセル座標nで挟まれた全てのセル座標C’’に対して、pc.CellImg[1][C ’’]=2 、pc.ObjPosInfo[1][C’’].{x/y}=C ’’に対応した世界座標、pc.ObjVeloInfo[1][C ’’].{x/y}=セル座標m上に存在する車両実オブジェクトが持つ速度ベクトルとして、車両仮想オブジェクトの設定が行われる(図6参照)。
【0101】
このように、欠測状態のように車両番号の一意的な割当てが困難な場合には、複数の車両番号の割当てを許容することで、車両オブジェクトと車両番号の時間的な連続性が途絶することを防止が可能なことである。また、車両オブジェクトと観測データとの対応付けの有無によって、追跡経路の尤度計算を制御し、この尤度の大小関係に基づいて割当てた車両番号の枝刈りを行うことにより、オクルージョンに頑健で高精度かつ高効率な車両追跡ができることになる。
【0102】
以上をまとめると、本発明によれば、車両走行経路追跡処理において車両オブジェクトと車両番号の時間的な連続性が途絶することを防止しつつ、オクルージョンに頑健で高精度かつ高効率な車両追跡ができることになる。
【0103】
なお、上記の実施の形態における各動作フローは、予めその動作手順をプログラムとして記録媒体に格納しておき、これをコンピュータにより読込ませて実行させる様に構成できることは明白である。
【図面の簡単な説明】
【0104】
【図1】本発明の実施の形態の概略機能ブロック図である。
【図2】注目車両オブジェクトへの複数車両番号割当て方法を説明する図である。
【図3】注目車両オブジェクトが保持する複数車両番号の複数経路を説明する図である。
【図4】注目車両番号の複数経路に対して推定される真の車両位置を説明する図である。
【図5】車両実オブジェクトと車両仮想オブジェクトとを用いた走行経路追跡を説明する図である。
【図6】車両仮想オブジェクトの設定方法を説明する図である。
【図7】本発明の実施の形態の全体の動作を示すフローチャートである。
【図8】図7のステップA3の詳細を示すフローチャートである。
【図9】図8のステップB3の詳細を示すフローチャートである。
【図10】図8のステップB14の詳細を示すフローチャートである。
【図11】図10のステップD4の詳細を示すフローチャートである。
【図12】図11のステップE9の詳細を示すフローチャートである。
【図13】図11のステップE15の詳細を示すフローチャートである。
【図14】図13のステップG5の詳細を示すフローチャートである。
【図15】図8のステップB15の詳細を示すフローチャートである。
【図16】図7のステップA4の詳細を示すフローチャートである。
【図17】図7のステップA8の詳細を示すフローチャートである。
【図18】車両実オブジェクト毎の追跡情報構造体を説明する図表である。
【図19】車両番号毎の追跡情報構造体を説明する図表である。
【図20】追跡処理共通情報構造体を説明する図表である。
【図21】注目車両番号に対する追跡状態と追跡モードとの遷移関係を示す図である。
【図22】セル画像の概念を表す図である。
【図23】Cell Automatonのルール184を説明する図である。
【符号の説明】
【0105】
1 車両検出部
2 車両番号割当部
3 走行経路追跡部
4 経路尤度算出部
5 車両番号枝刈り部
【技術分野】
【0001】
本発明は車両追跡装置及び車両追跡方法に関し、特にカメラによる撮像画像中に存在する車両を追跡する車両追跡方式に関するものである。
【背景技術】
【0002】
近年の自動車開発のキーワードとして、「安全・安心」がある。日本社会の高齢化に伴い、ドライバーの高齢者人口が今後増大していくのは避けられないが、判断力、注意力、体力などが衰えた高齢者ドライバに対して安全で安心できる運転をサポートすることは、自動車業界にとって強く望まれていることである。自動車にとっての安全、安心とは、交通事故の発生を回避するか、発生した場合にその損害を最小限に食い止めることと考えることができる。
【0003】
自動車の高性能化や道路交通法の改正等により、交通事故死者数は平成9年の9,640人から平成18年の6,352人と着実に減少を続けているものの、負傷者数はほぼ横ばいであり、自動車の安全性に関しては更なる向上が求められている。自動車と人や物との衝突を回避するために必要な自動車周辺状況認識技術として、例えばミリ波レーダを用いた前方車両衝突回避システムや、遠赤外線画像をカーナビゲーション画面に表示することによる夜間道路画像明瞭化システム、更には前方カメラを用いて白線を認識することによる車線逸脱警報システムなどが実用化されている。
【0004】
これらは、1台の車両で処理が完結する技術であるが、より高度な状況認識を実現するアプローチとして、車車連携技術や路車連携技術がある。車車連携では、道路上を走行する各車両が互いに無線通信を行い、自車両の周辺状況を他車両に対して提供することによって、自車両のみでは把握が困難な周辺状況の取得が可能となる。車車連携が実現することにより、例えば死角から他車両が飛び出してくることによる出会い頭の衝突事故の回避が期待される。
【0005】
路車連携では、道路脇に設置したセンサを用いて個々の車両の走行状態をモニタリングし、これらの走行情報を各車両に配信する。路車連携が実現することにより、例えば渋滞末尾の検出と通知が可能となる。また、路車連携で用いるセンサの一つとしてカメラを用いることがあるが、カメラで取得した道路画像から個々の車両を検出しその走行経路を追跡することで、交差点内での右折車と直進車の衝突防止警告システムの構築も可能となる。カメラをセンサとして用いることの利点には、簡易な設定および低コストで広範囲をモニタリングでき、また個々の車両を道路上の任意の位置で計測できることが挙げられる。
【0006】
一方、大きな問題点として、注目車両が他車両に遮蔽されることにより画像上で注目車両の一部が欠落して観測されるいわゆるオクルージョンの場合、注目車両が未検出扱いとなる可能性が高くなるという点が挙げられる。特に、路車連携技術が強く望まれている交差点付近では、信号待ち時に車両が停車して画像上でオクルージョンが多発する。従って、画像センサを使った路車連携では、オクルージョンに頑健な車両追跡技術が必須である。路側に設置したセンサから車両を検出し、その走行経路を追跡する従来技術には、以下のようなものが知られている。
【0007】
特許文献1を参照すると、注目車両を構成する部分毎にテンプレートを用意し、これらのテンプレートを入力画像中のオブジェクトにマッチングすることにより個々の車両を検出する。その際、車両位置に対してカルマンフィルタ(Kalman Filter )を適用して得られる1時刻先の予測位置付近に限定してマッチングを行うことによって、車両追跡の高精度化を図っている。
【0008】
また、特許文献2を参照すると、ミリ波レーダを用いた自動追従走行機能のように、先行車両の位置および速度情報が必要な状況において、先行車両の速度低下により先行車両を車両として検出できなくなった場合、それまでの先行車両の速度と位置の情報から現時刻における先行車両の位置を推定している。
【0009】
更に、特許文献3を参照すると、路側に車両感知センサが密に設置されていない道路区間での交通状態の推定精度を上げるために、図22に示すように、実際の道路を車線毎(車線の総数をLaneNum と記す)に等間隔に分割した「セル」を導入する(以下では、このセルを画像化したものをセル画像と記す)。そして、交通流を圧縮性流体と見なし、各セルにおける車両の密度、空間平均速度などをモデル内部状態として、その推定にKalman Filter を用いている。
【0010】
また、非特許文献1に示される交通流シミュレーションモデルには、セルオートマトン(Cell Automaton:CA)を利用したものもよく知られている。このCAでは、セル画像の各セルを車両の存在/不在セルに分ける。注目する車両存在セルが更新条件を満たす時に注目車両存在セルを移動させる。更新条件としては、例えば、ルール184や、Nagel-Schreckenberg アルゴリズムなどがある。
【0011】
いま、セル画像の左から右が車両進行方向と仮定した場合、ルール184では、図23に示すように、現時刻における各車両存在セルに注目し、注目車両存在セルの右隣のセルが車両不在セルの場合には、次時刻において注目車両存在セルを右隣のセルに移動させ、車両存在セルの場合には、注目車両存在セルの位置を移動させない。
【0012】
Nagel-Schreckenberg アルゴリズムは、上記のルール184に実際の車両の挙動(加速や減速)を考慮したものであり、その内容は以下のようにまとめることができる。
(1)注目車両の現時刻での速度をv(セル単位)とする。
(2)加速:v<vmax でかつ前方車との距離がv+1以上であれば、速度を1つ上げる(v→v+1)。
(3)減速:注目車両がセルiにいて、前方車がセルi+j(j<v)にあるとき、速度をj−1まで落とす(v→j−1)。
(4)ランダム化:v>0のとき、確率pで速度を一つ下げる(v→v−1)。
(5)移動:vセル進む。
【0013】
このようなNagel-Schreckenberg アルゴリズムから分かるとおり、Cell Automatonを用いた交通流シミュレーションモデルでは、同一車線上の車両の追い越しという現実にはあり得ない状況を排除したシミュレーションが可能となる。
【0014】
なお、他の技術として、特許文献4に開示のものもある。特許文献4では、複数物体の検出、追跡におけるオクルージョンの影響を極力抑圧すべく、観測領域の周辺にカメラを複数台設置しておき、これらのカメラから得られる各物体の複数方向からのアパーチャ情報を統合して、確率的に尤もらしい各物体の内部状態(位置や方向及びそれらの変化量)を推定するようになっている。
【0015】
【特許文献1】特開2001−357403号公報
【特許文献2】特開2001−043499号公報
【特許文献3】特開2004−078482号公報
【特許文献4】特開2004−220292号公報
【非特許文献1】杉山雄規著「交通流の物理」、ながれ22,2003,p95−p108
【発明の開示】
【発明が解決しようとする課題】
【0016】
特許文献1の技術では、オブジェクトの追跡に従来のカルマンフィルタを用いている。カルマンフィルタは与えられた観測データを用いて隠れ状態を推定する方法であり、現時刻における隠れ状態を算出するろ過処理と1時刻先の隠れ状態を算出する予測処理から構成される。時刻nにおける観測データを、
【数1】
として、ろ過処理の結果得られる隠れ状態が従う正規分布の平均ベクトルと分散共分散行列とを、それぞれ、
【数2】
とする。
【0017】
同様に、予測処理の結果得られる隠れ状態が従う正規分布の平均ベクトルと分散共分散行列とを、それぞれ、
【数3】
とすると、カルマンフィルタでは異なる時刻の隠れ状態間でマルコフ性が、隠れ変数と観測データの間では線形の演算がそれぞれ成り立つと見なして、
【数4】
【数5】
と、それぞれ定式化する。
【0018】
式(1)はシステム方程式、式(2)は観測方程式と呼ばれる。また、行列Fは状態遷移行列、Hは観測行列であり、
【数6】
は、それぞれ行列分散がQ,Rのホワイトノイズである。このときろ過処理、予測処理は、それぞれ、
【数7】
【数8】
【数9】
【数10】
で逐次計算される。
【0019】
なお、式(3),(4)の行列Kはカルマンゲインと呼ばれ、
【数11】
で計算される。例えば、隠れ状態を現時刻および1時刻前の真の車両位置
【数12】
を用いて、
【数13】
と定義し、隣接した3時刻間での車両運動が等速直線運動で近似できるとすると、状態遷移行列と観測行列は、
【数14】
【数15】
の形で記述できる。
【0020】
式(1)〜(10)から分かるとおり、カルマンフィルタは観測データが毎時刻与えられることを前提とした時に精度が保証される処理である。注目車両のオクルージョンが著しい場合には検出漏れが発生し、対応した観測データが存在しないことになる(以下、欠測状態と略す)。観測データが存在しない場合には、一般的に、1時刻前に算出した予測位置を現時刻のろ過位置とするが、欠測状態が長くなればなるほど、実際の車両の挙動との乖離が大きくなり、追跡精度は低下する。
【0021】
特許文献2の技術では、先行車両の速度が予め設定した閾値以下となった場合、自車両の絶対位置と絶対速度、それまでに蓄積した自車両の位置との相対速度、相対速度の変化量から、最尤推定法により現時刻における先行車両の絶対位置と絶対速度を求めているが、特許文献1の技術と同じく、閾値以下の低速走行状態が長くなる程、実際の先行車両の挙動との乖離が大きくなる。
【0022】
特許文献3の技術では、交通量シミュレーションモデルに対してプローブ情報を発信している車両の走行速度情報と、路側に設置した車両感知センサからの交通流および速度に関する情報とを入力として、カルマンフィルタの状態変数を推定しているが、これらの情報の欠測状態が長くなると推定精度が劣化するのは前記の特許文献1や2と同じである。
【0023】
また、特許文献1〜3の技術は、同一車両に同一車両番号が割当てられていることが前提であり、この割当てが正しくない場合には処理が破綻する。オクルージョンが発生しているカメラ画像からの車両検出のように、欠測状態が長期化しやすい状況下で従来どおりカルマンフィルタを用いると、推定した状態と実際の先行車両の挙動との乖離から実際の車両と車両番号とにずれが生じ、前記の同一車両/同一車両番号の前提が成り立たなくなる。
【0024】
特許文献4の技術では、物体番号iと内部状態xとを一対一で対応付けして内部状態を確率分布で表現している。よって、時刻毎の確率分布の更新計算において、オクルージョンの影響で物体iと物体jの確率分布の入れ替りが発生する可能性があり、この場合には、元の物体番号の対応関係に回復することはできず、よって信頼性が乏しいという問題がある。
【0025】
本発明の目的は、追跡対象の車両オブジェクトと車両番号との時間的な連続性が途絶えることを防止しつつオクルージョンに対して頑健で高精度かつ高効率な車両追跡が可能な車両追跡装置及び車両追跡方法ならびにそのプログラムを提供することである。
【課題を解決するための手段】
【0026】
本発明による車両追跡装置は、道路画像から個々の車両をオブジェクトとして検出する車両検出手段と、この検出された個々のオブジェクトに対して複数の車両番号を割当てる車両番号割当て手段と、前記車両番号割当て手段により割当てられた車両番号の各々に基づいて走行経路を追跡する走行経路追跡手段と、前記行経路追跡手段により得られた追跡経路情報から各経路の確率的な確からしさを尤度として算出する経路尤度算出手段と、前記車両番号割当て手段により割当てられた前記車両番号のうち前記経路尤度算出手段により算出された尤度が小なる経路に対応した車両番号を削除する車両番号枝刈り手段とを含むことを特徴とする。
【0027】
本発明による車両追跡方法は、道路画像から個々の車両をオブジェクトとして検出する車両検出ステップと、この検出された個々のオブジェクトに対して複数の車両番号を割当てる車両番号割当てステップと、この割当てられた車両番号の各々に基づいて走行経路を追跡する走行経路追跡ステップと、追跡経路情報から各経路の確率的な確からしさを尤度として算出する経路尤度算出ステップと、前記割当てられた車両番号のうち前記経路尤度算出ステップにより算出された尤度が小なる経路に対応した車両番号を削除する車両番号枝刈りステップとを含むことを特徴とする。
【0028】
本発明によるプログラムは、車両追跡方法をコンピュータにより実行するためのプログラムであって、道路画像から個々の車両をオブジェクトとして検出する処理と、この検出された個々のオブジェクトに対して複数の車両番号を割当てる処理と、この割当てられた車両番号の各々に基づいて走行経路を追跡する処理と、追跡経路情報から各経路の確率的な確からしさを尤度として算出する処理と、前記割当てられた車両番号のうち前記経路尤度算出ステップにより算出された尤度が小なる経路に対応した車両番号を削除する処理とを含むことを特徴とする。
【発明の効果】
【0029】
本発明によれば、道路画像を用いた車両追跡において欠測状態が生じた場合に、車両検出結果に複数の車両番号を割当てることにより、車両検出結果と車両番号との時間的な連続性を確保すると共に、該車両番号のうち追跡処理の結果得られる尤度が小さいものは削除することによって、追跡処理の効率化を図ることができるという効果がある。また、本発明によれば、観測データが存在する場合には尤度を大きく、欠測状態である場合には尤度を小さくすることにより、追跡処理の精度向上を図ることができるという効果がある。
【発明を実施するための最良の形態】
【0030】
以下に、図面を参照しつつ本発明について詳細に説明する。図1は本発明の実施の形態の概略機能ブロック図である。図1を参照すると、本発明の実施の形態による車両追跡装置は、道路画像から個々の車両を検出して座標と共に出力する車両検出部1と、車両検出部1の処理結果である個々の車両を車両オブジェクトと見なして複数の車両番号を割当てる車両番号割当て部2と、車両検出部1から得られた個々の車両オブジェクトの位置情報及び車両番号割当て部2で割当てられた車両番号を用いて、個々の車両番号に対応した車両オブジェクトの走行経路を追跡、記録する走行経路追跡部3と、走行経路追跡部3の出力結果である追跡経路情報から、各経路の確率的な尤もらしさを尤度として算出する経路尤度算出部4と、車両番号割当て部2で割当てられた車両番号のうち、経路尤度算出部4で算出された尤度が小さい経路に対応した車両番号を車両オブジェクトから削除する車両番号枝刈り部5とから構成されている。
【0031】
次に、図1に示した本実施の形態の全体の動作について説明する。車両検出部1では、路側に設置したカメラから得られる道路画像から車両を検出する。車両番号割当て部2では、車両検出部1で検出されて走行経路の追跡を開始すると判定された車両オブジェクトに対して車両番号の割当てを行う。車両番号割当て部2の動作を、時刻t=Tにおける車両オブジェクトの追跡状況を表す図2を用いて説明する。
【0032】
図2において、車両オブジェクトαが走行経路の追跡を開始するオブジェクトと判定されたと仮定する。車両番号割当て部2では、先ず、車両オブジェクトαが走行する車線2上に存在する追跡中の車両オブジェクトのうち、車両オブジェクトαの前方、後方で最も近い位置にある車両オブジェクトの位置を算出する(図2では車両オブジェクトA,Bで表現)。
【0033】
更に、車両オブジェクトαに隣接した車線1、車線3上に存在する追跡中の車両オブジェクトのうち、車両進行方向で車両オブジェクトαと同じ位置(図2の破線)を基点として、前方および後方を探索し、基点に最も近い車両オブジェクトの位置を算出する(図2では、車両オブジェクトC,Dで表現)。車両オブジェクトαには、これらの追跡中の車両オブジェクトに割当ててある車両番号に合わせて、未使用の車両番号を新規に1つ採用して割当てる。
【0034】
図2の場合、車両オブジェクトA〜Dにそれぞれ、{10,21}、{18}、{33、47}、{53}の車両番号が割当てられているので、未使用の車両番号80とこれらの車両番号を合わせて{80/10,21,18,33,47,53}の7つの車両番号が割り当てられる。なお、車両番号集合のうち、/の右側が継承した車両番号、左側が新規に採用した車両番号を表す。
【0035】
走行経路追跡部3では、前記車両番号割当て部2で割り当てた車両番号を用いて、個々の車両オブジェクトの走行経路を追跡してその結果を記録する。この走行経路追跡部3の動作を図3、図4を用いて説明する。図3は、車両オブジェクトαに車両オブジェクトA,Bが保持している車両番号を割当てることによって発生する経路の分岐を表す。図3から分かるとおり、車両オブジェクトαに対して車両番号10を割当てて走行経路を追跡することは、車両オブジェクトαを車両番号10の2番目の経路を走行する車両と仮定して追跡を行うことを意味する。
【0036】
同様に考えることで、車両オブジェクトαは、車両番号10の2番目の経路、車両番号18の2番目の経路、車両番号21の2番目の経路、車両番号80の1番目の経路のそれぞれを走行経路として保持し得る車両を表現していることになる。車両オブジェクトαが保持し得るこれら複数の経路のうち、最も尤度が高い経路を用いて車両オブジェクトαの位置計算などを行う。
【0037】
図4は、図3で説明した各車両番号が持つ複数の経路における車両位置推定を説明するもので、車両番号10が割当てられた車両オブジェクトの走行経路を表す。図2より、時刻t=Tにおいて車両番号10が割当てられている車両実オブジェクトには、車両オブジェクトαとAとがある。
【0038】
図4の太破線で示した時刻t=T−1までの車両番号10の走行経路情報を用い、車両検出部1の出力結果のうち、図4の黒丸印「・」で示した車両オブジェクトAの観測位置を、時刻t=Tにおける車両番号10の車両オブジェクトの観測位置と見なした場合(=車両番号10の1番目の経路)、及び図4のバツ印「×」で示した車両オブジェクトαの観測位置を、時刻t=Tにおける車両番号10の車両オブジェクトの観測位置と見なした場合(=車両番号10の2番目の経路)のそれぞれについて真の車両位置を推定し、その値を走行経路追跡部3の処理結果として出力する。
【0039】
経路尤度算出部4では、走行経路追跡部3で推定した車両オブジェクトの真の位置と観測データの位置とを用いて、推定した走行経路の確率的な確からしさやスコアを尤度として算出する。スコアSとしては、例えば1時刻前に推定した車両実オブジェクトの現時刻iでの予測位置及び観測位置を、それぞれ、
【数16】
とし、更に、任意の微小正数をεとし、また、時刻Tにおける車両実オブジェクトの前後関係に基づいて調整を行う係数をηとして、
【数17】
と定義することにより、推定した予測位置と観測位置とのずれが小さいほど大きな値をとるスコア関数を採用することが可能である。
【0040】
車両番号枝刈り部5では、追跡中の各車両オブジェクトに割当てられた車両番号のうち、経路尤度算出部4で算出された尤度が小さい経路に対応した車両番号を削除する。図2において、進行方向を逆走する車両がないという前提の下で、車両実オブジェクトαにおける車両番号枝刈り部5の動作を説明する。走行経路追跡部3と経路尤度算出部4において、車両実オブジェクトαに割当てられた各車両番号の時刻t=T−1までで持つ走行経路情報を用い、時刻t=Tにおける観測位置が車両検出部1で得られた車両実オブジェクトαの位置と見なした時の真の車両位置と尤度とが、各車両番号に対して計算される。
【0041】
車両が逆走することはないので、車両実オブジェクトαの前方を走行する車両Aから継承した車両番号10,21については、式(11)のηを小さくすることにより、その尤度を小さくすることができる。車両番号枝刈り部5では、車両実オブジェクトαに割当てられた車両番号のうち、車両番号10,21が削除される。
【0042】
本実施の形態における車両検出部1において、車両検出方法には、多層Neural Network、SVM(Support Vector Machine) 、Adaboost等の学習済みの識別器を用いることができる。また、オプティカルフロー法、背景差分法、モーションステレオ法、複眼ステレオ法等を用いて検出を行ってもよい。
【0043】
また、本実施の形態における車両番号割当て部2において、車線変更を考慮しない場合には、隣接車線上の車両実オブジェクトが持つ車両番号の継承を除外してもよい。更に、本実施の形態における走行経路追跡部3では、HMM(Hidden Markov Model)、Kalman Filter 、DBN(Dynamic Bayesian Network) のように、観測データから隠れ状態を推定する統計的な手法を用いてもよい。また、Cell Automatonのように隣接する車両間の挙動に制限を加えるモデルを用いてもよい。
【0044】
更にはまた、本実施の形態における走行経路追跡部3では、観測データと車両オブジェクトとの対応が付いている場合には、Kalman Filter などの隠れ状態推定法、対応が付かない場合には、Cell Automatonなどの車両挙動制限モデルを組み合わせて用いてもよい。隠れ状態推定法としてKalman Filter、車両挙動制限モデルとしてCell Automatonを用いた場合の走行経路追跡方法を、図5を用いて説明する。
【0045】
観測データに基づき走行経路追跡を行っている車両オブジェクトを車両実オブジェクトと記す。また、車両実オブジェクト間に車両が存在するものと見なして配置する車両オブジェクトを車両仮想オブジェクトと記す。Kalman Filter を用いて走行経路追跡を行っている車両実オブジェクトについては、車両仮想オブジェクトの存在に関係なく、尤度の高い走行経路から算出される真の車両位置に基づいてセル画像上でその位置を更新し、同一車線後方に存在する他の車両実オブジェクトの手前まで車両仮想オブジェクトを、図6に示すように設定する。
【0046】
Cell Automatonを用いて走行経路追跡を行っている車両実オブジェクトおよび車両仮想オブジェクトについては、同一車線前方に存在する車両実/仮想オブジェクトの追い越しが発生しないように、車両オブジェクトのセル画像上の位置を更新する。
【0047】
本実施の形態における経路尤度算出部4において用いられる尤度は、車両実オブジェクトの真の位置と観測位置との差が小さいほど大きくなる関数であれば、どのようなものを用いてもよい。
【0048】
以下に、本発明の実施の形態の動作の詳細について、図7から図17のフローチャートを参照して説明する。図7は全体の処理の流れを表しており、図7のステップA1が車両検出部1の動作であり、ステップA2〜A5が車両番号割当て部2の動作を示し、ステップA7〜A8が走行経路追跡部3の動作を示し、またステップA10〜A12が経路尤度算出部4の動作を示す。そして、ステップA6,A9が車両番号枝刈り部5の動作を表している。
【0049】
図8は図7におけるステップA3の処理の流れの詳細を示し、図9は図8におけるステップB3の動作の詳細を示す。図10は図8におけるステップB14の動作の詳細を示し、図11は図10におけるステップD4の動作の詳細を示し、図12は図11におけるステップE9の動作の詳細を示す。
【0050】
また、図13は図11におけるステップE15の動作の詳細を示し、図14は図13におけるステップG5の動作の詳細を示し、図15は図8におけるステップB15の動作の詳細を示す。更に、図16は図7におけるステップA4の動作の詳細を示し、図17は図7におけるステップA8の動作の詳細を示したものである。
【0051】
なお、図10のステップD2,D5,D10及び図15のステップI2,I6が車両番号割当て部2の動作に対応し、図12のステップF4、図14のステップH5が経路尤度算出部4の動作にに対応し、それ以外が走行経路追跡部3の動作に対応する。
【0052】
以下の説明では、車両オブジェクトの1時刻前の真の位置(ろ過位置と略す)と現時刻の観測位置との対応が取れている、もしくは欠測状態の継続時間が予め定めた閾値以下の場合は、Kalman Filter (以下KMと略す)、それ以外の場合はCell Automaton(以下CAと略す)を用いることとし、セル画像上に図5で示した車両実オブジェクト及び車両仮想オブジェクトを設定して、車両オブジェクトの挙動制御を行うものとする。
【0053】
また、各車両実オブジェクト及び各車両番号が持つ走行経路追跡情報を保存するための構造体を、図18及び図19に示し、処理に共通な情報を保存するための構造体を図20のように定義する。図18及び図19において、追跡状態、追跡モードは、注目車両番号の走行経路追跡状態と、走行経路追跡に用いている手法を表す。追跡状態は、初期状態(=0)、待機状態(=1)、実行状態(=2)の3状態、及び追跡モードは、初期モード(=0)、KMを用いるモード(=1)、CAを用いるモード(=2)の3モードを取り、これらの状態間、モード間を図21のように遷移するものとする。また、MaxObjは車両番号の最大数、MaxPath は車両番号1つ当りに対して許容する走行経路の最大数である。
【0054】
ステップA1では、車両検出処理により画像上の座標系(画像座標)で算出された車両の観測データ座標を、道路上に設定した実スケールの座標系(世界座標)に変換して、現時刻における観測データ座標として構造体od[1][i].info[j].Obs.{x/y}に保存する。なお、i(=0,1, …,LaneNum-1)は、観測座標が存在する車線番号、j(=0,1, …,od[1][i].DatNum−1 )は車両実オブジェクトの識別番号であり、od[1][i].DatNum は、現時刻において車線番号iの車線上に存在する観測座標の総数となる。
【0055】
ステップA2では、現時刻における各車両の観測座標od[1][i].info[j].Obs.{x/y}(i=0,1, …,LaneNum-1、j=0,1,…,od[1][i].DatNum-1)と、1時刻前の車両実オブジェクトの予測位置od[0][k].info[l].Prd.{x/y}(k=0,1,…,LaneNum-1,l=0,1, …,od[1][k].DatNum-1)の距離を比較し、その値が予め設定した閾値以外の組を対応付ける。od[1][i].info[j].Obs.{x/y}とod[0][k].info[l].Prd.{x,y}が対応付けられた場合(オブジェクト対応状態と略す)には、対応関係をod[1][i].info[j].CorObsLane=k 、od[1][i].info[j].CorObsNo=l として保存する。
【0056】
更に、od[0][k].info[l]のメンバの値をod[1][i].info[j]にコピーする。現時刻の車両実オブジェクトに対してはステップA3で、1時刻前の車両実オブジェクトのうち現時刻の車両実オブジェクトと対応付いていないものに対してはステップA4で走行経路追跡を実行する。
【0057】
ステップA5では、各車両実オブジェクトに注目し、割振られている車両番号、すなわちod[i][j].info[k].UseFlg[l]=1(i=0,1 j=0, …,LaneNum-1 k=0, …,od[i][j].DatNum-1 l=0, …,MaxObj-1)となるlの経路m(m=0,…,MaxPath-1)で注目車両実オブジェクトを含むもののうち、そのスコアiif[l].info[m][1].Score が最大となる車両番号ObjNo と経路番号PathNoが算出される。
【0058】
そして、
od[i][j].info[k].CurPosi.{x/y}=iif[ObjNo].info[PathNo][1].FltMean[0/1]
od[i][j].info[k].Prd.{x/y}=iif[ObjNo].info[PathNo][1].PrdMean[0/1]
od[i][j].info[k].Obs.{x/y}=iif[ObjNo].info[PathNo][1].Obs.{x/y}
od[i][j].info[k].Velo.{x/y}=追跡開始から現時刻までの注目実オブジェクトの平均速度
od[i][j].info[k].CurTrkStat=iif[ObjNo].info[PathNo][1].TrkStat
od[i][j].info[k].CurTrkMode=iif[ObjNo].info[PathNo][1].TrkMode
od[i][j].info[k].ObsLack=iif[ObjNo].info[PathNo][1].ObsLack
の関係により、個々の車両番号に基づく追跡情報を車両実オブジェクトに対応付ける。
【0059】
ステップA6では、各車両実オブジェクトが保持している車両番号と走行経路の組み合わせの中から、スコアの値が予め定めた閾値より小さいものを特定し、該当するものを車両番号毎の追跡情報構造体iif から削除すると共に、必要に応じて該当車両番号に対応した車両実オブジェクト毎の追跡情報構造体odのメンバ配列UseFlgの値を0に初期化する。
【0060】
ステップA7では、1時刻前と現時刻における車両実オブジェクトのうち、棄却扱いされなかったものを現時刻における車両実オブジェクト毎の追跡情報構造体od[1] に保存し直す。ステップA8では、車両仮想オブジェクトの設定並びに全車両オブジェクトのセル画像上での位置座標の更新が行わなわれ、その結果がpc.CellImg[1] 、pc.ObjPosInfo[1]、pc.ObjVeloInfo[1] に保存される。
【0061】
ステップA9では、棄却扱いと判定された現時刻の車両実オブジェクトが保持している車両番号と走行経路を、対応した車両番号毎の追跡情報構造体から削除する。ステップA10では、棄却扱いされなかった現時刻の車両実オブジェクトを1時刻前における車両実オブジェクト毎の追跡情報構造体od[0] に保存する。
【0062】
なお、追跡状態と追跡モードに関しては、
od[0][i].info[j].PastTrkStat=od[1][i].info[j].CurTrkStat
od[0][i].info[j].PastTrkMode=od[1][i].info[j].CurTrkMode
で更新する。
【0063】
ステップA11では、現時刻における車両番号毎の追跡情報構造体iif[i].info[j][1](i=0,, …,MaxObj −1 j=0,…,MaxPath−1)を1時刻前の車両番号毎の追跡情報構造体iif[i].info[j][0] に保存する。ステップA12では、現時刻におけるセル情報pc.CellImg[1] 、pc.ObjPosInfo[1]、pc.ObjVeloInfo[1] を、1時刻前のセル情報として、pc.CellImg[0、pc.ObjPosInfo[0]、pc.ObjVeloInfo[0] に保存し、現時刻におけるセル情報の初期化を行う。
【0064】
図7のステップA3の処理を図8を用いて説明する。なおステップB8、B11は同じ処理である。図8のステップB1において、現時刻の車両実オブジェクト構造体をA=od[1][i].info[j]として、可能な全てのi,jに対してステップB2〜ステップB15が行われる。ステップB2では、構造体AをCAへの入力構造体InCAに設定し、現時刻の車両実オブジェクトろ過位置A.CurPosi をInCA.FltMean、速度ベクトルA.VeloCAをInCA.Velo とする。
【0065】
ステップB3では、入力InCAに対してCAによる車両位置NewPosi.{x/y} と速度ベクトルNewVelo.{x/y} を算出する。ステップB4では、ステップB3の出力NewPosi 、NewVelo をそれぞれA.PosCA 、A.VeloCAに保存する。ステップB5では、注目オブジェクトの識別のため、TimeNo=1、LaneNo=i、ObsNo=j とされる。
【0066】
ステップB6では、追跡状態TSおよび追跡モードTMを、TS=od[1][i].info[j].CurTrkStat、TM=od[1][i].info[j].CurTrkModeとしてそれぞれ設定する。ステップB7では、注目車両実オブジェクトAの1時刻前の車両実オブジェクトとの対応状態について判定が行われ、対応関係が存在する場合はステップB9、存在しない場合はステップB8に処理がそれぞれ移る。ステップB8では、A.CurTrkStat=0、A.CurTrkMode=1として注目車両実オブジェクトAを追跡準備状態に遷移させる。ステップB9では、TMの値の判定が行われ、TM=0の場合はステップB10へ、それ以外の場合はB13へ処理がそれぞれ移る。
【0067】
ステップB10では、TSの値の判定が行われ、TS=0の場合はステップB11へ、それ以外の場合はB12へ処理がそれぞれ移る。ステップB12では、フラグを立てることにより、注目車両実オブジェクトAを棄却扱いとする。ステップB13では、TMの値の判定が行われ、TM=1の場合はステップB14へ、それ以外の場合はB15へ処理がそれぞれ移る。ステップB14では、A.Obs.{x/y} を観測座標として、注目車両実オブジェクトが現時刻において保持している全ての車両番号(現時刻に新規に生成した車両番号も含む)に対して、KMをベースとした走行経路の追跡を行う。ステップB15では、ステップB14と同じ走行経路の追跡をCAをベースに用いて行う。
【0068】
図8におけるステップB3の動作を図9を用いて説明する。ステップC1では、車両位置を表すInCA.FltMean[0/1] を座標Pos1.{x/y}に設定する。ステップC2では、セル画像上においてPos1.{x/y}に対応したセル座標C1.{x/y}が設定される。ステップC3では、1時刻前のセル画像pc.CellImg[0] において、C1と同一x座標(すなわち同一車線上)の前方を探索し、pc.CellImg[0][C2] ≠0 (後述の図17で説明するとおり、車両オブジェクトが存在するセルを表す)となるセル座標C2.{x/y}およびそれに対応した車両位置Pos2.{x/y}を算出する。
【0069】
ステップC4では、乱数Randomが生成され、ステップC5でy方向速度Velo.y=InCA.Velo.y+Random が設定される。ステップC6では、Pos3.y=Pos1.y+Velo.y、Pos3.x=Pos1.x の関係式で座標Pos3.{x/y}を設定する。ステップC7では、Pos3とPos2の位置関係が判定される。Pos3がPos2より前方となる場合は、同一車線上での車両の追い越しというあり得ない状況を意味しているため、ステップC8でPos3.y=Pos2.y と設定し直す。ステップC9では、Pos3.{x/y}をNewPosi.{x/y} 、NewVelo.{x/y}=Pos3.{x/y}-Pos1.{x/y} として保存する。
【0070】
なお、ステップC5のRandomの加算は車両の加減速を再現するものである。また、x方向速度についても乱数を加算し、ステップC6で車線変更の可能性を加味して良い。
【0071】
図8のステップB14の処理を図10を用いて説明する。なお、ステップD4とD8とD12とは同じ処理であり、またステップD6とD10とは同じ処理であり、更にステップD7とD11とは同じ処理を表す。ステップD1では、TSの値の判定が行われ、TS=0の場合はステップD2へ、それ以外の場合はステップD9へ処理がそれぞれ移る。
【0072】
ステップD2では、現時刻において未使用の車両番号を新規車両番号として生成し、その値をNewNo とする。ステップD3では、KMへの入力車両番号をステップD2で生成したNewNo とする。ステップD4では、入力車両番号に対して観測座標A.Obs.{x/y} を用いてKMもしくはCAを用いた走行経路追跡処理を実行する。
【0073】
ステップD5では、NewNo を既存車両番号扱いするためにA.UseFlg[NewNo]=1 、pc.UseFlg[NewNo]=1としてフラグを立てた上で、A.CurTrkStat=2として追跡状態を実行状態に遷移させる。ステップD6では、注目車両実オブジェクトAの観測位置A.Obs.{x/y} を基準として、自走車線、隣接車線の前後に存在する1時刻前の車両実オブジェクトを探索する。そして、各車線、各方向(前後)で最も注目車両実オブジェクトAに近い車両実オブジェクト(図2を用いた説明を参照)が保持する車両番号を継承し、それらの車両番号xに対してA.UseFlg[x]=1 としてフラグを立て、保持既存車両番号と見なす。
【0074】
ステップD7では、現時刻における注目実車両オブジェクトAの保持既存車両番号をKMへの入力番号として設定する。ステップD9では、現時刻における注目車両実オブジェクトの欠測状態継続フレーム数A.ObsLack の値の判定が行われ、A.ObsLack ≠0 の場合はステップD10へ、それ以外の場合はステップD11へ処理がそれぞれ移る。
【0075】
図10のステップD4の処理を図11を用いて説明する。ステップE1で、車両番号i(=0,1, …,MaxObj-1 )を設定し、全てのiに対してステップE2〜E16の処理を実行する。ステップE2では、pc.UseFlg[i]の値の判定が行われ、その値が1の場合は、走行経路追跡に使用中の車両番号と見なして処理をステップE3に移す。ステップE3では、車両番号iが新規に生成した車両番号か否かの判定が行われ、Yes の場合はステップE4で探索経路上限数End を1に設定し、Noの場合はステップE5でEnd=MaxPath に設定する。
【0076】
ステップE6では、経路番号j(=0,1, …,End-1)を設定し、全てのjに対してステップE7〜E15の処理を行う。ステップE7では、車両番号iのj番目の経路の1時刻前の追跡状態をTS=iif[i].info[j][0].TrkStatとし、追跡モードをTM=iif[i].info[j][0].TrkModeとする。ステップE8では、TMの値の判定が行われ、1の場合はステップE9へ、それ以外の場合はステップE10へ処理をそれぞれ移す。
【0077】
ステップE9では、車両番号iのj番目の走行経路情報iif[i].info[j][0] と、与えられている観測座標を用いてKMを実行する。ステップE10では、TMの値の判定が行われ、TMの値が2の場合はステップE11及びE12でTSの値の判定が行われる。TS=1の場合はステップE13で、mode=1と設定され、TS=2の場合はステップE14でmode=0と設定される。ステップE15で、車両番号iのj番目の走行経路情報iif[i].info[j][0] 及び与えらたmodeの値をモジュール実行モードとしてCAを実行する。
【0078】
ステップE16では、更新された走行経路追跡情報iif[i].info[j][1] をそのスコアiif[i].info[j][1].Score の降順に並び替える。後述のとおり、車両のろ過位置、予測位置、スコアの計算結果はiif[i].info[MaxPath][1] に保存される。ステップE16を行うことにより、iif[i].info[j][1] は常にスコアの大きい順に並んでいることになり、図7のステップA5で行う各車両番号に対する最大スコア経路の探索が容易になる。
【0079】
図11におけるステップE9の動作を図12を用いて説明する。ステップF1では、車両番号iのj番目の走行経路追跡情報iif[i].info[j][0] のろ過分布平均ベクトルFltMean 、分散共分散行列FltVar、予測分布平均ベクトルPrdMean 、分散共分散行列PrdVarを、それぞれ式(1)〜(10)で示した
【数18】
とする。ステップF2で、これらのベクトル、行列と与えられた観測座標を用いてろ過処理と予測処理とを行う。
【0080】
ステップF3では、ステップF2で得られた
【数19】
を、MaxPath+1 番目の走行経路追跡情報iif[i].info[MaxPath][1] のFltMean 、FltVar、PrdMean 、PrdVarにそれぞれ保存する。
【0081】
ステップF4では、iif[i].info[j][0].PrdMean[0/1](すなわち1時刻前に予測した現時刻での車両位置)と与えられた観測座標から、例えば式(11)等を用いて経路スコアが計算される。ステップF5では、ステップF4で得られたスコアがiif[i].info[MatPath][1].Score に保存され、追跡状態iif[i].info[MaxPath][1].TrkStat=2 、追跡モードiif[i].info[MaxPath][1].TrkMode=1 が設定される。
【0082】
ステップF6において、注目車両実オブジェクトが1時刻前の車両実オブジェクトと対応付いていると判定された場合にはステップF7に、未対応と判定された場合にはステップF9に処理がそれぞれ移る。ステップF7では、iif[i].info[MaxPath][1].Obs.{x/y} に入力観測座標が保存される。ステップF8では、欠測状態継続フレーム数を表すiif[i].info[MaxPath][1].ObsLack の値が0に設定される。ステップF9では、iif[i].info[j][0].ObsLack の値をiif[i].info[MaxPath][1].ObsLack にコピーした上で、ステップF10で、iif[i].info[MaxPath][1].ObsLack に1を加算して欠測状態継続フレーム数を更新する。
【0083】
ステップF11では、注目車両実オブジェクトが欠測状態、すなわち対応する観測座標が存在しない状態であるため、ステップF3で得られたろ過処理の平均ベクトルの第0、1成分を観測座標と見なして、iif[i].info[MaxPath][1].Obs.{x/y} に保存される。ステップF12で、iif[i].info[MaxPath][1].ObsLack が予め設定した閾値ObsLackThre と一致したと判定された場合は、CAによる追跡へ追跡モードを遷移させるために、ステップF13で、追跡モードiif[i].info[MaxPath][1].TrkMode の値を2に設定する。
【0084】
図11におけるステップE15の動作を図13を用いて説明する。なお、ステップG7は図11のステップE9と、ステップG8は図11のステップE16とそれぞれ同じであるため、説明を省略する。ステップG1では、1時刻前の予測処理で得られた予測位置iif[i].info[j][0].PrdMean[0/1]と、入力観測座標との変位ベクトルΔx,Δyとがそれぞれ算出される。ステップG2では、入力されたmodeの値が判定され、0の場合はステップG3に、それ以外の場合はステップG4にそれぞれ処理が移る。
【0085】
ステップG3において、Δx,Δyが共に予め設定された閾値以下となる場合はステップG6に、それ以外の場合はステップG5にそれぞれ処理が移る。ステップG4において、Δx,Δy共に予め設定された閾値以下となる場合はステップG7に、それ以外の場合はステップG5にそれぞれ処理が移る。ステップG5では、注目車両実オブジェクトに対してCAが実行される。ステップG6では、CAで追跡を実行中の注目車両実オブジェクトの追跡状態を実行状態から待機状態へ遷移させる処理が行われる。
【0086】
図13におけるステップG5の動作を図14を用いて説明する。なお、図14のステップH7,H8はそれぞれ図12のステップF9,F10とそれぞれ同一であるため説明を省略する。ステップH1では、図8のステップB5や後述する図16のステップJ5で設定した車両実オブジェクトを識別するTimeNo、LaneNo、ObsNo を用いて、od[TimeNo][LaneNo].info[ObsNo]が構造体Aにコピーされる。ステップH2では、与えられている観測座標とCAを用いた更新後の座標との差Disp.{x/y}がDisp.{x/y}=A.PosCA.{x/y}−A.Obs.{x/y} で計算される。
【0087】
ステップH3では、1時刻前のろ過処理分布iif[i].info[j][0].{FltMean,FltVar}と、予測処理分布iif[i].info[j][0].{PrdMean,PrdVar}とが、それぞれiif[i].info[MaxPath][1].{FltMean,FltVar}、iif[i].info[MaxPath][1].{PrdMean,PrdVar}にそれぞれ保存される。ステップH4では、iif[i].info[MaxPath][1].{PrdMean,FltMean}[0/2]にはDisp.xが、iif[i].info[MaxPath][1].{PrdMean,FltMean}[1/3]にはDisp.yがそれぞれ加算される。
【0088】
ステップH5では、注目車両番号iの注目走行経路jについて、例えば式(11)を用いたスコア計算が行われ、iif[i].info[MaxPath][1].Score にその値が保存される。ステップH6では、現時刻における追跡状態iif[i].info[MaxPath][1].TrkStat が追跡実行状態を表す2に設定され、追跡モードiif[i].info[MaxPath][1].TrkMode にはCAを表す2が設定される。
【0089】
また、CAで走行経路の追跡を行うのは欠測状態のときであるので、入力観測座標には、注目車両実オブジェクトのCAを用いた場合の更新座標od[TimeNo][LaneNo].info[ObsNo].PosCA.{x/y}を用いることとし、その値をiif[i].info[MaxPath][1].Obs.{x/y} に保存する。ステップH4の処理を行う理由を説明する。CAが実行モードである間は、ろ過と予測を行うことができないので、CAによる追跡開始時点におけるろ過位置と予測位置との位置関係を時間的に保持するために、CAで算出される車両オブジェクトの位置の分を逐次オフセットとして加算する処理がステップH4である。
【0090】
図13におけるステップG6の動作は、図14のステップH6において、追跡状態iif[i].info[MaxPath][1].TrkStat を、追跡待機状態を表す1に設定する以外は、全て図14と同一である。
【0091】
図8におけるステップB15の動作を図16を用いて説明する。なお、図15のステップI2〜I8、I9〜I10はそれぞれ図10のステップD2〜D8、D11〜D12と同一であるため説明を省略する。ステップI1では、TSの値が判定され、TS=1の場合はステップI2に、それ以外の場合はステップI9にそれぞれ処理を移す。
【0092】
図7におけるステップA4の動作を図16を用いて説明する。なお、図16のステップJ2〜J4は図8のステップB2〜B4と同一であり、図16のステップJ16、ステップJ17は、それぞれ図11のステップE9、図13のステップG5と同一であるので説明を省略する。図16のステップJ1において、1時刻前の車両実オブジェクト構造体をA=od[0][i].info[j]として、可能な全てのi,jに対して、ステップJ2〜J17が行われる。
【0093】
ステップJ5では、注目オブジェクトの識別のため、TimeNo=0、LaneNo=i、ObsNo=j とされる。ステップJ6では、追跡状態TSおよび追跡モードTMを、TS=od[0][i].info[j].CurTrkStat、TM=od[0][i].info[j].CurTrkModeとしてそれぞれ設定する。ステップJ7では、注目車両実オブジェクトAの1時刻前の車両実オブジェクトとの対応状態について判定が行われ、対応関係が存在しない場合はステップJ8に処理が移る。ステップJ8では、TSとTMの値の判定が行われ、TM=1かつTS=0の場合は、ステップJ9で注目車両実オブジェクトを棄却扱いとし、それ以外の場合はステップJ10に処理を移す。
【0094】
ステップJ10では、車両番号k(=0,1, …,MaxObj-1 )を設定し、全てのkに対してステップJ11〜J17の処理を実行する。ステップJ11では、pc.UseFlg[k]の値の判定が行われ、その値が1の場合は走行経路追跡に使用中の車両番号と見なして処理をステップJ12に移す。ステップJ12では、経路番号l(=0,1, …,MaxPath-1)を設定し、全てのlに対してステップJ13〜J17の処理を行う。
【0095】
ステップJ13では、1時刻前における車両番号kのl番目の経路の追跡モードiif[k].info[l][0].TrkMode がtmに保存される。ステップJ14において、tm=1の場合はステップJ16に、それ以外の場合はステップJ15に処理が移る。ステップJ15 においてtm=2と判定された場合はステップJ17 にそれぞれ処理が移る。
【0096】
図7におけるステップA8の動作を図17わ用いて説明する。なお、図17のステップK5は図8のステップB3と同一であるため説明を省略する。ステップK1では、各車両実オブジェクトの車両位置od[1][i].info[j].CurPosi.{x/y}(i=0, …,LaneNum-1、j=0,…,od[1][i].DatNum-1) に対応したセル座標Cを求め、現時刻のセル画像上で対応した画素pc.CellImg[1][C]の値を1に設定する。ステップK2では、全てのk(=0, …,CellNum-1)に対してステップK3〜K7の処理を行う。
【0097】
ステップK3では、1時刻前のセル画像における座標kでの画素値pc.CellImg[0][k]が判定され、その値が2の場合は、該当セル座標上に車両仮想オブジェクトが存在すると見なしてステップK4に処理を移す。ステップK4では、セル座標k上にある車両仮想オブジェクトが持つ位置情報pc.ObjPosInfo[0][k].{x/y} 及び速度情報pc.ObjVeloInfo[0][k].{x/y}がCAの入力InCAに設定される。
【0098】
ステップK6では、ステップK5で算出した車両仮想オブジェクトの更新後車両位置座標NewPosi.{x/y} に対応したセル座標C’が算出される。ステップK7では、更新後の車両仮想オブジェクトの情報が、現時刻の情報としてpc.CellImg[1][C ’]=2 、pc.ObjPosInfo[1][C’].{x/y}=NewPosi.{x/y} 、pc.ObjVeloInfo[1][C ’].{x/y}=NewVelo.{x/y} として保存される。ステップK8では、全てのm(=0, …,CellNum-1)に対してステップK9〜K13の処理を行う。
【0099】
ステップK9では、現時刻でのセル画像pc.CellImg[1][m]の値が判定され、その値が1の場合はステップK10に処理が移る。ステップK10では、セル座標m上に存在する車両実オブジェクトの現時刻における追跡モードがTrkMode に保存される。ステップK11では、TrkMode の値に対する判定が行われ、その値が1の場合はステップK12に処理が移る。ステップK12では、現時刻におけるセル画像pc.CellImg[1] 上においてセル座標mと同一x座標(すなわち同一車線)かつ後方において、車両実オブジェクトが存在するセルの探索が行われ、該当するセル座標がnとして保存される。
【0100】
ステップK13では、セル座標mとセル座標nで挟まれた全てのセル座標C’’に対して、pc.CellImg[1][C ’’]=2 、pc.ObjPosInfo[1][C’’].{x/y}=C ’’に対応した世界座標、pc.ObjVeloInfo[1][C ’’].{x/y}=セル座標m上に存在する車両実オブジェクトが持つ速度ベクトルとして、車両仮想オブジェクトの設定が行われる(図6参照)。
【0101】
このように、欠測状態のように車両番号の一意的な割当てが困難な場合には、複数の車両番号の割当てを許容することで、車両オブジェクトと車両番号の時間的な連続性が途絶することを防止が可能なことである。また、車両オブジェクトと観測データとの対応付けの有無によって、追跡経路の尤度計算を制御し、この尤度の大小関係に基づいて割当てた車両番号の枝刈りを行うことにより、オクルージョンに頑健で高精度かつ高効率な車両追跡ができることになる。
【0102】
以上をまとめると、本発明によれば、車両走行経路追跡処理において車両オブジェクトと車両番号の時間的な連続性が途絶することを防止しつつ、オクルージョンに頑健で高精度かつ高効率な車両追跡ができることになる。
【0103】
なお、上記の実施の形態における各動作フローは、予めその動作手順をプログラムとして記録媒体に格納しておき、これをコンピュータにより読込ませて実行させる様に構成できることは明白である。
【図面の簡単な説明】
【0104】
【図1】本発明の実施の形態の概略機能ブロック図である。
【図2】注目車両オブジェクトへの複数車両番号割当て方法を説明する図である。
【図3】注目車両オブジェクトが保持する複数車両番号の複数経路を説明する図である。
【図4】注目車両番号の複数経路に対して推定される真の車両位置を説明する図である。
【図5】車両実オブジェクトと車両仮想オブジェクトとを用いた走行経路追跡を説明する図である。
【図6】車両仮想オブジェクトの設定方法を説明する図である。
【図7】本発明の実施の形態の全体の動作を示すフローチャートである。
【図8】図7のステップA3の詳細を示すフローチャートである。
【図9】図8のステップB3の詳細を示すフローチャートである。
【図10】図8のステップB14の詳細を示すフローチャートである。
【図11】図10のステップD4の詳細を示すフローチャートである。
【図12】図11のステップE9の詳細を示すフローチャートである。
【図13】図11のステップE15の詳細を示すフローチャートである。
【図14】図13のステップG5の詳細を示すフローチャートである。
【図15】図8のステップB15の詳細を示すフローチャートである。
【図16】図7のステップA4の詳細を示すフローチャートである。
【図17】図7のステップA8の詳細を示すフローチャートである。
【図18】車両実オブジェクト毎の追跡情報構造体を説明する図表である。
【図19】車両番号毎の追跡情報構造体を説明する図表である。
【図20】追跡処理共通情報構造体を説明する図表である。
【図21】注目車両番号に対する追跡状態と追跡モードとの遷移関係を示す図である。
【図22】セル画像の概念を表す図である。
【図23】Cell Automatonのルール184を説明する図である。
【符号の説明】
【0105】
1 車両検出部
2 車両番号割当部
3 走行経路追跡部
4 経路尤度算出部
5 車両番号枝刈り部
【特許請求の範囲】
【請求項1】
道路画像から個々の車両をオブジェクトとして検出する車両検出手段と、
この検出された個々のオブジェクトに対して複数の車両番号を割当てる車両番号割当て手段と、
前記車両番号割当て手段により割当てられた車両番号の各々に基づいて走行経路を追跡する走行経路追跡手段と、
前記行経路追跡手段により得られた追跡経路情報から各経路の確率的な確からしさを尤度として算出する経路尤度算出手段と、
前記車両番号割当て手段により割当てられた前記車両番号のうち前記経路尤度算出手段により算出された尤度が小なる経路に対応した車両番号を削除する車両番号枝刈り手段とを含むことを特徴とする車両追跡装置。
【請求項2】
前記経路尤度算出手段は、前記割当てられた車両番号の各々に対して、注目オブジェクトが該車両番号を持つ時間的に同一視されるオブジェクトとみなして、現時刻のろ過位置、1時刻先の予測位置、並びに現時刻までの追跡経路の確率的な確からしさを前記尤度として算出することを特徴とする請求項1記載の車両追跡装置。
【請求項3】
前記車両番号枝刈り手段は、前記割当てられた車両番号に対応した尤度が予め設定された閾値を下回る場合に、その車両番号を割当て対象の車両番号から除外することを特徴とする請求項1または2記載の車両追跡装置。
【請求項4】
前記走行経路追跡手段は、1時刻前に算出した予測位置に現時刻における車両観測データが存在しない場合には、追跡方法を切替えることを特徴とする請求項2または3記載の車両追跡装置。
【請求項5】
1時刻前に算出された予測位置に現時刻における観測データが存在しない注目オブジェクトに対して、現時刻で予測位置と観測データとの対応が付いている他オブジェクトとの位置関係に基づいて、前記注目オブジェクトの現時刻におけるろ過位置を算出することを特徴とする請求項4記載の車両追跡装置。
【請求項6】
1時刻前に算出された予測位置に現時刻における観測データが存在しない注目オブジェクトの現在時刻におけるろ過位置を、現時刻で予測位置と観測データとの対応が付いている他オブジェクトのうち、前記注目オブジェクトと同一車線上に存在するオブジェクトのろ過位置を追い越さないように設定することを特徴とする請求項5記載の車両追跡装置。
【請求項7】
前記注目オブジェクトと他オブジェクトとの位置関係に基づく前記注目オブジェクトのろ過位置算出を、セルオートマトンなどのオブジェクト移動モデルに従って行うことを特徴とする請求項6記載の車両追跡装置。
【請求項8】
1時刻前に算出された予測位置に現時刻における観測データが存在しない注目オブジェクトに対して、予測位置と観測データとの未対応状態の継続時間が予め設定された閾値以下である場合には、この予測位置を現時刻における観測データとみなし、
閾値より大である場合には、1時刻前に算出された予測位置に現時刻における観測データが存在しない注目オブジェクトに対して、現時刻で予測位置と観測データとの対応が付いている他オブジェクトとの位置関係に基づいて、前記注目オブジェクトの現時刻におけるろ過位置を算出することを特徴とする請求項4記載の車両追跡装置。
【請求項9】
前記オブジェクトに対して1時刻前に算出された予測位置と現時刻におけるろ過位置との相違量に基づいて追跡方法を切替えることを特徴とする請求項2または3記載の車両追跡装置。
【請求項10】
現時刻のろ過位置、1時刻先の予測位置の算出をカルマンフィルタやパークフィルタなどの位置予測が可能な計算方法を用いることを特徴とする請求項2記載の車両追跡装置。
【請求項11】
複数の車両番号の割当をオブジェクトの予測位置と観測データとの対応が未対応な状態から対応付いた状態に遷移したオブジェクトに対してのみ行い、オブジェクトの予測位置と観測データの対応付いた状態が継続しているオブジェクトに対しては、前時刻でのこのオブジェクトの車両番号を現時刻における該オブジェクトの車両番号として引継ぐことを特徴とする請求項1〜4いずれか記載の車両追跡装置。
【請求項12】
追跡経路の尤度を1時刻前に算出されたろ過位置に基づいて算出することを特徴とする請求項2記載の車両追跡装置。
【請求項13】
走行経路追跡を実行中のオブジェクト間に仮想的なオブジェクトの存在を導入して、注目オブジェクトと同一車線上に存在する他オブジェクトのろ過位置を追い越さないように設定することを特徴とする請求項6記載の車両追跡装置。
【請求項14】
道路画像から個々の車両をオブジェクトとして検出する車両検出ステップと、
この検出された個々のオブジェクトに対して複数の車両番号を割当てる車両番号割当てステップと、
この割当てられた車両番号の各々に基づいて走行経路を追跡する走行経路追跡ステップと、
追跡経路情報から各経路の確率的な確からしさを尤度として算出する経路尤度算出ステップと、
前記割当てられた車両番号のうち前記経路尤度算出ステップにより算出された尤度が小なる経路に対応した車両番号を削除する車両番号枝刈りステップとを含むことを特徴とする車両追跡方法。
【請求項15】
前記経路尤度算出ステップは、前記割当てられた車両番号の各々に対して、注目オブジェクトが該車両番号を持つ時間的に同一視されるオブジェクトとみなして、現時刻のろ過位置、1時刻先の予測位置、並びに現時刻までの追跡経路の確率的な確からしさを前記尤度として算出することを特徴とする請求項14記載の車両追跡方法。
【請求項16】
前記車両番号枝刈りステップは、前記割当てられた車両番号に対応した尤度が予め設定された閾値を下回る場合に、その車両番号を割当て対象の車両番号から除外することを特徴とする請求項14または15記載の車両追跡方法。
【請求項17】
前記走行経路追跡ステップは、1時刻前に算出した予測位置に現時刻における車両観測データが存在しない場合には、追跡方法を切替えることを特徴とする請求項15または16記載の車両追跡方法。
【請求項18】
1時刻前に算出された予測位置に現時刻における観測データが存在しない注目オブジェクトに対して、現時刻で予測位置と観測データとの対応が付いている他オブジェクトとの位置関係に基づいて、前記注目オブジェクトの現時刻におけるろ過位置を算出することを特徴とする請求項17記載の車両追跡方法。
【請求項19】
1時刻前に算出された予測位置に現時刻における観測データが存在しない注目オブジェクトの現在時刻におけるろ過位置を、現時刻で予測位置と観測データとの対応が付いている他オブジェクトのうち、前記注目オブジェクトと同一車線上に存在するオブジェクトのろ過位置を追い越さないように設定することを特徴とする請求項18記載の車両追跡方法。
【請求項20】
前記注目オブジェクトと他オブジェクトとの位置関係に基づく前記注目オブジェクトのろ過位置算出を、セルオートマトンなどのオブジェクト移動モデルに従って行うことを特徴とする請求項19記載の車両追跡方法。
【請求項21】
1時刻前に算出された予測位置に現時刻における観測データが存在しない注目オブジェクトに対して、予測位置と観測データとの未対応状態の継続時間が予め設定された閾値以下である場合には、この予測位置を現時刻における観測データとみなし、閾値より大である場合には、請求項18記載の方法を用いることを特徴とする請求項17記載の車両追跡方法。
【請求項22】
前記オブジェクトに対して1時刻前に算出された予測位置と現時刻におけるろ過位置との相違量に基づいて追跡方法を切替えることを特徴とする請求項15または16記載の車両追跡方法。
【請求項23】
現時刻のろ過位置、1時刻先の予測位置の算出をカルマンフィルタやパークフィルタなどの位置予測が可能な計算方法を用いることを特徴とする請求項15記載の車両追跡方法。
【請求項24】
複数の車両番号の割当をオブジェクトの予測位置と観測データとの対応が未対応な状態から対応付いた状態に遷移したオブジェクトに対してのみ行い、オブジェクトの予測位置と観測データの対応付いた状態が継続しているオブジェクトに対しては、前時刻でのこのオブジェクトの車両番号を現時刻における該オブジェクトの車両番号として引継ぐことを特徴とする請求項14〜17いずれか記載の車両追跡方法。
【請求項25】
追跡経路の尤度を1時刻前に算出されたろ過位置に基づいて算出することを特徴とする請求項15記載の車両追跡方法。
【請求項26】
走行経路追跡を実行中のオブジェクト間に仮想的なオブジェクトの存在を導入して、注目オブジェクトと同一車線上に存在する他オブジェクトのろ過位置を追い越さないように設定することを特徴とする請求項19記載の車両追跡方法。
【請求項27】
車両追跡方法をコンピュータにより実行するためのプログラムであって、
道路画像から個々の車両をオブジェクトとして検出する処理と、
この検出された個々のオブジェクトに対して複数の車両番号を割当てる処理と、
この割当てられた車両番号の各々に基づいて走行経路を追跡する処理と、
追跡経路情報から各経路の確率的な確からしさを尤度として算出する処理と、
前記割当てられた車両番号のうち前記経路尤度算出ステップにより算出された尤度が小なる経路に対応した車両番号を削除する処理とを含むことを特徴とするコンピュータ読取り可能なプログラム。
【請求項1】
道路画像から個々の車両をオブジェクトとして検出する車両検出手段と、
この検出された個々のオブジェクトに対して複数の車両番号を割当てる車両番号割当て手段と、
前記車両番号割当て手段により割当てられた車両番号の各々に基づいて走行経路を追跡する走行経路追跡手段と、
前記行経路追跡手段により得られた追跡経路情報から各経路の確率的な確からしさを尤度として算出する経路尤度算出手段と、
前記車両番号割当て手段により割当てられた前記車両番号のうち前記経路尤度算出手段により算出された尤度が小なる経路に対応した車両番号を削除する車両番号枝刈り手段とを含むことを特徴とする車両追跡装置。
【請求項2】
前記経路尤度算出手段は、前記割当てられた車両番号の各々に対して、注目オブジェクトが該車両番号を持つ時間的に同一視されるオブジェクトとみなして、現時刻のろ過位置、1時刻先の予測位置、並びに現時刻までの追跡経路の確率的な確からしさを前記尤度として算出することを特徴とする請求項1記載の車両追跡装置。
【請求項3】
前記車両番号枝刈り手段は、前記割当てられた車両番号に対応した尤度が予め設定された閾値を下回る場合に、その車両番号を割当て対象の車両番号から除外することを特徴とする請求項1または2記載の車両追跡装置。
【請求項4】
前記走行経路追跡手段は、1時刻前に算出した予測位置に現時刻における車両観測データが存在しない場合には、追跡方法を切替えることを特徴とする請求項2または3記載の車両追跡装置。
【請求項5】
1時刻前に算出された予測位置に現時刻における観測データが存在しない注目オブジェクトに対して、現時刻で予測位置と観測データとの対応が付いている他オブジェクトとの位置関係に基づいて、前記注目オブジェクトの現時刻におけるろ過位置を算出することを特徴とする請求項4記載の車両追跡装置。
【請求項6】
1時刻前に算出された予測位置に現時刻における観測データが存在しない注目オブジェクトの現在時刻におけるろ過位置を、現時刻で予測位置と観測データとの対応が付いている他オブジェクトのうち、前記注目オブジェクトと同一車線上に存在するオブジェクトのろ過位置を追い越さないように設定することを特徴とする請求項5記載の車両追跡装置。
【請求項7】
前記注目オブジェクトと他オブジェクトとの位置関係に基づく前記注目オブジェクトのろ過位置算出を、セルオートマトンなどのオブジェクト移動モデルに従って行うことを特徴とする請求項6記載の車両追跡装置。
【請求項8】
1時刻前に算出された予測位置に現時刻における観測データが存在しない注目オブジェクトに対して、予測位置と観測データとの未対応状態の継続時間が予め設定された閾値以下である場合には、この予測位置を現時刻における観測データとみなし、
閾値より大である場合には、1時刻前に算出された予測位置に現時刻における観測データが存在しない注目オブジェクトに対して、現時刻で予測位置と観測データとの対応が付いている他オブジェクトとの位置関係に基づいて、前記注目オブジェクトの現時刻におけるろ過位置を算出することを特徴とする請求項4記載の車両追跡装置。
【請求項9】
前記オブジェクトに対して1時刻前に算出された予測位置と現時刻におけるろ過位置との相違量に基づいて追跡方法を切替えることを特徴とする請求項2または3記載の車両追跡装置。
【請求項10】
現時刻のろ過位置、1時刻先の予測位置の算出をカルマンフィルタやパークフィルタなどの位置予測が可能な計算方法を用いることを特徴とする請求項2記載の車両追跡装置。
【請求項11】
複数の車両番号の割当をオブジェクトの予測位置と観測データとの対応が未対応な状態から対応付いた状態に遷移したオブジェクトに対してのみ行い、オブジェクトの予測位置と観測データの対応付いた状態が継続しているオブジェクトに対しては、前時刻でのこのオブジェクトの車両番号を現時刻における該オブジェクトの車両番号として引継ぐことを特徴とする請求項1〜4いずれか記載の車両追跡装置。
【請求項12】
追跡経路の尤度を1時刻前に算出されたろ過位置に基づいて算出することを特徴とする請求項2記載の車両追跡装置。
【請求項13】
走行経路追跡を実行中のオブジェクト間に仮想的なオブジェクトの存在を導入して、注目オブジェクトと同一車線上に存在する他オブジェクトのろ過位置を追い越さないように設定することを特徴とする請求項6記載の車両追跡装置。
【請求項14】
道路画像から個々の車両をオブジェクトとして検出する車両検出ステップと、
この検出された個々のオブジェクトに対して複数の車両番号を割当てる車両番号割当てステップと、
この割当てられた車両番号の各々に基づいて走行経路を追跡する走行経路追跡ステップと、
追跡経路情報から各経路の確率的な確からしさを尤度として算出する経路尤度算出ステップと、
前記割当てられた車両番号のうち前記経路尤度算出ステップにより算出された尤度が小なる経路に対応した車両番号を削除する車両番号枝刈りステップとを含むことを特徴とする車両追跡方法。
【請求項15】
前記経路尤度算出ステップは、前記割当てられた車両番号の各々に対して、注目オブジェクトが該車両番号を持つ時間的に同一視されるオブジェクトとみなして、現時刻のろ過位置、1時刻先の予測位置、並びに現時刻までの追跡経路の確率的な確からしさを前記尤度として算出することを特徴とする請求項14記載の車両追跡方法。
【請求項16】
前記車両番号枝刈りステップは、前記割当てられた車両番号に対応した尤度が予め設定された閾値を下回る場合に、その車両番号を割当て対象の車両番号から除外することを特徴とする請求項14または15記載の車両追跡方法。
【請求項17】
前記走行経路追跡ステップは、1時刻前に算出した予測位置に現時刻における車両観測データが存在しない場合には、追跡方法を切替えることを特徴とする請求項15または16記載の車両追跡方法。
【請求項18】
1時刻前に算出された予測位置に現時刻における観測データが存在しない注目オブジェクトに対して、現時刻で予測位置と観測データとの対応が付いている他オブジェクトとの位置関係に基づいて、前記注目オブジェクトの現時刻におけるろ過位置を算出することを特徴とする請求項17記載の車両追跡方法。
【請求項19】
1時刻前に算出された予測位置に現時刻における観測データが存在しない注目オブジェクトの現在時刻におけるろ過位置を、現時刻で予測位置と観測データとの対応が付いている他オブジェクトのうち、前記注目オブジェクトと同一車線上に存在するオブジェクトのろ過位置を追い越さないように設定することを特徴とする請求項18記載の車両追跡方法。
【請求項20】
前記注目オブジェクトと他オブジェクトとの位置関係に基づく前記注目オブジェクトのろ過位置算出を、セルオートマトンなどのオブジェクト移動モデルに従って行うことを特徴とする請求項19記載の車両追跡方法。
【請求項21】
1時刻前に算出された予測位置に現時刻における観測データが存在しない注目オブジェクトに対して、予測位置と観測データとの未対応状態の継続時間が予め設定された閾値以下である場合には、この予測位置を現時刻における観測データとみなし、閾値より大である場合には、請求項18記載の方法を用いることを特徴とする請求項17記載の車両追跡方法。
【請求項22】
前記オブジェクトに対して1時刻前に算出された予測位置と現時刻におけるろ過位置との相違量に基づいて追跡方法を切替えることを特徴とする請求項15または16記載の車両追跡方法。
【請求項23】
現時刻のろ過位置、1時刻先の予測位置の算出をカルマンフィルタやパークフィルタなどの位置予測が可能な計算方法を用いることを特徴とする請求項15記載の車両追跡方法。
【請求項24】
複数の車両番号の割当をオブジェクトの予測位置と観測データとの対応が未対応な状態から対応付いた状態に遷移したオブジェクトに対してのみ行い、オブジェクトの予測位置と観測データの対応付いた状態が継続しているオブジェクトに対しては、前時刻でのこのオブジェクトの車両番号を現時刻における該オブジェクトの車両番号として引継ぐことを特徴とする請求項14〜17いずれか記載の車両追跡方法。
【請求項25】
追跡経路の尤度を1時刻前に算出されたろ過位置に基づいて算出することを特徴とする請求項15記載の車両追跡方法。
【請求項26】
走行経路追跡を実行中のオブジェクト間に仮想的なオブジェクトの存在を導入して、注目オブジェクトと同一車線上に存在する他オブジェクトのろ過位置を追い越さないように設定することを特徴とする請求項19記載の車両追跡方法。
【請求項27】
車両追跡方法をコンピュータにより実行するためのプログラムであって、
道路画像から個々の車両をオブジェクトとして検出する処理と、
この検出された個々のオブジェクトに対して複数の車両番号を割当てる処理と、
この割当てられた車両番号の各々に基づいて走行経路を追跡する処理と、
追跡経路情報から各経路の確率的な確からしさを尤度として算出する処理と、
前記割当てられた車両番号のうち前記経路尤度算出ステップにより算出された尤度が小なる経路に対応した車両番号を削除する処理とを含むことを特徴とするコンピュータ読取り可能なプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2010−92248(P2010−92248A)
【公開日】平成22年4月22日(2010.4.22)
【国際特許分類】
【出願番号】特願2008−261183(P2008−261183)
【出願日】平成20年10月8日(2008.10.8)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
【公開日】平成22年4月22日(2010.4.22)
【国際特許分類】
【出願日】平成20年10月8日(2008.10.8)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
[ Back to top ]