説明

顔検出方法および装置並びにプログラム

【課題】 検出すべき顔の大きさを変えながら画像上の顔を検出することにより、画像に含まれる大きさの異なる顔を検出する処理において、処理時間を短縮し高速化を図る。
【解決手段】 大きい顔から順に検出し、途中顔が検出されたら、それ以降は既に顔が検出された領域を検出対象領域から除いて検出を続ける。顔の中にそれより小さい顔は存在しないと考えられるので、無駄な処理を省き、処理時間を短縮させることが可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、対象画像に含まれる顔を検出する顔検出方法および装置並びにそのためのプログラムに関するものである。
【背景技術】
【0002】
従来、デジタルカメラによって撮影されたスナップ写真における人物の顔領域の色分布を調べてその肌色を補正したり、監視システムのデジタルビデオカメラで撮影されたデジタル映像中の人物を認識したりすることが行われている。このような場合、デジタル画像中の人物の顔に対応する不特定の大きさの顔領域を検出する必要があり、このため、対象画像に含まれる大きさの異なる顔を検出する種々の手法が提案されている。
【0003】
例えば、検出対象画像に基づいてその画像を表すサイズの異なる複数のスケール画像を生成し、各スケール画像上で同一サイズの部分的な画像をその位置をずらしながらスケール画像の全領域にわたって順次切り出し、その切り出された部分画像毎に顔らしさを表す相関値を求め、この相関値の大小に基づいてその部分画像が顔画像であるか否かを判別することにより、検出対象画像に含まれる大きさの異なる顔を検出する手法が提案されている(特許文献1参照)。このような手法によれば、各スケール画像上で順次切り出された部分的な画像について個別に顔画像であるか否かを判別するので、比較的精度よく顔を検出することができる。
【特許文献1】特開2004−133637号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、上記手法では、各スケール画像上で切り出された部分的な画像のそれぞれについて顔画像であるか否かの判別を行う必要があるため、比較的処理量が多く、顔検出に要する時間が長いという問題がある。
【0005】
本発明は、上記事情に鑑み、顔検出の処理時間を短くし、より高速に顔検出を行うことが可能な顔検出方法および装置並びにそのためのプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【0006】
本発明の顔検出方法は、検出対象画像における検出すべき顔の大きさを変えながら設定する顔大きさ設定ステップと、前記検出対象画像において前記設定された大きさの顔を検出する検出ステップとを複数回繰り返すことにより、前記検出対象画像に含まれる大きさの異なる顔を検出する顔検出方法において、前記顔大きさ設定ステップが、前記検出すべき顔の大きさを大から小へ変えながら設定するステップであり、前記検出ステップが、前記検出対象画像のうち既に検出された顔の領域を除く他の領域において顔を検出するステップであることを特徴とするものである。
【0007】
本発明の顔検出方法において、前記検出ステップを、前記検出対象画像における輝度分布に係る特徴量を用いて、前記検出対象画像における顔と顔らしさの程度が該顔に準ずる準顔とを検出するものとし、前記顔大きさ設定ステップにおける検出すべき顔の大きさの設定と、前記検出ステップにおける顔の検出とが複数回繰り返された後に、前記検出された顔を位置的に内包する前記準顔を非顔と判定し、その他の前記準顔を顔と判定する判定ステップをさらに有するようにしてもよい。
【0008】
本発明の顔検出装置は、検出対象画像における検出すべき顔の大きさを変えながら設定する顔大きさ設定手段と、前記検出対象画像において前記設定された大きさの顔を検出する検出手段とを備え、前記顔大きさ設定手段による検出すべき顔の大きさの設定と、前記検出手段による顔の検出とを複数回繰り返すことにより、前記検出対象画像に含まれる大きさの異なる顔を検出する顔検出装置において、前記顔大きさ設定手段が、前記検出すべき顔の大きさを大から小へ変えながら設定するものであり、前記検出手段が、前記検出対象画像のうち既に検出された顔の領域を除く他の領域において顔を検出するものであることを特徴とするものである。
【0009】
本発明の顔検出装置において、前記検出手段を、前記検出対象画像における輝度分布に係る特徴量を用いて、前記検出対象画像における顔と顔らしさの程度が該顔に準ずる準顔とを検出するものとし、前記顔大きさ設定手段による検出すべき顔の大きさの設定と、前記検出手段による顔の検出とが複数回繰り返された後に、前記検出された顔を位置的に内包する前記準顔を非顔と判定し、その他の前記準顔を顔と判定する判定手段をさらに備えるようにしてもよい。
【0010】
本発明のプログラムは、コンピュータに、検出対象画像における検出すべき顔の大きさを変えながら設定する顔大きさ設定処理と、前記検出対象画像において前記設定された大きさの顔を検出する検出処理とを複数回繰り返し実行させることにより、前記検出対象画像に含まれる大きさの異なる顔を検出するプログラムにおいて、前記顔大きさ設定処理が、前記検出すべき顔の大きさを大から小へ変えながら設定する処理であり、前記検出処理が、前記検出対象画像のうち既に検出された顔の領域を除く他の領域において顔を検出する処理であることを特徴とするものである。
【0011】
本発明のプログラムにおいて、前記検出処理を、前記検出対象画像における輝度分布に係る特徴量を用いて、前記検出対象画像における顔と顔らしさの程度が該顔に準ずる準顔とを検出するものとし、前記顔大きさ設定処理と前記検出処理とが複数回繰り返された後に、前記検出された顔を位置的に内包する前記準顔を非顔と判定し、その他の前記準顔を顔と判定する判定処理をさらにコンピュータに実行させるものとしてもよい。
【0012】
ここで、「検出すべき顔の大きさを大から小へ変えながら設定する」とは、大から小へ向かって変えながら設定することを意味し、毎回大から小へ変えることに限定されるものではない。
【0013】
また、「検出すべき顔の大きさを大から小へ変える」とは、検出対象画像に対する相対的な大きさを大から小へ変えることを意味し、例えば、検出しようとする顔の大きさを固定して、検出対象画像の大きさ(解像度)を小から大へ変えるようにしてもよい。
【発明の効果】
【0014】
本発明の顔検出方法および装置並びにそのためのプログラムによれば、検出対象画像において大きい顔から順に探索し、途中、顔が検出されたら、顔が検出されたその領域をその後の探索における探索領域から外すようにしているので、顔が検出された領域にはそれより大きい顔は存在しないと考えられることから、そのような領域に対する無駄な検出処理を省くことができ、処理時間の短縮化、すなわち、より高速な顔検出が可能となる。
【発明を実施するための最良の形態】
【0015】
以下、本発明の実施形態について説明する。図1は本発明の顔判別装置が適用された顔検出システム(第1の実施形態)の構成を示す概略ブロック図である。この顔検出システムは、デジタル画像中に含まれる顔を、顔の位置、大きさ、向き、回転方向によらず検出するものである。図1に示すように、顔検出システム1は、顔を検出する対象となる入力画像S0を多重解像度化して解像度の異なる複数の画像(以下、解像度画像という)からなる解像度画像群S1(=S1_1,S1_2,・・・,S1_n)を得る多重解像度化部10と、後に実行される顔検出処理の精度向上を目的とした前処理として、解像度画像群S1の各々に対して、画像全体にわたって局所的な領域におけるコントラストのばらつきを抑制する正規化(以下、局所正規化という)を施し、局所正規化済みの解像度画像群S1′(=S1′_1,S1′_2,・・・,S1′_n)を得る局所正規化部(正規化手段)20と、局所正規化済みの解像度画像群S1′の各々に対して顔検出処理を施すことにより、解像度画像群S1′の各解像度画像に含まれる顔を表す画像(以下、顔画像という)S2を検出する顔検出部30と、各解像度画像上で検出された顔画像S2の各々について、同一の顔が重複して検出されたものであるか否かをその位置関係から判定して整理し、重複検出のない顔画像S3を得る重複検出判定部40とを備える。
【0016】
多重解像度化部10は、入力画像S0の解像度(画像サイズ)を変換することにより、その解像度を所定の解像度、例えば、短辺が416画素の矩形サイズの画像に規格化し、規格化済みの入力画像S0′を得る。そして、この規格化済みの入力画像S0′を基本としてさらに解像度変換を行うことにより、解像度の異なる複数の解像度画像を生成し、解像度画像群S1を得る。このような解像度画像群を生成する理由は、通常、入力画像に含まれる顔の大きさは不明であるが、一方、検出しようとする顔の大きさ(画像サイズ)は、後述の判別器の生成方法と関連して一定の大きさに固定されるため、大きさの異なる顔を検出するためには、解像度の異なる画像上で位置をずらしながら所定サイズの部分画像をそれぞれ切り出し、その部分画像が顔か非顔かを判別してゆく必要があるためである。具体的には、図2に示すように、規格化済みの入力画像S0′を基本となる解像度画像S1_1とし、解像度画像S1_1に対して2の−1/3乗倍サイズの解像度画像S1_2と、解像度画像S1_2に対して2の−1/3乗倍サイズ(基本画像S1_1に対しては2の−2/3乗倍サイズ)の解像度画像S1_3とを先に生成し、その後、解像度画像S1_1,S1_2,S1_3のそれぞれを1/2倍サイズに縮小した解像度画像を生成し、それら縮小した解像度画像をさらに1/2倍サイズに縮小した解像度画像を生成する・・・といった処理を繰り返し行い、複数の解像度画像を所定の数だけ生成するようにする。このようにすることで、輝度を表す画素値の補間処理を必要としない1/2倍の縮小処理を主な処理とし、基本となる解像度画像から2の−1/3乗倍ずつサイズが縮小された複数の画像が高速に生成できる。例えば、解像度画像S1_1が短辺416画素の矩形サイズである場合、解像度画像S1_2,S1_3,・・・は、短辺がそれぞれ、330画素,262画素,208画素,165画素,131画素,104画素,82画素,65画素,・・・の矩形サイズとなり、2の−1/3乗倍ずつ縮小された複数の解像度画像を生成することができる。なお、このように画素値を補間しないで生成される画像は、元の画像パターンの特徴をそのまま担持する傾向が強いので、顔検出処理において精度向上が期待できる点で好ましい。
【0017】
局所正規化部20は、解像度画像群S1の各々に対して、解像度画像における各局所領域について、輝度を表す画素値の分散の程度が所定レベル以上である局所領域に対して、この分散の程度を上記の所定レベルより高い一定レベルに近づける第1の輝度階調変換処理を施し、画素値の分散の程度が上記の所定レベル未満である局所領域に対して、この分散の程度を上記の一定レベルより低いレベルに抑える第2の輝度階調変換処理を施すものであるが、ここで、局所正規化部20における具体的な処理について説明する。
【0018】
図12は局所正規化処理の概念を示した図であり、図13は局所正規化部20における処理フロー示す図である。また、式(1),(2)は、この局所正規化処理のための画素値の階調変換の式である。
【数1】

