(57)【要約】【課題】追尾対象となるオブジェクトを容易に指定することができるようにするとともに、指定されたオブジェクトの追尾位置を推定することができるようにする。【解決手段】検出対象領域生成部１７２は、撮像された画像中の現在の追尾点またはカーソル位置に対する領域指定用のオフセット量を取得し、そのオフセット量に基づいて、ユーザ指定方向の所定の大きさの検出対象領域を生成する。特徴量算出部１７３は、検出対象領域内で所定の画素間隔の画素をサンプル点とし、そのサンプル点の特徴量を算出する。領域推定部１７４は、検出対象領域内における各サンプル点の特徴量のうち、所定の条件を満たす画素を抽出し、その画素群で構成される領域を生成し、生成した領域の重心位置を算出する。この算出された重心位置がユーザが意図する追尾点として推定される。本発明は、監視カメラシステムに適用できる。【選択図】図２７
2007272731.tif 000002
【特許請求の範囲】
【請求項１】
移動するオブジェクトを追尾する画像処理装置において、
画像の中の前記オブジェクト上の現在の追尾点またはカーソル位置に対し、ユーザが指定する方向に基づいて、検出対象領域を生成する生成手段と、
前記生成手段により生成された前記検出対象領域内に含まれる画素の特徴量を算出する算出手段と、
前記算出手段により算出された前記特徴量に基づいて、所定の画素を抽出する抽出手段と、
前記抽出手段により抽出された前記所定の画素で構成される領域の重心位置を前記ユーザが意図する追尾点と推定する推定手段と
を備える画像処理装置。
【請求項２】
前記推定手段により推定された前記追尾点を前記オブジェクトの重心位置になるように微調整する微調整手段をさらに備える
請求項１に記載の画像処理装置。
【請求項３】
前記生成手段は、前記ユーザが指定するオフセット量に応じた検出対象領域を生成する
請求項１に記載の画像処理装置。
【請求項４】
前記生成手段は、前記オブジェクト上の現在の追尾点またはカーソル位置を中心とした検出対象領域を生成する
請求項１に記載の画像処理装置。
【請求項５】
前記抽出手段により前記所定の画素を抽出することができなかった場合、前記生成手段は、前記検出対象領域を拡大した新たな検出対象領域を生成する
請求項１に記載の画像処理装置。
【請求項６】
前記抽出手段は、前記現在の追尾点またはカーソル位置の特徴量と異なる特徴量を有する画素を抽出する
請求項１に記載の画像処理装置。
【請求項７】
前記抽出手段は、背景の特徴量と異なる特徴量を有する画素を抽出する
請求項１に記載の画像処理装置。
【請求項８】
前記抽出手段は、前記ユーザにより指定された特徴量を有する画素を抽出する
請求項１に記載の画像処理装置。
【請求項９】
前記抽出手段は、算出された前記特徴量の頻度から、前記ユーザにより指定された順位の頻度の特徴量を有する画素を抽出する
請求項１に記載の画像処理装置。
【請求項１０】
前記抽出手段は、前記現在の追尾点またはカーソル位置の特徴量と異なる特徴量の頻度から、前記ユーザにより指定された順位の頻度の特徴量を有する画素を抽出する
請求項１に記載の画像処理装置。
【請求項１１】
前記推定手段は、抽出された前記所定の画素のうち、所定の閾値以上の信頼度がある特徴量を有する画素で構成される領域の重心位置を、前記ユーザが意図する追尾点と推定する
請求項１に記載の画像処理装置。
【請求項１２】
前記特徴量は、動きベクトル、色、または輝度である
請求項１に記載の画像処理装置。
【請求項１３】
移動するオブジェクトを追尾する画像処理装置の画像処理方法において、
画像の中の前記オブジェクト上の現在の追尾点またはカーソル位置に対し、ユーザが指定する方向に基づいて、検出対象領域を生成し、
生成された前記検出対象領域内に含まれる画素の特徴量を算出し、
算出された前記特徴量に基づいて、所定の画素を抽出し、
抽出された前記所定の画素で構成される領域の重心位置を前記ユーザが意図する追尾点と推定する
ステップを含む画像処理方法。
【請求項１４】
移動するオブジェクトを追尾する画像処理装置の画像処理をコンピュータに実行させるプログラムにおいて、
画像の中の前記オブジェクト上の現在の追尾点またはカーソル位置に対し、ユーザが指定する方向に基づいて、検出対象領域を生成し、
生成された前記検出対象領域内に含まれる画素の特徴量を算出し、
算出された前記特徴量に基づいて、所定の画素を抽出し、
抽出された前記所定の画素で構成される領域の重心位置を前記ユーザが意図する追尾点と推定する
ステップを含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および方法、並びにプログラムに関し、特に、追尾対象となるオブジェクトを容易に指定することができるようにするとともに、指定されたオブジェクトの追尾位置を推定することができるようにした画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、画像から動きベクトルを求めて抽出したオブジェクト、または、指定したオブジェクトを追尾する方法が、例えば、特許文献１乃至特許文献５などに多く提案されている。      
【０００３】
また画像中のオブジェクトを抽出する方法としては、例えば、特許文献６や特許文献７に提案されているように、隣接フレーム間の差分をとり、差分の絶対値が大きい部分を動きのあるオブジェクトとして抽出したり、同一フレームにおいて同じような色の部分をオブジェクトとして抽出する方法、あるいは、周辺を複数点指定してオブジェクトを抽出する方法等がある。
【特許文献１】特開２００５−１６５７９１号公報
【特許文献２】特開２００５−１６５９２９号公報
【特許文献３】特開２００４−４６６４７号公報
【特許文献４】特開２０００−１０５８３５号公報
【特許文献５】特開平６−８９３４２号公報
【特許文献６】特開２００２−７４３７５号公報
【特許文献７】特開２００２−３５２２４８公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、隣接フレーム間の差分をとる方法では、動きのないオブジェクトや画像全体が動いているような場合にはオブジェクトを抽出することが困難である。また、同一フレームにおいて同じような色の部分をオブジェクトとして抽出する方法では、異なる複数の色を有しているオブジェクト等をまとまりとして抽出することは困難である。さらに、周辺を複数点指定してオブジェクトを抽出する方法では、対象オブジェクトが動いている場合に抽出することが困難となる。
【０００５】
以上のように、追尾対象を指定する際や対象オブジェクトが動いている場合には、追尾点を指定することが難しかった。また蓄積した画像であれば、一時停止してから追尾点を指定することもできるが、動きベクトルの誤検出により追尾が外れてしまった場合にその都度一時停止して追尾点の修正を行うのは手間がかかる。さらにリアルタイム画像における追尾では、追尾点の指定や修正の難しさが、画像内のオブジェクト追尾というアプリケーションの価値を損なう恐れがあった。
【０００６】
本発明はこのような状況に鑑みてなされたものであり、追尾対象となるオブジェクトを容易に指定することができるようにするとともに、指定されたオブジェクトの追尾位置を推定することができるようにするものである。
【課題を解決するための手段】
【０００７】
本発明の一側面の画像処理装置は、移動するオブジェクトを追尾する画像処理装置において、画像の中の前記オブジェクト上の現在の追尾点またはカーソル位置に対し、ユーザが指定する方向に基づいて、検出対象領域を生成する生成手段と、前記生成手段により生成された前記検出対象領域内に含まれる画素の特徴量を算出する算出手段と、前記算出手段により算出された前記特徴量に基づいて、所定の画素を抽出する抽出手段と、前記抽出手段により抽出された前記所定の画素で構成される領域の重心位置を前記ユーザが意図する追尾点と推定する推定手段とを備える。
【０００８】
前記推定手段により推定された前記追尾点を前記オブジェクトの重心位置になるように微調整する微調整手段をさらに設けるようにすることができる。
【０００９】
前記生成手段には、前記ユーザが指定するオフセット量に応じた検出対象領域を生成させることができる。
【００１０】
前記生成手段には、前記オブジェクト上の現在の追尾点またはカーソル位置を中心とした検出対象領域を生成させることができる。
【００１１】
前記抽出手段により前記所定の画素を抽出することができなかった場合、前記生成手段には、前記検出対象領域を拡大した新たな検出対象領域を生成させることができる。
【００１２】
前記抽出手段には、前記現在の追尾点またはカーソル位置の特徴量と異なる特徴量を有する画素を抽出させることができる。
【００１３】
前記抽出手段には、背景の特徴量と異なる特徴量を有する画素を抽出させることができる。
【００１４】
前記抽出手段には、前記ユーザにより指定された特徴量を有する画素を抽出させることができる。
【００１５】
前記抽出手段には、算出された前記特徴量の頻度から、前記ユーザにより指定された順位の頻度の特徴量を有する画素を抽出させることができる。
【００１６】
前記抽出手段には、前記現在の追尾点またはカーソル位置の特徴量と異なる特徴量の頻度から、前記ユーザにより指定された順位の頻度の特徴量を有する画素を抽出させることができる。
【００１７】
前記推定手段には、抽出された前記所定の画素のうち、所定の閾値以上の信頼度がある特徴量を有する画素で構成される領域の重心位置を、前記ユーザが意図する追尾点と推定させることができる。
【００１８】
前記特徴量は、動きベクトル、色、または輝度であるものとすることができる。
【００１９】
本発明の一側面の画像処理方法は、移動するオブジェクトを追尾する画像処理装置の画像処理方法において、画像の中の前記オブジェクト上の現在の追尾点またはカーソル位置に対し、ユーザが指定する方向に基づいて、検出対象領域を生成し、生成された前記検出対象領域内に含まれる画素の特徴量を算出し、算出された前記特徴量に基づいて、所定の画素を抽出し、抽出された前記所定の画素で構成される領域の重心位置を前記ユーザが意図する追尾点と推定するステップを含む。
【００２０】
本発明の一側面のプログラムは、移動するオブジェクトを追尾する画像処理装置の画像処理をコンピュータに実行させるプログラムにおいて、画像の中の前記オブジェクト上の現在の追尾点またはカーソル位置に対し、ユーザが指定する方向に基づいて、検出対象領域を生成し、生成された前記検出対象領域内に含まれる画素の特徴量を算出し、算出された前記特徴量に基づいて、所定の画素を抽出し、抽出された前記所定の画素で構成される領域の重心位置を前記ユーザが意図する追尾点と推定するステップを含む。
【００２１】
本発明の一側面においては、オブジェクト上の現在の追尾点またはカーソル位置に対し、ユーザが指定する方向に基づいて検出対象領域が生成され、生成された検出対象領域内に含まれる画素の特徴量が算出され、算出された特徴量に基づいて所定の画素が抽出され、抽出された所定の画素で構成される領域の重心位置がユーザが意図する追尾点と推定される。
【発明の効果】
【００２２】
本発明によれば、追尾対象となるオブジェクトを容易に指定することができるようにするとともに、指定されたオブジェクトの追尾位置を推定することができる。
【発明を実施するための最良の形態】
【００２３】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外には対応しないものであることを意味するものでもない。
【００２４】
本発明の一側面の画像処理装置（例えば、図１の監視カメラシステム１）は、移動するオブジェクトを追尾する画像処理装置において、画像の中の前記オブジェクト上の現在の追尾点またはカーソル位置に対し、ユーザが指定する方向に基づいて、検出対象領域を生成する生成手段（例えば、図２７の検出対象領域生成部１７２）と、前記生成手段により生成された前記検出対象領域内に含まれる画素の特徴量を算出する算出手段（例えば、図２７の特徴量算出部１７３）と、前記算出手段により算出された前記特徴量に基づいて、所定の画素を抽出する抽出手段（例えば、図２７の領域推定部１７４）と、前記抽出手段により抽出された前記所定の画素で構成される領域の重心位置を前記ユーザが意図する追尾点と推定する推定手段（例えば、図２７の領域推定部１７４）とを備える。
【００２５】
この画像処理装置には、前記推定手段により推定された前記追尾点を前記オブジェクトの重心位置になるように微調整する微調整手段（例えば、図１の追尾位置補正部２４）をさらに備えることができる。
【００２６】
本発明の一側面の送信方法およびプログラムは、移動するオブジェクトを追尾する画像処理装置の画像処理方法、またはその画像処理をコンピュータに実行させるプログラムにおいて、画像の中の前記オブジェクト上の現在の追尾点またはカーソル位置に対し、ユーザが指定する方向に基づいて、検出対象領域を生成し（例えば、図３８のステップＳ１３４）、生成された前記検出対象領域内に含まれる画素の特徴量を算出し（例えば、図３８のステップＳ１３５）、算出された前記特徴量に基づいて、所定の画素を抽出し（例えば、図３８のステップＳ１３８）、抽出された前記所定の画素で構成される領域の重心位置を前記ユーザが意図する追尾点と推定するステップ（例えば、図３８のステップＳ１４０）を含む。
【００２７】
以下、本発明の実施の形態について図を参照して説明する。
【００２８】
図１は、本発明を監視カメラシステムに適用した場合の構成例を表している。
【００２９】
撮像部２１は、例えば、CCD（Charge Coupled Device）ビデオカメラ等よりなり、撮像した画像を画像ディスプレイ２５に表示させる。オブジェクト位置推定部２２は、撮像部２１より入力された画像から追尾対象を検出し、その検出結果をオブジェクト追尾部２３に出力する。またオブジェクト位置推定部２２は、ユーザにより指示入力部２９を介して所定の方向が指定されるか、あるいは、追尾させたいオブジェクトが存在する方向にカーソルが移動されたとき、そのカーソル位置やオフセット位置を取得し、ユーザが意図する追尾位置を推定し、その推定結果をオブジェクト追尾部２３に出力する。
【００３０】
オブジェクト追尾部２３は、撮像部２１より供給された画像中の、オブジェクト位置推定部２２により検出または推定された追尾点を追尾するように動作する。またオブジェクト追尾部２３は、追尾結果をオブジェクト位置推定部２２に出力するとともに、追尾結果としての追尾位置を表す位置情報を追尾位置補正部２４に出力する。さらにオブジェクト追尾部２３は、追尾結果に基づいて、移動したオブジェクトを撮像できるようにカメラ駆動部２６を制御する。追尾位置補正部２４は、オブジェクト追尾部２３から供給された追尾位置を表す位置情報を、その追尾点が属するオブジェクトの重心位置になるように微調整し、その補正結果を画像ディスプレイ２５に出力するとともに、オブジェクト追尾部２３に補正結果を供給する。これにより、オブジェクト追尾部２３は、補正された追尾点を次のフレームから追尾するように動作することができる。カメラ駆動部２６は、オブジェクト追尾部２３からの制御に基づいて、撮像部２１が追尾点を中心とする画像を撮影するように撮像部２１を駆動する。
【００３１】
制御部２７は、例えば、マイクロコンピュータなどにより構成され、各部を制御する。また制御部２７には、半導体メモリ、磁気ディスク、光ディスク、または光磁気ディスクなどにより構成されるリムーバブルメディア２８が必要に応じて接続され、プログラム、その他各種のデータが必要に応じて供給される。指示入力部２９は、各種のボタン、スイッチ、あるいは赤外線や電波を用いたリモートコントローラなどにより構成され、ユーザからの指示に対応する信号を制御部２７に出力する。
【００３２】
次に、図２のフローチャートを参照して、図１に示した監視カメラシステムが実行する監視処理について説明する。この処理は、監視システム１の電源がオンされているとき、撮像部２１により監視する領域が撮像され、その撮像して得られた画像がオブジェクト位置推定部２２およびオブジェクト追尾部２３を介して画像ディスプレイ２５に出力されて開始される。
【００３３】
ステップＳ１において、オブジェクト位置推定部２２は、撮像部２１から入力された画像から追尾対象を検出する処理を実行する。例えば、入力画像に動く物体が存在する場合、オブジェクト位置推定部２２は、その動く物体を追尾対象として検出するとともに、追尾対象の中から、最も輝度の高い点あるいは追尾対象の中心の点などを追尾点として検出する。またオブジェクト位置推定部２２は、ユーザにより指示入力部２９を介して所定の方向が指定されたとき、その指定する方向に基づいて、ユーザが意図する追尾位置を推定し、推定結果をオブジェクト追尾部２３に出力する。追尾位置を推定する処理の詳細は、図２６以降で説明する。
【００３４】
ステップＳ２において、オブジェクト追尾部２３は、ステップＳ１の処理で検出された追尾点を追尾する追尾処理を実行する。追尾処理の詳細については、図５を参照して後述するが、この処理により、撮像部２１により撮像された画像の中の追尾対象となるオブジェクト（例えば、人、動物など）の中の追尾点（例えば、目、頭の中心）が追尾され、追尾結果が制御部２７に出力されるとともに、追尾位置を表す位置情報が追尾位置補正部２４に出力される。
【００３５】
ステップＳ３において、制御部２７は、ステップＳ２の処理による追尾結果に基づいて、画像ディスプレイ２５に、撮像部２１により撮像された画像に追尾位置を表すマークなどを重畳して表示させる。
【００３６】
ステップＳ４において、オブジェクト追尾部２３は、ステップＳ２の処理による追尾結果に基づいて、オブジェクトの移動を検出し、移動したオブジェクトを撮像できるようにカメラを駆動させるカメラ駆動信号を生成し、カメラ駆動部２６に出力する。ステップＳ５において、カメラ駆動部２６は、オブジェクト追尾部２３からのカメラ駆動信号に基づいて撮像部２１を駆動する。これにより撮像部２１は、追尾点が画面から外れてしまうことがないようにカメラをパンまたはチルトする。
【００３７】
ステップＳ６において、制御部２７は、指示入力部２９を介したユーザからの指示に基づいて監視処理を終了するか否かを判定し、ユーザから終了が指示されていない場合には、ステップＳ１に戻り、それ以降の処理を繰り返し実行する。そして、ステップＳ６において、ユーザから監視処理の終了が指示されたと判定された場合、制御部２７は監視処理を終了する。
【００３８】
図３Ａ乃至図３Ｃは、このとき画像ディスプレイ２５に表示される画像の例を、時系列に示した図である。図３Ａは、撮像部２１により、追尾対象となるオブジェクト４１が撮像された画像の例であり、この例では、図中左方向に走って移動する人が、オブジェクト４１として撮像されている。図３Ｂでは、オブジェクト４１が、図３Ａの位置から図中左に移動しており、図３Ｃでは、オブジェクト４１が、図３Ｂの位置からさらに左に移動している。
【００３９】
オブジェクト位置推定部２２は、図２のステップＳ１で、オブジェクト４１を検出し、このオブジェクト４１である人の目を、追尾点４１Ａとしてオブジェクト追尾部２３に出力する。ステップＳ２ではオブジェクト追尾部２３により追尾処理が行われる。
【００４０】
次に、図１のオブジェクト追尾部２３の詳細な構成例と、その動作について説明する。      
【００４１】
図４は、オブジェクト追尾部２３の機能的構成例を示すブロック図である。図４に示されるように、オブジェクト追尾部２３は、テンプレートマッチング部５１、動き推定部５２、シーンチェンジ検出部５３、背景動き推定部５４、領域推定関連処理部５５、乗り換え候補保持部５６、追尾点決定部５７、テンプレート保持部５８、および制御部５９により構成されている。
【００４２】
テンプレートマッチング部５１は、入力画像と、テンプレート保持部５８に保持されているテンプレート画像のマッチング処理を行う。動き推定部５２は、入力画像の動きを推定し、推定の結果得られた動きベクトルと、その動きベクトルの確度を、シーンチェンジ検出部５３、背景動き推定部５４、領域推定関連処理部５５、および追尾点決定部５７に出力する。シーンチェンジ検出部５３は、動き推定部５２より供給された動きベクトルとその動きベクトルの確度に基づいて、シーンチェンジを検出する。
【００４３】
背景動き推定部５４は、動き推定部５２より供給された動きベクトルとその動きベクトルの確度に基づいて背景動きを推定する処理を実行し、推定結果を領域推定関連処理部５５に供給する。領域推定関連処理部５５は、動き推定部５２より供給された動きベクトルとその動きベクトルの確度、背景動き推定部５４より供給された背景動き、並びに追尾点決定部５７より供給された追尾点情報に基づいて、領域推定処理を行う。また領域推定関連処理部５５は、入力された情報に基づいて乗り換え候補を生成し、乗り換え候補保持部５６へ供給し、保持させる。さらに領域推定関連処理部５５は、入力画像に基づいてテンプレートを作成し、テンプレート保持部５８に供給し、保持させる。
【００４４】
追尾点決定部５７は、動き推定部５２より供給された動きベクトルとその動きベクトルの確度、および乗り換え候補保持部５６より供給された乗り換え候補に基づいて、追尾点を決定し、決定された追尾点に関する情報を領域推定関連処理部５５に出力する。
【００４５】
制御部５９は、オブジェクト位置推定部２２から出力された追尾点の情報に基づいて、テンプレートマッチング部５１乃至テンプレート保持部５８の各部を制御して、検出された追尾対象を追尾させるとともに、画像ディスプレイ２５に表示される画面の中に、追尾点が表示されるようにカメラ駆動部２６に制御信号を出力し、撮像部２１の駆動を制御する。これにより、追尾点が画面の外に出ないように制御される。また制御部５９は、追尾点の画面上での位置の情報などの追尾結果を、追尾位置補正部２４および制御部２７などに出力する。
【００４６】
次に、オブジェクト追尾部２３の動作について説明する。
【００４７】
図５は、図２のステップＳ２におけるオブジェクト追尾部２３が実行する追尾処理の詳細を説明するフローチャートである。
【００４８】
図５に示されるように、オブジェクト追尾部２３は、基本的に通常処理と例外処理を実行する。すなわち、ステップＳ１１で通常処理が行われる。この通常処理の詳細は、図９のフローチャートを参照して後述するが、この処理によりオブジェクト位置推定部２２により検出または推定された追尾点を追尾する処理が実行される。
【００４９】
ステップＳ１１の通常処理において追尾点の追尾ができなくなったとき、ステップＳ１２において、例外処理が実行される。この例外処理の詳細は、図１２のフローチャートを参照して後述するが、この例外処理により、追尾点が画像から見えなくなったとき、テンプレートマッチングにより通常処理への復帰処理が実行される。例外処理によって追尾処理を継続することができなくなった、すなわち、通常処理へ復帰することができなくなったと判定された場合には処理が終了されるが、テンプレートマッチングによる復帰処理の結果、通常処理への復帰が可能と判定された場合には、処理は再びステップＳ１１に戻る。このようにして、ステップＳ１１の通常処理とステップＳ１２の例外処理が、各フレーム毎に順次繰り返し実行される。
【００５０】
本実施の形態においては、この通常処理と例外処理により、図６乃至図８に示されるように、追尾対象が回転したり、オクルージョンが発生したり、シーンチェンジが発生する等、追尾点が一時的に見えなくなった場合においても、追尾が可能となる。
【００５１】
図６の例では、フレームｎ−１において、追尾対象としての人の顔７４が表示されており、この人の顔７４は、右目７２と左目７３を有している。ユーザが、このうちの、例えば右目７２（正確には、その中の１つの画素）を追尾点７１として指定したとする。図６の例においては、次のフレームｎにおいて、追尾対象としての人が図中左方向に移動しており、さらに次のフレームｎ＋１においては、人の顔７４が時計方向に回動している。その結果、今まで見えていた右目７２が表示されなくなり、追尾ができなくなる。そこで、上述した図５のステップＳ１１の通常処理においては、右目７２と同一の対象物としての顔７４上の左目７３が新たな追尾点として選択され、追尾点が左目７３に乗り換えられる。これにより追尾が可能となる。
【００５２】
図７の例では、フレームｎ−１において、追尾対象としての人の顔７４の図中左側からボール８１が移動してきており、次のフレームｎにおいて、ボール８１がちょうど顔７４を覆う状態となっている。この状態においては、追尾点７１として指定されていた右目７２を含む顔７４が表示されていない。このようなオクルージョンが起きると、対象物としての顔７４が表示されていないので、追尾点７１に代えて追尾する乗り換え点もなくなり、以後、追尾点を追尾することが困難になる。そこで本実施の形態においては、追尾点７１としての右目７２を含むフレームｎ−１（実際には時間的にもっと前のフレーム）の画像がテンプレートとして予め保存され、ボール８１がさらに右側に移動し、フレームｎ＋１において、追尾点７１として指定された右目７２が再び現れると、上述した図５のステップＳ１２の例外処理により、追尾点７１としての右目７２が再び表示されたことがテンプレートに基づいて確認され、右目７２が再び追尾点７１として追尾されることになる。
【００５３】
図８の例では、フレームｎ−１において、追尾対象としての人の顔７４が表示されているが、次のフレームｎにおいて、自動車９１が人の顔７４を含む全体を覆い隠している。すなわち、この場合、シーンチェンジが起きたことになる。そこで本実施の形態においては、このようにシーンチェンジが起きて追尾点７１が画像から存在しなくなっても、自動車９１が移動して、フレームｎ＋１において再び右目７２が表示されると、上述した図５のステップＳ１２の例外処理により、追尾点７１としての右目７２が再び出現したことがテンプレートに基づいて確認され、この右目７２を再び追尾点７１として追尾することが可能となる。
【００５４】
次に、図９のフローチャートを参照して、図５のステップＳ１１の通常処理の詳細について説明する。
【００５５】
ステップＳ２１において、追尾点決定部５７は、通常処理の初期化処理を実行する。その詳細は、図１０のフローチャートを参照して後述するが、この処理によりユーザから追尾するように指定された追尾点を基準とする領域推定範囲が設定される。この領域推定範囲は、ユーザにより指定された追尾点と同一の対象物（例えば、追尾点が人の目である場合、目と同様の動きをする剛体としての人の顔、または人の体など）に属する点の範囲を推定する際に参照する範囲である。乗り換え点は、この領域推定範囲の中の点から選択される。
【００５６】
ステップＳ２２において、制御部５９は、次のフレームの画像の入力を待機するように各部を制御する。ステップＳ２３において、動き推定部５２は、追尾点の動きを推定する。すなわち、ユーザにより指定された追尾点を含むフレーム（ここでは前フレームという）より時間的に後のフレーム（ここでは後フレームという）をステップＳ２２の処理で取り込むことで、結局連続する２フレームの画像が得られたことになるので、ステップＳ２３において、前フレームの追尾点に対応する後フレームの追尾点の位置を推定することで、追尾点の動きが推定される。
【００５７】
なお、時間的に前または後とは、入力の順番や処理の順番をいう。通常、撮像の順番に各フレームの画像が入力されるので、その場合、より時間的に前に撮像されたフレームが前フレームとなるが、時間的に後に撮像されたフレームが先に処理される場合には、時間的に後に撮像されたフレームが前フレームとなる。
【００５８】
ステップＳ２４において、動き推定部５２は、ステップＳ２３の処理の結果、追尾点が推定可能であったか否かを判定する。追尾点が推定可能であったか否かは、例えば、動き推定部５２が生成、出力する動きベクトル（後述）の確度の値を、予め設定されている閾値と比較することで判定される。具体的には、動きベクトルの確度が閾値以上であれば推定が可能であり、閾値より小さければ推定が不可能であると判定される。すなわち、ここにおける可能性は比較的厳格に判定され、実際には推定が不可能ではなくても確度が低い場合には、不可能と判定される。これにより、より確実な追尾処理が可能となる。
【００５９】
なお、ステップＳ２４では、追尾点での動き推定結果と追尾点の近傍の点での動き推定結果が、多数を占める動きと一致する場合には推定可能、一致しない場合には推定不可能と判定するようにすることも可能である。
【００６０】
ステップＳ２４において、追尾点の動きが推定可能であると判定された場合、つまり、追尾点が同一対象物上の対応する点上に正しく設定されている確率が比較的高い場合、ステップＳ２５に進む。より具体的には、図６の例において右目７２が追尾点７１として指定された場合、右目７２が正しく追尾されている確率が比較的高い場合には追尾点の動きが推定可能であると判定される。
【００６１】
ステップＳ２５において、追尾点決定部５７は、ステップＳ２３の処理で得られた推定動き（いわゆる動きベクトル）の分だけ追尾点をシフトする。これにより、前フレームの追尾点の追尾後の後フレームにおける追尾の位置が決定されることになる。
【００６２】
ステップＳ２５の処理の後、ステップＳ２６において、領域推定関連処理が実行される。この領域推定関連処理の詳細は、本出願人が先に提案している特開２００５−３０３９８３号公報に開示されている。この処理により、ステップＳ２１の通常処理の初期化処理で指定された領域推定範囲が更新される。また対象物体が回転するなどして、追尾点が表示されない状態になった場合に、追尾点を乗り換えるべき点としての乗り換え点としての候補（乗り換え候補）が、まだ追尾が可能な状態において予め抽出され、乗り換え候補保持部５６で保持される。さらに乗り換え候補への乗り換えもできなくなった場合、追尾は一旦中断されるが、追尾点が再び出現することで再び追尾が可能になったことを確認するためのテンプレートが予め作成され、テンプレート保持部５８で保持される。
【００６３】
ステップＳ２６の領域推定関連処理が終了した後、処理は再びステップＳ２２に戻り、それ以降の処理が繰り返し実行される。
【００６４】
このように、ユーザから指定された追尾点の動きが推定可能である限り、ステップＳ２２乃至ステップＳ２６の処理がフレーム毎に繰り返し実行され、追尾が行われることになる。
【００６５】
これに対して、ステップＳ２４において、追尾点の動きが推定不可能であると判定された場合、すなわち、上述したように、例えば動きベクトルの確度が閾値以下であるような場合には、処理はステップＳ２７に進む。
【００６６】
ステップＳ２７において、追尾点決定部５７は、ステップＳ２６の領域推定関連処理で生成された乗り換え候補が乗り換え候補保持部５６に保持されているので、その中から、元の追尾点に最も近い乗り換え候補を１つ選択する。追尾点決定部５７は、ステップＳ２８で乗り換え候補が選択できたか否かを判定し、乗り換え候補が選択できた場合には、ステップＳ２９に進み、追尾点をステップＳ２７の処理で選択した乗り換え候補に乗り換える（変更する）。これにより、乗り換え候補の点が新たな追尾点として設定される。
【００６７】
ステップＳ２９の処理の後、処理はステップＳ２３に戻り、乗り換え候補の中から選ばれた追尾点の動きを推定する処理が実行される。そして、ステップＳ２４において新たに設定された追尾点の動きが推定可能であるか否かが再び判定され、推定可能であれば、ステップＳ２５において追尾点を推定動き分だけシフトする処理が行われ、ステップＳ２６において領域推定関連処理が実行される。その後、処理は再びステップＳ２２に戻り、それ以降の処理が繰り返し実行される。
【００６８】
ステップＳ２４において、新たに設定された追尾点も推定不可能であると判定された場合には、再びステップＳ２７に進み、乗り換え候補の中から、元の追尾点に次に最も近い乗り換え候補が選択され、ステップＳ２９において、その乗り換え候補が新たな追尾点として設定される。その新たな追尾点について、再びステップＳ２３以降の処理が繰り返される。
【００６９】
乗り換え候補保持部５６で保持されているすべての乗り換え候補を新たな追尾点としても、追尾点の動きを推定することができなかった場合には、ステップＳ２８において、乗り換え候補が選択できなかったと判定され、この通常処理は終了される。そして、図５のステップＳ１２の例外処理に処理が進むことになる。
【００７０】
次に、図１０のフローチャートを参照して、図９のステップＳ２１の通常処理の初期化処理の詳細について説明する。
【００７１】
ステップＳ４１において、制御部５９は、今の処理は例外処理からの復帰の処理であるか否かを判定する。すなわち、図５のステップＳ１２の例外処理を終了した後、再びステップＳ１１の通常処理に戻ってきたのか否かが判定される。最初のフレームの処理においては、まだステップＳ１２の例外処理は実行されていないので、例外処理からの復帰ではないと判定され、処理はステップＳ４２に進む。
【００７２】
ステップＳ４２において、追尾点決定部５７は、追尾点を追尾点指示の位置に設定する処理を実行する。すなわち、入力画像の中で、例えば、最も輝度の高い点が追尾点として設定される。
【００７３】
なお、追尾点は、ユーザによる指定など、他の方法により設定されるようにしてもよい。ユーザによる指定とは、例えば、ユーザが指示入力部２９を操作することで、制御部５９に対して、入力画像の中の所定の点を追尾点として指定することにより行われることである。追尾点決定部５７は、設定した追尾点の情報を領域推定関連処理部５５に供給する。
【００７４】
ステップＳ４３において、領域推定関連処理部５５は、ステップＳ４２の処理で設定された追尾点の位置情報に基づき、領域推定範囲を設定する。この領域推定範囲は、追尾点と同じ剛体上の点を推定する際の参照範囲であり、予め追尾点と同じ剛体部分が領域推定範囲の大部分を占めるように、より具体的には、追尾点と同じ剛体部分に推定領域範囲の位置や大きさが追随するように設定することで、領域推定範囲の中で最も多数を占める動きを示す部分を追尾点と同じ剛体部分であると推定できるようにするためのものである。ステップＳ４３では、初期値として、例えば、追尾点を中心とする予め設定された一定の範囲が領域推定範囲とされる。その後、処理は図９のステップＳ２２に進むことになる。
【００７５】
一方、ステップＳ４１において、現在の処理が、図５のステップＳ１２の例外処理からの復帰の処理であると判定された場合、ステップＳ４４に進む。ステップＳ４４において、追尾点決定部５７は、図１２のフローチャートを参照して後述する例外処理によるテンプレートにマッチした位置に基づき追尾点と領域推定範囲を設定する。例えば、テンプレート上の追尾点とマッチした現フレーム上の点が追尾点とされ、その点から予め設定されている一定の範囲が領域推定範囲とされる。その後、処理は図９のステップＳ２２に進む。
【００７６】
以上の処理を、図１１を参照して説明すると次のようになる。
【００７７】
図１０のステップＳ４２において、例えば、図１１に示されるように、フレームｎ−１の人の右目７２が追尾点７１として指定されると、ステップＳ４３において、追尾点７１を含む所定の領域が領域推定範囲１０１として指定される。図９のステップＳ２４において、領域推定範囲１０１の範囲内のサンプル点が次のフレームにおいて推定可能であるか否かが判定される。図１１の例の場合、フレームｎの次のフレームｎ＋１においては、領域推定範囲１０１のうち、右目７２を含む図中左側半分の領域１０２がボール８１で隠されているため、フレームｎの追尾点７１の動きを、次のフレームｎ＋１において推定することができない。そこで、このような場合においては、時間的に前のフレームｎ−１で乗り換え候補として予め用意されていた領域指定範囲１０１内（右目７２を含む剛体としての顔７４内）の点の中から１つの点（例えば、顔７４に含まれる左目７３（正確には、その中の１つの画素））が選択され、その点がフレームｎ＋１における、新たな追尾点とされる。
【００７８】
次に、図１２のフローチャートを参照して、図５のステップＳ１１の通常処理に続いて行われる、ステップＳ１２の例外処理の詳細について説明する。この処理は、上述したように、図９のステップＳ２４において追尾点の動きを推定することが不可能と判定され、さらにステップＳ２８において追尾点を乗り換える乗り換え候補が選択できなかったと判定された場合に実行されることになる。
【００７９】
ステップＳ５１において、制御部５９は、例外処理の初期化処理を実行する。ここで、図１３のフローチャートを参照して、例外処理の初期化処理の詳細について説明する。
【００８０】
ステップＳ６１において、制御部５９は、追尾点の動きを推定することが不可能で、かつ、追尾点を乗り換える乗り換え候補が選択できなかった際にシーンチェンジが起きていたか否かを判定する。シーンチェンジ検出部５３は、動き推定部５２の推定結果に基づいてシーンチェンジがあったか否かを常に監視しており、制御部５９は、そのシーンチェンジ検出部５３の検出結果に基づいて、ステップＳ６１の判定処理を実行する。シーンチェンジ検出部５３の具体的処理については、図２４と図２５を参照して後述する。
【００８１】
シーンチェンジが起きている場合、制御部５９は、追尾ができなくなった理由がシーンチェンジが発生したことによるものと推定して、ステップＳ６２においてモードをシーンチェンジに設定する。これに対して、ステップＳ６１においてシーンチェンジが発生していないと判定された場合には、制御部５９は、ステップＳ６３においてモードをその他のモードに設定する。
【００８２】
ステップＳ６２またはステップＳ６３の処理の後、ステップＳ６４においてテンプレートマッチング部５１は、時間的に最も古いテンプレートを選択する処理を実行する。具体的には、図１４に示されるように、例えばフレームｎからフレームｎ＋１に移行するとき、例外処理が実行されるものとすると、フレームｎ−ｍ＋１からフレームｎに関して生成され、テンプレート保持部５８に保持されているｍ個のフレームのテンプレートの中から、時間的に最も古いテンプレートであるフレームｎ−ｍ＋１に関して生成されたテンプレートが選択される。
【００８３】
このように例外処理への移行直前のテンプレート（図１４の例の場合フレームｎに関して生成されたテンプレート）を用いずに、時間的に少し前のテンプレートを選択するのは、次のような理由からである。つまり、追尾対象のオクルージョンなどで例外処理への移行が発生した場合には、移行の直前には追尾対象が既にかなり隠れており、その時点のテンプレートでは、追尾対象を充分に大きく捉えることができない可能性が高いからである。従って、このように時間的に若干前のフレームにおけるテンプレートを選択することで、確実な追尾が可能となる。
【００８４】
図１３の説明に戻る。ステップＳ６５において、テンプレートマッチング部５１は、テンプレート探索範囲を設定する処理を実行する。テンプレート探索範囲は、例えば、例外処理に移行する直前の追尾点の位置がテンプレート探索範囲の中心となるように設定される。
【００８５】
すなわち、図１５に示されるように、フレームｎにおいて被写体の顔７４の右目７２が追尾点７１として指定されている場合において、図中左方向からボール８１が飛んできて、フレームｎ＋１において追尾点７１を含む顔７４が隠れ、フレームｎ＋２において、再び追尾点７１が現れる場合を想定する。この場合において、テンプレート範囲１１１に含まれる追尾点７１を中心とする領域がテンプレート探索範囲１１２として設定される。
【００８６】
ステップＳ６６において、テンプレートマッチング部５１は、例外処理への移行後の経過フレーム数およびシーンチェンジ数を０にリセットする。このフレーム数とシーンチェンジ数は、後述する図１２のステップＳ５５における継続判定処理（図１６のステップＳ７１，Ｓ７３，Ｓ７５，Ｓ７７）において使用される。
【００８７】
以上のようにして、例外処理の初期化処理が終了した後、図１２のステップＳ５２において、制御部５９は次のフレームの画像の入力を待機する処理を実行する。ステップＳ５３において、テンプレートマッチング部５１は、テンプレート探索範囲内においてテンプレートマッチング処理を行う。
【００８８】
ステップＳ５４においてテンプレートマッチング部５１は、通常処理への復帰が可能であるか否かを判定する。すなわち、テンプレートマッチング処理により、数フレーム前のテンプレート（図１５のテンプレート範囲１１１内の画素）と、テンプレート探索範囲内のマッチング対象の画素の差分の絶対値和が演算される。
【００８９】
より詳細には、テンプレート範囲１１１内の所定のブロックと、テンプレート探索範囲内の所定のブロックにおけるそれぞれの画素の差分の絶対値和が演算される。ブロックの位置がテンプレート範囲１１１内で順次移動され、各ブロックの差分の絶対値和が加算され、そのテンプレートの位置における値とされる。そして、テンプレートをテンプレート探索範囲内で順次移動させた場合における差分の絶対値和が最も小さくなる位置とその値が検索される。ステップＳ５４において、検索された最小の差分の絶対値和が、予め設定されている所定の閾値と比較される。差分の絶対値和が閾値以下である場合には、テンプレートに含まれている追尾点を含む画像が再び出現したことになるので、通常処理への復帰が可能であると判定され、処理は図５のステップＳ１１の通常処理に戻る。
【００９０】
そして、上述したように、図１０のステップＳ４１において、例外処理からの復帰であると判定され、ステップＳ４４において、差分絶対値和が最小となる位置をテンプレートのマッチした位置として、このマッチした位置とテンプレートに対応して保持してあったテンプレート位置と追尾点領域推定範囲の位置関係から、追尾点と領域推定範囲の設定が行われる。
【００９１】
図１２のステップＳ５４における通常処理への復帰が可能であるか否かの判定は、最小の差分絶対値和をテンプレートのアクティビティで除算して得られる値を閾値と比較することで行うようにしてもよい。この場合におけるアクティビティは、後述する図１７のアクティビティ算出部１２２により、図１８のステップＳ９３において算出された値を用いることができる。
【００９２】
あるいはまた、今回の最小の差分絶対値和を１フレーム前における最小の差分絶対値和で除算することで得られた値を所定の閾値と比較することで、通常処理への復帰が可能であるか否かを判定するようにしてもよい。この場合、アクティビティの計算が不要となる。すなわち、ステップＳ５４では、テンプレートとテンプレート探索範囲の相関が演算され、相関値と閾値の比較に基づいて判定が行われる。
【００９３】
ステップＳ５４において、通常処理への復帰が可能ではないと判定された場合、ステップＳ５５に進み、継続判定処理が実行される。継続判定処理の詳細は、図１６のフローチャートを参照して後述するが、この処理により、例外処理が継続可能であるか否かの判定が行われる。
【００９４】
ステップＳ５６において、制御部５９は、ステップＳ５５の継続判定処理による例外処理での追尾点の追尾が継続可能であるか否かの継続判定結果に基づいて（後述する図１６のステップＳ７６，Ｓ７８で設定されたフラグに基づいて）判定する。例外処理での追尾点の追尾処理が継続可能であると判定された場合、処理はステップＳ５２に戻り、それ以降の処理が繰り返し実行される。すなわち、追尾点が再び出現するまで待機する処理が繰り返し実行される。
【００９５】
これに対して、ステップＳ５６において、例外処理での追尾点の追尾処理が継続可能ではないと判定された場合（後述する図１６のステップＳ７５の処理で追尾点が消失した後の経過フレーム数が閾値THfr以上と判定されるか、または、ステップＳ７７の処理でシーンチェンジ数が閾値THsc以上と判定された場合）、もはや例外処理は不可能であるとして、追尾処理は終了される。なお、追尾処理を終了するのではなく、保持しておいた追尾点を用いて再度通常処理に戻るようにすることも考えられる。この場合の処理については、図４３のフローチャートを参照して後述する。
【００９６】
次に、図１６のフローチャートを参照して、図１２のステップＳ５５における継続判定処理の詳細について説明する。
【００９７】
ステップＳ７１において、制御部５９は、変数としての経過フレーム数に１を加算する処理を実行する。経過フレーム数は、図１２のステップＳ５１の例外処理の初期化処理（図１３のステップＳ６６）において、予め０にリセットされている。
【００９８】
次にステップＳ７２において、制御部５９は、シーンチェンジがあるか否かを判定する。シーンチェンジがあるか否かは、シーンチェンジ検出部５３が、常にその検出処理を実行しており、その検出結果に基づいて判定が可能である。シーンチェンジがあると判定された場合にはステップＳ７３に進み、制御部５９は、変数としてのシーンチェンジ数に１を加算する。このシーンチェンジ数も、図１３のステップＳ６６の初期化処理において０にリセットされている。通常処理から例外処理への移行時にシーンチェンジが発生していないと判定された場合には、ステップＳ７３の処理はスキップされる。
【００９９】
次に、ステップＳ７４において、制御部５９は、現在設定されているモードがシーンチェンジであるか否かを判定する。このモードは、図１３のステップＳ６２またはＳ６３において設定されたものである。現在設定されているモードがシーンチェンジであると判定された場合にはステップＳ７７に進み、制御部５９は、シーンチェンジ数が予め設定されている閾値THscより小さいか否かを判定する。制御部５９は、ステップＳ７７において、シーンチェンジ数が閾値THscより小さいと判定した場合にはステップＳ７６に進み、継続可のフラグを設定し、シーンチェンジ数が閾値THsc以上であると判定した場合にはステップＳ７８に進み、継続不可のフラグを設定する。
【０１００】
一方、ステップＳ７４において、モードがシーンチェンジではないと判定された場合（モードがその他であると判定された場合）、ステップＳ７５に進み、制御部５９は、経過フレーム数が閾値THfrより小さいか否かを判定する。この経過フレーム数も、図１３の例外処理の初期化処理のステップＳ６６において、予め０にリセットされている。制御部５９は、ステップＳ７５において、経過フレーム数が閾値THfrより小さいと判定された場合にはステップＳ７６に進み、継続可のフラグを設定し、経過フレーム数が閾値THfr以上であると判定された場合にはステップＳ７８に進み、継続不可のフラグを設定する。
【０１０１】
このように、テンプレートマッチング処理時におけるシーンチェンジ数が閾値THsc以上になるか、または経過フレーム数が閾値THfr以上になった場合には、それ以上の例外処理は不可能とされる。
【０１０２】
なお、モードがその他である場合には、シーンチェンジ数が０であるという条件も加えて、継続が可能であるか否かを判定するようにしてもよい。
【０１０３】
以上においては、画像のフレームを処理単位とし、すべてのフレームを用いることを前提としたが、フィールド単位で処理したり、すべてのフレームまたはフィールドを利用するのではなく、所定の間隔で間引いて抽出されたフレームまたはフィールドを用いるようにすることも可能である。
【０１０４】
次に、図１７を参照して、図４の動き推定部５２の構成例について説明する。図１７に示されるように、評価値算出部１２１、アクティビティ算出部１２２、および動きベクトル検出部１２３には、入力画像が供給されている。
【０１０５】
評価値算出部１２１は、動きベクトルにより対応付けられる両対象の一致度に関する評価値を算出し、正規化処理部１２５に供給する。アクティビティ算出部１２２は、入力画像のアクティビティを算出し、閾値判定部１２４と正規化処理部１２５に供給する。動きベクトル検出部１２３は、入力画像から動きベクトルを検出し、評価値算出部１２１と統合処理部１２６に供給する。
【０１０６】
閾値判定部１２４は、アクティビティ算出部１２２より供給されたアクティビティを所定の閾値と比較し、その判定結果を統合処理部１２６に供給する。正規化処理部１２５は、評価値算出部１２１より供給された評価値を、アクティビティ算出部１２２より供給されたアクティビティに基づいて正規化し、得られた値を統合処理部１２６に供給する。
【０１０７】
統合処理部１２６は、正規化処理部１２５から供給された正規化情報と、閾値判定部１２４より供給された判定結果に基づいて、動きベクトルの確度を演算し、得られた確度を動きベクトル検出部１２３より供給された動きベクトルとともに出力する。
【０１０８】
次に、図１８のフローチャートを参照して、動き推定部５２が実行する動き推定処理について説明する。動きベクトルは、点に対するものとして求められているが、その確度は、動きベクトルにより対応付けられる２つの点の近傍の、例えば点を中心とする、小ブロックの画像データを用いて計算される。
【０１０９】
ステップＳ９１において、動きベクトル検出部１２３は、入力画像から動きベクトルを検出する。この検出には、例えばブロックマッチング方式や勾配法が用いられる。検出された動きベクトルは、評価値算出部１２１と統合処理部１２６に供給される。
【０１１０】
ステップＳ９２において、評価値算出部１２１は、ステップＳ９１の処理で検出された動きベクトルにより対応付けられる両対象の一致度に関する評価値を算出する。具体的には、例えば、動きベクトルで対応付けられる２つの点を中心とする２つのブロックの画素値の差分絶対値和が算出される。すなわち、ステップＳ９１の処理で動きベクトル検出部１２３により検出された動きベクトルＶ（ｖｘ，ｖｙ）と、それに基づく時間的に前のフレームの画像Ｆｉ上の点Ｐ（Ｘｐ，Ｙｐ）、並びに時間的に後のフレームの画像Ｆｊ上の点Ｑ（Ｘｑ，Ｙｑ）の関係は次式（１）で表される。
【０１１１】
【数１】
2007272731.tif 000003
【０１１２】
評価値算出部１２１は点Ｐを中心とするブロックと、点Ｑを中心とするブロックについて、次式（２）に基づいて評価値Ｅｖａｌ（Ｐ，Ｑ，ｉ，ｊ）を演算する。
【０１１３】
【数２】
2007272731.tif 000004
【０１１４】
各ブロックは、１辺が２Ｌ＋１画素の正方形とされている。上記式（２）における総和ΣΣは、ｘが−ＬからＬについて、ｙが−ＬからＬについて、対応する画素同士で行われる。従って、例えば、Ｌ＝２である場合、９個の差分が得られ、その絶対値の総和が演算される。評価値は、その値が０に近づくほど、２つのブロックがよく一致していることを表している。
【０１１５】
評価値算出部１２１は、算出した評価値を正規化処理部１２５に供給する。
【０１１６】
ステップＳ９３において、アクティビティ算出部１２２は、入力画像からアクティビティを算出する。アクティビティは、画像の複雑さを表す特徴量であり、図１９に示されるように、各画素毎に注目画素Ｙ（ｘ，ｙ）と、それに隣接する８画素Ｙ（ｘ＋ｉ，ｙ＋ｊ）との差分絶対値和の平均値が、注目画素位置のアクティビティActivity(x,y)として次式（３）に基づいて演算される。
【０１１７】
【数３】
2007272731.tif 000005
【０１１８】
図１９の例の場合、３×３画素のうち、中央に位置する注目画素Ｙ（ｘ，ｙ）の値は１１０であり、それに隣接する８個の画素の値は、それぞれ８０，７０，７５，１００，１００，１００，８０，８０であるから、アクティビティActivity(x,y)は次式で表される。
【０１１９】
Activity(x,y)  ＝｛｜８０−１１０｜＋｜７０−１１０｜＋｜７５−１１０｜＋｜１００−１１０｜＋｜１００−１１０｜＋｜１００−１１０｜＋｜８０−１１０｜＋｜８０−１１０｜｝／８  ＝２４．３７５となる。
【０１２０】
同様の処理が、そのフレームのすべての画素について実行される。
【０１２１】
ブロック単位で動きベクトル確度を算出するため、次式（４）で表されるブロック内の全画素のアクティビティの総和が、そのブロックのアクティビティ（ブロックアクティビティ）Blockactivity(i,j)と定義される。
【０１２２】
【数４】
2007272731.tif 000006
【０１２３】
なお、アクティビティとしては、この他、分散値、ダイナミックレンジなどとすることも可能である。
【０１２４】
ステップＳ９４において、閾値判定部１２４は、ステップＳ９３の処理で算出されたブロックアクティビティを予め設定されている所定の閾値と比較する。そして、入力されたブロックアクティビティが閾値より大きいか否かを表すフラグを統合処理部１２６に出力する。
【０１２５】
具体的には、実験の結果、ブロックアクティビティと評価値は、動きベクトルをパラメータとして、図２０に示される関係を有する。図２０において、横軸はブロックアクティビティBlockactivity(i,j)を表し、縦軸は評価値Evalを表している。
【０１２６】
動きが正しく検出されている場合（正しい動きベクトルが与えられている場合）、そのブロックアクティビティと評価値の値は、曲線１３１より図中下側の領域Ｒ１に分布する。これに対して誤った動き（不正解の動きベクトル）が与えられた場合、そのブロックアクティビティと評価値の値は、曲線１３２より、図中左側の領域Ｒ２に分布する。なお、曲線１３２より上側の領域Ｒ２以外の領域と曲線１３１より下側の領域Ｒ１以外の領域には殆ど分布がない。曲線１３１と曲線１３２は、点Ｐにおいて交差しており、この点Ｐにおけるブロックアクティビティの値が閾値THaとされる。閾値THaは、ブロックアクティビティの値がそれより小さい場合には、対応する動きベクトルが正しくない可能性があることを意味する（この点については後に詳述する）。閾値判定部１２４は、アクティビティ算出部１２２より入力されたブロックアクティビティの値が、この閾値THaより大きいか否かを表すフラグを統合処理部１２６に出力する。
【０１２７】
ステップＳ９５において、正規化処理部１２５は、ステップＳ９２の処理で算出された評価値を、ステップＳ９３の処理で算出されたアクティビティに基づいて正規化する。具体的には、正規化処理部１２５は、次式（５）に従って動きベクトル確度VCを演算する。
【０１２８】
【数５】
2007272731.tif 000007
【０１２９】
但し、動きベクトル確度VCの値が０未満となる場合にはその値を０に置き換える。動きベクトル確度VCのうち、評価値をブロックアクティビティで割り算して得られた値は、その値によって規定される図２０のグラフ上の位置が、原点Ｏと点Ｐを結ぶ傾きが１の直線１３３より、図中下側の領域内であるのか、図中上側の領域内であるのかを表す。すなわち、直線１３３の傾きは１であり、評価値をブロックアクティビティで割り算して得られた値が１より大きければ、その値に対応する点は、直線１３３の上側の領域に分布する点であることを意味する。そしてこの値を１から減算して得られる動きベクトル確度VCは、その値が小さい程、対応する点が領域Ｒ２に分布する可能性が高いことを意味する。
【０１３０】
これに対して、評価値をブロックアクティビティで割り算して得られた値が１より小さければ、その値に対応する点は、直線１３３の図中下側の領域に分布することを意味する。そして、そのときの動きベクトル確度VCは、その値が大きい程（０に近い程）、対応する点が領域Ｒ１に分布することを意味する。正規化処理部１２５は、このようにして演算して得られた動きベクトル確度VCを統合処理部１２６に出力する。
【０１３１】
ステップＳ９６において、統合処理部１２６は、統合処理を実行する。この統合処理の詳細は、図２１のフローチャートに示されている。
【０１３２】
ステップＳ１０１において、統合処理部１２６は、ブロックアクティビティが閾値THa 以下か否かを判定する。この判定は、閾値判定部１２４より供給されたフラグに基づいて行われる。統合処理部１２６は、ブロックアクティビティが閾値THa以下であると判定した場合、ステップＳ１０２において、正規化処理部１２５が算出した動きベクトル確度VCの値を０に設定する。ステップＳ１０１において、アクティビティの値が閾値THaより大きいと判定された場合には、ステップＳ１０２の処理はスキップされ、正規化処理部１２５で生成された動きベクトル確度VCの値が、そのまま動きベクトルとともに出力される。
【０１３３】
これは、正規化処理部１２５において演算された動きベクトルの確度VCの値が正であったとしても、ブロックアクティビティの値が閾値THaより小さい場合には、正しい動きベクトルが得られていない可能性があるからである。すなわち、図２０に示されるように、原点Ｏと点Ｐの間においては、曲線１３２が、曲線１３１より図中下側に（直線１３３より下側に）突出することになる。ブロックアクティビティの値が閾値Thaより小さい区間であって、曲線１３１と曲線１３２において囲まれる領域Ｒ３においては、評価値をブロックアクティビティで割り算して得られる値は、領域Ｒ１とＲ２の両方に分布し、正しい動きベクトルが得られていない可能性が高い。
【０１３４】
そこで、このような分布状態である場合には、動きベクトルの確度は低いものとして処理するようにする。このため、ステップＳ１０２において、動きベクトル確度VCは、その値が正であったとしても、閾値Thaより小さい場合には、０に設定される。このようにすることで、動きベクトル確度VCの値が正である場合には、正しい動きベクトルが得られている場合であることを確実に表すことが可能となる。しかも、動きベクトル確度VCの値が大きい程、正しい動きベクトルが得られている確率が高くなる（分布が領域Ｒ１に含まれる確率が高くなる）。
【０１３５】
このことは、一般的に、輝度変化が少ない領域（アクティビティが小さい領域）では信頼性が高い動きベクトルを検出することが困難であるとの経験上の法則とも一致する。
【０１３６】
次に、図２２を参照して、図４の背景動き推定部５４の構成例について説明する。図２２に示されるように、背景動き推定部５４は、頻度分布算出部１４１と背景動き決定部１４２により構成されている。
【０１３７】
頻度分布算出部１４１は、動きベクトルの頻度分布を算出する。ただし、この頻度には、図４の動き推定部５２より供給される動きベクトル確度VC を用いることで、確からしい動きに重みが与えられるように、重み付けが行われる。背景動き決定部１４２は、頻度分布算出部１４１により算出された頻度分布に基づいて、頻度が最大となる動きを背景動きとして決定する処理を行い、図４の領域推定関連処理部５５へ出力する。
【０１３８】
図２３のフローチャートを参照して、背景動き推定部５４が実行する背景動き推定処理について説明する。
【０１３９】
ステップＳ１１１において、頻度分布算出部１４１は、動き頻度分布を算出する。具体的には、頻度分布算出部１４１は、背景動きの候補としての動きベクトルのｘ座標とｙ座標がそれぞれ基準点から±１６画素分の範囲で表されるとすると、１０８９個（＝１６×２＋１）×（１６×２＋１））の箱、すなわち動きベクトルがとり得る値に対応する座標分の箱を用意し、動きベクトルが発生した場合、その動きベクトルに対応する座標に１を加算する。このようにすることで、動きベクトルの頻度分布を算出することができる。
【０１４０】
ただし、１個の動きベクトルが発生した場合、１を加算していくと、確度が低い動きベクトルの発生頻度が多い場合、その確実性が低い動きベクトルが背景動きとして決定されてしまう恐れがある。そこで、頻度分布算出部１４１は、動きベクトルが発生した場合、その動きベクトルに対応する箱（座標）に、値１を加算するのではなく、値１に動きベクトル確度VC を乗算した値（＝動きベクトル確度VC の値）を加算する。動きベクトル確度VC の値は、０から１の間の値として正規化されており、その値が１に近いほど確度が高い値である。従って、このようにして得られた頻度分布は、動きベクトルをその確度に基づいて重み付けした頻度分布となる。これにより、確度の低い動きが背景動きとして決定される恐れが少なくなる。
【０１４１】
次に、ステップＳ１１２において、頻度分布算出部１４１は、動き頻度分布を算出する処理を全ブロックについて終了したか否かを判定する。まだ処理していないブロックが存在すると判定された場合、ステップＳ１１１に戻り、次のブロックについて動き頻度分布が算出される。
【０１４２】
以上のようにして、全画面に対して動き頻度分布算出処理が行われ、ステップＳ１１２において、全ブロックの処理が終了したと判定された場合、ステップＳ１１３に進み、背景動き決定部１４２は、頻度分布の最大値を検索する処理を実行する。すなわち、背景動き決定部１４２は、頻度分布算出部１４１により算出された頻度の中から最大の頻度のものを選択し、その頻度に対応する動きベクトルを背景動きの動きベクトルとして決定する。この背景動きの動きベクトルは、図４の領域推定関連処理部５５に供給され、全画面動きと背景動きが一致するか否かの判定処理に用いられる。
【０１４３】
次に、図２４を参照して、図４のシーンチェンジ検出部５３の構成例について説明する。図２４に示されるように、シーンチェンジ検出部５３は、動きベクトル確度平均算出部１５１と閾値判定部１５２により構成されている。
【０１４４】
動きベクトル確度平均算出部１５１は、図４の動き推定部５２より供給された動きベクトル確度VC の全画面の平均値を算出し、閾値判定部１５２に出力する。閾値判定部１５２は、動きベクトル確度平均算出部１５１より供給された平均値を、予め定められている閾値と比較し、その比較結果に基づいて、シーンチェンジであるか否かを判定し、判定結果を図４の制御部５９に出力する。
【０１４５】
図２５のフローチャートを参照して、シーンチェンジ検出部５３が実行するシーンチェンジ検出処理について説明する。
【０１４６】
ステップＳ１２１において、動きベクトル確度平均算出部１５１は、ベクトル確度の総和を算出する。具体的には、動きベクトル確度平均算出部１５１は、動き推定部５２の統合処理部１２６より出力された各ブロック毎に算出された動きベクトル確度VCの値を加算する処理を実行する。
【０１４７】
ステップＳ１２２において、動きベクトル確度平均算出部１５１は、ベクトル確度VCの総和を算出する処理が全ブロックについて終了したか否かを判定し、まだ終了していない場合には、ステップＳ１２１の処理を繰り返す。この処理を繰り返すことで、１画面分の各ブロックの動きベクトル確度VCの総和が算出される。
【０１４８】
ステップＳ１２２において、１画面全部についての動きベクトル確度VCの総和の算出処理が終了したと判定された場合、ステップＳ１２３に進み、動きベクトル確度平均算出部１５１は、ベクトル確度VCの平均値を算出する処理を実行する。具体的には、ステップＳ１２１の処理で算出された１画面分のベクトル確度VCの総和を、足し込まれたブロック数で除算して得られた値が平均値として算出される。
【０１４９】
ステップＳ１２４において、閾値判定部１５２は、ステップＳ１２３の処理で動きベクトル確度平均算出部１５１により算出された動きベクトル確度VCの平均値を、予め設定されている閾値と比較し、閾値より小さいか否かを判定する。一般的に、動画中の時刻が異なる２フレーム間でシーンチェンジが発生すると、対応する画像が存在しないため、動きベクトルを算出しても、その動きベクトルは確からしくないことになる。そこで、閾値判定部１５２は、ベクトル確度VCの平均値が閾値より小さいと判定した場合にはステップＳ１２５に進み、シーンチェンジフラグをオンし、閾値以上であると判定した場合にはステップＳ１２６に進み、シーンチェンジフラグをオフにする。シーンチェンジフラグのオンは、シーンチェンジがあったことを表し、シーンチェンジフラグのオフは、シーンチェンジが無いことを表す。
【０１５０】
このシーンチェンジフラグは、制御部５９へ供給され、図１３のステップＳ６１におけるシーンチェンジの有無の判定、並びに図１６のステップＳ７２のシーンチェンジの有無の判定に利用される。
【０１５１】
以上のように、図１のオブジェクト追尾部２３を構成することにより、追尾すべきオブジェクト４１（図３）が回転したり、オクルージョンが発生したり、あるいはシーンチェンジにより、オブジェクト４１の追尾点４１Ａが一時的に表示されなくなるような場合でも、画像の中で移動するオブジェクト４１の追尾点４１Ａを正確に追尾することができる。
【０１５２】
ところで、オブジェクト追尾部２３により追尾処理が行われたにもかかわらず所望の追尾結果が得られない場合、すなわち、例えば、図２６に示されるように、追尾点１６１が追尾させたいオブジェクト１６２から外れている場合、ユーザは、指示入力部２９を介して現在の追尾点１６１がある位置に対して所定の方向を指定するか、あるいは、追尾させたいオブジェクト１６２が存在する方向にカーソルを移動させることにより、その指示を受けたオブジェクト位置推定部２２は、ユーザが意図する追尾位置を推定することができる。
【０１５３】
図２６の例では、オブジェクト１６２は追尾点１６１に対して左斜め上方向に存在しているため、ユーザは、指示入力部２９を用いて、左斜め上方向を指定するか、あるいは、左斜め上方向にカーソルを移動させてカーソル軌跡１６３を指定することにより、その指示を受けたオブジェクト位置推定部２２は、追尾点またはカーソル位置を基準として、ユーザ指定方向をオフセットにした所定の大きさの検出対象領域１６４を生成し、その領域内で所定の間隔の画素の特徴量を算出し、条件に見合う画素を抽出してユーザが意図する追尾位置を推定することができる。
【０１５４】
次に、図１のオブジェクト位置推定部２２の詳細な構成例と、その動作について説明する。
【０１５５】
図２７は、オブジェクト位置推定部２２の機能的構成例を示すブロック図である。図２７に示されるように、オブジェクト位置推定部２２は、パラメータ制御部１７１、検出対象領域生成部１７２、特徴量算出部１７３、および領域推定部１７４により構成されている。
【０１５６】
パラメータ制御部１７１は、検出対象領域生成部１７２で生成される検出対象領域の大きさを表すパラメータ、特徴量算出部１７３で特徴量が算出される際のサンプル点の画素間隔を表すパラメータ、および領域推定部１７４で追尾位置が抽出される際の所定の条件を表すパラメータなどを制御する。
【０１５７】
検出対象領域生成部１７２は、ユーザにより現在の追尾点がある位置に対して指示入力部２９を介して所定の方向が指定されるか、あるいは、追尾させたいオブジェクトが存在する方向にカーソルが移動されてカーソル軌跡が指定されたとき、その追尾点またはカーソル位置に対する領域指定用のオフセット量を取得し、そのオフセット量に基づいて、ユーザ指定方向の所定の大きさの検出対象領域を生成する。
【０１５８】
より詳細には、例えば、図２８に示されるように、追尾点１８１を含む基準点１８２を基準として、水平方向に所定の画素間隔（図２８の例では１６画素毎）で１０のサンプル数、垂直方向に所定の画素間隔（図２８の例では８画素毎）で１０のサンプル数を有するような大きさの、ユーザ指定方向（いまの場合、左斜め上方向）をオフセットにした検出対象領域１８３が生成される。
【０１５９】
ここで、追尾点１８１に対する検出対象領域１８３の位置は、パラメータ制御部１７１から取得されたオフセット量により制御され、例えば、図２９に示されるように、追尾点１８１と基準点１８２が同じ位置に設定される場合や、図３０に示されるように、追尾点１８１を中心として検出対象領域１８３が生成される場合などがある。また、後述する領域推定部１７４により、検出対象領域１８３内に抽出条件を満たす特徴量が存在しなかった場合には、例えば、図３１に示されるように、基準点１８２−１を基準として生成された検出対象領域１８３−１の大きさを拡大し、新たな基準点１８２−２を基準として、水平方向に１４のサンプル数、垂直方向に１４のサンプル数を有する検出対象領域１８３−２を生成するようにすることも可能である。
【０１６０】
図２７の説明に戻る。特徴量算出部１７３は、検出対象領域生成部１７２で生成された検出対象領域内で、所定の画素数ずつ離れた位置の画素をサンプル点とし、そのサンプル点の特徴量を算出する。特徴量としては、例えば、ブロックマッチング方式で算出される動きベクトルなどがある。
【０１６１】
図２８乃至図３１の例においては、サンプル点が黒い丸で表されている。また、検出対象領域１８３内において、水平方向に１６画素毎、垂直方向に８画素毎の間隔でサンプル点が設定されている。
【０１６２】
図３２は、特徴量算出部１７３で算出された検出対象領域１８３内における各サンプル点の動きベクトルを模式的に示している。図中、追尾対象の動きベクトルが黒い丸と矢印で表され、背景の動きベクトルが白い丸と矢印で表されている。ここで、背景の動きベクトルは、例えば、図３３に示されるように、全画面に均等に配置される画素の動きベクトルの最頻値として算出される。すなわち、図３３において白い丸と矢印で表されている動きベクトルが最も頻度の高い動きとされ、その動きベクトルを有する画素が、背景の動きとされる。これに対し、黒い丸と矢印で表されている動きベクトルを有する画素が、追尾対象の動きとされる。
【０１６３】
図２７の説明に戻る。領域推定部１７４は、特徴量算出部１７３で算出された検出対象領域内における各サンプル点の特徴量としての動きベクトルのうち、所定の条件を満たす画素を抽出し、その画素で構成される領域を生成する。ここで所定の条件とは、背景動き以外の動きベクトルを有する画素である。
【０１６４】
図３４は、領域推定部１７４で生成された背景動き以外の動きベクトルを有する画素群で構成される領域１９１を模式的に示している。図中、追尾対象の動きベクトルが黒い丸と矢印で表され、背景の動きベクトルが白い丸と矢印で表されている。このように、領域推定部１７４では、追尾対象の動きベクトルを有する画素群で構成される領域１９１が生成される。
【０１６５】
また、領域推定部１７４は、生成した領域の重心位置を算出する。これにより、例えば、図３５に示されるように、領域１９１の重心位置２０１が算出される。さらに領域推定部１７４は、算出した重心位置２０１をユーザが意図する追尾点と推定し、推定結果としての追尾位置を表す位置情報をオブジェクト追尾部２３に出力する。これにより、オブジェクト追尾部２３により追尾処理が継続され、画像ディスプレイ２５には、例えば、図３６に示されるように、ユーザの意図する追尾点としての重心位置２０１を表すマーク重畳表示される。
【０１６６】
以上のように、動きベクトルの特徴量から、背景の動きベクトル以外の動きベクトルを有する画素、すなわち、追尾対象の動きベクトルを有する画素を抽出し、抽出した画素群で構成される領域の重心位置を求め、その重心位置を、ユーザが意図する追尾点として推定することが可能である。
【０１６７】
なお、特徴量としては、動きベクトルのほかに、色や輝度などがある。また領域推定部１７４で抽出される条件としては、例えば、追尾点１８１が持つ特徴量と異なる特徴量を有する画素としたり、ユーザが任意に指定する特徴量を有する画素としたり、あるいは、特徴量の信頼度なるものを算出し、その信頼度が閾値を満たす画素などとすることができる。
【０１６８】
信頼度の例としては、注目する画素を中心とする周辺画素において、注目画素の特徴量と同じ特徴量を有する画素が何画素あるかで判断する。例えば、注目画素を中心とする周囲８画素のうち、５画素以上が同じ特徴量を有するものであった場合、その注目画素の特徴量は信頼度があると判断される。
【０１６９】
さらに、抽出条件を満たすうちの最頻値や最頻値からｎ番目の特徴量を有する画素を抽出条件に設定することも可能である。例えば、図３５において、背景動きを予め求めなくても、特徴量の頻度を求め、最頻値から２番目の特徴量を有する画素を抽出することで、やはり領域１９１の重心位置を算出することができる。図３５の例では、最頻値の特徴量を有する画素が白い丸と矢印で表され、２番目の頻度の特徴量を有する画素が黒い丸と矢印で表され、最頻値の特徴量は背景の動きベクトルとされる。
【０１７０】
また、図３７に示されるように、２つのオブジェクト（図中、２台の自動車）が検出対象領域１８３に入っている場合、最頻値から３番目の特徴量を有する画素を抽出条件に設定することにより、小さいオブジェクトであっても、それを追尾対象として推定することができる。図３７の例では、最頻値の特徴量を有する画素が白い丸で表され、２番目の頻度の特徴量を有する画素が黒い丸で表され、３番目の頻度の特徴量を有する画素が白い三角で表されている。
【０１７１】
次に、図３８のフローチャートを参照して、オブジェクト位置推定部２２が実行する追尾位置推定処理について説明する。この処理は、ユーザにより指示入力部２９を介して所定の方向が指定されるか、あるいは、追尾させたいオブジェクトが存在する方向にカーソルが移動されてカーソル軌跡が指定されたとき開始される。
【０１７２】
検出対象領域生成部１７２は、ステップＳ１３１において、追尾点またはユーザにより指定されたカーソル位置を取得し、ステップＳ１３２において、取得した追尾点またはカーソル位置に対する領域指定用のオフセット量を取得する。
【０１７３】
ステップＳ１３３において、検出対象領域生成部１７２は、パラメータ制御部１７１から、検出対象領域の大きさを表すパラメータ、および検出対象領域内のサンプル点の画素間隔を表すパラメータを取得する。ステップＳ１３４において、検出対象領域生成部１７２は、ステップＳ１３３の処理で取得したパラメータに基づいて、検出対象領域を求める。例えば、図２８に示したように、水平方向に１６画素毎の間隔で１０のサンプル数、垂直方向に８画素毎の間隔で１０のサンプル数を有するような大きさの検出対象領域１８３が生成される。
【０１７４】
ステップＳ１３５において、特徴量算出部１７３は、ステップＳ１３４の処理で生成された検出対象領域１８３内のサンプル点の特徴量として動きベクトルを算出する。ステップＳ１３６において、特徴量算出部１７３は、検出対象領域１８３内の全てのサンプル点の特徴量を算出したか否かを判定し、まだ特徴量を算出していないサンプル点があると判定した場合、ステップＳ１３５に戻り、それ以降の処理を繰り返す。
【０１７５】
ステップＳ１３６において、検出対象領域１８３内の全てのサンプル点の特徴量を算出したと判定された場合、ステップＳ１３７に進み、領域推定部１７４は、条件を満たす特徴量を求める。ここでは、背景動き以外の動きベクトルが抽出され、抽出数が保持される。
【０１７６】
ステップＳ１３８において、領域推定部１７４は、条件を満たす特徴量を有する画素を抽出する。ここでは、背景動き以外の動きベクトルを有する画素が抽出される。
【０１７７】
ステップＳ１３９において、領域推定部１７４は、所定数調べたか否か、すなわち、ステップＳ１３７の処理で保持している抽出数だけ調べたか否か判定し、まだ所定数調べていないと判定した場合、ステップＳ１３８に戻り、それ以降の処理を繰り返す。
【０１７８】
ステップＳ１３９において、所定数調べたと判定された場合、ステップＳ１４０に進み、領域推定部１７４は、抽出した画素群で構成される領域を生成し、その領域の重心位置を算出する。例えば、図３５に示したように、抽出した画素群で構成される領域１９１が生成され、その領域１９１の重心位置２０１が算出される。
【０１７９】
ステップＳ１４１において、領域推定部１７４は、ステップＳ１４０の処理で算出した重心位置をユーザが意図する追尾点と推定し、推定結果としての追尾点をオブジェクト追尾部２３に出力する。
【０１８０】
このように、追尾処理が行われたにもかかわらず所望の追尾結果が得られていない場合、ユーザによる指定に基づいて、ユーザが意図する追尾位置をリアルタイムに推定することができる。これにより、オブジェクト追尾部２３は、オブジェクト位置推定部２２により推定された追尾点の追尾処理を継続的に行うことができるため、追尾点の指定や修正時の負荷が軽減し、より好適な追尾結果を得ることが可能となる。
【０１８１】
また、オブジェクト追尾部２３は、追尾結果としての追尾位置を表す位置情報を追尾位置補正部２４に出力する。これにより追尾位置補正部２４は、追尾位置を表す位置情報を、その追尾点が属するオブジェクトの重心位置になるように微調整することができる。
【０１８２】
次に、オブジェクト追尾部２３から出力される追尾結果を追尾位置補正部２４が微調整する例について説明する。
【０１８３】
例えば、図３９に示されるように、位置ｘ（ｔ）から位置ｘ'（ｔ＋１）へ、上述したようにしてユーザが意図する追尾点として推定された場合、推定後の位置ｘ'（ｔ＋１）が属しているオブジェクトの範囲２１１が算出され、そのオブジェクトの重心ｘ（ｔ＋１）へ追尾点が微調整される。その微調整結果が追尾位置補正部２４からオブジェクト追尾部２３に供給され、以後、微調整された追尾点ｘ（ｔ＋１）の位置から追尾処理が継続される。
【０１８４】
ここで、色という画素値（色情報）に基づいて追尾点が属するオブジェクトの範囲を求め、その重心を算出する方法について説明する。
【０１８５】
（１）まず、位置ｘ'（ｔ＋１）のＲＧＢ色（ｒ'，ｇ'，ｂ'）を算出する。なお、表色系はＲＧＢでなくてもよい。
（２）ＲＧＢ色が算出された位置ｘ'（ｔ＋１）の周辺画素について、位置ｘ'（ｔ＋１）の色に近い色を持つ画素を同じオブジェクトに属していると判断する。例えば、次式（６）で表されるΔｃが所定の値より小さい画素が位置ｘ'（ｔ＋１）と同じオブジェクトに属していると判断される。ｒ、ｇ、ｂは各周辺画素の色である。
【０１８６】
【数６】
2007272731.tif 000008
（３）位置ｘ'（ｔ＋１）と同じオブジェクトに属している画素の位置から、次式（７）に基づいて、オブジェクトの重心ｘ（ｔ＋１）を算出する。Ｘｉは、同じオブジェクトに属している各画素の位置であり、ｎは、同じオブジェクトに属している画素の総数である。
【０１８７】
【数７】
2007272731.tif 000009
【０１８８】
以上のようにして、色情報を用いる方法で追尾点が属するオブジェクトの範囲を求め、その重心位置を算出することにより、追尾点を、追尾点が属するオブジェクトの重心位置に微調整することが可能である。
【０１８９】
なお、このように色情報を用いる方法に限らず、例えば、動きベクトルや輝度値などをもとにしてオブジェクトの範囲を求め、その重心位置を算出するようにしてもよい。例えば、動きベクトルを用いる場合、位置ｘ'（ｔ＋１）の動きベクトルと同じまたは似ているベクトルを持つものを同じオブジェクトに属していると判断し、次のようにしてオブジェクトの範囲を求め、その重心を算出することができる。
【０１９０】
（１）動きベクトル検出
図４０に示されるように、追尾点２２１を中心とした領域２２２内で、サンプリング間隔（ｓｘ，ｓｙ）毎に動きベクトルを検出する。領域２２２の大きさは、サンプル数ｍ，ｎとして、ｓｘ・ｍ×ｓｙ・ｎとなる。動きベクトルの検出には、例えばブロックマッチング方式や勾配法が用いられる。
（２）動きベクトルの頻度分布算出
例えば、処理範囲内の動きの候補を−１６＜＝ｖｘ＜＝１６、−１６＜＝ｖｙ＜＝１６の整数値（ｖｘは水平動き、ｖｙは垂直動き）で表すとすると、３３（＝１６×２＋１）画素×３３画素＝１０８９個の箱、すなわち動きベクトルがとり得る値に対応する座標分の箱を用意し、あるサンプル点で（ｖｘ，ｖｙ）＝（２，２）のとき、（２，２）の箱に１を加算する。この処理を処理範囲内の全サンプル点に対して行うことで、動きベクトルの頻度分布を算出することができる。
（３）追尾対象のサンプル点抽出
図４１に示されるように、領域２２２内で多数を占める動き（図４１の例においては、左斜め下方向の動き）と類似する動きを示すサンプル点を追尾対象上の点として抽出する。
（４）サンプル点の重心算出
領域２２２内において追尾対象上のサンプル点であるか否かを表すフラグをflag（ｉ，ｊ）（１＜＝i＜＝ｍ，１＜＝j ＜＝n）として設定する。（３）で追尾対象上のサンプル点として抽出された場合、１に設定され、（３）で追尾対象上のサンプル点として抽出されていない場合、０に設定される。そして、サンプル点の重心Ｇ（ｘ，ｙ）は、次式（８）に基づいて、サンプル点Ｐ（ｘ，ｙ）として算出される。
【０１９１】
【数８】
2007272731.tif 000010
【０１９２】
以上のようにして、動きベクトルを用いる方法で追尾点が属するオブジェクトの範囲を求め、その重心位置を算出することも可能である。ユーザが意図する追尾点の推定に加え、微調整された先の追尾点は、外乱に対してロバスト性の高い、つまり追尾処理しやすいことを特徴としている。
【０１９３】
図４２は、追尾位置補正部２４により追尾点が微調整された後の画像ディスプレイ２５に表示される画像の例を示す図である。図４２においては、オブジェクト位置推定部２２によりユーザが意図する追尾点として推定された位置２２１から、追尾位置補正部２４により、その追尾点が属するオブジェクト（図４２の例の場合、自動車）の範囲が求められ、その重心位置２３１が算出され、そこに微調整されていることを示している。
【０１９４】
このように、追尾処理において、ユーザが意図する追尾点の推定に加え、追尾処理しやすい位置、つまり追尾対象の重心位置に微調整することができるため、より好適な追尾結果を得ることが可能となる。
【０１９５】
次に、図４３のフローチャートを参照して、図５のステップＳ１１の通常処理に続いて行われる、ステップＳ１２の例外処理の他の例について説明する。この処理は、基本的に、図１２の処理と同様の処理であり、図９のステップＳ２４において追尾点の動きを推定することが不可能と判定され、さらにステップＳ２８において追尾点を乗り換える乗り換え候補が選択できなかったと判定された場合に実行される。
【０１９６】
ステップＳ１５１乃至Ｓ１５５の処理は、上述した図１２のステップＳ５１乃至Ｓ５５の処理と同様であるため、その説明は簡略する。すなわち、ステップＳ１５１において、例外処理の初期化処理が実行され、ステップＳ１５２において、次のフレームの画像の入力が待機され、ステップＳ１５３において、テンプレート探索範囲内においてテンプレートマッチング処理が行われ、ステップＳ１５４において、通常処理への復帰が可能であるか否かが判定され、通常処理への復帰が可能であると判定された場合、図５のステップＳ１１の通常処理に戻され、通常処理への復帰が可能ではないと判定された場合、ステップＳ１５５において、継続判定処理が実行される。
【０１９７】
そして、ステップＳ１５６において、制御部５９は、ステップＳ１５５の継続判定処理による例外処理での追尾点の追尾が継続可能であるか否かの継続判定結果に基づいて（図１６のステップＳ７６，７８で設定されたフラグに基づいて）判定する。追尾点の追尾処理が継続可能であると判定された場合、処理はステップＳ５２に戻り、それ以降の処理が繰り返し実行される。すなわち、追尾点が再び出現するまで待機する処理が繰り返し実行される。
【０１９８】
これに対して、ステップＳ１５６において、例外処理での追尾点の追尾処理が継続可能ではないと判定された場合（図１６のステップＳ７５の処理で追尾点が消失した後の経過フレーム数が閾値THfr以上と判定されるか、または、ステップＳ７７の処理でシーンチェンジ数が閾値THsc以上と判定された場合）、ステップＳ１５７に進み、制御部５９は、追尾点決定部５７を制御し、保持しておいた追尾点を設定させる。その後、処理は図５のステップＳ１１の通常処理に戻る。
【０１９９】
このように、例外処理での追尾点の追尾が不可能になった場合には、保持しておいた追尾点を用いて再度通常処理に戻ることができるようにしたので、追尾処理を継続的に行うことが可能となる。
【０２００】
以上においては、ユーザインターフェースには依存せず、例えば、追尾位置指定ボタンが押下されるか、あるいは、カーソル移動が止められたときに追尾位置の推定が行われるようにすることも可能である。
【０２０１】
また以上においては、監視カメラシステムに適用した場合の例について説明したが、これに限らず、例えば、テレビジョン受像機など各種の画像処理装置に適応することが可能である。
【０２０２】
さらに以上においては、画像の処理単位をフレームとしたが、フィールドを処理単位とすることももちろん可能である。
【０２０３】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０２０４】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図１に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)，DVD(Digital Versatile Disc)を含む）、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア２８、または、プログラムが一時的もしくは永続的に格納されるハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０２０５】
なお、本明細書において、プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２０６】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０２０７】
【図１】本発明を適用した監視カメラシステムの構成例を示すブロック図である。
【図２】監視処理を説明するフローチャートである。
【図３】図１の監視カメラシステムにより表示される画像の例を示す図である。
【図４】図１のオブジェクト追尾部の構成例を示すブロック図である。
【図５】追尾処理を説明するフローチャート図である。
【図６】追尾対象が回転する場合の追尾を説明する図である。
【図７】オクルージョンが起きる場合の追尾を説明する図である。
【図８】シーンチェンジが起きる場合の追尾を説明する図である。
【図９】通常処理を説明するフローチャートである。
【図１０】通常処理の初期化処理を説明するフローチャートである。
【図１１】通常処理の初期化処理を説明する図である。
【図１２】例外処理を説明するフローチャートである。
【図１３】例外処理の初期化処理を説明するフローチャートである。
【図１４】テンプレートの選択を説明する図である。
【図１５】探索範囲の設定を説明する図である。
【図１６】継続判定処理を説明するフローチャートである。
【図１７】動き推定部の構成例を示すブロック図である。
【図１８】動き推定処理を説明するフローチャートである。
【図１９】アクティビティの算出を説明する図である。
【図２０】評価値とアクティビティの関係を説明する図である。
【図２１】統合処理を説明するフローチャートである。
【図２２】背景動き推定部の構成例を示すブロック図である。
【図２３】背景動き推定処理を説明するフローチャートである。
【図２４】シーンチェンジ検出部の構成例を示すブロック図である。
【図２５】シーンチェンジ検出処理を説明するフローチャートである。
【図２６】追尾位置の推定を説明する図である。
【図２７】図１のオブジェクト位置推定部の機能的構成例を示すブロック図である。
【図２８】検出対象領域の例を示す図である。
【図２９】検出対象領域の他の例を示す図である。
【図３０】検出対象領域の他の例を示す図である。
【図３１】検出対象領域の大きさを拡大した例を示す図である。
【図３２】検出対象領域内の各サンプル点の動きベクトルを模式的に示す図である。
【図３３】背景の動きを説明する図である。
【図３４】背景動き以外の動きベクトルを有する画素で構成される領域を模式的に示す図である。
【図３５】図３４の領域の重心位置を算出する処理を説明する図である。
【図３６】追尾処理後の出力画像の例を示す図である。
【図３７】領域の重心位置を算出する他の処理を説明する図である。
【図３８】追尾位置推定処理を説明するフローチャートである。
【図３９】追尾点を微調整する例を説明する図である。
【図４０】動きベクトル検出処理を説明する図である。
【図４１】追尾対象のサンプル点抽出処理を説明する図である。
【図４２】追尾点微調整処理を説明する図である。
【図４３】他の例の例外処理を説明するフローチャートである。
【符号の説明】
【０２０８】
１  監視カメラシステム，  ２１  撮像部，  ２２  オブジェクト位置推定部，  ２３  オブジェクト追尾部，  ２４  追尾位置補正部，  ５１  テンプレートマッチング部，  ５２  動き推定部，  ５３  シーンチェンジ検出部，  ５４  背景動き推定部，  ５５  領域推定関連処理部，  ５６  乗り換え候補保持部，  ５７  追尾点決定部，  ５８  テンプレート保持部，  １７１  パラメータ制御部，  １７２  検出対象領域生成部，  １７３  特徴量算出部，  １７４  領域推定部
【図１】
2007272731.tif 000011
【図２】
2007272731.tif 000012
【図３】
2007272731.tif 000013
【図４】
2007272731.tif 000014
【図５】
2007272731.tif 000015
【図６】
2007272731.tif 000016
【図７】
2007272731.tif 000017
【図８】
2007272731.tif 000018
【図９】
2007272731.tif 000019
【図１０】
2007272731.tif 000020
【図１１】
2007272731.tif 000021
【図１２】
2007272731.tif 000022
【図１３】
2007272731.tif 000023
【図１４】
2007272731.tif 000024
【図１５】
2007272731.tif 000025
【図１６】
2007272731.tif 000026
【図１７】
2007272731.tif 000027
【図１８】
2007272731.tif 000028
【図１９】
2007272731.tif 000029
【図２０】
2007272731.tif 000030
【図２１】
2007272731.tif 000031
【図２２】
2007272731.tif 000032
【図２３】
2007272731.tif 000033
【図２４】
2007272731.tif 000034
【図２５】
2007272731.tif 000035
【図２６】
2007272731.tif 000036
【図２７】
2007272731.tif 000037
【図２８】
2007272731.tif 000038
【図２９】
2007272731.tif 000039
【図３０】
2007272731.tif 000040
【図３１】
2007272731.tif 000041
【図３２】
2007272731.tif 000042
【図３３】
2007272731.tif 000043
【図３４】
2007272731.tif 000044
【図３５】
2007272731.tif 000045
【図３６】
2007272731.tif 000046
【図３７】
2007272731.tif 000047
【図３８】
2007272731.tif 000048
【図３９】
2007272731.tif 000049
【図４０】
2007272731.tif 000050
【図４１】
2007272731.tif 000051
【図４２】
2007272731.tif 000052
【図４３】
2007272731.tif 000053