はじめに、本発明で用いる用語について説明する。判定対象フレームとは、フォロー判定を行うフレームである。また、軌跡生成フレームは、フォロー判定に用いる撮影領域の移動軌跡と領域または点の移動軌跡を、判定対象フレームとの間で生成するフレームとする。また、現フレームおよび参照フレームは、撮影領域の移動軌跡と領域または点の移動軌跡を算出するための動きベクトルの検出に用いるフレームの表現として用いる場合がある。
撮影領域の移動軌跡とは、映像中の任意のフレームを基準フレームに設定したときの、基準フレーム上の座標系における判定対象フレームと軌跡生成フレームとの間でのカメラによる撮影領域の位置の遷移とする。また、領域または点の移動軌跡は、基準フレーム上の座標系における判定フレームと軌跡生成フレームとの間での判定対象フレーム上の領域または点の位置の遷移とする。撮影領域の移動軌跡と領域または点の移動軌跡は、判定対象フレームと軌跡生成フレームの間の複数の現フレームについて、参照フレームとの間で算出した動きベクトルをもとに算出する。
実施形態1.
以下、本発明の実施形態を図面を参照して説明する。図1は、本発明の第1の実施形態のフォロー対象検出装置の構成例を示すブロック図である。図1に示すフォロー対象検出装置は、映像入力手段100と、データ処理装置110と、判定結果出力手段120とを備えている。また、データ処理装置110は、動きベクトル検出手段111と、カメラワークパラメータ算出手段112と、移動軌跡推定手段113と、フォロー判定手段114とを含む。
映像入力手段100は、映像中のフレームの画像データを動きベクトル検出手段111に入力する。
動きベクトル検出手段111は、第1および第2の更新関連情報に応じて、映像入力手段100から現フレームと参照フレームのフレーム情報を受け取り、判定フレーム上の領域または点について、現フレームと参照フレームの間での動きベクトルを検出する。
ここで、第1および第2の更新関連情報は、いずれも現在の判定対象フレームに対するフォロー判定のために動きベクトル検出処理が必要であることを動きベクトル検出手段111に通知するための情報であって、動きベクトル検出手段111に入力する時点での、判定フレーム上の各領域または点(判定対象とされる領域または点)に対するフォロー判定結果(ステータス情報)と、処理に利用中のデータ(現フレームや参照フレーム、判定対象フレーム、軌跡生成フレームのフレーム番号等)を含むものである。なお、第1の更新関連情報は、移動軌跡推定手段111によって管理される情報である。また、第2の更新関連情報は、フォロー判定手段114によって管理される情報である。
本実施形態では、第1および第2の更新関連情報は、いずれも更新の有無を表す更新フラグと、判定対象フレーム・軌跡生成フレーム・現フレーム・参照フレームのフレーム番号と、各領域または点のステータス情報として、フォロー判定の結果を表すフラグ、動きベクトル検出の状態を表すフラグおよび保留開始フレームのフレーム番号を含む情報とする。
ステータス情報に含まれる、フォロー判定の結果を表すフラグは、”未判定”、”フォロー領域”、”非フォロー領域”の3つの結果のいずれかを示すものとする。なお、フォロー判定結果における”未判定”は、フォロー判定がまだ行われていない状態を表わしている。また、”フォロー領域”は、フォロー判定の結果、当該領域または点(当該ステータス情報が対応づけられている領域または点)がフォロー領域として判定されたことを表している。また、”非フォロー領域”は、当該領域または点が非フォロー領域として判定されたことを表している。
また、動きベクトル検出の状態を表すフラグは、”正常”、”除外”、”保留”の3つの状態のいずれかを示すものとする。なお、動きベクトル検出状態における”正常”は、当該領域または点を動きベクトル検出処理の対象とされた状態を表している。また、”除外”は、当該領域または点が撮影領域の移動が起因して消滅したために動きベクトル検出処理から除外された状態を表している。また、”保留”は、当該領域または点がフォロー対象自体の動きやフォロー対象の前景によるオクルージョンによって一時的に隠れたために動きベクトル検出処理を保留にされた状態を表している。なお、動きベクトル検出の状態を表すフラグを”保留”に設定することを「保留フラグを付与する」と表現する場合がある。その際、保留開始フレームは、保留フラグが付与されたときの現フレームを表す。また、同様に”正常”に設定することを「正常フラグを付与する」と表現する場合がある。なお、”除外”についても同様とする。
また、動きベクトル検出手段111は、カメラパラメータ算出手段112に、判定対象とされる領域または点の現フレーム上での座標と動きベクトルを入力する。また、移動軌跡推定手段113に、各領域または点の現フレームと参照フレームの間での動きベクトルと、ステータス情報と、判定対象フレーム・軌跡生成フレーム・現フレーム・参照フレームのフレーム番号と、判定対象フレームの画像データと、領域または点の判定対象フレーム上での座標とを入力する。
カメラワークパラメータ算出手段112は、動きベクトル検出手段111から受け取った領域または点の現フレーム上での座標と動きベクトルとをもとに、現フレームと参照フレームとの間でのカメラワークパラメータを算出する。また、算出したカメラワークパラメータを移動軌跡推定手段113に入力する。
ここで、カメラワークパラメータとは、いわゆるカメラワークに関する情報であって、カメラワーク(カメラの移動やレンズの向きの移動、ズーム変更等によって生じる撮影領域の見かけ上の動き(すなわちフレーム間での撮影領域の動き)を特定可能な情報とする。例えば、ズームパラメータや水平方向の併進パラメータ、垂直方向の併進パラメータ、回転パラメータなどを含む情報である。
移動軌跡推定手段113は、判定対象フレームと軌跡生成フレームとの間の複数の現フレームについて算出された領域または点の動きベクトルとカメラワークパラメータをもとに、判定対象フレームと軌跡生成フレームとの間での撮影領域の移動軌跡と、領域または点の移動軌跡とを推定する。
また、移動軌跡推定手段113は、撮影領域の移動軌跡をもとに、判定対象フレームと軌跡生成フレームとの間の撮影領域の総移動量を算出する。
移動軌跡推定手段113は、動きベクトル検出手段111から各領域または点の現フレームと参照フレームの間での動きベクトルとステータス情報、判定対象フレーム・軌跡生成フレーム・現フレーム・参照フレームのフレーム番号、判定対象フレームの画像データと領域または点の判定対象フレーム上での座標を受け取る。また、カメラワークパラメータ算出手段112から、現フレームと参照フレームとの間でのカメラワークパラメータを受けとる。
また、移動軌跡推定手段113は、算出した撮影領域の総移動量が閾値以上の場合には、撮影領域の移動軌跡、領域または点の移動軌跡、領域または点のステータス情報、判定対象フレーム・軌跡生成フレーム・現フレーム・参照フレームのフレーム番号、判定対象フレームの画像データと領域または点の判定対象フレーム上での座標を、フォロー判定手段114に入力する。一方、算出した撮影領域の総移動量が閾値未満の場合には、現在の判定対象フレームに対するフォロー判定のために更なる動きベクトル検出処理が必要であるとして、その旨を示す情報(更新フラグ)と、現時点での判定結果(ステータス情報)と処理に利用中のデータとを表した第1の更新関連情報を動きベクトル検出手段111に入力する。
フォロー判定手段114は、撮影領域の移動軌跡および各領域または点の移動軌跡をもとに判定対象フレーム上の各領域または点がフォロー領域か否かを判定する。また、領域または点のステータス情報内のフォロー判定結果を更新する。
フォロー判定手段114は、移動軌跡推定手段113から、撮影領域の移動軌跡、領域または点の移動軌跡、領域または点のステータス情報、判定対象フレーム・軌跡生成フレーム・現フレーム・参照フレームのフレーム番号、判定対象フレームの画像データと領域または点の判定対象フレーム上での座標を受け取る。
また、フォロー判定手段114は、判定対象フレームに対するフォロー判定が完了した場合には、各領域または点のステータス情報、判定対象フレームの画像データと領域または点の判定対象フレーム上での座標を判定結果出力手段120に入力する。未完了の場合には、現在の判定対象フレームに対するフォロー判定のために更なる動きベクトル検出処理が必要であるとして、その旨を示す情報(更新フラグ)と、現時点での判定結果(ステータス情報)と処理に利用中のデータとを表した第2の更新関連情報を動きベクトル検出手段111に入力する。
判定結果出力手段120は、領域または点のステータス情報、判定対象フレームの画像データと領域または点の判定対象フレーム上での座標を取得し、フォロー判定の結果を出力する。
本実施形態において、動きベクトル検出手段111、カメラワークパラメータ算出手段112、移動軌跡推定手段113、フォロー判定手段114は、例えば、プログラムに従って動作するCPUにより実現される。また、映像入力手段100は、映像入力端子や映像を構成する画像データ群をファイルやストリームデータとして入力するネットワークカードやディスクドライブといったデータ入力装置によって実現される。また、判定結果出力手段120は、ディスプレイ装置などのデータ出力装置によって実現される。
次に、本実施形態の動作について説明する。図2は、本実施形態のフォロー対象検出装置の動作の一例を示すフローチャートである。図2に示す例では、映像入力手段100から動きベクトル検出手段111に対して、追尾撮影された一連のフレームの中から任意のフレームの画像データが入力可能とする。なお、映像入力手段100は、一連のフレームの画像データの全てを動きベクトル検出手段111に入力し、動きベクトル検出手段111が入力された画像データの中から任意のフレームの画像データを選出するようにしてもよい。また、フォロー対象検出処理の開始が指示されたタイミングで、第1の更新関連情報および第2の更新関連情報には初期値が設定されているものとする。なお、第1および第2の更新関連情報とも初期値は、更新フラグを”更新なし”を示す値に設定する。ステータス情報および各フレーム(現フレーム,参照フレーム,判定対象フレーム,軌跡生成フレーム)のフレーム番号は未設定(値を持たない状態)とすればよい。
本例では、まず、動きベクトル検出手段111が、移動軌跡推定手段113およびフォロー判定手段114から取得した第1の更新関連情報および第2の更新関連情報中の更新フラグを確認する。ここでは更新がないものとする。動きベクトル検出手段111は、各更新フラグをもとに、更新がないことを確認すると、フォロー判定を行うフレームを判定対象フレームに、判定フレームから時間間隔Δt離れたフレームを軌跡生成フレームに設定する。そして、判定対象フレームを現フレームに、軌跡生成フレームを参照フレームに設定し、現フレームと参照フレームの画像データを取得する(ステップA01)。
なお、軌跡生成フレームを設定するために用いる時間間隔Δtは、固定の時間間隔でも良いし、判定対象フレームに応じて変化する時間間隔でもよい。また、軌跡生成フレームは、判定対象フレームからΔt前のフレームあっても、Δt後のフレームであってもよい。以下、Δt後のフレームを選択した場合について、説明する。
現フレームと参照フレームの画像データを取得すると、動きベクトル検出手段111は、現フレーム上から動きベクトルの検出対象(すなわち、フォロー領域の判定対象)とする領域または点を選択し、選択した領域または点についての現フレームから参照フレームへの動きベクトルを検出する(ステップA02)。なお、フォロー領域の判定対象として選択する領域または点は、いくつであってもよい。例えば、フレームの画像を等分割した各分割領域を対象としてもよい。また、例えば、フレームの画像を同じ色を持った領域ごとに分割した各分割領域を対象としてもよい。また、例えば、フレームの画像データからSIFTやHarrisオペレータ等の特徴点抽出エンジンを使って抽出した特徴点の中で、特徴点として信頼度の高い特徴点を対象としてもよい。
動きベクトルは、ブロックマッチングやテンプレートマッチング、Meanshift法やパーティクルフィルタなどの領域追跡に基づく手法や、Lucus−Kanadeトラッカなどの特徴点追跡に基づく手法によって検出できる。例えば、ブロックマッチングに基づく手法を用いた場合、現フレーム上の各ブロックについて参照フレーム上を走査し、ブロックに類似する領域を対応ブロックとして検出し、参照フレーム上のブロックの中央点座標から対応ブロックの中央点座標へのベクトルを領域の動きベクトルとして検出できる。
動きベクトルの検出方法は、上記を用いても他の手法を用いてもかまわない。動きベクトルは、判定対象フレーム上の全ての領域または点に対して検出しても良いし、あらかじめ指定した個数分の領域または点に対してのみ検出してもよいし、あらかじめ指定した領域または点に対してのみ検出してもよい。
また、動きベクトル検出手段111は、動きベクトルの検出状況によって、領域または点のステータス情報を次のように更新する。
まず、動きベクトルが検出できなかった場合について説明する。動きベクトルが検出できなかった場合には、現フレームの端付近の領域または点については、カメラによる撮影領域の移動が起因してフレームから外れた領域または点として、除外フラグを付与する。この除外フラグを付与することにより、その領域または点を以降の動きベクトル検出処理の対象から除外する。
また、現フレーム中央付近に存在する領域または点については、フォロー対象自体の動きやフォロー対象の前景により一時的に隠れた領域または点として、保留フラグを付与する。この保留フラグを付与することにより、今回の動きベクトル検出処理を保留とし、現フレームの更新後に再度動きベクトルの検出対象とする。また、現フレームを保留開始フレームに設定する。
次に、動きベクトルが検出できた場合について説明する。動きベクトルが検出できた場合には、動きベクトルが正常に検出できた領域または点として、正常フラグを付与する。
動きベクトル検出手段111が動きベクトル検出処理を終えると、次に、カメラワークパラメータ算出手段112は、現フレームと参照フレームとの間のカメラワークパラメータを算出する(ステップA03)。カメラワークパラメータの算出は、例えば、上述の特許文献1に記載されている方法を用いてもよい。
より具体的には、カメラの操作をx,y方向の平行移動、拡大縮小、回転で表現できるものと仮定して、以下の式(1)のカメラワークモデルを元に各撮影情報を算出してもよい。
なお、式(1)の座標系は、現フレームの画像中心を原点とする同次座標系である。点pは、現フレーム上の特徴点であり、動きベクトル検出処理で選択した点であってもよいし、動きベクトル検出処理で選択した領域の重心点や、領域の輪郭線上から選択した代表点など、領域内の任意の点であってもよい。また、点p’は参照フレーム上の点pに対応する点(対応点)であり、点pにおける動きベクトルの終点座標にあたる。
このモデルにおけるカメラワークパラメータは、4要素{z,dx,dy,θ}によって表現され、zをズームパラメータ、dxとdyを水平および垂直方向の併進パラメータ、θを回転パラメータと呼ぶ。カメラワークパラメータは、特徴点と対応点の組である対応組{(x,y),(x’,y’)}2組を式(1)に代入することで算出できる。
カメラワークパラメータの算出方法としては、この他にも特徴点としての信頼度の高い2組の対応組を利用する方法がある。また、移動体の動きによる影響を抑えるために、対応組の全組み合わせで算出したカメラワークパラメータ群から、各要素の最頻値あるいは中央値を選択する方法がある。カメラワークパラメータの算出には、上記の方法を用いてもその他の方法を用いても構わない。
また、現フレームと参照フレームとの間の各フレームにおける動きベクトルに加え、それらフレーム以外のフレーム上の領域または点に対する複数の各フレームにおける動きベクトル(例えば、旧現フレーム時に算出された動きベクトル)をもとに、カメラワークパラメータを算出してもよい。
また、ズームおよび回転が無視できるほど小さい場合には、カメラワークパラメータの算出方法として、現フレームと参照フレームとの間の動きベクトルの平均値あるいは最頻値あるいは中央値を、カメラワークパラメータの併進パラメータとして用いてもよい。また、フレーム上の座標位置によって動きベクトルを数個のグループにまとめ、各グループから選択した代表値をカメラワークパラメータの併進パラメータとして用いてもよい。
このように、カメラワークパラメータを上記のように画像処理によって求められた動きベクトルをもとに算出してもよいし、カメラに搭載した加速度センサによって算出してもよい。
次いで、移動軌跡推定手段113は、動きベクトル検出手段111が求めた判定対象とされる領域または点についての動きベクトルと、カメラワークパラメータ算出手段112が求めた現フレームと参照フレームとの間のカメラワークパラメータとをもとに、判定対象フレームと軌跡生成フレームの間での撮影領域の移動軌跡および各領域または点の移動軌跡を推定する(ステップA04)。
このとき、移動軌跡推定手段113は、現在の判定対象フレームに対して、判定対象フレームと軌跡生成フレームの間での撮影領域の移動軌跡および各領域または点の移動軌跡を初めて推定した場合には(ステップA05のYes)、移動軌跡を新規に生成後に、動きベクトル検出手段111に第1の更新関連情報を入力し(ステップA06)、ステップA01〜A04の処理を再実行させる。
一方、現在の判定対象フレームに対する推定が2度目以降の場合には(ステップA05のNo)、現在の判定対象フレームに対する各移動軌跡を更新し、ステップA07に進む。
以下に、移動軌跡の算出方法について説明する。
まず、移動軌跡の新規作成について説明する。図3および図4は、撮影領域の移動軌跡の一例を示す説明図である。撮影領域の移動軌跡は、判定対象フレームから軌跡生成フレームまでの、判定対象フレームの領域または点の予測点の基準フレームの座標系上での位置遷移で表現できる。ここで、予測点とは、判定対象フレームの領域または点が、撮影領域の移動によって配置されると予測される基準フレームの座標系上の点とし、領域または点の座標を以下の式(2)に代入することで算出される座標とする。
x’=(x+yθ1−dx1)z1
y’=(−xθ1+y−dy1)z1 ・・・式(2)
図3は、判定対象フレームを基準フレームに設定し、現フレームと参照フレームとの間で算出されたカメラワークパラメータのパラメータセット{ズームパラメータz,水平方向の併進パラメータdx,垂直方向の併進パラメータdy,回転パラメータθ}が{z1,dx1,dy1,θ1}で表される場合の撮影領域の移動軌跡の例を示す説明図である。例えば、図3では、判定対象とされた各領域(領域a,b,c)の位置遷移により、撮影領域の移動軌跡が示されている。なお、領域aの位置遷移は、フレーム間距離が0のときの座標A:(xa,ya)と、フレーム間距離がΔtのときの予測点である座標Ac’:((xa+yaθ1−dx1)z1,(−xaθ1+ya−dy1)z1))とによって示されている。領域bの位置遷移は、フレーム間距離が0のときの座標B:(xb,yb)と、フレーム間距離がΔtのときの予測点である座標Bc’:((xb+ybθ1−dx1)z1,(−xbθ1+yb−dy1)z1))とによって示されている。領域cの位置遷移は、フレーム間距離が0のときの座標C:(xc,yc)と、フレーム間距離がΔtのときの予測点である座標Cc’:((xc+ycθ1−dx1)z1,(−xcθ1+yc−dy1)z1))とによって示されている。
カメラワークパラメータにズームパラメータが含まれる場合には、基準フレーム上での点の位置によって撮影領域の移動軌跡が異なるため、全ての領域または点について位置遷移を算出する。なお、カメラワークパラメータが併進パラメータのみ値をもつ場合には、基準フレームの角3点などの撮影領域を特定しうる代表的な点についてのみ位置遷移を算出し、撮影領域の移動軌跡として保持するようにしてもよい。
また、ズームおよび回転が無視できるほど小さい場合、撮影領域の移動軌跡は、判定対象フレームから軌跡生成フレームまでの判定対象フレームの画像中心点Oの基準フレームの座標系上での位置遷移で表現できる。
図4は、基準フレームを判定対象フレームとし、現フレームにおけるカメラワークパラメータの水平方向成分が−Vx1,垂直方向成分が−Vy1のときの撮影領域の移動軌跡の例を示す説明図である。例えば、図4では、撮影領域の移動軌跡として、画像中心点Oの基準フレームの座標系での位置遷移が、フレーム間距離が0のときの座標O:(0,0)と、フレーム間距離がΔtのときの座標O’:(Vx1,Vy1)とによって示されている。ここで、水平方向成分または垂直方向成分とは、動きベクトルの平均値等をカメラワークパラメータの併進パラメータとして用いた場合のdxまたはdyをいう。
また、図5および図6は、領域または点の移動軌跡の一例を示す説明図である。各領域または点の移動軌跡は、判定対象フレームから軌跡生成フレームまでの、判定対象フレームの各領域または点の基準フレームの座標系上での位置遷移で表現できる。ここで、撮影領域の移動軌跡が図3に示す例の場合であって、判定対象フレームを基準フレームに設定し、領域a、b、cの座標がそれぞれA:(xa,ya)、B:(xb,yb)、C:(xc,yc)、現フレームから参照フレームへの各領域の動きベクトルをVa1:(Vxa1,Vya1)、Vb1:(Vxb1,Vyb1)、Vc1:(Vxc1,Vyc1)とすると、図3に示す撮影領域の移動軌跡は、更新により図7に示すように表される。
例えば、図7では、撮影領域の移動軌跡を表す領域aの位置遷移として、領域aの基準フレームの座標系上での位置遷移が、フレーム間距離が0のときの座標A:(xa,ya)と、フレーム間距離がΔtのときの予測点である座標A’:((Vxa1+(xa+yaθ1−dx1)z1,(Vya1+(−xaθ1+ya−dy1)z1))とによって示されている。また、例えば、領域bの移動軌跡として、領域bの基準フレームの座標系上での位置遷移が、フレーム間距離が0のときの座標B:(xb,yb)と、フレーム間距離がΔtのときの予測点である座標B’:((Vxb1+(xb+ybθ1−dx1)z1,(Vyb1+(−xbθ1+yb−dy1)z1))とによって示されている。また、領域cの移動軌跡として、領域cの基準フレームの座標系上での位置遷移が、フレーム間距離が0のときの座標C:(xc,yc)と、フレーム間距離がΔtのときの予測点である座標C’:((Vxc1+(xc+ycθ1−dx1)z1,(Vyc1+(−xcθ1+yc−dy1)z1))とによって示されている。
次に、移動軌跡の更新について説明する。ステップA05の判定により、動きベクトル検出手段111に第1の更新関連情報が入力されると、動きベクトル検出手段111は、ステップA01の処理から再実行する。
すなわち、動きベクトル検出手段111は、更新関連情報を受け取ると、現フレームを現在の参照フレームに、参照フレームを現フレームから時間Δt後のフレームに設定する。また、軌跡生成フレームを参照フレームに設定する。映像入力手段100から現フレームと参照フレームの画像データを取得する(ステップA01(再実行))。
次いで、判定対象フレーム上の各領域または点に対応する現フレーム上の領域または点について、以下に示すように、動きベクトル検出の状態を表すフラグに応じて動きベクトルを検出する(ステップA02(再実行))。
すなわち、正常フラグが付与された領域または点については、現フレームと参照フレームとの間で動きベクトルを算出する。また、保留フラグが付与された領域または点については、保留開始フレームと参照フレームとの間で動きベクトルを算出し、現フレームと参照フレームとの間の動きベクトルを推定する。保留開始フレームと参照フレームとのフレーム間隔と、現フレームと参照フレームとの間のフレーム間隔との比によって推定できる。また、除外フラグのついた領域または点については、動きベクトル処理を行わない。除外フラグの付与された領域または点の個数分の領域または点を現フレームから選択し、動きベクトルを算出してもよい。
そして、動きベクトル検出手段111は、動きベクトルの検出結果に応じてステータス情報を更新し、カメラワークパラメータ算出手段112および移動軌跡推定手段113に、領域または点の現フレーム上の座標と動きベクトルを入力する。ステータス情報の更新は、例えば、保留フラグが付与された領域で動きベクトルが検出された場合は、保留フラグを正常フラグに変更すればよい。また例えば、動きベクトルが検出されない場合には、保留開始フレームと参照フレームとのフレーム間隔が閾値以下の場合には保留フラグ、それ以外の場合には除外フラグを付与すればよい。
カメラワークパラメータ算出手段112は、領域または点の現フレーム上の座標と、現フレームから参照フレームへの動きベクトルとをもとに、現フレームから参照フレームへのカメラワークパラメータを算出する(ステップA03(再実行))。
ステップA01〜A03の再実行により、再設定された現フレームおよび参照フレームについて、動きベクトルとカメラワークパラメータが算出されると、移動軌跡推定手段113は、その動きベクトルとカメラワークパラメータとをもとに、判定対象フレームと軌跡生成フレームの間での撮影領域の移動軌跡および各領域または点の移動軌跡を更新する(ステップA04(再実行))。
図7および図8は、更新後の撮影領域の移動軌跡の一例を示す説明図である。図7は、現フレームと参照フレームとの間で算出されたカメラワークパラメータのパラメータセットが{z2,dx2,dy2,θ2}で表される場合であって更新前の撮影領域の移動軌跡が図3に示す例の場合のときの、撮影領域の移動軌跡の更新例を示している。例えば、図7では、撮影領域の移動軌跡として、領域aの位置遷移が、図3に示すフレーム間距離が0のときの座標Aとフレーム間距離がΔtのときの座標Ac’に加えて、フレーム間距離が2Δtのときの座標Ac’’:(((xa+yaθ1−dx1)z1+(−xaθ1+ya−dy1)z1θ2−dx2)z2,(−(xa+yaθ1−dx1)z1θ2)+(−xaθ1+ya−dy1)z1−dy2)z2)によって示されている。
また、現フレームから参照フレームへのカメラワークパラメータの水平方向成分を−Vx2、垂直方向成分を−Vy2とすると、図4に示す撮影領域の移動軌跡は、更新により図8に示すように表される。例えば、図8では、撮影領域の移動軌跡を表す画像中心点Oの位置遷移が、図4に示すフレーム間距離が0のときの座標Oとフレーム間距離がΔtのときの座標O’に加えて、フレーム間距離が2Δtのときの座標O’’:(Vx1+Vx2,Vy1+Vy2)によって示されている。
また、図9および図10は、更新後の領域または点の移動軌跡の一例を示す説明図である。現フレームから参照フレームへの領域a、b、cの動きベクトルをVa1:(Vxa2,Vya2)、Vb1:(Vxb2,Vyb2)、Vc1:(Vxc2,Vyc2)とすると、図5に示す各領域の移動軌跡は、更新により図9に示すように表される。例えば、図9では、領域aの移動軌跡として、領域aの基準フレームの座標系上での位置遷移が、図5に示すフレーム間距離が0のときの座標Aと、フレーム間距離がΔtのときの座標A’に加えて、フレーム間距離が2Δtのときの座標A’’:(Vxa2+(Vxa1+(xa+yaθ1−dx1)z1)+(Vya1+(−xaθ1+ya−dy1)z1)θ2−dx2)z2,Vya2+(−(Vxa1+(xa+yaθ1−dx1)z1)θ2+(Vya1+(−xaθ1+ya−dy1)z1)−dy2)/z2)によって示されている。
また、同様に、図6に示す各領域の移動軌跡は、更新により図10に示すように表される。例えば、図10では、領域aの移動軌跡として、領域aの基準フレームの座標系上での位置遷移が、図6に示すフレーム間距離が0のときの座標Aと、フレーム間距離がΔtのときの座標A’に加えて、フレーム間距離が2Δtのときの座標A’’:(xa+(Vxa1+Vxa2)+(Vx1+Vx2),ya+(Vya1+Vya2)+(Vy1+Vy2))によって示されている。
移動軌跡推定手段113は、撮影領域の移動軌跡および領域または点の移動軌跡を更新した場合には(ステップA05のNo)、撮影領域の移動軌跡をもとに判定対象フレームから軌跡生成フレームまでの撮影領域の総移動量を算出する(ステップA07)。
撮影領域の総移動量は、例えば以下のように表現できる。撮影領域の移動軌跡が図7の場合、|Vx1+Vy1|+|Vx2+Vy2|と表せる。また、撮影領域の移動軌跡が図8の場合、各画像領域とその予測点座標の間の距離の平均{(|Ac’−A|+|Ac’’−A’|)+(|Bc’−B|+|Bc’’−B’|)+(|Cc’−C|+|Cc’’−C’|)}/3によって表せる。あるいは、カメラワークパラメ−タの要素ごとに、|dx1|+|dx2|、|dy1|+|dy2|、|1−z1|+|1−z2|、|θ1|+|θ2|と表してもよい。
そして、撮影領域の総移動量の大きさに応じて以降の処理を場合分けする(ステップA08)。移動軌跡推定手段113は、撮影領域の総移動量の大きさが閾値未満の場合(ステップA08のNo)、動きベクトル検出手段111に第2の更新関連情報を入力し(ステップA06)、ステップA01〜A05,A07を再実行させる。
一方、撮影領域の総移動量の大きさが閾値以上の場合(ステップA08のYes)、判定対象フレームから軌跡生成フレームまでの撮影領域の移動軌跡および各領域または点の移動軌跡を、フォロー判定手段114に入力し、ステップA09に進む。
ステップS09では、フォロー判定手段114が、判定対象フレームから軌跡生成フレームまでの撮影領域の移動軌跡と各領域または点の移動軌跡との類似度をもとに、判定対象フレーム上の各領域または点のフォロー判定を行う。
撮影領域の移動軌跡と領域または点の移動軌跡との類似性は、各軌跡の任意方向成分の間で評価してもよいし、複数方向成分を合わせたベクトル間で評価してもよい。
以下に、撮影領域の移動軌跡と領域または点の移動軌跡との類似性評価によるフォロー判定について、水平方向を例にして説明する。
判定方法の例1.
例えば、撮影領域の移動軌跡と領域または点の移動軌跡をもとに、複数時刻での撮影領域の位置と領域または点の位置との差(すなわち、カメラの位置と領域または点の位置ずれ)を求め、その累積値を評価値として判定を行ってもよい。より具体的には、撮影領域の移動軌跡上の位置座標と、任意の基準時刻における領域または点の位置を撮影領域の移動軌跡上の位置に合わせた領域または点の移動軌跡上の位置座標との差分値を、判定対象フレームから軌跡生成フレームの間の複数の時刻において算出し、その差分値を累積した値(総和)をフレーム数で平均化した値を評価値として用いて、フォロー判定を行ってもよい。この場合、求めた評価値が閾値以下の領域または点をフォロー領域と判定すればよい。
例えば、判定対象フレームと軌跡生成フレームの間のフレーム間隔がNΔt、判定対象フレームから軌跡生成フレームまでの撮影領域の水平方向への移動軌跡をGo、領域aの水平方向への移動軌跡をGaとしたとき、GoとGaの評価値Saを以下の式(3)によって求めることができる。なお、−Ga(0)は、領域aの絶対的な移動軌跡の始点と撮影領域の移動軌跡の始点とを合わせるための項である。
ここで、右方向に移動する被写体をフォロー撮影した映像の例を用いて説明する。図11は、本例における判定対象フレームから軌跡生成フレームまでの各フレームの画像を示す説明図である。なお、本例では、図11に示す画像において、フォロー対象の移動体の一部(ある特徴点)を含む領域aと、背景として写り込んでいる地表の一部(ある特徴点)を含む領域bと、背景として写り込んでいるフォロー対象でない移動体の一部(ある特徴点)を含む領域cとが、フォロー領域の判定対象とする領域として選別されているものとする。
撮影領域の移動軌跡が図7に示す例のとおりであって、領域a,b,cの移動軌跡が図10に示す例のとおりであったとする。このとき、撮影領域の水平方向への移動軌跡Go(Oのx座標→O’のx座標→O’’のx座標)、領域a、b、cの水平方向への移動軌跡Ga、Gb、Gc(Aのx座標→A’のx座標→A’’のx座標、Bのx座標→B’のx座標→B’’のx座標、Cのx座標→C’のx座標→C’’のx座標)は、それぞれ図12のようにグラフ化できる。
図12に示すグラフにおける移動軌跡としての各座標のx座標値の遷移の様子からもわかるように、領域a、b、cの移動軌跡と撮影領域の移動軌跡との各評価値Sa、Sb、Scの大小関係は、Sa<Sb、Scとなる。
典型的なフォロー映像を用いてSa<T<Sb,Scとなる閾値Tをあらかじめ設定することにより、領域aをフォロー領域と判定できる。あるいは、2種の閾値T1、T2(T1<T2)を設定し、評価値がT1以下の領域をフォロー領域、評価値がT2以上の領域を非フォロー領域と判定し、T1からT2の間の評価値をもつ領域について未判定としてもよい。
このような評価値を利用することにより、領域cのように判定対象フレームと軌跡生成フレームの2フレーム間での動きベクトルが小さい移動体上の領域を、非フォロー領域と判定できるという効果がある。
判定方法の例2.
また、移動軌跡の重み付き差分の累積値を評価値として用いて判定を行ってもよい。上記判定方法において示した移動軌跡の差分値に重みを付与し、重みつき差分の判定対象フレームから軌跡生成フレームまでの累積値をフレーム数で平均化した値を評価値として用いることが可能である。
判定対象フレームと軌跡生成フレームの間のフレーム間隔がNΔt、判定対象フレームから軌跡生成フレームまでの撮影領域の水平方向への移動軌跡をGo、領域aの水平方向への移動軌跡をGa、任意時刻nΔtにおける評価値に対する重みをwnとしたとき、GoとGaの間の評価値Saを、以下の式(4)によって求めてもよい。なお、−Ga(0)は、領域aの移動軌跡の始点と撮影領域の移動軌跡の始点とを合わせるための項である。
例えば、急に動き始めた対象をその動きの開始時刻から少し遅れてフォロー撮影を開始するケースを考える。図13は、静止していた被写体が右に移動を開始し、その移動開始時刻からΔt後にカメラを動かしはじめた場合の、判定対象フレームから軌跡生成フレームまでの各フレームの映像の例である。
撮影領域の移動軌跡が図8、領域または点の移動軌跡が図10のとき、撮影領域の水平方向への移動軌跡Go、領域a、bの水平方向への絶対的な移動軌跡Ga、Gb、Gcは、図14のようにグラフ化できる。
このとき、wnには、例えば以下のような重み関数を用いる。
重み関数の例1.
重み関数として、例えば、撮影領域の移動開始時刻に基づく関数を用いることが可能である。撮影者は、フォロー対象が移動を開始してからΔtまでのフォロー対象の移動軌跡を見て、予測されるフォロー対象の位置に向かってカメラを動かす。そのため、フォロー対象上の領域aの位置と撮影領域の位置の差|Go(t)−(Ga(t)−xa)|は、フォロー対象の移動開始時刻から撮影領域の移動開始時刻までの区間では増加するが、撮影領域の移動開始時刻から撮影領域の位置と領域の絶対的な位置が一致する時点までは減少する。一方、背景は静止しているため、背景上の領域bの絶対的な位置と撮影領域の位置との差|Go(t)−(Gb(t)−xb)|は、撮影領域の移動開始以降増加する。移動体は撮影領域の移動と無関係に動くため、移動体上の領域cの位置と撮影領域の位置との差|Go(t)−(Gc(t)−xc)|は、撮影領域の移動開始時刻にかかわらず大きな値をとる。
上記の傾向から、撮影領域の移動開始時刻以降に大となる重み関数を設定すると、重みなしの場合よりもフォロー対象上の領域の評価値が小、背景領域および移動体上の領域の評価値が大となり、フォロー領域と非フォロー領域を良好に分離できる。
重み関数の例2.
また、例えば、撮影領域の位置と領域または点の位置との距離に基づく関数を用いることが可能である。撮影者は、カメラによる撮影領域がフォロー対象の位置に追いついて以降は、フォロー対象に追従してカメラを動かす。そのため、フォロー対象上の領域aの位置と撮影領域の位置の差は、フォロー対象上の領域の位置と撮影領域の位置が一定値以下の値となった時刻以降は、小さい値をとる。一方、背景領域および移動体上の領域の撮影領域については、領域の位置と撮影領域の位置が一定値以下の値となった時刻以降であっても、大きな値をとる。
上記の傾向から、領域または点の位置と撮影領域の位置が一定値以下の値となった時刻以降に大となる重み関数を設定すると、重みなしの場合よりもフォロー対象上の領域の評価値が小、背景領域および移動体上の領域の評価値が大となり、フォロー領域と非フォロー領域を良好に分離できる。
重み関数を用いた評価値を利用することにより、フォロー対象の動きが予測できないために、フォロー対象の動きに遅れてカメラを動かし始めフォロー撮影するケースであっても、フォロー対象上の領域をフォロー領域と判定できるという効果がある。
また、例えば、高速に移動する対象をフォロー撮影する際に、対象の動きを正確に追わず、対象が次に到達すると予測される点にむけてカメラを動かすケースを考える。図15は、はじめ左右に高速に行き来しつつ右に移動し(時刻t1から時刻t1+2Δtの間)、その後速度を緩めて右に移動する(時刻t1+2Δtから時刻t1+4Δtの間)対象を、カメラを右に移動させてフォロー撮影するケースにおいて、判定対象フレームから軌跡生成フレームまでの各フレームの画像の例である。このとき、撮影領域の水平方向への移動軌跡Goと、領域aの水平方向への移動軌跡Gaは、図16のようにグラフ化できる。
このとき、wnには、例えば以下のような重み関数を用いてもよい。
重み関数の例3.
例えば、領域の移動速度に基づく関数を用いることが可能である。撮影者は、対象が高速に左右に行き来している間は、対象の動きを正確に追わずに対象が次に到達すると予測される点に向けてカメラを動かし、対象の速度が遅くなって以降は対象とほぼ等しい軌跡でカメラを動かす。そのため、フォロー対象上の領域aの位置と撮影領域の位置の差は、対象の移動速度が大の時刻t1+2Δtまでは大きい値をとり、対象の移動速度が小さくなった時刻t1+2Δt以降では小さい値をとる。
上記の傾向から、領域の移動速度が大のときに重み小となる重み関数を設定すると、重みなしの場合よりも領域の評価値を小となり、フォロー領域と非フォロー領域を良好に分離できる。
第3の例として示した重み関数を用いた評価値を利用することにより、高速に移動する対象をその動きを正確に追わずに撮影するケースであっても、フォロー対象上の領域をフォロー領域と判定できるという効果がある。
なお、重み関数は、上記第1〜第3の例として示した重み関数に限らず、他の重み関数を用いてもよい。
そして、フォロー判定114は、フォロー判定結果に応じて、各領域または点のステータス情報を更新する。
フォロー判定手段114は、フォロー判定が未完了の領域が存在する場合、かつ、参照フレームと判定対象フレームの間のフレーム間隔があらかじめ定めた限界フレーム間隔未満の場合には(ステップA10のNoかつステップA11のNo)、第2の更新関連情報を動きベクトル検出手段111に入力し(ステップA06)、ステップA01〜A09までを再実行させる。
フォロー判定が全ての領域に対して完了した場合、あるいは、参照フレームと判定対象フレームの間のフレーム間隔があらかじめ定めた限界フレーム間隔以上の場合には(ステップA10のYes,ステップA11のYes)、ステップA12に進む。
ステップS12では、フォロー判定手段114は、撮影領域の移動軌跡と領域または点の移動軌跡に基づく領域または点のフォロー判定結果をもとに、フォロー領域を決定する。
フォロー判定手段114は、例えば、フォロー領域と判定した全ての領域または点を、フォロー領域に決定してもよい。また、フォロー領域と判定した領域または点だけでなく、フォロー領域と判定した領域または点に近接する領域または点を含めて、フォロー領域を決定してもよい。また、非フォロー領域と判定した領域または点および未判定の領域または点と、当該領域または点に近接する領域または点を、非フォロー領域に決定することにより、それ以外の領域をフォロー領域としてもよい。
また、フォロー領域と判定した領域または点について、撮影領域の移動軌跡と領域または点の移動軌跡とをもとにグループ化し、グループ内の領域または点の個数が閾値未満のグループを除外し、残ったグループに属する領域または点をフォロー領域に決定してもよい。より具体的には、判定対象フレーム上での位置が近いもの同士が同じグループに属するようにグループ化し、グループ内の領域または点の個数が閾値未満のグループを除外するようにしてもよい。あるいは、フォロー領域と判定した領域または点のうち、フォロー判定を既に実行済みの判定対象フレーム上でフォロー領域に決定された領域に近い領域または点を、フォロー領域に追加する形で決定していってもよい。
上記の方法によって時空間的に雑音を除外することによって、フォロー領域の誤検出、検出漏れを防ぐ効果がある。
フォロー判定手段114は、フォロー領域の決定結果をもとに、領域または点のフォロー判定結果フラグを更新する。そして、フォロー判定手段114は、判定対象フレームの画像データと、フォロー領域に決定された領域または点について、ステータス情報および判定対象フレーム上での位置座標を判定結果出力手段120に入力する。
フォロー判定手段114から、フォロー領域に決定された領域または点に関する情報が入力されると、判定結果出力手段120は、フォロー判定結果を出力する(ステップA13)。
フォロー判定結果の出力形式は、フォロー領域と判定された領域または点の判定対象フレーム上の座標をリスト化したものであってもよいし、判定対象フレーム上にフォロー領域と判定された領域を内包する矩形を重畳させた画像であってもよいし、判定対象フレーム上からフォロー領域と判定された領域を切り出した画像であってもよい。
映像中にフォロー判定が未完了のフレームが存在する場合には、判定対象フレームを変更して、同様の処理を実行する。映像中の全ての判定対象フレームに対してフォロー判定が完了したときに、処理を終了する。
以上のように、本実施形態によれば、複数の各フレームにおける動きベクトルをもとに推定した撮影領域の移動軌跡と各領域または点の移動軌跡とをもとにフォロー判定するため、撮影領域の移動量とフォロー対象ではない移動体の移動量とが一時的に一致した場合であっても、移動体上の領域をフォロー領域と誤判定しないという効果がある。
また、複数の各フレームにおける動きベクトルをもとに推定した撮影領域の移動軌跡と各領域または点の移動軌跡とをもとにフォロー判定するため、撮影領域の移動量とフォロー対象の移動量とが一時的に一致しない場合であっても、フォロー対象上の領域をフォロー領域と判定できるという効果がある。
例えば、領域または点の動きベクトルの方向がカメラワークの方向と異なり、近接領域の動きベクトルと向きが類似していても、撮影領域の移動軌跡と領域または点の移動軌跡とが類似しない限り、フォロー領域と判定しないため、フォロー撮影された移動体の領域のみを的確に検出することができる。
また、例えば、領域または点の移動方向が変化する場合であっても、撮影領域の移動軌跡と領域または点の移動軌跡とが類似する場合には、フォロー領域と判定するため、等速直線運動をしていないフォロー対象であっても的確に検出することができる。
また例えば、撮影領域の移動開始時刻以降に重みを高くするなど、撮影領域の移動開始時刻に基づく重みを付与した重みつき差分値をもとに、撮影領域の移動軌跡と領域または点の移動軌跡の類似性を評価してフォロー判定を行うことによって、急に移動速度を変える移動体をフォロー対象とした場合など撮影領域の移動開始時刻が移動体の移動開始時刻から遅れた場合であっても、フォロー対象上の領域をフォロー領域と判定できるという効果ある。
また例えば、撮影領域の位置と領域または点の位置との距離が閾値以下となった時刻以降に高い重みを付与するなど、撮影領域の位置と領域または点の位置との距離に基づく重みを付与した重みつき差分値をもとに、撮影領域の移動軌跡と領域または点の移動軌跡の類似性を評価してフォロー判定を行うことによって、急に移動速度を変える移動体をフォロー対象とした場合など撮影領域の移動開始時刻が移動体の移動開始時刻から遅れた場合であっても、フォロー対象上の領域をフォロー領域と判定できるという効果がある。
また例えば、領域または点の移動速度が緩やかであるほど高い重みを付与するなど領域または点の移動速度に基づく重みを付与した重みつき差分値をもとに、撮影領域の移動軌跡と領域または点の移動軌跡の類似性を評価してフォロー判定を行うことによって、高速に移動する対象をその動きを正確に追わずに撮影する場合であっても、フォロー対象上の領域をフォロー領域と判定できるという効果がある。
また、本実施形態によれば、判定対象フレーム上の各領域がフォロー対象上の領域か否かを、判定対象フレームとの間の撮影領域の総移動量が一定値以上の軌跡生成フレームをもとに判定することによって、例えば、緩やかに移動する移動体を、移動体の動きに合わせて緩やかにカメラを動かして撮影した場合のように固定時間間隔での撮影領域の移動量が小さい場合でも、フォロー対象を検出できるという効果がある。
実施形態2.
次に、本発明の第2の実施形態について図面を参照して説明する。図17は、第2の実施形態のフォロー対象検出装置の構成例を示すブロック図である。図17に示すフォロー対象検出装置は、映像入力手段100と、判定結果出力手段120と、データ処理装置210と、フォロー対象検出プログラム230とを備えている。本実施形態では、図1に示した第1の実施形態と比べて、データ処理装置110に代わって、データ処理装置210と、フォロー対象検出プログラム230とを備えている点が異なる。
フォロー対象検出プログラム230は、第1の実施形態における動きベクトル検出手段111、カメラワークパラメータ算出手段112、移動軌跡推定手段113およびフォロー判定手段114が行っている各処理をデータ処理装置210に実行させるためのプログラムであって、例えば、第1の実施形態において各手段が実行する処理を記述したプログラムコードを、当該データ処理装置210において実行可能なデータに変換したものである。
データ処理装置210は、フォロー対象検出用プログラム230を読み込んで、フォロー対象検出用プログラム230に従って動作することにより、第1の実施の形態におけるデータ処理装置110による処理と同一の処理を実行する。
次に、具体的な実施例を用いて本発明の実施形態の動作について説明する。本実施例は、上述の第1の実施形態に対応するものである。本実施例では、本発明のフォロー対象検出装置を、静止していた人物が右向きに歩き出したときに、その人物をフォロー撮影した映像に適用した例を示す。図18は、本実施例において入力される映像の概要を示す説明図である。入力映像は、画面(フレーム枠)中央に存在する人物Aが時刻t1で歩き始め、その人物Aをカメラがt2からフォロー撮影した映像とする。
また、図19は、本実施例のフォロー対象検出装置の構成例を示すブロック図である。図19に示すように、本実施例のフォロー対象検出装置は、映像入力手段100として映像入力端子300を、データ処理装置110としてパーソナル・コンピュータ310を、判定結果出力手段120としてディスプレイ320を備えている。また、パーソナル・コンピュータ310は、動きベクトル検出手段111と、カメラワークパラメータ算出手段112と、移動軌跡推定手段113と、フォロー判定手段114として機能する中央演算装置311を有している。
次に、本実施例の動作について説明する。今、映像入力端子から映像(映像信号)が入力されたとする。まず、最初にフォロー判定処理を行うフレームである時刻t0のフレーム(F0)と時刻t0からΔt後のフレーム(F1)の間の処理について説明する。中央演算装置311は、動きベクトル検出処理として、最初にフォロー判定処理を行うフレームである時刻t0のフレーム(F0)を判定対象フレームに、判定対象フレームからΔt後のフレーム(F1)を軌跡算出フレームに設定する。また、現フレームをF0、参照フレームをF1に設定し、判定対象フレーム上の領域aからeについてF0とF1の間の動きベクトルを算出する。全領域のステータス情報と動きベクトルを、カメラワークパラメータ算出処理に入力する。このときの各領域のステータス情報を、図20に示す。図20は、本実施例におけるステータス情報の例を示す説明図である。本実施例では、このとき図20に示すように、領域a〜eのステータス情報には、いずれもフォロー判定結果フラグに”未判定”が、動きベクトル検出の状態フラグに”正常”が設定される。
中央演算装置311は、カメラワークパラメータ算出処理として、領域a、b、c、d、eについて検出した動きベクトルをもとに、F0とF1の間の撮影領域の移動量を算出する。
次に、中央演算装置311は、移動軌跡推定処理として、F0とF1の間の撮影領域の移動量と領域の動きベクトルとをもとに、撮影領域の移動軌跡と各領域または点の移動軌跡とを推定する。このとき推定された撮影領域の移動軌跡を図21に示す。図21は、本実施例における撮影領域の移動軌跡の例を示す説明図である。本実施例では、このとき図21に示すように、撮影領域の移動軌跡として、画像中心点Oの基準フレームの座標系での位置遷移が、フレーム間距離が0のときの座標O:(0,0)とフレーム間距離がΔtのときの座標O’:(0,0)と求まったとする。
また、このとき推定された各領域または点の移動軌跡を図22に示す。図22は、本実施例における各領域または点の移動軌跡の例を示す説明図である。本実施例では、このとき図22に示すように、領域aの移動軌跡として、領域aの基準フレームの座標系上での位置遷移が、フレーム間距離が0のときの座標A:(xa,ya)と、フレーム間距離がΔtのときの予測座標A’:(xa,ya)と求まったとする。また、領域bの基準フレームの座標系上での位置遷移が、フレーム間距離が0のときの座標B:(xb,yb)と、フレーム間距離がΔtのときの予測座標B’:(xb,yb)と求まったとする。また、領域cの基準フレームの座標系上での位置遷移が、フレーム間距離が0のときの座標C:(xc,yc)と、フレーム間距離がΔtのときの予測座標C’:(xc,yc)と求まったとする。また、領域dの基準フレームの座標系上での位置遷移が、フレーム間距離が0のときの座標D:(xd,yd)と、フレーム間距離がΔtのときの予測座標D’:(xd,yd)と求まったとする。また、領域eの基準フレームの座標系上での位置遷移が、フレーム間距離が0のときの座標E:(xe,ye)と、フレーム間距離がΔtのときの予測座標E’:(xe,ye)と求まったとする。
ここでは、各移動軌跡が新規に生成されたため、第1の更新関連情報として、更新フラグ=1(更新有り)、判定対象フレームのフレーム番号=F0、軌跡算出フレームのフレーム番号=F1、現フレーム番号=F0、参照フレーム番号=F1、各領域のステータス情報を、再度動きベクトル検出処理に入力する。
以下は、時刻t0のフレーム(F0)から時刻t0から2Δt後のフレーム(F2)の間の処理である。中央演算装置311は、動きベクトル検出処理として、移動軌跡推定処理によって更新された第1の更新関連情報を取得し、現フレームにF1、参照フレームにF2、軌跡生成フレーム番号にF2を設定する。また、F0上で検出した領域a、b、c、d、eの対応する領域であるF1上の領域a’、b’、c’、d’、e’を新たな領域に設定する。新たな領域について、F2上から対応する領域を検出し、動きベクトルを抽出する。そして、全領域のステータス情報と動きベクトルを、カメラワークパラメータ算出処理に入力する。このときの各領域のステータス情報を図23に示す。図23は、ステータス情報の更新例を示す説明図である。図23に示すように、ここでは、対応する領域が検出されなかった領域b’については、座標が画面の端ではないため保留フラグが付与されている。
カメラワークパラメータ算出処理では、領域a’、c’、d’、e’について検出した動きベクトルをもとに、F1とF2との間の撮影領域の移動量を算出する。
そして、移動軌跡推定処理で、F1とF2の間の撮影領域の移動量と領域の動きベクトルとをもとに、撮影領域の移動軌跡と各領域または点の移動軌跡とを推定する。このとき推定される撮影領域の移動軌跡を図24に、各領域または点の移動軌跡を図25に示す。本実施例では、このとき図24に示すように、撮影領域の移動軌跡として、画像中心点Oの基準フレームの座標系での位置遷移が、フレーム間距離が2Δtのときの座標O’’:(0,0)と求まったとする。また、図25に示すように、領域aの基準フレームの座標系上での位置遷移が、フレーム間距離が2Δtのときの予測座標A’’:(xa+Vxa’’,ya+Vya’’)と求まったとする。また、領域cの基準フレームの座標系上での位置遷移が、フレーム間距離が2Δtのときの予測座標C’’:(xc,yc)と求まったとする。また、領域dの基準フレームの座標系上での位置遷移が、フレーム間距離が2Δtのときの予測座標D’’:(xd,yd)と求まったとする。また、領域eの基準フレームの座標系上での位置遷移が、フレーム間距離が2Δtのときの予測座標E’’:(xe,ye)と求まったとする。なお、領域bの基準フレームの座標系上での位置遷移については、フレーム間距離が2Δtのときの予測座標B’’を求めない。
ここでは、フレームF0からF2までの撮影領域の総移動量が閾値未満のため、第1の更新関連情報として、更新フラグ=1、判定対象フレームのフレーム番号=F0、軌跡生成フレームのフレーム番号=F2、現フレームのフレーム番号=F1、参照フレームのフレーム番号=F2、各領域のステータス情報を、再度動きベクトル検出処理に入力する。
以下は、時刻t0のフレーム(F0)から時刻t0から3Δt後のフレーム(F3)の間の処理である。中央演算装置311は、動きベクトル検出処理として、移動軌跡推定手段から更新関連情報を取得し、現フレームにF2、参照フレームにF3、軌跡生成フレームにF3を設定する。また、F1上で検出した領域a’、c’、d’、e’の対応する領域であるF2上の領域a’’、c’’、d’’、e’’を新たな領域に設定する。そして、領域a’’、c’’、d’’、e’’についてF2とF3の間での動きベクトルを検出する。前回までの動きベクトル検出処理で保留になっていた領域b’については、保留開始フレームであるF1と参照フレームであるF3の間での動きベクトルを検出する。ただし、今回もF3上に対応する領域が存在しないため、b’については、保留開始フレームと参照フレームとの間隔|F3−F1|が閾値未満のため、再び保留とする。全領域のステータス情報と動きベクトルを、カメラワークパラメータ算出処理に入力する。このときの領域のステータス情報は、図23に示したものと同じである。
カメラワークパラメータ算出処理では、領域a’’、c’’、d’’、e’’について検出した動きベクトルをもとに、フレームF2とF3との間の撮影領域の移動量を算出する。
また、移動軌跡推定処理で、F2とF3の間の撮影領域の移動量と領域の動きベクトルとをもとに、撮影領域の移動軌跡と各領域または点の移動軌跡とを推定する。このとき推定される撮影領域の移動軌跡を図26に、領域の移動軌跡を図27に示す。
このとき、フレームF0からF3までの撮影領域の総移動量|O−O’’’|が閾値以上になったものとし、中央演算装置311は、撮影領域の移動軌跡および領域または点の移動軌跡をフォロー判定処理に入力する。
フォロー判定処理では、F0からF3までの撮影領域の移動軌跡と判定対象フレーム上の各領域または点の移動軌跡をもとに、各領域がフォロー対象上の領域か否かを判定する。図28に、F0からF3における、撮影領域の移動軌跡Goと、領域aおよびbの絶対的な移動軌跡Ga、Gbをグラフ化して示す。
本実施例では、移動軌跡の類似性を、移動軌跡の重みつき差分の累積値で評価する。例えば、中央演算装置311は、撮影領域の移動開始時刻に基づく重み値として、各フレームF0、F1、F2、F3への重みをそれぞれw0=0、w1=0、w2=2、w3=2として、領域aの評価値Saを次のように算出する。
Sa=|Ax’’−Ax|×2/4+|Ox’’’−Ax’’’−Ax|×2/4
同様に、領域c、dについても評価値Sc、Sd、Seを算出する。領域bについては、フレームF3上で対応する領域が検出されなかったため、F3までの撮影領域の移動軌跡との類似性は評価しない。また、あらかじめ定めた2種の閾値T1、T2と、Sa、Sc、Sd、Seとの関係がT1<Sa,Sc,Sd,Se<T2とする。このとき、領域a、b、c、d、eを未判定とする。
そして、第2の更新関連情報として、更新フラグ=1、判定対象フレームのフレーム番号=F0、軌跡生成フレームのフレーム番号=F3、現フレームのフレーム番号=F2、参照フレームのフレーム番号=F3、各領域のステータス情報を、動きベクトル検出処理に入力する。
以下は、時刻t0のフレーム(F0)から時刻t0から4Δt後のフレーム(F4)の間の処理である。動きベクトル検出手段は、移動軌跡推定手段から更新関連情報を取得し、現フレームにF3、参照フレームにF4、軌跡生成フレームにF4を設定する。また、F2上で検出した領域a’’、c’’、d’’、e’’の対応する領域であるF3上の領域a’’’、c’’’、d’’’、e’’’を新たな領域に設定する。そして、領域a’’’、c’’’、d’’’、e’’’についてF3とF4の間での動きベクトルを検出する。動きベクトル検出処理が保留となっている領域b’については、保留開始フレームであるF1と参照フレームであるF4の間での動きベクトルを検出する。
本実施例では、このときa’’’、d’’’およびb’については、F4上に対応する領域が存在するので検出対象とする。c’’’については、F4上に対応する領域が存在せず、c’’’の座標が画面の端のため、カメラによる撮影領域の移動によって参照フレームから外れた領域として除外する。e’’’については、F4上に対応する領域が存在せず座標が画面端ではないため、オクルージョンと判定し保留とする。そして、各領域のステータス情報を図29のように更新し、動きベクトル情報とともにカメラワークパラメータ算出処理に入力する。
カメラワークパラメータ算出処理では、動きベクトル情報をもとに、フレームF3とF4との間の撮影領域の移動量を算出する。
また、移動軌跡推定処理では、F3とF4の撮影領域の移動量と領域の動きベクトルとをもとに、撮影領域の移動軌跡と各領域または点の移動軌跡とを推定する。このとき推定される撮影領域の移動軌跡を図30に、領域の移動軌跡を図31に示す。
ここでは、フレームF0からF4までの撮影領域の総移動量|O−O’’’’|が閾値以上であるとして、撮影領域の移動軌跡および領域または点の移動軌跡をフォロー判定処理に入力する。
フォロー判定処理では、F0からF4までの撮影領域の移動軌跡と判定対象フレーム上の各領域または点の移動軌跡をもとに、各領域がフォロー対象上の領域か否かを判定する。図32に、F0からF4における、撮影領域の移動軌跡Goと、領域aおよびbの絶対的な移動軌跡Ga、Gbを示す。
例えば、中央演算装置311は、撮影領域の移動開始時刻に基づく重み値として、各フレームF0、F1、F2、F3、F4への重みをそれぞれw0=0、w1=0、w2=5/3、w3=5/3、w4=5/3として、領域aとbの評価値Sa、Sbを次のように算出する。なお、式中のBx’’およびBx’’’は、BxからBx’’’’まで線形に移動すると仮定して算出する。
Sa= |Ax’’−Ax|×5/3
+|Ox’’’−Ax’’’−Ax|×5/3
+|Ox’’’’−Ax’’’’−Ax|×5/3
Sb= |Bx’’−Bx|×5/3
+|Ox’’’−Bx’’’−Bx|×5/3
+|Ox’’’’−Bx’’’’−Bx|×5/3
同様に、領域dについても評価値Sdを算出する。領域cおよびeについては、フレームF4上で対応する領域が検出されないため、F4までの撮影領域の移動軌跡との類似性は評価しない。また、あらかじめ定めた2種の閾値T1、T2と、Sa、Sb、Sdとの関係がT1<Sa<T2,T2<Sb、Sdとする。このとき、領域aは未判定、領域bおよびdは非フォロー領域と判定する。
また、除外フラグが付与された領域cは、非フォロー領域と判定する。そこで、中央演算装置311は、ステータス情報を図33のように更新する。未判定の領域が存在することから、第2の更新関連情報として、更新フラグ=1、判定対象フレームのフレーム番号=F0、軌跡生成フレームのフレーム番号=F4、現フレームのフレーム番号=F3、参照フレームのフレーム番号=F4、各領域のステータス情報を、動きベクトル検出処理に入力する。
以下は、時刻t0のフレーム(F0)から時刻t0から5Δt後のフレーム(F5)の間の処理である。中央演算装置311は、動きベクトル検出処理として、移動軌跡推定処理で更新した第2の更新関連情報を取得し、現フレームにF4、参照フレームにF5を設定する。また領域a’’’’、b’’’’、d’’’’に加え、除外された領域c’’’にかわる領域f’’’’を新たな領域に設定する。そして、各領域についてF4とF5の間での動きベクトルを検出する。なお、前回までの動きベクトル検出処理で保留になっていた領域e’’’については、F3とF5の間での動きベクトルを検出する。また領域d’’’’については、F5上に対応する領域が存在せず座標が画面の端のため除外する。そして、各領域のステータス情報を図34のように更新し、動きベクトル情報とともにカメラワークパラメータ算出処理に入力する。
カメラワークパラメータ算出処理では、動きベクトル情報をもとに、フレームF4とF5との間の撮影領域の移動量を算出する。
また、移動軌跡推定処理で、F4とF5の撮影領域の移動量と領域の動きベクトルとをもとに、撮影領域の移動軌跡と各領域または点の移動軌跡とを推定する。撮影領域の移動軌跡を図35に、各領域の移動軌跡を図36および図37に示す。ここでは、フレームF0からF5までの撮影領域の総移動量|O−O’’’’’|が閾値以上であるとし、撮影領域の移動軌跡および領域または点の移動軌跡をフォロー判定処理に入力する。
フォロー判定処理では、F0からF5までの撮影領域の移動軌跡と判定対象フレーム上の各領域または点の移動軌跡をもとに、各領域がフォロー対象上の領域か否かを判定する。図38に、F0からF5における撮影領域の移動軌跡Goと、領域aの絶対的な移動軌跡Gaを示す。
例えば、中央演算装置311は、撮影領域の移動開始時刻に基づく重み値として、各フレームF0、F1、F2、F3、F4、F5への重みをそれぞれw0=0、w1=0、w2=3/2、w3=3/2、w4=3/2、w5=3/2とし、領域aの評価値Saを次のように算出する。
Sa=|Ax’’−Ax|×3/2
+|Ox’’’−Ax’’’−Ax|×3/2
+|Ox’’’’−Ax’’’’−Ax|×3/2
+|Ox’’’’’−Ax’’’’’−Ax|×3/2
同様に、領域eについても評価値Seを算出する。あらかじめ定めた2種の閾値T1、T2と、Sa、Sb、Sdとの関係がSa<T1,T2<Seとすると、領域aはフォロー領域、領域eは非フォロー領域と判定される。このときのステータス情報を図39に示す。
中央演算装置311は、全領域について、フォロー判定が完了したため、F1上のフォロー領域である領域aの画像情報をディスプレイに出力し、F0に対する処理を終了する。
また、中央演算装置311は、判定対象フレームのフレーム番号を次にフォロー判定処理を行うフレームF0’に変更した第2の更新関連情報として、更新フラグ=1、判定対象フレームのフレーム番号=F0’、軌跡生成フレームのフレーム番号=F0’、現フレームのフレーム番号=F0’、参照フレームのフレーム番号=F0’、各領域のステータス情報を、動きベクトル検出処理に入力する。
判定対象フレームF0’に対しても同様の処理を行い、映像中の全ての判定対象フレームに対してフォロー判定が完了したときに、全処理を終了する。
次に、本発明の概要について説明する。図40は、本発明の概要を示すブロック図である。本発明のフォロー対象検出装置は、移動軌跡算出手段11と、フォロー領域判定手段12とを備えている。
移動軌跡算出手段11(例えば、移動軌跡推定手段113)は、映像中のフレーム上の領域または点に対する複数の時刻における動きベクトルをもとに、判定対象とされる領域または点の移動軌跡を算出するとともに、複数の時刻で算出されたカメラワークに関する情報であるカメラワークパラメータに基づいて、撮影領域の移動軌跡を算出する。
フォロー領域判定手段12(例えば、フォロー判定手段114)は、移動軌跡算出手段11によって算出された撮影領域の移動軌跡と判定対象とされる領域または点の移動軌跡とに基づいて、領域または点が、カメラによる追尾撮影の対象上の領域であるフォロー領域か否かを判定することによって、映像からフォロー対象を検出する。
また、フォロー領域判定手段12は、撮影領域の総移動量と、判定対象とされる領域または点の移動軌跡と撮影領域の移動軌跡との間の類似性による評価値とに基づいて、領域または点がフォロー領域か否かを判定してもよい。
また、図41は、本発明のフォロー対象検出装置の他の構成例を示すブロック図である。図41に示すように、本発明のフォロー対象検出装置は、さらに動きベクトル検出手段13と、カメラワークパラメータ算出手段14とを備えていてもよい。
動きベクトル検出手段13(例えば、動きベクトル検出手段111)は、映像中のフレーム上の領域または点について、複数の時刻における動きベクトルを検出する。
カメラワークパラメータ算出手段14(例えば、カメラワークパラメータ算出手段112)は、複数の時刻における動きベクトルをもとに、複数の時刻におけるカメラワークパラメータを算出する。
図41に示す構成において、例えば、移動軌跡算出手段11は、動きベクトル検出手段によって検出された動きベクトルと、カメラワークパラメータ算出手段によって算出されたカメラワークパラメータから、撮影領域の移動軌跡と、判定対象とされる領域または点の移動軌跡とを算出してもよい。
また、フォロー領域判定手段12は、任意の基準時刻からの撮影領域の移動軌跡上の位置座標と、判定対象とされる領域または点の位置を撮影領域の移動軌跡上の位置に合わせた、同基準時刻からの領域または点の移動軌跡上の位置座標との差分値である位置座標差分値を複数の時刻において算出し、算出した位置座標差分値の累積値をもとに、撮影領域の移動軌跡と領域または点の移動軌跡との類似性を評価してもよい。
また、フォロー領域判定手段12は、複数の各時刻における位置座標差分値に重みを付与して、撮影領域の移動軌跡と領域または点の移動軌跡との類似性を評価してもよい。
重みとして、例えば、撮影領域の移動開始時刻に基づいて算出される重みを用いてもよい。また、例えば、判定対象とされる領域または点の位置と撮影領域の位置とが最も近接する時刻に基づいて算出される重みを用いてもよい。また、例えば、判定対象とされる領域または点の位置の移動速度に基づいて算出される重みを用いてもよい。なお、移動速度に基づく重みは、より具体例には、差分値を算出する時刻のうち、判定対象とされる領域または点の位置の移動速度が速い時刻ほど、小さい値をとる重みを用いてもよい。
また、フォロー領域判定手段12は、フォロー領域と判定された領域または点を、撮影領域の移動軌跡と当該領域または点の移動軌跡とをもとにグループ化し、グループに属する領域または点の個数に応じてグループ内の領域または点をフォロー領域でないと再判定してもよい。
また、カメラワークパラメータ算出手段14は、映像中のフレーム上の領域または点に対する複数の各フレームにおける動きベクトルに加え、フレーム以外のフレーム上の領域または点に対する複数の各フレームにおける動きベクトルをもとに、カメラワークパラメータを算出してもよい。
また、カメラワークパラメータ算出手段14は、複数の各フレームにおける動きベクトルの平均値を、各フレームにおけるカメラワークパラメータの併進パラメータとしてもよい。
また、カメラワークパラメータ算出手段14は、複数の各フレームにおける動きベクトルの最頻値をもとに、各フレームにおけるカメラワークパラメータの併進パラメータとしてもよい。
また、移動軌跡算出手段11は、撮影領域の移動軌跡と、判定対象とされる領域または点の移動軌跡とを、複数の各フレームのうちカメラワークパラメータを算出できたフレームにおけるカメラワークパラメータと、複数の各フレームのうち動きベクトルを検出できたフレームにおける動きベクトルとをもとに推定してもよい。
以上のような構成により、誤検出や検出漏れを抑制して、より高精度にフォロー領域を検出することができる。