説明

画像処理装置、画像処理方法、およびプログラム

【課題】顔検出を行う場合に、誤検出を制御し、更に検出時間を短縮する。
【解決手段】画像に含まれる顔を検出する検出器を有する画像処理装置において、検出する顔のサイズに応じて、検出時の検出条件を変更し、検出する顔のサイズが小さいサイズの場合には、顔検出に用いられる閾値を厳しく設定することで、検出する顔のサイズが小さい場合の誤検出を抑制する。また、顔のサイズが小さい場合には検出器によって顔でないと早期に判断されるため高速な検出処理を実現する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は顔を検出する顔検出処理を行う画像処理装置、画像処理方法およびプログラムに関する。
【背景技術】
【0002】
画像から特定の被写体パターンを自動的に検出する画像処理方法は有用であり、例えば人間の顔の判定に利用することができる。このような方法は、通信会議、マン・マシン・インタフェース、セキュリティ、人間の顔を追跡するためのモニタ・システム、画像圧縮などの多くの分野で使用することができる。
【0003】
このように画像から顔検出する技術としては、例えば次のような方式がある。すなわち、いくつかの顕著な特徴とその特徴間の固有の幾何学的位置関係を利用する方式、人間の顔の対称的特徴や人間の顔色の特徴を利用したテンプレート・マッチング方式などがある。さらに、ニューラル・ネットワークなどを利用することによって、人間の顔を検出する方式が知られている。
【0004】
ところで、画像から顔を検出する場合には、被写体が必ずしも直立正面向きに映っているわけではなく、また、カメラを使って任意の方向に任意の倍率で撮影するため、顔が取りうる様々な角度、サイズに対応する必要がある。そのため、検出器の角度、サイズおよび検出位置を少しずつ変更しつつ、検出処理を繰り返す必要がある。
【0005】
しかしながら、膨大な数の角度やサイズの組み合わせに関してその全てに対して検出処理を行うとすると、処理に長時間を要してしまう事態が発生してしまう。このため、探索範囲を制限して検出処理を削減する手法が提案されている。例えば、最初の検出結果から顔の角度やサイズを限定して探索範囲を制限する手法(特許文献1参照)、連続撮影画像に対して1枚目の検出結果から顔の角度やサイズを予測して探索範囲を制限する手法(特許文献2参照)が提案されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007−233517号公報
【特許文献2】特開2009−026299号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1の手法では最初の検出結果が誤検出であった場合、正確な顔領域を検出することができない。また、特許文献2の手法では連続して撮影していない画像に対しては探索範囲を制限することができず、処理時間を短縮することができない。そこで、誤検出を抑えつつ、検出処理の時間を短縮する適切な手法による顔検出処理が求められている。
【0008】
本発明は、検出する顔のサイズに応じて検出精度が異なるメリハリのついた高速な顔検出処理を実現することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本発明の画像処理装置は、前記検出する顔のサイズを設定する設定手段と、前記設定された顔のサイズに応じて顔検出の検出条件を変更する変更手段と、前記変更された検出条件を前記検出器に適用し、該適用された検出器を用いて前記画像に含まれる顔を検出する検出手段とを備えることを特徴とする。
【発明の効果】
【0010】
本発明によれば、検出する顔のサイズに応じて顔検出の検出条件を変更することによって、検出する顔のサイズに応じて検出精度が異なるメリハリのついた高速な顔検出処理を実現することができる。
【図面の簡単な説明】
【0011】
【図1】第1実施形態における画像処理装置のハードウェア構成例を説明するブロック図である。
【図2】第1実施形態における顔の検出処理フローを説明するフローチャートである。
【図3】第1実施形態における画像処理装置の構成例を説明するブロック図である。
【図4】第1実施形態における検出器の変換方法例を説明する図である。
【図5】第1実施形態における検出条件変更量をテーブルにより設定する設定例を説明する図である。
【図6】第1実施形態における画像処理の処理フローを説明するフローチャートである。
【図7】第2実施形態における画像処理装置の構成例を説明するブロック図である。
【図8】第2実施形態における画像処理の処理フローを説明するフローチャートである。
【図9】第3実施形態における画像処理装置の構成例を説明するブロック図である。
【図10】第3実施形態における検出器選択例を説明する図である。
【図11】第3実施形態における画像処理の処理フローを説明するフローチャートである。
【図12】弱判別器内に解析する矩形領域を設定する例を説明する図である。
【図13】弱判別器を直列に接続して強判別器を実現する例を説明する図である。
【図14】検出する顔サイズが小さいほど誤検出する可能性が高くなる例を説明するための図である。
【図15】検出する顔サイズによって誤検出する可能性が高くなることを検証した実験例を説明するための図である。
【図16】検出する顔の定義を説明するための図である。
【発明を実施するための形態】
【0012】
以下、添付の図面を参照して本発明の好適な実施形態について説明する。以下で説明する各実施形態においては入力された画像に顔があるか否かを判定する画像処理装置の例を示す。各実施形態の説明を簡単にするために、入力された画像は、顔があれば回転していないと仮定する。なお、画像及び/又は検出器を回転させることにより、任意方向の顔が検出できるようになるのはいうまでもない。
【0013】
また、検出する顔サイズに関しては、図16のように定義する。1601は、両目の距離を示しており、瞳孔の中心間距離をdとする。1602は、目の高さを示しており、両目距離の半分の距離(d/2)を設定する。1603は、顔幅を示しており、両目距離の2倍の距離(2×d)を設定する。顔幅1603は両目から目の高さ分だけ上の位置に、両目と平行に成るように設定する。1604は、顔高さを示しており、顔幅と同じ距離(2×d)を設定する。顔高さ1604は顔幅と直角に成るように設定する。1605は、顔サイズを示しており、顔幅及び顔高に囲まれた領域を設定する。以下で説明する実施形態では、検出する顔サイズ(検出顔サイズ)は、顔サイズ1605と定義して説明する。なお、図16では正面を向いている顔を例にしているが、所定の角度に顔が向いている場合であっても同様に検出顔サイズを定義することができることは言うまでもない。
【0014】
<実施形態1>
実施形態1では、検出する顔サイズに応じて検出器を変換し、更に検出する顔サイズに応じて検出条件を変更し、変換した検出器及び変更した検出条件を用いて顔検出を行う装置に関して説明する。
【0015】
図1は、第1実施形態に係わる画像処理装置のハードウェア構成例を説明するブロック図である。図1において、CPU(中央演算装置)100は、RAM102に一時的に読み出されたプログラムを実行することで、本実施形態で説明するフローチャートを実行する。101はROMであり、CPU100が実行するプログラムが記憶されている。102はRAMで、CPU100がプログラムを実行する時に、各種情報を一時的に記憶するためのメモリを提供している。103はハードディスクであり、画像ファイルや、顔検出の際に用いられるパターン識別用の検出パラメータなどを保存するための記憶媒体である。104はディスプレイであり、本実施形態の処理結果をユーザに提示する装置である。110は制御バス/データバスであり、上述の各部とCPU100とを接続する。
【0016】
以上の構成を備えた画像処理装置によって実行される、顔を検出する際の全体的な処理の流れを、図2のフローチャートを参照して説明する。まずステップS201で、CPU100は、ハードディスク103から画像データをRAM102に展開する。画像データはRAM102上では2次元配列として保持される。次のステップS202では、CPU100は、顔検出アルゴリズムで使用する解析パターンなどの検出パラメータをハードディスク103またはROM101からRAM102に読み込む。ステップS203において、CPU100は、ステップS202で読み込んだ検出パラメータを使用して、ステップS201で読み込んだ画像データが表す画像内に顔があるかどうかを判定する。このステップS203における顔検出の処理が本発明の特徴部分であり、詳細な説明については後述する。次のステップS204において、CPU100は、ステップS203による顔の検出結果をディスプレイ104に表示する。
【0017】
以下の説明においては、顔検出アルゴリズムは、当業者において広く知られているAdaBoostを使用する場合を例に挙げて説明する。AdaBoostは多数の弱判別器を直列に接続することにより強判別器を設計する手法である。各弱判別器は、Haarタイプの矩形特徴量が設定されている。ここでは説明のために、図12に示すように、1つの弱判別器で2箇所の矩形領域を解析するように設定する。弱判別器は、矩形領域ごとに矩形特徴量を解析し、その特徴量の関係が予め学習した結果と同じであれば、評価値を加算していく。各弱判別器ごとに解析する矩形特徴量は異なる。図13に示すように弱判別器を直列に接続し、1つの強判別器(すなわち、検出器)を実現する。各弱判別器で、各矩形領域の評価値を加算した加算評価値が設定閾値以下になった時点で処理を打ち切ることにより、処理の高速化を図る。最終的に全ての弱判別器で顔候補と判定された場合には、その矩形領域によって特定される領域を顔領域として出力する。
【0018】
ここでは説明のために検出器としてAdaBoostを例に挙げたが、NuralNetworkなど他の顔検出アルゴリズムに対して本件を適用しても良いことはいうまでもない。
【0019】
以下、図2で示した顔検出の概要から更に詳細な説明を行う。図3は、本発明の第1の実施形態による画像処理装置の構成の一例を示すブロック図である。
【0020】
301は、画像設定部であり、ハードディスク103内に記憶されている顔探索用の画像をRAM領域に設定する。画像設定部301はハードディスクから画像ファイルをRAM領域に展開し、展開した画像に関する画像データと画像サイズを出力する。ここでは説明のために、画像の幅をW[pixel]、画像の高さをH[pixel]とする。
【0021】
302は、検出顔サイズ設定部であり、画像内から検出する顔のサイズ(検出顔サイズ)を設定する。後述する顔検出部307では検出顔サイズ設定部302により設定されたサイズの顔を画像内から探索することになる。検出顔サイズ設定部302からは設定された検出顔サイズが出力される。ここでは説明のために、検出顔サイズの設定方法は予め設定した顔サイズを検出顔サイズに設定するとし、検出顔サイズの幅をWs[pixel]、検出顔サイズの高さをHs[pixel]とする。また、検出顔サイズの対角線、面積を用いて、検出顔サイズを設定してもよい。検出顔サイズは、ユーザによって都度設定されても良いことは言うまでもない。
【0022】
303は、変換比率算出部であり、検出顔サイズに応じて検出器を変換する際の変換比率を算出する。検出器の変換とは、検出器による顔領域の検出範囲を変更することを意味する。変換比率算出部303は、検出顔サイズ設定部302から入力された検出顔サイズから算出した変換比率を出力する。予め設定された検出器の幅(検出器による検出範囲)をWd[pixel]とし、高さをHd[pixel]とする。ここでは説明のために、予め設計された検出器の幅Wdと検出顔サイズの幅Wsから変換比率を算出する方法について説明する。変換比率Rは、以下に示す数式を用いて算出する。
【0023】
【数1】

