(57)【特許請求の範囲】
【請求項１】
撮像光学系が備える光学補正手段を用いて像ブレを補正する像ブレ補正装置であって、
検出されたパンニング速度と、検出されたフレーム間での被写体の動きベクトルとに基づいて、被写体の角速度を算出する第１の算出手段と、
前記算出された被写体の角速度の複数フレームでの平均値を算出する第２の算出手段と、
前記算出された平均値に基づいて前記光学補正手段を駆動制御する制御手段とを備える
ことを特徴とする像ブレ補正装置。
【請求項２】
前記パンニング速度を検出する第１の検出手段と、
前記被写体の動きベクトルを検出する第２の検出手段とを備える
ことを特徴とする請求項１に記載の像ブレ補正装置。
【請求項３】
前記第２の検出手段は、像面上で予め設定された複数の検出領域からフレーム毎に前記動きベクトルを検出する
ことを特徴とする請求項２に記載の像ブレ補正装置。
【請求項４】
前記第２の算出手段は、フレーム毎の前記動きベクトルが検出された検出領域の数に応じて、前記第１の算出手段によって算出されたフレーム毎の被写体の角速度を第１の重み付け率で重み付けして、前記被写体の角速度の平均値を算出する
ことを特徴とする請求項３に記載の像ブレ補正装置。
【請求項５】
前記第２の算出手段は、現在のフレームから過去に遡った複数のフレームの各々について、前記第１の算出手段によって算出されたフレーム毎の被写体の角速度を前記現在のフレームから過去に遡るフレームほど値が低い第２の重み付け率で重み付けして、前記被写体の角速度の平均値を算出する
ことを特徴とする請求項４に記載の像ブレ補正装置。
【請求項６】
前記第２の算出手段は、前記現在のフレームから過去に遡った複数のフレームについての前記第１または第２の重み付け率の合計に基づいて、前記被写体の角速度の平均値の算出に用いるフレーム数を決定する
ことを特徴とする請求項５に記載の像ブレ補正装置。
【請求項７】
前記第２の算出手段は、像面上で予め設定された複数の検出領域のうち、前記被写体の動きベクトルが検出された検出領域の数が閾値以下である場合に、前記被写体の角速度の平均値を算出する
ことを特徴とする請求項１乃至６のいずれか１項に記載の像ブレ補正装置。
【請求項８】
前記第２の算出手段は、前記検出されたパンニング速度が閾値以上である場合に、前記平均値の算出に用いるフレーム数を前記パンニング速度に応じた数に制限する
ことを特徴する請求項１乃至７のいずれか１項に記載の像ブレ補正装置。
【請求項９】
前記制御手段は、前記光学補正手段を駆動制御することで像ブレを補正する第１の制御と、前記光学補正手段を駆動制御することで、撮影画像における被写体の位置を所定の位置にする第２の制御とを切り替えて実行する
ことを特徴とする請求項１乃至８のいずれか１項に記載の像ブレ補正装置。
【請求項１０】
請求項１乃至９のいずれか１項に記載の像ブレ補正装置を有する光学機器。
【請求項１１】
請求項１０に記載の光学機器として機能する撮像装置。
【請求項１２】
撮像光学系が備える光学補正手段を用いて像ブレを補正する像ブレ補正装置の制御方法であって、
検出されたパンニング速度と、検出されたフレーム間での被写体の動きベクトルとに基づいて、被写体の角速度を算出する第１の算出工程と、
前記算出された被写体の角速度の複数フレームでの平均値を算出する第２の算出工程と、
前記算出された平均値に基づいて、前記光学補正手段を駆動制御する制御工程とを有する
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、像ブレ補正装置、制御方法、光学機器、撮像装置に関する。
【背景技術】
【０００２】
カメラの振れにより生じる撮影画像のブレ（像ブレ）を、シフトレンズ等の光学補正手段を用いて補正する像ブレ補正機能を有する撮像装置が提案されている。また、被写体（動体）を撮影するときに、被写体を追いながら通常よりも遅いシャッタ速度で撮影する撮影方法として、流し撮りがある。流し撮りによれば、背景が流れ、被写体が静止している画像が得られる。ユーザは、流し撮りにより、スピード感あふれる写真を撮影することができる。しかし、長秒撮影が行われるので、露光期間中に被写体のスピードとカメラを振る速度とを合わせることが難しい。特許文献１は、被写体の速度と、カメラを振る速度との差分を検出し、差分に相当するズレ量を、手振れ補正機能を用いて補正する撮像装置を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３１７８４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１が開示する撮像装置は、撮影直前に、カメラ内の角速度センサにより、被写体を追っているカメラのパンニングに対する角速度と、撮像面上の主被写体像の移動量とを検出する。検出したパンニング角速度と撮像面上の被写体像の移動量から被写体の角速度が算出される。そして露光中には、算出した主被写体の角速度と、カメラ内の角速度センサ出力との差分量に従って像ブレ補正動作が行われる。これにより、主被写体とカメラのパンニング速度の差、および手振れ量が補正されるので、流し撮り対象である主被写体の像ブレを抑えることができる。
【０００５】
特許文献１が開示する撮像装置では、被写体の角速度、すなわち撮影者が狙っている被写体の動きを止めるために、撮影者が被写体に合わせてカメラをパンニングするべき角速度をより正確に求めることが重要となる。例えば、パンニング操作時の角速度（パンニング速度）に誤差が生じた場合、像ブレ補正に誤差が発生する可能性がある。その誤差分がブレ残り（像ブレ補正されなかった画像の動き）として画面上に表れてしまう。
【０００６】
主被写体の角速度を正確に求めるためには、主被写体の像面上の移動量を正確に求めることが必要となるが、流し撮り撮影時は、主被写体の像面上の移動量を検出するために必要なベクトルを検出するための領域を示すベクトル検出枠数が少なくなる場合が多い。ベクトル検出枠数が少なくなるのは、例えば、狙っている被写体が小さい時や、あるいは狙っている被写体にコントラストが少なく、結果としてベクトル検出可能な領域が少ない場合などである。ベクトル検出枠数が少ないと、最終的にフレーム内で算出されるベクトル値の誤差が大きくなり、その結果、主被写体角速度の検出精度が低下し、流し撮り対象である主被写体の像ブレを抑える効果が少なくなる。
【０００７】
本発明は、ベクトル検出誤差を抑え、被写体の角速度を精度良く算出することができる像ブレ補正装置の提供を目的とする。
【課題を解決するための手段】
【０００８】
本発明の一実施形態の像ブレ補正装置は、撮像光学系が備える光学補正手段を用いて像ブレを補正する機能を有する。前記像ブレ補正装置は、検出されたパンニング速度と、検出されたフレーム間での被写体の動きベクトルとに基づいて、被写体の角速度を算出する第１の算出手段と、前記算出された被写体の角速度の複数フレームでの平均値を算出する第２の算出手段と、前記算出された平均値に基づいて前記光学補正手段を駆動制御する制御手段とを備える。
【発明の効果】
【０００９】
本発明の像ブレ補正装置によれば、ベクトル検出誤差を抑え、被写体の角速度を精度良く算出することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】像ブレ補正装置を備える撮像装置の構成を示す図である。
【図２】流し撮りアシスト制御を説明するフローチャートである。
【図３】被写体角速度算出処理を説明するフローチャートである。
【図４】角速度算出結果を示す図である。
【図５】被写体角速度算出処理を説明するフローチャートである。
【図６】被写体角速度に対する重み付けの一例を示す図である。
【図７】カメラ制御部の動作処理を説明するフローチャートである。
【図８】被写体角速度算出処理の詳細を説明するフローチャートである。
【図９】警告設定にしたがう表示例である。
【図１０】ベクトル検出枠と、検出枠から検出されたベクトルデータを用いて作成したヒストグラムを示す図である。
【図１１】流し撮り時の主被写体のベクトルデータと、角速度センサが出力する角速度データと被写体角速度との関係を説明する図である。
【発明を実施するための形態】
【００１１】
（実施例１）
以下に、本実施形態の像ブレ補正装置について説明する。各実施例では、撮像光学系に含まれる光学補正手段を用いて撮影画像のブレ（像ブレ）を補正する像ブレ補正装置を例示する。像ブレ補正装置は、ビデオカメラ、デジタルカメラ及び銀塩スチルカメラといった撮像装置や、双眼鏡、望遠鏡、フィールドスコープといった観察装置を含む光学機器に搭載可能である。また、像ブレ補正装置は、デジタル一眼レフ用の交換レンズのような光学機器にも搭載可能である。したがって、光学機器や撮像装置も本発明の一側面を構成する。なお、本発明は、カメラ単体（一眼レフカメラ）、交換レンズ単体、カメラとレンズとが一体となった撮像装置（デジタルビデオカメラ等）のいずれにも適用可能である。
【００１２】
図１は、本実施形態の像ブレ補正装置を備える撮像装置の構成を示す図である。
図１に示す撮像装置は、流し撮りアシスト機能を搭載したミラーレスカメラ（以下、カメラ）である。
【００１３】
像ブレ補正機能を有する交換レンズ１００は、カメラ本体部１２０に装着可能な光学機器である。交換レンズ１００は、主撮影光学系１０２、焦点距離を変更可能なズームレンズ群１０３、およびシフトレンズ群１０４を有する撮影レンズユニット１０１を備える。ズームエンコーダ１０５は、ズームレンズ群１０３の位置を検出し、検出信号をレンズシステム制御用マイクロコンピュータ（以下、レンズ制御部という）１１３に出力する。レンズ制御部１１３は、ズームエンコーダ１０５の検出信号により撮影レンズユニット１０１の焦点距離を得る。また、シフトレンズ群１０４は、撮影レンズユニット１０１の光軸と垂直方向に移動することにより、カメラの振れにより生じる像ブレを光学的に補正する光学補正手段として機能する。第１の検出手段である角速度センサ１１１は、カメラ全体の振れを検出し、振れ検出信号をアンプ１１２に出力する。
【００１４】
アンプ１１２は、振れ検出信号を増幅してレンズ制御部１１３に出力する。レンズ制御部１１３は、手振れ補正制御を行う手振れ補正制御部１１７と、流し撮りアシスト用の制御を行う流し撮り制御部１１８を備える。レンズ制御部１１３はその他にもフォーカスレンズ制御、絞り制御等も行うが、図示の簡略化のため省略する。
【００１５】
第１ドライバ１１４は、レンズ制御部１１３からの制御信号にしたがって、カメラの手振れ等を補正するためにシフトレンズ群１０４を駆動する。第１ドライバ１１４は、シフトレンズ群１０４（光学補正手段）の駆動機構部とともに像ブレ補正部を構成する。アンプ１１５は、シフトレンズ群１０４の位置センサ１０６の出力を増幅してレンズ制御部１１３に出力する。レンズ制御部１１３は、手振れ補正制御を行う手振れ補正制御部１１７と、流し撮りアシスト用の制御を行う流し撮り制御部１１８を備える。レンズ制御部１１３はその他にもフォーカスレンズ制御、絞り制御等も行うが、図示の簡略化のため省略する。なお、手振れ補正については、例えば横方向と縦方向といった、直交する２軸に関して検出および補正が行われるが、同様の構成により行われるので、以下では１軸分のみ説明する。
【００１６】
カメラ本体部１２０は、露出制御に用いるシャッタ１２１や、ＣＭＯＳ（相補型金属酸化膜半導体）センサ等の撮像素子１２２を備える。撮像素子１２２の出力する撮像信号は、アナログ信号処理回路１２３で処理された後、カメラ信号処理回路１２４に送られる。タイミングジェネレータ（ＴＧ）１２５は、撮像素子１２２やアナログ信号処理回路１２３の動作タイミングを設定する。操作部１３１は、電源スイッチ、レリーズスイッチ、流し撮りアシストモードに設定するか否かを指示するための切り替えスイッチ等を備える。
【００１７】
カメラシステム制御用マイクロコンピュータ（以下、「カメラ制御部」と記述する）１３２は、撮像装置全体を制御する。カメラ制御部１３２は、例えば、シャッタ用の第２ドライバ１３３に制御信号を出力し、シャッタ駆動用のモータ１３４を駆動制御する。メモリカード１７１は、撮影された画像のデータを記録する記録媒体である。表示部１７２は、ユーザがカメラで撮影しようとしている画像をモニタし、また、撮影した画像を表示する液晶パネル（ＬＣＤ）等の表示デバイスを備える。カメラ本体部１２０は、交換レンズ１００とのマウント接点部１６１を備える。レンズ制御部１１３とカメラ制御部１３２は、マウント接点部１１６および１６１を介して、所定のタイミングでシリアル通信を行う。
【００１８】
カメラ信号処理回路１２４は、複数のフレームの画像データに基づいて撮影画像の動きを検出する。このために、カメラ信号処理回路１２４は、第２の検出手段として機能する動きベクトル検出部１４１を備える。動きベクトル検出部１４１は、フレーム間での被写体の動きベクトルを検出する。動きベクトル検出部１４１は、検出した動きベクトルに関する情報をカメラ制御部１３２に出力する。
【００１９】
カメラ制御部１３２は、被写体検出部１５１と、被写体角速度算出部１５２とを備える。被写体検出部１５１は、動きベクトル検出部１４１の出力とカメラの角速度データとに基づいて、流し撮り撮影対象となる主被写体が存在する画面上の領域を選択する（ベクトル検出処理を実行する）。カメラの角速度データは、角速度センサ１１１によって検出され、レンズ制御部１１３から送信される。
【００２０】
被写体角速度算出部１５２は、流し撮り対象である被写体を撮影画像において所定の位置に止めるためのカメラのパンニング角速度（以下、「被写体角速度」と記述する）を算出する第１の算出として機能する。具体的には、被写体角速度算出部１５２は、被写体検出部１５１で選択された主被写体に関する動きベクトル情報と、角速度センサによって検出されたカメラの角速度データ（パンニング速度）とに基づいて、被写体角速度を算出する。より詳細には、被写体角速度は、動きベクトル情報を焦点距離、フレームレート、センサの画素ピッチ等を用いて角速度に換算した結果とパンニング速度とを用いて算出される。
【００２１】
ユーザが、操作部１３１を用いてカメラの電源をＯＮ操作すると、その状態変化をカメラ制御部１３２が検出する。カメラ制御部１３２は、カメラ本体部１２０の各回路への電源供給および初期設定処理を実行する。交換レンズ１００への電源供給が行われ、レンズ制御部１１３は、交換レンズ１００内の初期設定処理を実行する。そして、レンズ制御部１１３とカメラ制御部１３２との間で所定のタイミングで通信が始まる。このような交換レンズ１００とカメラ本体部１２０との間での通信によって、カメラ本体部１２０から交換レンズ１００に対して、カメラの状態、撮影設定等が送受信される。
【００２２】
また、交換レンズ１００からカメラ本体部１２０に対して、交換レンズ１００の焦点距離情報、角速度情報等が、それぞれ必要なタイミングで送受信される。さらに、流し撮りアシストモード中には、カメラ本体部１２０から交換レンズ１００に対して、撮像装置の動作モードが流し撮りアシストモード中であることを示すモード情報と、被写体角速度算出部１５２が算出した主被写体像の角速度データが送信される。レンズ制御部１１３は、モード情報が受信されたか否かに基づいて、シフトレンズ駆動制御を、手振れ補正制御部１１７での制御にするか、流し撮り制御部１１８での制御にするかを切り替える。手振れ補正制御部１１７での制御とは、シフトレンズ群１０４を駆動制御することで像ブレを補正する第１の制御とである。流し撮り制御部１１８での制御とは、シフトレンズ群１０４を駆動制御することで、撮影画像における被写体の位置を所定の位置にする第２の制御である。
【００２３】
図２は、本実施形態の撮像装置が実行する流し撮りアシスト制御を説明するフローチャートである。図２において、Ｓ２０１乃至Ｓ２０８はカメラ制御部１３２内のフローチャートであり、Ｓ２１１乃至Ｓ２１８はレンズ制御部１１３内のフローチャートである。以上の動作は、フレームレート単位で動いており、例えば３０Ｈｚに１回程度の割合で繰り返し処理されている。また、Ｓ２２１はレンズ制御部１１３内で取得される角速度データを示しており、このデータは、別途割り込み処理により、例えば４ｋＨｚ程度のサンプリングで取得される。
【００２４】
まず、カメラ制御部１３２の動作を説明する。Ｓ２０１において、カメラ制御部１３２が、レンズ情報を取得する。具体的には、カメラ制御部１３２は、レンズ制御部１１３との通信により、角速度データ、焦点距離データなどを取得する。Ｓ２０２において、カメラ制御部１３２が、動きベクトルを取得する。そして、Ｓ２０３において、カメラ制御部１３２が、Ｓ２０２で取得した動きベクトルの情報からヒストグラムを作成する。
【００２５】
次に、Ｓ２０４において、カメラ制御部１３２が、Ｓ２０３で作成したヒストグラムの結果と、Ｓ２０１で取得した角速度データとに基づいて、主被写体の動きに対応するベクトルを選択する。続いて、Ｓ２０５において、カメラ制御部１３２が、Ｓ２０４で選択したベクトルと、Ｓ２０１で取得した角速度データとに基づいて、被写体の角速度（以下、「被写体角速度」と記述する）を算出する。
【００２６】
次に、Ｓ２０６において、カメラ制御部１３２が、算出した被写体角速度をレンズ制御部１１３に対して送信する。以上のＳ２０１乃至Ｓ２０６の動作は、スイッチＳ２が押されるまで繰り返す。Ｓ２０７において、スイッチＳ２が押されたことが検出されると、カメラ制御部１３２は、スイッチＳ２が押されたことをレンズ制御部へと通知する。そして、Ｓ２０８において、カメラ制御部１３２が、ベクトルデータ、被写体角速度データなどのデータを初期化して、処理がＳ２０１に戻る。
【００２７】
次に、レンズ制御部１１３の動作を説明する。Ｓ２１１において、レンズ制御部１１３が、角速度データをカメラ制御部１３２に対して送信する。また、Ｓ２１２において、レンズ制御部１１３が、焦点距離データをカメラ制御部１３２に対して送信する。続いて、Ｓ２１３において、レンズ制御部１１３が、カメラ制御部１３２から被写体角速度データを受信する。レンズ制御部１１３は、スイッチＳ２が押されるまで以上の処理を繰り返す。
【００２８】
Ｓ２１４において、スイッチＳ２が押されたことが検出される。Ｓ２１５において、レンズ制御部１１３が、現在の角速度データと、Ｓ２１３で受信した被写体角速度データの差分を算出する。そして、Ｓ２１６において、レンズ制御部１１３が、Ｓ２１５で算出した差分データに基づいて、シフトレンズ群１０４の駆動命令を出力する。レンズ制御部１１３は、Ｓ２１５およびＳ２１６の動作を露光終了まで繰り返すことで、流し撮り対象となっている被写体のブレを、シフトレンズを駆動することで補正する。露光が終了すると、Ｓ２１８において、レンズ制御部１１３が、シフトレンズが中心位置（初期位置）に戻るための駆動命令を出力する。カメラ制御部１３２、レンズ制御部１１３の以上の動作により、流し撮りアシスト機能が実現される。
【００２９】
図１０は、動きベクトルを検出するためのベクトル検出枠と、検出枠から検出されたベクトルデータを用いて作成したヒストグラムを示す図である。ベクトル検出枠で囲まれた領域は、像面上で予め設定された、動きベクトルの検出対象となる検出領域である。
動きベクトル検出部１４１は、複数のベクトル領域からフレーム毎に動きベクトルを検出する。図１０（Ａ）は、ユーザがカメラを止めようとしているときの手振れ検出時のベクトル検出枠を示す。図１０（Ｂ）は、検出したベクトルのヒストグラムを示す。ユーザがカメラを止めようとしているので、手振れに相当するベクトル（背景のブレ）は、ほぼ０近傍に集まり、度数のピークが高くなる。したがって、手振れ検出の場合は、基本的に度数ピークが最も高い部分を構成するデータから最終の動きベクトルが求まり、またベースとなるデータ数も多いことので、信頼性が高く誤差の少ないベクトルを検出できる。
【００３０】
図１０（Ｃ）は、ユーザが流し撮りをしているときのベクトル検出枠を示す。図１０（Ｄ）は、検出したベクトルのヒストグラムを示す。
ユーザは、流し撮りによって中心の車を追尾しているものとする。したがって、車に相当するベクトルがほぼ０近傍のデータとなる。また、背景に相当するベクトルは、０から大きく外れたものとなり、さらに角速度データの値とほぼ一致する。そのため、これらの情報を用いることで、主被写体に対するベクトルの検出が可能となる。しかし、流し撮り時の主被写体に相当するベクトルは、図１０（Ｄ）を参照するとわかるように、ヒストグラムの度数としては少ないものになりやすい。つまり、ピークを構成するデータ数が少なく、その結果、最終的に出力される動きベクトルは誤差の大きいものになりやすい。この動きベクトルの検出誤差を低減することが、流し撮りの成功に大きく影響を与えることになる。
【００３１】
図３は、実施例１の撮像装置が実行する被写体角速度算出処理を説明するフローチャートである。
Ｓ３０１において、被写体角速度算出部１５２が、被写体検出部１５１によって主被写体が検出されているかを判断する。主被写体が検出されていない場合は、処理がＳ３１１に進む。Ｓ３１１において、被写体角速度算出部１５２が、カウンタをクリアし、カウンタオーバーフラグをクリアする。
【００３２】
主被写体が検出された場合は、処理がＳ３０２に進む。Ｓ３０２において、被写体角速度算出部１５２が、カウンタのインクリメントを行う。続いて、Ｓ３０３において、被写体角速度算出部１５２が、カウンタが所定値に達したかを判断する。カウンタが所定値に達した場合は、処理がＳ３０４に進む。Ｓ３０４において、被写体角速度算出部１５２が、カウンタオーバーフラグをセットする。Ｓ３０５において、被写体角速度算出部１５２が、現在のカウンタの値から所定値を引いた値を新たなカウンタの値とする。つまり、Ｓ３０２、Ｓ３０４、Ｓ３０５において、カウンタの値には０から（所定値−１）までが繰り返し設定されることになる。
【００３３】
Ｓ３０６において、被写体角速度算出部１５２が、角速度データと主被写体の動きベクトルデータとに基づいて、主被写体角速度を算出する。Ｓ３０７において、被写体角速度算出部１５２が、カウンタの値を引数としたバッファにＳ３０６で算出した被写体角速度を保存する。
【００３４】
次に、Ｓ３０８において、被写体角速度算出部１５２が、カウンタオーバーフラグがセットされているかを判断する。カウンタオーバーフラグがセットされている場合は、処理がＳ３０９に進む。Ｓ３０９において、被写体角速度算出部１５２が、被写体角速度保存用に用意されている所定数分のバッファの全ての平均を求める。すなわち、被写体角速度算出部１５２は、現在のフレームから所定フレーム分前までの各フレームで算出された被写体角速度の全ての平均値を算出する第２の算出手段として機能する。Ｓ３０８において、カウンタオーバーフラグがセットされていない場合は、処理がＳ３１０に進む。そして、被写体角速度算出部１５２が、カウンタ値に応じたバッファのデータを用いて平均値を算出する。被写体角速度算出部１５２は、被写体角速度の平均値をレンズ制御部１１３に送信し、レンズ制御部１１３は、この平均値を用いてシフトレンズ群を駆動制御する。
【００３５】
図１１は、流し撮り時の主被写体のベクトルデータと、角速度センサが出力する角速度データと被写体角速度との関係を説明する図である。
図１１の横軸は、時間（フレーム数）、縦軸は角速度の大きさを示す。この例では、約７Ｈｚの手振れが起こっているものとする。１１０１は、被写体のベクトルデータの信号を示す。１１０２は、角速度センサで検出した角速度データを示す。１１０３は、被写体角速度を示す。
【００３６】
図１１からわかるように、角速度センサ出力とベクトル検出結果から得られる被写体角速度は、ともにブレ成分が含まれているので、ブレ成分を加算した被写体角速度データはフレーム間でほとんど変化しない。つまり、被写体角速度データを複数フレームで平均すると、ベクトル検出枠数を見かけ上増加させていることと等価になると考えられる。したがって、実施例１の撮像装置は、被写体角速度の時間方向での平均を取ることで、検出枠数が少ないことに起因して発生するベクトルの検出誤差を抑える。
【００３７】
図４は、角速度算出結果を示す図である。
図４（Ａ）は、フレーム単位で被写体の角速度を求めた結果を示す。図４（Ｂ）は、被写体角速度の平均を求めた結果を示す。実施例１の撮像装置は、被写体角速度の平均を求め、この平均値を用いてシフトレンズ群１０４を駆動する。これにより、流し撮り時においても、ベクトル検出誤差を抑え、精度良く被写体角速度を算出することができる。
【００３８】
なお、本実施例では、被写体角速度を算出するための平均化フレーム数については特に限定しないが、検出した被写体の状態に応じて変更することが望ましい。例えば、被写体が大きく、ベクトル検出可能な検出枠が多い場合は、各フレームで算出された被写体角速度は誤差が比較的少ない。したがって、この場合には、被写体角速度の平均を求めるために用いるフレーム数を少なくする。
【００３９】
以上説明したように、実施例１によれば、被写体角速度の算出時に、所定のフレーム数での平均を求めることで、ベクトル検出可能な枠数が少ない場合の検出誤差に起因する被写体角速度算出誤差を小さく抑えることができる。その結果、流し撮りアシスト機能の効果を十分に得ることができるようになる。
【００４０】
（実施例２）
次に、実施例２について説明する。実施例２の撮像装置は、過去の所定数のフレーム間で算出された各フレーム毎の被写体角速度情報について、検出精度がより高いと想定される情報に対し、重み付けを行った上で、平均を算出する。これにより、被写体角速度の検出精度をさらに良くする。実施例２の構成は、実施例１と同様である。
【００４１】
図５は、実施例２の撮像装置が実行する被写体角速度算出処理の例を説明するフローチャートである。
Ｓ５０１乃至Ｓ５０６は、図３、Ｓ３０１乃至Ｓ３０６と同様の制御を行っている。また、図５、Ｓ５１０乃至Ｓ５１１は、図３のＳ３１１乃至Ｓ３１２と同様の制御を行っているので、説明を省略する。
【００４２】
Ｓ５０７において、被写体角速度算出部１５２が、カウンタ値を引数としたバッファに被写体角速度の算出結果を保存する。被写体角速度算出部１５２は、さらに、このフレームでのベクトル算出に使用したベクトル検出枠数も保存する。続いて、Ｓ５０８において、被写体角速度算出部１５２が、Ｓ５０７において保存した所定フレーム分の被写体角速度に対して、重み付けを行う。
【００４３】
図６は、被写体角速度に対する重み付けの一例を示す図である。
図６（Ａ）は、被写体が検出できた枠の個数に対する重み付け率（第１の重み付け率）を示す。ベクトルが検出できている枠の個数が多いほどベクトルの精度が高い。したがって、本実施例の撮像装置は、枠検出個数に応じて重み付け率を上げる設定をする。
【００４４】
図６（Ｂ）は、最新の取得データに対して何フレーム前のデータを使用するかに応じて設定される重み付け率（第２の重み付け率）を示す。被写体角速度はフレーム間ではほとんど変化しないが、あまりにも過去のフレームに遡ると、被写体角速度が異なる。例えば、現在のデータと例えば１０フレーム前のデータでは、約０．３秒の差がある。したがって、実施例１の撮像装置は、現在のフレームについての被写体角速度に対する重み付け率を最大にし、過去のフレームに遡るに従い、重み付け率を下げる。
【００４５】
図６（Ｃ）は、図６（Ａ）および図６（Ｂ）の重み付け設定によって重み付けが行われたデータを用いた被写体角速度の算出例を示す。
図６（Ｃ）に示す例では、撮像装置は、時間軸合計割合を用いて、被写体角速度の平均の算出に、過去何フレーム数分のデータを用いるかを決定し、決定したフレーム数分のデータに基づいて平均値を算出する。この例では、時間軸合計割合は、現在のフレームから過去に遡った複数のフレームについての第１の重み付け率と第２の重み付け率の合計である。もちろん、時間軸合計率割合として、第１の重み付け率または第２の重み付け率のうちいずれかの合計を用いるようにしてもよい。撮像装置は、時間軸合計割合が閾値を超えるフレームまで遡ったうえで、全体の平均値を算出する。閾値を３００とすると、図６（Ｃ）に示すように、撮像装置は、現在のフレームを含む過去５フレームの被写体角速度のそれぞれに、重み付け率の合計（第１の重み付け率＋第２の重み付け率）を乗じて加算する。そして、加算結果を最後のフレームについての時間軸合計割合である３１０で除算することで、平均値を算出する。
【００４６】
図５の説明に戻る。Ｓ５０９において、被写体角速度算出部１５２が、図６を参照して説明した重み付けが施された全データに基づいて、被写体角速度の平均値を算出する。この算出処理では、各フレームにおいて算出されたそれぞれの被写体角速度の誤差要因を考慮した上で、誤差が少ないと考えられるデータに対してより大きな重み付けが行われている。したがって、被写体角速度の検出時の誤差を低減することができる。
【００４７】
実施例２によれば、被写体角速度算出時、誤差要因に応じて必要フレームに対する重み付けを行った上で所定フレーム間の平均を求めることで、ベクトル検出枠数が少ない場合の検出誤差に起因する被写体角速度算出誤差をさらに小さく抑えることができる。その結果、流し撮りアシスト機能の効果を十分に得ることができるようになる。
【００４８】
（実施例３）
次に、実施例３について説明する。実施例３においては、まず、主被写体に対するベクトル検出枠数の数に応じて、被写体角速度の平均値の算出が必要であるかを判定する。また、平均値の算出が必要である場合は、状況に応じて、被写体角速度の平均を算出するフレーム数にリミットを設けることで、信憑性が低い過去のデータをカットする。例えば、被写体の動きが非常に速い場合、被写体を追うためのパンニング速度の時間変化はかなり大きくなるので、被写体角速度の平均を算出するフレーム数にリミットを設ける。これにより、ベクトル検出誤差がより大きいと想定される情報を除外することができ、被写体検出精度が向上する。
【００４９】
図７は、実施例３でのカメラ制御部の動作処理を説明するフローチャートである。
Ｓ７０１において、カメラ制御部１３２が、レリーズスイッチが半押しされたかを判断する。レリーズスイッチが半押しされた場合は、処理がＳ７０２に進む。Ｓ７０２において、カメラ制御部１３２が、ベクトル検出処理を実行する。
【００５０】
次に、Ｓ７０３において、カメラ制御部１３２が、初期設定完了フラグがクリア状態であるかを判断する。初期設定完了フラグがクリア状態でない場合は、処理がＳ７０９に進む。初期設定完了フラグがクリア状態である場合は、処理がＳ７０４に進む。
【００５１】
Ｓ７０４において、カメラ制御部１３２が、現在のベクトル検出状態、特に被写体に対応するベクトル検出枠数を確認する。そして、Ｓ７０５において、カメラ制御部１３２が、主被写体を検出しているベクトル検出枠数が閾値（所定値）以下であるかを判断する。
【００５２】
主被写体を検出しているベクトル検出枠数が閾値以下である場合は、処理がＳ７０６に進む。そして、Ｓ７０６において、カメラ制御部１３２が、フレーム平均算出フラグをセットし、処理がＳ７０８に進む。フレーム平均算出フラグは、被写体角速度の平均を求めることを示すフラグである。
【００５３】
主被写体を検出しているベクトル検出枠数が閾値を超えている場合は、処理がＳ７０７に進む。そして、Ｓ７０７において、カメラ制御部１３２が、フレーム平均算出フラグをクリアする。続いて、Ｓ７０８において、カメラ制御部１３２が、初期設定完了フラグをセットする。その結果、レリーズスイッチ半押し後、被写体角速度の平均を求めるか求めないかのいずれかとなる。これは、平均を求める場合と平均を求めない場合が混在することによるデータのばらつきを防ぐためである。
【００５４】
次に、Ｓ７０９において、カメラ制御部１３２が、被写体角速度算出処理を行う。続いて、Ｓ７１０の判断処理において、レリーズスイッチが全押しされたと判断されるまで、レリーズスイッチが半押し状態の間、Ｓ７０１乃至Ｓ７０９の処理を繰り返す。なお、Ｓ７０１において、レリーズスイッチが半押しされていない場合は、Ｓ７１１において、カメラ制御部１３２が、初期設定完了フラグをクリアして、次の撮影に備える。
【００５５】
図８は、図７のＳ７０９における被写体角速度算出処理の詳細を説明するフローチャートである。
Ｓ８０１において、被写体角速度算出部１５２が、フレーム平均算出フラグがセットされているかを判断する。フレーム平均算出フラグがセットされていない場合は、処理がＳ８０９に進む。そして、Ｓ８０９において、被写体角速度算出部１５２が、現在のベクトルと角速度データとに基づいて被写体角速度を算出する。つまり、被写体角速度の平均の算出処理は行われない。
【００５６】
フレーム平均フラグがセットされている場合は、処理がＳ８０２に進む。Ｓ８０２において、被写体角速度算出部１５２が、実施例２と同様に、被写体角速度に対する重み付け設定を行う。続いて、Ｓ８０３において、被写体角速度算出部１５２が、現在のカメラのパンニング速度（現在の角速度データ）が閾値（所定値）以上であるかを判断する。パンニング速度が閾値以上の場合は、処理がＳ８０４に進む。
【００５７】
Ｓ８０４において、被写体角速度算出部１５２が、パンニング速度に応じたリミッタ設定を行う。パンニング速度が速いほど被写体角速度の変化量が多くなる。したがって、被写体角速度算出部１５２は、パンニング速度に応じて、被写体角速度の平均を求めるための、過去に遡るフレーム数をパンニング速度に応じた数に制限する。具体的には、被写体角速度算出部１５２は、パンニング速度の値が大きいほど、過去に遡るフレーム数を少なくする。
【００５８】
次に、Ｓ８０５において、被写体角速度算出部１５２が、リミッタ設定の結果、被写体角速度の平均を求めるために必要な量のデータが確保できたかを判断する。被写体角速度の平均を求めるために必要な量のデータが確保できていない場合は、処理がＳ８０６に進む。そして、被写体角速度算出部１５２が、流し撮りが失敗する可能性があることをユーザに通知するための警告設定を行う。警告設定により、図９に示すような表示がされる。
【００５９】
被写体角速度の平均を求めるために必要な量のデータが確保できている場合は、処理がＳ８０７に進む。そして、被写体角速度算出部１５２が、リミット設定結果と重み付け設定結果に応じた被写体角速度の算出を行う。
【００６０】
また、Ｓ８０３でパンニング速度が閾値以上でないと判断された場合は、処理がＳ８０８に進む。そして、被写体角速度算出部１５２が、重み付けに応じた被写体角速度の算出を行う。これにより、精度のよい被写体角速度を算出することができる。
【００６１】
以上説明したように、実施例３によれば、被写体の速度に応じてリミッタを設けることで、被写体角速度の変化による誤判定を少なくすることが可能となる。その結果、被写体角速度の誤差を抑え、流し撮りアシスト動作による効果を向上させることが可能となる。  
【００６２】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６３】
１００  交換レンズ
１２０  カメラ本体部
【図１】
0006429633.tif 000002
【図２】
0006429633.tif 000003
【図３】
0006429633.tif 000004
【図４】
0006429633.tif 000005
【図５】
0006429633.tif 000006
【図６】
0006429633.tif 000007
【図７】
0006429633.tif 000008
【図８】
0006429633.tif 000009
【図９】
0006429633.tif 000010
【図１０】
0006429633.tif 000011
【図１１】
0006429633.tif 000012