(57)【要約】【課題】撮像された画像の中の顔をより正確に検出する。【解決手段】顔候補データベースから読み出された矩形領域Ｆ３１の顔候補画像データに対して、水平および垂直方向にそれぞれ幅Ｍだけ距離を持たせた同一判定枠Ｆ３０を設け、重複すると判定された矩形領域画像データが同一判定枠Ｆ３０内に含まれるか否かを判定する。重複すると判定された矩形領域Ｆ３２の画像データが同一判定枠Ｆ３０内に含まれる場合には、矩形領域Ｆ３２の画像データが矩形領域Ｆ３１の顔候補画像データと同一の顔に対する矩形領域画像データであると判定する。一方、重複すると判定された矩形領域Ｆ３３の画像データが同一判定枠Ｆ３０内に含まれない場合には、矩形領域Ｆ３３の画像データが矩形領域Ｆ３１の顔候補画像データと同一の顔に対する矩形領域画像データではない、または、確度値の低い矩形領域画像データであると判定する。【選択図】図９
2009110486.tif 000002
【特許請求の範囲】
【請求項１】
入力された画像データのサイズを変換する画像変換部と、
上記サイズ変換された画像データを記憶し、該サイズ変換された画像データに対して所定サイズの矩形領域を移動させて走査処理を行い、矩形領域画像データを順次切り出す画像メモリと、
切り出された上記矩形領域画像データから顔領域を検出する顔検出処理部と
を有し、
上記画像メモリには、複数の顔候補についての顔領域を含む複数の顔候補画像データがそれぞれ記憶され、
上記顔検出処理部は、
上記矩形領域画像データが顔領域を含むか否かを判定する顔判定処理を行い、
上記矩形領域画像データが顔領域を含むと判定された場合に、上記画像メモリに記憶された所定の顔候補に対する顔候補画像データに対して水平方向および垂直方向に所定幅を加えた同一判定枠を設定し、該同一判定枠を基準として上記矩形領域画像データが上記同一判定枠内に含まれるか否かを判定する同一判定処理を行う
ことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
上記顔検出処理部は、
上記画像メモリに記憶された上記所定の顔候補に対する顔候補画像データと、上記矩形領域画像データとを比較し、それぞれの画像データが所定の面積比率で重複するか否かを判定する重複判定処理を行い、
重複すると判定された場合に上記矩形領域画像データに対して上記同一判定処理をさらに行う
ことを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置において、
上記顔検出処理部は、
上記重複判定処理において上記所定の顔候補に対する顔候補画像データと上記矩形領域画像データとが重複していないと判定された場合に、次の顔候補に対する顔候補画像データと上記矩形領域画像データとが重複しているか否かを判定する
ことを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置において、
上記顔検出処理部は、
上記重複判定処理において全ての顔候補に対する顔候補画像データと上記矩形領域画像データとが重複していないと判定された場合に、上記矩形領域画像データを新たな顔候補に対する顔候補画像データとして、上記画像メモリに記憶する
ことを特徴とする画像処理装置。
【請求項５】
請求項１に記載の画像処理装置において、
上記顔候補画像データの位置情報、サイズ情報および顔らしさを示す確度値が上記顔候補画像データに対して関連付けられて上記画像メモリに記憶されている
ことを特徴とする画像処理装置。
【請求項６】
請求項５に記載の画像処理装置において、
上記顔検出処理部は、
上記同一判定処理において上記矩形領域画像データが上記同一判定枠内に含まれていると判定された場合に、上記画像メモリに記憶された上記所定の顔候補についての上記複数の顔候補画像データと上記矩形領域画像データとの中から、上記顔らしさを示す確度値が上位である所定数の画像データを選択する検出確度判定処理を行い、
上記選択された所定数の画像データを上記所定の顔候補についての新たな顔候補画像データとして上記画像メモリに記憶する
ことを特徴とする画像処理装置。
【請求項７】
請求項６に記載の画像処理装置において、
上記検出確度判定処理では、上記画像メモリに記憶された上記所定の顔候補についての上記複数の顔候補画像データと上記矩形領域画像データとの中から、上記確度値が上位である３つの画像データを選択する
ことを特徴とする画像処理装置。
【請求項８】
請求項６に記載の画像処理装置において、
上記顔検出処理部は、
上記画像メモリに記憶された上記複数の顔候補画像データの位置情報およびサイズ情報に基づき、上記複数の顔候補画像データの位置およびサイズの平均を算出する検出結果補正処理を行う
ことを特徴とする画像処理装置。
【請求項９】
入力された画像データのサイズを変換する画像変換ステップと、
上記サイズ変換された画像データを画像メモリに記憶し、該サイズ変換された画像データに対して所定サイズの矩形領域を移動させて走査処理を行い、矩形領域画像データを順次切り出す走査ステップと、
切り出された上記矩形領域画像データから顔領域を検出する顔検出処理ステップと
を有し、
上記画像メモリには、複数の顔候補についての顔領域を含む複数の顔候補画像データがそれぞれ記憶され、
上記顔検出処理ステップは、
上記矩形領域画像データが顔領域を含むか否かを判定する顔判定処理を行い、
上記矩形領域画像データが顔領域を含むと判定された場合に、上記画像メモリに記憶された所定の顔候補に対する顔候補画像データに対して水平方向および垂直方向に所定幅を加えた同一判定枠を設定し、該同一判定枠を基準として上記矩形領域画像データが上記同一判定枠内に含まれるか否かを判定する同一判定処理を行う
ことを特徴とする画像処理方法。
【請求項１０】
入力された画像データのサイズを変換する画像変換ステップと、
上記サイズ変換された画像データを画像メモリに記憶し、該サイズ変換された画像データに対して所定サイズの矩形領域を移動させて走査処理を行い、矩形領域画像データを順次切り出す走査ステップと、
切り出された上記矩形領域画像データから顔領域を検出する顔検出処理ステップと
を有し、
上記画像メモリには、複数の顔候補についての顔領域を含む複数の顔候補画像データがそれぞれ記憶され、
上記顔検出処理ステップは、
上記矩形領域画像データが顔領域を含むか否かを判定する顔判定処理を行い、
上記矩形領域画像データが顔領域を含むと判定された場合に、上記画像メモリに記憶された所定の顔候補に対する顔候補画像データに対して水平方向および垂直方向に所定幅を加えた同一判定枠を設定し、該同一判定枠を基準として上記矩形領域画像データが上記同一判定枠内に含まれるか否かを判定する同一判定処理を行う画像処理方法をコンピュータ装置に実行させる
ことを特徴とする画像処理プログラム。
【請求項１１】
被写体からの光を撮像して取得された撮像信号を出力する撮像部と、
上記撮像部から出力された上記撮像信号に対して信号処理を施し画像データとして出力するカメラ信号処理部と、
上記画像データに対して顔検出処理を施す顔検出部と
を備え、
上記顔検出部は、
上記画像データのサイズを変換する画像変換部と、
上記サイズ変換された画像データを記憶し、該サイズ変換された画像データに対して所定サイズの矩形領域を移動させて走査処理を行い、矩形領域画像データを順次切り出す画像メモリと、
切り出された上記矩形領域画像データから顔領域を検出する顔検出処理部と
を有し、
上記画像メモリには、複数の顔候補についての顔領域を含む複数の顔候補画像データがそれぞれ記憶され、
上記顔検出処理部は、
上記矩形領域画像データが顔領域を含むか否かを判定する顔判定処理を行い、
上記矩形領域画像データが顔領域を含むと判定された場合に、上記画像メモリに記憶された所定の顔候補に対する顔候補画像データに対して水平方向および垂直方向に所定幅を加えた同一判定枠を設定し、該同一判定枠を基準として上記矩形領域画像データが上記同一判定枠内に含まれるか否かを判定する同一判定処理を行う
ことを特徴とする撮像装置。
【請求項１２】
被写体からの光を撮像して取得された撮像信号を出力する撮像ステップと、
上記撮像部から出力された上記撮像信号に対して信号処理を施し画像データとして出力するカメラ信号処理ステップと、
上記画像データに対して顔検出処理を施す顔検出ステップと
を備え、
上記顔検出ステップは、
上記画像データのサイズを変換する画像変換ステップと、
上記サイズ変換された画像データを画像メモリに記憶し、該サイズ変換された画像データに対して所定サイズの矩形領域を移動させて走査処理を行い、矩形領域画像データを順次切り出す走査ステップと、
切り出された上記矩形領域画像データから顔領域を検出する顔検出処理ステップと
を有し、
上記画像メモリには、複数の顔候補についての顔領域を含む複数の顔候補画像データがそれぞれ記憶され、
上記顔検出処理ステップは、
上記矩形領域画像データが顔領域を含むか否かを判定する顔判定処理を行い、
上記矩形領域画像データが顔領域を含むと判定された場合に、上記画像メモリに記憶された所定の顔候補に対する顔候補画像データに対して水平方向および垂直方向に所定幅を加えた同一判定枠を設定し、該同一判定枠を基準として上記矩形領域画像データが上記同一判定枠内に含まれるか否かを判定する同一判定処理を行う
ことを特徴とする撮像装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像の中から顔領域を検出する画像処理装置、画像処理方法および画像処理プログラム、並びに、撮像装置および撮像装置の制御方法に関する。
【背景技術】
【０００２】
近年、静止画像の撮影を主とするディジタルスチルカメラや動画像の撮影を主とするディジタルビデオカメラには、撮影対象となる人物の顔を検出し、検出結果をＡＦ（Auto Focus）やＡＥ（Auto Exposure）、ＡＷＢ（Auto White Balance）の制御に用いたり、撮影画像の肌色の色合いの調整を行ったりする機能が搭載されてきている。
【０００３】
このような機能を正確に利用するためには、顔の検出率が高いことに加えて、顔の位置および大きさを正確に検出する必要がある。顔の位置や大きさが正確に検出できない場合には、検出された部分に背景の一部などの顔以外の画像が写りこんでしまい、顔以外の部分の画像がＡＦやＡＥ、ＡＷＢ、色合い調整の制御パラメータの算出に影響を及ぼしてしまうためである。
【０００４】
例えば、下記の特許文献１には、顔らしさを示す確度値に基づき、対象物が顔であるか否かを判断する方法が記載されている。
【０００５】
【特許文献１】特開２００５−１５７６７９号公報
【０００６】
また、下記の特許文献２には、画像を段階的に縮小させて走査を行い、画像の中から顔の位置およびサイズを検索する方法が記載されている。
【０００７】
【特許文献２】特開２００４−３０６２９号公報
【０００８】
特許文献１および特許文献２では、例えば図４に示すように、撮像された画像の左上の端から右下の端まで、所定サイズの矩形領域を水平方向にΔｘ、垂直方向にΔｙだけ移動させて走査することにより、顔の位置を求める。また、例えば図３に示すように、撮像された画像を所定の縮小率Δｒ毎に段階的に縮小させた縮小画像を生成し、生成された縮小画像に対して走査を繰り返すことにより、顔のサイズを求める。
【０００９】
そして、所定サイズの矩形領域内の全ての画素の中から、予め学習によって定められた２点の画素の輝度値の差分を全て算出し、算出結果に基づき顔らしさを示す確度値をそれぞれ求める。矩形領域の画像の確度値には、対象物が顔であるか否かを判断するための閾値が予め設けられており、算出された確度値が閾値以上であれば、対象物が顔であると判断し、閾値よりも低ければ、対象物が顔でないと判断する。
【００１０】
例えば、図５に示すように、画像に対して水平方向に走査した場合、矩形領域の画像の確度値は、実際の顔のＸ座標に近いほど高く、実際の顔のＸ座標から遠ざかるに従って低くなる。この例において、矩形領域Ｆ２，Ｆ３およびＦ４の確度値は、予め設定された閾値以上であるため、顔であると判断される。また、矩形領域Ｆ１およびＦ５の確度値は、閾値よりも低いため、顔でないと判断される。
【００１１】
また、例えば、図６に示すように、画像に対して垂直方向に走査した場合、矩形領域の画像の確度値は、実際の顔のＹ座標に近いほど高く、実際の顔のＹ座標から遠ざかるに従って低くなる。この例において、矩形領域Ｆ１２，Ｆ１３およびＦ１４の確度値は、閾値以上であるため、顔であると判断される。また、矩形領域Ｆ１１およびＦ１５の確度値が閾値よりも低いため、顔でないと判断される。
【００１２】
さらに、例えば、図７に示すように画像を縮小した場合、矩形領域の画像の確度値は、実際の顔のサイズに近いほど高く、実際の顔のサイズから遠ざかるに従って低くなる。この例では、矩形領域Ｆ２２，Ｆ２３，Ｆ２４およびＦ２５の確度値は、閾値以上であるため、顔であると判断される。また、矩形領域Ｆ２１の確度値は、閾値よりも低いため、顔でないと判断される。
【００１３】
このように、画像の中から顔を検索し、対象物が顔であるか否かを判断する方法では、画像を走査することによって、同一の顔に対して確度値が異なる顔が複数個検出されることになるため、検出された顔の中から正しい顔を抽出する必要がある。正しい顔を抽出する方法としては、例えば、検出された複数の顔の中から確度値が一番高いものを選択する方法が用いられる。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、上述の特許文献１および特許文献２に記載の方法では、画像に対して矩形領域を走査する際に、離散的に走査することになるため、検出された顔の中で最も確度値の高いものが実際の顔の位置およびサイズであるとは限らない。
【００１５】
例えば、検出された顔の中で最も確度値の高いものを検出結果とする場合、図５に示す例では、矩形領域Ｆ３の顔が抽出され、図６に示す例では、矩形領域Ｆ１３の顔が抽出される。また、図７に示す例では、矩形領域Ｆ２３の顔が抽出される。ここで抽出された顔は、画像の中で最も確度値の高いもの、すなわち、確度値を示すグラフの頂点における顔ではないため、実際の顔の位置およびサイズと異なる。したがって、実際の顔の位置およびサイズと検出結果の顔の位置およびサイズとの差が誤差となるという問題点があった。
【００１６】
この問題点を解決する方法としては、走査の際に移動する移動量ΔｘおよびΔｙを限りなく０に近づけるとともに、画像を縮小する際の縮小率Δｒを限りなく等倍に近づけ、ほぼ連続的な走査を行う方法が考えられるが、連続的な走査を行うと、顔を検出するための処理の回数が大幅に増加してしまい、処理に時間を要してしまう。
【００１７】
また、この問題を解決するための別の方法として、検出された顔の位置およびサイズの平均をとったものを検出結果とする方法が考えられる。しかしながら、例えば、検出された顔のうち、閾値付近のものは確度値が低く、顔の位置およびサイズの信頼性が低いため、閾値付近の確度値が低い画像を平均化する要素に含めてしまうと、実際の顔の位置およびサイズとの誤差が大きくなってしまうおそれがある。
【００１８】
さらに、特許文献１および特許文献２に記載の方法では、確度値の大きさに基づき顔であるか否かを判断するようにしているため、人物同士が寄り添って顔を近づけている場合など、複数の人物の顔が隣接している場合に、検出された複数の人物の顔が同一人物の顔であると判断され、異なる人物の顔を検出結果としてしまう場合がある。
【００１９】
例えば、図１３に示すように、２人の人物ａおよび人物ｂが寄り添って顔を近づけている場合について考える。このような画像から顔を検出する場合には、隣接する２人の人物ａおよび人物ｂの顔の近辺に複数の顔を検出し、検出された顔の確度値を比較して最も確度値が高い顔を検出結果として抽出する。この例では、人物ａの顔の検出結果を示す矩形領域Ｆ６１と人物ｂの顔の検出結果を示す矩形領域Ｆ６２とを比較し、確度値の高い矩形領域Ｆ６２の画像を人物ａの顔の検出結果として抽出してしまう。すなわち、隣の人物ｂの顔を人物ａの顔として検出してしまうことになる。
【００２０】
このように、従来は、複数の人物の顔が隣接している場合に、隣接する人物の顔を誤って検出してしまうという問題点があった。
【００２１】
したがって、この発明の目的は、撮像された画像の中の顔領域をより正確に検出することができる画像処理装置、画像処理方法および画像処理プログラム、並びに、撮像装置および撮像装置の制御方法を提供することにある。
【課題を解決するための手段】
【００２２】
上述した課題を解決するために、第１の発明は、入力された画像データのサイズを変換する画像変換部と、
サイズ変換された画像データを記憶し、サイズ変換された画像データに対して所定サイズの矩形領域を移動させて走査処理を行い、矩形領域画像データを順次切り出す画像メモリと、
切り出された矩形領域画像データから顔領域を検出する顔検出処理部と
を有し、
画像メモリには、複数の顔候補についての顔領域を含む複数の顔候補画像データがそれぞれ記憶され、
顔検出処理部は、
矩形領域画像データが顔領域を含むか否かを判定する顔判定処理を行い、
矩形領域画像データが顔領域を含むと判定された場合に、画像メモリに記憶された所定の顔候補に対する顔候補画像データに対して水平方向および垂直方向に所定幅を加えた同一判定枠を設定し、同一判定枠を基準として矩形領域画像データが同一判定枠内に含まれるか否かを判定する同一判定処理を行う
ことを特徴とする画像処理装置である。
【００２３】
また、第２の発明は、入力された画像データのサイズを変換する画像変換ステップと、
サイズ変換された画像データを画像メモリに記憶し、サイズ変換された画像データに対して所定サイズの矩形領域を移動させて走査処理を行い、矩形領域画像データを順次切り出す走査ステップと、
切り出された矩形領域画像データから顔領域を検出する顔検出処理ステップと
を有し、
画像メモリには、複数の顔候補についての顔領域を含む複数の顔候補画像データがそれぞれ記憶され、
顔検出処理ステップは、
矩形領域画像データが顔領域を含むか否かを判定する顔判定処理を行い、
矩形領域画像データが顔領域を含むと判定された場合に、画像メモリに記憶された所定の顔候補に対する顔候補画像データに対して水平方向および垂直方向に所定幅を加えた同一判定枠を設定し、同一判定枠を基準として矩形領域画像データが同一判定枠内に含まれるか否かを判定する同一判定処理を行う
ことを特徴とする画像処理方法である。
【００２４】
また、第３の発明は、入力された画像データのサイズを変換する画像変換ステップと、
サイズ変換された画像データを画像メモリに記憶し、サイズ変換された画像データに対して所定サイズの矩形領域を移動させて走査処理を行い、矩形領域画像データを順次切り出す走査ステップと、
切り出された矩形領域画像データから顔領域を検出する顔検出処理ステップと
を有し、
画像メモリには、複数の顔候補についての顔領域を含む複数の顔候補画像データがそれぞれ記憶され、
顔検出処理ステップは、
矩形領域画像データが顔領域を含むか否かを判定する顔判定処理を行い、
矩形領域画像データが顔領域を含むと判定された場合に、画像メモリに記憶された所定の顔候補に対する顔候補画像データに対して水平方向および垂直方向に所定幅を加えた同一判定枠を設定し、同一判定枠を基準として矩形領域画像データが同一判定枠内に含まれるか否かを判定する同一判定処理を行う画像処理方法をコンピュータ装置に実行させる
ことを特徴とする画像処理プログラムである。
【００２５】
また、第４の発明は、被写体からの光を撮像して取得された撮像信号を出力する撮像部と、
撮像部から出力された撮像信号に対して信号処理を施し画像データとして出力するカメラ信号処理部と、
画像データに対して顔検出処理を施す顔検出部と
を備え、
顔検出部は、
画像データのサイズを変換する画像変換部と、
サイズ変換された画像データを記憶し、サイズ変換された画像データに対して所定サイズの矩形領域を移動させて走査処理を行い、矩形領域画像データを順次切り出す画像メモリと、
切り出された矩形領域画像データから顔領域を検出する顔検出処理部と
を有し、
画像メモリには、複数の顔候補についての顔領域を含む複数の顔候補画像データがそれぞれ記憶され、
顔検出処理部は、
矩形領域画像データが顔領域を含むか否かを判定する顔判定処理を行い、
矩形領域画像データが顔領域を含むと判定された場合に、画像メモリに記憶された所定の顔候補に対する顔候補画像データに対して水平方向および垂直方向に所定幅を加えた同一判定枠を設定し、同一判定枠を基準として矩形領域画像データが同一判定枠内に含まれるか否かを判定する同一判定処理を行う
ことを特徴とする撮像装置である。
【００２６】
また、第５の発明は、
被写体からの光を撮像して取得された撮像信号を出力する撮像ステップと、
撮像部から出力された撮像信号に対して信号処理を施し画像データとして出力するカメラ信号処理ステップと、
画像データに対して顔検出処理を施す顔検出ステップと
を備え、
顔検出ステップは、
画像データのサイズを変換する画像変換ステップと、
サイズ変換された画像データを画像メモリに記憶し、サイズ変換された画像データに対して所定サイズの矩形領域を移動させて走査処理を行い、矩形領域画像データを順次切り出す走査ステップと、
切り出された矩形領域画像データから顔領域を検出する顔検出処理ステップと
を有し、
画像メモリには、複数の顔候補についての顔領域を含む複数の顔候補画像データがそれぞれ記憶され、
顔検出処理ステップは、
矩形領域画像データが顔領域を含むか否かを判定する顔判定処理を行い、
矩形領域画像データが顔領域を含むと判定された場合に、画像メモリに記憶された所定の顔候補に対する顔候補画像データに対して水平方向および垂直方向に所定幅を加えた同一判定枠を設定し、同一判定枠を基準として矩形領域画像データが同一判定枠内に含まれるか否かを判定する同一判定処理を行う
ことを特徴とする撮像装置の制御方法である。
【００２７】
上述したように、第１、第２および第３の発明では、入力された画像データのサイズを変換し、サイズ変換された画像データを画像メモリに記憶し、サイズ変換された画像データに対して所定サイズの矩形領域を移動させて走査処理を行い、矩形領域画像データを順次切り出し、切り出された矩形領域画像データから顔領域を検出する顔検出処理を行い、画像メモリには、複数の顔候補についての顔領域を含む複数の顔候補画像データがそれぞれ記憶され、顔検出処理において、矩形領域画像データが顔領域を含むか否かを判定する顔判定処理を行い、矩形領域画像データが顔領域を含むと判定された場合に、画像メモリに記憶された所定の顔候補に対する顔候補画像データに対して水平方向および垂直方向に所定幅を加えた同一判定枠を設定し、同一判定枠を基準として矩形領域画像データが同一判定枠内に含まれるか否かを判定する同一判定処理を行うようにしているため、隣接する顔と判定対象の顔とを識別することができる。
【００２８】
また、第４および第５の発明では、被写体からの光を撮像して取得された撮像信号を出力し、撮像部から出力された撮像信号に対して信号処理を施し画像データとして出力し、画像データに対して顔検出処理を施し、顔検出処理において、画像データのサイズを変換し、サイズ変換された画像データを画像メモリに記憶し、サイズ変換された画像データに対して所定サイズの矩形領域を移動させて走査処理を行い、矩形領域画像データを順次切り出し、切り出された矩形領域画像データから顔領域を検出する顔検出処理を行い、画像メモリには、複数の顔候補についての顔領域を含む複数の顔候補画像データがそれぞれ記憶され、顔検出処理において、矩形領域画像データが顔領域を含むか否かを判定する顔判定処理を行い、矩形領域画像データが顔領域を含むと判定された場合に、画像メモリに記憶された所定の顔候補に対する顔候補画像データに対して水平方向および垂直方向に所定幅を加えた同一判定枠を設定し、同一判定枠を基準として矩形領域画像データが同一判定枠内に含まれるか否かを判定する同一判定処理を行うようにしているため、隣接する顔と判定対象の顔とを識別することができる。
【発明の効果】
【００２９】
この発明は、顔判定処理によって顔領域を含むと判定された矩形領域画像データに対して、画像メモリに記憶された顔候補画像データとの同一判定処理を行うようにしているため、隣接する顔と判定対象の顔とを識別することによって誤検出を防ぎ、より正確に判定対象の顔を検出することができるという効果がある。
【発明を実施するための最良の形態】
【００３０】
以下、この発明の実施の一形態について、図面を参照して説明する。図１は、この発明の実施の一形態による撮像装置１の一例の構成を示す。撮像装置１は、画像バス１０、光学ブロック１１、信号変換部１２、カメラ信号処理部１３、顔検出部１４、表示処理部１５、画像信号処理部１６、記憶部１７、表示部１８、画像ＲＡＭ（Random Access Memory）１９、ＣＰＵ（Central Processing Unit）２１、ＲＯＭ（Read Only Memory）２２およびＲＡＭ２３を備える。
【００３１】
光学ブロック１１は、内部に、被写体を撮像するためのレンズ群、絞り調整機構、フォーカス調整機構、ズーム機構、シャッター機構およびフラッシュ機構などを備え、後述するＣＰＵ２１からの制御信号に応じてズーム制御、シャッター制御および露出制御などの制御が行われる。
【００３２】
信号変換部１２は、ＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサなどの撮像素子により構成され、その結像面に、光学ブロック１１を通じた像が結像される。この信号変換器１２は、例えば、シャッター操作に応じてＣＰＵ２１から供給される画像取り込みタイミング信号を受けて、結像面に結像されている被写体像を撮像信号に変換し、カメラ信号処理部１３に供給する。
【００３３】
カメラ信号処理部１３は、ＣＰＵ２１からの制御信号に基づき、信号変換部１２から出力された撮像信号に対して各種の信号処理を施す。具体的には、例えば、信号変換部１２からの撮像信号に対して、ガンマ補正やＡＧＣ（Auto Gain Control）などの処理を行うとともに、撮像信号をディジタル信号としての映像信号に変換する処理を行う。また、カメラ信号処理部１３は、ＣＰＵ２１からの制御信号に基づき、この映像信号に対してホワイトバランス制御や露出補正制御などをさらに行う。
【００３４】
顔検出部１４は、カメラ信号処理部１３から出力された画像データを画像ＲＡＭ１９を介して受け取り、受け取った画像データの中から人物の顔が存在する領域を検出し、その検出結果をＣＰＵ２１に供給する。なお、顔検出部１４の構成や、顔検出部１４における顔検出処理の詳細については、後述する。
【００３５】
表示処理部１５は、カメラ信号処理部１３および後述する画像信号処理部１６から出力された画像データを画像ＲＡＭ１９を介して受け取り、例えば表示に適した解像度の画像に変換して、表示部１８に供給する。表示部１８は、撮像装置１におけるビューファインダとして用いられるとともに、記憶部１７から再生された画像のモニタとして用いられる。表示部１８としては、例えばＬＣＤ（Liquid Crystal Display）を用いることができる。
【００３６】
画像信号処理部１６は、カメラ信号処理部１３から出力された画像データを画像ＲＡＭ１９を介して受け取り、この画像データを圧縮符号化して、動画像あるいは静止画像のデータファイルとして記憶部１７に出力する。また、画像信号処理部１６は、後述する記憶部１７から読み出された画像データファイルを復号し、画像ＲＡＭ１９を介して表示処理部１５に供給する。なお、例えば、動画像の符号化方式としては、ＭＰＥＧ（Moving Picture Experts Group）方式、静止画像の符号化方式としては、ＪＰＥＧ（Joint Photographic Experts Group）方式を適用することができる。
【００３７】
記憶部１７は、画像信号処理部１６により符号化されて生成された画像ファイルを記憶する。記憶部１７としては、例えば、磁気テープや光ディスクなどの可搬型記録媒体のドライブ装置、あるいはＨＤＤ（Hard Disc Drive）などを用いることができる。この記憶部１７は、記憶された画像データファイルを画像信号処理部１６に読み出すことの他に、その画像データファイルに付随した情報をＣＰＵ２１に供給する。
【００３８】
画像ＲＡＭ１９は、カメラ信号処理部１３、顔検出部１４、表示処理部１５および画像信号処理部１６に対して画像バス１０を介して接続されている。画像ＲＡＭ１９は、接続されたこれらの処理ブロックにより共有され、各ブロック間では、画像ＲＡＭ１９を介して画像データが受け渡される。なお、この例では、これらの処理ブロックは、画像ＲＡＭ１９を介して画像データを受け渡すものとして説明しているが、これはこの例に限られず、例えば、顔検出部１４および表示処理部１５は、カメラ信号処理部１３および画像信号処理部１６からの出力画像データを、画像バス１０を介さずに直接受け取ることができるようにしてもよい。
【００３９】
ＣＰＵ２１は、ＲＯＭ２２に予め格納されたプログラムに従い、ＲＡＭ２３をワークメモリとして、この撮像装置１全体を制御する。例えば、ＣＰＵ２１は、撮像装置１の各部とコマンドやデータのやりとりを行い、それぞれを制御する。また、ＣＰＵ２１は、図示されない操作部に対する操作に応じた制御信号や撮像信号などに基づき、光学ブロック１１のフォーカス、絞り、ズームなどを制御するための制御信号を生成し、光学ブロック１１に供給する。
【００４０】
図２は、顔検出部１４の一例の構成を示す。顔検出部１４は、画像変換部としてのスケーリング部３１、画像メモリ３２、顔検出処理部としての顔検出コア３３、コントローラ３４を備える。スケーリング部３１は、画像ＲＡＭ１９から画像バス１０を介して読み出した画像データのサイズ（水平方向および垂直方向の各画素数）を、顔検出コア３３における顔検出処理に適するように拡大または縮小するスケーリング処理を行い、画像メモリ３２に供給する。
【００４１】
画像メモリ３２は、スケーリング部３１によってサイズ変換された画像データを一時的に保持する。そして、コントローラ３４の制御に基づき、画像データの中から指示された位置における所定サイズの矩形領域の画像データを切り出す走査処理を行い、顔検出コア３３に供給する。
【００４２】
顔検出コア３３は、画像メモリ３２から供給された矩形領域画像データに対して顔検出処理を施す。顔検出コア３３では、顔検出処理として、顔判定処理、重複判定処理、同一判定処理、検出確度判定処理および検出結果補正処理の各処理を行う。なお、顔検出コア３３における各処理の詳細については、後述する。コントローラ３４は、ＣＰＵ２１の制御に基づき、スケーリング部３１に対する画像データの縮小率（または拡大率）の指示や、画像メモリ３２に対する書き込みまたは読み出しのメモリアドレスの指示など、顔検出部１４の各部を制御する。
【００４３】
このような構成による撮像装置１における一例の動作について、概略的に説明する。先ず、画像の記録時には、被写体からの光が光学ブロック１１を介して撮像素子に入射され、光電変換により電気信号に変換された撮像信号が、順次カメラ信号処理部１３に供給され、ディジタル変換や画質補正処理などが施される。各種処理が施された画像データは、画像バス１０を介して画像ＲＡＭ１９に一旦記憶される。
【００４４】
表示処理部１５は、カメラ信号処理部１３からの画像データを画像ＲＡＭ１９を介して受け取り、表示用の画像信号を生成して表示部１８に供給する。これにより、現在撮像中の画像が表示部１８に表示され、撮影者は、この画像を視認して画角を確認することができる。
【００４５】
また、画像信号処理部１６は、カメラ信号処理部１３から出力された画像データを画像ＲＡＭ１９を介して順次受け取り、例えばＭＰＥＧ方式を用いて圧縮符号化処理を施して動画像ファイルを生成し、記憶部１７に記録する。
【００４６】
また、図示しない操作部に設けられたシャッターボタンの押下などに応じて、カメラ信号処理部１３からの１フレーム分の画像データが、画像信号処理部１６において、例えばＪＰＥＧ方式により圧縮符号化されることで、静止画像ファイルを記憶部１７に記録することもできる。
【００４７】
さらに、画像の再生時には、記憶部１７に記憶された画像ファイルが画像信号処理部１６に読み出されて復号され、表示処理部１５に供給されて表示用の信号に変換される。これにより、動画像または静止画像を表示部１８に再生表示することができる。
【００４８】
ところで、上述のような画像の記録時において、顔検出部１４は、カメラ信号処理部１３からの出力画像データを画像ＲＡＭ１９を介して受け取り、顔の検出処理を実行する。顔検出部１４での顔の検出結果は、ＣＰＵ２１に供給される。
【００４９】
ＣＰＵ２１は、例えば、検出結果に基づきＡＥ、ＡＦ、ホワイトバランス調整などの制御を行う。例えば、検出された顔の明るさや色を最適にするように絞り量やホワイトバランスゲインを調整する、あるいは、検出された顔にフォーカスを合わせるといった制御を行うことができる。
【００５０】
なお、顔検出部１４は、記憶部１７内の画像ファイルの再生時において、画像信号処理部１６により復号された画像データを画像ＲＡＭ１９を介して受け取り、顔の検出処理を実行してもよい。この場合の各処理ブロックによる顔の検出処理としては、画像の記録時と同様に行うことが可能である。
【００５１】
次に、この発明の実施の一形態による顔検出方法について説明する。顔検出部１４における顔検出処理では、画像データ内の顔をより正確に検出するため、顔検出部１４に入力された画像データのサイズを変更した画像データを生成するスケーリング処理、画像データに対して走査を行い所定サイズの画像データを切り出す走査処理、切り出された画像データが顔領域を含むか否かを判定する顔判定処理、顔領域を含むと判定された画像データが顔の候補である画像データと重複するか否かを判定する重複判定処理、重複すると判定された画像データが顔の候補である画像データと同一であるか否かを判定する同一判定処理、顔の候補である複数の画像データおよび同一であると判定された画像データのうち、より顔の領域に近いと判断される複数の画像データを選択する検出確度判定処理、選択された画像データの位置およびサイズの平均を算出する検出結果補正処理といった各種処理が行われる。
【００５２】
顔検出の際に行われる各処理について、以下の順序で詳細に説明する。
（１）スケーリング処理
（２）走査処理
（３）顔判定処理
（４）重複判定処理
（５）同一判定処理
（６）検出確度判定処理
（７）検出結果補正処理
【００５３】
（１）スケーリング処理
スケーリング処理では、撮像された画像データを所定の縮小率（または拡大率）で縮小（または拡大）した画像データを生成する。なお、以下では、スケーリング処理によって画像データを縮小させた場合について説明する。
【００５４】
例えば、画像ＲＡＭ１９を介して顔検出部１４に画像データが入力されると、スケーリング部３１は、図３に示すように、画像データに対して縮小率Δｒだけ縮小させた縮小画像データを生成する。生成された縮小画像データは、画像メモリ３２に記憶される。また、スケーリング部３１は、画像ＲＡＭ１９を介して顔検出部１４に入力された画像データに対して、別の縮小率で縮小させた縮小画像データを生成したり、上述の縮小画像データに対して、さらに所定の縮小率Δｒで縮小させた縮小画像データを生成することもできる。
【００５５】
（２）走査処理
走査処理では、縮小画像データに対して所定サイズの矩形領域を水平方向および垂直方向に所定量だけ移動させながら走査し、矩形領域の画像データを切り出す。
【００５６】
画像メモリ３２は、コントローラ３４の制御に基づき、スケーリング処理によって得られた縮小画像データに対して、図４に示すように、所定サイズの矩形領域を左上の端から水平方向に移動量Δｘだけ移動させ、縮小画像データの右端に到達すると、左端に戻るとともに、垂直方向に移動量Δｙだけ位置を変更し、水平方向に走査する。この動作を繰り返して縮小画像データの右下端まで走査を行い、矩形領域画像データを順次切り出す。走査によって切り出された矩形領域画像データは、顔検出コア３３に供給される。
【００５７】
なお、走査処理の際に走査される矩形領域のサイズは、画像データのサイズによらず、常に同一のサイズとする。顔検出部１４に入力された画像データのサイズを変更し、サイズが変更された画像データに対して所定サイズの矩形領域を走査させることで矩形領域内で検出される顔のサイズが変わるため、実際の顔のサイズを検出することができる。
【００５８】
（３）顔判定処理
顔判定処理では、走査処理によって切り出した矩形領域画像データにおける所定の画素に対して所定の演算処理を施し、矩形領域画像データが顔領域を含むか否かを判定する。
【００５９】
走査処理によって縮小画像データから矩形領域画像データが切り出されると、顔検出コア３３は、画像メモリ３２から供給された矩形領域画像データ内の画素のうち、予め学習によって定められた２点の画素における輝度値の差分を算出する。また、学習によって定められた他の２点の画素における輝度値の差分を同様に算出し、算出されたこれらの輝度値の差分に基づき、矩形領域画像データにおける顔らしさを示す確度値を決定する。そして、この確度値に対して所定の閾値を設定し、確度値が閾値以上であれば、矩形領域画像データが顔領域を含むと判定し、確度値が閾値よりも低ければ、矩形領域画像データが顔領域を含まないと判定する。
【００６０】
このように、縮小画像データを走査することによって得られる矩形領域画像データに対して顔判定処理を行うことにより、確度値に応じて縮小画像データ中の顔の位置を求めることができる。
【００６１】
図５は、縮小画像データに対して水平方向に走査した場合における矩形領域画像データの確度値を示すグラフである。また、図６は、画像データに対して垂直方向に走査した場合における矩形領域画像データの確度値を示すグラフである。矩形領域画像データの確度値は、図５および図６に示すように、矩形領域が実際の人物の顔の位置に近づくに従って高くなり、確度値が閾値以上となる矩形領域画像データが顔領域を含むと判定し、閾値よりも低い矩形領域画像データが顔領域を含まないと判定する。
【００６２】
例えば、縮小画像データに対して水平方向に走査した場合には、図５に示すように、矩形領域Ｆ２，Ｆ３およびＦ４の矩形領域画像データにおける確度値が閾値以上であるため、矩形領域画像データが顔領域を含むと判定し、矩形領域Ｆ１およびＦ５の矩形領域画像データにおける確度値が閾値より低いため、矩形領域画像データが顔領域を含まないと判定する。そして、この例では、走査処理によって得られた矩形領域画像データのうち、矩形領域Ｆ３の矩形領域画像データにおける確度値が最も高いため、矩形領域Ｆ３の矩形領域画像データが実際の顔の位置に最も近いことが判断できる。
【００６３】
また、例えば、縮小画像データに対して垂直方向に走査した場合には、図６に示すように、矩形領域Ｆ１２，Ｆ１３およびＦ１４の矩形領域画像データにおける確度値が閾値以上であるため、矩形領域画像データが顔領域を含むと判定し、矩形領域Ｆ１１およびＦ１５の矩形領域画像データにおける確度値が閾値より低いため、矩形領域画像データが顔領域を含まないと判定する。そして、この例では、走査処理によって得られた矩形領域画像データのうち、矩形領域Ｆ１３の矩形領域画像データにおける確度値が最も高いため、矩形領域Ｆ１３の矩形領域画像データが実際の顔の位置に最も近いことが判断できる。
【００６４】
また、スケーリング処理において縮小画像に対してさらに縮小率Δｒで縮小された縮小画像について、同様の顔判定処理を順次行うことにより、画像データ中の顔のサイズを求めることができる。
【００６５】
図７は、画像データを所定の縮小率で段階的に縮小した場合における矩形領域画像データの確度値を示すグラフである。矩形領域画像データの確度値は、図７に示すように、矩形領域のサイズが人物の顔のサイズに近づくに従って高くなり、確度値が閾値以上となる矩形領域画像データが顔領域を含むと判定し、閾値よりも低い矩形領域画像データが顔領域を含まないと判定する。
【００６６】
例えば、スケーリング処理によって画像データを段階的に縮小した場合には、図７に示すように、矩形領域Ｆ２２，Ｆ２３，Ｆ２４およびＦ２５の矩形領域画像データにおける確度値が閾値以上であるため、矩形領域画像データが顔領域を含むと判定し、矩形領域Ｆ２１の矩形領域画像データにおける確度値が閾値より低いため、矩形領域画像データが顔領域を含まないと判定する。そして、この例では、スケーリング処理によって得られた縮小画像データのうち、矩形領域Ｆ２３の矩形領域画像データにおける確度値が最も高いため、矩形領域Ｆ２３の矩形領域画像データが実際の顔のサイズに最も近いことが判断できる。
【００６７】
なお、確度値を示すグラフのピークの値は、人物の顔の条件によって異なり、例えば、髪型やメガネの有無、人物の顔に照射される光の強さなどによって異なる。
【００６８】
ところで、背景技術の項でも説明したように、走査処理において矩形領域の水平方向の移動量Δｘおよび垂直方向の移動量Δｙを限りなく０に近づけるとともに、縮小率Δｒを限りなく等倍に近づけ、ほぼ連続的に走査することにより、顔の位置およびサイズの検出精度を高くすることができる。しかしながら、このように連続的に走査すると、顔判定処理の回数が大幅に増加してしまい、顔判定処理に要する時間が膨大なものとなってしまう。そこで、この発明の実施の一形態では、１つの画像データに対して必要とされる顔判定処理の時間および顔検出の精度に見合うように、顔判定処理の回数が適切な回数となるように、離散的な走査を行うようにする。
【００６９】
ここで、この発明の実施の一形態では、スケーリング処理によって生成された所定の縮小画像に対して走査処理を行い、切り出された矩形領域画像データについて顔判定処理を順次行う。そして、矩形領域画像データが顔領域を含むと判定される毎に、この矩形領域画像データに対して次の処理である重複判定処理を行う。矩形領域画像データが顔領域を含まないと判定された場合には、走査処理によって次の矩形領域画像データを切り出し、同様に顔判定処理を行う。
【００７０】
所定の縮小画像における全ての矩形領域画像データに対して顔判定処理が完了すると、スケーリング処理によって次の縮小画像データを生成し、生成された縮小画像データに対して走査処理を行い、切り出された矩形領域画像データについて顔判定処理を順次行う。このようにして、スケーリング処理および走査処理を、予め決められた回数だけ行うまで繰り返し、新たに切り出された矩形領域画像データに対する顔判定処理を行う。
【００７１】
（４）重複判定処理
重複判定処理では、顔検出部１４に入力された画像データ内の顔の候補である矩形領域画像データ（以下、顔候補画像データと適宜称する）が記憶された顔候補データベースを用い、顔領域を含むと判定された矩形領域画像データと顔候補データベースに記憶された顔候補画像データとが重複しているか否かを判定する。
【００７２】
顔候補データベースについて説明する。顔候補データベースは、画像メモリ３２に設けられており、図８に示すように、顔判定処理において顔領域を含むと判定された複数の顔候補、この例ではｎ個の顔候補に対する矩形領域画像データである顔候補画像データが記憶されている。
【００７３】
また、顔候補データベースには、１つの顔候補に対して、顔判定処理において決定された確度値が上位のデータである複数の顔候補画像データが記憶されている。この例では、１つの顔候補に対して、確度値が上位の３つの顔候補画像データがそれぞれ記憶されている。
【００７４】
それぞれの顔候補画像データには、画像データの位置情報、サイズ情報、ならびに、顔候補画像データの確度値が関連付けられている。位置情報としては、例えば、矩形領域の左上の画素における水平方向および垂直方向の座標（Ｘ座標およびＹ座標）を縮小率Δｒを用いて撮像された画像データ上の座標へ変換したものが記憶されている。サイズ情報としては、例えば、矩形領域の水平方向および垂直方向の各画素数を縮小率Δｒを用いて撮像された画像データ上の画素数へ変換したものが記憶されている。
【００７５】
例えば、顔候補１に対しては、Ｘ座標がＸ１１、Ｙ座標がＹ１１、サイズがＳ１１、確度値が確度値１１である顔候補画像データＰ１１と、Ｘ座標がＸ１２、Ｙ座標がＹ１２、サイズがＳ１２、確度値が確度値１２である顔候補画像データＰ１２と、Ｘ座標がＸ１３、Ｙ座標がＹ１３、サイズがＳ１３、確度値が確度値１３である顔候補画像データＰ１３とが記憶されている。なお、この例では、顔候補画像データＰ１１、Ｐ１２、Ｐ１３の順に確度値が高いものとする。
【００７６】
顔判定処理により、縮小画像データから切り出した矩形領域画像データが顔領域を含むと判定されると、顔候補データベースに記録されている所定の顔に対する顔候補画像データのうち、最も確度値の高い顔候補画像データ、この例では、顔候補１に対する顔候補画像データＰ１１を読み出す。そして、顔であると判定された矩形領域画像データと顔候補データベースから読み出された顔候補画像データＰ１１との重なり度合いを比較し、２つの画像データが重複しているか否かを判定する。
【００７７】
例えば、顔領域を含むと判定された矩形領域画像データと顔候補データベースから読み出された顔候補画像データとが重なる面積に対して閾値を設け、重なる面積が閾値以上、例えば３３％以上であれば、顔領域を含むと判定された矩形領域画像データと顔候補データベースから読み出された顔候補画像データとが重複していると判定し、重なる面積が閾値未満、例えば３３％未満であれば、重複していないと判定する。
【００７８】
顔領域を含むと判定された矩形領域画像データと顔候補データベースから読み出された顔候補画像データとが重複していないと判定された場合には、顔候補データベースから、次の顔に対する顔候補画像データのうち最も確度値の高い顔候補画像データ、この例では、顔候補２に対する顔候補画像データＰ２１を読み出し、重複する面積に基づいて同様に重複判定処理を行う。
【００７９】
以下、顔候補データベースに記憶されている全ての種類の顔候補画像データとの重複を判定した結果、どの顔候補画像データとも重複していない場合には、顔領域を含むと判定された矩形領域画像データを新たな顔候補に対する顔候補画像データとして、顔候補データベースに記憶する。
【００８０】
入力された画像データのサイズを変更しながら矩形領域を走査させて人物の顔を検出する場合には、実際の顔の周囲に確度値の異なる多数の矩形領域画像データが検出される。これは、顔判定処理の際に、矩形領域画像データの確度値に対して閾値を設け、確度値が閾値以上となる矩形領域画像データを顔であると判定するようにしており、確度値に対して幅を持たせているためである。
【００８１】
したがって、このように検出された多数の矩形領域画像データの中から正しい顔を検出する必要がある。この重複判定処理では、人物の顔に対して検出された多数の矩形領域画像データの中から最も正しい顔に近い矩形領域画像データを検出することを目的としている。
【００８２】
（５）同一判定処理
同一判定処理では、顔候補データベースに記憶された顔候補画像データと重複していると判定された矩形領域画像データが、顔候補データベースに記憶された顔候補画像データと同一の画像データであるか否かを判定する。
【００８３】
重複判定処理により、顔領域を含むと判定された矩形領域画像データが顔候補データベースに記憶された所定の顔候補画像データと重複していると判定されると、重複判定処理の際に重複していると判定された顔候補画像データを顔候補データベースから読み出す。そして、図９Ａに示すように、読み出された矩形領域Ｆ３１の顔候補画像データに対して、水平方向および垂直方向にそれぞれ幅Ｍだけ距離を持たせた同一判定枠Ｆ３０を設け、重複していると判定された矩形領域画像データがこの同一判定枠Ｆ３０内に含まれるか否かを判定する。
【００８４】
例えば、図９Ｂに示すように、重複していると判定された矩形領域Ｆ３２の矩形領域画像データがこの同一判定枠Ｆ３０内に含まれる場合には、重複していると判定された矩形領域Ｆ３２の矩形領域画像データが矩形領域Ｆ３１の顔候補画像データと同一の顔に対する矩形領域画像データであると判定する。
【００８５】
一方、例えば、図９Ｃに示すように、重複していると判定された矩形領域Ｆ３３の矩形領域画像データが同一判定枠Ｆ３０内に含まれない場合には、矩形領域Ｆ３３の矩形領域画像データが矩形領域Ｆ３１の顔候補画像データと同一の顔に対する矩形領域画像データではない、または、確度値の低い矩形領域画像データであると判定する。
【００８６】
なお、同一判定枠Ｆ３０の幅Ｍは、顔検出部１４の感度に応じて可変とすることができる。例えば、顔検出部１４による顔の検出精度が高い場合には、幅Ｍを広く設定し、検出精度が低い場合には、幅Ｍを狭く設定する。これは、顔検出部１４による顔の検出精度が高い場合は、顔判定処理において隣接する顔と判定対象の顔とを識別する能力が高いためである。また、顔検出部１４による顔の検出精度が低い場合は、隣接する顔と判定対象の顔とを識別する能力が低いため、幅Ｍを狭くすることにより識別する範囲を狭め、誤検出を防止する。
【００８７】
ところで、人物の顔に対する確度値を示すグラフのピークの値は、実際の顔の位置およびサイズを示している。例えば、図１０に示すように、２人の人物ａおよび人物ｂが寄り添って顔を近づけている場合などでは、人物ａおよび人物ｂの顔の位置およびサイズが異なる。そのため、それぞれの人物の顔に対する確度値を示すグラフのピークが重なることはない。
【００８８】
このことから、同一判定処理では、同一判定枠を用いて検出結果をグラフのピーク付近に絞ることにより、例えば人物ａの顔を検出する際に人物ｂの顔が誤って検出されてしまうというように、隣接する別の人物の顔が誤って検出されてしまうということを防止する。
【００８９】
（６）検出確度判定処理
検出確度判定処理では、顔候補データベースに記憶された所定の顔候補に対する顔候補画像データと、これらの画像データと同一であると判定された矩形領域画像データの中から、確度値がより高い画像データ、すなわち、実際の顔により近い矩形領域画像データを選択する。
【００９０】
顔候補データベースに記録されている所定の顔に対する確度値の高い上位３つの顔候補画像データを全て読み出し、この確度値の高い上位３つの顔候補画像データと、同一判定処理において同一の顔であると判定された矩形領域画像データとの４つの矩形領域画像データから、確度値の高い上位３つの矩形領域画像データを選択する。選択された３つの矩形領域画像データは、所定の顔に対する新たな顔候補画像データとして顔候補データベースに書き戻され、選択されなかった残りの１つの矩形領域画像データは、破棄される。
【００９１】
（７）検出結果補正処理
検出結果補正処理では、顔候補データベースに記録されている所定の顔に対する確度値の高い上位３つの顔候補画像データに基づき、実際の顔の領域に近い領域を検出する。
【００９２】
顔検出部１４に入力された画像データを矩形領域で走査する場合の水平方向の移動量Δｘおよび垂直方向の移動量Δｙを限りなく０に近づけるとともに、画像データの縮小率Δｒを限りなく等倍に近づけた場合、水平方向、垂直方向および縮小率に対する検出結果は、図５、図６および図７に示すように、それぞれの確度値のグラフにおけるピークを中心として軸対称に現れる。すなわち、実際の顔の位置およびサイズを示す確度値のグラフにおけるピークの位置およびサイズは、全ての検出結果の平均であると考えられる。
【００９３】
したがって、確度値の高い上位３つの矩形領域画像データの位置およびサイズの平均を算出することにより、離散的な検出結果であっても、より実際の顔に近い位置およびサイズを求めることができる。
【００９４】
例えば、図１１Ａに示すように、矩形領域Ｆ５１，Ｆ５２およびＦ５３の矩形領域画像データが、所定の顔に対する確度値の高い上位３つの顔候補画像データとして顔候補データベースに記憶されている場合には、これらの顔候補画像データを顔候補データベースから読み出し、それぞれの顔候補画像データに関連付けられた位置情報およびサイズ情報に基づき水平方向の位置、垂直方向の位置およびサイズの平均を算出する。そして、図１１Ｂに示すように、算出された水平方向の位置、垂直方向の位置およびサイズの平均に基づく矩形領域Ｆ５４が実際の顔の領域に近い領域として検出される。
【００９５】
矩形領域Ｆ５１，Ｆ５２およびＦ５３における水平方向の位置をそれぞれＸＦ５１，ＸＦ５２，ＸＦ５３とすると、検出結果の矩形領域Ｆ５４の水平方向の位置ＸＦ５４は、数式（１）に基づき算出される。
ＸＦ５４＝（ＸＦ５１＋ＸＦ５２＋ＸＦ５３）／３    ・・・（１）
【００９６】
また、矩形領域Ｆ５１，Ｆ５２およびＦ５３における垂直方向の位置をそれぞれＹＦ５１，ＹＦ５２，ＹＦ５３とすると、検出結果の矩形領域Ｆ５４の垂直方向の位置ＹＦ５４は、数式（２）に基づき算出される。
ＹＦ５４＝（ＹＦ５１＋ＹＦ５２＋ＹＦ５３）／３    ・・・（２）
【００９７】
さらに、矩形領域Ｆ５１，Ｆ５２およびＦ５３のサイズをそれぞれＳＦ５１，ＳＦ５２，ＳＦ５３とすると、検出結果の矩形領域Ｆ５４のサイズＳＦ５４は、数式（３）に基づき算出される。
ＳＦ５４＝（ＳＦ５１＋ＳＦ５２＋ＳＦ５３）／３    ・・・（３）
【００９８】
このように、検出結果補正処理では、顔候補データベースに記憶されている所定の顔に対する確度値の高い上位３つの顔候補画像データに関連付けられた位置情報およびサイズ情報に基づき、所定の顔の矩形領域の水平方向の位置、垂直方向の位置およびサイズの平均を算出することにより、実際の顔の領域により近い領域を検出することができる。
【００９９】
なお、この３つの顔候補画像データから実際の顔の位置およびサイズの平均を算出する処理は、顔候補データベースに記憶された全ての顔候補に対して行う。こうすることにより、入力された画像データ内で検出された複数の顔について、実際の顔の領域により近い領域を検出することができる。
【０１００】
次に、顔検出部１４における顔検出処理の流れについて、図１２に示すフローチャートを参照して説明する。ステップＳ１において、撮像された画像データが画像ＲＡＭ１９を介して顔検出部１４に入力され、ステップＳ２において、顔検出部１４に入力された画像データに対してスケーリング処理が行われ、画像データを所定の縮小率Δｒで縮小した縮小画像データが生成される。生成された縮小画像データは、画像メモリ３２に記憶される。
【０１０１】
ステップＳ３では、縮小画像データに対して走査処理が行われ、画像メモリ３２に記憶された縮小画像データに対して走査を行い、左上の端から右下の端に向かって水平方向にΔｘ、垂直方向にΔｙだけ所定サイズの矩形領域を移動させることによって矩形領域画像データが切り出される。
【０１０２】
ステップＳ４では、走査処理によって切り出された矩形領域画像データに対して顔判定処理が行われ、矩形領域画像データに対して所定の演算処理が施され、矩形領域画像データが顔領域を含むか否かが判定される。ステップＳ５において、矩形領域画像データが顔領域を含むと判定された場合には、処理がステップＳ６に移行する。
【０１０３】
ステップＳ６では、顔判定処理において顔領域を含むと判定された矩形領域画像データと、顔候補データベースに記憶された全ての顔候補に対する顔候補画像データとの重複判定処理が行われたか否かが判断される。全ての顔候補に対する顔候補画像データとの重複判定処理が行われていないと判断された場合には、処理がステップＳ７に移行する。
【０１０４】
ステップＳ７では、顔判定処理において顔領域を含むと判定された矩形領域画像データに対して重複判定処理が行われ、顔であると判定された矩形領域画像データと顔候補データベースに記憶された顔候補画像データとが重複しているか否かが判定される。ステップＳ８において、顔であると判定された矩形領域画像データが顔候補データベースに記憶された顔候補画像データと重複していると判定された場合には、処理がステップＳ９に移行する。
【０１０５】
一方、ステップＳ８において、顔領域を含むと判定された矩形領域画像データが記憶された顔候補画像データと重複していないと判定された場合には、処理がステップＳ６に戻り、顔であると判定された矩形領域画像データと顔候補データベースに記憶された次の顔候補画像データとの重複判定処理が行われる。
【０１０６】
ステップＳ９では、顔候補データベースに記憶された顔候補画像データと重複していると判定された矩形領域画像データに対して同一判定処理が行われ、重複していると判定された矩形領域画像データが、顔候補データベースに記憶された顔候補画像データと同一の画像データであるか否かが判定される。ステップＳ１０において、同一判定処理によって、記憶された顔候補画像データと重複していると判定された矩形領域画像データが、記憶された顔候補画像データと同一であると判定された場合には、処理がステップＳ１１に移行する。
【０１０７】
ステップＳ１１では、顔候補データベースに記憶された顔候補画像データと同一であると判定された矩形領域画像データに対して検出確度判定処理が行われ、顔候補データベースに記憶された所定の顔候補に対する全ての顔候補画像データ、および顔候補データベースに記憶された所定の顔候補に対する顔候補画像データと同一であると判定された矩形領域画像データのうち、確度値が上位の所定数の画像データが選択される。ステップＳ１２では、選択された所定数の画像データが新たな顔候補画像データとして顔候補データベースに上書きされる。
【０１０８】
一方、ステップＳ６において、顔判定処理において顔領域を含むと判定された矩形領域画像データと顔候補データベースに記憶された全ての顔候補画像データとの重複判定処理が行われたと判断された場合には、処理がステップＳ１７に移行し、顔領域を含むと判定された矩形領域画像データが新たな顔候補に対する顔候補画像データとして顔候補データベースに記憶される。
【０１０９】
また、ステップＳ５において、走査処理によって切り出された矩形領域画像データが顔領域を含まないと判定された場合、および、ステップＳ１０において、顔候補データベースに記憶された顔候補画像データと重複していると判定された画像が、顔候補データベースに記憶された顔候補画像データと同一ではないと判定された場合には、処理がステップＳ１３に移行する。
【０１１０】
ステップＳ１３では、スケーリング処理で生成された縮小画像データの全ての領域を矩形領域によって走査したか否かが判断される。縮小画像データ全ての領域を走査したと判断された場合には、処理がステップＳ１４に移行する。
【０１１１】
一方、ステップＳ１３において、スケーリング処理で生成された拡大または縮小された画像に対して、全ての矩形領域を走査していないと判断された場合には、処理がステップＳ３に戻って走査処理が行われ、走査によって得られた次の矩形領域画像データに対して、上述の各ステップにおける処理が行われる。
【０１１２】
ステップＳ１４では、設定された全てのサイズの画像データについて処理したか否かが判断される。全てのサイズの画像データについて処理したと判断された場合には、処理がステップＳ１５に移行する。一方、全てのサイズの画像データについて処理していないと判断された場合には、処理がステップＳ２に戻り、次に拡大または縮小された画像データに対して、上述の各ステップにおける処理が行われる。
【０１１３】
ステップＳ１５では、顔候補データベースに記憶された、確度値が上位の複数の顔候補画像データに対して検出結果補正処理が施され、数式（１）、数式（２）および数式（３）に基づき顔の位置およびサイズの平均が算出される。そして、ステップＳ１６において、検出結果として得られた顔の位置およびサイズに関する情報がＣＰＵ２１に出力され、一連の処理が終了する。
【０１１４】
このように、この発明の実施の一形態では、所定の顔に対して検出された矩形領域画像データの中から、所定の顔に対する確度値の高い複数の矩形領域画像データのみを記憶させておき、これらの矩形領域画像データの位置およびサイズの平均を算出し、算出結果に基づき顔の領域を検出するようにしているため、実際の顔の領域により近い領域を顔として検出することができる。
【０１１５】
また、この実施の一形態では、確度値を示すグラフのピーク付近、すなわち実際の顔の位置およびサイズに近い位置で検出した画像データを顔候補の画像データとするようにしているため、隣接する別の顔などが誤って検出されてしまうことを防ぎ、顔検出の誤差を小さくすることができる。
【０１１６】
以上、この発明の実施の一形態について説明したが、この発明は、上述したこの発明の実施の一形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。例えば、１つの顔候補に対して記憶されている顔候補画像データの数は、３つに限られず、画像メモリ３２の記憶容量に応じて増減させてもよい。
【図面の簡単な説明】
【０１１７】
【図１】この発明の実施の一形態による撮像装置の一例の構成を示すブロック図である。
【図２】顔検出部の一例の構成を示すブロック図である。
【図３】スケーリング処理について説明するための略線図である。
【図４】走査処理について説明するための略線図である。
【図５】画像データに対して水平方向に走査した場合における矩形領域画像データの確度値について説明するための略線図である。
【図６】画像データに対して垂直方向に走査した場合における矩形領域画像データの確度値について説明するための略線図である。
【図７】画像データを所定の縮小率で段階的に縮小した場合における矩形領域画像データの確度値について説明するための略線図である。
【図８】顔候補データベースの一例を示す略線図である。
【図９】同一判定処理について説明するための略線図である。
【図１０】顔が隣接する場合における顔の検出方法について説明するための略線図である。
【図１１】検出結果補正処理について説明するための略線図である。
【図１２】顔検出部における顔検出処理の流れを説明するためのフローチャートである。
【図１３】顔が隣接する場合における顔の検出方法について説明するための略線図である。
【符号の説明】
【０１１８】
１  撮像装置
１０  画像バス
１１  光学ブロック
１２  信号変換部
１３  カメラ信号処理部
１４  顔検出部
１５  表示処理部
１６  画像信号処理部
１７  記憶部
１８  表示部
１９  画像メモリ
２１  ＣＰＵ
２２  ＲＯＭ
２３  ＲＡＭ
３１  スケーリング部
３２  画像メモリ
３３  顔検出コア
３４  コントローラ
【図１】
2009110486.tif 000003
【図２】
2009110486.tif 000004
【図３】
2009110486.tif 000005
【図４】
2009110486.tif 000006
【図５】
2009110486.tif 000007
【図６】
2009110486.tif 000008
【図７】
2009110486.tif 000009
【図８】
2009110486.tif 000010
【図９】
2009110486.tif 000011
【図１０】
2009110486.tif 000012
【図１１】
2009110486.tif 000013
【図１２】
2009110486.tif 000014
【図１３】
2009110486.tif 000015