(57)【特許請求の範囲】
【請求項１】
基準画像の複数の領域のそれぞれについて、参照画像との間の動きベクトルを検出する検出手段と、
前記動きベクトルのうち、移動被写体に関する動きベクトルを判定する動きベクトル判定手段と、
画像内の位置である注目点と前記移動被写体の移動方向とに基づいて、前記移動被写体に関する動きベクトルの一部を対象ベクトルと判定する対象ベクトル判定手段と、
前記対象ベクトルに基づいて前記移動被写体の代表ベクトルを算出する算出手段と、を有し、
前記対象ベクトル判定手段は、前記複数の領域のうち、前記移動被写体の移動方向と異なる方向で前記注目点を通る注目軸上に存在する領域で検出された前記移動被写体に関する動きベクトルを、前記対象ベクトルと判定することを特徴とする動きベクトル検出装置。
【請求項２】
前記対象ベクトル判定手段は、前記複数の領域のうち、前記移動被写体の移動方向に直交して前記注目点を通る注目軸上に存在する領域で検出された前記移動被写体に関する動きベクトルを、前記対象ベクトルと判定することを特徴とする請求項１記載の動きベクトル検出装置。
【請求項３】
前記対象ベクトル判定手段は、前記複数の領域のうち、前記注目軸からの距離が閾値未満の領域で検出された前記移動被写体に関する動きベクトルを、さらに前記対象ベクトルと判定することを特徴とする請求項１または請求項２に記載の動きベクトル検出装置。
【請求項４】
前記対象ベクトル判定手段は、前記複数の領域のうち、前記移動被写体の移動方向の前方に存在する領域で検出された前記移動被写体に関する動きベクトルの中から、前記対象ベクトルを判定することを特徴とする請求項１から請求項３のいずれか１項に記載の動きベクトル検出装置。
【請求項５】
前記注目点が、前記基準画像または前記参照画像の撮影時に用いられた焦点検出領域、前記基準画像または前記参照画像で検出された顔領域、前記基準画像または前記参照画像で認識された人物の顔領域の位置、前記基準画像または前記参照画像のデプスマップに基づく位置、およびユーザが指定した位置、のいずれかであることを特徴とする請求項１から請求項４のいずれか１項に記載の動きベクトル検出装置。
【請求項６】
前記動きベクトル判定手段は、前記動きベクトルの大きさの度数分布を用いて前記移動被写体に関する動きベクトルを判定することを特徴とする請求項１から請求項４のいずれか１項に記載の動きベクトル検出装置。
【請求項７】
前記動きベクトル判定手段は、前記度数分布における分布のうち、第１分布より大きさの小さい区間における第２分布を前記移動被写体に関する動きベクトルの分布と判定することを特徴とする請求項６に記載の動きベクトル検出装置。
【請求項８】
請求項１から請求項７のいずれか１項に記載の動きベクトル検出装置と、
前記代表ベクトルを角速度に変換する変換手段と、
前記角速度に基づいて手振れ補正を実行する補正手段と、
を有することを特徴とする撮像装置。
【請求項９】
前記補正手段は、撮像光学系が有するシフトレンズおよび、前記撮像装置が有する撮像素子の少なくとも一方を、前記角速度に従って前記撮像光学系の光軸に直交する方向に移動させることにより前記手振れ補正を実行することを特徴とする請求項８に記載の撮像装置。
【請求項１０】
前記補正手段は、前記撮像装置が有する撮像素子から画像を読み出す範囲を前記角速度に従って移動させることにより前記手振れ補正を実行することを特徴とする請求項８に記載の撮像装置。
【請求項１１】
基準画像の複数の領域のそれぞれについて、参照画像との間の動きベクトルを検出する工程と、
前記動きベクトルのうち、移動被写体に関する動きベクトルを判定する動きベクトル判定工程と、
画像内の位置である注目点と前記移動被写体の移動方向とに基づいて、前記移動被写体に関する動きベクトルの一部を対象ベクトルと判定する対象ベクトル判定工程と、
前記対象ベクトルに基づいて前記移動被写体の代表ベクトルを算出する算出工程と、を有し、
前記対象ベクトル判定工程では、前記複数の領域のうち、前記移動被写体の移動方向と異なる方向で前記注目点を通る注目軸上に存在する領域で検出された前記移動被写体に関する動きベクトルを、前記対象ベクトルと判定することを特徴とする動きベクトル検出装置の制御方法。
【請求項１２】
コンピュータを、請求項１から請求項７のいずれか１項に記載の動きベクトル検出装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きベクトル検出装置およびその制御方法に関し、特には、移動被写体の動きベクトルの検出技術に関する。
【背景技術】
【０００２】
移動被写体のスピード感を表現する撮影技術として流し撮りがある。流し撮りは、被写体の動きに合わせてカメラをパンニングしながら露光することで、移動被写体が静止し、背景がブレた画像を得る技術である。露光中のカメラの移動量が小さいと背景のブレが小さく、流し撮りの効果も小さくなる。そのため、露光中にカメラが十分移動するよう、被写体の（撮像面上の）移動速度が小さいほど遅いシャッタースピードを設定する。
【０００３】
流し撮りの効果は、背景のブレに対する移動被写体の静止との対比によって得られるため、移動被写体が静止して撮影されることが重要である。そのためには、露光中における撮像面上の被写体の動きに合わせてカメラをパンニングしなければならないが、容易ではない。パンニングの速度が被写体の移動速度に対して速すぎたり遅すぎたりすると、被写体までブレてしまう。
【０００４】
そのため、手振れ補正技術を応用して流し撮りを補助する、流し撮りアシスト機能が提案されている（特許文献１）。特許文献１では、移動被写体とカメラの動きのずれを、画像間の動きベクトルに基づいて検出し、ずれを補正するようにシフトレンズを駆動している。
【０００５】
特許文献１では、カメラがパンニングされているときに撮影された画像から検出される動きベクトルのうち、周囲よりも動きベクトルが小さい領域を被写体領域として検出し、被写体領域の動きベクトルを移動被写体とカメラの動きのずれとして検出している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−３１７８４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ある領域内で複数の動きベクトルが検出されている場合、平均や、頻度の高いものをその領域の代表動きベクトルとすることが知られている。しかし、上述の流し撮りアシスト機能における被写体領域の動きベクトルとして、このような代表動きベクトルを用いた場合、以下の様な問題が生じる。
【０００８】
例えば、被写体領域内で検出された複数の動きベクトルを平均した代表動きベクトルは、おおよそ画角中心における被写体の角速度を表すことが多い。しかしながら、被写体の角速度は画角内で一定とは限らない。例えば、等速直線運動する被写体をある一点から観測する場合、観測位置と被写体との距離が短いほど角速度は大きく観測される。したがって、画角中心における被写体の角速度を表す代表動きベクトルに基づく流し撮りアシスト機能によって得られる画像では、被写体の画角中心付近は静止していても、画角中心から離れる（像高が大きくなる）につれてブレが大きくなる。そのため、例えば焦点検出領域が画面の中心から離れた位置に設定されていた場合、流し撮りアシスト機能が有効に動作しても、意図した画像（焦点検出領域が静止した画像）は得られない。
【０００９】
本発明はこのような従来技術の課題に鑑みてなされたもので、被写体の特定の位置における角速度を表す動きベクトルを求めることが可能な動きベクトル検出装置およびその制御方法の提供を目的とする。
【課題を解決するための手段】
【００１０】
上述の目的は、基準画像の複数の領域のそれぞれについて、参照画像との間の動きベクトルを検出する検出手段と、動きベクトルのうち、移動被写体に関する動きベクトルを判定する動きベクトル判定手段と、画像内の位置である注目点と移動被写体の移動方向とに基づいて、移動被写体に関する動きベクトルの一部を対象ベクトルと判定する対象ベクトル判定手段と、対象ベクトルに基づいて移動被写体の代表ベクトルを算出する算出手段と、を有し、対象ベクトル判定手段は、複数の領域のうち、移動被写体の移動方向と異なる方向で注目点を通る注目軸上に存在する領域で検出された移動被写体に関する動きベクトルを、対象ベクトルと判定することを特徴とする動きベクトル検出装置によって達成される。
【発明の効果】
【００１１】
このような構成により、本発明によれば被写体の特定の位置における角速度を表す動きベクトルを求めることが可能な動きベクトル検出装置およびその制御方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係る動きベクトル検出装置を適用した、デジタルカメラの機能構成例を示すブロック図
【図２】実施形態に係るデジタルカメラの、撮影モードにおける動作の概要を示すフローチャート
【図３】図２の被写体角度算出処理に関するフローチャート
【図４】実施形態における動きベクトル検出の概要と動きベクトル情報の例を示す図
【図５】実施形態における撮像面上の動きと被写体またはカメラの角速度との関係を説明するための図
【図６】図３の動きベクトル解析処理に関するフローチャート
【図７】図３の動きベクトル解析処理を説明するための図
【図８】図３の被写体代表ベクトル算出処理に関するフローチャート。
【図９】図８の対象ベクトル判定処理を説明するための図
【図１０】第２実施形態に係る対象ベクトル判定処理を説明するための図
【図１１】第３実施形態に係る対象ベクトル判定処理を説明するための図
【図１２】第３実施形態に係る対象ベクトル判定処理を説明するための図
【発明を実施するための形態】
【００１３】
以下、本発明の例示的な実施形態のいくつかを、添付図面に基づいて詳細に説明する。なお、以下では本発明の実施形態に係る動きベクトル検出装置をデジタルカメラに適用した例に関して説明するが、本発明において撮像や撮像画像の記録に関する機能は必須でない。本発明は、動きベクトルを検出するための複数の画像と、被写体距離に関する情報とを取得可能な任意の電子機器において実施可能である。このような電子機器の例には、デジタルスチルまたはビデオカメラ、パーソナルコンピュータ、ゲーム機、携帯電話機、携帯情報端末、カーナビゲーションシステム、ドライブレコーダ、ロボットなどが含まれるが、これらに限定されない。また、実施形態に係る動きベクトル検出装置で検出した動きベクトル用いて流し撮りアシスト機能を実現するための手振れ補正の方式は、撮像素子やシフトレンズを駆動する光学式であっても、画素の切り出し位置を制御する電子式であってもよい。また、光学式と電子式とを併用してもよい。
【００１４】
●（第１実施形態）
図１は本発明の実施形態に共通するデジタルカメラ１００の機能構成を模式的に示すブロック図である。
撮像光学系１０１は、レンズ、シャッター、絞りから構成されており、被写体からの光を撮像素子１０２に結像させる。撮像光学系１０１には合焦距離を調節するためのフォーカスレンズが含まれる。また、撮像光学系１０１に手振れ補正用のシフトレンズが含まれていてもよい。撮像光学系１０１が有する可動部材（シャッター、絞り、フォーカスレンズ、シフトレンズ）の駆動は制御部１０３が制御する。
【００１５】
撮像素子１０２は、ＣＣＤイメージセンサまたはＣＭＯＳイメージセンサであってよく、２次元配置された複数の画素を有する。画素は光電変換機能を有し、撮像光学系１０１が撮像面に結像した被写体像を画素ごとに電気信号に変換する。
【００１６】
振れセンサ１０５は、デジタルカメラ１００の動きに応じた信号を発生し、制御部１０３に出力する。振れセンサ１０５は例えばジャイロセンサのような角速度センサであってよく、動きの方向成分（例えばｘ，ｙ，ｚ軸成分）ごとに信号を発生する。なお、振れセンサ１０５は撮像光学系１０１に設けてもよい。
【００１７】
制御部１０３は、例えばＣＰＵやＭＰＵのようなプログラマブルプロセッサを１つ以上有する。制御部１０３は例えば二次記憶装置１０８に記憶されたプログラムを一次記憶装置１０４に読み込んで実行することにより、デジタルカメラ１００の各機能ブロックの動作を制御し、デジタルカメラ１００の各種機能を実現させる。画像処理部１０６で検出された動きベクトルを用いて被写体領域と背景領域とを区別する処理や、被写体領域の特定位置の加速度を表す動きベクトルを生成する処理は制御部１０３が実行する。したがって、動きベクトル検出装置は、制御部１０３、あるいは制御部１０３と画像処理部１０６との組み合わせによって実現される。
【００１８】
一次記憶装置１０４は、例えばＲＡＭのような揮発性装置であり、データの一時的な記憶や、制御部１０３の動作に使われる。また、一次記憶装置１０４に記憶されている情報は、画像処理部１０６で利用されたり、記録媒体１０７に記録されたりもする。二次記憶装置１０８は、例えばＥＥＰＲＯＭのような不揮発性記憶装置であり、制御部１０３が実行するプログラム、ファームウェア、各種の設定情報、ＧＵＩデータなどを記憶する。
【００１９】
記録媒体１０７は不揮発性で、一次記憶装置１０４に記憶されている画像データなどの記録先として用いられる。記録媒体１０７の読み書きは、制御部１０３が制御する。記録媒体１０７が例えば半導体メモリカードのようにデジタルカメラ１００から取り外し可能である場合、デジタルカメラ１００は、記録媒体１０７の着脱機構を有する。
【００２０】
表示部１０９は、ライブビュー表示、一次記憶装置１０４に記憶されている画像（記録媒体１０７への記録前の画像または記録媒体１０７から読み出された画像）の表示、対話的な操作のためのＧＵＩ画像などの表示に用いられる。表示部１０９はタッチディスプレイであってもよい。
【００２１】
操作部１１０は、ユーザがデジタルカメラ１００に各種の入力を行うための入力デバイス群である。操作部１１０には、例えばスイッチ、ボタン、レバー、タッチパネル等の物理的な操作を必要とする入力デバイスだけでなく、音声入力や視線入力を受け付ける入力デバイスが含まれてもよい。本実施形態のデジタルカメラ１００では、操作部１１０に含まれるレリーズボタンのハーフストロークでＯＮになるスイッチ（ＳＷ１）と、フルストロークでＯＮになるスイッチ（ＳＷ２）を有している。なお、レリーズボタンは静止画の撮影に用いられ、動画の撮影については動画記録ボタンが別途用意されていてもよい。
【００２２】
ＳＷ１のＯＮは撮影準備動作の開始指示である。撮影準備動作には、ＡＦ（オートフォーカス）処理およびＡＥ（自動露出）処理が含まれる。ＡＥ処理やＡＦ処理は、例えばライブビュー表示用の画像から得られる情報に基づいて制御部１０３が実施することができる。
【００２３】
また、ＳＷ２のＯＮは記録用画像の撮影動作の開始指示である。生成された記録用画像は一次記憶装置１０４に格納される。そして、制御部１０３は、必要に応じて画像処理部１０６で符号化処理を行ったのち、記録形式に応じたデータファイルに格納し、記録媒体１０７に記録する。
【００２４】
画像処理部１０６は、撮像素子１０２が出力する電気信号に対してＡ／Ｄ変換や相関２重サンプリングなどの前処理や、前処理が適用された信号に対してホワイトバランス調整やデモザイク処理などのいわゆる現像処理などを適用する。また、ＲＧＢ−ＹＣｂＣｒ変換などの信号形式の変換、記録形式に応じた符号化および復号、画像の縮小および拡大、画像の合成、色調の調整、ＡＦ評価値の生成、特定被写体の検出および認識処理など、様々な画像処理を実行することができる。代表的な特定被写体は人物の顔であり、特定被写体の認識処理は表情や個人の認識であるが、これらに限定されない。本実施形態では、複数の画像間における動きベクトルの検出を画像処理部１０６が実行する。
【００２５】
なお、本実施形態のデジタルカメラ１００は、画像処理部１０６が画像に適用可能な画像処理の組み合わせがパターンとしてあらかじめ登録されており、使用するパターンを操作部１１０から設定できるように構成されている。なお、画像処理部１０６の機能の少なくとも一部は、ＦＰＧＡやＡＳＩＣのようなハードウェアで実現されてもよいし、例えば画像処理部１０６（あるいは制御部１０３）が有するプロセッサがプログラムを実行することによって実現されてもよい。
【００２６】
図２は、デジタルカメラ１００の撮影モードにおける動作の概要を示すフローチャートである。この動作は例えば、デジタルカメラ１００の起動後、または再生モードから撮影モードに切り替えられた場合に開始することができる。
撮影モードにおいては、ライブビュー表示を行うための動画撮影を継続的に実行する。ライブビュー表示用の動画撮影に関する露出制御（撮像素子１０２の蓄積時間制御）および撮像光学系１０１の焦点調整は、例えば撮影で得られたフレーム画像から得られる輝度情報や評価値に基づいて制御部１０３が実行する。
【００２７】
制御部１０３はＳ１で、撮像素子１０２からフレーム画像を読み出し、一次記憶装置１０４へ保存する。画像処理部１０６は一次記憶装置１０４からフレーム画像を読み出し、表示用画像（ライブビュー画像）を生成する。制御部１０３はライブビュー画像を表示部１０９で表示させる。また、画像処理部１０６は、フレーム画像もしくはライブビュー画像からＡＥ用の輝度情報とＡＦ用の評価値を生成し、制御部１０３に出力する。制御部１０３は、輝度情報に基づいて次フレームの蓄積時間（必要に応じてさらに撮影感度）を決定する。また制御部１０３は、評価値に基づいて次フレームのフォーカスレンズ位置を決定し、必要に応じて撮像光学系１０１を制御してフォーカスレンズを駆動する。
【００２８】
次に、制御部１０３はＳ２で、被写体の角速度を算出する。算出の詳細については後述する。制御部１０３は被写体の角速度を打ち消すようにブレ補正を実行することができる。制御部１０３は、シフトレンズまたは撮像素子１０２を駆動するか、撮像素子１０２からの読み出し範囲（切り出し範囲）を決定することにより、ブレ補正を実行することができる。Ｓ２で被写体の角速度の算出に用いた画像の領域を示す表示を、ライブビュー画像に重畳表示させてもよい。
【００２９】
次に、制御部１０３はＳ３で、操作部１１０を通じて静止画の撮影開始指示が入力されているかどうかを判定する。制御部１０３は、例えば画像処理部１０６において、撮影開始指示と見なせる結果が得られたか否かについても判定することできる。制御部１０３は例えば、画像処理部１０６において、人物のあらかじめ定められた特定の表情（例えば笑顔やウインクなど）が検出されたことを、撮影開始指示の入力と判定してもよい。
【００３０】
撮影開始指示が入力されていると判定されなければ、制御部１０３は処理をＳ１に戻し、Ｓ１とＳ２の処理を繰り返す。
撮影開始指示が入力されていると判定された場合、制御部１０３は処理をＳ４に進め、記録用の撮影（露光）およびブレ補正を行う。記録用の撮影において制御部１０３は、撮像光学系１０１に含まれるシャッタを用いて撮像素子１０２の露光時間を制御するとともに、絞り（シャッタと兼用であってもよい）の開口の大きさを制御する。露出条件およびフォーカスレンズ位置は例えば直近に撮影されたフレーム画像から画像処理部１０６が生成した輝度情報および評価値に基づいて決定することができる。
【００３１】
制御部１０３はまた、振れセンサ１０５から入力される信号で表される角速度と、Ｓ２で算出した被写体の角速度との差分に基づいて振れ補正を行い、被写体ブレを抑制する。振れ補正は、上述の差分に基づいて、シフトレンズまたは撮像素子を撮像光学系１０１の光軸に直交する方向に駆動したり、撮像素子１０２からの読み出し範囲を変更したりすることで実現できる。なお、振れセンサ１０５が撮像光学系１０１に設けられている場合、制御部１０３はＳ２で算出した被写体の角速度の情報を撮像光学系１０１に与え、ブレ補正は撮像光学系１０１が備える制御部が実行してもよい。
【００３２】
露光が終了すると制御部１０３は処理をＳ５に進め、撮像素子１０２から読み出した画像信号を一次記憶装置１０４に保存する。そして、画像処理部１０６がこの画像信号に対して現像処理などを適用して記録用の画像データファイルを生成し、一次記憶装置１０４に保存する。
【００３３】
Ｓ６で制御部１０３は、一次記憶装置１０４に保存された画像データファイルを記録媒体１０７に記録し、処理をＳ１に戻す。
【００３４】
次に、図２のＳ２における被写体角速度算出処理について、図３のフローチャートを用いて説明する。
Ｓ７で画像処理部１０６は撮像素子１０２で異なる時刻に得られた２枚のフレーム画像を用いて動きベクトルを検出し、検出結果（動きベクトル情報）を制御部１０３に出力する。制御部１０３は動きベクトル情報を一次記憶装置１０４に保存する。
【００３５】
例えば制御部１０３は画像処理部１０６が生成したライブビュー画像を、表示部１０９で表示させるとともに、次の動きベクトル検出で前フレームとして利用できるように一次記憶装置１０４に保存する。一方、画像処理部１０６は、生成したライブビュー画像（現フレーム）と、一次記憶装置１０４に保存されたライブビュー画像（前フレーム）とから動きベクトルを検出することができる。ただし、連続して撮影された２枚のフレーム画像について常に動きベクトルを検出しなくてもよい。また、１フレーム目と３フレーム目、３フレーム目と５フレーム目といったように、１フレームおきに連続する２つのフレーム画像に対して動きベクトルを検出するといった構成としてもよい。例えばフレームレートが高い場合などには、ｎフレーム（ｎは２以上の整数）おきに連続する２つのフレームに対して動きベクトルを検出する構成としてもよい。
【００３６】
２つのフレーム画像から動きベクトルを検出する方法としては、公知のテンプレートマッチング法を用いることができる。２枚のフレーム画像のうち基準とする一方（例えば先に撮影された一方）を基準画像、他方を参照画像とする。そして、基準画像における所定のサイズの矩形領域をテンプレート枠として設定し、参照画像には相関値を算出するための、テンプレート枠より大きな矩形領域をサーチ範囲としてテンプレート枠ごとに設定する。
【００３７】
図４（Ａ）に、本実施形態におけるテンプレート枠の設定例を示す。ここでは、水平に８個、垂直に８個の計６４個のテンプレート枠を設定している。なお、図４（Ａ）の例では垂直方向には間隔を有さず、水平方向に間隔を有するようにテンプレート枠を配置しているが、このような配置方法に限定されない。例えば、水平方向と垂直方向の両方に間隔を有さないように配置してもよいし、水平方向と垂直方向の両方に間隔を有するように配置してもよい。また、図４（Ｂ）に、本実施形態におけるサーチ範囲の設定例を示す。サーチ範囲は例えば、対応するテンプレート枠と中心が一致するように設定する。サーチ範囲の大きさは、検出すべき動きベクトルの最大値、画像処理部１０６の処理能力などの１つ以上に基づいて決定することができる。
【００３８】
そして、図４（Ｂ）の左側に模式的に示すように、画像処理部１０６は、テンプレート枠内の画像（テンプレート画像）を、サーチ範囲内で、例えば左上から右下に向けて所定の移動量（例えば１画素）ずつ移動させる。そして、画像処理部１０６は、個々の位置において、テンプレート画像と、テンプレート画像に対応するサーチ範囲内の部分画像との相関値を算出する。相関値は例えば、対応画素の値の差分絶対値和（ＳＡＤ）であってよい。画像処理部１０６は、最も高い相関を示す相関値が得られた際のテンプレート画像の位置を、テンプレート画像の移動先として検出する。基準画像におけるテンプレート枠の中心はサーチ範囲の中心に対応している。したがって、画像処理部１０６は、サーチ範囲の中心から、移動先として検出されたテンプレート画像の位置の中心へ向かうベクトルを動きベクトルとして検出する。ただし、本実施形態では、動きベクトルの水平成分を水平動きベクトルとして、垂直成分を垂直動きベクトルとして、別個に検出する。
【００３９】
なお、テンプレート枠の配置（サイズ、数、位置）およびサーチ範囲の大きさは、Ｓ７の実行時に制御部１０３が二次記憶装置１０８から読み出して、画像処理部１０６に設定することができる。なお、制御部１０３は、二次記憶装置１０８から読み出した値を初期値として、それ以後は必要に応じて値を変更してもよい。
【００４０】
図４（Ｃ）に、画像処理部１０６が制御部１０３に出力する、動きベクトルの検出結果（動きベクトル情報）のデータ形式の例を模式的に示す。枠番号はテンプレート枠の識別情報であり、例えば左から右に、かつ上から下に０から枠番号が割り当てられる。図４（Ａ）の例に示したテンプレート枠（上から６行目、左から３列目）の場合、枠番号５０が割り当てられる。
【００４１】
テンプレート枠ごとに、検出された水平動きベクトルと垂直動きベクトルの大きさおよび方向が、例えば画素を単位として８ビット固定小数点の形式で表される。検出される動きベクトルの最大値はサーチ範囲の大きさで決まり、本実施形態では±９６[pixel]とする。符号はベクトルの向きを示し、左方向および上方向を負、右方向および下方向を正とする。
【００４２】
エラー番号は動きベクトル検出が正常終了したか否かおよび、異常の種別を示す。エラー番号０は正常終了、０以外は異常終了を示す。エラー番号１は低コントラストによって検出できなかったことを示す。このエラーは、テンプレート画像もしくはサーチ範囲のコントラストが低い場合、どの位置でも高い相関値が得られるために発生する。また、エラー番号２は、繰り返しパターンの検出を示す。このエラーは、テンプレート枠およびサーチ範囲に高周波かつ高コントラストなパターンが含まれている場合に、高い相関値が周期的に得られるために発生する。
【００４３】
図３の説明に戻り、Ｓ８で制御部１０３は、振れセンサ１０５の出力と、二次記憶装置１０８に記憶されている振れセンサ１０５の特性（感度など）とに基づいてデジタルカメラ１００の角速度を方向成分ごとに算出し、一次記憶装置１０４に保存する。ここで制御部１０３は角速度に基づいてデジタルカメラ１００がパンニングされているか否かを判定してもよい。そして、制御部１０３は、パンニングされていると判定されなければ流し撮りアシスト機能をＯＦＦして通常の手振れ補正動作を行い、パンニングされていると判定されれば流し撮りアシスト機能をＯＮするようにしてもよい。
【００４４】
Ｓ９で制御部１０３は撮像光学系１０１から焦点距離情報（画角情報）を取得し、一次記憶装置１０４に保存する。撮像光学系１０１が単焦点であれば、あらかじめ記憶された値を用いればよい。
【００４５】
Ｓ１０で制御部１０３は、動きベクトル解析処理を実行する。動きベクトル解析処理は、Ｓ８で算出した角速度と、Ｓ９で取得した焦点距離情報とを用いて、Ｓ７で得られた動きベクトル情報から、移動被写体の動きベクトルを判別する処理である。動きベクトル解析処理の詳細については後述する。
【００４６】
次に、Ｓ１１で制御部１０３は、被写体代表ベクトル検出処理を実行する。被写体代表ベクトル検出処理は、Ｓ１０で得られた被写体動きベクトル情報と、焦点検出領域（ＡＦ枠）の位置情報とから被写体代表ベクトルを算出する。被写体代表ベクトル検出処理の詳細については後述する。
【００４７】
最後にＳ１２で制御部１０３は、Ｓ１１で算出した被写体代表ベクトルを角速度に変換し、Ｓ８で算出した角速度を考慮して被写体角速度を算出し、被写体角速度算出処理を終了する。
ここで、被写体代表ベクトルを角速度に変換する方法について説明する。図５は、被写体の動きと、撮像素子１０２における被写体像の動きとの関係を、水平方向の成分に関して模式的に示している。
【００４８】
Ｓ１１で算出された被写体代表ベクトルｄの始点と終点に対応する、撮像素子１０２の位置をそれぞれＡ’およびＢ’とし、被写体代表ベクトルｄの大きさを｜ｄ｜[pixel]とする。撮像光学系１０１の主点をＯ、主点Ｏを通る直線が撮像素子１０２の撮像面と直交する位置（光軸が撮像面と直交する位置とも言える）をＣ’とすると、角度Ａ’ＯＢ’は角度Ａ’ＯＣ’と角度Ｂ’ＯＣ’との差分で求められる。したがって、
∠Ａ’ＯＢ’[rad]＝ａｔａｎ（Ｘａ・ｐ／ｆ）[rad]−ａｔａｎ（（Ｘａ−｜ｄ｜）ｐ／ｆ）[rad]
と表すことができる。ここで、Ｘａは位置Ｃ’と位置Ａ’との距離｜Ｃ’−Ａ｜[pixel]を、ｆは撮像光学系１０１の焦点距離[mm]を、ｐは画素ピッチ[mm/pixel]をそれぞれ示す。
【００４９】
動画撮影のフレームレートを１／Ｔ[frame/sec]とすると、基準画像と参照画像の撮影時刻の差はＴ・ｎ[sec]と表される。ここでｎ[frame]は、基準画像と参照画像との間隔であり、基準画像と参照画像が連続するフレームであればｎ＝１、間に１フレーム存在する場合にはｎ＝２である。ここではｎ＝１とする。角速度は角度の時間変化量であるので、被写体の角速度ω＝∠Ａ’ＯＢ’／Ｔ[rad/sec]と表せる。
【００５０】
したがって、被写体代表ベクトルの大きさ｜ｄ｜[pixel]から角速度ω[rad/sec]へは、以下の式（１）で変換することができる。
【数１】
0006577852.tif 000002
この変換は、被写体代表ベクトルの垂直方向成分についても行う。なお、式（１）で得られる角速度の回転方向は、被写体ベクトルｄの向きによって決まる。
【００５１】
（動きベクトル解析処理（Ｓ１０）の詳細）
次に、図３のＳ１０における動きベクトル解析処理の詳細について説明する。図６（Ａ）は動きベクトル解析処理のフローチャートである。
まず、Ｓ１３で制御部１０３はＳ７で検出した動きベクトルの度数分布（ヒストグラム）を作成する。制御部１０３は、一次記憶装置１０４に保存した動きベクトル情報を読み出し、正常に検出された（エラー番号が０の）動きベクトルについて、水平動きベクトルの度数分布と、垂直動きベクトルの度数分布とを生成する。制御部１０３は、生成した２つの度数分布を度数分布情報として一次記憶装置１０４に保存する。
【００５２】
図４（Ｃ）に示したように、本実施形態の動きベクトル情報では、符号付きの８ビット固定小数点の形式で水平および垂直動きベクトルの大きさおよび方向が示されている。制御部１０３は、抽出した動きベクトルの度数分布を生成する際、小数部を切り捨て、かつ絶対値で扱うために最大値の９６を加算した値を用いる。
【００５３】
図７は、水平方向に移動する被写体を撮影するためにデジタルカメラ１００がパンニングされている状態で検出された動きベクトル情報から生成された度数分布の例を模式的に示す。図７（Ａ）が水平動きベクトルの度数分布、図７（Ｂ）が垂直動きベクトルの度数分布の例を示している。
【００５４】
次にＳ１４で制御部１０３は、Ｓ８で算出して一次記憶装置１０４に保存した角速度情報をベクトル量に変換する。制御部１０３は一次記憶装置１０４から角速度情報を読み出す。また、制御部１０３は、Ｓ９で取得して一次記憶装置１０４に保存した撮像光学系１０１の焦点距離情報を一次記憶装置１０４から読み出す。そして、制御部１０３は、角速度をベクトル量に変換して一次記憶装置１０４に保存する。
【００５５】
ここで、再び図５を用いて、角速度をベクトル量に変換する方法について説明する。Ｓ１２において被写体代表ベクトルの大きさを角速度に変換する方法では、デジタルカメラが静止し、被写体が動いているものとして説明したが、ここでは逆に被写体が静止し、デジタルカメラが角速度ωで動いているものとする。ただし、被写体が静止しているため、デジタルカメラの角速度ωは、見かけ上の被写体の角速度ωと等しい。
【００５６】
基準画像撮影時の被写体位置をＡとすると、被写体は撮像素子１０２上の位置Ａ’に結像する。また、参照画像撮影時の被写体位置をＢとすると、被写体は撮像素子１０２上の位置Ｂ’に結像する。デジタルカメラの角速度ωを変換したベクトルの大きさは距離Ａ’Ｂ’（＝｜ｄ｜）である。
【００５７】
時間Ｔとデジタルカメラの角速度ωから、角度ＡＯＢはωＴで表せる。
ここでは、被写体の移動軌跡が光軸と点Ｃ’で直交するものとする。また、簡単のために、被写体の位置Ａと位置Ｂを通る被写体の軌跡と撮像素子１０２の撮像面とは平行（距離が一定）であると仮定する。
上述のとおり、
∠Ａ’ＯＢ’[rad]＝ａｔａｎ（Ｘａ・ｐ／ｆ）[rad]−ａｔａｎ（（Ｘａ−｜ｄ｜）ｐ／ｆ）[rad]
と表すことができる。また、三角形ＡＯＣと三角形Ａ’ＯＣ’は相似であり、三角形ＢＯＣと三角形Ｂ’ＯＣ’も相似であるため、角度ＡＯＢ＝ωＴ＝角度Ａ’ＯＢ’である。したがって、Ｓ８で算出したデジタルカメラ１００の角速度ω[rad/sec]から動きベクトルの大きさ｜ｄ｜[pixel]への変換式は以下の式（２）のように表せる。
【数２】
0006577852.tif 000003
制御部１０３は、デジタルカメラ１００の動きベクトルの大きさ｜ｄ｜を、角速度ωの回転方向に応じた符号を有するベクトル量に変換してから一次記憶装置１０４に保存する。
【００５８】
次にＳ１５で制御部１０３は、被写体動きベクトル判定処理を実行する。制御部１０３はＳ１３で生成した度数分布情報とＳ１４で算出した動きベクトル量ｄとを一次記憶装置１０４から読み出す。そして、動きベクトルの大きさ｜ｄ｜に基づいて、度数分布における背景の動きベクトルの分布と、被写体の動きベクトルの分布とを判定する。判定処理の詳細については後述する。
【００５９】
制御部１０３は、被写体の動きベクトルと判定した動きベクトルを特定する情報（例えば、動きベクトル情報におけるテンプレート枠番号）を被写体動きベクトル情報として一次記憶装置１０４に保存し、動きベクトル解析処理を終了する。
【００６０】
図６（Ｂ）に示すフローチャートを用いて、Ｓ１５の被写体動きベクトル判定処理についてさらに説明する。
まず、Ｓ１６で制御部１０３は、度数分布情報から、背景に関する動きベクトルのピーク（背景ピーク）を検出する。制御部１０３は、Ｓ１４でデジタルカメラ１００の角速度を変換して得たベクトル（以後、カメラベクトルとよぶ）の大きさ｜ｄ｜に基づいて背景ピークを検出する。
【００６１】
背景の動きはデジタルカメラ１００の動きに相当するので、制御部１０３はカメラベクトルの大きさ｜ｄ｜を中心とする探索区間内で、あらかじめ定めた閾値を超える最大度数のベクトル量を背景ピークとして検出する。なお、振れセンサ１０５の精度や計測のタイミングなどの影響で、カメラベクトルの大きさに対応する区間で背景ピークが検出されないこともある。そのため、制御部１０３は、カメラベクトルの大きさを中心とした探索区間内で背景ピークを検出する。探索範囲の広さおよび度数の閾値はあらかじめ決定して二次記憶装置１０８に保存しておくことができる。また、二次記憶装置１０８に保存された値を初期値として、カメラベクトルの大きさ、撮像光学系１０１の焦点距離、またはピーク区間からのずれ量などに応じて変化させてもよい。
【００６２】
次に、Ｓ１７で制御部１０３は、背景分布を検出する。図７（Ａ）および図７（Ｂ）に示したように、動きベクトルの大きさはある広がりをもって分布する。この広がりは例えば、動きベクトルの検出誤差や度数分布を生成する際の丸め誤差によって発生する。制御部１０３は、Ｓ１６で検出した背景ピークから度数分布の左右に度数を調べ、度数がある閾値を下回らない範囲を背景分布として検出する。なお、背景分布を検出するための閾値はあらかじめ決定して二次記憶装置１０８に保存しておくことができる。また、二次記憶装置１０８に保存された値を初期値として、背景ピークの度数や、度数分布の総度数（抽出された動きベクトルの総数）などに応じて変化させてもよい。
【００６３】
図７に示した度数分布の例では、水平動きベクトルの度数分布（図７（Ａ））には、２つの分布（山）が存在する。この場合、Ｓ１６およびＳ１７の処理により、値の大きな区間の分布は背景分布として検出される。
同様に、垂直動きベクトルの度数分布（図７（Ｂ））に存在する１つの分布も、背景分布として検出される。
【００６４】
制御部１０３は、例えばＳ１７で検出した背景分布に該当する動きベクトルを特定する情報（例えば枠番号）を、背景ベクトル情報として一次記憶装置１０４に保存する。制御部１０３は、背景ピークに該当する動きベクトルが判別できるように背景ベクトル情報を保存する。
【００６５】
次に、Ｓ１８で制御部１０３は被写体ピークを検出する。制御部１０３は、Ｓ１７で背景分布と検出された区間を除く区間におけるピークを検出し、閾値を超えるピークを被写体ピークとする。なお、ここで用いる閾値はＳ１６で使用した閾値を流用してもよいし、別の値を用いてもよい。
【００６６】
最後にＳ１９で制御部１０３は、被写体分布を検出する。Ｓ１７における背景分布の検出と同じ方法で検出することができるが、閾値は変更してもよい。
制御部１０３は、Ｓ１９で検出した被写体分布に該当する動きベクトルを特定する情報（例えば枠番号）を、被写体ベクトル情報として一次記憶装置１０４に保存する。制御部１０３は、被写体ピークに該当する動きベクトルが判別できるように被写体ベクトル情報を保存する。
【００６７】
なお、度数分布における動きベクトルの分布が２つの場合、例えばデジタルカメラ１００がパンニングされている場合には、大きさの大きい区間に対する分布を背景分布、大きさの小さい区間に対する分布を被写体分布として分布を判別してもよい。
【００６８】
（被写体動きベクトル検出処理（Ｓ１１）の詳細）
次に、図３のＳ１１における被写体代表ベクトル算出処理の詳細について、図８のフローチャートを用いて説明する。
Ｓ２０で制御部１０３は、以下の手順によって被写体の移動方向を算出する。制御部１０３は、一次記憶装置１０４に保存された被写体動きベクトル情報を参照し、水平方向および垂直方向の被写体ピークに対応する動きベクトル情報を読み出す。また、制御部１０３は、水平方向および垂直方向のカメラベクトルの情報を一次記憶装置１０４から読み出す。
【００６９】
制御部１０３は、被写体の移動方向を以下の式（３）によって算出する。ここで、水平方向の被写体ピークに対応する動きベクトルをＶｐｈ、垂直方向の被写体ピークに対応する動きベクトルをＶｐｖ、水平方向のカメラベクトルをＶｏｈ、垂直方向のカメラベクトルをＶｏｖとする。
【数３】
0006577852.tif 000004
デジタルカメラ１００を右方向にもしくは下方向にパンニングしたときに得られる角速度の符号が正になるとすると、カメラベクトルの符号と逆になるため、式（３）ではカメラベクトルを減算する表記になっている。このように、制御部１０３は、水平方向に対する傾きαを、移動方向を表す値として算出する。
【００７０】
次にＳ２１で制御部１０３は、一次記憶装置１０４から読み出した焦点検出領域の位置情報に基づいて、画像内の位置である注目点を判定する。本実施形態で制御部１０３は、設定されている焦点検出領域との中心座標距離が最短のテンプレート枠の中心座標を注目点とする。
【００７１】
Ｓ２２で制御部１０３（対象ベクトル判定手段）は、一次記憶装置１０４から読み出した被写体動きベクトル情報と、Ｓ２０で算出した被写体の移動方向と、Ｓ２１で判定した注目点とから、対象ベクトルを判定し、抽出する。対象ベクトルの判定処理の詳細については後述する。
【００７２】
最後にＳ２３で制御部１０３は、Ｓ２２で抽出された対象ベクトルに基づいて被写体代表ベクトルを算出する。制御部１０３は、例えば対象ベクトルを平均化して被写体代表ベクトルを算出することができるが、他の方法を用いてもよい。制御部１０３は、算出した被写体代表ベクトルの情報を一次記憶装置１０４へ保存する。
【００７３】
（対象ベクトル判定処理（Ｓ２２）の詳細）
次に、Ｓ２２における対象ベクトル判定処理の詳細について図９を用いて説明する。図９（Ａ）は対象ベクトル判定処理のフローチャートである。
まず、Ｓ２５で制御部１０３は、Ｓ２０で算出した被写体の移動方向に応じて処理を分岐させる。具体的には、制御部１０３は、Ｓ２０で算出された傾きαの絶対値が１未満か否かを判定し、１未満と判定されればＳ２６へ、１未満と判定されなければＳ２７へ処理を進める。
【００７４】
傾きαの絶対値が１未満の場合、制御部１０３は被写体の移動方向を水平方向と見なす。そして、Ｓ２６で制御部１０３は、Ｓ２１で注目点と判定したテンプレート枠と、このテンプレート枠に縦方向に隣接するテンプレート枠のうち、被写体動きベクトルが検出されたものを対象枠として設定する。
【００７５】
一方、傾きαの絶対値が１以上の場合、制御部１０３は被写体の移動方向を垂直方向と見なす。そして、Ｓ２７で制御部１０３は、Ｓ２１で注目点と判定したテンプレート枠と、このテンプレート枠に水平方向に隣接するテンプレート枠のうち、被写体動きベクトルが検出されたものを対象枠として設定する。
【００７６】
対象枠をこのように設定するのは、像高による加速度の変化は、被写体の移動方向と平行する方向では大きく、直交する方向では小さいからである。したがって、このような対象枠の設定により、注目点で検出される動きベクトルと同様の動きベクトル群に基づいて信頼度の高い被写体代表ベクトルを算出することが可能になる。
【００７７】
Ｓ２８で制御部１０３は、Ｓ２６またはＳ２７で設定された対象枠で検出された被写体動きベクトルを対象ベクトルと判定する。制御部１０３は、対象ベクトルの情報を被写体動きベクトル情報から抽出し、一次記憶装置１０４に保存する。
【００７８】
図９（Ｂ）に、傾きαが０（被写体の移動方向が水平方向）の場合の対象ベクトル判定動作を模式的に示す。ここでは、図４（Ａ）と同様にテンプレート枠が配置されているものとする。
図９（Ｂ）において、Ｓ１７で背景ベクトルと判定された動きベクトルが検出されたテンプレート枠を破線で、Ｓ１９で被写体ベクトルと判定された動きベクトルが検出されたテンプレート枠を実線で示す。この例では、αが０で、被写体の移動方向は右から左への水平方向である。
【００７９】
このような場合、図９（Ａ）の対象ベクトル判定処理では、傾きαが０なので、制御部１０３はＳ２５からＳ２６へ処理を進める。Ｓ２６で制御部１０３は、注目点が枠番号３４の中心座標であることから、太枠で示す枠番号１８、２６、３４、４２、５０のテンプレート枠を対象枠として設定する。Ｓ２８で制御部１０３は、対象枠で検出された被写体動きベクトルを対象ベクトルと判定する。そして、制御部１０３は、対象ベクトルの情報を被写体動きベクトル情報から抽出し、一次記憶装置１０４に保存する。
【００８０】
以上説明したように、本実施形態では、検出された被写体ベクトルのうち、焦点検出領域の位置と被写体の移動方向とに応じて選択された被写体ベクトルに基づいて被写体の代表ベクトルを算出する。そのため、焦点検出領域付近の被写体の角速度を表す被写体代表ベクトルを得ることができる。焦点検出領域はユーザが合焦させたい領域であるから、流し撮りを行う場合であれば、静止させたい領域である。したがって、本実施形態で得られる被写体代表ベクトルが表す角速度を打ち消すように振れ補正を行うことにより、ユーザの希望する流し撮り画像の撮影をアシストする機能を実現できる。したがって、焦点検出領域の位置を考慮せず、検出された被写体ベクトル全てを平均化して被写体代表ベクトルとした場合と比較して、顕著な効果を実現できる。
【００８１】
●（第２実施形態）
次に、本発明の第２実施形態について説明する。本実施形態は、被写体動きベクトル検出処理（図８）における注目点判定（Ｓ２１）ならびに対象ベクトル判定処理（Ｓ２２）が第１実施形態と異なる。したがって、デジタルカメラ１００の機能構成や他の処理に関しては説明を省略し、本実施形態に固有の処理を主に説明する。
【００８２】
第１実施形態では注目点判定処理において、焦点検出領域との中心座標間距離が最短であるテンプレート枠の中心座標を注目点としたが、本実施形態では焦点検出領域の中心座標を注目点とする。この場合、注目点を中心座標とするテンプレート枠が存在しない場合、対象枠を設定する基準となるテンプレート枠として、移動方向において注目点の前方に位置するテンプレート枠と後方に位置するテンプレート枠のどちらかを選択することになる。
【００８３】
例えば電車および自動車は、流し撮りの対象となる代表的な移動被写体である。電車および自動車を流し撮りする場合、ユーザは被写体の先頭部分を静止させた画像を得ようとすることが多い。先頭部分とは、電車であれば先頭車両、自動車であればバンパーやボンネットなどである。そのため、本実施形態では、注目点を中心座標とするテンプレート枠が存在しない場合、対象枠を設定する基準となるテンプレート枠として、移動方向において注目点の前方に位置するテンプレート枠を選択する。
【００８４】
図１０（Ａ）は、本実施形態における対象ベクトル判定処理のフローチャートである。
Ｓ３０で制御部１０３は、注目点（ここでは焦点検出領域の中心座標）を包含するテンプレート枠が存在するか否かを判定し、存在すると判定されれば第１実施形態と同様の対象ベクトル判定処理を実行する。
【００８５】
一方、注目点を包含するテンプレート枠が存在すると判定されなければ、制御部１０３は処理をＳ３１に進め、Ｓ２０で算出された傾きαの絶対値が１未満か否かを判定し、１未満と判定されればＳ３２へ、１未満と判定されなければＳ３５へ処理を進める。
【００８６】
傾きαの絶対値が１未満の場合、制御部１０３は被写体の移動方向を水平方向と見なす。そして、Ｓ３２で制御部１０３は、水平方向の被写体ベクトルＶｈ（＝Ｖｐｈ−Ｖｏｈ）の符号が負か否かを判定し、負と判定されればＳ３３へ、負と判定されなければＳ３４へ処理を進める。
【００８７】
水平方向の被写体ベクトルＶｈの符号が負の場合、被写体の移動方向は左方向である。したがって制御部１０３はＳ３３で、注目点の左側で最も近いテンプレート枠の列のうち被写体ベクトルが検出されているテンプレート枠を対象枠に設定する。
水平方向の被写体ベクトルＶｈの符号が正の場合、被写体の移動方向は右方向である。したがって制御部１０３はＳ３４で、注目点の右側で最も近いテンプレート枠の列のうち被写体ベクトルが検出されているテンプレート枠を対象枠に設定する。
【００８８】
図１０（Ｂ）に、傾きαが０（被写体の移動方向が水平方向）で、水平方向の被写体ベクトルＶｈの符号が負の場合の対象ベクトル判定動作を模式的に示す。ここでは、図４（Ａ）と同様にテンプレート枠が配置されているものとする。
注目点は枠番号４５と４６の間に存在し、水平方向の被写体ベクトルＶｈの符号が負であるので、注目点の左側で最も近い枠番号４５の列のうち、被写体ベクトルが検出されている枠番号１３、２１、２９、３７、４５のテンプレート枠が対象枠に設定される。
【００８９】
一方、Ｓ３１で傾きαの絶対値が１未満と判定されなかった場合、制御部１０３は被写体の移動方向を垂直方向と見なす。そして、Ｓ３５で制御部１０３は、垂直方向の被写体ベクトルＶｖ（＝Ｖｐｖ−Ｖｏｖ）の符号が負か否かを判定し、負と判定されればＳ３６へ、負と判定されなければＳ３７へ処理を進める。
【００９０】
垂直方向の被写体ベクトルＶｖの符号が負の場合、被写体の移動方向は上方向である。したがって制御部１０３はＳ３６で、注目点の上側で最も近いテンプレート枠の行のうち被写体ベクトルが検出されているテンプレート枠を対象枠に設定する。
垂直方向の被写体ベクトルＶｖの符号が正の場合、被写体の移動方向は下方向である。したがって制御部１０３はＳ３７で、注目点の下側で最も近いテンプレート枠の行のうち被写体ベクトルが検出されているテンプレート枠を対象枠に設定する。
【００９１】
このように、本実施形態では、注目点を包含するテンプレート枠が存在しない場合、被写体の移動方向の前方に存在するテンプレート枠を基準として対象枠を設定する。そのため、注目点がテンプレート枠内にない場合でも、ユーザの意図に沿った位置の角速度を表す被写体代表ベクトルを算出できる可能性が高い。したがって、本実施形態で得られる被写体代表ベクトルが表す角速度を打ち消すように振れ補正を行うことにより、ユーザの希望する流し撮り画像の撮影をアシストする機能を実現できる。
【００９２】
●（第３実施形態）
次に、本発明の第３実施形態について説明する。本実施形態は、被写体動きベクトル検出処理（図８）における対象ベクトル判定処理（Ｓ２２）が第１および第２実施形態と異なる。したがって、デジタルカメラ１００の機能構成や他の処理に関しては説明を省略し、本実施形態に固有の処理を主に説明する。
【００９３】
第１および第２実施形態では、傾きαの絶対値が１未満の場合には被写体の移動方向を水平方向、１以上の場合には被写体の移動方向を垂直とみなした。これに対し、本実施形態では、傾きαに応じた斜め方向の移動に対する対象ベクトル判定処理を実行する。
【００９４】
図１１（Ａ）は、本実施形態における対象ベクトル判定処理のフローチャートである。
Ｓ４０で制御部１０３は、注目軸を設定する。注目軸は、注目点を通り、被写体の移動方向と直交する直線である。Ｓ２０で算出された傾きαを用いると、注目軸の傾きβは以下の式（４）で表わされる。
【数４】
0006577852.tif 000005
また、注目軸は注目点を通る直線であることから、注目点のｘｙ座標を（Ｉｘ，Ｉｙ）とすると、注目軸を表す一次関数の切片ξは以下の式（５）で表わされる。
【数５】
0006577852.tif 000006
【００９５】
Ｓ４１で制御部１０３は、テンプレート枠の１つ（枠番号ｉとする）について、中心から注目軸までの距離を算出する。枠番号ｉのテンプレート枠の中心座標を（Ｃｘ，Ｃｙ）とすると、距離γｉは以下の式（６）で表わされる。
【数６】
0006577852.tif 000007
なお、角度θはｔａｎ-1αで求まる。
【００９６】
Ｓ４２で制御部１０３は、枠番号ｉのテンプレート枠が注目軸上にあるか否かを判定する。制御部１０３は例えば、距離γｉの絶対値が、テンプレート枠の大きさ（例えば対角線の１／２）未満であれば、枠番号ｉのテンプレート枠が注目軸上にあると判定する。
【００９７】
テンプレート枠が注目軸上にあると判定された場合、制御部１０３は処理をＳ４３へ進め、枠番号ｉのテンプレート枠を第１対象枠として設定し、処理をＳ４６に進める。第１対象枠で検出された動きベクトルは、後述する第２対象枠で検出された動きベクトルよりも、被写体代表ベクトルの算出に用いられる際の寄与を大きくする。例えば、対象ベクトルを重み付け平均して被写体代表ベクトルを算出する場合、第１対象枠で検出された対象ベクトルは、第２対象枠で検出された対象ベクトルよりも重み（係数）を大きくする。一例として、１００％の重み（係数１．０）とする。
【００９８】
一方、枠番号ｉのテンプレート枠が注目軸上にあると判断されない場合、制御部１０３は処理をＳ４４に進め、距離γｉが閾値未満かどうかを判定する。なお、第２実施形態と同様、被写体の移動方向の前方に存在するテンプレート枠を対象枠とする場合には、γｉの符号が水平方向の被写体ベクトルＶｈの符号と同じ符号を持つγｉに対して閾値との比較を行う。したがって、水平方向の被写体ベクトルＶｈと符号の異なるγｉについてはＳ４４をスキップして処理をＳ４６へ進めてもよい。
【００９９】
なお、Ｓ４４で用いる閾値はあらかじめ二次記憶装置１０８に保存しておくことができる。また、二次記憶装置１０８に保存された閾値を、撮影時における焦点距離、露光時間、および被写体ピークから算出した大まかな被写体角速度の１つ以上に基づいて変更して用いてもよい。
【０１００】
Ｓ４４で距離γｉが閾値未満と判定された場合、制御部１０３は処理をＳ４５に進め、枠番号ｉのテンプレート枠を第２対象枠として設定して処理をＳ４６に進める。第２対象枠で検出された動きベクトルは、第１対象枠で検出された動きベクトルよりも、被写体代表ベクトルの算出に用いられる際の寄与を小さくする。例えば、対象ベクトルを重み付け平均して被写体代表ベクトルを算出する場合、第２対象枠で検出された対象ベクトルは、第１対象枠で検出された対象ベクトルよりも重み（係数）を小さくする。一例として、５０％の重み（係数０．５）とする。
Ｓ４４で距離γｉが閾値未満と判定されない場合、制御部１０３は処理をＳ４６に進める。
【０１０１】
Ｓ４６で制御部１０３は、枠番号ｉに１を加算し、処理をＳ４７に進める。Ｓ４７で制御部１０３は、枠番号ｉが６４（テンプレート枠の個数）未満か否かを判定し、６４未満と判定されれば処理をＳ４１に戻し、６４未満と判定されなければ処理を終了する。
【０１０２】
図１１（Ｂ）に本実施形態における対象ベクトル判定の例を模式的に示す。この例では、枠番号０の中心座標を（３２，１６）、テンプレート枠の１辺の長さおよび水平方向の間隔を８、注目点の座標を（９２，３６）、傾きαが０．５としている。この場合、注目軸の傾きβは−２、切片ξは２２０となり、式（６）のｃｏｓθは０．８９４４である。
【０１０３】
図１２に、図１１（Ｂ）の例における一部のテンプレート枠の中心座標と、注目軸との距離γｉとを示す。例えば、枠番号３５は注目軸が中心座標を通るため、距離γｉは０である。図１１（Ｂ）においては、太実線で示した枠番号１２、２７、３５、４３のテンプレート枠が第１対象枠として設定され、太点線で示した枠番号１１、１９、４２、５０のテンプレート枠が第２対象枠として設定される。なお、Ｓ４４で用いる閾値は１２とした。
【０１０４】
このように、本実施形態では、注目点を包含するテンプレート枠が存在しない場合、被写体の移動方向の前方に存在するテンプレート枠を基準として対象枠を設定する。そのため、注目点がテンプレート枠内にない場合でも、ユーザの意図に沿った位置の角速度を表す被写体代表ベクトルを算出できる可能性が高い。したがって、本実施形態で得られる被写体代表ベクトルが表す角速度を打ち消すように振れ補正を行うことにより、ユーザの希望する流し撮り画像の撮影をアシストする機能を実現できる。
【０１０５】
このように、本実施形態では、被写体の移動方向と直交し、注目点を通る注目軸からの距離に基づいて対象枠を設定するようにした。そのため、被写体が斜めに移動している場合でも、注目点およびその近傍の被写体の角速度を表す動きベクトルから被写体代表ベクトルを算出できる。そのため、本実施形態で得られる被写体代表ベクトルが表す角速度を打ち消すようにシフトレンズや撮像素子を駆動したり、撮像素子から画像を読み出す範囲をシフトしたりすることにより、ユーザの希望する流し撮り画像の撮影をアシストする機能を実現できる。
【０１０６】
（その他の実施形態）
上述の実施形態では注目点判定の基準として、基準画像または参照画像の撮影時に用いられた焦点検出領域の位置を用いたが、他の基準を用いてもよい。例えば、基準画像または参照画像で検出された顔領域の位置や、基準画像または参照画像で認識された人物の顔領域の位置などを用いてもよい。また、操作部１１０を通じてユーザから指定された位置を用いてもよい。また、基準画像または参照画像の距離マップまたはデプスマップに基づく位置いて、例えば、距離が最も近い位置を注目点としてもよい。
【０１０７】
また、上述の実施形態においては、説明および理解を容易にするため、常に流し撮りアシスト機能を有効とする場合について述べた。しかしながら、デジタルカメラ１００がパンニングされていると判定された場合だけ流し撮りアシスト機能を有効としてもよい。この場合、デジタルカメラ１００がパンニングされていると判定されない場合には、背景ベクトルから得られるデジタルカメラ１００の角速度に基づいて手振れ補正を行うことができる。
【０１０８】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１０９】
上述の実施形態は本発明の理解を提供するための具体的な構成の例示であり、いかなる意味においても実施形態に記載された構成に本発明を限定する意図はない。特許請求の範囲の記載に包含される変形例および代替例もまた本発明に含まれる。
【符号の説明】
【０１１０】
１００…デジタルカメラ、１０１…光学系、１０２…撮像素子、１０３…制御部、１０４…一次記憶装置、１０５…振れセンサ、１０６…画像処理部、１０８…二次記憶装置、１０９…表示部、１１０…操作部
【図１】
0006577852.tif 000008
【図２】
0006577852.tif 000009
【図３】
0006577852.tif 000010
【図４】
0006577852.tif 000011
【図５】
0006577852.tif 000012
【図６】
0006577852.tif 000013
【図７】
0006577852.tif 000014
【図８】
0006577852.tif 000015
【図９】
0006577852.tif 000016
【図１０】
0006577852.tif 000017
【図１１】
0006577852.tif 000018
【図１２】
0006577852.tif 000019