(57)【特許請求の範囲】
【請求項１】
異なる時刻に得られた複数のフレーム画像から動きベクトル情報を検出するベクトル検出手段と、
角速度検出手段にて検出された角速度情報と前記動きベクトル情報とに基づいて被写体の動きベクトルを算出する被写体ベクトル算出手段と、を有し、
前記被写体ベクトル算出手段は、
前記角速度情報に基づいて背景ベクトル領域を算出し、
前記動きベクトル情報に基づいて度数分布を作成し、
前記度数分布と前記背景ベクトル領域とに基づいて前記被写体の動きベクトルを検出し、
前記被写体の動きベクトルが検出されない場合、前記度数分布と前記背景ベクトル領域とに基づいて被写体候補の動きベクトルを検出し、
前記被写体候補の動きベクトルに関する前記複数のフレーム画像の相関が所定の条件を満たす場合、前記被写体候補の動きベクトルを前記被写体の動きベクトルとして決定することを特徴とする動きベクトル検出装置。
【請求項２】
前記被写体ベクトル算出手段は、
前記度数分布における度数が第１の閾値を超える第１のベクトルが存在する場合、該第１のベクトルを前記被写体の動きベクトルとして決定し、
前記第１のベクトルが存在しない場合であって、前記度数が該第１の閾値よりも小さい第２の閾値を超える第２のベクトルが存在する場合、該第２のベクトルを前記被写体候補の動きベクトルとして決定する、ことを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項３】
前記相関は、前記複数のフレーム画像の間における前記被写体候補の動きベクトルの変化の度合いであることを特徴とする請求項１または２に記載の動きベクトル検出装置。
【請求項４】
前記被写体ベクトル算出手段は、
前記被写体候補の動きベクトルと前記背景ベクトル領域の基準ベクトルとに基づいて被写体移動ベクトルを算出し、
前記複数のフレーム画像の間における前記被写体移動ベクトルの変化の度合いに基づいて、前記被写体候補の動きベクトルが前記被写体の動きベクトルであるか否かを判定する、ことを特徴とする請求項３に記載の動きベクトル検出装置。
【請求項５】
前記複数のフレーム画像は、少なくとも３つのフレーム画像を含み、
前記少なくとも３つのフレーム画像における前記被写体移動ベクトルの変化が一定である場合、該被写体移動ベクトルに対応する前記被写体候補の動きベクトルを前記被写体の動きベクトルであると決定することを特徴とする請求項４に記載の動きベクトル検出装置。
【請求項６】
前記被写体ベクトル算出手段は、前記複数のフレーム画像における、前記被写体候補の動きベクトルが検出された位置の密集度に基づいて、該被写体候補の動きベクトルが前記被写体の動きベクトルであるか否かを判定することを特徴とする請求項１乃至５のいずれか１項に記載の動きベクトル検出装置。
【請求項７】
前記被写体ベクトル算出手段は、
前記複数のフレーム画像における前記度数分布を加算し、
加算された前記度数分布に基づいて、前記被写体候補の動きベクトルが前記被写体の動きベクトルであるか否かを判定する、ことを特徴とする請求項１乃至６のいずれか１項に記載の動きベクトル検出装置。
【請求項８】
前記角速度情報としてパンニング速度を検出する角速度検出手段を更に有することを特徴とする請求項１乃至７のいずれか１項に記載の動きベクトル検出装置。
【請求項９】
撮像光学系を介して形成された光学像を光電変換する撮像素子と、
前記撮像素子により異なる時刻に得られた複数のフレーム画像から動きベクトル情報を検出するベクトル検出手段と、
角速度検出手段にて検出された角速度情報と前記動きベクトル情報とに基づいて被写体の動きベクトルを算出する被写体ベクトル算出手段と、を有し、
前記被写体ベクトル算出手段は、
前記角速度情報に基づいて背景ベクトル領域を算出し、
前記動きベクトル情報に基づいて度数分布を作成し、
前記度数分布と前記背景ベクトル領域とに基づいて前記被写体の動きベクトルを検出し、
前記被写体の動きベクトルが検出されない場合、前記度数分布と前記背景ベクトル領域とに基づいて被写体候補の動きベクトルを検出し、
前記被写体候補の動きベクトルに関する前記複数のフレーム画像の相関が所定の条件を満たす場合、前記被写体候補の動きベクトルを前記被写体の動きベクトルとして決定することを特徴とする撮像装置。
【請求項１０】
異なる時刻に得られた複数のフレーム画像から動きベクトルを検出するステップと、
角速度検出手段にて検出された角速度情報と前記動きベクトルとに基づいて被写体の動きベクトルを算出するステップと、を有し、
前記被写体の動きベクトルを算出するステップは、
前記角速度情報に基づいて背景ベクトル領域を算出し、
前記動きベクトル情報に基づいて度数分布を作成し、
前記度数分布と前記背景ベクトル領域とに基づいて前記被写体の動きベクトルを検出し、
前記被写体の動きベクトルが検出されない場合、前記度数分布と前記背景ベクトル領域とに基づいて被写体候補の動きベクトルを検出し、
前記被写体候補の動きベクトルに関する前記複数のフレーム画像の相関が所定の条件を満たす場合、前記被写体候補の動きベクトルを前記被写体の動きベクトルとして決定するステップを含むことを特徴とする動きベクトル検出方法。
【請求項１１】
異なる時刻に得られた複数のフレーム画像から動きベクトル情報を検出するステップと、
角速度検出手段にて検出された角速度情報と前記動きベクトル情報とに基づいて被写体の動きベクトルを算出するステップと、をコンピュータに実行させるプログラムであって、
前記被写体の動きベクトルを算出するステップは、
前記角速度情報に基づいて背景ベクトル領域を算出し、
前記動きベクトル情報に基づいて度数分布を作成し、
前記度数分布と前記背景ベクトル領域とに基づいて前記被写体の動きベクトルを検出し、
前記被写体の動きベクトルが検出されない場合、前記度数分布と前記背景ベクトル領域とに基づいて被写体候補の動きベクトルを検出し、
前記被写体候補の動きベクトルに関する前記複数のフレーム画像の相関が所定の条件を満たす場合、前記被写体候補の動きベクトルを前記被写体の動きベクトルとして決定するステップを含むことを特徴とするプログラム。
【請求項１２】
請求項１１に記載のプログラムを記憶していることを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、流し撮りアシストを実行可能な動きベクトル検出装置に関する。
【背景技術】
【０００２】
従来から、移動被写体のスピード感を表現する撮影技術として、流し撮り撮影が知られている。流し撮り撮影は、ユーザが被写体の動きに合わせてカメラをパンニングしながら撮影を行うことにより、移動被写体を静止させた状態で背景を流すことで被写体のスピード感を表現する。流し撮り撮影においては、ユーザが被写体の動きに合わせてパンニングをする必要があるが、パンニング速度が速すぎたり遅すぎたりすることで被写体の移動速度とパンニング速度との間に差が生じると、被写体ブレが発生する場合がある。
【０００３】
このような問題に対し、ユーザの流し撮り撮影の補助を行う技術（流し撮りアシスト）として、シフトレンズの移動により被写体の移動速度とパンニング速度との差を吸収する方法が知られている。特許文献１には、ジャイロセンサによるブレ検出と画像の動きベクトルとに基づいて被写体を検出し、検出された被写体を画像中央に位置させるようにシフトレンズを移動させて流し撮り撮影を行う撮像装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３１７８４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の撮像装置では、小さい被写体に関して十分な数の動きベクトルを検出することが難しいため、小さい被写体に対して流し撮りアシストが機能しない可能性がある。
【０００６】
そこで本発明は、小さい被写体の動きベクトルを検出することが可能な動きベクトル検出装置、撮像装置、動きベクトル検出方法、プログラム、および、記憶媒体を提供する。
【課題を解決するための手段】
【０００７】
本発明の一側面としての動きベクトル検出装置は、異なる時刻に得られた複数のフレーム画像から動きベクトル情報を検出するベクトル検出手段と、角速度検出手段にて検出された角速度情報と前記動きベクトル情報とに基づいて被写体の動きベクトルを算出する被写体ベクトル算出手段とを有し、前記被写体ベクトル算出手段は、前記角速度情報に基づいて背景ベクトル領域を算出し、前記動きベクトル情報に基づいて度数分布を作成し、前記度数分布と前記背景ベクトル領域とに基づいて前記被写体の動きベクトルを検出し、前記被写体の動きベクトルが検出されない場合、前記度数分布と前記背景ベクトル領域とに基づいて被写体候補の動きベクトルを検出し、前記被写体候補の動きベクトルに関する前記複数のフレーム画像の相関が所定の条件を満たす場合、前記被写体候補の動きベクトルを前記被写体の動きベクトルとして決定する。
【０００８】
本発明の他の側面としての撮像装置は、撮像光学系を介して形成された光学像を光電変換する撮像素子と、前記撮像素子により異なる時刻に得られた複数のフレーム画像から動きベクトル情報を検出するベクトル検出手段と、角速度検出手段にて検出された角速度情報と前記動きベクトル情報とに基づいて被写体の動きベクトルを算出する被写体ベクトル算出手段とを有し、前記被写体ベクトル算出手段は、前記角速度情報に基づいて背景ベクトル領域を算出し、前記動きベクトル情報に基づいて度数分布を作成し、前記度数分布と前記背景ベクトル領域とに基づいて前記被写体の動きベクトルを検出し、前記被写体の動きベクトルが検出されない場合、前記度数分布と前記背景ベクトル領域とに基づいて被写体候補の動きベクトルを検出し、前記被写体候補の動きベクトルに関する前記複数のフレーム画像の相関が所定の条件を満たす場合、前記被写体候補の動きベクトルを前記被写体の動きベクトルとして決定する。
【０００９】
本発明の他の側面としての動きベクトル検出方法は、異なる時刻に得られた複数のフレーム画像から動きベクトルを検出するステップと、角速度検出手段にて検出された角速度情報と前記動きベクトルとに基づいて被写体の動きベクトルを算出するステップとを有し、前記被写体の動きベクトルを算出するステップは、前記角速度情報に基づいて背景ベクトル領域を算出し、前記動きベクトル情報に基づいて度数分布を作成し、前記度数分布と前記背景ベクトル領域とに基づいて前記被写体の動きベクトルを検出し、前記被写体の動きベクトルが検出されない場合、前記度数分布と前記背景ベクトル領域とに基づいて被写体候補の動きベクトルを検出し、前記被写体候補の動きベクトルに関する前記複数のフレーム画像の相関が所定の条件を満たす場合、前記被写体候補の動きベクトルを前記被写体の動きベクトルとして決定するステップを含む。
【００１０】
本発明の他の側面としてのプログラムは、異なる時刻に得られた複数のフレーム画像から動きベクトル情報を検出するステップと、角速度検出手段にて検出された角速度情報と前記動きベクトル情報とに基づいて被写体の動きベクトルを算出するステップと、をコンピュータに実行させるプログラムであって、前記被写体の動きベクトルを算出するステップは、前記角速度情報に基づいて背景ベクトル領域を算出し、前記動きベクトル情報に基づいて度数分布を作成し、前記度数分布と前記背景ベクトル領域とに基づいて前記被写体の動きベクトルを検出し、前記被写体の動きベクトルが検出されない場合、前記度数分布と前記背景ベクトル領域とに基づいて被写体候補の動きベクトルを検出し、前記被写体候補の動きベクトルに関する前記複数のフレーム画像の相関が所定の条件を満たす場合、前記被写体候補の動きベクトルを前記被写体の動きベクトルとして決定するステップを含む。
【００１１】
本発明の他の側面としてのコンピュータが読み取り可能な記憶媒体は、前記プログラムを記憶している。
【００１２】
本発明の他の目的及び特徴は、以下の実施例において説明される。
【発明の効果】
【００１３】
本発明によれば、小さい被写体の動きベクトルを検出することが可能な動きベクトル検出装置、撮像装置、動きベクトル検出方法、プログラム、および、記憶媒体を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】実施例１における被写体の動きベクトルの算出方法を示すフローチャートである。
【図２】各実施例における動きベクトル検出装置のブロック図である。
【図３】各実施例における動きベクトルの算出方法の説明図である。
【図４】各実施例における背景ベクトル領域の算出方法の説明図である。
【図５】各実施例における被写体ベクトルおよび被写体候補ベクトルの算出方法の説明図である。
【図６】各実施例におけるフレーム間相関の判定方法の説明図である。
【図７】実施例２における被写体の動きベクトルの算出方法を示すフローチャートである。
【図８】実施例２における枠密集度の算出方法の説明図である。
【図９】実施例３における被写体の動きベクトルの算出方法を示すフローチャートである。
【図１０】実施例３における度数分布の加算方法の説明図である。
【図１１】実施例４における撮像装置の構成図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施例について、図面を参照しながら詳細に説明する。
【実施例１】
【００１６】
まず、図２を参照して、本発明の実施例１における動きベクトル検出装置について説明する。図２は、動きベクトル検出装置１０（画像処理装置）のブロック図である。
【００１７】
動きベクトル検出装置１０は、角速度検出手段１００、ベクトル検出手段１０２、および、被写体ベクトル算出手段１０４を有する。角速度検出手段１００は、ジャイロセンサなどの角速度センサを含み、撮像装置（カメラ）のパンニング速度（角速度情報１０１）を検出（算出）する。角速度情報１０１は、ＲＡＭ（揮発性メモリ）などの記憶手段１０６に一時的に記憶される。記憶手段には、任意の期間に検出されたデータ（角速度情報１０１）の全てが記憶される。
【００１８】
ベクトル検出手段１０２は、画面内（画像内）の動きベクトルを検出し、複数の撮影画像（例えば、連続して撮影された複数の画像）を比較して動きベクトル（ベクトル情報１０３）を検出（算出）する。ベクトル情報１０３は、ＲＡＭ（揮発性メモリ）などの記憶手段１０６に一時的に記憶される。記憶手段には、任意の期間に検出されたデータ（ベクトル情報１０３）の全てが記憶される。
【００１９】
被写体ベクトル算出手段１０４は、角速度情報１０１とベクトル情報１０３とに基づいて、被写体ベクトル（被写体ベクトル情報１０５）を算出する。被写体ベクトル情報１０５は、流し撮り撮影において、被写体の動きとカメラのパンニング動作（パンニング速度）とのずれを補正するために用いられる。
【００２０】
次に、図３を参照して、ベクトル検出手段１０２により動きベクトル（ベクトル情報１０３）を検出する方法について説明する。図３は、本実施例における動きベクトルの検出方法の説明図である。
【００２１】
図３（ａ）は、連続して撮影された複数の画像からブロックごとのベクトルを検出する方法を示している。まず、Ｎ−１フレームの参照ブロック３１の座標を（ｘ、ｙ）とする。続いて、Ｎフレームの候補ブロック３２の座標を、Ｎ−１フレームの参照ブロックの座標に対して（ａ、ｂ）ずらした（ｘ−ａ、ｙ−ｂ）とする。続いて、参照ブロックと候補ブロックとの画素値の差分をとり、その差分値の全てを足し合わせる。この値を相関値と呼ぶ。座標（ａ、ｂ）を水平方向および垂直方向のそれぞれにおいて±１２画素の範囲で１画素ずつずらしながら相関値を求め、相関値が０に最も近くなる座標（ａ、ｂ）をベクトル（ベクトル情報１０３）とする。
【００２２】
図３（ｂ）は、参照ブロックの配置例を示している。本実施例では、８×８＝６４個のブロックを画像全体に配置した場合の例を示している。配置された複数の参照ブロックのそれぞれに関してベクトルが求められる。
【００２３】
図３（ｃ）は、図３（ｂ）の複数の参照ブロックのうち、点線３３で囲まれた４×３のブロックに関して、検出されたベクトルを矢印で示している。図３（ｃ）のベクトルを示す矢印のうち、信頼性の高いベクトルを実線で示し、信頼性の低いベクトルを点線で示している。例えば、参照ブロックおよび候補ブロックがエッジなどの特徴のある画素値を含まなければ、いずれの座標で相関値を算出しても同じような値となる。このような場合、ベクトルを求めることができないか、または、求めたベクトルは信頼性の低い値となる。
【００２４】
このため本実施例において、ベクトル検出手段１０２は、算出されたベクトルの信頼性が高いか否か（ベクトルがもっともらしいか否か）を示す信頼度を算出する信頼度算出手段を含んでもよい。また、ベクトル検出手段１０２は、ベクトル情報１０３に信頼度（信頼度に関する情報）を付帯させてもよい。本実施例において、ベクトル検出手段１０２は、以下の２つの場合に算出されたベクトルの信頼性は低いと判定する。一つは、コントラストが低いために相関値を得られなかった場合である。もう一つは、ブロックが高周波の画像であるために相関値を得られなかった場合である。ただし、本実施例はこれらに限定されず、ベクトルの信頼性の判定条件を追加または変更してもよい。
【００２５】
次に、図１を参照して、被写体ベクトル算出手段１０４による被写体の動きベクトル（被写体ベクトル情報１０５）の算出方法について説明する。図１は、被写体の動きベクトルの算出方法（被写体ベクトル算出処理）のフローチャートである。
【００２６】
まず、ステップＳ１００において、被写体ベクトル算出手段１０４は、背景ベクトル領域を算出する。背景ベクトル領域は、後述のステップＳ１０１にて作成されるベクトル度数分布に基づいて、いずれのベクトルが背景であるのかを判定するために用いられる情報である。背景ベクトル領域は、背景ベクトル領域の基準となるベクトル（基準ベクトル）に対して、ある幅を有して設定される。
【００２７】
被写体ベクトル算出手段１０４は、角速度情報１０１をベクトルに変換することにより、背景ベクトル領域の基準となるベクトル（基準ベクトル）を算出する。また、背景ベクトル領域の幅は、角速度検出手段１００とベクトル検出手段１０２との検出誤差、および、角速度情報１０１からベクトルへの変換誤差を考慮して算出される。なお背景ベクトル領域の幅は、所定の値（一定の値）を用いることができ、または、角速度情報１０１に応じて変化させてもよい。
【００２８】
ここで、図４を参照して、角速度情報１０１をベクトルに変換する方法について説明する。図４は、背景ベクトル領域の算出方法（角速度情報をベクトルに変換する方法）の説明図である。図４では、角速度（角速度情報１０１）がω［ｄｅｇ／ｓｅｃ］の場合に、ｔ秒の間に背景が点Ａから点Ｂへ移動し、それに応じて撮像素子（センサ）上に結像した背景像が点Ａ´から点Ｂ´へ移動した状態を示している。
【００２９】
まず、背景の移動角∠ＡＯＢは、以下の式（１）のように表わされる。
【００３０】
【数１】
0006700929.tif 000002
【００３１】
背景の動きベクトルをｖ［ｐｉｘｅｌ］、撮像素子の中心Ｏ´と点Ａ´との距離をＸａ［ｐｉｘｅｌ］、焦点距離をｆ［ｍｍ］、撮像素子の画素ピッチをｐ［ｍｍ／ｐｉｘｅｌ］とするとき、∠Ａ´ＯＢ´は以下の式（２）のように表わされる。
【００３２】
【数２】
0006700929.tif 000003
【００３３】
∠ＡＯＢと∠Ａ´ＯＢ´とは互いに等しいため、背景の動きベクトルｖ［ｐｉｘｅｌ］は、以下の式（３）のように表わされる。
【００３４】
【数３】
0006700929.tif 000004
【００３５】
式（３）を用いることにより、角速度（角速度情報１０１）からベクトル（背景の動きベクトル）を求めることができる。
【００３６】
続いて、図１のステップＳ１０１において、被写体ベクトル算出手段１０４は、ベクトル検出手段１０２により検出されたベクトル情報１０３に基づいて、度数分布（ベクトル度数分布）を作成する。度数分布とは、縦軸に度数（頻度）、横軸に階級をとった統計グラフであり、階級が何回出現するかを示す分布である。
【００３７】
本実施例では、６４個の参照ブロックが配置されているため、度数分布の最大度数は６４である。また、階級はベクトルを意味しており、最小値が−１２［ｐｉｘｅｌ］、最大値が＋１２［ｐｉｘｅｌ］である。ビンの数は、１ビンあたり１［ｐｉｘｅｌ］となるように、２５とする。例えば、０番目のビンの度数は−１２［ｐｉｘｅｌ］以上−１１［ｐｉｘｅｌ］未満のベクトルが出現する頻度を意味する。なお、ビンの数は、ベクトル検出手段１０２により算出されるベクトルの精度に応じて変化させてもよい。例えば、０．５［ｐｉｘｅｌ］単位で検出される場合、０番目のビンに含まれるベクトルが−１２．０［ｐｉｘｅｌ］以上−１１．５［ｐｉｘｅｌ］未満となるように、ビンの数を４９としてもよい。
【００３８】
続いて、ステップＳ１０２において、被写体ベクトル算出手段１０４は、背景ベクトル領域とベクトル度数分布とに基づいて、被写体ベクトル（被写体ベクトル情報）を検出（算出）する。
【００３９】
ここで、図５（ａ）を参照して、被写体ベクトル算出手段１０４による被写体ベクトルの検出方法について説明する。図５（ａ）は、ベクトル度数分布と被写体ベクトル判定閾値との関係を示している。
【００４０】
最も頻出度数の高いベクトルは背景ベクトル領域に含まれている。このため被写体ベクトル算出手段１０４は、このベクトルは背景のベクトルであると判定することができる。次に度数の高いベクトルに関しても同様である。
【００４１】
図５（ａ）において、背景ベクトル領域に含まれないベクトルで最も頻出度数の高いベクトルを白抜きの棒グラフで示している。このベクトルの度数が被写体ベクトル判定閾値を超えている。このため被写体ベクトル算出手段１０４は、このベクトルを被写体ベクトルであると判定する。なお、図５（ａ）では、被写体ベクトル判定閾値を超えた度数を有するベクトルは一つしかないが、複数のベクトルが見つかった場合、最も度数の高いベクトルを被写体ベクトルであると判定してもよい。また、度数が同じ場合、０に近いベクトルを被写体ベクトルであると判定してもよい。
【００４２】
続いて、図１のステップＳ１０３において、被写体ベクトル算出手段１０４は、ステップＳ１０２にて被写体ベクトルが検出されたか否かを判定する。被写体ベクトルが検出されている場合、被写体ベクトル算出処理を終了する。一方、被写体ベクトルが検出されていない場合、ステップＳ１０４に進む。ステップＳ１０４において、被写体ベクトル算出手段１０４は、背景ベクトル領域とベクトル度数分布とに基づいて、被写体候補ベクトルを検出する。
【００４３】
ここで、図５（ｂ）を参照して、被写体ベクトル算出手段１０４による被写体候補ベクトルの検出方法について説明する。図５（ｂ）は、ベクトル度数分布と被写体候補ベクトル判定閾値との関係を示している。
【００４４】
まず、被写体ベクトル算出手段１０４は、被写体ベクトルの検出処理と同様に、背景ベクトル領域に含まれるベクトルを背景ベクトルであると判定する。そして被写体ベクトル算出手段１０４は、残ったベクトルのうち、被写体候補ベクトル判定閾値を超える度数を有するベクトルを、被写体候補ベクトルであると判定する。本実施例において、被写体候補ベクトル判定閾値は、被写体ベクトル判定閾値よりも小さく、１よりも大きい値であることが好ましい。これは、度数が１のベクトルは誤検出されたベクトルである可能性が高いためである。また被写体ベクトル算出手段１０４は、被写体候補ベクトル判定閾値を超えるベクトルの全てを被写体候補ベクトルと判定してもよく、または、度数の高いベクトルを優先的に選択してもよい。
【００４５】
続いて、図１のステップＳ１０５において、被写体ベクトル算出手段１０４は、被写体候補ベクトルが検出されたか否かを判定する。被写体候補ベクトルが検出されていない場合、被写体ベクトル算出処理を終了する。一方、被写体候補ベクトルが検出された場合、ステップＳ１０６に進む。ステップＳ１０６において、被写体ベクトル算出手段１０４は、被写体候補ベクトルのフレーム間相関を判定する。
【００４６】
ここで、図６（ａ）を参照して、被写体候補ベクトルのフレーム間相関を判定する方法について説明する。図６（ａ）は、被写体候補ベクトルのフレーム間相関の判定方法の説明図であり、３フレーム分の被写体移動ベクトルと時間との関係を散布図で示している。図６（ａ）において、縦軸は移動ベクトルの移動量、横軸は時間をそれぞれ示している。
【００４７】
まず、背景ベクトル領域の基準となるベクトル（基準ベクトル）をＶｂａｃｋｇｒｏｕｎｄ［ｐｉｘｅｌ］、被写体候補ベクトルをＶｄｉｆｆ［ｐｉｘｅｌ］とすると、被写体移動ベクトルＶｏｂｊｅｃｔ［ｐｉｘｅｌ］は、以下の式（４）のように表される。
【００４８】
【数４】
0006700929.tif 000005
【００４９】
式（４）を用いて、時刻ｔＮ［ｓｅｃ］で検出された被写体候補ベクトルから算出された被写体移動ベクトルをｖ［Ｎ］［０］、ｖ［Ｎ］［１］とする。同様に、時刻ｔＮ−１［ｓｅｃ］、ｔＮ−２［ｓｅｃ］で検出された被写体候補ベクトルにより算出された被写体移動ベクトルをそれぞれ、ｖ［Ｎ−１］［０］、ｖ［Ｎ−１］［１］、ｖ［Ｎ−２］［０］、ｖ［Ｎ−２］［１］とする。なお、時刻ｔＮとｔＮ−１の間隔、および、時刻ｔＮ−１とｔＮ−２の間隔は、フレームレートに応じて決定される。例えば、３０［ｆｐｓ］の場合、時刻の間隔は３３［ｍｓｅｃ］となる。
【００５０】
時刻ｔＮで検出された被写体移動ベクトルから被写体ベクトルを判定する場合、時刻ｔＮ−１と時刻ｔＮ−２の被写体移動ベクトルを結ぶ直線状にｔＮの被写体移動ベクトルがあるか否かにより判定することができる。これは、流し撮り撮影において、一般的な被写体の動きは直線状を一定に動くことが多いためであり、このような場合、被写体の角速度は被写体距離に応じて変化することが分かっている。その変化は一次関数ではないが、微小な時間で見ると一次関数とみなすことができる。すなわち、ｖ［Ｎ］［０］は、ｖ［Ｎ−１］［０］とｖ［Ｎ−２］［０］とを結ぶ直線上にあるため、ｖ［Ｎ］［０］は被写体（被写体ベクトル）であると判定される。一方、ｖ［Ｎ］［１］はｖ［Ｎ−１］［１］とｖ［Ｎ−２］［１］とを結ぶ直線上にはない。また、他の組み合わせに関してもｖ［Ｎ］［１］は直線上にないため、ｖ［Ｎ］［１］は被写体（被写体ベクトル）ではないと判定される。
【００５１】
次に、図６（ｂ）を参照して、被写体候補ベクトルのフレーム間相関を判定する方法について説明する。図６（ｂ）は、被写体候補ベクトルのフレーム間相関の判定方法の説明図である。図６（ｂ）において、ｖ［Ｎ］［０］がｖ［Ｎ−１］［０］とｖ［Ｎ−２］［０］とを結ぶ直線上にあり、ｖ［Ｎ］［１］がｖ［Ｎ−１］［１］とｖ［Ｎ−２］［１］とを結ぶ直線上にある場合を示している。このような場合、一意に被写体ベクトルを判定することができない。そこで、時刻ｔＮ−１での判定結果を利用して被写体ベクトルの判定を行う。例えば、時刻ｔＮ−１でのフレーム間相関判定においてｖ［Ｎ−１］［０］が被写体ベクトルであると判定された場合、ｖ［Ｎ−１］［０］を含む直線上にあるｖ［Ｎ］［０］を被写体ベクトルと判定する。
【００５２】
また、ｖ［Ｎ−１］［０］とｖ［Ｎ−１］［１］とのいずれも被写体ベクトルと判定されていない場合、直線の傾きを利用して被写体ベクトルの判定を行う。すなわち、直線の傾きがより小さい直線を優先する。これにより、被写体ベクトルを誤検出した場合でもその影響を小さくすることができる。
【００５３】
このように本実施例において、動きベクトル検出装置１０は、ベクトル検出手段１０２および被写体ベクトル算出手段１０４を有する。ベクトル検出手段１０２は、異なる時刻に得られた複数のフレーム画像（連続したフレーム画像）から動きベクトル情報（動きベクトル情報１０３）を検出する。被写体ベクトル算出手段１０４は、角速度情報と動きベクトル情報とに基づいて被写体の動きベクトルを算出する。また被写体ベクトル算出手段１０４は、被写体候補の動きベクトルに関する複数のフレーム画像の相関（相関判定結果）に基づいて、被写体候補の動きベクトルが被写体の動きベクトルであるか否かを判定する。
【００５４】
好ましくは、被写体ベクトル算出手段１０４は、角速度情報に基づいて背景ベクトル領域を算出し（Ｓ１００）、動きベクトル情報に基づいて度数分布を作成し（Ｓ１０１）、度数分布と背景ベクトル領域とに基づいて被写体の動きベクトルを検出する（Ｓ１０２）。また被写体ベクトル算出手段１０４は、被写体の動きベクトルが検出されない場合、度数分布と背景ベクトル領域とに基づいて被写体候補の動きベクトルを検出する（Ｓ１０４）。また被写体ベクトル算出手段１０４は、相関が所定の条件を満たす場合、被写体候補の動きベクトルを被写体の動きベクトルとして決定する（Ｓ１０６）。
【００５５】
より好ましくは、被写体ベクトル算出手段１０４は、度数分布における度数が第１の閾値（被写体ベクトル判定閾値）を超える第１のベクトルが存在する場合、第１のベクトルを被写体の動きベクトルとして決定する。また被写体ベクトル算出手段１０４は、第１のベクトルが存在しない場合であって、度数が第１の閾値よりも小さい第２の閾値（被写体候補ベクトル判定閾値）を超える第２のベクトルが存在する場合、第２のベクトルを被写体候補の動きベクトルとして決定する。
【００５６】
好ましくは、被写体候補の動きベクトルに関する複数のフレーム画像の相関は、複数のフレーム画像の間における被写体候補の動きベクトルの変化の度合いである。より好ましくは、被写体ベクトル算出手段１０４は、被写体候補の動きベクトルと背景ベクトル領域の基準ベクトルとに基づいて被写体移動ベクトル（Ｖｏｂｊｅｃｔ）を算出する。そして被写体ベクトル算出手段１０４は、複数のフレーム画像の間における被写体移動ベクトルの変化の度合いに基づいて、被写体候補の動きベクトルが被写体の動きベクトルであるか否かを判定する。より好ましくは、複数のフレーム画像は、少なくとも３つのフレーム画像（Ｎ−２フレーム、Ｎ−１フレーム、Ｎフレーム）を含む。少なくとも３つのフレーム画像における被写体移動ベクトルの変化が一定である場合、被写体移動ベクトルに対応する被写体候補の動きベクトルを被写体の動きベクトルであると決定する。ここで、被写体移動ベクトルの変化が一定である場合とは、図６（ａ）を参照して説明したように、例えば３つのフレーム画像の間で被写体移動ベクトルが直線上に位置する場合である。また、一定とは厳密な意味で一定である場合に限定されるものではなく、実質的に一定であると評価できる範囲内（すなわち略一定）であればよい。また、複数の被写体候補の動きベクトルがある場合、その中で一定に最も近いと評価されるものを被写体の動きベクトルであると判定してもよい。
【００５７】
本実施例では、被写体候補ベクトルからフレーム間の相関を用いて被写体ベクトルか否かを判定する。これにより、小さい被写体でも被写体の動きベクトルを算出することが可能な動きベクトル検出装置を提供することができる。
【実施例２】
【００５８】
次に、本発明の実施例２における動きベクトル検出装置について説明する。実施例１では、被写体候補ベクトルからフレーム間の相関を用いて被写体ベクトルか否かを判定することにより、被写体の動きベクトルを算出する。しかしながら、この方法では、場合によっては、被写体ベクトルを判定することができない。以下、この場合について説明する。
【００５９】
図８は、本実施例における枠密集度の算出方法の説明図である。図８では、ｖ［Ｎ］［０］がｖ［Ｎ−１］［０］とｖ［Ｎ−２］［１］とを結ぶ直線上にあり、ｖ［Ｎ］［１］がｖ［Ｎ−１］［０］とｖ［Ｎ−２］［０］とを結ぶ直線上にある。また、二つの直線の傾き（傾きの絶対値）は略同一である。本実施例では、ベクトル検出手段１０２の参照ブロックの密集度（枠密集度）を用いて、被写体候補ベクトルを判定する。
【００６０】
図７を参照して、被写体ベクトル算出手段１０４による被写体の動きベクトル（被写体ベクトル情報１０５）の算出方法について説明する。図７は、被写体の動きベクトルの算出方法（被写体ベクトル算出処理）のフローチャートである。なお、図７のフローチャートにおいて、ステップＳ２０１、Ｓ２０２以外のステップは、図１を参照して説明した実施例１と同様であるため、それらの説明については省略する。
【００６１】
ステップＳ１０６にてフレーム間相関判定処理が行われると、ステップＳ２０１に進む。ステップＳ２０１において、被写体ベクトル算出手段１０４は、ステップＳ１０６のフレーム間相関判定処理により２つ以上の被写体候補ベクトルが被写体ベクトルであると判定されたか否か（すなわち、複数の被写体候補が存在するか否か）を判定する。１つの被写体候補ベクトルのみが被写体ベクトルと判定されたか、または、全ての被写体候補ベクトルが被写体ベクトルではないと判定された場合、被写体ベクトル算出処理を終了する。一方、２つ以上の被写体候補ベクトルが被写体ベクトルであると判定された場合、ステップＳ２０２に進む。ステップＳ２０２において、被写体ベクトル算出手段１０４は、枠密集度に基づいて被写体ベクトルか否かを判定する。
【００６２】
ここで、図８を参照して、枠密集度を用いて被写体ベクトルか否かを判定する方法について説明する。図８は、被写体ベクトルであると判定された被写体移動ベクトルの散布図、および、それぞれのベクトルが検出された参照ブロックの位置を示している。
【００６３】
小さい被写体の場合、被写体ベクトルが検出される参照ブロックは小さい範囲に集中する。このため、参照ブロック間の距離を算出し、その平均値を密集度とすると、密集度が小さい場合に被写体の可能性が高いと判定することができる。
【００６４】
ベクトルｖ［Ｎ］［１］が算出された参照ブロックをａ、ｂ、ｃとし、参照ブロックａと参照ブロックｂとの間の距離をＬａｂ［ｐｉｘｅｌ］、参照ブロックａと参照ブロックｃと間の距離をＬａｃ［ｐｉｘｅｌ］とする。このとき、密集度ρ１は、以下の式（５）のように表される。
【００６５】
【数５】
0006700929.tif 000006
【００６６】
同様に、ベクトルｖ［Ｎ］［０］が算出された各参照ブロック間の距離から密集度ρ０を算出する。そして、密集度ρ１と密集度ρ０とを比較をすると、ρ０＜ρ１となる。このため被写体ベクトル算出手段１０４は、ｖ［Ｎ］［０］が被写体ベクトルであると判定する。
【００６７】
このように本実施例において、被写体ベクトル算出手段１０４は、複数のフレーム画像における、被写体候補の動きベクトルが検出された位置の密集度（枠密集度）に基づいて、被写体候補の動きベクトルが被写体の動きベクトルであるか否かを判定する。これにより、フレーム間相関判定で複数の被写体候補ベクトルが被写体ベクトルであると判定された場合でも、動きベクトルを算出することが可能な動きベクトル検出装置を提供することができる。
【実施例３】
【００６８】
次に、本発明の実施例３における動きベクトル検出装置について説明する。実施例１では、被写体候補ベクトルからフレーム間の相関を用いて被写体ベクトルか否かを判定することにより、被写体の動きベクトルを算出する。また実施例２では、フレーム間の相関を用いて被写体ベクトルか否かを判定した際に複数の被写体ベクトルが検出された場合、枠密集度を用いて被写体ベクトルか否かを判定することにより、被写体の動きベクトルを算出する。しかしながら、これらの方法は、被写体候補ベクトルが検出されていない場合には処理が行われない。すなわち、被写体ベクトルが被写体候補ベクトル判定閾値を下回る場合、被写体の動きベクトルを算出することができない。そこで本実施例では、被写体候補ベクトルが検出されていない場合、度数分布を加算することにより被写体ベクトルを検出する。
【００６９】
図９を参照して、被写体ベクトル算出手段１０４による被写体の動きベクトル（被写体ベクトル情報１０５）の算出方法について説明する。図９は、被写体の動きベクトルの算出方法（被写体ベクトル算出処理）のフローチャートである。なお、図９のフローチャートにおいて、ステップＳ３０１〜Ｓ３０４以外のステップは、図７を参照して説明した実施例２と同様であるため、それらの説明については省略する。
【００７０】
ステップＳ３０１において、被写体ベクトル算出手段１０４は、被写体候補ベクトルを検出したか否かを判定する。被写体候補ベクトルが検出されている場合、ステップＳ１０６に進む。ステップＳ１０６において、被写体ベクトル算出手段１０４はフレーム間の相関を用いて被写体ベクトルの判定を行う。そしてステップＳ３０２において、被写体ベクトル算出手段１０４は、ステップＳ１０６のフレーム間相関判定処理の結果、１つ以上の被写体候補ベクトルが被写体ベクトルであるか否かを判定する。１つ以上の被写体候補ベクトルが被写体ベクトルであると判定された場合、ステップＳ２０１に進む。ステップＳ２０１において、被写体ベクトル算出手段１０４は、ステップＳ１０６のフレーム間相関判定処理の結果、２つ以上の被写体候補ベクトルが被写体ベクトルであるか否かを判定する。
【００７１】
一方、ステップＳ３０１にて被写体候補ベクトルが検出されていない場合、または、ステップＳ３０２にて全ての被写体候補ベクトルが被写体ベクトルではないと判定された場合、ステップＳ３０３に進む。ステップＳ３０３において、被写体ベクトル算出手段１０４は、度数分布の加算処理を行う。
【００７２】
ここで、図１０を参照して、被写体ベクトル算出手段１０４による度数分布の加算方法について説明する。図１０は、度数分布の加算方法の説明図である。図１０（ａ）はＮ−１フレームの度数分布、図１０（ｂ）はＮ−１フレームの度数分布、図１０（ｃ）はＮ−１フレームの度数分布とＮフレームの度数分布とを加算して得られた度数分布の例をそれぞれ示している。
【００７３】
実施例１にて説明したように、被写体の角速度は、微小な時間で見ると一次関数とみなせる。また、小さい被写体は、被写体距離が遠いか広角で撮影している場合に現れることが多い。このような場合、一般的に被写体の角速度は小さくなるため、微小な時間で見ると角速度は一定であるとみなせる。このため、背景ベクトルの位置を揃えて複数のフレームの度数分布を加算することにより、被写体ベクトルの度数を増加させることができる。
【００７４】
図１０（ａ）と図１０（ｂ）とを比較すると、Ｎ−１フレームの背景ベクトルは、Ｎフレームの背景ベクトルに対して右にずれている。このため、Ｎフレームの背景ベクトルと一致するようにＮ−１フレームの度数分布の全体を左にずらす。このときの度数分布を図１０（ａ）中に点線で示している。続いて、ずらしたＮ−１フレームの度数分布とＮフレームの度数分布とを加算する。図１０（ｃ）に示されるように、加算後の度数分布では、被写体ベクトルの度数は増加し、ノイズ成分の度数は増加していない。これは、被写体の角速度が一定であるとみなした場合、被写体ベクトルと背景ベクトルとの距離はフレーム間で同じになるためである。
【００７５】
最後に、ステップＳ３０４において、被写体ベクトル算出手段１０４は、加算後の度数分布を用いて被写体ベクトルを検出する。
【００７６】
このように本実施例において、被写体ベクトル算出手段１０４は、複数のフレーム画像における度数分布を加算し、加算された度数分布に基づいて、被写体候補の動きベクトルが被写体の動きベクトルであるか否かを判定する。これにより、被写体候補ベクトルが検出されない場合でも、動きベクトルを算出することが可能な動きベクトル検出装置を提供することができる。
【実施例４】
【００７７】
次に、図１１を参照して、本発明の実施例４における撮像装置について説明する。図１１は、本実施例における撮像装置２００（一眼レフカメラ）の構成図である。
【００７８】
レンズ鏡筒２１０（レンズ装置）は、撮像光学系２０１（シフトレンズなどを含むレンズ群）を有する。カメラ本体２２０（撮像装置本体）は、クイックリターンミラー２０３、焦点板２０４、ペンタダハプリズム２０５、および、接眼レンズ２０６などを備えて構成されている。クイックリターンミラー２０３は、撮像光学系２０１を介して形成された光束を上方に反射する。焦点板２０４は、撮像光学系２０１の像形成位置に配置されている。ペンタダハプリズム２０５は、焦点板２０４に形成された逆像を正立像に変換する。ユーザは、その正立像を、接眼レンズ２０６を介して観察することができる。撮像素子２０７は、ＣＣＤセンサやＣＭＯＳセンサなどの光電変換素子を有し、撮像光学系２０１を介して形成された光学像（被写体像）を光電変換して画像データを出力する。撮影時には、クイックリターンミラー２０３が光路から退避して、撮像光学系２０１により撮像面（撮像素子２０７の面）上に像（光学像）が形成される。
【００７９】
カメラ本体２２０には、上述の各実施例の動きベクトル検出装置１０（画像処理装置）が設けられている。本実施例において、動きベクトル検出装置１０は、少なくとも一つのプロセッサまたは回路が、動きベクトル検出装置１０の各部の機能を実行するように構成されていればよい。また、動きベクトル検出装置１０をカメラ本体２２０ではなくレンズ鏡筒２１０に設けてもよく、または、動きベクトル検出装置１０の機能をカメラ本体２２０側とレンズ鏡筒２１０側とで分担してもよい。
【００８０】
なお本実施例において、レンズ鏡筒２１０は、カメラ本体２２０と着脱可能に構成された交換レンズであるが、本実施例はレンズ鏡筒２１０とカメラ本体２２０とが一体的に構成された撮像装置にも適用可能である。またレンズ鏡筒２１０は、クイックリターンミラーのないミラーレスの一眼レフカメラ（ミラーレスカメラ）にも適用することができる。
【００８１】
（その他の実施例）
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００８２】
各実施例によれば、小さい被写体の動きベクトルを検出することが可能な動きベクトル検出装置、撮像装置、動きベクトル検出方法、プログラム、および、記憶媒体を提供することができる。
【００８３】
以上、本発明の好ましい実施例について説明したが、本発明はこれらの実施例に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【００８４】
１０    ベクトル検出装置
１０２  ベクトル検出手段  
１０４  被写体ベクトル算出手段  
【図１】
0006700929.tif 000007
【図２】
0006700929.tif 000008
【図３】
0006700929.tif 000009
【図４】
0006700929.tif 000010
【図５】
0006700929.tif 000011
【図６】
0006700929.tif 000012
【図７】
0006700929.tif 000013
【図８】
0006700929.tif 000014
【図９】
0006700929.tif 000015
【図１０】
0006700929.tif 000016
【図１１】
0006700929.tif 000017