【0024】
ここでは、予め設計された検出器のサイズの幅と検出顔サイズの幅から変換比率を算出する手法について説明したが、各サイズの高さ、対角線、面積から変換比率を算出しても良いことはいうまでもない。また、画像サイズWと検出顔サイズWsから変換比率を算出しても良いことは言うまでもない。
【0025】
304は、検出器変換部であり、変換比率算出部303で算出された変換比率に応じて検出器を変換する。すなわち、検出器変換部304は、入力された変換比率Rから、検出器に含まれる解析領域を特定するための解析位置などを変換する。検出器変換部304からは解析位置などを変換した検出器が出力される。ここでは説明のために、各弱判別器での判別対象となる矩形を変換することとする。以下、図4を利用して矩形を変換する例について説明する。
【0026】
図4は、変換比率Rに応じて検出器を変換し、検出顔サイズと同じサイズの検出領域を検出するための検出器に変換する手法の説明図である。図4(a)は、変換前の検出器の検出範囲を示している。401は検出器により解析する解析矩形領域である。解析領域(検出範囲)は、検出器幅Wd 408と検出器高さHd 409により設定される。解析領域内における解析対象となる矩形領域が、矩形領域1である402と矩形領域2である405である。矩形領域は、検出器幅Wdと検出器高さHdで特定される領域内に位置する。矩形領域はそれぞれ左上の座標位置と右下の座標位置により表現される。矩形領域1は、矩形1の左上座標(S1x、S1y)403と矩形1の右下座標(E1x、E1y)404により設定される。矩形領域2は、矩形2の左上座標(S2x、S2y)406と矩形2の右下座標(E2x、E2y)407により設定される。図4(b)は、変換後の検出器の検出範囲を示している。各説明は、図4(a)と同様であるため、省略する。変換比率を利用した各矩形の座標位置の変換式は、以下のようになる。
【0027】
【数2】

