(57)【特許請求の範囲】
【請求項１】
撮像装置のパンニング速度を検出するパンニング検出手段と、
第１方向、及び、該第１方向と直交する第２方向に配列された複数の検出枠が撮像面に設定された撮像手段により取得される複数の画像から動きベクトルを検出するベクトル検出手段と、
前記検出枠から得られる動きベクトルのうち被写体の動きベクトルを判定する判定手段と、
前記画像のうち使用者が着目する着目点を特定する特定手段と、
前記画像のうち前記被写体の動きベクトル及び前記着目点に応じた画像領域を設定し、前記画像領域に基づいて、前記被写体の移動速度と前記撮像装置のパンニング速度の差を補正するように、光学素子を駆動する制御手段と、
前記被写体の動きベクトルに基づいて前記被写体の移動方向を算出する算出手段と、を有し、
前記制御手段は、前記第１方向と前記移動方向との間の角度が前記第２方向と前記移動方向との間の角度より小さい場合に、前記第１方向より前記第２方向に個数が多く連続した検出枠から得られる動きベクトルに基づいて前記光学素子を駆動することを特徴とする撮像装置。
【請求項２】
前記制御手段は、前記第２方向にある動きベクトルがエラーベクトルのみである場合は、前記画像領域における、前記着目点に最も近い位置に対し前記第１方向にある動きベクトルに基づいて前記光学素子を駆動することを特徴とする請求項１に記載の撮像装置。
【請求項３】
撮像装置のパンニング速度を検出するパンニング検出手段と、
第１方向、及び、該第１方向と直交する第２方向に配列された複数の検出枠が撮像面に設定された撮像手段により取得される複数の画像から動きベクトルを検出するベクトル検出手段と、
前記検出枠から得られる動きベクトルのうち被写体の動きベクトルを判定する判定手段と、
前記画像のうち使用者が着目する着目点を特定する特定手段と、
前記画像のうち前記被写体の動きベクトル及び前記着目点に応じた画像領域を設定し、前記画像領域に基づいて、前記被写体の移動速度と前記撮像装置のパンニング速度の差を補正するように、光学素子を駆動する制御手段と、
前記被写体の動きベクトルに基づいて前記被写体の移動方向を算出する算出手段と、を有し、
前記画像領域は、前記着目点に最も近い位置で検出される動きベクトルとの差が第１閾値より小さい動きベクトルを含んでおり、
前記第１閾値は、基準値に重み付け係数が掛けられた値であり、
前記重み付け係数は、第１方向と該第１方向と直交する第２方向とで異なることを特徴とする撮像装置。
【請求項４】
前記第１方向に対する重み付け係数は、前記第１方向と前記移動方向との間の角度が前記第２方向と前記移動方向との間の角度より小さい場合に、前記第２方向に対する重み付け係数よりも小さいことを特徴とする請求項３に記載の撮像装置。
【請求項５】
前記制御手段は、
前記第１閾値より小さい動きベクトルを含めるように画像領域を設定した際に、該画像領域の大きさが所定の大きさより小さくなる場合は、前記差が前記第１閾値よりも大きな第２閾値より小さい動きベクトルを含めるように画像領域を設定することを特徴とする請求項３または４に記載の撮像装置。
【請求項６】
前記第２閾値は、基準値に重み付け係数が掛けられた値であり、
前記重み付け係数は、第１方向と該第１方向と直交する第２方向とで異なることを特徴とする請求項５に記載の撮像装置。
【請求項７】
前記第１方向に対する重み付け係数は、前記第１方向と前記移動方向との間の角度が前記第２方向と前記移動方向との間の角度より小さい場合に、前記第２方向に対する重み付け係数よりも小さいことを特徴とする請求項６に記載の撮像装置。
【請求項８】
前記特定手段は、測距位置情報に基づいて前記着目点を特定することを特徴とする請求項１ないし７のいずれか１項に記載の撮像装置。
【請求項９】
前記特定手段は、前記被写体の顔位置情報に基づいて前記着目点を特定することを特徴とする請求項１ないし７のいずれか１項に記載の撮像装置。
【請求項１０】
撮像装置のパンニング速度を検出するパンニング速度検出ステップと、
第１方向、及び、該第１方向と直交する第２方向に配列された複数の検出枠が撮像面に設定された撮像手段により取得される複数の画像から動きベクトルを検出する動きベクトル検出ステップと、
前記検出枠から得られる動きベクトルのうち被写体の動きベクトルを判定する判定ステップと、
前記画像のうち使用者が着目する着目点を特定する特定ステップと、
前記画像のうち前記被写体の動きベクトル及び前記着目点に応じた画像領域を設定し、前記画像領域に基づいて、前記被写体の移動速度と前記撮像装置のパンニング速度の差を補正するように、光学素子を駆動する制御ステップと、
前記被写体の動きベクトルに基づいて前記被写体の移動方向を算出する算出ステップと、を有し、
前記制御ステップは、前記第１方向と前記移動方向との間の角度が前記第２方向と前記移動方向との間の角度より小さい場合に、前記第１方向より前記第２方向に個数が多く連続した検出枠から得られる動きベクトルに基づいて前記光学素子を駆動することを特徴とする撮像装置の制御方法。
【請求項１１】
撮像装置のパンニング速度を検出するパンニング速度検出ステップと、
第１方向、及び、該第１方向と直交する第２方向に配列された複数の検出枠が撮像面に設定された撮像手段により取得される複数の画像から動きベクトルを検出する動きベクトル検出ステップと、
前記検出枠から得られる動きベクトルのうち被写体の動きベクトルを判定する判定ステップと、
前記画像のうち使用者が着目する着目点を特定する特定ステップと、
前記画像のうち前記被写体の動きベクトル及び前記着目点に応じた画像領域を設定し、前記画像領域に基づいて、前記被写体の移動速度と前記撮像装置のパンニング速度の差を補正するように、光学素子を駆動する制御ステップと、
前記被写体の動きベクトルに基づいて前記被写体の移動方向を算出する算出ステップと、を有し、
前記画像領域は、前記着目点に最も近い位置で検出される動きベクトルとの差が第１閾値より小さい動きベクトルを含んでおり、
前記第１閾値は、基準値に重み付け係数が掛けられた値であり、
前記重み付け係数は、第１方向と該第１方向と直交する第２方向とで異なることを特徴とする撮像装置の制御方法。
【請求項１２】
請求項１０または１１に記載の制御方法の各ステップが記述されたコンピュータで実行可能なプログラム。
【請求項１３】
コンピュータに、請求項１２に記載の制御方法の各ステップを実行させるためのプログラムが記憶されたコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置に関し、特にユーザの流し撮り撮影の補助を行う像振れ補正装置に関する。
【背景技術】
【０００２】
ユーザ（撮影者）の流し撮り撮影の補助を行う技術として、像振れ補正装置を用いる手法が従来から提案されている。
【０００３】
特許文献１では、流し撮り手ブレ補正モードにおいて、撮像画面内で検出された被写体の数あるいはサイズのうち少なくとも一方に基づいて自動レリーズ時間および露光時間を算出する技術について開示がある。
【０００４】
特許文献２では、ジャイロセンサのブレ検出と画像の動きベクトルから被写体の角速度を検出し、検出された角速度から被写体を画像中央に位置させるための補正量を算出し、光軸シフトレンズの移動で補正して流し撮り撮影を行う技術について開示がある。
【０００５】
特許文献３では、画面の動きベクトルから被写体と背景を判別するために、入力画像の各部に設定した特徴点で検出される動きベクトルをヒストグラム化して分類する技術について開示がある。この特許文献３では、特定個所から得られた動きベクトルを検出して特定個所の動きを検出する場合に、過去の分類結果を示す分類情報を各特徴点に設定し、この分類情報を参考にして動きベクトルを分類している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２４５７７４号公報
【特許文献２】特開２００６−３１７８４８号公報
【特許文献３】特開２００７−３３６２３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述の特許文献に開示された従来技術では、求められた被写体の角速度は、被写体のある一部分に相当するが、必ずしもそれが撮影者が止めたい場所であるとは限らない。なぜなら、被写体の角速度は画角内で必ずしも一意の値を持たないからである。前提として流し撮り撮影を補助する像振れ補正装置で対象とする被写体は等速直線運動に限定している。ここで、等速直線運動する被写体の角速度は一定ではないことがわかっている。図２２に等速直線運動する被写体の時間と角速度の関係を示したグラフを示す。図２２に示すとおり、時刻が０のときの角速度が最大になる。これは時刻が０のときに被写体と撮影者との距離が最短になることと被写体の軌跡と撮影者の視線が直交するため被写体の速度が見かけ上最大になることを示している。また、図２２に示すとおり、時刻が経つにつれて角速度は小さくなっていく。これは時刻が経つにつれて被写体と撮影者の距離が離れていくことと被写体の見かけ上の速度が小さくなっていくことを示している。次に、図２２の点線で示したある時刻のカメラの画角を図２３に示す。図２３はある時刻における画角内の像高と角速度の関係を示したグラフである。従来技術では、動きベクトルの検出位置を画角内に一様に設定し、被写体と背景を判別し、像高に依らずそれぞれのベクトルを平均化することで被写体および背景の動きベクトルを算出する。このようにして算出された動きベクトルから求められた被写体の角速度はおおよそ画角中心の角速度になることが多い。一方、例えば撮影者が被写体の左側に測距位置を設けていた場合には流し撮りにおいて撮影者が被写体の動きを止めたいと希望するのは測距位置だと考えられる。つまり、被写体の角速度として算出すべきなのは測距位置の角速度である。しかしながら、従来の方法では、測距位置の角速度を求めることはできず、結果として撮影者が止めたいと思われる場所がぶれた画像が得られてしまう。さらに測距位置にコントラストの低い被写体や繰り返しパターンを含む被写体があると動きベクトルを正しく検出できないために、さらに画像のぶれ具合が大きくなってしまう。
【０００８】
そこで、本発明の目的は、上記課題を鑑み、流し撮り撮影の補助に有利な撮像制御を実現することである。
【課題を解決するための手段】
【０００９】
本発明の一側面としての撮像装置は、該撮像装置のパンニング速度を検出するパンニング検出手段と、第１方向、及び、該第１方向と直交する第２方向に配列された複数の検出枠が撮像面に設定された撮像手段により取得される複数の画像から動きベクトルを検出するベクトル検出手段と、前記検出枠から得られる動きベクトルのうち被写体の動きベクトルを判定する判定手段と、前記画像のうち使用者が着目する着目点を特定する特定手段と、前記画像のうち前記被写体の動きベクトル及び前記着目点に応じた画像領域を設定し、前記画像領域に基づいて、前記被写体の移動速度と前記撮像装置のパンニング速度の差を補正するように、光学素子を駆動する制御手段と、前記被写体の動きベクトルに基づいて前記被写体の移動方向を算出する算出手段と、を有し、前記制御手段は、前記第１方向と前記移動方向との間の角度が前記第２方向と前記移動方向との間の角度より小さい場合に、前記第１方向より前記第２方向に個数が多く連続した検出枠から得られる動きベクトルに基づいて前記光学素子を駆動することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、流し撮り撮影の補助に有利な像振れ補正制御を実現することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に共通する被写体動きベクトル算出部のブロック構成図である。
【図２】本発明の実施形態に共通する撮像装置のブロック構成図である。
【図３】本発明の実施形態に共通する動きベクトル検出部のブロック構成図である。
【図４】本発明の実施形態に共通する動きベクトル解析部のブロック構成図である。
【図５】本発明の実施形態に共通する注目画像位置算出部のブロック構成図である。
【図６】本発明の実施形態に共通する流し撮りアシスト処理のフローチャートである。
【図７】本発明の実施形態に共通する被写体角速度算出処理のフローチャートである。
【図８】本発明の実施形態に共通する動きベクトル解析処理のフローチャートである。
【図９】本発明の実施形態に共通する被写体分布検出処理のフローチャートである。
【図１０】本発明の実施形態に共通する角速度とベクトル量の関係を示す図である。
【図１１】本発明の実施形態に共通する動きベクトルの検出イメージを示す図である。
【図１２】本発明の実施形態に共通する動きベクトルの検出結果を示す表である。
【図１３】本発明の実施形態に共通する度数分布のイメージを示す図である。
【図１４】本発明の実施形体に共通する注目画像位置算出処理のフローチャートである。
【図１５】第一の実施例における注目画像の決定方法を示す図である。
【図１６】本発明の実施形態に共通する注目画像位置の検出イメージを示す図である。
【図１７】第一の実施例における対象ベクトル判定処理のフローチャートである。
【図１８】第一の実施例における対象ベクトル判定処理のフローチャートである。
【図１９】第一の実施例における対象ベクトル判定のイメージを示す図である。
【図２０】第二の実施例における注目画像の決定方法を示す図である。
【図２１】第二の実施例における対象ベクトル判定のイメージを示す図である。
【図２２】等速直線運動する被写体の時間と角速度の関係を示したグラフである。
【図２３】画角内の像高と角速度の関係を示したグラフである。
【発明を実施するための形態】
【００１２】
以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
【実施例１】
【００１３】
本発明の第１の実施例による、動きベクトル検出装置について説明する。
【００１４】
まず、図２は本発明の実施形態に共通する撮像装置のブロック構成図である。撮像装置１００は、デジタルカメラ、デジタルビデオカメラのようなカメラはもとより、カメラ機能付き携帯電話、カメラ付きコンピュータなど、カメラ機能を備える任意の電子機器であっても良い。光学系１０１は、レンズ、シャッター、絞りから構成されており、ＣＰＵ１０３の制御によって被写体からの光を撮像素子１０２に結像させる。また、光学系１０１は、ユーザの流し撮り撮影の補助を行う際に用いられる像振れ補正レンズ（光学素子）を備えている。撮像素子１０２（撮像手段）は、ＣＣＤイメージセンサ、ＣＭＯＳイメージセンサなどで構成され、光学系１０１を通って結像した光を画像信号に変換する。
【００１５】
ジャイロセンサなどの角速度センサ１０５は、撮像装置１００の移動量を表す角速度を検出し、電気信号として変換してＣＰＵ１０３へ伝達する。なお、角速度センサ１０５は光学系１０１に含めてもよい。ＣＰＵ１０３は、入力された信号や予め記憶されたプログラムに従い、撮像装置１００を構成する各部を制御することで、撮像装置１００の機能を実現させる。一次記憶装置１０４は、例えばＲＡＭのような揮発性装置であり、一時的なデータを記憶し、ＣＰＵ１０３の作業用に使われる。また、一次記憶装置１０４に記憶されている情報は、画像処理装置１０６で利用されたり、記録媒体１０７へ記録されたりもする。二次記憶装置１０８は、例えばＥＥＰＲＯＭのような不揮発性記憶装置であり、撮像装置１００を制御するためのプログラム（ファームウェア）や各種の設定情報を記憶し、ＣＰＵ１０３によって利用される。
【００１６】
記録媒体１０７は、一次記憶装置１０４に記憶されている、撮影により得られた画像のデータなどを記録する。なお、記録媒体１０７は、例えば半導体メモリカードのように撮像装置１００から取り外し可能であり、記録されたデータはパーソナルコンピュータなどに装着してデータを読み出すことが可能である。つまり、撮像装置１００は、記録媒体１０７の着脱機構及び読み書き機能を有する。表示部１０９は、撮影時のビューファインダー画像の表示、撮影した画像の表示、対話的な操作のためのＧＵＩ画像などの表示を行う。操作部１１０は、ユーザの操作を受け付けてＣＰＵ１０３へ入力情報を伝達する入力デバイス群であり、例えばボタン、レバー、タッチパネル等はもちろん、音声や視線などを用いた入力機器であっても良い。
【００１７】
なお、本実施形態の撮像装置１００は、画像処理装置１０６が撮像画像に適用する画像処理のパターンを複数有し、パターンを撮像モードとして操作部１１０から設定可能である。画像処理装置１０６は、いわゆる現像処理と呼ばれる画像処理をはじめ、撮影モードに応じた色調の調整なども行う。なお、画像処理装置１０６の機能の少なくとも一部は、ＣＰＵ１０３がソフトウェア的に実現しても良い。
【００１８】
ここで、流し撮り撮影を行う際に、被写体の移動速度と撮影者のパンニング速度の差を吸収するように像振れ補正レンズを駆動させる像振れ補正装置（以下、流し撮りアシスト装置とも呼ぶ）におけるＣＰＵ１０３の処理について説明する。図６は流し撮りアシスト機能を実現するための処理を示したフローチャートである。ＣＰＵ１０３は操作部１１０からの入力、例えば電源ボタンやライブビュー開始指示等を受けて本処理を開始する。
【００１９】
まず、ＣＰＵ１０３はステップＳ１で光学系１０１および撮像素子１０２を制御し画像を取得する。取得された画像は一時記憶装置１０４へ保存される。また画像処理装置１０６によって処理され表示部１０９へ転送されることでビューファインダー画像として表示される。
【００２０】
次に、ＣＰＵ１０３はステップＳ２で被写体の角速度を算出する。算出された角速度は光学系１０１に転送され被写体のぶれを補正する際に使用される。なお、ステップＳ２で角速度の算出に利用された検出枠の位置を表示部１０９に表示させてもよい。
【００２１】
次に、ＣＰＵ１０３はステップＳ３で撮影するかどうかの判断を行う。なお、撮影するかどうかの判断は操作部１１０によってユーザからの撮影指示が出されているかによって判断してもよい。また、ＣＰＵ１０３が撮像素子１０２から得られた画像を解析した結果を用いて判断してもよい。
【００２２】
撮影を行うと判断した場合、ＣＰＵ１０３はステップＳ４で露光およびブレ補正を行う。露光ではＣＰＵ１０３は光学系１０１を制御することによって光学系１０１を通って撮像素子１０２に取り込まれる光量を調節する。ブレ補正では、ＣＰＵ１０３が角速度センサ１０５から取得した角速度とステップＳ２で算出された被写体の角速度の差分から被写体のブレがなくなるように光学系１０１を制御する。すなわち、ＣＰＵ１０３は、被写体の動きベクトル（または角速度）に基づいて、光学素子（ここでは、像振れ補正レンズ）を駆動して像振れ補正制御を行う制御手段として機能する。本実施例では、ユーザが流し撮り撮影を行っている際に、該流し撮り撮影の補助を行うためにも像振れ補正制御が実行される。なお、光学系１０１が角速度センサを備えている場合、ブレ補正は光学系１０１が自ら制御してもよい。
【００２３】
また、本実施形態では、像振れ補正として、像振れ補正レンズを光軸に垂直な面内で移動させる、いわゆる光学防振を用いている。しかし、本発明の像振れ補正は光学防振に限らず、撮像素子を光軸に垂直な面内で移動させることで振れ補正を行ってもよい。また、撮像素子が出力する各撮影フレームの切り出し位置を変更することで振れの影響を軽減させる電子防振を用いてもよい。さらに、それらの組み合わせで補正を行ってもよい。すなわち、像振れ補正を行うために駆動される光学素子は、像振れ補正レンズであってもよいし、撮像素子であってもよいし、その両方であってもよい。
【００２４】
次に、露光が終了するとＣＰＵ１０３はステップＳ５で画像処理装置１０６を制御し、撮像素子１０２から得られた画像の現像処理を行う。
【００２５】
次に、ＣＰＵ１０３はステップＳ６で現像処理された画像を記憶媒体１０７に保存し、ステップＳ１に戻る。
【００２６】
一方、ステップＳ３で撮影を行わないと判断した場合、ＣＰＵ１０３はステップＳ３で撮影を行うと判断するまで、ステップＳ１とステップＳ２の処理を繰り返す。
【００２７】
ここで、図７を用いてステップＳ２におけるＣＰＵ１０３の被写体角速度算出処理について説明する。図７は被写体角速度算出処理のフローチャートを示している。
【００２８】
まず、被写体角速度算出処理が実行されると、ＣＰＵ１０３はステップＳ７で撮像素子１０２から得られた画像を用いて動きベクトルの算出を行い、動きベクトル情報として一時記憶装置１０４に保存する。
【００２９】
次に、ＣＰＵ１０３はステップＳ８で角速度センサ１０５から角速度情報の取得を行い、一時記憶装置１０４に保存する。
【００３０】
次に、ＣＰＵ１０３はステップＳ９で光学系１０１から焦点距離情報の取得を行い、一時記憶装置１０４に保存する。
【００３１】
次に、ＣＰＵ１０３はステップＳ１０で動きベクトル解析を行う。動きベクトル解析処理では、ステップＳ８で得られた角速度情報とステップＳ９で得られた焦点距離情報を用いて、ステップＳ７で得られた動きベクトル情報から被写体動きベクトル情報を作成する。
【００３２】
次に、ＣＰＵ１０３はステップＳ１１で被写体動きベクトル算出を行う。被写体動きベクトル算出処理ではステップＳ１０で得られた被写体動きベクトル情報と測距位置情報から被写体動きベクトルを算出する。
【００３３】
次に、ＣＰＵ１０３はステップＳ１２で注目画像位置算出を行う。注目画像位置算出処理ではステップＳ１で得られた画像とステップＳ７で得られた動きベクトル情報と測距位置情報から注目画像位置を算出する。
【００３４】
最後に、ＣＰＵ１０３はステップＳ１３でステップＳ１１で得られた被写体動きベクトルを角速度に変換し、角速度情報とあわせて被写体角速度を算出する。
【００３５】
ここで、図３を用いてステップＳ７における動きベクトル算出処理について説明する。図３はステップＳ７の動きベクトル算出を行うための動きベクトル検出部１０３ａのブロック図を示している。動きベクトル検出部１０３ａは、ＣＰＵ１０３の内部に設けられ、撮像素子１０２により取得される複数の画像から動きベクトルを検出する検出手段としての機能を有する。
【００３６】
まず、現フレーム２００はある時刻にステップＳ１において撮像素子１０２によって得られた画像である。現フレーム２００は次の前フレーム２０４として一時記憶装置１０４に保存され、次フレームの処理に用いられる。
【００３７】
一方、前フレーム２０１はある時刻より１フレーム前にステップＳ１において撮像素子１０２によって得られた画像である。前フレーム２０１は次の前フレームとして一時記憶装置１０４に保存されており、ＣＰＵ１０３がステップＳ７で動きベクトルの算出を行う際に一時記憶装置１０４から読み出される。
【００３８】
次に、動きベクトル算出部２０２は現フレーム２００と前フレーム２０１を受け取り、フレーム間の動きベクトルを算出する。
【００３９】
最後に、動きベクトル算出部２０２によって算出された動きベクトルは動きベクトル情報２０３として一時記憶装置１０４に保存される。
【００４０】
ここで、図１１と図１２を用いて動きベクトル算出部２０２の処理について説明する。図１１は一般的なテンプレートマッチング法を用いた動きベクトルの検出方法を示している。また、図１２は、検出された動きベクトルの結果の例を示している。
【００４１】
まず、図１１（Ａ）に示すとおり、前フレーム画像において画面内に水平に８個、垂直に８個の計６４個のテンプレート枠を配置し、各テンプレート枠内の画像をテンプレート画像として取得する。
【００４２】
次に、図１１（Ｂ）に示すとおり、現フレーム画像においてサーチ範囲を設定する。サーチ範囲の中心はテンプレート枠の中心に一致するように設定する。動きベクトルは設定されたサーチ範囲内のうち左上から右下に向けて１画素ずつテンプレート画像と現フレームを比較し、もっとも相関値の高い位置を検索することで得られる。
【００４３】
なお、テンプレート枠のサイズや配置する枠の数、サーチ範囲の大きさはステップＳ７が実行されるときにＣＰＵ１０３が二次記憶装置１０８から読み出した値を設定してもよい。もしくは二次記憶装置１０８から読み出した値を初期値として設定しておき、それ以後はステップＳ７が実行されるたびに値を変更してもよい。また、本実施例では水平方向の枠の配置において、枠と枠の間に隙間を空けたが、このような配置方法に限定するものではなく、例えば、垂直方向と同様に隙間を空けないように配置してもよいし、もしくは垂直方向も隙間を空けて配置してもよい。
【００４４】
一方、図１２に示された枠番号はベクトルが検出されたテンプレート枠を示しており、左上から順に番号が振られている。図１１で例に挙げたテンプレート枠の場合、枠番号は５０となる。
【００４５】
また、水平動きベクトルと垂直動きベクトルは前フレーム画像で設定されたテンプレート枠の位置と現フレーム画像で最も相関値の高い位置との差分によって得られた数値であり、水平と垂直それぞれで算出される。ベクトル量の単位はｐｉｘｅｌであり、８ビット固定小数点で表される。最大値はサーチ範囲の大きさで決まっており、本実施例では±９６ピクセルとする。符号は移動した方向を示しており、水平方向は左に移動しているので正の数値を取り、動きベクトル量は４．５ｐｉｘｅｌである。また垂直方向は下に移動しているので負の数値を取り、動きベクトル量は−３．２５ｐｉｘｅｌである。
【００４６】
最後に、エラー番号はベクトル検出が正常に行われたかどうかを示しており、０は正常終了を意味している。例えば、枠番号５１ではエラー番号が１となっている。これは低コントラストによって検出できなかったことを示している。低コントラストはテンプレート画像もしくはサーチ範囲にコントラストがなく、どの位置でも相関値が高く得られてしまうために発生する。一方、枠番号５２ではエラー番号が２となっている。これは繰り返しパターンを検出したことを示している。繰り返しパターンはテンプレート枠およびサーチ範囲に高周波な高コントラストなパターンが含まれている場合に、相関値の高い位置が周期的に得られることで発生する。
【００４７】
次に図１０を用いてステップＳ１３におけるベクトルから角速度への変換について説明する。図１０は被写体の動きと撮像素子１０２における被写体位置の動きとの関係を示している。
【００４８】
まず、ステップＳ１１で算出されたベクトル量をｄとし、撮像素子１０２の位置Ａ’をステップＳ１１で算出されたベクトルの検出された位置とする。また、撮像素子１０２の位置Ｂ’を位置Ａ’がｄだけ移動した位置とすると、角度Ａ’ＯＢ’は角度Ａ’ＯＣ’と角度Ｂ’ＯＣ’との差分で求められ、ａｔａｎ（Ｘａ／ｆ）−ａｔａｎ（（Ｘａ−ｄ）／ｆ）と表せる。なお、Ｃ’は撮像素子１０２の中心位置、Ｘａは位置Ａ’から位置Ｃ’までの距離を表している。
【００４９】
次に、前フレーム画像を取得してから現フレーム画像を取得するまでの時間をＴとする。ちなみに、Ｔの逆数はフレームレートとなる。このとき、角速度は角度の時間変化量であるので、被写体の角速度ωは角度Ａ’ＯＢ’÷Ｔと表せる。
【００５０】
ここから動きベクトル量ｄから角速度ωへの変換式は以下の式１のように表せる。
【００５１】
【数１】
0006671994.tif 000002
【００５２】
次に、図８および図４を用いてステップＳ１０におけるＣＰＵ１０３の動きベクトル解析処理について説明する。図８は動きベクトル解析処理のフローチャートである。また、図４は動きベクトル解析部１０３ｂのブロック図である。動きベクトル解析部１０３ｂは、ＣＰＵ１０３の内部に設けられ、動きベクトル検出部１０３ａにより検出された動きベクトルのうち背景とは別の被写体（主被写体）の動きベクトルを判定する判定手段としての機能を有する。
【００５３】
まず、動きベクトル解析処理が実行されるとＣＰＵ１０３はステップＳ１４で度数分布作成を行う。このとき、ＣＰＵ１０３は一時記憶装置１０４から動きベクトル情報２０３を読み出し、度数分布生成部３００に入力する。度数分布生成部３００では入力された動きベクトル情報からエラー情報を読み取って、正常終了した動きベクトルのみを抽出する。抽出された動きベクトル情報から水平および垂直動きベクトル量を読み取って、それぞれの方向で度数分布を生成する。度数分布生成部３００によって生成された度数分布情報３０１はＣＰＵ１０３によって一時記憶装置１０４に保存される。
【００５４】
次に、ＣＰＵ１０３はステップＳ１５で角速度情報をベクトル量に変換する。このときＣＰＵ１０３は角速度情報焦点距離情報３０２を一時記憶装置１０４から読み出し角速度変換部３０３に入力しパンニング角速度からベクトル量への変換を行う。
【００５５】
次に、ＣＰＵ１０３はステップＳ１６で被写体動きベクトル判定を行う。このとき、ＣＰＵ１０３は度数分布情報３０１を一時記憶装置１０４から読み出し、角速度変換部３０３で変換されたベクトル量とともに被写体動きベクトル判定部３０４へ入力する。
【００５６】
最後に、ＣＰＵ１０３は被写体動きベクトル判定部３０４によって作成された被写体動きベクトル情報３０５を一時記憶装置１０４に保存し動きベクトル解析処理を終了する。
【００５７】
ここで、図１３を用いて度数分布生成部３００でのステップＳ１４の度数分布生成処理について説明する。図１３は水平方向に移動する被写体にあわせてカメラを水平方向にパンニングさせた時の度数分布の例を示している。
【００５８】
まず、図１２で示したとおり動きベクトル量は８ビット固定小数点で表されるが、度数分布を作成する際には小数部を切り捨てる。
【００５９】
次に、符号つきでは扱いにくいため最大値の９６を足すことですべて正の値に変換する。
【００６０】
この結果、図１３（Ａ）に示すとおり水平動きベクトルから作成した度数分布には被写体の動きベクトルの分布と背景の動きベクトルの分布の２つの分布が現れる。
【００６１】
一方、図１３（Ｂ）に示すとおり垂直の動きベクトルから作成した度数分布には背景の動きベクトルの分布のみが現れる。
【００６２】
次に、図１０を用いて角速度変換部３０３におけるステップＳ１５の角速度変換処理について説明する。
【００６３】
ここではωをカメラの角速度とする。なお、被写体が静止していると仮定すると被写体の角速度はカメラの角速度と一致する。
【００６４】
次に、前フレーム画像を取得した時刻のある被写体の位置をＡとすると、被写体は主点Ｏを通り撮像素子１０２の位置Ａ’に結像する。
【００６５】
次に、現フレームを取得した時刻の被写体の位置をＢとすると、被写体は主点Ｏを通り撮像素子１０２の位置Ｂ’に結像する。角速度ωの変換後の動きベクトル量は距離Ａ’Ｂ’であり、これをｄとする。
【００６６】
このとき、時間Ｔとカメラの角速度ωから角度ＡＯＢはω×Ｔと表せる。
【００６７】
次に、点Ｃを光軸と被写体の軌跡の交点とする。また点Ｃ’を光軸と撮像素子１０２の交点とする。なお、ここでの光軸とは被写体の軌跡および撮像素子１０２に対し垂直で主点Ｏを通る直線のことである。また、簡単のために、被写体の位置Ａと位置Ｂを通る被写体の軌跡と撮像素子１０２は並行であると仮定する。このとき、主点Ｏから点Ｃ’までの距離をｆとする。ちなみにｆは焦点距離を意味している。
【００６８】
次に、点Ａ’の点Ｃ’からの距離をＸａとする。このとき角度Ａ’ＯＢ’は角度Ａ’ＯＣ’と角度Ｂ’ＯＣ’との差分で求められ、ａｔａｎ（Ｘａ／ｆ）−ａｔａｎ（（Ｘａ−ｄ）／ｆ）と表せる。
【００６９】
最後に、三角形ＡＯＣと三角形Ａ’ＯＣ’は相似であり、三角形ＢＯＣと三角形Ｂ’ＯＣ’も相似である。よって角度ＡＯＢと角度Ａ’ＯＢ’は等しくなるため、カメラの角速度ωから動きベクトル量ｄへの変換式は以下の式２のように表せる。
【００７０】
【数２】
0006671994.tif 000003
【００７１】
次に図９を用いて被写体動きベクトル判定部３０４におけるステップＳ１６の被写体動きベクトル判定処理について説明する。図９は被写体動きベクトル判定処理のフローチャートを示している。
【００７２】
まず、被写体動きベクトル判定処理が実行されるとＣＰＵ１０３はステップＳ１７で度数分布情報３０１から背景ピークの検出を行う。背景ピークの検出には角速度変換部３０３から入力されたカメラのパンニング角速度から変換された動きベクトル量（以後、ジャイロベクトル量と呼称する）を用いる。角速度変換部３０３で述べたとおり、背景のベクトル量はジャイロベクトル量に相当する。よって、ジャイロベクトル量近傍で閾値を超える度数を持つベクトルを背景ピークとする。なお、角速度センサ１０５の角速度を検出する精度やタイミングによって背景ピークとジャイロベクトル量は完全に一致するとは限らない。よってジャイロベクトル量を中心としたある範囲を背景の検索範囲とする。検索範囲の広さおよび度数の閾値はあらかじめ二次記憶装置１０８に保存しておいたものを読み出しして使用してもよい。また、二次記憶装置１０８に保存しておいたものを初期値として角速度や焦点距離、またはピークからのずれ量に応じて変化させてもよい。
【００７３】
次に、ＣＰＵ１０３はステップＳ１８で背景分布検出を行う。図１３（Ａ）および図１３（Ｂ）に示すとおり、背景ベクトルの分布はある広がりを持っている。この広がりはベクトルの検出誤差であったり、度数分布を作成する際に生じる丸め誤差であったりする。よってステップＳ１７で検出された背景ピークから度数分布の左右に度数を調べて、度数分布の度数がある閾値を下回る範囲を背景分布とする。なお、この閾値はあらかじめ二次記憶装置１０８に保存しておいたものを読み出しして使用してもよい。また、背景ピークの度数に応じて変化させてもよいし、度数分布の総度数に応じて変化させてもよい。
【００７４】
次に、ＣＰＵ１０３はステップＳ１９で被写体ピーク検出を行う。ステップＳ１８で背景分布と検出された領域以外についてピークを検索し、そのピークが閾値を超えている場合に被写体ピークとする。なお、閾値はステップＳ１７で使用した閾値を流用してもよいし、別の値を用いてもよい。
【００７５】
最後に、ＣＰＵ１０３はステップＳ２０で被写体分布検出を行う。検出方法はステップＳ１８の背景分布検出と同じだが、閾値の設定は背景分布検出と同じ値を用いてもよいし、別の値を設定してもよい。
【００７６】
次に、図１を用いてステップＳ１１における被写体動きベクトル算出処理について説明する。図１は被写体動きベクトル算出部１０３ｃのブロック図を示している。被写体動きベクトル算出部１０３ｃは、ＣＰＵ１０３の内部に設けられ、被写体の動きベクトルのうち、被写体角速度を算出する際の対象となる動きベクトル（被写体ベクトル）を算出する被写体ベクトル算出手段としての機能を有する。
【００７７】
まず、被写体動きベクトル算出処理が実行されると、ＣＰＵ１０３は一時記憶装置１０４から読み出した被写体動きベクトル情報３０５を移動方向算出部４０１に入力し、被写体の移動方向を算出する。このように、移動方向算出部４０１は、主被写体の動きベクトルに基づいて被写体の移動方向を算出する算出手段として機能する。移動方向の算出にはステップＳ１９で検出された水平および垂直の被写体ピークのベクトル量とジャイロベクトル量を用いる。
【００７８】
ここで、水平被写体ピークのベクトル量をＶｐｈ、垂直被写体ピークのベクトル量をＶｐｖ、水平方向のジャイロベクトル量をＶｏｈ、垂直方向のジャイロベクトル量をＶｏｖとすると移動方向の傾きαは以下の式３で表される。
【００７９】
【数３】
0006671994.tif 000004
【００８０】
カメラを右方向にもしくは上方向にパンニングさせたときに角速度の符号が正になるとすると、動きベクトルの符号と逆になるため、式２でピークベクトル量を減算している。
【００８１】
次に、ＣＰＵ１０３は一時記憶装置１０４から読み出した測距位置情報４０２を注目点判定部４０３に入力し注目点の判定を行う。本実施例では注目点の位置は入力された測距位置の中心と検出枠座標の中心との距離が最も近い検出枠の中心座標とする。なお、本実施例では注目点判定の入力として測距位置情報４０２を用いたが、これは注目点判定を測距位置に限定するものではなく、例えば顔検出の結果を入力してもよいし、被写体領域の検出結果を入力してもよい。または、操作部１１０によって撮影者に位置を入力させてもよい。
【００８２】
次に、ＣＰＵ１０３は一時記憶装置１０４から読み出した被写体動きベクトル情報３０５と移動方向算出部４０１で算出された被写体の移動方向および注目点判定部４０３で判定された注目点を対象ベクトル判定部４０４に入力し、対象ベクトルを判定する。
【００８３】
最後に、ＣＰＵ１０３は対象ベクトル判定部４０４で判定された対象ベクトルをベクトル平均化処理部４０５に入力し、対象ベクトルと判定された被写体動きベクトルを平均化することで被写体ベクトル４０６を算出し、一時記憶装置１０４へ保存する。
【００８４】
ここで、図５および図１５、図１６を用いて第一の実施例における、ステップＳ１２の注目画像位置算出処理について説明する。図５は注目画素位置算出部１０３ｄのブロック図を示している。注目画素位置算出部１０３ｄは、ＣＰＵ１０３の内部に設けられ、測距位置情報４０２を取得することにより、撮像素子１０２により取得された画像のうち使用者が着目する着目点（以下、注目点ともいう）を特定する特定手段としての機能を有する。図１４は注目画像位置算出処理のフローチャートを示している。
【００８５】
注目画像とは注目点判定部４０３で判定された注目点付近にある類似ベクトル成分で構成される画像を意味する。つまり、注目画像とはユーザが注目したい動きベクトル成分をもつ被写体画像と位置づけることができる。
【００８６】
まず、注目画像位置算出処理が実行されると、ＣＰＵ１０３は一時記憶装置１０４へ保存されている前フレーム２０１と動きベクトル情報２０３と測距位置情報４０２を注目画像判定部３０６へ入力して前フレーム画像の一部から注目画像を抽出する。
【００８７】
まず、ステップＳ２１で注目ベクトル枠を決定する。本実施例では注目ベクトル枠の位置は入力された測距位置の中心と検出枠座標の中心との距離が最も近い検出枠の中心座標とする。このように、注目画素位置算出部１０３ｄは、まずステップＳ２１で測距位置情報４０２に基づいて注目ベクトル枠を特定する。なお、本実施例では注目点判定の入力として測距位置情報４０２を用いたが、これは注目点判定を測距位置に限定するものではなく、例えば顔検出の結果を入力してもよい。すなわち、注目画素位置算出部１０３ｄは、主被写体の顔位置情報に基づいて注目ベクトル枠を特定してもよい。また、被写体領域の検出結果を入力してもよい。
【００８８】
次に動きベクトル情報２０３から、注目ベクトル枠で検出された動きベクトルとの差分を算出する。動きベクトルの差は垂直方向と水平方向の両方を用いてもよいし、カメラのパンニング方向のベクトル成分のみを用いてもよい。
【００８９】
図１５（Ａ）は、注目ベクトル枠付近の動きベクトルの差分を示す図である。枠内に記載された数値が注目ベクトル枠とのベクトル差を表す。
【００９０】
注目ベクトル枠に隣接する検出枠から類似する動きベクトルを判定し、類似すると判定されたベクトル検出枠を包含する矩形領域を注目画像に設定する。
【００９１】
ステップＳ２２では、第１閾値の動きベクトル差以内である注目画像を決定する。このように、注目画像（画像領域）は、ユーザが注目する注目点に最も近いと判定された位置（注目ベクトル枠）で検出される動きベクトルとの差が第１閾値より小さい動きベクトルを含むように領域が設定される。本実施例では第１閾値を「５」に設定する。
【００９２】
注目ベクトル枠の下方向にあるベクトル検出枠の動きベクトル差が１（＜第１閾値）であるため、その検出枠を注目画像に含めた結果を、図１５（Ｂ）で示している。
【００９３】
注目ベクトル枠の上方向にあるベクトル検出枠はエラー判定されているが、そのさらに上方向にあるベクトル枠のベクトル差は２（＜第１閾値）である。このときエラー判定されたベクトル枠は低コントラストのために検出できなかったが動きベクトルの類似度が高いと推定できる、このようなケースではエラー判定されたベクトル枠も注目画像に含める。その結果を図１５（Ｃ）で示している。
【００９４】
第１閾値以内にあるベクトル検出枠を注目画像にすべて含めると、ステップＳ２３で注目画像の大きさが所定以上であるかを判定する。
【００９５】
注目画像の大きさが所定以下であるときには、ステップＳ２４で、注目画像のマッチング精度を保証するために、第１閾値よりも大きい数値の第２閾値の動きベクトル差以内である注目画像を決定する。このように、第１閾値より小さい動きベクトルを含めるように注目画像を設定した際に、該注目画像の大きさが所定の大きさより小さくなる場合は、動きベクトル差が第１閾値よりも大きな第２閾値より小さい動きベクトルを含めるように注目画像を再設定する。本実施例では第２閾値を「１０」に設定する。
【００９６】
図１５（Ｄ）は、第２閾値以内のベクトル検出枠を包含する矩形となった注目画像を示す。第２閾値以内にあるベクトル検出枠を注目画像にすべて含めると、ステップＳ２５で注目画像の大きさが所定以上であるかを再び判定する。
【００９７】
ステップＳ２５で注目画像の大きさが所定以下のときには、注目画像を使用せずに処理を終了する。
【００９８】
ステップＳ２３およびステップＳ２５で注目画像候補の大きさが所定以上であるときは、一時記憶装置１０４へ算出された注目画像３０７を保存する。
【００９９】
以上により前フレームからユーザの注目する類似ベクトルをもつ注目画像が抽出されたので、現フレームの注目画像の位置を算出する。
【０１００】
図１６は注目画像位置算出の一連の処理の概要を示す図である。
【０１０１】
ＣＰＵ１０３は一時記憶装置１０４へ保存されている注目画像３０７と現フレーム２００をパターンマッチ処理部３０８に入力して、ステップＳ２６でテンプレートマッチング法を用いて、現フレームの全画像内から注目画像と最も相関の高い位置を算出する。
【０１０２】
最後に、最も相関の高い位置を注目画像位置情報３０９として一時記憶装置１０４へ保存する。
【０１０３】
ここで、図１７および図１８を用いて、対象ベクトル判定部４０４における対象ベクトル判定処理について説明する。図１７は十分に動きベクトルが検出されているときの対象ベクトル判定処理のフローチャートを示している。
【０１０４】
まず、対象ベクトル判定処理が実行されると、ＣＰＵ１０３はステップＳ２７で移動方向を判定する。本実施例では、移動方向算出部４０１で算出された傾きαが１より小さいとき、被写体の移動方向を水平と判定する。そうでなければ、被写体の移動方向は垂直と判定する。
【０１０５】
傾きαが１よりも小さい場合、ＣＰＵ１０３はステップＳ２８で注目点と設定された検出枠の縦方向に隣接する検出枠を対象に設定する。
【０１０６】
一方、傾きαが１よりも大きい場合、ＣＰＵ１０３はステップＳ２９で注目点と設定された検出枠と水平方向に隣接する検出枠を対象に設定する。
【０１０７】
このように、ＣＰＵ１０３は、注目画像（画像領域）における、注目点に最も近い位置（検出枠）に対し水平方向（第１方向）、または、縦方向（第１方向と直交する第２方向）にある検出枠を対象に設定する。具体的に、水平方向と被写体の移動方向との間の角度が縦方向と被写体の移動方向との間の角度より小さい場合は、縦方向にある検出枠を対象に設定する。また、縦方向と被写体の移動方向との間の角度が水平方向と被写体の移動方向との間の角度より小さい場合は、水平方向にある検出枠を対象に設定する。そして、対象として設定された方向にある検出枠から得られる動きベクトル（対象ベクトル）に基づいて像振れ補正制御を行う。
【０１０８】
以上のように対象ベクトルを設定することで注目点の被写体の角速度を精度よく算出できる。ただし、一方で低コントラストや繰り返しパターンにより動きベクトルを正しく検出できない場合も考慮する必要がある。
【０１０９】
図１８では注目点の被写体の動きベクトルを正しく検出できないときの、対象ベクトル判定処理のフローチャートを示している。
【０１１０】
まず、対象ベクトル判定処理が実行されると、ＣＰＵ１０３はステップＳ３０で注目点と設定された検出枠の周囲が正しくベクトル検出されない被写体かどうかを判定する。この判定方法は、注目点の周囲のエラーベクトル検知数で判断してもよいし、検出枠に対するエラーベクトル率割合で判断してもよく、様々な方法が採用できる。
【０１１１】
ステップＳ３０で注目点付近がエラーベクトルと判定されなかったときは、ステップＳ２７からの方法を採用する。
【０１１２】
ステップＳ３０で注目点付近がエラーベクトルと判定されたときは、ステップＳ３１で一時記憶装置１０４へ注目画像位置情報３０９が保存されているか判断する。注目画像位置情報３０９が存在しないときは、ステップＳ２７からの方法を採用する。
【０１１３】
注目画像位置情報３０９が存在するときは、ステップＳ３２で注目画像枠内に被写体ベクトルの検出枠があるか判定する。注目画像枠内とは注目画像位置を中心にして注目画像が含まれる画像領域を表す。
【０１１４】
ステップＳ３２で、注目画像枠内に被写体ベクトル枠があるとき、ステップＳ３３で注目画像枠内に存在する検出枠を対象に設定する。
【０１１５】
ステップＳ３２で、注目画像枠内に被写体ベクトル枠がないとき、ステップＳ３４で前フレームの注目画像位置と現フレームの注目画像位置の差を動きベクトルに算出して対象に設定する。
【０１１６】
このように、対象ベクトル判定部４０４は、注目点の近傍の動きベクトルの信頼性が高いと判定した場合には、注目点と被写体の移動方向から対象ベクトルを判定する。また、注目点の近傍の動きベクトルの信頼性が低いと判定した場合には、被写体の移動方向と注目画像位置情報から対象ベクトルを判定する。
【０１１７】
以上で対象ベクトル判定処理が終了する。
【０１１８】
図１９は対象ベクトル判定の例を示している。
【０１１９】
動きベクトルの検出枠が四角形で表わされている。そのうち、ステップＳ１８で背景ベクトルと判定された検出枠を破線で示している。また、ステップＳ２０で被写体ベクトルと判定された検出枠を実線で示している。次に、被写体の移動方向を点線の矢印で示している。図１９の例ではαが０であり、被写体の移動方向は右である。次に、注目点判定部４０３で注目点と判定された位置を星印で示している、注目点付近にエラーベクトル判定された検出枠が存在するような場合には、対象ベクトル判定処理において、ステップＳ３０が実行される。ステップＳ３０では、注目点付近にエラーベクトルが多くあることから、注目画像位置情報を用いて注目画像枠内にある検出枠を対象と設定する。具体的に、図１９に示すように、注目点に最も近いと判定された位置（検知枠）から縦方向にある被写体ベクトル検知枠の動きベクトルがエラーベクトルのみである場合は、注目画像における、星印位置に対し水平方向にある検出枠を対象と設定する。設定された検出枠を太枠で示している。最後に、対象と設定された検出枠で検出された動きベクトルを用いて被写体の角速度を求める。そして、ＣＰＵ１０３は、この算出された被写体の角速度と角速度センサ１０５から取得した角速度との差分から被写体のブレがなくなるように像振れ補正処理を行う。
【０１２０】
このように、ＣＰＵ１０３は、撮像素子１０２により取得される画像のうち主被写体の動きベクトルおよび注目点に応じた画像領域（注目画像）を設定し、該画像領域に基づいて像振れ補正制御を行っている。より具体的には、主被写体の動きベクトルのうち注目点に最も近い位置（検知枠）で検出される動きベクトルに類似した動きベクトルを有する画像領域を設定し、該画像領域における動きベクトル（対象ベクトル）に基づいて像振れ補正制御を行う。
【０１２１】
以上のようにして対象ベクトルを設定することで、注目点の近くに低コントラスト成分や繰り返しパターン成分があり動きベクトルを正しく検出できないときにも、注目点の被写体の角速度を精度よく算出できる。故に、その角速度を用いて流し撮りアシストを行うことで、注目点がぶれない流し撮り画像が得られる。すなわち、撮影者が止めたいと思われる場所がぶれないような流し撮りアシストが可能になる。
【実施例２】
【０１２２】
ここで、図２０を用いて第二の実施例における、ステップＳ１２の注目画像位置算出処理について説明する。
【０１２３】
第一の実施例では、水平方向と垂直方向の区別なく注目ベクトル枠のベクトル差のみをもとに注目画像を算出したが、前述のとおり被写体の角速度をより精度よく求めるためには、被写体動き方向と直交する方向に対象ベクトルを設定することで効果がある。
【０１２４】
第一の実施例の方法でも、仮に被写体の動きが水平方向であるとした場合、注目ベクトル枠との動きベクトルの差が垂直方向のほうが小さくなるために、垂直方向に長い注目画像とすることができる。その結果として注目点の垂直方向にある対象ベクトルを採用することが可能であるが、ベクトル検出誤差の影響によってはその限りではない。
【０１２５】
そのため第二の実施例では、被写体の動き方向を注目画像の決定に利用する方法について述べる。
【０１２６】
まず、注目画像算出処理が実行されると、ＣＰＵ１０３は一時記憶装置１０４へ保存されている前フレーム２０１と動きベクトル情報２０３と測距位置情報（測距枠情報）４０２を注目画像判定部３０６へ入力して前フレーム画像の一部から注目画像を抽出する。
【０１２７】
まず、ステップＳ２１で注目ベクトル枠を決定する。本実施例では注目ベクトル枠の位置は入力された測距位置の中心と検出枠座標の中心との距離が最も近い検出枠の中心座標とする。なお、本実施例では注目点判定の入力として測距位置情報４０２を用いたが、これは、注目点判定を測距位置に限定するものではなく、例えば顔検出の結果を入力してもよいし、被写体領域の検出結果を入力してもよい。
【０１２８】
次に動きベクトル情報２０３から、注目ベクトル枠で検出された動きベクトルとの差分を算出する。動きベクトルの差は垂直方向と水平方向の両方を用いてもよいし、カメラのパンニング方向のベクトル成分のみを用いてもよい。
【０１２９】
図２０（Ａ）は、注目ベクトル枠付近の動きベクトルの差分を示す図である。枠内に記載された数値が注目ベクトル枠とのベクトル差を表す。
【０１３０】
注目ベクトル枠に隣接する検出枠から類似する動きベクトルを判定し、類似すると判定されたベクトル検出枠を包含する矩形領域を注目画像に設定する。
【０１３１】
ステップＳ２２では、第１閾値の動きベクトル差以内となる注目画像を決定する。本実施例では第１閾値の基準値を「５」に設定する。
【０１３２】
さらに、本実施例では被写体の動きベクトル方向をもとに基準値に掛ける係数に重みづけをおこなう。つまり注目ベクトル枠と平行する方向に対しては閾値を小さくして、直交する方向に対しては閾値を大きくする。これにより、注目ベクトル枠から直交する方向に画像成分を多くもつ注目画像を決定することができる。
【０１３３】
本実施例では、被写体の動きを水平方向として、水平方向の重みづけ係数を「１／２」、垂直方向の重みづけ係数を「２」とする。この結果、水平方向の第１閾値が「２．５」、垂直方向の第１閾値が「１０」となる。このように、本実施例における第１閾値は、基準値「５」に重み付け係数が掛けられた値となり、該重み付け係数は、水平方向（第１方向）と垂直方向（第２方向）とで互いに異なっている。具体的に、水平方向に対する重み付け係数は、水平方向と被写体の移動方向との間の角度が垂直方向と被写体の移動方向との間の角度より小さい場合に、垂直方向に対する重み付け係数よりも小さく設定される。逆に、垂直方向と被写体の移動方向との間の角度が水平方向と被写体の移動方向との間の角度より小さい場合は、垂直方向に対する重み付け係数は、水平方向に対する重み付け係数よりも小さく設定される。
【０１３４】
注目ベクトル枠の下方向にあるベクトル検出枠の動きベクトル差が１（＜垂直方向の第１閾値）であるため、その検出枠を注目画像に含めた結果を、図２０（Ｂ）で示している。
【０１３５】
注目ベクトル枠の上方向にあるベクトル検出枠はエラー判定されているが、そのさらに上方向にあるベクトル枠のベクトル差は２（＜垂直方向の第１閾値）である。このときエラー判定されたベクトル枠は低コントラストのために検出できなかったが動きベクトルの類似度が高いと推定できる。このようなケースではエラー判定されたベクトル枠も注目画像に含める。その結果を図２０（Ｃ）で示している。
【０１３６】
第１閾値以内にあるベクトル検出枠を注目画像にすべて含めると、ステップＳ２３で注目画像の大きさが所定以上であるかを判定する。
【０１３７】
注目画像の大きさが所定以下であるときには、ステップＳ２４で、注目画像のマッチング精度を保証するために、第１閾値よりも大きい数値の第２閾値の動きベクトル差以内とある注目画像を決定する。本実施例では第２閾値の基準値を「１０」に設定する。
【０１３８】
第１閾値と同じ係数を掛けると、水平方向の第２閾値が「５」、垂直方向の第２閾値が「２０」となる。すなわち、本実施例における第２閾値は、基準値「２０」に重み付け係数が掛けられた値となり、該重み付け係数は、水平方向（第１方向）と垂直方向（第２方向）とで互いに異なっている。具体的に、水平方向に対する重み付け係数は、水平方向と被写体の移動方向との間の角度が垂直方向と被写体の移動方向との間の角度より小さい場合に、垂直方向に対する重み付け係数よりも小さく設定される。逆に、垂直方向と被写体の移動方向との間の角度が水平方向と被写体の移動方向との間の角度より小さい場合は、垂直方向に対する重み付け係数は、水平方向に対する重み付け係数よりも小さく設定される。
【０１３９】
図２０（Ｃ）の注目画像の左右方向にあるベクトル枠には水平方向の第２閾値以内のものがないのに対し、注目画像の上方向のベクトル枠の差は１０（＜垂直方向の第２閾値）であるため、その検出枠を注目画像に含める。
【０１４０】
図２０（Ｄ）は、第２閾値以内のベクトル検出枠を包含する矩形となった注目画像を示す。第２閾値以内にあるベクトル検出枠を注目画像にすべて含めると、ステップＳ２５で注目画像の大きさが所定以上であるかを再び判定する。
【０１４１】
ステップＳ２５で注目画像の大きさが所定以下のときには、注目画像を使用せずに処理を終了する。
【０１４２】
ステップＳ２３およびステップＳ２５で注目画像候補の大きさが所定以上であるときは、一時記憶装置１０４へ算出された注目画像３０７を保存する。
【０１４３】
以上により前フレームからユーザの注目する類似ベクトルをもつ注目画像を抽出されたので、現フレームの注目画像の位置を算出する。
【０１４４】
図２１は対象ベクトル判定の例を示している。動きベクトルの検出枠が四角形で表わされている。そのうち、ステップＳ１８で背景ベクトルと判定された検出枠を破線で示している。また、ステップＳ２０で被写体ベクトルと判定された検出枠を実線で示している。次に、被写体の移動方向を点線の矢印で示している。図１９の例ではαが０であり、被写体の移動方向は右である。次に、注目点判定部４０３で注目点と判定された位置（検知枠）を星印で示している、注目点付近にエラーベクトル判定された検出枠が存在するような場合には、対象ベクトル判定処理において、ステップＳ３０が実行される。ステップＳ３０では、注目点付近にエラーベクトルが多くあることから、注目画像位置情報を用いて注目画像枠内にある検出枠を対象と設定する。
【０１４５】
図１９で示された第１の実施例での対象ベクトル判定と比較すると、垂直方向に多くの対象ベクトルを設定できることが示される。
【０１４６】
最後に、対象と設定された検出枠で検出された動きベクトルを用いて被写体の角速度を求める。
【０１４７】
以上のようにして対象ベクトルを設定することで、注目画像に被写体の動き方向と同じ方向成分が多くなることを防ぐことができ、ユーザの求めたい対象ベクトルを注目画像から検出する可能性が上がり、注目点の被写体の角速度を精度よく算出できる。故に、その角速度を用いて流し撮りアシストを行うことで、注目点がぶれない流し撮り画像が得られる。すなわち、撮影者が止めたいと思われる場所がぶれないような流し撮りアシストが可能になる。
【０１４８】
本発明によれば、動きベクトルを検出しにくい被写体に対して撮影者が止めたい場所がぶれないように流し撮りアシストすることを可能にした動きベクトル検出装置を提供することができる。
【０１４９】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【０１５０】
なお、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのプログラム（すなわち、各実施例における各ステップが記述されたコンピュータで実行可能なプログラム）、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【産業上の利用可能性】
【０１５１】
本発明は、コンパクトデジタルカメラ、一眼レフカメラ、ビデオカメラなどの撮像装置に好適に利用できる。
【符号の説明】
【０１５２】
１０３ａ：動きベクトル検出部
１０３ｂ：動きベクトル解析部
１０３ｄ：注目画素位置算出部
１０３：ＣＰＵ
【図１】
0006671994.tif 000005
【図２】
0006671994.tif 000006
【図３】
0006671994.tif 000007
【図４】
0006671994.tif 000008
【図５】
0006671994.tif 000009
【図６】
0006671994.tif 000010
【図７】
0006671994.tif 000011
【図８】
0006671994.tif 000012
【図９】
0006671994.tif 000013
【図１０】
0006671994.tif 000014
【図１１】
0006671994.tif 000015
【図１２】
0006671994.tif 000016
【図１３】
0006671994.tif 000017
【図１４】
0006671994.tif 000018
【図１５】
0006671994.tif 000019
【図１６】
0006671994.tif 000020
【図１７】
0006671994.tif 000021
【図１８】
0006671994.tif 000022
【図１９】
0006671994.tif 000023
【図２０】
0006671994.tif 000024
【図２１】
0006671994.tif 000025
【図２２】
0006671994.tif 000026
【図２３】
0006671994.tif 000027