(57)【要約】【課題】  処理負荷を抑えつつ、適切に被写体にピントを合わせることを可能にしたレンズ制御装置及びその制御方法を提供すること。【解決手段】  マイクロコンピュータ２２４は、被写体の像面位置に対応する情報を、前記焦点検出結果を用いた逐次同定法（例えばカルマンフィルタ）に基づいて推定する。また、当該推定された被写体の像面位置に対応する情報に基づいて、被写体の将来の像面位置に対応する情報を予測する。マイクロコンピュータ２２４は、当該予測された前記被写体の将来の像面位置に対応する情報に基づいてフォーカスレンズの駆動を制御する。マイクロコンピュータ２２４は、被写体の動きに対応する情報に応じて、第１のカルマンフィルタと第２のカルマンフィルタのいずれによって推定された被写体の像面位置に対応する情報を用いて被写体の将来の像面位置に対応する情報を予測するかを選択する。【選択図】  図８
2020091415.tif 000002
【特許請求の範囲】
【請求項１】
焦点検出結果を取得する焦点検出手段と、
被写体の像面位置に対応する情報を、前記焦点検出結果を用いた逐次同定法に基づいて推定する推定手段と、
前記推定手段により推定された被写体の像面位置に対応する情報に基づいて、被写体の将来の像面位置に対応する情報を予測する予測手段と、
前記予測手段によって予測された前記被写体の将来の像面位置に対応する情報に基づいてフォーカスレンズの駆動を制御する駆動制御手段と、を有し、
前記推定手段は、被写体の像面位置に対応する情報として第１の情報を推定する第１の推定手段と、被写体の像面位置に対応する情報として第２の情報を推定する第２の推定手段と、を有し、
前記予測手段は、被写体の動きに対応する情報に応じて、前記第１の情報と前記第２の情報のいずれかを選択して、被写体の将来の像面位置に対応する情報を予測に用いることを特徴とするレンズ制御装置。
【請求項２】
前記第１の推定手段及び前記第２の推定手段は、第１の時刻より前の時刻において、前記第１の時刻における被写体の将来の像面位置に対応する情報を推定する第１の推定を行い、
前記第１の時刻に対応する時刻において前記焦点検手段によって取得された焦点検出結果と、前記第１の推定の結果との誤差に基づいて、前記第１の時刻における被写体の像面位置に対応する情報を推定する第２の推定を行うことを特徴とする、請求項１に記載のレンズ制御装置。
【請求項３】
前記第１の推定手段は、前記第２の推定手段よりも、前記誤差を反映させる程度が大きくなるよう推定を行うことを特徴とする、請求項２に記載の制御装置。
【請求項４】
前記誤差を反映させる程度を補正するゲインが大きいほど、前記誤差を反映させる程度がより大きいことを特徴とする請求項３に記載のレンズ制御装置。
【請求項５】
前記第１の推定手段は、前記第２の推定手段よりも、前記ゲインがより大きくなるよう算出される請求項４に記載のレンズ制御装置。
【請求項６】
前記予測手段は、前記被写体の動きに対応する情報が像面移動速度である場合に、像面移動速度が第１の速度以上であれば、前記第１の推定手段に基づいて被写体の将来の像面位置に対応する情報を予測することを特徴とする請求項１乃至請求項５のいずれか１項に記載のレンズ制御装置。
【請求項７】
前記予測手段は、前記被写体の動きに対応する情報が像面位置の移動加速度である場合に、像面移動速度が第２の速度以上であれば、前記第１の推定手段に基づいて被写体の将来の像面位置に対応する情報を予測することを特徴とする請求項１乃至請求項６のいずれか１項に記載のレンズ制御装置。
【請求項８】
前記予測手段は、前記被写体の動きに対応する情報が撮影距離である場合に、撮影距離が第１の距離以上であれば、前記第１の推定手段に基づいて被写体の将来の像面位置に対応する情報を予測することを特徴とする請求項１乃至請求項７のいずれか１項に記載のレンズ制御装置。
【請求項９】
前記予測手段は、前記被写体の動きに対応する情報が角速度である場合に、角速度が第３の速度以上であれば、前記第１の推定手段に基づいて被写体の将来の像面位置に対応する情報を予測することを特徴とする請求項１乃至請求項８のいずれか１項に記載のレンズ制御装置。
【請求項１０】
前記推定手段は、前記焦点検出結果を用いた逐次同定法に基づいて、像面移動速度を推定し、
前記予測手段は、前記推定手段により推定された被写体の像面位置に対応する情報に基づいて、被写体の将来の像面位置に対応する情報を予測することを特徴とする請求項１に記載のレンズ制御装置。
【請求項１１】
焦点検出結果を取得する焦点検出ステップと、
被写体の像面位置に対応する情報を、前記焦点検出結果を用いた逐次同定法に基づいて推定する推定ステップと、
前記推定ステップで推定された被写体の像面位置に対応する情報に基づいて、被写体の将来の像面位置に対応する情報を予測する予測ステップと、
前記予測ステップで予測された前記被写体の将来の像面位置に対応する情報に基づいてフォーカスレンズの駆動を制御する駆動制御ステップと、を有し、
前記推定ステップは、被写体の像面位置に対応する情報として第１の情報を推定する第１の推定ステップと、被写体の像面位置に対応する情報として第２の情報を推定する第２の推定ステップと、を有し、
前記予測ステップでは、被写体の動きに対応する情報に応じて、前記第１の情報と前記第２の情報のいずれかを選択して、被写体の将来の像面位置に対応する情報の予測に用いられることを特徴とするレンズ制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、像面位置の予測に関するものである。
【背景技術】
【０００２】
従来、動く被写体に対してピントを合わせるために、ある時刻の焦点検出結果に基づいて当該時刻よりも後の時刻における像面位置を予測し、予測された当該像面位置に基づいてフォーカスレンズの駆動を制御する技術が提案されている。
【０００３】
特許文献１では、像面位置及び対応する焦点検出の時刻のデータを複数用いて、予測関数にもっともフィットする係数を最小二乗法（一括最小二乗法とも称される）により求めることで、像面位置を予測する技術が公知であることが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２１７９４号広報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の一括最小二乗法を用いて像面位置を予測し、当該像面位置に基づいてフォーカスレンズの駆動を制御することで、動いている被写体に対して焦点位置を合わせることが可能である。
【０００６】
しかしながら、一括最小二乗法を用いてある時刻よりも後の時刻における被写体の像面位置を予測する場合、より安定した予測結果を得るためには、演算量を増やす必要があるという課題があった。像面位置及び対応する焦点検出の時刻のデータをより多く用いて演算する必要があるためである。
【０００７】
そこで、本発明の目的は、処理負荷を抑えつつ、動く被写体に対して適切にピントを合わせることができるレンズ制御装置及びその制御方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明の一側面は、焦点検出結果を取得する焦点検出手段と、被写体の像面位置に対応する情報を、前記焦点検出結果を用いた逐次同定法に基づいて推定する推定手段と、前記推定手段により推定された被写体の像面位置に対応する情報に基づいて、被写体の将来の像面位置に対応する情報を予測する予測手段と、前記予測手段によって予測された前記被写体の将来の像面位置に対応する情報に基づいてフォーカスレンズの駆動を制御する駆動制御手段と、を有し、前記推定手段は、被写体の像面位置に対応する情報として第１の情報を推定する第１の推定手段と、被写体の像面位置に対応する情報として第２の情報を推定する第２の推定手段と、を有し、前記予測手段は、被写体の動きに対応する情報に応じて、前記第１の情報と前記第２の情報のいずれかを選択して、被写体の将来の像面位置に対応する情報を予測に用いるよう構成したことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、処理負荷を抑えつつ、動く被写体に対して適切にピントを合わせることができる。
【図面の簡単な説明】
【００１０】
【図１】実施例１を備えたデジタル一眼レフカメラの構成を示すブロック図である。
【図２】実施例１における撮影処理の動作例を示すフローチャートである。
【図３】実施例１における焦点調節処理を示すフローチャートである。
【図４】実施例２における焦点調節処理を示すフローチャートである。
【図５】実施例３における焦点調節処理を示すフローチャートである。
【図６】実施例４における焦点調節処理を示すフローチャートである。
【図７】実施例１におけるカルマンフィルタ演算を説明する図である。
【図８】実施例５における焦点調節処理を示すフローチャートである。
【図９】実施例６における焦点調節処理を示すフローチャートである。
【図１０】実施例５におけるカルマンフィルタ演算を説明する図である。
【図１１】一括最小二乗法を説明する図である。
【発明を実施するための形態】
【００１１】
［実施例１］
以下、本発明を適用した実施例を説明する。本実施例では一例として、本発明をデジタル一眼レフカメラに適用した例を説明する。
【００１２】
＜撮像装置の構成＞
図１は、デジタル一眼レフカメラの構成を示すブロック図である。
【００１３】
レンズ駆動回路２０２は、例えばＤＣモータやステッピングモータを有し、マイクロコンピュータ２２４の駆動制御によって、撮影レンズ２０１が有するフォーカスレンズの位置を変化させることにより焦点位置を合わせる。すなわち、マイクロコンピュータ２２４によってレンズ制御が行われる。
【００１４】
レンズ通信回路２０３は、撮影レンズ２０１内部のマイクロコンピュータ（不図示）と通信を行う。通信内容はマイクロコンピュータ２２４によって制御され、撮影レンズ２０１の状態を取得する。
【００１５】
絞り駆動回路２０５は、絞り２０４を駆動する。駆動されるべき量はマイクロコンピュータ２２４によって算出され、光学的な絞り値を変化させる。
【００１６】
主ミラー２０６は常時はファインダー部（不図示）へと光束を導くよう反射させるように配されているが、撮影が行われる場合には、撮像素子２１３へと光束を導くように上方に跳ね上がり光束中から待避する。すなわち、撮影レンズ２０１から入射した光束をファインダー側と撮像素子側とに切替える。また主ミラー２０６はその中央部が光の一部を透過できるようにハーフミラーとなっており、光束の一部を、焦点検出を行うための焦点検出センサに入射するように透過させる。
【００１７】
サブミラー２０７は主ミラー２０６から透過してきた光束を反射させ焦点検出を行うための焦点検出センサ（焦点検出回路２１０内に配置されている）に導く。
【００１８】
ペンタプリズム２０８主ミラー２０６が反射した光束をファインダー部（不図示）へと導く。ファインダー部は他にピント板、アイピースレンズ（不図示）などを有する。
【００１９】
測光回路２０９は、ピント板（不図示）に結像された被写体像の色および明るさを、カラーフィルタを備えた測光センサ（測光回路２０９内に配置されている）によって、電気信号に変換する。
【００２０】
主ミラー２０６の中央部を透過し、サブミラー２０７で反射された光束は、焦点検出回路２１０の内部に配置された光電変換を行うための焦点検出センサに至る。焦点検出の結果であるデフォーカス量は、焦点検出センサの出力を演算することによって求められる。マイクロコンピュータ２２４は演算結果を評価してレンズ駆動回路２０２に指示し、フォーカスレンズを駆動させる。
【００２１】
シャッター駆動回路２１２は、フォーカルプレーンシャッター２１１を駆動する。シャッターの開口時間はマイクロコンピュータ２２４によって、制御される。
【００２２】
撮像素子２１３には、ＣＣＤやＣＭＯＳセンサなどが用いられ、撮影レンズ２０１によって結像された被写体像を電気信号に変換する。
【００２３】
クランプ回路２１４やＡＧＣ回路２１５は、Ａ／Ｄ変換をする前の基本的なアナログ信号処理を行い、マイクロコンピュータ２２４により、クランプレベルやＡＧＣ基準レベルの変更が行われる。
【００２４】
Ａ／Ｄ変換器２１６は撮像素子２１３のアナログ出力信号をデジタル信号に変換する。
【００２５】
映像信号処理回路２１７は、ゲートアレイなどのロジックデバイスにより実現され、デジタル化された画像データに、フィルタ処理、色変換処理、ガンマ処理を行うと共に、ＪＰＥＧなどの圧縮処理を行い、メモリコントローラ２２０に出力する。
【００２６】
映像信号処理回路２１７は、必要に応じて撮像素子２１３の信号の露出情報やホワイトバランスなどの情報をマイクロコンピュータ２２４に出力することが可能である。それらの情報を基にマイクロコンピュータ２２４はホワイトバランスやゲイン調整の指示を行う。連続撮影動作の場合においては、一旦、未処理画像のままバッファメモリ２２３に撮影データを格納し、メモリコントローラ２２０を通して未処理の画像データを読み出し、映像信号処理回路２１７にて画像処理や圧縮処理を行い、連続撮影を行う。連像撮影枚数は、バッファメモリの大きさに左右される。
【００２７】
メモリコントローラ２２０では、映像信号処理回路２１７から入力された未処理のデジタル画像データをバッファメモリに格納し、処理済みのデジタル画像データをメモリ２２１に格納する。また、逆にバッファメモリ２２３やメモリ２２１から画像データを映像信号処理回路２１７に出力する。メモリ２２１は取り外し可能である場合もある。メモリコントローラ２２０は、コンピュータ等と接続可能な外部インターフェイス２２２を介してメモリ２２１に記憶されている画像を出力可能である。
【００２８】
操作部材２２５は、マイクロコンピュータ２２４にその状態を伝え、マイクロコンピュータ２２４はその操作部材の変化に応じて各部をコントロールする。
【００２９】
スイッチ１（以後ＳＷ１）とスイッチ２（以後ＳＷ２）は、レリーズボタンの操作でオンオフするスイッチであり、それぞれ操作部材２２５の入力スイッチのうちの１つである。ＳＷ１のみオンの状態はレリーズボタン半押し状態であり、この状態でオートフォーカス動作や測光動作を行う。
【００３０】
ＳＷ１、ＳＷ２が共にオンの状態はレリーズボタンの全押し状態であり、画像を記録するためのレリーズボタンオン状態である。この状態で撮影が行われる。またＳＷ１、ＳＷ２がＯＮし続けている間は、連続撮影動作が行われる。操作部材２２５には、他に、ＩＳＯ設定ボタン、画像サイズ設定ボタン、画質設定ボタン、情報表示ボタンなど不図示のスイッチが接続されており、スイッチの状態が検出されている。
【００３１】
液晶駆動回路２２８は、マイクロコンピュータ２２４の表示内容命令に従って、外部液晶表示部材２２９やファインダー内液晶表示部材２３０を駆動する。また、ファインダー内液晶表示部材２３０には、不図示のＬＥＤなどのバックライトが配置されており、そのＬＥＤも液晶駆動回路２２８で駆動される。マイクロコンピュータ２２４は撮影前に設定されているＩＳＯ感度、画像サイズ、画質に応じた、画像サイズの予測値データをもとに、メモリコントローラ２２０を通して、メモリの容量を確認した上で撮影可能残数を演算することができる。必要に応じて外部液晶表示部材２２９、ファインダー内液晶表示部材２３０にも表示することができる。
【００３２】
不揮発性メモリ２３１（ＥＥＰＲＯＭ）は、カメラに電源が入れられていない状態でも、データを保存することができる。例えば異なる時刻に検出されたデフォーカス量に対応する像面位置の情報が、対応する時刻の情報とともに複数記憶されている。なお、像面位置と対応する時刻の情報は、不図示の揮発性メモリに記憶し、電源を切った場合にはデータが消去されるように構成しても良い。
【００３３】
電源部２３２は、各ＩＣや駆動系に必要な電源を供給する。
【００３４】
なお、本実施例のマイクロコンピュータ２２４は、本願請求項の推定手段、予測手段の一例である。
【００３５】
＜カルマンフィルタ演算＞
ここで、カルマンフィルタ演算について説明する。時刻ｋにおける時系列データｙ（ｋ）が、次の式で与えられるものとする。なお、時系列データを観測値とも称する。なお、以下の説明において時刻ｋ−１、時刻ｋ、時刻ｋ＋１はいずれも時系列データが得られる時刻に相当する。
ｙ（ｋ）＝ＸＴ（ｋ）Ａ（ｋ）＋ω（ｋ）
Ａ（ｋ＋１）＝Ｌ（ｋ）Ａ（ｋ）＋ｍ（ｋ）ν（ｋ）
Ｘ（ｋ）、ｍ（ｋ）はｎ次元の列ベクトル、Ａ（ｋ）はｎ次元の列ベクトル（状態ベクトル）、ω（ｋ）は平均値０であり分散σω２の観測ノイズ、Ｌ（ｋ）はｎ×ｎ行列、νは平均値０であり分散σν２のシステムノイズである。
【００３６】
カルマンフィルタ演算は、状態ベクトルＡ（ｋ）を求めるものであり、予測ステップとフィルタリングステップの２つに演算ステップが分かれる。まず予測ステップで事前に状態を推定し、フィルタリングステップでは観測結果を用いて状態を推定する。
【００３７】
予測ステップにおいて、事前状態推定ベクトルＡ’（ｋ）（ｎ次元の列ベクトル）、および事前誤差共分散行列Ｐ’（ｋ）（ｎ×ｎ行列）は下式で求められる。
Ａ’（ｋ）＝Ｌ（ｋ−１）Ａ（ｋ−１）
Ｐ’（ｋ）＝Ｌ（ｋ−１）Ｐ（ｋ−１）ＬＴ（ｋ−１）＋
σν２（ｋ−１）ｍ（ｋ−１）ｍＴ（ｋ−１）
【００３８】
上述の式に示されるように、事前状態推定ベクトルＡ’（ｋ）は、時刻ｋにおける状態ベクトルを、時刻ｋ−１に得られた状態ベクトル（ｋ−１）と任意のＬ（ｋ）によって推定するものである。また、事前誤差共分散行列Ｐ’（ｋ）は、時刻ｋにおける状態ベクトルＡ（ｋ）と事前状態推定ベクトルＡ’（ｋ）との誤差を推定する式である。
【００３９】
フィルタリングステップにおいて、状態推定ベクトルＡ（ｋ）（ｎ次元の列ベクトル）が、検出された時系列データｙ（ｋ）に基づいて、下式で求められる。また、事後誤差共分散行列Ｐ（ｋ）（ｎ×ｎ行列）が下式で求められる。
Ａ（ｋ）＝Ａ’（ｋ）＋ｇ（ｋ）（ｙ（ｋ）−ＸＴ（ｋ）Ａ’（ｋ））
Ｐ（ｋ）＝（Ｉ−ｇ（ｋ）ＸＴ（ｋ））Ｐ’（ｋ）
【００４０】
上述の式に示されているように、Ａ（ｋ）は、実際の検出結果であるｙ（ｋ）と事前に予測された検出結果に基づくＸＴ（Ｋ）Ａ’（Ｋ）との差分にカルマンゲインｇ（ｋ）を掛けた補正値を、Ａ’（ｋ）に加えることによって算出される。なお、行列Ｉはｎ×ｎの単位行列である。
【００４１】
また、カルマンゲインｇ（ｋ）は下式で求められる。
【００４２】
【数１】
2020091415.tif 000003
【００４３】
上述の式に示されているように、観測ノイズσ２ω（ｋ）が大きくなるほど、ｇ（ｋ）は小さくなる。また、事前誤差共分散行列Ｐ’（ｋ）が大きくなるほど、ｇ（ｋ）は小さくなる。すなわち、検出されたｙ（ｋ）や、ＸＴ（Ｋ）Ａ’（Ｋ）に誤差が生じている可能性が高いと考えられる場合には、そうでない場合と比較してｇ（ｋ）が小さくなる。これにより、算出されるＡ（ｋ）が誤差の影響を受けにくくなる。
【００４４】
状態ベクトルの初期値Ａ（０）、誤差共分散行列の初期値Ｐ（０）は下式で与える。
【００４５】
【数２】
2020091415.tif 000004
【００４６】
＜本実施例のカルマンフィルタ演算＞
本実施例におけるカルマンフィルタ演算を説明する。ｙ（ｋ）は時刻ｋの像面位置の検出結果である。そして、本実施例のカルマンフィルタ演算では、状態ベクトルＡ（ｋ）から、被写体の状態に関する情報として、時刻ｋにおける像面位置と像面移動速度とが推定される。また、状態ベクトルＡ（ｋ）に基づいて、状態ベクトルＡ（ｋ＋１）が求められることで、被写体の状態に関する情報として、時刻ｋ＋１における像面位置と像面移動速度とが推定される。
【００４７】
なお、本実施形態において像面位置とは、撮影レンズ２０１に対応する後側焦点の位置である（撮影レンズの像面位置、レンズ像面位置とも称する）。また、被写体に対応する像面位置とは、被写体に対して前側焦点の合う位置に撮影レンズ２０１がある場合の後側焦点の位置である。つまり、被写体に対応する像面位置とは、被写体に対して焦点検出をした時刻において、その時刻の後側焦点の位置に対して当該焦点検出の結果（本実施例ではデフォーカス量）を加味して算出される後側焦点の位置である。本実施例では像面位置に対応する情報として像面位置を用いている例を説明するが、像面位置に対応する情報として像面位置以外の情報を用いても良い。例えば像面位置は撮影レンズ２０１の位置に対応していることから、本実施例の像面位置に代えて像面位置に対応する撮影レンズ２０１の位置を用いても良い。この場合、被写体に対応する像面位置に対応するレンズ位置は、次のように算出されるフォーカスレンズ位置である。すなわち、被写体に対して焦点検出をした時刻において、その時刻のフォーカスレンズ位置に対して当該焦点検出の結果（本実施例ではデフォーカス量）を加味して算出されるフォーカスレンズの位置である。
【００４８】
ここで、被写体の状態に関する情報（カルマンフィルタ演算によって推定された像面位置と像面移動速度）を用いて被写体の動きを予測するための、モデル式を説明する。一例を図１１に示す。被写体の像面位置の予測を図１１の破線のように１次式（２次元）で行うものを考える。時刻ｋの像面位置は、時刻ｋにおける平均像面移動速度ｖと、時刻０の像面位置ｙＡで予測できるモデルとする。このとき、列ベクトルＡを、時刻０の像面位置（切片）ｙＡと時刻ｋにおける平均像面移動速度（傾き）ｖとして定義する。また列ベクトルＸを、時刻ｋおよびｙＡが定数となるよう１として定義する。分散σω２は検出結果の分散に基づいて入れればよい。初期値Ａ（０）において、ｙＡの初期値は、例えば初めて検出した像面位置ｙ０に基づいて入れてもよい。また平均像面移動速度の初期値ｖは０として入れてもよい。初期値Ｐ（０）は適切な値を入れればよい。行列Ｌ、列ベクトルｍおよび分散σν２は、モデルの性質、すなわち撮影の対象としたい被写体の動き等の性質によって設定すればよく、時不変でもよい。
【００４９】
なお、像面移動速度は、像面位置が移動する速度であり、被写体の移動速度に対応する速度である。本実施例では像面移動速度を用いて説明するが、像面移動速度に対応する速度であれば、これに限られない。例えば、像面位置の移動速度に対応する、フォーカスレンズ位置の移動速度であっても良い。
【００５０】
本実施例ではあくまで一例としてモデル式が１次式（２次元）である例を挙げたが、想定する被写体の動き等に応じてモデル式は何次元であっても良く、モデル式の次元に合わせて列ベクトルＡを定義すれば良い。
【００５１】
以上によって、予測ステップに必要な行列、ベクトルおよび分散の定義ができた。その後像面位置の検出結果を用いてフィルタリングステップ、さらに次の時刻のための予測ステップと繰り返すことでカルマンフィルタ演算による被写体の動きを予測するモデル式を得ることができる。
【００５２】
カルマンフィルタ演算によれば、上述したように、誤差を考慮した演算を行うことから、焦点検出結果に誤差が生じやすいシチュエーションであっても精度の良い像面位置の予測を行うことができる。
【００５３】
＜一括最小二乗法による演算＞
ここで図７を用いて、特許文献１にも開示されている一括最小二乗法に基づく像面位置の予測についてより詳しく説明する。
【００５４】
時刻ｘｋにおける像面位置がｙｋであり、図中●で表現されている。ここで複数の図中●を時刻ｔに対する（ｎ−１）次の多次式モデルで表現するとき、像面位置をｙ（ｔ）、時刻パラメータを列ベクトルＴ（ｔ）、モデル式の係数を列ベクトルＣ（ｔ）とすると、下式で与えられ、図中の一点鎖線のような曲線が与えられる。
ｙ（ｔ）＝Ｃ（ｔ）ＴＴ（ｔ）
【００５５】
列ベクトルＣ（ｔ）および列ベクトルＴ（ｔ）は、次の通りである。
【００５６】
【数３】
2020091415.tif 000005
【００５７】
上述の列ベクトルＣを求める方法として、一括最小二乗法が用いることができる。モデル式を（ｎ−１）次の多次式、過去の像面位置の測定結果数をＮ、時刻ｋを含む過去の像面位置に対応する焦点検出結果が得られた時刻より与えられる行列Ｚ（ｋ）、時刻ｋを含む過去の像面位置より与えられる列ベクトルＹ（ｋ）とする。このとき、求めるべき列ベクトルＣ（ｋ）は下式で与えられる。
Ｃ（ｋ）＝［Ｚ（ｋ）ＴＺ（ｋ）］−１Ｚ（ｋ）ＴＹ（ｋ）
【００５８】
行列Ｚ（ｋ）および列ベクトルＹ（ｋ）は、それぞれ下式で与えられる。
【００５９】
【数４】
2020091415.tif 000006
【００６０】
上述の一括最小二乗法を用いて像面位置を予測し、当該像面位置に基づいてフォーカスレンズの駆動を制御することで、動いている被写体に対して焦点位置を合わせることが可能である。
【００６１】
しかしながら、一括最小二乗法を用いてある時刻よりも後の時刻における被写体の像面位置を予測する場合、より安定した予測結果を得るためには、計算量を増やす必要があるという課題があった。列ベクトルＣを求めるための計算量は少なくともＯ（Ｎ・ｎ２）であるところ、安定した列ベクトルＣを求めるには過去の測定結果数Ｎを大きくする必要がある。計算量はＮに比例して増加する。
【００６２】
これに対し、ｎ次元のパラメータによるカルマンフィルタの計算量は、Ｏ（ｎ３）である。モデル式が低次元であるときは、カルマンフィルタの演算回数は同次元の一括最小二乗法よりも十分小さくすることができる。また観測結果にばらつきがあるとき、一括最小二乗法は演算に用いる過去の観測結果数Ｎを大きく取りたくなるが、前述のとおり一括最小二乗法の計算量は、Ｏ（Ｎｎ２）であり、Ｎを大とするとカルマンフィルタの計算量よりもはるかに大きくなる。従って、本実施例のように、適切なシーンにおいてはカルマンフィルタによって演算することで、計算量を一括最小二乗法の計算量よりも小さくすることができる。
【００６３】
＜撮影処理の動作例＞
次に、本発明の実施例１に関する撮影処理の動作例を図２のフローチャートに基づいて説明する。
【００６４】
一般にカメラにはある時刻における被写体の像面に対してレンズを駆動するモード（ワンショット撮影モード）と、現在の時刻よりも後の時刻の被写体の像面を予測しながらレンズを駆動するモード（予測撮影モード）の２種類がある。実施例１ではカメラが予測撮影モードに設定されたときの動きを示す。
【００６５】
ステップＳ４０１で、マイクロコンピュータ２２４は、ＳＷ１の状態を判定する。ＳＷ１がオンである場合は、ステップＳ４０２へ進む。ＳＷ１がオフされると、マイクロコンピュータ２２４は予測撮影モードを終了するよう制御する。
【００６６】
ステップＳ４０２で、マイクロコンピュータ２２４は、焦点調節処理を行うよう制御する。詳細は図３を用いて後述する。
【００６７】
ステップＳ４０３で、マイクロコンピュータ２２４は、ＳＷ２の状態を判定する。ＳＷ２がオフならばステップＳ４０１へ戻る。ＳＷ２がオンである場合は、ステップＳ４０４へ進む。
【００６８】
ステップＳ４０４で、マイクロコンピュータ２２４は、主ミラー２０６をアップし、フォーカルプレーンシャッター２１１を動作させ撮影を行うよう制御する。その後ステップＳ４０１へ戻る。
【００６９】
＜焦点調節処理＞
次にステップＳ４０２の焦点調節処理の動作の一例を図３のフローチャートに基づき説明する。
【００７０】
ステップＳ５０１で、マイクロコンピュータ２２４は、焦点検出回路２１０を駆動させ、デフォーカス量を求める。さらに、デフォーカス量と現在の撮像レンズの位置から、被写体にピントが合う撮影レンズの位置である像面位置を取得する。
【００７１】
ステップＳ５０２で、マイクロコンピュータ２２４は、記憶処理を行うよう制御する。記憶処理では、ステップＳ５０１で得た像面位置ならびにデフォーカス量の検出時刻をメモリに格納する。
【００７２】
ステップＳ５０３で、マイクロコンピュータ２２４は、前述のカルマンフィルタ演算を行う。カルマンフィルタは、逐次同定法の一種であり、一括最小二乗法のように演算時に複数の時系列データを必要としない。ここで、状態ベクトルＡ（ｋ）から、被写体の状態に関する情報として、時刻（ｋ）における像面位置と像面移動速度とが推定される。
【００７３】
ステップＳ５０４で、マイクロコンピュータ２２４は、メモリに格納されたデータ数が第１の数未満であるかを評価する。データ数が第１の数未満であるときはステップＳ５０８へ、データ数が第１の数以上であるときはステップＳ５０５へ進む。
【００７４】
ステップＳ５０５で、マイクロコンピュータ２２４は、ステップＳ５０３で実施したカルマンフィルタの同定度合いを評価する。同定度合いは、前述の事後誤差共分散行列Ｐを用いて評価する。同行列Ｐを用いることで、カルマンフィルタ演算で求めた状態推定ベクトルＡの結果が収束しているかを判定することができるためである。同定度合い、すなわちＰが第１の値未満であるならば、ステップＳ５０７へ進む。カルマンフィルタ演算で求めた状態推定ベクトルＡの結果が収束していない、すなわちカルマンフィルタ演算により得られる像面位置に誤差が生じている可能性があるためである。同定度合い、すなわちＰが第１の値以上であるときはステップＳ５０６へ進む。このように同定度合いに基づいて予測手法を切換えることで、カルマンフィルタ演算が十分収束しているときは、演算量を少なくする手法を選択することができる。
【００７５】
ステップＳ５０６で、マイクロコンピュータ２２４は、一括最小二乗法による焦点予測を行う。具体的にはステップＳ５０２でメモリに記憶された像面位置とその検出時刻の時系列データを複数用いて、一括最小二乗法により被写体の像面位置のモデル式を求め、得られた結果によって現在の時刻（ｋ）よりも後の時刻（ｋ＋１）の被写体の像面位置を求める。
【００７６】
ステップＳ５０７で、マイクロコンピュータ２２４は、カルマンフィルタによる焦点予測を行う。ステップＳ５０３で状態ベクトルＡ（ｋ）を求めたことで、被写体の像面位置のモデル式の同定ができているので、その結果によって将来の像面位置を予測する。より具体的には、状態ベクトルＡ（ｋ）を求めることで被写体の状態に関する情報として推定された時刻（ｋ）における像面位置（切片に相当する）及び像面移動速度（傾きに相当する）と、モデル式とを用いることで、時刻ｋ＋Δｄにおける像面位置を算出する。ここで、時刻ｋ＋Δｄは撮影時刻に対応する時刻である。例えば時刻ｋ＋Δｄは、Ｓ４０４の時刻に対応する。
【００７７】
ステップＳ５０８で、マイクロコンピュータ２２４は、焦点検出結果に基づくフォーカスレンズの駆動を行うよう制御する。ステップＳ５０１によって得られた被写体の像面位置に基づいて撮影レンズの駆動を行う。
【００７８】
ステップＳ５０９で、マイクロコンピュータ２２４は、焦点予測結果に基づくレンズ駆動を行う。ステップＳ５０６もしくはステップＳ５０７で将来の像面位置が求められているので、その結果に基づいてフォーカスレンズの駆動を行う。
【００７９】
＜効果＞
以上説明したように、実施例１ではカルマンフィルタ演算を用いて算出された被写体の像面位置に基づいてフォーカスレンズの駆動を制御する。これにより、カルマンフィルタ演算を用いない場合と比較して、処理負荷を抑えつつ、動く被写体に対して適切にピントを合わせることができる。
【００８０】
また、実施例１では、カルマンフィルタ演算を用いる場合とそうでない場合とを条件に応じて切換えることで、処理負荷を抑えつつ、動く被写体に対して適切にピントを合わせることができる。
【００８１】
［実施例２］
実施例１では、カルマンフィルタ演算による同定度合いが閾値以上である場合にカルマンフィルタ演算を用いる例を説明した。
【００８２】
実施例２では、カルマンフィルタ演算による同定度合いに加え、被写体の動きを考慮した例を説明する。なお、実施例１との共通点については極力説明を省略し、相違点に着目して説明する。
【００８３】
デジタル一眼レフカメラの構成（図１）、撮影処理の動作（図２）は実施例１と同様であるため、説明を省略する。
【００８４】
＜焦点調節処理＞
本実施例での焦点調節処理の動作を図４のフローチャートに基づき説明する。
【００８５】
ステップＳ６０１は、ステップＳ５０１と同じであるため、説明を省略する。
【００８６】
ステップＳ６０２で、マイクロコンピュータ２２４は、被写体距離演算を行う。ここで、被写体距離は、カメラから被写体までの撮影距離である。レンズ通信回路２０３を用いて撮影レンズ２０１より現在の撮影レンズの結像位置から求められる被写体距離を取得する。
【００８７】
ステップＳ６０３、Ｓ６０４は、それぞれステップＳ５０２、Ｓ５０３と同じであるため、説明を省略する。
【００８８】
ステップＳ６０５で、マイクロコンピュータ２２４は、像面移動速度を演算する。像面移動速度はステップＳ６０４のカルマンフィルタ演算で求めてもよい。本実施例では、モデル式を時刻ｋに対する２次元（１次式）としている。そして、列ベクトルＡは、時刻０の像面位置（切片）と時刻ｋにおける平均像面移動速度（傾き）とを表すよう定義されることから、Ａ（ｋ）を求めることで、像面移動速度を得ることができる。また、その他公知の方法により求めても良い。
【００８９】
ステップＳ６０６、ステップＳ６０７は、それぞれステップＳ５０４、ステップＳ５０５と同じであるため、説明を省略する。
【００９０】
ステップＳ６０８で、マイクロコンピュータ２２４は、被写体距離を評価する。ステップＳ６０２で求めた被写体距離が第１の距離以上ならばステップＳ６０９へ、第１の距離未満ならばステップＳ６１０へ進む。カルマンフィルタ演算に用いるモデル式を例えばモデル式を１次式（２次元）とすると、被写体距離が近いときは、被写体の像面位置がモデル式とは合わなくなることが考えられる。従って被写体距離が第１の距離未満であるときはステップＳ６１０へ進み、一括最小二乗法によって将来の像面位置を求めるようにする。
【００９１】
ステップＳ６０９で、マイクロコンピュータ２２４は、像面移動速度を評価する。ステップＳ６０４で求めた像面移動速度が第１の速度未満であるならばステップＳ６１１へ、第１の速度以上であるならばステップＳ６１０へ進む。これもカルマンフィルタ演算に用いるモデル式によるが、像面移動速度が速いときに被写体の像面位置がモデル式と合わなくなることを考慮したためである。
【００９２】
ステップＳ６１０〜ステップＳ６１３は、それぞれステップＳ５０６〜ステップＳ５０９と同じであるため、説明を省略する。
【００９３】
＜効果＞
以上説明したように、実施例２では、被写体の動きに応じてカルマンフィルタ演算を採用し、像面位置を求める。より具体的には、被写体の移動速度に対応する像面移動速度に応じてカルマンフィルタ演算を採用するか否かを切り替える。処理負荷を抑えつつ、動く被写体に対して適切にピントを合わせることができる。
【００９４】
［実施例３］
実施例１では、カルマンフィルタ演算による同定度合いが閾値以上である場合にカルマンフィルタ演算を用いる例を説明した。また、実施例２では、実施例１に対して更に被写体の動きを考慮してカルマンフィルタ演算を用いる例を説明した。
【００９５】
実施例３では、焦点検出結果のばらつきを考慮してカルマンフィルタ演算を用いる例を説明する。なお、実施例１との共通点については極力説明を省略し、相違点に着目して説明する。
【００９６】
デジタル一眼レフカメラの構成（図１）、撮影処理の動作（図２）は実施例１と同様であるため、説明を省略する。
【００９７】
＜焦点調節処理＞
本実施例での焦点調節処理の動作を図５のフローチャートに基づき説明する。
【００９８】
ステップＳ７０１〜ステップＳ７０３は、それぞれステップＳ５０１〜ステップＳ５０３と同じであるため、説明を省略する。
【００９９】
ステップＳ７０４で、マイクロコンピュータ２２４は、ばらつき演算を行う。焦点検出結果には、一般的に多少のばらつきが生じ得る。例えば、被写体距離が遠くなるほど、焦点検出結果のばらつきが大きくなる。ステップＳ７０２では、マイクロコンピュータ２２４は、メモリに記憶された像面位置とその検出時刻を用いて、被写体の像面位置のばらつき（分散）を求める。
【０１００】
ステップＳ７０５、ステップＳ７０６は、それぞれステップＳ５０４、ステップＳ５０５と同じであるため、説明を省略する。
【０１０１】
ステップＳ７０７で、マイクロコンピュータ２２４は、ばらつきを評価する。ステップＳ７０４で求めた像面位置のばらつきが第２の値以上である場合は、カルマンフィルタ演算を用いた焦点予測を行うべく、ステップＳ７０９へ進む。カルマンフィルタ演算は検出結果の誤差を考慮した演算であることから、カルマンフィルタ演算を用いて焦点予測を行うことで、焦点検出結果にばらつきが生じる場面であっても安定した演算結果を得ることができるためである。この結果、より精度良く像面位置を算出することが可能である。ステップＳ７０４で求めた像面位置のばらつきが第２の値未満である場合は、ステップＳ７０８へ進む。
【０１０２】
ステップＳ７０８〜ステップＳ７１１は、それぞれステップＳ５０６〜ステップＳ５０９と同じであるため、説明を省略する。
【０１０３】
＜効果＞
以上説明したように、実施例３では、焦点検出結果のばらつきに応じて、カルマンフィルタ演算を用いる。より具体的には、焦点検出結果のばらつきが閾値以上である場合に、カルマンフィルタ演算を用いる。これにより、処理負荷を抑えつつ、動く被写体に対して適切にピントを合わせることができる。
【０１０４】
［実施例４］
カルマンフィルタ演算を用いる場合に、行列Ｌ、列ベクトルｍを固定とすると、被写体の動きによっては、被写体の像面位置がモデル式から乖離する場合がある。具体的には、被写体が近づくことで、撮影距離が短くなり、かつ、被写体の像面移動速度が速くなると、そうでない場合に比較して、状態推定ベクトルＡの変化量を大きくしないと、被写体の像面位置がモデル式から乖離しやすくなる。状態推定ベクトルＡの変化量は、行列Ｌ、列ベクトルｍおよび分散σν２によって変えることができる。そこで、実施例４では、各種条件に応じて、カルマンフィルタ演算に用いる設定パラメータを変更することで、より精度良くカルマンフィルタ演算を行う例を説明する。
【０１０５】
まず、本発明を適用した実施例４を説明する。なお、実施例１との共通点については極力説明を省略し、相違点に着目して説明する。
【０１０６】
デジタル一眼レフカメラの構成（図１）、撮影処理の動作（図２）は実施例１と同様であるため、説明を省略する。
【０１０７】
＜焦点調節処理＞
次に、本発明の実施例４の焦点調節処理の動作例を図６のフローチャートに基づいて説明する。
【０１０８】
ステップＳ１３０１は、ステップＳ５０１と同じであるため、説明を省略する。
【０１０９】
ステップＳ１３０２で、マイクロコンピュータ２２４は、像面移動速度演算を行う。
【０１１０】
ステップＳ１３０３で、マイクロコンピュータ２２４は、被写体距離演算を行う。レンズ通信回路２０３を用いて撮影レンズ２０１より現在の撮影レンズの結像位置から求められる被写体距離を取得する。
【０１１１】
ステップＳ１３０４で、マイクロコンピュータ２２４は、焦点距離、ステップＳ１３０２で求めた像面移動速度とステップＳ１３０３で求めた被写体距離に応じて行列Ｌ、列ベクトルｍを設定する。このように、像面移動速度と被写体距離に基づいて行列Ｌ、列ベクトルｍを変化させることで、被写体の被写体距離がモデル式から乖離することなく、将来の像面位置を求めることができる。
【０１１２】
ステップＳ１３０５で、マイクロコンピュータ２２４は、ステップＳ１３０４で求め列ベクトルｍの評価を行う。列ベクトルｍが第１の閾値未満であるかを評価する。列ベクトルｍが第１の閾値未満であるときはステップＳ１３０６へ、そうでないときはステップＳ１３０７へ進む。
【０１１３】
ステップＳ１３０６で、マイクロコンピュータ２２４は、列ベクトルｍをデフォルト値とする。列ベクトルｍが示す変化量が小さいときはデフォルト値とし、変化量の最小値を規定する。
【０１１４】
ステップＳ１３０７で、マイクロコンピュータ２２４は、カルマンフィルタ演算を行う。ステップＳ１３０７は、ステップＳ５０３と同じであるため、説明を省略する。
【０１１５】
ステップＳ１３０８で、マイクロコンピュータ２２４は、カルマンフィルタによる焦点予測を行う。ステップＳ１３０８は、ステップＳ５０７と同じであるため、説明を省略する。
【０１１６】
ステップＳ１３０９で、マイクロコンピュータ２２４は、焦点予測結果に基づくフォーカスレンズの駆動を制御する。ステップＳ１３０８で将来の像面位置が求められているので、その結果に基づいてフォーカスレンズの駆動制御を行う。
【０１１７】
＜効果＞
以上で説明した実施形態により、各種条件に応じて行列Ｌ、列ベクトルｍを変化させることで、被写体の像面位置がモデル式から乖離し得る条件下であっても、カルマンフィルタを用いて将来の像面位置を求めることができる。
【０１１８】
［実施例５］
実施例１〜３では、一括最小二乗法とカルマンフィルタ演算を切り換える例を説明した。実施例４では、カルマンフィルタ演算に用いる設定パラメータを各種条件によって変化させる例を説明した。実施例５では、被写体の動きに対応する情報に応じて、カルマンフィルタ演算に用いる設定パラメータが異なる複数のカルマンフィルタ演算を用いる例を説明する。本実施例では、被写体の動きに対応する情報が像面移動速度である場合を例に説明する。実施例１との共通点については極力説明を省略し、相違点に着目して説明する。
【０１１９】
デジタル一眼レフカメラの構成（図１）、撮影処理の動作（図２）は実施例１と同様であるため、説明を省略する。
【０１２０】
＜本実施例でのカルマンフィルタ演算＞
本実施例におけるカルマンフィルタ演算を説明する。実施例１で記したカルマンフィルタ演算との相違点に着目して説明する。
【０１２１】
時刻ｋにおける列ベクトルＡ（ｋ）および事前状態推定ベクトルＡ’（ｋ）を、時刻ｋの推定像面位置と推定像面移動速度を表すように定義し、列ベクトルＸは、定数１および定数０となるように定義する。
【０１２２】
ここで被写体の動きを予測するためのモデル式を説明する。一例を図１０に示す。被写体の像面位置の予測を図１０の破線のように１次式（２次元）で行うものを考える。任意の時刻ｔで像面位置ｙｔが観測される。本実施例のカルマンフィルタ演算で、列ベクトルＡ（ｔ）は時刻ｔの推定像面位置ｐｔ、推定像面移動速度ｖｔを表しているので、時刻ｔ＋Δｔの予想像面位置ｙ’（ｔ＋Δｔ）は、時刻ｔの像面位置ｙｔと推定像面移動速度ｖｔから予測できる。具体的には下式で求められる。
【０１２３】
【数５】
2020091415.tif 000007
【０１２４】
本実施例のカルマンフィルタ演算は、あくまでも一例であり、推定する状態の次元数が２次元であるが、状態の次元数は何次元であってもよい。
【０１２５】
＜第１のカルマンフィルタと第２のカルマンフィルタ＞
カルマンフィルタ演算では、演算の次元や設定パラメータによって特性を変えることができる。一方で、演算の次元や設定パラメータに応じて適切に追従できる範囲が異なることから、あるカルマンフィルタに対して設定された演算の次元や設定パラメータによっては像面位置の予測精度が低下してしまう場合もあった。
【０１２６】
そこで、本実施例では、設定パラメータが異なる複数のカルマンフィルタを選択的に使い分けることで、像面位置の予測精度を向上させる。本実施例では、第１のカルマンフィルタと第２のカルマンフィルタとを使い分ける場合を例示する。
【０１２７】
本実施例の第１のカルマンフィルタと第２のカルマンフィルタとは、設定パラメータが異なっている。本実施例では、事前状態推定値Ａ’（ｋ）に基づいて事後状態推定値Ａ（ｋ）を算出する際に、事前状態推定値Ａ’（ｋ）をどの程度補正するかを異ならせている。つまり、以下に再度引用する式の、ｇ（ｋ）（ｙ（ｋ）−ＸＴ（ｋ）Ａ’（ｋ）が、第１のカルマンフィルタと第２のカルマンフィルタでは異なるように設定パラメータを異ならせている。
【０１２８】
【数６】
2020091415.tif 000008
【０１２９】
本実施例では、第１のカルマンフィルタと第２のカルマンフィルタとで、設定パラメータとしてのカルマンゲインｇ（ｋ）が異なるように設定している。第１のカルマンフィルタはｍ第２のカルマンフィルタと比較して、カルマンゲインｇ（ｋ）が大きくなるように設定している。
【０１３０】
これにより、第１のカルマンフィルタを使って演算を行う場合は、第２のカルマンフィルタを使って演算を行なった場合と比較して、次のような差異がある。実際の検出結果であるｙ（ｋ）と事前に予測された検出結果に基づくＸＴ（Ｋ）Ａ’（Ｋ）との差分がより大きく反映された事後状態推定値Ａ（ｋ）が算出される。
【０１３１】
第２のカルマンフィルタは、第１のカルマンフィルタと比較して事後状態推定値Ａの変化量が小さくなることから、像面移動速度がより遅いときに適している。像面移動速度が小さいシーンでは、像面移動速度がより大きいシーンと比較すると像面位置の予測結果に誤差が生じにくいためである。このような場合にｇ（ｋ）を大きく設定して演算すると、過補正になってしまう場合もあり得る。
【０１３２】
一方で第１のカルマンフィルタは第２のカルマンフィルタよりも事後状態推定値Ａの変化量が大きくなることから、像面移動速度がより速いときに適している。像面移動速度が大きいシーンでは、像面移動速度がより小さいシーンと比較すると、像面位置の予測結果に誤差が生じやすく、生じる誤差もより大きくなる可能性があるためである。
【０１３３】
カルマンゲインｇ（ｋ）は、以下に再度引用する式が示すように、事前誤差共分散行列Ｐ’（ｋ）に応じて定められる。
【０１３４】
【数７】
2020091415.tif 000009
【０１３５】
事前誤差共分散行列Ｐ’（ｋ）は、以下に再度引用する式が示すように、行列Ｌ、列ベクトルｍおよび分散σν２といった係数によって調整されている。
Ｐ’（ｋ）＝Ｌ（ｋ−１）Ｐ（ｋ−１）ＬＴ（ｋ−１）
＋σν２（ｋ−１）ｍ（ｋ−１）ｍＴ（ｋ−１）
【０１３６】
より具体的には、第１のカルマンフィルタにおいては行列Ｌ、列ベクトルｍおよび分散σν２のいずれかの係数に着目した場合に、当該係数を、第２のカルマンフィルタと比較して大きくなるようパラメータを設定する。これにより、第１のカルマンフィルタにおいて第２のカルマンフィルタと比較してより大きな事前誤差共分散行列Ｐ’（ｋ）を得ることができる。
【０１３７】
＜焦点調節処理＞
次に、本発明の実施例５の焦点調節処理の動作例を図８のフローチャートに基づいて説明する。
【０１３８】
ステップＳ９０１は、ステップＳ５０１と同じであるため、説明を省略する。
【０１３９】
ステップＳ９０２で、マイクロコンピュータ２２４は、第１のカルマンフィルタ演算を行う。
【０１４０】
ステップＳ９０３で、マイクロコンピュータ２２４は、第２のカルマンフィルタ演算を行う。
【０１４１】
ステップＳ９０４は、ステップＳ６０５と同じであるため、説明を省略する。
【０１４２】
ステップＳ９０５で、マイクロコンピュータ２２４は、第１カルマンフィルタの同定度合いおよび第２カルマンフィルタの同定度合いを評価する。同定度合の評価方法については、ステップＳ５０５と同様である。第１のカルマンフィルタの同定度合いおよび第２のカルマンフィルタの同定度合いが第１の閾値未満以上であるときは、ステップＳ９０６へ進む。第１のカルマンフィルタの同定度合いおよび第２のカルマンフィルタの同定度合いが第１の閾値以上であるときは、ステップＳ９１０へ進む。
【０１４３】
ステップＳ９０６で、マイクロコンピュータ２２４は、像面移動速度を評価する。ステップＳ９０４で求めた像面移動速度が第１の速度未満であるならばステップＳ９０８へ、第１の速度以上であるならばステップＳ９０７へ進む。第１のカルマンフィルタの設定パラメータを、第２のカルマンフィルタ設定パラメータに比べて、より像面移動速度が速いときに追従しやすいものにしたことを考慮したためである。
【０１４４】
ステップＳ９０７で、マイクロコンピュータ２２４は、第１のカルマンフィルタによる焦点予測を行う。
【０１４５】
ステップＳ９０８で、マイクロコンピュータ２２４は、第２のカルマンフィルタによる焦点予測を行う。
【０１４６】
ステップＳ９０９は、ステップＳ５０９と同じであるため、説明を省略する。
【０１４７】
ステップＳ９１０は、ステップＳ５０８と同じであるため、説明を省略する。
【０１４８】
＜効果＞
以上説明したように、実施例５では、像面移動速度に応じて、複数のカルマンフィルタ演算を切り換えて用いることで、被写体に焦点位置を合わせることができる。
【０１４９】
［実施例６］
実施例５では、被写体の動きに対応する情報の一例である像面移動速度に応じて、複数のカルマンフィルタ演算を用いる例を説明した。実施例６では、被写体の動きに対応する情報が像面移動加速度（像面位置の移動加速度とも称する）である場合を例に、複数のカルマンフィルタ演算を用いる例を説明する。なお、実施例５との共通点については極力説明を省略し相違点に着目して説明する。
【０１５０】
デジタル一眼レフカメラの構成（図１）、撮影処理の動作（図２）は実施例１と同様であるため、説明を省略する。
【０１５１】
＜焦点調節処理＞
次に、本発明の実施例６の焦点調節処理の動作例を図９のフローチャートに基づいて説明する。
【０１５２】
ステップＳ１００１〜Ｓ１００３は、それぞれステップＳ９０１〜Ｓ９０３と同じであるため、説明を省略する。
【０１５３】
ステップＳ１００４で、マイクロコンピュータ２２４は、像面移動加速度を演算する。像面移動加速度はＳ１００２の第１のカルマンフィルタ演算で求めてもよい。
【０１５４】
ステップＳ１００５は、ステップＳ９０５と同じであるため、説明を省略する。
【０１５５】
ステップＳ１００６で、マイクロコンピュータ２２４は、像面移動加速度を評価する。ステップＳ１００４で求めた像面移動加速度が第２の速度未満であるならばステップＳ１００８へ、第２の速度以上であるならばステップＳ１００７へ進む。像面移動加速度が大きい場合は、像面加速度が小さい場合と比較して、像面位置の予測結果の誤差が生じやすい。このことから本実施例では、像面移動加速度が大きい場合は第１のカルマンフィルタで、像面移動加速度がより小さい場合には第２のカルマンフィルタで演算する。
【０１５６】
第１のカルマンフィルタの設定パラメータを、第２のカルマンフィルタの設定パラメータに比べて、より像面移動加速度が大きいときに追従しやすいものにしたことを考慮したためである。評価する像面移動加速度は、その絶対値を用いて評価してもよい。
【０１５７】
ステップＳ１００７〜ステップＳ１０１０は、それぞれステップＳ９０７〜Ｓ９１０と同じであるため、説明を省略する。
【０１５８】
＜効果＞
以上説明したように、実施例６では、像面移動加速度に応じて、複数のカルマンフィルタ演算を切り換えて用いることで、被写体に焦点位置を合わせることができる。
【０１５９】
＜その他の実施例＞
上述の実施例では逐次同定法の一例としてカルマンフィルタ演算を用いたが、逐次同定法の別種である逐次最小二乗法（ＲＬＳ法）を用いてもよい。この場合、σ２ω（ｋ）＝１となる。つまり、逐次最小二乗法は、本実施例のカルマンフィルタ演算において、設定されたパラメータが少ない特殊例である。従って計算量の観点ではカルマンフィルタと同一の効果が得られる。
【０１６０】
モデル式については、前述のように、本実施例で紹介した以外のモデル式を用いることができる。
【０１６１】
また、上述の実施例では状態ベクトルＡ（ｋ）から、被写体の状態に関する情報として、時刻ｋにおける像面位置と像面移動速度とが算出される例を説明したが、被写体の状態に関する情報であればこれに限らない。例えば、状態ベクトルＡ（ｋ）から時刻ｋにおける像面位置と被写体移動速度とが算出される構成としても良い。
【０１６２】
また、実施例４では各種条件に応じて行列Ｌ、列ベクトルｍを設定することを説明したが、行列Ｌ、列ベクトルｍ又は分散σν２の少なくとも１つを設定すれば良い。
【０１６３】
行列Ｌ、列ベクトルｍおよび分散σν２を、ユーザが設定するようにしても良い。これにより、ユーザが認識している撮影シーンの特性に合わせて、演算結果を調整することが可能である。
【０１６４】
また、実施例５では像面移動速度、実施例６では像面移動加速度に応じて、第１のカルマンフィルタと第２のカルマンフィルタを使い分けることを説明したが、被写体の動きの変化が大きいことを判別できる指標であれば、これに限らない。例えば、被写体の動きに対応する情報として、撮影距離を用いても良い。撮影距離が遠い場合は撮影距離がより近い場合と比較して像面位置の変化量が小さい。このため、撮影距離が遠い場合は撮影距離がより近い場合と比較して焦点検出結果の誤差による影響が大きい。このことから、撮影距離によってカルマンフィルタの使い分けをしてもよい。例えば撮影距離が第１の距離以上であれば、第１のカルマンフィルタを用い、第１の距離未満であれば、第２のカルマンフィルタを用いる。
【０１６５】
また、被写体の動きに対応する情報として、角速度を用いても良い。角速度が大きい場合はカメラをパンニングさせながら被写体を追いかけていることや、シーンが大きく変化していることが考えられる。このため、被写体の実際の動きに対して、焦点検出結果の誤差による影響が大きくなる。このため、例えば角速度が第３の速度以上であれば、第１のカルマンフィルタを用い、第３の速度未満であれば、第２のカルマンフィルタを用いる。これにより、角速度が大きくなるようなシーンであっても、より精度良く被写体にピントを合わせることができる。
【０１６６】
また、本発明は上述の実施例の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み取り実行する処理でも実現できる。更に、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現できる。
【０１６７】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【０１６８】
２２４  マイクロコンピュータ
【図１】
2020091415.tif 000010
【図２】
2020091415.tif 000011
【図３】
2020091415.tif 000012
【図４】
2020091415.tif 000013
【図５】
2020091415.tif 000014
【図６】
2020091415.tif 000015
【図７】
2020091415.tif 000016
【図８】
2020091415.tif 000017
【図９】
2020091415.tif 000018
【図１０】
2020091415.tif 000019
【図１１】
2020091415.tif 000020