【0028】
ここで、S1x´、S1y´、E1x´、E1y´、S2x´、S2y´、E2x´、E2y´は、それぞれ変換後の座標位置を示す。数式2を利用して、検出顔サイズの大きさに応じて解析位置を変換した検出器を出力する。
【0029】
図3に戻り305は、検出条件変更量設定部であり、検出対象の顔サイズの大きさに応じて検出時の検出条件を設定変更する。具体的には、検出顔サイズ設定部302で設定された検出顔サイズが小さい場合には、検出顔サイズが大きい場合と比較して顔検出時の検出条件を厳しくするように検出条件を変更する。検出条件変更部306からは設定された検出条件変更量が出力される。ここでは説明のために、画像サイズに対する検出顔サイズに応じて検出条件を変更する。まず、画像サイズの幅Wと検出顔サイズの幅Wsから顔比率Rfを以下の式により算出する。
【0030】
【数3】

【0031】
そして、算出した顔比率Rfに応じて予め設定したテーブルを参照し、弱判別器の顔検出に用いる閾値の変更量を設定する。図5は、顔比率Rfに応じて検出条件の変更量Rtを設定するテーブルを示している。テーブルを利用することにより、算出した顔比率Rfに対応する変更量Rtが設定される(だだし、Rt≧1とする)。設定された変更量Rtを利用して弱判別器の閾値が変更される。この閾値は、弱判別後に得られる評価値から検出範囲内の画像が顔か否かを判定する際に使用するものである。そのため、閾値が高くなるほど、より評価値が高い場合のみ顔と判断されるため、誤検出が抑制される。閾値の変更量を決定する参照テーブルは、検出顔サイズが小さいほど(Rfが小さいほど)閾値の上げ量が増加する関係の設定とする。ここでは一旦テーブルを参照して検出条件変更量を設定する手法について説明したが、入力された顔比率Rfから直接検出条件変更量Rtを設定してもよいことはいうまでもない。
【0032】
AdaBoostでは、各弱判別器で閾値判定が行われ、評価値が低く顔ではないと判定された場合、処理が打ち切られる。そのため、各弱判別器の閾値を高くすることにより、顔ではない領域に対しては早期に処理が打ち切られるため、処理を高速化できる。このことは、他の検出アルゴリズムに関しても適用できる。
【0033】
ここで、検出顔サイズが複数設定されている場合は、検出顔サイズの相対関係から顔比率Rfを算出しても良いことはいうまでもない。例えば、3種類の検出顔サイズが設定され、各検出顔サイズの幅がWs1、Ws2、Ws3とする。このとき、Ws1<Ws2<Ws3の関係が成立の場合、Ws3を基準としてRfを設定する。検索顔サイズがWs1の場合は、Rf=Ws1/Ws3から算出する。Ws2、Ws3の場合も同様である。このように、検出顔サイズが複数設定されている場合でも、1種類の検出顔サイズの顔比率を算出することで、他の種類の検出顔サイズについても自動的に算出することができる。そして、算出した顔比率に基づき、前述したテーブルを参照すれば、検出顔サイズが小さいほど、閾値が高くなる設定が可能となる。
【0034】
ここで、設定された顔のサイズに応じて顔検出の検出条件を変更しない場合、検出する顔のサイズ(検出顔サイズ)が小さいほど誤検出する可能性が高くなる理由について説明する。
【0035】
例えば、図14の1404に示すように検出顔サイズが大きい場合は顔でないと判断できる場合であっても、1401のように検出顔サイズが小さい場合は窓などの配置によっては顔の形状と類似する可能性がある。具体的には図14の1402に示す部分を目領域と、1403に示す部分を口領域と、それぞれみなす場合があり、その結果誤検出しやすい傾向がある。
【0036】
検出顔サイズが小さい場合ほど誤検出が多いことを検証するために、自然画像内に含まれるテクスチャが検出顔サイズ大もしくは小の場合において、どちらの方が顔パターンに類似しているかを調査した。調査方法は、図15に示した方法により行った。自然画像の画像領域内から各サイズの領域を抽出し、抽出領域と複数人の平均顔との相関係数を算出した。この各領域の相関係数の算出を画像全面に対して行い画像当たりの平均相関係数を算出し、検出顔サイズ大と小の場合でそれぞれ算出した平均相関係数を比較した。これを複数の画像に対して行い各検出顔サイズの平均相関係数を比較した結果、検出顔サイズ小の平均相関係数は、検出顔サイズ大よりも大きいことがわかった。つまり、解析サイズが小さいほど自然画像内に含まれるテクスチャは顔パターンに類似しているため、顔でない領域であっても誤検出する可能性が高くなることが分かった。
【0037】
このように同じ判定条件(検出条件)であっても検出顔サイズが大と小では、サイズ小の方が誤検出する可能性が高くなるため、検出する顔サイズに応じて誤検出を抑制する制御を行う必要がある。検出する顔サイズに応じて制御しなければ、検出サイズ小での誤検出数が多くなり、正確な検出結果が得られない。
【0038】
図3の306は、検出条件変更部であり、入力された検出条件変更量Rtに応じて検出条件を設定変更する。検出条件変更部306からは検出条件変更量Rtに基づき変更された検出条件が出力される。ここでは、検出条件変更量設定部305で設定された変更量Rtは、弱判別器を使用した顔検出の評価値の閾値の変更量であるため、以下の式により弱判別器の閾値を変更する。
【0039】
【数4】

