(57)【特許請求の範囲】
【請求項１】
フォーカスレンズを介して入力される被写体像を撮像して画像データを出力する撮像手段と、
前記画像データに基づき前記フォーカスレンズの位置を制御して焦点調節を行う焦点調節手段と、
前記画像データに基づいて被写体像の動きを検出する動き検出手段とを有し、
前記焦点調節手段は、前記動き検出手段により被写体像の動きが検出されなかった場合には、前記フォーカスレンズを所定量移動させる前に検出した焦点検出領域に対応する画像データに基づく焦点評価値と、移動の後に検出した前記焦点検出領域に対応する画像データに基づく焦点評価値とから、前記フォーカスレンズを次に移動させる際の移動方向を決定し、前記移動方向に前記フォーカスレンズを移動させる焦点調節動作を繰り返すことにより前記フォーカスレンズを前記焦点評価値のピーク位置であるピント位置に移動する焦点調節動作を行う第１の焦点調節動作を行うように制御し、前記動き検出手段により被写体像の動きが検出された場合には、予め決められた移動範囲において前記フォーカスレンズを移動させて焦点検出領域に対応する画像データに基づく焦点評価値を順次検出するスキャン動作を行って、前記焦点評価値のピーク位置であるピント位置を検出し、前記ピント位置に前記フォーカスレンズを移動させる焦点調節動作を連続的に行う第２の焦点調節動作を行うように制御することを特徴とする焦点調節装置。
【請求項２】
前記焦点調節手段は、前記第２の焦点調節動作においては、過去に検出した合焦位置に基づく移動範囲内で前記フォーカスレンズを移動させることを特徴とする請求項１に記載の焦点調節装置。
【請求項３】
前記焦点調節手段は、前記第２の焦点調節動作では、前記第１の焦点調節動作よりも単位時間あたりの前記フォーカスレンズの移動量を多くすることを特徴とする請求項１又は２に記載の焦点調節装置。
【請求項４】
前記動き検出手段は、前記画像データから被写体の顔を検出し、当該顔の変化を判定することによって被写体像の動きを検出することを特徴とする請求項１乃至３の何れか１項に記載の焦点調節装置。
【請求項５】
前記顔の変化とは、被写体の顔の位置又は大きさの変化であることを特徴とする請求項４に記載の焦点調節装置。
【請求項６】
前記動き検出手段は、被写体の顔の位置又は大きさが所定回数以上、同方向に所定量以上連続して変化した場合に被写体像の動きを検出することを特徴とする請求項５に記載の焦点調節装置。
【請求項７】
前記動き検出手段は、光学ズーム動作中は被写体像の動きを検出しないことを特徴とする請求項１乃至６の何れか１項に記載の焦点調節装置。
【請求項８】
前記動き検出手段は、電子ズーム動作中は被写体像の動きを検出しないことを特徴とする請求項１乃至７の何れか１項に記載の焦点調節装置。
【請求項９】
前記焦点調節手段は、前記画像データの輝度が所定の値以下である場合、前記第２の焦点調節動作は行わず、前記第１の焦点調節動作を行うことを特徴とする請求項１乃至８の何れか１項に記載の焦点調節装置。
【請求項１０】
前記動き検出手段による被写体像の動き検出結果に基づいて、被写体が動いているか否かを示す情報を表示部に表示させる表示制御手段を更に有することを特徴とする請求項１乃至９の何れか１項に記載の焦点調節装置。
【請求項１１】
フォーカスレンズを介して入力される被写体像を撮像して得られた画像データに基づいて、被写体像の動きを検出する動き検出ステップと、
前記画像データに基づき前記フォーカスレンズの位置を制御して焦点調節を行う焦点調節ステップであって、前記動き検出ステップにより被写体像の動きが検出されなかった場合には、前記フォーカスレンズを所定量移動させる前に検出した焦点検出領域に対応する画像データに基づく焦点評価値と、移動の後に検出した前記焦点検出領域に対応する画像データに基づく焦点評価値とから、前記フォーカスレンズを次に移動させる際の移動方向を決定し、前記移動方向に前記フォーカスレンズを移動させる焦点調節動作を繰り返すことにより前記フォーカスレンズを前記焦点評価値のピーク位置であるピント位置に移動する焦点調節動作を行う第１の焦点調節動作を行い、前記動き検出ステップにより被写体像の動きが検出された場合には、予め決められた移動範囲において前記フォーカスレンズを移動させて焦点検出領域に対応する画像データに基づく焦点評価値を順次検出するスキャン動作を行って、前記焦点評価値のピーク位置であるピント位置を検出し、前記ピント位置に前記フォーカスレンズを移動させる焦点調節動作を連続的に行う第２の焦点調節動作を行うように制御する焦点調節ステップとを含むことを特徴とする焦点調節方法。
【請求項１２】
フォーカスレンズを介して入力される被写体像を撮像して得られた画像データに基づいて、被写体像の動きを検出する動き検出ステップと、
前記画像データに基づき前記フォーカスレンズの位置を制御して焦点調節を行う焦点調節ステップであって、前記動き検出ステップにより被写体像の動きが検出されなかった場合には、前記フォーカスレンズを所定量移動させる前に検出した焦点検出領域に対応する画像データに基づく焦点評価値と、移動の後に検出した前記焦点検出領域に対応する画像データに基づく焦点評価値とから、前記フォーカスレンズを次に移動させる際の移動方向を決定し、前記移動方向に前記フォーカスレンズを移動させる焦点調節動作を繰り返すことにより前記フォーカスレンズを前記焦点評価値のピーク位置であるピント位置に移動する焦点調節動作を行う第１の焦点調節動作を行い、前記動き検出ステップにより被写体像の動きが検出された場合には、予め決められた移動範囲において前記フォーカスレンズを移動させて焦点検出領域に対応する画像データに基づく焦点評価値を順次検出するスキャン動作を行って、前記焦点評価値のピーク位置であるピント位置を検出し、前記ピント位置に前記フォーカスレンズを移動させる焦点調節動作を連続的に行う第２の焦点調節動作を行うように制御する焦点調節ステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フォーカスレンズを介して入力される被写体像を撮像して得られた画像データに基づく焦点調節の技術に関するものである。
【背景技術】
【０００２】
従来より、電子スチルカメラ等において、フォーカスレンズ位置を動かして被写体にピントを合わせる方法として、ＣＣＤ等の撮像素子から得られる輝度信号を用いて自動的に合焦動作を行うオートフォーカス（以下、ＡＦと称す）方式が用いられている。このＡＦ方式を用いた自動合焦装置では、各画面内に設定された測距領域内における輝度信号の高周波成分を積分したＡＦ評価値に基づいて、最もコントラストの高いフォーカスレンズ位置を検出し、合焦点を求めることが一般的に行われている。
【０００３】
このＡＦの一つの方式として、ＡＦ評価値が増加する方向にフォーカスレンズを動かし、ＡＦ評価値が最大になる位置を合焦位置とする山登り方式(以下、コンティニュアスＡＦと称す)が知られている。この方式を用いて、ＡＦ評価値が増加する方向に遅い速度でフォーカスレンズを動かすと、ライブ画像の見栄えを損なわずに被写体にピント追従させることができる。しかし、距離方向に大きく動いている状態の被写体へのピント追従性は悪い。
【０００４】
距離方向に大きく動いている状態の被写体へのピント追従性を良くするためには、フォーカスレンズの駆動速度を早くすればよい。距離方向に動いている被写体へのピント追従性を良くするためのＡＦ方式として、過去に検出した合焦点に基づいた距離範囲内で、常にフォーカスレンズを速く駆動して合焦点を求め続ける方式（以下、サーボＡＦと称す）がある。しかし、距離方向に大きく動いている状態の被写体へのピント追従性を良くしようとすると、単位時間あたりのピント変動が大きくなるため、ライブ画像の見栄えは悪くなる。
【０００５】
特許文献１では、検出した主要人物被写体の状態を検出して、検出状態に応じて撮影動作の制御を行う電子カメラが開示されている。特許文献２では、被写体の動き及び本撮影装置の動きを推測し、被写体の動きによってシャッタスピード、絞り、感度、発光条件、その他の撮影条件を設定する撮影装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２８２１１９号公報
【特許文献２】特開２００６−１５７４２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に開示される技術では、検出した主要人物である被写体の状態を検出し、検出状態に応じて撮影動作の制御を行っているが、検出した被写体の動きによってＡＦ制御を変えているわけではない。従って、動いている被写体にピント追従させることができない、又は、動いていない被写体を撮影する場合にピント変動によりライブ画像の見栄えが悪くなってしまう、という問題がある。
【０００８】
特許文献２に開示される技術では、被写体の動き及び撮影装置の動きを推測し、被写体の動きによってシャッタスピード、絞り、感度、発光条件、その他の撮影条件を設定しているが、検出した被写体の動きによってＡＦ制御を変えているわけではない。従って、動いている被写体にピント追従させることができない、又は、動いていない被写体を撮影する場合にピント変動によりライブ画像の見栄えが悪くなってしまう、という問題がある。
【０００９】
そこで、本発明の目的は、できるだけライブ画像の見栄えを損ねることなく、動いている被写体にピント追従し続けることを可能とすることにある。
【課題を解決するための手段】
【００１０】
本発明の技術的特徴として、フォーカスレンズを介して入力される被写体像を撮像して画像データを出力する撮像手段と、前記画像データに基づき前記フォーカスレンズの位置を制御して焦点調節を行う焦点調節手段と、前記画像データに基づいて被写体像の動きを検出する動き検出手段とを有し、前記焦点調節手段は、前記動き検出手段により被写体像の動きが検出されなかった場合には、前記フォーカスレンズを所定量移動させる前に検出した焦点検出領域に対応する画像データに基づく焦点評価値と、移動の後に検出した前記焦点検出領域に対応する画像データに基づく焦点評価値とから、前記フォーカスレンズを次に移動させる際の移動方向を決定し、前記移動方向に前記フォーカスレンズを移動させる焦点調節動作を繰り返すことにより前記フォーカスレンズを前記焦点評価値のピーク位置であるピント位置に移動する焦点調節動作を行う第１の焦点調節動作を行うように制御し、前記動き検出手段により被写体像の動きが検出された場合には、予め決められた移動範囲において前記フォーカスレンズを移動させて焦点検出領域に対応する画像データに基づく焦点評価値を順次検出するスキャン動作を行って、前記焦点評価値のピーク位置であるピント位置を検出し、前記ピント位置に前記フォーカスレンズを移動させる焦点調節動作を連続的に行う第２の焦点調節動作を行うように制御することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、できるだけライブ画像の見栄えを損ねることなく、動いている被写体にピント追従し続けることが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に係る電子カメラの構成を示すブロック図である。
【図２】本発明の第１の実施形態に係る電子カメラの動作を表すフローチャートである。
【図３】主被写体の変化判断の処理を示すフローチャートである。
【図４】顔サイズの変化判断の処理を示すフローチャートである。
【図５】顔位置の変化判断の処理を示すフローチャートである。
【図６】コンティニュアスＡＦの処理を示すフローチャートである。
【図７】サーボＡＦの処理を示すフローチャートである。
【図８】山登りＡＦの処理を示すフローチャートである。
【図９】被写体距離変化判定の処理を示すフローチャートである。
【図１０】通常ＡＦ動作を示すフローチャートである。
【図１１】サーボ中ＡＦ動作を示すフローチャートである。
【図１２】予測可能判定の処理を示すフローチャートである。
【図１３】被写体位置予測の処理を示すフローチャートである。
【図１４】被写体位置予測の処理を説明するための図である。
【図１５】スキャン処理を示すフローチャートである。
【図１６】合焦判定の処理を示すフローチャートである。
【図１７】合焦判定の処理を説明するための図である。
【図１８】本発明の第２の実施形態に係る電子カメラの動作を示すフローチャートである。
【図１９】本発明の第２の実施形態におけるコンティニュアスＡＦ動作中の山登りＡＦの処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００１４】
先ず、本発明の第１の実施形態について説明する。図１は、本発明の第１の実施形態に係る電子カメラの構成を示すブロック図である。１０１はズーム機構を含む撮影レンズである。１０２は光量を制御する絞り及びシャッタである。１０３はＡＥ処理部である。１０４は後述する撮像素子上に焦点をあわせるためのフォーカスレンズである。１０５はＡＦ処理部である。１０６はフォーカスレンズ１０４を介して入力される被写体からの反射光を電気信号に変換する撮像素子である。１０７は撮像素子１０６の出力ノイズを除去するＣＤＳ回路やＡ／Ｄ変換前に行う非線形増幅回路を含むＡ／Ｄ変換部である。１０８は画像処理部である。１０９はフォーマット変換部である。１１０は高速な内蔵メモリ(例えばランダムアクセスメモリ等、以下ＤＲＡＭと称す)である。１１１はメモリカード等の記録媒体とそのインタフェースからなる画像記録部である。１１２は撮影シーケンス等のシステムを制御するシステム制御部である。１１３は画像表示用メモリ(以下、ＶＲＡＭと称す)である。１１４は、操作補助のための表示や主被写体が動いているか否か等を示す表示、撮影時には撮影画面と測距領域の表示を行う操作表示部である。１１５は光学ズーム動作や電子ズーム動作等、カメラを外部から操作するための操作部である。１１６は顔検出モードをＯＮ又はＯＦＦに切り替える等の設定を行う撮影モードスイッチである。１１７はシステムに電源を投入するためのメインスイッチである。１１８はＡＦやＡＥ等の撮影スタンバイ動作を行うためのスイッチ(以下、ＳＷ１と称す)である。１１９はＳＷ１の操作後、撮影を行うためのスイッチ(以下、ＳＷ２と称す)である。１２０は画像処理部１０８で処理された画像信号を用いて顔検出を行い、検出した一つ又は複数の顔情報（位置・大きさ）をシステム制御部１１２に送る顔検出モジュールである。なお、本実施形態に係る電子カメラは、本発明の自動合焦装置の適用例となる構成である。
【００１５】
図２は、本発明の第１の実施形態に係る電子カメラの動作を表すフローチャートである。まずメインスイッチ１１７がＯＮになると、ステップ２０１へと進む。ステップ２０１において、システム制御部１１２は、後述する図３のフローチャートに従って主被写体の変化判断を行い、ステップ２０２へと進む。ステップ２０２において、システム制御部１１２は、輝度が所定値以下か否かを判定する。輝度が所定値以下であればステップ２０７へ進み、輝度が所定値以下でなければステップ２０３へと進む。これにより、後述するサーボＡＦにおいて必要なＡＦ精度が得られない低照度条件時にサーボＡＦを行わずコンティニュアスＡＦを行うようにすることができる。ステップ２０３において、システム制御部１１２は、ステップ２０１のサブルーチンで判断した結果、主被写体が動いていると判定されたか否かを判定する。主被写体が動いていると判定された場合、ステップ２０４へと進み、そうでなければステップ２０７へと進む。ステップ２０４において、システム制御部１１２は、主被写体が動いていることを示す動きアイコンを画面内の所定位置に表示して、ステップ２０５へと進む。ステップ２０５において、システム制御部１１２は、後述する図７のフローチャートに従いサーボＡＦを行ってステップ２０９へと進む。ステップ２０７において、システム制御部１１２は、画面内の所定位置に主被写体が動いていることを示す動きアイコンが表示されていれば、非表示にしてステップ２０８へと進む。ステップ２０８において、システム制御部１１２は、後述する図６のフローチャートに従いコンティニュアスＡＦを行ってステップ２０９へと進む。なお、ステップ２０５、ステップ２０８及びステップ２０１における主被写体（被写体像）の変化（動き）検出結果に応じてステップ２０５又はステップ２０８の処理を制御する処理は、本発明の焦点調節手段の処理例であり、ステップ２０１は、本発明の動き検出手段の処理例である。さらに、コンティニュアスＡＦは、本発明の第１の焦点調節動作の適用例となる処理であり、サーボＡＦは、本発明の第２の焦点調節動作の適用例となる処理である。
【００１６】
ステップ２０９において、システム制御部１１２は、スイッチＳＷ１の状態を判定する。ＯＮであればステップ２１０へと進み、ＯＮでなければステップ２０１へと進む。ステップ２１０において、システム制御部１１２は、画像処理部１０８の出力からＡＥ処理部１０３にＡＥ処理を行わせてステップ２１１へと進む。ステップ２１１において、システム制御部１１２は、合焦フラグの状態を判定する。合焦フラグがＴＲＵＥであればステップ２１３へと進み、合焦フラグがＦＡＬＳＥであればステップ２１２へと進む。ステップ２１２において、システム制御部１１２は、後述する図１０のフローチャートに従い通常ＡＦ動作を行ってステップ２１３へと進む。ステップ２１３において、システム制御部１１２は、サーボＡＦモードに設定されているか否かを判定する。サーボＡＦモードに設定されていればステップ２１４へと進み、サーボＡＦモードに設定されていなければステップ２１５へと進む。ステップ２１４において、システム制御部１１２は、後述する図７のフローチャートに従いサーボＡＦを行ってステップ２１５へと進む。ステップ２１５において、システム制御部１１２は、スイッチＳＷ１の状態を判定する。ＯＮであればステップ２１６へと進み、ＯＮでなければステップ２０１へと進む。ステップ２１６において、システム制御部１１２は、スイッチＳＷ２の状態を判定する。ＯＮであればステップ２１７へと進み、ＯＮでなければステップ２１３へと進む。ステップ２１７において、システム制御部１１２は撮影動作を行ってステップ２０１へと進む。ここで、ステップ２１７の撮影動作では、ＡＦやＡＥ等の撮影スタンバイ動作が行われた後、撮像され画像処理された画像データが電子カメラ内のメモリ、または電子カメラに装着された外部記憶媒体へと転送され記憶される。
【００１７】
以下、図２のフローチャートにおけるステップ２０１の主被写体の変化判断のサブルーチンについて、図３のフローチャートを参照しながら説明する。
【００１８】
まずステップ３０１において、顔検出モジュール１２０は顔検出したか否かを判定する。顔検出していればステップ３０２へと進み、顔検出していなければこのサブルーチンを終了し、ステップ２０２へと進む。ステップ３０２において、システム制御部１１２は、撮影レンズ１０１において光学ズーム動作中であるか否か、又は、電子ズーム動作中であるか否かを判定する。光学ズーム動作中又は電子ズーム動作中であればステップ３０５へと進み、そうでなければステップ３０３へと進む。このように光学ズームや電子ズームの動作中は、人物の被写体に変化がなくても顔サイズや画面内の顔位置が変化してしまうため、顔サイズや顔位置の変化判断を行わない。ステップ３０３において、システム制御部１１２は後述する図４のフローチャートに従い顔サイズの変化判断を行ってステップ３０４へと進む。ステップ３０４において、システム制御部１１２は、後述する図５のフローチャートに従い顔位置の変化判断を行ってステップ３０５へと進む。ステップ３０５において、システム制御部１１２は、顔サイズ変動フラグがＴＲＵＥか否かを判定し、ＴＲＵＥであればステップ３０７へと進み、そうでなければステップ３０６へと進む。ステップ３０６において、システム制御部１１２は、顔位置変動フラグがＴＲＵＥであるか否かを判定する。ＴＲＵＥであればステップ３０７へと進み、そうでなければステップ３０８へと進む。ステップ３０７において、システム制御部１１２は主被写体が動いていると判断してこのサブルーチンを終了し、ステップ２０２へと進む。ステップ３０８において、システム制御部１１２は主被写体が動いていないと判断してこのサブルーチンを終了し、ステップ２０２へと進む。
【００１９】
以下、図３のフローチャートにおけるステップ３０３の顔サイズの変化判断のサブルーチンについて、図４のフローチャートを参照しながら説明する。
【００２０】
まず、ステップ４０１において、システム制御部１１２は、顔検出モジュール１２０で検出した顔サイズ情報を時間方向にフィルタ処理し、顔サイズの変化を判断する評価値ＦＳＣを計算してステップ４０２へ進む。ここでＦＳＣは、距離方向への被写体の動き度合いを表しており、符号がプラスの場合は顔が大きくなる方向、つまり近側方向、符号がマイナスの場合は顔が小さくなる方向、つまり遠側方向への動きを表している。ステップ４０２において、システム制御部１１２は、ＦＳＣの絶対値が予め設定した変化判定の閾値以上か否かを判定する。変化判定の閾値以上であればステップ４０３へ進み、そうでなければステップ４０９へ進む。ここで変化判定の閾値は、被写体距離が変化していないときの顔検出の誤差によって変化判定してしまわないように設定する。ステップ４０３において、システム制御部１１２は、ＦＳＣの符号がマイナスか否かを判定する。マイナスであればステップ４０４へ進み、そうでなければステップ４０６へ進む。
【００２１】
ステップ４０４において、システム制御部１１２は遠側変化カウンタを１つインクリメントしてステップ４０５へ進む。ステップ４０５において、システム制御部１１２は近側変化カウンタを０にしてステップ４０８へ進む。ステップ４０６において、システム制御部１１２は近側変化カウンタを１つインクリメントしてステップ４０７へ進む。ステップ４０７において、システム制御部１１２は遠側変化カウンタを０にしてステップ４０８へ進む。ステップ４０８において、システム制御部１１２は顔サイズ安定カウンタを０にしてステップ４１０へ進む。ステップ４０９において、システム制御部１１２は顔サイズ安定カウンタを１つインクリメントしてステップ４１０へ進む。
【００２２】
ステップ４１０において、システム制御部１１２は、近側変化カウンタが予め設定した変化回数の閾値以上であるか否かを判定する。変化回数の閾値以上であればステップ４１２へ進み、そうでなければステップ４１１へ進む。ここで変化回数の閾値は、被写体距離が変化していないときの顔検出の誤差によって変化判定してしまわないように設定する。ステップ４１１において、システム制御部１１２は、遠側変化カウンタが変化回数の閾値以上であるか否かを判定する。変化閾値以上であればステップ４１２へ進み、そうでなければステップ４１３へ進む。ステップ４１２において、システム制御部１１２は顔サイズ変動フラグをＴＲＵＥにしてステップ４１３へ進む。ステップ４１３において、システム制御部１１２は顔サイズ安定カウンタが予め設定した安定回数の閾値以上であるか否かを判定し、安定回数の閾値以上であればステップ４１４へ進み、そうでなければこのサブルーチンを終了し、ステップ３０４へ進む。ここで安定回数の閾値は、被写体距離が変化しているときに誤って安定したと判定してしまわないように設定する。ステップ４１４において、システム制御部１１２は、後述する距離変化フラグがＴＲＵＥか否かを判定する。ＴＲＵＥであればこのサブルーチンを終了し、ステップ３０４へ進み、そうでなければステップ４１５へ進む。ステップ４１５において、システム制御部１１２は、後述する合焦フラグがＴＲＵＥであるか否かを判定する。ＴＲＵＥであればステップ４１６へ進み、そうでなければこのサブルーチンを終了し、ステップ３０４へ進む。ステップ４１６において、システム制御部１１２は、顔サイズ変動フラグをＦＡＬＳＥにしてこのサブルーチンを終了し、ステップ３０４へ進む。
【００２３】
以下、図３のフローチャートにおけるステップ３０４の顔位置の変化判断のサブルーチンについて、図５のフローチャートを参照しながら説明する。
【００２４】
まずステップ５０１において、システム制御部１１２は、顔検出モジュール１２０で検出した顔位置のＸ座標、Ｙ座標の情報をそれぞれ時間方向にフィルタ処理することで、顔位置の変化を判断する評価値ＦＰＣＸ、ＦＰＣＹを計算してステップ５０２へ進む。ここでＦＰＣＸは、画面中の水平方向(左右方向)への被写体の動きの度合いを表しており、符号がプラスの場合は画面右方向、符号がマイナスの場合は画面左方向への動きを表している。またＦＰＣＹは、画面中の垂直方向(上下方向)への被写体の動きの度合いを表しており、符号がプラスの場合は画面上方向、符号がマイナスの場合は画面下方向への動きを表している。
【００２５】
ステップ５０２において、システム制御部１１２は、ＦＰＣＸの絶対値が予め設定した変化判定の閾値以上か否かを判定する。変化判定の閾値以上であれば、ステップ５０３へ進み、そうでなければステップ５０９へ進む。ここで変化判定の閾値は、被写体距離が変化していないときの顔検出の誤差や、手ぶれによる画面内の動きによって誤って変化判定してしまわないように設定する。ステップ５０３において、システム制御部１１２は、ＦＰＣＸの符号がマイナスか否かを判定する。符号がマイナスであればステップ５０４へ進み、そうでなければステップ５０６へ進む。ステップ５０４において、システム制御部１１２は、右方向変化カウンタを１つインクリメントしてステップ５０５へ進む。ステップ５０５において、システム制御部１１２は、左方向変化カウンタを０にしてステップ５０８へ進む。ステップ５０６において、システム制御部１１２は、左方向変化カウンタを１つインクリメントしてステップ５０７へ進む。ステップ５０７において、システム制御部１１２は、右方向変化カウンタを０にしてステップ５０８へ進む。ステップ５０８において、システム制御部１１２は、Ｘ方向安定カウンタを０にしてステップ５１０へ進む。ステップ５０９において、システム制御部１１２は、Ｘ方向安定カウンタを１つインクリメントしてステップ５１０へ進む。
【００２６】
ステップＳ５１０において、システム制御部１１２は、ＦＰＣＹの絶対値が予め設定した変化判定の閾値以上か否かを判定する。変化判定の閾値以上であればステップ５１１へ進み、そうでなければステップ５１７へ進む。ステップ５１１において、システム制御部１１２は、ＦＰＣＹの符号がマイナスか否かを判定する。マイナスであれば、ステップ５１２において、上方向変化カウンタを１つインクリメントしてステップ５１３へ進む。ステップ５１３において、システム制御部１１２は、下方向変化カウンタを０にしてステップ５１６へ進む。ステップ５１４において、システム制御部１１２は、下方向変化カウンタを１つインクリメントしてステップ５１５へ進む。ステップ５１５において、システム制御部１１２は、上方向変化カウンタを０にしてステップ５１６へ進む。ステップ５１６において、システム制御部１１２は、Ｘ方向安定カウンタを０にしてステップ５１８へ進む。ステップ５１７において、システム制御部１１２は、Ｘ方向安定カウンタを１つインクリメントしてステップ５１８へ進む。
【００２７】
ステップ５１８において、システム制御部１１２は、上方向変化カウンタが予め設定した変化回数の閾値以上か否かを判定する。変化回数の閾値以上であれば、ステップ５２２へ進み、そうでなければステップ５１９へ進む。ここで変化回数の閾値は、被写体距離が変化していないときの顔検出の誤差や、手ぶれによる画面内の動きによって誤って変化判定してしまわないように設定する。ステップ５１９において、システム制御部１１２は、下方向変化カウンタが変化回数の閾値以上か否かを判定する。変化回数の閾値以上であれば、ステップ５２２へ進み、そうでなければステップ５２０へ進む。ステップ５２０において、システム制御部１１２は、左方向変化カウンタが変化回数の閾値以上か否かを判定する。変化回数の閾値以上であればステップ５２２へ進み、そうでなければステップ５２１へ進む。ステップ５２１において、システム制御部１１２は、右方向変化カウンタが変化回数の閾値以上か否かを判定する。変化回数の閾値以上であればステップ５２２へ進み、そうでなければステップ５２３へ進む。ステップ５２２において、システム制御部１１２は、顔位置変動フラグをＴＲＵＥとしてステップ５２３へ進む。
【００２８】
ステップ５２３において、システム制御部１１２は、顔位置安定カウンタが予め設定した安定回数の閾値以上か否かを判定する。安定回数の閾値以上であれば、ステップ５２４へ進み、そうでなければこのサブルーチンを終了してステップ３０５へ進む。ここで安定回数の閾値は、被写体距離が変化しているときに誤って安定したと判定してしまわないように設定する。ステップ５２４において、システム制御部１１２は、後述する距離変化フラグがＴＲＵＥか否かを判定する。ＴＲＵＥであればこのサブルーチンを終了してステップ３０５へ進み、そうでなければステップ５２５へ進む。ステップ５２５において、システム制御部１１２は、後述する合焦フラグがＴＲＵＥか否かを判定する。ＴＲＵＥであればステップ５２６へ進み、そうでなければこのサブルーチンを終了してステップ３０５へ進む。ステップ５２６において、システム制御部１１２は、顔位置変動フラグをＦＡＬＳＥにしてこのサブルーチンを終了してステップ３０５へすすむ。
【００２９】
以下、図２のフローチャートにおけるステップ２０８のコンティニュアスＡＦのサブルーチンについて、図６のフローチャートを参照しながら説明する。コンティニュアスＡＦは、フォーカスレンズを所定量駆動する毎に、フォーカスレンズの次回の駆動方向を決定するＡＦ方式である。
【００３０】
まず、ステップ６０１において、顔検出モジュール１２０は顔検出したか否かを判定する。顔検出していればステップ６０２へと進み、顔検出していなければステップ６０４へと進む。ステップ６０２において、システム制御部１１２は、顔検出モジュール１２０で検出した顔位置・顔サイズ等の顔情報を取得してステップ６０３へと進む。ステップ６０３において、システム制御部１１２は、顔検出していることを示す顔検出フラグをＴＲＵＥにしてステップ６０４へと進む。ステップ６０４において、システム制御部１１２は、顔検出フラグの状態を判定する。顔検出フラグがＴＲＵＥであれば、ステップ６０５へと進み、顔検出フラグがＦＡＬＳＥであれば、ステップ６０６へと進む。ステップ６０５において、システム制御部１１２は、最新の顔検出位置にＡＦ枠を設定してステップ６０７へと進む。ここで、顔検出されているときのＡＦ枠のサイズは、所定のサイズにしてもよいし、顔検出サイズに基づいて決定してもよい。ステップ６０６において、システム制御部１１２は、中央領域等の所定位置にＡＦ枠を設定してステップ６０７へと進む。ステップ６０７において、システム制御部１１２は、ステップ６０５又はステップ６０６で設定したＡＦ枠において焦点評価値及び輝度値を取得してステップ６０８へと進む。
【００３１】
ステップ６０８において、システム制御部１１２は、後述するステップ６０９の山登りＡＦにおいてピークが検出されたことを示す、ピーク検出フラグの状態を判定する。ピーク検出フラグがＴＲＵＥであれば、ステップ６１０へと進み、ピーク検出フラグがＦＡＬＳＥであれば、ステップ６０９へと進む。ステップ６０９において、システム制御部１１２は、後述する図８のフローチャートに従い山登りＡＦを行ってステップ２０９へと進む。ステップ６１０において、システム制御部１１２は、後述する図９のフローチャートに従い被写体距離の変化判定を行って、ステップ６１１へと進む。ステップ６１１において、システム制御部１１２は、被写体距離が変化したことを示す距離変化フラグの状態を判定する。距離変化フラグがＴＲＵＥであれば、ステップ６１２へと進み、距離変化フラグがＦＡＬＳＥであれば、ステップ６１３へと進む。ステップ６１２において、システム制御部１１２は、ピーク検出フラグ及び距離変化フラグをＦＡＬＳＥにする。そしてシステム制御部１１２は、ステップ６０９の山登りＡＦのサブルーチンで用いる焦点評価値の最大値、ピーク位置、焦点評価値の増加を示す増加カウンタをリセットしてステップ６１３へと進む。ステップ６１３において、システム制御部１１２は、フォーカスレンズをそのまま停止させてステップ２０９へと進む。
【００３２】
以下、図２のフローチャートにおけるステップ２０５、ステップ２１４のサーボＡＦのサブルーチンについて、図７のフローチャートを参照しながら説明する。サーボＡＦは、過去に検出した合焦位置に基づく駆動範囲内でフォーカスレンズを駆動するＡＦ方式である。なお、サーボＡＦは、コンティニュアスＡＦよりもフォーカスレンズの駆動速度が速い（単位時間あたりのフォーカスレンズの駆動量が多い）。
【００３３】
まず、ステップ７０１において、顔検出モジュール１２０は顔検出しているか否かを判定する。顔検出していればステップ７０２へと進み、顔検出していなければステップ７０４へと進む。ステップ７０２において、システム制御部１１２は、顔検出モジュール１２０で検出した顔位置・顔サイズ等の顔情報を取得してステップ７０３へと進む。ステップ７０３において、システム制御部１１２は、顔検出していることを示す顔検出フラグをＴＲＵＥにしてステップ７０４へと進む。ステップ７０４において、システム制御部１１２は、顔検出フラグの状態を判定する。顔検出フラグがＴＲＵＥであればステップ７０５へと進み、顔検出フラグがＦＡＬＳＥであればステップ７０６へと進む。ステップ７０５において、システム制御部１１２は、最新の検出位置にＡＦ枠を設定してステップ７０７へと進む。ここで、顔検出されているときのＡＦ枠のサイズは、所定のサイズにしてもよいし、顔検出サイズに基づいて決定してもよい。ステップ７０６において、システム制御部１１２は、中央領域等の所定位置にＡＦ枠を設定してステップ７０７へと進む。ステップ７０７において、システム制御部１１２は、ステップ７０５又はステップ７０６で設定したＡＦ枠において焦点評価値及び輝度値を取得してステップ７０８へと進む。
【００３４】
ステップ７０８において、システム制御部１１２は、後述するステップ７０９の山登りＡＦにおいてピークが検出されたことを示す、ピーク検出フラグの状態を判定する。ピーク検出フラグがＴＲＵＥであればステップ７１０へと進み、ピーク検出フラグがＦＡＬＳＥであればステップ７０９へと進む。ステップ７０９において、システム制御部１１２は、後述する図８のフローチャートに従い山登りＡＦを行ってステップ２０９又はステップ２１５へと進む。ステップ７１０において、システム制御部１１２は、被写体距離が変化したことを示す距離変化フラグの状態を判定する。距離変化フラグがＴＲＵＥであればステップ７１２へと進み、距離変化フラグがＦＡＬＳＥであればステップ７１１へと進む。ステップ７１１において、システム制御部１１２は、合焦フラグがＴＲＵＥであるか否かを判定する。合焦フラグがＴＲＵＥであればステップ７１３へと進み、合焦フラグがＦＡＬＳＥであればステップ７１２へと進む。ステップ７１２において、システム制御部１１２は、後述する図１１のフローチャートに従いサーボ中ＡＦ動作を行って、ステップ２０９又はステップ２１５へと進む。ステップ７１３において、システム制御部１１２は、後述する図９のフローチャートに従い被写体距離変化判定を行ってステップ２０９又はステップ２１５へと進む。
【００３５】
以下、図６のフローチャートにおけるステップ６０９及び図７のフローチャートにおけるステップ７０９の山登りＡＦのサブルーチンについて、図８のフローチャートを参照しながら説明する。
【００３６】
まずステップ８０１において、システム制御部１１２は、フォーカスレンズ１０４の現在位置を取得してステップ８０２へと進む。ステップ８０２において、システム制御部１１２は、焦点評価値・輝度値の取得及びフォーカスレンズ１０４の現在位置の取得をカウントするための取得カウンタに１を加えてステップ８０３へと進む。この取得カウンタは、初期化動作(図示略)において予め０に設定されているものとする。ステップ８０３において、システム制御部１１２は、取得カウンタの値が１か否かを判定する。取得カウンタの値が１ならばステップ８０６へと進み、取得カウンタの値が１でなければステップ８０４へと進む。ステップ８０４において、システム制御部１１２は、「今回の焦点評価値」が「前回の評価値」よりも大きいか否かを判定する。「今回の焦点評価値」が「前回の焦点評価値」よりも大きければステップ８０５へと進み、そうでなければステップ８１２へと進む。ステップ８０５において、システム制御部１１２は、「今回の焦点評価値」が「前回の評価値」よりも大きいことを示す増加カウンタに１を加えてステップ８０６へと進む。この増加カウンタは、初期化動作(図示略)において予め０に設定されているものとする。ステップ８０６において、システム制御部１１２は、今回の焦点評価値を焦点評価値の最大値としてシステム制御部１１２に内蔵される図示しない演算メモリに記憶して、ステップ８０７へと進む。ステップ８０７において、システム制御部１１２は、フォーカスレンズ１０４の現在の位置を焦点評価値のピーク位置としてシステム制御部１１２に内蔵される図示しない演算メモリに記憶して、ステップ８０８へと進む。ステップ８０８において、システム制御部１１２は、今回の焦点評価値を前回の焦点評価値としてシステム制御部１１２に内蔵される図示しない演算メモリに記憶してステップ８０９へと進む。ステップ８０９において、システム制御部１１２は、フォーカスレンズ１０４の現在位置が測距範囲の端にあるか否かを判定する。測距範囲の端にあればステップ８１０へと進み、測距範囲の端になければステップ８１１へと進む。ステップ８１０において、システム制御部１１２は、フォーカスレンズ１０４の移動方向を反転してステップ８１１へと進む。ステップ８１１において、システム制御部１１２は、フォーカスレンズ１０４を所定量移動してステップ２０９又はステップ２１５へと進む。
【００３７】
ステップ８１２において、システム制御部１１２は、「焦点評価値の最大値−今回の焦点評価値」が所定量より大きいか否かを判定する。所定量より大きければステップ８１３へと進み、そうでなければステップ８０８へと進む。ここで、「焦点評価値の最大値−今回の焦点評価値」が所定量より大きいこと、即ち最大値から所定量減少していれば、その最大値をピントのピーク位置での値とみなす。ステップ８１３において、システム制御部１１２は、増加カウンタが０より大きいか否かを判定する。増加カウンタが０より大きければステップ８１４へと進み、そうでなければステップ８０８へと進む。ステップ８１４において、システム制御部１１２は、フォーカスレンズ１０４をステップ８０７で記憶した焦点評価値が最大値となったピーク位置へ移動させて、ステップ８１５へと進む。ステップ８１５において、システム制御部１１２は、ピーク検出フラグをＴＲＵＥにしてステップ８１６へと進む。ステップ８１６において、システム制御部１１２は、取得カウンタを０としてステップ２０９又はステップ２１５へと進む。
【００３８】
以下、図６のフローチャートにおけるステップ６１０及び図７のフローチャートにおけるステップ７１３の被写体距離変化判定のサブルーチンについて、図９のフローチャートを参照しながら説明する。
【００３９】
まずステップ９０１において、顔検出モジュール１２０は、顔検出しているか否かを判定する。顔検出していればステップ９０２へと進み、顔検出していなければステップ９０６へと進む。ステップ９０２において、システム制御部１１２は、今回検出した顔サイズが前回検出した顔サイズに対して所定割合以上変化したか否かを判定する。所定割合以上変化していればステップ９０３へと進み、所定割合以上変化していなければステップ９０６へと進む。ステップ９０３において、システム制御部１１２は、顔検出サイズ変化回数に１を加えてステップ９０４へと進む。ステップ９０４において、システム制御部１１２は、顔サイズ変化回数が閾値以上か否かを判定する。閾値以上であればステップ９０５へと進み、そうでなければステップ９０６へと進む。ステップ９０６において、システム制御部１１２は、前回取得した輝度値に対して、今回取得した輝度値が所定値以上変化したか否かを判定する。所定値以上変化していればステップ９０７へと進み、所定値以上変化していなければステップ９０９へと進む。ステップ９０７において、システム制御部１１２は、輝度値変化回数に１を加えてステップ９０８へと進む。ステップ９０８において、システム制御部１１２は、輝度値変化回数が閾値以上か否かを判定する。閾値以上であればステップ９０５へと進み、そうでなければステップ９０９へと進む。ステップ９０９において、システム制御部１１２は、前回取得した焦点評価値に対して、今回取得した焦点評価値が所定値以上変化したか否かを判定する。所定値以上変化していればステップ９１０へと進み、所定値以上変化していなければステップ９１２へと進む。ステップ９１０において、システム制御部１１２は、焦点評価値変化回数に１を加えてステップ９１１へと進む。ステップ９１１において、システム制御部１１２は、焦点評価値変化回数が閾値以上か否かを判定する。閾値以上であればステップ９０５へと進み、そうでなければステップ９１２へと進む。ステップ９１２において、システム制御部１１２は、角速度センサ部１２５で検出したカメラの動作量が所定値以上変化したか否かを判定する。所定値以上変化していればステップ９１３へと進み、そうでなければステップ９１５へと進む。ステップ９１３において、システム制御部１１２は、カメラ動作回数に１を加えてステップ９１４へと進む。ステップ９１４において、システム制御部１１２は、カメラ動作回数が閾値以上か否かを判定する。閾値以上であればステップ９０５へと進み、そうでなければステップ９１５へと進む。ステップ９１５において、システム制御部１１２は、動体検出部１２４で被写体の動作量が所定値以上であるか否かを判定する。所定値以上であればステップ９１６へと進み、そうでなければステップ９１８へと進む。ステップ９１６において、システム制御部１１２は、被写体動作回数に１を加えてステップ９１７へと進む。ステップ９１７において、システム制御部１１２は、被写体動作回数が閾値以上か否かを判定する。閾値以上であればステップ９０５へと進み、そうでなければステップ９１８へと進む。
【００４０】
ステップ９０５において、システム制御部１１２は、合焦フラグをＦＡＬＳＥにし、距離変化フラグをＴＲＵＥにして被写体距離変化判定を終了し、ステップ６１１又はステップ２０９、ステップ２１５へと進む。ステップ９１８において、システム制御部１１２は、顔検出サイズ・輝度値・焦点評価値のいずれの評価値も変化しておらず、カメラ動作量、被写体動作量が所定値以上となっていないか否かを判定する。いずれの評価値も変化しておらず、いずれの動作量も所定値以上となっていなければステップ９１９へと進む。どれかの評価値が変化している、又は、どれかの動作量が所定値以上となっていれば、被写体距離変化判定を終了してステップ６１１又はステップ２０９、ステップ２１５へと進む。ステップ９１９において、システム制御部１１２は、顔サイズ変化回数・輝度値変化回数・焦点評価値変化回数、カメラ動作回数、被写体動作回数の全てを０にして被写体距離変化判定を終了し、ステップ６１１又はステップ２０９、ステップ２１５へと進む。
【００４１】
以下、図２のフローチャートにおけるステップ２１２の通常ＡＦ動作のサブルーチンについて、図１０のフローチャートを参照しながら説明する。
【００４２】
まず、ステップ１００１において、顔検出モジュール１２０は顔検出したか否かを判定する。顔検出していればステップ１００２へと進み、顔検出していなければステップ１００４へと進む。ステップ１００２において、システム制御部１１２は、顔検出モジュール１２０で検出した顔位置・顔サイズ等の顔情報を取得してステップ１００３へと進む。ステップ１００３において、システム制御部１１２は、顔検出していることを示す顔検出フラグをＴＲＵＥにしてステップ１００４へと進む。ステップ１００４において、システム制御部１１２は、顔検出フラグの状態を判定する。顔検出フラグがＴＲＵＥであればステップ１００５へと進み、顔検出フラグがＦＡＬＳＥであれば、ステップ１００６へと進む。ステップ１００５において、システム制御部１１２は、最新の顔検出位置にＡＦ枠を設定してステップ１００７へと進む。ここで、顔検出されているときのＡＦ枠のサイズは、所定のサイズにしてもよいし、顔検出サイズに基づいて決定してもよい。ステップ１００６において、システム制御部１１２は、中央領域等の所定位置にＡＦ枠を設定してステップ１００７へと進む。ステップ１００７において、システム制御部１１２は、ＡＦモードがコンティニュアスＡＦモードであるかシングルＡＦモードであるか否かを判定する。コンティニュアスＡＦモードであればステップ１００８へと進み、シングルＡＦモードであればステップ１０１０へと進む。
【００４３】
ステップ１００８において、システム制御部１１２は、ピーク検出フラグがＴＲＵＥか否かを判定する。ピーク検出フラグがＴＲＵＥであればステップ１０１１へと進み、ピーク検出フラグがＦＡＬＳＥであればステップ１０１０へと進む。ステップ１０１０において、システム制御部１１２は、スキャン範囲設定を全域に設定してステップ１０１２へと進む。ステップ１０１１において、システム制御部１１２は、スキャン範囲をフォーカスレンズ１０４の現在位置を中心とした所定範囲と設定してステップ１０１２へと進む。ステップ１０１２において、システム制御部１１２は、後述する図１５のフローチャートに従いスキャンを行って、ステップ１０１３へと進む。ステップ１０１３において、システム制御部１１２は、後述する図１６のフローチャートに従い合焦判定を行って、ステップ１０１４へと進む。
【００４４】
ステップ１０１４において、システム制御部１１２は、ステップ１０１３における合焦判定の結果が○判定か否かを判定する。○判定であればステップ１０１５へと進み、○判定でなければステップ１０１７へと進む。ステップ１０１５において、システム制御部１１２は、フォーカスレンズ１０４をステップ１０１２でのスキャンで計算したピーク位置へ移動してステップ１０１６へと進む。ステップ１０１６において、システム制御部１１２は、ピーク検出フラグ及び合焦フラグをＴＲＵＥにして、距離変化フラグをＦＡＬＳＥにして通常ＡＦ動作を終了し、ステップ２１３へと進む。ステップ１０１７において、システム制御部１１２は、フォーカスレンズ１０４を予め設定している位置(定点)へと移動してステップ１０１８へと進む。ここで、定点は被写体の存在確率の高い距離に設定する。顔が検出されていれば、顔サイズより人物の距離を推定して算出した距離に設定してもよい。ステップ１０１８において、システム制御部１１２は、ピーク検出フラグ及び距離変化フラグをＦＡＬＳＥにして通常ＡＦ動作を終了し、ステップ２１３へと進む。
【００４５】
以下、図７のフローチャートにおけるステップ７１２のサーボ中ＡＦ動作のサブルーチンについて、図１１のフローチャートを参照しながら説明する。
【００４６】
まずステップ１１０１において、システム制御部１１２は、現在の時刻と次回のスキャンにかかる時間とから、次回のスキャンにおいてフォーカスレンズ１０４の位置がスキャン範囲の中心に位置するときの時刻を算出してPreTimeとする。そして処理はステップ１１０２へと進む。なお、上記次回のスキャンとは後述するステップ１１１０のスキャンのことである。ステップ１１０２において、システム制御部１１２は、後述する図１２のフローチャートに従い予測可能判定を行って、ステップ１１０３へと進む。
【００４７】
ステップ１１０３において、システム制御部１１２は、ステップ１１０２の予測可能判定における予測可能判定結果が○判定か否かを判定する。○判定であればステップ１１０４へと進み、○判定でなければステップ１１０５へと進む。ステップ１１０４において、システム制御部１１２は、後述する図１３のフローチャートに従い被写体位置予測を行って、ステップ１１０７へと進む。ステップ１１０５において、システム制御部１１２は、後述する過去の動体予測用のデータScanTime[0]〜ScanTime[i-1]及びHokanPeak[0]〜HokanPeak[i-1]をクリアする。そしてシステム制御部１１２は、さらに連続して予測可能判定となった回数を示すiを０にしてステップ１１０６へと進む。ステップ１１０６において、システム制御部１１２は、フォーカスレンズ１０４の現在位置をスキャン中心位置に設定して、ステップ１１０７へと進む。
【００４８】
ステップ１１０７において、システム制御部１１２は、合焦フラグがＴＲＵＥか否かを判定する。合焦フラグがＴＲＵＥであればステップ１１０８へと進み、合焦フラグがＦＡＬＳＥであればステップ１１０９へと進む。ステップ１１０８において、システム制御部１１２は、スキャン範囲を所定範囲に設定してステップ１１１０へと進む。ステップ１１０９において、システム制御部１１２は、ステップ１１０８で設定する所定範囲よりも広い範囲にスキャン範囲を設定してステップ１１１０へと進む。ステップ１１１０において、システム制御部１１２は、後述する図１５のフローチャートに従いスキャンを行って、ステップ１１１１へと進む。ステップ１１１１において、システム制御部１１２は、後述する図１６のフローチャートに従い合焦判定を行って、ステップ１１１２へと進む。
【００４９】
ステップ１１１２において、システム制御部１１２は、ステップ１１１１で判定した合焦判定結果が○判定か否かを判定する。○判定であればステップ１１１３へと進み、○判定でなければステップ１１２５へと進む。ステップ１１１３において、システム制御部１１２は、合焦フラグをＴＲＵＥにしてステップ１１１４へと進む。ステップ１１１４において、連続して合焦判定が○判定でなかった回数を示す×countを０にしてステップ１１１５へと進む。
【００５０】
ステップ１１１５において、システム制御部１１２は、ステップ１１１０におけるスキャン結果(ピーク位置)とスキャン中心位置の差が所定値より小さいか否かを判定する。所定値より小さければステップ１１１６へと進み、そうでなければステップ１１１９へと進む。ステップ１１１６において、システム制御部１１２は、連続してステップ１１１０におけるピーク位置とスキャン中心位置の差が所定値より小さくなった回数を示すStCountに１を加えてステップ１１１７へと進む。ステップ１１１７において、システム制御部１１２は、StCountが閾値以上であるか否かを判定する。閾値以上であればステップ１１１８へと進み、そうでなければステップ１１２０へと進む。ステップ１１１８において、システム制御部１１２は、被写体の距離変化がなくなったと判断して、距離変化フラグをＦＡＬＳＥにしてサーボ中ＡＦ動作を終了し、ステップ２０９又はステップ２１５へと進む。これにより、被写体距離が変化しない場合には、無駄にスキャンを繰り返すことなくフォーカスレンズを停止させることができる。
【００５１】
ステップ１１１９において、システム制御部１１２は、StCountを０にクリアしてステップ１１２０へと進む。ステップ１１２０において、システム制御部１１２は、ステップ１１１０における今回のスキャン中心位置に対する今回のピーク位置の方向と、前回のスキャン中心位置に対する前回のピーク位置の方向とが同方向であるか否かを判定する。同方向であればステップ１１２１へと進み、同方向でなければステップ１１２２へと進む。ステップ１１２１において、システム制御部１１２は、同方向移動フラグをＴＲＵＥにしてステップ１１２３へと進む。ステップ１１２２において、システム制御部１１２は、同方向移動フラグをＦＡＬＳＥにしてステップ１１２３へと進む。ステップ１１２３において、システム制御部１１２は、今回のスキャンにおいてフォーカスレンズ１０４の位置がスキャン範囲の中心に位置した時刻をScanTime[i]とする。そしてシステム制御部１１２は、今回のスキャンにおけるピーク位置をHokanPeak[i]としてステップ１１２４へと進む。ステップ１１２４において、システム制御部１１２は、ｉに１を加えてサーボＡＦ動作を終了し、ステップ２０９またはステップ２１５へと進む。ステップ１１２５において、システム制御部１１２は、合焦フラグをＦＡＬＳＥにしてステップ１１２６へと進む。ステップ１１２６において、システム制御部１１２は、×Countに１を加えてステップ１１２７へと進む。ステップ１１２７において、システム制御部１１２は、×Countが所定値よりも大きいか否かを判定する。所定値より大きければステップ１１２８へと進み、そうでなければサーボＡＦ動作を終了し、ステップ２０９又はステップ２１５へと進む。ステップ１１２８において、システム制御部１１２は、ピーク検出フラグ及び距離変化フラグをＦＡＬＳＥにしてサーボＡＦ動作を終了し、ステップ２０９又はステップ２１５へと進む。
【００５２】
以下、図１１のフローチャートにおけるステップ１１０２の予測可能判定のサブルーチンについて、図１２のフローチャートを参照しながら説明する。
【００５３】
まずステップ１２０１において、システム制御部１１２は、ｉ＝０か否かを判定する。０であればステップ１２０５へと進み、そうでなければステップ１２０２へと進む。ステップ１２０２において、システム制御部１１２は、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＝(t3/t2)×[(t3−t2)×(t2×Pos1−t1×Pos2)/t1/(t1−t2)＋Pos2]＋HokanPeak[i−2]
t1＝ScanTime[i−1]−ScanTime[i−2]
t2＝ScanTime[i]−ScanTime[i−2]
t3＝PreTime−ScanTime[i−2]
Pos1＝HokanPeak[i−1]−HokanPeak[i−2]
Pos2＝HokanPeak[i]−HokanPeak[i−2]
・・・動体予測式（２）
【００５７】
ステップ１３０７において、システム制御部１１２は、ステップ１３０６で算出した被写体の予測位置PrePositionをスキャン中心位置に設定して被写体位置予測フローを終了し、ステップ１１０７へと進む。
【００５８】
以下、図１０のフローチャートにおけるステップ１０１２及び図１１のフローチャートにおけるステップ１１１０のスキャンのサブルーチンを、図１５のフローチャートを参照しながら説明する。
【００５９】
まずステップ１５０１において、システム制御部１１２は、フォーカスレンズ１０４をスキャン開始位置に移動する。スキャン開始位置は設定されたスキャン範囲の一端に設定される。ステップ１５０２において、システム制御部１１２は、撮影画面内に設定される測距領域の焦点評価値とフォーカスレンズ１０４の位置をシステム制御部１１２に内蔵される図示しない演算メモリに記憶する。ステップ１５０３において、システム制御部１１２は、レンズ位置がスキャン終了位置にあるか否かを判定する。終了位置であればステップ１５０５へ、そうでなければステップ１５０４へ進む。スキャン終了位置は、設定されたスキャン範囲の他端に設定される。ステップ１５０４において、システム制御部１１２は、フォーカスレンズ１０４を駆動して所定の方向へ所定量動かしてステップ１５０２へと進む。ステップ１５０５において、システム制御部１１２は、ステップ１５０２で記憶した焦点評価値とそのレンズ位置から、焦点評価値のピーク位置を計算する。
【００６０】
以下、図１０のフローチャートにおけるステップ１０１３及び図１１のフローチャートにおけるステップ１１１１の合焦判定のサブルーチンを、図１６〜図１７を参照しながら説明する。
【００６１】
焦点評価値は遠近競合等の特殊な場合を除けば、横軸にフォーカスレンズ位置、縦軸に焦点評価値をとるとその形は図１７に示すような山状になる。そこで焦点評価値が山状になっているか否かを、焦点評価値の最大値と最小値の差、一定値（ＳｌｏｐｅＴｈｒ）以上の傾きで傾斜している部分の長さ、傾斜している部分の勾配から判断する。これにより、合焦判定を行うことができる。合焦判定における判定結果は、以下に示すように○×で出力される。
○：焦点評価値のピーク位置から、被写体の焦点調節が可能である。
×：被写体のコントラストが不十分、もしくはスキャンした距離範囲外の距離に被写体が位置する。
ここで図１７に示すように、山の頂上（Ａ点）から傾斜が続いていると認められる点をＤ点、Ｅ点とし、Ｄ点とＥ点の幅を山の幅Ｌ、Ａ点とＤ点の焦点評価値の差ＳＬ１とＡ点とＥ点の焦点評価値の差ＳＬ２の和ＳＬ１＋ＳＬ２をＳＬとする。
【００６２】
図１６は、図１０のフローチャートにおけるステップ１０１３及び図１１のフローチャートにおけるステップ１１１１の合焦判定のサブルーチンのフローチャートである。
【００６３】
まずステップ１６０１において、システム制御部１１２は、焦点評価値の最大値と最小値、及び最大値を与えるスキャＳンポイントｉｏを求めてステップ１６０２へと進む。次にステップ１６０２において、システム制御部１１２は、焦点評価値の山の幅を表す変数Ｌ、山の勾配を表す変数ＳＬをともに零に初期化してステップ１６０３へと進む。ステップ１６０３において、システム制御部１１２は、最大値を与えるスキャンポイントｉｏがスキャンを行った所定範囲における遠側端の位置か否かを判定する。遠側端位置でないならばステップ１６０４へ進み、システム制御部１１２は無限遠方向への単調減少を調べる。遠側端位置であったならば、この処理をスキップしステップ１６０５に進む。ステップ１６０５において、システム制御部１１２は、最大値を与えるスキャンポイントｉｏがスキャンを行った所定範囲における至近端の位置か否かを判定する。至近端位置でないならばステップ１６０６へ進み、システム制御部１１２は至近端方向への単調減少を調べる。至近端位置であったならば、システム制御部１１２はこの処理をスキップしステップ１６０７に進む。
【００６４】
無限遠方向および至近端方向への単調減少をチェックする処理が終了したならば、システム制御部１１２は、得られた焦点評価値が山状になっているか否か、諸係数をそれぞれのしきい値と比較し、○×の判定を行う。ステップ１６０７において、システム制御部１１２は、焦点評価値の最大値を与えるスキャンポイントｉｏがスキャンを行った所定範囲における至近端であり、かつ至近端スキャンポイントｎにおける焦点評価値の値ｄ［ｎ］と、ｎより１スキャンポイント分無限遠よりのスキャンポイントｎ−１における焦点評価値の値ｄ［ｎ−１］との差が所定値ＳｌｏｐｅＴｈｒ以上であればステップ１６１１へ進み、そうでなければステップ１６０８へ進む。ステップ１６０８において、システム制御部１１２は、焦点評価値の最大値を与えるスキャンポイントｉｏがスキャンを行った所定範囲における遠側端であり、かつ遠側端スキャンポイント０における焦点評価値の値ｄ［０］と、０より１スキャンポイント分至近端よりのスキャンポイント１における焦点評価値の値ｄ［１］との差が所定値ＳｌｏｐｅＴｈｒ以上であればステップ１６１１へ進み、そうでなければステップ１６０９へ進む。
【００６５】
ステップ１６０９において、システム制御部１１２は、一定値以上の傾きで傾斜している部分の長さＬが所定値Ｌｏ以上であり、かつ傾斜している部分の傾斜の平均値ＳＬ／Ｌが所定値ＳＬｏ／Ｌｏ以上であり、かつ焦点評価値の最大値と最小値の差が所定値以上であるか否かを判定する。この判定において真と判定されれば、ステップ１３１０へ進み、偽と判定されればステップ１６１１へ進む。ステップ１６１０において、得られた焦点評価値が山状となっていて、被写体の焦点調節が可能であるため判定結果を○としている。ステップ１６１１において、得られた焦点評価値が山状となっておらず、被写体の焦点調節が不可能であるため判定結果を×としている。以上のようにして、図１０のフローチャートにおけるステップ１０１３及び図１１のフローチャートにおけるステップ１１１１の合焦判定を行う。
【００６６】
以下、本発明の第２の実施形態の動作について、図１８〜図１９を参照しながら詳述する。図１８は、本発明の実施形態に係る電子カメラの動作を表すフローチャートである。なお、本実施形態に係る電子カメラの構成は図１に示す構成と同様である。
【００６７】
まずメインスイッチ１１７がＯＮになると、ステップ２１０１へと進む。ステップ２１０１において、システム制御部１１２は、図３のフローチャートに従い主被写体情報の変化判断を行い、ステップ２１０２へと進む。ステップ２１０２において、システム制御部１１２は、ステップ２１０１のサブルーチンで判断した結果、主被写体が動いていると判断されたか否かを判定する。主被写体が動いていると判断されればステップ２１０３へと進み、そうでなければステップ２１０４へと進む。ステップ２１０３において、システム制御部１１２は、主被写体が動いていることを示す動きアイコンを画面内の所定位置に表示して、ステップ２１０５へと進む。ステップ２１０４において、システム制御部１１２は、画面内の所定位置に主被写体が動いていることを示す動きアイコンが表示されていれば、非表示にしてステップ２１０５へと進む。ステップ２１０５において、システム制御部１１２は、図６のフローチャートに従いコンティニュアスＡＦを行ってステップ２１０６へと進む。
【００６８】
ステップ２１０６において、システム制御部１１２はスイッチＳＷ１の状態を判定する。ＯＮであればステップ２１０７へと進み、ＯＮでなければステップ２１０２へと進む。ステップ２１０７において、システム制御部１１２は、ＡＥ処理部１０３で画像処理部１０８の出力からＡＥ処理を行ってステップ２１０８へと進む。ステップ２１０８において、システム制御部１１２は合焦フラグの状態を判定する。合焦フラグがＴＲＵＥであればステップ２１２０へと進み、合焦フラグがＦＡＬＳＥであればステップ２１１９へと進む。ステップ２１１９において、システム制御部１１２は、図１０のフローチャートに従い通常ＡＦ動作を行ってステップ２１２０へと進む。ステップ２１２０において、システム制御部１１２は、画面内の所定位置に主被写体が動いていることを示す動きアイコンが表示されているか否かを判定する。表示されていればステップ２１２４へと進み、そうでなければステップ２１２１へと進む。ステップ２１２４において、システム制御部１１２は、図６のフローチャートに従いコンティニュアスＡＦを行ってステップ２１２１へと進む。ステップ２１２１において、システム制御部１１２はスイッチＳＷ１の状態を判定する。ＯＮであればステップ２１２２へと進み、ＯＮでなければステップ２１０２へと進む。ステップ２１２２において、システム制御部１１２はスイッチＳＷ２の状態を判定する。ＯＮであればステップ２１２３へと進み、ＯＮでなければステップ２１２０へと進む。ステップ２１２３において、システム制御部１１２は、撮影動作を行ってステップ２１０２へと進む。
【００６９】
以下、本発明の第２の実施形態におけるコンティニュアスＡＦ動作中の山登りＡＦについて、図１９のフローチャートを参照しながら説明する。
【００７０】
まず、ステップ２２０１において、システム制御部１１２は、フォーカスレンズ１０４の現在位置を取得してステップ２２０２へと進む。ステップ２２０２において、システム制御部１１２は、焦点評価値・輝度値の取得及びフォーカスレンズ１０４の現在位置の取得をカウントするための取得カウンタに１を加えてステップ２２０３へと進む。この取得カウンタは、初期化動作(図示略)において予め０に設定されているものとする。ステップ２２０３において、システム制御部１１２は、取得カウンタの値が１か否かを判定する。取得カウンタの値が１ならば、ステップ２２０６へと進み、取得カウンタの値が１でなければステップ２２０４へと進む。ステップ２２０４において、システム制御部１１２は、「今回の焦点評価値」が「前回の評価値」よりも大きいか否かを判定する。「今回の焦点評価値」が「前回の焦点評価値」よりも大きければステップ２２０５へと進み、そうでなければステップ２２１５へと進む。ステップ２２０５において、システム制御部１１２は、「今回の焦点評価値」が「前回の評価値」よりも大きいことを示す増加カウンタに１を加えてステップ２２０６へと進む。この増加カウンタは、初期化動作(図示略)において予め０に設定されているものとする。ステップ２２０６において、システム制御部１１２は、今回の焦点評価値を焦点評価値の最大値としてシステム制御部１１２に内蔵される図示しない演算メモリに記憶して、ステップ２２０７へと進む。ステップ２２０７において、システム制御部１１２は、フォーカスレンズ１０４の現在の位置を焦点評価値のピーク位置としてシステム制御部１１２に内蔵される図示しない演算メモリに記憶して、ステップ２２０８へと進む。ステップ２２０８において、システム制御部１１２は、今回の焦点評価値を前回の焦点評価値としてシステム制御部１１２に内蔵される図示しない演算メモリに記憶してステップ２２０９へと進む。ステップ２２０９において、システム制御部１１２は、フォーカスレンズ１０４の現在位置が測距範囲の端にあるか否かを判定する。測距範囲の端にあればステップ２２１０へと進み、測距範囲の端になければステップ２２１１へと進む。
【００７１】
ステップ２２１０において、システム制御部１１２は、フォーカスレンズ１０４の移動方向を反転してステップ２２１１へと進む。ステップ２２１１において、システム制御部１１２は、画面内の所定位置に主被写体が動いていることを示す動きアイコンが表示されているか否かを判定する。表示されていればステップ２２１２へ進み、そうでなければステップ２２１３へ進む。ステップ２２１２において、システム制御部１１２は、フォーカスレンズを駆動する所定量を所定量（１）に設定してステップ２２１４へ進む。ここで所定量（１）は、距離方向に大きく動いている被写体にもピント追従できるような値に設定する。ステップ２２１３において、システム制御部１１２は、フォーカスを駆動する所定量を所定量（１）とは異なる所定量（２）に設定してステップ２２１４へ進む。ここで所定量（２）は、ピント変動によりライブ画像の見栄えが悪くならないように所定量（１）よりも小さい量で設定する。ステップ２２１４において、システム制御部１１２は、フォーカスレンズ１０４を所定量移動してこのサブルーチンを終了してステップ２１０６、又はステップ２１２１へ進む。これにより、主被写体が動いているか否かで、単位時間あたりのフォーカスレンズ１０４の駆動量を変えることができる。
【００７２】
ステップ２２１５において、システム制御部１１２は、「焦点評価値の最大値−今回の焦点評価値」が所定量より大きいか否かを判定する。所定量より大きければステップ２２１６へ進み、そうでなければステップ２２０８へ進む。ここで、「焦点評価値の最大値−今回の焦点評価値」が所定量より大きいこと、即ち最大値から所定量減少していれば、その最大値をピントのピーク位置での値とみなす。ステップ２２１６において、システム制御部１１２は、増加カウンタが０より大きいか否かを判定する。増加カウンタが０より大きければステップ２２１７へ進み、そうでなければステップ２２０８へ進む。ステップ２２１７において、システム制御部１１２は、フォーカスレンズ１０４をステップ２２０７で記憶した焦点評価値が最大値となったピーク位置へ移動させて、ステップ２２１８へ進む。ステップ２２１８において、システム制御部１１２は、ピーク検出フラグをＴＲＵＥにしてステップ２２１９へと進む。ステップ８１６において、システム制御部１１２は、取得カウンタを０としてこのサブルーチンを終了してステップ２１０６又はステップ２１２１へ進む。
【００７３】
上述した実施形態においては、被写体像の動きがない場合にはコンティニュアスＡＦを実行し、被写体像の動きがある場合にはサーボＡＦを実行するようにしている。従って、できるだけライブ画像の見栄えを損ねることなく動いている被写体にピント追従し続けることが可能となる。以上、本発明を適用した好適な実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、ステップ２０１やステップ２１０１で検出した主被写体の変化（動き）を示す情報をモニタ画面上で表示制御すること等が考えられる。
【００７４】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００７５】
１０１：撮影レンズ、１０２：絞り及びシャッタ、１０３：ＡＥ処理部、１０４：フォーカスレンズ、１０５：ＡＦ処理部、１０６：撮像素子、１０７：Ａ／Ｄ変換部、１０８：画像処理部、１０９：フォーマット変換部、１１０：ＤＲＡＭ、１１１：画像記録部、１１２：システム制御部、１１３：ＶＲＡＭ、１１４：操作表示部、１１５：操作部、１１６：撮影モードＳＷ、１１７：メインＳＷ、１１８：ＳＷ１、１１９：ＳＷ２、１２０：顔検出モジュール
【図１】
0005483953.tif 000002
【図２】
0005483953.tif 000003
【図３】
0005483953.tif 000004
【図４】
0005483953.tif 000005
【図５】
0005483953.tif 000006
【図６】
0005483953.tif 000007
【図７】
0005483953.tif 000008
【図８】
0005483953.tif 000009
【図９】
0005483953.tif 000010
【図１０】
0005483953.tif 000011
【図１１】
0005483953.tif 000012
【図１２】
0005483953.tif 000013
【図１３】
0005483953.tif 000014
【図１４】
0005483953.tif 000015
【図１５】
0005483953.tif 000016
【図１６】
0005483953.tif 000017
【図１７】
0005483953.tif 000018
【図１８】
0005483953.tif 000019
【図１９】
0005483953.tif 000020