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