【0040】
ここで、Thは弱判別器を使用した顔検出の評価値の閾値を示しており、Th´は変更後の顔検出の評価値の閾値を示している。なお、弱判別器が複数ありそれぞれの閾値が異なっている場合には、各閾値に応じた変更後の閾値が算出される。
【0041】
307は、顔検出部であり、検出顔サイズに応じて解析範囲が変換された検出器、及び検出顔サイズに応じて変更された検出条件を用いて画像内の顔を検出する。顔検出部307からは出力として顔座標が出力される。
以上が、実施形態1の画像処理装置に関する一連の説明である。
【0042】
次に、上述した画像処理装置の動作手順に関して説明する。図6は、実施形態1の処理フロー図である。
【0043】
まず、画像設定部301により、顔を検出する画像が入力されRAM領域に展開されて設定される(S601)。
【0044】
次に、検出顔サイズ設定部302により、S601で設定した画像内から検出する顔サイズ(検出顔サイズ)が設定される(S602)。
【0045】
次に、変換比率算出部303により、S602で設定された検出顔サイズに応じて、検出器の解析範囲を変換する変換比率が算出される(S603)。ここでは、予め設計された検出器サイズと検出顔サイズから変換比率が算出される。
【0046】
次に、検出器変換部304により、S603で算出された変換比率に応じて、検出器が変換される(S604)。すなわち、検出顔サイズに応じて検出器の検出範囲を変更する。
【0047】
次に、検出条件変更量設定部305により、S602で設定された検出顔サイズの大きさに応じて検出条件の変更量が設定される(S605)。ここでは、画像サイズに対する検出顔サイズの比率を顔比率として算出し、顔比率に応じて予め設定したテーブルを参照することにより、検出条件の変更量を設定する。このとき、使用するテーブルは、図5に示すような検出顔サイズが小さいほど誤検出が抑制される設定であることが特徴である。
【0048】
次に、検出条件変更部306により、検出条件が変更される(S606)。ここでは、検出条件変更量設定部305で算出された変更量に基づき、検出条件が変更される。
【0049】
次に、顔検出部307により、S604で変換された検出器とS606で変更された検出条件に基づき、画像内の顔領域が検出される(S607)。
【0050】
検出顔サイズが複数設定されている場合は、全サイズ検出したか否かが判定され(S608)、検出していない場合は検出顔サイズを別のサイズに更新する(S609)。これを検出する顔サイズ分だけ処理を繰り返し、全サイズ検出した時点で処理を終了する。
【0051】
以上、実施形態1によれば、検出する顔のサイズが小さくなるほど弱判別器で使用する顔判定の閾値が高くなるため、検出条件が厳しくなり、誤検出を抑制することができる。更に、検出条件が厳しくなった結果、顔ではないと判定される割合が増え、検出処理途中で中断することができるため、処理時間を短縮することができる。出願人所有の評価DBでは、閾値を厳しくしたことにより検出性能(画像内の顔を、顔として検出できた検出数)が変更前に比べ5%ダウンしたが、誤検出は50%削減することができた。更に、検出時間は変更前に比べ1/5に短縮することができた。この時、設定したテーブルは、学習により最適なテーブルを設計したものを用いている。
【0052】
ここでは、検出顔サイズが小さいほど、弱判別器の顔判定の評価値に対する閾値が高くなる設定方法に関して説明したが、他の項目を制御しても良いことは言うまでもない。
【0053】
例えば、解析領域内の統計量により顔検出を行う場合には、統計量に対する閾値を制御しても良い。統計量は、領域内の輝度成分の平均値、標準偏差、分散であっても良いし、他の項目であってもよい。また、他の画像成分に対する統計量であっても良い。
【0054】
また、例えば、画像内のエッジの組合わせで顔検出を行う場合には、エッジに対する評価量の閾値を制御してもよい。
また、例えば、解析領域内の特定色相である画素数により顔検出を行う場合には、その画素数に対する閾値を制御しても良い。
また、例えば、テンプレート・マッチングにより顔検出を行う場合には、テンプレートとの相関関係から得られる評価値を判定する際の閾値を制御しても良い。
また、例えば、器官検出により顔検出処理を行う場合は、特徴量空間内における器官の評価値を判定する際の閾値を制御しても良い。
また、例えば、検出した器官の位置関係により顔検出を行う場合は、検出した器官同士の距離と予め設定した器官同士の距離との差に対する許容範囲を制御してもよい。
また、例えば、解析領域の評価結果から得られる評価量を制御してもよい。この場合、検出サイズが小さいほど、評価量が低くなる設定とする。
【0055】
<実施形態2>
実施形態2では、検出する顔サイズに応じて画像を変換し、更に検出する顔サイズに応じて検出条件を変更し、変更した検出条件を用いて変換後の画像内の顔を検出する装置について説明する。実施形態2は、検出器を変換するのではなく画像を変換して顔検出する点で、実施形態1と処理が異なる。すなわち、実施形態1では検出器における解析範囲(検出範囲)を変更することで、検出顔サイズに応じた検出領域の設定を実現する例を説明した。実施形態2では、検出器側を変換するのではなく、入力画像の画像サイズを変更することで、検出顔サイズに応じた検出領域の設定を実現する例を説明する。実施形態2の画像処理装置は、実施形態1の図1と同様であるため、説明は省略する。
【0056】
図7は、本発明の第2の実施形態による画像処理装置の構成の一例を示すブロック図である。図3と同じ番号に関しては、実施形態1で説明したものと同じ処理内容であるため、ここでは詳細な説明を省略し、実施形態1と相違する部分についてのみ説明する。
【0057】
703は、変換比率算出部であり、検出顔サイズに応じて画像を変換する際の変換比率を算出する。変換比率算出部703は、実施形態1においては検出器を変換する際の変換比率を算出していたが、実施形態2においては画像を変換する際の変換比率を算出する。変換比率算出部703からは算出された変換比率Rが出力される。なお、変換比率Rの算出方法については実施形態1で説明したものと同じであるため、説明は省略する。
【0058】
708は、画像変換部であり、検出顔サイズに応じて画像設定部301で設定された画像を変換する。画像変換部708は、変換比率算出部703で算出された変換比率Rに応じて、変換した画像を出力する。例えば、検出顔サイズが小さい場合には、画像サイズを大きく変換し、検出顔サイズが大きい場合には画像サイズを小さく変換する。ここでは説明のために、変換比率に応じて線形縮小・拡大をすることで画像を変換する。変換後の画像サイズは、画像幅がW´[pixel]、画像高さがH´[pixel]とする。他の画像変換アルゴリズムにより変換してもよいことはいうまでもない。
【0059】
705は、検出条件変更量設定部であり、検出顔サイズの大きさに応じて検出時の検出条件を設定変更する。検出条件変更量設定部705からは設定された検出条件変更量が出力される。ここでは説明のために、変換後の画像サイズに対する検出器のサイズに応じて検出条件を変更する。まず、変換後の画像幅W´と検出器の幅Wdから顔比率Rfを以下の式により算出する。
【0060】
【数5】

