説明

オブジェクト検出装置および方法並びにプログラム

【課題】検出対象画像から顔等の特定種類のオブジェクトを精度良くかつ高速に検出する。
【解決手段】顔の検出対象画像を所定倍率により多重解像度化して解像度が異なる複数の解像度画像を取得する。複数の解像度画像上に、各解像度画像間の所定倍率を補間するサイズを有する複数のウィンドウを走査させて部分画像を生成する。部分画像に基づいて、部分画像の画素値の分布に係る特徴量を算出し、特徴量を用いて部分画像が顔であるか否かを判定する。判定には、複数のウィンドウのサイズに対応する異なるサイズを有し、同一の照明補正がなされた複数のサンプル画像により、顔の分布に係る特徴量をウィンドウのサイズ毎に学習させた判別器であって、部分画像に係る特徴量を用いて部分画像がオブジェクトの画像であるか否かを判別する判別器を用いる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検出対象画像から人物の顔等の特定種類のオブジェクトを検出するオブジェクト検出装置および方法並びにオブジェクト検出方法をコンピュータに実行させるためのプログラムに関するものである。
【背景技術】
【0002】
従来、デジタルカメラによって撮影されたスナップ写真における人物の顔領域の色分布を調べてその肌色を補正したり、監視システムのデジタルビデオカメラで撮影されたデジタル映像中の人物を認識したりすることが行われている。このような場合、デジタル画像中の人物の顔に対応する顔領域を検出する必要があるため、これまでに、デジタル画像中の顔を検出する手法が種々提案されている。その中でもとくに検出精度、ロバスト性が優れているとされる顔検出の手法として、サンプル画像を用いたマシンラーニングの学習により生成された判別器モジュール(以下、単に判別器という)を用いる手法が知られている。
【0003】
この手法は、複数の異なる顔のサンプル画像からなる顔サンプル画像群と、顔でないことが分かっている複数の異なる非顔サンプル画像とからなる非顔サンプル画像群とを用いて、顔であることの特徴を学習させ、ある画像が顔の画像であるか否かを判別できる判別器を生成して用意しておき、顔の検出対象となる画像(以下、検出対象画像という)において部分画像を順次切り出し、その部分画像が顔であるか否かを上記の判別器を用いて判別し、顔であると判別した部分画像の領域を抽出することにより、検出対象画像上の顔を検出する手法である。
【0004】
ここで、判別器は、顔サンプル画像および非顔サンプル画像から画素値の分布に係る複数の特徴量を抽出し、この特徴量を用いて学習が行われてなるものであり、各特徴量毎に顔であるか否かを判別する複数の弱判別器から構成されてなるものである。したがって、部分画像が顔であるか否かの判別は、部分画像から学習時と同様の画素値の分布に係る複数の特徴量を抽出し、抽出した特徴量を各弱判別器により判別することにより行われる。
【0005】
なお、この手法は、顔のサンプル画像と同一のサイズを有する顔については、サンプル画像と同一サイズとなるように部分画像を切り出すことにより、精度良く検出することができる。しかしながら、検出対象画像に含まれる可能性がある顔のサイズは一定ではないため、同一サイズの顔サンプル画像のみを用いて学習した判別器のみを用いたのでは、検出対象画像に含まれるすべての顔を検出できない。このため、部分画像を切り出すウィンドウのサイズを段階的に変更しつつ部分画像を切り出し、部分画像から対応する複数の特徴量を抽出し、抽出した特徴量を対応する弱判別器により判別して、部分画像が顔であるか否かを判別する手法が提案されている(非特許文献1参照)。
【0006】
また、ウィンドウのサイズではなく、検出対象画像を多重解像度化して複数の解像度画像を取得し、各解像度画像からサンプル画像と同一サイズのウィンドウを用いて部分画像を切り出して、部分画像が顔であるか否かの判別を行う手法も提案されている(特許文献1参照)。なお、特許文献1に記載された手法は、図20に示すように、検出対象画像を基本となる解像度画像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倍サイズに縮小した解像度画像を生成する、といった処理を繰り返し行い、解像度が異なる複数の解像度画像を所定の数だけ生成している。
【0007】
ところで、上記の判別器は、一般的に、比較的画質が整ったサンプル画像を用いて学習されるため、基本的に画質のきれいな画像を対象に作られたものである。一方、検出対象画像としては、撮影シーンの明るさやコントラストが種々異なる画像が想定される。したがって、例えば、検出対象画像が暗い場所で撮影された画像である場合、この画像において顔の特徴を表す目の暗い部分と鼻の明るい部分を探そうとしても、画像の明るさが影響し、探索が難しい場合がある。
【0008】
このため、検出対象画像の明るさやコントラストが違っても顔を検出することができるように、検出もしくは判別の対象となる画像に前処理として、画像のコントラストをある一定レベルに揃えるべく、正規化処理を施して照明補正を行う手法が提案されている。この正規化処理を施す手法としては、主に下記3つの手法が提案されている。
【0009】
第1の手法は、検出対象画像の画像全体の画素値をその画像における被写体の輝度の対数を表す値に近づける変換曲線(ルックアップテーブル)にしたがって変換する手法である。第2の手法は、検出対象画像から切り出された部分画像毎にその領域内の画素値(輝度値)の分散の程度を一定レベルに揃えるべくこの画素値を変換する手法である。そして、第3の手法は、検出対象画像から切り出された部分画像の領域内で所定サイズの局所領域を走査しながらその局所領域における画素値の分散の程度を一定レベルに揃えるべく、この画素値を変換する手法である。第1から第3の手法のうち、第3の手法は、検出対象画像中の遮光、背景、入力モダリティの違いによる影響を受けにくいため、照明補正の程度が最も高い。なお、検出対象画像を多重解像度化した場合、複数の解像度画像のそれぞれに対して所定サイズの局所領域を走査しながらその局所領域における画素値の分散の程度を一定レベルに揃えるべく、画素値を変換することにより照明補正を行うことも可能である。
【先行技術文献】
【特許文献】
【0010】
【非特許文献1】Paul Viola and Michael Jones, Rapid object detection using a boosted cascade of features, IEEE CVPR, 2001
【特許文献1】特開2007−25766号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、上記非特許文献1に記載の手法においては、複数サイズのウィンドウを使用するため、部分画像のサイズがウィンドウのサイズに応じて異なるものとなる。このようにサイズが異なる部分画像に対して第3の手法により照明補正を行う場合、局所領域のサイズを部分画像のサイズに応じて変更する必要がある。このため、照明補正のための演算が非常に複雑となり、その結果、照明補正のための演算に長時間を要するものとなる。
【0012】
また、非特許文献1に記載された手法においては、複数サイズのウィンドウを使用するが、すべてのウィンドウサイズに応じた学習を行った弱判別器からなる判別器を用意することは、学習の手間を考えると現実的ではない。このため、非特許文献1に記載された手法においては、弱判別器により判別される特徴量を取得する画素値の位置が、サイズが異なる部分画像間において互いに対応するものとなるようにするために、弱判別器のスケールを変更するようにしている。しかしながら、スケールを変更した弱判別器からなる判別器を用いると顔の検出精度が低下する。また、部分画像のサイズ毎にスケールを変更する必要があるため、その演算に長時間を要するものとなる。
【0013】
一方、上記特許文献1に記載された手法においては、複数の解像度画像のそれぞれに対して照明補正を行うことが可能であるため、非特許文献1に記載された手法と比較して、容易に照明補正を行うことができる。また、単一サイズのウィンドウを使用しているため、顔検出の精度が低下するおそれもない。しかしながら、顔検出の精度を向上させるためには、図20に示すように、解像度画像における解像度の相違を非常に小さくして多くの解像度の解像度画像を取得する必要があるため、その演算に長時間を要するものとなる。
【0014】
本発明は上記事情に鑑みなされたものであり、検出対象画像から顔等の特定種類のオブジェクトを精度良くかつ高速に検出することを目的とする。
【課題を解決するための手段】
【0015】
本発明によるオブジェクト検出装置は、特定種類のオブジェクトを検出する検出対象画像を所定倍率により多重解像度化して解像度が異なる複数の解像度画像を取得する多重解像度処理手段と、
前記複数の解像度画像上に、前記各解像度画像間の前記所定倍率を補間するサイズを有する複数のウィンドウを走査させて部分画像を生成する部分画像生成手段と、
前記部分画像に基づいて、該部分画像の画素値の分布に係る特徴量を算出し、該特徴量を用いて前記部分画像が前記オブジェクトの画像であるか否かを判定する判定手段とを備え、
前記判定手段が、前記複数のウィンドウのサイズに対応する異なるサイズを有し、同一の照明補正がなされた複数のサンプル画像により、前記オブジェクトの分布に係る特徴量を前記ウィンドウのサイズ毎に学習させた、前記部分画像に係る前記特徴量を用いて該部分画像が前記オブジェクトの画像であるか否かを判別する判別器を備えたものであることを特徴とするものである。
【0016】
「所定倍率」としては、検出対象画像を縮小する任意の倍率を用いることができるが、比較的計算が容易な1/2倍を所定倍率として用いることが好ましい。
【0017】
「所定倍率を補間するサイズ」とは、複数の解像度画像間の倍率の差異を補間するサイズを意味する。「所定倍率を補間するサイズを有する複数のウィンドウ」とは、所定サイズのウィンドウを基準ウィンドウとし、基準ウィンドウを所定倍率により縮小した場合において、基準ウィンドウのサイズと縮小したウィンドウのサイズとの中間のサイズを有する複数のウィンドウを意味する。例えば、所定倍率が1/2倍の場合、各解像度画像間の倍率の差異は1/2すなわち2−1であるため、「所定倍率を補間するサイズの複数のウィンドウ」としては、基準ウィンドウ、基準ウィンドウのサイズの2−1/4,2−2/4,2−3/4のサイズを有するウィンドウあるいは2−1/3,2−2/3のサイズを有するウィンドウ等を用いることができる。
【0018】
このように本発明は、部分画像に係る特徴量を用いて部分画像が特定種類のオブジェクトの画像であるか否かを判別する判別器を、複数のウィンドウのサイズに対応する異なるサイズを有し、同一の照明補正がなされた複数のサンプル画像により、オブジェクトの分布に係る特徴量をウィンドウのサイズ毎に学習させてなるものである。このため、ウィンドウのサイズが異なっていても、サイズが異なる部分画像毎に照明補正を行う必要がなくなるため、オブジェクト検出のための演算量を低減でき、その結果、高速にかつ精度良くオブジェクトを検出することができる。
【0019】
また、本発明によれば、検出対象画像を所定倍率により多重解像度化して解像度が異なる複数の解像度画像を生成し、部分画像を生成するウィンドウのサイズを各解像度画像間の所定倍率を補間する複数のサイズを有するものとしたものである。このため、特許文献1に記載された手法のように、多重解像度化する際の解像度の差異を細かくする必要がなくなり、その結果、検出対象画像を多重解像度化する際の演算量を低減でき、よってオブジェクト検出を高速に行うことができる。
【0020】
また、特許文献1に記載された手法と比較して解像度画像の数が少なくなるため、各解像度画像に照明補正を行う際の演算量を低減することができる。
【0021】
また、検出対象画像を多重解像度化する際の解像度の差異を比較的大きくしつつも、部分画像を生成するウィンドウのサイズを各解像度画像間の所定倍率を補間する複数のサイズを有するものとしているため、検出対象画像に含まれる各種サイズのオブジェクトを精度良く検出することができる。
【0022】
また、非特許文献1に記載された手法のように、判別器のスケールを変更する計算を行う必要がないため、オブジェクトの検出を高速かつ精度良く行うことができる。
【0023】
なお、本発明によるオブジェクト検出装置においては、前記複数のウィンドウのそれぞれを、前記所定倍率により多重解像度化された、解像度が異なる少なくとも1つのサブウィンドウを有するものとし、
前記判別器を、前記サブウィンドウのサイズに対応する異なるサイズを有し、前記同一の照明補正がなされた複数のサンプル画像により、前記オブジェクトの分布に係る特徴量を前記サブウィンドウのサイズ毎にさらに学習させたものとしてもよい。
【0024】
これにより、複数の解像度画像の解像度と、複数のウィンドウおよび複数のウィンドウのそれぞれのサブウィンドウの解像度とを対応づけることができることとなる。
【0025】
この場合、本発明によるオブジェクト検出装置においては、検出対象の解像度画像の注目画素に前記複数のウィンドウのうちの所定サイズのウィンドウを設定するとともに、該検出対象の解像度画像よりも解像度が低い解像度画像の前記注目画素に対応する画素に、前記所定サイズのウィンドウのサブウィンドウを解像度順に設定し、
相対的に低い解像度のサブウィンドウにより生成した部分画像が前記オブジェクトの画像であるか否かの第1の判定を行い、
該第1の判定が肯定された場合にのみ、前記複数のウィンドウおよび/または該複数のウィンドウの前記相対的に低い解像度よりも高い解像度のサブウィンドウによる前記部分画像の生成および該部分画像が前記オブジェクトの画像であるか否かの判定を行うよう、前記部分画像生成手段および前記判定手段を制御する制御手段を備えるものとしてもよい。
【0026】
「注目画素」とは、特定種類のオブジェクトの検出の対象となる画素である。
【0027】
「所定サイズのウィンドウのサブウィンドウを解像度順に設定」するとは、最も解像度が高い、すなわち最も大きいサイズの解像度画像には、最も解像度が高い、すなわち最も大きいサイズのウィンドウを、次に大きいサイズの解像度画像には、最も大きいサイズのサブウィンドウのサイズよりも一段階小さいサイズのサブウィンドウを設定するというように、解像度画像のサイズに応じて順次小さいサイズのサブウィンドウを、各解像度画像の注目画素に対応する画素に設定することを意味する。
【0028】
これにより、第1の判定が否定された場合には、次の注目画素に所定ウィンドウを移動させて、次の段階の処理に進むことができる。ここで、低い解像度の解像度画像および低い解像度のサブウィンドウを用いての部分画像の生成および第1の判定は、部分画像の画素数が小さいため、その演算量が少ない。したがって、効率よく注目画素の位置を変更することができ、その結果、部分画像がオブジェクトの画像であるか否かの判定を高速に行うことができる。
【0029】
また、この場合、本発明によるオブジェクト検出装置においては、前記制御手段を、前記所定サイズのウィンドウのサブウィンドウのうち、前記解像度が2番目に高いサブウィンドウにより生成された部分画像に対する前記判定が肯定された場合、前記複数のウィンドウのすべてについての最高解像度の前記サブウィンドウにより複数の部分画像を生成し、
該複数の部分画像が前記オブジェクトの画像であるか否かの第2の判定を行い、
該第2の判定により、前記オブジェクトの画像であることの確度が最も高い部分画像を生成したサブウィンドウに対応するウィンドウのみにより前記部分画像を生成し、
該部分画像が前記オブジェクトの画像であるか否かの第3の判定を行うよう、前記部分画像生成手段および前記判定手段を制御する手段としてもよい。
【0030】
「特定種類のオブジェクトの画像であることの確度」とは、判別器を用いた判定手段による特定種類のオブジェクトであるか否かの判別は、判別器の出力が所定の閾値以上であるか否かにより行われるものであることから、第2の判定によるウィンドウサイズ毎の判別器の出力を「特定種類のオブジェクトの画像であることの確度」として用いることができる。
【0031】
これにより、効率よくかつ精度良く高速にオブジェクトの検出を行うことができる。
【0032】
また、本発明によるオブジェクト検出装置においては、前記複数の解像度画像に対して、前記照明補正を行う照明補正手段をさらに備えるものとしてもよい。
【0033】
これにより、オブジェクトを精度良く検出することができる。
【0034】
本発明によるオブジェクト検出方法は、特定種類のオブジェクトを検出する対象となる検出対象画像を所定倍率により多重解像度化して解像度が異なる複数の解像度画像を取得し、
前記複数の解像度画像上に、前記各解像度画像間の前記所定倍率を補間するサイズを有する複数のウィンドウを走査させて部分画像を生成し、
前記複数のウィンドウのサイズに対応する異なるサイズを有し、同一の照明補正がなされた複数のサンプル画像により、前記オブジェクトの分布に係る特徴量を前記ウィンドウのサイズ毎に学習させた、前記部分画像に係る前記特徴量を用いて該部分画像が前記オブジェクトの画像であるか否かを判別する判別器を備えた判定手段により、前記部分画像に基づいて該部分画像の画素値の分布に係る特徴量を算出し、該特徴量を用いて前記部分画像が前記オブジェクトの画像であるか否かを判定することを特徴とするものである。
【0035】
なお、本発明によるオブジェクト検出方法をコンピュータに実行させるためのプログラムとして提供してもよい。
【発明の効果】
【0036】
本発明によれば、オブジェクト検出のための演算量を低減して、高速かつ精度良くオブジェクトを検出することができる。
【図面の簡単な説明】
【0037】
【図1】顔検出システムの構成を示すブロック図
【図2】検出対象画像の多重解像度化の工程を示す図
【図3】局所正規化処理の概念を示す図
【図4】照明補正部における処理を示すフローチャート
【図5】顔検出部の構成を示す概略ブロック図
【図6】複数サイズのウィンドウの生成を説明するための図
【図7】判別器群の構成を示すブロック図
【図8】判別器における大局的な処理を示すフローチャート
【図9】弱判別器における処理を示すフローチャート
【図10】弱判別器における特徴量の算出を説明するための図
【図11】顔検出システムにおいて行われる処理を示すフローチャート
【図12】ウィンドウの設定を説明するための図(その1)
【図13】ウィンドウの設定を説明するための図(その2)
【図14】詳細な検出処理のフローチャート
【図15】顔のサイズおよび位置の正規化を説明するための図
【図16】判別器の学習方法を示すフローチャート
【図17】弱判別器のヒストグラムを導出する方法を示す図
【図18】本実施形態において動画像から顔を検出する場合の処理を示すフローチャート
【図19】動体検出を説明するための図
【図20】従来の多重解像度化の工程を示す図
【発明を実施するための形態】
【0038】
以下、図面を参照して本発明の実施形態について説明する。図1は本発明のオブジェクト検出装置を適用した顔検出システムの構成を示す概略ブロック図である。この顔検出システムは、デジタル画像中に含まれる顔を検出するものである。図1に示すように、顔検出システム1は、顔を検出する対象となる検出対象画像S0を多重解像度化して解像度が異なる複数の画像(以下、解像度画像という)からなる解像度画像群S1(=S1_1,S1_2,・・・,S1_n)を得る多重解像度化部10と、後に実行される顔検出処理の精度向上を目的とした前処理として、各解像度画像に対して照明補正処理を行って照明補正済みの解像度画像群S1′(=S1′_1,S1′_2,・・・,S1′_n)を得る照明補正部20と、全体正規化済みの解像度画像群S1′の各々に対して顔検出処理を施すことにより、解像度画像群S1′の各解像度画像に含まれる顔を表す画像(以下、顔画像という)S2を検出する顔検出部30とを備える。
【0039】
多重解像度化部10は、検出対象画像S0の解像度(画像サイズ)を変換することにより、その解像度を所定の解像度、例えば、VGAサイズ(640×480画素)の矩形サイズの画像に規格化し、規格化済みの検出対象画像S0′を得る。そして、この規格化済みの検出対象画像S0′を基本としてさらに解像度変換を行うことにより、解像度の異なる複数の解像度画像を生成し、解像度画像群S1を得る。このような解像度画像群を生成する理由は、通常、検出対象画像に含まれる顔の大きさは不明であるが、一方、検出しようとする顔の大きさ(画像サイズ)は、後述の判別器の生成方法と関連して一定の大きさに固定されるため、大きさの異なる顔を検出するためには、解像度の異なる画像上で位置をずらしながら後述する各種サイズの部分画像をそれぞれ切り出し、その部分画像が顔か非顔かを判別してゆく必要があるためである。
【0040】
具体的には、図2に示すように、規格化済みの検出対象画像S0′を基本となる解像度画像S1_1とし、解像度画像S1_1に対して2の−1乗倍サイズの解像度画像S1_2と、解像度画像S1_2に対して2の−1乗倍サイズ(解像度画像S1_1に対しては2の−2乗倍サイズ)の解像度画像S1_3と、解像度画像S1_3に対して2の−1乗倍サイズ(解像度画像S1_1に対しては2の−3乗倍サイズ)の解像度画像S1_4とを生成する。
【0041】
これにより、解像度画像S1_1が640×480画素の矩形サイズである場合、解像度画像S1_2,S1_3,・・・は、短辺がそれぞれ、320×240画素、160×120画素、80×60画素・・・の矩形サイズとなり、2の−1乗倍ずつ縮小された複数の解像度画像を生成することができる。なお、本実施形態においては、最も解像度が大きい解像動画像S1_1を第1の階層の解像度画像S1_1と称し、以下、解像度が低くなるにつれて第2の階層の解像度画像S1_2、第3の階層の解像度画像S1_3・・・と称するものとする。
【0042】
照明補正部20は、解像度画像群S1の各々に対して、画像上の局所的な領域におけるコントラストのばらつきを抑制するための局所正規化処理を施すことにより照明補正を行うものである。すなわち、照明補正部20は、各解像度画像内で所定サイズの局所領域を走査しながらその局所領域における画素値の分散の程度を一定レベルに揃えるべく、画素値を変換する。具体的には、各解像度画像における各局所領域について、輝度を表す画素値の分散の程度が所定レベル以上である局所領域に対しては、この分散の程度を上記の所定レベルより高い一定レベルに近づける第1の輝度階調変換処理を施し、画素値の分散の程度が上記の所定レベル未満である局所領域に対しては、この分散の程度を上記の一定レベルより低いレベルに抑える第2の輝度階調変換処理を施すものである。
【0043】
図3は局所正規化処理の概念を示した図であり、図4は照明補正部20における処理を示すフローチャートである。また、式(1),(2)は、この局所正規化処理のための画素値の階調変換の式である。
【数1】

