JP2007274543A - 画像処理装置および方法、プログラム、並びに記録媒体 - Google Patents
画像処理装置および方法、プログラム、並びに記録媒体 Download PDFInfo
- Publication number
- JP2007274543A JP2007274543A JP2006099831A JP2006099831A JP2007274543A JP 2007274543 A JP2007274543 A JP 2007274543A JP 2006099831 A JP2006099831 A JP 2006099831A JP 2006099831 A JP2006099831 A JP 2006099831A JP 2007274543 A JP2007274543 A JP 2007274543A
- Authority
- JP
- Japan
- Prior art keywords
- tracking
- candidate
- image
- unit
- display
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Closed-Circuit Television Systems (AREA)
- Image Analysis (AREA)
Abstract
【課題】追尾を継続しながら、追尾対象を容易に再設定することができるようにする。
【解決手段】撮像装置11は、監視する領域を撮像し、侵入者Bが撮像された画像31を追尾装置12に入力する。追尾装置12は、入力された画像31を用い、ユーザAの指示に対応して、侵入者Bを追尾対象として追尾を行ったり、追尾対象からずれてしまった侵入者Bを、再度、ユーザAの指示に対応して、追尾対象と再設定して追尾を行い、その追尾結果に基づいて、例えばズームされた画像32を生成し、表示部21に表示させる。本発明は、撮像された画像上の移動するオブジェクトを追尾して監視する監視システムに適用できる。
【選択図】図1
【解決手段】撮像装置11は、監視する領域を撮像し、侵入者Bが撮像された画像31を追尾装置12に入力する。追尾装置12は、入力された画像31を用い、ユーザAの指示に対応して、侵入者Bを追尾対象として追尾を行ったり、追尾対象からずれてしまった侵入者Bを、再度、ユーザAの指示に対応して、追尾対象と再設定して追尾を行い、その追尾結果に基づいて、例えばズームされた画像32を生成し、表示部21に表示させる。本発明は、撮像された画像上の移動するオブジェクトを追尾して監視する監視システムに適用できる。
【選択図】図1
Description
本発明は、画像処理装置および方法、プログラム、並びに記録媒体に関し、特に、追尾対象を、容易に再設定することができるようにした画像処理装置および方法、プログラム、並びに記録媒体に関する。
動画像中でユーザが指定した対象を追尾する技術は、従来から多くあり、本出願人も先に出願した特許文献1において提案を行っている。そして、それらの殆どは、最初に追尾対象を指定した後、全自動で追尾処理を行うというものである。
しかしながら、実際には、こうした追尾対象の多くは、激しい変形を伴ったり、比較的長時間のオクルージョンを受けたり、あるいは、画像自体にノイズが乗るなど、様々な外乱を受けることがあり、全自動処理で所望の追尾結果を得ることは、困難であった。
これに対して、特許文献2においては、予め追尾アルゴリズムを選択可能にし、各シーンに最適なアルゴリズムを選択することや、再生を停止、または一時停止して対象を設定し直すことで、所望の追尾結果を得ることが提案されている。
しかしながら、特許文献2に記載の提案では、予め追尾アルゴリズムを選択する場合、最適なアルゴリズムが見つかるまで、繰り返し試行しなければならないため、ユーザに多大な負荷を強いることになってしまっていた。
また、再生を停止または一時停止して対象を設定し直すためには、膨大な蓄積装置が必要であるためコストが増大してしまうだけでなく、さらに、入力動画像に同期して追尾結果を出力するアプリケーションには、適用することが難しく、汎用的ではなかった。
本発明は、このような状況に鑑みてなされたものであり、再生を停止または一時停止することなく、追尾対象を容易に再設定することができるようにするものである。
本発明の一側面の画像処理装置は、移動するオブジェクトを表示させる画像処理装置において、ユーザの操作に対応して、画像上の移動するオブジェクトを追尾対象として追尾を行う追尾手段と、前記追尾手段による前記追尾対象の候補としての候補位置を算出する候補算出手段と、前記候補算出手段により算出された前記候補位置の表示を制御する表示制御手段と、ユーザの操作に対応して、表示される前記候補位置を、前記追尾手段の次のフレームにおける前記追尾対象として設定する対象設定手段とを備える。
前記候補算出手段は、予め記憶される画面内の所定の位置を読み出して、前記候補位置を算出することができる。
前記候補算出手段は、前記画像の特徴量に基づいて、前記候補位置を算出することができる。
前記候補算出手段は、複数の前記追尾手段による追尾結果に基づいて、前記候補位置を算出することができる。
前記複数の追尾手段は、複数の異なる種類の追尾方式を用いて、それぞれ追尾を行うことができる。
前記対象設定手段は、ユーザの操作に対応して、表示される前記候補位置を、前記複数の追尾手段の次のフレームにおける前記追尾対象としてそれぞれ設定することができる。
前記複数の追尾手段は、前記オブジェクト上の複数の異なる近傍位置をそれぞれ追尾対象として追尾を行うことができる。
前記対象設定手段は、ユーザの操作に対応して、表示される前記候補位置に基づいて、前記候補位置を含む複数の異なる近傍位置を、前記複数の追尾手段の次のフレームにおける前記追尾対象としてそれぞれ設定することができる。
前記複数の追尾手段の中の1の追尾手段による追尾結果に基づいて、前記複数の追尾手段のうちの一部または全部の追尾手段による追尾結果を更新する更新手段をさらに備えることができる。
前記更新手段は、所定の時間が経過する毎に、前記複数の追尾手段の中の1の追尾手段による追尾結果に基づいて、前記複数の追尾手段のうちの一部または全部の追尾手段による追尾結果を更新することができる。
前記更新手段は、所定時間が経過した第1のタイミング毎に、前記複数の追尾手段の中の1の追尾手段による追尾結果に基づいて、前記複数の追尾手段のうちの一部の追尾手段による追尾結果を更新し、前記第1のタイミングとは異なる、前記所定時間が経過した第2のタイミング毎に、前記複数の追尾手段の中の1の追尾手段による追尾結果で、前記複数の追尾手段のうちの他の一部の追尾手段による追尾結果を更新することができる。
前記更新手段は、前記複数の追尾手段の追尾結果が大きく異なるときに、前記複数の追尾手段の中の1の追尾手段による追尾結果に基づいて、前記複数の追尾手段のうちの一部または全部の追尾手段による追尾結果を更新することができる。
前記表示制御手段は、ユーザの操作による選択中の候補位置が、他の候補位置と区別されて前記画像上に示される前記候補位置の一覧表示を制御することができる。
前記表示制御手段は、前記画像上の前記選択中の候補位置の上に第1の小画像を重畳し、前記画像上の前記他の候補位置の上に前記第1の小画像とは異なる第2の小画像を重畳して、前記候補位置の一覧表示を制御することができる。
前記表示制御手段は、前記候補位置を中心としたズーム画像を生成する画像生成手段をさらに備え、前記画像生成手段により生成された前記候補位置を中心としたズーム画像の表示を制御することができる。
前記表示制御手段は、前記画像生成手段により生成された複数の前記候補位置をそれぞれ中心とした複数のズーム画像の表示を制御することができる。
前記表示制御手段は、前記画像生成手段により生成された前記候補位置を中心としたズーム画像に、ユーザの操作による選択中の候補位置が、他の候補位置と区別されて前記画像上に示される前記候補位置の一覧表示が重畳された表示を制御することができる。
前記表示制御手段は、ユーザの操作による選択中の候補位置が、他の候補位置と区別されて前記画像上に示される前記候補位置の一覧表示上に、前記画像生成手段により生成された前記候補位置を中心としたズーム画像が重畳された表示を制御することができる。
本発明の一側面の画像処理方法は、移動する対象を表示させる画像処理装置の画像処理方法において、ユーザの操作に対応して、画像上の移動するオブジェクトを追尾対象として追尾を行う追尾手段の前記追尾対象の候補としての候補位置を算出し、算出された前記候補位置の表示を制御し、ユーザの操作に対応して、表示される前記候補位置を、前記追尾手段の次のフレームにおける前記追尾対象として設定するステップを含む。
本発明の一側面のプログラムは、移動する対象を表示させる処理をコンピュータに行わせるプログラムであって、ユーザの操作に対応して、画像上の移動するオブジェクトを追尾対象として追尾を行う追尾手段の前記追尾対象の候補としての候補位置を算出し、算出された前記候補位置の表示を制御し、ユーザの操作に対応して、表示される前記候補位置を、前記追尾手段の次のフレームにおける前記追尾対象として設定するステップを含む。
本発明の一側面の記録媒体に記録されているプログラムは、移動する対象を表示させる処理をコンピュータに行わせるプログラムであって、ユーザの操作に対応して、画像上の移動するオブジェクトを追尾対象として追尾を行う追尾手段の前記追尾対象の候補としての候補位置を算出し、算出された前記候補位置の表示を制御し、ユーザの操作に対応して、表示される前記候補位置を、前記追尾手段の次のフレームにおける前記追尾対象として設定するステップを含む。
本発明の一側面においては、ユーザの操作に対応して、画像上の移動するオブジェクトを追尾対象として追尾を行う追尾手段の前記追尾対象の候補としての候補位置が算出され、算出された前記候補位置の表示が制御される。そして、ユーザの操作に対応して、表示される前記候補位置が、前記追尾手段の次のフレームにおける前記追尾対象として設定される。
本発明によれば、追尾を継続しながら、追尾対象を容易に再設定することができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面の画像処理装置は、移動するオブジェクトを表示させる画像処理装置(例えば、図1の追尾装置12)において、ユーザの操作に対応して、画像上の移動するオブジェクトを追尾対象として追尾を行う追尾手段(例えば、図3の追尾処理部71)と、前記追尾手段による前記追尾対象の候補としての候補位置を算出する候補算出手段(例えば、図3の位置算出部82)と、前記候補算出手段により算出された前記候補位置の表示を制御する表示制御手段(例えば、図2の表示画像生成部54)と、ユーザの操作に対応して、表示される前記候補位置を、前記追尾手段の次のフレームにおける前記追尾対象として設定する対象設定手段(例えば、図3の対象位置設定部83)とを備える。
前記候補算出手段(例えば、図5のステップS32の処理を行う図3の位置算出部82)は、予め記憶される画面内の所定の位置を読み出して、前記候補位置を算出することができる。
前記候補算出手段(例えば、図8のステップS52の処理を行う図7の画像特徴量算出部131)は、前記画像の特徴量に基づいて、前記候補位置を算出することができる。
前記候補算出手段(例えば、図10のステップS72の処理を行う図9の位置算出部82)は、複数の前記追尾手段(例えば、図9の追尾処理部71−1乃至71−n)による追尾結果に基づいて、前記候補位置を算出することができる。
前記複数の追尾手段の中の1の追尾手段による追尾結果に基づいて、前記複数の追尾手段のうちの一部または全部の追尾手段による追尾結果を更新する更新手段(例えば、図12の追尾結果更新部161)をさらに備えることができる。
前記表示制御手段は、ユーザの操作による選択中の候補位置が、他の候補位置と区別されて前記画像上に示される前記候補位置の一覧表示(例えば、図25の候補一覧画像241の表示)を制御することができる。
前記表示制御手段は、前記画像上の前記選択中の候補位置の上に第1の小画像(例えば、図25のカーソルP)を重畳し、前記画像上の前記他の候補位置の上に前記第1の小画像とは異なる第2の小画像(例えば、図25の点R)を重畳して、前記候補位置の一覧表示を制御することができる。
前記表示制御手段は、前記候補位置を中心としたズーム画像を生成する画像生成手段(例えば、図27の拡大信号処理部301)をさらに備え、前記画像生成手段により生成された前記候補位置を中心としたズーム画像(例えば、図30のズーム画像351−1)の表示を制御することができる。
前記表示制御手段は、前記画像生成手段により生成された複数の前記候補位置をそれぞれ中心とした複数のズーム画像(例えば、図32の複数ズーム画像371−1)の表示を制御することができる。
前記表示制御手段は、前記画像生成手段により生成された前記候補位置を中心としたズーム画像に、ユーザの操作による選択中の候補位置が、他の候補位置と区別されて前記画像上に示される前記候補位置の一覧表示が重畳された表示(図31の表示画像361−1の表示)を制御することができる。
前記表示制御手段は、ユーザの操作による選択中の候補位置が、他の候補位置と区別されて前記画像上に示される前記候補位置の一覧表示上に、前記画像生成手段により生成された前記候補位置を中心としたズーム画像が重畳された表示(図33の表示画像391−1の表示)を制御することができる。
本発明の一側面の画像処理方法またはプログラムは、移動する対象を表示させる画像処理装置の画像処理方法またはプログラムにおいて、ユーザの操作に対応して、画像上の移動するオブジェクトを追尾対象として追尾を行う追尾手段の前記追尾対象の候補としての候補位置を算出し(例えば、図4のステップS3)、算出された前記候補位置の表示を制御し(例えば、図4のステップS9)、ユーザの操作に対応して、表示される前記候補位置を、前記追尾手段の次のフレームにおける前記追尾対象として設定する(例えば、図4のステップS7またはS8)ステップを含む。
以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本発明を監視システムに適用した場合の構成例を表している。この監視システムにおいては、CCD(Charge Coupled Devices)ビデオカメラ等よりなる撮像装置11と、撮像装置11と接続され、LCD(Liquid Crystal Display)などからなる表示部21を有する追尾装置12を用いて、撮像装置11により撮像され、表示部21に表示される画像を見ながら、監視者であるユーザAにより所定の空間内に不審者がいないかが監視される。
撮像装置11は、設置された空間において、監視する領域を撮像し、その画像31を追尾装置12に入力する。例えば、監視する領域内に侵入者Bがいれば、その侵入者Bが撮像された画像31が追尾装置12に入力される。
追尾装置12は、入力された画像31を用い、ユーザAの指示に対応して、侵入者Bを追尾対象として追尾を行ったり、追尾対象からずれてしまった侵入者Bを、再度、ユーザAの指示に対応して、追尾対象と再設定して追尾を行い、その追尾結果に基づいて、例えばズームされた画像32を生成し、表示部21に表示させる。
表示部21は、追尾装置12により追尾結果に基づいて生成された画像32を表示する。
なお、図1の監視システムに、追尾装置12からの制御に基づいて、撮像装置11が追尾対象を中心とする画像を撮像するように撮像装置11を駆動するカメラ駆動部などを構成することも可能である。
図2は、図1の追尾装置12の構成例を示すブロック図である。この追尾装置12は、入力端子51、オブジェクト追尾部52、全体システム制御部53、表示画像生成部54、表示部21、リモートコントローラ55、およびリムーバブルメディア56により構成される。
撮像装置11により撮像された画像は、入力端子51を介して、入力画像として、オブジェクト追尾部52および表示画像生成部54に入力される。オブジェクト追尾部52は、入力画像から、ユーザにより追尾対象として指定されたオブジェクトを追尾する処理を実行し、その追尾結果に基づく表示用追尾情報を、全体システム制御部53を介して表示画像生成部54に出力する。
全体システム制御部53は、例えば、マイクロコンピュータなどにより構成され、リモートコントローラ55を介して入力されるユーザ操作情報を受け取り、オブジェクト追尾部52および表示画像生成部54に供給することで、ユーザの指示に基づいて各部を制御する。また、全体システム制御部53は、オブジェクト追尾部52からの表示用追尾情報を、表示画像生成部54に供給する。
表示画像生成部54は、入力画像を用いて、全体システム制御部53からのユーザ操作情報と、オブジェクト追尾部52の追尾処理により得られる表示用追尾情報に応じて、表示画像を生成し、表示画像を、表示部21に表示させる。
リモートコントローラ55は、ユーザにより操作され、ユーザの操作に対応するユーザ操作情報(例えば、座標位置や候補選択の情報)を、赤外線などの光や電波を用いて、全体システム制御部53に送信する。なお、リモートコントローラ55を、例えば、キーボードやマウスなどで構成することもできる。
リムーバブルメディア56は、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスクなどにより構成され、必要に応じて装着され、全体システム制御部53に、プログラム、その他各種のデータを提供する。
図3は、オブジェクト追尾部52の詳細な構成例を示すブロック図である。図3のオブジェクト追尾部52は、追尾処理部71および追尾処理制御部72で構成される。
追尾処理部71は、追尾処理制御部72により生成された設定情報に基づいて追尾を行い、追尾結果を追尾処理制御部72に出力する。追尾処理の詳細は、後述するが、例えば、追尾処理部71による追尾方式としては、輝度波形ブロックマッチング方式、色波形ブロックマッチング方式、特許文献1に記載の乗り換え付き点追尾方式、動き領域重心追尾方式、または、過去動きで一定時間外挿を行う方式などが挙げられる。
追尾処理制御部72は、例えば、追尾結果記憶部81、位置算出部82、および対象位置設定部83により構成され、ユーザ操作情報に基づいて、追尾処理部71を制御するとともに、追尾処理部71による追尾結果に基づいて、表示用追尾情報を生成し、表示用追尾時情報を、全体システム制御部53に出力する処理を行う。表示用追尾情報は、例えば、追尾中の追尾対象の領域または点の位置情報、および少なくとも1つの追尾対象候補の領域または点の位置情報などで構成される。
追尾結果記憶部81は、追尾処理部71の追尾結果を記憶する。位置算出部82は、追尾結果記憶部81の追尾結果に基づいて、現在のフレーム(現フレーム)より時間的に後に入力される、次のフレーム(次フレーム)の追尾対象の位置と、追尾対象の候補となる位置(以下、適宜、候補位置とも称する)を算出して、表示用追尾情報を生成し、その表示追尾情報を、全体システム制御部53に出力する。
また、位置算出部82は、生成した表示用追尾情報とユーザ操作情報に基づいて、ユーザにより選択され、変更が指示された候補位置情報を、対象位置設定部83に供給する。対象位置設定部83は、ユーザ操作情報が示す位置、または位置算出部82からの候補位置または追尾対象の位置を、次のフレームの追尾対象の位置として設定し、その設定情報を、追尾処理部71に出力する。
なお、変更が指示されていない場合、位置算出部82からは、追尾結果に基づいて算出された追尾対象の位置情報が対象位置設定部83に供給される。すなわち、対象位置設定部83においては、追尾処理部71の追尾結果が、そのまま次のフレームの追尾対象の位置として設定される。
次に、追尾装置12の処理について、図4のフローチャートを参照して説明する。図1の監視システムの電源がオンされているとき、撮像装置11は監視する領域を撮像する。その撮像して得られた画像は、追尾装置12に入力され、表示画像生成部54を介して表示部21に表示される。
ユーザAは、表示部21に表示される画像を参照して、リモートコントローラ55を操作することで、画像上の追尾をしたいオブジェクトを追尾対象として指定し、追尾開始を指示する。この操作がなされたとき、全体システム制御部53は、図4の処理を開始する。すなわち、全体システム制御部53は、ユーザ操作情報を、追尾処理制御部72に供給する。
追尾処理制御部72の対象位置設定部83は、ステップS1において、ユーザ操作情報が示す位置を、追尾対象の位置に設定し、その設定情報を追尾処理部71に出力する。ステップS2において、追尾処理部71は、次フレームの入力を待ち、入力される次フレームと現フレームとの間で、対象位置設定部83からの設定情報に基づいて、ユーザにより指定された追尾対象の追尾処理を開始する。
追尾処理の詳細については、図35または図39を参照して後述するが、この処理により、ユーザにより指定された追尾対象、すなわち、画像の中の追尾対象となるオブジェクト(例えば、人、動物など)の追尾点(または追尾領域)が追尾され、その追尾結果が、追尾処理制御部72に出力されて、追尾結果記憶部81に記憶される。
ステップS3において、追尾処理制御部72の位置算出部82は、追尾処理部71による追尾結果に基づいて、追尾対象および追尾対象候補の位置を算出する位置算出処理を行う。位置算出処理の詳細については、図5を参照して後述するが、この処理により、追尾対象の位置および追尾対象候補の位置が算出されて、表示用追尾情報が生成され、表示用追尾情報が、全体システム制御部53を介して、表示画像生成部54に供給される。
位置算出部82は、ステップS4において、ユーザから候補位置選択表示の指示があるか否かを判定し、候補位置選択表示の指示があると判定した場合、すなわち、候補位置選択表示が指示されているとして、ステップS5において、ユーザから候補位置選択の指示があるか否かを判定する。
ステップS5において、候補位置選択の指示があると判定された場合、処理は、ステップS6に進み、ステップS6において、位置算出部82は、ユーザから候補位置への変更の指示があるか否かを判定する。ステップS6において、ユーザから候補位置への変更の指示があると判定された場合、ステップS7において、対象位置設定部83は、候補位置を、次フレームの追尾対象の位置と設定する。
すなわち、ユーザの候補位置選択表示の指示により、現在、表示部21においては、候補位置を選択するための表示である候補位置選択表示が行われており、さらに、ユーザにより1つの候補位置が選択されている。位置算出部82は、選択されている候補位置情報を、対象位置設定部83に供給してくるので、対象位置設定部83は、選択されている候補位置を、次フレームの追尾対象の位置として設定し、その設定情報を、追尾処理部71に出力する。
一方、ステップS4において、ユーザから候補位置選択表示の指示はないと判定された場合、ステップS5において、ユーザから候補位置選択の指示はないと判定された場合、または、ステップS6において、ユーザから候補位置への更新指示がないと判定された場合、処理は、ステップS8に進む。
ステップS8において、対象位置設定部83は、追尾対象の位置を、そのまま次フレームの追尾対象の位置として設定する。
すなわち、現在、表示部21に、候補位置選択表示が行われてなかったり、仮に、表示部21に、候補位置選択表示が行われていても、候補位置が選択されていなかったり、また、仮に、候補位置が選択されていても、その候補位置への更新指示がない場合、位置算出部82は、ステップS3において算出された追尾対象の位置情報を、対象位置設定部83に供給してくる。これに対応して、ステップS8において、対象位置設定部83は、ステップS3において算出された追尾対象の位置を、そのまま次フレームの追尾対象の位置として設定し、その設定情報を、追尾処理部71に出力する。
ステップS9において、表示画像生成部54は、ユーザの指示に応じた表示画像を生成し、表示部21に出力する。
すなわち、表示画像生成部54は、ユーザから候補位置選択表示の指示がない場合には、入力画像を用いて、追尾対象の位置のみを示した表示画像を生成し、ユーザから候補位置選択表示の指示がある場合には、入力画像を用いて、追尾対象の位置とともに、候補位置を示した表示画像を生成する。また、表示画像生成部54は、ユーザから候補位置選択の指示がある場合には、入力画像を用いて、例えば、選択された候補位置上に、選択を示すマークなどを重畳させて、追尾対象の位置と候補位置を示した表示画像を生成する。表示画像の詳細は、ユーザによるリモートコントローラ55の操作方法とともに、図24乃至図26を参照して説明する。
ステップS10において、全体システム制御部53は、ユーザからの指示に基づいて処理を終了するか否かを判定し、ユーザから追尾終了が指示されていない場合には、ステップS2に戻り、それ以降の処理を繰り返し実行する。すなわち、ステップS2において、入力される次フレームと現フレームとの間で、ステップS7またはS8において設定された追尾対象の位置を設定した設定情報に基づいて、ユーザにより指定された追尾対象の追尾処理が開始される。ユーザから追尾終了が指示された場合、ステップS10において終了すると判定され、全体システム制御部53は処理を終了する。
次に、図5のフローチャートを参照して、図4のステップS3の位置算出処理を説明する。図5の例においては、画面内の固定位置が候補位置として算出される例を説明する。
なお、この場合、図3の位置算出部82に内蔵されるレジスタ(図示せぬ)には、予め、候補位置として、画面内の固定位置の座標が記憶されている。具体的には、例えば、画面内の中央の座標や、画面がn個(例えば、4個)に分割されたものである各分割画面内の中心の座標などが候補位置として記憶されている。そして、ユーザにより候補位置選択および変更指示がある場合、これらの固定位置のいずれか(選択されたもの)が、追尾対象の位置に設定される。
ステップS31において、位置算出部82は、追尾結果記憶部81に記憶される追尾結果をそのまま用いて、追尾対象の位置を算出する。ステップS32において、位置算出部82は、図示せぬレジスタから固定位置の座標を読み出すことで、候補位置を算出する。
ステップS33において、位置算出部82は、ステップS31において算出された追尾対象の位置、およびステップS32において算出された候補位置を用いて、表示用追尾情報を生成し、全体システム制御部53に出力する。ステップS33において出力された表示用追尾情報は、全体システム制御部53を介して、表示画像生成部54に出力される。
これにより、上述した図4のステップS9において、ユーザにより候補位置選択表示が指示されている場合には、表示画像生成部54によりステップS33において出力された表示用追尾情報に応じて生成された表示画像102が表示部21に表示される。
図6は、表示部21に表示される表示画像の例を示している。図6の例においては、追尾処理開始時に表示される表示画像101と、追尾処理中に表示される表示画像102が示されている。
表示画像101の左下部には、追尾の対象位置を示すカーソルPが、ユーザが追尾対象として指示した人物のオブジェクト(以下、単に人物と称する)111上に表示されている。
一方、表示画像102の左上部、左下部、右上部、および右下部には、木のオブジェクト(以下、単に木と称する)121、球のオブジェクト(以下、単に球と称する)122、人物111、および犬のオブジェクト(以下、単に犬と称する)123がそれぞれ表示されている。すなわち、表示画像102において、ユーザが追尾対象として指示した人物111は、右上部に移動して表示されており、追尾の対象位置を示すカーソルPは、人物111とは離れて、表示画像102の左上部に表示されている。
また、表示画像102には、それぞれ候補位置を示す点Q1乃至Q5が、位置算出部82に内蔵されるレジスタから読み出されることで算出された候補位置である、画面内の中心の位置、並びに、画面が4等分された、各左上、右上、左下、および右下の分割画面の中心の位置上に表示されている。なお、表示画像102においては、各点Q1乃至点Q5と共に、点Q1乃至点Q5が候補位置を示していることをユーザに認識させるため、「候補1」乃至「候補5」の文字が表示されている。これらの文字の表示は、非表示にすることも可能である。
すなわち、追尾処理開始時には、表示画像101に示されるように、ユーザが追尾対象として指示した人物111上のカーソルPの位置が、追尾対象の位置として設定されて処理が開始されるが、所定の時間が経過した後の追尾処理中には、表示画像102に示されるように、オクルージョンなどの何かしらの外乱により、追尾対象の位置は、ユーザが追尾対象として指示した人物111から外れてしまい、その結果、木121および犬123の間のカーソルPが示す位置が追尾対象の位置になってしまっている。
このとき、追尾対象111上には、ちょうど、候補位置を示す点Q3が表示されているので、ユーザは、点Q3が示している候補位置を選択し、変更を指示する。これに対応して、位置算出部82は、点Q3が示している候補位置、すなわち、レジスタから読み出されたものである右上の分割画面の中心の位置を、追尾対象の位置として、対象位置設定部83に設定させる。これにより、次フレームからは、点Q3が示している位置が含まれるオブジェクト、すなわち、人物111が追尾対象として追尾が再開され、表示部21には、追尾が行われた追尾結果を用いて算出された追尾対象の位置が、カーソルPにより示される。
以上のように、追尾対象の候補となる候補位置を予め算出して表示させることにより、追尾対象の位置が、処理開始時に設定された追尾対象から外れたとしても、ちょうど、ユーザが追尾対象としたいオブジェクト上に候補位置が示されている場合には、ユーザは、表示部21に表示される表示画像の候補位置を選択し、変更するだけで、細かい調整などを行わなくても、容易に、追尾対象の再設定を行うことができる。
すなわち、追尾対象の位置として信頼性がある候補位置が算出できれば、その候補位置は、必然的に、ユーザが追尾対象として所望するオブジェクト上に表示されるようになる。次に、より信頼性のある候補位置の算出方法について説明する。
図7は、図3のオブジェクト追尾部52の他の構成例を示している。図7のオブジェクト追尾部52は、追尾処理部71および追尾処理制御部72を備えている点は、図3のオブジェクト追尾部52と共通しているが、画像特徴量算出部131が追加された点が異なっている。
すなわち、図7の例において、候補位置は、画像特徴量算出部131により算出されるので、位置算出部82は、追尾結果記憶部81の追尾結果に基づいて、次フレームの追尾対象の位置を算出し、算出した追尾対象の位置と、画像特徴量算出部131により算出された候補位置を用いて、表示用追尾情報を生成し、その表示追尾情報を、全体システム制御部53に出力する。
画像特徴量算出部131は、入力画像を用いて画像特徴量を求め、画像特徴量に基づいて、候補位置を算出し、その位置情報を、位置算出部82に出力する。
具体的には、例えば、画像特徴として、色で領域分割が行われ、画像内の代表的な色で、かつ、ある程度面積が大きい領域が抽出される。そして、抽出された各領域の重心が、対象候補の位置とされる。なお、領域分割を行う上で、領域の数が多くなりすぎる恐れがあるため、候補数に制限を設けるなどの考慮が必要となる。
このとき、さらに、ディテイルや、動きの大きさなどの特徴量も抽出し、それらの条件を追加することで、よりユーザが選択しやすそうな、すなわち、追尾対象としてより信頼性のある候補位置を算出することができる。
次に、図8のフローチャートを参照して、図7の追尾処理制御部72が実行する位置算出処理を説明する。
ステップS51において、位置算出部82は、追尾結果記憶部81に記憶される追尾結果をそのまま用いて、追尾対象の位置を算出する。ステップS52において、画像特徴量算出部131は、入力画像を用いて画像特徴量を求め、画像特徴量に基づいて、候補位置を算出する。すなわち、画像特徴量に基づいて抽出される領域から、候補位置が算出されて、その位置情報が位置算出部82に出力される。
ステップS53において、位置算出部82は、ステップS51において算出された追尾対象の位置、およびステップS52において画像特徴量算出部131により算出された候補位置を用いて、表示用追尾情報を生成し、全体システム制御部53に出力する。ステップS53において出力された表示用追尾情報は、全体システム制御部53を介して、表示画像生成部54に出力される。
これにより、上述した図4のステップS9において、ユーザにより候補位置選択表示が指示されている場合には、表示画像生成部54によりステップS53において出力された表示用追尾情報に応じて生成された表示画像が表示部21に表示される。
以上のように、入力される画像の特徴量に基づいて候補位置が算出されるので、画面の固定位置の場合よりもさらに、ユーザにより選択され得る、すなわち、追尾対象として信頼性のある候補位置を表示することができる。
図9は、図3のオブジェクト追尾部52のさらに他の構成例を示している。図9のオブジェクト追尾部52は、追尾処理部71および追尾処理制御部72を備えている点は、図3のオブジェクト追尾部52と共通しているが、図9の追尾処理部71が、複数の追尾処理部71−1乃至71−n(n>1)により構成されていることが異なっている。
すなわち、n個の追尾処理部71−1乃至71−nは、追尾処理制御部72により生成された設定情報に基づいて、図3を参照して上述した追尾方式のうちの、それぞれ、種類の異なる追尾方式(例えば、簡単のために、追尾方式A、追尾方式B、…とする)で、それぞれ追尾を行い、追尾結果を追尾処理制御部72に出力する。これらの追尾処理部71の詳細は、図34または図38を参照して後述する。
追尾結果記憶部81には、追尾処理部71−1乃至71−nからのn個の追尾結果が記憶されるので、位置算出部82は、ユーザ操作情報に基づいて、追尾結果記憶部81の追尾結果の中から、1つの追尾結果を用いて、次のフレームの追尾対象の位置を求め、その他の追尾結果を用いて、候補位置を算出して、表示用追尾情報を生成し、その表示追尾情報を、全体システム制御部53に出力する。また、位置算出部82は、生成した表示用追尾情報とユーザ操作情報に基づいて、ユーザにより選択され、変更が指示された候補位置情報を、対象位置設定部83に供給する。
対象位置設定部83は、ユーザ操作情報が示す位置、または位置算出部82からの候補位置または追尾対象の位置を、次のフレームの追尾対象の位置として設定し、その設定情報を、各追尾処理部71−1乃至71−nにそれぞれ出力する。
なお、変更が指示されていない場合、位置算出部82からは、算出した追尾対象の位置情報が、対応する1の追尾処理部に対するものとして、対象位置設定部83に供給され、算出された候補位置情報が、対応するその他の追尾処理部に対するものとして、対象位置設定部83に供給される。すなわち、対象位置設定部83においては、各追尾処理部71の追尾結果が、そのまま次のフレームの追尾対象の位置としてそれぞれ設定される。
次に、図10のフローチャートを参照して、図9の追尾処理制御部72が実行する位置算出処理を説明する。
ステップS71において、位置算出部82は、追尾結果記憶部81に記憶される追尾結果の中から、1つの追尾結果(すなわち、ユーザにより指定された候補位置が対応する追尾結果)を用いて、追尾対象の位置を算出する。なお、初回には、ユーザ、または追尾装置12内において予め設定されている追尾方式での追尾処理を行う追尾処理部71による追尾結果が用いられて、追尾対象の位置が算出される。
ステップS72において、位置算出部82は、追尾結果記憶部81に記憶される追尾結果の中から、残りの追尾結果を用いて、候補位置を算出する。
ステップS73において、位置算出部82は、ステップS71において算出された追尾対象の位置、およびステップS72において算出された候補位置を用いて、表示用追尾情報を生成し、全体システム制御部53に出力する。ステップS73において出力された表示用追尾情報は、全体システム制御部53を介して、表示画像生成部54に出力される。
これにより、上述した図4のステップS9において、ユーザにより候補位置選択表示が指示されている場合には、表示画像生成部54によりステップS73において出力された表示用追尾情報に応じて生成された表示画像が表示部21に表示される。
図11は、表示部21に表示される表示画像の例を示している。図11の例においては、図6の例の場合と同様に、例えば、追尾処理開始時に表示される表示画像101と、追尾処理中に表示される表示画像151が示されている。
例えば、図11の表示画像101に示されるように、追尾処理開始時に、ユーザが人物111上のカーソルPが示す位置を追尾対象として指示した場合、対象位置設定部83は、カーソルPの位置を、追尾対象の位置として設定し、設定情報を、各追尾方式A乃至追尾方式Eでの追尾処理をそれぞれ行う追尾処理部71−1乃至71−nに供給する。これに対応して、追尾処理部71−1乃至71−nは、カーソルPが示す位置を追尾の対象位置として、追尾方式A乃至Eによる追尾を行っていく。
なお、図11の例の場合、追尾方式Aでの追尾処理を行う追尾処理部71−1の追尾結果から、追尾対象の位置が算出され、他の追尾処理部71−2乃至71−5の追尾結果から、候補位置が算出される。
処理開始から所定の時間の経過後の表示画像151においては、表示画像102の場合と同様に、ユーザが追尾対象として指示した人物111は、右上部に移動しており、左上部、左下部、および右下部には、木121、球122、および犬123がそれぞれ表示されている。
そして、表示画像151において、追尾方式A(追尾処理部71−1)の追尾結果から算出される追尾対象の位置を示すカーソルPは、ユーザが追尾対象として指示した人物111から外れた位置である、木121および犬123の間の位置に表示されている。追尾方式B(追尾処理部71−2)の追尾結果から算出される候補位置を示す点Q2は、ユーザが追尾対象として指示した人物111上の位置に表示されている。追尾方式C(追尾処理部71−3)の追尾結果から算出される候補位置を示す点Q3は、ユーザが追尾対象として指示した人物111から外れた位置である、木121および球122の間の位置に表示されている。
追尾方式D(追尾処理部71−4)の追尾結果から算出される候補位置を示す点Q4は、ユーザが追尾対象として指示した人物111から外れた位置である、犬123上の位置に表示されている。追尾方式E(追尾処理部71−5)の追尾結果から算出される候補位置を示す点Q5は、ユーザが追尾対象として指示した人物111から外れた位置である、球122上の位置に表示されている。
すなわち、追尾処理開始時から、所定の時間が経過した後の追尾処理中には、追尾方式Aによる追尾は、表示画像151中のカーソルPの位置に示されるように、例えば、変形やオクルージョンなどの原因により、ユーザが追尾対象として指示した人物111から外れてしまっている。
同様に、その他の追尾方式C乃至Eによる追尾も、表示画像151中の点Q3乃至Q5の位置に示されるように、例えば、変形やオクルージョンなどの原因により、ユーザが追尾対象として指示した人物111から外れてしまっている。
このとき、追尾方式Bを用いての追尾処理が正しく行われており、ユーザが追尾対象として指示した人物111上には、追尾方式Bを用いての追尾結果から算出された候補位置を示す点Q2が表示されている。これにより、ユーザは、点Q2が示している候補位置を選択し、変更を指示することができる。
そして、位置算出部82は、ユーザの指示に応じて、点Q2が示している候補位置、すなわち、追尾方式Bの追尾結果から算出された候補位置を、追尾方式A乃至Eの追尾対象の位置として、対象位置設定部83に設定させる。これにより、次フレームからは、点Q2の位置が含まれるオブジェクト、すなわち、人物111が追尾対象として、再度、追尾方式A乃至Eを用いての各追尾が開始され、表示部21には、そのうちの追尾方式Bの追尾結果を用いて算出された追尾対象の位置がカーソルPにより示される。
なお、図11の例の表示画像151には、カーソルPと共に、カーソルPが示す位置を追尾した追尾方式Aを示す「方式A」の文字が表示されており、各点Q2乃至点Q5と共に、点Q2乃至点Q5が示す位置を追尾した追尾方式B乃至Eを示す「方式B」乃至「方式E」の文字が表示されているが、これらの文字の表示は、非表示にすることも可能である。
以上のように、例えば、方式Aで追尾を行ったときに、何らかの外乱により、追尾対象が外れてしまった場合であっても、他の方式で求められた追尾結果が候補位置として示されている。
すなわち、追尾結果の傾向が互いに異なる複数の追尾方式により追尾を行う場合、1つの追尾方式の追尾ができなくなったとしても、他の追尾方式で正確な追尾ができている可能性が高い。したがって、追尾結果の傾向が互いに異なる複数の追尾方式の追尾結果を、候補位置として表示させることにより、ユーザが追尾対象としたいオブジェクト上にその候補位置が表示される可能性が高い。
これにより、ユーザは、表示部21に表示される表示画像の候補位置を選択し、変更するだけで、細かい調整などを行わなくても、容易に、追尾対象の再設定を行うことができる
ここで、上述した図9のオブジェクト追尾部52においては、基本的にユーザから候補位置の変更指示があるときには、全n個の追尾方式は、それぞれ、ユーザが選択する候補位置を追尾対象として追尾を再開することで、追尾対象の位置の変更が行われているが、各追尾方式の追尾結果を完全に独立に制御した場合、長く時間が経過すると、実際には、追尾対象の変形やオクルージョンを受けるなどの理由で、それぞれの追尾方式による追尾では、すでに追尾対象の位置が、ユーザが指示した追尾対象から外れている恐れがある。すなわち、ユーザが所望する追尾対象に、どの候補位置も表示されない恐れがある。
そこで、次に、追尾方式毎に独立して追尾を行わせるのではなく、追尾結果に所定の拘束条件を与えて、所定の拘束条件で拘束される追尾結果に基づいて、次フレームの追尾対象の位置を更新する例を説明する。
図12は、図9のオブジェクト追尾部52の他の構成例を示している。図12の例においては、追尾処理部71は共通しているが、追尾処理制御部72の詳細な構成が異なっている。すなわち、図12の追尾処理制御部72には、追尾結果記憶部81、位置算出部82、および位置対象設定部83の他に、追尾結果更新部161が追加されている。
追尾結果更新部161は、追尾結果記憶部81に記憶される複数の追尾結果のうち、1つを基本追尾方式の追尾結果として設定し、所定の拘束条件を満たしたとき、基本追尾方式の追尾結果の位置で、他の追尾方式の一部、または全部の追尾結果の位置を更新する。
追尾結果更新部161における、所定の拘束条件としては、例えば、時間の経過や、基本追尾方式の追尾結果と他の全ての追尾結果の差異の大きさなどが用いられる。
位置算出部82は、ユーザ操作情報に基づいて、追尾結果記憶部81の追尾結果の中から、1つの追尾結果を用いて、次のフレームの追尾対象の位置を求め、その他の追尾結果を用いて、候補位置を算出して、表示用追尾情報を生成し、その表示追尾情報を、全体システム制御部53に出力する。すなわち、図12の位置算出部82は、少なくとも他の追尾方式の一部の追尾結果の位置が更新されている追尾結果を用いて候補位置を算出することとなる。
次に、図13のフローチャートを参照して、図12の追尾処理制御部72が実行する位置算出処理を説明する。なお、以降のステップS92乃至S94の処理は、図10のステップS71乃至S73と基本的に同様の処理を行うため繰り返しになるので、その説明は適宜省略する。
図4のステップS2の追尾処理により、追尾結果記憶部81には、各追尾処理部71−1乃至71−nによる追尾結果が記憶されている。ステップS91において、追尾結果更新部161は、追尾結果更新処理を実行する。この追尾結果更新処理は、図14のフローチャートに示されている。
ステップS111において、追尾結果更新部161は、内蔵するタイマで計時動作を行い、所定の時間が経過したか否かを判定する。ステップS111において、所定の時間が経過したと判定された場合、ステップS112において、追尾結果更新部161は、追尾結果記憶部81に記憶される、少なくとも一部の他の追尾方式の追尾結果の位置を、基本追尾方式の追尾結果に基づいて更新させる。すなわち、少なくとも一部の他の追尾方式の追尾結果の位置が、基本追尾方式の追尾結果の位置で更新される。
ステップS111において、所定の時間が経過していないと判定された場合、ステップS112の処理はスキップされ、処理は、図13のステップS91に戻り、ステップS92に進む。
ステップS92において、位置算出部82は、追尾結果記憶部81に記憶される追尾結果の中から、1つの追尾結果(すなわち、ユーザにより指定された候補位置に対応する追尾結果を追尾した追尾処理部71の次フレームの追尾結果)を用いて、追尾対象の位置を算出する。
ステップS93において、位置算出部82は、追尾結果記憶部81に記憶される追尾結果の中から、残りの追尾結果を用いて、候補位置を算出する。なお、ステップS91において、所定の時間が経過した場合には、少なくとも一部の他の追尾方式の追尾結果の位置が、基本追尾方式の追尾結果の位置で更新されているため、更新時のフレームにおいては、更新された追尾結果から算出される候補位置は、基本追尾方式の追尾結果から算出される候補位置と同じ位置を示すこととなる。
ステップS94において、位置算出部82は、ステップS92において算出された追尾対象の位置、およびステップS93において算出された候補位置を用いて、表示用追尾情報を生成し、全体システム制御部53に出力する。ステップS94において出力された表示用追尾情報は、全体システム制御部53を介して、表示画像生成部54に出力される。
上述した図14の追尾結果の更新処理を、図15を参照して詳しく説明する。
図15の例においては、時刻Tにおける2つの追尾方式(追尾方式Aおよび追尾方式B)による追尾結果が、説明の便宜上、1次元で示されている。すなわち、横軸は時間tの経過を表し、縦軸は、位置xを表している。ここでは、追尾方式Aを基本追尾方式として、時刻T毎に、他の追尾方式Bの追尾結果を更新する例を説明する。
まず、ユーザが指示する追尾対象の位置で、追尾方式Aおよび追尾方式Bによる追尾が共に開始されるが、時間の経過に伴って、実線で示される追尾方式Aと、点線で示される追尾方式Bの追尾結果の各位置は、異なる種類の追尾方式での追尾を行っていることから、離れていってしまうことがある。
そこで、追尾開始から時間Tが経過した時刻Tにおいて、追尾方式Bによる追尾結果の位置を、追尾方式Aによる追尾結果の位置で更新するようにする。時刻2Tおよび時刻3Tにおいても、同様に、追尾方式Bによる追尾結果の位置が、追尾方式Aによる追尾結果の位置で更新される。
以上のように、ユーザが追尾対象を変更しようとしなければ、時間の経過に伴って、どんどん離れていってしまう追尾結果(軌跡)を、ある追尾方式の追尾結果に拘束させる、換言するに、一致させることにより、常に信頼できる候補位置を得ることができる。
なお、図15の例においては、追尾方式Aを基本追尾方式に固定した例が示されているが、例えば、図16の例に示されるように、基本追尾方式を、途中で、他の追尾方式に切り替えることも可能である。
すなわち、図16の例においては、時刻2Tの直後に、基本追尾方式を、追尾方式Aから、追尾方式Bに切り替えている例が示されている。
これにより、時刻Tおよび時刻2Tにおいては、点線に示される追尾方式Bによる追尾結果の位置が、実線に示される追尾方式Aによる追尾結果の位置で更新されているが、基本追尾方式が追尾方式Bに切り替えられた後の時刻3Tにおいては、実線に示される追尾方式Aによる追尾結果の位置が、点線に示される追尾方式Bによる追尾結果の位置で更新されている。
なお、図15および図16の例においては、更新間隔が一定の例が示されているが、一定ではなく、可変にすることも可能である。
さらに、図17のフローチャートを参照して、図13のステップS91の追尾結果更新処理の例を説明する。すなわち、図17の処理は、図14の追尾結果更新処理の他の例である。
図4のステップS2の追尾処理により、追尾結果記憶部81には、各追尾処理部71−1乃至71−nによる追尾結果が記憶されている。ステップS131において、追尾結果更新部161は、基本追尾方式の追尾結果の位置と他の追尾方式の追尾結果の位置の距離を求め、その距離が所定の閾値以上であるか否かを判定する。
ステップS131において、基本追尾方式の追尾結果の位置との距離が所定の閾値以上であると判定された場合、ステップS132において、追尾結果更新部161は、追尾結果記憶部81に記憶される、少なくとも一部の他の追尾方式の追尾結果の位置を、基本追尾方式の追尾結果に基づいて更新させる。
ステップS131において、基本追尾方式の追尾結果との距離が所定の閾値以上ではないと判定された場合、ステップS132の処理はスキップされ、処理は、図13のステップS91に戻る。
上述した図17の追尾結果の更新処理を、図18を参照して詳しく説明する。
図18の例においては、時刻Tにおける3つの追尾方式(追尾方式A乃至C)による追尾結果が、説明の便宜上、1次元で示されている。すなわち、横軸は時間tの経過を表し、縦軸は、位置xを表している。ここでは、追尾方式Aを基本追尾方式として、他の追尾方式との追尾結果との追尾結果の距離が大きく離れた場合に、他の追尾方式BおよびCを更新する例を説明する。
まず、ユーザが指示する追尾対象の位置で、追尾方式A乃至Cによる追尾が共に開始されるが、時間の経過に伴って、実線で示される追尾方式A、点線で示される追尾方式B、および一点鎖線で示される追尾方式Cの追尾結果の各位置は離れていってしまう。
そこで、時刻tにおける、各追尾方式A乃至Cの追尾結果の位置をそれぞれxa(t),xb(t),xc(t)として、他の追尾方式BおよびCの各位置と、追尾方式Aの位置との距離の平均Dを求める。
他の追尾方式BおよびCの各位置と、追尾方式Aの位置との距離の平均Dが、図19に示されるように、所定の閾値(Dth)以上になったとき(すなわち、時刻T)で、追尾方式BおよびCの追尾結果の位置を、追尾方式Aの追尾結果の位置で更新するようにする。これにより、図19の例においては、距離の平均Dが、所定の閾値(Dth)以上になった時刻Tにおいて、その距離の平均Dが一旦0になり(すなわち、リセットされ)、再度、距離の平均Dは、その0から時間の経過に伴い加算されていく。
なお、この判定式は、次の式(1)で表すことができる。
この場合も、図16の例の場合と同様に、基本追尾方式を途中で切り替えることができる。なお、他には、他の追尾方式BおよびCの追尾結果の各位置と、追尾方式Aの追尾結果の位置との距離の分散を計算し、分散が大きくなったときに更新するようにすることもできる。
なお、以上においては、追尾結果を拘束する条件として、図15および図16を参照して時間を用いる例、並びに、図18を参照して追尾結果の差の大きさを用いる例を説明したが、拘束条件は、どちらか一方でもよいし、両方を用いることもできる。
また、例えば、追尾処理部71−1において、基本追尾方式としての追尾方式Aが行われる場合に、追尾処理部71−2と追尾処理部71−3に、同じ追尾方式Bによる追尾を行わせ、図20に示されるように、追尾処理部71−2については、第1のタイミング(例えば、時刻T,3T,5T,…)で2T時間毎に、追尾方式Aの追尾結果で更新を行わせ、追尾処理部71−3については、第1のタイミングとは異なる第2のタイミング(例えば、時刻2T,4T,6T,…)で2T時間毎に、追尾方式Aの追尾結果で更新を行わせることもできる。
図20の例においては、時刻Tにおける2つの追尾方式(追尾方式AおよびB)による追尾結果が、説明の便宜上、1次元で示されている。すなわち、横軸は時間tの経過を表し、縦軸は、位置xを表している。ここでは、追尾方式Aを基本追尾方式として、時刻2T毎に、他の追尾方式Bの更新タイミングの異なるもの2つ(以下、追尾方式B−1および追尾方式B−2とする)を、それぞれタイミングをずらして更新する例を説明する。
まず、ユーザが指示する追尾対象の位置で、追尾方式Aおよび追尾方式B−1による追尾が共に開始され、追尾方式Aの追尾が開始してから時間Tが経過した時刻Tにおいて、追尾方式Aの追尾結果の位置から追尾方式B−2による追尾も開始される。
そして、追尾方式AおよびB−1の追尾が開始されてから時間2Tが経過した時刻2Tにおいて、点線で示される追尾方式B−1による追尾結果の位置を、実線で示される追尾方式Aによる追尾結果の位置で更新するようにする。このとき、一点鎖線で示される追尾方式B−2による追尾結果の位置は、更新されず、更新されない追尾方式B−2による追尾結果の位置が、候補位置として算出される。
さらに、追尾方式Aの追尾が開始されてから時間3T(追尾方式B−2による追尾が更新されてから時間2T)が経過した時刻3Tにおいて、一点鎖線で示される追尾方式B−2による追尾結果の位置を、実線で示される追尾方式Aによる追尾結果の位置で更新するようにする。このとき、点線で示される追尾方式B−1による追尾結果の位置は、更新されず、更新されない追尾方式B−1による追尾結果の位置が、候補位置として算出される。
ここで、例えば、時刻2Tにおける追尾方式B−2の更新直後に、基本追尾方式である追尾方式Aで所望の追尾結果が得られなくなってしまった場合、次に、時刻3Tにおいて追尾方式Aの追尾結果で更新される追尾方式B−1は、所望の追尾結果を得られなくなった基本追尾方式に合わせられてしまう。これに対して、このとき更新されない追尾方式B−2は、所望の追尾結果が得られなくなってしまう前の追尾方式Aの追尾結果で更新されており、正しく追尾できている可能性が高い。したがって、この追尾方式B−2の追尾結果を候補位置として算出することで、信頼性の高い候補位置を表示させることができる。
以上のように、更新タイミングがすべて同じであると、他の追尾方式が、例えば、更新直後に所望の追尾結果を得られなくなってしまった場合の基本追尾方式にすべて合わせられてしまうことが起こり得るが、それを回避することができる。
これにより、より信頼できる候補位置を得ることができる。なお、以上の効果を得るためには、複数の追尾処理部71−1乃至71−nで用いられる追尾方式を限定するものではなく、互いに追尾結果の傾向が異なる追尾方式を複数用意することが必要である。
例えば、追尾方式としては、輝度波形に基づいてブロックマッチングを行う輝度波形ブロックマッチング方式、色波形に基づいてブロックマッチングを行う色波形ブロックマッチング方式、特許文献1に記載の乗り換え付き点追尾方式、動き領域重心追尾方式、または、過去動きで一定時間外挿を行う方式などが挙げられる。
色波形ブロックマッチング方式は、用いる情報が輝度の代わりに色である以外は、輝度波形ブロックマッチング方式と同様の処理を行う。輝度波形ブロックマッチング方式では、追尾対象に輝度変化があった場合、対象から外れてしまう恐れが多かったが、色波形ブロックマッチング方式においては、輝度の成分を排除した色情報を用いることで、輝度変化があった場合であっても、正しく追尾できている可能性が高い。
乗り換え付き点追尾方式は、図38を参照して詳しく後述するが、予め前フレームにおいて追尾点の乗り換え候補を求めておき、例えば、ブロックマッチングにより追尾点に動きが求められなくなったとき、追尾点を、その乗り換え候補に乗り換えさせることで、追尾対象が回転したり、オクルージョンが発生したり、シーンチェンジが発生する等、追尾点が一時的に見えなくなる場合に対応させるようにしたものである。
動き領域重心追尾方式は、図34を参照して詳しく後述するが、固定領域内のあるサンプリング間隔毎に動き検出(例えば、ブロックマッチング)を行い、領域内で多数を占める動きと類似する動きを示す領域を追尾対象の領域と定義し、領域の重心を追尾対象の位置として追尾するものである。
過去動きで一定時間外挿を行う方式は、上述した追尾方式のうちの、ある追尾方式の過去の動きに基づいて、対象の動きを予測するものである。例えば、輝度波形ブロックマッチング方式などで追尾された追尾結果が、オクルージョンで前景に追尾対象が移ったときなどには、図21に示されるような軌跡を示すことがある。
図21の例においては、時刻t-5乃至時刻t+4における追尾結果の軌跡が示されている。追尾位置x(t-5)乃至追尾位置x(t+4)は、時刻t-5乃至時刻t+4における追尾結果をそれぞれ表しており、各追尾位置間の矢印は、各時刻間の動きを表している。追尾位置x(t-5)乃至追尾位置x(t)に示されるように、時刻t-5乃至時刻tでは、なだらかな動きが連続しているが、時刻t+1において、オクルージョンで前景に追尾対象が移ったなどの原因により、追尾位置x(t)から追尾位置x(t+1)への動きが不連続になってしまっている。
そこで、このような場合に、図22に示されるように、時刻t-5乃至時刻t間の実線に示される過去の動きの履歴に基づいて、一点鎖線に示される外挿動きと、外挿するタイミングを決定し、決定されたタイミング(いまの場合、時刻tの後)から、過去の動きの履歴に基づいて求められた外挿動きを、点線で示される実際に求められる動き(図21)の代わりに、一定時間代用し続けさせるという方式である。
このとき決定される外挿するタイミングとしては、例えば、ユーザが追尾対象を指示してから、一定時間毎(例えば、120フレーム毎など)としたり、あるいは、過去の動きの履歴を見て、動きが不連続になるとき(例えば、過去、数フレームの平均動きから大きく異なるとき)などが挙げられる。
また、このとき決定される外挿動きとしては、外挿するタイミングの数フレーム前の動きや、過去、数フレームの平均動きなどが挙げられる。なお、外挿するタイミングの数フレーム前でなくても、直前動きも考えられるが、直前の動きはオブジェクトの境界での動きになっている可能性があり、適切ではない場合もある。
なお、輝度波形ブロックマッチング方式を用いて追尾する場合を説明したが、追尾方式は限定されず、どの追尾方式であってもよい。
以上のように、追尾結果の傾向が相互に異なる複数の追尾方式を用いて追尾を行い、それらの追尾結果を候補位置とするようにしたので、さまざまな外乱に対応した信頼性のある候補を表示させることができる。これにより、ユーザは、表示部21に表示される表示画像の候補位置を選択し、変更するだけで、細かい調整などを行わなくても、容易に、追尾対象の再設定を行うことができる。
なお、上記説明においては、複数の追尾処理部71−1乃至71−nにそれぞれ異なる追尾方式での追尾を行わせるようにしたが、例えば、追尾方式は同じとして、それぞれの追尾処理部71−1乃至71−nに、初期設定の位置として、異なる追尾対象の位置で追尾処理を行わせることもできる。なお、追尾方式は、すべてが同じであってもよいし、少なくとも1以上異なっていてもよい。
例えば、図23の表示画像101に示されるように、追尾処理開始時に、ユーザが人物111上のカーソルPが示す位置を追尾対象として指示した場合、対象位置設定部83は、カーソルPの位置と、カーソルPと同じオブジェクトに含まれ、カーソルPを中心とする近傍の異なる位置を、それぞれの追尾処理部71−1乃至71−nの追尾対象の位置として設定し、設定情報を、対応する追尾処理部71−1乃至71−nに供給する。
なお、図23の例においては、n=5の場合の例を説明する。
例えば、人物111上のカーソルPの位置が、追尾処理部71−1の追尾対象の位置として設定され、人物111上のカーソルPの上部近傍に位置する点Q2の位置が、追尾処理部71−2の追尾対象の位置として設定され、人物111上のカーソルPの右側近傍に位置する点Q3の位置が、追尾処理部71−3の追尾対象の位置として設定され、人物111上のカーソルPの下部近傍に位置する点Q4の位置が、追尾処理部71−4の追尾対象の位置として設定され、人物111上のカーソルPの左側近傍に位置する点Q5の位置が、追尾処理部71−5の追尾対象の位置として設定される。
これに対応して、追尾処理部71−1乃至71−5は、カーソルP、点Q2乃至点Q5が示す位置を追尾の対象位置として、それぞれ、追尾を行っていく。
なお、図23の例の場合、カーソルPの位置について追尾処理を行う追尾処理部71−1の追尾結果から、追尾対象の位置が算出され、他の追尾処理部71−2乃至71−5の追尾結果から、候補位置が算出される。
処理開始から所定の時間の経過後には、表示画像181において、表示画像151の場合と同様に、ユーザが追尾対象として指示した人物111は、右上部に移動しており、左上部、左下部、右上部、および右下部には、木121、球122、人物111、および犬123がそれぞれ表示されている。
そして、表示画像101におけるカーソルPの位置を所定時間追尾した(追尾処理部71−1の)追尾結果から算出される、表示画像181上の追尾対象の位置を示すカーソルPは、ユーザが追尾対象として指示した人物111から外れ、木121および犬123の間の位置に表示されている。表示画像101における点Q2の位置を所定時間追尾した(追尾処理部71−2)の追尾結果から算出される、表示画像181上の候補位置を示す点Q2は、ユーザが追尾対象として指示した人物111上の位置に表示されている。表示画像101における点Q3の位置を所定時間追尾した(追尾処理部71−3)の追尾結果から算出される、表示画像181上の候補位置を示す点Q3は、ユーザが追尾対象として指示した人物111から外れて、犬123上の位置に表示されている。
表示画像101における点Q4の位置を所定時間追尾した(追尾処理部71−4)の追尾結果から算出される、表示画像181上の候補位置を示す点Q4は、ユーザが追尾対象として指示した人物111から外れて、球122の境界上の位置に表示されている。表示画像101における点Q5の位置を所定時間追尾した(追尾処理部71−5)の追尾結果から算出される、表示画像181上の候補位置を示す点Q5は、ユーザが追尾対象として指示した人物111から外れて、木121および球122の間の位置に表示されている。
すなわち、追尾処理開始時から、所定の時間が経過した後の追尾処理中には、カーソルPの位置についての追尾は、表示画像181中のカーソルPの位置に示されるように、例えば、変形やオクルージョンなどの原因により、ユーザが追尾対象として指示した人物111から外れてしまっている。
同様に、その他の点Q3乃至点Q5の位置についての追尾も、表示画像181中の点Q3乃至点Q5の位置に示されるように、例えば、変形やオクルージョンなどの原因により、ユーザが追尾対象として指示した人物111から外れてしまっている。
このとき、点Q2の位置についての追尾処理が略正しく行われており、表示画像181中の追尾対象111上には、点Q2の位置についての追尾結果から算出された候補位置を示す点Q2が表示されているので、ユーザは、表示画像181において、点Q2が示している候補位置を選択し、変更を指示する。
これに対応して、位置算出部82は、点Q2が示している候補位置、すなわち、追尾方式Bの追尾結果から算出された候補位置を、追尾対象の位置として、対象位置設定部83に出力する。対象位置設定部83は、点Q2が示している候補位置を、追尾処理部71−1の追尾対象の位置として設定し、人物111上の点Q2の上部、右側、下部、および左側の各近傍に位置する図示せぬ位置を、追尾処理部71−2乃至72−5の追尾対象の位置として設定する。
これにより、次のフレームからは、点Q2の位置が含まれるオブジェクト、すなわち、人物111が追尾対象として、追尾処理部71−1により追尾が開始され、表示部21には、その追尾結果を用いて算出された追尾対象の位置がカーソルPにより示される。
なお、図23の例の表示画像101および181には、カーソルPおよび各点Q2乃至点Q5と共に、カーソルPおよび点Q2乃至点Q5が示す位置と、カーソルPの位置との位置関係を示す「中心」、「上」、「右」、「下」、および「左」の文字が表示されているが、これらの文字の表示は、非表示にすることも可能である。
以上のように、ユーザの指示した追尾対象の位置を含めたその近傍の異なる複数の位置を、各追尾対象位置として、複数の追尾を行い、それらの追尾結果を候補位置とすることでも、さまざまな外乱に対応した信頼性のある候補を表示させることができる。これにより、ユーザは、表示部21に表示される表示画像の候補位置を選択し、変更するだけで、細かい調整などを行わなくても、容易に、追尾対象の再設定を行うことができる。
次に、上述したようにして求められる複数の候補位置の表示例とその操作方法について詳しく説明する。図4のステップS4乃至S6を参照して上述した位置算出部82の判定処理に示されるように、ユーザは、所望の追尾結果が得られていないと判断したときに、追尾装置12に対して、図24に示されるようなリモートコントローラ55を用いて、候補位置選択表示を指示し、対応する候補位置を選択して決定することで、追尾対象の位置を、所望の候補位置に変更するように、指示を入力することができる。
図24は、図2のリモートコントローラ55の構成例を示している。図24の例においては、リモートコントローラ55には、上から順に9個の候補選択ボタン221−1乃至221−9、機能選択ボタン222−1乃至222−4、および決定ボタン223が備えられている。
機能選択ボタン222−1乃至222−4は、追尾装置12に所定の機能を指示するためのボタンである。例えば、機能選択ボタン222−4は、候補位置選択表示を指示するためのボタンであり、ユーザにより機能選択ボタン222−4が指示された場合には、上述した図4のステップS9において、表示画像生成部54により、追尾対象の位置とともに、候補位置を示した表示画像、すなわち、図25に示される、候補位置が一覧できる候補一覧画像241が生成され、表示部21に表示される。
図25の候補一覧画像241は、図6の表示画像102と同様に、左上部に木121、左下部に球122、右上部に人物111、および右下部に犬123が撮像されて入力された画像に、追尾対象の位置および複数の候補位置を示すため、候補名を示す文字とともにカーソルPと点Rなどの小画像(アイコン)が重畳されて構成されている。
木121および球122の間に位置する候補位置には、「候補1」の文字と点Rが重畳されており、木121および犬123の間に位置する候補位置には、「候補2」の文字とカーソルPが重畳されており、人物111上に位置する候補位置には、「候補3」の文字と点Rが重畳されており、球122の境界上に位置する候補位置には、「候補4」の文字と点Rが重畳されており、犬123上に位置する候補位置には、「候補5」の文字と点Rが重畳されている。
すなわち、図25の例においては、ユーザによる選択中の候補位置と他の候補位置の判別可能を目的として、選択中の候補位置には、候補名を示す文字とともに十字のカーソルP、他の候補位置には、候補名を示す文字とともに点Rが表示されるように、マークの形状を変えて表示させている。例えば、マークの形状を変える以外に、例えば、マークの大きさや、色などを変えて、選択中の候補位置との判別を可能にさせることもできる。
なお、図25の例の場合、候補一覧画像241が表示された直後(すなわち、ユーザによる選択の指示がまだないとき)が示されているので、追尾対象の位置が選択されていることとして、追尾対象である「候補2」の位置に、カーソルPが表示されており、その他の候補位置(「候補1」、および「候補3」乃至「候補5」の位置)には、点Rがそれぞれ表示されている。
図24に戻って、候補選択ボタン221−1乃至221−9は、候補一覧画像241に表示される候補位置に1対1で対応するボタンであり、例えば、候補選択ボタン221−1乃至221−5は、それぞれ、「候補1」乃至「候補5」の文字で示される各候補位置に対応している。
したがって、ユーザが候補選択ボタン221−3を押下した場合、「候補3」の文字で示される候補位置にカーソルPが表示され、「候補3」の文字で示される候補位置が選択される。このとき、「候補2」の文字で示される候補位置には、他の候補位置と同様の点Rが表示される。ユーザが他の候補選択ボタン221−1,221−2,221−4,および221−5を押下した場合にも同様に、対応する候補位置にカーソルPが表示され、いままでカーソルPが表示されていた候補位置には、点Rが表示される。
なお、図24の例の場合、候補選択ボタン221−6乃至221−9は、対応する候補位置がないので、押下されたとしても追尾装置12に対しての指示は送信されない。
決定ボタン223は、候補選択ボタン221−1乃至221−9が押下されることで選択されている候補位置を、追尾対象として決定するためのボタンである。
したがって、例えば、「候補3」の文字で示される候補位置にカーソルPが表示されている場合、すなわち、「候補3」の文字で示される候補位置が選択されている場合に、ユーザにより、リモートコントローラ55の決定ボタン223が押下されると、追尾装置12においては、「候補3」の文字で示されている候補位置が、追尾対象の位置として設定される。
これにより、例えば、「候補3」の文字で示されている候補位置またはその位置が含まれる候補領域が、追尾対象の位置として設定されるので、候補位置または候補領域を含んで構成されるオブジェクトである人物111が追尾対象として追尾される。
なお、候補位置の選択については、候補位置に1対1に対応する候補選択ボタン221−1乃至221−9を押下する場合を説明したが、候補選択ボタン221−1乃至221−9を設けずに、例えば、図24の機能選択ボタン222−3を、候補を選択するためのボタンとして構成し、機能選択ボタン222−3を押下する度に、例えば、図26に示されるように、選択される候補位置が順番に切り替わるようにすることもできる。
また、これらの候補選択ボタン221−1乃至221−9と機能選択ボタン222−3とを両方装備してリモートコントローラ55を構成することもできるし、候補選択ボタン221−1乃至221−9または機能選択ボタン222−3のどちらか一方だけを装備してリモートコントローラ55を構成することも可能である。
図26の例においては、5つの候補位置が選択されることによる候補一覧画像251−1乃至251−5の遷移の例が示されている。
まず、表示部21には、候補一覧画像251−1が表示画像として表示されている。候補一覧画像251−1においては、「候補1」の文字で示される候補位置には、図25で上述したように、選択中を示すカーソルPが表示され、その他の候補位置には点Rが表示されている。
例えば、「候補1」の文字で示される候補位置が選択中である候補一覧画像251−1が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、表示部21には、矢印に示されるように、「候補1」の文字で示される候補位置に点Rが表示され、「候補2」の文字で示される候補位置にカーソルPが表示される、すなわち、「候補2」の文字で示される候補位置が選択中である候補一覧画像251−2が、表示画像として表示される。
候補一覧画像251−2が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、表示部21には、矢印に示されるように、「候補2」の文字で示される候補位置に点Rが表示され、「候補3」の文字で示される候補位置にカーソルPが表示される、すなわち、「候補3」の文字で示される候補位置が選択中である候補一覧画像251−3が、表示画像として表示される。候補一覧画像251−3が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、表示部21には、矢印に示されるように、「候補3」の文字で示される候補位置に点Rが表示され、「候補4」の文字で示される候補位置にカーソルPが表示される、すなわち、「候補4」の文字で示される候補位置が選択中である候補一覧画像251−4が、表示画像として表示される。
候補一覧画像251−4が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、表示部21には、矢印に示されるように、「候補4」の文字で示される候補位置に点Rが表示され、「候補5」の文字で示される候補位置にカーソルPが表示される、すなわち、「候補5」の文字で示される候補位置が選択中である候補一覧画像251−5が、表示画像として表示される。候補一覧画像251−5が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、表示部21には、矢印に示されるように、「候補5」の文字で示される候補位置に点Rが表示され、「候補1」の文字で示される候補位置にカーソルPが表示される、すなわち、再度、「候補1」の文字で示される候補位置が選択中である候補一覧画像251−1が、表示画像として表示される。
したがって、「候補1」の文字で示される候補位置が選択中である候補一覧画像251−1が表示されているときに、例えば、人物111を追尾対象としたいときには、ユーザは、機能選択ボタン222−3を2度押下すればよい。
これにより、「候補3」の文字で示される候補位置が選択中である候補一覧画像251−3が表示画像として表示される。ここで、ユーザによりリモートコントローラ55の決定ボタン223が押下されれば、追尾装置12においては、「候補3」の文字で示されている候補位置が、追尾対象の位置として設定される。
すなわち、ユーザは、リモートコントローラ55の機能選択ボタン222−3を押下して、所望の候補位置を選択し、その後、リモートコントローラ55の決定ボタン223を押下するだけで、「候補3」の文字で示されている候補位置または候補領域を含んで構成されるオブジェクトである人物111を追尾対象として追尾させることができる。
次に、図2の表示画像生成部54の他の構成例とその動作について説明する。図27は、ズーム画像を生成する表示画像生成部54の詳細な構成例である。
図27の表示画像生成部54は、拡大信号処理部301および追尾結果選択候補表示制御部302により構成される。
拡大信号処理部301は、入力画像を用いて、全体システム制御部53からのユーザ操作情報と、オブジェクト追尾部52の追尾処理により得られる表示用追尾情報に応じて、ズーム画像を生成し、生成したズーム画像を、追尾結果選択候補表示部302に出力する。
追尾結果選択候補表示部302は、拡大信号処理部301からのズーム画像を用いて、必要に応じて、入力画像も用いて、表示画像を生成し、生成した表示画像を、表示部21に表示させる。例えば、追尾結果選択候補表示部302は、ズーム画像に、必要に応じて、入力画像を用いて、全体システム制御部53からのユーザ操作情報と、オブジェクト追尾部52の追尾処理により得られる表示用追尾情報に応じて生成した追尾対象の位置と候補位置を示した縮小画像(すなわち、図25を参照して上述した候補一覧画像を縮小したもの)を重畳して、表示画像を生成し、生成した表示画像を、表示部21に表示させる。
次に、図27の表示画像生成部54の動作について説明する。図28は、図27の表示画像生成部54の表示画像生成処理の詳細を説明するフローチャートである。なお、この表示画像生成処理は、図4のステップS9の表示画像生成処理の他の例である。
ステップS301において、拡大信号処理部301は、入力画像を用いて、全体システム制御部53からのユーザ操作情報と、オブジェクト追尾部52の追尾処理により得られる表示用追尾情報に応じて、ズーム画像を生成する。
例えば、ユーザにより候補位置選択表示が指示されていない場合には、図29の表示画像101に示されるように、追尾処理開始時に、ユーザが人物111上のカーソルPが示す位置を追尾対象として指示した場合、対象位置設定部83により、カーソルPの位置が、追尾対象の位置として設定されるとともに、位置算出部82は、追尾対象の位置および候補位置の情報を、表示用追尾情報として、表示画像生成部54に送信してくる。
したがって、拡大信号処理部301は、追尾対象の位置(すなわち、ユーザが追尾対象として指示した人物111)、を中心としたズーム画像321を生成し、生成したズーム画像321を、追尾結果選択候補表示部302に出力する。
このズーム画像生成処理は、本出願人が先に提案しているクラス分類適応処理を利用して行うことができる。例えば、特開2002−196737公報には、予め学習して得た係数を用いて、525i信号を1080i信号に変換する処理が開示されている。この処理は、垂直方向と水平方向の両方に9/4倍に画像を拡大する処理と実質的に同様の処理である。ただし、表示部21は、画素数が一定であるため、拡大信号処理部301は、例えば9/4倍の画像を作成する場合、525i信号を1080i信号に変換した後、追尾点を中心とする所定の数の画素(表示部21に対応する数の画素)を選択することでズーム画像を生成することができる。
この原理に基づいて、任意の倍率のズーム画像を生成することができる。
ステップS302において、追尾結果選択候補表示部302は、拡大信号処理部301からのズーム画像を用いて、表示画像を生成し、生成した表示画像を、表示部21に表示させる。すなわち、追尾結果選択候補表示部302は、ズーム画像に、必要に応じて、入力画像を用いて、全体システム制御部53からのユーザ操作情報と、オブジェクト追尾部52の追尾処理により得られる表示用追尾情報に応じて生成した追尾対象の位置と候補位置を示した候補一覧画像を縮小したものを重畳して、表示画像を生成する。
なお、いまの場合、ユーザにより候補位置選択表示が指示されていないので、図29に示されるように、追尾対象である人物111の位置を中心に生成されたズーム画像321が、表示画像として表示部21に表示される。
一方、ユーザにより候補位置選択表示が指示されている場合には、例えば、選択中の候補位置を中心に生成されたズーム画像が生成されて、図30に示されるように、表示画像として表示部21に表示することもできる。
例えば、図25の候補一覧画像241を参照して説明すると、図25の候補一覧画像241において、「候補1」の文字で示される候補位置(すなわち、木121および球122の間に位置する候補位置)が選択されている場合、拡大信号処理部301においては、木121および球122の間に位置する候補位置を中心としたズーム画像351−1が生成されて、表示部21には、図30に示されるように、生成されたズーム画像351−1が表示画像として表示される。
ここで、例えば、図26の例の場合と同様に、ユーザにより、リモートコントローラ55に備えられた、押下する度に選択される候補位置が順番に切り替わる機能を有する機能選択ボタン222−3が用いられるとする。
すなわち、図30のズーム画像351−1が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、図25の候補一覧画像241における「候補1」の文字で示される候補位置から、例えば、「候補2」の文字で示される候補位置(すなわち、木121および犬123の間に位置する候補位置)に選択が切り替わり、拡大信号処理部301においては、木121および犬123の間に位置する候補位置を中心としたズーム画像351−2が生成されて、表示部21には、矢印に示されるように、生成されたズーム画像351−2が表示画像として表示される。
図30のズーム画像351−2が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、図25の候補一覧画像241における「候補2」の文字で示される候補位置から、例えば、「候補3」の文字で示される候補位置(すなわち、人物111上に位置する候補位置)に選択が切り替わり、拡大信号処理部301においては、人物111上に位置する候補位置を中心としたズーム画像351−3が生成されて、表示部21には、矢印に示されるように、生成されたズーム画像351−3が表示画像として表示される。
図30のズーム画像351−3が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、図25の候補一覧画像241における「候補3」の文字で示される候補位置から、例えば、「候補4」の文字で示される候補位置(すなわち、球122の境界上に位置する候補位置)に選択が切り替わり、拡大信号処理部301においては、球122の境界上に位置する候補位置を中心としたズーム画像351−4が生成されて、表示部21には、矢印に示されるように、生成されたズーム画像351−4が表示画像として表示される。
図30のズーム画像351−4が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、図25の候補一覧画像241における「候補4」の文字で示される候補位置から、例えば、「候補5」の文字で示される候補位置(すなわち、犬123上に位置する候補位置)に選択が切り替わり、拡大信号処理部301においては、犬123上に位置する候補位置を中心としたズーム画像351−5が生成されて、表示部21には、矢印に示されるように、生成されたズーム画像351−5が表示画像として表示される。
図30のズーム画像351−5が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、図25の候補一覧画像241における「候補5」の文字で示される候補位置から、例えば、「候補1」の文字で示される候補位置(すなわち、木121および球122の間に位置する候補位置)に選択が切り替わり、拡大信号処理部301においては、木121および球122の間に位置する候補位置を中心としたズーム画像351−1が生成されて、表示部21には、矢印に示されるように、生成されたズーム画像351−1が表示画像として表示される。
なお、上述したようなズーム画像だけでは、選択中の候補位置がわかりにくくなることも考えられるので、図31に示されるように、図30の各ズーム画像に、例えば、図26を参照して説明した候補一覧画像を縮小して重畳し、選択中の候補位置を中心としたズーム画像と、選択中の候補位置にカーソルPが重畳される候補一覧画像を同時に表示させるようにすることもできる。
例えば、図25の候補一覧画像241を参照して説明すると、図25の候補一覧画像241において、「候補1」の文字で示される候補位置(すなわち、木121および球122の間に位置する候補位置)が選択されている場合、表示部21には、木121および球122の間に位置する候補位置を中心としたズーム画像351−1に、木121および球122の間に位置する候補位置にカーソルPが表示される図26の候補一覧画像251−1が縮小されて、重畳された表示画像361−1が表示される。
これにより、ユーザは、ズーム画像351−1が、候補一覧画像251−1上のカーソルPの位置を中心として拡大されたものであることを認識することができる。
ここで、例えば、図26の例の場合と同様に、ユーザにより、リモートコントローラ55に備えられた、押下する度に選択される候補位置が順番に切り替わる機能を有する機能選択ボタン222−3が用いられるとする。
すなわち、図31の表示画像361−1が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、図25の候補一覧画像241における「候補1」の文字で示される候補位置から、例えば、「候補2」の文字で示される候補位置(すなわち、木121および犬123の間に位置する候補位置)に選択が切り替わる。これに対応して、矢印に示されるように、表示部21には、木121および犬123の間に位置する候補位置を中心としたズーム画像351−2に、木121および犬123の間に位置する候補位置にカーソルPが表示される図26の候補一覧画像251−2が縮小されて、重畳された表示画像361−2が表示される。
図31の表示画像361−2が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、図25の候補一覧画像241における「候補2」の文字で示される候補位置から、例えば、「候補3」の文字で示される候補位置(すなわち、人物111上に位置する候補位置)に選択が切り替わる。これに対応して、矢印に示されるように、表示部21には、人物111上に位置する候補位置を中心としたズーム画像351−3に、人物111上に位置する候補位置にカーソルPが表示される図26の候補一覧画像251−3が縮小されて、重畳された表示画像361−3が表示される。
図31の表示画像361−3が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、図25の候補一覧画像241における「候補3」の文字で示される候補位置から、例えば、「候補4」の文字で示される候補位置(すなわち、球122の境界上に位置する候補位置)に選択が切り替わる。これに対応して、矢印に示されるように、表示部21には、球122の境界上に位置する候補位置を中心としたズーム画像351−4に、球122の境界上に位置する候補位置にカーソルPが表示される図26の候補一覧画像251−4が縮小されて、重畳された表示画像361−4が表示される。
図31のズーム画像361−4が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、図25の候補一覧画像241における「候補4」の文字で示される候補位置から、例えば、「候補5」の文字で示される候補位置(すなわち、犬123上に位置する候補位置)に選択が切り替わる。これに対応して、矢印に示されるように、表示部21には、犬123上に位置する候補位置を中心としたズーム画像351−5に、犬123上に位置する候補位置にカーソルPが表示される図26の候補一覧画像251−5が縮小されて、重畳された表示画像361−5が表示される。
図31のズーム画像361−5が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、図25の候補一覧画像241における「候補5」の文字で示される候補位置から、例えば、「候補1」の文字で示される候補位置(すなわち、木121および球122の間に位置する候補位置)に選択が切り替わる。これに対応して、矢印に示されるように、表示部21には、木121および球122の間に位置する候補位置を中心としたズーム画像351−1に、木121および球122の間に位置する候補位置にカーソルPが表示される図26の候補一覧画像251−1が縮小されて、重畳された表示画像361−1が再度表示される。
なお、図31の例においては、ズーム画像351−1に、候補一覧画像251−1を縮小させて重畳させる場合を説明したが、例えば、候補一覧画像251−1を大きく表示させ、ズーム画像351−1を縮小させて、重畳表示させることも可能である。
また、図32に示されるように、各候補位置を中心とした図30のズーム画像を同時に表示させることもできる。
図32は、候補位置が4つの場合、すなわち、図25の候補一覧画像241における「候補2」乃至「候補5」で示される4つの候補位置で構成される場合の例を示している。
図32の例においては、図25の候補一覧画像241における「候補2」の文字で示される候補位置(すなわち、木121および犬123の間に位置する候補位置)を中心に生成されたズーム画像351−2、図25の候補一覧画像241における「候補3」の文字で示される候補位置(すなわち、人物111上に位置する候補位置)を中心に生成されたズーム画像351−3、図25の候補一覧画像241における「候補4」の文字で示される候補位置(すなわち、球122の境界上に位置する候補位置)を中心に生成されたズーム画像351−4、並びに、図25の候補一覧画像241における「候補5」の文字で示される候補位置(すなわち、犬123上に位置する候補位置)を中心に生成されたズーム画像351−5により構成される複数ズーム画像371−1乃至371−4が示されている。
例えば、ユーザにより、リモートコントローラ55における、「候補2」の文字に対応している候補選択ボタン221−2が押下された場合、表示部21には、例えば、枠381が重畳されることで、「候補2」の文字で示される候補位置を中心として生成されたズーム画像351−2がフォーカスされた複数ズーム画像371−1が表示画像として表示される。
ユーザにより、リモートコントローラ55における、「候補3」の文字に対応している候補選択ボタン221−3が押下された場合、表示部21には、例えば、枠381が重畳されることで、「候補3」の文字で示される候補位置を中心として生成されたズーム画像351−3がフォーカスされた複数ズーム画像371−2が表示画像として表示される。
ユーザにより、リモートコントローラ55における、「候補4」の文字に対応している候補選択ボタン221−4が押下された場合、表示部21には、例えば、枠381が重畳されることで、「候補4」の文字で示される候補位置を中心として生成されたズーム画像351−4がフォーカスされた複数ズーム画像371−3が表示画像として表示される。
同様に、ユーザにより、リモートコントローラ55における、「候補5」の文字に対応している候補選択ボタン221−5が押下された場合、表示部21には、例えば、枠381が重畳されることで、「候補5」の文字で示される候補位置を中心として生成されたズーム画像351−5がフォーカスされた複数ズーム画像371−4が表示画像として表示される。
以上のように、リモートコントローラ55を操作し、枠381でフォーカスされるズーム画像を切り替えて見ることで、ユーザは、自分が選択する候補位置を確認することができる。
さらに、図33に示されるように、図32の複数ズーム画像を縮小して、図26の候補一覧画像に重畳して表示させることもできる。
例えば、図25の候補一覧画像241において、「候補2」の文字で示される候補位置(すなわち、木121および犬123の間に位置する候補位置)が選択されている場合、表示部21には、木121および球122の間に位置する候補位置にカーソルPが表示される図26の候補一覧画像251−1に、枠381が重畳されることで、木121および球122の間に位置する候補位置を中心として生成されたズーム画像351−2がフォーカスされた図32の複数ズーム画像371−1が縮小して重畳された表示画像391−1が表示される。
ここで、例えば、図26の例の場合と同様に、ユーザにより、リモートコントローラ55に備えられた、押下する度に選択される候補位置が順番に切り替わる機能を有する機能選択ボタン222−3が用いられるとする。
図33の表示画像391−1が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、図25の候補一覧画像241における「候補2」の文字で示される候補位置から、例えば、「候補3」の文字で示される候補位置(すなわち、人物111上に位置する候補位置)に選択が切り替わる。これに対応して、矢印に示されるように、表示部21には、人物111上に位置する候補位置にカーソルPが表示される図26の候補一覧画像251−3に、人物111上に位置する候補位置を中心としたズーム画像351−3がフォーカスされた図32の複数ズーム画像371−2が縮小して重畳された表示画像391−2が表示される。
図33の表示画像361−2が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、図25の候補一覧画像241における「候補3」の文字で示される候補位置から、例えば、「候補4」の文字で示される候補位置(すなわち、球122の境界上に位置する候補位置)に選択が切り替わる。これに対応して、矢印に示されるように、表示部21には、球122の境界上に位置する候補位置にカーソルPが表示される図26の候補一覧画像251−4に、球122の境界上に位置する候補位置を中心としたズーム画像351−4がフォーカスされた図32の複数ズーム画像371−3が縮小して重畳された表示画像391−3が表示される。
図33のズーム画像391−3が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、図25の候補一覧画像241における「候補4」の文字で示される候補位置から、例えば、「候補5」の文字で示される候補位置(すなわち、犬123上に位置する候補位置)に選択が切り替わる。これに対応して、矢印に示されるように、表示部21には、犬123上に位置する候補位置にカーソルPが表示される図26の候補一覧画像251−5に、犬123上に位置する候補位置を中心としたズーム画像351−5がフォーカスされた図32の複数ズーム画像371−4が縮小して重畳された表示画像391−4が表示される。
そして、図33のズーム画像391−4が表示されているときに、ユーザにより機能選択ボタン222−3が1度押下されると、図25の候補一覧画像241における「候補5」の文字で示される候補位置から、例えば、「候補2」の文字で示される候補位置(すなわち、木121および犬123の間に位置する候補位置)に選択が切り替わる。これに対応して、矢印に示されるように、表示部21には、木121および犬123の間に位置する候補位置にカーソルPが表示される図26の候補一覧画像251−2に、木121および犬123の間に位置する候補位置を中心としたズーム画像351−2がフォーカスされた図32の複数ズーム画像371−1が縮小して重畳された表示画像391−4に表示が戻る。
なお、図30、図31、および図33においては、機能選択ボタン222−3を用いて操作する例を説明し、図32においては、候補選択ボタン221−1乃至221−9を用いて操作する例を説明したが、図30、図31、および図33における表示は、候補選択ボタン221−1乃至221−9を用いて操作することもできるし、図32における表示も、機能選択ボタン222−3を用いて操作することができる。
以上のように、候補位置を明確に表示することで、ユーザは、所望の候補位置を簡単に選択することができる。
なお、上記説明においては、追尾対象の候補位置を表示させるタイミングとして、ユーザにより、図24のリモートコントローラ55の機能ボタン222−4が押下されることで、追尾対象の候補位置を表示する例を説明したが、例えば、追尾開始と共に、常に、追尾対象の候補位置(すなわち、図9のオブジェクト追尾部52の場合には、全追尾結果)を表示させたり、あるいは、ユーザに候補選択を促すために、所定時間(例えば、10秒)毎に、追尾対象の候補位置を表示させることもできる。
さらに、追尾装置12においては、ユーザが所望した追尾結果ではないと推定されたタイミングで、追尾対象の候補位置を表示させることもできる。
この推定は、以下に説明するようにして、図2の全体システム制御部53で実行される。まず、例えば、図9のオブジェクト追尾部52において、基本追尾方式をブロックマッチングで行う場合に、ブロックマッチング方式で追尾する追尾処理部71−1において検出された動きベクトルの信頼性の数値が低いと判定されたとき(例えば、後述する図43のステップS1124における判定がNoの場合)、全体システム制御部53は、追尾結果がユーザの所望した追尾結果ではないと推定し、表示画像生成部54を制御して、追尾対象の候補位置を表示させることができる。
また、追尾処理部71に、図38を参照して後述するシーンチェンジを検出するシーンチェンジ検出部1053を構成させて、そのシーンチェンジ検出部1053によりシーンチェンジが検出されたときに、全体システム制御部53は、例えば、追尾結果がユーザの所望した追尾結果ではないと推定し、表示画像生成部54を制御し、追尾対象の候補位置を表示させることができる。
さらに、図9のオブジェクト追尾部52の場合に、図18を参照して上述したように、基本追尾方式とその他の追尾方式の追尾結果の平均距離が大きいと判定されたり、あるいは、全追尾結果の分散が大きいと判定されるなど、複数の追尾方式による追尾結果が大きく異なると判定されたときに、全体システム制御部53は、例えば、追尾結果がユーザの所望した追尾結果ではないと推定して、表示画像生成部54を制御し、追尾対象の候補位置を表示させることができる。
また、図9のオブジェクト追尾部52において、図23を参照して上述したように、各追尾処理部71−1乃至71−nに、複数の異なる追尾対象の位置で追尾処理を行わせる場合に、その追尾結果が大きく異なると判定されたときに、全体システム制御部53は、例えば、追尾結果がユーザの所望した追尾結果ではないと推定して、表示画像生成部54を制御し、追尾対象の候補位置を表示させることができる。
これにより、ユーザは、所望した追尾対象から追尾が外れていることをすぐに認識することができる。そして、ユーザは、候補位置を選択するだけの容易な操作で、すぐに、追尾対象を修正することができる。
次に、図3の追尾処理部71の詳細な構成例と、その動作について説明する。図34は、動き領域重心追尾方式による追尾処理部71の機能的構成例を示すブロック図である。この例では、追尾処理部71は、動きベクトル検出部501、頻度分布算出部502、サンプル点抽出部503、重心算出部504、および追尾点更新部505により構成されている。
入力端子51からの入力画像は、動きベクトル検出部501およびサンプル点抽出部503に入力される。動きベクトル検出部501は、入力画像における追尾点を中心とした領域内で動きベクトルを検出する。頻度分布算出部502は、動きベクトル検出部501により検出された動きベクトルを用いて、その領域内の動きベクトルの頻度分布を算出する。
サンプル点抽出部503は、動きベクトルの頻度分布に基づいて、入力画像における追尾点を中心とした領域内で、多数を占める動きと類似する動きを示すサンプル点を抽出し、それを追尾対象上の点とする。重心算出部504は、領域内の点が、サンプル点抽出部503により抽出された追尾対象のサンプル点であるか否かに基づいて、サンプル点の重心を算出する。
追尾点更新部505は、重心算出部504により算出された重心に、頻度最大の動きを加算して、追尾点を更新し、更新された追尾点の情報を、追尾結果として、追尾処理制御部72に出力する。
次に、図34の追尾処理部71の動作について説明する。図35は、図2のステップS3において、追尾処理部71が実行する追尾処理の詳細を説明するフローチャートである。
ステップS501において、動きベクトル検出部501は、次のフレームの画像の入力を待機し、ステップS502において、入力画像における追尾点を中心とした領域内で動きベクトルを検出する。
すなわち、その追尾点を含むフレーム(前フレーム)より時間的に次(後)のフレーム(次フレーム)をステップS501の処理で取り込むことで、結局連続する2フレームの画像が得られたことになる。
動きベクトル検出部501は、図4のステップS7またはS8において対象位置設定部83により設定された追尾対象の位置(例えば、ユーザが追尾対象として指定した人物のオブジェクト522上の位置)を、追尾点Pとし、図36に示されるように、時間的に前に入力された前フレームの入力画像511における追尾点Pを中心とした領域521内で、サンプリング間隔(Sx,Sy)のサンプル点毎に、対応する後フレームのサンプル点を推定することで、動きベクトルを検出する。領域521の大きさは、サンプル数をm,nとすると、m*Sx×n*Sy(*は乗算を表す)となる。
ステップS503において、頻度分布算出部502は、動きベクトル検出部501により検出された動きベクトルを用いて、領域521内の動きベクトルの頻度分布を算出する。
例えば、領域521内の動きの候補を、Vx(水平動き:-16≦Vx≦16)、Vy(垂直動き:-16≦Vy≦16)とすると、33×33=1089の箱、すなわち動きベクトルがとり得る値に対応する座標分の箱を用意しておき、動きベクトルが発生した場合、その動きベクトルに対応する座標に1を加算する。例えば、あるサンプル点で(Vx,Vy)=(2,2)のとき、(2,2)の箱に1を足しこむ。これを、領域521内の全サンプル点に対して行うことで、領域521内の動きベクトルの頻度分布が算出される。
ステップS504において、サンプル点抽出部503は、頻度分布算出部502により算出された動きベクトルの頻度分布に基づいて、入力画像における追尾点Pを中心とした領域521内で、多数を占める動きと類似する動きを示すサンプル点を抽出し、それを追尾対象上の点とする。
すなわち、図36の領域521を拡大して図37に示すように、前フレームの入力画像511における人物のオブジェクト522を追尾対象とするように設定された追尾対象の位置である、追尾点Pを中心とした領域521内においては、人物のオブジェクト522が占める割合が多いので、人物のオブジェクト522上のサンプル点から検出される動きベクトル(太線矢印)が多数を占める。
したがって、サンプル点抽出部503は、追尾点Pを中心とした領域521内で、多数を占める動きと類似する動きを示すサンプル点を抽出し、追尾対象上の点とする。
ステップS505において、重心算出部504は、領域521内の点が、サンプル点抽出部503により抽出された追尾対象のサンプル点であるか否かに基づいて、サンプル点Sa(x,y)の重心G(x,y)を算出する。この算出式は、次の式(2)で表される。
ここで、flag(i,j)(1≦i≦m,1≦j≦n)は、追尾対象のサンプル点であるか否かを示すフラグであり、サンプル点である場合には、1となり、サンプル点でない場合には、0となる。
ステップS506において、追尾点更新部505は、重心算出部504により算出された重心G(x,y)に、頻度最大の動きを加算して、追尾点を更新する。
そして、更新された追尾点の情報は、追尾結果として、追尾処理制御部72に出力され、追尾処理は終了し、処理は、図4のステップS2に戻り、その後、ステップS3において、追尾結果記憶部81に記憶される追尾結果に基づいて、追尾処理制御部72による位置算出処理が実行される。
次に、図3の追尾処理部71の詳細な他の構成例と、その動作について説明する。図38は、乗り換え付き点追尾方式による追尾処理を行う追尾処理部71の機能的構成例を示すブロック図である。この例では、追尾処理部71は、テンプレートマッチング部1051、動き推定部1052、シーンチェンジ検出部1053、背景動き推定部1054、領域推定関連処理部1055、乗り換え候補保持部1056、追尾点決定部1057、テンプレート保持部1058、および制御部1059により構成されている。
テンプレートマッチング部1051は、入力画像と、テンプレート保持部1058に保持されているテンプレート画像のマッチング処理を行う。動き推定部1052は、入力画像の動きを推定し、推定の結果得られた動きベクトルと、その動きベクトルの確度を、シーンチェンジ検出部1053、背景動き推定部1054、領域推定関連処理部1055、および追尾点決定部1057に出力する。シーンチェンジ検出部1053は、動き推定部1052より供給された確度に基づいて、シーンチェンジを検出する。
背景動き推定部1054は、動き推定部1052より供給された動きベクトルと確度に基づいて背景動きを推定する処理を実行し、推定結果を領域推定関連処理部1055に供給する。領域推定関連処理部1055は、動き推定部1052より供給された動きベクトルと確度、背景動き推定部1054より供給された背景動き、並びに追尾点決定部1057より供給された追尾点情報に基づいて、領域推定処理を行う。また、領域推定関連処理部1055は、入力された情報に基づいて乗り換え候補を生成し、乗り換え候補保持部1056へ供給し、保持させる。さらに、領域推定関連処理部1055は、入力画像に基づいてテンプレートを作成し、テンプレート保持部1058に供給し、保持させる。
追尾点決定部1057は、動き推定部1052より供給された動きベクトルと確度、並びに乗り換え候補保持部1056より供給された乗り換え候補に基づいて、追尾点を決定し、決定された追尾点に関する情報を領域推定関連処理部1055に出力する。
制御部1059は、追尾処理制御部72からの設定情報(すなわち、追尾対象の位置情報)に基づいて、テンプレートマッチング部1051乃至テンプレート保持部1058の各部を制御して、設定された追尾対象を追尾させるとともに、追尾により求められた追尾点の画面上での位置の情報などの追尾結果を、追尾処理制御部72に出力する。
次に、追尾処理部71の動作について説明する。図39は、図4のステップS2において、追尾処理部71が実行する追尾処理の詳細を説明するフローチャートである。
図39に示されるように、追尾処理部71は、基本的に通常処理と例外処理を実行する。すなわち、ステップS1051で通常処理が行われる。この通常処理の詳細は、図43を参照して後述するが、この処理により追尾処理制御部72により設定された追尾対象の位置情報に基づく、追尾点を追尾する処理が実行される。
ステップS1051の通常処理において追尾点の乗り換えができなくなったとき、ステップS1052において、例外処理が実行される。この例外処理の詳細は、図58のフローチャートを参照して後述するが、この例外処理により、追尾点が画像から見えなくなったとき、テンプレートマッチングにより通常処理への復帰処理が実行される。例外処理によって追尾処理を継続することができなくなった(通常処理へ復帰することができなくなった)と判定された場合には処理が終了されるが、テンプレートによる復帰処理の結果、通常処理への復帰が可能と判定された場合には、処理は再びステップS1051に戻る。このようにして、ステップS1051の通常処理とステップS1052の例外処理が、フレーム毎に順次繰り返し実行される。
図38の追尾処理部71においては、この通常処理と例外処理により、図40乃至図42に示されるように、追尾対象が回転したり、オクルージョンが発生したり、シーンチェンジが発生する等、追尾点が一時的に見えなくなった場合においても、追尾が可能となる。
すなわち、例えば、図40に示されるように、フレームn−1には追尾対象(オブジェクト)としての人の顔1104が表示されており、この人の顔1104は、右目1102と左目1103を有している。ユーザが、このうちの、例えば右目1102(正確には、その中の1つの画素)を追尾点1101として指定したとする。図40の例においては、次のフレームnにおいて、人が図中左方向に移動しており、さらに次のフレームn+1においては、人の顔1104が時計方向に回動している。その結果、今まで見えていた右目1102が表示されなくなり、いままでの方法では、追尾ができなくなる。そこで、上述したステップS1051の通常処理においては、右目1102と同一の対象物としての顔1104上の左目1103が選択され、追尾点が左目1103に乗り換えられる(設定される)。これにより追尾が可能となる。
図41の表示例では、フレームn−1において、顔1104の図中左側からボール1121が移動してきて、次のフレームnにおいては、ボール1121がちょうど顔1104を覆う状態となっている。この状態において、追尾点1101として指定されていた右目1102を含む顔1104が表示されていない。このようなオクルージョンが起きると、対象物としての顔1104が表示されていないので、追尾点1101に代えて追尾する乗り換え点もなくなり、以後、追尾点を追尾することが困難になる。しかし、本発明においては、追尾点1101としての右目1102をフレームn−1(実際には時間的にもっと前のフレーム)の画像がテンプレートとして予め保存されており、ボール1121がさらに右側に移動し、フレームn+1において、追尾点1101として指定された右目1102が再び現れると、上述したステップS1052の例外処理により、追尾点1101としての右目1102が再び表示されたことが確認され、右目1102が再び追尾点1101として追尾されることになる。
図42の例では、フレームn−1においては、顔1104が表示されているが、次のフレームnにおいては、自動車1111が人の顔を含む全体を覆い隠している。すなわち、この場合、シーンチェンジが起きたことになる。本発明では、このようにシーンチェンジが起きて追尾点1101が画像から存在しなくなっても、自動車1111が移動して、フレームn+1において再び右目1102が表示されると、ステップS1052の例外処理で、追尾点1101としての右目1102が再び出現したことがテンプレートに基づいて確認され、この右目1102を再び追尾点1101として追尾することが可能となる。
次に、図43のフローチャートを参照して、図39のステップS1051の通常処理の詳細について説明する。ステップS1121において、追尾点決定部1057により通常処理の初期化処理が実行される。その詳細は、図44を参照して後述するが、この処理により、図4のステップS7またはS8で設定された追尾対象制御部72からの設定情報に基づく、ユーザから追尾するように指定された追尾点を基準とする領域推定範囲が指定される。この領域推定範囲は、ユーザにより指定された追尾点と同一の対象物(例えば、追尾点が人の目である場合、目と同様の動きをする剛体としての人の顔、または人の体など)に属する点の範囲を推定する際に参照する範囲である。乗り換え点は、この領域推定範囲の中の点から選択される。
次に、ステップS1122において、制御部1059は、次のフレームの画像の入力を待機するように各部を制御する。ステップS1123において、動き推定部1052は、追尾点の動きを推定する。すなわち、追尾対象制御部72からの設定情報に基づく、ユーザにより指定された追尾点を含むフレーム(前フレーム)より時間的に後のフレーム(後フレーム)をステップS1122の処理で取り込むことで、結局連続する2フレームの画像が得られたことになるので、ステップS1123において、前フレームの追尾点に対応する後フレームの追尾点の位置を推定することで、追尾点の動きが推定される。
なお、時間的に前とは、処理の順番(入力の順番)をいう。通常、撮像の順番に各フレームの画像が入力されるので、その場合、より時間的に前に撮像されたフレームが前フレームとなるが、時間的に後に撮像されたフレームが先に処理(入力)される場合には、時間的に後に撮像されたフレームが前フレームとなる。
ステップS1124において、動き推定部1052は、ステップS1123の処理の結果、追尾点が推定可能であったか否かを判定する。追尾点が推定可能であったか否かは、例えば、動き推定部1052が生成、出力する動きベクトル(後述)の確度の値を、予め設定されている閾値と比較することで判定される。具体的には、動きベクトルの確度が閾値以上であれば推定が可能であり、閾値より小さければ推定が不可能であると判定される。すなわち、ここにおける可能性は比較的厳格に判定され、実際には推定が不可能ではなくても確度が低い場合には、不可能と判定される。これにより、より確実な追尾処理が可能となる。
なお、ステップS1124では、追尾点での動き推定結果と追尾点の近傍の点での動き推定結果が、多数を占める動きと一致する場合には推定可能、一致しない場合には推定不可能と判定するようにすることも可能である。
追尾点の動きが推定可能であると判定された場合(追尾点が同一対象物上の対応する点上に正しく設定されている確率(右目1102が追尾点1101として指定された場合、右目1102が正しく追尾されている確率)が比較的高い場合)、ステップS1125に進み、追尾点決定部1057は、ステップS1123の処理で得られた推定動き(動きベクトル)の分だけ追尾点をシフトする。すなわち、これにより、前フレームの追尾点の追尾後の後フレームにおける追尾の位置が決定されることになる。ステップS1125において決定された追尾の位置情報は、追尾結果として、追尾処理制御部72に出力される。
ステップS1125の処理の後、ステップS1126において、領域推定関連処理が実行される。この領域推定関連処理の詳細は、図47を参照して後述するが、この処理により、ステップS1121の通常処理の初期化処理で指定された領域推定範囲が更新される。さらに、対象物体が回転するなどして、追尾点が表示されない状態になった場合に、追尾点を乗り換えるべき点としての乗り換え点としての候補(乗り換え候補)が、この状態(まだ追尾が可能な状態)において、予め抽出(作成)される。また、乗り換え候補への乗り換えもできなくなった場合、追尾は一旦中断されるが、再び追尾が可能になった(追尾点が再び出現した)ことを確認するために、テンプレートが予め作成される。
ステップS1126の領域推定関連処理が終了した後、処理は再びステップS1121に戻り、それ以降の処理が繰り返し実行される。
すなわち、図4のステップS7またはS8で設定された追尾対象制御部72からの設定情報に基づく、通常処理の初期化処理が行われ、ユーザから指定された追尾点の動きが推定可能である限り、ステップS1121乃至ステップS1126の処理がフレーム毎に繰り返し実行され、追尾が行われることになる。
これに対して、ステップS1124において、追尾点の動きが推定可能ではない(不可能である)と判定された場合、すなわち、上述したように、例えば動きベクトルの確度が閾値以下であるような場合、処理はステップS1127に進む。ステップS1127において、追尾点決定部1057は、ステップS1126の領域推定関連処理で生成された乗り換え候補が乗り換え候補保持部1056に保持されているので、その中から、元の追尾点に最も近い乗り換え候補を1つ選択する。追尾点決定部1057は、ステップS1128で乗り換え候補が選択できたか否かを判定し、乗り換え候補が選択できた場合には、ステップS1129に進み、追尾点をステップS1127の処理で選択した乗り換え候補に乗り換える(変更する)。すなわち、乗り換え候補の点が新たな追尾点として設定される。その後、処理はステップS1123に戻り、乗り換え候補の中から選ばれた追尾点の動きを推定する処理が実行される。
ステップS1124において新たに設定された追尾点の動きが推定可能であるか否かが再び判定され、推定可能であれば、ステップS1125において追尾点を推定動き分だけシフトする処理が行われ、ステップS1126において、領域推定関連処理が実行される。その後、処理は再びステップS1121に戻り、それ以降の処理が繰り返し実行される。
ステップS1124において、新たに設定された追尾点も推定不可能であると判定された場合には、再びステップS1127に戻り、乗り換え候補の中から、元の追尾点に次に最も近い乗り換え候補が選択され、ステップS1129において、その乗り換え候補が新たな追尾点とされる。その新たな追尾点について、再びステップS1123以降の処理が繰り返される。
用意されているすべての乗り換え候補を新たな追尾点としても、追尾点の動きを推定することができなかった場合には、ステップS1128において、乗り換え候補が選択できなかったと判定され、この通常処理は終了される。そして、図39のステップS1052の例外処理に処理が進むことになる。
次に、図44のフローチャートを参照して、図43のステップS1121の通常処理の初期化処理の詳細について説明する。
ステップS1141において、制御部1059は、今の処理は例外処理からの復帰の処理であるのか否かを判定する。すなわち、ステップS1052の例外処理を終了した後、再びステップS1051の通常処理に戻ってきたのか否かが判定される。最初のフレームの処理においては、まだステップS1052の例外処理は実行されていないので、例外処理からの復帰ではないと判定され、処理はステップS1142に進む。ステップS1142において、追尾点決定部1057は、追尾点を追尾点指示の位置に設定する処理を実行する。追尾点決定部1057は、設定した追尾点の情報を領域推定関連処理部1055に供給する。
ステップS1143において、領域推定関連処理部1055は、ステップS1142の処理で設定された追尾点の位置に基づき、領域推定範囲を設定する。この領域推定範囲は、追尾点と同じ剛体上の点を推定する際の参照範囲であり、予め追尾点と同じ剛体部分が領域推定範囲の大部分を占めるように、より具体的には、追尾点と同じ剛体部分に推定領域範囲の位置や大きさが追随するように設定することで、領域推定範囲の中で最も多数を占める動きを示す部分を追尾点と同じ剛体部分であると推定できるようにするためのものである。ステップS1143では初期値として、例えば、追尾点を中心とする予め設定された一定の範囲が領域推定範囲とされる。
その後処理は、図43のステップS1122に進むことになる。
一方、ステップS1141において、現在の処理が、ステップS1052の例外処理からの復帰の処理であると判定された場合、ステップS1144に進み、追尾点決定部1057は、後述する図58を参照して後述する例外処理により、テンプレートにマッチした位置に基づき追尾点と領域推定範囲を設定する。例えば、テンプレート上の追尾点とマッチした現フレーム上の点が追尾点とされ、その点から予め設定されている一定の範囲が領域推定範囲とされる。その後、処理は図43のステップS1122に進む。
以上の処理を、図45を参照して説明すると次のようになる。すなわち、図44のステップS1142において、例えば、図45に示されるように、フレームn−1の人の目102が追尾点1101として指定されると、ステップS1143において、追尾点1101を含む所定の領域が領域推定範囲1133として指定される。ステップS1124において、領域推定範囲1133の範囲内のサンプル点が次のフレームにおいて推定可能であるか否かが判定される。図45の例の場合、フレームnの次のフレームn+1においては、領域推定範囲1133のうち、左目1102を含む図中左側半分の領域1134がボール1121で隠されているため、フレームnの追尾点1101の動きを、次のフレームn+1において推定することができない。そこで、このような場合においては、時間的に前のフレームn−1で乗り換え候補として予め用意されていた領域指定範囲1133内(右目1102を含む剛体としての顔1104内)の点の中から1つの点(例えば、顔1104に含まれる左目1103(正確には、その中の1つの画素))が選択され、その点がフレームn+1における、追尾点とされる。
領域推定関連処理部1055は、図43のステップS1126における領域推定関連処理を実行するために、図46に示されるような構成を有している。すなわち、領域推定関連処理部1055の領域推定部1161には、動き推定部1052より動きベクトルと確度が入力され、背景動き推定部1054より背景動きが入力され、そして追尾点決定部1057より追尾点の位置情報が入力される。乗り換え候補抽出部1162には、動き推定部1052より動きベクトルと確度が供給される他、領域推定部1161の出力が供給される。テンプレート作成部1163には、入力画像が入力される他、領域推定部1161の出力が入力される。
領域推定部1161は、入力に基づいて、追尾点を含む剛体の領域を推定し、推定結果を乗り換え候補抽出部1162とテンプレート作成部1163に出力する。乗り換え候補抽出部1162は入力に基づき乗り換え候補を抽出し、抽出した乗り換え候補を乗り換え候補保持部1056へ供給する。テンプレート作成部1163は入力に基づきテンプレートを作成し、作成したテンプレートをテンプレート保持部1058へ供給する。
図47は、領域推定関連処理部1055により実行される領域推定関連処理(図43のステップS1126の処理)の詳細を表している。最初にステップS1161において、領域推定部1161により領域推定処理が実行される。その詳細は、図48を参照して後述するが、この処理により、追尾点が属する対象と同一の対象(追尾点と同期した動きをする剛体)に属すると推定される画像上の領域の点が領域推定範囲の点として抽出される。
ステップS1162において、乗り換え候補抽出部1162により乗り換え候補抽出処理が実行される。その処理の詳細は、図53を参照して後述するが、領域推定部1161により領域推定範囲として推定された範囲の点から乗り換え候補の点が抽出され、乗り換え候補保持部1056に保持される。
ステップS1163においてテンプレート作成部1163によりテンプレート作成処理が実行される。その詳細は、図54を参照して後述するが、この処理によりテンプレートが作成される。
次に、図48のフローチャートを参照して、図47のステップS1161の領域推定処理の詳細について説明する。
最初に、ステップS1181において、領域推定部1161は、追尾点と同一の対象に属すると推定される点の候補の点としてのサンプル点を決定する。
このサンプル点は、例えば図49に示されるように、図中、白い四角形で示されるフレームの全画面における画素のうち、固定された基準点1201を基準として、水平方向および垂直方向に、所定の画素数ずつ離れた位置の画素をサンプル点(図中、黒い四角形で表されている)とすることができる。図49の例においては、各フレームの左上の画素が基準点1201とされ(図中基準点1201は×印で示されている)、水平方向に5個、並びに垂直方向に5個ずつ離れた位置の画素がサンプル点とされる。すなわち、この例の場合、全画面中に分散した位置の画素がサンプル点とされる。また、この例の場合、基準点は、各フレームn,n+1において固定された同一の位置の点とされる。
なお、基準点1201は、各フレームn,n+1毎に異なる位置の点となるように、動的に変化させることもできる。
また、図49の例においては、サンプル点の間隔が各フレームにおいて固定された値とされているが、フレーム毎にサンプル点の間隔を、例えば、フレームnにおいては5画素、フレームn+1においては8画素と可変とすることもできる。このときの間隔の基準としては、追尾点と同一の対象に属すると推定される領域の面積を用いることができる。具体的には、領域推定範囲の面積が狭くなれば間隔も短くなる。
あるいはまた、1つのフレーム内においてサンプル点の間隔を可変とすることもできる。このときの間隔の基準としては、追尾点からの距離を用いることができる。すなわち、追尾点に近いサンプル点ほど間隔が小さく、追尾点から遠くなるほど間隔が大きくなる。
以上のようにしてサンプル点が決定されると、次にステップS1182において、領域推定部1161は、領域推定範囲(図44のステップS1143,S1144の処理、または、後述する図50のステップS1206,S1208の処理で決定されている)内のサンプル点の動きを推定する処理を実行する。すなわち、領域推定部1161は、動き推定部1052より供給された動きベクトルに基づいて、領域推定範囲内のサンプル点に対応する次のフレームの対応する点を抽出する。
ステップS1183において、領域推定部1161は、ステップS1182の処理で推定したサンプル点のうち、確度が予め設定されている閾値より低い動きベクトルに基づく点を対象外とする処理を実行する。この処理に必要な動きベクトルの確度は、動き推定部1052より供給される。これにより、領域推定範囲内のサンプル点のうち、確度が高い動きベクトルに基づいて推定された点だけが抽出される。
ステップS1184において、領域推定部1161は、領域推定範囲内の動き推定結果での全画面動きを抽出する。全画面動きとは、同一の動きに対応する領域を考え、その面積が最大となる動きのことを意味する。具体的には、各サンプル点の動きに、そのサンプル点におけるサンプル点間隔に比例する重みを付けて動きのヒストグラムを生成し、この重み付け頻度が最大となる1つの動き(1つの動きベクトル)が全画面動きとして抽出される。なお、ヒストグラムを生成する場合、例えば、動きの代表値を画素精度で準備し、画素精度で1個となる値を持つ動きについてもヒストグラムへの加算を行うようにすることもできる。
ステップS1185において、領域推定部1161は、全画面動きを持つ領域推定範囲内のサンプル点を領域推定の結果として抽出する。この場合における全画面動きを持つサンプル点としては、全画面動きと同一の動きを持つサンプル点はもちろんのこと、全画面動きとの動きの差が予め設定されている所定の閾値以下である場合には、そのサンプル点もここにおける全画面動きを持つサンプル点とすることも可能である。
このようにして、ステップS1143,S1144,S1206,S1208の処理で決定された領域推定範囲内のサンプル点のうち、全画面動きを有するサンプル点が、追尾点と同一対象に属すると推定される点として最終的に抽出(生成)される。
次に、ステップS1186において、領域推定部1161は、領域推定範囲の更新処理を実行する。その後、処理は、図43のステップS122に進む。
図50は、図48のステップS1186の領域推定範囲の更新処理の詳細を表している。ステップS1201において、領域推定部1161は、領域の重心を算出する。この領域とは、図48のステップS1185の処理で抽出されたサンプル点で構成される領域(追尾点と同一対象に属すると推定される点で構成される領域)を意味する。すなわち、この領域には1つの動きベクトル(全画面動き)が対応している。例えば、図51Aに示されるように、図中白い四角形で示されるサンプル点のうち、領域推定範囲1221内のサンプル点の中から、図48のステップS1185の処理で全画面動きを持つサンプル点として、図51Aにおいて黒い四角形で示されるサンプル点が抽出され、そのサンプル点で構成される領域が、領域1222として抽出(推定)される。そして、領域1222の重心1224がさらに算出される。具体的には、各サンプル点にサンプル点間隔の重みを付けたサンプル点重心が領域の重心として求められる。この処理は、現フレームにおける領域の位置を求めるという意味を有する。
次にステップS202において、領域推定部1161は、領域の重心を全画面動きによりシフトする処理を実行する。この処理は、領域推定範囲1221を領域の位置の動きに追従させ、次フレームにおける推定位置に移動させるという意味を有する。図51Bに示されるように、現フレームにおける追尾点1223が、その動きベクトル1238に基づいて次フレームにおいて追尾点1233として出現する場合、全画面動きベクトル1230が、追尾点の動きベクトル1238にほぼ対応しているので、現フレームにおける重心1224を動きベクトル1230(全画面動き)に基づいてシフトすることで、追尾点1233と同一のフレーム(次フレーム)上の点1234が求められる。この点1234を中心として領域推定範囲1231を設定すれば、領域推定範囲1221を領域1222の位置の動きに追従させて、次のフレームにおける推定位置に移動させることになる。
ステップS1203において、領域推定部1161は、領域推定結果に基づき、次の領域推定範囲の大きさを決定する。具体的には、領域と推定された全てのサンプル点に関するサンプル点の間隔(図51Aにおける領域1222の中の黒い四角形で示される点の間隔)の2乗和を領域1222の面積と見なし、この面積よりも少し大きめの大きさとなるように、次フレームにおける領域推定範囲1231の大きさが決定される。すなわち、領域推定範囲1231の大きさは、領域1222の中のサンプル点の数が多ければ広くなり、少なければ狭くなる。このようにすることで、領域1222の拡大縮小に追従することができるばかりでなく、領域推定範囲1221内の全画面領域が追尾対象の周辺領域となるのを防ぐことができる。
図48のステップS1184で抽出された全画面動きが、背景動きと一致する場合には、動きにより背景と追尾対象を区別することができない。そこで、背景動き推定部1054は背景動き推定処理を常に行っており、ステップS1204において、領域推定部1161は、背景動き推定部1054より供給される背景動きと、図48のステップS1184の処理で抽出された全画面動きとが一致するか否かを判定する。全画面動きと背景動きが一致する場合には、ステップS1205において、領域推定部1161は、次の領域推定範囲の大きさを、今の領域推定範囲の大きさが最大となるように制限する。これにより、背景が追尾対象として誤認識され、領域推定範囲の大きさが拡大してしまうようなことが抑制される。
ステップS1204において、全画面動きと背景動きが一致しないと判定された場合には、ステップS1205の処理は必要がないのでスキップされる。
次に、ステップS1206において、領域推定部1161は、シフト後の領域重心を中心として次の領域推定範囲の大きさを決定する。これにより、領域推定範囲が、その重心が既に求めたシフト後の領域重心と一致し、かつ、その大きさが領域の広さに比例するように決定される。
図51Bの例では、領域推定範囲1231が、動きベクトル(全画面動き)1230に基づくシフト後の重心1234を中心として、領域1222の面積に応じた広さに決定されている。
領域推定範囲1231内での全画面動きを有する領域が追尾対象(例えば、図45の顔1104)の領域であることを担保する(確実にする)必要がある。そこで、ステップS1207において、領域推定部1161は、追尾点が次の領域推定範囲に含まれるか否かを判定し、含まれていない場合には、ステップS1208において、追尾点を含むように次の領域推定範囲をシフトする処理を実行する。追尾点が次の領域推定範囲に含まれている場合には、ステップS1208の処理は必要がないのでスキップされる。
この場合における具体的なシフトの方法としては、移動距離が最小となるようにする方法、シフト前の領域推定範囲の重心から追尾点に向かうベクトルに沿って追尾点が含まれるようになる最小距離だけ移動する方法などが考えられる。
なお、追尾のロバスト性を重視するために、領域に追尾点を含むようにするためのシフトを行わない方法も考えられる。
図51Cの例においては、領域推定範囲1231が追尾点1233を含んでいないので、領域推定範囲1241として示される位置(追尾点1233をその左上に含む位置)に領域推定範囲1241がシフトされる。
図51A乃至図51Cは、ステップS1208のシフト処理が必要な場合を示しているが、図52A乃至図52Cは、ステップS1208のシフト処理が必要でない場合(ステップS1207において追尾点が次の領域推定範囲に含まれると判定された場合)の例を表している。
図52A乃至図52Cに示されるように、領域推定範囲1221内のすべてのサンプル点が領域の点である場合には、図50のステップS1208のシフト処理が必要なくなることになる。
図51A乃至図51Cと図52A乃至図52Cは、領域推定範囲が矩形である例を示したが、領域推定範囲は円形とすることも可能である。
以上のようにして、図50(図48のステップS1186)の領域推定範囲の更新処理により、次フレームのための領域推定範囲の位置と大きさが追尾点を含むように決定される。
図50の領域推定範囲の更新処理においては、領域推定範囲を矩形(または円形)の固定形状としたが、可変形状とすることも可能である。
次に図47のステップS1162における乗り換え候補抽出処理について、図53のフローチャートを参照して説明する。
ステップS1261において、乗り換え候補抽出部1162は、全画面動きの領域と推定されたすべての点につき、それぞれに対応する推定動きでの点のシフト結果を乗り換え候補として保持する。すなわち、領域推定結果として得られた点をそのまま用いるのではなく、それらを次のフレームでの使用のために、それぞれの動き推定結果に基づきシフトされた結果を抽出する処理が行われ、その抽出された乗り換え候補が、乗り換え候保持部56に供給され、保持される。
この処理を、図45を参照して説明すると、次のようになる。すなわち、図45の例において、フレームn−1,nでは追尾点1101が存在するが、フレームn+1においては、図中左側から飛んできたボール1121により隠されてしまい、追尾点1101が存在しない。そこでフレームn+1において、追尾点を追尾対象としての顔1104上の他の点(例えば、左目1103(実際には右目1102にもっと近接した点))に乗り換える必要が生じる。そこで、乗り換えが実際に必要になる前のフレームで、乗り換え候補を予め用意しておくのである。
具体的には、図45の例の場合、フレームnからフレームn+1への領域推定範囲1133内での動き推定結果は、領域推定範囲1133において乗り換えが必要なことから、正しく推定できない確率が高いことが予想される。すなわち、図45の例では、乗り換えが追尾点と、それと同一の対象物の一部が隠れることに起因して起きる。その結果、フレームnでの領域推定範囲1133のうち、フレームn+1で対象が隠れる部分(図45において影を付した部分)1134については、動きが正しく推定されず、動きの確度が低いことが推定されるか、または確度が低くないと推定され、かつ、動き推定結果としては意味のないものが得られることになる。
このような場合には、領域推定の際に用いることが可能な動き推定結果が減少する、あるいは誤った動き推定結果が混入するなどの理由で、領域推定が誤る可能性が高まる。一方、このような可能性は、一般的に、より時間的に前のフレームn−1からフレームnの間での領域推定においては、フレームnからフレームn+1での間での推定に比較して低くなることが予想される。
そこで、リスク低減のため、領域推定結果をそのまま用いるのではなく、前のフレームn−1(あるいは、時間的にもっと前のフレーム)で求めた領域推定結果を、その次のフレームでの移動先の乗り換え候補として用いるのが性能向上の上で望ましい。
ただし、領域推定結果をそのまま用いることも可能である。
図54は、図47のステップS1163におけるテンプレート作成処理の詳細を表している。ステップS1281においてテンプレート作成部1163は、領域(全画面動きの領域)と推定されたすべての点につき、それぞれに対応する小領域を決定する。図55の例においては、領域の点1321に対応して小領域1322が決定されている。
ステップS1282において、テンプレート作成部1163は、ステップS1281の処理で決定された小領域の和の領域をテンプレート範囲に設定する。図55の例においては、小領域1322の和の領域がテンプレート範囲1331とされている。
次にステップS1283において、テンプレート作成部1163は、ステップS1282において設定したテンプレート範囲の情報と画像情報からテンプレートを作成し、テンプレート保持部1058に供給し、保持させる。具体的には、テンプレート範囲1331内の画素データがテンプレートとされる。
図56は、領域の点1321に対応する小領域1341が、図55における小領域1322に較べてより大きな面積とされている。その結果、小領域1341の和の領域のテンプレート範囲1351も、図55のテンプレート範囲1331に較べてより広くなっている。
小領域の大きさは、サンプル点の間隔に比例させることが考えられるが、その際の比例定数は、面積がサンプル点間隔の自乗になるように決めることもできるし、それより大きくまたは小さく決めることも可能である。
なお、領域推定結果を用いず、例えば追尾点を中心とする固定の大きさや形状の範囲をテンプレート範囲として用いることも可能である。
図57は、テンプレートと領域推定範囲の位置関係を表している。テンプレート範囲1403には、追尾点1405が含まれている。テンプレート範囲1403に外接する外接矩形1401の図中左上の点がテンプレート基準点1404とされている。テンプレート基準点1404から追尾点1405に向かうベクトル1406、並びにテンプレート基準点1404から領域推定範囲1402の図中左上の基準点1408に向かうベクトル1407が、テンプレート範囲1403の情報とされる。テンプレートは、テンプレート範囲1403に含まれる画素で構成される。ベクトル1406,1407は、テンプレートと同じ画像が検出された際の通常処理への復帰に用いられる。
以上の処理においては、乗り換え候補の場合と異なり、範囲、画素ともに、現フレームに対応するものをテンプレートとする例を説明したが、乗り換え候補の場合と同様に、次フレームでの移動先をテンプレートとして用いることも可能である。
以上のようにして、追尾点を含む画素データからなるテンプレートが乗り換え候補と同様に、通常処理中に、予め作成される。
以上に説明した図39のステップS1051の通常処理に続いて行われるステップS1052の例外処理の詳細について、図58のフローチャートを参照して説明する。この処理は、上述したように、図43のステップS1124において追尾点の動きを推定することが不可能と判定され、さらにステップS1128において追尾点を乗り換える乗り換え候補が選択できなかったと判定された場合に実行されることになる。
ステップS1401において、制御部1059は、例外処理の初期化処理を実行する。この処理の詳細は図59のフローチャートに示されている。
ステップS1421において、制御部1059は、追尾点の追尾ができなくなった際(追尾点の動きを推定することが不可能かつ、追尾点を乗り換える乗り換え候補が選択できなかった際)にシーンチェンジが起きていたか否かを判定する。シーンチェンジ検出部1053は、動き推定部1052の推定結果に基づいてシーンチェンがあったか否かを常に監視しており、制御部1059は、そのシーンチェンジ検出部1053の検出結果に基づいて、ステップS1421の判定を実行する。シーンチェンジ検出部1053の具体的処理については、図71と図72を参照して後述する。
シーンチェンジが起きている場合、追尾ができなくなった理由が、シーンチェンジが発生したことによるものと推定して、ステップS1422において制御部1059は、モードをシーンチェンジに設定する。これに対して、ステップS1421においてシーンチェンジが発生していないと判定された場合には、制御部1059は、ステップS1423においてモードをその他のモードに設定する。
ステップS1422またはステップS1423の処理の後、ステップS1424においてテンプレートマッチング部1051は、時間的に最も古いテンプレートを選択する処理を実行する。具体的には、図60に示されるように、例えばフレームnからフレームn+1に移行するとき、例外処理が実行されるものとすると、フレームn−m+1からフレームnに関して生成され、テンプレート保持部1058に保持されているm個のフレームのテンプレートの中から、時間的に最も古いテンプレートであるフレームn−m+1に関して生成されたテンプレートが選択される。
このように例外処理への移行直前のテンプレート(図60の例の場合フレームnに関して生成されたテンプレート)を用いずに、時間的に少し前のテンプレートを選択するのは、追尾対象のオクルージョンなどで例外処理への移行が発生した場合には、移行の直前には追尾対象が既にかなり隠れており、その時点のテンプレートでは、追尾対象を充分に大きく捉えることができない可能性が高いからである。従って、このように時間的に若干前のフレームにおけるテンプレートを選択することで、確実な追尾が可能となる。
次に、ステップS1425において、テンプレートマッチング部1051は、テンプレート探索範囲を設定する処理を実行する。テンプレート探索範囲は、例えば、例外処理に移行する直前の追尾点の位置がテンプレート探索範囲の中心となるように設定される。
すなわち、図61に示されるように、フレームnにおいて被写体の顔1104の右目1102が追尾点1101として指定されている場合において、図中左方向からボール1121が飛んできて、フレームn+1において追尾点1101を含む顔1104が隠れ、フレームn+2において、再び追尾点1101が現れる場合を想定する。この場合において、追尾点1101(テンプレート範囲1411に含まれる)を中心とする領域がテンプレート探索範囲1412として設定される。
ステップS1426において、テンプレートマッチング部1051は、例外処理への移行後の経過フレーム数およびシーンチェンジ数を0にリセットする。このフレーム数とシーンチェンジ数は、後述する図58のステップS1405における継続判定処理(図63のステップS1461,S1463,S1465,S1467)において使用される。
以上のようにして、例外処理の初期化処理が終了した後、図58のステップS1402において、制御部1059は次のフレームを待つ処理を実行する。ステップS1403において、テンプレートマッチング部1051は、テンプレート探索範囲内においてテンプレートマッチング処理を行う。ステップS1404においてテンプレートマッチング部1051は、通常処理への復帰が可能であるか否かを判定する。
具体的には、テンプレートマッチング処理により、数フレーム前のテンプレート(図61のテンプレート範囲1411内の画素)と、テンプレート探索範囲内のマッチング対象の画素の差分の絶対値和が演算される。より詳細には、テンプレート範囲1411内の所定のブロックと、テンプレート探索範囲内の所定のブロックにおけるそれぞれの画素の差分の絶対値和が演算される。ブロックの位置がテンプレート範囲1411内で順次移動され、各ブロックの差分の絶対値和が加算され、そのテンプレートの位置における値とされる。そして、テンプレートをテンプレート探索範囲内で順次移動させた場合における差分の絶対値和が最も小さくなる位置とその値が検索される。ステップS1404において、最小の差分の絶対値和が、予め設定されている所定の閾値と比較される。差分の絶対値和が閾値以下である場合には、追尾点(テンプレートに含まれている)を含む画像が再び出現したことになるので、通常処理への復帰が可能であると判定され、処理は図39のステップS1051の通常処理に戻る。
そして上述したように、図44のステップS1141において、例外処理からの復帰であると判定され、ステップS1144において、差分絶対値和が最小となる位置をテンプレートのマッチした位置として、このマッチした位置とテンプレートに対応して保持してあったテンプレート位置と追尾点領域推定範囲の位置関係から、追尾点と領域推定範囲の設定が行われる。すなわち、図57を参照して上述したように、追尾点1405を基準とするベクトル1406,1407に基づいて、領域推定範囲1402が設定される。
ただし、図47のステップS1161の領域推定処理において、領域推定範囲を用いない手法を用いる場合には、領域推定範囲の設定は行われない。
図58のステップS1404における通常処理への復帰が可能であるか否かの判定は、最小の差分絶対値和をテンプレートのアクティビティで除算して得られる値を閾値と比較することで行うようにしてもよい。この場合におけるアクティビティは、後述する図64のアクティビティ算出部1602により、図65のステップS1603において算出された値を用いることができる。
あるいはまた、今回の最小の差分絶対値和を1フレーム前における最小の差分絶対値和で除算することで得られた値を所定の閾値と比較することで、通常処理への復帰が可能であるか否かを判定するようにしてもよい。この場合、アクティビティの計算が不要となる。すなわち、ステップS1404では、テンプレートとテンプレート探索範囲の相関が演算され、相関値と閾値の比較に基づいて判定が行われる。
ステップS1404において、通常処理への復帰が可能ではないと判定された場合、ステップS1405に進み、継続判定処理が実行される。継続判定処理の詳細は、図63のフローチャートを参照して後述するが、これにより、例外処理が継続可能であるか否かの判定が行われる。
ステップS1406において、制御部1059は、例外処理(例外処理での追尾点の追尾)が継続可能であるか否かを継続判定処理の結果に基づいて(後述する図63のステップS1466,S1468で設定されたフラグに基づいて)判定する。例外処理が継続可能である場合には、処理はステップS1402に戻り、それ以降の処理が繰り返し実行される。すなわち、追尾点が再び出現するまで待機する処理が繰り返し実行される。
これに対して、ステップS1406において、例外処理が継続可能ではないと判定された場合(後述する図63のステップS1465で、追尾点が消失した後の経過フレーム数が閾値THfr以上と判定されるか、または、ステップS1467でシーンチェンジ数が閾値THsc以上と判定された場合)、最早、例外処理は不可能として、追尾処理は終了される。なお、追尾処理を終了するのではなく、保持しておいた追尾点を用いて再度通常処理に戻るようにすることも考えられる。この場合の例外処理は、図62に示されている。なお、図62のステップS1441乃至S1445の処理は、図58のステップS1401乃至S1405と同様の処理であるので、その説明を省略する。
すなわち、ステップS1445の継続判定処理により、例外処理が継続可能であるか否かの判定が行われると、その後、ステップS1446において、制御部1059は、例外処理(例外処理での追尾点の追尾)が継続可能であるか否かを継続判定処理の結果に基づいて(後述する図63のステップS1466,S1468で設定されたフラグに基づいて)判定する。例外処理が継続可能である場合には、処理はステップS1442に戻り、それ以降の処理が繰り返し実行される。すなわち、追尾点が再び出現するまで待機する処理が繰り返し実行される。
これに対して、ステップS1446において、例外処理が継続可能ではないと判定された場合(後述する図63のステップS1465で、追尾点が消失した後の経過フレーム数が閾値THfr以上と判定されるか、または、ステップS1467でシーンチェンジ数が閾値THsc以上と判定された場合)、最早、例外処理は不可能として、処理は図39のステップS1051の通常処理に戻る。
そして、この場合、上述したように、図44のステップS1141において、例外処理からの復帰であると判定され、ステップS1144において、保持しておいた例外処理に移行する直前の追尾点の位置に基づき、追尾点と領域推定範囲が設定される。
図63は、図58のステップS1405(または図62のステップS1445)における継続判定処理の詳細を表している。ステップS1461において、制御部1059は、変数としての経過フレーム数に1を加算する処理を実行する。経過フレーム数は、図58のステップS1401の例外処理の初期化処理(図59のステップS1426)において、予め0にリセットされている。
次にステップS1462において、制御部1059は、シーンチェンジがあるか否かを判定する。シーンチェンジがあるか否かは、シーンチェンジ検出部1053が、常にその検出処理を実行しており、その検出結果に基づいて判定が可能である。シーンチェンジがある場合には、ステップS1463に進み、制御部1059は変数としてのシーンチェンジ数に1を加算する。このシーンチェンジ数も、図59のステップS1426の初期化処理において0にリセットされている。通常処理から例外処理への移行時にシーンチェンジが発生していない場合には、ステップS1463の処理はスキップされる。
次に、ステップS1464において、制御部1059は、現在設定されているモードがシーンチェンジであるか否かを判定する。このモードは、図59のステップS1422,S1423において設定されたものである。現在設定されているモードがシーンチェンジである場合には、ステップS1467に進み、制御部1059は、シーンチェンジ数が予め設定されている閾値THscより小さいか否かを判定する。シーンチェンジ数が閾値THscより小さい場合には、ステップS1466に進み、制御部1059は継続可のフラグを設定し、シーンチェンジ数が閾値THsc以上である場合には、ステップS1468に進み、継続不可のフラグを設定する。
一方、ステップS1464において、モードがシーンチェンジではないと判定された場合(モードがその他であると判定された場合)、ステップS1465に進み、制御部1059は、経過フレーム数が閾値THfrより小さいか否かを判定する。この経過フレーム数も、図59の例外処理の初期化処理のステップS1426において、予め0にリセットされている。経過フレーム数が閾値THfrより小さいと判定された場合には、ステップS1466において、継続可のフラグが設定され、経過フレーム数が閾値THfr以上であると判定された場合には、ステップS1468において、継続不可のフラグが設定される。
このように、テンプレートマッチング処理時におけるシーンチェンジ数が閾値THsc以上になるか、または経過フレーム数が閾値THfr以上になった場合には、それ以上の例外処理は不可能とされる。
なお、モードがその他である場合には、シーンチェンジ数が0であるという条件も加えて、継続が可能であるか否かを判定するようにしてもよい。
以上においては、画像のフレームを処理単位とし、すべてのフレームを用いることを前提としたが、フィールド単位で処理したり、すべてのフレームまたはフィールドを利用するのではなく、所定の間隔で間引いて抽出されたフレームまたはフィールドを用いるようにすることも可能である。
また、以上においては、乗り換え候補として、推定した領域内の点の移動先を用いるようにしたが、この場合、全画面動きが(0,0)であったとしても、領域内の各点が、(−1,1)、(1,0)等の動きを持っているときは、それぞれの動きの分だけシフトされる。移動先の点をそのまま乗り換え候補として用いるのではなく、予め求められたサンプル点のうち、最も近い点を乗り換え候補とすることも可能である。勿論、処理負荷軽減のため、各点を、全画面動きの分だけシフトしてもよい。
さらに、乗り換え候補として、推定した領域内の点の移動先を用いるのではなく、領域内の点をそのまま用いるようにすることも可能である。
次に、図64を参照して、図38の動き推定部1052の構成例について説明する。この実施の形態においては、入力画像が、評価値算出部1601、アクティビティ算出部1602、および動きベクトル検出部1606に供給されている。評価値算出部1601は、動きベクトルにより対応付けられる両対象の一致度に関する評価値を算出し、正規化処理部1604に供給する。アクティビティ算出部1602は、入力画像のアクティビティを算出し、閾値判定部1603と正規化処理部1604に供給する。動きベクトル検出部1606は、入力画像から動きベクトルを検出し、評価値算出部1601と統合処理部1605に供給する。
正規化処理部1604は、評価値算出部1601より供給された評価値を、アクティビティ算出部1602より供給されたアクティビティに基づいて正規化し、得られた値を統合処理部1605に供給する。閾値判定部1603は、アクティビティ算出部1602より供給されたアクティビティを所定の閾値と比較し、その判定結果を統合処理部1605に供給する。統合処理部1605は、正規化処理部1604から供給された正規化情報と、閾値判定部1603より供給された判定結果に基づいて、動きベクトルの確度を演算し、得られた確度を動きベクトル検出部1606より供給された動きベクトルとともに出力する。
次に、図65のフローチャートを参照して、動き推定部1052の動き推定処理について説明する。動きベクトルは、点に対するものとして求められているが、その確度は、動きベクトルにより対応付けられる2つの点の近傍の、例えば点を中心とする、小ブロックの画像データを用いて計算される。ステップS1601において、動きベクトル検出部11606は、入力画像から動きベクトルを検出する。この検出には、例えばブロックマッチング方式や勾配法が用いられる。検出された動きベクトルは、評価値算出部1601と統合処理部1605に供給される。
ステップS1602において、評価値算出部1601は評価値を算出する。具体的には、例えば、動きベクトルで対応付けられる2つの点を中心とする2つのブロックの画素値の差分絶対値和が算出される。すなわち、ステップS1601で動きベクトル検出部1606により検出された動きベクトルV(vx,vy)と、それに基づく時間的に前のフレームの画像Fi上の点P(Xp,Yp)、並びに時間的に後のフレームの画像Fj上の点Q(Xq,Yq)の関係は次式で表される。
評価値算出部1601は点Pを中心とするブロックと、点Qを中心とするブロックについて、次式に基づいて評価値Eval(P,Q,i,j)を演算する。
各ブロックは、1辺が2L+1画素の正方形とされている。上記式における総和ΣΣは、xが−LからLについて、yが−LからLについて、対応する画素同士で行われる。従って、例えば、L=2である場合、9個の差分が得られ、その絶対値の総和が演算される。評価値は、その値が0に近づくほど、2つのブロックがよく一致していることを表している。
評価値算出部1601は、生成した評価値を正規化処理部1604に供給する。
ステップS1603において、アクティビティ算出部1602は、入力画像からアクティビティを算出する。アクティビティは、画像の複雑さを表す特徴量であり、図66に示されるように、各画素毎に注目画素Y(x,y)と、それに隣接する8画素Y(x+i,y+j)との差分絶対値和の平均値が、注目画素位置のアクティビティActivity(x,y)として次式に基づいて演算される。
図66の例の場合、3×3画素のうち、中央に位置する注目画素Y(x,y)の値は110であり、それに隣接する8個の画素の値は、それぞれ80,70,75,100,100,100,80,80であるから、アクティビティActivity(x,y)は次式で表される。
Activity(x,y) ={|80−110|+|70−110|+|75−110|+|100−110|+|100−110|+|100−110|+|80−110|+|80−110|}/8 =24.375となる。
同様の処理が、そのフレームのすべての画素について実行される。
ブロック単位で動きベクトル確度を算出するため、次式で表されるブロック内の全画素のアクティビティの総和が、そのブロックのアクティビティ(ブロックアクティビティ)Blockactivity(i,j)と定義される。
なお、アクティビティとしては、この他、分散値、ダイナミックレンジなどとすることも可能である。
閾値判定部1603は、ステップS1604において、アクティビティ算出部1602により算出されたブロックアクティビティを予め設定されている所定の閾値と比較する。そして、入力されたブロックアクティビティが閾値より大きいか否かを表すフラグを統合処理部1605に出力する。
具体的には、実験の結果、ブロックアクティビティと評価値は、動きベクトルをパラメータとして、図67に示される関係を有する。図67において、横軸はブロックアクティビティBlockactivity(i,j)を表し、縦軸は評価値Evalを表している。動きが正しく検出されている場合(正しい動きベクトルが与えられている場合)、そのブロックアクティビティと評価値の値は、曲線1621より図中下側の領域R1に分布する。これに対して誤った動き(不正解の動きベクトル)が与えられた場合、そのブロックアクティビティと評価値の値は、曲線1622より、図中左側の領域R2に分布する(曲線1622より上側の領域R2以外の領域と曲線1621より下側の領域R1以外の領域には殆ど分布がない)。曲線1621と曲線1622は、点Pにおいて交差する。この点Pにおけるブロックアクティビティの値が閾値THaとされる。閾値THaは、ブロックアクティビティの値がそれより小さい場合には、対応する動きベクトルが正しくない可能性があることを意味する(この点については後に詳述する)。閾値判定部1603は、アクティビティ算出部1602より入力されたブロックアクティビティの値が、この閾値THaより大きいか否かを表すフラグを統合処理ブロック1605に出力する。
ステップS1605において、正規化処理部1604は、正規化処理を実行する。具体的には、正規化処理部1604は、次式に従って動きベクトル確度VCを演算する。
但し、動きベクトル確度VCの値が0未満となる場合にはその値を0に置き換える。動きベクトル確度VCのうち、評価値をブロックアクティビティで割り算して得られた値は、その値によって規定される図67のグラフ上の位置が、原点Oと点Pを結ぶ傾きが1の直線1623より、図中下側の領域内であるのか、図中上側の領域内であるのかを表す。すなわち、直線1623の傾きは1であり、評価値をブロックアクティビティで割り算して得られた値が1より大きければ、その値に対応する点は、直線1623の上側の領域に分布する点であることを意味する。そしてこの値を1から減算して得られる動きベクトル確度VCは、その値が小さい程、対応する点が領域R2に分布する可能性が高いことを意味する。
これに対して、評価値をブロックアクティビティで割り算して得られた値が1より小さければ、その値に対応する点は、直線1623の図中下側の領域に分布することを意味する。そして、そのときの動きベクトル確度VCは、その値が大きい程(0に近い程)、対応する点が領域R1に分布することを意味する。正規化処理部1604は、このようにして演算して得られた動きベクトル確度VCを統合処理部1605に出力する。
ステップS1606において、統合処理部1605は、統合処理を実行する。この統合処理の詳細は、図68のフローチャートに示されている。
統合処理部1605は、ステップS1631において、ブロックアクティビティが閾値THa以下か否かを判定する。この判定は、閾値判定部1603より供給されたフラグに基づいて行われる。ブロックアクティビティが閾値THa以下である場合には、ステップS1632において統合処理部1605は、正規化処理部1604が算出した動きベクトル確度VCの値を0に設定する。ステップS1631において、アクティビティの値が閾値THaより大きいと判定された場合には、ステップS1632の処理はスキップされ、正規化処理部1604で生成された動きベクトル確度VCの値が、そのまま動きベクトルとともに出力される。
これは、正規化処理部1604において演算された動きベクトルの確度VCの値が正であったとしても、ブロックアクティビティの値が閾値THaより小さい場合には、正しい動きベクトルが得られていない可能性があるからである。すなわち、図67に示されるように、原点Oと点Pの間においては、曲線1622が、曲線1621より図中下側に(直線1623より下側に)突出することになる。ブロックアクティビティの値が閾値Thaより小さい区間であって、曲線1621と曲線1622において囲まれる領域R3においては、評価値をブロックアクティビティで割り算して得られる値は、領域R1とR2の両方に分布し、正しい動きベクトルが得られていない可能性が高い。
そこで、このような分布状態である場合には、動きベクトルの確度は低いものとして処理するようにする。このため、ステップS1632において、動きベクトル確度VCは、その値が正であったとしても、閾値Thaより小さい場合には、0に設定される。このようにすることで、動きベクトル確度VCの値が正である場合には、正しい動きベクトルが得られている場合であることを確実に表すことが可能となる。しかも、動きベクトル確度VCの値が大きい程、正しい動きベクトルが得られている確率が高くなる(分布が領域R1に含まれる確率が高くなる)。
このことは、一般的に、輝度変化が少ない領域(アクティビティが小さい領域)では信頼性が高い動きベクトルを検出することが困難であるとの経験上の法則とも一致する。
図69は,図38の背景動き推定部1054の構成例を表している。この構成例においては、背景動き推定部1054は、頻度分布算出部1651と背景動き決定部1652により構成されている。
頻度分布算出部1651は、動きベクトルの頻度分布を算出する。ただし、この頻度には、動き推定部1052より供給される動きベクトル確度VCを用いることで、確からしい動きに重みが与えられるように、重み付けが行われる。背景動き決定部1652は、頻度分布算出部1651により算出された頻度分布に基づいて、頻度が最大となる動きを背景動きとして決定する処理を行い、領域推定関連処理部1055へ出力する。
図70を参照して、背景動き推定部54の背景動き推定処理について説明する。
ステップS1651において、頻度分布算出部1651は、動き頻度分布を算出する。具体的には、頻度分布算出部1651は、背景動きの候補としての動きベクトルのx座標とy座標がそれぞれ基準点から±16画素分の範囲で表されるとすると、1089個(=16×2+1)×(16×2+1))の箱、すなわち動きベクトルがとり得る値に対応する座標分の箱を用意し、動きベクトルが発生した場合、その動きベクトルに対応する座標に1を加算する。このようにすることで、動きベクトルの頻度分布を算出することができる。
ただし、1個の動きベクトルが発生した場合、1を加算していくと、確度が低い動きベクトルの発生頻度が多い場合、その確実性が低い動きベクトルが背景動きとして決定されてしまう恐れがある。そこで、頻度分布算出部1651は、動きベクトルが発生した場合、その動きベクトルに対応する箱(座標)に、値1を加算するのではなく、値1に動きベクトル確度VCを乗算した値(=動きベクトル確度VCの値)を加算する。動きベクトル確度VCの値は、0から1の間の値として正規化されており、その値が1に近いほど確度が高い値である。従って、このようにして得られた頻度分布は、動きベクトルをその確度に基づいて重み付けした頻度分布となる。これにより、確度の低い動きが背景動きとして決定される恐れが少なくなる。
次に、ステップS1652において、頻度分布算出部1651は、動き頻度分布を算出する処理を全ブロックについて終了したか否かを判定する。まだ処理していないブロックが存在する場合には、ステップS1651に戻り、次のブロックについてステップS1651の処理が実行される。
以上のようにして、全画面に対して動き頻度分布算出処理が行われ、ステップS1652において、全ブロックの処理が終了したと判定された場合、ステップS1653に進み、背景動き決定部1652は、頻度分布の最大値を検索する処理を実行する。すなわち、背景動き決定部1652は、頻度分布算出部1651により算出された頻度の中から最大の頻度のものを選択し、その頻度に対応する動きベクトルを背景動きの動きベクトルとして決定する。この背景動きの動きベクトルは、領域推定関連処理部1055に供給され、例えば、図50のステップS1204の全画面動きと背景動きが一致するか否かの判定処理に用いられる。
図71は、図38のシーンチェンジ検出部1053の詳細な構成例を表している。この例においては、動きベクトル確度平均算出部1671と閾値判定部1672によりシーンチェンジ検出部1053が構成されている。
動きベクトル確度平均算出部1671は、動き推定部1052より供給された動きベクトル確度VCの全画面の平均値を算出し、閾値判定部1672に出力する。閾値判定部1672は、動きベクトル確度平均算出部1671より供給された平均値を、予め定められている閾値と比較し、その比較結果に基づいて、シーンチェンジであるか否かを判定し、判定結果を制御部1059に出力する。
次に、図72のフローチャートを参照して、シーンチェンジ検出部1053の動作について説明する。ステップS1681において、動きベクトル確度平均算出部1671は、ベクトル確度の総和を算出する。具体的には、動きベクトル確度平均算出部1671は、動き推定部1052の統合処理部1605より出力された各ブロック毎に算出された動きベクトル確度VCの値を加算する処理を実行する。
ステップS1682において、動きベクトル確度平均算出部1671は、ベクトル確度VCの総和を算出する処理が全ブロックについて終了したか否かを判定し、まだ終了していない場合には、ステップS1681の処理を繰り返す。この処理を繰り返すことで、1画面分の各ブロックの動きベクトル確度VCの総和が算出される。ステップS1682において1画面全部についての動きベクトル確度VCの総和の算出処理が終了したと判定された場合、ステップS1683に進み、動きベクトル確度平均算出部1671は、ベクトル確度VCの平均値を算出する処理を実行する。具体的には、ステップS1681の処理で算出された1画面分のベクトル確度VCの総和を、足し込まれたブロック数で除算して得られた値が平均値として算出される。
ステップS1684において、閾値判定部1672は、ステップS1683の処理で動きベクトル確度平均算出部1671により算出された動きベクトル確度VCの平均値を、予め設定されている閾値と比較し、閾値より小さいか否かを判定する。一般的に、動画中の時刻が異なる2フレーム間でシーンチェンジが発生すると、対応する画像が存在しないため、動きベクトルを算出しても、その動きベクトルは確からしくないことになる。
そこで、ベクトル確度VCの平均値が閾値より小さい場合には、ステップS1685において、閾値判定部1672はシーンチェンジフラグをオンし、閾値より小さくない場合(閾値以上である場合)、ステップS1586において、シーンチェンジフラグをオフにする。シーンチェンジフラグのオンは、シーンチェンジがあったことを表し、そのオフは、シーンチェンジが無いことを表す。
このシーンチェンジフラグは、制御部1059へ供給され、図59のステップS1421におけるシーンチェンジの有無の判定に利用される。
以上のように、図3の追尾処理部71を構成することにより、追尾すべきオブジェクトが回転したり(図40)、オクルージョンが発生したり(図41)、あるいはシーンチェンジにより、オブジェクトの追尾点が一時的に表示されなくなる(図42)ような場合でも、画像の中で移動するオブジェクト(追尾点)を正確に追尾することができる。
このようにして追尾されるオブジェクトの追尾点の位置情報が、図1の追尾処理部71による追尾結果として追尾処理制御部72に出力される。そして、追尾処理制御部72により、図4のステップS3において、追尾結果記憶部81に記憶される追尾結果に基づいて、追尾処理制御部72による位置算出処理が実行される。
以上のように、表示画面上の固定点、画像特徴量に基づく画像上の点、または複数の追尾処理により得られた追尾結果などから、追尾処理の対象となる候補位置が算出されるので、信頼性の高い候補位置を、表示部21に表示させることができる。
これにより、実行されている追尾方式がオクルージョンなどの発生により正確に追尾を行うことができないものであったり、あるいは、比較的長時間のオクルージョンなどの発生により、所望の追尾が行われていない場合であっても、ユーザは、表示部21に表示される候補位置を選んで指示するだけで、容易に、所望の追尾対象を再設定することができる。
したがって、図1の監視システムにおいて、撮像装置11が光学的なズーム機能を持たない非常に安価なカメラであり、仮に、侵入者Bが追尾対象から外れてしまったとしても、従来のように、再生を停止または一時停止することなく、追尾を継続させたまま、監視者であるユーザAは、すばやく追尾対象の位置を修正することが可能となるので、簡単な操作で侵入者Bが追尾されてズームされた画像32を見ることができる。
これにより、従来に較べて安価で、かつ、安全性の高い監視システムを提供することが可能になる。
図73は、本発明を動物鑑賞システムに適用した場合の構成例を表している。この動物鑑賞システムにおいては、撮像装置11と、撮像装置11と接続され、表示部21を有する追尾装置12を用いて、撮像装置11により撮像され、表示部21に表示される画像を見ながら、鑑賞者であるユーザCにより動物園の所定の領域を動き回る猿2001がじっくり鑑賞される。
撮像装置11は、動物園の所定の領域を撮像し、その画像2002を追尾装置12に入力する。すなわち、所定の領域内を動き回る猿2001が撮像された画像2002が追尾装置12に入力される。
追尾装置12は、入力された画像2002を用い、ユーザCの指示に対応して、猿2001を追尾対象として追尾を行い、その追尾結果に基づいて、例えばズームされた画像2003を生成し、表示部21に表示させる。猿2001が動き回るため、長時間、正確な追尾を行うことは困難である。そして、猿2001が追尾対象からずれてしまった場合には、追尾装置12に、追尾対象の候補位置の表示を指示する。
追尾装置12においては、上述したように、表示画面上の固定点、画像特徴量に基づく画像上の点、または複数の追尾処理により得られた追尾結果などから、追尾処理の対象となる候補位置が算出されるので、信頼性の高い候補位置を、表示部21に表示させることができる。これにより、ユーザは、表示部21に表示された候補位置を選択指示するだけで、容易に、所望の猿2001を、追尾対象として再設定することができる。
このように、追尾装置12においては、追尾対象が外れた場合にも、その修正がすぐに可能であるので、ユーザCは、貴重な機会を逃すことなく、猿2001の鑑賞を楽しむことができる。
予め撮像装置により撮像された映像を記録しておき、その後、追尾ズームを行うことも可能ではあるが、リアルタイム(現実世界)でしか体験できないその場の雰囲気が失われてしまうので、楽しさは、激減する恐れがある。
すなわち、本発明は、リアルタイムにユーザの操作結果が追尾結果に反映されるシステムに、特に効果を発揮する。
なお、本発明は、監視システムや、動物鑑賞システムに限らず、テレビジョン受像機や、各種の画像処理装置に適応することが可能である。
また、以上においては、画像の処理単位をフレームとしたが、フィールドを処理単位とする場合にも本発明は適用が可能である。
なお、上述した一連の処理をハードウェアで実現するか、ソフトウェアで実現するかは問わない。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、汎用のパーソナルコンピュータなどに、ネットワークやリムーバブルメディアなどの記録媒体からインストールされる。
また、本明細書において上述した一連の処理を実行するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
11 撮像装置, 12 追尾装置, 21 表示部, 52 オブジェクト追尾部, 53 全体システム制御部, 54 表示画像生成部, 55 リモートコントローラ, 71,71−1乃至71−n 追尾処理部, 72 追尾処理制御部, 81 追尾結果記憶部, 82 位置算出部, 83 対象位置設定部, 131 画像特徴量算出部, 161 追尾結果更新部, 301 拡大信号処理部, 302 追尾結果選択候補表示部
Claims (21)
- 移動するオブジェクトを表示させる画像処理装置において、
ユーザの操作に対応して、画像上の移動するオブジェクトを追尾対象として追尾を行う追尾手段と、
前記追尾手段による前記追尾対象の候補としての候補位置を算出する候補算出手段と、
前記候補算出手段により算出された前記候補位置の表示を制御する表示制御手段と、
ユーザの操作に対応して、表示される前記候補位置を、前記追尾手段の次のフレームにおける前記追尾対象として設定する対象設定手段と
を備える画像処理装置。 - 前記候補算出手段は、
予め記憶される画面内の所定の位置を読み出して、前記候補位置を算出する
請求項1に記載の画像処理装置。 - 前記候補算出手段は、
前記画像の特徴量に基づいて、前記候補位置を算出する
請求項1に記載の画像処理装置。 - 前記候補算出手段は、
複数の前記追尾手段による追尾結果に基づいて、前記候補位置を算出する
請求項1に記載の画像処理装置。 - 前記複数の追尾手段は、複数の異なる種類の追尾方式を用いて、それぞれ追尾を行う
請求項4に記載の画像処理装置。 - 前記対象設定手段は、
ユーザの操作に対応して、表示される前記候補位置を、前記複数の追尾手段の次のフレームにおける前記追尾対象としてそれぞれ設定する
請求項5に記載の画像処理装置。 - 前記複数の追尾手段は、前記オブジェクト上の複数の異なる近傍位置をそれぞれ追尾対象として追尾を行う
請求項4に記載の画像処理装置。 - 前記対象設定手段は、
ユーザの操作に対応して、表示される前記候補位置に基づいて、前記候補位置を含む複数の異なる近傍位置を、前記複数の追尾手段の次のフレームにおける前記追尾対象としてそれぞれ設定する
請求項7に記載の画像処理装置。 - 前記複数の追尾手段の中の1の追尾手段による追尾結果に基づいて、前記複数の追尾手段のうちの一部または全部の追尾手段による追尾結果を更新する更新手段をさらに備える
請求項4に記載の画像処理装置。 - 前記更新手段は、所定の時間が経過する毎に、前記複数の追尾手段の中の1の追尾手段による追尾結果に基づいて、前記複数の追尾手段のうちの一部または全部の追尾手段による追尾結果を更新する
請求項9に記載の画像処理装置。 - 前記更新手段は、所定時間が経過した第1のタイミング毎に、前記複数の追尾手段の中の1の追尾手段による追尾結果に基づいて、前記複数の追尾手段のうちの一部の追尾手段による追尾結果を更新し、
前記第1のタイミングとは異なる、前記所定時間が経過した第2のタイミング毎に、前記複数の追尾手段の中の1の追尾手段による追尾結果で、前記複数の追尾手段のうちの他の一部の追尾手段による追尾結果を更新する
請求項9に記載の画像処理装置。 - 前記更新手段は、前記複数の追尾手段の追尾結果が大きく異なるときに、前記複数の追尾手段の中の1の追尾手段による追尾結果に基づいて、前記複数の追尾手段のうちの一部または全部の追尾手段による追尾結果を更新する
請求項9に記載の画像処理装置。 - 前記表示制御手段は、ユーザの操作による選択中の候補位置が、他の候補位置と区別されて前記画像上に示される前記候補位置の一覧表示を制御する
請求項1に記載の画像処理装置。 - 前記表示制御手段は、前記画像上の前記選択中の候補位置の上に第1の小画像を重畳し、前記画像上の前記他の候補位置の上に前記第1の小画像とは異なる第2の小画像を重畳して、前記候補位置の一覧表示を制御する
請求項13に記載の画像処理装置。 - 前記表示制御手段は、
前記候補位置を中心としたズーム画像を生成する画像生成手段をさらに備え、
前記画像生成手段により生成された前記候補位置を中心としたズーム画像の表示を制御する
請求項1に記載の画像処理装置。 - 前記表示制御手段は、
前記画像生成手段により生成された複数の前記候補位置をそれぞれ中心とした複数のズーム画像の表示を制御する
請求項15に記載の画像処理装置。 - 前記表示制御手段は、
前記画像生成手段により生成された前記候補位置を中心としたズーム画像に、ユーザの操作による選択中の候補位置が、他の候補位置と区別されて前記画像上に示される前記候補位置の一覧表示が重畳された表示を制御する
請求項15に記載の画像処理装置。 - 前記表示制御手段は、
ユーザの操作による選択中の候補位置が、他の候補位置と区別されて前記画像上に示される前記候補位置の一覧表示上に、前記画像生成手段により生成された前記候補位置を中心としたズーム画像が重畳された表示を制御する
請求項15に記載の画像処理装置。 - 移動する対象を表示させる画像処理装置の画像処理方法において、
ユーザの操作に対応して、画像上の移動するオブジェクトを追尾対象として追尾を行う追尾手段の前記追尾対象の候補としての候補位置を算出し、
算出された前記候補位置の表示を制御し、
ユーザの操作に対応して、表示される前記候補位置を、前記追尾手段の次のフレームにおける前記追尾対象として設定するステップ
を含む画像処理方法。 - 移動する対象を表示させる処理をコンピュータに行わせるプログラムであって、
ユーザの操作に対応して、画像上の移動するオブジェクトを追尾対象として追尾を行う追尾手段の前記追尾対象の候補としての候補位置を算出し、
算出された前記候補位置の表示を制御し、
ユーザの操作に対応して、表示される前記候補位置を、前記追尾手段の次のフレームにおける前記追尾対象として設定するステップ
を含むプログラム。 - 請求項20に記載のプログラムが記録されている記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006099831A JP2007274543A (ja) | 2006-03-31 | 2006-03-31 | 画像処理装置および方法、プログラム、並びに記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006099831A JP2007274543A (ja) | 2006-03-31 | 2006-03-31 | 画像処理装置および方法、プログラム、並びに記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007274543A true JP2007274543A (ja) | 2007-10-18 |
Family
ID=38676836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006099831A Withdrawn JP2007274543A (ja) | 2006-03-31 | 2006-03-31 | 画像処理装置および方法、プログラム、並びに記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007274543A (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090296986A1 (en) * | 2008-05-30 | 2009-12-03 | Sony Corporation | Image processing device and image processing method and program |
EP2131329A2 (en) | 2008-06-06 | 2009-12-09 | Sony Corporation | Tracking point detecting device and method, program, and recording medium |
JP2010050934A (ja) * | 2008-08-25 | 2010-03-04 | Canon Inc | 画像処理装置、撮像装置、画像処理装置の制御方法及びプログラム |
JP2010140425A (ja) * | 2008-12-15 | 2010-06-24 | Hitachi Kokusai Electric Inc | 画像処理システム |
JP2012505471A (ja) * | 2008-10-08 | 2012-03-01 | ストライダー ラブス,インコーポレイテッド | 画像から3dシーン・モデルを構築するシステムおよび方法 |
JP2012099975A (ja) * | 2010-10-29 | 2012-05-24 | Keyence Corp | 動画追尾装置、動画追尾方法および動画追尾プログラム |
US8363107B2 (en) | 2008-12-04 | 2013-01-29 | Sony Corporation | Image processing device and method, image processing system, and image processing program |
KR20170048209A (ko) * | 2015-10-23 | 2017-05-08 | 가부시키가이샤 모르포 | 화상처리장치, 전자기기, 화상처리방법 및 기억매체 |
WO2019070011A1 (ja) * | 2017-10-05 | 2019-04-11 | パナソニックIpマネジメント株式会社 | 移動体追跡装置及び移動体追跡方法 |
-
2006
- 2006-03-31 JP JP2006099831A patent/JP2007274543A/ja not_active Withdrawn
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8494216B2 (en) * | 2008-05-30 | 2013-07-23 | Sony Corporation | Image processing device and image processing method and program |
EP2131327A1 (en) | 2008-05-30 | 2009-12-09 | Sony Corporation | User-based selection of tracking point candidates |
US20090296986A1 (en) * | 2008-05-30 | 2009-12-03 | Sony Corporation | Image processing device and image processing method and program |
EP2131329A2 (en) | 2008-06-06 | 2009-12-09 | Sony Corporation | Tracking point detecting device and method, program, and recording medium |
JP2010050934A (ja) * | 2008-08-25 | 2010-03-04 | Canon Inc | 画像処理装置、撮像装置、画像処理装置の制御方法及びプログラム |
JP2012505471A (ja) * | 2008-10-08 | 2012-03-01 | ストライダー ラブス,インコーポレイテッド | 画像から3dシーン・モデルを構築するシステムおよび方法 |
US9886770B2 (en) | 2008-12-04 | 2018-02-06 | Sony Corporation | Image processing device and method, image processing system, and image processing program |
US8363107B2 (en) | 2008-12-04 | 2013-01-29 | Sony Corporation | Image processing device and method, image processing system, and image processing program |
US8957971B2 (en) | 2008-12-04 | 2015-02-17 | Sony Corporation | Image processing device and method, image processing system, and image processing program |
US9786144B2 (en) | 2008-12-04 | 2017-10-10 | Sony Corporation | Image processing device and method, image processing system, and image processing program |
JP2010140425A (ja) * | 2008-12-15 | 2010-06-24 | Hitachi Kokusai Electric Inc | 画像処理システム |
JP2012099975A (ja) * | 2010-10-29 | 2012-05-24 | Keyence Corp | 動画追尾装置、動画追尾方法および動画追尾プログラム |
KR20170048209A (ko) * | 2015-10-23 | 2017-05-08 | 가부시키가이샤 모르포 | 화상처리장치, 전자기기, 화상처리방법 및 기억매체 |
KR101889470B1 (ko) * | 2015-10-23 | 2018-08-20 | 가부시키가이샤 모르포 | 화상처리장치, 전자기기, 화상처리방법 및 기억매체 |
US10319097B2 (en) | 2015-10-23 | 2019-06-11 | Morpho, Inc. | Image processing device, method and non-transitory computer readable recording medium for tracking a target in a motion picture using color information |
WO2019070011A1 (ja) * | 2017-10-05 | 2019-04-11 | パナソニックIpマネジメント株式会社 | 移動体追跡装置及び移動体追跡方法 |
JPWO2019070011A1 (ja) * | 2017-10-05 | 2020-11-05 | パナソニックIpマネジメント株式会社 | 移動体追跡装置及び移動体追跡方法 |
JP7246005B2 (ja) | 2017-10-05 | 2023-03-27 | パナソニックIpマネジメント株式会社 | 移動体追跡装置及び移動体追跡方法 |
US11638068B2 (en) | 2017-10-05 | 2023-04-25 | Panasonic Intellectual Property Management Co., Ltd. | Mobile entity tracking device and method for tracking mobile entity |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007274543A (ja) | 画像処理装置および方法、プログラム、並びに記録媒体 | |
JP4575829B2 (ja) | 表示画面上位置解析装置及び表示画面上位置解析プログラム | |
JP4912117B2 (ja) | 追跡機能付き撮像装置 | |
JP4797753B2 (ja) | 画像処理装置および方法、並びにプログラム | |
EP2372654A1 (en) | Object tracking apparatus, object tracking method, and control program | |
JP5274216B2 (ja) | 監視システム及び監視方法 | |
JP2009253505A (ja) | 画像信号処理装置、画像信号処理方法、およびプログラム | |
JP4725105B2 (ja) | 画像処理装置および方法、プログラム並びに記録媒体 | |
GB2554111A (en) | Image processing apparatus, imaging apparatus, and image processing method | |
JP7223079B2 (ja) | 画像処理装置およびその制御方法、ならびに撮像装置 | |
JP2007272733A (ja) | 画像処理装置および方法、並びにプログラム | |
JP2008241707A (ja) | 自動監視システム | |
JP2008009849A (ja) | 人物追跡装置 | |
JP2010114752A (ja) | 撮像装置及び撮像方法及びプログラム | |
WO2014103673A1 (ja) | 情報処理システム、情報処理方法及びプログラム | |
JP4464902B2 (ja) | カメラ制御装置およびカメラ制御プログラム | |
JP2005346425A (ja) | 自動追尾装置及び自動追尾方法 | |
JP4594197B2 (ja) | 自動追尾装置 | |
US8471872B2 (en) | Image display controlling apparatus, image display controlling method and integrated circuit | |
JP2009010453A (ja) | 画像処理装置および方法、並びにプログラム | |
JP4664878B2 (ja) | 画像処理装置 | |
JP2012198802A (ja) | 侵入物検出システム | |
JP3828096B2 (ja) | 物体追跡装置 | |
JP2007272731A (ja) | 画像処理装置および方法、並びにプログラム | |
JP2013179614A (ja) | 撮像装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090602 |