(57)【特許請求の範囲】
【請求項１】
入力画像における画像上の特徴量に基づいて、前記入力画像が所定の向きの顔を含む顔画像である蓋然性を示す指標値を、前記所定の向きを複数の異なる向きに変えてそれぞれ算出するステップと、
前記異なる向きの顔について算出された複数の指標値の合計の大小に基づいて前記入力画像が顔を含む顔画像であるか否かを判別し、前記入力画像が前記顔画像であると判別されたときには、さらに、前記算出された複数の指標値間の比率に基づいて該顔の向きを特定するステップとを有することを特徴とする顔判別方法。
【請求項２】
前記指標値を算出するステップが、前記複数の異なる向きの各々について、該向きの顔を表す複数の異なるサンプル画像により該向きの顔の特徴を学習した指標値算出器を用いて前記指標値を算出するステップであることを特徴とする請求項１記載の顔判別方法。
【請求項３】
前記複数の異なる向きが、正面、左横および右横であることを特徴とする請求項１または２記載の顔判別方法。
【請求項４】
入力画像における画像上の特徴量に基づいて、前記入力画像が所定の向きの顔を含む顔画像である蓋然性を示す指標値を、前記所定の向きを複数の異なる向きに変えてそれぞれ算出する指標値算出手段と、
前記異なる向きの顔について算出された複数の指標値の合計の大小に基づいて前記入力画像が顔を含む顔画像であるか否かを判別し、前記入力画像が前記顔画像であると判別されたときには、さらに、前記算出された複数の指標値間の比率に基づいて該顔の向きを特定する顔判別手段とを有することを特徴とする顔判別装置。
【請求項５】
前記指標値算出手段が、前記複数の異なる向きの各々について、該向きの顔を表す複数の異なるサンプル画像により該向きの顔の特徴を学習した指標値算出器を用いて前記指標値を算出するものであることを特徴とする請求項４記載の顔判別装置。
【請求項６】
前記複数の異なる向きが、正面、左横および右横であることを特徴とする請求項４または５記載の顔判別装置。
【請求項７】
コンピュータを、
入力画像における画像上の特徴量に基づいて、前記入力画像が所定の向きの顔を含む顔画像である蓋然性を示す指標値を、前記所定の向きを複数の異なる向きに変えてそれぞれ算出する指標値算出手段、
前記異なる向きの顔について算出された複数の指標値の合計の大小に基づいて前記入力画像が顔を含む顔画像であるか否かを判別し、前記入力画像が前記顔画像であると判別されたときには、さらに、前記算出された複数の指標値間の比率に基づいて該顔の向きを特定する顔判別手段、として機能させることにより、
該コンピュータを、顔判別装置として機能させるためのプログラム。
【請求項８】
前記指標値算出手段が、前記複数の異なる向きの各々について、該向きの顔を表す複数の異なるサンプル画像により該向きの顔の特徴を学習した指標値算出器を用いて前記指標値を算出するものであることを特徴とする請求項７記載のプログラム。
【請求項９】
前記複数の異なる向きが、正面、左横および右横であることを特徴とする請求項７または８記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、顔を含むデジタル顔画像におけるこの顔の向きを特定する顔向き特定方法、入力されたデジタル画像が顔を含む顔画像であるか否かを判別する顔判別方法およびこれらの方法を実施するための装置並びにプログラムに関するものである。
【背景技術】
【０００２】
従来、特に、画像補正処理、セキュリティシステム、デジタルカメラ制御等の分野において、デジタル画像上で顔を含む顔画像を検出する顔検出方法が研究されており、種々の顔検出方法が提案されている。その方法の１つとして、デジタル画像上でサブウィンドウを走査しながら、このサブウィンドウの画像が顔を含む顔画像であるか否かを、判別器を用いて順次判別することにより、このデジタル画像上の顔画像を検出する顔検出方法が提案されている（例えば、非特許文献１，特許文献１）。
【０００３】
ところで、顔画像には、正面を向いた正面顔を含む正面顔画像、横を向いた横顔を含む横顔画像、斜めを向いた斜め顔を含む斜め顔画像など、検出しようとする顔の向きの数に応じた数の種類が存在し、それぞれ画像上の特徴が異なる。そこで、検出対象画像上で顔の向きが異なる複数種類の顔画像をともに検出する場合には、一般的に、その顔画像の種類毎に、すなわち、検出しようとする顔の向き毎に別々の判別器を用いることが多い。例えば、正面顔画像を判別するための判別器には、正面顔を表す複数の異なるサンプル画像により正面顔の特徴と学習した判別器を用い、横顔画像を判別するための判別器には、横顔を表す複数の異なるサンプル画像により横顔の特徴を学習した判別器を用い、斜め顔画像を判別するための判別器には、斜め顔を表す複数の異なるサンプル画像により斜め顔の特徴を学習した判別器を用いる。
【０００４】
したがって、検出された顔画像がどの向きの顔を含む顔画像であるのか識別したい場合や、特定の向きの顔を含む顔画像だけを検出したい場合等においては、顔の向きを検出したい顔の向きの分解能に応じて段階的に分けて、それぞれの向きについて判別器を用意する必要がある。
【非特許文献１】「高速全方向顔検出」，Shihong LAO他，画像の認識・理解シンポジウム（MIRU2004），２００４年７月，P.II-271−II-276
【特許文献１】ＵＳ２００２／０１０２０２４ Ａ１（米国特許出願公開公報）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記のように検出または識別したい顔の向き毎に判別器を用意する方法においては、顔の向き毎に用意された多数の判別器を用いて判別処理しなければならず、処理に時間がかかるという問題がある。
【０００６】
本発明は、上記事情に鑑み、短い処理時間で、注目するデジタル顔画像におけるその顔の任意の向きを特定することが可能な顔向き特定方法および装置並びにそのためのプログラムと、短い処理時間で、注目するデジタル画像が顔画像であるか否かを判別するとともに、その顔の任意の向きを特定することが可能な顔判別方法および装置並びにそのためのプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【０００７】
本発明の顔向き特定方法は、顔を含む入力画像における画像上の特徴量に基づいて、前記入力画像が所定の向きの顔を含む顔画像である蓋然性を示す指標値を、前記所定の向きを複数の異なる向きに変えてそれぞれ算出するステップと、前記異なる向きの顔について算出された複数の指標値間の比率に基づいて、前記入力画像に含まれる顔の向きを特定するステップとを有することを特徴とする方法である。
【０００８】
本発明の顔向き特定方法において、前記指標値を算出するステップは、前記複数の異なる向きの各々について、該向きの顔を表す複数の異なるサンプル画像により該向きの顔の特徴を学習した指標値算出器を用いて前記指標値を算出するステップであってもよい。
【０００９】
本発明の顔向き特定方法において、前記複数の異なる向きは、正面、左横および右横であってもよいし、右斜め横および左斜め横であってもよい。
【００１０】
本発明の顔判別方法は、入力画像における画像上の特徴量に基づいて、前記入力画像が所定の向きの顔を含む顔画像である蓋然性を示す指標値を、前記所定の向きを複数の異なる向きに変えてそれぞれ算出するステップと、前記異なる向きの顔について算出された複数の指標値の合計の大小に基づいて前記入力画像が顔を含む顔画像であるか否かを判別し、前記入力画像が前記顔画像であると判別されたときには、さらに、前記算出された複数の指標値間の比率に基づいて該顔の向きを特定するステップとを有することを特徴とする方法である。
【００１１】
本発明の顔判別方法において、前記指標値を算出するステップは、前記複数の異なる向きの各々について、該向きの顔を表す複数の異なるサンプル画像により該向きの顔の特徴を学習した指標値算出器を用いて前記指標値を算出するステップであってもよい。
【００１２】
本発明の顔判別方法において、前記複数の異なる向きは、正面、左横および右横であってもよいし、右斜め横および左斜め横であってもよい。
【００１３】
本発明の顔向き特定装置は、顔を含む入力画像における画像上の特徴量に基づいて、前記入力画像が所定の向きの顔を含む顔画像である蓋然性を示す指標値を、前記所定の向きを複数の異なる向きに変えてそれぞれ算出する指標値算出手段と、前記異なる向きの顔について算出された複数の指標値間の比率に基づいて、前記入力画像に含まれる顔の向きを特定する顔向き特定手段とを備えたことを特徴とするものである。
【００１４】
本発明の顔向き特定装置において、前記指標値算出手段は、前記複数の異なる向きの各々について、該向きの顔を表す複数の異なるサンプル画像により該向きの顔の特徴を学習した指標値算出器を用いて前記指標値を算出するものであってもよい。
【００１５】
本発明の顔向き特定装置において、前記複数の異なる向きは、正面、左横および右横であってもよいし、右斜め横および左斜め横であってもよい。
【００１６】
本発明の顔判別装置は、入力画像における画像上の特徴量に基づいて、前記入力画像が所定の向きの顔を含む顔画像である蓋然性を示す指標値を、前記所定の向きを複数の異なる向きに変えてそれぞれ算出する指標値算出手段と、前記異なる向きの顔について算出された複数の指標値の合計の大小に基づいて前記入力画像が顔を含む顔画像であるか否かを判別し、前記入力画像が前記顔画像であると判別されたときには、さらに、前記算出された複数の指標値間の比率に基づいて該顔の向きを特定する顔判別手段とを有することを特徴とするものである。
【００１７】
本発明の顔判別装置において、前記指標値算出手段は、前記複数の異なる向きの各々について、該向きの顔を表す複数の異なるサンプル画像により該向きの顔の特徴を学習した指標値算出器を用いて前記指標値を算出するものであってもよい。
【００１８】
本発明の顔判別装置において、前記複数の異なる向きは、正面、左横および右横であってもよいし、右斜め横および左斜め横であってもよい。
【００１９】
本発明の第１のプログラムは、コンピュータを、顔を含む入力画像における画像上の特徴量に基づいて、前記入力画像が所定の向きの顔を含む顔画像である蓋然性を示す指標値を、前記所定の向きを複数の異なる向きに変えてそれぞれ算出する指標値算出手段、前記異なる向きの顔について算出された複数の指標値間の比率に基づいて、前記入力画像に含まれる顔の向きを特定する顔向き特定手段、として機能させることにより、該コンピュータを、顔向き特定装置として機能させるためのプログラムである。
【００２０】
本発明の第１のプログラムにおいて、前記指標値算出手段は、前記複数の異なる向きの各々について、該向きの顔を表す複数の異なるサンプル画像により該向きの顔の特徴を学習した指標値算出器を用いて前記指標値を算出するものであってもよい。
【００２１】
本発明の第１のプログラムにおいて、前記複数の異なる向きは、正面、左横および右横であってもよいし、右斜め横および左斜め横であってもよい。
【００２２】
本発明の第２のプログラムは、コンピュータを、入力画像における画像上の特徴量に基づいて、前記入力画像が所定の向きの顔を含む顔画像である蓋然性を示す指標値を、前記所定の向きを複数の異なる向きに変えてそれぞれ算出する指標値算出手段、前記異なる向きの顔について算出された複数の指標値の合計の大小に基づいて前記入力画像が顔を含む顔画像であるか否かを判別し、前記入力画像が前記顔画像であると判別されたときには、さらに、前記算出された複数の指標値間の比率に基づいて該顔の向きを特定する顔判別手段、として機能させることにより、該コンピュータを、顔判別装置として機能させるためのプログラムである。
【００２３】
本発明の第２のプログラムにおいて、前記指標値算出手段は、前記複数の異なる向きの各々について、該向きの顔を表す複数の異なるサンプル画像により該向きの顔の特徴を学習した指標値算出器を用いて前記指標値を算出するものであってもよい。
【００２４】
本発明の第２のプログラムにおいて、前記複数の異なる向きは、正面、左横および右横であってもよいし、右斜め横および左斜め横であってもよい。
【００２５】
本発明において、顔の「向き」とは、左右首振り方向における向きを意味する。
【００２６】
また、「指標値算出器」としては、いわゆるマシンラーニングの手法により学習されたものを考えることができ、例えば、ブースティング（Ｂｏｏｓｔｉｎｇ）と称される手法、特にアダブースト（ＡｄａＢｏｏｓｔ）学習アルゴリズムにより学習されたものを考えることができる。
【００２７】
これらマシンラーニングの手法により学習された結果物としては、注目画像が顔を含む顔画像であるか否かを判別する判別器がよく知られている。この判別器は、注目画像の画像上の特徴量に基づいて注目画像が顔画像である蓋然性を示す指標値を算出し、その指標値の閾値判定により判別するものが一般的である。そこで、本発明における「指標値算出器」は、この「判別器」の指標値算出機能部分として考えることができる。
【発明の効果】
【００２８】
本発明の顔向き特定方法および装置並びにそのための第１のプログラムによれば、顔を含む入力画像における画像上の特徴量に基づいて、入力画像が所定の向きの顔を含む顔画像である蓋然性を示す指標値を、この所定の向きを複数の異なる向きに変えてそれぞれ算出するので、入力画像に含まれる顔の向きの情報を、その顔の向きに依らず、上記複数の異なる向きの各顔に対応した成分に分けて各指標値に反映させることができ、また、異なる向きの顔について算出された複数の指標値間の比率に基づいてこの顔の向きを特定するので、これら限られた複数の指標値の簡単な評価だけで顔の向きを特定することができ、短い処理時間で、注目するデジタル顔画像におけるその顔の向きを細かく特定することが可能となる。
【００２９】
また、本発明の顔判別方法および装置並びにそのための第２のプログラムによれば、入力画像における画像上の特徴量に基づいて、入力画像が所定の向きの顔を含む顔画像である蓋然性を示す指標値を、この所定の向きを複数の異なる向きに変えてそれぞれ算出するので、入力画像が顔画像である蓋然性の高さとその顔の向きの情報を、その顔の向きに依らず、上記複数の異なる向きの各顔に対応した成分に分けて各指標値に反映させることができ、また、異なる向きの顔について算出された複数の指標値の合計の大小に基づいて入力画像が顔を含む顔画像であるか否かを判別するとともに、算出された複数の指標値間の比率に基づいてこの顔の向きを特定するので、これら限られた複数の指標値の簡単な評価だけで、顔画像であるか否かを判別し顔の向きを特定することができ、短い処理時間で、注目するデジタル画像が顔画像であるか否かを判別するとともに、その顔の向きを細かく特定することが可能となる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明の実施形態について説明する。
【００３１】
図１は本発明の顔検出装置が適用された顔検出システム１の構成を示す概略ブロック図である。この顔検出システム１は、デジタル画像において顔を含む顔画像を、その顔の位置や大きさ、顔の向き、顔の傾きによらず検出するものである。ここで、顔の向きとは、左右首振り方向における向きを意味し、顔の傾きとは、インプレーン（画像面内）方向における傾き（回転位置）を意味するものである。
【００３２】
本顔検出システム１は、特に検出精度、ロバスト性が優れているとされる顔検出の手法として、サンプル画像を用いたマシンラーニングの学習により生成された判別器モジュール（以下、単に判別器という）を用いる手法を採用したものである。この手法は、顔の傾きおよび向きが略揃った複数の異なる顔サンプル画像からなる顔サンプル画像群と、顔でないことが分かっている複数の異なる非顔サンプル画像からなる非顔サンプル画像群とを用いて、顔の特徴を学習させ、ある画像が所定の傾きと向きを持つ顔の画像であるか否かを判別できる判別器を生成して用意しておき、顔画像の検出対象となる画像（以下、検出対象画像という）において部分画像を順次切り出し、その部分画像が顔画像であるか否かを上記の判別器を用いて判別することにより、検出対象画像上の顔画像を検出する手法である。
【００３３】
なお、この手法では、順次切り出した部分画像の各々に対して顔画像であるか否かの判別を行うので、はじめから精度の高い検出をしようとするとその処理量が膨大となり、顔画像の検出に時間がかかるという問題がある。そこで、ここでは、判別処理の効率化を図るため、まず、検出対象画像に対して比較的ラフな顔検出処理（例えば、順次切り出す部分画像の位置を間引きする等）を施して顔画像候補を抽出し、次に、抽出された顔画像候補近傍の画像に対して、精細な判別処理を施してその顔画像候補が真の顔画像であるか否かを判別するようにしている。
【００３４】
顔検出システム１は、図１に示すように、多重解像度化部１０、正規化部２０、顔検出部５０、重複検出判定部６０を備えている。顔検出部５０は、さらに、検出制御部（顔判別手段）５１、解像度画像選択部５２、サブウィンドウ設定部５３、第１の判別器群５４および第２の判別器群（指標値算出手段）５５を備えている。
【００３５】
多重解像度化部１０は、入力された検出対象画像Ｓ０を多重解像度化して解像度の異なる複数の画像（Ｓ１＿１，Ｓ１＿２，・・・，Ｓ１＿ｎ；以下、解像度画像という）からなる解像度画像群Ｓ１を得るものである。すなわち、多重解像度化部１０は、検出対象画像Ｓ０の解像度（画像サイズ）を変換することにより、その解像度を所定の解像度、例えば、短辺が４１６画素の矩形サイズの画像に規格化し、規格化済みの入力画像Ｓ０′を得、この規格化済みの入力画像Ｓ０′を基本としてさらに解像度変換を行うことにより、解像度の異なる複数の解像度画像を生成し、解像度画像群Ｓ１を得るものである。
【００３６】
このような解像度画像群を生成する理由は、通常、検出対象画像に含まれる顔の大きさは不明であるが、一方、検出しようとする顔の大きさ（画像サイズ）は、後述の判別器の生成方法と関連して一定の大きさに固定されるため、大きさの異なる顔を検出するためには、解像度の異なる画像上で位置をずらしながら所定サイズの部分画像をそれぞれ切り出し、その部分画像が顔画像であるか否かを判別してゆく必要があるためである。
【００３７】
図２は、検出対象画像の多重解像度化の工程を示した図である。多重解像度化、すなわち、解像度画像群の生成は、具体的には、図２に示すように、規格化済みの検出対象画像Ｓ０′を基本となる解像度画像Ｓ１＿１とし、解像度画像Ｓ１＿１に対して２の−１／３乗倍サイズの解像度画像Ｓ１＿２と、解像度画像Ｓ１＿２に対して２の−１／３乗倍サイズ（基本画像Ｓ１＿１に対しては２の−２／３乗倍サイズ）の解像度画像Ｓ１＿３とを先に生成し、その後、解像度画像Ｓ１＿１，Ｓ１＿２，Ｓ１＿３のそれぞれを１／２倍サイズに縮小した解像度画像を生成し、それら縮小した解像度画像をさらに１／２倍サイズに縮小した解像度画像を生成する、といった処理を繰り返し行い、複数の解像度画像を所定の数だけ生成するようにする。このようにすることで、輝度を表す画素値の補間処理を必要としない１／２倍の縮小処理を主な処理とし、基本となる解像度画像から２の−１／３乗倍ずつサイズが縮小された複数の画像が高速に生成できる。例えば、解像度画像Ｓ１＿１が短辺４１６画素の矩形サイズである場合、解像度画像Ｓ１＿２，Ｓ１＿３，・・・は、短辺がそれぞれ、３３０画素，２６２画素，２０８画素，１６５画素，１３１画素，１０４画素，８２画素，６５画素，・・・の矩形サイズとなり、２の−１／３乗倍ずつ縮小された複数の解像度画像を生成することができる。なお、このように画素値を補間しないで生成される画像は、元の画像パターンの特徴をそのまま担持する傾向が強いので、顔検出処理において精度向上が期待できる点で好ましい。
【００３８】
正規化部２０は、解像度画像のコントラストの状態が、後に実行される顔検出処理に適した状態となるように、解像度画像の各々に対して全体正規化処理および局所正規化処理を施し、正規化済みの複数の解像度画像（Ｓ１′＿１，Ｓ１′＿２，・・・，Ｓ１′＿ｎ）からなる解像度画像群Ｓ１′を得るものである。
【００３９】
まず、全体正規化処理について説明する。全体正規化処理は、解像度画像のコントラストを顔検出処理に適した所定のレベル、すなわち、後述の判別器の性能を引き出すのに適したレベルに近づけるべく、解像度画像全体の画素値をこの画像における被写体の輝度の対数を表す値に近づける変換曲線にしたがって変換する処理である。
【００４０】
図３は全体正規化処理に用いる変換曲線の一例を示した図である。全体正規化処理としては、例えば、図３に示すような、画素値をｓＲＧＢ空間におけるいわゆる逆ガンマ変換（＝２．２乗する）した後にさらに対数をとるような変換曲線（ルックアップテーブル）にしたがって、画像全体における画素値を変換する処理を考えることができる。これは、次のような理由による。
【００４１】
画像として観測される光強度Ｉは、通常、被写体の反射率Ｒと光源の強度Ｌの積として表現される（Ｉ＝Ｒ×Ｌ）。したがって、光源の強度Ｌが変化すると、画像として観測される光強度Ｉも変化することになるが、被写体の反射率Ｒのみを評価することができれば、光源の強度Ｌに依存しない、すなわち、画像の明るさの影響を受けない精度の高い顔判別を行うことができる。
【００４２】
ここで、光源の強度がＬの場合において、被写体上で反射率がＲ１の部分から観測される光強度をＩ１、被写体上で反射率がＲ２の部分から観測される光強度をＩ２としたとき、それぞれの対数をとった空間では、下記の式が成り立つ。  
ｌｏｇ（Ｉ１）−ｌｏｇ（Ｉ２）＝ｌｏｇ（Ｒ１×Ｌ）−ｌｏｇ（Ｒ２×Ｌ）＝ｌｏｇ（Ｒ１）＋ｌｏｇ（Ｌ）−（ｌｏｇ（Ｒ２）＋ｌｏｇ（Ｌ））＝ｌｏｇ（Ｒ１）−ｌｏｇ（Ｒ２）＝ｌｏｇ（Ｒ１／Ｒ２）
【００４３】
すなわち、画像における画素値を対数変換することは、反射率の比が差として表現された空間へ変換することとなり、このような空間では、光源の強度Ｌに依存しない被写体の反射率のみを評価することが可能となる。言い換えると、画像中の明るさによって異なるコントラスト（ここでは画素値の差分そのもの）を揃えることができる。
【００４４】
一方、一般的なデジタルカメラ等の機器で取得された画像の色空間はｓＲＧＢである。ｓＲＧＢとは、機器間の色再現の違いを統一するために、色彩、彩度等を規定・統一した国際標準の色空間のことであり、この色空間においては、ガンマ値（γout）が２．２の画像出力機器において適正な色再現を可能にするため、画像の画素値は、入力輝度を１／γout（＝０．４５）乗して得られる値となっている。
【００４５】
そこで、画像全体における画素値を、いわゆる逆ガンマ変換、すなわち、２．２乗した後にさらに対数をとるような変換曲線にしたがって変換することにより、光源の強度に依存しない被写体の反射率のみによる評価を適正に行うことができるようになる。
【００４６】
なお、このような全体正規化処理は、別の言い方をすれば、画像全体における画素値を、特定の色空間を別の特性を有する色空間に変換する変換曲線にしたがって変換する処理ということができる。
【００４７】
このような処理を検出対象画像に施すことにより、画像中の明るさによって異なるコントラストを揃えることができ、顔検出処理の精度が向上することとなる。なお、この全体正規化処理は、処理結果が検出対象画像中の斜光や背景、入力モダリティの違いによる影響を受けやすい反面、処理時間が短いという特徴を有する。
【００４８】
次に、局所正規化処理について説明する。局所正規化処理とは、解像度画像上の局所的な領域におけるコントラストのばらつきを抑制するための処理である。すなわち、解像度画像に対して、この解像度画像における各局所領域について、輝度を表す画素値の分散の程度が所定レベル以上である局所領域に対して、この分散の程度を上記の所定レベルより高い一定レベルに近づける第１の輝度階調変換処理を施し、画素値の分散の程度が上記の所定レベル未満である局所領域に対して、この分散の程度を上記の一定レベルより低いレベルに抑える第２の輝度階調変換処理を施すものである。なお、この局所正規化処理は、処理時間は長いが、検出対象画像中の斜光や背景、入力モダリティの違いによる判別結果への影響は小さいという特徴を有する。
【００４９】
図４は局所正規化処理の概念を示した図であり、図５は局所正規化処理のフローを示した図である。また、式（１），（２）は、この局所正規化処理のための画素値の階調変換の式である。
【数１】
0004708948.tif 000002
【００５０】
ここで、Ｘは注目画素の画素値、Ｘ′は注目画素の変換後の画素値、ｍlocalは注目画素を中心とする局所領域における画素値の平均、Ｖlocalはこの局所領域における画素値の分散、ＳＤlocalはこの局所領域における画素値の標準偏差、（Ｃ１×Ｃ１）は上記の一定レベルに対応する基準値、Ｃ２は上記の所定レベルに対応する閾値、ＳＤｃは所定の定数である。なお、本実施形態において、輝度の階調数は８ｂｉｔとし、画素値の取り得る値は０から２５５とする。
【００５１】
図４に示すように、まず、部分画像Ｗ２における１つの画素を注目画素として設定し（ステップＳ１）、この注目画素を中心とする所定の大きさ、例えば１１×１１画素サイズの局所領域における画素値の分散Ｖlocalを算出し（ステップＳ２）、分散Ｖlocalが上記所定のレベルに対応する閾値Ｃ２以上であるか否かを判定する（ステップＳ３）。ステップＳ３において、分散Ｖlocalが閾値Ｃ２以上であると判定された場合には、上記第１の輝度階調変換処理として、分散Ｖlocalが上記一定のレベルに対応する基準値（Ｃ１×Ｃ１）より大きいほど、注目画素の画素値Ｘと平均ｍlocalとの差を小さくし、分散ｍlocalが基準値（Ｃ１×Ｃ１）より小さいほど、注目画素の画素値Ｘと平均ｍlocalとの差を大きくする階調変換を式（１）にしたがって行う（ステップＳ４）。一方、ステップＳ３において、分散Ｖlocalが閾値Ｃ２未満であると判定された場合には、上記第２の輝度階調変換処理として、分散Ｖlocalに依らない線形な階調変換を式（２）にしたがって行う（ステップＳ５）。そして、ステップＳ１で設定した注目画素が最後の画素であるか否かを判定する（ステップＳ６）。ステップＳ６において、その注目画素が最後の画素でないと判定された場合には、ステップＳ１に戻り、同じ部分画像上の次の画素を注目画素として設定する。一方、ステップＳ６において、その注目画素が最後の画素であると判定された場合には、その部分画像に対する局所正規化を終了する。このように、上記ステップＳ１からＳ６の処理を繰り返すことにより、解像度画像全体に局所正規化を施すことができる。
【００５２】
なお、上記の所定レベルは、局所領域における全体または一部の輝度に応じて変化させるようにしてもよい。例えば、上記の、注目画素毎に階調変換を行う正規化処理において、閾値Ｃ２を注目画素の画素値に応じて変化させるようにしてもよい。すなわち、上記の所定レベルに対応する閾値Ｃ２を、注目画素の輝度が相対的に高いときにはより高く設定し、その輝度が相対的に低いときにはより低く設定するようにしてもよい。このようにすることで、輝度の低い、いわゆる暗い領域に低いコントラスト（画素値の分散が小さい状態）で存在している顔も正しく正規化することができる。
【００５３】
なお、ここでは、検出すべき顔の傾きを、入力画像Ｓ０の天地方向を基準に入力画像Ｓ０の画像面内において３０度刻みで回転して設定される計１２種類の傾きとし、検出すべき顔の傾きの順序が初期設定として予め所定の順序で設定されている。例えば、入力画像Ｓ０の天地方向を基準に時計回りの回転角度で表すとして、上向き３方向である０度、３３０度、３０度、右向き３方向である９０度、６０度、１２０度、左向き３方向である２７０度、２４０度、３００度、そして、下向き３方向である１８０度、１５０度、２１０度の順序とする。
【００５４】
顔検出部５０は、正規化部２０により正規化処理がなされた解像度画像群Ｓ１′の各解像度画像に対して、検出すべき顔の傾きを予め設定された順序にしたがって変えながら顔検出処理を施すことにより、各解像度画像に含まれる顔画像Ｓ２を所定数検出するものであり、上述のように、検出制御部（顔判別手段）５１、解像度画像選択部５２、サブウィンドウ設定部５３、第１の判別器群５４、および第２の判別器群（指標値算出手段）５５とから構成されている。
【００５５】
検出制御部５１は、顔検出部５０を構成する他の各部を制御して顔検出処理におけるシーケンス制御を主に行うものである。すなわち、解像度画像群Ｓ１′の各解像度画像に対して、顔画像の候補となる顔画像候補をラフに検出し、さらにその顔画像候補が真の顔画像であるか否かを判別し、真の顔画像Ｓ２を検出するという段階的な顔検出処理を行ったり、検出すべき顔の傾きについて、顔傾き順序設定部４０により設定された順序で検出を行ったりするべく、解像度画像選択部５２、サブウィンドウ設定部５３および第１および第２の判別器群５４，５５を制御する。例えば、検出制御部５１は、適宜、解像度画像選択部５２に対して解像度画像の選択を指示したり、サブウィンドウ設定部５３に対してサブウィンドウの設定条件を指示したり、また、第１および第２の判別器群５４，５５を構成する判別器のうち使用する判別器の種類を切り替えたりする。なお、サブウィンドウ設定条件には、サブウィンドウを設定する画像上の範囲、サブウィンドウの移動間隔（検出の粗さ）の他、判別に用いる判別器群の別（ラフ／高精度の検出モード）等が含まれる。
【００５６】
また、検出制御部５１は、判別すべき顔の傾きが同一で判別すべき顔の向きが異なる複数種類の判別器から算出された複数のスコアの合計の大小に基づいて、ある部分画像が顔画像であるか否かを判別したり、これら複数のスコア間の比率に基づいて顔画像における顔の任意の向きを特定したりする機能をも有するものである。
【００５７】
解像度画像選択部５２は、検出制御部５１の制御により、解像度画像群Ｓ１′の中から顔検出処理に供する解像度画像をサイズの小さい順に（解像度の粗い順に）順次選択するものである。なお、本実施形態における顔検出の手法が、各解像度画像上で順次切り出された同じサイズの部分画像Ｗ１についてその部分画像Ｗ１が顔画像であるか否かを判別することにより入力画像Ｓ０における顔画像を検出する手法であるから、この解像度画像選択部５２は、入力画像Ｓ０における検出すべき顔の大きさを毎回変えながら設定するものであって、検出すべき顔の大きさを大から小へ変えながら設定するものと同等なものということができる。
【００５８】
サブウィンドウ設定部５３は、検出制御部５１により設定されたサブウィンドウ設定条件に基づいて、解像度画像選択部５２により選択された解像度画像において、顔画像であるか否かの判別対象となる部分画像Ｗ１を切り出すサブウィンドウを、その位置をずらしながら順次設定するものである。
【００５９】
例えば、上記のラフな検出を行う場合には、上記の選択された解像度画像において、所定のサイズすなわち３２×３２画素サイズの部分画像Ｗ１を切り出すサブウィンドウを、所定画素数分、例えば５画素ずつ移動させながら順次設定し、その切り出された部分画像Ｗ１を第１の判別器群５４へ入力する。判別器群を構成する各判別器は、後述のように、それぞれ、ある画像が所定の傾きおよび向きの顔を含む顔画像である蓋然性を示すスコアを算出するものであるから、このスコアを評価することで、あらゆる向きにある顔の顔画像を判別することが可能となる。また、上記の顔画像候補についてさらに精細な検出処理を行う場合には、その解像度画像のうち顔画像候補を含む所定の大きさの近傍領域内に限定して、またサブウィンドウをより短い間隔で、例えば１画素ずつ移動させながら順次設定し、上記と同様に部分画像（入力画像）Ｗ２の切り出しを行い、その切り出された部分画像Ｗ２を第２の判別器群５５へ入力する。
【００６０】
第１および第２の判別器群５４，５５は、本来的には、サブウィンドウによって切り出された部分画像Ｗ１またはＷ２が顔画像であるか否かを判別する複数種類の判別器からなるものであるが、この判別器は、部分画像Ｗ１またはＷ２が所定の向きの顔を含む顔画像である蓋然性を示すスコア（指標値）を算出するスコア算出器（指標値算出器）としての機能を有するものであり、本実施形態においては、この第１および第２の判別器群５４，５５をスコア算出器群として用いる。
【００６１】
第１の判別器群５４は、部分画像Ｗ１が所定の向きの顔を含む顔画像である蓋然性を示すスコアを比較的高速に算出する複数種類の判別器で構成されており、解像度画像における顔画像の候補をラフに検出するために用いられるものである。一方、第２の判別器群５５は、部分画像Ｗ２が所定の向きの顔を含む顔画像である蓋然性を示すスコアを比較的高精度に算出する複数種類の判別器で構成されており、上記のラフな検出によって検出された顔画像候補についてより細かい検出処理を施し、顔画像候補が真の顔画像Ｓ２であるか否かを判別するために用いられるものである。
【００６２】
図６は第１および第２の判別器群５４，５５の構成を示した図である。第１の判別器群５４は、図６に示すように、判別すべき顔の向きがそれぞれ異なる複数種類の判別器群、すなわち、主に正面顔画像を判別する第１の正面顔判別器群５４＿Ｆ、主に左横顔画像を判別する第１の左横顔判別器群５４＿Ｌおよび主に右横顔画像を判別する第１の右横顔判別器群５４＿Ｒが並列に接続された構成である。さらに、これら３種の判別器群はそれぞれ、判別すべき顔の傾きが上記の部分画像の天地方向を基準として３０度ずつ異なる計１２方向に対応した判別器、すなわち、第１の正面顔判別器群５４＿Ｆは、判別器５４＿Ｆ０，５４＿Ｆ３０，・・・，５４＿Ｆ３３０、第１の左横顔判別器群５４＿Ｌは、判別器５４＿Ｌ０，５４＿Ｌ３０，・・・，５４＿Ｌ３３０、第１の右横顔判別器群５４＿Ｒは、判別器５４＿Ｒ０，５４＿Ｒ３０，・・・，５４＿Ｒ３３０から構成されている。
【００６３】
第２の判別器群５５も、第１の判別器群と同様、図６に示すように、判別すべき顔の向きがそれぞれ異なる複数種類の判別器群、すなわち、主に正面顔画像を判別する第２の正面顔判別器群５５＿Ｆ、主に左横顔画像を判別する第２の左横顔判別器群５５＿Ｌおよび主に右横顔画像を判別する第２の右横顔判別器群５５＿Ｒが並列に接続された構成である。さらに、これら３種の判別器群は第１の判別器群と同様、それぞれ、判別すべき顔の傾きが部分画像の天地方向を基準として３０度ずつ異なる計１２方向に対応した判別器、すなわち、第２の正面顔判別器群５５＿Ｆは、判別器５５＿Ｆ０，５５＿Ｆ３０，・・・，５５＿Ｆ３３０、第２の左横顔判別器群５５＿Ｌは、判別器５５＿Ｌ０，５５＿Ｌ３０，・・・，５５＿Ｌ３３０、第２の右横顔判別器群５５＿Ｒは、判別器５５＿Ｒ０，５５＿Ｒ３０，・・・，５５＿Ｒ３３０から構成されている。
【００６４】
なお、上記の各判別器は、図６に示すように、複数の弱判別器ＷＣが線形に結合したカスケード構造を有しており、弱判別器は、部分画像Ｗ１またはＷ２（以下、単に部分画像Ｗという）の画素値（輝度）の分布に係る少なくとも１つの特徴量を算出し、この特徴量を用いてこの部分画像Ｗ１が所定の向きの顔を含む顔画像である蓋然性を示すスコアを算出するものである。
【００６５】
また、上記第１および第２の判別器群５４，５５は、いずれも、判別可能な主な顔の画像面外の向きを正面顔、左横顔および右横顔の３種としているが、右斜め顔、左斜め顔をそれぞれ判別する判別器としてもよい。
【００６６】
重複検出判定部６０は、顔検出部５０によって検出された真の顔画像Ｓ２の位置情報に基づいて、解像度画像群Ｓ１′の各解像度画像上で検出された顔画像のうち同一の顔を表す画像、すなわち重複して検出された顔画像をそれぞれ１つの顔画像としてまとめる処理を行い、入力画像Ｓ０において検出された真の顔画像Ｓ３を出力する。判別器は、学習方法にもよるが、一般的に部分画像Ｗのサイズに対して検出できる顔の大きさにはある程度幅があるので、解像度レベルが隣接する複数の解像度画像において、同一の顔を表す画像が重複して検出される場合があるからである。
【００６７】
ここで、判別器群を構成する各判別器の構成、判別器における処理の流れおよび判別器の学習方法について説明する。
【００６８】
判別器は、図６に示すように、複数の弱判別器ＷＣからなり、後述の学習により多数の弱判別器ＷＣの中から選定された判別に有効な弱判別器ＷＣからなるものである。弱判別器ＷＣには、それぞれ、その弱判別器に固有の特徴量算出アルゴリズムとスコアテーブル（後述の自己のヒストグラム）があり、各弱判別器ＷＣは、部分画像Ｗから特徴量を算出し、その特徴量とスコアテーブルとに基づいて、部分画像Ｗが所定の傾きおよび所定の向きの顔を含む顔画像である蓋然性を示すスコアを算出するものである。判別器は、これら複数の弱判別器ＷＣの各々から得られたスコアをすべて足し合わせ、部分画像Ｗが所定の傾きおよび所定の向きの顔を含む顔画像である蓋然性を示す最終的なスコアとして算出するものである。
【００６９】
部分画像Ｗが判別器に入力されると、第１番目の弱判別器ＷＣにおいて特徴量ｘが算出される。例えば、図７に示すように、所定のサイズ、例えば、３２×３２画素サイズの部分画像Ｗに対して、４近傍画素平均（画像を２×２画素サイズ毎に複数のブロックに区分し、各ブロックの４画素における画素値の平均値をそのブロックに対応する１つの画素の画素値とする処理）を段階的に行うことにより、１６×１６画素サイズの画像と、８×８画素サイズの縮小した画像を得、もとの画像を含めたこれら３つの画像の平面内に設定される所定の２点を１ペアとして、複数種類のペアからなる１つのペア群を構成する各ペアにおける２点間の画素値（輝度）の差分値をそれぞれ計算し、これらの差分値の組合せを特徴量とする。各ペアの所定の２点は、例えば、画像上の顔の濃淡の特徴が反映されるよう決められた縦方向に並んだ所定の２点や、横方向に並んだ所定の２点とする。そして、特徴量である差分値の組合せに対応する値をｘとして算出する。次に、その値ｘに応じて所定のスコアテーブル（自己のヒストグラム）から部分画像Ｗが判別すべき顔（例えば、判別器５４＿Ｆ３０の場合には「顔の向きが正面で傾きが回転角度３０度の顔」）を表す画像である蓋然性を示す第１のスコアが求められる。次に、第２番目の弱判別器ＷＣの処理に移行し、第２番目の弱判別器ＷＣに固有の特徴量算出アルゴリズムとスコアテーブルにより、第２のスコアが算出される。このようにして、すべての弱判別器ＷＣによりスコアを算出させ、これらすべてのスコアを足し合わせて得られたスコアを、この判別器による最終的なスコアとする。
【００７０】
次に、判別器の学習（生成）方法について説明する。
【００７１】
図８は判別器の学習方法を示すフローチャートである。判別器の学習には、所定のサイズ、例えば３２×３２画素サイズで規格化され、さらに、前述の正規化部２０による正規化処理と同様の処理が施された複数のサンプル画像を用いる。サンプル画像としては、顔であることが分かっている複数の異なる顔サンプル画像からなる顔サンプル画像群と、顔でないことが分かっている複数の異なる非顔サンプル画像からなる非顔サンプル画像群とを用意する。
【００７２】
顔サンプル画像群は、１つの顔サンプル画像につき、縦および／または横を０．７倍から１．２倍の範囲にて０．１倍単位で段階的に拡縮して得られる各サンプル画像に対し、平面上±１５度の範囲にて３度単位で段階的に回転させて得られる複数の変形バリエーションを用いる。なおこのとき、顔サンプル画像は、目の位置が所定の位置に来るように顔のサイズと位置を規格化し、上記の平面上の回転、拡縮は目の位置を基準として行うようにする。例えば、ｄ×ｄサイズのサンプル画像の場合においては、図９に示すように、両目の位置が、サンプル画像の最左上の頂点と最右上の頂点から、それぞれ、内側に１／４ｄ、下側に１／４ｄ移動した各位置とに来るように顔のサイズと位置を規格化し、また、上記の平面上の回転、拡縮は、両目の中間点を中心に行うようにする。
【００７３】
これら各サンプル画像には、重みすなわち重要度が割り当てられる。まず、すべてのサンプル画像の重みの初期値が等しく１に設定される（ステップＳ２１）。
【００７４】
次に、サンプル画像およびその縮小画像の平面内に設定される所定の２点を１ペアとして複数のペアからなるペア群を複数種類設定したときの、この複数種類のペア群のそれぞれについて弱半別器が作成される（ステップＳ２２）。ここで、それぞれの弱判別器とは、サブウィンドウＷで切り出された部分画像とその縮小画像の平面内に設定される所定の２点を１ペアとして複数のペアからなる１つのペア群を設定したときの、この１つのペア群を構成する各ペアにおける２点間の画素値（輝度）の差分値の組合せを用いて、顔の画像と顔でない画像とを判別する基準を提供するものである。本実施形態においては、１つのペア群を構成する各ペアにおける２点間の画素値の差分値の組合せについてのヒストグラムを弱判別器のスコアテーブルの基礎として使用する。
【００７５】
図１０はサンプル画像からヒストグラムが生成される様子を示した図である。図１０の左側のサンプル画像に示すように、この判別器を作成するためのペア群を構成する各ペアの２点は、顔であることが分かっている複数のサンプル画像において、サンプル画像上の右目の中心にある点をＰ１、右側の頬の部分にある点をＰ２、眉間の部分にある点をＰ３、サンプル画像を４近傍画素平均で縮小した１６×１６画素サイズの縮小画像上の右目の中心にある点をＰ４、右側の頬の部分にある点をＰ５、さらに４近傍画素平均で縮小した８×８画素サイズの縮小画像上の額の部分にある点をＰ６、口の部分にある点をＰ７として、Ｐ１−Ｐ２、Ｐ１−Ｐ３、Ｐ４−Ｐ５、Ｐ４−Ｐ６、Ｐ６−Ｐ７の５ペアである。なお、ある判別器を作成するための１つのペア群を構成する各ペアの２点の座標位置はすべてのサンプル画像において同一である。そして顔であることが分かっているすべてのサンプル画像について上記５ペアを構成する各ペアの２点間の画素値の差分値の組合せが求められ、そのヒストグラムが作成される。ここで、画素値の差分値の組合せとしてとり得る値は、画像の輝度階調数に依存するが、仮に１６ビット階調である場合には、１つの画素値の差分値につき６５５３６通りあり、全体では階調数の（ペア数）乗、すなわち６５５３６の５乗通りとなってしまい、学習および検出のために多大なサンプルの数、時間およびメモリを要することとなる。このため、本実施形態においては、画素値の差分値を適当な数値幅で区切って量子化し、ｎ値化する（例えばｎ＝１００）。これにより、画素値の差分値の組合せの数はｎの５乗通りとなるため、画素値の差分値の組合せを表すデータ数を低減できる。
【００７６】
同様に、顔でないことが分かっている複数の非顔サンプル画像についても、ヒストグラムが作成される。なお、非顔サンプル画像については、顔であることが分かっている顔サンプル画像上における上記各ペアの所定の２点の位置に対応する位置（同様に参照符号Ｐ１からＰ７を用いる）が用いられる。これらの２つのヒストグラムが示す頻度値の比の対数値を取ってヒストグラムで表したものが、図１０の一番右側に示す、弱判別器のスコアテーブルの基礎として用いられるヒストグラムである。この弱判別器のヒストグラムが示す各縦軸の値を、以下、判別ポイントと称する。この弱判別器によれば、正の判別ポイントに対応する、画素値の差分値の組合せの分布を示す画像は顔である可能性が高く、判別ポイントの絶対値が大きいほどその可能性は高まると言える。逆に、負の判別ポイントに対応する画素値の差分値の組合せの分布を示す画像は顔でない可能性が高く、やはり判別ポイントの絶対値が大きいほどその可能性は高まる。ステップＳ２２では、判別に使用され得る複数種類のペア群を構成する各ペアの所定の２点間の画素値の差分値の組合せについて、上記のヒストグラム形式の複数の弱判別器が作成される。
【００７７】
続いて、ステップＳ２２で作成した複数の弱半別器のうち、画像が顔であるか否かを判別するのに最も有効な弱判別器が選択される。最も有効な弱判別器の選択は、各サンプル画像の重みを考慮して行われる。この例では、各弱判別器の重み付き正答率が比較され、最も高い重み付き正答率を示す弱判別器が選択される（ステップＳ２３）。すなわち、最初のステップＳ２３では、各サンプル画像の重みは等しく１であるので、単純にその弱判別器によって画像が顔であるか否かが正しく判別されるサンプル画像の数が最も多いものが、最も有効な弱判別器として選択される。一方、後述するステップＳ２５において各サンプル画像の重みが更新された後の２回目のステップＳ２３では、重みが１のサンプル画像、重みが１よりも大きいサンプル画像、および重みが１よりも小さいサンプル画像が混在しており、重みが１よりも大きいサンプル画像は、正答率の評価において、重みが１のサンプル画像よりも重みが大きい分多くカウントされる。これにより、２回目以降のステップＳ２３では、重みが小さいサンプル画像よりも、重みが大きいサンプル画像が正しく判別されることに、より重点が置かれる。
【００７８】
次に、それまでに選択した弱判別器の組合せの正答率、すなわち、それまでに選択した弱判別器を組み合わせて使用して（学習段階では、弱判別器は必ずしも線形に結合させる必要はない）各サンプル画像が顔の画像であるか否かを判別した結果が、実際に顔の画像であるか否かの答えと一致する率が、所定の閾値を超えたか否かが確かめられる（ステップＳ２４）。ここで、弱判別器の組合せの正答率の評価に用いられるのは、現在の重みが付けられたサンプル画像群でも、重みが等しくされたサンプル画像群でもよい。所定の閾値を超えた場合は、それまでに選択した弱判別器を用いれば画像が顔であるか否かを十分に高い確率で判別できるため、学習は終了する。所定の閾値以下である場合は、それまでに選択した弱判別器と組み合わせて用いるための追加の弱判別器を選択するために、ステップＳ２６へと進む。
【００７９】
ステップＳ２６では、直近のステップＳ２３で選択された弱判別器が再び選択されないようにするため、その弱判別器が除外される。
【００８０】
次に、直近のステップＳ２３で選択された弱判別器では顔であるか否かを正しく判別できなかったサンプル画像の重みが大きくされ、画像が顔であるか否かを正しく判別できたサンプル画像の重みが小さくされる（ステップＳ２５）。このように重みを大小させる理由は、次の弱判別器の選択において、既に選択された弱判別器では正しく判別できなかった画像を重要視し、それらの画像が顔であるか否かを正しく判別できる弱判別器が選択されるようにして、弱判別器の組合せの効果を高めるためである。
【００８１】
続いて、ステップＳ２３へと戻り、上記したように重み付き正答率を基準にして次に有効な弱判別器が選択される。
【００８２】
以上のステップＳ２３からＳ２６を繰り返して、顔であるか否かを判別するのに適した弱判別器として、特定のペア群を構成する各ペアの所定の２点間の画素値の差分値の組合せに対応する弱判別器が選択されたところで、ステップＳ２４で確認される正答率が閾値を超えたとすると、顔であるか否かの判別に用いる弱判別器の種類と判別条件とが確定され（ステップＳ２７）、これにより学習を終了する。なお、選択された弱判別器は、その重み付き正答率が高い順に線形結合され、１つの判別器が構成される。また、各弱判別器については、それぞれ得られたヒストグラムを基に、画素値の差分値の組合せに応じてスコアを算出するためのスコアテーブルが生成される。なお、ヒストグラム自身をスコアテーブルとして用いることもでき、この場合、ヒストグラムの判別ポイントがそのままスコアとなる。
【００８３】
このようにして、顔サンプル画像群と非顔サンプル画像群とを用いた学習により、判別器が生成されるわけであるが、上記のように、判別したい顔の傾きおよび向きが異なる複数の判別器を生成するには、それらの各傾きや向きに対応した顔サンプル画像群を用意し、その顔サンプル画像群と非顔サンプル画像群とを用いた学習を顔サンプル画像群の種類毎に行うこととなる。
【００８４】
すなわち、本実施形態においては、顔の向きについては、正面、左横、右横の計３種類、顔の傾きについては、回転角度０度から３３０度まで３０度刻みの計１２種類、合計３６種類の顔サンプル画像群を用意する。なお、第１の判別器群５４と第２の判別器群５５とで異なるサンプル画像を用いて学習させる場合には、さらにその２倍、合計７２種類の顔サンプル画像群を用意することとなる。
【００８５】
上記の複数の顔サンプル画像群が得られたら、顔サンプル画像群の種類毎に、その顔サンプル画像群と非顔サンプル画像群とを用いて、上記の学習を行うことにより、第１および第２の判別器群５４，５５を構成する複数の判別器を生成することができる。
【００８６】
なお、上記の学習手法を採用する場合において、弱判別器は、特定のペア群を構成する各ペアの所定の２点間の画素値の差分値の組合せを用いて顔の画像と顔でない画像とを判別する基準を提供するものであれば、上記のヒストグラムの形式のものに限られずいかなるものであってもよく、例えば２値データ、閾値または関数等であってもよい。また、同じヒストグラムの形式であっても、図１０の中央に示した２つのヒストグラムの差分値の分布を示すヒストグラム等を用いてもよい。
【００８７】
また、学習の方法としては上記手法に限定されるものではなく、ニューラルネットワーク等他のマシンラーニングの手法を用いることができる。
【００８８】
次に、顔検出システム１における処理の流れについて説明する。
【００８９】
図１１ａ，図１１ｂは、本顔検出システム１における処理の流れを示したフローチャートである。まず、本顔検出システム１に、顔画像を検出する対象となる検出対象画像Ｓ０が入力されると（ステップＳ３１）、入力された検出対象画像Ｓ０は、多重解像度化部１０に供給される。この検出対象画像Ｓ０の画像サイズが所定のサイズに変換された画像Ｓ０′が生成され、この画像Ｓ０′から２の−１／３乗倍ずつサイズ（解像度）が縮小された複数の解像度画像からなる解像度画像群Ｓ１が生成される（ステップＳ３２）。
【００９０】
そして、正規化部２０において、解像度画像群Ｓ１の各解像度化像に対して、上述の全体正規化処理と局所正規化処理が施され、正規化済みの解像度画像群Ｓ１′が得られる（ステップＳ３３）。
【００９１】
顔検出部５０においては、検出制御部５１が、部分画像Ｗ１が顔画像である蓋然性を示すスコアを算出するために用いる判別器の種類（判別すべき顔の傾き）を、予め設定された検出すべき顔の傾きの順序と一致するように選択する（ステップＳ３４）。
【００９２】
そして、検出制御部５１からの指示を受けた解像度画像選択部５２により、解像度画像群Ｓ１′の中から画像サイズの小さい順、すなわち、Ｓ１′＿ｎ，Ｓ１′＿ｎ−１，・・・，Ｓ１′＿１の順に所定の解像度画像Ｓ１′＿ｉを選択する（ステップＳ３５）。
【００９３】
次に検出制御部５１が、サブウィンドウ設定部５３に対して、検出モードをラフな検出のモードとするサブウィンドウ設定条件を設定する。これにより、サブウィンドウ設定部５３は、解像度画像Ｓ１′＿ｉ上でサブウィンドウを広めのピッチ、例えば５画素間隔で移動しながら設定して所定サイズの部分画像Ｗ１を順次切り出す（ステップＳ３６）。
【００９４】
部分画像Ｗ１は、第１の判別器群５４の中の上記選択された種類の判別器へ入力される。例えば、判別すべき顔の傾きが検出対象画像Ｓ０の天地方向を基準に３０度回転した傾きである場合には、部分画像Ｗ１は判別器５４Ｆ＿３０，５４Ｌ＿３０，５４Ｒ＿３０の３つの判別器へ入力される。これらの判別器は、それぞれ、入力された部分画像Ｗ１が所定の向きの顔を含む顔画像である蓋然性を示すスコアを算出する。すなわち、正面顔判別器が、部分画像Ｗ１が正面顔画像である蓋然性を示す正面顔スコアＳＣ＿Ｆを算出し、左横顔判別器が、部分画像Ｗ１が左横顔画像である蓋然性を示す左横顔スコアＳＣ＿Ｌを算出し、右横顔判別器が、部分画像Ｗ１が右横顔画像である蓋然性を示す右横顔スコアＳＣ＿Ｒを算出する（ステップＳ３７）。
【００９５】
そして、検出制御部５１がこれらのスコアを取得し、これらスコアの合計値が閾値ＳＣth以上であるか否かを判定する（ステップＳ３８）。この判定において肯定される場合には、部分画像Ｗ１を顔画像候補として判別し、ステップＳ３９に移行して、精細モードでの顔画像検出を行う。一方、この判定において否定される場合には、部分画像Ｗ１は顔画像でないと判定し、ステップＳ４５に移行して、検出処理が続行可能か否かの判定を行う。
【００９６】
ステップＳ３９では、検出制御部５１が、サブウィンドウ設定部３３に対して、検出対象領域を、部分画像Ｗ１（顔画像候補）を含む所定の大きさの領域内に限定し、検出モードを精細モードとするサブウィンドウ設定条件を設定する。これにより、サブウィンドウ設定部５３は、部分画像Ｗ１近傍で、サブウィンドウを狭いピッチ、例えば１画素ずつ移動しながら設定して所定サイズの部分画像Ｗ２を順次切り出し、第２の判別器群５５中の上記ステップＳ３４にて選択された種類の判別器へ入力する。
【００９７】
これらの判別器は、それぞれ、入力された部分画像Ｗ２が所定の向きの顔を含む顔画像である蓋然性を示すスコアを算出する。すなわち、正面顔判別器が、部分画像Ｗ２が正面顔画像である蓋然性を示す正面顔スコアＳＣ＿Ｆを算出し、左横顔判別器が、部分画像Ｗ２が左横顔画像である蓋然性を示す左横顔スコアＳＣ＿Ｌを算出し、右横顔判別器が、部分画像Ｗ２が右横顔画像である蓋然性を示す右横顔スコアＳＣ＿Ｒを算出する（ステップＳ４０）。そして、検出制御部５１がこれらのスコアを取得する。
【００９８】
そして、現在の部分画像Ｗ２が顔画像候補近傍で最後の部分画像であるか否かを判定する（ステップＳ４１）。ここで、現在の部分画像Ｗ２が最後の部分画像でないと判定された場合には、ステップＳ３９に戻り、新たな部分画像Ｗ２を切り出し、精細モードでの検出処理を続行する。現在の部分画像Ｗ２が最後の部分画像であると判定された場合には、ステップＳ４２に移行し、顔画像候補として判別された１つの部分画像Ｗ１に対して切り出された複数の部分画像Ｗ２のうち、算出されたスコアの合計値が最も高かった部分画像Ｗ２を特定する。
【００９９】
そして、特定された部分画像Ｗ２のスコア合計値が閾値ＳＣth以上であるか否かを判定し、この判定において肯定される場合には、その特定された部分画像Ｗ２を顔画像と判別し、ステップＳ４４に移行して、その顔の向きを特定する。一方、この判定において否定される場合には、その特定された部分画像Ｗ２を非顔画像と判別し、ステップＳ４５に移行する。
【０１００】
ステップＳ４４では、その特定された部分画像Ｗ２に対して算出された、正面顔スコアＳＣ＿Ｆ、左横顔スコアＳＣ＿Ｌ、右横顔スコアＳＣ＿Ｒ間の比率を求め、その比率からその顔の向きを特定する。
【０１０１】
図１２は、算出された各スコアと顔画像であるか否かの判別および特定される顔の向きとの対応関係の一例を示した図である。ここで、顔画像であるか否かの基準となる合計スコアの閾値ＳＣthは６０である。図１２に示すように、例えば、ケース１の場合のように、左横顔スコアＳＣ＿Ｌが５０、正面顔スコアＳＣ＿Ｆが５０、右横顔スコアＳＣ＿Ｒが０である場合には、合計スコアが１００となり閾値ＳＣthを超えるので、部分画像Ｗ２は顔画像であると判別する。次に、その比率を見ると、左横顔スコア：正面顔スコア：右横顔スコア＝１：１：０であるから、顔の向きは、左横顔と正面顔との間を１：１で分割する位置、すなわち、左斜め４５度と特定する。また、例えば、ケース２の場合のように、左横顔スコアＳＣ＿Ｌが０、正面顔スコアＳＣ＿Ｆが３０、右横顔スコアＳＣ＿Ｒが６０の場合には、合計スコアが９０となり、閾値ＳＣthを超えるので、部分画像Ｗ２は顔画像であると判別する。次に、その比率を見ると、左横顔スコア：正面顔スコア：右横顔スコア＝０：１：２であるから、顔の向きは、正面顔と右横顔との間を１：２で分割する位置、すなわち、右斜め６０度（正面から右横へ６０度）と特定する。また、例えば、ケース３の場合のように、左横顔スコアＳＣ＿Ｌが２０、正面顔スコアＳＣ＿Ｆが３０、右横顔スコアＳＣ＿Ｒが０である場合には、合計スコアが５０となり閾値ＳＣthを超えないので、部分画像Ｗ２は非顔画像であると判別する。なお、スコアの値が所定の向き側に偏らず、バラバラになるような場合には、算出された複数のスコアの重心を求め、その重心に対応する向きを顔の向きとしてもよい。
【０１０２】
ステップＳ４５では、現在の部分画像Ｗ１が現在の解像度画像上で最後の部分画像であるか否かを判定する。ここで、現在の部分画像Ｗ１が最後の部分画像でないと判定された場合には、ステップＳ３６に戻り、現在の解像度画像上で新たな部分画像Ｗ１を切り出し、検出処理を続行する。一方、現在の部分画像Ｗ１が最後の部分画像であると判定された場合には、ステップＳ４６に移行し、現在の解像度画像が最後の解像度画像であるか否かを判定する。ここで、現在の解像度画像が最後の解像度画像でないと判定された場合には、ステップＳ３５に戻り、新たな解像度画像を選択し、検出処理を続行する。一方、現在の解像度画像が最後の解像度画像であると判定された場合には、現在選択されている判別器の種類（判別すべき顔の傾き）が最後の順番の種類であるか否かを判定する（ステップＳ４７）。ここで、現在選択されている判別器の種類が、最後の順番の種類でないと判定された場合には、ステップＳ３４に戻り、次の順番の判別器の種類を選択し、検出処理を続行する。一方、現在選択されている判別器の種類が、最後の順番の種類であると判定された場合には、検出処理を終了する。
【０１０３】
図１３は、上記のステップＳ３５からステップＳ４５までを繰り返すことにより、解像度画像がサイズの小さい順に選択されて、各解像度画像上で部分画像Ｗ１が順次切り出され、顔画像検出が実施される様子を示した図である。
【０１０４】
そして、ステップＳ４８では、重複検出判定部６０により、真の顔画像Ｓ２のうち重複して検出された顔画像をそれぞれ１つの顔画像としてまとめる処理を行い、入力画像Ｓ０において検出された真の顔画像Ｓ３を出力する。
【０１０５】
このように、本発明の実施形態である顔検出システムによれば、入力画像における画像上の特徴量に基づいて、入力画像が所定の向きの顔を含む顔画像である蓋然性を示す指標値を、この所定の向きを複数の異なる向きに変えてそれぞれ算出するので、入力画像が顔画像である蓋然性の高さとその顔の向きの情報を、その顔の向きに依らず、上記複数の異なる向きの各顔に対応した成分に分けて各指標値に反映させることができ、また、算出された複数の指標値の合計の大小に基づいて入力画像が顔を含む顔画像であるか否かを判別するとともに、これら複数の指標値間の比率に基づいてこの顔の向きを特定するので、これら限られた複数の指標値の簡単な評価だけで、顔画像であるか否かを判別し顔の向きを特定することができ、短い処理時間で、注目するデジタル画像が顔画像であるか否かを判別するとともに、その顔の任意の向きを特定することが可能となる。
【０１０６】
なお、本実施形態においては、判別すべき顔の向きが異なる複数種類の判別器により算出されたスコアに基づいて、部分画像が顔画像であるか否かの判別とその顔の向きの特定とをともに行っているが、例えば、顔画像であることは分かっているが、その顔の向きが分からないような場合において、同様にその画像に対して判別すべき顔の向きが異なる複数種類の判別器を用いてスコアを算出し、それらのスコア間の比率を評価することで、その顔の任意の向きを特定するといったことも可能である。すなわち、より少ない種類の判別器だけで、顔画像を検出したり、その顔の任意の向きを特定したりすることができる。
【０１０７】
以上、本発明の実施形態に係る顔検出システムについて説明したが、この顔検出システムのうちの本発明の顔検出装置に対応する部分における各処理をコンピュータに実行させるためのプログラムも、本発明の実施形態の１つである。また、そのようなプログラムを記録したコンピュータ読取可能な記録媒体も、本発明の実施形態の１つである。
【図面の簡単な説明】
【０１０８】
【図１】顔検出システム１の構成を示すブロック図
【図２】検出対象画像の多重解像度化の工程を示す図
【図３】全体正規化処理に用いる変換曲線の一例を示す図
【図４】局所正規化処理の概念を示す図
【図５】局所正規化処理のフローを示す図
【図６】第１および第２の判別器群の構成を示すブロック図
【図７】弱判別器における特徴量の算出を説明するための図
【図８】判別器の学習方法を示すフローチャート
【図９】目の位置が所定の位置にくるように規格化された顔のサンプル画像を示す図
【図１０】弱判別器のヒストグラムを導出する方法を示す図
【図１１ａ】顔検出システム１において行われる処理を示すフローチャート（前半部）
【図１１ｂ】顔検出システム１において行われる処理を示すフローチャート（後半部）
【図１２】判別器により算出されたスコアと顔画像であるか否かの判別および特定される顔の向きとの対応関係の一例を示す図
【図１３】顔検出対象となる解像度画像の切替えとその画像上でのサブウィンドウの移動を説明するための図
【符号の説明】
【０１０９】
１  顔検出システム
１０  多重解像度化部
２０  正規化部
５０  顔検出部
５１  検出制御部（顔判別手段）
５２  解像度画像選択部
５３  サブウィンドウ設定部
５４  第１の判別器群
５４＿Ｆ  第１の正面顔判別器群
５４＿Ｌ  第１の左横顔判別器群
５４＿Ｒ  第１の右横顔判別器群
５５  第２の判別器群（指標値算出手段）
５５＿Ｆ  第２の正面顔判別器群
５５＿Ｌ  第２の左横顔判別器群
５５＿Ｒ  第２の右横顔判別器群
６０  重複検出判定部
【図１】
0004708948.tif 000003
【図２】
0004708948.tif 000004
【図３】
0004708948.tif 000005
【図４】
0004708948.tif 000006
【図５】
0004708948.tif 000007
【図６】
0004708948.tif 000008
【図７】
0004708948.tif 000009
【図８】
0004708948.tif 000010
【図９】
0004708948.tif 000011
【図１０】
0004708948.tif 000012
【図１１ａ】
0004708948.tif 000013
【図１１ｂ】
0004708948.tif 000014
【図１２】
0004708948.tif 000015
【図１３】
0004708948.tif 000016