(57)【特許請求の範囲】
【請求項１】
フォーカスレンズを含む撮像光学系を通過した被写体からの光を光電変換して電気信号に変換する撮像素子と、
前記撮像素子から出力される電気信号のうち設定された焦点検出領域に対応する電気信号からＡＦ評価値を生成する生成手段と、
前記撮像素子から出力される電気信号から所定の被写体を検出する検出手段と、
前記検出手段が検出した被写体の光軸方向の距離変化の有無を判別する判別手段と、
前記検出手段による検出結果に基づいて被写体の距離変化の変化量の増減を監視することにより、被写体の距離変化が終了しているか否かを判定する終了判定手段であって、前記検出手段により検出される被写体の大きさの変化率の急峻度合いが所定値以下である場合に被写体の距離変化が終了していると判断する終了判定手段と
被写体の距離変化が終了しているか否かを判定する終了判定手段と、
フォーカスレンズを駆動制御して焦点調節を行う制御手段であって、前記判別手段による判別の結果に応じて前記検出手段が検出した被写体の光軸方向の距離変化に合わせてフォーカスレンズを駆動制御する際に、前記判別手段により被写体の距離変化があると判断されており且つ前記終了判定手段により被写体の距離変化が終了していないと判断されたときは、前記検出手段が検出した被写体の光軸方向の距離変化に対応させた追従駆動動作をフォーカスレンズの駆動制御として行い、前記判別手段により被写体の距離変化があると判断された場合でも前記終了判定手段により被写体の距離変化が終了していると判断されたときは、前記検出手段が検出した被写体の光軸方向の距離変化に合わせた前記追従駆動動作を禁止する制御手段と、
を有することを特徴とする自動焦点調節装置。
【請求項２】
前記判別手段は、
被写体の大きさのうち、時間間隔を置いて検出された被写体の大きさの差分を算出して、被写体の距離変化の有無を判別することを特徴とする請求項１に記載の自動焦点調節装置。
【請求項３】
前記終了判定手段は、
前記検出手段により検出された被写体の大きさを記憶する被写体情報記憶手段と、
前記検出手段により検出された被写体の最新の大きさと時間間隔を置いて前に前記被写体情報記憶手段に記憶された被写体の大きさとの差分値を算出する差分算出手段と、
前記差分算出手段による差分値の算出結果を記憶する差分記憶手段と、を有し、
前記大きさの変化率の急峻度合いは、
前記差分記憶手段に記憶している最新の差分値と時間間隔を置いて前に記憶された差分値との変化量であることを特徴とする請求項１または２に記載の自動焦点調節装置。
【請求項４】
被写体の大きさは、前記検出手段により得られる人物の顔または体の部位の大きさであることを特徴とする請求項１から３の何れか１項に記載の自動焦点調節装置。
【請求項５】
被写体の大きさは、前記検出手段により得られる人物の顔に配置されている器官のうちの少なくとも２つの器官間の距離であることを特徴とする請求項１から３の何れか１項に記載の自動焦点調節装置。
【請求項６】
フォーカスレンズを含む撮像光学系を通過した被写体からの光を光電変換して電気信号に変換するステップと、
前記変換ステップにおいて出力される電気信号のうち設定された焦点検出領域に対応する電気信号からＡＦ評価値を生成するステップと、
前記変換ステップにおいて出力される電気信号から所定の被写体を検出する検出ステップと、
前記検出ステップで検出した被写体の光軸方向の距離変化の有無を判別する判別ステップと、
前記検出ステップでの検出結果に応じて被写体の距離変化の変化量の増減を監視することにより被写体の距離変化が終了しているか否かを判定する終了判定ステップであって、前記検出ステップで検出される被写体の大きさの変化率の急峻度合いが所定値以下である場合に被写体の距離変化が終了していると判断する終了判定ステップと、
前記フォーカスレンズを駆動制御して焦点調節を行う制御ステップと、
を含む自動焦点調節方法であって、
前記制御ステップにおいて、前記判別ステップにおける判別の結果に応じて前記検出ステップで検出した被写体の光軸方向の距離変化に合わせてフォーカスレンズを駆動制御する際に、前記判別ステップで被写体の距離変化があると判断されており且つ前記終了判定ステップで被写体の距離変化が終了していないと判断されたときは、前記検出ステップで検出した被写体の光軸方向の距離変化に対応させた追従駆動動作をフォーカスレンズの駆動制御として行い、前記判別ステップで被写体の距離変化があると判断された場合でも前記終了判定ステップで被写体の距離変化が終了していると判断されたときは、前記検出ステップで検出した被写体の光軸方向の距離変化に合わせた前記追従駆動動作を禁止することを特徴とする自動焦点調節方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像対象に人物などの予め定められた被写体を含む場合に、人物などの特徴部（顔部など）を抽出し、その結果を考慮して焦点調節を行う撮像装置における自動焦点調節装置及び方法に関する。
【背景技術】
【０００２】
ビデオカメラ等の自動焦点調節であるオートフォーカス（ＡＦ）制御では、次の様なＴＶ−ＡＦ方式が主流である。すなわち、被写体からの光を撮像素子を用いて光電変換することにより生成された映像信号の鮮鋭度（コントラスト状態）を示すＡＦ評価値信号を生成し、該ＡＦ評価値信号が最大となるフォーカスレンズの位置を探索する。しかしながら、顔検出機能を有する撮像装置において、人物を撮影する場合、一般的に人の顔はコントラストが低いため、十分なＡＦ評価値を得にくい。よって、被写体との距離の変化が発生した場合などは、ＡＦ評価値の変化では合焦方向の特定が困難であるため、被写体に対してレンズ位置が追従できずに被写体像がボケてしまうことがあった。
【０００３】
このような問題を解決するために、検出された顔のサイズを比較し、顔サイズの増減が発生した場合は、被写体が至近または無限側の方向へ移動したと判定し、被写体を追従するようにフォーカスレンズを駆動する方法が提案されている（特許文献１、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2009-31760号公報
【特許文献２】特開2008-276214号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上述した顔検出を用いたオートフォーカスでは、被写界深度などの撮影パラメータや被写体の状態を考慮していないため、次の様なことが起こり得る。すなわち、検出された顔のサイズのバラツキや撮影時のパラメータの設定によっては、被写体の距離変化の方向を誤判定してしまったり、被写体にボケが発生していないのに不必要に移動判定を行ってしまい、ＡＦの精度が低下することがあり得る。さらに、検出された顔のサイズのバラツキや撮影時のパラメータの設定による影響を軽減するために比較する２つの顔サイズの時間間隔を長くすると、実際に被写体が停止してから撮像装置が停止の判断をするまでにタイムラグが発生し、ＡＦの精度が低下することもあり得る。
【０００６】
本発明は、上記点を鑑みてなされたものである。その目的は、動画撮影等でＴＶ−ＡＦ方式を用いて被写体の人物等にＡＦを行うと共に、被写体の距離変化が発生した場合に、比較する時間間隔が長い場合でも実際に被写体が停止してから装置が停止の判断をするまでのタイムラグが軽減でき、ＡＦの安定性の向上が可能になる焦点調節装置及び方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明の自動焦点調節装置は、フォーカスレンズを含む撮像光学系を通過した被写体からの光を光電変換して電気信号に変換する撮像素子と、撮像素子から出力される電気信号のうち設定された焦点検出領域に対応する電気信号からＡＦ評価値を生成する生成手段と、フォーカスレンズを駆動制御して焦点調節を行う制御手段と、撮像素子から出力される電気信号から所定の被写体を検出する被写体検出手段と、被写体検出手段による検出結果に基づいて被写体の距離変化の有無を判別する判別手段と、被写体検出手段による検出結果に基づいて被写体の距離変化の変化量の増減を監視することにより被写体の距離変化が終了しているか否かを判定する終了判定手段であって、前記検出手段により検出される被写体の大きさの変化率の急峻度合いが所定値以下である場合に被写体の距離変化が終了していると判断する終了判定手段を有する。制御手段は、判別手段による判別の結果に応じて被写体検出手段が検出した被写体の光軸方向の距離変化に合わせてフォーカスレンズを駆動制御する際に、前記判別手段により被写体の距離変化があると判断されており且つ前記終了判定手段により被写体の距離変化が終了していないと判断されたときは、被写体検出手段が検出した被写体の光軸方向の距離変化に対応させた追従駆動動作をフォーカスレンズの駆動制御として行い、前記判別手段により被写体の距離変化があると判断された場合でも前記終了判定手段により被写体の距離変化が終了していると判断されたときは、被写体検出手段が検出した被写体の光軸方向の距離変化に合わせた前記追従駆動動作を禁止する。
【０００８】
また、本発明の自動焦点調節方法は、フォーカスレンズを含む撮像光学系を通過した被写体からの光を光電変換して電気信号に変換するステップと、変換ステップにおいて出力される電気信号のうち設定された焦点検出領域に対応する電気信号からＡＦ評価値を生成するステップと、変換ステップにおいて出力される電気信号から所定の被写体を検出する検出ステップと、検出ステップで検出した被写体の光軸方向の距離変化の有無を判別する判別ステップと、検出ステップでの検出結果に応じて被写体の距離変化の変化量の増減を監視することにより被写体の距離変化が終了しているか否かを判定する終了判定ステップであって、前記検出ステップにより検出される被写体の大きさの変化率の急峻度合いが所定値以下である場合に被写体の距離変化が終了していると判断する終了判定ステップと、フォーカスレンズを駆動制御して焦点調節を行う制御ステップと、を含む。そして、前記制御ステップにおいて、前記判別ステップにおける判別の結果に応じて前記検出ステップで検出した被写体の光軸方向の距離変化に合わせてフォーカスレンズを駆動制御する際に、前記判別ステップで被写体の距離変化があると判断されており且つ前記終了判定ステップで被写体の距離変化が終了していないと判断されたときは、前記検出ステップで検出した被写体の光軸方向の距離変化に対応させた追従駆動動作をフォーカスレンズの駆動制御として行い、前記判別ステップで被写体の距離変化があると判断された場合でも前記終了判定ステップで被写体の距離変化が終了していると判断されたときは、前記検出ステップで検出した被写体の光軸方向の距離変化に合わせた前記追従駆動動作を禁止する。
【発明の効果】
【０００９】
以上説明したように、本発明によれば、被写体の距離変化の減速状態を検出して被写体が停止するか否かを判断することで、比較する時間間隔が長い場合でも実際に被写体が停止してから装置が停止の判断をするまでのタイムラグを軽減できる。よって、オートフォーカスの安定性の向上が可能になる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施例であるビデオカメラの構成を示すブロック図。
【図２】本発明の一実施例のカメラ／ＡＦマイコンの処理を示すフローチャート。
【図３】本発明の一実施例の微小駆動動作の処理を示すフローチャート。
【図４】本発明の一実施例の微小駆動動作を示す図。
【図５】本発明の一実施例の山登り動作の処理を示すフローチャート。
【図６】本発明の一実施例の山登り動作を示す図。
【図７】本発明の一実施例の移動判定の処理を示すフローチャート。
【図８】本発明の一実施例の安定判定の処理を示すフローチャート。
【図９】本発明の一実施例の移動判定閾値設定の処理を示すフローチャート。
【図１０】本発明の一実施例のズームレンズ位置に応じた閾値を示す図。
【図１１】本発明の一実施例の基準顔サイズに応じた補正係数Kを示す図。
【図１２】本発明の一実施例の撮影モードに応じた補正係数K’’’を示す図。
【図１３】本発明の一実施例の横顔を表す信頼度の算出方法を示す図。
【図１４】本発明の実施例の揺れ検出の処理を示すフローチャート。
【図１５】本発明の実施例の揺れ検出処理において検出する揺れの例を示す図。
【図１６】本発明の実施例の揺れ検出を示す図。
【図１７】本発明の実施例の終了判定処理を示すフローチャート。
【図１８】本発明の実施例の被写体判定領域の判定処理を示すフローチャート。
【図１９】本発明の実施例の被写体判定領域の画面に対する割合を示したグラフ。
【図２０】本発明の実施例の被写体判定領域の画面に対する割合を示した図。
【発明を実施するための形態】
【００１１】
本発明の特徴は、自動焦点調節に際して、所定の被写体（人物の顔など）の大きさの変化率などを監視して被写体の距離変化の増減すなわち被写体の減速状態を判断することである。そして、被写体の減速を検知したときは、フォーカスレンズを駆動制御して被写体の距離変化に追従させる追従駆動動作を禁止して焦点調節を行う。この考え方に基づき、本発明の焦点調節装置及び方法は、それぞれ、課題を解決するための手段のところで述べた様な基本的な構成を有する。
【００１２】
以下、本発明の実施例を説明する。図１は、本発明の実施例である自動焦点調節装置を含むビデオカメラ（撮像装置）の構成を示す。以下の実施例では、ビデオカメラについて説明するが、本発明はデジタルスチルカメラ等の他の撮像装置にも適用できる。
【００１３】
図１において、１０１は第１固定レンズ、１０２は光軸方向に移動して変倍を行う変倍レンズ、１０３は絞りである。また、１０４は第２固定レンズ、１０５は変倍に伴う焦点面の移動を補正する機能とフォーカシングの機能とを兼ね備えたフォーカスコンペンセータレンズ（本明細書では、フォーカスレンズともいう）である。第１固定レンズ１０１、変倍レンズ１０２、絞り１０３、第２固定レンズ１０４、及びフォーカスレンズ１０５により被写体からの光を結像するための撮像光学系が構成される。１０６は、ＣＣＤセンサやＣＭＯＳセンサにより構成される光電変換素子としての撮像素子である。撮像素子１０６は、結像された光を光電変換して電気信号に変換する。１０７は、撮像素子１０６の出力をサンプリングし、ゲイン調整するＣＤＳ／ＡＧＣ回路である。１０８はカメラ信号処理回路であり、ＣＤＳ／ＡＧＣ回路１０７からの出力信号に対して各種の画像処理を施し、映像信号を生成する。１０９はＬＣＤ等により構成されるモニタであり、カメラ信号処理回路１０８からの映像信号を表示する。１１５は記録部であり、カメラ信号処理回路１０８からの映像信号を磁気テープ、光ディスク、半導体メモリ等の記録媒体に記録する。
【００１４】
１１０は、変倍レンズ１０２を移動させるためのズーム駆動源である。１１１は、フォーカスレンズ１０５を移動させるためのフォーカシング駆動源である。ズーム駆動源１１０及びフォーカシング駆動源１１１は、夫々、ステッピングモータ、ＤＣモータ、振動型モータ、及びボイスコイルモータ等のアクチュエータにより構成される。１１２は、ＣＤＳ／ＡＧＣ回路１０７からの全画素の出力信号のうち焦点検出に用いられる領域（焦点検出領域）の信号のみを通すＡＦゲートである。ＡＦ信号処理回路１１３は、ＡＦゲート１１２を通過した信号から高周波成分を抽出してＡＦ評価値を生成する。つまり、ＡＦ信号処理回路１１３は、電気信号の映像信号に対して設定された焦点検出領域からＡＦ評価値を生成する生成手段を構成する。ＡＦ評価値は、制御手段であるカメラ／ＡＦマイコン１１４に出力される。ＡＦ評価値は、撮像素子１０６からの出力信号に基づいて生成される映像の鮮鋭度（コントラスト状態）を表すものであるが、鮮鋭度は撮像光学系の焦点状態（合焦の程度）によって変化するので、結果的に撮像光学系の焦点状態を表す信号となる。制御手段としてのカメラ／ＡＦマイコン１１４は、ビデオカメラ全体の動作の制御を司るとともに、ＡＦ評価値に基づいて、フォーカシング駆動源１１１を制御してフォーカスレンズ１０５を移動させ焦点調節を行うＡＦ制御をも行う。
【００１５】
本実施例の顔検出部１１６は、画像信号に対して公知の顔検出処理を施し、撮影画面内の人物の顔領域を検出する。すなわち、顔検出部１１６は、電気信号から予め定められた被写体（ここでは顔）を検出する被写体検出手段を構成する。その検出結果はカメラ／ＡＦマイコン１１４に送信される。カメラ／ＡＦマイコン１１４は、上記検出結果に基づき、撮影画面内の顔領域を含む位置に焦点検出領域を設定するようにＡＦゲート１１２へ情報を送信する。顔検出処理としては、画像データで表される各画素の階調色から肌色領域を抽出し、予め用意する顔の輪郭プレートとのマッチング度で顔を検出する方法や、周知のパターン認識技術を用いて、目、鼻、口等の顔の特徴点を抽出することで顔検出を行う方法等がある。
【００１６】
さらに、顔検出部１１６では、顔の信頼度と、横顔の信頼度の算出を行っている。顔の信頼度の算出は、例えば、顔の輪郭プレートとのマッチング度に基づいて算出され、マッチング度が高い順に５段階で表現される。また、横顔らしさを表す信頼度の算出は、図１３に示すように、検出されている顔の両目の中心位置（図中の点線）を基準に顔検出枠を左右に分割するように領域を抽出する。そして、左右領域に含まれる肌色領域を抽出し、肌色領域の画素数をカウントすることで面積を算出する。横顔らしさを表す信頼度は、左右の画面に含まれる肌色領域の比を用いて算出される。左右の肌色の領域が同じ比率であった場合は、横顔の可能性が低いとして、横顔らしさを表す信頼度を低く設定し、比率が大きく異なる場合は、横顔の可能性が高いとして、信頼度を高く設定する。本実施例では、この比率に応じで信頼度を５段階に設定する。
【００１７】
１１７は絞り駆動源であり、絞り１０３を駆動させるためのアクチュエータ及びそのドライバを含む。ＣＤＳ／ＡＧＣ回路１０７によって読み出された信号からは、画面内の測光枠の輝度値を取得するため、輝度情報検波・演算回路１１８により測光値が取得され、測光した測光値が演算により正規化される。そして、カメラ／ＡＦマイコン１１４で、測光値と適正な露出が得られるように設定された目標値との差分が算出される。その後、算出した差分から絞りの補正駆動量を算出し、カメラ／ＡＦマイコン１１４により絞り駆動源１１７の駆動が制御される。
【００１８】
次に、カメラ／ＡＦマイコン１１４で行われるＡＦ制御について、図２を用いて説明する。このＡＦ制御は、カメラ／ＡＦマイコン１１４内に格納されたコンピュータプログラムに従って実行される。Step２０１は処理の開始を示している。Step２０２で微小駆動動作を行い、合焦か、合焦でないならどちらの方向に合焦点があるかを判別する。細かい動作の説明は後述する。Step２０３においては、Step２０２で合焦と判定された場合はStep２０９へ行き合焦処理を行い、Step２０２で合焦と判定されなかった場合はStep２０４へ行く。Step２０４においては、Step２０２で方向判別ができている場合はStep２０５へ行き山登り駆動動作を行い、Step２０２で方向判別ができていない場合はStep２０２へ戻り微小駆動動作を継続する。Step２０５では、ＡＦ評価値が大きくなる方向へ高速でレンズを駆動させる山登り駆動をする。細かい動作の説明は後述する。
【００１９】
Step２０６においては、Step２０５でＡＦ評価値のピークを越えたと判定された場合はStep２０７へ行き、Step２０６でＡＦ評価値のピークを越えたと判定されない場合はStep２０５へ戻り山登り駆動を継続する。Step２０７では、山登り駆動中のＡＦ評価値がピークとなるレンズ位置にレンズを戻す。Step２０８においては、Step２０７でピークのレンズ位置に戻った場合はStep２０２へ戻り再び微小駆動動作を行い、Step２０７でピークのレンズ位置に戻っていない場合はStep２０７へ戻りピークのレンズ位置に戻す動作を継続する。
【００２０】
次に、Step２０９からの合焦動作について説明する。Step２０９ではＡＦ評価値を保持する。Step２１０では、最新のＡＦ評価値を取得する。Step２１１では、Step２０９で保持したＡＦ評価値とStep２１０で新たに取得したＡＦ評価値とを比較し、所定レベル以上差があれば再起動と判定し、Step２０２へ行き微小駆動動作を再開する。Step２１１で再起動と判定されていなければStep２１２へ行く。Step２１２では、レンズを停止しStep２１０へ戻り再起動判定を継続する。
【００２１】
次に、微小駆動動作について図３で説明する。Step３０１は処理の開始を示している。Step３０２では、最新の顔検出位置／大きさを取得すると共に、それらの情報に基づいて焦点検出領域であるＡＦ枠を設定し、ＡＦ評価値を取得する。Step３０３では、取得された顔サイズから被写体の移動を判定する処理を行う。この処理については図７を用いて説明する。Step３０４では、被写体の至近または無限側の方向への移動があったかを判定し、被写体の移動があった場合はStep３０５へ進み、そうでなければStep３０６へ進む。本実施例では、変化量を監視する被写体の大きさは、被写体検出手段である顔検出部１１６により得られる人物の顔（体の他の部位などであってもよい）の大きさである。よって、後述する様に、顔サイズの変化量が所定量以内である場合には被写体の距離変化がないと判断され、前記変化量が所定量より大きい場合には被写体の距離変化があると判断される。そして、カメラ／ＡＦマイコン１１４は、被写体の距離変化がないと判断されたときは、追従制御手段による追従制御を禁止して焦点調節を行い、被写体の距離変化があると判断されたときは、追従制御手段による追従制御を許可して焦点調節を行う。こうした切り替えが上記Step３０４で行われる。
【００２２】
Step３０５では、移動判定の結果が近づきか遠ざかりかを判定する。近づきの場合は、Step３１４へ進み至近方向への山登りを決定し、Step３１３へ進み処理を終了する。そうでなければStep３１５へ進み無限方向への山登りを決定し、Step３１３へ進み処理を終了する。被写体の移動方向に応じて山登りの方向を切り替える駆動が、被写体の追従駆動ないし追従制御であり、追従駆動を行うことにより、ＡＦの応答性と精度が向上する。この機能を実行するために、制御手段のカメラ／ＡＦマイコン１１４は、被写体検出手段である顔検出部１１６による検出結果に基づき被写体の距離変化の有無を判別する判別手段と、判別結果に応じてフォーカスレンズを被写体の距離変化に追従させる追従制御手段を含む。
【００２３】
続いて、Step３０６においては、Step３０２で取り込んだＡＦ評価値が前回のＡＦ評価値より大きければStep３０７へ進み、Step３０２で取り込んだＡＦ評価値が前回のＡＦ評価値より小さければStep３０８へ進む。Step３０７では、前回の順方向に所定量フォーカスレンズを駆動する。一方、Step３０８では前回の逆方向に所定量フォーカスレンズを駆動する。上記レンズ動作の時間経過を示したのが図４である。ここで、Ａの間にＣＣＤ（撮像素子）に蓄積された電荷に対するＡＦ評価値ＡがＴＡで取り込まれ、Ｂの間にＣＣＤに蓄積された電荷に対するＡＦ評価値ＢがＴＢで取り込まれる。ＴＢでは、ＡＦ評価値Ａ、Ｂを比較し、Ａ＜Ｂであればそのまま順方向に移動し、一方、Ａ＞Ｂであれば逆方向にする。Step３０９においては、所定回数連続して合焦方向と判断される方向が同一であればStep３１０へ進み、所定回数連続して同一方向に進んでいなければStep３１１へ進む。Step３１１においては、所定回数フォーカスレンズが所定範囲で往復を繰り返していればStep３１２へ進み、所定時間フォーカスレンズが所定範囲にいなければStep３１３へ進み処理を終了する。この結果、図２のStep２０２の微小駆動動作に戻ることになる。Step３１０では、方向判別できたとして、Step３１３へ進み、処理を終了し図２のStep２０５の山登り駆動へ移行する。Step３１２では、合焦判別できたとして処理を終了し図２のStep２１０以降の再起動判定ルーチンへ移行する。
【００２４】
次に、山登り駆動動作について図５を用いて説明する。Step５０１は処理の開始を示している。Step５０２では、最新の顔検出位置／大きさを取得し、その情報に基づいてＡＦ枠（焦点検出領域）を設定し、ＡＦ評価値を取得する。Step５０３においては、Step５０２で取り込んだＡＦ評価値が前回のＡＦ評価値より大きければStep５０４へ進み、Step５０２で取り込んだＡＦ評価値が前回のＡＦ評価値より小さければStep５０５へ進む。Step５０４では前回の順方向に所定の速度でフォーカスレンズを駆動し、Step５０８へ進み処理を終了する。一方、Step５０５においては、ＡＦ評価値がピークを越えて減っていればStep５０６へ進みピークを越えたとして、Step５０８へ進み処理を終了し、図２のStep２０６などを経てStep２０２の微小駆動へ移行する。Step５０５で、ＡＦ評価値がピークを越えて減っていなければStep５０７へ進み、前回と逆方向に所定の速度でフォーカスレンズを駆動し、Step５０８へ進む。
【００２５】
上記レンズ動作を説明したのが図６である。ここで、Ａの場合は、ＡＦ評価値がピークを越えて減少しているので、合焦点があるとして山登り駆動動作を終了し、微小駆動動作に移行する。一方、Ｂの場合は、ＡＦ評価値がピーク無しで減少しているので、方向を間違えたものとして反転し、山登り駆動動作を続ける。一定時間あたりの移動量、つまりは駆動速度は前記の微小駆動の駆動速度よりも大きな値となる。顔検出の大きさが連続的に増加している場合には、山登り駆動時の駆動速度を大きく設定することで、ＡＦの応答性を向上させることができる。
【００２６】
以上説明したように、カメラ／ＡＦマイコン１１４は、再起動判定→微小駆動→山登り駆動→微小駆動→再起動判定を繰り返しながらフォーカスレンズを移動させＡＦ評価値を大きくするように、制御を行っている。
【００２７】
次に、被写体の至近または無限方向の移動判定処理について、図７〜図１６を用いて説明する。まず、図３のStep３０３の移動判定処理を図７を用いて説明する。Step７０１は移動判定処理の開始を示している。Step７０２では、検出された顔サイズの平均を算出する処理を行う。検出された顔サイズはカメラ／ＡＦマイコン内のメモリに蓄積され、移動平均法を用いて蓄積個数が１０ずつの平均が算出される。平均された顔サイズは、FaceAveSizeに格納することとする。このFaceAveSizeは２０個の配列を持ち、平均値が算出される毎にFaceAveSize[0]〜[19]に履歴が保存される。ここでは、FaceAveSize[0]に最新の平均値を格納することとする。Step７２１では、Step３０２において取得した顔検出位置が揺れているか否かを判断する。この処理の詳細は図１４〜図１６を用いて説明する。
【００２８】
Step７０３では、移動判定フラグの有無を判定する。後述の処理で決定される移動判定フラグがSETされている場合は、Step７０４に遷移する。そうでない場合は、Step７０３’に遷移し、移動判定領域設定処理に移行する。Step７０３’の処理については図１８を用いて後述する。移動判定領域設定処理によって、移動判定を行う画面内の領域の設定が完了した場合、Step７０３’’に遷移する。Step７０３’’では、被写体であるFacePosの値が、移動判定領域JudgeFaceAreaの内側にあるかの判定を行い、被写体が領域内に居る場合は、Step７０７に遷移する。そうでない場合は、Step７２０に遷移して、処理を終了する。
【００２９】
Step７０７では、Step７０２において算出した平均顔サイズFaceAveSizeが安定している値か否かを判断する。この処理の詳細は図８を用いて後述する。Step７０８では、Step７０７で決定される安定フラグとStep７２１で決定される揺れフラグを判定し、安定フラグがSETされており且つ揺れフラグもSETされている場合はStep７０９に遷移する。そうでない場合はStep７２０に遷移し、処理を終了する。
【００３０】
ここで、安定フラグがCLEARか若しくは揺れフラグがCLEARの場合は、被写体の状態が安定していないため、移動判定を行えないことを意味している。この場合、図３のStep３０４を経てStep３０６以降に進むことになる。Step７０９では、顔基準サイズが設定されているかの判定を行う。顔基準サイズFaceBaseSizeとは、移動判定を行う際の基準となる顔のサイズのことである。顔基準サイズFaceBaseSizeが０の場合は、値が設定されていないため、Step７１９に遷移し、Step７１９において、FaceBaseSizeにFaceAveSize[0]を代入する。この場合も、図３のStep３０４を経てStep３０６以降に進むことになる。
【００３１】
顔基準サイズFaceBaseSizeが０でない場合は、Step７１０に遷移する。Step７１０では、移動判定閾値設定処理を行う。この処理は、撮影パラメータと被写体の状態に応じて、移動判定に用いる顔のサイズ変化の閾値を設定する処理である。この処理の詳細については、図９を用いて後述する。続いて、Step７１１では、顔基準サイズFaseBaceSizeと現在の顔サイズFaceAveSize[0]との大きさの比較を行う。現在の顔サイズが小さい場合は、遠ざかりの可能性があるため、Step７１２に遷移する。そうでない場合は、近づきの可能性があるので、Step７１３に遷移する。Step７１2では、遠ざかりの判定を行う。顔基準サイズFaseBaceSizeと現在の顔サイズFaceAveSize[0]との差がTHfar以上であれば、被写体が遠ざかったと判定し、Step７１７に遷移する。Step７１２でTHfarを越えなかった場合は、Step７１４に遷移する。Step７１７では、被写体が遠ざかった事を意味する移動判定フラグの遠ざかりフラグをSETした後、Step７２０に遷移し処理を終了する。この場合、図３のStep３０４を経てStep３０５以降に進むことになる。Step７１３は、近づきの判定を行う。顔基準サイズFaseBaceSizeと現在の顔サイズFaceAveSize[0]との差がTHnear以上であれば、被写体が近づいたと判定し、Step７１８に遷移する。Step７１３でTHnearを越えなかった場合は、Step７１４に遷移する。Step７１８では、被写体が近づいた事を意味する移動判定フラグの近づきフラグをSETした後、Step７２０に遷移し処理を終了する。この場合も、図３のStep３０４を経てStep３０５以降に進むことになる。
【００３２】
Step７１４では、顔基準サイズが設定され且つ安定状態の時に、移動判定を何回繰り返しているかのタイマーFaceJudgeTimerをインクリメントし、Step７１５に遷移する。Step７１５では、FaceJudgeTimerがTimerTH以下かの判定を行う。この処理は、移動判定を約２秒間継続した状態が続いたにも関わらず、被写体の移動が無かった場合は判定処理を初期化する目的の処理である。よって、TimerTHには、２秒間に相当する値である１２０を設定し、この値を越えたかの判定を行う。本実施例では、１秒間に６０回の処理を行うシステムを想定しているので、２秒間に相当する値は１２０である。FaceJudgeTimerがTimerTHを越えている場合は、Step７１６に遷移し初期化処理を行う、そうでない場合は、Step７２０に遷移し処理を終了する。この場合、Step７０２に戻って移動判定を継続する。Step７１６ではFaceJudgeTimerを０に初期化し、Step７０５に遷移する。Step７０５では、FaseBaceSizeを０に初期化し、Step７０６に遷移する。Step７０６では、移動判定フラグをクリアし初期化を行う。上記の初期化処理の終了後、Step７２０に遷移し、処理を終了する。この場合、図３のStep３０４を経てStep３０６以降に進むことになる。
【００３３】
Step７０３で移動判定フラグがSETされている場合は、被写体の移動が終了したか否かを判定するために、Step７０４に遷移する。Step７０４の処理については図１７を用いて後述する。次に、Step７０４’では、Step７０４において被写体の移動が終了した旨の判断がされたのか、被写体の移動が継続している旨の判断がされたのかを判定する。被写体の移動が終了した場合は、Step７０５に移動し、初期化処理を行う。そうでない場合は、Step７２０に遷移し、処理を終了する。この場合、Step７０２に戻って移動判定を継続する。
【００３４】
次に、移動の終了判定処理について、図１７を用いて説明する。図１７のStep１７０１は処理の開始を示している。次にStep１７０２において、カメラ／ＡＦマイコン１１４は平均顔サイズの２次微分値を算出する。以下に２次微分値の具体的な算出方法を示す。まず、カメラ／ＡＦマイコン１１４は、図７のStep７０２で算出した平均顔サイズと所定時間前に算出した平均顔サイズとの差を計算することで、１次微分値を算出し、カメラ／ＡＦマイコン１１４内のメモリに記録する。次に、カメラ／ＡＦマイコン１１４は、メモリに記録されている該１次微分値と所定時間前に算出してメモリに記録した１次微分値との間の変化量を計算することで２次微分値を算出する。算出した２次微分値は、所定時間前の平均顔サイズの１次微分値に対して今回算出した平均顔サイズの１次微分値がどれだけ変化しているかを示す値である。
【００３５】
次に、Step１７０３においては、今回検出された顔サイズが前回検出された顔サイズと比較して小さくなっているか大きくなっているかを判断するために、FaceAveSizeの比較を行う。現在のFaseAveSize[0]と一つ前の履歴であるFaseAveSize[1]との差を求めるため、FaseAveSizeDiff=FaseAveSize[0]-FaseAveSize[1]の計算を行い、Step１７０４に遷移する。次にStep１７０４において、現在、近付きが要因となって移動判定フラグがSETされているのか、遠ざかりが要因となって移動判定フラグがSETされているのかを判別する。近付きが要因となって移動判定フラグがSETされている場合はStep１７０５に遷移し、遠ざかりが要因となって移動判定フラグがSETされている場合はStep１７０９に遷移する。
【００３６】
次にStep１７０５において、顔サイズが小さくなる（FaceAveSizeDiffが負の値）場合に、移動が減速または終了したと判定し、Step１７０６に遷移する。一方、顔サイズが大きくなっている（FaceAveSizeDiffが0以上）の場合は、Step１７０７に遷移する。Step１７０６においては、カメラ／ＡＦマイコン１１４は被写体の移動が減速または終了していると判断し、Step１７１３に遷移して処理を終了する。一方、Step１７０７においては、Step１７０２で求めた平均顔サイズの２次微分値と近付き減速閾値とを比較して、平均顔サイズの２次微分値が近付き減速閾値以下の場合はStep１７０６に遷移し、近付き減速閾値よりも大きい場合にはStep１７０８に遷移する。Step１７０８において、カメラ／ＡＦマイコン１１４は被写体の移動が継続していると判断し、Step１７１３に遷移して処理を終了する。
【００３７】
次に、Step１７０９において、顔サイズが大きくなる（FaceAveSizeDiffが正の値）場合に、移動が減速または終了したと判定し、Step１７１０に遷移する。一方、顔サイズが小さくなっている（FaceAveSizeDiffが0以下）の場合は、Step１７１１に遷移する。Step１７１０においては、カメラ／ＡＦマイコン１１４は被写体の移動が減速または終了していると判断し、Step１７１３に遷移して処理を終了する。一方、Step１７１１においては、Step１７０２で求めた平均顔サイズの２次微分値と遠ざかり減速閾値とを比較して、平均顔サイズの２次微分値が遠ざかり減速閾値以上の場合はStep１７１０に遷移し、遠ざかり減速閾値よりも小さい場合にはStep１７１２に遷移する。Step１７１２において、カメラ／ＡＦマイコン１１４は被写体の移動が継続していると判断し、Step１７１３に遷移して処理を終了する。
【００３８】
ここで近付き減速閾値とは、被写体がある速度で近付いている状態から減速または移動が終了したときに、カメラ／ＡＦマイコン１１４が減速または移動が終了したと判断するときの変化率である。また、遠ざかり減速閾値とは、被写体がある速度で遠ざかっている状態から減速または移動が終了したときに、カメラ／ＡＦマイコン１１４が減速または移動が終了したと判断するときの変化率である。本実施例において、上記近付き減速閾値と遠ざかり減速閾値は経験的に顔サイズの１０％とし、近付き減速閾値は0以下の値、遠ざかり減速閾値は0以上の値とする。また、近付き減速閾値の絶対値と遠ざかり減速閾値の絶対値は同じ値であっても良いし、異なる値であっても良い。さらに、上記所定時間前とは、２次微分値が減速または停止しているか否かを前記近付き減速閾値と遠ざかり減速閾値によって判断できる値として、１５フレーム前とする。ただし、設定した近付き減速閾値と遠ざかり減速閾値と所定時間は、システムによって自由に変更することができる値である。
【００３９】
以上の図１７の処理においては、平均顔サイズによって被写体が減速または移動が終了しているか否かを判断しているが、顔や人体などの位置に関して２次微分値を算出して、減速または移動が終了しているか否かを判断する方法でも良い。また、目や口が検出できるシステムである場合は、両目（又は目と口）の間隔に関して２次微分値を算出して、減速または移動が終了しているか否かを判断する方法でも良い。さらには、両目の間隔に対する目と口の間隔の比率を算出し、算出した比率に関して２次微分値を算出して減速または移動が終了しているか否かを判断する方法でも良い。要は、予め定めた被写体の動きの減速や終了を判断できる情報であれば、所定部位のサイズ、複数の部位間の距離、複数のサイズや距離の間の比率についての相対的情報など、被写体のどの様な形状的情報であってもよい。以上の様に、制御手段であるカメラ／ＡＦマイコン１１４内の終了判定手段は、検出手段により検出される被写体の大きさの変化の急峻度合いが所定値以下である場合に被写体の距離変化が終了していると判断する。また、終了判定手段は、検出された被写体の大きさを記憶する被写体情報記憶手段と、差分算出手段と、差分算出手段による差分値の算出結果を記憶する差分記憶手段を有する。差分算出手段は、検出された被写体の最新の大きさと時間間隔を置いて前に被写体情報記憶手段に記憶された被写体の大きさとの差分値を算出する。そして、被写体の大きさの変化の急峻度合いは、差分記憶手段に記憶している最新の差分値と時間間隔を置いて前に記憶された差分値との変化量により測られる。
【００４０】
続いて、図７のStep７０７の被写体安定判定処理を図８を用いて説明する。図８のStep８０１は処理の開始を示している。次にStep８０２において、カメラ／ＡＦマイコン１１４は平均顔サイズの２次微分値を算出する。次にStep８０３において、カメラ／ＡＦマイコン１１４はStep８０２で算出した２次微分値が閾値以下であるか否かを判断する。算出した２次微分値が閾値以下である場合は、所定時間前の平均顔サイズの１次微分値に対して今回算出した平均顔サイズの１次微分値の変化量が小さいため、被写体は安定していると判断してStep８０４へ進む。一方、算出した２次微分値が閾値より大きい場合は、所定時間前の平均顔サイズの１次微分値に対して今回算出した平均顔サイズの１次微分値の変化量が大きいため、被写体は安定していないと判断してStep８０７へ進む。
【００４１】
本実施例において、上記閾値は経験的に平均顔サイズの１０％の値とする。また、上記所定時間前とは、２次微分値が安定しているか否かを前記閾値によって判断できる値として１５フレーム前とする。ただし、本実施例において、設定した閾値と所定時間は、システムによって自由に変更することができる値である。次にStep８０４において、カメラ／ＡＦマイコン１１４はStableTimerをカウントアップしStep８０５へ進む。ただし、StableTimerは、算出された平均顔サイズが連続して安定している期間をカウントする変数である。従って、StableTimerが所定期間（以降、StableTHとする）を超えた以降の平均顔サイズは安定している平均顔サイズであると判断することができる。ここで、StableTHは本実施例においては１５フレームとする。また、StableTHは、平均顔サイズが連続して安定している期間をカウントする変数であるため、２次微分値を算出するときに用いられる所定時間（本実施例においては１５フレーム）以下の期間である必要がある。Step８０７では、平均顔サイズの２次微分値が閾値より大きい値であるので、カメラ／ＡＦマイコン１１４はStableTimerをクリア（本実施例では０）する。
【００４２】
次に、Step８０５において、カメラ／ＡＦマイコン１１４はStableTimerがStableTH未満であるか否かを判断し、StableTH未満である場合はStep８０６に進み、StableTH以上である場合はStep８０８に進む。Step８０６においては、カメラ／ＡＦマイコン１１４は、Step７０２において算出した平均顔サイズは、StableTimerがStableTHを越えるまでは連続して安定していないと判断し、安定フラグをOFFにして図８の処理を終了する。一方、Step８０８においては、カメラ／ＡＦマイコン１１４は、Step７０２において算出した平均顔サイズは、StableTimerがStableTH以上の期間連続して安定している値であると判断し、安定フラグをONにして図８の処理を終了する。
【００４３】
以上の図８の処理においても、平均顔サイズによって被写体が安定しているか否かを判断しているが、顔や人体などの位置に関して２次微分値を算出して、安定しているか否かを判断する方法でも良い。また、目や口が検出できるシステムである場合は、両目（又は目と口）の間隔に関して２次微分値を算出して、安定しているか否かを判断する方法でも良い。さらには、両目の間隔に対する目と口の間隔の比率を算出し、算出した比率に関して２次微分値を算出して安定しているか否かを判断する方法でも良い。要は、予め定めた被写体の動きの安定度を判断できる情報であれば、所定部位のサイズ、複数の部位間の距離、複数のサイズや距離の間の比率についての相対的情報など、被写体のどの様な形状的情報であってもよい。
【００４４】
続いて、図７のStep７１０の移動判定閾値設定処理を図９を用いて説明する。図９のStep９０１は処理の開始を示している。Step９０２においては、変倍レンズ（ズームレンズ）１０２のレンズ位置を取得する処理である。変倍レンズの駆動源がステップモーターであるとした場合は、そのステップ数であり、レンズがテレ側、ワイド側のどの位置にいるかを判断するために用いる。続いて、Step９０３においては、図１０に示すズームレンズ位置と基準移動判定閾値Thの関係グラフから、現在のズーム位置に応じた基準移動判定閾値Thを取得する。図１０は、縦軸を顔サイズの変化の割合（％）、横軸をズームレンズ位置としている。このズームレンズ位置と基準移動判定閾値Thとの関係は、絞り値Fbaseを一定にした状態で、各ズームレンズ位置においての被写界深度の前端と顔サイズの変化量の関係から算出したグラフである。
【００４５】
予め定めた被写体にピントが合っている状態で被写体が移動した場合、被写界深度を超えた時点から画面上にボケが認識され始めるため、基準移動判定閾値は被写界深度よりも小さい値を設定する。これにより、被写体がボケ始める前に、移動の有無を判定し、フォーカスレンズを駆動することが可能になり、被写体への追従性能が向上する。実際の基準移動判定閾値Thの算出の際は、各ズームレンズ位置に応じた基準移動判定閾値Thのテーブルをカメラ／ＡＦマイコン１１４内に持ち、ズームレンズ位置に対応する閾値Thを決定する。
【００４６】
被写界深度の算出は、以下の式１を用いて算出する。被写体の距離をs、被写界深度の前端・後端をそれぞれDnとDfすると以下の通りとなる。
Dn=s(H-f)/(H+s-2f)・・・式１a
Df=s(H-f)/(H-s)・・・式１b
過焦点距離Hは、レンズの焦点距離をf、レンズの絞り値をN、許容錯乱円の直径をcとすると式２のようになる。
H=f*f/N*c・・・式２
【００４７】
続いてStep９０４において、現在の絞り値Fnoの取得を行う。絞り値は絞り１０３の駆動量からF値を取得する。Step９０５では、基準移動判定閾値に対して絞りに応じた補正を行う。被写界深度は、絞り値に応じて変化するため、取得した現在の絞り値Fnoと図１０の基準移動判定閾値を算出した際の絞り値Fbaseを比較する。式３に基づいて補正後の移動判定閾値Th2を算出する。
Th2=(現在の絞り値Fno/基準絞り値Fbase)*基準移動判定閾値Th・・・式３
この様に、前記閾値ないし所定量は、被写界深度により決定され、被写体が被写界深度の分を移動した場合の被写体の大きさの変化量よりも小さい量に設定されることを特徴としている。
【００４８】
続いて、Step９０６において、基準顔サイズFaceBaseSizeの取得を行う。Step９０７では、基準顔サイズFaceBaseSizeに応じて基準移動判定閾値の補正を行う。図１１は基準顔サイズと補正係数Kの関係グラフであり、縦軸を顔サイズの変化の割合（％）、横軸を基準顔サイズとしている。基準顔サイズFaceBaseSizeが大きくなると、検出される顔サイズのバラツキが大きくなるため、補正を行う必要がある。取得した基準顔サイズと補正係数Kのグラフより、式４に基づいて補正後の移動判定閾値Th3を算出する。
Th3=補正係数K*移動判定閾値Th2・・・式４
この様に、被写体状況とは、上記検出手段により検出された被写体の大きさであり、前記閾値ないし所定量は、被写体の大きさに応じて変更され、被写体の大きさの基準値との差に応じて変更される。
【００４９】
続いてStep９０８において、顔検出部１１６の信号から顔信頼度の取得を行う。前述の通り、顔の信頼度は１〜５の５段階で評価され、評価５が信頼度が一番高く、評価１が信頼度が一番低い。Step９０９では、顔信頼度を用いて、移動判定閾値の補正を行う。信頼度が低い場合は、検出された顔サイズのバラツキが大きくなることや、少ないとしても誤検出している可能性があるため、閾値補正を行い閾値を高く設定する必要がある。本実施例では、顔信頼度が３以下の場合には、補正係数K’に１．５を設定し、取得した顔信頼度を用いて式５に基づいて補正後の移動判定閾値Th4を算出する。
Th4=補正係数K’移動判定閾値Th3・・・式５
この様に、被写体状況とは、上記検出手段により検出された顔の確からしさを表す信頼度であり、前記閾値ないし所定量は、顔の確からしさを表す信頼度に応じて変更され、信頼度が低い場合は、大きい量に変更される。
【００５０】
次にStep９１０において、顔検出部１１６の信号から横顔らしさの信頼度の取得を行う。前述の通り、横顔らしさの信頼度は１〜５の５段階で評価され、評価５が横顔の可能性が一番高く、評価１が横顔の可能性が一番低い。Step９１１では、横顔らしさの信頼度を用いて、移動判定閾値の補正を行う。横顔の信頼度が高い場合は、検出された顔サイズのバラツキが大きくなることや、少ないとしても誤検出している可能性があるため、閾値の補正を行い閾値を高く設定する必要がある。本実施例では、横顔らしさの信頼度が３以上の場合には、補正係数K’’に１．５を設定し、取得した横顔らしさの信頼度を用いて式６に基づいて補正後の移動判定閾値Th5を算出する。
Th5=補正係数K’’*移動判定閾値Th4・・・式６
この様に、被写体状況とは、上記検出手段により検出された顔が横を向いているかを表す信頼度であり、前記閾値ないし所定量は、顔が横を向いているかを表す信頼度に応じて変更され、信頼度が高い場合は、大きい量に変更される。
【００５１】
続いてStep９１２において、カメラ／ＡＦマイコン１１４内の情報から撮影モードの取得を行う。一般的な撮像装置は撮影シーンに最適な撮影パラメータを設定するために、図１２に示すような撮影モードを複数持っている。Step９１３では、撮影モードに応じて移動判定閾値の補正を行う。図１２は撮影モードと補正係数K’’’の関係を示した表である。被写体の動きが多いと想定される撮影モードでは、閾値を低く設定するように係数K’’’を１以下の値にし、オートフォーカスの応答性を高くしている。また、被写体の動きが少ないと想定される撮影モードでは、移動判定の閾値を高くするように、係数K’’’の値を高く設定し、オートフォーカスの安定性を重視する。取得した撮影モードと、図１２から決定される補正係数K’’’より、式７に基づいて補正後の移動判定閾値Th6を算出する。
Th6=補正係数K’’’*移動判定閾値Th5・・・式７
この様に、撮影パラメータとは、撮影モードであり、前記閾値ないし所定量は、撮影モードに応じて変更され、撮影モードが動きの多い被写体を撮影するモードに設定されている場合は、大きい量に変更され、撮影モードが動きの少ない被写体を撮影するモードに設定されている場合は、小さい量に変更される。
【００５２】
続いてStep９１４では、合焦度合の取得を行う。合焦度合の算出方法は、評価枠内のＡＦ評価値のピークホールドした値を、各ラインの輝度レベルの最大値と最小値の差で割った値である。この合焦度合は０〜１で表され、合焦している被写体の場合、ＡＦ評価値のピークホールドと輝度レベルの差が同じ値になる傾向があるため、合焦度合は１に近づく。合焦度合が低い被写体は、ボケが発生している可能性が高く、顔サイズの信頼性が低くなることがあるため、移動判定の閾値を高くなるように設定する。例えば、取得した合焦度合を用いて、合焦度合が０．５以下である場合に、補正係数K’’’’を１．５と設定し、式８に基づいて補正後の移動判定閾値Th７を算出する。
Th7=補正係数K’’’’＊移動判定閾値Th6・・・式８
この様に、撮影パラメータとは、ＡＦ評価値のレベルの状態とフォーカスレンズの駆動状態から推定される合焦度合であり、前記閾値ないし所定量は、合焦度合に応じて変更され、合焦度合が低い場合は、大きい量に変更される。なお、以上のこれらの補正係数はカメラに応じて十分な測定を行ったうえで決定するものであり、この値に限定されるものではない。
【００５３】
続いてStep９１６では、Step９１５で算出された移動判定閾値Th7にリミットを設定する。上記補正方法の場合、補正の積み重ねにより、移動判定閾値が基準移動判定閾値の数倍になってしまい、移動判定の閾値としては適当でない場合がある。よって、閾値の上限を設定する。移動判定閾値Th7が、基準移動判定閾値Thの２倍以上である場合は、Step９１８へ遷移し、そうでない場合はStep９１７に遷移する。本実施例では、移動判定の精度を維持するためにリミットを２倍に設定したが、この値は、十分な測定を行い誤判定が軽減される値を任意に設定することが可能である。Step９１７においては、移動判定閾値THfaceにTh7を代入し、Step９１９に遷移する。Step９１８では、移動判定閾値が大き過ぎるため、閾値にリミットを設定する。最終的な移動判定閾値THfaceには基準移動判定閾値Thを２倍したものを代入し、Step９１９に遷移する。
【００５４】
Step９１９では、移動判定閾値THfaceを基に、遠ざかり判定と近づき判定の閾値を変更する。顔検出は目の間隔を基に顔サイズを決定している手法がある。人物が横を向いた場合に、目の間隔が小さくなることにより、被写体までの距離が変化してないにも関わらず、検出された顔サイズが小さくなる。そのため、被写体の遠ざかり検出を行ってしまう事がある。そこで、近づき検出閾値THnearよりも、遠ざかり検出閾値THfarを大きく設定することで、横顔撮影時のサイズ変化による誤判定を低減する。本実施例では、遠ざかり検出の閾値を１.５倍に大きくしているが、この値は、十分な測定を行い誤判定が軽減される値を設定することとする。この様に、被写体状況とは、上記判別の結果であり、前記閾値ないし所定量は、判別の結果が遠ざかりである場合と近づきである場合で異なる値が設定され、遠ざかりである場合は、近づきである場合よりも大きい量が設定される。
【００５５】
以上が移動判定閾値設定の処理フローであり、近づき検出閾値THnear及び遠ざかり検出閾値THfarを算出する処理である。この処理の際に使用した係数や式は一例であり、これに限定するものではない。
【００５６】
次に、移動判定領域設定処理に関して図１８を用いて説明する。図１８のStep１８０１は処理の開始を示している。Step１８０２では次の処理を行う。ユーザーが、検出された被写体に対して、いわゆる主顔ロック機能、主顔固定機能、あるいは個人認証機能を用いて、意図的に他の顔が主顔になるような移り変わりを禁止している場合は、移動判定領域を設定する必要はない。よって、Step１８０２において、主顔固定されている場合はStep１８１０へ遷移し、そうでない場合はStep１８０３に遷移する。Setp１８０３では、顔の検出位置をカメラ／ＡＦマイコン１１４から取得する。取得された顔位置は配列のFacePosX[0]とFacePosY[0]に格納される。同時に、１処理前のデータはFacePosX[1]とFacePosY[1]に移動する。続いて、Step１８０４では、焦点距離を取得する。本実施例では、35mm換算された焦点距離FocalLength値をカメラ／ＡＦマイコン１１４から取得する。
【００５７】
続いて、Step１８０５では、図１９に示すグラフから、基準となる判定領域FaceAreaXとFaceAreaYを参照する。なお、判定領域は、ワイドの方が小さく、テレの方が大きい。その理由として、以下の３つがあげられる。
・ワイドの方が、画角が広いため、狙った被写体以外が画面内に存在する可能性がある。
・ワイドの方が、被写界深度が深いため、積極的に移動判定を行わなくても良い。
・ワイドの方が、手振れなどによって、被写体が画面中央から大きく外れることが少ない。
本実施例の場合は、広角側では、被写体距離が数メートルの被写体に対して、バストアップが入る程度の大きさを考慮し、X方向を約30％、Y方向を約70％に制限している。また、図１９に示すように、焦点距離が１２０mm付近で、主被写体以外の被写体が入る可能性が低くなると想定し、判定領域の制限を行わないこととしている。
【００５８】
続いて、Step１８０６では、カメラ／ＡＦマイコン１１４から顔検出個数の取得を行う。Step１８０７では、顔検出の個数に応じて、補正係数Ｊを設定する。本実施例の場合、通常、主被写体１ないし２個であると考えられるため、５個以上の顔が検出されている場合は、人ごみでの撮影である可能性が高いと予想し、判定の領域を小さく設定する。よって、補正係数に０．８を設定する。そうでない場合は、補正係数を１．０に設定して補正は行わない。下記の式において、移動判定領域を算出する。
FaceAreaX’=補正係数Ｊ＊FaceAreaX・・・式９ａ
FaceAreaY’=補正係数Ｊ＊FaceAreaY・・・式９ｂ
【００５９】
続いて、Step１８０８では、顔の横の移動量を算出する。顔の移動量を算出するために、顔位置の二つの差分をFaceDiffX=FacePosX[0]-FacePosX[1]に格納する。Step１８０９では、顔の横の移動量に応じて、補正係数J’を設定する。本実施例の場合、移動量FaceDiffXが画面に対して20％以上であった場合、被写体が画面外に抜けていく可能性があるため、判定の領域を小さく設定する。よって、補正係数に０．８を設定する。そうでない場合は、補正係数を１．０に設定して補正は行わない。下記の式において、移動判定領域を算出する。
FaceAreaX’’=補正係数Ｊ’＊FaceAreaX’・・・式１０ａ
FaceAreaY’’=補正係数Ｊ’＊FaceAreaY’・・・式１０ｂ
【００６０】
一方、Step１８１０では、主顔ロックがされているため、FaceAreaX’’とFaceAreaY’’にそれぞれ１.０を設定し、判定領域は制限しないことする。Step１８１１では、判定領域の４隅の位置を以下の式を用いて算出する。まず、判定枠の中心位置（ｘ、ｙ）を設定する。この値は任意の値で良いが、本実施例では、図２０に示すように、画面中央よりも少し上に設定する。これは、被写体が入る可能性が高いからである。
JudgeFaceAreaX_Left=中心位置ｘ-（Ｘ方向画素数×FaceAreaX’’÷２）
JudgeFaceAreaX_Right=中心位置ｘ+（Ｘ方向画素数×FaceAreaX’’÷２）
JudgeFaceAreaY_Up=中心位置ｙ-（Ｙ方向画素数×FaceAreaY’’÷２）
JudgeFaceAreaY_Down=中心位置ｙ+（Ｙ方向画素数×FaceAreaY’’÷２）
・・・  式１１
上記求めた座標に囲まれた範囲が、移動判定領域であり、この領域内に顔が検出された場合のみ、移動判別を行うこととする。上記の処理が終了した場合、Step１８１２に遷移し、処理を終了する。
【００６１】
続いて、揺れ検出処理を図１４〜図１６を用いて説明する。本実施例では、制御手段のカメラ／ＡＦマイコン１１４に含まれる揺れ検出手段が揺れ検出処理を実行する。揺れ検出処理は、人物がカメラに向かって歩いたり走ったりして近づいて来るときに、顔や体が上下と左右に周期的に振動することに着目する。そして、取得した顔検出位置の結果を横方向と縦方向の座標に分解して、それぞれの方向の位置が振動しているか否かを検出する処理である。まず、人物がカメラに向かって歩いたり走ったりして近付いてくるときの顔や体の振動について図１５を用いて説明する。本実施例において、顔検出位置の横方向の座標をｘ座標、縦方向の座標をｙ座標とする。また、画像の左上を原点として、ｘ座標は画像の右端に近付くほど、ｙ座標は画像の下端に近付くほど夫々大きな座標値を取ることとする。本実施例では、監視する被写体の位置を顔検出位置（例えば、顔の中心）とするが、体の他の部位の中心、人物の顔に配置されている器官（目、耳、鼻、口など）のうちの少なくとも２つの器官間の中心位置などであってもよい。
【００６２】
人物が二足歩行する場合、顔や体は左右と上下に揺れる。ここで、検出した顔や体の位置座標の軌跡は、図１５（ａ）に示すような所謂８の字形状や、図１５（ｂ）に示すような所謂Ｕの字形状を描く。図１５（ａ）をｘ座標とｙ座標に分解して時間方向にそれぞれプロットすると、図１５（ｃ）のような軌跡となる。図１５（ｃ）より、縦方向の振動は、横方向の振動の２倍の周波数（２分の１の周期）で振動していることが分かる。したがって、体が左右方向に１往復揺れるとき、上下方向には２往復揺れるという特徴がある。また、図１５（ｃ）のｙ座標の軌跡を例えば１／２周期ずつ遅らせていくと、ｘ、ｙ座標において図１５（ｂ）の軌跡をＡ→Ｂ→Ｃ→Ｄ→Ａ→・・・の順番で周期的に辿ることになる。さらに、ｘ座標の軌跡とｙ座標の軌跡の位相は人物によって異なる。以上より、人物が歩行しているのを捉える為には、軌跡の形状が図１５（ａ）、（ｂ）に示すものに限らず如何なる様なものであっても、縦方向と横方向に周期的に振動しており且つ縦方向の周期が横方向の周期の１／２であるという特徴を捉えることが必要である。つまり、揺れ検出手段は、被写体検出手段から得られる被写体の位置が電気信号の映像信号中においてこうした所定の動作特性を満たした場合、揺れていると判定することができる。以下で、取得した顔検出位置のｘ座標から横方向の揺れを検出するシステムを説明するが、縦方向の揺れを検出するシステムは、取得した顔検出位置のｙ座標から以下のシステムと同じシステムを用いて実現できることは明らかである。以下の説明中では、横方向の揺れを検出するシステムと縦方向の揺れを検出するシステムとが異なる場合のみ、縦方向の揺れを検出するシステムについても記述する。
【００６３】
次に、揺れ検出処理の処理フローを図１４のフローチャートを用いて説明する。Step１４０１は処理の開始を示している。Step１４０２においては、最新の顔検出位置／大きさ（以下、現在位置／現在顔サイズとする）を取得する。Step１４０３においては、現在位置が記憶している最大位置よりも大きい座標の場合は、Step１４０５に遷移し、そうでない場合はStep１４０４に遷移する。Step１４０４において、現在位置が記憶している最小位置よりも小さい座標の場合は、Step１４０６に遷移し、そうでない場合はStep１４０７に遷移する。Step１４０５において、現在位置を最大位置として更新し、Step１４１３に遷移する。一方、Step１４０６においては、現在位置を最小位置として更新し、Step１４１３に遷移する。
【００６４】
Step１４０７において、極大位置を検出したか否かの判断を行う。ここで極大位置とは、画像中の右方向に移動している顔の位置が左方向に移動方向を変えた時のｘ座標の最大値である。極大位置の検出方法を具体的に説明する。まず、現在位置と記憶している最大位置との差分を算出する。次に、算出した差分と予め決められた閾値とを比較し、算出した差分が閾値を超えている場合は、記憶している最大位置が極大位置であると判断してStep１４０８に遷移する。つまり、検出している顔の位置が画像中において、右に移動している状態から左に移動している状態に折り返したと判断する。一方、Step１４０７において、算出した差分が閾値以下である場合は、記憶している最大値は極大値ではないと判断してStep１４１０に遷移する。ここで、極大位置を検出するために差分と比較される閾値は、現在顔サイズから求める値で、本実施例においては現在顔サイズの１０％の値とする。この値は、十分な測定を行って決定する値であり、撮影環境や表情等の影響により顔検出位置がバラつくことで極大位置を誤判定してしまうことがない値とする。
【００６５】
Step１４０８においては、以降で極小値を探索するために、記憶している最小位置をクリアしてStep１４０９に遷移する。本実施例では現在位置を最小位置に代入することでクリアとする。ただし、最小位置は設定可能な最大の値でもよいし、ｘ座標の場合は画面の右端、ｙ座標の場合は画面の下端の値を代入してもよい。Step１４０９においては、極大位置Countを開始する。また、既にカウントを開始している場合はカウント値をリセットしてカウントを再開する。ここで、極大位置Countとは、Step１４０７において極大位置が検出されてからの経過時間を計測するための値であり、極大位置Countがカウントアップ中は「所定の期間内に移動方向が右から左に反転した」と判断する。ここで、該所定の期間は本実施例において、横方向に関しては２秒としている。これは、十分な測定を行い、人物の歩行を基準として決定した。また、縦方向に関しては横方向のおよそ半分の周期で振動するため、１秒を該所定の期間として設定する。
【００６６】
Step１４１０においては、極小位置を検出したか否かの判断を行う。ここで極小位置とは、画像中の左方向に移動している顔の位置が右方向に移動方向を変えた時のｘ座標の最小値である。極小位置の検出方法を具体的に説明する。まず、現在位置と記憶されている最小位置との差分を算出する。次に、算出した差分と予め決められた閾値とを比較し、算出した差分が閾値を超えている場合は、記憶されている最小位置が極小位置であると判断してStep１４１１に遷移する。つまり、検出している顔の位置が画像中において、左に移動している状態から右に移動している状態に折り返したと判断する。一方、Step１４１０において、算出した差分が閾値以下である場合は、記憶している最小値は極小値ではないと判断してStep１４１３に遷移する。ここで、極小位置を検出するために差分と比較される閾値は、現在顔サイズから求める値で、本実施例においては現在顔サイズの１０％の値とする。この値は、十分な測定を行って決定する値であり、撮影環境や表情等の影響により顔検出位置がバラつくことで極小位置を誤判定してしまうことがない値とする。
【００６７】
Step１４１１においては、以降で極大値を探索するために、記憶している顔位置の最大位置をクリアしてStep１４１２に遷移する。本実施例では現在位置を最大位置に代入することでクリアとする。ただし、最大位置は設定可能な最小の値でもよいし、ｘ座標の場合は画面の左端、ｙ座標の場合は画面の上端の値を代入してもよい。Step１４１２においては、極小位置Countを開始する。また、既にカウントを開始している場合はカウント値をリセットしてカウントを再開する。ここで、極小位置Countとは、Step１４１０において極小位置が検出されてからの経過時間を計測するための値であり、極小位置Countがカウントアップ中は「所定の期間内に移動方向が左から右に反転した」と判断する。ここで、該所定の期間は本実施例において、横方向に関しては２秒としている。これは、十分な測定を行い、人物の歩行を基準として決定した。また、縦方向に関しては横方向のおよそ半分の周期で振動するため、１秒を該所定の期間として設定する。
【００６８】
次に、Step１４１３において、極大位置Countが２秒（縦方向の場合は１秒）を超えているか否かを判断する。２秒（縦方向の場合は１秒）を超えている場合はStep１４１４に遷移し、そうでない場合はStep１４１６に遷移する。Step１４１４においては、極大位置Countを初期値にクリアしてカウントアップを終了し、Step１４１５に遷移する。Step１４１５において、最小位置を現在位置で更新してStep１４１７に遷移する。一方、Step１４１６において、極大位置CountをカウントアップしStep１４１７に遷移する。次に、Step１４１７において、極小位置Countが２秒（縦方向の場合は１秒）を超えているか否かを判断する。２秒（縦方向の場合は１秒）を超えている場合はStep１４１８に遷移し、そうでない場合はStep１４２０に遷移する。Step１４１８においては、極小位置Countを初期値にクリアしてカウントアップを終了し、Step１４１９に遷移する。Step１４１９において、最大位置を現在位置で更新してStep１４２１に遷移する。一方、Step１４２０において、極小位置CountをカウントアップしStep１４２１に遷移する。
【００６９】
次に、Step１４２１において、極大位置Countと極小位置Countとがどちらもカウント中であるか否かを判断する。どちらもカウント中であると判断した場合はStep１４２２に遷移し、そうでない場合は、Step１４２３に遷移する。Step１４２２において、揺れフラグをONにして処理を終了し、一方、Step１４２３において、揺れフラグをOFFにして処理を終了する。
【００７０】
以上の様に、本実施例では、判別手段は、前記被写体の大きさの変化量を監視して、前記変化量に変化が発生した場合であって揺れ検出手段が被写体の揺れを検出している場合には被写体の距離変化があると判断する。他方、前記変化量に変化が発生した場合であっても揺れ検出手段が被写体の揺れを検出していない場合には被写体の距離変化はないと判断する。そして、制御手段は、被写体の距離変化がないと判断されたときは、追従制御手段による追従制御を禁止して焦点調節を行い、被写体の距離変化があると判断されたときは、追従制御手段による追従制御を許可して焦点調節を行う。前記所定の動作特性は、電気信号中において被写体の位置について、第一の所定期間内に縦方向に極大値と極小値を含む所定の振幅以上の振動があり且つ第二の所定期間内に横方向に極大値と極小値を含む所定の振幅以上の振動があるという特徴を有する。この所定の振幅は、被写体検出手段から得られる被写体の大きさに対して所定の割合の大きさを有する。また、第一の所定期間（周期）は、第二の所定期間（周期）よりも短く、例えば、第一の所定期間は第二の所定期間の略半分の期間である。
【００７１】
上記の揺れ検出処理を説明したのが図１６である。まず、T1のタイミングにおいて、現在位置と最大位置との差分は折り返し検出閾値以上となっている。したがって、T1のタイミングにおいて記憶している最大位置が極大位置であると判断できるため、T1から極大位置Countが開始される。また、T2のタイミングにおいて、現在位置と最小位置との差分が折り返し検出閾値以上となっている。したがって、T2のタイミングにおいて記憶している最小位置が極小位置であると判断できるため、T2から極小位置Countが開始される。次に、T3のタイミングにおいて、現在位置と最大位置との差分は折り返し検出閾値以上となっている。したがって、T3のタイミングにおいて記憶している最大位置が極大位置であると判断できるため、T3において極大位置Countが初期化されカウントが再開される。T4のタイミングにおいては、極小位置Countが閾値を超えるため極小位置Countをクリアしてカウントを終了する。T5のタイミングにおいても、極大位置Countが閾値を超えるため極大位置Countをクリアしてカウントを終了する。以上の処理により図１６中のT2からT4の期間において、極大位置Countと極小位置Countがともにカウント中であるため、該期間では検出している顔が揺れていると判断できる。
【００７２】
以上のように、上記実施例では、顔検出を用いて被写体の人物にＡＦ評価値でピント合わせを行うと共に、被写体の検出結果に加えて被写体の位置の揺れの検出結果に基づき被写体の距離変化の有無を判断する。そして、検出した顔の位置が所定の動作をしている場合にのみ被写体が近づいていると判断する。このことで、精度の高く安定した被写体の移動判定が可能になる。そして、その情報を用いて、フォーカスを被写体の無限または至近の移動に追従駆動させることにより、合焦精度を高めることができる。
【００７３】
上述した実施例における処理のために、各機能を具現化したソフトウェアのプログラムコードを記録した記憶媒体をシステム或いは装置に提供してもよい。そして、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによって、前述した実施例の機能を実現することができる。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスクなどを用いることができる。或いは、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリーカード、ＲＯＭなどを用いることもできる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけではない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれている。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリーに書きこまれてもよい。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施例の機能が実現される場合も含むものである。
【００７４】
以上、本発明の好ましい実施形態ないし実施例について説明したが、本発明は上記実施形態ないし実施例に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【００７５】
１０５‥‥フォーカスレンズ、１０６‥‥ＣＣＤ（撮像素子）、１１３‥‥ＡＦ信号処理回路（生成手段）、１１４‥‥カメラ／ＡＦマイコン（制御手段、判別手段、終了判定手段）、１１６‥‥顔検出部（被写体検出手段）
【図１】
0005882745.tif 000002
【図２】
0005882745.tif 000003
【図３】
0005882745.tif 000004
【図４】
0005882745.tif 000005
【図５】
0005882745.tif 000006
【図６】
0005882745.tif 000007
【図７】
0005882745.tif 000008
【図８】
0005882745.tif 000009
【図９】
0005882745.tif 000010
【図１０】
0005882745.tif 000011
【図１１】
0005882745.tif 000012
【図１２】
0005882745.tif 000013
【図１３】
0005882745.tif 000014
【図１４】
0005882745.tif 000015
【図１５】
0005882745.tif 000016
【図１６】
0005882745.tif 000017
【図１７】
0005882745.tif 000018
【図１８】
0005882745.tif 000019
【図１９】
0005882745.tif 000020
【図２０】
0005882745.tif 000021