(57)【特許請求の範囲】
【請求項１】
複数の画像間の動きベクトルを検出する検出手段と、
前記動きベクトルの検出に関する設定を行う制御手段と、を有する動きベクトル検出装置であって、
前記制御手段は、前記動きベクトルの検出に関して、前記複数の画像に関する設定と、前記検出に用いる画像領域に関する設定との少なくとも１つを、前記検出手段が検出する動きベクトルの用途と、前記動きベクトル検出装置を備える装置の動きとの少なくとも１つに応じて変更し、
前記用途が、前記装置の動きを検出する用途と、前記複数の画像における被写体の動きを検出する用途とを含む、
ことを特徴とする動きベクトル検出装置。
【請求項２】
前記複数の画像に関する設定が、前記複数の画像の縮小に関する設定を含むことを特徴とする請求項１記載の動きベクトル検出装置。
【請求項３】
前記検出手段は、前記複数の画像の一方に設定したテンプレートブロックと相関の大きな領域を前記複数の画像の他方に設定したサーチ範囲内で探索することにより動きベクトルを検出し、
前記画像領域に関する設定が、前記テンプレートブロックに関する設定と前記サーチ範囲に関する設定の少なくとも１つを含む、
ことを特徴とする請求項１または請求項２に記載の動きベクトル検出装置。
【請求項４】
前記制御手段は、前記テンプレートブロックのサイズに応じたサイズの前記サーチ範囲を設定することを特徴とする請求項３に記載の動きベクトル検出装置。
【請求項５】
前記テンプレートブロックに関する設定が、サイズ、数、配置、および形状の少なくとも１つを含むことを特徴とする請求項３または請求項４に記載の動きベクトル検出装置。
【請求項６】
前記制御手段は、前記テンプレートブロックのサイズ及び数を、前記検出手段が検出する動きベクトルの用途と、前記動きベクトル検出装置を備える装置の動きとの少なくとも１つに応じて変更することを特徴とする請求項３または請求項４に記載の動きベクトル検出装置。
【請求項７】
前記制御手段は、前記テンプレートブロックのサイズが第１のサイズのときは、前記テンプレートブロックのサイズが前記第１のサイズより大きい第２のサイズのときよりも、前記テンプレートブロックの数を多くすることを特徴とする請求項６に記載の動きベクトル検出装置。
【請求項８】
前記制御手段は、前記用途が、前記複数の画像における被写体の動きを検出する用途のときは、前記テンプレートブロックのサイズを前記第１のサイズに設定し、
前記用途が、前記装置の動きを検出する用途のときは、前記テンプレートブロックのサイズを前記第２のサイズに設定することを特徴とする請求項７に記載の動きベクトル検出装置。
【請求項９】
前記用途が、前記装置の動きを検出する用途と、前記複数の画像における被写体の動きを検出する用途とを含み、
前記制御手段は、
前記装置の動きを検出する用途の場合には、前記複数の画像の一方の全体に分布するように前記テンプレートブロックを設定し、
前記被写体の動きを検出する用途の場合には、前記装置の動きを検出する用途の場合よりも小さく、数多くのテンプレートブロックを、前記複数の画像の一方の中央部分に重点的に設定する、
ことを特徴とする請求項３から請求項５のいずれか１項に記載の動きベクトル検出装置。
【請求項１０】
前記制御手段は、前記被写体の動きを検出する用途の場合には、前記装置の動きを検出する用途の場合よりも、前記複数の画像の縮小率を大きく設定することを特徴とする請求項９に記載の動きベクトル検出装置。
【請求項１１】
前記装置の動きが、前記装置の特定の方向への動きであり、
前記制御手段は、
前記特定の方向への動きが検出されている場合には、
前記複数の画像を縮小するように設定するとともに、
前記特定の方向への動きが検出されていない場合よりも、前記テンプレートブロックを前記特定の方向に拡大する、
ことを特徴とする請求項３から請求項１０のいずれか１項に記載の動きベクトル検出装置。
【請求項１２】
前記装置が、複数の撮影モードを有する撮像装置であり、
前記制御手段は、前記撮像装置に設定されている撮影モードが関連付けられた用途に応じて前記設定を変更することを特徴とする請求項１から請求項１１のいずれか１項に記載の動きベクトル検出装置。
【請求項１３】
前記装置の動きが、前記装置の特定の方向への動きと、前記装置が安定した状態であることの少なくとも１つを含むことを特徴とする請求項１から請求項１２のいずれか１項に記載の動きベクトル検出装置。
【請求項１４】
前記装置が撮像装置であり、前記特定の方向への動きがパンニングであることを特徴とする請求項１３に記載の動きベクトル検出装置。
【請求項１５】
複数の画像間の動きベクトルを検出する検出手段と、
前記動きベクトルの検出に関する設定を行う制御手段と、を有する動きベクトル検出装置であって、
前記制御手段は、前記動きベクトルの検出に関して、前記複数の画像に関する設定と、前記検出に用いる画像領域に関する設定との少なくとも１つを、前記検出手段が検出する動きベクトルの用途と、前記動きベクトル検出装置を備える装置の動きとの少なくとも１つに応じて変更し、
前記検出手段は、前記複数の画像の一方に設定したテンプレートブロックと相関の大きな領域を前記複数の画像の他方に設定したサーチ範囲内で探索することにより動きベクトルを検出し、
前記画像領域に関する設定が、前記テンプレートブロックに関する設定と前記サーチ範囲に関する設定の少なくとも１つを含み、
前記テンプレートブロックに関する設定が、数、配置、および形状の少なくとも１つを含む、
ことを特徴とする動きベクトル検出装置。
【請求項１６】
前記制御手段は、前記検出手段が検出する動きベクトルの用途と、前記動きベクトル検出装置を備える装置の動きとの少なくとも１つに応じて、前記複数の画像の一方の全体に分布するように前記テンプレートブロックを設定するか、前記複数の画像の一方の中央部分に重点的に前記テンプレートブロックを設定するか、を変更することを特徴とする請求項１５に記載の動きベクトル検出装置。
【請求項１７】
前記制御手段は、前記複数の画像の一方の中央部分に重点的に前記テンプレートブロックを設定する場合、前記複数の画像の一方の全体に分布するように前記テンプレートブロックを設定する場合よりも多く前記テンプレートブロックを設定することを特徴とする請求項１６に記載の動きベクトル検出装置。
【請求項１８】
前記制御手段は、前記複数の画像の一方の中央部分に重点的に前記テンプレートブロックを設定する場合、前記複数の画像の一方の全体に分布するように前記テンプレートブロックを設定する場合よりもサイズが小さい前記テンプレートブロックを設定することを特徴とする請求項１６または請求項１７に記載の動きベクトル検出装置。
【請求項１９】
前記制御手段は、前記検出手段が検出する動きベクトルの用途と、前記動きベクトル検出装置を備える装置の動きとの少なくとも１つに応じて、前記テンプレートブロックの数を変更することを特徴とする請求項１５に記載の動きベクトル検出装置。
【請求項２０】
前記制御手段は、前記テンプレートブロックの数が第１の値の場合、前記テンプレートブロックの数が第１の値よりも小さい第２の値の場合よりもサイズが小さい前記テンプレートブロックを設定することを特徴とする請求項１９に記載の動きベクトル検出装置。
【請求項２１】
撮像手段と、
画像処理手段と、
請求項１から請求項２０のいずれか１項に記載の動きベクトル検出装置とを有し、
前記検出手段は、前記撮像手段で撮影され、前記画像処理手段を通じて供給される複数の画像間の動きベクトルを検出することを特徴とする撮像装置。
【請求項２２】
前記動きベクトル検出装置で検出された動きベクトルに基づいて、防振制御を行うことを特徴とする請求項２１に記載の撮像装置。
【請求項２３】
複数の画像間の動きベクトルを検出する検出部を有する動きベクトル検出装置の制御方法であって、
前記動きベクトルの検出に関して、前記複数の画像に関する設定と、前記検出に用いる画像領域に関する設定との少なくとも１つを、前記検出部が検出する動きベクトルの用途と、前記動きベクトル検出装置を備える装置の動きとの少なくとも１つに応じて変更する制御工程を有し、
前記用途が、前記装置の動きを検出する用途と、前記複数の画像における被写体の動きを検出する用途とを含む、
ことを特徴とする動きベクトル検出装置の制御方法。
【請求項２４】
複数の画像間の動きベクトルを検出する検出部を有する動きベクトル検出装置の制御方法であって、
前記動きベクトルの検出に関して、前記複数の画像に関する設定と、前記検出に用いる画像領域に関する設定との少なくとも１つを、前記検出部が検出する動きベクトルの用途と、前記動きベクトル検出装置を備える装置の動きとの少なくとも１つに応じて変更する制御工程を有し、
前記検出部は、前記複数の画像の一方に設定したテンプレートブロックと相関の大きな領域を前記複数の画像の他方に設定したサーチ範囲内で探索することにより動きベクトルを検出し、
前記画像領域に関する設定が、前記テンプレートブロックに関する設定と前記サーチ範囲に関する設定の少なくとも１つを含み、
前記テンプレートブロックに関する設定が、数、配置、および形状の少なくとも１つを含む、
ことを特徴とする動きベクトル検出装置の制御方法。
【請求項２５】
コンピュータを、請求項１から請求項２０のいずれか１項に記載の動きベクトル検出装置が有する各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きベクトル検出装置およびその制御方法、撮像装置に関する。
【背景技術】
【０００２】
２枚のフレーム画像間の動きベクトルを検出し、動きベクトルに基づいて画像の振れを補正する技術が知られている。フレーム画像間の動きベクトルを検出する方法として、例えばテンプレートマッチングが知られている。
【０００３】
テンプレートマッチングを用いて動きベクトルを検出する場合、２枚のフレーム画像の一方を原画像、もう一方を参照画像と呼ぶ。原画像における所定のサイズの矩形領域をテンプレートブロックとして設定し、参照画像には相関値を算出する矩形領域をサーチ範囲として設定する。そして、テンプレートブロックと参照画像との相関をサーチ範囲内の各位置について算出し、相関が最も高くなる位置（テンプレートブロックの移動先）を検出する。原画像のテンプレートブロックの位置を基準とした移動先への向きと移動量が、テンプレートブロックの動きベクトルである。例えば原画像の異なる位置に複数のテンプレートブロックを設定し、各テンプレートブロックについて検出した動きベクトルを統計的に処理してフレーム画像間の動きを検出し、画像の振れ補正に用いることができる。
【０００４】
テンプレートマッチングを用いて検出される動きベクトルの検出の精度は、例えば、設定するテンプレートブロックの位置、サイズ、数、サーチ範囲のサイズ、原画像および参照画像のサイズ(縮小率)など、様々な要因の影響を受ける。
【０００５】
特許文献１、２には、被写体の動き、輝度、距離や、撮影レンズの焦点距離（画角）といった被写体や撮影レンズの状態に応じて、代表点やテンプレートブロックの位置および数を変更したり、サーチ範囲の形状やサイズを変更したりすることが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第２８９２６８５号公報
【特許文献２】特開２０１５−４１８１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら特許文献１，２は、被写体や撮影レンズの状態以外の要因で動きベクトルの検出方法を制御することについては考慮していない。また、動きベクトルの検出方法における制御の対象が、代表点やテンプレートブロックの位置および数、サーチ範囲の形状およびサイズに限られており、動きベクトルの精度に影響を与える他の要因についての制御は想定されていない。例えば特許文献１、２に記載される技術では、被写体や撮影レンズの状態以外の要因で動きベクトルの検出方法を制御したり、テンプレートブロックのサイズや画像サイズなどを制御したりすることはできなかった。
【０００８】
本発明はこのような従来技術の課題の１つ以上を解決するためになされたもので、動きベクトルの検出方法を柔軟に制御可能な動きベクトル検出装置およびその制御方法、撮像装置の提供を目的とする。
【課題を解決するための手段】
【０００９】
上述の目的は、複数の画像間の動きベクトルを検出する検出手段と、動きベクトルの検出に関する設定を行う制御手段と、を有する動きベクトル検出装置であって、制御手段は、動きベクトルの検出に関して、複数の画像に関する設定と、検出に用いる画像領域に関する設定との少なくとも１つを、検出手段が検出する動きベクトルの用途と、動きベクトル検出装置を備える装置の動きとの少なくとも１つに応じて変更し、用途が、装置の動きを検出する用途と、複数の画像における被写体の動きを検出する用途とを含むことを特徴とする動きベクトル検出装置によって達成される。
【発明の効果】
【００１０】
本発明によれば、動きベクトルの検出方法を柔軟に制御可能な動きベクトル検出装置およびその制御方法、撮像装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態に係る動きベクトル検出装置を備えた撮像装置の構成を示すブロック図である。
【図２】テンプレートマッチングを用いた動きベクトルの検出方法を説明する図である。
【図３】撮像装置と被写体の動き検出用の動きベクトルの検出設定の例を示した図である。
【図４】第１実施形態における撮影モードに応じた動きベクトルの検出設定の処理のフローチャートである。
【図５】第２実施形態における撮影状況に応じた動きベクトルの検出設定の処理のフローチャートである。
【図６】横方向のパンニング検出時の動きベクトルの検出設定の例を示した図である。
【図７】第３実施形態における撮影状況に応じた動きベクトルの検出設定の処理のフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の例示的な実施形態について、添付の図面に基づいて詳細に説明する。なお、以下では本発明の実施形態に係る動きベクトル検出装置の一例として、動きベクトルの検出に用いる画像を生成可能なデジタルカメラについて説明するが、本発明においては画像の生成に関する構成は必須ではない。例えば、予め記録されている画像を記憶装置などから取得するなど、動きベクトルを検出する画像をなんらかの方法で取得できればよい。従って、本発明はパーソナルコンピュータ、携帯電話機、ゲーム機などを含む、任意の電子機器において実施可能である。
【００１３】
●（第１実施形態）
図１は、本実施形態に係るデジタルカメラの機能構成例を示すブロック図である。ズームユニット１０１、絞り・シャッタユニット１０３、像振れ補正ユニット１０５、フォーカスユニット１０７は撮影光学系を構成する。撮影光学系は交換レンズの形態であっても、着脱不能な形態であってもよい。
【００１４】
ズームユニット１０１は、撮影光学系の画角（焦点距離）を変更するレンズを含み、ズーム駆動制御部１０２によって駆動される。絞り・シャッタユニット１０３は、メカニカルシャッタの機能を有する絞りを含み、絞り・シャッタ駆動制御部１０４によって駆動される。像振れ補正ユニット１０５（単に「補正ユニット」ともいう。）は、シフトレンズを含み、像振れ補正制御部１０６によって駆動される。なお、本実施形態ではシフトレンズを駆動する光学式の像振れ補正を行うが、撮像素子を駆動してもよい。また、本実施形態では、画像の読み出し範囲を変更する電子式の像振れ補正を行ってもよい。フォーカスユニット１０７は、撮影光学系の合焦距離を調整するフォーカスレンズを含み、フォーカス駆動制御部１０８によって駆動される。
【００１５】
撮像部１０９は、撮影光学系が形成する光学像を、撮像素子に配置された複数の光電変換素子（画素）によって電気信号に変換して出力する。画像処理部１１０は、撮像部１０９から出力された電気信号に対してＡ／Ｄ変換、ガンマ補正、ホワイトバランス調整、デモザイクなどの画像処理を適用して画像信号に変換する。画像処理部１１０はまた、画像信号を用途に応じて加工する。例えば、電子式手振れ補正を行う場合、画像処理部１１０は、像振れ補正制御部１０６の補正量に応じて画像信号の切り出し位置を変更する。また、画像処理部１１０は、記録形式に応じた符号化および復号処理や、リサイズ（拡大・縮小）処理、表示用の画像信号の生成処理、被写体検出処理なども行う。
【００１６】
動きベクトル検出部１１９は、画像処理部１１０から出力された２フレーム分の画像信号から動きベクトルを検出し、動きベクトル情報として出力する。動きベクトル検出部１１９は画像信号を一時的に保存するためのメモリを備える。動きベクトル検出部１１９における動きベクトル検出処理の詳細については、後述する。画像処理部１１０および動きベクトル検出部１１９の少なくとも一部の機能は、後述するシステム制御部１１８がプログラムを実行することによって実現してもよい。また、画像処理部１１０および動きベクトル検出部１１９の少なくとも一部の機能は、ＡＳＩＣやＦＰＧＡのようなハードウェア回路によって実現してもよい。画像処理部１１０、システム制御部１１８、および動きベクトル検出部１１９が動きベクトル検出装置の機能を実現する。
【００１７】
表示部１１２は、画像処理部１１０から出力された表示用の信号に基づいて画像を表示する。電源部１１３は、デジタルカメラの各部に用途に応じて電源を供給する。外部入出力端子部１１４は、外部装置を直接もしくはネットワークを介して接続するためのインタフェースおよびコネクタ群である。外部装置とは有線または無線によって接続可能である。操作部１１５は、ユーザがデジタルカメラ１００に各種の指示を入力するための入力デバイス群である。表示部１１２がタッチディスプレイの場合、タッチパネル部分は操作部１１５に含まれる。記憶部１１６は、不揮発性の記憶装置であり、撮影した画像、各種設定値、プログラムなど様々なデータを記憶する。振れ検出部１１７は例えば加速度センサの出力やシフトレンズ（補正ユニット１０５）の位置などから、デジタルカメラ１００の振れ量を検出する。
【００１８】
システム制御部１１８は、１つ以上のプログラマブルプロセッサ（ＣＰＵ）とメモリとを含む。記憶部１１６に記憶されているプログラムをメモリにロードしてＣＰＵで実行し、各部を制御することにより、デジタルカメラ１００の機能を実現する。
【００１９】
デジタルカメラ１００は像振れ補正に関して、（１）像ブレ補正のＯＮ／ＯＦＦ、（２）光学式像振れ補正のみを実行するか、光学式像振れ補正と電子式像振れ補正の両方を実行するか、（３）電子式像振れ補正の効果の強度、を設定もしくは選択可能である。これらの設定もしくは選択は、操作部１１５に含まれるスイッチや、表示部１１２のタッチパネルを用いたＧＵＩによってユーザが行うことができる。
【００２０】
像振れ補正のＯＮが選択されている場合、システム制御部１１８は、像振れ補正制御部１０６に像振れ補正動作の実行を指示する。像振れ補正制御部１０６は、システム制御部１１８から像振れ補正動作の停止が指示されるまで像振れ補正動作を実行する。
【００２１】
また、電子式像振れ補正の効果の強度は、例えば、弱、中、強の３段階で設定可能であり、強いほどより大きな像振れを補正できる一方、画像処理部１１０による画像信号の切り出し範囲が狭くなるため、表示部１１２に表示される画像の画角が狭くなる。
【００２２】
操作部１１５には、約半分押されたときに第１スイッチＳＷ１がＯＮし、最後まで押されたときに第２スイッチＳＷ２がＯＮするレリーズボタンも含まれる。システム制御部１１８は、撮影スタンバイ状態における第１スイッチＳＷ１のＯＮは撮影準備動作の開始指示、第２スイッチＳＷ２のＯＮは撮影および記録動作の開始指示と解釈し、各部を制御する。
【００２３】
撮影準備動作においてシステム制御部１１８は、ＡＦおよびＡＥ動作を実行する。例えばシステム制御部１１８は、焦点検出領域内の被写体に合焦するフォーカスレンズ位置をコントラスト検出方式または位相差検出方式によって検出する。そしてシステム制御部１１８は、フォーカス駆動制御部１０８を通じてフォーカスユニット１０７を駆動し、フォーカスレンズを検出した合焦位置に移動させる。また、システム制御部１１８は、例えば被写体輝度の情報とプログラム線図とに基づいて、露出条件（シャッタースピード、絞り値、撮影感度、フラッシュ点灯・非点灯）を決定する。なお、ここに述べたＡＦおよびＡＥ動作は例示であって、他の方法を用いてもよい。
【００２４】
撮影および記録動作においてシステム制御部１１８は、絞り・シャッタ駆動制御部１０４を通じて絞り・シャッタユニット１０３を駆動し、ＡＥ動作で決定した露出条件に応じた露光を行う。撮像部１０９で撮像された画像には画像処理部１１０で所定の処理が適用され、記録用の画像ファイルの形式で記憶部１１６に記憶される。
【００２５】
操作部１１５には、撮影モードと再生モードのいずれかを選択する動作モード選択スイッチが含まれてよい。撮影モードは静止画モードと動画モードに加え、例えば流し撮りなど撮影用途に応じた撮影モードが含まれてもよい。撮影モードが選択されている場合、デジタルカメラ１００は撮影スタンバイ状態となり、ライブビュー表示など、予め定められた動作を実行する。再生モードが選択されている場合、デジタルカメラ１００は記憶部１１６に記憶された静止画や動画を表示部１１２に表示する。
【００２６】
操作部１１５には動画記録用スイッチが含まれてよい。撮影スタンバイ状態で動画記録用スイッチが押されると動画の撮影および記録が開始され、記録中に動画記録用スイッチが押されると動画撮影が終了する。動画記録用スイッチの操作は、動作モード選択スイッチによる設定よりも優先される。したがって、静止画モードが選択されていても、動画記録用スイッチが押されると、システム制御部１１８は動画の撮影および記録を開始する。また動画の撮影および記録中に第１スイッチＳＷ１または第２スイッチＳＷ２がＯＮした場合、システム制御部１１８は動画記録中の静止画撮影動作を実行する。例えば動画記録中の静止画撮影動作は、記録中の動画像のフレームを静止画として記録する動作であってよいが、動画記録を中断して通常の静止画撮影動作を実行してもよい。
【００２７】
また操作部１１５には、撮像光学系の画角を変更するための変倍スイッチが含まれてよい。変倍スイッチが操作されると、システム制御部１１８はズーム駆動制御部１０２を通じてズームユニット１０１を変倍スイッチの操作方向に応じて移動させる。
【００２８】
（動きベクトル検出処理）
次に、動きベクトル検出部１１９が実行する動きベクトル検出処理の詳細について説明する。本実施形態では、動きベクトルを検出する方法の一例として、テンプレートマッチングを用いた場合について説明する。
【００２９】
図２を用いて、テンプレートマッチングによる動きベクトルの検出方法を説明する。図２（ａ）は原画像、図２（ｂ）は参照画像を示す。原画像と参照画像は例えば撮影スタンバイ状態や動画記録時に撮影される動画のフレーム画像であってよい。なお、原画像と参照画像とは動画像の連続する２フレームの画像である必要はなく、任意の１組の画像であってよい。
【００３０】
動きベクトル検出部１１９は図２（ａ）に示すように原画像に複数のテンプレートブロック２０１を配置し、個々のテンプレートブロック２０１と相関が最も高い領域を参照画像内で探索することにより、画像間の動きベクトルを検出する。探索はテンプレートブロック２０１と参照画像との相対位置ごとに相関値を算出して行うため、探索に要する演算量はサーチ範囲が広いほど多くなる。
【００３１】
参照画像の全体をサーチ範囲とすると演算量が膨大となるため、動きベクトル検出部１１９は、テンプレートブロック２０１に対応する参照画像中の領域を包含する、参照画像の部分領域をサーチ範囲２０２として設定する。動きベクトル検出部１１９は、サーチ範囲２０２の内部にテンプレートブロック２０１と同じサイズの相関値算出ブロック２０３を設定する。そして、動きベクトル検出部１１９は、相関値算出ブロック２０３の設定位置をサーチ範囲２０２内で移動させ、個々の位置においてテンプレートブロック２０１との相関値を算出する。
【００３２】
本実施形態において動きベクトル検出部１１９は、相関値の一例として差分絶対値和（ＳＡＤ）を算出する。ＳＡＤはテンプレートブロック２０１と相関値算出ブロック２０３とで、対応する位置の画素間における輝度値の差の絶対値の総和である。ＳＡＤの値が小さいほど、テンプレートブロック２０１と相関値算出ブロック２０３とが類似した輝度パターンを有することを意味する。なお、相関値はＳＡＤに限定されず、差分二乗和（ＳＳＤ）や正規化相互相関（ＮＣＣ）などの他の値を用いてもよい。
【００３３】
動きベクトル検出部１１９は、サーチ範囲２０２内で相関値算出ブロック２０３を設定可能な複数の位置（例えば１画素単位で設定可能な全ての位置）について相関値を算出する。そして、動きベクトル検出部１１９は、相関が最も高くなる（ＳＡＤが最も小さくなる）相関値算出ブロック２０３の位置を、テンプレートブロック２０１の移動先として検出する。これにより、原画像におけるテンプレートブロック２０１の位置（例えば中心座標）を始点とし、移動先として検出された相関値算出ブロック２０３の位置（例えば中心座標）を終点とする動きベクトルが得られる。動きベクトル検出部１１９は、このような動きベクトルの検出処理を、テンプレートブロック２０１のそれぞれについて実行する。
【００３４】
次に、動きベクトル検出に関する設定について説明する。本実施形態では、動きベクトル検出に関して、以下の設定の１つ以上を制御することができる。
（１）テンプレートブロックの設定（例えば、配置、サイズ、数）
（２）サーチ範囲の設定（例えば、サイズ）
（３）画像の設定（例えば、サイズもしくは縮小率）
【００３５】
・テンプレートブロックの配置
例えばテンプレートブロックを原画像の全体に分布するように配置するか、中央部に重点的に配置するか、などを制御することができる。テンプレートブロックを原画像の全体に分布するように配置すれば、画像全体の動き、すなわちデジタルカメラの動きを検出しやすくなる。また、テンプレートブロックを原画像の中央部に重点的に配置すれば、視野の中央付近に位置する被写体の動きを検出しやすくなる。
【００３６】
・テンプレートブロックのサイズ
テンプレートブロックのサイズが大きいほど、ブロック内の輝度パターンが固有パターンとなりやすくなるため、基本的には動きベクトルの検出に失敗しづらく、また検出される動きベクトルの信頼性も高くなる。しかし、移動被写体が存在する場合には、静止被写体と移動被写体の両方がブロックに含まれる可能性が高くなり、移動被写体の影響で動きベクトルの検出精度が低下しやすくなる。
また、テンプレートブロックのサイズが小さいほど、内部に含まれる輝度パターンが固有パターンとなりにくくなるため、動きベクトルの検出に失敗しやすくなり、また検出される動きベクトルの信頼性も低くなる。しかし、静止被写体と移動被写体の両方がブロック内に含まれる可能性は低くなるため、移動被写体が動きベクトルの検出精度に与える影響は小さくなる。
【００３７】
・テンプレートブロックの数
テンプレートブロックの数が多いほど、パターンマッチングによる動きベクトル検出精度が低下しやすい低コントラストのシーンなどにおいても検出される動きベクトルの数が多くなる可能性がある。しかし、演算量が多くなるため、例えば動画の撮影中に１フレームごとに動きベクトルを検出する必要がある場合など、処理時間に制約がある場合にはブロックの数を増やせない可能性がある。また、テンプレートブロックの数が少ないほど、処理時間の点では有利であるが、精度が低下しやすいシーンでは検出される動きベクトルの数が極端に少なくなる可能性がある。
【００３８】
・サーチ範囲のサイズ
テンプレートブロックに対するサーチ範囲の相対的なサイズが大きいほど、検出できる動きの最大値が大きくなる。一方で、サーチ範囲内にテンプレートブロックと類似した輝度パターンが含まれやすくなるため、検出に失敗しやすくなる（あるいは検出される動きベクトルの信頼性が低くなる）。テンプレートブロックに対するサーチ範囲の相対的なサイズが小さいほど、検出できる動きの最大値が小さくなる。一方で、サーチ範囲内にテンプレートブロックと類似した輝度パターンが含まれにくくなるため、検出に失敗にくくなる（あるいは検出される動きベクトルの信頼性が高くなる）。
【００３９】
・画像のサイズ
動きベクトルの検出に用いる画像（原画像および参照画像）のサイズを縮小しない、あるいは縮小率（１−縮小後／縮小前）が低いと、細かいパターンの情報が失われないため動きベクトルの検出精度は高くなる。一方、画素を間引いたり平均化するなどして画像のサイズを縮小するほど、細かいパターンの情報が失われるため動きベクトルの検出精度は低くなる。しかし、画像のサイズを縮小すると、テンプレートブロックとサーチ範囲のサイズを変えることなく、より大きな動きを検出することが可能になる。また、検出する動きの範囲が変わらない場合にはテンプレートブロックやサーチ範囲を小さくすることができ、処理負荷を軽減できる。
【００４０】
表１に、各設定項目が、動きベクトルの検出性能に与える影響の例を示す。なお、表１では各設定項目が動きベクトル検出処理の負荷に与える影響は記載していない。
【表１】
0006667268.tif 000002
このように、動きベクトルの検出に関する設定は、項目に応じて動きベクトル検出性能に与える影響が異なり、また、トレードオフの関係がある。従って、検出した動きベクトルの用途に応じて動きベクトルの検出設定を変更することで、用途に適した動きベクトルの検出性能を実現することができる。
【００４１】
なお、テンプレートブロックのサイズや数、サーチ範囲のサイズ、および画像のサイズなどにおける「大きい」「小さい」とは、予め定められた基準値に対する大小を表してもよいし、一方に対する他方の相対的なサイズを表してもよい。従って、基準値と、基準値より大きな第１の値と小さな第２の値が存在してもよいし、基準値が存在しなくても（第１の値または第２の値が基準値であっても）よい。
【００４２】
次に、動きベクトルの用途に応じた動きベクトル検出の設定例について説明する。
動きベクトルの用途には特に制限は無いが、カメラの動きを検出する用途と、被写体の動きを検出する用途に大別することができる。カメラの動きは例えば手振れ補正に、被写体の動きは例えば被写体ぶれの補正に用いることができる。
【００４３】
カメラの動きを検出するためには画像間の全体的な動きを表す動きベクトルを検出する必要がある。そのため、テンプレートブロックは画像全体に分散させて配置する。また、高い検出精度が得られるようにテンプレートブロックのサイズを（例えば基準サイズより）大きくし、サーチ範囲もテンプレートブロックのサイズに伴って（例えば基準サイズより）大きくする。また、検出精度を高めるため、画像の縮小は行わない。なお、これらの設定はいずれも動きベクトル検出処理に要する負荷を大きくする。そのため、例えば動画像の１フレーム周期（フレームレートの逆数）内に検出処理を完了する必要がある場合など、処理負荷を軽減する必要がある場合にはテンプレートブロックの数を（例えば基準数より）少なくしてもよい。
【００４４】
次に、被写体の動きを検出する場合の動きベクトル検出の検出設定の例について説明する。一般的なユーザは、主被写体を画面の中央付近に配置して撮影することが多い（あるいは、主被写体を画面の端に配置して撮影することは少ない）。そのため、テンプレートブロックを画面中央に重点的に配置し、主被写体の画像領域がテンプレートブロックに含まれる確率を高める。なお、画像の周辺部にテンプレートブロックを配置してもしなくてもよい。
【００４５】
また、主被写体が移動することを想定し、テンプレートブロックのサイズは（例えば基準サイズより）小さくする。これにより、テンプレートブロック内に静止被写体と移動被写体の両方が含まれる可能性を下げるとともに、動きベクトルの検出性能に対して移動被写体が与える影響を低減する。テンプレートブロックのサイズを小さくすることに伴い、サーチ範囲も（例えば基準サイズより）小さくする。一方で、画像を縮小することで、実質的なサーチ範囲は大きくし、検出できる動きの最大値を大きくする。
【００４６】
テンプレートブロックのサイズを小さくしたり、画像を縮小することにより、動きベクトル検出処理に要する負荷が小さくなる。そのため、テンプレートブロックの数を（例えば基準数より）増やすことができる。数多くの小さなテンプレートブロックを原画像の中央付近に密集させて配置することで、多くの動きベクトルを検出し、被写体の動きをより精度良く検出できる。
【００４７】
なお、テンプレートブロックのサイズの変更に伴ってサーチ範囲のサイズを変更する場合、変更前後で検出可能な動きベクトルの最大値が変わらないようなサイズに変更することを基準とする。上述の例では、カメラの動きを検出する場合、被写体の動きを検出する場合とも、サーチ範囲のサイズの変更は、基準に等しい変更であってよい。被写体の動きを検出する場合には、画像の縮小により、実質的なサーチ範囲が拡大できる。
【００４８】
図３（ａ）は、カメラの動きを検出するために用いる動きベクトルを検出する際に原画像３０１に設定されるテンプレートブロック３０２の例を示す。また、図３（ｂ）および（ｃ）は、被写体の動きを検出するために用いる動きベクトルを検出する際の原画像３０１の縮小画像３０４と、縮小画像３０４に設定されるテンプレートブロック３０５の例を示す。
【００４９】
カメラの動きを検出する場合、画像（原画像および参照画像）を縮小せずに動きベクトルを検出するため、動きベクトル検出部１１９には画像３０１がそのままのサイズで入力される。また、動きベクトル検出部１１９は、サイズの大きなテンプレートブロック３０２を画像全体に分布するように配置（設定）する。一方、動きベクトル検出部１１９は、動きベクトル検出の処理負荷を軽減するため、水平方向におけるテンプレートブロック３０２の間隔を垂直方向より広くして、テンプレートブロック３０２の数を減らす。
【００５０】
被写体の動きを検出する場合、画像（原画像および参照画像）を縮小して動きベクトルを検出するため、画像処理部１１０で画像３０３を縮小した画像３０４が動きベクトル検出部１１９に入力される。また、動きベクトル検出部１１９は、縮小されている画像３０４の中央部分に重点的に分布するように、サイズの小さなテンプレートブロック３０５を配置（設定）する。動きベクトル検出部１１９は、サイズの小さなテンプレートブロック３０５を水平方向および垂直方向に等間隔で密に配置することで、多くのテンプレートブロック３０５を設定し、動きベクトル検出数を増加させている。
【００５１】
本実施形態における、動きベクトルの用途に応じた動きベクトル検出の設定例を表２に示す。なお、ここでは用途ごとに５つの設定項目の組み合わせを示しているが、組み合わせる設定項目の数は４つ以下でも６つ以上であってもよい。
【表２】
0006667268.tif 000003
【００５２】
本実施形態では、撮影モードと動きベクトルの用途とを予め関連付けておき、設定された撮影モードに応じて動きベクトル検出の設定を変更する。
図４は、本実施形態における動きベクトル検出処理の設定動作の概要を示すフローチャートである。この処理は、例えば撮影スタンバイ状態または撮影および記録状態におけるバックグラウンド処理として実行することができる。
【００５３】
説明及び理解を容易にするため、本実施形態では、デジタルカメラ１００に設定可能な撮影モードが、第１撮影モードと第２撮影モードとのいずれかに分類されるものとする。ここで、第１撮影モードとは、被写体の動きを検出するための動きベクトル検出処理に関連付けられた撮影モードである。例えば、流し撮り撮影モードや、三脚を用いた撮影のための撮影モードは第１撮影モードに分類される。また、第２撮影モードは、カメラの動きを検出するための動きベクトル検出処理に関連付けられた撮影モードである。例えば、第１撮影モード以外の撮影モードを第２撮影モードに分類することができる。また、手振れ補正を重視する撮影モードを第２撮影モードに分類することができる。
【００５４】
Ｓ１０１でシステム制御部１１８は、操作部１１５の動作モード選択スイッチにより設定されている撮影モードが、第１撮影モードか否かを判定する。システム制御部１１８は、第１撮影モードが設定されていると判定されればＳ１０３へ、判定されなければＳ１０５へ、それぞれ処理を進める。
【００５５】
Ｓ１０３でシステム制御部１１８は、画像処理部１１０が動きベクトル検出部に供給する画像のサイズに関する設定を変更する。第１撮影モードでは被写体の動きを検出するための動きベクトルを検出するため、システム制御部１１８は予め定められたサイズに縮小された画像が動きベクトル検出部１１９に供給されるように設定を変更する。また、システム制御部１１８は、縮小画像が供給されることを動きベクトル検出部１１９に通知してもよい。設定が終わるとシステム制御部１１８は処理をＳ１０７に進める。
【００５６】
一方、Ｓ１０５でシステム制御部１１８は、現在の画像サイズに関する設定が、画像を縮小する設定になっていれば縮小しない設定に変更（縮小の設定を解除）する。Ｓ１０５が実行されるのは現在の撮影モードが第２撮影モードの場合であるため、もとのサイズの画像を用いて動きベクトルの検出が行われるよう、縮小の設定がされていればシステム制御部１１８が解除する。なお、第２の撮影モードに分類される撮影モード間で撮影モードが変更された場合、システム制御部１１８は画像のサイズに関する設定の変更は行わない。必要に応じて画像サイズに関する設定を変更したら、システム制御部１１８は処理をＳ１０７に進める。
【００５７】
Ｓ１０７でシステム制御部１１８は、設定されている撮影モードに応じて、動きベクトル検出処理の設定項目のうち、画像サイズ以外についての項目を、動きベクトル検出部１１９に対して設定する。具体的には、テンプレートブロックのサイズ、配置、数に関する設定と、サーチ範囲のサイズに関する設定の１つ以上である。
【００５８】
なお、Ｓ１０３やＳ１０７で行う設定は、具体的な値を設定してもよいし、設定値に対応するコードの設定、もしくはフラグの設定／解除であってもよい。例えば、画像を縮小する際の縮小率の選択肢が１つであれば、縮小を行うか否かを設定すればよいし、選択肢が複数あれば、選択肢に対応するコードを設定すればよい。なお、Ｓ１０７での設定は、個々の撮影モードに応じて異なっていてもよいし、第１撮影モード（第２撮影モード）に分類される撮影モード全体に共通であってもよい。いずれの場合も、撮影モードと、対応する設定値とを関連付けて記憶部１１６に予め記憶しておくことができる。そして、システム制御部１１８は、設定されている撮影モードに対応する設定値を記憶部１１６から読み出して、画像処理部１１０や動きベクトル検出部１１９に設定することができる。動きベクトル検出部１１９は、設定に応じた動きベクトル検出処理を開始する。
【００５９】
動きベクトル検出部１１９は、テンプレートブロックごとに動きベクトルを検出したのち、代表動きベクトルを求める。代表動きベクトルを求める方法に特に制限は無いが、例えば動きベクトルのヒストグラムを生成し、頻度が最も多い動きベクトルを代表動きベクトルとして求めることができる。あるいは、テンプレートブロックごとに検出した動きベクトルを平均して代表動きベクトルとしてもよい。
【００６０】
代表動きベクトルに基づいて像ブレ補正ユニット１０５を駆動したり、撮像部１０９から読み出す画像領域の位置（切り出し位置）を変更することにより、被写体振れや手振れを抑制することができる。代表動きベクトルに基づく光学的防振または電子的防振の具体的な制御に関しては、公知の方法のいずれかを用いることができる。
【００６１】
以上説明したように、本実施形態では、動きベクトルの用途に応じて、動きベクトル検出方法を制御したり、画像のサイズやテンプレートブロックのサイズに関しても設定を変更することが可能になる。そのため、用途に求められる特性を重視して動きベクトルを検出したり、動きベクトル検出方法をより細かく制御したりすることが可能になる。
【００６２】
●（第２実施形態）
次に、本発明の第２実施形態について説明する。第１実施形態では、動きベクトルの用途に応じて設定を変更することによって動きベクトル検出処理を制御した。本実施形態では動きベクトル検出装置を備える装置の特定の動きの検出、具体的には特定方向への大きな動きの検出に応じて設定を変更することによって動きベクトル検出処理を制御する。
【００６３】
本実施形態では動きベクトル検出装置を備える装置が第１実施形態で説明したデジタルカメラ１００であるものとし、デジタルカメラ１００の構成に関する説明は省略する。また、動きベクトル検出装置を備える装置の、特定方向への大きな動きの一例としてのパンニング動作が検出されたことに応じて設定を変更する構成について説明する。
【００６４】
図５は、本実施形態における動きベクトル検出処理の設定動作の概要を示すフローチャートである。
Ｓ２０１でシステム制御部１１８は、振れ検出部１１７により検出される振れ量に基づいて、デジタルカメラ１００の動きがパンニングであるか否かを判定し、パンニングと判定される場合にはさらにパンニングの方向を検出する。パンニングおよびその方向の検出は公知の方法で行うことができる。システム制御部１１８は、デジタルカメラ１００がパンニングされていると判定されればＳ２０３へ、判定されなければＳ２０５へ、処理を進める。
【００６５】
Ｓ２０３でシステム制御部１１８は、画像処理部１１０が動きベクトル検出部に供給する画像のサイズに関する設定を変更する。パンニングではデジタルカメラの動きが大きいため、大きな動きベクトルを検出できるよう、システム制御部１１８は予め定められたサイズに縮小された画像が動きベクトル検出部１１９に供給されるように設定を変更する。なお、パンニング検出時の画像の縮小率は、第１実施形態で被写体の動きを検出するための動きベクトル検出で設定する縮小率より大きくすることができる。システム制御部１１８は、縮小画像が供給されることを動きベクトル検出部１１９に通知してもよい。設定が終わるとシステム制御部１１８は処理をＳ２０９に進める。
【００６６】
Ｓ２０５でシステム制御部１１８は、パンニングが終了したのか否かを判定する。パンニングが終了したと判定された場合には、Ｓ２０７で動きベクトル検出の設定をパンニング検出前の設定に復帰させる。あるいは、システム制御部１１８は第１実施形態に従って改めて設定を行ってもよい。パンニングが終了したと判定されない場合（継続してパンニングが検出されていない場合）、システム制御部１１８は処理をＳ２０１に戻す。
【００６７】
Ｓ２０９でシステム制御部１１８は、動きベクトル検出処理の設定項目のうち、画像サイズ以外についての項目を、動きベクトル検出部１１９に対して設定する。本実施形態では、テンプレートブロックのサイズ、配置、数に関する設定と、サーチ範囲のサイズに関する設定に加え、テンプレートブロックの形状についても設定（変更）する。
【００６８】
図３（ａ）および（ｃ）に示した、動きベクトルの用途に応じた設定では、正方形もしくは短辺および長辺の比が１に近い形状のテンプレートブロックを設定し、サイズを変更する場合も形状の変更はしていない。これは、様々な動きの方向に対応するためである。一方、パンニングはカメラを特定の方向に大きく移動させる動作であり、特定の方向における動きが突出して大きくなる。そのため、本実施形態では検出されたパンニング方向に応じてテンプレートブロックの形状を変更する。例えば、パンニング方向の垂直成分および水平成分の比に等しい縦横比を有する矩形に変更したり、パンニング方向の垂直成分および水平成分のうち、大きい成分の方向（例えば所定の割合）拡大したりすることができる。なお、これらは単なる例であり、パンニング方向における動きベクトルの検出に適するように様々な方法で形状およびサイズを設定することができる。また、サーチ範囲を拡大するため、サーチ範囲についても、テンプレートブロックと同様に形状とサイズの少なくとも一方を変更することができる。
【００６９】
図６は、水平方向のパンニングが検出された場合の動きベクトル検出の設定例の模式図である。図６（ａ）は画像サイズに関する設定を、図６（ｂ）はテンプレートブロックに関する設定をそれぞれ示している。図６（ａ）に示すように、原画像４０１は画像４０２に縮小される。図３（ｂ）との比較から分かるように、パンニング時のデジタルカメラ１００の大きな移動量を検出できるよう、パンニング検出時の縮小率は第１実施形態における縮小率よりも大きい。
【００７０】
また、図６（ｂ）に示すように、パンニング方向に拡大した形状のテンプレートブロック４０３を、縮小された画像４０２の全域（もしくは少なくともパンニング方向における全域）に分布するように設定する。上述したように、テンプレートブロックのサイズが拡大されると、それに伴ってサーチ範囲も拡大される。サイズの拡大により、設定可能なテンプレートブロックの数は減少するが、検出できる動きベクトルの数より、パンニング方向の動き量を検出をすることを優先する。原画像の縮小と、パンニング方向に拡大したテンプレートブロック（およびサーチ範囲）により、パンニング方向における大きな動き量をより確実に検出できる。
【００７１】
Ｓ２０９での設定が終わると、システム制御部１１８は処理をＳ２０１に戻す。なお、パンニングが継続して検出されている場合には、Ｓ２０３およびＳ２０９を繰り返し実行しなくてもよい。例えば、パンニングの終了が検出されるまでＳ２０３およびＳ２０９をスキップしたり、検出されているパンニングの方向が大きく変化した場合だけＳ２０３およびＳ２０９を実行したり、所定の周期でＳ２０３およびＳ２０９を実行したりすることもできる。
【００７２】
以上説明したように、本実施形態では、動きベクトル検出装置を備える装置の動き、具体的には特定の方向への大きな動きの検出に応じて動きベクトル検出の設定を変更する。例えば、装置の動きの方向にテンプレートブロックを拡大するようにしたり、原画像および参照画像を縮小するようにしたりすることができる。これにより、パンニングのように特定の方向に大きな動きが生じる場合においても動きベクトルを確実に検出することが可能になる。
【００７３】
●（第３実施形態）
次に、本発明の第３実施形態について説明する。本実施形態では動きベクトル検出装置を備える装置の特定の動きの検出、具体的には動きが十分に小さいことの検出に応じて設定を変更することによって動きベクトル検出処理を制御する。本実施形態では動きベクトル検出装置を備える装置が第１実施形態で説明したデジタルカメラ１００であるものとし、デジタルカメラ１００の構成に関する説明は省略する。
【００７４】
図７は、本実施形態における動きベクトル検出処理の設定動作の概要を示すフローチャートである。図７において、第１実施形態と共通の処理には図４と同じ参照数字を付してある。
Ｓ３０１でシステム制御部１１８は、振れ検出部１１７により検出される振れ量に基づいて、デジタルカメラ１００が安定した状態であるか否かを判定する。安定した状態とは、静止もしくは十分に動きが小さい状態であり、例えば振れ量が所定時間継続して閾値未満である場合に安定した状態と判定することができる。
【００７５】
安定した状態とは例えば、デジタルカメラ１００が三脚などの支持部材に取り付けられている場合、固定物の上に置かれている場合、ユーザの保持状態が安定している場合などが想定される。システム制御部１１８は、デジタルカメラ１００が安定した状態であると判定されればＳ１０３へ、判定されなければＳ１０５へ、処理を進める。
【００７６】
デジタルカメラ１００が安定した状態であれば、カメラの動きを検出するよりも、被写体の動きを検出する方が、例えば防振制御において有利であろう。そのため、デジタルカメラ１００が安定した状態と判定された場合、システム制御部１１８は例えば第１実施形態における被写体の動き検出用の設定と同様の設定を行う（Ｓ１０３，Ｓ１０７）。
【００７７】
一方、デジタルカメラ１００が安定した状態でなければ、被写体の動きを検出するよりも、カメラの動きを検出する方が、例えば防振制御において有利であろう。そのため、デジタルカメラ１００が安定した状態と判定されない場合、システム制御部１１８は例えば第１実施形態におけるカメラの動き検出用の設定と同様の設定を行う（Ｓ１０５，Ｓ１０７）。
【００７８】
以上説明したように、本実施形態では、撮像装置の撮影状況、その一例として定点撮影の検出に応じて、動きベクトルの検出設定であるフレーム画像のサイズとテンプレートブロックの設定を変更している。これにより、動きベクトルの用途に適した被写体の動きを検出することができる。
【００７９】
以上説明したように、本実施形態では、動きベクトル検出装置を備える装置の動き、具体的には安定した状態の検出に応じて、動きベクトル検出の設定を、被写体の動きを検出するために適した設定に変更する。例えば、原画像および参照画像を縮小するようにしたり、テンプレートブロックを画像の中央部分に重点的に配置したりすることができる。これにより、動きベクトル検出の設定を、状況に応じて動的にかつ適切に制御することができる。
【００８０】
（その他の実施形態）
上述の実施形態は組み合わせて実施することも可能である。例えば第１実施形態と第３実施形態とを組み合わせると、カメラの動き検出用の設定に関連付けられている撮影モードが選択されている場合でも、カメラが安定している状態では被写体の動きを検出するための設定に変更することができる。また、例えば第１実施形態と第２実施形態とを組み合わせると、パンニングが検出されない状態では設定されている撮影モードに応じた設定が行われ、パンニングが検出されている間は特定方向への大きな動きの検出に適した設定に変更することができる。他の組み合わせももちろん可能である。
【００８１】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８２】
１００…撮像装置、１１５…操作部、１１７…振れ検出部、１１８…システム制御部、１１９…動きベクトル検出部、２０１…テンプレートブロック、２０２…サーチ範囲、２０３…相関値算出ブロック
【図１】
0006667268.tif 000004
【図２】
0006667268.tif 000005
【図３】
0006667268.tif 000006
【図４】
0006667268.tif 000007
【図５】
0006667268.tif 000008
【図６】
0006667268.tif 000009
【図７】
0006667268.tif 000010