(57)【特許請求の範囲】
【請求項１】
画像データを複数のブロック領域に分割して、分割されたそれぞれのブロック領域ごとに動きベクトルを検出する検出手段と、
前記それぞれのブロック領域ごとの動きベクトルを、その大きさを階級とする度数分布上に振り分け、度数の大きさと階級間の距離に基づいて前記それぞれのブロック領域ごとの動きベクトルを１つ以上のグループに分類する動きベクトル分類手段と、
前記動きベクトル分類手段により分類された結果、前記それぞれのブロック領域ごとの動きベクトルが複数のグループに分類された場合に、該複数のグループから１つのグループを選択して代表となる１つの動きベクトルを定める選択手段と、
前記代表となる１つの動きベクトルに基づいて画像ぶれを補正するぶれ補正手段とを備え、
前記選択手段は、過去の画像データにおける前記複数のグループのそれぞれの代表となる階級値の大小関係と、現在の画像データにおける前記複数のグループのそれぞれの代表となる階級値の大小関係とに基づいて、現在の画像データにおける前記複数のグループから前記１つのグループを選択することを特徴とする動きベクトル検出装置。
【請求項２】
前記動きベクトル分類手段は、前記度数分布において、度数が所定度数以上であるとともに階級間の距離が所定量以上離れているときに、互いに別のグループとして分類することを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項３】
前記選択手段は、過去の画像データにおいて前記動きベクトル分類手段により分類されたグループが複数存在せず、現在の画像データにおいて初めて前記動きベクトル分類手段により分類されたグループが複数存在する状態になった場合は、現在の画像データの前記度数分布において、最も度数が大きい階級を含むグループを選択して代表となる１つの動きベクトルを定めることを特徴とする請求項１又は２に記載の動きベクトル検出装置。
【請求項４】
前記選択手段は、過去の画像データにおいて前記動きベクトル分類手段により分類されたグループが複数存在せず、現在の画像データにおいて初めて前記動きベクトル分類手段により分類されたグループが複数存在する状態になった場合は、過去の画像において定められた前記代表となる１つの動きベクトルの大きさに最も近い階級を含むグループを選択して代表となる１つの動きベクトルを定めることを特徴とする請求項１又は２に記載の動きベクトル検出装置。
【請求項５】
前記選択手段は、現在の画像データおよび過去の画像データにおいて前記動きベクトル分類手段により分類されたグループがそれぞれ複数存在したときに、過去の画像において選択されたグループが当該過去の画像データにおける他のグループと比較したときに何番目に大きな階級値を持つかの順位を記憶しておき、
現在の画像データにおいて前記動きベクトル分類手段により分類されたグループを大きな階級値を持つ順に並べたときに、度数の大きさに関わらず、前記順位と同順位のグループを選択して代表となる１つの動きベクトルを定めることを特徴とする請求項１乃至４のいずれか１項に記載の動きベクトル検出装置。
【請求項６】
請求項１ないし５のいずれか１項に記載の動きベクトル検出装置を備えることを特徴とする撮像装置。
【請求項７】
画像データを複数のブロック領域に分割して、分割されたそれぞれのブロック領域ごとに動きベクトルを検出する検出工程と、
前記それぞれのブロック領域ごとの動きベクトルを、その大きさを階級とする度数分布上に振り分け、度数の大きさと階級間の距離に基づいて前記それぞれのブロック領域ごとの動きベクトルを１つ以上のグループに分類する動きベクトル分類工程と、
前記動きベクトル分類工程により分類された結果、前記それぞれのブロック領域ごとの動きベクトルが複数のグループに分類された場合に、該複数のグループから１つのグループを選択して代表となる１つの動きベクトルを定める選択工程と、
前記代表となる１つの動きベクトルに基づいて画像ぶれを補正するぶれ補正工程とを備え、
前記選択工程は、過去の画像データにおける前記複数のグループのそれぞれの代表となる階級値の大小関係と、現在の画像データにおける前記複数のグループのそれぞれの代表となる階級値の大小関係とに基づいて、現在の画像データにおける前記複数のグループから前記１つのグループを選択することを特徴とする動きベクトル検出方法。
【請求項８】
請求項７に記載の動きベクトル検出方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の動きベクトルを検出し、検出された動きベクトルを用いて撮影された動画像のぶれを補正する技術に関するものである。
【背景技術】
【０００２】
ビデオカメラなどの動画像を撮影する撮像装置においては、特にレンズを望遠側にズームしたときに、手ぶれにより画像がぶれることが問題となる。このような手ぶれによる画像のぶれを防止するために、従来より撮影した画像信号から画像の動きベクトルを検出し、この動きベクトルに基づいて画像のぶれを補正する技術が提案されている。
【０００３】
画像の動きベクトルを検出する方法としては、従来より、相関演算に基づく相関法やブロックマッチング法等が知られている。
【０００４】
ブロックマッチング法では、入力された画像信号を複数の適当な大きさのブロック領域（例えば８画素×８ライン）に分割する。そして、このブロック単位で前のフィールド（またはフレーム）の一定範囲の画素との差を計算し、この差の絶対値の和が最小となる前のフィールド（またはフレーム）のブロックを探索する。そして、画面間の相対的なずれが、そのブロックの動きベクトルを示している。
【０００５】
また、マッチング演算については、尾上守夫等により、情報処理Vol.17,No.7,p.634 〜640 July 1976 で詳しく論じられている。
【０００６】
次に、ブロックマッチング法を用いた従来の動きベクトル検出法の一例を、図面を用いて説明する。図１１は従来の動きベクトル検出法によりぶれを防止する装置の概略ブロック図である。
【０００７】
まず動きベクトルの検出対象となる画像信号（フィールドまたはフレーム）が画像メモリ１０１及び空間周波数成分を抽出するフィルタ１０２に加えられる。画像メモリ１０１は画像信号を一時記憶する。フィルタ１０２は画像信号から動きベクトル検出に有用な空間周波数成分を抽出する。即ち、画像信号の低空間周波数成分及び高空間周波数成分を除去する。
【０００８】
フィルタ１０２を通過した画像信号は２値化回路１０３に加えられる。２値化回路１０３は画像信号を、ゼロレベルを基準として２値化する。具体的には出力信号の符号ビットを出力する。
【０００９】
２値化された画像信号は相関演算回路１０４及び１フィールド期間遅延手段としてのメモリ１０５に加えられる。相関演算回路１０４には更にメモリ１０５から前フィールドの画像信号が加えられている。
【００１０】
相関演算回路１０４はブロックマッチング法に従い、上記のように適当な大きさのブロック領域に画像領域を分割し、ブロック単位に現フィールドと前フィールドとの相関演算を行い、その結果の相関値を動きベクトル検出回路１０６に加える。動きベクトル検出回路１０６は算出された相関値からブロック単位の動きベクトルを検出する。具体的には相関値が最小となる前フィールドのブロックを探索し、その相対的なずれを動きベクトルとしている。
【００１１】
このブロック単位の動きベクトルは動きベクトル決定回路１０７に加えられる。動きベクトル決定回路１０７はブロック単位の動きベクトルから全体の動きベクトルを決定する。具体的には、ブロック単位の動きベクトルの中央値または平均値を画像全体の動きベクトルとしている。
【００１２】
動きベクトル決定回路１０７は全体の動きベクトルをメモリ読み出し制御回路１０８に加える。メモリ読み出し制御回路１０８は上記の全体の動きベクトルに応じて画像の動きが相殺されるように画像メモリ１０１の読み出し位置を制御し、画像メモリ１０１からぶれが補正された画像信号が出力される。
【００１３】
しかしながら、上記の方法では、画像中に移動物がある場合、例えば検出された動きベクトルの平均値を全体の動きベクトルにすると、画像中の移動物の動きが混入してしまう。その結果、移動物が画面内の元の位置にとどまるように画像メモリの読み出し位置が変化し、それにより本来動きがないはずである画面内の領域の位置が変化するため、画面が移動物に引っ張られたような動きをしてしまう。
【００１４】
この問題点を解決する方法として、特許文献１には、次のような方法が開示されている。即ち、動きベクトルの大きさの絶対値が小さい方が補正すべき動きベクトルであり、大きい方が移動物であるという識別方法を用いることにより、移動物に引っ張られるような動きを回避している。
【特許文献１】特許第２９５６０５６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
上記の特許文献１の方法は、撮像装置のぶれが比較的小さい場合や、撮像装置によって生じる画像ぶれが移動物の速度と比較して小さいときには有効である。例えば、撮像装置に装着される、又は撮像装置が備える撮像光学系の焦点距離が比較的短い場合等である。
【００１６】
しかしながら、撮像装置のぶれは、撮影環境や撮影者の熟練度等によってその大きさが変化する。また、撮像装置のぶれによって生じる画像ぶれは、上記撮像光学系の焦点距離に比例して大きくなっていく。上記のような事情からすると、撮像装置のぶれにより生じる動きベクトルと、移動物の移動による動きベクトルとの識別を、動きベクトルの大きさによってのみ行うと、誤差が大きくなると考えられる。
【００１７】
従って、本発明は上述した課題に鑑みてなされたものであり、その目的は、撮像装置のぶれにより生じる動きベクトルと、移動物の移動による動きベクトルとの識別を、精度良く行えるようにすることである。
【課題を解決するための手段】
【００１８】
上述した課題を解決し、目的を達成するために、本発明に係わる動きベクトル検出装置は、画像データを複数のブロック領域に分割して、分割されたそれぞれのブロック領域ごとに動きベクトルを検出する検出手段と、前記それぞれのブロック領域ごとの動きベクトルを、その大きさを階級とする度数分布上に振り分け、度数の大きさと階級間の距離に基づいて前記それぞれのブロック領域ごとの動きベクトルを１つ以上のグループに分類する動きベクトル分類手段と、前記動きベクトル分類手段により分類された結果、前記それぞれのブロック領域ごとの動きベクトルが複数のグループに分類された場合に、該複数のグループから１つのグループを選択して代表となる１つの動きベクトルを定める選択手段と、前記代表となる１つの動きベクトルに基づいて画像ぶれを補正するぶれ補正手段とを備え、前記選択手段は、過去の画像データにおける前記複数のグループのそれぞれの代表となる階級値の大小関係と、現在の画像データにおける前記複数のグループのそれぞれの代表となる階級値の大小関係とに基づいて、現在の画像データにおける前記複数のグループから前記１つのグループを選択することを特徴とする。
【００１９】
また、本発明に係わる撮像装置は、上記の動きベクトル検出装置を備えることを特徴とする。
【００２０】
また、本発明に係わる動きベクトル検出方法は、画像データを複数のブロック領域に分割して、分割されたそれぞれのブロック領域ごとに動きベクトルを検出する検出工程と、前記それぞれのブロック領域ごとの動きベクトルを、その大きさを階級とする度数分布上に振り分け、度数の大きさと階級間の距離に基づいて前記それぞれのブロック領域ごとの動きベクトルを１つ以上のグループに分類する動きベクトル分類工程と、前記動きベクトル分類工程により分類された結果、前記それぞれのブロック領域ごとの動きベクトルが複数のグループに分類された場合に、該複数のグループから１つのグループを選択して代表となる１つの動きベクトルを定める選択工程と、前記代表となる１つの動きベクトルに基づいて画像ぶれを補正するぶれ補正工程とを備え、前記選択工程は、過去の画像データにおける前記複数のグループのそれぞれの代表となる階級値の大小関係と、現在の画像データにおける前記複数のグループのそれぞれの代表となる階級値の大小関係とに基づいて、現在の画像データにおける前記複数のグループから前記１つのグループを選択することを特徴とする。
【発明の効果】
【００２１】
本発明によれば、撮像装置のぶれにより生じる動きベクトルと、移動物の移動による動きベクトルとの識別を、精度良く行うことが可能となる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の好適な一実施形態について、図面を参照して詳細に説明する。
【００２３】
図１は、本発明の一実施形態に係わる動きベクトル検出装置を組み込んだ撮像装置としてのビデオ・カメラの構成を示すブロック図である。図１は、一実施形態のビデオカメラの電気的構成を示すブロック図である。
【００２４】
図１において、１１はレンズおよび絞りからなる撮像光学系、１２はＣＣＤやＣＭＯＳセンサ等からなる固体撮像素子である。２１は、撮像光学系１１の内部の不図示のズームレンズ、フォーカスレンズ、絞り等を駆動するための駆動回路である。２３は、撮像素子１２を駆動するための駆動回路である。１３は撮影した画像データに必要な信号処理を行う信号処理回路である。１４は信号処理回路１３で信号処理された画像データから、動きベクトルを検出する動きベクトル検出装置である。１５は動きベクトル検出装置１４により検出された動きベクトルから、記録または表示する画像データの範囲を決める制御を行うメモリ読み出し制御回路である。１６は信号処理された画像データを記憶する画像メモリである。
【００２５】
１８はメモリカード、ハードディスク等からなる記録媒体、１７は信号処理された画像データを記録媒体１８に記録するための記録回路、２０は信号処理された画像データを表示する表示装置、１９は表示装置２０に画像を表示する表示回路である。２２はビデオカメラ全体を制御するシステム制御部である。
【００２６】
以下、上記のように構成されるビデオカメラにおける撮影動作について説明する。
【００２７】
まず、駆動回路２１は、システム制御部２２からの制御信号に基づいて、撮像光学系１１内のズームレンズ、フォーカスレンズ、絞りを駆動して、被写体像を撮像素子１２上に結像させる。
【００２８】
撮像素子１２は、システム制御部２２により制御される駆動回路２１が発生する駆動パルスにより駆動され、被写体像を光電変換して電気信号に変換し、アナログ画像信号を出力する。撮像素子１２から出力されたアナログ画像信号は、信号処理回路１３の内部の不図示のＡ／Ｄ変換器でデジタル画像信号に変換される。
【００２９】
次に、システム制御部２２により制御される信号処理回路１３では、デジタル画像信号に対して、不図示の色変換、ホワイトバランス補正、ガンマ補正等の画像処理、解像度変換処理、画像圧縮処理等が行われる。画像メモリ１６は、信号処理中のデジタル画像信号を一時的に記憶したり、信号処理されたデジタル画像信号である画像データを記憶したりするために用いられる。
【００３０】
動きベクトル検出装置１４は、信号処理回路１３で信号処理された画像データから動きベクトルを検出する（詳細は後述する）。メモリ読み出し制御回路１５は、動きベクトル検出装置１４により検出された動きベクトル情報に基づいて、画像ぶれが補正されるように、記録または表示する画像データの範囲を決定する制御を行う。
【００３１】
信号処理回路１３で信号処理された画像データや画像メモリ１６に記憶されている画像データは、記録回路１７において記録媒体１８への記録に適したデータ（例えば階層構造を持つファイルシステムデータ）に変換されて記録媒体１８に記録される。また、信号処理回路１３で解像度変換処理が実施された後、表示回路１９において表示装置２０に適した信号（例えばＮＴＳＣ方式のアナログ信号等）に変換されて表示装置２０に表示されたりする。
【００３２】
図２は、動きベクトル検出装置１４の概略構成を示すブロック図である。図１１と同一符号は同一構成要素を示しており、重複する説明は省略する。
【００３３】
図２においては、ブロック単位の動きベクトルを検出する動きベクトル検出回路１０６の後段に、動きベクトル分類回路３０と動きベクトル制御回路３１が備えられている点が、図１１と相違している。動きベクトル分類回路３０の動作について以下に説明する。
【００３４】
図３Ａは、撮影した現フィールドの画面上に、動きベクトル検出のためのブロック領域を示した一例を示す図である。図３Ｂは、直前のフィールドとの差により得られた動きベクトルを示す図である。また、図３Ｃは、全ブロック領域の動きベクトルのＸ方向（画面横方向）、Ｙ方向（画面縦方向）のそれぞれの大きさの頻度を示すヒストグラム（度数分布）である。動きベクトル分類回路３０では、まずこのヒストグラムデータの作成を行う。より具体的には、度数分布の横軸を移動ベクトルの大きさとし、所定の大きさ（範囲）ごとに区切って度数分布上の階級を設定する。そして、検出された各ブロックの移動ベクトルを、その大きさにより何れの階級に属するかを判断して、それぞれの度数としてプロットする。図３Ｂの例によれば、各ブロックの移動ベクトルとして、トータル４０個の移動ベクトルが検出されるが、この４０の度数を属する階級に振り分けてプロットすることで各階級の度数（頻度）を得ることができる。なお、それぞれ範囲を持つ階級の階級値としては、その階級の上限値と下限値の中間値を用いればよい。
【００３５】
図４Ａに示すように画面内に移動物が入ってきた場合、移動物の領域における動きベクトルは、図４Ｂに示すようにその他の領域とは異なる。このときＸ方向のヒストグラムは、図４Ｃに示すように、Vstate(T1)とVmove(T1)の２つのピークが存在する形となる。Vmove(T1)は移動物の領域の動きベクトルであり、Vstate(T1)はその他の領域の動きベクトルであることが、図４Ａとの関係で理解できる。ただし、この段階では、分離され得る２つのグループ（Vstate(T1)を含むプロット４０１〜４０４とVmove(T1)であるプロット４０５）が検出できただけである。いずれが手ぶれのみの移動ベクトルを表すグループであり、いずれが手ぶれに被写体の動きが重畳されたグループであるかはわからない。この判断については後述する。
【００３６】
ここではまず、検出された移動ベクトルをグループに分類する方法について説明する。
【００３７】
図４Ｃのような度数分布に対し、プロット４０３、４０５のような極値（ピーク）を探索する。ただし、この極値は予め定められた度数ｐを超えるもの（所定度数以上）である事とする。そして、極値が複数見つかった場合、それらの階級間の距離が予め定められたｃを超える（所定量以上離れている）ものであるかを判断する。超えているものであれば、それらは互いに別グループと判定し、超えていなければ同一グループだと判定する。このようにして定められたグループは、その中で最も大きな度数を持つ階級をそのグループの代表とし、その階級値をそのグループの代表する階級値とする。なお、階級間距離ｃは、動きベクトル検出誤差よりも大きな値に設定される。
【００３８】
図４Ｃの場合、極値はプロット４０３とプロット４０５であり、これらは度数ｐを超えるものである。そして、これらの階級間の距離はｄであり、これはｃより大きいので、別グループであると判定できる。一方度数ｐを超えるものの、極値であるプロット４０３に隣接するプロット４０２は、階級間の距離がｃを超えるものではないので、極値４０２のグループと同一グループであると判断できる。そして、これらに隣接し、度数ｐを超えないプロット４０１および４０４も、極値４０２のグループと同一グループであると判断できる。このようにして、各ブロックごとに検出された移動ベクトルは、１つ以上のグループに分類され、グループには代表する階級値、すなわちそのグループとしての代表移動ベクトル（図４ＣではVstate(T1)とVmove(T1)）を求めることができる。このグループの分類は、動きベクトル分類回路３０で行われる。
【００３９】
図４Ｄに示すように移動物が更に画面の中央の方向に進行すると、画面全体の動きベクトルは、図４Ｅのようになる。このときＸ方向のヒストグラムは、図４Ｆに示すように、Vstate(T2)とVmove(T2)の２つのピークが存在する形となる。Vmove(T2)は移動物の領域の動きベクトルであり、Vstate(T2)はその他の領域の動きベクトルであることが、図４Ｄとの関係で理解できる。
【００４０】
図４Ｃ及び図４Ｆに示すように、画面内に移動物が存在すると、動きベクトルの度数の山が、Vstate(T1)とVmove(T1)、Vstate(T2)とVmove(T2)のように複数存在するようになる。
【００４１】
次に動きベクトル制御回路３１の動作について、図５に示すフローチャートを参照して説明する。
【００４２】
動きベクトル制御回路３１は、ステップＳ１０において動きベクトル分類回路３０が現フィールド（現在の画像データ）において複数個の代表動きベクトルを検出したか否かを判定する。検出された代表動きベクトルが１つである場合は、ステップＳ１４に進み、当該代表動きベクトルを画面全体（画像データ全体）の動きベクトルとして選択する。
【００４３】
検出された代表動きベクトルが複数個存在する場合は、ステップＳ１１に進み、前フィールド（過去の画像データ）で複数個の代表動きベクトルが検出されたかどうかの判定を行う。前フィールドで複数個の代表動きベクトルが検出されていた場合は、ステップＳ１２に進み、Ｎ番目の大きさの代表動きベクトルを画面全体の動きベクトルとして選択する。このＮ番目の大きさの代表動きベクトルを選択するということがどのようなことを意味するのかについては後述する。Ｎ番目の大きさの代表動きベクトルを求める方法としては、例えば公知のソートアルゴリズム等を用いる。
【００４４】
前フィールドで複数個の代表動きベクトルが検出されていない場合は、ステップＳ１３に進み、後述する移動物識別処理により、検出された複数個の代表動きベクトルの中から１つを選択する。
【００４５】
ここで、図４Ｃ及び図４Ｆを用いて、ステップＳ１３についての説明を行う。画面内に移動物が存在すると、移動物の領域の動きベクトルは、撮像装置のぶれによる画像ぶれに、移動物の移動による動きベクトルが重畳された大きさとなる。移動物が一定速度で移動していたとして、移動物の移動に起因するＸ方向の動きベクトルの大きさをVspeedとすると、図４Ｃ及び図４ＦにおけるVmove(T1)及びVmove(T2)は、以下の式で表すことができる。
【００４６】
Vmove(T1)＝Vstate(T1)＋Vspeed    …（１）
Vmove(T2)＝Vstate(T2)＋Vspeed    …（２）
よって、Vspeedが正であれば以下の式が成り立つ。
【００４７】
Vmove(T1)＞Vstate(T1)            …（３）
Vmove(T2)＞Vstate(T2)            …（４）
式（３）及び式（４）では、共に移動物の動きベクトルの方がその他の領域の動きベクトルよりも大きくなっている。移動物の速度の符号が入れ替わる、即ち移動物の移動方向が変わるまでの時間は、多くの場合、撮像装置のぶれによる画像ぶれの周期よりも長い。そのため、移動物が一方向に移動している間は、移動物とその他の領域との動きベクトルの大小関係が一定になる。このことを利用し、移動物とその他の領域との動きベクトルの識別を容易に行うことが可能となる。
【００４８】
なお、ここでは移動物が１種類の場合で説明を行ったが、移動物が２種類以上画面内に存在する場合も、同様の考え方を用いることができる。例えば、移動物が２種類画面内に存在する場合は、動きベクトル分類回路３０によって検出される代表動きベクトルは３つとなる。ステップＳ１３の移動物識別処理によって、２番目の大きさの代表動きベクトルが選択された場合（この選択処理については後述する）、移動体はそれぞれ別々の方向に動いていることとなる。この場合、移動体が画面内から消滅するまで、２番目の大きさの代表動きベクトルを選択し続ければよい。
【００４９】
次に、図６に示すフローチャートを参照して、ステップＳ１３の移動物識別処理の１つ目の方法について説明する。
【００５０】
ステップＳ２０において、動きベクトル分類回路３０によって検出された複数の代表動きベクトルのうち、最も度数の大きい階級を含む動き代表ベクトルを、画面全体の動きベクトルとして選択する。例えば、図４ＣにおいてはVstate(T1)が画面全体の動きベクトルとして選択される。したがって、Vstate(T1)が手ぶれによる移動ベクトルであり、Vmove(T1)が移動物の移動分を重畳した移動ベクトルであることを判断できる。
【００５１】
次にステップＳ２１において、公知のソートアルゴリズム等を用いて、上記複数の代表動きベクトルを大きさ順（度数の順ではなく動きベクトル自体の大きさの順）、すなわち階級値の大きさ順に並び替えを行い、上記選択した代表動きベクトルの大きさの順位（何番目の大きさか）を記憶する。記憶した順位はＮ番目とする。このＮ番目の大きさの代表動きベクトルが前述したステップＳ１２で選択されるＮ番目の代表動きベクトルである。言い換えれば、前の画面（フィールド）で初めて複数の代表動きベクトルが検出された場合、前のフィールドではステップＳ１３で最も度数の大きい代表動きベクトル、即ち大きさがＮ番目の代表動きベクトルが画面全体の動きベクトルとして選択される。そして、次のフィールド以降では、ステップＳ１２で、このＮ番目の大きさの（同順位の）代表動きベクトルが画面全体の動きベクトルとして選択され続けることになる。例えば、図４Ｃにおいては、Vstate(T1)が画面全体の動きベクトルとして選択されているが、階級値の大きさ順に並べると、Vmove(T1)が１番、Vstate(T1)が２番となるので、Ｎ＝２となる。次に図４Ｆを見ると、度数が大きいのはVmove(T2)であり、階級の大きさ順でも１番であるが、すでにＮ＝２が定められているので、階級の大きさ順で２番であるVstate(T2)が、画面全体の動きベクトルとして選択されることになる。
【００５２】
図４Ａのように移動物が外部から入ってくる場合、移動物の領域は徐々に大きくなる。即ち、移動物の領域の動きベクトルの度数が、小さな値から時間の経過と共に徐々に大きくなっていく。従って移動物が画面内に入ってきて、動きベクトル分類回路３０によって初めて複数の代表動きベクトルが検出されたときに、上記のように最も度数の大きい代表動きベクトルを画面全体の動きベクトルとして選択する。そうすれば、移動物が画面内で一方向に移動している間、ステップＳ１２の処理により、画面全体の動きベクトルを正しく識別し、移動物に画面が引っ張られる現象を防止することが可能となる。
【００５３】
次に、図７に示すフローチャートを用いて、ステップＳ１３の移動物識別処理の２つ目の方法について説明する。
【００５４】
ステップＳ３０において、動きベクトル分類回路３０によって初めて複数の代表動きベクトルが検出された場合、検出された複数の代表動きベクトルのうち、前フィールドに検出された代表動きベクトルの大きさに最も近い代表動きベクトルを、画面全体の動きベクトルとして選択する。次にステップＳ３１において、公知のソートアルゴリズム等を用いて、上記複数の代表動きベクトルを大きさ順に並び替えを行い、上記選択した代表動きベクトルの大きさの順位を記憶する。記憶した順位はＮ番目とする。
【００５５】
フィールド間の期間は、ＮＴＳＣ方式においては１／６０秒という短い時間であり、現フィールドと１つ前のフィールドでは、撮像装置のぶれによる画像ぶれを示す動きベクトルが、近い値になる可能性が高い。従って、動きベクトル分類回路３０によって初めて複数の代表動きベクトルが検出されたときに、１つ前のフィールドの代表動きベクトルの大きさに最も近い動きベクトルを画面全体の動きベクトルとして選択する。そうすれば、移動物が画面内で一方向に移動している間、ステップＳ１２の処理により、画面全体の動きベクトルを正しく識別し、移動物に画面が引っ張られる現象を防止することが可能となる。
【００５６】
以上、ステップＳ１３の移動物識別処理について、図６と図７を用いて２つの方法を説明したが、これらの方法は併用してもよい。例えば、後者の方法において、動きベクトル分類回路３０によって検出された複数の代表動きベクトルの大きさと、前フィールドに検出された代表動きベクトルの大きさとの差分が、ほぼ同じであった場合に、前者の方法を用いるようにすることもできる。そうすれば、より正確に移動物の識別を行うことが可能となる。
【００５７】
また、上述した移動物識別処理は、全ての撮影状況で正しく移動物が識別できるわけではなく、誤識別してしまう可能性もある。そこで以下に述べる方法により、移動物の誤識別への対策を行うことにより、移動物識別の精度を上げることができる。
【００５８】
以下、図８乃至図１０を参照して、移動物の誤識別対策について説明する。
【００５９】
撮影者が被写体を狙って撮影を行う場合、ある時間内において各フィールドで検出される動きベクトルの大きさは、移動物が画面内に存在しないとき、図１０（ａ）に示すように、０を中心に正負に分布する。被写体ではない移動物が画面内に存在するときは、図１０（ｂ）に示すように、移動物の領域は移動物の速度を示す動きベクトルを中心に分布し、移動物ではない領域の動きベクトルは、０を中心に正負に分布する。
【００６０】
つまり、動きベクトル分類回路３０によって検出された複数の動きベクトルのうち、移動物の領域以外の動きベクトルを求めるためには、０を中心に正負に分布している動きベクトルを求めればよい。移動物識別対策はこの現象を利用した処理とする。
【００６１】
図８のフローチャートは、図５のフローチャートにステップＳ１５の移動物誤識別対策処理を追加したものである。図５と同一符号のステップは同一処理であり、説明は省略する。移動物誤識別対策処理（ステップＳ１５）では、ステップＳ１２で選択された代表動きベクトルが適切かどうかを判定し、適切でない場合は代表動きベクトルの再選択を行う。
【００６２】
次に、図９のフローチャートを用いて、移動物誤識別対策処理の内容について説明する。
【００６３】
ステップＳ４０において、図８のステップＳ１５で大きさの順位付けがなされた各々の代表動きベクトルについて、１つ前のフィールドと現フィールドで、代表動きベクトルの大きさの符号が正から負、もしくは負から正に変化したかどうかの判定を行う。そして、符号変化があった場合、その回数をカウントする。
【００６４】
ステップＳ４１において、ステップＳ１２において選択された代表動きベクトルと、選択されなかった代表動きベクトルの上記カウント数を比較する。そして、選択されなかった代表動きベクトルの上記カウント数が、選択された代表動きベクトルの上記カウント数を、所定カウント数以上上回ったかどうかの判定を行う。この判定は、図１０を参照して説明したように、動きベクトルの大きさが０を中心に正負に分布しているかを判定するものである。
【００６５】
ステップＳ４１において、選択されなかった代表動きベクトルの上記カウント数が、選択された代表動きベクトルの回数を上回った場合、ステップＳ４２に進み、当該代表動きベクトルを画面全体の動きベクトルとして再選択する。次にステップＳ４３において、上記再選択した代表動きベクトルの大きさの順位を記憶する。記憶した順位はＮ番目とする。
【００６６】
ステップＳ４１において、選択されなかった代表動きベクトルの上記カウント数が、選択された代表動きベクトルの回数を上回らなかった場合、移動物誤識別対策の処理を終了する。
【００６７】
以上、図８及び図９を用いて説明した方法により、図８の移動物識別処理（ステップＳ１３）で移動物を誤識別した場合でも、０を中心に正負に分布している動きベクトルを画面全体の動きベクトルとして再選択することができる。そして、移動物の識別が誤っている状態が継続することを防止することができる。
【００６８】
以上説明したように、上記の実施形態によれば、以下のような効果が得られる。
【００６９】
図４Ａ〜図４Ｆのように、画面内に移動物が存在する場合は、従来のブロック単位の動きベクトルの中央値または平均値を用いる動きベクトル決定方法によるぶれ補正を行うと、移動物に引っ張られ不自然な映像となってしまう。
【００７０】
また、動きベクトルの大きさの絶対値が小さい方が補正すべき代表動きベクトルであり、大きい方が移動物であるという識別方法においても、図４Ｃのヒストグラムでは、移動物の代表動きベクトルVmove(T1)が、手ぶれの動きベクトルにより相殺され略ゼロとなっているため、正しく移動物を識別することができない。
【００７１】
このように従来移動物を正しく識別できなかった状況においても、上記の実施形態の方法を用いれば、精度良く移動物を識別することができ、移動物に引っ張られ不自然な映像となってしまう現象が発生する確率を低減することが可能となる。
【００７２】
なお、本実施形態の方法は、撮像装置のぶれが比較的小さい場合や、撮像装置によって生じる画像ぶれが移動物の速度と比較して小さい場合には、代表動きベクトルの大きさの絶対値が小さいほうを画面全体の動きベクトルと判断する方法と併用してもよい。即ち、撮像装置に装着される、又は撮像装置が備える撮像光学系の焦点距離が比較的短い場合は、動きベクトルの大きさの絶対値が小さいほうを画面全体の動きベクトルと判断する方法を用いて移動体の識別を行い、撮像光学系の焦点距離が長い場合に、上記の実施形態の方法を用いる。これにより、より精度の高い移動体の識別を行うことが可能となる。
【００７３】
（他の実施形態）
また、各実施形態の目的は、次のような方法によっても達成される。すなわち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、本発明には次のような場合も含まれる。すなわち、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【００７４】
さらに、次のような場合も本発明に含まれる。すなわち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【００７５】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した手順に対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００７６】
【図１】本発明の一実施形態に係わる動きベクトル検出装置を組み込んだ撮像装置としてのビデオ・カメラの構成を示すブロック図である。
【図２】動きベクトル検出装置の概略構成を示すブロック図である。
【図３Ａ】撮影した現フィールドの画面上に、動きベクトル検出のためのブロック領域を示した一例を示す図である。
【図３Ｂ】直前のフィールドとの差により得られた動きベクトルを示す図である。
【図３Ｃ】全ブロック領域の動きベクトルのＸ方向、Ｙ方向のそれぞれの大きさの頻度を示すヒストグラムである。
【図４Ａ】画面内に移動物が入ってきた状態を示す図である。
【図４Ｂ】図４Ａの場合の動きベクトルの分布を示す図である。
【図４Ｃ】図４Ａの場合の動きベクトルのヒストグラムを示す図である。
【図４Ｄ】移動物が画面の中央に進行した状態を示す図である。
【図４Ｅ】図４Ｄの場合の動きベクトルの分布を示す図である。
【図４Ｆ】図４Ｄの場合の動きベクトルのヒストグラムを示す図である。
【図５】動きベクトル制御回路の動作を示すフローチャートである。
【図６】図５のステップＳ１３における移動物識別処理の１つ目の方法を説明するフローチャートである。
【図７】図５のステップＳ１３における移動物識別処理の２つ目の方法を説明するフローチャートである。
【図８】図５に移動物誤識別対策を追加したフローチャートである。
【図９】移動物の誤識別対策を説明するフローチャートである。
【図１０】移動物が画面内に存在する場合としない場合の、ある時間内における動きベクトルの分布を示す図である。
【図１１】従来の動きベクトル検出法によりぶれを防止する装置の概略ブロック図である。
【図１】
0004876065.tif 000002
【図２】
0004876065.tif 000003
【図３Ａ】
0004876065.tif 000004
【図３Ｂ】
0004876065.tif 000005
【図３Ｃ】
0004876065.tif 000006
【図４Ａ】
0004876065.tif 000007
【図４Ｂ】
0004876065.tif 000008
【図４Ｃ】
0004876065.tif 000009
【図４Ｄ】
0004876065.tif 000010
【図４Ｅ】
0004876065.tif 000011
【図４Ｆ】
0004876065.tif 000012
【図５】
0004876065.tif 000013
【図６】
0004876065.tif 000014
【図７】
0004876065.tif 000015
【図８】
0004876065.tif 000016
【図９】
0004876065.tif 000017
【図１０】
0004876065.tif 000018
【図１１】
0004876065.tif 000019