以下、本発明の一実施の形態を図にしたがって説明する。
(第1の実施の形態)
図1は、本発明の各実施の形態に共通するデジタルカメラの概略構成を示すブロック図である。このデジタルカメラはAE(自動露出)、AF(オートフォーカス)、顔領域検出の各機能を備えたものであって、主として以下の各部から構成されている。
すなわちデジタルカメラは、光学系1により結像された被写体の光学像を光電変換し撮像信号として出力する撮像手段としてCCD2を有している。CCD2は、タイミングジェネレータ(TG)3により生成されるタイミング信号に基づきCCD駆動回路4によって生成される駆動信号により駆動される。CCD2の出力信号はA/D変換器5でデジタル信号に変換された後、画像処理部6へ送られる。
前記光学系1には、フォーカスレンズ及びそれを光軸上で移動させるためのレンズモータが含まれ、レンズモータが制御部7の指令に従いレンズ駆動回路8により生成される駆動信号によって駆動されることによりフォーカスレンズが光軸上での位置を制御される。
前記画像処理部6は、A/D変換後の撮像信号に対して、画素毎のR,G,Bの色成分データ(RGBデータ)を生成するRGB補間処理、RGBデータから輝度信号(Y)と色差信号(U、V)からなるYUVデータを画素毎に生成するYUV変換処理、さらにオートホワイトバランスや輪郭強調などの画品質向上のためのデジタル信号処理を行う。画像処理部6で変換されたYUVデータは順次SDRAM9に格納される。
また、デジタルカメラは、液晶モニタ及びその駆動回路から構成される表示部10を有している。撮影用の記録モードが設定されているときSDRAM9に格納されたYUVデータは、SDRAM9において1フレーム分が蓄積される毎に画像処理部6においてビデオ信号に変換された後、表示部10(液晶モニタ)においてスルー画像として画面表示される。そして、記録モードにおける撮影時には、SDRAM9に一時記憶された画像データがJPEG変換部11においてJPEG方式により圧縮符号化された後、外部メモリI/F12を介して、例えば各種のメモリカードにより構成される外部メモリ13に静止画ファイルとして記録される。
前記外部メモリ13に記録された静止画ファイルは、再生モードにおいてユーザーの選択操作に応じて適宜読み出されるとともに、JPEG変換部11において伸張されYUVデータとしてSDRAM9に展開された後、表示部10において静止画像として表示される。
キー入力ブロック14は、シャッターキー141や図示しないモード選択キー、電源キーやMENUキー等の複数キーを含み、各キーの操作状態を制御部7により随時スキャンされる。尚、シャッターキー141は、ユーザーが撮影予告を行うための半押し位置と、実際の撮影動作を指示するための全押し位置との2段階の操作が可能な所謂ハーフシャッター機能を有するものである。
制御部7は、CPU及びその周辺回路等とから構成され、デジタルカメラの各部の制御、及び、撮像信号に含まれる輝度情報に基づいたAE制御や、コントラスト検出方式によるAF制御、後述の顔領域検出制御等を行う。尚、これらの制御を制御部7に行わせるための各種のプログラムや、各々の制御に必要な各種データは、記憶データの書き換えが可能な不揮発性メモリであるフラッシュメモリ16に記憶されている。また、フラッシュメモリ16には、顔検出モード設定テーブル161を含め、当該デジタルカメラの各種の機能に関する設定情報等も記憶されている。顔検出モード設定テーブル161は、顔画像の検出精度Lv.1〜Lv.3をフラグ情報で記憶するテーブルであり、
Lv.1〜Lv.3は、
Lv.1=検出精度は荒い(低い)が、検出速度は速い。
Lv.2=検出精度ほぼ中間レベル
Lv.3=検出精度は細かい(高い)が、検出速度は遅い。
という関係にある。
顔認識処理部15は、画像処理部6によって生成された1フレーム分の画像データにおいて、後述の顔特徴辞書を用いて被写体像の顔画像を検出する顔画像検出処理を行う。より具体的には、前記1フレーム分の画像データを一時記憶するフレームメモリと、顔画像検出動作に必要な各種の画像処理を行うための画像処理回路が設けられているとともに、辞書セット151、検出個数設定部152、回転角度設定部153、範囲設定部154、及び検出精度設定部155が設けられている。
図2は、前記辞書セット151を示す構成図である。この辞書セット151は、複数個(N個)の特徴辞書A〜Nが記憶されている。特徴辞書A〜Nは、夫々が、例えば顔画像の複数の部位(目、鼻、口)の形状や大きさ、顔画像の輪郭、略正面方向から見た場合の各部位の位置等を特徴量情報として、年齢別等に分けて複数個登録されている。顔認識処理部15は、撮像した結果得られたYUVデータについて所定面積の画像領域(後述する画素領域範囲21)を順次読み出し、この画像領域(画素領域範囲21)に対してエッジ抽出等を行って特徴量を算出し、この算出した特徴量と辞書セット151内の特徴辞書A〜Nに登録される特徴量との夫々の一致度を評価して評価値を制御部7に出力する。制御部7はこれらの評価値が入力されることにより、所定面積の画像領域のうち最も評価値の高いもの、すなわち略一致している場合に、顔画像が存在するものとして判断する。
検出個数設定部152は、1フレーム分の画像データにおける顔画像の検出個数の上限を設定するものであり、本実施の形態において設定される上限の個数は「1」、「3」、「8」のいずれかである。
回転角度設定部153には、顔の許容回転角度を設定するものであり、本実施の形態において設定される許容回転角度は、図3に示すように、「±α」、「±β(>α)」、「±γ(>β)」のいずれかである。
範囲設定部154は、1フレーム分の画像における顔画像を検出するための領域を設定するものであり、本実施の形態における検出領域は、「大領域」、「中領域」、「小領域」の三種類である。すなわち、図4(a)に示すように、CCD2の撮像面20において、検出すべき顔画像の大きさに対応する矩形の検出領域21を設定し、この検出領域21を順次移動させることにより顔画像の検出を試みる。この検出領域21については、図4(b)に示すように、最も大きい領域(−x3,−y3)−(x3,y3)を大領域210とし、次に大きい領域(−x2,−y2)−(x2,y2)を中領域211とし、最も小さい領域(−x1,−y1)−(x1,y1)を小領域212とする。
検出精度設定部155は、以上の辞書セット151、検出個数設定部152、範囲設定部154の設定内容を前記検出精度Lv.1〜Lv.3に対応してフラグ情報で記憶するものである。
したがって、検出精度設定部155には、図5に示すように、検出精度は荒い(低い)が検出速度は速い=Lv.1に対応して、参照する特徴辞書には「A」に、許容回転角度には「±α」に、検出個数の上限には「1」に、検出領域には大領域210(−x3,−y3)−(x3,y3)に、各々検出精度レベルフラグ=1が記憶されている。また、検出精度が中間レベル=Lv.2に対応して、参照する特徴辞書には「A」と「B」に、許容回転角度には「±β(>α)」に、検出個数の上限には「3」に、検出領域には大領域210(−x3,−y3)−(x3,y3)と中領域211(−x2,−y2)−(x2,y2)に、各々検出精度レベルフラグ=1が記憶されている。さらに、検出精度は細かい(高い)が検出速度は遅い=Lv.3に対応して、参照する特徴辞書には「A」、「B」、「C〜N」に、許容回転角度には「±γ(>β)」に、検出個数の上限には「8」に、検出領域には大領域210(−x3,−y3)−(x3,y3)、中領域211(−x2,−y2)−(x2,y2)、小領域212(−x1,−y1)−(x1,y1)に、各々検出精度レベルフラグ=1が記憶されている。
次に、以上の構成からなるデジタルカメラの動作について説明する。電源スイッチをONにして、撮影モードを設定すると、制御部7は図6(a)に示すように、表示部10には被写体画像101(スルー画像)を表示させるとともに、フラッシュメモリ16に記憶されている制御プログラムに基づき、図7のフローチャートに示すように処理を実行する。
先ず、顔検出モード設定テーブル161を参照する(ステップS101)。このとき、顔検出モード設定テーブル161においては、初期値として例えばLv.1にフラグ=1が設定されていると、図6(a)に示すように、検出精度レベルアイコン105として「Lv.1」を表示部10に表示させる。
次に、この参照した顔検出モード設定テーブル161のフラグの状態にしたがって、特徴辞書(ステップS102)、許容回転角度(ステップS103)、検出領域(ステップS104)を各々読み出す。
つまり、顔検出モード設定テーブル161において検出精度がLv.1であるならば、図5に示した検出精度設定部155においてLv.1で参照する特徴辞書は「A」であるので、特徴辞書Aを読み出し(ステップS102)、許容回転角度は「±α」であるので、許容回転角度±αを読み出し(ステップS103)検出領域は「大領域210(−x3,−y3)−(x3,y3)」であるので、検出領域21として大領域210(−x3,−y3)−(x3,y3)を読み出す(ステップS104)。
このように、顔検出モード設定テーブル161を参照して、検出精度設定部155からデータを読み出す簡単な処理により、後述する顔画像の検出処理(ステップS105)において用いるデータを予め容易することができる。
次に、顔画像の検出処理を実行する(ステップS105)。この検出処理に際しては、検出精度がLv.1である場合には、SDRAM9に格納されスルー表示される1フレーム分の画像データを出力するCCD2の撮像面20において、検出領域21をステップS104で読み出した大領域210(−x3,−y3)−(x3,y3)とする。そして、この大領域210を順次移動させることにより、大領域210を単位として撮像面20を走査(スキャン)し、顔画像の検出を試みる。また、このとき、許容回転角度をステップS103で読み出した±αとして、ステップS102で読み出した特徴辞書Aに記憶されている特徴量を有するか否かを判断する。
引き続き、シャッターキー141の半押し操作が検出されたか否かを判断し(ステップS106)、シャッターキー141の半押し操作が検出されたならば、顔画像を検出しているか否かを判断する(ステップS107)。つまり、スキャンしたCCD2の撮像面20におけるいずれかの大領域210において、許容回転角度±α内で特徴辞書Aに記憶されている特徴量を有する領域、すなわち、顔画像が検出されているか否かを判断する。
そして、このステップS107での判断の結果、顔画像を検出していない場合、すなわち図6(a)に示す人物の顔画像103が前記大領域210をよりも遙かに小さく、許容回転角度±α内で特徴辞書Aに記憶されている特徴量を有する領域として検出されない場合には、ステップS107からステップS109に進み、画像のコントランスト評価値にしたがって、合焦領域を決定し、合焦処理、AE処理、WB調整処理を実行する。
引き続き、シャッターキー141から全押し操作と操作解除のいずれが検出されたか否かを判断する(ステップS110)。シャッターキー141の操作解除が検出された場合には、検出精度を一段上げて(ステップS112)、ステップS11からの処理を繰り返す。
したがって、現時点の検出精度が前述のようにLv.1であったとすると、今回のステップS112での処理により、顔検出モード設定テーブル161において、Lv.1=0にリセットされ、Lv.2=1にセットされ、Lv.3=0はそのまま維持されることにより、検出精度はLv.2に設定される。
そして、このように顔検出モード設定テーブル161の検出精度がLv.2に設定されると、ステップS101からの処理が再度実行された際、図6(b)に示すように、検出精度レベルアイコン105として「Lv.2」を表示部10に表示させる。また、図5に示した検出精度設定部155においてLv.2で参照する特徴辞書は「A」「B」であるので、特徴辞書A、Bを読み出し(ステップS102)、許容回転角度は「±β(>α)」であるので、許容回転角度±β(>α)を読み出し(ステップS103)、検出領域は「大領域210(−x3,−y3)−(x3,y3)」及び「中領域211(−x2,−y2)−(x2,y2)」であるので、検出領域21として大領域210(−x3,−y3)−(x3,y3)と中領域211(−x2,−y2)−(x2,y2)を読み出す(ステップS104)。引き続き、前述したステップS105以降の処理を実行する。
このとき、検出精度Lv.2においては、検出領域が大領域210と中領域211であるので、ステップS107の顔画像の検出処理においては、CCD2の撮像面20において、検出領域21を大領域210と中領域211とする。そして、この大領域210と中領域211とを順次移動させることにより、撮像面20を大領域210と中領域211とを単位として走査(スキャン)し、大領域210と中領域211毎に顔画像の検出を試みる。また、このとき、許容回転角度±βとして特徴辞書A、Bに記憶されている特徴量を有するか否かを判断する。
そして、ステップS107での判断の結果、顔画像を検出していない場合、すなわち図6(b)に示す人物の顔画像103が未だ前記中領域211をよりも小さく、許容回転角度±β内で特徴辞書A、Bに記憶されている特徴量を有する領域として検出されない場合には、ステップS107からステップS109に進む。このとき、シャッターキー141が全押し解除が検出されると、ステップS109からステップS110、ステップS112と進むことになる。
このステップS112の処理が実行される際の検出精度が、前述のように前回のステップS112での処理よりLv.2になっていると、今回のステップS112での検出精度を一段上げる処理により、顔検出モード設定テーブル161においてLv.1=0はそのまま維持され、Lv.2=0にリセットされるとともにLv.3=1にセットされて、検出精度がLv.3に設定される。
そして、このように顔検出モード設定テーブル161の検出精度がLv.3に設定されると、ステップS101からの処理が再度実行された際、図6(c)に示すように、検出精度レベルアイコン105として「Lv.3」を表示部10に表示させる。また、図5に示した検出精度設定部155においてLv.3で参照する特徴辞書は「A」「B」「C〜N」であるので、特徴辞書A〜Nを読み出し(ステップS102)、許容回転角度は「±γ(>β)」であるので、許容回転角度±γ(>β)を読み出し(ステップS103)、検出領域は「大領域210(−x3,−y3)−(x3,y3)」、「中領域211(−x2,−y2)−(x2,y2)」及び「小領域212(−x1,−y1)−(x1,y1)」であるので、検出対領域21として大領域210(−x3,−y3)−(x3,y3)、中領域211(−x2,−y2)−(x2,y2)及び小領域212(−x1,−y1)−(x1,y1)を読み出し(ステップS104)、引き続き前述したステップS105以降の処理を実行する。
このとき、検出精度Lv.3においては、検出領域が大領域210、中領域211及び小領域212であるので、ステップS105の検出処理においては、CCD2の撮像面20において、検出領域21を大領域210、中領域211及び小領域212とする。そして、この大領域210、中領域211及び小領域212を順次移動させることにより、撮像面20を大領域210、中領域211及び小領域212を単位として走査(スキャン)し、大領域210、中領域211及び小領域212毎に顔画像の検出を試みる。また、このとき、許容回転角度±γとして特徴辞書A〜Nに記憶されている特徴量を有するか否かを判断する。
また、ステップS107での判断は、顔画像を検出している場合、すなわち図6(c)に示す人物の顔画像103が小領域212内に収まり、許容回転角度±β内で特徴辞書A、Bに記憶されている特徴量を有する領域として検出された場合には、YESとなる。したがって、ステップS107からステップS108に進む。そして、このステップS108で、図6(c)に示すように、検出した顔画像を含む領域を囲繞する顔枠104を重畳表示するともに、この領域に対し、合焦処理、AE処理、WB調整処理を実行する。
すなわち、顔枠104内の顔画像のデータをコントラスト評価値の取得領域(AF評価領域)として使用し、顔画像に合焦するように、AF制御を実行しレンズ駆動回路8を駆動するとともに、検出した顔画像のデータで露出計測、露出調整処理を実行して、この領域内の撮像信号に含まれる輝度情報に基づいたAE制御し、更に検出した顔領域でホワイトバランス調整処理を実行して、顔画像が適正に記録できるように、ホワイトバランスを調整する。
そして、このステップS108に続くステップS110において、シャッターキー141の全押し操作が検出されると、ステップS110からステップS111に進み圧縮符号化・記録処理を実行する。つまり、シャッターキー141の全押し操作が検出され時点における1フレーム分の撮像データをSDRAM9に取り込み、このSDRAM9に一時記憶された撮像データをJPEG変換部11においてJPEG方式により圧縮符号化し、引き続き、この圧縮符号化した撮像データを外部メモリI/F12を介して、外部メモリ13に静止画ファイルとして書き込む。しかる後に、ステップS106からの処理を実行する。
したがって、顔画像を検出している場合には、前述したステップS108での処理により、顔画像で合焦処理するとともに、当該画像部分にて露出調整及びホワイトバランス調整が成される。よって、顔画像を検出している場合には、被写体人物の顔画像にピントが合い、かつ露出及びホワイトバランスが適正な画像を静止画ファイルとして記録することができる。
また、シャッターキー141の半押しを解除すれば、検出精度が変更されることから、誤検出を無くすべく、撮影者が撮影記録の準備を中断して設定変更を行うという煩わしさを解消し、所望する検出精度で特定画像を検出し、記録することができる。
(第2の実施の形態)
本発明の第2の実施の形態においては、図1に示すように、制御部7にはカウンター71と照合部72とが設けられる。カウンター71は、シャッターキー141が半押し操作された後シャッターキーの操作が解除された回数を計数するものである。照合部72は、このカウンター71のカウント値と所定数とを照合するものであり、カウント値が所定数を超えたか否かを判断する際に用いられる。
図8は、第2の実施の形態における処理手順を示すフローチャートである。このフローチャートにおいて、ステップS201〜S211及びS214の処理は、前述した図7のフローチャートにおける全てのステップ、つまりステップS201〜S212と同一の処理である。
そして、ステップS210での判断の結果、シャッターキー141の操作解除が検出された場合には、カウンター71のカウント値をアップさせる(ステップS212)。引き続き、このアップさせたカウンター71のカウント値が所定数を超えたか否かを判断し(ステップS213)、超えていない場合には、ステップS205からの処理を繰り返す。
このとき、撮影者は、シャッターキー141を半押しても表示部10に前記顔枠104(図6(c)参照)が表示されないので、顔画像が検出されなかったと判断する。そして、シャッターキー141の操作を解除して、デジタルカメラの向きや画角を調整し、再度所望の顔画像を検出するように、シャッターキー141の半押し操作を行うこととなる。
また、撮影者による操作の結果、表示部10に前記顔枠104が表示されて顔画像が検出された場合には、撮影者がシャッターキー141を全押しすることにより、ステップS210の判断がYESとなる。よって、ステップS210からステップS211に進み、前述した圧縮符号化・記録処理が実行されることとなる。
しかし、撮影者が複数回デジタルカメラの向きや画角を調整し、その都度シャッターキー141を半押ししても顔画像が検出されなかった場合には、その都度シャッターキー141の操作が解除され、カウント値がアップされることとなる(ステップS212)。その結果、ステップS213の判断がYESとなり、また、このようにステップS213の判断がYESとなるのは、現時点の顔画像の検出精度が低すぎることに起因する。したがって、このようにステップS213の判断がYESとなった場合には、検出精度を一段上げて(ステップS214)、ステップS201からの処理を繰り返す。
したがって、本実施の形態によれば、シャッターキー141が半押しされてからの解除の回数に応じて検出精度を変更するので、撮影者の撮影操作(意思)に応じた適切な検出精度で撮影することができる。
(第3の実施の形態)
本発明の第3の実施の形態において、図1に示す制御部7に設けられたカウンター71は、顔画像検出処理より検出された顔画像の個数を計数するものである。また、照合部72はカウンター71により計数された個数と図5に示した検出精度設定部155の検出個数の上限(「1」、「3」、「8」)とを照合するものであり、計数された個数が上限以上となったか否かを判断する際に用いられる。
次に、第3の実施の形態に係るデジタルカメラの動作について説明する。電源スイッチをONにして、撮影モードを設定すると、制御部7は図9(a)に示すように、表示部10に被写体画像をスルー表示させるとともに、フラッシュメモリ16に記憶されている制御プログラムに基づき、図10のフローチャートに示すように処理を実行する。
先ず、顔検出モード設定テーブル161を参照する(ステップS101)。このとき、顔検出モード設定テーブル161においては、初期値として例えばLv.2にフラグ=1が設定されていると、図9(a)に示すように、検出精度レベルアイコン105として「Lv.2」を表示部10に表示させる。
次に、この参照した顔検出モード設定テーブル161のフラグの状態にしたがって、特徴辞書(ステップS302)、許容回転角度(ステップS303)、検出個数の上限(ステップS304)、検出領域(ステップS305)を各々読み出す。
つまり、顔検出モード設定テーブル161において検出精度がLv.2であるならば、図5に示した検出精度設定部155においてLv.2で参照する特徴辞書は「A」「B」であるので、特徴辞書A、Bを読み出し(ステップS302)、許容回転角度は「±β(>α)」であるので、許容回転角度±β(>α)を読み出す(ステップS303)。また、検出個数の上限は「3」であるので、検出個数の上限「3」を読み出し(ステップS304)、検出領域は「大領域210(−x3,−y3)−(x3,y3)」及び「中領域211(−x2,−y2)−(x2,y2)」であるので、検出領域21として大領域210(−x3,−y3)−(x3,y3)と中領域211(−x2,−y2)−(x2,y2)を読み出す(ステップS305)。
次に、顔画像検出処理を実行する(ステップS306)。この顔画像検出処理に際しては、検出精度がLv.2である場合には、SDRAM9に格納されスルー画像として表示される1フレーム分の画像データを出力するCCD2の撮像面20において、検出領域21を大領域210(−x3,−y3)−(x3,y3)と中領域211(−x2,−y2)−(x2,y2)とする。そして、この大領域210と中領域211とを順次移動させることにより、撮像面20を大領域210と中領域211とを単位として走査(スキャン)し、大領域210と中領域211毎に顔画像の検出を試みる。また、このとき、許容回転角度を±βとして特徴辞書A、Bに記憶されている特徴量を有するか否かを判断する。
引き続き、シャッターキー141の半押し操作が検出されたか否かを判断し(ステップS307)、シャッターキー141の半押し操作が検出されたならば、顔画像を検出しているか否かを判断する(ステップS308)。つまり、スキャンしたCCD2の撮像面20におけるいずれかの大領域210又は中領域211において、許容回転角度を±β内で特徴辞書A又はBに記憶されている特徴量を有する領域、すなわち、顔画像が検出されたか否かを判断する。
このステップS308での判断の結果、顔画像を検出している場合にはステップS9に進む。すなわち図9(a)に示すように、被写体画像101中に人物Aの顔画像111、この人物Aの顔画像111よりも小さい人物Bの顔画像112及び人物Cの顔画像112が存在した場合には、人物Aの顔画像111は大領域210によるスキャンにより検出され、人物Bの顔画像112及び人物Cの顔画像113は、中領域211によるスキャンにより検出されることとなる。これによりステップS308の判断はYESとなり、ステップS308からステップS309に進む。
そして、このステップS309で、図9(a)に示すように、検出した顔画像を囲繞する顔枠104を顔画像111、112、113毎に重畳表示するとともに、顔画像に対し、合焦処理、AE処理、WB調整処理を実行する。すなわち、大領域210で検出した顔画像111内の画像データをコントラスト評価値の取得領域(AF評価領域)として使用し、顔画像に合焦するように、AF制御を実行しレンズ駆動回路8を駆動するとともに、検出した顔画像で露出計測、露出調整処理を実行して、顔画像内の撮像信号に含まれる輝度情報に基づいたAE制御し、更に検出した顔領域でホワイトバランス調整処理を実行して、顔領域が適正となるように、ホワイトバランスを調整する。
また、ステップS308での判断の結果、顔画像を検出していない場合には、画像のコントランスト評価値にしたがって、合焦領域を決定し、合焦処理、AE処理、WB調整処理を実行する(ステップSS310)。
引き続き、シャッターキー141から全押し操作と操作解除のいずれが検出されたか否かを判断する(ステップSS311)。シャッターキー141の操作解除が検出された場合には、顔画像を検出していたか否かを判断する(ステップS313)。したがって、図9(a)に示した本例のように、顔画像が検出されていると、ステップS313の判断がYESとなって、ステップS313からステップS314に進み、検出された顔画像の個数をカウンター71により計数する(ステップS314)。このとき、図9(a)に示した本例においては、3つの顔画像が検出されていることから、カウンター71により個数「3」が計数されることとなる。
次に、検出された個数がこの検出精度で設定されている検出個数の上限と同数であるか否かを判断する(ステップS315)。ここで、本例においては前述のように検出された個数は「3」であり、また、図5の検出精度設定部155においてLv.2の検出個数の上限も「3」である。したがって、ステップS315の判断がYESとなり、検出精度を一段下げて(ステップS316)、ステップS301からの処理を繰り返す。
したがって、現時点の顔検出モードにおける検出精度が前述のようにLv.2であったとすると、今回のステップS316での処理により、顔検出モード設定テーブル161において検出精度Lv.3=0はそのまま維持され、Lv.2=0にリセットされるとともにLv.1=1にセットされて、検出精度Lv.1が設定される。
そして、このように顔検出モード設定テーブル161において検出精度Lv.1=1にセットされて、検出精度Lv.1が設定されると、ステップS301からの処理が再度実行された際、図5に示した検出精度設定部155においてLv.1の参照する特徴辞書は「A」であるので、特徴辞書Aを読み出す(ステップS302)。また、許容回転角度は「±α」であるので、許容回転角度±αを読み出し(ステップS303)、検出個数の上限は「1」であるので、検出個数の上限「1」を読み出す(ステップS304)。また、検出領域は「大領域210(−x3,−y3)−(x3,y3)」であるので、検出領域21として大領域210(−x3,−y3)−(x3,y3)を読み出し(ステップS305)、引き続き前述したステップS306以降の処理を実行する。
このとき、検出精度Lv.1においては、検出領域が大領域210のみであるので、ステップS306の顔画像の検出処理においては、CCD2の撮像面20において、検出領域21を大領域210とする。そして、この大領域210を順次移動させることにより、大領域210を単位として撮像面20を走査(スキャン)し、大領域210毎に顔画像の検出を試みる。また、このとき、許容回転角度を±αとして特徴辞書Aに記憶されている特徴量を有するか否かを判断する。
引き続き、シャッターキー141の半押し操作が検出されたか否かを判断し(ステップS307)、シャッターキー141の半押し操作が検出されたならば、顔画像を検出しているか否かを判断する(ステップS308)。つまり、スキャンしたCCD2の撮像面20における大領域210において、許容回転角度を±α内で特徴辞書Aに記憶されている特徴量を有する領域が検出されたか否かを判断する。
このステップS308での判断の結果、顔画像を検出している場合にはステップS9に進む。すなわち図9(b)に示すように、被写体画像101中に人物Aの顔画像111、この人物Aの顔画像111よりも小さい人物Bの顔画像112及び人物Cの顔画像112が存在した場合には、人物Bの顔画像112及び人物Cの顔画像11は、前述したLv.2での中領域211によるスキャンでは検出されたが、今回のLv.1での大領域210によるスキャンにより検出されない。一方、人物Aの顔画像111は今回のLv.1での大領域210によるスキャンにより検出される。したがって、ステップS308の判断はYESとなり、ステップS308からステップS309に進む。
そして、このステップS309で、図9(b)に示すように、検出した顔画像を囲繞する顔枠104を人物Aの顔画像111に重畳表示するともに、顔画像に対し、合焦処理、AE処理、WB調整処理を実行する。引き続き、シャッターキー141から全押し操作と操作解除のいずれが検出されたか否かを判断し(ステップSS311)、シャッターキー141の操作解除が検出された場合には、前述したステップS313に進む。
シャッターキー141の全押し操作が検出された場合には、このステップS311からステップS312に進み圧縮符号化・記録処理を実行する。つまり、シャッターキー141の全押し操作が検出され時点における1フレーム分の撮像データをSDRAM9に取り込み、このSDRAM9に一時記憶された撮像データをJPEG変換部11においてJPEG方式により圧縮符号化し、引き続き、この圧縮符号化した撮像データを外部メモリI/F12を介して、外部メモリ13に静止画ファイルとして書き込む。しかる後に、ステップS306からの処理を実行する。
したがって、図9(b)に示すように、人物Aの顔画像111を検出している場合には、前述したステップS309での処理により、顔画像111で合焦処理するとともに、当該顔画像111にて露出調整及びホワイトバランス調整が成される。したがって、顔画像を検出している場合には、人物Aにおいて顔にピントが合い、かつ露出及びホワイトバランスが適正な画像を静止画ファイルとして記録することができる。
他方、ステップS313で顔画像を検出していなかったと判断された場合、及びステップS315で計数された個数が予め設定された検出個数の上限の未満であると判断された場合には、ステップS317に進んで、検出精度を一段階上げ、しかる後にステップS301からの処理を繰り返す。
したがって、現時点の検出精度が前述のようにLv.2であったとすると、ステップS317での処理により、顔検出モード設定テーブル161において、Lv.2=0にリセットされ、Lv.3=1にセットされ、Lv.1=0はそのまま維持されることにより、検出精度はLv.3に設定される。
そして、このように顔検出モード設定テーブル161の検出精度がLv.3に設定されると、ステップS101からの処理が再度実行された際、検出精度レベルアイコン105として「Lv.3」を表示部10に表示させる。また、図5に示した検出精度設定部155においてLv.3で参照する特徴辞書は「A」「B」「C〜N」であるので、特徴辞書A〜Nを読み出し(ステップS302)、許容回転角度は「±γ(>β)」であるので、許容回転角度±γ(>β)を読み出し(ステップS303)、検出個数の上限は「8」であるので、検出個数の上限「8」を読み出し(ステップS304)、検出領域は「大領域210(−x3,−y3)−(x3,y3)」、「中領域211(−x2,−y2)−(x2,y2)」及び「小領域212(−x1,−y1)−(x1,y1)」であるので、検出領域21として大領域210(−x3,−y3)−(x3,y3)、中領域211(−x2,−y2)−(x2,y2)及び小領域212(−x1,−y1)−(x1,y1)を読み出し(ステップS304)、引き続き前述したステップS306以降の処理を実行する。
このとき、検出精度Lv.3においては、検出対象となる画素領域範囲が大領域210、中領域211及び小領域212であるので、ステップS306の顔画像の検出処理においては、CCD2の撮像面20において、検出対象とする画素領域範囲21を大領域210、中領域211及び小領域212とする。そして、この大領域210、中領域211及び小領域212を順次移動させることにより、撮像面20を大領域210、中領域211及び小領域212を単位として走査(スキャン)し、大領域210、中領域211及び小領域212毎に顔画像の検出を試みる。また、このとき、許容回転角度±γとして特徴辞書A〜Nに記憶されている特徴量を有するか否かを判断する。
引き続き、シャッターキー141の半押し操作が検出されたか否かを判断し(ステップS307)、シャッターキー141の半押しが検出されたならば、顔画像を検出しているか否かを判断する(ステップS308)。つまり、スキャンしたCCD2の撮像面20におけるいずれかの大領域210、中領域211又は小領域212において、許容回転角度を±β内で特徴辞書A又はBに記憶されている特徴量を有する領域が検出されたか否かを判断する。
このステップS308での判断の結果、顔画像を検出している場合、すなわち人物の顔画像が小領域212内に収まり、許容回転角度±γ内で特徴辞書A〜Nに記憶されている特徴量を有する領域として検出された場合には、ステップS308からステップS309に進む。そして、このステップS309で、検出した顔画像を囲繞する顔枠104を重畳表示するとともに、顔画像に対し、合焦処理、AE処理、WB調整処理を実行する。
そして、このステップS309に続くステップS311において、シャッターキー141の全押し操作が検出されると、ステップS311からステップS312に進み圧縮符号化・記録処理を実行する。
したがって本実施の形態においては、計数された顔画像の個数がその検出精度で設定された検出個数の上限と同じであった場合には、検出モードにおける検出精度を一段下げ(ステップS316)、上限未満であった場合には、検出モードにおける検出精度を一段上げることから(ステップS317)、撮影者の撮影操作(意思)に応じた適切な検出精度で撮影することができる。
尚、各実施の形態においては、検出精度をLv.1〜3の三段階設けるようにしたが、より少段階であってもより多段階であってもよい。また、本実施の形態においては、検出精度に応じて、使用する特徴辞書の数のみならず、許容回転角度も異ならせるようにした。しかし、許容回転角度に関する制御は行わずに、使用する特徴辞書の数のみを異ならせるようにしてもよい。
また、実施の形態では、合焦すべき特定画像が人物の顔画像である場合を示したが、特定画像は人物の顔画像に限ることなく、物体の部分画像であってもよい。さらに、実施の形態では、本発明をデジタルカメラに適用させた場合について詳述したがこれに限ることなく、撮像部を有する、若しくは、撮像処理を含むプログラムを実行できる装置であればこれに限定されることなく適用可能である。