【0061】
そして、算出した顔比率Rfに応じて予め設定したテーブルを参照し、弱判別器の閾値の変更量を設定する。検出条件の変更量の設定については、実施形態1と同様に図5に示すテーブルを利用して、実施形態1と同様の設定を行うことができる。上記式5においては、変換後の画像幅W´が大きいほど顔比率Rfが小さくなる。ここで、変換後の画像幅W´が大きいということは、上述したように検出顔サイズが小さいことと等価である。したがって、実施形態1で説明したように、検出顔サイズが小さい場合に顔比率Rfが小さくなり、その結果、図5で示すテーブルを参照して変更量Rtが設定されることになる。
【0062】
704は、検出器設定部であり、画像内から顔を探索する際に使用する検出器を設定する。実施形態2においては、実施形態1で説明したような検出器における検出範囲を変更するための検出器変換部は備わっていない。
【0063】
707は、顔検出部であり、設定された検出器及び変更された検出条件を用いて画像変換部708で変換された画像内の顔を検出する。出力として顔座標が出力される。
以上が、第2実施形態の画像処理装置に関する一連の説明である。
【0064】
次に、上述した画像処理装置の動作手順に関して説明する。図8は、画像処理装置の処理フロー図である。
まず、画像設定部301により、顔を検出する画像が入力されRAM領域に展開されて設定される(S801)。
【0065】
次に、検出顔サイズ設定部302により、S801で設定した画像内から検出する顔サイズ(検出顔サイズ)が設定される(S802)。
【0066】
次に、変換比率算出部703により、S802で設定された検出顔サイズに応じて、画像を変換する変換比率が算出される(S803)。ここでは、予め設計された検出器サイズと検出顔サイズから変換比率が算出される。
【0067】
次に、画像変換部708により、S803で算出された変換比率に応じて、画像が変換される(S804)。実施形態2においては、このように変換比率に応じて画像を変換する処理が実施形態1と相違する。
【0068】
次に、検出条件変更量設定部705により、S802で設定された検出顔サイズの大きさに応じて検出条件の変更量が設定される(S805)。ここでは、変換後の画像サイズに対する検出器サイズの比率を顔比率として算出し、顔比率に応じて予め設定したテーブルを参照することにより、検出条件の変更量を設定する。このとき、使用するテーブルは、検出顔サイズが小さいほど誤検出が抑制される関係とする。
【0069】
次に、検出条件変更部306により、検出条件が変更される(S806)。ここでは、検出条件変更量設定部705で算出された変更量に基づき、検出条件が変更される。
【0070】
次に、顔検出部707により、検出器設定部704から入力された検出器と、S806で変更された検出条件に基づき、変換後の画像内の顔領域が検出される(S807)。
【0071】
検出顔サイズが複数設定されている場合は、全サイズ検出したか否かが判定され(S808)、検出していない場合は検出顔サイズを別のサイズに更新する(S809)。これを検出する顔サイズ分だけ処理を繰り返し、全サイズ検出した時点で処理を終了する。
【0072】
実施形態1では顔のサイズに応じて検出器のサイズを変換する方法を述べたが、検出器のサイズ変換の処理負荷が大きい場合には、本実施形態(実施形態2)で述べた検出器のサイズに応じて画像のサイズを変換する手法が有効となる。例えば、AdaBoostにより顔検出を行う際に弱判別器の個数が多い場合、検出器を変換する時間が画像を変換する時間よりも長くなることが考えられる。この場合は、実施形態2のように検出器のサイズに応じて画像を変換する手法が有効となる。
【0073】
このように、顔検出を行う際に使用する検出器の数が閾値以上の場合、検出器のサイズに応じて画像のサイズを変換し、顔検出を行う際に使用する検出器の数が閾値以下の場合、画像に含まれる顔のサイズに応じて検出器のサイズを変換してもよい。
【0074】
以上、実施形態2によれば、検出する顔のサイズが小さくなるほど顔判定の閾値が高くなるため、検出条件が厳しくなり、誤検出を抑制することができる。更に、判定閾値が高いため、顔検出処理途中で顔ではないと判定される割合が増え、処理を高速化することができる。
【0075】
<実施形態3>
実施形態3では、検出する顔サイズに応じて検出器を選択し、選択した検出器を、検出する顔サイズに応じて変更し、変更した検出器を用いて顔検出を行う装置について説明する。実施形態3は、実施形態1及び実施形態2とは検出する顔のサイズに応じて検出器を選択する点で処理が異なる。すなわち、実施形態1及び2では、検出顔サイズに応じて検出条件変更量を算出し、算出した検出条件変更量を検出器に適用する処理を説明した。実施形態3では、検出顔サイズに応じて複数の検出器の中から好適な検出器を選択する処理について説明する。
【0076】
実施形態3の画像処理装置は、実施形態1の図1と同様であるため、説明は省略する。
【0077】
図9は、本発明の第3の実施形態による画像処理装置の構成の一例を示すブロック図である。図3と同じ番号に関しては、実施形態1で説明したものと同じ処理内容であるため、ここでは詳細な説明を省略し、実施形態1と相違する部分についてのみ説明する。
【0078】
905は、検出器選択部であり、検出顔サイズの大きさに応じて使用する検出器を複数の検出器の中から選択する。検出器選択部905からは選択する検出器のIDが出力される。ここでは説明のために、画像サイズに対する検出顔サイズにより検出器を選択する。まず、画像サイズの幅Wと検出顔サイズの幅Wsから顔比率Rfを以下の式により算出する。
【0079】
【数6】

