(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024171307
(43)【公開日】2024-12-11
(54)【発明の名称】撮像装置、電子機器およびそれらの制御方法
(51)【国際特許分類】
H04N 23/68 20230101AFI20241204BHJP
G03B 5/00 20210101ALI20241204BHJP
【FI】
H04N23/68
G03B5/00 K
G03B5/00 G
【審査請求】未請求
【請求項の数】32
【出願形態】OL
(21)【出願番号】P 2024025573
(22)【出願日】2024-02-22
(31)【優先権主張番号】P 2023088074
(32)【優先日】2023-05-29
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】小西 一樹
(72)【発明者】
【氏名】安田 龍一郎
(72)【発明者】
【氏名】成田 優
【テーマコード(参考)】
2K005
5C122
【Fターム(参考)】
2K005BA32
2K005BA44
2K005CA15
2K005CA22
2K005CA29
5C122DA03
5C122EA06
5C122EA41
5C122FA11
5C122FF09
5C122FF23
5C122FH01
5C122FH10
5C122FH11
5C122FH12
5C122HA13
5C122HA35
5C122HA46
5C122HA88
(57)【要約】
【課題】被写体ブレ補正機能を適切に適用可能な撮像装置およびその制御方法を提供すること。
【解決手段】画像における主被写体の位置の変化を抑制する被写体ブレ補正が可能な撮像装置である。撮像装置は、主被写体の動きが、予め定められた特定の動きであるか否かを判別する。そして、主被写体の動きが特定の動きであると判別された場合、撮像装置は被写体ブレ補正の実行を中断する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
画像における主被写体の位置の変化を抑制する被写体ブレ補正が可能な撮像装置であって、
前記主被写体の動きが、予め定められた特定の動きであるか否かを判別する判別手段と、
前記主被写体の動きが前記特定の動きであると前記判別手段により判別された場合に、前記被写体ブレ補正の実行を中断するように前記撮像装置を制御する制御手段と、
を有することを特徴とする撮像装置。
【請求項2】
前記制御手段は、前記主被写体の動きが前記特定の動きであると前記判別手段により判別されなくなると、前記被写体ブレ補正の実行を再開するように前記撮像装置を制御することを特徴とする請求項1に記載の撮像装置。
【請求項3】
画像から前記被写体ブレ補正の対象とする主被写体の領域を検出する検出手段と、
前記検出手段が検出した前記領域の位置に基づいて、前記被写体ブレ補正の目標位置を取得する取得手段と、をさらに有し、
前記判別手段は、前記検出手段が検出した前記領域の位置と、前記目標位置との差に基づいて、前記主被写体の動きが前記特定の動きであるか否かを判別する、
ことを特徴とする請求項1に記載の撮像装置。
【請求項4】
前記取得手段は、前記検出手段が検出した前記領域の位置にローパスフィルタ処理を適用して得られる位置を前記主被写体の位置として前記目標位置を取得することを特徴とする請求項3に記載の撮像装置。
【請求項5】
前記判別手段は、前記差の絶対値の積算値の大きさに基づいて、前記主被写体の動きが前記特定の動きであるか否かを判別することを特徴とする請求項3に記載の撮像装置。
【請求項6】
前記判別手段は、積算期間の異なる複数の積算値の大きさに基づいて、前記主被写体の動きが前記特定の動きであるか否かを判別することを特徴とする請求項3に記載の撮像装置。
【請求項7】
前記判別手段は、前記主被写体の動きが前記特定の動きであるか否かを方向ごとに判別することを特徴とする請求項1に記載の撮像装置。
【請求項8】
前記判別手段は、前記主被写体の動きが前記特定の動きであるか否かを、垂直方向について水平方向よりも優先して判別することを特徴とする請求項1に記載の撮像装置。
【請求項9】
前記判別手段は、前記主被写体の動きが前記特定の動きであるか否かを、複数の方法を用いて判別することを特徴とする請求項1に記載の撮像装置。
【請求項10】
前記判別手段は、前記複数の方法のそれぞれの判別結果を示す指標を重み付け加算した指標に基づいて、前記主被写体の動きが前記特定の動きであるか否かを判別することを特徴とする請求項9に記載の撮像装置。
【請求項11】
前記複数の方法が、画像における前記被写体ブレ補正の対象とする主被写体の領域の位置に関する周波数成分に基づく指標を用いる第1の方法と、前記位置の移動平均に基づく指標を用いる第2の方法と、前記位置の極大値および極小値に基づく指標を用いる第3の方法とのうち、2つ以上を含むことを特徴とする請求項9に記載の撮像装置。
【請求項12】
前記複数の方法が前記第1の方法を含み、
前記判別手段は、前記第1の方法で前記主被写体の動きが前記特定の動きであるか否かを判別できた場合には他の方法で判別を行わず、前記第1の方法で前記主被写体の動きが前記特定の動きであるか否かを判別できない場合には他の方法を用いて判別を行うことを特徴とする請求項11に記載の撮像装置。
【請求項13】
前記特定の動きが往復移動であることを特徴とする請求項1に記載の撮像装置。
【請求項14】
前記主被写体の動きが、前記予め定められた特定の動きであるか否かを判別するために用いるパラメータの1つ以上が、可変値を有することを特徴とする請求項1に記載の撮像装置。
【請求項15】
前記パラメータには固定値を有するパラメータが含まれることを特徴とする請求項14に記載の撮像装置。
【請求項16】
前記可変値を有するパラメータが、前記主被写体の位置に関する値の積算区間、および、前記積算区間における積算値に適用する判定閾値のいずれかであることを特徴とする請求項14に記載の撮像装置。
【請求項17】
前記可変値を有するパラメータが、撮影フレームレート、フレームあたりの露光時間、撮影シーンの明るさのいずれかに応じた値を有することを特徴とする請求項16に記載の撮像装置。
【請求項18】
前記制御手段は、移動しない被写体を撮影するための撮影モードが設定されている場合、前記撮影モードが設定されていない場合よりも前記被写体ブレ補正の実行が中断がされやすくなるように前記撮像装置を制御することを特徴とする請求項1に記載の撮像装置。
【請求項19】
前記制御手段は、撮影時の像倍率または焦点距離が大きいほど、前記被写体ブレ補正の実行が中断がされやすくなるように前記撮像装置を制御することを特徴とする請求項1に記載の撮像装置。
【請求項20】
前記制御手段は、前記主被写体の背景のコントラストが高いほど、前記被写体ブレ補正の実行が中断がされやすくなるように前記撮像装置を制御することを特徴とする請求項1に記載の撮像装置。
【請求項21】
前記制御手段は、撮像された画像の背景領域の空間周波数スペクトルにおいて、予め定められた閾値以上の空間周波数成分の割合が閾値以上であれば、前記背景のコントラストが高いと判定することを特徴とする請求項20に記載の撮像装置。
【請求項22】
前記制御手段は、前記被写体ブレ補正の実行が中断がされやすくなるように前記撮像装置を制御する代わりに、前記被写体ブレ補正の実行を中断するように前記撮像装置を制御することを特徴とする請求項18に記載の撮像装置。
【請求項23】
前記制御手段は、撮影フレームレートが所定の値以下、フレームあたりの露光時間が所定秒時以上、撮影シーンの輝度が閾値以下、撮影感度が所定の感度を超える、のいずれかである場合に、前記被写体ブレ補正の実行を中断するように前記撮像装置を制御することを特徴とする請求項1に記載の撮像装置。
【請求項24】
画像から検出された主被写体の領域の位置を取得する取得手段と、
前記位置と、前記位置にローパスフィルタ処理を適用した値との差の絶対値の積算値に基づいて、前記主被写体が往復移動を含んだ動きをしているか否かを判別する判別手段と、を有することを特徴とする請求項1に記載の撮像装置。
【請求項25】
撮像手段を用いて取得した動画の複数の画像間での主被写体の位置の変化を抑制する処理を制御する制御手段を有し、
前記制御手段は、動画撮影中に前記主被写体が前記撮像手段に対して第1の方向及び前記第1の方向と逆方向の第2の方向へ交互に繰り返して移動する第1の動きを行っている場合は、動画撮影中に前記主被写体が前記撮像手段に対して前記第1の動きとは異なる第2の動きを行っている場合よりも前記主被写体の位置の変化を抑制する度合いが小さくなるように前記処理を制御することを特徴とする電子機器。
【請求項26】
前記処理は、前記撮像手段を用いて取得した画像から前記主被写体を含む部分画像を切り出す位置を変更することで前記主被写体の位置の変化を抑制することを特徴とする請求項25に記載の電子機器。
【請求項27】
前記制御手段は、前記主被写体の動きが前記第2の動きから前記第1の動きに変化したら前記処理における前記主被写体の位置の変化を抑制する度合いを小さくすることを特徴とする請求項25または26に記載の電子機器。
【請求項28】
前記制御手段は、前記度合いを小さくしたのち、前記主被写体の動きが前記第1の動きから前記第2の動きに変化したら前記度合いを大きくすることを特徴とする請求項27に記載の電子機器。
【請求項29】
前記主被写体が前記第2の動きを行っているときは前記処理を行い、前記主被写体の動きが前記第2の動きから前記第1の動きに変化したら前記処理を中断することを特徴とする請求項25に記載の電子機器。
【請求項30】
画像における主被写体の位置の変化を抑制する被写体ブレ補正が可能な撮像装置が実行する制御方法であって、
前記主被写体の動きが、予め定められた特定の動きであるか否かを判別することと、
前記主被写体の動きが前記特定の動きであると判別された場合に、前記被写体ブレ補正の実行を中断するように前記撮像装置を制御することと、
を有することを特徴とする撮像装置の制御方法。
【請求項31】
撮像手段を用いて取得した動画の複数の画像間での主被写体の位置の変化を抑制する処理を制御する電子機器が実行する制御方法であって、
動画撮影中に前記主被写体が前記撮像手段に対して第1の方向及び前記第1の方向と逆方向の第2の方向へ交互に繰り返して移動する第1の動きを行っている場合は、動画撮影中に前記主被写体が前記撮像手段に対して前記第1の動きとは異なる第2の動きを行っている場合よりも前記主被写体の位置の変化を抑制する度合いが小さくなるように前記処理を制御することを特徴とする電子機器の制御方法。
【請求項32】
画像における主被写体の位置の変化を抑制する被写体ブレ補正が可能な撮像装置が有するコンピュータを、請求項1から24のいずれか1項に記載の撮像装置が有する各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は撮像装置、電子機器およびそれらの制御方法に関する。
【背景技術】
【0002】
特定被写体の位置に応じて切り出し位置を制御したり、補正レンズを駆動したりすることにより、撮像画像における被写体の位置変化(被写体ブレ)を抑制する被写体ブレ補正機能が知られている(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特定被写体の移動方向や速度が一定であれば、被写体位置を検出または予測精度が高くなるため、被写体ブレ補正の精度も高くなる。一方で、特定被写体の移動方向や速度が一定でない場合には被写体位置の検出または予測精度が低下する。例えば特定被写体がジャンプ動作を繰り返す場合のように、往復移動を含んだ動作をしている場合、移動方向が逆転するタイミングごとに被写体位置の検出または予測精度が低下する。この結果、撮像された動画において、特定被写体も背景も位置が安定しなくなる恐れがある。
【0005】
本発明はその一態様において、被写体ブレ補正機能を適切に適用可能な撮像装置、電子機器およびそれらの制御方法を提供する。
【課題を解決するための手段】
【0006】
本発明はその一態様において、画像における主被写体の位置の変化を抑制する被写体ブレ補正が可能な撮像装置であって、主被写体の動きが、予め定められた特定の動きであるか否かを判別する判別手段と、主被写体の動きが特定の動きであると判別手段により判別された場合に、被写体ブレ補正の実行を中断するように撮像装置を制御する制御手段と、を有することを特徴とする撮像装置を提供する。
【発明の効果】
【0007】
本発明の一態様によれば、被写体ブレ補正機能を適切に適用可能な撮像装置、電子機器およびそれらの制御方法を提供することができる。
【図面の簡単な説明】
【0008】
【
図1】実施形態に係る撮像装置の一例としてのデジタルカメラの機能構成例を示すブロック図
【
図2】実施形態における被写体ブレ補正の制御動作に関するフローチャート
【
図3】実施形態で利用可能なローパスフィルタの例示的な回路図
【
図4A】第1実施形態における主被写体の動き判別動作に関するフローチャート
【
図4B】第1実施形態における主被写体の動き判別動作に関するフローチャート
【
図5】第2実施形態における主被写体の動き判別動作に関するフローチャート
【
図6】第3実施形態における主被写体の動き判別動作に関するフローチャート
【
図7】第3実施形態における主被写体の動き判別方法2~3に関する図
【
図8】第4実施形態における主被写体の動き判別動作に関するフローチャート
【
図9】第3実施形態における主被写体の動き判別方法1に関する図
【
図10】第1実施形態における判定指標の出力の一例を示す図
【
図11】第1実施形態における主被写体位置とそのLPF出力の時系列変化の一例を示す図
【発明を実施するための形態】
【0009】
以下、添付図面を参照して本発明をその例示的な実施形態に基づいて詳細に説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定しない。また、実施形態には複数の特徴が記載されているが、その全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0010】
なお、以下の実施形態では、本発明をデジタルカメラで実施する場合に関して説明する。しかし、本発明は撮像機能を有する任意の電子機器でも実施可能である。このような電子機器には、ビデオカメラ、コンピュータ機器(パーソナルコンピュータ、タブレットコンピュータ、メディアプレーヤ、PDAなど)、携帯電話機、スマートフォン、ゲーム機、ロボット、ドローン、ドライブレコーダが含まれる。これらは例示であり、本発明は他の電子機器でも実施可能である。
【0011】
●(第1実施形態)
(デジタルカメラ1の構成)
図1は、本発明を実施可能な撮像装置の一例であるレンズ交換式デジタルカメラ1の機能構成例を示すブロック図である。
図1では、デジタルカメラ1に交換レンズ31が装着された状態を示している。
【0012】
交換レンズ31はデジタルカメラ1に設けられたレンズマウント2に着脱可能に装着される。交換レンズ31とレンズマウント2とには、交換レンズ31がレンズマウント2に装着されると接触するように構成された端子が設けられている。端子を通じてデジタルカメラ1から交換レンズ31に電力が供給される。また、デジタルカメラ1のCPU15との交換レンズ31の制御回路36とは、端子を通じて通信可能である。
【0013】
交換レンズ31は撮像素子3の撮像面に被写体の光学像を形成する撮像光学系を有する。撮像光学系は可動レンズを含む複数のレンズから構成される。ここでは可動レンズの例として、ブレ補正レンズ32とフォーカスレンズ33とを示している。
【0014】
絞り34は開口量を調整可能である。絞り34の開口量は、CPU15からの命令に従って制御回路36が制御する。絞り34の開口量(F値)は、ユーザが手動で変更することもできる。
【0015】
通信ドライバ35は、カメラ側の通信ドライバ21との通信をサポートする。
【0016】
制御回路36は例えばマイクロプロセッサであり、EEPROM37に記憶されているプログラムを内部メモリに読み込んで実行することにより、可動レンズの駆動や絞りの開口量を制御したり、交換レンズ31の情報をデジタルカメラ1に送信したりする。
【0017】
EEPROM37は、交換レンズ31の固有情報や設定値、制御回路36が実行するプログラムなどを記憶する。
【0018】
撮像素子3は例えば原色ベイヤ配列のカラーフィルタを有する公知のCCDもしくはCMOSカラーイメージセンサであってよい。撮像素子3は複数の画素が2次元配列された画素アレイと、各画素から信号を読み出すための周辺回路とを有する。各画素は光電変換によって入射光量に応じた電荷を蓄積する。露光期間に蓄積された電荷量に応じた電圧を有する信号を各画素から読み出すことにより、交換レンズ31が有する撮像光学系が撮像面に形成する被写体像を表す画素信号群(アナログ画像信号)が得られる。
【0019】
撮像回路4はアナログ画像信号に対してノイズ低減処理やゲインなどを適用する。
【0020】
画像処理回路5は、撮像回路4の出力する信号をA/D変換して画像データに変換し、予め定められた画像処理を適用することにより、表示用画像データや記録用画像データを生成する。
【0021】
画像処理回路5が適用可能な画像処理には、例えば、前処理、色補間処理、補正処理、データ加工処理、特殊効果処理などが含まれうる。
前処理には、信号増幅、基準レベル調整、欠陥画素補正などが含まれうる。
色補間処理は、撮像素子にカラーフィルタが設けられている場合に行われ、画像データを構成する個々の画素データに含まれていない色成分の値を補間する処理である。色補間処理はデモザイク処理とも呼ばれる。
補正処理には、ホワイトバランス調整、階調補正、撮像光学系101の光学収差に起因する画像劣化の補正(画像回復)、撮像光学系101の周辺減光の影響の補正、色補正などの処理が含まれうる。
データ加工処理には、合成、スケーリングなどの処理が含まれうる。表示用画像データや記録用画像データの生成もデータ加工処理に含まれる。
特殊効果処理には、ボケ効果の付加、色調の変更、リライティングなどの処理などが含まれうる。
なお、これらは画像処理回路5が適用可能な処理の例示であり、画像処理回路5が適用する処理を限定するものではない。画像処理回路5が処理した画像データは、用途に応じて様々な機能ブロックに供給される。
【0022】
VRAM6は、表示用画像データを格納するほか、記録用画像データのバッファメモリなどとしても用いられる。VRAM6に格納された表示用画像データはD/A変換回路7により表示に適した形式のアナログ画像信号に変換されたのち、表示装置であるLCD8に表示される。
【0023】
圧縮/伸長回路9は、VRAM6に格納された記録用画像データを符号化してデータ量を削減する。圧縮/伸長回路9はまた、符号化した画像データを格納したデータファイルを生成し、記憶用メモリ10に記録する。圧縮/伸長回路9はさらに、記憶用メモリ10に記録された画像データを読み出して復号し、VRAM6に格納する。
【0024】
記憶用メモリ10は、例えばメモリカードのような着脱可能な記憶媒体であってよい。記憶用メモリ10はデジタルカメラ1が撮像した画像データを保存するために用いられる。
【0025】
AE処理回路11は画像処理回路5の出力する画像データに基づいて、予め定められたAE評価値を算出する。そしてAE処理回路11は、AE評価値に基づいて撮像条件を決定する自動露出制御(AE)処理を行う。AE処理回路11は決定した撮像条件をCPU15に通知する。CPU15は通信ドライバ21を通じて、交換レンズ31に絞り34の目標F値を送信する。交換レンズ31の制御回路36は通信ドライバ35を通じてこの命令を受信すると、絞り34を命令に応じたF値になるよう駆動する。
【0026】
AF処理回路12は画像処理回路5の出力する画像データに基づいて、予め定められAF評価値を算出する。そしてAF処理回路12は、AF評価値に基づいて交換レンズ31の目標位置を決定する自動焦点検出(AF)処理を行う。AF処理回路12は、決定した目標位置をCPU15に通知する。CPU15は通信ドライバ21を通じて、交換レンズ31にフォーカスレンズ33を目標位置に移動させるための命令を送信する。交換レンズ31の制御回路36は通信ドライバ35を通じてこの命令を受信すると、フォーカスレンズ33を命令に応じた位置に移動させる。
【0027】
ブレ検出センサ14は、デジタルカメラ1の動きに応じた信号を出力する。ブレ検出センサ14は例えばジャイロセンサや加速度センサであり、直交する3軸方向および3軸周りの動きに応じた信号を出力する。
【0028】
ブレ検出回路13はブレ検出センサ14の出力信号を処理し、検出されたデジタルカメラ1の動きをCPU15および主被写体検出回路26に供給する。
【0029】
CPU15はデジタルカメラ1の制御部である。CPU15は、EEPROM19に記憶されたプログラムをRAM29に読み込んで実行することにより、デジタルカメラ1の各部の動作を制御し、デジタルカメラ1の機能を実現する。また、CPU15は、交換レンズ31の制御回路36と通信し、交換レンズ31の動作を制御する。
【0030】
また、本実施形態においてCPU15は、主被写体検出回路26が検出した被写体位置に基づいて、主被写体が往復移動しているか否かを判別し、主被写体が往復移動していると判別された場合には主被写体に対する被写体ブレ補正を停止する。詳細については後述する。往復移動とは、移動方向が繰り返し逆転する動きであり、人物被写体であれば、左右方向に身体を揺らしたり、上方へのジャンプを繰り返したりする動きなどである。
【0031】
EEPROM19はCPU15が実行するプログラム、デジタルカメラ1の各種の設定値、GUIデータなどを記憶する。RAM29は、CPU15がプログラムをロードして実行する際に用いるメインメモリである。なお、RAM29とVRAM6とは同じメモリ空間内の別領域であってもよい。
【0032】
タイミング生成回路(TG)16は、撮像素子3、撮像回路4、CPU15の動作を制御するためのタイミング信号を生成する。
センサドライバ17は、TG16の出力するタイミング信号に応じて撮像素子3の動作を制御する。
【0033】
操作スイッチ(SW)18は、ユーザがデジタルカメラ1に各種の指示を入力するために設けられた入力デバイス(ボタン、スイッチ、ダイヤルなど)の総称である。操作SW18を構成する入力デバイスは、割り当てられた機能に応じた名称を有する。例えば、操作SW18には、レリーズスイッチ、動画記録スイッチ、撮影モードを選択するための撮影モード選択ダイヤル、メニューボタン、方向キー、決定キーなどが含まれる。レリーズスイッチは静止画記録用のスイッチであり、CPU15はレリーズスイッチの半押し状態を撮影準備指示、全押し状態を撮影開始指示と認識する。また、CPU15は、動画記録スイッチが撮影スタンバイ状態で押下されると動画の記録開始指示と認識し、動画の記録中に押下されると記録停止指示と認識する。
【0034】
電池20は例えばバッテリパックであり、デジタルカメラ1および交換レンズ31が動作するために必要な電力を供給する。
通信ドライバ21は、レンズマウント2に装着された交換レンズ31が有する通信ドライバ35との通信をサポートする。
【0035】
LED22は、例えばデジタルカメラ1の動作状態や警告などを示す表示に用いられる表示素子である。
スピーカ23はアラームや音声ガイダンスなどの出力に用いられる。
センサ移動モータ25は、撮像素子3水平方向、垂直方向、回転方向に移動させる。センサ移動モータ25の動作はセンサ移動制御回路24を通じてCPU15が制御する。
【0036】
動きベクトル検出回路27は、画像処理回路5の出力する画像データ、例えば動画の複数フレームのデータに基づいて、画像中の被写体の動きベクトルを検出する。動きベクトル検出回路27は、動きベクトルを例えば画像を分割した領域ごとに検出し、検出結果を主被写体検出回路26およびCPU15に出力する。
【0037】
主被写体検出回路26は、画像処理回路5の出力する画像データから、画像中の主被写体領域を検出する。主被写体検出回路26は、検出した主被写体領域の位置、大きさ、信頼度などの情報を出力する。
【0038】
例えば、主被写体検出回路26は、動きベクトル検出回路27が検出した動きベクトルに基づいて画像を背景領域と被写体領域とに分離し、例えば最も中心に近い被写体領域を主被写体領域として検出することができる。
【0039】
あるいは、主被写体検出回路26は、主被写体の種類が予め特定されている場合には、主被写体に該当する特徴領域を検出し、検出した特徴領域の1つを主被写体領域としてもよい。主被写体検出回路26は、例えば人間の顔領域もしくは頭部領域を特徴領域として公知の方法で検出し、最も大きい、中心に近い、または焦点検出領域が設定されている特徴領域を主被写体領域とすることができる。
【0040】
また、CPU15を通じてユーザが指定した主被写体領域の情報が得られる場合、主被写体検出回路26は、主被写体領域について検出された動きベクトルに基づいて次のフレームにおける主被写体領域を検出してもよい。あるいは、主被写体検出回路26は、特定の色を有する領域を特徴領域として検出してもよい。
【0041】
また、主被写体検出回路26は、AF処理回路12から画像内のデフォーカス量の情報を取得し、直前フレームとのデフォーカス量の差分が最も少ない(合焦度合いが最も類似している)領域を特徴領域として検出してもよい。
【0042】
ここで例示した方法に限らず、主被写体検出回路26は、動きベクトル、デフォーカス量、設定されているAF枠、ユーザが指定した領域、特徴領域の検出結果などの1つ以上を用いて、任意の公知の方法で主被写体領域を検出することができる。なお、主被写体検出回路26は、主被写体領域を複数検出してもよい。この場合、主被写体検出回路26は、主被写体らしさに基づいて主被写体領域に順位を付与してもよい。
【0043】
画像変形切出し回路28は、画像処理回路5の出力する画像データに対して、回転、拡大、縮小、トリミング(切出し)などを適用する。
【0044】
詳細については後述するが、本実施形態では画像変形切り出し回路28が画像領域を切り出す位置を、主被写体領域の位置に基づいてCPU15が制御することにより、被写体ブレを補正するものとする。言い換えると、撮像素子3を用いて取得した画像から主被写体を含む部分画像を切り出す位置を変更することで主被写体の位置の変化を抑制する。なお、主被写体領域が複数検出されている場合、主被写体らしさの順位が最も高い主被写体領域を対象とする。画像変形切出し回路28は、処理した画像データを用途に応じてVRAM6の領域に格納する。
【0045】
なお、CPU15は、例えば、ブレ検出回路13の出力に基づいてブレ補正レンズ32および/または撮像素子3を移動させることにより、手ブレ補正を実行することができる。
【0046】
(ブレ補正制御)
次に
図2に示すフローチャートを用いて、本実施形態のデジタルカメラ1が実施するブレ補正制御動作について説明する。この動作は、CPU15がプログラムを実行することによって各部の動作を制御して実現される。また、この動作は、デジタルカメラ1が動画撮影中であり、かつ被写体ブレ補正機能が有効に設定されている場合に実行される。なお、撮影中の動画はライブビュー表示用であっても記録用であってもよい。
【0047】
記録用の動画を撮影している場合、記録用の動画データに加え、表示用の動画データも生成され、LCD8にライブビュー表示される。なお、ここではブレ補正に関する動作について説明し、動画撮影中に実行される他の処理、例えばAE処理、AF処理、表示処理、保存処理などについての説明は省略する。
【0048】
動画が撮影されている間、画像処理回路5からは、例えば各フレームの画像データがAE処理回路、AF処理回路12、動きベクトル検出回路27、主被写体検出回路26、画像変形切り出し回路28に供給される。そして、これらの各回路は上述した処理を実行する。なお、これらの各回路は、画像処理回路5から画像データが供給される全てのフレームについて処理を実行しなくてもよい。
【0049】
S201でCPU15は、被写体ブレ補正を実行可能にするため、被写体ブレ補正を中断する場合に1とする状態フラグの値を0とする。
【0050】
S202でCPU15は、被写体ブレ補正を実行する。上述したようにCPU15は、画像中の主被写体領域の位置変化を抑制するように、画像変形切り出し回路28が画像を切り出す位置を制御することによって被写体ブレを補正する。
【0051】
以下、具体的な被写体ブレ補正動作について説明する。
CPU15は、ブレ検出回路13の出力信号と、主被写体検出回路26による主被写体領域の検出結果とを取得する。CPU15は、主被写体領域の検出結果に含まれる位置情報(例えば領域の中心または重心に対応する画像座標)に対してローパスフィルタ処理(LPF処理)を適用する。LPF処理を適用することにより、検出処理の誤差や、検出結果に反映すべきでない主被写体の動き(例えば、一瞬だけ顔を伏せる動き)が検出結果に与える影響を抑制することができる。
【0052】
LPF処理のカットオフ周波数は、主被写体の動きの特性などを考慮して決定することができる(例えば2~3Hz程度)。また、LPF処理は、例えば
図3に示すような構成のデジタルフィルタでローパスフィルタ出力(LPF_OUT)を得るための演算を位置情報に対してCPU15が適用することによって実現することができる。
【0053】
CPU15は、主被写体領域の位置情報について、水平方向の座標と垂直方向の座標とに以下の式に示す演算を適用してLPF出力(LPF_OUT)を求める。
LPFoutX(n) =
K1・[ CX(n) - LPFoutX(n-1)] + LPFoutX(n-1)
LPFoutY(n) =
K1・[ CY(n) - LPFoutY(n-1)] + LPFoutY(n-1)
ここで、
CX(n):時刻nにおける主被写体領域の水平方向の座標
CY(n):時刻nにおける主被写体領域の垂直方向の座標
LPFoutX(n):時刻nにおける水平方向のLPF出力
LPFoutY(n):時刻nにおける垂直方向のLPF出力
である。なお、座標は予め定められた画像座標系における値である。
なお、K1の値はカットオフ周波数によって定まる。例えばカットオフ周波数を2Hz、サンプリング周波数30Hzに設定した場合は、0.3463程度の値となる。
【0054】
カットオフ周波数は、検出しようとする主被写体の往復移動の特性に基づいて決めることができる。カットオフ周波数の決定において動画撮影時のフレームレートおよび露光時間は考慮しなくてもよい。例えば、歩いている人物や走っている人物などに発生する上下の往復移動の周波数を実験などで予め測定し、測定した周波数がカットされず一瞬だけ顔を伏せる動きなどの不要な動きがカットされるカットオフ周波数をEEPROM19に予め記憶しておいてもよい。あるいは、検出しようとする主被写体の往復移動の特性を測定する測定期間を設け、測定期間において取得した各フレームの画像データに基づいて主被写体の動きベクトルの変化を測定し適切なカットオフ周波数を演算するようにしてもよい。
【0055】
LPF出力の値(LPFoutX(n),LPFoutY(n))を主被写体領域の位置として、CPU15は、画像変形切出し回路28の切り出し位置を制御する。例えばCPU15は、主被写体領域の位置が画像の中心または録画開始時の位置を維持するように画像の切り出し位置(目標位置)を計算する。そして、CPU15は計算した切り出し位置(目標位置)を被写体ブレ補正位置情報として画像変形切出し回路28へ出力する。なお、前回の切り出し位置からの変化量を被写体ブレ補正位置情報としてもよい。
【0056】
主被写体領域が画像の中心に位置するように被写体ブレ補正する場合、被写体ブレ補正位置情報は、例えば座標[LPFoutX(n)-r・X/2,LPFoutY(n)-r・Y/2]となる。
また、主被写体領域が録画開始された際の位置(SX,SY)を維持するように被写体ブレ補正する場合、被写体ブレ補正位置情報は、例えば座標[(1-r)X/2+LPFoutX(n)-SX, (1-r)Y/2+LPFoutY(n)-SY]となる。
ここで、rは画像全体の大きさに対する切り出し比率であり、例えば水平方向および垂直方向のそれぞれについて70%の大きさの領域を切り出す場合、r=0.7となる(r<1)。またX,Yは画像の水平方向および垂直方向の画素数である。
なお被写体ブレ補正位置情報を構成する座標の最小値は0、最大値は(1-r)・X(水平方向)もしくは(1-r)・Y(垂直方向)とする。
【0057】
画像変形切出し回路28は、CPU15から出力される被写体ブレ補正位置情報に応じて画像の一部分を切り出し、VRAM6に格納にする。
【0058】
S203でCPU15は、主被写体が特定の動きをしているか否か、具体的には往復移動しているか否かを判別し、判別結果に応じた値を被写体ブレ補正動作の状態フラグflagにセットする。S203の動作の詳細は後述する。ここで、特定の動きは、往復移動に限らず、被写体ブレ補正が撮像画像の品質を低下させる恐れがある動きである。どのような動きが特定の動きに該当するかは、被写体ブレ補正の具体的な手法などに応じて事前に想定することが可能であるため、CPU15が実行するプログラムに検出方法を含めて予め実装しておくことができる。
【0059】
S204でCPU15は、被写体ブレ補正動作の状態フラグflagの値を参照し、主被写体が特定の動きをしている場合にはS205を実行する。ここでは、状態フラグが、垂直方向または両方向の往復移動を含む動きが検出されたことを示す値を有する場合に、CPU15は、主被写体が特定の動きをしていると見なす。一方、主被写体が特定の動きをしていない場合、CPU15は、S202に処理を戻し、被写体ブレ補正の実行を継続もしくは再開する。
【0060】
S205でCPU15は被写体ブレ補正の実行を中断する。また、CPU15は、被写体ブレ補正を中断している間の、画像変形切出し回路28での切り出し位置を求める。被写体ブレ補正の中断中の切り出し位置は固定値である。この固定値は例えば最後の切り出し位置としてもよいし、別の条件に応じてCPU15が決定してもよい。なお、被写体ブレ補正の実行を中断する代わりに、被写体ブレ補正の強さ(画像中の主被写体領域の位置変化を抑制する強さ)をS202よりも弱めるようにしてもよい。
【0061】
CPU15は、被写体ブレ補正とは独立して、例えば、ブレ検出回路13の出力に基づいてブレ補正レンズ32および/または撮像素子3を移動させて手ブレ補正を行うことができる。被写体ブレ補正の中断中、CPU15は、手ブレ補正を目的として画像の切り出し位置を変更してもよい。CPU15は例えば、ブレ補正レンズ32および/または撮像素子3の駆動で補正できない範囲の動きを補正するように、画像の切り出し位置を変更することができる。
【0062】
S206でCPU15は、S205で求めた固定値からなる被写体ブレ補正位置情報を画像変形切出し回路28に出力する。画像変形切出し回路28は被写体ブレ補正位置情報が示す固定位置に従って画像を切り出してVRAM6に格納する。CPU15は、S203から処理を繰り返す。なお、主被写体の特定の動きが継続して検出されている間、S205の処理はスキップしてもよい。
【0063】
このように、CPU15は、主被写体の特定の動きが検出されている間は被写体ブレ補正を中断する。
【0064】
図4Aおよび
図4Bに示すフローチャートを用いて、S203における動き判別処理の詳細について説明する。
S401でCPU15は、画像の垂直方向における主被写体の動きに関する指標を算出する。具体的には、CPU15は、まず、主被写体領域の垂直方向の座標CY()と、垂直方向のLPF出力LPFoutY()との差分絶対値の積算値を算出する。
【0065】
ここでは積算期間の異なる複数の2つの指標を算出するものとする。具体的には、第1の積算期間として10フレーム(例えば撮影中の動画のフレームレートが30fpsの場合1/3秒)、第2の積算期間として30フレーム(同1秒)とする。また、第1の積算期間の積算値をDef10Y(n)、第2の積算期間の積算値をDef30Y(n)とする。
【0066】
なお、積算期間は長さが重要であり、積算期間をフレーム数で規定する場合には予め定められた基準フレームレートに基づく可変値とする。したがって、実際のフレームレートが基準フレームレートと異なる場合には、積算期間を規定するフレーム数を実際のフレームレートに応じて換算する。例えば、基準フレームレートが30fpsであり、積算期間が10フレームと規定されているものとする。この場合、実際のフレームレートが60fpsであれば積算期間を20フレームとする。
【0067】
ただし、実際のフレームレートが基準フレームレートより低い場合(24fps)については、フレーム数を換算せず、基準フレームレートに基づく積算期間(この場合は10フレーム)としてもよい。
【0068】
また、撮影者が設定したフレームレートに基づく読み出し間隔よりも1フレームの露光時間が長い場合、一般的には露光時間が優先され、設定されたフレームレートより実際のフレームレートが低くなる。例えば、設定されたフレームレートが60fpsの場合、読み出し間隔は1/60秒である。しかし、例えば露光時間が1/40秒(>1/60秒)の場合、フレームレートの上限は40fpsに制限される。デジタルカメラ1が露光時間を自動で設定する場合、露光時間は撮影シーンの明るさに依存する。したがって、フレームレートは撮影シーンの明るさに依存しうる。
【0069】
また、撮影シーンが暗い場合、撮像画像のノイズが増加することにより、主被写体の動きに関する指標の精度が低下する可能性がある。そのため、撮影シーンの輝度が閾値以下の場合(あるいは撮影感度が閾値以上の場合)は、積算期間を延ばして指標の精度低下を抑制してもよい。
【0070】
例えば、撮影感度がISO800を超えると撮像画像のノイズが指標の精度に影響する場合を考える。CPU15は、ユーザ設定または自動設定によって撮影感度がISO800を超える場合、指標を算出するための積算区間を延ばす(フレーム数を増やす)ことができる。例えば、閾値以上のフレームレートを維持するために不足する露光時間を補うためにISO800を超える撮影感度が必要な場合、CPU15は撮影感度をISO800としつつ、適正な露光量相当の指標が得られるように積算区間を延ばすことができる。このように、精度の良い指標が得られるよう、フレームレート、露光時間、および撮影シーンの明るさの1つ以上を考慮して積算区間を変更することができる。
【0071】
そして、CPU15は積算値をそれぞれの積算期間に応じて正規化する。CPU15は、第1の積算期間の積算値Def10Y(n)を、基準のフレームレートとの実際のフレームレートの比で正規化する。これは、積算値Def10Y(n)に適用する閾値が、基準のフレームレートで積算された場合を想定した値であるためである。
【0072】
基準のフレームレート(例えば30fps)より速いフレームレートが設定されている場合、上述したように積算区間(フレーム数)が増加している。基準フレームレートでのフレーム数に対応した値とするため、基準フレームレートに対する実際のフレームレートの比によって積算値を正規化する。例えば実際のフレームレートが60fpsであった場合、積算値を1/2(=30fps/60fps)にする。
【0073】
露光時間を優先したことによりフレームレートが基準フレームレートから変化した場合も、変化後のフレームレートが基準フレームレートより速いければ、積算値をフレームレートの比に応じて正規化する。撮影シーンの明るさを考慮して積算区間を変更した場合も積算区間(フレーム数)が基準フレームレートの場合より増加していれば、フレームレートの比に応じて基準フレームレート時の値となるように正規化する。
【0074】
一方、第2の積算期間の積算値Def30Y(n)は、第2の積算期間と第1の積算期間の比で割って正規化する。ここでは第2の積算期間/第1の積算期間=3であるため、CPU15は積算値Def30Y(n)を3で割って正規化する。
【0075】
CPU15は、正規化後の積算値を積算期間に等しい一定期間、期間内の最大値にクリップし、指標とする。得られた指標をDef10YMAX(n)、Def30YMAX(n)とする。
【0076】
S402でCPU15は、画像の水平方向における主被写体の動きに関する指標を算出する。主被写体領域の水平方向の座標CX()と、水平方向方向のLPF出力LPFoutX()との差分絶対値の積算値を用いることを除き、S401と同様にして算出する。得られた指標をDef10XMAX(n)、Def30XMAX(n)とする。
【0077】
S403でCPU15は、画像の垂直方向および水平方向の両方向(すなわち、斜め方向)における主被写体の動きに関する指標Def10WMAX(n)、Def30WMAX(n)を以下の式によって算出する。
Def10WMAX(n)=( Def10YMAX(n)2 + Def10XMAX(n)2 )1/2
Def30WMAX(n)=( Def30YMAX(n)2 + Def30XMAX(n)2 )1/2
【0078】
CPU15は、このようにして求めた各種の指標に基づいて、S404以降で主被写体の動きを判別する。
まずS404でCPU15は、垂直方向の指標Def10YMAX(n)およびDef30YMAX(n)がいずれも第一の閾値を超えるか否かを判定する。CPU15は、垂直方向の指標がいずれも第一の閾値を超えていると判定されればS405を、判定されなければS406を実行する。
【0079】
第一の閾値はフレームレートに依存して予め例えば実験的に定めておくことができる。
Def10WMAX(n)、Def30WMAX(n)は、積算区間によって正規化されているため積算区間には依存しない。しかし、指標(Def10YMAX(n)、Def30YMAX(n)、Def10XMAX(n)、Def30XMAX(n))は、主被写体領域の座標とそのLPF出力との差分絶対値を用いて算出されるため、フレームレートには依存する。具体的にはフレームレートが遅くなるとLPF効果が生じるため、Def10YMAX(n)とDef30YMAX(n)の差(Def10XMAX(n)とDef30XMAX(n)の差)が小さくなる傾向にある。また、判定の指標となるDef10WMAX(n)、Def30WMAX(n)も小さくなる傾向がある。
【0080】
図10(A)~(C)に、フレームレートごとの判定のための指標Def10YMAX(n)およびDef30YMAX(n)の一例を示している。
図10(A)~(C)に示すように、フレームレートが低速になるにしたがって、往復移動など、被写体ブレ補正が撮像画像の品質を低下させうる特定の動きが生じている区間の指標の値および指標の値の差がは小さくなる。そのため、複数のフレームレートのそれぞれに対して適切な第一の閾値を定めておく。
【0081】
S405でCPU15は、主被写体の動きが垂直方向の往復移動を含んでいると判別し、変数Ver_repeを1にセットする。その後CPU15はS408を実行する。
【0082】
S406でCPU15は、垂直方向の指標Def10YMAX(n)およびDef30YMAX(n)がいずれも第二の閾値以下か否かを判定する。なお、第二の閾値は第一の閾値より小さく、例えば予めフレームレートに依存して実験的に定めておくことができる。CPU15は、垂直方向の指標がいずれも第二の閾値以下と判定されればS407を、判定されなければVer_repeの値は変更せずにS408を実行する。なお、第一の閾値と第二の閾値とを等しくしてもよい。
【0083】
S407でCPU15は、主被写体の動きが垂直方向の往復移動を含まないと判断し、変数Ver_repeをクリアする(0にセットする)。その後CPU15はS408を実行する。
【0084】
S408でCPU15は、S404と同様に、両方向の指標Def10WMAX(n)およびDef30WMAX(n)がいずれも第一の閾値を超えるか否かを判定する。CPU15は、両方向の指標がいずれも第一の閾値を超えていると判定されればS409を、判定されなければS410を実行する。
【0085】
S409でCPU15は、主被写体の動きが両方向の往復移動を含んでいると判別し、変数Both_repeを1にセットする。その後CPU15はS421(
図4B)を実行する。
【0086】
S410でCPU15は、S406と同様に、両方向の指標Def10WMAX(n)およびDef30WMAX(n)がいずれも第二の閾値以下か否かを判定する。CPU15は、両方向の指標がいずれも第二の閾値以下と判定されればS411を、判定されなければBoth_repeの値は変更せずにS421(
図4B)を実行する。
【0087】
S411でCPU15は、主被写体の動きが両方向の往復移動を含まないと判断し、変数Both_repeをクリアする(0にセットする)。その後CPU15はS421(
図4B)を実行する。
【0088】
図4Bに移り、CPU15は、S421以降の処理で被写体ブレ補正動作の状態フラグflagに、変数Ver_repeおよびBoth_repeの値に応じた値をセットする。
S421でCPU15は、変数Ver_repeおよびBoth_repeがいずれも0か否かを判定し、いずれも0と判定されればS431を、判定されなければS422を実行する。
【0089】
S431でCPU15は、主被写体の動きが、垂直方向、両方向のいずれにおいても往復移動を含まないと判定し、状態フラグflagをクリアする(0にセットする)。そして、CPU15はS203の処理を終了する。
【0090】
S422でCPU15は、状態フラグflagの値が2でなく(0か1であり)、かつ、変数Ver_repeの値が1であるという条件を満たすか否かを判定し、条件を満たすと判定されればS432を、判定されなければS423を実行する。
【0091】
S432でCPU15は、主被写体の動きが両方向の往復移動を含まないが、垂直方向の往復移動を含むと判定する。CPU15は、判定に基づいて、状態フラグflagを、垂直方向の往復移動が検出されたことを示す値1にセットする(flag=1)。そして、CPU15はS203の処理を終了する。
【0092】
S423でCPU15は、状態フラグflagの値が2であり、かつ、変数Both_repeの値が1であるという条件を満たすか否かを判定し、条件を満たすと判定されればS433を、判定されなければS424を実行する。
【0093】
S433でCPU15は、主被写体の動きが両方向の往復移動を含む状態が継続していると判定する。CPU15は、判定に基づいて、状態フラグflagを、両方向の往復移動が検出されたことを示す値2にセットする(flag=2)。そして、CPU15はS203の処理を終了する。
【0094】
S424でCPU15は、状態フラグflagの値が1でなく(0か2であり)、かつ、変数Ver_repeの値が1であるという条件を満たすか否かを判定し、条件を満たすと判定されればS434を、判定されなければS425を実行する。
【0095】
S434でCPU15は、主被写体の動きが垂直方向の往復移動を含まない状態から含む状態に変化したと判定する。CPU15は、判定に基づいて、状態フラグflagを、垂直方向の往復移動が検出されたことを示す値1にセットする(flag=1)。そして、CPU15はS203の処理を終了する。
【0096】
S425でCPU15は、状態フラグflagの値が2でなく(0か1であり)、かつ、変数Both_repeの値が1であるという条件を満たすか否かを判定し、条件を満たすと判定されればS435を実行し、判定されなければS203の処理を終了する。条件を満たすと判定されない場合、状態フラグflagの値は変更されない。
【0097】
S434でCPU15は、主被写体の動きが両方向の往復移動を含まない状態から含む状態に変化したと判定する。CPU15は、判定に基づいて、状態フラグflagを、両方向の往復移動が検出されたことを示す値2にセットする(flag=2)。そして、CPU15はS203の処理を終了する。
【0098】
図4Aおよび
図4Bでは、垂直方向の動きについての指標と、両方向(斜め方向)の動きについての指標とに基づいて状態フラグflagの値をセットした。これは、主被写体の垂直方向および水平方向の往復移動のうち、発生頻度の高い垂直方向の往復移動に応じて被写体ブレ補正の実行または中断を制御するためである。例えば主被写体の種類に応じて垂直方向および水平方向の往復移動のどちらを優先するかを予め定めておき、被写体ブレ補正の対象とする主被写体の種類に応じて垂直方向および水平方向の往復移動のどちらを優先するかを変更してもよい。
【0099】
上述の通り、本実施形態では、主被写体の特定の運動を判定するための閾値を、撮影フレームレート、1フレームの露光時間、撮影シーンの明るさの1つ以上を考慮して閾値を変更することで、主被写体の特定の運動を精度よく検出できる。
【0100】
また、CPU15は、移動体を撮影することがないと思われる撮影モードが設定された場合、主被写体の特定の運動を判定するための閾値を通常よりも小さくすることができる。同様に、CPU15は、像倍率(もしくは焦点距離)が大きいほど、主被写体の特定の運動を判定するための閾値を小さくすることができる。閾値を小さくすることにより、被写体ブレ補正が中断されやすくなり、手ブレなどデジタルカメラ1の動きに起因する背景のゆらぎを目立ちにくくすることができる。移動体を撮影することがないと思われる撮影モードとしては、マクロ撮影モード、花撮影モード、建物撮影モードなどであってよいが、これらに限定されない。
【0101】
また、CPU15は、背景のコントラストが高いほど、主被写体の特定の運動を判定するための閾値を小さくすることができる。背景のコントラストが高いと背景のゆらぎが目立ちやすくなるため、閾値を小さくして被写体ブレ補正が中断されやすくする。なお、撮像画像のうち、主被写体の存在する領域以外の輝度値の信号にハイパスフィルタ(もしくはバンドパスフィルタ)を適用し、出力の最大値や積算値を背景のコントラストの指標として求めることができる。画像から背景画像を分離する方法は、公知の任意の方法であってよい。また、背景領域のコントラストに関する指標は、コントラスト方式の自動焦点検出で用いる指標であってよい。また、CPU15は、背景領域に例えばFFTを適用して空間周波数スペクトルを求め、予め定められた閾値以上の空間周波数成分の割合が閾値以上であれば、背景領域のコントラストが高いと判定することができる。
【0102】
なお、フレームレートなどが所定の条件を満たしていない場合は被写体ブレ補正を中断する判定を実行しなくてもよい。本実施形態では、主被写体検出回路26による主被写体領域の座標とそのLPF出力との差分絶対値を用いて、主被写体の特定の運動の有無を判定するための指標を算出している。そのため、上述したように、フレームレートが低下すると、指標を用いた判定精度が低下しうる。
【0103】
図11(A)~(D)は、同じシーンをフレームレート15fps、13fps、10fps、8fpsで撮影した際の主被写体領域の座標(被写体位置)とそのLPF出力の信号値の経時変化の例を示している。フレームレート15fpsでは、主被写体の周期的な動きが明確であり、座標とそのLPF出力との差分も明確に認められる。しかし、フレームレートが13fps以下になると、主被写体の座標変化の振幅が減少するとともに、波形の歪みも大きくなる。さらに、座標変化とLPF出力の差も減少し、フレームレート8fpsでは差がほとんどない。
【0104】
このように、フレームレートの低下とともに、被写体ブレ補正が撮像画像の品質を低下させうる特定の動きの検出が困難になる。そのため、CPU15は、フレームレートが閾値以下であれば、判定を行うことなく被写体ブレ補正を中断してもよい。フレームレートが閾値以下になるのは、フレームレートの明示的な設定に起因する場合に限らない。例えば、フレームあたりの露光時間がユーザ設定または自動露出制御によって、所定の秒時より長くなる場合にもフレームレートが閾値以下になりうる。
【0105】
同様に、撮影感度が閾値以上になる場合も、CPU15は、積算区間の長さを調整する代わりに、無条件に被写体ブレ補正を中断するようにしてもよい。
【0106】
さらに、CPU15は、移動体を撮影することがないと思われる撮影モードが設定された場合、主被写体の特定の運動を判定するための閾値を通常よりも小さくする代わりに、誤検出防止の観点から、無条件に被写体ブレ補正を中断してもよい。
【0107】
また交換レンズ31の焦点距離が所定の焦点距離より短い(広角側)の場合やズームレンズで所定の焦点距離より広角側への変更が行われ場合も、誤検出防止の観点から、被写体ブレ補正を中断する判定自体を実行しないこととする。魚眼レンズなど特定のレンズが装着された場合や、ズームで所定の焦点距離より広角側に操作された場合などが該当する。
このような焦点距離の短いレンズで本発明の機能を利用して撮影を行う場合は、ミニチュアの撮影など被写体に近接して撮影する場合が想定される。そのため移動体が所定範囲から外れるように大きく動いている場合でも、背景は小さく撮影されるためにその動きは目立たないと思われるからである。
【0108】
以上の説明のように本実施形態においては、被写体ブレ補正の対象とする主被写体の動きが、往復移動など、被写体ブレ補正が撮像画像の品質を低下させうる特定の動きであることが検出された場合には、被写体ブレ補正の実行を中断するようにした。そのため、被写体ブレ補正によって撮像画像の品質が低下することを抑制できる。
【0109】
また、特定の動きの判定精度が低下しうる条件下では、そうでない場合よりも被写体ブレ補正の実行が中断されやすくしたり、無条件で被写体ブレ補正の実行を中断するようにすることで、誤判定に起因する撮像画像の品質低下を抑制することができる。
【0110】
●(第2実施形態)
次に、本発明の第2実施形態について説明する。本実施形態はデジタルカメラ1によって実施可能であり、
図2のS203およびS204における動作において第1実施形態と異なる。したがって、第1実施形態と異なる部分について重点的に説明する。
【0111】
図5は、本実施形態における主被写体の動き判別処理(
図2のS203)の詳細に関するフローチャートである。
図5において、第1実施形態と同様の動作を行うステップには
図4Aと同じ参照番号を付すことにより、説明を省略する。
【0112】
S401~S407により、垂直方向の動きに関する指標に基づいて垂直方向の往復移動の有無について判定し、変数Ver_repeの値を設定するまでは第1実施形態と同様である。なお、本実施形態では両方向の動きに関する指標は用いないため、S403は実行しない。S405またはS407の実行後、CPU15はS508を実行する。
【0113】
S508でCPU15は、水平方向の指標Def10XMAX(n)およびDef30XMAX(n)がいずれも第一の閾値を超えるか否かを判定する。CPU15は、水平方向の指標がいずれも第一の閾値を超えていると判定されればS509を、判定されなければS510を実行する。
【0114】
S509でCPU15は、主被写体の動きが水平方向の往復移動を含んでいると判別し、変数Hor_repeを1にセットする。その後CPU15はS203の処理を終了する。
【0115】
S510でCPU15は、水平方向の指標Def10XMAX(n)およびDef30XMAX(n)がいずれも第二の閾値以下か否かを判定する。CPU15は、水平方向の指標がいずれも第二の閾値以下と判定されればS511を、判定されなければHor_repeの値は変更せずにS203の処理を終了する。
【0116】
S511でCPU15は、主被写体の動きが水平方向の往復移動を含まないと判断し、変数Hor_repeをクリアする(0にセットする)。その後CPU15はS203の処理を終了する。
【0117】
S204でCPU15は、被写体ブレ補正動作の状態フラグflagの代わりに変数Ver_repeとHor_repeの値を参照し、主被写体が特定の動きをしている場合にはS205を実行する。ここでは、変数Ver_repeとHor_repeの両方または一方の値が1であれば、CPU15は、主被写体が特定の動きをしていると見なす。一方、主被写体が特定の動きをしていない場合、CPU15は、S202に処理を戻し、被写体ブレ補正の実行を継続もしくは再開する。
【0118】
S205およびS206においてCPU15は、変数Ver_repeだけが1の場合は被写体ブレ補正を垂直方向だけ中断し、変数Hor_repeだけが1の場合は被写体ブレ補正を水平方向だけ中断する。同様に、CPU15は、変数Ver_repeとHor_repeの両方が1であれば、第1実施形態と同様に被写体ブレ補正を垂直方向と水平方向との両方について中断する。
【0119】
なお、垂直方向または水平方向だけ被写体ブレ補正を中止する場合、CPU15は、被写体ブレ補正を中止する方向については固定値、被写体ブレ補正を中止しない方向についてはS202と同様に求めた値を有する被写体ブレ補正位置情報を生成する。固定値は第1実施形態のS205と同様に求めることができる。
【0120】
S206でCPU15は、S205で求めた切り出し位置を画像変形切出し回路28に出力する。画像変形切出し回路28は画像変形切出し回路28は被写体ブレ補正位置情報が示す位置に従って画像を切り出してVRAM6に格納する。
【0121】
本実施形態では主被写体が特定の動きをしているか否かを垂直方向と水平方向とで独立して判別する。また、判別結果に応じて、方向ごとに独立して被写体ブレ補正を中断する。本実施形態においても、第1実施形態と同様の効果を実現できる。また、特定の動きをしていない方向については被写体ブレ補正を継続することにより、被写体ブレ補正の効果も維持することができる。
【0122】
●(第3実施形態)
次に、本発明の第3実施形態について説明する。本実施形態は第2実施形態と同様に主被写体の動きを垂直方向と水平方向とで独立して判定し、方向ごとに独立して被写体ブレ補正を中断する。本実施形態では、主被写体の動きの判別を複数の手法で実施し、各手法による判別結果に基づいて最終的な判別を行う。
【0123】
具体的には本実施形態では、以下の方法1~3を用いて主被写体が特定の動きをしているか否かを判別する。なお、方法1~3は例示であり、他の方法を用いてもよい。また使用する方法は2つ以上であればよい。
【0124】
方法1:主被写体が往復移動しているか否かを、主被写体検出回路26の検出結果(位置)の周波数特性を用いて判別する。周波数特性は例えば高速フーリエ変換(FFT)など公知の方法で求めることができる。FFTはCPU15がプログラムを実行することで実施してもよいし、積和演算器を有するマイクロプロセッサのような専用回路を設けてFFTを高速に実施してもよい。いずれにせよCPU15は、主被写体の位置に関する周波数特性に基づいて、主被写体が往復移動しているか否かを判別する。
【0125】
方法2:主被写体が往復移動しているか否かを、主被写体検出回路26の検出結果の移動平均を用いて判別する。具体的にはCPU15が主被写体検出回路26の検出結果(位置)とその移動平均との差分の絶対値を、異なる積算期間(例えば第1実施形態における第1の積算期間と第2の積算期間)について積算する。そして、CPU15は、それぞれの積算値に基づいて主被写体が往復移動しているか否かを判別する。
【0126】
方法3:主被写体が往復移動しているか否かを、主被写体検出回路26の検出結果(位置)の極値(極大値と極小値)の間隔に基づいてCPU15が判別する。
【0127】
これらの方法1~3には、それぞれメリットデメリットがある。
方法1は高い検出精度を実現できるが、十分な検出精度を得るのにある程度の時間を要する。例えば128サンプルの出力信号が必要な場合、約4.2秒の時間を要する。また、演算負荷が高いため、専用の処理回路が必要となったり、リソースの競合が生じた場合には使用することができない。また、低周波高速移動体など、往復移動の回数が少ない主被写体に対する判別精度は高くない。
【0128】
方法2は、様々な移動体について往復移動を短時間に判別可能であり、演算負荷も低いという利点がある。しかし、動きの速さによって精度が変動し、中周波数、中速の被写体について判別精度が低下しやすい。また往復移動の振幅の影響を受けやすく、振幅が小さい往復移動に対応しようとすると、判定パラメータの動的変更が必要となる。
【0129】
方法3は、方法2と同様、往復移動を短時間に判別可能であるが、雑音に弱く、主被写体検出結果の小さな変動を極値と誤認識したり、往復移動の判別基準が曖昧になりやすかったりする。
【0130】
このように、個々の方法は異なる特徴を有するため、本実施形態では個々の方法による判別結果を勘案して最終的な判別結果を求める。例えば判定結果を加重平均することにより、個々の方法の判別結果を考慮した最終的な判別結果を得ることができる。
【0131】
図6に示すフローチャートを用いて、本実施形態における主被写体の動き判別処理(
図2のS203)の詳細について説明する。ここでは、同一フレームの画像データについて、上述した方法1~3による判別結果が得られているものとする。
【0132】
S601でCPU15は、方法ごとの重み付け係数を決定する。ここでは方法1の重み付け係数をwft、方法2の重み付け係数をwma、方法3の重み付け係数をwle(Local extremum)とする。CPU15は例えばこれらの重みを以下のようにして決定することができる。
【0133】
方法1の判別精度は経過時間の増加とともに上昇するため、CPU15は、重み付け係数wftについても経過時間の増加とともに増加させる。
具体的には、FFTの開始時にCPU15は時間の計測を開始する。そして、
経過時間<第1の所定秒時(例えば、2秒)ではwft=0
経過時間=第2の所定秒時(>第1の所定秒時)(例えば、4秒)ではwft=第1の重み付け係数(例えば、0.55)とし、
第1の所定秒時≦経過時間<第2の所定秒時の区間は線形補間してwftを決定する。
【0134】
また、CPU15は、方法2および3の重み付け係数を、方法1の重み付け係数wftに基づいて以下のように決定する。
wma=(1-wft)×2÷3
wle=(1-wft)÷3
【0135】
ここでは、経過時間が第2の所定秒時以上の区間では、方法1の判別精度が最も高いものとして、方法2および3の重み付け係数を決定している。なお、経過時間の計測値は、被写体ブレ補正が再開された場合や、被写体ブレ補正の中断中にFFTリソースが使用不可になった場合はリセットされる。
【0136】
ここで
図7を用いて、方法1~3における判別指標の算出方法について説明する。上述した方法ごとの重みは、方法ごとの判別指標に対して適用される。
【0137】
方法1による判別指標P_FFTを、CPU15は、判別周波数以上の周波数成分の積算値と、判別周波数以下の周波数成分の積算値との比に基づいて算出する。判別周波数は、主被写体の往復移動の周波数成分のうち、被写体ブレ補正を中断すべき周波数に基づいて決定することができる。
【0138】
例えば
図9(A)に示すようなフレームレートごとのFFT結果が得られた場合、CPU15は判定指標P_FFTを以下のように算出する。
2Hz以上の周波数の動きについて被写体ブレ補正を中断すべき場合、判別周波数を例えば1.8Hz程度に設定すればよい。ただし、フレームレート(FFTのサンプリング周波数)が異なると得られる周波数が変化するため、判別周波数はフレームレートごとに設定する。
【0139】
図9(B)に、フレームレート30fps、15fps、7.5fpsの場合の判別周波数以上の周波数帯域の強度の積算値を示す。なお、上述した割合の計算において直流成分は考慮しない。
【0140】
30fpsに対する判別周波数を1.76Hzとした場合、15fpsや7.5fpsでほぼ同じ割合が得られる判別周波数は、15fpsで1.54Hz、7.5fpsで1.19Hzとなる。検出すべき被写体の動き周波数が2Hz以上である場合、判別周波数を1.5Hz以上とする条件を加えると、7.5fpsに対する判別周波数は1.55Hzとなる。30fpsおよび15fpsについては判別周波数がもともと1.5Hz以上であるため、上述の値をそのまま用いることができる。このように、フレームレートに応じて、指標算出のためのパラメータ(判別周波数)を変更する。
【0141】
そして、CPU15は、例えば
図7(A)に示すような、予め記憶されている判別指標の値と上述の割合との関係を参照することにより、判別指標を算出することができる。
図7(A)に示すように、判別周波数以上の周波数帯域の強度の積算値の割合が、Ra1(例えば1/3)以下の区間では判別指標P_FFTを0、Ra2(たとえば2/3)以上の区間では判別指標P_FFTを1とする。また、Ra1とRa2との間の割合については、線形補間して判別指標P_FFTを算出する。
図7(A)に示す関係は、例えば関数やテーブルとしてEEPROM19に記憶しておくことができる。
図9(A)の例では、割合69%はRa2より大きいため、CPU15は判別指標P_FFTを1に決定する。
【0142】
なおFFTを行う期間は、経過時間の計測を開始してから、第2の所定秒時の1.5倍が経過するまでの一定期間(例えば、6秒)とする。一定時間の経過後は、FFTを適用する期間を後ろにずらす。
【0143】
方法2による判別指標P_Maを、CPU15は、上述した被写体ブレ補正を中断すべき主被写体の動きのその移動平均との差分の絶対値の積算値に基づく判別閾値に基づいて算出する。すなわち、問題となる主被写体の反復移動に相当する閾値に対してどの程度の値になっているかに基づき算出する。
【0144】
CPU15は、主被写体検出回路26の検出結果(位置)とその移動平均との差の絶対値を積算する。CPU15は、判別閾値に対する、第1の積算期間についての積算値(第1の積算値)の倍率に応じて判別指標P_Maを算出する。例えばCPU15は、
図7(B)に示すように、積算値が判別閾値の0.5倍以下ならば判別指標P_Maを0、1.5倍以上ならば判別指標P_Maを1とする。また、CPU15は、0.5倍を超え、1.5倍に満たない範囲については線形補間して判別指標P_Maを求める。
【0145】
CPU15は、第2の積算期間についての積算値(第2の積算値)についても同様にして判別指標P_Maを求める。この場合、第2の積算期間用の判別閾値を用いる。ここで用いる判別閾値は、フレームレートに応じて変更する。上述したように、フレームレートの低下により、往復移動などの特定の動きが生じている区間の主被写体領域の位置変化の振幅が減少し、被写体位置とその移動平均値との差も小さくなる傾向があるためである。
【0146】
そして、CPU15は、第1の積算期間と第2の積算期間について算出した判別指標P_Maを平均して、方法2による判別指標P_Maとする。この積算区間(フレーム数)は、第1実施形態と同様、フレームレートに応じて変更するものとする。
【0147】
方法3による判別指標P_Leを、CPU15は以下のようにして求める。
CPU15は、主被写体検出回路26の検出結果(位置)の極大値と極小値を検出する。そして、CPU15は、交互に隣接する極大値と極小値との間隔を順次求め直近のフレームレートに応じた所定期間(例えば動画のフレームレートが30fpsであれば2秒)について得られた極値間隔の平均値を算出する。
【0148】
この所定期間は、その期間内に極大値と極小値の間隔を検出し平均値を算出した際の精度を考慮して、実験的に定めておくことができる。フレームレートが低下すると、極大値と極小値の間隔の精度が低下するので、精度を維持するには取得する間隔の数を増加させる必要がある。
【0149】
そこで、基準のフレームレートに対する所定期間を基準値として、他のフレームレートに対する所定期間は、基準のフレームレートとの比率を基準値に乗じて求める。ただし、検出すべき被写体の動きの主な周波数や、検出に要する時間を考慮して、所定期間には上限と下限を設ける。
【0150】
例えば、基準のフレームレート30fpsに対する所定期間を2秒とした場合、48fpsに対する所定期間は2×5/8=1.25秒と求まる。被写体の動きを考慮して、1.25秒を下限値とした場合、48fpsを超えるフレームレートに対する所定期間は1.25秒となる。一方、15fpsに対する所定期間は4秒となる。検出に要する時間を考慮して4秒を上限値した場合、15fps未満のフレームレートに対する所定期間は4秒となる。
【0151】
そしてCPU15は、被写体ブレ補正を中断すべき主被写体の動きの周波数に基づいて予め定められた基準秒時に対する平均値の倍率に応じて判別指標P_Leを算出する。例えばCPU15は、
図7(C)に示すように、平均値が基準秒時の0.5倍以下ならば判別指標P_Leを1、1.5倍以上ならば判別指標P_Leを0とする。また、CPU15は、0.5倍を超え、1.5倍に満たない範囲については線形補間して判別指標P_Leを求める。
【0152】
例えば、被写体ブレ補正を中断すべき主被写体の動きの周波数が2Hz以上であれば、基準秒時は0.25秒とすることができる。この場合、極値間隔の平均値が0.125秒以下ならば判別指標P_Leは1であり、0.375秒以上ならば判別指標P_Leは0である。
【0153】
なお、時刻tにおける主被写体検出回路26の出力をd[t]とした場合、CPU15は出力の極大値と極小値を以下のように判別することができる。なお、Thは極値を判定するための、予め定められた閾値である。
【0154】
d[t]>=d[t+1]+Th かつ d[t]>=d[t+2] +2×Th かつ d[t+1]>d[t+2]
かつ
d[t]>=d[t-1]+Th かつ d[t]>=d[t-2] +2×Th かつ d[t-1]>d[t-2]
を満たす出力d[t]を極大値とする。
【0155】
また、
d[t]<=d[t+1]-Th かつ d[t]<=d[t+2]-2×Th かつ d[t+1]<d[t+2]
かつ
d[t]<=d[t-1]-Th かつ d[t]<=d[t-2]-2×Th かつ d[t-1]><[t-2]
を満たす出力d[t]を極小値とする。
【0156】
CPU15は、方法1~3について、判別指標を水平方向と垂直方向それぞれについて求める。
【0157】
図6に戻り、S602でCPU15は、方法ごとの重み係数と判別指標とに基づいて、水平方向判定値JudXと垂直方向判定値JudYとを以下の式によって求める。
水平方向判定値JudX=
wft×P_FFT(x)+wma×P_Ma(x)+wle×P_Lew1(x)
垂直方向判定値JudY=
wft×P_FFT(y)+wma×P_Ma(y)+wle×P_Lew1(y)
なお、添字(x)は水平方向、(y)は垂直方向の判別指標を示す。
このように、方法1から3の判別指標を方法ごとの重みを用いて加算した判定値を方向ごとに求める。
【0158】
次にS604でCPU15は、判定値JudYが第一の閾値(主被写体が往復移動していると判定する閾値)を超えたか否かを判定し、超えていると判定されればS605を、判定されなければS606を実行する。
【0159】
S605でCPU15は、主被写体の動きが垂直方向の往復移動を含むと判定し、変数Ver_repeを1にセットする。その後CPU15はS608を実行する。
【0160】
S606でCPU15は、判定値JudYが第一の閾値より小さい第二の閾値(被写体の動きに往復移動がないと判定する閾値)以下か否かを判定し、第二の閾値以下と判定されればS607を、判定されなければS608を実行する。
【0161】
S607でCPU15は、主被写体の動きが垂直方向の往復移動を含まないと判定し、変数Ver_repeをクリア(0にセット)する。その後CPU15はS608を実行する。
【0162】
S608でCPU15は、判定値JudXが第一の閾値(主被写体が往復移動していると判定する閾値)を超えたか否かを判定し、超えていると判定されればS609を、判定されなければS610を実行する。
【0163】
S609でCPU15は主被写体の動きが水平方向の往復移動を含むと判定し、変数Hor_repeを1にセットし、S203の処理を終了する。
【0164】
S610でCPU15は、判定値JudXが第一の閾値より小さい第二の閾値(被写体の動きに往復移動がないと判定する閾値)以下か否かを判定し、第二の閾値以下と判定されればS611を、判定されなければS203の処理を終了する。
【0165】
S611でCPU15は、主被写体の動きが水平方向の往復移動を含まないと判定し、変数Hor_repeをクリア(0にセット)し、S203の処理を終了する。
【0166】
その後、CPU15は、第2実施形態と同様にS204~S206を実行する。
【0167】
本実施形態によれば、第2実施形態と同様の効果を得ることができる。また、主被写体が特定の動きをしているか否かを、複数の方法による判別結果を考慮して判別するようにした。そのため、第2実施形態よりも動きの判別に対する信頼性を高めることができる。
【0168】
●(第4実施形態)
次に、本発明の第4実施形態について説明する。本実施形態は第2および第3実施形態と同様に、主被写体が特定の動きをしているか否かを、垂直方向と水平方向とで独立して判別する。また、第3実施形態と同様に、主被写体の動きを方法1~3を用いて判別する。
【0169】
図8に示すフローチャートを用いて、本実施形態における主被写体の動き判別処理(
図2のS203)の詳細について説明する。ここでは、同一フレームの画像データについて、上述した方法1~3による判別結果が得られているものとする。
【0170】
図8に示す動作は、水平方向と垂直方向とで共通に実施するため、以下では方向について区別せずに説明する。実際には
図8に示す動作を水平方向と垂直方向とについて別個に実施し、方向ごとの判別結果が得られる。
【0171】
S801でCPU15は、主被写体検出回路26から検出結果を取得し、経過時間の計測用カウンタの値と対応付ける。このカウンタはFFTの経過時間を計測するカウンタ(FFTカウンタ)とは異なるため、以下では通常カウンタと呼ぶ。
【0172】
S802でCPU15は、FFTを実行するためのリソースが使用可能か否かを判定し、使用可能と判定されればS803を、判定されなければS804を実行する。
【0173】
S803でCPU15は、FFTカウンタの値を取得する。
S804でCPU15は、FFTカウンタの値をリセットする。
【0174】
S805でCPU15は、FFTカウンタの値が第2の所定秒時以上の値か否かを判定し、第2の所定秒時以上の値と判定されればS820を、判定されなければS806を実行する。これにより、FFTの実行時間が第2の所定秒時以上の場合には、検出精度が十分に高くなっている方法1を優先的に実行し、第2の所定秒時未満の場合には方法2または3を優先的に実行する。
【0175】
S806でCPU15は、第3実施形態で説明したように、方法2に従って第1の積算値および第2の積算値を求める。
【0176】
S807でCPU15は、通常カウンタの値が第2の所定秒時よりも短い第1の所定秒時以上か否かを判定し、第1の所定秒時以上と判定されればS811を、判定されなければS808を実行する。これにより、処理開始からの経過時間(処理フレーム数)が第1の所定秒時以上の場合には方法2を優先的に実行し、第1の所定秒時未満の場合には方法3と方法2を優先的に実行する。
【0177】
S808以降の処理でCPU15は、方法3によって主被写体の動きを判別する。S808でCPU15は、第3実施形態で説明したように、方法3に従って主被写体検出回路26の出力における極大値と極小値との間隔の平均値を求める。
【0178】
S809でCPU15は、S808で求めた平均値が第1の間隔閾値以下かつ、S806で求めた第1および第2の積算値のいずれもが第1の積算値閾値以上であるという条件を満たすか否かを判定する。CPU15は、条件を満たすと判定されればS830を、判定されなければS810を実行する。
【0179】
S830でCPU15は、被写体ブレ補正を中断することを決定する。CPU15は、例えば変数Ver_repeおよびHor_repeをいずれも1に設定し、S203の処理を終了する。
【0180】
S810でCPU15は、S808で求めた平均値が第1の間隔閾値より長い第2の間隔閾値以上かつ、S806で求めた第1および第2の積算値のいずれもが第1の積算値閾値より小さい第2の積算値閾値以下であるという条件を満たすか否かを判定する。CPU15は、条件を満たすと判定されればS831を実行する。条件を満たすと判定されなければCPU15は被写体ブレ補正の状態を変更せずにS203の処理を終了する。
【0181】
S831でCPU15は、被写体ブレ補正を再開することを決定する。CPU15は、例えば変数Ver_repeおよびHor_repeをいずれも0に設定し、S203の処理を終了する。
【0182】
S811以降では、方法2によって主被写体の動きを判別する。S811でCPU15は、第1および第2の積算値がいずれも第1の積算値閾値以上か否かを判定し、第1の積算値閾値以上と判定されればS830を、判定されなければS812を実行する。
【0183】
S812でCPU15は、第1および第2の積算値がいずれも第1の積算値閾値より小さい第2の積算値閾値以下か否かを判定し、第2の積算値以下と判定されればS831を実行する。条件を満たすと判定されなければCPU15は被写体ブレ補正の状態を変更せずにS203の処理を終了する。
【0184】
S820以降の処理でCPU15は、方法1によって主被写体の動きを判別する。S820でCPU15は、第3実施形態で説明したように、方法1に従って判別周波数以上の積算値に対する、判別周波数以下の周波数成分の積算値の割合を求める。
【0185】
S821でCPU15は、S820で求めた割合が第1のFFT閾値以上か否かを判定し、第1のFFT閾値以上と判定されればS830を、判定されなければS822を実行する。
【0186】
S822でCPU15は、S820で求めた割合が第1のFFT閾値より小さい第2のFFT閾値以下か否かを判定し、第2のFFT閾値以下と判定されればS831を、判定されなければS806を実行する。これにより、第1の方法で特定の動きが判別できなかった場合に、方法2または3によって特定の動きを判別する。
【0187】
その後、CPU15は、第2実施形態と同様にS204~S206を実行する。
【0188】
本実施形態においても、フレームレートなどの撮影状態に応じて、判定のためのパラメータを変更する。通常カウンタの値と比較する第2の所定秒時は、フレームレートに応じて変更する。極大値と極小値の間隔を検出して算出する平均値の精度が、フレームレートに応じて変化するからである。第3実施形態と同様、基準のフレームレートに対する所定秒時を基準値として、他のフレームレートに対する所定秒時は基準フレームレートとの比率を基準値に乗じて求める。なお、第2の所定秒時は、FFTの精度に関する秒時であるので、フレームレートに依存しない。
【0189】
またステップS808およびS809で用いる第一および第二の間隔閾値は秒時としては同じだが、フレームレートに応じてデータ数は変更する。出力の極大値と極小値の判別のための式は、便宜上、時刻tの関数としたが、データ数の関数としても表現可能である。その場合、同じ時間当たりのデータ数を考慮するよう、フレームレートに応じてデータ数を変更する。
【0190】
そしてS808、S809、S811、S812で用いる第一と第二の判定閾値は、第1実施形態と同様に、フレームレートに依存して予め例えば実験的に定めておくことができる。
【0191】
本実施形態によっても第2実施形態と同様の効果を得ることができる。また、主被写体が特定の動きをしているか否かを、複数の方法を用いて判別するようにした。そのため、第2実施形態よりも動きの判別に対する信頼性を高めることができる。さらに、経過時間に応じて優先的に実行する方法を変更することにより、適切な方法で動き判別を実行することが可能になる。
【0192】
(その他の実施形態)
第2~第4実施形態において、方法2で移動平均を求める代わりに、遅延効果を有するフィルタを用いて主被写体検出回路26の出力とフィルタの出力との差分の絶対値の積算値を求めるようにしてもよい。
【0193】
また、上述の実施形態において、CPU15は、ユーザが意図的に主被写体を変更したと判定される場合(例えばパンニング動作が検出された場合など)は、新たな主被写体が検出されるまで被写体ブレ補正を中断するようにしてもよい。
【0194】
CPU15は、例えば、主被写体検出回路26の出力から得られる主被写体領域の位置の変化量が予め定められた閾値以上の場合に、ユーザが意図的に主被写体を変更したと判定することができる。また、動きベクトル検出回路27およびとブレ検出回路13の出力から得られる主被写体の動きとデジタルカメラ1の動きとの差分が予め定められた閾値以上の場合についても同様の判定が可能である。
【0195】
上述の実施形態ではレンズ交換式のデジタルカメラ1で本発明を実施する例を説明した。しかし、本発明は固定式のレンズを用いる電子機器全般において実施可能である。
【0196】
なお、上述の実施形態においてCPU15が実施するものとして説明した動作の少なくとも一部は、ASICなど他のハードウェアによって実施されてもよい。
【0197】
上述の実施形態では、主被写体が往復移動を含む動きをしているか否かの判別結果を被写体ブレ補正の制御に用いた。しかし、判別結果は他の目的に用いてもよい。従って、上述の実施形態における動き判別処理を独立して実行する画像処理装置や画像処理方法として本発明を実施してもよい。
【0198】
また、上述の実施形態では、画像変形切り出し回路28が画像を切り出す位置を制御することで被写体ブレを補正しているが、交換レンズに含まれる光学系及びデジタルカメラ1に含まれる撮像素子3の少なくとも一方を移動させて被写体ブレを補正してもよい。または、デジタルカメラ1と一体化しているまたはデジタルカメラ1に着脱可能な、少なくとも1つのモータを用いてデジタルカメラ1をパン軸回り及びチルト軸回りに回転可能な駆動装置を用いて被写体ブレを補正してもよい。交換レンズやパンチルトの駆動装置を用いて被写体ブレ補正を行う構成では、交換レンズやパンチルトの駆動装置に設けられたマイクロプロセッサが被写体ブレ補正の制御を行えばよい。すなわち、被写体ブレの検出は撮像装置で行うことが好ましいが、検出された被写体ブレの補正を制御する電子機器には撮像装置の他に撮像機能を有していない機器も含まれる。
【0199】
なお、上述した実施形態の制御は以下のように表現できる。撮像素子3(撮像手段)を用いて取得した動画の複数の画像間での主被写体の位置の変化を抑制する処理をCPU15(制御手段)が制御する。主被写体が撮像手段に対して第1の方向及び第1の方向と逆方向の第2の方向へ交互に繰り返して移動する動きを第1の動きとする。制御手段は、動画撮影中に主被写体が第1の動きを行っている場合は、動画撮影中に主被写体が撮像手段に対して第1の動きとは異なる第2の動きを行っている場合よりも主被写体の位置の変化を抑制する度合いが小さくなるように変化を抑制する処理を制御する。
【0200】
上述した実施形態の効果は以下のような比較を行うことで確認できる。まず、デジタルカメラ1を三脚などに固定して移動しない状態にする。次に、デジタルカメラ1が移動しない状態で、主被写体がデジタルカメラ1に対して第1の方向及び第1の方向と逆方向の第2の方向へ交互に繰り返して所定の周期及び所定の移動量で移動する動き(第1の動きの例)を行っている動画(第1の動画)を撮影する。次に、デジタルカメラ1が移動しない状態で、主被写体がデジタルカメラ1に対して第1の方向へ所定の移動量移動する動き(第2の動きの例)を行っている動画(第2の動画)を撮影する。上述した実施形態を実施していると、第1の動画のほうが第2の動画よりも画像間の主被写体の位置の変化が大きい。ここで、第1の方向及び第2の方向はデジタルカメラ1の光軸と平行な方向よりもデジタルカメラ1の光軸と直交する方向に近い方向が好ましい。
【0201】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0202】
本実施形態の開示は、以下の撮像装置、撮像装置の制御方法、画像処理装置、およびプログラムを含む。
(項目1)
画像における主被写体の位置の変化を抑制する被写体ブレ補正が可能な撮像装置であって、
前記主被写体の動きが、予め定められた特定の動きであるか否かを判別する判別手段と、
前記主被写体の動きが前記特定の動きであると前記判別手段により判別された場合に、前記被写体ブレ補正の実行を中断するように前記撮像装置を制御する制御手段と、
を有することを特徴とする撮像装置。
(項目2)
前記制御手段は、前記主被写体の動きが前記特定の動きであると前記判別手段により判別されなくなると、前記被写体ブレ補正の実行を再開するように前記撮像装置を制御することを特徴とする項目1に記載の撮像装置。
(項目3)
画像から前記被写体ブレ補正の対象とする主被写体の領域を検出する検出手段と、
前記検出手段が検出した前記領域の位置に基づいて、前記被写体ブレ補正の目標位置を取得する取得手段と、をさらに有し、
前記判別手段は、前記検出手段が検出した前記領域の位置と、前記目標位置との差に基づいて、前記主被写体の動きが前記特定の動きであるか否かを判別する、
ことを特徴とする項目1または2に記載の撮像装置。
(項目4)
前記取得手段は、前記検出手段が検出した前記領域の位置にローパスフィルタ処理を適用して得られる位置を前記主被写体の位置として前記目標位置を取得することを特徴とする項目3に記載の撮像装置。
(項目5)
前記判別手段は、前記差の絶対値の積算値の大きさに基づいて、前記主被写体の動きが前記特定の動きであるか否かを判別することを特徴とする項目3または4に記載の撮像装置。
(項目6)
前記判別手段は、積算期間の異なる複数の積算値の大きさに基づいて、前記主被写体の動きが前記特定の動きであるか否かを判別することを特徴とする項目3から5のいずれか1項に記載の撮像装置。
(項目7)
前記判別手段は、前記主被写体の動きが前記特定の動きであるか否かを方向ごとに判別することを特徴とする項目1から6のいずれか1項に記載の撮像装置。
(項目8)
前記判別手段は、前記主被写体の動きが前記特定の動きであるか否かを、垂直方向について水平方向よりも優先して判別することを特徴とする項目1から6のいずれか1項に記載の撮像装置。
(項目9)
前記判別手段は、前記主被写体の動きが前記特定の動きであるか否かを、複数の方法を用いて判別することを特徴とする項目1から8のいずれか1項に記載の撮像装置。
(項目10)
前記判別手段は、前記複数の方法のそれぞれの判別結果を示す指標を重み付け加算した指標に基づいて、前記主被写体の動きが前記特定の動きであるか否かを判別することを特徴とする項目9に記載の撮像装置。
(項目11)
前記複数の方法が、画像における前記被写体ブレ補正の対象とする主被写体の領域の位置に関する周波数成分に基づく指標を用いる第1の方法と、前記位置の移動平均に基づく指標を用いる第2の方法と、前記位置の極大値および極小値に基づく指標を用いる第3の方法とのうち、2つ以上を含むことを特徴とする項目9または10に記載の撮像装置。
(項目12)
前記複数の方法が前記第1の方法を含み、
前記判別手段は、前記第1の方法で前記主被写体の動きが前記特定の動きであるか否かを判別できた場合には他の方法で判別を行わず、前記第1の方法で前記主被写体の動きが前記特定の動きであるか否かを判別できない場合には他の方法を用いて判別を行うことを特徴とする項目11に記載の撮像装置。
(項目13)
前記特定の動きが往復移動であることを特徴とする項目1から12のいずれか1項に記載の撮像装置。
(項目14)
前記主被写体の動きが、前記予め定められた特定の動きであるか否かを判別するために用いるパラメータの1つ以上が、可変値を有することを特徴とする項目1に記載の撮像装置。
(項目15)
前記パラメータには固定値を有するパラメータが含まれることを特徴とする項目14に記載の撮像装置。
(項目16)
前記可変値を有するパラメータが、前記主被写体の位置に関する値の積算区間、および、前記積算区間における積算値に適用する判定閾値のいずれかであることを特徴とする項目14に記載の撮像装置。
(項目17)
前記可変値を有するパラメータが、撮影フレームレート、フレームあたりの露光時間、撮影シーンの明るさのいずれかに応じた値を有することを特徴とする項目16に記載の撮像装置。
(項目18)
前記制御手段は、移動しない被写体を撮影するための撮影モードが設定されている場合、前記撮影モードが設定されていない場合よりも前記被写体ブレ補正の実行が中断がされやすくなるように前記撮像装置を制御することを特徴とする項目1に記載の撮像装置。
(項目19)
前記制御手段は、撮影時の像倍率または焦点距離が大きいほど、前記被写体ブレ補正の実行が中断がされやすくなるように前記撮像装置を制御することを特徴とする項目1に記載の撮像装置。
(項目20)
前記制御手段は、前記主被写体の背景のコントラストが高いほど、前記被写体ブレ補正の実行が中断がされやすくなるように前記撮像装置を制御することを特徴とする項目1に記載の撮像装置。
(項目21)
前記制御手段は、撮像された画像の背景領域の空間周波数スペクトルにおいて、予め定められた閾値以上の空間周波数成分の割合が閾値以上であれば、前記背景のコントラストが高いと判定することを特徴とする項目20に記載の撮像装置。
(項目22)
前記制御手段は、前記被写体ブレ補正の実行が中断がされやすくなるように前記撮像装置を制御する代わりに、前記被写体ブレ補正の実行を中断するように前記撮像装置を制御することを特徴とする項目18から21のいずれか1項に記載の撮像装置。
(項目23)
前記制御手段は、撮影フレームレートが所定の値以下、フレームあたりの露光時間が所定秒時以上、撮影シーンの輝度が閾値以下、撮影感度が所定の感度を超える、のいずれかである場合に、前記被写体ブレ補正の実行を中断するように前記撮像装置を制御することを特徴とする項目1に記載の撮像装置。
(項目24)
画像から検出された主被写体の領域の位置を取得する取得手段と、
前記位置と、前記位置にローパスフィルタ処理を適用した値との差の絶対値の積算値に基づいて、前記主被写体が往復移動を含んだ動きをしているか否かを判別する判別手段と、を有することを特徴とする項目1から23のいずれか1項に記載の撮像装置。
(項目25)
撮像手段を用いて取得した動画の複数の画像間での主被写体の位置の変化を抑制する処理を制御する制御手段を有し、
前記制御手段は、動画撮影中に前記主被写体が前記撮像手段に対して第1の方向及び前記第1の方向と逆方向の第2の方向へ交互に繰り返して移動する第1の動きを行っている場合は、動画撮影中に前記主被写体が前記撮像手段に対して前記第1の動きとは異なる第2の動きを行っている場合よりも前記主被写体の位置の変化を抑制する度合いが小さくなるように前記処理を制御することを特徴とする電子機器。
(項目26)
前記処理は、前記撮像手段を用いて取得した画像から前記主被写体を含む部分画像を切り出す位置を変更することで前記主被写体の位置の変化を抑制することを特徴とする項目25に記載の電子機器。
(項目27)
前記制御手段は、前記主被写体の動きが前記第2の動きから前記第1の動きに変化したら前記処理における前記主被写体の位置の変化を抑制する度合いを小さくすることを特徴とする項目25または26に記載の電子機器。
(項目28)
前記制御手段は、前記度合いを小さくしたのち、前記主被写体の動きが前記第1の動きから前記第2の動きに変化したら前記度合いを大きくすることを特徴とする項目27に記載の電子機器。
(項目29)
前記主被写体が前記第2の動きを行っているときは前記処理を行い、前記主被写体の動きが前記第2の動きから前記第1の動きに変化したら前記処理を中断することを特徴とする項目25に記載の電子機器。
(項目30)
画像における主被写体の位置の変化を抑制する被写体ブレ補正が可能な撮像装置が実行する制御方法であって、
前記主被写体の動きが、予め定められた特定の動きであるか否かを判別することと、
前記主被写体の動きが前記特定の動きであると判別された場合に、前記被写体ブレ補正の実行を中断するように前記撮像装置を制御することと、
を有することを特徴とする撮像装置の制御方法。
(項目31)
撮像手段を用いて取得した動画の複数の画像間での主被写体の位置の変化を抑制する処理を制御する電子機器が実行する制御方法であって、
動画撮影中に前記主被写体が前記撮像手段に対して第1の方向及び前記第1の方向と逆方向の第2の方向へ交互に繰り返して移動する第1の動きを行っている場合は、動画撮影中に前記主被写体が前記撮像手段に対して前記第1の動きとは異なる第2の動きを行っている場合よりも前記主被写体の位置の変化を抑制する度合いが小さくなるように前記処理を制御することを特徴とする電子機器の制御方法。
(項目32)
画像における主被写体の位置の変化を抑制する被写体ブレ補正が可能な撮像装置が有するコンピュータを、項目1から24に記載の撮像装置が有する各手段として機能させるためのプログラム。
【0203】
本発明は上述した実施形態の内容に制限されず、発明の精神および範囲から離脱することなく様々な変更及び変形が可能である。したがって、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0204】
1…撮像装置、3…撮像素子、5…画像処理回路、13…ブレ検出回路、14…ブレ検出センサ、15…CPU、18…操作スイッチ、26…主被写体検出回路、27…動きベクトル検出回路、28…画像変形切出し回路