【0019】
ここで、Xは注目画素の画素値、X′は注目画素の変換後の画素値、mlocalは注目画素を中心とする局所領域における画素値の平均、Vlocalはこの局所領域における画素値の分散、SDlocalはこの局所領域における画素値の標準偏差、(C1×C1)は上記の一定レベルに対応する基準値、C2は上記の所定レベルに対応する閾値、SDcは所定の定数である。なお、本実施形態において、輝度の階調数は8bitとし、画素値の取り得る値は0から255とする。
【0020】
局所正規化部20は、図13に示すように、解像度画像における1つの画素を注目画素として設定し(ステップS21)、この注目画素を中心とする所定の大きさ、例えば11×11画素サイズの局所領域における画素値の分散Vlocalを算出し(ステップS22)、分散Vlocalが上記所定のレベルに対応する閾値C2以上であるか否かを判定する(ステップS23)。ステップS23において、分散Vlocalが閾値C2以上であると判定された場合には、上記第1の輝度階調変換処理として、分散Vlocalが上記一定のレベルに対応する基準値(C1×C1)より大きいほど、注目画素の画素値Xと平均mlocalとの差を小さくし、分散mlocalが基準値(C1×C1)より小さいほど、注目画素の画素値Xと平均mlocalとの差を大きくする階調変換を式(1)にしたがって行う(ステップS24)。一方、ステップS23において、分散Vlocalが閾値C2未満であると判定された場合には、上記第2の輝度階調変換処理として、分散Vlocalに依らない線形な階調変換を式(2)にしたがって行う(ステップS25)。そして、ステップS21で設定した注目画素が最後の画素であるか否かを判定する(ステップS26)。ステップS26において、その注目画素が最後の画素でないと判定された場合には、ステップS21に戻り、同じ解像度画像上の次の画素を注目画素として設定する。一方、ステップS26において、その注目画素が最後の画素であると判定された場合には、その解像度画像に対する局所正規化を終了する。このように、上記ステップS21からS26の処理を繰り返すことにより、解像度画像全体に局所正規化が施された解像度画像が得られる。この一連の処理を各解像度画像に対して行うことにより、局所正規化済みの解像度画像群S1′を得る。
【0021】
なお、上記の所定レベルは、局所領域における全体または一部の輝度に応じて変化させるようにしてもよい。例えば、上記の、注目画素毎に階調変換を行う正規化処理において、閾値C2を注目画素の画素値に応じて変化させるようにしてもよい。すなわち、上記の所定レベルに対応する閾値C2を、注目画素の輝度が相対的に高いときにはより高く設定し、その輝度が相対的に低いときにはより低く設定するようにしてもよい。このようにすることで、輝度の低い、いわゆる暗い領域に低いコントラスト(画素値の分散が小さい状態)で存在している顔も正しく正規化することができる。
【0022】
また、ここでは、解像度画像に対して局所正規化のみを施した場合について説明しているが、局所正規化とは別の正規化を同時に行うようにしてもよい。例えば、輝度の低い、いわゆる暗い領域のコントラストを高くする(画素値の分散を大きくすることに相当する)ように設定されたルックアップテーブル(LUT)等を用いて階調変換をしてから、上記局所正規化を行なうようにしてもよい。このようにすることで、上述のような、閾値C2を注目画素の画素値に応じて変化させるのと同じ効果が得られ、暗い領域に低いコントラストで存在している顔も正しく正規化することができる。
【0023】
顔検出部30は、局所正規化部20により局所正規化処理がなされた解像度画像群S1′の各々に対して顔検出処理を施し、各解像度画像における顔画像S2を検出するものである。図3は、この顔検出部30の構成を示すブロック図である。顔検出部30は、図3に示すように、後述の各部を制御して顔検出処理におけるシーケンス制御を主に行う検出制御部31と、解像度画像群S1′の中から顔検出処理に供する解像度画像をサイズの小さいものから順に順次選択する解像度画像選択部(検出顔大きさ設定手段)32と、解像度画像選択部32により選択された解像度画像において、顔画像であるか否かの判別対象となる部分画像Wを切り出すサブウィンドウを、その位置をずらしながら順次設定するサブウィンドウ設定部33と、その切り出された部分画像Wが顔画像であるか否かを判別する第1の判別器群34および第2の判別器群35とから構成されている。ここで、解像度画像選択部32は、本発明の検出顔大きさ設定手段として機能し、検出制御部31、サブウィンドウ設定部33、第1および第2の判別器群34,35は、本発明の検出手段として機能するものである。
【0024】
検出制御部31は、解像度画像群S1′の各画像に対して、顔画像の候補となる顔画像候補をラフに検出し、さらにその顔画像候補の中から真の顔画像S2を抽出するという段階的な顔検出処理を行うべく、解像度画像選択部32およびサブウィンドウ設定部33を制御するものである。例えば、適宜、解像度画像選択部32に対して解像度画像の選択を指示したり、サブウィンドウ設定部33に対してサブウィンドウの設定条件を指示したり、また、得られた検出結果を重複検出判定部40に出力したりする。なお、サブウィンドウ設定条件には、サブウィンドウを設定する画像上の範囲(検出対象領域)、サブウィンドウの移動間隔(検出の粗さ)の他、判別に用いる判別器群の別(ラフ/高精度の検出モード)等が含まれる。この検出対象領域は、特に上記のラフな検出時における検出対象領域を示すものであり、解像度画像を小さいものから順に顔検出処理に供する過程において、現在選択されている解像度画像の全領域のうち現時点で既に顔が検出された領域に対応する領域を除く他の領域をこの検出対象領域に設定する。
【0025】
解像度画像選択部32は、検出制御部31の制御により、解像度画像群S1′の中から顔検出処理に供する解像度画像をサイズの小さい順に(解像度の粗い順に)順次選択するものである。なお、本実施形態における顔検出の手法が、各解像度画像上で順次切り出された同じサイズの部分画像Wについてその部分画像Wが顔画像であるか否かを判別することにより入力画像S0における顔を検出する手法であるから、この解像度画像選択部32は、入力画像(検出対象画像)S0における検出すべき顔の大きさを変えながら設定するものであって、検出すべき顔の大きさを大から小へ変えながら設定するものと同等なものということができる。
【0026】
サブウィンドウ設定部33は、検出制御部31により設定されたサブウィンドウ設定条件に基づいて、解像度画像選択部32により選択された解像度画像上でサブウィンドウを移動させながら順次設定する。例えば、上記のラフな検出を行う場合には、上記の選択された解像度画像をその平面上で360度回転させつつ、その解像度画像において、所定のサイズすなわち32×32画素サイズの部分画像Wを切り出すサブウィンドウを、所定画素数分、例えば5画素ずつ移動させながら順次設定し、その切り出された部分画像Wを第1の判別器群34に出力する。判別器群を構成する各判別器は、後述のように、それぞれ所定の回転方向および向きにある顔の顔画像を判別するものであるから、このようにすることで、あらゆる回転方向および向きにある顔の顔画像を判別することが可能となる。また、上記の顔画像候補の絞込みを行う場合には、その解像度画像のうち顔画像候補を含む所定の大きさの近傍領域内に限定して、またサブウィンドウをより短い間隔で、例えば1画素ずつ移動させながら順次設定し、上記と同様の部分画像Wの切り出しを行い、その切り出された部分画像Wを第2の判別器群35に出力する。
【0027】
第1の判別器群34は、部分画像Wが顔画像であるか否かを比較的高速に判別する複数の判別器が並列に接続されてなるものである。この複数の判別器は、判別可能な顔の向きがそれぞれ異なる複数種類の判別器、すなわち、主に正面顔を判別する正面顔判別器341、主に左横顔を判別する左横顔判別器342および主に右横顔を判別する右横顔判別器343からなり、解像度画像における顔画像の候補をラフに検出するために用いられる。
【0028】
第2の判別器群35は、部分画像Wが顔画像であるか否かを比較的高精度に判別する複数の判別器が卑劣に接続されてなるものである。この複数の判別器は、判別可能な顔の向きがそれぞれ異なる複数種類の判別器、すなわち、主に正面顔を判別する正面顔判別器351、主に左横顔を判別する左横顔判別器352および主に右横顔を判別する右横顔判別器353からなり、上記のラフな検出によって検出された顔画像候補についてより細かい検出処理を施し、顔画像候補の中から真の顔画像S2を抽出する(絞り込む)ために用いられる。
【0029】
なお、上記の各判別器は、図4に示すように、それぞれ異なる複数の弱判別器WCが線形に結合したカスケード構造を有しており、弱判別器は、部分画像Wの輝度分布に係る少なくとも1つの特徴量を算出し、この特徴量を用いてこの部分画像Wが顔画像であるか否かを判別するものである。
【0030】
また、上記第1および第2の判別器群34,35は、いずれも、正面顔、左横顔および右横顔の3種の判別器を用いて、順次入力されてくる部分画像Wが正面顔、左横顔または右横顔を表す顔画像であるか否かの判別を行い、その判別結果Rを出力するものであるが、斜め向きの顔の検出精度を上げるため、右斜め顔、左斜め顔をそれぞれ判別する判別器をさらに設けるようにしてもよい。
【0031】
ここで、これら各判別器における具体的な処理について説明する。図5は、各判別器における大局的な処理フローを示したものであり、図6は、その中の各弱判別器による処理フローを示したものである。
【0032】
まず、1番目の弱判別器WCが、所定の解像度画像S1′_i上で切り出された所定サイズの部分画像Wに対してこの部分画像Wが顔であるか否かを判別する(ステップSS1)。具体的には、1番目の弱判別器WCは、図7に示すように、解像度画像S1′_i上で切り出された所定サイズの部分画像W、すなわち、32×32画素サイズの画像に対して、4近傍画素平均(画像を2×2画素サイズ毎に複数のブロックに区分し、各ブロックの4画素における画素値の平均値をそのブロックに対応する1つの画素の画素値とする処理)を行うことにより、16×16画素サイズの画像と、8×8画素サイズの縮小した画像を得、これら3つの画像の平面内に設定される所定の2点を1ペアとして、複数種類のペアからなる1つのペア群を構成する各ペアにおける2点間の輝度の差分値をそれぞれ計算し、これらの差分値の組合せを特徴量とする(ステップSS1−1)。各ペアの所定の2点は、例えば、画像上の顔の濃淡の特徴が反映されるよう決められた縦方向に並んだ所定の2点や、横方向に並んだ所定の2点とする。そして、特徴量である差分値の組合せに応じて所定のスコアテーブルを参照してスコアを算出し(ステップSS1−2)、直前の弱判別器が算出したスコアに自己の算出したスコアを加算して累積スコアを算出するが(ステップSS1−3)、最初の弱判別器WC1では、直前の弱判別器がないので、自己の算出したスコアをそのまま累積スコアとする。この累積スコアが所定の閾値以上であるか否かによって部分画像Wが顔であるか否かを判別する(ステップSS1−4)。ここで、上記部分画像Wが顔と判別されたときには、次の弱判別器WC2による判別に移行し(ステップSS2)、部分画像Wが非顔と判別されたときには、部分画像Wは、即、非顔と断定され(ステップSSB)、その判別結果Rを出力して処理が終了する。
【0033】
ステップSS2においても、ステップSS1と同様に、2番目の弱判別器WCが部分画像Wに基づいて画像上の特徴を表す上記のような特徴量を算出し(ステップSS2−1)、スコアテーブルを参照して特徴量からスコアを算出する(ステップSS2−2)。そして、自ら算出したスコアを直前の1番目の弱判別器WCが算出した累積スコアに加算して累積スコアを更新し(ステップSS2−3)、この累積スコアが所定の閾値以上であるか否かによって部分画像Wが顔であるか否かを判別する(ステップSS2−4)。ここでも、部分画像Wが顔と判別されたときには、次の3番目の弱判別器WCによる判別に移行し(ステップSS3)、部分画像Wが非顔と判別されたときには、部分画像Wは、即、非顔と断定され(ステップSSB)、その判別結果Rを出力して処理が終了する。このようにして、判別器を構成する全N個の弱判別器WCにおいて部分画像Wが顔であると判別されたときには、その部分画像Wを最終的に顔画像候補として抽出する(ステップSSA)。
【0034】
判別器341から343および351から353は、それぞれ、独自の、特徴量の種類、スコアテーブル、および閾値によって定められた複数の弱判別器WCからなる判別器であり、それぞれの判別すべき顔の向き、すなわち、正面顔、左横顔、右横顔にある顔を判別する。
【0035】
重複検出判定部40は、顔検出部30によって検出された真の顔画像S2の位置情報に基づいて、解像度画像群S1′の各解像度画像上で検出された顔画像のうち同一の顔を表す画像、すなわち重複して検出された顔画像をそれぞれ1つの顔画像としてまとめる処理を行い、入力画像S0において検出された真の顔画像S3を出力する。判別器は、学習方法にもよるが、一般的に部分画像Wのサイズに対して検出できる顔の大きさにはある程度幅があるので、解像度レベルが隣接する複数の解像度画像において、同一の顔を表す画像が重複して検出される場合があるからである。
【0036】
図9は、上記顔検出システムにおける処理の流れを示したフローチャートである。図9に示すように、多重解像度化部10に入力画像S0が供給されると(ステップS1)、この入力画像S0の画像サイズが所定のサイズに変換された画像S0′が生成され、この画像S0′から2の−1/3乗倍ずつサイズ(解像度)が縮小された複数の解像度画像からなる解像度画像群S1が生成される(ステップS2)。そして、局所正規化部20において、解像度画像群S1の各々に対し、画像全体に局所的な領域におけるコントラストのばらつきを抑制する局所正規化処理、すなわち、画素値の分散が所定の閾値以上の領域に対してはその分散をある一定レベルに近づける輝度階調変換をし、画素値の分散がその所定の閾値を下回る領域に対してはその分散を上記一定レベルより低いレベルに抑える輝度階調変換をする局所的な正規化が施され、局所正規化済みの解像度画像群S1′が得られる(ステップS3)。顔検出部30においては、検出制御部31からの指示を受けた解像度画像選択部32により、解像度画像群S1′の中から画像サイズの小さい順、すなわち、S1′_n,S1′_n−1,・・・,S1′_1の順に所定の解像度画像S1′_iを選択する(ステップS4)。次に検出制御部31が、サブウィンドウ設定部33に対して、解像度画像S1′_iにおける全領域のうち現時点で既に検出された顔画像の領域に対応する領域を除く他の領域を検出対象領域とするサブウィンドウ設定条件を設定する。これにより、サブウィンドウ設定部33は、顔の未検出領域を検出対象領域として設定する(ステップS5)。また、検出制御部31は、サブウィンドウ設定部33に対して、検出モードをラフな検出のモードとするサブウィンドウ設定条件を設定する。これにより、サブウィンドウ設定部33は、サブウィンドウを広めのピッチ、例えば5画素間隔で移動しながら設定して所定サイズの部分画像Wを順次切り出し、その部分画像Wを第1の判別器群34に出力する。第1の判別器群34は、順次入力される部分画像Wに対して、正面顔、右横顔および左横顔の各判別器341から343を用いて判別を行う。このようにして解像度画像S1′_iについての顔画像候補をラフに検出する(ステップS6)。
【0037】
検出対象領域の全領域における検出が終了すると、検出制御部31は、顔画像候補が検出されたか否かを判定し(ステップS7)、顔画像候補が検出されていると判定された場合には、さらに絞り込みモードの検出を行うためにステップS8に移行し、一方、顔画像候補が検出されていないと判定された場合には、現在選択されている解像度画像S1′_iが最後の解像度画像であるか否かを判定するためにステップS9に移行する。
【0038】
ステップS8では、検出制御部31が、サブウィンドウ設定部33に対して、検出対象領域を顔画像候補を含む所定の大きさの領域内に限定し、検出モードを絞り込みモードとするサブウィンドウ設定条件を設定する。これにより、サブウィンドウ設定部33は、顔画像候補近傍で、サブウィンドウを狭いピッチ、例えば1画素ずつ移動しながら設定して所定サイズの部分画像Wを順次切り出し、その部分画像Wを第2の判別器群35に出力する。第2の判別器群35は、順次入力される部分画像Wに対して、正面顔、右横顔および左横顔の各判別器351から353を用いて判別を行う。このようにして、解像度画像S1′_iについての顔画像候補から真の顔画像S2を抽出する(ステップS8)。
【0039】
顔画像候補の近傍領域における絞り込みモードの検出が終了すると、検出制御部31は、現在選択されている解像度画像S1′_iが最後の順番に位置する画像であるか否かを判定し(ステップS9)、最後の解像度画像であると判定された場合には、検出処理を終了し、重複検出判定に移行する(ステップS10)。一方、最後の解像度画像ではないと判定された場合には、ステップS4に戻り、解像度画像選択部32により、現在選択されている解像度画像S1′_iより1段階サイズが大きい解像度画像S1′_i−1が選択され、さらに検出対象領域の設定、顔画像候補の検出が実行される。なお、検出制御部31は、ステップS8において真の顔画像が検出された場合には、その検出された顔画像の領域が、入力画像S0に対してどの領域に対応するかを求め、次回ステップS5において検出対象領域を決定する際に、その領域に対応する領域を検出対象領域から除外できるようにしておく。
【0040】
このように、ステップS4からS9までの処理を繰り返すことにより、各解像度画像における顔画像S2を検出することができる。図8は、解像度画像がサイズの小さい順に選択されて顔検出が実施され、途中、顔画像が検出された場合に、その顔画像の領域を跳ばして顔検出が進められる様子を示した図である。
【0041】
ステップS10では、重複検出判定部40により、真の顔画像S2のうち重複して検出された顔画像をそれぞれ1つの顔画像としてまとめる処理を行い、入力画像S0において検出された真の顔画像S3を出力する。
【0042】
次に、判別器の学習方法について説明する。図10は、この判別器の学習方法を示すフローチャートである。なお、学習は、判別器の種類、すなわち、判別すべき顔の向き毎に行われる。
【0043】
学習の対象となるサンプル画像群は、所定のサイズ、例えば32×32画素サイズで規格化された、顔であることが分かっている複数のサンプル画像と、顔でないことが分かっている複数のサンプル画像とからなる。顔であることが分かっているサンプル画像としては、顔の向きが判別器の判別すべき顔の向きと同一であって顔の天地方向が揃ったものを用いる。顔であることが分かっているサンプル画像は、1つのサンプル画像につき、縦および/または横を0.7倍から1.2倍の範囲にて0.1倍単位で段階的に拡縮して得られる各サンプル画像に対し、平面上±15度の範囲にて3度単位で段階的に回転させて得られる複数の変形バリエーションを用いる。なおこのとき、顔のサンプル画像は、目の位置が所定の位置に来るように顔のサイズと位置を規格化し、上記の平面上の回転、拡縮は目の位置を基準として行うようにする。例えば、d×dサイズの正面顔のサンプル画像の場合においては、図14に示すように、両目の位置が、サンプル画像の最左上の頂点と最右上の頂点から、それぞれ、内側に1/4d、下側に1/4d移動した各位置とに来るように顔のサイズと位置を規格化し、また、上記の平面上の回転、拡縮は、両目の中間点を中心に行うようにする。各サンプル画像には、重みすなわち重要度が割り当てられる。まず、すべてのサンプル画像の重みの初期値が等しく1に設定される(ステップS11)。
【0044】
次に、サンプル画像およびその縮小画像の平面内に設定される所定の2点を1ペアとして複数のペアからなるペア群を複数種類設定したときの、この複数種類のペア群のそれぞれについて弱半別器が作成される(ステップS12)。ここで、それぞれの弱判別器とは、サブウィンドウWで切り出された部分画像とその縮小画像の平面内に設定される所定の2点を1ペアとして複数のペアからなる1つのペア群を設定したときの、この1つのペア群を構成する各ペアにおける2点間の画素値(輝度)の差分値の組合せを用いて、顔の画像と顔でない画像とを判別する基準を提供するものである。本実施形態においては、1つのペア群を構成する各ペアにおける2点間の画素値の差分値の組合せについてのヒストグラムを弱判別器のスコアテーブルの基礎として使用する。
【0045】
図11を参照しながらある判別器の作成について説明する。図11の左側のサンプル画像に示すように、この判別器を作成するためのペア群を構成する各ペアの2点は、顔であることが分かっている複数のサンプル画像において、サンプル画像上の右目の中心にある点をP1、右側の頬の部分にある点をP2、眉間の部分にある点をP3、サンプル画像を4近傍画素平均で縮小した16×16画素サイズの縮小画像上の右目の中心にある点をP4、右側の頬の部分にある点をP5、さらに4近傍画素平均で縮小した8×8画素サイズの縮小画像上の額の部分にある点をP6、口の部分にある点をP7として、P1−P2、P1−P3、P4−P5、P4−P6、P6−P7の5ペアである。なお、ある判別器を作成するための1つのペア群を構成する各ペアの2点の座標位置はすべてのサンプル画像において同一である。そして顔であることが分かっているすべてのサンプル画像について上記5ペアを構成する各ペアの2点間の画素値の差分値の組合せが求められ、そのヒストグラムが作成される。ここで、画素値の差分値の組合せとしてとり得る値は、画像の輝度階調数に依存するが、仮に16ビット階調である場合には、1つの画素値の差分値につき65536通りあり、全体では階調数の(ペア数)乗、すなわち65536の5乗通りとなってしまい、学習および検出のために多大なサンプルの数、時間およびメモリを要することとなる。このため、本実施形態においては、画素値の差分値を適当な数値幅で区切って量子化し、n値化する(例えばn=100)。
【0046】
これにより、画素値の差分値の組合せの数はnの5乗通りとなるため、画素値の差分値の組合せを表すデータ数を低減できる。
【0047】
同様に、顔でないことが分かっている複数のサンプル画像についても、ヒストグラムが作成される。なお、顔でないことが分かっているサンプル画像については、顔であることが分かっているサンプル画像上における上記各ペアの所定の2点の位置に対応する位置(同様に参照符号P1からP7を用いる)が用いられる。これらの2つのヒストグラムが示す頻度値の比の対数値を取ってヒストグラムで表したものが、図11の一番右側に示す、弱判別器のスコアテーブルの基礎として用いられるヒストグラムである。この弱判別器のヒストグラムが示す各縦軸の値を、以下、判別ポイントと称する。この弱判別器によれば、正の判別ポイントに対応する、画素値の差分値の組合せの分布を示す画像は顔である可能性が高く、判別ポイントの絶対値が大きいほどその可能性は高まると言える。逆に、負の判別ポイントに対応する画素値の差分値の組合せの分布を示す画像は顔でない可能性が高く、やはり判別ポイントの絶対値が大きいほどその可能性は高まる。ステップS12では、判別に使用され得る複数種類のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せについて、上記のヒストグラム形式の複数の弱判別器が作成される。
【0048】
続いて、ステップS12で作成した複数の弱半別器のうち、画像が顔であるか否かを判別するのに最も有効な弱判別器が選択される。最も有効な弱判別器の選択は、各サンプル画像の重みを考慮して行われる。この例では、各弱判別器の重み付き正答率が比較され、最も高い重み付き正答率を示す弱判別器が選択される(ステップS13)。すなわち、最初のステップS13では、各サンプル画像の重みは等しく1であるので、単純にその弱判別器によって画像が顔であるか否かが正しく判別されるサンプル画像の数が最も多いものが、最も有効な弱判別器として選択される。一方、後述するステップS15において各サンプル画像の重みが更新された後の2回目のステップS13では、重みが1のサンプル画像、重みが1よりも大きいサンプル画像、および重みが1よりも小さいサンプル画像が混在しており、重みが1よりも大きいサンプル画像は、正答率の評価において、重みが1のサンプル画像よりも重みが大きい分多くカウントされる。これにより、2回目以降のステップS13では、重みが小さいサンプル画像よりも、重みが大きいサンプル画像が正しく判別されることに、より重点が置かれる。
【0049】
次に、それまでに選択した弱判別器の組合せの正答率、すなわち、それまでに選択した弱判別器を組み合わせて使用して(学習段階では、弱判別器は必ずしも線形に結合させる必要はない)各サンプル画像が顔の画像であるか否かを判別した結果が、実際に顔の画像であるか否かの答えと一致する率が、所定の閾値を超えたか否かが確かめられる(ステップS14)。ここで、弱判別器の組合せの正答率の評価に用いられるのは、現在の重みが付けられたサンプル画像群でも、重みが等しくされたサンプル画像群でもよい。所定の閾値を超えた場合は、それまでに選択した弱判別器を用いれば画像が顔であるか否かを十分に高い確率で判別できるため、学習は終了する。所定の閾値以下である場合は、それまでに選択した弱判別器と組み合わせて用いるための追加の弱判別器を選択するために、ステップS16へと進む。
【0050】
ステップS16では、直近のステップS13で選択された弱判別器が再び選択されないようにするため、その弱判別器が除外される。
【0051】
次に、直近のステップS13で選択された弱判別器では顔であるか否かを正しく判別できなかったサンプル画像の重みが大きくされ、画像が顔であるか否かを正しく判別できたサンプル画像の重みが小さくされる(ステップS15)。このように重みを大小させる理由は、次の弱判別器の選択において、既に選択された弱判別器では正しく判別できなかった画像を重要視し、それらの画像が顔であるか否かを正しく判別できる弱判別器が選択されるようにして、弱判別器の組合せの効果を高めるためである。
【0052】
続いて、ステップS13へと戻り、上記したように重み付き正答率を基準にして次に有効な弱判別器が選択される。
【0053】
以上のステップS13からS16を繰り返して、顔であるか否かを判別するのに適した弱判別器として、特定のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せに対応する弱判別器が選択されたところで、ステップS14で確認される正答率が閾値を超えたとすると、顔であるか否かの判別に用いる弱判別器の種類と判別条件とが確定され(ステップS17)、これにより学習を終了する。なお、選択された弱判別器は、その重み付き正答率が高い順に線形結合され、1つの判別器が構成される。また、各弱判別器については、それぞれ得られたヒストグラムを基に、画素値の差分値の組合せに応じてスコアを算出するためのスコアテーブルが生成される。なお、ヒストグラム自身をスコアテーブルとして用いることもでき、この場合、ヒストグラムの判別ポイントがそのままスコアとなる。
【0054】
なお、上記の学習手法を採用する場合において、弱判別器は、特定のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せを用いて顔の画像と顔でない画像とを判別する基準を提供するものであれば、上記のヒストグラムの形式のものに限られずいかなるものであってもよく、例えば2値データ、閾値または関数等であってもよい。また、同じヒストグラムの形式であっても、図11の中央に示した2つのヒストグラムの差分値の分布を示すヒストグラム等を用いてもよい。
【0055】
また、学習の方法としては上記手法に限定されるものではなく、ニューラルネットワーク等他のマシンラーニングの手法を用いることができる。
【0056】
このように、本実施形態による顔検出方法および装置によれば、検出対象画像において大きい顔から順に探索し、途中、顔が検出されたら、顔が検出されたその領域をその後の探索における探索領域から外すようにしているので、顔が検出された領域にはそれより大きい顔は存在しないと考えられることから、そのような領域に対する無駄な検出処理を省くことができ、処理時間の短縮化、すなわち、より高速な顔検出が可能となる。
【0057】
なお、上記の第1の実施形態は、「顔を検出したらその対応する領域についてはそれより小さい顔は探索しない」ように構成されたものであるが、他の実施形態として、この構成に加え、「(1)顔を検出したときの顔らしさの程度(例えば、顔らしさを反映するスコア値等)が確信が持てるほど高いときには、その対応する領域についてそれより小さい顔を探索しないが、(2)顔を検出したときの顔らしさの程度が一応は高いものの確信が持てるほど高くないときには、それを暫定的な顔と位置づけて、それ以降もその対応する領域についてそれより小さい顔を探索し、その後確信が持てるより小さい顔が検出された場合には、その暫定的な顔を非顔と判定する」ように構成するようにしてもよい。
【0058】
図15は、このような構成の顔検出システム1(第2の実施形態)における顔検出部30を示した図である。図15に示す顔検出部30は、検出制御部31、サブウィンドウ設定部33、第1および第2の判別器群34,35で構成される検出部(検出手段)を、検出対象画像における輝度分布に係る特徴量を用いて、検出対象画像における「顔」と顔らしさの程度が当該顔に準ずる「準顔」とを検出するものとし、解像度画像選択部(顔大きさ設定手段)32による解像度画像の選択(検出すべき顔の大きさの設定)と上記検出部による顔の検出処理(設定された大きさの顔の検出)とが複数回繰り返された後に、検出された顔を位置的に内包する準顔を非顔と判定し、その他の準顔を顔と判定する準顔判定部36(判定手段)をさらに備えるようにしたものである。
【0059】
ここで、検出制御部31、解像度画像選択部32、ウィンドウ設定部33、第1および第2の判別器群34,35は、基本的に先の第1の実施形態と同様の機能を有するものであるが、検出制御部31は、検出モードが顔画像候補をさらに絞り込むための絞込みモードである場合の検出処理につき、第2の判別器群35を構成する判別器の判別処理において最後の弱判別器にて顔と判別されたもののみを顔と判定するのではなく、途中非顔と判別された場合も含め、(1)最終的な累積スコア≧所定の閾値Th1のときに部分画像Wを「顔」とし、(2)閾値Th1>最終的な累積スコア≧所定の閾値Th2(Th1>Th2)のときに部分画像Wを「準顔」とし、(3)閾値Th2>最終的な累積スコアのときに部分画像Wを「非顔」とするものである。また、準顔判定部36は、検出された「準顔」のうち「顔」を位置的に内包するものを非顔と判定し、その他の「準顔」を顔と判定するものである。閾値Th1は、部分画像Wが「顔」であると確信を持って言えるための境界線に相当し、閾値Th2は、一応は顔と考えられるが確信を持って言うことができない「準顔」と顔でないと考えられる「非顔」との境界線に相当する。
【0060】
図16は、第2の実施形態による顔検出システム1における処理の流れを示したフローチャートである。ステップS1からS7までは、先の第1の実施形態と同様の処理であるため、ここでは説明を省略する。本実施形態では、ステップS8において、検出制御部1により、上述のとおり、第2の判別器群35を構成する判別器における最終的な累積スコアの値に応じて、部分画像Wを「顔」、「準顔」または「非顔」のいずれかと判定され、その判定結果として「顔」および「準顔」からなる画像S2tが得られる。そして、ステップS9において、現在選択された解像度画像が最後の画像であると確認された後(ステップS9)、すなわち、すべての解像度画像において顔の検出が終了した後、準顔判定部36により、判定結果としての画像S2tに基づいて、検出された「準顔」のうち「顔」を位置的に内包するものが「非顔」と判定され、またその他の「準顔」が「顔」と判定され、最終的に「顔」と判定された画像S2が得られる(ステップ9−2)。そして、解像度画像間における重複検出を判定して重複検出のない形での検出結果として画像S3が得られ(ステップS10)、処理を終了する。
【0061】
このような第2の実施形態によれば、検出対象画像において、顔であると確信が持てる「顔」が検出されたときには、その領域でそれより小さい顔を探索せず、顔である可能性はあるものの確信が持てない「準顔」が検出されたときには、その領域においてもそれより小さい顔を探索し、その「準顔」の領域内で顔であると確信が持てるそれより小さい「顔」が検出された場合にその「準顔」を「非顔」と判定するとともにそれ以外の「準顔」を「顔」と判定するので、顔の中にそれより小さい顔が存在する確率が低いという事実に基づいて、既に検出された顔領域における無駄な検出処理を省いて処理時間の短縮化を図ることができるだけでなく、顔らしさの程度が不十分で顔画像であるか否かの判断が難しい画像について誤判定を抑制することができ、顔検出の高速化とともに検出精度の向上を実現させることができる。
【0062】
以上、本発明の実施形態に係る顔検出方法および装置について説明したが、上記顔検出装置における各処理をコンピュータに実行させるためのプログラムも、本発明の実施形態の1つである。また、そのようなプログラムを記録したコンピュータ読取可能な記録媒体も、本発明の実施形態の1つである。
【図面の簡単な説明】
【0063】
【図1】顔検出システム1の構成を示すブロック図
【図2】検出対象画像の多重解像度化の工程を示す図
【図3】顔検出部30の構成を示すブロック図
【図4】第1および第2の判別器群の構成を示すブロック図
【図5】判別器における大局的な処理フローを示す図
【図6】弱判別器における処理フローを示す図
【図7】弱判別器における特徴量の算出を説明するための図
【図8】複数の解像度画像での解像度画像の回転とサブウィンドウの移動を説明するための図
【図9】顔検出システム1において行われる処理を示すフローチャート
【図10】判別器の学習方法を示すフローチャート
【図11】弱判別器のヒストグラムを導出する方法を示す図
【図12】局所正規化処理の概念を示す図
【図13】局所正規化部における処理フローを示す図
【図14】目の位置が所定の位置にくるように規格化された顔のサンプル画像を示す図
【図15】第2の実施形態による顔検出システム1における顔検出部30の構成を示す図
【図16】第2の実施形態による顔検出システム1において行われる処理を示すフローチャート
【符号の説明】
【0064】
1 顔検出システム
10 多重解像度化部
20 局所正規化部
30 顔検出部
31 検出制御部(検出手段の構成要素)
32 解像度画像選択部(顔大きさ設定手段)
33 サブウィンドウ設定部(検出手段の構成要素)
34 第1の判別器群(検出手段の構成要素)
341 正面顔判別器
342 左横顔判別器
343 右横顔判別器
35 第2の判別器群(検出手段の構成要素)
36 準顔判定部(判定手段)
351 正面顔判別器
352 左横顔判別器
353 右横顔判別器
40 重複検出判定部