【0080】
そして、算出した顔比率Rfに応じて予め設定した条件により、検出時に使用する検出器のIDを決定する。ここでは、3種類のAdaBoostによる顔検出器が予め用意されており、各検出器のサイズ(検出範囲)は同じである場合について説明する。各検出器の検出性能は学習方法を変更することによりそれぞれ異なる。検出器の選択方法に関して図10を用いて詳細に説明する。
【0081】
図10は、顔比率Rfに応じて、顔検出に使用する検出器として設定する検出器IDを決定するテーブルである。Ra及びRbは予め設定した顔比率の設定範囲であり、設定範囲に対する算出した顔比率の値に応じて、3種類のうちどのAdaBoostの学習テーブルを使用するか(すなわち、どの検出器を使用するか)を設定する。例えば、3種類の学習テーブルを設計する際に使用する画像データをそれぞれ異なるものを設定する。各学習テーブルの検出性能を評価DBにより測定する。その結果、各学習テーブルの性能が把握できる。
【0082】
検出器選択時、顔比率が設定範囲未満の場合は検出顔サイズが小さいため、誤検出を抑制する必要がある。そこで、誤検出数が極めて少ない検出器Ver1を顔検出に使用する検出器として設定する。このように、予め異なる種類の学習テーブルによって学習された複数の検出器の中から、検出顔サイズに応じた検出器を選択することによっても、実施形態1及び2と同様に誤検出を抑制しつつ処理を高速化できる。
【0083】
ここでは、同じ検出アルゴリズムで検出性能が異なる3種類の検出器の場合で説明したが、検出性能に差がある異なる検出アルゴリズムを用いてもよいことはいうまでもない。
【0084】
なお、上記説明では各検出器に学習テーブルが対応付けられている場合に、最適な検出器を選択する例について説明したが、検出顔サイズに応じて検出時に使用するテーブル(学習パラメータ)を変更してもよい。例えば、顔検出処理の一環として肌の色を判定する場合に肌色テーブルを使用することが考えられる。この時、検出顔サイズが小さいほど判定が厳しい肌色テーブルを使用する。その結果、検出顔サイズに応じて検出性能を制御することができる。なお、判定が厳しい肌色テーブル作成は、適正露出状況で撮影された顔データのみを使用する。そして、作成された厳しい肌色テーブルを基準として、判定基準が異なる肌色テーブルを作成する。露出不足状況で撮影された顔データを段階的に解析候補に加えていくことにより、判定基準が異なる肌色テーブルを作成することができる。
【0085】
906は、検出器設定部であり、検出器選択部905から出力された検出器のIDをもとに顔検出で使用する検出器を設定(変更)する。予め用意された複数種類の検出器(ここでは3種類の検出器)がROM領域に格納されており、IDをもとに選択された検出器がROM領域からRAM領域に展開される。
【0086】
904は、検出器変換部であり、変換比率算出部303により算出された変換比率に基づき、検出器設定部906により設定された検出器を変換する。検出器の変換方法に関しては、実施例1の検出器変換部304で説明した内容と同様であるため、ここでは省略する。
【0087】
以上が、第3実施例の画像処理装置に関する一連の説明である。
次に、上述した画像処理装置の動作手順に関して説明する。図11は、画像処理装置の処理フロー図である。
【0088】
まず、画像設定部301により、顔を検出する画像が入力されRAM領域に展開されて設定される(S1101)。
【0089】
次に、検出顔サイズ設定部302により、画像内から検出する顔サイズ(検出顔サイズ)が設定される(S1102)。
【0090】
次に、変換比率算出部303により、S1102で設定された検出顔サイズに応じて、検出器を変換する変換比率が算出される(S1103)。ここでは、予め設計された検出器サイズと検出顔サイズから変換比率が算出される。
【0091】
次に、検出器選択部905により、S1102で設定された検出顔サイズに応じて、使用する検出器が選択される(S1104)。
【0092】
次に、検出器設定部906により、S1105で選択された検出器が設定される(S1105)。
【0093】
次に、検出器変換部304により、S1104で設定された検出器が、S1103により算出された変換比率に基づき、変換される(S1106)。
【0094】
次に、顔検出部307により、S1106で変更された検出器に基づき、画像内の顔領域が検出される(S1107)。
【0095】
検出顔サイズが複数設定されている場合は、全サイズ検出したか否かが判定され(S1108)、検出していない場合は検出顔サイズを別のサイズに更新する(S1109)。これを検出する顔サイズ分だけ処理を繰り返し、全サイズ検出した時点で処理を終了する。
【0096】
以上、実施形態3によれば、実施形態1及び2と同様に検出する顔のサイズが小さくなるほど厳しい検出設定に変更することにより、誤検出を抑制することができる。更に、顔検出処理途中で顔ではないと判定される割合が増え、処理を高速化することができる。また、顔のサイズに応じた検出器を選択して顔検出に使用することで、誤検出の抑制の精度を高めることができる。
【0097】
<その他の実施形態>
上記実施例では、検出する顔のサイズに応じて検出器もしくは画像を変換する例により説明したが、検出する顔のサイズに応じて検出器かつ画像を変換してもよいことはいうまでもない。
【0098】
また、検出条件を厳しくするために、検出する顔のサイズが小さいほど顔の信頼度、すなわち顔らしさを示す評価値を下げても良いことは言うまでもない。例えば、検出アルゴリズムがAdaBoostの場合、検出する顔サイズが小さいほど各弱判別器で得られる評価量を低くすることにより、検出条件を厳しくできる。他のアルゴリズムに関しても同様である。
【0099】
また、検出条件を厳しくするために、顔検出判定時に使用する特定色の色特徴の範囲を狭めても良いことはいうまでもない。例えば、検出時の判断条件に肌色の色域を使用する場合、検出する顔のサイズが小さいほど肌とみなす色域を狭くすることにより、検出条件を厳しくすることができる。
【0100】
本発明は、複数の機器(例えばコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用することも、1つの機器からなる装置(複合機、プリンタ、ファクシミリ装置など)に適用することも可能である。
【0101】
前述した実施形態の機能を実現するように前述した実施形態の構成を動作させるプログラムを記憶媒体に記憶させ、該記憶媒体に記憶されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も上述の実施形態の範疇に含まれる。即ちコンピュータ読み取り可能な記憶媒体も実施例の範囲に含まれる。また、前述のコンピュータプログラムが記憶された記憶媒体はもちろんそのコンピュータプログラム自体も上述の実施形態に含まれる。

【特許請求の範囲】
【請求項1】
画像に含まれる顔を検出する検出器を有する画像処理装置であって、
前記検出する顔のサイズを設定する設定手段と、
前記設定された顔のサイズに応じて顔検出の検出条件を変更する変更手段と、
前記変更された検出条件を前記検出器に適用し、該適用された検出器を用いて前記画像に含まれる顔を検出する検出手段と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記変更手段は、前記設定された顔のサイズが小さいほど、前記検出器の検出条件を厳しくすることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記設定手段によって設定された顔のサイズに応じて、前記検出器及び/又は前記画像を変換する変換手段をさらに備え、
前記検出手段は、前記変換された検出器及び/又は画像を用いて前記画像に含まれる顔を検出することを特徴とする請求項1または請求項2に記載の画像処理装置。
【請求項4】
前記変換手段は、前記検出器の検出範囲及び/又は前記画像のサイズを変更することで前記変換を行うことを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記変更手段によって変更される検出条件を満たす検出器を複数の検出器の中から選択する選択手段をさらに備え、
前記検出手段は、前記選択された検出器を用いて顔検出を行うことを特徴とする請求項1に記載の画像処理装置。
【請求項6】
前記変更手段は、前記設定された顔のサイズが小さいほど、前記検出条件のうち特定色の色域を狭くすることを特徴とする請求項1に記載の画像処理装置。
【請求項7】
前記変更手段は、前記設定された顔のサイズが小さいほど、前記顔検出に使用するパラメータを誤検出数が少ないパラメータに変更することを特徴とする請求項1に記載の画像処理装置。
【請求項8】
前記変更手段は、前記設定された顔のサイズが小さいほど、前記顔検出に使用する検出アルゴリズムを誤検出数が少ない検出アルゴリズムに変更することを特徴とする請求項1に記載の画像処理装置。
【請求項9】
前記検出する顔のサイズは、顔領域の幅、高さ、対角線、または面積の少なくとも1つに基づいて設定されることを特徴とする請求項1に記載の画像処理装置。
【請求項10】
検出対象の顔のサイズを設定する設定ステップと、
前記設定された顔のサイズに応じて顔検出の検出条件を変更する変更ステップと、
前記変更された検出条件を顔を検出するための検出器に適用し、該適用された検出器を用いて前記画像に含まれる顔を検出する検出ステップと、
を備えることを特徴とする画像処理方法。
【請求項11】
コンピュータを、請求項1乃至9の何れか1項に記載の画像処理装置として機能させるためのプログラム。

【図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


【公開番号】特開2011−8704(P2011−8704A)
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願番号】特願2009−154068(P2009−154068)
【出願日】平成21年6月29日(2009.6.29)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】