以下、本発明の実施の形態について、図面を参照しながら説明する。本実施形態では、動画像中でユーザが指定した被写体を追尾する機能と、画像から人物の顔領域を検出する顔検出機能を備えたデジタルカメラ(画像処理装置)を例にあげて説明を行う。
図1に示すデジタルカメラは、撮影レンズ10、絞り機能を備えるシャッター12、光学像を電気信号(画像信号)に変換する撮像素子14を備える。撮像素子14から撮像時に出力されたアナログ信号は、A/D変換器16によって、ディジタル信号(画像信号)に変換される。
制御部を構成するメモリ制御回路22及びシステム制御回路50は、タイミング発生回路18を制御する。タイミング発生回路18は、クロック信号や制御信号を撮像素子14、A/D変換器16及びD/A変換器26に供給してコントロールする。
メモリ制御回路22は、A/D変換器16、画像処理回路20、画像表示メモリ24、D/A変換器26、メモリ30、圧縮・伸長回路32を制御する。A/D変換器16からのデータ(画像信号)或いはメモリ制御回路22から出力されたデータ(画像信号)は、画像処理回路20によって所定の画素補間処理や色変換処理が施され、画像表示メモリ24或いはメモリ30に書き込まれる。この画像表示メモリ24に書き込まれた表示用の画像データは、D/A変換器26を介して、TFT LCD等から成る表示部28(表示手段)に表示される。この表示部28は、撮像素子14から連続して出力された信号から生成された画像データを、動画像としてリアルタイムで表示することにより、電子ファインダ機能を担う。また、メモリ30は、撮影した静止画像や動画像を格納するためのメモリであり、所定枚数の静止画像や所定時間の動画像を格納するのに十分な記憶量を備えている。このメモリ30は、システム制御回路50の作業領域としても使用可能に構成されている。
このメモリ30に格納された画像は、圧縮・伸長回路32に読み込まれて、適応離散コサイン変換(ADCT)等により画像データが圧縮処理又は伸長処理される。この圧縮伸長処理後のデータは、メモリ30に書き込まれる。
また、本実施形態のデジタルカメラは、各種の動作指示を入力するための操作手段としてのシャッタースイッチSW1 62、シャッタースイッチSW2 64、操作部70を備える。操作部70は、例えば、スイッチ、上下左右キー釦、ダイアル、タッチパネル、視線検知によるポインティング、音声認識装置等の単数或いは複数の組み合わせで構成される。ここで、操作部70に含まれるタッチパネルは、表示部28と一体的に構成されており、ユーザが表示部28の画面に触れることで、その触れた位置の画面上の座標を示す情報をシステム制御回路50に送信する。
タイマー130は、撮影時間の生成や経過時間の計測に使用するもので、システム制御回路50によって制御される。追尾指定判定部131は操作部70を監視し、タッチパネルで直接追尾枠が設定されたか否かを判定するものである。
また、このデジタルカメラでは、AF(オートフォーカス)処理、AE(自動露出)処理、EF(フラッシュプリ発光)処理を行う。このため、デジタルカメラの画像処理回路20は、撮像された画像データに対して所定の演算処理を行い、得られた演算結果に基づいてシステム制御回路50が露光制御回路40、測距制御回路42を制御する。さらに、画像処理回路20は、撮像した画像データ(画像信号)を用いて所定の演算処理を行い、得られた演算結果に基づいてAWB(オートホワイトバランス)処理を行う。露光制御回路40は、絞り機能を備えるシャッター12を制御し、測距制御回路42は、撮影レンズ10のフォーカシングを制御する。また、システム制御回路50は、撮影レンズ10のズーミングを制御するズーム制御回路44を制御する。
システム制御回路50には、画像処理回路20で処理された画像データや画像表示メモリ24に保存されている画像データの解析を行い画像データ内の顔と思われる領域を検出する、顔検出部101(顔検出手段)が接続されている。顔検出部101は、例えば、画像データ内で人物の目、鼻、口らしき形状のものが所定の位置関係で配置されている領域を顔領域として検出する。顔検出部101は、顔と思われる領域を検出した際に、人間の顔と思われる確率、入力画像データ中の位置及びサイズ等を出力する。また、顔検出部は、検出した顔の各々の特徴点の特徴量を出力することができるように構成されている。
システム制御回路50には、画像表示メモリ24やメモリ30に記録された2つの画像に対して輝度情報と色情報の少なくとも一方を基に画像の差分演算を行い、画像間で相関の高い領域を検出する画像比較部102が接続されている。
システム制御回路50には、電気的に消去・記録可能なEEPROM等で構成された不揮発性メモリ56が接続されている。また、システム制御回路50には、メモリカード等の外部記録媒体とデータの送受信を行うカードコントローラ90が接続され、該カードコントローラ90を介してメモリカード等の外部記録媒体120が接続されている。
システム制御回路50は、不図示のROMに記憶されたプログラムに従って以下に説明する各処理を実行する。システム制御回路50に接続されたシャッタースイッチSW1 62は、不図示のシャッターボタンの操作途中の状態でON指示の信号をシステム制御回路50に出力する。このON信号を受けたシステム制御回路50は、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等の動作を開始する。
また、シャッタースイッチSW2 64は、不図示のシャッターボタンの操作完了の状態でON指示の信号をシステム制御回路50に出力する。このON指示の信号を受けたシステム制御回路50は、撮像素子14から読み出した信号をA/D変換器16及びメモリ制御回路22を介してメモリ30に画像データを書き込む本撮影の露光処理の動作開始を指示する。次に、このシステム制御回路50は、画像処理回路20やメモリ制御回路22での演算結果を用いた現像処理の動作開始を指示する。さらに、システム制御回路50は、メモリ30から画像データを読み出し、圧縮・伸長回路32で圧縮を行い、外部記録媒体120に画像データを書き込む記録処理の動作開始を指示する。
次に、上述のように構成されたデジタルカメラにおける撮影処理について、図2のフローチャートを参照して説明する。
このデジタルカメラの撮影処理では、デジタルカメラの電源が入って撮影可能状態となると、制御部を構成するメモリ制御回路22及びシステム制御回路50が、撮影処理の動作を開始する。システム制御回路50は、撮像素子14への露光を開始し、連続して生成される画像データを用いて表示部28に動画像をリアルタイムで表示させる。
この撮影処理では、ステップS201において現在の撮影モードが操作部70に含まれるタッチパネルからのユーザ入力(以後、タッチ入力)あるいは指定手段としての上下左右キー釦(操作部材)操作によるユーザ入力に対応して追尾枠指定が可能な追尾モードかどうかを判断する。本実施形態では、表示部28が動画像を表示している際に、ユーザが表示部28の画面(操作部70に含まれるタッチパネル)に触れる、あるいは操作部70に含まれる設定キー(不図示)を操作することで追尾処理に移行する。なお、追尾処理への移行の操作はこれらに限定されず、設定キー以外の他の所定キー操作により追尾処理へ移行するようにしてもよい。
なお、ユーザは追尾処理の実行の可否を操作部70に含まれるメニューボタンで事前に設定することができる。本実施例では、メニューボタンで事前に「顔+追尾優先AFモード」が設定されている場合、追尾処理を実行することが可能になる。システム制御回路50は、追尾処理の実行が可能な「顔+追尾優先AFモード」であると判定した場合(ステップS201でYES)に、ステップS202へ進み、後述する追尾処理のサブフローを実行する。
追尾処理(ステップS202)では、ユーザからのタッチ入力、設定キー操作を受け付けると、タッチ入力された位置あるいは所定の位置(ここでは画面中央)を追尾枠位置として画面内の座標に変換する処理を実行する。このとき、デジタルカメラでは、ユーザのタッチ入力に対応した位置に表示中の画面に重畳して枠(指標)を表示することによって、タッチ入力が受け付けられたことを表示するように構成しても良い。
さらに、この追尾処理(ステップS202)では、タッチ入力あるいは設定キー操作に基づいて、追尾枠位置における被写体判定を行い、その判定に応じて被写体に合わせた追尾処理を開始して次のステップS203へ進む。なお、追尾処理については、図3のフローチャートを用いて、後に詳述する。
ステップS202の追尾処理の後、システム制御回路50は、ステップS203に進み、シャッタースイッチSW1 62が押されなければステップS201に戻る。
一方、システム制御回路50は、追尾処理の実行が可能な「顔+追尾優先AFモード」でないと判別した場合(ステップS201でNO)、設定されているモードにて主被写体を選択し、シャッタースイッチSW1 62が押されるまで待機する(ステップS203)。「顔+追尾優先AFモード」以外のモードとしては、指定したAF領域による「1点AFモード」や、予め設定された複数のAF領域にかかる被写体の中から至近に位置する被写体を主被写体として選択する「多点自動AFモード」などがある。
次に、システム制御回路50は、シャッタースイッチSW1 62が押されたと判定した場合(ステップS203でYES)に、設定されている主被写体に重みを置いたAF・AE処理(ステップS204)を行う。
そして、システム制御回路50は、シャッタースイッチSW2 64が押下されるまでAF・AE処理(ステップS204)を続行して待機する(ステップS205でNO)。なお、この待機状態で、シャッタースイッチSW1 62の押下が解除されると、ステップS201へ戻る。
システム制御回路50は、シャッタースイッチSW2 64が押下されたと判定した場合に、ステップS206に進み、撮影を行い、撮影された画像ファイルを外部記録媒体120に記録し、撮影処理を終了する。
次に、図5と図7を用いて、ユーザによる追尾枠指定時における課題を説明する。
顔の場所と追尾枠位置が一致した(近い)場合に自動で顔位置を追尾枠位置とさせる従来のデジタルカメラにおいて、タッチ入力の場合はタッチされた位置に、追尾処理移行に割り当てられた釦が押下された場合は画面中央に追尾枠が表示される設定とする。
例えば、図5(A)のようにタッチ入力がされた場合は、タッチされた位置を追尾領域として設定する。この場合、詳細は後述するが、追尾領域と検出された顔の位置が近いため、顔の位置を追尾領域に設定して、図5(B)のように追尾中の顔領域を枠(指標)で囲って表示する。また、枠(指標)で囲われた人物の顔領域が画面内を移動したときに、図5(C)、(D)のように人物の顔の移動に合わせて枠の表示更新を行う。なお、画面右下の花の位置でタッチ入力された場合は、花の位置と人物の顔の位置が十分離れていれば、花の位置が追尾領域に設定される。一旦追尾領域が設定されても、ユーザにより再度タッチ入力がされた場合は、新たにタッチ入力された位置に基づいて追尾領域が再設定される。
次に、設定キーなどの操作により追尾処理に移行した場合について説明する。図7(M)の表示例の状態で、設定キーなど追尾処理移行に割り当てられた釦が押下されると、図7(N)のように画面中央に追尾枠が表示される。図7(N)では、追尾枠位置は顔の位置から離れている。この状態で上下左右キー釦により右を選択すると、図7(O)のように追尾枠は右に移動する。さらに上下左右キー釦を操作して右下に追尾枠を移動させることで、図7(P)のように追尾枠を花の位置まで移動させることができる。
一方、図7(A)の表示例の状態で、追尾処理移行に割り当てられた釦が押下されると、図7(B)のように中央に追尾枠が表示される。この状態では、追尾枠位置に顔が存在するので、追尾枠位置は自動的に顔位置に設定される。この状態で上下左右キー釦により追尾枠を花の位置まで移動させようとしても、図7(C)の状態において顔の位置が追尾枠に含まれるため、追尾枠位置は図7(D)のように顔の位置に自動変更されることになる。そのため、ユーザが花の位置に追尾枠を設定したい場合、追尾枠を花の位置に移動することができない。
また、追尾枠を複数の顔位置間で直接移動する機能(=顔セレクト)を搭載するカメラの場合、追尾モード移行に割り当てられた釦が押下された場合に、複数の顔検出がされてしまうと、上下左右キー釦に対して顔セレクト機能の割り付けが行われる。顔セレクト機能の状態では、上下左右キー釦の操作は、複数の顔の中から顔を選択する操作に限定される。例えば、図7(E)の状態から上下左右キー釦で左を選択すると、図7(F)のように左側の顔に追尾枠が移動する。ここで、図7(E)では、追尾枠の左側に三角のマークを表示し、左側の顔に追尾枠を移動可能であることを示している。さらに、図7(F)の状態から上下左右キー釦で右を選択すると、図7(G)のように右側の顔に追尾枠が移動し、その状態から上下左右キー釦で左を選択すると図7(H)のように左側の顔に追尾枠が移動する。この場合、ユーザが上下左右キー釦の操作により人物の右側にある花に追尾枠を設定しようとしても、顔セレクト機能が実行されている状態では、追尾枠を顔以外に設定できない。
これらの課題を解決するため、撮影処理中に実行される、本発明の実施の形態に係る追尾処理について、図3のフローチャートを参照して説明する。このデジタルカメラで行われる追尾処理は、顔以外の物体を主被写体として追尾する物体追尾処理と、画面内に表示中のある特定の人物の顔を主被写体として追尾する顔追尾処理との2つに大別される。
追尾処理が開始されると、システム制御回路50は、ステップS300において、ユーザからの追尾処理移行操作があったかどうか確認を行う。具体的には、タッチ入力又は設定キーの操作が行われたかどうか確認する。システム制御回路50は、新たな追尾処理移行操作が行われていると判定した場合は、ステップS302へ進む。一方、新たな追尾処理移行操作が行われていないと判定した場合は、ステップS301へ進み、追尾の処理中であるか否かを確認する。なお、設定キーが操作された場合は、タイマーのカウントを開始する。
ステップS301において、システム制御回路50は、追尾中でないと判定した場合には、図3のフローチャートを終了する。システム制御回路50は、追尾中であると判定した場合には、ステップS312に進み、顔追尾処理がすでに開始されているか否かの判定を行う。
システム制御回路50は、ステップS312で顔追尾処理中でないと判定した場合には、後述するステップS309へ進んで顔追尾判定処理を実行する。一方、システム制御回路50は、ステップS312で顔追尾処理がすでに開始されていると判定した場合には、ステップS332へ進み、顔セレクトの次候補選択か否かを判定する。ここでは、複数の顔が検出されている状態での顔追尾中に上下左右キー釦が操作された場合に、顔セレクトの次候補選択と判定する。顔セレクトの次候補選択と判定した場合は、ステップS333へ進み、次候補顔位置情報を取得する。さらにステップS303へ進み、次候補の顔位置を利用し、追尾枠領域の変更をする。一方、ステップS332で顔セレクトの次候補選択でないと判定した場合は、後述するステップS311へ進んで顔追尾処理を実行する。
ステップS300において、システム制御回路50は、ユーザからの追尾処理移行操作があったと判定した場合に、ステップS302へ進み、追尾座標取得の処理を実行する。ここで、ユーザからの追尾処理移行操作は、ユーザからの追尾枠指定の入力と換言することができる。すなわち、タッチ入力により追尾処理に移行した場合は、タッチされた位置に追尾枠が指定され、設定キーの操作により追尾処理に移行した場合は、所定位置(本実施例では画面中央)に追尾枠が指定されたことになる。このステップS302の追尾座標取得の処理では、操作部70に設けられた追尾枠制御部が、タッチされた位置あるいは画面中央位置を画面上の座標に変換し、その座標を取得してシステム制御回路50へ送信する。
次にシステム制御回路50は、ステップS323へ進み、タッチ入力による追尾枠設定か否かを判定する。ステップS323でタッチ入力による追尾枠設定と判定したら、ステップS303へ進む。
一方、ステップS323でタッチ入力による追尾枠設定と判定しなかった場合は、ステップS325へ進み、システム制御回路50は、顔検出から得られる顔座標位置情報を取得する。次に、ステップS326で追尾枠座標と顔座標を比較し、顔の位置が追尾枠(所定領域=ここでは画面中央)に含まれるか否かを判定する。顔の位置が追尾枠に含まれない場合はステップS303へ進み、顔の位置が追尾枠に含まれる場合はステップS327へ進む。
システム制御回路50は、ステップS327で、所定時間経過を計測するためのタイマー時間を更新し、ステップS328へ進む。ステップS328において、システム制御回路50は、ステップS302で座標を取得した位置(1回目は画面中央)に表示用の追尾枠領域を設定する。
ステップS329に進み、システム制御回路50は、画像表示メモリ24に対し、ステップS328で設定した領域に追尾枠表示を更新する。ステップS330へ進み、システム制御回路50は、上下左右キー釦が操作されたか否かを判定する。上下左右キー釦が操作された場合は、ステップS334でタイマーをリセットし、ステップS327へ戻る。一方、上下左右キー釦が操作されなかった場合は、ステップS331へ進み、所定時間が経過するまで上下左右キー釦が操作されたか否かの監視を続ける。上下左右キー釦が操作されずに所定時間が経過した場合(ステップS331でYes)は、ステップS303へ進む。
なお、ステップS334を経由してステップS330に再度進んだ場合、タイマーの所定時間を1回目より長く設定してもよい。なぜなら、ステップS334を経由した場合は、上下左右キー釦操作が行われているため、ユーザは追尾枠を移動させようとしている可能性が高い。そこで、1回目の所定時間(第2の所定時間)より長い所定時間(第1の所定時間)を設定することで、ユーザの上下左右キー釦操作による追尾枠移動をより確実に受け付けることができる。
上記説明したように、上下左右キー釦操作から(第1の)所定時間が経過するまでは、顔検出領域に基づく追尾領域の設定を制限する。すなわち、追尾枠内に顔が検出されたとしても、顔の位置に追尾枠を自動変更させない。また、設定キー操作による追尾処理移行から(第2の)所定時間が経過するまでは、追尾枠内に顔が検出されたとしても、顔の位置に追尾枠を自動変更させない。したがって、所定時間が経過するまでの間に上下左右キー釦による操作が行われた場合は、該操作に応じて追尾枠領域が設定され、追尾枠表示が更新される。例えば、図7(I)のような画像が表示されている状態において、設定キー操作により追尾処理に移行すると、図7(J)のように中央に追尾枠が表示される。図7(J)の状態において、設定キー操作による追尾処理移行から(第2の)所定時間の間に、上下左右キー釦により右へ移動するよう操作が行われた場合は、顔の位置に追尾枠が自動変更されることなく、追尾枠を右方向へ移動することができる。さらに、上下左右キー釦の操作から(第1の)所定時間以内に上下左右キー釦を再度操作するのを続けることにより、図7(K)を経て図7(L)のように花の位置へ追尾枠を移動させることが可能になる。
システム制御回路50は、ステップS323で、タッチ入力による追尾枠設定と判定した場合は、ステップS303の追尾領域を設定する処理へ進む。
タッチ入力による追尾処理移行と判定した場合は、表示画面上で被写体位置を直接指定できるため、上下左右キー釦の操作によって追尾枠位置指定されることを考慮する必要性が低い。そのため、タッチ入力による追尾処理移行の場合は上記のような所定時間経過待ちをしないようにすることで、タッチ入力による表示画面の反応性を向上させることができる。なお、タッチ入力の場合も設定キー操作の場合と同様に所定時間経過待ちをさせるようにしてもよい。
ステップS303では、得られた追尾枠座標に基づいて、追尾する被写体の追尾領域を設定する。ここで、システム制御回路50は追尾領域を設定する設定手段として機能する。追尾領域を設定する処理では、画像表示メモリ24に記憶されている表示画像データとタッチされた座標あるいはステップS328で追尾枠設定された位置から表示画像データ上の位置を求める。さらに、この追尾領域を設定する処理では、表示画像データ上の位置周辺の輝度情報から得られるコントラストや、画像の特徴量などを考慮して被写体の追尾領域のサイズを求める。すなわち、タッチされた座標あるいは追尾枠設定された位置を中心として複数のサイズの仮の追尾領域を設定し、コントラストや特徴量が所定の条件を満たす仮の追尾領域の最小サイズとなるものを追尾領域として設定する。
ここで、コントラストや特徴量を所定の条件と比較するのは、これらの値がある程度のレベルに達していないと、他の領域との識別が困難になるためである。また、最小サイズを選択するのは、サイズを大きく設定するほど、その設定した追尾領域の中に追尾対象とする被写体の以外の背景が含まれてしまい、追尾精度が低下してしまう可能性が高くなるためである。
ステップS304において、システム制御回路50は、ステップS303で正しく被写体の追尾領域が求められたか否かを判定し、正しく被写体の追尾領域が求められたと判定した場合(ステップS304でYES)はステップS308に進む。
一方、システム制御回路50は、追尾枠座標周辺の輝度が均一でコントラストが検出できなかった場合や画面一面が同じようなパターンとなった場合、正しく追尾領域が求められないことがある。このような場合(ステップS304でNo)には、ステップS322へ進み、ステップS322の追尾不能の処理として、ユーザに追尾できない被写体である旨表示する等の処理を行い、図3のフローチャートを終了する。
システム制御回路50は、ステップS308において、上述のようにして決定した追尾領域の色情報を記憶しておく。ステップS309に進み、システム制御回路50は、顔追尾可能な被写体かどうかの判定処理を行う。顔追尾判定処理については、図4を用いて後述する。
次に、システム制御回路50は、ステップS310において、ステップS309の顔追尾判定処理において、顔追尾処理が可能と判定された場合に、ステップS311へ進み顔追尾処理を行う。
この顔追尾処理では、システム制御回路50が、画像表示メモリ24の表示画像データと顔検出部101とを用いて、表示中の画面内に存在する顔の領域を求める。
システム制御回路50は、タッチ入力で追尾領域が設定されてから、または、物体追尾処理で追尾領域が更新されてから、顔追尾処理に初めて移行した際に、ステップS309の顔追尾判定処理で顔追尾可能と判定された顔領域を新たな追尾領域として設定する。
また、すでに顔追尾処理中であれば、システム制御回路50は、次の追尾領域となる顔領域を設定する。この場合には、例えば、前回の検出された追尾中の顔領域の位置と現在の表示画像データ上で検出された複数の顔領域との距離や、それぞれの顔領域の移動量や移動方向等から、前回の追尾領域として設定された顔領域と同じと思われる顔領域を設定すればよい。または、システム制御回路50は、図示しない個人認証などの制御モジュールを用いて、前回検出された追尾中の顔領域と現在の顔領域の特徴点や類似性等から顔領域の関連性を検出する。そして、システム制御回路50は、検出した顔領域の関連性から、前回の顔領域と同一と思われる顔領域を特定する等して、次の追尾領域となる顔領域を設定してもよい。
次に、ステップS320へ進み、システム制御回路50は、ユーザがタッチパネル上のGUIボタン等を操作して追尾の終了の指示をしたかどうかを判定する。システム制御回路50は、追尾の終了の指示があったと判定したときは、ステップS321へ進んで追尾終了処理を行う。追尾終了処理において、システム制御回路50は、ユーザに追尾終了を通知した上で、追尾領域を示す枠(指標)の表示を終了させる。
ステップS320において、システム制御回路50は、タッチ追尾の終了の指示がないと判定した場合は、図3のフローチャートを終了し、図2のステップS203へと進む。そして、システム制御回路50は、ステップS203でシャッタースイッチSW1 62が押されていなければ、ステップS201を経由し、新たな表示画像データに対して、再び図3に示すフローチャートを実行する。このように、シャッタースイッチSW1 62が押されるまで、これらの処理を繰り返すことで追尾を継続する。
次に、図3で前述したステップS310において、顔追尾処理が不可能と判定された場合には、ステップS313に進み、システム制御回路50が輝度情報による物体追尾が可能であるかどうかを判定する。この輝度情報による物体追尾が可能か否かの判定は、例えば、追尾領域を含む周辺領域が追尾領域を更新したときと比較して大きく輝度が変化していないか、追尾領域周辺の輝度が均一になっていないかといった条件に基づいて行う。これらの条件により、輝度情報の相関による物体追尾の精度が低下すると判断した場合は、物体追尾不可能とする。
システム制御回路50は、上記条件に基づいて輝度情報による物体追尾可能と判断した場合には、ステップS314へ進み、輝度情報を用いた物体追尾の処理を行う。この輝度情報による物体追尾の処理は、現在の画像表示メモリ24の表示画像データと前回追尾領域が設定された表示画像データにおける追尾領域の画像データとを、画像比較部102を用いて相関を検出することにより行う。すなわち、この物体追尾の処理では、前回追尾領域が設定された表示画像データで追尾領域としていた画像データが、現在の表示画像データのどこに移動したかを、それぞれの輝度情報を用いた相関演算により算出する。そして、現在の表示画像データのうち、前回追尾領域が設定された表示画像データで追尾領域としていた画像データと最も相関の高いと判断された領域を、現在のフレーム画像における新たな追尾領域として更新することで物体追尾を行う。
次に、ステップS315へ進み、システム制御回路50は、新たに追尾領域と設定された領域の色情報を記憶して、ステップS320へ進む。ステップS320において、システム制御回路50は、前述したようにユーザによる追尾の終了の指示の有無を判定し、追尾の終了の指示がないと判定したときは、この図3のフローチャートを終了し、図2のステップS203に進む。システム制御回路50は、タッチ追尾の終了の指示があったと判定したときは、ステップS321へ進んで追尾終了処理を行う。このシステム制御回路50は、追尾終了処理において、ユーザに追尾終了を通知した上で、追尾領域を示す枠(指標)の表示を終了させる。
次に、前述したステップS313で、システム制御回路50が、輝度情報による物体追尾が可能であるか否かを判定した結果、物体追尾不能と判定した場合には、ステップS316へ進む。ステップS316で、システム制御回路50は、輝度情報での物体追尾が不能と判断された追尾領域に対して、次に色情報を用いた追尾を試みる。このため、システム制御回路50は、前述したステップS308又はステップS315において色情報が記憶されているかを検出する。色情報が記憶されている場合、システム制御回路50は、その色情報を用いて現在の表示画像データと類似した色分布を持つ領域がないか、表示画像データ上で検索する。
次に、ステップS317に進んで、システム制御回路50は、色情報による追尾領域の検索で新たに追尾領域の検索に成功したかどうかを判定する。成功したと判断した場合には、再度追尾可能として、ステップS318に進む。具体的には、システム制御回路50は、記憶した色情報から色相のヒストグラムを生成し、このヒストグラムとの差分が最も小さくなる領域を検出する。そして、その差分が予め定めた閾値以下であった場合には、色情報による追尾領域の検索に成功したと判断し、検出できなかった場合には失敗したと判断する。ステップS318において、システム制御回路50は、検索に成功した領域を新しい追尾領域として設定する。さらにステップS315に進み、システム制御回路50は、新たに追尾領域と設定された領域の色情報を記憶する。
一方、前述したステップS317において、システム制御回路50は、色情報による追尾領域の検索で新たな追尾領域の検索に失敗したと判断した場合に、ステップS321に進み、追尾処理を終了する。
次に、前述したステップS309における顔追尾判定処理について、図4を参照しながら説明する。顔追尾判定処理では、システム制御回路50が、現在の追尾領域に対して、顔検出結果に基づく顔追尾処理に切り替えるかどうかの判定を行う。この顔追尾判定処理では、上述したように、顔追尾処理可能と判定された場合に、顔検出結果に基づく追尾を行うことになる。また、この顔追尾判定処理で顔追尾処理が不可能と判定された場合、顔検出部101による顔検出結果を用いずに、現在の追尾領域について輝度情報や色情報に基づく物体追尾処理を実施する。
顔追尾判定処理が開始され、ステップS400に進むと、システム制御回路50は、現在の追尾領域の座標を取得する。
ステップS401に進んで、システム制御回路50は、顔検出部101を制御して、画像表示メモリ24にある現在表示中の表示画像データから表示画像データ上にある人物の顔と思われるすべての領域を検出し、それぞれの領域の座標を取得する。
次に、ステップS402に進んで、システム制御回路50は、顔検出の結果、表示画像データから顔領域が検出できたか否かを判定する。システム制御回路50は、顔領域が検出できなかった場合(ステップS402でNO)、ステップS420へ進んで顔検出回数をカウントアップした後に、ステップS421に進み、顔追尾不可能と判定する。
一方、システム制御回路50は、顔領域が検出できた場合(ステップS402でYES)、次のステップS403へ進む。ステップS403において、システム制御回路50は、追尾領域と検出されたすべての顔領域との距離をそれぞれ算出する。ステップS404に進み、システム制御回路50は、ステップS403において算出された距離の中から最も追尾領域と近い位置にある最至近顔領域を決定する。
次に、ステップS405に進み、システム制御回路50は、追尾枠指定からの追尾経過時間が所定時間未満か判定する。この追尾経過時間は、追尾枠指定してから追尾を継続して成功している時間のことであり、途中で追尾に失敗した場合にはリセットされる。システム制御回路50は、追尾枠指定からの追尾経過時間が所定時間未満であると判定した場合(ステップS405でYES)、ステップS406に進む。一方、追尾枠指定からの追尾経過時間が所定時間以上であると判定した場合(ステップS405でNO)、システム制御回路50は、ステップS408に進み、顔追尾不可能と判定する。
ステップS406において、システム制御回路50は、ステップS404で決定した最至近顔領域と追尾領域との距離が所定の閾値(所定距離)未満であるかを判定する。システム制御回路50は、閾値未満であると判断した場合(ステップS406でYES)、ステップS407へ進み、最至近顔領域での顔追尾可能な場合と判定し、顔追尾判定処理を終了する。
一方、システム制御回路50は、最至近顔領域との距離が閾値以上であると判断した場合(ステップS406でNO)、ステップS408で顔追尾不能と判定し、この顔追尾判定処理を終了する。これは、ユーザが追尾枠指定した位置と顔領域とが離れているのであれば、ユーザは顔以外のものを追尾枠指定で追尾対象として指定する意図があると考えられるためである。
なお、例えば図6(A)に示すように、タッチ入力による追尾枠領域指定の際、横顔や後ろ向きの顔等が選択され、顔検出できない場合がある。そのような場合でも、その後、図6(B)のように人物の顔が正面を向いて、安定して顔が検出できるようになる場合がある。この場合には、特開2011−35765号公報に記載のような制御によって、図6(C)、(D)のように顔検出結果による顔追尾が可能となる。
なお、上記実施形態では、ユーザが追尾対象とする被写体を指定する際、操作部70に含まれるタッチパネル、上下左右キー釦などを用いることを例にあげたが、これに限られるものではない。操作部70に含まれるダイアルや表示上のアイコンによって被写体を指定しても構わない。あるいは、動画像を取り込んだパーソナルコンピュータのアプリケーション上で上述した追尾処理を行う場合であれば、カーソルで追尾対象とする被写体を指定したり、キーボードにて追尾対象とする被写体が存在する画面上の領域を指定するようにしても構わない。
また、上記実施形態では、顔検出部101の例として、表示画像データから顔領域を検出する例をあげたが、撮像素子14にて生成された信号から、表示画像データとは別に、表示画像データよりも解像度を低くした顔検出用の画像データを生成しても構わない。
また、物体追尾処理の例として、輝度情報と色情報のいずれかを選択し、選択した情報の相関を用いて、新たな画像データから追尾領域を検出する構成を例にあげたが、これに限られるものではない。輝度情報と色情報の両方の相関の総和から新たな追尾領域を求める構成としてもよいし、輝度情報と色情報の一方のみを用いて新たな追尾領域を求めるようにしてもよい。すなわち、画像間の相関の高い領域を検出し続けることで、追尾領域を更新する構成であればよい。
さらに、上記実施形態は撮影時に限らず、すでに撮影された動画像に対して、パーソナルコンピュータのアプリケーション上で上述した主被写体の追尾処理を行うように構成しても良い。主被写体を追尾することで、この主被写体を中心とした輝度調整や色調整を動画像に対して行うことが可能となる。デジタルカメラやデジタルビデオカメラにて撮影された動画像を再生する場合でも同様である。
なお、本発明は上述したこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲で種々の形態を取り得ることは勿論である。また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又はソフトウェアが記憶された各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。