JP2009081714A - 撮像装置および撮像装置における顔領域決定方法 - Google Patents
撮像装置および撮像装置における顔領域決定方法 Download PDFInfo
- Publication number
- JP2009081714A JP2009081714A JP2007249969A JP2007249969A JP2009081714A JP 2009081714 A JP2009081714 A JP 2009081714A JP 2007249969 A JP2007249969 A JP 2007249969A JP 2007249969 A JP2007249969 A JP 2007249969A JP 2009081714 A JP2009081714 A JP 2009081714A
- Authority
- JP
- Japan
- Prior art keywords
- face
- area
- detected
- motion
- face area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Studio Devices (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
【課題】被写体の顔が正面向きから横向き、後ろ向きとなるような状況であっても、顔の位置を適正に推定し続けることを可能にする。
【解決手段】撮像部により得られた画像データ中からテンプレートマッチングにより顔エリアを検出し(S200)、顔エリアが検出された場合には(S201;Yes)、その検出結果により顔エリアの位置を決定し(S202)、顔エリアと等価的に動く胴体エリアを検出し(S203〜S205)、検出された顔エリアおよび胴体エリアそれぞれのフレーム間での時系列な動きをパタンマッチングで検出し(S207,S209)、顔エリアが検出されなくても(S201;No)、顔エリア自体の動き検出結果(S211;Yes、S221;Yes)や胴体エリアの動き検出結果(S210;Yes、S211;No)を用いることで、顔領域の位置を適正に推定し続けることができるようにした。
【選択図】 図5
【解決手段】撮像部により得られた画像データ中からテンプレートマッチングにより顔エリアを検出し(S200)、顔エリアが検出された場合には(S201;Yes)、その検出結果により顔エリアの位置を決定し(S202)、顔エリアと等価的に動く胴体エリアを検出し(S203〜S205)、検出された顔エリアおよび胴体エリアそれぞれのフレーム間での時系列な動きをパタンマッチングで検出し(S207,S209)、顔エリアが検出されなくても(S201;No)、顔エリア自体の動き検出結果(S211;Yes、S221;Yes)や胴体エリアの動き検出結果(S210;Yes、S211;No)を用いることで、顔領域の位置を適正に推定し続けることができるようにした。
【選択図】 図5
Description
本発明は、コンパクトデジタルカメラ等の撮像装置および撮像装置における顔領域決定方法に関するものである。
従来、撮像された入力画像から顔を検出する技術として、テンプレートマッチング法により、顔位置を検出し、検出した顔位置の中から顔の特徴点の位置を検出することで、顔の大きさや位置、向きを検出する技術が公知である。このような顔検出技術により検出された顔位置の範囲にピントが合うように自動焦点制御(AF制御)等を行うことで、被写体の顔への合焦精度を向上させることも知られている(例えば、特許文献1参照)。
しかしながら、特許文献1等に示される顔検出技術は、目、鼻、口などの顔の特徴点を元にテンプレートマッチングにより顔を検出しているため、被写体における顔が正面方向を向いていればよいが、被写体における顔が横を向いたり、後ろを向いたりした場合には顔検出率が低下してしまう。したがって、顔が撮影画角中に存在しているにも関わらず、顔が正面から横を向いたり後ろを向いたりした場合には、顔を検出できなくなるため、顔以外の位置にピント合わせをしてしまうといった問題がある。
本発明は、上記に鑑みてなされたものであって、被写体の顔が正面向きから横向き、後ろ向きとなるような状況であっても、顔の位置を適正に推定し続けることが可能な撮像装置および撮像装置における顔領域決定方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかる撮像装置は、被写体からの光束を受光し光電変換して画像データを得る撮像部と、前記得られた画像データ中から顔領域を検出する顔検出部と、前記得られた画像データ中から、前記検出された顔領域の周辺領域を検出する顔周辺検出部と、前記検出された顔領域および周辺領域それぞれのフレーム間での時系列な動きを検出する動き検出部と、前記顔検出部の検出結果と前記動き検出部の検出結果とに基づいて現フレームでの顔領域を決定する顔位置決定部と、を備えることを特徴とする。
また、本発明にかかる撮像装置は、上記発明において、前記決定された顔領域の画像データに基づき撮像条件を設定する撮像条件設定部を備えることを特徴とする。
また、本発明にかかる撮像装置は、上記発明において、前記顔周辺検出部は、前記検出された顔領域と等価的に動くと予測された胴体領域を前記周辺領域として検出することを特徴とする。
また、本発明にかかる撮像装置は、上記発明において、前記顔周辺検出部は、前記検出された顔領域と等価的に動くとして設定された周辺領域を前記周辺領域として検出することを特徴とする。
また、本発明にかかる撮像装置は、上記発明において、前記顔周辺検出部で検出する前記周辺領域は、撮像画面内での前記顔領域の位置または前記顔領域の大きさに応じて設定されることを特徴とする。
また、本発明にかかる撮像装置は、上記発明において、前記動き検出部は、前記顔領域および前記周辺領域の時系列な動きとして、各領域内の位置変化のあった複数の分割領域の変化に基づいて位置変化量を検出することを特徴とする。
また、本発明にかかる撮像装置は、上記発明において、前記顔位置決定部は、現フレームにおいて前記顔検出部により顔領域が検出された場合には該顔検出部の検出結果に基づいて現フレームでの顔領域を決定し、現フレームにおいて前記顔検出部により顔領域が検出されず、前記動き検出部によりフレーム間での顔領域および周辺領域の動きが検出された場合には、少なくとも該動き検出部による顔領域の動きの検出結果に基づいて現フレームでの顔領域を決定することを特徴とする。
また、本発明にかかる撮像装置は、上記発明において、前記動き検出部による顔領域の動きの検出結果と周辺領域の動きの検出結果との間の相対的な動きの信頼性を判定する信頼性判定部を備え、相対的な動きの信頼性が所定レベル以上ないと判定された場合には、現フレームでの周辺領域を再設定することを特徴とする。
また、本発明にかかる撮像装置は、上記発明において、前記顔位置決定部は、現フレームにおいて前記顔検出部により顔領域が検出された場合には該顔検出部の検出結果に基づいて現フレームでの顔領域を決定し、現フレームにおいて前記顔検出部により顔領域が検出されず、かつ、前記動き検出部によりフレーム間での顔領域の動きが検出されず、該動き検出部によりフレーム間での周辺領域の動きが検出された場合には、該動き検出部による周辺領域の動きの検出結果に基づいて現フレームでの顔領域を推定し決定することを特徴とする。
また、本発明にかかる撮像装置における顔領域決定方法は、被写体からの光束を撮像部で受光し光電変換して画像データを得る撮像工程と、前記得られた画像データ中から顔領域を検出する顔検出工程と、前記得られた画像データ中から、前記検出された顔領域の周辺領域を検出する顔周辺検出工程と、前記検出された顔領域および周辺領域それぞれのフレーム間での時系列な動きを検出する動き検出工程と、前記顔検出工程の検出結果と前記動き検出工程の検出結果とに基づいて現フレームでの顔領域を決定する顔位置決定工程と、を備えることを特徴とする。
本発明にかかる撮像装置および撮像装置における顔領域決定方法は、撮像部により得られた画像データ中から顔領域を検出するとともに、検出された顔領域の周辺領域を検出し、検出された顔領域および周辺領域それぞれのフレーム間での時系列な動きを検出し、顔検出部または顔検出工程の検出結果と動き検出部または動き検出工程の検出結果とに基づいて現フレームでの顔領域を決定するようにしたので、被写体の顔が正面向きから横向き、後ろ向きなどとなって顔検出部または顔検出工程で顔領域を検出できなくなった場合でも、顔領域自体の動き検出や顔領域の周辺領域の動き検出の結果を用いることで、顔領域の位置を適正に推定し続けることができるという効果を奏する。
以下、本発明を実施するための最良の形態である撮像装置および撮像装置における顔領域決定方法について図面を参照して説明する。本発明は、各実施の形態に限らず、本発明の趣旨を逸脱しない範囲であれば、種々の変形が可能である。
(実施の形態1)
図1は、本発明の実施の形態1にかかる撮像装置の電装系構成例を示す概略ブロック図である。本実施の形態1にかかる撮像装置1は、コンパクトデジタルカメラ等の電子カメラであり、図1に示すように、撮像光学系11、撮像素子12、AFE(Analog Front End)13、フレームメモリ14、動き検出部15、RAM16、画像処理部17、顔検出部18、胴体エリア予測部19、記録媒体I/F20、記録媒体保持部21、記録媒体22、ビデオエンコーダ23、ビデオ信号出力端子23a、LCDドライバ24、LCD25、ROM26、およびシステムコントローラ27等を備える。
図1は、本発明の実施の形態1にかかる撮像装置の電装系構成例を示す概略ブロック図である。本実施の形態1にかかる撮像装置1は、コンパクトデジタルカメラ等の電子カメラであり、図1に示すように、撮像光学系11、撮像素子12、AFE(Analog Front End)13、フレームメモリ14、動き検出部15、RAM16、画像処理部17、顔検出部18、胴体エリア予測部19、記録媒体I/F20、記録媒体保持部21、記録媒体22、ビデオエンコーダ23、ビデオ信号出力端子23a、LCDドライバ24、LCD25、ROM26、およびシステムコントローラ27等を備える。
撮像光学系11は、撮影レンズ等を含み、入射される被写体像を撮像素子12に結像する。撮像部としての撮像素子12は、CCD、CMOSセンサ等の固体撮像素子からなり、被写体からの光束を撮像光学系11を介して受光し、光電変換することでフレーム単位の画像データを得るものである。AFE13は、撮像素子12から得られる画像データ(アナログ電気信号)を読み出して、AGC(Automatic Gain Control)処理やA/D変換処理などを施し、デジタルデータによる画像データを出力するものである。AFE13によりデジタル化された画像データは、フレームメモリ14、動き検出部15およびRAM16の各部に入力される。
画像処理部17は、RAM16に一旦格納された画像データを読み出して、色補正、歪み補正等の各種の画像処理を施すとともに、記録用、表示用、顔検出用に適した画像データに変換して、記録媒体I/F20、ビデオエンコーダ23、顔検出部18のそれぞれに出力する。記録媒体I/F20は、記録用に適した画像データを記録媒体保持部21により挿脱自在に保持されたメモリカード等の記録媒体22に記録する。ビデオエンコーダ23は、表示用に適した画像データをLCDドライバ24に送出することで、撮像装置1の背面側に設けられたLCD25にスルー画として表示させる。ビデオエンコーダ23は、必要に応じて、ビデオ信号出力端子23aに接続された外部機器に対して表示用の画像データを出力する。
顔検出部18は、撮像素子12によって得られた画像データに対して輪郭テンプレート、目テンプレート等を用いる周知のテンプレートマッチング法(例えば、特開平8−63597号公報参照)を適用して画像データ中に顔画像が存在するか否かを判断し、顔画像が存在する場合にはその顔エリア(顔領域)を検出するテンプレートマッチングモジュールからなる。顔検出部18は、検出した顔エリアの座標、顔の向き、顔パーツ(目、鼻、口など)などの情報をRAM16に保存する。
胴体エリア予測部19は、顔検出部18で検出された顔エリアの座標、顔の向き、顔パーツなどの情報に基づき、胴体エリア(胴体領域)の位置および大きさを予測して算出するものである。算出された胴体エリアの位置および大きさは、顔検出部18によって検出された顔領域と一体となって等価的に動く周辺領域の情報としてRAM16に保存される。
動き検出部15は、検出された顔エリア、胴体エリアそれぞれのフレーム間での時系列な動きをパタンマッチング法により検出するためのものである。すなわち、動き検出部15は、フレームメモリ14に格納された1つ前のフレームの画像データと、AFE13から入力される現フレームの画像データとを用いて、パタンマッチングにより動きベクトルを求めるものである。この際、求める動きベクトルの範囲は、1つ前のフレームの画像データから顔検出部18、胴体エリア予測部19で求めた顔エリア、胴体エリア(顔周辺エリア)である。動き検出部15で検出された顔エリア、胴体エリアそれぞれの動きベクトルの情報はRAM16に格納される。
システムコントローラ27は、撮像装置1内の各部の制御処理やメモリ制御を行うとともに、顔位置決定部や撮像条件設定部の機能を実行する。すなわち、RAM16に格納された動きベクトルの情報から現フレームでの顔エリアの位置を算出し、顔検出部18で求めた顔エリアの座標と合わせて、現フレームでの顔エリアの位置を決定する。また、決定された顔エリアの画像データに基づき撮像条件を設定するためのAF(自動焦点)、AE(自動露出)、AWB(自動ホワイトバランス)の処理を行う。
ROM26は、システムコントローラ27が実行する制御プログラムを予め格納している他、顔検出部18でテンプレートマッチングに用いるテンプレートデータ等を格納している。
図2は、図1中の主要部の撮影時の動作例を示す概略タイミングチャートである。図2中、“A”〜“F”は、露光動作に伴い撮像素子12により順次撮像されるフレーム画像を示している。撮像されたフレーム画像は、AFE13によりデジタル化された後、RAM16やフレームメモリ14へDMA(ダイレクトメモリアクセス)制御により格納される。RAM16に格納されたフレーム画像は、画像処理部17により順次画像処理され、顔検出部18による顔検出処理の対象とされる。動き検出部15では、代表点マッチングにより動きベクトルを求める。すなわち、フレームメモリ14に格納された1つ前のフレーム画像とAFE13から取得した現フレームの画像データからパタンマッチング法における代表点マッチングにより、顔検出部18、胴体エリア予測部19から入力された顔エリアと胴体エリアとの動きベクトルを求める。そして、システムコントローラ27による顔位置決定では、代表点マッチングにより検出した顔エリアと、顔検出部18で検出した顔エリアとの検出結果に基づき、現フレームでの最終的な顔エリアの位置を決定する。そして、決定された最終的な顔エリアの位置を基にAE,AF,AWB動作を行い、撮像条件を設定することとなる。LCD表示は、スルー画としてLCD25に表示するフレーム画像を示している。
次に、図3−1〜図3−4を参照して、本実施の形態1の特徴的な顔エリア決定方法の概要を説明する。図3−1〜図3−4は、Nフレームから(N+3)フレームまで時系列なフレーム画像例を示す説明図である。各図の(a)(b)は、同一フレーム画像例を示し、各図の(a)は、テンプレートマッチングモジュール(顔検出部18)による顔検出例を示し、各図の(b)は、動き検出モジュール(胴体エリア予測部19および動き検出部15)による顔検出例を示している。
まず、図3−1(a)に示すように、Nフレームのフレーム画像について、顔検出部18でのテンプレートマッチングにより、画像データ中から、顔エリアを検出することを前提とする。顔検出部18によって顔エリアを検出した場合には、検出された顔エリアを対象としてNフレーム画像のAE動作等を行わせる。そして、図3−1(b)に示すように、検出した顔エリアの情報を胴体エリア予測部19に通知する。胴体エリア予測部19は、通知された顔エリアから、図3−1(b)中に四角枠で示すように、胴体エリアを予測する。
ついで、図3−2(a)に示す(N+1)フレームのフレーム画像について、顔の向きなどの要因により、顔検出部18でのテンプレートマッチングでは顔エリアを検出できなかったとする。この場合、図3−2(b)に示すように、Nフレーム、(N+1)フレーム間において、動き検出部15でのパタンマッチングにより顔エリアの動きを検出できた場合には、この動き検出部15で検出した顔エリアを対象として(N+1)フレーム画像のAE動作等を行わせる。この際、動き検出部15でのパタンマッチングにより胴体エリアの動きが検出されているか否かは問わない。
さらに、図3−3(a)に示す(N+2)フレームのフレーム画像について、顔の向きなどの要因により、顔検出部18でのテンプレートマッチングでは顔エリアを検出できなかったとする。この際、図3−2(b)に示すように、(N+1)フレーム、(N+2)フレーム間において、動き検出部15でのパタンマッチングにより顔エリアの動きも検出できなかったが、胴体エリアの動きは検出できたとする。すると、この胴体エリアの動きから顔エリアの位置を推定して、推定された顔エリアを対象として(N+2)フレーム画像のAE動作等を行わせる。
一方、図3−4(a)に示す(N+3)フレームのフレーム画像について、顔検出部18でのテンプレートマッチングにより、顔エリアが再び検出されたとする。顔検出部18によって顔エリアを検出した場合には、検出された顔エリアを対象として(N+3)フレーム画像AE動作等を行わせる。そして、図3−4(b)に示すように、検出した顔エリアの情報を胴体エリア予測部19に通知する。胴体エリア予測部19は、通知された顔エリアから、図3−4(b)中に四角枠で示すように、胴体エリアを新たに予測する。
このように、本実施の形態1では、顔検出部18により顔エリアを検出し、検出した顔エリアの大きさ、顔の向き、顔パーツの情報から、胴体の位置および大きさを胴体エリア予測部19で予測する。そして、顔検出部18で検出された顔エリアと、予測された胴体エリアとのフレーム間での時系列な動きを、動き検出部15においてパタンマッチングにより検出する。検出中の顔画像がフレーム画像内に収まっているが、顔の向きにより顔検出部18のテンプレートマッチングで顔を検出できなくなった場合において、動き検出部15でのパタンマッチングにより顔エリアの動きを検出できているときには、検出された顔エリアの動きに応じて対象となる現フレーム画像中の顔エリアの位置を更新する。さらに、顔が後ろを向き等の動きによって、動き検出部15でのパタンマッチングによっても顔エリアの動きを検出できず、かつ、動き検出部15でのパタンマッチングによって胴体エリアの動きを検出できたときには、検出された胴体エリアの動きから、現フレーム画像中の顔エリアの動きを予測し、顔エリアの位置を更新するものである。すなわち、顔の動きは、体の動きと略一致しているため、顔の動きは、胴体の動きからも推定し得る点に着目し、顔エリア自体や顔エリアの動きが検出できない場合には、検出された胴体エリアの動きを活用するようにしたものである。これにより、スポーツシーンや動き回る子供の撮影時のように、顔の向きが変化するような状況下でも、顔の位置を的確に追従設定することができる。
以下、本実施の形態1における動作制御例について、図4〜図11を参照して詳細に説明する。図4は、電子カメラの電源ON/OFFに伴う基本的な動作制御例を示す概略フローチャートである。まず、電子カメラの電源がONされると、撮影モードであるか否かを判断する(ステップS100)。撮影モードに設定されていれば(ステップS100;Yes;撮像工程)、顔検出処理を開始する(ステップS101)。この顔検出処理の詳細については、後述する。顔検出処理の結果、現フレーム画像中から顔エリアが検出されたか否かを判断する(ステップS102)。顔エリアが検出されなかった場合には(ステップS102;No)、現フレーム画像中の通常範囲を対象としてAF/AE/AWB動作を行い、撮像条件を設定する(ステップS103)。一方、顔エリアが検出された場合には(ステップS102;Yes)、現フレーム画像中の顔検出範囲(顔エリア)の画像データを対象としてAF/AE/AWB動作を行い、撮像条件を設定する(ステップS104;撮像条件設定部)。そして、レリーズボタンに関して、1stレリーズがONされたか否かを判断し(ステップS105)、ONされていなければ(ステップS105;No)、ステップS101〜S104の処理を繰り返す。
ONされた場合には(ステップS105;Yes)、顔検出処理を開始する(ステップS106)。この顔検出処理の詳細についても、後述する。顔検出処理の結果、現フレーム画像中から顔エリアが検出されたか否かを判断する(ステップS107)。顔エリアが検出されなかった場合には(ステップS107;No)、現フレーム画像中の通常範囲を対象としてAF/AE/AWB動作を行い、撮像条件を設定する(ステップS108)。一方、顔エリアが検出された場合には(ステップS107;Yes)、現フレーム画像中の顔検出範囲(顔エリア)の画像データを対象としてAF/AE/AWB動作を行い、撮像条件を設定する(ステップS109;撮像条件設定部)。そして、レリーズボタンに関して、2ndレリーズがONされたか否かを判断し(ステップS110)、ONされていなければ(ステップS110;No)、ステップS106〜S109の処理を繰り返す。
2ndレリーズがONされた場合には(ステップS110;Yes)、設定された撮像条件に従い撮影処理を実行する(ステップS111;撮像工程)。そして、撮影モードが終了であるか否かを判断し(ステップS112)、終了していなければ(ステップS112;No)、ステップS101に戻る。一方、撮影モードが終了の場合には(ステップS112;Yes)、再生モードが選択されているか否かを判断する(ステップS113)。再生モードも選択されていなければ(ステップS113;No)、カメラ電源OFFであり、処理を終了する。
また、ステップS100において、撮影モードでない場合、または、ステップS113において再生モードが選択されている場合には、ユーザ操作に従い、再生画像を選択し(ステップS114)、選択された撮影済みの静止画/動画をLCD25の画面上に再生表示させる(ステップS115)。その後、再生モードが終了であるか否かを判断し(ステップS116)、終了していなければ(ステップS116;No)、ステップS114に戻る。一方、再生モードが終了の場合には(ステップS116;Yes)、カメラ電源OFFであるか否かを判断し(ステップS117)、カメラ電源OFFでなければ(ステップS117;No)、撮影モードであり、ステップS101に戻る。カメラ電源OFFであれば(ステップS117;Yes)、処理を終了する。
次に、ステップS101またはステップS106の顔検出処理について図5を参照して説明する。図5は、顔検出処理例を示す概略フローチャートである。まず、システムコントローラ27は、顔検出部18を用いて周知のテンプレートマッチング法等による顔検出処理を実行する(ステップS200)。顔検出部18による顔検出処理で、顔が検出された場合には(ステップS201;Yes)、検出された顔エリアを現フレームでの顔エリアとしてRAM16に保存する(ステップS202;顔位置決定部,顔位置決定工程)。図3−1(a)、図3−4(a)に示した例が相当する。このような顔検出に引き続き、システムコントローラ27は、胴体エリア予測部19を用いて胴体エリアの予測処理を実行させる(ステップS203)。図3−1(b)、図3−4(b)に示した例が相当する。この胴体エリアの予測処理については、後述する。
胴体エリアの予測処理に引き続き、現フレーム中で該胴体エリアが検出されたか(予測できたか)否かを判断する(ステップS204)。検出された場合には(ステップS204;Yes)、検出された胴体エリアを現フレームでの胴体エリアとしてRAM16に保存し(ステップS205)、今回の顔検出処理を終了する。検出されない場合には(予測できない場合には)、そのまま今回の顔検出処理を終了する。顔検出部18による顔検出処理で後続のフレーム画像についても顔が検出され続ける限り、これらステップS201;Yes〜ステップS205の処理は同様に繰り返される。よって、顔検出部18により検出された顔エリアの情報が現フレームでの顔エリアとして決定され、RAM16に保存されて、撮像条件設定の対象エリアとして利用される。
一方、顔検出部18による顔検出処理で顔エリアが検出できなかった場合には(ステップS201;No)、システムコントローラ27は、動き検出部15によるパタンマッチングを用いた顔エリア検出処理を実行させ、顔エリアの位置を決定する。まず、前フレーム画像について顔エリアがRAM16に格納されているか否かを判断する(ステップS206)。これは、動き検出部15による処理は、少なくとも先行するフレーム画像において、顔検出部18によって一旦顔エリアが検出されて顔エリアが一旦RAM16に格納されていることを前提として実行されるためである。顔エリアがRAM16に格納されていなければ(ステップS206;No)、動き検出部15による処理を行えないため、今回の顔検出処理を終了する。
前フレーム画像について顔エリアがあれば(ステップS206;Yes)、動き検出部15において顔エリアに関するパタンマッチング処理を実行し、前フレームと現フレームとの間での顔エリアの時系列な動きを検出する(ステップS207)。この顔エリアのパタンマッチング処理については、後述する。引き続き、前フレーム画像について胴体エリアがRAM16に格納されているか否かを判断する(ステップS208)。前フレーム画像について胴体エリアがあれば(ステップS208;Yes)、動き検出部15において胴体エリアに関するパタンマッチング処理を実行し、前フレームと現フレームとの間での胴体エリアの時系列な動きを検出する(ステップS209)。この胴体エリアのパタンマッチング処理については、後述する。胴体エリアがRAM16に格納されていなければ(ステップS208;No)、ステップS209の処理をジャンプする。
ついで、動き検出部15による胴体エリアのパタンマッチングの結果、胴体エリアに関する動きベクトルが検出されたか否かを判断する(ステップS210)。胴体エリアの動きベクトルが検出された場合には(ステップS210;Yes)、動き検出部15による顔エリアのパタンマッチングの結果、顔エリアに関する動きベクトルが検出されたか否かを判断する(ステップS211)。顔エリアの動きベクトルが検出された場合には(ステップS211;Yes)、検出された顔エリアの動きに基づき現フレームでの顔エリアを算出してRAM16に保存する(ステップS212;顔位置決定部,顔位置決定工程)。図3−2(b)に示した例が相当する。よって、顔検出部18により顔エリアが検出されなくなった場合において、動き検出部15により顔エリアの動きが検出された場合には、顔エリアの動きに基づき算出された顔エリアの情報が現フレームでの顔エリアとして決定され、RAM16に保存されて、撮像条件設定の対象エリアとして利用される。
引き続き、同時に検出された胴体エリアの動きの検出結果に基づき、相対胴体エリアベクトルの信頼性に関する判定処理を行う(ステップS213;信頼性判定部)。この相対胴体エリアベクトル信頼性判定処理については、後述する。この判定処理の結果、相対胴体エリアベクトルの信頼性が所定レベル以上であるか否かを判断し(ステップS214)、所定レベル以上の信頼性がある場合には(ステップS214;Yes)、検出された胴体エリアの動きに基づき現フレームでの胴体エリアを算出してRAM16に保存する(ステップS217)。所定レベル以上の信頼性がない場合には(ステップS216;No)、システムコントローラ27は、胴体エリア予測部19を用いて胴体エリアの予測処理を実行させ(ステップS215)、胴体エリアを再設定させる。この胴体エリアの予測処理については、後述する。胴体エリアの予測処理に引き続き、現フレーム中で該胴体エリアが検出されたか(予測できたか)否かを判断する(ステップS216)。検出された場合には(ステップS216;Yes)、検出された胴体エリアを現フレームでの胴体エリアとしてRAM16に保存し(ステップS217)、今回の顔検出処理を終了する。検出されなかった場合には(予測できなかった場合には)、そのまま今回の顔検出処理を終了する。
一方、ステップS211において、顔エリアの動きベクトルが検出されていなかった場合には、検出された胴体エリアの動きベクトルを顔エリアの動きベクトルと見なし(ステップS218)、顔エリアの動きベクトル(胴体エリアの動きベクトル)に基づき現フレームでの顔エリアを算出してRAM16に保存する(ステップS219;顔位置決定部,顔位置決定工程)。図3−3(b)に示す例が相当する。よって、顔検出部18により顔エリアが検出されなくなった場合において、動き検出部15により顔エリアの動きが検出されず、動き検出部15により胴体エリアの動きが検出された場合には、胴体エリアの動きに基づき推定されて算出された顔エリアの情報が現フレームでの顔エリアとして決定され、RAM16に保存されて、撮像条件設定の対象エリアとして利用される。さらに、検出された胴体エリアの動きに基づき現フレームでの胴体エリアを算出してRAM16に保存する(ステップS220)。
さらに、ステップS210において、胴体エリアの動きベクトルが検出されていない場合には(ステップS210;No)、動き検出部15による顔エリアのパタンマッチングの結果、顔エリアに関する動きベクトルが検出されたか否かを判断する(ステップS221)。顔エリアの動きベクトルが検出されている場合には(ステップS221;Yes)、検出された顔エリアの動きに基づき現フレームでの顔エリアを算出してRAM16に保存する(ステップS222;顔位置決定部,顔位置決定工程)。よって、顔検出部18により顔エリアが検出されなくなった場合において、動き検出部15により顔エリアの動きが検出された場合には、顔エリアの動きに基づき算出された顔エリアの情報が現フレームでの顔エリアとして決定され、RAM16に保存されて、撮像条件設定の対象エリアとして利用される。
引き続き、システムコントローラ27は、胴体エリア予測部19を用いて胴体エリアの予測処理を実行させる(ステップS223)。この胴体エリアの予測処理については、後述する。胴体エリアの予測処理に引き続き、現フレーム中で該胴体エリアが検出されたか(予測できたか)否かを判断する(ステップS224)。検出された場合には(ステップS224;Yes)、検出された胴体エリアを現フレームでの胴体エリアとしてRAM16に保存し(ステップS225)、今回の顔検出処理を終了する。検出されなかった場合には(予測できなかった場合には)、そのまま今回の顔検出処理を終了する。
ついで、ステップS203、S215、S223の胴体エリア予測処理について説明する。図6は、システムコントローラ27による制御の下に胴体エリア予測部19により実行される胴体エリア予測処理例を示す概略フローチャートである。まず、顔エリア情報に基づき、胴体幅を、顔幅×顔角度係数として算出する(ステップS300)。そして、顔エリア情報に基づき、胴体高さを、顔高さ×胴体高さ係数として算出する(ステップS301)。これらの算出結果に基づき、胴体エリアを算出する(ステップS302)。そして、算出された胴体エリアの全てが撮影画角の範囲内に収まっているか否かを判断する(ステップS303)。撮影画角の範囲内に収まっていれば(ステップS303;Yes)、胴体エリア予測処理を終了する。
一方、撮影画角の範囲内に収まっていなければ(ステップS303;No)、胴体の所定の閾値%が撮影画角の範囲内に収まっているか否かを判断する(ステップS304)。撮影画角の範囲内に収まっていれば(ステップS304;Yes)、撮影画角の範囲内に収まる胴体エリアを再算出し(ステップS305)、胴体エリア予測処理を終了する。
そして、撮影画角の範囲内に収まっていなければ(ステップS304;No)、算出した胴体エリアをクリアして(ステップS306)、胴体エリア予測処理を終了する。この場合、胴体エリア未検出となり、次の胴体エリア検出判定(ステップS204,S216,S224)では、判定結果がNoとなる。
ここで、図6に示す胴体エリア予測処理例を図7−1〜図7−3を参照して説明する。図7−1は、顔が横向きで、かつ、胴体全てが撮影画角の範囲内に収まっているフレーム画像例を示す。この場合、胴体も横向きである可能性が高いため、顔幅と胴体幅は同程度と考える。すなわち、顔角度係数=1として、胴体幅を算出する。また、胴体高さは、顔高さの5倍とする。すなわち、胴体高さ係数=5として胴体高さを算出する。また、胴体の位置は、顔の向きより、顔の下に存在すると考える。以上に基づき、胴体エリアの位置を予測して算出する。この例では、胴体の全てが撮影画角の範囲内に収まっているので、求めた胴体エリアの位置を胴体エリアとする。
図7−2は、顔が正面向きで、かつ、胴体の大半が撮影画角の範囲内に収まっているフレーム画像例を示す。この場合、胴体も正面向きである可能性が高いため、胴体幅は顔幅の1.5倍程度と考える。すなわち、顔角度係数=1.5として、胴体幅を算出する。また、胴体高さは、顔高さの5倍とする。すなわち、胴体高さ係数=5として胴体高さを算出する。また、胴体の位置は、顔の向きより、顔の下に存在すると考える。以上に基づき、胴体エリアの位置を予測して算出する。この例では、撮影画角の範囲内に収まっている胴体エリアの割合が所定の閾値%、例えば30%以上であるため、胴体エリアとして適正であると判断する。この際、撮影画角の範囲内に収まる胴体エリアを再算出する。
図7−3は、顔が正面向きで、かつ、胴体の大半が撮影画角の範囲内に収まっていないフレーム画像例を示す。この場合、胴体も正面向きである可能性が高いため、胴体幅は顔幅の1.5倍程度と考える。すなわち、顔角度係数=1.5として、胴体幅を算出する。また、胴体高さは、顔高さの5倍とする。すなわち、胴体高さ係数=5として胴体高さを算出する。また、胴体の位置は、顔の向きより、顔の下に存在すると考える。以上に基づき、胴体エリアの位置を予測して算出する。この例では、撮影画角の範囲内に収まっている胴体エリアの割合が所定の閾値%、例えば30%以上でないため、胴体エリアとして適正でないと判断する。よって、求めた胴体エリアはクリアする。
次に、前フレームと現フレームとの間でのステップS207の顔エリアパタンマッチング処理およびステップS209の胴体エリアパタンマッチング処理について説明する。ここで、パタンマッチング処理は、マッチング処理の精度を高めるために、顔エリアや胴体エリアをそれぞれ複数のマクロブロック(分割領域)に分割して行うものとする。図8−1は、顔エリアが比較的小さい場合の顔エリアおよび胴体エリアそれぞれのマクロブロックの分割例を示す模式図である。図8−1は、顔エリアを4つのマクロブロックに等分割し、胴体エリアを20個のマクロブロックに等分割する例を示している。図8−2は、顔エリアが比較的大きい場合の顔エリアおよび胴体エリアそれぞれのマクロブロックの分割例を示す模式図である。図8−2は、顔エリアを30個のマクロブロックに等分割し、胴体エリアを54個のマクロブロックに等分割する例を示している。なお、マクロブロックのサイズは個々の顔エリアや胴体エリアに関して一律に同じである必要はなく、異なっていてもよく、分割数(個数)も適宜設定される。
図9は、システムコントローラ27による制御の下に動き検出部15により実行される顔エリアパタンマッチング処理例を示す概略フローチャートであり、図10は、システムコントローラ27による制御の下に動き検出部15により実行される胴体エリアパタンマッチング処理例を示す概略フローチャートである。これらのパタンマッチング処理では、顔エリアや胴体エリアの時系列な動きとして、各エリア内の位置変化のあった複数のマクロブロックの変化に基づいて位置変化量を検出することを基本とする。
まず、顔エリアパタンマッチング処理が開始されると、顔エリアに関してマクロブロックのサイズ/個数を決定する(ステップS310)。そして、マクロブロック毎に相関演算を行い(ステップS311)、相関結果を総合的に判断することで、マクロブロック毎の動きベクトルを算出する(ステップS312)。マクロブロック毎の相関演算を行う際、前フレームに対して現フレームでは一回り広い範囲を設定し、1画素毎にどこに動いたかを判断することにより行う。ついで、算出した動きベクトルに関して、マクロブロック毎に信頼性を判定する(ステップS313)。信頼性の判定は、例えば、算出された動きベクトルの方向が一致しているか否か等の相関値の大小に基づき行われる。そして、信頼性の有るマクロブロックから顔エリアの動きベクトルを算出する(ステップS314)。この場合の動きベクトルは、例えば動きベクトルの平均値や頻度の高いものを採用する等の手法によって求めればよい。ついで、算出した動きベクトルに関して、顔エリア全体の信頼性を判定し(ステップS315)、顔エリア全体の信頼性が有る場合には(ステップS316;Yes)、ステップS314で求められた顔エリアの動きベクトルを有効として、顔エリアパタンマッチング処理を終了する。顔エリア全体の信頼性がない場合には(ステップS316;No)、ステップS314で求められた顔エリアの動きベクトルをクリアし(ステップS317)、顔エリアパタンマッチング処理を終了する。
胴体エリアのパタンマッチング処理も顔エリアパタンマッチング処理と同様である。まず、胴体エリアパタンマッチング処理が開始されると、胴体エリアに関してマクロブロックのサイズ/個数を決定する(ステップS320)。そして、マクロブロック毎に相関演算を行い(ステップS321)、相関結果を総合的に判断することで、マクロブロック毎の動きベクトルを算出する(ステップS322)。マクロブロック毎の相関演算を行う際、前フレームに対して現フレームでは一回り広い範囲を設定し、1画素毎にどこに動いたかを判断することにより行う。ついで、算出した動きベクトルに関して、マクロブロック毎に信頼性を判定する(ステップS323)。信頼性の判定は、例えば、算出された動きベクトルの方向が一致しているか否か等の相関値の大小に基づき行われる。そして、信頼性の有るマクロブロックから胴体エリアの動きベクトルを算出する(ステップS324)。この場合の動きベクトルは、例えば動きベクトルの平均値や頻度の高いものを採用する等の手法によって求めればよい。ついで、算出した動きベクトルに関して、胴体エリア全体の信頼性を判定し(ステップS325)、胴体エリア全体の信頼性が有る場合には(ステップS326;Yes)、ステップS324で求められた胴体エリアの動きベクトルを有効として、胴体エリアパタンマッチング処理を終了する。胴体エリア全体の信頼性がない場合には(ステップS326;No)、ステップS324で求められた胴体エリアの動きベクトルをクリアし(ステップS327)、胴体エリアパタンマッチング処理を終了する。
また、ステップS213における相対胴体エリアベクトル信頼性判定処理について説明する。図11は、システムコントローラ27により実行される相対胴体エリアベクトル信頼性判定処理例を示す概略フローチャートである。この処理は、顔エリアの動きベクトルと胴体エリアの動きベクトルとが求められた場合に、縦横の動きに分割して、それぞれの方向における動きに同一性があるか否かにより、検出された胴体エリアの動きベクトルの信頼性を判定するものである。
まず、水平差分ベクトルを|水平胴体エリアベクトル−水平顔エリアベクトル|により算出し(ステップS330)、垂直差分ベクトルを|垂直胴体エリアベクトル−垂直顔エリアベクトル|により算出する(ステップS331)。ついで、水平差分ベクトルが予め設定された所定の水平ベクトル閾値よりも小さいか否かを判定し(ステップS332)、かつ、垂直差分ベクトルが予め設定された所定の垂直ベクトル閾値よりも小さいか否かを判定する(ステップS333)。水平差分ベクトルが水平ベクトル閾値よりも小さく(ステップS332;Yes)、かつ、垂直差分ベクトルが垂直ベクトル閾値よりも小さければ(ステップS333;Yes)、相対胴体エリアベクトルは信頼性が有るものと判定し(ステップS334)、相対胴体エリアベクトル信頼性判定処理を終了する。一方、水平差分ベクトルが水平ベクトル閾値以上で(ステップS332;No)、または、垂直差分ベクトルが垂直ベクトル閾値以上であれば(ステップS333;No)、相対胴体エリアベクトルは信頼性が無いものと判定し(ステップS335)、相対胴体エリアベクトル信頼性判定処理を終了する。
このように、本実施の形態1によれば、撮像素子12により得られた画像データ中から顔エリアを顔検出部18によって検出するとともに、胴体エリア予測部19による予測の下に顔エリアと等価的に動く胴体エリアを検出し、検出された顔エリアおよび胴体エリアそれぞれのフレーム間での時系列な動きを動き検出部15によって検出し、顔検出部18の検出結果と動き検出部15の検出結果とに基づいて現フレームでの顔エリアを決定するようにしたので、被写体の顔が正面向きから横向き、後ろ向きなどとなって顔検出部18で顔エリアを検出できなくなった場合でも、顔エリア自体の動き検出や胴体エリアの動き検出の結果を用いることで、顔エリアの位置を適正に推定し続けることができる。
(実施の形態2)
ついで、本発明の実施の形態2について図12〜図19を参照して説明する。実施の形態1で説明した部分と同一部分は同一符号を用いて示し、説明も省略する。図12は、本実施の形態2にかかる撮像装置の電装系構成例を示す概略ブロック図である。本実施の形態2にかかる撮像装置31は、顔エリアと等価的に動く周辺領域として胴体エリアに代えて周辺エリア(周辺領域)を利用するものであり、胴体エリア予測部19に代えて、周辺エリア設定部32を備える。
ついで、本発明の実施の形態2について図12〜図19を参照して説明する。実施の形態1で説明した部分と同一部分は同一符号を用いて示し、説明も省略する。図12は、本実施の形態2にかかる撮像装置の電装系構成例を示す概略ブロック図である。本実施の形態2にかかる撮像装置31は、顔エリアと等価的に動く周辺領域として胴体エリアに代えて周辺エリア(周辺領域)を利用するものであり、胴体エリア予測部19に代えて、周辺エリア設定部32を備える。
周辺エリア設定部32は、顔検出部18で検出された顔エリアに対して周辺エリアを設定するものである。設定された周辺エリアの位置および大きさは、顔検出部18によって検出された顔領域と一体となって等価的に動く周辺領域の情報としてRAM16に保存される。
また、本実施の形態2における動き検出部15は、検出された顔エリア、周辺エリアそれぞれのフレーム間での時系列な動きをパタンマッチング法により検出するためのものである。すなわち、動き検出部15は、フレームメモリ14に格納された1つ前のフレームの画像データと、AFE13から入力される現フレームの画像データとを用いて、パタンマッチングにより動きベクトルを求めるものである。この際、求める動きベクトルの範囲は、1つ前のフレームの画像データから顔検出部18で求めた顔エリア、周辺エリア設定部32で設定した周辺エリア(顔周辺エリア)である。動き検出部15で検出された顔エリア、周辺エリアそれぞれの動きベクトルの情報はRAM16に格納される。
次に、図13−1〜図13−3を参照して、本実施の形態2の特徴的な顔エリア決定方法の概要を説明する。図13−1〜図13−3は、Nフレームから(N+2)フレームまで時系列なフレーム画像例を示す説明図である。各図の(a)(b)は、同一フレーム画像例を示し、各図の(a)は、テンプレートマッチングモジュール(顔検出部18)による顔検出例を示し、各図の(b)は、動き検出モジュール(周辺エリア設定部32および動き検出部15)による顔検出例を示している。
まず、図13−1(a)に示すように、Nフレームのフレーム画像について、顔検出部18でのテンプレートマッチングにより、画像データ中から、顔エリアを検出することを前提とする。顔検出部18によって顔エリアを検出した場合には、検出された顔エリアを対象としてNフレーム画像のAE動作等を行わせる。そして、図13−1(b)に示すように、検出した顔エリアの情報を周辺エリア設定部32に通知する。周辺エリア設定部32は、通知された顔エリアから、図13−1(b)中に四角枠で示すように、顔エリアの周囲に複数個の周辺エリアを仮設定する。ここでは、例えば検出された顔エリアと同一サイズの8個の周辺エリアを顔エリアの周囲に設定する。そして、動き検出部15により、顔エリアおよびその周辺の周辺エリアについてのパタンマッチング処理を開始する。この際、フレーム画像全体の動きもパタンマッチングにより追跡する。
図13−2(a)は、(N+1)フレームのフレーム画像について、顔検出部18によって顔エリアが検出された場合を示しており、検出された顔エリアを対象としてNフレーム画像のAE動作等を行わせる。そして、図13−2(b)では、動き検出部15による前のNフレームから現フレームへの顔エリア、周辺エリア並びに画面全体の動きに関するパタンマッチングの結果により、仮設定された周辺エリア中から、顔エリアと等価的に動く一部の周辺エリアを顔付属エリアとして抽出設定する。すなわち、検出したそれぞれの動き量のうち、図13−2(b)中に矢印で示すように、顔エリアと一部の周辺エリアの動きが一致し、かつ、画面全体の動きが顔エリアと異なる場合、顔エリアの動きと一致した、一部の周辺エリアを顔付属エリアとして設定する。図13−2(b)中に示す例では、被写体人物が車とともに移動する例を示しており、顔エリアの下列3つおよび顔エリアの右横の合計4つの周辺エリアは顔エリアと同じ動きをしており、顔エリアと等価的に動く顔付属エリア(顔周辺エリア)として設定され、残りの4個の周辺エリアは画面上の背景エリアと判定され、動き検出部15による動き検出の対象から除外される。
さらに、図13−3(a)に示す(N+2)フレームのフレーム画像について、顔の向きなどの要因により、顔検出部18でのテンプレートマッチングでは顔エリアを検出できなかったとする。この際、動き検出部15は、既に検出されていた顔エリアおよび周辺エリア中の顔付属エリアの動きをパタンマッチング法により検出しており、図13−3(b)に示すように、顔エリアおよび顔付属エリアの動きをともに検出できた場合には、検出された顔エリアの動きに基づき(N+2)フレームの顔エリアの位置を算出する。そして、算出された顔エリアを対象としてNフレーム画像のAE動作等を行わせる。
この際、動き検出部15が、顔エリアの動きを検出できず、顔付属エリアの動きのみを検出できた場合には、顔付属エリアの動きから顔エリアの位置を予測し、(N+2)フレームの顔エリアの位置を算出する。そして、算出された顔エリアを対象としてNフレーム画像のAE動作等を行わせる。
このように、本実施の形態2では、顔検出部18により顔エリアを検出し、検出した顔エリアに対して周辺エリアを仮設定し、周辺エリア中から顔エリアと等価的な動きを示す顔付属エリアを抽出設定する。そして、顔検出部18で検出された顔エリアと、周辺エリア中の顔付属エリアとのフレーム間での時系列な動きを、動き検出部15においてパタンマッチングにより検出する。検出中の顔画像がフレーム画像内に収まっているが、顔の向きにより顔検出部18のテンプレートマッチングで顔を検出できなくなった場合において、動き検出部15でのパタンマッチングにより顔エリアの動きを検出できているときには、検出された顔エリアの動きに応じて対象となる現フレーム画像中の顔エリアの位置を更新する。さらに、顔が後ろを向き等の動きによって、動き検出部15でのパタンマッチングによっても顔エリアの動きを検出できず、かつ、動き検出部15でのパタンマッチングによって顔付属エリアの動きを検出できたときには、検出された顔付属エリアの動きから、現フレーム画像中の顔エリアの動きを予測し、顔エリアの位置を更新するものである。すなわち、周辺エリア中から顔エリアと等価的な動きを示す顔付属エリアを抽出設定し、顔付属エリアの動きを追尾することで顔エリアの動きを推定し得る点に着目し、顔エリア自体や顔エリアの動きが検出できない場合には、検出された顔付属エリアの動きを活用するようにしたものである。
以下、本実施の形態2における動作制御例について、図14〜図19を参照して詳細に説明する。なお、電子カメラの電源ON/OFFに伴う基本的な動作制御例は、図4の場合と同様であるため、図示および説明を省略する。
次に、図4中のステップS101またはステップS106の本実施の形態2による顔検出処理について図14を参照して説明する。図14は、実施の形態2における顔検出処理例を示す概略フローチャートである。まず、システムコントローラ27は、顔検出部18を用いて周知のテンプレートマッチング法等による顔検出処理を実行する(ステップS400)。顔検出部18による顔検出処理で、顔が検出された場合には(ステップS401;Yes)、検出された顔エリアを現フレームでの顔エリアとしてRAM16に保存する(ステップS402;顔位置決定部,顔位置決定工程)。図13−1(a)、図13−2(a)に示す例が相当する。このような顔検出に引き続き、システムコントローラ27は、周辺エリア設定部32を用いて周辺エリアの設定処理を実行させる(ステップS403)。図13−1(b)、図13−2(b)に示す例が相当する。この周辺エリアの設定処理については、後述する。
周辺エリアの設定処理に引き続き、現フレーム中で該周辺エリアが検出されたか(設定できたか)否かを判断する(ステップS404)。検出された場合には(ステップS404;Yes)、検出された周辺エリアを現フレームでの周辺エリアとしてRAM16に保存し(ステップS405)、今回の顔検出処理を終了する。検出されない場合には(設定できない場合には)、そのまま今回の顔検出処理を終了する。顔検出部18による顔検出処理で後続のフレーム画像についても顔が検出され続ける限り、これらステップS401;Yes〜ステップS405の処理は同様に繰り返される。よって、顔検出部18により検出された顔エリアの情報が現フレームでの顔エリアとして決定され、RAM16に保存されて、撮像条件設定の対象エリアとして利用される。
一方、顔検出部18による顔検出処理で顔エリアが検出できなかった場合には(ステップS401;No)、システムコントローラ27は、動き検出部15によるパタンマッチングを用いた顔エリア検出処理を実行させ、顔エリアの位置を決定する。まず、前フレーム画像について顔エリアがRAM16に格納されているか否かを判断する(ステップS406)。これは、動き検出部15による処理は、少なくとも先行するフレーム画像において、顔検出部18によって一旦顔エリアが検出されて顔エリアが一旦RAM16に格納されていることを前提として実行されるためである。顔エリアがRAM16に格納されていなければ(ステップS406;No)、動き検出部15による処理を行えないため、今回の顔検出処理を終了する。
前フレーム画像について顔エリアがあれば(ステップS406;Yes)、動き検出部15において顔エリアに関するパタンマッチング処理を実行し、前フレームと現フレームとの間での顔エリアの時系列な動き検出する(ステップS407)。引き続き、前フレーム画像について周辺エリアがRAM16に格納されているか否かを判断する(ステップS408)。前フレーム画像について周辺エリアがあれば(ステップS408;Yes)、動き検出部15において周辺エリアに関するパタンマッチング処理を実行し、前フレームと現フレームとの間での周辺エリアの時系列な動き検出する(ステップS409)。この周辺エリアのパタンマッチング処理については、後述する。周辺エリアがRAM16に格納されていなければ(ステップS408;No)、ステップS409の処理をジャンプする。
ついで、動き検出部15による周辺エリアのパタンマッチングの結果、周辺エリアに関する動きベクトルが検出されたか否かを判断する(ステップS410)。周辺エリアの動きベクトルが検出されている場合には(ステップS410;Yes)、動き検出部15による顔エリアのパタンマッチングの結果、顔エリアに関する動きベクトルが検出されたか否かを判断する(ステップS411)。顔エリアの動きベクトルが検出されている場合には(ステップS411;Yes)、同時に検出された周辺エリアの動きの検出結果に基づき、相対周辺エリアベクトルの信頼性に関する判定処理を行う(ステップS412;信頼性判定部)。この相対周辺エリアベクトル信頼性判定処理については、後述する。そして、検出された顔エリアの動きに基づき現フレームでの顔エリアを算出してRAM16に保存する(ステップS413;顔位置決定部,顔位置決定工程)。図13−2(b)が相当する。よって、顔検出部18により顔エリアが検出されなくなった場合において、動き検出部15により顔エリアの動きが検出された場合には、顔エリアの動きに基づき算出された顔エリアの情報が現フレームでの顔エリアとして決定され、RAM16に保存されて、撮像条件設定の対象エリアとして利用される。
一方、ステップS411において、顔エリアの動きベクトルが検出されていない場合には、検出された周辺エリアの動きベクトルを顔エリアの動きベクトルと見なし(ステップS413)、顔エリアの動きベクトルに基づき現フレームでの顔エリアを算出してRAM16に保存する(ステップS214;顔位置決定部,顔位置決定工程)。よって、顔検出部18により顔エリアが検出されなくなった場合において、動き検出部15により顔エリアの動きが検出されず、動き検出部15により周辺エリアの動きが検出された場合には、周辺エリアの動きに基づき推定されて算出された顔エリアの情報が現フレームでの顔エリアとして決定され、RAM16に保存されて、撮像条件設定の対象エリアとして利用される。
その後、相対周辺エリアベクトル信頼性判定処理の判定処理の結果、相対周辺エリアベクトルの信頼性が所定レベル以上であるか否かを判断し(ステップS415)、所定レベル以上の信頼性がある場合には(ステップS415;Yes)、検出された周辺エリアの動きに基づき現フレームでの周辺エリアを算出してRAM16に保存する(ステップS416)。所定レベル以上の信頼性がない場合には(ステップS415;No)、システムコントローラ27は、周辺エリア設定部32を用いて周辺エリアの設定処理を実行させ(ステップS417)、周辺エリアを再設定させる。この周辺エリアの設定処理については、後述する。周辺エリアの設定処理に引き続き、現フレーム中で該周辺エリアが検出されたか(設定できたか)否かを判断する(ステップS418)。検出された場合には(ステップS418;Yes)、検出された周辺エリアを現フレームでの周辺エリアとしてRAM16に保存し(ステップS416)、今回の顔検出処理を終了する。検出されない場合には(設定できない場合には)、そのまま今回の顔検出処理を終了する。
さらに、ステップS410において、周辺エリアの動きベクトルが検出されていない場合には、動き検出部15による顔エリアのパタンマッチングの結果、顔エリアに関する動きベクトルが検出されたか否かを判断する(ステップS419)。顔エリアの動きベクトルが検出されている場合には(ステップS419;Yes)、検出された顔エリアの動きに基づき現フレームでの顔エリアを算出してRAM16に保存する(ステップS420;顔位置決定部,顔位置決定工程)。よって、顔検出部18により顔エリアが検出されなくなった場合において、動き検出部15により顔エリアの動きが検出された場合には、顔エリアの動きに基づき算出された顔エリアの情報が現フレームでの顔エリアとして決定され、RAM16に保存されて、撮像条件設定の対象エリアとして利用される。
ついで、ステップS403、S417の周辺エリア設定処理について説明する。図15は、システムコントローラ27による制御の下に周辺エリア設定部32により実行される周辺エリア予測設定処理例を示す概略フローチャートである。まず、顔エリア情報に基づき、周辺幅を、顔幅×周辺幅係数として算出する(ステップS500)。この場合、顔幅が所定サイズ以下であれば、周辺幅係数は1とするが、所定サイズよりも大きければ顔幅が大きいほど周辺幅係数は小さくなるように設定される。そして、顔エリア情報に基づき、周辺高さを、顔高さ×周辺高さ係数として算出する(ステップS501)。これらの算出結果に基づき、周辺エリアを算出する(ステップS502)。そして、算出された周辺エリアの全てが撮影画角の範囲内に収まっているか否かを判断する(ステップS3503)。撮影画角の範囲内に収まっていれば(ステップS503;Yes)、周辺エリア予測設定処理を終了する。
一方、撮影画角の範囲内に収まっていなければ(ステップS503;No)、周辺の所定の閾値%が撮影画角の範囲内に収まっているか否かを判断する(ステップS304)。撮影画角の範囲内に収まっていれば(ステップS504;Yes)、算出された周辺エリアを更新し(ステップS505)、周辺エリア予測設定処理を終了する。
そして、撮影画角の範囲内に収まっていなければ(ステップS504;No)、収まっていない周辺エリアをクリアして(ステップS506)、周辺エリア予測設定処理を終了する。この場合、全てのエリアが撮影画角の範囲内に収まっていなければ周辺エリア未検出となり、次の周辺エリア検出判定(ステップS404,S418)では、判定結果がNoとなる。
ここで、図15に示す周辺エリア予測設定例を図16−1〜図16−4を参照して説明する。図16−1は、8個の周辺エリアの全てが撮影画角の範囲内に収まっているフレーム画像例を示す。この場合、8個の全ての周辺エリアと顔エリアとについて動き検出部15でパタンマッチングを行う。すなわち、8個全ての周辺エリアを、有効な周辺エリアとして設定する。
図16−2は、8個の周辺エリアのうちの一部が撮影画角の範囲内に収まっていないフレーム画像例を示す。すなわち、図示例の場合、下列3個の周辺エリアが撮影画角の範囲内に収まっていないが、例えば50%以上は撮影画角の範囲内に収まっているので、下列3個の周辺エリアを、撮影画角の範囲内に収まるよう、サイズ変更する。そして、8個全ての周辺エリアを、有効な周辺エリアとして設定し、8個の全ての周辺エリアと顔エリアとについて動き検出部15でパタンマッチングを行う。
図16−3は、8個の周辺エリアのうちの一部が撮影画角の範囲内に収まっていないフレーム画像例を示す。すなわち、図示例の場合、下列3個の周辺エリアが撮影画角の範囲内に収まっておらず、かつ、例えば50%以上が撮影画角の範囲内に収まっていないので、下列3個の周辺エリアを、周辺エリアから除外する。そして、残りの5個全ての周辺エリアを、有効な周辺エリアとして設定し、5個の周辺エリアと顔エリアとについて動き検出部15でパタンマッチングを行う。
図16−4は、顔エリアが所定サイズよりも大きいフレーム画像例を示す。この場合、周辺エリアのサイズを顔エリアのサイズよりも小さく設定し(例えば、1/4)、撮影画角の範囲内の収まる周辺エリアの数を増やすように設定する。図示例では、周辺エリア数が標準の8個から12個に増やす例を示している。
次に、前フレームと現フレームとの間でのステップS407の顔エリアパタンマッチング処理およびステップS409の周辺エリアパタンマッチング処理について説明する。ここで、パタンマッチング処理は、マッチング処理の精度を高めるために、顔エリアや周辺エリアは、それぞれ複数のマクロブロック(分割領域)に分割して行うものとする。図17−1は、顔エリアが比較的小さい場合の顔エリアおよび周辺エリアそれぞれのマクロブロックの分割例を示す模式図である。図17−1は、顔エリアを4つのマクロブロックに等分割し、各周辺エリアも4つのマクロブロックに等分割する例を示している。図17−2は、顔エリアが比較的大きい場合の顔エリアおよび周辺エリアそれぞれのマクロブロックの分割例を示す模式図である。図17−2は、顔エリアを20個のマクロブロックに等分割し、各周辺エリアも20個のマクロブロックに等分割する例を示している。なお、マクロブロックのサイズは個々の顔エリアや周辺エリアに関して一律に同じである必要はなく、異なっていてもよく、分割数(個数)も適宜設定される。また、ステップS407の顔エリアパタンマッチング処理は、図9の場合と同様であるため、図示および説明を省略する。
図18は、システムコントローラ27による制御の下に動き検出部15により実行される周辺エリアパタンマッチング処理例を示す概略フローチャートである。このパタンマッチング処理では、周辺エリアの時系列な動きとして、各エリア内の位置変化のあった複数のマクロブロックの変化に基づいて位置変化量を検出することを基本とする。
まず、周辺エリアパタンマッチング処理が開始されると、周辺エリアに関してマクロブロックのサイズ/個数を決定する(ステップS520)。そして、マクロブロック毎に相関演算を行い(ステップS521)、相関結果を総合的に判断することで、マクロブロック毎の動きベクトルを算出する(ステップS522)。マクロブロック毎の相関演算を行う際、前フレームに対して現フレームでは一回り広い範囲を設定し、1画素毎にどこに動いたかを判断することにより行う。ついで、算出した動きベクトルに関して、マクロブロック毎に信頼性を判定する(ステップS523)。信頼性の判定は、例えば、算出された動きベクトルの方向が一致しているか否か等の相関値の大小に基づき行われる。そして、信頼性の有るマクロブロックから個々の周辺エリアの動きベクトルを算出する(ステップS524)。この場合の動きベクトルは、例えば動きベクトルの平均値や頻度の高いものを採用する等の手法によって求めればよい。ついで、算出した動きベクトルに関して、周辺エリア全体の信頼性を判定し(ステップS525)、周辺エリア全体の信頼性が有る場合には(ステップS526;Yes)、ステップS524で求められた周辺エリアの動きベクトルを有効として、周辺エリアパタンマッチング処理を終了する。周辺エリア全体の信頼性がない場合には(ステップS526;No)、ステップS524で求められた周辺エリアの動きベクトルをクリアし(ステップS527)、周辺エリアパタンマッチング処理を終了する。
また、ステップS412における相対周辺エリアベクトル信頼性判定処理について説明する。図19は、システムコントローラ27により実行される相対周辺エリアベクトル信頼性判定処理例を示す概略フローチャートである。この処理は、顔エリアの動きベクトルと周辺エリアの動きベクトルとが求められた場合に、縦横の動きに分割して、それぞれの方向における動きに同一性があるか否かにより信頼性を判定するものである。
まず、水平差分ベクトルを|水平周辺エリアベクトル−水平顔エリアベクトル|により算出し(ステップS530)、垂直差分ベクトルを|垂直周辺エリアベクトル−垂直顔エリアベクトル|により算出する(ステップS531)。ついで、水平差分ベクトルが予め設定された所定の水平ベクトル閾値よりも小さいか否かを判定し(ステップS532)、かつ、垂直差分ベクトルが予め設定された所定の垂直ベクトル閾値よりも小さいか否かを判定する(ステップS533)。水平差分ベクトルが水平ベクトル閾値よりも小さく(ステップS532;Yes)、かつ、垂直差分ベクトルが垂直ベクトル閾値よりも小さければ(ステップS533;Yes)、相対周辺エリアベクトルは信頼性が有るものと判定し(ステップS534)、相対周辺エリアベクトル信頼性判定処理を終了する。一方、水平差分ベクトルが水平ベクトル閾値以上で(ステップS532;No)、または、垂直差分ベクトルが垂直ベクトル閾値以上であれば(ステップS533;No)、相対周辺エリアベクトルは信頼性が無いものと判定し(ステップS535)、相対周辺エリアベクトル信頼性判定処理を終了する。
このように、本実施の形態2によれば、撮像素子12により得られた画像データ中から顔エリアを顔検出部18によって検出するとともに、周辺エリア設定部32による設定の下に顔エリアと等価的に動く周辺エリアを検出し、検出された顔エリアおよび周辺エリアそれぞれのフレーム間での時系列な動きを動き検出部15によって検出し、顔検出部18の検出結果と動き検出部15の検出結果とに基づいて現フレームでの顔エリアを決定するようにしたので、被写体の顔が正面向きから横向き、後ろ向きなどとなって顔検出部18で顔エリアを検出できなくなった場合でも、顔エリア自体の動き検出や周辺エリアの動き検出の結果を用いることで、顔エリアの位置を適正に推定し続けることができる。
12 撮像素子
15 動き検出部
18 顔検出部
19 胴体エリア予測部
27 システムコントローラ
32 周辺エリア設定部
15 動き検出部
18 顔検出部
19 胴体エリア予測部
27 システムコントローラ
32 周辺エリア設定部
Claims (10)
- 被写体からの光束を受光し光電変換して画像データを得る撮像部と、
前記得られた画像データ中から顔領域を検出する顔検出部と、
前記得られた画像データ中から、前記検出された顔領域の周辺領域を検出する顔周辺検出部と、
前記検出された顔領域および周辺領域それぞれのフレーム間での時系列な動きを検出する動き検出部と、
前記顔検出部の検出結果と前記動き検出部の検出結果とに基づいて現フレームでの顔領域を決定する顔位置決定部と、
を備えることを特徴とする撮像装置。 - 前記決定された顔領域の画像データに基づき撮像条件を設定する撮像条件設定部を備えることを特徴とする請求項1に記載の撮像装置。
- 前記顔周辺検出部は、前記検出された顔領域と等価的に動くと予測された胴体領域を前記周辺領域として検出することを特徴とする請求項1に記載の撮像装置。
- 前記顔周辺検出部は、前記検出された顔領域と等価的に動くとして設定された周辺領域を前記周辺領域として検出することを特徴とする請求項1に記載の撮像装置。
- 前記顔周辺検出部で検出する前記周辺領域は、撮像画面内での前記顔領域の位置または前記顔領域の大きさに応じて設定されることを特徴とする請求項1に記載の撮像装置。
- 前記動き検出部は、前記顔領域および前記周辺領域の時系列な動きとして、各領域内の位置変化のあった複数の分割領域の変化に基づいて位置変化量を検出することを特徴とする請求項1に記載の撮像装置。
- 前記顔位置決定部は、現フレームにおいて前記顔検出部により顔領域が検出された場合には該顔検出部の検出結果に基づいて現フレームでの顔領域を決定し、現フレームにおいて前記顔検出部により顔領域が検出されず、前記動き検出部によりフレーム間での顔領域および周辺領域の動きが検出された場合には、少なくとも該動き検出部による顔領域の動きの検出結果に基づいて現フレームでの顔領域を決定することを特徴とする請求項1に記載の撮像装置。
- 前記動き検出部による顔領域の動きの検出結果と周辺領域の動きの検出結果との間の相対的な動きの信頼性を判定する信頼性判定部を備え、
相対的な動きの信頼性が所定レベル以上ないと判定された場合には、現フレームでの周辺領域を再設定することを特徴とする請求項7に記載の撮像装置。 - 前記顔位置決定部は、現フレームにおいて前記顔検出部により顔領域が検出された場合には該顔検出部の検出結果に基づいて現フレームでの顔領域を決定し、現フレームにおいて前記顔検出部により顔領域が検出されず、かつ、前記動き検出部によりフレーム間での顔領域の動きが検出されず、該動き検出部によりフレーム間での周辺領域の動きが検出された場合には、該動き検出部による周辺領域の動きの検出結果に基づいて現フレームでの顔領域を推定し決定することを特徴とする請求項1に記載の撮像装置。
- 被写体からの光束を撮像部で受光し光電変換して画像データを得る撮像工程と、
前記得られた画像データ中から顔領域を検出する顔検出工程と、
前記得られた画像データ中から、前記検出された顔領域の周辺領域を検出する顔周辺検出工程と、
前記検出された顔領域および周辺領域それぞれのフレーム間での時系列な動きを検出する動き検出工程と、
前記顔検出工程の検出結果と前記動き検出工程の検出結果とに基づいて現フレームでの顔領域を決定する顔位置決定工程と、
を備えることを特徴とする撮像装置における顔領域決定方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007249969A JP2009081714A (ja) | 2007-09-26 | 2007-09-26 | 撮像装置および撮像装置における顔領域決定方法 |
CN2008101680191A CN101399915B (zh) | 2007-09-26 | 2008-09-25 | 摄像装置和摄像装置中的脸区域决定方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007249969A JP2009081714A (ja) | 2007-09-26 | 2007-09-26 | 撮像装置および撮像装置における顔領域決定方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009081714A true JP2009081714A (ja) | 2009-04-16 |
Family
ID=40518142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007249969A Pending JP2009081714A (ja) | 2007-09-26 | 2007-09-26 | 撮像装置および撮像装置における顔領域決定方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2009081714A (ja) |
CN (1) | CN101399915B (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101257207B1 (ko) * | 2012-02-23 | 2013-04-22 | 인텔 코오퍼레이션 | 헤드 트래킹 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 |
WO2013121713A1 (ja) * | 2012-02-15 | 2013-08-22 | 日本電気株式会社 | 解析処理装置 |
WO2013121711A1 (ja) * | 2012-02-15 | 2013-08-22 | 日本電気株式会社 | 解析処理装置 |
JP2013228930A (ja) * | 2012-04-26 | 2013-11-07 | Canon Inc | 被写体領域検出装置、その制御方法、および制御プログラム、並びに撮像装置および表示装置 |
JP2013232060A (ja) * | 2012-04-27 | 2013-11-14 | Canon Inc | 画像認識装置、その制御方法、および制御プログラム、並びに撮像装置および表示装置 |
JP2014093715A (ja) * | 2012-11-06 | 2014-05-19 | Canon Inc | 画像表示装置、その制御方法、および制御プログラム、並びに撮像装置 |
US8842213B2 (en) | 2011-04-18 | 2014-09-23 | Panasonic Corporation | Image capture device, image capture device focus control method, and integrated circuit |
WO2021090943A1 (ja) * | 2019-11-08 | 2021-05-14 | 株式会社デンソーテン | 画像処理装置および画像処理方法 |
JP2021077092A (ja) * | 2019-11-08 | 2021-05-20 | 株式会社デンソーテン | 画像処理装置および画像処理方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5814557B2 (ja) * | 2011-02-07 | 2015-11-17 | キヤノン株式会社 | 画像表示制御装置、撮像装置、表示制御方法、及び制御プログラム |
CN102831430B (zh) * | 2011-06-14 | 2015-02-04 | 华晶科技股份有限公司 | 拍照时间点的预测方法及采用所述拍照时间点的预测方法的装置 |
JP6188452B2 (ja) * | 2013-06-28 | 2017-08-30 | キヤノン株式会社 | 画像処理装置、画像処理方法、及びプログラム |
-
2007
- 2007-09-26 JP JP2007249969A patent/JP2009081714A/ja active Pending
-
2008
- 2008-09-25 CN CN2008101680191A patent/CN101399915B/zh not_active Expired - Fee Related
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8842213B2 (en) | 2011-04-18 | 2014-09-23 | Panasonic Corporation | Image capture device, image capture device focus control method, and integrated circuit |
WO2013121713A1 (ja) * | 2012-02-15 | 2013-08-22 | 日本電気株式会社 | 解析処理装置 |
WO2013121711A1 (ja) * | 2012-02-15 | 2013-08-22 | 日本電気株式会社 | 解析処理装置 |
JPWO2013121711A1 (ja) * | 2012-02-15 | 2015-05-11 | 日本電気株式会社 | 解析処理装置 |
US9299161B2 (en) | 2012-02-23 | 2016-03-29 | Intel Corporation | Method and device for head tracking and computer-readable recording medium |
WO2013125876A1 (ko) * | 2012-02-23 | 2013-08-29 | 인텔 코오퍼레이션 | 헤드 트래킹 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 |
KR101257207B1 (ko) * | 2012-02-23 | 2013-04-22 | 인텔 코오퍼레이션 | 헤드 트래킹 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 |
JP2013228930A (ja) * | 2012-04-26 | 2013-11-07 | Canon Inc | 被写体領域検出装置、その制御方法、および制御プログラム、並びに撮像装置および表示装置 |
US11036966B2 (en) | 2012-04-26 | 2021-06-15 | Canon Kabushiki Kaisha | Subject area detection apparatus that extracts subject area from image, control method therefor, and storage medium, as well as image pickup apparatus and display apparatus |
JP2013232060A (ja) * | 2012-04-27 | 2013-11-14 | Canon Inc | 画像認識装置、その制御方法、および制御プログラム、並びに撮像装置および表示装置 |
US9571740B2 (en) | 2012-04-27 | 2017-02-14 | Canon Kabushiki Kaisha | Image recognition device that recognizes specific object area, method of controlling the device, and storage medium, as well as image pickup apparatus, and display device |
JP2014093715A (ja) * | 2012-11-06 | 2014-05-19 | Canon Inc | 画像表示装置、その制御方法、および制御プログラム、並びに撮像装置 |
WO2021090943A1 (ja) * | 2019-11-08 | 2021-05-14 | 株式会社デンソーテン | 画像処理装置および画像処理方法 |
JP2021077092A (ja) * | 2019-11-08 | 2021-05-20 | 株式会社デンソーテン | 画像処理装置および画像処理方法 |
JP7360304B2 (ja) | 2019-11-08 | 2023-10-12 | 株式会社デンソーテン | 画像処理装置および画像処理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101399915A (zh) | 2009-04-01 |
CN101399915B (zh) | 2011-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009081714A (ja) | 撮像装置および撮像装置における顔領域決定方法 | |
EP2424226B1 (en) | Image-processing apparatus and method, and program | |
CN107707871B (zh) | 图像处理设备、摄像设备、图像处理方法和存储介质 | |
US20110075016A1 (en) | Imager processing a captured image | |
JP2014143673A (ja) | 画像処理装置、撮像装置、画像処理方法、及び記録媒体 | |
KR20110025621A (ko) | 화상 처리 장치, 화상 처리 방법 및 컴퓨터 기억 매체 | |
JP2008276214A (ja) | デジタルカメラ | |
JP2007281555A (ja) | 撮像装置 | |
KR20110023762A (ko) | 화상 처리 장치, 화상 처리 방법 및 컴퓨터가 판독 가능한 기억 매체 | |
KR20140116014A (ko) | 화상 취득 장치, 화상 취득 방법 및 기록매체 | |
JP2011134117A (ja) | 被写体領域抽出装置およびその制御方法、被写体追跡装置、並びにプログラム | |
JP2013113922A (ja) | 撮像装置 | |
JP2011071925A (ja) | 移動体追尾装置および方法 | |
JP2021132362A (ja) | 被写体追尾装置、被写体追尾方法、コンピュータプログラム及び記憶媒体 | |
JP2021111929A (ja) | 撮像装置、撮像装置の制御方法およびプログラム | |
JP2013218393A (ja) | 撮像装置 | |
JP6176073B2 (ja) | 撮影システム及びプログラム | |
JP5539565B2 (ja) | 撮像装置及び被写体追跡方法 | |
JP6087615B2 (ja) | 画像処理装置およびその制御方法、撮像装置、および表示装置 | |
JP2009009206A (ja) | 画像中の輪郭抽出方法及びその画像処理装置 | |
JP2010175966A (ja) | 画像処理装置及び撮像装置 | |
JP2009088884A (ja) | 撮像データにおける動きベクトル検出方法と装置 | |
US9781337B2 (en) | Image processing device, image processing method, and recording medium for trimming an image based on motion information | |
JP5247419B2 (ja) | 撮像装置および被写体追跡方法 | |
JP2010154323A (ja) | 画像処理装置、画像抽出方法、および、プログラム |