(57)【特許請求の範囲】
【請求項１】
被写体を撮像する撮像手段と、
被写体の顔を認識する際に実行する顔認識処理の内容が各々異なる複数の顔認識モードを備え、該複数の顔認識モードの中から何れかの顔認識モードを設定する顔認識モード設定手段と、
前記撮像手段により撮像された画像データに対して、前記顔認識モード設定手段により設定された顔認識モードに応じた顔認識処理を実行することにより、該撮像された画像データ内にある顔を認識する顔認識手段と、
を備え、
前記顔認識モード設定手段は、設定可能な顔認識モードとして、認識対象となる被写体の種類の違いと、被写体の種類以外の条件の違いとの組み合わせに応じた複数の顔認識モードを含み、
前記顔認識手段は、前記撮像手段により撮像される画像データに基づいて自動的に前記被写体の種類の違いと前記被写体の種類以外の条件の違いとを識別して実行する顔認識処理を選択することを特徴とする撮像装置。
【請求項２】
前記被写体の種類以外の条件の違いは、顔認識処理の条件の違いであり、
前記顔認識手段は、
前記撮像手段により撮像された画像データに対して、前記顔認識モード設定手段により設定された顔認識モードに対応する条件で顔認識処理を実行することにより、該撮像された画像データ内にある顔の中で、該顔認識モードに対応する種類の被写体の顔を認識することを特徴とする請求項１記載の撮像装置。
【請求項３】
前記顔認識処理の条件は、
２次元的に顔を認識する２次元顔認識処理と、３次元的に顔を認識する３次元顔認識処理を含むことを特徴とする請求項１又は２記載の撮像装置。
【請求項４】
前記顔認識モード設定手段は、
ユーザによって選択された顔認識モードを設定することを特徴とする請求項１乃至３の何れかに記載の撮像装置。
【請求項５】
前記顔認識モード設定手段は、
顔認識モードを自動的に選択して設定することを特徴とする請求項１乃至３の何れかに記載の撮像装置。
【請求項６】
前記被写体の種類の違いは、人の顔と人以外の顔であり、
前記顔認識手段は、
前記顔認識モード設定手段により人の顔を対象とした第１の顔認識モードが設定された場合は、人の顔を認識する顔認識処理実行することにより、前記撮像された画像データ内にある人の顔を認識し、前記顔認識モード設定手段により人以外の顔を対象とした第２の顔認識モードが設定された場合は、人以外の種類の顔を認識することを特徴とする請求項１乃至５の何れかに記載の撮像装置。
【請求項７】
前記顔認識処理の条件は、２次元的に顔を認識する条件と、３次元的に顔を認識する条件とを含み、
前記顔認識手段は、
前記顔認識モード設定手段により２次元的に顔を認識する条件に対応した第３の顔認識モードが設定された場合は、２次元的に顔を認識する２次元顔認識処理を実行することにより、前記撮像された画像データ内にある顔を認識し、前記顔認識モード設定手段により３次元的に顔を認識する条件に対応した第４の顔認識モードが設定された場合は、３次元的に顔を認識する３次元顔認識処理を実行することにより、前記撮像された画像データ内にある顔を認識することを特徴とする請求項１乃至６の何れかに記載の撮像装置。
【請求項８】
前記複数の顔認識モードは、顔認識処理を切り換えて実行する第５の顔認識モードを含み、
前記顔認識手段は、
前記顔認識モード設定手段により前記第５の顔認識モードが設定された場合は、人の顔を認識する顔認識処理を実行することにより、前記撮像された画像データ内にある人の顔を認識し、この顔認識処理により人の顔が認識されなかった場合に、人以外の種類の顔を認識する顔認識処理に切り換えて実行することにより、前記撮像された画像データ内にある人以外の種類の顔を認識することを特徴とする請求項１乃至７の何れかに記載の撮像装置。
【請求項９】
前記複数の顔認識モードは、顔認識処理を切り換えて実行する第６の顔認識モードを含み、
前記顔認識手段は、
前記顔認識モード設定手段により前記第６の顔認識モードが設定された場合は、２次元顔認識処理を実行することにより、前記撮像された画像データ内にある人の顔を認識し、この顔認識処理により人の顔が認識されなかった場合に、３次元顔認識処理に切り換えて実行することにより、前記撮像された画像データ内にある人以外の種類の顔を認識することを特徴とする請求項１乃至８の何れかに記載の撮像装置。
【請求項１０】
前記顔認識手段は、
前記顔認識モード設定手段により前記第１の顔認識モードが設定された場合は、前記撮像手段により撮像された画像データに対して、２次元顔認識処理を実行して、該撮像された画像データ内にある人の顔を認識し、前記顔認識モード設定手段により前記第２の顔認識モードが設定された場合は、前記撮像手段により撮像された画像データに基づいて、３次元顔認識処理を実行して、該撮像された画像データ内にある前記顔認識モード設定手段により設定された顔認識モードの種類の顔を認識することを特徴とする請求項６記載の撮像装置。
【請求項１１】
前記第２の顔認識モードは、更に、人以外の複数種類の被写体の各々を認識対象とする複数の顔認識モードに分割され、
前記顔認識手段は、
前記顔認識モード設定手段により前記第１の顔認識モードが設定された場合は、前記撮像手段により撮像された画像データに対して、２次元顔認識処理を実行して、該撮像された画像データ内にある人の顔を認識し、前記顔認識モード設定手段により前記第２の顔認識モードが設定された場合は、該設定された種類の顔検出モードに応じて、実行させる顔認識処理を、２次元顔認識処理と３次元顔認識処理とに切り替えることにより、前記撮像手段により撮像された画像データ内にある前記顔認識モード設定手段により設定された顔認識モードの種類の顔を認識することを特徴とする請求項１０に記載の撮像装置。
【請求項１２】
前記顔認識手段は、
２次元顔認識処理の実行により顔を認識することができなかった場合は、前記撮像手段により撮像された画像データに基づいて、３次元顔認識処理を実行して、該撮像された画像データ内にある顔を認識することを特徴とする請求項１０又は１１記載の撮像装置。
【請求項１３】
前記顔認識手段は、
前記撮像手段により撮像された画像データの全領域、又は、画像データの画角の中央領域、又は、ユーザによって指定された領域の画像データに基づいて、顔認識処理を実行して、該撮像された画像データ内にある顔を認識することを特徴とする請求項１乃至１２の何れかに記載の撮像装置。
【請求項１４】
前記顔認識手段は、
２次元顔認識処理の実行により、顔を認識することができなかったが、顔らしきものが認識できた場合は、前記撮像手段により撮像された画像データの該顔らしきものがあると認識された領域の画像データに基づいて、３次元顔認識処理を実行して、該撮像された画像データ内にある顔を認識することを特徴とする請求項１２記載の撮像装置。
【請求項１５】
前記顔認識手段は、
前記撮像手段により撮像された画像データ内にある顔を検出することを特徴とする請求項１乃至１４の何れかに記載の撮像装置。
【請求項１６】
前記顔認識手段は、
前記撮像手段により撮像された画像データ内にある顔が何であるかを具体的に識別することを特徴とする請求項１乃至１４の何れかに記載の撮像装置。
【請求項１７】
前記撮像手段により撮像された画像データ内にある顔を検出する２次元顔検出手段を備え、
前記顔認識手段は、
前記２次元顔検出手段により顔が検出された場合は、前記撮像手段により撮像された画像データの前記２次元顔検出手段により検出された顔領域の画像データに基づいて、３次元顔認識処理を実行することにより、該撮像された画像データ内にある顔を識別することを特徴とする請求項１６記載の撮像装置。
【請求項１８】
前記複数の顔認識モードは、顔認識処理を切り換えて実行する第７の顔認識モードを含み、
前記顔認識手段は、
前記顔認識モード設定手段により前記第７の顔認識モードが設定された場合は、前記撮像手段により撮像された画像データに対して、前記顔認識処理を実行し、この顔認識処理により顔が認識された後は、この認識された顔が画像データ内で移動するのを追従していく被写体追従処理に切り換えて実行することを特徴とする請求項１乃至１７の何れかに記載の撮像装置。
【請求項１９】
前記顔認識手段は、
更に、前記被写体追従処理により人の顔が追従できなくなった場合は、前記被写体追従処理に切り換える前に設定されていた顔認識処理を再実行することを特徴とする請求項１８記載の撮像装置。
【請求項２０】
コンピュータに、
被写体の顔を認識する際に実行する顔認識処理の内容が各々異なる複数の顔認識モードを備え、該複数の顔認識モードの中から何れかの顔認識モードを設定する顔認識モード設定処理と、
画像データに対して、前記顔認識モード設定処理により設定された顔認識モードに応じた顔認識処理を実行することにより、該撮像された画像データ内にある顔を認識する顔認識処理と、
を実行させる顔認識方法であって、
前記顔認識モード設定処理は、設定可能な顔認識モードとして、認識対象となる被写体の種類の違いと、被写体の種類以外の条件の違いとの組み合わせに応じた複数の顔認識モードを含み、
前記顔認識処理は、前記画像データに基づいて自動的に前記被写体の種類の違いと前記被写体の種類以外の条件の違いとを識別して実行する顔認識処理を選択することを特徴とする顔認識方法。
【請求項２１】
撮像手段を備えたコンピュータを、
被写体の顔を認識する際に実行する顔認識処理の内容が各々異なる複数の顔認識モードを備え、該複数の顔認識モードの中から何れかの顔認識モードを設定する顔認識モード設定手段、
前記撮像手段により撮像された画像データに対して、前記顔認識モード設定手段により設定された顔認識モードに応じた顔認識処理を実行することにより、該撮像された画像データ内にある顔を認識する顔認識手段、
として機能させ、
前記顔認識モード設定手段は、設定可能な顔認識モードとして、認識対象となる被写体の種類の違いと、被写体の種類以外の条件の違いとの組み合わせに応じた複数の顔認識モードを含み、
前記顔認識手段は、前記撮像手段により撮像される画像データに基づいて自動的に前記被写体の種類の違いと前記被写体の種類以外の条件の違いとを識別して実行する顔認識処理を選択することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置、顔認識方法及びそのプログラムに係り、詳しくは、顔を認識する機能を有した撮像装置、顔認識方法及びそのプログラムに関する。
【背景技術】
【０００２】
近年、電子カメラ等の撮像装置においては、被写体の顔を認識する技術が登場したことにより、該認識された顔に対してピントを合わせたり、顔が適正露出となるように露出条件を設定する技術がある（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】公開特許公報  特開２００７−０８１９９１
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の顔認識は、人間の顔、それも正面の顔などある特定の向きから撮像された場合のみを対象としており、横顔やサングラスの装着時などは認識することができなかった。また、人間以外の顔、例えば、猫や犬などの顔は認識することができなかった。
【０００５】
そこで本発明は、かかる従来の問題点に鑑みてなされたものであり、顔認識の精度を向上させることができる撮像装置、顔認識方法及びそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的達成のため、請求項１記載の発明による撮像装置は、被写体を撮像する撮像手段と、被写体の顔を認識する際に実行する顔認識処理の内容が各々異なる複数の顔認識モードを備え、該複数の顔認識モードの中から何れかの顔認識モードを設定する顔認識モード設定手段と、前記撮像手段により撮像された画像データに対して、前記顔認識モード設定手段により設定された顔認識モードに応じた顔認識処理を実行することにより、該撮像された画像データ内にある顔を認識する顔認識手段と、を備え、前記顔認識モード設定手段は、設定可能な顔認識モードとして、認識対象となる被写体の種類の違いと、被写体の種類以外の条件の違いとの組み合わせに応じた複数の顔認識モードを含み、前記顔認識手段は、前記撮像手段により撮像される画像データに基づいて自動的に前記被写体の種類の違いと前記被写体の種類以外の条件の違いとを識別して実行する顔認識処理を選択することを特徴とする。
【０００７】
また、例えば、請求項２に記載されているように、前記被写体の種類以外の条件の違いは、顔認識処理の条件の違いであり、前記顔認識手段は、前記撮像手段により撮像された画像データに対して、前記顔認識モード設定手段により設定された顔認識モードに対応する条件で顔認識処理を実行することにより、該撮像された画像データ内にある顔の中で、該顔認識モードに対応する種類の被写体の顔を認識するようにしてもよい。
【０００８】
また、例えば、請求項３に記載されているように、前記顔認識処理の条件は、２次元的に顔を認識する２次元顔認識処理と、３次元的に顔を認識する３次元顔認識処理を含むようにしてもよい。
【０００９】
また、例えば、請求項４に記載されているように、前記顔認識モード設定手段は、ユーザによって選択された顔認識モードを設定するようにしてもよい。
【００１０】
また、例えば、請求項５に記載されているように、前記顔認識モード設定手段は、顔認識モードを自動的に選択して設定するようにしてもよい。
【００１１】
また、例えば、請求項６に記載されているように、前記被写体の種類の違いは、人の顔と人以外の顔であり、前記顔認識手段は、前記顔認識モード設定手段により人の顔を対象とした第１の顔認識モードが設定された場合は、人の顔を認識する顔認識処理実行することにより、前記撮像された画像データ内にある人の顔を認識し、前記顔認識モード設定手段により人以外の顔を対象とした第２の顔認識モードが設定された場合は、人以外の種類の顔を認識するようにしてもよい。
【００１２】
また、例えば、請求項７に記載されているように、前記顔認識処理の条件は、２次元的に顔を認識する条件と、３次元的に顔を認識する条件とを含み、前記顔認識手段は、前記顔認識モード設定手段により２次元的に顔を認識する条件に対応した第３の顔認識モードが設定された場合は、２次元的に顔を認識する２次元顔認識処理を実行することにより、前記撮像された画像データ内にある顔を認識し、前記顔認識モード設定手段により３次元的に顔を認識する条件に対応した第４の顔認識モードが設定された場合は、３次元的に顔を認識する３次元顔認識処理を実行することにより、前記撮像された画像データ内にある顔を認識するようにしてもよい。
【００１３】
また、例えば、請求項８に記載されているように、前記複数の顔認識モードは、顔認識処理を切り換えて実行する第５の顔認識モードを含み、前記顔認識手段は、前記顔認識モード設定手段により前記第５の顔認識モードが設定された場合は、人の顔を認識する顔認識処理を実行することにより、前記撮像された画像データ内にある人の顔を認識し、この顔認識処理により人の顔が認識されなかった場合に、人以外の種類の顔を認識する顔認識処理に切り換えて実行することにより、前記撮像された画像データ内にある人以外の種類の顔を認識するようにしてもよい。
【００１４】
また、例えば、請求項９に記載されているように、前記複数の顔認識モードは、顔認識処理を切り換えて実行する第６の顔認識モードを含み、前記顔認識手段は、前記顔認識モード設定手段により前記第６の顔認識モードが設定された場合は、２次元顔認識処理を実行することにより、前記撮像された画像データ内にある人の顔を認識し、この顔認識処理により人の顔が認識されなかった場合に、３次元顔認識処理に切り換えて実行することにより、前記撮像された画像データ内にある人以外の種類の顔を認識するようにしてもよい。
【００１５】
また、例えば、請求項１０に記載されているように、前記顔認識手段は、前記顔認識モード設定手段により前記第１の顔認識モードが設定された場合は、前記撮像手段により撮像された画像データに対して、２次元顔認識処理を実行して、該撮像された画像データ内にある人の顔を認識し、前記顔認識モード設定手段により前記第２の顔認識モードが設定された場合は、前記撮像手段により撮像された画像データに基づいて、３次元顔認識処理を実行して、該撮像された画像データ内にある前記顔認識モード設定手段により設定された顔認識モードの種類の顔を認識するようにしてもよい。
【００１６】
また、例えば、請求項１１に記載されているように、前記第２の顔認識モードは、更に、人以外の複数種類の被写体の各々を認識対象とする複数の顔認識モードに分割され、前記顔認識手段は、前記顔認識モード設定手段により前記第１の顔認識モードが設定された場合は、前記撮像手段により撮像された画像データに対して、２次元顔認識処理を実行して、該撮像された画像データ内にある人の顔を認識し、前記顔認識モード設定手段により前記第２の顔認識モードが設定された場合は、該設定された種類の顔検出モードに応じて、実行させる顔認識処理を、２次元顔認識処理と３次元顔認識処理とに切り替えることにより、前記撮像手段により撮像された画像データ内にある前記顔認識モード設定手段により設定された顔認識モードの種類の顔を認識するようにしてもよい。
【００１７】
また、例えば、請求項１２に記載されているように、前記顔認識手段は、
２次元顔認識処理の実行により顔を認識することができなかった場合は、前記撮像手段により撮像された画像データに基づいて、３次元顔認識処理を実行して、該撮像された画像データ内にある顔を認識するようにしてもよい。
【００１８】
また、例えば、請求項１３に記載されているように、前記顔認識手段は、
前記撮像手段により撮像された画像データの全領域、又は、画像データの画角の中央領域、又は、ユーザによって指定された領域の画像データに基づいて、顔認識処理を実行して、該撮像された画像データ内にある顔を認識するようにしてもよい。
【００１９】
また、例えば、請求項１４に記載されているように、前記顔認識手段は、
２次元顔認識処理の実行により、顔を認識することができなかったが、顔らしきものが認識できた場合は、前記撮像手段により撮像された画像データの該顔らしきものがあると認識された領域の画像データに基づいて、３次元顔認識処理を実行して、該撮像された画像データ内にある顔を認識するようにしてもよい。
【００２０】
また、例えば、請求項１５に記載されているように、前記顔認識手段は、
前記撮像手段により撮像された画像データ内にある顔を検出するようにしてもよい。
【００２１】
また、例えば、請求項１６に記載されているように、前記顔認識手段は、
前記撮像手段により撮像された画像データ内にある顔が何であるかを具体的に識別するようにしてもよい。
【００２２】
また、例えば、請求項１７に記載されているように、前記撮像手段により撮像された画像データ内にある顔を検出する２次元顔検出手段を備え、
前記顔認識手段は、
前記２次元顔検出手段により顔が検出された場合は、前記撮像手段により撮像された画像データの前記２次元顔検出手段により検出された顔領域の画像データに基づいて、３次元顔認識処理を実行することにより、該撮像された画像データ内にある顔を識別するようにしてもよい。
【００２３】
また、例えば、請求項１８に記載されているように、前記顔認識モード設定手段は、
前記顔認識手段により顔が認識されると、前記撮像手段により撮像された画像データに基づいて、前記顔認識手段により認識された顔が画像データ内のどこにあるかを２次元的に検出していくことにより、該認識された顔に対して追従していく追従顔認識モードに切り替えて設定するようにしてもよい。
【００２４】
また、例えば、請求項１９に記載されているように、前記顔認識モード設定手段は、
前記顔認識手段による追従顔認識モードに応じた顔認識処理により人の顔が認識されなくなった場合は、前記追従顔認識モードが設定される前に設定されていた顔認識モードを再設定するようにしてもよい。
【００２５】
上記目的達成のため、請求項２０記載の発明による顔認識方法は、コンピュータに、被写体の顔を認識する際に実行する顔認識処理の内容が各々異なる複数の顔認識モードを備え、該複数の顔認識モードの中から何れかの顔認識モードを設定する顔認識モード設定処理と、画像データに対して、前記顔認識モード設定処理により設定された顔認識モードに応じた顔認識処理を実行することにより、該撮像された画像データ内にある顔を認識する顔認識処理と、を実行させる顔認識方法であって、前記顔認識モード設定処理は、設定可能な顔認識モードとして、認識対象となる被写体の種類の違いと、被写体の種類以外の条件の違いとの組み合わせに応じた複数の顔認識モードを含み、前記顔認識処理は、前記画像データに基づいて自動的に前記被写体の種類の違いと前記被写体の種類以外の条件の違いとを識別して実行する顔認識処理を選択することを特徴とする。
上記目的達成のため、請求項２１記載の発明によるプログラムは、撮像手段を備えたコンピュータを、被写体の顔を認識する際に実行する顔認識処理の内容が各々異なる複数の顔認識モードを備え、該複数の顔認識モードの中から何れかの顔認識モードを設定する顔認識モード設定手段、前記撮像手段により撮像された画像データに対して、前記顔認識モード設定手段により設定された顔認識モードに応じた顔認識処理を実行することにより、該撮像された画像データ内にある顔を認識する顔認識手段、として機能させ、前記顔認識モード設定手段は、設定可能な顔認識モードとして、認識対象となる被写体の種類の違いと、被写体の種類以外の条件の違いとの組み合わせに応じた複数の顔認識モードを含み、前記顔認識手段は、前記撮像手段により撮像される画像データに基づいて自動的に前記被写体の種類の違いと前記被写体の種類以外の条件の違いとを識別して実行する顔認識処理を選択することを特徴とする。
【発明の効果】
【００２６】
本願発明によれば、顔認識の精度を向上させることができる。
【図面の簡単な説明】
【００２７】
【図１】本発明の実施の形態のデジタルカメラのブロック図である。
【図２】メモリ１２に記録されている顔データテーブルの様子を示す図である。
【図３】第１の実施の形態のデジタルカメラ１の動作を示すフローチャートである。
【図４】第１の実施の形態のデジタルカメラ１の動作を示すフローチャートである。
【図５】設定された顔検出モードの種類に応じた顔検出処理の動作を示すフローチャートである。
【図６】１つ目の３次元の顔検出処理の動作を示すフローチャートである。
【図７】生成された被写体（ここでは猫科の顔のみ）の３次元モデルを３角形ポリゴンで表したときの様子を示す図である。
【図８】２つ目の３次元の顔検出処理の動作を示すフローチャートである。
【図９】第２の実施の形態のデジタルカメラ１の動作を示すフローチャートである。
【図１０】第２の実施の形態のデジタルカメラ１の動作を示すフローチャートである。
【図１１】設定された顔識別モードの種類に応じた顔識別処理の動作を示すフローチャートである。
【発明を実施するための形態】
【００２８】
以下、本実施の形態について、本発明の撮像装置をデジタルカメラに適用した一例として図面を参照して詳細に説明する。
[第１の実施の形態]
Ａ．デジタルカメラの構成
図１は、本発明の撮像装置を実現するデジタルカメラ１の電気的な概略構成を示すブロック図である。
デジタルカメラ１は、撮影レンズ２、レンズ駆動ブロック３、絞り４、ＣＣＤ５、ドライバ６、ＴＧ（timing generator）７、ユニット回路８、画像生成部９、ＣＰＵ１０、キー入力部１１、メモリ１２、ＤＲＡＭ１３、フラッシュメモリ１４、画像表示部１５、バス１６を備えている。
【００２９】
撮影レンズ２は、図示しない複数のレンズ群から構成されるフォーカスレンズ、ズームレンズ等を含む。そして、撮影レンズ２にはレンズ駆動ブロック３が接続されている。レンズ駆動ブロック３は、フォーカスレンズ、ズームレンズをそれぞれ光軸方向に沿って駆動させるフォーカスモータ、ズームモータと、ＣＰＵ１０から送られてくる制御信号にしたがって、フォーカスモータ、ズームモータを駆動させるフォーカスモータドライバ、ズームモータドライバから構成されている（図示略）。
【００３０】
絞り４は、図示しない駆動回路を含み、駆動回路はＣＰＵ１０から送られてくる制御信号にしたがって絞り４を動作させる。
絞り４とは、撮影レンズ２から入ってくる光の量を制御する機構のことをいう。
【００３１】
ＣＣＤ５は、ドライバ６によって駆動され、一定周期毎に被写体像のＲＧＢ値の各色の光の強さを光電変換して撮像信号としてユニット回路８に出力する。このドライバ６、ユニット回路８の動作タイミングはＴＧ７を介してＣＰＵ１０により制御される。なお、ＣＣＤ５はベイヤー配列の色フィルターを有しており、電子シャッタとしての機能も有する。この電子シャッタのシャッタ速度は、ドライバ６、ＴＧ７を介してＣＰＵ１０によって制御される。
【００３２】
ユニット回路８には、ＴＧ７が接続されており、ＣＣＤ５から出力される撮像信号を相関二重サンプリングして保持するＣＤＳ（Correlated Double Sampling）回路、そのサンプリング後の撮像信号の自動利得調整を行なうＡＧＣ（Automatic Gain Control）回路、その自動利得調整後のアナログの撮像信号をデジタル信号に変換するＡ／Ｄ変換器から構成されており、ＣＣＤ５から出力された撮像信号はユニット回路８を経てデジタル信号として画像生成部９に送られる。
【００３３】
画像生成部９は、ユニット回路８から送られてきた画像データに対してγ補正処理、ホワイトバランス処理などの処理を施すとともに、輝度色差信号（ＹＵＶデータ）を生成し、該生成された輝度色差信号の画像データはＤＲＡＭ１３（バッファメモリ）に記憶される。つまり、画像生成部９は、ＣＣＤ５から出力された画像データに対して画像処理を施す。
【００３４】
ＣＰＵ１０は、ＣＣＤ５への撮像制御、画像データの圧縮・伸張処理、フラッシュメモリ１４への記録処理、画像データの表示処理を行う機能を有するとともに、デジタルカメラ１の各部を制御するワンチップマイコンである。また、ＣＰＵ１０はクロック回路を含み、タイマーとしての機能も有する。
【００３５】
特に、ＣＰＵ１０は、複数種類の顔検出モードの中から何れかの顔検出モードを設定する顔検出モード設定部１０１と、画像データ内にある顔を認識する顔認識部１０２とを有する。
この顔検出モード設定部１０１は、設定する顔検出モードの種類を記憶する記憶領域を備え、最新に設定された顔検出モードのみが記憶される。
また、この顔認識部１０２は、２次元のデータのみを用いて顔を認識する機能（２次元の顔認識処理）と、３次元のデータを用いて顔を認識する機能（３次元の顔認識処理）とを有する。また、この顔認識とは、画像データ内にある顔を検出したり、画像データ内にある顔が誰なのか？何であるか？を具体的に識別したりすることをいう。つまり、顔検出、顔識別を総称して顔認識という。
【００３６】
キー入力部１１は、半押し全押し可能なシャッタボタン、モード切替キー、十字キー、ＳＥＴキー、被写体追従Ｏｎ／Ｏｆｆキー等の複数の操作キーを含み、ユーザのキー操作に応じた操作信号をＣＰＵ１０に出力する。
【００３７】
メモリ１２には、ＣＰＵ１０が各部を制御するのに必要な制御プログラム、及び必要なデータ（被写体の種類毎（人、犬、猫等）の顔データを設定した顔データテーブル）が記録されており、ＣＰＵ１０は、該プログラムに従い動作する。なお、このメモリ１２は書き換え可能な不揮発性メモリである。
【００３８】
図２は、メモリ１２に記録されている顔データテーブルの様子を示すものである。
図２を見ると分かるように、被写体の種類を大まかに人と動物に分け、更に、動物は、犬、猫、馬・・・、というように種類毎に分かれている。そして、各被写体の種類毎に顔データが記録されている。また、顔データは、２次元（平面）と３次元（立体）と２種類有り、該被写体の種類毎に、２次元、又は／及び３次元の顔データが設定されている。ここでは、人の顔データは、２次元と３次元ともに設定されており、動物の顔データは３次元のみである。つまり、動物の場合は２次元の顔データが設定されていない。動物の顔は見る角度によって極端に変わり、立体的であるためである。
【００３９】
ＤＲＡＭ１３は、ＣＣＤ５によって撮像された後、ＣＰＵ１０に送られてきた画像データを一時記憶するバッファメモリとして使用されるとともに、ＣＰＵ１０のワーキングメモリとして使用される。
フラッシュメモリ１４は、圧縮された画像データを保存する記録媒体である。
【００４０】
画像表示部１５は、カラーＬＣＤとその駆動回路を含み、撮影待機状態にあるときには、ＣＣＤ５によって撮像された被写体をスルー画像として表示し、記録画像の再生時には、フラッシュメモリ１４から読み出され、伸張された記録画像を表示させる。
【００４１】
Ｂ．デジタルカメラ１の動作
第１の実施の形態におけるデジタルカメラ１の動作を図３及び図４のフローチャートに従って説明する。
ユーザのモード切替キーの操作により、顔検出静止画撮影モードに設定されると、ステップＳ１で、ＣＰＵ１０は、複数種類の顔検出モードを画像表示部１５に一覧表示させる。
【００４２】
ここで、複数種類の顔検出モードは、大きく分けて、人の顔を検出する顔検出モード（人用の顔検出モード）と動物（犬、猫、馬等）の顔を検出する顔検出モード（動物用の顔検出モード）とに分かれ、更に、動物用の顔検出モードは、犬の顔を検出する顔検出モード（犬用の顔検出モード）、猫の顔を検出する顔検出モード（猫用の顔検出モード）、馬の顔を検出する顔検出モード（馬用の顔検出モード）というように動物の種類毎に分かれる。つまり、複数種類の顔検出モードは、顔検出の対象となる被写体の種類毎にあり、これらの顔検出モードが画像表示部１５に一覧表示される。このとき、カーソルを所定の種類の顔検出モードに合わせて表示させる。
【００４３】
次いで、ステップＳ２で、ＣＰＵ１０は、ユーザによって何れかの顔検出モードが選択されたか否かを判断する。この判断はＳＥＴキーの操作に対応する操作信号がキー入力部１１から送られてきたか否かにより判断する。
このとき、ユーザは十字キーを操作することにより、選択したい種類の顔検出モードにカーソルを合わせることができ、該カーソルが合わさっている種類の顔検出モードでＯＫと思う場合はＳＥＴキーの操作を行なう。
ステップＳ２で、顔検出モードが選択されたと判断すると、ステップＳ３に進み、ＣＰＵ１０の顔検出モード設定部１０１は、該ＳＥＴキーの操作が行なわれたときにカーソルが合わさっている種類の顔検出モードに設定する。
【００４４】
顔検出モードの設定を行なうと、ステップＳ４に進み、ＣＰＵ１０は、ＣＣＤ５に所定のフレームレートで被写体を撮像させる処理を開始させ、ＣＣＤ５により順次撮像され画像生成部９によって生成された輝度色差信号のフレーム画像データ（ＹＵＶデータ）をバッファメモリ（ＤＲＡＭ１３）に記憶させていき、該記憶されたフレーム画像データに基づく画像を順次画像表示部１５に表示させていくという、いわゆるスルー画像表示を開始する。
【００４５】
次いで、ステップＳ５で、ＣＰＵ１０は、被写体追従Ｏｎ／Ｏｆｆキーの操作が行なわれたか否かを判断する。
ステップＳ５で、被写体追従キーの操作が行われたと判断すると、ステップＳ６に進み、ＣＰＵ１０は、現在の被写体追従モードがＯｎであるか否かを判断する。
【００４６】
ステップＳ６で、現在の被写体追従モードがＯｎでない、つまり、Ｏｆｆであると判断すると、ステップＳ７に進み、ＣＰＵ１０は、被写体追従モードをＯｆｆからＯｎに切り替えて、ステップＳ９に進む。
一方、ステップＳ６で、現在の被写体追従モードがＯｎであると判断すると、ステップＳ８に進み、ＣＰＵ１０は、被写体追従モードをＯｎからＯｆｆに切り替えて、ステップＳ９に進む。
また、ステップＳ５で、被写体追従Ｏｎ／Ｏｆｆキーの操作が行なわれていないと判断すると、そのままステップＳ９に進む。
【００４７】
ステップＳ９に進むと、ＣＰＵ１０は、ユーザによってシャッタボタンが半押しされたか否かを判断する。この判断は、シャッタボタンの半押し操作に対応する操作信号がキー入力部１１から送られてきたか否かにより判断する。
このとき、ユーザは、撮影したい被写体（メイン被写体）を画角内に収めて構図を決めてから撮影の準備を指示するためシャッタボタンを半押し操作する。
【００４８】
ステップＳ９で、シャッタボタンが半押しされていないと判断するとステップＳ５に戻り、シャッタボタンが半押しされたと判断すると、ステップＳ１０に進み、ＣＰＵ１０の顔認識部１０２は、ステップＳ３で設定された顔検出モードの種類に応じた顔検出処理を行う。この顔検出処理は後で詳細に説明する。この顔検出処理により設定された顔検出モードの種類の顔が検出されることになる。例えば、人用の顔検出モードが設定されている場合は、顔検出処理により人の顔が検出され、馬用の顔検出モードが設定されている場合は、顔検出処理により馬の顔が検出される。
【００４９】
顔検出処理を行うと、ステップＳ１１に進み、ＣＰＵ１０は、現在の被写体追従モードがＯｎであるか否かを判断する。
ステップＳ１１で、被写体追従モードがＯｎでない、つまり、Ｏｆｆであると判断すると、ステップＳ１２に進み、ＣＰＵ１０は、ステップＳ１０の顔検出処理により顔を検出することができたか否かを判断する。
【００５０】
ステップＳ１２で、顔を検出することができたと判断すると、ステップＳ１３に進み、ＣＰＵ１０は、該検出した顔に対してコントラスト検出方式によるＡＦ処理を行って、ステップＳ１５に進む。このコントラスト検出方式によるＡＦ処理とは、周知技術なので詳しく説明しないが、フォーカス対象となる領域の画像データの高周波成分が最も大きくなるレンズ位置に、フォーカスレンズを合わせることにより、該フォーカス対象となる領域の画像のピントを合わせるというものである。
【００５１】
一方、ステップＳ１２で、顔を検出することができなかったと判断すると、ステップＳ１４に進み、ＣＰＵ１０は、所定の領域（例えば、画角の中央領域）に対してコントラスト検出方式によるＡＦ処理を行って、ステップＳ１５に進む。
なお、ステップＳ１３、ステップＳ１４では、コントラスト検出方式によるＡＦ処理を行うようにしたが、他の方式（例えば、位相差方式）によってＡＦ処理を行うようにしてもよい。要は、ピントを合わせたい領域に対してＡＦ処理を行うことができればよい。
【００５２】
ステップＳ１５に進むと、ＣＰＵ１０は、シャッタボタンが全押しされたか否かを判断する。この判断は、シャッタボタンの全押し操作に対応する操作信号がキー入力部１１から送られてきたか否かにより判断する。
ステップＳ１５で、シャッタボタンが全押しされていないと判断すると、シャッタボタンが全押しされるまでステップＳ１５に留まり、シャッタボタンが全押しされたと判断すると、ステップＳ１６に進み、ＣＰＵ１０は、静止画撮影処理を行い、該撮影処理により得られた静止画像データを圧縮してフラッシュメモリ１４に記録する処理を行う。
【００５３】
一方、ステップＳ１１で、被写体追従モードがＯｎであると判断すると、図４のステップＳ２１に進み、ＣＰＵ１０は、ステップＳ１０の顔検出処理により顔を検出することができたか否かを判断する。
【００５４】
ステップＳ２１で、顔を検出することができたと判断すると、ステップＳ２２に進み、ＣＰＵ１０の顔認識部１０２は、該検出された顔を２次元的に検出していくことにより、該検出された顔に対して追従していく追従処理を開始して、ステップＳ２３に進む。ここで、２次元的に顔を検出するとは、２次元のデータのみを用いて顔検出することを指し、このステップＳ２２での、２次元的に顔を検出する処理は、前述のステップＳ１０の顔検出処理により検出された顔領域の２次元画像から抽出した特徴データを登録し、ブロックマッチング法などを用いて該登録した特徴データを有する顔を検出していく。このブロックマッチング法は、周知技術なので詳しく説明しないが、２枚の画像データを用いて、一方の画像データのある領域の画像データと最も相関度が高くなる他方の画像データの領域を検出する方法のことをいう。
一方、ステップＳ２１で、顔を検出することができないと判断すると、そのままステップＳ２３に進む。
【００５５】
ステップＳ２３に進むと、ＣＰＵ１０は、シャッタボタンが全押しされたか否かを判断する。
ステップＳ２３で、シャッタボタンが全押しされていないと判断すると、ステップＳ２４に進み、ＣＰＵ１０は、該追従している顔を見失ったか否かを判断する。つまり、ステップＳ２２の２次元的に顔を検出する処理により顔を検出することができなくなったか否かを判断する。なお、ステップＳ２１で顔が検出できないと判断された場合、つまり、図３のステップＳ１０の顔検出処理により追従元となる顔がそもそも検出できないと判断された場合も顔を見失ったと判断する。
【００５６】
ステップＳ２４で、顔を見失っていないと判断するとステップＳ２３に戻り、ステップＳ２４で、顔を見失ったと判断すると、図３のステップＳ１０に戻る。これにより、顔を見失った場合は再びステップＳ３で設定された顔検出モードの種類に応じた顔検出処理を行うことになる。
【００５７】
一方、ステップＳ２３で、シャッタボタンが全押しされたと判断すると、ステップＳ２５に進み、ＣＰＵ１０は、該追従している顔に対してコントラスト検出方式によるＡＦ処理を行う。つまり、シャッタボタンが全押しされた直前に２次元的に検出された顔に対してＡＦ処理を行う。
次いで、ステップＳ２６で、ＣＰＵ１０は、静止画撮影処理を行い、該撮影処理により得られた静止画像データを圧縮してフラッシュメモリ１４に記録する処理を行う。
【００５８】
Ｃ．設定された顔検出モードの種類に応じた顔検出処理について
次に、設定された顔検出モードの種類に応じた顔検出処理の動作を図５のフローチャートにしたがって説明する。
図３のステップＳ１０に進むと、図５のステップＳ３１に進み、ＣＰＵ１０の顔認識部１０２は、現在、人用の顔検出モードが設定されているか否かを判断する。
【００５９】
ステップＳ３１で、人用の顔検出モードが設定されていると判断すると、ステップＳ３２に進み、ＣＰＵ１０の顔認識部１０２は、２次元の顔検出処理により人の顔を検出する。
ここでの、２次元の顔検出処理は、直近に撮像されたフレーム画像データから全被写体の特徴データ（２次元の特徴データ）を算出し、該算出した被写体の特徴データと、図２に示す顔データテーブルに設定されている人の２次元の顔データとを比較照合することにより、人の顔がどこにあるかを検出する。
【００６０】
また、「全被写体」とは、ＣＣＤ５によって撮像された全ての被写体のことを指す。例えば、建物の前に立っているメイン被写体である人を撮像した場合は、全被写体は建物と人ということになる。つまり、画像データの全領域から被写体の特徴データを算出する。
また、全被写体の特徴データとは、例えば、撮影された全被写体が建物とその前に立っている人の場合は、建物及び人の特徴点を複数抽出し、該抽出した特徴点の座標位置や相対位置関係等を数値化したデータのことをいう。この特徴点の抽出により、目、鼻、口、顔の輪郭等から顔の特徴点も複数抽出される。つまり、全被写体の特徴データは、顔だけではなく撮像された全ての被写体の特徴点に基づいて数値化されたデータである。
また、この比較照合は、生成した全被写体の特徴データの中に顔データと一致する部分かあるか否かを判断するためのものである。したがって、この比較照合は、生成された全被写体の特徴データの各部と顔データとを比較照合していく（サーチしていく）ことにより、各部との一致度を得る。
【００６１】
ステップＳ３３で、ＣＰＵ１０の顔認識部１０２は、画像内に人の顔があるか否かを判断する。つまり、２次元の顔検出処理により人の顔を検出することができたか否かを判断する。つまり、算出した全被写体の特徴データの中に、顔データと所定値以上で（所定の範囲内で）一致する部分があるか否かを判断する。
ステップＳ３３で、人の顔があると判断すると、ステップＳ３８に進み、ＣＰＵ１０の顔認識部１０２は、顔を検出することができたと判断する。
【００６２】
一方、ステップＳ３３で、人の顔がないと判断すると、ステップＳ３４に進み、ＣＰＵ１０の顔認識部１０２は、顔らしきものがあるか否かを判断する。この顔らしきものとは、ステップＳ３２の全被写体の特徴データと、人の２次元の顔データとの比較照合により、口と鼻はあるが片目、若しくは両目が検出されなかったり（人が横を向いている場合、サングラスをしている場合）、目があるが鼻と口が検出されなかったり場合（マスクをしている場合）のことである。つまり、顔データに基づく顔のパーツが一部検出されなかった場合のことである。
【００６３】
ステップＳ３４で、顔らしきものがあると判断されると、ステップＳ３５に進み、ＣＰＵ１０の顔認識部１０２は、該検出された顔らしきものがある領域に基づいて３次元の顔検出処理により人の顔を検出する処理を行って、ステップＳ３７に進む。この３次元の顔検出処理については後で説明する。これにより、３次元の顔検出処理による処理負担を軽減することができる。
一方、ステップＳ３１で、人用の顔検出モードが設定されていないと判断した場合、又は、ステップＳ３４で、顔らしきものがないと判断した場合は、ステップＳ３６に進み、ＣＰＵ１０の顔認識部１０２は、フレーム画像データの全領域に基づいて３次元の顔検出処理により、現在設定されている顔検出モードの種類の顔を検出する処理を行って、ステップＳ３７に進む。この３次元の顔検出処理については後で説明する。ここで、ステップＳ３４で顔らしきものがないと判断されることによりステップＳ３６に進んだ場合は、ステップＳ３６において、フレーム画像データの全領域に基づいて３次元の顔検出処理により人の顔を検出する処理が行われることになる。
【００６４】
ステップＳ３７に進むと、ＣＰＵ１０の顔検出部１０２は、画像内に人の顔があるか否かを判断する。つまり、３次元の顔検出処理により顔を検出することができたか否かを判断する。
ステップＳ３７で、画像内に顔があると判断すると、ステップＳ３８に進み、顔認識部１０２は、顔を検出することができたと判断し、ステップＳ３７で、顔がないと判断すると、ステップＳ３９に進み、ＣＰＵ１０の顔認識部１０２は、顔を検出することができないと判断する。
【００６５】
このステップＳ３８で、顔を検出することができたと判断すると、図３のステップＳ１２、図４のステップＳ２１で顔を検出することができたと判断し、ステップＳ３９で、顔を検出することができないと判断すると、図３のステップＳ１２、図４のステップＳ２１で顔を検出することができないと判断する。
【００６６】
Ｄ．３次元の顔検出処理について
次に、３次元の顔検出処理の動作を説明する。２次元の顔検出処理は、２次元的に顔を検出するが、つまり、撮像されたフレーム画像データに基づく２次元の被写体の特徴データと２次元の顔データとを比較照合することにより、該フレーム画像データ内にある顔を検出していたが、３次元の顔検出処理は、３次元のデータを用いて顔を検出するというものである。
ここでは、３次元のデータを用いて顔を検出する動作を２つ紹介するが、これに限られるものではなく、要は、３次元データを用いて被写体の顔を検出するものであればよい。
【００６７】
Ｄ−１．１つ目の３次元の顔検出処理について
まず、３次元の顔検出処理の動作を図６のフローチャートにしたがって説明する。
図５のステップＳ３５及びステップＳ３６で、３次元の顔検出処理を行うことにより顔を検出する場合は、図６のステップＳ５１に進み、ＣＰＵ１０の顔認識部１０２は、異なる撮影角度でメイン被写体の撮影を促す表示を行なう。例えば、「撮影したい被写体を異なる角度から撮影してください。」というような表示を行う。これにしたがって、ユーザは撮影角度を変えてメイン被写体を撮像することになる。なお、このときユーザは、メイン被写体となる顔の画像内での位置を変えずに撮影角度を変えることが好ましい。
【００６８】
次いで、ステップＳ５２で、ＣＰＵ１０の顔認識部１０２は、異なる撮影角度でのメイン被写体の撮影を促す表示を行なってから所定時間（例えば、１秒）が経過したか否かを判断する。このとき、ＣＰＵ１０は、スルー画像表示用に撮像された複数枚のフレーム画像データをバッファメモリに保持させておく。
【００６９】
ステップＳ５２で、所定時間が経過していないと判断すると所定時間が経過するまでステップＳ５２に留まり、所定時間が経過したと判断すると、ステップＳ５３に進み、ＣＰＵ１０の顔認識部１０２は、撮像された複数枚のフレーム画像データから、被写体の特徴データをそれぞれ算出する。
このとき、図５のステップＳ３６での３次元の顔検出処理の場合は、撮像されたフレーム画像データの全領域に基づいて被写体の特徴データ（全被写体の特徴データ）を算出する。
また、図５のステップＳ３５での３次元の顔検出処理の場合は、撮像された各フレーム画像データのうち、顔らしきものがあると判断された領域の画像データに基づいて被写体の特徴データ（顔らしき被写体の特徴データ）を算出する。
【００７０】
ここで、フレーム画像データから算出される全被写体の特徴データとは、例えば、撮影された全被写体が建物とその前に立っている人の場合は、建物及び人の特徴点を複数抽出し、該抽出した特徴点の座標位置や相対位置関係等を数値化したデータのことをいう。この特徴点の抽出により、目、鼻、口、顔の輪郭等から顔の特徴点も複数抽出される。つまり、全被写体の特徴データは、顔だけではなく撮像された全ての被写体の特徴点に基づいて数値化されたデータのことである。
また、顔らしき被写体の特徴データとは、顔らしきものがあると判断された領域内で撮像されている全ての被写体の特徴データに基づいて数値化されたデータのことである。
【００７１】
なお、ここでは、顔らしきものがあると判断された領域の位置、大きさを撮像された全てのフレーム画像データに対して同じにするようにしたが、所定時間が経過するまで各フレーム画像データに対して２次元の顔検出処理を行い続けることにより、各フレーム画像データ毎に顔らしき領域を検出し、各フレーム画像データ毎に該検出された領域の画像データから被写体の特徴データ（顔らしき被写体の特徴データ）を算出するようにしてもよい。この場合は、この２次元の顔検出処理により顔が検出された場合は、もはや３次元の顔検出処理を行う必要がないので図５のステップＳ３８に進むようにしてもよい。
【００７２】
各フレーム画像データから被写体の特徴データを算出すると、ステップＳ５４に進み、ＣＰＵ１０の顔認識部１０２は、該算出された各フレーム画像データの被写体の特徴データに基づいて、被写体の３次元モデルを生成する。
この３次元モデルの生成は、既に周知技術なので詳しく説明しないが、ある画像の特徴点と、該特徴点に対応する他の画像の特徴点とに基づいて、三角測量演算によって被写体の３次元モデルを生成する（モデリング処理）。
【００７３】
また、図７は、生成された被写体（ここでは猫科の動物の顔のみ）の３次元モデルをサーフェスモデルの一種である多角形ポリゴン（ここでは、３角形ポリゴン）で表したときの様子を示す図である。
なお、サーフェスモデルでなく、ワイヤーフレームモデルやソリッドモデル等他の方法によって表すようにしてもよい。
【００７４】
次いで、ステップＳ５５で、ＣＰＵ１０の顔認識部１０２は、該生成した被写体の３次元モデルと、図２に示す顔データテーブルに記録されている現在設定されている顔検出モードの種類の立体顔データ（３次元の顔データ）とを比較照合する。
例えば、図５のステップＳ３５の場合は、該生成した被写体の３次元モデルと、図２に示す顔データテーブルに設定されている人の立体顔データとを比較照合し、図５のステップＳ３６の場合は、たとえば、犬用の顔検出モードが設定されている場合は、該生成した被写体の３次元モデルと、図２に示す顔データテーブルに設定されている犬の立体顔データとを比較照合する。
【００７５】
また、この比較照合は、生成した被写体の３次元モデルの中に立体顔データと一致する部分があるか否かを判断するためのものである。したがって、この比較照合は、生成された３次元モデルの各部と立体顔データとを比較照合していく（サーチしていく）ことにより、各部との一致度を得る。
【００７６】
次いで、ステップＳ５６で、ＣＰＵ１０の顔認識部１０２は、該生成した被写体の３次元モデルの中に、該比較照合を行なった立体顔データと所定値以上で一致する部分があるか否かを判断する。つまり、所定の範囲内で立体顔データと一致する部分があるか否かを判断することになる。この一致する部分とは、被写体の３次元モデルの中の１部であってもよいし、被写体の３次元モデルの全部であってもよい。要は、立体顔データと所定値以上で一致するものがあるかを判断できればよい。
【００７７】
ステップＳ５６で、所定値以上で一致する部分があると判断した場合は、ステップＳ５７に進み、ＣＰＵ１０の顔認識部１０２は、所定値以上で一致する部分を顔と判断し、該所定値以上で一致した部分に対応する撮像されたフレーム画像データ上の領域を顔領域とする。つまり、フレーム画像データ上の顔領域を検出する。
【００７８】
この所定値以上で一致した部分に対応するフレーム画像データ上の領域とは、被写体の３次元モデルの中で、一致する部分（顔部分）の特徴データに対応するフレーム画像データ上の領域であり、該特徴データに対応するフレーム画像データは複数あるので（複数枚のフレーム画像データに基づいて被写体モデルを生成したため）、所定値以上で一致した部分に対応する、生成元となった複数のフレーム画像データのうち、直近に撮像されたフレーム画像データ上の領域であってもよいし、所定値以上で一致した部分に対応する生成元となった全てのフレーム画像データ上の領域から構成される領域であってもよい。
【００７９】
一方、ステップＳ５６で、所定値以上で一致する部分がないと判断すると、ステップＳ５８に進み、ＣＰＵ１０の顔認識部１０２は、撮像されたフレーム画像データ内に顔がないと判断する。
このステップＳ５７で顔領域を検出すると、図５のステップＳ３８で顔を検出することができたと判断し、図３のステップＳ１２、図４のステップＳ２１で顔を検出できたと判断する。また、ステップＳ５８で顔がないと判断すると、図５のステップＳ３９で顔を検出することができないと判断し、図３のステップＳ１２、図４のステップＳ２１で顔を検出できないと判断する。
【００８０】
このように、１つ目の３次元の顔検出処理は、同一被写体を撮像した複数のフレーム画像データから、該被写体の３次元モデルを生成し、立体顔データと比較照合することにより顔を検出するので、顔検出の精度を向上させることができる。
例えば、被写体の顔が横を向いていたり、サングラスを装着している場合であっても検出することができる。
また、立体顔データと生成した３次元モデルとを比較照合するので、人の顔に限らず、犬や猫等の動物の顔等も検出することができる。例えば、馬など動物の顔は、見る角度が違うと極端に顔の形が変わってしまうが、３次元とすることにより、精度よく顔を検出することができる。
【００８１】
Ｄ−２．２つ目の３次元の顔検出処理について
次に、２つ目の３次元の顔検出処理の動作を図８のフローチャートにしたがって説明する。
図５のステップＳ３５及びステップＳ３６で、３次元の顔検出処理を行うことにより顔を検出する場合は、図８のステップＳ６１に進み、ＣＰＵ１０の顔認識部１０２は、顔の向きを正面と設定する。
【００８２】
次いで、ステップＳ６２で、ＣＰＵ１０の顔認識部１０２は、図２の顔データテーブルに記録されている現在設定されている顔検出モードの種類の立体顔データに基づいて、現在設定されている向きから見た顔の平面（２次元）画像データを生成する（レンダリング処理）。ここでは、設定されている向きは正面なので、設定された顔検出モードの種類の顔を正面から見た顔の平面画像データを生成することになる。この立体的なものから平面画像データを生成する技術は周知技術なので詳しく説明しないが、陰面消去や陰線消去などを行なうことによって行なわれる。
【００８３】
たとえば、設定されている顔検出モードが人用である場合は、図２に記録されている人の立体顔データから現在設定されている向きから見た平面画像データを生成し、設定されている顔検出モードが猫用である場合は、図２に記録されている猫の立体顔データから現在設定されている向きからみた平面画像データを生成することになる。
【００８４】
次いで、ステップＳ６３で、ＣＰＵ１０の顔認識部１０２は、該生成した顔の平面画像データから顔特徴データを算出する。これにより、現在設定されている向きから見た、該設定されている顔検出モードの種類の顔特徴データが算出される。
【００８５】
次いで、ステップＳ６４で、ＣＰＵ１０の顔認識部１０２は、直近にスルー画像表示用に撮像されたフレーム画像データから被写体の特徴データを算出する。
このとき、図５のステップＳ３６での３次元の顔検出処理の場合は、撮像されたフレーム画像データの全領域に基づいて被写体の特徴データ（全被写体の特徴データ）を算出する。
また、図５のステップＳ３５での３次元の顔検出処理の場合は、撮像されたフレーム画像データのうち、顔らしきものがあると判断された領域の画像データに基づいて被写体の特徴データ（顔らしき被写体の特徴データ）を算出する。
【００８６】
次いで、ステップＳ６５で、ＣＰＵ１０の顔認識部１０２は、ステップＳ６３で算出された顔特徴データと、ステップＳ６４で算出された被写体の特徴データとを比較照合する。この比較照合は、生成した被写体の特徴データの中に顔特徴データと一致する部分かあるか否かを判断するためのものである。したがって、この比較照合は、生成された被写体の特徴データの各部と顔特徴データとを比較照合していく（サーチしていく）ことにより、各部との一致度を得る。
【００８７】
ステップＳ６６で、ＣＰＵ１０の顔認識部１０２は、ステップＳ６４で算出された被写体の特徴データの中に、ステップＳ６３で算出した顔特徴データと所定値以上で一致する部分があるか否かを判断する。つまり、所定の範囲内で顔特徴データと一致する部分があるか否かを判断することになる。この一致する部分とは、被写体の特徴データの中の１部であってもよいし、被写体の特徴データ全部であってもよい。要は、顔特徴データと所定値以上で一致するものがあるかを判断できればよい。
【００８８】
ステップＳ６６で、所定値以上で一致する部分があると判断した場合は、ステップＳ６７に進み、ＣＰＵ１０の顔認識部１０２は、該所定値以上で一致する部分を顔と判断し、該部分に対応する、被写体の特徴データの生成元となったフレーム画像データ上の領域を顔領域とする。つまり、フレーム画像データ上の顔領域を検出する。
【００８９】
一方、ステップＳ６６で、所定値以上で一致する部分がないと判断すると、ステップＳ６８に進み、ＣＰＵ１０の顔認識部１０２は、現在設定されている向きが最後の向きであるか否かを判断する。つまり、予め決められた全ての向きが設定されたか否かを判断する。
ステップＳ６８で、設定されている向きが最後の向きでないと判断すると、ステップＳ６９に進み、ＣＰＵ１０の顔認識部１０２は、次の向きに設定してステップＳ６２に戻る。この「次の向き」とは、たとえば、現在設定されている向きから５度、右方向又は左方向に回転させた向きである。ここで、左、右とは、頭の天辺を上とし、顎や喉を下としたときを基準とする。なお、ここでは左右の方向に向きを回転させたが上下方向にも回転させるようにしてもよいし、左右方向と上下方向ともに回転させるようにしてもよい。
【００９０】
一方、ステップＳ６８で、設定されている向きが最後の向きであると判断すると、ステップＳ７０に進み、顔認識部１０２は、撮像されたフレーム画像データ内に顔がないと判断する。
このステップＳ６７で顔領域を検出すると、図５のステップＳ３８で顔を検出することができたと判断し、図３のステップＳ１２、図４のステップＳ２１で顔を検出できたと判断する。また、ステップＳ７０で顔がないと判断すると、図５のステップＳ３９で顔を検出することができないと判断し、図３のステップＳ１２、図４のステップＳ２１で顔を検出できないと判断する。
【００９１】
このように、２つ目の３次元の顔検出処理は、被写体を撮像した１枚のフレーム画像データから算出された被写体の特徴データと、予め記録されている立体顔データから異なる向きから見た被写体の顔の平面画像データを生成していき、該生成された平面画像データから算出された被写体の特徴データと、を比較照合することにより顔を検出するので、顔検出の精度を向上させることができる。
例えば、被写体が犬や猫等の動物であったり、被写体が横を向いている場合であっても検出することができる。
また、１つ目の３次元の顔検出処理のように、撮像された複数のフレーム画像データから被写体の３次元モデルを生成する必要は無いので処理負担を軽減させることができる。
【００９２】
なお、最初は、顔の向きを正面に設定し（ステップＳ６１）、その後、顔が検出されるまで顔の向きを変えて設定するようにしたが（ステップＳ６９）、最初に設定する顔の向きは正面でなくてもよい。要は、顔が検出されるまで異なる向きに設定していくものであればよい。
【００９３】
以上のように第１の実施の形態においては、ユーザによって設定された顔検出モードの種類に応じて、異なる顔検出処理を行うようにしたので、被写体の種類や撮影状況に適した顔検出処理を行うことができ、顔認識の精度を向上させることができる。
さらに、第１の実施の形態においては、ユーザによって設定された顔検出モードの種類に応じて、２次元の顔検出処理を行ったり、３次元の顔検出処理を行うようにしたので、処理負担の大きい３次元の顔検出処理を不必要に行うことがなく、また顔検出の精度を向上させることができる。たとえば、人の顔は平面的なので２次元の顔検出処理を行い、犬等の動物は一般的に立体的な顔なので２次元の顔検出処理では顔を検出することは難しいが、３次元の顔検出を行うことにより、動物の顔も検出することができる。
【００９４】
また、２次元の顔検出処理により人の顔が検出されない場合は、３次元の顔検出処理を行うようにしたので、たとえば、人が横を向いていたり、マスクやサングラス等を装着している場合であっても人の顔を検出することができる。
また、ユーザが顔検出モードを設定するので、検出したい種類の被写体の顔のみを検出することができる。
【００９５】
また、被写体追従モードがＯｎの場合は、設定された顔検出モードの種類に応じて、２次元の顔検出処理や３次元の顔検出処理を行い、該顔が検出されると、２次元的な顔検出処理により該検出された顔を検出していき、追従している顔を見失うと再び、設定された顔検出モードの種類に応じて、２次元の顔検出処理や３次元の顔検出処理を行うので、追従処理の負担を軽減することができると共に、追従処理の精度を向上させることができる。
【００９６】
［第２の実施の形態］
次に第２の実施の形態について説明する。
第１の実施の形態においては、ユーザによって選択された顔検出モードの種類に設定するようにしたが、第２の実施の形態においては、自動的に顔検出モードの種類を設定するというものである。
【００９７】
Ｅ.デジタルカメラ１の動作
第２の実施の形態も、図１に示したものと同様の構成を有するデジタルカメラ１を用いることにより本発明の撮像装置を実現する。
【００９８】
以下、第２の実施の形態のデジタルカメラ１の動作を図９及び図１０のフローチャートにしたがって説明する。
ユーザのモード切替キーの操作により、顔検出静止画撮影モードに設定されると、ステップＳ１０１で、ＣＰＵ１０の顔検出モード設定部１０１は、人用の顔検出モードに設定する。
次いで、ステップＳ１０２で、ＣＰＵ１０は、ＣＣＤ５による撮像を開始して、スルー画像表示を開始させる。
次いで、ステップＳ１０３で、ＣＰＵ１０は、被写体追従Ｏｎ／Ｏｆｆキーの操作が行なわれたか否かを判断する。
【００９９】
ステップＳ１０３で、被写体追従キーの操作が行われたと判断すると、ステップＳ１０４に進み、ＣＰＵ１０は、現在の被写体追従モードがＯｎであるか否かを判断する。
ステップＳ１０４で、現在の被写体追従モードがＯｎでない、つまり、Ｏｆｆであると判断すると、ステップＳ１０５に進み、ＣＰＵ１０は、被写体追従モードをＯｆｆからＯｎに切り替えて、ステップＳ１０７に進む。
【０１００】
一方、ステップＳ１０４で、現在の被写体追従モードがＯｎであると判断すると、ステップＳ１０６に進み、ＣＰＵ１０は、被写体追従モードをＯｎからＯｆｆに切り替えて、ステップＳ１０７に進む。
また、ステップＳ１０３で、被写体追従Ｏｎ／Ｏｆｆキーの操作が行なわれていないと判断すると、そのままステップＳ１０７に進む。
【０１０１】
ステップＳ１０７に進むと、ＣＰＵ１０は、ユーザによってシャッタボタンが半押しされたか否かを判断する。
ステップＳ１０７で、シャッタボタンが半押しされていないと判断するとステップＳ１０３に戻る。
【０１０２】
一方、ステップＳ１０７で、シャッタボタンが半押しされたと判断すると、ステップＳ１０８に進み、ＣＰＵ１０の顔認識部１０２は、現在設定されている顔検出モードの種類に応じた顔検出処理を行う。
このステップＳ１０８の動作は、上記第１の実施の形態で説明した、図３のステップＳ１０の動作、つまり、図５に示す動作と同様の動作を行なう。この顔検出処理により設定された顔検出モードの種類の顔が検出されることになる。ここで、ステップＳ１０１で人用の顔検出モードが設定されているので、顔検出処理により人の顔が検出されることになる。
【０１０３】
顔検出処理を行うと、ステップＳ１０９に進み、ＣＰＵ１０は、ステップＳ１０８の顔検出処理より顔を検出することができたか否かを判断する。
ステップＳ１０９で、顔を検出することができなかったと判断すると、ステップＳ１１０に進み、ＣＰＵ１０は、顔検出モード設定部１０１により未だ設定されていない顔検出モードがあるか否かを判断する。
【０１０４】
ステップＳ１１０で、設定されていない顔検出モードがあると判断すると、ステップＳ１１１に進み、ＣＰＵ１０の顔検出モード設定部１０１は、未だ設定されていない種類の顔検出モードに設定して、ステップＳ１０８に戻る。
ここでは、まだ人用の顔検出モードしか設定されていないので、動物用の顔検出モード（犬用の顔検出モード、猫用の顔検出モード等のうち何れかの動物用の顔検出モード）が設定されることになる。
【０１０５】
一方、ステップＳ１０９で、顔を検出することができたと判断すると、ステップＳ１１２に進み、ＣＰＵ１０は、現在の被写体追従モードがＯｎであるか否かを判断する。
ステップＳ１１２で、被写体追従モードがＯｎでない、つまり、Ｏｆｆであると判断すると、ステップＳ１１３に進み、ＣＰＵ１０は、該検出した顔に対してコントラスト検出方式によるＡＦ処理を行って、ステップＳ１１５に進む。
一方、ステップＳ１１０で、設定されていない顔検出モードがないと判断すると、ステップＳ１１４に進み、ＣＰＵ１０は、所定の領域に対してコントラスト検出方式によるＡＦ処理を行って、ステップＳ１１５に進む。
【０１０６】
ステップＳ１１５に進むと、ＣＰＵ１０は、ユーザによってシャッタボタンが全押しされたか否かを判断する。
ステップＳ１１５で、シャッタボタンが全押しされていないと判断すると、全押しされるまでステップＳ１１５に留まり、シャッタボタンが全押しされたと判断すると、ステップＳ１１６に進み、ＣＰＵ１０は、静止画撮影処理を行い、該撮影処理により得られた静止画像データを圧縮してフラッシュメモリ１４に記録する処理を行う。
【０１０７】
また、ステップＳ１１２で、被写体追従モードがＯｎであると判断すると、図１０のステップＳ１２１に進み、ＣＰＵ１０の顔認識部１０２は、該検出された顔を２次元的に検出していくことにより、該検出された顔に対して追従していく追従処理を開始する。こで、２次元的に顔を検出するとは、２次元のデータのみを用いて顔検出することを指し、このステップＳ１２１での、２次元的に顔を検出する処理は、ブロックマッチング法などを用いて該検出された顔を検出していく。
【０１０８】
次いで、ステップＳ１２２で、ＣＰＵ１０は、ユーザによってシャッタボタンが全押しされたか否かを判断する。
ステップＳ１２２で、シャッタボタンが全押しされていないと判断すると、ステップＳ１２３に進み、ＣＰＵ１０は、該追従している顔を見失ったか否かを判断する。つまり、ステップＳ１２１の２次元的に顔を検出する処理により顔を検出することができなくなったか否かを判断する。
【０１０９】
ステップＳ１２３で、顔を見失っていないと判断するとステップＳ１２２に戻り、ステップＳ１２３で、顔を見失ったと判断すると、図９のステップＳ１０８に戻る。これにより、顔を見失った場合は再び現在設定されている顔検出モードの種類に応じた顔検出処理を行うことになる。
【０１１０】
一方、ステップＳ１２２で、シャッタボタンが全押しされたと判断すると、ステップＳ１２４に進み、ＣＰＵ１０は、該追従している顔に対してコントラスト検出方式によるＡＦ処理を行う。つまり、シャッタボタンが全押しされた直前に２次元的に検出された顔に対してＡＦ処理を行う。
次いで、ステップＳ１２５で、ＣＰＵ１０は、静止画撮影処理を行い、該撮影処理により得られた静止画像データを圧縮してフラッシュメモリ１４に記録する処理を行う。
【０１１１】
以上のように、第２の実施の形態においては、自動的に顔検出モードを設定するので、ユーザの手間が省ける。また、撮影したい被写体の種類が具体的にわからない場合（例えば、猫なのか狐なのかわからない場合）であっても、該被写体の顔を検出することができ、顔検出の精度を向上させることができる。
また、設定された顔検出モードの種類に応じて、２次元の顔検出処理を行ったり、３次元の顔検出処理を行うようにしたので、処理負担の大きい３次元の顔検出処理を不必要に行うことがなく、また顔検出の精度を向上させることができる。たとえば、人の顔は平面的なので２次元の顔検出処理を行い、犬等の動物は一般的に立体的な顔なので２次元の顔検出処理では顔を検出することは難しいが、３次元の顔検出を行うことにより、動物の顔も検出することができる。
【０１１２】
また、２次元の顔検出処理により人の顔が検出されない場合は、３次元の顔検出処理を行うようにしたので、たとえば、人が横を向いていたり、マスクやサングラス等を装着している場合であっても人の顔を検出することができる。
【０１１３】
また、被写体追従モードがＯｎの場合は、設定された検出モードの種類に応じて、２次元の顔検出処理や３次元の顔検出処理を行い、該顔が検出されると、２次元的な顔検出処理により該検出された顔を検出していき、追従している顔を見失うと再び、設定された検出モードの種類に応じて、２次元の顔検出処理や３次元の顔検出処理を行うので、追従処理の負担を軽減することができると共に、追従処理の精度を向上させることができる。
【０１１４】
なお、顔検出静止画撮影モードに設定すると、最初に人用の顔検出モードを設定するようにしたが（ステップＳ１０１）、他の種類（動物の種類）の顔検出モードに設定するようにしてもよい。
また、最初はユーザが任意の種類の顔検出モードを設定し、該設定した顔検出モードの種類の顔が検出されない場合に、自動的に設定されていない種類の顔検出モードに設定するようにしてもよい。
【０１１５】
［第３の実施の形態］
次に第３の実施の形態について説明する。
上記第１、２の実施の形態においては、単に顔を検出するというものであったが、第３の実施の形態においては、顔検出を、撮影された顔が誰であるか？何であるか具体的に識別する顔識別の場合に適用するというものである。
顔検出処理では、たとえば、人の顔であっても具体的に誰の顔であるかを識別することはできず、また、動物、たとえば、猫の顔であっても、ペルシャ猫、三毛猫等、猫の種類は様々であり、また、同じ種類の猫であっても猫毎に微妙に顔が異なる場合もある。したがって、顔検出では、自分の友達や子供のみ、自分が飼っているペットのみを検出して欲しいのに（たとえば、フォーカス対象としたいのに）、他の人や動物の顔まで検出されてしまうからである。
【０１１６】
この顔識別は、予め記録されている人物の顔、動物の顔が撮像されたフレーム画像データの中にあるかを識別することになる。
この人物や動物の顔は、登録モード等においてユーザが任意の人物、任意の種類の動物の顔を登録することができる。立体顔データ（３次元の顔データ）を登録する場合は、登録したい顔を異なる角度から複数撮影し、該撮影された複数のフレーム画像データから３次元モデルを生成して登録する。また、２次元の顔データを登録する場合は、登録したい顔を撮影し、該撮影されたフレーム画像データから該顔の特徴データ（顔特徴データ）を算出して登録する。
【０１１７】
ここで、登録される立体顔データや２次元の顔データは、人や犬、猫等の種類の顔であることが大まかに識別できる程度の情報量ではなく、誰であるか等具体的に識別できる程度の情報量が必要である。この登録により、被写体の種類毎に図２に示すような顔識別用の顔データテーブルが作成される。ここでも、図２と同様に、人の顔データは２次元と３次元の両方が登録されており、動物の顔データは３次元のみが登録されているものとする。なお、顔識別用の顔データテーブルには、被写体の種類毎に複数の顔データが登録可能である。たとえば、複数人の２次元の顔データ、立体顔データを記録することができるし、複数匹の猫の立体顔データを記録することも可能である。
【０１１８】
この顔検出処理の動作を顔識別処理に適用した場合の動作は、上記各実施の形態で説明した動作とほぼ同じであるが異なる点だけを説明する。
まず、ここでは、顔検出モードに代えて顔識別モードを備え、この顔識別モードも顔検出モードと同様に、被写体の種類毎にある。たとえば、人用の顔識別モード、犬用の顔識別モード、猫用の顔識別モードといった具合である。
【０１１９】
Ｆ．顔識別静止画撮影モードの動作について
Ｆ−１．図３及び図４に示す顔検出静止画撮影モードの動作を、顔識別静止画撮影モードに適用したときの動作について
このときの顔識別静止画撮影モードの動作を、図３及び図４を引用し、異なる部分だけを説明する。
【０１２０】
まず、図３のステップＳ１は複数種類の顔識別モードを一覧表示させ、ステップＳ２で、顔識別モードが選択されたと判断すると、ステップＳ３で、該選択された顔識別モードに設定する。また、ステップＳ１０は、設定されている顔識別モードに応じた顔識別処理を行い、ステップＳ１２は、顔が識別できたか否かを判断し、顔が識別できたと判断すると、ステップＳ１３で、該識別した顔に対してＡＦ処理を行い、顔が識別できていないと判断すると、ステップＳ１４で所定の領域に対してＡＦ処理を行う。この設定されている顔識別モードに応じた顔識別処理は後で説明する。
【０１２１】
なお、顔識別処理により顔も検出することできるようにする場合は、ステップＳ１２で、顔が識別できないと判断した場合であって、顔が検出されたと判断した場合は、該検出された顔に対してＡＦ処理を行い、顔も検出できていないと判断された場合は、ステップＳ１４に進み、所定の領域に対してＡＦ処理を行うようにしてもよい。この顔識別処理による顔検出は後で説明する。
【０１２２】
また、ステップＳ２１は、顔が識別できたか否かを判断し、顔が識別できない場合はステップＳ２３に進み、顔が識別できた場合は、ステップＳ２２に進み、該識別された顔に対して追従処理を開始して、ステップＳ２３に進む。この追従処理は上記第１の実施の形態で説明したように、該識別された顔を２次元的に検出していくことにより、該検出された顔に対して追従していく。
【０１２３】
Ｆ−２．図９及び図１０に示す顔検出静止画撮影モードの動作を、顔識別静止画撮影モードに適用したときの動作について
このときの顔識別静止画撮影モードの動作を、図９及び図１０を引用し、異なる部分だけを説明する。
【０１２４】
図９のステップＳ１０１は、人用の顔識別モードに設定する。また、ステップＳ１０８は、設定されている顔識別モードに応じた顔識別処理を行い、ステップＳ１０９は、顔が識別できたか否かを判断する。ステップＳ１０９で、顔が識別できていないと判断すると、ステップＳ１１０で、設定されていない顔識別モードがあるか否かを判断する。ステップＳ１１０で、設定されていない顔識別モードがあると判断すると、ステップＳ１１１で、設定されていない種類の顔識別モードに設定してステップＳ１０８に戻る。また、ステップＳ１０９で、顔が識別できたと判断し、ステップＳ１１２で被写体追従モードがＯｎでないと判断すると、ステップＳ１１３で、該顔識別した顔に対してＡＦ処理を行い、一方、ステップＳ１１０で、設定されていない顔識別モードがないと判断すると、ステップＳ１１４で所定の領域に対してＡＦ処理を行う。この設定されている顔識別モードに応じた顔識別処理は後で説明する。
【０１２５】
なお、顔識別処理により顔も検出することできるようにする場合は、ステップＳ１１０で、設定されていない顔識別モードがないと判断した場合は、顔が検出されたか否かを判断し、顔が検出された場合は該検出された顔に対してＡＦ処理を行い、顔も検出できていないと判断された場合は、ステップＳ１１４に進み、所定の領域に対してＡＦ処理を行うようにしてもよい。この顔識別処理による顔検出は後で説明する。
【０１２６】
また、ステップＳ１１２で被写体追従がＯｎであると判断して、図１０のステップＳ１２１に進むと、該識別された顔に対して追従処理を開始する。この追従処理は上記第１の実施の形態で説明したように、該識別された顔を２次元的に検出していくことにより、該検出された顔に対して追従していく。
【０１２７】
Ｇ．設定されている顔識別モードに応じた顔識別処理の動作について
Ｇ−１．図５に示す設定されている顔検出モードに応じた顔検出処理の動作を、設定されている顔識別モードに応じた顔識別処理に適用したときの動作について
このときの顔識別処理の動作を、図５を引用し、異なる部分だけを説明する。
まず、図５のステップＳ３１は、人用の顔識別モードが設定されているか否かを判断し、人用の顔識別モードが設定されていると判断すると、ステップＳ３２に進み、２次元の顔識別処理により人の顔を検出する。この２次元の顔識別処理は、撮像されたフレーム画像データから２次元の全被写体の特徴データを算出し、該算出した被写体の特徴データと、顔識別用の顔データテーブルに登録されている人の２次元の顔データとを比較照合することにより、撮像されたフレーム画像データ内に登録されている人物の顔があるか顔識別する。
【０１２８】
そして、ステップＳ３３で、２次元の顔識別処理により登録されている人物の顔が識別されたか否かを判断する。ステップＳ３３で顔を識別することができたと判断すると、ステップＳ３８に進み、顔が識別できたと判断する。一方、ステップＳ３３で顔が識別できないと判断した場合、ステップＳ３１で人用の顔識別モードが設定されていないと判断した場合は、ステップＳ３６に進み、全領域に基づいて３次元の顔識別処理により現在設定されている顔識別モードの種類の顔を顔識別する処理を行って、ステップＳ３７に進む。
【０１２９】
そして、ステップＳ３７では３次元の顔識別処理により登録された顔があるか、つまり、３次元の顔識別により顔識別できたか否かを判断する。ステップＳ３７で登録された顔があると判断するとステップＳ３８で顔識別することができたと判断し、ステップＳ３７で登録された顔がないと判断するとステップＳ３９で顔識別することができないと判断する。
このステップＳ３８で顔識別できたと判断すると、図３のステップＳ１２、図４のステップＳ２１、図９のステップＳ１０９で顔識別できたと判断し、ステップＳ３９で顔識別することができないと判断するとステップＳ１２、ステップＳ２１、ステップＳ１０９で顔識別することができないと判断する。
このときは、図５のステップＳ３４、ステップＳ３５は不要ということになる。
【０１３０】
Ｇ−２．他の方法による設定されている顔識別モードに応じた顔識別処理の動作について
このときの顔識別処理の動作を、図１１のフローチャートにしたがって説明する。なお、この場合は、顔識別用の顔データテーブルの他に、顔検出用の人の２次元の顔データがメモリ１２に記録されている。
図３のステップＳ１０、図９のステップＳ１０８に進むと、図１１のステップＳ１５１に進み、ＣＰＵ１０の顔認識部１０２は、現在人用の顔識別モードが設定されている否かを判断する。
【０１３１】
ステップＳ１５１で、人用の顔識別モードが設定されている判断すると、ステップＳ１５２に進み、ＣＰＵ１０の顔認識部１０２は、撮像されたフレーム画像データの全領域に基づいて２次元の顔検出処理により人の顔を検出する。
ここでの、２次元の顔検出処理は、撮像されたフレーム画像データから被写体の２次元の特徴データ（全被写体の２次元の特徴データ）を算出し、該算出した被写体の特徴データと、メモリ１２に記録されている顔検出用の人の２次元の顔データとを比較照合することにより、画像内にある人の顔を検出する。ここで、記録されている顔検出用の顔特徴データは、人の顔であることが検出できれば十分なので、具体的に誰の顔であるかを識別できる程度の情報量は必要ない。また、算出される全被写体の特徴データも同様に、人の顔を検出するのに必要な情報量でよい。
【０１３２】
ステップＳ１５３で、ＣＰＵ１０の顔認識部１０２は、画像内に人の顔があるか否かを判断する。つまり、２次元の顔検出処理により人の顔を検出することができたか否かを判断する。即ち、算出した全被写体の特徴データの中に、顔データと所定値以上で（所定の範囲内で）一致する部分があるか否かを判断する。
【０１３３】
ステップＳ１５３で、人の顔があると判断すると、ステップＳ１５４に進み、ＣＰＵ１０の顔認識部１０２は、該検出された顔領域に基づいて２次元の顔識別処理を行う。つまり、撮像されたフレーム画像データのうち、該検出された顔領域の画像データから被写体の２次元の特徴データ（顔特徴データ）を算出し、該算出した顔特徴データと、顔識別用の顔データテーブルに登録されている人の２次元の顔データとを比較照合することにより、該登録されている人物であるかを顔識別する。なお、この登録されている人物の顔データは、人の顔であることが大まかに識別できる程度の情報量ではなく、具体的に誰の顔であるかを識別できる程度の情報量であることはもちろんのこと、算出される被写体の特徴データ（顔特徴データ）も誰の顔であるか具体的に識別できる程度の情報量である。
この検出された顔領域に基いて２次元の顔識別処理を行うので、処理負担を軽減させることができるとともに、顔識別の精度を向上させることができる。
【０１３４】
次いで、ステップＳ１５５で、ＣＰＵ１０の顔認識部１０２は、登録された顔があるか否かを判断する。つまり、２次元の顔識別処理により登録されている人物の顔が識別できたか否かを判断する。
ステップＳ１５５で、登録された顔があると判断すると、ステップＳ１６１に進み、ＣＰＵ１０の顔認識部１０２は、顔を識別することができたと判断する。
一方、ステップＳ１５５で、登録された顔がないと判断すると、ステップＳ１５６に進み、顔認識部１０２は、該検出された顔領域に基づいて、３次元の顔識別処理により人の顔を識別する処理を行って、ステップＳ１６０に進む。この３次元の顔識別処理は後で説明する。
この検出された顔領域に基いて３次元の顔識別処理を行うので、処理負担を軽減させることができるとともに、顔識別の精度を向上させることができる。
【０１３５】
一方、ステップＳ１５３で、人の顔がないと判断すると、ステップＳ１５７に進み、顔らしきものがあるか否かを判断する。この顔らしきものとは、上記第１の実施の形態で説明したように、ステップＳ１５２の２次元の顔検出処理による全被写体の特徴データと、人の２次元の顔データとの比較照合により、口と鼻はあるが片目、若しくは両目が検出されなかったり（人が横を向いている場合、サングラスをしている場合）、目があるが鼻と口が検出されなかったり場合（マスクをしている場合）のことである。つまり、顔データに基づく顔のパーツが一部検出されなかった場合のことである。
【０１３６】
ステップＳ１５７で、顔らしきものがあると判断すると、ステップＳ１５８に進み、ＣＰＵ１０の顔認識部１０２は、該検出された顔らしきものがある領域に基づいて３次元の顔識別処理により人の顔を識別する処理を行って、ステップＳ１６０に進む。顔らしき領域に基いて３次元の顔識別処理を行うので処理負担を軽減することができ、顔識別の精度を向上させることができる。この３次元の顔識別処理については後で説明する。
一方、ステップＳ１５７で、顔らしきものがないと判断した場合、ステップＳ１５１で人用の顔識別モードが設定されていないと判断した場合は、ステップＳ１５９に進み、フレーム画像データの全領域に基づいて３次元の顔識別処理により現在設定されている顔識別モードの種類の顔を識別する処理を行って、ステップＳ１６０に進む。この３次元の顔識別処理については後で説明する。
【０１３７】
ステップＳ１６０に進むと、ＣＰＵ１０の顔認識部１０２は、登録された顔があるか否かを判断する。つまり、３次元の顔識別処理により登録されている人物の顔が識別できたか否かを判断する。
ステップＳ１６０で、登録された顔があると判断すると、ステップＳ１６１で、顔を識別することができたと判断し、ステップＳ１６０で、登録された顔がないと判断すると、ステップＳ１６２で、顔を識別することができないと判断する。
このステップＳ１６１で顔識別できたと判断すると図３のステップＳ１２、図４のステップＳ２１、図９のステップＳ１０９で顔識別できたと判断し、ステップＳ１６２で顔識別することができないと判断するとステップＳ１２、ステップＳ２１、ステップＳ１０９で顔識別することができないと判断する。
【０１３８】
なお、図１１では、人用の顔識別モードが設定されている場合は、２次元の顔検出処理と２次元の顔識別処理との両方を行うようにしたが、顔識別処理により人の顔を検出することができるようにする場合は、２次元の顔検出処理を行わずに、２次元の顔識別処理のみを行うようにしてもよい。この場合は、ステップＳ１５１で人用の顔識別モードが設定されていると判断すると、ステップＳ１５４に進み、全領域に基づいて２次元の顔識別処理を行って、ステップＳ１５５に進む。ステップＳ１５５で、登録された顔がないと判断すると、顔を検出することができたか否かを判断する。２次元の顔識別処理により顔を検出することができたと判断すると、ステップＳ１５６に進み、顔を検出することができないと判断すると、ステップＳ１５７に進む。この場合は、ステップＳ１５２、ステップＳ１５３の動作は不要ということになる。
【０１３９】
また、この２次元の顔識別処理による顔検出は、登録されている顔がフレーム画像データ内にあると識別された場合は、当然に顔も検出されていることになり、また、たとえ登録されている顔がフレーム画像データ内にないと判断された場合であっても、全被写体の２次元の特徴データと登録されている人の２次元の顔データとの比較照合の結果により、登録されている人物の顔ではないが人の顔であることを検出することは可能であるからである。例えば、人の２次元の顔データと第１の所定値以上で一致する部分がある場合は、該顔データに対応する人物の顔であると識別し、第１の所定値以上で一致しないが、第２の所定値（第１の所定値より小さい値）以上で一致する場合は人の顔であると検出する。
なお、３次元の顔識別処理による顔検出は後で説明する。
【０１４０】
Ｈ．３次元の顔識別処理の動作について
Ｈ−１．図６に示す３次元の顔検出処理の動作を、３次元の顔識別処理に適用したときの動作について
このときの３次元の顔識別処理の動作を、図６を引用し、異なる部分だけを説明する。
まず、ステップＳ５３では、撮像された複数枚のフレーム画像データから被写体の特徴データをそれぞれ算出する。このときに算出される被写体の特徴データは、人や犬、猫等の種類の顔であることが大まかに識別できる程度の情報量ではなく、誰であるか等具体的に識別できる程度の情報量を有している。
【０１４１】
このとき、図５を顔識別処理に適用したときの図５のステップＳ３６、図１１のステップＳ１５９での３次元の顔識別処理の場合は、撮像されたフレーム画像データの全領域に基づいて被写体の２次元の特徴データ（全被写体の特徴データ）を算出する。
また、図１１のステップＳ１５６の３次元の顔識別処理の場合は、撮像された各フレーム画像データの検出された顔領域の画像データから被写体の２次元の特徴データ（２次元の顔特徴データ）を算出する。ここで顔特徴データとは、検出された顔領域内で撮像されている全ての被写体の特徴データに基づいて数値化されたデータである。
また、図１１のステップＳ１５８の３次元の顔識別処理の場合は、撮像された各フレーム画像データの顔らしきものがあると判断された領域の画像データから被写体の２次元の特徴データ（顔らしき被写体の２次元の特徴データ）を算出する。
【０１４２】
そして、ステップＳ５５では、ステップＳ５４で各フレーム画像データの被写体特徴データから生成された被写体の３次元モデルと、顔識別用の顔データテーブルに登録されている、現在設定されている顔識別モードの種類の立体顔データとを比較照合する。
そして、ステップＳ５６で、所定値以上で一致する部分があるか否かを判断し、所定値以上で一致する部分がある場合は、ステップＳ５７で、該所定値以上で一致する部分に登録された顔があると判断し、顔領域を検出する。一方、ステップＳ５６で、所定値以上で一致する部分がないと判断すると、ステップＳ５８に進み、登録されている顔がないと判断する。
【０１４３】
このステップＳ５７で顔領域を検出すると、図５のステップＳ３８、図１１のステップＳ１６１で顔を識別することができたと判断し、図３のステップＳ１２、図４のステップＳ２１、図９のステップＳ１０９で顔が識別できたと判断する。また、ステップＳ５８で顔がないと判断すると、図５のステップＳ３９、図１１のステップＳ１６２で顔を識別することができないと判断し、図３のステップＳ１２、図４のステップＳ２１、図９のステップＳ１０９で顔が識別できないと判断する。
【０１４４】
なお、この３次元の顔識別処理においても顔を検出することできるようにすることは可能である。この３次元の顔識別処理は、登録されている顔がフレーム画像データ内にあると識別された場合は、当然に顔も検出されていることになり、また、たとえ登録されている顔がフレーム画像データ内にないと判断された場合であっても、被写体の３次元モデルと登録されている立体顔データとの比較照合の結果により、登録されている人物の顔ではないが人の顔であることを検出することは可能であるからである。例えば、立体顔データと第１の所定値以上で一致する部分がある場合は、該立体顔データに対応する顔であると識別し、第１の所定値以上で一致しないが、第２の所定値（第１の所定値より小さい値）以上で一致する場合は単に顔であると検出する。
【０１４５】
Ｈ−２．図８に示す３次元の顔検出処理の動作を、３次元の顔識別処理に適用したときの動作について
このときの３次元の顔識別処理の動作を、図８を引用し、異なる部分だけを説明する。
【０１４６】
ステップＳ６２では、顔識別用の顔データテーブルに設定されている被写体の種類毎の立体顔データのうち、現在設定されている顔識別モードの種類の立体顔データに基づいて、現在設定されている向きから見た顔の平面画像データを生成する。そして、ステップＳ６３では、該生成した顔の平面画像データから２次元の顔特徴データを算出する。このとき、算出される顔特徴データは、人や犬、猫等の種類の顔であることが大まかに識別できる程度の情報量ではなく、誰であるか等具体的に識別できる程度の情報量を有している。
そして、ステップＳ６４では、直近に撮像されたフレーム画像データに基づいて被写体の２次元の特徴データを算出する。このとき、算出される被写体の特徴データは、人や犬、猫等の種類の顔であることが大まかに識別できる程度の情報量ではなく、誰であるか等具体的に識別できる程度の情報量を有している。
【０１４７】
また、ここで、図５を顔識別処理に適用したときの図５のステップＳ３６、図１１のステップＳ１５９での３次元の顔識別処理の場合は、撮像されたフレーム画像データの全領域に基づいて被写体の２次元の特徴データ（全被写体の特徴データ）を算出する。
また、図１１のステップＳ１５６の３次元の顔識別処理の場合は、撮像された各フレーム画像データの検出された顔領域の画像データから２次元の被写体の特徴データ（２次元の顔特徴データ）を算出する。
また、図１１のステップＳ１５８の３次元の顔識別処理の場合は、撮像された各フレーム画像データの顔らしきものがあると判断された領域の画像データから２次元の被写体の特徴データ（２次元の顔らしき被写体の特徴データ）を算出する。
【０１４８】
そして、ステップＳ６６で、所定値以上で一致する部分があると判断された場合は、ステップＳ６７で、該所定値以上で一致する部分に登録された顔があると判断し、顔領域を検出する。また、ステップＳ６８で、設定されている向きが最後の向きと判断された場合は、ステップＳ７０に進み、登録されている顔がないと判断する。
【０１４９】
このステップＳ６７で顔領域を検出すると、図５のステップＳ３８、図１１のステップＳ１６１で顔を識別することができたと判断し、図３のステップＳ１２、図４のステップＳ２１、図９のステップＳ１０９で顔が識別できたと判断する。また、ステップＳ７０で顔がないと判断すると、図５のステップＳ３９、図１１のステップＳ１６２で顔を識別することができないと判断し、図３のステップＳ１２、図４のステップＳ２１、図９のステップＳ１０９で顔が識別できないと判断する。
【０１５０】
なお、この３次元の顔識別処理においても顔を検出することできるようにすることは可能である。この３次元の顔識別処理は、登録されている顔がフレーム画像データ内にあると識別された場合は、当然に顔も検出されていることになり、また、たとえ登録されている顔がフレーム画像データ内にないと判断された場合であっても、ステップＳ６４で算出された２次元の被写体の特徴データと、ステップＳ６３で算出された顔特徴データとの比較照合の結果により、登録されている人物の顔ではないが人の顔であることを検出することは可能であるからである。例えば、ステップＳ６３で算出された顔特徴データと第１の所定値以上で一致する部分がある場合は、該顔特徴データの生成元となった立体顔データに対応する顔であると識別し、第１の所定値以上で一致しないが、第２の所定値（第１の所定値より小さい値）以上で一致する場合は単に顔であると検出する。
【０１５１】
Ｈ−３．他の方法による３次元の顔識別処理の動作について
まず、１つ目の他の方法による３次元の顔識別処理の動作は、上記「Ｈ−２」で説明した動作とほぼ同様であるが、上記「Ｈ−２」では、立体顔データから異なる向きの平面画像データを生成するようにしたが、ここでは、立体顔データから異なる表情（笑い、怒り、嫌悪等の異なる表情）の平面画像データを生成するというものである。このときは、立体顔データを正面から見たときの平面画像データを生成する。
【０１５２】
このときの動作を、図８を引用して説明する。
まず、ステップＳ６１では、顔の表情を無表情に設定し、ステップＳ６２では、現在設定されている顔識別モードの種類の立体顔データの顔の表情を認識し、該立体顔データから該設定された表情の立体顔データを生成する。そして、該生成した立体顔データに基づいて正面から見た顔の平面画像データを生成する。
【０１５３】
そして、ステップＳ６６で、所定値以上で一致する部分があると判断すると、ステップＳ６７で、該所定値以上で一致する部分に登録されている顔があると判断し、顔領域を検出する。一方、ステップＳ６６で、所定値以上で一致する部分がないと、ステップＳ６８で、設定されている表情が最後の表情か否かを判断する。つまり、予め決められているすべての表情を設定したか否かを判断する。ステップＳ６８で、設定されている表情が最後の表情でないと判断すると、ステップＳ６９で次の表情に設定してステップＳ６２に戻る。一方、ステップＳ６８で設定されている表情が最後の表情であると判断すると、ステップＳ７０に進み、登録されている顔がないと判断する。
これにより、顔識別の精度を向上させることができる。例えば、被写体が笑っていたり、怒っている場合等であっても、顔を識別することができる。
【０１５４】
なお、立体顔データから異なる向きの平面画像データの生成に代えて、異なる表情の平面画像データを生成するようにしたが、各表情毎に異なる向きの平面画像データを生成するようにしてもよい。つまり、向きと表情とを変えて平面画像データを生成する。
また、３次元の顔識別処理について説明したが、３次元の顔検出処理にも適用することも可能である。また、この３次元の顔識別処理により顔を検出することができるようにすることも可能である。
【０１５５】
次に、２つ目の他の方法による３次元の顔識別処理の動作は、上記「Ｈ−１」と「Ｈ−２」で説明した動作を組み合わせたものであり、上記「Ｈ−２」では、登録されている立体顔データから異なる向きから見た平面画像データを生成するようにしたが、撮像された複数のフレーム画像データから被写体の３次元モデルを生成し、該生成した被写体の３次元モデルから異なる向きから見た平面画像データを生成するというものである。このときは、顔識別用の顔データテーブルには、被写体の種類にかかわらず２次元の顔データのみが登録されている。
【０１５６】
このときの動作を、図６及び図８を引用して説明する。
まず、図６のステップＳ５１、ステップＳ５２の動作後、撮像された撮影角度の異なる複数毎のフレーム画像データ毎に被写体の特徴データを算出し（ステップＳ５３）、該算出された各フレーム画像データ毎の被写体の特徴データから被写体の３次元モデルを生成する（ステップＳ５４）。
【０１５７】
そして、図８のステップＳ６１に進み、顔の向きを正面と設定し、ステップＳ６２では、該生成された被写体の３次元モデルに基づいて、該設定された向きから見た被写体の平面画像データを生成する。次いで、ステップＳ６３で、該生成した平面画像データから被写体の特徴データを算出して、ステップＳ６５に進み、該算出した被写体の特徴データ（設定されている向きから見た被写体の特徴データ）と、顔識別用の顔データテーブルに登録されている現在設定されている顔識別モードの種類の２次元の顔データとを比較照合する。
【０１５８】
そして、ステップＳ６６で、所定値以上で一致する部分があると判断すると、ステップＳ６７進み、該所定値以上で一致する部分に登録されている顔があると判断し、顔領域を検出する。一方、ステップＳ６６で、所定値以上で一致する部分がないと判断すると、ステップＳ６８で、設定されている向きが最後の向きであるか否かを判断する。ステップＳ６８で、設定されている向きが最後の向きでないと判断すると、ステップＳ６９で次の向きに設定してステップＳ６２に戻る。一方、ステップＳ６８で設定されている向きが最後の向きであると判断すると、ステップＳ７０に進み、登録されている顔がないと判断する。
【０１５９】
これにより、顔識別の精度を向上させることができる。例えば、人物が横を向いている場合やサングラスをしている場合であっても、該人物が登録されている顔であるかを識別することでできる。また、立体顔データではなく、２次元の顔データを登録しておけばよいので、記録容量を少なくすることができる。
なお、３次元の顔識別処理について説明したが、３次元の顔検出処理にも適用することも可能である。また、この３次元の顔識別処理により顔を検出することができるようにすることも可能である。
【０１６０】
また、図１１のステップＳ１５６による３次元の顔識別処理では、顔領域の画像データに基づいて被写体の３次元モデルを生成するので、顔の３次元モデルが生成されるということになる。このように顔の３次元モデルが生成される場合は、生成された顔の３次元モデルの表情を認識して、上述したように顔の３次元モデルの表情を変えるようにしてもよい。また、この動作は、３次元の顔識別処理について説明したが、３次元の顔検出処理にも適用することも可能である。また、この３次元の顔識別処理により顔を検出することができるようにすることも可能である。
【０１６１】
以上のように第３の実施の形態においては、設定された顔識別モードの種類に応じて、異なる顔識別処理を行うようにしたので、被写体の種類や撮影状況に適した顔識別処理を行うことができ、顔識別の精度を向上させることができる。
さらに、第３の実施の形態においては、設定された顔識別モードの種類に応じて、２次元の顔識別処理を行ったり、３次元の顔識別処理を行うようにしたので、処理負担の大きい３次元の顔識別処理を不必要に行うことがなく、また顔識別の精度を向上させることができる。たとえば、人の顔は平面的なので２次元の顔識別処理を行い、犬等の動物は一般的に立体的な顔なので２次元の顔識別処理では顔を識別することは難しいが、３次元の顔識別を行うことにより、動物の顔も識別することができる。
【０１６２】
また、２次元の顔識別処理により人の顔が識別されない場合は、３次元の顔識別処理を行うようにしたので、たとえば、人が横を向いていたり、マスクやサングラス等を装着している場合であっても人の顔を識別することができる。
また、ユーザが顔識別モードを設定する場合は、識別したい種類の被写体の顔のみを識別することができる。
自動的に顔識別モードを設定する場合は、ユーザの手間が省け、また、撮影したい被写体の種類が具体的にわからない場合（例えば、猫なのか狐なのかわからない場合）であっても、該被写体の顔を識別することができ、顔識別の精度を向上させることができる。
【０１６３】
また、被写体追従モードがＯｎの場合は、設定された顔識別モードの種類に応じて、２次元の顔識別処理や３次元の顔識別処理を行い、該顔が識別されると、２次元的な顔検出処理により該検出された顔を検出していき、追従している顔を見失うと再び、設定された顔識別モードの種類に応じて、２次元の顔識別処理や３次元の顔識別処理を行うので、追従処理の負担を軽減することができると共に、追従処理の精度を向上させることができる。
【０１６４】
［変形例］
Ｉ．上記実施の形態は以下のような変形例も可能である。
【０１６５】
（０１）上記各実施の形態において、被写体追従モードがＯｆｆの場合もＯｎの場合も、設定されている顔検出モードに応じた顔検出処理、顔識別処理を行うようにしたが、被写体追従モードがＯｎの場合は、設定されている顔検出モードの種類にかかわらず、３次元の顔検出処理、３次元の顔識別処理を行うようにしてもよい。この３次元の顔検出処理により検出された顔、３次元の顔識別処理により識別された顔を２次元的に顔を検出してくことにより、該検出された顔の追従処理を行い、シャッタボタンが全押しされるまでに該顔を見失った場合は、再び３次元の顔検出処理、３次元の顔識別処理を行うようにする。
【０１６６】
（０２）また、上記各実施の形態においては、図３のステップＳ１０、図９のステップＳ１０８の設定されている顔検出モードに応じた顔検出処理は、人用の顔検出モードが設定されている場合は、２次元の顔検出処理、２次元の顔識別処理を行い（図５のステップＳ３２、図１１のステップＳ１５２、ステップＳ１５４）、２次元の顔検出処理、２次元の顔識別処理により顔が検出されない場合に（図５のステップＳ３３でＮｏ、図１１のステップＳ１５３、ステップＳ１５５でＮｏ）、初めて３次元の顔検出処理を行うようにしたが（図５のステップＳ３５、ステップＳ３６、図１１のステップＳ１５６、ステップＳ１５８、ステップＳ１５９）、３次元の顔検出処理、３次元の顔識別処理を行わないようにしてもよい。この場合は、図５のステップＳ３３、図１１のステップＳ１５３、ステップＳ１５５で、人の顔がない、登録された人物の顔がないと判断すると、図５のステップＳ３９、図１１のステップＳ１６２に進む。この場合は、図５のステップＳ３４及びステップＳ３５、図１１のステップＳ１５６〜ステップＳ１５８の動作は不要ということになる。
【０１６７】
（０３）また、上記各実施の形態において、図３のステップＳ１０、図９のステップＳ１０８の設定されている顔検出モードに応じた顔検出処理、顔識別処理は、動物用の顔検出モード（たとえば、犬用の顔検出モード、猫用の顔検出モード等）、動物用の顔識別モードが設定されている場合は、一律に３次元の顔検出処理、３次元の顔識別処理より設定されている顔検出モードの動物の種類の顔を検出、識別するようにしたが（図５のステップＳ３６、図１１のステップＳ１５９）、ある種類の動物用の顔検出モード、顔識別モードが設定された場合は、人用の顔検出モード、人用の顔識別モードが設定されたときと同様の動作を行うようにしてもよい。つまり、該設定された種類の動物用の顔検出モード、顔識別モードに応じて２次元の顔検出処理を実行したり、３次元の顔検出処理のみを実行したりするようにしてもよい。たとえば、猫用の顔検出モードが設定された場合は人用の顔検出モードが設定されたときと同様の処理を行い、犬用の顔検出モードが設定された場合は３次元の顔検出処理のみを行う。すべての種類の動物の顔が立体的ではないからであり、平面的な顔の動物もあるからである。なお、このとき、２次元の顔検出処理を行った場合に、該２次元の顔検出処理により設定された顔検出モードの動物の種類の顔が検出できなかった場合は、３次元の顔検出処理を実行させるようにしてもよいし、実行させないようにしてもよい。
この場合は、図２に示すような顔データテーブルには、動物の種類毎に、２次元の顔データや３次元の顔データを設定しておく。
これにより、顔認識の精度を向上させることができる。
【０１６８】
（０４）また、上記各実施の形態においては、図５のステップＳ３２で、画像データの全領域に基づいて２次元の顔検出処理、２次元の顔識別処理を、図５のステップＳ３６で、画像データの全領域に基づいて３次元の顔検出処理、３次元の顔識別処理を、図１１のステップＳ１５２で、画像データの全領域に基づいて２次元の顔検出処理を、図１１のステップＳ１５９で、画像データの全領域に基づいて３次元の顔識別処理を行うようにしたが、画像データの全領域ではなく、画角の中央領域、または、ユーザによって任意に指定された領域に基づいて行うようにしてもよい。これにより、顔検出処理、顔識別処理の処理負担を軽減させることができる。
【０１６９】
また、顔検出モードの種類、顔識別モードの種類に対応して色成分を関連付けて記録しておき、図５のステップＳ３２、図５のステップＳ３６、図１１のステップＳ１５２、ステップＳ１５９では、画像データの全領域ではなく、現在設定されている顔検出モード、顔識別モードの種類に対応する色成分を有する領域のみに基づいて行うようにしてもよい。この顔検出モード、顔識別モードの種類に対応した色成分とは、顔検出モード、顔識別モードの種類の被写体の顔の色成分である。たとえば、人用の顔識別モードの場合に対応する色成分は肌色ということになる。これにより、設定された顔検出モード、顔識別モードの種類の被写体の顔があると思われる領域のみに基づいて顔検出処理、顔識別処理を行うことができ、処理負担を軽減させることができる。
【０１７０】
（０５）また、上記各実施の形態においては、被写体の特徴点や被写体の種類毎の特徴点を抽出して特徴データを抽出し、該抽出した特徴データに基づいて３次元モデルを生成したり、該抽出した特徴データを比較照合することにより顔を検出、識別するようにしたが、他の方法によって３次元モデルを生成したり、顔を検出、識別したりするようにしてもよい。
また、複数枚の画像データに基づいて被写体の３次元モデルを生成するようにしたが、１枚の画像データから被写体の３次元モデルを生成するようにしてもよい。
【０１７１】
（０６）また、上記各実施の形態においては、静止画撮影処理により撮影された静止画像データのみを記録するようにしたが、顔検出処理により検出された顔の位置や顔の種類（設定された顔検出モードの種類）、顔識別処理により識別された顔の位置や名称（たとえば、人の場合は人物名、動物の場合は動物の名称若しくはペットの名前等）を静止画像データに関連付けて記録するようにしてもよい。
【０１７２】
（０７）また、上記各実施の形態においては、検出した顔、識別した顔に基いてＡＦ処理を行うようにしたが、検出された顔、識別した顔に基づいて露出制御を行なったり、トリミング処理を行うというように、検出された顔、識別された顔に基づいて所定の処理を行うようにしてもよい。
【０１７３】
（０８）また、上記各実施の形態においては、人、犬、猫等大まかな被写体の種類毎の立体顔データや２次元の顔データを記録するようにしたが、被写体の種類さらに詳しく分類して立体顔データや２次元の顔データを記録するようにしてもよい。例えば、犬なら柴犬、秋田犬、・・・、猫なら、ペルシャ猫、三毛猫、・・というように詳しく分類するようにする。これにより、顔検出、顔識別の精度を向上させることができる。
【０１７４】
（０９）また、図２に示す顔検出用の顔データテーブルは、被写体の種類毎に同じ次元の顔データは１つしか記録していなかったが、被写体の種類毎に同じ次元の顔データを複数記録しておくようにしてもよい。たとえば、同じ猫であってもその種類によっては極端に顔が変わる可能性もあり、すべての猫の顔が検出することができるように、複数の立体顔データを記録する。
【０１７５】
（１０）また、上記各実施の形態においては、顔検出モード、顔識別モード（これらを総称して顔認識モードという）の種類を１つ設定するようにしたが、顔検出モード、顔識別モードの種類を複数同時に設定するができるようにし、該同時に設定されたすべての顔検出モード、顔識別モードの種類の顔を検出するようにしてもよい。なお、このとき、顔検出モード、顔識別モードの種類によっては顔検出処理、顔識別処理の動作が変わってしまうので（図５、図１１参照）、動作が変わらない範囲内で複数の顔検出モード、顔識別モードを同時に設定するようにする。
【０１７６】
（１１）また、上記各実施の形態においては、人用の顔認識モードと、動物用の顔認識モードを備えるようにしたが、これに限らず、他の種類の被写体、たとえば、昆虫の顔を検出する昆虫用の顔認識モードを備える（この場合は、カブトムシ用の顔認識モード、クワガタ用の顔認識モードというように昆虫の種類毎に顔認識モードを備える）ようにしてもよい。
【０１７７】
（１２）また、上記第１、２の実施の形態における図５の動作においては、２次元の顔検出処理により人の顔が検出されない場合は（ステップＳ３３でＮｏ）、３次元の顔検出処理を行うようにしたが（ステップＳ３５、ステップＳ３６）、ステップＳ３４で顔らしきものがあると判断された場合のみ３次元の顔検出処理を行うようにしてもよい。つまり、ステップＳ３４で顔らしきものがないと判断するとそのままステップＳ３９に進む。この場合は、ステップＳ３６の動作は不要ということになる。
【０１７８】
（１３）また、上記第３の実施の形態における図１１の動作においては、２次元の顔検出処理により人の顔が検出されないと（ステップＳ１５３でＮｏ）、顔らしきものがあるか否かを判断し（ステップＳ１５７）、顔らしきものがある場合には、顔らしきものがある領域に基づいて３次元の顔識別処理を行い（ステップＳ１５８）、顔らしきものがない場合には全領域に基づいて３次元の顔識別処理を行うようにしたが（ステップＳ１５９）、ステップＳ１５７で顔らしきものがないと判断した場合は、そのままステップＳ１６２に進むようにしてもよい。
【０１７９】
（１４）また、本発明の特徴となる部分は、顔認識モード（顔検出モードと顔識別モードの総称）に応じて顔認識処理の動作を変えるという点にあるので、上記各実施の形態では、被写体の種類毎に顔認識モードというものを設けたが、被写体の種類毎でなくてもよい。
たとえば、顔認識モードを、２次元の顔認識処理により認識する２次元顔認識モード、３次元の顔認識処理により認識する３次元顔認識モードというように、顔認識処理の次元毎に設けてもよい。この場合は、人の顔を認識する場合は、まず、２次元顔認識モードに設定して顔認識処理を行い、顔が認識されない場合は３次元顔認識モードに設定するようにしてもよい。
また、動物の顔を認識する場合は、最初から３次元顔認識モードに設定するようにしてもよいし、動物の種類に応じて２次元顔認識モードに設定したり、３次元顔認識モードに設定したりするようにしてもよい。この場合、２次元顔認識モードに設定した場合であって、該２次元顔認識モードにより顔が認識できなかった場合は３次元顔認識モードに設定するようにしてもよい。
【０１８０】
さらに、被写体の種類と顔認識の次元とを考慮して顔認識モードを設けるようにしてもよい。
たとえば、上記各実施の形態においては、人用の顔認識モードの中に、２次元の顔認識処理、３次元の顔認識処理が含まれるが、２次元の顔認識により人の顔を認識する人用の２次元顔認識モード、３次元の顔認識処理により人の顔を認識する人用の３次元顔認識モードというように、被写体の種類と顔認識の次元との組み合わせ毎に顔認識モードを備えるようにしてもよい。
たとえば、人用の２次元顔認識モードが設定された場合は、該設定された人用の２次元顔認識モードに対応する顔認識処理を行い、顔が検出されない場合は、人用の３次元顔認識モードに自動的に切り換え設定して顔認識処理を行うようにしてもよい。また、人の顔を認識する場合は、まず、人用の２次元顔認識モードを設定するようにしてもよい。
また、同じ種類の動物（たとえば、猫）の顔を認識するモードが、２次元顔認識モードと、３次元顔認識モードと２つある場合は、最初に２次元顔認識モードに設定して顔認識処理を行い、顔が認識されない場合に初めて、３次元顔認識モードに設定して顔認識処理を行うようにしてもよい。
【０１８１】
また、上記各実施の形態で説明した被写体追従モードも顔認識モードの一種（追従顔認識モード）と考えることも可能であり、たとえば、図４のステップＳ２２、図１０のステップＳ１２１に進むと、追従顔認識モードに切り換えて設定し、該設定された追従顔認識モードに応じた顔認識処理を、つまり、図３のステップＳ１０、図９のステップＳ１０８で直近に認識された顔を２次元的に検出することにより該顔を追従していく動作を行うことになる。また、図４のステップＳ２４、図１０のステップＳ１２３で該追従している顔を見失ったと判断すると、追従顔認識モードの直前に設定されていた顔認識モードに再設定して、図３のステップＳステップＳ１０、図９のステップＳ１０８に戻るということになる。
【０１８２】
（１５）また、上記変形例（０１）乃至（１４）を任意に組み合わせた態様であってもよい。
【０１８３】
（１６）また、本発明の上記実施形態は、何れも最良の実施形態としての単なる例に過ぎず、本発明の原理や構造、動作等をより良く理解することができるようにするために述べられたものであって、添付の特許請求の範囲を限定する趣旨のものでない。
したがって、本発明の上記実施形態に対してなされ得る多種多様な変形ないし修正はすべて本発明の範囲内に含まれるものであり、添付の特許請求の範囲によって保護されるものと解さなければならない。
【０１８４】
最後に、上記各実施の形態においては、本発明の撮像装置をデジタルカメラ１に適用した場合について説明したが、上記の実施の形態に限定されるものではなく、要は、撮像された画像データに基づいて顔を認識することができる機器であれば適用可能である。
【符号の説明】
【０１８５】
１      デジタルカメラ
２      撮影レンズ
３      レンズ駆動ブロック
４      絞り
５      ＣＣＤ
６      ドライバ
７      ＴＧ
８      ユニット回路
９      画像生成部
１０    ＣＰＵ
１１    キー入力部
１２    メモリ
１３    ＤＲＡＭ
１４    フラッシュメモリ
１５    画像表示部
１６    バス
【図１】
0005267695.tif 000002
【図２】
0005267695.tif 000003
【図３】
0005267695.tif 000004
【図４】
0005267695.tif 000005
【図５】
0005267695.tif 000006
【図６】
0005267695.tif 000007
【図７】
0005267695.tif 000008
【図８】
0005267695.tif 000009
【図９】
0005267695.tif 000010
【図１０】
0005267695.tif 000011
【図１１】
0005267695.tif 000012