(57)【要約】【課題】特定種類の画像を、照明条件の様々なバリエーションに影響を受けずに高速に判定することができる画像処理方法を提供すること。【解決手段】画像処理方法において、複数の画素からなる画像を取得し、顔の画像らしさの度合いを画素値および画素位置ごとに示すルックアップテーブルを格納し、取得した画像に基づいてエッジ画像を生成し、エッジ画像の画素の画素値および画素位置に基づきルックアップテーブルを用いてその画素における顔の画像らしさの度合いを求め、求めたエッジ画像の画素の画像らしさの度合いを積算し、積算した結果に基づき、入力画像が顔の画像であるかどうかを判定する。【選択図】図２
2009258770.tif 000002
【特許請求の範囲】
【請求項１】
特定種類の画像であるかどうかを判定する画像処理方法であって、
複数の画素からなる画像を取得し、
特定種類の画像らしさの度合いを画素値および画素位置ごとに示すルックアップテーブルを格納し、
前記取得した画像に基づいて判定用画像を生成し、
前記判定用画像の画素の画素値および画素位置に基づき、前記ルックアップテーブルを用いて、その画素における前記特定種類の画像らしさの度合いを求め、
前記求めた判定用画像の画素の画像らしさの度合いを積算し、
前記積算した結果に基づき、前記入力画像が前記特定種類の画像であるかどうかを判定することを特徴とする画像処理方法。
【請求項２】
請求項１に記載の画像処理方法において、
前記特定種類の画像は、顔の画像であることを特徴とする画像処理方法。
【請求項３】
請求項１または２に記載の画像処理方法において、
前記判定用画像は、前記取得した画像のエッジ成分を抽出して生成されることを特徴とする画像処理方法。
【請求項４】
請求項１または２に記載の画像処理方法において、
前記判定用画像は、前記取得した画像の局所的に周辺より画素値がへこんでいる凹構造のエッジ成分を抽出して生成されることを特徴とする画像処理方法。
【請求項５】
請求項１に記載の画像処理方法において、
前記ルックアップテーブルは、
前記特定種類の画像の特徴的な要素に対応する画素位置では、その画素のエッジ成分が大きい場合の前記特定種類の画像らしさの度合いを、エッジ成分が小さい場合の前記特定種類の画像らしさの度合いに比べて大きな値とし、
前記特定種類の画像の特徴的な要素以外に対応する画素位置では、その画素のエッジ成分が大きい場合の前記特定種類の画像らしさの度合いを、エッジ成分が小さい場合の前記特定種類の画像らしさの度合いに比べて小さな値とすることを特徴とする画像処理方法。
【請求項６】
請求項２に記載の画像処理方法において、
前記判定用画像は、前記取得した画像のエッジ成分を抽出して生成され、
目鼻口のいずれかの領域に対応する画素位置では、その画素のエッジ成分が大きい場合の前記顔の画像らしさの度合いを、エッジ成分が小さい場合の前記顔の画像らしさの度合いに比べて大きな値とし、
目鼻口以外の領域に対応する画素位置では、その画素のエッジ成分が大きい場合の前記顔の画像らしさの度合いを、エッジ成分が小さい場合の前記顔の画像らしさの度合いに比べて小さな値とすることを特徴とする画像処理方法。
【請求項７】
請求項１から６のいずれかに記載の画像処理方法において、
前記ルックアップテーブルは、前記特定種類の画像に属する判定対象画像サンプル群と前記特定種類の画像に属さない非判定対象画像サンプル群とに基づく統計処理により生成されることを特徴とする画像処理方法。
【請求項８】
請求項７に記載の画像処理方法において、
前記統計処理において、
前記判定用画像を生成するときと等価な処理により、前記判定対象画像サンプル群に基づいて第１の画像サンプル群を生成し、前記非判定対象画像サンプル群に基づいて第２の画像サンプル群を生成し、
前記第１の画像サンプル群の画素位置(x,y)における画素値がEとなる頻度P1(x,y)(E)と、前記第２の画像サンプル群の画素位置(x,y)における画素値がEとなる頻度P2(x,y)(E)とを求め、
前記判定用画像の画素位置(x,y)における画素値Eに対してその画素における前記特定種類の画像らしさの度合いV(x,y)を、V(x,y) = L(x,y)(E)で与える画素位置(x,y)における前記ルックアップテーブルL(x,y)(E)を、L(x,y)(E) = f( P1(x,y)(E) , P2(x,y)(E) ) により生成し、
前記関数f( P1(x,y)(E) , P2(x,y)(E) )は、P1(x,y)(E)について実質的に広義の単調増加関数であり、P2(x,y)(E)について実質的に広義の単調減少関数であることを特徴とする画像処理方法。
【請求項９】
請求項８に記載の画像処理方法において、
前記関数f( P1(x,y)(E) , P2(x,y)(E) )は、
f( P1(x,y)(E) , P2(x,y)(E) ) = log{ (P1(x,y)(E)+ε1) / (P2(x,y)(E)+ε2) }であり、
前記ε1とε2は所定の定数であることを特徴とする画像処理方法。
【請求項１０】
請求項１に記載の画像処理方法において、
コントラストの程度に応じた複数のルックアップテーブルを格納し、
前記取得した画像のコントラストを算出し、
前記複数のルックアップテーブルから前記コントラストに応じたルックアップテーブルを選択することを特徴とする画像処理方法。
【請求項１１】
特定種類の画像であるかどうかを判定する画像処理方法であって、
複数の画素からなる画像を取得し、
特定種類の画像らしさの度合いを画素値および画素位置ごとに示すルックアップテーブルを格納し、
複数の異なる縮小倍率により前記取得した画像の複数の縮小画像を生成し、
前記複数の縮小画像に基づいて判定用画像を生成し、
前記複数の縮小画像の１つである第１の縮小画像に対して判定対象領域を設定し、
前記判定対象領域の画素の画素値および前記判定対象領域内の画素位置に基づき、前記ルックアップテーブルを用いて、その画素における前記特定種類の画像らしさの度合いを求め、
前記求めた判定対象領域の画素の前記特定種類の画像らしさの度合いを積算し、
前記積算した結果に基づき、前記取得した画像内の前記判定対象領域に対応する画像が前記特定種類の画像であるかどうかを判定することを特徴とする画像処理方法。
【請求項１２】
請求項１１に記載の画像処理方法において、
前記第１の縮小画像よりもさらに縮小された第２の縮小画像に対して、前記判定対象領域に対応する第２の判定対象領域をさらに設定し、
特定種類の画像らしさの度合いを画素値および前記第２の判定対象領域に対応した画素位置ごとに示す第２のルックアップテーブルをさらに格納し、
前記第２の判定対象領域の画素の画素値および前記第２の判定対象領域内の画素位置に基づき、前記第２のルックアップテーブルを用いて、その画素における前記特定種類の画像らしさの度合いを求め、
前記求めた第２の判定対象領域の画素の前記特定種類の画像らしさの度合いを積算し、
前記判定対象領域の画素の前記特定種類の画像らしさの度合いの積算結果および前記第２の判定対象領域の画素の前記特定種類の画像らしさの度合いの積算結果に基づき、前記取得した画像内の前記判定対象領域に対応する画像が前記特定種類の画像であるかどうかを判定することを特徴とする画像処理方法。
【請求項１３】
請求項１から１２のいずれかに記載の画像処理方法をコンピュータに実行させる画像処理プログラム。
【請求項１４】
請求項１３に記載の画像処理プログラムを搭載する画像処理装置。
【請求項１５】
請求項１３に記載の画像処理プログラムを搭載する撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、取得した画像において特定の画像があるかどうか判定する画像処理方法、画像処理装置、画像処理プログラム、撮像装置に関する。
【背景技術】
【０００２】
デジタル画像処理において、撮影された画像の中から顔画像を検出する処理の需要は高い。例えば、デジタルカメラにおいて、検出された顔領域を好ましい色や階調に変換する処理や、ビデオ画像において、特定の人物の登場場面を抽出する処理や、監視カメラにおいて、不審者の画像を抽出する処理などがある。
【０００３】
顔を検出するための画像処理としては、入力画像を様々な倍率で縮小し、縮小した画像の様々な位置に顔判定領域を設定し、その顔判定領域が顔であるか所定の顔判定方法により判定する方法が一般的である。従来の顔判定方法としては、テンプレートマッチング、ＳＶＭ（サポートベクターマシン）、ニューラルネットワーク、ＡｄａＢｏｏｓｔなどが提案されている。
【０００４】
テンプレートマッチングによる顔判定では、テンプレート顔画像と判定対象画像との一致度を算出することにより、顔判定を行う。ＳＶＭによる顔判定では、多くのサポートベクター（学習サンプルから選ばれたテンプレート顔画像と非顔画像）と判定対象画像との一致度を算出することにより、判定対象顔画像の様々なバリエーションに柔軟に対応することができる。
【０００５】
ニューラルネットワーク（3層パーセプトロン）による顔判定の動作はＳＶＭに少し似ているが、サポートベクターの代わりに、学習によって求められた加重係数マップを複数用いる。ＡｄａＢｏｏｓｔによる顔判定の動作は、ニューラルネットワークに少し似ているが、学習によって求めた加重係数マップの代わりに、学習によって選ばれた矩形フィルターを複数用いる。
【０００６】
【特許文献１】特開２００５−４４３３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、テンプレートマッチングによる顔判定では、判定対象顔画像の様々なバリエーションに柔軟に対応することができない。特に、テンプレート顔画像と判別対象顔画像との照明条件が異なる場合などには、正しく判定できない場合が多い。また、ＳＶＭによる顔判定では、多くのサポートベクターと判定対象画像との一致度を算出するために、膨大な処理時間が必要であるという問題がある。
【０００８】
また、ニューラルネットワークによる顔検出はＳＶＭに比べれば高速であるものの、ＡｄａＢｏｏｓｔなどに比べると判定に必要な処理時間がやや長いという問題がある。また、矩形フィルターを用いたＡｄａＢｏｏｓｔによる顔判定は、ＳＶＭやニューラルネットワークよりも高速であるが、判定対象領域を変更するたびに矩形フィルターを演算する必要があるため、処理時間が必要である。
【課題を解決するための手段】
【０００９】
請求項１の発明は、特定種類の画像であるかどうかを判定する画像処理方法に適用され、複数の画素からなる画像を取得し、特定種類の画像らしさの度合いを画素値および画素位置ごとに示すルックアップテーブルを格納し、取得した画像に基づいて判定用画像を生成し、判定用画像の画素の画素値および画素位置に基づき、ルックアップテーブルを用いて、その画素における特定種類の画像らしさの度合いを求め、求めた判定用画像の画素の画像らしさの度合いを積算し、積算した結果に基づき、入力画像が特定種類の画像であるかどうかを判定することを特徴とするものである。
請求項２の発明は、請求項１に記載の画像処理方法において、特定種類の画像は、顔の画像であることを特徴とするものである。
請求項３の発明は、請求項１または２に記載の画像処理方法において、判定用画像は、取得した画像のエッジ成分を抽出して生成されることを特徴とするものである。
請求項４の発明は、請求項１または２に記載の画像処理方法において、判定用画像は、取得した画像の局所的に周辺より画素値がへこんでいる凹構造のエッジ成分を抽出して生成されることを特徴とするものである。
請求項５の発明は、請求項１に記載の画像処理方法において、ルックアップテーブルは、特定種類の画像の特徴的な要素に対応する画素位置では、その画素のエッジ成分が大きい場合の特定種類の画像らしさの度合いを、エッジ成分が小さい場合の特定種類の画像らしさの度合いに比べて大きな値とし、特定種類の画像の特徴的な要素以外に対応する画素位置では、その画素のエッジ成分が大きい場合の特定種類の画像らしさの度合いを、エッジ成分が小さい場合の特定種類の画像らしさの度合いに比べて小さな値とすることを特徴とするものである。
請求項６の発明は、請求項２に記載の画像処理方法において、判定用画像は、取得した画像のエッジ成分を抽出して生成され、目鼻口のいずれかの領域に対応する画素位置では、その画素のエッジ成分が大きい場合の顔の画像らしさの度合いを、エッジ成分が小さい場合の顔の画像らしさの度合いに比べて大きな値とし、目鼻口以外の領域に対応する画素位置では、その画素のエッジ成分が大きい場合の顔の画像らしさの度合いを、エッジ成分が小さい場合の顔の画像らしさの度合いに比べて小さな値とすることを特徴とするものである。
請求項７の発明は、請求項１から６のいずれかに記載の画像処理方法において、ルックアップテーブルは、特定種類の画像に属する判定対象画像サンプル群と特定種類の画像に属さない非判定対象画像サンプル群とに基づく統計処理により生成されることを特徴とするものである。
請求項８の発明は、請求項７に記載の画像処理方法において、統計処理において、判定用画像を生成するときと等価な処理により、判定対象画像サンプル群に基づいて第１の画像サンプル群を生成し、非判定対象画像サンプル群に基づいて第２の画像サンプル群を生成し、第１の画像サンプル群の画素位置(x,y)における画素値がEとなる頻度P1(x,y)(E)と、第２の画像サンプル群の画素位置(x,y)における画素値がEとなる頻度P2(x,y)(E)とを求め、判定用画像の画素位置(x,y)における画素値Eに対してその画素における特定種類の画像らしさの度合いV(x,y)を、V(x,y) = L(x,y)(E)で与える画素位置(x,y)におけるルックアップテーブルL(x,y)(E)を、L(x,y)(E) = f( P1(x,y)(E) , P2(x,y)(E) ) により生成し、関数f( P1(x,y)(E) , P2(x,y)(E) )は、P1(x,y)(E)について実質的に広義の単調増加関数であり、P2(x,y)(E)について実質的に広義の単調減少関数であることを特徴とするものである。
請求項９の発明は、請求項８に記載の画像処理方法において、関数f( P1(x,y)(E) , P2(x,y)(E) )は、f( P1(x,y)(E) , P2(x,y)(E) ) = log{ (P1(x,y)(E)+ε1) / (P2(x,y)(E)+ε2) }であり、ε1とε2は所定の定数であることを特徴とするものである。
請求項１０の発明は、請求項１に記載の画像処理方法において、コントラストの程度に応じた複数のルックアップテーブルを格納し、取得した画像のコントラストを算出し、複数のルックアップテーブルからコントラストに応じたルックアップテーブルを選択することを特徴とするものである。
請求項１１の発明は、特定種類の画像であるかどうかを判定する画像処理方法に適用され、複数の画素からなる画像を取得し、特定種類の画像らしさの度合いを画素値および画素位置ごとに示すルックアップテーブルを格納し、複数の異なる縮小倍率により取得した画像の複数の縮小画像を生成し、複数の縮小画像に基づいて判定用画像を生成し、複数の縮小画像の１つである第１の縮小画像に対して判定対象領域を設定し、判定対象領域の画素の画素値および判定対象領域内の画素位置に基づき、ルックアップテーブルを用いて、その画素における特定種類の画像らしさの度合いを求め、求めた判定対象領域の画素の特定種類の画像らしさの度合いを積算し、積算した結果に基づき、取得した画像内の判定対象領域に対応する画像が特定種類の画像であるかどうかを判定することを特徴とするものである。
請求項１２の発明は、請求項１１に記載の画像処理方法において、第１の縮小画像よりもさらに縮小された第２の縮小画像に対して、判定対象領域に対応する第２の判定対象領域をさらに設定し、特定種類の画像らしさの度合いを画素値および第２の判定対象領域に対応した画素位置ごとに示す第２のルックアップテーブルをさらに格納し、第２の判定対象領域の画素の画素値および第２の判定対象領域内の画素位置に基づき、第２のルックアップテーブルを用いて、その画素における特定種類の画像らしさの度合いを求め、求めた第２の判定対象領域の画素の特定種類の画像らしさの度合いを積算し、判定対象領域の画素の特定種類の画像らしさの度合いの積算結果および第２の判定対象領域の画素の特定種類の画像らしさの度合いの積算結果に基づき、取得した画像内の判定対象領域に対応する画像が特定種類の画像であるかどうかを判定することを特徴とするものである。
請求項１３の発明は、画像処理プログラムに適用され、請求項１から１２のいずれかに記載の画像処理方法をコンピュータに実行させる画像処理プログラムとするものである。
請求項１４の発明は、画像処理装置に適用され、請求項１３に記載の画像処理プログラムを搭載する画像処理装置とするものである。
請求項１５の発明は、撮像装置に適用され、請求項１３に記載の画像処理プログラムを搭載する撮像装置とするものである。
【発明の効果】
【００１０】
本発明は以上のように構成しているので、特定種類の画像を、照明条件の様々なバリエーションに影響を受けずに高速に判定することができる。
【発明を実施するための最良の形態】
【００１１】
−第１の実施の形態−
図１は、本発明の一実施の形態である画像処理装置を示す図である。画像処理装置は、パーソナルコンピュータ１で実現される。パーソナルコンピュータ１は、デジタルカメラ２、ＣＤ−ＲＯＭなどの記録媒体３、他のコンピュータ４などと接続され、各種の画像（画像データ）の提供を受ける。パーソナルコンピュータ１は、提供された画像に対して、以下に説明する画像処理を行う。コンピュータ４は、インターネットやその他の電気通信回線５を経由して接続される。
【００１２】
パーソナルコンピュータ１が画像処理のために実行するプログラムは、図１の構成と同様に、ＣＤ−ＲＯＭなどの記録媒体や、インターネットやその他の電気通信回線を経由した他のコンピュータから提供され、パーソナルコンピュータ１内にインストールされる。パーソナルコンピュータ１は、ＣＰＵ（不図示）およびその周辺回路（不図示）から構成され、ＣＰＵがインストールされたプログラムを実行する。
【００１３】
本実施の形態のパーソナルコンピュータ１は、撮影された画像の中から顔画像を検出する画像処理を行う。具体的には、入力した画像に基づきエッジ成分を抽出してエッジ画像を生成し、生成したエッジ画像に基づき顔の画像があるかどうかを判定する。本実施の形態における処理では、このエッジ成分の抽出方法およびエッジ画像に基づく顔の判定方法に特徴を有する。
【００１４】
なお、以下では、画像に対して画像処理を行うという表現をするが、実際には入力した画像データに対して画像処理を行うことを意味する。また、本実施の形態で言うエッジとは、輝度値や画素値が周囲より小さくへこんでいる箇所（領域、画素）、周囲より大きく出っ張っている（突出している）箇所（領域、画素）、段差になっている箇所（領域、画素）のことを言う。特に、周囲よりへこんでいる箇所（領域、画素）を凹構造のエッジ、周囲より出っ張っている箇所（領域、画素）を凸構造のエッジと言う。
【００１５】
以下、本実施の形態のパーソナルコンピュータ１が撮影された画像の中から顔画像を検出する画像処理について詳細に説明する。図２は、パーソナルコンピュータ１が実行する画像処理プログラムのフローチャートを示す図である。
【００１６】
ステップＳ１では、デジタルカメラなどで撮影（撮像）した顔を検出する対象の画像（画像データ）を入力（取得）する。入力画像の各画素はＲ，Ｇ，Ｂの各色成分を含み、各色成分の範囲は０〜２５５とする。ステップＳ２では、入力画像のＲ，Ｇ，Ｂに基づき、輝度画像Ｙを次の式で生成する。すなわち、輝度画像Y面を生成する。
Ｙ＝（Ｒ＋２Ｇ＋Ｂ）/４  
【００１７】
ステップＳ３では、生成した輝度画像を階層的に縮小して出力する。例えば、０〜３１までの整数ｎに対して縮小倍率κを0.9n で与え、その32通りの縮小倍率κで縮小された輝度画像を出力する。なお、縮小方法は、例えばＣｕｂｉｃ変倍や線形変倍を用いればよい。このように複数通りの縮小画像を生成するのは、入力した画像にはどのようなサイズの顔画像があるかどうか不明であり、あらゆるサイズの顔の画像に対応できるようにするためである。
【００１８】
ステップＳ４では、縮小されたそれぞれの輝度画像Ｙ（ｘ,ｙ）から４種類のエッジ画像Ｅ１（ｘ,ｙ）〜Ｅ４（ｘ,ｙ）を以下の手順で生成する。以下では、ｘ方向を画像の横方向あるいは水平方向、ｙ方向を縦方向あるいは鉛直方向とする。
【００１９】
まず、以下の式より、縦方向に平滑化した画像ＹＬＶ（ｘ,ｙ）と横方向に平滑化した画像ＹＬＨ（ｘ,ｙ）を生成する。縦方向のエッジ成分を抽出するためには、横方向を平滑化した画像データを使用し、横方向のエッジ成分を抽出するためには、縦方向を平滑化した画像データを使用するのが好ましいからである。
ＹＬＶ（ｘ,ｙ）＝｛Ｙ（ｘ,ｙ−１）＋２×Ｙ（ｘ,ｙ）＋Ｙ（ｘ,ｙ＋１）｝/４
ＹＬＨ（ｘ,ｙ）＝｛Ｙ（ｘ−１,ｙ）＋２×Ｙ（ｘ,ｙ）＋Ｙ（ｘ＋１,ｙ）｝/４
【００２０】
次に、横方向を平滑化した画像ＹＬＨ（ｘ,ｙ）を使用して、以下の式より、縦方向のエッジ画像Ｅ１（ｘ,ｙ）を生成する。なお、エッジ画像の各画素はエッジ画素と言う。
Ｅ１´（ｘ,ｙ）＝Ｍｉｎ（ＹＬＨ（ｘ,ｙ−１）, ＹＬＨ（ｘ,ｙ＋２））
−Ｍｉｎ（ＹＬＨ（ｘ,ｙ）, ＹＬＨ（ｘ,ｙ＋１））
Ｅ１（ｘ,ｙ）＝γ（Ｅ１´（ｘ,ｙ））
【００２１】
次に、以下の式より、縦方向のエッジ画像Ｅ２（ｘ,ｙ）を生成する。
Ｅ２´（ｘ,ｙ）＝｜ＹＬＨ（ｘ,ｙ−１）−ＹＬＨ（ｘ,ｙ）｜
＋｜ＹＬＨ（ｘ,ｙ＋１）−ＹＬＨ（ｘ,ｙ）｜
Ｅ２（ｘ,ｙ）＝γ（Ｅ２´（ｘ,ｙ））
【００２２】
次に、縦方向を平滑化した画像ＹＬＶ（ｘ,ｙ）を使用して、以下の式より、横方向のエッジ画像Ｅ３（ｘ,ｙ）を生成する。
Ｅ３´（ｘ,ｙ）＝Ｍｉｎ（ＹＬＶ（ｘ−１,ｙ）, ＹＬＶ（ｘ＋２,ｙ））
−Ｍｉｎ（ＹＬＶ（ｘ,ｙ）, ＹＬＶ（ｘ＋１,ｙ））
Ｅ３（ｘ,ｙ）＝γ（Ｅ３´（ｘ,ｙ））
【００２３】
次に、以下の式より、横方向のエッジ画像Ｅ４（ｘ,ｙ）を生成する。
Ｅ４´（ｘ,ｙ）＝｜ＹＬＶ（ｘ−１,ｙ）−ＹＬＶ（ｘ,ｙ）｜
＋｜ＹＬＶ（ｘ＋１,ｙ）−ＹＬＶ（ｘ,ｙ）｜
Ｅ４（ｘ,ｙ）＝γ（Ｅ４´（ｘ,ｙ））
【００２４】
ここで、Ｍｉｎ（）は、（）の中の最小の値を戻す関数である。また、γ（Ｅ）は、γ変換とクリッピングを行う関数であり、以下の演算を行い、０〜３１の整数を出力する。このＭＩＮ（）処理は、非線形フィルタ処理である。また、γ変換やクリッピング処理を含めて非線形フィルタ処理と言ってもよい。
Ｅ＜０の場合  γ（Ｅ）＝０
Ｅ＞６３の場合  γ（Ｅ）＝３１
０≦Ｅ≦６３の場合  γ（Ｅ）＝（int）（４×√Ｅ）
【００２５】
上記エッジ画像の生成について、図３を参照してさらに詳しく説明する。図３は、エッジ抽出対象画素と周辺画素とを座標ｘｙで表した図である。上記Ｅ１´（ｘ,ｙ）は、輝度画像ＹＬＨ（ｘ,ｙ）面において、縦方向４画素ＹＬＨ（ｘ,ｙ−１）、ＹＬＨ（ｘ,ｙ）、ＹＬＨ（ｘ,ｙ＋１）、ＹＬＨ（ｘ,ｙ＋２）のうち、対象画素（ｘ，ｙ）を基準に、外側２画素ＹＬＨ（ｘ,ｙ−１）、ＹＬＨ（ｘ,ｙ＋２）の最小値と内側２画素ＹＬＨ（ｘ,ｙ）、ＹＬＨ（ｘ,ｙ＋１）の最小値の差を求めている。
【００２６】
Ｅ１´（ｘ,ｙ）の値が正の値を示すことは、対象画素（ｘ，ｙ）近辺の値が、縦方向周辺画素の値より小さい、すなわち画素値が縦方向の周辺よりへこんでいることを示す。従って、このようにして生成したＥ１（ｘ,ｙ）の値を画素値として取り扱い、生成された画像を縦方向輝度凹部画像と言う。
【００２７】
上記Ｅ２´（ｘ,ｙ）は、輝度画像ＹＬＨ（ｘ,ｙ）面において、対象画素（ｘ，ｙ）と縦方向に隣接する画素との輝度値の差分を足し込んだ値を示す。すなわち、縦方向隣接画素との間で輝度値の変化が大きい場合に大きな値が生成される。従って、このようにして生成したＥ２（ｘ,ｙ）の値を画素値として取り扱い、生成された画像を縦方向隣接画素差分画像と言う。縦方向隣接画素差分画像は、凹部構造のエッジ、凸部構造のエッジ、段差のエッジを区別なく検出する。
【００２８】
上記Ｅ３´（ｘ,ｙ）およびＥ３（ｘ,ｙ）、Ｅ４´（ｘ,ｙ）およびＥ４（ｘ,ｙ）は、横方向のエッジ画像を生成するためのものである。上記Ｅ１´（ｘ,ｙ）およびＥ１（ｘ,ｙ）、Ｅ２´（ｘ,ｙ）およびＥ２（ｘ,ｙ）に対して、縦と横をひっくり返して考え、後は同様に演算するものである。従って、このようにして生成されたＥ３（ｘ,ｙ）を横方向輝度凹部画像、Ｅ４（ｘ,ｙ）を横方向隣接画素差分画像と言う。
【００２９】
図４は、輝度の様々な構造に対して輝度凹部画像Ｅ１（ｘ,ｙ）を作成した結果を示す図である。図４（ａ）は輝度が凹んでいる場合であり、図４（ｂ）は輝度が突出している場合であり、図４（ｃ）は輝度が段差になっている場合である。図４を見ると、輝度が凹んでいる場合のみ輝度凹部画像が正の値を持つことがわかる。従って、輝度凹部画像E´の負の値を０にクリッピングすれば、輝度の凹みだけに反応するエッジ画像Ｅ１（ｘ,ｙ）が生成される。
【００３０】
この輝度凹部画像によると、目鼻口などの局所的に暗い箇所に特に良く反応する。図５は、具体的な顔の輝度画像について上記４種類のエッジ画像Ｅ１（ｘ,ｙ）〜Ｅ４（ｘ,ｙ）を生成した例を示す図である。実際、輝度凹部画像は、目鼻口の位置に鋭いピークを持つ。特に、図５の縦方向輝度凹部画像Ｅ１では、目、鼻の穴、口などに反応し、その中でも目、鼻の穴などには強く反応し白くなっている。すなわち、その位置のＥ１の値が大きな値となっている。従って、このような輝度凹部画像を解析することにより、顔を高精度に検出することができる。ただし、輝度凹部画像だけを用いるのではなく、従来の方法で作成したエッジ画像も合わせて用いることが望ましい。
【００３１】
なお、上記エッジ画像Ｅ´をガンマ変換した理由は、エッジ量Ｅ´を適切な特徴量Eに変換するためである。画像解析において、ほとんどエッジがない箇所での微妙なエッジ量の違いは、大きなエッジがある箇所での多少のエッジ量の違いよりも大きな意味を持つ。エッジ量Ｅ´に対してガンマ変換を施すことにより上記の効果が実現され、ほとんどエッジがない箇所でのエッジ量の違いは特徴量Eの大きな違いに変換され、大きなエッジがある箇所でのエッジ量の違いは特徴量Eの小さな違いに変換される。
【００３２】
次に、図２に戻って、ステップＳ５では、縮小した画像の１画素おきに１９×１９画素の顔判定対象領域を設定し、その領域におけるエッジ画像の部分画像を出力する。これをすべての縮小画像において行う。１９×１９画素の顔判定対象領域は、その領域が顔である場合に目や鼻や口などが２画素程度で検出できるのに適したサイズである。
【００３３】
ステップＳ６では、ステップ５で出力したエッジ画像の各部分画像に対して、この領域が顔の画像であるかどうか判定する。本実施の形態では、この顔の画像の判定を以下に説明する手法により行う。
【００３４】
まず、エッジ画像Ｅ１（ｘ,ｙ）の部分画像の各画素位置（ｘ,ｙ）（０≦ｘ≦１８、０≦ｙ≦１８）について、次の式に基づいてその位置の顔らしさＶ１（ｘ,ｙ）を生成する。顔らしさＶ１（ｘ,ｙ）は、各画素位置で顔らしさを数値化したもので、顔らしさの度合いや程度を示すものである。Ｖ１（ｘ,ｙ）は、顔として尤もらしい度合いを表す尤度といってもよい。
Ｖ１（ｘ,ｙ）＝Ｌ１（ｘ,ｙ）（Ｅ１（ｘ,ｙ））
ここで、Ｌ１（ｘ,ｙ）（Ｅ）は、各画素位置（ｘ,ｙ）（０≦ｘ≦１８、０≦ｙ≦１８）について、後述する統計処理によりあらかじめ作成されているルックアップテーブルであり、画素位置（ｘ,ｙ）のエッジＥ１（ｘ,ｙ）がＥである時のその箇所の顔らしさを表す。
【００３５】
そして、生成した顔らしさＶ１（ｘ,ｙ）を全画素（ｘ,ｙ）（０≦ｘ≦１８、０≦ｙ≦１８）について積算し、顔らしさＶＳＵＭ１を算出する。
【００３６】
図６は、具体的なエッジ画像について上記の処理を行った例を示す図である。図６の顔らしさ画像では、顔らしい箇所が白く表示され、顔らしくない箇所が黒く表示されている。図６（ａ）に示す顔のエッジ画像から生成した顔らしさ画像は、全体的に大きな値を持つ。すなわち、全体的に白っぽい画像となる。しかし、図６（ｂ）に示す非顔のエッジ画像から生成した顔らしさ画像は所々小さな値を持つ。すなわち、所々黒っぽくなった画像となる。
【００３７】
図６（ｂ）の非顔の例では、目の間、鼻、口の両横に対応する領域が顔らしくないとされて、顔らしさ画像ではその領域の画素値は小さな値となり黒い画像となっている。従って、非顔画像の顔らしさ画像を全画素積算した値ＶＳＵＭ１は小さな値になる。
【００３８】
図７は、ルックアップテーブルＬ１（ｘ,ｙ）（Ｅ）の具体的な値をエッジの大きさ毎に表した図である。図７では、顔らしさの値が大きいほど白く表示されている。図７において、左側はエッジが小さい時の顔らしさであり、右側はエッジが大きい時の顔らしさである。なお、ルックアップテーブルＬ１（ｘ,ｙ）（Ｅ）の全ての値を図示するなら、前述の通りエッジは０〜３１の値で生成されているので、Ｌ１（ｘ,ｙ）（０）〜Ｌ１（ｘ,ｙ）（３１）の３２通りの図ができる。しかし、図７では、図示の便宜上そのうちの８通りのみ表示している。
【００３９】
なお、図７のルックアップテーブルＬ１（ｘ,ｙ）（Ｅ）は、具体的な値をエッジの大きさ毎に視覚的に表した図である。実際には、画素位置（ｘ，ｙ）を引数とした画素値のテーブルが、エッジの値毎にメモリに格納されている。すなわち、３２個の画素位置（ｘ，ｙ）を引数とした画素値のテーブルがメモリに格納されている。
【００４０】
図７において、左側の図はエッジが小さい時の顔らしさを表す。左側の図を見ると、目、鼻、口の箇所の顔らしさが小さな値になっている。これは、目、鼻、口の箇所のエッジが小さい場合には、その箇所は顔らしくないということを表している。例えば、図６（ａ）の非顔の例では、鼻に対応する箇所のエッジが小さいので、その箇所は顔らしくないとされる。
【００４１】
また、図７の右側の図はエッジが大きい時の顔らしさを表す。右側の図を見ると、目、鼻、口以外の箇所の顔らしさが小さな値になっている。これは、目、鼻、口以外の箇所のエッジが大きい場合には、その箇所は顔らしくないということを表している。例えば、図６（ａ）の非顔の例では、目の間と口の両横に対応する箇所のエッジが大きいので、その箇所は顔らしくないとされる。
【００４２】
すなわち、顔の画像を特定種類の画像とし、目、鼻、口などを特定種類の画像の特徴的な要素であると考えると、特定種類の画像の特徴的な要素に対応する画素位置では、その画素のエッジ成分が大きい場合の特定種類の画像らしさの度合いを、エッジ成分が小さい場合の特定種類の画像らしさの度合いに比べて大きな値としている。また、特定種類の画像の特徴的な要素以外に対応する画素位置では、その画素のエッジ成分が大きい場合の特定種類の画像らしさの度合いを、エッジ成分が小さい場合の特定種類の画像らしさの度合いに比べて小さな値としている。
【００４３】
上記ルックアップテーブルを参照する処理を整理すると、まず、エッジ画像Ｅ１（ｘ,ｙ）の部分画像において、ｘ＝０、ｙ＝０のエッジＥ１の値を得る。次に、このエッジＥ１の値に相当するルックアップテーブルＬ１（ｘ,ｙ）（Ｅ１）を３２個のルックアップテーブルの中から決める。ルックアップテーブルＬ１（ｘ,ｙ）（Ｅ１）が決まると、このルックアップテーブルＬ１（ｘ,ｙ）（Ｅ１）の画素位置（０，０）の値を得る。これが、エッジ画像Ｅ１（ｘ,ｙ）の画素位置（０，０）の顔らしさの値である。この処理を、ｘ＝０、ｙ＝０の画素からｘ＝１８、ｙ＝１８の画素まで順次行い、顔らしさ画像Ｖ１（ｘ,ｙ）を得る。そして、Ｖ１（ｘ,ｙ）をすべて積算してＶsum１を得る。
【００４４】
以上の処理により、エッジ画像Ｅ１（ｘ,ｙ）に基づいて部分画像の顔らしさＶsum１が生成される。そして、エッジ画像Ｅ２（ｘ,ｙ）〜Ｅ４（ｘ,ｙ）に基づいて部分画像の顔らしさＶsum２〜Ｖsum４を生成する処理も同様に行う。
【００４５】
図８は、図２のステップＳ６の顔判定の処理において、部分画像の顔らしさＶsum１〜Ｖsum４を求めた後の処理のフローチャートを示す図である。ステップＳ６の顔判定処理では、上記に説明したように、顔らしさＶsum１〜Ｖsum４を段階的に生成し、それらを積算した評価値が閾値よりも大きければ顔とする。ただし、評価値を閾値と比較する処理を図８に示すように各段階において行うことにより、明らかに顔ではない画像を早い段階で除外して、効率的な処理を行えるようにしている。
【００４６】
まず、ステップＳ１１では、部分画像が顔の画像であるかどうかを判定する評価値を、エッジ画像Ｅ１（ｘ,ｙ）の顔らしさＶsum１とする。ステップＳ１２では、評価値が所定の閾値th1より大きいかどうかを判定し、この評価値が閾値th1より大きければステップＳ１３に進み、この評価値が閾値th1より大きくなければ、部分画像は顔の画像でないとして、対象の部分画像の顔判定の処理を終了する。
【００４７】
ステップＳ１３では、評価値をステップＳ１１の評価値にエッジ画像Ｅ２（ｘ,ｙ）の顔らしさＶsum２を足した値とする。ステップＳ１４では、この評価値が所定の閾値th2より大きいかどうかを判定し、評価値が閾値th2より大きければステップＳ１５に進み、この評価値が閾値th2より大きくなければ、部分画像は顔の画像でないとして、対象の部分画像の顔判定の処理を終了する。
【００４８】
ステップＳ１５では、評価値をステップＳ１３の評価値にエッジ画像Ｅ３（ｘ,ｙ）の顔らしさＶsum３を足した値とする。ステップＳ１６では、この評価値が所定の閾値th3より大きいかどうかを判定し、評価値が閾値th3より大きければステップＳ１７に進み、この評価値が閾値th3より大きくなければ、部分画像は顔の画像でないとして、対象の部分画像の顔判定の処理を終了する。
【００４９】
ステップＳ１７では、評価値をステップＳ１５の評価値にエッジ画像Ｅ４（ｘ,ｙ）の顔らしさＶsum４を足した値とする。ステップＳ１８では、この評価値が所定の閾値th4より大きいかどうかを判定する。ステップＳ１８において、評価値が閾値th4より大きければ、最終的にこの部分画像は顔の画像であると判定する。この評価値が閾値th4より大きくなければ、部分画像は顔の画像でないとして、対象の部分画像の顔判定の処理を終了する。
【００５０】
以上説明した部分画像の顔判定処理を、各縮小画像において、1ビットずつずらした各部分画像についてすべて行い、顔の画像と判定できる部分画像をすべて抽出し、ステップＳ７に進む。
【００５１】
ステップＳ７では、ステップ６によりある部分画像が顔であると判定された場合には、その部分画像の入力画像に対する顔の大きさＳと座標（Ｘ，Ｙ）を出力する。Ｓ，Ｘ，Ｙは、縮小画像における顔のサイズＳ´＝19と、顔とされた領域の座標（Ｘ´，Ｙ´）と縮小倍率κとを用いて、次の式で与えられる。
Ｓ  ＝  Ｓ´  /  κ
Ｘ  ＝  Ｘ´  /  κ
Ｙ  ＝  Ｙ´  /  κ
【００５２】
以上のようにして、入力画像に顔の画像がある場合は、その顔の画像の位置と大きさが検出されて出力される。
【００５３】
＜統計処理＞
次に、前述した統計処理について説明する。すなわち、画素位置（ｘ,ｙ）のエッジＥ１（ｘ,ｙ）がＥであるときのその画素の顔らしさＬ１（ｘ,ｙ）（Ｅ）を求める方法を説明する。図９は、この顔らしさＬ１（ｘ,ｙ）（Ｅ）を求める処理のフローチャートを示す図である。この処理は、パーソナルコンピュータ１において実行される。
【００５４】
ステップＳ２１では、数百人以上の顔の画像を取得する。すなわち、数百人以上の顔をデジタルカメラ等で撮影（撮像）し、その画像（画像データ）を取得する。取得する画像は、図２のステップＳ１で入力する画像と同様な色成分で構成された画像である。ステップＳ２２では、顔が撮影されている画像を、顔領域の大きさが１９×１９画素になるように変倍して、顔領域を切り出した部分画像を顔画像サンプル群とする。
【００５５】
ステップＳ２３では、１９×１９画素の非顔画像サンプル群を、数百パターン以上取得する。これは、デジタルカメラで撮影した顔以外の画像から適宜抽出して非顔画像サンプル群とする。顔が写っている画像から、顔の領域を避けて抽出するようにしてもよい。この場合は、モニタに写された画像から、ユーザが適宜非顔画像の領域を指定すればよい。
【００５６】
ステップＳ２４では、顔画像サンプル群からエッジ成分を抽出して、顔エッジ画像サンプル群を生成する。この処理は、顔検出処理においてエッジ画像Ｅ１（ｘ,ｙ）を生成する処理と同様に行う。ステップＳ２５では、非顔画像サンプル群からエッジ成分を抽出して、非顔エッジ画像サンプル群を生成する。この処理も、顔検出処理においてエッジ画像Ｅ１（ｘ,ｙ）を生成する処理と同様に行う。
【００５７】
ステップＳ２６では、顔エッジ画像サンプル群について、（ｘ,ｙ）のエッジがＥとなる頻度Ｐ顔（ｘ,ｙ,Ｅ）を求める。すなわち、画素（ｘ，ｙ）の値がＥとなる画像がいくつあるかをカウントする。ステップＳ２７では、非顔エッジ画像サンプル群について、同様に、（ｘ,ｙ）のエッジがＥとなる頻度Ｐ非顔（ｘ,ｙ,Ｅ）を求める。
【００５８】
ステップＳ２８では、画素位置（ｘ,ｙ）のエッジＥ１（ｘ,ｙ）がＥであるときのその画素の顔らしさＬ１（ｘ,ｙ）（Ｅ）を、次の式によって算出する。
Ｌ１（ｘ,ｙ）（Ｅ）＝ｌｏｇ｛（Ｐ顔（ｘ,ｙ,Ｅ）＋ε１）/（Ｐ非顔（ｘ,ｙ,Ｅ）＋ε２）｝
ここで、ε１とε２は所定の定数であり、対数の発散や過学習を抑制するために導入している。ε１の値はＰ顔（ｘ,ｙ,Ｅ）の平均的な値の１０００分の１程度に設定すればよく、ε２の値はε１の値の数十倍に設定すればよい。
【００５９】
上記Ｌ１（ｘ,ｙ）（Ｅ）を求める式において、ｌｏｇ｛（Ｐ顔（ｘ,ｙ,Ｅ）＋ε１）｝は、単調増加関数であり、ｌｏｇ｛１/（Ｐ非顔（ｘ,ｙ,Ｅ）＋ε２）｝は、単調減少関数である。すなわち、顔らしさＬ１（ｘ,ｙ）（Ｅ）は、画素位置（ｘ,ｙ）のエッジＥ１（ｘ,ｙ）がＥである顔画像サンプルの分布が増加していく方向にその値は単調増加し、画素位置（ｘ,ｙ）のエッジＥ１（ｘ,ｙ）がＥである非顔画像サンプルの分布が増加していく方向にその値は単調減少していく関数である。なお、画素位置（ｘ,ｙ）のエッジＥ１（ｘ,ｙ）がＥである顔画像サンプルの分布、および、画素位置（ｘ,ｙ）のエッジＥ１（ｘ,ｙ）がＥである非顔画像サンプルの分布は、通常正規分布している。
【００６０】
エッジ画像Ｅ２（ｘ,ｙ）〜Ｅ４（ｘ,ｙ）を顔らしさに変換するルックアップテーブルＬ２（ｘ,ｙ）（Ｅ）〜Ｌ４（ｘ,ｙ）（Ｅ）を生成するには、上記ステップＳ２４、ステップＳ２５のエッジ成分抽出処理を、顔検出処理におけるエッジ画像Ｅ２（ｘ,ｙ）〜Ｅ４（ｘ,ｙ）を生成する処理と同様にすればよい。
【００６１】
以上説明した第1の実施の形態の処理を行うと、次のような効果を奏する。
（１）顔画像の目、鼻、口などの位置は周辺に比べて局所的に暗い。従来のエッジ抽出方法では、エッジ構造が局所的に暗い構造であるか、局所的に明るい構造であるか、あるいはそれ以外の構造であるかを識別することはできなかった。しかし、上記のように凹部構造のエッジを検出し、エッジ画像である凹部画像を生成することにより顔画像の局所的に暗い構造である目、鼻、口などを適切に抽出することができる。その結果、顔の画像を正確に判定することができる。
【００６２】
（２）輝度凹部画像によると、目鼻口などの局所的に暗い箇所に特に良く反応する。実際、輝度凹部画像は、目鼻口の位置に鋭いピークを持つ。従って、このような輝度凹部画像を解析することにより、顔を高精度に検出することができる。本実施の形態では、輝度凹部画像だけを用いるのではなく、従来の方法で作成したエッジ画像も合わせて用いるようにしているので、さらにより精度の高い顔の判定を可能としている。
【００６３】
（３）上記エッジＥ´エッジをガンマ変換した理由は、エッジ量Ｅ´を適切な特徴量Eに変換するためである。画像解析において、ほとんどエッジがない箇所での微妙なエッジ量の違いは、大きなエッジがある箇所での多少のエッジ量の違いよりも大きな意味を持つ。エッジ量Ｅ´に対してガンマ変換を施すことにより、ほとんどエッジがない箇所でのエッジ量の違いは特徴量Eの大きな違いに変換され、大きなエッジがある箇所でのエッジ量の違いは特徴量Eの小さな違いに変換される。これにより、エッジ量の違いが画像の構造の違いに一致するようになる。この結果、顔判定の精度も高くなる。
【００６４】
（４）上記実施の形態の図４から明らかなように、輝度が凹んでいる場合のみ輝度凹部画像が正の値を持つことがわかる。従って、本実施の形態では、輝度凹部画像E´の負の値を０にクリッピングするようにした。これにより、輝度の凹みだけに反応するエッジ画像Ｅ１（ｘ,ｙ）が生成され、エッジ画像Ｅ１を使用する処理がしやすくなる。
【００６５】
（５）エッジ画像の画素値をルックアップテーブルを用いて顔らしさに変換して積算するという単純で高速な処理により、顔の画像を検出することができる。また、エッジ画像を判定することにより、画像を撮影する際の照明条件の影響を抑制する効果がある。
【００６６】
−第２の実施の形態−
第２の実施の形態では、判定対象画像のコントラストの変動に強い顔判定方法を説明する。第２の実施の形態は、第１の実施の形態と同様に、パーソナルコンピュータ１で実現される。従って、第２の実施の形態の画像処理装置の構成は、第１の実施の形態の図１を参照することとする。
【００６７】
＜統計処理＞
まず、以下で説明する統計処理を行い、第２の実施の形態の顔判定用のルックアップテーブル（ＬＵＴ）を作成する。第２の実施の形態のルックアップテーブルの作成について、第１の実施の形態の図９を参照しながら以下説明をする。
【００６８】
まず、図９のステップＳ２１からステップＳ２３までと同様にして、数百以上の１９×１９画素の顔画像サンプル群と、数百以上の１９×１９画素の非顔画像サンプル群とを取得する。
【００６９】
次に、顔画像サンプル群の画素値にゲインをかけ、画素値の分散が１００程度になるように調整する。または、顔画像サンプル群の中から、画素値の分散が２００未満であるものを抽出する。このようにして調整または抽出した顔画像サンプル群と、先に求めた非顔画像サンプル群を使って、図９のステップＳ２４からステップＳ２８までと同様にして、顔判定用のルックアップテーブルを作成する。このようにして求めたルックアップテーブルを、低コントラスト顔判定用ルックアップテーブルと言う。
【００７０】
次に、顔画像サンプル群の画素値に上記とは異なるゲインをかけ、画素値の分散が４００程度になるように調整する。または、顔画像サンプル群の中から、画素値の分散が２００以上であるものを抽出する。このようにして調整または抽出した顔画像サンプル群と、先に求めた非顔画像サンプル群を使って、図９のステップＳ２４からステップＳ２８までと同様にして、顔判定用のルックアップテーブルを作成する。このようにして求めたルックアップテーブルを、高コントラスト顔判定用ルックアップテーブルと言う。
【００７１】
次に、上記のようにして求めた低コントラスト顔判定用ルックアップテーブルと高コントラスト顔判定用ルックアップテーブルを使用して、撮影された画像の中から顔画像を検出する画像処理について説明する。図１０は、パーソナルコンピュータ１が実行する第２の実施の形態の画像処理プログラムのフローチャートを示す図である。
【００７２】
ステップＳ３１からステップＳ３４は、第1の実施の形態の図２のステップＳ１からステップＳ４と同様である。ステップＳ３８では、輝度画像の積分画像I(x,y)と輝度画像の画素値の二乗の積分画像I2(x,y)を次の式に基づいて作成する。
【数１】
2009258770.tif 000003
【００７３】
ステップＳ３５では、第1の実施の形態の図２のステップＳ５と同様に顔判定対象領域を設定する。ステップＳ３９では、顔判定対象領域内の輝度画像Y(x,y)の画素値の分散σ２を計算する。顔判定対象領域を、４点(x,y),(x+w,y),(x,y+h),(x+w,y+h)を頂点とする長方形領域とすると、その領域内で輝度画像Y(x,y)を積分した値Ysumと輝度画像の二乗を積分した値Ysum2、は、次の式で算出される。
【数２】
2009258770.tif 000004
【００７４】
上記演算によると、４点の画素値の加減算を行うだけで積分が求まるので、高速な演算が可能である。そして、顔判定対象領域内の輝度画像Y(x,y)の画素値の分散σ２は次の式で与えられる。
【数３】
2009258770.tif 000005
【００７５】
ステップＳ４０では、上記分散σ２が２００未満の場合には、低コントラスト顔検出用ルックアップテーブルを選択する。また、上記分散σ２が２００以上の場合には、高コントラスト顔検出用ルックアップテーブルを選択する。なお、分散σ２が大きい場合は高コントラストの画像であることを示し、分散σ２が小さい場合は低コントラストの画像であることを示している。
【００７６】
ステップＳ３６では、ステップＳ４０で選択された顔検出用ルックアップテーブルを用いて、第1の実施の形態のステップＳ６と同様の方法で顔判定処理を行う。ステップＳ３７では、第1の実施の形態のステップＳ７と同様に検出結果を出力する。
【００７７】
本実施の形態によると、顔判定対象領域のコントラストを高速に測定し、そのコントラストに応じて顔検出用ルックアップテーブルを選択することにより、判定処理時間を抑えながら、様々なコントラストに対して精度が高い判定をすることができる。
【００７８】
なお、コントラストによって異なるルックアップテーブルを使用するのは、コントラストが高い画像であると、エッジが大きめに出すぎてしまうためである。すなわち、コントラストが高いものは高いなりのルックアップテーブルを使用することにより、精度の高い顔判定が可能となるからである。
【００７９】
−第３の実施の形態−
第３の実施の形態では、異なる複数の解像度の画像を用いることにより、より高精度な顔判定を行う方法を説明する。第３の実施の形態は、第１の実施の形態と同様に、パーソナルコンピュータ１で実現される。従って、第３の実施の形態の画像処理装置の構成は、第１の実施の形態の図１を参照することとする。
【００８０】
＜統計処理＞
まず、以下で説明する統計処理を行い、第３の実施の形態の顔判定用のルックアップテーブル（ＬＵＴ）を作成する。第３の実施の形態のルックアップテーブルの作成について、第１の実施の形態の図９を参照しながら以下説明をする。
【００８１】
まず、図９のステップＳ２１からステップＳ２８までと同様にして、第1の実施の形態と同様な顔判定用ルックアップテーブルを作成する。以後、このルックアップテーブルを、通常サイズ顔判定用ルックアップテーブルと言う。
【００８２】
次に、図９のステップＳ２２の段階で取得した顔画像サンプル群を縮小し、１２×１２画素程度の大きさにする。同様にして、図９のステップＳ２３の段階で取得した非顔画像サンプル群を縮小し、１２×１２画素程度の大きさにする。このようにして作成した顔画像サンプル群と非顔画像サンプル群を使って、図９のステップＳ２４からステップＳ２８までと同様にして、顔判定用のルックアップテーブルを作成する。このようにして求めたルックアップテーブルを、縮小サイズ顔判定用ルックアップテーブルと呼ぶ。
【００８３】
次に、上記のようにして求めた通常サイズ顔判定用ルックアップテーブルと縮小サイズ顔判定用ルックアップテーブルを使用して、撮影された画像の中から顔画像を検出する画像処理について説明する。パーソナルコンピュータ１が実行する第３の実施の形態の画像処理プログラムは、第１の実施の形態の図２のフローチャートと、処理の流れとしては同様であるので、図２を参照しながら以下説明をする。
【００８４】
ステップＳ１からステップＳ４は、第１の実施の形態のステップＳ１からステップＳ４と同様である。
【００８５】
ステップＳ５では、縮小画像の１画素おきに１９×１９画素の顔判定対象領域を設定し、その領域におけるエッジ画像Ｅ１〜Ｅ４の部分画像を出力する。ここで出力したエッジ画像を通常サイズエッジ画像と呼ぶ。さらに、前記縮小画像に対して、０．９４の縮小倍率で縮小された第２の縮小画像に対して、上記１９×１９画素の顔判定対象領域と同一の被写体に対応する１２×１２画素の縮小サイズ顔判定対象領域を設定し、その領域における、前記第２の縮小画像に対して作成したエッジ画像Ｅ１〜Ｅ４の部分画像を出力する。ここで出力したエッジ画像を縮小サイズエッジ画像と呼ぶ。
【００８６】
ステップＳ６では、通常サイズエッジ画像に対して、通常サイズ顔判定用ルックアップテーブルを用いて、第１の実施の形態と同様にして顔らしさを算出する。さらに、縮小サイズエッジ画像に対して、縮小サイズ顔判定用ルックアップテーブルを用いて、第１の実施の形態と同様にして顔らしさを算出する。
【００８７】
図１１は、上記のようにして、通常サイズエッジ画像および縮小サイズエッジ画像に対して、各部分画像の顔らしさを求めた後の処理のフローチャートを示す図である。ステップＳ６の顔判定処理では、第１の実施の形態と同様に、顔らしさを段階的に生成し、それらを積算した評価値が閾値よりも大きければ顔とする。ただし、評価値を閾値と比較する処理を図１１に示すように各段階において行うことにより、明らかに顔ではない画像を早い段階で除外して、効率的な処理を行えるようにしている。
【００８８】
まず、ステップＳ５１では、部分画像が顔の画像であるかどうかを判定する評価値を、縮小サイズエッジ画像Ｅ１（ｘ,ｙ）の顔らしさＶsum１とする。ステップＳ５２では、評価値が所定の閾値th1より大きいかどうかを判定し、この評価値が閾値th1より大きければステップＳ５３に進み、この評価値が閾値th1より大きくなければ、部分画像は顔の画像でないとして、対象の部分画像の顔判定の処理を終了する。
【００８９】
ステップＳ５３では、評価値をステップＳ５１の評価値に縮小サイズエッジ画像Ｅ２（ｘ,ｙ）の顔らしさＶsum２を足した値とする。ステップＳ５４では、この評価値が所定の閾値th2より大きいかどうかを判定し、評価値が閾値th2より大きければステップＳ５５に進み、この評価値が閾値th2より大きくなければ、部分画像は顔の画像でないとして、対象の部分画像の顔判定の処理を終了する。
【００９０】
ステップＳ５５では、評価値をステップＳ５３の評価値に縮小サイズエッジ画像Ｅ３（ｘ,ｙ）の顔らしさＶsum３を足した値とする。ステップＳ５６では、この評価値が所定の閾値th3より大きいかどうかを判定し、評価値が閾値th3より大きければステップＳ５７に進み、この評価値が閾値th3より大きくなければ、部分画像は顔の画像でないとして、対象の部分画像の顔判定の処理を終了する。
【００９１】
ステップＳ５７では、評価値をステップＳ５５の評価値に縮小サイズエッジ画像Ｅ４（ｘ,ｙ）の顔らしさＶsum４を足した値とする。ステップＳ５８では、この評価値が所定の閾値th4より大きいかどうかを判定し、評価値が閾値th4より大きければステップＳ５９に進み、この評価値が閾値th4より大きくなければ、部分画像は顔の画像でないとして、対象の部分画像の顔判定の処理を終了する。
【００９２】
ステップＳ５９からステップＳ６６は、通常サイズエッジ画像について同様の処理を行う。その結果、ステップＳ６６において、評価値が閾値th8より大きければ、最終的にこの部分画像は顔の画像であると判定する。この評価値が閾値th8より大きくなければ、部分画像は顔の画像でないとして、対象の部分画像の顔判定の処理を終了する。
【００９３】
ステップ７では、第1の実施の形態と同様に、顔検出結果を出力する。
【００９４】
第３の実施形態によると、第１の実施の形態に比べて、さらに縮小サイズエッジ画像の顔らしさの評価を加えることにより、さらに高精度な顔判定処理を行うことができる。例えば、顔判定対象領域が１９×１９画素であると、目は２画素程度になって検出しやすいが、口は４画素程度になって検出しにくくなる。ところが、同じ顔判定対象領域が１２×１２画素になると、口は２画素程度になって検出しやすくなる。従って、このような縮小サイズエッジ画像の顔らしさの評価を加えることにより、口などの凹構造が検出しやすくなり、さらに高精度な顔判定処理を行うことができるようになる。
【００９５】
−変形例−
上記実施の形態では、顔の画像を判定する例を説明した。しかし、顔の画像以外の画像にも本発明は適用できる。すなわち、特定種類の画像が取得した画像にあるかどうかを判定する場合にも適用できる。このような場合は、その特定種類の画像らしさの度合いを画素値および画素位置ごとに示すルックアップテーブルを統計処理により準備し、このルックアップテーブルを用いて、判定用画像の各画素における特定種類の画像らしさの度合いを求めるようにすればよい。
【００９６】
上記実施の形態では、エッジ画像として輝度凹部画像を生成し、顔の目鼻口などの局所的に暗い箇所を適切に判断する例を説明した。しかし、歯を見せて笑っている口や、光が当たって光っている頬や鼻では、輝度が周囲に比べて局所的に明るくなっている。このような顔の局所的に明るい箇所も適切に検出するために、次のような式により、エッジ画像として輝度凸部画像を生成し、同様にして顔らしさを求めるようにしてもよい。
Ｅ５´（ｘ,ｙ）＝Ｍａｘ（ＹＬＨ（ｘ,ｙ−１）, ＹＬＨ（ｘ,ｙ＋２））
−Ｍａｘ（ＹＬＨ（ｘ,ｙ）, ＹＬＨ（ｘ,ｙ＋１））
Ｅ５（ｘ,ｙ）＝γ（Ｅ５´（ｘ,ｙ））
【００９７】
上記実施の形態では、顔らしさＬ１（ｘ,ｙ）（Ｅ）を、次の式によって算出する例を説明した。
Ｌ１（ｘ,ｙ）（Ｅ）＝ｌｏｇ｛（Ｐ顔（ｘ,ｙ,Ｅ）＋ε１）/（Ｐ非顔（ｘ,ｙ,Ｅ）＋ε２）｝
しかし、次のような式を用いてもよい。
Ｌ１（ｘ,ｙ）（Ｅ）＝√｛Ｐ顔（ｘ,ｙ,Ｅ）｝−√｛Ｐ非顔（ｘ,ｙ,Ｅ）｝
第１項の√｛Ｐ顔（ｘ,ｙ,Ｅ）｝も単調増加関数と言え、第2項の√｛Ｐ非顔（ｘ,ｙ,Ｅ）｝も単調減少関数と言える。
【００９８】
上記実施の形態では、パーソナルコンピュータ１が、撮影された画像の中から顔画像を検出する画像処理を行う例を説明した。しかし、デジタルスチルカメラなどの撮像装置内で、撮像した画像に対し上記説明した処理を行うようにしてもよい。
【００９９】
図１２は、このような撮像装置であるデジタルカメラ１００の構成を示す図である。デジタルカメラ１００は、撮影レンズ１０２、ＣＣＤなどからなる撮像素子１０３、ＣＰＵおよび周辺回路からなる制御装置１０４、メモリ１０５などから構成される。
【０１００】
撮像素子１０３は、被写体１０１を撮影レンズ１０２を介して撮影（撮像）し、撮影した画像データを制御装置１０４へ出力する。制御装置１０４は、撮像素子１０３で撮影された画像（画像データ）に対して、上記で説明した顔画像を検出する画像処理を行う。そして、制御装置１０４は、顔画像の検出結果に基づき撮影した画像に対し、ホワイトバランスの調整やその他の各種の画像処理を行い、画像処理後の画像データを適宜メモリ１０５に格納する。また、制御装置１０４は、顔画像の検出結果を、オートフォーカス処理などにも利用することができる。なお、制御装置１０４が実行する画像処理プログラムは、不図示のＲＯＭに格納されている。
【０１０１】
また、上記説明した処理をビデオカメラにも適用できる。さらに、不審者を監視する監視カメラや、撮影された顔画像に基づいて個人を識別したり、性別や年齢や表情を推定するような装置にも適用できる。すなわち、顔の画像など特定種類の画像を抽出して処理する画像処理装置や撮像装置などのあらゆる装置に本発明を適用することができる。
【０１０２】
上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【図面の簡単な説明】
【０１０３】
【図１】本発明の一実施の形態である画像処理装置を示す図である。
【図２】パーソナルコンピュータ１が実行する画像処理プログラムのフローチャートを示す図である。
【図３】エッジ抽出対象画素と周辺画素とを座標ｘｙで表した図である。
【図４】輝度の様々な構造に対して輝度凹部画像Ｅ１（ｘ,ｙ）を作成した結果を示す図である。
【図５】具体的な顔の輝度画像について４種類のエッジ画像Ｅ１（ｘ,ｙ）〜Ｅ４（ｘ,ｙ）を生成した例を示す図である。
【図６】具体的なエッジ画像について、顔らしさＶ１（ｘ,ｙ）を生成し、顔らしさＶＳＵＭ１を算出する処理を行った例を示す図である。
【図７】ルックアップテーブルＬ１（ｘ,ｙ）（Ｅ）の具体的な値をエッジの大きさ毎に表した図である。
【図８】図２のステップＳ６の顔判定の処理において、部分画像の顔らしさＶsum１〜Ｖsum４を求めた後の処理のフローチャートを示す図である。
【図９】顔らしさＬ１（ｘ,ｙ）（Ｅ）を求める処理のフローチャートを示す図である。
【図１０】パーソナルコンピュータ１が実行する第２の実施の形態の画像処理プログラムのフローチャートを示す図である。
【図１１】通常サイズエッジ画像および縮小サイズエッジ画像に対して、各部分画像の顔らしさを求めた後の処理のフローチャートを示す図である。
【図１２】撮像装置であるデジタルカメラ１００の構成を示す図である。
【符号の説明】
【０１０４】
１  パーソナルコンピュータ
２  デジタルカメラ
３  記録媒体
４  コンピュータ
５  電気通信回線
１００  デジタルカメラ
１０１  被写体
１０２  撮影レンズ
１０３  撮像素子
１０４  制御装置
１０５  メモリ
【図１】
2009258770.tif 000006
【図２】
2009258770.tif 000007
【図３】
2009258770.tif 000008
【図４】
2009258770.tif 000009
【図５】
2009258770.tif 000010
【図６】
2009258770.tif 000011
【図７】
2009258770.tif 000012
【図８】
2009258770.tif 000013
【図９】
2009258770.tif 000014
【図１０】
2009258770.tif 000015
【図１１】
2009258770.tif 000016
【図１２】
2009258770.tif 000017