顔検出方法および装置並びにプログラム
【課題】 検出対象画像から所定数の顔画像を検出する処理において、より高速な顔検出を可能にする。
【解決手段】顔傾き順序設定部40が、相関情報取得部30により取得された相関情報Gと入力画像S0上に現れる顔の傾きとの相関関係を利用して、所定の傾きの顔が入力画像S0上に現れる確率の相対的な高さを求め、この所定の傾きの顔を上記確率の相対的な高さに応じた順位で検出するように、検出時に変える検出すべき顔の傾きの順序を設定する。顔検出部50はその検出すべき顔の傾きを設定された順序で変えながら入力画像S0上の顔を検出する。
【解決手段】顔傾き順序設定部40が、相関情報取得部30により取得された相関情報Gと入力画像S0上に現れる顔の傾きとの相関関係を利用して、所定の傾きの顔が入力画像S0上に現れる確率の相対的な高さを求め、この所定の傾きの顔を上記確率の相対的な高さに応じた順位で検出するように、検出時に変える検出すべき顔の傾きの順序を設定する。顔検出部50はその検出すべき顔の傾きを設定された順序で変えながら入力画像S0上の顔を検出する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタル画像の中から顔を検出する顔検出方法および装置並びにそのためのプログラムに関するものである。
【背景技術】
【0002】
従来、デジタルカメラによって撮影されたスナップ写真における人物の顔領域の色分布を調べてその肌色を補正したり、監視システムのデジタルビデオカメラで撮影されたデジタル映像中の人物を認識したりすることが行われている。このような場合、デジタル画像中の人物の顔に対応する顔領域を検出する必要があるため、これまでに、デジタル画像中の顔を検出する手法が種々提案されている。
【0003】
例えば、検出対象画像上の複数の異なる位置で部分画像を切り出し、その部分画像が顔を表す顔画像であるか否かを判別して、検出対象画像上の顔を検出する手法が挙げられる。部分画像が顔画像であるか否かを判別するには、例えば、テンプレートマッチングによる手法や、マシンラーニングの学習手法により顔の特徴を学習させ生成された判別器モジュールを用いる手法等が考えられる(例えば、非特許文献1、特許文献1〜3等による手法)。
【0004】
ところで、デジタル画像中に現れる顔の位置や画像面内での傾き(以下、単に傾きという)は、証明写真用の画像のように撮影条件が略決まっているものを除き、不確定である場合が多い。一方、デジタル画像中の顔は、その傾きが変わると顔の特徴を表す輝度分布も変化するため、通常、顔の傾きが異なる複数種類の顔を一度の検出処理で検出することは難しい。そこで、一般的には、検出しようとする顔の傾きを変えながら、検出処理を繰り返し行い、傾きが不明な顔を検出している。
【非特許文献1】「高速全方向顔検出」,Shihong LAO他,画像の認識・理解シンポジウム(MIRU2004),2004年7月,P.II-271−II-276
【特許文献1】特願2003−316924号
【特許文献2】特願2003−316925号
【特許文献3】特願2003−316926号
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、検出対象画像上で顔を1つのみ検出すればよい場合や、連続的に撮影して得られた複数の画像のうちの1つで顔が検出されたら、それに続く画像において検出する顔の傾きを既に検出された顔と同じ傾きに固定して検出を続ける場合など、特に所定の数の顔を検出するような場合には、検出対象画像の画像全体をすべての傾きについて検出するわけではないので、目的達成までの処理量は、少なくとも検出しようとする顔の傾きの優先順位の影響を受ける。
【0006】
しかしながら、従来、検出しようとする顔の傾きについてその優先順位は予め決められており、顔検出の処理量の低減化は特に図られていなかった。
【0007】
本発明は、上記事情に鑑み、顔が検出されるまでの処理量を低減し、より高速な顔検出を可能にする顔検出方法および装置並びにそのためのプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【0008】
本発明の顔検出方法は、入力画像上で検出すべき顔の傾きを変えながら顔を検出する顔検出方法において、前記入力画像上に現れる顔の傾きと相関関係を有する相関情報を取得するステップと、前記相関関係に基づいて、所定の傾きの顔が前記入力画像上に現れる確率の相対的な高さを求め、該所定の傾きの顔を前記確率の相対的な高さに応じた順位で検出するように、顔を検出する際に変える前記検出すべき顔の傾きの順序を設定するステップとを有することを特徴とするものである。
【0009】
本発明の顔検出方法において、前記相関情報は、前記入力画像が連写撮影により取得されたものであるか否か、または、前記入力画像が動画撮影により取得されたものであるか否かを表す情報とすることができる。
【0010】
この場合において、前記検出すべき顔の傾きの順序を設定するステップは、前記相関情報が、前記入力画像が連写撮影により取得された画像であることを表す情報であるときに、該連写撮影により前記入力画像の1コマ前に撮影された直前画像において検出された顔の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するステップとすることができる。
【0011】
また、前記検出すべき顔の向きの順序を設定するステップは、前記相関情報が、前記入力画像が動画撮影により取得された画像であることを表す情報であるときに、前記入力画像の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するステップとすることができる。
【0012】
本発明の顔検出装置は、入力画像上で検出すべき顔の傾きを変えながら顔を検出する顔検出装置において、前記入力画像上に現れる顔の傾きと相関関係を有する相関情報を取得する相関情報取得手段と、前記相関関係に基づいて、所定の傾きの顔が前記入力画像上に現れる確率の相対的な高さを求め、該所定の傾きの顔を前記確率の相対的な高さに応じた順位で検出するように、顔を検出する際に変える前記検出すべき顔の傾きの順序を設定する顔傾き順序設定手段とを備えたことを特徴とするものである。
【0013】
本発明の顔検出装置において、前記相関情報は、前記入力画像が連写撮影により取得されたものであるか否か、または、前記入力画像が動画撮影により取得されたものであるか否かを表す情報とすることができる。
【0014】
この場合において、前記顔傾き順序設定手段は、前記相関情報が、前記入力画像が連写撮影により取得された画像であることを表す情報であるときに、該連写撮影により前記入力画像の1コマ前に撮影された直前画像において検出された顔の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するものとすることができる。
【0015】
また、前記顔傾き順序設定手段は、前記相関情報が、前記入力画像が動画撮影により取得された画像であることを表す情報であるときに、前記入力画像の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するものとすることができる。
【0016】
本発明のプログラムは、コンピュータを、入力画像上で検出すべき顔の傾きを変えながら顔を検出する顔検出装置として機能させるためのプログラムにおいて、該コンピュータを、前記入力画像上に現れる顔の傾きと相関関係を有する相関情報を取得する相関情報取得手段と、前記相関関係に基づいて、所定の傾きの顔が前記入力画像上に現れる確率の相対的な高さを求め、該所定の傾きの顔を前記確率の相対的な高さに応じた順位で検出するように、顔を検出する際に変える前記検出すべき顔の傾きの順序を設定する顔傾き順序設定手段として機能させることを特徴とするものである。
【0017】
本発明のプログラムにおいて、前記相関情報は、前記入力画像が連写撮影により取得されたものであるか否か、または、前記入力画像が動画撮影により取得されたものであるか否かを表す情報とすることができる。
【0018】
この場合において、前記顔傾き順序設定手段は、前記相関情報が、前記入力画像が連写撮影により取得された画像であることを表す情報であるときに、該連写撮影により前記入力画像の1コマ前に撮影された直前画像において検出された顔の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するものとすることができる。
【0019】
また、前記顔傾き順序設定手段は、前記相関情報が、前記入力画像が動画撮影により取得された画像であることを表す情報であるときに、前記入力画像の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するものとすることができる。
【0020】
前記連写撮影とは、被写体の連続的な比較的高画質の画像を動画撮影に比べてより長い所定の時間間隔で取得する撮影をいい、例えば、デジタルカメラ等の画像取得機器を連写モードに設定した状態での撮影を考えることができる。
【0021】
前記動画撮影とは、映像を撮る目的で各フレームとなる画像を連写撮影に比べてより短い所定の時間間隔で連続的に取得する撮影をいい、例えば、デジタルムービー等の画像取得機器をムービーモードに設定した状態での撮影を考えることができる。
【0022】
前記顔の傾きとは、いわゆるインプレーン(画像面内)方向での傾きを意味し、前記入力画像の傾きとは、入力画像の天地方向を示す傾きを意味する。
【発明の効果】
【0023】
本発明の顔検出方法および装置並びにそのためのプログラムによれば、入力画像上で検出すべき顔の傾きを変えながら顔を検出する場合において、入力画像上に現れる顔の傾きと相関関係を有する相関情報を取得し、この相関関係を利用して、所定の傾きの顔が現れる確率の相対的な高さを求め、この傾きの顔を上記の確率の相対的な高さに応じた順位で検出されるように、顔を検出する際に変える検出すべき顔の傾きの順序を設定するので、顔が検出されるまでの処理量を低減することができ、より高速な顔検出が可能となる。
【発明を実施するための最良の形態】
【0024】
以下、本発明の実施形態について説明する。
【0025】
図1は本発明の顔検出装置が適用された顔検出システム1の構成を示す概略ブロック図である。この顔検出システム1は、デジタル画像中に含まれる顔を、顔の位置や大きさ、顔のインプレーン方向での傾き(以下、単に顔の傾きという)、アウトプレーン方向での傾き(以下、単に顔の向きという)によらず検出するものである。本顔検出システム1は、特に検出精度、ロバスト性が優れているとされる顔検出の手法として、サンプル画像を用いたマシンラーニングの学習により生成された判別器モジュール(以下、単に判別器という)を用いる手法を採用したものである。この手法は、顔の傾きおよび向きが略揃った複数の異なる顔サンプル画像からなる顔サンプル画像群と、顔でないことが分かっている複数の異なる非顔サンプル画像からなる非顔サンプル画像群とを用いて、顔であることの特徴を学習させ、ある画像が所定の傾きと向きを持つ顔の画像であるか否かを判別できる判別器を生成して用意しておき、顔の検出対象となる画像(以下、検出対象画像という)において部分画像を順次切り出し、その部分画像が顔であるか否かを上記の判別器を用いて判別することにより、検出対象画像上の顔を検出する手法である。
【0026】
なお、この手法では、順次切り出した部分画像の各々に対して顔であるか否かの判別を行うので、はじめから精度の高い検出をしようとするとその処理量が膨大となり、顔の検出に時間がかかるという問題がある。そこで、ここでは、判別処理の効率化を図るため、まず、検出対象画像に対して比較的ラフな顔検出処理(例えば、順次切り出す部分画像の位置を間引きする等)を施して顔候補を抽出し、次に、抽出された顔候補近傍の画像に対して、精細な判別処理を施してその顔候補が真の顔であるか否かを判別するようにしている。
【0027】
顔検出システム1は、図1に示すように、多重解像度化部10と、正規化部20と、相関情報取得部30と、顔傾き順序設定部40と、顔検出部50とを備えている。
【0028】
多重解像度化部10は、顔を検出する対象となる入力画像S0を多重解像度化して解像度の異なる複数の画像(S1_1,S1_2,・・・,S1_n;以下、解像度画像という)からなる解像度画像群S1を得るものである。
【0029】
入力画像S0の解像度(画像サイズ)を変換することにより、その解像度を所定の解像度、例えば、短辺が416画素の矩形サイズの画像に規格化し、規格化済みの入力画像S0′を得る。そして、この規格化済みの入力画像S0′を基本としてさらに解像度変換を行うことにより、解像度の異なる複数の解像度画像を生成し、解像度画像群S1を得る。このような解像度画像群を生成する理由は、通常、入力画像に含まれる顔の大きさは不明であるが、一方、検出しようとする顔の大きさ(画像サイズ)は、後述の判別器の生成方法と関連して一定の大きさに固定されるため、大きさの異なる顔を検出するためには、解像度の異なる画像上で位置をずらしながら所定サイズの部分画像をそれぞれ切り出し、その部分画像が顔か非顔かを判別してゆく必要があるためである。
【0030】
図2は、入力画像の多重解像度化の工程を示した図である。多重解像度化、すなわち、解像度画像群の生成は、具体的には、図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乗倍ずつ縮小された複数の解像度画像を生成することができる。なお、このように画素値を補間しないで生成される画像は、元の画像パターンの特徴をそのまま担持する傾向が強いので、顔検出処理において精度向上が期待できる点で好ましい。
【0031】
正規化部20は、解像度画像のコントラストの状態が、後に実行される顔検出処理に適した状態となるように、解像度画像の各々に対して全体正規化処理および局所正規化処理を施し、正規化済みの複数の解像度画像(S1′_1,S1′_2,・・・,S1′_n)からなる解像度画像群S1′を得るものである。
【0032】
まず、全体正規化処理について説明する、全体正規化処理は、解像度画像のコントラストを顔検出処理に適した所定のレベル、すなわち、後述の判別器の性能を引き出すのに適したレベルに近づけるべく、解像度画像全体の画素値をこの画像における被写体の輝度の対数を表す値に近づける変換曲線にしたがって変換する処理である。
【0033】
図3は全体正規化処理に用いる変換曲線の一例を示した図である。全体正規化処理としては、例えば、図3に示すような、画素値をsRGB空間におけるいわゆる逆ガンマ変換(=2.2乗する)した後にさらに対数をとるような変換曲線(ルックアップテーブル)にしたがって、画像全体における画素値を変換する処理を考えることができる。これは、次のような理由による。
【0034】
画像として観測される光強度Iは、通常、被写体の反射率Rと光源の強度Lの積として表現される(I=R×L)。したがって、光源の強度Lが変化すると、画像として観測される光強度Iも変化することになるが、被写体の反射率Rのみを評価することができれば、光源の強度Lに依存しない、すなわち、画像の明るさの影響を受けない精度の高い顔判別を行うことができる。
【0035】
ここで、光源の強度がLの場合において、被写体上で反射率がR1の部分から観測される光強度をI1、被写体上で反射率がR2の部分から観測される光強度をI2としたとき、それぞれの対数をとった空間では、下記の式が成り立つ。
log(I1)−log(I2)=log(R1×L)−log(R2×L)=log(R1)+log(L)−(log(R2)+log(L))=log(R1)−log(R2)=log(R1/R2)
【0036】
すなわち、画像における画素値を対数変換することは、反射率の比が差として表現された空間へ変換することとなり、このような空間では、光源の強度Lに依存しない被写体の反射率のみを評価することが可能となる。言い換えると、画像中の明るさによって異なるコントラスト(ここでは画素値の差分そのもの)を揃えることができる。
【0037】
一方、一般的なデジタルカメラ等の機器で取得された画像の色空間はsRGBである。sRGBとは、機器間の色再現の違いを統一するために、色彩、彩度等を規定・統一した国際標準の色空間のことであり、この色空間においては、ガンマ値(γout)が2.2の画像出力機器において適正な色再現を可能にするため、画像の画素値は、入力輝度を1/γout(=0.45)乗して得られる値となっている。
【0038】
そこで、画像全体における画素値を、いわゆる逆ガンマ変換、すなわち、2.2乗した後にさらに対数をとるような変換曲線にしたがって変換することにより、光源の強度に依存しない被写体の反射率のみによる評価を適正に行うことができるようになる。
【0039】
なお、このような全体正規化処理は、別の言い方をすれば、画像全体における画素値を、特定の色空間を別の特性を有する色空間に変換する変換曲線にしたがって変換する処理ということができる。
【0040】
このような処理を検出対象画像に施すことにより、画像中の明るさによって異なるコントラストを揃えることができ、顔検出処理の精度が向上することとなる。なお、この全体正規化処理は、処理結果が検出対象画像中の斜光や背景、入力モダリティの違いによる影響を受けやすい反面、処理時間が短いという特徴を有する。
【0041】
次に、局所正規化処理について説明する。局所正規化処理とは、解像度画像上の局所的な領域におけるコントラストのばらつきを抑制するための処理である。すなわち、解像度画像に対して、この解像度画像における各局所領域について、輝度を表す画素値の分散の程度が所定レベル以上である局所領域に対して、この分散の程度を上記の所定レベルより高い一定レベルに近づける第1の輝度階調変換処理を施し、画素値の分散の程度が上記の所定レベル未満である局所領域に対して、この分散の程度を上記の一定レベルより低いレベルに抑える第2の輝度階調変換処理を施すものである。なお、この局所正規化処理は、処理時間は長いが、検出対象画像中の斜光や背景、入力モダリティの違いによる判別結果への影響は小さいという特徴を有する。
【0042】
図4は局所正規化処理の概念を示した図であり、図5は局所正規化処理のフローを示した図である。また、式(1),(2)は、この局所正規化処理のための画素値の階調変換の式である。
【数1】
【0043】
ここで、Xは注目画素の画素値、X′は注目画素の変換後の画素値、mlocalは注目画素を中心とする局所領域における画素値の平均、Vlocalはこの局所領域における画素値の分散、SDlocalはこの局所領域における画素値の標準偏差、(C1×C1)は上記の一定レベルに対応する基準値、C2は上記の所定レベルに対応する閾値、SDcは所定の定数である。なお、本実施形態において、輝度の階調数は8bitとし、画素値の取り得る値は0から255とする。
【0044】
図4に示すように、まず、部分画像W2における1つの画素を注目画素として設定し(ステップS1)、この注目画素を中心とする所定の大きさ、例えば11×11画素サイズの局所領域における画素値の分散Vlocalを算出し(ステップS2)、分散Vlocalが上記所定のレベルに対応する閾値C2以上であるか否かを判定する(ステップS3)。ステップS3において、分散Vlocalが閾値C2以上であると判定された場合には、上記第1の輝度階調変換処理として、分散Vlocalが上記一定のレベルに対応する基準値(C1×C1)より大きいほど、注目画素の画素値Xと平均mlocalとの差を小さくし、分散mlocalが基準値(C1×C1)より小さいほど、注目画素の画素値Xと平均mlocalとの差を大きくする階調変換を式(1)にしたがって行う(ステップS4)。一方、ステップS3において、分散Vlocalが閾値C2未満であると判定された場合には、上記第2の輝度階調変換処理として、分散Vlocalに依らない線形な階調変換を式(2)にしたがって行う(ステップS5)。そして、ステップS1で設定した注目画素が最後の画素であるか否かを判定する(ステップS6)。ステップS6において、その注目画素が最後の画素でないと判定された場合には、ステップS1に戻り、同じ部分画像上の次の画素を注目画素として設定する。一方、ステップS6において、その注目画素が最後の画素であると判定された場合には、その部分画像に対する局所正規化を終了する。このように、上記ステップS1からS6の処理を繰り返すことにより、解像度画像全体に局所正規化を施すことができる。
【0045】
なお、上記の所定レベルは、局所領域における全体または一部の輝度に応じて変化させるようにしてもよい。例えば、上記の、注目画素毎に階調変換を行う正規化処理において、閾値C2を注目画素の画素値に応じて変化させるようにしてもよい。すなわち、上記の所定レベルに対応する閾値C2を、注目画素の輝度が相対的に高いときにはより高く設定し、その輝度が相対的に低いときにはより低く設定するようにしてもよい。このようにすることで、輝度の低い、いわゆる暗い領域に低いコントラスト(画素値の分散が小さい状態)で存在している顔も正しく正規化することができる。
【0046】
相関情報取得部(相関情報取得手段)30は、入力画像S0上に現れる顔の傾きと相関関係を有する相関情報Gを取得するものである。相関情報Gとしては、入力画像S0が連写撮影により取得されたものであるか否かを表す情報や、入力画像S0が動画撮影により取得されたものであるか否かを表す情報を考えることができる。本実施形態においては、入力画像S0の付帯情報から、入力画像S0の取得時におけるデジタルカメラやデジタルムービー等の画像取得機器の撮影モードが連写モードであったか否か、あるいはムービーモード(動画撮影モード)であったか否かを示す情報を読み取る。
【0047】
顔傾き順序設定部(顔傾き順序設定手段)40は、相関情報取得部30により相関情報Gが取得されると、その相関関係に基づいて、所定の傾きの顔が入力画像S0上に現れる確率の相対的な高さを求め、この傾きの顔を上記の確率の相対的な高さに応じた順位で検出すべく、顔を検出する際に変える検出すべき顔の傾きの順序を設定するものである。
【0048】
例えば、相関情報Gとして、入力画像S0が連写撮影により取得された画像であることを表す情報が得られた場合には、その連写撮影により入力画像S0の1コマ前に取得された直前画像において検出された顔の傾きを表す情報を取得し、その直前画像において検出された顔の傾きと同じ傾きの顔が入力画像S0上に現れる確率の相対的な高さを最も高いものとして求め、この傾きを最先の順位に設定し、他の傾きの順位については、その直前画像において既に検出された顔の傾きに近い傾きの順に設定する。これは、連写撮影により取得された一連の画像群では、その画像間で被写体の向きや姿勢が極端に変化する可能性は低いと考えられることから、直前画像において検出された顔の傾きと同じ傾きまたはそれに近い傾きの顔が検出される可能性が高いと判断できるためである。
【0049】
また、例えば、相関情報Gとして、入力画像S0が動画撮影により取得された画像であることを表す情報が得られた場合には、入力画像S0の傾きと同じ傾きの顔が入力画像S0上に現れる確率の相対的な高さを最も高いものとして求め、この傾きを最先の順位に設定し、他の傾きの順位については、入力画像S0の傾きに近い傾きの順に設定する。これは、動画撮影により取得された画像は、画像取得機器を横や斜めに傾けて撮影することが稀であり、画像に対して被写体の向きが真横や逆さ向きとなる可能性は低いと考えられることから、画像の傾きと同じ傾きの顔が検出される可能性が高いと判断できるためである。
【0050】
なお、顔が現れる確率が相対的にかなり低い顔の傾きについては、上述のように、顔を検出する際に変化させる顔の傾きの順序を後方に設定するほか、そのような顔についての検出処理そのものを省略することも考えられる。
【0051】
なお、ここでは、検出すべき顔の傾きを、入力画像S0の天地方向を基準に入力画像S0の画像面内において30度刻みで回転して設定される計12種類の傾きとし、検出すべき顔の傾きの順序が初期設定として予め所定の順序で設定されている。例えば、入力画像S0の天地方向を基準に時計回りの回転角度で表すとして、上向き3方向である0度、330度、30度、右向き3方向である90度、60度、120度、左向き3方向である270度、240度、300度、そして、下向き3方向である180度、150度、210度の順序とする。
【0052】
顔検出部50は、正規化部20により正規化処理がなされた解像度画像群S1′の各解像度画像に対して、検出すべき顔の傾きを顔方傾き順序設定部40により設定された順序にしたがって変えながら顔検出処理を施すことにより、各解像度画像に含まれる顔を表す画像(以下、顔画像という)S2を所定数検出するものであり、さらに複数の要素(部)から構成されている。
【0053】
図6は、顔検出部50の構成を示すブロック図である。顔検出部50は、図6に示すように、検出制御部51と、解像度画像選択部52と、サブウィンドウ設定部53と、第1の判別器群54および第2の判別器群55とから構成されている。
【0054】
検出制御部51は、顔検出部50を構成する他の各部を制御して顔検出処理におけるシーケンス制御を主に行うものである。すなわち、解像度画像群S1′の各解像度画像に対して、顔画像の候補となる顔画像候補をラフに検出し、さらにその顔画像候補が真の顔画像であるか否かを判別し、真の顔画像S2を検出するという段階的な顔検出処理を行ったり、検出すべき顔の傾きについて、顔傾き順序設定部40により設定された順序で検出を行ったりするべく、解像度画像選択部52、サブウィンドウ設定部53および第1および第2の判別器群54,55を制御する。
【0055】
例えば、適宜、解像度画像選択部52に対して解像度画像の選択を指示したり、サブウィンドウ設定部53に対してサブウィンドウの設定条件を指示したり、また、第1および第2の判別器群54,55を構成する判別器のうち使用する判別器の種類を切り替えたりする。なお、サブウィンドウ設定条件には、サブウィンドウを設定する画像上の範囲、サブウィンドウの移動間隔(検出の粗さ)の他、判別に用いる判別器群の別(ラフ/高精度の検出モード)等が含まれる。
【0056】
解像度画像選択部52は、検出制御部51の制御により、解像度画像群S1′の中から顔検出処理に供する解像度画像をサイズの小さい順に(解像度の粗い順に)順次選択するものである。なお、本実施形態における顔検出の手法が、各解像度画像上で順次切り出された同じサイズの部分画像W1についてその部分画像W1が顔画像であるか否かを判別することにより入力画像S0における顔を検出する手法であるから、この解像度画像選択部52は、入力画像S0における検出すべき顔の大きさを毎回変えながら設定するものであって、検出すべき顔の大きさを大から小へ変えながら設定するものと同等なものということができる。
【0057】
サブウィンドウ設定部53は、検出制御部51により設定されたサブウィンドウ設定条件に基づいて、解像度画像選択部52により選択された解像度画像において、顔画像であるか否かの判別対象となる部分画像W1を切り出すサブウィンドウを、その位置をずらしながら順次設定するものである。
【0058】
例えば、上記のラフな検出を行う場合には、上記の選択された解像度画像において、所定のサイズすなわち32×32画素サイズの部分画像W1を切り出すサブウィンドウを、所定画素数分、例えば5画素ずつ移動させながら順次設定し、その切り出された部分画像W1を第1の判別器群54へ入力する。判別器群を構成する各判別器は、後述のように、それぞれ、ある画像が所定の傾きおよび向きの顔を表す顔画像であるか否かを判別するものであるから、このようにすることで、あらゆる向きにある顔の顔画像を判別することが可能となる。また、上記の顔画像候補についてさらに精細な検出処理を行う場合には、その解像度画像のうち顔画像候補を含む所定の大きさの近傍領域内に限定して、またサブウィンドウをより短い間隔で、例えば1画素ずつ移動させながら順次設定し、上記と同様に部分画像W2の切り出しを行い、その切り出された部分画像W2を第2の判別器群55へ入力する。
【0059】
第1および第2の判別器群54,55は、サブウィンドウによって切り出された部分画像W1またはW2が顔画像であるか否かを判別するものである。
【0060】
第1の判別器群54は、部分画像W1が顔画像であるか否かを比較的高速に判別する判別器群であり、解像度画像における顔画像の候補をラフに検出するために用いられるものである。一方、第2の判別器群55は、部分画像W2が顔画像であるか否かを比較的高精度に判別する判別器群であり、上記のラフな検出によって検出された顔画像候補についてより細かい検出処理を施し、顔画像候補が真の顔画像S2であるか否かを判別するために用いられるものである。
【0061】
図7は第1および第2の判別器群54,55の構成を示した図である。第1の判別器群54は、図7に示すように、判別可能な顔の向きがそれぞれ異なる複数種類の判別器群、すなわち、主に正面顔を判別する第1の正面顔判別器群54_F、主に左横顔を判別する第1の左横顔判別器群54_Lおよび主に右横顔を判別する第1の右横顔判別器群54_Rが並列に接続された構成である。さらに、これら3種の判別器群はそれぞれ、判別可能な顔の傾きが上記の部分画像の天地方向を基準として30度ずつ異なる計12方向に対応した判別器、すなわち、第1の正面顔判別器群54_Fは、判別器54_F0,54_F30,・・・,54_F330、第1の左横顔判別器群54_Lは、判別器54_L0,54_L30,・・・,54_L330、第1の右横顔判別器群54_Rは、判別器54_R0,54_R30,・・・,54_R330から構成されている。
【0062】
第2の判別器群55も、第1の判別器群と同様、図5に示すように、判別可能な顔の向きがそれぞれ異なる複数種類の判別器群、すなわち、主に正面顔を判別する第2の正面顔判別器群55_F、主に左横顔を判別する第2の左横顔判別器群55_Lおよび主に右横顔を判別する第2の右横顔判別器群55_Rが並列に接続された構成である。さらに、これら3種の判別器群は第1の判別器群と同様、それぞれ、判別可能な顔の傾きが部分画像の天地方向を基準として30度ずつ異なる計12方向に対応した判別器、すなわち、第2の正面顔判別器群55_Fは、判別器55_F0,55_F30,・・・,55_F330、第2の左横顔判別器群55_Lは、判別器55_L0,55_L30,・・・,55_L330、第2の右横顔判別器群55_Rは、判別器55_R0,55_R30,・・・,55_R330から構成されている。
【0063】
なお、上記の各判別器は、図7に示すように、複数の弱判別器WCが線形に結合したカスケード構造を有しており、弱判別器は、部分画像W1またはW2(以下、単に部分画像Wという)の画素値(輝度)の分布に係る少なくとも1つの特徴量を算出し、この特徴量を用いてこの部分画像W1が顔画像であるか否かを判別するものである。
【0064】
また、上記第1および第2の判別器群54,55は、いずれも、判別可能な主な顔の画像面外の向きを正面顔、左横顔および右横顔の3種としているが、斜め向きの顔の検出精度を上げるため、右斜め顔、左斜め顔をそれぞれ判別する判別器をさらに設けるようにしてもよい。
【0065】
ここで、判別器群34を構成する各判別器の構成、判別器における処理の流れおよび判別器の学習方法について説明する。
【0066】
判別器は、図7に示すように、複数の弱判別器WCからなり、後述の学習により多数の弱判別器WCの中から選定された判別に有効な弱判別器WCをその有効な順に直列に接続したものである。弱判別器WCは、それぞれ、部分画像Wから弱判別器毎に固有の所定のアルゴリズムにしたがって特徴量を算出し、その特徴量と所定のスコアテーブル(後述の自己のヒストグラム)とに基づいて、部分画像Wが所定の傾きおよび向きにある顔画像であることの蓋然性を示すスコアを求めるものである。判別器は、これら複数の弱判別器WCの全部または一部から得られたスコアを評価して、部分画像Wが所定の傾きおよび向きにある顔画像であるか否かの判別結果Rを得る。
【0067】
図8は1つの判別器における処理の流れを示すフローチャートである。部分画像Wが判別器に入力されると、第1番目の弱判別器WCにおいて特徴量xが算出される(ステップS11)。例えば、図9に示すように、所定のサイズ、例えば、32×32画素サイズの部分画像Wに対して、4近傍画素平均(画像を2×2画素サイズ毎に複数のブロックに区分し、各ブロックの4画素における画素値の平均値をそのブロックに対応する1つの画素の画素値とする処理)を段階的に行うことにより、16×16画素サイズの画像と、8×8画素サイズの縮小した画像を得、もとの画像を含めたこれら3つの画像の平面内に設定される所定の2点を1ペアとして、複数種類のペアからなる1つのペア群を構成する各ペアにおける2点間の画素値(輝度)の差分値をそれぞれ計算し、これらの差分値の組合せを特徴量とする。各ペアの所定の2点は、例えば、画像上の顔の濃淡の特徴が反映されるよう決められた縦方向に並んだ所定の2点や、横方向に並んだ所定の2点とする。そして、特徴量である差分値の組合せに対応する値をxとして算出する。次に、その値xに応じて所定のスコアテーブル(自己のヒストグラム)から部分画像Wが判別すべき顔(例えば、判別器54_F30の場合には「顔の向きが正面で傾きが回転角度30度の顔」)を表す画像であることの蓋然性を示すスコアが求められる(ステップS12)。次に、1つ前の弱判別器WCから引き渡されたスコアにそのスコアを加算して累積スコアSCを算出するのであるが、第1番目の弱判別器WCの場合には、引き渡されるスコアが存在しないので、この場合には、求めたスコアをそのまま累積スコアSCとする(ステップS13)。次に、その累積スコアSCが予め決められた所定の閾値Th1を超えたか否か、および、その累積スコアSCが予め決められた所定の閾値Th2を下回ったか否かを判定する(ステップS14)。すなわち、SC>Th1という条件、もしくは、SC<Th2という条件のいずれかを満たすか否かを判定する。これらの条件を満たすと判定された場合には、SC>Th1のときに部分画像Wが判別すべき顔を表す「顔画像」であると判別し、SC<Th2のときに部分画像Wが「非顔画像」であると判別し、処理を終了する(ステップS15)。一方、ステップS14において、上記の条件を満たさないと判定された場合には、次の弱判別器WCがあるか否かを判定し(ステップS16)、ここで、次の弱判別器WCがあると判定されたときには、累積スコアSCを次の弱判別器WCに引き渡して、その次の弱判別器WCの処理に移行する(ステップS18)。一方、ステップS16において、次の弱判別器WCがないと判定された場合には、算出されたスコアの大小に基づいて、部分画像Wが判別すべき顔を表す「顔画像」、「非顔画像」のいずれかとして判別し処理を終了する(ステップS17)。
【0068】
次に、判別器の学習(生成)方法について説明する。
【0069】
図10は判別器の学習方法を示すフローチャートである。判別器の学習には、所定のサイズ、例えば32×32画素サイズで規格化され、さらに、前述の正規化部20による正規化処理と同様の処理が施された複数のサンプル画像を用いる。サンプル画像としては、顔であることが分かっている複数の異なる顔サンプル画像からなる顔サンプル画像群と、顔でないことが分かっている複数の異なる非顔サンプル画像からなる非顔サンプル画像群とを用意する。
【0070】
顔サンプル画像群は、1つの顔サンプル画像につき、縦および/または横を0.7倍から1.2倍の範囲にて0.1倍単位で段階的に拡縮して得られる各サンプル画像に対し、平面上±15度の範囲にて3度単位で段階的に回転させて得られる複数の変形バリエーションを用いる。なおこのとき、顔サンプル画像は、目の位置が所定の位置に来るように顔のサイズと位置を規格化し、上記の平面上の回転、拡縮は目の位置を基準として行うようにする。例えば、d×dサイズのサンプル画像の場合においては、図11に示すように、両目の位置が、サンプル画像の最左上の頂点と最右上の頂点から、それぞれ、内側に1/4d、下側に1/4d移動した各位置とに来るように顔のサイズと位置を規格化し、また、上記の平面上の回転、拡縮は、両目の中間点を中心に行うようにする。
【0071】
これら各サンプル画像には、重みすなわち重要度が割り当てられる。まず、すべてのサンプル画像の重みの初期値が等しく1に設定される(ステップS21)。
【0072】
次に、サンプル画像およびその縮小画像の平面内に設定される所定の2点を1ペアとして複数のペアからなるペア群を複数種類設定したときの、この複数種類のペア群のそれぞれについて弱半別器が作成される(ステップS22)。ここで、それぞれの弱判別器とは、サブウィンドウWで切り出された部分画像とその縮小画像の平面内に設定される所定の2点を1ペアとして複数のペアからなる1つのペア群を設定したときの、この1つのペア群を構成する各ペアにおける2点間の画素値(輝度)の差分値の組合せを用いて、顔の画像と顔でない画像とを判別する基準を提供するものである。本実施形態においては、1つのペア群を構成する各ペアにおける2点間の画素値の差分値の組合せについてのヒストグラムを弱判別器のスコアテーブルの基礎として使用する。
【0073】
図12はサンプル画像からヒストグラムが生成される様子を示した図である。図12の左側のサンプル画像に示すように、この判別器を作成するためのペア群を構成する各ペアの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乗通りとなるため、画素値の差分値の組合せを表すデータ数を低減できる。
【0074】
同様に、顔でないことが分かっている複数の非顔サンプル画像についても、ヒストグラムが作成される。なお、非顔サンプル画像については、顔であることが分かっている顔サンプル画像上における上記各ペアの所定の2点の位置に対応する位置(同様に参照符号P1からP7を用いる)が用いられる。これらの2つのヒストグラムが示す頻度値の比の対数値を取ってヒストグラムで表したものが、図12の一番右側に示す、弱判別器のスコアテーブルの基礎として用いられるヒストグラムである。この弱判別器のヒストグラムが示す各縦軸の値を、以下、判別ポイントと称する。この弱判別器によれば、正の判別ポイントに対応する、画素値の差分値の組合せの分布を示す画像は顔である可能性が高く、判別ポイントの絶対値が大きいほどその可能性は高まると言える。逆に、負の判別ポイントに対応する画素値の差分値の組合せの分布を示す画像は顔でない可能性が高く、やはり判別ポイントの絶対値が大きいほどその可能性は高まる。ステップS22では、判別に使用され得る複数種類のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せについて、上記のヒストグラム形式の複数の弱判別器が作成される。
【0075】
続いて、ステップS22で作成した複数の弱半別器のうち、画像が顔であるか否かを判別するのに最も有効な弱判別器が選択される。最も有効な弱判別器の選択は、各サンプル画像の重みを考慮して行われる。この例では、各弱判別器の重み付き正答率が比較され、最も高い重み付き正答率を示す弱判別器が選択される(ステップS23)。すなわち、最初のステップS23では、各サンプル画像の重みは等しく1であるので、単純にその弱判別器によって画像が顔であるか否かが正しく判別されるサンプル画像の数が最も多いものが、最も有効な弱判別器として選択される。一方、後述するステップS15において各サンプル画像の重みが更新された後の2回目のステップS23では、重みが1のサンプル画像、重みが1よりも大きいサンプル画像、および重みが1よりも小さいサンプル画像が混在しており、重みが1よりも大きいサンプル画像は、正答率の評価において、重みが1のサンプル画像よりも重みが大きい分多くカウントされる。これにより、2回目以降のステップS23では、重みが小さいサンプル画像よりも、重みが大きいサンプル画像が正しく判別されることに、より重点が置かれる。
【0076】
次に、それまでに選択した弱判別器の組合せの正答率、すなわち、それまでに選択した弱判別器を組み合わせて使用して(学習段階では、弱判別器は必ずしも線形に結合させる必要はない)各サンプル画像が顔の画像であるか否かを判別した結果が、実際に顔の画像であるか否かの答えと一致する率が、所定の閾値を超えたか否かが確かめられる(ステップS24)。ここで、弱判別器の組合せの正答率の評価に用いられるのは、現在の重みが付けられたサンプル画像群でも、重みが等しくされたサンプル画像群でもよい。所定の閾値を超えた場合は、それまでに選択した弱判別器を用いれば画像が顔であるか否かを十分に高い確率で判別できるため、学習は終了する。所定の閾値以下である場合は、それまでに選択した弱判別器と組み合わせて用いるための追加の弱判別器を選択するために、ステップS26へと進む。
【0077】
ステップS26では、直近のステップS23で選択された弱判別器が再び選択されないようにするため、その弱判別器が除外される。
【0078】
次に、直近のステップS23で選択された弱判別器では顔であるか否かを正しく判別できなかったサンプル画像の重みが大きくされ、画像が顔であるか否かを正しく判別できたサンプル画像の重みが小さくされる(ステップS25)。このように重みを大小させる理由は、次の弱判別器の選択において、既に選択された弱判別器では正しく判別できなかった画像を重要視し、それらの画像が顔であるか否かを正しく判別できる弱判別器が選択されるようにして、弱判別器の組合せの効果を高めるためである。
【0079】
続いて、ステップS23へと戻り、上記したように重み付き正答率を基準にして次に有効な弱判別器が選択される。
【0080】
以上のステップS23からS26を繰り返して、顔であるか否かを判別するのに適した弱判別器として、特定のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せに対応する弱判別器が選択されたところで、ステップS24で確認される正答率が閾値を超えたとすると、顔であるか否かの判別に用いる弱判別器の種類と判別条件とが確定され(ステップS27)、これにより学習を終了する。なお、選択された弱判別器は、その重み付き正答率が高い順に線形結合され、1つの判別器が構成される。また、各弱判別器については、それぞれ得られたヒストグラムを基に、画素値の差分値の組合せに応じてスコアを算出するためのスコアテーブルが生成される。なお、ヒストグラム自身をスコアテーブルとして用いることもでき、この場合、ヒストグラムの判別ポイントがそのままスコアとなる。
【0081】
このようにして、顔サンプル画像群と非顔サンプル画像群とを用いた学習により、判別器が生成されるわけであるが、上記のように、判別したい顔の傾きおよび向きが異なる複数の判別器を生成するには、それらの各傾きや向きに対応した顔サンプル画像群を用意し、その顔サンプル画像群と非顔サンプル画像群とを用いた学習を顔サンプル画像群の種類毎に行うこととなる。
【0082】
すなわち、本実施形態においては、顔の向きについては、正面、左横、右横の計3種類、顔の傾きについては、回転角度0度から330度まで30度刻みの計12種類、合計36種類の顔サンプル画像群を用意する。なお、第1の判別器群54と第2の判別器群55とで異なるサンプル画像を用いて学習させる場合には、さらにその2倍、合計72種類の顔サンプル画像群を用意することとなる。
【0083】
上記の複数の顔サンプル画像群が得られたら、顔サンプル画像群の種類毎に、その顔サンプル画像群と非顔サンプル画像群とを用いて、上記の学習を行うことにより、第1および第2の判別器群54,55を構成する複数の判別器を生成することができる。
【0084】
このように、顔の向き毎に、かつ、顔の傾き毎に学習された複数の判別器を用いることにより、あらゆる向きや傾きの顔を判別することが可能となる。
【0085】
なお、上記の学習手法を採用する場合において、弱判別器は、特定のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せを用いて顔の画像と顔でない画像とを判別する基準を提供するものであれば、上記のヒストグラムの形式のものに限られずいかなるものであってもよく、例えば2値データ、閾値または関数等であってもよい。また、同じヒストグラムの形式であっても、図12の中央に示した2つのヒストグラムの差分値の分布を示すヒストグラム等を用いてもよい。
【0086】
また、学習の方法としては上記手法に限定されるものではなく、ニューラルネットワーク等他のマシンラーニングの手法を用いることができる。
【0087】
次に、顔検出システム1における処理の流れについて説明する。
【0088】
図13a,13bは、上記顔検出システムにおける処理の流れを示したフローチャートである。これらの図に示すように、多重解像度化部10に入力画像S0が供給されると(ステップS31)、この入力画像S0の画像サイズが所定のサイズに変換された画像S0′が生成され、この画像S0′から2の−1/3乗倍ずつサイズ(解像度)が縮小された複数の解像度画像からなる解像度画像群S1が生成される(ステップS32)。そして、正規化部20において、解像度画像群S1の各解像度化像に対して、上述の全体正規化処理と局所正規化処理が施され、正規化済みの解像度画像群S1′が得られる(ステップS33)。
【0089】
一方、相関情報取得部30は、顔方向相関情報Gとして、入力画像S0の付帯情報から、入力画像S0取得時における画像取得機器の撮影モードを表す情報を読み取る。(ステップS34)。顔傾き順序設定部40は、相関情報Gと入力画像S0上に現れる顔の傾きとの相関関係に基づいて、所定の傾きの顔が入力画像S0上に現れる相対的な確率の高さを求め、この所定の傾きの顔をその確率の相対的な高さに応じた順位で検出するように、顔を検出する際に変える検出すべき顔の傾きの順序を設定する(ステップS35)。なお、このような相関情報Gが得られない場合には、検出すべき顔の傾きの順序は初期設定のままとなる。
【0090】
顔検出部50においては、検出制御部51が、部分画像W1が顔画像であるか否かを判別する際に用いる判別器の種類を、判別すべき顔の傾きの順序が顔傾き順序設定部40により設定された検出すべき顔の傾きの順序と一致するように選択する(ステップS36)。そして、検出制御部51からの指示を受けた解像度画像選択部52により、解像度画像群S1′の中から画像サイズの小さい順、すなわち、S1′_n,S1′_n−1,・・・,S1′_1の順に所定の解像度画像S1′_iを選択する(ステップS37)。次に検出制御部51が、サブウィンドウ設定部53に対して、検出モードをラフな検出のモードとするサブウィンドウ設定条件を設定する。これにより、サブウィンドウ設定部53は、解像度画像S1′_i上でサブウィンドウを広めのピッチ、例えば5画素間隔で移動しながら設定して所定サイズの部分画像W1を順次切り出し(ステップS38)、その部分画像W1を第1の判別器群54の中の上記選択された種類の判別器へ入力する(ステップS39)。例えば、判別すべき顔の傾きが入力画像S0の天地方向を基準に30度回転した傾きである場合には、部分画像W1は判別器54F_30,54L_30,54R_30の3つの判別器へ入力される。これらの判別器は入力された部分画像W1が顔画像であるか否かを判別し、検出制御部51がその判別結果Rを取得する(ステップS40)。そして、検出制御部51は、顔画像候補が検出されたか否かを判定する(ステップS41)。ここで、顔画像候補が検出されていると判定された場合には、ステップS42に移行し、精細モードの検出を行い、顔画像候補が検出されていないと判定された場合には、ステップS47に移行し、検出処理が続行可能か否かの判定を行う。
【0091】
ステップS42では、検出制御部51が、サブウィンドウ設定部33に対して、検出対象領域を、顔画像候補を含む所定の大きさの領域内に限定し、検出モードを精細モードとするサブウィンドウ設定条件を設定する。これにより、サブウィンドウ設定部53は、顔画像候補近傍で、サブウィンドウを狭いピッチ、例えば1画素ずつ移動しながら設定して所定サイズの部分画像W2を順次切り出し(ステップS42)、第2の判別器群55中の上記ステップS26にて選択された種類の判別器へ入力する(ステップS43)。これらの判別器は、入力された部分画像W2が顔画像であるか否かを判別し、検出制御部51がその判別結果Rを取得する(ステップS44)。そして、これまでに所定の数の顔画像が検出されたか否かを判定する(ステップS45)。所定の数の顔画像が検出されたと判定された場合には、検出処理を終了し、検出されていないと判定された場合には、現在の部分画像W2が顔画像候補近傍で最後の部分画像であるか否かを判定する(ステップS46)。ここで、現在の部分画像W2が最後の部分画像でないと判定された場合には、ステップS32に戻り、新たな部分画像W2を切り出し、精細モードでの検出処理を続行する。現在の部分画像W2が最後の部分画像であると判定された場合には、ステップS47に移行し、さらに検出処理が続行可能か否かの判定を行う。
【0092】
ステップS47では、まず、現在の部分画像W1が現在の解像度画像上で最後の部分画像であるか否かを判定する(ステップS47)。ここで、現在の部分画像W1が最後の部分画像でないと判定された場合には、ステップS38に戻り、現在の解像度画像上で新たな部分画像W1を切り出し、検出処理を続行する。一方、現在の部分画像W1が最後の部分画像であると判定された場合には、次の判定処理を行う。すなわち、現在の解像度画像が最後の解像度画像であるか否かを判定する(ステップS48)。ここで、現在の解像度画像が最後の解像度画像でないと判定された場合には、ステップS37に戻り、新たな解像度画像を選択し、検出処理を続行する。一方、現在の解像度画像が最後の解像度画像であると判定された場合には、次の判定処理を行う。すなわち、現在選択されている判別器の種類(判別すべき顔の傾き)が最後の順番の種類であるか否かを判定する(ステップS49)。ここで、現在選択されている判別器の種類が、最後の順番の種類でないと判定された場合には、ステップS36に戻り、次の順番の判別器の種類を選択し、検出処理を続行する。一方、現在選択されている判別器の種類が、最後の順番の種類であると判定された場合には、検出処理を終了する。
【0093】
図14は、上記のステップS37からステップS49までを繰り返すことにより、解像度画像がサイズの小さい順に選択されて、各解像度画像上で部分画像W1が順次切り出され、顔検出が実施される様子を示した図である。
【0094】
このように、本発明の実施形態に係る顔検出システムによれば、入力画像S0上で検出すべき顔の傾きを変えながら顔を検出する場合において、入力画像S0上に現れる顔の傾きと相関関係を有する相関情報Gを取得し、この相関関係を利用して、所定の傾きの顔が現れる確率の相対的な高さを求め、この傾きの顔を上記の確率の相対的な高さに応じた順位で検出されるように、顔を検出する際に変える検出すべき顔の傾きの順序を設定するので、顔が検出されるまでの処理量を低減することができ、より高速な顔検出が可能となる。
【0095】
以上、本発明の実施形態に係る顔検出システムについて説明したが、この顔検出システムのうちの本発明の顔検出装置に対応する部分における各処理をコンピュータに実行させるためのプログラムも、本発明の実施形態の1つである。また、そのようなプログラムを記録したコンピュータ読取可能な記録媒体も、本発明の実施形態の1つである。
【図面の簡単な説明】
【0096】
【図1】顔検出システム1の構成を示すブロック図
【図2】検出対象画像の多重解像度化の工程を示す図
【図3】全体正規化処理に用いる変換曲線の一例を示す図
【図4】局所正規化処理の概念を示す図
【図5】局所正規化処理のフローを示す図
【図6】顔検出部50の構成を示すブロック図
【図7】第1および第2の判別器群の構成を示すブロック図
【図8】判別器における処理フローを示す図
【図9】弱判別器における特徴量の算出を説明するための図
【図10】判別器の学習方法を示すフローチャート
【図11】目の位置が所定の位置にくるように規格化された顔のサンプル画像を示す図
【図12】弱判別器のヒストグラムを導出する方法を示す図
【図13a】顔検出システム1において行われる処理を示すフローチャート(前半部)
【図13b】顔検出システム1において行われる処理を示すフローチャート(後半部)
【図14】顔検出対象となる解像度画像の切替えとその画像上でのサブウィンドウの移動を説明するための図
【符号の説明】
【0097】
1 顔検出システム
10 多重解像度化部
20 正規化部
30 相関情報取得部(相関情報取得手段)
40 顔傾き順序設定部(顔傾き順序設定手段)
50 顔検出部
51 検出制御部
52 解像度画像選択部
53 サブウィンドウ設定部
54 第1の判別器群
55 第2の判別器群
【技術分野】
【0001】
本発明は、デジタル画像の中から顔を検出する顔検出方法および装置並びにそのためのプログラムに関するものである。
【背景技術】
【0002】
従来、デジタルカメラによって撮影されたスナップ写真における人物の顔領域の色分布を調べてその肌色を補正したり、監視システムのデジタルビデオカメラで撮影されたデジタル映像中の人物を認識したりすることが行われている。このような場合、デジタル画像中の人物の顔に対応する顔領域を検出する必要があるため、これまでに、デジタル画像中の顔を検出する手法が種々提案されている。
【0003】
例えば、検出対象画像上の複数の異なる位置で部分画像を切り出し、その部分画像が顔を表す顔画像であるか否かを判別して、検出対象画像上の顔を検出する手法が挙げられる。部分画像が顔画像であるか否かを判別するには、例えば、テンプレートマッチングによる手法や、マシンラーニングの学習手法により顔の特徴を学習させ生成された判別器モジュールを用いる手法等が考えられる(例えば、非特許文献1、特許文献1〜3等による手法)。
【0004】
ところで、デジタル画像中に現れる顔の位置や画像面内での傾き(以下、単に傾きという)は、証明写真用の画像のように撮影条件が略決まっているものを除き、不確定である場合が多い。一方、デジタル画像中の顔は、その傾きが変わると顔の特徴を表す輝度分布も変化するため、通常、顔の傾きが異なる複数種類の顔を一度の検出処理で検出することは難しい。そこで、一般的には、検出しようとする顔の傾きを変えながら、検出処理を繰り返し行い、傾きが不明な顔を検出している。
【非特許文献1】「高速全方向顔検出」,Shihong LAO他,画像の認識・理解シンポジウム(MIRU2004),2004年7月,P.II-271−II-276
【特許文献1】特願2003−316924号
【特許文献2】特願2003−316925号
【特許文献3】特願2003−316926号
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、検出対象画像上で顔を1つのみ検出すればよい場合や、連続的に撮影して得られた複数の画像のうちの1つで顔が検出されたら、それに続く画像において検出する顔の傾きを既に検出された顔と同じ傾きに固定して検出を続ける場合など、特に所定の数の顔を検出するような場合には、検出対象画像の画像全体をすべての傾きについて検出するわけではないので、目的達成までの処理量は、少なくとも検出しようとする顔の傾きの優先順位の影響を受ける。
【0006】
しかしながら、従来、検出しようとする顔の傾きについてその優先順位は予め決められており、顔検出の処理量の低減化は特に図られていなかった。
【0007】
本発明は、上記事情に鑑み、顔が検出されるまでの処理量を低減し、より高速な顔検出を可能にする顔検出方法および装置並びにそのためのプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【0008】
本発明の顔検出方法は、入力画像上で検出すべき顔の傾きを変えながら顔を検出する顔検出方法において、前記入力画像上に現れる顔の傾きと相関関係を有する相関情報を取得するステップと、前記相関関係に基づいて、所定の傾きの顔が前記入力画像上に現れる確率の相対的な高さを求め、該所定の傾きの顔を前記確率の相対的な高さに応じた順位で検出するように、顔を検出する際に変える前記検出すべき顔の傾きの順序を設定するステップとを有することを特徴とするものである。
【0009】
本発明の顔検出方法において、前記相関情報は、前記入力画像が連写撮影により取得されたものであるか否か、または、前記入力画像が動画撮影により取得されたものであるか否かを表す情報とすることができる。
【0010】
この場合において、前記検出すべき顔の傾きの順序を設定するステップは、前記相関情報が、前記入力画像が連写撮影により取得された画像であることを表す情報であるときに、該連写撮影により前記入力画像の1コマ前に撮影された直前画像において検出された顔の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するステップとすることができる。
【0011】
また、前記検出すべき顔の向きの順序を設定するステップは、前記相関情報が、前記入力画像が動画撮影により取得された画像であることを表す情報であるときに、前記入力画像の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するステップとすることができる。
【0012】
本発明の顔検出装置は、入力画像上で検出すべき顔の傾きを変えながら顔を検出する顔検出装置において、前記入力画像上に現れる顔の傾きと相関関係を有する相関情報を取得する相関情報取得手段と、前記相関関係に基づいて、所定の傾きの顔が前記入力画像上に現れる確率の相対的な高さを求め、該所定の傾きの顔を前記確率の相対的な高さに応じた順位で検出するように、顔を検出する際に変える前記検出すべき顔の傾きの順序を設定する顔傾き順序設定手段とを備えたことを特徴とするものである。
【0013】
本発明の顔検出装置において、前記相関情報は、前記入力画像が連写撮影により取得されたものであるか否か、または、前記入力画像が動画撮影により取得されたものであるか否かを表す情報とすることができる。
【0014】
この場合において、前記顔傾き順序設定手段は、前記相関情報が、前記入力画像が連写撮影により取得された画像であることを表す情報であるときに、該連写撮影により前記入力画像の1コマ前に撮影された直前画像において検出された顔の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するものとすることができる。
【0015】
また、前記顔傾き順序設定手段は、前記相関情報が、前記入力画像が動画撮影により取得された画像であることを表す情報であるときに、前記入力画像の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するものとすることができる。
【0016】
本発明のプログラムは、コンピュータを、入力画像上で検出すべき顔の傾きを変えながら顔を検出する顔検出装置として機能させるためのプログラムにおいて、該コンピュータを、前記入力画像上に現れる顔の傾きと相関関係を有する相関情報を取得する相関情報取得手段と、前記相関関係に基づいて、所定の傾きの顔が前記入力画像上に現れる確率の相対的な高さを求め、該所定の傾きの顔を前記確率の相対的な高さに応じた順位で検出するように、顔を検出する際に変える前記検出すべき顔の傾きの順序を設定する顔傾き順序設定手段として機能させることを特徴とするものである。
【0017】
本発明のプログラムにおいて、前記相関情報は、前記入力画像が連写撮影により取得されたものであるか否か、または、前記入力画像が動画撮影により取得されたものであるか否かを表す情報とすることができる。
【0018】
この場合において、前記顔傾き順序設定手段は、前記相関情報が、前記入力画像が連写撮影により取得された画像であることを表す情報であるときに、該連写撮影により前記入力画像の1コマ前に撮影された直前画像において検出された顔の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するものとすることができる。
【0019】
また、前記顔傾き順序設定手段は、前記相関情報が、前記入力画像が動画撮影により取得された画像であることを表す情報であるときに、前記入力画像の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するものとすることができる。
【0020】
前記連写撮影とは、被写体の連続的な比較的高画質の画像を動画撮影に比べてより長い所定の時間間隔で取得する撮影をいい、例えば、デジタルカメラ等の画像取得機器を連写モードに設定した状態での撮影を考えることができる。
【0021】
前記動画撮影とは、映像を撮る目的で各フレームとなる画像を連写撮影に比べてより短い所定の時間間隔で連続的に取得する撮影をいい、例えば、デジタルムービー等の画像取得機器をムービーモードに設定した状態での撮影を考えることができる。
【0022】
前記顔の傾きとは、いわゆるインプレーン(画像面内)方向での傾きを意味し、前記入力画像の傾きとは、入力画像の天地方向を示す傾きを意味する。
【発明の効果】
【0023】
本発明の顔検出方法および装置並びにそのためのプログラムによれば、入力画像上で検出すべき顔の傾きを変えながら顔を検出する場合において、入力画像上に現れる顔の傾きと相関関係を有する相関情報を取得し、この相関関係を利用して、所定の傾きの顔が現れる確率の相対的な高さを求め、この傾きの顔を上記の確率の相対的な高さに応じた順位で検出されるように、顔を検出する際に変える検出すべき顔の傾きの順序を設定するので、顔が検出されるまでの処理量を低減することができ、より高速な顔検出が可能となる。
【発明を実施するための最良の形態】
【0024】
以下、本発明の実施形態について説明する。
【0025】
図1は本発明の顔検出装置が適用された顔検出システム1の構成を示す概略ブロック図である。この顔検出システム1は、デジタル画像中に含まれる顔を、顔の位置や大きさ、顔のインプレーン方向での傾き(以下、単に顔の傾きという)、アウトプレーン方向での傾き(以下、単に顔の向きという)によらず検出するものである。本顔検出システム1は、特に検出精度、ロバスト性が優れているとされる顔検出の手法として、サンプル画像を用いたマシンラーニングの学習により生成された判別器モジュール(以下、単に判別器という)を用いる手法を採用したものである。この手法は、顔の傾きおよび向きが略揃った複数の異なる顔サンプル画像からなる顔サンプル画像群と、顔でないことが分かっている複数の異なる非顔サンプル画像からなる非顔サンプル画像群とを用いて、顔であることの特徴を学習させ、ある画像が所定の傾きと向きを持つ顔の画像であるか否かを判別できる判別器を生成して用意しておき、顔の検出対象となる画像(以下、検出対象画像という)において部分画像を順次切り出し、その部分画像が顔であるか否かを上記の判別器を用いて判別することにより、検出対象画像上の顔を検出する手法である。
【0026】
なお、この手法では、順次切り出した部分画像の各々に対して顔であるか否かの判別を行うので、はじめから精度の高い検出をしようとするとその処理量が膨大となり、顔の検出に時間がかかるという問題がある。そこで、ここでは、判別処理の効率化を図るため、まず、検出対象画像に対して比較的ラフな顔検出処理(例えば、順次切り出す部分画像の位置を間引きする等)を施して顔候補を抽出し、次に、抽出された顔候補近傍の画像に対して、精細な判別処理を施してその顔候補が真の顔であるか否かを判別するようにしている。
【0027】
顔検出システム1は、図1に示すように、多重解像度化部10と、正規化部20と、相関情報取得部30と、顔傾き順序設定部40と、顔検出部50とを備えている。
【0028】
多重解像度化部10は、顔を検出する対象となる入力画像S0を多重解像度化して解像度の異なる複数の画像(S1_1,S1_2,・・・,S1_n;以下、解像度画像という)からなる解像度画像群S1を得るものである。
【0029】
入力画像S0の解像度(画像サイズ)を変換することにより、その解像度を所定の解像度、例えば、短辺が416画素の矩形サイズの画像に規格化し、規格化済みの入力画像S0′を得る。そして、この規格化済みの入力画像S0′を基本としてさらに解像度変換を行うことにより、解像度の異なる複数の解像度画像を生成し、解像度画像群S1を得る。このような解像度画像群を生成する理由は、通常、入力画像に含まれる顔の大きさは不明であるが、一方、検出しようとする顔の大きさ(画像サイズ)は、後述の判別器の生成方法と関連して一定の大きさに固定されるため、大きさの異なる顔を検出するためには、解像度の異なる画像上で位置をずらしながら所定サイズの部分画像をそれぞれ切り出し、その部分画像が顔か非顔かを判別してゆく必要があるためである。
【0030】
図2は、入力画像の多重解像度化の工程を示した図である。多重解像度化、すなわち、解像度画像群の生成は、具体的には、図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乗倍ずつ縮小された複数の解像度画像を生成することができる。なお、このように画素値を補間しないで生成される画像は、元の画像パターンの特徴をそのまま担持する傾向が強いので、顔検出処理において精度向上が期待できる点で好ましい。
【0031】
正規化部20は、解像度画像のコントラストの状態が、後に実行される顔検出処理に適した状態となるように、解像度画像の各々に対して全体正規化処理および局所正規化処理を施し、正規化済みの複数の解像度画像(S1′_1,S1′_2,・・・,S1′_n)からなる解像度画像群S1′を得るものである。
【0032】
まず、全体正規化処理について説明する、全体正規化処理は、解像度画像のコントラストを顔検出処理に適した所定のレベル、すなわち、後述の判別器の性能を引き出すのに適したレベルに近づけるべく、解像度画像全体の画素値をこの画像における被写体の輝度の対数を表す値に近づける変換曲線にしたがって変換する処理である。
【0033】
図3は全体正規化処理に用いる変換曲線の一例を示した図である。全体正規化処理としては、例えば、図3に示すような、画素値をsRGB空間におけるいわゆる逆ガンマ変換(=2.2乗する)した後にさらに対数をとるような変換曲線(ルックアップテーブル)にしたがって、画像全体における画素値を変換する処理を考えることができる。これは、次のような理由による。
【0034】
画像として観測される光強度Iは、通常、被写体の反射率Rと光源の強度Lの積として表現される(I=R×L)。したがって、光源の強度Lが変化すると、画像として観測される光強度Iも変化することになるが、被写体の反射率Rのみを評価することができれば、光源の強度Lに依存しない、すなわち、画像の明るさの影響を受けない精度の高い顔判別を行うことができる。
【0035】
ここで、光源の強度がLの場合において、被写体上で反射率がR1の部分から観測される光強度をI1、被写体上で反射率がR2の部分から観測される光強度をI2としたとき、それぞれの対数をとった空間では、下記の式が成り立つ。
log(I1)−log(I2)=log(R1×L)−log(R2×L)=log(R1)+log(L)−(log(R2)+log(L))=log(R1)−log(R2)=log(R1/R2)
【0036】
すなわち、画像における画素値を対数変換することは、反射率の比が差として表現された空間へ変換することとなり、このような空間では、光源の強度Lに依存しない被写体の反射率のみを評価することが可能となる。言い換えると、画像中の明るさによって異なるコントラスト(ここでは画素値の差分そのもの)を揃えることができる。
【0037】
一方、一般的なデジタルカメラ等の機器で取得された画像の色空間はsRGBである。sRGBとは、機器間の色再現の違いを統一するために、色彩、彩度等を規定・統一した国際標準の色空間のことであり、この色空間においては、ガンマ値(γout)が2.2の画像出力機器において適正な色再現を可能にするため、画像の画素値は、入力輝度を1/γout(=0.45)乗して得られる値となっている。
【0038】
そこで、画像全体における画素値を、いわゆる逆ガンマ変換、すなわち、2.2乗した後にさらに対数をとるような変換曲線にしたがって変換することにより、光源の強度に依存しない被写体の反射率のみによる評価を適正に行うことができるようになる。
【0039】
なお、このような全体正規化処理は、別の言い方をすれば、画像全体における画素値を、特定の色空間を別の特性を有する色空間に変換する変換曲線にしたがって変換する処理ということができる。
【0040】
このような処理を検出対象画像に施すことにより、画像中の明るさによって異なるコントラストを揃えることができ、顔検出処理の精度が向上することとなる。なお、この全体正規化処理は、処理結果が検出対象画像中の斜光や背景、入力モダリティの違いによる影響を受けやすい反面、処理時間が短いという特徴を有する。
【0041】
次に、局所正規化処理について説明する。局所正規化処理とは、解像度画像上の局所的な領域におけるコントラストのばらつきを抑制するための処理である。すなわち、解像度画像に対して、この解像度画像における各局所領域について、輝度を表す画素値の分散の程度が所定レベル以上である局所領域に対して、この分散の程度を上記の所定レベルより高い一定レベルに近づける第1の輝度階調変換処理を施し、画素値の分散の程度が上記の所定レベル未満である局所領域に対して、この分散の程度を上記の一定レベルより低いレベルに抑える第2の輝度階調変換処理を施すものである。なお、この局所正規化処理は、処理時間は長いが、検出対象画像中の斜光や背景、入力モダリティの違いによる判別結果への影響は小さいという特徴を有する。
【0042】
図4は局所正規化処理の概念を示した図であり、図5は局所正規化処理のフローを示した図である。また、式(1),(2)は、この局所正規化処理のための画素値の階調変換の式である。
【数1】
【0043】
ここで、Xは注目画素の画素値、X′は注目画素の変換後の画素値、mlocalは注目画素を中心とする局所領域における画素値の平均、Vlocalはこの局所領域における画素値の分散、SDlocalはこの局所領域における画素値の標準偏差、(C1×C1)は上記の一定レベルに対応する基準値、C2は上記の所定レベルに対応する閾値、SDcは所定の定数である。なお、本実施形態において、輝度の階調数は8bitとし、画素値の取り得る値は0から255とする。
【0044】
図4に示すように、まず、部分画像W2における1つの画素を注目画素として設定し(ステップS1)、この注目画素を中心とする所定の大きさ、例えば11×11画素サイズの局所領域における画素値の分散Vlocalを算出し(ステップS2)、分散Vlocalが上記所定のレベルに対応する閾値C2以上であるか否かを判定する(ステップS3)。ステップS3において、分散Vlocalが閾値C2以上であると判定された場合には、上記第1の輝度階調変換処理として、分散Vlocalが上記一定のレベルに対応する基準値(C1×C1)より大きいほど、注目画素の画素値Xと平均mlocalとの差を小さくし、分散mlocalが基準値(C1×C1)より小さいほど、注目画素の画素値Xと平均mlocalとの差を大きくする階調変換を式(1)にしたがって行う(ステップS4)。一方、ステップS3において、分散Vlocalが閾値C2未満であると判定された場合には、上記第2の輝度階調変換処理として、分散Vlocalに依らない線形な階調変換を式(2)にしたがって行う(ステップS5)。そして、ステップS1で設定した注目画素が最後の画素であるか否かを判定する(ステップS6)。ステップS6において、その注目画素が最後の画素でないと判定された場合には、ステップS1に戻り、同じ部分画像上の次の画素を注目画素として設定する。一方、ステップS6において、その注目画素が最後の画素であると判定された場合には、その部分画像に対する局所正規化を終了する。このように、上記ステップS1からS6の処理を繰り返すことにより、解像度画像全体に局所正規化を施すことができる。
【0045】
なお、上記の所定レベルは、局所領域における全体または一部の輝度に応じて変化させるようにしてもよい。例えば、上記の、注目画素毎に階調変換を行う正規化処理において、閾値C2を注目画素の画素値に応じて変化させるようにしてもよい。すなわち、上記の所定レベルに対応する閾値C2を、注目画素の輝度が相対的に高いときにはより高く設定し、その輝度が相対的に低いときにはより低く設定するようにしてもよい。このようにすることで、輝度の低い、いわゆる暗い領域に低いコントラスト(画素値の分散が小さい状態)で存在している顔も正しく正規化することができる。
【0046】
相関情報取得部(相関情報取得手段)30は、入力画像S0上に現れる顔の傾きと相関関係を有する相関情報Gを取得するものである。相関情報Gとしては、入力画像S0が連写撮影により取得されたものであるか否かを表す情報や、入力画像S0が動画撮影により取得されたものであるか否かを表す情報を考えることができる。本実施形態においては、入力画像S0の付帯情報から、入力画像S0の取得時におけるデジタルカメラやデジタルムービー等の画像取得機器の撮影モードが連写モードであったか否か、あるいはムービーモード(動画撮影モード)であったか否かを示す情報を読み取る。
【0047】
顔傾き順序設定部(顔傾き順序設定手段)40は、相関情報取得部30により相関情報Gが取得されると、その相関関係に基づいて、所定の傾きの顔が入力画像S0上に現れる確率の相対的な高さを求め、この傾きの顔を上記の確率の相対的な高さに応じた順位で検出すべく、顔を検出する際に変える検出すべき顔の傾きの順序を設定するものである。
【0048】
例えば、相関情報Gとして、入力画像S0が連写撮影により取得された画像であることを表す情報が得られた場合には、その連写撮影により入力画像S0の1コマ前に取得された直前画像において検出された顔の傾きを表す情報を取得し、その直前画像において検出された顔の傾きと同じ傾きの顔が入力画像S0上に現れる確率の相対的な高さを最も高いものとして求め、この傾きを最先の順位に設定し、他の傾きの順位については、その直前画像において既に検出された顔の傾きに近い傾きの順に設定する。これは、連写撮影により取得された一連の画像群では、その画像間で被写体の向きや姿勢が極端に変化する可能性は低いと考えられることから、直前画像において検出された顔の傾きと同じ傾きまたはそれに近い傾きの顔が検出される可能性が高いと判断できるためである。
【0049】
また、例えば、相関情報Gとして、入力画像S0が動画撮影により取得された画像であることを表す情報が得られた場合には、入力画像S0の傾きと同じ傾きの顔が入力画像S0上に現れる確率の相対的な高さを最も高いものとして求め、この傾きを最先の順位に設定し、他の傾きの順位については、入力画像S0の傾きに近い傾きの順に設定する。これは、動画撮影により取得された画像は、画像取得機器を横や斜めに傾けて撮影することが稀であり、画像に対して被写体の向きが真横や逆さ向きとなる可能性は低いと考えられることから、画像の傾きと同じ傾きの顔が検出される可能性が高いと判断できるためである。
【0050】
なお、顔が現れる確率が相対的にかなり低い顔の傾きについては、上述のように、顔を検出する際に変化させる顔の傾きの順序を後方に設定するほか、そのような顔についての検出処理そのものを省略することも考えられる。
【0051】
なお、ここでは、検出すべき顔の傾きを、入力画像S0の天地方向を基準に入力画像S0の画像面内において30度刻みで回転して設定される計12種類の傾きとし、検出すべき顔の傾きの順序が初期設定として予め所定の順序で設定されている。例えば、入力画像S0の天地方向を基準に時計回りの回転角度で表すとして、上向き3方向である0度、330度、30度、右向き3方向である90度、60度、120度、左向き3方向である270度、240度、300度、そして、下向き3方向である180度、150度、210度の順序とする。
【0052】
顔検出部50は、正規化部20により正規化処理がなされた解像度画像群S1′の各解像度画像に対して、検出すべき顔の傾きを顔方傾き順序設定部40により設定された順序にしたがって変えながら顔検出処理を施すことにより、各解像度画像に含まれる顔を表す画像(以下、顔画像という)S2を所定数検出するものであり、さらに複数の要素(部)から構成されている。
【0053】
図6は、顔検出部50の構成を示すブロック図である。顔検出部50は、図6に示すように、検出制御部51と、解像度画像選択部52と、サブウィンドウ設定部53と、第1の判別器群54および第2の判別器群55とから構成されている。
【0054】
検出制御部51は、顔検出部50を構成する他の各部を制御して顔検出処理におけるシーケンス制御を主に行うものである。すなわち、解像度画像群S1′の各解像度画像に対して、顔画像の候補となる顔画像候補をラフに検出し、さらにその顔画像候補が真の顔画像であるか否かを判別し、真の顔画像S2を検出するという段階的な顔検出処理を行ったり、検出すべき顔の傾きについて、顔傾き順序設定部40により設定された順序で検出を行ったりするべく、解像度画像選択部52、サブウィンドウ設定部53および第1および第2の判別器群54,55を制御する。
【0055】
例えば、適宜、解像度画像選択部52に対して解像度画像の選択を指示したり、サブウィンドウ設定部53に対してサブウィンドウの設定条件を指示したり、また、第1および第2の判別器群54,55を構成する判別器のうち使用する判別器の種類を切り替えたりする。なお、サブウィンドウ設定条件には、サブウィンドウを設定する画像上の範囲、サブウィンドウの移動間隔(検出の粗さ)の他、判別に用いる判別器群の別(ラフ/高精度の検出モード)等が含まれる。
【0056】
解像度画像選択部52は、検出制御部51の制御により、解像度画像群S1′の中から顔検出処理に供する解像度画像をサイズの小さい順に(解像度の粗い順に)順次選択するものである。なお、本実施形態における顔検出の手法が、各解像度画像上で順次切り出された同じサイズの部分画像W1についてその部分画像W1が顔画像であるか否かを判別することにより入力画像S0における顔を検出する手法であるから、この解像度画像選択部52は、入力画像S0における検出すべき顔の大きさを毎回変えながら設定するものであって、検出すべき顔の大きさを大から小へ変えながら設定するものと同等なものということができる。
【0057】
サブウィンドウ設定部53は、検出制御部51により設定されたサブウィンドウ設定条件に基づいて、解像度画像選択部52により選択された解像度画像において、顔画像であるか否かの判別対象となる部分画像W1を切り出すサブウィンドウを、その位置をずらしながら順次設定するものである。
【0058】
例えば、上記のラフな検出を行う場合には、上記の選択された解像度画像において、所定のサイズすなわち32×32画素サイズの部分画像W1を切り出すサブウィンドウを、所定画素数分、例えば5画素ずつ移動させながら順次設定し、その切り出された部分画像W1を第1の判別器群54へ入力する。判別器群を構成する各判別器は、後述のように、それぞれ、ある画像が所定の傾きおよび向きの顔を表す顔画像であるか否かを判別するものであるから、このようにすることで、あらゆる向きにある顔の顔画像を判別することが可能となる。また、上記の顔画像候補についてさらに精細な検出処理を行う場合には、その解像度画像のうち顔画像候補を含む所定の大きさの近傍領域内に限定して、またサブウィンドウをより短い間隔で、例えば1画素ずつ移動させながら順次設定し、上記と同様に部分画像W2の切り出しを行い、その切り出された部分画像W2を第2の判別器群55へ入力する。
【0059】
第1および第2の判別器群54,55は、サブウィンドウによって切り出された部分画像W1またはW2が顔画像であるか否かを判別するものである。
【0060】
第1の判別器群54は、部分画像W1が顔画像であるか否かを比較的高速に判別する判別器群であり、解像度画像における顔画像の候補をラフに検出するために用いられるものである。一方、第2の判別器群55は、部分画像W2が顔画像であるか否かを比較的高精度に判別する判別器群であり、上記のラフな検出によって検出された顔画像候補についてより細かい検出処理を施し、顔画像候補が真の顔画像S2であるか否かを判別するために用いられるものである。
【0061】
図7は第1および第2の判別器群54,55の構成を示した図である。第1の判別器群54は、図7に示すように、判別可能な顔の向きがそれぞれ異なる複数種類の判別器群、すなわち、主に正面顔を判別する第1の正面顔判別器群54_F、主に左横顔を判別する第1の左横顔判別器群54_Lおよび主に右横顔を判別する第1の右横顔判別器群54_Rが並列に接続された構成である。さらに、これら3種の判別器群はそれぞれ、判別可能な顔の傾きが上記の部分画像の天地方向を基準として30度ずつ異なる計12方向に対応した判別器、すなわち、第1の正面顔判別器群54_Fは、判別器54_F0,54_F30,・・・,54_F330、第1の左横顔判別器群54_Lは、判別器54_L0,54_L30,・・・,54_L330、第1の右横顔判別器群54_Rは、判別器54_R0,54_R30,・・・,54_R330から構成されている。
【0062】
第2の判別器群55も、第1の判別器群と同様、図5に示すように、判別可能な顔の向きがそれぞれ異なる複数種類の判別器群、すなわち、主に正面顔を判別する第2の正面顔判別器群55_F、主に左横顔を判別する第2の左横顔判別器群55_Lおよび主に右横顔を判別する第2の右横顔判別器群55_Rが並列に接続された構成である。さらに、これら3種の判別器群は第1の判別器群と同様、それぞれ、判別可能な顔の傾きが部分画像の天地方向を基準として30度ずつ異なる計12方向に対応した判別器、すなわち、第2の正面顔判別器群55_Fは、判別器55_F0,55_F30,・・・,55_F330、第2の左横顔判別器群55_Lは、判別器55_L0,55_L30,・・・,55_L330、第2の右横顔判別器群55_Rは、判別器55_R0,55_R30,・・・,55_R330から構成されている。
【0063】
なお、上記の各判別器は、図7に示すように、複数の弱判別器WCが線形に結合したカスケード構造を有しており、弱判別器は、部分画像W1またはW2(以下、単に部分画像Wという)の画素値(輝度)の分布に係る少なくとも1つの特徴量を算出し、この特徴量を用いてこの部分画像W1が顔画像であるか否かを判別するものである。
【0064】
また、上記第1および第2の判別器群54,55は、いずれも、判別可能な主な顔の画像面外の向きを正面顔、左横顔および右横顔の3種としているが、斜め向きの顔の検出精度を上げるため、右斜め顔、左斜め顔をそれぞれ判別する判別器をさらに設けるようにしてもよい。
【0065】
ここで、判別器群34を構成する各判別器の構成、判別器における処理の流れおよび判別器の学習方法について説明する。
【0066】
判別器は、図7に示すように、複数の弱判別器WCからなり、後述の学習により多数の弱判別器WCの中から選定された判別に有効な弱判別器WCをその有効な順に直列に接続したものである。弱判別器WCは、それぞれ、部分画像Wから弱判別器毎に固有の所定のアルゴリズムにしたがって特徴量を算出し、その特徴量と所定のスコアテーブル(後述の自己のヒストグラム)とに基づいて、部分画像Wが所定の傾きおよび向きにある顔画像であることの蓋然性を示すスコアを求めるものである。判別器は、これら複数の弱判別器WCの全部または一部から得られたスコアを評価して、部分画像Wが所定の傾きおよび向きにある顔画像であるか否かの判別結果Rを得る。
【0067】
図8は1つの判別器における処理の流れを示すフローチャートである。部分画像Wが判別器に入力されると、第1番目の弱判別器WCにおいて特徴量xが算出される(ステップS11)。例えば、図9に示すように、所定のサイズ、例えば、32×32画素サイズの部分画像Wに対して、4近傍画素平均(画像を2×2画素サイズ毎に複数のブロックに区分し、各ブロックの4画素における画素値の平均値をそのブロックに対応する1つの画素の画素値とする処理)を段階的に行うことにより、16×16画素サイズの画像と、8×8画素サイズの縮小した画像を得、もとの画像を含めたこれら3つの画像の平面内に設定される所定の2点を1ペアとして、複数種類のペアからなる1つのペア群を構成する各ペアにおける2点間の画素値(輝度)の差分値をそれぞれ計算し、これらの差分値の組合せを特徴量とする。各ペアの所定の2点は、例えば、画像上の顔の濃淡の特徴が反映されるよう決められた縦方向に並んだ所定の2点や、横方向に並んだ所定の2点とする。そして、特徴量である差分値の組合せに対応する値をxとして算出する。次に、その値xに応じて所定のスコアテーブル(自己のヒストグラム)から部分画像Wが判別すべき顔(例えば、判別器54_F30の場合には「顔の向きが正面で傾きが回転角度30度の顔」)を表す画像であることの蓋然性を示すスコアが求められる(ステップS12)。次に、1つ前の弱判別器WCから引き渡されたスコアにそのスコアを加算して累積スコアSCを算出するのであるが、第1番目の弱判別器WCの場合には、引き渡されるスコアが存在しないので、この場合には、求めたスコアをそのまま累積スコアSCとする(ステップS13)。次に、その累積スコアSCが予め決められた所定の閾値Th1を超えたか否か、および、その累積スコアSCが予め決められた所定の閾値Th2を下回ったか否かを判定する(ステップS14)。すなわち、SC>Th1という条件、もしくは、SC<Th2という条件のいずれかを満たすか否かを判定する。これらの条件を満たすと判定された場合には、SC>Th1のときに部分画像Wが判別すべき顔を表す「顔画像」であると判別し、SC<Th2のときに部分画像Wが「非顔画像」であると判別し、処理を終了する(ステップS15)。一方、ステップS14において、上記の条件を満たさないと判定された場合には、次の弱判別器WCがあるか否かを判定し(ステップS16)、ここで、次の弱判別器WCがあると判定されたときには、累積スコアSCを次の弱判別器WCに引き渡して、その次の弱判別器WCの処理に移行する(ステップS18)。一方、ステップS16において、次の弱判別器WCがないと判定された場合には、算出されたスコアの大小に基づいて、部分画像Wが判別すべき顔を表す「顔画像」、「非顔画像」のいずれかとして判別し処理を終了する(ステップS17)。
【0068】
次に、判別器の学習(生成)方法について説明する。
【0069】
図10は判別器の学習方法を示すフローチャートである。判別器の学習には、所定のサイズ、例えば32×32画素サイズで規格化され、さらに、前述の正規化部20による正規化処理と同様の処理が施された複数のサンプル画像を用いる。サンプル画像としては、顔であることが分かっている複数の異なる顔サンプル画像からなる顔サンプル画像群と、顔でないことが分かっている複数の異なる非顔サンプル画像からなる非顔サンプル画像群とを用意する。
【0070】
顔サンプル画像群は、1つの顔サンプル画像につき、縦および/または横を0.7倍から1.2倍の範囲にて0.1倍単位で段階的に拡縮して得られる各サンプル画像に対し、平面上±15度の範囲にて3度単位で段階的に回転させて得られる複数の変形バリエーションを用いる。なおこのとき、顔サンプル画像は、目の位置が所定の位置に来るように顔のサイズと位置を規格化し、上記の平面上の回転、拡縮は目の位置を基準として行うようにする。例えば、d×dサイズのサンプル画像の場合においては、図11に示すように、両目の位置が、サンプル画像の最左上の頂点と最右上の頂点から、それぞれ、内側に1/4d、下側に1/4d移動した各位置とに来るように顔のサイズと位置を規格化し、また、上記の平面上の回転、拡縮は、両目の中間点を中心に行うようにする。
【0071】
これら各サンプル画像には、重みすなわち重要度が割り当てられる。まず、すべてのサンプル画像の重みの初期値が等しく1に設定される(ステップS21)。
【0072】
次に、サンプル画像およびその縮小画像の平面内に設定される所定の2点を1ペアとして複数のペアからなるペア群を複数種類設定したときの、この複数種類のペア群のそれぞれについて弱半別器が作成される(ステップS22)。ここで、それぞれの弱判別器とは、サブウィンドウWで切り出された部分画像とその縮小画像の平面内に設定される所定の2点を1ペアとして複数のペアからなる1つのペア群を設定したときの、この1つのペア群を構成する各ペアにおける2点間の画素値(輝度)の差分値の組合せを用いて、顔の画像と顔でない画像とを判別する基準を提供するものである。本実施形態においては、1つのペア群を構成する各ペアにおける2点間の画素値の差分値の組合せについてのヒストグラムを弱判別器のスコアテーブルの基礎として使用する。
【0073】
図12はサンプル画像からヒストグラムが生成される様子を示した図である。図12の左側のサンプル画像に示すように、この判別器を作成するためのペア群を構成する各ペアの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乗通りとなるため、画素値の差分値の組合せを表すデータ数を低減できる。
【0074】
同様に、顔でないことが分かっている複数の非顔サンプル画像についても、ヒストグラムが作成される。なお、非顔サンプル画像については、顔であることが分かっている顔サンプル画像上における上記各ペアの所定の2点の位置に対応する位置(同様に参照符号P1からP7を用いる)が用いられる。これらの2つのヒストグラムが示す頻度値の比の対数値を取ってヒストグラムで表したものが、図12の一番右側に示す、弱判別器のスコアテーブルの基礎として用いられるヒストグラムである。この弱判別器のヒストグラムが示す各縦軸の値を、以下、判別ポイントと称する。この弱判別器によれば、正の判別ポイントに対応する、画素値の差分値の組合せの分布を示す画像は顔である可能性が高く、判別ポイントの絶対値が大きいほどその可能性は高まると言える。逆に、負の判別ポイントに対応する画素値の差分値の組合せの分布を示す画像は顔でない可能性が高く、やはり判別ポイントの絶対値が大きいほどその可能性は高まる。ステップS22では、判別に使用され得る複数種類のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せについて、上記のヒストグラム形式の複数の弱判別器が作成される。
【0075】
続いて、ステップS22で作成した複数の弱半別器のうち、画像が顔であるか否かを判別するのに最も有効な弱判別器が選択される。最も有効な弱判別器の選択は、各サンプル画像の重みを考慮して行われる。この例では、各弱判別器の重み付き正答率が比較され、最も高い重み付き正答率を示す弱判別器が選択される(ステップS23)。すなわち、最初のステップS23では、各サンプル画像の重みは等しく1であるので、単純にその弱判別器によって画像が顔であるか否かが正しく判別されるサンプル画像の数が最も多いものが、最も有効な弱判別器として選択される。一方、後述するステップS15において各サンプル画像の重みが更新された後の2回目のステップS23では、重みが1のサンプル画像、重みが1よりも大きいサンプル画像、および重みが1よりも小さいサンプル画像が混在しており、重みが1よりも大きいサンプル画像は、正答率の評価において、重みが1のサンプル画像よりも重みが大きい分多くカウントされる。これにより、2回目以降のステップS23では、重みが小さいサンプル画像よりも、重みが大きいサンプル画像が正しく判別されることに、より重点が置かれる。
【0076】
次に、それまでに選択した弱判別器の組合せの正答率、すなわち、それまでに選択した弱判別器を組み合わせて使用して(学習段階では、弱判別器は必ずしも線形に結合させる必要はない)各サンプル画像が顔の画像であるか否かを判別した結果が、実際に顔の画像であるか否かの答えと一致する率が、所定の閾値を超えたか否かが確かめられる(ステップS24)。ここで、弱判別器の組合せの正答率の評価に用いられるのは、現在の重みが付けられたサンプル画像群でも、重みが等しくされたサンプル画像群でもよい。所定の閾値を超えた場合は、それまでに選択した弱判別器を用いれば画像が顔であるか否かを十分に高い確率で判別できるため、学習は終了する。所定の閾値以下である場合は、それまでに選択した弱判別器と組み合わせて用いるための追加の弱判別器を選択するために、ステップS26へと進む。
【0077】
ステップS26では、直近のステップS23で選択された弱判別器が再び選択されないようにするため、その弱判別器が除外される。
【0078】
次に、直近のステップS23で選択された弱判別器では顔であるか否かを正しく判別できなかったサンプル画像の重みが大きくされ、画像が顔であるか否かを正しく判別できたサンプル画像の重みが小さくされる(ステップS25)。このように重みを大小させる理由は、次の弱判別器の選択において、既に選択された弱判別器では正しく判別できなかった画像を重要視し、それらの画像が顔であるか否かを正しく判別できる弱判別器が選択されるようにして、弱判別器の組合せの効果を高めるためである。
【0079】
続いて、ステップS23へと戻り、上記したように重み付き正答率を基準にして次に有効な弱判別器が選択される。
【0080】
以上のステップS23からS26を繰り返して、顔であるか否かを判別するのに適した弱判別器として、特定のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せに対応する弱判別器が選択されたところで、ステップS24で確認される正答率が閾値を超えたとすると、顔であるか否かの判別に用いる弱判別器の種類と判別条件とが確定され(ステップS27)、これにより学習を終了する。なお、選択された弱判別器は、その重み付き正答率が高い順に線形結合され、1つの判別器が構成される。また、各弱判別器については、それぞれ得られたヒストグラムを基に、画素値の差分値の組合せに応じてスコアを算出するためのスコアテーブルが生成される。なお、ヒストグラム自身をスコアテーブルとして用いることもでき、この場合、ヒストグラムの判別ポイントがそのままスコアとなる。
【0081】
このようにして、顔サンプル画像群と非顔サンプル画像群とを用いた学習により、判別器が生成されるわけであるが、上記のように、判別したい顔の傾きおよび向きが異なる複数の判別器を生成するには、それらの各傾きや向きに対応した顔サンプル画像群を用意し、その顔サンプル画像群と非顔サンプル画像群とを用いた学習を顔サンプル画像群の種類毎に行うこととなる。
【0082】
すなわち、本実施形態においては、顔の向きについては、正面、左横、右横の計3種類、顔の傾きについては、回転角度0度から330度まで30度刻みの計12種類、合計36種類の顔サンプル画像群を用意する。なお、第1の判別器群54と第2の判別器群55とで異なるサンプル画像を用いて学習させる場合には、さらにその2倍、合計72種類の顔サンプル画像群を用意することとなる。
【0083】
上記の複数の顔サンプル画像群が得られたら、顔サンプル画像群の種類毎に、その顔サンプル画像群と非顔サンプル画像群とを用いて、上記の学習を行うことにより、第1および第2の判別器群54,55を構成する複数の判別器を生成することができる。
【0084】
このように、顔の向き毎に、かつ、顔の傾き毎に学習された複数の判別器を用いることにより、あらゆる向きや傾きの顔を判別することが可能となる。
【0085】
なお、上記の学習手法を採用する場合において、弱判別器は、特定のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せを用いて顔の画像と顔でない画像とを判別する基準を提供するものであれば、上記のヒストグラムの形式のものに限られずいかなるものであってもよく、例えば2値データ、閾値または関数等であってもよい。また、同じヒストグラムの形式であっても、図12の中央に示した2つのヒストグラムの差分値の分布を示すヒストグラム等を用いてもよい。
【0086】
また、学習の方法としては上記手法に限定されるものではなく、ニューラルネットワーク等他のマシンラーニングの手法を用いることができる。
【0087】
次に、顔検出システム1における処理の流れについて説明する。
【0088】
図13a,13bは、上記顔検出システムにおける処理の流れを示したフローチャートである。これらの図に示すように、多重解像度化部10に入力画像S0が供給されると(ステップS31)、この入力画像S0の画像サイズが所定のサイズに変換された画像S0′が生成され、この画像S0′から2の−1/3乗倍ずつサイズ(解像度)が縮小された複数の解像度画像からなる解像度画像群S1が生成される(ステップS32)。そして、正規化部20において、解像度画像群S1の各解像度化像に対して、上述の全体正規化処理と局所正規化処理が施され、正規化済みの解像度画像群S1′が得られる(ステップS33)。
【0089】
一方、相関情報取得部30は、顔方向相関情報Gとして、入力画像S0の付帯情報から、入力画像S0取得時における画像取得機器の撮影モードを表す情報を読み取る。(ステップS34)。顔傾き順序設定部40は、相関情報Gと入力画像S0上に現れる顔の傾きとの相関関係に基づいて、所定の傾きの顔が入力画像S0上に現れる相対的な確率の高さを求め、この所定の傾きの顔をその確率の相対的な高さに応じた順位で検出するように、顔を検出する際に変える検出すべき顔の傾きの順序を設定する(ステップS35)。なお、このような相関情報Gが得られない場合には、検出すべき顔の傾きの順序は初期設定のままとなる。
【0090】
顔検出部50においては、検出制御部51が、部分画像W1が顔画像であるか否かを判別する際に用いる判別器の種類を、判別すべき顔の傾きの順序が顔傾き順序設定部40により設定された検出すべき顔の傾きの順序と一致するように選択する(ステップS36)。そして、検出制御部51からの指示を受けた解像度画像選択部52により、解像度画像群S1′の中から画像サイズの小さい順、すなわち、S1′_n,S1′_n−1,・・・,S1′_1の順に所定の解像度画像S1′_iを選択する(ステップS37)。次に検出制御部51が、サブウィンドウ設定部53に対して、検出モードをラフな検出のモードとするサブウィンドウ設定条件を設定する。これにより、サブウィンドウ設定部53は、解像度画像S1′_i上でサブウィンドウを広めのピッチ、例えば5画素間隔で移動しながら設定して所定サイズの部分画像W1を順次切り出し(ステップS38)、その部分画像W1を第1の判別器群54の中の上記選択された種類の判別器へ入力する(ステップS39)。例えば、判別すべき顔の傾きが入力画像S0の天地方向を基準に30度回転した傾きである場合には、部分画像W1は判別器54F_30,54L_30,54R_30の3つの判別器へ入力される。これらの判別器は入力された部分画像W1が顔画像であるか否かを判別し、検出制御部51がその判別結果Rを取得する(ステップS40)。そして、検出制御部51は、顔画像候補が検出されたか否かを判定する(ステップS41)。ここで、顔画像候補が検出されていると判定された場合には、ステップS42に移行し、精細モードの検出を行い、顔画像候補が検出されていないと判定された場合には、ステップS47に移行し、検出処理が続行可能か否かの判定を行う。
【0091】
ステップS42では、検出制御部51が、サブウィンドウ設定部33に対して、検出対象領域を、顔画像候補を含む所定の大きさの領域内に限定し、検出モードを精細モードとするサブウィンドウ設定条件を設定する。これにより、サブウィンドウ設定部53は、顔画像候補近傍で、サブウィンドウを狭いピッチ、例えば1画素ずつ移動しながら設定して所定サイズの部分画像W2を順次切り出し(ステップS42)、第2の判別器群55中の上記ステップS26にて選択された種類の判別器へ入力する(ステップS43)。これらの判別器は、入力された部分画像W2が顔画像であるか否かを判別し、検出制御部51がその判別結果Rを取得する(ステップS44)。そして、これまでに所定の数の顔画像が検出されたか否かを判定する(ステップS45)。所定の数の顔画像が検出されたと判定された場合には、検出処理を終了し、検出されていないと判定された場合には、現在の部分画像W2が顔画像候補近傍で最後の部分画像であるか否かを判定する(ステップS46)。ここで、現在の部分画像W2が最後の部分画像でないと判定された場合には、ステップS32に戻り、新たな部分画像W2を切り出し、精細モードでの検出処理を続行する。現在の部分画像W2が最後の部分画像であると判定された場合には、ステップS47に移行し、さらに検出処理が続行可能か否かの判定を行う。
【0092】
ステップS47では、まず、現在の部分画像W1が現在の解像度画像上で最後の部分画像であるか否かを判定する(ステップS47)。ここで、現在の部分画像W1が最後の部分画像でないと判定された場合には、ステップS38に戻り、現在の解像度画像上で新たな部分画像W1を切り出し、検出処理を続行する。一方、現在の部分画像W1が最後の部分画像であると判定された場合には、次の判定処理を行う。すなわち、現在の解像度画像が最後の解像度画像であるか否かを判定する(ステップS48)。ここで、現在の解像度画像が最後の解像度画像でないと判定された場合には、ステップS37に戻り、新たな解像度画像を選択し、検出処理を続行する。一方、現在の解像度画像が最後の解像度画像であると判定された場合には、次の判定処理を行う。すなわち、現在選択されている判別器の種類(判別すべき顔の傾き)が最後の順番の種類であるか否かを判定する(ステップS49)。ここで、現在選択されている判別器の種類が、最後の順番の種類でないと判定された場合には、ステップS36に戻り、次の順番の判別器の種類を選択し、検出処理を続行する。一方、現在選択されている判別器の種類が、最後の順番の種類であると判定された場合には、検出処理を終了する。
【0093】
図14は、上記のステップS37からステップS49までを繰り返すことにより、解像度画像がサイズの小さい順に選択されて、各解像度画像上で部分画像W1が順次切り出され、顔検出が実施される様子を示した図である。
【0094】
このように、本発明の実施形態に係る顔検出システムによれば、入力画像S0上で検出すべき顔の傾きを変えながら顔を検出する場合において、入力画像S0上に現れる顔の傾きと相関関係を有する相関情報Gを取得し、この相関関係を利用して、所定の傾きの顔が現れる確率の相対的な高さを求め、この傾きの顔を上記の確率の相対的な高さに応じた順位で検出されるように、顔を検出する際に変える検出すべき顔の傾きの順序を設定するので、顔が検出されるまでの処理量を低減することができ、より高速な顔検出が可能となる。
【0095】
以上、本発明の実施形態に係る顔検出システムについて説明したが、この顔検出システムのうちの本発明の顔検出装置に対応する部分における各処理をコンピュータに実行させるためのプログラムも、本発明の実施形態の1つである。また、そのようなプログラムを記録したコンピュータ読取可能な記録媒体も、本発明の実施形態の1つである。
【図面の簡単な説明】
【0096】
【図1】顔検出システム1の構成を示すブロック図
【図2】検出対象画像の多重解像度化の工程を示す図
【図3】全体正規化処理に用いる変換曲線の一例を示す図
【図4】局所正規化処理の概念を示す図
【図5】局所正規化処理のフローを示す図
【図6】顔検出部50の構成を示すブロック図
【図7】第1および第2の判別器群の構成を示すブロック図
【図8】判別器における処理フローを示す図
【図9】弱判別器における特徴量の算出を説明するための図
【図10】判別器の学習方法を示すフローチャート
【図11】目の位置が所定の位置にくるように規格化された顔のサンプル画像を示す図
【図12】弱判別器のヒストグラムを導出する方法を示す図
【図13a】顔検出システム1において行われる処理を示すフローチャート(前半部)
【図13b】顔検出システム1において行われる処理を示すフローチャート(後半部)
【図14】顔検出対象となる解像度画像の切替えとその画像上でのサブウィンドウの移動を説明するための図
【符号の説明】
【0097】
1 顔検出システム
10 多重解像度化部
20 正規化部
30 相関情報取得部(相関情報取得手段)
40 顔傾き順序設定部(顔傾き順序設定手段)
50 顔検出部
51 検出制御部
52 解像度画像選択部
53 サブウィンドウ設定部
54 第1の判別器群
55 第2の判別器群
【特許請求の範囲】
【請求項1】
入力画像上で検出すべき顔の傾きを変えながら顔を検出する顔検出方法において、
前記入力画像上に現れる顔の傾きと相関関係を有する相関情報を取得するステップと、
前記相関関係に基づいて、所定の傾きの顔が前記入力画像上に現れる確率の相対的な高さを求め、該所定の傾きの顔を前記確率の相対的な高さに応じた順位で検出するように、顔を検出する際に変える前記検出すべき顔の傾きの順序を設定するステップとを有することを特徴とする顔検出方法。
【請求項2】
前記相関情報が、前記入力画像が連写撮影により取得されたものであるか否か、または、前記入力画像が動画撮影により取得されたものであるか否かを表す情報であることを特徴とする請求項1記載の顔検出方法。
【請求項3】
前記検出すべき顔の傾きの順序を設定するステップが、
前記相関情報が、前記入力画像が連写撮影により取得された画像であることを表す情報であるときに、該連写撮影により前記入力画像の1コマ前に撮影された直前画像において検出された顔の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するステップであることを特徴とする請求項2記載の顔検出方法。
【請求項4】
前記検出すべき顔の向きの順序を設定するステップが、
前記相関情報が、前記入力画像が動画撮影により取得された画像であることを表す情報であるときに、前記入力画像の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するステップであることを特徴とする請求項2記載の顔検出方法。
【請求項5】
入力画像上で検出すべき顔の傾きを変えながら顔を検出する顔検出装置において、
前記入力画像上に現れる顔の傾きと相関関係を有する相関情報を取得する相関情報取得手段と、
前記相関関係に基づいて、所定の傾きの顔が前記入力画像上に現れる確率の相対的な高さを求め、該所定の傾きの顔を前記確率の相対的な高さに応じた順位で検出するように、顔を検出する際に変える前記検出すべき顔の傾きの順序を設定する顔傾き順序設定手段とを備えたことを特徴とする顔検出装置。
【請求項6】
前記相関情報が、前記入力画像が連写撮影により取得されたものであるか否か、または、前記入力画像が動画撮影により取得されたものであるか否かを表す情報であることを特徴とする請求項5記載の顔検出装置。
【請求項7】
前記顔傾き順序設定手段が、
前記相関情報が、前記入力画像が連写撮影により取得された画像であることを表す情報であるときに、該連写撮影により前記入力画像の1コマ前に撮影された直前画像において検出された顔の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するものであることを特徴とする請求項6記載の顔検出装置。
【請求項8】
前記顔傾き順序設定手段が、
前記相関情報が、前記入力画像が動画撮影により取得された画像であることを表す情報であるときに、前記入力画像の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するものであることを特徴とする請求項6記載の顔検出装置。
【請求項9】
コンピュータを、入力画像上で検出すべき顔の傾きを変えながら顔を検出する顔検出装置として機能させるためのプログラムにおいて、
該コンピュータを、
前記入力画像上に現れる顔の傾きと相関関係を有する相関情報を取得する相関情報取得手段と、
前記相関関係に基づいて、所定の傾きの顔が前記入力画像上に現れる確率の相対的な高さを求め、該所定の傾きの顔を前記確率の相対的な高さに応じた順位で検出するように、顔を検出する際に変える前記検出すべき顔の傾きの順序を設定する顔傾き順序設定手段として機能させることを特徴とするプログラム。
【請求項10】
前記相関情報が、前記入力画像が連写撮影により取得されたものであるか否か、または、前記入力画像が動画撮影により取得されたものであるか否かを表す情報であることを特徴とする請求項9記載のプログラム。
【請求項11】
前記顔傾き順序設定手段が、
前記相関情報が、前記入力画像が連写撮影により取得された画像であることを表す情報であるときに、該連写撮影により前記入力画像の1コマ前に撮影された直前画像において検出された顔の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するものであることを特徴とする請求項9記載のプログラム。
【請求項12】
前記顔傾き順序設定手段が、
前記相関情報が、前記入力画像が動画撮影により取得された画像であることを表す情報であるときに、前記入力画像の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するものであることを特徴とする請求項9記載のプログラム。
【請求項1】
入力画像上で検出すべき顔の傾きを変えながら顔を検出する顔検出方法において、
前記入力画像上に現れる顔の傾きと相関関係を有する相関情報を取得するステップと、
前記相関関係に基づいて、所定の傾きの顔が前記入力画像上に現れる確率の相対的な高さを求め、該所定の傾きの顔を前記確率の相対的な高さに応じた順位で検出するように、顔を検出する際に変える前記検出すべき顔の傾きの順序を設定するステップとを有することを特徴とする顔検出方法。
【請求項2】
前記相関情報が、前記入力画像が連写撮影により取得されたものであるか否か、または、前記入力画像が動画撮影により取得されたものであるか否かを表す情報であることを特徴とする請求項1記載の顔検出方法。
【請求項3】
前記検出すべき顔の傾きの順序を設定するステップが、
前記相関情報が、前記入力画像が連写撮影により取得された画像であることを表す情報であるときに、該連写撮影により前記入力画像の1コマ前に撮影された直前画像において検出された顔の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するステップであることを特徴とする請求項2記載の顔検出方法。
【請求項4】
前記検出すべき顔の向きの順序を設定するステップが、
前記相関情報が、前記入力画像が動画撮影により取得された画像であることを表す情報であるときに、前記入力画像の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するステップであることを特徴とする請求項2記載の顔検出方法。
【請求項5】
入力画像上で検出すべき顔の傾きを変えながら顔を検出する顔検出装置において、
前記入力画像上に現れる顔の傾きと相関関係を有する相関情報を取得する相関情報取得手段と、
前記相関関係に基づいて、所定の傾きの顔が前記入力画像上に現れる確率の相対的な高さを求め、該所定の傾きの顔を前記確率の相対的な高さに応じた順位で検出するように、顔を検出する際に変える前記検出すべき顔の傾きの順序を設定する顔傾き順序設定手段とを備えたことを特徴とする顔検出装置。
【請求項6】
前記相関情報が、前記入力画像が連写撮影により取得されたものであるか否か、または、前記入力画像が動画撮影により取得されたものであるか否かを表す情報であることを特徴とする請求項5記載の顔検出装置。
【請求項7】
前記顔傾き順序設定手段が、
前記相関情報が、前記入力画像が連写撮影により取得された画像であることを表す情報であるときに、該連写撮影により前記入力画像の1コマ前に撮影された直前画像において検出された顔の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するものであることを特徴とする請求項6記載の顔検出装置。
【請求項8】
前記顔傾き順序設定手段が、
前記相関情報が、前記入力画像が動画撮影により取得された画像であることを表す情報であるときに、前記入力画像の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するものであることを特徴とする請求項6記載の顔検出装置。
【請求項9】
コンピュータを、入力画像上で検出すべき顔の傾きを変えながら顔を検出する顔検出装置として機能させるためのプログラムにおいて、
該コンピュータを、
前記入力画像上に現れる顔の傾きと相関関係を有する相関情報を取得する相関情報取得手段と、
前記相関関係に基づいて、所定の傾きの顔が前記入力画像上に現れる確率の相対的な高さを求め、該所定の傾きの顔を前記確率の相対的な高さに応じた順位で検出するように、顔を検出する際に変える前記検出すべき顔の傾きの順序を設定する顔傾き順序設定手段として機能させることを特徴とするプログラム。
【請求項10】
前記相関情報が、前記入力画像が連写撮影により取得されたものであるか否か、または、前記入力画像が動画撮影により取得されたものであるか否かを表す情報であることを特徴とする請求項9記載のプログラム。
【請求項11】
前記顔傾き順序設定手段が、
前記相関情報が、前記入力画像が連写撮影により取得された画像であることを表す情報であるときに、該連写撮影により前記入力画像の1コマ前に撮影された直前画像において検出された顔の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するものであることを特徴とする請求項9記載のプログラム。
【請求項12】
前記顔傾き順序設定手段が、
前記相関情報が、前記入力画像が動画撮影により取得された画像であることを表す情報であるときに、前記入力画像の傾きと同じ傾きの顔が前記入力画像上に現れる確率の相対的な高さを最も高いものとして求め、該傾きを最先の順位に設定するものであることを特徴とする請求項9記載のプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13a】
【図13b】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13a】
【図13b】
【図14】
【公開番号】特開2007−65844(P2007−65844A)
【公開日】平成19年3月15日(2007.3.15)
【国際特許分類】
【出願番号】特願2005−249154(P2005−249154)
【出願日】平成17年8月30日(2005.8.30)
【出願人】(306037311)富士フイルム株式会社 (25,513)
【Fターム(参考)】
【公開日】平成19年3月15日(2007.3.15)
【国際特許分類】
【出願日】平成17年8月30日(2005.8.30)
【出願人】(306037311)富士フイルム株式会社 (25,513)
【Fターム(参考)】
[ Back to top ]