(1)実施例の構成
(1−1)全体構成
図1は、本発明の実施例1に係る物体追跡システムを示すブロック図である。この物体追跡システム1において、信号源2は、処理対象の画像データSVを出力する各種装置であり、例えば撮像結果を画像データSVにより出力する撮像装置、撮像装置による撮像結果を記録して画像データSVにより出力する記録再生装置等により構成される。
物体追跡装置3は、例えばコンピュータ、ハードウエア構成による専用装置等により構成され、この信号源2からの画像データSVを処理して移動体を追跡し、追跡結果S1を出力する。すなわち物体追跡装置3は、コンピュータにより構成される場合、リードオンリメモリ(ROM)4の記録に従ってランダムアクセスメモリ(RAM)5にワークエリアを確保して動作を立ち上げ、中央処理ユニット(CPU)6によりハードディスク装置(HDD)7に記録した物体追跡に係る処理プログラムを実行する。物体追跡装置3は、これによりインターフェース(I/F)8を介して入力される画像データSVをリアルタイムにより処理して、又はハードディスク装置7に一旦記録した後、処理して、物体追跡に係る一連の処理を実行し、追跡結果S1を出力する。また必要に応じて処理過程の画像等をモニタ9により表示する。なおこの実施例において、この物体追跡に係る処理プログラムは、この物体追跡装置3に事前にインストールされて提供されるものの、このような事前のインストールに代えて、インターネット等のネットワークを介したダウンロードにより提供するようにしてもよく、光ディスク、磁気ディスク、メモリカード等の各種記録媒体に記録して提供するようにしてもよい。
処理装置10は、この追跡結果S1により、この物体追跡システム1に係る各種の処理を実行する。なおこの処理にあっては、この物体追跡システム1が適用されているシステムに応じた処理であり、例えばこの追跡結果S1により移動体を追跡するように撮像装置をパン、チルト、ズームさせる処理、この追跡結果により追跡対象の移動体が撮像されている領域がジャストフォーカスするようにフォーカス制御する処理、この追跡結果により追跡対象の移動体が撮像されている領域を切り出す等の処理である。
図2は、物体追跡装置3において、物体追跡に係る処理プログラムによる中央処理ユニット6の処理手順を示すフローチャートである。中央処理ユニット6は、オペレータによる指示等によりこの処理プログラムの実行が指示されると、この処理手順を開始してステップSP1からステップSP2に移る。
ここで中央処理ユニット6は、現フレーム及び前フレームの画像データSVを取得し、この現フレームの画像データSVと前フレームの画像データSVとの比較により、追跡対象である移動体を検出する。なおここで前フレームは、この実施例では処理対象のフレームであり、現フレームは、この前フレームに続くフレームである。またこの移動体の検出手法にあっては、種々の手法を適用することができ、この実施例では背景差分法を適用した。なおここで背景差分法による処理は、各画素毎に、又は所定画素毎に、さらには所定画素によるブロック毎に、現フレームと前フレームとの間でフレーム間差分値を計算してしきい値で判定することにより、動きのある画素、ブロックを検出して移動体が撮像された領域を検出する処理である。
このようにして移動体を検出すると、中央処理ユニット6は、ステップSP3に移り、初期化処理により追跡対象領域の設定処理、特徴点の設定処理を実行する。中央処理ユニット6は、この追跡対象領域の設定処理により、ステップSP2で検出した移動体を追跡する追跡対象領域を前フレームに設定する。この実施例では、図3に示すように、ステップSP2で検出された領域の位置情報により、移動体を囲むように長方形形状の枠Wを設定することにより、この枠Wで囲まれる領域を追跡対象領域に設定する。この処理において、中央処理ユニット6は、ステップSP2で検出された移動体毎に枠Wを設定し、各移動体毎にそれぞれ追跡対象領域を設定する。なおこの追跡対象領域の設定にあっては、長方形形状により設定する場合に限らず、楕円形形状、三角形形状等、追跡する移動体の形状、中央処理ユニット6の演算処理能力等に応じて、種々の形状により設定することができる。なおこのような移動体の自動検出による追跡対象領域の設定に代えて、オペレータによる入力により追跡対象領域を設定するようにしてもよい。
また中央処理ユニット6は、このステップSP3における特徴点の設定処理により、各追跡対象領域に、それぞれ所定個数の特徴点を検出する。ここでこの特徴点の設定処理は、KLT(Kanade−Lucas Track )法、SUSAN法、Harris作用素法等、種々の手法を適用することができる。なおこの実施例では、KLT法を使用して特徴点を設定し、これにより続くステップSP4における特徴点の追跡処理も併せて実行した。因みに、KLT法は、特徴点を検出して設定した後、勾配法により検出した特徴点の動きを検出する方法である。
続いて中央処理ユニット6は、ステップSP4に移り、ステップSP3で設定した追跡対象領域の1つを選択し、この選択した追跡対象領域に含まれる特徴点毎に、前フレームの位置座標から現フレームの対応する位置座標をそれぞれ検出することにより、各特徴点の動きを検出する。具体的に、中央処理ユニット6は、(1)式により示す前フレームnのk番目の特徴点の位置座標に対して、(2)式により示す現フレームn+1の対応するk番目の特徴点の位置座標を検出する。
続いて中央処理ユニット6は、次式により示すように、これら前フレーム及び現フレームで検出される対応する特徴点の位置座標の差分値を計算し、これにより各特徴点の動きベクトルVFPkを計算する。なおこのような動きベクトルVFPkの検出にあっては、ブロックマッチング法等、種々の手法を広く適用することができる。
中央処理ユニット6は、続くステップSP5において、このようにして検出した各特徴点の動きベクトルから移動体の動きを示すベクトルである移動ベクトルを検出する。このとき中央処理ユニット6は、ノイズ対策処理を実行し、これによりノイズによる検出精度の低下を防止する。
すなわち図4に示すように、このようにしてステップSP3で設定される追跡対象領域には、追跡対象の移動体だけでなく、静止物体等の前景、揺れる木等の背景も含まれる。これによりこのステップSP4で検出される動きベクトルにあっては、移動体の特徴点Pのみならず、前景、背景における特徴点Pの動きベクトルも含まれることになる。これによりこれら前景、背景の特徴点による動きベクトルは、移動体の動きを計算する際のノイズとなる。また追跡対象が人物のような場合、体の動きに対して四肢の動きが異なる場合もあり、この場合には、四肢に設定された特徴点の動きベクトルが、移動体の動きを計算する際のノイズとなる。
このため中央処理ユニット6は、このようなノイズである可能性を、追跡対象物体上に存在する特徴点の確からしさを示す信頼度により検出し、この信頼度により信頼性の低い動きベクトルを処理結果に反映しないように各特徴点の動きベクトルを処理して移動ベクトルを検出する。また信頼性の低い動きベクトルについては、続くフレームにおける処理から特徴点を除外する。なおこの実施例にあっては、このような追跡対象物体上に存在する特徴点の確からしさを、後述するようにこの物体上に特徴点が存在する確からしさと、特徴点自体の確からしさとにより検出する。
続いて中央処理ユニット6は、ステップSP6に移り、遮蔽対策処理を実行する。すなわち実際に人物等を追跡する場合、手前側の構造物、人物等により追跡対象の全部又は一部が遮蔽されてしまう場合がある。この場合、従来の追跡手法によっては、追跡対象の動きを正しく検出できなくなる。このため中央処理ユニット6は、このステップSP6において、追跡対象が遮蔽されている程度を示す遮蔽度を検出し、この検出結果によりステップSP5で求めた移動ベクトルを過去のフレームで検出した移動ベクトルを参考にして補正し、これにより遮蔽による影響を防止して移動体の動きを検出する。
中央処理ユニット6は、続くステップSP7において、移動体に対する移動ベクトルのずれを補正する。すなわち特徴点による動きベクトル検出は、局所的な動きについては、正確に動きを追跡できるものの、必ずしも追跡対象の動きを正しく反映するものではない。これによりこの実施例のように複数の特徴点で検出される動きベクトルを統計的に処理して追跡対象領域を移動させて移動体を追跡する場合、移動体の動きに対してこの追跡対象領域の移動が誤差を有するものとなり、この誤差の累積により移動体に対して追跡対象領域が徐々にずれてしまう場合がある。
これにより中央処理ユニット6は、このステップSP7において、複数の特徴点より求めた移動ベクトルについて、移動体に対するずれを補正し、これにより確実に移動体を追跡できるようにする。
中央処理ユニット6は、続くステップSP8において、このずれ補正した移動ベクトルにより前フレームに設定した枠Wを移動させ、これにより現フレームに追跡対象領域を設定する。またこの現フレームに設定した追跡対象領域の位置情報を追跡結果S1として続く処理装置10に出力する。またこのとき追跡対象領域に含まれないことになった特徴点を削除する。
中央処理ユニット6は、続くステップSP9において、ステップSP8で設定した追跡対象領域について、ステップSP5、ステップSP8で削除した特徴点の分だけ、特徴点を追加設定し、これによりこの追跡対象領域に設定された特徴点の数をステップSP3で設定した当初の個数に設定する。
中央処理ユニット6は、これにより1つの追跡対象領域についての前フレームの処理を完了し、続くステップSP10において、この前フレームに設定された全ての追跡対象領域について処理を完了したか否か判断する。ここで否定結果が得られると、中央処理ユニット6は、ステップSP10からステップSP11に移り、この前フレームに設定された他の追跡対象領域に処理対象を切り換えた後、ステップSP4に戻る。これにより中央処理ユニット6は、前フレームに設定された追跡対象領域毎に、ステップSP4−SP5−SP6−SP7−SP8−SP9−SP10−SP11−SP4の処理手順を繰り返し、前フレームに設定された追跡対象領域の全てについて、この一連の処理を完了すると、ステップSP10で肯定結果が得られることにより、ステップSP10からステップSP12に移る。
このステップSP12において、中央処理ユニット6は、次フレームの有無を判定し、ここで処理対象の画像データSVに次フレームが存在する場合、ステップSP12からステップSP13に移り、それまでの現フレームを前フレームに設定すると共に、この次フレームの画像データSVを取得して現フレームに設定し、ステップSP4に戻る。これにより中央処理ユニット6は、画像データSVによる各フレーム毎に、この処理手順を繰り返し、全てのフレームについて処理を完了すると、ステップSP12で否定結果が得られることにより、ステップSP12からステップSP14に移ってこの処理手順を終了する。
(1−2)移動ベクトル計算処理(ノイズ対策処理)
図5は、図2のステップSP5に係る移動ベクトル計算処理を詳細に示すフローチャートである。中央処理ユニット6は、この処理手順を開始すると、ステップSP21からステップSP22に移り、各特徴点の信頼度Ckを計算する。
ここで信頼度Ckは、追跡対象の移動体上に存在する特徴点kの確からしさを示す値であり、次式により表される。これにより信頼度Ckは、値1に近い程、追跡対象の移動体に設定されている可能性が高いことを示し、値0の場合、この特徴点は、背景等に設定されている特徴点であることを示すように設定される。
中央処理ユニット6は、このステップSP22において、異なる検出原理により各特徴点毎にそれぞれ複数種類の信頼度を計算し、続くステップSP23において、信頼度の低い特徴点を削除することにより、この信頼度の低い特徴点を移動ベクトルの計算対象、以降のフレームの処理から除外する。これにより中央処理ユニット6は、処理に供する特徴点数を削減して処理を簡略化する。また中央処理ユニット6は、続くステップSP24において、残る特徴点の動きベクトルを複数種類の信頼度を用いて処理することにより、移動体の移動ベクトルを計算し、続いてステップSP25に移って元の処理手順に戻る。これにより中央処理ユニット6は、ノイズによる影響を防止して検出精度の劣化を防止する。
このステップSP22における処理において、中央処理ユニット6は、始めにステップSP22−1において、追跡回数により信頼度Ckを計算する。ここでこの実施例においては、この移動ベクトル計算処理のステップSP23の削除の処理により、さらにはステップSP8の処理により特徴点を削除すると共に、特徴点を削除した分、ステップSP9において特徴点を追加設定しながら、フレーム毎に、一連の処理手順を繰り返すことにより、移動体に正しく設定された特徴点であって、遮蔽等を受けることのない特徴点にあっては、連続するフレームで連続して動きベクトルが検出され、繰り返し移動体の移動ベクトルの検出に用いられることになる。すなわちこのような特徴点にあっては、連続するフレームで連続して追跡されることになる。
これによりこのようにして連続して何回も追跡されている特徴点にあっては、移動体上に存在する確からしさが高いと言える。これによりこの実施例において、中央処理ユニット6は、この一連の処理における繰り返しの追跡回数を示すカウント値を各特徴点毎に設定し、ステップSP2における特徴点の設定により、またステップSP9における追加設定により、対応する特徴点のカウント値を初期設定によるカウント値(値0)に設定する。またステップSP9の追跡対象領域を移動させた後においても削除されていない特徴点については、このカウント値を値1だけインクリメントする。
このようにカウント値を初期化、インクリメントするようにして、中央処理ユニット6は、このステップSP22−1の処理において、このカウント値に応じて図6に示すように、カウント値が大きくなるに従って値が増大するように、追跡回数による信頼度ωc を設定する。
なおこの実施例では、カウント値が値0近傍の、所定のしきい値t1より小さい場合には、追跡回数による信頼度ωc を値0に設定し、カウント値が十分に値の大きな、所定のしきい値t2より大きい場合には、追跡回数による信頼度ωc を値1に設定した。またこのしきい値t1からt2の範囲では、カウント値の増大により値が増大するように一次関数を用いた線型補間により追跡回数による信頼度ωc を設定した。
続いて中央処理ユニット6は、ステップSP22−2に移り、時間的信頼度を計算する。ここで時間的信頼度は、過去のフレームで検出された移動体の移動ベクトルと、ステップSP4で検出した動きベクトルとの差分ベクトルの判定により、移動体上に特徴点が存在する確からしさを示すものである。この実施例では、この過去のフレームで検出された移動体の移動ベクトルに直前フレームで検出された移動ベクトルが適用される。
すなわち動きベクトルのx方向成分Vx及びy方向成分Vyを2次元の座標軸に設定し、この座標軸による座標空間に各特徴点で検出される動きベクトルを表すと、図7に示すように、各特徴点で検出される動きベクトルは、グループを形成することになる。ここでx方向成分Vx及びy方向成分Vyが共に値0近傍である特徴点のグループG1にあっては、背景等の静止物体(図4では障害物が相当する)に設定された特徴点の動きベクトルであると判断される。これに対してこのようにx方向成分Vx及びy方向成分Vyが共に値0近傍では無く、他に比して数の多いグループG2は、移動体に設定された特徴点の動きベクトルであると判断され、同様に、x方向成分Vx及びy方向成分Vyが共に値0近傍では無く、グループG2に比して数の少ないグループG3は、追跡対象領域に含まれた他の移動体(図4では、揺れる木が相当する)に設定された特徴点の動きベクトルであると判断される。
このような分布において、実際に移動体を撮像した場合、移動体にあっては連続するフレームで連続して移動していることにより、移動体上に存在する動きベクトルにあっては、時間軸方向の変化が連続的に変化していると判断することができる。これにより1フレーム前の移動体の移動ベクトルに対して大きく異なる動きベクトルにあっては、移動体上に存在する可能性が低いと判断することができる。
すなわち前フレームnで求められる各特徴点の動きベクトルをVFRk〔n〕とおき、1つ前のフレームn−1で求められる移動体慣性移動ベクトルをVobj〔n−1〕とおいたとき、移動体にこの特徴点が設定されている場合、慣性移動ベクトルVobj〔n−1〕に対して動きベクトルVFRk〔n〕は、似通った値となるはずである。なおここで移動体慣性移動ベクトルをVobjは、後述する遮蔽処理により求められる移動ベクトルであり、移動体が遮蔽されていない場合等には、直前のフレームで検出された移動ベクトルVpres〔n−1〕と一致する。
これにより図7においてグループG3により示すように、移動体に設定された特徴点の動きベクトルVFRk〔n〕は、直前のフレームで検出された移動体慣性移動ベクトルVobj〔n−1〕による点P1をほぼ中心にして分布していると言える。
これにより図8に示すように、中央処理ユニット6は、この直前のフレームで検出された慣性移動ベクトルVobj〔n−1〕を基準にして、このx方向成分Vx及びy方向成分Vyによる2次元空間において、移動体慣性移動ベクトルVobj〔n−1〕による点P1からの距離rに応じて時間的信頼度ωtを設定する。
この実施例では、この距離rを3つのしきい値th1、th2、th3により判定し、最も値の小さなしきい値th1より距離rが小さい場合、すなわち1フレーム前で検出された移動体慣性移動ベクトルVobj〔n−1〕と、特徴点で検出される動きベクトルVFPkとの間で、次式の関係式が成立する場合、時間的信頼度ωtを値1に設定する。
また最も値の大きなしきい値th3より距離rが大きい場合、すなわち1フレーム前で検出された移動体慣性移動ベクトルVobj〔n−1〕と、特徴点で検出される動きベクトルVFPkとの間で、次式の関係式が成立する場合、この特徴点を削除対象に設定し、この特徴点を移動ベクトルの計算に使用しないようにし、また続くフレームの処理から除外する。
これに対して続いて値の大きなしきい値th2より距離rが大きく、かつ値の大きなしきい値th3より距離rが小さい場合、すなわち1フレーム前で検出された移動体慣性移動ベクトルVobj〔n−1〕と、特徴点で検出される動きベクトルVFPkとの間で、次式の関係式が成立する場合、時間的信頼度ωtを値0に設定する。
これに対して最も値の小さなしきい値th1より距離rが大きく、続いて値の小さなしきい値th2より距離rが小さい場合、すなわち1フレーム前で検出された移動体慣性移動ベクトルVobj〔n−1〕と、特徴点で検出される動きベクトルVFPkとの間で、次式の関係式が成立する場合、一次関数を用いた線型補間により距離rの増大により徐々に値1から値0に減少するように、時間的信頼度ωtを設定する。
これによりy方向成分Vyが値0の場合の特徴点についての時間的信頼度ωtの設定を示すと、中央処理ユニット6は、図9に示すような特性により時間的信頼度ωtを設定することになる。なおこのような距離rによる動きベクトルの判定にあっては、移動体における移動の特性により、図8に示すような円による判定に代えて、例えば水平方向が長軸である楕円形により、1フレーム前で検出された移動体の移動体慣性移動ベクトルVobj〔n−1〕に対する分布を判定して実行するようにしてもよい。具体的に、例えば人物を追跡する場合にあっては、水平方向に移動する場合が殆どであることにより、この場合、水平方向が長軸である楕円形により判定するようにして、水平方向に比して垂直方向の判定基準を厳しいものとして信頼度の設定精度を向上することができる。
また直前フレームで検出される移動ベクトルに代えて、直前の複数フレームで検出される移動ベクトルの平均値を適用する場合、さらには2フレーム前で検出された移動ベクトルを適用する場合等、差分値の生成に供する移動ベクトルにあっては、必要に応じて過去に検出した種々の移動ベクトルを適用することができる。
なお図10は、この時間的信頼度ωtの設定に係る中央処理ユニット6の一連の処理手順を示す図である。中央処理ユニット6は、この実施例では、オペレータによる事前の設定により、これらしきい値th1〜th3の設定を受け付ける。なおこのような設定の受け付けにあっては、例えば標準のしきい値の設定によりこの一連の処理を事前に実行して追跡対象領域(枠w)の変化を表示し、オペレータによる設定の変更を受け付ける場合等が考えられる。
このようにして時間的信頼度ωtを計算すると、中央処理ユニット6は、続くステップSP22−3において、他の特徴点との間の距離の変化を判定し、その判定結果を集計することにより空間的信頼度ωsを計算する。
ここで図11(A1)及び(A2)に示すように、nフレームで検出される特徴点FP1〜FP5がそれぞれ動きベクトルV1〜V5により続くn+1フレームの位置に移動した場合にあって、1つの特徴点FP1が残りの他の特徴点FP2〜FP5とは異なる動きを示した場合、この1つの特徴点FP1は、追跡対象の移動体に設定されたものでは無い可能性が高い。
これに対して図11(B1)及び(B2)に示すように、このように1つの特徴点FP1が残りの他の特徴点FP2〜FP5とは異なる動きを示した場合であっても、この1つの特徴点FP1が残りの他の特徴点FP2〜FP5と関連した動きである場合、これらの特徴点FP1〜FP5にあっては、同一の移動体に設定されたものである可能性が高い。ちなみに、この図11(B1)及び(B2)は、特徴点FP1〜FP5の相互の間隔が広がった場合であって、他の特徴点FP2〜FP5間の間隔に比して、1つの特徴点FP1との間の間隔が大きく開きつつ、これら5つの特徴点FP1〜FP5が同一方向に移動した場合であり、例えば追跡対象の移動体が人物である場合に、この人物が移動しながら背伸びをしたような場合が相当する。
これに対して図11(C1)及び(C2)に示すように、このように1つの特徴点FP1が残りの他の特徴点FP2〜FP5とは異なる動きを示した場合であって、他の特徴点FP2〜FP5との間で相対的な位置関係が保持されていない場合、この1つの特徴点FP1は、追跡対象の移動体に設定されたものでは無い可能性が高い。
しかしながらこれら図11(A1)及び(C2)の例において、他の特徴点FP2〜FP5は、相互の位置関係を保持して移動していることにより、追跡対象の移動体に設定されたものである可能性が高い。
これにより中央処理ユニット6は、次式により示すように、このように1つの特徴点毎に、他の特徴点まで距離の変化を所定のしきい値thΔにより判定し、このしきい値thΔ以上に変化の大きな特徴点数を、各特徴点でカウントする。また全ての特徴点数から処理対象の特徴点数(値1)を減算した減算値により、このようにして計算したカウント値を割り算して正規化し、これによりk番目の特徴点の弾性インデックスkを計算する。なおここで(9)式において、FP1、FPkは、それぞれ処理対象の特徴点、他の特徴点の座標値であり、添え字により示すn−1、nは、それぞれ前フレーム及び現フレームを示し、また#は、カウント値を示す。
なおこのしきい値thΔは、この実施例では定数を設定したが、処理対象の特徴点における動きベクトルの大きさ、ステップSP22−1、SP22−2における処理結果等により、特徴点毎に値を変更するようにしてもよい。
具体的に、図11(B1)及び(B2)における1番目の特徴点FP1と5番目の特徴点FP5との関係について説明すると、nフレーム目における1番目の特徴点FP1から5番目の特徴点FP5までの距離δn,1(5)と、nフレーム目における5番目の特徴点FP5から1番目の特徴点FP1までの距離δn,5(1)との間では、δn,1(5)=δn,5(1)の関係式が成立し、続くn+1フレーム目における1番目の特徴点FP1から5番目の特徴点FP5までの距離δn+1,1(5)と、これら距離δn,1(5)又はδn,5(1)とを比較すると、この場合、距離δn+1,1(5)が伸びていることがわかる。
中央処理ユニット6は、これによりこの場合、次式により示すように、これら距離δn+1,1 (5)とδn,1(5)との差分値がしきい値thΔより大きい場合、この特徴点FP1に係るカウント値counterFP1をアップカウントする。
またこのようにして残りの特徴点FP2〜FP4との間で同様にして距離の差分値をしきい値thΔより判定してカウント値を更新し、この図11の例では、全ての特徴点数5より値1を減じた値4によりカウント値を割り算して弾性インデックスkを計算する。またさらに次式により示すように、この弾性インデックスkを値1から減算し、これにより空間的信頼度ωsを計算する。
なお図12は、この空間的信頼度ωsの設定に係る中央処理ユニット6の一連の処理手順を示す図である。中央処理ユニット6は、これにより直前フレームで検出された各特徴点間の距離の情報をメモリに記録して保持し、このメモリの記録と、この前フレームで検出される距離の情報とにより弾性インデックスを計算した後、空間的信頼度ωsを各特徴点毎に計算する。
このようにして空間的信頼度ωsを計算すると、中央処理ユニット6は、続くステップSP22−4において、静止点の検出処理を実行する。ここで図13は、この静止点の検出処理における中央処理ユニット6の処理手順を示すフローチャートである。中央処理ユニット6は、この処理手順を開始すると、ステップSP31からステップSP32に移る。ここで中央処理ユニット6は、移動体が静止しているか否か判断し、ここで静止していると判断される場合、ステップSP32からステップSP33に移ってこの処理手順を終了する。なおここでこの移動体が静止しているか否かの判断にあっては、ステップSP22−1〜ステップSP22−4で検出した各種信頼度により、又はこれらの信頼度の組み合わせにより、移動ベクトルを計算して判定する場合等、種々の判定手法を広く適用することができる。なお中央処理ユニット6は、このようにステップSP32からステップSP33に移って処理を完了する場合、この追跡対象領域の各特徴点に係る静止画カウンタ(後述する)については、カウント値を値0にリセットする。
これに対して移動体が静止していないとの判定結果が得られると、中央処理ユニット6は、ステップSP32からステップSP34に移る。ここで中央処理ユニット6は、処理対象の追跡対象領域に設定された1つの特徴点を選択し、この特徴点について、1フレーム前と同じ位置に位置するか否か判断する。なおここでこの判定にあっては、1フレーム前で検出された位置(xk,yk)nと、前フレームである処理対象のフレームで検出された位置(xk,yk)n+1との差分値を所定のしきい値により判定し、このしきい値より差分値が小さい場合に、同一位置と判定する。
中央処理ユニット6は、ここで同一位置であるとの判定結果が得られない場合、ステップSP34からステップSP35に移る。ここで中央処理ユニット6は、静止していたフレーム数を示す静止カウンタkを値0にリセットした後、ステップSP36に移る。ここで中央処理ユニット6は、この追跡対象領域の全ての特徴点について処理を完了したか否か判断し、ここで否定結果が得られると、ステップSP36からステップSP37に移り、処理対象を次の特徴点に切り換えてステップSP34に戻る。
これに対してステップSP34で肯定結果が得られると、中央処理ユニット6は、ステップSP34からステップSP38に移る。ここで中央処理ユニット6は、静止カウンタkを値1だけインクリメントした後、続くステップSP39において、この静止カウンタkのカウント値が所定のしきい値th5と一致するか否か判断する。
ここで肯定結果が得られると、この場合、移動体が移動している場合にも係わらず、この処理対象の特徴点にあっては、このしきい値th5に対応する連続するフレームで同一の位置に位置することより、中央処理ユニット6は、この場合、ステップSP39からステップSP40に移り、この特徴点を静止点に設定する。また続いてステップSP36に移り、ここでこの追跡対象領域の全ての特徴点について処理を完了したか否か判断し、ここで否定結果が得られると、ステップSP36からステップSP37に移り、処理対象を次の特徴点に切り換えてステップSP34に戻る。
これに対してステップSP39で否定結果が得られると、中央処理ユニット6は、ステップSP39からステップSP41に移る。ここで中央処理ユニット6は、ステップSP22−3で検出したこの特徴点に係る空間的信頼度ωsが所定のしきい値th6より小さいか否か、すなわち他の多くの特徴点に対して空間的に異なる動きを呈した程度が大きいか否か判断する。
ここで肯定結果が得られると、中央処理ユニット6は、ステップSP41からステップSP40に移り、この特徴点を静止点に設定した後、ステップSP36に移る。これに対してステップSP41で否定結果が得られると、ステップSP41から直接ステップSP36に移る。
これらにより中央処理ユニット6は、繰り返し検出される特徴点の位置座標の判定により、移動体上に特徴点が存在する確からしさを、それまで繰り返し静止していた回数により示す静止点信頼度を検出する。
中央処理ユニット6は、このようにして静止点を検出すると、続くステップSP22−5において、平滑ブロック処理を実行する。ここで中央処理ユニット6は、各特徴点毎に、周囲のサンプリング点との間でサンプリング値の差分値を計算する。ここでこの差分値が小さい場合には、この特徴点は、特徴点としての信頼度が低いことになる。これにより中央処理ユニット6は、この差分値が一定値以下の特徴点を検出する。なおこの処理においては、例えば特徴点に係るサンプリング点と、このサンプリング点の水平方向及び垂直方向に隣接するサンプリング点との間で、サンプリング値の差分絶対値和を計算し、この差分値絶対値和をしきい値により判定して実行される。なおこのような水平方向及び垂直方向に隣接すサンプリング点との間の処理に代えて、周囲8サンプリング点との間で処理する場合等、この判定に供する範囲にあっては、必要に応じて種々に設定することができる。
これにより中央処理ユニット6は、各特徴点毎に、周囲のサンプリング点との間でサンプリング値の差分値を判定することにより、移動体上に存在する特徴点の確からしさを、周囲のサンプリング点との比較により示す平滑度信頼度を検出する。
これらにより中央処理ユニット6は、続くステップSP23において、このように異なる検出原理で検出した複数種類の信頼度のうちの一部を用いて、信頼度の低い特徴点を削除し、この信頼度の低い特徴点については、移動ベクトルの計算に使用しないようにし、また以降のフレームの処理対象から除外する。またこのようにして特徴点を削除した分、上述のステップSP9において特徴点を追加設定する。これにより中央処理ユニット6は、後述する重み平均の処理の他に、この特徴点の削除処理によっても、信頼性の低い動きベクトルを処理結果に反映しないようにして移動ベクトルを検出し、さらにはこの移動ベクトルの検出に係る処理を簡略化する。
具体的に、中央処理ユニット6は、処理対象である追跡対象領域の特徴点から、ステップSP22で削除対象に設定された特徴点、ステップSP22−4で検出された静止点、ステップSP22−5で検出された平滑度信頼度の低い特徴点を削除する。
この特徴点の削除にあっては、これら静止点、平滑度信頼度等により削除する場合に限らず、これらに代えて、又はこれらに加えて、他の信頼度により削除するようにしてもよく、またさらにはこのように異なる検出原理で検出した複数種類の信頼度の全てを用いて削除するようにしてもよい。また削除の処理に使用する信頼度毎に、各信頼度を計算した直後に該当する特徴点を削除するようにして、続く信頼度検出の処理を簡略化することができる。
また中央処理ユニット6は、続くステップSP24における移動ベクトルの計算において、このように異なる検出原理で検出した複数種類の信頼度のうちの一部を用いた重み付け処理により移動ベクトルを計算する。この実施例では、この一部の信頼度に、追跡回数信頼度ωc、時間的信頼度ωt、空間的信頼度ωsが適用される。またこの重み付け処理には、重み付け平均の処理が適用される。
これにより中央処理ユニット6は、このステップSP24において、次式により示すように、追跡回数信頼度ωc、時間的信頼度ωt、空間的信頼度ωsを乗算して総合の信頼度ωを計算する。
さらにこの計算した総合の信頼度ωを用いた重み付け平均値を計算し、これによりこの処理対象である追跡対象領域における移動体の動きベクトルを計算する。これらによりこの実施例では、ノイズによる影響を防止して検出精度の劣化を防止する。
なお中央処理ユニット6は、このようにして求めた移動ベクトルをステップSP6により遮蔽対策処理し、ステップSP7によりずれ補正処理した後、ステップSP8で枠Wを移動させて現フレームに追跡対象領域を設定する。このときこの追跡対象領域に含まれない特徴点をさらに削除する。またこのステップSP8で削除した分についても、ステップSP9において特徴点を追加設定する。
なお上述のステップSP32における判定は、この一連の処理を繰り返して検出される移動ベクトルにより、それまで連続してこの移動ベクトルが所定値以下の場合、移動体が静止していると判断する。
(1−3)遮蔽処理
図14は、遮蔽の説明に供する略線図である。遮蔽は、移動体Mが遮蔽物Nの後方を横切ることにより発生し、これによりこの図14の例では、連続するnフレームからn+5フレームにおいて、移動体に設定される特徴点(黒丸により示す)の数が、遮蔽物Nと移動体Mとの重なり合いの程度によって順次変化することになる。
これにより図15(A)に示すように、移動体に設定された特徴点数にあっては、遮蔽の開始により徐々に数が低下した後、遮蔽の終了に近づくに従って徐々に数が増大して遮蔽前の値に戻ることになる。すなわちこの場合、上述した追跡回数の信頼度ωcの検出処理において、追跡回数がしきい値t1以下の、追跡回数信頼度ωcの低い特徴点が増大し、これとは逆に追跡回数がしきい値t2以上の、追跡回数信頼度ωcの高い特徴点が減少する。
これにより追跡対象領域の特徴点の数に対して、所定回数以上連続して追跡に成功している特徴点数の比率を求めることにより、遮蔽の程度を示す遮蔽度を検出することができる。なおこの実施例では、繰り返しのフレームの処理で信頼度の低い特徴点を削除すると共に、削除した分、特徴点を追加設定していることにより、このように所定回数以上連続して追跡に成功している特徴点は、この所定回数以上の繰り返し処理で、追加設定されなかった特徴点となる。
これにより中央処理ユニット6は、この遮蔽度に応じてステップSP5で検出される移動ベクトルと、過去の繰り返し処理で検出された移動ベクトルとを演算処理することにより、このステップSP5で検出される移動ベクトルを補正し、遮蔽中の移動体を追跡する。
すなわち図16は、この遮蔽対策に係る中央処理ユニット6の処理手順を示すフローチャートである。中央処理ユニット6は、この処理手順を開始すると、ステップSP51からステップSP52に移り、遮蔽度を検出する。ここで中央処理ユニット6は、次式により示すように、追跡回数が所定回数以上の特徴点数を計算し、この計算した特徴点数を所定の基準値th7から減算し(図15(B))、その結果得られる減算値を基準値th7により割り算して正規化し(図15(C))、遮蔽度を検出する。なおここでV4.0は、追跡回数が所定回数以上の特徴点数である。なお追跡回数が所定回数以上の特徴点数に代えて、追跡回数信頼度ωcが所定値以上の特徴点数を検出して遮蔽度を検出するようにしてもよい。なおこの実施例では、この基準値th7を、追跡対象領域に設定されている特徴点の数の1/2の値に設定した。
これにより中央処理ユニット6は、図15(C)に示すように、追跡回数が所定回数以上の特徴点数が、追跡対象領域に削除されてないで保持されている特徴点数の1/2以上の範囲では、値0に保持されるように、またこの追跡回数が所定回数以上の特徴点数が、追跡対象領域に削除されてないで保持されている特徴点数の1/2以下となると、この追跡回数が所定回数以上の特徴点数の減少により徐々に値が値0から増大するように、また追跡回数が所定回数以上の特徴点数が0個となる値1となるように、遮蔽度を計算する。
続いて中央処理ユニット6は、ステップSP53において、この遮蔽度を用いた移動体慣性移動ベクトルを計算する。ここで移動体慣性移動ベクトルは、移動体が慣性により移動している場合の、この移動体の動きを示す動きベクトルであり、次式の演算処理により計算される。なおここで移動ベクトルは、ステップSP5で計算した移動ベクトルである。また過去移動ベクトルは、移動体の過去のフレームで検出される移動ベクトルであり、例えば、1フレーム前で検出された移動体の動きベクトル、10フレーム前で検出された移動体の動きベクトル等が適用される。またαは、帰還率を抑制するパラメータであり、この実施例では遮蔽度が代入される。これにより中央処理ユニット6は、重み付け係数を遮蔽度に応じて可変して、ステップSP5で検出した移動ベクトルと、過去の繰り返し処理で検出された移動ベクトルとの重み平均処理により、ステップSP5で検出した移動ベクトルを補正する。
なお(14)式により明らかなように、この実施例では、特徴点による移動体の動きベクトルと、過去の1フレームで検出された移動体の動きベクトルとを用いた一次関数の演算処理により遮蔽された移動体の動きを計算する場合について述べたが、二次関数等の演算処理により過去の複数フレームで計算された動きベクトルにより移動体の動きを計算するようにしてもよい。
これにより中央処理ユニット6は、移動体が一定値以上遮蔽されるまでの間、特徴点の動きベクトルで検出される移動ベクトルにより移動体を追跡し、一定値以上遮蔽されると、(1−α)の帰還率により過去に検出した移動ベクトルを用いて動きベクトルで検出される移動ベクトルを補正する。しかして中央処理ユニット6は、この移動体慣性移動ベクトルを移動体の動きベクトルに設定した後、ステップSP54に移ってこの処理手順を終了する。
(1−4)ずれ補正処理
ところで各特徴点の動きベクトル検出は、局所的な動きについては、正確に動きを追跡できるものの、必ずしも追跡対象の動きを正しく反映するものではない。これによりこの実施例のように複数の特徴点で検出される動きベクトルを統計的に処理して追跡対象領域を移動させる場合、移動体の動きに対してこの追跡対象領域の移動が誤差を有するものとなり、図17において、連続するNフレームにおける移動体と枠Wによる追跡対象領域との関係を示すように、この誤差の累積により移動体に対して追跡対象領域が徐々にずれてしまう場合があり、これにより徐々に追跡精度が低下することになる。
このため中央処理ユニット6は、図18に示すずれ補正処理により、このようなずれを補正する。すなわち中央処理ユニット6は、この処理手順を開始すると、ステップSP61からステップSP62に移る。ここで中央処理ユニット6は、上述した遮蔽処理における遮蔽度の判定により、処理対象のフレームが遮蔽中であるか否か判断する。ここで肯定結果が得られると、中央処理ユニット6は、ステップSP62からステップSP63に移り、この場合、何ら補正処理することなく元の処理手順に戻る。これにより中央処理ユニット6は、遮蔽中の場合には、何ら移動ベクトルをずれ補正することなくこの処理手順を終了する。なおここでこの実施例における遮蔽中か否かの判断にあっては、遮蔽度の値0からの立ち上がりによりフラグを設定するようにして、このフラグの判定により実行される。
これに対してステップSP62で否定結果が得られると、中央処理ユニット6は、ステップSP62からステップSP64に移り、ここで処理対象のフレームが遮蔽を終了した直後のフレームであるか否か判断する。なおここで遮蔽が終了した後、所定フレーム数Nだけ経過するまでの間にあっては、遮蔽を終了した直後のフレームであると判断する。またこれら遮蔽中であるか否かの判断にあっては、上述の遮蔽度の判定に限らず、遮蔽処理とは別に判定するようにしてもよい。
ここで否定結果が得られると、中央処理ユニット6は、ステップSP64からステップSP65に移る。ここで中央処理ユニット6は、既に移動ベクトルを検出したフレームであって、移動体が遮蔽されていないフレームの画像データSVより固定パターンを作成する(図17(A))。具体的に、この実施例では、Nフレームだけ前に処理した画像データSVを使用してこの固定パターンを作成し、これにより図18において時点t1により示す処理対象フレームから上述の所定フレーム数Nだけ時間軸を逆上った時点t1−Nにより示すフレームにおいて、同一の追跡対象領域の画像データSVより固定パターンを作成する(図17(A))。これにより中央処理ユニット6は、遮蔽中のフレームにあっては、ずれ補正処理に使用しないようにする。
ここでこの固定パターンは、相関検出用のテンプレートであり、追跡対象領域の画像データを切り出して作成される。なお固定パターンは、このようにNフレーム前の画像データSVにより作成する場合に限らず、Nフレーム前からさらに逆上ったK個のフレームの画像データSVの平均値により作成する場合、さらにはこれらK個のフレームによる画像データの重み付け平均値により作成する場合、さらには帰還フィルタの手法により作成する場合等、既に移動ベクトルを検出したフレームであって、移動体が遮蔽されていないフレームの画像データより種々の方法で作成することができる。
中央処理ユニット6は、このようにして作成した固定パターンに対して、重み係数を設定した重みパターンをさらに作成する。ここでこの重みパターンは、この固定パターンに係る追跡対象領域に設定された特徴点について、それぞれ特徴点のサンプリング点と、このサンプリング点近傍のサンプリング点とに、各特徴点の信頼度の値による重み係数を設定し、残りのサンプリング点に値0の重み係数を設定して作成される。またこの信頼度にあっては、上述したノイズ除去処理に係る総合の信頼度、又は総合の信頼度の算出に供された各信頼度の何れかを適用することができる。またこのように信頼度の値による重み係数を設定する特徴点近傍のサンプリング点にあっては、必要に応じて種々に設定することができ、また移動体に応じて水平方向と垂直方向とでサンプリング点の数を異ならせるようにしてもよい。
中央処理ユニット6は、続いてステップSP66に移り、この固定パターン、重みパターンを用いたブロックマッチングにより最も相関の高い位置を検出する。具体的に、中央処理ユニット6は、この固定パターンを追跡対象領域に重ね合わせた位置を中心にして、垂直方向及び水平方向にそれぞれ±S画素の範囲をサーチ範囲に設定し、処理対象のフレームに係る画像に対して、このサーチ範囲で順次、固定パターンを移動させる。また各移動位置毎に、固定パターンと処理対象フレームの画像との間で、重なり合うサンプリング点間で画素値の差分値を計算し、さらに重みパターンによる対応する重み係数により各差分値を乗算する。中央処理ユニット6は、この乗算値の絶対値和を計算し、これにより相関値を計算する。また各位置で検出される相関値より最も値の小さな相関値の位置を検出する。なおこれにより図17及び図19において示すサーチ範囲は、固定パターンの1つのサンプリング点についてのサーチ範囲である。またこの相関値の検出にあっては、追跡対象領域の全サンプリング点による固定パターンにより実行する場合に限らず、サンプリング点を間引きした低解像度の固定パターンにより実行する場合等、種々のパターンマッチング手法を広く適用することができる。
中央処理ユニット6は、これにより処理対象フレームより過去のフレームに設定された追跡対象領域と、次フレームとのパターンマッチングにより、過去のフレームに設定された追跡対象領域と次フレームとの間で最も相関の高い位置を検出し、これによりパターンマッチング法により処理対象フレームにおける移動体の位置を検出する。
中央処理ユニット6は、続いてステップSP67に移り、処理対象フレームの対応する追跡対象領域の中心位置から、このようにして検出した最も相関の高い位置までのベクトルを検出し、これにより移動体に対する追跡対象領域のずれを検出する。中央処理ユニット6は、この検出したベクトルをずれ修正用のベクトルとして用いて、続くステップSP68において、この処理対象フレームで検出した移動ベクトルにこの修正ベクトルを加算して移動ベクトルを補正し、これにより移動体に対する追跡対象領域のずれを補正した後、ステップSP63に移ってこの処理手順を終了する。
これに対してステップSP64で肯定結果が得られると、中央処理ユニット6は、ステップSP64からステップSP69に移る。ここで中央処理ユニット6は、遮蔽されていたフレームの分だけさらに逆上ったフレームにより固定パターンを作成する。これにより図19に示す例において、時点t3によるフレームにあっては、遮蔽を開始した時点t2よりNフレーム分だけ逆上った時点t2−Nによるフレームを用いて、固定パターンを作成し、さらに重みパターンを作成し、これによっても遮蔽中のフレームを処理に使用しないようにする。
また続くステップSP65において、中央処理ユニット6は、上述したと同様にして、この固定パターン、重みパターンにより重み相関値を計算する。この処理において、中央処理ユニット6は、このように遮蔽終了直後においては、何ら遮蔽されていなかった場合に比して、サーチ範囲を拡大して相関値を計算する。これにより中央処理ユニット6は、遮蔽終了直後にあっても、確実にずれを補正する。なおこのサーチ範囲の拡大にあっては、遮蔽により位置ずれ補正を中止したフレーム数に応じて設定され、例えばこのフレーム数に比例してサーチ範囲が拡大するように設定される。
図20は、これら一連の中央処理ユニット6の処理により構成されるこの物体追跡装置3の機能ブロック図である。この物体追跡装置3において、特徴点処理部11は、前フレームに追跡対象領域を設定して特徴点を設定し、また一連の処理により削除された分、特徴点を追加設定する特徴点選択部12を構成すると共に、この特徴点選択部12による特徴点の現フレームへの動きベクトルを検出して特徴点を追跡する特徴点追跡部13を構成する。これに対して動き解析部14は、特徴点処理部11で検出される動きベクトルにより移動ベクトルを検出する。すなわち動き解析部14において、ノイズ削減、削除部15は、信頼度を検出して特徴点を削除することによりノイズの影響を低減し、また現フレームの動き算出部16は、残った特徴点の動きベクトルにより移動ベクトルを計算する。これに対して遮蔽対策部17は、この移動ベクトルを遮蔽対策処理し、遮蔽検出部18において、移動体の遮蔽度を検出する。またこの検出した遮蔽度により、過去の動き情報19を用いて慣性部20により移動体慣性移動ベクトルを検出し、この移動体慣性移動ベクトルにより移動体の移動ベクトルを出力する。これに対してズレ対策部21は、移動体に対するこの移動ベクトルのずれを補正する。すなわちズレ対策部21において、遮蔽直後対策部22は、遮蔽直後のフレームを検出し、ズレ補正部23は、この遮蔽直後対策部22の検出結果を参考にして、次フレームに設定する追跡対象領域の位置を補正し、この追跡対象領域の位置情報を物体追跡結果S1として出力する。
(2)実施例の動作
以上の構成において、この物体追跡装置3は(図1及び図2)、画像データSVにより処理対象フレームの処理により、この処理対象フレームに移動体の領域を示す追跡対象領域が設定され、この追跡対象領域と次フレームの画像データSVの比較により、移動体の移動ベクトルが検出される。またこの移動体の移動ベクトルにより、この次フレームに追跡対象領域が設定され、この次フレームが続く処理の処理対象フレームに設定されて同様の処理が繰り返される。これによりこの物体追跡装置3は、連続するフレームで順次移動体の移動に追従するように追跡対象領域を移動させて移動物体を追跡する。
物体追跡装置3は、このような追跡対象領域と次フレームの画像データSVを比較して移動ベクトルを検出する処理が、特徴点で検出される動きベクトルの処理により実行される。すなわち物体追跡装置3では、前フレームによる処理対象フレームから動きのある領域が検出され、この領域を囲むように長方形形状による枠Wが設定されて追跡対象領域が設定され、この追跡対象領域で特徴点が所定個数検出される(図3)。物体追跡装置3では、この特徴点の次フレームへの動きベクトルが検出され、この動きベクトルの統計的な処理により移動体の次フレームへの動きを示す移動ベクトルが検出される。
しかしながらこのようにして検出される追跡対象領域には(図4)、移動体以外の背景、前提等に特徴点が設定される場合もあり、これによりこのような特徴点にあっては移動体の動きを正しく反映していないことになり、移動ベクトル検出のノイズとなる。また例えば歩行する人物の四肢のように、移動体の一部ではあるものの、移動体とは異なる動きを呈する特徴点も存在し、このような特徴点の動きベクトルも移動ベクトル検出のノイズとなる。このようなノイズの存在にあっては、移動ベクトルの検出精度を劣化させることになる。
これによりこの実施例では、移動体上に存在する特徴点の確からしさを示す信頼度が各特徴点で検出され、この信頼度により、信頼度の低い特徴点で検出される動きベクトルを処理結果に反映しないように動きベクトルが処理されて移動ベクトルが検出される。これによりこの実施例では、背景、前景の特徴点、移動体自身の動きに対して動きが大きく異なる四肢等の特徴点については、移動ベクトルに反映させないようにすることができ、これによりノイズによる検出精度の劣化が防止される。
またこのように移動ベクトルを検出するようにして、信頼度の低い特徴点が削除され、この特徴点の動きベクトルが移動ベクトルの検出に使用しないように設定されると共に、この削除した分だけ続く繰り返しの処理における追跡対象領域に特徴点が設定され、これにより移動ベクトルの算出処理に供する動きベクトルの数を少なくして、信頼性の低い動きベクトルを移動ベクトルに反映しないように設定され、これにより簡易な処理によりノイズによる検出精度の劣化が防止される。
また信頼度を用いた動きベクトルの重み付け処理により移動ベクトルが検出され、これによっても信頼性の低い動きベクトルを移動ベクトルに反映しないように設定され、これによっても確実にノイズによる検出精度の劣化が防止される。
より具体的に、この実施例では、異なる検出手法により複数種類の信頼度が検出される(図5)。すなわちこのような信頼度により特徴点を削除、設定して処理を繰り返すようにして、特徴点毎に、繰り返し処理における追跡回数により追跡回数信頼度が検出され(図6)、これにより追跡することが困難となった、例えば移動体の遮蔽を開示した直後のこの遮蔽に係る遮蔽物に設定された特徴点、それまで隠れていた移動体の特徴点等が低い信頼度により検出され、これらの特徴点による動きベクトルが移動ベクトルに反映されないように設定されてノイズによる検出精度の劣化が防止される。
また直前で検出された移動ベクトルと動きベクトルとの差分ベクトルが判定されて時間的信頼度が検出され(図7〜図10)、これにより時間軸上の変化により観察して移動体と異なる動き呈する背景、前景等の特徴点については、移動ベクトルに動きベクトルが反映されないように設定され、これによってもノイズによる検出精度の劣化が防止される。
また弾性インデックスを用いて、他の特徴点との間の距離の変化が判定され、この判定結果の集計により空間的信頼度が検出される(図11及び図12)。これにより例えば移動する人体の四肢に設定された特徴点あって、人体の移動に対して大きく動きが異なる特徴点、さらには背景、前景等の特徴点については、動きベクトルが移動ベクトルに反映されないように設定され、これによってもノイズによる検出精度の劣化が防止される。
また移動体が移動していることを条件に、特徴点の位置座標の判定により、それまで繰り返し静止していた回数によって信頼度を示す静止点信頼度が検出され、これによっても静止した背景、前景等による特徴点の動きベクトルが移動ベクトルに反映されないように設定され、これによってもノイズによる検出精度の劣化が防止される(図5)。
また各特徴点毎に、周囲のサンプリング点との間でサンプリング値の差分値が判定され、これにより周囲のサンプリング点との比較により信頼度を示す平滑度信頼度が検出され、これにより特徴点自体の信頼度が低いものについては、動きベクトルが移動ベクトルに反映されないように設定され、これによってもノイズによる検出精度の劣化が防止される(図5)。
この実施例では、このようにして検出される複数種類の信頼度のうちの一部の信頼度である追跡回数信頼度、時間的信頼度、空間的信頼度の乗算処理により総合の信頼度が検出される。またこの総合の信頼度を用いた動きベクトルの重み付け処理の1つである重み付け平均により、移動ベクトルが検出される。これによりこの実施例では、1つの手法によって検出される信頼度を用いた処理によっては、ノイズの影響を除去できない場合でも、他の手法によって検出される信頼度によりノイズの影響を除去することができ、一段と確実にノイズによる検出精度の劣化が防止される。
また同様にしてこのようにして検出される複数種類の信頼度のうちの一部の信頼度である時間的信頼度、静止点信頼度、平滑度信頼度により特徴点が削除され、これにより1つの手法によって検出される信頼度を用いた処理によっては、削除困難なノイズに係る特徴点についても、他の手法によって検出される信頼度により削除することができ、これによっても一段と確実にノイズによる検出精度の劣化が防止される。
しかしながらこのようにノイズにより影響を解消するようにしても、移動体が遮蔽物により遮蔽された場合には、移動体を追跡することが困難になる。また複数フレームに渡って追跡すると、移動体に対して、徐々に追跡対象枠がずれるようになり、これにより検出精度が劣化することになる。
このためこの実施例では、移動体の遮蔽の程度を示す遮蔽度が検出され、動きベクトルより検出される移動ベクトルと、過去の繰り返し処理で検出された移動ベクトルとによるこの遮蔽度に応じた演算処理により、動きベクトルにより検出された移動ベクトルが補正される(図14〜図16)。これによりこの実施例では、遮蔽された場合でも、移動体を追跡することが可能となる。
また処理対象フレームより過去のフレームにおける追跡対象領域を用いたブロックマッチングにより、次フレームにおける追跡対象領域の移動体に対するずれが補正される(図17〜図19)。これによりこの実施例では、位置ずれが防止されて検出精度が向上される。
この実施例では、これらの処理のうち、遮蔽に係る処理が、重み付け係数を遮蔽度に応じて可変した、動きベクトルによる移動ベクトルと、過去の繰り返し処理で検出された移動ベクトルとの重み平均処理により実行される。これにより何ら移動体が遮蔽されていない場合と移動体が遮蔽された場合とで処理を切り換えることなく、移動ベクトルを処理することができ、その分、処理が簡略化される。また遮蔽の程度が小さい場合には、動きベクトルによる移動ベクトルを優先的に使用して移動ベクトルを求め、遮蔽の程度が大きくなるに従って過去の繰り返し処理で検出された移動ベクトルによる補正量を増大させて移動ベクトルを検出することができ、これにより例えば移動体の移動速度が変化している過程で遮蔽されたような場合の、追跡の失敗が防止される。
またこのような移動ベクトルの補正に使用する繰り返し処理で検出された移動ベクトルにあっては、処理対象フレームの所定フレーム数だけ前のフレームで検出された移動ベクトルが適用され、これによりこのほぼ一定の速度により移動する移動体と、動きの変化が激しい移動体とで、この所定フレーム数を適宜設定することにより、遮蔽された移動体を正しく追跡することができる。またこの移動ベクトルには、処理対象フレームより前の複数フレームで検出された移動ベクトルの平均値による移動ベクトルを適用するようにしてもよく、この場合には、ほぼ一定の速度により移動する移動体に関して、検出された移動ベクトルのばらつきによる影響を低減して、遮蔽された移動体を正しく追跡することができる。
これに対してこの遮蔽度の計算にあっては、上述した追跡回数信頼度の検出に係る連続して追跡される特徴点、すなわち所定回数以上の繰り返し処理で追加設定されていない特徴点の数が検出され、追跡対象領域の特徴点の数に対するこの特徴点の数の比率により遮蔽度が検出される。これにより特徴点による動きベクトルを用いて移動体を追跡する構成を有効に利用して遮蔽率が計算され、その分、全体の処理が簡略化される。またこの実施例では、追跡回数信頼度の検出処理を利用して、遮蔽率を計算することができ、これによっても全体の処理が簡略化される。
これに対して位置ずれにあっては、過去のフレームに設定された追跡対象領域の各サンプリング点のサンプリング値により固定パターンが作成され、またこの固定パターンに対応する各サンプリング点について、信頼度に応じた重み付け係数が設定されて重みパターンが生成される。また固定パターンを走査させて、各走査位置で重なり合うサンプリング点間でサンプリング値の差分値を重みパターンの対応する重み係数により重み付けして集計することにより、各走査位置における相関値が検出される。またこの相関値を判定して最も相関の高い位置が検出されて位置ずれが補正される。
これによりこの実施例では、信頼度の低い箇所については、固定パターンにより相関値の検出に使用しないようにして検出精度の劣化が防止され、正しく位置ずれが防止される。
また次フレームの追跡対象領域の中心を基準とした所定のサーチ範囲でサーチしてこのような相関値が検出され、これにより不必要な相関値検出の処理を省略して処理が簡略化される。
また遮蔽中には、このような処理が中止され、これにより誤った位置ずれ防止処理が防止される。
また遮蔽の開始から遮蔽の終了までの間の処理対象フレームについては、過去のフレームに設定しないように設定され、これによっても誤った位置ずれ防止処理が防止される。
また遮蔽の終了直後にあっては、遮蔽の開始直前に比してサーチ範囲が拡大され、これにより遮蔽の期間の複数フレームにより位置ずれが累積する場合でも、確実に位置ずれが防止される。
(3)実施例の効果
以上の構成によれば、移動体の遮蔽の程度を示す遮蔽度を検出し、この遮蔽度に応じた過去に検出した移動ベクトルとの演算処理により、処理対象フレームで検出される移動体の移動ベクトルを補正することにより、追跡対象の移動体が遮蔽された場合でも、移動体の動きを検出することができる。
またこのときこの演算処理が、重み付け係数を遮蔽度に応じて可変した、動きベクトルによる移動ベクトルと、過去の処理で検出された移動ベクトルとの重み平均処理であることにより、何ら移動体が遮蔽されていない場合と移動体が遮蔽された場合とで処理を切り換えることなく、移動ベクトルを処理することができ、その分、処理を簡略化することができる。また遮蔽の程度が小さい場合には、動きベクトルによる移動ベクトルを優先的に使用して移動ベクトルを求め、遮蔽の程度が大きくなるに従って過去の繰り返し処理で検出された移動ベクトルによる補正量を増大させて移動ベクトルを検出することができ、これにより例えば移動体の移動速度が変化している過程で遮蔽されたような場合の追跡の失敗が防止される。
またこの補正に供する移動ベクトルが、処理対象フレームの所定フレーム数だけ前のフレームで検出された移動ベクトルであることにより、ほぼ一定の速度により移動する移動体、動きの変化が激しい移動体等、移動体の性質に応じてこの所定フレーム数を適宜設定することにより、各種の移動体について遮蔽した移動体を正しく追跡することができる。
またこの移動ベクトルには、処理対象フレームより前の複数フレームで検出された移動ベクトルの平均値による移動ベクトルを適用するようにしてもよく、この場合には、ほぼ一定の速度により移動する移動体に関して、検出された移動ベクトルのばらつきにより影響を低減して、遮蔽された移動体を正しく追跡することができる。
またこのような移動ベクトルの検出を、特徴点の動きベクトルにより検出することを前提として、追跡回数により移動体上に存在する特徴点の確からしさを示す信頼度を求め、この信頼度により特徴点を削除して移動ベクトルを検出するようにして、この信頼度の検出に係る連続して追跡される特徴点、すなわち所定回数以上の繰り返し処理で追加設定されていない特徴点の数を利用して遮蔽度を検出することにより、特徴点の動きベクトルにより物体追跡する構成を有効に利用して、さらには信頼度の検出処理を有効に利用して遮蔽率を計算することができ、その分、全体の処理を簡略化することができる。