【特許請求の範囲】
【請求項1】
検出対象画像における検出すべき顔の大きさを変えながら設定する顔大きさ設定ステップと、
前記検出対象画像において前記設定された大きさの顔を検出する検出ステップとを複数回繰り返すことにより、前記検出対象画像に含まれる大きさの異なる顔を検出する顔検出方法において、
前記顔大きさ設定ステップが、前記検出すべき顔の大きさを大から小へ変えながら設定するステップであり、
前記検出ステップが、前記検出対象画像のうち既に検出された顔の領域を除く他の領域において顔を検出するステップであることを特徴とする顔検出方法。
【請求項2】
検出対象画像における検出すべき顔の大きさを変えながら設定する顔大きさ設定手段と、
前記検出対象画像において前記設定された大きさの顔を検出する検出手段とを備え、
前記顔大きさ設定手段による検出すべき顔の大きさの設定と、前記検出手段による顔の検出とを複数回繰り返すことにより、前記検出対象画像に含まれる大きさの異なる顔を検出する顔検出装置において、
前記顔大きさ設定手段が、前記検出すべき顔の大きさを大から小へ変えながら設定するものであり、
前記検出手段が、前記検出対象画像のうち既に検出された顔の領域を除く他の領域において顔を検出するものであることを特徴とする顔検出装置。
【請求項3】
前記検出手段が、前記検出対象画像における輝度分布に係る特徴量を用いて、前記検出対象画像における顔と顔らしさの程度が該顔に準ずる準顔とを検出するものであり、
前記顔大きさ設定手段による検出すべき顔の大きさの設定と、前記検出手段による顔の検出とが複数回繰り返された後に、前記検出された顔を位置的に内包する前記準顔を非顔と判定し、その他の前記準顔を顔と判定する判定手段をさらに備えたことを特徴とする請求項2記載の顔検出装置。
【請求項4】
コンピュータに、
検出対象画像における検出すべき顔の大きさを変えながら設定する顔大きさ設定処理と、
前記検出対象画像において前記設定された大きさの顔を検出する検出処理とを複数回繰り返し実行させることにより、前記検出対象画像に含まれる大きさの異なる顔を検出するプログラムにおいて、
前記顔大きさ設定処理が、前記検出すべき顔の大きさを大から小へ変えながら設定する処理であり、
前記検出処理が、前記検出対象画像のうち既に検出された顔の領域を除く他の領域において顔を検出する処理であることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2006−301847(P2006−301847A)
【公開日】平成18年11月2日(2006.11.2)
【国際特許分類】
【出願番号】特願2005−121023(P2005−121023)
【出願日】平成17年4月19日(2005.4.19)
【出願人】(000005201)富士写真フイルム株式会社 (7,609)
【Fターム(参考)】