以下に説明するデジタルカメラにおいては、非撮影時に取り込まれるスルー画像を用いて人物の顔を検出した後、検出された顔の領域(以下、顔領域)をAFエリアとして設定する。このAFエリアが設定された後、新たに取り込まれるスルー画像から顔が検出された場合には、AFエリアとして設定された顔領域と、該AFエリアとして設定された顔領域を除く顔領域とを比較することで、現在のAFエリアを維持するか、AFエリアを再設定するかが決定される。なお、スルー画像から検出される顔は、撮影範囲に基づいた画像における特徴を示すものである。
以下、顔領域の大きさを用いて比較する実施形態を、第1の実施形態として説明する。
図1は、第1の実施形態のデジタルカメラの構成を示す機能ブロック図である。デジタルカメラ10は、周知のように、撮像光学系15によって取り込まれた被写体光を撮像素子16によって光電変換し、光電変換後の電気信号(画像信号)から画像データを取得する。
撮像光学系15は、ズームレンズやフォーカスレンズなどを含むレンズ群から構成される。レンズ群に含まれるズームレンズは選択された撮影倍率となるように光軸Lに沿って移動する。また、フォーカスレンズは被写体画像の焦点調節の際に光軸Lに沿って微小移動する。なお、このレンズ群は、レンズ駆動機構17によって駆動制御される。
撮像素子16は、例えばCCD(Charge Coupled Device)やCMOS(Complementary Metal−Oxide Semiconductor)などから構成される。撮像素子16は、撮像光学系15によって取り込まれる被写体光を受光し、受光した光量を信号電荷に変換(光電変換)して、変換した信号電荷を蓄積する。その後、撮像素子16にて蓄積された信号電荷は、AFE(Analog Front End)回路20に出力される。
ドライバ18は、撮像素子16の駆動を制御する。なお、撮像素子16の駆動を制御するとは、撮像素子16の各画素(実際には光電変換部)における信号電荷の蓄積、及び蓄積された信号電荷の出力を制御することが挙げられる。以下、撮像素子16から出力される信号電荷を画像信号と称して説明する。また、この他に、ドライバ18は、撮像素子16の全画素を駆動するか、一部の画素を駆動するかを制御する。つまり、撮影時には撮像素子16の全画素を駆動させることにより画像信号を取得し、非撮影時には撮像素子16の一部の画素を選択的に用いる、所謂間引き制御により画像信号を取得する。
AFE回路20は、図示しないAGC回路やCDS回路を含んで構成される。AFE回路20は、入力された画像信号に対してゲインコントロール、雑音除去などのアナログ処理を施す。このアナログ処理が施された画像信号は、DFE回路21に出力される。
DFE(Digital Front End)回路21は、AFE回路20によってアナログ処理が施された画像信号をデジタル信号に変換する。デジタル信号に変換された画像信号は1コマ毎にまとめられ、画像データとしてバッファメモリ23に記録される。符号22は、タイミングジェネレータ(TG)であり、このTG22により、ドライバ18、AFE回路20及びDFE回路21の駆動タイミングが制御される。
画像処理回路24は、バッファメモリ23に記憶された画像データに対して、ホワイトバランス処理(以下、WB処理)、輪郭補償処理、ガンマ処理などの画像処理を施す。例えばバッファメモリ23に記憶された画像データが、撮影時に得られる画像信号に基づく画像データである場合には、画像処理回路24は、上述した画像処理後の画像データに対して、例えばJPEG方式などの記憶方式で圧縮するためのフォーマット処理(画像後処理)を施す。この処理の後、画像処理回路24は、サムネイル画像データや、予め設定された圧縮率を用いて圧縮されたJPEG方式の圧縮画像データを生成する。これら画像データは、一旦内蔵メモリ34に記憶される他に、デジタルカメラ10の機種情報や、撮影時の撮影情報などを付帯情報とした画像ファイルとして、メモリーカード、磁気ディスク及び光学ディスクなどの記憶媒体35に書き込まれる。なお、符号36はメディアスロットである。
一方、バッファメモリ23に記憶された画像データが、撮像素子16が間引き制御されることで得られる画像信号に基づいた画像データ(以下、スルー画像データ)である場合には、上述した画像処理が施されたスルー画像データはCPU40を介して表示制御回路31に出力される。なお、非撮影時には、上述した撮像素子16は所定間隔で画像信号を出力することから、バッファメモリ23には、順次スルー画像データが記憶される。上述した画像処理は、バッファメモリ23にスルー画像データが記憶される度に実行される。
スルー画像データは、後述するCPU40を介して、表示制御回路31に出力される。表示制御回路31は所定間隔毎に入力されるスルー画像データを用いてLCD32の駆動制御、つまり、スルー画像データに基づく画像(以下、スルー画像MI1)がLCD32に順次表示される。これにより、ライブビュー表示がLCD32にて実行される。
CPU40は、デジタルカメラ10の各部を統括的に制御する。このCPU40は図示を省略した制御プログラムを読み出すことで、制御部41、顔検出部42、比較部43、設定部44及びAF処理部45等の機能を実行する。制御部41は、デジタルカメラ10における基本動作を制御する他に、顔検出部42、比較部43、設定部44及びAF処理部45の機能を制御する。
顔検出部42は、画像処理されたスルー画像データがCPU40に入力される度に、スルー画像データを用いた顔検出を行う。この顔検出部42における顔検出としては、例えば特徴量抽出による顔検出が挙げられる。なお、特徴量抽出については、周知であることから、ここではその詳細を省略するが、目、鼻、口などの特徴量を求めることで、画像中に含まれる顔を検出するものである。なお、この特徴量抽出により顔が検出されると、顔検出部42は、顔領域の大きさやスルー画像MI1における位置等を求める。ここで示すスルー画像MI1における位置とは、スルー画像MI1の中心を基準としたときの顔領域の中心の位置である。顔検出部42により顔検出が行われると、顔検出部42は内蔵メモリ34に記憶される検出履歴情報を更新する。なお、検出履歴情報は、過去複数回実行された顔検出の結果をまとめた情報からなり、スルー画像データに基づく顔検出が実行される毎に、検出履歴情報のうち、最も古い検出結果が削除され、最も新しい検出結果が加えられていく。
上述したように、非撮影時には撮像素子16によってスルー画像データが順次取得されることから、顔検出部42は、上述した顔検出の際に、検出された顔が過去に検出されている顔であるか、過去のスルー画像データにおいて未検出、つまり新たな顔であるかを判定する。顔検出部42は顔が検出されると、検出された顔の特徴量と内蔵メモリ34に特徴量情報として記憶された特徴量とを比較する。
例えばスルー画像データを用いた顔検出を初めて実行する場合には、内蔵メモリ34には特徴量情報は記憶されていないことから、この場合には、スルー画像データから検出される顔の特徴量を特徴量情報として内蔵メモリ34に記憶する。
一方、スルー画像データを用いた顔検出が過去に実行されている場合には、特徴量情報が内蔵メモリ34に記憶されている。顔検出部42は、スルー画像データから検出された顔の特徴量と、内蔵メモリ34に記憶された特徴量情報とを比較する。この比較によりスルー画像データから検出された顔の特徴量が特徴量情報と一致する場合には、その顔は過去に検出された顔であると判定される。この場合、特徴量が一致している場合であっても顔領域の大きさや位置が変化しているときには、特徴量情報を書き換える。これにより、撮影範囲に含まれる被写体の顔が撮影範囲内で移動した場合であっても、その顔を追尾することが可能となる。一方、スルー画像データから検出される顔の特徴量と特徴量情報とが一致しない場合には、新たに検出された顔であると判定する。この場合、新たに検出された顔であると判定された顔の特徴量と、顔領域の大きさや撮影範囲における位置とをまとめて特徴量情報を作成し、内蔵メモリ34に書き込む。
比較部43は、フラグがセットされた状態、つまり、AFエリアが設定された後に取り込まれるスルー画像データから顔が検出された場合に実行される機能である。比較部43は、スルー画像MI1から特定される顔領域のうち、AFエリアとして設定された顔領域を除いた顔領域の中で最も大きい顔領域と、AFエリアとして設定された顔領域とを比較する。この比較としては、AFエリアとして設定される顔領域の大きさに対する、AFエリアが設定された後のスルー画像MI1から特定される顔領域からAFエリアとして設定された顔領域を除いた顔領域の中で最も大きい顔領域との比(以下、顔サイズ比Raと称する)を求めるものとして説明する。
この比較部43により顔サイズ比Raが求められると、制御部41によりAFエリアを再設定するか否かが判定される。詳細には、制御部41は、後述する比較部43によって求められた顔サイズ比RaがAFエリアの再設定を行う条件を満たしているか否かによってAFエリアを再設定するか否かを判定する。例えば顔サイズ比Raが予め設定された閾値未満となる場合には、制御部41はAFエリアの再設定を行わないと判定する。
一方、顔サイズ比Raが閾値以上となる場合には、制御部41は、AFエリアを再設定すると判定する。このような場合には、制御部41は、設定部44にAFエリアの再設定を指示する。設定部44は、内蔵メモリ34に記憶された設定情報を読み出し、該設定情報に含まれているAFエリアの情報を再設定する。この場合、既にフラグがセットされていることから、この場合には、設定部44は、フラグがセットされているかを確認するだけで、フラグの更新は行わない。
なお、閾値は、上述した顔検出部42における顔検出の方法や、その精度に準じて設定されるものであり、例えば1.1以上(好ましくは1.1〜1.5)に設定されることが好ましい。この閾値は、上述した顔検出部42における顔検出の方法やその精度に準じて設定されるものである。つまり、顔検出の方法やその精度によっては、AFエリアとして設定される顔領域の大きさと近似する顔領域が検出された場合に、カメラの位置や被写体の位置が少しでもずれただけでも、AFエリアとして設定される顔領域が切り替わってしまう。このため、閾値は、このようなAFエリアの切り替わりが頻繁に行われないような値に設定されていればよい。
設定部44は、オートフォーカス(AF)調節時に用いる領域、所謂AFエリアを設定する。図2(a)に示すように、例えばAFエリアが設定されていないときに、スルー画像MI1から単一の顔が検出された場合には、設定部44は、検出された顔領域(図2(a)中符号55で示すハッチング領域)をAFエリアとして設定する。設定部44は、AFエリアを設定したときに、設定されるAFエリアを示す設定情報を内蔵メモリ34に書き込む。なお、この設定情報としては、例えばAFエリアとして設定される顔領域の位置や大きさを示す情報からなる。この場合、LCD32に表示されるスルー画像MI1には、AFエリアを示すAF枠56が重畳される(図2(b)参照)。このAF枠56は、正方形の枠と、外枠の内側の四隅に隅括弧とから構成される。なお、図示は省略するが、AFエリアが設定されていないときに、顔検出部42によってスルー画像MI1から複数の顔が検出される場合には、設定部44は内蔵メモリ34に記憶される特徴量情報を参照して、検出された顔に基づく顔領域のうち、顔領域の大きさが最大となる顔領域をAFエリアとして設定する。
一方、既にAFエリアが設定されている場合には、上述した比較部43により算出される顔サイズ比Raに基づいてAFエリアを再設定するか否かが制御部41によって判定される。図3(a)に示すように、AFエリアとして顔領域55が設定された後に取り込まれるスルー画像データから新たな顔領域60が検出された場合には、上述した比較部43によって、これら顔領域の顔サイズ比Raが算出される。制御部41は、算出される顔サイズ比Raに基づいて、再設定を行うか否かを判定する。
例えば顔サイズ比Raが閾値以上となる場合には、制御部41は再設定を行うと判定するので、制御部41からAFエリアを再設定する旨の信号が設定部44に出力される。この信号を受けて、設定部44は、新たな顔領域をAFエリアとして設定する。つまり、新たに検出された顔領域60とAFエリアとして設定された顔領域55とから算出される顔サイズ比Raが閾値以上となれば、顔領域60がAFエリアとして設定される。この設定時に、内蔵メモリ34に記憶された設定情報が更新される。これにより、AFエリアが再設定される。つまり、LCD32に表示されるスルー画像MI1には、顔領域55に対しては、AF枠から顔領域を示すエリア枠59に切り替わり、顔領域60に対しては、エリア枠59からAF枠59に切り替わる(図3(b)参照)。
設定部44は、設定されたAFエリアに対する表示が行われると、内蔵メモリ34に記憶されるフラグをセットする。このフラグは、スルー画像データから顔が検出されたか否かを示すものであり、スルー画像データから顔が検出された場合には「1」となり、顔が検出されない場合には「0」となる。なお、フラグが「1」となる場合を、「フラグがセットされる」と称し、フラグが「0」となる場合を「フラグがリセットされる」と称して説明する。一方、フラグがリセットされたときには、設定部44は、内蔵メモリ34に記憶された設定情報を初期化する。
AF処理部45は、例えばレリーズボタン51の操作を受けてAF調節を実行する。例えば設定部44によって検出された顔に基づく顔領域がAFエリアとして設定されている場合には、AFエリアとして設定された顔領域を用いてAF処理を実行する。一方、AFエリアとしてスルー画像MI1の中央の領域が仮設定されている場合には、設定部44は、仮設定されたスルー画像MI1の中央の領域をAFエリアとして設定し、スルー画像MI1の中央の領域を用いてAF処理を実行する。ここで、スルー画像MI1の中央の領域がAF領域として仮設定される場合としては、内蔵メモリ34に記憶された検出履歴情報から、顔が検出されていない状態が所定期間継続されていると制御部41が判定した場合である。なお、AF処理としては、設定されたAFエリアにおける画像の鮮鋭度を示す焦点評価値を求め、この焦点評価値が最大となるように、フォーカスレンズを光軸L方向に移動させる処理である。
次に、AFエリアを設定する際の手順を図4のフローチャートに基づいて説明する。なお、このフローチャートは、スルー画像MI1を表示する処理が開始されたことを契機にして実行される。
ステップS101は、フラグをリセットする処理である。新たにスルー画像MI1を表示する処理が実行されるときには、過去に実行されたスルー画像MI1の表示の際に用いたフラグ等は必要としないことから、設定部44は、内蔵メモリ34に記憶されているフラグをリセットする。このフラグのリセットに合わせて、内蔵メモリ34に記憶された設定情報や、特徴量情報が初期化される。
ステップS102は、顔検出を行う処理である。撮像素子16によってスルー画像データが取り込まれていることから、顔検出部42は、スルー画像データを用いて顔を検出する。顔検出部42は、顔検出の結果を、検出履歴情報として内蔵メモリ34に記憶する。顔が検出されると、顔検出部42は内蔵メモリ34から特徴量情報を読み出し、過去に検出された顔であるか、新たに検出された顔であるかを判定する。例えば、検出された顔が過去に検出された顔であると判定されたときには、顔領域の大きさや位置が変化していれば、内蔵メモリ34に記憶される特徴量情報を更新する。
一方、新たに検出された顔となる場合には、その特徴量や、顔領域の大きさや検出された顔の位置などをまとめた特徴量情報を作成し、内蔵メモリ34に書き込む。なお、過去に顔検出を行っていない場合には、特徴量情報は内蔵メモリ34に記憶されていないことから検出された顔の特徴量と、顔領域の大きさや検出された顔の位置とをまとめた特徴量情報を作成し、内蔵メモリ34に書き込む。
ステップS103は、顔が検出されたか否かを判定する処理である。ステップS102の処理で顔が検出されていれば、ステップS103の処理はYesとなり、ステップS104に進む。一方、ステップS102の処理で顔が検出されていない場合には、ステップS103の処理はNoとなりステップS151に進む。
ステップS104は、顔領域を示すエリア枠を表示する処理である。ステップS102の処理において顔が検出されていることから、制御部41は、内蔵メモリ34に記憶された特徴量情報から顔領域の位置や大きさを読み出し、表示制御回路31に出力する。これを受けて、表示制御回路31は、LCD32に表示されるスルー画像MI1に、顔領域を示すエリア枠59を重畳させて表示する。
ステップS105は、フラグがセットされているか否かを判定する処理である。制御部41は、内蔵メモリ34を参照してフラグの値を参照する。内蔵メモリ34に記憶されたフラグが「1」に設定されている場合には、制御部41はフラグがセットされていると判定し、ステップS106に進む。一方、内蔵メモリ34に記憶されたフラグが「0」に設定されている場合には、制御部41はフラグがセットされていないと判定し、ステップS115に進む。
ステップS105の処理においてフラグがセットされていると判定された場合には、ステップS106に進む。なお、以下に示すステップS106からステップS108の処理は、フラグがセットされている、つまりAFエリアが既に設定されている場合の処理である。
ステップS106は、スルー画像データから特定された顔領域のうち、AFエリアとして設定される顔領域を除いた顔領域の中で最大となる顔領域と、AFエリアとして設定されている顔領域とを比較する処理である。
例えば、図2(a)に示すように、スルー画像MI1から単一の顔のみが検出されている場合には、その顔領域55がAFエリアとして設定されている。スルー画像MI1から顔検出を行うことでAFエリアとして設定された顔領域55の他に、顔領域(図3(a)中ハッチング領域60)が特定された場合には、比較部43は、これら顔領域の大きさから顔サイズ比Raを求めることで、顔領域を比較する。なお、図3においては、AFエリアとして設定される顔領域55の他に、1つの顔領域60が特定された場合について記載しているが、AFエリアとして設定される顔領域55の他に、複数の顔領域が特定されている場合には、AFエリアとして設定される顔領域55を除いた顔領域から最も大きい顔領域を選択され、顔サイズ比Raが算出される。
ステップS107は、顔サイズ比Raが閾値以上であるか否かを判定する処理である。このステップS107の処理は、制御部41において実行される。ステップS106において求められた顔サイズ比Raが閾値以上となる場合には、ステップS108に進む。一方、顔サイズ比Raが閾値未満となる場合には、ステップS109に進む。
ステップS108は、AFエリアを再設定する処理である。ステップS107のステップにおいて、顔サイズ比Raが閾値以上となる場合、AFエリアを再設定する条件を満足したことになる。この場合、制御部41は、設定部44にAFエリアを再設定する旨の信号を出力する。これを受けて、設定部44は、新たに検出された顔領域(図3(a)中ハッチング領域60)をAFエリアとして再設定する。この再設定により、内蔵メモリ34に記憶された設定情報が更新される。
ステップS109は、AF枠を表示する処理である。ステップS108において、AFエリアが再設定されていることから、制御部41は、内蔵メモリ34に記憶された設定情報を読み出して表示制御回路31に出力する。これを受けて、表示制御回路31は、スルー画像MI1の顔領域55に重畳されたAF枠56をエリア枠59に変更する。同時に、新たにAFエリアとして設定された顔領域60にAF枠56を重畳する(図3(b)参照)。これにより、LCD32におけるスルー画像MI1の表示において、AFエリアが切り替わったことがユーザに認識される。
ステップS110は、フラグをセットする処理である。なお、上述したステップS106からステップS108の処理が実行された場合には、既にフラグがセットされていることから、このような場合には、設定部44は、内蔵メモリ34を参照して、フラグがセットされているか否かを確認する。
ステップS111は、スルー画像MI1の表示を終了する指示があるか否かを判定する処理である。制御部41は、CPU40に入力される各種信号のうち、スルー画像MI1の表示を終了する旨の信号があるか否かを判定する。なお、スルー画像MI1の表示を終了する指示としては、例えばレリーズボタン51の操作に起因するもの、LCD32における表示を停止する操作に起因するもの、主電源をオフにする操作に起因するものなどが挙げられる。制御部41は、スルー画像MI1の表示を終了する指示があると判定した場合(ステップS111の判定でYesとなる場合)に、スルー画像MI1の表示を停止させる。例えばスルー画像MI1の表示を終了する指示が、レリーズボタン51の操作に起因するものであれば、制御部41は、AF処理部45を作動させ、AFエリアとして設定された顔領域を用いてAF処理を実行させる。例えばAFエリアとして顔領域が設定されていれば、その顔領域にピントが合うようにフォーカスレンズの位置が調整された後、撮像処理が実行される。
一方、制御部41がスルー画像MI1の表示を終了する旨の指示がないと判定した場合には、ステップS111の判定がNoとなり、ステップS102に戻る。これにより、スルー画像MI1が引き続きLCD32に表示される。この場合、ステップS111の判定処理でスルー画像MI1の表示を終了する指示があると判定されるまで、ステップS102からステップS110の処理が繰り返し実行される。これらステップの処理により、顔が検出される度に上述した比較が行われ、AFエリアの再設定を行う条件を満足した場合にのみAFエリアが再設定されていく。一方、AFエリアの再設定を行う条件を満足しない限りはAFエリアが変動しないことから、AFエリアとして設定された顔領域を安定して追尾することができる。
ところで、ステップS105の処理でフラグがセットされていないと判定されたときには、ステップS105の判定処理がNoとなり、ステップS115に進む。ステップS115は、最大の顔領域をAFエリアとして設定する処理である。ステップS102における顔検出によって顔が1つしか検出されていないとき(図2(a)参照)には、比較部43による比較は行わずに、設定部44は上述した顔領域55をAFエリアとして設定し、内蔵メモリ34に設定情報を書き込む。なお、複数の顔が検出された場合には、検出される複数の顔の領域のうち、最大となる顔領域をAFエリアとして設定すればよい。このステップS115の処理が終了すると、ステップS109以降の処理が実行される。なお、このステップS115の処理の後にステップS109の処理が実行されると、LCD32に表示されるスルー画像MI1の顔領域55にAF枠59が重畳される(図2(b)参照)。この表示の後、設定部44は、内蔵メモリ34のフラグをセットする(ステップS110)。これにより、AFエリアが初めて設定されたことがユーザに新式される。この場合、ステップS111の処理でスルー画像MI1の表示を終了する旨の指示がない場合には、ステップS102に戻る。この場合、以降の処理はステップS102からステップS108の処理となる。一方、ステップS111の処理でスルー画像MI1の表示を終了する旨の指示がある場合には、上述したAFエリアを設定する処理が終了する。この場合も、スルー画像MI1の表示を終了する旨の指示が、レリーズボタン51の操作に起因するものであれば、制御部41は、AF処理部45を作動させて、AF処理を実行させる。
例えばスルー画像MI1をLCD32に表示しているときには、必ずしも、撮影範囲に人物の顔が含まれているとは限らない。この場合、ステップS102の処理を行っても顔を検出することができないことから、ステップS103の判定処理はNoとなり、ステップS151に進む。
ステップS151は、顔が検出されていない状態が所定期間継続されているか否かを判定する処理である。内蔵メモリ34には、スルー画像MI1を用いて顔検出を行った結果を示す検出履歴情報が記憶されている。制御部41は、この検出履歴情報を参照して、顔が検出されていいない状態が所定期間継続されているか否かを判定する。例えば検出履歴情報が過去複数回の顔検出において顔が検出されていないことを示しているのであれば、ステップS151の処理がYesとなり、ステップS152に進む。一方、検出履歴情報が過去複数回の顔検出において顔が検出されていることを示しているものであれば、ステップS151の処理がNoとなり、ステップS109に進む。この場合には、顔が検出されていなくとも、スルー画像MI1にAFエリアとして設定された領域にAF枠56やエリア枠59が重畳されて表示される。
ステップS152は、AF枠56及びエリア枠59をそれぞれ非表示にする処理である。ステップS151において、スルー画像MI1から顔が検出されていない状態が所定期間継続されていると判定されていることから、制御部41は、AF枠56及びエリア枠59を非表示にする旨の信号を表示制御回路31に出力する。これを受けて、表示制御回路31は、AF枠56及びエリア枠59を非表示にする。これにより、LCD32には、スルー画像MI1のみが表示される。
ステップS153は、撮影範囲の中央の領域をAFエリアとして仮設定する処理である。この場合、スルー画像MI1から顔が検出されていない状態が所定期間継続されていると判定されていることから、設定部44は、新たなAFエリアとして撮影範囲の中央の領域をAFエリアとして仮設定し、内蔵メモリ34に記憶された設定情報を更新する。
ステップS154は、フラグがセットされているか否かを判定する処理である。制御部41は、内蔵メモリ34を参照して、フラグがセットされているか否かを判定する。例えばフラグが「1」に設定されている場合には、制御部41はフラグがセットされていると判定する。この場合、ステップS154の判定処理がYesとなり、ステップS155に進む。一方、フラグが「0」に設定されている場合には、制御部41はフラグがセットされていないと判定する。この場合、ステップS154の判定処理がNoとなり、ステップS111に進む。
ステップS155は、フラグをリセットする処理である。ステップS151において、スルー画像MI1から顔が検出されていない状態が所定期間継続されていると判定されていることから、制御部41はフラグをリセットする。このフラグのリセットにより、フラグが「0」となる。このフラグのリセットに合わせて、制御部41は、特徴量情報を消去する。
つまり、撮影範囲から顔が外れた場合や、正面を向いていた顔が横顔になった場合、風景を撮影する場合には顔を検出することができなくなるので、このような場合が所定期間継続された場合には、撮影範囲の中央の領域がAFエリアとして仮設定された後、AFエリアがリセットされる。このステップS154の処理が行われると、ステップS111に進む。この場合、ステップS111の処理で終了指示がレリーズボタン51の操作によるものであれば、制御部41は設定部44を作動させて、AFエリアとして仮設定された撮影範囲の中央の領域をAFエリアとして設定させる。その後、制御部41は、AF処理部45を作動させてAF処理を実行させる。なお、このような場合には、AF処理は、撮影範囲の中央の領域をAFエリアに設定された状態で実行される。
第1の実施形態では、顔サイズ比Raが閾値以上となる場合にAFエリアを再設定しているが、この他に、複数のスルー画像MI1から顔サイズ比Raが閾値以上になる顔領域が連続して検出された場合にAFエリアを再設定するようにしてもよい。
第1の実施形態では、比較部43における比較対象として、顔領域の大きさを挙げて説明しているが、この他に、撮影範囲の中心から顔領域までの距離を比較することも可能である。以下、撮影範囲の中心から顔領域までの距離を用いて比較する場合について、第2の実施形態として説明する。
第2の実施形態においては、撮影範囲の中心、つまりスルー画像の中心から顔領域の中心までの距離を特定される顔領域毎に求め、AFエリアとして設定された顔領域を除く顔領域のうち、最も撮影範囲の中心に近い顔領域の中心から撮影範囲の中心までの距離と、AFエリアとして設定された顔領域の中心から撮影範囲の中心までの距離とを比較することでAFエリアを設定する。なお、この場合のデジタルカメラの構成は、第1の実施形態のデジタルカメラと同一の構成からなることから、以下では、第1の実施形態と同一の機能や構成となる箇所については、第1の実施形態と同一の符号を付して説明する。
以下、第2の実施形態におけるAFエリアを設定する際の手順について、図5に示すフローチャートに基づいて説明する。
ステップS201は、フラグをリセットする処理である。なお、このステップS201の処理はステップS101と同一の処理である。
ステップS202は、顔検出を行う処理である。このステップS202の処理はステップS102と同一の処理である。この顔検出部42における顔検出の結果は検出履歴情報として内蔵メモリ34に記憶される。このステップS202の処理で顔が検出された場合には、検出された顔に対する顔領域や、スルー画像MI2における顔領域の位置などが特定される。この場合、顔領域の位置としては、スルー画像MI2の中心Cを基準としたときの顔領域の中心の位置や、スルー画像MI2の中心Cから顔領域の中心までの距離Lが挙げられる。顔が検出されると、顔検出部42は、スルー画像データから検出された顔が、過去の顔検出において既に検出された顔であるか、新たに検出された顔であるかを判定する。そして、既に検出された顔であると判定した場合には、顔検出部42は、特徴量が変化しれば内蔵メモリ34に記憶された特徴量情報を更新する。一方、新たに検出された顔であると判定した場合には、顔検出部42は、新たに検出された顔の特徴量や顔領域の大きさや位置をまとめて特徴量情報を作成し、内蔵メモリ34に書き込む。
ステップS203は、顔が検出されたか否かを判定する処理である。ステップS203の処理もS103の処理と同一の処理である。なお、このステップS202の処理で、顔が検出されていれば、ステップS203の処理はYesとなり、ステップS204に進む。一方、ステップS202の処理で顔が検出されていない場合には、ステップS203の処理はNoとなりステップS251に進む。
ステップS204は、顔領域を示すエリア枠を表示する処理である。このステップS204の処理は、ステップS104の処理と同一の処理である。
ステップS205は、フラグがセットされているか否かを判定する処理である。このステップS205の処理もステップS105の処理と同一の処理である。内蔵メモリ34に記憶されたフラグが「1」に設定されている場合には、制御部41はフラグがセットされていると判定する。この場合、ステップS205の判定処理がYesとなり、ステップS206に進む。一方、内蔵メモリ34に記憶されたフラグが「0」に設定されている場合には、制御部41はフラグがセットされていないと判定する。この場合、ステップS205の判定処理がNoとなり、ステップS215に進む。
ステップS205の処理においてフラグがセットされていると判定された場合には、ステップS206に進む。なお、以下に示すステップS206からステップS208の処理は、フラグがセットされている、つまりAFエリアが既に設定されている場合の処理である。
ステップS206は、AFエリアとして設定される顔領域の中心からスルー画像MI2の中心Cまでの距離と、ステップS202において検出された顔領域のうち、最もスルー画像MI2の中心Cに近い顔領域からスルー画像MI2の中心Cまでの距離とを比較する処理である。なお、ステップS202における顔検出において、AFエリアとして設定される顔領域以外に新たな顔領域が検出されない場合には、この処理は行わない。
図6に示すように、過去に取り込まれたスルー画像MI2において、顔領域70がAFエリアとして設定された後のスルー画像MI2を用いて顔検出したときに、AFエリアとして設定される顔領域70と、新たに検出された顔に対する顔領域71が検出された場合について説明する。
ステップS202において、検出された顔に対する特徴量情報が内蔵メモリ34に記憶されている。比較部43は、内蔵メモリ34に記憶された特徴量情報を参照して、スルー画像MI2の中心CからAFエリアとして設定された顔領域70の中心70cまでの距離L1と、スルー画像MI2の中心Cから新たに検出された顔領域71の中心71cまでの距離L2とから距離比RLを求めることで比較する。なお、距離比RLは、RL=L2/L1で求められる。なお、図6(b)においては、AFエリアとして設定された顔領域の他に、新たに単一の顔が検出された場合について示しているが、複数の顔が新たに検出された場合には、これら複数の顔のうち最もスルー画像MI2の中心Cに近い顔を用いればよい。図6(b)においては、顔検出時に特定される顔領域に対しては、ハッチングを省略して示す。
ステップS207は、距離比RLが閾値以下であるか否かを判定する処理である。閾値としては、例えば0.9以下であることが好ましい。この閾値は、上述した顔検出部42における顔検出の方法やその精度に準じて設定されるものである。つまり、顔検出の方法やその精度によっては、AFエリアとして設定される顔領域の中心までの距離と、最もスルー画像MI2の中心Cに近い顔領域の距離とが近似する場合がある、このような場合には、カメラの位置や被写体の位置が少しでもずれただけでも、AFエリアとして設定される顔領域が切り替わってしまう。このため、閾値は、このようなAFエリアの切り替わりが頻繁に行われないような値に設定されていればよい。
ステップS207の処理は制御部41において実行される。例えばスルー画像MI2の中心Cから新たに検出された顔領域71の中心71cまでの距離L2が、スルー画像MI2の中心CからAFエリアとして設定された顔領域70の中心70cまでの距離L1よりも近い場合には、ステップS206において求められた距離比RLが閾値以下となりやすい。この場合、ステップS207の判定がYesとなり、ステップS208に進む。
一方、スルー画像MI2の中心Cから新たに検出された顔領域71の中心71cまでの距離L2がスルー画像MI2の中心CからAFエリアとして設定された顔領域70の中心70cまでの距離L1に近似する、又は距離L1よりも遠い場合には、距離比RLが閾値を超過する。この場合、ステップS207の判定がNoとなり、ステップS209に進む。
ステップS208は、AFエリアを再設定する処理である。ステップS207のステップにおいて、距離比RLが閾値以下となる場合、AFエリアを再設定する条件を満足したことになる。この場合、設定部44は、AFエリアとして設定された顔領域70を更新することでAFエリアを再設定する。この際、設定部44は、内蔵メモリ34に記憶された設定情報を更新する。
ステップS209は、AF枠を表示する処理である。なお、このステップS209の処理は、ステップS109の処理と同一の処理である。例えば、ステップS207の処理において、距離比RLが閾値以下となる場合には、ステップS208において、設定部44は、AFエリアを再設定している。制御部41は、内蔵メモリ34から設定情報を読み出して、表示制御回路31に出力する。これを受けて、表示制御回路31は、LCDに表示されるスルー画像MI2の顔領域70に重畳されたAF枠56をエリア枠59に変更し、顔領域71に重畳されたエリア枠59をAF枠56に変更する。
ステップS210は、フラグをセットする処理である。なお、このステップS209の処理は、ステップS110の処理と同一の処理である。
ステップS211の処理は、スルー画像MI2の表示を終了する指示があるか否かを判定する処理である。制御部41は、CPU40に入力される各種信号のうち、スルー画像MI2の表示を終了する旨の信号があるか否かを判定する。なお、スルー画像MI2の表示を終了する指示としては、例えばレリーズボタン51の操作に起因するもの、LCD32におけるスルー画像MI2の表示を停止する操作に起因するもの、主電源をオフにする操作に起因するものなどが挙げられる。制御部41は、スルー画像MI2の表示を終了する指示があると判定した場合(ステップS211の判定でYesとなる場合)に、スルー画像MI2の表示を停止させる。例えばスルー画像MI2の表示を終了する指示が、レリーズボタン51の操作に起因するものであれば、AFエリアとして設定された顔領域を用いてAF処理がAF処理部45により実行される。例えばAFエリアとして顔領域が設定されていれば、その顔領域にピントが合うようにフォーカスレンズの位置が調整される。
一方、制御部41がスルー画像MI2の表示を終了する旨の指示がないと判定した場合には、ステップS211の判定がNoとなり、ステップS202に戻る。これにより、スルー画像MI2が引き続きLCD32に表示される。この場合、ステップS211の判定処理でスルー画像MI2の表示を終了する指示があると判定されるまで、ステップS202からステップS210の処理が繰り返し実行される。これらステップの処理により、顔が検出される度に上述した比較が行われ、AFエリアの再設定を行う条件を満足した場合にのみAFエリアが再設定されていく。一方、AFエリアの再設定を行う条件を満足しない限りはAFエリアが変動しないことから、AFエリアとして設定された顔領域を安定して追尾することができる。
このAFエリアの設定においては、スルー画像MI2の表示を開始した直後などはAFエリアが設定されていない場合もある。この場合、上述したステップS205の処理でフラグがセットされていないと判定される。このような場合には、ステップS205の処理がNoとなり、ステップS215に進む。
ステップS215は、顔領域のうち、スルー画像MI2の中心Cに最も近い顔領域をAFエリアとして設定する処理である。ステップS202の顔検出で単一の顔しか検出されていない場合には、その顔領域をAFエリアとして設定する(図6(a)参照)。また、複数の顔が検出される場合には、最もスルー画像MI2の中心Cに近い顔に基づく顔領域をAFエリアとして設定する。このAFエリアの設定に合わせて、設定部44は、内蔵メモリ34に設定情報を書き込む。このステップS215の処理が実行されると、ステップS209に進み、スルー画像MI2にAF枠56が重畳されて表示される。この表示の後、内蔵メモリ34のフラグがセットされる(ステップS110)。そして、フラグがセットされた後、スルー画像MI2の表示を終了する指示が有るか否かが判定される(ステップS211)。このステップS212の判定でNoとなる場合には、ステップS202に戻り、引き続き、スルー画像MI2の表示が実行される。一方、ステップS212の判定でYesとなる場合には、スルー画像MI2の表示が停止される。これにより、AFエリアを設定する処理が終了する。この場合、スルー画像MI1の表示を終了する旨の指示が、レリーズボタン51の操作に起因するものであれば、制御部41は、AF処理部45を作動させてAF処理を実行させる。
スルー画像MI2をLCD32に表示しているときには、スルー画像MI2に人物の顔が含まれていない場合もある。このような場合には、ステップS202の処理を行っても顔を検出することができない。このような場合には、ステップS203の処理がNoとなり、ステップS251に進む。なお、ステップS251からステップS255の処理については、本実施形態のステップS151からステップS155の処理と同一であることから、ここでは、その詳細については省略する。なお、このステップS251以降の処理を行って、ステップS255の処理が実行されると、ステップS211の判定処理に進む。この場合、ステップS211の処理で終了指示がレリーズボタン51の操作によるものであれば、制御部41は設定部44を作動させて、AFエリアとして仮設定されたスルー画像MI2の中央の領域をAFエリアとして設定させる。その後、制御部41は、AF処理部45を作動させてAF処理を実行させる。つまり、スルー画像MI2の中央の領域にピントが合うように撮像光学系16のズームレンズの位置が調節される。
この第2の実施形態の場合も、第1の実施形態と同様に、距離比RLが閾値以下となる状態が所定期間継続された場合に、AFエリアを再設定するようにしてもよい。
なお、第2の実施形態においてはスルー画像MI2の中心からAFエリアとして設定される顔領域の中心までの距離と、スルー画像MI2の中心からスルー画像の中心に最も近い顔領域の中心までの距離との距離比RLを算出することで比較を行っているが、この他に、スルー画像の中心からAFエリアとして設定される顔領域の中心までの距離と、スルー画像の中心から、新たに検出された顔領域のうち、スルー画像の中心に最も近い顔領域の中心までの距離との距離差を求めることで比較を行うことも可能である。この場合も、距離差が閾値以下となる状態が所定期間継続された場合にAFエリアを再設定するようにしてもよい。
第1の実施形態及び第2の実施形態では、顔検出された直後に、顔領域を示すエリア枠59をスルー画像MI1に重畳させて表示し、ステップS108やステップS115の処理が実行された後、AF枠56をスルー画像MI1に重畳させて表示しているが、これに限定される必要はなく、例えばAF枠56の表示に合わせてエリア枠59を表示させることも可能である。また、本実施形態では、エリア枠及びAF枠を自動的に表示させているが、これに限定される必要はなく、図示を省略した操作ボタンの操作に合わせて、エリア枠、AF枠の表示、非表示を切り替えることができるようにしてもよい。
第1及び第2の実施形態においては、取り込まれるスルー画像をLCD32に表示する場合について説明しているが、この他に、電子ビューファインダを搭載したデジタルカメラに本発明を用いることも可能である。
第1及び第2の実施形態では、撮像素子については、その詳細を触れていないが、位相差方式を用いた焦点検出装置が組み込まれた撮像素子から構成することも可能である。この焦点検出装置が組み込まれた撮像素子としては周知であることから図示は省略するが、例えばマトリクス状に配列された画素のうち、所定の位置の画素に設けられる光電変換部を、1つのマイクロレンズに対して2つの光電変換部とする。そして、これら光電変換部を交互に駆動させることでマイクロミラーから入射される光束に基づく像データからデフォーカス量を求め、求めたデフォーカス量に基づいて焦点調節を行えばよい。
第1及び第2の実施形態では、画像認識を自動的に行っているデジタルカメラとしているが、例えばデジタルカメラの撮影モードとして画像認識モードを備えたデジタルカメラであってもよい。この場合、画像認識モードに移行させたときに、第1又は第2の実施形態に示す処理が実行されればよい。
第1及び第2の実施形態では、顔領域全体をAFエリアとして設定しているが、これに限定される必要はなく、例えば顔領域の中心となる画素や、該画素に近接する画素をAFエリアとしてもよい。
第1及び第2の実施形態では、デジタルカメラを例に取り上げているが、これに限定する必要はなく、例えば、画像内に含まれる人物の顔を認識する画像認識装置や、これを用いたシステムであってもよい。
尚、上述した第1及び第2の実施形態では、検出する特徴として顔を取り上げているが、検出する特徴としては、顔以外の人体部分や、動植物、建造物、或いは特定形状の物体などであってもよい。