(57)【特許請求の範囲】
【請求項１】
入力画像に含まれる顔を検出する顔検出装置であって、
所定のフレームレートと１フレーム当たりの顔検出処理量とを顔検出処理の条件として、前記入力画像に含まれる顔を検出する顔検出部と、
前記顔検出部によって顔が検出されなかった場合、前記フレームレートを減少させる精度変更部と、
前記顔検出部によって顔が検出された場合、前記精度変更部によって変更される前記顔検出部における顔検出処理の条件が精度変更履歴として記憶される記憶部とを備え、
前記顔検出部によって顔が検出されなかった場合、前記精度変更部は、前記記憶部に記憶された精度変更履歴に基づいて、前記顔検出部における顔検出処理の条件を変更することを特徴とする、顔検出装置。
【請求項２】
前記精度変更部は、前記顔検出部によって顔が検出された場合、前記１フレーム当たりの顔検出処理量を減少させることを特徴とする、請求項１に記載の顔検出装置。
【請求項３】
前記顔検出部によって顔が検出されなかった場合、前記精度変更部は、前記記憶部に記憶された精度変更履歴に基づいて、前記顔検出部における顔検出処理の条件を、前記顔検出部によって顔が検出された直近の顔検出処理の条件に変更することを特徴とする、請求項１に記載の顔検出装置。
【請求項４】
前記精度変更部は、
前記顔検出部によって顔が検出されなかった場合、前記フレームレートを減少させ、かつ前記１フレーム当たりの顔検出処理量を増加させ、
前記顔検出部によって顔が検出された場合、前記１フレーム当たりの顔検出処理量を減少させ、かつ前記フレームレートを増加させることを特徴とする、請求項１に記載の顔検出装置。
【請求項５】
前記精度変更部は、前記顔検出部における全体の顔検出処理量を一定に維持するように、前記顔検出部における顔検出処理の条件を変更することを特徴とする、請求項４に記載の顔検出装置。
【請求項６】
前記顔検出部によって顔が検出されなかった場合、前記顔検出部における顔検出処理の対象となるフレームは、前記入力画像の全フレームのうち一定間隔に選択されることを特徴とする、請求項１に記載の顔検出装置。
【請求項７】
前記顔検出部によって顔が検出されなかった場合、前記顔検出部における顔検出処理の対象となるフレームは、前記入力画像の全フレームのうち特定のピクチャ種別であるフレームが選択されることを特徴とする、請求項１に記載の顔検出装置。
【請求項８】
前記顔検出部によって顔が検出されなかった場合、前記顔検出部における顔検出処理の対象となるフレームは、予め設定された優先度に応じて選択されることを特徴とする、請求項１に記載の顔検出装置。
【請求項９】
前記顔検出部によって顔が検出された場合、前記顔検出部における顔検出処理の対象となるフレームにおいて、顔検出処理の対象となる顔検出範囲を限定することを特徴とする、請求項２に記載の顔検出装置。
【請求項１０】
前記顔検出部によって顔が検出された場合、前記顔検出部における顔検出処理の対象となるフレームにおいて、顔検出処理の対象となる顔の大きさを限定することを特徴とする、請求項２に記載の顔検出装置。
【請求項１１】
前記顔検出部によって顔が検出された場合、前記顔検出部における顔検出処理の対象となるフレームにおいて、顔検出処理の対象となる顔の向きを限定することを特徴とする、請求項２に記載の顔検出装置。
【請求項１２】
前記顔検出部によって顔が検出された場合、前記顔検出部における顔検出処理の対象となるフレームにおいて、予め設定された優先度に応じて顔検出処理の対象を限定することを特徴とする、請求項２に記載の顔検出装置。
【請求項１３】
入力画像に含まれる顔を検出するために顔検出装置が実行する顔検出方法であって、
所定のフレームレートと１フレーム当たりの顔検出処理量とを顔検出処理の条件として、前記入力画像に含まれる顔を検出する顔検出ステップと、
前記顔検出ステップによって顔が検出されなかった場合、前記フレームレートを減少させる精度変更ステップと、
前記顔検出ステップにおいて顔が検出された場合、前記精度変更ステップにおいて変更される前記顔検出ステップにおける顔検出処理の条件が精度変更履歴として記憶される記憶ステップとを実行し、
前記顔検出ステップにおいて顔が検出されなかった場合、前記精度変更ステップは、前記記憶ステップにおいて記憶された精度変更履歴に基づいて、前記顔検出ステップにおける顔検出処理の条件を変更することを特徴とする、顔検出方法。
【請求項１４】
入力画像に含まれる顔を検出する顔検出装置に用いる集積回路であって、
所定のフレームレートと１フレーム当たりの顔検出処理量とを顔検出処理の条件として、前記入力画像に含まれる顔を検出する顔検出部と、
前記顔検出部によって顔が検出されなかった場合、前記フレームレートを減少させる精度変更部と、
前記顔検出部によって顔が検出された場合、前記精度変更部によって変更される前記顔検出部における顔検出処理の条件が精度変更履歴として記憶される記憶部とを備え、
前記顔検出部によって顔が検出されなかった場合、前記精度変更部は、前記記憶部に記憶された精度変更履歴に基づいて、前記顔検出部における顔検出処理の条件を変更することを特徴とする、顔検出装置に用いる集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データに含まれる顔領域を検出する顔検出装置に関し、より特定的には、低消費電力かつ高効率に当該顔領域を検出する顔検出装置に関する。
【背景技術】
【０００２】
従来から、例えば、ディジタルカメラ等において撮影した画像データに含まれる顔領域を検出する技術がある。一般的に、画像データに含まれる顔領域を検出する場合、予め用意した顔テンプレートに対するマッチング処理によって、当該画像データに含まれる顔を検出する。
【０００３】
さらに、顔検出処理の対象となる画像データに複数の異なる大きさの顔が存在する場合は、当該画像データ、または予め用意した顔テンプレートの解像度を段階的に変更することによって、画像データに含まれる複数の異なる大きさの顔を検出する方法が提案されている（例えば、特許文献１）。
【０００４】
図１０は、一般的な顔検出装置における顔検出処理を示す概念図である。図１０において、顔検出装置は、ＱＶＧＡ（Ｑｕａｒｔｅｒ  Ｖｉｄｅｏ  Ｇｒａｐｈｉｃｓ  Ａｒｒａｙ）解像度とする入力画像９０に対して、顔検出処理を行っている。入力画像９０に含まれる複数の異なる大きさの顔を検出するために、当該入力画像９０に対して、予め設定された解像度に応じて、それぞれ異なる解像度を有する画像が生成される。ここでは、それぞれ異なる解像度に応じた画像を生成する際、以下の（数１）に示されるように、入力画像９０を段階的に２０％ずつ縮小して、各解像度に応じた画像９１、９２、９３…を生成している。
（１／１．２５）n  ・・・（数１）
ここで、ｎは入力画像９０の縮小段階を示す解像度ＩＤであり、解像度ＩＤが大きければ大きいほど入力画像９０の縮小率が大きくなる。入力画像９０は、ＱＶＧＡ解像度（横３２０ピクセル×縦２４０ピクセル）であるため、解像度ＩＤ＝０である画像９１は、ＱＶＧＡ解像度画像と同様である。次に、解像度ＩＤ＝１の場合、ＱＶＧＡ解像度の１．２５分の１、つまり、ＱＶＧＡ解像度画像に対して８０％の縮小率を有する画像９２（横２５６ピクセル×縦１９２ピクセル）となる。同様に、解像度ＩＤ＝２の場合、ＱＶＧＡ解像度画像に対して６４％の縮小率を有する画像９３（横２０５ピクセル×縦１５４ピクセル）となる。
【０００５】
図１１は、解像度と、解像度に応じて生成される画像のピクセル数との関係を示す図である。図１１において、それぞれ異なる解像度に応じた画像を生成する際、上述した（数１）に基づいて、ＱＶＧＡ解像度画像を段階的に２０％ずつ縮小した場合の解像度ＩＤと、解像度に応じて生成される画像の縦ピクセル数および横ピクセル数との関係を示している。
【０００６】
ここで、例えば、横２０ピクセル×縦２０ピクセルである顔テンプレートを用いて、マッチング処理を行う場合、図１１に示すように、解像度ＩＤ＝０から段階的に２０％ずつ縮小した場合の解像度ＩＤ＝１１までの解像度に応じた画像が生成される。最小の解像度（解像度ＩＤ＝１１）は、横２９ピクセル×縦２３ピクセルとなるため、これ以上、画像を縮小すると、横２０ピクセル×縦２０ピクセルである顔テンプレートとのマッチングができない。したがって、解像度ＩＤは０〜１１となっている。このように、当該解像度ＩＤの段階は、予め用意した顔テンプレートサイズに基づいて決定される。
【０００７】
上述した従来技術の例では、入力画像９０を所定の縮小率で段階的に縮小することによって、入力画像９０に対してそれぞれ異なる解像度を有する画像９１、９２、９３…が生成される。そして、縮小率が最も大きい画像（解像度ＩＤ＝１１）から、縮小率が小さい画像（解像度ＩＤ＝０）へ向かって、順に顔検出処理の対象となる画像を選択し、それぞれ選択された画像に対して画像の一部を切り出して、予め用意した顔テンプレートをマッチングさせる。つまり、サイズが最も小さい画像から、段階的にサイズが大きい画像へ向かって顔検出処理を行うことによって、入力画像９０に含まれる最も大きい顔から順に複数の異なる大きさの顔を検出している。
【０００８】
また、近年、高速撮影が可能なカメラシステムが提案されている。当該カメラシステムでは、１秒間に３００フレーム以上の撮影が可能であり、決定的な瞬間を捉えることができる。当該カメラシステムによって撮影された画像において、顔検出を高精度に行うためには、毎秒３００フレームで撮影した画像データの全フレームに対して、上述したような顔検出処理を行うことが望ましい。しかしながら、顔検出処理に要する処理量は、顔検出処理を適用するフレーム数に比例して増加してしまう。
【０００９】
近年のコンシューマエレクトロニクスでは、低消費電力化が強く望まれている。一般的に、機器の処理量と電力消費量とは比例するため、顔検出の精度を維持しつつ、顔検出処理に要する処理量を削減することが肝要である。
【００１０】
フレーム画像における対象物の検出精度を維持しつつ、フレーム画像毎の演算量の削減および処理時間の短縮を図る方法について、例えば、特許文献２に提案されている。特許文献２では、検出対象物の大きさおよび車速に応じて、有効なフレームレートを論理的に導き出し、検出範囲を限定することによって、無駄な処理を省いている。遠くに見える小さな被写体は、接近しても急激に大きさが変わらないという性質を利用している。つまり、小さな被写体を検出する場合、検出対象のフレームレートを減少させても検出精度を維持することができる。
【００１１】
また、特定の認識対象となる顔が認識されたことに呼応して、認識条件を変更する方法について、例えば、特許文献３に提案されている。特許文献３では、特定の認識対象となる顔が認識された場合、その時点で認識条件を変更することによって、顔認識における認識精度を低下させることなく、次回以降の認識処理を高速に行っている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００６−３０１８４７号公報（図８、図９）
【特許文献２】特開２００７−１３７７４号公報
【特許文献３】特開２００９−０７５９９９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、特許文献２で提案されている構成は、撮影者がある一定の速度で被写体に接近していることを前提とするものであるため、ディジタルスチルカメラやムービーなどを用いた一般的な撮影シーンに適用することはできない。つまり、顔検出精度を維持するためには、撮影した画像データの全フレームに対して顔検出処理を行う必要があり、顔検出処理に要する処理量を削減することができない。
【００１４】
また、特許文献３で提案されている構成は、顔認識精度を低下させない範囲における顔認識処理の高速化を主題としているが、想定以上に高いフレームレートを用いて顔認識を行う場合には、顔認識処理の高速化が実現できない可能性がある。つまり、顔認識精度と顔認識速度とが相反するという特性を考慮しておらず、当該特性を積極的に利用することによって、顔認識処理の高速化を確保するために顔認識精度を制御するという仕組みが用意されていない。
【００１５】
それ故に、本発明の目的は、撮影シーンおよびフレームレートに関わらず、顔検出精度を維持しつつ、顔検出処理に要する処理量を削減することによって、低消費電力かつ高効率に画像データに含まれる顔領域を検出する顔検出装置を提供することである。
【課題を解決するための手段】
【００１６】
上記目的を達成するために、本発明の顔検出装置は、入力画像に含まれる顔を検出する顔検出装置であって、所定のフレームレートと１フレーム当たりの顔検出処理量とに基づいて、入力画像に含まれる顔を検出する顔検出部と、顔検出部によって顔が検出されなかった場合、フレームレートを減少させて、顔検出部における顔を検出する精度を変更する精度変更部とを備える。
【００１７】
好ましい精度変更部は、顔検出部によって顔が検出された場合、１フレーム当たりの顔検出処理量を減少させて、顔検出部における顔を検出する精度を変更することを特徴とする。
【００１８】
さらに、好ましい本発明の顔検出装置は、顔検出部によって顔が検出された場合、精度変更部によって変更される顔検出部における顔を検出する精度が精度変更履歴として記憶される記憶部をさらに備え、顔検出部によって顔が検出されなかった場合、精度変更部は、記憶部に記憶された精度変更履歴に基づいて、顔検出部における顔を検出する精度を変更することを特徴とする。
【００１９】
さらに、好ましくは、顔検出部によって顔が検出されなかった場合、精度変更部は、記憶部に記憶された精度変更履歴に基づいて、顔検出部における顔を検出する精度を、顔検出部によって顔が検出された直近の精度に変更することを特徴とする。
【００２０】
また、好ましい精度変更部は、顔検出部によって顔が検出されなかった場合、フレームレートを減少させ、かつ１フレーム当たりの顔検出処理量を増加させ、顔検出部によって顔が検出された場合、１フレーム当たりの顔検出処理量を減少させ、かつフレームレートを増加させることを特徴とする。
【００２１】
さらに、好ましい精度変更部は、顔検出部における全体の顔検出処理量を一定に維持するように、顔検出部における顔を検出する精度を変更することを特徴とする。
【００２２】
また、好ましくは、顔検出部によって顔が検出されなかった場合、顔検出部における顔検出処理の対象となるフレームは、入力画像の全フレームのうち一定間隔に選択されることを特徴とする。
または、顔検出部によって顔が検出されなかった場合、顔検出部における顔検出処理の対象となるフレームは、入力画像の全フレームのうち特定のピクチャ種別であるフレームが選択されることを特徴とする。
【００２３】
さらに、好ましくは、顔検出部によって顔が検出されなかった場合、顔検出部における顔検出処理の対象となるフレームは、予め設定された優先度に応じて選択されることを特徴とする。
【００２４】
また、好ましくは、顔検出部によって顔が検出された場合、顔検出部における顔検出処理の対象となるフレームにおいて、顔検出処理の対象となる顔検出範囲を限定することを特徴とする。
または、顔検出部によって顔が検出された場合、顔検出部における顔検出処理の対象となるフレームにおいて、顔検出処理の対象となる顔の大きさを限定することを特徴とする。
または、顔検出部によって顔が検出された場合、顔検出部における顔検出処理の対象となるフレームにおいて、顔検出処理の対象となる顔の向きを限定することを特徴とする。
【００２５】
さらに、好ましくは、顔検出部によって顔が検出された場合、顔検出部における顔検出処理の対象となるフレームにおいて、予め設定された優先度に応じて顔検出処理の対象を限定する特徴とする。
【００２６】
上記目的を達成するために、本発明の顔検出方法は、入力画像に含まれる顔を検出するために顔検出装置が実行する顔検出方法であって、所定のフレームレートと１フレーム当たりの顔検出処理量とに基づいて、入力画像に含まれる顔を検出する顔検出ステップと、顔検出ステップによって顔が検出されなかった場合、フレームレートを減少させて、顔検出ステップにおける顔を検出する精度を変更する精度変更ステップとを実行する。
【００２７】
上記目的を達成するために、本発明の顔検出装置に用いる集積回路は、入力画像に含まれる顔を検出する顔検出装置に用いる集積回路であって、所定のフレームレートと１フレーム当たりの顔検出処理量とに基づいて、入力画像に含まれる顔を検出する顔検出部と、顔検出部によって顔が検出されなかった場合、フレームレートを減少させて、顔検出部における顔を検出する精度を変更する精度変更部とを備える。
【００２８】
上述した顔検出装置および顔検出装置に用いる集積回路が実行する一連の顔検出方法は、この処理手順をコンピュータに実行させるためのプログラムの形式で提供されてもよい。このプログラムは、コンピュータで読み取り可能な記憶媒体に記録された形態で、コンピュータに導入されてもよい。
【発明の効果】
【００２９】
上述のように、本発明によれば、撮影シーンおよびフレームレートに関わらず、顔検出精度を維持しつつ、顔検出処理に要する処理量を削減することによって、低消費電力かつ高効率に画像データに含まれる顔領域を検出する顔検出装置を実現することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施形態に係る顔検出装置１００を示す図
【図２】本発明の一実施形態に係る顔検出方法２００を示す図
【図３】顔検出処理ステップＳ２２０の詳細を示す図
【図４】フレームレートが段階的に変化する様子を示す図
【図５】顔検出範囲を限定する方法について示す図
【図６】顔検出処理における精度変更履歴を示す図
【図７Ａ】時間軸方向に処理を間引く方法について、顔検出処理量の削減率と優先度とを示す図
【図７Ｂ】空間軸方向に処理を間引く方法について、顔検出処理量の削減率と優先度とを示す図
【図８】ディジタルスチルカメラ８００を示す図
【図９】図８に搭載されるディジタルスチルカメラ向け集積回路９００を示す図
【図１０】一般的な顔検出装置における顔検出処理を示す概念図
【図１１】解像度と、解像度に応じて生成される画像のピクセル数との関係を示す図
【発明を実施するための形態】
【００３１】
以下、本発明の一実施形態について、図面を参照しながら説明する。図１は、本発明の一実施形態に係る顔検出装置１００を示す図である。図１において、顔検出装置１００は、顔検出部１１０と、精度変更部１２０と、記憶部１３０とを備える。なお、顔検出部１１０は、画像入力部１１１と、解像度設定部１１２と、顔マッチング処理部１１３と、後処理部１１４とを含む。
【００３２】
図２は、本発明の一実施形態に係る顔検出方法２００を示す図である。図２において、顔検出方法２００は、初期化ステップＳ２１０と、顔検出処理ステップＳ２２０と、顔検出判定ステップＳ２３０と、顔検出範囲限定ステップＳ２４０と、フレームレート判定ステップＳ２５０と、顔検出範囲限定解除ステップＳ２６０とを備える。
【００３３】
ここでは、説明の簡単化のため、撮影される画像は、毎秒３００フレームでの撮影を想定し、図１に示した顔検出装置１００は、ＱＶＧＡ解像度（横３２０ピクセル×縦２４０ピクセル）とする入力画像９０をフレームレートが３０ｆｐｓで処理する能力があるとする。
【００３４】
先ず、初期化ステップＳ２１０において、顔検出部１１０は、フレームレートを決定するパラメータＮを「１」に初期化する。
【００３５】
顔検出処理ステップＳ２２０において、顔検出部１１０は、基準となるフレームレート（本実施形態では、３０ｆｐｓ）のＮ倍のフレームレートで顔検出処理を行う。先ず、Ｎ＝１の場合、毎秒３００フレームで撮影した画像データのうち、その１０分の１である３０フレームに対して顔検出処理を行う。つまり、１０フレームに１フレームの割合で顔検出処理が行われることになる。
【００３６】
図３は、顔検出処理ステップＳ２２０の詳細を示す図である。図３において、顔検出処理ステップＳ２２０は、画像入力ステップＳ２２１と、解像度設定ステップＳ２２２と、顔検出ステップＳ２２３と、終了判定ステップＳ２２４と、後処理ステップＳ２２５とを含む。なお、本実施形態において、入力画像９０には、どのような大きさの顔が、どの位置に含まれているか、予め判断できない。このため、最初は、１フレーム当たりの顔検出処理量について、予め設定した所定の顔検出処理量で顔検出処理を行う。
【００３７】
画像入力ステップＳ２２１において、画像入力部１１１は、顔検出処理の対象となる入力画像９０を読み込む。
【００３８】
解像度設定ステップＳ２２２において、解像度設定部１１２は、読み込まれた入力画像９０に対して、予め設定された解像度に応じて、それぞれ異なる解像度を有する画像を生成する。具体的には、解像度設定部１１２は、図１０および図１１に示したように、ＱＶＧＡ解像度とする入力画像９０に対して、当該入力画像９０を段階的に２０％ずつ縮小して、各解像度に応じた画像９１、９２、９３…を生成する。なお、本実施形態では、解像度設定部１１２は、解像度が小さい画像（解像度ＩＤ＝１１）から、解像度が大きい画像（解像度ＩＤ＝０）へ向かって、順に顔検出処理の対象となる画像を生成する。
【００３９】
顔検出ステップＳ２２３において、顔マッチング処理部１１３は、解像度設定ステップＳ２２２において、解像度設定部１１２によって生成された顔検出処理の対象となる画像に対して、予め用意した顔テンプレートをマッチングさせる。具体的には、顔マッチング処理部１１３は、解像度が小さい画像（解像度ＩＤ＝１１）から、解像度が大きい画像（解像度ＩＤ＝０）へ向かって、順に生成された顔検出処理の対象となる画像の一部を切り出して、予め用意した顔テンプレートをマッチングさせる。なお、本実施形態では、上述した図１１について説明したように、横２０ピクセル×縦２０ピクセルである顔テンプレートを用いるものとする。
【００４０】
なお、予め用意する顔テンプレートは、例えば、正面、左向き、右向き、左傾き、右傾き、下向き、上向き等の顔がある。また、正面以外の顔の向きについては、さらに詳細な顔の傾き角度が定義されていても構わない。
【００４１】
また、予め用意する顔テンプレートは、１つであっても複数であっても構わないし、マッチングに用いる顔テンプレートも１つであっても複数であっても構わない。
【００４２】
さらに、顔マッチング処理部１１３は、上述したように顔検出処理の対象となる画像に対して、予め用意した顔テンプレートをマッチングさせた結果、当該画像に顔らしい部分が含まれていた場合、検出した顔の座標、および顔の向き等を示す情報を取得する。取得する顔の座標を示す情報とは、例えば、顔テンプレートとマッチングした顔領域（横２０ピクセル×縦２０ピクセル）の左上端の座標でも構わないし、中心座標でも構わない。取得する顔の向きを示す情報とは、マッチングした顔テンプレートに含まれる顔の向きを示す情報である。
【００４３】
終了判定ステップＳ２２４において、顔検出部１１０は、解像度設定ステップＳ２２２において、解像度設定部１１２によって順に生成された顔検出処理の対象となる画像が最終の画像であるか否かを判定する。ここでは、顔検出処理の対象となる画像が、解像度が最も大きい画像（解像度ＩＤ＝０）でない場合（終了判定ステップＳ２２４のＮｏ）、解像度設定ステップＳ２２２、顔検出ステップＳ２２３、および終了判定ステップＳ２２４を繰り返す。一方、顔検出処理の対象となる画像が、解像度が最も大きい画像（解像度ＩＤ＝０）である場合（終了判定ステップＳ２２４のＹｅｓ）、後処理ステップＳ２２５に進む。
【００４４】
なお、本実施形態では、顔マッチング処理部１１３は、解像度が小さい画像（解像度ＩＤ＝１１）から、解像度が大きい画像（解像度ＩＤ＝０）へ向かって、予め用意した顔テンプレートをマッチングさせているが、この順序に限定されるわけではない。例えば、顔マッチング処理部１１３は、解像度が大きい画像（解像度ＩＤ＝０）から、解像度が小さい画像（解像度ＩＤ＝１１）へ向かって、予め用意した顔テンプレートをマッチングさせても構わない。この場合、終了判定ステップＳ２２４において、顔検出部１１０は、顔検出処理の対象となる画像が、解像度が最も小さい画像（解像度ＩＤ＝１１）であるか否かを判定する。また、顔検出処理の対象となる画像について、検出開始の解像度ＩＤおよび検出終了の解像度ＩＤを任意に設定しても構わない。例えば、順に顔検出処理の対象となる画像を解像度ＩＤ＝３から８までの画像と設定し、予め用意した顔テンプレートをマッチングさせる。
【００４５】
最後に、後処理ステップＳ２２５において、後処理部１１４は、顔検出ステップＳ２２３において、顔マッチング処理部１１３によって検出された顔らしい部分を統合して、最終的な顔検出の結果を出力する。具体的には、後処理部１１４は、複数の顔らしい部分が近傍領域に集中する場合、当該複数の顔らしい部分を統合して最終的に検出した顔とする。
【００４６】
なお、後処理部１１４は、最終的に検出した顔とする情報は、顔マッチング処理部１１３が検出して統合する複数の顔らしい部分の座標と顔の大きさの平均値、および顔マッチング処理部１１３が検出して統合する複数の顔らしい部分のうち、最も多く含まれている顔の向きを示す情報である。
【００４７】
一方、顔マッチング処理部１１３によって検出された顔らしい部分について、当該部分の近傍領域に複数の顔らしい部分が集中せず、独立して検出されている場合は、当該検出された顔らしい部分は、顔と判断しないこともできる。
【００４８】
ここまでは、入力画像９０には、どのような大きさの顔が、どの位置に含まれているか、予め判断できないため、入力画像９０に対して、解像度が小さい画像（解像度ＩＤ＝１１）から、解像度が大きい画像（解像度ＩＤ＝０）へ向かって、順に生成された顔検出処理の対象となる画像の全範囲において、予め用意した顔テンプレートをマッチングさせた。
【００４９】
次に、顔検出判定ステップＳ２３０において、精度変更部１２０は、上述した顔検出処理ステップＳ２２０において、顔が検出されたか否かを判定する。以下に、顔が検出された場合（顔検出判定ステップＳ２３０のＹｅｓ）の処理について説明する。
【００５０】
顔検出範囲限定ステップＳ２４０において、精度変更部１２０は、顔検出範囲を限定し、かつパラメータＮをインクリメント（Ｎ＝Ｎ＋１）してフレームレートを増加する。
【００５１】
具体的には、精度変更部１２０は、Ｎ＝１（初期値）に対して、Ｎ＝２としてフレームレートを３０ｆｐｓから６０ｆｐｓとする。図４は、フレームレートが段階的に変化する様子を示す図である。図４において、斜線部で示すフレームが、顔検出処理を動作させる対象となるフレームである。顔検出範囲限定ステップＳ２４０において、精度変更部１２０は、パラメータＮを「１」から「２」にすることによって、フレームレートを３０ｆｐｓから６０ｆｐｓに変更する。つまり、１０フレームに１フレームの割合で顔検出処理を動作させていたのを、５フレームに１フレームの割合で顔検出処理を動作させることになる。
【００５２】
同時に、精度変更部１２０は、顔検出範囲を２分の１に限定することによって、１フレーム当たりの顔検出処理量を２分の１に削減する。図５は、顔検出範囲を限定する方法について示す図である。顔検出処理ステップＳ２２０において、顔検出部１１０によって検出された顔の位置Ｐが画面５００の上部領域に存在する場合、顔検出範囲を画面５００のうち上部領域５０１に限定する（図５（ａ））。また、顔検出範囲を２分の１に限定する場合、例えば、顔検出範囲を画面５００のうち左部領域５０２に限定しても構わない（図５（ｂ））。また、画面５００のうちの２分の１に相当する領域であれば、顔検出範囲を画面５００の中央付近に矩形状や円状領域にすることも可能である（図示せず）。ここで、顔検出範囲の限定する範囲は、顔検出部１１０によって検出された顔の位置Ｐが含まれる必要があるが、当該位置Ｐの情報は、顔検出処理ステップＳ２２０において取得した顔の座標を示す情報に基づいて求めることができる。また、画面５００の全体に亘って分散して顔が検出された場合、顔検出範囲の限定する範囲は、検出された顔のうち大きい顔が含まれる領域を優先する。
【００５３】
このように、顔検出処理ステップＳ２２０において、顔が検出された場合（顔検出判定ステップＳ２３０のＹｅｓ）、顔検出範囲限定ステップＳ２４０において、精度変更部１２０は、顔検出処理の条件について、フレームレートを２倍にし、同時に顔検出範囲を２分の１に限定している。そして、顔検出処理ステップＳ２２０に戻り、当該新たな条件の下、顔検出部１１０は、図３に示す顔検出処理ステップＳ２２０を実行する。
【００５４】
Ｎ＝２および顔検出範囲を２分の１に限定した条件の下で、顔検出処理ステップＳ２２０において、再び顔が検出された場合（顔検出判定ステップＳ２３０のＹｅｓ）、顔検出範囲限定ステップＳ２４０において、精度変更部１２０は、Ｎ＝３としてフレームレートを９０ｆｐｓとし、顔検出範囲を３分の１に限定する。具体的には、精度変更部１２０は、図４に示すように、フレームレートを６０ｆｐｓから９０ｆｐｓに変更し、同時に、図５に示すように、顔検出範囲を画面５００のうち上部領域５０３（図５（ｃ））、または左部領域５０４（図５（ｄ））に限定する。そして、顔検出処理ステップＳ２２０に戻り、さらに新たな条件の下、顔検出部１１０は、図３に示す顔検出処理ステップＳ２２０を実行する。また、精度変更部１２０は、Ｎ＝４としてフレームレートを１２０ｆｐｓとすれば、図５に示すように、顔検出範囲を画面５００のうち左上部領域５０５に限定する（図５（ｅ））。なお、このように顔検出処理ステップＳ２２０において顔が検出されれば（顔検出判定ステップＳ２３０のＹｅｓ）、顔検出範囲限定ステップＳ２４０において、精度変更部１２０は、パラメータＮをインクリメントするが、Ｎ＝１０が上限となる。Ｎの上限は、入力フレームレートに依存するものであって、ここでは、入力フレームレートと同一になるＮ＝１０が上限となる。当該条件で顔が検出された場合（顔検出判定ステップＳ２３０のＹｅｓ）、パラメータＮをインクリメントせずに、顔検出処理ステップＳ２２０に戻ることになる（図示せず）。
【００５５】
一方、顔が検出されなかった場合（顔検出判定ステップＳ２３０のＮｏ）の処理について説明する。
【００５６】
フレームレート判定ステップＳ２５０において、精度変更部１２０は、パラメータＮの現在の値を参照し、Ｎ＞１か否かを判定する。Ｎ＞１でない場合（フレームレート判定ステップＳ２５０のＮｏ）、顔検出処理ステップＳ２２０に戻り、現在の顔検出処理の条件の下、顔検出部１１０は、図３に示す顔検出処理ステップＳ２２０を実行する。具体的には、顔検出部１１０は、初期状態（Ｎ＝１）であるフレームレート＝３０ｆｐｓで、入力画像９０に対して、解像度が小さい画像（解像度ＩＤ＝１１）から、解像度が大きい画像（解像度ＩＤ＝０）へ向かって、順に生成された顔検出処理の対象となる画像の全範囲において、予め用意した顔テンプレートをマッチングさせる。
【００５７】
Ｎ＞１である場合（フレームレート判定ステップＳ２５０のＹｅｓ）、顔検出範囲限定解除ステップＳ２６０に進む。
【００５８】
顔検出範囲限定解除ステップＳ２６０において、精度変更部１２０は、顔検出範囲の限定を解除し、かつパラメータＮをデクリメント（Ｎ＝Ｎ−１）してフレームレートを減少する。
【００５９】
具体的には、例えば、Ｎ＝２であった場合、精度変更部１２０は、パラメータＮを「２」から「１」にすることによって、フレームレートを６０ｆｐｓから３０ｆｐｓに変更する。つまり、図４に示すように、５フレームに１フレームの割合で顔検出処理を動作させていたのを、１０フレームに１フレームの割合で顔検出処理を動作させることになる。
【００６０】
同時に、精度変更部１２０は、顔検出範囲を２分の１に限定していたのを解除する。図５に示すように、例えば、顔検出範囲を画面５００のうち上部領域５０１に限定していた場合（図５（ａ））、全範囲に変更する。
【００６１】
このように、顔検出処理ステップＳ２２０において、顔が検出されなかった場合（顔検出判定ステップＳ２３０のＮｏ）、顔検出範囲限定解除ステップＳ２６０において、精度変更部１２０は、顔検出処理の条件について、フレームレートを２分の１にし、同時に顔検出範囲を２分の１に限定していたのを解除する。そして、顔検出処理ステップＳ２２０に戻り、当該新たな条件（前回の顔検出処理の条件）の下、顔検出部１１０は、図３に示す顔検出処理ステップＳ２２０を実行する。
【００６２】
なお、顔検出処理ステップＳ２２０において、顔が検出されなかった場合は、上述したように、前回の顔検出処理の条件の下、顔検出部１１０は、図３に示す顔検出処理ステップＳ２２０を実行することになる。従って、顔検出装置１００は、顔検出処理の条件の変化を記憶部１３０に保持しておく。
【００６３】
図６は、顔検出処理における精度変更履歴を示す図である。図６において、記憶部１３０は、顔検出処理の条件の変化を精度変更履歴として保持している。例えば、７回目の顔検出処理を実行した結果、顔が検出されなかった場合（顔検出判定ステップＳ２３０のＮｏ）、精度変更部１２０は、前回の顔検出処理の条件、つまり、６回目の顔検出処理における顔検出処理条件に変更する。そして、顔検出部１１０は、精度変更部１２０によって変更された６回目の顔検出処理における顔検出処理条件で、８回目の顔検出処理を実行する。
【００６４】
上述したように、顔検出処理ステップＳ２２０において、顔が検出された場合（顔検出判定ステップＳ２３０のＹｅｓ）、検出された顔の位置や大きさは劇的には変化しないため、顔検出範囲を限定しても影響は少なく、一方、フレームレートを増加させることによって、顔の検出精度を高める（顔検出範囲限定ステップＳ２４０）。
【００６５】
逆に、顔検出処理ステップＳ２２０において、顔が検出されなかった場合（顔検出判定ステップＳ２３０のＮｏ）、顔検出範囲を拡大することによって、顔の検出精度を高める（顔検出範囲限定解除ステップＳ２６０）。ここで、顔検出範囲を拡大することによる顔検出処理量が増加するため、その分、フレームレートを減少させる。つまり、顔を見失った場合は、その後の予測が難しいため、１フレーム当たり十分な処理時間を費やして顔検出処理を行い、顔を検出できていない状態から早く脱する。
【００６６】
換言すれば、顔が検出された場合は、１フレーム当たりの顔検出処理量を減らして空間軸方向に処理を間引き、逆に、顔が検出されなかった場合は、フレームレートを減らして時間軸方向に処理を間引くことによって、顔検出装置１００における顔検出処理量を一定に保持しつつ、高精度の顔検出を実現している。
【００６７】
以上のように、本発明の一実施形態に係る顔検出装置１００および顔検出方法２００によれば、撮影シーンおよびフレームレートに関わらず、顔検出精度を維持しつつ、顔検出処理に要する処理量を削減することによって、低消費電力かつ高効率に画像データに含まれる顔領域を検出することができる。
【００６８】
なお、時間軸方向に処理を間引く方法として、単純に顔検出するフレームレートを遅くする方法がある。本実施形態で述べたように、全てのフレームにおいて顔検出処理をするのではなく、例えば、５フレームに１フレームの割合で顔検出処理を動作させていたのを１０フレームに１フレームの割合で顔検出処理を動作させればよい。これにより、顔検出処理量を削減できる。これは、被写体が静止している場合に有効な方法である。
【００６９】
また、時間軸方向に処理を間引く方法として、ピクチャ種別で限定しても構わない。具体的には、ディジタルカメラ等において撮影した画像データは、圧縮されて保存されることが多く、一般的に、Ｉピクチャ、Ｐピクチャ、およびＢピクチャのように、ピクチャ種別を指定して圧縮される。この場合、Ｉピクチャのみを顔検出処理の対象とすれば、顔検出処理全体の処理量は大幅に削減できる。なお、顔検出処理の対象は、Ｉピクチャに限定されるものでなく、Ｐピクチャ、またはＢピクチャであっても構わないし、これらの組み合わせであっても構わない。
【００７０】
図７Ａは、時間軸方向に処理を間引く方法について、顔検出処理量の削減率と優先度とを示す図である。図７Ａにおいて、予め顔検出処理量の削減率および優先度を設定している。例えば、フレームレートを２倍していたのを１倍にする場合、「優先度」＝１である「一定間隔限定」を用いて、本実施形態で述べたように、５フレームに１フレームの割合で顔検出処理を動作させていたのを１０フレームに１フレームの割合で顔検出処理を動作させればよい。また、所望のフレームレートと、予め算出した顔検出処理量の削減率とに基づいて、例えば、「一定間隔限定」と、「ピクチャ種別限定（Ｉピクチャ）」とを組み合わせることによって、時間軸方向に処理を間引いても構わない。
【００７１】
なお、本実施形態では、空間軸方向に処理を間引く方法として、図５に示したように、顔検出範囲の限定をしていたが、これに限定されるわけではない。例えば、検出する顔の向きを限定しても構わない。具体的には、顔検出処理の対象となる画像に対して、正面、左向き、および右向きの顔テンプレートをマッチングさせることによって、顔検出処理を行っていた場合、正面の顔テンプレートのみをマッチングさせるように変更すれば、顔検出処理量を削減できる。これは、被写体の顔の向きがある程度限定される場合に有効な方法である。
【００７２】
また、空間軸方向に処理を間引く方法として、検出する顔の大きさを限定しても構わない。具体的には、図１０および図１１に示した例では、入力画像９０を所定の縮小率で段階的に縮小することによって、入力画像９０に対してそれぞれ異なる解像度を有する画像９１、９２、９３…が生成されていた。そして、縮小率が最も大きい画像（解像度ＩＤ＝１１）から、縮小率が小さい画像（解像度ＩＤ＝０）へ向かって、順に顔検出処理の対象となる画像を選択し、各画像に対して画像の一部を切り出して、予め用意した顔テンプレートをマッチングさせていた。１２段階の異なる解像度を有する画像を生成する代わりに、例えば、解像度ＩＤ＝６以上に限定して、６段階の異なる解像度を有する画像のみ生成し、顔検出処理の対象としても構わない。これは、被写体の顔の大きさがある程度限定される場合に有効な方法である。
【００７３】
なお、検出する顔の大きさについて、顔検出処理の対象を大きい顔に限定し、小さい顔を除外することができれば、つまり、縮小率が小さい画像（例えば、解像度ＩＤ＝０および１）を顔検出処理の対象から除外できるため、顔検出処理全体の処理量は大幅に削減できる。
【００７４】
図７Ｂは、空間軸方向に処理を間引く方法について、顔検出処理量の削減率と優先度とを示す図である。図７Ｂにおいて、予め顔検出処理量の削減率および優先度を設定している。例えば、フレームレートが２倍になった場合、「優先度」＝１である「領域限定（上下）」を用いて、顔検出範囲を画面５００のうち上部領域５０１に限定することによって（図５（ａ））、空間軸方向に処理を間引くように設定しておけばよい。また、フレームレートが３倍になった場合、「優先度」＝２である「顔向き限定（正面）」を用いて、顔検出処理の対象となる画像に対して、正面の顔テンプレートのみをマッチングさせるように設定しておけばよい。さらに、フレームレートが大きくなれば、顔検出処理量の削減率に基づいて、例えば、「領域限定（上下）」と、「顔向き限定（正面）」とを組み合わせて、顔検出処理量を一定に保持しても構わない。
【００７５】
なお、本実施形態では、横２０ピクセル×縦２０ピクセルである顔テンプレートを用いて、図１０および図１１に示したように、ＱＶＧＡ解像度とする入力画像９０に対して、当該入力画像９０を段階的に２０％ずつ縮小して、各解像度に応じた画像９１、９２、９３…を生成したが、これに限定されるものではない。例えば、入力画像９０を段階的に２０％ずつ拡大して、顔検出処理をしても構わない。
【００７６】
なお、本実施形態では、顔テンプレートの大きさを一定として、マッチングの対象となる画像の方を縮小したが、逆に、マッチング対象となる画像の大きさを一定にして、顔テンプレートを縮小（または拡大）しても構わない。
【００７７】
図８は、ディジタルスチルカメラ８００を示す図である。図９は、図８に搭載されるディジタルスチルカメラ向け集積回路９００を示す図である。図９において、ディジタルスチルカメラ向け集積回路９００は、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）コントローラ回路９０１と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９０２と、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）出力回路９０３と、メモリインタフェース回路９０４と、顔検出回路９０５と、精度変更回路９０６とを備える。さらに、ディジタルスチルカメラ向け集積回路９００は、外部ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１０と接続される。
【００７８】
ここで、Ｉ／Ｏコントローラ回路９０１は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）やＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）カードなどの外部Ｉ／Ｏを制御する。ＣＰＵ９０２は、集積回路９００全体を制御する。ＬＣＤ出力回路９０３は、ＬＣＤパネルへの出力を制御する。メモリインタフェース回路９０４は、外部ＤＲＡＭ９１０との入出力を制御する。顔検出回路９０５、および精度変更回路９０６は、入力画像に対して、露出補正、拡大／縮小、さらには顔検出処理の条件を変更しながら顔を検出する。
【００７９】
外部のカメラから入力される画像は、顔検出回路９０５を経由して、外部ＤＲＡＭ９１０に格納される。このとき、顔検出回路９０５が処理できるような解像度の変換が行われる。外部ＤＲＡＭ９１０に格納される顔検出用の画像データを、顔検出回路９０５が読み込み、検出結果をＣＰＵ９０２へ通知する。
【００８０】
外部ＤＲＡＭ９１０に顔検出の入力となるＱＶＧＡの解像度画像を蓄積する。顔検出回路９０５は、予め設定された解像度に応じて、それぞれ異なる解像度を有する縮小（拡大）画像を生成する。生成された縮小（拡大）画像は、外部ＤＲＡＭ９１０に格納してもよいし、顔検出回路９０５、または精度変更回路９０６の内部メモリ（図示せず）に保持してもよい。そして、顔検出回路９０５、および精度変更回路９０６は、図２および図３に示したような顔検出処理を実行する。なお、顔検出処理の解像度の決定、および検出した顔座標のチェックなどのチューニングが必要な部分は、ＣＰＵ９０２で実施する方が好ましい。
【００８１】
なお、上述した各構成は、集積回路であるＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）として実現されてもよい。これらの構成は１チップ化されてもよいし、一部または全てを含むように１チップ化されてもよい。ここでは、ＬＳＩといったが集積度の違いによっては、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと称呼されることもある。また集積回路化の手法は、ＬＳＩに限られるものではなく、専用回路または汎用プロセッサで集積回路化を行ってもよい。また、ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＧａｔｅＡｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを用いてもよい。あるいはこれらの機能ブロックの演算は例えばＤＳＰやＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などを用いて演算することもできる。さらにこれらの処理ステップはプログラムとして記録媒体に記録して実行することで処理することもできる。
【００８２】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックを集積化してもよい。バイオ技術の適応などが可能性としてあり得る。
【産業上の利用可能性】
【００８３】
本発明に係る顔検出装置は、ディジタルスチルカメラ、ディジタルビデオカメラ、および監視カメラ等の要件が異なる機器に対して、高フレームレート時に所望の検出結果を得る技術等として有用である。さらに、所望の検出結果を、より低消費電力、かつ高速に得る技術等として有用である。
【符号の説明】
【００８４】
９０    入力画像
９１、９２、９３    各解像度に応じた画像
１００    顔検出装置
１１０    顔検出部
１１１    画像入力部
１１２    解像度設定部
１１３    顔マッチング処理部
１１４    後処理部
１２０    精度変更部
１３０    記憶部
２００    顔検出方法
５００    画面
５０１、５０３    上部領域
５０２、５０４    左部領域
５０５    左上部領域
８００    ディジタルスチルカメラ
９００    ディジタルスチルカメラ向け集積回路
９０１    Ｉ／Ｏコントローラ回路
９０２    ＣＰＵ
９０３    ＬＣＤ出力回路
９０４    メモリインタフェース回路
９０５    顔検出回路
９０６    精度変更回路
９１０    外部ＤＲＡＭ
Ｓ２１０    初期化ステップ
Ｓ２２０    顔検出処理ステップ
Ｓ２２１    画像入力ステップ
Ｓ２２２    解像度設定ステップ
Ｓ２２３    顔検出ステップ
Ｓ２２４    終了判定ステップ
Ｓ２２５    後処理ステップ
Ｓ２３０    顔検出判定ステップ
Ｓ２４０    顔検出範囲限定ステップ
Ｓ２５０    フレームレート判定ステップ
Ｓ２６０    顔検出範囲限定解除ステップ
【図１】
0005523343.tif 000002
【図２】
0005523343.tif 000003
【図３】
0005523343.tif 000004
【図４】
0005523343.tif 000005
【図５】
0005523343.tif 000006
【図６】
0005523343.tif 000007
【図７Ａ】
0005523343.tif 000008
【図７Ｂ】
0005523343.tif 000009
【図８】
0005523343.tif 000010
【図９】
0005523343.tif 000011
【図１０】
0005523343.tif 000012
【図１１】
0005523343.tif 000013