(57)【要約】【課題】本発明は、動き検出方法、動き検出方法のプログラム、動き検出方法のプログラムを記録した記録媒体及び動き検出装置に関し、例えば動きベクトルを用いた手振れ補正処理に適用して、画面の各部から得られる動きベクトルを用いてカメラの動きを検出する場合等に、高い精度でカメラの動き等を検出する。【解決手段】本発明は、入力画像の各部に設定した特徴点で検出される動きベクトルをヒストグラム化して分類し、特定個所から得られた動きベクトルを検出して特定個所の動きを検出する場合に、過去の分類結果を示す分類情報を各特徴点に設定し、この分類情報を参考にして動きベクトルを分類する。【選択図】        図１
2007336235.tif 000002
【特許請求の範囲】
【請求項１】
連続する入力画像から特定の部位の動きを検出する動き検出方法において、
前記連続する入力画像に設定した特徴点の追跡により、前記入力画像の各部の動きベクトルを検出する動きベクトル検出ステップと、
前記動きベクトルの処理により前記特定の部位の動きを検出する動き検出ステップとを有し、
前記動き検出ステップは、
前記動きベクトルのヒストグラムを作成するヒストグラム作成ステップと、
前記ヒストグラムにおける度数分布が集中した山を分類して、前記特定の部位から得られた前記山を検出するヒストグラム処理ステップと、
前記ヒストグラム処理ステップで検出した前記山に属する前記特徴点と、他の特徴点と分類する分類情報を設定する特徴点分類のステップと、
前記ヒストグラム処理ステップで検出した前記山に属する前記動きベクトルの解析により、前記特定の部位の動きを検出する動き計算ステップとを有し、
前記ヒストグラム処理ステップは、
特徴点に設定済の前記分類情報を基準にして、前記特定の部位から得られた山を検出する
ことを特徴とする動き検出方法。
【請求項２】
前記ヒストグラム処理ステップは、
前記ヒストグラムの複数の山を画像領域分割法によって区分して、前記特定の部位から得られた山を検出する
ことを特徴とする請求項１に記載の動き検出方法。
【請求項３】
前記ヒストグラム作成ステップは、
分解能の小さな高分解能のヒストグラムと、分解能の大きな低分解能のヒストグラムとを作成し、
前記ヒストグラム処理ステップは、
前記低分解能のヒストグラムから、前記特定の部位から得られた低分解能の山を検出し、該低分解能の山に対応する山を前記高分解能のヒストグラムから検出して、前記特定の部位から得られた山を検出する
ことを特徴とする請求項１に記載の動き検出方法。
【請求項４】
前記ヒストグラム作成ステップは、
前記分類情報の確からしさを示す信頼度を計算し、
前記信頼度で重み付けして前記ヒストグラムを作成する
ことを特徴とする請求項１に記載の動き検出方法。
【請求項５】
前記信頼度が、
対応する前記特徴点の追跡を連続して成功した回数である
ことを特徴とする請求項４に記載の動き検出方法。
【請求項６】
前記信頼度が、
対応する前記特徴点の周辺特徴点との距離の変化度合である
ことを特徴とする請求項４に記載の動き検出方法。
【請求項７】
前記ヒストグラム処理ステップは、
先頭の１フレームでは、前記ヒストグラムにおける山の高さを判定して、前記特定の部位から得られた山を検出し、
前記先頭の１フレーム以降のフレームでは、
前記分類情報を基準にして前記ヒストグラムの複数の山を判定して、前記特定の部位から得られた山を検出する
ことを特徴とする請求項１に記載の動き検出方法。
【請求項８】
前記特定の部位が背景であり、
前記ヒストグラム処理ステップは、
先頭の１フレームでは、前記ヒストグラムにおける山から最も高さの高い山を選択して、前記特定の部位から得られた山に設定する
ことを特徴とする請求項１に記載の動き検出方法。
【請求項９】
前記特定の部位が背景であり、
前記ヒストグラム処理ステップは、
先頭の１フレームでは、前記入力画像の周辺部に設定された前記特徴点から得られる山を選択して、前記特定の部位から得られた山に設定する
ことを特徴とする請求項１に記載の動き検出方法。
【請求項１０】
前記ヒストグラム処理ステップは、
前記分類情報に基づいて、前記特定の部位から得られた山である確からしさを示すピーク度合を各山で算出し、
最も値の大きな前記ピーク度合による前記山を選択して、前記特定の部位から得られた山を検出する
ことを特徴とする請求項１に記載の動き検出方法。
【請求項１１】
前記ピーク度合が、
前記分類情報により、前記特定の部位から得られた山に属するとされた前記特徴点を含む割合を示す値である
ことを特徴とする請求項１０に記載の動き検出方法。
【請求項１２】
前記ピーク度合が、
前記分類情報により、前記特定の部位から得られた山に属するとされた前記特徴点を含む割合を示す値に、該山の高さを量子化した数値を乗算した値である
ことを特徴とする請求項１０に記載の動き検出方法。
【請求項１３】
前記ヒストグラム処理ステップは、
前記分類情報の確からしさを示す信頼度を計算し、
前記信頼度で前記ピーク度合を重み付けして処理する
ことを特徴とする請求項１０に記載の動き検出方法。
【請求項１４】
前記信頼度が、
対応する前記特徴点の追跡を連続して成功した回数である
ことを特徴とする請求項１３に記載の動き検出方法。
【請求項１５】
前記信頼度が、
対応する前記特徴点の周辺特徴点との距離の変化度合である
ことを特徴とする請求項１３に記載の動き検出方法。
【請求項１６】
前記動き計算ステップは、
前記ヒストグラム処理ステップで検出した山における中心から距離を所定の判定基準値で判定し、前記中心からの距離の遠いものを処理対象から除外する処理対象の整理ステップと、
前記処理対象の整理ステップで処理して残った前記山に属する前記動きベクトルの平均値を計算して前記特定の部位の動きを検出する平均値計算のステップとを有する
ことを特徴とする請求項１に記載の動き検出方法。
【請求項１７】
前記平均値計算のステップは、
前記処理対象の整理ステップで処理して残った前記山に属する前記動きベクトルから、前記分類情報を基準にして、前記特定の部位から得られた前記動きベクトルを選択して前記平均値を検出する
ことを特徴とする請求項１６に記載の動き検出方法。
【請求項１８】
前記判定基準値を、前記ヒストグラム処理ステップで検出した山に属する動きベクトルの標準偏差に応じて設定する
ことを特徴とする請求項１６に記載の動き検出方法。
【請求項１９】
前記判定基準値を、前記ヒストグラム処理ステップで検出した山における分布の変化に応じて可変する
ことを特徴とする請求項１６に記載の動き検出方法。
【請求項２０】
前記動き計算ステップは、
前記分類情報の確からしさを示す信頼度を計算し、
前記信頼度で重み付けして、前記判定基準値を作成する
ことを特徴とする請求項１９に記載の動き検出方法。
【請求項２１】
前記信頼度が、
対応する前記特徴点の追跡を連続して成功した回数である
ことを特徴とする請求項２０に記載の動き検出方法。
【請求項２２】
前記信頼度が、
対応する前記特徴点の周辺特徴点との距離の変化度合である
ことを特徴とする請求項２０に記載の動き検出方法。
【請求項２３】
前記入力画像を複数のブロックに分割するブロック分割のステップと、
先頭フレームの前記入力画像において、前記ブロックにそれぞれ一定数の前記特徴点を設定する特徴点初期設定のステップと、
前記先頭フレームに続く連続するフレームの前記入力画像において、前記特徴点を追跡して前記動きベクトルを検出する特徴点追跡ステップと、
前記連続するフレームの前記入力画像において、前記特徴点の分布の偏りを補正する特徴点の補正ステップとを有する
ことを特徴とする請求項１に記載の動き検出方法。
【請求項２４】
前記特定の部位が背景であり、
前記動きベクトルに基づいて、前記入力画像の手振れを補正する手振れ補正のステップを有する
ことを特徴とする請求項１に記載の動き検出方法。
【請求項２５】
演算処理手段の実行により、連続する入力画像から特定の部位の動きを検出する動き検出方法のプログラムにおいて、
前記連続する入力画像に設定した特徴点の追跡により、前記入力画像の各部の動きベクトルを検出する動きベクトル検出ステップと、
前記動きベクトルの処理により前記特定の部位の動きを検出する動き検出ステップとを有し、
前記動き検出ステップは、
前記動きベクトルのヒストグラムを作成するヒストグラム作成ステップと、
前記ヒストグラムにおける度数分布が集中した山を分類して、前記特定の部位から得られた前記山を検出するヒストグラム処理ステップと、
前記ヒストグラム処理ステップで検出した前記山に属する前記特徴点と、他の特徴点と分類する分類情報を設定する特徴点分類のステップと、
前記ヒストグラム処理ステップで検出した前記山に属する前記動きベクトルの解析により、前記特定の部位の動きを検出する動き計算ステップとを有し、
前記ヒストグラム処理ステップは、
特徴点に設定済の前記分類情報を基準にして、前記特定の部位から得られた山を検出する
ことを特徴とする動き検出方法のプログラム。
【請求項２６】
演算処理手段の実行により、連続する入力画像から特定の部位の動きを検出する動き検出方法のプログラムを記録した記録媒体において、
前記動き検出方法のプログラムは、
前記連続する入力画像に設定した特徴点の追跡により、前記入力画像の各部の動きベクトルを検出する動きベクトル検出ステップと、
前記動きベクトルの処理により前記特定の部位の動きを検出する動き検出ステップとを有し、
前記動き検出ステップは、
前記動きベクトルのヒストグラムを作成するヒストグラム作成ステップと、
前記ヒストグラムにおける度数分布が集中した山を分類して、前記特定の部位から得られた前記山を検出するヒストグラム処理ステップと、
前記ヒストグラム処理ステップで検出した前記山に属する前記特徴点と、他の特徴点と分類する分類情報を設定する特徴点分類のステップと、
前記ヒストグラム処理ステップで検出した前記山に属する前記動きベクトルの解析により、前記特定の部位の動きを検出する動き計算ステップとを有し、
前記ヒストグラム処理ステップは、
特徴点に設定済の前記分類情報を基準にして前記特定の部位から得られた山を検出する  ことを特徴とする動き検出方法のプログラムを記録した記録媒体。
【請求項２７】
連続する入力画像から特定の部位の動きを検出する動き検出装置において、
前記連続する入力画像に設定した特徴点の追跡により、前記入力画像の各部の動きベクトルを検出する動きベクトル検出部と、
前記動きベクトルの処理により前記特定の部位の動きを検出する動き検出部とを有し、
前記動き検出部は、
前記動きベクトルのヒストグラムを作成するヒストグラム作成部と、
前記ヒストグラムにおける度数分布が集中した山を分類して、前記特定の部位から得られた前記山を検出するヒストグラム処理部と、
前記ヒストグラム処理部で検出した前記山に属する前記特徴点と、他の特徴点と分類する分類情報を設定する特徴点分類部と、
前記ヒストグラム処理部で検出した前記山に属する前記動きベクトルの解析により、前記特定の部位の動きを検出する動き計算部とを有し、
前記ヒストグラム処理部は、
特徴点に設定済の前記分類情報を基準にして、前記特定の部位から得られた山を検出する
ことを特徴とする動き検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動き検出方法、動き検出方法のプログラム、動き検出方法のプログラムを記録した記録媒体及び動き検出装置に関し、例えば動きベクトルを用いた手振れ補正処理に適用することができる。本発明は、入力画像の各部に設定した特徴点で検出される動きベクトルをヒストグラム化して分類し、特定個所から得られた動きベクトルを検出して特定個所の動きを検出する場合に、過去の分類結果を示す分類情報を設定し、この分類情報を参考にして動きベクトルを分類することにより、画面の各部から得られる動きベクトルを用いてカメラの動きを検出する場合等に、高い精度でカメラの動き等を検出する。
【背景技術】
【０００２】
従来、動きベクトルを用いて種々に画像処理する方法が提案されており、例えば特開２００４−２２９０８４号公報には、動きベクトルを用いて手振れ補正する工夫が提案されている。このような動きベクトルを用いて手振れ補正する従来方法では、画面の各部で検出される動きベクトルから背景の動きベクトルを検出してカメラの動きを検出し、このカメラの動きから手振れによるカメラの動きを検出して動き補正している。
【０００３】
ところで動きベクトルを用いた手振れ補正では、カメラの動きに対して背景の各部が同一の動きを呈するとの第１の仮定の元で、画面内では背景が占める面積が最も大きいとの第２の仮定に基づいて、画面の各部で検出される動きベクトルから背景の動きベクトルを検出することが考えられる。
【０００４】
すなわちこの方法では、動きベクトルの水平方向成分及び垂直方向成分をそれぞれＸ軸及びＹ軸に設定して、画面の各部で検出される動きベクトルで２次元のヒストグラムを作成する。またこのヒストグラム上で最も大きなピーク値を示す度数の集中を検出し、この度数が集中したグループを背景から検出された動きベクトルのグループとする。なお以下において、この度数の集中は、ヒストグラム上で山のように見て取られることから、以下、適宜、山と呼ぶ。この方法では、この背景のグループに属する動きベクトルを平均値化し、平均値の極性を反転させてカメラの動きを検出する。
【０００５】
具体的に図３５（Ａ）及び（Ｂ）に示すように、前フレームに２人の人物が写っていたとする。また現フレームで、この２人の人物が水平方向に異なる速度で移動し、またこの人物の移動する方向に、人物の移動速度とは異なる速度でカメラがパンしたとする。この場合、この図３５（Ｂ）において矢印で示すように、画面の各部で動きベクトルが検出されることになる。なおこの図３５（Ｂ）では、２人の人物からそれぞれ８点及び１２点の動きベクトルが検出され、背景から２０点の動きベクトルが検出された例を示すものである。
【０００６】
この動きベクトルをヒストグラム化すると、図３６に示すように、この２人の人物からそれぞれ検出された動きベクトルによる度数の集中した山と、背景から検出された動きベクトルによる度数の集中した山とが現れることになる。なお説明の簡略化のために、以下においては、適宜、ヒストグラムは動きベクトルの水平方向成分についてのみを示す。
【０００７】
このヒストグラムに表される動きベクトルが、各フレームで偏りなく検出されている場合、背景、これら２人の人物から検出される動きベクトルは、前フレーム及び現フレームで、背景、これら２人の人物が占める面積に比例することなる。また背景にあっては、いわゆる硬いものであることから、背景から検出される動きベクトルは、ばらつきが小さい。従って画面内では背景が占める面積が最も大きいとの仮定に立てば、これらの山のうちで、最も高さの高い山が背景から検出された動きベクトルによるものであると判定することができる。なおこの図３６の例では、２人の人物から得られたそれぞれ８点及び１２点の動きベクトルから、各人物の山が作成され、背景から得られた２０点の動きベクトルから背景の山が作成されていることになる。
【０００８】
しかしながらこの方法によっては、正しくカメラの動きを検出できない場合がある。すなわち図３７に示すように、撮影の状況によっては、背景の面積が一時的に極端に小さくなる場合もあり、この場合は第２の仮定が成り立たなくなる。なおここでこの図３７は、前フレーム、現フレームにおける画像と、ヒストグラムとの関係を示す図である。この図３７の例は、前フレームでは被写体に比して背景が大きな面積で撮影されていたものが（図３７（Ａ１））、現フレームでは被写体が移動して被写体に比して背景が小さな面積で撮影されるようになった場合である（図３７（Ｂ１））。この場合、前フレームでは、ヒストグラム上で高さの大きい側の山が背景となるのに対し（図３７（Ａ２））、現フレームでは、高さの小さい山が背景となる（図３７（Ｂ２））。従ってこの場合、高さの高い側の山を背景側として選択していたのでは、背景の動きを誤って検出することになり、正しくカメラの動きを検出できなくなる。なおこの図３７（Ａ１）及び（Ｂ１）では、各部で検出される動きベクトルを矢印で示す。
【０００９】
また図３８に示すように、背景と被写体との動きが似通って撮影される場合もあり、この場合には、ヒストグラム上で、被写体による山と、背景による山とが部分的に重なり合う。この場合には、これらの山を正確に分離することが困難になり、背景の動きを正しく検出できなくなる。なおここで図３８は、被写体が動きを停止しかけている場合であり、背景と被写体とで僅かながら動きに違いがある場合である。この場合、ヒストグラム上では、背景による山と、被写体による山とが僅かにずれて重なり合い、結局、背景の動きベクトルと被写体の動きとを識別することが困難になる（図３８（Ｂ１）及び（Ｂ２））。      
【００１０】
その結果、符号ＭＶＴにより示す本来の動きを、符号ＭＶＤにより示すように、誤って検出することになる（図３８（Ｂ３））。なおこのような誤検出は、数ピクセル程度ではあるものの、数フレームに亘って似たような現象が起こると累積誤差が数十ピクセルとになり、著しく誤差が増大することになる。
【特許文献１】特開２００４−２２９０８４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は以上の点を考慮してなされたもので、画面の各部から得られる動きベクトルを用いてカメラの動きを検出する場合等に、高い精度でカメラの動き等を検出することができる動き検出方法、動き検出方法のプログラム、動き検出方法のプログラムを記録した記録媒体及び動き検出装置を提案しようとするものである。
【課題を解決するための手段】
【００１２】
上記の課題を解決するため請求項１の発明は、連続する入力画像から特定の部位の動きを検出する動き検出方法に適用して、前記連続する入力画像に設定した特徴点の追跡により、前記入力画像の各部の動きベクトルを検出する動きベクトル検出ステップと、前記動きベクトルの処理により前記特定の部位の動きを検出する動き検出ステップとを有し、前記動き検出ステップは、前記動きベクトルのヒストグラムを作成するヒストグラム作成ステップと、前記ヒストグラムにおける度数分布が集中した山を分類して、前記特定の部位から得られた前記山を検出するヒストグラム処理ステップと、前記ヒストグラム処理ステップで検出した前記山に属する前記特徴点と、他の特徴点と分類する分類情報を設定する特徴点分類のステップと、前記ヒストグラム処理ステップで検出した前記山に属する前記動きベクトルの解析により、前記特定の部位の動きを検出する動き計算ステップとを有し、前記ヒストグラム処理ステップは、特徴点に設定済の前記分類情報を基準にして前記特定の部位から得られた山を検出する。
【００１３】
また請求項２５の発明は、演算処理手段の実行により、連続する入力画像から特定の部位の動きを検出する動き検出方法のプログラムに適用して、前記連続する入力画像に設定した特徴点の追跡により、前記入力画像の各部の動きベクトルを検出する動きベクトル検出ステップと、前記動きベクトルの処理により前記特定の部位の動きを検出する動き検出ステップとを有し、前記動き検出ステップは、前記動きベクトルのヒストグラムを作成するヒストグラム作成ステップと、前記ヒストグラムにおける度数分布が集中した山を分類して、前記特定の部位から得られた前記山を検出するヒストグラム処理ステップと、前記ヒストグラム処理ステップで検出した前記山に属する前記特徴点と、他の特徴点と分類する分類情報を設定する特徴点分類のステップと、前記ヒストグラム処理ステップで検出した前記山に属する前記動きベクトルの解析により、前記特定の部位の動きを検出する動き計算ステップとを有し、前記ヒストグラム処理ステップは、特徴点に設定済の前記分類情報を基準にして、前記特定の部位から得られた山を検出する。
【００１４】
また請求項２６の発明は、演算処理手段の実行により、連続する入力画像から特定の部位の動きを検出する動き検出方法のプログラムを記録した記録媒体に適用して、前記動き検出方法のプログラムは、前記連続する入力画像に設定した特徴点の追跡により、前記入力画像の各部の動きベクトルを検出する動きベクトル検出ステップと、前記動きベクトルの処理により前記特定の部位の動きを検出する動き検出ステップとを有し、前記動き検出ステップは、前記動きベクトルのヒストグラムを作成するヒストグラム作成ステップと、前記ヒストグラムにおける度数分布が集中した山を分類して、前記特定の部位から得られた前記山を検出するヒストグラム処理ステップと、前記ヒストグラム処理ステップで検出した前記山に属する前記特徴点と、他の特徴点と分類する分類情報を、設定する特徴点分類のステップと、前記ヒストグラム処理ステップで検出した前記山に属する前記動きベクトルの解析により、前記特定の部位の動きを検出する動き計算ステップとを有し、前記ヒストグラム処理ステップは、特徴点に設定済の前記分類情報を基準にして、前記特定の部位から得られた山を検出する。
【００１５】
また請求項２７の発明は、連続する入力画像から特定の部位の動きを検出する動き検出装置に適用して、前記連続する入力画像に設定した特徴点の追跡により、前記入力画像の各部の動きベクトルを検出する動きベクトル検出部と、前記動きベクトルの処理により前記特定の部位の動きを検出する動き検出部とを有し、前記動き検出部は、前記動きベクトルのヒストグラムを作成するヒストグラム作成部と、前記ヒストグラムにおける度数分布が集中した山を分類して、前記特定の部位から得られた前記山を検出するヒストグラム処理部と、前記ヒストグラム処理部で検出した前記山に属する前記特徴点と、他の特徴点と分類する分類情報を設定する特徴点分類部と、前記ヒストグラム処理部で検出した前記山に属する前記動きベクトルの解析により、前記特定の部位の動きを検出する動き計算部とを有し、前記ヒストグラム処理部は、特徴点に設定済の前記分類情報を基準にして、前記特定の部位から得られた山を検出する。
【００１６】
請求項１、請求項２５、請求項２６又は請求項２７の構成によれば、分類情報を基づいて、過去の分類結果を参考にして、特定の部位から得られた山を検出することができる。従ってこの特定の部位が背景である場合に、それまで大きく撮影されている背景が小さな面積で撮影されるようになった場合でも、この面積の変化する背景を追跡して、この背景による山を検出することができる。従って画面の各部から得られる動きベクトルを用いてカメラの動きを検出する場合等に、従来に比して一段と高い精度でカメラの動き等を検出することができる。
【発明の効果】
【００１７】
本発明によれば、画面の各部から得られる動きベクトルを用いてカメラの動きを検出する場合等に、従来に比して一段と高い精度でカメラの動き等を検出することができる。
【発明を実施するための最良の形態】
【００１８】
以下、適宜図面を参照しながら本発明の実施例を詳述する。
【実施例１】
【００１９】
（１）実施例の構成
図２は、本発明の実施例１の画像処理装置である手振れ補正装置を示すブロック図である。この手振れ補正装置１は、テレビジョンカメラ２で撮影したビデオ信号ＳＶをダウンロードしてハードディスク装置（ＨＤＤ）３に記録する。またこのハードディスク装置３に記録したビデオ信号ＳＶを手振れ補正して外部機器に出力する。
【００２０】
ここでこの手振れ補正装置１において、中央処理ユニット（ＣＰＵ）４は、リードオンリメモリ（ＲＯＭ）５の記録に従ってランダムアクセスメモリ（ＲＡＭ）６にワークエリアを確保してハードディスク装置３に記録された所定の処理プログラムを実行し、ビデオ信号ＳＶの手振れ補正処理を実行する。またこの一連の処理において、モニタ９にグラフカルユーザーインターフェースを表示してユーザーの操作を受け付け、さらには手振れ補正結果を表示する。インターフェース（Ｉ／Ｆ）１０は、このビデオ信号ＳＶの入出力に係る入出力回路である。なおこの中央処理ユニット４が実行するプログラムは、この手振れ補正装置１に事前にインストールして提供するようにしてもよく、またこれに代えて光ディスク、磁気ディスク、メモリカード等の各種記録媒体に記録して提供するようにしてもよく、さらにはインターネット等のネットワークを介したダウンロードにより提供するようにしてもよい。
【００２１】
図３は、この中央処理ユニット４の処理手順を示すフローチャートである。中央処理ユニット４は、オペレータの操作に従ってこの処理手順を開始し、ステップＳＰ１からステップＳＰ２に移る。このステップＳＰ２で、中央処理ユニット４は、ユーザーの指示したビデオ信号ＳＶのファイルをテレビジョンカメラ２からダウンロードしてハードディスク装置３に格納する。
【００２２】
また中央処理ユニット４は、続くステップＳＰ３のフレーム間カメラ動き算出処理により、ハードディスク装置３にダウンロードしたビデオ信号ＳＶを処理し、テレビジョンカメラ２の動きをビデオ信号ＳＶの画像上で示すカメラ動きベクトルＭＶＣＴを検出する。すなわち中央処理ユニット４は、ハードディスク装置３にダウンロードしたビデオ信号ＳＶをＩＰ変換して順次フレーム単位で読み出しながら、フレーム間で動きベクトルを検出する。なおここでＩＰ変換は、インターレーススキャンからプログレッシブスキャンへの変換であり、ハードディスク装置３へのダウンロード時に実行してもよい。
【００２３】
さらに中央処理ユニット４は、検出した動きベクトルを処理して、図４に示すように、ビデオ信号ＳＶによる入力画像２１上でカメラの動きを示すカメラ動きベクトルＭＶＣを検出する。なお図４は、入力画像２１、処理結果である出力画像２４におけるカメラの動きを水平方向のみについて示す図である。このカメラ動きベクトルＭＶＣは、手振れとカメラワークとによるテレビジョンカメラの動きをビデオ信号ＳＶの画像上で示すことになる。
【００２４】
さらに中央処理ユニット４は、続くステップＳＰ４において、この検出したカメラ動きベクトルＭＶＣを処理して、カメラ動きベクトルＭＶＣから手振れ成分を除いたカメラワークのみによるカメラ動きベクトルＭＶＣＴを計算する。具体的に、中央処理ユニット４は、連続するカメラ動きベクトルＭＶＣをローパスフィルターで平滑化し、カメラ動きベクトルＭＶＣＴを計算する。中央処理ユニット４は、手振れとカメラワークとによるカメラ動きベクトルＭＶＣと、カメラワークのみによるカメラ動きベクトルＭＶＣＴとをカメラ動き情報としてメモリに記録して保持する。中央処理ユニット４は、ビデオ信号ＳＶの全フレームでカメラ動きベクトルＭＶＣ、ＭＶＣＴを検出すると、続いてカメラ動きベクトルＭＶＣ、ＭＶＣＴを用いて、手振れ補正用の補正ベクトルΔＭＶを順次計算する。また図５に示すように、ハードディスク装置３に記録したビデオ信号ＳＶを順次読み出して補正ベクトルΔＭＶで動き補正し、出力画像２４を生成する。なお中央処理ユニット４は、この動き補正処理によって入力画像２１を割り当てることが困難となった部位（図５でハッチングで示す領域）については、黒レベルに設定し、違和感を防止する。なおこの場合、入力画像２１を割り当てることが困難となった部位を切り捨て、出力画像２４のサイズに合うようにスケーリングしてもよい。
【００２５】
中央処理ユニット４は、このステップＳＰ４の処理により手振れ補正したビデオ信号を生成し、続くステップＳＰ５で、このビデオ信号をモニタ装置等の外部機器に出力した後、ステップＳＰ６に移ってこの処理手順を終了する。
【００２６】
この図２に示す処理手順の実行により、中央処理ユニット４は、図６に示す機能ブロックを構成する。なおここでフレーム間カメラ動き情報検出部２２は、ステップＳＰ３の処理に対応する機能ブロックであり、ビデオ信号ＳＶによる入力画像２１から手振れ及びカメラワークによるカメラ動きベクトルＭＶＣを検出し、カメラ動きベクトルＭＶＣをカメラ動き情報としてメモリ２３に格納する。また手振れ補正補間部２５は、ステップＳＰ４の処理に対応する機能ブロックであり、メモリ２３に格納したカメラ動き情報ＭＶＣを用いて補正ベクトルΔＭＶを計算して入力画像２１を手振れ補正する。なお図６との対比により図７に示すように、ビデオ信号ＳＶによる入力画像２１の全フレームからカメラ動きベクトルＭＶＣを検出した後、改めて入力画像２１の手振れを補正する代わりに、カメラ動きベクトルＭＶＣを検出した入力画像２１をフレームメモリ２６に保持して手振れ補正するようにして、所定フレーム数単位で、カメラ動きベクトルＭＶＣを検出しながら入力画像２１を手振れ補正してもよい。
【００２７】
図８は、図３のステップＳＰ３の処理手順を詳細に示すフローチャートである。中央処理ユニット４は、この処理手順を開始すると、ステップＳＰ１１からステップＳＰ１２に移り、動きベクトル算出処理を実行する。中央処理ユニット４は、この動きベクトル算出処理により、ＩＰ変換しながら入力画像２１を入力し、ＫＬＴ法を利用した特徴点の追跡により入力画像２１の各部で動きベクトルを検出する。
【００２８】
また続くステップＳＰ１３における動きベクトル解析処理により、中央処理ユニット４は、ステップＳＰ１２で検出した動きベクトルを解析する。中央処理ユニット４は、この動きベクトルの解析において、ステップＳＰ１２で検出した１フレームの動きベクトルを集計して２次元のヒストグラムを求める。
【００２９】
また中央処理ユニット４は、このヒストグラムから、背景に相当する動きベクトルのグループを検出する。具体的に、中央処理ユニット４は、このヒストグラムから度数分布のピーク値の個所を検出することにより、最もサンプル数が多く集中している動きベクトルのグループを検出し、このグループを背景のグループとする。中央処理ユニット４は、続くステップＳＰ１４のカメラ動き計算処理で、この背景のグループに属する動きベクトルを平均値化し、手振れ及びカメラワークによるカメラ動きベクトルＭＶＣを計算する。従ってこの実施例では、入力画像中で背景が最も大きな面積を占めるとの仮定に基づいて背景を検出し、この背景の動きからカメラ動きベクトルＭＶＣを検出する。
【００３０】
続いて中央処理ユニット４は、ステップＳＰ１５に移り、全てのフレームの処理を完了したか否か判断する。ここで否定結果が得られると、中央処理ユニット４は、ステップＳＰ１６に移り、動きベクトルの検出対象を次フレームに設定した後、ステップＳＰ１２に戻り、動きベクトル検出処理を実行する。これに対してステップＳＰ１５で肯定結果が得られると、ステップＳＰ１５からステップＳＰ１７に移ってこの処理手順を終了する。
【００３１】
この図８の処理手順の実行により、中央処理ユニット４は、図９に示す機能ブロックを構成する。ここで動きベクトル算出部３１は、ステップＳＰ１２の処理に対応する機能ブロックであり、入力画像２１の各部で動きベクトルを検出する。また動きベクトル解析部３２は、ステップＳＰ１３に対応する機能ブロックであり、動きベクトル算出部３１で算出した動きベクトルを解析してヒストグラムを計算し、背景の動きベクトルを検出する。カメラ動き算出部３３は、ステップＳＰ１４に対応する機能ブロックであり、手振れ及びカメラワークによるカメラ動きベクトルＭＶＣを計算する。
【００３２】
（１−１）動きベクトル算出処理
図１０は、図８におけるステップＳＰ１２の動きベクトル算出処理を詳細に示すフローチャートである。中央処理ユニット４は、この処理手順を開始すると、ステップＳＰ２１からステップＳＰ２２に移る。ここで中央処理ユニット４は、ハードディスク装置３から１フレーム分のビデオ信号ＳＶを入力して現フレームに設定する。
【００３３】
また続くステップＳＰ２３において、中央処理ユニット４は、ブロックリストを作成する。ここで図１２（Ａ）に示す入力画像２１との対比により図１２（Ｂ）に示すように、中央処理ユニット４は、この動きベクトル算出処理において、入力画像を水平方向及び垂直方向に複数のブロックに分割し、各ブロックに設定した特徴点の追跡により動きベクトルを検出する。より具体的に、中央処理ユニット４は、１つのブロックにＮｆｐ個の特徴点を設定し、１フレームでＮｔｏｔ個の特徴点を設定する。入力画像２１がＶＧＡ（Video Graphics Array）サイズの場合、各ブロックの特徴点数Ｎｆｐ及び１フレームの特徴点数Ｎｔｏｔは、それぞれ２０個及び３００個に設定される。従って中央処理ユニット４は、入力画像２１がＶＧＡサイズの場合、この入力画像を水平方向及び垂直方向にそれぞれ５分割及び３分割して１５（＝３００／２０）個のブロックを設定する。なお図面上では、水平方向及び垂直方向に６個及び４個に分割して示す。
【００３４】
ブロックリストは、このようにして設定した各ブロックに関する情報を記録したリストであり、この実施例では各ブロックの位置情報、大きさの情報、特徴点の数等が含まれる。なおここで各ブロックの位置情報は、例えば各ブロックのラスタ操作開始端の座標Ｃｉ（ｘ、ｙ）であり、大きさの情報は、水平方向及び垂直方向の画素数Ｓｉ（ｘ、ｙ）である。なおここで（ｘ、ｙ）は、ラスタ走査の開始端のブロックを基準にして水平方位及び垂直方向のブロックの位置を示す変数である。
【００３５】
従ってビデオ信号ＳＶの先頭１フレームを処理する場合、ブロックリストには、分割した各ブロックに何ら特徴点が設定されていないことが記録される。これに対して先頭１フレーム以外では、現フレームで各ブロックに含まれている特徴点の数がそれぞれ各ブロックに記録されてブロックリストが作成される。
【００３６】
なお中央処理ユニット４は、先頭１フレーム以外のフレームでは、前フレームのブロックリストのコピーを取り、このブロックリストの内容を更新してブロックリストを作成する。
【００３７】
続いて中央処理ユニット４は、ステップＳＰ２４に移り、現フレームが初期フレームか否か、すなわち現フレームが先頭１フレームか否か判断する。
【００３８】
ここで肯定結果が得られると、中央処理ユニット４は、ステップＳＰ２４からステップＳＰ２５に移り、特徴点選択処理を実行する。ここで特徴点選択処理は、全体の特徴点数が１フレームの特徴点数Ｎｔｏｔを越えない範囲で、特徴点数の少ないブロックから順次特徴点を設定する処理である。従って初期フレームでは、何れのブロックにも特徴点が設定されておらず、また全体の特徴点数も０個であることから、中央処理ユニット４は、各ブロックにそれぞれＮｆｐ個の特徴点を設定する。従って初期フレームの場合、特徴点選択処理は、各ブロックに一定数Ｎｆｐの特徴点を設定する特徴点初期設定処理を構成する。
【００３９】
これに対して先頭１フレーム以外のフレームでは、既に特徴点が存在することから、中央処理ユニット４は、このステップＳＰ２５において、このように全体の特徴点数が１フレームの特徴点数Ｎｔｏｔを越えない範囲で、特徴点数の少ないブロックから順次特徴点を設定することにより、ブロック間における特徴点の分布の偏りを補正する。すなわち例えば図１３に示すように、矢印Ａにより示すように画面左側から右側に移動する人物を追跡するように、矢印Ｂにより示すようにカメラ全体をパンさせたとする。この場合、図１３との対比により図１４に示すように、画面左隅の符号ＰＡで示す特徴点は、カメラのパンにより現フレームで検出できなくなる。またこの画面左隅では、それまで人物に隠れていた背景が現れることなる。従ってこの画面左隅のブロックでは、続くフレームで特徴点を追跡できなくなり、続くフレームを現フレームとして処理する際に特徴点の数が減少することになる。
【００４０】
また符号ＰＢで示す画面中央の特徴点は、人物の移動により人物によって隠れるようになり、これらの特徴点も現フレームでは検出できなくなる。またこの場合、人物の移動によりこの人物で隠される部分のブロックでは、人物の移動に伴って前フレームの特徴点が含まれるようになる。その一方で、カメラのパンにより背景側の特徴点が、この人物で隠された部分のブロックに含まれるようになり、この部分のブロックでは前フレームより特徴点が増大することになる。また画面右隅のブロックも、それまで前フレームでは画面の外側に位置していた背景が現フレームで撮影されることになることから、特徴点の数が減少することになる。これにより特徴点の空間的な分布に偏りが生じ、動きベクトルの検出に偏りが発生する。
【００４１】
そこで中央処理ユニット４は、追跡困難となった特徴点を削除し、またＫＬＴ法による特徴点の追跡により隣接する特徴点との間の距離が短くなった特徴点を削除する。またこれらの削除により１フレームの特徴点数Ｎｔｏｔに不足する特徴点を追加設定するようにして、この特徴点の追加設定において、特徴点の分布の偏りを補正する。具体的に、図１４との対比により図１５に示すように、例えば各ブロックの特徴点数Ｎｆｐが値２の場合に、特徴点数が１以下のブロックについて、中央処理ユニット４は、図１６に示すように、特徴点を追加設定する。これにより各ブロックは、特徴点数が元の数２に近づくように特徴点が追加設定され、特徴点の分布の偏りが補正される。なおこの図１６では、特徴点を追加設定するブロックをハッチングにより示す。なおＫＬＴ法による隣接する特徴点との間の距離が短くなった特徴点の削除は、事前に、ステップＳＰ２８の特徴点追跡、動きベクトル計算処理により実行する。この特徴点の削減手法は、現フレームに一定距離以上近接した特徴点が複数存在する場合、特徴度の低い側の特徴点を削除する処理である。特徴度については、特徴点抽出処理で詳述する。
【００４２】
中央処理ユニット４は、処理対象画像をブロックに分割して各ブロックに特徴点を設定して動きベクトルを検出するようにして、この特徴点選択処理により各ブロックで変化する特徴点数を補正し、特徴点の分布の偏りを補正する。中央処理ユニット４は、このステップＳＰ２５の処理を実行すると、ステップＳＰ２６に移り、現フレームを前フレームに設定した後、ステップＳＰ２７に移ってこの処理手順を終了する。
【００４３】
これに対して先頭１フレーム以外では、ステップＳＰ２４で否定結果が得られることにより、中央処理ユニット４は、ステップＳＰ２４からステップＳＰ２８に移る。
【００４４】
このステップＳＰ２８で、中央処理ユニット４は、前フレームの各ブロックに設定されている特徴点を追跡して現フレーム上で対応する特徴点を検出する。また図１４に示すように、この対応する特徴点と前フレームの特徴点との間の差分値を検出することにより、各特徴点の動きベクトルＭＶを計算し、この動きベクトルＭＶをメモリ２３に記録して保持する。このとき特徴点の追跡により、現フレームに一定距離以上近接した特徴点が存在する場合、特徴度の低い側の特徴点を削除する。なお特徴度に代えて、特徴点としての信頼性を示す信頼度を基準にして削除してもよく、ランダムに削除してもよい。また追跡困難な特徴点についても、削除する。
【００４５】
続いて中央処理ユニット４は、ステップＳＰ２５に移り、各ブロックにおける特徴点の分布の偏りを補正した後、ステップＳＰ２６の処理手順を実行し、ステップＳＰ２７に移ってこの処理手順を終了する。
【００４６】
この図１０に示す処理手順の実行により、中央処理ユニット４は、図１１に示す機能ブロックを構成する。ここでフレーム読み込みモジュール４１は、図１０のステップＳＰ２２に対応する機能ブロックであり、新たに取得した処理対象のフレームを現フレームに設定する。ブロック分割モジュール４２は、ステップＳＰ２３に対応する機能ブロックであり、現フレームの画像を複数のブロックに分割し、ブロックリストを作成する。特徴点総合モジュール４４は、ステップＳＰ２５及びＳＰ２８に対応する機能ブロックであり、特徴点抽出手段４３は、特徴度に基づいて特徴点を選択する機能ブロックである。反復準備モジュール４５は、ステップＳＰ２６に対応する機能ブロックである。なおここで特徴点情報は、各特徴点の現フレームにおける座標、動きベクトル等の情報である。
【００４７】
また特徴点総合モジュール４４は、図１７に示すように、ステップＳＰ２８における特徴点追跡処理と動きベクトル計算処理とにそれぞれ対応する特徴点追跡手段４６及び特徴点動きベクトル算出手段４７の機能ブロックと、ステップＳＰ２５の処理に対応する特徴点選択手段４８の機能ブロックとを構成する。この実施例ではこの特徴点総合モジュール４４における処理に、ＫＬＴ法が利用される。
【００４８】
図１８及び図１９は、図１０のステップＳＰ２５で説明した特徴点選択処理を詳細に示すフローチャートである。中央処理ユニット４は、この処理手順を開始すると、ステップＳＰ３１からステップＳＰ３２に移る。ここで中央処理ユニット４は、現フレームの特徴点数が１フレームの特徴点数Ｎｔｏｔ未満か否か判断する。ここで中央処理ユニット４は、特徴点追跡、動きベクトル計算処理で特徴点が削除されている場合、このステップＳＰ３２で肯定結果を得ることができる。
【００４９】
これにより中央処理ユニット４は、このステップＳＰ３２で否定結果が得られると、ステップＳＰ３２からステップＳＰ３３に移ってこの処理手順を終了する。
【００５０】
これに対してステップＳＰ３２で肯定結果が得られると、中央処理ユニット４は、ステップＳＰ３２からステップＳＰ３４に移る。ここで中央処理ユニット４は、ブロックリストから所定の項目をコピーして、特徴点選択処理の作業用リストを作成する。ここでこの作業用リストは、各ブロックを特定する情報、各ブロックの特徴点数、全体の特徴点数を記録して作成される。中央処理ユニット４は、メモリ２３に記録して保持した特徴点の座標値を判定してこの作業用リストを作成する。
【００５１】
中央処理ユニット４は、作業用リストを作成すると、ステップＳＰ３５に移り、特徴点の数が当初の設定数であるＮｆｐ個以上のブロックを、この作業用リストから削除し、このブロックを処理対象から除外する。これにより図２０（Ａ）に示すように、例えばブロックｂ１〜ｂ９の特徴点数がそれぞれ１０、０、８、１、５、４、３、５、１個の場合であって、当初の設定数Ｎｆｐが６個の場合、図２０（Ｂ）に示すように、ブロックｂ１、ｂ３の記録を作業用リストから削除する。なおこの例では、総合の個数Ｎｔｏｔを６０個とする。従って現在、２３個の特徴点が全体として不足していることになる。なお当然のことながら先頭１フレームでは、各ブロックの特徴点数は、０個であり、この場合、全体として特徴点が６０個不足していることになる。
【００５２】
続いて中央処理ユニット４は、ステップＳＰ３６に移り、この作業用リストに記録されたブロックを、特徴点数でグループ化し、ソート処理により特徴点数が少ないグループの順に配列を変更する。中央処理ユニット４は、この特徴点数が少ないグループの順に配列を変更することにより、処理の優先順位を設定する。すなわち図２０（Ｂ）の例によれば、図２０（Ｃ）に示すように、特徴点数が０個のブロックｂ２による第１のグループＧ１、特徴点数が１個のブロックｂ４、ｂ９による第２のグループＧ２、特徴点数が３個のブロックｂ７による第３のグループＧ３、特徴点数が４個のブロックｂ６による第４のグループＧ４、特徴点数が５個のブロックｂ５、ｂ８による第５のグループＧ５にグループ化する。
【００５３】
続いて中央処理ユニット４は、ステップＳＰ３７に移り、各グループ内の配列をランダマイズする。続いて中央処理ユニット４は、ステップＳＰ３８に移り、現在の特徴点数が総合の個数Ｎｔｏｔ以上か否か判断する。ここで肯定結果が得られると、中央処理ユニット４は、ステップＳＰ３８からステップＳＰ３３に移ってこの処理手順を終了する。
【００５４】
これに対してステップＳＰ３８で否定結果が得られると、ステップＳＰ３８からステップＳＰ３９に移る。
【００５５】
このステップＳＰ３９で、中央処理ユニット４は、作業用リストの先頭に記録されているブロックを特徴点の設定対象に設定する。また続くステップＳＰ４０において、この設定対象のブロックに特徴点を１つ設定する。なおこの特徴点の設定は、特徴点抽出処理により１つの特徴点を抽出して実行される。
【００５６】
続いて中央処理ユニット４は、ステップＳＰ４１に移り、当該ブロックの特徴点数が当初の設定数Ｎｆｐとなったか否か判断する。ここで特徴点を１個追加したにも係わらず、特徴点数が当初の設定数Ｎｆｐより小さい場合、中央処理ユニット４は、ステップＳＰ４１で否定結果が得られ、ステップＳＰ４１からステップＳＰ４２に移る。
【００５７】
このステップＳＰ４２で、中央処理ユニット４は、特徴点の追加設定に対応するように当該ブロックの特徴点数を更新し、作業用リストにおけるグループ分けを更新する。従って当該ブロックは、特徴点の追加設定により、特徴点数が次のグループに属するように作業用リストの記録が更新される。中央処理ユニット４は、この特徴点数が次のグループに属するように、当該グループの記録を作業用リスト上で更新する際に、当該ブロックについては、次のグループの末尾に配置する。従って図２０（Ｃ）の例では、図２０（Ｄ）に示すように、それまで特徴点が０個の第１のグループＧ１に属していたブロックｂ２に特徴点を追加設定し、このブロックｂ２の記録を、続く特徴点数が１個の第２のグループＧ２の末尾に記録する。
【００５８】
このようにして１つのブロックに特徴点を１個追加設定すると、中央処理ユニット４は、ステップＳＰ３８に戻る。これに対してステップＳＰ４１で肯定結果が得られると、この場合、当該ブロックの記録を作業用リストから削除した後、ステップＳＰ３８に戻る。これにより中央処理ユニット４は、全体の特徴点数が総合の個数Ｎｔｏｔとなるまで、特徴点数が少ないグループからランダムに、順次ブロックを選択して特徴点を追加設定する。
【００５９】
従って図２０（Ｄ）の例では、続く第２のグループＧ２の先頭ブロックｂ４に特徴点を追加設定し、このブロックｂ４の記録を続く第３のグループＧ４のブロックｂ７の次に配置する。
【００６０】
なお中央処理ユニット４は、ステップＳＰ４０の処理により特徴点抽出処理で特徴点を抽出できなかった場合、ステップＳＰ４１からステップＳＰ４３に移り、当該ブロックを作業用リストから削除してステップＳＰ３８に戻る。
【００６１】
この図１８及び図１９の処理により、中央処理ユニット４は、図２１に示す機能ブロックを構成する。ここでランダムシャッフル４９は、作業リストにおける各グループの配列をランダマイズさせる機能ブロックである。
【００６２】
図２２は、特徴点抽出処理を示すフローチャートである。なお中央処理ユニット４は、この特徴点抽出処理を実行するために、別途、各フレームで特徴点リスト、特徴点マップを作成する。ここで特徴点リストは、特徴点の候補のリストであり、特徴点の候補の特徴度と座標値のリストで形成される。ここで特徴度は、特徴点らしさを示す変数である。中央処理ユニット４は、ＫＬＴ法により入力画像の各画素で特徴度を検出し、所定値以上の特徴度を有する画素の座標値を検出して特徴点の候補を選択する。さらにこの座標値を特徴度の大きい順にソートして特徴点リストを作成する。
【００６３】
具体的に、中央処理ユニット４は、次式の演算処理により得られる固有値α１、α２から値の小さい固有値を選択して特徴度とする。なおここでＩｘは、画素値の水平方向の微分値であり、Ｉｙは、画素値の垂直方向の微分値である。また（１）式における演算範囲は、処理対象の画素を中心にした垂直方向、水平方向に所定範囲であり、この所定範囲は、例えば７×７画素の範囲である。この（１）式の処理により、中央処理ユニット４は、特徴点近辺における画素値の勾配のばらつきを計算し、このばらつきの激しさを示す変数を特徴度に設定する。従って例えば輝度変化の無い平坦な部分では、特徴点リストに特徴度が記録されないことになる。なおここでこの（１）式における（ｘ、ｙ）は、画素の座標である。
【００６４】
【数１】
2007336235.tif 000003
【００６５】
これに対して特徴度マップは、入力画像の画素の配列に対応するように特徴度を配列したマップである。特徴度マップは、特徴点リストに登録されていない、一定値以上、特徴度が小さい画素については、特徴度が値０に丸めて記録される。特徴点リストは、特徴点に適した画素を優先的に選択するために使用され、特徴度マップは、特徴点リストで選択した候補を特徴点と設定する際の、周囲の状況を判定するために使用される。
【００６６】
中央処理ユニット４は、特徴点選択処理（図１９、ステップＳＰ４０）からの要求によりこの処理手順を開始してステップＳＰ５１からステップＳＰ５２に移り、特徴点リストが空か否か判断する。ここで肯定結果が得られると、中央処理ユニット４は、ステップＳＰ５２からステップＳＰ５３に移り、特徴点の抽出不成功を特徴点選択処理に通知した後、ステップＳＰ５４に移ってこの処理手順を終了する。
【００６７】
これに対して特徴点リストに特徴点の候補が残っている場合、中央処理ユニット４は、ステップＳＰ５２で否定結果が得られ、ステップＳＰ５５に移る。ここで中央処理ユニット４は、特徴点リストの先頭に記録された特徴点の候補を選択する。また続くステップＳＰ５６において、ブロックリストを参照し、当該特徴点の候補が、特徴点を設定するブロックに存在するか否か判断する。ここで否定結果が得られると、中央処理ユニット４は、ステップＳＰ５６からステップＳＰ５７に移り、さらに特徴点の候補が特徴点リストに存在するか否か判断する。ここで否定結果が得られると、中央処理ユニット４は、ステップＳＰ５３に移って特徴点の抽出不成功を特徴点選択処理に通知した後、ステップＳＰ５４に移ってこの処理手順を終了する。
【００６８】
これに対してさらに特徴点の候補が特徴点リストに残っている場合、中央処理ユニット４は、ステップＳＰ５７で肯定結果が得られ、ステップＳＰ５７からステップＳＰ５８に移る。ここで中央処理ユニット４は、特徴点リストに記録された次の候補を選択し直し、ステップＳＰ５６に戻る。これにより中央処理ユニット４は、特徴点リストの記録を特徴度の高い順に順次スキャンして、特徴点を設定するブロックに属する特徴点の候補を検出する。
【００６９】
またこのような特徴点の候補が検出されると、中央処理ユニット４は、ステップＳＰ５６で肯定結果が得られ、ステップＳＰ５６からステップＳＰ５９に移る。ここで中央処理ユニット４は、特徴点追跡、動きベクトル計算処理で追跡に成功して、現フレームに既に存在する特徴点が、この候補を中心にした周囲、一定距離Δｆｐの範囲に存在するか否か判断する。ここで肯定結果が得られると、この場合、既存の特徴点の近傍に、特徴点を設定してしまうことになる。従ってこのステップＳＰ５９で肯定結果が得られると、中央処理ユニット４は、ステップＳＰ５７に移り、さらに特徴点の候補が特徴点リストに残っているか否か判断する。
【００７０】
これに対して特徴点の候補の周囲、一定の範囲に既存の特徴点が存在しない場合、中央処理ユニット４は、ステップＳＰ５９で否定結果が得られ、ステップＳＰ６０に移る。ここで中央処理ユニット４は、この特徴点候補の選択に対応するように特徴点リスト、特徴度マップの記録を更新する。具体的に、中央処理ユニット４は、当該特徴点の候補を中心にした、一定距離Δｆｐの範囲で、特徴度マップにおける特徴度を無効に設定する。なおこの無効に設定する処理は、特徴度マップ上でこの範囲の特徴度を負の値に設定して実行される。またこの無効の設定に対応するように、この一定範囲に含まれている特徴点の候補を特徴点リストから除外する。これにより中央処理ユニット４は、選択した特徴点の候補の周囲、一定の距離Δｆｐの範囲では、さらなる特徴点を選択できないように設定する。
【００７１】
続いて中央処理ユニット４は、ステップＳＰ６１に移り、ここで当該特徴点の候補を特徴点選択処理に通知し、ステップＳＰ５４に移ってこの処理手順を終了する。なお中央処理ユニット４は、この図２２のステップＳＰ６１で通知された特徴点の候補を、図１９のステップＳＰ４０で特徴点に設定する。
【００７２】
この図２２の処理により、中央処理ユニット４は、図２３に示すように、特徴点リスト５２、特徴度マップ５３を用いて特徴点を検出する特徴点抽出手段４３を構成する。
【００７３】
なおステップＳＰ５９の処理において、周囲に特徴点が存在するか否かを判定するためには、この図２２の処理手順を実行する毎に、既存の特徴点の記録を検索することになる。従ってこの図２２の処理を繰り返す場合に、中央処理ユニット４は、処理の負担が大きくなる。従ってこの既存の特徴点の情報を特徴度マップ、特徴点リストの記録に反映させるようにして、処理の負担を軽減するようにしてもよい。具体的には、ステップＳＰ６０における特徴点リスト、特徴度マップの更新処理と同一の処理を、既存の特徴点に適用することが考えられ、このようにすれば処理を高速度化することができる。
（１−２）動きベクトル解析処理
図２４は、上述の動きベクトル算出処理で検出されて、動きベクトル解析処理に渡される特徴点情報を示す図表である。この特徴点情報は、特徴点毎に、特徴点の座標Ｐ（ｘ，ｙ）、特徴度、有効無効フラグ、動きベクトル、分類情報等の属性情報が割り当てられて形成される。
【００７４】
ここで特徴点の座標Ｐ（ｘ，ｙ）は、特徴点の位置を示す位置情報であり、最初に特徴点が設定された時点で初期値が設定され、動きベクトル算出処理で特徴点の追跡が成功する毎に、最新の値に更新される。なお特徴点の座標Ｐ（ｘ，ｙ）は、画素値以下の少数点精度で割り当てられる。特徴度は、最初に特徴点が設定された時点で検出された値が適用される。有効無効フラグは、特徴点の座標Ｐ（ｘ，ｙ）等が有効か無効かを示すフラグであり、特徴点が最初に抽出された時点で有効にセットされる。動きベクトルは、対応する特徴点の動きベクトルが記録され、追跡が成功する毎に最新の値に更新される。上述の動きベクトル算出処理は、遮蔽などの影響で特徴点を追跡できなかった場合、有効無効フラグを無効にセットし、特徴点の座標Ｐ（ｘ，ｙ）等の他の属性情報をゼロにセットする。また特徴点を追加設定した場合、有効無効フラグが無効にセットされた特徴点の情報を検出し、この検出した特徴点の情報に追加登録した特徴点の情報をセットする。なお有効無効フラグが無効にセットされた特徴点の情報を検出できない場合には、特徴点の情報を追加する。
【００７５】
分類情報は、動きベクトル解析処理によって特徴点の所属を示す情報が設定される。分類情報は、特徴点が背景から検出されて背景に属するものであることを示す「背景特徴点」、特徴点が被写体から検出されて背景以外に属するものであることを示す「非背景特徴点」、これら「背景特徴点」、「非背景特徴点」の分類前であることを示す「分類前」の何れかに設定され、最初に特徴点が設定された時点では、「分類前」に設定される。
【００７６】
図２５は、この特徴点情報を用いた動きベクトル解析処理を詳細に示すフローチャートである。なおこの図２５に示す処理手順は、特徴点分類更新処理ステップＳＰ６５を除いて、有効無効フラグが有効に設定された特徴点情報のみを用いて実行される。中央処理ユニット４は、この処理手順を開始すると、ステップＳＰ６１からステップＳＰ６２に移り、動きベクトル算出処理から通知される特徴点情報に基づいて、動きベクトルの分布を示す２次元のヒストグラムを作成する。ここでこのヒストグラムは、動きベクトルの水平方向成分及び垂直方向成分をそれぞれｘ座標及びｙ座標に割り当て、度数をｚ軸方向に設定して作成される。なお中央処理ユニット４は、ヒストグラムの解像度ｒｅｚで動きベクトルの水平方向成分及び垂直方向成分をそれぞれ割り算して四捨五入することにより、浮動小数点で得られる動きベクトルを量子化してヒストグラムを作成する。
【００７７】
なおこここで分類情報の確からしさを示す信頼度に応じて、各動きベクトルの度数を重み付けしてヒストグラムを作成するようにしてもよい。なおこのような信頼度は、連続して追跡に成功した回数を適用することができる。また近傍の特徴点との間の距離の変化度合を信頼度に適用することができる。従って背景として連続して追跡した回数が多い程、また近傍の特徴点との間の距離の変化度合が小さい場合程、大きな重みを設定して、背景である確率が高い山程、高さが高くなるように、ヒストグラムを作成して、背景の検出精度を向上することができる。なおこの重み付けの処理は、重み付け対象がヒストグラム化する際の度数である点を除いて、後述するピーク度合の重み付け処理と同一に実行することができる。但し、このように重み付けした場合、以降の処理における特徴点数等は、このヒストグラム上で現されている数となる。
【００７８】
続いて中央処理ユニット４は、ステップＳＰ６３において、画像領域分割法を適用して、ステップＳＰ６２で作成したヒストグラムにおける山を区分する。なおここでこの実施例では、ｗａｔｅｒｓｈｅｄ法が適用される。すなわち中央処理ユニット４は、図２６（Ａ）に示すように、ヒストグラム算出処理（ステップＳＰ６２）で作成されたヒストグラムから度数の最大値ｍａｘＨｉｓｔを検出する。また続いて図２６（Ｂ）に示すように、この検出したこの度数の最大値ｍａｘＨｉｓｔから度数が立ち下がるように、ヒストグラムを反転させて反転ヒストグラムを作成する。
【００７９】
中央処理ユニット４は、続いて図２６（Ｃ）に示すように、この反転ヒストグラムから局所最小値を順次検出する。なおこの図２６（Ｃ）では、検出した局所最小値を白丸により示す。中央処理ユニット４は、このようにして各山のピーク値を検出する。またこの検出した各山による局所最小値をｗａｔｅｒｓｈｅｄのシーズに設定し、図２６（Ｄ）に示すように、ｗａｔｅｒｓｈｅｄにより各山の境界を設定する。なおここで図２６（Ｄ）では、破線により各山の境界を示し、ハッチングにより示す領域は、度数が分布していない領域である。
【００８０】
中央処理ユニット４は、図２６（Ｅ）により示すように、このようにして検出した各山の境界でヒストグラムを構成する動きベクトルを分類し、ヒストグラムから各山を分離する。この実施例は、この画像領域分割法により境界を設定して山を分離することにより、背景の動きと被写体の動きとが似通っている場合でも、確実に背景の山と被写体の山とを分離して、カメラ動きベクトルの検出精度を確保する。
【００８１】
続いて中央処理ユニット４は、ステップＳＰ６４に移り、このようにして分離した山から背景による山を検出する。中央処理ユニット４は、この背景による山の検出を、特徴点情報に設定した分類情報に基づいて実行する。
【００８２】
図１は、このステップＳＰ６４の背景ピーク検出処理を詳細に示すブロック図である。この処理手順を開始すると、中央処理ユニット４は、ステップＳＰ７１からステップＳＰ７２に移る。ここで中央処理ユニット４は、現在のフレームが、動きベクトルを検出した先頭フレームか否か判断する。ここで肯定結果が得られると、中央処理ユニット４は、ステップＳＰ７２からステップＳＰ７３に移る。ここでこの場合、動きベクトルを検出した先頭フレームであって、全ての動きベクトルの分類情報が「分類前」に設定されていることにより、中央処理ユニット４は、最も高さの高い山を背景による山に設定した後、ステップＳＰ７４に移ってこの処理手順を終了する。なおこのようにして背景に設定された山に属する動きベクトルの特徴点は、後述する特徴点分類更新処理により分類情報が「背景特徴点」に設定され、それ以外は「非背景特徴点」に設定される。
【００８３】
これに対してステップＳＰ７２で否定結果が得られると、中央処理ユニット４は、ステップＳＰ７２からステップＳＰ７５に移る。中央処理ユニット４は、このステップＳＰ７５において、特徴点情報に設定された分類情報に基づいて、各ピークで、背景ピーク度合を計算する。ここで背景ピーク度合は、背景である確からしさを示す変数である。
【００８４】
ここでこの場合、入力画像に設定されている特徴点は、動きベクトル算出処理における特徴点の追跡、追加設定により、図２７（Ａ）に示すように、分類情報が「背景特徴点」、「非背景特徴点」、「分類前」に設定されたものが混在することになる。なお以下において、分類情報が「背景特徴点」、「非背景特徴点」、「分類前」に設定されている特徴点を、それぞれ四角の印、白抜きの丸印、黒丸により示す。
【００８５】
ここで図２７（Ｂ）に示すように、カメラがパンし、このカメラのパンとは大きく異なって「非背景特徴点」に設定された特徴点を有する被写体が移動しているとする。この場合、図２８に示すように、ヒストグラム上で、背景による山と被写体による山とは明確に分離されて検出されることから、ステップＳＰ７３と同一の処理により最も高さの高い山を検出して背景の山を検出するようにしても、正しく背景の山を検出することができる。
【００８６】
しかしながら被写体が移動して、画面上における被写体の面積が背景に比して大きくなる場合もあり、この場合には、最も高さの高い山を検出したのでは、背景を誤って検出することになる。従ってカメラ動きベクトルを誤検出することになる。
【００８７】
これに対して他の山に比して高さが低い場合でも、分類情報が「背景特徴点」に設定された特徴点による動きベクトルが支配的な山にあっては、「背景特徴点」に設定された特徴点が支配的であればある程、背景の山である可能性が高い。またこれとは逆に、「非背景特徴点」に設定された特徴点による動きベクトルが支配的な山にあっては、「非背景特徴点」に設定された特徴点が支配的であればある程、高さが高い場合でも、背景の山である可能性が低いと言える。すなわち各ピークにおいて、分類情報が「背景特徴点」に設定された特徴点による動きベクトルの割合が多くなればなる程、背景の山である可能性が高いと言える。
【００８８】
従って各山における「背景特徴点」に設定された特徴点の割合を計算し、最も割合の多い山を検出すれば、被写体が移動して、画面上における被写体の面積が背景に比して大きくなった場合でも、背景の山を検出することができる。
【００８９】
しかしながら図２７との対比により図２９に示すように、静止していた他の被写体２が移動を開始する場合もある。この場合、この被写体２から検出される特徴点は、図３０（Ａ）に示すように、それまで静止して背景として検出されていることにより、分類情報は「背景特徴点」に設定されていることになる。従って図３０（Ｂ）に示すように、ヒストグラム上では、分類情報が「背景特徴点」に設定された２つの山が検出されることになる。従って単に、「背景特徴点」に設定された特徴点の割合により背景の山を検出していたのでは、何れの山が正しい背景の山なのかを検出できなくなる。
【００９０】
しかしながらこの場合に、このようにそれまで静止していて背景と判断されていた特徴点にあっては、本来の背景に比して面積が小さいと言え、山を構成する特徴点数が少ないと言える。これにより中央処理ユニット４は、背景特徴点の相対的な多さと、特徴点数の絶対的な多さとから、背景の山である確かしさを示す背景ピーク度合ＲＰを計算し、この背景ピーク度合ＲＰを判定して背景の山を検出する。具体的に、中央処理ユニット４は、山毎に、ＲＰ＝ＲＨ×Ｋの演算処理を実行し、各山の背景ピーク度合ＲＰを計算する。なおここでＲＨは、背景ピーク度合ＲＰを計算する山全体の動きベクトル数に対する背景特徴点の動きベクトル数の割合である。またＫは、係数であり、背景ピーク度合ＲＰを計算する山の動きベクトル数が所定のしきい値ｔｈｆｐ以上の場合、値１が適用され、背景ピーク度合ＲＰを計算する山の動きベクトル数が所定のしきい値ｔｈｆｐより少ない場合、値０が適用される。なおＫは、３値以上の値を適用するようにしてもよい。なおこのように背景ピーク度合ＲＰを計算して背景を求めることは、画像領域分割法により境界を設定して山を分離したことによる、本来、背景以外から検出した動きベクトルが背景側の山に分類されることによる不都合を回避する意味もある。
【００９１】
なおこの背景ピーク度合ＲＰを検出する際に、ヒストグラムを作成する際に上述したと同様に、分類情報の確からしさを示す信頼度に応じて、背景ピーク度合ＲＰを重み付けして作成するようにしてもよい。なおこのような信頼度は、背景として連続して追跡に成功した回数、背景以外として連続して追跡に成功した回数を適用することができる。また背景として連続して追跡に成功した回数を適用する場合には、例えば連続した追跡成功回数を例えば５回程度の一定回数で制限するようにして、１回から一定回数までの中間値である追跡成功回数３回で重み係数を値１に設定し、これより追跡回数が増加、減少する程に、重み係数が値１から増大及び減少するように設定する。また処理対象を構成する山の動きベクトルのうちで属性情報により背景と分類されている動きベクトルで、この重み係数の平均値を計算し、この平均値を最終的な重み係数として上述した背景ピーク度合ＲＰに乗算する。また背景以外として連続して追跡に成功した回数を適用する場合には、同様に追跡回数を制限するようにして、背景の場合とは逆に、追跡回数が増加、減少する程に、重み係数が値１から減少及び増大するように設定し、同様の処理を実行する。
【００９２】
またこのような信頼度として、近傍の特徴点との間の距離の変化度合いを信頼度に適用することもできる。この場合、近傍の特徴点との間の距離の変化度合いが大きい場合には、背景である場合の確からしさが低いと言える。これによりこの変化度合いに応じて、例えば背景以外として連続して追跡に成功した回数を適用する場合と同様に重み係数を計算して背景ピーク度合ＲＰを重み付けすることができる。
【００９３】
中央処理ユニット４は、背景ピーク度合ＲＰの値が最も大きな山を背景の山に設定し、それ以外を非背景の山に設定する。
【００９４】
続いて中央処理ユニット４は、ステップＳＰ６５（図２５）に移り、図２９の対比により図３１に示すように、特徴点分類処理により、背景の山に分類された特徴点の分類情報を「背景特徴点」に設定し、背景の山に分類されなかった特徴点の属性情報を「非背景特徴点」に設定する。
【００９５】
続いて中央処理ユニット４は、ステップＳＰ６６において、背景部動きベクトル算出処理により、背景の山に分類された動きベクトルから背景の動きを計算した後、ステップＳＰ６７に移ってこの処理手順を終了する。中央処理ユニット４は、この図２５の処理手順の実行により、図３２に示す機能ブロックを構成する。なおここでヒストグラム算出部５１、ピーク抽出部５２、背景ピーク検出部５３、特徴点分類更新部５４、背景動きベクトル算出部５５は、それぞれステップＳＰ６２、ＳＰ６３、ＳＰ６３、ＳＰ６３、ＳＰ６３の処理手順に対応する機能ブロックである。
【００９６】
図３３は、ステップＳＰ６６の背景動きベクトル算出処理の処理手順を示すフローチャートである。中央処理ユニット４は、この処理手順を開始すると、ステップＳＰ８１からステップＳＰ８２に移り、特徴点分類更新処理ステップＳＰ６５で分類情報を「背景特徴点」に設定した特徴点で検出された動きベクトルから、信頼性の低い動きベクトルを除外し、処理対象を整理する。
【００９７】
すなわち中央処理ユニット４は、分類情報を「背景特徴点」に設定した特徴点で検出された動きベクトルの分布を統計学的に解析する。またこの分布の解析から分布中心を検出し、この分布中心からの各動きベクトルの距離が所定の判定基準値より大きいものを、処理対象から除外する。
【００９８】
より具体的に、中央処理ユニット４は、分類情報を「背景特徴点」に設定した特徴点で検出された動きベクトルを平均値化して平均ベクトルを計算する。またこれらの動きベクトルからこの標準偏差行列を生成する。なおここでこの標準偏差行列は、動きベクトルの水平方向成分、垂直方向成分の標準偏差による対角行列であり、以下、適宜、標準偏差ベクトルとも呼ぶ。
【００９９】
中央処理ユニット４は、この標準偏差ベクトルの水平方向成分Ｓｘ及び垂直方向成分Ｓｙにそれぞれ所定のしきい値ｔｈを乗算して水平方向成分の判定基準Ｓｘ×ｔｈ及び垂直方向成分の判定基準Ｓｙ×ｔｈを計算する。また検査対象の動きベクトルＶの水平方向成分Ｖｘから平均ベクトルの水平方向成分Ｍｘを減算した減算値Ｖｘ−Ｍｘの絶対値を、水平方向成分の判定基準Ｓｘ×ｔｈで判定し、分布中心からの動きベクトルの水平方向の距離が判定基準値Ｓｙ×ｔｈより大きいものを、処理対象から除外する。
【０１００】
また残った各動きベクトルの垂直方向成分Ｖｙから平均ベクトルの垂直方向成分Ｍｙを減算した減算値Ｖｙ−Ｍｙの絶対値を、垂直方向成分の判定基準Ｓｙ×ｔｈで判定し、分布中心からの動きベクトルの垂直方向の距離が判定基準値Ｓｙ×ｔｈより大きいものを、処理対象から除外する。
【０１０１】
なおこの判定基準値は、時間方向の動きベクトルの分布の変化を反映させるようにしてもよい。具体的には、標準偏差の時間変動を検出し、この時間変動に応じて判定基準値の生成に使用したしきい値ｔｈの大きさを変化させる等である。
【０１０２】
このようにして中央処理ユニット４は、処理対象の動きベクトルを整理すると、続くステップＳＰ８３において、残った動きベクトルを用いて平均値を計算し、背景の動きベクトルを計算する。中央処理ユニット４は、この背景の動きベクトルの符号を反転させて、カメラ動きベクトルＭＶＣを計算する。
【０１０３】
この図３３の処理により、中央処理ユニット４は、図３４に示す機能ブロックを構成する。なおここで動きベクトル整理部７１、背景部の平均ベクトル算出部７２は、それぞれ図３３のステップＳＰ８２、ステップＳＰ８３の処理手順に対応する機能ブロックである。
【０１０４】
（２）実施例の動作
以上の構成において、この手振れ補正装置１では（図２）、テレビジョンカメラ２で撮影したビデオ信号ＳＶがハードディスク装置３にダウンロードされた後、ハードディスク装置３に格納された処理プログラムに従った中央処理ユニット４の処理により、手振れ補正処理されて外部機器に出力される（図３〜図７）。
【０１０５】
この手振れ補正処理において、ビデオ信号ＳＶは、ＩＰ変換処理されてフレーム単位で処理され、連続するフレームの各部で動きベクトルが検出される。またこの動きベクトルの解析により、手振れとカメラワークとによるカメラの動きを入力画像上で表すカメラ動きベクトルＭＶＣが検出され、またさらにこのカメラ動きベクトルＭＶＣの解析により、カメラワークのみによるカメラの動きを入力画像上で表すカメラ動きベクトルＭＶＣＴが検出される。ビデオ信号ＳＶは、これらのカメラ動きベクトルＭＶＣ、ＭＶＣＴに基づいて、手振れ補正用の補正ベクトルΔＭＶが順次計算され、この補正ベクトルΔＭＶで各フレームの動きが補正されて手振れ補正処理される（図８、図９）。
【０１０６】
この手振れとカメラワークとによるカメラ動きベクトルＭＶＣの検出では、入力画像中で背景が最も大きな面積を占めるとの仮定に基づいて、初めに、入力画像の各部で検出した動きベクトルでヒストグラムが作成され、このヒストグラム上で、最もサンプル数の集中する動きベクトルのグループが背景のグループとして検出される。またこの背景のグループに属する動きベクトルが平均値化されて、カメラ動きベクトルＭＶＣＴが検出される。
【０１０７】
従ってこの実施例では、入力画像における各部の面積に比例するように、入力画像の各部から動きベクトルが均等に検出されないと、正しく背景を検出できなくなり、正しくカメラワークのみによるカメラ動きベクトルＭＶＣＴを検出できなくなる。そこで入力画像中で偏りなく、万遍に、動きベクトルを検出することが必要になる。
【０１０８】
そこでこの手振れ補正装置１では、ＫＬＴ法の特徴点抽出、追跡法を利用して入力画像の各部で動きベクトルを検出するようにして、ビデオ信号ＳＶによる入力画像の各フレームが複数ブロックに分割される（図１０、ステップＳＰ２３）。また先頭フレームでは各ブロックにそれぞれ一定数Ｎｆｐの特徴点が設定される（図１０、ステップＳＰ２５）。また先頭フレームに続く連続するフレームの入力画像において、この特徴点の追跡により動きベクトルが検出される（図１０、ステップＳＰ２８）。またこの続く連続するフレームの入力画像において、追跡困難な特徴点、隣接する特徴点に一定距離以上接近した特徴点が削除される。また各ブロックの特徴点の数が初めに設定した一定数Ｎｆｐとなるように、各ブロックに特徴点が追加設定され（図１０、ステップＳＰ２５）、特徴点の分布の偏りが補正される。
【０１０９】
この一連の処理により、この手振れ補正装置１では、背景が前景により遮蔽された場合、背景の一部がフレームアウトした場合等にあっても、概ね初めに設定した特徴点の数Ｎｆｐだけ各ブロックから動きベクトルを検出することができ、これにより偏り無く動きベクトルを検出することができる（図１０〜図１７）。またＫＬＴ法の特徴点抽出、追跡法を利用して動きベクトルを検出することから、ブロックマッチング法による場合に比して高い精度で動きベクトルを検出することができる。これにより画面全体から偏りなく高い精度で動きベクトルを検出することができる。
【０１１０】
すなわちビデオ信号ＳＶによる入力画像は、ＫＬＴの追跡法により、連続するフレームで各特徴点が追跡され、２つの特徴点が一定距離以上、近づくと、特徴点らしさを示す特徴度の低い側の特徴点が削除され、これにより特徴点の集中が防止されて特徴点の偏りが防止される（図１０、ステップＳＰ２８）。またこのとき追跡困難な特徴点も削除される。
【０１１１】
またビデオ信号ＳＶによる入力画像は、各フレームで、特徴点らしさを示す特徴度の高い順に、各画素の座標値が対応する特徴度と共に順次リスト化され、特徴点の候補を特徴度の高い順に示す特徴点リストが作成される（図２３）。また入力画像の画素の配列に対応するように特徴度を配列した特徴点マップが作成される（図２３）。
【０１１２】
ビデオ信号ＳＶによる入力画像は、先頭フレーム以外の連続するフレームにおいて、特徴点の削除により当初の設定数に対して不足する特徴点が発生すると、初めに設定した特徴点の数Ｎｆｐに特徴点数が満たないブロックに、特徴度が高い順に特徴点が追加設定される（図２２、ステップＳＰ５５−ＳＰ５６−ＳＰ５７−ＳＰ５５）。またこのとき、既存の特徴点に対して一定距離以上離れていることが確認される（図２２、ステップＳＰ５９）。
【０１１３】
これにより特徴点の密度の低下が防止されて特徴点の偏りが防止される。このとき既存の特徴点から一定の距離だけ離れている個所で、特徴度が大きな順に特徴点を追加することにより、追加して設定した特徴点についても、ＫＬＴの追跡法により追跡して、十分に高い精度の動きベクトルを検出することができる。
【０１１４】
より具体的に、手振れ補正装置１では、分割したブロックの情報を記録したブロックリストから、ブロック毎の特徴点数を示す作業用リストが作成され（図１８、ステップＳＰ３４）、初めに設定した特徴点の数Ｎｆｐを特徴点数が満たすブロックがこの作業用リストから除外され（図１８、ステップＳＰ３５）、これにより一定数Ｎｆｐに特徴点が不足するブロックが検出される。
【０１１５】
またこの作業用リストに記録されたブロックが、不足する特徴点数毎にグループ化され、不足する特徴点数が順次少なくなるように、ソート処理により各グループ内の配列が変更される（図１８、ステップＳＰ３６）。これによりこの手触れ補正装置１では、グループ単位で、特徴点を追加する処理順序が作業用リストに設定される。手触れ補正装置１では、作業用リストに記録された処理順序に従って、順次、不足する特徴点が対応するブロックに追加設定される。
【０１１６】
これによりこの手振れ補正装置１では、種々の条件で、この追加設定の処理を制限して処理の高速化を図るようにしても、真に特徴点が不足するブロックに優先的に特徴点を設定して、動きベクトルの偏りを防止することができる。またこのように特徴点の不足するブロックをリスト化して、ソートすることにより、簡易な処理で処理順序を設定することができる。
【０１１７】
具体的に、この手振れ補正装置１では、この処理を制限する条件が、１フレームの総合の特徴点数が、当初の設定値Ｎｔｏｔを越えない範囲で、特徴点を追加するとの条件であり、これにより実用上十分に、動きベクトルの偏りを防止して、特徴点の追加設定処理を必要最小限度に止めることができ、その結果、処理を簡略化して動きベクトルの偏りを防止することができる。
【０１１８】
またこのとき作業用リストの各グループでは、ブロックの処理順序がランダマイズされ、これにより１フレームの総合の特徴点数が、当初の設定値Ｎｔｏｔを越えない範囲で、特徴点を追加するようにして、例えば画面左側等の、特定の個所への偏った特徴点の追加を防止することができ、これによっても動きベクトルの偏りを防止することができる。
【０１１９】
またこの特徴点の追加は、１個、特徴点を追加する毎に、作業用リストが更新され、これによっても１フレームの総合の特徴点数が、当初の設定値Ｎｔｏｔを越えない範囲で、特徴点を追加するようにして、特徴点の偏りを防止して、動きベクトルの偏りを防止することができる。またランダマイズした配列の末尾に、特徴点を追加設定したブロックの記録を変更することによっても、特徴点の偏りを防止して、動きベクトルの偏りを防止することができる。
【０１２０】
しかしながら入力画像では、被写体の動きにより背景の面積が被写体以上に小さくなる場合もある。また背景の動きを被写体の動きとが似通っている場合もある。このような場合、入力画像上で偏りなく動きベクトルを検出しても、ヒストグラム上で、最もサンプル数の集中する動きベクトルのグループを背景のグループとして検出してカメラ動きベクトルを検出していたのでは、背景の動きを正しく検出できなくなる。すなわちこの場合、背景の動き検出精度が劣化し、カメラの動きを正しく検出できなくなる。
【０１２１】
このためこの手振れ補正装置１では、先頭１フレームで背景を検出する場合に限って、ヒストグラム上で動きベクトルの分布が集中して形成される山において、最も高さの高い山が検出され（図１、ステップＳＰ７３）、背景から検出した動きベクトルによるものと判定される。またこの背景の山に属する動きベクトルから平均値が求められてカメラ動きベクトルＭＶＣが検出される。
【０１２２】
またこのようにして背景から検出した動きベクトルによるものと判定された山に属する特徴点については、背景に属することが分類情報に記録され、また他の特徴点の分類情報には、背景に属しないことが記録される（図２４、図２５、ステップＳＰ６５）。
【０１２３】
また以降のフレームでは、このようにして選定された分類情報を基準にして、背景から検出した動きベクトルによる山が検出される。またこの山の検出により属性情報が設定し直され、途中で追加設定された特徴については分類情報が設定される（図１、ステップＳＰ７５、ＳＰ７６）。
【０１２４】
これによりこの手振れ補正装置１では、過去に背景と判定されて、その後、背景の面積が小さくなって、背景から検出される動きベクトルの数が低下した場合でも、正しくヒストグラム上における背景の山を追跡して背景による山を検出することができる。従って、背景の面積が小さくなった場合にあっても、背景の誤検出を有効に回避して正しくカメラ動きベクトルを検出することができる。
【０１２５】
また手振れ補正装置１では、ヒストグラムから背景による山を検出する際に、ヒストグラム上に現れた複数の山が、画像領域分割法により区切られ、複数の山に分割される（図２５、ステップＳＰ６３及び図２６）。またこのようにして分割した複数の山から背景の山が検出される（図２５、ステップＳＰ６４）。従ってこの手振れ補正装置１では、背景の動きに被写体の動きが似通っていて、ヒストグラム上で背景の山と被写体の山とが部分的に重なり合っている場合でも、これらの山を区別して処理することができ、これによって背景の動きに被写体の動きが似通っている場合の、背景の動き検出精度の劣化が防止される。
【０１２６】
より具体的に、この手振れ補正装置１では、入力画像の各部で検出された動きベクトルの大きさが、ヒストグラムの解像度ｒｅｚで正規化されてヒストグラムが生成され、これにより所望する分解能でカメラ動きベクトルを簡易に検出することができるように設定される。
【０１２７】
またこの山の分離に、ｗａｔｅｒｓｈｅｄ法が適用され（図２６）、ヒストグラムが反転されて反転ヒストグラムが作成された後、この反転ヒストグラムにおける局所最小値がｗａｔｅｒｓｈｅｄのシーズに設定されて各山が区分される。その結果、この手振れ補正装置１では、被写体の動きが種々に変化する場合にあっても、確実に山を分離して各部の動きを正確に検出することが可能になる。
【０１２８】
またこのようにして分離した複数の山から背景の山を検出する場合には、初めの１フレームは山の高さにより背景の山が検出された後、以降のフレームでは、分類情報に基づいて背景の山である確かしさを示す背景ピーク度合ＲＰを各山で計算し（図１、ステップＳＰ７５）、この背景ピーク度合ＲＰの値が最も大きな山が背景による山と判定される（図１、ステップＳＰ７５）。
【０１２９】
すなわち手振れ補正装置１では、背景の山における背景に分類された動きベクトル数の割合に、所定の係数Ｋを乗算して背景ピーク度合ＲＰが計算される。これにより分類情報に基づいて、背景特徴点の相対的な多さにより背景ピーク度合ＲＰが計算され、過去に背景と判定された可能性の高い特徴点が支配的な山が背景の山として検出され、種々に被写体の動きが変化した場合にあっても、背景の動きを正しく検出することが可能となる。
【０１３０】
またこのとき山全体の動きベクトルの数が所定のしきい値ｔｈｆｐ以上の場合、係数Ｋが値１に設定され、山全体の動きベクトルの数が所定のしきい値ｔｈｆｐより少ない場合、係数Ｋが値０に設定され、これにより山の高さを所定のしきい値ｔｈｆｐで量子化した係数Ｋにより背景の山検出に特徴点数が反映され、例えば静止していた被写体が動き出した場合（図３１）等に、この動き出した被写体の動きを背景の動きとして誤検出することが防止される（図２９、図３０）。
【０１３１】
なおこのように背景特徴点の相対的な多さと、特徴点数の絶対的な多さとから背景ピーク度合ＲＰを計算し、この背景ピーク度合ＲＰを判定して背景の山を検出していることから、動きベクトルのヒストグラムを作成する際に、動きベクトルの検出基準である特徴点の特質を利用して、背景の特徴点である確からしさを示す信頼度を計算し、この信頼度で背景ピーク度合ＲＰが変化するように各動きベクトルのヒストグラム上における度数を重み付けしてヒストグラムを作成すれば、一段と確実に背景の山を検出することができる。      
【０１３２】
具体的に、背景として分類されて連続して追跡に成功した回数の多い特徴点は、追跡に成功した回数が多ければ多い程、背景に存在する可能性が高い。またこれとは逆に、背景で無いと分類されて連続して追跡に成功した回数の多い特徴点は、追跡に成功した回数が多ければ多い程、背景に存在する可能性が低い。従って対応する特徴点の追跡を連続して成功した回数を信頼度に設定して重み付け処理することにより、一段と確実に背景の山を検出することができる。
【０１３３】
また背景は、背景の他の部位に対して異なる動きを呈する部位が少ない、一般に硬いものである。従って背景に存在する特徴点は、背景に分類された周辺特徴点との距離が、各フレームで変化しない可能性が高い。従って対応する特徴点の周辺特徴点との距離の変化度合を信頼度に設定し、重み付け処理することにより、一段と確実に背景の山を検出することができる。なおこのようにヒストグラムに信頼度を反映させた場合、ヒストグラムから背景の山を検出する等の一連の処理においては、このヒストグラム上における動きベクトルの分布を一連の計算の処理に適用することになる。
【０１３４】
なおこのような信頼度による重み付け処理は、ヒストグラムを作成する際に、各動きベクトルの度数を重み付けしてもよく、またこれに代えて背景の山を検出する検出基準である各山の背景ピーク度合を重み付けするようにしてもよい。
【０１３５】
この手振れ補正装置１では、このようにして検出した背景の山から、この山を構成する動きベクトルを平均化して、背景の動きベクトルが検出され、この背景の動きベクトルの符号が反転されて、カメラ及び手振れによるカメラの動きを入力画像上で表すカメラ動きベクトルＭＶＣが計算される。
【０１３６】
この平均化の際に、手振れ補正装置１では、統計的手法を適用して、背景の山に分類された動きベクトルから、誤って分類された可能性の高い動きベクトルを除外して平均値を計算し、これによってもカメラ動きベクトルの検出精度を向上する。
【０１３７】
具体的に、手振れ補正装置１では、背景とされた山に属する動きベクトルの平均値が計算されて、この山の中心が計算される。またこの山の中心からの距離が所定の判定基準値で判定され、この距離が大きな動きベクトルが処理対象から除外され、これにより背景の動き検出精度が増大し、カメラ動きベクトルの検出精度が向上する。
【０１３８】
このときこの距離の判定基準にあっては、背景とされた山に属する動きベクトルの標準偏差が計算され、この標準偏差に応じて設定される。これにより例えば風に木々が揺らめくような背景にあっては、判定基準値が大きな値に設定されるのに対し、建築物の壁のように硬い背景にあっては、判定基準値が小さな値に設定されて、処理対象が除外される。これによりこの手振れ補正装置１では、背景に応じて判定基準を可変して誤って分類された可能性の高い動きベクトルが処理対象から除外され、一段と高い精度で背景の動きを検出することができる。
【０１３９】
なおこの判定基準値に、時間方向の動きベクトルの分布の変化を反映させるようにすれば、一段と検出精度を向上することができる。すなわち風に木々が揺らめく背景では、風の強さの時間変化によって揺らめきの大きさが変化し、この場合、背景から検出される動きベクトルの基準偏差が時間軸方向で変化することになる。従ってこの場合、この時間軸方向の分布の変化に対応するように、判定基準値を変化させて、検出精度を向上することができる。また連続した追跡回数、周辺画素との距離の変化度合による信頼度で判定基準値を補正するようにしても、連続した特徴点の追跡結果を平均値化の処理に反映させて検出精度を向上することができる。
【０１４０】
（３）実施例の効果
以上の構成によれば、入力画像の各部に設定した特徴点で検出される動きベクトルをヒストグラム化して分類し、特定個所から得られた動きベクトルを検出して特定個所の動きを検出する場合に、過去の分類結果を示す分類情報を設定し、この分類情報を参考にして動きベクトルを分類することにより、画面の各部から得られる動きベクトルを用いてカメラの動きを検出する場合等に、高い精度でカメラの動き等を検出する。
【０１４１】
またこのとき、ヒストグラムの複数の山を画像領域分割法によって区分して、背景等の特定の部位から得られた山を検出することにより、この特定の部位と動きが似通っている被写体等が存在する場合にあっても、特定の部位の山を確実に検出して正しく動きを検出することができる。
【０１４２】
また分類情報の確からしさを示す信頼度を計算してヒストグラムの作成に反映させることにより、さらに一段と確実に背景等の特定部位による山を検出して検出精度を向上することができる。
【０１４３】
具体的に、対応する特徴点の追跡を連続して成功した回数、対応する特徴点の周辺特徴点との距離の変化度合を信頼度に適用して、特徴点の追跡結果を山の検出に反映させて検出精度を向上することができる。
【０１４４】
具体的に、先頭の１フレームでは、ヒストグラムにおける山の高さを判定して特定の部位から得られた山を検出し、以降のフレームでは、分類情報を基準にして特定の部位から得られた山を検出することにより、過去の検出結果を有効に利用して、この特定の部位の検出精度を向上することができる。
【０１４５】
すなわち分類情報に基づいて、特定の部位から得られた山である確からしさを示すピーク度合を各山で算出し、最も値の大きなピーク度合による山を選択して特定の部位から得られた山を検出することにより、過去の検出結果を有効に利用して、この特定の部位の検出精度を向上することができる。
【０１４６】
またこのとき特定の部位から得られた山に属するとされた特徴点を含む割合によりピーク度合を設定し、またさらには特定の部位から得られた山に属するとされた特徴点を含む割合に、山の高さを量子化した数値を乗算した値によりピーク度合を設定することにより、過去の検出結果を有効に利用して、この特定の部位の検出精度を向上することができる。
【０１４７】
また分類情報の信頼度を計算してこのピーク度合を重み付けすることにより、より具体的には、対応する特徴点の追跡を連続して成功した回数、対応する特徴点の周辺特徴点との距離の変化度合を信頼度に適用することにより、特徴点の追跡結果を山の検出に反映させて検出精度を向上することができる。
【０１４８】
またこの特定の部位の山に属する動きベクトルを平均値化する際に、山の中心から距離を所定の判定基準値で判定し、距離の遠いものを処理対象から除外することにより、誤って分類された可能性の高い動きベクトルを計算対象から除外して検出精度を向上することができる。
【０１４９】
またこの判定基準値を、山に属する動きベクトルの標準偏差に応じて設定することにより、背景に応じて判定基準値を設定して、誤って分類された可能性の高い動きベクトルを計算対象から除外して検出精度を向上することができる。
【０１５０】
またこの判定基準値を、山における分布の変化に応じて可変することによっても、背景に応じて判定基準値を設定して、誤って分類された可能性の高い動きベクトルを計算対象から除外して検出精度を向上することができる。
【０１５１】
またこの場合も、分類情報の信頼度を計算してこの判定基準を重み付けすることにより、より具体的には、対応する特徴点の追跡を連続して成功した回数、対応する特徴点の周辺特徴点との距離の変化度合を信頼度に適用することにより、特徴点の追跡結果を平均値化の処理に反映させて検出精度を向上することができる。
【０１５２】
またさらに処理対象画像を複数ブロックに分割し、特徴点の分布を補正しながら特徴点を追跡して動きベクトルを検出することにより、画面全体から偏りなく高い精度で動きベクトルを検出することができ、これによっても特定部位の動き検出精度を向上することができる。
【実施例２】
【０１５３】
なお上述の実施例においては、１種類のヒストグラムを処理して背景の山を検出し、背景の動きを検出する場合について述べたが、本発明はこれに限らず、分解能の異なる複数種類のヒストグラムを作成して一連の処理を簡略化するようにしてもよい。なおこの場合、低分解能のヒストグラムから、特定の部位から得られた低分解能の山を検出し、この低分解能の山に対応する山を分解能の小さな高分解能のヒストグラムから検出して背景の動きを検出することが考えられる。このようにすればヒストグラムの処理に要する時間を短くすることができる。
【０１５４】
また上述の実施例においては、先頭の１フレームで、最も多くの特徴点が設定された山を背景とする場合について述べたが、本発明はこれに限らず、入力画像の周辺部に設定された特徴点から得られる山を選択して背景の山としてもよい。なおこの場合に、事前に、入力画像の周辺部に設定された特徴点の分類情報を背景特徴点に設定しておき、先頭１フレームでも分類情報を基準にして背景の山を検出するようにしてもよい。
【０１５５】
また上述の実施例においては、当初設定した総合の特徴点数を１フレームの特徴点数が越えない範囲で、特徴点を追加設定する場合について述べたが、本発明はこれに限らず、当初設定した総合の特徴点数とは異なる一定数を越えない範囲としてもよく、またさらには十分な処理速度を確保することができる場合には、このような１フレームの特徴点数による処理の制限を取り除くようにしてもよい。なおこのように１フレームの特徴点数による処理の制限を取り除いた場合には、特徴点が不足するブロックの全てに、不足する数の特徴点を設定することになる。従ってこの場合は、特徴点の不足するブロックにおける処理順序の設定、グループ内のランダマイズ処理等は、省略することができる。
【０１５６】
また上述の実施例においては、ＫＬＴの特徴点追跡法によって特徴点を削除して特徴点の集中を防止する場合について述べたが、本発明はこれに限らず、別途、特徴点数を判定して特徴点を削除し、特徴点の集中を防止するようにしてもよい。
【０１５７】
また上述の実施例においては、ＫＬＴ法により特徴点を追跡して動きベクトルを検出する場合について述べたが、本発明はこれに限らず、ＫＬＴ法以外の特徴点の追跡法、特徴点を用いた動きベクトル検出手法を広く適用することができる。
【０１５８】
また上述の実施例においては、動きベクトルを用いて手振れ補正する場合について述べたが、本発明はこれに限らず、例えば侵入者を監視する場合等、動きベクトルを用いた種々の画像処理に広くに適用することができる。
【産業上の利用可能性】
【０１５９】
本発明は、動き検出方法、動き検出方法のプログラム、動き検出方法のプログラムを記録した記録媒体及び動き検出装置に関し、例えば動きベクトルを用いた手振れ補正処理に適用することができる。
【図面の簡単な説明】
【０１６０】
【図１】本発明の実施例１の手触れ補正装置における背景ピーク検出処理を示すフローチャートである。
【図２】本発明の実施例１の手触れ補正装置を示すブロック図である。
【図３】図２の手振れ補正装置における中央処理ユニットの処理手順を示すフローチャートである。
【図４】図３の処理手順による手振れ補正の説明に供する特性曲線図である。
【図５】補正ベクトルによる補正を示す略線図である。
【図６】図３の処理手順による機能ブロック図である。
【図７】図６とは異なる例による機能ブロック図である。
【図８】図３の処理手順におけるフレーム間カメラ動き算出処理を詳細に示すフローチャートである。
【図９】図８の処理手順による機能ブロック図である。
【図１０】図８の処理手順における動きベクトル算出処理を詳細に示すフローチャートである。
【図１１】図１０の処理手順による機能ブロック図である。
【図１２】図１０の処理手順の説明に供する略線図である。
【図１３】特徴点の設定の説明に供する略線図である。
【図１４】特徴点の追跡による動きベクトル検出の説明に供する略線図である。
【図１５】特徴点の増減の説明に供する略線図である。
【図１６】特徴点の追加の説明に供する略線図である。
【図１７】図１０の処理手順による機能ブロック図である。
【図１８】図１０の処理手順における特徴点選択を詳細に示すフローチャートである。
【図１９】図１８の続きを示すフローチャートである。
【図２０】図１８の処理手順の説明に供する図表である。
【図２１】図１８及び図１９の処理手順による機能ブロック図である。
【図２２】図１９の処理手順における特徴点抽出処理を詳細に示すフローチャートである。
【図２３】図２２の処理手順による機能ブロック図である。
【図２４】特徴点情報を示す図表である。
【図２５】動きベクトル解析処理を詳細に示すフローチャートである。
【図２６】図２５の動きベクトル解析処理におけるピーク抽出処理の説明に供する特性曲線図である。
【図２７】図２６のピーク抽出処理の説明に供する略線図である。
【図２８】図２７の例によるヒストグラムを示す特性曲線図である。
【図２９】背景の面積が低下する場合の説明に供する略線図である。
【図３０】図２０の例によるヒストグラムを示す特性曲線図である。
【図３１】図２５の動きベクトル解析処理における特徴点分類更新処理の説明に供する略線図である。
【図３２】図２５の処理手順による機能ブロック図である。
【図３３】図２５の動きベクトル解析処理における背景部動きベクトル算出処理の説明に供するフローチャートである。
【図３４】図３３の処理手順による機能ブロック図である。
【図３５】被写体と背景との関係の説明に供する略線図である。
【図３６】図３５の例によるヒストグラムを示す特性曲線図である。
【図３７】背景の面積が低下する場合の説明に供する略線図である。
【図３８】背景の動きと被写体の動きとが似通った場合の説明に供する略線図である。
【符号の説明】
【０１６１】
１……手振れ補正装置、２……テレビジョンカメラ、４……中央処理ユニット、２２……フレーム間カメラ動き算出部、２５……手振れ補正補間部、３１……動きベクトル算出部、３２……動きベクトル解析部、３３……カメラ動き算出部、４３……特徴点抽出手段、４４……特徴点統合モジュール、４６……特徴点追跡手段、４７……特徴点動きベクトル算出手段、５１……ヒストグラム算出部、５２……ピーク抽出部、５３……背景ピーク検出部、５４……特徴点分類更新部、５５……背景部動きベクトル検出部、７１……動きベクトル整理部、７２……背景部の平均ベクトル計算部
【図１】
2007336235.tif 000004
【図２】
2007336235.tif 000005
【図３】
2007336235.tif 000006
【図４】
2007336235.tif 000007
【図５】
2007336235.tif 000008
【図６】
2007336235.tif 000009
【図７】
2007336235.tif 000010
【図８】
2007336235.tif 000011
【図９】
2007336235.tif 000012
【図１０】
2007336235.tif 000013
【図１１】
2007336235.tif 000014
【図１２】
2007336235.tif 000015
【図１３】
2007336235.tif 000016
【図１４】
2007336235.tif 000017
【図１５】
2007336235.tif 000018
【図１６】
2007336235.tif 000019
【図１７】
2007336235.tif 000020
【図１８】
2007336235.tif 000021
【図１９】
2007336235.tif 000022
【図２０】
2007336235.tif 000023
【図２１】
2007336235.tif 000024
【図２２】
2007336235.tif 000025
【図２３】
2007336235.tif 000026
【図２４】
2007336235.tif 000027
【図２５】
2007336235.tif 000028
【図２６】
2007336235.tif 000029
【図２７】
2007336235.tif 000030
【図２８】
2007336235.tif 000031
【図２９】
2007336235.tif 000032
【図３０】
2007336235.tif 000033
【図３１】
2007336235.tif 000034
【図３２】
2007336235.tif 000035
【図３３】
2007336235.tif 000036
【図３４】
2007336235.tif 000037
【図３５】
2007336235.tif 000038
【図３６】
2007336235.tif 000039
【図３７】
2007336235.tif 000040
【図３８】
2007336235.tif 000041