(57)【要約】【課題】被写体の顔が正面向きから横向き、後ろ向きとなるような状況であっても、顔の位置を適正に推定し続けることを可能にする。【解決手段】撮像部により得られた画像データ中からテンプレートマッチングにより顔エリアを検出し（Ｓ２００）、顔エリアが検出された場合には（Ｓ２０１；Ｙｅｓ）、その検出結果により顔エリアの位置を決定し（Ｓ２０２）、顔エリアと等価的に動く胴体エリアを検出し（Ｓ２０３〜Ｓ２０５）、検出された顔エリアおよび胴体エリアそれぞれのフレーム間での時系列な動きをパタンマッチングで検出し（Ｓ２０７，Ｓ２０９）、顔エリアが検出されなくても（Ｓ２０１；Ｎｏ）、顔エリア自体の動き検出結果（Ｓ２１１；Ｙｅｓ、Ｓ２２１；Ｙｅｓ）や胴体エリアの動き検出結果（Ｓ２１０；Ｙｅｓ、Ｓ２１１；Ｎｏ）を用いることで、顔領域の位置を適正に推定し続けることができるようにした。【選択図】        図５
2009081714.tif 000002
【特許請求の範囲】
【請求項１】
被写体からの光束を受光し光電変換して画像データを得る撮像部と、
前記得られた画像データ中から顔領域を検出する顔検出部と、
前記得られた画像データ中から、前記検出された顔領域の周辺領域を検出する顔周辺検出部と、
前記検出された顔領域および周辺領域それぞれのフレーム間での時系列な動きを検出する動き検出部と、
前記顔検出部の検出結果と前記動き検出部の検出結果とに基づいて現フレームでの顔領域を決定する顔位置決定部と、
を備えることを特徴とする撮像装置。
【請求項２】
前記決定された顔領域の画像データに基づき撮像条件を設定する撮像条件設定部を備えることを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記顔周辺検出部は、前記検出された顔領域と等価的に動くと予測された胴体領域を前記周辺領域として検出することを特徴とする請求項１に記載の撮像装置。
【請求項４】
前記顔周辺検出部は、前記検出された顔領域と等価的に動くとして設定された周辺領域を前記周辺領域として検出することを特徴とする請求項１に記載の撮像装置。
【請求項５】
前記顔周辺検出部で検出する前記周辺領域は、撮像画面内での前記顔領域の位置または前記顔領域の大きさに応じて設定されることを特徴とする請求項１に記載の撮像装置。
【請求項６】
前記動き検出部は、前記顔領域および前記周辺領域の時系列な動きとして、各領域内の位置変化のあった複数の分割領域の変化に基づいて位置変化量を検出することを特徴とする請求項１に記載の撮像装置。
【請求項７】
前記顔位置決定部は、現フレームにおいて前記顔検出部により顔領域が検出された場合には該顔検出部の検出結果に基づいて現フレームでの顔領域を決定し、現フレームにおいて前記顔検出部により顔領域が検出されず、前記動き検出部によりフレーム間での顔領域および周辺領域の動きが検出された場合には、少なくとも該動き検出部による顔領域の動きの検出結果に基づいて現フレームでの顔領域を決定することを特徴とする請求項１に記載の撮像装置。
【請求項８】
前記動き検出部による顔領域の動きの検出結果と周辺領域の動きの検出結果との間の相対的な動きの信頼性を判定する信頼性判定部を備え、
相対的な動きの信頼性が所定レベル以上ないと判定された場合には、現フレームでの周辺領域を再設定することを特徴とする請求項７に記載の撮像装置。
【請求項９】
前記顔位置決定部は、現フレームにおいて前記顔検出部により顔領域が検出された場合には該顔検出部の検出結果に基づいて現フレームでの顔領域を決定し、現フレームにおいて前記顔検出部により顔領域が検出されず、かつ、前記動き検出部によりフレーム間での顔領域の動きが検出されず、該動き検出部によりフレーム間での周辺領域の動きが検出された場合には、該動き検出部による周辺領域の動きの検出結果に基づいて現フレームでの顔領域を推定し決定することを特徴とする請求項１に記載の撮像装置。
【請求項１０】
被写体からの光束を撮像部で受光し光電変換して画像データを得る撮像工程と、
前記得られた画像データ中から顔領域を検出する顔検出工程と、
前記得られた画像データ中から、前記検出された顔領域の周辺領域を検出する顔周辺検出工程と、
前記検出された顔領域および周辺領域それぞれのフレーム間での時系列な動きを検出する動き検出工程と、
前記顔検出工程の検出結果と前記動き検出工程の検出結果とに基づいて現フレームでの顔領域を決定する顔位置決定工程と、
を備えることを特徴とする撮像装置における顔領域決定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンパクトデジタルカメラ等の撮像装置および撮像装置における顔領域決定方法に関するものである。
【背景技術】
【０００２】
従来、撮像された入力画像から顔を検出する技術として、テンプレートマッチング法により、顔位置を検出し、検出した顔位置の中から顔の特徴点の位置を検出することで、顔の大きさや位置、向きを検出する技術が公知である。このような顔検出技術により検出された顔位置の範囲にピントが合うように自動焦点制御（ＡＦ制御）等を行うことで、被写体の顔への合焦精度を向上させることも知られている（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開２００６−２２７０８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１等に示される顔検出技術は、目、鼻、口などの顔の特徴点を元にテンプレートマッチングにより顔を検出しているため、被写体における顔が正面方向を向いていればよいが、被写体における顔が横を向いたり、後ろを向いたりした場合には顔検出率が低下してしまう。したがって、顔が撮影画角中に存在しているにも関わらず、顔が正面から横を向いたり後ろを向いたりした場合には、顔を検出できなくなるため、顔以外の位置にピント合わせをしてしまうといった問題がある。
【０００５】
本発明は、上記に鑑みてなされたものであって、被写体の顔が正面向きから横向き、後ろ向きとなるような状況であっても、顔の位置を適正に推定し続けることが可能な撮像装置および撮像装置における顔領域決定方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明にかかる撮像装置は、被写体からの光束を受光し光電変換して画像データを得る撮像部と、前記得られた画像データ中から顔領域を検出する顔検出部と、前記得られた画像データ中から、前記検出された顔領域の周辺領域を検出する顔周辺検出部と、前記検出された顔領域および周辺領域それぞれのフレーム間での時系列な動きを検出する動き検出部と、前記顔検出部の検出結果と前記動き検出部の検出結果とに基づいて現フレームでの顔領域を決定する顔位置決定部と、を備えることを特徴とする。
【０００７】
また、本発明にかかる撮像装置は、上記発明において、前記決定された顔領域の画像データに基づき撮像条件を設定する撮像条件設定部を備えることを特徴とする。
【０００８】
また、本発明にかかる撮像装置は、上記発明において、前記顔周辺検出部は、前記検出された顔領域と等価的に動くと予測された胴体領域を前記周辺領域として検出することを特徴とする。
【０００９】
また、本発明にかかる撮像装置は、上記発明において、前記顔周辺検出部は、前記検出された顔領域と等価的に動くとして設定された周辺領域を前記周辺領域として検出することを特徴とする。
【００１０】
また、本発明にかかる撮像装置は、上記発明において、前記顔周辺検出部で検出する前記周辺領域は、撮像画面内での前記顔領域の位置または前記顔領域の大きさに応じて設定されることを特徴とする。
【００１１】
また、本発明にかかる撮像装置は、上記発明において、前記動き検出部は、前記顔領域および前記周辺領域の時系列な動きとして、各領域内の位置変化のあった複数の分割領域の変化に基づいて位置変化量を検出することを特徴とする。
【００１２】
また、本発明にかかる撮像装置は、上記発明において、前記顔位置決定部は、現フレームにおいて前記顔検出部により顔領域が検出された場合には該顔検出部の検出結果に基づいて現フレームでの顔領域を決定し、現フレームにおいて前記顔検出部により顔領域が検出されず、前記動き検出部によりフレーム間での顔領域および周辺領域の動きが検出された場合には、少なくとも該動き検出部による顔領域の動きの検出結果に基づいて現フレームでの顔領域を決定することを特徴とする。
【００１３】
また、本発明にかかる撮像装置は、上記発明において、前記動き検出部による顔領域の動きの検出結果と周辺領域の動きの検出結果との間の相対的な動きの信頼性を判定する信頼性判定部を備え、相対的な動きの信頼性が所定レベル以上ないと判定された場合には、現フレームでの周辺領域を再設定することを特徴とする。
【００１４】
また、本発明にかかる撮像装置は、上記発明において、前記顔位置決定部は、現フレームにおいて前記顔検出部により顔領域が検出された場合には該顔検出部の検出結果に基づいて現フレームでの顔領域を決定し、現フレームにおいて前記顔検出部により顔領域が検出されず、かつ、前記動き検出部によりフレーム間での顔領域の動きが検出されず、該動き検出部によりフレーム間での周辺領域の動きが検出された場合には、該動き検出部による周辺領域の動きの検出結果に基づいて現フレームでの顔領域を推定し決定することを特徴とする。
【００１５】
また、本発明にかかる撮像装置における顔領域決定方法は、被写体からの光束を撮像部で受光し光電変換して画像データを得る撮像工程と、前記得られた画像データ中から顔領域を検出する顔検出工程と、前記得られた画像データ中から、前記検出された顔領域の周辺領域を検出する顔周辺検出工程と、前記検出された顔領域および周辺領域それぞれのフレーム間での時系列な動きを検出する動き検出工程と、前記顔検出工程の検出結果と前記動き検出工程の検出結果とに基づいて現フレームでの顔領域を決定する顔位置決定工程と、を備えることを特徴とする。
【発明の効果】
【００１６】
本発明にかかる撮像装置および撮像装置における顔領域決定方法は、撮像部により得られた画像データ中から顔領域を検出するとともに、検出された顔領域の周辺領域を検出し、検出された顔領域および周辺領域それぞれのフレーム間での時系列な動きを検出し、顔検出部または顔検出工程の検出結果と動き検出部または動き検出工程の検出結果とに基づいて現フレームでの顔領域を決定するようにしたので、被写体の顔が正面向きから横向き、後ろ向きなどとなって顔検出部または顔検出工程で顔領域を検出できなくなった場合でも、顔領域自体の動き検出や顔領域の周辺領域の動き検出の結果を用いることで、顔領域の位置を適正に推定し続けることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１７】
以下、本発明を実施するための最良の形態である撮像装置および撮像装置における顔領域決定方法について図面を参照して説明する。本発明は、各実施の形態に限らず、本発明の趣旨を逸脱しない範囲であれば、種々の変形が可能である。
【００１８】
（実施の形態１）
図１は、本発明の実施の形態１にかかる撮像装置の電装系構成例を示す概略ブロック図である。本実施の形態１にかかる撮像装置１は、コンパクトデジタルカメラ等の電子カメラであり、図１に示すように、撮像光学系１１、撮像素子１２、ＡＦＥ（Analog Front End）１３、フレームメモリ１４、動き検出部１５、ＲＡＭ１６、画像処理部１７、顔検出部１８、胴体エリア予測部１９、記録媒体Ｉ／Ｆ２０、記録媒体保持部２１、記録媒体２２、ビデオエンコーダ２３、ビデオ信号出力端子２３ａ、ＬＣＤドライバ２４、ＬＣＤ２５、ＲＯＭ２６、およびシステムコントローラ２７等を備える。
【００１９】
撮像光学系１１は、撮影レンズ等を含み、入射される被写体像を撮像素子１２に結像する。撮像部としての撮像素子１２は、ＣＣＤ、ＣＭＯＳセンサ等の固体撮像素子からなり、被写体からの光束を撮像光学系１１を介して受光し、光電変換することでフレーム単位の画像データを得るものである。ＡＦＥ１３は、撮像素子１２から得られる画像データ（アナログ電気信号）を読み出して、ＡＧＣ（Automatic Gain Control）処理やＡ／Ｄ変換処理などを施し、デジタルデータによる画像データを出力するものである。ＡＦＥ１３によりデジタル化された画像データは、フレームメモリ１４、動き検出部１５およびＲＡＭ１６の各部に入力される。
【００２０】
画像処理部１７は、ＲＡＭ１６に一旦格納された画像データを読み出して、色補正、歪み補正等の各種の画像処理を施すとともに、記録用、表示用、顔検出用に適した画像データに変換して、記録媒体Ｉ／Ｆ２０、ビデオエンコーダ２３、顔検出部１８のそれぞれに出力する。記録媒体Ｉ／Ｆ２０は、記録用に適した画像データを記録媒体保持部２１により挿脱自在に保持されたメモリカード等の記録媒体２２に記録する。ビデオエンコーダ２３は、表示用に適した画像データをＬＣＤドライバ２４に送出することで、撮像装置１の背面側に設けられたＬＣＤ２５にスルー画として表示させる。ビデオエンコーダ２３は、必要に応じて、ビデオ信号出力端子２３ａに接続された外部機器に対して表示用の画像データを出力する。
【００２１】
顔検出部１８は、撮像素子１２によって得られた画像データに対して輪郭テンプレート、目テンプレート等を用いる周知のテンプレートマッチング法（例えば、特開平８−６３５９７号公報参照）を適用して画像データ中に顔画像が存在するか否かを判断し、顔画像が存在する場合にはその顔エリア（顔領域）を検出するテンプレートマッチングモジュールからなる。顔検出部１８は、検出した顔エリアの座標、顔の向き、顔パーツ（目、鼻、口など）などの情報をＲＡＭ１６に保存する。
【００２２】
胴体エリア予測部１９は、顔検出部１８で検出された顔エリアの座標、顔の向き、顔パーツなどの情報に基づき、胴体エリア（胴体領域）の位置および大きさを予測して算出するものである。算出された胴体エリアの位置および大きさは、顔検出部１８によって検出された顔領域と一体となって等価的に動く周辺領域の情報としてＲＡＭ１６に保存される。
【００２３】
動き検出部１５は、検出された顔エリア、胴体エリアそれぞれのフレーム間での時系列な動きをパタンマッチング法により検出するためのものである。すなわち、動き検出部１５は、フレームメモリ１４に格納された１つ前のフレームの画像データと、ＡＦＥ１３から入力される現フレームの画像データとを用いて、パタンマッチングにより動きベクトルを求めるものである。この際、求める動きベクトルの範囲は、１つ前のフレームの画像データから顔検出部１８、胴体エリア予測部１９で求めた顔エリア、胴体エリア（顔周辺エリア）である。動き検出部１５で検出された顔エリア、胴体エリアそれぞれの動きベクトルの情報はＲＡＭ１６に格納される。
【００２４】
システムコントローラ２７は、撮像装置１内の各部の制御処理やメモリ制御を行うとともに、顔位置決定部や撮像条件設定部の機能を実行する。すなわち、ＲＡＭ１６に格納された動きベクトルの情報から現フレームでの顔エリアの位置を算出し、顔検出部１８で求めた顔エリアの座標と合わせて、現フレームでの顔エリアの位置を決定する。また、決定された顔エリアの画像データに基づき撮像条件を設定するためのＡＦ（自動焦点）、ＡＥ（自動露出）、ＡＷＢ（自動ホワイトバランス）の処理を行う。
【００２５】
ＲＯＭ２６は、システムコントローラ２７が実行する制御プログラムを予め格納している他、顔検出部１８でテンプレートマッチングに用いるテンプレートデータ等を格納している。
【００２６】
図２は、図１中の主要部の撮影時の動作例を示す概略タイミングチャートである。図２中、“Ａ”〜“Ｆ”は、露光動作に伴い撮像素子１２により順次撮像されるフレーム画像を示している。撮像されたフレーム画像は、ＡＦＥ１３によりデジタル化された後、ＲＡＭ１６やフレームメモリ１４へＤＭＡ（ダイレクトメモリアクセス）制御により格納される。ＲＡＭ１６に格納されたフレーム画像は、画像処理部１７により順次画像処理され、顔検出部１８による顔検出処理の対象とされる。動き検出部１５では、代表点マッチングにより動きベクトルを求める。すなわち、フレームメモリ１４に格納された１つ前のフレーム画像とＡＦＥ１３から取得した現フレームの画像データからパタンマッチング法における代表点マッチングにより、顔検出部１８、胴体エリア予測部１９から入力された顔エリアと胴体エリアとの動きベクトルを求める。そして、システムコントローラ２７による顔位置決定では、代表点マッチングにより検出した顔エリアと、顔検出部１８で検出した顔エリアとの検出結果に基づき、現フレームでの最終的な顔エリアの位置を決定する。そして、決定された最終的な顔エリアの位置を基にＡＥ，ＡＦ，ＡＷＢ動作を行い、撮像条件を設定することとなる。ＬＣＤ表示は、スルー画としてＬＣＤ２５に表示するフレーム画像を示している。
【００２７】
次に、図３−１〜図３−４を参照して、本実施の形態１の特徴的な顔エリア決定方法の概要を説明する。図３−１〜図３−４は、Ｎフレームから（Ｎ＋３）フレームまで時系列なフレーム画像例を示す説明図である。各図の（ａ）（ｂ）は、同一フレーム画像例を示し、各図の（ａ）は、テンプレートマッチングモジュール（顔検出部１８）による顔検出例を示し、各図の（ｂ）は、動き検出モジュール（胴体エリア予測部１９および動き検出部１５）による顔検出例を示している。
【００２８】
まず、図３−１（ａ）に示すように、Ｎフレームのフレーム画像について、顔検出部１８でのテンプレートマッチングにより、画像データ中から、顔エリアを検出することを前提とする。顔検出部１８によって顔エリアを検出した場合には、検出された顔エリアを対象としてＮフレーム画像のＡＥ動作等を行わせる。そして、図３−１（ｂ）に示すように、検出した顔エリアの情報を胴体エリア予測部１９に通知する。胴体エリア予測部１９は、通知された顔エリアから、図３−１（ｂ）中に四角枠で示すように、胴体エリアを予測する。
【００２９】
ついで、図３−２（ａ）に示す（Ｎ＋１）フレームのフレーム画像について、顔の向きなどの要因により、顔検出部１８でのテンプレートマッチングでは顔エリアを検出できなかったとする。この場合、図３−２（ｂ）に示すように、Ｎフレーム、（Ｎ＋１）フレーム間において、動き検出部１５でのパタンマッチングにより顔エリアの動きを検出できた場合には、この動き検出部１５で検出した顔エリアを対象として（Ｎ＋１）フレーム画像のＡＥ動作等を行わせる。この際、動き検出部１５でのパタンマッチングにより胴体エリアの動きが検出されているか否かは問わない。
【００３０】
さらに、図３−３（ａ）に示す（Ｎ＋２）フレームのフレーム画像について、顔の向きなどの要因により、顔検出部１８でのテンプレートマッチングでは顔エリアを検出できなかったとする。この際、図３−２（ｂ）に示すように、（Ｎ＋１）フレーム、（Ｎ＋２）フレーム間において、動き検出部１５でのパタンマッチングにより顔エリアの動きも検出できなかったが、胴体エリアの動きは検出できたとする。すると、この胴体エリアの動きから顔エリアの位置を推定して、推定された顔エリアを対象として（Ｎ＋２）フレーム画像のＡＥ動作等を行わせる。
【００３１】
一方、図３−４（ａ）に示す（Ｎ＋３）フレームのフレーム画像について、顔検出部１８でのテンプレートマッチングにより、顔エリアが再び検出されたとする。顔検出部１８によって顔エリアを検出した場合には、検出された顔エリアを対象として（Ｎ＋３）フレーム画像ＡＥ動作等を行わせる。そして、図３−４（ｂ）に示すように、検出した顔エリアの情報を胴体エリア予測部１９に通知する。胴体エリア予測部１９は、通知された顔エリアから、図３−４（ｂ）中に四角枠で示すように、胴体エリアを新たに予測する。
【００３２】
このように、本実施の形態１では、顔検出部１８により顔エリアを検出し、検出した顔エリアの大きさ、顔の向き、顔パーツの情報から、胴体の位置および大きさを胴体エリア予測部１９で予測する。そして、顔検出部１８で検出された顔エリアと、予測された胴体エリアとのフレーム間での時系列な動きを、動き検出部１５においてパタンマッチングにより検出する。検出中の顔画像がフレーム画像内に収まっているが、顔の向きにより顔検出部１８のテンプレートマッチングで顔を検出できなくなった場合において、動き検出部１５でのパタンマッチングにより顔エリアの動きを検出できているときには、検出された顔エリアの動きに応じて対象となる現フレーム画像中の顔エリアの位置を更新する。さらに、顔が後ろを向き等の動きによって、動き検出部１５でのパタンマッチングによっても顔エリアの動きを検出できず、かつ、動き検出部１５でのパタンマッチングによって胴体エリアの動きを検出できたときには、検出された胴体エリアの動きから、現フレーム画像中の顔エリアの動きを予測し、顔エリアの位置を更新するものである。すなわち、顔の動きは、体の動きと略一致しているため、顔の動きは、胴体の動きからも推定し得る点に着目し、顔エリア自体や顔エリアの動きが検出できない場合には、検出された胴体エリアの動きを活用するようにしたものである。これにより、スポーツシーンや動き回る子供の撮影時のように、顔の向きが変化するような状況下でも、顔の位置を的確に追従設定することができる。
【００３３】
以下、本実施の形態１における動作制御例について、図４〜図１１を参照して詳細に説明する。図４は、電子カメラの電源ＯＮ／ＯＦＦに伴う基本的な動作制御例を示す概略フローチャートである。まず、電子カメラの電源がＯＮされると、撮影モードであるか否かを判断する（ステップＳ１００）。撮影モードに設定されていれば（ステップＳ１００；Ｙｅｓ；撮像工程）、顔検出処理を開始する（ステップＳ１０１）。この顔検出処理の詳細については、後述する。顔検出処理の結果、現フレーム画像中から顔エリアが検出されたか否かを判断する（ステップＳ１０２）。顔エリアが検出されなかった場合には（ステップＳ１０２；Ｎｏ）、現フレーム画像中の通常範囲を対象としてＡＦ／ＡＥ／ＡＷＢ動作を行い、撮像条件を設定する（ステップＳ１０３）。一方、顔エリアが検出された場合には（ステップＳ１０２；Ｙｅｓ）、現フレーム画像中の顔検出範囲（顔エリア）の画像データを対象としてＡＦ／ＡＥ／ＡＷＢ動作を行い、撮像条件を設定する（ステップＳ１０４；撮像条件設定部）。そして、レリーズボタンに関して、１ｓｔレリーズがＯＮされたか否かを判断し（ステップＳ１０５）、ＯＮされていなければ（ステップＳ１０５；Ｎｏ）、ステップＳ１０１〜Ｓ１０４の処理を繰り返す。
【００３４】
ＯＮされた場合には（ステップＳ１０５；Ｙｅｓ）、顔検出処理を開始する（ステップＳ１０６）。この顔検出処理の詳細についても、後述する。顔検出処理の結果、現フレーム画像中から顔エリアが検出されたか否かを判断する（ステップＳ１０７）。顔エリアが検出されなかった場合には（ステップＳ１０７；Ｎｏ）、現フレーム画像中の通常範囲を対象としてＡＦ／ＡＥ／ＡＷＢ動作を行い、撮像条件を設定する（ステップＳ１０８）。一方、顔エリアが検出された場合には（ステップＳ１０７；Ｙｅｓ）、現フレーム画像中の顔検出範囲（顔エリア）の画像データを対象としてＡＦ／ＡＥ／ＡＷＢ動作を行い、撮像条件を設定する（ステップＳ１０９；撮像条件設定部）。そして、レリーズボタンに関して、２ｎｄレリーズがＯＮされたか否かを判断し（ステップＳ１１０）、ＯＮされていなければ（ステップＳ１１０；Ｎｏ）、ステップＳ１０６〜Ｓ１０９の処理を繰り返す。
【００３５】
２ｎｄレリーズがＯＮされた場合には（ステップＳ１１０；Ｙｅｓ）、設定された撮像条件に従い撮影処理を実行する（ステップＳ１１１；撮像工程）。そして、撮影モードが終了であるか否かを判断し（ステップＳ１１２）、終了していなければ（ステップＳ１１２；Ｎｏ）、ステップＳ１０１に戻る。一方、撮影モードが終了の場合には（ステップＳ１１２；Ｙｅｓ）、再生モードが選択されているか否かを判断する（ステップＳ１１３）。再生モードも選択されていなければ（ステップＳ１１３；Ｎｏ）、カメラ電源ＯＦＦであり、処理を終了する。
【００３６】
また、ステップＳ１００において、撮影モードでない場合、または、ステップＳ１１３において再生モードが選択されている場合には、ユーザ操作に従い、再生画像を選択し（ステップＳ１１４）、選択された撮影済みの静止画／動画をＬＣＤ２５の画面上に再生表示させる（ステップＳ１１５）。その後、再生モードが終了であるか否かを判断し（ステップＳ１１６）、終了していなければ（ステップＳ１１６；Ｎｏ）、ステップＳ１１４に戻る。一方、再生モードが終了の場合には（ステップＳ１１６；Ｙｅｓ）、カメラ電源ＯＦＦであるか否かを判断し（ステップＳ１１７）、カメラ電源ＯＦＦでなければ（ステップＳ１１７；Ｎｏ）、撮影モードであり、ステップＳ１０１に戻る。カメラ電源ＯＦＦであれば（ステップＳ１１７；Ｙｅｓ）、処理を終了する。
【００３７】
次に、ステップＳ１０１またはステップＳ１０６の顔検出処理について図５を参照して説明する。図５は、顔検出処理例を示す概略フローチャートである。まず、システムコントローラ２７は、顔検出部１８を用いて周知のテンプレートマッチング法等による顔検出処理を実行する（ステップＳ２００）。顔検出部１８による顔検出処理で、顔が検出された場合には（ステップＳ２０１；Ｙｅｓ）、検出された顔エリアを現フレームでの顔エリアとしてＲＡＭ１６に保存する（ステップＳ２０２；顔位置決定部，顔位置決定工程）。図３−１（ａ）、図３−４（ａ）に示した例が相当する。このような顔検出に引き続き、システムコントローラ２７は、胴体エリア予測部１９を用いて胴体エリアの予測処理を実行させる（ステップＳ２０３）。図３−１（ｂ）、図３−４（ｂ）に示した例が相当する。この胴体エリアの予測処理については、後述する。
【００３８】
胴体エリアの予測処理に引き続き、現フレーム中で該胴体エリアが検出されたか（予測できたか）否かを判断する（ステップＳ２０４）。検出された場合には（ステップＳ２０４；Ｙｅｓ）、検出された胴体エリアを現フレームでの胴体エリアとしてＲＡＭ１６に保存し（ステップＳ２０５）、今回の顔検出処理を終了する。検出されない場合には（予測できない場合には）、そのまま今回の顔検出処理を終了する。顔検出部１８による顔検出処理で後続のフレーム画像についても顔が検出され続ける限り、これらステップＳ２０１；Ｙｅｓ〜ステップＳ２０５の処理は同様に繰り返される。よって、顔検出部１８により検出された顔エリアの情報が現フレームでの顔エリアとして決定され、ＲＡＭ１６に保存されて、撮像条件設定の対象エリアとして利用される。
【００３９】
一方、顔検出部１８による顔検出処理で顔エリアが検出できなかった場合には（ステップＳ２０１；Ｎｏ）、システムコントローラ２７は、動き検出部１５によるパタンマッチングを用いた顔エリア検出処理を実行させ、顔エリアの位置を決定する。まず、前フレーム画像について顔エリアがＲＡＭ１６に格納されているか否かを判断する（ステップＳ２０６）。これは、動き検出部１５による処理は、少なくとも先行するフレーム画像において、顔検出部１８によって一旦顔エリアが検出されて顔エリアが一旦ＲＡＭ１６に格納されていることを前提として実行されるためである。顔エリアがＲＡＭ１６に格納されていなければ（ステップＳ２０６；Ｎｏ）、動き検出部１５による処理を行えないため、今回の顔検出処理を終了する。
【００４０】
前フレーム画像について顔エリアがあれば（ステップＳ２０６；Ｙｅｓ）、動き検出部１５において顔エリアに関するパタンマッチング処理を実行し、前フレームと現フレームとの間での顔エリアの時系列な動きを検出する（ステップＳ２０７）。この顔エリアのパタンマッチング処理については、後述する。引き続き、前フレーム画像について胴体エリアがＲＡＭ１６に格納されているか否かを判断する（ステップＳ２０８）。前フレーム画像について胴体エリアがあれば（ステップＳ２０８；Ｙｅｓ）、動き検出部１５において胴体エリアに関するパタンマッチング処理を実行し、前フレームと現フレームとの間での胴体エリアの時系列な動きを検出する（ステップＳ２０９）。この胴体エリアのパタンマッチング処理については、後述する。胴体エリアがＲＡＭ１６に格納されていなければ（ステップＳ２０８；Ｎｏ）、ステップＳ２０９の処理をジャンプする。
【００４１】
ついで、動き検出部１５による胴体エリアのパタンマッチングの結果、胴体エリアに関する動きベクトルが検出されたか否かを判断する（ステップＳ２１０）。胴体エリアの動きベクトルが検出された場合には（ステップＳ２１０；Ｙｅｓ）、動き検出部１５による顔エリアのパタンマッチングの結果、顔エリアに関する動きベクトルが検出されたか否かを判断する（ステップＳ２１１）。顔エリアの動きベクトルが検出された場合には（ステップＳ２１１；Ｙｅｓ）、検出された顔エリアの動きに基づき現フレームでの顔エリアを算出してＲＡＭ１６に保存する（ステップＳ２１２；顔位置決定部，顔位置決定工程）。図３−２（ｂ）に示した例が相当する。よって、顔検出部１８により顔エリアが検出されなくなった場合において、動き検出部１５により顔エリアの動きが検出された場合には、顔エリアの動きに基づき算出された顔エリアの情報が現フレームでの顔エリアとして決定され、ＲＡＭ１６に保存されて、撮像条件設定の対象エリアとして利用される。
【００４２】
引き続き、同時に検出された胴体エリアの動きの検出結果に基づき、相対胴体エリアベクトルの信頼性に関する判定処理を行う（ステップＳ２１３；信頼性判定部）。この相対胴体エリアベクトル信頼性判定処理については、後述する。この判定処理の結果、相対胴体エリアベクトルの信頼性が所定レベル以上であるか否かを判断し（ステップＳ２１４）、所定レベル以上の信頼性がある場合には（ステップＳ２１４；Ｙｅｓ）、検出された胴体エリアの動きに基づき現フレームでの胴体エリアを算出してＲＡＭ１６に保存する（ステップＳ２１７）。所定レベル以上の信頼性がない場合には（ステップＳ２１６；Ｎｏ）、システムコントローラ２７は、胴体エリア予測部１９を用いて胴体エリアの予測処理を実行させ（ステップＳ２１５）、胴体エリアを再設定させる。この胴体エリアの予測処理については、後述する。胴体エリアの予測処理に引き続き、現フレーム中で該胴体エリアが検出されたか（予測できたか）否かを判断する（ステップＳ２１６）。検出された場合には（ステップＳ２１６；Ｙｅｓ）、検出された胴体エリアを現フレームでの胴体エリアとしてＲＡＭ１６に保存し（ステップＳ２１７）、今回の顔検出処理を終了する。検出されなかった場合には（予測できなかった場合には）、そのまま今回の顔検出処理を終了する。
【００４３】
一方、ステップＳ２１１において、顔エリアの動きベクトルが検出されていなかった場合には、検出された胴体エリアの動きベクトルを顔エリアの動きベクトルと見なし（ステップＳ２１８）、顔エリアの動きベクトル（胴体エリアの動きベクトル）に基づき現フレームでの顔エリアを算出してＲＡＭ１６に保存する（ステップＳ２１９；顔位置決定部，顔位置決定工程）。図３−３（ｂ）に示す例が相当する。よって、顔検出部１８により顔エリアが検出されなくなった場合において、動き検出部１５により顔エリアの動きが検出されず、動き検出部１５により胴体エリアの動きが検出された場合には、胴体エリアの動きに基づき推定されて算出された顔エリアの情報が現フレームでの顔エリアとして決定され、ＲＡＭ１６に保存されて、撮像条件設定の対象エリアとして利用される。さらに、検出された胴体エリアの動きに基づき現フレームでの胴体エリアを算出してＲＡＭ１６に保存する（ステップＳ２２０）。
【００４４】
さらに、ステップＳ２１０において、胴体エリアの動きベクトルが検出されていない場合には（ステップＳ２１０；Ｎｏ）、動き検出部１５による顔エリアのパタンマッチングの結果、顔エリアに関する動きベクトルが検出されたか否かを判断する（ステップＳ２２１）。顔エリアの動きベクトルが検出されている場合には（ステップＳ２２１；Ｙｅｓ）、検出された顔エリアの動きに基づき現フレームでの顔エリアを算出してＲＡＭ１６に保存する（ステップＳ２２２；顔位置決定部，顔位置決定工程）。よって、顔検出部１８により顔エリアが検出されなくなった場合において、動き検出部１５により顔エリアの動きが検出された場合には、顔エリアの動きに基づき算出された顔エリアの情報が現フレームでの顔エリアとして決定され、ＲＡＭ１６に保存されて、撮像条件設定の対象エリアとして利用される。
【００４５】
引き続き、システムコントローラ２７は、胴体エリア予測部１９を用いて胴体エリアの予測処理を実行させる（ステップＳ２２３）。この胴体エリアの予測処理については、後述する。胴体エリアの予測処理に引き続き、現フレーム中で該胴体エリアが検出されたか（予測できたか）否かを判断する（ステップＳ２２４）。検出された場合には（ステップＳ２２４；Ｙｅｓ）、検出された胴体エリアを現フレームでの胴体エリアとしてＲＡＭ１６に保存し（ステップＳ２２５）、今回の顔検出処理を終了する。検出されなかった場合には（予測できなかった場合には）、そのまま今回の顔検出処理を終了する。
【００４６】
ついで、ステップＳ２０３、Ｓ２１５、Ｓ２２３の胴体エリア予測処理について説明する。図６は、システムコントローラ２７による制御の下に胴体エリア予測部１９により実行される胴体エリア予測処理例を示す概略フローチャートである。まず、顔エリア情報に基づき、胴体幅を、顔幅×顔角度係数として算出する（ステップＳ３００）。そして、顔エリア情報に基づき、胴体高さを、顔高さ×胴体高さ係数として算出する（ステップＳ３０１）。これらの算出結果に基づき、胴体エリアを算出する（ステップＳ３０２）。そして、算出された胴体エリアの全てが撮影画角の範囲内に収まっているか否かを判断する（ステップＳ３０３）。撮影画角の範囲内に収まっていれば（ステップＳ３０３；Ｙｅｓ）、胴体エリア予測処理を終了する。
【００４７】
一方、撮影画角の範囲内に収まっていなければ（ステップＳ３０３；Ｎｏ）、胴体の所定の閾値％が撮影画角の範囲内に収まっているか否かを判断する（ステップＳ３０４）。撮影画角の範囲内に収まっていれば（ステップＳ３０４；Ｙｅｓ）、撮影画角の範囲内に収まる胴体エリアを再算出し（ステップＳ３０５）、胴体エリア予測処理を終了する。
【００４８】
そして、撮影画角の範囲内に収まっていなければ（ステップＳ３０４；Ｎｏ）、算出した胴体エリアをクリアして（ステップＳ３０６）、胴体エリア予測処理を終了する。この場合、胴体エリア未検出となり、次の胴体エリア検出判定（ステップＳ２０４，Ｓ２１６，Ｓ２２４）では、判定結果がＮｏとなる。
【００４９】
ここで、図６に示す胴体エリア予測処理例を図７−１〜図７−３を参照して説明する。図７−１は、顔が横向きで、かつ、胴体全てが撮影画角の範囲内に収まっているフレーム画像例を示す。この場合、胴体も横向きである可能性が高いため、顔幅と胴体幅は同程度と考える。すなわち、顔角度係数＝１として、胴体幅を算出する。また、胴体高さは、顔高さの５倍とする。すなわち、胴体高さ係数＝５として胴体高さを算出する。また、胴体の位置は、顔の向きより、顔の下に存在すると考える。以上に基づき、胴体エリアの位置を予測して算出する。この例では、胴体の全てが撮影画角の範囲内に収まっているので、求めた胴体エリアの位置を胴体エリアとする。
【００５０】
図７−２は、顔が正面向きで、かつ、胴体の大半が撮影画角の範囲内に収まっているフレーム画像例を示す。この場合、胴体も正面向きである可能性が高いため、胴体幅は顔幅の１．５倍程度と考える。すなわち、顔角度係数＝１．５として、胴体幅を算出する。また、胴体高さは、顔高さの５倍とする。すなわち、胴体高さ係数＝５として胴体高さを算出する。また、胴体の位置は、顔の向きより、顔の下に存在すると考える。以上に基づき、胴体エリアの位置を予測して算出する。この例では、撮影画角の範囲内に収まっている胴体エリアの割合が所定の閾値％、例えば３０％以上であるため、胴体エリアとして適正であると判断する。この際、撮影画角の範囲内に収まる胴体エリアを再算出する。
【００５１】
図７−３は、顔が正面向きで、かつ、胴体の大半が撮影画角の範囲内に収まっていないフレーム画像例を示す。この場合、胴体も正面向きである可能性が高いため、胴体幅は顔幅の１．５倍程度と考える。すなわち、顔角度係数＝１．５として、胴体幅を算出する。また、胴体高さは、顔高さの５倍とする。すなわち、胴体高さ係数＝５として胴体高さを算出する。また、胴体の位置は、顔の向きより、顔の下に存在すると考える。以上に基づき、胴体エリアの位置を予測して算出する。この例では、撮影画角の範囲内に収まっている胴体エリアの割合が所定の閾値％、例えば３０％以上でないため、胴体エリアとして適正でないと判断する。よって、求めた胴体エリアはクリアする。
【００５２】
次に、前フレームと現フレームとの間でのステップＳ２０７の顔エリアパタンマッチング処理およびステップＳ２０９の胴体エリアパタンマッチング処理について説明する。ここで、パタンマッチング処理は、マッチング処理の精度を高めるために、顔エリアや胴体エリアをそれぞれ複数のマクロブロック（分割領域）に分割して行うものとする。図８−１は、顔エリアが比較的小さい場合の顔エリアおよび胴体エリアそれぞれのマクロブロックの分割例を示す模式図である。図８−１は、顔エリアを４つのマクロブロックに等分割し、胴体エリアを２０個のマクロブロックに等分割する例を示している。図８−２は、顔エリアが比較的大きい場合の顔エリアおよび胴体エリアそれぞれのマクロブロックの分割例を示す模式図である。図８−２は、顔エリアを３０個のマクロブロックに等分割し、胴体エリアを５４個のマクロブロックに等分割する例を示している。なお、マクロブロックのサイズは個々の顔エリアや胴体エリアに関して一律に同じである必要はなく、異なっていてもよく、分割数（個数）も適宜設定される。
【００５３】
図９は、システムコントローラ２７による制御の下に動き検出部１５により実行される顔エリアパタンマッチング処理例を示す概略フローチャートであり、図１０は、システムコントローラ２７による制御の下に動き検出部１５により実行される胴体エリアパタンマッチング処理例を示す概略フローチャートである。これらのパタンマッチング処理では、顔エリアや胴体エリアの時系列な動きとして、各エリア内の位置変化のあった複数のマクロブロックの変化に基づいて位置変化量を検出することを基本とする。
【００５４】
まず、顔エリアパタンマッチング処理が開始されると、顔エリアに関してマクロブロックのサイズ／個数を決定する（ステップＳ３１０）。そして、マクロブロック毎に相関演算を行い（ステップＳ３１１）、相関結果を総合的に判断することで、マクロブロック毎の動きベクトルを算出する（ステップＳ３１２）。マクロブロック毎の相関演算を行う際、前フレームに対して現フレームでは一回り広い範囲を設定し、１画素毎にどこに動いたかを判断することにより行う。ついで、算出した動きベクトルに関して、マクロブロック毎に信頼性を判定する（ステップＳ３１３）。信頼性の判定は、例えば、算出された動きベクトルの方向が一致しているか否か等の相関値の大小に基づき行われる。そして、信頼性の有るマクロブロックから顔エリアの動きベクトルを算出する（ステップＳ３１４）。この場合の動きベクトルは、例えば動きベクトルの平均値や頻度の高いものを採用する等の手法によって求めればよい。ついで、算出した動きベクトルに関して、顔エリア全体の信頼性を判定し（ステップＳ３１５）、顔エリア全体の信頼性が有る場合には（ステップＳ３１６；Ｙｅｓ）、ステップＳ３１４で求められた顔エリアの動きベクトルを有効として、顔エリアパタンマッチング処理を終了する。顔エリア全体の信頼性がない場合には（ステップＳ３１６；Ｎｏ）、ステップＳ３１４で求められた顔エリアの動きベクトルをクリアし（ステップＳ３１７）、顔エリアパタンマッチング処理を終了する。
【００５５】
胴体エリアのパタンマッチング処理も顔エリアパタンマッチング処理と同様である。まず、胴体エリアパタンマッチング処理が開始されると、胴体エリアに関してマクロブロックのサイズ／個数を決定する（ステップＳ３２０）。そして、マクロブロック毎に相関演算を行い（ステップＳ３２１）、相関結果を総合的に判断することで、マクロブロック毎の動きベクトルを算出する（ステップＳ３２２）。マクロブロック毎の相関演算を行う際、前フレームに対して現フレームでは一回り広い範囲を設定し、１画素毎にどこに動いたかを判断することにより行う。ついで、算出した動きベクトルに関して、マクロブロック毎に信頼性を判定する（ステップＳ３２３）。信頼性の判定は、例えば、算出された動きベクトルの方向が一致しているか否か等の相関値の大小に基づき行われる。そして、信頼性の有るマクロブロックから胴体エリアの動きベクトルを算出する（ステップＳ３２４）。この場合の動きベクトルは、例えば動きベクトルの平均値や頻度の高いものを採用する等の手法によって求めればよい。ついで、算出した動きベクトルに関して、胴体エリア全体の信頼性を判定し（ステップＳ３２５）、胴体エリア全体の信頼性が有る場合には（ステップＳ３２６；Ｙｅｓ）、ステップＳ３２４で求められた胴体エリアの動きベクトルを有効として、胴体エリアパタンマッチング処理を終了する。胴体エリア全体の信頼性がない場合には（ステップＳ３２６；Ｎｏ）、ステップＳ３２４で求められた胴体エリアの動きベクトルをクリアし（ステップＳ３２７）、胴体エリアパタンマッチング処理を終了する。
【００５６】
また、ステップＳ２１３における相対胴体エリアベクトル信頼性判定処理について説明する。図１１は、システムコントローラ２７により実行される相対胴体エリアベクトル信頼性判定処理例を示す概略フローチャートである。この処理は、顔エリアの動きベクトルと胴体エリアの動きベクトルとが求められた場合に、縦横の動きに分割して、それぞれの方向における動きに同一性があるか否かにより、検出された胴体エリアの動きベクトルの信頼性を判定するものである。
【００５７】
まず、水平差分ベクトルを｜水平胴体エリアベクトル−水平顔エリアベクトル｜により算出し（ステップＳ３３０）、垂直差分ベクトルを｜垂直胴体エリアベクトル−垂直顔エリアベクトル｜により算出する（ステップＳ３３１）。ついで、水平差分ベクトルが予め設定された所定の水平ベクトル閾値よりも小さいか否かを判定し（ステップＳ３３２）、かつ、垂直差分ベクトルが予め設定された所定の垂直ベクトル閾値よりも小さいか否かを判定する（ステップＳ３３３）。水平差分ベクトルが水平ベクトル閾値よりも小さく（ステップＳ３３２；Ｙｅｓ）、かつ、垂直差分ベクトルが垂直ベクトル閾値よりも小さければ（ステップＳ３３３；Ｙｅｓ）、相対胴体エリアベクトルは信頼性が有るものと判定し（ステップＳ３３４）、相対胴体エリアベクトル信頼性判定処理を終了する。一方、水平差分ベクトルが水平ベクトル閾値以上で（ステップＳ３３２；Ｎｏ）、または、垂直差分ベクトルが垂直ベクトル閾値以上であれば（ステップＳ３３３；Ｎｏ）、相対胴体エリアベクトルは信頼性が無いものと判定し（ステップＳ３３５）、相対胴体エリアベクトル信頼性判定処理を終了する。
【００５８】
このように、本実施の形態１によれば、撮像素子１２により得られた画像データ中から顔エリアを顔検出部１８によって検出するとともに、胴体エリア予測部１９による予測の下に顔エリアと等価的に動く胴体エリアを検出し、検出された顔エリアおよび胴体エリアそれぞれのフレーム間での時系列な動きを動き検出部１５によって検出し、顔検出部１８の検出結果と動き検出部１５の検出結果とに基づいて現フレームでの顔エリアを決定するようにしたので、被写体の顔が正面向きから横向き、後ろ向きなどとなって顔検出部１８で顔エリアを検出できなくなった場合でも、顔エリア自体の動き検出や胴体エリアの動き検出の結果を用いることで、顔エリアの位置を適正に推定し続けることができる。
【００５９】
（実施の形態２）
ついで、本発明の実施の形態２について図１２〜図１９を参照して説明する。実施の形態１で説明した部分と同一部分は同一符号を用いて示し、説明も省略する。図１２は、本実施の形態２にかかる撮像装置の電装系構成例を示す概略ブロック図である。本実施の形態２にかかる撮像装置３１は、顔エリアと等価的に動く周辺領域として胴体エリアに代えて周辺エリア（周辺領域）を利用するものであり、胴体エリア予測部１９に代えて、周辺エリア設定部３２を備える。
【００６０】
周辺エリア設定部３２は、顔検出部１８で検出された顔エリアに対して周辺エリアを設定するものである。設定された周辺エリアの位置および大きさは、顔検出部１８によって検出された顔領域と一体となって等価的に動く周辺領域の情報としてＲＡＭ１６に保存される。
【００６１】
また、本実施の形態２における動き検出部１５は、検出された顔エリア、周辺エリアそれぞれのフレーム間での時系列な動きをパタンマッチング法により検出するためのものである。すなわち、動き検出部１５は、フレームメモリ１４に格納された１つ前のフレームの画像データと、ＡＦＥ１３から入力される現フレームの画像データとを用いて、パタンマッチングにより動きベクトルを求めるものである。この際、求める動きベクトルの範囲は、１つ前のフレームの画像データから顔検出部１８で求めた顔エリア、周辺エリア設定部３２で設定した周辺エリア（顔周辺エリア）である。動き検出部１５で検出された顔エリア、周辺エリアそれぞれの動きベクトルの情報はＲＡＭ１６に格納される。
【００６２】
次に、図１３−１〜図１３−３を参照して、本実施の形態２の特徴的な顔エリア決定方法の概要を説明する。図１３−１〜図１３−３は、Ｎフレームから（Ｎ＋２）フレームまで時系列なフレーム画像例を示す説明図である。各図の（ａ）（ｂ）は、同一フレーム画像例を示し、各図の（ａ）は、テンプレートマッチングモジュール（顔検出部１８）による顔検出例を示し、各図の（ｂ）は、動き検出モジュール（周辺エリア設定部３２および動き検出部１５）による顔検出例を示している。
【００６３】
まず、図１３−１（ａ）に示すように、Ｎフレームのフレーム画像について、顔検出部１８でのテンプレートマッチングにより、画像データ中から、顔エリアを検出することを前提とする。顔検出部１８によって顔エリアを検出した場合には、検出された顔エリアを対象としてＮフレーム画像のＡＥ動作等を行わせる。そして、図１３−１（ｂ）に示すように、検出した顔エリアの情報を周辺エリア設定部３２に通知する。周辺エリア設定部３２は、通知された顔エリアから、図１３−１（ｂ）中に四角枠で示すように、顔エリアの周囲に複数個の周辺エリアを仮設定する。ここでは、例えば検出された顔エリアと同一サイズの８個の周辺エリアを顔エリアの周囲に設定する。そして、動き検出部１５により、顔エリアおよびその周辺の周辺エリアについてのパタンマッチング処理を開始する。この際、フレーム画像全体の動きもパタンマッチングにより追跡する。
【００６４】
図１３−２（ａ）は、（Ｎ＋１）フレームのフレーム画像について、顔検出部１８によって顔エリアが検出された場合を示しており、検出された顔エリアを対象としてＮフレーム画像のＡＥ動作等を行わせる。そして、図１３−２（ｂ）では、動き検出部１５による前のＮフレームから現フレームへの顔エリア、周辺エリア並びに画面全体の動きに関するパタンマッチングの結果により、仮設定された周辺エリア中から、顔エリアと等価的に動く一部の周辺エリアを顔付属エリアとして抽出設定する。すなわち、検出したそれぞれの動き量のうち、図１３−２（ｂ）中に矢印で示すように、顔エリアと一部の周辺エリアの動きが一致し、かつ、画面全体の動きが顔エリアと異なる場合、顔エリアの動きと一致した、一部の周辺エリアを顔付属エリアとして設定する。図１３−２（ｂ）中に示す例では、被写体人物が車とともに移動する例を示しており、顔エリアの下列３つおよび顔エリアの右横の合計４つの周辺エリアは顔エリアと同じ動きをしており、顔エリアと等価的に動く顔付属エリア（顔周辺エリア）として設定され、残りの４個の周辺エリアは画面上の背景エリアと判定され、動き検出部１５による動き検出の対象から除外される。
【００６５】
さらに、図１３−３（ａ）に示す（Ｎ＋２）フレームのフレーム画像について、顔の向きなどの要因により、顔検出部１８でのテンプレートマッチングでは顔エリアを検出できなかったとする。この際、動き検出部１５は、既に検出されていた顔エリアおよび周辺エリア中の顔付属エリアの動きをパタンマッチング法により検出しており、図１３−３（ｂ）に示すように、顔エリアおよび顔付属エリアの動きをともに検出できた場合には、検出された顔エリアの動きに基づき（Ｎ＋２）フレームの顔エリアの位置を算出する。そして、算出された顔エリアを対象としてＮフレーム画像のＡＥ動作等を行わせる。
【００６６】
この際、動き検出部１５が、顔エリアの動きを検出できず、顔付属エリアの動きのみを検出できた場合には、顔付属エリアの動きから顔エリアの位置を予測し、（Ｎ＋２）フレームの顔エリアの位置を算出する。そして、算出された顔エリアを対象としてＮフレーム画像のＡＥ動作等を行わせる。
【００６７】
このように、本実施の形態２では、顔検出部１８により顔エリアを検出し、検出した顔エリアに対して周辺エリアを仮設定し、周辺エリア中から顔エリアと等価的な動きを示す顔付属エリアを抽出設定する。そして、顔検出部１８で検出された顔エリアと、周辺エリア中の顔付属エリアとのフレーム間での時系列な動きを、動き検出部１５においてパタンマッチングにより検出する。検出中の顔画像がフレーム画像内に収まっているが、顔の向きにより顔検出部１８のテンプレートマッチングで顔を検出できなくなった場合において、動き検出部１５でのパタンマッチングにより顔エリアの動きを検出できているときには、検出された顔エリアの動きに応じて対象となる現フレーム画像中の顔エリアの位置を更新する。さらに、顔が後ろを向き等の動きによって、動き検出部１５でのパタンマッチングによっても顔エリアの動きを検出できず、かつ、動き検出部１５でのパタンマッチングによって顔付属エリアの動きを検出できたときには、検出された顔付属エリアの動きから、現フレーム画像中の顔エリアの動きを予測し、顔エリアの位置を更新するものである。すなわち、周辺エリア中から顔エリアと等価的な動きを示す顔付属エリアを抽出設定し、顔付属エリアの動きを追尾することで顔エリアの動きを推定し得る点に着目し、顔エリア自体や顔エリアの動きが検出できない場合には、検出された顔付属エリアの動きを活用するようにしたものである。
【００６８】
以下、本実施の形態２における動作制御例について、図１４〜図１９を参照して詳細に説明する。なお、電子カメラの電源ＯＮ／ＯＦＦに伴う基本的な動作制御例は、図４の場合と同様であるため、図示および説明を省略する。
【００６９】
次に、図４中のステップＳ１０１またはステップＳ１０６の本実施の形態２による顔検出処理について図１４を参照して説明する。図１４は、実施の形態２における顔検出処理例を示す概略フローチャートである。まず、システムコントローラ２７は、顔検出部１８を用いて周知のテンプレートマッチング法等による顔検出処理を実行する（ステップＳ４００）。顔検出部１８による顔検出処理で、顔が検出された場合には（ステップＳ４０１；Ｙｅｓ）、検出された顔エリアを現フレームでの顔エリアとしてＲＡＭ１６に保存する（ステップＳ４０２；顔位置決定部，顔位置決定工程）。図１３−１（ａ）、図１３−２（ａ）に示す例が相当する。このような顔検出に引き続き、システムコントローラ２７は、周辺エリア設定部３２を用いて周辺エリアの設定処理を実行させる（ステップＳ４０３）。図１３−１（ｂ）、図１３−２（ｂ）に示す例が相当する。この周辺エリアの設定処理については、後述する。
【００７０】
周辺エリアの設定処理に引き続き、現フレーム中で該周辺エリアが検出されたか（設定できたか）否かを判断する（ステップＳ４０４）。検出された場合には（ステップＳ４０４；Ｙｅｓ）、検出された周辺エリアを現フレームでの周辺エリアとしてＲＡＭ１６に保存し（ステップＳ４０５）、今回の顔検出処理を終了する。検出されない場合には（設定できない場合には）、そのまま今回の顔検出処理を終了する。顔検出部１８による顔検出処理で後続のフレーム画像についても顔が検出され続ける限り、これらステップＳ４０１；Ｙｅｓ〜ステップＳ４０５の処理は同様に繰り返される。よって、顔検出部１８により検出された顔エリアの情報が現フレームでの顔エリアとして決定され、ＲＡＭ１６に保存されて、撮像条件設定の対象エリアとして利用される。
【００７１】
一方、顔検出部１８による顔検出処理で顔エリアが検出できなかった場合には（ステップＳ４０１；Ｎｏ）、システムコントローラ２７は、動き検出部１５によるパタンマッチングを用いた顔エリア検出処理を実行させ、顔エリアの位置を決定する。まず、前フレーム画像について顔エリアがＲＡＭ１６に格納されているか否かを判断する（ステップＳ４０６）。これは、動き検出部１５による処理は、少なくとも先行するフレーム画像において、顔検出部１８によって一旦顔エリアが検出されて顔エリアが一旦ＲＡＭ１６に格納されていることを前提として実行されるためである。顔エリアがＲＡＭ１６に格納されていなければ（ステップＳ４０６；Ｎｏ）、動き検出部１５による処理を行えないため、今回の顔検出処理を終了する。
【００７２】
前フレーム画像について顔エリアがあれば（ステップＳ４０６；Ｙｅｓ）、動き検出部１５において顔エリアに関するパタンマッチング処理を実行し、前フレームと現フレームとの間での顔エリアの時系列な動き検出する（ステップＳ４０７）。引き続き、前フレーム画像について周辺エリアがＲＡＭ１６に格納されているか否かを判断する（ステップＳ４０８）。前フレーム画像について周辺エリアがあれば（ステップＳ４０８；Ｙｅｓ）、動き検出部１５において周辺エリアに関するパタンマッチング処理を実行し、前フレームと現フレームとの間での周辺エリアの時系列な動き検出する（ステップＳ４０９）。この周辺エリアのパタンマッチング処理については、後述する。周辺エリアがＲＡＭ１６に格納されていなければ（ステップＳ４０８；Ｎｏ）、ステップＳ４０９の処理をジャンプする。
【００７３】
ついで、動き検出部１５による周辺エリアのパタンマッチングの結果、周辺エリアに関する動きベクトルが検出されたか否かを判断する（ステップＳ４１０）。周辺エリアの動きベクトルが検出されている場合には（ステップＳ４１０；Ｙｅｓ）、動き検出部１５による顔エリアのパタンマッチングの結果、顔エリアに関する動きベクトルが検出されたか否かを判断する（ステップＳ４１１）。顔エリアの動きベクトルが検出されている場合には（ステップＳ４１１；Ｙｅｓ）、同時に検出された周辺エリアの動きの検出結果に基づき、相対周辺エリアベクトルの信頼性に関する判定処理を行う（ステップＳ４１２；信頼性判定部）。この相対周辺エリアベクトル信頼性判定処理については、後述する。そして、検出された顔エリアの動きに基づき現フレームでの顔エリアを算出してＲＡＭ１６に保存する（ステップＳ４１３；顔位置決定部，顔位置決定工程）。図１３−２（ｂ）が相当する。よって、顔検出部１８により顔エリアが検出されなくなった場合において、動き検出部１５により顔エリアの動きが検出された場合には、顔エリアの動きに基づき算出された顔エリアの情報が現フレームでの顔エリアとして決定され、ＲＡＭ１６に保存されて、撮像条件設定の対象エリアとして利用される。
【００７４】
一方、ステップＳ４１１において、顔エリアの動きベクトルが検出されていない場合には、検出された周辺エリアの動きベクトルを顔エリアの動きベクトルと見なし（ステップＳ４１３）、顔エリアの動きベクトルに基づき現フレームでの顔エリアを算出してＲＡＭ１６に保存する（ステップＳ２１４；顔位置決定部，顔位置決定工程）。よって、顔検出部１８により顔エリアが検出されなくなった場合において、動き検出部１５により顔エリアの動きが検出されず、動き検出部１５により周辺エリアの動きが検出された場合には、周辺エリアの動きに基づき推定されて算出された顔エリアの情報が現フレームでの顔エリアとして決定され、ＲＡＭ１６に保存されて、撮像条件設定の対象エリアとして利用される。
【００７５】
その後、相対周辺エリアベクトル信頼性判定処理の判定処理の結果、相対周辺エリアベクトルの信頼性が所定レベル以上であるか否かを判断し（ステップＳ４１５）、所定レベル以上の信頼性がある場合には（ステップＳ４１５；Ｙｅｓ）、検出された周辺エリアの動きに基づき現フレームでの周辺エリアを算出してＲＡＭ１６に保存する（ステップＳ４１６）。所定レベル以上の信頼性がない場合には（ステップＳ４１５；Ｎｏ）、システムコントローラ２７は、周辺エリア設定部３２を用いて周辺エリアの設定処理を実行させ（ステップＳ４１７）、周辺エリアを再設定させる。この周辺エリアの設定処理については、後述する。周辺エリアの設定処理に引き続き、現フレーム中で該周辺エリアが検出されたか（設定できたか）否かを判断する（ステップＳ４１８）。検出された場合には（ステップＳ４１８；Ｙｅｓ）、検出された周辺エリアを現フレームでの周辺エリアとしてＲＡＭ１６に保存し（ステップＳ４１６）、今回の顔検出処理を終了する。検出されない場合には（設定できない場合には）、そのまま今回の顔検出処理を終了する。
【００７６】
さらに、ステップＳ４１０において、周辺エリアの動きベクトルが検出されていない場合には、動き検出部１５による顔エリアのパタンマッチングの結果、顔エリアに関する動きベクトルが検出されたか否かを判断する（ステップＳ４１９）。顔エリアの動きベクトルが検出されている場合には（ステップＳ４１９；Ｙｅｓ）、検出された顔エリアの動きに基づき現フレームでの顔エリアを算出してＲＡＭ１６に保存する（ステップＳ４２０；顔位置決定部，顔位置決定工程）。よって、顔検出部１８により顔エリアが検出されなくなった場合において、動き検出部１５により顔エリアの動きが検出された場合には、顔エリアの動きに基づき算出された顔エリアの情報が現フレームでの顔エリアとして決定され、ＲＡＭ１６に保存されて、撮像条件設定の対象エリアとして利用される。
【００７７】
ついで、ステップＳ４０３、Ｓ４１７の周辺エリア設定処理について説明する。図１５は、システムコントローラ２７による制御の下に周辺エリア設定部３２により実行される周辺エリア予測設定処理例を示す概略フローチャートである。まず、顔エリア情報に基づき、周辺幅を、顔幅×周辺幅係数として算出する（ステップＳ５００）。この場合、顔幅が所定サイズ以下であれば、周辺幅係数は１とするが、所定サイズよりも大きければ顔幅が大きいほど周辺幅係数は小さくなるように設定される。そして、顔エリア情報に基づき、周辺高さを、顔高さ×周辺高さ係数として算出する（ステップＳ５０１）。これらの算出結果に基づき、周辺エリアを算出する（ステップＳ５０２）。そして、算出された周辺エリアの全てが撮影画角の範囲内に収まっているか否かを判断する（ステップＳ３５０３）。撮影画角の範囲内に収まっていれば（ステップＳ５０３；Ｙｅｓ）、周辺エリア予測設定処理を終了する。
【００７８】
一方、撮影画角の範囲内に収まっていなければ（ステップＳ５０３；Ｎｏ）、周辺の所定の閾値％が撮影画角の範囲内に収まっているか否かを判断する（ステップＳ３０４）。撮影画角の範囲内に収まっていれば（ステップＳ５０４；Ｙｅｓ）、算出された周辺エリアを更新し（ステップＳ５０５）、周辺エリア予測設定処理を終了する。
【００７９】
そして、撮影画角の範囲内に収まっていなければ（ステップＳ５０４；Ｎｏ）、収まっていない周辺エリアをクリアして（ステップＳ５０６）、周辺エリア予測設定処理を終了する。この場合、全てのエリアが撮影画角の範囲内に収まっていなければ周辺エリア未検出となり、次の周辺エリア検出判定（ステップＳ４０４，Ｓ４１８）では、判定結果がＮｏとなる。
【００８０】
ここで、図１５に示す周辺エリア予測設定例を図１６−１〜図１６−４を参照して説明する。図１６−１は、８個の周辺エリアの全てが撮影画角の範囲内に収まっているフレーム画像例を示す。この場合、８個の全ての周辺エリアと顔エリアとについて動き検出部１５でパタンマッチングを行う。すなわち、８個全ての周辺エリアを、有効な周辺エリアとして設定する。
【００８１】
図１６−２は、８個の周辺エリアのうちの一部が撮影画角の範囲内に収まっていないフレーム画像例を示す。すなわち、図示例の場合、下列３個の周辺エリアが撮影画角の範囲内に収まっていないが、例えば５０％以上は撮影画角の範囲内に収まっているので、下列３個の周辺エリアを、撮影画角の範囲内に収まるよう、サイズ変更する。そして、８個全ての周辺エリアを、有効な周辺エリアとして設定し、８個の全ての周辺エリアと顔エリアとについて動き検出部１５でパタンマッチングを行う。
【００８２】
図１６−３は、８個の周辺エリアのうちの一部が撮影画角の範囲内に収まっていないフレーム画像例を示す。すなわち、図示例の場合、下列３個の周辺エリアが撮影画角の範囲内に収まっておらず、かつ、例えば５０％以上が撮影画角の範囲内に収まっていないので、下列３個の周辺エリアを、周辺エリアから除外する。そして、残りの５個全ての周辺エリアを、有効な周辺エリアとして設定し、５個の周辺エリアと顔エリアとについて動き検出部１５でパタンマッチングを行う。
【００８３】
図１６−４は、顔エリアが所定サイズよりも大きいフレーム画像例を示す。この場合、周辺エリアのサイズを顔エリアのサイズよりも小さく設定し（例えば、１／４）、撮影画角の範囲内の収まる周辺エリアの数を増やすように設定する。図示例では、周辺エリア数が標準の８個から１２個に増やす例を示している。
【００８４】
次に、前フレームと現フレームとの間でのステップＳ４０７の顔エリアパタンマッチング処理およびステップＳ４０９の周辺エリアパタンマッチング処理について説明する。ここで、パタンマッチング処理は、マッチング処理の精度を高めるために、顔エリアや周辺エリアは、それぞれ複数のマクロブロック（分割領域）に分割して行うものとする。図１７−１は、顔エリアが比較的小さい場合の顔エリアおよび周辺エリアそれぞれのマクロブロックの分割例を示す模式図である。図１７−１は、顔エリアを４つのマクロブロックに等分割し、各周辺エリアも４つのマクロブロックに等分割する例を示している。図１７−２は、顔エリアが比較的大きい場合の顔エリアおよび周辺エリアそれぞれのマクロブロックの分割例を示す模式図である。図１７−２は、顔エリアを２０個のマクロブロックに等分割し、各周辺エリアも２０個のマクロブロックに等分割する例を示している。なお、マクロブロックのサイズは個々の顔エリアや周辺エリアに関して一律に同じである必要はなく、異なっていてもよく、分割数（個数）も適宜設定される。また、ステップＳ４０７の顔エリアパタンマッチング処理は、図９の場合と同様であるため、図示および説明を省略する。
【００８５】
図１８は、システムコントローラ２７による制御の下に動き検出部１５により実行される周辺エリアパタンマッチング処理例を示す概略フローチャートである。このパタンマッチング処理では、周辺エリアの時系列な動きとして、各エリア内の位置変化のあった複数のマクロブロックの変化に基づいて位置変化量を検出することを基本とする。
【００８６】
まず、周辺エリアパタンマッチング処理が開始されると、周辺エリアに関してマクロブロックのサイズ／個数を決定する（ステップＳ５２０）。そして、マクロブロック毎に相関演算を行い（ステップＳ５２１）、相関結果を総合的に判断することで、マクロブロック毎の動きベクトルを算出する（ステップＳ５２２）。マクロブロック毎の相関演算を行う際、前フレームに対して現フレームでは一回り広い範囲を設定し、１画素毎にどこに動いたかを判断することにより行う。ついで、算出した動きベクトルに関して、マクロブロック毎に信頼性を判定する（ステップＳ５２３）。信頼性の判定は、例えば、算出された動きベクトルの方向が一致しているか否か等の相関値の大小に基づき行われる。そして、信頼性の有るマクロブロックから個々の周辺エリアの動きベクトルを算出する（ステップＳ５２４）。この場合の動きベクトルは、例えば動きベクトルの平均値や頻度の高いものを採用する等の手法によって求めればよい。ついで、算出した動きベクトルに関して、周辺エリア全体の信頼性を判定し（ステップＳ５２５）、周辺エリア全体の信頼性が有る場合には（ステップＳ５２６；Ｙｅｓ）、ステップＳ５２４で求められた周辺エリアの動きベクトルを有効として、周辺エリアパタンマッチング処理を終了する。周辺エリア全体の信頼性がない場合には（ステップＳ５２６；Ｎｏ）、ステップＳ５２４で求められた周辺エリアの動きベクトルをクリアし（ステップＳ５２７）、周辺エリアパタンマッチング処理を終了する。
【００８７】
また、ステップＳ４１２における相対周辺エリアベクトル信頼性判定処理について説明する。図１９は、システムコントローラ２７により実行される相対周辺エリアベクトル信頼性判定処理例を示す概略フローチャートである。この処理は、顔エリアの動きベクトルと周辺エリアの動きベクトルとが求められた場合に、縦横の動きに分割して、それぞれの方向における動きに同一性があるか否かにより信頼性を判定するものである。
【００８８】
まず、水平差分ベクトルを｜水平周辺エリアベクトル−水平顔エリアベクトル｜により算出し（ステップＳ５３０）、垂直差分ベクトルを｜垂直周辺エリアベクトル−垂直顔エリアベクトル｜により算出する（ステップＳ５３１）。ついで、水平差分ベクトルが予め設定された所定の水平ベクトル閾値よりも小さいか否かを判定し（ステップＳ５３２）、かつ、垂直差分ベクトルが予め設定された所定の垂直ベクトル閾値よりも小さいか否かを判定する（ステップＳ５３３）。水平差分ベクトルが水平ベクトル閾値よりも小さく（ステップＳ５３２；Ｙｅｓ）、かつ、垂直差分ベクトルが垂直ベクトル閾値よりも小さければ（ステップＳ５３３；Ｙｅｓ）、相対周辺エリアベクトルは信頼性が有るものと判定し（ステップＳ５３４）、相対周辺エリアベクトル信頼性判定処理を終了する。一方、水平差分ベクトルが水平ベクトル閾値以上で（ステップＳ５３２；Ｎｏ）、または、垂直差分ベクトルが垂直ベクトル閾値以上であれば（ステップＳ５３３；Ｎｏ）、相対周辺エリアベクトルは信頼性が無いものと判定し（ステップＳ５３５）、相対周辺エリアベクトル信頼性判定処理を終了する。
【００８９】
このように、本実施の形態２によれば、撮像素子１２により得られた画像データ中から顔エリアを顔検出部１８によって検出するとともに、周辺エリア設定部３２による設定の下に顔エリアと等価的に動く周辺エリアを検出し、検出された顔エリアおよび周辺エリアそれぞれのフレーム間での時系列な動きを動き検出部１５によって検出し、顔検出部１８の検出結果と動き検出部１５の検出結果とに基づいて現フレームでの顔エリアを決定するようにしたので、被写体の顔が正面向きから横向き、後ろ向きなどとなって顔検出部１８で顔エリアを検出できなくなった場合でも、顔エリア自体の動き検出や周辺エリアの動き検出の結果を用いることで、顔エリアの位置を適正に推定し続けることができる。
【図面の簡単な説明】
【００９０】
【図１】本発明の実施の形態１にかかる撮像装置の電装系構成例を示す概略ブロック図である。
【図２】撮影時の図１中の主要部の動作例を示す概略タイミングチャートである。
【図３−１】Ｎフレームのフレーム画像例を示す説明図である。
【図３−２】（Ｎ＋１）フレームのフレーム画像例を示す説明図である。
【図３−３】（Ｎ＋２）フレームのフレーム画像例を示す説明図である。
【図３−４】（Ｎ＋３）フレームのフレーム画像例を示す説明図である。
【図４】電子カメラの電源ＯＮ／ＯＦＦに伴う基本的な動作制御例を示す概略フローチャートである。
【図５】実施の形態１における顔検出処理例を示す概略フローチャートである。
【図６】胴体エリア予測処理例を示す概略フローチャートである。
【図７−１】胴体エリア予測処理のフレーム画像例を示す説明図である。
【図７−２】胴体エリア予測処理の他のフレーム画像例を示す説明図である。
【図７−３】胴体エリア予測処理のさらに他のフレーム画像例を示す説明図である。
【図８−１】顔エリアおよび胴体エリアそれぞれのマクロブロックの分割例を示す模式図である。
【図８−２】顔エリアおよび胴体エリアそれぞれのマクロブロックの他の分割例を示す模式図である。
【図９】顔エリアパタンマッチング処理例を示す概略フローチャートである。
【図１０】胴体エリアパタンマッチング処理例を示す概略フローチャートである。
【図１１】相対胴体エリアベクトル信頼性判定処理例を示す概略フローチャートである。
【図１２】本発明の実施の形態２にかかる撮像装置の電装系構成例を示す概略ブロック図である。
【図１３−１】Ｎフレームのフレーム画像例を示す説明図である。
【図１３−２】（Ｎ＋１）フレームのフレーム画像例を示す説明図である。
【図１３−３】（Ｎ＋２）フレームのフレーム画像例を示す説明図である。
【図１４】実施の形態２における顔検出処理例を示す概略フローチャートである。
【図１５】周辺エリア予測設定処理例を示す概略フローチャートである。
【図１６−１】周辺エリア予測設定のフレーム画像例を示す説明図である。
【図１６−２】周辺エリア予測設定の他のフレーム画像例を示す説明図である。
【図１６−３】周辺エリア予測設定のさらに他のフレーム画像例を示す説明図である。
【図１６−４】周辺エリア予測設定の別のフレーム画像例を示す説明図である。
【図１７−１】顔エリアおよび周辺エリアそれぞれのマクロブロックの分割例を示す模式図である。
【図１７−２】顔エリアおよび周辺エリアそれぞれのマクロブロックの他の分割例を示す模式図である。
【図１８】周辺エリアパタンマッチング処理例を示す概略フローチャートである。
【図１９】相対周辺エリアベクトル信頼性判定処理例を示す概略フローチャートである。
【符号の説明】
【００９１】
１２  撮像素子
１５  動き検出部
１８  顔検出部
１９  胴体エリア予測部
２７  システムコントローラ
３２  周辺エリア設定部
【図１】
2009081714.tif 000003
【図２】
2009081714.tif 000004
【図３−１】
2009081714.tif 000005
【図３−２】
2009081714.tif 000006
【図３−３】
2009081714.tif 000007
【図３−４】
2009081714.tif 000008
【図４】
2009081714.tif 000009
【図５】
2009081714.tif 000010
【図６】
2009081714.tif 000011
【図７−１】
2009081714.tif 000012
【図７−２】
2009081714.tif 000013
【図７−３】
2009081714.tif 000014
【図８−１】
2009081714.tif 000015
【図８−２】
2009081714.tif 000016
【図９】
2009081714.tif 000017
【図１０】
2009081714.tif 000018
【図１１】
2009081714.tif 000019
【図１２】
2009081714.tif 000020
【図１３−１】
2009081714.tif 000021
【図１３−２】
2009081714.tif 000022
【図１３−３】
2009081714.tif 000023
【図１４】
2009081714.tif 000024
【図１５】
2009081714.tif 000025
【図１６−１】
2009081714.tif 000026
【図１６−２】
2009081714.tif 000027
【図１６−３】
2009081714.tif 000028
【図１６−４】
2009081714.tif 000029
【図１７−１】
2009081714.tif 000030
【図１７−２】
2009081714.tif 000031
【図１８】
2009081714.tif 000032
【図１９】
2009081714.tif 000033