(57)【要約】【課題】本発明は、手振れ補正方法、手振れ補正方法のプログラム、手振れ補正方法のプログラムを記録した記録媒体及び手振れ補正装置に関し、例えば動きベクトルを用いた手振れ補正処理に適用して、ユーザーの意図したカメラワークとなるように手振れ補正する。【解決手段】本発明は、撮像結果のフィールド間又はフレーム間の動きから検出される撮像結果の動きの軌跡からユーザーが意図したカメラワークの軌跡を推定し、このカメラワークの軌跡となるように、撮像結果のフィールド間又はフレーム間の動きを補正する。【選択図】        図１
2008005109.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置で取得した撮像結果の手振れを補正する手振れ補正方法において、
前記撮像結果のフィールド間又はフレーム間の動きを検出する動き検出のステップと、
前記動き検出のステップで検出した前記撮像結果の動きから、前記撮像結果のシーン毎に、前記撮像結果の動きの軌跡を検出する軌跡検出のステップと、
前記撮像結果の動きの軌跡から、ユーザーが意図したと考えられるカメラワークによる前記撮像結果の動きの軌跡であるカメラワークの軌跡を推定するカメラワーク推定のステップと、
前記撮像結果の動きの軌跡が前記カメラワークの軌跡となるように、前記撮像結果のフィールド間又はフレーム間の動きを補正する手振れ補正のステップとを有する
ことを特徴とする手振れ補正方法。
【請求項２】
前記動き検出のステップは、
前記撮像結果の各部の動きベクトルを検出する動きベクトル検出のステップと、
前記動きベクトルを処理して、前記撮像結果のフィールド間又はフレーム間の動きを検出する動きベクトル処理のステップとを有する
ことを特徴とする請求項１に記載の手振れ補正方法。
【請求項３】
前記手振れ補正のステップは、
前記軌跡検出のステップで検出した前記撮像結果の動きの軌跡と前記カメラワークの軌跡とから手振れ補正用ベクトルを検出する手振れ補正用ベクトル検出のステップと、
前記手振れ補正用ベクトルで前記撮像結果の各フィールド又は各フレームの表示位置を変位させる動き補正のステップとを有する
ことを特徴とする請求項２に記載の手振れ補正方法。
【請求項４】
前記フィールド間又はフレーム間の前記撮像結果の動きが、前記撮像装置の向き及び又は位置の変化による撮影している箇所の変化、及び又は撮影している倍率の変化である
ことを特徴とする請求項１に記載の手振れ補正方法。
【請求項５】
前記軌跡検出のステップは、
シーン先頭のフィールド又はフレームを基準にした前記撮像結果の動きにより、前記撮像結果の動きの軌跡を検出する
ことを特徴とする請求項１に記載の手振れ補正方法。
【請求項６】
前記カメラワーク推定のステップは、
手振れ補正に許容される許容値を越えない範囲で、前記撮像結果の動きの軌跡を折れ線又は曲線に近似して前記カメラワークの軌跡を推定する
ことを特徴とする請求項１に記載の手振れ補正方法。
【請求項７】
前記カメラワーク推定のステップは、
前記撮像結果の軌跡を折れ線で表す折れ線化のステップと、
データベースに記録された巧いカメラワークであるとされる評価基準に基づいて、前記折れ線の巧いカメラワークである程度を示す評価値を検出する評価値検出のステップと、
前記評価値が増大するように前記折れ線を補正して、前記カメラワークの軌跡を生成する軌跡生成のステップとを有する
ことを特徴とする請求項１に記載の手振れ補正方法。
【請求項８】
前記評価値検出のステップは、
前記折れ線の直線のうちで、前記水平方向及び又は垂直方向に延長する直線の水平線及び又は垂直線に対する傾きが増大するに従って前記評価値が低下するように、前記評価値を生成する
ことを特徴とする請求項７に記載の手振れ補正方法。
【請求項９】
前記評価値検出のステップは、
前記折れ線における直線の隣接する直線との成す角度が鋭角になるに従って前記評価値が低下するように、前記評価値を生成する
ことを特徴とする請求項７に記載の手振れ補正方法。
【請求項１０】
撮像装置で取得した撮像結果の手振れを補正する手振れ補正方法のプログラムにおいて、
前記撮像結果のフィールド間又はフレーム間の動きを検出する動き検出のステップと、
前記動き検出のステップで検出した前記撮像結果の動きから、前記撮像結果のシーン毎に、前記撮像結果の動きの軌跡を検出する軌跡検出のステップと、
前記動きの軌跡から、ユーザーが意図したと考えられるカメラワークによる前記撮像結果の動きの軌跡であるカメラワークの軌跡を推定するカメラワーク推定のステップと、
前記撮像結果の動きの軌跡が前記カメラワークの軌跡となるように、前記撮像結果のフィールド間又はフレーム間の動きを補正する手振れ補正のステップとを有する
ことを特徴とする手振れ補正方法のプログラム。
【請求項１１】
撮像装置で取得した撮像結果の手振れを補正する手振れ補正方法のプログラムを記録した記録媒体において、
前記手振れ補正方法のプログラムは、
前記撮像結果のフィールド間又はフレーム間の動きを検出する動き検出のステップと、
前記動き検出のステップで検出した前記撮像結果の動きから、前記撮像結果のシーン毎に、前記撮像結果の動きの軌跡を検出する軌跡検出のステップと、
前記動きの軌跡から、ユーザーが意図したと考えられるカメラワークによる前記撮像結果の動きの軌跡であるカメラワークの軌跡を推定するカメラワーク推定のステップと、
前記撮像結果の動きの軌跡が前記カメラワークの軌跡となるように、前記撮像結果のフィールド間又はフレーム間の動きを補正する手振れ補正のステップとを有する
ことを特徴とする手振れ補正方法のプログラムを記録した記録媒体。
【請求項１２】
撮像装置で取得した撮像結果の手振れを補正する手振れ補正装置において、
前記撮像結果のフィールド間又はフレーム間の動きを検出する動き検出部と、
前記動き検出部で検出した前記撮像結果の動きから、前記撮像結果のシーン毎に、前記撮像結果の動きの軌跡を検出する軌跡検出部と、
前記動きの軌跡から、ユーザーが意図したと考えられるカメラワークによる前記撮像結果の動きの軌跡であるカメラワークの軌跡を推定するカメラワーク推定部と、
前記撮像結果の動きの軌跡が前記カメラワークの軌跡となるように、前記撮像結果のフィールド間又はフレーム間の動きを補正する手振れ補正部とを有する
ことを特徴とする手振れ補正装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、手振れ補正方法、手振れ補正方法のプログラム、手振れ補正方法のプログラムを記録した記録媒体及び手振れ補正装置に関し、例えば動きベクトルを用いた手振れ補正処理に適用することができる。本発明は、撮像結果のフィールド間又はフレーム間の動きから検出される撮像結果の動きの軌跡からユーザーが意図したカメラワークの軌跡を推定し、このカメラワークの軌跡となるように、撮像結果のフィールド間又はフレーム間の動きを補正することにより、ユーザーの意図したカメラワークとなるように手振れ補正することができるようにする。
【背景技術】
【０００２】
従来、手振れ補正処理は、ビデオカメラに搭載された各種センサでカメラの手振れを検出して補正する方法と、撮像結果から動きベクトルを検出して補正する方法とが知られている。
【０００３】
ここで前者の方法は、リアルタイム処理、オンライン処理と呼ばれ、手振れ補正機構が撮像装置に搭載されることから、手振れ補正機構に関して、回路規模、処理能力等の制約、限界がある。この方法は、フレーム間の撮像装置の動きを例えばジャイロを用いて加速度の変化で検出する。また撮像装置の動きのうちで、低周波成分がカメラワークによるものであり、高周波成分が手振れによるものであるとして、手振れ補正している。
【０００４】
これに対して後者の方法は、例えば特開２００４−２２９０８４号公報に提案されており、撮像結果をパソコン、画像処理装置等に取り込んで処理することを想定した方法である。従ってリアルタイム性は特に必要とされていないため、前者の方法に比して、より時間を掛けて、複雑かつ精度の高い処理を実行することができる。この後者の方法は、センサに代えて、撮像結果から検出した動きベクトルを用いて撮像装置の動きを検出しており、検出した撮像結果の動きを、前者の方法とほぼ同一に処理して手振れ補正している。
【０００５】
ところで従来の手振れ補正処理では、必ずしもユーザーの意図したカメラワークとなるように手振れ補正できない問題がある。
【０００６】
すなわち例えば図５３に示すように、遠くの山並みによる風景１を手持ちのビデオカメラ２で撮影して、ビデオカメラ２を左から右にパンさせるとする。この場合、ビデオカメラ２が手持ちであることから、手振れの発生を避け得ず、符号Ａでビデオカメラ２の動きを示すように、ビデオカメラ２は、細かく上下動しながら左から右にパンすることになる。従って風景１を撮影する画枠３も、矢印Ｂで示すように、このビデオカメラ２の動きに対応して細かく上下動しながら左から右に移動することになる。
【０００７】
ここで図５４は、撮像結果の上下動を示す特性曲線図である。図５３で説明したように、細かく上下動しながら左から右にビデオカメラ２がパンした場合、このビデオカメラ２で得られる撮像結果は、符号Ｃで示すように細かく上下動していることになる。ここでこの上下動の高周波成分を除去するように動き補正して手振れ補正すると、符号Ｄで示すような手振れ補正結果を得ることができる。
【０００８】
ここで一般ユーザーが撮像装置を操作する場合、手振れによる細かな動きの他に、大きな揺れが存在し、高周波成分を除去するように動き補正して手振れ補正した場合には、目障りな細かな動きは補正されるものの、この大きな揺れが残ってしまい、符号Ｄで示す手振れ補正結果では、画枠がゆっくりと上下動しながらパンすることになる。
【０００９】
これに対してプロのカメラマンが撮影する場合、三脚に固定して撮影する場合には、このような大きな揺れは発生し得ず、符号Ｅにより示すように、何ら上下動することなくビデオカメラ２をパンさせることができる。
【００１０】
この場合、ユーザーは、この符号Ｅで示すプロのカメラマンが撮影する場合のように意図してビデオカメラ２を操作したにも係わらず、手振れ補正結果は、符号Ｄで示すようにゆっくりと上下動しながらパンすることになり、意図した通りに手振れ補正できないことになる。
【特許文献１】特開２００４−２２９０８４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は以上の点を考慮してなされたもので、ユーザーの意図したカメラワークとなるように手振れ補正することができる手振れ補正方法、手振れ補正方法のプログラム、手振れ補正方法のプログラムを記録した記録媒体及び手振れ補正装置を提案しようとするものである。
【課題を解決するための手段】
【００１２】
上記の課題を解決するため請求項１の発明は、撮像装置で取得した撮像結果の手振れを補正する手振れ補正方法に適用して、前記撮像結果のフィールド間又はフレーム間の動きを検出する動き検出のステップと、前記動き検出のステップで検出した前記撮像結果の動きから、前記撮像結果のシーン毎に、前記撮像結果の動きの軌跡を検出する軌跡検出のステップと、前記撮像結果の動きの軌跡から、ユーザーが意図したと考えられるカメラワークによる前記撮像結果の動きの軌跡であるカメラワークの軌跡を推定するカメラワーク推定のステップと、前記撮像結果の動きの軌跡が前記カメラワークの軌跡となるように、前記撮像結果のフィールド間又はフレーム間の動きを補正する手振れ補正のステップとを有するようにする。
【００１３】
また請求項１０の発明は、撮像装置で取得した撮像結果の手振れを補正する手振れ補正方法のプログラムに適用して、前記撮像結果のフィールド間又はフレーム間の動きを検出する動き検出のステップと、前記動き検出のステップで検出した前記撮像結果の動きから、前記撮像結果のシーン毎に、前記撮像結果の動きの軌跡を検出する軌跡検出のステップと、前記動きの軌跡から、ユーザーが意図したと考えられるカメラワークによる前記撮像結果の動きの軌跡であるカメラワークの軌跡を推定するカメラワーク推定のステップと、前記撮像結果の動きの軌跡が前記カメラワークの軌跡となるように、前記撮像結果のフィールド間又はフレーム間の動きを補正する手振れ補正のステップとを有するようにする。
【００１４】
また請求項１１の発明は、撮像装置で取得した撮像結果の手振れを補正する手振れ補正方法のプログラムを記録した記録媒体に適用して、前記手振れ補正方法のプログラムは、前記撮像結果のフィールド間又はフレーム間の動きを検出する動き検出のステップと、前記動き検出のステップで検出した前記撮像結果の動きから、前記撮像結果のシーン毎に、前記撮像結果の動きの軌跡を検出する軌跡検出のステップと、前記動きの軌跡から、ユーザーが意図したと考えられるカメラワークによる前記撮像結果の動きの軌跡であるカメラワークの軌跡を推定するカメラワーク推定のステップと、前記撮像結果の動きの軌跡が前記カメラワークの軌跡となるように、前記撮像結果のフィールド間又はフレーム間の動きを補正する手振れ補正のステップとを有するようにする。
【００１５】
また請求項１２の発明は、撮像装置で取得した撮像結果の手振れを補正する手振れ補正装置に適用して、前記撮像結果のフィールド間又はフレーム間の動きを検出する動き検出部と、前記動き検出部で検出した前記撮像結果の動きから、前記撮像結果のシーン毎に、前記撮像結果の動きの軌跡を検出する軌跡検出部と、前記動きの軌跡から、ユーザーが意図したと考えられるカメラワークによる前記撮像結果の動きの軌跡であるカメラワークの軌跡を推定するカメラワーク推定部と、前記撮像結果の動きの軌跡が前記カメラワークの軌跡となるように、前記撮像結果のフィールド間又はフレーム間の動きを補正する手振れ補正部とを有するようにする。
【００１６】
請求項１、請求項９、請求項１０、又は請求項１１の構成によれば、動きの軌跡から、ユーザーが意図したと考えられるカメラワークの軌跡を推定し、このカメラワークの軌跡となるように撮像結果の動きを補正することから、動き補正した撮像結果は、ユーザーが意図したと推定されるカメラワークによるものとなる。従ってユーザーに意図したカメラワークとなるように手振れ補正することができる。
【発明の効果】
【００１７】
本発明によれば、ユーザーに意図したカメラワークとなるように手振れ補正することができる。
【発明を実施するための最良の形態】
【００１８】
以下、適宜図面を参照しながら本発明の実施例を詳述する。
【実施例１】
【００１９】
（１）実施例の構成
図２は、本発明の実施例１の画像処理装置である手振れ補正装置を示すブロック図である。この手振れ補正装置１は、ビデオカメラ２で撮影したビデオ信号ＳＶをダウンロードしてハードディスク装置（ＨＤＤ）３に記録する。またこのハードディスク装置３に記録したビデオ信号ＳＶを手振れ補正して外部機器に出力する。
【００２０】
ここでこの手振れ補正装置１において、中央処理ユニット（ＣＰＵ）４は、リードオンリメモリ（ＲＯＭ）５の記録に従ってランダムアクセスメモリ（ＲＡＭ）６にワークエリアを確保してハードディスク装置３に記録された所定の処理プログラムを実行し、ビデオ信号ＳＶの手振れ補正処理を実行する。またこの一連の処理において、モニタ９にグラフカルユーザーインターフェースを表示してユーザーの操作を受け付け、さらには手振れ補正結果を表示する。インターフェース（Ｉ／Ｆ）１０は、このビデオ信号ＳＶの入出力に係る入出力回路である。なおこの中央処理ユニット４が実行するプログラムは、この手振れ補正装置１に事前にインストールして提供するようにしてもよく、またこれに代えて光ディスク、磁気ディスク、メモリカード等の各種記録媒体に記録して提供するようにしてもよく、さらにはインターネット等のネットワークを介したダウンロードにより提供するようにしてもよい。
【００２１】
図３は、この中央処理ユニット４の処理手順を示すフローチャートである。中央処理ユニット４は、オペレータの操作に従ってこの処理手順を開始し、ステップＳＰ１からステップＳＰ２に移る。このステップＳＰ２で、中央処理ユニット４は、ユーザーの指示したビデオ信号ＳＶのファイルをビデオカメラ２からダウンロードしてハードディスク装置３に格納する。
【００２２】
また中央処理ユニット４は、続くステップＳＰ３のフレーム間カメラ動き算出処理により、ハードディスク装置３にダウンロードしたビデオ信号ＳＶを処理し、ビデオカメラ２の動きをビデオ信号ＳＶの画像上で示すカメラ動きベクトルＭＶＣＴを検出する。すなわち中央処理ユニット４は、ハードディスク装置３にダウンロードしたビデオ信号ＳＶをＩＰ変換して順次フレーム単位で読み出しながら、フレーム間で動きベクトルを検出する。なおここでＩＰ変換は、インターレーススキャンからプログレッシブスキャンへの変換であり、ハードディスク装置３へのダウンロード時に実行してもよい。
【００２３】
さらに中央処理ユニット４は、検出した動きベクトルを処理して、図４に示すように、ビデオ信号ＳＶによる入力画像２１上でカメラの動きを示すカメラ動きベクトルＭＶＣを検出する。なお図４は、入力画像２１、処理結果である出力画像２４におけるカメラの動きを水平方向のみについて示す図である。このカメラ動きベクトルＭＶＣは、手振れとカメラワークとによるテレビジョンカメラの動きをビデオ信号ＳＶの画像上で示すことになる。
【００２４】
さらに中央処理ユニット４は、続くステップＳＰ４において、この検出したカメラ動きベクトルＭＶＣを処理して、カメラ動きベクトルＭＶＣから手振れ成分を除いたカメラワークのみによるカメラ動きベクトルＭＶＣＴを計算する。中央処理ユニット４は、手振れとカメラワークとによるカメラ動きベクトルＭＶＣと、カメラワークのみによるカメラ動きベクトルＭＶＣＴとをカメラ動き情報としてメモリに記録して保持する。なおこの図４は、カメラ動きベクトルＭＶＣを平滑化してカメラワークのみによるカメラ動きベクトルＭＶＣＴを求めた例であり、この実施例におけるカメラワークのみによるカメラ動きベクトルＭＶＣＴの求め方の詳細は、後述する。
【００２５】
このステップＳＰ４において、中央処理ユニット４は、さらにカメラ動きベクトルＭＶＣ、ＭＶＣＴを用いて、手振れ補正用の補正ベクトルΔＭＶを順次計算する。また図５に示すように、ハードディスク装置３に記録したビデオ信号ＳＶを順次読み出して補正ベクトルΔＭＶで動き補正し、出力画像２４を生成する。なお中央処理ユニット４は、この動き補正処理によって入力画像２１を割り当てることが困難となった部位（図５でハッチングで示す領域）については、この部位を切り捨て、出力画像２４のサイズに合うようにスケーリングする。なおこの場合、この部位を黒レベルに設定し、違和感を防止するようにしてもよい。
【００２６】
中央処理ユニット４は、このステップＳＰ４の処理により手振れ補正したビデオ信号を生成し、続くステップＳＰ５で、このビデオ信号をモニタ装置等の外部機器に出力した後、ステップＳＰ６に移ってこの処理手順を終了する。
【００２７】
この図２に示す処理手順の実行により、中央処理ユニット４は、図６に示す機能ブロックを構成する。なおここでフレーム間カメラ動き情報検出部２２は、ステップＳＰ３の処理に対応する機能ブロックであり、ビデオ信号ＳＶによる入力画像２１から手振れ及びカメラワークによるカメラ動きベクトルＭＶＣを検出し、カメラ動きベクトルＭＶＣをカメラ動き情報としてメモリ２３に格納する。また手振れ補正補間部２５は、ステップＳＰ４の処理に対応する機能ブロックであり、メモリ２３に格納したカメラ動き情報ＭＶＣを用いて補正ベクトルΔＭＶを計算して入力画像２１を手振れ補正する。なお図６との対比により図７に示すように、ビデオ信号ＳＶによる入力画像２１の全フレームからカメラ動きベクトルＭＶＣを検出した後、改めて入力画像２１の手振れを補正する代わりに、カメラ動きベクトルＭＶＣを検出した入力画像２１をフレームメモリ２６に保持して手振れ補正するようにして、所定フレーム数単位で、カメラ動きベクトルＭＶＣを検出しながら入力画像２１を手振れ補正してもよい。
【００２８】
図８は、図３のステップＳＰ３の処理手順を詳細に示すフローチャートである。中央処理ユニット４は、この処理手順を開始すると、ステップＳＰ１１からステップＳＰ１２に移り、動きベクトル算出処理を実行する。中央処理ユニット４は、この動きベクトル算出処理により、ＩＰ変換しながら入力画像２１を入力し、ＫＬＴ法を利用した特徴点の追跡により入力画像２１の各部で動きベクトルを検出する。
【００２９】
また続くステップＳＰ１３における動きベクトル解析処理により、中央処理ユニット４は、ステップＳＰ１２で検出した動きベクトルを解析する。中央処理ユニット４は、この動きベクトルの解析において、ステップＳＰ１２で検出した１フレームの動きベクトルを集計して２次元のヒストグラムを求める。
【００３０】
また中央処理ユニット４は、このヒストグラムから、背景に相当する動きベクトルのグループを検出する。具体的に、中央処理ユニット４は、このヒストグラムから度数分布のピーク値の個所を検出することにより、最もサンプル数が多く集中している動きベクトルのグループを検出し、このグループを背景のグループとする。中央処理ユニット４は、続くステップＳＰ１４のカメラ動き計算処理で、この背景のグループに属する動きベクトルを平均値化し、手振れ及びカメラワークによるカメラ動きベクトルＭＶＣを計算する。従ってこの実施例では、入力画像中で背景が最も大きな面積を占めるとの仮定に基づいて背景を検出し、この背景の動きからカメラ動きベクトルＭＶＣを検出する。
【００３１】
続いて中央処理ユニット４は、ステップＳＰ１５に移り、全てのフレームの処理を完了したか否か判断する。ここで否定結果が得られると、中央処理ユニット４は、ステップＳＰ１６に移り、動きベクトルの検出対象を次フレームに設定した後、ステップＳＰ１２に戻り、動きベクトル検出処理を実行する。これに対してステップＳＰ１５で肯定結果が得られると、ステップＳＰ１５からステップＳＰ１７に移ってこの処理手順を終了する。
【００３２】
この図８の処理手順の実行により、中央処理ユニット４は、図９に示す機能ブロックを構成する。ここで動きベクトル算出部３１は、ステップＳＰ１２の処理に対応する機能ブロックであり、入力画像２１の各部で動きベクトルを検出する。また動きベクトル解析部３２は、ステップＳＰ１３に対応する機能ブロックであり、動きベクトル算出部３１で算出した動きベクトルを解析してヒストグラムを計算し、背景の動きベクトルを検出する。カメラ動き算出部３３は、ステップＳＰ１４に対応する機能ブロックであり、手振れ及びカメラワークによるカメラ動きベクトルＭＶＣを計算する。
【００３３】
（１−１）動きベクトル算出処理
図１０は、図８におけるステップＳＰ１２の動きベクトル算出処理を詳細に示すフローチャートである。中央処理ユニット４は、この処理手順を開始すると、ステップＳＰ２１からステップＳＰ２２に移る。ここで中央処理ユニット４は、ハードディスク装置３から１フレーム分のビデオ信号ＳＶを入力して現フレームに設定する。
【００３４】
また続くステップＳＰ２３において、中央処理ユニット４は、ブロックリストを作成する。ここで図１２（Ａ）に示す入力画像２１との対比により図１２（Ｂ）に示すように、中央処理ユニット４は、この動きベクトル算出処理において、入力画像を水平方向及び垂直方向に複数のブロックに分割し、各ブロックに設定した特徴点の追跡により動きベクトルを検出する。より具体的に、中央処理ユニット４は、１つのブロックにＮｆｐ個の特徴点を設定し、１フレームでＮｔｏｔ個の特徴点を設定する。入力画像２１がＶＧＡ（Video Graphics Array）サイズの場合、各ブロックの特徴点数Ｎｆｐ及び１フレームの特徴点数Ｎｔｏｔは、それぞれ２０個及び３００個に設定される。従って中央処理ユニット４は、入力画像２１がＶＧＡサイズの場合、この入力画像を水平方向及び垂直方向にそれぞれ５分割及び３分割して１５（＝３００／２０）個のブロックを設定する。なお図面上では、水平方向及び垂直方向に６個及び４個に分割して示す。
【００３５】
ブロックリストは、このようにして設定した各ブロックに関する情報を記録したリストであり、この実施例では各ブロックの位置情報、大きさの情報、特徴点の数等が含まれる。なおここで各ブロックの位置情報は、例えば各ブロックのラスタ操作開始端の座標Ｃｉ（ｘ、ｙ）であり、大きさの情報は、水平方向及び垂直方向の画素数Ｓｉ（ｘ、ｙ）である。なおここで（ｘ、ｙ）は、ラスタ走査の開始端のブロックを基準にして水平方向及び垂直方向のブロックの位置を示す変数である。
【００３６】
従ってビデオ信号ＳＶの先頭１フレームを処理する場合、ブロックリストには、分割した各ブロックに何ら特徴点が設定されていないことが記録される。これに対して先頭１フレーム以外では、現フレームで各ブロックに含まれている特徴点の数がそれぞれ各ブロックに記録されてブロックリストが作成される。
【００３７】
なお中央処理ユニット４は、先頭１フレーム以外のフレームでは、前フレームのブロックリストのコピーを取り、このブロックリストの内容を更新してブロックリストを作成する。
【００３８】
続いて中央処理ユニット４は、ステップＳＰ２４に移り、現フレームが初期フレームか否か、すなわち現フレームが先頭１フレームか否か判断する。
【００３９】
ここで肯定結果が得られると、中央処理ユニット４は、ステップＳＰ２４からステップＳＰ２５に移り、特徴点選択処理を実行する。ここで特徴点選択処理は、全体の特徴点数が１フレームの特徴点数Ｎｔｏｔを越えない範囲で、特徴点数の少ないブロックから順次特徴点を設定する処理である。従って初期フレームでは、何れのブロックにも特徴点が設定されておらず、また全体の特徴点数も０個であることから、中央処理ユニット４は、各ブロックにそれぞれＮｆｐ個の特徴点を設定する。従って初期フレームの場合、特徴点選択処理は、各ブロックに一定数Ｎｆｐの特徴点を設定する特徴点初期設定処理を構成する。
【００４０】
これに対して先頭１フレーム以外のフレームでは、既に特徴点が存在することから、中央処理ユニット４は、このステップＳＰ２５において、このように全体の特徴点数が１フレームの特徴点数Ｎｔｏｔを越えない範囲で、特徴点数の少ないブロックから順次特徴点を設定することにより、ブロック間における特徴点の分布の偏りを補正する。すなわち例えば図１３において、矢印Ａにより示すように画面左側から右側に移動する人物を追跡するように、矢印Ｂにより示すようにカメラ全体をパンさせたとする。この場合、図１３との対比により図１４に示すように、画面左隅の符号ＰＡで示す特徴点は、カメラのパンにより現フレームで検出できなくなる。またこの画面左隅では、それまで人物に隠れていた背景が現れることなる。従ってこの画面左隅のブロックでは、続くフレームで特徴点を追跡できなくなり、続くフレームを現フレームとして処理する際に特徴点の数が減少することになる。
【００４１】
また符号ＰＢで示す画面中央の特徴点は、人物の移動により人物によって隠れるようになり、これらの特徴点も現フレームでは検出できなくなる。またこの場合、人物の移動によりこの人物で隠される部分のブロックでは、人物の移動に伴って前フレームの特徴点が含まれるようになる。その一方で、カメラのパンにより背景側の特徴点が、この人物で隠された部分のブロックに含まれるようになり、この部分のブロックでは前フレームより特徴点が増大することになる。また画面右隅のブロックも、それまで前フレームでは画面の外側に位置していた背景が現フレームで撮影されることになることから、特徴点の数が減少することになる。これにより特徴点の空間的な分布に偏りが生じ、動きベクトルの検出に偏りが発生する。
【００４２】
そこで中央処理ユニット４は、追跡困難となった特徴点を削除し、またＫＬＴ法による特徴点の追跡により隣接する特徴点との間の距離が短くなった特徴点を削除する。またこれらの削除により１フレームの特徴点数Ｎｔｏｔに不足する特徴点を追加設定するようにして、この特徴点の追加設定において、特徴点の分布の偏りを補正する。具体的に、図１４との対比により図１５に示すように、例えば各ブロックの特徴点数Ｎｆｐが値２の場合に、特徴点数が１以下のブロックについて、中央処理ユニット４は、図１６に示すように、特徴点を追加設定する。これにより各ブロックは、特徴点数が元の数２に近づくように特徴点が追加設定され、特徴点の分布の偏りが補正される。なおこの図１６では、特徴点を追加設定するブロックをハッチングにより示す。なおＫＬＴ法による隣接する特徴点との間の距離が短くなった特徴点の削除は、事前に、ステップＳＰ２８の特徴点追跡、動きベクトル計算処理により実行する。この特徴点の削減手法は、現フレームに一定距離以上近接した特徴点が複数存在する場合、特徴度の低い側の特徴点を削除する処理である。特徴度については、特徴点抽出処理で詳述する。
【００４３】
中央処理ユニット４は、処理対象画像をブロックに分割して各ブロックに特徴点を設定して動きベクトルを検出するようにして、この特徴点選択処理により各ブロックで変化する特徴点数を補正し、特徴点の分布の偏りを補正する。中央処理ユニット４は、このステップＳＰ２５の処理を実行すると、ステップＳＰ２６に移り、現フレームを前フレームに設定した後、ステップＳＰ２７に移ってこの処理手順を終了する。
【００４４】
これに対して先頭１フレーム以外では、ステップＳＰ２４で否定結果が得られることにより、中央処理ユニット４は、ステップＳＰ２４からステップＳＰ２８に移る。
【００４５】
このステップＳＰ２８で、中央処理ユニット４は、前フレームの各ブロックに設定されている特徴点を追跡して現フレーム上で対応する特徴点を検出する。また図１４に示すように、この対応する特徴点と前フレームの特徴点との間の差分値を検出することにより、各特徴点の動きベクトルＭＶを計算し、この動きベクトルＭＶをメモリ２３に記録して保持する。このとき特徴点の追跡により、現フレームに一定距離以上近接した特徴点が存在する場合、特徴度の低い側の特徴点を削除する。なお特徴度に代えて、特徴点としての信頼性を示す信頼度を基準にして削除してもよく、ランダムに削除してもよい。また追跡困難な特徴点についても、削除する。
【００４６】
続いて中央処理ユニット４は、ステップＳＰ２５に移り、各ブロックにおける特徴点の分布の偏りを補正した後、ステップＳＰ２６の処理手順を実行し、ステップＳＰ２７に移ってこの処理手順を終了する。
【００４７】
この図１０に示す処理手順の実行により、中央処理ユニット４は、図１１に示す機能ブロックを構成する。ここでフレーム読み込みモジュール４１は、図１０のステップＳＰ２２に対応する機能ブロックであり、新たに取得した処理対象のフレームを現フレームに設定する。ブロック分割モジュール４２は、ステップＳＰ２３に対応する機能ブロックであり、現フレームの画像を複数のブロックに分割し、ブロックリストを作成する。特徴点総合モジュール４４は、ステップＳＰ２５及びＳＰ２８に対応する機能ブロックであり、特徴点抽出手段４３は、特徴度に基づいて特徴点を選択する機能ブロックである。反復準備モジュール４５は、ステップＳＰ２６に対応する機能ブロックである。なおここで特徴点情報は、各特徴点の現フレームにおける座標、動きベクトル等の情報である。
【００４８】
また特徴点総合モジュール４４は、図１７に示すように、ステップＳＰ２８における特徴点追跡処理と動きベクトル計算処理とにそれぞれ対応する特徴点追跡手段４６及び特徴点動きベクトル算出手段４７の機能ブロックと、ステップＳＰ２５の処理に対応する特徴点選択手段４８の機能ブロックとを構成する。この実施例ではこの特徴点総合モジュール４４における処理に、ＫＬＴ法が利用される。
【００４９】
図１８及び図１９は、図１０のステップＳＰ２５で説明した特徴点選択処理を詳細に示すフローチャートである。中央処理ユニット４は、この処理手順を開始すると、ステップＳＰ３１からステップＳＰ３２に移る。ここで中央処理ユニット４は、現フレームの特徴点数が１フレームの特徴点数Ｎｔｏｔ未満か否か判断する。ここで中央処理ユニット４は、特徴点追跡、動きベクトル計算処理で特徴点が削除されている場合、このステップＳＰ３２で肯定結果を得ることができる。
【００５０】
これにより中央処理ユニット４は、このステップＳＰ３２で否定結果が得られると、ステップＳＰ３２からステップＳＰ３３に移ってこの処理手順を終了する。
【００５１】
これに対してステップＳＰ３２で肯定結果が得られると、中央処理ユニット４は、ステップＳＰ３２からステップＳＰ３４に移る。ここで中央処理ユニット４は、ブロックリストから所定の項目をコピーして、特徴点選択処理の作業用リストを作成する。ここでこの作業用リストは、各ブロックを特定する情報、各ブロックの特徴点数、全体の特徴点数を記録して作成される。中央処理ユニット４は、メモリ２３に記録して保持した特徴点の座標値を判定してこの作業用リストを作成する。
【００５２】
中央処理ユニット４は、作業用リストを作成すると、ステップＳＰ３５に移り、特徴点の数が当初の設定数であるＮｆｐ個以上のブロックを、この作業用リストから削除し、このブロックを処理対象から除外する。これにより図２０（Ａ）に示すように、例えばブロックｂ１〜ｂ９の特徴点数がそれぞれ１０、０、８、１、５、４、３、５、１個の場合であって、当初の設定数Ｎｆｐが６個の場合、図２０（Ｂ）に示すように、ブロックｂ１、ｂ３の記録を作業用リストから削除する。なおこの例では、総合の個数Ｎｔｏｔを６０個とする。従って現在、２３個の特徴点が全体として不足していることになる。なお当然のことながら先頭１フレームでは、各ブロックの特徴点数は、０個であり、この場合、全体として特徴点が６０個不足していることになる。
【００５３】
続いて中央処理ユニット４は、ステップＳＰ３６に移り、この作業用リストに記録されたブロックを、特徴点数でグループ化し、ソート処理により特徴点数が少ないグループの順に配列を変更する。中央処理ユニット４は、この特徴点数が少ないグループの順に配列を変更することにより、処理の優先順位を設定する。すなわち図２０（Ｂ）の例によれば、図２０（Ｃ）に示すように、特徴点数が０個のブロックｂ２による第１のグループＧ１、特徴点数が１個のブロックｂ４、ｂ９による第２のグループＧ２、特徴点数が３個のブロックｂ７による第３のグループＧ３、特徴点数が４個のブロックｂ６による第４のグループＧ４、特徴点数が５個のブロックｂ５、ｂ８による第５のグループＧ５にグループ化する。
【００５４】
続いて中央処理ユニット４は、ステップＳＰ３７に移り、各グループ内の配列をランダマイズする。続いて中央処理ユニット４は、ステップＳＰ３８に移り、現在の特徴点数が総合の個数Ｎｔｏｔ以上か否か判断する。ここで肯定結果が得られると、中央処理ユニット４は、ステップＳＰ３８からステップＳＰ３３に移ってこの処理手順を終了する。
【００５５】
これに対してステップＳＰ３８で否定結果が得られると、ステップＳＰ３８からステップＳＰ３９に移る。
【００５６】
このステップＳＰ３９で、中央処理ユニット４は、作業用リストの先頭に記録されているブロックを特徴点の設定対象に設定する。また続くステップＳＰ４０において、この設定対象のブロックに特徴点を１つ設定する。なおこの特徴点の設定は、特徴点抽出処理により１つの特徴点を抽出して実行される。
【００５７】
続いて中央処理ユニット４は、ステップＳＰ４１に移り、当該ブロックの特徴点数が当初の設定数Ｎｆｐとなったか否か判断する。ここで特徴点を１個追加したにも係わらず、特徴点数が当初の設定数Ｎｆｐより小さい場合、中央処理ユニット４は、ステップＳＰ４１で否定結果が得られ、ステップＳＰ４１からステップＳＰ４２に移る。
【００５８】
このステップＳＰ４２で、中央処理ユニット４は、特徴点の追加設定に対応するように当該ブロックの特徴点数を更新し、作業用リストにおけるグループ分けを更新する。従って当該ブロックは、特徴点の追加設定により、特徴点数が次のグループに属するように作業用リストの記録が更新される。中央処理ユニット４は、この特徴点数が次のグループに属するように、当該グループの記録を作業用リスト上で更新する際に、当該ブロックについては、次のグループの末尾に配置する。従って図２０（Ｃ）の例では、図２０（Ｄ）に示すように、それまで特徴点が０個の第１のグループＧ１に属していたブロックｂ２に特徴点を追加設定し、このブロックｂ２の記録を、続く特徴点数が１個の第２のグループＧ２の末尾に記録する。
【００５９】
このようにして１つのブロックに特徴点を１個追加設定すると、中央処理ユニット４は、ステップＳＰ３８に戻る。これに対してステップＳＰ４１で肯定結果が得られると、この場合、当該ブロックの記録を作業用リストから削除した後、ステップＳＰ３８に戻る。これにより中央処理ユニット４は、全体の特徴点数が総合の個数Ｎｔｏｔとなるまで、特徴点数が少ないグループからランダムに、順次ブロックを選択して特徴点を追加設定する。
【００６０】
従って図２０（Ｄ）の例では、続く第２のグループＧ２の先頭ブロックｂ４に特徴点を追加設定し、このブロックｂ４の記録を続く第３のグループＧ４のブロックｂ７の次に配置する。
【００６１】
なお中央処理ユニット４は、ステップＳＰ４０の処理により特徴点抽出処理で特徴点を抽出できなかった場合、ステップＳＰ４１からステップＳＰ４３に移り、当該ブロックを作業用リストから削除してステップＳＰ３８に戻る。
【００６２】
この図１８及び図１９の処理により、中央処理ユニット４は、図２１に示す機能ブロックを構成する。ここでランダムシャッフル４９は、作業リストにおける各グループの配列をランダマイズさせる機能ブロックである。
【００６３】
図２２は、特徴点抽出処理を示すフローチャートである。なお中央処理ユニット４は、この特徴点抽出処理を実行するために、別途、各フレームで特徴点リスト、特徴点マップを作成する。ここで特徴点リストは、特徴点の候補のリストであり、特徴点の候補の特徴度と座標値のリストで形成される。ここで特徴度は、特徴点らしさを示す変数である。中央処理ユニット４は、ＫＬＴ法により入力画像の各画素で特徴度を検出し、所定値以上の特徴度を有する画素の座標値を検出して特徴点の候補を選択する。さらにこの座標値を特徴度の大きい順にソートして特徴点リストを作成する。
【００６４】
具体的に、中央処理ユニット４は、次式の演算処理により得られる固有値α１、α２から値の小さい固有値を選択して特徴度とする。なおここでＩｘは、画素値の水平方向の微分値であり、Ｉｙは、画素値の垂直方向の微分値である。また（１）式における演算範囲は、処理対象の画素を中心にした垂直方向、水平方向に所定範囲であり、この所定範囲は、例えば７×７画素の範囲である。この（１）式の処理により、中央処理ユニット４は、特徴点近辺における画素値の勾配のばらつきを計算し、このばらつきの激しさを示す変数を特徴度に設定する。従って例えば輝度変化の無い平坦な部分では、特徴点リストに特徴点が記録されないことになる。なおここでこの（１）式における（ｘ、ｙ）は、画素の座標である。
【００６５】
【数１】
2008005109.tif 000003
これに対して特徴度マップは、入力画像の画素の配列に対応するように特徴度を配列したマップである。特徴度マップは、特徴点リストに登録されていない、一定値以上、特徴度が小さい画素については、特徴度が値０に丸めて記録される。特徴点リストは、特徴点に適した画素を優先的に選択するために使用され、特徴度マップは、特徴点リストで選択した候補を特徴点と設定する際の、周囲の状況を判定するために使用される。
【００６６】
中央処理ユニット４は、特徴点選択処理（図１９、ステップＳＰ４０）からの要求によりこの処理手順を開始してステップＳＰ５１からステップＳＰ５２に移り、特徴点リストが空か否か判断する。ここで肯定結果が得られると、中央処理ユニット４は、ステップＳＰ５２からステップＳＰ５３に移り、特徴点の抽出不成功を特徴点選択処理に通知した後、ステップＳＰ５４に移ってこの処理手順を終了する。
【００６７】
これに対して特徴点リストに特徴点の候補が残っている場合、中央処理ユニット４は、ステップＳＰ５２で否定結果が得られ、ステップＳＰ５５に移る。ここで中央処理ユニット４は、特徴点リストの先頭に記録された特徴点の候補を選択する。また続くステップＳＰ５６において、ブロックリストを参照し、当該特徴点の候補が、特徴点を設定するブロックに存在するか否か判断する。ここで否定結果が得られると、中央処理ユニット４は、ステップＳＰ５６からステップＳＰ５７に移り、さらに特徴点の候補が特徴点リストに存在するか否か判断する。ここで否定結果が得られると、中央処理ユニット４は、ステップＳＰ５３に移って特徴点の抽出不成功を特徴点選択処理に通知した後、ステップＳＰ５４に移ってこの処理手順を終了する。
【００６８】
これに対してさらに特徴点の候補が特徴点リストに残っている場合、中央処理ユニット４は、ステップＳＰ５７で肯定結果が得られ、ステップＳＰ５７からステップＳＰ５８に移る。ここで中央処理ユニット４は、特徴点リストに記録された次の候補を選択し直し、ステップＳＰ５６に戻る。これにより中央処理ユニット４は、特徴点リストの記録を特徴度の高い順に順次スキャンして、特徴点を設定するブロックに属する特徴点の候補を検出する。
【００６９】
またこのような特徴点の候補が検出されると、中央処理ユニット４は、ステップＳＰ５６で肯定結果が得られ、ステップＳＰ５６からステップＳＰ５９に移る。ここで中央処理ユニット４は、特徴点追跡、動きベクトル計算処理で追跡に成功して、現フレームに既に存在する特徴点が、この候補を中心にした周囲、一定距離Δｆｐの範囲に存在するか否か判断する。ここで肯定結果が得られると、この場合、既存の特徴点の近傍に、特徴点を設定してしまうことになる。従ってこのステップＳＰ５９で肯定結果が得られると、中央処理ユニット４は、ステップＳＰ５７に移り、さらに特徴点の候補が特徴点リストに残っているか否か判断する。
【００７０】
これに対して特徴点の候補の周囲、一定の範囲に既存の特徴点が存在しない場合、中央処理ユニット４は、ステップＳＰ５９で否定結果が得られ、ステップＳＰ６０に移る。ここで中央処理ユニット４は、この特徴点候補の選択に対応するように特徴点リスト、特徴度マップの記録を更新する。具体的に、中央処理ユニット４は、当該特徴点の候補を中心にした、一定距離Δｆｐの範囲で、特徴度マップにおける特徴度を無効に設定する。なおこの無効に設定する処理は、特徴度マップ上でこの範囲の特徴度を負の値に設定して実行される。またこの無効の設定に対応するように、この一定範囲に含まれている特徴点の候補を特徴点リストから除外する。これにより中央処理ユニット４は、選択した特徴点の候補の周囲、一定の距離Δｆｐの範囲では、さらなる特徴点を選択できないように設定する。
【００７１】
続いて中央処理ユニット４は、ステップＳＰ６１に移り、ここで当該特徴点の候補を特徴点選択処理に通知し、ステップＳＰ５４に移ってこの処理手順を終了する。なお中央処理ユニット４は、この図２２のステップＳＰ６１で通知された特徴点の候補を、図１９のステップＳＰ４０で特徴点に設定する。
【００７２】
この図２２の処理により、中央処理ユニット４は、図２３に示すように、特徴点リスト５２、特徴度マップ５３を用いて特徴点を検出する特徴点抽出手段４３を構成する。
【００７３】
なおステップＳＰ５９の処理において、周囲に特徴点が存在するか否かを判定するためには、この図２２の処理手順を実行する毎に、既存の特徴点の記録を検索することになる。従ってこの図２２の処理を繰り返す場合に、中央処理ユニット４は、処理の負担が大きくなる。従ってこの既存の特徴点の情報を特徴度マップ、特徴点リストの記録に反映させるようにして、処理の負担を軽減するようにしてもよい。具体的には、ステップＳＰ６０における特徴点リスト、特徴度マップの更新処理と同一の処理を、既存の特徴点に適用することが考えられ、このようにすれば処理を高速度化することができる。
【００７４】
（１−２）動きベクトル解析処理
図２４は、上述の動きベクトル算出処理で検出されて、動きベクトル解析処理に渡される特徴点情報を示す図表である。この特徴点情報は、特徴点毎に、特徴点の座標Ｐ（ｘ，ｙ）、特徴度、有効無効フラグ、動きベクトル、分類情報等の属性情報が割り当てられて形成される。
【００７５】
ここで特徴点の座標Ｐ（ｘ，ｙ）は、特徴点の位置を示す位置情報であり、最初に特徴点が設定された時点で初期値が設定され、動きベクトル算出処理で特徴点の追跡が成功する毎に、最新の値に更新される。なお特徴点の座標Ｐ（ｘ，ｙ）は、画素値以下の少数点精度で割り当てられる。特徴度は、最初に特徴点が設定された時点で検出された値が適用される。有効無効フラグは、特徴点の座標Ｐ（ｘ，ｙ）等が有効か無効かを示すフラグであり、特徴点が最初に抽出された時点で有効にセットされる。動きベクトルは、対応する特徴点の動きベクトルが記録され、追跡が成功する毎に最新の値に更新される。上述の動きベクトル算出処理は、遮蔽などの影響で特徴点を追跡できなかった場合、有効無効フラグを無効にセットし、特徴点の座標Ｐ（ｘ，ｙ）等の他の属性情報をゼロにセットする。また特徴点を追加設定した場合、有効無効フラグが無効にセットされた特徴点の情報を検出し、この検出した特徴点の情報に追加登録した特徴点の情報をセットする。なお有効無効フラグが無効にセットされた特徴点の情報を検出できない場合には、特徴点の情報を追加する。
【００７６】
分類情報は、動きベクトル解析処理によって特徴点の所属を示す情報が設定される。分類情報は、特徴点が背景から検出されて背景に属するものであることを示す「背景特徴点」、特徴点が被写体から検出されて背景以外に属するものであることを示す「非背景特徴点」、これら「背景特徴点」、「非背景特徴点」の分類前であることを示す「分類前」の何れかに設定され、最初に特徴点が設定された時点では、「分類前」に設定される。
【００７７】
図２５は、この特徴点情報を用いた動きベクトル解析処理を詳細に示すフローチャートである。なおこの図２５に示す処理手順は、特徴点分類更新処理ステップＳＰ６５を除いて、有効無効フラグが有効に設定された特徴点情報のみを用いて実行される。中央処理ユニット４は、この処理手順を開始すると、ステップＳＰ６１からステップＳＰ６２に移り、動きベクトル算出処理から通知される特徴点情報に基づいて、動きベクトルの分布を示す２次元のヒストグラムを作成する。ここでこのヒストグラムは、動きベクトルの水平方向成分及び垂直方向成分をそれぞれｘ座標及びｙ座標に割り当て、度数をｚ軸方向に設定して作成される。なお中央処理ユニット４は、ヒストグラムの解像度ｒｅｚで動きベクトルの水平方向成分及び垂直方向成分をそれぞれ割り算して四捨五入することにより、浮動小数点で得られる動きベクトルを量子化してヒストグラムを作成する。
【００７８】
なおこここで分類情報の確からしさを示す信頼度に応じて、各動きベクトルの度数を重み付けしてヒストグラムを作成するようにしてもよい。なおこのような信頼度は、連続して追跡に成功した回数を適用することができる。また近傍の特徴点との間の距離の変化度合を信頼度に適用することができる。従って背景として連続して追跡した回数が多い程、また近傍の特徴点との間の距離の変化度合が小さい場合程、大きな重みを設定して、背景である確率が高い山程、高さが高くなるように、ヒストグラムを作成して、背景の検出精度を向上することができる。なおこの重み付けの処理は、重み付け対象がヒストグラム化する際の度数である点を除いて、後述するピーク度合の重み付け処理と同一に実行することができる。但し、このように重み付けした場合、以降の処理における特徴点数等は、このヒストグラム上で現されている数となる。
【００７９】
続いて中央処理ユニット４は、ステップＳＰ６３において、画像領域分割法を適用して、ステップＳＰ６２で作成したヒストグラムにおける山を区分する。なおここでこの実施例では、ｗａｔｅｒｓｈｅｄ法が適用される。すなわち中央処理ユニット４は、図２６（Ａ）に示すように、ヒストグラム算出処理（ステップＳＰ６２）で作成されたヒストグラムから度数の最大値ｍａｘＨｉｓｔを検出する。また続いて図２６（Ｂ）に示すように、この検出したこの度数の最大値ｍａｘＨｉｓｔから度数が立ち下がるように、ヒストグラムを反転させて反転ヒストグラムを作成する。
【００８０】
中央処理ユニット４は、続いて図２６（Ｃ）に示すように、この反転ヒストグラムから局所最小値を順次検出する。なおこの図２６（Ｃ）では、検出した局所最小値を白丸により示す。中央処理ユニット４は、このようにして各山のピーク値を検出する。またこの検出した各山による局所最小値をｗａｔｅｒｓｈｅｄのシーズに設定し、図２６（Ｄ）に示すように、ｗａｔｅｒｓｈｅｄにより各山の境界を設定する。なおここで図２６（Ｄ）では、破線により各山の境界を示し、ハッチングにより示す領域は、度数が分布していない領域である。
【００８１】
中央処理ユニット４は、図２６（Ｅ）により示すように、このようにして検出した各山の境界でヒストグラムを構成する動きベクトルを分類し、ヒストグラムから各山を分離する。この実施例は、この画像領域分割法により境界を設定して山を分離することにより、背景の動きと被写体の動きとが似通っている場合でも、確実に背景の山と被写体の山とを分離して、カメラ動きベクトルの検出精度を確保する。
【００８２】
続いて中央処理ユニット４は、ステップＳＰ６４に移り、このようにして分離した山から背景による山を検出する。中央処理ユニット４は、この背景による山の検出を、特徴点情報に設定した分類情報に基づいて実行する。
【００８３】
図２７は、このステップＳＰ６４の背景ピーク検出処理を詳細に示すフローチャートである。この処理手順を開始すると、中央処理ユニット４は、ステップＳＰ７１からステップＳＰ７２に移る。ここで中央処理ユニット４は、現在のフレームが、動きベクトルを検出した先頭フレームか否か判断する。ここで肯定結果が得られると、中央処理ユニット４は、ステップＳＰ７２からステップＳＰ７３に移る。ここでこの場合、動きベクトルを検出した先頭フレームであって、全ての動きベクトルの分類情報が「分類前」に設定されていることにより、中央処理ユニット４は、最も高さの高い山を背景による山に設定した後、ステップＳＰ７４に移ってこの処理手順を終了する。なおこのようにして背景に設定された山に属する動きベクトルの特徴点は、後述する特徴点分類更新処理により分類情報が「背景特徴点」に設定され、それ以外は「非背景特徴点」に設定される。
【００８４】
これに対してステップＳＰ７２で否定結果が得られると、中央処理ユニット４は、ステップＳＰ７２からステップＳＰ７５に移る。中央処理ユニット４は、このステップＳＰ７５において、特徴点情報に設定された分類情報に基づいて、各ピークで、背景ピーク度合を計算する。ここで背景ピーク度合は、背景である確からしさを示す変数である。
【００８５】
ここでこの場合、入力画像に設定されている特徴点は、動きベクトル算出処理における特徴点の追跡、追加設定により、図２８（Ａ）に示すように、分類情報が「背景特徴点」、「非背景特徴点」、「分類前」に設定されたものが混在することになる。なお以下において、分類情報が「背景特徴点」、「非背景特徴点」、「分類前」に設定されている特徴点を、それぞれ四角の印、白抜きの丸印、黒丸により示す。
【００８６】
ここで図２８（Ｂ）に示すように、カメラがパンし、このカメラのパンとは大きく異なって「非背景特徴点」に設定された特徴点を有する被写体が移動しているとする。この場合、図２９に示すように、ヒストグラム上で、背景による山と被写体による山とは明確に分離されて検出されることから、ステップＳＰ７３と同一の処理により最も高さの高い山を検出して背景の山を検出するようにしても、正しく背景の山を検出することができる。
【００８７】
しかしながら被写体が移動して、画面上における被写体の面積が背景に比して大きくなる場合もあり、この場合には、最も高さの高い山を検出したのでは、背景を誤って検出することになる。従ってカメラ動きベクトルを誤検出することになる。
【００８８】
これに対して他の山に比して高さが低い場合でも、分類情報が「背景特徴点」に設定された特徴点による動きベクトルが支配的な山にあっては、「背景特徴点」に設定された特徴点が支配的であればある程、背景の山である可能性が高い。またこれとは逆に、「非背景特徴点」に設定された特徴点による動きベクトルが支配的な山にあっては、「非背景特徴点」に設定された特徴点が支配的であればある程、高さが高い場合でも、背景の山である可能性が低いと言える。すなわち各ピークにおいて、分類情報が「背景特徴点」に設定された特徴点による動きベクトルの割合が多くなればなる程、背景の山である可能性が高いと言える。
【００８９】
従って各山における「背景特徴点」に設定された特徴点の割合を計算し、最も割合の多い山を検出すれば、被写体が移動して、画面上における被写体の面積が背景に比して大きくなった場合でも、背景の山を検出することができる。
【００９０】
しかしながら図２８との対比により図３０に示すように、静止していた他の被写体２が移動を開始する場合もある。この場合、この被写体２から検出される特徴点は、図３１（Ａ）に示すように、それまで静止して背景として検出されていることにより、分類情報は「背景特徴点」に設定されていることになる。従って図３１（Ｂ）に示すように、ヒストグラム上では、分類情報が「背景特徴点」に設定された２つの山が検出されることになる。従って単に、「背景特徴点」に設定された特徴点の割合により背景の山を検出していたのでは、何れの山が正しい背景の山なのかを検出できなくなる。
【００９１】
しかしながらこの場合に、このようにそれまで静止していて背景と判断されていた特徴点にあっては、本来の背景に比して面積が小さいと言え、山を構成する特徴点数が少ないと言える。これにより中央処理ユニット４は、背景特徴点の相対的な多さと、特徴点数の絶対的な多さとから、背景の山である確かしさを示す背景ピーク度合ＲＰを計算し、この背景ピーク度合ＲＰを判定して背景の山を検出する。具体的に、中央処理ユニット４は、山毎に、ＲＰ＝ＲＨ×Ｋの演算処理を実行し、各山の背景ピーク度合ＲＰを計算する。なおここでＲＨは、背景ピーク度合ＲＰを計算する山全体の動きベクトル数に対する背景特徴点の動きベクトル数の割合である。またＫは、係数であり、背景ピーク度合ＲＰを計算する山の動きベクトル数が所定のしきい値ｔｈｆｐ以上の場合、値１が適用され、背景ピーク度合ＲＰを計算する山の動きベクトル数が所定のしきい値ｔｈｆｐより少ない場合、値０が適用される。なおＫは、３値以上の値を適用するようにしてもよい。なおこのように背景ピーク度合ＲＰを計算して背景を求めることは、画像領域分割法により境界を設定して山を分離したことによる、本来、背景以外から検出した動きベクトルが背景側の山に分類されることによる不都合を回避する意味もある。
【００９２】
なおこの背景ピーク度合ＲＰを検出する際に、ヒストグラムを作成する際に上述したと同様に、分類情報の確からしさを示す信頼度に応じて、背景ピーク度合ＲＰを重み付けして作成するようにしてもよい。なおこのような信頼度は、背景として連続して追跡に成功した回数、背景以外として連続して追跡に成功した回数を適用することができる。また背景として連続して追跡に成功した回数を適用する場合には、例えば連続した追跡成功回数を例えば５回程度の一定回数で制限するようにして、１回から一定回数までの中間値である追跡成功回数３回で重み係数を値１に設定し、これより追跡回数が増加、減少する程に、重み係数が値１から増大及び減少するように設定する。また処理対象を構成する山の動きベクトルのうちで属性情報により背景と分類されている動きベクトルで、この重み係数の平均値を計算し、この平均値を最終的な重み係数として上述した背景ピーク度合ＲＰに乗算する。また背景以外として連続して追跡に成功した回数を適用する場合には、同様に追跡回数を制限するようにして、背景の場合とは逆に、追跡回数が増加、減少する程に、重み係数が値１から減少及び増大するように設定し、同様の処理を実行する。
【００９３】
またこのような信頼度として、近傍の特徴点との間の距離の変化度合いを信頼度に適用することもできる。この場合、近傍の特徴点との間の距離の変化度合いが大きい場合には、背景である場合の確からしさが低いと言える。これによりこの変化度合いに応じて、例えば背景以外として連続して追跡に成功した回数を適用する場合と同様に重み係数を計算して背景ピーク度合ＲＰを重み付けすることができる。
【００９４】
中央処理ユニット４は、背景ピーク度合ＲＰの値が最も大きな山を背景の山に設定し、それ以外を非背景の山に設定する。
【００９５】
続いて中央処理ユニット４は、ステップＳＰ６５（図２５）に移り、図３０の対比により図３２に示すように、特徴点分類処理により、背景の山に分類された特徴点の分類情報を「背景特徴点」に設定し、背景の山に分類されなかった特徴点の属性情報を「非背景特徴点」に設定する。
【００９６】
続いて中央処理ユニット４は、ステップＳＰ６６において、背景部動きベクトル算出処理により、背景の山に分類された動きベクトルから背景の動きを計算した後、ステップＳＰ６７に移ってこの処理手順を終了する。中央処理ユニット４は、この図２５の処理手順の実行により、図３３に示す機能ブロックを構成する。なおここでヒストグラム算出部５１、ピーク抽出部５２、背景ピーク検出部５３、特徴点分類更新部５４、背景動きベクトル算出部５５は、それぞれステップＳＰ６２、ＳＰ６３、ＳＰ６３、ＳＰ６３、ＳＰ６３の処理手順に対応する機能ブロックである。
【００９７】
図３４は、ステップＳＰ６６の背景動きベクトル算出処理の処理手順を示すフローチャートである。中央処理ユニット４は、この処理手順を開始すると、ステップＳＰ８１からステップＳＰ８２に移り、特徴点分類更新処理ステップＳＰ６５で分類情報を「背景特徴点」に設定した特徴点で検出された動きベクトルから、信頼性の低い動きベクトルを除外し、処理対象を整理する。
【００９８】
すなわち中央処理ユニット４は、分類情報を「背景特徴点」に設定した特徴点で検出された動きベクトルの分布を統計学的に解析する。またこの分布の解析から分布中心を検出し、この分布中心からの各動きベクトルの距離が所定の判定基準値より大きいものを、処理対象から除外する。
【００９９】
より具体的に、中央処理ユニット４は、分類情報を「背景特徴点」に設定した特徴点で検出された動きベクトルを平均値化して平均ベクトルを計算する。またこれらの動きベクトルからこの標準偏差行列を生成する。なおここでこの標準偏差行列は、動きベクトルの水平方向成分、垂直方向成分の標準偏差による対角行列であり、以下、適宜、標準偏差ベクトルとも呼ぶ。
【０１００】
中央処理ユニット４は、この標準偏差ベクトルの水平方向成分Ｓｘ及び垂直方向成分Ｓｙにそれぞれ所定のしきい値ｔｈを乗算して水平方向成分の判定基準Ｓｘ×ｔｈ及び垂直方向成分の判定基準Ｓｙ×ｔｈを計算する。また検査対象の動きベクトルＶの水平方向成分Ｖｘから平均ベクトルの水平方向成分Ｍｘを減算した減算値Ｖｘ−Ｍｘの絶対値を、水平方向成分の判定基準Ｓｘ×ｔｈで判定し、分布中心からの動きベクトルの水平方向の距離が判定基準値Ｓｙ×ｔｈより大きいものを、処理対象から除外する。
【０１０１】
また残った各動きベクトルの垂直方向成分Ｖｙから平均ベクトルの垂直方向成分Ｍｙを減算した減算値Ｖｙ−Ｍｙの絶対値を、垂直方向成分の判定基準Ｓｙ×ｔｈで判定し、分布中心からの動きベクトルの垂直方向の距離が判定基準値Ｓｙ×ｔｈより大きいものを、処理対象から除外する。
【０１０２】
なおこの判定基準値は、時間方向の動きベクトルの分布の変化を反映させるようにしてもよい。具体的には、標準偏差の時間変動を検出し、この時間変動に応じて判定基準値の生成に使用したしきい値ｔｈの大きさを変化させる等である。
【０１０３】
このようにして中央処理ユニット４は、処理対象の動きベクトルを整理すると、続くステップＳＰ８３において、残った動きベクトルを用いて平均値を計算し、背景の動きベクトルを計算する。中央処理ユニット４は、この背景の動きベクトルの符号を反転させて、カメラ動きベクトルＭＶＣを計算する。
【０１０４】
この図３４の処理により、中央処理ユニット４は、図３５に示す機能ブロックを構成する。なおここで動きベクトル整理部７１、背景部の平均ベクトル算出部７２は、それぞれ図３４のステップＳＰ８２、ステップＳＰ８３の処理手順に対応する機能ブロックである。
【０１０５】
（１−３）カメラ動きベクトルの処理
図３６は、図３のステップＳＰ４の処理手順を詳細に示すフローチャートである。中央処理ユニット４は、この処理手順の実行によりカメラ動きベクトルＭＶＣからカメラワークのみのカメラ動きベクトルＭＶＣＴを求める。すなわち中央処理ユニット４は、この処理手順を開始すると、ステップＳＰ９１からステップＳＰ９２に移り、カメラワーク成分抽出処理を実行し、カメラワークのみのカメラ動きベクトルＭＶＣＴを求める。このとき中央処理ユニット４は、知識データベースの記録に基づいて、カメラワークのみのカメラ動きベクトルＭＶＣＴによるビデオカメラの動きが、ユーザーが意図したと推定されるカメラワークの動きとなるように、カメラ動きベクトルＭＶＣＴを求める。
【０１０６】
ここで図１は、このカメラワーク成分抽出処理を詳細に示すフローチャートである。中央処理ユニット４は、この処理手順を開始すると、ステップＳＰ９５からステップＳＰ９６に移り、手振れ補正の許容範囲を取得する。ここでこの実施例では、図５について上述した補正ベクトルΔＭＶの最大値を事前に設定できるように構成され、中央処理ユニット４は、この事前に設定されて記録された最大値をこのステップＳＰ９６で取得する。
【０１０７】
ここでこの実施例では、図５について上述したように、この動き補正処理によって入力画像２１を割り当てることが困難となった部位を切り捨て、出力画像２４のサイズに合うようにスケーリングすることから、このスケーリングの処理における拡大率が一定値となるように、図３７に示すように、一定の領域ＡＲを入力画像２１から切り出し、この切り出した領域ＡＲを拡大して出力画像２４を生成する。またこの一定の領域ＡＲを補正ベクトルΔＭＶで可変して手振れ補正する。
【０１０８】
入力画像２１がＶＧＡの場合、図３８に示すように、入力画像２１は、水平方向及び垂直方向にそれぞれ７２０画素及び４８０画素の大きさとなる。ここで入力画像２１から切り出す領域ＡＲのアスペクト比は、元の入力画像２１のアスペクト比と一致することが処理を簡略化する点で望ましい。そこでこの実施例では、ディフォルトでは、切り出す領域ＡＲが水平方向及び垂直方向にそれぞれ６３０画素及び４２０画素の大きさに設定され、対応する許容値は、水平方向の許容値ｔｈδｘが（７２０画素−６３０画素）／２＝４５画素、垂直方向の許容値ｔｈδｙが、（４８０画素−４２０画素）／２＝３０画素に設定される。従ってユーザーは、このディフォルト値の許容値を基準にして所望する許容値を設定することができる。
【０１０９】
続いて中央処理ユニット４は、ステップＳＰ９７に移り、ハードディスク装置３に記録したビデオ信号ＳＶを解析してシーンチェンジを検出し、ビデオ信号ＳＶの入力画像２１をシーンチャンジで区切って入力画像２１を各シーンに分割する。
【０１１０】
続いて中央処理ユニット４は、ステップＳＰ９８に移る。ここで中央処理ユニット４は、ステップＳＰ９７で分割したシーンの１つについて、このシーンを形成する連続する入力画像で検出されたカメラ動きベクトルＭＶＣによる動きの軌跡を作成する。またこの軌跡を構成する直線の数に比して少ない数の直線によりこのカメラ動きベクトルＭＶＣによる動きの軌跡を近似し、この動きの軌跡を折れ線化する。
【０１１１】
中央処理ユニット４は、この折れ線化の処理をDouglas-Peucker 法で実行する。ここで図３９は、１つのシーンを構成する複数フレームで順次検出されたカメラ動きベクトルＭＶＣから求められるカメラの動きの軌跡であり、カメラの向き等の変化を示すものである。なおここでこのカメラの動きの軌跡は、当然のことながら撮像結果における動きの軌跡をも示すことになる。この図３９は、先頭フレームのカメラ動きベクトルＭＶＣを０とおいて、このカメラ動きベクトルＭＶＣによる座標ＣＡＭ〔０〕を基準位置に設定し、この基準位置から連続する各フレームにおけるカメラ動きベクトルＭＶＣの値を順次プロットしたものである。従って符号ＣＡＭ〔Ｎ〕が、対象シーンの先頭フレームからＮ＋１番目のフレームにおけるカメラの向きを、基準位置の座標ＣＡＭ〔０〕を基準にして示す座標である。従ってこの図３９において、ＣＡＭ〔Ｎ〕ｘ、ＣＡＭ〔Ｎ〕ｙは、それぞれＸ方向及びＹ方向へのカメラの動き（向き）の変化量を示し、符号Ｅは、この軌跡を部分的に拡大して示す図である。この図３９の例では、細かく上下動しながらカメラが左から右にパンした後、細かく左右にぶれながら上方向に向きが変化し、さらに左から右にパンした後、上方向に向きが変化していることが判る。
【０１１２】
中央処理ユニット４は、図３９との対比により図４０に示すように、初めにこの１つのシーンの先頭及び末尾のフレームにおける座標ＣＡＭ〔０〕、ＣＡＭ〔３６〕を結ぶ直線Ｌ１を設定する。また符号Ｆにより部分的に拡大して示すように、この直線Ｌ１の両端の座標ＣＡＭ〔０〕、ＣＡＭ〔３６〕に対応するフレーム間の各フレームの座標ＣＡＭ〔１〕〜ＣＡＭ〔３５〕とこの直線Ｌ１との距離δをそれぞれ計算する。またこの距離δの最大値を検出し、この距離δの最大値のＸ成分が、ステップＳＰ９６で取得した許容値のＸ成分以下であり、かつこの距離δの最大値のＹ成分が、ステップＳＰ９６で取得した許容値のＹ成分以下であるか否か判断する。
【０１１３】
ここで最大値のＸ成分及びＹ成分が共に許容値以下の場合、中央処理ユニット４は、この直線Ｌ１をユーザーが意図したカメラワークによるカメラの軌跡に仮設定する。
【０１１４】
これに対して最大値のＸ成分又はＹ成分が許容値より大きい場合、中央処理ユニット４は、図４０との対比により図４１に示すように、この先頭及び末尾のフレームの座標ＣＡＭ〔０〕、ＣＡＭ〔３６〕を結ぶ直線Ｌ１に代えて、この直線Ｌ１の両端の座標ＣＡＭ〔０〕、ＣＡＭ〔３６〕と、距離δが最大値の座標ＣＡＭ〔１３〕とをそれぞれ結ぶ２つの直線Ｌ２及びＬ３を設定する。従ってこの場合、先頭のフレームの座標ＣＡＭ〔０〕と座標ＣＡＭ〔１３〕とを結ぶ直線Ｌ２、この座標ＣＡＭ〔１３〕と末尾のフレームの座標ＣＡＭ〔３６〕とを結ぶ直線Ｌ３を設定する。
【０１１５】
また各直線Ｌ２及びＬ３毎に、直線の両端の座標に対応するフレーム間の各フレームの座標と直線との距離δをそれぞれ計算する。従ってこの場合、直線Ｌ２については、座標ＣＡＭ〔１〕〜ＣＡＭ〔１２〕とこの直線Ｌ２との距離δを順次計算し、また直線Ｌ３については、座標ＣＡＭ〔１４〕〜ＣＡＭ〔３５〕と直線Ｌ３との距離δを計算する。
【０１１６】
なおこのような距離δの計算では、図４２に示すように、座標Ａ、Ｂ間のフレームの座標Ｄから、この座標Ａ、Ｂを結ぶ直線ＬＡに垂線を下ろせない場合もあるが、この場合は、点線により示す座標Ａ、Ｂを結ぶ直線ＬＡの延長線に対して垂線を下ろすようにして、この座標Ｄと直線ＬＡとの距離δを計算する。
【０１１７】
このようにして直線Ｌ２、Ｌ３毎に、それぞれ各座標の点との間の距離δが検出されると、中央処理ユニット４は、直線Ｌ２、Ｌ３毎に、距離δの最大値を検出する。またこの距離δの最大値がそれぞれ許容値を満足するか否か判定し、許容値を満足しない直線については、さらに同様の処理を繰り返す。中央処理ユニット４は、この処理の繰り返しにより、図４３に示すように、許容値で決まる手振れ補正可能な範囲で、１つのシーンを形成する複数フレーム間の動きを、少ない数の直線で表現する。
【０１１８】
なおここで図４３は、図４１に示す例において、座標ＣＡＭ〔１３〕、ＣＡＭ〔３６〕を結ぶ直線Ｌ３側で、各座標までの距離δの最大値が許容値を満足しない場合であって、この座標ＣＡＭ〔１３〕、ＣＡＭ〔３６〕の間のフレームの座標ＣＡＭ〔２７〕を用いて、座標ＣＡＭ〔１３〕、座標ＣＡＭ〔２７〕間、座標ＣＡＭ〔２７〕、ＣＡＭ〔３６〕間にそれぞれ直線Ｌ４、Ｌ５を設定し、さらにこの２つの直線Ｌ４、Ｌ５のうちの直線Ｌ４の側が許容値を満足せず、さらに座標ＣＡＭ〔１３〕、座標ＣＡＭ〔２７〕間に直線Ｌ６、Ｌ７を設定した場合である。これによりこの図４３の例では、このシーンにおけるカメラの動きが、４つの直線Ｌ２、Ｌ６、Ｌ７、Ｌ５で構成される折れ線で表現される。
【０１１９】
このようにして許容値を満足するようにカメラ軌跡を折れ線化すると、中央処理ユニット４は、ステップＳＰ９９に移る。ここで中央処理ユニット４は、知識データベースの記録に基づいて、ステップＳＰ９８で求めた折れ線による軌跡を評価する評価値を計算する。ここでこの評価値は、ステップＳＰ９８で求めた折れ線による軌跡が、ユーザーの意図したものである程度を示す評価値である。
【０１２０】
ここでユーザーは、当然のことながらプロのカメラマンが撮影したように巧く撮影されていることを意図する。これに対してプロのカメラマンが撮影する場合、パン、チルトは、それぞれ水平線、垂直線に沿ってカメラの向きが変化する場合が殆どである。従ってステップＳＰ９８で設定した折れ線を構成する直線（線分）が水平線及び垂直線に対して何ら傾いていない場合、プロが撮影した場合のようにパン、チルトのカメラワークが実行されており、ステップＳＰ９８で検出した折れ線は、ユーザーの意図したままのカメラの動きを表していると言える。これに対してステップＳＰ９８で設定した折れ線を構成する直線（線分）が水平線及び垂直線に対して傾いている場合、この傾きが大きくなればなる程、パン、チルトのカメラワークが巧く実行されていないと言える。従ってこの場合、ステップＳＰ９８で検出した折れ線は、ユーザーの意図したカメラワークを表していない可能性が高くなる。
【０１２１】
また短い期間でカメラの動きが頻繁に切り換わる場合、目障りであって、一般に、巧く撮影されているとは言えないことになる。従ってステップＳＰ９８で設定した折れ線を構成する直線（線分）に対応するフレーム数が少ない場合、巧く撮影されていないと言え、この場合も、ステップＳＰ９８で検出した折れ線は、ユーザーの意図したカメラワークを表していない可能性が高くなる。
【０１２２】
またカメラの動きが滑らかに切り換わっている場合、一般に、巧く撮影されていると言える。従ってステップＳＰ９８で検出した折れ線において、隣接する直線の成す角度が鋭角の場合、巧く撮影されていない可能性が高いと言え、この場合、この隣接する直線による軌跡は、ユーザーの意図したカメラワークを表していない可能性が高くなる。
【０１２３】
中央処理ユニット４は、これらの評価基準に基づいて、ステップＳＰ９８で検出した折れ線による軌跡を数値化して評価値を検出する。
【０１２４】
すなわちデータベースには、評価基準の直線の傾きが記録されており、中央処理ユニット４は、ステップＳＰ９８で検出した折れ線の直線毎に、最も傾きの近い評価基準の直線の傾きを検出し、この検出した評価基準の直線の傾きに対して、対応する直線の傾きが大きくなるに従って値が小さくなるように、各直線の評価値を計算する。なおここで評価基準の直線は、例えば水平線、垂直線である。
【０１２５】
またデータベースには、カメラの動きが切り換わった場合に、目障りとならない範囲の連続したフレーム数が基準の連続フレーム数として記録されている。中央処理ユニット４は、ステップＳＰ９８で検出した折れ線の直線毎に、各直線の対応するフレーム数をこの基準の連続フレーム数と比較し、基準の連続フレーム数に対して、各直線の対応するフレーム数が低下するに従って値が小さくなるように、また各直線の対応するフレーム数が基準の連続フレーム数以上の場合、一定値となるように、各直線の評価値を計算する。
【０１２６】
またデータベースには、カメラの滑らかな動きに違和感を感じる基準角度が記録されており、中央処理ユニット４は、各直線毎に、隣接する直線との間の角度をこの基準角度と比較する。また隣接する直線との間の角度が、この基準角度より小さくなるに従って当該直線の評価値が小さくなるように、また隣接する直線との間の角度が、この基準角度より大きい場合には、一定値となるように評価値を計算する。
【０１２７】
中央処理ユニット４は、ステップＳＰ９８で検出した折れ線を構成する直線毎に、このようにして評価値を計算し、この計算した評価値を折れ線を構成する直線で平均値化し、折れ線の軌跡全体がユーザーの意図するカメラワークを表している程度を示す総合評価値を計算する。
【０１２８】
なお評価基準は、これら以外にも、例えば１つのシーンを構成する直線の数等、種々の基準を設定することができる。
【０１２９】
続いて中央処理ユニット４は、ステップＳＰ１００に移り、ステップＳＰ９８で求めた折れ線を構成する直線の中に、複数の直線で表現した場合に、評価値が増大する直線が存在するか否か判断することにより、総合評価値が高くなる可能性の有無を判断する。ここでこの実施例では、水平方向、垂直方向の傾き、フレーム数、隣接する直線との角度を基準にして評価値を計算していることから、このような直線は、水平線、垂直線に対してそれぞれ一定角度以上傾いており、対応するフレーム数がデータベースに記録された連続フレーム数の２倍以上の直線が該当することになる。
【０１３０】
中央処理ユニット４は、このような直線が存在しない場合、ステップＳＰ１００からステップＳＰ１０１に移り、ステップＳＰ９８で求めた折れ線をユーザーの意図したカメラワークによる軌跡に設定する。
【０１３１】
これに対して評価値が増大する可能性のある直線が存在する場合、中央処理ユニット４は、ステップＳＰ１００からステップＳＰ１０２に移る。ここで中央処理ユニット４は、この可能性のある直線をさらに２つの直線に分割する。なおここでこの直線の分割は、上述のステップＳＰ９８の場合と同様に、それまでの直線に対して距離が最も遠い座標とそれまでの直線の両端の座標とを結ぶように直線を設定して実行される。
【０１３２】
続いて中央処理ユニット４は、ステップＳＰ１０３に移り、この分割した２つの直線について、ステップＳＰ９９と同様にして評価値を計算し、この計算結果からこの２つの直線を有する折れ線の総合評価値を計算する。また続くステップＳＰ１０４でこのステップＳＰ１０３で計算した総合評価値が先に計算した評価値より劣化したか否か判断する。
【０１３３】
ここで２つの直線に分割して隣接する直線との成す角度が鋭くなった場合、さらには２つの直線のうちの１つの直線の対応するフレーム数が基準フレーム数以下となる場合等にあっては、総合の評価値が劣化することになる。そこでこの場合、中央処理ユニット４は、ステップＳＰ１０４からステップＳＰ１０５に移り、直前の折れ線をユーザーの意図したカメラワークによる軌跡に設定する。
【０１３４】
これに対してステップＳＰ１０４で否定結果が得られると、中央処理ユニット４は、ステップＳＰ１０４からステップＳＰ１００に戻る。これにより中央処理ユニット４は、許容量を逸脱しない範囲で、背景から検出したカメラの動きの軌跡を複数の直線で表して細かな手振れ成分を除去するようにして、この複数の直線による軌跡を評価値で判定してユーザーの意図したカメラワークによる軌跡を推定する。
【０１３５】
しかしてステップＳＰ１０１の処理を完了すると、中央処理ユニット４は、ステップＳＰ１０１からステップＳＰ１０５に移り、他の未処理のシーンの有無を判定する。また他に未処理のシーンが残っている場合には、ステップＳＰ１０５からステップＳＰ１０６に移り、この他のシーンに処理対象シーンを切り換えた後、ステップＳＰ９８に戻る。これに対してステップＳＰ１０５で否定結果が得られると、ステップＳＰ１０５からステップＳＰ１０７に移ってこの処理手順を終了する。
【０１３６】
このようにしてユーザーが意図したと推定されるカメラワークの軌跡を求めると、中央処理ユニット４は、ステップＳＰ１１０に移る（図３６）。ここでこのステップＳＰ９２で求めた軌跡となるように、各フレームのカメラ動きベクトルＭＶＣＴを計算する。ここで中央処理ユニット４は、図４４に示すように、各フレームの座標ＣＡＭ〔１〕〜ＣＡＭ〔７〕から対応する直線Ｌ上に垂線を下ろし、この垂線が直線Ｌ１と交差する点の座標ＰＡＮ〔１〕〜ＰＡＮ〔７〕を手振れ補正後の各フレームの座標に設定する。またこのようにして設定した各フレームの座標ＰＡＮ〔１〕〜ＰＡＮ〔７〕、直線Ｌ１の両端の座標〔ＣＡＭ〔０〕、ＣＡＭ〔８〕を直前の座標ＰＡＮ〔−１〕〜ＰＡＮ〔７〕から指し示すベクトルを各フレームのカメラワークのみによる動きベクトルＭＶＣＴに設定する。
【０１３７】
これにより図４５に示すように、折れ線の始点ＣＡＭ〔０〕では、カメラワークのみによるカメラ動きベクトルＭＶＣＴ〔１〕は、カメラ動きベクトルＭＶＣ〔１〕と、手振れ補正用の補正ベクトルΔＭＶ〔１〕を用いて、ＭＶＣＴ〔１〕＝ＭＶＣ〔１〕＋ΔＭＶ〔１〕で表すことができ、補正ベクトルΔＭＶ〔１〕は、カメラワークのみによる動きベクトルＭＶＣＴ〔１〕からカメラ動きベクトルＭＶＣ〔１〕を減算して求めることができる。またカメラワークのみによるカメラ動きベクトルＭＶＣＴ〔Ｎ〕からカメラ動きベクトルＭＶＣ〔Ｎ〕を減じたベクトルＭＶＣＴ〔Ｎ〕−ＭＶＣ〔Ｎ〕が手振れ成分となる。また以降の各座標ＣＡＭ〔Ｎ〕では直前の座標ＣＡＭ〔Ｎ−１〕における補正ベクトルΔＭＶ〔Ｎ−１〕を用いて補正ベクトルΔＭＶ〔Ｎ〕は、ＭＶＣＴ〔Ｎ〕−ＭＶＣ〔Ｎ〕＋ΔＭＶ〔Ｎ−１〕で表されることになる。
【０１３８】
従って中央処理ユニット４は、折れ線を構成する直線の各始点を基準にして各フレーム毎に、この演算処理を実行して、図４４との対比により図４６に示すように、各フレームの手振れ補正用の補正ベクトルΔＭＶ〔Ｎ〕を計算し、入力画像２１から切り出す領域をこの手振れ補正用の補正ベクトルΔＭＶ〔Ｎ〕で算出する。
【０１３９】
なおこの各フレームの直線Ｌ１上の座標を求める処理は、図４４との対比により図４７に示すように、１つの直前上における隣接する座標間の距離Ｌ〔Ｎ〕が等しくなるように設定してもよい。なおこの場合、元の座標ＣＡＭ〔１〕〜ＣＡＭ〔７〕から対応する直線上の座標ＰＡＮ〔１〕〜ＰＡＮ〔７〕までの距離δが許容値以下か否か改めて確認し、許容値より距離δが大きい場合には、改めて折れ線を設定し直すことが必要になる。
【０１４０】
続いて中央処理ユニット４は、ステップＳＰ１１１に移り（図３６）、ステップＳＰ１１０で計算した手振れ補正用の補正ベクトルΔＭＶ〔Ｎ〕を用いて、手振れ補正したビデオ信号を生成する。
【０１４１】
ここで中央処理ユニット４は、入力画像２１の画面中央を基準位置に設定し、図４８に示すように、各シーンの先頭フレームでは、この基準位置が切り出す領域の中央位置となるように、切り出す領域ＡＲを設定する。また続くフレームからは、図４８及び図４９に示すように、手振れ補正用の補正ベクトルΔＭＶ〔Ｎ〕の分、基準位置から変位した位置を中心位置に設定して切り出す領域ＡＲを設定する。またこの切り出す領域ＡＲの画素値の補間演算処理により、この切り出す領域ＡＲの画像をスケーリングして出力画像データを生成する。
【０１４２】
この一連の処理において、図５０により部分的に拡大して示すように、切り出す領域ＡＲ上における１画素の位置が、入力画像２１における画素の位置とずれている場合、中央処理ユニット４は、内装演算処理により切り出す領域ＡＲの各画素値を生成する。なおこの図５０において、Ω１〜Ω４は入力画像の各画素値であり、ω１〜ω４は、内装演算に使用する重み付け係数である。このω１〜ω４は、入力画像２１の隣接する画素間の間隔を、切り出す領域の対応する画素が内分する内分比である。
【０１４３】
このようにして出力画像データを生成すると、中央処理ユニット４は、ステップＳＰ１１１からステップＳＰ１１２に移ってこの処理手順を終了する。中央処理ユニット４は、この図３６の処理手順の実行により、図５１に示す機能ブロックを構成する。ここでこの図５１において、知識データベース（ＤＢ）８１は、評価値生成用の各種評価基準を保持し、補正補間部８２は、カメラ動きベクトルＭＶＣによるカメラ動き情報２３に基づいて手振れ補正した出力画像２４を生成する。またこの補正補間部８２において、カメラワーク成分抽出部８３、切り出し位置算出部８４、出力フレーム算出部８５は、それぞれ図３６のステップＳＰ９２、ＳＰ１１０、ＳＰ１１１の処理を実行する。
【０１４４】
（２）実施例の動作
以上の構成において、この手振れ補正装置１では（図２）、ビデオカメラ２で撮影したビデオ信号ＳＶがハードディスク装置３にダウンロードされた後、ハードディスク装置３に格納された処理プログラムに従った中央処理ユニット４の処理により、手振れ補正処理されて外部機器に出力される（図３〜図７）。
【０１４５】
この手振れ補正処理において、ビデオ信号ＳＶは、ＩＰ変換処理されてフレーム単位で処理され、連続するフレームの各部で動きベクトルが検出される。またこの動きベクトルの解析により、手振れとカメラワークとによるカメラの動きを入力画像上で表すカメラ動きベクトルＭＶＣが検出され、またさらにこのカメラ動きベクトルＭＶＣの解析により、カメラワークのみによるカメラの動きを入力画像上で表すカメラ動きベクトルＭＶＣＴが検出される。ビデオ信号ＳＶは、これらのカメラ動きベクトルＭＶＣ、ＭＶＣＴに基づいて、手振れ補正用の補正ベクトルΔＭＶが順次計算され、この補正ベクトルΔＭＶで各フレームの動きが補正されて手振れ補正処理される（図８、図９）。
【０１４６】
この手振れとカメラワークとによるカメラ動きベクトルＭＶＣの検出では、入力画像中で背景が最も大きな面積を占めるとの仮定に基づいて、初めに、入力画像の各部で検出した動きベクトルでヒストグラムが作成され、このヒストグラム上で、最もサンプル数の集中する動きベクトルのグループが背景のグループとして検出される。またこの背景のグループに属する動きベクトルが処理されて、カメラ動きベクトルＭＶＣＴが検出される。
【０１４７】
従ってこの実施例では、入力画像における各部の面積に比例するように、入力画像の各部から動きベクトルが均等に検出されないと、正しく背景を検出できなくなり、正しくカメラワークのみによるカメラ動きベクトルＭＶＣＴを検出できなくなる。そこで入力画像中で偏りなく、万遍に、動きベクトルを検出することが必要になる。
【０１４８】
そこでこの手振れ補正装置１では、ＫＬＴ法の特徴点抽出、追跡法を利用して入力画像の各部で動きベクトルを検出するようにして、ビデオ信号ＳＶによる入力画像の各フレームが複数ブロックに分割される（図１０、ステップＳＰ２３）。また先頭フレームでは各ブロックにそれぞれ一定数Ｎｆｐの特徴点が設定される（図１０、ステップＳＰ２５）。また先頭フレームに続く連続するフレームの入力画像において、この特徴点の追跡により動きベクトルが検出される（図１０、ステップＳＰ２８）。またこの続く連続するフレームの入力画像において、追跡困難な特徴点、隣接する特徴点に一定距離以上接近した特徴点が削除される。また各ブロックの特徴点の数が初めに設定した一定数Ｎｆｐとなるように、各ブロックに特徴点が追加設定され（図１０、ステップＳＰ２５）、特徴点の分布の偏りが補正される。
【０１４９】
この一連の処理により、この手振れ補正装置１では、背景が前景により遮蔽された場合、背景の一部がフレームアウトした場合等にあっても、概ね初めに設定した特徴点の数Ｎｆｐだけ各ブロックから動きベクトルを検出することができ、これにより偏り無く動きベクトルを検出することができる（図１０〜図１７）。またＫＬＴ法の特徴点抽出、追跡法を利用して動きベクトルを検出することから、ブロックマッチング法による場合に比して高い精度で動きベクトルを検出することができる。これにより画面全体から偏りなく高い精度で動きベクトルを検出することができる。
【０１５０】
すなわちビデオ信号ＳＶによる入力画像は、ＫＬＴの追跡法により、連続するフレームで各特徴点が追跡され、２つの特徴点が一定距離以上、近づくと、特徴点らしさを示す特徴度の低い側の特徴点が削除され、これにより特徴点の集中が防止されて特徴点の偏りが防止される（図１０、ステップＳＰ２８）。またこのとき追跡困難な特徴点も削除される。
【０１５１】
またビデオ信号ＳＶによる入力画像は、各フレームで、特徴点らしさを示す特徴度の高い順に、各画素の座標値が対応する特徴度と共に順次リスト化され、特徴点の候補を特徴度の高い順に示す特徴点リストが作成される（図２３）。また入力画像の画素の配列に対応するように特徴度を配列した特徴点マップが作成される（図２３）。
【０１５２】
ビデオ信号ＳＶによる入力画像は、先頭フレーム以外の連続するフレームにおいて、特徴点の削除により当初の設定数に対して不足する特徴点が発生すると、初めに設定した特徴点の数Ｎｆｐに特徴点数が満たないブロックに、特徴度が高い順に特徴点が追加設定される（図２２、ステップＳＰ５５−ＳＰ５６−ＳＰ５７−ＳＰ５５）。またこのとき、既存の特徴点に対して一定距離以上離れていることが確認される（図２２、ステップＳＰ５９）。
【０１５３】
これにより特徴点の密度の低下が防止されて特徴点の偏りが防止される。このとき既存の特徴点から一定の距離だけ離れている個所で、特徴度が大きな順に特徴点を追加することにより、追加して設定した特徴点についても、ＫＬＴの追跡法により追跡して、十分に高い精度の動きベクトルを検出することができる。
【０１５４】
より具体的に、手振れ補正装置１では、分割したブロックの情報を記録したブロックリストから、ブロック毎の特徴点数を示す作業用リストが作成され（図１８、ステップＳＰ３４）、初めに設定した特徴点の数Ｎｆｐを特徴点数が満たすブロックがこの作業用リストから除外され（図１８、ステップＳＰ３５）、これにより一定数Ｎｆｐに特徴点が不足するブロックが検出される。
【０１５５】
またこの作業用リストに記録されたブロックが、不足する特徴点数毎にグループ化され、不足する特徴点数が順次少なくなるように、ソート処理により各グループ内の配列が変更される（図１８、ステップＳＰ３６）。これによりこの手触れ補正装置１では、グループ単位で、特徴点を追加する処理順序が作業用リストに設定される。手触れ補正装置１では、作業用リストに記録された処理順序に従って、順次、不足する特徴点が対応するブロックに追加設定される。
【０１５６】
これによりこの手振れ補正装置１では、種々の条件で、この追加設定の処理を制限して処理の高速化を図るようにしても、真に特徴点が不足するブロックに優先的に特徴点を設定して、動きベクトルの偏りを防止することができる。またこのように特徴点の不足するブロックをリスト化して、ソートすることにより、簡易な処理で処理順序を設定することができる。
【０１５７】
具体的に、この手振れ補正装置１では、この処理を制限する条件が、１フレームの総合の特徴点数が、当初の設定値Ｎｔｏｔを越えない範囲で、特徴点を追加するとの条件であり、これにより実用上十分に、動きベクトルの偏りを防止して、特徴点の追加設定処理を必要最小限度に止めることができ、その結果、処理を簡略化して動きベクトルの偏りを防止することができる。
【０１５８】
またこのとき作業用リストの各グループでは、ブロックの処理順序がランダマイズされ、これにより１フレームの総合の特徴点数が、当初の設定値Ｎｔｏｔを越えない範囲で、特徴点を追加するようにして、例えば画面左側等の、特定の個所への偏った特徴点の追加を防止することができ、これによっても動きベクトルの偏りを防止することができる。
【０１５９】
またこの特徴点の追加は、１個、特徴点を追加する毎に、作業用リストが更新され、これによっても１フレームの総合の特徴点数が、当初の設定値Ｎｔｏｔを越えない範囲で、特徴点を追加するようにして、特徴点の偏りを防止して、動きベクトルの偏りを防止することができる。またランダマイズした配列の末尾に、特徴点を追加設定したブロックの記録を変更することによっても、特徴点の偏りを防止して、動きベクトルの偏りを防止することができる。
【０１６０】
しかしながら入力画像では、被写体の動きにより背景の面積が被写体以上に小さくなる場合もある。また背景の動きを被写体の動きとが似通っている場合もある。このような場合、入力画像上で偏りなく動きベクトルを検出しても、ヒストグラム上で、最もサンプル数の集中する動きベクトルのグループを背景のグループとして検出してカメラ動きベクトルを検出していたのでは、背景の動きを正しく検出できなくなる。すなわちこの場合、背景の動き検出精度が劣化し、カメラの動きを正しく検出できなくなる。
【０１６１】
このためこの手振れ補正装置１では、先頭１フレームで背景を検出する場合に限って、ヒストグラム上で動きベクトルの分布が集中して形成される山において、最も高さの高い山が検出され（図２７、ステップＳＰ７３）、背景から検出した動きベクトルによるものと判定される。またこの背景の山に属する動きベクトルから平均値が求められてカメラ動きベクトルＭＶＣが検出される。
【０１６２】
またこのようにして背景から検出した動きベクトルによるものと判定された山に属する特徴点については、背景に属することが分類情報に記録され、また他の特徴点の分類情報には、背景に属しないことが記録される（図２４、図２５、ステップＳＰ６５）。
【０１６３】
また以降のフレームでは、このようにして選定された分類情報を基準にして、背景から検出した動きベクトルによる山が検出される。またこの山の検出により属性情報が設定し直され、途中で追加設定された特徴については分類情報が設定される（図２７、ステップＳＰ７５、ＳＰ７６）。
【０１６４】
これによりこの手振れ補正装置１では、過去に背景と判定されて、その後、背景の面積が小さくなって、背景から検出される動きベクトルの数が低下した場合でも、正しくヒストグラム上における背景の山を追跡して背景による山を検出することができる。従って、背景の面積が小さくなった場合にあっても、背景の誤検出を有効に回避して正しくカメラ動きベクトルを検出することができる。
【０１６５】
また手振れ補正装置１では、ヒストグラムから背景による山を検出する際に、ヒストグラム上に現れた複数の山が、画像領域分割法により区切られ、複数の山に分割される（図２５、ステップＳＰ６３及び図２６）。またこのようにして分割した複数の山から背景の山が検出される（図２５、ステップＳＰ６４）。従ってこの手振れ補正装置１では、背景の動きに被写体の動きが似通っていて、ヒストグラム上で背景の山と被写体の山とが部分的に重なり合っている場合でも、これらの山を区別して処理することができ、これによって背景の動きに被写体の動きが似通っている場合の、背景の動き検出精度の劣化が防止される。
【０１６６】
より具体的に、この手振れ補正装置１では、入力画像の各部で検出された動きベクトルの大きさが、ヒストグラムの解像度ｒｅｚで正規化されてヒストグラムが生成され、これにより所望する分解能でカメラ動きベクトルを簡易に検出することができるように設定される。
【０１６７】
またこの山の分離に、ｗａｔｅｒｓｈｅｄ法が適用され（図２６）、ヒストグラムが反転されて反転ヒストグラムが作成された後、この反転ヒストグラムにおける局所最小値がｗａｔｅｒｓｈｅｄのシーズに設定されて各山が区分される。その結果、この手振れ補正装置１では、被写体の動きが種々に変化する場合にあっても、確実に山を分離して各部の動きを正確に検出することが可能になる。
【０１６８】
またこのようにして分離した複数の山から背景の山を検出する場合には、初めの１フレームは山の高さにより背景の山が検出された後、以降のフレームでは、分類情報に基づいて背景の山である確からしさを示す背景ピーク度合ＲＰを各山で計算し（図２７、ステップＳＰ７５）、この背景ピーク度合ＲＰの値が最も大きな山が背景による山と判定される（図２７、ステップＳＰ７５）。
【０１６９】
すなわち手振れ補正装置１では、背景の山における背景に分類された動きベクトル数の割合に、所定の係数Ｋを乗算して背景ピーク度合ＲＰが計算される。これにより分類情報に基づいて、背景特徴点の相対的な多さにより背景ピーク度合ＲＰが計算され、過去に背景と判定された可能性の高い特徴点が支配的な山が背景の山として検出され、種々に被写体の動きが変化した場合にあっても、背景の動きを正しく検出することが可能となる。
【０１７０】
またこのとき山全体の動きベクトルの数が所定のしきい値ｔｈｆｐ以上の場合、係数Ｋが値１に設定され、山全体の動きベクトルの数が所定のしきい値ｔｈｆｐより少ない場合、係数Ｋが値０に設定され、これにより山の高さを所定のしきい値ｔｈｆｐで量子化した係数Ｋにより背景の山検出に特徴点数が反映され、例えば静止していた被写体が動き出した場合（図３２）等に、この動き出した被写体の動きを背景の動きとして誤検出することが防止される（図３０、図３１）。
【０１７１】
なおこのように背景特徴点の相対的な多さと、特徴点数の絶対的な多さとから背景ピーク度合ＲＰを計算し、この背景ピーク度合ＲＰを判定して背景の山を検出していることから、動きベクトルのヒストグラムを作成する際に、動きベクトルの検出基準である特徴点の特質を利用して、背景の特徴点である確からしさを示す信頼度を計算し、この信頼度で背景ピーク度合ＲＰが変化するように各動きベクトルのヒストグラム上における度数を重み付けしてヒストグラムを作成すれば、一段と確実に背景の山を検出することができる。
【０１７２】
具体的に、背景として分類されて連続して追跡に成功した回数の多い特徴点は、追跡に成功した回数が多ければ多い程、背景に存在する可能性が高い。またこれとは逆に、背景で無いと分類されて連続して追跡に成功した回数の多い特徴点は、追跡に成功した回数が多ければ多い程、背景に存在する可能性が低い。従って対応する特徴点の追跡を連続して成功した回数を信頼度に設定して重み付け処理することにより、一段と確実に背景の山を検出することができる。
【０１７３】
また背景は、背景の他の部位に対して異なる動きを呈する部位が少ない、一般に硬いものである。従って背景に存在する特徴点は、背景に分類された周辺特徴点との距離が、各フレームで変化しない可能性が高い。従って対応する特徴点の周辺特徴点との距離の変化度合を信頼度に設定し、重み付け処理することにより、一段と確実に背景の山を検出することができる。なおこのようにヒストグラムに信頼度を反映させた場合、ヒストグラムから背景の山を検出する等の一連の処理においては、このヒストグラム上における動きベクトルの分布を一連の計算の処理に適用することになる。
【０１７４】
なおこのような信頼度による重み付け処理は、ヒストグラムを作成する際に、各動きベクトルの度数を重み付けしてもよく、またこれに代えて背景の山を検出する検出基準である各山の背景ピーク度合を重み付けするようにしてもよい。
【０１７５】
この手振れ補正装置１では、このようにして検出した背景の山から、この山を構成する動きベクトルを平均化して、背景の動きベクトルが検出され、この背景の動きベクトルの符号が反転されて、カメラ及び手振れによるカメラの動きを入力画像上で表すカメラ動きベクトルＭＶＣが計算される。
【０１７６】
この平均化の際に、手振れ補正装置１では、統計的手法を適用して、背景の山に分類された動きベクトルから、誤って分類された可能性の高い動きベクトルを除外して平均値を計算し、これによってもカメラ動きベクトルの検出精度を向上する。
【０１７７】
具体的に、手振れ補正装置１では、背景とされた山に属する動きベクトルの平均値が計算されて、この山の中心が計算される。またこの山の中心からの距離が所定の判定基準値で判定され、この距離が大きな動きベクトルが処理対象から除外され、これにより背景の動き検出精度が増大し、カメラ動きベクトルの検出精度が向上する。
【０１７８】
このときこの距離の判定基準にあっては、背景とされた山に属する動きベクトルの標準偏差が計算され、この標準偏差に応じて設定される。これにより例えば風に木々が揺らめくような背景にあっては、判定基準値が大きな値に設定されるのに対し、建築物の壁のように硬い背景にあっては、判定基準値が小さな値に設定されて、処理対象が除外される。これによりこの手振れ補正装置１では、背景に応じて判定基準を可変して誤って分類された可能性の高い動きベクトルが処理対象から除外され、一段と高い精度で背景の動きを検出することができる。
【０１７９】
なおこの判定基準値に、時間方向の動きベクトルの分布の変化を反映させるようにすれば、一段と検出精度を向上することができる。すなわち風に木々が揺らめく背景では、風の強さの時間変化によって揺らめきの大きさが変化し、この場合、背景から検出される動きベクトルの基準偏差が時間軸方向で変化することになる。従ってこの場合、この時間軸方向の分布の変化に対応するように、判定基準値を変化させて、検出精度を向上することができる。また連続した追跡回数、周辺画素との距離の変化度合による信頼度で判定基準値を補正するようにしても、連続した特徴点の追跡結果を平均値化の処理に反映させて検出精度を向上することができる。
【０１８０】
ところでこのようにして検出したカメラ動きベクトルＭＶＣを単に平滑化処理して高周波成分を取り除き、手振れ補正したのでは、細かな手振れは補正できるものの、大きなうねりが残ってしまう（図５４、符号Ｄ）。これに対してユーザーは、プロのカメラマンが撮影したようなカメラワークを意図して撮影し、このプロのカメラマンが撮影したような場合には、このようなうねりが存在しなくなる。
【０１８１】
そこでこの実施例では、シーンチェンジにより撮像結果がシーン毎に区切られ（図１、ステップＳＰ９７）、シーンチェンジの先頭フレームを基準にしてカメラ動きベクトルＭＶＣにより撮像結果の動きの軌跡が検出される（図１、ステップＳＰ９８、図３９）。またこの撮像結果の動きの軌跡から、ユーザーが意図したと推定されるカメラワークの軌跡が検出され（図１、ステップＳＰ１０１、図４３）、このカメラワークの軌跡となるように、撮像結果のフィールド間又はフレーム間の動きが補正されて手振れ補正される（図３６、ステップＳＰ１１０、ＳＰ１１１）。
【０１８２】
これによりこの手振れ補正された撮像結果は、図５４において符号Ｅで示すように、大きなうねり等が取り除かれて、ユーザーの意図したカメラワークによるもののように手振れ補正されて出力され、これにより手振れ補正装置１では、ユーザーの意図したカメラワークとなるように手振れ補正することができる。
【０１８３】
具体的に、この手振れ補正装置１では、撮像結果の各部で検出された動きベクトルＭＶを処理して得られるカメラ動きベクトルＭＶＣにより撮像結果の動きが検出され、これにより例えばジャイロセンサ等の動き検出機構が設けられていない一般の撮像装置による撮像結果を処理対象として、ユーザーの意図したカメラワークとなるように手振れ補正することができる。なおこれによりこの撮像結果の動きの検出では、ジャイロセンサ等の動き検出手段による動き検出結果を使用するようにしてもよく、この場合、この動き検出手段による動き検出結果を別途、記録して保持し、この手振れ補正装置１に入力することが必要になる。
【０１８４】
手振れ補正処理では、この動きベクトルＭＶから求めた撮像結果の動きの軌跡とユーザーが意図したと考えられるカメラワークの軌跡とから手振れ補正用ベクトルが検出され（図４５、図４６）、この手振れ補正用ベクトルで各フィールド又は各フレームの表示位置を変位され（図４８〜図５０）、これにより確実に手振れ補正することができる。
【０１８５】
なお撮像結果の動きは、動きベクトルを検出してパン、チルト等による撮像装置の向き、位置の変化による箇所の変化を適用する場合に限らず、例えば撮影している倍率の変化を適用するようにしてもよい。なおこの場合、動きベクトルを適用した場合には動きの軌跡が動きベクトルに対応する２次元空間での軌跡となるものが、さらに撮影している倍率の変化を適用した場合には、動きベクトルによる２次元に、倍率に対応する１次元を加えた３次元空間における軌跡が動きの軌跡となる。なおこの倍率にあっては、撮像結果から検出してもよく、撮像装置から別途、取得するようにしてもよい。またこれによりこれら撮影している箇所の変化、倍率の変化以外の状態の変化を動きの軌跡に適用するようにしてもよい。
【０１８６】
より具体的に、撮像結果は、Douglas-Peucker 法により、手振れ補正に許容される許容値を越えない範囲で、動きの軌跡を折れ線近似してカメラワークの軌跡が作成され（図４０〜図４３）、このDouglas-Peucker 法では簡易な処理により折れ線近似することができることから、簡易な処理によりカメラワークの軌跡を生成して手振れ補正することができる。
【０１８７】
また折れ線近似により作成した折れ線を、知識データベースに記録された評価基準で評価して評価値が作成され（図１、ステップＳＰ１０３）、この評価値が増大するように折れ線を補正してカメラワークの軌跡が作成され（図１、ステップＳＰ１００−ＳＰ１０２−ＳＰ１０３−ＳＰ１０４−ＳＰ１０１）、これにより可能な限りユーザーの意図したカメラワークにより手振れ補正することができる。
【０１８８】
またこの評価値検出用の評価基準の１つが垂直線、水平線であり、この垂直線、水平線に対する傾きが増大するに従って評価値が低下するように設定され、これによりパン、チルトの操作にあっては、プロのカメラマンが操作したようなカメラワークにより手振れ補正した撮像結果を得ることができる。
【０１８９】
またさらにこの評価値検出用の評価基準の１つが折れ線における隣接する直線と成す角度であり、この角度が鋭角になるに従って評価値が低下するように設定され、これにより急激な動きの変化を防止するようにカメラワークの軌跡が作成される。ここで動きの変化は滑らかである方が巧く撮影されていると言え、これによってもユーザーの意図したカメラワークによる撮像結果を得ることができる。
【０１９０】
（３）実施例の効果
以上の構成によれば、撮像結果のフィールド間又はフレーム間の動きから検出される撮像結果の動きの軌跡からユーザーが意図したカメラワークの軌跡を推定し、このカメラワークの軌跡となるように、撮像結果のフィールド間又はフレーム間の動きを補正することにより、ユーザーの意図したカメラワークとなるように手振れ補正することができる。
【０１９１】
また撮像結果の各部の動きベクトルを処理して、撮像結果のフィールド間又はフレーム間の動きを検出したことにより、ジャイロセンサ等の動き検出機構が設けられていない一般の撮像装置による撮像結果を処理対象として、ユーザーの意図したカメラワークとなるように手振れ補正することができる。
【０１９２】
また撮像結果の動きの軌跡とカメラワークの軌跡とから手振れ補正用ベクトルを検出し、この手振れ補正用ベクトルで各フィールド又は各フレームの表示位置を変位させることにより、簡易な構成で確実に手振れ補正することができる。
【０１９３】
またフィールド間又はフレーム間の撮像結果の動きが、撮像装置の向き、位置の変化による撮影している箇所の変化であることから、パン、チルト等の操作に関して、ユーザーの意図したカメラワークによる撮像結果を出力することができる。
【０１９４】
また手振れ補正に許容される許容値を越えない範囲で、撮像結果の動きの軌跡を折れ線に近似してカメラワークの軌跡を推定することから、種々の近似手法を適用してカメラワークの軌跡を簡易に作成することができる。
【０１９５】
また折れ線化により近似するようにして、データベースに記録された巧いカメラワークであるとされる評価基準に基づいて評価値を検出し、この評価値が増大するように折れ線を補正してカメラワークの軌跡を生成することにより、可能な限りユーザーの意図したカメラワークにより手振れ補正することができる。
【０１９６】
具体的に、折れ線の直線のうちで、水平方向及び又は垂直方向に延長する直線の水平線及び又は垂直線に対する傾きが増大するに従って評価値が低下するように、評価値を生成することにより、パン、チルト等の操作に関して、ユーザーの意図したカメラワークによる撮像結果を出力することができる。
【０１９７】
また折れ線における直線の隣接する直線との成す角度が鋭角になるに従って評価値が低下するように評価値を生成することにより、急激な動きの変化が少なくなるようにカメラワークの軌跡を生成して手振れ補正することができる。
【実施例２】
【０１９８】
図５２は、図４０〜図４３との対比により本発明の実施例２の手振れ補正装置におけるカメラワークの軌跡作成手法を示す平面図である。この実施例２の手振れ補正装置は、このカメラワークの軌跡作成手法が異なる点を除いて、実施例１と同一に構成される。
【０１９９】
この実施例の中央処理ユニットは、許容値を逸脱しない範囲で、動きの軌跡を折れ線近似してカメラワークの軌跡を作成する。
【０２００】
この実施例ではカメラワークの軌跡を構成する要素である直線毎に、カメラワークが巧いとされる順位が知識データベースに記録される。具体的に、直線については、水平線、垂直線が第１の順位に設定され、続く第２の順位に水平線に対して４５度傾いた直線が設定される。また続く第３の順位に水平線及び垂直線に対して３９度傾いた直線が設定される。
【０２０１】
中央処理ユニットは、動きの軌跡上の各フレームの座標に対して、許容値の枠を設定し、これによりこの動きの軌跡に許容値により許容される幅を設定する。またこの幅を越えない範囲で、開始点側から順位の高い直線を設定し、この順位の高い直線を設定できない部分では、順位の低い側の直線を選択して設定し、これにより許容値を逸脱しない範囲で動きの軌跡を、ユーザーの意図したカメラワークに折れ線近似する。
【０２０２】
従ってこの図５２の例では、開始点から優先順位が第１の水平線ＬＡを設定した後、順位が第１及び第２の直線を設定できなくなった時点で、順位が第３の３０度傾いた直線ＬＢを設定し、その後、順位が第１の水平線ＬＣ、垂直線ＬＤを設定して折れ線近似する。
【０２０３】
この実施例のように、優先順位の高い順に直線を設定して折れ線近似するようにしても、簡易な処理によりユーザーの意図したカメラワークにより手振れ補正することができる。
【実施例３】
【０２０４】
なお上述の実施例においては、Douglas-Peucker 法を用いて折れ線近似してカメラワークの軌跡を作成する場合について述べたが、本発明はこれに限らず、Snakesを用いた方法、B-splineを用いる方法等、種々の手法を適用して折れ線、曲線近似するようにしてもよい。なおSnakesを用いた方法としては、例えば「“Efficient energies and algorithms for parametric snakes”, IEEE Transactions on Image Processing, VOL13, N9, September 2004」、「“Energy minimization methods for feature displacement in map generalization”, Matthias Bader, Zurich 2004」、“Morphing using curves and shape interpolation techniques”, Henri Johan, Yuichi Koiso, Tomoyuki Nishita, University of Tokyo」等に開示の手法を適用することができる。また上述の実施例と同様の折れ線を用いて近似する方法としては、「“Building shape models from image sequences using piecewise linear approximation”, Derek R. Magee, Roger D. Boyle, University of Leeds」、“Efficient piecewise-linear function approximation using the uniform metric”」等に開示の手法を適用することができる。またB-splineを用いて近似する方法としては、「“Bayesian curve-fitting with free-knot splines”, Ilaria Dimatteo, Christopher R. Genovese, Robert E. Kass, Carnegie Mellon University」、「“Distance-preserving approximations of polygonal paths”, Joachim Gudmundsson, Giri Narashimhan, Michel Smid」、「“Polyline fitting of planar points under Min-Sum criteria”, Boris Aronov, Tetsuo Asano, Naoki Katoh, Kurst Mehlhorn」等に開示の手法を適用することができる。
【０２０５】
また上述の実施例においては、評価値を一定値とした場合について述べたが、本発明はこれに限らず、カメラ動きベクトルＭＶＣに応じて評価値を可変してもよい。具体的にカメラ動きベクトルＭＶＣの変化の広域成分の大きさに応じて評価値を可変するようにして、ユーザーの使用状況に応じて適切に評価値を設定することができる。
【０２０６】
また上述の実施例においては、撮像結果をダウンロードして手振れ補正する場合について述べたが、本発明はこれに限らず、撮像装置側で実行するようにしてもよい。なおこのように撮像装置側で手振れ補正する場合では、空き時間を利用して実行することが考えられる。
【０２０７】
また上述の実施例においては、ＫＬＴ法により特徴点を追跡して動きベクトルを検出する場合について述べたが、本発明はこれに限らず、ＫＬＴ法以外の特徴点の追跡法、特徴点を用いた動きベクトル検出手法を広く適用することができる。
【産業上の利用可能性】
【０２０８】
本発明は、手振れ補正方法、手振れ補正方法のプログラム、手振れ補正方法のプログラムを記録した記録媒体及び手振れ補正装置に関し、例えば動きベクトルを用いた手振れ補正処理に適用することができる。
【図面の簡単な説明】
【０２０９】
【図１】本発明の実施例１の手触れ補正装置におけるカメラワークの軌跡作成処理を示すフローチャートである。
【図２】本発明の実施例１の手触れ補正装置を示すブロック図である。
【図３】図２の手振れ補正装置における中央処理ユニットの処理手順を示すフローチャートである。
【図４】図３の処理手順による手振れ補正の説明に供する特性曲線図である。
【図５】補正ベクトルによる補正を示す略線図である。
【図６】図３の処理手順による機能ブロック図である。
【図７】図６とは異なる例による機能ブロック図である。
【図８】図３の処理手順におけるフレーム間カメラ動き算出処理を詳細に示すフローチャートである。
【図９】図８の処理手順による機能ブロック図である。
【図１０】図８の処理手順における動きベクトル算出処理を詳細に示すフローチャートである。
【図１１】図１０の処理手順による機能ブロック図である。
【図１２】図１０の処理手順の説明に供する略線図である。
【図１３】特徴点の設定の説明に供する略線図である。
【図１４】特徴点の追跡による動きベクトル検出の説明に供する略線図である。
【図１５】特徴点の増減の説明に供する略線図である。
【図１６】特徴点の追加の説明に供する略線図である。
【図１７】図１０の処理手順による機能ブロック図である。
【図１８】図１０の処理手順における特徴点選択を詳細に示すフローチャートである。
【図１９】図１８の続きを示すフローチャートである。
【図２０】図１８の処理手順の説明に供する図表である。
【図２１】図１８及び図１９の処理手順による機能ブロック図である。
【図２２】図１９の処理手順における特徴点抽出処理を詳細に示すフローチャートである。
【図２３】図２２の処理手順による機能ブロック図である。
【図２４】特徴点情報を示す図表である。
【図２５】動きベクトル解析処理を詳細に示すフローチャートである。
【図２６】図２５の動きベクトル解析処理におけるピーク抽出処理の説明に供する特性曲線図である。
【図２７】図２５の動きベクトル検出処理における背景ピーク検出処理を示すフローチャートである。
【図２８】図２６のピーク抽出処理の説明に供する略線図である。
【図２９】図２８の例によるヒストグラムを示す特性曲線図である。
【図３０】背景の面積が低下する場合の説明に供する略線図である。
【図３１】図２０の例によるヒストグラムを示す特性曲線図である。
【図３２】図２５の動きベクトル解析処理における特徴点分類更新処理の説明に供する略線図である。
【図３３】図２５の処理手順による機能ブロック図である。
【図３４】図２５の動きベクトル解析処理における背景部動きベクトル算出処理の説明に供するフローチャートである。
【図３５】図３４の処理手順による機能ブロック図である。
【図３６】図３の手振れ補正補間処理を示すフローチャートである。
【図３７】手振れ補正のための領域切り出しの説明に供する平面図である。
【図３８】手振れ補正のために切り出す領域を示す平面図である。
【図３９】動きの軌跡を示す平面図である。
【図４０】直線近似の説明に供する平面図である。
【図４１】図４０の続きの説明に供する平面図である。
【図４２】距離計算の説明に供する平面図である。
【図４３】図４１の続きの説明に供する平面図である。
【図４４】図４３の続きの説明に供する平面図である。
【図４５】手振れ補正用ベクトルの説明に供する平面図である。
【図４６】図４４の続きの説明に供する平面図である。
【図４７】カメラワークの軌跡の処理の他の例を示す平面図である。
【図４８】動き補正の説明に供する平面図である。
【図４９】図４８の続きの説明に供する平面図である。
【図５０】画素値の内装演算の説明に供する平面図である。
【図５１】図１のフローチャートによる機能ブロック図である。
【図５２】実施例２のカメラワークの軌跡の設定を示す平面図である。
【図５３】従来の手振れ補正の説明に供する略線図である。
【図５４】従来の手振れ補正結果の説明に供する特性曲線図である。
【符号の説明】
【０２１０】
１……手振れ補正装置、２……テレビジョンカメラ、４……中央処理ユニット、２２……フレーム間カメラ動き算出部、２５……手振れ補正補間部、３１……動きベクトル算出部、３２……動きベクトル解析部、３３……カメラ動き算出部、４３……特徴点抽出手段、４４……特徴点統合モジュール、４６……特徴点追跡手段、４７……特徴点動きベクトル算出手段、５１……ヒストグラム算出部、５２……ピーク抽出部、５３……背景ピーク検出部、５４……特徴点分類更新部、５５……背景部動きベクトル検出部、７１……動きベクトル整理部、７２……背景部の平均ベクトル計算部、８２……補正補間部、８３……カメラワーク成分抽出部、６４……切り出し位置算出部、８５……出力フレーム算出部
【図１】
2008005109.tif 000004
【図２】
2008005109.tif 000005
【図３】
2008005109.tif 000006
【図４】
2008005109.tif 000007
【図５】
2008005109.tif 000008
【図６】
2008005109.tif 000009
【図７】
2008005109.tif 000010
【図８】
2008005109.tif 000011
【図９】
2008005109.tif 000012
【図１０】
2008005109.tif 000013
【図１１】
2008005109.tif 000014
【図１２】
2008005109.tif 000015
【図１３】
2008005109.tif 000016
【図１４】
2008005109.tif 000017
【図１５】
2008005109.tif 000018
【図１６】
2008005109.tif 000019
【図１７】
2008005109.tif 000020
【図１８】
2008005109.tif 000021
【図１９】
2008005109.tif 000022
【図２０】
2008005109.tif 000023
【図２１】
2008005109.tif 000024
【図２２】
2008005109.tif 000025
【図２３】
2008005109.tif 000026
【図２４】
2008005109.tif 000027
【図２５】
2008005109.tif 000028
【図２６】
2008005109.tif 000029
【図２７】
2008005109.tif 000030
【図２８】
2008005109.tif 000031
【図２９】
2008005109.tif 000032
【図３０】
2008005109.tif 000033
【図３１】
2008005109.tif 000034
【図３２】
2008005109.tif 000035
【図３３】
2008005109.tif 000036
【図３４】
2008005109.tif 000037
【図３５】
2008005109.tif 000038
【図３６】
2008005109.tif 000039
【図３７】
2008005109.tif 000040
【図３８】
2008005109.tif 000041
【図３９】
2008005109.tif 000042
【図４０】
2008005109.tif 000043
【図４１】
2008005109.tif 000044
【図４２】
2008005109.tif 000045
【図４３】
2008005109.tif 000046
【図４４】
2008005109.tif 000047
【図４５】
2008005109.tif 000048
【図４６】
2008005109.tif 000049
【図４７】
2008005109.tif 000050
【図４８】
2008005109.tif 000051
【図４９】
2008005109.tif 000052
【図５０】
2008005109.tif 000053
【図５１】
2008005109.tif 000054
【図５２】
2008005109.tif 000055
【図５３】
2008005109.tif 000056
【図５４】
2008005109.tif 000057