(57)【要約】【課題】撮像画像のぶれを補正するために用いる動きベクトルを、画面内の主たる被写体の状態に関わらず高精度に求める。【解決手段】画面を所定サイズのブロックに分割し、ブロック毎に動きベクトルを求める。求められた動きベクトルに基づき、ブロックを、被写体画像を含む被写体グループと、背景画像からなる背景グループとに分類し、それぞれのグループにおける代表動きベクトルを求める。被写体グループに含まれるブロック数を閾値と比較し、当該ブロック数が閾値よりも多ければ、被写体グループの代表動きベクトルを、画面全体の動きベクトルとして選択する。一方、被写体グループに含まれるブロック数が閾値よりも少なければ、背景ブロックの代表動きベクトルを、画面全体の動きベクトルとして選択する。【選択図】図７
2010258710.tif 000002
【特許請求の範囲】
【請求項１】
連続して撮像される画像のぶれを補正するために用いる、画像全体の動きベクトルを検出する動きベクトル検出装置であって、
画像を所定サイズに分割したブロック毎に動きベクトルを検出する動きベクトル検出手段と、
前記動きベクトル検出手段で検出された前記動きベクトルに基づき、前記ブロックのそれぞれをグループに分類する分類手段と、
前記分類手段で分類された前記グループに属する前記ブロックの前記動きベクトルを代表する代表動きベクトルを算出する代表動きベクトル算出手段と、
前記分類手段で分類された前記グループが、第１のグループと、前記第１のグループに対して相対的に移動している第２のグループのいずれであるかを判定する第１の判定手段と、
前記第１の判定手段により前記第２のグループと判定されたグループに含まれる前記ブロックの数が閾値を超えていれば、前記画像全体の動きベクトルとして該第２のグループに対応する前記代表動きベクトルを選択し、該第２のグループに含まれる該ブロックの数が該閾値を超えていなければ、該画像全体の動きベクトルとして前記第１のグループに対応する前記代表動きベクトルを選択する算出手段とを有することを特徴とする動きベクトル検出装置。
【請求項２】
前記撮像された画像について、前記第２のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択しているか否かを判定する第２の判定手段をさらに有し、
前記算出手段は、
前記第２の判定手段により、前記第２のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択していると判定されるか否かによって、前記閾値を変更して前記画像全体の動きベクトルとして用いる前記代表動きベクトルを選択することを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項３】
前記第２のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択していると判定された際の前記閾値は、前記第２のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択していると判定されなった際の前記閾値よりも大きいことを特徴とする請求項２に記載の動きベクトル検出装置。
【請求項４】
前記画像に対して時間的に直前の画像について、前記第２のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択しているか否かを判定する第２の判定手段と、
前記第１のグループに対応する前記代表動きベクトルと、前記第２のグループに対応する前記代表動きベクトルとの差分を算出する差分算出手段と
をさらに有し、
前記算出手段は、前記第２の判定手段による判定結果と、前記差分算出手段で算出された前記差分とをさらに用いて、前記第１のグループに対応する前記代表動きベクトルと前記第２のグループに対応する前記代表動きベクトルとのうち前記画像全体の動きベクトルとして用いる代表動きベクトルを選択することを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項５】
前記第１の判定手段により判定された前記第２のグループに含まれる前記ブロックの数が閾値を超え、かつ、前記第２の判定手段により前記第２のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択していると判定された際は、前記算出手段は、前記第２のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択することを特徴とする請求項４に記載の動きベクトル検出装置。
【請求項６】
前記第１の判定手段により判定された前記第２のグループに含まれる前記ブロックの数が閾値を超え、かつ、前記第２の判定手段により前記第１のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択していると判定された際は、前記算出手段は、前記差分が所定値より大きければ前記第１のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択することを特徴とする請求項４に記載の動きベクトル検出装置。
【請求項７】
前記第１の判定手段により判定された前記第２のグループに含まれる前記ブロックの数が閾値を超え、かつ、前記第２の判定手段により前記第１のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択していると判定された際は、前記算出手段は、前記差分が前記所定値以内であれば前記第２のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択することを特徴とする請求項４に記載の動きベクトル検出装置。
【請求項８】
前記第１の判定手段により判定された前記第２のグループに含まれる前記ブロックの数が前記閾値以下であり、かつ、前記第２の判定手段により前記第１のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択していると判定された際は、前記算出手段は、前記第１のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択することを特徴とする請求項４に記載の動きベクトル検出装置。
【請求項９】
前記第１の判定手段により判定された前記第２のグループに含まれる前記ブロックの数が前記閾値以下であり、かつ、前記第２の判定手段により前記第２のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択していると判定された際は、前記算出手段は、前記差分が所定値より大きければ前記第２のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択することを特徴とする請求項４に記載の動きベクトル検出装置。
【請求項１０】
前記第１の判定手段により判定された前記第２のグループに含まれる前記ブロックの数が前記閾値以下であり、かつ、前記第２の判定手段により前記第２のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択していると判定された際は、前記算出手段は、前記差分が前記所定値以内であれば前記第１のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択することを特徴とする請求項４に記載の動きベクトル検出装置。
【請求項１１】
前記算出手段は、
前記第２の判定手段により、前記第１のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択していると判定されるか否かによって、前記閾値を変更して前記画像全体の動きベクトルとして用いる前記代表動きベクトルを選択することを特徴とする請求項５乃至請求項１０の何れか１項に記載の動きベクトル検出装置。
【請求項１２】
前記第２のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択していると判定された際の前記閾値は、前記第２のグループに対応する前記代表動きベクトルを前記画像全体の動きベクトルとして選択していると判定されなった際の前記閾値よりも大きいことを特徴とする請求項１１に記載の動きベクトル検出装置。
【請求項１３】
前記算出手段は、
前記第１の判定手段により判定された前記第２のグループに含まれる前記ブロックの数に基づき、前記第１のグループに対応する前記代表動きベクトルと、前記第２のグループに対応する前記代表動きベクトルとを所定の割合で合成し、前記画像全体の動きベクトルとして用いることを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項１４】
前記算出手段は、
前記判定手段により判定された前記第２のグループに含まれる前記ブロックの数が前記閾値を超えていた際は、前記第２のグループに対応する前記代表動きベクトルに対する前記所定の割合を増加させることを特徴とする請求項１３に記載の動きベクトル検出装置。
【請求項１５】
前記分類手段は、
前記動きベクトルの値の度数分布に基づき前記ブロックの分類を行うことを特徴とする請求項１乃至請求項１４の何れか１項に記載の動きベクトル検出装置。
【請求項１６】
前記第１の判定手段は、
前記分類手段で前記ブロックが分類された前記グループに属する前記ブロックの座標のばらつきを算出し、前記グループのうち該ばらつきが大きいグループを前記第１のグループとし、該ばらつきが小さいグループを前記第２のグループとすることを特徴とする請求項１乃至請求項１４の何れか１項に記載の動きベクトル検出装置。
【請求項１７】
前記第１の判定手段は、さらに、
前記分類手段で前記ブロックのそれぞれが３以上のグループに分類された場合、前記ばらつきが最も大きいグループを前記第１のグループとし、該第１のグループでない複数のグループのうち、分類された前記ブロックの数が最も多いグループを前記第２のグループとし、前記第１及び第２のグループでないグループを第３のグループとすることを特徴とする請求項１６に記載の動きベクトル検出装置。
【請求項１８】
前記画像から顔を検出する顔検出手段をさらに有し、
前記第１の判定手段は、
前記分類手段で前記ブロックが分類された前記グループの間で、前記顔検出手段で検出された前記顔の領域を含む該ブロック数を比較し、該ブロック数が多い方の該グループを前記第２のグループとし、該ブロック数が少ない方の該グループを前記第１のグループとすることを特徴とする請求項１乃至請求項１４の何れか１項に記載の動きベクトル検出装置。
【請求項１９】
前記第１の判定手段は、さらに、
前記分類手段で前記ブロックのそれぞれが３以上のグループに分類された場合、前記顔の領域を含むブロックが最も少ないグループを前記第１のグループとし、該第１のグループでない複数のグループのうち、分類された前記ブロックの数が最も多いグループを前記第２のグループとし、前記第１及び第２のグループでないグループを第３のグループとすることを特徴とする請求項１８に記載の動きベクトル検出装置。
【請求項２０】
連続して撮像される画像のぶれを補正するために用いる、画像全体の動きベクトルを検出する動きベクトル検出装置の制御方法であって、
画像を所定サイズに分割したブロック毎に動きベクトルを検出する動きベクトル検出ステップと、
前記動きベクトル検出ステップで検出された前記動きベクトルに基づき、前記ブロックのそれぞれをグループに分類する分類ステップと、
前記分類ステップで分類された前記グループに属する前記ブロックの前記動きベクトルを代表する代表動きベクトルを算出する代表動きベクトル算出ステップと、
前記分類ステップで分類された前記グループが、第１のグループ及び前記第１のグループに対して相対的に移動している第２のグループのいずれであるか判定する第１の判定ステップと、
前記第１の判定手段により前記第２のグループと判定されたグループに含まれる前記ブロックの数が閾値を超えていれば、前記画像全体の動きベクトルとして該第２のグループに対応する前記代表動きベクトルを選択し、該第２のグループに含まれる該ブロックの数が該閾値を超えていなければ、該画像全体の動きベクトルとして前記第１のグループに対応する前記代表動きベクトルを選択する算出ステップとを有することを特徴とする動きベクトル検出装置の制御方法。
【請求項２１】
撮像光学系と、
前記撮像光学系を介して入射された光を撮像して撮像信号として出力する撮像手段と、
前記撮像信号に対して所定の信号処理を施して撮像画像として出力する信号処理手段と、
前記信号処理手段から出力された前記撮像画像に基づき該撮像画像による画像全体の動きベクトルを求める請求項１乃至請求項１９の何れか１項に記載の動きベクトル検出装置と、
前記動きベクトル検出装置で求められた前記画像全体の動きベクトルを用いて前記信号処理手段から出力された前記撮像画像のぶれを補正するぶれ補正手段とを有することを特徴とする撮像装置。
【請求項２２】
コンピュータを請求項１乃至請求項１９の何れか１項に記載の動きベクトル検出装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きベクトル検出装置およびその制御方法、ならびに撮像装置関し、特には、撮影された動画像のブレを補正するために用いる動きベクトルを検出する動きベクトル検出装置およびその制御方法、ならびに撮像装置に関する。
【背景技術】
【０００２】
ビデオカメラといった、動画像を撮影する撮像装置においては、特にレンズを望遠側にズームしたときに、撮影された画像が手ぶれによりぶれることが問題となる。このような手ぶれによる画像のぶれを防止するために、従来より、撮影した画像信号から画像の動きベクトルを検出し、この動きベクトルに基づいて画像のぶれを補正する技術が提案されている。
【０００３】
画像の動きベクトルを検出する方法としては、従来より、相関演算に基づく相関法やブロックマッチング法などが知られている。ブロックマッチング法では、画像を所定サイズのブロック（例えば８画素×８画素）に分割する。そして、このブロック単位で前のフィールド（またはフレーム）の一定範囲の画素との差分を計算し、この差分の絶対値の和が最小となる前のフィールド（またはフレーム）のブロックを探索する。そして、現在のフィールド（またはフレーム）と、前のフィールド（またはフレーム）との相対的なずれが、探索されたブロックの動きベクトルを示している。
【０００４】
また、マッチング演算については、尾上守夫らにより、「情報処理Vol.17,No.7,p.634 〜640 July 1976」で詳しく論じられている。
【０００５】
次に、ブロックマッチング法を用いた従来の動きベクトル検出法の一例を、図面を用いて説明する。図２２は、従来の動きベクトル検出方法によりぶれを防止するための一例の構成を示す。動きベクトルの検出対象となる画像信号（フィールド画像信号とする）が画像メモリ１０１に供給され一時的に記憶されると共に、空間周波数成分を抽出するフィルタ１０２に供給される。フィルタ１０２は、画像信号から動きベクトル検出に有用な空間周波数成分を抽出する。すなわち、フィルタ１０２は、画像信号の空間周波数成分のうち低周波成分と高周波成分とを除去する。
【０００６】
フィルタ１０２を通過した画像信号は、２値化回路１０３に加えられる。２値化回路１０３は、画像信号を、ゼロレベルを基準として２値化する。具体的には、出力信号の符号ビットを出力する。２値化された画像信号は、相関演算回路１０４およびメモリ１０５に供給される。メモリ１０５は、画像信号を１フィールド期間だけ遅延させるためのものである。メモリ１０５から読み出された１フィールド前の画像信号は、相関演算回路１０４に供給される。
【０００７】
相関演算回路１０４は、ブロックマッチング法に従い、画像信号による画像領域を所定サイズのブロックに分割し、現フィールドと前フィールドとの相関演算をブロック毎に行う。相関演算により算出されたブロック毎の相関値は、動きベクトル検出回路１０６に供給される。動きベクトル検出回路１０６は、供給された相関値から、ブロック毎の動きベクトルを検出する。具体的には、相関値が最小となる前フィールドのブロックを探索し、その相対的なずれを動きベクトルとしている。
【０００８】
このブロック毎の動きベクトルは、動きベクトル決定回路１０７に供給される。動きベクトル決定回路１０７は、ブロック毎の動きベクトルから、フィールド画像全体の動きベクトルを決定する。具体的には、ブロック毎の動きベクトルの中央値または平均値を、フィールド画像全体の動きベクトルとしている。
【０００９】
動きベクトル決定回路１０７は、決定した全体の動きベクトルをメモリ読み出し制御回路１０８に供給する。メモリ読み出し制御回路１０８は、画像メモリ１０１に記憶されたフィールド画像信号を読み出して出力する。このとき、メモリ読み出し制御回路１０８は、動きベクトル決定回路１０７で決定された全体の動きベクトルに応じて、画像の動きが相殺されるように画像メモリ１０１の読み出し位置を制御する。これにより、ぶれが補正された画像信号が画像メモリ１０１から出力される。
【００１０】
ところで、上述の従来の方法では、画像中に移動被写体がある場合、例えばブロック毎に検出された動きベクトルの平均値を全体の動きベクトルにすると、画像中の移動被写体の動きが全体の動きベクトルに混入してしまうことになる。その結果、メモリ読み出し制御回路１０８の制御により、移動被写体が画面内の元の位置に止まるように画像メモリ１０１の読み出し位置が変化する。それにより、本来動きが無いはずである画面内の領域の位置が変化するため、画面内の画像が移動物に引っ張られたような動きをしてしまう。
【００１１】
この問題を解決するために、特許文献１には、各ブロック領域に対して、重み付けの係数を設定し、各重み係数と各ブロック領域のベクトル検出値から、画面全体の動きベクトルを算出するようにした技術が開示されている。特許文献１では、画面の中央は人などの移動する被写体が存在する可能性が高いため重み付けの係数を小さくし、画面の周辺部は重み付けの係数を小さくすることにより、移動する被写体に画面内の画像が引っ張られるような動きを回避している。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開平０４−１８０３７０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上述した特許文献１の方法では、例えば図２３（ａ）のように、主たる被写体２００（人物）の画面に占める割合が比較的小さければ、画面周辺部の背景領域の重み付け係数を大きくすることで、背景領域のぶれに近似した動きベクトルを算出できる。しかし、図２３（ｂ）に示すように、被写体２００の画面に占める割合が比較的大きければ、画面周辺部の領域では被写体２００と背景とが両方存在することになり、動きベクトル検出値の誤差が大きくなるという問題点があった。
【００１４】
したがって、本発明の目的は、撮像画像のぶれを補正するために用いる動きベクトルを、画面内の主たる被写体の状態に関わらず高精度に求めることができる動きベクトル検出装置およびその制御方法、ならびに撮像装置を提供することにある。
【課題を解決するための手段】
【００１５】
本発明は、上述した課題を解決するために、連続して撮像される画像のぶれを補正するために用いる、画像全体の動きベクトルを検出する動きベクトル検出装置であって、画像を所定サイズに分割したブロック毎に動きベクトルを検出する動きベクトル検出手段と、動きベクトル検出手段で検出された動きベクトルに基づき、ブロックのそれぞれをグループに分類する分類手段と、分類手段で分類されたグループに属するブロックの動きベクトルを代表する代表動きベクトルを算出する代表動きベクトル算出手段と、分類手段で分類されたグループが、第１のグループと、第１のグループに対して画像上で相対的に移動している第２のグループのいずれであるかを判定する第１の判定手段と、第１の判定手段により第２のグループと判定されたグループに含まれるブロックの数が閾値を超えていれば、画像全体の動きベクトルとして第２のグループに対応する代表動きベクトルを選択し、第２のグループに含まれるブロックの数が閾値を超えていなければ、画像全体の動きベクトルとして第１のグループに対応する代表動きベクトルを選択する算出手段とを有することを特徴とする動きベクトル検出装置である。
【発明の効果】
【００１６】
本発明は、撮像画像のぶれを補正するために用いる動きベクトルを、画面内の主たる被写体の状態に関わらず高精度に求めることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明に適用可能な撮像装置の一例の構成を示すブロック図である。
【図２】本発明に係る動きベクトル検出部の一例の構成を示すブロック図である。
【図３】動きベクトル分類部における処理を説明するための図である。
【図４】動きベクトル分類部における処理を説明するためのヒストグラムである。
【図５】度数分布に基づくベクトル検出領域のグループ分類を説明するための図である。
【図６】度数分布に基づくベクトル検出領域のグループ分類を説明するための図である。
【図７】本発明の第１の実施形態による全体動きベクトルの算出処理を示す一例のフローチャートである。
【図８】動きベクトル分類部で検出された各ベクトルに対する第１の判定方法による判定処理を説明するための図である。
【図９】動きベクトル分類部で検出された各ベクトルに対する第２の判定方法による判定処理を説明するための図である。
【図１０】動きベクトル分類部で検出された各ベクトルに対する第２の判定方法による判定処理を説明するためのヒストグラムである。
【図１１】本発明の第１の実施形態による処理結果をより具体的に説明するための図である。
【図１２】本発明の第１の実施形態による処理結果をより具体的に説明するためのヒストグラムである。
【図１３】本発明の第１の実施形態による処理結果をより具体的に説明するための図である。
【図１４】本発明の第１の実施形態による処理結果をより具体的に説明するためのヒストグラムである。
【図１５】本発明の第２の実施形態による全体動きベクトルの算出処理を示す一例のフローチャートである。
【図１６】本発明の第３の実施形態による全体動きベクトルの算出処理を示す一例のフローチャートである。
【図１７】本発明の第３の実施形態の変形例による全体動きベクトルの算出処理を示す一例のフローチャートである。
【図１８】本発明の第４の実施形態による全体動きベクトルの算出処理を示す一例のフローチャートである。
【図１９】第１のグループ選択の一例の処理を示すフローチャートである。
【図２０】第２のグループ選択の一例の処理を示すフローチャートである。
【図２１】本発明の第４の実施形態の変形例による全体動きベクトルの算出処理を示す一例のフローチャートである。
【図２２】従来の動きベクトル検出方法によりぶれを防止するための一例の構成を示すブロック図である。
【図２３】従来技術の問題点を説明するための図である。
【発明を実施するための形態】
【００１８】
＜第１の実施形態＞
以下、本発明の第１の実施形態を、図面を参照しながら説明する。図１は、本発明に適用可能な撮像装置１の一例の構成を示す。撮像装置１は、例えば、連続して撮像される撮像画像の一例としての動画像の撮影を行うデジタルビデオカメラである。
【００１９】
図１において、撮像光学系１１は、レンズおよび絞りなどを含む。撮像手段としての固体撮像素子１２は、ＣＣＤやＣＭＯＳセンサなどであって、撮像光学系１１を介して入射された光を撮像信号に変換して出力する。駆動部２１は、撮像光学系１１が含むズームレンズ、フォーカスレンズおよび絞りなど（図示しない）をシステム制御部２２の制御に従い駆動する。駆動部２３は、システム制御部２２の制御に従い固体撮像素子１２を駆動する。信号処理部１３は、固体撮像素子１２から出力されたアナログ画像信号に対して、ノイズ除去、ゲイン制御、Ａ／Ｄ変換、ガンマ補正およびホワイトバランス補正など必要な信号処理を行い、画像データとして出力する。
【００２０】
動きベクトル検出部１４は、信号処理部１３で信号処理された画像データから、動きベクトルを検出する。顔検出部２４は、信号処理部１３から出力された画像データから顔を検出する。画像メモリ１６は、信号処理部１３から出力された画像データを記憶する。ぶれ補正手段としてのメモリ読み出し制御部１５は、動きベクトル検出部１４により検出された動きベクトルに基づき画像メモリ１６からの画像データの読み出しを制御する。これにより、後述する記録媒体１８に記録される画像データや、表示デバイス２０に表示される画像データの範囲が決められる。
【００２１】
記録手段としての記録部１７は、画像メモリ１６から読み出された画像データを記録媒体１８に記録する。このとき、記録部１７は、画像データに対して所定の方式により圧縮符号化を施し、圧縮符号化された圧縮画像データを記録部１７に記録する。記録媒体１８としては、不揮発性の半導体メモリやハードディスク、光ディスクなどを適用することができる。表示部１９は、画像メモリ１６から読み出された画像データを表示デバイス２０の表示解像度に合わせて解像度変換し、表示デバイス２０に表示させる。
【００２２】
システム制御部２２は、例えばＣＰＵ、ＲＯＭおよびＲＡＭを有し、ＲＯＭに予め記憶されたプログラムに従い、ＲＡＭをワークメモリとして用いて、この撮像装置１の各部を制御する。
【００２３】
次に、上述のような構成の撮像装置１における一例の撮影動作について説明する。駆動部２１は、システム制御部２２からの制御信号に基づいて、撮像光学系１１内のズームレンズ、フォーカスレンズ、絞りを駆動して、被写体像を撮像素子１２上に結像させる。撮像素子１２は、システム制御部２２により制御される駆動部２１が発生する駆動パルスにより駆動され、被写体像を光電変換して電気信号に変換し、アナログ画像信号を出力する。
【００２４】
撮像素子１２から出力されたアナログ画像信号は、信号処理部１３に供給され、信号処理部１３が有するＡ／Ｄ変換器でデジタル画像信号に変換される。信号処理部１３は、システム制御部２２の制御に従い、デジタル画像信号に対して、色変換処理、ホワイトバランス補正処理、ガンマ補正処理などの画像処理を行う。画像メモリ１６は、信号処理部１３で信号処理中のデジタル画像信号を一時的に記憶したり、信号処理されたデジタル画像信号である画像データを記憶するために用いられる。
【００２５】
動きベクトル検出部１４は、本発明に係る動きベクトル検出装置としての処理を行う部分で、信号処理部１３で信号処理された画像データから動きベクトルを検出し、動きベクトル情報として出力する。動きベクトル検出部１４における動きベクトル検出処理の詳細については、後述する。メモリ読み出し制御部１５は、動きベクトル検出部１４により検出された動きベクトル情報に基づいて画像メモリ１６からの画像データの読み出しを制御し、画像ぶれが補正されるように、記録または表示する画像データの範囲を決定する。
【００２６】
顔検出手段としての顔検出部２４は、信号処理部１３で信号処理された画像データから顔を検出し、画像データ上での顔の位置を算出する。算出された画像データ上の顔の位置は、画像データと共に、顔検出枠として表示部１９により表示デバイス２０に表示させることができる。
【００２７】
なお、顔検出部２４での顔検出には、公知の顔検出技術を利用できる。公知の顔検出技術としては、ニューラルネットワークなどを利用した学習に基づく手法、テンプレートマッチングを用いて目、鼻、口等の形状に特徴のある部位を画像から探し出し、類似度が高ければ顔とみなす手法などがある。また、他にも、肌の色や目の形といった画像特徴量を検出し、統計的解析を用いた手法等、多数提案されている。一般的にはこれらの手法を複数組み合わせ、顔検出の精度を向上させている。具体的な例としては特開２００２−２５１３８０号公報に記載のウェーブレット変換と画像特徴量を利用して顔検出する方法などが挙げられる。
【００２８】
信号処理部１３で信号処理され画像メモリ１６に記憶されている画像データは、記録部１７において、記録媒体１８への記録に適したデータに変換されて記録媒体１８に記録される。例えば、記録部１７は、供給された画像データを、例えば階層構造を持つファイルシステムによるファイルに格納して、記録媒体１８に記録する。
【００２９】
また、画像メモリ１６から読み出された画像データは、表示部１９において表示デバイス２０の表示解像度に合わせて解像度変換される。表示部１９は、さらに、解像度変換された画像データを、表示デバイス２０に適した信号、例えばＮＴＳＣ方式のアナログ画像信号に変換して表示デバイス２０に供給する。
【００３０】
図２は、上述した、本発明に係る動きベクトル検出部１４の一例の構成を示す。信号処理回路から出力された例えばフィールド画像による画像データは、画像メモリ１６に記憶されると共に、フィルタ３３に供給される。フィルタ３３は、画像データから、空間周波数の低周波成分と高周波成分とを除去し、動きベクトル検出に有用な区間周波数成分を抽出する。フィルタ３３から出力された画像データは、２値化部３４で例えばゼロレベルを基準として２値化され、相関演算部３５に供給されると共に、メモリ３６に記憶される。メモリ３６は、画像データを１フィールド分遅延させるためのものである。
【００３１】
相関演算部３５は、ブロックマッチング法に従い、画像データによる画像領域を、例えば８画素×８画素といった所定サイズのブロックに分割し、現フィールドと前フィールドとの相関演算をブロック毎に行う。相関演算により算出された相関値は、動きベクトル検出部３７に供給される。動きベクトル検出手段としての動きベクトル検出部３７は、供給された相関値からブロック毎の動きベクトルを検出する。具体的には、相関値が最小となる前フィールドのブロックを探索し、その相対的なずれを動きベクトルとしている。
【００３２】
動きベクトル検出部３７で検出されたブロック毎の動きベクトルは、分類手段としての動きベクトル分類部３０に供給される。動きベクトル分類部３０は、供給されたブロックを、Ｘ方向（画面の水平方向）およびＹ方向（画面の垂直方向）それぞれの動きベクトル値に基づきグループに分類する。動きベクトル分類部３０で分類されたブロックの動きベクトル値は、動きベクトル演算部３１に供給される。
【００３３】
代表動きベクトル算出手段としての動きベクトル演算部３１は、動きベクトル分類部３０で分類されたグループ毎に、グループとしての代表動きベクトルを求める。代表動きベクトルは、例えば動きベクトル値の出現頻度のヒストグラムを取ったときの、グループ内で最大度数を持つ階級の階級値を用いることができる。これに限らず、グループに属する全てのベクトル検出領域で検出された動きベクトル値の平均値を、グループとしての代表動きベクトルとして用いることもできる。
【００３４】
動きベクトル演算部３１で求められたグループ毎の代表動きベクトルは、第１の判定手段、第２の判定手段および選択手段としての動きベクトル制御部３２に供給される。動きベクトル制御部３２には、さらに、顔検出部２４から顔検出情報が供給される。動きベクトル制御部３２は、これらグループ毎の代表動きベクトルと、顔検出情報とを用いて、画面全体すなわち１フィールドの画像全体での動きベクトル（全体動きベクトルと呼ぶ）を算出する。
【００３５】
動きベクトル制御部３２で算出された全体動きベクトルは、メモリ読み出し制御部１５に供給される。メモリ読み出し制御部１５により、この全体動きベクトルに基づき画像メモリ１６に記憶される画像データの読み出しを制御することで、手ぶれ補正を行うことができる。
【００３６】
次に、上述した動きベクトル分類部３０における処理について、より詳細に説明する。先ず、相関演算部３５および動きベクトル検出部３７において、図３（ａ）に例示されるように、撮影され入力された画像データによる画面を、所定サイズのブロックに分割する。そして、図３（ｂ）に例示されるように、ブロック毎に動きベクトルを検出する。以下、この動きベクトルを検出するためのブロックを、ベクトル検出領域と呼ぶ。
【００３７】
動きベクトル分類部３０は、このベクトル検出領域毎の動きベクトルから、動きベクトルの大きさに関する度数分布を、画面の水平および垂直方向にそれぞれについて求める。図４は、こうして求めた度数分布の例を示すヒストグラムである。図４（ａ）が画面の水平方向（Ｘ方向）について求めた度数分布をプロットしたヒストグラムの例、図４（ｂ）が画面の垂直方向（Ｙ方向）について求めた度数分布をプロットしたヒストグラムの例である。
【００３８】
より具体的には、動きベクトル分類部３０は、動きベクトルの大きさについて、所定の範囲毎に区切って階級を設定する。そして、動きベクトル検出部３７で検出された動きベクトルの大きさに基づき、ベクトル検出領域が何れの階級に属するかを判定し、判定結果に応じてベクトル検出領域を階級に分類し、当該階級に対して度数を加算する。この処理を、画面内の全てのベクトル検出領域について、画面の水平および垂直方向に対してそれぞれ行う。
【００３９】
図３（ｂ）の例によれば、画面が４０個のベクトル検出領域に分割されているので、画面内の動きベクトルとして、合計で４０個の動きベクトルが検出される。すなわち、画面内の度数の合計は、４０である。この４０の度数を、動きベクトルの大きさに基づき階級に振り分けて階級毎に加算することで、各階級におけるベクトル検出領域の度数（頻度）を得ることができる。なお、それぞれ範囲を持つ階級の階級値としては、その階級の上限値と下限値の中間値を用いればよい。
【００４０】
動きベクトル分類部３０は、動きベクトルの度数分布に基づき、各ベクトル検出領域をさらにグループに分類する。この度数分布に基づくベクトル検出領域のグループ分類について、図５および図６を用いて説明する。図５（ａ）に示すように、画面内に存在する主たる被写体４２（斜線を付して示す）がフィールド間で移動した場合について考える。この場合、図５（ｂ）に例示されるように、主たる被写体４２が含まれるベクトル検出領域による領域４３内の動きベクトルは、領域４３以外のベクトル検出領域の動きベクトルとは異なったものとなる。例えば、この図５の例では、領域４３が画面の右上方向に移動し、領域４３以外の部分が画面の左上方向に移動している。なお、以下では、主たる被写体が含まれるベクトル検出領域による領域を、主被写体領域と呼ぶ。
【００４１】
このとき、例えば画面水平方向における動きベクトルの大きさに基づく度数分布は、図６にヒストグラムで例示されるように、２つのピークが存在する形となる。このとき、１つのピークを構成する度数が属する階級に基づき、グループを形成する。図６の例では、領域４３以外の部分による、画面の左上方向に移動する動きベクトルの度数のピークに基づくグループ＃１と、領域４３による、画面の右下方向に移動する動きベクトルの度数のピークに基づくグループ＃２とが形成される。
【００４２】
図５（ａ）および図５（ｂ）と、図６とを対比させることで、グループ＃２が被写体４２が含まれる領域４３の動きベクトルに基づくグループで、グループ＃１が領域４３以外（背景領域）の動きベクトルに基づくグループであることが理解できる。しかしながら、データ上では、分離され得る２つのグループが検出できたに過ぎない。すなわち、データ上では、グループ＃１および＃２の何れが手ぶれのみの動きベクトルに基づくグループであり、何れが手ぶれに被写体の動きベクトルが重畳された動きベクトルに基づくグループであるかは分からない。動きベクトルに基づくグループが手ぶれのみの動きベクトルを表すグループか、手ぶれに被写体の動きが重畳された動きベクトルに基づくグループかを判断する方法については、後述する。
【００４３】
検出された動きベクトルに基づきベクトル検出領域をグループに分類する方法について、より具体的に説明する。動きベクトル分類部３０は、図６のようにして得られた動きベクトルの度数分布に対し、階級４０３および４０５のような極値（ピーク）を探索する。ここで、動きベクトル分類部３０は、予め決められた閾値ｐより大きい度数をグループ分類に際して有効な度数とし、この閾値ｐより大きく、且つ、両隣の所定範囲の階級の度数よりも大きい度数を、極値として検出するものとする。
【００４４】
さらに、動きベクトル分類部３０は、極値が複数見つかった場合、互いに隣り合う極値について、極値に対応する階級間の距離Ｄを求める。そして、この距離Ｄが予め決めれらた閾値ｃを超えるものであるか否かを判定する。ここで、距離ｃは、動きベクトル検出部３７による動きベクトル検出誤差よりも大きな値に設定される。
【００４５】
若し、求められた距離Ｄが予め決められた閾値ｃを超えていれば、それぞれの極値を構成する度数が属する階級が互いに別グループを形成すると判定する。一方、求められた距離Ｄが予め決められた閾値ｃを超えていないとされれば、それぞれの極値を構成する度数が属する階級は、同一のグループを形成すると判定する。
【００４６】
図６の例では、度数が閾値ｐより大きな、グループ分類に際して有効な度数を有する階級を、階級４０１〜４０５として検出する。そして、両隣の階級より大きな度数を持つ階級４０３および４０５を、極値として検出する。さらに、極値として検出された階級４０３および４０５の間の距離は、距離Ｄであって、閾値ｃより大きいので、階級４０３および４０５は、それぞれ別のグループに分類されると判定できる。
【００４７】
さらに、極値である階級４０３に隣接する階級４０２は、度数が閾値ｐを超えるため有効であり、且つ、階級４０３との距離が閾値ｃを超えないので、階級４０３と同一のグループ＃１に分類される。これは、階級４０３に隣接する階級４０１についても、同様である。また、極値を取る階級４０５に隣接する階級４０４は、度数が閾値ｐを超えるため有効であり、且つ、階級４０５との距離が閾値ｃを超えないので、階級４０５と同一のグループ＃２に分類される。
【００４８】
このようにして、動きベクトル分類部３０では、各ベクトル検出領域が、各ベクトル検出領域毎に検出された動きベクトルに基づき１つ以上のグループに分類される。動きベクトル分類部３０で得られた各グループの情報は、例えば動きベクトル検出部１４が有する図示されないメモリなどに保持される。グループの情報は、例えばグループを識別する識別情報、グループに含まれるベクトル検出領域を示す情報（座標情報など）、当該ベクトル検出領域の動きベクトルを示す情報などからなる。
【００４９】
次に、上述した動きベクトル演算部３１における処理について説明する。動きベクトル演算部３１では、動きベクトル分類部３０にて定められたグループ毎に、グループとしての代表動きベクトルを求める。代表動きベクトルは、各グループの中で最も大きな度数を持つ階級の階級値とする。また、グループに属する全てのベクトル検出領域で検出された動きベクトルの値の平均値を、グループとしての代表動きベクトルとしても良い。
【００５０】
＜第１の実施形態による全体動きベクトル算出処理＞
次に、動きベクトル制御部３２における処理について、より詳細に説明する。上述したように、動きベクトル制御部３２では、画面全体すなわち１フィールドの画像全体の動きベクトル（全体動きベクトル）を算出する。動きベクトル制御部３２は、動きベクトル分類部３０でのグループ分類の結果と、動きベクトル演算部３１で算出された各グループの代表ベクトル値と、顔検出部２４で検出された顔検出情報などを用いて、全体動きベクトルを算出する。
【００５１】
図７は、本発明の第１の実施形態による全体動きベクトルの算出処理を示す一例のフローチャートである。図７のフローチャートにおける各処理は、システム制御部２２の制御に従い動きベクトル制御部３２により実行される。
【００５２】
先ず、ステップＳ１０で、動きベクトル制御部３２は、動きベクトル分類部３０が現在の画像データ、すなわち、現フィールドの画像データにおいて複数個のグループを検出したか否かを判定する。若し、検出されたグループが１つであると判定された場合は、処理はステップＳ１１に移行され、検出されたグループの代表動きベクトルを全体動きベクトルとして採用する。そして、次のフィールド画像に対する処理が開始される（図示しない）。
【００５３】
一方、ステップＳ１０で、動きベクトル分類部３０にて検出されたグループが複数個存在すると判定された場合は、処理はステップＳ１２に移行される。ステップＳ１２で、動きベクトル制御部３２は、動きベクトル分類部３０で検出された各グループが背景領域のベクトル検出領域によるものか、主被写体領域のベクトル検出領域によるものかの判定を行う。
【００５４】
＜判定処理の第１の方法＞
ステップＳ１２での判定処理の第１の方法について、詳細に説明する。ここで、現フィールド画像が上述した図５（ａ）に例示するものであって、図５（ｂ）のように各ベクトル検出領域における動きベクトルが検出され、図６に示されるように、各ベクトル検出領域がグループ＃１および＃２に分類されたものとする。ステップＳ１２において、動きベクトル制御部３２は、図８（ａ）に例示されるように、各ベクトル検出領域の画面内における座標を定義する。
【００５５】
次に、動きベクトル制御部３２は、各グループ＃１および＃２のそれぞれについて、属するベクトル検出領域の重心座標（ＧＸ,ＧＹ）と、各ベクトル検出領域の座標の重心座標に対するばらつきを示すばらつき値Ｚとを求める。Ｘ方向（画面水平方向）のグループの重心座標ＧＸは、グループに属する各ベクトル検出領域のＸ方向の座標Ｘの平均値とする。Ｙ方向（画面垂直方向）のグループの重心座標ＧＹについても、同様とする。
【００５６】
一例として、上述の図６におけるグループ＃２に属するベクトル検出領域は、図８（ｂ）に斜線で示す領域５０に含まれる６個のベクトル検出領域となる。すなわち、領域５０に含まれるブロック数は６個である。各ベクトル検出領域の座標を、下記に示す。
領域＃１：（Ｘ3,Ｙ1）
領域＃２：（Ｘ3,Ｙ2）
領域＃３：（Ｘ3,Ｙ3）
領域＃４：（Ｘ4,Ｙ1）
領域＃５：（Ｘ4,Ｙ2）
領域＃６：（Ｘ4,Ｙ3）
【００５７】
グループ＃２のＸ方向の重心座標ＧＸ02は、下記の式（１）に示されるように、各ベクトル検出領域のＸ座標の値を加算してベクトル検出領域数で除して求められる。
ＧＸ02＝(Ｘ3＋Ｘ3＋Ｘ3＋Ｘ4＋Ｘ4＋Ｘ4)／６    …（１）
グループ＃２のＹ方向の重心座標ＧＹ02も同様にして、下記の式（２）で求められる。
ＧＹ02＝(Ｙ1＋Ｙ2＋Ｙ3＋Ｙ1＋Ｙ2＋Ｙ3)／６    …（２）
【００５８】
また、各ベクトル検出領域の座標の重心座標に対するばらつき値Ｚは、以下のように求める。ベクトル検出領域毎に、Ｘ座標と当該グループのＸ方向の重心座標ＧＸとの差の二乗と、Ｙ座標と当該グループのＹ方向の重心座標ＧＹとの差の二乗とを加算して、加算結果のグループ内での平均値をばらつき値Ｚとして求める。
【００５９】
グループ＃２のばらつき値Ｚ02は、下記の式（３）で求められる。
Ｚ02＝[{(Ｘ3−ＧＸ02)2＋(Ｙ1−ＧＹ02)2}＋
{(Ｘ3−ＧＸ02)2＋(Ｙ2−ＧＹ02)2}＋{(Ｘ3−ＧＸ02)2＋(Ｙ3−ＧＹ02)2}＋
{(Ｘ4−ＧＸ02)2＋(Ｙ1−ＧＹ02)2}＋{(Ｘ4−ＧＸ02)2＋(Ｙ2−ＧＹ02)2}＋
{(Ｘ4−ＧＸ02)2＋(Ｙ3−ＧＹ02)2}]／６    …（３）
【００６０】
上述では、図６のグループ＃２について、重心座標(ＧＸ02,ＧＹ02)とばらつき値Ｚ02とを求めたが、グループ＃１の重心座標(ＧＸ01,ＧＹ01)とばらつき値Ｚ01も、同様にして求められる。
【００６１】
ここで、図６（ｂ）の例では、グループ＃１よりグループ＃２の占める領域の方が小さいことから明らかなように、グループ＃１とグループ＃２のばらつきを示す値の大小関係は、Ｚ02＜Ｚ01となる。通常の撮影では、人物など撮影の目的となるべき主たる被写体（主被写体と呼ぶ）が画面の中央に位置するように撮影が行われると考えられる。そのため、撮影画面から検出された２つのグループのうち、上述の、ばらつきを示す値Ｚの小さい方が主たる被写体の被写体画像による主被写体領域である可能性が高い。したがって、ばらつきを示す値Ｚが小さいグループ＃２が、主被写体領域のグループであると判定することができる。
【００６２】
動きベクトル制御部３２は、動きベクトル分類部３０で求められた各グループの情報に基づき、上述の式（１）〜式（３）の演算をグループ＃１およびグループ＃２について行う。そして、演算の結果得られたグループ＃１およびグループ＃２それぞれのばらつき値Ｚ01およびばらつき値Ｚ02を比較することで、グループ＃１およびグループ＃２のうち何方が主被写体領域のグループであるかを判定する。
【００６３】
なお、式（１）〜（３）に示したばらつきを示す値の計算方法は一例であり、他の方法を用いても問題ない。例えば、複数グループそれぞれのベクトル検出領域の４隅の座標を直線で結び四角形を作成し、その四角形の４辺の和を、ばらつき値Ｚとして採用してもよい。
【００６４】
＜判定処理の第２の方法＞
図７のステップＳ１２での判定処理の第２の方法について、詳細に説明する。ここで、現フィールド画像が図９（ａ）に例示するものであって、画面中央部に人物である主被写体６０が存在しているものとする。また、この現フィールド画像の画像データに対して顔検出部２４で顔検出が行われ、検出された顔の位置が算出される。顔位置の算出結果を、図９（ａ）に顔検出枠６１として太枠表示して示す。
【００６５】
図９（ｂ）は、図９（ａ）で示した現フィールド画像の各ベクトル検出領域について、動きベクトル検出部３７で検出された動きベクトルの例を示す。図９（ａ）における主被写体６０が背景に対して移動している場合、図９（ｂ）に斜線を付して示す、主被写体６０が含まれる主被写体領域６２の動きベクトルは、画面内の他の領域の動きベクトルとは異なるものとなる。このとき、例えばＸ方向における動きベクトルの値に基づく度数分布は、図１０のヒストグラムに例示するように、グループ＃１１およびグループ＃１２の２つ極値が存在する形となる。図９（ｂ）を参照することで、グループ＃１２が主被写体領域６２の動きベクトルに基づき、グループ＃１１が主被写体領域６２以外、すなわち、背景領域における背景画像の動きベクトルに基づくことが分かる。
【００６６】
図９（ｂ）の太枠で示す領域６３は、図９（ａ）に示される顔検出枠６１の内部を含むベクトル検出領域である。このうち、背景領域であるグループ＃１１に属するベクトル検出領域は２個であり、主被写体領域６２であるグループ＃１２に属するベクトル検出領域は４個である。顔検出枠６１の内部と共有する部分を持つベクトル検出領域の数が多い方が、主被写体領域である可能性が高いので、グループ＃１２が主被写体領域のグループであると判定することができる。
【００６７】
動きベクトル制御部３２は、動きベクトル分類部３０で求められた各グループの情報と、顔検出部２４で検出された顔の位置情報とに基づき、主被写体領域のグループを特定する。すなわち、動きベクトル制御部３２は、グループ＃１１およびグループ＃１２それぞれについて、各グループに含まれるベクトル検出領域と、顔検出枠６１を含むベクトル検出領域との重複部分を検出する。そして、グループ＃１１およびグループ＃１２のうち、当該重複部分の大きい方を、主被写体領域のグループであると判定する。
【００６８】
以上のように、顔検出機能を利用することによって、動きベクトル分類部３０にて検出されたグループが複数個存在し、且つ、主被写体が人である場合に、背景領域と主被写体領域の判別を容易に行うことができる。
【００６９】
なお、上述では、背景に対して移動する被写体が１種類であるものとして説明したが、実際の撮影においては、背景に対して移動する被写体が複数存在することも有り得る。本第１の実施形態では、このような場合、画面内に存在する複数の被写体のうち、最も画面上に占める割合の大きい被写体を主たる被写体とし、他の被写体領域のベクトル検出値については処理の対象としない。つまり、背景に対して移動する被写体が画面内に複数、存在する場合でも、処理の対象となる被写体が１種類しか存在しないと見做すものとする。
【００７０】
例えば、現フィールドの画像においてベクトル検出領域が３以上のグループに分類された場合、上述の判定処理の第１の方法では、ばらつき値Ｚが最も大きいグループを背景グループとし、背景グループ以外のグループを被写体グループとする。そして、複数の被写体グループについて、グループに含まれる階級における度数の総和を比較して、最も大きな値を得た被写体グループを処理の対象（処理する被写体グループ）とすることが考えられる。この場合、他の被写体グループ（第３のグループ）については処理対象としない。
【００７１】
また例えば、上述の判定処理の第２の方法では、顔領域を含むベクトル検出領域の数が最も少ないグループを背景グループとし、背景グループ以外のグループを被写体グループとする。そして、複数の被写体グループについて、グループに含まれる階級における度数の総和を比較して、最も大きな値を得た被写体グループを処理の対象（処理する被写体グループ）とすることが考えられる。この場合も、他の被写体グループ（第３のグループ）については処理対象としない。
【００７２】
説明は図７のフローチャートに戻り、ステップＳ１２で主被写体領域のグループが判定されたら、処理はステップＳ１３に移行される。ステップＳ１３では、ステップＳ１２で主被写体領域であると判定されたグループ（主被写体グループと呼ぶ）に属するベクトル検出領域の数が、予め設定された閾値ｔｈ0より大きいか否かの判定を行う。
【００７３】
若し、主被写体グループに属するベクトル検出領域の数が閾値ｔｈ0より大きいと判定されたら、処理はステップＳ１４に移行される。ステップＳ１４では、主被写体グループの代表動きベクトルを、全体動きベクトルとして採用する。
【００７４】
一方、ステップＳ１３で、主被写体グループに属するベクトル検出領域の数が閾値ｔｈ0よりも大きくない（閾値以下）と判定されたら、処理はステップＳ１５に移行される。ステップＳ１５では、背景領域によるグループ（以下、背景グループと呼ぶ）の代表動きベクトルを、全体動きベクトルとして採用する。そして、次のフィールド画像に対する処理が開始される（図示しない）。
【００７５】
一例として、図１１（ａ）に示すように、画面内に占める割合が比較的小さい主被写体７０が現フィールド画像の中央部分に存在している場合について考える。この場合において、当該現フィールド画像における動きベクトル検出結果は、図１１（ｂ）に示されるように、画面の中央部分の６個のベクトル検出領域からなる領域７１と、それ以外の領域とで異なっているものとする。当該動きベクトル検出結果による動きベクトルの値に基づく度数分布は、図１２のヒストグラムに例示するように、背景領域によるグループ＃２１と、主被写体領域によるグループ＃２２との２つの極値が存在する形となる。
【００７６】
このような場合において、動きベクトル制御部３２により、例えば主被写体領域によるグループ＃２２に属するベクトル検出領域の数が閾値ｔｈ0以下であると判定され、背景領域であるグループ＃２１の動きベクトルを精度良く算出することができる。
【００７７】
別の例として、図１３（ａ）に示すように、画面内に占める割合が比較的大きい主被写体７５が現フィールド画像の中央部分に存在している場合について考える。この図１３（ａ）に示すように、主被写体の画面に占める割合が比較的大きいときは、撮影者が被写体を画面の中央に収めるように撮影していることが多い。そのため、背景領域の動きベクトル検出値を用いるよりも、主被写体領域のみの動きベクトル検出値を用いて、主被写体が画面内の元の位置に留まるように画像メモリの読み出し位置を変化させた方が、防振効果が高い映像を得ることができる。
【００７８】
この場合において、当該現フィールド画像における動きベクトル検出結果は、図１３（ｂ）に示されるように、画面中央部分の２６個のベクトル検出領域からなる領域７６と、それ以外の領域とで異なっているものとする。当該動きベクトル検出結果による動きベクトルの値に基づく度数分布は、図１４のヒストグラムに例示するように、背景領域によるグループ＃３１と、主被写体領域によるグループ＃３２の２つの極値が存在する形となる。
【００７９】
このような場合において、動きベクトル制御部３２により、例えば主被写体領域によるグループ＃３２に属するベクトル検出領域の数が閾値ｔｈ0より大きいと判定され、主被写体領域であるグループ＃３２の動きベクトルを精度良く算出することができる。
【００８０】
上述したように、本発明の第１の実施形態によれば、主被写体の画面に占める割合が比較的大きい場合であっても、背景領域と主被写体領域とを適切に検出することができ、精度の高い動きベクトル値を算出することが可能となる。
【００８１】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。本第２の実施形態では、過去、例えば１フィールド前の画像データにおいて、背景領域によるグループ（背景グループ）を全体動きベクトルを算出するグループとして選択したか否かを判定する。そして、この判定結果に基づき、全体動きベクトルを背景領域および主被写体領域の何れを用いて算出するかを判定する際の閾値を設定する。
【００８２】
なお、本第２の実施形態では、第１の実施形態で説明した撮像装置１および動きベクトル検出部１４の構成をそのまま適用できる。また、動きベクトル検出部１４における、フィルタ３３から動きベクトル演算部３１に至る処理も、第１の実施形態で説明した処理と同一であるので、ここでの説明を省略する。
【００８３】
図１５は、本第２の実施形態による全体動きベクトルの算出処理を示す一例のフローチャートである。図１５のフローチャートにおける各処理は、システム制御部２２の制御に従い動きベクトル制御部３２により実行される。
【００８４】
図１５のフローチャートにおいて、ステップＳ２０〜ステップＳ２２の処理は、図７のフローチャートにおけるステップＳ１０〜ステップＳ１２の処理と同様である。すなわち、ステップＳ２０で、動きベクトル制御部３２は、動きベクトル分類部３０が現在の画像データ、すなわち、現フィールドの画像データにおいて複数個のグループを検出したか否かを判定する。若し、検出されたグループが１つであると判定された場合は、処理はステップＳ２１に移行され、検出されたグループの代表動きベクトルを全体動きベクトルとして採用する。そして、次のフィールド画像に対する処理が開始される（図示しない）。
【００８５】
一方、ステップＳ２０で、動きベクトル分類部３０にて検出されたグループが複数個存在すると判定された場合は、処理はステップＳ２２に移行される。そして、図８〜図１４を用いて説明した方法により、動きベクトル分類部３０で検出された各グループが背景領域のベクトル検出領域によるものか、主被写体領域のベクトル検出領域によるものかの判定を行う。
【００８６】
ステップＳ２２での判定処理が終了すると、処理は次のステップＳ２３に移行される。ステップＳ２３では、過去の画像データにおいて、動きベクトル分類部３０にて検出された複数個のグループのうち、背景グループを全体動きベクトルを算出するグループとして選択したか否かが判定される。過去の画像データは、例えば処理中の画像データに対して時間的に直前の、１フィールド前の画像データである。なお、過去の画像データにおいて、動きベクトル分類部３０にて複数のグループが存在すると判定されていなかった場合は、背景グループを全体動きベクトルを算出するグループとして選択していたと見做す。
【００８７】
若し、ステップＳ２３において、背景グループが選択されていたと判定された場合は、処理はステップＳ２４に移行され、第１の値ｔｈ1を、後述するステップＳ２６で用いる閾値ｔｈに設定する。
【００８８】
一方、ステップＳ２３において、背景グループが選択されていなかった、すなわち、主被写体グループが選択されていたと判定された場合は、処理はステップＳ２５に移行される。ステップＳ２５では、第１の値ｔｈ1より小さい第２の値ｔｈ2を、後述するステップＳ２６で用いる閾値ｔｈに設定する。
【００８９】
ステップＳ２４またはステップＳ２５で閾値ｔｈが設定されると、処理はステップＳ２６に移行される。ステップＳ２６では、ステップＳ２２で主被写体領域であると判定された主被写体グループに属するベクトル検出領域の数が、ステップＳ２４またはステップＳ２５で設定された閾値ｔｈより大きいか否かの判定を行う。
【００９０】
若し、主被写体グループに属するベクトル検出領域の数が閾値ｔｈより大きいと判定されたら、処理はステップＳ２７に移行される。ステップＳ２７で、動きベクトル制御部３２は、主被写体グループの代表動きベクトルを画面全体の動きベクトルとして採用する。
【００９１】
一方、ステップＳ２６で、主被写体グループに属するベクトル検出領域の数が閾値ｔｈよりも大きくないと判定されたら、処理はステップＳ２８に移行される。ステップＳ２８では、背景グループの代表動きベクトルを全体動きベクトルとして採用する。そして、次のフィールド画像に対する処理が開始される（図示しない）。
【００９２】
本第２の実施形態では、上述したステップＳ２４またはステップＳ２５において閾値ｔｈに設定するための第１の値ｔｈ1および第２の値ｔｈ2の関係を、第１の値ｔｈ1＞第２の値ｔｈ2となるようにしている。
【００９３】
これにより、過去の画像データにおいて背景グループを選択している場合に、現在の画像データでも背景グループが選択され易くなる。そして、主被写体領域に属する動きベクトル検出領域の数が閾値ｔｈ1を一旦超え、主被写体グループが選択されたら、閾値ｔｈが閾値ｔｈ1より小さい値の閾値ｔｈ2に変更される。これにより、主被写体グループが選択され易い状態となる。
【００９４】
したがって、全体動きベクトルとして用いるグループが主被写体グループと背景グループとで頻繁に切り替わるのが抑制される。そのため、例えば主被写体領域と背景領域とでベクトル検出領域の数の差が小さい場合に、違和感のある映像になることを防止することができる。
【００９５】
＜第３の実施形態＞
次に、本発明の第３の実施形態について説明する。本第３の実施形態では、背景グループの代表動きベクトルと、主被写体領域のグループの代表動きベクトルとを、所定の割合で合成して、全体動きベクトルを生成する。
【００９６】
なお、本第３の実施形態では、第１の実施形態で説明した撮像装置１および動きベクトル検出部１４の構成をそのまま適用できる。また、動きベクトル検出部１４における、フィルタ３３から動きベクトル演算部３１に至る処理も、第１の実施形態で説明した処理と同一であるので、ここでの説明を省略する。
【００９７】
図１６は、本第３の実施形態による全体動きベクトルの算出処理を示す一例のフローチャートである。図１６のフローチャートにおける各処理は、システム制御部２２の制御に従い動きベクトル制御部３２により実効される。
【００９８】
図１６のフローチャートにおいて、ステップＳ３０〜ステップＳ３３の処理は、図７のフローチャートにおけるステップＳ１０〜ステップＳ１３の処理と同様である。すなわち、ステップＳ３０で、動きベクトル制御部３２は、動きベクトル分類部３０が現在の画像データ、すなわち、現フィールドの画像データにおいて複数個のグループを検出したか否かを判定する。
【００９９】
若し、検出されたグループが１つであると判定された場合は、処理はステップＳ３１に移行され、検出されたグループの代表動きベクトルを全体動きベクトルとして採用する。そして、次のフィールド画像に対する処理が開始される（図示しない）。
【０１００】
一方、ステップＳ３０で、動きベクトル分類部３０にて検出されたグループが複数個存在すると判定された場合は、処理はステップＳ３２に移行される。そして、図８〜図１４を用いて説明した方法により、動きベクトル分類部３０で検出された各グループが背景領域のベクトル検出領域によるものか、主被写体領域のベクトル検出領域によるものかの判定を行う。
【０１０１】
若し、ステップＳ３２で主被写体領域によるグループであると判定されたら、処理はステップＳ３３に移行される。ステップＳ３３では、ステップＳ３２で主被写体領域によるグループである判定された主被写体グループに属するベクトル検出領域の数が、閾値ｔｈ0より大きいか否かの判定を行う。
【０１０２】
若し、主被写体グループに属するベクトル検出領域の数が閾値ｔｈ0より大きいと判定されたら、処理はステップＳ３４に移行される。ステップＳ３４では、動きベクトル制御部３２は、後述するステップＳ３６で用いる変数MIX_RATEに例えば１を加算し、変数MIX_RATEをインクリメント（増加）させる。但し、変数MIX_RATEが上限値MIX_RATE_MAXに達したら、インクリメントは行わない。変数MIX_RATEは、例えば動きベクトル制御部３２が持つレジスタなどに保持される。
【０１０３】
一方、ステップＳ３３で、主被写体グループに属するベクトル検出領域の数が閾値ｔｈ0よりも大きくないと判定されたら、処理はステップＳ３５に移行される。ステップＳ３５では、動きベクトル制御部３２は、変数MIX_RATEから例えば１を減じ、変数MIX_RATEをデクリメント（減少）させる。但し、変数MIX_RATEが下限値０に達したら、デクリメントは行わない。
【０１０４】
ステップＳ３４またはステップＳ３５の処理が終了したら、処理はステップＳ３６に移行される。ステップＳ３６では、全体動きベクトルFINAL_VECTORを下記に示す式（４）により算出する。なお、式（４）において、値BACK_VECTORは、背景グループの代表動きベクトルであり、値TARGET_VECTORは、主被写体領域のグループの代表動きベクトルである。
FINAL_VECTOR＝BACK_VECTOR×(MIX_RATE_MAX−MIX_RATE)／MIX_RATE_MAX＋TARGET_VECTOR×MIX_RATE／MIX_RATE_MAX    …（４）
【０１０５】
ステップＳ３６で式（４）により全体動きベクトルが算出されると、次のフィールド画像に対する処理が開始される（図示しない）。変数MIX_RATEは保持され、当該次のフィールド画像に対する処理の際のステップＳ３４またはステップＳ３５で、インクリメントまたはデクリメントされる。
【０１０６】
ここで、式（４）において、変数MIX_RATEは、上限値MIX_RATE_MAXを１００％としたときの、全体動きベクトルFINAL_VECTORにおける主被写体領域の動きベクトルの割合を示す。したがって、式（４）内の式(MIX_RATE_MAX−MIX_RATE)は、全体動きベクトルFINAL_VECTORのうちの背景領域の動きベクトルの割合を示す値となる。
【０１０７】
すなわち、本第３の実施形態においては、全体動きベクトルとして用いる代表動きベクトルを、主被写体グループと背景グループとで切り替える際に、主被写体領域および背景領域の動きベクトルの混合割合を徐々に入れ替えている。例えば、主被写体領域と背景領域とでベクトル検出領域の数の差が小さい場合には、全体動きベクトルとして用いるグループが主被写体領域と背景領域とで頻繁に切り替わると考えられる。このような場合には、主被写体領域および背景領域の代表動きベクトルが略等しい割合で用られ、全体動きベクトルが生成される。
【０１０８】
これにより、全体動きベクトルとして用いるグループの主被写体グループから背景グループとの間での切り替わりが急激に生じるのが抑制され、違和感のある映像になることを防止することができる。
【０１０９】
＜第３の実施形態の変形例＞
次に、第３の実施形態の変形例について説明する。本変形例は、第３の実施形態に対して、上述した第２の実施形態による処理を組み合わせたものである。図１７は、本第３の実施形態の変形例による全体動きベクトルの算出処理を示す一例のフローチャートである。図１７のフローチャートにおける各処理は、システム制御部２２の制御に従い動きベクトル制御部３２により実行される。なお、図１７のフローチャートにおいて、上述した図１５および図１６のフローチャートと共通する処理には同一の符号を付し、詳細な説明を省略する。
【０１１０】
ステップＳ２０で、動きベクトル制御部３２は、動きベクトル分類部３０が現在の画像データにおいて複数個のグループを検出したか否かを判定する。若し、検出されたグループが１つであると判定された場合は、処理はステップＳ２１に移行され、検出されたグループの代表動きベクトルを全体動きベクトルとして採用する。そして、次のフィールド画像に対する処理が開始される（図示しない）。
【０１１１】
一方、ステップＳ２０で、動きベクトル分類部３０にて検出されたグループが複数個存在すると判定された場合は、処理はステップＳ２２に移行される。そして、図８〜図１４を用いて説明した方法により、動きベクトル分類部３０で検出された各グループが背景領域のベクトル検出領域によるものか、主被写体領域のベクトル検出領域によるものかの判定を行う。
【０１１２】
ステップＳ２２での判定処理が終了すると、処理は次のステップＳ２３に移行される。ステップＳ２３では、過去の画像データにおいて、動きベクトル分類部３０にて検出された複数個のグループのうち、背景グループを全体動きベクトルを算出するグループとして選択したか否かが判定される。
【０１１３】
若し、ステップＳ２３において、背景グループが選択されていたと判定された場合は、処理はステップＳ２４に移行され、第１の値ｔｈ1を、後述するステップＳ２６で用いる閾値ｔｈに設定する。一方、ステップＳ２３において、背景グループが選択されていなかったと判定された場合は、処理はステップＳ２５に移行され、第１の値ｔｈ1より小さい第２の値ｔｈ2を、後述するステップＳ２６で用いる閾値ｔｈに設定する。
【０１１４】
処理はステップＳ２６に移行され、ステップＳ２２で主被写体領域であると判定された主被写体グループに属するベクトル検出領域の数が、ステップＳ２４またはステップＳ２５で設定された閾値ｔｈより大きいか否かの判定を行う。
【０１１５】
若し、主被写体グループに属するベクトル検出領域の数が閾値ｔｈより大きいと判定されたら、処理はステップＳ３４に移行され、変数MIX_RATEをインクリメントする。但し、変数MIX_RATEが上限値MIX_RATE_MAXに達したら、インクリメントは行わない。一方、ステップＳ２６で、主被写体グループに属するベクトル検出領域の数が閾値ｔｈよりも大きくないと判定されたら、処理はステップＳ３５に移行され、変数MIX_RATEをデクリメントする。但し、変数MIX_RATEが下限値MIX_RATE_MINに達したら、デクリメントは行わない。
【０１１６】
ステップＳ３４またはステップＳ３５の処理が終了したら、処理はステップＳ３６に移行され、全体動きベクトルFINAL_VECTORを上述した式（４）により算出する。全体動きベクトルが算出されると、次のフィールド画像に対する処理が開始される（図示しない）。
【０１１７】
＜第４の実施形態＞
次に、本発明の実施の第４の形態について説明する。本第４の実施形態では、全体動きベクトルとして用いる代表動きベクトルを、上述した第１および第２の実施形態による判定処理と、主被写体領域および背景領域の代表動きベクトルの差が所定値以内であるか否かの判定処理とを組み合わせた判定により選択する。
【０１１８】
図１８は、本第４の実施形態による全体動きベクトルの算出処理を示す一例のフローチャートである。図１８のフローチャートにおける各処理は、システム制御部２２の制御に従い動きベクトル制御部３２により実行される。
【０１１９】
図１８のフローチャートにおいて、ステップＳ４０〜ステップＳ４３の処理は、図１５のフローチャートにおけるステップＳ２０〜ステップＳ２３の処理と同様である。すなわち、ステップＳ４０で、動きベクトル制御部３２は、動きベクトル分類部３０が現在の画像データ、すなわち、現フィールドの画像データにおいて複数個のグループを検出したか否かを判定する。若し、検出されたグループが１つであると判定された場合は、処理はステップＳ２１に移行され、検出されたグループの代表動きベクトルを画面全体すなわち画像全体の動きベクトルとして採用する。そして、次のフィールド画像に対する処理が開始される（図示しない）。
【０１２０】
一方、ステップＳ４０で、動きベクトル分類部３０にて検出されたグループが複数個存在すると判定された場合は、処理はステップＳ４２に移行される。そして、図８〜図１４を用いて説明した方法により、動きベクトル分類部３０で検出された各グループが背景領域のベクトル検出領域によるものか、主被写体領域のベクトル検出領域によるものかの判定を行う。
【０１２１】
ステップＳ４２での判定処理が終了すると、処理は次のステップＳ４３に移行される。ステップＳ４３では、過去、例えば１フィールド前の画像データにおいて、動きベクトル分類部３０にて検出された複数個のグループのうち、背景グループを全体動きベクトルを算出するグループとして選択したか否かが判定される。なお、過去の画像データにおいて、動きベクトル分類部３０にて複数のグループが存在すると判定されていなかった場合は、背景グループを全体動きベクトルを算出するグループとして選択していたとみなす。
【０１２２】
若し、ステップＳ４３において、背景グループが選択されていたと判定された場合は、処理はステップＳ４４に移行され、フラグBACK_FLAGがセットされる。一方、ステップＳ４３において、背景グループが選択されていなかった、すなわち、主被写体グループが選択されていたと判定された場合は、処理はステップＳ４５に移行され、フラグBACK_FLAGがリセットされる。フラグBACK_FLAGは、例えば動きベクトル制御部３２が持つレジスタなどに保持される。
【０１２３】
ステップＳ４４またはステップＳ４５でフラグBACK_FLAGの設定が行われたら、処理はステップＳ４６に移行される。ステップＳ４６では、差分算出手段としての動きベクトル制御部３２で背景領域の代表動きベクトルと主被写体領域の代表動きベクトルとの差分が求められる。そして、この差分が所定値以内であるか否かが判定される。このステップＳ４６の判定は、換言すれば、主被写体の画面上での移動速度が所定速度以下であるか否かの判定となる。
【０１２４】
若し、ステップＳ４６において、背景領域および主被写体領域の代表動きベクトルの差分が所定値以内であると判定されたら、処理はステップＳ４７に移行され、フラグCHANGE_FLAGがセットされる。これは、主被写体の画面上での移動速度が所定速度よりも小さい場合である。フラグCHANGE_FLAGは、例えば動きベクトル制御部３２が持つレジスタなどに保持される。
【０１２５】
一方、ステップＳ４６において、背景領域および主被写体領域の代表動きベクトルの差分が所定値より大きいと判定されたら、処理はステップＳ４８に移行され、フラグCHANGE_FLAGがリセットされる。これは、主被写体の画面上での移動速度が所定速度より大きい場合である。
【０１２６】
ステップＳ４７またはステップＳ４８でのフラグCHANGE_FLAGの設定が行われたら、処理はステップＳ４９に移行される。ステップＳ４９では、上述したステップＳ４２で主被写体領域であると判定された主被写体グループに属するベクトル検出領域の数が、予め設定された閾値ｔｈ0より大きいか否かの判定を行う。
【０１２７】
若し、ステップＳ４９で、主被写体グループに属するベクトル検出領域の数が閾値ｔｈ0よりも大きいと判定されたら、処理はステップＳ５０に移行される。ステップＳ５０では、後述する第１のグループ選択により全体動きベクトルに用いる代表動きベクトルが選択される。
【０１２８】
一方、ステップＳ４９で、主被写体グループに属するベクトル検出領域の数が閾値ｔｈ0よりも大きくないと判定されたら、処理はステップＳ５１に移行される。ステップＳ５１では、後述する第２のグループ選択により全体動きベクトルに用いる代表動きベクトルが選択される。
【０１２９】
ステップＳ５０またはステップＳ５１で全体動きベクトルとして用いる代表動きベクトルが選択されたら、次のフィールド画像に対する処理が開始される（図示しない）。
【０１３０】
図１９は、上述したステップＳ５０による第１のグループ選択の一例の処理を示すフローチャートである。先ず、ステップＳ６０において、フラグBACK_FLAGがリセットされているか否かが判定される。すなわち、ステップＳ６０では、過去の画像データにおいて、主被写体グループの代表動きベクトルが全体動きベクトルとして選択されていたかどうかが判定される。若し、フラグBACK_FLAGがリセットされていたと判定されたら、処理はステップＳ６１に移行される。これは、過去の画像データにおいて、主被写体グループの代表動きベクトルが全体動きベクトルとして選択されていた場合である。ステップＳ６１では、主被写体グループの代表動きベクトルを全体動きベクトルとして採用する。
【０１３１】
一方、ステップＳ６０において、フラグBACK_FLAGがリセットされていないと判定されたら、処理はステップＳ６２に移行される。これは、過去の画像データにおいて、背景領域の代表動きベクトルが全体動きベクトルとして選択されていた場合である。ステップＳ６２では、フラグCHANGE_FLAGがセットされているか否かが判定される。すなわち、ステップＳ６２では、主被写体の画面上での移動速度が所定速度以下か否かが判定される。
【０１３２】
若し、ステップＳ６２において、フラグCHANGE_FLAGがセットされていると判定されたら、処理はステップＳ６３に移行される。これは、主被写体の画面上での移動速度が所定速度以下であった場合である。ステップＳ６３では、主被写体グループの代表動きベクトルを、全体動きベクトルとして採用する。
【０１３３】
一方、ステップＳ６２において、フラグCHANGE_FLAGがセットされていないと判定されたら、処理はステップＳ６４に移行される。これは、主被写体の画面上での移動速度が所定速度より大きい場合である。ステップＳ６４では、背景グループの代表動きベクトルを、全体動きベクトルとして採用する。
【０１３４】
ステップＳ６１、ステップＳ６３またはステップＳ６４により、全体動きベクトルとして用いる代表動きベクトルが決定されたら、処理は図１９のフローチャートを抜け、図１８のフローチャートに戻される。
【０１３５】
図２０は、上述したステップＳ５１による第２のグループ選択の一例の処理を示すフローチャートである。先ず、ステップＳ７０において、フラグBACK_FLAGがセットされているか否かが判定される。すなわち、ステップＳ７０では、過去の画像データにおいて、背景グループの代表動きベクトルが全体動きベクトルとして選択されていたかどうかが判定される。若し、フラグBACK_FLAGがセットされていたと判定されたら、処理はステップＳ７１に移行される。これは、過去の画像データにおいて、背景グループの代表動きベクトルが全体動きベクトルとして選択されていた場合である。ステップＳ７１では、背景グループの代表動きベクトルを全体動きベクトルとして採用する。
【０１３６】
一方、ステップＳ７０において、フラグBACK_FLAGがセットされていないと判定されたら、処理はステップＳ７２に移行される。これは、過去の画像データにおいて、主被写体領域の代表動きベクトルが全体動きベクトルとして選択されていた場合である。ステップＳ７２では、フラグCHANGE_FLAGがセットされているか否かが判定される。すなわち、ステップＳ７２では、主被写体の画面上での移動速度が所定速度以下か否かが判定される。
【０１３７】
若し、ステップＳ７２において、フラグCHANGE_FLAGがセットされていると判定されたら、処理はステップＳ７３に移行される。これは、主被写体の画面上での移動速度が所定速度以下であった場合である。ステップＳ７３では、背景グループの代表動きベクトルを、全体動きベクトルとして採用する。
【０１３８】
一方、ステップＳ７２において、フラグCHANGE_FLAGがセットされていないと判定されたら、処理はステップＳ７４に移行される。これは、主被写体の画面上での移動速度が所定速度より大きい場合である。ステップＳ７４では、主被写体のグループの代表動きベクトルを、全体動きベクトルとして採用する。
【０１３９】
ステップＳ７１、ステップＳ７３またはステップＳ７４により、全体動きベクトルとして用いる代表動きベクトルが決定されたら、処理は図２０のフローチャートを抜け、図１８のフローチャートに戻される。
【０１４０】
上述の図１８〜図２０のフローチャートによる全体動きベクトルの算出処理を要約すると、下記のようになる。
【０１４１】
先ず、主被写体グループに属するベクトル検出領域の数が閾値ｔｈ0より多い場合には、下記のようになる。
（１）過去の画像データにおいて主被写体グループの代表動きベクトルが全体動きベクトルとして選択されていた場合、主被写体の画面上での移動速度に関わらず、主被写体グループの代表動きベクトルを全体動きベクトルとして採用する。
（２）過去の画像データにおいて背景グループの代表動きベクトルが全体動きベクトルとして選択されていた場合、若し、主被写体の動きが所定速度よりも速ければ、背景グループの代表動きベクトルを全体動きベクトルとして採用する。一方、主被写体の動きが所定速度よりも遅ければ、主被写体グループの代表動きベクトルを全体動きベクトルとして採用する。
【０１４２】
次に、主被写体グループに属するベクトル検出領域の数が閾値ｔｈ0以下の場合には、下記のようになる。
（１）過去の画像データにおいて主被写体グループの代表動きベクトルが全体動きベクトルとして選択されていた場合、若し、主被写体の動きが所定速度よりも速ければ、主被写体グループの代表動きベクトルを全体動きベクトルとして採用する。一方、主被写体の動きが所定速度よりも遅ければ、背景グループの代表動きベクトルを全体動きベクトルとして採用する。
（２）過去の画像データにおいて背景グループの代表動きベクトルが全体動きベクトルとして選択されていた場合、主被写体の画面上での移動速度に関わらず、背景グループの代表動きベクトルを全体動きベクトルとして採用する。
【０１４３】
以上の処理によって、全体動きベクトルとして用いる代表動きベクトルを、主被写体グループによる代表動きベクトルと背景グループによる代表動きベクトルとの間で切り換える処理を、主被写体の動きが小さいときに行うようにした。これによって、全体動きベクトルとして用いる代表動きベクトルの、主被写体グループと背景グループとの間での切り替わりが生じたときに、今まで防振されていた領域が急激に動きだすといった現象が生じることを防止することができる。
【０１４４】
＜第４の実施形態の変形例＞
上述した第４の実施形態の変形例について説明する。本変形例は、上述した第４の実施形態による図１８のフローチャートに対して、さらに上述の第２の実施形態による図１５のフローチャートのステップＳ２４およびステップＳ２５の処理を追加し、ステップＳ４９の処理をステップＳ２６の処理と入れ替えたものである。すなわち、本変形例は、上述の第４の実施形態に対して、過去の画像データにおいて背景グループの代表動きベクトルを全体動きベクトルとして選択したか否かに応じて閾値ｔｈの設定を行う処理を追加して行う。
【０１４５】
図２１は、本変形例による全体動きベクトルの算出処理を示す一例のフローチャートである。図２１のフローチャートにおける各処理は、システム制御部２２の制御に従い動きベクトル制御部３２により実行される。なお、図２１のフローチャートにおいて、上述した図１８のフローチャートと共通する処理には同一の符号を付し、詳細な説明を省略する。
【０１４６】
図２１のフローチャートにおいて、先ず、ステップＳ４０で、動きベクトル制御部３２は、動きベクトル分類部３０が現在の画像データにおいて複数個のグループを検出したか否かを判定する。若し、検出されたグループが１つであると判定された場合は、処理はステップＳ４１に移行され、検出されたグループの代表動きベクトルを全体動きベクトルとして採用し、次のフィールド画像に対する処理が開始される（図示しない）。
【０１４７】
一方、ステップＳ４０で、動きベクトル分類部３０にて検出されたグループが複数個存在すると判定された場合は、処理はステップＳ４２に移行される。そして、図８〜図１４を用いて説明した方法により、動きベクトル分類部３０で検出された各グループが背景領域のベクトル検出領域によるものか、被写体領域のベクトル検出領域によるものかの判定を行う。
【０１４８】
ステップＳ４２での判定処理が終了すると、処理は次のステップＳ４３に移行される。ステップＳ４３では、過去、例えば１フィールド前の画像データにおいて、動きベクトル分類部３０にて検出された複数個のグループのうち、背景グループの代表動きベクトルを全体動きベクトルとして選択したか否かが判定される。
【０１４９】
若し、ステップＳ４３において、背景グループが選択されていたと判定された場合は、処理はステップＳ２４に移行され、第１の値ｔｈ1を、後述するステップＳ２６で用いる閾値ｔｈに設定する。そして、処理はステップＳ４４に移行され、フラグBACK_FLAGがセットされる。
【０１５０】
一方、ステップＳ４３において、背景グループが選択されていなかったと判定された場合は、処理はステップＳ２５に移行され、第１の値ｔｈ1より小さい第２の値ｔｈ2を閾値ｔｈに設定する。そして、処理はステップＳ４５に移行され、フラグBACK_FLAGがリセットされる。
【０１５１】
ステップＳ４４またはステップＳ４５でフラグBACK_FLAGの設定が行われたら、処理はステップＳ４６に移行され、背景領域および主被写体領域の代表動きベクトルの差分が求められ、この差分が所定値以内であるか否かが判定される。
【０１５２】
若し、ステップＳ４６において、背景領域および主被写体領域の代表動きベクトルの差分が所定値以内であると判定されたら、処理はステップＳ４７に移行され、フラグCHANGE_FLAGがセットされる。一方、ステップＳ４６において、背景領域および主被写体領域の代表動きベクトルの差分が所定値より大きいと判定されたら、処理はステップＳ４８に移行され、フラグCHANGE_FLAGがリセットされる。
【０１５３】
ステップＳ４７またはステップＳ４８でのフラグCHANGE_FLAGの設定が行われたら、処理はステップＳ２６に移行される。ステップＳ２６では、上述したステップＳ４２で主被写体領域であると判定された主被写体グループに属するベクトル検出領域の数が、上述のステップＳ２４またはステップＳ２５で設定された閾値ｔｈより大きいか否かの判定を行う。
【０１５４】
若し、ステップＳ２６で、主被写体グループに属するベクトル検出領域の数が閾値ｔｈよりも大きいと判定されたら、処理はステップＳ５０に移行される。ステップＳ５０では、図１９で説明した第１のグループ選択処理により全体動きベクトルに用いる代表動きベクトルが選択される。
【０１５５】
一方、ステップＳ２６で、主被写体グループに属するベクトル検出領域の数が閾値ｔｈよりも大きくないと判定されたら、処理はステップＳ５１に移行される。ステップＳ５１では、図２０で説明した第２のグループ選択処理により全体動きベクトルに用いる代表動きベクトルが選択される。
【０１５６】
ステップＳ５０またはステップＳ５１で全体動きベクトルとして用いる代表動きベクトルが選択されたら、次のフィールド画像に対する処理が開始される（図示しない）。
【０１５７】
以上説明したように、本発明によれば、主被写体の画面に占める割合が比較的大きい場合は、主被写体領域のベクトル検出結果を積極的に用いることにより、精度の高い動きベクトル値を算出することが可能となる。また、主被写体の大きさが変わったときの全体ベクトルの算出を行う領域の切り替えを、滑らかに行うことが可能となる。
【０１５８】
＜他の実施形態＞
上述では、本発明がデジタルビデオカメラなどの撮像装置に適用されるように説明したが、これはこの例に限定されない。例えば、本発明は、ビデオカメラを装着したパーソナルコンピュータに適用することもできるし、動画撮影が可能とされた携帯電話端末に適用してもよい。さらに、本発明は、撮影によりリアルタイムに出力される画像データに対する処理として適用される以外に、記録媒体に記録された画像データに対する処理としても適用可能である。この場合、撮像装置１において、撮影され記録媒体１８に記録された画像データに対して本発明による処理を行うことができる。また、パーソナルコンピュータのハードディスクなどに記録された画像データに対して、パーソナルコンピュータ上のソフトウェアにより本発明による処理を行ってもよい。
【０１５９】
このように、上述の各実施形態は、システム或は装置のコンピュータ（或いはＣＰＵ、ＭＰＵ等）によりソフトウェア的に実現することも可能である。従って、上述の各実施形態をコンピュータで実現するために、該コンピュータに供給されるコンピュータプログラム自体も本発明を実現するものである。つまり、上述の各実施形態の機能を実現するためのコンピュータプログラム自体も本発明の一つである。
【０１６０】
なお、上述の各実施形態を実現するためのコンピュータプログラムは、コンピュータで読み取り可能であれば、どのような形態であってもよい。例えば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等で構成することができるが、これらに限るものではない。
【０１６１】
上述の各実施形態を実現するためのコンピュータプログラムは、記憶媒体又は有線／無線通信によりコンピュータに供給される。プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記憶媒体、ＭＯ、ＣＤ、ＤＶＤ等の光／光磁気記憶媒体、不揮発性の半導体メモリなどがある。
【０１６２】
有線／無線通信を用いたコンピュータプログラムの供給方法としては、コンピュータネットワーク上のサーバを利用する方法がある。この場合、本発明を形成するコンピュータプログラムとなりうるデータファイル（プログラムファイル）をサーバに記憶しておく。プログラムファイルとしては、実行形式のものであっても、ソースコードであっても良い。
【０１６３】
そして、このサーバにアクセスしたクライアントコンピュータに、プログラムファイルをダウンロードすることによって供給する。この場合、プログラムファイルを複数のセグメントファイルに分割し、セグメントファイルを異なるサーバに分散して配置することも可能である。
【０１６４】
つまり、上述の各実施形態を実現するためのプログラムファイルをクライアントコンピュータに提供するサーバ装置も本発明の一つである。
【０１６５】
また、上述の各実施形態を実現するためのコンピュータプログラムを暗号化して格納した記憶媒体を配布し、所定の条件を満たしたユーザに、暗号化を解く鍵情報を供給し、ユーザの有するコンピュータへのインストールを許可してもよい。鍵情報は、例えばインターネットを介してホームページからダウンロードさせることによって供給することができる。
【０１６６】
また、上述の各実施形態を実現するためのコンピュータプログラムは、すでにコンピュータ上で稼働するＯＳの機能を利用するものであってもよい。
【０１６７】
さらに、上述の各実施形態を実現するためのコンピュータプログラムは、その一部をコンピュータに装着される拡張ボード等のファームウェアで構成してもよいし、拡張ボード等が備えるＣＰＵで実行するようにしてもよい。
【図１】
2010258710.tif 000003
【図２】
2010258710.tif 000004
【図３】
2010258710.tif 000005
【図４】
2010258710.tif 000006
【図５】
2010258710.tif 000007
【図６】
2010258710.tif 000008
【図７】
2010258710.tif 000009
【図８】
2010258710.tif 000010
【図９】
2010258710.tif 000011
【図１０】
2010258710.tif 000012
【図１１】
2010258710.tif 000013
【図１２】
2010258710.tif 000014
【図１３】
2010258710.tif 000015
【図１４】
2010258710.tif 000016
【図１５】
2010258710.tif 000017
【図１６】
2010258710.tif 000018
【図１７】
2010258710.tif 000019
【図１８】
2010258710.tif 000020
【図１９】
2010258710.tif 000021
【図２０】
2010258710.tif 000022
【図２１】
2010258710.tif 000023
【図２２】
2010258710.tif 000024
【図２３】
2010258710.tif 000025