(57)【特許請求の範囲】
【請求項１】
入力画像中の特定物体を検出する物体検出装置において、
入力画像またはその縮小画像を対象画像として、対象画像またはそのエッジ特徴画像内において、判定領域を走査しながら、判定領域内に特定物体が存在するか否かを判別するための特定物体検出処理を行なう特定物体検出手段を備えており、
特定物体検出手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、判定領域の大きさの画像のエッジ特徴量の大きさと物体らしさを表す重みとの関係とに基づいて、
当該判定領域内に特定物体が存在するか否かを判定する判定手段、
特定物体を含む複数のサンプル画像から予め作成されかつ判定領域の大きさの画像の所定の特徴画素毎にエッジ特徴量の大きさと物体らしさを表す重みとの関係を記憶した特定物体検出用テーブルを備え、
判定手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、特定物体検出用テーブルとに基づいて、当該判定領域内に特定物体が存在するか否かを判定するものであり、
エッジ特徴画像が、横方向、垂直方向、右斜上方向および左斜上方向の４方向それぞれに対応したエッジ特徴画像であり、特定物体検出用テーブルの特徴画素がエッジ方向を表すエッジ番号とｘｙ座標とで表されており、特定物体検出用テーブルの任意の特徴画素に対応するエッジ特徴画像上の位置として、当該特徴画素のエッジ番号および／またはｘｙ座標を予め定められた規則によって変換した後の位置を用いることにより、特定物体のデフォルトの回転角度位置に対して所定角度回転した特定物体を、検出できるようにしたことを特徴とする物体検出装置。
【請求項２】
入力画像中の特定物体を検出する物体検出装置において、
入力画像から複数の縮小画像を生成する縮小画像生成手段、
入力画像と縮小画像とから構成される複数の階層画像それぞれを対象画像として、対象画像またはそのエッジ特徴画像内において、判定領域を走査しながら、判定領域内に特定物体が存在するか否かを判別するための特定物体検出処理を行なう特定物体検出手段を備えており、
特定物体検出手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、判定領域の大きさの画像のエッジ特徴量の大きさと物体らしさを表す重みとの関係とに基づいて、
当該判定領域内に特定物体が存在するか否かを判定する判定手段、
特定物体を含む複数のサンプル画像から予め作成されかつ判定領域の大きさの画像の所定の特徴画素毎にエッジ特徴量の大きさと物体らしさを表す重みとの関係を記憶した特定物体検出用テーブルを備え、
判定手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、特定物体検出用テーブルとに基づいて、当該判定領域内に特定物体が存在するか否かを判定するものであり、
エッジ特徴画像が、横方向、垂直方向、右斜上方向および左斜上方向の４方向それぞれに対応したエッジ特徴画像であり、特定物体検出用テーブルの特徴画素がエッジ方向を表すエッジ番号とｘｙ座標とで表されており、特定物体検出用テーブルの任意の特徴画素に対応するエッジ特徴画像上の位置として、当該特徴画素のエッジ番号および／またはｘｙ座標を予め定められた規則によって変換した後の位置を用いることにより、特定物体のデフォルトの回転角度位置に対して所定角度回転した特定物体を、検出できるようにしたことを特徴とする物体検出装置。
【請求項３】
入力画像中の特定物体を検出する物体検出装置において、
入力画像またはその縮小画像を対象画像として、対象画像またはそのエッジ特徴画像内において、判定領域を走査しながら、判定領域内に特定物体が存在するか否かを判別するための特定物体検出処理を行なう特定物体検出手段を備えており、
特定物体検出手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、判定領域の大きさの画像のエッジ特徴量の大きさと物体らしさを表す重みとの関係とに基づいて、
当該判定領域内に特定物体が存在するか否かを判定する判定手段、
特定物体を含む複数のサンプル画像から予め作成されかつ判定領域の大きさの画像の所定の特徴画素毎にエッジ特徴量の大きさと物体らしさを表す重みとの関係を記憶した特定物体検出用テーブルを備え、
判定手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、特定物体検出用テーブルとに基づいて、当該判定領域内に特定物体が存在するか否かを判定するものであり、
エッジ特徴画像が、横方向、垂直方向、右斜上方向および左斜上方向の４方向それぞれに対応したエッジ特徴画像であり、特定物体検出用テーブルの特徴画素がエッジ方向を表すエッジ番号とｘｙ座標とで表されており、特定物体検出用テーブルの任意の特徴画素に対応するエッジ特徴画像上の位置として、当該特徴画素のエッジ番号および／またはｘｙ座標を予め定められた規則によって変換した後の位置を用いることにより、特定物体のデフォルトの姿勢を左右反転させた特定物体または上下反転させた特定物体を、検出できるようにしたことを特徴とする物体検出装置。
【請求項４】
入力画像中の特定物体を検出する物体検出装置において、
入力画像から複数の縮小画像を生成する縮小画像生成手段、
入力画像と縮小画像とから構成される複数の階層画像それぞれを対象画像として、対象画像またはそのエッジ特徴画像内において、判定領域を走査しながら、判定領域内に特定物体が存在するか否かを判別するための特定物体検出処理を行なう特定物体検出手段を備えており、
特定物体検出手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、判定領域の大きさの画像のエッジ特徴量の大きさと物体らしさを表す重みとの関係とに基づいて、
当該判定領域内に特定物体が存在するか否かを判定する判定手段、
特定物体を含む複数のサンプル画像から予め作成されかつ判定領域の大きさの画像の所定の特徴画素毎にエッジ特徴量の大きさと物体らしさを表す重みとの関係を記憶した特定物体検出用テーブルを備え、
判定手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、特定物体検出用テーブルとに基づいて、当該判定領域内に特定物体が存在するか否かを判定するものであり、
エッジ特徴画像が、横方向、垂直方向、右斜上方向および左斜上方向の４方向それぞれに対応したエッジ特徴画像であり、特定物体検出用テーブルの特徴画素がエッジ方向を表すエッジ番号とｘｙ座標とで表されており、特定物体検出用テーブルの任意の特徴画素に対応するエッジ特徴画像上の位置として、当該特徴画素のエッジ番号および／またはｘｙ座標を予め定められた規則によって変換した後の位置を用いることにより、特定物体のデフォルトの姿勢を左右反転させた特定物体または上下反転させた特定物体を、検出できるようにしたことを特徴とする物体検出装置。
【請求項５】
入力画像中の特定物体を検出する物体検出装置において、
入力画像またはその縮小画像を対象画像として、対象画像またはそのエッジ特徴画像内において、判定領域を走査しながら、判定領域内に特定物体が存在するか否かを判別するための特定物体検出処理を行なう特定物体検出手段を備えており、
特定物体検出手段は、判定領域に対応する対象画像の横方向、垂直方向、右斜上方向及び左斜上方向の４方向それぞれについてのエッジ特徴画像のエッジ特徴量と、判定領域の大きさの画像の横方向、垂直方向、右斜上方向及び左斜上方向の４方向それぞれについてのエッジ特徴量の大きさと物体らしさを表す重みとの関係とに基づいて、当該判定領域内に特定物体が存在するか否かを判定する判定手段、
特定物体を含む複数のサンプル画像から予め作成されかつ判定領域の大きさの画像の所定の特徴画素毎にエッジ特徴量の大きさと物体らしさを表す重みとの関係を記憶した特定物体検出用テーブルを備え、
判定手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、特定物体検出用テーブルとに基づいて、当該判定領域内に特定物体が存在するか否かを判定するものであり、
特定物体検出用テーブルは、判定領域の大きさの画像の所定の特徴画素毎に、その特徴画素において取り得るエッジ特徴量と物体らしさを表す重みを表す多項式の係数を記憶していることを特徴とする物体検出装置。
【請求項６】
入力画像中の特定物体を検出する物体検出装置において、
入力画像から複数の縮小画像を生成する縮小画像生成手段、
入力画像と縮小画像とから構成される複数の階層画像それぞれを対象画像として、対象画像またはそのエッジ特徴画像内において、判定領域を走査しながら、判定領域内に特定物体が存在するか否かを判別するための特定物体検出処理を行なう特定物体検出手段を備えており、
特定物体検出手段は、判定領域に対応する対象画像の横方向、垂直方向、右斜上方向及び左斜上方向の４方向それぞれについてのエッジ特徴画像のエッジ特徴量と、判定領域の大きさの画像の横方向、垂直方向、右斜上方向及び左斜上方向の４方向それぞれについてのエッジ特徴量の大きさと物体らしさを表す重みとの関係とに基づいて、当該判定領域内に特定物体が存在するか否かを判定する判定手段、
特定物体を含む複数のサンプル画像から予め作成されかつ判定領域の大きさの画像の所定の特徴画素毎にエッジ特徴量の大きさと物体らしさを表す重みとの関係を記憶した特定物体検出用テーブルを備え、
判定手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、特定物体検出用テーブルとに基づいて、当該判定領域内に特定物体が存在するか否かを判定するものであり、
特定物体検出用テーブルは、判定領域の大きさの画像の所定の特徴画素毎に、その特徴画素において取り得るエッジ特徴量と物体らしさを表す重みを表す多項式の係数を記憶していることを特徴とする物体検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、入力画像から顔等の特定の物体を検出するために用いられる物体検出装置に関する。
【背景技術】
【０００２】
入力画像から顔等の特定の物体を検出する方法として、入力画像に対して階層的に作成した縮小画像にテンプレートマッチングを適用する方法（PP.203，デジタル画像処理、CG-ARTS 協会）や、入力画像をIntegral Imageと呼ばれる画像に変換し、矩形型の特徴量の大きさに対応する重みを積算する方法（Pub,No:US 2002/0102024 A1)などがある。また、処理時間を削減する方法として、階層画像に動き情報や色情報で物体候補を絞り込む方法（特開２０００−１３４６３８号公報参照）がある。
【０００３】
これらの従来技術は、入力画像上において判定領域を少しずつ動かしながら、判定領域内に特定の物体が存在するか否かを判定していくものである。テンプレートマッチングを適用する方法では、マッチングに相関値や差分自乗和値を用いることが多く、その計算に時間がかかる。また、Integral Imageを用いる方法では、ＰＣ上で比較的高速に動作することが確認されているが、Integral Imageへの変換と矩形特徴量の計算を行なうためには、メモリ資源が大きくなるとともにＣＰＵへの負荷も大きくなるため、組み込み機器に実装するには不向きである。
【０００４】
また、動き情報や色情報で物体候補を絞り込む方法では、特定の物体に動きがない場合には適用が難しく、また色情報は光源色などで大きく変化するため、安定な検出は難しい。
【特許文献１】特開２０００−１３４６３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この発明は、メモリ資源やＣＰＵ負荷を低減でき、かつ高精度化および高速処理化が可能な物体検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明は、入力画像中の特定物体を検出する物体検出装置において、入力画像またはその縮小画像を対象画像として、対象画像またはそのエッジ特徴画像内において、判定領域を走査しながら、判定領域内に特定物体が存在するか否かを判別するための特定物体検出処理を行なう特定物体検出手段を備えており、特定物体検出手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、判定領域の大きさの画像のエッジ特徴量の大きさと物体らしさを表す重みとの関係とに基づいて、当該判定領域内に特定物体が存在するか否かを判定する判定手段、特定物体を含む複数のサンプル画像から予め作成されかつ判定領域の大きさの画像の所定の特徴画素毎にエッジ特徴量の大きさと物体らしさを表す重みとの関係を記憶した特定物体検出用テーブルを備え、判定手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、特定物体検出用テーブルとに基づいて、当該判定領域内に特定物体が存在するか否かを判定するものであり、エッジ特徴画像が、横方向、垂直方向、右斜上方向および左斜上方向の４方向それぞれに対応したエッジ特徴画像であり、特定物体検出用テーブルの特徴画素がエッジ方向を表すエッジ番号とｘｙ座標とで表されており、特定物体検出用テーブルの任意の特徴画素に対応するエッジ特徴画像上の位置として、当該特徴画素のエッジ番号および／またはｘｙ座標を予め定められた規則によって変換した後の位置を用いることにより、特定物体のデフォルトの回転角度位置に対して所定角度回転した特定物体を、検出できるようにしたことを特徴とする。
【０００７】
請求項２に記載の発明は、入力画像中の特定物体を検出する物体検出装置において、入力画像から複数の縮小画像を生成する縮小画像生成手段、入力画像と縮小画像とから構成される複数の階層画像それぞれを対象画像として、対象画像またはそのエッジ特徴画像内において、判定領域を走査しながら、判定領域内に特定物体が存在するか否かを判別するための特定物体検出処理を行なう特定物体検出手段を備えており、特定物体検出手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、判定領域の大きさの画像のエッジ特徴量の大きさと物体らしさを表す重みとの関係とに基づいて、当該判定領域内に特定物体が存在するか否かを判定する判定手段、特定物体を含む複数のサンプル画像から予め作成されかつ判定領域の大きさの画像の所定の特徴画素毎にエッジ特徴量の大きさと物体らしさを表す重みとの関係を記憶した特定物体検出用テーブルを備え、判定手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、特定物体検出用テーブルとに基づいて、当該判定領域内に特定物体が存在するか否かを判定するものであり、エッジ特徴画像が、横方向、垂直方向、右斜上方向および左斜上方向の４方向それぞれに対応したエッジ特徴画像であり、特定物体検出用テーブルの特徴画素がエッジ方向を表すエッジ番号とｘｙ座標とで表されており、特定物体検出用テーブルの任意の特徴画素に対応するエッジ特徴画像上の位置として、当該特徴画素のエッジ番号および／またはｘｙ座標を予め定められた規則によって変換した後の位置を用いることにより、特定物体のデフォルトの回転角度位置に対して所定角度回転した特定物体を、検出できるようにしたことを特徴とする。
【０００８】
請求項３に記載の発明は、入力画像中の特定物体を検出する物体検出装置において、入力画像またはその縮小画像を対象画像として、対象画像またはそのエッジ特徴画像内において、判定領域を走査しながら、判定領域内に特定物体が存在するか否かを判別するための特定物体検出処理を行なう特定物体検出手段を備えており、特定物体検出手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、判定領域の大きさの画像のエッジ特徴量の大きさと物体らしさを表す重みとの関係とに基づいて、当該判定領域内に特定物体が存在するか否かを判定する判定手段、特定物体を含む複数のサンプル画像から予め作成されかつ判定領域の大きさの画像の所定の特徴画素毎にエッジ特徴量の大きさと物体らしさを表す重みとの関係を記憶した特定物体検出用テーブルを備え、判定手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、特定物体検出用テーブルとに基づいて、当該判定領域内に特定物体が存在するか否かを判定するものであり、エッジ特徴画像が、横方向、垂直方向、右斜上方向および左斜上方向の４方向それぞれに対応したエッジ特徴画像であり、特定物体検出用テーブルの特徴画素がエッジ方向を表すエッジ番号とｘｙ座標とで表されており、特定物体検出用テーブルの任意の特徴画素に対応するエッジ特徴画像上の位置として、当該特徴画素のエッジ番号および／またはｘｙ座標を予め定められた規則によって変換した後の位置を用いることにより、特定物体のデフォルトの姿勢を左右反転させた特定物体または上下反転させた特定物体を、検出できるようにしたことを特徴とする。
【０００９】
請求項４に記載の発明は、入力画像中の特定物体を検出する物体検出装置において、入力画像から複数の縮小画像を生成する縮小画像生成手段、入力画像と縮小画像とから構成される複数の階層画像それぞれを対象画像として、対象画像またはそのエッジ特徴画像内において、判定領域を走査しながら、判定領域内に特定物体が存在するか否かを判別するための特定物体検出処理を行なう特定物体検出手段を備えており、特定物体検出手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、判定領域の大きさの画像のエッジ特徴量の大きさと物体らしさを表す重みとの関係とに基づいて、当該判定領域内に特定物体が存在するか否かを判定する判定手段、特定物体を含む複数のサンプル画像から予め作成されかつ判定領域の大きさの画像の所定の特徴画素毎にエッジ特徴量の大きさと物体らしさを表す重みとの関係を記憶した特定物体検出用テーブルを備え、判定手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、特定物体検出用テーブルとに基づいて、当該判定領域内に特定物体が存在するか否かを判定するものであり、エッジ特徴画像が、横方向、垂直方向、右斜上方向および左斜上方向の４方向それぞれに対応したエッジ特徴画像であり、特定物体検出用テーブルの特徴画素がエッジ方向を表すエッジ番号とｘｙ座標とで表されており、特定物体検出用テーブルの任意の特徴画素に対応するエッジ特徴画像上の位置として、当該特徴画素のエッジ番号および／またはｘｙ座標を予め定められた規則によって変換した後の位置を用いることにより、特定物体のデフォルトの姿勢を左右反転させた特定物体または上下反転させた特定物体を、検出できるようにしたことを特徴とする。
【００１０】
請求項５に記載の入力画像中の特定物体を検出する物体検出装置において、入力画像またはその縮小画像を対象画像として、対象画像またはそのエッジ特徴画像内において、判定領域を走査しながら、判定領域内に特定物体が存在するか否かを判別するための特定物体検出処理を行なう特定物体検出手段を備えており、特定物体検出手段は、判定領域に対応する対象画像の横方向、垂直方向、右斜上方向及び左斜上方向の４方向それぞれについてのエッジ特徴画像のエッジ特徴量と、判定領域の大きさの画像の横方向、垂直方向、右斜上方向及び左斜上方向の４方向それぞれについてのエッジ特徴量の大きさと物体らしさを表す重みとの関係とに基づいて、当該判定領域内に特定物体が存在するか否かを判定する判定手段、特定物体を含む複数のサンプル画像から予め作成されかつ判定領域の大きさの画像の所定の特徴画素毎にエッジ特徴量の大きさと物体らしさを表す重みとの関係を記憶した特定物体検出用テーブルを備え、判定手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、特定物体検出用テーブルとに基づいて、当該判定領域内に特定物体が存在するか否かを判定するものであり、特定物体検出用テーブルは、判定領域の大きさの画像の所定の特徴画素毎に、その特徴画素において取り得るエッジ特徴量と物体らしさを表す重みを表す多項式の係数を記憶していることを特徴とする。
【００１１】
請求項６に記載の発明は、入力画像中の特定物体を検出する物体検出装置において、入力画像から複数の縮小画像を生成する縮小画像生成手段、入力画像と縮小画像とから構成される複数の階層画像それぞれを対象画像として、対象画像またはそのエッジ特徴画像内において、判定領域を走査しながら、判定領域内に特定物体が存在するか否かを判別するための特定物体検出処理を行なう特定物体検出手段を備えており、特定物体検出手段は、判定領域に対応する対象画像の横方向、垂直方向、右斜上方向及び左斜上方向の４方向それぞれについてのエッジ特徴画像のエッジ特徴量と、判定領域の大きさの画像の横方向、垂直方向、右斜上方向及び左斜上方向の４方向それぞれについてのエッジ特徴量の大きさと物体らしさを表す重みとの関係とに基づいて、当該判定領域内に特定物体が存在するか否かを判定する判定手段、特定物体を含む複数のサンプル画像から予め作成されかつ判定領域の大きさの画像の所定の特徴画素毎にエッジ特徴量の大きさと物体らしさを表す重みとの関係を記憶した特定物体検出用テーブルを備え、判定手段は、判定領域に対応するエッジ特徴画像のエッジ特徴量と、特定物体検出用テーブルとに基づいて、当該判定領域内に特定物体が存在するか否かを判定するものであり、特定物体検出用テーブルは、判定領域の大きさの画像の所定の特徴画素毎に、その特徴画素において取り得るエッジ特徴量と物体らしさを表す重みを表す多項式の係数を記憶していることを特徴とする。
【発明の効果】
【００２０】
この発明によれば、メモリ資源やＣＰＵ負荷を低減でき、かつ高精度化および高速処理化が可能な物体検出装置が得られる。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して、この発明を顔検出装置に適用した場合の実施例について説明する。
【実施例１】
【００２２】
〔１〕顔検出装置の構成
図１は、顔検出装置の構成を示している。
顔検出装置は、入力画像信号をデジタルデータに変換するＡＤ変換手段１１、ＡＤ変換手段１１によって得られた画像データに基づいて１または複数の縮小画像を生成する縮小画像生成手段１２、入力画像および縮小画像から構成される各階層画像毎に、４方向別のエッジ特徴画像を生成する４方向エッジ特徴画像生成手段１３、大量の教師サンプル（顔および非顔のサンプル画像）から求められた顔検出用の重みテーブルを記憶したメモリ１４、４方向エッジ特徴画像生成手段１３によって生成された４方向別のエッジ特徴画像と重みテーブルとを用いて、入力画像に顔が存在するか否かを判定する顔判定手段１５および顔判定手段１５の検出結果を出力する検出結果出力手段１６を備えている。検出結果出力手段１６は、顔が検出された場合には、入力画像を基準として、検出された顔の大きさと位置とを出力する。
【００２３】
〔２〕顔検出装置の動作
図２は、顔検出装置の動作を示している。
まず、入力画像を取得し（ステップＳ１）、入力画像から所定の縮小率を用いて１または複数の縮小画像を生成する（ステップＳ２）。入力画像および縮小画像から構成される各階層画像毎に、４方向別のエッジ特徴画像を生成し（ステップＳ３）、各エッジ特徴画像と重みテーブルとを用いて顔検出処理を行なう（ステップＳ４）。そして、検出結果を出力する（ステップＳ５）。顔検出の終了指令が入力されていなければ（ステップＳ６）、ステップＳ１に戻る。ステップＳ６において、顔検出の終了指令が入力されていれば、終了する。
【００２４】
〔３〕階層画像
図３は、図２のステップＳ２の処理によって得られる階層画像の一例を示している。
【００２５】
この例では、縮小率Ｒを０．８に設定した場合に、生成される複数の階層画像を示している。図３において、３０は入力画像を、３１〜３５は縮小画像を示している。４１は判定領域を示している。この例では、判定領域は２４×２４の大きさに設定されている。判定領域の大きさは、入力画像および各縮小画像においても同じである。また、この例では、矢印で示すように、判定領域を左から右に水平方向に走査するといった動作を、上方から下方に向かって行なうようにしている。ただし、走査順はこれに限られるものではない。入力画像の他に、複数の縮小画像を生成しているのは、１種類の重みテーブルを用いて大きさが異なる顔を検出するためである。
【００２６】
〔４〕図２のステップＳ３の４方向別のエッジ特徴画像の生成処理
図４は、図２のステップＳ３で行なわれる４方向別のエッジ特徴画像の生成処理の手順を示している。
【００２７】
処理対象の階層画像を入力し（ステップＳ１１）、入力した階層画像に対し、例えば、図５（ａ）〜（ｄ）に示すような、水平方向、垂直方向、右斜上方向および左斜上方向の４方向それぞれに対応するPrewitt 型の微分フィルタを用いて、エッジ強調処理を行なうことにより、４方向それぞれに対応する第１エッジ強調画像を生成する（ステップＳ１２）。次に、得られた４方向それぞれに対応する第１エッジ強調画像の各対応する画素毎に、画素値が最大のものを残し、その他の画素値を０とすることにより、４方向それぞれに対応する第２エッジ強調画像を生成する（ステップＳ１３）。生成された４方向それぞれに対応する第２エッジ強調画像に対して平滑処理を行なうことにより、４方向それぞれに対応するエッジ特徴画像を生成する（ステップＳ１４）。そして、生成した４方向それぞれに対応するエッジ特徴画像を出力する（ステップＳ１５）。
【００２８】
〔５〕図２のステップＳ４の顔検出処理
〔５−１〕重みテーブル
図６は、図２のステップＳ４の顔検出処理を説明するための図である。
【００２９】
図２のステップＳ４の顔検出処理は、各階層画像毎に行なわれるが、処理方法は同様なので、ここでは入力画像３０に対して行なわれる顔検出処理についてのみ説明する。図６において、３０は入力画像を示し、４１は入力画像内に設定された判定領域を示している。なお、顔の検出には、正面顔、横顔、斜め方向からみた顔のそれぞれについて、正面顔、横顔、斜め顔が画像内に存在するか否かを判別するが、ここでは、説明の便宜上、正面顔が存在するか否かのみを検出する場合について説明する。
【００３０】
図７は、入力画像内の判定領域に対応する４方向のエッジ特徴画像を示している。上述したように、判定領域４１の大きさは２４×２４であるが、説明の便宜上、図７においては判定領域４１の大きさを８×８の大きさとしている。図８は、判定領域４１の大きさを８×８の大きさとした場合の、重みテーブルの内容例を示している。
【００３１】
判定領域４１の大きさの各エッジ特徴画像の画素位置を、エッジ特徴画像の種類ｑ（エッジ番号：０〜３）と行番号ｙ（０〜７）と列番号ｘ（０〜７）で表すことにする。重みテーブルには、各エッジ特徴画像内の画素のうち、顔検出に用いられる特徴画素毎に、その画素における特徴量（画素値）に対応して顔らしさを表す重みｗが格納されている。
【００３２】
図８の例では、水平方向のエッジ特徴画像のエッジ番号を”０”、垂直方向のエッジ特徴画像のエッジ番号を”１”、右斜上方向のエッジ特徴画像のエッジ番号を”２”、左斜上方向水平エッジのエッジ特徴画像のエッジ番号を”３”に設定している。
【００３３】
このような重みテーブルは、例えば、Adaboostと呼ばれる公知の学習方法を利用して作成することができる（Yoav Freund, Robert E. Schapire,"A decision-theoretic generalization of on-line learning and an application to boosting", European Conference on Computational Learning Theory, September 20，1995．）。
【００３４】
なお、Adaboostは、適応的なブースティング学習方法の１つで、大量の教師サンプルをもとに、複数の弱識別器候補の中から識別に有効な弱識別器を複数個選択し、それらを重み付けして統合することによって高精度な識別器を実現する学習方法である。ここで、弱識別器とは、全くの偶然よりは識別能力は高いが、十分な精度を満たすほど高精度ではない識別器のことをいう。弱識別器の選択時には、既に選択した弱識別器がある場合、選択済の弱識別器によって誤認識してしまう教師サンプルに対して学習を重点化することによって、残りの弱識別器候補の中から最も効果の高い弱識別器を選択する。
【００３５】
各階層画像毎に行なわれる顔検出処理は、画像内に設定された判定領域に対応する４方向のエッジ特徴画像と重みテーブルとを用いて行なわれる。
【００３６】
〔５−２〕顔検出処理手順
図９は、入力画像内に設定された判定領域に対して行なわれる顔検出処理手順を示している。
【００３７】
顔検出処理は、第１の判定ステップ（ステップＳ２１）から第６の判定ステップ（ステップＳ２６）までの判定ステップを備えている。各判定ステップは、判定に用いる特徴画素数Ｎに違いがある。第１の判定ステップ（ステップＳ２１）〜第６の判定ステップ（ステップＳ２６）では、それぞれ判定に用いる特徴画素数ＮはＮ１〜Ｎ６となっている。Ｎ１＜Ｎ２＜Ｎ３＜Ｎ４＜Ｎ５＜Ｎ６である。
【００３８】
ある判定ステップにおいて、顔が検出されなかった場合には、次の判定ステップには移行せず、当該判定領域には顔は存在しないと判定する。全ての判定ステップにおいて、顔が検出された場合にのみ、当該判定領域に顔が存在すると判定する。
【００３９】
〔５−３〕各判定ステップでの判定処理手順
図１０は、図９の各判定ステップで実行される判定処理手順を示している。
以下、Ｎ個の特徴画素数を用いて１つの判定領域に対して判定を行なう場合について説明する。まず、判定領域を設定し（ステップＳ３１）、スコアを表す変数Ｓを０に設定するとともに、重みを取得した特徴画素の数を表す変数ｎを０に設定する（ステップＳ３２）。
【００４０】
そして、特徴画素Ｆ（ｎ）を選択する（ステップＳ３３）。Ｆ（ｎ）は、上述したように、エッジ番号ｑ、行番号ｙおよび列番号ｘで表される。なお、この例では、重みテーブルに重みが格納されている特徴画素のうち、顔検出に重要なものから順番に、Ｆ（０）、Ｆ（１）、Ｆ（２）、…として、特徴画素が選択されるようになっているものとする。
【００４１】
選択した特徴画素Ｆ（ｎ）に対応する画素値ｉ（ｎ）を、当該判定領域に対応するエッジ特徴画像から取得する（ステップＳ３４）。重みテーブルから、特徴画素Ｆ（ｎ）の画素値ｉ（ｎ）に対応する重みｗ（ｎ）を取得する（ステップＳ３５）。取得した重みｗ（ｎ）をスコアＳに加算する（ステップＳ３６）。
【００４２】
次に、ｎを１だけインクリメントする（ステップＳ３７）。そして、ｎ＝Ｎであるか否かを判別する（ステップＳ３８）。ｎ＝Ｎでなければ、ステップＳ３３に戻り、更新されたｎを用いて、ステップＳ３３〜Ｓ３８の処理を行なう。
【００４３】
Ｎ個の特徴画素に対して、ステップＳ３３〜Ｓ３６の処理が行なわれると、ステップＳ３８において、ｎ＝Ｎとなるため、ステップＳ３９に移行する。ステップＳ３９では、特徴画素数がＮ個である場合に予め定められた閾値ＴｈよりスコアＳが大きいか否かを判別する。Ｓ＞Ｔｈであれば、当該判定領域に顔が存在すると判定する（ステップＳ４０）。一方、Ｓ≦Ｔｈであれば、当該判定領域に顔が存在しないと判定する（ステップＳ４１）。
【００４４】
〔６〕顔検出処理手順の変形例
【００４５】
図９で説明したように、顔検出処理は、複数段階の判定ステップを備えているため、全ての判定ステップを実行した場合には、処理時間が長くなる。そこで、処理時間の短縮化を図るために、ある判定ステップでのスコアが既定値以上である場合には、次の判定ステップをスキップさせるようにする。
【００４６】
図１１は、顔検出処理が３段階の判定ステップからなる場合における顔検出処理手順を示している。
【００４７】
顔検出処理は、第１の判定ステップ（ステップＳ１２１）、第２判定ステップ（ステップＳ１２３）および第３の判定ステップ（ステップＳ１２４）を備えている。各判定ステップは、判定に用いる特徴画素数Ｎに違いがある。第１の判定ステップ〜第３の判定ステップでは、それぞれ判定に用いる特徴画素数ＮはＮ１〜Ｎ３となっている。Ｎ１＜Ｎ２＜Ｎ３である。各判定ステップでは、図１０で示した処理と同様な処理が行なわれる。
【００４８】
第１の判定ステップ（ステップＳ１２１）において、顔が検出されなかった場合には、次の判定ステップには移行せず、当該判定領域には顔は存在しないと判定する。第１の判定ステップ（ステップＳ１２１）において、顔が検出された場合には、第１の判定ステップで算出されたスコアＳが既定値以上であるか否かを判別する（ステップＳ１２２）。既定値は、第１の判定ステップにおいて、顔が非顔かを判別するための閾値Ｔｈより大きな値に設定されている。
【００４９】
スコアＳが既定値未満であれば、第２判定ステップ（ステップＳ１２３）に移行する。この場合には、図９と同様に、第２判定ステップによる処理が実行される。上記ステップＳ１２２において、スコアＳが既定値以上であると判別した場合には、第２判定ステップをスキップして、第３判定ステップ（ステップＳ１２４）に移行する。この場合には、処理時間の短縮化が図れる。
【００５０】
〔７〕重みテーブルの変形例
【００５１】
上記実施例においては、重みテーブルを用いて顔検出処理が行なわれている。重みテーブルでは、図８に示すように、顔検出に用いられる特徴画素毎に、取り得る画素値（０〜Ｍ）それぞれに対応して、顔らしさを表す重みｗが格納されている。したがって、重みテーブルでは、データ量が多く、大きなメモリ容量が必要となる。
【００５２】
この変形例では、重みテーブルの代わりに、顔検出に用いられる特徴画素毎に多項式の係数を記憶した係数テーブルを用いる。係数テーブルは、重みテーブルと同じデータから作成される。ある１つの特徴画素に対する係数テーブルの作成方法について説明する。
【００５３】
図１２の折れ線は、横軸にある特徴画素の画素値をとり、縦軸に重みｗをとった場合の重みテーブルの値（以下、テーブル値という）を示している。この変形例では、特徴画素の画素値毎のテーブル値を近似化する関数（フィッテング関数）を求める。言い換えれば、画素値に対して顔らしさを表す重みｗを求めるための関数を求める。図１２中の滑らかな曲線がフィッテング関数（多項式曲線）である。この例では、フィッテング関数としては、３次元の多項式が用いられる。なお、フィッテング関数の次数は任意に決定することができる。
【００５４】
テーブル値に対する多項式曲線へのフィッテングには、一般に最小２乗法が用いられる。つまり、各画素値毎の、テーブル値とそれを近似した関数との差、の２乗が最小となるように関数の係数を決定する。特徴画素Ｆ（ｎ）の重みをｗ（ｎ）とし、特徴画素Ｆ（ｎ）の画素値をｉ（ｎ）とすると、３次元のフィッテング関数は、次式（１）で表される。      
【００５５】
ｗ（ｎ）＝ａ3 ・ｉ（ｎ）3 ＋ａ2 ・ｉ（ｎ）2 ＋ａ1 ・ｉ（ｎ）＋ａ0 …（１）
【００５６】
特徴画素毎に、各画素値毎の、テーブル値と関数との差、の２乗が最小となるように係数値ａ0 、ａ1 、ａ2 、ａ3 を決定することにより、各特徴画素毎の係数値を求める。
【００５７】
図１３は、判定領域の大きさを８×８の大きさとした場合の、係数テーブルの内容例を示している。係数テーブルの左側の３桁の数字は、左から、エッジ番号ｑ、行番号ｙ、列番号ｘを表している。係数テーブルには、各エッジ特徴画像内の画素のうち、顔検出に用いられる特徴画素毎に、係数ａ0 、ａ1 、ａ2 、ａ3 の値が格納されている。
【００５８】
重みテーブルの代わりに係数テーブルを用いた場合には、図１０の判定処理の代わりに、図１４に示す判定処理が用いられる。
【００５９】
Ｎ個の特徴画素数を用いて判定を行なう場合について説明する。まず、判定領域を設定し（ステップＳ１３１）、スコアを表す変数Ｓを０に設定するとともに、重みを取得した特徴画素の数を表す変数ｎを０に設定する（ステップＳ１３２）。
【００６０】
そして、特徴画素Ｆ（ｎ）を選択する（ステップＳ１３３）。Ｆ（ｎ）は、エッジ番号ｑ、行番号ｙおよび列番号ｘで表される。なお、この例では、係数テーブルに係数が格納されている特徴画素のうち、顔検出に重要なものから順番に、Ｆ（０）、Ｆ（１）、Ｆ（２）、…として、特徴画素が選択されるようになっているものとする。
【００６１】
選択した特徴画素Ｆ（ｎ）に対応する画素値ｉ（ｎ）を、当該判定領域に対応するエッジ特徴画像から取得する（ステップＳ１３４）。係数テーブルから、特徴画素Ｆ（ｎ）に対応する多項式の係数ａ0 、ａ1 、ａ2 、ａ3 を取得する（ステップＳ１３５）。取得した画素値ｉ（ｎ）と係数ａ0 、ａ1 、ａ2 、ａ3 とを用いて、上記式（１）の多項式から重みｗ（ｎ）を算出する（ステップＳ１３６）。そして、得られた重みｗ（ｎ）をスコアＳに加算する（ステップＳ１３７）。
【００６２】
次に、ｎを１だけインクリメントする（ステップＳ１３８）。そして、ｎ＝Ｎであるか否かを判別する（ステップＳ１３９）。ｎ＝Ｎでなければ、ステップＳ１３３に戻り、更新されたｎを用いて、ステップＳ１３３〜Ｓ１３９の処理を行なう。
【００６３】
Ｎ個の特徴画素に対して、ステップＳ１３３〜Ｓ１３８の処理が行なわれると、ステップＳ１３９において、ｎ＝Ｎとなるため、ステップＳ１４０に移行する。ステップＳ１４０では、特徴画素数がＮ個である場合に予め定められた閾値ＴｈよりスコアＳが大きいか否かを判別する。Ｓ＞Ｔｈであれば、当該判定領域に顔が存在すると判定する（ステップＳ１４１）。一方、Ｓ≦Ｔｈであれば、当該判定領域に顔が存在しないと判定する（ステップＳ１４２）。
【００６４】
図８の重みテーブルと図１３の係数テーブルとのデータ量を比較する。フィッテング関数として３次元の多項式が用いられており、特徴画素の画素値の取り得る範囲を０〜Ｍとすると、係数テーブルのデータ量は重みテーブルのデータ量の４／Ｍとなる。Ｍ＝２５５とすると、データ削減率は、４／２５４＝０．０１６となる。
【００６５】
図１５は、係数テーブル（多項式）を用いた場合の検出率と誤検出率との関係（折れ線Ａ）と、重みテーブルを用いた場合の検出率と誤検出率との関係（折れ線Ｂ）とを示している。
【００６６】
縦軸に示す検出率とは、評価画像中に含まれる顔の総数に対して、検出に成功した顔の数の割合を表している。横軸に示す誤検出率とは、評価画像の枚数に対して、顔でない部分を誤って顔として検出した回数の割合を表している。検出率と誤検出率との関係は、検出感度の設定値（閾値Ｔｈ）を変更することによって１つの曲線を描く。図１５の折れ線グラフ上の各点（丸点または四角点）は、実際に閾値Ｔｈを変更させることにより得られたデータを示している。
【００６７】
検出率は高い方が好ましく、検出率と誤検出率との関係を表すデータは図１５において上側に位置する方が好ましいい。一方、誤検出率は低い方が好ましく、検出率と誤検出率との関係を表すデータは図１５において左側に位置する方が好ましい。図１５に示すように、係数テーブル（多項式）を用いた場合の検出率と誤検出率との関係（折れ線Ａ）は、重みテーブルを用いた場合の検出率と誤検出率との関係（折れ線Ｂ）より左上に位置しており、係数テーブル（多項式）を用いた場合の方が重みテーブルを用いた場合より、顔検出の精度が高いことがわかる。
【００６８】
この理由について考察する。重みテーブルの重みｗは大量の学習データ（画像データ）に基づいて算出される。図１２の折れ線で示すように、画素値毎の重みｗのテーブル値を繋ぐ折れ線には、画素値によって振幅が大きくなる部分がある。これは、学習データが大量であるとはいえ有限個であるため、学習データに多く含まれている画素値については正確な重みが算出されるが、学習データに少量しか含まれていない画素値については重みがばらつくことに起因していると考えられる。
【００６９】
一方、多項式を用いる場合には、各画素値に対する重みは図１２の曲線で表されるようになり、学習データに少量しか含まれていない画素値に対しても、全体的な傾向に応じた重みが与えられる。この結果、係数テーブル（多項式）を用いた場合の方が、重みテーブルを用いた場合より、顔検出の精度が高くなると考えられる。
【００７０】
なお、上記変形例では、特徴画素の画素値毎のテーブル値を近似化する関数（フィッテング関数）として多項式を用いるが、フィッテング関数として混合ガウス分布を用いるようにしてもよい。つまり、複数のガウス分布を重ねることにより、特徴画素の画素値毎のテーブル値を近似化する。
【００７１】
特徴画素Ｆ（ｎ）の重みをｗ（ｎ）とし、特徴画素Ｆ（ｎ）の画素値をｉ（ｎ）とすると、混合ガウス分布を用いたフィッテング関数は、次式（２）で表される。
【００７２】
ｗ（ｎ）＝Σａm ｅｘｐ｛（ｉ（ｎ）−ｂm ）／ｃm ｝  …（２）
【００７３】
Ｍを混合するガウス分布の数とすると、ａm （ｍ＝１，２，…，Ｍ）は合成係数、ｂm （ｍ＝１，２，…，Ｍ）は平均、ｃm （ｍ＝１，２，…，Ｍ）は分散であり、これらのパラメータが係数テーブルに格納される。
【実施例２】
【００７４】
実施例２以降の実施例では、重みテーブルおよび係数テーブルのうち、重みテーブルを用いた場合の実施例について説明するが、係数テーブルを用いてもよい。
【００７５】
実施例２は、検出可能な顔のサイズの種類は実施例１と同じであるが、生成する縮小画像の種類を実施例１に比べて少なくできることを特徴とするものである。
【００７６】
図１６は、顔検出装置の動作を示している。
【００７７】
まず、入力画像を取得し（ステップＳ５１）、入力画像から１または複数の縮小画像を生成する（ステップＳ５２）。入力画像および縮小画像から構成される各階層画像毎に、４方向別のエッジ特徴画像を生成し（ステップＳ５３）、各エッジ特徴画像と重みテーブルとを用いて顔検出処理を行なう（ステップＳ５４）。そして、検出結果を出力する（ステップＳ５５）。顔検出の終了指令が入力されていなければ（ステップＳ５６）、ステップＳ５１に戻る。ステップＳ５６において、顔検出の終了指令が入力されていれば、終了する。
【００７８】
ステップＳ５２の縮小画像の生成処理においては、図１７に示すように、例えば、実施例１の縮小率Ｒの３回分の縮小率ＲM ＝Ｒ3 を用いて、入力画像３０から縮小画像３３を生成する。実施例でＲ＝０．８に設定されている場合には、ＲM ＝０．５１２≒０．５となる。階層画像数は実施例１では６枚であるが、実施例２では２枚となる。ステップＳ５３では、実施例１と同様に、各階層画像毎に、４方向別のエッジ特徴画像を生成する。        
【００７９】
実施例２では、検出可能な顔のサイズの種類を実施例１と同じにするために、３種類の大きさの判定領域５１、５２、５３を用いて顔判定を行なう。各判定領域５１、５２、５３の大きさを、それぞれＴ１×Ｔ１、Ｔ２×Ｔ２、Ｔ３×Ｔ３とし、実施例１で用いた縮小率をＲとすると、次の関係式（３）が成り立つようにＴ１、Ｔ２、Ｔ３が設定される。      
【００８０】
Ｔ１＝Ｒ×Ｔ２
Ｔ２＝Ｒ×Ｔ３
Ｔ１＝Ｒ2 ×Ｔ３      …（３）
【００８１】
ここで、Ｒ＝０．８、Ｔ１＝２４とすると、Ｔ２＝３０、Ｔ３＝３７．５となる。計算上の利便性から、Ｔ３＝３６に設定される。重みテーブルも、３種類の判定領域それぞれに対応して予め３種類作成されて、メモリに保持されている。
【００８２】
ステップＳ５４で行なわれる顔検出処理は、実施例１と同様に、各階層画像毎に行なわれる。ただし、各階層画像に対して、３種類の判定領域５１、５２、５３それぞれを用いた顔検出処理が行なわれる。
【００８３】
図１８は、入力画像中の３種類の判定領域に対して行なわれる顔検出処理手順を示している。
【００８４】
実施例２では、３種類の判定領域５１、５２、５３それぞれに対して、顔検出処理が行なわれる。
【００８５】
入力画像中のＴ１×Ｔ１の判定領域５１に対して行なわれる顔検出処理は、第１の判定ステップ（ステップＳ６１）から第５の判定ステップ（ステップＳ６５）までの判定ステップを備えている。各判定ステップは、判定に用いる特徴画素数Ｎの違いがある。第１の判定ステップ（ステップＳ６１）〜第５の判定ステップ（ステップＳ６５）では、それぞれ判定に用いる特徴画素数ＮはＮ１〜Ｎ５となっている。Ｎ１＜Ｎ２＜Ｎ３＜Ｎ４＜Ｎ５である。ある判定ステップにおいて、顔が検出されなかった場合には、次の判定ステップには移行せず、当該判定領域には顔は存在しないと判定する。全ての判定ステップにおいて、顔が検出された場合にのみ、当該判定領域５１に顔が存在すると判定する。各判定ステップで実行される判定処理は、図１０で説明した判定処理と同様である。
【００８６】
入力画像中のＴ２×Ｔ２の判定領域５２に対して行なわれる顔検出処理も、判定領域５１に対して行なわれる顔検出処理と同様に、第１の判定ステップ（ステップＳ７１）から第５の判定ステップ（ステップＳ７５）までの判定ステップからなる。また、入力画像中のＴ３×Ｔ３の判定領域５３に対して行なわれる顔検出処理も、判定領域５１に対して行なわれる顔検出処理と同様に、第１の判定ステップ（ステップＳ８１）から第５の判定ステップ（ステップＳ８５）までの判定ステップからなる。
【００８７】
実施例２では、縮小画像の数が実施例１より少なくなるので、縮小処理と４方向別のエッジ特徴画像の生成処理とにおける処理量が大幅に削減される。一方、大きさが異なる複数種類の判定領域毎に、顔検出処理を行なう必要があるので、全判定ステップを処理するとした場合には、１枚の画像に対する顔検出処理の回数は増加する。しかしながら、顔が存在しない判定領域においては、少ない特徴画素数を用いる前半の判定ステップにおいて非顔と判定される場合が多いため、比較的高速に処理できると考えられる。この結果、実施例１に比べて、全体的な処理量が低減され、処理速度の高速化が図れる。
【実施例３】
【００８８】
〔１〕検出対象の顔の回転角度が異なる場合の顔検出方法
〔１−１〕回転角度が−９０°、＋９０°、１８０°の場合
図１９は、検出対象の顔の回転角度が異なる場合の入力画像の例を示している。
【００８９】
図１９（ａ）の画像６１は、一般にデジタルカメラなどで良く使用される横長の画像において、顔が直立した状態（デフォルトの回転角度位置（０°））で存在している場合を示している。図１９（ｂ）の画像６２は顔がデフォルトの回転角度位置から時計方向を基準として＋９０°回転した状態で存在している場合を、図１９（ｃ）の画像６３は顔がデフォルトの回転角度位置から時計方向を基準として−９０°回転した状態で存在している場合を、図１９（ｄ）の画像６４は顔がデフォルトの回転角度位置から１８０°回転した状態で存在している場合を、それぞれ示している。
【００９０】
このような回転角度位置が異なる顔を、デフォルトの回転位置用に作成した１種類の重みテーブルを用いて検出するためには、入力画像を回転させて、回転後の画像に対して４方向のエッジ特徴画像を生成すればよい。しかしながら、このようにすると、回転処理が必要となるとともに、回転後の各画像毎にエッジ特徴画像を生成する必要があるので、処理量が増大する。
【００９１】
また、デフォルトの回転位置用に作成した重みテーブルの他に、他の回転角度位置（＋９０°、−９０°、１８０°）それぞれのための重みテーブルを用意しておき、任意位置の判定領域に対して、各回転角度位置毎に、対応する重みテーブルを用いて、顔検出を行なうことも考えられる。この方法では、画像を回転させる必要はないが、各回転角度位置用に重みテーブルを作成して保持しておく必要がある。
【００９２】
実施例３では、入力画像を回転させることなく、かつデフォルトの回転位置用に作成した１種類の重みテーブルを用いて、回転角度位置の異なる顔を検出できるようにすることに特徴がある。
【００９３】
図２０は、重みテーブルにおいて指定されている特徴点（特徴画素）と直立状態の顔画像上における特徴点との対応関係と、重みテーブルにおいて指定されている特徴点（特徴画素）と＋９０°回転した状態の顔画像上における特徴点との対応関係とを示している。      
【００９４】
図２０の上段に示す図は、重みテーブルにおいて指定されている特徴点（ｑ，ｙ，ｘで表されている）を、エッジ番号（エッジ方向）別に表した図である。図２０の中段の図は、直立した顔画像に対応する４方向のエッジ特徴画像における特徴点を表した図である。図２０の下段の図は、＋９０°回転した状態の顔画像に対応する４方向のエッジ特徴画像における特徴点を表した図である。
【００９５】
重みテーブルにおいて指定されている特徴点ａ〜ｆは、＋９０°の顔画像に対応する４方向のエッジ特徴画像においては、図２０の下段に示すように現れる。つまり、重みテーブルで指定されている水平方向のエッジ方向に対応する特徴点ａ、ｂは、＋９０°の顔画像に対応するエッジ特徴画像においては垂直方向のエッジ特徴画像に現れる。また、重みテーブルで指定されている垂直方向のエッジ方向に対応する特徴点ｃ、ｄは、＋９０°の顔画像に対応するエッジ特徴画像においては水平方向のエッジ特徴画像に現れる。
【００９６】
また、重みテーブルで指定されている右斜上方向のエッジ方向に対応する特徴点ｅは、＋９０°の顔画像に対応するエッジ特徴画像においては左斜上方向のエッジ特徴画像に現れる。また、重みテーブルで指定されている左斜上方向のエッジ方向に対応する特徴点ｆは、＋９０°の顔画像に対応するエッジ特徴画像においては右斜上方向のエッジ特徴画像に現れる。
【００９７】
そして、重みテーブルで指定されている特徴点のｘｙ座標をｘ，ｙとし、＋９０°の顔画像に対応するエッジ特徴画像における特徴点のｘｙ座標をＸ，Ｙで表すとすると、対応する特徴点どうしの間においては、ｘｙ座標の関係は図２１の点Ｐと点Ｐ２との関係となる。したがって、次式（４）で示すような関係式が成り立つ。
【００９８】
Ｘ＝Ｔｘ−ｙ
Ｙ＝ｘ          …（４）
【００９９】
図２１に示すように、Ｔｘは判定領域の水平方向の長さであり、Ｔｙは判定領域の垂直方向の長さである。
【０１００】
つまり、重みテーブルで指定されている特徴点の位置（ｑ，ｙ，ｘ）と、＋９０°の顔画像（エッジ特徴画像）上の対応する特徴点の位置（Ｑ，Ｙ，Ｘ）との間には、表１に示すような関係がある。同様に、重みテーブルで指定されている特徴点の位置（ｑ，ｙ，ｘ）と、−９０°または１８０°の顔画像（エッジ特徴画像）上の対応する特徴点の位置（Ｑ，Ｙ，Ｘ）との間には、表１に示すような関係がある。さらに、横顔、斜め顔等のモデルを用いた顔検出においては、検出対象の顔画像が左右反転している場合や上下反転している場合もある。重みテーブルで指定されている特徴点の位置（ｑ，ｙ，ｘ）と、左右反転または上下反転の顔画像（エッジ特徴画像）上の対応する特徴点の位置（Ｑ，Ｙ，Ｘ）との間には、表１に示すような関係がある。
【０１０１】
【表１】
0004540661.tif 000002
【０１０２】
なお、重みテーブルで指定されている特徴点のｘｙ座標と、−９０°の顔画像（エッジ特徴画像）上の対応する特徴点のｘｙ座標との関係は、図２１の点Ｐと点Ｐ１との関係となる。重みテーブルで指定されている特徴点のｘｙ座標と、１８０°の顔画像（エッジ特徴画像）上の対応する特徴点のｘｙ座標との関係は、図２１の点Ｐと点Ｐ３との関係となる。
【０１０３】
表１の関係を利用することにより、デフォルトの回転位置用に作成された重みテーブルを用いて、デフォルトの顔画像を＋９０°、−９０°または１８０°回転した状態の顔画像ならびにデフォルトの顔画像を左右反転または上下反転した状態の顔画像を検出することが可能である。
【０１０４】
具体的には、たとえば、＋９０°の顔を検出したい場合には、図１０のステップＳ３３で特徴画素Ｆ（ｎ）を選択すると、選択した特徴画素Ｆ（ｎ）を、表１の関係に基づいて、＋９０°の顔画像（エッジ特徴画像）上の対応する特徴画素Ｆ’（ｎ）に変換する。ステップＳ３４では、エッジ特徴画像から、変換後の特徴画素Ｆ’（ｎ）の画素値ｉ（ｎ）を取り込む。ステップＳ３５では、重みテーブルから、特徴画素Ｆ（ｎ）の画素値ｉ（ｎ）に対応する重みｗ（ｎ）を取得する。それ以降の処理は実施例１、２と同じである。
【０１０５】
〔１−２〕回転角度が＋４５°、−４５°、＋１３５°、−１３５°の場合
図２２は、検出対象の顔の回転角度が異なる場合の入力画像の例を示している。
【０１０６】
図２２（ａ）の画像７１は、顔がデフォルトの回転角度位置から時計方向を基準として＋４５°回転した状態で存在している場合を、図２２（ｂ）の画像７２は顔がデフォルトの回転角度位置から時計方向を基準として−４５°回転した状態で存在している場合を、図２２（ｃ）の画像７３は顔がデフォルトの回転角度位置から時計方向を基準として＋１３５°回転した状態で存在している場合を、図２２（ｄ）の画像７４は顔がデフォルトの回転角度位置から−１３５°回転した状態で存在している場合を、それぞれ示している。      
【０１０７】
図２３は、重みテーブルにおいて指定されている特徴点（特徴画素）と直立状態の顔画像上における特徴点との対応関係と、重みテーブルにおいて指定されている特徴点（特徴画素）と＋４５°回転した状態の顔画像上における特徴点との対応関係とを示している。      
【０１０８】
図２３の上段に示す図は、重みテーブルにおいて指定されている特徴点（ｑ，ｙ，ｘで表されている）を、エッジ番号（エッジ方向）別に表した図である。図２３の中段の図は、直立した顔画像に対応する４方向のエッジ特徴画像における特徴点を表した図である。図２３の下段の図は、＋４５°回転した状態の顔画像に対応する４方向のエッジ特徴画像における特徴点を表した図である。
【０１０９】
重みテーブルにおいて指定されている特徴点ａ〜ｆは、＋４５°の顔画像に対応する４方向のエッジ特徴画像においては、図２３の下段に示すように現れる。つまり、重みテーブルで指定されている水平方向のエッジ方向に対応する特徴点ａ、ｂは、＋４５°の顔画像に対応するエッジ特徴画像においては左斜上方向のエッジ特徴画像に現れる。また、重みテーブルで指定されている垂直方向のエッジ方向に対応する特徴点ｃ、ｄは、＋４５°の顔画像に対応するエッジ特徴画像においては右斜上方向のエッジ特徴画像に現れる。
【０１１０】
また、重みテーブルで指定されている右斜上方向のエッジ方向に対応する特徴点ｅは、＋４５°の顔画像に対応するエッジ特徴画像においては水平方向のエッジ特徴画像に現れる。また、重みテーブルで指定されている左斜上方向のエッジ方向に対応する特徴点ｆは、＋４５°の顔画像に対応するエッジ特徴画像においては垂直方向のエッジ特徴画像に現れる。
【０１１１】
そして、重みテーブルで指定されている特徴点のｘｙ座標をｘ，ｙとし、＋４５°の顔画像に対応するエッジ特徴画像における特徴点のｘｙ座標をＸ，Ｙで表すとすると、対応する特徴点どうしの間においては、ｘｙ座標の関係は図２４の点Ｐと点Ｐ１との関係となる。したがって、次式（５）で示すような関係式が成り立つ。
【０１１２】
Ｘ＝（Ｔｙ＋ｘ−ｙ）／√２
Ｙ＝（ｘ＋ｙ）／√２        …（５）
【０１１３】
図２４に示すように、Ｔｘは判定領域の水平方向の長さであり、Ｔｙは判定領域の垂直方向の長さである。
【０１１４】
つまり、重みテーブルで指定されている特徴点の位置（ｑ，ｙ，ｘ）と、＋４５°の顔画像（エッジ特徴画像）上の対応する特徴点の位置（Ｑ，Ｙ，Ｘ）との間には、表２に示すような関係がある。同様に、重みテーブルで指定されている特徴点の位置（ｑ，ｙ，ｘ）と、−４５°、＋１３５°または−１３５°の顔画像（エッジ特徴画像）上の対応する特徴点の位置（Ｑ，Ｙ，Ｘ）との間には、表２に示すような関係がある。
【０１１５】
【表２】
0004540661.tif 000003
【０１１６】
なお、重みテーブルで指定されている特徴点のｘｙ座標と、−４５°の顔画像（エッジ特徴画像）上の対応する特徴点のｘｙ座標との関係は、図２４の点Ｐと点Ｐ２との関係となる。重みテーブルで指定されている特徴点のｘｙ座標と、＋１３５°の顔画像（エッジ特徴画像）上の対応する特徴点のｘｙ座標との関係は、図２４の点Ｐと点Ｐ３との関係となる。重みテーブルで指定されている特徴点のｘｙ座標と、−１３５°の顔画像（エッジ特徴画像）上の対応する特徴点のｘｙ座標との関係は、図２４の点Ｐと点Ｐ４との関係となる。
【０１１７】
表２の関係を利用することにより、デフォルトの回転位置用に作成された重みテーブルを用いて、デフォルトの顔画像を＋４５°、−４５°、＋１３５°または−１３５°回転した状態の顔画像を検出することが可能である。
【０１１８】
具体的には、たとえば、＋４５°の顔を検出したい場合には、図１０のステップＳ３３で特徴画素Ｆ（ｎ）を選択すると、選択した特徴画素Ｆ（ｎ）を、表２の関係に基づいて、＋４５°の顔画像（エッジ特徴画像）上の対応する特徴画素Ｆ’（ｎ）に変換する。ステップＳ３４では、エッジ特徴画像から、変換後の特徴画素Ｆ’（ｎ）の画素値ｉ（ｎ）を取り込む。ステップＳ３５では、重みテーブルから、特徴画素Ｆ（ｎ）の画素値ｉ（ｎ）に対応する重みｗ（ｎ）を取得する。それ以降の処理は実施例１、２と同じである。
【実施例４】
【０１１９】
実施例４は、図１６〜図１８を用いて説明した実施例２を改良したものである。
【０１２０】
実施例４と実施例２との違いは、図１６のステップ５１〜Ｓ５６のうち、ステップＳ５４の顔検出処理の内容が異なっている点にある。
【０１２１】
実施例２で説明したように、ステップＳ５２の縮小画像の生成処理においては、図２５に示すように、例えば、実施例１の縮小率Ｒの３回分の縮小率ＲM ＝Ｒ3 を用いて、入力画像３０から縮小画像３３を生成する。Ｒ＝０．８に設定されている場合には、ＲM ＝０．５１２≒０．５となる。ここでは、サイズの小さい画像３３を階層画像ｐと呼び、サイズの大きい画像３０を階層画像ｐ＋１と呼ぶことにする。ステップＳ５３（図１６参照）では、階層画像ｐ＋１，ｐ毎に、４方向別のエッジ特徴画像を生成する。
【０１２２】
以下、ステップＳ５４で行なわれる顔検出処理について説明する。図２５において、５１、５２、５３は、階層画像ｐ＋１に対して用いられる大きさの異なる判定領域である。各判定領域５１、５２、５３の大きさは、実施例２で説明したように、それぞれＴ１×Ｔ１、Ｔ２×Ｔ２、Ｔ３×Ｔ３である。
【０１２３】
また、図２５において、５４、５５、５６は、階層画像ｐに対して用いられる大きさの異なる判定領域である。各判定領域５４、５５、５６の大きさを、Ｔｐ１×Ｔｐ１、Ｔｐ２×Ｔｐ２、Ｔｐ３×Ｔｐ３とすると、Ｔｐ１、Ｔｐ２、Ｔｐ３は、次式（６）で示すような大きさに設定されている。
【０１２４】
Ｔｐ１＝Ｒ3 ×Ｔ１≒０．５Ｔ１
Ｔｐ２＝Ｒ3 ×Ｔ２≒０．５Ｔ２
Ｔｐ３＝Ｒ3 ×Ｔ３≒０．５Ｔ３      …（６）
【０１２５】
このように、Ｔｐ１、Ｔｐ２、Ｔｐ３を設定すると、階層画像ｐ＋１に対して判定領域５１を用いて検出できる顔サイズと、階層画像ｐに対して判定領域５４を用いて検出できる顔サイズとが同じになる。また、階層画像ｐ＋１に対して判定領域５２を用いて検出できる顔サイズと、階層画像ｐに対して判定領域５５を用いて検出できる顔サイズとが同じになる。また、階層画像ｐ＋１に対して判定領域５３を用いて検出できる顔サイズと、階層画像ｐに対して判定領域５６を用いて検出できる顔サイズとが同じになる。
【０１２６】
重みテーブルは、６種類の判定領域５１〜５６それぞれに対応して予め６種類作成されて、メモリに保持されている。
【０１２７】
ステップＳ５４（図１６参照）で行なわれる顔検出処理は、階層画像ｐ＋１，ｐ毎に行なわれるが、実施例４では、サイズの大きい階層画像ｐ＋１に対する顔検出処理を行なう際には、前処理として、それより全体の画素数が少ない下位の階層画像ｐを用いて粗検出を行なう。
【０１２８】
図２６は、階層画像ｐ＋１に対する顔検出処理手順を示している。
【０１２９】
前処理として、階層画像ｐを用いて粗検出を行なう点が実施例２と異なっている。
【０１３０】
図２６において、ステップＳ６１〜Ｓ６５は、階層画像ｐ＋１中のＴ１×Ｔ１の判定領域５１に対して行なわれる顔検出処理を示しており、図１８のステップＳ６１〜Ｓ６５と同じ処理である。また、ステップＳ７１〜Ｓ７５は、階層画像ｐ＋１中のＴ２×Ｔ２の判定領域５２に対して行なわれる顔検出処理を示しており、図１８のステップＳ７１〜Ｓ７５と同じ処理である。また、ステップＳ８１〜Ｓ８５は、階層画像ｐ＋１中のＴ３×Ｔ３の判定領域５３に対して行なわれる顔検出処理を示しており、図１８のステップＳ８１〜Ｓ８５と同じ処理である。
【０１３１】
ステップＳ９１は、ステップＳ６１の前に行なわれる粗検出処理である。ステップＳ９１においては、階層画像ｐ中のＴｐ１×Ｔｐ１の判定領域５４に対して、予め定められた特徴画素数Ｎａを用いて、顔検出処理を行なう。処理手順は、図１０で説明した手順となる。この粗検出処理において、顔が検出された場合にのみステップＳ６１に移行する。
【０１３２】
ステップＳ９２は、ステップＳ７１の前に行なわれる粗検出処理である。ステップＳ９２においては、階層画像ｐ中のＴｐ２×Ｔｐ２の判定領域５５に対して、予め定められた特徴画素数Ｎｂを用いて、顔検出処理を行なう。処理手順は、図１０で説明した手順となる。この粗検出処理において、顔が検出された場合にのみステップＳ７１に移行する。
【０１３３】
ステップＳ９３は、ステップＳ８１の前に行なわれる粗検出処理である。ステップＳ９３においては、階層画像ｐ中のＴｐ３×Ｔｐ３の判定領域５６に対して、予め定められた特徴画素数Ｎｃを用いて、顔検出処理を行なう。処理手順は、図１０で説明した手順となる。この粗検出処理において、顔が検出された場合にのみステップＳ８１に移行する。
【０１３４】
なお、階層画像ｐに対する顔検出処理は、判定領域の大きさが実施例２とは異なるが、実施例２と同様な処理によって行なわれる。
【０１３５】
実施例４では、サイズの大きい階層画像ｐ＋１に対する顔検出処理を行なう際には、前処理として、それより全体の画素数が少ない下位の階層画像ｐを用いて粗検出を行なっているので、粗検出において顔が検出されない場合に、階層画像ｐ＋１に対する処理を省略できるため、処理の高速化が図れる。
【実施例５】
【０１３６】
実施例５は、図１６〜図１８を用いて説明した実施例２を改良したものである。
【０１３７】
実施例５と実施例２との違いは、図１６のステップＳ５１〜Ｓ５６のうち、ステップＳ５４の顔検出処理の内容が異なっている点にある。
【０１３８】
実施例２で説明したように、ステップＳ５２の縮小画像の生成処理においては、図２７に示すように、例えば、実施例１の縮小率Ｒの３回分の縮小率ＲM ＝Ｒ3 を用いて、入力画像３０から縮小画像３３を生成する。Ｒ＝０．８に設定されている場合には、ＲM ＝０．５１２≒０．５となる。ここでは、サイズの小さい画像３３を階層画像ｐと呼び、サイズの大きい画像３０を階層画像ｐ＋１と呼ぶことにする。図２７において、５１、５２、５３は、大きさの異なる判定領域である。各判定領域５１、５２、５３の大きさは、実施例２で説明したように、それぞれＴ１×Ｔ１、Ｔ２×Ｔ２、Ｔ３×Ｔ３である。
【０１３９】
図２７において、５７は粗検出用の判定領域を示している。粗検出用の判定領域の大きさをＴｃ×Ｔｃとすると、Ｔｃ＝Ｔ３となる。ステップＳ５３（図１６参照）では、階層画像ｐ＋１，ｐ毎に、４方向別のエッジ特徴画像を生成する。
【０１４０】
以下、ステップＳ５４（図１６参照）で行なわれる顔検出処理について説明する。
【０１４１】
実施例５においても、実施例２と同様に、各判定領域５１、５２、５３の大きさに応じた３種類の重みテーブルがメモリに保持されている。実施例５においては、さらに、粗検出に用いられる共通重みテーブルが予め作成されて保持されている。共通重みテーブルは、概念的には、図２８に示すように、判定領域５１、５２、５３の大きさに対応した３つの顔画像を重ね合わせた画像に基づいて作成される。つまり、共通重みテーブルは、３種類の大きさの異なる顔画像を含む画像に基づいて作成される。したがって、共通重みテーブルを用いて顔検出を行なった場合には、３種類の大きさの異なる顔のうちのいずれかの顔が存在するか否かを、大まかに判定することが可能である。
【０１４２】
ステップＳ５４（図１６参照）で行なわれる顔検出処理は、階層画像ｐ＋１，ｐ毎に行なわれるが、実施例５では、各階層画像ｐ＋１，ｐに対する顔検出処理を行なう際には、前処理として、共通重みテーブルを用いて粗検出を行なう。
【０１４３】
図２９は、ある階層画像に対する顔検出処理手順を示している。
【０１４４】
図２９において、ステップＳ６１〜Ｓ６５は、階層画像中のＴ１×Ｔ１の判定領域５１に対して行なわれる顔検出処理を示しており、図１８のステップＳ６１〜Ｓ６５と同じ処理である。また、ステップＳ７１〜Ｓ７５は、階層画像中のＴ２×Ｔ２の判定領域５２に対して行なわれる顔検出処理を示しており、図１８のステップＳ７１〜Ｓ７５と同じ処理である。また、ステップＳ８１〜Ｓ８５は、階層画像中のＴ３×Ｔ３の判定領域５３に対して行なわれる顔検出処理を示しており、図１８のステップＳ８１〜Ｓ８５と同じ処理である。
【０１４５】
顔検出処理においては、まず、階層画像中のＴｃ×Ｔｃの判定領域５７に対して、共通重みテーブルを用いて粗検出を行なう（ステップＳ１０１）。この際に用いられる特徴画素数は予め定められている。粗検出において、顔が検出されなかった場合には、当該判定領域内には顔は存在しないと判別し、当該判定領域内における通常の判定処理を省略する。粗検出において、顔が検出された場合にのみ、実施例２と同様な処理（ステップＳ６１以降の処理、ステップＳ７１以降の処理、ステップＳ８１以降の処理）を行なう。
【０１４６】
実施例５では、各階層画像に対する顔検出処理を行なう際には、前処理として、共通重みテーブルを用いて粗検出を行なっているので、粗検出において顔が検出されない場合に、通常の判定処理を省略できるため、処理の高速化が図れる。
【実施例６】
【０１４７】
実施例６は、図１６〜図１８を用いて説明した実施例２を改良したものである。
【０１４８】
実施例６と実施例２との違いは、図１６のステップ５１〜Ｓ５６のうち、ステップＳ５４の顔検出処理の内容が異なっている点にある。
【０１４９】
実施例２で説明したように、ステップＳ５２の縮小画像の生成処理においては、図３０に示すように、例えば、実施例１の縮小率Ｒの３回分の縮小率ＲM ＝Ｒ3 を用いて、入力画像３０から縮小画像３３を生成する。Ｒ＝０．８に設定されている場合には、ＲM ＝０．５１２≒０．５となる。ここでは、サイズの小さい画像３３を階層画像ｐと呼び、サイズの大きい画像３０を階層画像ｐ＋１と呼ぶことにする。ステップＳ５３（図１６参照）では、階層画像ｐ＋１，ｐ毎に、４方向別のエッジ特徴画像を生成する。
【０１５０】
以下、ステップＳ５４（図１６参照）で行なわれる顔検出処理について説明する。
【０１５１】
図３０において、５１、５２、５３は、大きさの異なる判定領域である。各判定領域５１、５２、５３の大きさは、実施例２で説明したように、それぞれＴ１×Ｔ１、Ｔ２×Ｔ２、Ｔ３×Ｔ３である。また、図３０において、５８は、粗検出に用いる判定領域である。この粗検出は、階層画像ｐ＋１より下位の階層画像ｐを用いて行なわれる。
【０１５２】
判定領域５８の大きさを、Ｔｐｃ×Ｔｐｃとすると、Ｔｐｃは、次式（７）で示すような大きさに設定されている。
【０１５３】
Ｔｐｃ＝Ｒ3 ×Ｔ３≒０．５Ｔ３…（７）
【０１５４】
実施例６においても、実施例２と同様に、各判定領域５１、５２、５３の大きさに応じた３種類の重みテーブルがメモリに保持されている。実施例６においては、さらに、階層画像ｐ上の判定領域５８に対応した粗検出用の共通重みテーブルが予め作成されて保持されている。共通重みテーブルは、実施例５で説明したようにして生成される。したがって、共通重みテーブルを用いて顔検出を行なった場合には、３種類の大きさの異なる顔のうちのいずれか１つの顔が存在するか否かを、大まかに判定することが可能である。
【０１５５】
ステップＳ５４（図１６参照）で行なわれる顔検出処理は、階層画像ｐ＋１，ｐ毎に行なわれるが、実施例６では、サイズの大きい階層画像ｐ＋１に対する顔検出処理を行なう際には、前処理として、それより全体の画素数が少ない下位の階層画像ｐを用いて粗検出を行なう。
【０１５６】
図３１は、階層画像ｐ＋１に対する顔検出処理手順を示している。
【０１５７】
図３１において、ステップＳ６１〜Ｓ６５は、階層画像ｐ＋１中のＴ１×Ｔ１の判定領域５１に対して行なわれる顔検出処理を示しており、図１８のステップＳ６１〜Ｓ６５と同じ処理である。また、ステップＳ７１〜Ｓ７５は、階層画像ｐ＋１中のＴ２×Ｔ２の判定領域５２に対して行なわれる顔検出処理を示しており、図１８のステップＳ７１〜Ｓ７５と同じ処理である。また、ステップＳ８１〜Ｓ８５は、階層画像ｐ＋１中のＴ３×Ｔ３の判定領域５３に対して行なわれる顔検出処理を示しており、図１８のステップＳ８１〜Ｓ８５と同じ処理である。
【０１５８】
顔検出処理においては、まず、階層画像ｐ中のＴｐｃ×Ｔｐｃの判定領域５８に対して、共通重みテーブルを用いて粗検出を行なう（ステップＳ１０２）。この際に用いられる特徴画素数は予め定められている。粗検出において、顔が検出されなかった場合には、当該判定領域内には顔は存在しないと判別し、当該判定領域内における通常の判定処理を省略する。粗検出において、顔が検出された場合にのみ、実施例２と同様な処理（ステップＳ６１以降の処理、ステップＳ７１以降の処理、ステップＳ８１以降の処理）を行なう。      
【０１５９】
なお、階層画像ｐに対する顔検出処理は、実施例２と同様な処理によって行なわれる。実施例６では、サイズの大きい階層画像ｐ＋１に対する顔検出処理を行なう際には、前処理として、それより全体の画素数が少ない下位の階層画像ｐに対して共通重みテーブルを用いて粗検出を行なっているので、粗検出において顔が検出されない場合に、階層画像ｐ＋１に対する処理を省略できるため、処理の高速化が図れる。
【実施例７】
【０１６０】
実施例７は、図１６〜図１８を用いて説明した実施例２を改良したものである。
【０１６１】
実施例７と実施例２との違いは、図１３のステップ５１〜Ｓ５６のうち、ステップＳ５４の顔検出処理の内容が異なっている点にある。
【０１６２】
実施例２で説明したように、ステップＳ５２の縮小画像の生成処理においては、図３２に示すように、例えば、実施例１の縮小率Ｒの３回分の縮小率ＲM ＝Ｒ3 を用いて、入力画像３０から縮小画像３３を生成する。Ｒ＝０．８に設定されている場合には、ＲM ＝０．５１２≒０．５となる。ここでは、サイズの小さい画像３３を階層画像ｐと呼び、サイズの大きい画像３０を階層画像ｐ＋１と呼ぶことにする。
【０１６３】
図３２において、５１、５２、５３は、大きさの異なる判定領域である。各判定領域５１、５２、５３の大きさは、実施例２で説明したように、それぞれＴ１×Ｔ１、Ｔ２×Ｔ２、Ｔ３×Ｔ３である。図３２において、５７は実施例５で説明したように、階層画像ｐ＋１に対して用いられる粗検出用の判定領域（以下、第２の粗検出用の判定領域という）を示している。第２の粗検出用の判定領域の大きさをＴｃ×Ｔｃとすると、Ｔｃ＝Ｔ３となる。第２の粗検出用の判定領域５７を用いた第２の粗検出は、階層画像ｐ＋１を用いて行なわれる。
【０１６４】
また、図３２において、５８は、実施例６で説明したように、階層画像ｐに対して用いられる粗検出用の判定領域（以下、第１の粗検出用の判定領域という）である。第１の粗検出用の判定領域５８を用いた第１の粗検出は、階層画像ｐ＋１より下位の階層画像ｐを用いて行なわれる。
【０１６５】
判定領域５８の大きさを、Ｔｐｃ×Ｔｐｃとすると、Ｔｐｃは、次式（８）で示すような大きさに設定されている。
【０１６６】
Ｔｐｃ＝Ｒ3 ×Ｔ３≒０．５Ｔ３…（８）
【０１６７】
ステップＳ５３（図１６参照）では、階層画像ｐ＋１，ｐ毎に、４方向別のエッジ特徴画像を生成する。
【０１６８】
以下、ステップＳ５４（図１６参照）で行なわれる顔検出処理について説明する。
【０１６９】
実施例７においても、実施例２と同様に、各判定領域５１、５２、５３の大きさに応じた３種類の重みテーブルがメモリに保持されている。実施例７においては、さらに、第２の粗検出用の判定領域５７に対応した第２の共通重みテーブルが予め作成されて保持されているとともに、第１の粗検出用の判定領域５８に対応した第１の共通重みテーブルが予め作成されて保持されている。これらの共通重みテーブルは、実施例５で説明したようにして生成される。
【０１７０】
ステップＳ５４（図１６参照）で行なわれる顔検出処理は、階層画像ｐ＋１，ｐ毎に行なわれるが、実施例７では、サイズの大きい階層画像ｐ＋１に対する顔検出処理を行なう際には、前処理として、まず、それより全体の画素数が少ない下位の階層画像ｐを用いた第１の粗検出処理を行なった後に、階層画像ｐ＋１を用いた第２の粗検出処理を行なう。      
【０１７１】
図３３は、階層画像ｐ＋１に対する顔検出処理手順を示している。
【０１７２】
図３３において、ステップＳ６１〜Ｓ６５は、階層画像ｐ＋１中のＴ１×Ｔ１の判定領域５１に対して行なわれる顔検出処理を示しており、図１８のステップＳ６１〜Ｓ６５と同じ処理である。また、ステップＳ７１〜Ｓ７５は、階層画像ｐ＋１中のＴ２×Ｔ２の判定領域５２に対して行なわれる顔検出処理を示しており、図１８のステップＳ７１〜Ｓ７５と同じ処理である。また、ステップＳ８１〜Ｓ８５は、階層画像ｐ＋１中のＴ３×Ｔ３の判定領域５３に対して行なわれる顔検出処理を示しており、図１８のステップＳ８１〜Ｓ８５と同じ処理である。
【０１７３】
顔検出処理においては、まず、階層画像ｐ中のＴｐｃ×Ｔｐｃの第１の粗検出用の判定領域５８に対して、第１の粗検出用の共通重みテーブルを用いて第１の粗検出を行なう（ステップＳ２０１）。この際に用いられる特徴画素数は予め定められている。第１の粗検出において、顔が検出されなかった場合には、当該判定領域内には顔は存在しないと判別し、当該判定領域内における通常の判定処理を省略する。
【０１７４】
第１の粗検出において、顔が検出された場合には、階層画像ｐ＋１中のＴｃ×Ｔｃの第２の粗検出用の判定領域５７に対して、第２の粗検出用の共通重みテーブルを用いて第２の粗検出を行なう（ステップＳ２０２）。この際に用いられる特徴画素数は予め定められている。第２の粗検出において、顔が検出されなかった場合には、当該判定領域内には顔は存在しないと判別し、当該判定領域内における通常の判定処理を省略する。第２の粗検出において、顔が検出された場合にのみ、実施例２と同様な処理（ステップＳ６１以降の処理、ステップＳ７１以降の処理、ステップＳ８１以降の処理）を行なう。
【０１７５】
なお、階層画像ｐに対する顔検出処理は、実施例２と同様な処理によって行なわれる。実施例７では、サイズの大きい階層画像ｐ＋１に対する顔検出処理を行なう際には、前処理として、それより全体の画素数が少ない下位の階層画像ｐに対して第１の共通重みテーブルを用いて第１の粗検出を行なうとともに、階層画像ｐ＋１に対して第２の共通重みテーブルを用いて第２の粗検出を行なっているので、粗検出において顔が検出されない場合に、階層画像ｐ＋１に対する通常の判定処理を省略できるため、処理の高速化が図れる。
【実施例８】
【０１７６】
上記実施例では、説明の便宜上、正面顔に対する重みテーブル（または係数テーブル）を用いて顔を検出する場合について説明した。
【０１７７】
顔検出の精度を高めるためには、正面顔に対する重みテーブル（または係数テーブル）を用いた第１の顔検出処理と、横顔に対する重みテーブル（または係数テーブル）を用いた第２の顔検出処理と、斜め顔に対する重みテーブル（または係数テーブル）を用いた第２の顔検出処理とをそれぞれ行ない、いずれかの顔検出処理において顔が検出された場合に、顔が存在すると判定する。
【０１７８】
第１の顔検出処理、第２の顔検出処理および第３の顔検出処理のそれぞれは、図９で示すように、複数段階の判定ステップを備えており、これら全ての判定ステップを処理するためには時間がかかる。そこで、実施例８では、処理時間の短縮化を図る。                  
【０１７９】
図３４は、顔検出処理手順を示している。
【０１８０】
ここでは、説明の便宜上、正面顔に対する重みテーブル（または係数テーブル）を用いた第１の顔検出処理は、２段階の判定ステップ（ステップＳ３０１、ステップＳ３０２）からなるものとする。第１段階の判定ステップ（ステップＳ３０１）と第２段階の判定ステップ（ステップＳ３０２）とでは、判定に用いられる特徴画素数が異なる。つまり、第２段階の判定ステップ（ステップＳ３０２）で用いられる特徴画素数は、第１段階の判定ステップ（ステップＳ３０１）で用いられる特徴画素数より多い。
【０１８１】
同様に、横顔に対する重みテーブル（または係数テーブル）を用いた第２の顔検出処理も、２段階の判定ステップ（ステップＳ４０１、ステップＳ４０２）からなり、斜め顔に対する重みテーブル（または係数テーブル）を用いた第３の顔検出処理も、２段階の判定ステップ（ステップＳ５０１、ステップＳ５０２）からなるものとする。
【０１８２】
まず、第１の顔検出処理の第１段階の判定ステップ（ステップＳ３０１）、第２の顔検出処理の第１段階の判定ステップ（ステップＳ４０１）および第３の顔検出処理の第１段階の判定ステップ（ステップＳ５０１）を行なう。
【０１８３】
ステップＳ３０１、Ｓ４０１およびＳ５０１の全てにおいて、顔が検出されなかった場合には、顔が存在しないと判別される。ステップＳ３０１、Ｓ４０１およびＳ５０１のいずれかにおいて、顔が検出された場合には、ステップＳ６００に移行する。
【０１８４】
ステップＳ６００では、ステップＳ３０１、Ｓ４０１およびＳ５０１のうち、顔が検出されたステップで算出されたスコアＳに基づいて、続行する処理を判定する。つまり、顔が検出された第１段階の判定ステップで算出されたスコアのうち、最もスコアＳの大きい判定ステップに対応する顔検出処理の種類（第１〜第３の顔検出処理）を特定する。そして、特定した顔検出処理の種類の第２段階の判定ステップに移行する。
【０１８５】
例えば、ステップＳ３０１、Ｓ４０１およびＳ５０１の全てにおいて、顔が検出された場合において、それらのステップで算出されたスコアＳのうち、ステップＳ３０１で算出されたスコアが最も大きい場合には、第１の顔検出処理の第２段階の判定ステップであるステップＳ３０２に移行する。この場合、第２の顔検出処理および第３の顔検出処理の第２段階移行の判定ステップは行なわれない。
【図面の簡単な説明】
【０１８６】
【図１】顔検出装置の構成を示すブロック図である。
【図２】顔検出装置の動作を示すフローチャートである。
【図３】1266562383827_0のステップＳ２によって得られる複数の階層画像を示す模式図である。
【図４】1266562383827_1のステップＳ３で行なわれる４方向のエッジ特徴画像の生成処理の手順を示すフローチャートである。
【図５】水平方向エッジ、垂直方向エッジ、右斜上方向エッジおよび左斜上方向エッジの４方向それぞれに対応する微分フィルタの一例を示す模式図である。
【図６】1266562383827_2のステップＳ４の顔検出処理を説明するための模式図である。
【図７】入力画像内の判定領域に対応する４方向のエッジ特徴画像を示す模式図である。
【図８】重みテーブルの内容例を示す模式図である。
【図９】入力画像内に設定された判定領域に対して行なわれる顔検出処理手順を示すフローチャートである。
【図１０】1266562383827_3の各判定ステップで実行される判定処理手順を示すフローチャートである。
【図１１】顔検出処理の変形例を示すフローチャートである。
【図１２】横軸にある特徴画素の画素値をとり、縦軸に重みｗをとった場合の重みテーブルの値（以下、テーブル値という）と、特徴画素の画素値毎のテーブル値を近似化する多項式曲線とを示すグラフである。
【図１３】係数テーブルの内容例を示す模式図である。
【図１４】係数テーブルを用いた場合の判定処理手順を示すフローチャートである。
【図１５】係数テーブル（多項式）を用いた場合の検出率と誤検出率との関係（折れ線Ａ）と、重みテーブルを用いた場合の検出率と誤検出率との関係（折れ線Ｂ）とを示すグラフである。
【図１６】顔検出装置の動作を示すフローチャートである。
【図１７】1266562383827_4のステップＳ５２によって得られる２つの階層画像と、複数種類の判定領域とを示す模式図である。
【図１８】入力画像中の３種類の判定領域に対して行なわれる顔検出処理手順を示すフローチャートである。
【図１９】検出対象の顔の回転角度が異なる場合の入力画像の例を示す模式図である。
【図２０】重みテーブルにおいて指定されている特徴点（特徴画素）と直立状態の顔画像上における特徴点との対応関係と、重みテーブルにおいて指定されている特徴点（特徴画素）と＋９０°回転した状態の顔画像上における特徴点との対応関係とを示す模式図である。
【図２１】重みテーブルで指定されている特徴点のｘｙ座標と、−９０°、＋９０°および１８０°の顔画像（エッジ特徴画像）上の対応する特徴点とのｘｙ座標の関係を示す模式図である。
【図２２】検出対象の顔の回転角度が異なる場合の入力画像の例を示す模式図である。
【図２３】重みテーブルにおいて指定されている特徴点（特徴画素）と直立状態の顔画像上における特徴点との対応関係と、重みテーブルにおいて指定されている特徴点（特徴画素）と＋４５°回転した状態の顔画像上における特徴点との対応関係とを示す模式図である。
【図２４】重みテーブルで指定されている特徴点のｘｙ座標と、＋４５°、−４５°、＋１３５°および−１３５°の顔画像（エッジ特徴画像）上の対応する特徴点とのｘｙ座標の関係を示す模式図である。
【図２５】２つの階層画像と、各階層画像に対して用いられる判定領域とを示す模式図である。
【図２６】顔検出処理手順を示すフローチャートである。
【図２７】２つの階層画像と、判定領域と、粗検出用の判定領域とを示す模式図である。
【図２８】共通重みテーブルの生成方法を概念的に説明するための模式図である。
【図２９】ある階層画像に対する顔検出処理手順を示すフローチャートである。
【図３０】２つの階層画像と、判定領域と粗検出用の判定領域とを示す模式図である。
【図３１】顔検出処理手順を示すフローチャートである。
【図３２】２つの階層画像と判定領域と粗検出用の判定領域とを示す模式図である。
【図３３】顔検出処理手順を示すフローチャートである。
【図３４】顔検出処理手順を示すフローチャートである。
【符号の説明】
【０１８７】
１１  ＡＤ変換手段
１２  縮小画像生成手段
１３  ４方向エッジ特徴画像生成手段
１４  重みテーブルを記憶したメモリ
１５  顔判定手段
１６  検出結果出力手段
【図１】
0004540661.tif 000004
【図２】
0004540661.tif 000005
【図３】
0004540661.tif 000006
【図４】
0004540661.tif 000007
【図５】
0004540661.tif 000008
【図６】
0004540661.tif 000009
【図７】
0004540661.tif 000010
【図８】
0004540661.tif 000011
【図９】
0004540661.tif 000012
【図１０】
0004540661.tif 000013
【図１１】
0004540661.tif 000014
【図１２】
0004540661.tif 000015
【図１３】
0004540661.tif 000016
【図１４】
0004540661.tif 000017
【図１５】
0004540661.tif 000018
【図１６】
0004540661.tif 000019
【図１７】
0004540661.tif 000020
【図１８】
0004540661.tif 000021
【図１９】
0004540661.tif 000022
【図２０】
0004540661.tif 000023
【図２１】
0004540661.tif 000024
【図２２】
0004540661.tif 000025
【図２３】
0004540661.tif 000026
【図２４】
0004540661.tif 000027
【図２５】
0004540661.tif 000028
【図２６】
0004540661.tif 000029
【図２７】
0004540661.tif 000030
【図２８】
0004540661.tif 000031
【図２９】
0004540661.tif 000032
【図３０】
0004540661.tif 000033
【図３１】
0004540661.tif 000034
【図３２】
0004540661.tif 000035
【図３３】
0004540661.tif 000036
【図３４】
0004540661.tif 000037