(57)【要約】      （修正有）【課題】時間とともに変化する動画を鮮明に撮影するために、動画像のフレームに追従する検査処理スピードにしてシームレスな顔を追跡検出する。【解決手段】画面上の画像データを拡大または縮小するスケーリング部２０１と、上記スケーリング部で得られた画像データに対して所定個数の画素を有する区画が複数個設けられ、該複数個の区画で設けられた画面上を所定の大きさの矩形領域で水平方向、または水平および垂直方向に走査し、上記スケーリング処理された画像データの中の特定画像を検出する画像検出部２０３と、上記検出して得られた特定画像の画面の区画の重複度に応じた検出確度値を設定する候補領域処理部２０４と、該設定された検出確度値を記憶する記憶部２０２と、を有する。【選択図】図２
2010027000.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）などの処理を行うとともに、撮像信号をディジタル信号としての画像データに変換する処理を行う。また、カメラ信号処理部１０３は、制御部１１０からの制御信号に基づき、この画像データに対してホワイトバランス制御や露出補正制御などをさらに行う。
【００２０】
顔検出部１０４は、カメラ信号処理部１０３から出力された画像データを、画像ＲＡＭ(Random Access Memory）１０９を介して受け取り、受け取った画像データの中から人物の顔を検出し、その検出結果を制御部１１０に供給する。なお、顔検出部１０４の構成や顔検出処理の詳細については、後述する。
【００２１】
表示処理部１０５は、カメラ信号処理部１０３および後述する画像信号処理部１０６から出力された画像データを、画像ＲＡＭ１０９を介して受け取り、例えば表示に適した解像度の画像に変換して、表示部１０８に供給する。
【００２２】
表示部１０８は、表示処理部１０５で処理された画像データを表示画面に表示する。この表示部１０８は、撮像装置におけるビューファインダとして用いられるとともに、記憶部１０７から再生された画像のモニタとして用いられる。表示部１０８としては、例えばＬＣＤ（Liquid Crystal Display；液晶表示装置）を用いることができる。
【００２３】
画像信号処理部１０６は、カメラ信号処理部１０３から出力された画像データを、画像ＲＡＭ１０９を介して受け取り、この画像データを圧縮符号化して、動画像あるいは静止画像のデータファイルとして記憶部１０７に出力する。
また、画像信号処理部１０６は、後述する記憶部１０７から読み出された画像データファイルを復号し、画像ＲＡＭ１０９を介して表示処理部１０５に供給する。なお、例えば、動画像の符号化方式としては、ＭＰＥＧ（Moving Picture Experts Group）方式、静止画像の符号化方式としては、ＪＰＥＧ（Joint Photographic Experts Group）方式を適用することができる。
【００２４】
記憶部１０７は、画像信号処理部１０６により符号化されて生成された画像ファイルを記憶する。記憶部１０７としては、例えば、磁気テープや光ディスクなどの記録媒体のドライブ装置、フラッシュメモリ、あるいはＨＤＤ（Hard Disc Drive）などを用いることができる。この記憶部１０７は、記憶された画像データファイルを画像信号処理部１０６に読み出すことの他に、その画像データファイルに付随した情報を制御部１１０に供給する。画像データファイルに付随した情報とは、例えば画像データファイル中に埋め込まれた撮像条件や顔検出結果などのデータである。
【００２５】
画像ＲＡＭ１０９は、カメラ信号処理部１０３、顔検出部１０４、表示処理部１０５および画像信号処理部１０６に対して、画像バス１１３を介して接続されている。画像ＲＡＭ１０９は、画像バス１１３に接続されたこれらの処理ブロックにより共有され、各ブロック間では画像ＲＡＭ１０９を介して画像データが受け渡される。なお、この例では、これらの処理ブロックは、画像ＲＡＭ１０９を介して画像データを授受するものとして説明しているが、本発明は、この例に限らず、例えば、顔検出部１０４および表示処理部１０５は、カメラ信号処理部１０３および画像信号処理部１０６からの出力画像データを、画像バス１１３を介さずに直接受け取ることができるようにしてもよい。
【００２６】
制御部（ＣＰＵ）１１０はＣＰＵなどを備え、ＲＯＭ１１１に予め格納されたプログラムに従い、ＲＡＭ１１２をワークメモリとして、この撮像装置（１００）全体を制御する。例えば、制御部１１０のＣＰＵは、撮像装置１００の各部とコマンドやデータのやりとりを行い、それぞれを制御する。また、制御部１１０のＣＰＵは、図示されない操作部に対する操作に応じた制御信号や撮像信号などに基づき、光学ブロック１０１のフォーカス、絞り、ズームなどを制御するための制御信号を生成し、光学ブロック１０１に供給する。
【００２７】
図２に、顔検出部１０４の回路ブロックの構成例を示す。顔検出部１０４は、画像変換部としてのスケーリング部２０１、画像バッファ２０２、顔検出処理部としての顔検出コア部２０３、候補領域処理部２０４、コントローラ２０５を備える。
【００２８】
スケーリング部２０１は、画像ＲＡＭ１０９から画像バス１１３を介して読み出した画像データのサイズ（水平方向および垂直方向の各画素数）を、顔検出コア部２０３における顔検出処理に適するように縮小または拡大するスケーリング処理を行い、画像バッファ２０２に供給する。
また、顔を含む可能性の高い候補領域として、候補領域処理部２０４により算出された、顔の検出候補領域ビットマップをコントローラ２０５より受け取り、画像と同様にスケーリング処理を行い、画像バッファ２０２に供給する。なお、顔の検出候補領域ビットマップのスケーリング処理の詳細については後述する。
【００２９】
画像バッファ２０２は、スケーリング部２０１によってサイズ変換された画像データを一時的に保持する。そして、コントローラ２０５の制御に基づき、画像データの中から指示された位置における、所定サイズの矩形画像データを切り出す走査処理を行い、顔検出コア部２０３に供給する。
また、スケーリング部２０１によってサイズ変換された顔の検出候補領域ビットマップから、切出された矩形画像データが、顔の検出候補領域内に当てはまるものかどうかを判定し、顔検出処理を行う（On）／行わない（Off）を表すフラグデータを作成して、顔検出コア部２０３へ供給する。なお、顔検出を行う（On）／行わない（Off）を表すフラグデータの作成方法の詳細については後述する。
【００３０】
顔検出コア部２０３は、画像バッファ２０２から供給された矩形画像データに対して、顔検出処理を施す。顔検出コア部２０３では、顔検出処理として、顔判定処理、重複判定処理を行い、顔検出結果を制御部１１０と候補領域処理部２０４に出力する。ただし、上記の顔検出処理を行うのは、画像バッファ２０２から供給された顔検出を行う（On）／行わない（Off）を表すフラグデータが、Ｏｎの矩形画像データに対してであり、Ｏｆｆの矩形画像データについては顔検出処理を行わない。
【００３１】
候補領域処理部２０４は、顔検出コア部２０３から供給された顔の検出結果に基づいて、次のフレーム画像で顔が検出される可能性が高い領域を算出し、その領域を次のフレーム画像で、顔の検出候補領域に設定する。顔が検出される可能性が高い領域とは、現フレーム画像で顔が検出された位置の周辺画像である。設定された顔の検出候補領域データはコントローラ２０５に供給される。なお、顔の検出候補領域データの算出方法については後述する。
【００３２】
コントローラ２０５は、制御部１１０に設けられたＣＰＵの制御に基づき、スケーリング部２０１に対する画像データの縮小率（または拡大率）の指示や、画像バッファ２０２に対する書き込みまたは読み出しのメモリアドレスの指示など、顔検出部１０４の各部を制御する。また、候補領域処理部２０４によって求めた顔の検出候補領域データを、顔の検出候補ビットマップに変換した後に、スケーリング部２０１に供給する。なお、顔の検出候補領域ビットマップの算出方法については後述する。
【００３３】
次に、図１と図２を用いて撮像装置１００の動作を説明する。
まず、画像の取り込みについて説明する。
画像の記録時には、被写体からの光が光学ブロック１０１を介して不図示の撮像素子に入射され、撮像素子上に結像された画像は、信号変換部１０２で光電変換により電気信号に変換された撮像（映像）信号となる。その撮像信号は順次カメラ信号処理部１０３に供給され、ディジタル変換や画質補正処理などが施される。各種処理が施された画像データは、画像バス１１３を介して画像ＲＡＭ１０９に一旦記憶される。
【００３４】
表示処理部１０５は、カメラ信号処理部１０３からの画像データを、画像ＲＡＭ１０９を介して受け取り、表示用の画像信号を生成して表示部１０８に供給する。これにより、現在撮像中の画像が表示部１０８に表示され、撮影者は、この画像を視認して画角を確認することができる。
【００３５】
また、画像信号処理部１０６は、カメラ信号処理部１０３から出力された画像データを、画像ＲＡＭ１０９を介して順次受け取り、例えばＭＰＥＧ方式を用いて圧縮符号化処理を施して動画像ファイルを生成し、記憶部１０７に記録する。
【００３６】
また、図示しない操作部に設けられたシャッターボタンの押下などに応じて、カメラ信号処理部１０３から１フレーム分の画像データを取り出し、画像信号処理部１０６において、例えばＪＰＥＧ方式を用いて圧縮符号化処理を施して静止画像ファイルを生成し、記憶部１０７に記録することもできる。
【００３７】
さらに、画像の再生時には、記憶部１０７に記憶された画像ファイルが、画像信号処理部１０６に読み出されて復号され、表示処理部１０５に供給されて表示用の画像に変換される。これにより、動画像または静止画像を表示部１０８に再生表示することができる。
【００３８】
上述のような画像の記録時において、顔検出部１０４は、カメラ信号処理部１０３からの出力画像データを、画像ＲＡＭ１０９を介して受け取り、顔の検出処理を実行する。顔検出部１０４の顔の検出結果は制御部１１０に供給される。
【００３９】
次に、上述したＡＥ、ＡＦ、ＡＷＢ制御について説明する。
制御部１１０のＣＰＵは、顔検出部１０４の顔検出結果に基づきＡＥ（Auto Exposure）、ＡＦ（Auto Focus）やＡＷＢ（Auto White Balance）などの制御を行う。例えば、検出された顔の明るさや色を最適にするように絞り量、シャッタースピードやホワイトバランスゲインを調整する。あるいは、検出された顔にフォーカスを合わせるといった制御を行うことができる。
なお、顔検出部１０４は、記憶部１０７内の画像ファイルの再生時において、画像信号処理部１０６により復号された画像データを、画像ＲＡＭ１０９を介して受け取り、画像の記録時と同様に、顔の検出処理を実行してもよい。
【００４０】
次に、顔検出の主な処理動作である、スケーリング処理、操作処理、顔判定処理と検出候補領域処理について説明する。
まず、スケーリング処理について説明する。
スケーリング部２０１では、撮像された画面上の画像データ３００を所定の縮小率（または拡大率）で縮小（または拡大）した画像データ３０１を生成する。また、画像データと同じ縮小率（または拡大率）で、コントローラ２０５から供給された顔の検出候補領域のビットマップ３０２についても縮小（拡大）を行い、スケーリングされた顔の検出候補領域のビットマップ３０３を生成する。図３に、画像データとそれに対応するビットマップ図を示す。
図３（ａ）、（ｂ）において、画像データ３００、３０１は互いに拡大または縮小した時の画像を示す。これに対応して、図３（ｃ）、（ｄ）は、画像データを拡大または縮小したときに対応するビットマップデータを示す。
顔の検出候補領域のビットマップとは、画像データのピクセル（画素）に対応したフラグデータ群で、画像バッファ２０２により走査処理のために切出される矩形画像データの左上ピクセルが、顔の検出候補領域内であればＯｎ（1）となり、顔の検出候補領域外であればＯｆｆ（0）となる。
【００４１】
図３（ａ）は、拡大した時の画像データ３００を示し、この画像データ３００に対応した顔の検出候補領域のビットマップ３０２を図３（ｃ）に示す。検出候補領域のビットマップ３０２において、データ“１”を示す領域は、顔の検出候補領域を示し、データ“０”を示す領域は、顔の検出候補領域以外の領域を示す。
図３（ｂ）は、縮小した時の画像データ３０１を示し、これに対応した検出候補領域のビットマップ３０３において、データ“１”を示す領域は顔の検出候補領域を示し、データ“０”を示す領域は顔の検出候補領域以外の領域を示す。
図３（ｃ）と図３（ｄ）を比較すると、拡大した時のデータ“１”の領域が５＊５（ここで、＊印は掛算記号を示す）の領域を示し、縮小した時の顔の検出候補領域を示すデータ“１”の領域が３＊３の領域を示す。
【００４２】
次に、図４、５を用いて走査処理について説明する。
走査処理（後述の図１２のステップＳＴ−１０２に対応する）では、スケーリングした画像データに対して、所定サイズの矩形領域を水平方向および垂直方向に所定量だけ移動させながら走査し、矩形画像データを切り出す。
画像バッファ２０２は、コントローラ２０５の制御に基づき、スケーリング処理によって得られた画像データに対して、図４に示す処理を行う。すなわち、所定サイズの矩形領域３１０を画面の左上の端から水平方向に移動量Δｘだけ移動させ（水平方向に移動した矩形領域３１１に対応する）、画像データの右端に到達すると、左端に戻るとともに、垂直方向に移動量Δｙだけ位置を変更し、再び水平方向に移動させる。この動作を繰り返して画像データの右下端まで走査を行い、矩形画像データを順次切り出す。
また、コントローラ２０５は、走査処理により切出された矩形画像データの左上ピクセルに対応する、顔の検出候補領域のフラグデータを取り出す処理も行う。
【００４３】
図５に画面をスケーリング部２０１により縮小した時の画像を示す。画像データ３００をスケーリング比によりΔｒ倍した画像を画像データ３００ａに示し、この画像データ３００ａをまたΔｒ倍した画像を画像データ３００ｂに示す。以下同様に、所定、または任意のスケーリングにより、画像を縮小する。
図５では、縮小する場合のスケーリングの例を示したが、拡大する場合のスケーリングも同様に行うことができる。例えば画面データ３００ｄを基準にして、画像データ３００ｃ、３００ｂ、３００ａ、３００の順序に沿った画面とするとよい。なお、拡大する場合に関する説明は、縮小する場合と逆であるので省略する。
【００４４】
なお、図５に示すように、走査処理の際に走査される矩形領域３１０のサイズは、画像データの拡大または縮小した時のサイズによらず、常に同一のサイズとする。顔検出部１０４に入力された画像データのサイズをスケーリング部２０１で変更し、サイズが変更された画像データに対して所定サイズの矩形領域３１０を走査させることで、矩形領域３１０内で検出される顔のサイズが変わるため、実際の顔サイズを検出することができる。
【００４５】
次に、顔判定処理について説明する。
顔判定処理（後述の図１２のステップＳＴ−１０４に対応）では、走査処理によって切り出した矩形画像データにおける所定の画素に対して、所定の演算処理を施し、矩形画像データが顔を含むか否かを判定する。
走査処理によってスケーリングされた画像データから矩形画像データが切り出されると、顔検出コア部２０３は、画像バッファ２０２から供給された矩形画像データ内の画素のうち、予め学習によって定められた２点の画素における輝度値の差分を算出する。
また、学習によって定められた他の２点の画素における輝度値の差分を同様に算出していき、算出されたこれらの輝度値の差分に基づいて、矩形画像データにおける顔らしさを示す検出確度値を決定する。そして、この検出確度値に対して所定の閾値を設定し、検出確度値が閾値以上であれば、矩形画像データが顔を含むと判定し、検出確度値が閾値よりも低ければ、矩形画像データが顔を含まないと判定する。
なお、ここで顔検出に輝度値を用いた例を示したが、これは顔の眉、目、鼻、口などの輝度データが互いに関連することに基づいているためであり、必ずしも顔の色データ、顔の形状などに基づいて顔を検出する必要がない。
また、これとは別に、従来の顔の色データや顔の形状データ、輝度データを組み合わせて顔を検出しても良く、本発明はこれらに限定するものでない。
【００４６】
このように、スケーリングされた画像データを矩形領域３１０で走査することによって得られる矩形画像データに対して顔判定処理を行うことにより、検出確度値に応じて画像データ中の顔の位置を求めることができる。スケーリング処理においてスケーリングされた画像に対してさらに縮小率（拡大率）Δｒで縮小（拡大）されたスケーリングされた画像について、同様の顔判定処理を順次行うことにより、画像データ中の顔のサイズを求めることができる。
また、これらの顔判定処理は、後述の分岐（図１２のステップＳＴ−１０３）で示すように、走査によって切出された矩形画像データと共に取り出された顔の検出候補領域のフラグデータが、Ｏｎ（1）の場合のみ行われ、Ｏｆｆ（0）の場合には行われない。これにより、顔の検出候補領域内の矩形画像データのみに検出処理の実行が限定され、演算量を減らすことが出来る。
顔判定処理は画像のすべての領域を走査するまで繰り返される。さらに、すべてのサイズの画像データを処理するまで繰り返される。
【００４７】
次に、検出候補領域処理について説明する。
検出候補領域処理は、顔検出コア部２０３により出力された顔検出結果をもとに、次のフレーム画像で顔検出を行う画像範囲を、顔の検出候補領域として算出する。
【００４８】
ここで、上述した検出候補領域について定義する。
顔の検出候補領域データは図６（ａ）に示すように、入力画像を縦横ｍ＊ｍピクセル（画素；ｍは正の整数）単位に区画分けし、横方向を行候補領域データ（column_block）、縦方向を列候補領域データ（row_block）と定義したものである。ｍの大きさは、顔の検出候補領域を詳細に設定したければ小さい値にすれば良いが、小さい値にするほど行または列候補領域データのデータ量が増大してしまうので実用的ではない。そのために、ｍは使用上の適切なサイズに定義する。また、区画分けは、これ以外に縦横ｍ＊ｎピクセルとしｍとｎ（画素；ｎとｍは正の整数）が異なる値に設定しても良い。
さらに、行候補領域データは一区画当たり所定の検出確度値の範囲で、例えば０〜３の２ビットの顔検出確度値をもち、この２ビットが横方向の区画の一行分を表す。同様に列候補領域データは一区画当たり２ビットの顔検出確度値をもち、この２ビットが縦方向の区画の一列分を表す。
【００４９】
なお、顔検出確度値の０〜３の値は、画面上の各区画のそれぞれ独立した座標上のアドレスに設けられるのではなく、図６（ｂ）に示すように、画面上に構成された各区画に対応した行方向の１列と列方向の１列に対してのみ設定される。原理的には、全ての区画に顔検出確度値をそれぞれ設定してよいが、行と列方向の１行と１列のみに顔検出確度値を設定して、行、列方向の顔検出確度値が所定以上の範囲を顔検出候補領域をする方が、演算処理する回数を減少することができ、それに伴い画像処理を高速化することができる。なお、詳細な例に付いては、後述する。
【００５０】
顔検出確度値は、数値が大きいほど次のフレームで顔が検出される可能性の高いことを表している。顔検出確度値＝０は、顔が検出される可能性が無いことである。
この行候補領域データと列候補領域データ中の顔検出確度値が共に顔検出確度値≧１である領域が、次のフレーム画像の検出候補領域である。
【００５１】
なお、ここで顔検出確度値とは、０〜３（２ビット）までの重み付けした値を示し、フレーム画像間において変化する。
例えば、現フレーム画像において、画面上で矩形領域３１０が検出候補領域を水平方向または垂直方向に移動した時に、顔検出されない矩形領域の座標の原点（０，０）が前フレーム画像における顔検出された区画に重複すると、前フレーム画像の顔検出確度値から“１”を減算する。たとえば、前フレーム画像の顔検出確度値が“３”のとき、顔検出確度値は、１減少して“２”となり、また前フレーム画像で顔検出確度値が“２”のとき、“１”になり、さらに前フレーム画像の顔検出確度値が“１”のときは“０”になる。
また、前フレーム画像における顔検出確度値が“０,１,２”のとき、現フレーム画像で新たに顔検出される区画では顔検出確度値は“３”となる。
図６（ｂ）は、画面上で１区画をｍ＊ｍ個（ｍは正の整数）の画素で構成し、行候補領域の区画をｋ＝０，１，２，・・・，ｐ−１また列候補領域の区画をｉ＝０，１，２，・・・，ｎ−１（ここで、ｐとｎは１より大きい整数を表す）としたときの複数の区画で構成される画面構成を示す。
【００５２】
次に、図７を用いて検出候補領域の設定について説明する。
顔検出結果を受け取ると候補領域処理部２０４は、１以上の顔検出確度値をもつ、すべての区画の顔検出確度値から１を減算した後に、図７に示すように顔検出座標が含まれる行候補領域データの区画番号（i）と列候補領域データの区画番号（k）を算出し、区画（i,k）Ｃ００の周辺区画±ｎに対応する行候補領域データと列候補領域データに、顔検出確度値＝３を設定する。図８（ａ）〜（ｄ）は、顔検出確度値の遷移４００〜４０３は時間の経過による変化を図示したものである。
【００５３】
図７において、Ｃ００は、ｎ＝０のときの区画で座標（i,k）のＣ００を示し、ｎ＝１のときの１区画は（i,k）を中心として水平、垂直方向にそれぞれ１区画広げた区画を示す。
この拡大した区画は、図７の斜線で示した区画で、（i−ｎ,k−ｎ）、（i,k−ｎ）、（i＋ｎ,k―ｎ）、（i−ｎ,k）、（i,k）、（i＋ｎ,k）、（i−ｎ,k＋ｎ）、（i,k＋ｎ）、（i＋ｎ,k＋ｎ）の９区画で構成され、顔検出確度値をRow block i[1:0]=3, coloumn block k[1:0]=3で表す。
その結果、画面上の画像データは９区画をまとめて１区画と見做され、この区画を新たな区画として顔検出用の矩形領域３１０を走査するので、フレーム間で画像が激しく移動する場合、顔検出を見失うことを少なくすることができる。さらに、変数ｎを２、３、・・・と変えて区画をさらに拡張することができる。
このように、変数ｎを可変することにより、画像の移動の変化に伴う顔検出を最適化することができる。
【００５４】
図７において、周辺区画±ｎは次のフレーム画像で顔の検出される確率が高い領域の広さを表すものである。微小時間単位で動画像より切出したフレーム画像間では、人物の顔の移動量が±ｎ区画以内（移動の最大量）に収まるとした場合である。
図７および図８ではｎ＝１とした例を示す。周辺区画±ｎの数値は、移動の最大量から算出しても良いし、予測の確率を高めたければ、例えば動画像の圧縮技術で取り入れられている動き予測のアルゴリズムを用いて算出しても良い。また、ｎの値を上下左右に分解して、各々の向きに違った値を用いてもよい。
また、図８（ｂ）において、前フレーム画像の検出確度値が“３”であったすべての区画の顔検出確度値“３”から“１”を減算して“２”としているのは、同一の位置から顔が検出される確率は、時間の経過と共に下がっていくと考えられるためである。図８（ｃ）と図８（ｄ）においても、同様にフレーム画像が時間経過とともに顔検出確度値は減少する。顔検出確度値≧１の間は顔が検出される確率がまだ存在するとして、顔の検出候補領域に設定する。顔検出確度値＝０になると、顔の検出候補領域から除外される。
以上のように顔検出の確度値を減算する処理は、一時的な顔の条件（向き、輝度、髪型、表情、など）により顔が検出出来なかった場合に、顔の検出候補領域データの顔検出確度値の設定に慣性を与える。これにより、一時的に顔が検出できなかったとしても、顔の検出候補領域を見失うことなく、顔の追跡検出が可能となる。
【００５５】
図８に、画面上に形成された複数の区画を顔検出用の矩形領域３１０で走査した例を示す。
図８（ａ）は、画面上の区画をRow_block_i[1:0]のｉをｉ＝２０、colum_block_k[1:0]のｋをｋ＝１５とした例を示す。顔検出において、矩形領域３１０は顔が検出された位置である。
データ“０”は顔検出度確度値＝０で検出されなかったことを示す。一方、データ“３”は顔検出確度値＝３で現フレーム画像で顔検出したことを示す。
そして、検出結果を記憶する場合は、画面上の各区画の座標値の顔検出確度値を記憶しないで、ｙ座標列に対応した００３３３０００・・・とまたｘ座標列に対応した００００００００００３３３０・・・の値を例えばコントローラ２０５に記憶する。
【００５６】
図８（ｂ）は、例えば次のフレーム画像で顔が左斜め下に１区画移動した画像を示す。図８（ａ）と同様に、矩形領域３１０aは顔が検出された位置であり、ｉ＝１０〜１２とｋ＝４〜６で囲まれる領域はこのフレーム画像で新たに顔が検出されたから顔検出確度値＝３となる。一方、今回顔は検出されなかった領域で且つ前フレーム画像で顔検出された領域である、ｋ＝３でｉ＝１１〜１３は“２”と顔検出確度値が“３”から“２”へ“１”減少する。またｉ＝１３で且つｋ＝４、５の領域も顔検出確度値は“１”減少し、顔検出確度値は“２”となる。前フレーム画像と現フレーム画像で顔が検出されなかった領域（区画）の顔検出確度値は“０”である。
この結果、ｘ座標列に対応して００００００００３３２０００００とｙ座標列の００２３３３０００００００をコントローラ２０５に記憶する。
【００５７】
図８（ｃ）は、図８（ｂ）に続くフレーム画像における顔の移動状態を示す。図８（ｂ）の顔の位置から斜め右下へ１区画移動した例を示す。その結果、ｉ＝１１〜１３、ｋ＝３の領域は、さらに顔検出確度値が“１”減少し、顔検出確度値＝１となり、ｉ=１０〜１２、ｋ＝４の領域は前フレーム画像で顔検出され、現フレーム画像で顔検出されなかったので顔検出確度＝２、ｉ＝１３且つｋ＝４で示される領域は前々回と前フレーム画像で顔検出されなかったので、顔検出確度値＝１となる。ｉ＝１０とｋ＝５、６では前回顔検出されたので顔検出確度値=２、ｉ=１１〜１３とｋ＝５〜７では今回顔検出されたので、顔検出確度値＝３となる。
その結果、ｘ座標列の０００００００００２３３３０００・・・とｙ座標列の００１２３３３０００００・・・が記憶部１０７に記憶される。
図８（ｄ）は、時間経過に伴うフレーム画像で顔が右斜め下に１区画ずつシフトした例を示す。上述した例と同様に検出した結果、ｘ座標列に対応して、０００００００００１２３３３００・・・、ｙ座標列に対応して、０００１２３３３００００・・・の顔検出確度値が得られ、この顔検出確度値をコントローラ２０５に記憶する。
【００５８】
上述したように、フレーム経過に対応して、検出した顔検出確度値を設定することにより、顔検出の領域の顔検出確度値に重み付けし、その検出確度の出現割合を数値化して確度の高い検出候補領域を設定することができる。
【００５９】
図９を用いて、検出候補領域のビットマップ変換の動作について説明する。
図９（ａ）に示す顔の検出候補領域データを受け取るとコントローラ２０５は図９（ｂ）に示すように、検出候補領域データを検出候補領域のビットマップへ展開する。
ｘ座標列に対応して、顔検出確度値０００００００００１２３３３０００・・・、ｙ座標列に対応して顔検出確度値０００１２３３３０００・・・が求められ、このｘ座標列で得られた顔検出確度値１２３３３とｙ座標列で得られた顔検出確度値１２３３３で囲まれる領域が、検出候補領域となる。
図９（ｂ）は、図９（ａ）の画像をビットマップに変換した例である。図９（ｂ）において、顔の検出候補領域のビットマップがＯｎ（1）となるのは、行候補領域データと列候補領域データの顔検出確率値が共に顔検出確度値≧１（ビットマップ＝１）の区画で、その区画内のすべてのピクセルに対応するビットマップが対象である。すなわち、row_block>=1かつcolumn_Block_k>=1で囲まれた領域が検出候補領域である。それ以外の行候補領域データと列候補領域データの顔検出確率値のどちらかが、顔検出確度値＝０（ビットマップ＝０）の区画はＯｆｆ（0）が設定される。
【００６０】
図１０を用いて、追跡復帰の設定について説明する。
図１０（ａ）は、時間経過に対するフレーム画像Ａ−０２、Ａ−０１、Ａ００、Ａ０１、Ａ０２、Ａ０３、・・・の例を示し、このフレーム画像の内、フレーム画像Ａ−０２では画面全体で顔検出を行い、フレーム画像Ａ−０１では検出の検出確度を求める。
また、フレーム画像Ａ００は顔検出した結果、前フレーム画像Ａ００で検出した検出候補領域のビットマップ＝１で顔が検出されないときの動作を示し、フレーム画像Ａ０１は前フレーム画像でビットマップの“１”と“０”の領域を切り替えて（反転して）、顔検出する領域を異なる領域に設定する動作を示す。フレーム画像Ａ０２は、フレーム画像Ａ０１で“１”となった領域を走査して、その中から新たに顔検出候補領域を検出し、検出候補領域（ビットマップ＝１）を求める動作を示す。
【００６１】
以下、上述した追跡復帰の動作について図１０（ｂ）〜図１０（ｄ）を用いて具体的に説明する。
図１０（ｂ）に示すように、顔検出しないフレーム画像Ａ００では、row_bloc_i>=1,colum_block_ｋ>=1がビットマップ＝１を表し、それ以外の領域がビットマップ＝０を表し、顔はこのビットマップ＝０の領域に存在しない。すなわち、フレーム画像Ａ００において、ビットマップ＝１の領域に顔の画像が存在せず、顔画像を見失った状態を示す。
時間が経過し、図１０（ｃ）に示すように、顔検出の動作を行うフレーム画像Ａ０１において、row_block_i>=1,colum_block_ｋ>=1がビットマップ＝０、それ以外の領域がビットマップ＝１を示し、図１０（ｂ）のビットマップデータを反転した値になっている。この反転したビットマップにおいて、顔はこのビットマップ＝１の領域に存在する。
さらに、時間経過し、図１０（d）に示すように、顔検出したフレーム画像Ａ０２において、フレーム画像Ａ０１でビットマップ＝１の領域の中で顔検出され、row_block_1>=1,colum_block_k>=1がビットマップ＝１、それ以外の領域がビットマップ＝０となる。すなわち、一度顔画像を見失ってもビットマップを反転し、この反転した領域について新たに顔検出することにより、再度顔を検出することができる。
【００６２】
上述したように、顔の検出候補領域内に対して顔検出処理を行っていたとしても、顔の条件（向き、輝度、髪型、表情、など）が変化して顔が検出できない状態が続いたり、人物の顔が検出候補領域外へ瞬時に移動して顔が検出できなくなったりした場合には、顔検出確度値≧１を満たす期間内に顔が再検出できなくなり、フレーム画像Ａ００において追跡していた顔を見失うことが考えられる。その場合にコントローラ２０５は前フレーム画像までＯｎ（1）、Ｏｆｆ（0）としていた顔のフレーム画像Ａ００の検出候補領域ビットマップを、現フレーム画像では前フレーム画像のビットマップをフレーム画像Ａ０１で入れ替えて設定し、顔検出処理を行う。これにより見失った顔を改めてフレーム画像Ａ０２で検出し、顔検出の追跡を復帰させることができる。
【００６３】
また、図１１を用いて新規に顔が出現する場合の顔検出の追跡動作について説明する。
図１１（ａ）は、時間経過に対する顔検出の有無のフレーム画像を示す。フレーム画像Ｂ００は顔検出あり、またこれに続いてフレーム画像Ｂ０１で新たに顔が現われた例を示す。
【００６４】
図１１（ｂ）に示すように、フレーム画像Ｂ００において、row_block_k>=1,colum_block_i>=1の領域はビットマップ＝１、それ以外の領域はビットマップ＝０を示し、顔はビットマップ＝１の領域に存在する。
時間が経過し、図１１（ｃ）に示すようにフレーム画像Ｂ０１において、フレーム画像Ｂ０１で顔が新たに１個出現して２個の顔が存在する例を示す。フレーム画像Ｂ００で顔検出したビットマップ＝１の領域とビットマップ＝０の領域のデータを反転し、顔検出されなかった領域を、ビットマップ＝０からビットマップ＝１とする。この新たにビットマップ＝１とした領域のみを顔検出する。顔検出したフレーム画像Ｂ０１において、row_block_k>=1,colum_block_K>=1がビットマップ＝０、それ以外の領域がビットマップ＝１を示し、顔はこのビットマップ＝１の領域にも存在する。このビットマップ＝１とした領域内で新たに顔検出を行い、その領域中で顔検出された検出候補領域のみがrow_block_k>=1,colum_block_K>=1となり、それ以外はビットマップ＝０となる。
さらに、時間経過し、図１１（ｄ）に示すように、顔検出したフレーム画像Ｂ０２において、２個の顔が存在する領域を合わせて単純化された矩形領域が新たに検出候補領域となり、row_block_k>=1,colum_block_K>=1がビットマップ>=１、それ以外の領域がビットマップ＝０を示す。すなわち、新たに出現した顔を追加した２個の顔がこのビットマップ＝１で示す領域内に存在する。
【００６５】
このように、コントローラ２０５は図１１で示すように、検出候補領域のビットマップのＯｎ(1)、Ｏｆｆ（0）の入れ替えを定期的に実行しフレーム画像Ｂ０１で行い、画像中に出現した新規顔について、フレーム画像Ｂ０２において追跡を開始できるように動作させることも出来る。
【００６６】
次に、図１２のフローチャートを用いて顔検出部１０４の動作について説明する。
画像データが例えば画像ＲＡＭ１０９から画像バス１１３を介して顔検出部１０４のスケーリング部２０１に入力される（ＳＴ−１００）。
【００６７】
ステップＳＴ−１０１において、スケーリング部２０１で、画像データのサイズ（水平方向および垂直方向の各画素数）を、顔検出コア部２０３における顔検出処理に適するように縮小または拡大するスケーリング処理を行い、画像バッファ２０２に供給する（図３参照）。また、顔を含む可能性の高い検出候補領域として、候補領域処理部２０４により算出された、顔の検出候補領域のビットマップをコントローラ２０５より受け取り、画像と同様にスケーリング処理を行い、この処理したデータを画像バッファ２０２に供給する。
【００６８】
ステップＳＴ−１０２において、スケーリング処理された後、顔領域を検出するために、矩形領域（検出領域）３１０をΔｘ、Δｙ方向にシフトして、画面上を走査することにより操作処理が行われる。
【００６９】
ステップＳＴ−１０３において、矩形領域で走査した領域が、顔の検出候補領域内で有るか否かが判別され、判別した結果、検出候補領域内でないときステップＳＴ−１０５に遷移し、検出候補領域内のとき、ステップＳＴ−１０４へ遷移する。
【００７０】
ステップＳＴ−１０４において、ステップＳＴ−１０２の走査処理によって切り出した矩形画像データにおける所定の画素に対して、所定の演算処理を施し、矩形画像データが顔を含むか否かを判定する。この詳細な動作については、上述したように、図８〜図１１を用いて説明した。
【００７１】
ステップＳＴ−１０５において、矩形領域３１０を表示画面上で全ての領域に渡り走査したか否かを判別する。判別の結果、全ての領域を走査していないとき、ステップＳＴ―１０２に遷移し、全ての領域を走査したときは、ステップＳＴ−１０６に遷移する。
【００７２】
画面上の全ての領域を走査した画像データを全てのサイズで処理したかどうかを判別する。判別した結果、全てのサイズを処理したときは、ステップＳＴ−１０７に遷移し、顔検出結果を出力する。判別の結果、全てのサイズの画像データを処理しないときは、ステップＳＴ−１０１に遷移しスケーリング処理を行う。
【００７３】
ステップＳＴ−１０７において、顔検出コア部２０３により出力された顔検出結果をもとに、次のフレーム画像で顔検出を行う画像範囲を、顔の検出候補領域として算出する。その後、ステップＳＴ−１０２へ遷移する。
【００７４】
このように、顔の検出候補領域データとビットマップを用いて顔検出することにより、演算量を削減できる。また、顔の検出候補領域データの区分けによる顔検出候補データ量も削減することができる。顔検出度候補確度の制御によるシームレスな顔の追跡ができる。さらに、顔の検出候補領域データを制御することにより、顔の追跡を復帰でき、また新規に現われた顔も追跡できる。
【００７５】
以上述べたことから、本発明は以下の利点を有する。
顔の検出処理を検出候補領域に絞り込むことで、一枚のフレーム画像を処理するための演算量が削減でき、その結果、顔の検出処理スピードを上げることが出来る。顔の検出処理スピードが上がると、顔の検出結果をＡＦ（Auto Focus）、ＡＥ（Auto Exposure）やＡＷＢ（Auto White Balance）の制御に用いる場合に、時間的に細かな制御が可能となる。細かな制御が可能になると、一瞬のシャッターチャンスを逃すことなく鮮明な画像を捕らえることができる
【００７６】
顔の検出候補領域データの設定に慣性を持たせることで、一時的な顔の条件（向き、輝度、髪型、表情、など）変化により顔が未検出になったとしても、追跡が途切れることを防止できる。これにより、シームレスな顔検出の追跡が可能となる。シームレスな顔検出の追跡が可能になると、例えば、運動会の子供を撮影する場合などのように、屋外を動き回る被写体に対しても顔検出ができ、その顔の検出結果に対してＡＦ、ＡＥ、ＡＷＢの制御を適用すれば鮮明な動画像を撮影できる。
【００７７】
顔の条件（向き、輝度、髪型、表情、など）変化が長時間続いたり、動き回る人物の顔の移動量が大きく、顔が検出候補領域内から一瞬のうちに外れたりした場合、検出していた顔を見失って追跡が途切れる場合がある。その場合に、今まで顔の検出候補としていた領域以外を、あらたに検出候補に設定し、見失った顔を検出しなおして、追跡処理に復帰することが出来る。これにより、顔の追跡の途切れる時間を最小に抑えることが出来る。
また、検出領域を画像の顔の移動量に応じて可変することにより、顔の移動スピードが速い場合でも、追従することができる。
このように、追跡している顔の検出結果に対して、ＡＦ、ＡＥ、ＡＷＢの制御に適用すれば、ＡＦ、ＡＥ、ＡＷＢの制御ができない時間を最小限に抑えることができ、その結果、動画像が不鮮明になる時間を最小限にできる。
【００７８】
今まで顔の検出候補としていた領域以外を検出候補に設定する動作を定期的に行うことで、検出される顔が増減した場合でも、顔の検出と追跡処理が可能となる。これにより、複数人の顔の検出結果に対して、ＡＦ、ＡＥ、ＡＷＢの制御を適用すれば、被写体が複数人の動画像についても、鮮明な画像が撮影できる。
【００７９】
よって本発明は、移動する人物の動画像を微小時間単位で切出したフレーム画像において、時間的に並べられたフレーム画像の前後２枚の画像に対して顔検出を行い、その顔の位置とサイズの変移量を調べると、微小時間が十分小さいと考えれば、その変移量は大きくない。これは、動画像を微小時間単位で切出したフレーム画像であれば、現在のフレーム画像で検出した顔を含む周辺の画像領域を、顔を含む可能性の高い候補領域とし、次のフレームで顔の検索対象領域とすれば、顔検出の探索範囲を絞り込むことができ、その結果、演算回数を削減することができる。
【００８０】
また、現在のフレーム画像で検出した顔の位置と、まったく同じ位置に顔が検出される確率は、時間が経過する毎に低くなっていくと考えられる。これは人物がフレーム画像中を動くためで、時間の経過と共に、顔が検出された位置からの変移量が大きくなっていくと考えられるからである。しかし、一定の時間が経過するまでは確率はゼロとは言い切れない。従って、顔が検出されたという事象を持つ領域を、一定の時間が経過するまで顔を含む可能性が高い候補領域とする処理を加える。これにより、顔が検出されない瞬間があったとしても、顔の位置とサイズを見失うことなく顔の検索が行われ、撮像画像の条件が元に戻ったところで、再び顔が検出できるようになる。
【００８１】
また、顔を含む可能性が高い候補領域内で、一定の時間が経過しても顔が検出されない場合は、逆に候補領域外の方が顔を含む可能性が高いと判定し、顔の検索対象領域を候補領域外に切り替える処理を加える。これにより、顔の位置とサイズを見失うことになったとしても、改めて顔を検出することができ、顔検出の追跡動作へ復帰することが可能となる。なお、候補領域の領域内・外を排他的に切り替える理由は、顔検出の探索範囲を絞り込む効果を、顔検出の追跡動作を復帰する場合にも維持するためである。
【００８２】
本発明において、画面上の画像データを拡大または縮小するスケーリング部は、スケーリング部に対応する。上記スケーリング部で得られた画像データに対して所定個数の画素を有する区画が複数個設けられ、該複数個の区画で設けられた画面上を所定の大きさの矩形領域で水平方向、または水平および垂直方向に走査し、上記スケーリング処理された画像データの中の特定画像を検出する画像検出部は、顔検出部に対応する。上記検出して得られた特定画像の画面の区画の重複度に応じた検出確度値を設定する候補領域処理部は、候補領域処理部に対応する。上記候補処理部で設定された検出確度値を記憶する記憶部は、画像バッファに対応する。
【図面の簡単な説明】
【００８３】
【図１】図１は、撮像装置のブロック構成図である。
【図２】図２は、図１に示した撮像装置の顔検出部のブロック構成図である。
【図３】図３は、フレーム画像を拡大または縮小した画像データとそれに対応するビットマップデータを示す。
【図４】図４は、フレーム画像を特定の大きさの矩形領域で水平または垂直方向に走査する例である。
【図５】図５は、フレーム画像を縮小した時の画像データである。
【図６】図６は、画面上の画像データを複数の画素で構成した複数の区画を示す図である。
【図７】図７は、検出候補領域の構成例を示す図である。
【図８】図８は、各フレーム画像における、顔検出の動作を説明する図である。
【図９】図９は、顔の検出候補領域データとビットマップ変換した時の検出候補領域ビットマップを示す図である。
【図１０】図１０は、フレーム画像における、ビットマップデータの切換えと検出候補領域を検出する動作を説明する図である。
【図１１】図１１は、新規顔画像を検出するための動作を説明する図である。
【図１２】図１２は、画像の特定領域の顔検出候補領域を検出する動作を説明するためのフローチャートである。
【符号の説明】
【００８４】
１００…撮像装置、１０１…光学ブロック、１０２…信号変換部、１０３…カメラ信号処理部、１０４…顔検出部、１０５…表示処理部、１０６…画像信号処理部、１０７…記憶部、１０８…表示部、１０９…画像ＲＡＭ、１１０…制御部（ＣＰＵ）、１１１…ＲＯＭ、１１２…ＲＡＭ、１１３…画像バス、２０１…スケーリング部、２０２…画像バッファ、２０３…顔検出コア部、２０４…候補領域処理部、２０５…コントローラ、３００，３００ａ〜３００ｄ…画像データ、３１０，３１０ａ〜３１０ｄ，３１１…矩形領域。
【図１】
2010027000.tif 000003
【図２】
2010027000.tif 000004
【図３】
2010027000.tif 000005
【図４】
2010027000.tif 000006
【図５】
2010027000.tif 000007
【図６】
2010027000.tif 000008
【図７】
2010027000.tif 000009
【図８】
2010027000.tif 000010
【図９】
2010027000.tif 000011
【図１０】
2010027000.tif 000012
【図１１】
2010027000.tif 000013
【図１２】
2010027000.tif 000014