(57)【要約】【課題】撮像装置のオートフォーカス機能において、被写体の遠近方向の動きへの追従性を改善する。【解決手段】被写体像を撮像する撮像素子と、撮像素子から得られた画像信号を用いて合焦状態を検出する焦点検出部と、撮像素子の画面内に複数の焦点検出領域を設定する設定部と、撮影の前に、複数の焦点検出領域のうちの１つの焦点検出領域について、焦点検出部による焦点検出を複数回行い、被写体の移動方向を検出する検出部と、検出部により検出された被写体の移動方向に基づいて、複数の焦点検出領域のいずれを用いて焦点検出を行うかを選択する選択部とを備える。【選択図】図１７
2020148907.tif 000002
【特許請求の範囲】
【請求項１】
被写体像を撮像する撮像素子と、
前記撮像素子から得られた画像信号を用いて合焦状態を検出する焦点検出手段と、
前記撮像素子の画面内に複数の焦点検出領域を設定する設定手段と、
撮影の前に、前記複数の焦点検出領域のうちの１つの焦点検出領域について、前記焦点検出手段による焦点検出を複数回行い、被写体の移動方向を検出する検出手段と、
前記検出手段により検出された被写体の移動方向に基づいて、前記複数の焦点検出領域のいずれを用いて焦点検出を行うかを選択する選択手段と、
を備えることを特徴とする撮像装置。
【請求項２】
前記焦点検出手段は、前記画像信号のコントラストを示す焦点評価値を求め、前記焦点評価値の値に基づいて焦点を検出することを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記焦点検出手段は、撮影レンズに配置されたフォーカスレンズを所定の移動範囲についてスキャンさせながら、前記焦点評価値を求めることにより、焦点を検出することを特徴とする請求項２に記載の撮像装置。
【請求項４】
前記検出手段は、前記複数の焦点検出領域のうちの中心に配置された焦点検出領域について、前記焦点検出手段による焦点検出を複数回行い、被写体の移動方向を検出することを特徴とする請求項１乃至３のいずれか１項に記載の撮像装置。
【請求項５】
前記被写体を検出する被写体検出手段をさらに備え、前記検出手段は、前記被写体検出手段により検出された被写体について、前記焦点検出手段による焦点検出を複数回行い、被写体の移動方向を検出することを特徴とする請求項１乃至４のいずれか１項に記載の撮像装置。
【請求項６】
前記検出手段は、前記１つの焦点検出領域における輝度変化が所定値以内である場合に、該１つの焦点検出領域について、前記焦点検出手段による焦点検出を複数回行い、被写体の移動方向を検出することを特徴とする請求項５に記載の撮像装置。
【請求項７】
前記１つの焦点検出領域についての前記被写体に対する合焦の程度が、前回合焦した位置に対して所定の深度に収まっている場合は、前記選択手段は、前記１つの焦点検出領域を、焦点検出の結果を採用する焦点検出領域として選択することを特徴とする請求項６に記載の撮像装置。
【請求項８】
前記検出手段は、前記１つの焦点検出領域において前記被写体が前記被写体検出手段により検出され続けている場合に、該１つの焦点検出領域について、前記焦点検出手段による焦点検出を複数回行い、被写体の移動方向を検出することを特徴とする請求項５乃至７のいずれか１項に記載の撮像装置。
【請求項９】
前記選択手段は、前記１つの焦点検出領域における輝度変化が所定値以内でない場合に、前記被写体の移動方向に前回の焦点検出における合焦位置から所定の深度に収まっている合焦位置が算出された焦点検出領域を、焦点検出の結果を採用する焦点検出領域として選択することを特徴とする請求項６に記載の撮像装置。
【請求項１０】
前記選択手段は、前記１つの焦点検出領域において前記被写体が前記被写体検出手段により検出され続けていない場合に、前記被写体の移動方向に前回の焦点検出における合焦位置から所定の深度に収まっている合焦位置が算出された焦点検出領域を、焦点検出の結果を採用する焦点検出領域として選択することを特徴とする請求項６に記載の撮像装置。
【請求項１１】
前記選択手段は、前記検出手段により被写体の移動方向が検出されていない場合に、前回の焦点検出における合焦位置に最も近い合焦位置が算出された焦点検出領域を、焦点検出の結果を採用する焦点検出領域として選択することを特徴とする請求項６に記載の撮像装置。
【請求項１２】
前記１つの焦点検出領域における焦点評価値の変化に応じて、ユーザーによる撮影の指示後に再度のスキャンを行わせる再スキャン手段をさらに備えることを特徴とする請求項３に記載の撮像装置。
【請求項１３】
前記１つの焦点検出領域における焦点評価値の変化は、合焦していた場合のフォーカスレンズの停止状態において検出されることを特徴とする請求項１２に記載の撮像装置。
【請求項１４】
前記１つの焦点検出領域は、前記複数の焦点検出領域の中心に配置された焦点検出領域であることを特徴とする請求項１２または１３に記載の撮像装置。
【請求項１５】
被写体像を撮像する撮像素子と、前記撮像素子から得られた画像信号を用いて合焦状態を検出する焦点検出手段とを備える撮像装置を制御する方法であって、
前記撮像素子の画面内に複数の焦点検出領域を設定する設定工程と、
撮影の前に、前記複数の焦点検出領域のうちの１つの焦点検出領域について、前記焦点検出手段による焦点検出を複数回行い、被写体の移動方向を検出する検出工程と、
前記検出工程により検出された被写体の移動方向に基づいて、前記複数の焦点検出領域のいずれを用いて焦点検出を行うかを選択する選択工程と、
を有することを特徴とする撮像装置の制御方法。
【請求項１６】
請求項１５に記載の制御方法の各工程をコンピュータに実行させるためのプログラム。  
【請求項１７】
請求項１５に記載の制御方法の各工程をコンピュータに実行させるためのプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルカメラ、ビデオカメラ等の撮像装置におけるオートフォーカス技術に関する。
【背景技術】
【０００２】
従来より、デジタルカメラなどにおいては、被写体に焦点を合わせる方法として、ＣＣＤなどの撮像素子から得られる輝度信号を用いて焦点検出を行い、自動的にフォーカスレンズを動かして合焦動作を行うオートフォーカス方式が用いられている。このオートフォーカス方式を用いた自動合焦装置では、各画面内に設定された焦点検出領域内における信号の高周波成分を積分したＡＦ評価値に基づいて、最もコントラストの高いフォーカスレンズ位置を検出し、合焦点を求めることが一般的に行われている。
【０００３】
このＡＦ方法において、近づくあるいは離れる方向（以下、遠近方向と呼ぶ）に動いている被写体にピントを合わせ続けるためには、常にフォーカスレンズを駆動して合焦点を求め続ける必要がある。合焦位置が得られた場合、さらにその合焦位置を記憶しておけば、過去の合焦位置より、次回の合焦位置を予め予測することが可能となる。
【０００４】
例えば、特許文献１には、撮影前にレンズ駆動によるＡＦスキャンを繰り返して、被写体にＡＦ追従させる自動合焦装置を備えた撮像装置が開示されている。また、特許文献２には、連続撮影などにおいて、毎撮影前にＡＦスキャンを行った後に合焦位置を記憶しておき、記憶している過去の合焦位置に基づいて、次回の撮影前の合焦位置を予測し、ＡＦスキャンをする所定範囲を決定する焦点調整装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２１２５５６号公報
【特許文献２】特開２００７−２０６４３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
動いている被写体に対してＡＦスキャンによって合焦位置を求める場合、一時的な背景抜けやＡＦスキャン中の被写体の変化などによって、信頼性の低い合焦位置または誤った合焦位置が求められてしまうことがある。
【０００７】
特許文献１では、画面内での被写体の動きを検出して、被写体の画面内での動きが大きい場合にＡＦ枠を拡大したり、ＡＦスキャン範囲を広げるなどの対策をとっている。しかし、遠近方向の被写体の動きについては対策されていない。そのため、被写体に画面の平面方向での動きがなく、遠近方向の動きが大きい場合には、被写体へのピント追従性能が悪くなってしまうという問題がある。
【０００８】
特許文献２では、常に過去の合焦位置に基づいて次回の被写体の合焦位置を予測してＡＦスキャンをする所定範囲を決定するため、一時的な背景抜けやＡＦスキャン中の被写体の変化などがあった場合、誤った予測をしてしまうことがある。そのため、被写体へのピント追従性能が悪くなってしまうという問題がある。
【０００９】
また、特許文献１及び２はともに、被写体が静止していてもスキャンを続けるため、フォーカスレンズの駆動による消費電力が大きい。また、常にスキャンを行うため、常にピント変動があり、ライブビュー画像の見栄えが悪いという問題もある。
【００１０】
本発明は上述した課題に鑑みてなされたものであり、その目的は、撮像装置のオートフォーカス機能において、被写体の遠近方向の動きへの追従性を改善することである。
【課題を解決するための手段】
【００１１】
本発明に係わる撮像装置は、被写体像を撮像する撮像素子と、前記撮像素子から得られた画像信号を用いて合焦状態を検出する焦点検出手段と、前記撮像素子の画面内に複数の焦点検出領域を設定する設定手段と、撮影の前に、前記複数の焦点検出領域のうちの１つの焦点検出領域について、前記焦点検出手段による焦点検出を複数回行い、被写体の移動方向を検出する検出手段と、前記検出手段により検出された被写体の移動方向に基づいて、前記複数の焦点検出領域のいずれを用いて焦点検出を行うかを選択する選択手段と、を備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、撮像装置のオートフォーカス機能において、被写体の遠近方向の動きへの追従性を改善することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の撮像装置の一実施形態であるデジタルカメラの構成を示すブロック図。
【図２】一実施形態のデジタルカメラの動作を示すフローチャート。
【図３】図２におけるＳｅｒｖｏＡＦのサブルーチンを示すフローチャート。
【図４】ＡＦ枠設定の概念を説明するための図。
【図５】図３における被写体距離変化判定のサブルーチンを示すフローチャート。
【図６】図２における通常ＡＦ動作のサブルーチンを示すフローチャート。
【図７】図３におけるＳｅｒｖｏ中ＡＦ動作のサブルーチンを示すフローチャート。
【図８】図７における予測可能判定のサブルーチンを示すフローチャート。
【図９】図７における被写体位置予測のサブルーチンを示すフローチャート。
【図１０】被写体位置予測の計算を説明するための図。
【図１１】図６及び図７におけるスキャンのサブルーチンを示すフローチャート。
【図１２】図６及び図７における合焦判定のサブルーチンを示すフローチャート。
【図１３】ＡＦ評価値の判定の概念を説明するための図。
【図１４】無限遠方向の単調減少を求める動作を示すフローチャート。
【図１５】至近端方向の単調減少を求める動作を示すフローチャート。
【図１６】図２における撮影動作のサブルーチンを示すフローチャート。
【図１７】図７における合焦枠選択のサブルーチンを示すフローチャート。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【００１５】
図１は本発明の撮像装置の一実施形態であるデジタルカメラの構成を示すブロック図である。
【００１６】
デジタルカメラ１００は、撮影光学系として、ズーム機構を含む撮影レンズ１０１、光量を制御する絞り及びシャッター１０２、撮像素子１０８上に焦点を合わせるためのフォーカスレンズ１０４を備える（配置されている）。ＡＥ処理部１０３は、絞り及びシャッター１０２を制御して露出を調整する。ＡＦ処理部１０５は、フォーカスレンズ１０４を駆動して撮影光学系の焦点を合わせる。ストロボ１０６は、ＥＦ処理部１０７の制御により、被写体を照明する。
【００１７】
撮像素子１０８は、被写体からの反射光（被写体像）を電気信号に変換する多数の光電変換素子を有する。Ａ／Ｄ変換部１０９は、撮像素子１０８の出力ノイズを除去するＣＤＳ回路、Ａ／Ｄ変換前に行う非線形増幅回路、そしてアナログ信号をデジタル信号に変換するＡ／Ｄ変換器を含む。画像処理部１１０は、デジタル信号に変換された画像信号に信号処理を施す。ＷＢ処理部１１１は、デジタル画像信号に対してホワイトバランス処理を行う。フォーマット変換部１１２は、画像処理部１１０で処理された画像データに対してフォーマット変換を行う。ＤＲＡＭ１１３は、画像データの一時保存などに用いられる高速アクセスが可能な内蔵メモリ(例えばランダムアクセスメモリなど）である。画像記録部１１４は、メモリーカードなどの記録媒体とそのインターフェースからなる。
【００１８】
システム制御部１１５は、撮影シーケンス制御などのデジタルカメラ１００全体の制御を司る。ＶＲＡＭ１１６は、表示用の画像を記憶する画像表示用メモリである。操作表示部１１７は、画像表示、操作補助のための表示、カメラの状態の表示などの他、撮影時には撮影画面と焦点検出領域を表示する。操作部１１８は、ユーザーがカメラを外部から操作するための操作部材を有する。撮影モードスイッチ１１９は、顔検出モードをＯＮまたはＯＦＦに切り替えたり、撮影モードを選択する等の操作を行うためのスイッチである。メインスイッチ１２０は、デジタルカメラ１００の電源を投入するためのスイッチである。
【００１９】
スイッチＳＷ１（１２１）は、レリーズボタン１３０が半押しされることによりＯＮとなり、ＡＦやＡＥ等の撮影スタンバイ動作が行われる。また、スイッチＳＷ２（１２２）は、スイッチＳＷ１がＯＮされた後、レリーズボタン１３０がさらに押し込まれる（全押しされる）ことによりＯＮとなり、実際の撮影動作が実行される。顔検出モジュール１２３は、画像処理部１１０で処理された画像信号を用いて顔検出を行い、検出した一つ又は複数の顔情報（位置・大きさ・信頼度）をシステム制御部１１５に送る。なお、顔の検出方法は、公知の方法が用いられるが、本発明の主眼点ではないため詳細な説明は省略する。
【００２０】
物体検出モジュール１２４は、画面内の顔以外の物体を検出して検出情報をシステム制御部１１５に送る。具体的には、画面内の色・輝度などの特徴量から主被写体と推定される領域を自動的に検出する。もしくは、操作表示部１１７がタッチパネル等により画面操作を受け付ける場合は、ユーザーが指定した表示部の座標から一定範囲内において、色・輝度などの特徴量から被写体を検出して追尾する。タッチパネル等が非搭載の場合は、操作表示部１１７に被写体指定用のＧＵＩ等を表示させて操作部１１８で被写体を指定し、特徴量を算出して追尾できるような構成とする。こちらも本発明の主眼点ではないため詳細な説明は省略する。角速度センサ部１２５は、カメラ自体の動きを検出して、カメラの動き情報をシステム制御部１１５に送る。
【００２１】
なお、ＤＲＡＭ１１３は、一時的に画像を記憶する高速バッファとして、あるいは画像の圧縮伸張における作業用メモリなどとして使用される。操作部１１８は、例えば次のようなものが含まれる。撮像装置の撮影機能や画像再生時の設定などの各種設定を行うメニュースイッチ、撮影レンズのズーム動作を指示するズームレバー、撮影モードと再生モードの動作モード切換えスイッチ、などである。
【００２２】
以下、本実施形態におけるデジタルカメラ１００の動作について説明する。図２は、本実施形態のデジタルカメラ１００の全体動作を示すフローチャートである。
【００２３】
まず、メインスイッチ１２０がＯＮされると、ステップＳ２０１へと進む。ステップＳ２０１では、スイッチＳＷ１の状態を判定し、ＯＮであればステップＳ２０２へと進み、ＯＮでなければステップＳ２０１を継続的に実行する。
【００２４】
ステップＳ２０２では、ＡＥ処理部１０３が画像処理部１１０の出力からＡＥ処理（露出制御処理）を行ってステップＳ２０３へと進む。ステップＳ２０３では、後述する図６のフローチャートに従って、通常ＡＦ動作が行われ、ステップＳ２０４へと進む。
【００２５】
ステップＳ２０４では、ＳｅｒｖｏＡＦモードに設定されているか否かを判定し、ＳｅｒｖｏＡＦモードに設定されていればステップＳ２０５へと進み、ＳｅｒｖｏＡＦモードに設定されていなければステップＳ２０６へと進む。ここで、ＳｅｒｖｏＡＦモードとは、被写体に一旦焦点が合った後も、被写体を追尾して焦点を合わせ続けるＡＦモードである。
【００２６】
ステップＳ２０５では、後述する図３に従って、ＳｅｒｖｏＡＦを行ってステップＳ２０６へと進む。ステップＳ２０６では、スイッチＳＷ１の状態を判定し、ＯＮであればステップＳ２０７へと進み、ＯＮでなければステップＳ２０１へと戻る。
【００２７】
ステップＳ２０７では、スイッチＳＷ２の状態を判定し、ＯＮであればステップＳ２０８へと進み、ＯＮでなければステップＳ２０４へと戻る。ステップＳ２０８では、後述する図１６のフローチャートに従って、撮影動作を行ってステップＳ２０１へと戻る。
【００２８】
図３は、図２のフローチャートのステップＳ２０５におけるＳｅｒｖｏＡＦ動作のサブルーチンのフローチャートである。
【００２９】
まず、ステップＳ３０１では、顔検出モジュール１２３と物体検出モジュール１２４により、被写体を検出したか否かを判定する。ステップＳ３０１において被写体が検出されていればステップＳ３０２へ進み、被写体が検出されていなければＳ３０３へ進む。
【００３０】
ステップＳ３０２では、被写体として顔が検出されていればステップＳ３０４へと進み、検出された被写体が顔でない場合はステップＳ３０５へと進む。
【００３１】
ステップＳ３０４では、顔検出モジュール１２３で検出した顔の位置、顔のサイズなどの顔情報を取得してステップＳ３０６へと進む。ステップＳ３０６では、最新の顔検出位置にＡＦ枠（焦点検出枠）を設定してステップＳ３０８へと進む。ここで、顔が検出されている場合のＡＦ枠のサイズは、予め設定された所定のサイズにしてもよいし、検出された顔のサイズに基づいて決定してもよい。本実施形態では、検出された顔のサイズに基づいて決定することとする。このイメージを図４（ａ）に示す。
【００３２】
ステップＳ３０５では、物体検出モジュール１２４で検出した物体の位置、物体のサイズなどの情報を取得してステップＳ３０７へと進む。ステップＳ３０７では、最新の物体検出位置を中心に３×３の所定サイズの９つのＡＦ枠を設定してステップＳ３０８へと進む。ここで、物体が検出されているときのＡＦ枠のサイズは、予め設定された所定のサイズにしてもよいし、検出サイズに基づいて決定してもよい。本実施形態では、顔以外の被写体では、動いている場合に検出サイズの変動が発生しやすいため、ＡＦ評価値への影響を考慮して所定サイズで固定することとする。このイメージを図４（ｂ）に示す。
【００３３】
ステップＳ３０３では、画面の中央領域などの所定位置にＡＦ枠を設定してステップＳ３０８へと進む。
【００３４】
ステップＳ３０８では、設定したＡＦ枠において焦点評価値及び輝度値を取得してステップＳ３０９へと進む。
【００３５】
ステップＳ３０９では、後述するステップＳ３１１のＳｅｒｖｏ中ＡＦ動作においてピークが検出されたことを示す、ピーク検出フラグの状態を調べる。ピーク検出フラグがＴＲＵＥであればステップＳ３１０へと進み、ピーク検出フラグがＦＡＬＳＥであれば、ステップＳ３１１へと進む。
【００３６】
ステップＳ３１１では、後述する図７のフローチャートに従ってＳｅｒｖｏ中ＡＦの動作を行って、図２のステップＳ２０６へと進む。
【００３７】
ステップＳ３１０では、後述する図５のステップＳ４０５において設定される被写体距離が変化したことを示す距離変化フラグの状態を調べる。距離変化フラグがＴＵＲＥであればステップＳ３１４へと進み、距離変化フラグがＦＡＬＳＥであれば、ステップＳ３１２へと進む。
【００３８】
ステップＳ３１２では、後述する図６のステップＳ５０８において設定される合焦フラグがＴＲＵＥであるか否かを判定し、合焦フラグがＴＲＵＥであればステップＳ３１３へと進み、合焦フラグがＦＡＬＳＥであればステップＳ３１４へと進む。ステップＳ３１３では後述する図５のフローチャートに従って被写体距離変化判定処理を行う。
【００３９】
ステップＳ３１４では、一度でも焦点評価値が所定値以上変化したか否かを判定する。ステップＳ３１４の条件を満たした場合はステップＳ３１５へ進み、満たさない場合はステップＳ３１６へ進む。
【００４０】
ステップＳ３１５では、後述の図１６のステップＳ１５０１におけるフォーカスレンズ１０４の停止状態での撮影指示後の再スキャン判定（再度のスキャンの判定）に用いる再スキャン判定フラグ（以後再スキャンＦｌｇ）をＴＲＵＥにしてＳｅｒｖｏＡＦの処理を終了する。また、ステップＳ３１６では再スキャン判定フラグをＦＡＬＳＥにしてＳｅｒｖｏＡＦの処理を終了する。この再スキャンＦｌｇは図２におけるステップＳ２０１のスイッチＳＷ１のＯＮ時にＦＡＬＳＥで初期化するが図示は省略する。
【００４１】
図５は、図３のフローチャートにおけるステップＳ３１３の被写体距離変化判定処理のサブルーチンを示す図である。
【００４２】
まず、ステップＳ４０１では、顔検出モジュール１２３により、顔が検出されているか否かを判定し、顔が検出されていればステップＳ４０２へと進み、顔が検出されていなければステップＳ４０６へと進む。
【００４３】
ステップＳ４０２では、今回検出した顔サイズが前回検出した顔サイズに対して所定割合以上変化したか否かを判定し、所定割合以上変化していればステップＳ４０３へと進み、所定割合以上変化していなければステップＳ４０６へと進む。ステップＳ４０３では、顔検出サイズ変化回数に１を加えてステップＳ４０４へと進む。
【００４４】
ステップＳ４０４では、顔サイズ変化回数が閾値以上か否かを判定し、閾値以上であればステップＳ４０５へと進み、そうでなければステップＳ４０６へと進む。
【００４５】
ステップＳ４０６では、前回取得した輝度値に対して、今回取得した輝度値が所定値以上変化したか否かを判定し、所定値以上変化していればステップＳ４０７へと進み、所定値以上変化していなければステップＳ４０９へと進む。ステップＳ４０７では、輝度値変化回数に１を加えてステップＳ４０８へと進む。
【００４６】
ステップＳ４０８では、輝度値変化回数が閾値以上か否かを判定し、閾値以上であればステップＳ４０５へと進み、そうでなければステップＳ４０９へと進む。
【００４７】
ステップＳ４０９では、前回取得した焦点評価値に対して、今回取得した焦点評価値が所定値以上変化したか否かを判定し、所定値以上変化していればステップＳ４１０へと進み、所定値以上変化していなければステップＳ４１２へと進む。ステップＳ４１０では、焦点評価値変化回数に１を加えてステップ４１１へと進む。
【００４８】
ステップＳ４１１では、焦点評価値変化回数が閾値以上か否かを判定し、閾値以上であればステップＳ４０５へと進み、そうでなければステップＳ４１２へと進む。
【００４９】
ステップＳ４１２では、角速度センサ部１２５で検出したカメラの動作量が所定値以上変化したか否かを判定し、所定値以上変化していればステップＳ４１３へと進み、そうでなければステップＳ４１５へと進む。ステップＳ４１３では、カメラ動作回数に１を加えてステップＳ４１４へと進む。
【００５０】
ステップＳ４１４では、カメラ動作回数が閾値以上か否かを判定し、閾値以上であればステップＳ４０５へと進み、そうでなければステップＳ４１５へと進む。
【００５１】
ステップＳ４１５では、物体検出モジュール１２４により被写体の動作量が所定値以上であるか否かを判定し、所定値以上であればステップＳ４１６へと進み、そうでなければステップＳ４１８へと進む。ステップＳ４１６では、被写体動作回数に１を加えてステップＳ４１７へと進む。
【００５２】
ステップＳ４１７では、被写体動作回数が閾値以上か否かを判定し、閾値以上であればステップＳ４０５へと進み、そうでなければステップＳ４１８へと進む。
【００５３】
ステップＳ４０５では、合焦フラグをＦＡＬＳＥにし、距離変化フラグをＴＲＵＥにして被写体距離変化判定処理を終了し、図３のステップＳ３１４へと進む。
【００５４】
ステップＳ４１８では、顔検出サイズ・輝度値・焦点評価値のいずれの評価値も変化せず、カメラ動作量、被写体動作量が所定値以上となっていないかを判定する。いずれの評価値も変化しておらず、いずれの動作量も所定値以上となっていなければステップＳ４１９へと進む。前述のどれかの評価値が変化している、または、どれかの動作量が所定値以上となっていれば、被写体距離変化判定処理を終了する。
【００５５】
ステップＳ４１９では、顔サイズ変化回数・輝度値変化回数・焦点評価値変化回数・カメラ動作回数・被写体動作回数の全てを０にして被写体距離変化判定処理を終了する。
【００５６】
図６は、図２のフローチャートにおけるステップＳ２０３の通常ＡＦ動作のサブルーチンを示す図である。
【００５７】
まず、ステップＳ５０１では、顔検出モジュール１２３で顔検出、もしくは物体検出モジュール１２４により被写体が検出されたか否かを判定し、被写体が検出されていればステップＳ５０３へと進み、検出されていなければステップＳ５０２へと進む。
【００５８】
ステップＳ５０３では、顔検出モジュール１２３、もしくは物体検出モジュール１２４で検出した被写体位置・サイズなどの情報を取得して、最新の被写体検出位置にＡＦ枠を設定する。ここで、被写体が検出されている場合のＡＦ枠のサイズは、予め設定された所定のサイズにしてもよいし、検出サイズに基づいて決定してもよい。本実施形態では、被写体検出サイズに基づいて一つのＡＦ枠を設定する。顔が検出されている場合のイメージは、ＳｅｒｖｏＡＦの場合と同様に図４（ａ）のようになる。物体が検出されている場合は、図４（ｃ）のようになる。
【００５９】
ステップＳ５０２では、画面の中央領域などの所定位置にＡＦ枠を設定してステップＳ５０４へと進む。ステップＳ５０４では、後述する図１１のフローチャートに従ってフォーカスレンズ１０４のスキャンを行って、ステップＳ５０５へと進む。
【００６０】
ステップＳ５０５では、後述する図１２のフローチャートに従って合焦判定を行って、ステップＳ５０６へと進む。
【００６１】
ステップＳ５０６では、ステップＳ５０５における合焦判定の結果が、ＯＫ判定であるか否かを判定し、ＯＫ判定であればステップＳ５０７へと進み、ＯＫ判定でなければステップＳ５０９へと進む。
【００６２】
ステップＳ５０７では、フォーカスレンズ１０４をステップＳ５０４でのスキャンで検出したピーク位置へ移させしてステップＳ５０８へと進む。ステップＳ５０８では、ピーク検出フラグ及び合焦フラグをＴＲＵＥにして、距離変化フラグをＦＡＬＳＥにして通常ＡＦ動作を終了し、図２のステップＳ２０４へと進む。
【００６３】
ステップＳ５０９では、フォーカスレンズ１０４を予め設定している位置（定点）へと移動させてステップＳ５１０へと進む。ここで、定点は被写体の存在確率の高い距離に設定する。顔が検出されていれば、顔サイズから人物の距離を推定し、推定した距離に設定してもよい。ステップＳ５１０では、ピーク検出フラグ及び合焦フラグ、さらに距離変化フラグをＦＡＬＳＥにして通常ＡＦ動作を終了する。
【００６４】
図７は、図３のフローチャートにおけるステップＳ３１１のＳｅｒｖｏ中ＡＦ動作のサブルーチンを示す図である。
【００６５】
まず、ステップＳ６０１では、現在の時刻と、次回のスキャン（後述するステップＳ６１０のスキャン）までの時間と、次回のスキャンにかかる時間とから、次回のスキャンにおいてフォーカスレンズ１０４の位置がスキャン範囲の中心に位置するときの時刻（予測時刻）を算出して、ＰｒｅＴｉｍｅとする。
【００６６】
ステップＳ６０２では、後述する図８のフローチャートに従って予測可能判定を行って、ステップＳ６０３へと進む。
【００６７】
ステップＳ６０３では、ステップＳ６０２の予測可能判定における予測可能判定結果がＯＫ判定であるか否かを判定し、ＯＫ判定であればステップＳ６０４へと進み、ＯＫ判定でなければステップＳ６０５へと進む。
【００６８】
ステップＳ６０４では、後述する図９のフローチャートに従って被写体位置予測処理を行って、ステップＳ６０７へと進む。
【００６９】
ステップＳ６０５では、後述する過去の動体予測用のデータScanTime[0]〜ScanTime[i-1]及びHokanPeak[0]〜HokanPeak[i-1]をクリアし、さらに連続して予測可能判定となった回数を示すｉを０にしてステップＳ６０６へと進む。ステップＳ６０６では、フォーカスレンズ１０４の現在位置をスキャン中心位置に設定して、ステップＳ６０７へと進む。
【００７０】
ステップＳ６０７では、合焦フラグがＴＲＵＥか否かを判定し、合焦フラグがＴＲＵＥであればステップＳ６０８へと進み、合焦フラグがＦＡＬＳＥであればステップＳ６０９へと進む。ステップＳ６０８では、スキャン範囲を所定範囲に設定してステップＳ６１０へと進む。ステップＳ６０９では、ステップＳ６０８で設定する所定範囲よりも広い範囲にスキャン範囲を設定してステップＳ６１０へと進む。
【００７１】
ステップＳ６１０では、後述する図１１のフローチャートに従ってスキャンを行って、ステップＳ６１１へと進む。
【００７２】
ステップＳ６１１では、後述する図１２のフローチャートに従って合焦判定を行って、ステップＳ６１２へと進む。
【００７３】
ステップＳ６１２では、物体検出モジュール１２４により被写体が検出されたか否かを判定する。被写体が検出されていれば複数のＡＦ枠を生成しているので、ステップＳ６１３において後述する図１７に従って合焦枠の選択を行う。
【００７４】
ステップＳ６１４では、ステップＳ６１１において判定した合焦判定結果がＯＫ判定か否かを判定し、ＯＫ判定であればステップＳ６１５へと進み、ＯＫ判定でなければステップＳ６２７へと進む。
【００７５】
ステップＳ６１５では、合焦フラグをＴＲＵＥにしてステップＳ６１６へと進む。ステップＳ６１６では、連続して合焦判定がＯＫ判定でなかった回数を示すＮＧcountを０にしてステップＳ６１７へと進む。
【００７６】
ステップＳ６１７では、ステップＳ６１０におけるスキャン結果（ピーク位置）とスキャン中心位置の差が所定値より小さいか否かを判定し、所定値より小さければステップＳ６１８へと進み、そうでなければステップＳ６２１へと進む。ステップＳ６１８では、連続してステップＳ６１０におけるピーク位置とスキャン中心位置の差が所定値より小さくなった回数を示すStCountに１を加えてステップＳ６１９へと進む。
【００７７】
ステップＳ６１９では、StCountが閾値以上であるか否かを判定し、閾値以上であればステップＳ６２０へと進み、そうでなければステップＳ６２２へと進む。ステップＳ６２０では、被写体の距離変化がなくなったと判断して、距離変化フラグをＦＡＬＳＥにしてＳｅｒｖｏ中ＡＦ動作を終了する。これにより、被写体距離が変化しない場合には、無駄にスキャンを繰り返すことなくフォーカスレンズを停止させることができる。
【００７８】
ステップＳ６２１では、StCountを０にクリアしてステップＳ６２２へと進む。ステップＳ６２２では、ステップＳ６１０における今回のスキャン中心位置に対する今回のピーク位置の方向と、前回のスキャン中心位置に対する前回のピーク位置の方向とが同方向であるか否かを判定する。そして、同方向であればステップＳ６２３へと進み、同方向でなければステップＳ６２４へと進む。
【００７９】
ステップＳ６２３では、同方向移動フラグをＴＲＵＥにしてステップＳ６２５へと進む。ステップＳ６２４では、同方向移動フラグをＦＡＬＳＥにしてステップＳ６２５へと進む。
【００８０】
ステップＳ６２５では、今回のスキャンにおいてフォーカスレンズ１０４の位置がスキャン範囲の中心に位置した時刻をScanTime[i]として、今回のスキャンにおけるピーク位置をHokanPeak[i]としてステップＳ６２６へと進む。ステップＳ６２６では、ｉに１を加えてＳｅｒｖｏ中ＡＦ動作を終了する。
【００８１】
ステップＳ６２７では、合焦フラグをＦＡＬＳＥにしてステップＳ６２８へと進む。ステップＳ６２８ではNGCountに１を加えてステップＳ６２９へと進む。ステップＳ６２９では、NGCountが所定値よりも大きいか否かを判定し、所定値より大きければステップＳ６３０へと進み、そうでなければＳｅｒｖｏ中ＡＦ動作を終了する。ステップＳ６３０では、ピーク検出フラグ及び距離変化フラグをＦＡＬＳＥにしてＳｅｒｖｏ中ＡＦ動作を終了する。
【００８２】
図８は、図７のフローチャートにおけるステップＳ６０２の予測可能判定処理のサブルーチンを示すフローチャートである。
【００８３】
まず、ステップＳ７０１では、ｉ＝０か否かを判定し、０であればステップＳ７０５へと進み、そうでなければステップＳ７０２へと進む。
【００８４】
ステップＳ７０２では、PreTimeとScanTime[i-1]の差が所定時間よりも短いか否かを判定し、所定時間よりも短ければステップＳ７０３へと進み、そうでなければステップＳ７０５へと進む。これにより、前回のスキャンから今回のスキャンまでの間の時間が分かり、前回のスキャン結果を使用した予測の信頼性があるのか否かを判断することができる。
【００８５】
ステップＳ７０３では同方向移動フラグがＴＲＵＥか否かを判定し、同方向移動フラグがＴＲＵＥであればステップＳ７０４へと進み、同方向移動フラグがＦＡＬＳＥであればステップＳ７０５へと進む。これにより、被写体が遠近方向で同方向に移動していると判断したときにのみ予測を行うことで、誤測距の結果を使用することによる誤った予測を抑制することができる。
【００８６】
ステップＳ７０４では、予測可能判定の結果をＯＫ判定として、予測可能判定フローを終了する。ステップＳ７０５では、予測可能判定の結果をＮＧ判定として、予測可能判定フローを終了する。
【００８７】
図９は、図７のフローチャートにおけるステップＳ６０４の被写体位置予測処理のサブルーチンを示すフローチャートである。図１０は、被写体位置の予測を示す図である。
【００８８】
まず、ステップＳ８０１では、ｉが２より小さいか否かを判定し、ｉが２より小さければステップＳ８０２へと進み、そうでなければステップＳ８０３へと進む。ステップＳ８０２では、スキャン中心位置を前回のスキャンのピーク位置に設定して被写体位置予測フローを終了する。
【００８９】
ステップＳ８０３では、ｉ＝２であるか否かを判定し、ｉ＝２であればステップＳ８０４へと進み、ｉが２より大きければステップＳ８０６へと進む。
【００９０】
ステップＳ８０４では、図１０（ａ）に示すように、下記の動体予測式１を使って、（ScanTime[0]，HokanPeak[0]）と、（ScanTime[1]，HokanPeak[1]）の２点から、PreTime時の被写体の予測位置PrePositionを算出し、ステップＳ８０５へと進む。
【００９１】
＜動体予測式１＞
PrePosition＝(PreTime−ScanTime[0])×(HokanPeak[1]−HokanPeak[0])
/(ScanTime[1]−ScanTime[0])＋HokanPeak[0] 
ステップＳ８０５では、ステップＳ８０４で算出した被写体の予測位置PrePositionをスキャン中心位置に設定して被写体位置予測フローを終了する。
【００９２】
ステップＳ８０６では、図１０（ｂ）に示すように、下記の動体予測式２を使って、（ScanTime[i-2]，HokanPeak[i-2]）、（ScanTime[i-1]，HokanPeak[i-1]）、（ScanTime[i]，HokanPeak[i]）の３点から、PreTime時の被写体の予測位置PrePositionを算出し、ステップＳ８０７へと進む。
【００９３】
＜動体予測式２＞
PrePosition＝(ｔ3/ｔ2)×{(ｔ3−ｔ2)×(ｔ2×Pos1−ｔ1×Pos2)
/t1/(ｔ1−ｔ2)＋Pos2}＋HokanPeak[i-2]
ｔ1＝ScanTime[i-1]−ScanTime[i-2]
ｔ2＝ScanTime[i]−ScanTime[i-2]
ｔ3＝PreTime−ScanTime[i-2]
Pos1＝HokanPeak[i-1]−HokanPeak[i-2]
Pos2＝HokanPeak[i]−HokanPeak[i-2]
ステップＳ８０７では、ステップＳ８０６で算出した被写体の予測位置PrePositionをスキャン中心位置に設定し、被写体位置予測フローを終了する。
【００９４】
図１１は、図６のフローチャートにおけるステップＳ５０４、及び図７のフローチャートにおけるステップＳ６１０のスキャン動作のサブルーチンを示すフローチャートである。
【００９５】
まず、ステップＳ１００１では、フォーカスレンズ１０４をスキャン開始位置に移動させる。スキャン開始位置は設定されたスキャン範囲（所定の移動範囲）の一端に設定される。ステップＳ１００２では、撮影画面内に設定される焦点検出領域の焦点評価値（合焦状態の程度を示す評価値）とフォーカスレンズ１０４の位置をシステム制御部１１５に内蔵される図示しない演算メモリに記憶する。
【００９６】
ステップＳ１００３では、フォーカスレンズ１０４の位置がスキャン終了位置にあるか否かを判定し、終了位置であればステップＳ１００５へ、そうでなければステップＳ１００４へ進む。スキャン終了位置は、設定されたスキャン範囲の他端に設定される。ステップＳ１００４ではフォーカスレンズ１０４を所定の方向へ所定量（所定の移動範囲）動かしてステップＳ１００２へと戻る。ステップＳ１００５では、ステップＳ１００２で記憶した焦点評価値とそのレンズ位置とから、焦点評価値のピーク位置を算出する。
【００９７】
図１２は、図６のフローチャートにおけるステップＳ５０５、及び図７のフローチャートにおけるステップＳ６１１の合焦判定処理のサブルーチンを示すフローチャートである。図１３は、焦点評価値の変化を示す図である。
【００９８】
焦点評価値は遠近競合などの特殊な場合を除けば、横軸にフォーカスレンズ位置、縦軸に焦点評価値をとるとその形は図１３に示すような山状になる。そこで焦点評価値が山状になっているか否かを、焦点評価値の最大値と最小値の差、一定値（ＳｌｏｐｅＴｈｒ）以上の傾きで傾斜している部分の長さ、傾斜している部分の勾配から判断することにより、合焦判定を行うことができる。合焦判定における判定結果は、以下に示すようにＯＫ、ＮＧで出力される。
【００９９】
ＯＫ：焦点評価値のピーク位置から、被写体の焦点調節が可能である。
【０１００】
ＮＧ：被写体のコントラストが不十分、もしくはスキャンした距離範囲外の距離に被写体が位置する。
【０１０１】
ここで図１３に示すように、山の頂上（Ａ点）から傾斜が続いていると認められる点をＤ点、Ｅ点とし、Ｄ点とＥ点の幅を山の幅Ｌ、Ａ点とＤ点の焦点評価値の差ＳＬ１とＡ点とＥ点の焦点評価値の差ＳＬ２の和ＳＬ１＋ＳＬ２をＳＬとする。
【０１０２】
まず、図１２のステップＳ１１０１において、焦点評価値の最大値と最小値、及び最大値を与えるスキャンポイントｉｏを求めてステップＳ１１０２へと進む。ステップＳ１１０２では、焦点評価値の山の幅を表す変数Ｌ、山の勾配を表す変数ＳＬをともに零に初期化してステップＳ１１０３へと進む。ステップＳ１１０３では、最大値を与えるスキャンポイントｉｏがスキャンを行った所定範囲における遠側端の位置か否かを調べ、遠側端位置でないならばステップＳ１１０４へ進み無限遠方向への単調減少を調べる。遠側端位置であったならば、この処理をスキップしステップＳ１１０５に進む。
【０１０３】
ここで、ステップＳ１１０４における無限遠方向への単調減少を調べる処理について説明する。図１４にそのフローチャートを示す。
【０１０４】
まず、ステップＳ１２０１において、カウンタ変数ｉをｉｏに初期化してステップＳ１２０２へと進む。ステップＳ１２０２では、スキャンポイントｉにおける焦点評価値の値ｄ［ｉ］と、ｉより１スキャンポイント分無限遠寄りのスキャンポイントｉ−１における焦点評価値の値ｄ［ｉ−１］の差を所定値ＳｌｏｐｅＴｈｒと比較する。ｄ［ｉ］−ｄ［ｉ−１］≧ＳｌｏｐｅＴｈｒであれば、無限遠方向への単調減少が生じていると判断し、ステップＳ１２０３に進む。一方、ｄ［ｉ］−ｄ［ｉ−１］≧ＳｌｏｐｅＴｈｒでなければ、無限遠方向への単調減少は生じていないと判断し、無限遠方向への単調減少をチェックする処理を終了する。
【０１０５】
ステップＳ１２０３では、焦点評価値が一定値以上の傾きで傾斜している部分の長さ（山の幅）を表す変数Ｌ、単調減少区間における減少量を表す変数ＳＬを以下の式に従い更新してステップＳ１２０４へと進む。
【０１０６】
Ｌ＝Ｌ＋１
ＳＬ＝ＳＬ＋（ｄ［ｉ］−ｄ［ｉ−１］）
ステップＳ１２０４では、ｉ＝ｉ−１として、検出をする点を１スキャンポイント無限遠側に移してステップＳ１２０５へと進む。ステップＳ１２０５では、カウンタｉがスキャンを行った所定範囲における遠側端位置の値（＝０）になったか否かを判定する。カウンタｉの値が０、すなわち単調減少を検出する開始点がスキャンを行った所定範囲における遠側端位置に達したならば、無限遠方向への単調減少をチェックする処理を終了する。以上のようにしてｉ＝ｉｏから無限遠方向への単調減少をチェックする。
【０１０７】
図１２の説明に戻って、ステップＳ１１０５では、最大値を与えるスキャンポイントｉｏがスキャンを行った所定範囲における至近端の位置か否かを判定し、至近端位置でないならばステップＳ１１０６へ進み至近端方向への単調減少を調べる。至近端位置であったならば、この処理をスキップしステップＳ１１０７に進む。
【０１０８】
ここで、ステップＳ１１０６における至近端方向への単調減少を調べる処理について説明する。図１５にそのフローチャートを示す。
【０１０９】
まず、ステップＳ１３０１において、カウンタ変数ｉをｉｏに初期化してステップＳ１３０２へと進む。ステップＳ１３０２では、スキャンポイントｉにおける焦点評価値の値ｄ［ｉ］と、ｉより１スキャンポイント分至近端寄りのスキャンポイントｉ＋１における焦点評価値の値ｄ［ｉ＋１］の差を所定値ＳｌｏｐｅＴｈｒと比較する。ｄ［ｉ］−ｄ［ｉ＋１］≧ＳｌｏｐｅＴｈｒであれば、至近端方向への単調減少が生じていると判断し、ステップＳ１３０３に進む。一方、ｄ［ｉ］−ｄ［ｉ＋１］≧ＳｌｏｐｅＴｈｒでなければ、至近端方向への単調減少は生じていないと判断し、至近端方向への単調減少をチェックする処理を終了する。
【０１１０】
ステップＳ１３０３では、焦点評価値が一定値以上の傾きで傾斜している部分の長さ（山の幅）を表す変数Ｌ、単調減少区間における減少量を表す変数ＳＬを以下の式に従い更新してステップＳ１３０４へと進む。
【０１１１】
Ｌ＝Ｌ＋１
ＳＬ＝ＳＬ＋（ｄ［ｉ］−ｄ［ｉ＋１］）
ステップＳ１３０４では、ｉ＝ｉ＋１として、検出をする点を１スキャンポイント至近端側に移してステップＳ１３０５へと進む。ステップＳ１３０５では、カウンタｉがスキャンを行った所定範囲における至近端位置の値（＝Ｎ）になったか否かを判定する。カウンタｉの値がＮ、すなわち単調減少を検出する開始点がスキャンを行った所定範囲における至近端位置に達したならば、至近端方向への単調減少をチェックする処理を終了する。以上のようにしてｉ＝ｉｏから至近端方向への単調減少をチェックする。
【０１１２】
無限遠方向および至近端方向への単調減少をチェックする処理が終了したならば、得られた焦点評価値が山状になっているか否か、諸係数をそれぞれのしきい値と比較し、ＯＫ、ＮＧの判定を行う。
【０１１３】
ステップＳ１１０７において、焦点評価値の最大値を与えるスキャンポイントｉｏがスキャンを行った所定範囲における至近端であり、かつ至近端スキャンポイントｎにおける焦点評価値の値ｄ［ｎ］と、ｎより１スキャンポイント分無限遠寄りのスキャンポイントｎ−１における焦点評価値の値ｄ［ｎ−１］の差が、所定値ＳｌｏｐｅＴｈｒ以上であればステップＳ１１１１へ進み、そうでなければステップＳ１１０８へ進む。
【０１１４】
ステップＳ１１０８では、焦点評価値の最大値を与えるスキャンポイントｉｏがスキャンを行った所定範囲における遠側端であり、かつ遠側端スキャンポイント０における焦点評価値の値ｄ［０］と、０より１スキャンポイント分至近端よりのスキャンポイント１における焦点評価値の値ｄ［１］の差が、所定値ＳｌｏｐｅＴｈｒ以上であればステップＳ１１１１へ進み、そうでなければステップＳ１１０９へ進む。
【０１１５】
ステップＳ１１０９では、一定値以上の傾きで傾斜している部分の長さＬが所定値Ｌｏ以上であり、かつ傾斜している部分の傾斜の平均値ＳＬ／Ｌが所定値ＳＬｏ／Ｌｏ以上であり、かつ焦点評価値の最大値と最小値の差が所定値以上であれば、ステップＳ１１１０へ進み、そうでなければステップＳ１１１１へ進む。
【０１１６】
ステップＳ１１１０では、得られた焦点評価値が山状となっていて、被写体の焦点調節が可能であるため判定結果をＯＫとしている。ステップＳ１１１１では、得られた焦点評価値が山状となっておらず、被写体の焦点調節が不可能であるため判定結果をＮＧとしている。また、複数のＡＦ枠を設定している場合は設定したＡＦ枠ごとに同様の判定を行う。
【０１１７】
以上のようにして、図６のフローチャートにおけるステップＳ５０５、及び図７のフローチャートにおけるステップＳ６１１の合焦判定を行う。
【０１１８】
次に、図１６は、図２のフローチャートにおけるステップＳ２０８の撮影動作を示すサブルーチンである。
【０１１９】
まず、ステップＳ１５０１では、前述した図３のステップＳ３１５もしくはステップＳ３１６で設定された再スキャンＦｌｇがＴＲＵＥであるか否かを判定する。再スキャンＦｌｇがＴＲＵＥであるはＳ１５０２へ進み、ＴＲＵＥでない場合はＳ１５０３へ進む。
【０１２０】
ステップＳ１５０２では、前述した図１１のスキャンを実行する。このスキャンは、前述した図３のステップＳ３０９の条件を満たし、かつ被写体が動いた直後に撮影指示されたことを想定して最終的にピントを追い込めるよう実施する。すなわち被写体が動いたにもかかわらず前述した図３のステップＳ３１１が実行されないまま撮影されてしまうことを防ぐ。
【０１２１】
次にステップＳ１５０３において被写体輝度を測定してステップＳ１５０４へと進む。ステップＳ１５０４では、ステップＳ１５０３で測定した被写体輝度に応じて撮像素子１０８への露光を行ってステップＳ１５０５へと進む。撮像素子面上に結像された像は光電変換されてアナログ信号となり、ステップＳ１５０５においてＡ／Ｄ変換部１０９へと送られ、撮像素子１０８の出力ノイズ除去や非線形処理などの前処理の後にデジタル信号に変換される。
【０１２２】
ステップＳ１５０６では、Ａ／Ｄ変換部１０９からの出力信号をＷＢ処理部１１１と画像処理部１１０によりホワイトバランス調整し、適正な出力画像信号としてステップＳ１５０７へと進む。
【０１２３】
ステップＳ１５０７では、出力画像信号をフォーマット変換部１１２でＪＰＥＧフォーマット等へフォーマット変換を行い、ＤＲＡＭ１１３に一時的に記憶してステップＳ１５０８へと進む。ステップＳ１５０８では、ＤＲＡＭ１１３内のデータを画像記録部１１４においてカメラ内のメモリ、またはカメラに装着されたメモリカードなどの外部記憶媒体へと転送し記憶して撮影動作を終了する。
【０１２４】
次に、図１７は、図７のフローチャートにおけるステップＳ６１３の合焦枠選択処理のサブルーチンを示すフローチャートである。
【０１２５】
まず、ステップＳ１７０１において、３×３枠中の中心のＡＦ枠における輝度値変化が所定値以内であることと、図７のステップＳ６１１での合焦判定結果がＯＫか否かを判定する。ここで輝度変化が所定値以内であるか否かを判断するのは、スキャン中にＡＦ枠内に輝度の異なる被写体の出入りがあった場合、所望の合焦位置が算出できない場合があるためである。ステップＳ１７０１で上記の条件を満たした場合はステップＳ１７０２へ進み、そうでなければＳ１７０３へ進む。
【０１２６】
Ｓ１７０２では、中心のＡＦ枠を選択し、このＡＦ枠で得られたピーク位置を採用する。次にステップＳ１７３６ではステップＳ１７０４において後述する被写体の移動方向を検出するための情報として選択したＡＦ枠のピーク位置を保存し、合焦枠選択を終了する。
【０１２７】
ステップＳ１７０３では、スキャン中に物体検出モジュール１２４において検出された被写体が非検出状態になっているか否かを判定する。スキャン中に被写体が非検出状態になっていればステップＳ１７２３へ進み、そうでなければステップＳ１７０４へ進む。
【０１２８】
ステップＳ１７０４では、被写体の移動方向を判定する。本実施形態では、前述したステップＳ１７３６で保存した過去にスキャンして求めたピーク位置を使用する。このピーク位置のスキャン３回分（スキャンを複数回行う）を、SetPosition1（３回前）、SetPosition2（前々回）、SetPosition3（前回）として保存し、スキャンを実行し、ピーク位置を検出するごとに更新しておく構成とする。また、フォーカスレンズ位置の値が大きくなるほど被写体がデジタルカメラ１００側へ近くなる構成とすると、ピーク位置が以下の条件式３を満たした場合に近方向（デジタルカメラ１００へ近づく方向）へ移動したと判定する。
【０１２９】
SetPosition3＞SetPosition2 かつ SetPosition2＞SetPosition1  …（式３）
また、ピーク位置が以下条件式４を満たした場合に遠方向（デジタルカメラ１００から遠ざかる方向）へ移動したと判定する。
【０１３０】
SetPosition3＜SetPosition2 かつ SetPosition2＜SetPosition1  …（式４）
スキャン試行回数が３回未満、もしくはスキャン試行回数が３回以上であり上記の式３、式４のいずれも満たさなかった場合は移動方向が未検出の状態とする。
【０１３１】
ステップＳ１７０５では、被写体が近方向へ移動したか否かを判定する。Ｓ１７０５を満たした場合はステップＳ１７０６へ進み、満たさない場合はステップＳ１７０７へ進む。ステップＳ１７０６ではＡＦ枠選択に必要な変数の初期化を行う。ここで後述するIndexをインクリメントしながら、設定した３×３全てのＡＦ枠に対して合焦結果を判定していく。
【０１３２】
ステップＳ１７０８では、参照しているＡＦ枠の合焦判定がＯＫかつ、前回スキャンしたピーク位置（前回合焦した位置）に対して所定以内のピーク位置か否かを判定する。ここで前回のピーク位置に対して所定以内（所定深度以内）のピーク位置か否かを判定するのは被写体の出入りなどで異なる被写体や背景に対して誤ってピーク位置を算出した結果を使用しないためである。ステップＳ１７０８の条件を満たした場合はステップＳ１７０９へ進み、満たさなければステップＳ１７１１へ進む。
【０１３３】
ステップＳ１７０９では、今回参照しているＡＦ枠のピーク位置がステップＳ１７０８からステップＳ１７１２のルーチンにおいて選択されているＡＦ枠（以後SelectFrame）のピーク位置よりも近側であるか否かを判定する。ステップＳ１７０９を満たした場合はステップＳ１７１０に進み、Ｓ１７０９を満たさない場合はステップＳ１７１１へ進む。
【０１３４】
ステップＳ１７１０では、今回参照しているＡＦ枠を選択枠候補として保存する。ここでIdexは今回参照しているＡＦ枠を表し、Indexで選択枠候補を表すSelectFrameを更新する構成とする。さらにステップＳ１７１０においてＡＦ枠が選択できたことを示すフラグSelectFlgをＴＲＵＥにする。
【０１３５】
ステップＳ１７１１では、ＡＦ枠を参照するためのIndexをインクリメントする。ステップＳ１７１２ではＡＦ枠を参照するためのIndexが設定されたＡＦ枠数−１に達している、つまり全ＡＦ枠について選択判定されたか否かを判断する。ステップＳ１７１２を満たした場合は、ステップＳ１７１３へ進み、満たさない場合はＳ１７０８へ戻る。
【０１３６】
ステップＳ１７１３では、前述したSelectFlgがＦＡＬＳＥであるか否かを判定する。ステップＳ１７１３を満たす場合はＳ１７１４へ進み、満たさない場合は処理を終了する。ステップＳ１７１４では焦点検出評価値の極大値が最も近側に算出されたＡＦ枠を選択し、処理を終了する。
【０１３７】
ステップＳ１７０７では、被写体が遠方向へ移動したか否かを判定する。Ｓ１７０７を満たした場合はステップＳ１７１５へ進み、満たさない場合はステップＳ１７２３へ進む。ステップＳ１７１５ではＡＦ枠選択に必要な変数の初期化を行う。ステップＳ１７１６では参照しているＡＦ枠の合焦判定がＯＫかつ、前回スキャンしたピーク位置に対して所定以内のピーク位置か否かを判定する。ステップＳ１７１６の条件を満たした場合はステップＳ１７１７へ進み、満たさなければステップＳ１７１９へ進む。
【０１３８】
ステップＳ１７１７では今回参照しているＡＦ枠のピーク位置がステップＳ１７１６からステップＳ１７２０のルーチンにおいて選択されているSelectFrameのピーク位置よりも遠側であるか否かを判定する。ステップＳ１７１７を満たした場合はステップＳ１７１８に進み、Ｓ１７１７を満たさない場合はステップＳ１７１９へ進む。
【０１３９】
ステップＳ１７１８では、ステップＳ１７１０と同様に、今回参照しているＡＦ枠を選択枠候補として保存し、ＡＦ枠が選択できたことを示すフラグSelectFlgをＴＲＵＥにする。
【０１４０】
ステップＳ１７１９では、ＡＦ枠を参照するためのIndexをインクリメントする。ステップ１７２０では、ＡＦ枠を参照するためのIndexが設定されたＡＦ枠数−１に達しているか否かを判定する。ステップＳ１７２０を満たした場合は、ステップＳ１７２１へ進み、満たさない場合はＳ１７１６へ戻る。
【０１４１】
ステップＳ１７２１では、前述したSelectFlgがＦＡＬＳＥであるか否かを判定する。ステップＳ１７２１を満たす場合はＳ１７２２へ進み、満たさない場合は処理を終了する。ステップＳ１７２２では焦点検出評価値の極大値が最も遠側に算出されたＡＦ枠を選択し、処理を終了する。
【０１４２】
ステップＳ１７０７において条件を満たさない場合は被写体の移動方向が検出されていないとしてステップＳ１７２３へ進む。ステップＳ１７２３ではＡＦ枠選択に必要な変数の初期化を行う。ステップＳ１７２４では参照しているＡＦ枠の合焦判定がＯＫか否かを判定する。ステップＳ１７２４の条件を満たした場合はステップＳ１７２５へ進み、満たさない場合はステップＳ１７３０へ進む。
【０１４３】
ステップＳ１７２５では、前述した図７のステップＳ６１０におけるＳｅｒｖｏ中ＡＦのスキャンが２回以上実行されているか否かを判定する。ステップＳ１７２５の条件を満たした場合はＳ１７２６へ進み、満たさなければステップＳ１７２７へ進む。
【０１４４】
ステップＳ１７２６では、前回スキャンしたピーク位置に対して所定以内のピーク位置か否かを判定する。ステップＳ１７２７では前述した図２のステップＳ２０３の通常ＡＦにおいて算出したピーク位置に対して所定以内のピーク位置か否かを判定する。ステップＳ１７２６、もしくはステップＳ１７２７の条件を満たした場合はステップＳ１７２８へ進み、満たさなければステップＳ１７３０へ進む。
【０１４５】
ステップＳ１７２８では、今回参照しているＡＦ枠のピーク位置がステップＳ１７２４からステップＳ１７３１のルーチンにおいて選択されているSelectFrameのピーク位置よりも前回スキャンしたピーク位置に近いか否かを判定する。ステップＳ１７２８を満たした場合はステップＳ１７２９に進み、Ｓ１７２８を満たさない場合はステップＳ１７３０へ進む。
【０１４６】
ステップＳ１７２９では、ステップＳ１７１０と同様に今回参照しているＡＦ枠を選択枠候補として保存し、ＡＦ枠が選択できたことを示すフラグSelectFlgをＴＲＵＥにする。ステップＳ１７３０では、ＡＦ枠を参照するためのIndexをインクリメントする。
【０１４７】
ステップＳ１７３１では、ＡＦ枠を参照するためのIndexが設定されたＡＦ枠数−１に達しているか否かを判定する。ステップＳ１７３１の条件を満たした場合は、ステップＳ１７３２へ進み、満たさない場合はＳ１７２４へ戻る。
【０１４８】
ステップＳ１７３２では、前述したSelectFlgがＦＡＬＳＥであるか否かを判定する。ステップＳ１７３２を満たす場合はＳ１７３３へ進み、満たさない場合は処理を終了する。ステップＳ１７３３では、前述したステップＳ１７２５同様にＳｅｒｖｏ中ＡＦのスキャンが２回以上実行されているか否かを判定する。ステップＳ１７３３の条件を満たした場合はステップＳ１７３４へ進み、満たさない場合はステップＳ１７３５へ進む。
【０１４９】
ステップＳ１７３４では、焦点検出評価値の極大値が最も前回スキャンしたピーク位置に近いピーク位置が算出されたＡＦ枠を選択し、処理を終了する。ステップＳ１７３５では、焦点検出評価値の極大値が最も通常ＡＦのピーク位置に近いピーク位置が算出されたＡＦ枠を選択し、処理を終了する。
【０１５０】
以上説明したように、本実施形態によれば、ＡＦ枠に対して別の被写体が入った、もしくは被写体がＡＦ枠から外れてしまったなどの原因により、信頼性の低い合焦位置を求めてしまった場合に、 誤った合焦位置を採用しにくくする。これにより、被写体への追従不能を軽減させることができる。また、被写体が遠近方向に動いていないと判断した場合に、次に動くまでフォーカスレンズを停止させることにより、無駄なレンズ駆動を軽減させることができ、ライブ画像の見栄えの低下及び電池消耗を軽減させることができる。
【０１５１】
（他の実施形態）
また本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現できる。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現できる。
【０１５２】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【０１５３】
１０１：撮影レンズ、１０２：絞り及びシャッター、１０３：ＡＥ処理部、１０４：フォーカスレンズ、１０５：ＡＦ処理部、１０８：撮像素子、１０９：Ａ／Ｄ変換部、１１０：画像処理部、１１１：ＷＢ処理部、１１４：画像記録部、１１５：システム制御部、１２０：メインスイッチ、１２３：顔検出モジュール、１２４：物体検出部、１２５：角速度センサ部、１３０：レリーズボタン
【図１】
2020148907.tif 000003
【図２】
2020148907.tif 000004
【図３】
2020148907.tif 000005
【図４】
2020148907.tif 000006
【図５】
2020148907.tif 000007
【図６】
2020148907.tif 000008
【図７】
2020148907.tif 000009
【図８】
2020148907.tif 000010
【図９】
2020148907.tif 000011
【図１０】
2020148907.tif 000012
【図１１】
2020148907.tif 000013
【図１２】
2020148907.tif 000014
【図１３】
2020148907.tif 000015
【図１４】
2020148907.tif 000016
【図１５】
2020148907.tif 000017
【図１６】
2020148907.tif 000018
【図１７】
2020148907.tif 000019