(57)【特許請求の範囲】
【請求項１】
動画像上のオブジェクトに設けられた追尾点の動きベクトルを検出する検出手段と、
検出された前記動きベクトルの信頼性を示す信頼性パラメータを算出する算出手段と、
算出された前記信頼性パラメータと境界との比較結果に応じて、検出された前記動きベクトルの採否を判定する判定手段と、
算出された前記信頼性パラメータを蓄積する蓄積手段と、
蓄積された前記信頼性パラメータに基づいて前記境界を変更する変更手段と
を含み、
前記蓄積手段は、前記追尾点の乗換え処理が発生し、かつ、乗り換え元の追尾点に対応する動きベクトルと乗り換え先の追尾点に対応する動きベクトルとの差が所定の範囲内である場合、前記乗り換え元の追尾点に対応する動きベクトルの信頼性を示す信頼性パラメータを蓄積する
画像信号処理装置。
【請求項２】
前記変更手段は、前記追尾点の位置の補正を指示するユーザからの操作に対応して、蓄積された前記信頼性パラメータに基づいて前記境界を変更する
請求項１に記載の画像信号処理装置。
【請求項３】
前記蓄積手段は、前記追尾点の位置の補正を指示するユーザからの操作に対応し、蓄積された前記信頼性パラメータのうち、前記操作のタイミングまでの所定の期間に蓄積された前記信頼性パラメータを除外し、
前記変更手段は、前記操作のタイミングまでの所定の期間に蓄積された前記信頼性パラメータが除外された後、蓄積された前記信頼性パラメータに基づいて前記境界を変更する
請求項２に記載の画像信号処理装置。
【請求項４】
前記変更手段は、前記信頼性パラメータが所定の数だけ蓄積されたことに対応して、蓄積された前記信頼性パラメータに基づいて前記境界を変更する
請求項１に記載の画像信号処理装置。
【請求項５】
前記算出手段は、検出された前記動きベクトルの信頼性を示す信頼性パラメータとして、前記追尾点を含む所定領域の２画像間の一致度を示す評価値、および前記追尾点を含む所定領域の画素の変動を示すブロックアクティビティを算出し、
前記蓄積手段は、算出された前記評価値および前記ブロックアクティビティを前記信頼性パラメータとして蓄積する
請求項１に記載の画像信号処理装置。
【請求項６】
前記蓄積手段は、前記ブロックアクティビティの値が等しい前記信頼性パラメータを蓄積する場合、前記評価値が大きい方の前記信頼性パラメータだけを蓄積する
請求項５に記載の画像信号処理装置。
【請求項７】
動画像上のオブジェクトに設けられた追尾点の動きベクトルを検出し、
検出された前記動きベクトルの信頼性を示す信頼性パラメータを算出し、
算出された前記信頼性パラメータと境界との比較結果に応じて、検出された前記動きベクトルの採否を判定し、
算出された前記信頼性パラメータを蓄積し、
蓄積された前記信頼性パラメータに基づいて前記境界を変更する
ステップを含み、
前記信頼性パラメータを蓄積する処理では、前記追尾点の乗換え処理が発生し、かつ、乗り換え元の追尾点に対応する動きベクトルと乗り換え先の追尾点に対応する動きベクトルとの差が所定の範囲内である場合、前記乗り換え元の追尾点に対応する動きベクトルの信頼性を示す信頼性パラメータを蓄積する
画像信号処理方法。
【請求項８】
動画像上のオブジェクトに設けられた追尾点の動きベクトルを検出し、
検出された前記動きベクトルの信頼性を示す信頼性パラメータを算出し、
算出された前記信頼性パラメータと境界との比較結果に応じて、検出された前記動きベクトルの採否を判定し、
算出された前記信頼性パラメータを蓄積し、
蓄積された前記信頼性パラメータに基づいて前記境界を変更する
ステップを含み、
前記信頼性パラメータを蓄積する処理では、前記追尾点の乗換え処理が発生し、かつ、乗り換え元の追尾点に対応する動きベクトルと乗り換え先の追尾点に対応する動きベクトルとの差が所定の範囲内である場合、前記乗り換え元の追尾点に対応する動きベクトルの信頼性を示す信頼性パラメータを蓄積する
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像信号処理装置、画像信号処理方法、およびプログラムに関し、特に、画像内に存在するオブジェクトを精度よく追尾できるようにした画像信号処理装置、画像信号処理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、動画像として表示される画像の中で、移動するオブジェクトを検出し、検出したオブジェクトを追尾する方法が数多く提案されている。
【０００３】
しかしながら、既存の当該方法では、画像のノイズや長時間のオクルージョンなどの外乱に起因して、オブジェクトを追尾できなくなってしまうことがある。
【０００４】
そのような不都合に対処するため、例えば、画像中を移動するオブジェクトを検出して追尾し、所望の追尾結果が得られていないとユーザが判断した場合に、ユーザが手動で新たなオブジェクトを指定する方法が提案されている（例えば、特許文献１参照）。
【０００５】
なお、画像のオブジェクトを追尾する処理では、オブジェクトの正確な動きベクトルを検出する必要がある。検出した動きベクトルの正確さを判定する方法として、動きベクトルの正確さを示す指標となる評価値（相関値演算結果）と、画像の粗さや空間的相関性などを示す値であるアクティビティとを所定の閾値（理想的な動画像に基づいて予め設定されている閾値）と比較する方法が知られている。
【０００６】
【特許文献１】特開２００７−２７２７３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、ビデオカメラなどの撮影機器やテレビジョン受像機やパーソナルコンピュータなどの表示デバイスの進化に伴い、数多くの動画像フォーマットが存在している。例えば、ユーザがビデオカメラを用いて撮影して編集した動画像、テレビジョン放送として放送される動画像、インタネットなどのネットワークを介して通信される動画像、所定の画像処理により解像度が変換された（例えば、アップコンバートされた）動画像、圧縮符号化と復号を繰り返した動画像など多種多様である。
【０００８】
従って、ユーザが視聴する動画像の中には、上述したようなオブジェクトを追尾する処理の対象として想定外の動画像フォーマットのものがあり、想定外の動画像フォーマットの画像を処理対象として、オブジェクトを追尾する処理を実行した場合、検出される動きベクトルの正確さを判定するに際し、予め設定されている閾値と比較しても、適切な判定結果を得られないことがあった。
【０００９】
この場合、正確な動きベクトルを得られないことがあり、オブジェクトの追尾処理を高い精度で実行することができなかった。
【００１０】
本発明はこのような状況に鑑みてなされたものであり、正確な動きベクトルを取得することにより、オブジェクトの追尾処理を高い精度で実行できるようにするものである。
【課題を解決するための手段】
【００１１】
本発明の一側面である画像信号処理装置は、動画像上のオブジェクトに設けられた追尾点の動きベクトルを検出する検出手段と、検出された前記動きベクトルの信頼性を示す信頼性パラメータを算出する算出手段と、算出された前記信頼性パラメータと境界との比較結果に応じて、検出された前記動きベクトルの採否を判定する判定手段と、算出された前記信頼性パラメータを蓄積する蓄積手段と、蓄積された前記信頼性パラメータに基づいて前記境界を変更する変更手段とを含み、前記蓄積手段は、前記追尾点の乗換え処理が発生し、かつ、乗り換え元の追尾点に対応する動きベクトルと乗り換え先の追尾点に対応する動きベクトルとの差が所定の範囲内である場合、前記乗り換え元の追尾点に対応する動きベクトルの信頼性を示す信頼性パラメータを蓄積する。
【００１３】
前記変更手段は、前記追尾点の位置の補正を指示するユーザからの操作に対応して、蓄積された前記信頼性パラメータに基づいて前記境界を変更するようにすることができる。
【００１４】
前記蓄積手段は、前記追尾点の位置の補正を指示するユーザからの操作に対応し、蓄積された前記信頼性パラメータのうち、前記操作のタイミングまでの所定の期間に蓄積された前記信頼性パラメータを除外し、前記変更手段は、前記操作のタイミングまでの所定の期間に蓄積された前記信頼性パラメータが除外された後、蓄積された前記信頼性パラメータに基づいて前記境界を変更するようにすることができる。
【００１５】
前記変更手段は、前記信頼性パラメータが所定の数だけ蓄積されたことに対応して、蓄積された前記信頼性パラメータに基づいて前記境界を変更するようにすることができる。
【００１６】
前記算出手段は、検出された前記動きベクトルの信頼性を示す信頼性パラメータとして、前記追尾点を含む所定領域の２画像間の一致度を示す評価値、および前記追尾点を含む所定領域の画素の変動を示すブロックアクティビティを算出し、前記蓄積手段は、算出された前記評価値および前記ブロックアクティビティを前記信頼性パラメータとして蓄積するようにすることができる。
【００１７】
前記蓄積手段は、前記ブロックアクティビティの値が等しい前記信頼性パラメータを蓄積する場合、前記評価値が大きい方の前記信頼性パラメータだけを蓄積するようにすることができる。
【００１８】
本発明の一側面である画像信号処理方法は、動画像上のオブジェクトに設けられた追尾点の動きベクトルを検出し、検出された前記動きベクトルの信頼性を示す信頼性パラメータを算出し、算出された前記信頼性パラメータと境界との比較結果に応じて、検出された前記動きベクトルの採否を判定し、算出された前記信頼性パラメータを蓄積し、蓄積された前記信頼性パラメータに基づいて前記境界を変更するステップを含み、前記信頼性パラメータを蓄積する処理では、前記追尾点の乗換え処理が発生し、かつ、乗り換え元の追尾点に対応する動きベクトルと乗り換え先の追尾点に対応する動きベクトルとの差が所定の範囲内である場合、前記乗り換え元の追尾点に対応する動きベクトルの信頼性を示す信頼性パラメータを蓄積する。
【００１９】
本発明の一側面であるプログラムは、動画像上のオブジェクトに設けられた追尾点の動きベクトルを検出し、検出された前記動きベクトルの信頼性を示す信頼性パラメータを算出し、算出された前記信頼性パラメータと境界との比較結果に応じて、検出された前記動きベクトルの採否を判定し、算出された前記信頼性パラメータを蓄積し、蓄積された前記信頼性パラメータに基づいて前記境界を変更するステップを含み、前記信頼性パラメータを蓄積する処理では、前記追尾点の乗換え処理が発生し、かつ、乗り換え元の追尾点に対応する動きベクトルと乗り換え先の追尾点に対応する動きベクトルとの差が所定の範囲内である場合、前記乗り換え元の追尾点に対応する動きベクトルの信頼性を示す信頼性パラメータを蓄積する処理をコンピュータに実行させる。
【００２０】
本発明の一側面においては、動画像上のオブジェクトに設けられた追尾点の動きベクトルが検出され、検出された動きベクトルの信頼性を示す信頼性パラメータが算出され、算出された信頼性パラメータと境界との比較結果に応じて、検出された動きベクトルの採否が判定される。また、算出された信頼性パラメータが蓄積され、蓄積された信頼性パラメータに基づいて境界が変更される。なお、信頼性パラメータを蓄積する処理では、追尾点の乗換え処理が発生し、かつ、乗り換え元の追尾点に対応する動きベクトルと乗り換え先の追尾点に対応する動きベクトルとの差が所定の範囲内である場合、乗り換え元の追尾点に対応する動きベクトルの信頼性を示す信頼性パラメータが蓄積される。
【発明の効果】
【００２１】
本発明の一側面によれば、動きベクトルの正確さを正確に判定することができる。
【００２２】
また、本発明の一側面によれば、オブジェクトの追尾処理を高い精度で実行することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００２４】
図１は、本発明の一実施の形態である監視カメラシステムの構成例を示している。
【００２５】
この監視カメラシステム１は、ビデオカメラ等などより成る撮像部２１、撮像された画像内から追尾対象とするオブジェクトを検出する追尾対象検出部２２、検出されたオブジェクトの追尾点を追尾するオブジェクト追尾部２３、ユーザの指示に従って追尾点を変更する追尾位置補正部２４、撮像された画像などを表示する画像ディスプレイ２５、撮像部２１を駆動して撮像方向を変更させるカメラ駆動部２６、監視カメラシステム１の全体を制御する制御部２７、制御用プログラムが格納されたリムーバブルメディア２８、およびユーザの操作を受け付ける指示入力部２９から構成される。
【００２６】
撮像部２１は、例えば、CCD(Charge Coupled Device)，CMOS(Complementary Metal Oxide Semiconductor)センサなどの撮像素子を内蔵したビデオカメラ等よりなり、撮像結果として得られる画像信号を後段に供給する。追尾対象検出部２２は、撮像部２１より供給された画像信号の画像（以下、単に画像を略記する）から追尾対象となるオブジェクトを検出し、オブジェクト上に設定した追尾点の位置を検出結果としてオブジェクト追尾部２３に通知する。
【００２７】
オブジェクト追尾部２３は、撮像部２１より供給された画像の中の、追尾対象検出部２２により通知された追尾点を追尾するように動作する。またオブジェクト追尾部２３は、追尾結果を追尾位置補正部２４に出力するとともに、追尾結果に基づいて、移動したオブジェクトを撮像できるようにカメラ駆動部２６を制御する。追尾位置補正部２４は、指示入力部２９を介してユーザから追尾位置の補正が指示された場合、オブジェクト追尾部２３からの追尾結果にユーザからの補正値を反映し、その補正結果を画像ディスプレイ２５に出力するとともに、オブジェクト追尾部２３に補正結果を供給する。これにより、オブジェクト追尾部２３は、補正された追尾点を次のフレームから追尾するように動作することができる。カメラ駆動部２６は、オブジェクト追尾部２３からの制御に基づいて、撮像部２１がオブジェクト（の追尾点）を画像に含めて撮影するように撮像部２１を駆動する。
【００２８】
制御部２７は、例えば、マイクロコンピュータなどによりなり、リムーバブルメディア２８に格納された制御用プログラムを実行することにより監視カメラシステム１の各部を制御する。指示入力部２９は、各種のボタン、スイッチ、あるいは赤外線や電波を用いたリモートコントローラなどにより構成され、ユーザからの指示に対応する信号を制御部２７に通知する。
【００２９】
次に、図１に示した監視カメラシステムによる監視処理について、図２のフローチャートを参照して説明する。この監視処理は、撮像部２１により監視する領域が撮像され、撮像結果として得られた画像信号が後段に供給されたときに開始される。
【００３０】
ステップＳ１において、追尾対象検出部２２は、撮像部２１から供給された画像から追尾対象を検出する処理を実行する。具体的には、例えば、画像内に移動する物体が存在する場合、その移動する物体を追尾対象として検出するとともに、検出した追尾対象の中に追尾点（最も輝度の高い点、あるいは追尾対象の中心の点など）を設定して、追尾点の位置を検出結果としてオブジェクト追尾部２３に出力する。なお、追尾対象および追尾点は、ユーザが指示入力部２９を介して所定の位置を指定して設定するようにすることもできる。
【００３１】
ステップＳ２において、オブジェクト追尾部２３は、ステップＳ１の処理で検出された追尾点を追尾する追尾処理（図５を参照して後述）を実行する。この追尾処理により、撮像部２１により撮像された画像の中の追尾対象となるオブジェクト（例えば、人、動物、自動車など）上に設定された追尾点が追尾され、追尾結果が制御部２７に出力されるとともに、追尾位置を表す位置情報が追尾位置補正部２４に出力される。
【００３２】
ステップＳ３において、制御部２７は、ステップＳ２の処理による追尾結果に基づいて、画像ディスプレイ２５に、撮像部２１により撮像された画像に追尾位置を表すマークなどを重畳して表示させる。
【００３３】
ステップＳ４において、オブジェクト追尾部２３は、ステップＳ２の処理による追尾結果に基づいて、オブジェクトの移動を検出し、移動したオブジェクトを撮像できるようにカメラを駆動させるカメラ駆動信号を生成し、カメラ駆動部２６に出力する。ステップＳ５において、カメラ駆動部２６は、オブジェクト追尾部２３からのカメラ駆動信号に基づいて撮像部２１を駆動する。これにより撮像部２１は、追尾点が画面から外れてしまうことがないようにカメラをパンまたはチルトする。
【００３４】
ステップＳ６において、制御部２７は、例えば、指示入力部２９を介したユーザからの終了指示の有無に基づき、実行中の監視処理を終了するか否かを判定する。ここで、ユーザからの終了指示がなく監視処理を終了しないと判定された場合、ステップＳ１に戻り、それ以降の処理が繰り返される。そして、ステップＳ６において、ユーザからの終了指示があり監視処理を終了すると判定された場合、制御部２７は監視処理を終了する。以上で、監視処理の説明を終了する。
【００３５】
次に、図３は、監視処理が実行されているときに画像ディスプレイ２５に表示される画像の表示例を時系列に示している。
【００３６】
すなわち、同図Ａ乃至Ｃは、図中左方向に走って移動する人が、オブジェクト４１として検出された例であり、オブジェクト４１上に設定された追尾点４１Ａが追尾されている。
【００３７】
次に、図１のオブジェクト追尾部２３の詳細な構成例について、図４を参照して説明する。
【００３８】
オブジェクト追尾部２３は、テンプレートマッチング部５１、動き推定部５２、シーンチェンジ検出部５３、背景動き推定部５４、領域推定関連処理部５５、乗り換え候補保持部５６、追尾点決定部５７、テンプレート保持部５８、基準線変更部５９、および制御部６０から構成される。
【００３９】
テンプレートマッチング部５１は、前段の撮像部２１から入力される画像（以下、入力画像と称する）と、テンプレート保持部５８に保持されているテンプレート画像のマッチング処理を行う。
【００４０】
動き推定部５２は、入力画像の動きを推定し、推定の結果得られた動きベクトルの採否を、その指標となる評価値およびブロックアクティビティと基準線１３３（図２０を参照して後述する）とを比較することによって判定し、動きベクトルとその動きベクトルの採否を示す情報（以下、採否情報と称する）を、シーンチェンジ検出部５３、背景動き推定部５４、領域推定関連処理部５５、および追尾点決定部５７に出力する。また、動き推定部５２は、入力画像の動きの推定結果として得られた動きベクトルと、その動きベクトルの採否判定に指標となった評価値およびブロックアクティビティを、基準線変更部５９に供給する。
【００４１】
シーンチェンジ検出部５３は、動き推定部５２より供給された動きベクトルとその採否情報に基づいてシーンチェンジを検出し、検出結果を示すシーンチェンジフラグを設定する。背景動き推定部５４は、動き推定部５２より供給された動きベクトルとその採否情報に基づいて背景動きを推定する処理を実行し、推定結果を領域推定関連処理部５５に供給する。
【００４２】
領域推定関連処理部５５は、動き推定部５２より供給された動きベクトルとその採否情報、背景動き推定部５４より供給された背景動き、および追尾点決定部５７より供給された追尾点情報に基づいて、領域推定処理を行う。また領域推定関連処理部５５は、入力された各情報に基づいて乗り換え候補を生成し、乗り換え候補保持部５６に供給して保持させる。さらに領域推定関連処理部５５は、入力画像に基づいてテンプレートを作成し、テンプレート保持部５８に供給して保持させる。
【００４３】
追尾点決定部５７は、動き推定部５２より供給された動きベクトルとその採否情報、および、乗り換え候補保持部５６より供給された乗り換え候補に基づいて追尾点を決定し、決定した追尾点の位置を示す追尾点情報を動き推定部５２および領域推定関連処理部５５に出力する。また、追尾点決定部５７は、追尾点の乗換えが発生した場合、その旨を基準線変更部５９に通知する。
【００４４】
基準線変更部５９は、動き推定部５２より供給された動きベクトルとその採否判定の指標となった評価値およびブロックアクティビティ、追尾点決定部５７からの追尾点の乗換え発生の通知、並びに制御部２７からのユーザによる追尾点の位置補正指示の発生の通知に基づき、動き推定部５２において推定の結果得られる動きベクトルの採否判定に用いられる基準線を変更して、動き推定部５２に通知する。
【００４５】
制御部６０は、追尾対象検出部２２から出力された追尾点の情報に基づいて、テンプレートマッチング部５１乃至テンプレート保持部５８の各部を制御して、検出された追尾対象を追尾させるとともに、画像ディスプレイ２５に表示される画面の中に、追尾点が表示されるようにカメラ駆動部２６に制御信号を出力し、撮像部２１の駆動を制御する。これにより、追尾点が画面の外に出ないように制御される。また制御部６０は、追尾点の画面上での位置の情報などの追尾結果を、追尾位置補正部２４および制御部２７などに出力する。
【００４６】
次に、オブジェクト追尾部２３による追尾処理（図２のステップＳ２に相当する）について、図５のフローチャートを参照して説明する。
【００４７】
追尾処理では、通常処理と例外処理とが交互に実行される。すなわち、ステップＳ１１で通常処理（図９を参照して後述する）が行なわれて、追尾対象検出部２２により検出された追尾点が追尾される。そして、通常処理において追尾点の追尾ができなくなったとき、ステップＳ１２において、例外処理（図１２を参照して後述する）が行なわれる。
【００４８】
そして、この例外処理により、追尾点が画像から見えなくなったとき、テンプレートマッチングにより通常処理への復帰処理が実行される。また、例外処理によって追尾処理を継続することができなくなった、すなわち、通常処理へ復帰することができなくなったと判定された場合には処理が終了されるが、テンプレートマッチングによる復帰処理の結果、通常処理への復帰が可能と判定された場合には、処理は再びステップＳ１１に戻る。このようにして、ステップＳ１１の通常処理とステップＳ１２の例外処理が、フレーム毎に順次繰り返し実行される。
【００４９】
このように、追尾処理では、通常処理と例外処理が交互に実行されるので、図６乃至図８に示される画像の表示例のように、オブジェクトが回転したり、オクルージョンが発生したり、シーンチェンジが発生する等、追尾点が一時的に見えなくなった場合においても、追尾点を追尾することが可能となる。
【００５０】
図６の表示例では、同図Ａに示すフレームｎ−１において、追尾対象のオブジェクトとしての人の顔７４が表示されており、この人の顔７４は、右目７２と左目７３を有している。そして、例えば右目７２（正確には、その中の１つの画素）が追尾点７１として設定されたとする。
【００５１】
同図Ｂに示す次のフレームｎにおいて、追尾対象としての人が図中左方向に移動しており、同図Ｃに示すさらに次のフレームｎ＋１においては、人の顔７４が時計方向に回動している。その結果、今まで見えていた追尾点である右目７２が表示されなくなり、追尾ができなくなる。そこで、上述した図５のステップＳ１１の通常処理においては、右目７２と同一のオブジェクト（顔７４）上の左目７３が新たな追尾点として選択され、追尾点が左目７３に乗り換えられる。これにより追尾が可能となる。
【００５２】
図７の表示例では、同図Ａに示すフレームｎ−１において、追尾対象のオブジェクトとしての人の顔７４の図中左側からボール８１が移動してきており、同図Ｂに示す次のフレームｎにおいて、ボール８１がちょうど顔７４を覆う状態となっている。この状態においては、追尾点７１として指定されていた右目７２を含む顔７４が表示されていない。このようなオクルージョンが発生すると、追尾点７１に代えるための乗り換え点もなくなるので、これ以後、追尾点を追尾することが困難になる。
【００５３】
このような場合にテンプレートマッチングが行なわれる。すなわち、追尾点７１としての右目７２を含むフレームｎ−１（実際には時間的にもっと前のフレーム）の画像がテンプレートとして予め保存され、ボール８１がさらに右側に移動し、同図Ｃに示すフレームｎ＋１において、追尾点７１として指定された右目７２が再び現れると、上述した図５のステップＳ１２の例外処理により、追尾点７１としての右目７２が再び表示されたことがテンプレートに基づいて確認され、右目７２が再び追尾点７１として追尾されることになる。
【００５４】
図８の表示例では、同図Ａに示すフレームｎ−１において、追尾対象のオブジェクトとしての人の顔７４が表示されているが、同図Ｂに示す次のフレームｎにおいて、人の顔７４が消え、自動車９１が画面全体に表示されている。この場合、シーンチェンジが起きたことになる。このようにシーンチェンジが起きて追尾点７１が画像から存在しなくなっても、同図Ｃに示すフレームｎ＋１において、再び追尾点７１である右目７２が表示されると、上述した図５のステップＳ１２の例外処理により、追尾点７１としての右目７２が再び出現したことがテンプレートに基づいて確認され、この右目７２を再び追尾点７１として追尾することが可能となる。
【００５５】
次に、図５のステップＳ１１の通常処理について、図９のフローチャートを参照して詳述する。
【００５６】
ステップＳ２１において、追尾点決定部５７は、通常処理の初期化処理（図１０を参照して詳述する）を実行する。この初期化処理により追尾点を基準とする領域推定範囲が設定される。この領域推定範囲は、追尾点と同一の対象物（例えば、追尾点が人の目である場合、目と同様の動きをする剛体としての人の顔、または人の体など）に属する点の範囲を推定する際に参照する範囲である。乗り換え点は、この領域推定範囲の中の点から選択される。
【００５７】
ステップＳ２２において、制御部６０は、次のフレームの画像の入力を待機するように各部を制御する。ステップＳ２３において、動き推定部５２は、追尾点の動きを推定する。すなわち、追尾点（例えば、ユーザにより指定される）を含むフレーム（以下、前フレームと称する）より時間的に後のフレーム（以下、後フレームと称する）をステップＳ２２の処理で取り込むことにより、連続する２フレームの画像が得られたことになるので、ステップＳ２３において、前フレームの追尾点に対応する後フレームの追尾点の位置が特定されることにより、追尾点の動きが推定される。
【００５８】
なお、時間的に前または後とは、入力の順番や処理の順番をいう。通常、撮像の順番に各フレームの画像が入力されるので、その場合、より時間的に前に撮像されたフレームが前フレームとなるが、時間的に後に撮像されたフレームが先に処理される場合には、時間的に後に撮像されたフレームが前フレームとなる。
【００５９】
ステップＳ２４において、動き推定部５２は、ステップＳ２３の処理の結果、追尾点が推定可能であったか否かを判定する。追尾点が推定可能であったか否かは、例えば、動き推定部５２が生成、出力する動きベクトルの採否に基づいて判定される。具体的には、動きベクトルが採用できるものであれば推定が可能であると判定され、動きベクトルが不採用であれば推定が不可能であると判定される。動きベクトルの採否については、図２１を参照して後述する。
【００６０】
なお、ステップＳ２４では、追尾点での動き推定結果と追尾点の近傍の点での動き推定結果が、多数を占める動きと一致する場合には推定可能、一致しない場合には推定不可能と判定するようにすることも可能である。
【００６１】
ステップＳ２４において、追尾点の動きが推定可能であると判定された場合、つまり、追尾点が同一対象物上の対応する点上に正しく設定されている可能性が比較的高い場合、ステップＳ２５に進む。より具体的には、図６の例において、前フレームで右目７２が追尾点７１として指定され、後フレームでも右目７２が正しく追尾されている可能性が比較的高い場合には追尾点の動きが推定可能であると判定される。
【００６２】
ステップＳ２５において、追尾点決定部５７は、ステップＳ２３の処理で得られた推定動き（いわゆる動きベクトル）の分だけ追尾点をシフトする。これにより、前フレームの追尾点の追尾後の後フレームにおける追尾の位置が決定されることになる。
【００６３】
ステップＳ２５の処理の後、ステップＳ２６において、領域推定関連処理が実行される。この領域推定関連処理には、本出願人が先に提案している特開２００５−３０３９８３号公報に開示されている方法を用いることができる。
【００６４】
ステップＳ２６の領域推定関連処理により、ステップＳ２１の通常処理の初期化処理で指定された領域推定範囲が更新される。また追尾対象のオブジェクトが回転するなどして、追尾点が表示されない状態になった場合に、追尾点を乗り換えるべき点としての乗り換え点としての候補（乗り換え候補）が、まだ追尾が可能な状態において予め抽出され、乗り換え候補保持部５６で保持される。さらに乗り換え候補への乗り換えもできなくなった場合、追尾は一旦中断されるが、追尾点が再び出現することで再び追尾が可能になったことを確認するためのテンプレートが予め作成され、テンプレート保持部５８で保持される。
【００６５】
ステップＳ２６の領域推定関連処理が終了した後、処理はステップＳ２２に戻り、それ以降の処理が繰り返される。
【００６６】
ここまで説明したように、追尾点の動きが推定可能である限り、ステップＳ２２乃至ステップＳ２６の処理がフレーム毎に繰り返し実行されて、オブジェクト（の追尾点）の追尾が行われることになる。
【００６７】
これに対して、ステップＳ２４において、追尾点の動きが推定不可能であると判定された場合、すなわち、上述したように、例えば動きベクトルが不採用であるような場合には、処理はステップＳ２７に進む。
【００６８】
ステップＳ２７において、追尾点決定部５７は、ステップＳ２６の領域推定関連処理で生成された乗り換え候補が乗り換え候補保持部５６に保持されているので、乗り換え候補のうち、元の追尾点との距離が最短の乗り換え候補を１つ選択する。そして、ステップＳ２８において、追尾点決定部５７は、ステップＳ２７の処理で乗り換え候補１を１つ選択できたか否かを判定し、乗り換え候補を１つ選択できた場合、処理をステップＳ２９に進める。ステップＳ２９において、追尾点決定部５７は、追尾点をステップＳ２７の処理で１つ選択した乗り換え候補に乗り換える（変更する）。これにより、乗り換え候補の点が新たな追尾点として設定される。さらに、追尾点決定部５７は、乗換えが発生したことを基準線変更部５９に通知する。
【００６９】
ステップＳ２９の処理の後、処理はステップＳ２３に戻り、乗り換え候補の中から選ばれた変更後の新たな追尾点の動きを推定する処理が実行される。そして、ステップＳ２４において新たな追尾点の動きが推定可能であるか否かが再び判定され、推定可能であれば、ステップＳ２５において追尾点を推定動き分だけシフトする処理が行われ、ステップＳ２６において領域推定関連処理が実行される。その後、処理は再びステップＳ２２に戻り、それ以降の処理が繰り返される。
【００７０】
その後、ステップＳ２４において、変更後の新たな追尾点の動きも推定不可能であると判定された場合には、再び処理はステップＳ２７に進められ、乗り換え候補の中から、最初の追尾点との距離が２番目に短い乗り換え候補が選択され、ステップＳ２９において、その乗り換え候補が新たな追尾点として設定される。その新たな追尾点について、再びステップＳ２３以降の処理が繰り返される。
【００７１】
なお、ステップＳ２７において、乗り換え候補保持部５６で保持されている全ての乗り換え候補を新たな追尾点としても、追尾点の動きを推定することができなかった場合には、ステップＳ２８において、乗り換え候補が選択できなかったと判定されて、この通常処理は終了される。そして、処理は図５のステップＳ１２の例外処理に進められることになる。以上で、通常処理の説明を終了する。
【００７２】
次に、図１０のフローチャートを参照して、図９のステップＳ２１の通常処理の初期化処理の詳細について説明する。
【００７３】
ステップＳ４１において、制御部６０は、現在実行中の通常処理が例外処理からの復帰の処理であるか否かを判定する。すなわち、図５のステップＳ１２の例外処理を終了した後、再びステップＳ１１の通常処理に戻ってきたのか否かが判定される。最初のフレームの処理においては、まだステップＳ１２の例外処理は実行されていないので、例外処理からの復帰ではないと判定され、処理はステップＳ４２に進む。
【００７４】
ステップＳ４２において、追尾点決定部５７は、追尾点を追尾点指示の位置に設定する処理を実行する。
【００７５】
ここで、追尾点指示の位置とは、例えば、入力画像の中で最も輝度の高い点や、ユーザによって指定された点とすることができる。ユーザによって指定された点とは、例えば、ユーザが指示入力部２９を操作することによって入力画像上で指定された点を指す。追尾点決定部５７は、設定した追尾点の情報を領域推定関連処理部５５に供給する。
【００７６】
ステップＳ４３において、領域推定関連処理部５５は、ステップＳ４２の処理で設定された追尾点の位置情報に基づき、領域推定範囲を設定する。この領域推定範囲は、追尾点と同じオブジェクト上の点を推定する際の参照範囲であり、予め追尾点と同じオブジェクトが領域推定範囲の大部分を占めるように、より具体的には、追尾点と同じオブジェクトに推定領域範囲の位置や大きさが追随するように設定することで、領域推定範囲の中で最も多数を占める動きを示す部分を追尾点と同じオブジェクトであると推定できるようにするためのものである。ステップＳ４３では、初期値として、例えば、追尾点を中心とする予め設定された一定の範囲が領域推定範囲とされる。その後、処理は図９のステップＳ２２に進むことになる。
【００７７】
一方、ステップＳ４１において、現在の処理が、図５のステップＳ１２の例外処理からの復帰の処理であると判定された場合、ステップＳ４４に進む。ステップＳ４４において、追尾点決定部５７は、図１２のフローチャートを参照して後述する例外処理によるテンプレートにマッチした位置に基づき追尾点と領域推定範囲を設定する。例えば、テンプレート上の追尾点とマッチした現フレーム上の点が追尾点とされ、その点から予め設定されている一定の範囲が領域推定範囲とされる。その後、処理は図９のステップＳ２２に進む。以上で、通常処理の初期化処理の説明を終了する。
【００７８】
以上の通常処理の初期化処理を、図１１を参照して具体的に説明する。
【００７９】
ステップＳ４２において、同図Ａに示されるように、フレームｎ−１の人の右目７２が追尾点７１として指定されると、ステップＳ４３において、追尾点７１を含む所定の領域が領域推定範囲１０１として指定される。そして、ステップＳ２４において、領域推定範囲１０１の範囲内のサンプル点が、同図Ｂに示すように次のフレームｎにおいて推定可能であるか否かが判定される。図１１の表示例の場合、同図Ｃに示すフレームｎ＋１においては、領域推定範囲１０１のうち、右目７２を含む図中左側半分の領域１０２がボール８１で隠されているため、フレームｎの追尾点７１の動きを、次のフレームｎ＋１において推定することができない。そこで、このような場合においては、時間的に前のフレームｎ−１で乗り換え候補として予め用意されていた領域指定範囲１０１内（右目７２を含むオブジェクトとしての顔７４内）の点の中から１つの点（例えば、顔７４に含まれる左目７３（正確には、その中の１つの画素））が選択され、その点がフレームｎ＋１における、新たな追尾点とされる。
【００８０】
次に、上述してきた通常処理に続いて行なわれる例外処理（図５のステップＳ１２）について、図１２のフローチャートを参照して説明する。
【００８１】
この例外処理は、上述したように、通常処理のステップＳ２４（図９）において追尾点の動きを推定することが不可能と判定され、さらにステップＳ２８において追尾点の乗り換え候補が選択できなかったと判定された場合に実行されることになる。
【００８２】
ステップＳ５１において、制御部６０は、例外処理の初期化処理を実行する。この初期化処理について、図１３のフローチャートを参照して詳述する。
【００８３】
ステップＳ６１において、制御部６０は、この例外処理が開始されたとき、すなわち、追尾点の動きを推定することが不可能であって、かつ、追尾点の乗り換え候補が選択できなかったとき、シーンチェンジ検出部５３によってシーンチェンジの発生が検出されていたか否かを判定する。なお、シーンチェンジ検出部５３は、動き推定部５２の推定結果に基づいてシーンチェンジが発生したか否かを常に監視しているものとする。
【００８４】
シーンチェンジの発生が検出されていたと判定された場合、追尾不可能となった理由はシーンチェンジの発生によるものと考えられるので、ステップＳ６２において、制御部６０は、モードをシーンチェンジモードに設定する。これに対して、シーンチェンジの発生が検出されていないと判定された場合、制御部６０は、ステップＳ６３において、モードをその他のモードに設定する。
【００８５】
ステップＳ６２またはステップＳ６３の処理の後、ステップＳ６４において、テンプレートマッチング部５１は、テンプレート保持部５８に保持されているテンプレートのうち、時間的に最も古いテンプレートを選択する処理を実行する。具体的には、図１４に示されるように、例えばフレームｎからフレームｎ＋１に移行するときに、例外処理が開始されたとすれば、フレームｎ−ｍ＋１からフレームｎまでの期間に生成され、テンプレート保持部５８に保持されているｍ個のフレームのテンプレートのうち、時間的に最も古いテンプレートであるフレームｎ−ｍ＋１に関して生成されたテンプレートが選択される。
【００８６】
このように、例外処理に移行する直前のテンプレート（図１４の例の場合フレームｎに関して生成されたテンプレート）を用いずに、時間的に少し前のテンプレートを選択するのは、次のような理由からである。つまり、追尾対象のオクルージョンなどに起因して例外処理への移行が発生した場合には、移行の直前には追尾対象であるオブジェクトの大部分が既に画面上から消えており、その時点のテンプレートでは、追尾対象を充分に大きく捉えることができない可能性が高いからである。従って、このように時間的に若干前のフレームにおけるテンプレートを選択することによって、より確実な追尾が可能となる。
【００８７】
図１３の説明に戻る。ステップＳ６５において、テンプレートマッチング部５１は、テンプレート探索範囲を設定する処理を実行する。テンプレート探索範囲は、例えば、例外処理に移行する直前の追尾点の位置が所定サイズのテンプレート探索範囲の中心となるように設定される。
【００８８】
すなわち、図１５に示されるように、同図Ａに示すフレームｎにおいて被写体の顔７４の右目７２が追尾点７１として指定されている場合において、図中左方向からボール８１が飛んできて、同図Ｂに示すフレームｎ＋１において追尾点７１を含む顔７４が隠れ、同図Ｃに示すフレームｎ＋２において、再び追尾点７１が現れる場合を想定する。この場合において、テンプレート範囲１１１に含まれる追尾点７１を中心とする所定サイズの領域がテンプレート探索範囲１１２として設定される。
【００８９】
ステップＳ６６において、テンプレートマッチング部５１は、例外処理に移行した後の経過フレーム数およびシーンチェンジ数を０にリセットする。このフレーム数とシーンチェンジ数は、後述する図１２のステップＳ５５における継続判定処理（図１６のステップＳ７１，Ｓ７３，Ｓ７５，Ｓ７７）において使用される。以上で、例外処理の初期化処理は終了され、処理は図１２のステップＳ５２に戻る。
【００９０】
図１２のステップＳ５２において、制御部６０は、次のフレームが入力されるまで待機する。そして、次のフレームが入力されると、ステップＳ５３において、テンプレートマッチング部５１は、テンプレート探索範囲内においてテンプレートマッチング処理を行う。
【００９１】
ステップＳ５４において、テンプレートマッチング部５１は、通常処理に復帰することが可能であるか否かを判定する。具体的には、テンプレートマッチング処理により、数フレーム前のテンプレート（図１５のテンプレート範囲１１１内の画素）と、テンプレート探索範囲内のマッチング対象の画素の差分の絶対値和が演算され、この演算結果に基づいて復帰の可否が判定される。
【００９２】
より詳細には、テンプレート範囲１１１内の所定のブロックと、テンプレート探索範囲内の所定のブロックにおけるそれぞれの画素の画素値の差分の絶対値和が演算される。ブロックの位置がテンプレート範囲１１１内で順次移動され、各ブロックの差分の絶対値和が加算され、そのテンプレートの位置における値とされる。そして、テンプレートをテンプレート探索範囲内で順次移動させた場合における差分の絶対値和が最も小さくなる位置とその値が検索される。そして、検索された最小の差分の絶対値和が、予め設定されている所定の閾値と比較される。差分の絶対値和が閾値以下である場合、テンプレートに含まれている追尾点を含むオブジェクトがフレーム上に再び出現した（表示された）と判断できるので、通常処理に復帰することが可能であると判定される。この結果、図５のステップＳ１１の通常処理が再開される。
【００９３】
ステップＳ５４において、通常処理に復帰することが可能ではないと判定された場合、処理はステップＳ５５に進められ、継続判定処理（図１６を参照して後述する）が実行される。この継続判定処理では、例外処理が継続可能であるか否かの判定が行われる。
【００９４】
ステップＳ５６において、制御部６０は、ステップＳ５５で実行された継続判定処理により、例外処理が継続可能と判定されたか否かを判定する。具体的には、後述する図１６のステップＳ７６，Ｓ７８で設定されるフラグに基づいて判定される。例外処理が継続可能であると判定された場合、処理はステップＳ５２に戻り、それ以降の処理が繰り返される。すなわち、追尾点が再び出現するまで待機する処理が繰り返し実行される。
【００９５】
これに対して、ステップＳ５６において、例外処理が継続可能ではないと判定された場合（後述する図１６のステップＳ７５の処理で追尾点が消失した後の経過フレーム数が閾値THfr以上と判定されるか、または、ステップＳ７７の処理でシーンチェンジ数が閾値THsc以上と判定された場合）、もはや例外処理は不可能であるとして、追尾処理は終了される。
【００９６】
次に、図１２のステップＳ５５における継続判定処理について、図１６のフローチャートを参照して詳述する。
【００９７】
ステップＳ７１において、制御部６０は、変数としての経過フレーム数に１を加算する。この経過フレーム数は、図１２のステップＳ５１の例外処理の初期化処理（図１３のステップＳ６６）において、予め０にリセットされている。
【００９８】
ステップＳ７２において、制御部６０は、通常処理から例外処理への移行時にシーンチェンジ検出部５３によってシーンチェンジが検出されていたか否かを判定する。シーンチェンジが発生していたと判定された場合、処理はステップＳ７３に進められる。ステップＳ７３において、制御部６０は、変数としてのシーンチェンジ数に１を加算する。このシーンチェンジ数も、図１２のステップＳ５１の例外処理の初期化処理（図１３のステップＳ６６）において０にリセットされている。なお、ステップＳ７２において、通常処理から例外処理への移行時にシーンチェンジが検出されていないと判定された場合、ステップＳ７３の処理はスキップされる。
【００９９】
次に、ステップＳ７４において、制御部６０は、現在、シーンチェンジモードに設定されているか否かを判定する。このモード設定は、例外処理の初期化処理（図１３のステップＳ６２またはＳ６３）において設定されたものである。
【０１００】
現在、シーンチェンジモードに設定されていると判定された場合、処理はステップＳ７７に進められる。ステップＳ７７において、制御部６０は、シーンチェンジ数が予め設定されている閾値THscよりも小さいか否かを判定し、シーンチェンジ数が閾値THscよりも小さいと判定した場合、処理をステップＳ７６に進め、制御部６０は、継続可のフラグを設定する。反対に、ステップＳ７７において、シーンチェンジ数が閾値THsc以上であると判定した場合、処理をステップＳ７８に進め、継続不可のフラグを設定する。
【０１０１】
一方、ステップＳ７４において、現在、シーンチェンジモードに設定されていないと判定された場合（現在、その他のモードに設定されていると判定された場合）、処理はステップＳ７５に進められる。ステップＳ７５において、制御部６０は、経過フレーム数が閾値THfrよりも小さいか否かを判定し、経過フレーム数が閾値THfrより小さいと判定した場合にはステップＳ７６に進み、継続可のフラグを設定する。反対に、ステップＳ７５において、経過フレーム数が閾値THfr以上であると判定した場合、制御部６０は、処理をステップＳ７８に進め、継続不可のフラグを設定する。
【０１０２】
このように、テンプレートマッチング処理時におけるシーンチェンジ数が閾値THsc以上になるか、または経過フレーム数が閾値THfr以上になった場合には、例外処理の継続は不可能とされる。
【０１０３】
なお、現在、その他のモードに設定されているある場合には、シーンチェンジ数が０であるという条件も加えて、継続が可能であるか否かを判定するようにしてもよい。
【０１０４】
以上においては、画像のフレームを処理単位とし、すべてのフレームを用いることを前提としたが、フィールド単位で処理したり、すべてのフレームまたはフィールドを利用するのではなく、所定の間隔で間引いて抽出されたフレームまたはフィールドを用いたりすることも可能である。
【０１０５】
次に、図４の動き推定部５２の構成例について、図１７を参照して説明する。この動き推定部５２は、動きベクトル検出部１２１、アクティビティ算出部１２２、評価値算出部１２３、閾値比較部１２４、正規化処理部１２５、および統合判定部１２６から構成される。
【０１０６】
動きベクトル検出部１２１は、例えばブロックマッチング法、勾配法などを用い、入力画像における追尾点の２フレーム間の動きベクトルを検出して、評価値算出部１２３および統合判定部１２６に供給する。
【０１０７】
アクティビティ算出部１２２は、入力画像における追尾点のブロックアクティビティを算出し、閾値比較部１２４および正規化処理部１２５に供給する。
【０１０８】
ここで、追尾点のブロックアクティビティについて説明する。アクティビティとは、画像の複雑さ、空間的相関性などを示す値であり、注目している画素（以下、注目画素と称する）のアクティビティは、注目画素とその上下左右斜めの８方向に隣接する８画素それぞれとの画素値の差分絶対値の平均値である。
【０１０９】
例えば、図１８に示すように、注目画素とその隣接画素の画素値が図示する値である場合、注目画素のアクティビティは、以下のとおりとなる。
注目画素のアクティブティ＝｛｜80-110｜＋｜70-110｜＋｜75-110｜＋｜100-110｜＋｜100-110｜＋｜100-110｜＋｜80-110｜＋｜80-110｜｝／8＝24.375
【０１１０】
ブロックアクティビティとは、所定サイズの画素ブロック内に存在する画素を順次、注目画素に設定してそれぞれアクティビティを算出し、算出した各アクティビティを画素ブロック内で積算（総和）した値である。
【０１１１】
なお、ブロックアクティビティとして、上述した演算の他、例えば、分散値、ダイナミックレンジなどを適用してもよい。
【０１１２】
アクティビティ算出部１２２では、追尾点を中心として所定サイズの画素ブロックが設定されてブロックアクティビティが算出される。
【０１１３】
評価値算出部１２３は、動きベクトル検出部１２１によって検出された動きベクトルにより対応付けられる２フレーム間それぞれの追尾点を含む所定サイズの画素ブロックの一致度を示す評価値を算出し、正規化処理部１２５に供給する。具体的には、画素ブロックの画素値の差分絶対値和が算出される。なお、動きベクトル検出部１２１でブロックマッチング法が用いられている場合、動きベクトルの検出に際して既に画素ブロックの画素値の差分絶対値和が算出されているので、その値を評価値として流用してもよい。
【０１１４】
閾値比較部１２４は、アクティビティ算出部１２２によって算出されたブロックアクティビティを所定の閾値Tha（図２０）と比較し、この比較結果を示すフラグを統合判定部１２６に出力する。正規化処理部１２５は、評価値算出部１２３より供給された評価値、およびアクティビティ算出部１２２より供給されたブロックアクティビティをそれぞれがとり得る値の最大値で除算することにより正規化し、正規化した評価値およびブロックアクティビティを統合判定部１２６に供給する。
【０１１５】
統合判定部１２６は、正規化処理部１２５から供給される正規化した評価値およびブロックアクティビティを基準線１３３（図２０）と比較し、この比較結果と、閾値比較部１２４での比較結果を示すフラグとに基づいて、動きベクトルの採否を判定する。そして、動きベクトルと、動きベクトルの採否の判定結果を示す採否情報を後段に供給する。
【０１１６】
次に、動き推定部５２による動き推定処理について、図１９のフローチャートを参照して説明する。
【０１１７】
ステップＳ９１において、動きベクトル検出部１２１は、入力画像における追尾点の２フレーム間の動きベクトルを検出して、評価値算出部１２３および統合判定部１２６に供給する。
【０１１８】
ステップＳ９２において、評価値算出部１２３は、ステップＳ９１の処理で検出された動きベクトルの評価値を算出する。具体的には、例えば、動きベクトルで対応付けられる２つの点を中心とする２つのブロックの画素値の差分絶対値和を、評価値として算出する。この評価値（２つのブロックの画素値の差分絶対値和）は、その値が０に近づくほど、２つのブロックがよく一致している、すなわち、動きベクトルの信頼性が高いことを示している。算出された評価値は、正規化処理部１２５に供給される。
【０１１９】
ステップＳ９３において、アクティビティ算出部１２２は、入力画像における追尾点のブロックアクティビティを算出し、閾値比較部１２４および正規化処理部１２５に供給する。
【０１２０】
ステップＳ９４において、閾値比較部１２４は、ステップＳ９３の処理で算出されたブロックアクティビティを予め設定されている所定の閾値THaと比較し、比較結果としてブロックアクティビティが所定の閾値THaよりも大きいか否かを表すフラグを統合判定部１２６に通知する。
【０１２１】
ステップＳ９５において、正規化処理部１２５は、評価値算出部１２３より供給された評価値、およびアクティビティ算出部１２２より供給されたブロックアクティビティをそれぞれがとり得る値の最大値で除算することにより正規化し、正規化した評価値およびブロックアクティビティを統合判定部１２６に供給する。
【０１２２】
ステップＳ９６において、統合判定部１２６は、正規化処理部１２５から供給される正規化した評価値およびブロックアクティビティを基準線１３３と比較し、この比較結果と、閾値比較部１２４での比較結果を示すフラグとに基づいて、動きベクトルの採否を判定する統合判定処理を行い、動きベクトルとその採否の判定結果を後段に供給する。
【０１２３】
次に、ステップＳ９６の統合判定部１２６による統合判定処理の詳細について説明するが、その前に、動きベクトルの採否判定に用いる評価値とブロックアクティビティの関係について説明する。
【０１２４】
図２０は、検出される動きベクトルに対応する評価値およびブロックアクティビティの関係を示しており、横軸は正規化されたブロックアクティビティ、縦軸は正規化された評価値を表している。
【０１２５】
一般に、ブロックアクティビティが大きいほど、また評価値が小さいほど、対応する動きベクトルの正確さは高いことが統計的に知られている。したがって、図２０においては、右下が信頼できる領域、反対に、左上側が信頼できない領域であるといえる。
【０１２６】
実際、正しく検出された動きベクトルに対応するブロックアクティビティおよび評価値の値をそれぞれ横軸座標または縦軸座標とした点（以下、サンプル点と称する）をプロットした場合、曲線１３１よりも図中下側の領域Ｒ１に分布することが知られている。これに対して、誤って検出された動きベクトルに対応するサンプル点をプロットした場合、曲線１３２よりも図中左側の領域Ｒ２に分布することが知られている。
【０１２７】
そこで、原点を通る傾き１の直線を初期の基準線１３３に設定し、基準線１３３よりも図中下側（基準線を含む）にサンプル点がプロットされる動きベクトルについては、信頼できる動きベクトルであるとして「採用」と判定するようにする。これに対して、基準線１３３よりも図中上側にサンプル点がプロットされる動きベクトルについては、信頼できない動きベクトルであるとして「不採用」と判定するようにする。
【０１２８】
ただし、そのサンプル点が基準線１３３の図中下側にプロットされていたとしても、図中に斜線で示す領域Ｒ３にプロットされるサンプル点に対応する動きベクトルは信頼できないことがある。そこで、曲線１３１と曲線１３２の交点Ｐの横軸座標値（ブロックアクティビティ）を閾値THaとして、ブロックアクティビティが閾値THaよりも小さい場合、対応する動きベクトルについては、信頼できない動きベクトルであるとして「不採用」と判定するようにする。
【０１２９】
なお、動きベクトルの採否を判定するための基準線の傾きは１に限定されるものではなく、理想的な画像に基づいて予め決定するようにしてもよい。
【０１３０】
また、基準線は固定されたものではなく、基準線変更部５９によって変更される。基準線の変更については、図２２以降を参照して後述する。
【０１３１】
次に、図２１のフローチャートを参照して、ステップＳ９６の統合判定処理の詳細について詳述する。
【０１３２】
ステップＳ１０１において、統合判定部１２６は、ブロックアクティビティが閾値Tha以上であるか否かを判定する。なお、この判定は、ステップＳ９４の処理で閾値比較部１２４から通知されたフラグに基づいて行われる。ブロックアクティビティが閾値Tha以上であると判定された場合、処理はステップＳ１０２に進められる。
【０１３３】
ステップＳ１０２において、統合判定部１２６は、正規化処理部１２５から供給された正規化された評価値およびブロックアクティブティからなるサンプル点が基準線の下側にプロットされるものであるか否かを判定する。サンプル点が基準線の下側にプロットされるものであると判定された場合、処理はステップＳ１０３に進められ、統合判定部１２６は、動きベクトル検出部１２１から供給された動きベクトルを「採用」と判定する。
【０１３４】
一方、ステップＳ１０１において、ブロックアクティビティが閾値Tha以上ではないと判定された場合、あるいは、ステップＳ１０２において、サンプル点が基準線の下側にプロットされるものではないと判定された場合、処理はステップＳ１０４に進められ、統合判定部１２６は、動きベクトル検出部１２１から供給された動きベクトルを「不採用」と判定する。以上で、統合判定処理の説明を終了する。
【０１３５】
次に、図４の基準線変更部５９について説明する。この基準線変更部５９は、以下の考えに基づいて設けられている。
【０１３６】
すなわち、追尾点の乗換えが発生し、図２２に示すように、乗り換え元の追尾点１８１に対応する動きベクトルＶ１と乗り換え後の追尾点１８２に対応する動きベクトルＶ２とがほぼ等しく（動きベクトルＶ１，Ｖ２の差が所定の範囲内であり）、さらに、ユーザから追尾点の位置補正指示が行われていない場合、乗り換え元の追尾点に対応する動きベクトルを不採用と判定した当該判定が誤りである、すなわち、図２３に示すように分布していると推察される、乗り換え元の追尾点に対応する動きベクトルのサンプル点（正規化したブロックアクティビティを軸座標、正規化した評価値を縦軸座標とした点）と比較した基準線１３３が不適切であると考えられる。
【０１３７】
そこで、基準線変更部５９では、追尾点の乗換えが発生した場合、その乗り換え元の追尾点に対応する動きベクトルと乗り換え後の追尾点に対応する動きベクトルとがほぼ等しいか否か判定し、ほぼ等しいならば、乗り換え元の追尾点に対応する動きベクトルのサンプル点をサンプリング点として蓄積する。そして、十分な数のサンプル点が蓄積されたこと、あるいはユーザから追尾点の位置補正指示が行われたことをトリガとして、それまでに蓄積したサンプル点に基づいて適切な基準線を推定するようになされている。
【０１３８】
ただし、図２４に示すように、ユーザからの追尾点の位置補正指示は遅延が生じ得るので、ユーザの指示タイミングの前の所定の期間に発生した乗り換えに対応するサンプリング点は基準線の推定に用いないようにする。
【０１３９】
また、サンプル点を蓄積する際、横軸座標（正規化されたブロックアクティビティ）が等しいものは、その評価値が最大のものだけを蓄積する。これにより、蓄積するサンプル点の数を抑制することができ、サンプル点蓄積部１７２（図２６）の容量を節約することができる。
【０１４０】
蓄積されたサンプル点に基づいて基準線を推定する方法としては、例えば、回帰分析などによって、図２５に示すように蓄積されたサンプル点の中心を通る直線１３３’を算出する。あるいは、蓄積された全てのサンプル点が採用と判断される直線（全てのサンプル点の上側を通り、最も傾きの小さい直線）を算出するようにしてもよい。
【０１４１】
図２６は、基準線変更部５９の詳細な構成例を示している。この基準線変更部５９は、制御部１７１、サンプル点蓄積部１７２、蓄積管理部１７３、および基準線推定部１７４から構成される。
【０１４２】
制御部１７１は、追尾点決定部５７からの追尾点の乗換え処理発生の通知、動き推定部５２から供給される動きベクトル、および制御部２７からのユーザによる追尾点の位置補正指示の発生の通知に基づき、基準線変更部５９の各部を制御する。
【０１４３】
具体的には、追尾点決定部５７から追尾点の乗り換え発生の通知があり、さらに、図２３に示されたように、乗り換え元の追尾点１８１に対応する動きベクトルＶ１と乗り換え後の追尾点１８２に対応する動きベクトルＶ２とがほぼ等しい場合（動きベクトルＶ１，Ｖ２の差が所定の範囲内である場合）、その乗り換え元の追尾点に対応する動きベクトルのサンプリング点をサンプリング点蓄積部１７２に蓄積させる。そして、十分な数のサンプル点が蓄積されるか、あるいは、ユーザからの追尾点位置補正指示が発生するかに対応して、基準線推定部１７４に対し、ユーザから指示される前に蓄積されたサンプリング点に基づいて新たな基準線を推定させる。
【０１４４】
サンプル点蓄積部１７２は、動き推定部５２から供給される、動きベクトルの正規化された評価値およびブロックアクティビティをそれぞれ縦軸座標または横軸座標とするサンプル点を蓄積する。蓄積管理部１７３は、サンプル点蓄積部１７２の初期化、サンプル点の削減、サンプル点の蓄積数の検出などを行う。
【０１４５】
基準線推定部１７４は、サンプル点蓄積部１７２に蓄積されているサンプル点に基づき、現在の基準線に代わる新たな基準線を推定する。推定された新たな基準線は、動き推定部５２に通知される。
【０１４６】
次に、基準線変更部５９による基準線変更処理について、図２７のフローチャートを参照して説明する。この基準線変更処理は、上述した追尾処理と平行して実行される。
【０１４７】
ステップＳ１５１において、制御部１７１は、制御部２７からの通知に基づき、ユーザによる追尾点の位置補正指示が行なわれたか否かを判定する。ユーザによる追尾点の位置補正指示が行なわれていないと判定された場合、処理はステップＳ１５２に進められる。
【０１４８】
ステップＳ１５２において、制御部１７１は、追尾点決定部５７からの通知に基づき、追尾点の乗換え処理が発生したか否かを判定し、追尾点の乗換え処理が発生していないと判定した場合、ステップＳ１５１に戻って、それ以降の処理を繰り返す。
【０１４９】
ステップＳ１５２において、追尾点の乗換え処理が発生したと判定された場合、処理はステップＳ１５３に進められる。ステップＳ１５３において、制御部１７１は、動き推定部５２から供給されている乗り換え元の追尾点に対応する動きベクトルと、乗り換え先の追尾点に対応する動きベクトルとがほぼ等しいか否か（差が所定の範囲内であるか否か）を判定し、ほぼ等しくないと判定した場合、ステップＳ１５１に戻って、それ以降の処理を繰り返す。
【０１５０】
ステップＳ１５３において、乗り換え元の追尾点に対応する動きベクトルと、乗り換え先の追尾点に対応する動きベクトルとがほぼ等しいと判定された場合、処理はステップＳ１５４に進められる。
【０１５１】
ステップＳ１５４において、サンプル点蓄積部１７２は、制御部１７１からの制御に基づき、動き推定部５２から供給された、乗り換え元の追尾点に対応する動きベクトルの正規化された評価値およびブロックアクティビティをそれぞれ縦軸座標または横軸座標とするサンプル点を蓄積する。このとき、蓄積管理部１７３は、このサンプル点のブロックアクティビティが既に蓄積されているサンプル点と等しい場合、評価値が大きい方のサンプル点を蓄積させる。
【０１５２】
ステップＳ１５５において、蓄積管理部１７３は、基準線を推定するために十分な数（予め設定されている値）だけサンプル点が蓄積されたか否かを判定する。十分な数だけサンプル点が蓄積されていないと判定された場合、処理はステップＳ１５１に戻されて、それ以降の処理が繰り返される。
【０１５３】
これに対し、ステップＳ１５５において、基準線を推定するために十分な数だけサンプル点が蓄積されたと判定された場合、処理はステップＳ１５６に進められる。ステップＳ１５６において、蓄積管理部１７３は、十分な数だけサンプル点が蓄積されたことを制御部１７１に通知する。この通知に応じた制御部１７１の制御により、基準線推定部１７４は、サンプル点蓄積部１７２に蓄積されているサンプル点に基づき、現在の基準線に代わる新たな基準線を推定する。ステップＳ１５７において、基準線推定部１７４は、推定した新たな基準線を動き推定部５２に通知する。動き推定部５２は、動きベクトルの採否判定に用いる基準線を、通知された基準線で更新する。
【０１５４】
ステップＳ１５８において、蓄積管理部１７３は、サンプル点蓄積部１７２に蓄積されているサンプル点を消去させる。この後、基準線変更処理が再びステップＳ１５１から開始されることになる。
【０１５５】
なお、ステップＳ１５１において、ユーザによる追尾点の位置補正指示が行なわれたと判定された場合、処理はステップＳ１５９に進められる。
【０１５６】
ステップＳ１５９において、蓄積管理部１７３は、制御部１７１からの制御に従い、サンプル点蓄積部１７２に蓄積されているサンプル点のうち、ユーザによる追尾点の位置補正指示が行われたタイミングから所定の期間前に発生した乗り換え処理（例えば、図２４の例の場合、ｎおよびｎ−１回目の乗り換え処理）に応じて蓄積されたサンプル点を消去させる。この後、処理はステップＳ１５５に進められ、上述したように、十分な数だけサンプル点が蓄積されているならば、新たな基準線が推定され、更新されることとなる。以上で基準線変更処理の説明を終了する。
【０１５７】
以上説明したように、基準線変更処理によれば、動きベクトルの採否判定に用いる基準線を固定せず、それまでに蓄積されたサンプル点に基づいて更新するようにしたので、更新後の基準線は、ユーザの視聴する画像に適したものとなる。よって、正確な動きベクトルを取得することにより、オブジェクトの追尾処理を高い精度で実行することが可能となる。
【０１５８】
次に、図１の追尾位置補正部２４の詳細な構成例について、図２８を参照して説明する。
追尾位置補正部２４は、補正値算出部１９１、補正値反映部１９２、および微調整部１９３により構成される。
【０１５９】
補正値算出部１９１は、ユーザが指示入力部２９を用いて追尾位置の補正を指示した場合、その補正値を算出する。例えば、指示入力部２９が上、下、右、左方向を指示することが可能な十字方向ボタンで構成されており、それらのボタンの１回の押下に応じて所定の補正量が予め設定されている場合、ボタンの押下回数に応じてユーザから指示された補正値Δｕが算出される。また例えば、指示入力部２９が所定方向を指示することが可能なレバーで構成されており、レバーの傾斜角度に応じて所定の補正量が予め設定されている場合、レバーの倒し具合に応じてユーザから指示された補正値Δｕが算出される。算出された補正値Δｕは補正値反映部１９２に出力される。
【０１６０】
補正値反映部１９２は、オブジェクト追尾部２３から供給された追尾結果としての位置情報に、補正値算出部１９１から供給されたユーザの補正値Δｕを反映する。微調整部１９３は、補正値反映部１９２でユーザの補正値Δｕが反映された追尾点をさらに微調整する。
【０１６１】
次に、図２９のフローチャートを参照して、追尾位置補正部２４による追尾位置補正処理について説明する。
【０１６２】
ステップＳ１７１において、制御部２７は、ユーザにより指示入力部２９が用いられ、追尾対象の位置が指定され追尾開始が指示されたか否かを判定し、追尾開始が指示されるまで待機する。そして、ステップＳ１７１において、追尾対象の位置が指定され追尾開始が指示されたと判定された場合、処理はステップＳ１７２に進められる。
【０１６３】
ステップＳ１７２において、オブジェクト追尾部２３の制御部６０は、次のフレームの画像の入力を待機するように各部を制御する。ステップＳ１７３において、追尾点決定部５７は、次のフレームにおける対象位置を算出する。
【０１６４】
ステップＳ１７４において、制御部２７は、指示入力部２９を介してユーザにより位置補正が指示されたか否かを判定し、位置補正が指示されていないと判定した場合、処理をステップＳ１７５に進める。ステップＳ１７５において、追尾点決定部５７は、ステップＳ１７３の処理で算出した対象位置をそのまま次のフレームの対象位置とする。
【０１６５】
一方、ステップＳ１７４において、ユーザにより位置補正が指示されたと判定された場合、処理はステップＳ１７６に進められ、制御部６０は、追尾点決定部５７からの追尾結果を追尾位置補正部２４に出力する。追尾位置補正部２４は、入力された追尾結果にユーザによる補正値Δｕを反映させて、この反映結果を次のフレームの対象位置とする。
【０１６６】
具体的には、補正算出部１６１により、ユーザからの指示入力部２９の操作量（例えば、ボタンの押下回数やレバーの倒し具合）に応じた補正値が算出される。そして、補正値反映部１９２により、追尾結果にユーザの補正値が反映される。さらに、微調整部１９３により、追尾対象としてのオブジェクトの重心位置に追尾点が微調整される。
【０１６７】
ステップＳ１７７において、制御部２７は、ステップＳ１７５またはＳ１７６の処理による追尾結果に基づいて、画像ディスプレイ２５に、撮像部２１により撮像された画像に追尾位置を表すマークなどを重畳して表示させる。
【０１６８】
ステップＳ１７８において、制御部２７は、ユーザにより指示入力部２９が用いられ、追尾終了が指示されたか否かを判定し、まだ追尾終了が指示されていないと判定した場合、ステップＳ１７２に戻り、上述したそれ以降の処理を繰り返す。そして、ステップＳ１７８において、追尾終了が指示されたと判定された場合、この追尾位置補正処理は終了される。
【０１６９】
以上のように、追尾位置補正処理においては、ユーザによる補正に加え、追尾対象の重心位置に微調整されるようにしたので、外乱に対するロバスト性を向上させることができる。
【０１７０】
なお、本実施の形態は、本発明を監視カメラシステムに適用した場合の例について説明したが、これに限らず、本発明は、例えば、テレビジョン受像機など各種の画像信号処理装置に適応することが可能である。
【０１７１】
さらに以上においては、画像の処理単位をフレームとしたが、フィールドを処理単位とすることももちろん可能である。
【０１７２】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０１７３】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図１に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)，DVD(Digital Versatile Disc)を含む）、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア２８、または、プログラムが一時的もしくは永続的に格納されるハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インタネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０１７４】
なお、本明細書において、プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１７５】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１７６】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１７７】
【図１】本発明を適用した監視カメラシステムの構成例を示すブロック図である。
【図２】監視処理を説明するフローチャートである。
【図３】図１の監視カメラシステムにより表示される画像の表示例を示す図である。
【図４】図１のオブジェクト追尾部の構成例を示すブロック図である。
【図５】追尾処理を説明するフローチャートである。
【図６】追尾対象が回転した場合の追尾を説明する図である。
【図７】オクルージョンが発生する場合の追尾を説明する図である。
【図８】シーンチェンジが発生する場合の追尾を説明する図である。
【図９】通常処理を説明するフローチャートである。
【図１０】通常処理の初期化処理を説明するフローチャートである。
【図１１】通常処理の初期化処理を説明する図である。
【図１２】例外処理を説明するフローチャートである。
【図１３】例外処理の初期化処理を説明するフローチャートである。
【図１４】テンプレートの選択を説明する図である。
【図１５】探索範囲の設定を説明する図である。
【図１６】継続判定処理を説明するフローチャートである。
【図１７】図４の動き推定部の構成例を示すブロック図である。
【図１８】ブロックアクティビティの算出を説明する図である。
【図１９】動き推定処理を説明するフローチャートである。
【図２０】評価値とブロックアクティビティの関係を説明する図である。
【図２１】統合判定処理を説明するフローチャートである。
【図２２】基準線変更処理を説明する図である。
【図２３】動きベクトルの採否判定の誤りを説明する図である。
【図２４】指示タイミングの遅延を説明する図である。
【図２５】変更後の基準線を示す図である。
【図２６】図４の基準線変更部の構成例を示すブロック図である。
【図２７】基準線変更処理を説明するフローチャートである。
【図２８】図１の追尾位置補正部の構成例を示すブロック図である。
【図２９】追尾補正処理を説明するフローチャートである。
【符号の説明】
【０１７８】
１  監視カメラシステム，  ２１  撮像部，  ２２  追尾対象検出部，  ２３  オブジェクト追尾部，  ５２  動き推定部，  ５７  追尾点決定部，  ５９  基準線変更部，  １２１  動きベクトル検出部，  １２２  アクティビティ算出部，  １２３  評価値算出部，  １２４  閾値比較部，  １２５  正規化処理部，  １２６  統合判定部，  １７１  制御部，  １７２  サンプル点蓄積部，  １７３  蓄積管理部，  １７４  基準線推定部
【図１】
0004623122.tif 000002
【図２】
0004623122.tif 000003
【図３】
0004623122.tif 000004
【図４】
0004623122.tif 000005
【図５】
0004623122.tif 000006
【図６】
0004623122.tif 000007
【図７】
0004623122.tif 000008
【図８】
0004623122.tif 000009
【図９】
0004623122.tif 000010
【図１０】
0004623122.tif 000011
【図１１】
0004623122.tif 000012
【図１２】
0004623122.tif 000013
【図１３】
0004623122.tif 000014
【図１４】
0004623122.tif 000015
【図１５】
0004623122.tif 000016
【図１６】
0004623122.tif 000017
【図１７】
0004623122.tif 000018
【図１８】
0004623122.tif 000019
【図１９】
0004623122.tif 000020
【図２０】
0004623122.tif 000021
【図２１】
0004623122.tif 000022
【図２２】
0004623122.tif 000023
【図２３】
0004623122.tif 000024
【図２４】
0004623122.tif 000025
【図２５】
0004623122.tif 000026
【図２６】
0004623122.tif 000027
【図２７】
0004623122.tif 000028
【図２８】
0004623122.tif 000029
【図２９】
0004623122.tif 000030