【0044】
ここで、Xは注目画素の画素値、X′は注目画素の変換後の画素値、mlocalは注目画素を中心とする局所領域における画素値の平均、Vlocalはこの局所領域における画素値の分散、SDlocalはこの局所領域における画素値の標準偏差、(C1×C1)は上記の一定レベルに対応する基準値、C2は上記の所定レベルに対応する閾値、SDcは所定の定数である。なお、本実施形態において、輝度の階調数は8bitとし、画素値のとり得る値は0から255とする。
【0045】
照明補正部20は、図4に示すように、各解像度画像S1−i(i=1〜n)における1つの画素を注目画素として設定し(ステップST1)、この注目画素を中心とする所定の大きさ、例えば9×9画素サイズの局所領域における画素値の分散Vlocalを算出し(ステップST2)、分散Vlocalが上記所定のレベルに対応する閾値C2以上であるか否かを判定する(ステップST3)。ステップST3において、分散Vlocalが閾値C2以上であると判定された場合には、上記第1の輝度階調変換処理として、分散Vlocalが上記一定のレベルに対応する基準値(C1×C1)より大きいほど、注目画素の画素値Xと平均mlocalとの差を小さくし、分散mlocalが基準値(C1×C1)より小さいほど、注目画素の画素値Xと平均mlocalとの差を大きくする階調変換を式(1)にしたがって行う(ステップST4)。
【0046】
一方、ステップST3において、分散Vlocalが閾値C2未満であると判定された場合には、上記第2の輝度階調変換処理として、分散Vlocalによらない線形な階調変換を式(2)にしたがって行う(ステップST5)。そして、ステップST1で設定した注目画素が最後の画素であるか否かを判定する(ステップST6)。ステップST6において、その注目画素が最後の画素でないと判定された場合には、ステップST1に戻り、同じ部分画像上の次の画素を注目画素として設定する。一方、ステップST6において、その注目画素が最後の画素であると判定された場合には、その部分画像に対する局所正規化を終了する。このように、上記ステップST1からST6の処理を繰り返すことにより、解像度画像S1_i全体に局所正規化処理が施された解像度画像S1′_iを得る。
【0047】
なお、上記の所定レベルは、局所領域における全体または一部の輝度に応じて変化させるようにしてもよい。例えば、上記の、注目画素毎に階調変換を行う正規化処理において、閾値C2を注目画素の画素値に応じて変化させるようにしてもよい。すなわち、上記の所定レベルに対応する閾値C2を、注目画素の輝度が相対的に高いときにはより高く設定し、その輝度が相対的に低いときにはより低く設定するようにしてもよい。
【0048】
顔検出部30は、照明補正部20により照明補正がなされた解像度画像群S1′の各々に対して顔検出処理を施し、各解像度画像における顔画像S2を検出するものである。図5は顔検出部30の構成を示す概略ブロック図である。図5に示すように、顔検出部30は、後述の各部を制御して顔検出処理におけるシーケンス制御を主に行う検出制御部31と、解像度画像群S1′の中から顔検出処理に供する解像度画像S1′_iをサイズの大きいものから順に順次選択する解像度画像選択部32と、解像度画像選択部32により選択された解像度画像において、顔画像であるか否かの判別対象となる部分画像Bを切り出すウィンドウを、その位置をずらしながら順次設定するウィンドウ設定部33と、その切り出された部分画像Bが顔画像であるか否かを判別する判別器群34とから構成されている。
【0049】
検出制御部31は、解像度画像群S1′の各画像に対して、顔画像S2を検出するという顔検出処理を行うべく、解像度画像選択部32およびウィンドウ設定部33を制御するものである。例えば、適宜、解像度画像選択部32に対して解像度画像の選択を指示したり、ウィンドウ設定部33に対してウィンドウの設定条件を指示したり、得られた検出結果を判別器群34に出力したりする。なお、ウィンドウ設定条件には、ウィンドウを設定する画像上の範囲、ウィンドウの移動間隔(検出の粗さ)等が含まれる。
【0050】
解像度画像選択部32は、検出制御部31の制御により、解像度画像群S1′の中から顔検出処理に供する解像度画像をサイズの大きい順に(解像度の細かい順に)順次選択するものである。なお、本実施形態における顔検出の手法が、各解像度画像上で順次切り出された部分画像Bについてその部分画像Bが顔画像であるか否かを判別し、顔であると判別した部分画像Bの領域を抽出することにより、検出対象画像S0における顔を検出する手法であるから、この解像度画像選択部32は、検出対象画像S0における検出すべき顔の大きさを毎回変えながら設定するものであって、検出すべき顔の大きさを小から大へ変えながら設定するものと同等なものということができる。
【0051】
ウィンドウ設定部33は、検出制御部31により設定されたウィンドウ設定条件に基づいて、解像度画像選択部32により選択された解像度画像上で各種サイズのウィンドウを移動させながら順次設定する。本実施形態においては、各種サイズのウィンドウは以下のように生成される。まず本実施形態においては、32×32画素サイズのウィンドウが用意されている。ここで、解像度画像群S1間の解像度の相違は1/2であるため、単一サイズのウィンドウを用いるのみでは、大きさが異なる顔を精度良く検出することができない。
【0052】
このため、本実施形態においては、この32×32画素サイズのウィンドウを基本として、複数サイズのウィンドウが生成されている。図6は複数サイズのウィンドウの生成を説明するための図である。図6に示すように、本実施形態においては、32×32画素サイズのウィンドウW1_1を基準として、解像度画像群S1間の解像度の相違を補間するサイズの3つのウィンドウW2_1,W3_1,W4_1を生成する。ここで、解像度画像群S1の各解像度画像間の倍率の相違は1/2倍であるため、ウィンドウW2_1はウィンドウW1_1に対して2の−1/4乗倍サイズを有し、ウィンドウW3_1はウィンドウW2_1に対して2の−1/4乗倍サイズ(ウィンドウW1_1に対しては2の−2/4乗倍サイズ)を有し、ウィンドウW4_1はウィンドウW3_1に対して2の−1/4乗倍サイズ(ウィンドウW1_1に対しては2の−3/4乗倍サイズ)を有する。ここで、ウィンドウW1_1は32×32画素サイズであるため、ウィンドウW2_1は27×27画素サイズ、ウィンドウW3_1は23×23画素サイズ、ウィンドウW4_1は19×19画素サイズを有するものとなる。
【0053】
さらに本実施形態においては、ウィンドウW1_1〜W4_1のそれぞれを、1/2倍サイズに縮小したウィンドウを生成し、それら縮小した解像度画像をさらに1/2倍サイズに縮小したウィンドウを生成する、といった処理を繰り返し行い、複数のウィンドウを生成する。本実施形態においては、ウィンドウW1_1〜W4_1のそれぞれを2の−1乗倍サイズに縮小したウィンドウW1_2〜W4_2、ウィンドウW1_1〜W4_1のそれぞれを2の−2乗倍サイズに縮小したウィンドウW1_3〜W4_3を生成する。
【0054】
ここで、ウィンドウW1_1は32×32画素サイズであるため、ウィンドウW1_2,W1_3はそれぞれ16×16画素サイズ、8×8画素サイズを有するものとなる。また、ウィンドウW2_1は27×27画素サイズであるため、ウィンドウW2_2,W2_3はそれぞれ13×13画素サイズ、6×6画素サイズを有するものとなる。ウィンドウW3_1は23×23画素サイズであるため、ウィンドウW3_2,W3_3はそれぞれ11×11画素サイズ、5×5画素サイズを有するものとなる。ウィンドウW4_1は19×19画素サイズであるため、ウィンドウW4_2,W4_3はそれぞれ9×9画素サイズ、4×4画素サイズを有するものとなる。
【0055】
ここで、以降の説明においては、ウィンドウW1_1,W2_1,W3_1およびW4_1を第1〜第4のウィンドウと称し、第1のウィンドウW1_1および第1のウィンドウW1_1から生成されるサイズが小さいウィンドウW1_2,W1_3,W1_4を含む複数のウィンドウを第1のウィンドウ群W1、第2のウィンドウW2_1および第2のウィンドウW2_1から生成されるサイズが小さいウィンドウW2_2,W2_3,W2_4を含む複数のウィンドウを第2のウィンドウ群W2、第1のウィンドウW3_1および第3のウィンドウW3_1から生成されるサイズが小さいウィンドウW3_2,W3_3,W3_4を含む複数のウィンドウを第3のウィンドウ群W3、第4のウィンドウW4_1および第4のウィンドウW4_1から生成されるサイズが小さいウィンドウW4_2,W4_3,W4_4を含む複数のウィンドウを第4のウィンドウ群W4と称するものとする。また、第1から第4のウィンドウ群W1〜W4において、解像度が高い(すなわちサイズが大きい)ウィンドウから順に、第1の階層のウィンドウ、第2の階層のウィンドウ、第3の階層のウィンドウと称するものとする。なお、ウィンドウの設定および顔の判別の処理については後述する。
【0056】
判別器群34は、部分画像Bが顔画像であるか否かを判別する判別器群であり、解像度画像における顔画像を検出するために用いられる。図7は判別器群34の構成を示す図である。図7に示すように判別器群34は、検出可能な顔のサイズが異なる複数種類の判別器群、すなわち、部分画像Bを生成するための12個のウィンドウのサイズのそれぞれに対応する第1〜第12の判別器群34_1〜34_12を有する。なお、第1〜第3の判別器群34_1〜34_3がウィンドウW1_1〜W1_3のサイズに、第4〜第6の判別器群34_4〜34_6がウィンドウW2_1〜W2_3のサイズに、第7〜第9の判別器群34_7〜34_9がウィンドウW3_1〜W3_3のサイズに、第10〜第12の判別器群34_10〜34_12がウィンドウW4_1〜W4_3のサイズにそれぞれ対応する。そして、第1〜第3の判別器群34_1〜34_3が第3の判別器群34_3から順に直列に、第4〜第6の判別器群34_4〜34_6が第6の判別器群34_6から順に直列に、第7〜第9の判別器群34_7〜34_9が第9の判別器群34_9から順に直列に、第10〜第12の判別器群34_10〜34_12が第12の判別器群34_12から順に直列に結合している。さらに、それぞれ直列に結合された第1〜第3の判別器群34_1〜34_3、第4〜第6の判別器群34_4〜34_6、第7〜第9の判別器群34_7〜34_9、第10〜第12の判別器群34_10〜34_12が並列に結合されている。なお、第1〜第12の判別器群34_1〜34_12のそれぞれは、入力される部分画像Bのサイズに対応するサイズの顔を判別する。
【0057】
このように、第1〜第3の判別器群34_1〜34_3、第4〜第6の判別器群34_4〜34_6、第7〜第9の判別器群34_7〜34_9、第10〜第12の判別器群34_10〜34_12について、小さいサイズのウィンドウWk_3(k=1〜4)により切り出された部分画像Bが顔画像であるかを否かを判別する判別器群から順に直列に接続することにより、後述するように、小さいサイズのウィンドウWk_3(k=1〜4)により切り出された部分画像Bから、大きいサイズのウィンドウWk_1(k=1〜4)に向けて、順次判別を行うことが可能となる。
【0058】
また、判別器群34は、図7に示すように、複数の弱判別器WCが線形に結合したカスケード構造を有しており、弱判別器は、部分画像Bの画素値(輝度)の分布に係る少なくとも1つの特徴量を算出し、この特徴量を用いて部分画像Bが顔画像であるか否かを判別するものである。
【0059】
ここで、判別器群34における具体的な処理について説明する。図8は判別器群34に含まれる各判別器群34_n(n=1〜12)における大局的な処理を示すフローチャートであり、図9はその中の各弱判別器による処理を示すフローチャートである。
【0060】
まず、1番目の弱判別器WCが、対応するサイズのウィンドウにより解像度画像S1′_i上で切り出された部分画像Bに対してこの部分画像Bが顔であるか否かを判別する(ステップSS1)。具体的には、1番目の弱判別器WCは、図10に示すように、解像度画像S1′_iから切り出された所定サイズの部分画像B(例えば32×32画素サイズ)の画像に対して、4近傍画素平均(画像を2×2画素サイズ毎に複数のブロックに区分し、各ブロックの4画素における画素値の平均値をそのブロックに対応する1つの画素の画素値とする処理)を行うことにより、16×16画素サイズの画像と、8×8画素サイズの縮小した画像を得、これら3つの画像の平面内に設定される所定の2点を1ペアとして、複数種類のペアからなる1つのペア群を構成する各ペアにおける2点間の画素値(輝度)の差分値をそれぞれ計算し、これらの差分値の組合せを特徴量とする(ステップSS1−1)。各ペアの所定の2点は、例えば、画像上の顔の濃淡の特徴が反映されるよう決められた縦方向に並んだ所定の2点や、横方向に並んだ所定の2点とする。そして、特徴量である差分値の組合せに応じて所定のスコアテーブルを参照してスコアを算出し(ステップSS1−2)、直前の弱判別器が算出したスコアに自己の算出したスコアを加算して累積スコアを算出する(ステップSS1−3)。なお、最初の弱判別器WC1では、直前の弱判別器がないので、自己の算出したスコアをそのまま累積スコアとする。この累積スコアが所定の閾値以上であるか否かによって部分画像が顔であるか否かを判別する(ステップSS1−4)。ここで、上記部分画像Bが顔と判別されたときには、次の弱判別器WC2による判別に移行し(ステップSS2)、部分画像Bが非顔と判別されたときには、部分画像は、即、非顔と判定され(ステップSSB)、処理が終了する。
【0061】
ステップSS2においても、ステップSS1と同様に、2番目の弱判別器WCが部分画像に基づいて画像上の特徴を表す上記のような特徴量を算出し(ステップSS2−1)、スコアテーブルを参照して特徴量からスコアを算出する(ステップSS2−2)。そして、自ら算出したスコアを直前の1番目の弱判別器WCが算出した累積スコアに加算して累積スコアを更新し(ステップSS2−3)、この累積スコアが所定の閾値以上であるか否かによって部分画像Bが顔であるか否かを判別する(ステップSS2−4)。ここでも、部分画像Bが顔と判別されたときには、次の3番目の弱判別器WCによる判別に移行し(ステップSS3)、部分画像Bが非顔と判別されたときには、部分画像Bは、即、非顔と判定され(ステップSSB)、処理が終了する。このようにして、判別器を構成する全N個の弱判別器WCにおいて部分画像Bが顔であると判別されたときには、その部分画像Bを最終的に顔画像と判定する(ステップSSA)。
【0062】
なお、本実施形態において、検出制御部31、解像度画像選択部32、ウィンドウ設定部33および判別器群34が、本発明の判定手段として機能する。
【0063】
次に、顔検出システム1における処理の流れについて説明する。図11は本実施形態による顔検出システムにおける処理の流れを示すフローチャートである。図11に示すように、多重解像度化部10に検出対象画像S0が入力されると(ステップST11)、多重解像度化部10が検出対象画像S0を多重解像度化し、複数の解像度画像からなる解像度画像群S1を生成する(ステップST12)。そして、照明補正部20が、解像度画像群S1の各々に対して照明補正を施し、照明補正済みの解像度画像群S1′を取得する(ステップST13)。
【0064】
顔検出部30は、検出制御部31からの指示を受けた解像度画像選択部32により、解像度画像群S1′の中から画像サイズの大きい順、すなわち、S1′_1,S1′_2,・・・,S1′_nの順に解像度画像S1′_iを選択する(ステップST14)。次に検出制御部31が、ウィンドウ設定部33に対して、ウィンドウを初期位置に、すなわち選択された解像度画像上の最初の注目画素にウィンドウを設定する指示を行う(ステップST15)。本実施形態においては、第1から第4のウィンドウ群W1〜W4のうち、まず中間のサイズの第3のウィンドウ群W3を解像度画像上に設定する。このため、本実施形態においては、まず第1の階層の解像度画像S1′_1から23×23画素サイズの顔が検出されることとなる。なお、第3のウィンドウ群W3に代えて、第2のウィンドウ群W2を選択された解像度画像上に設定してもよい。
【0065】
図12はウィンドウの設定を説明するための図である。なお、図12においては第1の階層の解像度画像S1′_1に対するウィンドウの設定を示す。図12に示すように、第1の階層の解像度画像S1′_1に対しては、第3のウィンドウ群W3のうちの第1の階層のウィンドウW3_1が、第2の階層の解像度画像S1′_2に対しては第2の階層のウィンドウW3_2が、第3の階層の解像度画像S1′_3に対しては第3の階層のウィンドウW3_3がそれぞれ設定される。ウィンドウ設定部33は、選択された解像度画像上に設定された3つのウィンドウのうち、最低階層のウィンドウ(ここではウィンドウW3_3)が設定された階層の解像度画像(ここでは第3の階層の解像度画像S1′_3)から部分画像Bを切り出し(ステップST16)、その部分画像を判別器群34に入力する(ステップST17)。
【0066】
なお、選択された解像度画像が第2の階層の解像度画像S1′_2である場合には、図13に示すように、第1の階層の解像度画像S1′_1に対してはウィンドウは設定されず、第2の階層の解像度画像S1′_2に対して第3のウィンドウ群W3のうちの第1の階層のウィンドウW3_1が、第3の階層の解像度画像S1′_2に対しては第2の階層のウィンドウW3_2が、第4の階層の解像度画像S1′_3に対しては第3の階層のウィンドウW3_3がそれぞれ設定される。そして、同様に最低階層のウィンドウW3_3が設定された階層の解像度画像(第4の階層の解像度画像S1′_4)から部分画像Bが切り出され、その部分画像Bが判別器群34に入力される。
【0067】
ここで、選択された解像度画像の階層が低くなると、選択された解像度画像の階層よりも低い階層の解像度画像数が1または0となることがあるため、すべての階層のウィンドウをすべての階層の解像度画像に設定できない場合があり得る。この場合、ステップST16の処理においては、設定されたウィンドウのうち、最低階層のウィンドウにより切り出されることとなる。例えば、選択された解像度画像が最低階層の解像度画像の場合、第1の階層のウィンドウのみしか選択された解像度画像に設定できないため、ステップST16の処理においては、第1の階層のウィンドウが最低階層のウィンドウとなる。
【0068】
判別器群34は、入力される部分画像Bに対して、上記の12種類の判別器のうちのウィンドウサイズが対応する判別器群を用いて判別を行い、検出制御部31がその判別結果Rを取得し(ステップST18)、判別結果Rが部分画像Bが顔であるというものであるか否かを判定する(ステップST19)。判別結果Rが部分画像Bが顔でないというものであった場合(ステップST19否定)、検出制御部31は、現在切り出された部分画像Bが最後の注目画素に位置する部分画像、すなわち最後の部分画像であるか否かを判定し(ステップST20)、部分画像Bが最後の部分画像でないと判定された場合には、ウィンドウを設定する位置を次の注目画素の位置(すなわち次の位置)に設定し(ステップST21)、ステップST16に戻って、ウィンドウ設定部33が新たな部分画像Bを切り出す。これにより、図12に示すようにウィンドウにより解像度画像S1′_iを走査しつつ、解像度画像S1′_iから顔画像を検出する。
【0069】
ここで、ステップST21におけるウィンドウの位置の設定は、第3階層のウィンドウW3_3を、第3階層のウィンドウW3_3が設定された階層の解像度画像上において1画素移動させて設定するものである。これにより、第2階層のウィンドウW3_2は、第2階層のウィンドウW3_2が設定された階層の解像度画像上において2画素移動されて設定されることとなり、第1階層のウィンドウW3_1は、第1階層のウィンドウW3_1が設定された階層の解像度画像上において4画素移動されて設定されることとなる。
【0070】
なお、部分画像Bが最後の部分画像であると判定された場合には、検出制御部31は、現在選択されている解像度画像S1′_iが最後に判定される画像、すなわち最後の解像度画像S1′_nであるか否かを判定し(ステップST22)、最後の解像度画像であると判定された場合には検出処理を終了し、検出結果を出力する(ステップST23)。一方、最後の解像度画像ではないと判定された場合には、ステップST14に戻り、解像度画像選択部32により、現在選択されている解像度画像S1′_iより1段階サイズが小さい解像度画像S1′_i+1が選択され、さらに顔画像の検出が実行される。
【0071】
また、検出結果の出力は、検出対象画像S1から顔が検出できなかった場合にはその旨を出力し、検出対象画像S1に顔が検出できた場合には、検出対象画像S0上における顔が検出された部分画像の位置の座標を出力する。
【0072】
一方、判別結果Rが部分画像Bが顔であるというものであった場合、検出制御部31はさらに詳細な検出処理を行う(ステップST24)。図14は詳細な検出処理のフローチャートである。詳細な検出処理においては、最低階層のウィンドウ(ここでは第3の階層のウィンドウW3_3)が設定された階層の解像度画像(ここでは第3の階層の解像度画像S1′_3)から切り出された部分画像Bが顔であると判別されていることから、さらに詳細な判別を行うために、最低階層のウィンドウよりも上位の階層数が2より大きいか否かを判定する(ステップST31)。ステップST31が肯定されると、ウィンドウ設定部33は、最低階層のウィンドウよりも一段階上位の階層、すなわち一段階サイズが大きいウィンドウが設定された階層の解像度画像から部分画像Bを切り出し(ステップST32)、その部分画像Bを判別器群34に入力する(ステップST33)。
【0073】
判別器群34は、入力される部分画像Bに対して、上記の12種類の判別器のうちのウィンドウサイズが対応する判別器群を用いて判別を行い、検出制御部31がその判別結果Rを取得し(ステップST34)、判別結果Rが部分画像Bが顔であるというものであるか否かを判別する(ステップST35)。判別結果Rが部分画像Bが顔でないというものであった場合、ステップST20の処理に進む。判別結果Rが部分画像Bが顔であるものである場合、ステップST31の処理に戻り、ステップST31からステップST35の処理を繰り返す。
【0074】
一方、ステップST31が否定されると、検出制御部31は、最低階層のウィンドウよりも上位の階層数が0であるか否かを判定する(ステップST36)。ステップST36が肯定されるとステップST20の処理に進む。ステップST36が否定されると、検出制御部31は、最低階層のウィンドウよりも上位の階層数が1であるか否かを判定する(ステップST37)。ステップST37が否定されると、最低階層のウィンドウよりも上位の階層の数が2であることから、ウィンドウ設定部33は、すべてのウィンドウ群W1〜W4の第2の階層のウィンドウW1_2,W2_2,W3_2,W4_2を、第3の階層のウィンドウが設定された階層の一段階上位の階層の解像度画像(ここでは第2の階層の解像度画像S1′_2)に設定する(すべてのウィンドウ群の第2の階層のウィンドウの設定、ステップST38)。なお、第2の階層のウィンドウW1_2,W2_2,W3_2,W4_2が設定される位置は、現在選択されている解像度画像S1′_iの次の階層の解像度画像S1′_i+1における、現在の注目画素の位置に対応する位置である。
【0075】
次いで、ウィンドウ設定部33は、設定された4つのウィンドウのそれぞれから順次部分画像B1_2,P2_2,P3_2,P4_2を切り出し(ステップST39)、部分画像B1_2,P2_2,P3_2,P4_2を判別器群34に順次入力する(ステップST40)。なお、ステップST40の処理は並列して行ってもよく、連続させて行ってもよい。判別器群34は、入力される部分画像B1_2,P2_2,P3_2,P4_2に対して、上記の12種類の判別器のうちのウィンドウサイズが対応する判別器群を用いて判別を行い、検出制御部31が各判別器群の累積スコアK1_2,K2_2,K3_2,K4_2を取得し(ステップST41)、累積スコアK1_2,K2_2,K3_2,K4_2のうち、最大累積スコアを決定する(ステップST42)。
【0076】
次いで、ウィンドウ設定部33は、最大累積スコアを得たウィンドウに対応する第1の階層のウィンドウWi_1を、現在選択されている解像度画像S1′_iに設定する(ステップST43)。例えば、ウィンドウW2_2により取得した累積スコアが最も大きい場合、第1の階層のウィンドウW2_1を解像度画像S1′_iに設定する。そしてウィンドウ設定部33は、設定したウィンドウにより解像度画像S1′_iから部分画像Bを切り出し(ステップST44)、その部分画像Bを判別器群34に入力する(ステップST45)。
【0077】
判別器群34は、入力される部分画像Bに対して、上記の12種類の判別器のうちのウィンドウサイズが対応する判別器群を用いて判別を行い、検出制御部31がその判別結果Rを取得し(ステップST46)、ステップST20の処理に進む。一方、ステップST37が肯定されると、ウィンドウ設定部33は、最低階層のウィンドウよりも一段階上位の階層(ここでは第1階層)のウィンドウが設定された階層の解像度画像から部分画像Bを切り出し(ステップST47)、その部分画像Bを判別器群34に入力し(ステップST48)、ステップST18の処理に進む。以上の処理を行うことにより、検出対象画像S0から種々のサイズの顔画像を検出することができる。
【0078】
次に、判別器の学習方法(生成方法)について説明する。なお、学習は、判別器の種類、すなわち、判別すべき顔のサイズ毎に行われる。
【0079】
学習の対象となるサンプル画像群は、ウィンドウ群W1〜W4のすべてのサイズ、すなわち、ウィンドウ群W1〜W4に含まれるウィンドウの12のサイズで規格化された、顔であることが分かっている複数のサンプル画像(顔サンプル画像群)と、顔でないことが分かっている複数のサンプル画像(非顔サンプル画像群)とからなる。
【0080】
顔であることが分かっているサンプル画像は、1つのサンプル画像につき、縦および/または横を0.7倍から1.2倍の範囲にて0.1倍単位で段階的に拡大縮小して得られる各サンプル画像に対し、平面上±15度の範囲にて3度単位で段階的に回転させて得られる複数の変形バリエーションを用いる。なおこのとき、顔のサンプル画像は、目の位置が所定の位置に来るように顔のサイズと位置を規格化し、上記の平面上の回転、拡大縮小は目の位置を基準として行うようにする。例えば、d×dサイズの正面顔のサンプル画像の場合においては、図15に示すように、両目の位置が、サンプル画像の最左上の頂点と最右上の頂点から、それぞれ、内側に1/4d、下側に1/4d移動した各位置とに来るように顔のサイズと位置を規格化し、また、上記の平面上の回転、拡大縮小は、両目の中間点を中心に行うようにする。
【0081】
このような顔サンプル画像群を、ウィンドウのサイズに応じてサイズが異なる12種類用意する。これら12種類の顔サンプル画像群の各々と非顔サンプル画像群とを用いて各種類毎に判別器の学習を行い、12種類の判別器を生成する。以下、その具体的な学習手法について説明する。
【0082】
図16は判別器の学習方法を示すフローチャートである。なお、顔サンプル画像群および非顔サンプル画像群を構成する各サンプル画像は、前もって、上記照明補正部20による照明補正処理と同一の局所正規化処理により照明補正が施されているものとする。
【0083】
これら各サンプル画像には、重みすなわち重要度が割り当てられる。まず、すべてのサンプル画像の重みの初期値が等しく1に設定される(ステップST51)。次に、サンプル画像およびその縮小画像の平面内に設定される所定の2点を1ペアとして複数のペアからなるペア群を複数種類設定したときの、この複数種類のペア群のそれぞれについて弱半別器が作成される(ステップST52)。ここで、それぞれの弱判別器とは、ウィンドウWで切り出された部分画像とその縮小画像の平面内に設定される所定の2点を1ペアとして複数のペアからなる1つのペア群を設定したときの、この1つのペア群を構成する各ペアにおける2点間の画素値(輝度)の差分値の組合せを用いて、顔の画像と顔でない画像とを判別する基準を提供するものである。本実施形態においては、1つのペア群を構成する各ペアにおける2点間の画素値の差分値の組合せについてのヒストグラムを弱判別器のスコアテーブルの基礎として使用する。
【0084】
図17を参照しながらある判別器の作成について説明する。図17の左側のサンプル画像に示すように、この判別器を作成するためのペア群を構成する各ペアの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)。
【0085】
これにより、画素値の差分値の組合せの数はnの5乗通りとなるため、画素値の差分値の組合せを表すデータ数を低減できる。
【0086】
同様に、顔でないことが分かっている複数のサンプル画像についても、ヒストグラムが作成される。なお、顔でないことが分かっているサンプル画像については、顔であることが分かっているサンプル画像上における上記各ペアの所定の2点の位置に対応する位置(同様に参照符号P1からP7を用いる)が用いられる。これらの2つのヒストグラムが示す頻度値の比の対数値をとってヒストグラムで表したものが、図17の一番右側に示す、弱判別器のスコアテーブルの基礎として用いられるヒストグラムである。この弱判別器のヒストグラムが示す各縦軸の値を、以下、判別ポイントと称する。この弱判別器によれば、正の判別ポイントに対応する、画素値の差分値の組合せの分布を示す画像は顔である可能性が高く、判別ポイントの絶対値が大きいほどその可能性は高まると言える。逆に、負の判別ポイントに対応する画素値の差分値の組合せの分布を示す画像は顔でない可能性が高く、やはり判別ポイントの絶対値が大きいほどその可能性は高まる。ステップST52では、判別に使用され得る複数種類のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せについて、上記のヒストグラム形式の複数の弱判別器が作成される。
【0087】
続いて、ステップST52で作成した複数の弱半別器のうち、画像が顔であるか否かを判別するのに最も有効な弱判別器が選択される。最も有効な弱判別器の選択は、各サンプル画像の重みを考慮して行われる。この例では、各弱判別器の重み付き正答率が比較され、最も高い重み付き正答率を示す弱判別器が選択される(ステップST53)。すなわち、最初のステップST53では、各サンプル画像の重みは等しく1であるので、単純にその弱判別器によって画像が顔であるか否かが正しく判別されるサンプル画像の数が最も多いものが、最も有効な弱判別器として選択される。一方、後述するステップST55において各サンプル画像の重みが更新された後の2回目のステップST53では、重みが1のサンプル画像、重みが1よりも大きいサンプル画像、および重みが1よりも小さいサンプル画像が混在しており、重みが1よりも大きいサンプル画像は、正答率の評価において、重みが1のサンプル画像よりも重みが大きい分多くカウントされる。これにより、2回目以降のステップST53では、重みが小さいサンプル画像よりも、重みが大きいサンプル画像が正しく判別されることに、より重点が置かれる。
【0088】
次に、それまでに選択した弱判別器の組合せの正答率、すなわち、それまでに選択した弱判別器を組み合せて使用して(学習段階では、弱判別器は必ずしも線形に結合させる必要はない)各サンプル画像が顔の画像であるか否かを判別した結果が、実際に顔の画像であるか否かの答えと一致する率が、所定の閾値を超えたか否かが確かめられる(ステップST54)。ここで、弱判別器の組合せの正答率の評価に用いられるのは、現在の重みが付けられたサンプル画像群でも、重みが等しくされたサンプル画像群でもよい。所定の閾値を超えた場合は、それまでに選択した弱判別器を用いれば画像が顔であるか否かを十分に高い確率で判別できるため、学習は終了する。所定の閾値以下である場合は、それまでに選択した弱判別器と組み合せて用いるための追加の弱判別器を選択するために、ステップST56へと進む。
【0089】
ステップST56では、直近のステップST53で選択された弱判別器が再び選択されないようにするため、その弱判別器が除外される。
【0090】
次に、直近のステップST53で選択された弱判別器では顔であるか否かを正しく判別できなかったサンプル画像の重みが大きくされ、画像が顔であるか否かを正しく判別できたサンプル画像の重みが小さくされる(ステップST55)。このように重みを大小させる理由は、次の弱判別器の選択において、既に選択された弱判別器では正しく判別できなかった画像を重要視し、それらの画像が顔であるか否かを正しく判別できる弱判別器が選択されるようにして、弱判別器の組合せの効果を高めるためである。
【0091】
続いて、ステップST53へと戻り、上記したように重み付き正答率を基準にして次に有効な弱判別器が選択される。
【0092】
以上のステップST53からS56を繰り返して、顔であるか否かを判別するのに適した弱判別器として、特定のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せに対応する弱判別器が選択されたところで、ステップST54で確認される正答率が閾値を超えたとすると、顔であるか否かの判別に用いる弱判別器の種類と判別条件とが確定され(ステップST57)、これにより学習を終了する。なお、選択された弱判別器は、その重み付き正答率が高い順に線形結合され、1つの判別器が構成される。また、各弱判別器については、それぞれ得られたヒストグラムを基に、画素値の差分値の組合せに応じてスコアを算出するためのスコアテーブルが生成される。なお、ヒストグラム自身をスコアテーブルとして用いることもでき、この場合、ヒストグラムの判別ポイントがそのままスコアとなる。
【0093】
このようにして、各顔サンプル画像群毎に学習を行うことにより、上述の12種類の判別器が生成される。
【0094】
なお、上記の学習手法を採用する場合において、弱判別器は、特定のペア群を構成する各ペアの所定の2点間の画素値の差分値の組合せを用いて顔の画像と顔でない画像とを判別する基準を提供するものであれば、上記のヒストグラムの形式のものに限られずいかなるものであってもよく、例えば2値データ、閾値または関数等であってもよい。また、同じヒストグラムの形式であっても、図17の中央に示した2つのヒストグラムの差分値の分布を示すヒストグラム等を用いてもよい。
【0095】
また、学習の方法としては上記手法に限定されるものではなく、ニューラルネットワーク等他のマシンラーニングの手法を用いることができる。
【0096】
このように、本実施形態の顔検出システムによれば、検出対象画像を多重解像度化する際に、特許文献1に記載された手法のように、多重解像度画像間の解像度の差異を細かくする必要がないため、検出対象画像を多重解像度化する際の演算量を低減でき、よって高速に顔を検出することができる。
【0097】
また、検出対象画像S0を多重解像度化する際の解像度の差異を特許文献1に記載された主要より大きくしつつも、部分画像を生成するウィンドウWを各解像度画像間の倍率を補間する複数のサイズを有するものとしているため、検出対象画像S0に含まれる各種サイズの顔を精度良く検出することができる。
【0098】
また、特許文献1に記載された手法と比較して解像度画像の数が少なくなるため、特許文献1に記載された手法と比較して、各解像度画像に照明補正を行う際の演算量を低減することができる。
【0099】
また、本実施形態によれば、判別器群34の学習に際して、照明補正部20と同一の照明補正がなされた複数のサンプル画像を用いているため、ウィンドウのサイズが異なっていても、サイズが異なる部分画像毎に照明補正を行う必要がなくなる。これにより、顔検出のための演算量を低減でき、その結果、高速に顔を検出することができる。
【0100】
また、非特許文献1に記載された手法のように、判別器群34を構成する弱判別器のスケールを変更する計算を行う必要がないため、顔の検出を高速かつ精度良く行うことができる。
【0101】
なお、本実施形態による顔検出システムを動画像からの顔検出に適用する場合、以下の処理が可能となる。図18は本実施形態において動画像から顔を検出する場合の処理を示すフローチャートである。なお、ここでは、動画像における処理対象のフレーム(現フレーム)ftと、処理対象フレームftの1つ前のフレーム(前フレーム)ft−1とを用いて処理を行うものとして説明する。
【0102】
まず検出制御部31は、前フレームft−1において顔が検出されているか否かを判定する(ステップST61)。前フレームft−1において顔が検出されていない場合には、現フレームftを検出対象画像として、上記図11および図14に示すフローチャートと同一の処理を行うべく、図11のステップST11の処理に進む。前フレームft−1において顔が検出されている場合、顔であると判別された部分画像Bの生成に使用したサイズのウィンドウ単位で、前フレームft−1と現フレームftとの対応する画素間の差の絶対値の総和(以下差分とする)を、各フレームft−1,ftの互いに対応する階層の解像度画像間で算出し(ステップST62)、ウィンドウ単位で前フレームft−1と現フレームftとの間で移動した物体、すなわち動体が存在するか否かを判定する(ステップST63)。
【0103】
図19は差分の算出を説明するための図である。図19に示すように、前フレームft−1において顔の検出に使用したウィンドがウィンドウW2_1である場合、前フレームft−1および現フレームftの間において、ウィンドウW2_1を走査しつつ、対応する位置のウィンドウW2_1(t−1),W2_1(t)の差分を算出することにより動体が存在するか否かを判定する。このように、ウィンドウ単位で差分を算出することにより、画素単位で差分を算出して動体を検出する場合よりも演算時間を短縮することができる。
【0104】
なお、ウィンドウW2_1(t−1),W2_1(t)の差分を算出する際に、ウィンドウW2_1(t−1),W2_1(t)内のすべての画素の差分を算出してもよいが、ウィンドウサイズに対応する各判別器群34_j(j=1〜12)を構成する弱判別器のうち、特定の弱判別器に入力される特徴量を算出するために使用する画素位置のみを用いて差分を算出するようにしてもよい。例えば、ウィンドウW2_1に対応する判別器群34_4のある弱判別器に入力される特徴量が、図19に示す3つの画素位置P11〜P13の画素値である場合、ウィンドウW2_1(t−1),W2_1(t)における、各画素位置P11〜P13間の差分を算出して動体を検出するようにしてもよい。これにより、動体検出のための演算を大幅に低減して、動体を高速に検出することができる。
【0105】
ステップST63が否定されると、検出制御部31は、現フレームftを検出対象画像として、上記図11および図14に示すフローチャートと同一の処理を行うべく、図11のステップST11の処理に進む。ステップST63が肯定されると、検出制御部31は、現フレームftにおける動体の領域およびその近傍の領域に対してのみ、上記図11および図14と同様の検出処理を行い(ステップST64)、検出結果を出力し(ステップST65)、検出対象のフレームを次のフレームに変更し(ステップST66)、ステップST61に戻る。
【0106】
このように、動画像の場合には、まず動体検出処理を行うことにより、動体の位置を推定し、推定した動体およびその近傍の領域においてのみ顔の検出を行うようにすることができるため、効率よく顔の検出を行うことができる。とくにウィンドウ単位で動体検出処理を行うことにより、演算量を低減して、高速に動体を検出することができる。
【0107】
なお、上記実施形態においては、検出対象を人物の顔としているが、人物の手等の他のオブジェクトを検出するようにしてもよい。この場合、判別器はオブジェクトを含むサンプル画像群とオブジェクトを含まないサンプル画像群とを用いて学習を行えばよい
また、上記実施形態においては、照明補正部20により照明補正処理を行っているが、照明補正は本発明に必須のものではない。
【0108】
以上、本発明の実施形態に係る顔検出システムについて説明したが、この顔検出システムのうちの本発明の顔検出装置に対応する部分における各処理をコンピュータに実行させるためのプログラムも、本発明の実施形態の1つである。また、そのようなプログラムを記録したコンピュータ読取可能な記録媒体も、本発明の実施形態の1つである。
【符号の説明】
【0109】
1 顔検出システム
10 多重解像度化部
20 照明補正部
30 顔検出部
31 検出制御部
32 解像度画像選択部
33 ウィンドウ設定部
34 判別器群

