(57)【特許請求の範囲】
【請求項１】
移動するオブジェクトを追尾する画像処理装置において、
画像の中の前記オブジェクトの過去の動きベクトルを履歴情報として記憶する記憶手段と、
前記記憶手段に記憶されている前記履歴情報に基づいて、複数の前記過去の動きベクトルの中から、第１の最大値および第１の最小値、並びに、前記第１の最大値と前記第１の最小値の差分であるダイナミックレンジを求め、前記第１の最大値に前記ダイナミックレンジを加算した第２の最大値と、前記第１の最小値から前記ダイナミックレンジを減算した第２の最小値を求め、前記第２の最大値と前記第２の最小値を、現在のフレームの予測動きベクトルの範囲として設定する範囲設定手段と、
前記オブジェクトの現在のフレームで推定された動きベクトルが、前記予測ベクトルの範囲外である場合、前記オブジェクトの現在の動きは推定不可能であると判断し、前記予測ベクトルの範囲内である場合、前記オブジェクトの現在の動きは推定可能であると判断する判断手段と、
前記判断手段により、推定不可能であると判断された場合、前記記憶手段に記憶されている前記過去の動きベクトルを読み出して外挿する外挿手段と
を備える画像処理装置。
【請求項２】
前記範囲設定手段は、前記ダイナミックレンジが０となったときに、前記予測動きベクトルの範囲が０となるのを防ぐために、前記第２の最大値にさらに閾値を加算した値を第２の最大値とし、前記第２の最大値にさらに前記閾値を減算した値を前記第２の最小値にする
請求項１に記載の画像処理装置。
【請求項３】
前記外挿手段により連続して前記過去の動きベクトルが外挿された場合、前記オブジェクトの現在の動きベクトルを０ベクトルに設定する
請求項１に記載の画像処理装置。
【請求項４】
前記外挿手段により、前記過去の動きベクトルが外挿された回数をカウントするカウント手段をさらに備え、
前記判断手段により推定可能であると判断された場合、または前記カウンタ手段によるカウンタの値が閾値を超えたと判断された場合、前記カウンタ手段によるカウンタの値を初期化する
請求項１に記載の画像処理装置。
【請求項５】
前記画像の一時停止を検出する検出手段をさらに備え、
前記検出手段により前記画像の一時停止が検出された場合、前記範囲設定手段は、前記予測ベクトルの範囲を大きな値に設定する
請求項１に記載の画像処理装置。
【請求項６】
移動するオブジェクトを追尾する画像処理装置の画像処理方法において、
画像の中の前記オブジェクトの過去の動きベクトルを履歴情報として記憶し、
前記記憶されている前記履歴情報に基づいて、複数の前記過去の動きベクトルの中から、第１の最大値および第１の最小値、並びに、前記第１の最大値と前記第１の最小値の差分であるダイナミックレンジを求め、前記第１の最大値に前記ダイナミックレンジを加算した第２の最大値と、前記第１の最小値から前記ダイナミックレンジを減算した第２の最小値を求め、前記第２の最大値と前記第２の最小値を、現在のフレームの予測動きベクトルの範囲として設定し、
前記オブジェクトの現在のフレームで推定された動きベクトルが、前記予測ベクトルの範囲外である場合、前記オブジェクトの現在の動きは推定不可能であると判断し、前記予測ベクトルの範囲内である場合、前記オブジェクトの現在の動きは推定可能であると判断し、
推定不可能であると判断された場合、前記記憶されている前記過去の動きベクトルを読み出して外挿する
ステップを含む画像処理方法。
【請求項７】
移動するオブジェクトを追尾する画像処理装置の画像処理をコンピュータに実行させるプログラムにおいて、
画像の中の前記オブジェクトの過去の動きベクトルを履歴情報として記憶し、
前記記憶されている前記履歴情報に基づいて、複数の前記過去の動きベクトルの中から、第１の最大値および第１の最小値、並びに、前記第１の最大値と前記第１の最小値の差分であるダイナミックレンジを求め、前記第１の最大値に前記ダイナミックレンジを加算した第２の最大値と、前記第１の最小値から前記ダイナミックレンジを減算した第２の最小値を求め、前記第２の最大値と前記第２の最小値を、現在のフレームの予測動きベクトルの範囲として設定し、
前記オブジェクトの現在のフレームで推定された動きベクトルが、前記予測ベクトルの範囲外である場合、前記オブジェクトの現在の動きは推定不可能であると判断し、前記予測ベクトルの範囲内である場合、前記オブジェクトの現在の動きは推定可能であると判断し、
推定不可能であると判断された場合、前記記憶されている前記過去の動きベクトルを読み出して外挿する
ステップを含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および方法、並びにプログラムに関し、特に、オブジェクトの追尾において、過去の動き履歴情報から現在の動きを推定することができるようにした画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、追尾や画面内を複数の領域に分割して領域毎に検出したオプティカルフローを解析することで、指定したオブジェクトを追跡する手法などがある。相関値演算においては、例えば、ブロックマッチング法や勾配法などが良く知られている。
【０００３】
またブロックマッチング法に関わらず、その他の動きベクトル検出手法においても、動きベクトルを検出する評価手法として、例えば、基準ブロックと検査ブロック間の差分絶対値総和などが良く用いられる。
【０００４】
しかしながら、この手法では、基準ブロックと検査ブロックの相関性の評価しか行っていないため、実際の画像内の物体の動きとは関係の無い動きベクトルが選択され、画像内の動きベクトルが乱れたり、あるいは、近傍動きベクトルとは無相関で孤立した動きベクトルが存在するといった動きベクトルの劣化が発生する。
【０００５】
そこで、動きベクトルの確らしさを表す指標として、相関値演算の評価値の大きさ、画像の粗さ、または動きベクトルの空間相関性などを用いたものがある。例えば、特許文献１には、動き確度が閾値以上であるか否かにより動きベクトルの確からしさを判断し、その動きベクトルの確度を用いて精度良く動きを検出することができる。
【特許文献１】特開２００５−３０１９８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１は、例えば、他のオブジェクトとの交差により追尾点が消失した場合、前景となった他のオブジェクトの動き確度が閾値以上になると、誤って前景のオブジェクトを追尾してしまうことがある。
【０００７】
ここで図１を参照して、他のオブジェクトとの交差により追尾に失敗する例を説明する。      
【０００８】
図１の例では、フレームｎ−１において、異なる向きで動くオブジェクト３０１とオブジェクト３０２が存在し、追尾対象としてのオブジェクト３０１に追尾点３１１が設定されていたとする。
【０００９】
フレームｎ−１において、フレームｎ−１とフレームｎの間のマッチングの結果、オブジェクト３０１の動きベクトルが検出される。フレームｎにおいて、オブジェクト３０１とオブジェクト３０２の交差により、オブジェクト３０１の前景となったオブジェクト３０２に追尾点３１１が移動してしまい、フレームｎとフレームｎ＋１の間のマッチングの結果、オブジェクト３０２の動きベクトルが検出されてしまう。さらに、交差後のフレームｎ＋１においては、オブジェクト３０２に追尾点３１１が完全に移動し、オブジェクト３０１の追尾に失敗することになる。
【００１０】
このように、オブジェクトを追尾するために求められる動きベクトルは、相関値演算の評価値や動きベクトルの空間相関性だけでは評価できない場合がある。
【００１１】
本発明はこのような状況に鑑みてなされたものであり、オブジェクトの追尾において、過去の動き履歴情報から現在の動きを推定することができるようにするものである。
【課題を解決するための手段】
【００１２】
本発明の一側面の画像処理装置は、移動するオブジェクトを追尾する画像処理装置において、画像の中の前記オブジェクトの過去の動きベクトルを履歴情報として記憶する記憶手段と、前記記憶手段に記憶されている前記履歴情報に基づいて、複数の前記過去の動きベクトルの中から、第１の最大値および第１の最小値、並びに、前記第１の最大値と前記第１の最小値の差分であるダイナミックレンジを求め、前記第１の最大値に前記ダイナミックレンジを加算した第２の最大値と、前記第１の最小値から前記ダイナミックレンジを減算した第２の最小値を求め、前記第２の最大値と前記第２の最小値を、現在のフレームの予測動きベクトルの範囲として設定する範囲設定手段と、前記オブジェクトの現在のフレームで推定された動きベクトルが、前記予測ベクトルの範囲外である場合、前記オブジェクトの現在の動きは推定不可能であると判断し、前記予測ベクトルの範囲内である場合、前記オブジェクトの現在の動きは推定可能であると判断する判断手段と、前記判断手段により、推定不可能であると判断された場合、前記記憶手段に記憶されている前記過去の動きベクトルを読み出して外挿する外挿手段とを備える。
【００１３】
前記範囲設定手段は、前記ダイナミックレンジが０となったときに、前記予測動きベクトルの範囲が０となるのを防ぐために、前記第２の最大値にさらに閾値を加算した値を第２の最大値とし、前記第２の最大値にさらに前記閾値を減算した値を前記第２の最小値にするようにすることができる。
【００１４】
前記外挿手段により連続して前記過去の動きベクトルが外挿された場合、前記オブジェクトの現在の動きベクトルを０ベクトルに設定するようにすることができる。
【００１５】
前記外挿手段により、前記過去の動きベクトルが外挿された回数をカウントするカウント手段をさらに備え、前記判断手段により推定可能であると判断された場合、または前記カウンタ手段によるカウンタの値が閾値を超えたと判断された場合、前記カウンタ手段によるカウンタの値を初期化するようにすることができる。
【００１６】
前記画像の一時停止を検出する検出手段をさらに備え、前記検出手段により前記画像の一時停止が検出された場合、前記範囲設定手段は、前記予測ベクトルの範囲を大きな値に設定するようにすることができる。
【００１７】
本発明の一側面の画像処理方法は、移動するオブジェクトを追尾する画像処理装置の画像処理方法において、画像の中の前記オブジェクトの過去の動きベクトルを履歴情報として記憶し、前記記憶されている前記履歴情報に基づいて、複数の前記過去の動きベクトルの中から、第１の最大値および第１の最小値、並びに、前記第１の最大値と前記第１の最小値の差分であるダイナミックレンジを求め、前記第１の最大値に前記ダイナミックレンジを加算した第２の最大値と、前記第１の最小値から前記ダイナミックレンジを減算した第２の最小値を求め、前記第２の最大値と前記第２の最小値を、現在のフレームの予測動きベクトルの範囲として設定し、前記オブジェクトの現在のフレームで推定された動きベクトルが、前記予測ベクトルの範囲外である場合、前記オブジェクトの現在の動きは推定不可能であると判断し、前記予測ベクトルの範囲内である場合、前記オブジェクトの現在の動きは推定可能であると判断し、推定不可能であると判断された場合、前記記憶されている前記過去の動きベクトルを読み出して外挿するステップを含む。
【００１８】
本発明の一側面のプログラムは、移動するオブジェクトを追尾する画像処理装置の画像処理をコンピュータに実行させるプログラムにおいて、画像の中の前記オブジェクトの過去の動きベクトルを履歴情報として記憶し、前記記憶されている前記履歴情報に基づいて、複数の前記過去の動きベクトルの中から、第１の最大値および第１の最小値、並びに、前記第１の最大値と前記第１の最小値の差分であるダイナミックレンジを求め、前記第１の最大値に前記ダイナミックレンジを加算した第２の最大値と、前記第１の最小値から前記ダイナミックレンジを減算した第２の最小値を求め、前記第２の最大値と前記第２の最小値を、現在のフレームの予測動きベクトルの範囲として設定し、前記オブジェクトの現在のフレームで推定された動きベクトルが、前記予測ベクトルの範囲外である場合、前記オブジェクトの現在の動きは推定不可能であると判断し、前記予測ベクトルの範囲内である場合、前記オブジェクトの現在の動きは推定可能であると判断し、推定不可能であると判断された場合、前記記憶されている前記過去の動きベクトルを読み出して外挿するステップを含む。
【００１９】
本発明の一側面においては、画像の中のオブジェクトの過去の動きベクトルが履歴情報として記憶され、記憶されている履歴情報に基づいて、複数の過去の動きベクトルの中から、第１の最大値および第１の最小値、並びに、第１の最大値と第１の最小値の差分であるダイナミックレンジが求められ、第１の最大値にダイナミックレンジを加算した第２の最大値と、第１の最小値からダイナミックレンジを減算した第２の最小値が求められ、第２の最大値と第２の最小値が、現在のフレームの予測動きベクトルの範囲として設定され、オブジェクトの現在のフレームで推定された動きベクトルが、予測ベクトルの範囲外である場合、オブジェクトの現在の動きは推定不可能であると判断され、予測ベクトルの範囲内である場合、オブジェクトの現在の動きは推定可能であると判断され、推定不可能であると判断された場合、記憶されている過去の動きベクトルが読み出されて外挿される。
【発明の効果】
【００２０】
本発明によれば、オブジェクトの追尾中において、オブジェクトの追尾において、過去の動き履歴情報から現在の動きを推定することができる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態について図を参照して説明する。
【００２７】
図２は、本発明を監視カメラシステムに適用した場合の構成例を表している。
【００２８】
撮像部２１は、例えば、CCD（Charge Coupled Device）ビデオカメラ等よりなり、撮像した画像を画像ディスプレイ２４に表示させる。追尾対象検出部２２は、撮像部２１より入力された画像から追尾対象を検出し、検出結果をオブジェクト追尾部２３に出力する。
【００２９】
オブジェクト追尾部２３は、撮像部２１より供給された画像中の、追尾対象検出部２２により指定された追尾点を追尾するように動作する。またオブジェクト追尾部２３は、追尾結果を画像ディスプレイ２４に出力するとともに、追尾結果に基づいて、移動したオブジェクトを撮像できるようにカメラ駆動部２６を制御する。カメラ駆動部２６は、オブジェクト追尾部２３からの制御に基づいて、撮像部２１が追尾点を中心とする画像を撮影するように撮像部２１を駆動する。
【００３０】
制御部２７は、例えば、マイクロコンピュータなどにより構成され、各部を制御する。また制御部２７には、半導体メモリ、磁気ディスク、光ディスク、または光磁気ディスクなどにより構成されるリムーバブルメディア２８が必要に応じて接続され、プログラム、その他各種のデータが必要に応じて供給される。指示入力部２９は、各種のボタン、スイッチ、あるいは赤外線や電波を用いたリモートコントローラなどにより構成され、ユーザからの指示に対応する信号を制御部２７に出力する。
【００３１】
次に、図３のフローチャートを参照して、図２に示した監視カメラシステムが実行する監視処理について説明する。この処理は、監視システム１の電源がオンされているとき、撮像部２１により監視する領域が撮像され、その撮像して得られた画像が追尾対象検出部２２およびオブジェクト追尾部２３を介して画像ディスプレイ２４に出力されて開始される。
【００３２】
ステップＳ１において、追尾対象検出部２２は、撮像部２１から入力された画像から追尾対象を検出する処理を実行する。例えば、入力画像に動く物体が存在する場合、追尾対象検出部２２は、その動く物体を追尾対象として検出するとともに、追尾対象の中から、最も輝度の高い点あるいは追尾対象の中心の点などを追尾点として検出し、検出結果をオブジェクト追尾部２３に出力する。
【００３３】
ステップＳ２において、オブジェクト追尾部２３は、ステップＳ１の処理で検出された追尾点を追尾する追尾処理を実行する。追尾処理の詳細については、図１６を参照して後述するが、この処理により、撮像部２１により撮像された画像の中の追尾対象となるオブジェクト（例えば、人、動物など）の中の追尾点（例えば、目、頭の中心）が追尾され、追尾結果が制御部２７に出力される。
【００３４】
ステップＳ３において、制御部２７は、ステップＳ２の処理による追尾結果に基づいて、画像ディスプレイ２４に、撮像部２１により撮像された画像に追尾位置を表すマークなどを重畳して表示させる。
【００３５】
ステップＳ４において、オブジェクト追尾部２３は、ステップＳ２の処理による追尾結果に基づいて、オブジェクトの移動を検出し、移動したオブジェクトを撮像できるようにカメラを駆動させるカメラ駆動信号を生成し、カメラ駆動部２６に出力する。ステップＳ５において、カメラ駆動部２６は、オブジェクト追尾部２３からのカメラ駆動信号に基づいて撮像部２１を駆動する。これにより撮像部２１は、追尾点が画面から外れてしまうことがないようにカメラをパンまたはチルトする。
【００３６】
ステップＳ６において、制御部２７は、指示入力部２９を介したユーザからの指示に基づいて監視処理を終了するか否かを判定し、ユーザから終了が指示されていない場合には、ステップＳ１に戻り、それ以降の処理を繰り返し実行する。そして、ステップＳ６において、ユーザから監視処理の終了が指示されたと判定された場合、制御部２７は監視処理を終了する。
【００３７】
図４Ａ乃至図４Ｃは、このとき画像ディスプレイ２４に表示される画像の例を、時系列に示した図である。図４Ａは、撮像部２１により、追尾対象となるオブジェクト４１が撮像された画像の例であり、この例では、図中左方向に走って移動する人が、オブジェクト４１として撮像されている。図４Ｂでは、オブジェクト４１が、図４Ａの位置から図中左に移動しており、図４Ｃでは、オブジェクト４１が、図４Ｂの位置からさらに左に移動している。
【００３８】
追尾対象検出部２２は、図３のステップＳ１で、オブジェクト４１を検出し、このオブジェクト４１である人の目を、追尾点４１Ａとしてオブジェクト追尾部２３に出力する。ステップＳ２ではオブジェクト追尾部２３により追尾処理が行われる。
【００３９】
次に、図２のオブジェクト追尾部２３の詳細な構成例と、その動作について説明する。      
【００４０】
図５は、オブジェクト追尾部２３の機能的構成例を示すブロック図である。図５に示されるように、オブジェクト追尾部２３は、動き推定部５２、シーンチェンジ検出部５３、背景動き推定部５４、領域推定関連処理部５５、乗り換え候補保持部５６、追尾点決定部５７、制御部５９、および一時停止検出部６０により構成されている。
【００４１】
動き推定部５２は、入力画像の動きを推定し、推定の結果得られた動きベクトルと、その動きベクトルの確度を、シーンチェンジ検出部５３、背景動き推定部５４、領域推定関連処理部５５、追尾点決定部５７、および一時停止検出部６０に出力する。シーンチェンジ検出部５３は、動き推定部５２より供給された動きベクトルとその動きベクトルの確度に基づいて、シーンチェンジを検出する。
【００４２】
背景動き推定部５４は、動き推定部５２より供給された動きベクトルとその動きベクトルの確度に基づいて背景動きを推定する処理を実行し、推定結果を領域推定関連処理部５５に供給する。領域推定関連処理部５５は、動き推定部５２より供給された動きベクトルとその動きベクトルの確度、背景動き推定部５４より供給された背景動き、並びに追尾点決定部５７より供給された追尾点情報に基づいて、領域推定処理を行う。また領域推定関連処理部５５は、入力された情報に基づいて乗り換え候補を生成し、乗り換え候補保持部５６へ供給し、保持させる。
【００４３】
追尾点決定部５７は、動き推定部５２より供給された動きベクトルとその動きベクトルの確度、乗り換え候補保持部５６より供給された乗り換え候補、並びに一時停止検出部６０より供給された一時停止検出結果に基づいて、追尾点を決定し、決定された追尾点に関する情報を領域推定関連処理部５５に出力する。
【００４４】
制御部５９は、追尾対象検出部２２から出力された追尾点の情報に基づいて、動き推定部５２乃至追尾点決定部５７、並びに一時停止検出部６０の各部を制御して、検出された追尾対象を追尾させるとともに、画像ディスプレイ２４に表示される画面の中に、追尾点が表示されるようにカメラ駆動部２６に制御信号を出力し、撮像部２１の駆動を制御する。これにより、追尾点が画面の外に出ないように制御される。また制御部５９は、追尾点の画面上での位置の情報などの追尾結果を制御部２７などに出力する。
【００４５】
一時停止検出部６０は、動き推定部５２より供給された動きベクトルとその動きベクトルの確度、および背景動き推定部５４より供給された背景動きに基づいて、一時停止検出処理を行い、一時停止からの追尾開始であるか否かを示す検出結果を追尾点決定部５７に供給する。
【００４６】
図５に示したオブジェクト追尾部２３は、追尾対象検出部２２により検出された追尾点を追尾する処理を実行し、追尾点の追尾ができなくなったとき、過去の動き履歴から現在の追尾点を推定する処理を実行することによって、継続的に追尾することが可能となる。すなわち、本実施の形態においては、例えば、図６に示されるように、オブジェクト７２が追尾対象としてのオブジェクト７１の全体を覆い隠すようなシーンチェンジが発生する等、追尾点が一時的に見えなくなった場合においても、継続的に追尾が可能となる。
【００４７】
図６の例では、時刻Ｆ（ｔ−１）において、異なる向きで動くオブジェクト７１とオブジェクト７２が存在し、追尾対象としてのオブジェクト７１に追尾点８１が設定されている。各オブジェクトの動きベクトルの検出には、例えば、ブロックマッチング方式が用いられる。
【００４８】
時刻Ｆ（ｔ−１）において、時刻Ｆ（ｔ−１）と時刻Ｆ（ｔ）の間のマッチングの結果、オブジェクト７１の動きベクトルＶA（ｖｘ，ｖｙ）＝（−４，０）が検出されるとともに、オブジェクト７２の動きベクトルＶB（ｖｘ，ｖｙ）＝（３，０）が検出される。そして、異なる向きで動くオブジェクト７１とオブジェクト７２が時刻Ｆ（ｔ＋１）で交差する場合、時刻Ｆ（ｔ）においては、時刻Ｆ（ｔ）と時刻Ｆ（ｔ＋１）の間のマッチングの結果、誤った動きベクトル（−４，−４）が検出されてしまうことがある。これにより、時刻Ｆ（ｔ＋１）において、オブジェクト７１とオブジェクト７２の交差により、オブジェクト７１の前景となったオブジェクト７２に追尾点８１が移動してしまい、時刻Ｆ（ｔ＋１）と時刻Ｆ（ｔ＋２）の間のマッチングの結果、オブジェクト７２の動きベクトルＶB（ｖｘ，ｖｙ）＝（３，０）が検出されてしまう。さらに、交差後の時刻Ｆ（ｔ＋２）においては、オブジェクト７２に追尾点８１が完全に移動し、オブジェクト７１の追尾に失敗することになる。
【００４９】
そこで本実施の形態においては、このようにシーンチェンジが起きて追尾点８１が一時的に画像から存在しなくなっても、図１６のフローチャートを参照して後述する追尾処理により、過去の動き履歴から現在の追尾点を推定することができ、追尾対象ではないオブジェクト７２に追尾点８１が移動して追尾に失敗してしまうようなことなく、継続的にオブジェクト７１を追尾することが可能となる。
【００５０】
次に、図７を参照して、図５の動き推定部５２の構成例について説明する。図７に示されるように、評価値算出部９１、アクティビティ算出部９２、および動きベクトル検出部９３には、入力画像が供給されている。
【００５１】
評価値算出部９１は、動きベクトルにより対応付けられる両対象の一致度に関する評価値を算出し、正規化処理部９５に供給する。アクティビティ算出部９２は、入力画像のアクティビティを算出し、閾値判定部９４と正規化処理部９５に供給する。動きベクトル検出部９３は、入力画像から動きベクトルを検出し、評価値算出部９１と統合処理部９６に供給する。
【００５２】
閾値判定部９４は、アクティビティ算出部９２より供給されたアクティビティを所定の閾値と比較し、その判定結果を統合処理部９６に供給する。正規化処理部９５は、評価値算出部９１より供給された評価値を、アクティビティ算出部９２より供給されたアクティビティに基づいて正規化し、得られた値を統合処理部９６に供給する。
【００５３】
統合処理部９６は、正規化処理部９５から供給された正規化情報と、閾値判定部９４より供給された判定結果に基づいて、動きベクトルの確度を演算し、得られた確度を動きベクトル検出部９３より供給された動きベクトルとともに出力する。
【００５４】
次に、図８のフローチャートを参照して、動き推定部５２が実行する動き推定処理について説明する。動きベクトルは、点に対するものとして求められているが、その確度は、動きベクトルにより対応付けられる２つの点の近傍の、例えば点を中心とする、小ブロックの画像データを用いて計算される。
【００５５】
ステップＳ１１において、動きベクトル検出部９３は、入力画像から動きベクトルを検出する。この検出には、例えばブロックマッチング方式や勾配法が用いられる。検出された動きベクトルは、評価値算出部９１と統合処理部９６に供給される。
【００５６】
ステップＳ１２において、評価値算出部９１は、ステップＳ１１の処理で検出された動きベクトルにより対応付けられる両対象の一致度に関する評価値を算出する。具体的には、例えば、動きベクトルで対応付けられる２つの点を中心とする２つのブロックの画素値の差分絶対値和が算出される。すなわち、ステップＳ１１の処理で動きベクトル検出部９３により検出された動きベクトルＶ（ｖｘ，ｖｙ）と、それに基づく時間的に前のフレームの画像Ｆｉ上の点Ｐ（Ｘｐ，Ｙｐ）、並びに時間的に後のフレームの画像Ｆｊ上の点Ｑ（Ｘｑ，Ｙｑ）の関係は次式（１）で表される。
【００５７】
【数１】
0004826315.tif 000002
【００５８】
評価値算出部９１は点Ｐを中心とするブロックと、点Ｑを中心とするブロックについて、次式（２）に基づいて評価値Ｅｖａｌ（Ｐ，Ｑ，ｉ，ｊ）を演算する。
【００５９】
【数２】
0004826315.tif 000003
【００６０】
各ブロックは、１辺が２Ｌ＋１画素の正方形とされている。上記式（２）における総和ΣΣは、ｘが−ＬからＬについて、ｙが−ＬからＬについて、対応する画素同士で行われる。従って、例えば、Ｌ＝２である場合、９個の差分が得られ、その絶対値の総和が演算される。評価値は、その値が０に近づくほど、２つのブロックがよく一致していることを表している。
【００６１】
評価値算出部９１は、算出した評価値を正規化処理部９５に供給する。
【００６２】
ステップＳ１３において、アクティビティ算出部９２は、入力画像からアクティビティを算出する。アクティビティは、画像の複雑さを表す特徴量であり、図９に示されるように、各画素毎に注目画素Ｙ（ｘ，ｙ）と、それに隣接する８画素Ｙ（ｘ＋ｉ，ｙ＋ｊ）との差分絶対値和の平均値が、注目画素位置のアクティビティActivity(x,y)として次式（３）に基づいて演算される。
【００６３】
【数３】
0004826315.tif 000004
【００６４】
図９の例の場合、３×３画素のうち、中央に位置する注目画素Ｙ（ｘ，ｙ）の値は１１０であり、それに隣接する８個の画素の値は、それぞれ８０，７０，７５，１００，１００，１００，８０，８０であるから、アクティビティActivity(x,y)は次式で表される。
【００６５】
Activity(x,y)  ＝｛｜８０−１１０｜＋｜７０−１１０｜＋｜７５−１１０｜＋｜１００−１１０｜＋｜１００−１１０｜＋｜１００−１１０｜＋｜８０−１１０｜＋｜８０−１１０｜｝／８  ＝２４．３７５となる。
【００６６】
同様の処理が、そのフレームのすべての画素について実行される。
【００６７】
ブロック単位で動きベクトル確度を算出するため、次式（４）で表されるブロック内の全画素のアクティビティの総和が、そのブロックのアクティビティ（ブロックアクティビティ）Blockactivity(i,j)と定義される。
【００６８】
【数４】
0004826315.tif 000005
【００６９】
なお、アクティビティとしては、この他、分散値、ダイナミックレンジなどとすることも可能である。
【００７０】
ステップＳ１４において、閾値判定部９４は、ステップＳ１３の処理で算出されたブロックアクティビティを予め設定されている所定の閾値と比較する。そして、入力されたブロックアクティビティが閾値より大きいか否かを表すフラグを統合処理部９６に出力する。
【００７１】
具体的には、実験の結果、ブロックアクティビティと評価値は、動きベクトルをパラメータとして、図１０に示される関係を有する。図１０において、横軸はブロックアクティビティBlockactivity(i,j)を表し、縦軸は評価値Evalを表している。
【００７２】
動きが正しく検出されている場合（正しい動きベクトルが与えられている場合）、そのブロックアクティビティと評価値の値は、曲線１０１より図中下側の領域Ｒ１に分布する。これに対して誤った動き（不正解の動きベクトル）が与えられた場合、そのブロックアクティビティと評価値の値は、曲線１０２より、図中左側の領域Ｒ２に分布する。なお、曲線１０２より上側の領域Ｒ２以外の領域と曲線１０１より下側の領域Ｒ１以外の領域には殆ど分布がない。曲線１０１と曲線１０２は、点Ｐにおいて交差しており、この点Ｐにおけるブロックアクティビティの値が閾値THaとされる。閾値THaは、ブロックアクティビティの値がそれより小さい場合には、対応する動きベクトルが正しくない可能性があることを意味する（この点については後に詳述する）。閾値判定部９４は、アクティビティ算出部９２より入力されたブロックアクティビティの値が、この閾値THaより大きいか否かを表すフラグを統合処理部９６に出力する。
【００７３】
ステップＳ１５において、正規化処理部９５は、ステップＳ１２の処理で算出された評価値を、ステップＳ１３の処理で算出されたアクティビティに基づいて正規化する。具体的には、正規化処理部９５は、次式（５）に従って動きベクトル確度VCを演算する。
【００７４】
【数５】
0004826315.tif 000006
【００７５】
但し、動きベクトル確度VCの値が０未満となる場合にはその値を０に置き換える。動きベクトル確度VCのうち、評価値をブロックアクティビティで割り算して得られた値は、その値によって規定される図１０のグラフ上の位置が、原点Ｏと点Ｐを結ぶ傾きが１の直線１０３より、図中下側の領域内であるのか、図中上側の領域内であるのかを表す。すなわち、直線１０３の傾きは１であり、評価値をブロックアクティビティで割り算して得られた値が１より大きければ、その値に対応する点は、直線１０３の上側の領域に分布する点であることを意味する。そしてこの値を１から減算して得られる動きベクトル確度VCは、その値が小さい程、対応する点が領域Ｒ２に分布する可能性が高いことを意味する。
【００７６】
これに対して、評価値をブロックアクティビティで割り算して得られた値が１より小さければ、その値に対応する点は、直線１０３の図中下側の領域に分布することを意味する。そして、そのときの動きベクトル確度VCは、その値が大きい程（０に近い程）、対応する点が領域Ｒ１に分布することを意味する。正規化処理部９５は、このようにして演算して得られた動きベクトル確度VCを統合処理部９６に出力する。
【００７７】
ステップＳ１６において、統合処理部９６は、統合処理を実行する。この統合処理の詳細は、図１１のフローチャートに示されている。
【００７８】
ステップＳ２１において、統合処理部９６は、ブロックアクティビティが閾値THa 以下か否かを判定する。この判定は、閾値判定部９４より供給されたフラグに基づいて行われる。統合処理部９６は、ブロックアクティビティが閾値THa以下であると判定した場合、ステップＳ２２において、正規化処理部９５が算出した動きベクトル確度VCの値を０に設定する。ステップＳ２１において、アクティビティの値が閾値THaより大きいと判定された場合には、ステップＳ２２の処理はスキップされ、正規化処理部９５で生成された動きベクトル確度VCの値が、そのまま動きベクトルとともに出力される。
【００７９】
これは、正規化処理部９５において演算された動きベクトルの確度VCの値が正であったとしても、ブロックアクティビティの値が閾値THaより小さい場合には、正しい動きベクトルが得られていない可能性があるからである。すなわち、図１０に示されるように、原点Ｏと点Ｐの間においては、曲線１０２が、曲線１０１より図中下側に（直線１３３より下側に）突出することになる。ブロックアクティビティの値が閾値Thaより小さい区間であって、曲線１０１と曲線１０２において囲まれる領域Ｒ３においては、評価値をブロックアクティビティで割り算して得られる値は、領域Ｒ１とＲ２の両方に分布し、正しい動きベクトルが得られていない可能性が高い。
【００８０】
そこで、このような分布状態である場合には、動きベクトルの確度は低いものとして処理するようにする。このため、ステップＳ２２において、動きベクトル確度VCは、その値が正であったとしても、閾値Thaより小さい場合には、０に設定される。このようにすることで、動きベクトル確度VCの値が正である場合には、正しい動きベクトルが得られている場合であることを確実に表すことが可能となる。しかも、動きベクトル確度VCの値が大きい程、正しい動きベクトルが得られている確率が高くなる（分布が領域Ｒ１に含まれる確率が高くなる）。
【００８１】
このことは、一般的に、輝度変化が少ない領域（アクティビティが小さい領域）では信頼性が高い動きベクトルを検出することが困難であるとの経験上の法則とも一致する。
【００８２】
次に、図１２を参照して、図５の背景動き推定部５４の構成例について説明する。図１２に示されるように、背景動き推定部５４は、頻度分布算出部１１１と背景動き決定部１１２により構成されている。
【００８３】
頻度分布算出部１１１は、動きベクトルの頻度分布を算出する。ただし、この頻度には、図５の動き推定部５２より供給される動きベクトル確度VC を用いることで、確からしい動きに重みが与えられるように、重み付けが行われる。背景動き決定部１１２は、頻度分布算出部１１１により算出された頻度分布に基づいて、頻度が最大となる動きを背景動きとして決定する処理を行い、図５の領域推定関連処理部５５へ出力する。
【００８４】
図１３のフローチャートを参照して、背景動き推定部５４が実行する背景動き推定処理について説明する。
【００８５】
ステップＳ３１において、頻度分布算出部１１１は、動き頻度分布を算出する。具体的には、頻度分布算出部１１１は、背景動きの候補としての動きベクトルのｘ座標とｙ座標がそれぞれ基準点から±１６画素分の範囲で表されるとすると、１０８９個（＝１６×２＋１）×（１６×２＋１））の箱、すなわち動きベクトルがとり得る値に対応する座標分の箱を用意し、動きベクトルが発生した場合、その動きベクトルに対応する座標に１を加算する。このようにすることで、動きベクトルの頻度分布を算出することができる。
【００８６】
ただし、１個の動きベクトルが発生した場合、１を加算していくと、確度が低い動きベクトルの発生頻度が多い場合、その確実性が低い動きベクトルが背景動きとして決定されてしまう恐れがある。そこで、頻度分布算出部１１１は、動きベクトルが発生した場合、その動きベクトルに対応する箱（座標）に、値１を加算するのではなく、値１に動きベクトル確度VC を乗算した値（＝動きベクトル確度VC の値）を加算する。動きベクトル確度VC の値は、０から１の間の値として正規化されており、その値が１に近いほど確度が高い値である。従って、このようにして得られた頻度分布は、動きベクトルをその確度に基づいて重み付けした頻度分布となる。これにより、確度の低い動きが背景動きとして決定される恐れが少なくなる。
【００８７】
次に、ステップＳ３２において、頻度分布算出部１１１は、動き頻度分布を算出する処理を全ブロックについて終了したか否かを判定する。まだ処理していないブロックが存在すると判定された場合、ステップＳ３１に戻り、次のブロックについて動き頻度分布が算出される。
【００８８】
以上のようにして、全画面に対して動き頻度分布算出処理が行われ、ステップＳ３２において、全ブロックの処理が終了したと判定された場合、ステップＳ３３に進み、背景動き決定部１１２は、頻度分布の最大値を検索する処理を実行する。すなわち、背景動き決定部１１２は、頻度分布算出部１１１により算出された頻度の中から最大の頻度のものを選択し、その頻度に対応する動きベクトルを背景動きの動きベクトルとして決定する。この背景動きの動きベクトルは、図５の領域推定関連処理部５５に供給され、全画面動きと背景動きが一致するか否かの判定処理に用いられる。
【００８９】
次に、図１４を参照して、図５の追尾点決定部５７の構成例について説明する。図１４に示されるように、追尾点決定部５７は、予測動きベクトルメモリ１２１、動き履歴特徴量抽出部１２２、および動き判定部１２３により構成されている。
【００９０】
予測動きベクトルメモリ１２１は、動き判定部１２３により最終的に決定されたオブジェクトの予測動きベクトルの、最新の過去の複数フレームのデータを格納する。動き履歴特徴量抽出部１２２は、予測動きベクトルメモリ１２１に格納されている最新の過去の複数フレームの予測動きベクトルデータを読み出し、オブジェクトの動き特徴量を抽出する。動き判定部１２３は、動き推定部５２より供給された現フレームの動きベクトル、乗り換え候補保持部５６より供給された乗り換え候補、一時停止検出部６０より供給された一時停止検出結果、並びに動き履歴特徴量抽出部１２２より供給された動き特徴量に基づいて、現フレームの動きベクトルデータを評価し、その評価結果としての予測動きベクトルを領域推定関連処理部５５に出力するとともに、予測動きベクトルメモリ１２１に格納させる。
【００９１】
さらに図１５を参照して、図１４の追尾点決定部５７の動き履歴特徴量抽出部１２２と動き判定部１２の詳細について説明する。図１５に示されるように、動き履歴特徴量抽出部１２２は、水平成分最小値算出部（MIN）１３１、水平成分最大値算出部（MAX）１３２、垂直成分最小値算出部（MIN）１３３、および垂直成分最大値算出部（MAX）１３４で構成されている。
【００９２】
水平成分最小値算出部１３１は、予測動きベクトルメモリ１２１から読み出した最新の過去の複数フレームの予測動きベクトルデータから、過去の予測動きベクトルの水平成分の最小値を算出し、算出結果を動き判定部１２３に出力する。水平成分最大値算出部１３２は、予測動きベクトルメモリ１２１から読み出した最新の過去の複数フレームの予測動きベクトルデータから、過去の予測動きベクトルの水平成分の最大値を算出し、算出結果を動き判定部１２３に出力する。
【００９３】
垂直成分最小値算出部１３３は、予測動きベクトルメモリ１２１から読み出した最新の過去の複数フレームの予測動きベクトルデータから、過去の予測動きベクトルの垂直成分の最小値を算出し、算出結果を動き判定部１２３に出力する。垂直成分最大値算出部１３４は、予測動きベクトルメモリ１２１から読み出した最新の過去の複数フレームの予測動きベクトルデータから、過去の予測動きベクトルの垂直成分の最大値を算出し、算出結果を動き判定部１２３に出力する。
【００９４】
また動き履歴特徴量抽出部１２２は、水平成分最小値算出部１３１と水平成分最大値算出部１３２により算出された動きベクトルの水平成分の最小値と最大値から、動きベクトルの水平成分のダイナミックレンジを算出するとともに、垂直成分最小値算出部１３３と垂直成分最大値算出部１３４により算出された動きベクトルの垂直成分の最小値と最大値から、動きベクトルの垂直成分のダイナミックレンジを算出し、算出結果を動き判定部１２３に出力する。
【００９５】
動き判定部１２３は、動き履歴特徴量抽出１２２から供給された過去の予測動きベクトルの最大値ＭＡＸ（ｘ，ｙ）と最小値ＭＩＮ（ｘ，ｙ）、およびそれらの最大値と最小値の差分から求まるダイナミックレンジＤＲ（ｘ，ｙ）から、現在のフレームの予測動きベクトルの範囲ｍｉｎ（ｘ，ｙ）とｍａｘ（ｘ，ｙ）を、次式（６）と次式（７）に従って演算する。
【００９６】
【数６】
0004826315.tif 000007
【００９７】
【数７】
0004826315.tif 000008
【００９８】
式（６）と式（７）において、ＴＨ（ｘ，ｙ）は閾値である。この閾値は、オブジェクトが過去のフレーム間で等速直線運動をした場合、ダイナミックレンジＤＲ（ｘ，ｙ）＝（０，０）になり、現在のフレームでの予測動きベクトルの範囲がｍａｘ（ｘ，ｙ）−ｍｉｎ（ｘ，ｙ）＝（０，０）となるのを防ぐために設定される。例えば、オブジェクトがテロップのような等速直線運動を行っている場合、式（６）と式（７）によれば、予測動きベクトルの範囲が小さくなるように設定され、これに対し、オブジェクトがフレーム単位で加速するような場合には、予測動きベクトルの範囲が大きくなるように設定される。
【００９９】
そして動き判定部１２３は、式（６）と式（７）により演算された予測動きベクトルの範囲に基づいて、現在のフレームで推定した追尾点の動きベクトルがその範囲内であれば予測動きベクトルの推定が可能であると判定し、範囲外であれば予測動きベクトルの推定が不可能であると判定する。
【０１００】
また動き判定部１２３は、追尾点での動き推定結果と追尾点の近傍の点での動き推定結果が、多数を占める動きと一致する場合には推定可能、一致しない場合には推定不可能と判定するようにすることも可能である。これにより、空間相関の高い動きベクトルで、かつ、時間方向の連続性が高い予測動きベクトルを決定することができる。
【０１０１】
また動き判定部１２３は、動きベクトルの推定が出来ないと判定した場合、予め準備した追尾点と同じ対象の領域に属する点のうち、もとの追尾点に近く、且つ動きベクトルの推定が可能である点に追尾点を乗り換えて追尾を行う。この乗り換え処理の詳細は、本出願人が先に提案している特開２００５−３０３９８３号公報に開示されている。この処理により、追尾点が表示されない状態になった場合、追尾が可能な状態において予め抽出され保持されている乗り換え候補が選択され、その乗り換え候補が新たな追尾点として設定され、追尾が行われる。
【０１０２】
さらに動き判定部１２３は、全ての乗り換え候補を新たな追尾点としても、追尾点の動きベクトルの推定が不可能であると判定した場合、オブジェクトの動きや加速度は既知の値である直前（過去）の動きや加速度と同じであるとして、予測動きベクトルメモリ１２１に格納されている過去の予測動きベクトルで外挿（代用）して、現在のフレームの追尾点の予測動きベクトルを決定する。
【０１０３】
ここで、他のオブジェクトによる交差中に追尾対象として指定したオブジェクトの動きが停止するなど、過去の動き履歴から大きく異なる動きをした場合に過去の予測動きベクトルで連続的に外挿を行うと、最悪の場合、追尾点が画像内の動き情報とは無関係に動くことになる。そこで、動き判定部１２３は、予測動きベクトルを連続的に外挿する回数を計測し、予め設定した閾値との比較により、過去の予測動きベクトルで外挿するか否かを判定し、外挿しないと判定した場合には０ベクトルを設定して外挿を終了する。つまり、この場合、追尾は終了される。
【０１０４】
次に、図１６のフローチャートを参照して、オブジェクト追尾部２３が実行する追尾処理について説明する。
【０１０５】
ステップＳ４１において、制御部５９は、次のフレームの画像の入力を待機するように各部を制御する。ステップＳ４２において、動き推定部５２は、追尾点の動きを推定する。すなわち、ユーザにより指定された追尾点を含むフレーム（ここでは前フレームという）より時間的に後のフレーム（ここでは後フレームという）をステップＳ４１の処理で取り込むことで、結局連続する２フレームの画像が得られたことになるので、ステップＳ４２において、前フレームの追尾点に対応する後フレームの追尾点の位置を推定することで、追尾点の動きベクトルが推定される。
【０１０６】
なお、時間的に前または後とは、入力の順番や処理の順番をいう。通常、撮像の順番に各フレームの画像が入力されるので、その場合、より時間的に前に撮像されたフレームが前フレームとなるが、時間的に後に撮像されたフレームが先に処理される場合には、時間的に後に撮像されたフレームが前フレームとなる。
【０１０７】
ステップＳ４３において、動き履歴特徴量抽出部１２２は、予測動きベクトルメモリ１２１に格納されている過去の複数フレームにわたる予測動きベクトルの履歴データを読み出す。読み出された履歴データから、水平成分最小値算出部１３１により過去の予測動きベクトルの水平成分の最小値が算出され、水平成分最大値算出部１３２により過去の予測動きベクトルの水平成分の最大値が算出され、垂直成分最小値算出部１３３により過去の予測動きベクトルの垂直成分の最小値が算出され、垂直成分最大値算出部１３４により過去の予測動きベクトルの垂直成分の最大値が算出される。
【０１０８】
ステップＳ４４において、動き履歴特徴量抽出部１２２は、ステップＳ４３の処理で読み出され算出された動きベクトルの水平成分の最小値と最大値から、動きベクトルの水平成分のダイナミックレンジを算出するとともに、動きベクトルの垂直成分の最小値と最大値から、動きベクトルの垂直成分のダイナミックレンジを算出する。
【０１０９】
ステップＳ４５において、動き判定部１２３は、一時停止検出部６０が出力する一時停止検出結果（後述）に基づいて、過去の予測動きベクトルの最大値と最小値、およびそれらの最大値と最小値から求まるダイナミックレンジから、式（６）と式（７）に従って、現フレームの予測動きベクトル範囲を推定する。
【０１１０】
この処理において、動画像が一時停止されてから追尾点が設定される場合、追尾点が設定されてから追尾開始までの間、オブジェクト追尾部２３に同じフレームの画像が入力され続けることになる。この場合、ダイナミックレンジＤＲ（ｘ，ｙ）＝（０，０）となり、追尾開始時における追尾点の予測動きベクトルの範囲が小さくなるので、早い動きのオブジェクトを追尾することができなくなる。そこで、一時停止検出部６０が出力する一時停止検出結果に基づいて、一時停止からの追尾開始時の場合にのみ例外的に予測動きベクトルの範囲を、動き推定部５２のサーチエリアと同じ値、あるいは非常に大きな値などに設定しておく。
【０１１１】
ステップＳ４６において、動き判定部１２３は、追尾点の動きが推定可能であるか否かを判定する。追尾点の動きが推定可能であったか否かは、ステップＳ４２の処理により推定された追尾点の動きベクトルが、ステップＳ４５の処理により推定された予測動きベクトルの範囲内であるか否かが判定され、予測動きベクトルの範囲内であれば推定が可能であり、範囲外であれば推定が不可能であると判定される。
【０１１２】
ステップＳ４６において、追尾点の動きが推定可能であると判定された場合、ステップＳ４７に進み、動き判定部１２３は、連続外挿カウンタを初期化する。ステップＳ４８において、動き判定部１２３は、ステップＳ４２の処理で推定された動きベクトルの分だけ追尾点をシフトする。これにより、前フレームの追尾点の追尾後の後フレームにおける追尾の位置が決定されることになる。
【０１１３】
これに対し、ステップＳ４６において、追尾点の動きが推定不可能であると判定された場合、ステップＳ４９に進み、動き判定部１２３は、乗り換え候補保持部５６に乗り換え候補が保持されているか否かを判定し、乗り換え候補が保持されていると判定した場合、ステップＳ５０に進む。ステップＳ５０において、動き判定部１２３は、乗り換え候補保持部５６に保持されている乗り換え候補の中から、もとの追尾点に最も近い乗り換え候補を選択し、選択した乗り換え候補に乗り換える（変更する）。これにより、乗り換え候補の点が新たな追尾点として設定される。
【０１１４】
ステップＳ５０の処理の後、処理はステップＳ４６に戻り、新たに設定された追尾点の動きが推定可能であるか否かが再び判定され、推定可能であれば、ステップＳ４７において連続外挿カウンタが初期化され、ステップＳ４８において追尾点を推定動き分だけシフトする処理が行われる。
【０１１５】
ステップＳ４９において、乗り換え候補保持部５６に乗り換え候補が保持されていないと判定された場合、ステップＳ５１に進み、動き判定部１２３は、連続外挿カウンタが閾値以下であるか否かを判定する。すなわち、ここでの処理は、他のオブジェクトによる交差中に追尾対象として指定したオブジェクトの動きが停止するなどして過去の動き履歴から大きく異なる動きをした場合に、過去の予測動きベクトルで連続的に外挿を行うと、最悪の場合、追尾点が画像内の動き情報とは無関係に動くことになる。そこで、動き判定部１２３は、予測動きベクトルを連続的に外挿する回数をカウントし、予め設定した閾値との比較を行う。
【０１１６】
ステップＳ５１において、連続外挿カウンタが閾値以下であると判定された場合、ステップＳ５２に進み、動き判定部１２３は、連続外挿カウンタをカウントアップし、ステップＳ５３において、予測動きベクトルメモリ１２１に格納されている直前の過去の予測動きベクトルを読み出して外挿する。これにより、現フレームの追尾点の位置が決定される。
【０１１７】
ステップＳ５１において、連続外挿カウンタが閾値以下ではないと判定された場合、ステップＳ５４に進み、動き判定部１２３は、連続外挿カウンタを初期化する。ステップＳ５５において、動き判定部１２３は、予測動きベクトルを０ベクトルで出力する。すなわち、上述したように、過去の予測動きベクトルで連続的に外挿が行われると追尾点が画像内の動き情報とは無関係に動くことになるため、連続外挿カウンタが閾値を超えた場合には、予測動きベクトルが０ベクトルに設定され、追尾が終了される。
【０１１８】
ステップＳ４８、ステップＳ５３、またはステップＳ５５の処理の後、処理はステップＳ５６に進み、動き判定部１２３は、最終的に決定した予測動きベクトルに基づいて、予測動きベクトルメモリ１２１を更新する。これにより、予測動きベクトル１２１に、いま決定された予測動きベクトルが新たな履歴データとして格納される。
【０１１９】
ステップＳ５６の予測動きベクトルメモリ１２１の更新処理が終了した後、処理は再びステップＳ４１に戻り、それ以降の処理が繰り返し実行される。
【０１２０】
このように、過去の複数フレームにわたるオブジェクトの予測動きベクトルの履歴情報から算出される特徴量を用いて、現在の追尾点の予測動きベクトルの推定可否判定と、過去の予測動きベクトルの外挿を組み合わせることにより、高精度な予測動きベクトルを求めることが可能になる。また、他のオブジェクトとの交差により複数フレーム間、追尾点が消失するような場合、相関値演算では確からしい動きベクトルであっても、現在の追尾点の予測動きベクトルの推定可否判定により、不確かな動きベクトルを排除することが可能となり、高精度な追尾が可能となる。
【０１２１】
次に、図１７のフローチャートを参照して、一時停止検出部６０が実行する一時停止検出処理について説明する。この処理は、一時停止状態であることを検出するためのカウンタが０に設定され開始される。
【０１２２】
一時停止検出部６０は、動き推定部５２から追尾点の動きベクトルを取得するとともに、背景動き推定部５４から背景の動きベクトルを取得する。
【０１２３】
ステップＳ６１において、一時停止検出部６０は、カウンタが閾値以上、且つ、背景と追尾対象としてのオブジェクト上の追尾点のどちらか一方の動きベクトルが０ベクトルではないか否かを判定し、カウンタが閾値以上、且つ、背景と追尾対象としてのオブジェクト上の追尾点のどちらか一方の動きベクトルが０ベクトルではないと判定した場合、ステップＳ６２に進む。
【０１２４】
ステップＳ６２において、一時停止検出部６０は、一時停止を検出するためのカウンタを初期化し、ステップＳ６３において、一時停止からの追尾開始と判断する。すなわち、カウンタが閾値以上であるということは、一時停止状態であることを意味し、背景と追尾点のどちらか一方の動きベクトルが０ベクトルではないということは、現フレームで動きが再開されたことを意味しているため、一時停止からの追尾開始と判断される。
【０１２５】
ステップＳ６１において、カウンタが閾値以上ではない、背景と追尾点のどちらか一方の動きベクトルが０ベクトルである、あるいは、背景と追尾点の両方の動きベクトルが０ベクトルであると判定された場合、ステップＳ６４に進み、一時停止検出部６０は、一時停止からの追尾開始ではないと判断する。
【０１２６】
ステップＳ６５において、一時停止検出部６０は、背景動きと追尾点の動きが共に０ベクトルであるか否かを判定し、背景動きと追尾点の動きが共に０ベクトルであると判定した場合、ステップＳ６６に進み、一時停止状態を検出するためのカウンタをインクリメントする。この処理により、一時停止状態の検出が開始される。
【０１２７】
ステップＳ６５において、背景動きと追尾点の動きが共に０ベクトルではない、すなわち、背景と追尾点のどちらか一方の動きベクトルが０ベクトルではないと判定された場合、ステップＳ６７に進み、一時停止状態を検出するためのカウンタを初期化する。
【０１２８】
ステップＳ６３、ステップＳ６６、またはステップＳ６７の処理の後、一時停止検出部６０は、カウンタの値を検出結果として追尾点決定部５７の動き判定部１２３に出力する。この検出結果が図１６のステップＳ４５の処理で用いられる。
【０１２９】
ステップＳ６８の処理の後、ステップＳ６１に戻り、上述した処理が繰り返される。
【０１３０】
このように、追尾点の動きベクトルと背景の動きベクトルから、一時停止からの追尾開始か否かが推定される。つまり、統計的に確からしい背景動きベクトルとオブジェクトの局所的な追尾点の動きベクトルの両方を用いて一時停止であるか否かを判定したので、精度の高い推定結果が得られる。なお、動き判定部１２３は、制御部５９などより、一時停止からの追尾開始か否かを示す情報を取得することが可能であれば、その情報を用いる方が好ましい。
【０１３１】
次に、図１８を参照して、本実施の形態の追尾処理を実行することにより、追尾点が一時的に見えなくなった場合においても継続的に追尾が可能となる例について説明する。
【０１３２】
図１８の例では、異なる向きで動くオブジェクト７１とオブジェクト７２が時刻Ｆ（ｔ＋１）で交差しており、オブジェクト７１とオブジェクト７２が交差する直前の時刻Ｆ（ｔ−１）まで予測動きベクトルが正しく求まっているとする。また予測動きベクトルメモリ１２１には、図１９Ａに示されるように、時刻（ｔ−４）、時刻（ｔ−３）、時刻（ｔ−２）、および時刻（ｔ−１）の予測動きベクトル（−２，０）、（−２，０）、（−４，０）、（−４，０）が格納されている。
【０１３３】
時刻Ｆ（ｔ−１）において、時刻Ｆ（ｔ−１）と時刻Ｆ（ｔ）の間のマッチングの結果、オブジェクト７１の動きベクトルＶA（ｖｘ，ｖｙ）＝（−４，０）が検出されるとともに、オブジェクト７２の動きベクトルＶB（ｖｘ，ｖｙ）＝（３，０）が検出される。
【０１３４】
時刻Ｆ（ｔ）において、時刻Ｆ（ｔ）と時刻Ｆ（ｔ＋１）の間のマッチングの結果、誤った動きベクトル（−４，−４）が検出されてしまう。そこで、動き履歴特徴量抽出部１２２は、予測動きベクトルメモリ１２１から図１９Ａに示すような予測動きベクトルを読み出し、動き履歴特徴量として、最大値ＭＡＸ（ｘ，ｙ）＝（−２，０）、最小値ＭＩＮ（ｘ，ｙ）＝（−４，０）、ダイナミックレンジＤＲ（ｘ，ｙ）＝（２，０）を算出する。例えば、閾値がＴＨ（ｘ，ｙ）＝（２，１）に設定された場合、動き判定部１２３は、現フレームの予測動きベクトルの範囲を、式（６）、式（７）に従って、ｍａｘ（ｘ，ｙ）＝（２，１）、ｍｉｎ（ｘ，ｙ）＝（−４，−１）と推定する。これにより、時刻Ｆ（ｔ）と時刻Ｆ（ｔ＋１）の間のマッチングにより推定した追尾点８１の誤った動きベクトル（−４，−４）は、予測動きベクトルの範囲外となり、不確かな動きベクトルとして棄却することができる。この時、動き判定部１２３は、追尾点８１の予測動きベクトルは、直前の過去の時刻Ｆ（ｔ−１）の予測動きベクトル（−４，０）で外挿する。
【０１３５】
この外挿の結果、時刻Ｆ（ｔ＋１）における追尾点８１の位置は、時刻Ｆ（ｔ）の位置から予測動きベクトル（−４，０）だけシフトした位置となる。また予測動きベクトルメモリ１２１には、図１９Ｂに示されるように、時刻Ｆ（ｔ）の動きベクトル（−４，０）が新たに格納される。
【０１３６】
ここで時刻Ｆ（ｔ＋１）において、オブジェクト７１とオブジェクト７２の交差により、オブジェクト７１の前景となったオブジェクト７２に追尾点８１が存在するので、時刻Ｆ（ｔ＋１）と時刻Ｆ（ｔ＋２）の間のマッチングの結果、オブジェクト７２の動きベクトルＶB（ｖｘ，ｖｙ）＝（３，０）が追尾点８１の動きベクトルとして検出されてしまう。そこで、動き履歴特徴量抽出部１２２は、予測動きベクトルメモリ１２１から図１９Ｂに示すような予測動きベクトルを読み出し、動き履歴特徴量として、最大値ＭＡＸ（ｘ，ｙ）＝（−２，０）、最小値ＭＩＮ（ｘ，ｙ）＝（−４，０）、ダイナミックレンジＤＲ（ｘ，ｙ）＝（２，０）を算出する。例えば、閾値がＴＨ（ｘ，ｙ）＝（２，１）に設定された場合、動き判定部１２３は、現フレームの予測動きベクトルの範囲を、式（６）、式（７）に従って、ｍａｘ（ｘ，ｙ）＝（２，１）、ｍｉｎ（ｘ，ｙ）＝（−４，−１）と推定する。これにより、時刻Ｆ（ｔ＋１）と時刻Ｆ（ｔ＋２）の間のマッチングにより推定した追尾点８１の誤った動きベクトル（３，０）は、予測動きベクトルの範囲外となり、不確かな動きベクトルとして棄却することができる。この時、動き判定部１２３は、追尾点８１の予測動きベクトルは、直前の過去の時刻Ｆ（ｔ）の予測動きベクトル（−４，０）で外挿する。
【０１３７】
この外挿の結果、時刻Ｆ（ｔ＋２）における追尾点８１の位置は、時刻Ｆ（ｔ＋１）の位置から予測動きベクトル（−４，０）だけシフトした位置となり、オブジェクト７１上に存在することになる。
【０１３８】
以上のように、現在の追尾点の予測動きベクトルの推定可否判定において、追尾点の過去の動き履歴情報から現在の追尾点の動き範囲を推定し、既知の値である直前の動きで現在の動きを外挿するようにしたので、他のオブジェクトによる交差により、複数フレーム間、追尾点８１が消失するような場合であっても、空間相関の高い動きベクトルで、かつ、時間方向の連続性が高い予測動きベクトルを決定することができ、精度の高い追尾が可能となる。
【０１３９】
また、動き可否判定を画素毎の動き検出に応用することで、より精度の高い動きを検出することが可能になる。
【０１４０】
以上においては、画像のフレームを処理単位とし、すべてのフレームを用いることを前提としたが、フィールド単位で処理したり、すべてのフレームまたはフィールドを利用するのではなく、所定の間隔で間引いて抽出されたフレームまたはフィールドを用いるようにすることも可能である。
【０１４１】
また以上においては、監視カメラシステムに適用した場合の例について説明したが、これに限らず、例えば、テレビジョン受像機など各種の画像処理装置に適応することが可能である。
【０１４２】
さらに以上においては、画像の処理単位をフレームとしたが、フィールドを処理単位とすることももちろん可能である。
【０１４３】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０１４４】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図２に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)，DVD(Digital Versatile Disc)を含む）、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア２８、または、プログラムが一時的もしくは永続的に格納されるハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０１４５】
なお、本明細書において、プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１４６】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１４７】
【図１】他のオブジェクトとの交差により追尾に失敗する例を説明する図である。
【図２】本発明を適用した監視カメラシステムの構成例を示すブロック図である。
【図３】監視処理を説明するフローチャートである。
【図４】図１の監視カメラシステムにより表示される画像の例を示す図である。
【図５】図１のオブジェクト追尾部の構成例を示すブロック図である。
【図６】シーンチェンジが起きる場合の追尾を説明する図である。
【図７】動き推定部の構成例を説明するブロック図である。
【図８】動き推定処理を説明するフローチャートである。
【図９】アクティビティの算出を説明する図である。
【図１０】評価値とアクティビティの関係を説明する図である。
【図１１】統合処理を説明するフローチャートである。
【図１２】背景動き推定部の構成例を示すブロック図である。
【図１３】背景動き推定処理を説明するフローチャートである。
【図１４】追尾点決定部の構成例を示すブロック図である。
【図１５】追尾点決定部のさらに詳細を説明するブロック図である。
【図１６】追尾処理を説明するフローチャートである。
【図１７】一時停止検出処理を説明するフローチャートである。
【図１８】本実施の形態の追尾を説明する図である。
【図１９】予想動きベクトルメモリに格納される動きベクトルの例を示す図である。
【符号の説明】
【０１４８】
１  監視カメラシステム，  ２１  撮像部，  ２２  追尾対象検出部，  ２３  オブジェクト追尾部，  ５２  動き推定部，  ５３  シーンチェンジ検出部，  ５４  背景動き推定部，  ５５  領域推定関連処理部，  ５６  乗り換え候補保持部，  ５７  追尾点決定部，  ６０  一時停止検出部，  １２１  予測動きベクトルメモリ，  １２２  動き履歴特徴量抽出部，  １２３  動き判定部
【図１】
0004826315.tif 000009
【図２】
0004826315.tif 000010
【図３】
0004826315.tif 000011
【図４】
0004826315.tif 000012
【図５】
0004826315.tif 000013
【図６】
0004826315.tif 000014
【図７】
0004826315.tif 000015
【図８】
0004826315.tif 000016
【図９】
0004826315.tif 000017
【図１０】
0004826315.tif 000018
【図１１】
0004826315.tif 000019
【図１２】
0004826315.tif 000020
【図１３】
0004826315.tif 000021
【図１４】
0004826315.tif 000022
【図１５】
0004826315.tif 000023
【図１６】
0004826315.tif 000024
【図１７】
0004826315.tif 000025
【図１８】
0004826315.tif 000026
【図１９】
0004826315.tif 000027