特定向き顔判定方法および装置並びにプログラム
【課題】画像に含まれる特定の向きの顔を、高検出率、高分解能で検出する。
【解決手段】入力画像上で部分画像を切り出し、その部分画像が第1の角度範囲の向きの顔を含む画像であるか否かを第1の顔判別器で判別し、その部分画像が第1の角度範囲と一部重複する他の角度範囲の向きの顔を含む画像であるか否かを他の顔判別器で判別し、その部分画像に含まれる顔の向きが第1の角度範囲にあり、他の角度範囲にないと判別されたとき、その部分画像を第1の角度範囲から他の角度範囲との重複部分を除いた特定の角度範囲の向きの顔を含む画像と判定する。各判別器は、判別可能な顔の形状に幅を持たせるため、顔の向きが各判別器に応じた所定の角度範囲の向きであって顔の形状にバリエーションを持つ顔サンプル画像群を用いたマシンラーニングの学習により生成する。
【解決手段】入力画像上で部分画像を切り出し、その部分画像が第1の角度範囲の向きの顔を含む画像であるか否かを第1の顔判別器で判別し、その部分画像が第1の角度範囲と一部重複する他の角度範囲の向きの顔を含む画像であるか否かを他の顔判別器で判別し、その部分画像に含まれる顔の向きが第1の角度範囲にあり、他の角度範囲にないと判別されたとき、その部分画像を第1の角度範囲から他の角度範囲との重複部分を除いた特定の角度範囲の向きの顔を含む画像と判定する。各判別器は、判別可能な顔の形状に幅を持たせるため、顔の向きが各判別器に応じた所定の角度範囲の向きであって顔の形状にバリエーションを持つ顔サンプル画像群を用いたマシンラーニングの学習により生成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタル画像に含まれる特定の向きの顔を検出する特定向き顔検出方法および装置並びにそのためのプログラムに関するものである。
【背景技術】
【0002】
従来、デジタル画像(以下、単に画像という)に含まれる顔を検出する技術が、デジタルカメラや認証システム等の各分野において利用されているが、画像の中で特定の方向を向いた顔のみを検出する技術が求められる場合がある。
【0003】
画像の中で特定の方向を向いた顔のみを検出する方法としては、例えば、画像上の複数の異なる位置で部分画像を切り出し、各部分画像が特定の向きの顔を含む画像であるか否かを判別する方法が考えられるが、その判別には、ロバスト性と判別精度に優れた、サンプル画像を用いたマシンラーニングの学習手法により生成された判別器を用いる方法が考えられる。このような判別器に関しこれまでに提案された技術としては、以下のようなものがある。
【0004】
非特許文献1においては、顔の向き毎にその向きの顔を含むサンプル画像を複数用意し、顔の向き毎にこれらサンプル画像を用いて顔の特徴を学習させ、注目画像が所定の向きの顔を含む画像であるか否かを判別する判別器を、判別しようとする顔の向き毎に複数種類生成し、生成された複数種類の判別器を組み合わせて、様々な向きの顔を検出する方法が提案されている。
【0005】
また、特許文献1および2においては、学習方法そのものは基本的に非特許文献1により提案されている方法と同じであるが、学習用のサンプル画像に、拡大縮小・回転・アスペクト比の変化を加えて変形したサンプル画像を加え、顔の形状にある程度の許容度を持たせた判別器を生成する方法が提案されている。
【非特許文献1】「高速全方向顔検出」,Shihong LAO他,画像の認識・理解シンポジウム(MIRU2004),2004年7月,P.II-271−II-276
【特許文献1】特開平5−282457号公報
【特許文献2】特開2005−250772号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
ところで、特定の向きの顔を判別する判別器を生成するためには、非特許文献1により提案されているような、サンプル画像を用いたマシンラーニングの学習手法に基づき、顔の向きがその特定の向きに対応した所定の角度範囲にあるサンプル画像を用いて判別器を学習させる方法が考えられる。
【0007】
ここで、特定の向きの顔をその向きに対して高い分解能で検出しようとする場合には、上記所定の角度範囲を狭くする必要があるが、上記所定の角度範囲を狭くして生成された判別器は、顔の形状の変化がその判別結果に影響を及ぼしやすく、若干の顔の形状の変化に対応できないため、このような判別器を用いた検出においては検出漏れが発生しやすくなり、顔の検出率が低くなるという問題がある。
【0008】
一方、特定の向きの顔を高い検出率で検出しようとする場合には、顔の形状の変化に対応できる判別器を生成するために、特許文献1および2により提案されているような、学習用のサンプル画像に、拡大縮小・回転・アスペクト比の変化を加えて変形したサンプル画像を加えて学習させることにより判別器を生成する方法が考えられるが、このような方法により生成された判別器は、判別対象となる顔の向きの角度範囲が広くなる傾向にあり、このような判別器を用いた検出においては、検出しようとする顔の向きの分解能が低くなるという問題がある。
【0009】
すなわち、上記のようなサンプル画像を用いたマシンラーニングの学習によって生成された顔判別器は、顔判別器の顔形状の変化に対する許容度を大きくしようとすると、判別対象となる顔の向きの角度範囲が広くなり、逆に、当該許容度を小さくしようとすると、当該角度範囲が狭くなるという特性を有するため、大きい許容度と狭い角度範囲を両立させることが難しく、このような顔判別器を用いて画像に含まれる特定の向きの顔を検出しようとすると、高い検出率と顔の向きに対する高い分解能を両立させることが難しい。
【0010】
図15は、このような関係を表す概念図であり、顔の向きを表す空間において、検出したい特定の顔の向きの範囲と、判別器が実際に半別な可能な、つまり検出可能な顔の向きの範囲とを表したものである。図15(a)は比較的狭い範囲の向きの顔のサンプル画像のみを用いて学習させた判別器について示したものであり、判別可能な顔の向きの範囲が実際に検出したい顔の向きの範囲より狭くなるほど顔の向きに対する分解能を高くすることができるが、その反面、顔の形状の変化に対応し辛くなるため検出率が低くなる。一方、図15(b)は比較的広い範囲の向きの顔や形状にある程度のバリエーションを持たせた顔のサンプル画像のみを用いて学習させた判別器について示したものであり、顔の形状の変化に対応しやすくなり検出率を高めることができるが、その反面、判別可能な顔の向きの範囲が実際に検出したい顔の向きの範囲より広くなり顔の向きの分解能が低くなる。
【0011】
本発明は、上記事情に鑑みてなされたものであり、画像に含まれる特定の向きの顔を、高い検出率で、かつ、顔の向きに対して高い分解能で検出することが可能な特定向き顔検出方法および装置並びにそのためのプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【0012】
本発明の特定向き顔検出方法は、顔の向きが所定の角度範囲の向きであって形状が異なる顔をそれぞれ含む複数のサンプル画像を用いたマシンラーニングの手法により顔の特徴を学習してなる、判別対象の画像が前記所定の角度範囲に対応した角度範囲の向きの顔を含むか否かを判別する判別器を用いて、特定の向きの顔を検出する特定向き顔検出方法において、入力画像上で部分画像を切り出すステップと、該部分画像が第1の角度範囲の向きの顔を含む画像であるか否かを判別する第1の判別器を用いて、前記部分画像を判別するステップと、前記部分画像が、前記第1の角度範囲と一部重複する他の角度範囲の向きの顔を含む画像であるか否かを判別する他の判別器を用いて、前記部分画像を判別するステップと、前記部分画像が、前記第1の判別器により前記第1の角度範囲の向きの顔を含む画像であると判別され、かつ、前記他の判別器により前記他の角度範囲の向きの顔を含む画像でないと判別されたとき、前記部分画像を、前記第1の角度範囲から該第1の角度範囲と前記他の角度範囲との重複部分を除いた特定の角度範囲の向きの顔を含む画像と判定するステップとを有することを特徴とするものである。
【0013】
本発明の特定向き顔検出装置は、顔の向きが所定の角度範囲の向きであって形状が異なる顔をそれぞれ含む複数のサンプル画像を用いたマシンラーニングの手法により顔の特徴を学習してなる、判別対象の画像が前記所定の角度範囲に対応した角度範囲の向きの顔を含むか否かを判別する判別器を用いて、特定の向きの顔を検出する特定向き顔検出装置において、入力画像上で部分画像を切り出す部分画像切出し手段と、該部分画像が第1の角度範囲の向きの顔を含む画像であるか否かを判別する第1の判別器と、前記部分画像が、前記第1の角度範囲と一部重複する他の角度範囲の向きの顔を含む画像であるか否かを判別する他の判別器と、前記部分画像が、前記第1の判別器により前記第1の角度範囲の向きの顔を含む画像であると判別され、かつ、前記他の判別器により前記他の角度範囲の向きの顔を含む画像でないと判別されたとき、前記部分画像を、前記第1の角度範囲から該第1の角度範囲と前記他の角度範囲との重複部分を除いた特定の角度範囲の向きの顔を含む画像と判定する判定手段とを備えたことを特徴とするものである。
【0014】
本発明のプログラムは、コンピュータを、顔の向きが所定の角度範囲の向きであって形状が異なる顔をそれぞれ含む複数のサンプル画像を用いたマシンラーニングの手法により顔の特徴を学習してなる、判別対象の画像が前記所定の角度範囲に対応した角度範囲の向きの顔を含むか否かを判別する判別器を用いて、特定の向きの顔を検出する特定向き顔検出装置として機能させるためのプログラムにおいて、該コンピュータを、入力画像上で部分画像を切り出す部分画像切出し手段と、該部分画像が第1の角度範囲の向きの顔を含む画像であるか否かを判別する第1の判別器と、前記部分画像が、前記第1の角度範囲と一部重複する他の角度範囲の向きの顔を含む画像であるか否かを判別する他の判別器と、前記部分画像が、前記第1の判別器により前記第1の角度範囲の向きの顔を含む画像であると判別され、かつ、前記他の判別器により前記他の角度範囲の向きの顔を含む画像でないと判別されたとき、前記部分画像を、前記第1の角度範囲から該第1の角度範囲と前記他の角度範囲との重複部分を除いた特定の角度範囲の向きの顔を含む画像と判定する判定手段として機能させることを特徴とするものである。
【0015】
本発明において、前記他の判別器は、前記他の角度範囲が前記第1の角度範囲の一方の角度方向寄りに重複部分を有する第2の角度範囲である第2の判別器であり、前記特定の角度範囲は、前記第1の角度範囲から該第1の角度範囲と前記第2の角度範囲との重複部分を除いた角度範囲であってもよい。
【0016】
また、本発明において、前記他の判別器は、前記他の角度範囲が前記第1の角度範囲の一方の角度方向寄りに重複部分を有する第2の角度範囲である第2の判別器と、前記他の角度範囲が前記第1の角度範囲の他方の角度方向寄りに重複部分を有する第3の角度範囲である第3の判別器であり、前記特定の角度範囲は、前記第1の角度範囲から該第1の角度範囲と前記第2および第3の角度範囲との重複部分を除いた角度範囲であってもよい。
【0017】
本発明は、図15(c)に示すように、顔の形状の変化にある程度対応できるが判別可能な顔の向きの範囲が比較的広い判別器を複数組み合わせて用いることにより、顔の形状の変化に対応できる許容度を有したまま、その1つの判別器が判別する顔の向きの範囲より狭い範囲の向きにある顔を検出して、高検出率と高分解能を両立させようとするものである。
【0018】
ここで、マシンラーニングの手法としては、例えば、ニューラルネットワーク、ブースティング等の手法が考えられるが、本発明においては、ブースティングが好ましい。
【0019】
また、顔の向きとは、アウトプレーン(out-plane;画像面外)方向での顔の向きを意味し、別の言い方をすれば、左右首振り方向における顔の向きを意味するものである。
【発明の効果】
【0020】
本発明の特定向き顔検出方法および装置並びにそのためのプログラムによれば、顔の向きが所定の角度範囲の向きであって形状が異なる顔をそれぞれ含む複数のサンプル画像を用いたマシンラーニングの手法により顔の特徴を学習させて、顔の形状の変化に対して比較的大きい許容度を有する一方、判別対象となる顔の向きの角度範囲が比較的広くなる判別器を、その角度範囲が一部重複するように複数種類生成して用意しておき、入力画像上で切り出された部分画像に対してこれら複数種類の判別器を適用して判別を行い、その判別結果に基づいて、上記部分画像が、いずれかの判別器の判別対象となる顔の向きの角度範囲から上記重複部分を除いた角度範囲の向きの顔を含む画像であるかを判定するようにしているので、顔の形状の変化に対応しつつ、1つの判別器が判別する顔の向きの角度範囲より狭い角度範囲の向きの顔に絞って特定の向きの顔を検出することができ、画像に含まれる特定の向きの顔を、高い検出率で、かつ、顔の向きに対して高い分解能で検出することが可能となる。
【発明を実施するための最良の形態】
【0021】
以下、本発明の実施形態について図を参照しながら説明する。
【0022】
図1は本発明の実施形態である特定向き顔検出システム1の構成を示す概略ブロック図である。この特定向き顔検出システム1は、図1に示すように、画像正規化部10と、サブウィンドウ設定部(部分画像切出し手段)20と、正面顔判別器(第1の判別器)31と、右斜め顔判別器(第2の判別器)32と、左斜め顔判別器(第3の判別器)33と、特定向き顔判定部(判定手段)40とを備えている。
【0023】
画像正規化部10は、入力画像S0のコントラストが顔検出処理に適した状態となるように、入力画像S0に対して全体正規化処理および局所正規化処理を施し、正規化済み画像S1を得るものである。
【0024】
まず、全体正規化処理について説明する、全体正規化処理は、顔を検出する対象となる画像(以下、検出対象画像という)のコントラストを顔検出処理に適した所定のレベル、すなわち、後述の顔判別器の性能を引き出すのに適したレベルに近づけるべく、入力画像S0全体の画素値をこの画像における被写体の輝度の対数を表す値に近づける変換曲線にしたがって変換する処理である。
【0025】
図2は全体正規化処理に用いる変換曲線の一例を示した図である。全体正規化処理としては、例えば、図2に示すような、画素値をsRGB空間におけるいわゆる逆ガンマ変換(=2.2乗する)した後にさらに対数をとるような変換曲線(ルックアップテーブル)にしたがって、画像全体における画素値を変換する処理を考えることができる。これは、次のような理由による。
【0026】
画像として観測される光強度Iは、通常、被写体の反射率Rと光源の強度Lの積として表現される(I=R×L)。したがって、光源の強度Lが変化すると、画像として観測される光強度Iも変化することになるが、被写体の反射率Rのみを評価することができれば、光源の強度Lに依存しない、すなわち、画像の明るさの影響を受けない精度の高い顔判別を行うことができる。
【0027】
ここで、光源の強度がLの場合において、被写体上で反射率がR1の部分から観測される光強度をI1、被写体上で反射率がR2の部分から観測される光強度をI2としたとき、それぞれの対数をとった空間では、下記の式が成り立つ。
【数1】
【0028】
すなわち、画像における画素値を対数変換することは、反射率の比が差として表現された空間へ変換することとなり、このような空間では、光源の強度Lに依存しない被写体の反射率のみを評価することが可能となる。言い換えると、画像中の明るさによって異なるコントラスト(ここでは画素値の差分そのもの)を揃えることができる。
【0029】
一方、一般的なデジタルカメラ等の機器で取得された画像の色空間はsRGBである。sRGBとは、機器間の色再現の違いを統一するために、色彩、彩度等を規定・統一した国際標準の色空間のことであり、この色空間においては、ガンマ値(γout)が2.2の画像出力機器において適正な色再現を可能にするため、画像の画素値は、入力輝度を1/γout(=0.45)乗して得られる値となっている。
【0030】
そこで、画像全体における画素値を、いわゆる逆ガンマ変換、すなわち、2.2乗した後にさらに対数をとるような変換曲線にしたがって変換することにより、光源の強度に依存しない被写体の反射率のみによる評価を適正に行うことができるようになる。
【0031】
なお、このような全体正規化処理は、別の言い方をすれば、画像全体における画素値を、特定の色空間を別の特性を有する色空間に変換する変換曲線にしたがって変換する処理ということができる。
【0032】
このような処理を検出対象画像に施すことにより、画像中の明るさによって異なるコントラストを揃えることができ、顔検出処理の精度が向上することとなる。なお、この全体正規化処理は、処理結果が検出対象画像中の斜光や背景、入力モダリティの違いによる影響を受けやすい反面、処理時間が短いという特徴を有する。
【0033】
次に、局所正規化処理について説明する。局所正規化処理は、検出対象画像上の局所的な領域におけるコントラストのばらつきを抑制するための処理である。すなわち、検出対象画像における各局所領域について、輝度を表す画素値の分散の程度が所定レベル以上である局所領域に対しては、この分散の程度を前記の所定レベルより高い一定レベルに近づける第1の輝度階調変換処理を施し、画素値の分散の程度が前記の所定レベル未満である局所領域に対しては、この分散の程度を前記の一定レベルより低いレベルに抑える第2の輝度階調変換処理を施すものである。なお、この局所正規化処理は、処理時間は長いが、検出対象画像中の斜光や背景、入力モダリティの違いによる判別結果への影響は小さいという特徴を有する。
【0034】
図3は局所正規化処理の概念を示した図であり、図4は局所正規化処理のフローを示した図である。また、式(2),(3)は、この局所正規化処理のための画素値の階調変換の式である。
【数2】
【0035】
ここで、Xは注目画素の画素値、X′は注目画素の変換後の画素値、mlocalは注目画素を中心とする局所領域における画素値の平均、Vlocalはこの局所領域における画素値の分散、SDlocalはこの局所領域における画素値の標準偏差、C1は、(C1×C1)が前記の一定レベルに対応する基準値となるような値、C2は前記の所定レベルに対応する閾値、SDcは所定の定数である。なお、本実施形態において、輝度の階調数は8bitとし、画素値の取り得る値は0から255とする。
【0036】
図3に示すように、まず、検出対象画像における1つの画素を注目画素として設定し(ステップST1)、この注目画素を中心とする所定の大きさ、例えば11×11画素サイズの局所領域における画素値の分散Vlocalを算出し(ステップST2)、分散Vlocalが前記所定のレベルに対応する閾値C2以上であるか否かを判定する(ステップST3)。ステップST3において、分散Vlocalが閾値C2以上であると判定された場合には、前記第1の輝度階調変換処理として、分散Vlocalが前記一定のレベルに対応する基準値(C1×C1)より大きいほど、注目画素の画素値Xと平均mlocalとの差を小さくし、分散mlocalが基準値(C1×C1)より小さいほど、注目画素の画素値Xと平均mlocalとの差を大きくする階調変換を式(2)にしたがって行う(ステップST4)。一方、ステップST3において、分散Vlocalが閾値C2未満であると判定された場合には、前記第2の輝度階調変換処理として、分散Vlocalに依らない線形な階調変換を式(3)にしたがって行う(ステップST5)。そして、ステップST1で設定した注目画素が最後の画素であるか否かを判定する(ステップST6)。ステップST6において、その注目画素が最後の画素でないと判定された場合には、ステップST1に戻り、同じ解像度画像上の次の画素を注目画素として設定する。一方、ステップST6において、その注目画素が最後の画素であると判定された場合には、その検出対象画像に対する局所正規化を終了する。このように、前記ステップST1からST6の処理を繰り返すことにより、検出対象画像全体に局所正規化を施すことができる。
【0037】
なお、前記の所定レベルは、局所領域における全体または一部の輝度に応じて変化させるようにしてもよい。例えば、前記の、注目画素毎に階調変換を行う正規化処理において、閾値C2を注目画素の画素値に応じて変化させるようにしてもよい。すなわち、前記の所定レベルに対応する閾値C2を、注目画素の輝度が相対的に高いときにはより高く設定し、その輝度が相対的に低いときにはより低く設定するようにしてもよい。このようにすることで、輝度の低い、いわゆる暗い領域に低いコントラスト(画素値の分散が小さい状態)で存在している顔も正しく正規化することができる。
【0038】
サブウィンドウ設定部20は、正規化済み画像S1上において、所定のサイズ、例えば32×32画素サイズのサブウィンドウを、その位置を予め決められたラインに沿って所定のピッチ、例えば2画素ピッチで変えながら順次設定し、このサブウィンドウで囲まれた部分画像Wを切り出して、後述の正面顔判別器31、右斜め顔判別器32および左斜め顔判別器33の各々へ入力するものである。
【0039】
正面顔判別器31、右斜め顔判別器32および左斜め顔判別器33は、それぞれ、サブウィンドウ設定部20によって切り出された部分画像Wが、各判別器の種類に応じた所定の角度範囲の向きの顔を含む顔画像であるか否かを判別するものである。図5は本実施例における各判別器の判別対象となる顔の向きの角度範囲を示した図である。正面顔判別器31は、部分画像Wが、真正面の向きを角度の基準(0°)として、−30°〜30°の角度範囲(第1の角度範囲)向きの顔を含む画像であるか否かを判別するものであり、右斜め顔判別器32は、部分画像Wが+15°〜+75°の角度範囲(第2の角度範囲)の向きの顔を含む画像であるか否かを判別するものであり、左斜め顔判別器33は、部分画像Wが−15°〜−75°の角度範囲(第3の角度範囲)の向きの顔を含む画像であるか否かを判別するものである。正面顔判別器31と右斜め顔判別器32とでは、その判別対象となる顔の向きの角度範囲が+15°〜+30°の範囲で重複しており、正面顔判別器31と左斜め顔判別器33とでは、その判別対象となるか顔の向きの角度範囲が−15°〜−30°の範囲で重複している。
【0040】
ここで、各判別器の構成、判別器における処理の流れおよび判別器の学習方法について説明する。
【0041】
各判別器は、図6に示すように、後述の学習により多数の弱判別器WCの中から選定された判別に有効な複数の弱判別器WCを有している。弱判別器WCは、それぞれ、部分画像Wから弱判別器WC毎に固有の所定のアルゴリズムにしたがって特徴量を算出し、その特徴量と所定のスコアテーブルとしての後述の自己のヒストグラムとに基づいて、部分画像Wが所定の向きの顔を含む顔画像である蓋然性を示すスコアscwを求めるものである。判別器は、これら複数の弱判別器WCから得られた個々のスコアscwを合算してスコアscを求め、このスコアscが閾値Th1以上であるときに、部分画像Wをその所定の角度範囲の向きの顔を含む顔画像として判別し、判別結果Rを出力する。
【0042】
図7は1つの判別器における処理の流れを示すフローチャートである。部分画像Wが判別器に入力されると、複数の弱判別器WCにおいてそれぞれ種類の異なる特徴量xが算出される(ステップST11)。例えば、図8に示すように、所定のサイズ、例えば、32×32画素サイズの部分画像Wに対して、4近傍画素平均(画像を2×2画素サイズ毎に複数のブロックに区分し、各ブロックの4画素における画素値の平均値をそのブロックに対応する1つの画素の画素値とする処理)を段階的に行うことにより、16×16画素サイズに縮小した画像W′と、8×8画素サイズに縮小した画像W″を得、もとの画像Wを含めたこれら3つの画像の平面内に設定される所定の2点を1ペアとして、複数種類のペアからなる1つのペア群を構成する各ペアにおける2点間の画素値(輝度)の差分値をそれぞれ計算し、これらの差分値の組合せを特徴量とする。各ペアの所定の2点は、例えば、画像上の顔の濃淡の特徴が反映されるよう決められた縦方向に並んだ所定の2点や、横方向に並んだ所定の2点とする。そして、特徴量である差分値の組合せに対応する値をxとして算出する。次に、その値xに応じて所定のスコアテーブル(自己のヒストグラム)から部分画像Wが判別すべき顔(例えば、正面顔判別器31場合には「顔の向きが−30°〜+30°の角度範囲の向きである顔」)を含む顔画像である蓋然性を示すスコアscwが弱判別器毎に算出される(ステップST12)。そして、弱判別器毎に算出された個々のスコアscwを合算してスコアscが得られ(ステップST13)、このスコアscが第1の閾値Th1以上であるか否かを判定し(ステップST14)、肯定される場合に、その部分画像Wを、この判別器が判別すべき所定の角度範囲の向きの顔を含む画像として抽出する(ステップST15)。
【0043】
次に、判別器の学習(生成)方法について説明する。
【0044】
図9は判別器の学習方法を示すフローチャートである。判別器の学習には、所定のサイズ、例えば32×32画素サイズで規格化され、さらに、前述の画像正規化部10による正規化処理と同様の処理が施された複数のサンプル画像を用いる。サンプル画像としては、判別器が判別すべき所定の角度範囲の向きの顔が含まれる複数の異なる顔サンプル画像(顔サンプル画像群)と、顔が含まれていない複数の異なる非顔サンプル画像(非顔サンプル画像群)とを用意する。
【0045】
顔サンプル画像群は、1つの顔サンプル画像につき、縦および/または横を0.7倍から1.2倍の範囲にて0.1倍単位で段階的に拡縮して得られる各サンプル画像に対し、平面上±15°の範囲にて3°単位で段階的に回転させて得られる複数の変形バリエーションを用いる。これにより、顔の傾きや顔の形状の変化に許容度を有する判別器を生成することができる。すなわち、判別器が判別可能な顔の傾きや形状にある程度の幅をもたせることができる。
【0046】
なおこのとき、顔サンプル画像は、目の位置が所定の位置に来るように顔のサイズと位置を規格化し、前記の平面上の回転、拡縮は目の位置を基準として行うようにする。例えば、d×dサイズのサンプル画像の場合においては、図10に示すように、両目の位置が、サンプル画像の最左上の頂点と最右上の頂点から、それぞれ、内側に1/4d、下側に1/4d移動した各位置とに来るように顔のサイズと位置を規格化し、また、前記の平面上の回転、拡縮は、両目の中間点を中心に行うようにする。
【0047】
これら各サンプル画像には、重みすなわち重要度が割り当てられる。まず、すべてのサンプル画像の重みの初期値が等しく1に設定される(ステップST21)。
【0048】
次に、サンプル画像およびその縮小画像の平面内に設定される所定の2点を1ペアとして複数のペアからなるペア群を複数種類設定したときの、この複数種類のペア群のそれぞれについて弱半別器が作成される(ステップST22)。ここで、それぞれの弱判別器とは、サブウィンドウで切り出された部分画像Wとその縮小画像の平面内に設定される所定の2点を1ペアとして複数のペアからなる1つのペア群を設定したときの、この1つのペア群を構成する各ペアにおける2点間の画素値(輝度)の差分値の組合せを用いて、顔の画像と顔でない画像とを判別する基準を提供するものである。本実施形態においては、1つのペア群を構成する各ペアにおける2点間の画素値の差分値の組合せについてのヒストグラムを弱判別器のスコアテーブルの基礎として使用する。
【0049】
図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)。これにより、画素値の差分値の組合せの数はnの5乗通りとなるため、画素値の差分値の組合せを表すデータ数を低減できる。
【0050】
同様に、非顔サンプル画像群についても、ヒストグラムが作成される。なお、非顔サンプル画像については、顔サンプル画像上における前記各ペアの所定の2点の位置に対応する位置(同様に参照符号P1からP7を用いる)が用いられる。これらの2つのヒストグラムが示す頻度値の比の対数値を取ってヒストグラムで表したものが、図11の一番右側に示す、弱判別器のスコアテーブルの基礎として用いられるヒストグラムである。この弱判別器のヒストグラムが示す各縦軸の値を、以下、判別ポイントと称する。この弱判別器によれば、正の判別ポイントに対応する、画素値の差分値の組合せの分布を示す画像は顔である可能性が高く、判別ポイントの絶対値が大きいほどその可能性は高まると言える。逆に、負の判別ポイントに対応する画素値の差分値の組合せの分布を示す画像は顔でない可能性が高く、やはり判別ポイントの絶対値が大きいほどその可能性は高まる。ステップST22では、判別に使用され得る複数種類のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せについて、前記のヒストグラム形式の複数の弱判別器が作成される。
【0051】
続いて、ステップST22で作成した複数の弱半別器のうち、画像が顔画像であるか否かを判別するのに最も有効な弱判別器が選択される。最も有効な弱判別器の選択は、各サンプル画像の重みを考慮して行われる。この例では、各弱判別器の重み付き正答率が比較され、最も高い重み付き正答率を示す弱判別器が選択される(ステップST23)。すなわち、最初のステップST23では、各サンプル画像の重みは等しく1であるので、単純にその弱判別器によって画像が顔画像であるか否かが正しく判別されるサンプル画像の数が最も多いものが、最も有効な弱判別器として選択される。一方、後述するステップST25において各サンプル画像の重みが更新された後の2回目のステップST23では、重みが1のサンプル画像、重みが1よりも大きいサンプル画像、および重みが1よりも小さいサンプル画像が混在しており、重みが1よりも大きいサンプル画像は、正答率の評価において、重みが1のサンプル画像よりも重みが大きい分多くカウントされる。これにより、2回目以降のステップST23では、重みが小さいサンプル画像よりも、重みが大きいサンプル画像が正しく判別されることに、より重点が置かれる。
【0052】
次に、それまでに選択した弱判別器の組合せの正答率、すなわち、それまでに選択した弱判別器を組み合わせて使用して(学習段階では、弱判別器は必ずしも線形に結合させる必要はない)各サンプル画像が顔画像であるか否かを判別した結果が、実際に顔画像であるか否かの答えと一致する率が、所定の閾値を超えたか否かが確かめられる(ステップST24)。ここで、弱判別器の組合せの正答率の評価に用いられるのは、現在の重みが付けられたサンプル画像群でも、重みが等しくされたサンプル画像群でもよい。所定の閾値を超えた場合は、それまでに選択した弱判別器を用いれば画像が顔であるか否かを十分に高い確率で判別できるため、学習は終了する。所定の閾値以下である場合は、それまでに選択した弱判別器と組み合わせて用いるための追加の弱判別器を選択するために、ステップST26へと進む。
【0053】
ステップST26では、直近のステップST23で選択された弱判別器が再び選択されないようにするため、その弱判別器が除外される。
【0054】
次に、直近のステップST23で選択された弱判別器では顔であるか否かを正しく判別できなかったサンプル画像の重みが大きくされ、画像が顔画像であるか否かを正しく判別できたサンプル画像の重みが小さくされる(ステップST25)。このように重みを大小させる理由は、次の弱判別器の選択において、既に選択された弱判別器では正しく判別できなかった画像を重要視し、それらの画像が顔画像であるか否かを正しく判別できる弱判別器が選択されるようにして、弱判別器の組合せの効果を高めるためである。
【0055】
続いて、ステップST23へと戻り、前記したように重み付き正答率を基準にして次に有効な弱判別器が選択される。
【0056】
以上のステップST23からS26を繰り返して、顔画像であるか否かを判別するのに適した弱判別器として、特定のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せに対応する弱判別器が選択されたところで、ステップST24で確認される正答率が閾値を超えたとすると、顔画像であるか否かの判別に用いる弱判別器の種類と判別条件とが確定され(ステップST27)、これにより学習を終了する。なお、選択された弱判別器は、その重み付き正答率が高い順に線形結合され、1つの判別器が構成される。また、各弱判別器については、それぞれ得られたヒストグラムを基に、画素値の差分値の組合せに応じてスコアを算出するためのスコアテーブルが生成される。なお、ヒストグラム自身をスコアテーブルとして用いることもでき、この場合、ヒストグラムの判別ポイントがそのままスコアとなる。
【0057】
このようにして、顔サンプル画像群と非顔サンプル画像群とを用いた学習により、判別器が生成されるわけであるが、前述のように、判別可能な顔の向きの角度範囲が異なる複数の判別器を生成するには、図12に示すように、顔の向きの各角度範囲にそれぞれ対応した複数種類の顔サンプル画像群を用意し、その顔サンプル画像群と非顔サンプル画像群とを用いた学習を顔サンプル画像群の種類毎に行うこととなる。すなわち、本実施例では、判別したい顔の向きの角度範囲を、それぞれ、−30°〜+30°、+15°〜+75°、−15°〜−75°として、各角度範囲に対応した3種類の顔サンプル画像群を用意し、顔サンプル画像群の種類毎に、その顔サンプル画像群と非顔サンプル画像群とを用いて前記の学習を行い、各判別器を生成する。
【0058】
なお、前記の学習手法を採用する場合において、弱判別器は、特定のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せを用いて顔の画像と顔でない画像とを判別する基準を提供するものであれば、前記のヒストグラムの形式のものに限られずいかなるものであってもよく、例えば2値データ、閾値または関数等であってもよい。また、同じヒストグラムの形式であっても、図11の中央に示した2つのヒストグラムの差分値の分布を示すヒストグラム等を用いてもよい。
【0059】
また、学習の方法としては前記のブースティングの手法に限定されるものではなく、ニューラルネットワーク等他のマシンラーニングの手法を用いることができる。
【0060】
特定向き顔判定部40は、図13に示すように、部分画像Wが正面顔判別器31により第1の角度範囲の向きの顔を含む画像であると判別され、かつ、同部分画像Wが右斜め顔判別器32により第2の角度範囲の向きの顔を含む画像でないと判別され、さらに、同部分画像Wが左斜め顔判別器33により第3の角度範囲の向きの顔を含む画像でないと判別されたときに、同部分画像Wを、第1の角度範囲から第2および第3の角度範囲との重複部分を除いた特定の角度範囲の向きの顔を含む画像であると判定し、それ以外の判別結果である場合には、同部分画像Wを上記特定の角度範囲の向きの顔を含む画像でないと判定するものである。すなわち、正面顔判別器31によって部分画像Wが第1の角度範囲の向きの顔であると判別されたことにより、まず、部分画像Wは顔を含む画像であり、その顔の向きが第1の角度範囲である+30°〜−30°の角度範囲にあることが分かり、次に、右斜め顔判別器32におよび左斜め顔判別器33によって部分画像Wが第2および第3の角度範囲である+15°〜+75°、−15°〜−75°の角度範囲にはないことが分かるため、その部分画像Wを+15°〜−15°の角度範囲の向きの顔を含む画像として判定するわけである。
【0061】
次に、特定向き顔検出システム1における処理の流れについて説明する。
【0062】
図14は、特定向き顔検出システム1における処理の流れを示したフローチャートである。これらの図に示すように、本システムに画像S0が入力されると(ステップST31)、画像正規化部10が入力画像S0に対して上述の全体正規化処理と局所正規化処理を施し、正規化済み画像S1を得る(ステップST32)。
【0063】
次に、サブウィンドウ設定部20は、正規化済み画像S1上で初期値として定められた所定の位置にサブウィンドウを設定して部分画像Wを切り出し、その部分画像Wを正面顔判別器31、右斜め顔判別器32および左斜め顔判別器33の各々に入力する(ステップST33)。そして、各判別器は、それぞれ、複数の弱判別器を用いて、部分画像Wがその判別器に応じた所定の角度範囲の向きの顔を含む画像である蓋然性を示すスコアscを算出し、算出されたスコアscが閾値Th1以上であるときに、この部分画像Wをその所定の角度範囲の向きの顔を含む画像として判別し、その判別結果Rを特定向き顔判定手段40に送る(ステップST34)。
【0064】
特定向き判定手段40は、その判別結果に基づいて、部分画像Wが特定の角度範囲、すなわち+15°〜−15°の角度範囲の向きの顔を含む画像であるか否かを判定し、当該画像であると判定された部分画像Wを、正面顔に相当する特定の向きの顔を含む画像として抽出する(ステップST35)。
【0065】
特定向き判定手段40による判定がなされると、サブウィンドウ設定部20は、次に判別すべき部分画像Wが存在するか否かを判定する(ステップST36)。ここで、次に判別すべき部分画像Wが存在すると判定された場合には、ステップST33に戻り新たなサブウィンドウを設定し、次に判別すべき部分画像Wが存在しない場合には、顔の検出処理を終了する。
【0066】
このような本実施形態による顔検出システムによれば、顔の向きが所定の角度範囲の向きであって形状が異なる顔をそれぞれ含む複数のサンプル画像を用いたマシンラーニングの手法により顔の特徴を学習させて、顔の形状の変化に対して比較的大きい許容度を有する一方、判別対象となる顔の向きの角度範囲が比較的広くなる判別器を、その角度範囲が一部重複するように複数種類生成して用意しておき、入力画像上で切り出された部分画像に対してこれら複数種類の判別器を適用して判別を行い、その判別結果に基づいて、上記部分画像が、いずれかの判別器の判別対象となる顔の向きの角度範囲から上記重複部分を除いた角度範囲の向きの顔を含む画像であるかを判定するようにしているので、顔の形状の変化に対応しつつ、1つの判別器が判別する顔の向きの角度範囲より狭い角度範囲の向きの顔に絞って特定の向きの顔を検出することができ、画像に含まれる特定の向きの顔を、高い検出率で、かつ、顔の向きに対して高い分解能で検出することが可能となる。
【0067】
なお、本実施例では、検出すべき特定の向きの顔が正面顔の場合について説明したが、もちろん、検出すべき特定の向きの顔を斜め方向を向いた顔としてもよい。
【0068】
また、本実施例では、検出できる顔の大きさがほぼ固定されているが、大きさが異なる顔を一緒に検出しようとする場合や顔の大きさに依らずいずれの顔も検出しようとする場合には、例えば、入力画像S0を多重解像度化して解像度の異なる複数の画像を生成し、生成された複数の画像の各々に対して本実施例と同様の検出処理を施すようにすればよい。
【0069】
また、本実施例では、正面顔判別器、左斜め判別器および右斜め判別器の3種類の判別器を用いて、それぞれが判別可能な顔の向きの角度範囲の重複部分を2つにしているが、もちろん、正面顔判別器と左斜め判別器、あるいは、正面顔判別器と右斜め顔判別器のように、2種類の判別器を用いて、判別可能な顔の向きの角度範囲の重複部分を1つにしてもよい。
【0070】
また、本実施例では、図16(a)に示すように、正面顔判別器によって顔を含む画像であると判定され、かつ、左斜め判別器および右斜め判別器によって顔を含む画像ではないと判定された場合に、その画像に含まれる顔の向きを、正面顔判別器が判別可能な角度範囲(−45°〜−45)からその角度範囲と他の2つの判別器が判別可能な角度範囲(−75°〜−15°と+15°〜+75°)との重複部分(−30°〜−15°と+15°〜+30°)を除いた角度範囲(−15°〜+15°)の向きとして検出すようにしているが、実際には、例えば、図16(b)に示すように、正面顔判別器によって顔を含む画像であると判定され、かつ、左斜め判別器および右斜め判別器によって顔を含む画像ではないと判定された場合であっても、その画像が含む顔の向きを、正面顔判別器が判別可能な角度範囲(−45°〜−45)からその角度範囲と左斜め顔判別器が判別可能な角度範囲(−75°〜−15°)との重複部分(−30°〜−15°)を除いた角度範囲(−15°〜+30°)の向きとして検出することも考えられる。これは、各判別器の相性等の問題からある特定の判別器の信頼性が損なわれ、その判別器による判定結果を無視するような場合が想定されるからである。
【0071】
以上、本発明の実施形態に係る特定向き顔検出システムについて説明したが、このシステムにおける処理をコンピュータに実行させるためのプログラムも、本発明の実施形態の1つである。また、そのようなプログラムを記録したコンピュータ読取可能な記録媒体も、本発明の実施形態の1つである。
【図面の簡単な説明】
【0072】
【図1】特定向き顔検出システム1の構成を示すブロック図
【図2】全体正規化処理に用いる変換曲線の一例を示す図
【図3】局所正規化処理の概念を示す図
【図4】局所正規化処理のフローを示す図
【図5】各判別器の判別対象となる顔の向きの角度範囲を示した図
【図6】判別器の構成を示すブロック図
【図7】判別器における処理フローを示す図
【図8】弱判別器における特徴量の算出を説明するための図
【図9】判別器の学習方法を示すフローチャート
【図10】目の位置が所定の位置にくるように規格化された顔のサンプル画像を示す図
【図11】弱判別器のヒストグラムを導出する方法を示す図
【図12】判別可能な顔の向きの角度範囲が異なる複数の判別器を生成する場合の概念図
【図13】各判別器の判別結果から特定の角度範囲の向きの顔か否かを判定する様子を示す図
【図14】第1の実施形態による顔検出システム1における処理を示すフローチャート
【図15】顔向き空間において検出したい範囲と検出可能な範囲との関係を表した概念図
【図16】判別器が判別可能な顔の向きの角度範囲と実際に検出する顔の向きとの関係を示す図
【符号の説明】
【0073】
1 特定向き顔検出システム
10 画像正規化部
20 サブウィンドウ設定部(部分画像切出し手段)
31 正面顔判別器(第1の判別器)
32 右斜め顔判別器(第2の判別器)
33 左斜め顔判別器(第3の判別器)
40 特定向き顔判定部(判定手段)
【技術分野】
【0001】
本発明は、デジタル画像に含まれる特定の向きの顔を検出する特定向き顔検出方法および装置並びにそのためのプログラムに関するものである。
【背景技術】
【0002】
従来、デジタル画像(以下、単に画像という)に含まれる顔を検出する技術が、デジタルカメラや認証システム等の各分野において利用されているが、画像の中で特定の方向を向いた顔のみを検出する技術が求められる場合がある。
【0003】
画像の中で特定の方向を向いた顔のみを検出する方法としては、例えば、画像上の複数の異なる位置で部分画像を切り出し、各部分画像が特定の向きの顔を含む画像であるか否かを判別する方法が考えられるが、その判別には、ロバスト性と判別精度に優れた、サンプル画像を用いたマシンラーニングの学習手法により生成された判別器を用いる方法が考えられる。このような判別器に関しこれまでに提案された技術としては、以下のようなものがある。
【0004】
非特許文献1においては、顔の向き毎にその向きの顔を含むサンプル画像を複数用意し、顔の向き毎にこれらサンプル画像を用いて顔の特徴を学習させ、注目画像が所定の向きの顔を含む画像であるか否かを判別する判別器を、判別しようとする顔の向き毎に複数種類生成し、生成された複数種類の判別器を組み合わせて、様々な向きの顔を検出する方法が提案されている。
【0005】
また、特許文献1および2においては、学習方法そのものは基本的に非特許文献1により提案されている方法と同じであるが、学習用のサンプル画像に、拡大縮小・回転・アスペクト比の変化を加えて変形したサンプル画像を加え、顔の形状にある程度の許容度を持たせた判別器を生成する方法が提案されている。
【非特許文献1】「高速全方向顔検出」,Shihong LAO他,画像の認識・理解シンポジウム(MIRU2004),2004年7月,P.II-271−II-276
【特許文献1】特開平5−282457号公報
【特許文献2】特開2005−250772号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
ところで、特定の向きの顔を判別する判別器を生成するためには、非特許文献1により提案されているような、サンプル画像を用いたマシンラーニングの学習手法に基づき、顔の向きがその特定の向きに対応した所定の角度範囲にあるサンプル画像を用いて判別器を学習させる方法が考えられる。
【0007】
ここで、特定の向きの顔をその向きに対して高い分解能で検出しようとする場合には、上記所定の角度範囲を狭くする必要があるが、上記所定の角度範囲を狭くして生成された判別器は、顔の形状の変化がその判別結果に影響を及ぼしやすく、若干の顔の形状の変化に対応できないため、このような判別器を用いた検出においては検出漏れが発生しやすくなり、顔の検出率が低くなるという問題がある。
【0008】
一方、特定の向きの顔を高い検出率で検出しようとする場合には、顔の形状の変化に対応できる判別器を生成するために、特許文献1および2により提案されているような、学習用のサンプル画像に、拡大縮小・回転・アスペクト比の変化を加えて変形したサンプル画像を加えて学習させることにより判別器を生成する方法が考えられるが、このような方法により生成された判別器は、判別対象となる顔の向きの角度範囲が広くなる傾向にあり、このような判別器を用いた検出においては、検出しようとする顔の向きの分解能が低くなるという問題がある。
【0009】
すなわち、上記のようなサンプル画像を用いたマシンラーニングの学習によって生成された顔判別器は、顔判別器の顔形状の変化に対する許容度を大きくしようとすると、判別対象となる顔の向きの角度範囲が広くなり、逆に、当該許容度を小さくしようとすると、当該角度範囲が狭くなるという特性を有するため、大きい許容度と狭い角度範囲を両立させることが難しく、このような顔判別器を用いて画像に含まれる特定の向きの顔を検出しようとすると、高い検出率と顔の向きに対する高い分解能を両立させることが難しい。
【0010】
図15は、このような関係を表す概念図であり、顔の向きを表す空間において、検出したい特定の顔の向きの範囲と、判別器が実際に半別な可能な、つまり検出可能な顔の向きの範囲とを表したものである。図15(a)は比較的狭い範囲の向きの顔のサンプル画像のみを用いて学習させた判別器について示したものであり、判別可能な顔の向きの範囲が実際に検出したい顔の向きの範囲より狭くなるほど顔の向きに対する分解能を高くすることができるが、その反面、顔の形状の変化に対応し辛くなるため検出率が低くなる。一方、図15(b)は比較的広い範囲の向きの顔や形状にある程度のバリエーションを持たせた顔のサンプル画像のみを用いて学習させた判別器について示したものであり、顔の形状の変化に対応しやすくなり検出率を高めることができるが、その反面、判別可能な顔の向きの範囲が実際に検出したい顔の向きの範囲より広くなり顔の向きの分解能が低くなる。
【0011】
本発明は、上記事情に鑑みてなされたものであり、画像に含まれる特定の向きの顔を、高い検出率で、かつ、顔の向きに対して高い分解能で検出することが可能な特定向き顔検出方法および装置並びにそのためのプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【0012】
本発明の特定向き顔検出方法は、顔の向きが所定の角度範囲の向きであって形状が異なる顔をそれぞれ含む複数のサンプル画像を用いたマシンラーニングの手法により顔の特徴を学習してなる、判別対象の画像が前記所定の角度範囲に対応した角度範囲の向きの顔を含むか否かを判別する判別器を用いて、特定の向きの顔を検出する特定向き顔検出方法において、入力画像上で部分画像を切り出すステップと、該部分画像が第1の角度範囲の向きの顔を含む画像であるか否かを判別する第1の判別器を用いて、前記部分画像を判別するステップと、前記部分画像が、前記第1の角度範囲と一部重複する他の角度範囲の向きの顔を含む画像であるか否かを判別する他の判別器を用いて、前記部分画像を判別するステップと、前記部分画像が、前記第1の判別器により前記第1の角度範囲の向きの顔を含む画像であると判別され、かつ、前記他の判別器により前記他の角度範囲の向きの顔を含む画像でないと判別されたとき、前記部分画像を、前記第1の角度範囲から該第1の角度範囲と前記他の角度範囲との重複部分を除いた特定の角度範囲の向きの顔を含む画像と判定するステップとを有することを特徴とするものである。
【0013】
本発明の特定向き顔検出装置は、顔の向きが所定の角度範囲の向きであって形状が異なる顔をそれぞれ含む複数のサンプル画像を用いたマシンラーニングの手法により顔の特徴を学習してなる、判別対象の画像が前記所定の角度範囲に対応した角度範囲の向きの顔を含むか否かを判別する判別器を用いて、特定の向きの顔を検出する特定向き顔検出装置において、入力画像上で部分画像を切り出す部分画像切出し手段と、該部分画像が第1の角度範囲の向きの顔を含む画像であるか否かを判別する第1の判別器と、前記部分画像が、前記第1の角度範囲と一部重複する他の角度範囲の向きの顔を含む画像であるか否かを判別する他の判別器と、前記部分画像が、前記第1の判別器により前記第1の角度範囲の向きの顔を含む画像であると判別され、かつ、前記他の判別器により前記他の角度範囲の向きの顔を含む画像でないと判別されたとき、前記部分画像を、前記第1の角度範囲から該第1の角度範囲と前記他の角度範囲との重複部分を除いた特定の角度範囲の向きの顔を含む画像と判定する判定手段とを備えたことを特徴とするものである。
【0014】
本発明のプログラムは、コンピュータを、顔の向きが所定の角度範囲の向きであって形状が異なる顔をそれぞれ含む複数のサンプル画像を用いたマシンラーニングの手法により顔の特徴を学習してなる、判別対象の画像が前記所定の角度範囲に対応した角度範囲の向きの顔を含むか否かを判別する判別器を用いて、特定の向きの顔を検出する特定向き顔検出装置として機能させるためのプログラムにおいて、該コンピュータを、入力画像上で部分画像を切り出す部分画像切出し手段と、該部分画像が第1の角度範囲の向きの顔を含む画像であるか否かを判別する第1の判別器と、前記部分画像が、前記第1の角度範囲と一部重複する他の角度範囲の向きの顔を含む画像であるか否かを判別する他の判別器と、前記部分画像が、前記第1の判別器により前記第1の角度範囲の向きの顔を含む画像であると判別され、かつ、前記他の判別器により前記他の角度範囲の向きの顔を含む画像でないと判別されたとき、前記部分画像を、前記第1の角度範囲から該第1の角度範囲と前記他の角度範囲との重複部分を除いた特定の角度範囲の向きの顔を含む画像と判定する判定手段として機能させることを特徴とするものである。
【0015】
本発明において、前記他の判別器は、前記他の角度範囲が前記第1の角度範囲の一方の角度方向寄りに重複部分を有する第2の角度範囲である第2の判別器であり、前記特定の角度範囲は、前記第1の角度範囲から該第1の角度範囲と前記第2の角度範囲との重複部分を除いた角度範囲であってもよい。
【0016】
また、本発明において、前記他の判別器は、前記他の角度範囲が前記第1の角度範囲の一方の角度方向寄りに重複部分を有する第2の角度範囲である第2の判別器と、前記他の角度範囲が前記第1の角度範囲の他方の角度方向寄りに重複部分を有する第3の角度範囲である第3の判別器であり、前記特定の角度範囲は、前記第1の角度範囲から該第1の角度範囲と前記第2および第3の角度範囲との重複部分を除いた角度範囲であってもよい。
【0017】
本発明は、図15(c)に示すように、顔の形状の変化にある程度対応できるが判別可能な顔の向きの範囲が比較的広い判別器を複数組み合わせて用いることにより、顔の形状の変化に対応できる許容度を有したまま、その1つの判別器が判別する顔の向きの範囲より狭い範囲の向きにある顔を検出して、高検出率と高分解能を両立させようとするものである。
【0018】
ここで、マシンラーニングの手法としては、例えば、ニューラルネットワーク、ブースティング等の手法が考えられるが、本発明においては、ブースティングが好ましい。
【0019】
また、顔の向きとは、アウトプレーン(out-plane;画像面外)方向での顔の向きを意味し、別の言い方をすれば、左右首振り方向における顔の向きを意味するものである。
【発明の効果】
【0020】
本発明の特定向き顔検出方法および装置並びにそのためのプログラムによれば、顔の向きが所定の角度範囲の向きであって形状が異なる顔をそれぞれ含む複数のサンプル画像を用いたマシンラーニングの手法により顔の特徴を学習させて、顔の形状の変化に対して比較的大きい許容度を有する一方、判別対象となる顔の向きの角度範囲が比較的広くなる判別器を、その角度範囲が一部重複するように複数種類生成して用意しておき、入力画像上で切り出された部分画像に対してこれら複数種類の判別器を適用して判別を行い、その判別結果に基づいて、上記部分画像が、いずれかの判別器の判別対象となる顔の向きの角度範囲から上記重複部分を除いた角度範囲の向きの顔を含む画像であるかを判定するようにしているので、顔の形状の変化に対応しつつ、1つの判別器が判別する顔の向きの角度範囲より狭い角度範囲の向きの顔に絞って特定の向きの顔を検出することができ、画像に含まれる特定の向きの顔を、高い検出率で、かつ、顔の向きに対して高い分解能で検出することが可能となる。
【発明を実施するための最良の形態】
【0021】
以下、本発明の実施形態について図を参照しながら説明する。
【0022】
図1は本発明の実施形態である特定向き顔検出システム1の構成を示す概略ブロック図である。この特定向き顔検出システム1は、図1に示すように、画像正規化部10と、サブウィンドウ設定部(部分画像切出し手段)20と、正面顔判別器(第1の判別器)31と、右斜め顔判別器(第2の判別器)32と、左斜め顔判別器(第3の判別器)33と、特定向き顔判定部(判定手段)40とを備えている。
【0023】
画像正規化部10は、入力画像S0のコントラストが顔検出処理に適した状態となるように、入力画像S0に対して全体正規化処理および局所正規化処理を施し、正規化済み画像S1を得るものである。
【0024】
まず、全体正規化処理について説明する、全体正規化処理は、顔を検出する対象となる画像(以下、検出対象画像という)のコントラストを顔検出処理に適した所定のレベル、すなわち、後述の顔判別器の性能を引き出すのに適したレベルに近づけるべく、入力画像S0全体の画素値をこの画像における被写体の輝度の対数を表す値に近づける変換曲線にしたがって変換する処理である。
【0025】
図2は全体正規化処理に用いる変換曲線の一例を示した図である。全体正規化処理としては、例えば、図2に示すような、画素値をsRGB空間におけるいわゆる逆ガンマ変換(=2.2乗する)した後にさらに対数をとるような変換曲線(ルックアップテーブル)にしたがって、画像全体における画素値を変換する処理を考えることができる。これは、次のような理由による。
【0026】
画像として観測される光強度Iは、通常、被写体の反射率Rと光源の強度Lの積として表現される(I=R×L)。したがって、光源の強度Lが変化すると、画像として観測される光強度Iも変化することになるが、被写体の反射率Rのみを評価することができれば、光源の強度Lに依存しない、すなわち、画像の明るさの影響を受けない精度の高い顔判別を行うことができる。
【0027】
ここで、光源の強度がLの場合において、被写体上で反射率がR1の部分から観測される光強度をI1、被写体上で反射率がR2の部分から観測される光強度をI2としたとき、それぞれの対数をとった空間では、下記の式が成り立つ。
【数1】
【0028】
すなわち、画像における画素値を対数変換することは、反射率の比が差として表現された空間へ変換することとなり、このような空間では、光源の強度Lに依存しない被写体の反射率のみを評価することが可能となる。言い換えると、画像中の明るさによって異なるコントラスト(ここでは画素値の差分そのもの)を揃えることができる。
【0029】
一方、一般的なデジタルカメラ等の機器で取得された画像の色空間はsRGBである。sRGBとは、機器間の色再現の違いを統一するために、色彩、彩度等を規定・統一した国際標準の色空間のことであり、この色空間においては、ガンマ値(γout)が2.2の画像出力機器において適正な色再現を可能にするため、画像の画素値は、入力輝度を1/γout(=0.45)乗して得られる値となっている。
【0030】
そこで、画像全体における画素値を、いわゆる逆ガンマ変換、すなわち、2.2乗した後にさらに対数をとるような変換曲線にしたがって変換することにより、光源の強度に依存しない被写体の反射率のみによる評価を適正に行うことができるようになる。
【0031】
なお、このような全体正規化処理は、別の言い方をすれば、画像全体における画素値を、特定の色空間を別の特性を有する色空間に変換する変換曲線にしたがって変換する処理ということができる。
【0032】
このような処理を検出対象画像に施すことにより、画像中の明るさによって異なるコントラストを揃えることができ、顔検出処理の精度が向上することとなる。なお、この全体正規化処理は、処理結果が検出対象画像中の斜光や背景、入力モダリティの違いによる影響を受けやすい反面、処理時間が短いという特徴を有する。
【0033】
次に、局所正規化処理について説明する。局所正規化処理は、検出対象画像上の局所的な領域におけるコントラストのばらつきを抑制するための処理である。すなわち、検出対象画像における各局所領域について、輝度を表す画素値の分散の程度が所定レベル以上である局所領域に対しては、この分散の程度を前記の所定レベルより高い一定レベルに近づける第1の輝度階調変換処理を施し、画素値の分散の程度が前記の所定レベル未満である局所領域に対しては、この分散の程度を前記の一定レベルより低いレベルに抑える第2の輝度階調変換処理を施すものである。なお、この局所正規化処理は、処理時間は長いが、検出対象画像中の斜光や背景、入力モダリティの違いによる判別結果への影響は小さいという特徴を有する。
【0034】
図3は局所正規化処理の概念を示した図であり、図4は局所正規化処理のフローを示した図である。また、式(2),(3)は、この局所正規化処理のための画素値の階調変換の式である。
【数2】
【0035】
ここで、Xは注目画素の画素値、X′は注目画素の変換後の画素値、mlocalは注目画素を中心とする局所領域における画素値の平均、Vlocalはこの局所領域における画素値の分散、SDlocalはこの局所領域における画素値の標準偏差、C1は、(C1×C1)が前記の一定レベルに対応する基準値となるような値、C2は前記の所定レベルに対応する閾値、SDcは所定の定数である。なお、本実施形態において、輝度の階調数は8bitとし、画素値の取り得る値は0から255とする。
【0036】
図3に示すように、まず、検出対象画像における1つの画素を注目画素として設定し(ステップST1)、この注目画素を中心とする所定の大きさ、例えば11×11画素サイズの局所領域における画素値の分散Vlocalを算出し(ステップST2)、分散Vlocalが前記所定のレベルに対応する閾値C2以上であるか否かを判定する(ステップST3)。ステップST3において、分散Vlocalが閾値C2以上であると判定された場合には、前記第1の輝度階調変換処理として、分散Vlocalが前記一定のレベルに対応する基準値(C1×C1)より大きいほど、注目画素の画素値Xと平均mlocalとの差を小さくし、分散mlocalが基準値(C1×C1)より小さいほど、注目画素の画素値Xと平均mlocalとの差を大きくする階調変換を式(2)にしたがって行う(ステップST4)。一方、ステップST3において、分散Vlocalが閾値C2未満であると判定された場合には、前記第2の輝度階調変換処理として、分散Vlocalに依らない線形な階調変換を式(3)にしたがって行う(ステップST5)。そして、ステップST1で設定した注目画素が最後の画素であるか否かを判定する(ステップST6)。ステップST6において、その注目画素が最後の画素でないと判定された場合には、ステップST1に戻り、同じ解像度画像上の次の画素を注目画素として設定する。一方、ステップST6において、その注目画素が最後の画素であると判定された場合には、その検出対象画像に対する局所正規化を終了する。このように、前記ステップST1からST6の処理を繰り返すことにより、検出対象画像全体に局所正規化を施すことができる。
【0037】
なお、前記の所定レベルは、局所領域における全体または一部の輝度に応じて変化させるようにしてもよい。例えば、前記の、注目画素毎に階調変換を行う正規化処理において、閾値C2を注目画素の画素値に応じて変化させるようにしてもよい。すなわち、前記の所定レベルに対応する閾値C2を、注目画素の輝度が相対的に高いときにはより高く設定し、その輝度が相対的に低いときにはより低く設定するようにしてもよい。このようにすることで、輝度の低い、いわゆる暗い領域に低いコントラスト(画素値の分散が小さい状態)で存在している顔も正しく正規化することができる。
【0038】
サブウィンドウ設定部20は、正規化済み画像S1上において、所定のサイズ、例えば32×32画素サイズのサブウィンドウを、その位置を予め決められたラインに沿って所定のピッチ、例えば2画素ピッチで変えながら順次設定し、このサブウィンドウで囲まれた部分画像Wを切り出して、後述の正面顔判別器31、右斜め顔判別器32および左斜め顔判別器33の各々へ入力するものである。
【0039】
正面顔判別器31、右斜め顔判別器32および左斜め顔判別器33は、それぞれ、サブウィンドウ設定部20によって切り出された部分画像Wが、各判別器の種類に応じた所定の角度範囲の向きの顔を含む顔画像であるか否かを判別するものである。図5は本実施例における各判別器の判別対象となる顔の向きの角度範囲を示した図である。正面顔判別器31は、部分画像Wが、真正面の向きを角度の基準(0°)として、−30°〜30°の角度範囲(第1の角度範囲)向きの顔を含む画像であるか否かを判別するものであり、右斜め顔判別器32は、部分画像Wが+15°〜+75°の角度範囲(第2の角度範囲)の向きの顔を含む画像であるか否かを判別するものであり、左斜め顔判別器33は、部分画像Wが−15°〜−75°の角度範囲(第3の角度範囲)の向きの顔を含む画像であるか否かを判別するものである。正面顔判別器31と右斜め顔判別器32とでは、その判別対象となる顔の向きの角度範囲が+15°〜+30°の範囲で重複しており、正面顔判別器31と左斜め顔判別器33とでは、その判別対象となるか顔の向きの角度範囲が−15°〜−30°の範囲で重複している。
【0040】
ここで、各判別器の構成、判別器における処理の流れおよび判別器の学習方法について説明する。
【0041】
各判別器は、図6に示すように、後述の学習により多数の弱判別器WCの中から選定された判別に有効な複数の弱判別器WCを有している。弱判別器WCは、それぞれ、部分画像Wから弱判別器WC毎に固有の所定のアルゴリズムにしたがって特徴量を算出し、その特徴量と所定のスコアテーブルとしての後述の自己のヒストグラムとに基づいて、部分画像Wが所定の向きの顔を含む顔画像である蓋然性を示すスコアscwを求めるものである。判別器は、これら複数の弱判別器WCから得られた個々のスコアscwを合算してスコアscを求め、このスコアscが閾値Th1以上であるときに、部分画像Wをその所定の角度範囲の向きの顔を含む顔画像として判別し、判別結果Rを出力する。
【0042】
図7は1つの判別器における処理の流れを示すフローチャートである。部分画像Wが判別器に入力されると、複数の弱判別器WCにおいてそれぞれ種類の異なる特徴量xが算出される(ステップST11)。例えば、図8に示すように、所定のサイズ、例えば、32×32画素サイズの部分画像Wに対して、4近傍画素平均(画像を2×2画素サイズ毎に複数のブロックに区分し、各ブロックの4画素における画素値の平均値をそのブロックに対応する1つの画素の画素値とする処理)を段階的に行うことにより、16×16画素サイズに縮小した画像W′と、8×8画素サイズに縮小した画像W″を得、もとの画像Wを含めたこれら3つの画像の平面内に設定される所定の2点を1ペアとして、複数種類のペアからなる1つのペア群を構成する各ペアにおける2点間の画素値(輝度)の差分値をそれぞれ計算し、これらの差分値の組合せを特徴量とする。各ペアの所定の2点は、例えば、画像上の顔の濃淡の特徴が反映されるよう決められた縦方向に並んだ所定の2点や、横方向に並んだ所定の2点とする。そして、特徴量である差分値の組合せに対応する値をxとして算出する。次に、その値xに応じて所定のスコアテーブル(自己のヒストグラム)から部分画像Wが判別すべき顔(例えば、正面顔判別器31場合には「顔の向きが−30°〜+30°の角度範囲の向きである顔」)を含む顔画像である蓋然性を示すスコアscwが弱判別器毎に算出される(ステップST12)。そして、弱判別器毎に算出された個々のスコアscwを合算してスコアscが得られ(ステップST13)、このスコアscが第1の閾値Th1以上であるか否かを判定し(ステップST14)、肯定される場合に、その部分画像Wを、この判別器が判別すべき所定の角度範囲の向きの顔を含む画像として抽出する(ステップST15)。
【0043】
次に、判別器の学習(生成)方法について説明する。
【0044】
図9は判別器の学習方法を示すフローチャートである。判別器の学習には、所定のサイズ、例えば32×32画素サイズで規格化され、さらに、前述の画像正規化部10による正規化処理と同様の処理が施された複数のサンプル画像を用いる。サンプル画像としては、判別器が判別すべき所定の角度範囲の向きの顔が含まれる複数の異なる顔サンプル画像(顔サンプル画像群)と、顔が含まれていない複数の異なる非顔サンプル画像(非顔サンプル画像群)とを用意する。
【0045】
顔サンプル画像群は、1つの顔サンプル画像につき、縦および/または横を0.7倍から1.2倍の範囲にて0.1倍単位で段階的に拡縮して得られる各サンプル画像に対し、平面上±15°の範囲にて3°単位で段階的に回転させて得られる複数の変形バリエーションを用いる。これにより、顔の傾きや顔の形状の変化に許容度を有する判別器を生成することができる。すなわち、判別器が判別可能な顔の傾きや形状にある程度の幅をもたせることができる。
【0046】
なおこのとき、顔サンプル画像は、目の位置が所定の位置に来るように顔のサイズと位置を規格化し、前記の平面上の回転、拡縮は目の位置を基準として行うようにする。例えば、d×dサイズのサンプル画像の場合においては、図10に示すように、両目の位置が、サンプル画像の最左上の頂点と最右上の頂点から、それぞれ、内側に1/4d、下側に1/4d移動した各位置とに来るように顔のサイズと位置を規格化し、また、前記の平面上の回転、拡縮は、両目の中間点を中心に行うようにする。
【0047】
これら各サンプル画像には、重みすなわち重要度が割り当てられる。まず、すべてのサンプル画像の重みの初期値が等しく1に設定される(ステップST21)。
【0048】
次に、サンプル画像およびその縮小画像の平面内に設定される所定の2点を1ペアとして複数のペアからなるペア群を複数種類設定したときの、この複数種類のペア群のそれぞれについて弱半別器が作成される(ステップST22)。ここで、それぞれの弱判別器とは、サブウィンドウで切り出された部分画像Wとその縮小画像の平面内に設定される所定の2点を1ペアとして複数のペアからなる1つのペア群を設定したときの、この1つのペア群を構成する各ペアにおける2点間の画素値(輝度)の差分値の組合せを用いて、顔の画像と顔でない画像とを判別する基準を提供するものである。本実施形態においては、1つのペア群を構成する各ペアにおける2点間の画素値の差分値の組合せについてのヒストグラムを弱判別器のスコアテーブルの基礎として使用する。
【0049】
図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)。これにより、画素値の差分値の組合せの数はnの5乗通りとなるため、画素値の差分値の組合せを表すデータ数を低減できる。
【0050】
同様に、非顔サンプル画像群についても、ヒストグラムが作成される。なお、非顔サンプル画像については、顔サンプル画像上における前記各ペアの所定の2点の位置に対応する位置(同様に参照符号P1からP7を用いる)が用いられる。これらの2つのヒストグラムが示す頻度値の比の対数値を取ってヒストグラムで表したものが、図11の一番右側に示す、弱判別器のスコアテーブルの基礎として用いられるヒストグラムである。この弱判別器のヒストグラムが示す各縦軸の値を、以下、判別ポイントと称する。この弱判別器によれば、正の判別ポイントに対応する、画素値の差分値の組合せの分布を示す画像は顔である可能性が高く、判別ポイントの絶対値が大きいほどその可能性は高まると言える。逆に、負の判別ポイントに対応する画素値の差分値の組合せの分布を示す画像は顔でない可能性が高く、やはり判別ポイントの絶対値が大きいほどその可能性は高まる。ステップST22では、判別に使用され得る複数種類のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せについて、前記のヒストグラム形式の複数の弱判別器が作成される。
【0051】
続いて、ステップST22で作成した複数の弱半別器のうち、画像が顔画像であるか否かを判別するのに最も有効な弱判別器が選択される。最も有効な弱判別器の選択は、各サンプル画像の重みを考慮して行われる。この例では、各弱判別器の重み付き正答率が比較され、最も高い重み付き正答率を示す弱判別器が選択される(ステップST23)。すなわち、最初のステップST23では、各サンプル画像の重みは等しく1であるので、単純にその弱判別器によって画像が顔画像であるか否かが正しく判別されるサンプル画像の数が最も多いものが、最も有効な弱判別器として選択される。一方、後述するステップST25において各サンプル画像の重みが更新された後の2回目のステップST23では、重みが1のサンプル画像、重みが1よりも大きいサンプル画像、および重みが1よりも小さいサンプル画像が混在しており、重みが1よりも大きいサンプル画像は、正答率の評価において、重みが1のサンプル画像よりも重みが大きい分多くカウントされる。これにより、2回目以降のステップST23では、重みが小さいサンプル画像よりも、重みが大きいサンプル画像が正しく判別されることに、より重点が置かれる。
【0052】
次に、それまでに選択した弱判別器の組合せの正答率、すなわち、それまでに選択した弱判別器を組み合わせて使用して(学習段階では、弱判別器は必ずしも線形に結合させる必要はない)各サンプル画像が顔画像であるか否かを判別した結果が、実際に顔画像であるか否かの答えと一致する率が、所定の閾値を超えたか否かが確かめられる(ステップST24)。ここで、弱判別器の組合せの正答率の評価に用いられるのは、現在の重みが付けられたサンプル画像群でも、重みが等しくされたサンプル画像群でもよい。所定の閾値を超えた場合は、それまでに選択した弱判別器を用いれば画像が顔であるか否かを十分に高い確率で判別できるため、学習は終了する。所定の閾値以下である場合は、それまでに選択した弱判別器と組み合わせて用いるための追加の弱判別器を選択するために、ステップST26へと進む。
【0053】
ステップST26では、直近のステップST23で選択された弱判別器が再び選択されないようにするため、その弱判別器が除外される。
【0054】
次に、直近のステップST23で選択された弱判別器では顔であるか否かを正しく判別できなかったサンプル画像の重みが大きくされ、画像が顔画像であるか否かを正しく判別できたサンプル画像の重みが小さくされる(ステップST25)。このように重みを大小させる理由は、次の弱判別器の選択において、既に選択された弱判別器では正しく判別できなかった画像を重要視し、それらの画像が顔画像であるか否かを正しく判別できる弱判別器が選択されるようにして、弱判別器の組合せの効果を高めるためである。
【0055】
続いて、ステップST23へと戻り、前記したように重み付き正答率を基準にして次に有効な弱判別器が選択される。
【0056】
以上のステップST23からS26を繰り返して、顔画像であるか否かを判別するのに適した弱判別器として、特定のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せに対応する弱判別器が選択されたところで、ステップST24で確認される正答率が閾値を超えたとすると、顔画像であるか否かの判別に用いる弱判別器の種類と判別条件とが確定され(ステップST27)、これにより学習を終了する。なお、選択された弱判別器は、その重み付き正答率が高い順に線形結合され、1つの判別器が構成される。また、各弱判別器については、それぞれ得られたヒストグラムを基に、画素値の差分値の組合せに応じてスコアを算出するためのスコアテーブルが生成される。なお、ヒストグラム自身をスコアテーブルとして用いることもでき、この場合、ヒストグラムの判別ポイントがそのままスコアとなる。
【0057】
このようにして、顔サンプル画像群と非顔サンプル画像群とを用いた学習により、判別器が生成されるわけであるが、前述のように、判別可能な顔の向きの角度範囲が異なる複数の判別器を生成するには、図12に示すように、顔の向きの各角度範囲にそれぞれ対応した複数種類の顔サンプル画像群を用意し、その顔サンプル画像群と非顔サンプル画像群とを用いた学習を顔サンプル画像群の種類毎に行うこととなる。すなわち、本実施例では、判別したい顔の向きの角度範囲を、それぞれ、−30°〜+30°、+15°〜+75°、−15°〜−75°として、各角度範囲に対応した3種類の顔サンプル画像群を用意し、顔サンプル画像群の種類毎に、その顔サンプル画像群と非顔サンプル画像群とを用いて前記の学習を行い、各判別器を生成する。
【0058】
なお、前記の学習手法を採用する場合において、弱判別器は、特定のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せを用いて顔の画像と顔でない画像とを判別する基準を提供するものであれば、前記のヒストグラムの形式のものに限られずいかなるものであってもよく、例えば2値データ、閾値または関数等であってもよい。また、同じヒストグラムの形式であっても、図11の中央に示した2つのヒストグラムの差分値の分布を示すヒストグラム等を用いてもよい。
【0059】
また、学習の方法としては前記のブースティングの手法に限定されるものではなく、ニューラルネットワーク等他のマシンラーニングの手法を用いることができる。
【0060】
特定向き顔判定部40は、図13に示すように、部分画像Wが正面顔判別器31により第1の角度範囲の向きの顔を含む画像であると判別され、かつ、同部分画像Wが右斜め顔判別器32により第2の角度範囲の向きの顔を含む画像でないと判別され、さらに、同部分画像Wが左斜め顔判別器33により第3の角度範囲の向きの顔を含む画像でないと判別されたときに、同部分画像Wを、第1の角度範囲から第2および第3の角度範囲との重複部分を除いた特定の角度範囲の向きの顔を含む画像であると判定し、それ以外の判別結果である場合には、同部分画像Wを上記特定の角度範囲の向きの顔を含む画像でないと判定するものである。すなわち、正面顔判別器31によって部分画像Wが第1の角度範囲の向きの顔であると判別されたことにより、まず、部分画像Wは顔を含む画像であり、その顔の向きが第1の角度範囲である+30°〜−30°の角度範囲にあることが分かり、次に、右斜め顔判別器32におよび左斜め顔判別器33によって部分画像Wが第2および第3の角度範囲である+15°〜+75°、−15°〜−75°の角度範囲にはないことが分かるため、その部分画像Wを+15°〜−15°の角度範囲の向きの顔を含む画像として判定するわけである。
【0061】
次に、特定向き顔検出システム1における処理の流れについて説明する。
【0062】
図14は、特定向き顔検出システム1における処理の流れを示したフローチャートである。これらの図に示すように、本システムに画像S0が入力されると(ステップST31)、画像正規化部10が入力画像S0に対して上述の全体正規化処理と局所正規化処理を施し、正規化済み画像S1を得る(ステップST32)。
【0063】
次に、サブウィンドウ設定部20は、正規化済み画像S1上で初期値として定められた所定の位置にサブウィンドウを設定して部分画像Wを切り出し、その部分画像Wを正面顔判別器31、右斜め顔判別器32および左斜め顔判別器33の各々に入力する(ステップST33)。そして、各判別器は、それぞれ、複数の弱判別器を用いて、部分画像Wがその判別器に応じた所定の角度範囲の向きの顔を含む画像である蓋然性を示すスコアscを算出し、算出されたスコアscが閾値Th1以上であるときに、この部分画像Wをその所定の角度範囲の向きの顔を含む画像として判別し、その判別結果Rを特定向き顔判定手段40に送る(ステップST34)。
【0064】
特定向き判定手段40は、その判別結果に基づいて、部分画像Wが特定の角度範囲、すなわち+15°〜−15°の角度範囲の向きの顔を含む画像であるか否かを判定し、当該画像であると判定された部分画像Wを、正面顔に相当する特定の向きの顔を含む画像として抽出する(ステップST35)。
【0065】
特定向き判定手段40による判定がなされると、サブウィンドウ設定部20は、次に判別すべき部分画像Wが存在するか否かを判定する(ステップST36)。ここで、次に判別すべき部分画像Wが存在すると判定された場合には、ステップST33に戻り新たなサブウィンドウを設定し、次に判別すべき部分画像Wが存在しない場合には、顔の検出処理を終了する。
【0066】
このような本実施形態による顔検出システムによれば、顔の向きが所定の角度範囲の向きであって形状が異なる顔をそれぞれ含む複数のサンプル画像を用いたマシンラーニングの手法により顔の特徴を学習させて、顔の形状の変化に対して比較的大きい許容度を有する一方、判別対象となる顔の向きの角度範囲が比較的広くなる判別器を、その角度範囲が一部重複するように複数種類生成して用意しておき、入力画像上で切り出された部分画像に対してこれら複数種類の判別器を適用して判別を行い、その判別結果に基づいて、上記部分画像が、いずれかの判別器の判別対象となる顔の向きの角度範囲から上記重複部分を除いた角度範囲の向きの顔を含む画像であるかを判定するようにしているので、顔の形状の変化に対応しつつ、1つの判別器が判別する顔の向きの角度範囲より狭い角度範囲の向きの顔に絞って特定の向きの顔を検出することができ、画像に含まれる特定の向きの顔を、高い検出率で、かつ、顔の向きに対して高い分解能で検出することが可能となる。
【0067】
なお、本実施例では、検出すべき特定の向きの顔が正面顔の場合について説明したが、もちろん、検出すべき特定の向きの顔を斜め方向を向いた顔としてもよい。
【0068】
また、本実施例では、検出できる顔の大きさがほぼ固定されているが、大きさが異なる顔を一緒に検出しようとする場合や顔の大きさに依らずいずれの顔も検出しようとする場合には、例えば、入力画像S0を多重解像度化して解像度の異なる複数の画像を生成し、生成された複数の画像の各々に対して本実施例と同様の検出処理を施すようにすればよい。
【0069】
また、本実施例では、正面顔判別器、左斜め判別器および右斜め判別器の3種類の判別器を用いて、それぞれが判別可能な顔の向きの角度範囲の重複部分を2つにしているが、もちろん、正面顔判別器と左斜め判別器、あるいは、正面顔判別器と右斜め顔判別器のように、2種類の判別器を用いて、判別可能な顔の向きの角度範囲の重複部分を1つにしてもよい。
【0070】
また、本実施例では、図16(a)に示すように、正面顔判別器によって顔を含む画像であると判定され、かつ、左斜め判別器および右斜め判別器によって顔を含む画像ではないと判定された場合に、その画像に含まれる顔の向きを、正面顔判別器が判別可能な角度範囲(−45°〜−45)からその角度範囲と他の2つの判別器が判別可能な角度範囲(−75°〜−15°と+15°〜+75°)との重複部分(−30°〜−15°と+15°〜+30°)を除いた角度範囲(−15°〜+15°)の向きとして検出すようにしているが、実際には、例えば、図16(b)に示すように、正面顔判別器によって顔を含む画像であると判定され、かつ、左斜め判別器および右斜め判別器によって顔を含む画像ではないと判定された場合であっても、その画像が含む顔の向きを、正面顔判別器が判別可能な角度範囲(−45°〜−45)からその角度範囲と左斜め顔判別器が判別可能な角度範囲(−75°〜−15°)との重複部分(−30°〜−15°)を除いた角度範囲(−15°〜+30°)の向きとして検出することも考えられる。これは、各判別器の相性等の問題からある特定の判別器の信頼性が損なわれ、その判別器による判定結果を無視するような場合が想定されるからである。
【0071】
以上、本発明の実施形態に係る特定向き顔検出システムについて説明したが、このシステムにおける処理をコンピュータに実行させるためのプログラムも、本発明の実施形態の1つである。また、そのようなプログラムを記録したコンピュータ読取可能な記録媒体も、本発明の実施形態の1つである。
【図面の簡単な説明】
【0072】
【図1】特定向き顔検出システム1の構成を示すブロック図
【図2】全体正規化処理に用いる変換曲線の一例を示す図
【図3】局所正規化処理の概念を示す図
【図4】局所正規化処理のフローを示す図
【図5】各判別器の判別対象となる顔の向きの角度範囲を示した図
【図6】判別器の構成を示すブロック図
【図7】判別器における処理フローを示す図
【図8】弱判別器における特徴量の算出を説明するための図
【図9】判別器の学習方法を示すフローチャート
【図10】目の位置が所定の位置にくるように規格化された顔のサンプル画像を示す図
【図11】弱判別器のヒストグラムを導出する方法を示す図
【図12】判別可能な顔の向きの角度範囲が異なる複数の判別器を生成する場合の概念図
【図13】各判別器の判別結果から特定の角度範囲の向きの顔か否かを判定する様子を示す図
【図14】第1の実施形態による顔検出システム1における処理を示すフローチャート
【図15】顔向き空間において検出したい範囲と検出可能な範囲との関係を表した概念図
【図16】判別器が判別可能な顔の向きの角度範囲と実際に検出する顔の向きとの関係を示す図
【符号の説明】
【0073】
1 特定向き顔検出システム
10 画像正規化部
20 サブウィンドウ設定部(部分画像切出し手段)
31 正面顔判別器(第1の判別器)
32 右斜め顔判別器(第2の判別器)
33 左斜め顔判別器(第3の判別器)
40 特定向き顔判定部(判定手段)
【特許請求の範囲】
【請求項1】
顔の向きが所定の角度範囲の向きであって形状が異なる顔をそれぞれ含む複数のサンプル画像を用いたマシンラーニングの手法により顔の特徴を学習してなる、判別対象の画像が前記所定の角度範囲に対応した角度範囲の向きの顔を含むか否かを判別する判別器を用いて、特定の向きの顔を検出する特定向き顔検出方法において、
入力画像上で部分画像を切り出すステップと、
該部分画像が第1の角度範囲の向きの顔を含む画像であるか否かを判別する第1の判別器を用いて、前記部分画像を判別するステップと、
前記部分画像が、前記第1の角度範囲と一部重複する他の角度範囲の向きの顔を含む画像であるか否かを判別する他の判別器を用いて、前記部分画像を判別するステップと、
前記部分画像が、前記第1の判別器により前記第1の角度範囲の向きの顔を含む画像であると判別され、かつ、前記他の判別器により前記他の角度範囲の向きの顔を含む画像でないと判別されたとき、前記部分画像を、前記第1の角度範囲から該第1の角度範囲と前記他の角度範囲との重複部分を除いた特定の角度範囲の向きの顔を含む画像と判定するステップとを有することを特徴とする特定向き顔検出方法。
【請求項2】
前記他の判別器が、前記他の角度範囲が前記第1の角度範囲の一方の角度方向寄りに重複部分を有する第2の角度範囲である第2の判別器であり、
前記特定の角度範囲が、前記第1の角度範囲から該第1の角度範囲と前記第2の角度範囲との重複部分を除いた角度範囲であることを特徴とする請求項1記載の特定向き顔検出方法。
【請求項3】
前記他の判別器が、前記他の角度範囲が前記第1の角度範囲の一方の角度方向寄りに重複部分を有する第2の角度範囲である第2の判別器と、前記他の角度範囲が前記第1の角度範囲の他方の角度方向寄りに重複部分を有する第3の角度範囲である第3の判別器であり、
前記特定の角度範囲が、前記第1の角度範囲から該第1の角度範囲と前記第2および第3の角度範囲との重複部分を除いた角度範囲であることを特徴とする請求項1記載の特定向き顔検出方法。
【請求項4】
顔の向きが所定の角度範囲の向きであって形状が異なる顔をそれぞれ含む複数のサンプル画像を用いたマシンラーニングの手法により顔の特徴を学習してなる、判別対象の画像が前記所定の角度範囲に対応した角度範囲の向きの顔を含むか否かを判別する判別器を用いて、特定の向きの顔を検出する特定向き顔検出装置において、
入力画像上で部分画像を切り出す部分画像切出し手段と、
該部分画像が第1の角度範囲の向きの顔を含む画像であるか否かを判別する第1の判別器と、
前記部分画像が、前記第1の角度範囲と一部重複する他の角度範囲の向きの顔を含む画像であるか否かを判別する他の判別器と、
前記部分画像が、前記第1の判別器により前記第1の角度範囲の向きの顔を含む画像であると判別され、かつ、前記他の判別器により前記他の角度範囲の向きの顔を含む画像でないと判別されたとき、前記部分画像を、前記第1の角度範囲から該第1の角度範囲と前記他の角度範囲との重複部分を除いた特定の角度範囲の向きの顔を含む画像と判定する判定手段とを備えたことを特徴とする特定向き顔検出装置。
【請求項5】
前記他の判別器が、前記他の角度範囲が前記第1の角度範囲の一方の角度方向寄りに重複部分を有する第2の角度範囲である第2の判別器であり、
前記特定の角度範囲が、前記第1の角度範囲から該第1の角度範囲と前記第2の角度範囲との重複部分を除いた角度範囲であることを特徴とする請求項4記載の特定向き顔検出装置。
【請求項6】
前記他の判別器が、前記他の角度範囲が前記第1の角度範囲の一方の角度方向寄りに重複部分を有する第2の角度範囲である第2の判別器と、前記他の角度範囲が前記第1の角度範囲の他方の角度方向寄りに重複部分を有する第3の角度範囲である第3の判別器であり、
前記特定の角度範囲が、前記第1の角度範囲から該第1の角度範囲と前記第2および第3の角度範囲との重複部分を除いた角度範囲であることを特徴とする請求項4記載の特定向き顔検出装置。
【請求項7】
コンピュータを、
顔の向きが所定の角度範囲の向きであって形状が異なる顔をそれぞれ含む複数のサンプル画像を用いたマシンラーニングの手法により顔の特徴を学習してなる、判別対象の画像が前記所定の角度範囲に対応した角度範囲の向きの顔を含むか否かを判別する判別器を用いて、特定の向きの顔を検出する特定向き顔検出装置として機能させるためのプログラムにおいて、
該コンピュータを、
入力画像上で部分画像を切り出す部分画像切出し手段と、
該部分画像が第1の角度範囲の向きの顔を含む画像であるか否かを判別する第1の判別器と、
前記部分画像が、前記第1の角度範囲と一部重複する他の角度範囲の向きの顔を含む画像であるか否かを判別する他の判別器と、
前記部分画像が、前記第1の判別器により前記第1の角度範囲の向きの顔を含む画像であると判別され、かつ、前記他の判別器により前記他の角度範囲の向きの顔を含む画像でないと判別されたとき、前記部分画像を、前記第1の角度範囲から該第1の角度範囲と前記他の角度範囲との重複部分を除いた特定の角度範囲の向きの顔を含む画像と判定する判定手段として機能させることを特徴とするプログラム。
【請求項8】
前記他の判別器が、前記他の角度範囲が前記第1の角度範囲の一方の角度方向寄りに重複部分を有する第2の角度範囲である第2の判別器であり、
前記特定の角度範囲が、前記第1の角度範囲から該第1の角度範囲と前記第2の角度範囲との重複部分を除いた角度範囲であることを特徴とする請求項7記載のプログラム。
【請求項9】
前記他の判別器が、前記他の角度範囲が前記第1の角度範囲の一方の角度方向寄りに重複部分を有する第2の角度範囲である第2の判別器と、前記他の角度範囲が前記第1の角度範囲の他方の角度方向寄りに重複部分を有する第3の角度範囲である第3の判別器であり、
前記特定の角度範囲が、前記第1の角度範囲から該第1の角度範囲と前記第2および第3の角度範囲との重複部分を除いた角度範囲であることを特徴とする請求項7記載のプログラム。
【請求項1】
顔の向きが所定の角度範囲の向きであって形状が異なる顔をそれぞれ含む複数のサンプル画像を用いたマシンラーニングの手法により顔の特徴を学習してなる、判別対象の画像が前記所定の角度範囲に対応した角度範囲の向きの顔を含むか否かを判別する判別器を用いて、特定の向きの顔を検出する特定向き顔検出方法において、
入力画像上で部分画像を切り出すステップと、
該部分画像が第1の角度範囲の向きの顔を含む画像であるか否かを判別する第1の判別器を用いて、前記部分画像を判別するステップと、
前記部分画像が、前記第1の角度範囲と一部重複する他の角度範囲の向きの顔を含む画像であるか否かを判別する他の判別器を用いて、前記部分画像を判別するステップと、
前記部分画像が、前記第1の判別器により前記第1の角度範囲の向きの顔を含む画像であると判別され、かつ、前記他の判別器により前記他の角度範囲の向きの顔を含む画像でないと判別されたとき、前記部分画像を、前記第1の角度範囲から該第1の角度範囲と前記他の角度範囲との重複部分を除いた特定の角度範囲の向きの顔を含む画像と判定するステップとを有することを特徴とする特定向き顔検出方法。
【請求項2】
前記他の判別器が、前記他の角度範囲が前記第1の角度範囲の一方の角度方向寄りに重複部分を有する第2の角度範囲である第2の判別器であり、
前記特定の角度範囲が、前記第1の角度範囲から該第1の角度範囲と前記第2の角度範囲との重複部分を除いた角度範囲であることを特徴とする請求項1記載の特定向き顔検出方法。
【請求項3】
前記他の判別器が、前記他の角度範囲が前記第1の角度範囲の一方の角度方向寄りに重複部分を有する第2の角度範囲である第2の判別器と、前記他の角度範囲が前記第1の角度範囲の他方の角度方向寄りに重複部分を有する第3の角度範囲である第3の判別器であり、
前記特定の角度範囲が、前記第1の角度範囲から該第1の角度範囲と前記第2および第3の角度範囲との重複部分を除いた角度範囲であることを特徴とする請求項1記載の特定向き顔検出方法。
【請求項4】
顔の向きが所定の角度範囲の向きであって形状が異なる顔をそれぞれ含む複数のサンプル画像を用いたマシンラーニングの手法により顔の特徴を学習してなる、判別対象の画像が前記所定の角度範囲に対応した角度範囲の向きの顔を含むか否かを判別する判別器を用いて、特定の向きの顔を検出する特定向き顔検出装置において、
入力画像上で部分画像を切り出す部分画像切出し手段と、
該部分画像が第1の角度範囲の向きの顔を含む画像であるか否かを判別する第1の判別器と、
前記部分画像が、前記第1の角度範囲と一部重複する他の角度範囲の向きの顔を含む画像であるか否かを判別する他の判別器と、
前記部分画像が、前記第1の判別器により前記第1の角度範囲の向きの顔を含む画像であると判別され、かつ、前記他の判別器により前記他の角度範囲の向きの顔を含む画像でないと判別されたとき、前記部分画像を、前記第1の角度範囲から該第1の角度範囲と前記他の角度範囲との重複部分を除いた特定の角度範囲の向きの顔を含む画像と判定する判定手段とを備えたことを特徴とする特定向き顔検出装置。
【請求項5】
前記他の判別器が、前記他の角度範囲が前記第1の角度範囲の一方の角度方向寄りに重複部分を有する第2の角度範囲である第2の判別器であり、
前記特定の角度範囲が、前記第1の角度範囲から該第1の角度範囲と前記第2の角度範囲との重複部分を除いた角度範囲であることを特徴とする請求項4記載の特定向き顔検出装置。
【請求項6】
前記他の判別器が、前記他の角度範囲が前記第1の角度範囲の一方の角度方向寄りに重複部分を有する第2の角度範囲である第2の判別器と、前記他の角度範囲が前記第1の角度範囲の他方の角度方向寄りに重複部分を有する第3の角度範囲である第3の判別器であり、
前記特定の角度範囲が、前記第1の角度範囲から該第1の角度範囲と前記第2および第3の角度範囲との重複部分を除いた角度範囲であることを特徴とする請求項4記載の特定向き顔検出装置。
【請求項7】
コンピュータを、
顔の向きが所定の角度範囲の向きであって形状が異なる顔をそれぞれ含む複数のサンプル画像を用いたマシンラーニングの手法により顔の特徴を学習してなる、判別対象の画像が前記所定の角度範囲に対応した角度範囲の向きの顔を含むか否かを判別する判別器を用いて、特定の向きの顔を検出する特定向き顔検出装置として機能させるためのプログラムにおいて、
該コンピュータを、
入力画像上で部分画像を切り出す部分画像切出し手段と、
該部分画像が第1の角度範囲の向きの顔を含む画像であるか否かを判別する第1の判別器と、
前記部分画像が、前記第1の角度範囲と一部重複する他の角度範囲の向きの顔を含む画像であるか否かを判別する他の判別器と、
前記部分画像が、前記第1の判別器により前記第1の角度範囲の向きの顔を含む画像であると判別され、かつ、前記他の判別器により前記他の角度範囲の向きの顔を含む画像でないと判別されたとき、前記部分画像を、前記第1の角度範囲から該第1の角度範囲と前記他の角度範囲との重複部分を除いた特定の角度範囲の向きの顔を含む画像と判定する判定手段として機能させることを特徴とするプログラム。
【請求項8】
前記他の判別器が、前記他の角度範囲が前記第1の角度範囲の一方の角度方向寄りに重複部分を有する第2の角度範囲である第2の判別器であり、
前記特定の角度範囲が、前記第1の角度範囲から該第1の角度範囲と前記第2の角度範囲との重複部分を除いた角度範囲であることを特徴とする請求項7記載のプログラム。
【請求項9】
前記他の判別器が、前記他の角度範囲が前記第1の角度範囲の一方の角度方向寄りに重複部分を有する第2の角度範囲である第2の判別器と、前記他の角度範囲が前記第1の角度範囲の他方の角度方向寄りに重複部分を有する第3の角度範囲である第3の判別器であり、
前記特定の角度範囲が、前記第1の角度範囲から該第1の角度範囲と前記第2および第3の角度範囲との重複部分を除いた角度範囲であることを特徴とする請求項7記載のプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2007−226512(P2007−226512A)
【公開日】平成19年9月6日(2007.9.6)
【国際特許分類】
【出願番号】特願2006−46481(P2006−46481)
【出願日】平成18年2月23日(2006.2.23)
【出願人】(306037311)富士フイルム株式会社 (25,513)
【Fターム(参考)】
【公開日】平成19年9月6日(2007.9.6)
【国際特許分類】
【出願日】平成18年2月23日(2006.2.23)
【出願人】(306037311)富士フイルム株式会社 (25,513)
【Fターム(参考)】
[ Back to top ]