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