(57)【要約】【課題】機器の振れを表す信号を用いて、被写体または背景に関する動きベクトルを判別して像振れ補正する像振れ補正装置およびその制御方法において、動きベクトルの判別精度を高めること。【解決手段】機器の振れを表す信号が表す動きと、画像間で検出された動きベクトルそれぞれとの差分を算出する。そして、差分の時間的変化が予め定められた閾値より小さいと判定される動きベクトルを背景領域の動きベクトルと判定する。また、背景領域の動きベクトル以外の動きベクトルから、被写体領域の動きベクトルを判定する。そして、被写体領域の動きベクトルに基づいて像振れ補正を制御する。【選択図】  図５
2018010165.tif 000002
【特許請求の範囲】
【請求項１】
機器の振れを表す信号を取得する取得手段と、
画像間で動きベクトルを検出する検出手段と、
前記信号が表す動きと、前記動きベクトルそれぞれとの差分を算出する算出手段と、
前記差分の時間的変化が予め定められた閾値より小さいと判定される動きベクトルを背景領域の動きベクトルと判定し、前記検出手段が検出した動きベクトルのうち、前記背景領域の動きベクトルと判定した動きベクトル以外の動きベクトルから、被写体領域の動きベクトルを判定する判定手段と、
前記被写体領域の動きベクトルに基づいて、像振れ補正を行う補正手段を制御する制御手段と、
を有することを特徴とする像振れ補正装置。
【請求項２】
前記判定手段は、前記差分の時間的変化が予め定められた閾値より小さいと判定される動きベクトルの大きさが０でない場合に該動きベクトルを前記背景領域の動きベクトルと判定することを特徴とする請求項１に記載の像振れ補正装置。
【請求項３】
前記判定手段は、前記信号のレベルが所定値以下の場合に前記背景領域の動きベクトルの判定を行い、前記信号のレベルが前記所定値以下でない場合には、前記背景領域の動きベクトルの判定を行わずに、前記動きベクトルの大きさの頻度と、前記信号が表す動きの大きさとに基づいて、前記被写体領域の動きベクトルを判定することを特徴とする請求項１または請求項２に記載の像振れ補正装置。
【請求項４】
前記判定手段は、前記検出手段が検出した動きベクトルのうち、大きさの頻度が所定値以上である動きベクトルから前記背景領域の動きベクトルおよび前記被写体領域の動きベクトルを判定することを特徴とする請求項１から請求項３のいずれか１項に記載の像振れ補正装置。
【請求項５】
前記判定手段は、前記検出手段が検出した動きベクトルのうち、前記背景領域の動きベクトルと判定した動きベクトル以外に、前記大きさの頻度が所定値以上である動きベクトルが複数ある場合、大きさが最小である動きベクトルを前記被写体領域の動きベクトルと判定することを特徴とする請求項４に記載の像振れ補正装置。
【請求項６】
前記判定手段は、前記差分の時間的変化が予め定められた閾値より小さいと判定される動きベクトルに関する前記差分を、前記信号を出力するセンサのオフセット成分として記憶することを特徴とする請求項１から請求項５のいずれか１項に記載の像振れ補正装置。
【請求項７】
前記判定手段は、前記オフセット成分が記憶されている場合には、前記背景領域の動きベクトルの判定を行わずに、前記動きベクトルの大きさの頻度と、前記オフセット成分を除去した前記信号が表す動きの大きさとに基づいて、前記被写体領域の動きベクトルを判定することを特徴とする請求項６に記載の像振れ補正装置。
【請求項８】
撮像素子と、
請求項１から請求項７のいずれか１項に記載の像振れ補正装置とを有し、
前記検出手段は、前記撮像素子で得られる動画像のフレーム画像間で前記動きベクトルを検出し、
前記制御手段は、静止画撮影の露光期間に前記像振れ補正を行うように前記補正手段を制御する、
ことを特徴とする撮像装置。
【請求項９】
前記制御手段は、前記補正手段による前記像振れ補正のためのレンズまたは前記撮像素子の駆動を、前記被写体領域の動きベクトルに基づいて制御することを特徴とする請求項８に記載の撮像装置。
【請求項１０】
像振れ補正装置が実行する、前記像振れ補正装置の制御方法であって、
機器の振れを表す信号を取得する取得工程と、
画像間で動きベクトルを検出する検出工程と、
前記信号が表す動きと、前記動きベクトルそれぞれとの差分を算出する算出工程と、
前記差分の時間的変化が予め定められた閾値より小さいと判定される動きベクトルを背景領域の動きベクトルと判定し、前記検出工程で検出された動きベクトルのうち、前記背景領域の動きベクトルと判定した動きベクトル以外の動きベクトルから、被写体領域の動きベクトルを判定する判定工程と、
前記被写体領域の動きベクトルに基づいて、像振れ補正を行う補正手段を制御する制御工程と、
を有することを特徴とする像振れ補正装置の制御方法。
【請求項１１】
像振れ補正装置が有するコンピュータを、請求項１から請求項７のいずれか１項に記載の像振れ補正装置の各手段として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は主に、カメラ等の光学機器に搭載可能な像振れ補正装置およびその制御方法、並びに撮像装置に関する。
【背景技術】
【０００２】
移動被写体のスピード感を表現する撮影技術として流し撮りがある。流し撮りを成功させるには、露光中、撮像面上の被写体の動きに合わせてカメラをパンニングしなければならないが、容易ではない。
【０００３】
そのため、手振れ補正技術を応用した流し撮りアシスト機能が提案されている（特許文献１）。特許文献１の流し撮りアシスト機能は、カメラのパンニング中に撮影された画像から検出される動きベクトルに基づく、移動被写体とカメラの動きとのずれを補正するように手振れ補正用のシフトレンズを駆動することで、移動被写体の像振れを抑制する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３１７８４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このような流し撮りアシスト機能においては、静止させたい被写体領域と、背景領域とを判別する必要がある。特許文献１では、周囲よりも動きベクトルが小さい領域を被写体領域として検出し、被写体領域の動きベクトル（被写体ベクトル）を移動被写体とカメラの動きのずれとして検出している。
【０００６】
一方、カメラやレンズに設けられる角速度センサ（例えばジャイロセンサ）などが出力する、機器の振れを表す信号が表す動きの大きさは、背景領域の動きベクトル（背景ベクトル）の大きさと原理的に一致する。そのため、センサが出力する信号を利用して背景ベクトルを特定することもできる。しかし、パンニング速度が遅い場合など、被写体ベクトルと背景ベクトルとの差が小さい場合には、信号に含まれるオフセット成分の影響で、背景ベクトルを被写体ベクトルと誤検出する可能性がある。オフセット成分はセンサの出力信号に例えばＨＰＦを適用してＤＣ成分を除去することで低減することはできるが、オフセット成分だけでなくパンニングに関する周波数成分も低減されるため、パンニング速度の測定精度が低下する。
【０００７】
本発明は、機器の振れを表す信号を用いて、被写体または背景に関する動きベクトルを判別して像振れ補正する像振れ補正装置およびその制御方法において、動きベクトルの判別精度を高めることを目的とする。
【課題を解決するための手段】
【０００８】
上述の目的は、機器の振れを表す信号を取得する取得手段と、画像間で動きベクトルを検出する検出手段と、信号が表す動きと、動きベクトルそれぞれとの差分を算出する算出手段と、差分の時間的変化が予め定められた閾値より小さいと判定される動きベクトルを背景領域の動きベクトルと判定し、検出手段が検出した動きベクトルのうち、背景領域の動きベクトルと判定した動きベクトル以外の動きベクトルから、被写体領域の動きベクトルを判定する判定手段と、被写体領域の動きベクトルに基づいて、像振れ補正を行う補正手段を制御する制御手段と、を有することを特徴とする像振れ補正装置によって達成される。
【発明の効果】
【０００９】
このような構成により、本発明によれば、機器の振れを表す信号を用いて、被写体または背景に関する動きベクトルを判別して像振れ補正する像振れ補正装置およびその制御方法において、動きベクトルの判別精度を高めることが可能になる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態に係る像振れ補正装置を備えたデジタルカメラの機能構成例を示すブロック図
【図２】実施形態に係る流し撮りアシスト動作に関するフローチャート
【図３】オフセット成分による動きベクトルの誤判別に関して説明するための図
【図４】第１実施形態におけるカメラ制御部の動作に関するフローチャート
【図５】第１実施形態における被写体判定処理に関するフローチャート
【図６】パンニング時の角速度センサ出力と背景ベクトルの変化を模式的に示す図
【図７】第２実施形態に係る像振れ補正装置を備えたデジタルカメラの機能構成例を示すブロック図
【図８】第２実施形態における被写体判定処理に関するフローチャート
【発明を実施するための形態】
【００１１】
以下、本発明の例示的な実施形態のいくつかを、添付図面に基づいて詳細に説明する。なお、以下では本発明の実施形態に係る像振れ補正装置をデジタルカメラに適用した例に関して説明するが、本発明において撮像や撮像画像の記録に関する機能は必須でない。本発明は、動きベクトルを検出するための複数の画像と、像振れを抑制するための可動部材（例えばシフトレンズ）の駆動制御が可能な任意の電子機器や光学機器において実施可能である。このような電子機器の非限定的な例には、デジタルスチルまたはビデオカメラ、銀塩スチルカメラなどの撮像装置、パーソナルコンピュータ、ゲーム機、携帯電話機、携帯情報端末、カーナビゲーションシステム、ドライブレコーダ、ロボットなどが含まれる。また、本発明を実施可能な光学機器の非限定的な例には、交換レンズ、アタッチメントレンズ、双眼鏡、望遠鏡などが含まれる。また、像振れ補正装置の方式は、撮像素子やシフトレンズを駆動する光学式であっても、画素の切り出し位置を制御する電子式であってもよい。また、光学式と電子式とを併用してもよい。
【００１２】
●（第１実施形態）
図１は本発明の第１実施形態に係る像振れ補正装置を備えたデジタルカメラの構成例を示す図である。ここでは、レンズ交換型のデジタルカメラとするが、レンズ一体型のデジタルカメラであってもよい。
【００１３】
像振れ補正機能を有する交換レンズ１００は、カメラ本体部１２０に装着可能な光学機器である。交換レンズ１００は、主撮影光学系１０２、焦点距離を変更可能なズームレンズ１０３、およびシフトレンズ１０４から成るレンズユニット１０１を備える。
【００１４】
ズームエンコーダ１０５はズームレンズ１０３の位置を検出し、検出信号をレンズ制御部１１３に出力する。レンズ制御部１１３は例えばマイクロコンピュータを有し、マイクロコンピュータによってメモリに記憶されたプログラムを実行することにより、像振れ補正機能を含む、交換レンズ１００の動作を制御する。レンズ制御部１１３は、ズームエンコーダ１０５から取得した検出信号から、レンズユニット１０１の焦点距離を得ることができる。レンズ制御部１１３はマウント接点部１１６、１６１を通じてカメラ本体部のカメラ制御部１３２と通信する。また、シフトレンズ１０４は、レンズユニット１０１の光軸と垂直方向に移動可能である。シフトレンズ１０４を振れを相殺するように駆動することにより、像振れを光学的に補正する。
【００１５】
角速度センサ（以下、ジャイロ）１１１は、機器（この場合はカメラ本体部１２０および交換レンズ１００）の振れを検出し、振れを表す振れ信号をレンズ制御部１１３に出力する。レンズ制御部１１３は振れ信号をＡ／Ｄ変換し、ジャイロデータとして取得する。なお、ジャイロ１１１はカメラ本体部１２０に設けられてもよい。
【００１６】
また、レンズ制御部１１３は、手振れ補正制御を行う手振れ補正制御部１１７と、流し撮りアシスト用の制御を行う流し撮り制御部１１８を備える。手振れ補正制御部１１７および流し撮り制御部１１８は、レンズ制御部１１３のマイクロプロセッサがプログラムを実行することによって実現される。
【００１７】
レンズ制御部１１３はその他にもフォーカスレンズ制御、絞り制御等も行うが、簡略化のために図示を省略する。ドライバ１１４はレンズ制御部１１３からの制御信号に従った駆動方向および駆動量で、シフトレンズ１０４を駆動する。ドライバ１１４は、補正部材としてのシフトレンズ１０４と、シフトレンズ１０４を駆動するための機構部材（アクチュエータなど）とともに像振れ補正部を構成する。
【００１８】
アンプ１１５は、シフトレンズ１０４の位置センサ１０６の出力を増幅してレンズ制御部１１３に出力する。なお、本実施形態では、直交する２軸（例えば横方向と縦方向）に関して振れの検出および像振れ補正を行うものとするが、軸が異なっても同じ方法で実施可能であるため、以下では１軸に関する像振れ補正に関して説明する。
【００１９】
カメラ本体部１２０は、露出制御に用いるシャッター１２１や、ＣＭＯＳ（相補型金属酸化膜半導体）センサ等の撮像素子１２２を備える。撮像素子１２２の出力する撮像信号は、アナログ信号処理回路１２３で処理された後、カメラ信号処理回路１２４に送られる。タイミングジェネレータ（ＴＧ）１２５は、撮像素子１２２やアナログ信号処理回路１２３の動作タイミングを設定する。
【００２０】
操作部１３１は、ユーザがカメラ本体部１２０に各種の入力を行うための入力デバイス群である。操作部１３１には、例えばスイッチ、ボタン、レバー、タッチパネル等の物理的な操作を必要とする入力デバイスだけでなく、音声入力や視線入力を受け付ける入力デバイスが含まれてもよい。操作部１３１には例えば電源スイッチ、レリーズスイッチ、流し撮りアシストモードを有効とするか否かの切り替えスイッチ等が含まれる。また、操作部１３１は、レリーズボタンのハーフストロークでＯＮになるスイッチ（ＳＷ１）と、フルストロークでＯＮになるスイッチ（ＳＷ２）を有している。なお、レリーズボタンは静止画の撮影に用いられ、動画の撮影については動画記録ボタンが別途用意されていてもよい。
【００２１】
ＳＷ１のＯＮは撮影準備動作の開始指示である。撮影準備動作には、ＡＦ（オートフォーカス）処理およびＡＥ（自動露出）処理が含まれる。ＡＥ処理やＡＦ処理は、例えばライブビュー表示用の画像から得られる情報に基づいてカメラ制御部１３２が実施することができる。
【００２２】
また、ＳＷ２のＯＮは記録用画像の撮影動作の開始指示である。生成された記録用画像はカメラ信号処理回路１２４で必要に応じて符号化処理を行ったのち、記録形式に応じたデータファイルに格納し、メモリカード１７１に記録される。
【００２３】
カメラ制御部１３２は、は例えばマイクロコンピュータを有し、マイクロコンピュータによってメモリに記憶されたプログラムを実行することにより、カメラ本体部１２０全体の動作を制御する。例えば、カメラ制御部１３２はシャッター用のドライバ１３３に制御信号を出力し、シャッター駆動用のモータ１３４を駆動制御する。メモリカード１７１は撮影された画像のデータを記録する記録媒体である。
【００２４】
表示部１７２は、液晶パネル（ＬＣＤ）等の表示デバイスを備え、ビューファインダーとして機能したり、撮影した画像を表示するために用いられたりする。カメラ本体部１２０は、交換レンズ１００とのマウント接点部１６１を備える。レンズ制御部１１３とカメラ制御部１３２は、マウント接点部１１６および１６１を介して所定のタイミングでシリアル通信を行う。
【００２５】
カメラ信号処理回路１２４は、アナログ信号処理回路１２３が出力する撮像信号に対してホワイトバランス調整やデモザイク処理などのいわゆる現像処理などを適用する。また、ＲＧＢ−ＹＣｂＣｒ変換などの信号形式の変換、記録形式に応じた符号化および復号、画像の縮小および拡大、画像の合成、色調の調整、ＡＦ評価値の生成、特定被写体の検出および認識処理など、様々な画像処理を実行することができる。代表的な特定被写体は人物の顔であり、特定被写体の認識処理は表情や個人の認識であるが、これらに限定されない。カメラ信号処理回路１２４は動きベクトル検出部１４１を備え、異なるタイミングで撮影された複数の画像間で領域ごとの動きベクトルを検出する。
【００２６】
２つのフレーム画像間で動きベクトルを検出する方法としては、公知のテンプレートマッチング法を用いることができる。２枚のフレーム画像のうち基準とする一方（例えば先に撮影された一方）を基準画像、他方を参照画像とする。そして、基準画像における所定のサイズの矩形領域をテンプレート枠として設定し、参照画像には相関値を算出するための、テンプレート枠より大きな矩形領域をサーチ範囲としてテンプレート枠ごとに設定する。これにより、テンプレート枠ごとに動きベクトルが検出される。
【００２７】
動きベクトル検出部１４１による動きベクトルの検出結果はカメラ制御部１３２に出力される。なお、カメラ信号処理回路１２４の機能の少なくとも一部は、ＦＰＧＡやＡＳＩＣのようなハードウェアで実現されてもよいし、例えばカメラ信号処理回路１２４が有するプロセッサがプログラムを実行することによって実現されてもよい。
【００２８】
カメラ制御部１３２は、ヒストグラム作成部１５０と、被写体判定部１５１と、流し撮りにおいて静止させたい被写体を静止させるためのカメラのパンニング角速度（以下、被写体角速度という）を算出する被写体角速度算出部１５２とを備える。ヒストグラム作成部１５０は、動きベクトル検出部１４１の出力から、動きベクトルの大きさの頻度分布（ヒストグラム）を生成する。
【００２９】
被写体判定部１５１は、動きベクトルのヒストグラムと、レンズ制御部１１３から受信するジャイロデータとを用いて、被写体の動きベクトル（被写体ベクトル）を判定する。また、被写体角速度算出部１５２は、被写体判定部１５１で判定された被写体ベクトルを角速度に換算する。被写体角速度算出部１５２は、動きベクトルを角速度に換算する際、レンズユニット１０１の焦点距離、動きベクトルの検出に用いた画像の撮影間隔（またはフレームレート）、撮像素子１２２の画素ピッチなどを用いる。被写体角速度算出部１５２は、換算された角速度と、受信するジャイロデータとに基づいて、被写体角速度を算出する。
【００３０】
操作部１３１の電源スイッチが電源ＯＮ状態に操作されると、カメラ制御部１３２が操作を検出し、カメラ本体部１２０の各部への電源供給を開始させるとともに、初期設定処理を実行する。マウント接続部１６１、１０６を通じて交換レンズ１００へも電源供給が開始される。
【００３１】
交換レンズ１００への電源供給が開始されるとレンズ制御部１１３がこれを検知し、交換レンズ１００の初期設定処理を実行する。そしてレンズ制御部１１３とカメラ制御部１３２との間で、所定の手順に従って通信を確立する。このレンズ−カメラ間通信を用い、カメラ本体部１２０から交換レンズ１００へはカメラ本体部の状態や撮影の設定に関する情報などが送信される。また交換レンズ１００からカメラ本体部１２０へは交換レンズ１００の焦点距離や絞り値などの情報、ジャイロデータなどが送信される。
【００３２】
さらに、流し撮りアシストが有効である場合、カメラ本体部１２０から交換レンズ１００に対して、流し撮りアシストが有効であるという情報と、被写体角速度算出部１５２が算出した被写体角速度の情報とが送信される。レンズ制御部１１３は、流し撮りアシストが有効である場合にはシフトレンズ１０４の駆動制御を流し撮り制御部１１８で実行し、流し撮りアシストが有効でない場合には、シフトレンズ１０４の駆動制御を手振れ補正制御部１１７で実行するように決定する。
【００３３】
図１において、カメラ制御部１３２、カメラ信号処理回路１２４、レンズ制御部１１３が像振れ補正装置を構成する。ただし、像振れ補正に関するレンズ制御部１１３の機能はカメラ制御部１３２で実施することも可能であるため、カメラ制御部１３２とカメラ信号処理回路１２４で像振れ補正装置を構成することができる。
【００３４】
図２は、流し撮りアシストが有効である場合の、レンズ制御部１１３およびカメラ制御部１３２の動作の概略を示したフローチャートである。ここでＳ２０１〜Ｓ２０７はレンズ制御部１１３内の動作を示し、Ｓ２１１〜Ｓ２１６はカメラ制御部１３２内の動作を示している。本実施形態のデジタルカメラは、静止画撮影モードのスタンバイ状態において、動画撮影と撮影した動画の表示とを逐次実行し、表示部１７２をビューファインダとして機能させる。図２に示す処理は、流し撮りアシストが有効な静止画撮影モードのスタンバイ状態およびＳＷ１がＯＮの状態で実行することができる。
【００３５】
レンズ制御部１１３は、角速度センサ（ジャイロ）１１１の出力を例えば４ｋＨｚのサンプリング周波数で継続的にサンプリングしている。Ｓ２０１において、レンズ制御部１１３は、カメラ本体部１２０が動きベクトル検出を行う２フレームの画像の撮影時刻（ｔ１，ｔ２とする）の経過期間（ｔ１〜ｔ２）に取得したジャイロデータの平均値をカメラへ送信する。ここで送信されるジャイロデータ４２１は、ジャイロ１１１のオフセットを含んでいる。
【００３６】
カメラ制御部１３２はＳ２１１でジャイロデータ４２１を受信する。Ｓ２１２において被写体角速度算出部１５２は、Ｓ２１１で受信したジャイロデータと、被写体判定部１５１で判定した被写体ベクトルから被写体角速度を算出し、Ｓ２１３で被写体角速度をレンズ制御部１１３に送信する。ここで送信される被写体角速度４２２は、ジャイロ１１１のオフセットを含んでいる。
【００３７】
Ｓ２０２でレンズ制御部１１３は、カメラ制御部１３２から被写体角速度４２２を受信する。静止画撮影の開始指示（ＳＷ２のＯＮ）がＳ２０３、Ｓ２１４で検出されるまで、レンズ制御部１１３ではＳ２０１〜Ｓ２０２を繰り返し実行し、カメラ制御部１３２ではＳ２１１〜Ｓ２１３を繰り返し実行する。なお、図２では便宜上レンズ制御部１１３がＳＷ２のＯＮを検出するように記載しているが、実際にはカメラ制御部１３２がＳＷ２のＯＮをＳ２１４で検出すると、レンズ制御部１１３に通知する。
【００３８】
ＳＷ２のＯＮを検出すると、Ｓ２１５でカメラ制御部１３２は静止画撮影の処理を開始する。カメラ制御部１３２はドライバ１３３を通じてモータ１３４を駆動制御し、シャッター１２１を開いて撮像素子１２２の露光を開始する。また、レンズ制御部１１３は、Ｓ２０４で、直前に受信した被写体角速度から、現時点のジャイロデータを減算して、シフトレンズ１０４の駆動目標値を算出する。なお、露光開始時にレンズ制御部１１３は、レンズユニット内の絞りを駆動してもよい。
【００３９】
Ｓ２０５でレンズ制御部１１３は、ドライバ１１４へ駆動目標値に基づく駆動信号を出力し、シフトレンズ１０４を駆動する。レンズ制御部１１３は、Ｓ２０４およびＳ２０５における駆動目標値の算出およびシフトレンズ１０４の駆動を、静止画撮影の露光期間が終了するまで継続して実行する。
【００４０】
Ｓ２１６でカメラ制御部１３２は露光期間の終了を待機し、露光期間が終了するとシャッター１２１を閉じ、処理をＳ２１１に戻して、スタンバイ状態の動作を継続する。また、Ｓ２１６でカメラ制御部１３２は露光期間の終了をレンズ制御部１１３に通知する。Ｓ２０７で露光期間の終了を通知されるとレンズ制御部１１３はシフトレンズ１０４を中心位置に戻す。
【００４１】
このように、流し撮りアシスト機能が有効の場合、デジタルカメラのパンニングと、被写体の動きとのずれをシフトレンズ１０４の動きで補正し、被写体領域の像振れを抑制する。
【００４２】
ここで、本発明が解決しようとする課題について説明する。
流し撮りアシストに用いるジャイロデータはジャイロのオフセットを含んでいるが、ジャイロデータに基づいて算出される被写体角速度もまたジャイロのオフセットを含んでいる。Ｓ２０４で算出されるシフトレンズ１０４の駆動目標値は、オフセットを含んだ被写体角速度から、オフセットを含んだジャイロデータを減算することで得られるため、駆動目標値はオフセットを含んでいない。つまり、ジャイロデータにオフセットが含まれていても、流し撮りアシスト動作には影響を与えない。
【００４３】
しかし、被写体の動きベクトル（被写体ベクトル）と背景の動きベクトル（背景ベクトル）とを判別する際にはジャイロデータそのものを用いるため、ジャイロデータに含まれるオフセットの影響が生じうる。特に、パンニング速度が遅い場合のように、被写体ベクトルと背景ベクトルとの大きさの差が小さい場合に、オフセットの影響により背景ベクトルを被写体ベクトルと誤判定してしまう場合がある。このような誤判定がなされると、背景の振れを抑制するようにシフトレンズが駆動されるため、被写体の像が振れ、背景が静止した画像が得られてしまう。
【００４４】
図３を用いて、この誤判定についてより具体的に説明する。図３は、動きベクトル検出部１４１が画像の領域ごとに検出した動きベクトルについてヒストグラム作成部１５０が生成した、１軸方向の動きベクトルの大きさの頻度分布を表すヒストグラムの例を示す。図３（ａ）はパンニング速度が速い（被写体角速度が大きい）場合、図３（ｂ）はパンニング速度が遅い場合の例である。
【００４５】
また、図３（ａ）および図３（ｂ）には、動きベクトルの検出に用いられた２画像の撮影時刻を始点と終点とする期間に計測されたジャイロデータを動きベクトルの大きさに換算した値の、オフセットを含む場合（上）と含まない場合（下）の分布範囲を示した。パンニング速度が速い場合、背景ベクトルと被写体ベクトルとは大きさの差が大きい。そのため、ジャイロデータにオフセットが含まれている場合と含まれていない場合とで、ジャイロデータに値が近い動きベクトル群に変化がない。そのため、動きベクトルのうち、ジャイロデータとの差分が大きく、かつ大きさが０に近い動きベクトルを被写体ベクトルと判定すれば、ジャイロデータにオフセットが含まれていても正しく判定ができる。
【００４６】
しかしながら、パンニング速度が遅い場合には、ジャイロデータにオフセットが含まれている場合と含まれていない場合とでは、ジャイロデータに値が近い動きベクトル群が異なる。図３（ｂ）の例では、ジャイロデータにオフセットが含まれている場合、ジャイロデータとの差分が大きい動きベクトルは背景ベクトルであるため、背景ベクトルを被写体ベクトルと誤判定してしまう。
【００４７】
本発明は、図３（ｂ）に示すような状況においても正しい判定を実現する。以下、具体的な手法について説明する。図４はカメラ制御部１３２の流し撮りアシスト動作に関するフローチャートを示している。
Ｓ４０１でカメラ制御部１３２は、動きベクトルの検出に用いる前フレームと現フレームとの間に計測されたジャイロデータのレベル（ここでは平均値）をレンズ制御部１１３から取得する。平均値を用いるのは、動きベクトルとジャイロデータの検出タイミングを合わせるためである。
【００４８】
Ｓ４０２でカメラ制御部１３２は、カメラ信号処理回路１２４の動きベクトル検出部１４１で検出された動きベクトルのデータを取得する。
Ｓ４０３でカメラ制御部１３２（ヒストグラム作成部１５０）は、動きベクトルの大きさに関するヒストグラムを作成する。
Ｓ４０４でカメラ制御部１３２は、Ｓ４０３で作成したヒストグラムにおいて、頻度が所定値を超えた動きベクトルが存在するかどうか（頻度にピークが存在するかどうか）を判定する。カメラ制御部１３２は、頻度が所定値を超えた動きベクトルが存在すると判定されればＳ４０５へ、判定されなければＳ４１０へ、処理を進める。
【００４９】
Ｓ４０５でカメラ制御部１３２は、Ｓ４０１で取得したジャイロデータの平均値が所定値以下かどうか判定し、所定値以下と判定されればＳ４０６へ、判定されなければＳ４０７へ、処理を進める。ここで用いる所定値は例えば、被写体ベクトルと背景ベクトルとの大きさに十分な差があり、ジャイロ１１１のオフセットが存在しても上述した誤判定が生じないと判定されるパンニング速度に相当する値として決定することができる。
【００５０】
Ｓ４０６でカメラ制御部１３２（被写体判定部１５１）は、被写体判定処理を実行し、動きベクトル検出部１４１で検出された動きベクトルから、被写体ベクトルを判定し、処理をＳ４０８に進める。被写体判定処理の詳細は図５を用いて後述する。
【００５１】
Ｓ４０７でカメラ制御部１３２は、通常の被写体判定処理を実行し、処理をＳ４０８に進める。具体的には、カメラ制御部１３２は、頻度がピーク値を有する動きベクトルのうち、ジャイロデータの平均値との差分が大きく、かつ大きさが０に近い動きベクトルが存在すれば、被写体ベクトルと判定する。ジャイロデータの平均値が所定値以下と判定されない場合は、パンニング速度が速い場合であるため、ジャイロデータにオフセットが含まれていても通常の判定で正しい判定結果が得られる。
【００５２】
なお、頻度がピーク値を有する動きベクトルが複数存在する場合、大きさが最も０に近い動きベクトルを被写体ベクトルと判定するか、大きさが所定値未満でピーク値が最も高い動きベクトルを被写体ベクトルと判定するかは適宜定めることができる。また、ヒストグラムにおいて隣接する複数のビンの頻度が所定値を超える場合、それらの平均値を被写体ベクトルとするなどしてもよい。
【００５３】
Ｓ４０８においてカメラ制御部１３２は、Ｓ４０６またはＳ４０７で被写体ベクトルが判定されたかどうかを判定し、判定されたと判定されればＳ４０９へ、判定されたと判定されなければＳ４１０へ、処理を進める。
Ｓ４０９でカメラ制御部１３２（被写体角速度算出部１５２）は、Ｓ４０６あるいはＳ４０７で判定された被写体ベクトルと、Ｓ４０１で取得したジャイロデータの平均値とから被写体角速度を算出し、処理をＳ４１１に進める。
【００５４】
Ｓ４１０でカメラ制御部１３２は、被写体角速度を０に設定し、処理をＳ４１１に進める。被写体角速度が０の場合、レンズ制御部１１３は流し撮りアシストが有効であっても通常の手振れ補正動作を実行する。
【００５５】
なお、ここでは１軸方向の処理について説明したが、実際には複数の軸のそれぞれについてＳ４０３〜Ｓ４１０の処理を行い、軸ごとに被写体角速度が算出される。カメラ制御部１３２は算出した被写体角速度をＳ４１１でレンズ制御部１１３に送信する。
【００５６】
Ｓ４１２でカメラ制御部１３２は、ＳＷ２がＯＮかどうかを判定し、ＯＮと判定されれば処理をＳ４１３に進め、ＯＮと判定されなければ処理をＳ４０１に戻してＳ４０１〜Ｓ４１１を繰り返し実行する。
【００５７】
Ｓ４１３でカメラ制御部１３２は記録用画像の撮影処理を開始する。カメラ制御部１３２はドライバ１３３を通じてモータ１３４を駆動制御し、シャッター１２１を開いて撮像素子１２２の露光を開始する。
Ｓ４１４でカメラ制御部１３２は露光期間の経過を待機し、露光期間が経過すると処理をＳ４０１に戻す。またカメラ制御部１３２は、記録用画像データの生成および記録に関する制御を行う。
【００５８】
次に、Ｓ４０６で実施する、パンニング速度が遅い場合（ジャイロデータの平均値が所定値以下の場合）の被写体判定処理について、図５のフローチャートを用いて説明する。
Ｓ５０１でカメラ制御部１３２（被写体判定部１５１）は、Ｓ４０３で生成したヒストグラムで、出現頻度が所定値以上の動きベクトルのそれぞれについて、Ｓ４０１で取得したジャイロデータの平均値との差分を算出してメモリに記憶する。なお、被写体判定部１５１は、動きベクトルを角速度に換算するか、ジャイロデータを動きの大きさに換算して差分を算出する。
【００５９】
Ｓ５０２で被写体判定部１５１は、差分を算出した回数（Ｓ５０１の実行回数）をメモリに記憶する。
Ｓ５０３で被写体判定部１５１は、メモリに記憶した差分算出回数が所定回数以上かどうか判定し、所定回数以上と判定されればＳ５０４へ、判定されなければＳ５１３へ、処理を進める。
【００６０】
Ｓ５０４で被写体判定部１５１は、メモリに記憶した差分の時間的変化に関する評価値を、動きベクトルごとに算出する。評価値の種類に制限はないが、例えば差分の最大値と最小値の差や、差分の分散などであってよい。なお、頻度が所定値以上となる動きベクトルの大きさは時間と共に変化することがある。そのため、同じ大きさの動きベクトルについて差分が算出されていない場合には、大きさの差が所定の範囲内である動きベクトルを同じ動きベクトルとみなし、差分の時間的変化を評価することができる。
【００６１】
Ｓ５０５で被写体判定部１５１は、差分の時間的変化が閾値未満の動きベクトルがあるかどうか判定する。閾値には、差分の時間的変化が十分に少ないと判定するための値を、評価値に応じて適宜定めることができる。被写体判定部１５１は、差分の時間的変化が閾値未満の動きベクトルが１つでもあると判定されればＳ５０６へ、判定されなければＳ５１３へ、処理を進める。
【００６２】
なお、Ｓ５０４〜Ｓ５０５の処理は、他の方法で行ってもよい。例えば、今回算出した差分との差が閾値以内である差分が所定回数継続して算出されていれば、今回算出した差分に対応する動きベクトルを、差分の時間的変化が閾値未満の動きベクトルと判定してもよい。
【００６３】
Ｓ５１３で被写体判定部１５１は、Ｓ４０７と同様に通常の被写体判定処理を実行し、被写体判定処理を終了する。
【００６４】
Ｓ５０６で被写体判定部１５１は、差分の時間的変化が閾値未満の動きベクトルの大きさが０かどうか判定し、０と判定されればＳ５１２へ、判定されなければＳ５０７へ、処理を進める。
【００６５】
Ｓ５０７で被写体判定部１５１は、差分の時間的変化が閾値未満で、大きさが０でない動きベクトルを背景ベクトルと判定し、処理をＳ５０８に進める。
図６（ａ）は、左から右に等速度で移動する被写体について、撮影者の観察角度と見かけの角速度との関係を示している。また、図６（ｂ）は、図６（ａ）における、Ａ、Ｂ、Ｃの時点での検出された動きベクトルと、ジャイロデータが表す動きの大きさとの関係を模式的に示している。図６に示すように、被写体が撮影者の前を横切る場合、背景ベクトルと被写体ベクトルの差分は変動するのに対し、オフセットを含むジャイロデータが表す動きの大きさと、背景ベクトルの大きさとの差分（図６（ｂ）のｄ）は一定となる。そのため、ジャイロデータが表す動きの大きさとの差分の時間的変化が十分に少ない大きさを有する動きベクトルを、背景ベクトルとして判定することができる。
【００６６】
Ｓ５０８で被写体判定部１５１は、Ｓ５０７で背景ベクトルと判定した動きベクトル以外に、差分を算出している動きベクトルがあるか否かを判定し、あると判定されればＳ５０９へ、あると判定されなければＳ５１２へ、処理を進める。
【００６７】
Ｓ５１２で被写体判定部１５１は、被写体なしと判定し、被写体判定処理を終了する。Ｓ５１２が実行されるのは、パンニングが行われていない場合（Ｓ５０６，Ｙｅｓ）か、被写体ベクトルが存在しない場合（Ｓ５０８，Ｎｏ）である。
【００６８】
Ｓ５０９で被写体判定部１５１は、背景ベクトルと判定した動きベクトル以外で差分を算出している動きベクトルが複数あるかどうかを判定し、複数あると判定されればＳ５１０へ、判定されなければＳ５１１へ、処理を進める。
【００６９】
Ｓ５１０で被写体判定部１５１は、差分を算出している（すなわち、頻度が所定値以上の）複数の動きベクトルのうち、大きさが０に最も近い（大きさが最小）の動きベクトルを被写体ベクトルと判定し、被写体判定処理を終了する。
【００７０】
また、Ｓ５１１で被写体判定部１５１は、背景ベクトルと判定した動きベクトル以外の、差分を算出している（すなわち、頻度が所定値以上の）動きベクトルを被写体ベクトルと判定し、被写体判定処理を終了する。
【００７１】
Ｓ４０６で実施する被写体判定処理では、動作開始から差分が所定回数算出されるまでは差分の時間的変化に基づく動きベクトルの判定が行われないが、差分が所定回数算出された後は、直近の所定回数分の差分に基づいて動きベクトルの判定が可能である。
【００７２】
以上説明したように、本実施形態によれば、画像間で検出された複数の動きベクトルの大きさと、機器の振れを検出するセンサの出力が表す動きの大きさとの差分の時間的変化に基づいて、背景領域の動きベクトルを判定するようにした。これにより、センサの出力にオフセットが含まれている場合であっても、背景領域の動きベクトルを精度良く判定することができる。そのため、背景領域の動きベクトルを被写体領域の動きベクトルと誤判定することを抑制し、ユーザの意図に合った被写体に対する流し撮りアシスト機能を実現できる。
【００７３】
なお、本実施形態では機器の動きが遅いと判定される場合にだけ、差分の時間的変化に基づく動きベクトルの判定を実施したが、機器の動きの速さに関わらず実施するようにしてもよい。
【００７４】
●（第２実施形態）
次に本発明の第２実施形態について説明する。本実施形態では、特に撮影前のパンニング時間が短い場合における動きベクトルの誤判定を抑制する。
図７は本発明の第２実施形態に係る像振れ補正装置を備えたデジタルカメラの構成例を示す図である。本実施形態のデジタルカメラ７００はレンズ一体型であるが、第１実施形態と同じ機能を有するブロックには図１と同じ参照数字を付して説明を省略する。
【００７５】
本実施形態では第１実施形態におけるレンズ制御部１１３に相当する機能をカメラ制御部７０１が有している。なお、図７では、カメラ制御部１３２が実現する機能ブロックのうち、像振れ補正および流し撮りアシスト機能に関する機能ブロックのみを記載している。なお、以下の説明では第１実施形態と同様、１軸についての振れ補正の動作を説明するが、実際には２軸以上について同様の動作を実施する。図７において、カメラ制御部７０１およびカメラ信号処理回路１２４が像振れ補正装置を構成する。
【００７６】
平均値算出部７１１は、動画像のフレーム間に出力されたジャイロ１１１の出力の平均値を算出する。目標値算出部７１２は、流し撮りアシスト時のシフトレンズの駆動目標値を算出する。平均値算出部７１１および目標値算出部７１２が、図１の流し撮り制御部１１８に相当する。
【００７７】
レンズ駆動制御部７２１は、シフトレンズ１０４を、撮影スタンバイ時は手振れ補正制御部１１７の出力に基づいて、露光中は目標値算出部７１２の出力に基づいて駆動する。そのため、デジタルカメラ７００では撮影スタンバイ時には常に手振れ補正機能が動作する。
【００７８】
平均値算出部７３１は、動画像のフレーム間に出力された、シフトレンズ１０４の位置センサ１０６の出力の平均値を算出する。この平均値は、シフトレンズの移動量に相当する。
被写体判定部７５１は、動きベクトル検出部１４１が検出した動きベクトルから被写体領域の動きベクトル（被写体ベクトル）を判定する。そして、被写体判定部７５１は、判定した被写体ベクトルから、平均値算出部７３１が算出した平均値を減算して被写体角速度算出部１５２に出力する。
【００７９】
これは、本実施形態では撮影スタンバイ時に手振れ補正機能が動作するため、第１実施形態におけるパンニング速度と被写体角速度の差分が、第２実施形態においては、判定された被写体ベクトルからシフトレンズの移動量を減算した結果になるためである。
【００８０】
図８は、第２実施形態における被写体判定部７５１の動作に関するフローチャートである。第１実施形態においてはパンニング速度が遅いと判定されない場合には通常の被写体判定処理を実行したが、本実施形態においてはパンニング速度にかかわらず図８に示した被写体判定を実行する。従って、本実施形態の流し撮りアシスト動作では、図４のＳ４０４で、頻度が所定値以上の動きベクトルがあると判定された場合、Ｓ４０６〜Ｓ４０７の代わりに以下の処理を実行する。
【００８１】
Ｓ８０１で被写体判定部７５１は、ヒストグラム作成部１５０で作成したヒストグラムから、頻度が所定値以上の動きベクトルを選択する。
Ｓ８０２で被写体判定部７５１は、ジャイロ１１１のオフセットをメモリに記憶済かどうか判定し、記憶済と判定されればＳ８１５へ、判定されなければＳ５０１へ処理を進め、以下、Ｓ５０５まで第１実施形態と同様に処理する。
【００８２】
Ｓ５０５で被写体判定部１５１は、差分の時間的変化が閾値未満の動きベクトルが１つでもあると判定されればＳ８０７へ、判定されなければＳ５１３へ、処理を進める。
Ｓ８０７で被写体判定部７５１は、差分の時間的変化が閾値未満と判定された動きベクトルの差分を、オフセットデータとして記憶し、処理をＳ５０６に進める。以降の処理は第１実施形態と同様である。
【００８３】
Ｓ８１５で被写体判定部７５１は、オフセットのリセット処理が必要かどうか判定し、必要と判定されればＳ５０１へ、判定されなければＳ８１６へ、処理を進める。被写体判定部７５１は例えば、オフセットを記憶した後にジャイロ１１１への電源供給がＯＦＦになったことがある場合や、オフセットを記憶した時点からの経過時間が所定時間を超えている場合に、リセット処理が必要と判定することができる。
【００８４】
ジャイロ１１１へ電源供給を開始した際にユーザがカメラを動かしているかどうかにより、オフセットが異なる可能性が高いため、オフセットを記憶した後に電源供給がやり直されている場合にはリセットして再度オフセットを取得する。また、オフセットを記憶した後の経過時間が長いと、温度変化などによってオフセットがドリフトしている可能性があるため、やはり再度オフセットを取得する。
【００８５】
Ｓ８１６で被写体判定部７５１は、取得したジャイロデータから記憶しているオフセットデータを減算してオフセット成分を除去する。オフセット成分を除去したジャイロデータが表す動きは、背景領域の動きベクトルと一致するため、被写体判定部７５１は、処理をＳ５１３に進めて通常の被写体判定処理を行う。
【００８６】
以上説明したように、本実施形態によれば、シフトレンズの位置情報を利用することにより、手振れ補正機能が動作している状態においても、第１実施形態と同様の効果を得ることができる。
【００８７】
さらに、画像間で検出された複数の動きベクトルのうち、機器の振れを検出するセンサの出力が表す動きと、大きさとの差分が一定となる動きベクトルを検出し、その差分をセンサのオフセット成分として記憶するようにした。そのため、撮影前のパンニング時間が短い場合など、パンニングの角速度を得るのに十分な時間が無い場合であっても、センサ出力からオフセット成分を除去することができ、被写体ベクトルを正しく判定することができる。その結果、流し撮りアシスト機能の精度を高めることができる。
【符号の説明】
【００８８】
１００…交換レンズ、１０４…シフトレンズ、１１１…角速度センサ（ジャイロ）、１１３…レンズ制御部、１２０…カメラ本体部、１３２…カメラ制御部、１４１…動きベクトル検出部、１５１、７５１…被写体判定部、１５２…被写体角速度算出部
【図１】
2018010165.tif 000003
【図２】
2018010165.tif 000004
【図３】
2018010165.tif 000005
【図４】
2018010165.tif 000006
【図５】
2018010165.tif 000007
【図６】
2018010165.tif 000008
【図７】
2018010165.tif 000009
【図８】
2018010165.tif 000010