(57)【要約】【課題】  人物等の所定の被写体に合焦制御を行う際に、被写体の距離変化の誤判定を少なくし、合焦制御の安定性と精度を高めること。【解決手段】  フォーカスレンズを含む撮像光学系により結像された被写体の光を光電変換して、周期的にフレーム毎の画像信号を出力する撮像素子から得られた各フレームの画像信号から、予め決められた被写体の第１領域を検出する第１の検出手段と、第１領域とは異なる第２領域を検出する第２の検出手段と、複数フレームにおける第１及び第２領域それぞれの大きさの変化に基づいて、被写体までの距離の変化の有無を判断する判断手段と、第１領域の画像信号に基づいて前記フォーカスレンズの焦点状態を表す評価値を求め、該評価値と、判断手段による判断の結果とに基づいて、被写体に合焦するようにフォーカスレンズを駆動するための駆動量を求める演算手段とを有する。【選択図】  図１
2014126857.tif 000002
【特許請求の範囲】
【請求項１】
フォーカスレンズを含む撮像光学系により結像された被写体の光を光電変換して、周期的にフレーム毎の画像信号を出力する撮像素子から得られた各フレームの前記画像信号から、予め決められた被写体の第１領域を検出する第１の検出手段と、
前記撮像素子から得られた各フレームの前記画像信号から、前記第１領域とは異なる前記被写体の第２領域を検出する第２の検出手段と、
複数フレームにおける前記第１領域及び前記第２領域それぞれの大きさの変化に基づいて、前記被写体までの距離の変化の有無を判断する判断手段と、
前記第１領域の画像信号に基づいて前記フォーカスレンズの焦点状態を表す評価値を求め、該評価値と、前記判断手段による判断の結果とに基づいて、前記被写体に合焦するように前記フォーカスレンズを駆動するための駆動量を求める演算手段と
を有することを特徴とする焦点調節装置。
【請求項２】
前記判断手段は、前記大きさの変化に基づいて、前記第１領域と前記第２領域が共に近づいていると判断できる場合に前記被写体が近づいていると判断し、前記第１領域と前記第２領域が共に遠ざかっていると判断できる場合に前記被写体が遠ざかっていると判断することを特徴とする請求項１に記載の焦点調節装置。
【請求項３】
前記判断手段は、
現フレームを含む予め決められた数の複数フレームにおける前記第１領域の大きさの平均が、前記現フレームより前の前記予め決められた数の複数フレームにおける前記第１領域の大きさの平均よりも小さく、且つ、当該２つの平均の差が予め決められた第１の閾値よりも大きい場合に前記第１領域が遠ざかっていると判断し、前記現フレームを含む前記第１領域の大きさの平均が前記現フレームより前の前記第１領域の大きさの平均よりも大きく、且つ、当該２つの平均の差が予め決められた第２の閾値よりも大きい場合に前記第１領域が近づいていると判断し、
現フレームを含む予め決められた数の複数フレームにおける前記第２領域の大きさの平均が、前記現フレームより前の前記予め決められた数の複数フレームにおける前記第２領域の大きさの平均よりも小さく、且つ、当該２つの平均の差が予め決められた第３の閾値よりも大きい場合に前記第２領域が遠ざかっていると判断し、前記現フレームを含む前記第２領域の大きさの平均が前記現フレームより前の前記第２領域の大きさの平均よりも大きく、且つ、当該２つの平均の差が予め決められた第４の閾値よりも大きい場合に前記第２領域が近づいていると判断する
ことを特徴とする請求項２に記載の焦点調節装置。
【請求項４】
前記第１及び第２の閾値を、前記撮像光学系の焦点距離に基づいて決定する決定手段を更に有することを特徴とする請求項３に記載の焦点調節装置。
【請求項５】
前記判断手段は、更に、前記第１領域及び第２領域の位置の動きを検出し、該検出した動きが予め決められた周期的な動きをしていない場合に、前記演算手段は、前記判断手段による前記被写体までの距離の変化の有無の判断の結果を用いずに、前記駆動量を求めることを特徴とする請求項１乃至４のいずれか１項に記載の焦点調節装置。
【請求項６】
前記被写体は人物であって、前記第１領域は前記人物の顔領域、前記第２領域は前記人物の人体領域であることを特徴とする請求項１乃至５のいずれか１項に記載の焦点調節装置。
【請求項７】
前記撮像素子と、
請求項１乃至６のいずれか１項に記載の焦点調節装置と
を有することを特徴とする撮像装置。
【請求項８】
前記撮像光学系を更に有することを特徴とする請求項７に記載の撮像装置。
【請求項９】
フォーカスレンズを含む撮像光学系により結像された被写体の光を光電変換して、周期的にフレーム毎の画像信号を出力する撮像素子を含む撮像装置における焦点調節方法であって、
第１の検出手段が、前記撮像素子から得られた各フレームの前記画像信号から、予め決められた被写体の第１領域を検出する第１の検出工程と、
第２の検出手段が、前記撮像素子から得られた各フレームの前記画像信号から、前記第１領域とは異なる前記被写体の第２領域を検出する第２の検出工程と、
判断手段が、複数フレームにおける前記第１領域及び前記第２領域それぞれの大きさの変化に基づいて、前記被写体までの距離の変化の有無を判断する判断工程と、
演算手段が、前記第１領域の画像信号に基づいて前記フォーカスレンズの焦点状態を表す評価値を求め、該評価値と、前記判断手段による判断の結果とに基づいて、前記被写体に合焦するように前記フォーカスレンズを駆動するための駆動量を求める演算工程と
を有することを特徴とする焦点調節方法。
【請求項１０】
前記判断工程では、前記大きさの変化に基づいて、前記第１領域と前記第２領域が共に近づいていると判断できる場合に前記被写体が近づいていると判断し、前記第１領域と前記第２領域が共に遠ざかっていると判断できる場合に前記被写体が遠ざかっていると判断することを特徴とする請求項９に記載の焦点調節方法。
【請求項１１】
前記判断工程では、
現フレームを含む予め決められた数の複数フレームにおける前記第１領域の大きさの平均が、前記現フレームより前の前記予め決められた数の複数フレームにおける前記第１領域の大きさの平均よりも小さく、且つ、当該２つの平均の差が予め決められた第１の閾値よりも大きい場合に前記第１領域が遠ざかっていると判断し、前記現フレームを含む前記第１領域の大きさの平均が前記現フレームより前の前記第１領域の大きさの平均よりも大きく、且つ、当該２つの平均の差が予め決められた第２の閾値よりも大きい場合に前記第１領域が近づいていると判断し、
現フレームを含む予め決められた数の複数フレームにおける前記第２領域の大きさの平均が、前記現フレームより前の前記予め決められた数の複数フレームにおける前記第２領域の大きさの平均よりも小さく、且つ、当該２つの平均の差が予め決められた第３の閾値よりも大きい場合に前記第２領域が遠ざかっていると判断し、前記現フレームを含む前記第２領域の大きさの平均が前記現フレームより前の前記第２領域の大きさの平均よりも大きく、且つ、当該２つの平均の差が予め決められた第４の閾値よりも大きい場合に前記第２領域が近づいていると判断する
ことを特徴とする請求項１０に記載の焦点調節方法。
【請求項１２】
前記第１及び第２の閾値を、前記撮像光学系の焦点距離に基づいて決定する決定工程を更に有することを特徴とする請求項１１に記載の焦点調節方法。
【請求項１３】
前記判断工程では、更に、前記第１領域及び第２領域の位置の動きを検出し、該検出した動きが予め決められた周期的な動きをしていない場合に、前記演算工程では、前記判断工程で得られた前記被写体までの距離の変化の有無の判断の結果を用いずに、前記駆動量を求めることを特徴とする請求項９乃至１２のいずれか１項に記載の焦点調節方法。
【請求項１４】
前記被写体は人物であって、前記第１領域は前記人物の顔領域、前記第２領域は前記人物の人体領域であることを特徴とする請求項９乃至１３のいずれか１項に記載の焦点調節方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像対象に人物などの予め定められた被写体を含む場合に、その特徴部（顔部や体部など）を抽出し、その結果を考慮して焦点調節を行う撮像装置における焦点調節装置及び方法に関する。
【背景技術】
【０００２】
ビデオカメラ等の自動焦点調節であるオートフォーカス（ＡＦ）制御では、ＴＶ−ＡＦ方式が主流である。ＴＶ−ＡＦ方式では、被写体からの光を撮像素子を用いて光電変換することにより生成された映像信号のうち、特定の領域における映像信号の鮮鋭度（コントラスト状態）を示すＡＦ評価値信号を生成する。そして、生成したＡＦ評価値信号が最大となるフォーカスレンズの位置を探索する。しかしながら、顔検出機能を有する撮像装置において、人物、特に顔を被写体として撮影する場合、一般的に人の顔はコントラストが低いため、十分なＡＦ評価値を得にくい。よって、被写体との距離の変化が発生した場合などは、ＡＦ評価値の変化では合焦方向の特定が困難であるため、被写体に対してフォーカスレンズが追従できずに被写体像がボケてしまうことがあった。
【０００３】
このような問題を解決するために、次のような方法が提案されている。まず、検出された顔領域の大きさ（以後、「顔サイズ」と呼ぶ。）を比較し、顔サイズに増減が発生した場合は、被写体が至近または無限側の方向へ移動したと判定し、被写体を追従するようにフォーカスレンズを駆動する（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−３１７６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、検出された顔サイズは撮影パラメータや被写体の状況あるいは顔領域の検出精度によりバラつく。そのため、単純に増減を見ただけでは、被写体の距離変化の方向を誤判定してしまったり、被写体の距離変化がないのに不必要に距離変化があったと誤判定を行ってしまうことで、オートフォーカスの精度が低下することがある。
【０００６】
本発明は上記問題点を鑑みてなされたものであり、人物等の所定の被写体に合焦制御を行う際に、被写体の距離変化の誤判定を少なくし、合焦制御の安定性と精度を高めることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の焦点調節装置は、フォーカスレンズを含む撮像光学系により結像された被写体の光を光電変換して、周期的にフレーム毎の画像信号を出力する撮像素子から得られた各フレームの前記画像信号から、予め決められた被写体の第１領域を検出する第１の検出手段と、前記撮像素子から得られた各フレームの前記画像信号から、前記第１領域とは異なる前記被写体の第２領域を検出する第２の検出手段と、複数フレームにおける前記第１領域及び前記第２領域それぞれの大きさの変化に基づいて、前記被写体までの距離の変化の有無を判断する判断手段と、前記第１領域の画像信号に基づいて前記フォーカスレンズの焦点状態を表す評価値を求め、該評価値と、前記判断手段による判断の結果とに基づいて、前記被写体に合焦するように前記フォーカスレンズを駆動するための駆動量を求める演算手段とを有する。
【発明の効果】
【０００８】
本発明によれば、人物等の所定の被写体に合焦制御を行う際に、被写体の距離変化の誤判定を少なくし、合焦制御の安定性と精度を高めることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態にかかる自動焦点調節装置を含む撮像装置の構成を示すブロック図。
【図２】実施形態におけるＡＦ処理を示すフローチャート。
【図３】実施形態における微小駆動動作を示すフローチャート。
【図４】図３とともに実施形態における微小駆動動作を示す図。
【図５】実施形態における微小駆動動作を示す図。
【図６】実施形態における山登り駆動動作を示すフローチャート。
【図７】実施形態における山登り駆動動作を示す図。
【図８】実施形態における移動判定処理を示すフローチャート。
【図９】第１の実施形態における顔検出結果に基づく移動判定処理を示すフローチャート。
【図１０】第１の実施形態における人体検出結果に基づく移動判定処理を示すフローチャート。
【図１１】第１の実施形態における移動判定閾値設定処理を示すフローチャート。
【図１２】第１の実施形態におけるズームレンズ位置に応じた閾値を示す図。
【図１３】第１の実施形態における相関判定処理を示すフローチャート。
【図１４】第１の実施形態における終了判定処理を示すフローチャート。
【図１５】第２の実施形態における顔検出結果に基づく移動判定処理を示すフローチャート。
【図１６】第２の実施形態における揺れ検出処理を示すフローチャート。
【図１７】人物が近付いてくるときの顔や体の振動の特徴を説明する図。
【図１８】第２の実施形態における揺れ検出処理を説明する図。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明を実施するための最良の形態を詳細に説明する。
【００１１】
＜第１の実施形態＞
まず、本発明の第１の実施形態について説明する。図１は、本第１の実施形態における自動焦点調節装置を含むビデオカメラなどの撮像装置の構成を示す。なお、本実施形態では、ビデオカメラを例にとって説明するが、本発明はデジタルスチルカメラ等の他の撮像装置にも適用することができる。
【００１２】
図１において、被写体からの光を結像するための撮像光学系は、第１固定レンズ１０１、光軸方向に移動して変倍を行う変倍レンズ１０２、絞り１０３、第２固定レンズ１０４、フォーカスレンズ１０５を含む。フォーカスレンズ１０５は、変倍に伴う焦点面の移動を補正する機能とフォーカシングの機能とを兼ね備えている。撮像素子１０６は、ＣＣＤセンサやＣＭＯＳセンサ等により構成され、撮像光学系により結像された光を光電変換して電気信号に変換して出力する。動画を撮影する際には、フレーム毎の電気信号を周期的に出力する。ＣＤＳ／ＡＧＣ回路１０７は、撮像素子１０６の出力をサンプリングし、ゲイン調整する。カメラ信号処理回路１０８は、ＣＤＳ／ＡＧＣ回路１０７からの出力信号に対して各種の画像処理を施し、映像信号を生成する。モニタ１０９はＬＣＤ等により構成され、カメラ信号処理回路１０８からの映像信号を表示する。記録部１１５は、カメラ信号処理回路１０８からの映像信号を磁気テープ、光ディスク、半導体メモリ等の記録媒体に記録する。
【００１３】
ズーム駆動源１１０は、変倍レンズ１０２を移動させ、フォーカシング駆動源１１１は、フォーカスレンズ１０５を移動させる。ズーム駆動源１１０及びフォーカシング駆動源１１１は、それぞれ、ステッピングモータ、ＤＣモータ、振動型モータ、及びボイスコイルモータ等のアクチュエータにより構成される。
【００１４】
ＡＦゲート１１２は、ＣＤＳ／ＡＧＣ回路１０７からの全画素の出力信号のうち、焦点検出に用いられる領域（焦点検出領域）の信号のみを通す。ＡＦ信号処理回路１１３は、ＡＦゲート１１２を通過した信号から高周波成分を抽出してＡＦ評価値を生成する。生成されたＡＦ評価値は、カメラ／ＡＦマイコン１１４に出力される。ＡＦ評価値は、撮像素子１０６からの出力信号に基づいて生成される映像の鮮鋭度（コントラスト状態）を表すものであるが、鮮鋭度は撮像光学系の焦点状態（合焦の程度）によって変化するので、結果的に撮像光学系の焦点状態を表す信号となる。カメラ／ＡＦマイコン１１４は、ビデオカメラ全体の動作の制御を司るとともに、ＡＦ評価値に基づいて、フォーカシング駆動源１１１を制御してフォーカスレンズ１０５を移動させ、焦点調節を行うＡＦ制御をも行う。
【００１５】
顔検出部１１６（第１の検出手段）は、画像信号に対して公知の顔検出処理を施し、撮影画面内の人物の顔領域（第１領域）を検出する。すなわち、顔検出部１１６は、電気信号から予め定められた被写体（ここでは顔）を検出する。その検出結果はカメラ／ＡＦマイコン１１４に送信される。顔検出処理としては、例えば、画像データで表される各画素の階調色から肌色領域を抽出し、予め用意する顔の輪郭プレートとのマッチング度で顔を検出する方法がある。他に、周知のパターン認識技術を用いて、目、鼻、口等の顔の特徴点を抽出することで顔検出を行う方法等があるが、本発明は顔検出処理の方法により制限されるものではなく、どのような方法を用いてもよい。また、顔に限るものではなく、人物の顔以外の被写体であってもよい。
【００１６】
人体検出部１１７（第２の検出手段）は、目的とする被写体領域を人体の上半身領域（第２領域）として、画像中から所定の領域を検出する。すなわち、人体検出部１１７は、電気信号から予め定められた被写体（ここでは人体領域）を検出する。人体検出部１１７における検出方法として、特開２００９−２１１３１１号公報により記述されている方法を例として挙げる。本実施形態における人体検出では、局所的な上半身の輪郭のエッジ強度を局所特徴量として検出し、検出結果はカメラ／ＡＦマイコン１１４に送信される。画像から特徴量を抽出する方法としては、Ｓｏｂｅｌフィルタ、Ｐｒｅｗｉｔｔフィルタ、Ｈａａｒフィルタなど様々な方法がある。抽出された局所特徴量について、人物判別器で上半身と非上半身を判別する。人物判別器における判別は、ＡｄａＢｏｏｓｔ学習などの機械学習に基づき実施される。カメラ／ＡＦマイコン１１４は、顔検出部１１６の検出結果及び人体検出部１１７の検出結果に基づき、撮影画面内の顔領域を含む位置に焦点検出領域を設定するようにＡＦゲート１１２へ情報を送信する。
【００１７】
また、カメラ／ＡＦマイコン１１４は、顔検出結果変化判定部１２０、人体検出結果変化判定部１２１、相関判定部１２２を備える。顔検出結果変化判定部１２０は、顔検出部１１６で検出した顔領域の位置／サイズが所定時間において変化しているか否かに応じて被写体の距離変化があるか否かを判定する。そして、距離変化があると判定した場合には、顔領域の位置／サイズの変化に基づいて被写体の距離変化に追従させるＡＦ制御を行う。人体検出結果変化判定部１２１は、人体検出部１１７で検出した人体領域の位置／サイズが所定時間において変化しているか否かに応じて被写体の距離変化があるか否かを判定する。相関判定部１２２は、顔検出結果変化判定部１２０と人体検出結果変化判定部１２１の判定結果に相関があるか否かを判定する。更に、相関判定部１２２は、顔検出結果変化判定部１２０で変化があると判定したとしても、人体検出結果変化判定部１２１の判定結果との相関がない場合には、上記距離変化に追従させるＡＦ制御を制限あるいは禁止する。
【００１８】
絞り駆動源１１８は、絞り１０３を駆動させるためのアクチュエータ及びそのドライバを含む。ＣＤＳ／ＡＧＣ回路１０７によって読み出された信号からは、画面内の測光枠の輝度値を取得するため、輝度情報検波・演算回路１１９により測光値が取得され、測光した測光値が演算により正規化される。そして、カメラ／ＡＦマイコン１１４で、測光値と適正な露出が得られるように設定された目標値との差分が算出される。その後、算出した差分から絞りの補正駆動量を算出し、カメラ／ＡＦマイコン１１４により絞り駆動源１１８の駆動が制御される。
【００１９】
次に、カメラ／ＡＦマイコン１１４で行われるＡＦ制御について、図２を用いて説明する。このＡＦ制御は、カメラ／ＡＦマイコン１１４内に格納されたコンピュータプログラムに従って実行される。まず、Ｓ２０２で微小駆動動作を行い、合焦か否かを判定し、合焦でなければどちらの方向に合焦点があるかの方向判別を行う。なお、Ｓ２０２で行われる微小駆動動作の詳細は後述する。
【００２０】
Ｓ２０３において、Ｓ２０２で合焦と判定された場合はＳ２０９に進んで合焦処理を行い、合焦と判定されなかった場合はＳ２０４へ進む。Ｓ２０４においては、Ｓ２０２の微小駆動動作の結果、方向判別ができている場合はＳ２０５に進んで山登り駆動動作を行い、Ｓ２０２で方向判別ができていない場合はＳ２０２へ戻って微小駆動動作を継続する。Ｓ２０５では、ＡＦ評価値が大きくなる方向へ高速でレンズを駆動させる山登り駆動をする。なお、Ｓ２０５で行われる山登り駆動の詳細は後述する。
【００２１】
Ｓ２０６において、ＡＦ評価値のピークを越えたかどうかを判定し、ＡＦ評価値のピークを越えたと判定されない場合はＳ２０５へ戻って山登り駆動を継続する。一方、ＡＦ評価値のピークを越えたと判定された場合はＳ２０７へ進んで、山登り駆動中のＡＦ評価値がピークとなるレンズ位置にフォーカスレンズを戻す。Ｓ２０８においてピークのレンズ位置に戻ったと判断した場合はＳ２０２へ戻って再び微小駆動動作を行い、ピークのレンズ位置に戻っていないと判断した場合はＳ２０７へ戻ってピークのレンズ位置に戻す動作を継続する。
【００２２】
次に、Ｓ２０９からの合焦動作について説明する。Ｓ２０９ではＡＦ評価値を保持し、フォーカスレンズ１０５を駆動せずに所定時間経過後、Ｓ２１０において最新のＡＦ評価値を取得する。Ｓ２１１では、Ｓ２０９で保持したＡＦ評価値とＳ２１０で新たに取得したＡＦ評価値とを比較し、所定レベル以上差があれば再起動と判定し、Ｓ２０２に戻って微小駆動動作を再開する。Ｓ２１１で再起動と判定されていなければＳ２１２に進んでフォーカスレンズ１０５を停止して一定時間待った後Ｓ２１０へ戻り、再起動判定を継続する。
【００２３】
次に、Ｓ２０２で行われる微小駆動動作について図３及び図４を参照して説明する。微小駆動動作は、カメラ／ＡＦマイコン１１４内に格納されたコンピュータプログラムに従って実行される。Ｓ３０２において最新フレームの画像から顔検出位置／大きさ（以後、「顔位置／顔サイズ」と呼ぶ。）を取得し、Ｓ３０３において最新フレームの画像から人体検出位置／大きさ（以後、「人体位置／人体サイズ」と呼ぶ。）を取得する。Ｓ３０４では、Ｓ３０２及びＳ３０３で取得した情報に基づいて焦点検出領域であるＡＦ枠を設定し、ＡＦ評価値を取得する。本第１の実施形態では、顔が検出されている場合は、顔位置／顔サイズに基づいてＡＦ枠を設定する。一方、顔が検出されておらず人体のみ検出されている場合は、人体検出結果から被写体の顔の位置／サイズを推定し、その推定位置／サイズに基づいてＡＦ枠を設定する。この推定方法としては、例えば、顔検出部１１６と人体検出部１１７との検出領域の関係に基づき、線形変換により推定されるものとする。言い換えると、人体検出部１１７で取得された検出領域のうち、所定の位置又は（及び）大きさによって定義された領域を顔領域と推定するものとする。なお、上記設定は顔に重点を置いた設定であるが、これに限らず人体位置／人体サイズに基づいてＡＦ枠を設定するようにしてもよい。
【００２４】
Ｓ３０５では、Ｓ３０２及びＳ３０３で取得された顔位置／顔サイズ、人体位置／人体サイズの変化に基づいて被写体の移動を判定する処理を行う。この処理は本発明の特徴とするところであるが、図７を用いて後で詳細に説明する。
【００２５】
Ｓ３０６では、被写体の至近または無限側の方向への移動があったかを判定し、被写体の移動があった場合はＳ３０７へ進み、そうでなければＳ３１７へ進む。本実施形態では、移動判定において監視する物理量は、顔検出部１１６により得られる人物の顔サイズの変化量である。よって、後述する様に、顔サイズの変化量が所定量以内である場合には被写体の距離変化がないと判断され、変化量が所定量より大きい場合には被写体の距離変化があると判断される。そして、カメラ／ＡＦマイコン１１４は、被写体の距離変化が無いと判断されたときは、追従制御を禁止して焦点調節を行い、被写体の距離変化があると判断されたときは、追従制御を許可して焦点調節を行う。
【００２６】
なお、検出した顔サイズは顔検出部１１６に入力する画像（撮影条件や解像度等）によってばらつくため、顔サイズの変化量のみで移動判定をする場合、移動しているか否かの判定するための顔サイズの閾値設定が難しくなる。例えば、検出する顔サイズのばらつきの影響で誤判定しないように、変化量に対する判定の閾値を厳しく（大きく）すると、たとえば被写体がゆっくり移動していた場合に移動していないと判定してしまう。また、判定の閾値を緩く（小さく）してしまうと、被写体が移動していないのに移動したと誤判定してしまうことが考えられる。そこで、本発明では、顔以外の検出結果、本第１の実施形態では人体検出結果との相関を見ることで誤判定を抑える。
【００２７】
Ｓ３０７では、移動判定の結果が近づきか遠ざかりかを判定する。近づきの場合は、Ｓ３１５へ進み至近方向への山登りを決定し、Ｓ３１２へ進み、方向判別できたとして処理を終了する。そうでなければＳ３１６へ進み無限方向への山登りを決定し、Ｓ３１２へ進み、方向判別できたとして処理を終了する。被写体の移動方向に応じて山登りの方向を切り替える駆動が、被写体の追従駆動ないし追従制御であり、追従駆動を行うことにより、ＡＦの応答性と精度が向上する。
【００２８】
一方、Ｓ３１７においては、駆動周期と駆動ディレイ時間を求める。駆動ディレイ時間とは、垂直同期信号の出力からフォーカスレンズの駆動を開始するまでの時間である。
【００２９】
Ｓ３１８では、現在のＭｏｄｅが０か判別する。０であればＳ３１９へ進み、後述の至近側のフォーカスレンズ位置における処理を行い、そうでなければＳ３２１へ進む。
【００３０】
［至近側のフォーカスレンズ位置における処理］
Ｓ３１９では、ＡＦ評価値を無限側（無限側にフォーカスレンズがいる時に蓄積したセンサ出力に基づく）ＡＦ評価値として保存する。Ｓ３２０では、Ｍｏｄｅを加算（４以上になった場合は０に戻す）して、Ｓ３１１へ進む。
【００３１】
Ｓ３２１では、現在のＭｏｄｅが１であるか判別する。１であればＳ３２２へ進み、後述のフォーカスレンズを無限方向に駆動する処理を行う。１でなければＳ３２８へ進む。
【００３２】
［フォーカスレンズを無限方向に駆動する処理］
Ｓ３２２では、振動振幅、中心移動振幅を演算する。ここでは詳しく述べないが、焦点深度を基準に、深度が浅い時は振幅を小さく、深度が深いときは振幅を大きくするのが一般的である。
【００３３】
Ｓ３２３では、前述のＭｏｄｅ＝０における無限側ＡＦ評価値と後述のＭｏｄｅ＝２における至近側ＡＦ評価値を比較する。無限側ＡＦ評価値が至近側ＡＦ評価値よりも大きければＳ３２４へ進み、そうでなければＳ３２５へ進む。
【００３４】
Ｓ３２４では、駆動振幅を、
駆動振幅  ＝  振動振幅  ＋  中心移動振幅
とする。
【００３５】
一方、Ｓ３２５では、駆動振幅を、
駆動振幅  ＝  振動振幅
とする。
【００３６】
Ｓ３２６では、無限方向へＳ３２４あるいはＳ３２５で決められた駆動振幅で駆動することを決定する。
【００３７】
Ｓ３２７では、Ｍｏｄｅを加算（４以上になった場合は０に戻す）して、Ｓ３１１へ進む。
【００３８】
Ｓ３２８では、現在のＭｏｄｅが２か判別する。２であればＳ３２９へ進み、後述の無限側のフォーカスレンズ位置における処理を行う。２でなければＳ３３１へ進む。
【００３９】
［無限側のフォーカスレンズ位置における処理］
Ｓ３２９では、ＡＦ評価値を至近側（至近側にフォーカスレンズがいる時に蓄積したセンサ出力に基づく）ＡＦ評価値として保存する。Ｓ３３０でＭｏｄｅを加算（４以上になった場合は０に戻す）して、Ｓ３１１へ進む。
【００４０】
［フォーカスレンズを至近方向に駆動する処理］
一方、Ｓ３３１では、振動振幅、中心移動振幅を演算する。ここでは詳しく述べないが、焦点深度を基準に、深度が浅い時は振幅を小さく、深度が深いときは振幅を大きくするのが一般的である。
【００４１】
Ｓ３３２では、前述のＭｏｄｅ＝０における無限側ＡＦ評価値と前述のＭｏｄｅ＝２における至近側ＡＦ評価値を比較する。至近側ＡＦ評価値が無限側ＡＦ評価値よりも大きければＳ３３３へ進み、そうでなければＳ３３４へ進む。
【００４２】
Ｓ３３３では、駆動振幅を、
駆動振幅  ＝  振動振幅  ＋  中心移動振幅
とする。
【００４３】
一方、Ｓ３３４では、駆動振幅を、
駆動振幅  ＝  振動振幅
とする。
【００４４】
Ｓ３３５では至近方向へＳ３３３あるいはＳ３３４で決められた駆動振幅で駆動することを決定する。
【００４５】
Ｓ３３６では、Ｍｏｄｅを加算（４以上になった場合は０に戻す）して、Ｓ３１１へ進む。
【００４６】
上記フォーカスレンズ動作の時間経過を示したのが図５である。同図では、撮像素子１０６としてＣＭＯＳセンサを用いた場合を例示している。横軸は時間で、最上部にある下に凸の周期は映像信号の垂直同期信号、その下のひし形はＣＭＯＳセンサの蓄積時間、その下のＥＶｘはそのタイミングで得られるＡＦ評価値、一番下はフォーカスレンズ位置である。
【００４７】
ここで、蓄積時間３の間にＣＭＯＳセンサに蓄積された電荷に対するＡＦ評価値ＥＶ３が時刻Ｔ３で取り込まれ、蓄積時間５の間にＣＭＯＳセンサに蓄積された電荷に対するＡＦ評価値ＥＶ５が時刻Ｔ５で取り込まれる。時刻Ｔ６では、ＡＦ評価値ＥＶ３、ＥＶ５を比較し、ＥＶ５＞ＥＶ３であれば振動中心を移動し、一方ＥＶ３＞ＥＶ５であれば振動中心を移動しない。このようにして、合焦方向の判別と合焦の判定を行っている。なお、本実施形態では、微小駆動の振動中心位置を移動する際に、該移動方向にフォーカスレンズを駆動する際の駆動振幅を大きくする方法を用いているが、これに限定されない。例えば、振動中心位置を移動する方向と逆方向にフォーカスレンズを駆動する際の駆動振幅を小さくする方法を用いてもよい。
【００４８】
図３の説明に戻る。Ｓ３１１においては、所定回数連続して合焦方向と判断される方向が同一であればＳ３１２へ進み、方向判別できたとして処理を終了する。この場合、図２のＳ２０５の山登り駆動へ移行することになる。一方、所定回数連続して同一方向に進んでいなければＳ３１３へ進む。Ｓ３１３においては、所定回数フォーカスレンズ１０５が所定範囲で往復を繰り返していればＳ３１４へ進み、合焦判別できたとして処理を終了する。この場合、図２のＳ２０９以降の処理へ移行することになる。また、所定時間フォーカスレンズ１０５が所定範囲にいなければ処理を終了する。この場合、図２のＳ２０３、Ｓ２０４を経て、図２のＳ２０２の微小駆動動作に戻ることになる。
【００４９】
次に、図２のＳ２０５で行われる山登り駆動動作について図６を用いて説明する。山登り駆動動作は、カメラ／ＡＦマイコン１１４内に格納されたコンピュータプログラムに従って実行される。Ｓ６０２で最新の顔位置／顔サイズを取得し、Ｓ６０３で最新の人体位置／人体サイズを取得する。Ｓ６０４では、Ｓ６０２及びＳ６０３で取得した情報に基づいて焦点検出領域であるＡＦ枠を設定し、ＡＦ評価値を取得する。本第１の実施形態では、微小駆動と同様に、顔が検出されている場合は顔位置／顔サイズに基づいてＡＦ枠を設定し、顔が検出されておらず人体のみ検出されている場合は人体位置／人体サイズから被写体の顔の位置／サイズを推定する。そして、その推定位置／推定サイズに基づいてＡＦ枠を設定するものとする。
【００５０】
Ｓ６０５において、Ｓ６０４で取り込んだＡＦ評価値が前フレームのＡＦ評価値以上であればＳ６０６へ進み、Ｓ６０４で取り込んだＡＦ評価値が前フレームのＡＦ評価値より小さければＳ６０７へ進む。Ｓ６０６では順方向（前回と同じ方向）に所定の速度でフォーカスレンズ１０５を駆動して処理を終了する。一方、Ｓ６０７においては、ＡＦ評価値がピークを越えて減っていればＳ６０８へ進み、ピークを越えたとして、処理を終了する。この場合、図２のＳ２０６〜Ｓ２０８を経てＳ２０２の微小駆動へ移行することになる。一方、Ｓ６０７でＡＦ評価値がピークを越えて減っているのでなければＳ６０９へ進み、逆方向に所定の速度でフォーカスレンズ１０５を駆動して処理を終了する。
【００５１】
上記レンズ動作を説明したのが図７である。ここで、Ａの場合は、ＡＦ評価値がピークを越えて減少しているので、合焦点があるとして山登り駆動動作を終了し、微小駆動動作に移行する。一方、Ｂの場合は、ＡＦ評価値がピーク無しで減少しているので、方向を間違えたものとして反転し、山登り駆動動作を続ける。一定時間あたりの移動量、つまりは駆動速度は微小駆動の駆動速度よりも大きな値となる。なお、顔検出の大きさが連続的に増加している場合には、山登り駆動時の駆動速度を大きく設定することで、ＡＦの応答性を向上させることができる。
【００５２】
以上説明したように、カメラ／ＡＦマイコン１１４は、再起動判定→微小駆動→山登り駆動→微小駆動→再起動判定を繰り返しながらフォーカスレンズ１０５を移動させＡＦ評価値を大きくするように制御を行っている。
【００５３】
次に、本発明の特徴である被写体の至近または無限方向の移動判定処理、すなわち、撮像装置から被写体までの距離の変化の有無を判定する処理について、図８〜図１４を用いて説明する。ここでは、まず、図３のＳ３０５で行われる移動判定処理を図８を用いて説明する。Ｓ８０２において、移動判定フラグがセットされているか否かを判定する。後述の処理で決定される移動判定フラグがセットされている場合はＳ８０３に遷移し、セットされていない場合はＳ８０４に遷移する。Ｓ８０４では、被写体の移動判定を行うにあたり、所定時間における顔検出結果の変化に基づいて被写体が移動しているか否か（被写体までの距離の変化の有無）を判定する処理を行う。Ｓ８０５では、被写体の移動判定を行うにあたり、所定時間における人体検出結果の変化に基づいて被写体が移動しているか否かを判定する処理を行う。Ｓ８０６では、Ｓ８０４及びＳ８０５における被写体の移動判定結果に相関があるか否かを判定し、最終的に被写体が移動しているか否かを決定し、Ｓ８０７へ遷移し処理を終了する。
【００５４】
次に図８のＳ８０４の顔検出結果に基づく移動判定処理を図９を用いて説明する。この移動判定処理は、カメラ／ＡＦマイコン１１４内の顔検出結果変化判定部１２０により実行される。本実施形態では、顔検出結果に基づく移動判定処理において監視する変化量の対象は、顔検出部１１６により得られる、複数フレームにおける人物の顔サイズの変化量として説明する。Ｓ９０２において、検出された顔サイズの平均を算出する処理を行う。予め決められた数の複数フレームそれぞれから検出された顔サイズはカメラ／ＡＦマイコン１１４内のメモリに蓄積され、移動平均法を用いて蓄積個数が１０ずつの平均が算出される。平均された顔サイズは、FaceAveSizeに格納する。このFaceAveSizeは２０個の配列を持ち、平均値が算出される毎にFaceAveSize[0]〜[19]に履歴が保存される。ここでは、FaceAveSize[0]に、現フレームを含む最新の平均値を格納することとする。ただし、移動平均法に用いる顔サイズの個数および平均顔サイズの履歴の配列個数はこれに限ったものではない。
【００５５】
Ｓ９０３では、顔基準サイズが設定されているかの判定を行う。顔基準サイズFaceBaseSizeとは、顔サイズに変化があったか否かの判定を行う際の基準となる顔のサイズのことである。顔基準サイズFaceBaseSizeが０の場合は値が設定されていないためＳ９１５に遷移し、FaceBaseSizeに最新の平均顔サイズFaceAveSize[0]を代入して、処理を終了する。
【００５６】
顔基準サイズFaceBaseSizeが０でない場合は、Ｓ９０４に遷移する。Ｓ９０４では、移動判定閾値設定処理を行う。この処理は、撮影パラメータや被写体の状態に応じて、移動判定に用いる顔のサイズ変化の閾値を設定する処理である。この処理の詳細については、図１１を用いて後述する。続いて、Ｓ９０５では、顔基準サイズFaceBaseSizeと現在の顔サイズFaceAveSize[0]との大きさの比較を行う。現在の顔サイズが小さい場合は、遠ざかりの可能性があるため、Ｓ９０６に遷移する。そうでない場合は、近づきの可能性があるので、Ｓ９０７に遷移する。
【００５７】
Ｓ９０６では、遠ざかりの判定を行う。顔基準サイズFaceBaseSizeと現在の顔サイズFaceAveSize[0]との差がＳ９０４で設定した遠ざかり判定の閾値THfar（第１の閾値）を超えていれば、被写体が遠ざかったと判定してＳ９１３に遷移する。一方、閾値THfarを越えなかった場合は、Ｓ９０８に遷移する。Ｓ９１３では、顔サイズの変化に基づいて被写体が遠ざかった（被写体までの距離が長くなった）と判定したことを意味する顔移動判定フラグの遠ざかりフラグをセットした後、処理を終了する。
【００５８】
Ｓ９０７では、近づきの判定を行う。現在の顔サイズFaceAveSize[0]と顔基準サイズFaceBaseSizeとの差がＳ９０４で設定した近づき判定の閾値THnear（第２の閾値）を超えていれば、被写体が近づいた（被写体までの距離が短くなった）と判定してＳ９１４に遷移する。一方、閾値THnearを越えていない場合は、Ｓ９０８に遷移する。Ｓ９１４では、顔サイズの変化に基づいて被写体が近づいたと判定したことを意味する顔移動判定フラグの近づきフラグをセットした後、処理を終了する。
【００５９】
Ｓ９０８では、顔基準サイズFaceBaseSizeが設定された時に、移動判定を何回繰り返しているかのタイマーFaceJudgeTimerをインクリメントし、Ｓ９０９に遷移する。Ｓ９０９では、タイマーFaceJudgeTimerが移動判定時間の閾値TimerTHを超えたかの判定を行う。この処理は、移動判定を所定時間継続したにも関わらず、被写体の移動が無いと判定された場合に、判定処理を初期化するために行う。本実施形態の一連の処理は、１秒間に６０回の処理を行うシステムを想定しており、移動判定時間は２秒に設定するものとして説明する。よって、移動判定時間の閾値TimerTHには、２秒間に相当する値である１２０を設定し、この値を超えたかの判定を行う。タイマーFaceJudgeTimerが閾値TimerTHを超えている場合は、Ｓ９１０に遷移して初期化処理を行い、そうでない場合は処理を終了する。この場合、Ｓ９０２に戻って移動判定を継続する結果となる。Ｓ９１０ではタイマーFaceJudgeTimerを０に初期化し、Ｓ９１１に遷移する。Ｓ９１１では顔基準サイズFaceBaseSizeを０に初期化し、Ｓ９１２に遷移する。Ｓ９１２では顔移動判定フラグをクリアし、初期化を行う。上記の初期化処理の終了後、処理を終了する。
【００６０】
次に図８のＳ８０５の人体検出結果に基づく移動判定処理を図１０を用いて説明する。この移動判定処理は、カメラ／ＡＦマイコン１１４内の人体検出結果変化判定部１２１により実行される。本実施形態では、人体検出結果に基づく移動判定処理において監視する変化量の対象は、人体検出部１１７により得られる人物の人体サイズの変化量として説明する。Ｓ１００２において、検出された人体サイズの平均を算出する処理を行う。ここでは、顔サイズの平均算出処理と同様に、検出された人体サイズはカメラ／ＡＦマイコン１１４内のメモリに蓄積され、移動平均法を用いて蓄積個数が１０ずつの平均が算出される。平均された人体サイズは、BodyAveSizeに格納する。このBodyAveSizeは２０個の配列を持ち、平均値が算出される毎にBodyAveSize[0]〜[19]に履歴が保存される。ここでは、BodyAveSize[0]に、現フレームを含む最新の平均値を格納することとする。
【００６１】
Ｓ１００３では、人体基準サイズが設定されているかの判定を行う。人体基準サイズBodyBaseSizeとは、人体サイズに変化があったか否かの判定を行う際の基準となる人体のサイズのことである。人体基準サイズBodyBaseSizeが０の場合は、値が設定されていないため、Ｓ１０１５に遷移し、BodyBaseSizeに最新の平均人体サイズBodyAveSize[0]を代入して、処理を終了する。
【００６２】
人体基準サイズBodyBaseSizeが０でない場合は、Ｓ１００４に遷移する。Ｓ１００４では、移動判定閾値設定処理を行う。この処理は、図９のＳ９０４と同様に、撮影パラメータや被写体の状態に応じて、移動判定に用いる人体のサイズ変化の閾値を設定する処理である。この処理の詳細については、図１１を用いて後述する。続いて、Ｓ１００５では、人体基準サイズBodyBaseSizeと現在の人体サイズBodyAveSize[0]との大きさの比較を行う。現在の人体サイズが小さい場合は、遠ざかりの可能性があるため、Ｓ１００６に遷移する。そうでない場合は、近づきの可能性があるので、Ｓ１００７に遷移する。
【００６３】
Ｓ１００６では、遠ざかりの判定を行う。人体基準サイズBodyBaseSizeと現在の人体サイズBodyAveSize[0]との差がＳ１００４で設定した遠ざかり判定の閾値THfar（第３の閾値）を超えていれば、被写体が遠ざかった（被写体までの距離が長くなった）と判定してＳ１０１３に遷移する。一方、閾値THfarを超えなかった場合は、Ｓ１００８に遷移する。Ｓ１０１３では、人体サイズの変化に基づいて被写体が遠ざかったと判定したことを意味する人体移動判定フラグの遠ざかりフラグをセットした後、処理を終了する。
【００６４】
Ｓ１００７では、近づきの判定を行う。現在の人体サイズBodyAveSize[0]と人体基準サイズBodyBaseSizeとの差がＳ１００４で設定した近づき判定の閾値THnear（第４の閾値）を超えていれば、被写体が近づいた（被写体までの距離が短くなった）と判定してＳ１０１４に遷移する。一方、閾値THnearを越えていない場合は、Ｓ１００８に遷移する。Ｓ１０１４では、人体サイズの変化に基づいて被写体が近づいたと判定したことを意味する人体移動判定フラグの近づきフラグをセットした後、処理を終了する。
【００６５】
Ｓ１００８では、人体基準サイズが設定された時に、移動判定を何回繰り返しているかのタイマーBodyJudgeTimerをインクリメントし、Ｓ１００９に遷移する。Ｓ１００９では、タイマーBodyJudgeTimerが移動判定時間の閾値TimerTHを超えたかの判定を行う。この処理は、移動判定を所定時間継続したにも関わらず、被写体の移動が無いと判定された場合に、判定処理を初期化するために行う。顔検出結果に基づく移動判定処理と同様に、移動判定時間の閾値TimerTHには、２秒間に相当する値である１２０を設定し、この値を超えたかの判定を行う。タイマーBodyJudgeTimerが閾値TimerTHを超えている場合は、Ｓ１０１０に遷移して初期化処理を行い、そうでない場合は処理を終了する。Ｓ１０１０ではタイマーBodyJudgeTimerを０に初期化し、Ｓ１０１１に遷移する。Ｓ１０１１では、人体基準サイズBodyBaseSizeを０に初期化し、Ｓ１０１２に遷移する。Ｓ１０１２では、人体移動判定フラグをクリアし初期化を行う。上記の初期化処理の終了後、処理を終了する。
【００６６】
ここで、図９のＳ９０４における移動判定閾値設定処理について図１１を用いて説明する。Ｓ１１０２では、変倍レンズ（ズームレンズ）１０２のレンズ位置を取得する。変倍レンズの駆動源がステップモーターであるとした場合は、そのステップ数であり、レンズがテレ側、ワイド側のどの位置にいるかを判断するために用いる。続いて、Ｓ１１０３において、図１２に示すズームレンズ位置と基準移動判定閾値Thの関係から、現在のズーム位置に応じた基準移動判定閾値Thを取得する。図１２は、縦軸を顔サイズの変化の割合（％）、横軸をズームレンズ位置としている。このズームレンズ位置と基準移動判定閾値Thとの関係は、絞り値Fbaseを一定にした状態で、各ズームレンズ位置（焦点距離）においての被写界深度の前端と顔サイズの変化量の関係から算出したものである。
【００６７】
予め定めた被写体にピントが合っている状態で被写体が移動した場合、被写界深度を超えた時点から画面上にボケが認識され始めるため、基準移動判定閾値は被写界深度よりも小さい値を設定する。これにより、被写体がボケ始める前に、移動の有無を判定し、フォーカスレンズを駆動することが可能になり、被写体への追従性能が向上する。実際の基準移動判定閾値Thの算出の際は、各ズームレンズ位置（焦点距離）に応じた基準移動判定閾値Thのテーブルをカメラ／ＡＦマイコン１１４内に持ち、ズームレンズ位置に対応する閾値Thを決定する。
【００６８】
続いてＳ１１０４において、現在の絞り値Fnoの取得を行う。絞り値は絞り１０３の駆動量からＦ値を取得する。Ｓ１１０５では、基準移動判定閾値Thに対して絞り値に応じた補正を行う。被写界深度は、絞り値に応じて変化するため、取得した現在の絞り値Fnoと図１２の基準移動判定閾値Thを算出した際の絞り値Fbaseを比較する。式（１）に基づいて補正後の移動判定閾値THfaceを算出する。
THface=(現在の絞り値Fno/基準絞り値Fbase)*基準移動判定閾値Th    …（１）
【００６９】
このように、閾値ないし所定量は、被写界深度により決定され、被写体が被写界深度の分を移動した場合の被写体の大きさの変化量よりも小さい量に設定されることを特徴としている。
Ｓ１１０６では、移動判定閾値THfaceを基に、遠ざかり判定と近づき判定の閾値を変更する。例えば顔検出は、目の間隔を基に顔サイズを決定する手法がある。この手法では人物が横を向いた場合に、目の間隔が小さくなることにより、被写体までの距離が変化してないにも関わらず、検出された顔サイズが小さくなってしまい、被写体の遠ざかり検出を行ってしまうことがある。そこで、近づき検出閾値THnearよりも、遠ざかり検出閾値THfarを大きく設定することで、横顔撮影時のサイズ変化による誤判定を低減する。本実施形態では、遠ざかり検出の閾値を１.５倍に大きくしているが、この値は、十分な測定を行い誤判定が軽減される値を設定することとする。このように、閾値ないし所定量は、判別の結果が遠ざかりである場合と近づきである場合とで異なる値が設定され、遠ざかりである場合は、近づきである場合よりも大きい量が設定される。
【００７０】
なお、図１０のＳ１００４における移動判定閾値設定処理は、基本的に図１１の処理と同じであるが、基準移動判定閾値Thのテーブルが顔サイズではなく図１２と同様のズーム位置に対する人体サイズの変化割合（不図示）に基づいて設定する点が異なる。これは、被写体が同じように移動したとしても、顔と人体では検出精度がそれぞれ異なるため、検出されるサイズの変化も異なってくることが考えられるためである。また、本実施形態の人体検出では被写体の頭部の大きさを基準に人体サイズが決まるため、顔検出に比べ横向きになっても、サイズの変化が少ない。そのため、図１１のＳ１１０６のような近付きと遠ざかりで閾値を変更することが必要ではなくなる。
【００７１】
以上が移動判定閾値設定処理であり、近づき検出閾値THnear及び遠ざかり検出閾値THfarを算出する処理である。この処理の際に使用した係数や式は一例であり、これに限定するものではない。また、閾値の変更は、必ずしも上述の全ての変更を含む必要はなく、少なくとも１つの変更を含むものでもよい。
【００７２】
続いて、本実施形態の特徴である図８のＳ８０６で行う相関判定処理について、図１３を用いて説明する。相関判定処理は、カメラ／ＡＦマイコン１１４内の相関判定部１２２により実行される。Ｓ１３０２では、図８のＳ８０４の顔検出結果に基づく移動判定処理において、顔移動判定フラグがセットされているか否かを判定する。セットされている場合はＳ１３０３へ、セットされていない場合はＳ１３０８へ遷移し、最終的な移動判定フラグをクリアして処理を終了する。本実施形態では、被写体追従制御は顔サイズが変化した場合を前提に行うことを想定しているため、顔検出に基づく移動判定がなされない場合には、被移動判定フラグをクリアするが、これに限らず人体検出結果を優先して判定してもよい。Ｓ１３０３では顔移動判定フラグが近付きか否かを判定し、近付きである場合はＳ１３０４へ、遠ざかりである場合はＳ１３０６へ遷移する。
【００７３】
Ｓ１３０４では、図８のＳ８０５における人体検出結果に基づく移動判定処理において設定された人体移動判定フラグが近付きか否かを判定し、近付きである場合はＳ１３０５へ、遠ざかりあるいはクリアされている場合はＳ１３０８へ遷移する。Ｓ１３０５では顔と人体の移動判定フラグが近付きであり相関があるとして、最終的な移動判定フラグを近付きとしてセットして処理を終了する。Ｓ１３０６では、人体移動判定フラグが遠ざかりか否かを判定し、遠ざかりである場合はＳ１３０７へ、近付きあるいはクリアされている場合はＳ１３０８へ遷移する。Ｓ１３０７では顔と人体の移動判定フラグが遠ざかりであり相関があるとして、最終的な移動判定フラグを遠ざかりとしてセットし処理を終了する。Ｓ１３０８では、最終的な移動判定フラグをクリアして処理を終了する。
【００７４】
次に、図８のＳ８０３における終了判定処理について図１４を用いて説明する。Ｓ１４０２において、移動の終了判定の為に、FaceAveSizeの比較を行う。現在のFaceAveSize[0]と一つ前の履歴であるFaceAveSize[1]との差を求めるため、FaceAveSizeDiff=FaceAveSize[0]-FaceAveSize[1]の計算を行い、Ｓ１４０３に遷移する。Ｓ１４０３では、被写体が近づきの場合はＳ１４０４へ進み、Ｓ１４０４では顔サイズが小さくなる（FaceAveSizeDiffが負の値）場合にＳ１４０５で移動が終了したと判定し、そうでない場合はＳ１４０６で移動が継続していると判定する。被写体が遠ざかりの場合は、Ｓ１４０７へ進み、顔サイズが大きくなる（FaceAveSizeDiffが正の値）場合にＳ１４０８で移動が終了したと判定し、そうでない場合はＳ１４０９で移動が継続していると判定する。Ｓ１４１０では被写体の移動判定が終了したか継続しているかを判定する。終了と判定している場合には、Ｓ１４１１に移動し、移動判定フラグをクリアしたり移動判定に用いる基準サイズFaceBaseSizeやBodyBaseSizeなどの初期化処理を行い、処理を終了する。
【００７５】
以上のように第１の実施形態によれば、顔サイズと人体サイズの変化をそれぞれ監視し、サイズ変化に基づく移動判定に相関がある場合にのみ被写体が移動したと判定することで、誤判定の少ない被写体の移動判定が可能になる。そして、その情報を用いて、予め定めた被写体の大きさの変化に基づいて、その被写体の無限または至近側の移動にフォーカスを追従駆動させることにより、合焦精度を高めることができる。
【００７６】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。上述した第１の実施形態では、顔サイズと人体サイズの変化の相関を見て、被写体の近付き／遠ざかりを判定し、判定結果に応じて被写体に追従させるＡＦ制御への切り替えを行う場合について説明した。本第２の実施形態では、第１の実施形態の処理に加えて、被写体（特に歩いている人物）の顔および人体の検出位置の揺れに基づいて、被写体の近付き／遠ざかりを判定する場合について説明する。
【００７７】
第２の実施形態のカメラシステムの構成は基本的に第１の実施形態で説明したものと同じであるが、以下の点が異なる。即ち、顔検出結果変化判定部１２０および人体検出結果変化判定部１２１では、検出結果のサイズ変化による近付き／遠ざかりを判定に加え、検出した位置の揺れに基づいて判定することを特徴とする。
【００７８】
続いて、第２の実施形態における制御について図１５のフローチャートを用いて説明する。図１５のフローは図９のフローの代わりに行われ、基本的に図９の顔検出結果に基づく移動判定処理のフローと同じであるが、検出された顔の位置に基づいて顔領域の揺れを検出する揺れ検出処理（Ｓ１５０１）とその判定処理（Ｓ１５０２）が加わっている。それ以外の処理は、図９のＳ９０２〜Ｓ９１５と同じなので、同じステップ番号を付し、説明は割愛する。
【００７９】
図１５のＳ１５０１で行う揺れ検出処理を図１６〜図１８を用いて説明する。第２の実施形態では、カメラ／ＡＦマイコン１１４が揺れ検出処理を実行する。揺れ検出処理は、人物がカメラに向かって歩いたり走ったりして近づいて来るときに、顔や体が上下と左右に周期的に振動することに着目する。そして、取得した顔検出位置の結果を横方向と縦方向の座標に分解して、それぞれの方向の位置が振動しているか否かを検出する処理である。まず、人物が歩いたり走ったりしてカメラに向かって近付いてくるときや、カメラから遠ざかるときの顔や体の振動について図１７を用いて説明する。顔検出位置の横方向の座標をｘ座標、縦方向の座標をｙ座標とする。また、画像の左上を原点として、ｘ座標は画像の右端に近付くほど、ｙ座標は画像の下端に近付くほどそれぞれ大きな座標値を取ることとする。第２の実施形態では、観察する被写体の位置を顔検出位置（例えば、顔の中心）とするが、体の他の部位の中心、人物の顔に配置されている器官（目、耳、鼻、口など）のうちの少なくとも２つの器官間の中心位置などであってもよい。
【００８０】
人物が二足歩行する場合、顔や体は左右と上下に揺れる。ここで、検出した顔や体の位置座標の軌跡は、図１７（ａ）に示すような所謂８の字形状や、図１７（ｂ）に示すような所謂Ｕの字形状を描く。図１７（ａ）をｘ座標とｙ座標に分解して時間方向にそれぞれプロットすると、図１７（ｃ）のような軌跡となる。図１７（ｃ）より、縦方向の振動は、横方向の振動の２倍の周波数（２分の１の周期）で振動していることが分かる。したがって、体が左右方向に１往復揺れるとき、上下方向には２往復揺れるという特徴がある。また、図１７（ｃ）のｙ座標の軌跡を例えば１／２周期ずつ遅らせていくと、ｘ、ｙ座標において図１７（ｂ）の軌跡をＡ→Ｂ→Ｃ→Ｄ→Ａ→・・・の順番で周期的に辿ることになる。さらに、ｘ座標の軌跡とｙ座標の軌跡の位相は人物によって異なる。
【００８１】
以上より、人物が歩行しているのを捉える為には、以下の特徴を捉えることが必要である。すなわち、軌跡の形状が図１７（ａ）、（ｂ）に示すものに限らず如何なる様なものであっても、縦方向と横方向に周期的に振動しており且つ縦方向の周期が横方向の周期の１／２であるという特徴である。つまり、検出された被写体の位置が電気信号の映像信号中においてこうした所定の動作特性を満たした場合に、揺れていると判定することができる。以下に、取得した顔検出位置のｘ座標から横方向の揺れを検出するシステムを説明するが、縦方向の揺れを検出するシステムは、取得した顔検出位置のｙ座標から以下のシステムと同じシステムを用いて実現できることは明らかである。以下の説明では、横方向の揺れを検出するシステムと縦方向の揺れを検出するシステムとが異なる場合のみ、縦方向の揺れを検出するシステムについても記述する。
【００８２】
次に、図１５のＳ１５０１で行われる揺れ検出処理について図１６のフローチャートを用いて説明する。Ｓ１６０２において、最新の顔位置／顔サイズ（以下、現在位置／現在顔サイズとする）を取得する。Ｓ１６０３においては、現在位置が、記憶している最大位置よりも大きい座標の場合はＳ１６０５に遷移し、そうでない場合はＳ１６０４に遷移する。Ｓ１６０５において現在位置を最大位置として更新し、Ｓ１６１３に遷移する。一方、Ｓ１６０４において、現在位置が、記憶している最小位置よりも小さい座標の場合はＳ１６０６に遷移し、そうでない場合はＳ１６０７に遷移する。Ｓ１６０６において現在位置を最小位置として更新し、Ｓ１６１３に遷移する。
【００８３】
Ｓ１６０７において、極大位置を検出したか否かの判断を行う。ここで極大位置とは、画像中の右方向に移動している顔の位置が左方向に移動方向を変えた時のｘ座標の最大値である。極大位置の検出方法を具体的に説明する。まず、現在位置と記憶している最大位置との差分を算出する。次に、算出した差分と予め決められた閾値とを比較し、算出した差分が閾値を超えている場合は、記憶している最大位置が極大位置であると判断してＳ１６０８に遷移する。つまり、検出している顔の位置が画像中において、右に移動している状態から左に移動している状態に折り返したと判断する。一方、Ｓ１６０７において、算出した差分が閾値以下である場合は、記憶している最大値は極大値ではないと判断してＳ１６１０に遷移する。ここで、極大位置を検出するために差分と比較される閾値は、現在顔サイズから求める値で、第２の実施形態においては現在顔サイズの１０％の値とする。この値は、十分な測定を行って決定する値であり、撮影環境や表情等の影響により顔検出位置がバラつくことで極大位置を誤判定してしまうことがない値とする。
【００８４】
Ｓ１６０８においては、以降で極小値を探索するために、記憶している最小位置をクリアしてＳ１６０９に遷移する。第２の実施形態では現在位置を最小位置に代入することでクリアとする。ただし、最小位置は設定可能な最大の値でも良いし、ｘ座標の場合は画面の右端、ｙ座標の場合は画面の下端の値を代入してもよい。Ｓ１６０９においては、極大位置Countを開始する。また、既にカウントを開始している場合はカウント値をリセットしてカウントを再開する。ここで、極大位置Countとは、Ｓ１６０７において極大位置が検出されてからの経過時間を計測するための値であり、極大位置Countがカウントアップ中は「所定の期間内に移動方向が右から左に反転した」と判断する。ここで、該所定の期間は第２の実施形態において、横方向に関しては２秒としている。これは、十分な測定を行い、人物の歩行を基準として決定したものである。また、縦方向に関しては横方向のおよそ半分の周期で振動するため、１秒を該所定の期間として設定する。
【００８５】
Ｓ１６１０においては、極小位置を検出したか否かの判断を行う。ここで極小位置とは、画像中の左方向に移動している顔の位置が右方向に移動方向を変えた時のｘ座標の最小値である。極小位置の検出方法を具体的に説明する。まず、現在位置と記憶されている最小位置との差分を算出する。次に、算出した差分と予め決められた閾値とを比較し、算出した差分が閾値を超えている場合は、記憶されている最小位置が極小位置であると判断してＳ１６１１に遷移する。つまり、検出している顔の位置が画像中において、左に移動している状態から右に移動している状態に折り返したと判断する。一方、Ｓ１６１０において、算出した差分が閾値以下である場合は、記憶している最小値は極小値ではないと判断してＳ１６１３に遷移する。ここで、極小位置を検出するために差分と比較される閾値は、現在顔サイズから求める値で、第２の実施形態においては極大位置を検出するための閾値と同様、現在顔サイズの１０％の値とする。
【００８６】
Ｓ１６１１においては、以降で極大値を探索するために、記憶している顔位置の最大位置をクリアしてＳ１６１２に遷移する。第２の実施形態では現在位置を最大位置に代入することでクリアとする。ただし、最大位置は設定可能な最小の値でもよいし、ｘ座標の場合は画面の左端、ｙ座標の場合は画面の上端の値を代入してもよい。Ｓ１６１２においては、極小位置Countを開始する。また、既にカウントを開始している場合はカウント値をリセットしてカウントを再開する。ここで、極小位置Countとは、Ｓ１６１０において極小位置が検出されてからの経過時間を計測するための値であり、極小位置Countがカウントアップ中は「所定の期間内に移動方向が左から右に反転した」と判断する。ここで、該所定の期間は極大位置検出と同様、横方向に関しては２秒、縦方向に関しては１秒を該所定の期間として設定する。
【００８７】
次に、Ｓ１６１３において、極大位置Countが２秒（縦方向の場合は１秒）を超えているか否かを判断する。２秒（縦方向の場合は１秒）を超えている場合はＳ１６１４に遷移し、そうでない場合はＳ１６１６に遷移する。Ｓ１６１４においては、極大位置Countを初期値にクリアしてカウントアップを終了し、Ｓ１６１５に遷移して、極小位置を現在位置で更新してＳ１６１７に遷移する。一方、Ｓ１６１６では、極大位置CountをカウントアップしてＳ１６１７に遷移する。
【００８８】
次に、Ｓ１６１７において、極小位置Countが２秒（縦方向の場合は１秒）を超えているか否かを判断する。２秒（縦方向の場合は１秒）を超えている場合はＳ１６１８に遷移し、そうでない場合はＳ１６２０に遷移する。Ｓ１６１８においては、極小位置Countを初期値にクリアしてカウントアップを終了し、Ｓ１６１９に遷移して、極大位置を現在位置で更新してＳ１６２１に遷移する。一方、Ｓ１６２０では、極小位置CountをカウントアップしてＳ１６２１に遷移する。
【００８９】
次に、Ｓ１６２１において、極大位置Countと極小位置Countとがどちらもカウント中であるか否かを判断する。どちらもカウント中であると判断した場合はＳ１６２２に遷移し、そうでない場合は、Ｓ１６２３に遷移する。Ｓ１６２２では揺れフラグをＯＮにして処理を終了し、Ｓ１６２３では揺れフラグをＯＦＦにして処理を終了し、図１５のＳ１５０１に戻る。次のＳ１５０２では揺れフラグが設定されているか否かを判定し、揺れフラグが設定されている場合はＳ９０３以降の処理へ、設定されていない場合はそのまま処理を終了する。
【００９０】
上記の揺れ検出処理を説明したのが図１８である。まず、T1のタイミングでは、現在位置と最大位置との差分は折り返し検出閾値以上となっている。したがって、T1のタイミングにおいて記憶している最大位置が極大位置であると判断できるため、T1から極大位置Countが開始される。また、T2のタイミングにおいて、現在位置と最小位置との差分が折り返し検出閾値以上となっている。したがって、T2のタイミングにおいて記憶している最小位置が極小位置であると判断できるため、T2から極小位置Countが開始される。次に、T3のタイミングにおいて、現在位置と最大位置との差分は折り返し検出閾値以上となっている。したがって、T3のタイミングにおいて記憶している最大位置が極大位置であると判断できるため、T3において極大位置Countが初期化されカウントが再開される。T4のタイミングにおいては、極小位置Countが閾値を超えるため極小位置Countをクリアしてカウントを終了する。T5のタイミングにおいても、極大位置Countが閾値を超えるため極大位置Countをクリアしてカウントを終了する。以上の処理により図１８中のT2からT4の期間において、極大位置Countと極小位置Countがともにカウント中であるため、該期間では検出している顔が揺れていると判断できる。
【００９１】
以上のように本第２の実施形態では、被写体のサイズに変化が発生した場合であって被写体の揺れを検出している場合には被写体の距離変化があると判断する。他方、サイズに変化が発生した場合であっても被写体の揺れを検出していない場合には被写体の距離変化はないと判断する。そして、被写体の距離変化がないと判断されたときは、追従制御を禁止して焦点調節を行い、被写体の距離変化があると判断されたときは、追従制御を許可して焦点調節を行う。
【００９２】
なお、上記の揺れ検出処理を顔検出だけでなく、人体検出にも適用する場合、図１５のＳ１５０１およびＳ１５０２と同様に、平均した人体サイズ取得後に、検出された人体位置に基づいて揺れ検出を行うようにしてもよい。より具体的には、顔検出結果変化判定部１２０および人体検出結果変化判定部１２１での移動判定において、顔サイズの変化のみで判定をするのではなく、それぞれの検出結果の位置の揺れを検出し、揺れに相関があるか否かも判定に加える。これにより、より誤判定の少ない被写体の移動判定が可能となる。なお、顔と人体では揺れ方が異なることが考えられるため、極大位置および極小位置の検出閾値等を設定する際は、顔に基づく揺れ検出の閾値とは変えることが望ましい。
【００９３】
以上のように、本第２の実施形態では、顔サイズと人体サイズの変化および検出した顔位置及び／または人体位置の揺れ周期をそれぞれ観察し、被写体が揺れていると判断した場合に移動判定を行う。そして、それぞれの結果に基づく移動判定に相関がある場合にのみ被写体が移動したと判定する。これにより、誤判定の少ない被写体（特に歩いている人物）の移動判定が可能になる。そして、その情報を用いて、予め定めた被写体の大きさの変化に基づいて、その被写体の無限方向または至近方向への移動にフォーカスを追従駆動させることにより、合焦精度を高めることができる。
【００９４】
また、同じ被写体の顔位置と人体位置は画面上において近い距離で検出され、また揺れ検出における横方向および縦方向への揺れの方向は大きくはずれない。このことから、揺れの周期だけではなく、それぞれの検出結果の重心位置が所定の距離以上離れないか否かも判定条件に加えれば、主被写体以外の検出結果の影響を受けることなく移動判定ができるため、判定精度が向上する。たとえば、顔検出位置と人体検出位置の重心の移動方向が違う方向に移動していれば、それぞれの検出結果は同一被写体のものではないことが判定でき、誤判定を少なくすることが可能となる。
【００９５】
以上、本発明の好ましい実施形態について説明したが、本発明は上記実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【図１】
2014126857.tif 000003
【図２】
2014126857.tif 000004
【図３】
2014126857.tif 000005
【図４】
2014126857.tif 000006
【図５】
2014126857.tif 000007
【図６】
2014126857.tif 000008
【図７】
2014126857.tif 000009
【図８】
2014126857.tif 000010
【図９】
2014126857.tif 000011
【図１０】
2014126857.tif 000012
【図１１】
2014126857.tif 000013
【図１２】
2014126857.tif 000014
【図１３】
2014126857.tif 000015
【図１４】
2014126857.tif 000016
【図１５】
2014126857.tif 000017
【図１６】
2014126857.tif 000018
【図１７】
2014126857.tif 000019
【図１８】
2014126857.tif 000020