(57)【特許請求の範囲】
【請求項１】
撮像手段から順次出力される複数の画像のそれぞれにおいて動きベクトル検出枠を設定し、前記動きベクトル検出枠を分割した複数の領域のそれぞれにおいて動きベクトルを検出する検出手段と、
前記動きベクトルのうち被写体の動きベクトルを判定し、前記被写体の動きベクトルに基づいて像振れ補正制御を行う制御手段と、
を有し、
前記制御手段は、
前記被写体の動きベクトルを検出した前記領域の数に基づいて前記被写体の大きさを判定し、
前記被写体の動きベクトルを検出した前記領域の数が第１の閾値以上と判定した場合、前記動きベクトル検出枠を変更せず、
前記被写体の動きベクトルを検出した前記領域の数が前記第１の閾値より小さいと判定した場合、前記動きベクトル検出枠の大きさを小さく変更するとともに、前記動きベクトル検出枠を分割した前記複数の領域の数が変わらないように、該領域の大きさを小さくする、ことを特徴とする像振れ補正装置。
【請求項２】
前記制御手段は、前記動きベクトルのうち被写体と背景の動きベクトルを判定し、
前記被写体の動きベクトルを検出した前記領域の数が前記第１の閾値より小さく、かつ、前記背景の動きベクトルを検出した前記領域の数が第２の閾値より大きい場合に、前記動きベクトル検出枠の大きさを小さく変更するとともに、前記動きベクトル検出枠の中心位置を前記被写体の中心位置に近づけるように変更する、
ことを特徴とする請求項１に記載の像振れ補正装置。
【請求項３】
前記制御手段は、前記動きベクトル検出枠の大きさおよび中心位置を変更した後、前記被写体と前記背景の動きベクトルを判定し、前記被写体の動きベクトルを検出した前記領域の数が前記第１の閾値よりも大きくなるまで、前記動きベクトル検出枠の大きさを小さく変更するとともに、前記動きベクトル検出枠の中心位置を前記被写体の中心位置に近づけるように変更することを特徴とする請求項２に記載の像振れ補正装置。
【請求項４】
振れを検出する振れ検出手段から出力される信号を取得する取得手段を更に有し、
前記制御手段は、
前記動きベクトル検出枠の大きさおよび中心位置を変更した後、前記被写体と前記背景の動きベクトルを判定し、
前記領域の数が増加していないと判定した場合に、前記振れ検出手段により検出される前記振れの方向に応じて前記動きベクトル検出枠の中心位置を移動させることを特徴とする請求項２または３に記載の像振れ補正装置。
【請求項５】
前記制御手段は、前記振れ検出手段により検出される前記振れと平行な方向に前記動きベクトル検出枠の中心位置を移動させることを特徴とする請求項４に記載の像振れ補正装置。
【請求項６】
前記制御手段は、前記被写体の動きベクトルを検出した前記領域の数が前記第１の閾値より小さい場合、前記被写体の動きベクトルの大きさに基づいて、前記変更を行うか否か判定することを特徴とする請求項１ないし５のいずれか１項に記載の像振れ補正装置。
【請求項７】
前記制御手段は、前記被写体の動きベクトルの大きさが所定値よりも小さい場合に前記変更を行うことを特徴とする請求項６に記載の像振れ補正装置。
【請求項８】
撮像手段から順次出力される複数の画像のそれぞれにおいて動きベクトル検出枠を設定し、前記動きベクトル検出枠を分割した複数の領域のそれぞれにおいて動きベクトルを検出する検出手段と、
前記動きベクトルのうち被写体の動きベクトルを判定し、前記被写体の動きベクトルに基づいて像振れ補正制御を行う制御手段と、
を有し、
前記制御手段は、
前記被写体の動きベクトルを検出した前記領域の数に基づいて前記被写体の大きさを判定し、
前記被写体の動きベクトルを検出した前記領域の数が第１の閾値以上と判定した場合、前記動きベクトル検出枠を変更せず、
前記被写体の動きベクトルを検出した前記領域の数が前記第１の閾値より小さいと判定した場合、前記動きベクトル検出枠の大きさを小さく変更するとともに、前記動きベクトル検出枠の中心位置を前記被写体の中心位置に近づけるように変更する、ことを特徴とする像振れ補正装置。
【請求項９】
撮像手段と、
請求項１ないし８のいずれか１項に記載の像振れ補正装置と、を備えた撮像装置。
【請求項１０】
撮像手段から順次出力される複数の画像のそれぞれにおいて動きベクトル検出枠を設定し、前記動きベクトル検出枠を分割した複数の領域のそれぞれにおいて動きベクトルを検出する検出ステップと、
前記動きベクトルのうち被写体の動きベクトルを判定し、前記被写体の動きベクトルに基づいて像振れ補正制御を行う制御ステップと、
を有し、
前記制御ステップは、
前記被写体の動きベクトルを検出した前記領域の数に基づいて前記被写体の大きさを判定し、
前記被写体の動きベクトルを検出した前記領域の数が第１の閾値以上と判定した場合、前記動きベクトル検出枠を変更せず、
前記被写体の動きベクトルを検出した前記領域の数が前記第１の閾値より小さいと判定した場合、前記動きベクトル検出枠の大きさを小さく変更するとともに、前記動きベクトル検出枠を分割した前記複数の領域の数が変わらないように、該領域の大きさを小さくする、
ことを特徴とする像振れ補正装置の制御方法。
【請求項１１】
撮像手段から順次出力される複数の画像のそれぞれにおいて動きベクトル検出枠を設定し、前記動きベクトル検出枠を分割した複数の領域のそれぞれにおいて動きベクトルを検出する検出ステップと、
前記動きベクトルのうち被写体の動きベクトルを判定し、前記被写体の動きベクトルに基づいて像振れ補正制御を行う制御ステップと、
を有し、
前記制御ステップは、
前記被写体の動きベクトルを検出した前記領域の数に基づいて前記被写体の大きさを判定し、
前記被写体の動きベクトルを検出した前記領域の数が第１の閾値以上と判定した場合、前記動きベクトル検出枠を変更せず、
前記被写体の動きベクトルを検出した前記領域の数が前記第１の閾値より小さいと判定した場合、前記動きベクトル検出枠の大きさを小さく変更するとともに、前記動きベクトル検出枠の中心位置を前記被写体の中心位置に近づけるように変更する、
ことを特徴とする像振れ補正装置の制御方法。
【請求項１２】
請求項１０または１１に記載の制御方法の各ステップが記述されたコンピュータで実行可能なプログラム。
【請求項１３】
コンピュータに、請求項１０または１１に記載の制御方法の各ステップを実行させるためのプログラムが記憶されたコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、像振れ補正装置に関し、特にユーザの流し撮り撮影の補助を行う像振れ補正装置に関する。
【背景技術】
【０００２】
移動している被写体のスピード感を表現する撮影技術として流し撮りがある。流し撮りは、撮影者が被写体の動きに合わせてカメラをパンニングすることにより、移動している被写体を静止させて背景は流すことを目的とする。
【０００３】
ここで、流し撮り撮影においては撮影者が被写体の動きに合わせてパンニングをする必要があるが、パンニング速度が速すぎたり遅すぎたりすることで、被写体の移動速度とパンニング速度の間に差が発生してしまうと、被写体までぶれた画像になることも多い。このような問題に対し、ユーザの流し撮り撮影の補助を行う技術として、シフトレンズの移動により被写体の移動速度とパンニング速度の差を吸収する手法が提案されている。
【０００４】
特許文献１では、ジャイロセンサのブレ検出と画像の動きベクトルから被写体を検出し、検出された被写体を画像中央に位置させるための補正量を算出し、光軸シフトレンズの移動で補正して流し撮り撮影を行う構成が記載されている。
【０００５】
また、画像から動きベクトルを検出する技術として、連続して撮影された画像を比較することで動きベクトルを検出する手法が提案されている。特許文献２では、動きベクトルを検出するブロックマッチングの対象となる参照ブロックと候補ブロックをサーチエリア内で候補ブロックの位置をずらしながら画素値を比較していく手法が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−３１７８４８号公報
【特許文献２】特開平８−８８８５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述の特許文献に開示された従来技術では、被写体が所定の大きさより小さい被写体である場合、動きベクトル量を検出する参照ブロックが少ししか割り当たらないため、被写体に対する動きベクトルの信頼度が低くなってしまう。したがって、像振れ補正装置を用いて流し撮り撮影の補助を行う場合、被写体ブレの補正精度が低下し、被写体ブレを低減することができない場合があった。
【０００８】
そこで、本発明は、上記課題に鑑み、被写体が所定の大きさより小さい被写体である場合でも、被写体の像振れ補正に有利な像振れ補正装置及びその制御方法、撮像装置、プログラム、記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一側面としての像振れ補正装置は、撮像手段から順次出力される複数の画像のそれぞれにおいて動きベクトル検出枠を設定し、前記動きベクトルを分割した複数の領域のそれぞれにおいて動きベクトルを検出する検出手段と、前記動きベクトルのうち被写体の動きベクトルを判定し、前記被写体の動きベクトルに基づいて像振れ補正制御を行う制御手段と、を有し、前記制御手段は、前記被写体の動きベクトルを検出した前記領域の数に基づいて前記被写体の大きさを判定し、前記被写体の動きベクトルを検出した前記領域の数が第１の閾値以上と判定した場合、前記動きベクトル検出枠を変更せず、前記被写体の動きベクトルを検出した前記領域の数が前記第１の閾値より小さいと判定した場合、前記動きベクトル検出枠の大きさを小さく変更するとともに、前記動きベクトル検出枠を分割した前記複数の領域の数が変わらないように、該領域の大きさを小さくすることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、被写体が所定の大きさより小さい被写体である場合でも、被写体の像振れ補正に有利な像振れ補正装置及びその制御方法、撮像装置、プログラム、記憶媒体を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に共通する撮像装置のブロック構成図である。
【図２】第１の実施形態による流し撮りアシスト処理を示すフローチャートである。
【図３】第１の実施形態による被写体動きベクトル量算出処理を示すフローチャートである。
【図４】第１の実施形態による被写体判定処理を示すフローチャートである。
【図５】第１の実施形態によるテンプレート枠変更処理を示すフローチャートである。
【図６】第２の実施形態によるテンプレート枠変更処理を示すフローチャートである。
【図７】第２の実施形態による被写体再検出処理を示すフローチャートである。
【図８】第３の実施形態による被写体動きベクトル量算出処理を示すフローチャートである。
【図９】被写体の角速度の算出方法を示す図である。
【図１０】大きい被写体と小被写体とのヒストグラムの違いを示す図である。
【図１１】縮小したテンプレート枠と小被写体のパンニング時の状態を示す図である。
【図１２】低コントラストの被写体のヒストグラムを示す図である。
【図１３】テンプレート枠のサイズを変更する方法を示す図である。
【図１４】テンプレート枠の位置を変更する方法を示す図である。
【図１５】テンプレート枠の配置を変更する方法を示す図である。
【図１６】テンプレート枠の縮小とサーチエリアの関係を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
【００１３】
図１は本発明の好適な実施の形態に係る撮像装置（撮像システム）の構成図を示している。
【００１４】
なお、本実施例の撮像装置は、カメラ本体と、該カメラ本体に着脱可能な交換レンズ（撮影レンズユニット）と、から構成される。しかし、本発明はこれに限定されるものではなく、撮影レンズユニットとカメラ本体とが一体となったレンズ一体型の撮像装置にも適用可能である。
【００１５】
図１において、１００は交換レンズ、１２０はカメラ本体である。
【００１６】
交換レンズ１００は、撮影レンズユニット１０１（光学系）を有する。撮影レンズユニット１０１は、主撮像光学系１０２、焦点距離を変更可能なズームレンズ群１０３、撮像装置の振れによる光軸に対する像の振れを光軸と垂直方向に移動することにより光学的に補正するシフトレンズ群１０４を備える。ここで、以下、ズームレンズ群１０３およびシフトレンズ群１０４を、単にズームレンズおよびシフトレンズと呼ぶ。
【００１７】
また、交換レンズ１００は、ズームレンズの位置を検出するズームエンコーダ１０５、シフトレンズの位置を検出する位置センサ１０６、撮像装置の振れを検出する角速度センサ（振れ検出手段）１１１などの検出系を有する。また、シフトレンズを駆動するドライバ１１４などの駆動系を有する。また、レンズ全体のシステムを制御する制御系としてのレンズシステム制御用マイクロコンピューター（以下、レンズマイコン）１１３を有する。その他に、角速度センサ１１１の出力を増幅するアンプ１１２、シフトレンズの位置センサ１０６の出力を増幅するアンプ１１５、カメラ本体１２０とのマウント接点部１１６などを備える。
【００１８】
レンズマイコン１１３は、手ブレ補正制御を行う手ブレ補正制御部１１７と、流し撮りアシスト用の制御を行う流し撮り制御部１１８を備える。
【００１９】
なお、本実施例では、手振れ補正制御部１１７と流し撮り制御部１１８はレンズマイコン１１３に設けられているが、本発明はこれに限定されずカメラ本体１２０（カメラマイコン）に設けられていてもよい。また、本実施例では、角速度センサ１１１およびアンプ１１２は交換レンズ１００に設けられているが、本発明はこれに限定されずカメラ本体１２０に設けられていてもよい。
【００２０】
レンズマイコン１１３はその他にもフォーカスレンズ制御、絞り制御等も行うが、図の簡略化のためここでは省略している。
【００２１】
また、手ブレ補正のためには、例えば横方向と縦方向といった、直交する２軸に関して検出および補正を行うが、まったく同じ構成であるため、ここでは１軸分のみ記載している。
【００２２】
一方、カメラ本体１２０は、シャッター１２１と、ＣＭＯＳセンサ等の撮像素子（撮像手段）１２２と、から構成される撮像系を有する。また、シャッター動作を行わせるためのシャッター駆動用モーター１３４、該モーター１３４を駆動するドライバ１３３などの駆動系を有する。また、アナログ信号処理回路（ＡＦＥ）１２３、カメラ信号処理回路１２４などの信号処理系を有する。また、カメラ全体のシステムを制御する制御系としてのカメラシステム制御用マイクロコンピューター（以下、カメラマイコン）１３２を有する。また、電源スイッチ、レリーズスイッチ、流し撮りアシストモードにするかどうかの切り替えスイッチ等で構成されるカメラ操作スイッチ１３１（操作系）を有する。その他に、撮像素子１２２やアナログ信号処理回路１２３の動作タイミングを設定するタイミングジェネレータ１２５、一次記憶装置１３５を備える。一次記憶装置１３５は、例えばＲＡＭのような揮発性装置であり、一時的なデータを記憶し、カメラマイコン１３２の作業用に使われる。
【００２３】
また、撮影した映像を記録するメモリカード１７１、カメラで撮影しようとしている画像をモニタし、また撮影した画像を表示する液晶パネル（以下、ＬＣＤ）１７２、および交換レンズ１００とのマウント接点部１６１を備える。レンズマイコン１１３とカメラマイコン１３２は、マウント接点部１１６および１６１を介して所定のタイミングでシリアル通信を行なう。
【００２４】
さらに、カメラ信号処理回路１２４は、動きベクトル検出部１４１、画像処理部１４２を備え、動きベクトル検出部（検出手段）１４１は、撮影した画像をもとにベクトル検出枠の動きベクトル量の算出を行う。具体的には、撮像素子１２２から順次出力される複数の画像に動きベクトル検出枠（以下、テンプレート枠ともいう）を設定し、該動きベクトル検出枠を分割した複数の領域（以下、ベクトル検出枠ともいう）から動きベクトルを検出する。
【００２５】
カメラマイコン（制御手段）１３２は、シャッターを制御するシャッター制御部１５１と、被写体の角速度を算出する被写体角速度算出部１５３と、被写体の動きベクトル量を検出する被写体動きベクトル量算出部１５４と、を備える。また、レンズマイコン１１３から出力される信号や、カメラ信号処理回路１２４から出力される信号や、操作スイッチ１３１から出力される信号などを取得する取得部（取得手段）１３２ａを備える。なお、本実施例では、動きベクトル検出部１４１は、カメラマイコン１３２とは別部材に設けられているが、カメラマイコン１３２と一体的に構成するようにしてもよい。
【００２６】
さらに、カメラマイコン１３２は、取得部１３２ａ、シャッター制御部１５１、被写体角速度算出部１５３、被写体動きベクトル量算出部１５４などを制御するメイン制御部１５２を備える。
【００２７】
カメラマイコン１３２は、カメラ全体の制御を行うとともに、交換レンズ１００と通信を行い像振れ補正の制御を行う。具体的に、動きベクトル検出部１４１により検出された動きベクトルのうち被写体および背景の動きベクトルを判定し、被写体の動きベクトルに基づいて像振れ補正制御を行う。特に、本実施例では、被写体の動きベクトルと、振れを検出する角速度センサ１１１からの出力と、に基づいて、被写体を追従するための像振れ補正制御を行う。
【００２８】
図１において、操作スイッチ１３１によりカメラの電源がＯＮされると、その状態変化をカメラマイコン１３２が検出し、カメラマイコン１３２の制御によりカメラ本体１２０の各回路への電源供給および初期設定が行われる。また、交換レンズ１００への電源供給が行われ、レンズマイコン１１３の制御により、交換レンズ１００内の初期設定が行われる。そしてレンズマイコン１１３とカメラマイコン１３２との間で所定のタイミングで通信が開始される。この通信で、カメラからレンズへはカメラの状態、撮影設定等が、またレンズからカメラへはレンズの焦点距離情報、角速度情報等がそれぞれ必要なタイミングで送受信される。
【００２９】
流し撮りアシストモード設定が行われていない通常モード時、交換レンズ内では、角速度センサ１１１が手ブレ等によるカメラのブレを検出している。その検出結果を用いることで、手ブレ補正制御部１１７により、シフトレンズ１０４を駆動して手ブレ補正動作が行われる。
【００３０】
なお、本実施形態では、像振れ補正として、像振れ補正レンズ（シフトレンズ）１０４を光軸に垂直な面内で移動させる、いわゆる光学防振を用いている。しかし、本発明の像振れ補正は光学防振に限らず、撮像素子を光軸に垂直な面内で移動させることで振れ補正を行ってもよい。また、撮像素子が出力する各撮影フレームの切り出し位置を変更することで振れの影響を軽減させる電子防振を用いてもよい。さらに、それらの組み合わせで補正を行ってもよい。すなわち、像振れ補正を行うために駆動される光学素子は、像振れ補正レンズであってもよいし、撮像素子であってもよいし、その両方であってもよい。
【実施例１】
【００３１】
まず、従来技術の問題点についてもう一度説明する。上述したように、被写体が所定の大きさより小さい被写体だと動きベクトル量を検出する参照ブロックが少ししか割り当たらないため、被写体に対する動きベクトルの信頼度が低くなってしまう。
【００３２】
例えば、図１０のような状況を考える。図１０（ａ）は、像面上の被写体が所定の大きさより大きい大被写体である場合を図示している。一方、図１０（ｂ）は、像面上の被写体が所定の大きさより小さい小被写体である場合を図示している。ここでは、動きベクトル量を検出する参照ブロックを「ベクトル検出枠」、ベクトル検出枠の塊を「テンプレート枠」と定義する。１００３、１００４は、７×５のベクトル検出枠１００１を持つテンプレート枠１００２を像面上の全面に配置していることを図示している。また、１００５は１００３、１００６は１００４の動きベクトル量の検出結果をヒストグラムにした例で、横軸が動きベクトル量、縦軸が同一の動きベクトル量の個数（以下、ベクトル個数）を図示している。なお、１００５、１００６は、図の簡略化のため、背景の動きベクトル量は省略し、被写体の動きベクトル量のみ図示している。
【００３３】
１００５に示す通り、被写体が大きい場合は、被写体に割り当たるベクトル検出枠が多くなる。よって、被写体のベクトル個数を多く取得できるため、被写体の動きベクトル量の信頼度が高くなる。
【００３４】
一方、図１０（ｂ）の太線の枠で示す１００７が動きベクトル量を検出したベクトル検出枠である。像面上の被写体が小さいため、被写体のベクトル個数を多く取得できない。そのため、被写体の動きベクトル量の信頼度が低くなってしまう。
【００３５】
そこで、ベクトル検出枠を単純に増やすことも考えられる。例えば、１００４の７×５のベクトル検出枠を１４×１０などとし、ベクトル検出枠を増やすことで被写体のベクトル個数を多く取得する方法が考えられる。
【００３６】
しかしながら、ベクトル検出枠を増やすと動きベクトル量の算出処理に時間が掛かってしまう。そこで、テンプレート枠を縮小することも考えられる。しかしながら、流し撮り撮影においては撮影者が被写体の動きに合わせてパンニングをすることが考えられ、例えば、図１１に示すようにテンプレート枠を縮小すると、被写体がテンプレート枠外となる可能性がある。
【００３７】
そこで、本発明の第１の実施形態では、被写体がテンプレート枠内となるように、テンプレート枠を変更し、被写体の動きベクトルの信頼度を高めることで、被写体ブレの補正精度を向上させるようにする。
【００３８】
<<流し撮りアシスト処理>>
まず、流し撮りアシストモードの撮影時におけるメイン制御部１５２の処理について、図２のフローチャートを用いて説明する。なお、本処理開始のタイミングに関しては、例えば、撮影者が流し撮りアシストモード設定にしてライブビューが開始され、カメラ操作スイッチ１３１にあるレリーズスイッチが半押しのタイミングで動作させたりすることが可能である。
【００３９】
Ｓ２０１で、メイン制御部１５２は、後述する被写体動きベクトル量算出部１５４に対し、算出開始要求を送信する。なお、被写体動きベクトル量算出部１５４は、算出開始要求を受信すると被写体動きベクトル量の算出を開始することとする。
【００４０】
Ｓ２０２で、メイン制御部１５２は、レリーズスイッチが全押しされたかどうかを検出している。Ｓ２０２で、全押しされたと判断した場合は、被写体動きベクトル量の取得のためＳ２０３へと進む。Ｓ２０２で、全押しされていないと判断した場合は、Ｓ２０２へと戻りレリーズスイッチが全押しされるまで繰り返し処理を行う。
【００４１】
Ｓ２０３で、メイン制御部１５２は、被写体動きベクトル量算出部１５４に対し、被写体動きベクトル量の取得要求を送信する。なお、被写体動きベクトル量算出部１５４は、被写体動きベクトル量の取得要求を受信するとメイン制御部１５２に対し、最新の被写体の動きベクトル量を動きベクトル結果として送信することとする。
【００４２】
Ｓ２０４で、メイン制御部１５２は、被写体動きベクトル量算出部１５４から受信した動きベクトル結果に対し、被写体の角速度の算出を被写体角速度算出部１５３に依頼する。
【００４３】
被写体角速度算出部１５３は、動きベクトル量が０になるように補正するためのシフトレンズの駆動量を算出する。
【００４４】
この被写体の角速度の算出方法を図９を用いて説明する。図９は被写体がｔ秒の間に点Ａから点Ｂへ移動し、それに応じてセンサ上に結像した被写体像が点Ｃから点Ｄへと移動したことを示したものである。ここで、点Ｃと点Ｄとの距離をｖ［ｐｉｘｅｌ］、焦点距離をｆ［ｍｍ］、センサの画素ピッチをｐ［μｍ／ｐｉｘｅｌ］とした時、像面上の被写体の角速度ω［ｒａｄ／ｓｅｃ］は以下の式で表わされる。
【００４５】
【数１】
0006700872.tif 000002
【００４６】
Ｓ２０５で、メイン制御部１５２は、シフトレンズの移動量をレンズマイコン１１３に送信し、シフトレンズ１０４の駆動を要求する。また、メイン制御部１５２は、ドライバ１３３に対し、シャッター１２１を開き、所定時間で閉じるように要求する。
【００４７】
このように、流し撮りアシストモードの撮影時において、像振れ補正装置（流し撮りアシスト装置）は、流し撮り撮影を行う際に、被写体の移動速度と撮影者のパンニング速度の差を吸収するように像振れ補正レンズ（シフトレンズ）を駆動させる。
【００４８】
Ｓ２０６で、メイン制御部１５２は、カメラ信号処理回路１２４に対し撮像素子１２２が露光した露光データを現像し、メモリカード１７１に記録するように要求し、処理を終了する。
【００４９】
<<被写体動きベクトル量算出処理>>
次に被写体動きベクトル量算出部１５４の被写体動きベクトル量算出処理について、図３のフローチャートを用いて説明する。なお、本処理開始のタイミングに関しては、前述したメイン制御部１５２からの算出開始要求を受信したタイミングで動作する。
【００５０】
Ｓ３０１で、被写体動きベクトル量算出部１５４は、後述する被写体判定処理を実行する。
【００５１】
Ｓ３０２で、被写体動きベクトル量算出部１５４は、被写体判定処理の結果が小さい被写体（以下、小被写体）であったか否かを判定する。具体的には、被写体判定処理の結果として取得した後述する小被写体フラグを参照する。なお、小被写体であった場合は、小被写体フラグにＴＲＵＥが設定され、小被写体でなかった場合は、小被写体フラグにＦＡＬＳＥが設定される。Ｓ３０２で、小被写体であると判定した場合は、小被写体に対し、テンプレート枠の変更をおこなうため、Ｓ３０３へと進む。Ｓ３０２で、小被写体ではないと判定した場合は、処理を終了する。
【００５２】
Ｓ３０３で、被写体動きベクトル量算出部１５４は、被写体の位置に応じてテンプレート枠を変更するテンプレート枠変更処理を実行する。テンプレート枠変更処理の詳しい内容については後述する。
【００５３】
本実施例では、Ｓ３０２で、被写体の大きさが所定の大きさより大きいと判定した場合（Ｓ３０２のＮｏ）は処理が終了され、Ｓ３０３のテンプレート枠変更処理を行わないようにしている。換言すれば、Ｓ３０２で、被写体の大きさが所定の大きさより大きいと判定した場合、テンプレート枠を変更せず、Ｓ３０２で、被写体の大きさが所定の大きさより小さいと判定した場合、被写体の位置に応じてテンプレート枠を変更する。換言すれば、被写体動きベクトル量算出部１５４は、被写体の動きベクトルに基づいて被写体の大きさを判定し、該被写体の大きさおよび位置に応じてテンプレート枠を変更するように構成されている。
【００５４】
Ｓ３０４で、被写体動きベクトル量算出部１５４は、被写体検出に成功したか否かを判定する。具体的には、テンプレート枠変更処理の結果として取得した後述する被写体検出成功フラグを参照する。なお、被写体検出に成功した場合は、被写体検出成功フラグにＴＲＵＥが設定され、被写体検出に成功しなかった場合は、被写体検出成功フラグにＦＡＬＳＥが設定される。Ｓ３０４で、被写体検出に成功したと判定した場合は、処理を終了する。Ｓ３０４で、被写体検出に成功しなかったと判定した場合は、被写体検出に失敗したと判断し、被写体の再検索を実施するためにＳ３０１に戻る。
【００５５】
<<被写体判定処理>>
次に被写体動きベクトル量算出部１５４の小被写体であるか否かの判別する被写体判定処理について説明する。なお、本処理開始のタイミングに関しては、前述した被写体動きベクトル量算出処理から呼び出されたタイミングで動作する。
【００５６】
まず、小被写体であるか否かの判別方法について、図１０、図１２を用いて詳述する。
【００５７】
図１０の１００５、１００６に示すように、被写体が大きい場合は、被写体のベクトル個数が多くなるため、被写体のベクトル個数がある閾値（以下、閾値α）以上の場合は小被写体ではないと判別できる。
【００５８】
一方、被写体のベクトル個数が閾値α未満の場合に小被写体であると判別すると、被写体が大きいにも関わらず、小被写体であると判別されるケースがある。
【００５９】
例えば、図１２に示すような低コントラストの被写体の場合が考えられる。動きベクトル量を検出する処理はブロックマッチングなどを用いて行うため、低コントラストだと動きベクトル量を検出できずエラーとなり、被写体の動きベクトル量の一部が検出できないケースがある。その場合、被写体が大きいにも関わらず、図１２の１２０１に示すように、被写体のベクトル個数が閾値αより小さい値となってしまう。そのため、被写体のベクトル個数が閾値α未満の場合に小被写体であると判別すると、被写体が大きいにも関わらず、小被写体であると判別される虞がある。
【００６０】
そこで、図１２の１２０２に示すような、背景のベクトル個数を用いることとする。
【００６１】
被写体が大きい場合は、背景のベクトル個数が少なくなるため、背景のベクトル個数がある閾値（以下、閾値β）以上の場合は、小被写体であると判別することが可能である。図１２を見て分かるように、低コントラストかつ大きい被写体の場合、背景のベクトル個数が閾値βより小さい値となる。そのため、被写体のベクトル個数のみならず、背景のベクトル個数を判定することにより、小被写体であるか否かをより正確に判別することができる。ここで、被写体と背景の動きベクトル量を判別する必要があるが、背景の動きベクトル量は撮像装置の動きベクトル量と同じになるため、背景の動きベクトル量の判別が可能である。具体的には、レンズマイコン１１３の角速度センサ１１１から撮像装置の動きベクトル量を取得し、ヒストグラムの動きベクトル量と比較することで、被写体と背景の動きベクトル量を判別することが可能である。
【００６２】
さらに、小被写体である場合、図１０の１００７に示すように被写体の動きベクトル量は固まって存在する。よって、被写体の動きベクトル量を検出したベクトル検出枠（以下、被写体ポイント）を調べ、被写体ポイントの範囲（以下、被写体範囲）がある範囲（以下、小被写体判定範囲）内であれば小被写体であると判別することとする。
【００６３】
具体的には、それぞれの被写体ポイントの中心位置（Ｘ，Ｙ）の中から最小値（Ｘ，Ｙ）と最大値（Ｘ，Ｙ）を求め「サイズ（Ｘ，Ｙ）＝最大値（Ｘ，Ｙ）−最小値（Ｘ，Ｙ）」として求めたサイズ（Ｘ，Ｙ）を被写体範囲とする。そして、被写体範囲のサイズ（Ｘ，Ｙ）と予め規定した小被写体判定範囲のサイズ（Ｘ，Ｙ）を比較し、小被写体判定範囲内であれば、小被写体であると判別することとする。また、被写体範囲の情報としてサイズ（Ｘ，Ｙ）の他に、被写体範囲の中心位置（Ｘ，Ｙ）を保持することとする。
【００６４】
次に、被写体判定処理について、図４のフローチャートを用いて説明する。
【００６５】
Ｓ４０１で、被写体動きベクトル量算出部１５４は、動きベクトル検出部１４１に対し、像面上の全体にテンプレート枠を配置するようにテンプレート枠の変更を要求する。
【００６６】
ここで、テンプレート枠は、図１０と同様に７×５のベクトル検出枠を設定することにする。
【００６７】
Ｓ４０２で、被写体動きベクトル量算出部１５４は、動きベクトル検出部１４１からテンプレート枠に配置されたベクトル検出枠の動きベクトル量を取得し、ヒストグラムを作成する。ここで、ヒストグラムは、図１０と同様に横軸が動きベクトル量で縦がベクトル個数となるヒストグラムを作成ことにする。また、前述した被写体と背景の動きベクトル量を判別する。
【００６８】
Ｓ４０３で、被写体動きベクトル量算出部１５４は、ヒストグラムから被写体のベクトル個数が閾値αより大きいか否かを判定する。Ｓ４０３で、閾値αに対して大きい、もしくは等しいと判定した場合は、被写体が大きいと判断し、Ｓ４０９へと進む。Ｓ４０３で、閾値αに対して小さいと判定した場合は、小被写体である可能性が高いので背景のベクトル個数を調べるため、Ｓ４０４へと進む。
【００６９】
Ｓ４０４で、被写体動きベクトル量算出部１５４は、ヒストグラムから背景のベクトル個数が閾値βより大きいか否かを判定する。Ｓ４０４で、閾値βに対して大きい、もしくは等しいと判定した場合は、小被写体である可能性が高いので被写体範囲の情報を生成するＳ４０５へと進む。すなわち、被写体の動きベクトルを検出した領域（ベクトル検出枠）の数が閾値α（第１の閾値）より小さく、かつ、背景の動きベクトルを検出した領域（ベクトル検出枠）の数が閾値β（第２の閾値）より大きい場合、小被写体である可能性が高いと判定する。一方、Ｓ４０４で、閾値βに対して小さいと判定した場合は、被写体が大きいと判断し、Ｓ４０８へと進む。
【００７０】
Ｓ４０５で、被写体動きベクトル量算出部１５４は、前述した被写体範囲の情報を生成する。ここでは、被写体ポイントを調べるのに使用する被写体の動きベクトル量は、閾値α未満の中でベクトル個数の一番多い被写体の動きベクトル量とする。
【００７１】
また、被写体範囲の情報は、後述するテンプレート枠変更処理でも使用するため、一次記憶装置１３５に被写体範囲の情報として保持することとする。
【００７２】
Ｓ４０６で、被写体動きベクトル量算出部１５４は、被写体範囲が小被写体判定範囲内か否かを判定する。具体的には、被写体範囲のサイズ（Ｘ，Ｙ）と予め規定した小被写体判定範囲のサイズ（Ｘ，Ｙ）を比較する。Ｓ４０６で、小被写体判定範囲内と判定した場合は、Ｓ４０７に進む。Ｓ４０６で、小被写体判定範囲内ではないと判定した場合は、Ｓ４０８に進む。
【００７３】
Ｓ４０７で、被写体動きベクトル量算出部１５４は、メイン制御部１５２から取得要求があった際の動きベクトル結果を一次記憶装置１３５に保持する。なお、後述するテンプレート枠変更処理で被写体の動きベクトルの信頼度を高めるが、現時点で確定している被写体の動きベクトル量を動きベクトル結果として保持することとする。また、保持する動きベクトル結果は、Ｓ４０５で被写体ポイントを調べるのに使用した被写体の動きベクトル量とする。
【００７４】
Ｓ４１０で、被写体動きベクトル量算出部１５４は、被写体判定処理の結果として、小被写体だと判断したため、小被写体フラグをＴＲＵＥに設定し処理を終了する。
【００７５】
Ｓ４０８、Ｓ４０９は、被写体が大きいと判断した場合の処理であり、Ｓ４０７と同様に動きベクトル結果を一次記憶装置１３５に保持する。
【００７６】
Ｓ４０８で、被写体動きベクトル量算出部１５４は、被写体が大きいが低コントラストだと判断し、閾値α未満の被写体のベクトル個数の中で一番多い被写体の動きベクトル量を動きベクトル結果として保持し、Ｓ４１１へと進む。
【００７７】
Ｓ４０９で、被写体動きベクトル量算出部１５４は、被写体が大きいと判断し、閾値α以上の被写体の動きベクトル量を動きベクトル結果として保持し、Ｓ４１１へと進む。
【００７８】
Ｓ４１１で、被写体動きベクトル量算出部１５４は、被写体判定処理の結果として、小被写体でないと判断したため、小被写体フラグをＦＡＬＳＥに設定し処理を終了する。
【００７９】
<<テンプレート枠変更処理>>
次に、被写体動きベクトル量算出部１５４のテンプレート枠の変更をおこなうテンプレート枠変更処理について説明する。なお、本処理開始のタイミングに関しては、前述した被写体動きベクトル量算出処理から呼び出されたタイミングで動作する。
【００８０】
まず、テンプレート枠のサイズを変更する方法について、図１３を用いて詳述する。
【００８１】
図１３（ａ）は、像面上のテンプレート枠を１００２、１００２’、１００２’’の段階でテンプレート枠を縮小したところを図示している。図１３（ｂ）は、ヒストグラムであり、１３０４は１００２、１３０５は１００２’、１３０６は１００２’’のヒストグラムを図示している。また、１３０６、１３０７は、被写体のベクトル個数の増加量を示す。
【００８２】
このように、テンプレート枠を縮小することで、被写体のベクトル個数を多く取得でき、被写体の動きベクトルの信頼度が高くなる。
【００８３】
次に、テンプレート枠の位置を変更する方法について、図１４を用いて詳述する。図１４においても、１００２、１００２’、１００２’’の順で段階的に縮小したテンプレート枠を示している。また、１００１、１００１’、１００１’’はそれぞれ、テンプレート枠１００２、１００２’、１００２’’に対応するベクトル検出枠を示している。
【００８４】
前述したように流し撮り撮影においては撮影者が被写体の動きに合わせてパンニングをすることが考えられ、被写体がテンプレート枠外となる可能性がある。そこで、図１４の１４０１、１４０２、１４０３に示すように、前述した被写体範囲の情報からの被写体範囲の中心位置（Ｘ，Ｙ）を調べ、テンプレート枠の中心が被写体範囲の中心位置（Ｘ，Ｙ）に来るようにテンプレート枠の位置を変更する。これにより、被写体がテンプレート枠外となることを防ぐことができる。
【００８５】
ここで、本実施例において、テンプレート枠の大きさを小さく変更する際は、図１４に示すように、ベクトル検出枠の数（本実施例では、７×５）が変わらないように、ベクトル検出枠の大きさを小さくする。
【００８６】
次に、テンプレート枠変更処理について、図５のフローチャートを用いて説明する。
【００８７】
Ｓ５０１で、被写体動きベクトル量算出部１５４は、一次記憶装置１３５に保持されている被写体範囲の情報を取得する。
【００８８】
Ｓ５０２で、被写体動きベクトル量算出部１５４は、動きベクトル検出部１４１に対し、テンプレート枠を縮小するようにテンプレート枠の変更を要求する。ここでは、縮小率を１／２とするが、縮小率はこれに限られるものではなく、テンプレート枠の縮小率を１／３、１／４としても良い。また、前述した被写体範囲のサイズ（Ｘ，Ｙ）となるような縮小率にしても良い。また、図１５に示すように縮小率を変更したことにより、テンプレート枠を配置するスペースがある場合は、レンズマイコン１１３の角速度センサ１１１から撮像装置の動きベクトル量を取得し、パンニング方向に対してテンプレート枠の配置を変更しても良い。
【００８９】
Ｓ５０３で、被写体動きベクトル量算出部１５４は、Ｓ５０１で取得した被写体範囲の中心位置（Ｘ，Ｙ）にテンプレート枠の中心位置（Ｘ，Ｙ）を移動するように動きベクトル検出部１４１に要求する。すなわち、被写体動きベクトル量算出部１５４は、被写体の大きさが所定の大きさより小さい小被写体であると判定した場合に、テンプレート枠の大きさを小さく変更するとともに、テンプレート枠の中心位置を被写体の中心位置に近づけるように変更する。
【００９０】
Ｓ５０４で、被写体動きベクトル量算出部１５４は、動きベクトル検出部１４１からテンプレート枠に配置されたベクトル検出枠の動きベクトル量を取得し、ヒストグラムを作成する。
【００９１】
Ｓ５０５で、被写体動きベクトル量算出部１５４は、被写体のベクトル個数が増加したか否かを判定する。具体的に、被写体動きベクトル量算出部１５４は、テンプレート枠の大きさおよび中心位置を変更した後、被写体と背景の動きベクトルを判定し、被写体の動きベクトルを検出した領域（ベクトル検出枠）の数が増加したか否か判定する。Ｓ５０５で、増加したと判定した場合は、検出された動きベクトル結果を一次記憶装置１３５に保持するためＳ５０６へと進む。Ｓ５０５で、増加しなかったと判定した場合は、被写体の動きベクトル量を検出できなかったと判断し、Ｓ５１０へと進む。
【００９２】
Ｓ５０６で、被写体動きベクトル量算出部１５４は、Ｓ５０５で増加した被写体のベクトル個数に対する動きベクトル量を動きベクトル結果として保持する。
【００９３】
Ｓ５０７で、被写体動きベクトル量算出部１５４は、Ｓ５０６と同様に増加した動きベクトル量に対する被写体範囲の情報を生成し、一次記憶装置１３５に保持する。
【００９４】
Ｓ５０８で、被写体動きベクトル量算出部１５４は、ヒストグラムから被写体のベクトル個数が閾値αより大きいか否かを判定する。Ｓ５０８で、閾値αに対して大きい、もしくは等しいと判定した場合は、被写体検出に成功したと判断し、Ｓ５０９へと進む。Ｓ５０８で、閾値αに対して小さいと判定した場合は、テンプレート枠を縮小するために、Ｓ５０１へと戻る。具体的に、被写体動きベクトル量算出部１５４は、Ｓ５０１へ戻った後、Ｓ５０２およびＳ５０３で、テンプレート枠の大きさおよび中心位置を変更し、もう一度被写体と背景の動きベクトルを判定する。その後、Ｓ５０８で、被写体の動きベクトルを検出した領域（ベクトル検出枠）の数が閾値α（第１の閾値）よりも大きくなるまで、Ｓ５０１〜Ｓ５０７の処理を繰り返し行う。すなわち、被写体の動きベクトルを検出した領域（ベクトル検出枠）の数が閾値α（第１の閾値）よりも大きくなるまで、テンプレート枠の大きさを小さく変更するとともに、テンプレート枠の中心位置を被写体の中心位置に近づけるように変更する。
【００９５】
Ｓ５０９で、被写体動きベクトル量算出部１５４は、テンプレート枠変更の結果とし、被写体検出に成功したと判断したため、被写体検出成功フラグをＴＲＵＥに設定し処理を終了する。
【００９６】
Ｓ５１０で、被写体動きベクトル量算出部１５４は、テンプレート枠変更の結果とし、被写体検出に成功しなかったと判断したため、被写体検出成功フラグをＦＡＬＳＥに設定し処理を終了する。
【００９７】
このように、本発明によれば、被写体がテンプレート枠内に収まるようにテンプレート枠を変更し、被写体のベクトル個数を多く取得することで、被写体の動きベクトルの信頼度を高め、被写体ブレの補正精度を向上させることができる。
【００９８】
具体的に、本実施例によれば、小被写体と判断した場合に、小被写体の中心にくるようにテンプレート枠を段階的に縮小することで、被写体がテンプレート枠外になることを防止した。
【００９９】
これにより、被写体の動きベクトルの信頼度を高めることができ、流し撮りアシストモードの撮影時における被写体ブレの補正精度を向上させることを可能にした撮像装置を提供することができる。
【０１００】
しかし、本発明はこのような形態に限られるものではなく、例えば、被写体距離がある場合は、像面上の被写体の動きベクトル量が小さいため、被写体距離に応じてテンプレート枠の縮小率を変更しても良い。
【０１０１】
また、本実施例では、小被写体と判断した場合に、被写体の大きさと位置に応じてテンプレート枠を変更する例について説明した。しかし、本発明はこれに限定されず、大被写体と判断した場合においても、被写体の大きさと位置に応じてテンプレート枠を変更するように構成することも可能である。例えば、大被写体と判断された場合に、上述したテンプレート枠の変更を行うことにより、より被写体の動きベクトルの信頼度を高めることができる。
【０１０２】
また、本実施例では、流し撮り撮影の補助を行う場合に被写体の大きさと位置に応じてテンプレート枠を変更する例に説明したが、通常の手ブレ補正動作時においても被写体の大きさと位置に応じてテンプレート枠を変更するようにしてもよい。
【実施例２】
【０１０３】
第２の実施形態では、テンプレート枠を縮小した際に、被写体のベクトル個数が増加しなかった（被写体がテンプレート枠外となった）場合でも被写体の再検出を可能にした撮像装置について説明する。なお、本実施形態において撮像装置の構成は第１の実施形態（図１参照）と同様であるため、その説明を省略する。
【０１０４】
まず、被写体再検出方法について、図１１を用いて詳述する。
【０１０５】
図１１に示すように被写体がテンプレート枠外となる可能性があるが、流し撮り撮影において撮影者は被写体の動きに合わせてパンニングをしているため、被写体の移動方向はパンニング方向の±方向だと考えられる。よって、テンプレート枠をパンニング方向にシフトさせることで被写体を再検出する可能性が高い。具体的には、レンズマイコン１１３の角速度センサ１１１から撮像装置の動きベクトル量を取得し、パンニング方向（振れの方向）を調べる。そして、パンニングの±方向（振れの方向と平行な方向）にテンプレート枠をシフトさせながら被写体のベクトル個数の増加を調べることとする。
【０１０６】
<<テンプレート枠変更処理>>
次に、第２の実施例における被写体動きベクトル量算出部１５４のテンプレート枠変更処理について、図６のフローチャートを用いて説明する。
【０１０７】
Ｓ６０１〜Ｓ６１０は実施例１のＳ５０１〜Ｓ５１０と同じであるため、その説明を省略する。
【０１０８】
Ｓ６１１で、被写体動きベクトル量算出部１５４は、Ｓ６０５で被写体のベクトル個数が増加していないと判定した場合に、角速度センサにより検出される振れの方向に応じてテンプレート枠の位置を移動させる被写体再検出処理を実行する。被写体再検出処理の詳しい内容については後述する。
【０１０９】
Ｓ６１２で、被写体動きベクトル量算出部１５４は、被写体再検出に成功したか否かを判定する。具体的には、被写体再検出処理の結果として取得した後述する被写体再検出成功フラグを参照する。なお、被写体の再検出に成功した場合は、被写体再検出成功フラグにＴＲＵＥが設定され、被写体の再検出に成功しなかった場合は、被写体再検出成功フラグにＦＡＬＳＥが設定される。
【０１１０】
<<被写体再検出処理>>
次に、被写体動きベクトル量算出部１５４の被写体再検出処理について、図７のフローチャートを用いて説明する。
【０１１１】
Ｓ７０１で、被写体動きベクトル量算出部１５４は、テンプレート枠の位置をシフト前の位置として保持する。ここでは、テンプレート枠の中心位置（Ｘ，Ｙ）を保持することとする。
【０１１２】
Ｓ７０２で、被写体動きベクトル量算出部１５４は、レンズマイコン１１３の角速度センサ１１１から撮像装置の動きベクトル量を取得し、パンニング方向を調べ、テンプレート枠をシフトする方向を決定する。ここでは、右方向にパンニングしたとし、テンプレート枠のシフト方向を右方とする。
【０１１３】
Ｓ７０３で、被写体動きベクトル量算出部１５４は、動きベクトル検出部１４１に対し、テンプレート枠をシフト方向に移動するように要求する。具体的に、被写体動きベクトル量算出部１５４は、角速度センサ１１１により検出される振れと平行な方向にテンプレート枠の中心位置を移動させる。ここでは、テンプレート枠の移動量をテンプレート枠のＸサイズの１／２とするが、移動量はこれに限られるものではない。
【０１１４】
Ｓ７０４で、被写体動きベクトル量算出部１５４は、動きベクトル検出部１４１からテンプレート枠に配置されたベクトル検出枠の動きベクトル量を取得し、ヒストグラムを作成する。
【０１１５】
Ｓ７０５で、被写体動きベクトル量算出部１５４は、被写体のベクトル個数が増加したか否かを判定する。Ｓ７０５で、増加したと判定した場合は、被写体の再検出に成功したと判断しＳ７１１へと進む。Ｓ７０５で、増加しなかったと判定した場合は、被写体の再検出に失敗したと判断し、Ｓ７０６へと進む。
【０１１６】
Ｓ７０６で、被写体動きベクトル量算出部１５４は、テンプレート枠が像面上の端まで移動したかどうかを判定する。Ｓ７０６で、像面上の端まで移動したと判定した場合は、Ｓ７０７へと進む。Ｓ７０６で、像面上の端まで移動しなかったと判定した場合は、テンプレート枠を更にシフトさせるため、Ｓ７０３へと戻る。
【０１１７】
Ｓ７０７で、被写体動きベクトル量算出部１５４は、シフト方向がパンニング方向か否かを判定する。具体的には、±方向のテンプレート枠のシフト処理が完了したか否かを判定するための処理であり、シフト方向がパンニング方向であれば、パンニング方向と逆方向のシフト処理が完了していないこととなる。Ｓ７０７で、シフト方向がパンニング方向であると判定した場合は、逆方向のシフト処理が完了していないと判断し、Ｓ７０９へと進む。Ｓ７０７で、シフト方向がパンニング方向でないと判定した場合は、被写体の再検出に失敗したと判断し、Ｓ７０８へと進む。
【０１１８】
Ｓ７０９で、被写体動きベクトル量算出部１５４は、テンプレート枠の位置を元の位置に戻すため、Ｓ７０１で保持していたシフト前位置を取得する。また、動きベクトル検出部１４１に対し、テンプレート枠をシフト前位置に移動するように要求する。
【０１１９】
Ｓ７１０で、被写体動きベクトル量算出部１５４は、テンプレート枠のシフト方向をパンニング方向と逆方向し、Ｓ７０３へと戻る。ここでは、最初に右方向をシフト方向としたため、次はシフト方向を左方向とする。
【０１２０】
Ｓ７０８で、被写体動きベクトル量算出部１５４は、被写体の再検出に失敗したと判断したため、被写体再検出成功フラグをＦＡＬＳＥに設定し処理を終了する。
【０１２１】
Ｓ７１１で、被写体動きベクトル量算出部１５４は、被写体の再検出に成功したと判断したため、被写体再検出成功フラグをＴＲＵＥに設定し処理を終了する。
【０１２２】
本実施例においても、実施例１と同様に、被写体がテンプレート枠内に収まるようにテンプレート枠を変更し、被写体のベクトル個数を多く取得することで、被写体の動きベクトルの信頼度を高め、被写体ブレの補正精度を向上させることができる。
【０１２３】
加えて、本実施例によれば、テンプレート枠を縮小した際に、被写体がテンプレート枠外となった場合でも、テンプレート枠をパンニング方向またはパンニング方向と逆方向にシフトすることで、被写体の再検出を可能にした撮像装置を提供することができる。
【実施例３】
【０１２４】
第３の実施形態では、テンプレート枠の縮小と共にサーチエリアも縮小される撮像装置においても、被写体の動きベクトルの信頼度を高め、被写体ブレの補正精度を向上させることを可能にした撮像装置について説明する。
【０１２５】
なお、本実施形態において撮像装置の構成は第１の実施形態（図１参照）と同様であるため、その説明を省略する。
【０１２６】
まず、サーチエリアについて、図１６を用いて詳述する。
【０１２７】
図１６（ａ）は、テンプレート枠を縮小する前のサーチエリア１６０１、ベクトル検出枠１６０３を図示している。
【０１２８】
一方、図１６（ｂ）は、テンプレート枠を縮小した後のサーチエリア１６０２、ベクトル検出枠１６０４であり、テンプレート枠の縮小と共にサーチエリア１６０２も縮小していることを図示している。
【０１２９】
また、被写体の速度及び撮影者のパンニング速度が一定であれば、被写体の動きベクトル量はテンプレート枠を縮小しても変化しないため、図１６（ａ）と（ｂ）には同一の動きベクトル量１６０５を図示している。
【０１３０】
図１６（ａ）の場合、動きベクトル量１６０５は、サーチエリア１６０１の範囲内となるため、動きベクトル量の検出が可能である。しかしながら、図１６（ｂ）の場合、動きベクトル量１６０５は、サーチエリア１６０２の範囲外となるため、動きベクトル量の検出ができずにエラーとなり、被写体の動きベクトル量が取得できなくなる。
【０１３１】
このような撮像装置において、被写体の動きベクトル量が大きい場合にテンプレート枠を縮小すると、被写体の動きベクトル量が取得できないこととなる。
【０１３２】
そこで、本実施例では小被写体の動きベクトル量が小さい（パンニング速度が被写体の速度に近い）と判断した場合のみ、ベクトル検出枠を縮小させることとする。
【０１３３】
<<被写体動きベクトル量算出処理>>
次に、第３の実施例における被写体動きベクトル量算出部１５４の被写体動きベクトル量算出処理について、図８のフローチャートを用いて説明する。
【０１３４】
Ｓ８０１、Ｓ８０２は実施例１のＳ３０１、Ｓ３０２と同じであるため、その説明を省略する。また、Ｓ８０５、Ｓ８０６は実施例１のＳ３０３、Ｓ３０４と同じであるため、その説明を省略する。
【０１３５】
Ｓ８０３で、被写体動きベクトル量算出部１５４は、動きベクトル検出部１４１からテンプレート枠に配置されたベクトル検出枠の動きベクトル量を取得し、ヒストグラムを作成する。
【０１３６】
Ｓ８０４で、被写体動きベクトル量算出部１５４は、被写体の動きベクトル量が±閾値θ未満か否かを判定する。なお、±閾値θは、被写体の動きベクトル量が±0近辺の値とする。
【０１３７】
Ｓ８０４で、±閾値θ未満と判定した場合は、テンプレート枠を変更するため、Ｓ８０５へ進む。Ｓ８０４で、±閾値θ未満でないと判定した場合は、テンプレート枠を変更しないため、処理を終了する。すなわち、被写体井動きベクトル量算出部１５４は、Ｓ８０２で被写体の大きさが所定の大きさより小さい小被写体であると判定した場合、被写体の動きベクトルの大きさに基づいて、テンプレート枠の変更を行うか否かの判定を行う。ここで、被写体の動きベクトルの大きさが±閾値θ（所定値）よりも小さい場合にテンプレート枠の変更を行うと判定し、被写体の動きベクトルの大きさが±閾値θ（所定値）よりも大きい場合にテンプレート枠の変更を行わないと判定する。
【０１３８】
本実施例においても、実施例１と同様に、被写体がテンプレート枠内に収まるようにテンプレート枠を変更し、被写体のベクトル個数を多く取得することで、被写体の動きベクトルの信頼度を高め、被写体ブレの補正精度を向上させることができる。
【０１３９】
加えて、本実施例によれば、被写体の動きベクトル量に応じてテンプレート枠を縮小することで、被写体の動きベクトルの信頼度を高めることとした。
【０１４０】
これにより、テンプレート枠の縮小と共にサーチエリアも縮小される撮像装置においても、流し撮りアシストモードの撮影時における被写体ブレの補正精度を向上させることを可能にした撮像装置を提供することができる。
【０１４１】
しかし、本発明はこのような形態に限られるものではなく、過去数フレームのヒストグラムを作成し、被写体の動きベクトル量の平均値から±閾値θ未満か否かを判定しても良い。
【０１４２】
また、被写体の動きベクトル量が小さいため、前述したテンプレート枠変更処理の縮小率を１／２など段階的に実施するのではなく、被写体範囲のサイズ（Ｘ，Ｙ）となるように変更しても良い。
【０１４３】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【０１４４】
なお、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのプログラム（すなわち、各実施例における各ステップが記述されたコンピュータで実行可能なプログラム）、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【産業上の利用可能性】
【０１４５】
本発明は、コンパクトデジタルカメラ、一眼レフカメラ、ビデオカメラなどの撮像装置に好適に利用できる。
【符号の説明】
【０１４６】
１３２：カメラマイコン
１４１：動きベクトル検出部
【図１】
0006700872.tif 000003
【図２】
0006700872.tif 000004
【図３】
0006700872.tif 000005
【図４】
0006700872.tif 000006
【図５】
0006700872.tif 000007
【図６】
0006700872.tif 000008
【図７】
0006700872.tif 000009
【図８】
0006700872.tif 000010
【図９】
0006700872.tif 000011
【図１０】
0006700872.tif 000012
【図１１】
0006700872.tif 000013
【図１２】
0006700872.tif 000014
【図１３】
0006700872.tif 000015
【図１４】
0006700872.tif 000016
【図１５】
0006700872.tif 000017
【図１６】
0006700872.tif 000018