(実施形態1)
本実施形態では、主被写体、及び、関連被写体に対しては目つむり検出を行い、それ以外の顔に対しては目つむり検出を行わない実施形態について説明する。
〔撮像装置の構成について〕
図1は本発明の実施形態における画像処理装置の構成を示すものである。
本実施形態においては画像処理装置の一例として、デジタルカメラを例に挙げ説明する。
101は撮影レンズや絞り装置を含み、被写体から反射された光学像の光量や焦点の位置を調整するため光学系である。
102は光学像を電気信号に変換するCCDやCMOSセンサ等で構成される撮像素子である。
103は撮像素子102から出力されたアナログ信号の画像データをデジタル信号の画像データに変換するA/D(アナログデジタル)変換部である。103のA/D変換部から出力された画像データは、画像処理部104、及び、メモリ制御部105を介して、或いは、直接、メモリ制御部105を介してメモリ106に書き込まれる。
104はA/D変換部から出力された画像データに対して、顔検出、画像解析を行う顔の選択、目つむり検出、赤目補正、個人認証などの画像解析処理や画像処理を行う画像処理部である。
105はメモリ106への書き込み、または、メモリ106からの読み込みを制御するメモリ制御部である。
メモリ106には、撮像素子102とA/D変換部103から得られた画像データや、画像処理部104で画像処理を施された画像データや、画像データのサムネイルを含んだ情報や、撮影した画像データの枚数、顔検出数などが書き込まれる。
107はシステム制御部であり、このデジタルカメラのシステム全体を制御する。システム制御部107は、画像処理部104に対しての画像解析処理や画像処理の制御を行う他、メモリ106に書き込まれた画像データをファイル化し、I/F(インターフェース)部108を介して記録媒体に記録する。I/F部108はメモリーカードや記録媒体とのインターフェースである。
109はD/A(デジタルアナログ)変換部であり、メモリ106に書き込まれた画像データをアナログ信号の画像データに変換する。
110はD/A変換部109により変換された画像データを表示する、または、撮像素子102で生成された画像データをスルー表示する表示部である。スルー表示とは、連続的に撮像素子102にて画像データが生成され、表示部110に被写体の様子が動画としてリアルタイムで表示されることである。この表示部110は、画像処理部104で処理された画像データや、メモリ106、記録媒体に記録された画像データを表示したり、画像解析処理や画像処理の処理結果を表示したりする。
操作部111はシステム制御部107に各種の動作指示を入力する。なお、操作部の一例としては撮像を指示するレリーズボタン112や、カーソルやメニューを操作するための方向指示ボタン113やタッチパネル114等がある。
操作部111に含まれるレリーズボタン112は半押しで第1シャッタースイッチ信号SW1を発生する。システム制御部107は、第1シャッタースイッチ信号SW1を検知することにより、AF(オートフォーカス)処理、AE(自動露光)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理、及び、顔検出処理等の動作を開始する。AF処理とは、光学系101が、光学像の焦点の位置を調整することである。
レリーズボタン112は全押しで第2シャッタースイッチ信号SW2を発生する。システム制御部107は、第2シャッタースイッチ信号SW2を検知することにより、撮像素子102から読み出した画像データを記録媒体に書き込んで保存する撮影処理の動作を開始する。
〔画像処理部の構成について〕
図2は画像処理部104の構成を示すブロック図である。
本実施形態の画像処理部104は顔検出部201、主被写体選択部202、関連被写体選択部203、目つむり検出部204を有している。各処理部はシステム制御部107の制御下において、画像解析処理や画像処理を実行する。
顔検出部201は画像処理部104に入力された画像データに対して顔領域の検出を行う。顔検出部201によって検出された顔の画像データや、各顔の目の位置や口の位置といった顔検出情報はメモリ106に書き込まれる。顔検出のアルゴリズムについては後述する。
主被写体選択部202は顔検出部201によって複数の顔が検出された場合、顔検出情報に基づいて、画像データに存在する複数の顔のうち主被写体となる顔を選択する。顔がひとつしか検出されなければ、その顔が主被写体となる。
主被写体を選択する方法としては、個人認証アルゴリズムなどを用いて予め登録された個人別の優先順位にしたがって選択する方法や、検出された顔領域の位置や、顔のサイズに応じて選択する方法などが一般的である。例えば、特開2008−005438には、画面中央に近いほど、サイズが大きいほど、顔としての条件を満たす程度が高いほど、その顔の重み値を大きく、最も重み値の大きい顔を主被写体とする方法が記載されている。ここでいう、信頼性係数とはその顔が、顔としての条件を満たす程度を示す値である。すなわち、両目、鼻、口の全ての形状が検出されたうえで顔領域であると判定された顔の信頼性係数は、両目と口の形状しか検出されなかったうえで顔領域であると判定された顔の信頼性係数よりも大きな値となる。
あるいは、複数検出された顔の中から、ユーザに操作部111に含まれる方向指示ボタン113やタッチパネル114を操作させて、主被写体を選択させるようにしてもよい。主被写体として選択された顔は、主被写体として識別可能な情報を付加した顔検出情報としてメモリ106に書き込まれる。
関連被写体選択部203は顔検出情報を元に、ユーザにとって画像解析処理、あるいは、画像処理を行うに値する被写体であるか否かを、主被写体として選択された顔との相関に基づいて判定する。画像解析処理、あるいは、画像処理を行うに値する被写体であるならば、その被写体を主被写体に関連する関連被写体として選択する。関連被写体として選択された顔は、関連被写体として識別可能な情報を不可した顔検出情報としてメモリ106に書き込まれる。以下、画像解析処理として目つむり検出を例に説明を行う。
目つむり検出部204は、主被写体選択部202、及び、関連被写体選択部203で選択された顔に対して、顔検出部201で得られた顔検出情報を元に目つむり検出を行う。目つむり検出の方法として、例えば、顔から目周辺と推定される領域を抽出する。その抽出された領域の画像データと予めメモリ内に保存された目画像とのテンプレートマッチングにより目が充分に開いているかどうかを判別する方法などが知られている(特開2006−087083を参照)。本発明の目つむり検出のアルゴリズムについては後述する。
なお、図2では、顔検出部201、主被写体選択部202、関連被写体選択部203、及び、目つむり検出部204が、別々の回路にて構成されるものとして説明を行ったが、これらは、全ての機能を有する単一の回路で構成されていても構わない。
以上の構成からなる実施例の動作説明を行う。
〔デジタルカメラの全体的な動作〕
図3は本発明に係る撮像装置の全体的な動作を示すフローチャートである。
システム制御部107は、静止画を記録する静止画撮影モードが設定されると、ステップS301において、撮像素子102が生成した画像データを表示するスルー表示を開始する。
システム制御部107は、ステップS302において、スルー表示された画像データに人の顔が存在するか否かを検出する顔検出を顔検出部201に行わせる。システム制御部107は、人の顔が検出された場合、画像データにおいて、検出した顔のサイズ(幅や高さや顔の占める画素数など)、位置情報、検出個数、信頼性係数などを顔検出情報としてメモリ106に記憶する。
続いてステップS303において、システム制御部107は、第1シャッタースイッチ信号SW1がONしているか否かを判定する。第1シャッタースイッチ信号がOFFの場合は、処理ステップはS302に戻る。第1シャッタースイッチ信号がONの場合は、ステップS304に進む。
次に、ステップS304において、システム制御部107は、主被写体選択部202に、顔検出処理によって検出された顔の中から主被写体を選択させ、それをメモリ106に記憶させる。この主被写体の選択方法の詳細については後述する。
主被写体選択部202によって主被写体が選択されると、表示部110は、どの顔が主被写体として選択されたのかがわかるように、主被写体として選択された顔にその旨を示す枠を重畳して表示部110に表示する。顔検出部201にて検出された複数の顔に対して既に枠が表示されているのであれば、主被写体として選択された顔に表示される枠だけ色を変えて表示し、ユーザが一目で主被写体としての顔を認識できるようにする。ユーザはこの表示を見て、もし意図した顔と異なる顔が主被写体として選択されているのであれば、一度、第1シャッタースイッチ信号SW1をOFFにしてから、再びONすることで、再度主被写体の選択をやり直すことができる。あるいは、ユーザが操作部111に含まれるタッチパネル114や方向指示ボタン113を操作して、別の顔を主被写体として選択しなおすようにしてもよい。
ステップS305において、システム制御部107はAF処理を行って光学系101の焦点をステップS304で選択された主被写体に合わせるとともに、AE処理を行って絞り値、及び、シャッター時間(シャッタースピード)を決定し、メモリ106に記憶する。
次に、ステップS306、S307において、システム制御部107は、第1シャッタースイッチ信号SW1と第2シャッタースイッチ信号SW2がONしているか否かを判定する。第1シャッタースイッチ信号SWがONした状態で第2シャッタースイッチ信号SW2がONになると、処理はステップS306からステップS308へと進む。第1シャッタースイッチ信号SW1がOFFになった場合、S302へと戻る。また、第1シャッタースイッチ信号SW1がON、第2シャッタースイッチ信号SW2がOFFの場合は、ステップS306、S307の処理が繰り返される。
ステップS308において、システム制御部107は、第2シャッタースイッチ信号SW2を検知したタイミングに応じて、それまでに得られた画像データから求められた露光量に応じて撮像素子102への露光処理を開始する。露光処理により生成された画像データに対して現像処理を施す撮影処理を実行し、その結果をメモリ106に記憶する。
ステップS309において、システム制御部107は、顔検出部201に、ステップS308にて生成された画像データに対し再び顔検出を行わせる。そして、主被写体選択部202は、検出された複数の顔の中から、ステップS304で主被写体として選択された顔の位置情報及び、サイズとの相関が最も近い顔を、主被写体として選択し、メモリ106に記憶する。
ステップS310において、システム制御部107は、メモリ106に記憶した主被写体として選択された顔とそれ以外の顔との顔の位置情報、顔サイズ、信頼性係数等の相関に基づいて、主被写体と関連性が高いとみなされる顔を関連被写体として選択する。そして、メモリ106にその結果を記憶する。もちろん、顔の位置情報、サイズ、信頼性係数のいずれかの相関のみを用いて関連被写体を選択してもよいし、これら以外の色信号や輝度信号の相関も加味して関連被写体を選択してもよい。
次に、ステップS311において、システム制御部107は、ステップS308にて撮影された画像データのうち、主被写体、及び、関連被写体の顔に対して目をつむっているか否かを判定する目つむり検出を行う。目つむり検出の詳細については後述する。
次に、ステップS312において、システム制御部107は、表示部110にステップS308の撮影処理で得られた画像データのレックレビュー表示を表示部110に表示して行う。レックレビューとは、撮影画像の確認のために、被写体の撮影後記録媒体への記録前に、予め決められた時間だけ画像データを表示部110に表示する処理である。このとき、ステップS311にて目つむりが検出された被写体がいれば、その被写体が目をつむっていることがわかる旨の表示を表示部110で行う。例えば、目をつむっている被写体の目を囲うように枠を画像データに重ねて表示することで目つむりであることをアピールしたり、目をつむっている旨のコメントや画像を画像データに重ねて表示したりする。ユーザはこの表示を見ることで、撮影した画像データ中の被写体が目をつむっていることを認識し、必要であれば撮影をやり直すことが可能となる。
レックレビュー表示後、ステップS313において、システム制御部107は、撮影処理で得られた画像データを画像ファイルとして記録媒体に対して書き込む記録処理を実行する。
ステップS313の記録処理が終了すると、ステップS314において、システム制御部107は、第2シャッタースイッチ信号SW2のONまたはOFF状態を判定する。第2シャッタースイッチ信号SW2がONの場合は、ステップS314の判定を繰り返し、第2シャッタースイッチ信号SW2がOFFになるのを待つ。この間、上記レックレビュー表示を継続させる。即ち、ステップS312の記録処理が終了した際に、第2シャッタースイッチ信号SW2が放されるまで表示部110におけるレックレビュー表示を継続させる。このように構成することにより、ユーザは、例えばレリーズボタンの全押し状態を継続することで、レックレビューを用いた撮影画像データの目つむりの確認を入念に行うことが可能となる。
次にユーザが例えばレリーズボタン112を全押し状態にして撮影を行った後、レリーズボタンから手を放して全押し状態が解除されると、処理はステップS314からステップS315へ進む。ステップS314において、システム制御部107は、表示部110の表示状態をレックレビュー表示からスルー表示状態に戻す。この処理により、レックレビュー表示によって撮影画像データを確認した後、表示部110の表示状態は次の撮影のために撮像素子102からの画像データを逐次表示するスルー表示状態に自動的に切り替わることになる。
そして、ステップS316において、システム制御部107は、第1シャッタースイッチ信号SW1のON、または、OFFを判定し、第1シャッタースイッチ信号SW1がONの場合はステップS306へ、OFFの場合はステップS302へ処理を戻す。即ち、レリーズボタン112の半押し状態が継続している(第1シャッタースイッチ信号SW1がON)場合は、システム制御部107は次の撮影に備える(ステップS302)。一方、レリーズボタンが放された状態(第1シャッタースイッチ信号SW1がOFF)であったならば、システム制御部107は、一連の撮影動作を終えて撮影待機状態に戻る(ステップS306)。
〔顔検出アルゴリズム〕
次に、前述した顔検出を行う際のアルゴリズムについて図4を用いて詳細に説明する。
顔検出部201はシステム制御部107の制御下で、これから説明する各処理を実行する。
まずステップS401において、システム制御部107は、顔検出対象の画像データを画像処理部104内の顔検出部201に送る。
次にステップS402において、顔検出部201は、送られた当該画像データに水平方向のバンドパスフィルタを演算する。
ステップS403において、顔検出部201は、ステップS402で処理された画像データに垂直方向のバンドパスフィルタを演算する。これらの演算処理により、画像データより顔のエッジ成分が検出される。
次にステップS404において、顔検出部201は、検出されたエッジ成分に関してパターンマッチングを行い、目、鼻、口、及び、耳の顔を構成するパーツの候補群を抽出する。
そして、ステップS405において、顔検出部201は、ステップS404で絞り込まれた目、鼻、口、及び、耳の候補群の距離や配置された位置から顔の候補領域を推定する。これらの顔候補領域に対して予め設定した条件フィルタを演算することで、最終的に顔を検出する。ここでは、目、鼻、口、及び、耳の候補群の全てがそろっていなくとも、これらの相関距離や配置が顔としての条件を満たしていれば、その領域が顔領域であると判定する。
ステップS406において、顔検出部201は、ステップS405による顔の検出結果に応じて上記顔検出情報を出力し、顔検出処理を終了する。この際、システム制御部107は、出力された顔検出情報ある顔の検出数や顔の位置情報、顔サイズ、顔としての条件を満たす程度を示す信頼性係数、検出された顔を識別するためのID等を、メモリ106に記憶する。ここでいう信頼性係数とは例えば、目が2つあるか否か、2つの目の距離はどれくらいか、2つの目の間に鼻が存在するか否か等に基づき決定される。
尚、上記説明した顔検出アルゴリズム以外の顔検出方法として、顔検出領域を予め設定しておいて、その領域内の顔を検出する方法、顔の色相から顔を検出する方法等がある。
〔主被写体選択アルゴリズム〕
次に、前述した主被写体選択アルゴリズムについて図5を用いて詳細に説明する。
主被写体選択部202は、システム制御部107の制御下で、これから説明する各処理を実行する。その際、顔検出処理の過程でメモリ106に記憶された顔検出情報を用いる。
ステップS501において、主被写体選択部202は、ステップS302で検出された顔の検出数をメモリ106に記憶させておくとともに、主被写体選択処理の対象となる顔をカウントするメモリ106のカウンタNを0(ゼロ)に初期化する。
次にステップS502において、主被写体選択部202は、顔検出処理で得られた信頼性係数、顔サイズ、顔の位置情報等の顔検出結果をメモリ106から読み出す。
次にステップS503において、主被写体選択部202は、顔検出処理によって検出された顔の検出数が0か否かを判定する。顔検出数が0である場合には、人物と思われる被写体は存在しないので主被写体処理を終了する。ステップS503において、ひとつ以上の顔が検出された場合には、ステップS504に進む。
次にステップS504において、主被写体選択部202はカウンタNの値を1増やす。
ステップS505において、主被写体選択部202は、顔検出処理によって検出された顔検出数がひとつであるか否かを判定する。検出された顔がひとつである場合は、主被写体と思われる人物は顔検出された人物に特定されるので、検出された顔を主被写体として選択し(ステップS512)、主被写体選択処理を終了する。この際、主被写体選択部202は、メモリ106に選択された顔が主被写体であることが判別可能な情報を付加して顔検出情報を書き込む。
ステップS505において、顔検出数がひとつではない、つまり、検出された顔が複数の場合には、ステップS506に進む。
ステップS506において、主被写体選択部202は、顔の信頼性係数に基づいて算出される重み1を算出する。ステップS507において、主被写体選択部202は、検出された顔サイズに基づいて算出される重み2を算出する。ステップS508において、主被写体選択部202は、検出された顔の位置情報に基づいて重み3を算出する。ここでいう重みとは、主被写体を選択するための最終重みを計算する際の係数のことである。例えば、顔サイズが0(ピクセル)のときには重みを0、顔サイズが20(ピクセル)のとき重みを0.2、顔サイズが30(ピクセル)のときには重みが0.8になるように設定する。
また、被写界の中心座標と、顔検出された顔の位置との距離から重みを計算する例を説明する。本実施形態におけるデジタルカメラの表示用画像データのサイズは320(ピクセル)×240(ピクセル)である。そのため三平方の定理を利用して、被写界の中心座標(160,120)と、メモリ106から読み込んだ顔の位置情報(X、Y)とから距離を算出する。距離が10(ピクセル)までは、重み1.0、80(ピクセル)になると重み0.8、距離80(ピクセル)以上離れていたときは重み0.6になるように設定する。
また顔の信頼性係数に関しては、目が対で存在し、かつ、鼻、口のパーツが顔検出処理によって抽出された場合は、重みを1.0、目が片方だけ抽出された場合は重みを0.9、鼻と口だけ抽出された場合は0.8というように設定する。
次に、ステップS509において、算出された重み1から重み3の総和を計算して得られる値をメモリ106に書き込み、ステップS510に進む。尚、ここで算出する最終重みは各重みの乗算であってもよい。
ステップS510において、主被写体選択部202は、最終重み値が最も大きい顔を主被写体として選択する。この際、メモリ106に選択された顔が主被写体であることが判別可能な情報を付加して、顔検出情報を書き込み、ステップS511へ進む。
ステップS511において、主被写体選択部202は、カウンタNの値と予めメモリ106に書き込まれている顔検出数とを比較する。カウンタNの値が顔検出数と同じ場合、顔検出された全ての顔に対して主被写体選択処理が実行されたことになるので、主被写体選択処理を終了する。
カウンタNの値が顔検出数と同じではない場合、ステップS502に戻り処理を繰り返す。
以上、顔サイズ、顔の位置情報、顔としての条件を満たす程度を示す信頼性係数を用いた主被写体の検出方法について説明したが、個人認証を用いて予め登録された人物と推定された顔を主被写体として選択するようにしても良い。
個人認証とは、予め不図示のメモリに登録された個人ごとの顔の特徴点と、顔検出処理によって検出された顔から抽出された特徴点を比較して、画像データにおける顔が誰であるかを特定する処理である。具体的には、顔検出により抽出された目や鼻や口など、各特徴点の互いの配置情報と、予めメモリに登録されている顔の特徴点の配置情報とのマッチングを行い、類似度を計算する。そして、類似度が最も高く、かつ、その類似度が閾値を超えている被写体が存在すれば、その被写体が予め登録された個人と同一人物であると判定する(特開平09−251534を参照)。この個人の優先順位を、特徴点の配置情報に対応させて予めメモリ106に記憶させておくことで、複数の顔が検出された場合には、個人認証に成功した顔であって、かつ、メモリに記憶されたその個人の優先順位が最も高い顔を主被写体として選択することができる。
〔関連被写体選択アルゴリズム〕
次に、前述した関連被写体選択アルゴリズムについて図6(A)、図6(B)を用いて詳細に説明する。
関連被写体選択部203は、システム制御部107の制御下で、これから説明する各処理を実行する。その際、顔検出処理の過程でメモリ106に記憶された顔検出情報を用いる。
図6(A)のステップS601において、関連被写体選択部203は、主被写体選択処理の対象となる顔をカウントするカウンタNを0(ゼロ)に初期化する。
ステップS602において、関連被写体選択部203は、メモリ106に保存された顔サイズ、顔の位置情報の顔検出結果と、主被写体の選択結果を読み込み、ステップS603へ進む。
ステップS603において、関連被写体選択部203はカウンタNの値を1増し、読み込んだ複数の顔検出結果の中からいずれかの顔の顔検出結果を選択する。
ステップS604において、関連被写体選択部203は、ステップS603で選択した顔の顔検出結果が主被写体選択部202において、選択された顔であるか否かを判定する。参照している顔が主被写体でない場合は、ステップS605に進む。参照している顔が主被写体である場合は、ステップS609へ進む。
ステップS605において、関連被写体選択部203は、顔検出部201によって検出された主被写体の顔検出情報と、参照している顔の顔検出情報との相関値Rを算出する。相関値Rとは例えば、主被写体の顔サイズAと参照している顔サイズBの比率A/BまたはB/Aのうち、大きな方の値で定義される。相関値Rは、主被写体と参照している顔サイズの差分A−Bの絶対値で定義されてもよい。いずれの場合であっても、相関値Rは顔サイズAと顔サイズBの値が近いほど小さな値となる。ここで言う顔サイズの一例として、顔の縦または横の長さ、または、顔が占める画素数がある。
ステップS606において、関連被写体選択部203は、相関値Rと予め設定された閾値THとの比較を行う。比較の結果、相関値Rが閾値THよりも小さい場合は、参照している顔は、主被写体の顔に近いサイズであると判定し、ステップS607に進む。相関値Rが閾値THよりも大きい場合は、ステップS609に進む。この閾値THは実験的に好適な値を求めるようにすればよい。
ステップS607において、関連被写体選択部203は、主被写体の顔とサイズが近いと判定された顔の位置情報(X,Y)を元に、この参照している顔が予め設定された被写界内の所定領域Dの内部に存在するかどうかを判定する。ここで、予め設定された所定領域Dとは、例えば撮影被写界内の縦、及び、横八割、面積比64%の領域など、任意に設定することができる。所定領域Dの内部に存在すると判定された場合は、ステップS608へ進み関連被写体として選択する。ステップS607において、参照している顔が、所定領域Dの内部には存在しないと判定された場合は、ステップS609へ進む。
ステップS609において、関連被写体選択部203は、カウンタNの値と予めメモリ106に書き込まれている顔検出数とを比較する。カウンタNの値が顔検出数に達していなければ、ステップS603に戻り、別の顔の顔検出結果を選択して同様の処理を繰り返す。カウンタNの値が顔検出数に達した場合、顔検出された全ての顔に対して関連被写体選択処理が実行されたことになるので、関連被写体選択処理を終了する。
このように、図6(A)に示す関連被写体選択アルゴリズムでは、関連被写体選択部203は、顔検出部201によって検出された主被写体以外の顔のうち、主被写体の顔とサイズが近く、かつ、被写界内の中央部付近に位置する顔を関連被写体として選択している。
次に、図6(B)を用いて、関連被写体選択アルゴリズムの別の例について説明を行う。図6(B)に示す関連被写体選択アルゴリズムは、図6(A)のステップS607の処理を、ステップS621、S622の処理に置き換えたものであるので、この処理を中心に説明を行う。
図6(B)のステップS606において、主被写体の顔検出情報と、参照している顔の顔検出情報との相関値Rが閾値THよりも小さい場合は、この参照している顔は主被写体の顔に近いサイズであると判定し、ステップS621に進む。
ステップS621において、関連被写体選択部203は、主被写体の顔の大きさに応じて第2閾値を設定する。そして、ステップS622において、関連被写体選択部203は、主被写体の顔に近いサイズであると判定された顔の中心位置と、主被写体の顔の中心位置との距離が、ステップS621で設定した第2閾値以内であるかを判定する。そして、この距離が第2閾値以内であれば、ステップS608へ進む。ステップS608では、関連被写体選択部203は、その参照している顔を関連被写体として選択する。このように図6(B)に示す関連被写体選択アルゴリズムでは関連被写体選択部203は、顔検出部201によって検出された主被写体以外の顔のうち、主被写体の顔とサイズが近く、かつ、主被写体の顔と距離が近い顔を関連被写体として選択している。すなわち、図6(A)と異なり、参照している顔が被写界の端部に位置していたとしても、主被写体の顔からの距離が近ければ関連被写体として選択されることがある。
このステップS621で設定される第2閾値は、主被写体の顔が大きくなるほど、大きな値となるように設定される。これは2人の人物の距離が同じであっても、それらの人物が撮像装置からどの程度離れているかによって、画像データ中における2人の距離が変化してくるためである。ただし、顔が大きくなるほど、無制限に第2閾値を大きくしても良いというわけではなく、この第2閾値に上限を設けるようにしても構わない。これは、顔がある程度大きくなると、ポートレートのような構図を意図した撮影である可能性が高く、このような場合は、関連する被写体であるならば、その距離がむしろ近くなることが予想されるためである。
なお、ここでは図6(A)、図6(B)のいずれの例でも、顔サイズを判定基準に用いていたが、これに限られるものではない。主被写体の顔と参照している顔の距離だけで関連被写体を選択しても構わない。それぞれの顔について連続して検出できている時間を計測し、検出できている時間が主被写体の顔と同程度である顔を関連被写体として選択しても構わない。それぞれの顔について移動軌跡を蓄積し、検出した移動軌跡が主被写体の顔と類似する顔を関連被写体として選択しても構わない。あるいは、個人認証を用いて、主被写体選択部202によって主被写体であると判定された被写体と関連性の高い被写体を選択するようにしても構わない。例えば、個人の優先順位を予めメモリに記憶させておくことで、検出された顔に対して認証処理を行い、主被写体として選択された人物の優先順位と近い優先順位を備える人物のみを、関連被写体として選択することも可能である。
〔目つむり検出アルゴリズム〕
次に、前述した目つむり検出アルゴリズムについて図7を用いて詳細に説明する。
目つむり検出部204は、システム制御部107の制御下において、これから説明する各処理を実行する。その際、顔検出処理の過程でメモリ106に記憶された顔検出情報を用いる。
ステップS701において、目つむり検出部204は、顔検出処理で得られた顔領域から目と推定される領域の画像を読み込む。
ステップS702において、目つむり検出部204は、目画像のテンプレートデータをメモリ106から読み込む。
ステップS703において、目つむり検出部204は、顔検出処理で得られた目領域の画像と、テンプレートデータとを比較して目の開き具合が充分か否かを判定する。開き具合が充分であると判定された場合には、ステップS705へ進み目つむりが検出された旨の表示を行う対象とはしない。
ステップS704において、目の開き具合が充分でないと判定された場合には、ステップS706へ進み、表示部110に目つむり警告を行う対象として通知する。表示部110は、この通知を受けて、ステップ312にてレックレビュー表示をする際に、被写体が目つむりしている旨を画像データに重畳して表示する。
なお、目つむり警告として画面上に文字やアイコンを合成して表示する方法のほかに、音声や、LED等を点滅または点灯させることも可能である。
以上説明したように、本実施形態によれば、選択された主被写体と相関の高い被写体を関連被写体として選択し、選択された主被写体、及び、関連被写体に対してのみ目つむり検出を行う。こうすることで、ユーザが撮影対象として意図する被写体に対してのみ目つむり検出を行う確率を向上させることが可能となる。
特に、デジタルカメラでは、AF処理の対象としての主被写体を選択するタイミングと、実際に目つむり検出を行うタイミングには開きがあることが多いため、主被写体を選択した後に、別の被写体が被写界内に登場するような状況も考えられる。仮に、目つむり検出の対象を、予め選択された主被写体と相関の高い被写体ではなく、単に顔サイズや位置などから求めた重みが大きい被写体を選択するように構成したとする。この場合、撮影直前にカメラの近くに人が登場した場合には、この顔に目つむり検出の対象として選択される確率が高くなってしまう。
これに対し、本実施形態では、主被写体として相関の高い被写体を目つむり検出の対象として選択している。そのため、主被写体を選択する第1の操作(レリーズボタンの半押し)と関連被写体を選択する第2の操作(レリーズボタンの全押し)の間に意図しない人物が被写界に登場しても、その人物が目つむり検出の対象として選択される確率を低くすることが可能となる。
さらに、ユーザが方向指示ボタンで任意の被写体を主被写体として選択したような場合には、必ずしもその主被写体が他の被写体よりも大きく写っている、あるいは、画面の中央よりに位置しているとは限らない。このような状況下では、単に顔サイズや位置などから求めた重みが大きい被写体を目つむり検出の対象として選択してしまうと、ユーザが意図している被写体に対して目つむり検出を行える可能性は低い。これに対し、本実施形態では、ユーザが方向指示ボタン113で任意の被写体を主被写体に変更した場合であっても、ユーザが新たに選択した主被写体を基準として、余計な被写体がどれであるかを判定する。そのため、ユーザが撮影対象として意図する被写体に対してのみ目つむり検出を行える確率を向上させることが可能となる。
また、本実施形態では、ステップS310にて関連被写体を選択してから、ステップS311にて主被写体と関連被写体に対して目つむりの検出を行ったが、この処理の順を逆にしても構わない。すなわち、ステップS309にて検出されたすべての顔に対して目つむりの検出を行い、目つむりであると判定された顔から、主被写体と関連被写体に該当するものを選択して、ステップS312のレックレビューでその旨を表示する。このようにすることで、目つむりの処理時間は短縮されないが、余計な被写体に対しては目つむりの警告表示が行われないため、ユーザにとって煩わしい表示となることを抑止することができる。
(実施形態2)
本実施形態は主被写体、及び、関連被写体を選択し、選択された顔に対して個人認証を行い、それ以外の顔に対しては個人認証を行わない実施形態に関して説明する。本実施形態に係る撮像装置の構成は実施形態1に加え、メモリ106は、カレンダー情報や日付に関する情報を有している。なお、本実施形態におけるデジタルカメラの画像処理部104は、目つむり検出部204に代えて、個人認証部を有しているものとする。
〔デジタルカメラの全体的な動作〕
図8は実施形態2に係るデジタルカメラの全体の動作をフローチャートに示したものである。尚、実施形態1で説明した処理と同じ処理を行うステップは、図3と同じ符号を付けている。
ステップS301からステップS310までとステップS312からステップS316までは、実施形態1の図3で示した各ステップの処理と同じであるので説明は割愛する。
ステップS801において、画像処理部104は、主被写体、及び、関連被写体として選択された顔に対して上述した方法にて個人認証を行い、それ以外の顔に対しては個人認証を行わずステップS802へと進む。
ステップS802において、画像処理部104は、個人認証された人物に対して、撮影履歴の記録をメモリ106に対して行う。画像処理部104は、デジタルカメラ内部に搭載されたカレンダーに従い、同じ日に撮影された画像データにおける個人認証結果をメモリ106に蓄積している。すなわち、同じ日であれば、撮影した画像データから個人が認証されるたびに、その個人の撮影回数を表すカウンタを増加させる。そして、次のステップS312において、システム制御部107が、撮影した画像とともに、どの人物がその日に何回撮影されたのかを示す数字を表示部110に表示させる。このように構成することにより、ユーザが仲間を均等に撮影することを手助けすることが可能となる。もちろん、カウントする期間はユーザが任意に設定することが可能であり、ユーザが指定した期間の間だけカウントを継続したり、電源のオンとオフをトリガーとしてカウント期間を設定したりすることも可能である。
以上の構成により、主被写体との相関に基づいて関連被写体を選択し、主被写体及び関連被写体と選択された被写体に対してのみ個人認証を行うことで、被写体を区別せずに個人認証を行った場合に比べ、個人認証に必要とする時間を短縮することが可能となった。なお、本実施形態によれば、主被写体、及び、関連被写体と選択された被写体に対してのみ個人認証を行うため、目立ちにくい構図で撮影されてしまった人物は撮影回数のカウント対象となりにくくなる。そのため、たまたま被写界に入ってしまったような人物は、個人認証可能な人物であったとしてもカウントされず、その人物にとって好適な構図である画像に絞って、撮影回数をカウントすることが可能となる。
(実施形態3)
本実施形態は主被写体、及び、関連被写体を選択し、該選択された主被写体と関連被写体に対して赤目補正を行う実施形態である。本実施形態に係る撮像装置の構成は実施形態1と同じである。なお、本実施形態におけるデジタルカメラの画像処理部104は、目つむり検出部204に代えて、赤目検出部、赤目補正部を有しているものとする。
〔デジタルカメラの全体的な動作〕
図9は実施形態3にかかる撮像装置全体の動作を示すフローチャートである。実施形態1の図3と同じ処理を行う部分に対しては同じ符号を付けている。
ステップS304からステップS310において、主被写体と関連被写体を選択後、ステップS901において、システム制御部107は、主被写体、及び、関連被写体が赤目になっているか否かの赤目検出行う。赤目検出の方法は、まず顔検出処理によって検出された目領域の色相を調べ、目の領域の平均色相を検出し赤色成分が設定された閾値以上の場合に赤目が生じていると判定する。
赤目が検出された場合はステップS902へと進み、赤目補正を行う。赤目補正とは赤目が検出された領域の彩度を低くする補正を行うことである。
このような構成とすることで、ユーザが撮影対象としていると推定される被写体以外には、赤目補正を行わないので、処理時間が短縮されより使い勝手の良い撮像装置を提供することが可能となった。
また、実施形態1と同様に、関連被写体の選択処理と赤目の検出処理の順を逆にしても構わない。すなわち、ステップS309にて検出されたすべての顔に対して赤目検出を行い、赤目であると判定された顔から、主被写体と関連被写体に該当するものを選択して、ステップS312のレックレビューでその旨を表示する。このようにすることで、余計な被写体に対しては赤目検出結果の表示が行われないため、ユーザにとって煩わしい表示となることを抑止することができる。
なお、本発明が主被写体、及び、関連被写体に対して行う画像解析は、目つむり検出、赤目補正、個人認証に限られるものではなく、肌色処理や笑顔検出など、被写体の顔に対して何らかの検出処理や補正処理が行えるものであればよい。
また、実施形態1、実施形態2、及び、実施形態3は画像処理装置としてデジタルカメラを例に挙げて説明を行ったが、これに限られるものではない。カメラと情報処理装置の間で画像データの通信を行い、カメラで撮影した画像データに対して、情報処理装置側で画像解析を行うようなシステムからなる画像処理装置にも適用することが可能である。また、目つむり検出、赤目補正、あるいは、個人認証を、必要とされる人物に対してのみ行うという目的であれば、ネットワークを介して受け取った画像データに対して情報処理装置がこれらの画像解析を行うことも可能である。
つまり、上記の実施形態1、実施形態2、及び、実施形態3、いずれかと同等の処理を、プログラムでも実現できる。この場合、図2をはじめとする構成要素の各々は、情報処理装置内部のCPUが実行するサブルーチンで機能させれば良い。