【特許請求の範囲】
【請求項1】
特定種類のオブジェクトを検出する検出対象画像を所定倍率により多重解像度化して解像度が異なる複数の解像度画像を取得する多重解像度処理手段と、
前記複数の解像度画像上に、前記各解像度画像間の前記所定倍率を補間するサイズを有する複数のウィンドウを走査させて部分画像を生成する部分画像生成手段と、
前記部分画像に基づいて、該部分画像の画素値の分布に係る特徴量を算出し、該特徴量を用いて前記部分画像が前記オブジェクトの画像であるか否かを判定する判定手段とを備え、
前記判定手段が、前記複数のウィンドウのサイズに対応する異なるサイズを有し、同一の照明補正がなされた複数のサンプル画像により、前記オブジェクトの分布に係る特徴量を前記ウィンドウのサイズ毎に学習させた、前記部分画像に係る前記特徴量を用いて該部分画像が前記オブジェクトの画像であるか否かを判別する判別器を備えたものであることを特徴とするオブジェクト検出装置。
【請求項2】
前記複数のウィンドウのそれぞれが、前記所定倍率により多重解像度化された、解像度が異なる少なくとも1つのサブウィンドウを有し、
前記判別器が、前記サブウィンドウのサイズに対応する異なるサイズを有し、前記同一の照明補正がなされた複数のサンプル画像により、前記オブジェクトの分布に係る特徴量を前記サブウィンドウのサイズ毎にさらに学習させたものであることを特徴とする請求項1記載のオブジェクト検出装置。
【請求項3】
検出対象の解像度画像の注目画素に前記複数のウィンドウのうちの所定サイズのウィンドウを設定するとともに、該検出対象の解像度画像よりも解像度が低い解像度画像の前記注目画素に対応する画素に、前記所定サイズのウィンドウのサブウィンドウを解像度順に設定し、
相対的に低い解像度のサブウィンドウにより生成した部分画像が前記オブジェクトの画像であるか否かの第1の判定を行い、
該第1の判定が肯定された場合にのみ、前記複数のウィンドウおよび/または該複数のウィンドウの前記相対的に低い解像度よりも高い解像度のサブウィンドウによる前記部分画像の生成および該部分画像が前記オブジェクトの画像であるか否かの判定を行うよう、前記部分画像生成手段および前記判定手段を制御する制御手段を備えたことを特徴とする請求項2記載のオブジェクト検出装置。
【請求項4】
前記制御手段は、前記所定サイズのウィンドウのサブウィンドウのうち、前記解像度が2番目に高いサブウィンドウにより生成された部分画像に対する前記判定が肯定された場合、前記複数のウィンドウのすべてについての最高解像度の前記サブウィンドウにより複数の部分画像を生成し、
該複数の部分画像が前記オブジェクトの画像であるか否かの第2の判定を行い、
該第2の判定により、前記オブジェクトの画像であることの確度が最も高い部分画像を生成したサブウィンドウに対応するウィンドウのみにより前記部分画像を生成し、
該部分画像が前記オブジェクトの画像であるか否かの第3の判定を行うよう、前記部分画像生成手段および前記判定手段を制御する手段であることを特徴とする請求項3記載のオブジェクト検出装置。
【請求項5】
前記複数の解像度画像に対して、前記照明補正を行う照明補正手段をさらに備えたことを特徴とする請求項1から4のいずれか1項記載のオブジェクト検出装置。
【請求項6】
特定種類のオブジェクトを検出する検出対象画像を所定倍率により多重解像度化して解像度が異なる複数の解像度画像を取得し、
前記複数の解像度画像上に、前記各解像度画像間の前記所定倍率を補間するサイズを有する複数のウィンドウを走査させて部分画像を生成し、
前記複数のウィンドウのサイズに対応する異なるサイズを有し、同一の照明補正がなされた複数のサンプル画像により、前記オブジェクトの分布に係る特徴量を前記ウィンドウのサイズ毎に学習させた、前記部分画像に係る前記特徴量を用いて該部分画像が前記オブジェクトの画像であるか否かを判別する判別器を備えた判定手段により、前記部分画像に基づいて該部分画像の画素値の分布に係る特徴量を算出し、該特徴量を用いて前記部分画像が前記オブジェクトの画像であるか否かを判定することを特徴とするオブジェクト検出方法。
【請求項7】
特定種類のオブジェクトを検出する検出対象画像を所定倍率により多重解像度化して解像度が異なる複数の解像度画像を取得する手順と、
前記複数の解像度画像上に、前記各解像度画像間の前記所定倍率を補間するサイズを有する複数のウィンドウを走査させて部分画像を生成する手順と、
前記複数のウィンドウのサイズに対応する異なるサイズを有し、同一の照明補正がなされた複数のサンプル画像により、前記オブジェクトの分布に係る特徴量を前記ウィンドウのサイズ毎に学習させた、前記部分画像に係る前記特徴量を用いて該部分画像が前記オブジェクトの画像であるか否かを判別する判別器を備えた判定手段により、前記部分画像に基づいて該部分画像の画素値の分布に係る特徴量を算出し、該特徴量を用いて前記部分画像が前記オブジェクトの画像であるか否かを判定する手順とを有することを特徴とするオブジェクト検出方法をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2011−113168(P2011−113168A)
【公開日】平成23年6月9日(2011.6.9)
【国際特許分類】
【出願番号】特願2009−267215(P2009−267215)
【出願日】平成21年11月25日(2009.11.25)
【出願人】(306037311)富士フイルム株式会社 (25,513)
【復代理人】
【識別番号】100104189
【弁理士】
【氏名又は名称】福尾 勲将
【Fターム(参考)】