以下、添付図面を参照して本発明に係る撮影装置、その顔検出方法並びに画像記録方法を実施するための最良の形態について説明する。
<第1の実施の形態>
図1、図2は、それぞれ本発明が適用されたデジタルカメラの外観構成を示す正面斜視図と背面斜視図である。
同図に示すように、このデジタルカメラ10は、いわゆるコンパクトカメラとして構成されており、そのカメラボディ12は、片手で把持可能な形状に形成されている。
カメラボディ12の正面には、図1に示すように、撮影レンズ14、フラッシュ16、
スピーカ18、AF補助光ランプ20等が設けられており、上面には、シャッタボタン22、モードレバー24、電源ボタン26等が設けられている。
一方、カメラボディ12の背面には、図2に示すように、モニタ28、ズームボタン30、再生ボタン32、ファンクションボタン34、十字ボタン36、MENU/OKボタン38、DISP/BACKボタン40、顔検出ボタン42等が設けられている。
また、図示されていないが、カメラボディ12の底面には、三脚ネジ穴及び開閉自在なバッテリカバーが設けられており、バッテリカバーの内側には、バッテリを収納するためのバッテリ収納室及びメモリカードを装着するためのメモリカードスロットが設けられている。
撮影レンズ14は、沈胴式のズームレンズで構成されており、デジタルカメラ10の電源をONすると、カメラボディ12から繰り出される。なお、撮影レンズ14のズーム機構や沈胴機構については、公知の技術なので、ここでは、その具体的な構成についての説明は省略する。
フラッシュ16は、キセノン管で構成されており、暗い被写体を撮影する場合や逆光時などに必要に応じて発光される。
AF補助光ランプ20は、たとえば高輝度LED構成されており、AF時に必要に応じて発光される。
シャッタボタン22は、いわゆる「半押し」と「全押し」とからなる二段ストローク式のスイッチで構成されている。デジタルカメラ10は、このシャッタボタン22を半押しすると撮影準備処理、すなわち、AE(Automatic Exposure:自動露出)、AF(Auto Focus:自動焦点合わせ)、AWB(Automatic White Balance:自動ホワイトバランス)の各処理を行い、全押すると、画像の撮影・記録処理を行う。
モードレバー24は、撮影モードの設定に用いられる。このモードレバー24は、シャッタボタン22の周りを所定の角度の範囲で揺動自在に設けられており、「SP位置」、「AUTO位置」、「M位置」、「動画位置」にセット可能に設けられている。デジタルカメラ10は、このモードレバー24を「SP位置」にセットすることにより、「シーンプログラム撮影モード」に設定され、撮影シーンに応じた露出制御、撮影制御を行うモードに設定される。また、「AUTO位置」にセットすることにより、「オート撮影モード」に設定され、露出制御を全自動で行うモードに設定される。また、「M位置」に設定されることにより、「マニュアル撮影モード」に設定され、露出設定を手動で行うモードに設定される。また、「動画位置」に設定することにより、「動画撮影モード」に設定され、動画を撮影するモードに設定される。
なお、「シーンプログラム撮影モード」としては、たとえば、人物撮影を行う「人物撮影モード」、風景撮影を行う「風景撮影モード」、スポーツ撮影を行う「スポーツ撮影モード」、夜景撮影を行う「夜景撮影モード」、水中撮影を行う「水中撮影モード」等が用意されており、メニュー画面で設定される。
電源ボタン26は、デジタルカメラ10の電源をON/OFFするのに用いられ、所定時間(たとえば、2秒)押下されることにより、デジタルカメラ10の電源がON/OFFされる。
モニタ28は、カラーLCDで構成されている。このモニタ28は、撮影済み画像を表示するための画像表示部として利用されるとともに、各種設定時にGUIとして利用される。また、撮影時には、撮像素子で捉えた画像がスルー表示され、電子ファインダとして利用される。
ズームボタン30は、撮影レンズ14のズーム操作に用いられ、望遠側へのズームを指示するズームテレボタンと、広角側へのズームを指示するズームワイドボタンとで構成されている。
再生ボタン32は、再生モードへの切り替え指示に用いられる。すなわち、デジタルカメラ10は、撮影中、この再生ボタン32が押されると、再生モードに切り替えられる。また、電源OFFの状態でこの再生ボタン32が押されると、再生モードの状態でデジタルカメラ10が起動する。
ファンクションボタン34は、撮影及び再生機能の各種設定画面の呼び出しに用いられる。すなわち、撮影時に、このファンクションボタン34が押されると、モニタ28に画像サイズ(記録画素数)、感度、画質等の設定画面が表示され、再生時に、このファンクションボタン4が押されると、モニタ28にプリント予約(DPOF)等の設定画面が表示される。
十字ボタン36は、上下左右4方向に押圧操作可能に設けられており、各方向のボタンには、カメラの設定状態に応じた機能が割り当てられる。たとえば、撮影時には、左ボタンにマクロ機能のON/OFFを切り替える機能が割り当てられ、右ボタンにフラッシュモードを切り替える機能が割り当てられる。また、上ボタンにモニタ28の明るさを替える機能が割り当てられ、下ボタンにセルフタイマのON/OFFを切り替える機能が割り当てられる。また、再生時には、左ボタンにコマ送りの機能が割り当てられ、右ボタンにコマ戻しの機能が割り当てられる。また、上ボタンにモニタ28の明るさを替える機能が割り当てられ、下ボタンに再生中の画像を削除する機能が割り当てられる。また、各種設定時には、モニタ28に表示されたカーソルを各ボタンの方向に移動させる機能が割り当てられる。
なお、本実施の形態のデジタルカメラ10において、フラッシュモードには、オート発光モード(撮影シーンに応じて自動的にフラッシュが発光される)と、強制発光モード(強制的にフラッシュが発光される)と、発光禁止モード(発光が禁止される)と、スローシンクロモード(スローシャッタ撮影が行われる)、赤目軽減発光モード(赤目軽減処理が行われる)、二枚撮りモード(1回の記録指示(シャッタボタンの全押し)でフラッシュON画像とフラッシュOFF画像の二枚の画像を撮影する)が用意されており、十字ボタン36の右ボタンを押すたびに順次モードが切り替わるようにされている。
MENU/OKボタン38は、メニュー画面の呼び出し(MENU機能)に用いられるとともに、選択内容の確定、処理の実行指示等(OK機能)に用いられ、デジタルカメラ10の設定状態に応じて割り当てられる機能が切り替えられる。
メニュー画面では、たとえばセルフタイマ機能のON/OFFの設定、測光方式の切り替え、AF方式の切り替え、デジタルズーム機能のON/OFFの設定、ホワイトバランス(光源種別)の切り替え、連写機能のON/OFFの設定等、デジタルカメラ10が有する各種機能の設定が行われる。
DISP/BACKボタン40は、モニタ28の表示内容の切り替え指示(DISP機能)に用いられるとともに、入力操作のキャンセル等の指示(BACK機能)に用いられ、デジタルカメラ10の設定状態に応じて割り当てられる機能が切り替えられる。
顔検出ボタン42は、顔検出機能のON/OFFの切り替え指示に用いられ、この顔検出ボタン42が押されるたびに顔検出機能のON/OFFが切り替えられる。この顔検出機能がONされると、画面中の人物の顔が検出され、その検出された顔にピントが合わせられるとともに、その顔が適正な明るさになるように露出が設定される。また、本撮影された画像に対して人物画像に適した画像処理が行われる(たとえば、人物の肌がきれいになるように色調整処理や階調補正処理等が行われる。)とともに、顔の検出結果の情報が付加されて、画像がメモリカードに記録される。
なお、電源投入時、顔検出機能は前回終了時の状態に設定される。すなわち、顔検出機能をONに設定したまま電源をOFFすると、次回電源投入時、顔検出機能はONに設定された状態で起動し、顔検出機能をOFFに設定したまま電源をOFFすると、次回電源投入時、顔検出機能はOFFに設定された状態で起動する。
図3は、デジタルカメラ10の電気的構成を示すブロック図である。
同図に示すように、デジタルカメラ10は、CPU110、操作部(シャッタボタン22、モードレバー24、電源ボタン26、ズームボタン30、再生ボタン32、ファンクションボタン34、十字ボタン36、MENU/OKボタン38、DISP/BACKボタン40、顔検出ボタン42等)112、ROM116、フラッシュROM118、メモリ(SDRAM)120、VRAM122、撮影レンズ14、ズーム制御部124、絞り・シャッタ制御部126、フォーカスモータ制御部128、撮像素子134、撮像素子制御部136、アナログ信号処理部138、A/D変換器140、デジタル信号処理部142、AF検出部144、AE/AWB検出部146、圧縮伸張処理部148、メディアコントローラ150、メモリカード(記憶メディア)152、表示制御部154、OSD(On−Screen Display)部156、モニタ28、フラッシュ制御部158、フラッシュ16、顔検出部160等で構成される。
CPU110は、デジタルカメラ10の全体の動作を統括制御する制御手段として機能し、操作部112からの入力に基づき所定の制御プログラムに従って各部を制御する。
バス114を介して接続されたROM116には、このCPU110が実行する制御プログラム及び制御に必要な各種データ等が格納されており、フラッシュROM118には、ユーザ設定情報等のデジタルカメラ10の動作に関する各種設定情報等が格納されている。
メモリ(SDRAM)120は、CPU110の演算作業用領域として利用されるとともに、画像データの一時記憶領域として利用され、VRAM122は、表示用の画像データ専用の一時記憶領域として利用される。
撮影レンズ14は、ズームレンズ14Z、絞り・シャッタユニット14I、フォーカスレンズ14F、赤外線カットフィルタ130、光学ローパスフィルタ132等を含んで構成される。
ズームレンズ14Zは、図示しないズームレンズアクチュエータに駆動されて光軸に沿って前後移動し、これにより、焦点距離が可変する。CPU110は、ズーム制御部124を介してズームレンズアクチュエータの駆動を制御することにより、ズームレンズ14Zの移動を制御し、ズーミングを行う。
フォーカスレンズ14Fは、図示しないフォーカスレンズアクチュエータに駆動されて光軸に沿って前後移動し、これにより、結像位置が変化する。CPU110は、フォーカス制御部128を介してフォーカスレンズアクチュエータの駆動を制御することにより、フォーカスレンズ14Fの移動を制御し、フォーカシングを行う。
絞り・シャッタユニット14Iは、図示しない絞りとメカシャッタを備えている。絞りは、絞り・シャッタユニット14Iに内蔵された図示しない絞りアクチュエータに駆動されて動作し、これにより、撮像素子134への入射光量が調整される。CPU110は、絞り・シャッタ制御部126を介して絞りアクチュエータの駆動を制御することにより、絞りの動作を制御し、撮像素子134への入射光量(絞り値)を制御する。メカシャッタは、絞り・シャッタユニット14Iに内蔵された図示しないシャッタアクチュエータに駆動されて動作し、これにより、撮像素子134の露光/遮光が行われる。CPU110は、絞り・シャッタ制御部126を介してシャッタアクチュエータの駆動を制御することにより、メカシャッタの動作を制御し、撮像素子134の露光/遮光を制御する。
赤外線カットフィルタ130は、撮像素子134に入射する光の内で特定波長域の赤外線をカットして、赤外光によるゴーストやかぶりを防止する。
光学ローパスフィルタ132は、撮像素子134に入射する光の内で高い周波数成分をカットして、偽色や色モアレの発生を防止する。
撮像素子134は、所定のカラーフィルタ配列のカラーCCDやカラーCMOSセンサ等で構成されている。CPU110は、撮像素子駆動部134を介して撮像素子134を駆動し、撮影レンズ14を通して撮像した被写体画像を画像信号として出力させる。
アナログ信号処理部138は、撮像素子134から出力される画像信号を相関二重サンプリング処理するとともに増幅する。
A/D変換器140は、アナログ信号処理部138から出力されたアナログの画像信号をデジタルの画像信号に変換する。
デジタル信号処理部142は、CPU110からの指令に従い、A/D変換器140から出力される画像信号を取り込み、所定の信号処理を施して輝度信号Yと色差信号Cr、CbとからなるY/Cの画像信号を生成する。また、CPU110からの指令に従い、Y/Cの画像信号に色調補正処理、階調補正処理等の各種画像処理を施す。
AF検出部144は、A/D変換器140から出力されるR、G、Bの各色の画像信号を取り込み、AF制御に必要な焦点評価値を算出する。このAF検出部144は、G信号の高周波成分のみを通過させるハイパスフィルタ、絶対値化処理部、画面に設定された所定のフォーカスエリア内の信号を切り出すフォーカスエリア抽出部、及び、フォーカスエリア内の絶対値データを積算する積算部を含み、この積算部で積算されたフォーカスエリア内の絶対値データを焦点評価値としてCPU110に出力する。
CPU110は、AF制御時、このAF検出部144から出力される焦点評価値が極大となる位置をサーチし、その位置にフォーカスレンズ14Fを移動させることにより、主要被写体への焦点合わせを行う。すなわち、CPU110は、AF制御時、まず、フォーカスレンズ14Fを至近から無限遠まで移動させ、その移動過程で逐次AF検出部144から焦点評価値を取得し、その焦点評価値が極大となる位置を検出する。そして、検出された焦点評価値が極大の位置を合焦位置と判定し、その位置にフォーカスレンズ14Fを移動させる。これにより、フォーカスエリアに位置する被写体(主要被写体)にピントが合わせられる。
なお、焦点評価値が極大の位置が検出されない場合(たとえば、低コントラスト時)、CPU110は、AFエラーと判定し、所定の警告を行う(たとえば、モニタ28へのエラーメッセージの表示)。
AE/AWB検出部146は、A/D変換器140から出力されるR、G、Bの各色の画像信号を取り込み、AE制御及びAWB制御に必要な積算値を算出する。すなわち、このAE/AWB検出部146は、一画面を複数のエリア(たとえば、8×8=64エリア)に分割し、分割されたエリアごとにR、G、B信号の積算値を算出する。
CPU110は、AE制御時、このAE/AWB検出部146で算出されたエリアごとのR、G、B信号の積算値を取得し、被写体の明るさ(測光値)を求めて、適正な露光量を得るための露出設定を行う。すなわち、感度、絞り値、シャッタスピード、フラッシュ発光の要否を設定する。
また、CPU110は、AWB制御時、AE/AWB検出部146で算出されたエリアごとのR、G、B信号の積算値をデジタル信号処理部142に加える。デジタル信号処理部142は、得られた積算値に基づいてホワイトバランス調整用のゲイン値を算出するとともに、光源種を検出する。
圧縮伸張処理部148は、CPU110からの指令に従い、入力された画像データに所定形式(たとえば、JPEG形式)の圧縮処理を施し、圧縮画像データを生成する。また、CPU110からの指令に従い、入力された圧縮画像データに所定形式の伸張処理を施し、非圧縮のY/Cの画像データを生成する。
なお、画像をRAWデータとして記録することもでき、この場、圧縮処理は行われずにメモリカード152に記録される。
メディアコントローラ150は、CPU110からの指令に従い、メモリカード152に対してデータの読み/書きを制御する。メモリカード152は、上記のようにカメラ本体に設けられたメディアスロットに着脱自在に装填される。なお、いわゆる内蔵メモリに記録する態様としてもよい。
表示制御部154は、CPU110からの指令に従い、モニタ28への表示を制御する。すなわち、CPU110からの指令に従い、入力された画像信号をモニタ28に表示するための映像信号(たとえば、NTSC信号やPAL信号、SCAM信号)に変換してモニタ28に出力する。また、CPU110からの指令に従い、OSD部156から加えられる文字、図形、記号等のOSD信号を画像信号に混合して、モニタ28に出力する。
OSD部156は、キャラクタジェネレータを含み、CPU110からの指令に従い、モニタ28に表示する文字(警告メッセージや撮影情報(絞り、感度、シャッタ速度等)、撮影日時、撮影可能枚数、ファイル名等)、図形(顔検出枠、撮影補助線)、記号(フォーカスフレーム、電池残量マーク等)等の信号(OSD信号)を生成する。OSD部156で生成されたOSD信号は、表示制御部154に出力され、画像信号に混合されて液晶モニタ28に出力される。これにより、撮影画像や再生画像に文字等が重ねて表示される。
フラッシュ制御部158は、CPU110からの指令に従い、フラッシュ16の発光を制御する。
顔検出部160は、CPU110からの指令に従い、入力された画像データから画像内に含まれる人物の顔と推定される部分(顔候補)を検出する。この検出はパターンマッチングなどの公知の顔認識技術を用いて行われる。
CPU110は、撮影画像上で顔検出部160が、顔検出を行う領域(顔検出領域)を設定する。顔検出部160は、CPU110から指示された顔検出領域を対象に顔検出を行う。顔検出領域に複数の人物が記録されている場合、顔検出部160は、複数の顔候補を個別に検出する。
また、CPU110は、顔検出部160が、検出する顔のサイズ(画素数などで規定)の上限の閾値(顔サイズ上限値)、下限の閾値(顔サイズ下限値)を設定する。顔検出部160は、顔サイズ上限値が設定されると、顔サイズ上限値未満のサイズを有する顔候補を検出し、顔サイズ下限値が設定されると、顔サイズ下限値未満のサイズを有する顔候補を検出する。顔サイズ上限値も顔サイズ下限値も設定されていない場合、顔検出部160は、全てのサイズの顔候補を検出する。
CPU110は、顔検出部160が画像から顔候補を検出すると、その検出の正確さ(いわゆる顔らしさ)を数値化したスコアを算出する。顔候補の検出の正確さを数値化するには、たとえば、検出された顔候補の円形度を用いることができる。なお、人物の顔は、ほぼ楕円形状であるので、抽出された顔候補の円形度が楕円の円形度に近ければ、高いスコアが算出され、楕円の円形度から外れるほど低いスコアが算出される。
CPU110は、算出した顔候補のスコアをスコア閾値と比較し、スコア閾値を超えるスコアの顔候補を人物の顔と認定する。このスコア閾値は、検出された顔候補が実際に人物の顔であるか否かを判定する基準となるものであり、後述するように、撮影状況に応じて異なる値に設定される。すなわち、スルー画像から顔検出を行う場合は、スルー画像用に設定されたスコア閾値が用いられ、本撮影された画像から顔検出を行う場合は、本撮影用に設定されたスコア閾値が用いられる。また、本撮影された画像から顔検出を行う場合において、本撮影直前に顔が検出されていない領域には、本撮影用に設定された第1のスコア閾値が用いられ、本撮影直前に顔が検出されていた領域には、本撮影用に設定された第2のスコア閾値が用いられる。この第2のスコア閾値は、第1のスコア閾値よりも低い値に設定されており、本撮影時に顔が動いたような場合であっても、検出漏れがないようにしている。
CPU110は、顔検出機能がONされると、スルー画像用に撮影された画像信号を顔検出部160に加え、顔の検出処理を行う。そして、顔が検出された場合は、その検出した顔を枠(顔検出枠)で囲ってスルー画像をモニタ28に表示させる。また、シャッタボタンが半押しされた場合は、検出した顔にピントが合うようにAF制御を行うとともに、その顔が適正な明るさになるようにAE制御を行う。
また、シャッタボタン22が全押しされた場合は、本撮影によって得られた画像信号を顔検出部160に加え、顔の検出処理を行う。そして、顔が検出された場合は、人物画像に適した画像処理を行わせる(たとえば、検出した顔の肌がきれいになるように色調整処理や階調補正処理等を行わせる。)。また、その顔の検出結果の情報を画像データに付加してメモリカード152に記録させる。
本実施の形態のデジタルカメラ10は以上のように構成される。
次に、以上のように構成された本実施の形態のデジタルカメラ10による処理動作について説明する。
まず、基本的な撮影、再生の処理動作について説明する。
撮影はデジタルカメラ10のモードを撮影モードに設定することにより行われる。撮影モードの設定は、電源OFFの状態で電源ボタン26を押圧操作することにより、あるいは、再生モードの状態でシャッタボタン22を押圧操作することにより行われる。
デジタルカメラ10のモードが撮影モードに設定されると、まず、撮像素子134で捉えた画像がモニタ28にスルー表示される。すなわち、撮像素子134で連続的に画像が撮像され、その画像が連続的に処理されて、スルー画像用の画像データが生成される。生成された画像データは、VRAM122を介して順次表示制御部154に加えられ、表示用の信号形式に変換されて、モニタ28に出力される。これにより、撮像素子134で捉えた画像がモニタ28にスルー表示される。撮影者は、このモニタ28に表示されたスルー画像を見て構図を決定し、シャッタボタン22を半押しする。
シャッタボタン22が半押しされると、CPU110にS1ON信号が入力される。CPU110は、このS1ON信号の入力に応動して、撮影準備処理、すなわちAE、AF、AWBの各処理を実行する。
まず、撮像素子134から出力された画像信号をアナログ信号処理部138、A/D変換器140を介してAE/AWB検出部146及びAF検出部144に加える。
AE/AWB検出部146は、入力された画像信号からAE制御及びAWB制御に必要な積算値を算出し、CPU110に出力する。CPU110は、このAE/AWB検出部146から得られた積算値に基づき被写体輝度を算出し、適正露出を得るための感度、絞り値、シャッタスピード等を決定する。また、ホワイトバランス補正のためにAE/AWB検出部146から得られた積算値をデジタル信号処理部142に加える。
また、AF検出部144は、入力された画像信号からAF制御に必要な積算値を算出し、CPU110に出力する。CPU110は、このAF検出部144からの出力に基づきフォーカス制御部128介してフォーカスレンズ14Fの移動を制御し、撮影レンズ14の焦点を主要被写体に合わせる。
撮影者は、モニタ28に表示されるスルー画像を見てピント状態等を確認し、撮影実行を指示する。すなわち、シャッタボタン22を全押しする。
シャッタボタン22が全押しされると、CPU110にS2ON信号が入力される。CPU110は、このS2ON信号に応動して、本撮影の処理を実行する。
まず、上記AE制御の結果求めた感度、絞り値、シャッタスピードで撮像素子134を露光し、記録用の画像を撮像する。
撮像素子134から出力された記録用の画像信号は、アナログ信号処理部138、A/D変換器140を介してデジタル信号処理部142に加えられる。デジタル信号処理部142は、入力された画像信号に所定の信号処理を施して、輝度データYと色差データCr、Cbとからなる画像データ(Y/Cデータ)を生成する。
生成された画像データは、圧縮伸張処理部148に加えられ、所定の圧縮処理が施されたのち、メモリ120に格納される。CPU110は、このメモリ120に格納された圧縮画像データに撮影に関する所定の情報を付加し、所定フォーマット(たとえば、Exif形式)の静止画像ファイルとして、メディアコントローラ150を介してメモリカード152に記録する。
なお、Exif形式の画像ファイルは、付属情報を画像ファイルヘッダ部にタグ形式で記録することができるようにされており、その付属情報タグには、バージョンに関する情報や画像データの特性に関する情報、構造に関する情報、ユーザ情報、関連ファイル情報、日時に関する情報、撮影条件に関する情報、IFDへのポインタに関する情報等の撮影した画像に関する撮影データがタグ形式で記録できるようにされている。
ここで、ユーザ情報に関するタグであるメーカノートには、メーカが個別の情報を記入することができるようにされており、また、ユーザコメントには、ユーザがキーワードやコメントを書き込むことができるようにされている。
また、撮影条件に関するタグには、撮影時の露出時間やFナンバー、露出プログラム、スペクトル感度、ISOスピードレート、光電変換関数、シャッタスピード、絞り値、輝度値、露出補正値、レンズ最小F値、被写体距離、測光方式、光源、フラッシュ、レンズ焦点距離、フラッシュ強度、空間周波数応答、焦点面の幅の解像度、焦点面の高さの解像度、焦点面解像度単位、被写体位置、露出インデックス、センサ方式、ファイルソース、シーンタイプ、CFAパターン等が記録できるようにされている。
撮影された画像データは、これらの付属情報が付されたEixf形式の画像ファイルとしてメモリカード152に記録される。
なお、本実施の形態のデジタルカメラ10では、メーカノートに顔検出の結果が記録される。たとえば、検出した顔の数、検出した各顔の位置、大きさ、向き、角度、複数の顔が検出された場合の優先順位(中心に近い順や大きさ順等)等の情報が記録される。
以上のようにしてメモリカード152に記録された画像は、デジタルカメラ10のモードを再生モードに設定することにより、モニタ28に再生表示される。すなわち、再生ボタン32を押圧操作し、デジタルカメラ10のモードが、再生モードに設定されると、CPU110は、メディアコントローラ150を介してメモリカード152に最後に記録された画像ファイルの圧縮画像データを読み出す。
メモリカード152から読み出された圧縮画像データは、圧縮伸張処理部148に加えられ、非圧縮の画像データとされたのちVRAM122に加えられる。そして、VRAM122から表示制御部154を介してモニタ28に出力される。これにより、メモリカード152に記録されている画像が、モニタ28に再生表示される。
画像のコマ送りは、十字ボタン36の右キー及び左キーにて行われ、右キーが押圧操作されると、次の画像がメモリカード152から読み出され、モニタ28に再生表示される。また、左キーが押圧操作されると、一つ前の画像がメモリカード152から読み出され、モニタ28に再生表示される。
また、顔の検出情報が付加されている場合には、必要に応じて、全体画像を表示した後、顔部分を拡大した画像を表示する等の再生処理が行われる。
以上のように、本実施の形態のデジタルカメラ10は、カメラのモードを撮影モードに設定し、シャッタボタン22を全押しすることにより、画像の記録が行われる。そして、記録された画像は、カメラのモードを再生モードに設定することにより、モニタ28に再生表示される。
ところで、上記のように本実施の形態のデジタルカメラ10は、顔検出機能を備えており、顔検出ボタン42を押下することにより、この機能のON/OFFが切り替えられるようにされている。そして、この顔検出機能がONされると、画面中の人物の顔が検出され、その検出された顔にピントが合わせられるとともに、その顔が適正な明るさになるように露出が設定される。また、本撮影された画像から人物の顔が検出され、人物画像に適した画像処理が行われるとともに、顔の検出結果の情報が付加されて、画像がメモリカードに記録される。
顔検出は、上記のように画像から顔候補を検出し、検出された顔候補のスコアを算出し、算出したスコアをスコア閾値と比較し、算出したスコアがスコア閾値を超える顔候補を人物の顔と認定して検出する。
ここで、スコア閾値は、スルー画像から顔を検出する場合と、本撮影された画像から顔を検出する場合とで異なる値に設定される。すなわち、スルー画像から顔検出する場合は、スルー画像用に設定されたスコア閾値が用いられ、本撮影された画像から顔検出する場合は、本撮影用に設定されたスコア閾値が用いられる。この際、本撮影直前に顔が検出されていない領域には、第1のスコア閾値が用いられ、本撮影直前に顔が検出されていた領域には、第1のスコア閾値よりも低い値に設定された第2のスコア閾値が用いられる。
このように、本撮影された画像から人物の顔部分を検出する際、本撮影直前に顔が検出されていた領域には、スコア閾値を低く設定することにより、本撮影時に顔が動いたり、画角が変化したりしたような場合であっても、顔の検出漏れを効果的に防止することができる。すなわち、本撮影直前に顔が検出されていた領域には、本撮影時にも顔が存在している確率がきわめて高いので、スコア閾値を低く設定することにより、顔が動いたり、画角が変わったりしたような場合であっても、精度よく検出することができるようにする。
以下、顔検出機能がONされた時のデジタルカメラの撮影処理動作の手順について説明する。
図5は、顔検出機能がONされた時のデジタルカメラの撮影処理動作の手順を示すフローチャートである。
顔検出機能がONされている場合、CPU110は、スコア閾値にスルー画像用の閾値を設定し(ステップS10)、スルー表示用の画像の取り込みを行う(ステップS11)。
なお、設定すべきスルー画像用のスコア閾値の情報は、ROM116に格納されており、CPU110は、このROM116に格納された情報を読み出してスコア閾値を設定する。他のスコア閾値の情報も同様である。
CPU110は、設定されたスルー画像用のスコア閾値に基づいて取り込んだスルー表示用の画像から顔検出の処理を行う(ステップS12)。そして、その検出結果を表示する(ステップS13)。すなわち、顔が検出された場合には、検出した顔を顔検出枠で囲んでスルー画像をモニタ28に表示する(図4(a)参照)。
この後、CPU110は、操作部112からの入力に基づいてシャッタボタン22が全押しされたか否かを判定する(ステップS14)。そして、シャッタボタン22が全押しされたと判定すると、本撮影の処理を行う(ステップS15)。
なお、シャッタボタン22が全押しされていないと判定した場合は、ステップS11に戻り、再度スルー画像の取り込みを行って(ステップS11)、顔検出の処理を行う(ステップS12)。
本撮影が行われると、本撮影された画像に対する顔検出領域の設定を行う(ステップS16)。すなわち、本撮影直前に取り込まれたスルー画像の顔検出の結果に基づいて第1のスコア閾値を設定する領域と第2のスコア閾値を設定する領域を区分けする。
ここで、第1のスコア閾値を設定する領域は、本撮影直前に取り込まれたスルー画像において、顔が検出されていない領域(以下、「顔なし領域」という)であり、第2のスコア閾値を設定する領域は、本撮影直前に取り込まれたスルー画像において、顔が検出されている領域(以下、「顔あり領域」)である。
たとえば、図4(a)に示すように、撮影直前に取得した画像から二人の人物の顔部分が検出された場合、同図(b)に示すように、人物の顔部分が検出された顔あり領域(図中斜線部)には、第2のスコア閾値が設定され、人物の顔部分が検出されていない顔なし領域(図中斜線部以外の領域)には、第1のスコア閾値が設定される。
CPU110は、本撮影直前に取り込まれたスルー画像の顔検出の結果に基づいて、本撮影された画像を「顔なし領域」と「顔あり領域」とに区分けする。
なお、本撮影直前に取り込まれたスルー画像に顔部分が検出されていない場合には、全領域が「顔なし領域」とされる。
また、このように顔検出領域の設定には、本撮影直前に取り込まれたスルー画像の顔検出の結果が必要になることから、スルー画像の顔検出が行われると、その検出結果がメモリ120に一時的に記録される。このスルー画像の顔の検出結果は、随時最新の検出結果の情報に書き換えられ、最終的に記録されている情報が、本撮影の直前に取り込まれたスルー画像の顔検出の結果となる。
また、「顔あり領域」は、本撮影直前に取り込まれたスルー画像において、検出された顔を囲む領域に設定され、移動を考慮して、検出された顔よりも若干大きい領域に設定される。また、「顔なし領域」は「顔あり領域」以外の領域が設定される。
CPU110は、顔検出領域の設定が完了すると、区分けした各領域に対してスコア閾値を設定する(ステップS17)。すなわち、本撮影直前に顔が検出されていない「顔なし領域」には、第1のスコア閾値を設定し、本撮影直前に顔が検出されている「顔あり領域」には、第2のスコア閾値を設定する。
なお、第1のスコア閾値には、たとえば、スルー画像用のスコア閾値と同じ値の閾値が設定され、第2のスコア閾値は、その第1のスコア閾値よりも所定量低い値の閾値が設定される。
CPU110は、設定されたスコア閾値に基づいて本撮影された画像から顔検出の処理を行う(ステップS18)。すなわち、本撮影された画像から顔候補を検出し、検出された顔候補のスコアを算出する。そして、算出したスコアを検出した領域に応じたスコア閾値と比較し(「顔なし領域」から検出した顔候補の場合は第1の閾値と比較し、「顔あり領域」から検出した顔候補の場合は第2の閾値と比較する)、算出したスコアがスコア閾値を超える顔候補を人物の顔と認定する。
顔の検出処理後、CPU110は、その検出結果を撮影画像とともに表示する(ステップS19)。すなわち、顔が検出された場合には、検出した顔を顔検出枠で囲んで本撮影した画像をモニタ28にプレビュー表示する。
なお、このプレビュー表示には、本撮影した画像をメモリカード152に記録するか否か問い合わせるメッセージが同時に表示される。撮影者は、このメッセージを見て、記録の要否を判断し、操作部112からその判断結果を入力する。たとえば、画像を記録する場合は、MENU/OKボタン38を押し、記録しない場合は、DISP/BACKボタン40を押す。
CPU110は、操作部112からの入力に基づいて本撮影された画像の記録の要否を判定する(ステップS20)。そして、記録すると判定すると、本撮影された画像を圧縮し(RAW記録が選択されている場合は不要)、所定の付属情報を付加して、メモリカード152に記録する(ステップS21)。
このように本実施の形態のデジタルカメラ10では、本撮影された画像から顔を検出するに際して、本撮影直前に顔が検出されていた領域(顔あり領域)には、本撮影直前に顔が検出されていない領域(顔なし領域)よりも低いスコア閾値に設定して顔検出を行う。これにより、本撮影時に顔が動いたり、画角が変わったりしたような場合であっても、顔の検出漏れを防止して、精度よく顔を検出することができるようになる。すなわち、本撮影直前に顔が検出されていた領域には、本撮影時にも顔が存在している確率がきわめて高いので、スコア閾値を低く設定することにより、顔が動いたり、画角が変わったりしたような場合であっても、精度よく検出することができる。
<第2の実施の形態>
上記第1の実施の形態のデジタルカメラでは、本撮影された画像から顔を検出する際、顔あり領域に対して顔なし領域よりも低いスコア閾値を設定することで、顔の検出漏れを防止することとした。
第2の実施の形態のデジタルカメラでは、本撮影された画像から顔を検出する際、顔あり領域(本撮影直前に取り込まれたスルー画像において、顔が検出された領域)のみを顔検出領域に設定することで、顔を高精度かつ高速に検出する。
なお、顔の検出動作が異なるだけで装置構成自体は上記第1の実施の形態のデジタルカメラと同じなので、ここでは装置構成についての説明は省略し、顔検出機能がONされているときの処理動作についてのみ説明する。
図6は、第2の実施の形態のデジタルカメラの撮影処理動作の手順を示すフローチャートである(顔検出機能ON時)。
顔検出機能がONされている場合、CPU110は、スルー表示用の画像の取り込みを行う(ステップS31)。そして、取り込んだスルー表示用の画像から顔検出の処理を行い(ステップS32)、その検出結果を取り込んだ画像とともにモニタ28に表示する(ステップS33)。すなわち、顔が検出された場合には、検出した顔を顔検出枠で囲んでスルー画像をモニタ28に表示する(図4(a)参照)。
なお、この際、顔検出処理は、規定のスコア閾値に基づいて行われ、CPU110は、ROM116に記録された閾値の情報を読み出して、顔検出用のスコア閾値に設定する。
この後、CPU110は、操作部112からの入力に基づいてシャッタボタン22が全押しされたか否かを判定する(ステップS34)。そして、シャッタボタン22が全押しされたと判定すると、本撮影の処理を行う(ステップS35)。
なお、シャッタボタン22が全押しされていないと判定した場合は、ステップS31に戻り、再度スルー画像の取り込みを行って(ステップS31)、顔検出の処理を行う(ステップS32)。
本撮影が行われると、CPU110は、本撮影された画像に対する顔検出領域の設定を行う(ステップS36)。すなわち、本撮影直前に取り込まれたスルー画像の顔検出の結果に基づき、顔部分が検出された領域(顔あり領域)についてのみ顔検出が行われるように顔検出領域を設定する。
たとえば、図4(a)に示すように、本撮影直前に取得した画像から二人の人物の顔部分が検出された場合、同図(b)に示すように、人物の顔部分が検出された顔あり領域(図中斜線部)のみを顔検出領域に設定する(顔なし領域は顔検出領域から除外する)。
なお、本撮影直前に取得した画像から人物の顔部分が検出されていない場合は、全画像領域が顔検出領域に設定される。
顔検出領域の設定後、CPU110は、設定された顔検出領域について本撮影された画像から顔検出の処理を行う(ステップS37)。すなわち、本撮影された画像から顔候補を検出し、検出された顔候補のスコアを算出する。そして、算出したスコアを規定のスコア閾値と比較し、算出したスコアが規定のスコア閾値を超える顔候補を人物の顔と認定する。
顔の検出処理後、CPU110は、その検出結果を撮影画像とともに表示する(ステップS38)。すなわち、顔が検出された場合には、検出した顔を顔検出枠で囲んで本撮影した画像をモニタ28にプレビュー表示する。
このプレビュー表示には、本撮影した画像をメモリカード152に記録するか否か問い合わせるメッセージが同時に表示される。撮影者は、このメッセージを見て、記録の要否を判断し、操作部112からその判断結果を入力する。たとえば、画像を記録する場合は、MENU/OKボタン38を押し、記録しない場合は、DISP/BACKボタン40を押す。
CPU110は、操作部112からの入力に基づいて本撮影された画像の記録の要否を判定する(ステップS39)。そして、記録すると判定すると、本撮影された画像を圧縮し(RAW記録が選択されている場合は不要)、所定の付属情報を付加して、メモリカード152に記録する(ステップS40)。
このように本実施の形態のデジタルカメラ10では、本撮影された画像から顔を検出する際、本撮影直前に顔が検出されていた領域(顔あり領域)のみを対象に顔の検出を行う。これにより、顔の検出処理を高速化することができる。すなわち、本撮影直前に顔が検出されていない領域は、本撮影時にも顔が存在していない確率がきわめて高いので、これを検出対象から除外することにより、顔の検出処理を高速化することができる。
なお、本実施の形態では、スルー表示用の画像から顔を検出する場合のスコア閾値と、本撮影された画像から顔を検出する場合のスコア閾値を同じ値に設定しているが、本撮影された画像から顔を検出する場合のスコア閾値をスルー表示用の画像から顔を検出する場合のスコア閾値よりも低く設定することが好ましい。すなわち、本撮影された画像に対して設定される顔検出領域は、本撮影直前に顔が検出されていた領域であるので、顔が存在している確率が極めて高い。したがって、本撮影された画像から顔検出する場合のスコア閾値を低く設定することにより、顔が動いたり、画角が変わったりしたような場合であっても、精度よく顔部分を検出することができるようになる。これにより、顔部分の検出を高精度かつ高速に行うことができるようになる。
なお、この場合、撮影直前に顔部分が検出されていない場合は、スルー画像用のスコア閾値と同じ閾値を設定して、本撮影された画像から顔検出を行う。
<第3の実施の形態>
カメラの撮影モードとして人物撮影モードを備えているデジタルカメラにおいて、ユーザがカメラの撮影モードを人物撮影モードに設定した場合、被写体に人物が含まれている可能性が極めて高い。
そこで、第3の実施の形態のデジタルカメラでは、ユーザが撮影モードを人物撮影モードに設定した場合、スコア閾値を他の撮影モードの時よりも低く設定して顔検出を行う構成とする。
なお、顔の検出動作が異なるだけで装置構成自体は上記第1の実施の形態のデジタルカメラと同じなので、ここでは装置構成についての説明は省略し、顔検出機能がONされているときのデジタルカメラの処理動作についてのみ説明する。
図7は、第3の実施の形態のデジタルカメラの撮影処理動作の手順を示すフローチャートである(顔検出機能ON時)。
顔検出機能がONされている場合、CPU110は、人物撮影モードに設定されているか否かを判定する(ステップS50)。
ここで、本実施の形態のデジタルカメラでは、メニュー画面で「シーンプログラム撮影モード」の設定を「人物撮影モード」に設定し、モードレバー24を「SP位置」にセットすると、人物撮影モードに設定される。「シーンプログラム撮影モード」の設定状況は、フラッシュROM118に格納されており、CPU110は、このフラッシュROM118に格納された情報と、モードレバー24の設定状況に基づいて現在設定されている撮影モードを判断し、人物撮影モードに設定されているか否かを判定する。
ここで、カメラの撮影モードが人物撮影モードに設定されていると判定すると、CPU110は、顔検出用のスコア閾値に人物撮影モード用のスコア閾値を設定し(ステップS51)、人物撮影モード以外の撮影モードに設定されている場合は、標準のスコア閾値を設定する(ステップS52)。人物撮影モード用のスコア閾値は、標準のスコア閾値よりも低い値に設定されており、双方ともにROM116に格納されている。CPU110は、このROM116に格納されたスコア閾値の情報を読み出して、判定結果に応じたスコア閾値を設定する。
スコア閾値の設定後、CPU110はスルー表示用の画像の取り込みを行い(ステップS53)、取り込んだスルー表示用の画像から顔検出の処理を行う(ステップS54)。
この際、CPU110は、設定されている撮影モードに応じたスコア閾値に基づいて顔検出の処理を行う。すなわち、人物撮影モード以外の撮影モードに設定されている場合は、標準のスコア閾値に基づいて顔検出を行い、人物撮影モードに設定されている場合は、人物撮影モード用のスコア閾値に基づいて顔検出の処理を行う。
そして、その検出結果を取り込んだ画像とともにモニタ28に表示する(ステップS55)。すなわち、顔が検出された場合には、検出した顔を顔検出枠で囲んでスルー画像をモニタ28に表示する(図4(a)参照)。
この後、CPU110は、操作部112からの入力に基づいてシャッタボタン22が全押しされたか否かを判定する(ステップS56)。そして、シャッタボタン22が全押しされたと判定すると、本撮影の処理を行う(ステップS57)。
なお、シャッタボタン22が全押しされていないと判定した場合は、ステップS53に戻り、再度スルー画像の取り込みを行って(ステップS53)、顔検出の処理を行う(ステップS54)。
本撮影が行われると、CPU110は、本撮影された画像から顔検出の処理を行う(ステップS58)。
この際、CPU110は、設定されている撮影モードに応じたスコア閾値に基づいて顔検出の処理を行う。すなわち、人物撮影モードに設定されている場合は、人物撮影モード用のスコア閾値に基づいて顔検出を行い、人物撮影モード以外の撮影モードに設定されている場合は、標準のスコア閾値に基づいて顔検出の処理を行う。
そして、顔の検出処理後、CPU110は、その検出結果を撮影画像とともに表示する(ステップS59)。すなわち、顔が検出された場合には、検出した顔を顔検出枠で囲んで本撮影した画像をモニタ28にプレビュー表示する。
このプレビュー表示には、本撮影した画像をメモリカード152に記録するか否か問い合わせるメッセージが同時に表示される。撮影者は、このメッセージを見て、記録の要否を判断し、操作部112からその判断結果を入力する。たとえば、画像を記録する場合は、MENU/OKボタン38を押し、記録しない場合は、DISP/BACKボタン40を押す。
CPU110は、操作部112からの入力に基づいて本撮影された画像の記録の要否を判定する(ステップS60)。そして、記録すると判定すると、本撮影された画像を圧縮し(RAW記録が選択されている場合は不要)、所定の付属情報を付加して、メモリカード152に記録する(ステップS61)。
このように本実施の形態のデジタルカメラ10では、撮影モードが人物撮影モードに設定されると、顔検出用のスコア閾値を他の撮影モードの時よりも低く設定して顔検出を行う。これにより、安定した顔を行うことができる。すなわち、ユーザが人物撮影モードに設定した場合は、被写体に人物が含まれている確率が極めて高いので、顔検出のスコア閾値を低く設定することにより、誤検出を防止し、安定した顔検出を行うことができる。
なお、本撮影された画像から人物の顔部分を検出する場合、上記第1の実施の形態のデジタルカメラと同様、本撮影直前に人物の顔部分が検出されていない領域には、第1のスコア閾値を設定し(この場合、人物撮影モードに設定されているときは、人物撮影モード用に設定された第1のスコア閾値を設定し、それ以外の撮影モードに設定されているときは、標準用に設定された第1のスコア閾値を設定する。)、本撮影直前に人物の顔部分が検出された領域には、第1のスコア閾値よりも低く設定された第2のスコア閾値を設定して(この場合、人物撮影モードに設定されているときは、人物撮影モード用に設定された第2のスコア閾値を設定し、それ以外の撮影モードに設定されているときは、標準用に設定された第2のスコア閾値を設定する。)、顔検出を行うようにしてもよい。
また、本撮影された画像から人物の顔部分を検出する場合、上記第2の実施の形態のデジタルカメラと同様、本撮影直前に人物の顔部分が検出されていない領域を顔検出領域から除外し、本撮影直前に人物の顔部分が検出されている領域のみを検出対象領域として、顔検出を行うようにしてもよい。更に、この場合において、スコア閾値をスルー画像から顔部分を検出する場合よりも低く設定してもよい。
<第4の実施の形態>
上述した第1の実施の形態のデジタルカメラでは、フラッシュモードとして、二枚撮りモードが用意されており、二枚撮りモードが選択された場合には、1回の記録指示でフラッシュON画像(フラッシュを発光させて撮影した画像)と、フラッシュOFF画像(フラッシュを発光させないで撮影した画像)の二枚の画像が撮影される。
このように二枚撮りモードで撮影されたフラッシュON画像とフラッシュOFF画像から人物の顔部分を検出する場合、明るさの違いなどから、フラッシュON画像では顔が検出されているにもかかわらず、フラッシュOFF画像では顔が検出されないという事態が生じ得る。
そこで、二枚撮りモードでフラッシュON画像とフラッシュOFF画像を撮影した場合には、安定した顔検出を行うことができるフラッシュON画像についてのみ顔検出を行い、その結果をフラッシュOFF画像についても記録するように構成する。
すなわち、両者は同じ被写体が撮影されているので、検出される顔の位置、大きさ、向き等は同じと考えられるので、安定した顔検出を行うことができるフラッシュON画像についてのみ顔検出を行い、その結果を双方の画像に記録するようにする。
なお、顔の検出動作が異なるだけで装置構成自体は上記第1の実施の形態のデジタルカメラと同じなので、ここでは装置構成についての説明は省略し、顔検出機能がONされているときのデジタルカメラの処理動作についてのみ説明する。
図8は、第4の実施の形態のデジタルカメラの撮影処理動作の手順を示すフローチャートである(顔検出機能ON時)。
顔検出機能がONされている場合、CPU110は、スルー表示用の画像の取り込みを行い(ステップS70)、取り込んだスルー表示用の画像から顔検出の処理を行う(ステップS71)。そして、その検出結果を取り込んだ画像とともにモニタ28に表示する(ステップS72)。
この後、CPU110は、操作部112からの入力に基づいてシャッタボタン22が全押しされたか否かを判定する(ステップS73)。そして、シャッタボタン22が全押しされたと判定すると、本撮影の処理を行う(ステップS74)。
なお、二枚撮りモードに設定されている場合には、この本撮影の指示(記録指示)に応じてフラッシュON画像とフラッシュOFF画像の二枚の画像を撮影する。
また、シャッタボタン22が全押しされていないと判定した場合は、ステップS70に戻り、再度スルー画像の取り込みを行って(ステップS70)、顔検出の処理を行う(ステップS71)。
本撮影が行われると、CPU110は、二枚撮りモードで撮影されたか否かを判定する(ステップS75)。
ここで、二枚撮りモードで撮影されていないと判定すると、本撮影された画像から顔検出の処理を行い(ステップS78)、その検出結果を撮影画像とともに表示する(ステップS79)。
一方、二枚撮りモードで撮影されていると判定すると、CPU110は、フラッシュON画像に対して顔検出の処理を行う(ステップS76)。そして、そのフラッシュON画像に対する顔検出の結果を双方の撮影画像に反映させてモニタにプレビュー表示する(ステップS79)。たとえば、図9に示すように、フラッシュON画像とフラッシュOFF画像とをモニタ28に並列して表示するとともに、フラッシュON画像で検出された顔部分を顔検出枠で囲んで表示する。
なお、フラッシュOFF画像については、顔の検出処理を行っていないので、フラッシュON画像で検出された顔部分に対応する部分に顔検出枠を表示させる。このように表示した場合であっても、双方の画像はほぼ一致しているものと考えられるので問題はない(フラッシュON画像とフラッシュOFF画像は順番に撮影されるが、そのタイムラグはほとんどないので、両者は、ほぼ同じ画像といえる)。
なお、このプレビュー表示には、図9に示すように、本撮影した画像をメモリカード152に記録するか否か問い合わせるメッセージが同時に表示される。撮影者は、このメッセージを見て、記録の要否を判断し、操作部112からその判断結果を入力する。
CPU110は、操作部112からの入力に基づいて本撮影された画像の記録の要否を判定する(ステップS80)。そして、記録すると判定すると、本撮影された画像を圧縮し(RAW記録が選択されている場合は不要)、所定の付属情報を付加して、メモリカード152に記録する(ステップS81)。
この際、フラッシュOFF画像については、顔検出の処理を行っていないので、フラッシュON画像について行った顔検出の処理の結果を付加してメモリカード152に記録する。
このように本実施の形態のデジタルカメラ10では、二枚撮りモードで画像を撮影した場合、フラッシュON画像についてのみ顔検出を行う。そして、その結果をフラッシュOFF画像に反映させる。これにより、安定した顔検出を行うことができる。
なお、本撮影された画像から人物の顔部分を検出する場合、上記第1の実施の形態のデジタルカメラと同様、本撮影直前に人物の顔部分が検出されていない領域には、第1のスコア閾値を設定し、本撮影直前に人物の顔部分が検出された領域には、第1のスコア閾値よりも低く設定された第2のスコア閾値を設定して、顔検出を行うようにしてもよい。
また、本撮影された画像から人物の顔部分を検出する場合、上記第2の実施の形態のデジタルカメラと同様、本撮影直前に人物の顔部分が検出されていない領域を顔検出領域から除外し、本撮影直前に人物の顔部分が検出されている領域のみを検出対象領域として、顔検出を行うようにしてもよい。更に、この場合において、スコア閾値を低く設定するようにしてもよい。
<第5の実施の形態>
上述した第4の実施の形態のデジタルカメラでは、二枚撮りモードで撮影された画像から人物の顔部分を検出する場合、フラッシュON画像についてのみ顔検出を行い、その結果をフラッシュOFF画像に反映させる構成としていた。
本実施の形態のデジタルカメラでは、二枚撮りモードで撮影された画像から人物の顔部分を検出する場合、フラッシュON画像とフラッシュOFF画像の双方について顔検出を行い、その結果を足し合わせたものを顔の検出結果とする。
なお、装置構成自体は上記第1の実施の形態のデジタルカメラと同じなので、ここでは装置構成についての説明は省略し、顔検出機能がONされているときのデジタルカメラの処理動作についてのみ説明する。
図10は、第5の実施の形態のデジタルカメラの撮影処理動作の手順を示すフローチャートである(顔検出機能ON時)。
顔検出機能がONされている場合、CPU110は、スルー表示用の画像の取り込みを行い(ステップS90)、取り込んだスルー表示用の画像から顔検出の処理を行う(ステップS91)。そして、その検出結果を取り込んだ画像とともにモニタ28に表示する(ステップS92)。
この後、CPU110は、操作部112からの入力に基づいてシャッタボタン22が全押しされたか否かを判定する(ステップS93)。そして、シャッタボタン22が全押しされたと判定すると、本撮影の処理を行う(ステップS94)。
なお、二枚撮りモードに設定されている場合には、この本撮影の指示(記録指示)に応じてフラッシュON画像とフラッシュOFF画像の二枚の画像を撮影する。
また、シャッタボタン22が全押しされていないと判定した場合は、ステップS70に戻り、再度スルー画像の取り込みを行って(ステップS90)、顔検出の処理を行う(ステップS91)。
本撮影が行われると、CPU110は、二枚撮りモードで撮影されたか否かを判定する(ステップS95)。
ここで、二枚撮りモードで撮影されていないと判定すると、本撮影された画像から顔検出の処理を行い(ステップS96)、その検出結果を撮影画像とともに表示する(ステップS97)。
一方、二枚撮りモードで撮影されていると判定すると、CPU110は、まず、フラッシュON画像に対して顔検出の処理を行う(ステップS98)。次いで、フラッシュOFF画像に対して顔検出の処理を行う(ステップS99)。
なお、この検出処理の順番は、これに限定されるものではなく、先にフラッシュOFF画像に対して顔検出の処理を行い、次に、フラッシュON画像に太子って顔検出の処理を行うようにしてもよい。また、撮影した順番に顔の検出処理を行うようにしてもよい。すなわち、先にフラッシュON画像を撮影した場合には、先にフラッシュON画像に対して顔の検出処理を行い、先にフラッシュOFF画像を撮影した場合には、先にフラッシュOFF画像に対して顔検出の処理を行うようにしてもよい。
双方の顔検出の処理が終了すると、CPU110は、双方の顔検出の結果を足し合わせ、顔検出の結果を生成する(ステップS100)。すなわち、フラッシュON画像に対する顔検出の結果とフラッシュOFF画像に対する顔検出の結果の論理和(OR)を取り、これを顔の検出結果とする。
たとえば、図11に示すように、三人の人物A、B、Cを撮影した場合において、フラッシュON画像(同図(a))では、人物A、Bが検出され、フラッシュOFF画像(同図(b))では、人物B、Cが検出された場合、双方の検出結果の論理和を取り、これを顔の検出結果とする。これにより、同図(c)に示すように、一方の画像では、検出されるが、他方の画像では検出されないという不具合を防止でき、安定した人物の顔検出を行うことができる。
また、このように双方の顔検出の結果と足し合わせて顔の検出結果としても、フラッシュON画像とフラッシュOFF画像は、ほぼ同じ画像と考えられるので、問題が生じることはない。
双方の顔検出の結果を足し合わせて顔検出の結果を生成すると、CPU110は、その生成した顔検出の結果を双方の撮影画像に反映させてモニタにプレビュー表示する(ステップS101)(図9参照)。
なお、このプレビュー表示には、本撮影した画像をメモリカード152に記録するか否か問い合わせるメッセージが同時に表示される。撮影者は、このメッセージを見て、記録の要否を判断し、操作部112からその判断結果を入力する。
CPU110は、操作部112からの入力に基づいて本撮影された画像の記録の要否を判定する(ステップS102)。そして、記録すると判定すると、本撮影された画像を圧縮し(RAW記録が選択されている場合は不要)、所定の付属情報を付加して、メモリカード152に記録する(ステップS103)。
この際、フラッシュON画像とフラッシュOFF画像の双方について、ステップS100で生成した顔検出の処理の結果を付加してメモリカード152に記録する。
このように本実施の形態のデジタルカメラ10では、二枚撮りモードで画像を撮影した場合、フラッシュON画像とフラッシュOFF画像の双方について顔検出を行い、その双方の顔検出の結果を足し合わせたものを顔の検出結果とする。これにより、一方の画像では顔が検出されるが、他方の画像では顔が検出されないという不具合を防止でき、安定した顔検出を行うことができる。
なお、本撮影された画像から人物の顔部分を検出する場合、上記第1の実施の形態のデジタルカメラと同様、本撮影直前に人物の顔部分が検出されていない領域には、第1のスコア閾値を設定し、本撮影直前に人物の顔部分が検出された領域には、第1のスコア閾値よりも低く設定された第2のスコア閾値を設定して、顔検出を行うようにしてもよい。
また、本撮影された画像から人物の顔部分を検出する場合、上記第2の実施の形態のデジタルカメラと同様、本撮影直前に人物の顔部分が検出されていない領域を顔検出領域から除外し、本撮影直前に人物の顔部分が検出されている領域のみを検出対象領域として、顔検出を行うようにしてもよい。更に、この場合において、スコア閾値を低く設定するようにしてもよい。
<第6の実施の形態>
上述したように、顔検出機能を有するデジタルカメラでは、顔検出機能がONされて、撮影画像から人物の顔が検出されると、人物撮影に適した画像処理が行われて、撮影画像が記録される。たとえば、暗く撮影された画像に対しては、人物の肌が明るくきれいに写るように、適度な階調補正処理が行われる。
しかしながら、階調補正処理が過度に行われると、ノイズ成分が目立つようになり、画像が破綻する問題がある。
一方、二枚撮りモードで撮影した場合には、フラッシュON画像とフラッシュOFF画像の二枚の画像が撮影されており、そのうちフラッシュON画像は、適正な明るさで撮影されていることが期待できる。
そこで、本実施の形態のデジタルカメラでは、二枚撮りモードで撮影した場合、フラッシュOFF画像については、階調補正処理は行わず、ノイズ増大による画像の破綻を防止する。
なお、装置構成自体は上記第1の実施の形態のデジタルカメラと同じなので、ここでは装置構成についての説明は省略し、顔検出機能がONされているときのデジタルカメラの処理動作についてのみ説明する。
図12は、第6の実施の形態のデジタルカメラの撮影処理動作の手順を示すフローチャートである(顔検出機能ON時)。
顔検出機能がONされている場合、CPU110は、スルー表示用の画像の取り込みを行い(ステップS110)、取り込んだスルー表示用の画像から顔検出の処理を行う(ステップS111)。そして、その検出結果を取り込んだ画像とともにモニタ28に表示する(ステップS112)。
この後、CPU110は、操作部112からの入力に基づいてシャッタボタン22が全押しされたか否かを判定する(ステップS113)。そして、シャッタボタン22が全押しされたと判定すると、本撮影の処理を行う(ステップS114)。
なお、二枚撮りモードに設定されている場合には、この本撮影の指示(記録指示)に応じてフラッシュON画像とフラッシュOFF画像の二枚の画像を撮影する。
また、シャッタボタン22が全押しされていないと判定した場合は、ステップS70に戻り、再度スルー画像の取り込みを行って(ステップS110)、顔検出の処理を行う(ステップS111)。
本撮影が行われると、CPU110は、二枚撮りモードで撮影されたか否かを判定する(ステップS115)。
ここで、二枚撮りモードで撮影されていないと判定すると、本撮影された画像から顔検出の処理を行う(ステップS116)。そして、顔が検出されたか否か判定し(ステップS117)、顔が検出された場合は、人物に適した画像となるように画像処理(たとえば、人物の肌がきれいになるように色調整処理や階調補正処理等)を行う。
この後、CPU110は、撮影した画像を顔検出の検出結果とともにモニタ28に表示する(ステップS118)。すなわち、顔が検出されている場合は、検出した顔を顔検出枠で囲って撮影した画像をモニタ28に表示する(図4(a)参照)。
一方、ステップS115において、二枚撮りモードで撮影されていると判定すると、CPU110は、撮影されたフラッシュON画像とフラッシュOFF画像の双方の画像について、それぞれ顔検出の処理を行う(ステップS120)。
双方の画像に対する顔検出の処理が終了すると、CPU110は、フラッシュON画像に対する顔検出の結果に基づき、フラッシュON画像に顔が検出されているか否か判定する(ステップS121)。
ここで、フラッシュON画像に顔が検出されていると判定すると、CPU110は、フラッシュON画像に対して人物に適した画像となるように画像処理を行う(ステップS122)。
この後、CPU110は、撮影した画像を顔検出の検出結果とともにモニタ28に表示する(ステップS118)。すなわち、図9に示すように、フラッシュON画像とフラッシュOFF画像の双方の画像をモニタ28に並べて表示するとともに、顔が検出されている場合は、検出した顔を顔検出枠で囲って撮影した画像をモニタ28にプレビュー表示する。
なお、このプレビュー表示には、本撮影した画像をメモリカード152に記録するか否か問い合わせるメッセージが同時に表示される。撮影者は、このメッセージを見て、記録の要否を判断し、操作部112からその判断結果を入力する。
CPU110は、操作部112からの入力に基づいて本撮影された画像の記録の要否を判定する(ステップS124)。そして、記録すると判定すると、本撮影された画像を圧縮し(RAW記録が選択されている場合は不要)、所定の付属情報を付加して、メモリカード152に記録する(ステップS125)。
この際、フラッシュON画像とフラッシュOFF画像の双方について、顔検出の処理の結果を付加してメモリカード152に記録する。
このように本実施の形態のデジタルカメラ10では、二枚撮りモードで画像を撮影した場合において、人物の顔が検出された場合、フラッシュON画像についてのみ人物撮影に適した画像処理を行って画像をメモリカード152に記録する。これにより、フラッシュOFF画像に対して過度な階調補正処理がなされて、画像が破綻するのを有効に防止することができる。
なお、本実施の形態では、二枚撮りモードで画像を撮影した場合において、人物の顔が検出された場合、フラッシュOFF画像に対する画像処理を禁止しているが、画像処理をまったく行わないのではなく、階調補正のみを禁止するようにしてもよい。また、階調補正処理もまったく行わないのではなく、通常よりも補正量を弱めて実施するようにしてもよい。
また、本撮影された画像から人物の顔部分を検出する場合、上記第1の実施の形態のデジタルカメラと同様、本撮影直前に人物の顔部分が検出されていない領域には、第1のスコア閾値を設定し、本撮影直前に人物の顔部分が検出された領域には、第1のスコア閾値よりも低く設定された第2のスコア閾値を設定して、顔検出を行うようにしてもよい。
また、本撮影された画像から人物の顔部分を検出する場合、上記第2の実施の形態のデジタルカメラと同様、本撮影直前に人物の顔部分が検出されていない領域を顔検出領域から除外し、本撮影直前に人物の顔部分が検出されている領域のみを検出対象領域として、顔検出を行うようにしてもよい。更に、この場合において、スコア閾値を低く設定するようにしてもよい。
また、上記第3の実施の形態のデジタルカメラと同様、人物撮影モードに設定した時は人物撮影モード用のスコア閾値に基づいて顔検出を行うようにしてもよい。
さらに、上記第4の実施の形態のデジタルカメラと同様に、二枚撮りモードで撮影された画像から人物の顔部分を検出する場合、フラッシュON画像についてのみ顔検出を行い、その結果をフラッシュOFF画像に反映させる構成としてもよい。
また、上記第5の実施の形態のデジタルカメラと同様に、二枚撮りモードで撮影された画像から人物の顔部分を検出する場合、フラッシュON画像とフラッシュOFF画像の双方について顔検出を行い、その結果を足し合わせたものを顔の検出結果として利用するようにしてもよい。
なお、上述した一連の実施の形態では、本撮影前にモニタ28にスルー画像を表示させる構成としているが、必要に応じてスルー画像の表示をON/OFFできるようにしてもよい。なお、スルー画像の表示をOFFした場合でも画像の取り込みは行い、随時顔検出を行うものとする。
また、上述した一連の実施の形態では、本撮影された画像をモニタ28にプレビュー表示し、ユーザの記録指示に応じて撮影した画像をメモリカード152に記録する構成としているが、撮影した画像を自動的にメモリカード152に記録する構成としてもよい。また、プレビュー画像を一定時間表示後、撮影した画像を自動的にメモリカード152に記録する構成としてもよい。また、これらの記録態様をユーザが任意に選択できるようにしてもよい。
また、上述した一連の実施の形態では、顔検出機能のON/OFFを任意に設定できるようにしているが、常に顔検出機能をONする構成としてもよい。
また、上述したデジタルカメラでは、顔検出部を専用のハードウェア回路にて構成しているが、ソフトウェア処理にて同様の機能を実現するようにしてもよい。
また、上述した実施の形態では、本発明をデジタルカメラに適用した場合を例に説明したが、本発明の適用は、これに限定されるものではなく、顔検出機能を備えた撮影装置すべてに適用することができる。たとえば、顔検出機能を備えたカメラ付きの携帯電話機やビデオカメラ等にも同様に適用することができる。