(57)【要約】【課題】入力画像の中から顔を精度よく検出することができるようにする。【解決手段】フィルタ選択部３により選択されたフィルタを用いて、タイル領域選択部１により選択されたタイル領域を構成している画素の画素値に対するフィルタ演算を実施するフィルタ演算部４と、フィルタ演算部４の演算結果からタイル領域内に顔が含まれているか否かを判定する顔判定部５とを設け、顔判定部５により顔が含まれているか否かを最終的に判定することができていない場合、上記フィルタの変更を指示し、顔判定部５により顔が含まれているか否かを最終的に判定することができている場合、上記タイル領域の変更を指示する。【選択図】図１
2009134569.tif 000002
【特許請求の範囲】
【請求項１】
検出対象物である顔を含む画像の中から検出対象領域であるタイル領域を選択するタイル領域選択手段と、上記タイル領域選択手段により選択されたタイル領域を構成している画素の画素値を抽出する画素値抽出手段と、顔検出用のフィルタを選択するフィルタ選択手段と、上記フィルタ選択手段により選択されたフィルタを用いて、上記画素値抽出手段により抽出された画素値に対するフィルタ演算を実施するフィルタ演算手段と、上記フィルタ演算手段によるフィルタ演算の演算結果から上記タイル領域内に顔が含まれているか否かを判定する顔判定手段と、上記顔判定手段により顔が含まれているか否かを最終的に判定することができていない場合、上記フィルタ選択手段により選択されるフィルタの変更を指示し、上記顔判定手段により顔が含まれているか否かを最終的に判定することができている場合、上記タイル領域選択手段により選択されるタイル領域の変更を指示する変更指示手段とを備えた顔検出装置。
【請求項２】
フィルタ演算手段は、タイル領域内の任意の画素の画素値に対するフィルタ演算を実施する際、上記画素と隣接している画素の画素値に対するフィルタ演算の演算途中結果を利用することを特徴とする請求項１記載の顔検出装置。
【請求項３】
フィルタ演算手段が複数の演算器から構成されており、上記フィルタ演算手段がフィルタ演算を繰り返し実施する際、フィルタ演算に使用する演算器を顔判定手段による前回の顔判定結果にしたがって動的に変更することを特徴とする請求項１または請求項２記載の顔検出装置。
【請求項４】
検出対象物である顔を含む画像の中から検出対象領域であるタイル領域を選択するタイル領域選択処理手順と、上記タイル領域選択処理手順により選択されたタイル領域を構成している画素の画素値を抽出する画素値抽出処理手順と、顔検出用のフィルタを選択するフィルタ選択処理手順と、上記フィルタ選択処理手順により選択されたフィルタを用いて、上記画素値抽出処理手順により抽出された画素値に対するフィルタ演算を実施するフィルタ演算処理手順と、上記フィルタ演算処理手順によるフィルタ演算の演算結果から上記タイル領域内に顔が含まれているか否かを判定する顔判定処理手順と、上記顔判定処理手順により顔が含まれているか否かを最終的に判定することができていない場合、上記フィルタ選択処理手順により選択されるフィルタの変更を指示し、上記顔判定処理手順により顔が含まれているか否かを最終的に判定することができている場合、上記タイル領域選択処理手順により選択されるタイル領域の変更を指示する変更指示処理手順とをコンピュータに実行させるための顔検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、顔を含む画像の中から顔を検出する顔検出装置及び顔検出プログラムに関するものである。
【背景技術】
【０００２】
顔を含む入力画像（例えば、ＱＶＧＡ）の中から顔を検出する場合、例えば、２４×２４の矩形フィルタの組を用いて、入力画像を構成している各画素の画素値に対するフィルタ演算を実施する。
フィルタ演算の演算結果と所定の閾値を比較して、当該画素が顔の画像を構成しているか否かを判定する。
ただし、当該画素が顔の画像を構成しているか否かを判定することができない場合には、矩形フィルタを別のフィルタに変更して同様の処理を行う。
なお、上記のフィルタ演算は、入力画像の中を移動しながら何度も繰り返し行う必要があり、１画素ずつのフィルタ演算には多大な処理時間を要する。
【０００３】
そこで、従来の顔検出装置では、最初に粗い探索処理を実施して、顔がある可能性が高い領域を探索し、顔がある可能性が高い領域に対して細かい探索処理を実施することで、顔検出処理の高速化及び高精度化を実現するようにしている（例えば、特許文献１を参照）。
【０００４】
【特許文献１】特開２００７−１０９２２９号公報（段落番号［００３３］から［００４５］、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の顔検出装置は以上のように構成されているので、粗い探索処理の探索精度が低いことに起因して、顔がある可能性が高い領域の探索結果に誤りが発生することがあり、例えば、顔がある領域が見逃されてしまうと、後で細かい探索処理を実施しても、顔を検出することができなくなることがあるなどの課題があった。
【０００６】
この発明は上記のような課題を解決するためになされたもので、入力画像の中から顔を精度よく検出することができる顔検出装置及び顔検出プログラムを得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係る顔検出装置は、フィルタ選択手段により選択されたフィルタを用いて、タイル領域選択手段により選択されたタイル領域を構成している画素の画素値に対するフィルタ演算を実施するフィルタ演算手段と、フィルタ演算手段によるフィルタ演算の演算結果からタイル領域内に顔が含まれているか否かを判定する顔判定手段とを設け、顔判定手段により顔が含まれているか否かを最終的に判定することができていない場合、フィルタ選択手段により選択されるフィルタの変更を指示し、顔判定手段により顔が含まれているか否かを最終的に判定することができている場合、タイル領域選択手段により選択されるタイル領域の変更を指示するようにしたものである。
【発明の効果】
【０００８】
この発明によれば、フィルタ選択手段により選択されたフィルタを用いて、タイル領域選択手段により選択されたタイル領域を構成している画素の画素値に対するフィルタ演算を実施するフィルタ演算手段と、フィルタ演算手段によるフィルタ演算の演算結果からタイル領域内に顔が含まれているか否かを判定する顔判定手段とを設け、顔判定手段により顔が含まれているか否かを最終的に判定することができていない場合、フィルタ選択手段により選択されるフィルタの変更を指示し、顔判定手段により顔が含まれているか否かを最終的に判定することができている場合、タイル領域選択手段により選択されるタイル領域の変更を指示するように構成したので、入力画像の中から顔を精度よく検出することができる効果がある。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１はこの発明の実施の形態１による顔検出装置を示す構成図であり、図において、タイル領域選択部１は有効画素判定部６の指示の下、検出対象物である顔を含む入力画像（入力画像は静止画でも動画でもよく、例えば、ＱＶＧＡの画像を入力する）の中から検出対象領域であるタイル領域（例えば、２×２、４×４などの領域）を選択する処理を実施する。
なお、タイル領域選択部１はタイル領域選択手段を構成している。
【００１０】
入力画素抽出部２は有効画素判定部６の指示の下、タイル領域選択部１により選択されたタイル領域を構成している画素の画素値を抽出する処理を実施する。なお、入力画素抽出部２は画素値抽出手段を構成している。
フィルタ選択部３は有効画素判定部６の指示の下、例えば、２４×２４の矩形フィルタ（顔検出用のフィルタ）群の中から、実際に使用する矩形フィルタを選択する処理を実施する。なお、フィルタ選択部３はフィルタ選択手段を構成している。
【００１１】
フィルタ演算部４はフィルタ選択部３により選択されたフィルタを用いて、入力画素抽出部２により抽出された画素値に対するフィルタ演算を実施する。なお、フィルタ演算部４はフィルタ演算手段を構成している。
顔判定部５はフィルタ演算部４によるフィルタ演算の演算結果と所定の閾値を比較して、タイル領域選択部１により選択されたタイル領域内に顔が含まれているか否かを判定する処理を実施する。なお、顔判定部５は顔判定手段を構成している。
【００１２】
有効画素判定部６は顔判定部５により顔が含まれているか否かを最終的に判定することができていない場合、フィルタ選択部３により選択されるフィルタの変更を指示し、顔判定部５により顔が含まれているか否かを最終的に判定することができている場合、タイル領域選択部１により選択されるタイル領域の変更を指示する処理などを実施する。なお、有効画素判定部６は変更指示手段を構成している。
【００１３】
なお、図１の例では、顔検出装置の構成要素であるタイル領域選択部１、入力画素抽出部２、フィルタ選択部３、フィルタ演算部４、顔判定部５及び有効画素判定部６のそれぞれが専用のハードウェア（例えば、ＭＰＵを実装している半導体集積回路基板）で構成されているものを想定しているが、顔検出装置がコンピュータで構成される場合（コンピュータには、例えば、パソコンのほかに、後述する顔検出プログラムを実行することが可能な携帯電話、携帯情報端末やデジタルカメラなども含まれる）、タイル領域選択部１、入力画素抽出部２、フィルタ選択部３、フィルタ演算部４、顔判定部５及び有効画素判定部６の処理内容を記述している顔検出プログラムを当該コンピュータのメモリに格納し、当該コンピュータのＣＰＵが当該メモリに格納されている顔検出プログラムを実行するようにしてもよい。
図２はこの発明の実施の形態１による顔検出装置の処理内容を示すフローチャートである。
【００１４】
次に動作について説明する。
タイル領域選択部１は、検出対象物である顔を含む画像を入力すると、有効画素判定部６の指示の下、入力画像の中から検出対象領域であるタイル領域（例えば、２×２、４×４などの領域）を選択する（ステップＳＴ１）。
【００１５】
ここで、図３はタイル領域の選択例を示す説明図である。
図３の例では、タイル領域の大きさが４×４、検出する顔の大きさが２４×２４の場合を示しており、タイル領域の左上座標を基準点とする２４×２４の矩形領域を開始点として、タイル領域の右下座標を基準点とする２４×２４の矩形領域に至るまでの範囲内に含まれる顔を一度に検出する様子を示している。
１つのタイル領域内の顔検出処理が終了すれば、次のタイル領域に移動して同様の処理を実施する。タイル領域の大きさが４×４の場合、タイル領域の移動量は４ピクセルおきになる。
【００１６】
入力画素抽出部２は、タイル領域選択部１がタイル領域を選択すると（この段階では、一番左上のタイル領域を選択）、有効画素判定部６の指示の下、そのタイル領域を構成している画素の画素値を抽出し（例えば、４×４のタイル領域の場合、１６個（＝４×４）の画素の画素値を抽出する）、各画素の画素値をフィルタ演算部４に出力する（ステップＳＴ２）。
なお、各画素の画素値としては、輝度（Ｙ）や、色差（Ｃｂ、Ｃｒ）などの値を抽出する。
フィルタ選択部３は、例えば、２４×２４の矩形フィルタ群を入力すると、有効画素判定部６の指示の下、その矩形フィルタ群の中から、実際に使用する矩形フィルタを選択して、そのフィルタをフィルタ演算部４に出力する（ステップＳＴ３）。
【００１７】
フィルタ演算部４は、入力画素抽出部２からタイル領域を構成している画素の画素値を受け、フィルタ選択部３からフィルタを受けると、そのフィルタを用いて、タイル領域を構成している画素の画素値に対するフィルタ演算を実施する（ステップＳＴ４）。
例えば、図４に示すような２４×２４の矩形フィルタの組を用いる場合、“灰色の部分の各画素の画素値の総和”と“白色の部分の各画素の画素値の総和”との差分を求めるような演算を実施する。
具体的には、下記の式（１）に示すようなフィルタ演算を実施し、フィルタ演算の演算結果として、ｒ（ｋ）を顔判定部５に出力する。
【数１】
2009134569.tif 000003
ただし、ａ（ｘ，ｙ）はフィルタ係数、ｐ（ｘ，ｙ）は画素値である。
【００１８】
顔判定部５は、フィルタ演算部４がフィルタ演算を実施すると、そのフィルタ演算の演算結果ｒ（ｋ）と閾値Ａ，Ｂ（Ａ＞Ｂ）を比較して、タイル領域選択部１により選択されたタイル領域内に顔が含まれているか否かを判定する（ステップＳＴ５）。
例えば、顔判定部５は、フィルタ演算の演算結果ｒ（ｋ）が閾値Ａ以上であれば、タイル領域内に顔が含まれていると判定する。
また、フィルタ演算の演算結果ｒ（ｋ）が閾値Ｂ未満であれば、タイル領域内に顔が含まれていないと判定する。
また、フィルタ演算の演算結果ｒ（ｋ）が閾値Ａ未満であり、かつ、閾値Ｂ以上であれば、タイル領域内に顔が含まれている可能性があると判定する。
顔判定部５は、タイル領域内に顔が含まれていると判定すると、顔の検出結果（例えば、顔の検出座標、フィルタ演算結果など）を出力する。
ここでは、フィルタ演算の演算結果ｒ（ｋ）と閾値Ａ，Ｂ（Ａ＞Ｂ）を比較して、タイル領域選択部１により選択されたタイル領域内に顔が含まれているか否かを判定するものについて示したが、この判定方法は一例に過ぎず、例えば、フィルタ演算の演算結果ｒ（ｋ）と閾値Ｈを比較し、その比較結果と閾値Ａ，Ｂ（Ａ＞Ｂ）を比較して、タイル領域選択部１により選択されたタイル領域内に顔が含まれているか否かを判定するようにしてもよい。
【００１９】
有効画素判定部６は、顔判定部５により顔が含まれているか否かを最終的に判定することができていない場合（ステップＳＴ６）、即ち、顔判定部５の判定結果が“タイル領域内に顔が含まれている可能性がある”旨を示している場合、フィルタ選択部３により選択されるフィルタの変更を指示する（ステップＳＴ７）。
これにより、ステップＳＴ３の処理に戻り、再度、フィルタ選択部３が他の矩形フィルタを選択し、フィルタ演算部４がフィルタ演算を実施することにより、顔判定部５がタイル領域内に顔が含まれているか否かを判定する。
【００２０】
有効画素判定部６は、顔判定部５により顔が含まれているか否かを最終的に判定することができている場合（ステップＳＴ６）、即ち、顔判定部５の判定結果が“タイル領域内に顔が含まれている”、または、“タイル領域内に顔が含まれていない”旨を示している場合、顔の検出結果を保存して（ステップＳＴ８）、タイル領域内の全画素について、顔判定が終了したか否かを判定する（ステップＳＴ９）。
タイル領域内の全画素について、顔判定が終了していなければ、ステップＳＴ２の処理に戻り、ステップＳＴ２〜ＳＴ８の処理を繰り返し実施する。
一方、タイル領域内の全画素について、顔判定が終了していれば、タイル領域選択部１により選択されたタイル領域が入力画像から選択可能な最終タイル領域であるか否かを判定し（ステップＳＴ１０）、最終タイル領域であれば、検出処理を終了する。
最終タイル領域でなければ、タイル領域選択部１により選択されるタイル領域の変更を指示する。
これにより、ステップＳＴ１の処理に戻り、ステップＳＴ１〜ＳＴ９の処理を繰り返し実施する。
【００２１】
以上で明らかなように、この実施の形態１によれば、フィルタ選択部３により選択されたフィルタを用いて、タイル領域選択部１により選択されたタイル領域を構成している画素の画素値に対するフィルタ演算を実施するフィルタ演算部４と、フィルタ演算部４によるフィルタ演算の演算結果からタイル領域内に顔が含まれているか否かを判定する顔判定部５とを設け、顔判定部５により顔が含まれているか否かを最終的に判定することができていない場合、フィルタ選択部３により選択されるフィルタの変更を指示し、顔判定部５により顔が含まれているか否かを最終的に判定することができている場合、タイル領域選択部１により選択されるタイル領域の変更を指示するように構成したので、入力画像の中から顔を精度よく検出することができる効果を奏する。
即ち、この実施の形態１によれば、従来の顔検出装置のように、入力画像を構成する一部の画素を処理対象から除外する粗い探索処理を実施する必要がないので、入力画像の中から顔を精度よく検出することができる。
【００２２】
実施の形態２．
上記実施の形態１では、フィルタ演算部４がタイル領域を構成している画素の画素値に対するフィルタ演算を実施するものについて示したが、フィルタ演算部４がタイル領域内の任意の画素の画素値に対するフィルタ演算を実施する際、その画素と隣接している画素の画素値に対するフィルタ演算の演算途中結果を利用するようにしてもよい。
【００２３】
即ち、ある画素（ｘ，ｙ）のフィルタ演算と隣接する画素（ｘ＋１，ｙ）のフィルタ演算において、矩形フィルタの係数ａ（ｘ，ｙ）＝ａ（ｘ＋１，ｙ）が成立するような場合（例えば、矩形フィルタの形状が単純なものである場合に成立する）、双方のフィルタ演算の演算途中結果が共通になるので、画素（ｘ，ｙ）の画素値に対するフィルタ演算を実施する際、隣接する画素（ｘ＋１，ｙ）の画素値に対するフィルタ演算の演算途中結果を利用するようにする。
これにより、フィルタ演算部４の演算量を削減することができるため、顔の検出速度を速めることができる効果を奏する。
【００２４】
実施の形態３．
上記実施の形態１，２では、特に言及していないが、複数の演算器を用いて、フィルタ演算部４を構成するようにしてもよい。
この実施の形態３では、フィルタ演算部４がフィルタ演算を繰り返し実施する際、複数の演算器の中から、フィルタ演算に使用する演算器を顔判定部５による前回の顔判定結果にしたがって動的に変更するものについて説明する。
【００２５】
ここでは、説明の便宜上、図５に示すように、２４×２４の入力画像から４×４のタイル領域を選択し、そのタイル領域内に顔が含まれているか否かを判定する場合について説明する。
なお、顔判定部５における顔の有無の判定結果を以下のように表すものとする。
？：顔である可能性がある画素
×：顔でないことが確定した画素
○：顔であることが確定した画素
【００２６】
顔判定部５がタイル領域内に顔が含まれているか否かを判定する前の初期状態では、図５に示すように、タイル領域を構成している全画素が顔である可能性があるため、全画素が“？”で表される。
図６は初期状態のとき、フィルタ演算部４を構成する演算器に割り当てられる画素を示す説明図である。
初期状態では、図６に示すように、１つの画素に対して１つの演算器がそれぞれ割り当てられており、１種類の矩形フィルタ（ＲＦ）に対するフィルタ演算が１６画素並列で行われる。
【００２７】
次に、図７は顔判定部５の判定処理が進んで、１００個目の矩形フィルタの使用が終了した段階での顔判定部５の判定結果を示す説明図である。
この段階では、タイル領域を構成している１６個の画素のうち、顔である可能性がある画素は６つの画素だけになり、それ以外の画素は顔でないことが確定している状態となっている。
このため、初期状態と同様に、１つの画素に対して１つの演算器がそれぞれ割り当てられるようにすると、フィルタ演算に利用されない演算器が発生して、すべての演算器が有効に利用されないことになる。
そこで、この段階では、例えば、図８に示すように、１つの画素に対して２つの演算器がそれぞれ割り当てられるようにする。
１つの画素に対して２つの演算器が割り当てられた場合、１つの画素に対するフィルタ演算を２つの演算器が協働して実施することができるので、１つの演算器でフィルタ演算を実施する場合より、約２倍の演算速度でフィルタ演算を実施することができる。
なお、１つの画素に対して２つの演算器が割り当てられた場合、演算器の使用数が２×６＝１２となり、４つの演算器が残るので、残りの４つの演算器については、別の用途で利用（例えば、次に必要となる計算の前処理などに利用）するようにしてもよい。
【００２８】
次に、図９は顔判定部５の判定処理が更に進んで、５００個目の矩形フィルタの使用が終了した段階での顔判定部５の判定結果を示す説明図である。
この段階では、タイル領域を構成している１６個の画素のうち、顔である可能性がある画素は１つの画素だけになり、それ以外の画素は顔でないことが確定している状態となっている。
そこで、この段階では、例えば、図１０に示すように、１つの画素に対してすべての演算器が割り当てられるようにする。
１つの画素に対して１６個の演算器が割り当てられた場合、１つの画素に対するフィルタ演算を１６個の演算器が協働して実施することができるので、１つの演算器でフィルタ演算を実施する場合より、約１６倍の演算速度でフィルタ演算を実施することができる。
【００２９】
以上で明らかなように、この実施の形態２によれば、フィルタ演算部４が複数の演算器から構成されており、フィルタ演算部４がフィルタ演算を繰り返し実施する際、フィルタ演算に使用する演算器を顔判定部５による前回の顔判定結果にしたがって動的に変更するように構成したので、フィルタ演算部４を構成するすべての演算器を有効に利用して、フィルタ演算の高速化を実現することができる効果を奏する。
【００３０】
なお、上記実施の形態１，２では、入力画像に含まれている顔を検出するものについて示したが、顔検出用のフィルタの代わりに、顔以外の対象物の検出に適用するフィルタを入力するようにすれば、顔以外の対象物を検出することも可能である。
【００３１】
上記実施の形態１，２による顔検出装置は、例えば、デジタルカメラやデジタルビデオカメラ等に適用される。
これにより、例えば、デジタルカメラによって撮影されたスナップ写真における人物の顔領域を検出してフォーカスを調整したり、監視システムのデジタルビデオカメラで撮影されたデジタル映像中の人物の顔領域を検出して、人物を認識したりするのに用いられる。
【図面の簡単な説明】
【００３２】
【図１】この発明の実施の形態１による顔検出装置を示す構成図である。
【図２】この発明の実施の形態１による顔検出装置の処理内容を示すフローチャートである。
【図３】タイル領域の選択例を示す説明図である。
【図４】２４×２４の矩形フィルタの組を用いたフィルタ演算を示す説明図である。
【図５】顔判定部５によりタイル領域内に顔が含まれているか否かが判定される前の初期状態を示す説明図である。
【図６】初期状態のとき、フィルタ演算部４を構成する演算器に割り当てられる画素を示す説明図である。
【図７】１００個目の矩形フィルタの使用が終了した段階での顔判定部５の判定結果を示す説明図である。
【図８】１００個目の矩形フィルタの使用が終了した段階で、フィルタ演算部４を構成する演算器に割り当てられる画素を示す説明図である。
【図９】５００個目の矩形フィルタの使用が終了した段階での顔判定部５の判定結果を示す説明図である。
【図１０】５００個目の矩形フィルタの使用が終了した段階で、フィルタ演算部４を構成する演算器に割り当てられる画素を示す説明図である。
【符号の説明】
【００３３】
１  タイル領域選択部（タイル領域選択手段）、２  入力画素抽出部（画素値抽出手段）、３  フィルタ選択部（フィルタ選択手段）、４  フィルタ演算部（フィルタ演算手段）、５  顔判定部（顔判定手段）、６  有効画素判定部（変更指示手段）。
【図１】
2009134569.tif 000004
【図２】
2009134569.tif 000005
【図３】
2009134569.tif 000006
【図４】
2009134569.tif 000007
【図５】
2009134569.tif 000008
【図６】
2009134569.tif 000009
【図７】
2009134569.tif 000010
【図８】
2009134569.tif 000011
【図９】
2009134569.tif 000012
【図１０】
2009134569.tif 000013