以下、この発明の実施の形態について図を参照して説明するが、この発明は以下の実施の形態に限定されない。また、この発明の実施の形態は発明の最も好ましい形態を示すものであり、発明の範囲を限定するものではない。
図1は、本実施形態に係る撮像装置100の構成を示すブロック図である。図1に示すように、撮像装置100は、被写体を撮像した静止画や動画像データを取得する取得手段として、撮像レンズ10、シャッター12、撮像素子14、A/D変換器16を有する。撮像レンズ10は、被写体を撮像素子14の撮像面に結像させるための光学レンズである。シャッター12は、絞り羽根などにより絞り調整が可能なシャッターである。撮像素子14は、CCDやCMOSイメージセンサなどであり、撮像面において結像された被写体像を電気信号に変換する。A/D変換器16は、撮像素子14から出力されたアナログ信号をデジタル信号に変換する。
タイミング発生部18は、メモリ制御部22及び中央制御部50の制御の下、撮像素子14、A/D変換器16、D/A変換器26にクロック信号や制御信号を供給する。画像処理部20は、A/D変換器16から出力された画像データ或いはメモリ制御部22から出力された画像データに対して所定の画素補間処理や色変換処理などの画像処理を行う。また、画像処理部20においては、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果を中央制御部50に出力する。具体的には、画像処理部20は、画像のコントラスト値や輝度値などの演算結果を中央制御部50に出力する。中央制御部50では、画像処理部20から出力された演算結果に基づいて露光制御部40、測距制御部42に対する制御を行う。例えば、中央制御部50は、TTL(スルー・ザ・レンズ)方式のAF(オートフォーカス)処理、AE(自動露出)処理、EF(フラッシュプリ発光)処理を行う。さらに、画像処理部20では、撮像した画像データの色情報を用いて所定の演算処理を行い、得られた演算結果に基づいてTTL方式のAWB(オートホワイトバランス)処理も行っている。
メモリ制御部22は、中央制御部50の制御の下、A/D変換器16、タイミング発生部18、画像処理部20、画像表示メモリ24、D/A変換器26、メモリ30、圧縮・伸長部32を制御する。具体的には、メモリ制御部22は、A/D変換器16から出力された画像データを画像処理部20を介して画像表示メモリ24又はメモリ30へ書き込む書込制御を行う。
画像表示メモリ24は、画像表示部28で表示する画像データを一時記憶するメモリである。D/A変換器26は、デジタル信号をアナログ信号に変換する。画像表示部28は、例えばTFTを用いたLCD等の表示装置である。撮像装置100では、中央制御部50の制御の下、画像表示メモリ24に一時記憶された画像データがD/A変換器26を介してアナログ信号の画像データに変換されて画像表示部28により表示される。なお、撮像装置100では、中央制御部50の制御の下、撮像素子14で撮像した画像データを画像表示部28で逐次表示することで、電子ファインダ機能を実現することが可能となる。また、画像表示部28は、中央制御部50の制御の下、表示をON/OFFすることが可能となっている。従って、表示をOFFにした場合には、撮像装置100の電力消費量を大幅に低減することが可能となる。
メモリ30は、撮像した静止画像データや動画像データを格納するRAM(Random Access Memory)などであり、所定枚数の静止画像や所定時間の動画像を格納するのに十分な記憶容量を備えている。これにより、撮像装置100では、複数枚の静止画像を連続して撮像する連写撮像やパノラマ撮像の場合でも、高速かつ大量の画像データの書き込みをメモリ30に対して行うことが可能となる。また、メモリ30は、中央制御部50の作業領域としても使用される。具体的には、記憶手段としてのメモリ30は、後述する中央制御部50の処理において検出された動きベクトルや、その動きベクトルを蓄積した履歴情報などを作業領域に記憶する。
圧縮・伸長部32は、中央制御部50の制御の下、適応離散コサイン変換(ADCT)、ウェーブレット変換等により画像データの圧縮(データの符号化)又は画像データの伸長(データの復号化)を行う。例えば、圧縮・伸長部32は、メモリ30格納された画像データを読み込んで圧縮処理又は伸長処理を行い、処理後のデータをメモリ30に書き込む。
復号部34は、撮像してメモリ30の所定領域に記憶した画像データに対して必要に応じて暗号化処理を行うと共に、暗号化処理を行ってメモリ30の所定領域に記憶した画像データを再生表示する際に復号化処理を行う。
露光制御部40は、中央制御部50の制御の下、シャッター12を制御する。例えば、露光制御部40は、フラッシュ48と連携してシャッター12を制御することで、フラッシュ調光を行う。測距制御部42は、中央制御部50の制御の下、撮像レンズ10のフォーカシングを制御する。具体的には、測距制御部42は、撮像レンズ10におけるフォーカスレンズのレンズ位置に関する駆動制御を行う。例えば、TTL方式を用いる場合は、撮像した画像データを画像処理部20で演算した演算結果に基づいて中央制御部50が露光制御部40、測距制御部42を制御する。ズーム制御部44は、中央制御部50の制御の下、撮像レンズ10のズーミングを制御する。具体的には、ズーム制御部44は、撮像レンズ10におけるズームレンズのレンズ位置に関する駆動制御を行う。バリア制御部46は、中央制御部50の制御の下、覆い部材(バリア)により撮像レンズ10を保護する保護手段102におけるバリアの開閉を制御する。
フラッシュ48は、中央制御部50の制御の下で発光することで被写体に補助光を照射する。フラッシュ48は、AF時において被写体に補助光を照射する投光機能や被写体へ照射する光量の調整を行うフラッシュ調光機能などを有してもよい。
中央制御部50は、メモリ52に記憶されたプログラムデータを読み出してメモリ30の作業領域に展開し、その展開したプログラムデータとの協働により撮像装置100全体の動作を制御する。具体的には、メモリ52は、中央制御部50が実行するプログラムデータ、中央制御部50の動作用の定数や変数などを予め記憶する。
表示部54は、中央制御部50の制御に基づいて文字、画像などを表示するLCDやLEDなどであり、撮像装置100の動作状態やメッセージなどを表示する。また、表示部54は、中央制御部50の制御に基づいて音声出力を行うスピーカを含む構成であってもよく、撮像装置100の動作状態やメッセージなどを音声出力してもよい。表示部54は、撮像装置100の操作部近辺の視認し易い位置に単数或いは複数箇所設置されている。また、表示部54は、その一部が光学ファインダ104内に設置されている。
表示部54の表示内容でLCD等に表示するものとしては、シングルショット/連写撮像表示、セルフタイマー表示、圧縮率表示、記録画素数表示、記録枚数表示、残撮像可能枚数表示、シャッタースピード表示、絞り値表示、露出補正表示等がある。更には、フラッシュ表示、赤目緩和表示、マクロ撮像表示、ブザー設定表示、時計用電池残量表示、電池残量表示、エラー表示などを表示してもよい。また、複数桁の数字による情報表示、記録媒体200及び210の着脱状態表示、通信I/F動作表示、日付け・時刻表示、外部コンピュータとの接続状態を示す表示なども表示してよい。
同様に光学ファインダ104内に表示するものとしては、合焦表示、撮像準備完了表示、手振れ警告表示、フラッシュ充電表示、フラッシュ充電完了表示、シャッタースピード表示、絞り値表示、露出補正表示、記録媒体書き込み動作表示等がある。また、LED等に表示するものとしては、合焦表示、撮像準備完了表示、手振れ警告表示、手振れ警告表示、フラッシュ充電表示、フラッシュ充電完了表示等がある。更には、記録媒体書き込み動作表示、マクロ撮像設定通知表示、二次電池充電状態表示等を表示してもよい。また、ランプ等に表示するものとしては、セルフタイマー通知ランプ、等がある。このセルフタイマー通知ランプはAF補助光と共用して用いてもよい。
不揮発性メモリ56は、電気的に消去・記録が可能なメモリであり、例えばEEPROM(Electrically Erasable and Programmable ROM)、フラッシュメモリ等であってよい。
メインスイッチ60は、撮像装置100の電源オン、電源オフの各モードを切り替え指示をユーザから受け付ける。また、撮像装置100に接続された各種付属装置の電源オン、電源オフの各モードも合わせた切り替え指示をユーザから受け付けてもよい。
第1シャッタースイッチ62は、シャッターボタン(図示しない)の操作途中で中央制御部50に入力される第1シャッタースイッチ信号SW1がONとなり、AF処理、AE処理、AWB処理、EF処理等の動作開始指示をユーザから受け付ける。第2シャッタースイッチ64は、シャッターボタンの操作完了で中央制御部50に入力される第2シャッタースイッチ信号SW2がONとなり、撮像処理の動作開始の指示をユーザから受け付ける。なお、撮像処理は、中央制御部50の制御の下で行われる露出、現像、記録の一連の処理である。露出処理は、撮像素子14から読み出した信号をA/D変換器16、メモリ制御部22を介してメモリ30に画像データを書き込む処理である。現像処理は、メモリ30に書き込まれた画像データを読み出して画像処理部20やメモリ制御部22での演算を行って、演算後の画像データをメモリ30に書き込む処理である。記録処理は、メモリ30から演算後の画像データを読み出し、圧縮・伸長部32で圧縮を行い、記録媒体200に画像データを書き込む処理である。
操作部70は各種ボタンやタッチパネル等であり、ユーザからの操作指示を受け付ける。具体的には、メニューボタン、セットボタン、マクロボタン、マルチ画面再生改ページボタン、フラッシュ設定ボタン、単写/連写/セルフタイマー切り替えボタン、メニュー移動+(プラス)ボタン、メニュー移動−(マイナス)ボタン等がある。また、再生画像移動+(プラス)ボタン、再生画像−(マイナス)ボタン、撮像画質選択ボタン、露出補正ボタン、日付/時間設定ボタン、画像表示ON/OFFボタン、圧縮モードスイッチがあってもよい。また、撮像直後に撮像した画像データを画像表示部28を用いて自動再生表示するクイックレビュー機能を設定するクイックレビュースイッチや、撮像、再生、通信を実行する際に各種機能の選択及び切り替えを設定する選択/切り替えスイッチがあってもよい。また、撮像及び或いは再生及び或いは通信を実行する際に各種機能の決定及び実行を設定する決定/実行スイッチ等があってよい。また、表示部54として背面液晶パネルと覗き込み型の内部表示器などがある場合、それぞれの表示先における表示設定の切り替え指示をユーザから受け付けるためのDISPボタン等があってもよい。
なお、圧縮モードスイッチは、JPEG(Joint Photographic Expert Group)圧縮の圧縮率の選択、或いは撮像素子の信号をそのままディジタル化して記録媒体に記録するCCDRAWモードの選択をユーザから受け付ける。JPEG圧縮モードは、例えばノーマルモードとファインモードが用意されている。撮像装置100のユーザは、撮像した画像のデータサイズを重視する場合はノーマルモードを、撮像した画像の画質を重視する場合はファインモードを、それぞれ選択して撮像を行うことが出来る。
JPEG圧縮モードでは、撮像素子14から画像データを読み出してA/D変換器16、画像処理部20、メモリ制御部22を介して、メモリ30に書き込む。次いで、メモリ30に書き込まれた画像データを読み出し、圧縮・伸長部32により設定した圧縮率で圧縮し、必要に応じて復号部34により所定の暗号化処理を行った後、記録媒体200に記録を行う。CCDRAWモードでは、撮像素子14の色フィルタの画素配列に応じて、ライン毎にそのまま画像データを読み出して、A/D変換器16、メモリ制御部22を介して、メモリ30に書き込む。次いで、メモリ30に書き込まれた画像データを読み出し、必要に応じて復号部34により所定の暗号化処理を行った後、記録媒体200に記録を行う。
モードダイアル72は、自動撮像モード、撮像モード、パノラマ撮像モード、再生モード、マルチ画面再生・消去モード、PC接続モード等の各機能モードの切り替え指示をユーザから受け付ける。
姿勢検知センサ75は、ジャイロセンサや重力センサなどであり、撮像装置100の姿勢が縦位置、横位置であるか検知する。
電源制御部80は、電池検出回路、DC−DCコンバータ、通電するブロックを切り替えるスイッチ回路等(図示しない)により構成される。電源制御部80は、中央制御部50の制御の下、電池の装着の有無、電池の種類、電池残量の検出を行い、検出結果に基づいてDC−DCコンバータを制御して必要な電圧を必要な期間、記録媒体を含む各部へ供給する。
コネクタ82、84は、電源制御部80と電源部86を接続する。電源部86は、アルカリ電池やリチウム電池等の一次電池やNiCd電池やNiMH電池、Li−ion電池等の二次電池、ACアダプター等であり、撮像装置100へ電力を供給する。
I/F部90は、中央制御部50の制御の下、メモリカードやハードディスク等の記録媒体と通信接続する。コネクタ92は、メモリカードやハードディスク等の記録媒体とI/F部90とを物理的に接続する。
保護手段102は、撮像レンズ10を含む撮像部を覆うことにより、撮像部の汚れや破損を防止するバリアである。光学ファインダ104は、撮像レンズ10と撮像素子14の間において撮像素子14での露出時に跳ね上げられる鏡やペンタプリズムを用いて撮像レンズ10から入射される光をスクリーンに投射し、被写体像を光学的に表示する。撮像装置100では、光学ファインダ104を用いることで、画像表示部28による電子ファインダ機能を使用すること無しに撮像を行うことが可能である。また、光学ファインダ104内においては、前述した表示部54の一部が設けられる構成であってもよい。
通信部110は、中央制御部50の制御の下、アンテナ112により携帯電話通信網などを介した通信を行う。具体的には、通信部110は、TDMA方式やCDMA方式、W-CDMA方式、PHS方式等の通信機能を有する。なお、TDMAとは、Time Division Multiple Accessの略語である。また、CDMAとは、Code Division Multiple Accessの略語である。また、W-CDMAとは、Wideband Code Division Multiple Accessの略語である。また、PHSとは、Personal Handyphone Systemの略語である。アンテナ112(或いはコネクタ)は、携帯電話通信網などの基地局と無線通信(有線通信の場合はコネクタ)を行う。
通信部114は、中央制御部50の制御の下、アンテナ116によりBluetooth(登録商標)などの無線通信を行う。また、通信部114は、RS232CやUSB、IEEE1394、P1284、SCSI、モデム、LAN等の有線通信、IrDAなどの赤外線通信、光通信等の各種通信方式での通信機能を有する構成としても良い。なお、USBはUniversal Serial Bus、IEEEはInstitute of Electrical and Electronics Engineersの略語である。また、SCSIはSmall Computer System Interface、LANはLocal Area Networkの略語である。また、IrDAはInfrared Data Associationの略語である。アンテナ116(或いはコネクタ)は、上述した各種通信方式で他の機器と無線通信(有線通信の場合はコネクタ)を行う。
記録媒体200は、メモリカードやハードディスク等である。記録媒体200は、記録部202、I/F部204、コネクタ206を有する。記録部202は半導体メモリや磁気ディスク等である。I/F部204は、撮像装置100と通信接続して記録部202へのデータ書き込みや記録部202からのデータ読み出しを行う。コネクタ206は、コネクタ92と物理的に接続する。なお、記録媒体200は、本実施形態では撮像装置100に内蔵される構成として説明するが、外付け型であってもよい。
上述したように、撮像装置100は、中央制御部50の制御の下、撮像素子14で被写体を撮像した動画像データに所定の画像処理を施して記録媒体200への記録や画像表示部28への表示を行う画像処理装置でもある。
次に、中央制御部50の制御の下で行われる撮像装置100の動作について説明する。図2は、撮像装置100の全体的な動作を示すフローチャートである。
モードダイアル72が操作され電源がオンに切り替わり処理が開始されると、S201において中央制御部50はフラグや制御変数等を初期化する。続いて、S202において、中央制御部50は、記録媒体200に記録されているファイルに関する管理処理を開始する。
次に、S203、S205、S207において、中央制御部50は、メインスイッチ60の設定位置を判断する。メインスイッチ60が静止画記録モードに設定されていた場合、中央制御部50は、S203からS204へ進み、静止画記録モード処理を実行する。S204の静止画記録モード処理の詳細は図3を参照して後述する。また、メインスイッチ60が動画記録モードに設定されていた場合、中央制御部50は、S203、S205を経てS206へ進み、動画記録モード処理を実行する。また、メインスイッチ60が再生モードに設定されていた場合、中央制御部50は、S203、S205、S207を経てS208へ進み、再生モード処理を実行する。
また、メインスイッチ60がその他のモードに設定されていた場合、中央制御部50は、S209へ進み、選択されたモードに応じた処理を実行する。その他のモードとしては、記録媒体200に格納されたファイルの送信を行う送信モード処理、外部機器からファイルを受信して記録媒体200に格納する受信モード処理がなどが含まれる。
次いで、S204、S206、S208、S209のうちのメインスイッチ60によって設定されたモードに対応した処理を実行した後、中央制御部50は、S210の処理を行う。S210において、中央制御部50はモードダイアル72の設定位置を判定する。モードダイアル72が電源オンに設定されていた場合、中央制御部50は、S203に処理を戻す。一方、モードダイアル72が電源オフに設定されていた場合、中央制御部50は、S210からS211へ進み、終了処理を行う。終了処理において、中央制御部50は、例えば以下の処理を行う。すなわち、画像表示部28の表示を終了状態に変更し、保護手段102を閉じて撮像部を保護し、フラグや制御変数等を含むパラメータや設定値、設定モードを不揮発性メモリ56に記録し、電源供給が不要な部分への電源を遮断する。S311の終了処理が完了すると、中央制御部50は、本処理を終了し、電源をOFF状態へ移行する。
図3は図2のS204における静止画記録モード処理を示すフローチャートである。尚、図3に示される静止画記録モード処理は、メインスイッチ60により他のモードへの切替が行われた場合やモードダイアル72がOFFにセットされた場合に、割り込み処理等により終了するものとする。
図3に示すように、静止画記録モード処理が開始されると、中央制御部50は、S301において撮像モードを確定する。撮像モードの確定は、次の(1)或いは(2)を中央制御部50が行うことでなされる。(1)では、不揮発性メモリ56より前回の静止画記録モード終了時における撮像モードを取得してメモリ52に格納する。(2)では、ユーザにより操作部70が操作されて撮像モードの設定入力があった場合に、その設定入力された撮像モードをメモリ52に格納する。
ここで、撮像モードとは、撮像シーンに適したシャッター速度や絞り値、フラッシュ発光状態、感度設定等を組み合わせて実現されるモードのことである。本実施形態では、撮像装置100は次の撮像モードを有する。
・オートモード:このモードでは、撮像装置100の各種パラメータが、計測された露出値に基づいて撮像装置100に組み込まれたプログラムにより自動的に決定される。
・マニュアルモード:このモードでは、撮像装置100の各種パラメータをユーザが自由に変更可能である。
・シーンモード:このモードでは、撮像シーンに適したシャッター速度や絞り値、フラッシュ発光状態、感度設定等の組み合わせが自動で設定される。
尚、シーンモードには次のようなモードが含まれる。
・ポートレートモード:このモードは、背景をぼかして人物を浮き立たせるようにして人物撮像に特化したモードである。
・夜景モード:このモードは、人物にフラッシュ光をあて背景を遅いシャッター速度で記録することで夜景シーンに特化した撮像を行うモードである。
・風景モード:このモードは、広がりのある風景シーンに特化した撮像を行うモードである。
・ナイト&スナップモード:このモードは、三脚なしで夜景と人物をきれいに撮るのに適したモードである。
・キッズ&ペットモード:このモードは、よく動き回る子供やペットをシャッターチャンスを逃さずに撮像可能にしたモードである。
・新緑&紅葉モード:このモードは、新緑等の木々や葉を色鮮やかに撮像するのに適したモードである。
・パーティーモード:このモードは、蛍光灯や電球のもとで、手振れを抑えて被写体に忠実な色味で撮像するモードである。
・スノーモード:このモードは、雪景色をバックにしても人物が暗くならず、青みも残さず撮像するモードである。
・ビーチモード:このモードは、太陽光の反射の強い海面や砂浜でも、人物などが暗くならずに撮像可能なモードである。
・花火モード:このモードは、打ち上げ花火を最適な露出で鮮やかに撮像するためのモードである。
・水族館モード:このモードは、屋内の水槽内の魚などを撮像するのに適した感度、ホワイトバランス、色味を設定するモードである。
・水中モード:このモードは、水中に最適なホワイトバランスに設定し、青みを押さえた色合いで撮像するモードである。
S301において撮像モードが確定すると、中央制御部50は、S302において、撮像素子14で撮像した画像データを画像表示部28に表示するスルー表示(電子ビューファインダ表示)を行い、S330に進む。S330では、中央制御部50は追尾フラグをOFFに初期化する。追尾フラグはフレーム間の動きベクトル(動き情報)を用いて顔検出結果を補間するか否かを示すフラグであり、追尾フラグがONであれば補間処理をすべく動きベクトルを取得する処理が行われる。動きベクトルとは、後述する複数フレーム間(例えば現在のフレームと過去のフレーム間)の相関から、そのフレーム間において所定の画像領域がどの程度移動したかを示すベクトル量である。例えば、予め顔領域が検出されている場合には、その顔領域に関する動きベクトルを検出することで、顔領域が複数フレーム間にどのような動きを示すかを検出することができる。
続いてS303において、中央制御部50は、電源制御部80を用いて電池等により構成される残容量や、記録媒体200の有無や残容量が撮像装置100の動作に問題があるか否かを判定する。問題があるならば、中央制御部50は、S304において、画像表示部28を用いて画像や音声により所定の警告表示を行い、処理をS301に戻す。
記録媒体200の状態に問題が無いならば、S305において、中央制御部50は、必要に応じてAFに関する設定を更新する。AF設定は、操作部70に含まれるメニューボタンを押すことで画像表示部28に表示されるメニュー画面(図示しない)や、操作部70に含まれるAF枠設定用の操作部材を操作することでユーザが任意に設定可能である。
S305のAF設定としては、中央一枠をAFエリアとする「中央」、AFエリアを操作部70に含まれる操作部材によってユーザが任意の位置に移動可能な「アクティブ」などがある。また、9枠のAFエリアを設定し合焦動作を行う「AiAF」、検出した顔位置に応じてAFエリアを設定する「顔優先」等もある。また、ユーザが焦点調整を行うマニュアルフォーカスへの切替、マニュアルフォーカス時に焦点調整しやすいようにスルー表示に部分拡大表示を重畳表示する「MF拡大表示」の設定もここで行う。
中央制御部50は、AF枠設定が「顔優先」であるか否かを判定し(S306)、「顔優先」でなければS309に進む。AF枠設定が「顔優先」である場合はS307に進む。S307において、中央制御部50は、スルー表示される画像の顔領域に対応して重畳表示する顔枠の更新処理を行う。この顔枠更新処理については図4を参照して後述する。
続いてS309において、中央制御部50は、第1シャッタースイッチ信号SW1がONしているか否かを判定する。第1シャッタースイッチ信号SW1がOFFの場合、中央制御部50は、処理をS305に戻し、上記S305、S306を繰り返して行う。一方、第1シャッタースイッチ信号SW1がONの場合、中央制御部50は、S311の処理を行う。
S311において、中央制御部50は、測光処理を行って絞り値及びシャッター時間(シャッタースピード)を決定し、露光調整を行う。尚、測光処理において、中央制御部50は、必要であればフラッシュの設定も行う。このとき、中央制御部50は、S307において設定された顔枠の範囲で測光を行うようにすることも可能である。次いで、S312において、中央制御部50は、測距処理を行って撮像レンズ10の焦点を被写体に合わせる焦点調整を行い、S314へ進む。尚、測距処理においても、中央制御部50は、S307において設定された顔枠の範囲で測距を行うようにすることが可能である。すなわち、中央制御部50では、顔枠の範囲において露光調整や焦点調整の少なくとも一方を制御してよい。この場合、撮像装置100は、顔枠として検出された領域に対する露光調整や焦点調整を行った撮像画像を取得することができる。
次に、中央制御部50は、第1シャッタースイッチ信号SW1と第2シャッタースイッチ信号SW2のON/OFF状態を判定する(S314、S315)。第1シャッタースイッチ信号SW1がONした状態で第2シャッタースイッチ信号SW2がONになると、中央制御部50の処理はS314からS316へ進む。第1シャッタースイッチ信号SW1がOFFになると(第2シャッタースイッチ信号SW2がONせずに、更に第1シャッタースイッチ信号SW1も解除された場合)、中央制御部50の処理はS315からS305へ戻る。また、第1シャッタースイッチ信号SW1がON、第2シャッタースイッチ信号SW2がOFFの間、中央制御部50では、S314、S315の処理が繰り返される。
第2シャッタースイッチ信号SW2がONになると、S316において、中央制御部50は、画像表示部28の表示状態をスルー表示から固定色表示状態に設定する。そして、S317において、中央制御部50は、露光処理や現像処理を含む撮像処理を実行する。尚、露光処理では、画像処理部20を経て得られた画像データ、或いはA/D変換器16からメモリ30に画像データが書き込まれる。また、現像処理では、中央制御部50が、必要に応じてメモリ30に書き込まれた画像データを読み出して各種処理を行う。この撮像処理の詳細は図5を参照して後述する。
次に、中央制御部50は、S318おいて、画像表示部28に対し撮像処理で得られた画像データのクイックレビュー表示を行う。クイックレビューとは、撮像画像の確認のために、被写体の撮像後の記録媒体への記録前に、予め決められた時間(レビュー時間)だけ画像データを画像表示部28に表示する処理である。クイックレビュー表示後、S319において、中央制御部50は撮像処理で得られた画像データを画像ファイルとして記録媒体200に対して書き込む記録処理を実行する。
S319の記録処理が終了すると、S320において、中央制御部50は、第2シャッタースイッチ信号SW2のON/OFF状態を判定する。第2シャッタースイッチ信号SW2がONの場合、中央制御部50は、S320の判定を繰り返し、第2シャッタースイッチ信号SW2がOFFになるのを待つ。この間、中央制御部50は、画像表示部28における上記クイックレビューの表示を継続させる。即ち、S319の記録処理が終了した際には、第2シャッタースイッチ64が放されるまで画像表示部28におけるレックレビュー表示が継続される。このように構成することにより、ユーザは、シャッターボタンの全押し状態を継続することで、クイックレビューを用いた撮像画像の確認を入念に行うことが可能となる。
ユーザがシャッターボタンを全押し状態にして撮像を行った後、シャッターボタンから手を放すなどして全押し状態が解除され、第2シャッタースイッチ信号SW2がOFFになると、中央制御部50の処理はS320からS321へ進む。S321において、中央制御部50は、予め定められたレビュー時間(ミニマムレビュー時間)が経過したか否かを判定し、レビュー時間が経過していればS322に進む。
S322において、中央制御部50は、画像表示部28の表示状態をクイックレビュー表示からスルー表示状態に戻す。この処理により、クイックレビュー表示によって撮像画像を確認した後、画像表示部28の表示状態は次の撮像のために撮像素子14からの画像データを逐次表示するスルー表示状態に自動的に切り替わることになる。
そして、S323において、中央制御部50は、第1シャッタースイッチ信号SW1のON/OFFを判定し、第1シャッタースイッチ信号SW1がONの場合はS314へ、OFFの場合はS305へ処理を戻す。即ち、シャッターボタンの半押し状態が継続している(第1シャッタースイッチ信号SW1がON)場合は、中央制御部50はS314へ処理を戻して次の撮像に備える。一方、シャッターボタンが放された状態(第1シャッタースイッチ信号SW1がOFF)であったならば、中央制御部50は、S305へ処理を戻して一連の撮像動作を終えて撮像待機状態に戻る。
図4は図3のS307における顔枠更新処理を示すフローチャートである。図4に示すように、顔枠更新処理が開始されると、顔検出手段としての中央制御部50は、撮像素子14により逐次撮像された動画像のフレーム画像から被写体の顔領域を検出する顔検出処理を開始する(S400)。顔検出処理は、予めメモリ52などに設定された顔の特徴点を示す顔パターン情報を参照し、フレーム画像内から顔の特徴点と一致する領域を顔領域として検出する処理である。顔検出処理は、処理に時間がかかるため、予め設定されたフレーム数に一回の割合で間欠的に行われる。また、顔検出処理が終了した場合には、フレーム画像において検出された顔領域に関する顔検出結果が出力される。なお、被写体の顔が横方向を向いている場合などには顔領域の検出ができないことがあるが、この場合は失敗したことを示す顔検出結果が出力される。
次いで、S401において、中央制御部50は、画像表示メモリ24或いはメモリ30に記憶された最新(直近)の撮像画像が更新されたか否かを判定する。具体的には、S401では撮像素子14により逐次撮像された動画像のフレーム画像が更新されたか否かが判定され、フレーム画像が更新される度にS402以下の顔枠更新処理が行われることとなる。更新されていない場合、中央制御部50は、顔枠更新処理(S307)を終了する。この場合、画像表示部28の表示は更新されない。直近の撮像画像が更新されている場合は動きベクトルや顔座標を取得するべく以下の処理を行う。
S402において、中央制御部50は、追尾フラグがONになっているか否かを判定し、追尾フラグがOFFになっていればS408に進む。
追尾フラグがONである場合(S402)、中央制御部50は直近の動きベクトルを取得する(S403)。動きベクトルの検出処理は後述するS427で行われ、画像表示メモリ24或いはメモリ30に記憶された直近の撮像画像が更新された後では、直近の動きベクトルが更新されているものとする。
続いて、中央制御部50は、動きベクトルを用いた顔領域の追尾処理を終了するか否かを判断する(S404)。S404において追尾処理の終了と判断する場合としては、例えば、S403で取得した動きベクトルの信頼性が低い場合であり、フレームレートが低下して動きベクトルを求めるための2枚のフレーム画像の時間差が大きくなる場合などが含まれる。
S405において、中央制御部50は、S404の判断を参照して顔領域の追尾処理を終了するか否かを判定する。追尾を終了する場合、中央制御部50は、追尾フラグをOFFにした後(S406)、動きベクトルを蓄積した履歴情報を初期化して(S407)、S408に進む。追尾を終了しない場合(S405)、中央制御部50はそのままS408に進む。
S408では、中央制御部50は、撮像画像から被写体の顔領域を検出した顔検出結果がまだ更新されていないか否かを判定する。顔検出は、後述するS425でスタートされ、画像表示メモリ24或いはメモリ30に記憶された直近の撮像画像から被写体の顔領域を検出して行われる。顔検出処理には時間がかかる場合があり、直近の顔検出結果がこの時点で出てきているとは限らないため、S408では直近の顔検出結果が更新されているか否かをチェックしている。なお、この顔検出結果の更新には、顔検出に失敗したという更新も含まれる。
直近の顔検出結果が更新されていない場合(S408:YES)、中央制御部50は追尾フラグが有効になっているか否かを判定する(S409)。追尾フラグがOFFである場合、中央制御部50はS426に進む。この場合、画像表示部28の表示は更新されない。
追尾フラグがONになっている場合(S409:YES)、中央制御部50は取得した動きベクトルを用いて顔枠の座標計算を行う(S410)。S410では、例えばx軸方向の座標を考えた場合、動きベクトルの履歴をdX1,dX2,…,dXn、動きベクトルの履歴の平均をAvg(dX1,dX2,…,dXn)とし、次のように顔枠の中心座標Xを求める。なおy軸方向についても同様である。
X += Avg(dX1,dX2,…,dXn)
ここで、中心座標Xの算出には、直近の動きベクトルではなく、動きベクトルの履歴の平均を用いている。従って、動きベクトルを用いて被写体の動きに合わせた顔領域の追跡を行っている際に、追跡中の顔の前を別の顔が横切る場合であっても、別の顔を誤追尾してしまう問題を軽減できる。また、S410の顔計算処理においては、直近の動きベクトルをその履歴を用いて修正していると考えることもできる。
S410における顔枠計算を終えたら、修正手段としての中央制御部50は動きベクトルの履歴に直近の動きベクトルを追加して、被写体の動きに合わせた顔枠の位置修正を行う(S411)。次いで、中央制御部50は、画像表示部28の顔枠表示の更新処理を行って(S412)、S426に進む。また、S408の判定により、S410〜S412の処理は、顔検出結果が更新されていないフレーム、すなわち、顔検出により被写体の顔領域を検出しないフレームについて行われる処理である。
S408において顔検出結果が更新されていると判定した場合、中央制御部50は、S413において直近の顔検出結果を取得する。顔検出結果としては、検出された顔領域の中心座標、サイズ(幅、高さ)、検出個数、信頼性係数などが取得できる。また、顔領域が検出されなかった場合はその旨(例えば検出個数=0)が検出結果として取得できる。
中央制御部50は、S413で取得した顔検出結果を参照し、顔が検出されたのか、それとも顔の検出に失敗したのかを判定する(S414)。中央制御部50は、顔が検出されていればS415へ、検出されていなければS419に進む。
顔が検出されている場合(S414:YES)、中央制御部50は、S415で追尾フラグをONにし、動きベクトルの履歴更新処理を行う(S416)。この動きベクトルの履歴更新処理は図6を参照して後述する。S416での更新処理を終えた後、中央制御部50はS417に進む。
S410にて動きベクトルを用いて顔枠を設定する際には、直近の動きベクトルと動きベクトルの履歴の平均を参照したが、S417では、中央制御部50は、S413で取得した直近の顔検出結果のみを参照して検出された顔領域の位置に顔枠を設定する。動きベクトルは複数フレーム間の相関から求める値であるため、顔に類似している顔以外の領域を顔枠として設定してしまう可能性が十分に考えられる。そのため、上述したように、誤検出を防止するという理由から動きベクトルの履歴を用いて顔枠を設定する必要がある。これに対し、顔の特徴点と一致する領域を顔領域として検出する顔検出処理では、顔以外の領域を顔として誤検出する可能性が低いため、直近に検出された顔領域の位置に対してそのまま顔枠を設定する。また、S417では中央制御部50は画像表示部28の顔枠表示を更新する。なお、説明を判りやすくするため、複数の顔が検出された場合でも主顔と判断された顔のみに顔枠を設定するものとして説明する。撮像装置100では、S415で追尾フラグをONにすることで、S417で設定する顔枠部分に対応した動きベクトルを取得するようになる。
続いて、中央制御部50は、S413で取得した直近の顔検出結果をメモリ30の作業領域などに記憶する(S418)。すなわち、S418は、顔検出により被写体の顔領域が検出できたフレームについてのみ行われる。ここで記憶した顔検出結果は、検出された顔が前回検出された顔と同一か否かを判断するための情報として用いられる。メモリ30の作業領域には、顔検出結果に含まれる顔の特徴量を記憶してもよいし、顔認証のために顔領域の画像を切り出して記憶してもよい。また、説明を判りやすくするため、主顔の顔検出結果のみ記憶するものとして説明する。S418での処理を終えた後、中央制御部50はS425に進む。
なお、S414で顔が検出されていなかった場合、中央制御部50は、追尾フラグがONか否かを判定する(S419)。追跡フラグがOFFであれば、中央制御部50は、画像表示部28の顔枠を消去し(S420)、S425に進む。
S419で追尾フラグがONである場合、中央制御部50は取得した動きベクトルを用いて顔枠の座標計算を行う(S422)。この顔枠に関する計算処理はS410と同様である。
S410、S417、S422の処理により、顔枠座標Xは次のようになる。なお、直近の顔検出結果から得られる顔領域の中心座標をXf、動きベクトルの履歴をdX1,dX2,…,dXn、動きベクトルの履歴の平均をAvg(dX1,dX2,…,dXn)とする。
顔が検出された場合:X = Xf
動きベクトルで計算する場合:X += Avg(dX1,dX2,…,dXn)
顔枠計算を終えた後(S422)、修正手段としての中央制御部50は、動きベクトルの履歴に直近の動きベクトルを追加して被写体の動きに合わせた顔枠の位置修正を行う(S423)。次いで、中央制御部50は、画像表示部28の顔枠表示の更新処理を行い(S424)、S425に進む。また、S414の判定により、S422〜S242の処理は、顔検出により被写体の顔領域が検出できなかったフレームについて行われる処理である。
S425において、中央制御部50は、画像表示メモリ24或いはメモリ30に記憶された直近の撮像画像に対して次の顔検出処理を開始し、S426に進む。
S426では、中央制御部50は追尾フラグがONか否かを判定する。追尾フラグがONであれば、動き検出手段としての中央制御部50は、画像表示メモリ24或いはメモリ30に記憶された直近の(現在の)撮像画像と1フレーム前の(過去の)撮像画像を用いて次の動きベクトルを求める処理を開始する(S427)。具体的には、顔領域の位置をフレーム相関を求める範囲に設定し、2枚の画像の相関から新たな顔領域の位置及び動きベクトルを算出する。顔領域の位置が求まらない状況においては、S421で追尾フラグがOFFに設定されているので動きベクトルを求めない。S427の処理を終えた後、中央制御部50は、顔枠更新処理(S307)を終了する。また、S426で追尾フラグがOFFであった場合は、S427の処理を行うことなく、顔枠更新処理(S307)を終了する。従って、中央制御部50は、被写体の顔領域を検出しないフレーム、又は、被写体の顔領域が検出できなかったフレームと過去のフレーム間の相関から、顔領域が求められる状況において、顔領域の動きを示す動きベクトルを検出することが可能となる。
図5は図3のS317における撮像処理を示すフローチャートである。図5に示すように、撮像処理が開始されると、中央制御部50は、S501において、撮像開始時にその日時をシステムタイマより取得し、メモリ52に記憶する。続いて、中央制御部50は、S502において、メモリ52に記憶されている測光データに従い、絞り機能を有するシャッター12を絞り値に応じて開放する。こうして、撮像素子14では露光が開始される(S503)。
S504において、中央制御部50は、測光データに従って撮像素子14の露光終了を待つ。露光終了時刻に到達すると、S505において、中央制御部50はシャッター12を閉じる。そして、S506において、中央制御部50は、撮像素子14から電荷信号を読み出し、A/D変換器16から画像処理部20を介してメモリ30に画像データを書き込む。また、S506では、A/D変換器16から直接メモリ30に画像データを書き込んでもよい。以上、S501〜S506が撮像装置100における露光処理に対応する。
続いて、S507において、中央制御部50は、必要に応じて、メモリ30に書き込まれた画像データを読み出して画像処理を順次施す。この画像処理は、例えば、ホワイトバランス処理や、圧縮・伸長部32を用いた圧縮処理等が含まれる。処理を終えた画像データはメモリ30に書き込まれる。そして、S508において、中央制御部50は、メモリ30から画像データを読み出し、これを圧縮・伸長部32を用いて伸張し、画像表示部28の表示用にリサイズする。そして、リサイズされた画像データを画像表示部28に表示するべくD/A変換器26に転送する。一連の処理を終えたならば、撮像処理を終了する。
図6は、図4のS416における動きベクトルの履歴更新処理を示すフローチャートである。図6に示すように、処理が開始されると、中央制御部50は、S601において、S413で取得された直近の顔検出結果と、S418で既に記憶されていた顔検出結果を比較して、直近の顔検出結果で別被写体の顔検出が行われたか否かを判定する。
具体的には、S413で取得された直近の顔検出結果から得られる顔領域の座標と、S418で既に記憶されていた直近の顔領域の座標との差が予め設定された閾値以下か否かを判定する。この場合は、顔検出が行われたフレーム間において顔領域が予め閾値として設定された量以上移動したと判定される場合に、別被写体の顔を検出したと判定されることとなる。
また、S601では、S413で取得された直近の顔検出結果から得られる顔領域の座標と、直近のフレームにおける顔枠の座標との差が予め設定された閾値以下か否かを判定してもよい。この場合は、顔検出が行われたフレームにおいて検出された顔領域の位置と、直近のフレームまで顔枠が表示されていた位置が予め閾値として設定された量以上移動したと判定される場合に、別被写体の顔を検出したと判定されることとなる。
また、S601では、S413で取得された直近の顔検出結果から得られる顔領域の座標と、直近のフレームにおける顔枠の座標との差が予め設定された閾値以下か否かを判定してもよい。この場合は、顔検出が行われたフレームにおいて検出された顔領域の位置と、直近のフレームまで顔枠が表示されていた位置が予め閾値として設定された量以上移動したと判定される場合に、別被写体の顔を検出したと判定されることとなる。
また、S601では、S403で取得された直近の動きベクトルであり、直近の顔領域の動き量と、蓄積された動きベクトルの履歴の平均であり、顔領域の平均の動き量の差が予め設定された閾値以下か否かを判定してもよい。この場合は、直近の顔領域の動き量が、顔領域の平均の動き量に対して予め閾値として設定された量以上変化した場合に、別被写体の顔を検出したと判定されることとなる。
S602において座標(又は類似度)の差が閾値以下であった場合、判定手段としての中央制御部50は、動きベクトル履歴を初期化することなく動きベクトルの履歴更新処理(S416)を終了する。なお、S602において座標の差が閾値以下でなかった場合、中央制御部50はS603に進む。S603において、更新手段としての中央制御部50は、メモリ30の作業領域に記憶している動きベクトルの履歴を初期化し、動きベクトルの履歴更新処理(S416)を終了する。
すなわち、動きベクトルの履歴更新処理では、直近の顔検出結果から得られる主顔と、直近の顔検出処理により設定されていた主顔との距離が遠いのであれば、これらは同じ顔でないと判定している。また、直近の顔検出結果から得られる主顔の位置が、直近のフレームまで顔枠が検出された位置とずれる場合に、これらは同じ顔ではないと判定している。また、直近の顔検出結果から得られる主顔と、直近の顔検出結果から得られる主顔が類似していない場合に、これらは同じ顔ではないと判定している。そして、違う顔のベクトル履歴が顔枠位置に反映されることのないようS603でベクトル履歴を初期化している。
例えば、直近の顔検出結果から得られる主顔の位置と、以前の顔検出処理による主顔の位置又は直前のフレームまで顔枠が検出された位置との差分が小さい場合に、同一の人物として動きベクトルの履歴を保持する。また、その差分が大きければ別の人物として動きベクトルの履歴を初期化する。また、それまでに検出した顔の目、鼻、口等の形状を示す特徴点と、新たに検出した顔の特徴点との類似度を比較し、その差分が小さければ同一の人物として動きベクトルの履歴を保持する。また、類似度の差分が大きければ別の人物として動きベクトルの履歴を初期化する。
ここで、図7を参照して画像表示部28の表示例を説明する。図7(a)〜図7(f)は0フレーム目から5フレーム目までの画像表示部28の表示例を示す概念図である。図7において、顔枠28aは撮像画像から検出された被写体の顔領域に対応した顔枠表示である。また、顔検出処理は、3フレームに1回行われるものとする。従って、第0フレーム(図7(a))と第3フレーム(図7(d))は顔検出処理により顔枠28aが更新されたフレームである。また、その他のフレームは、動きベクトルを用いて顔枠28aが更新されたフレームであり、第0フレームと第3フレームの顔検出結果を補間しているフレームである。また、第iフレームにおける直近の顔検出結果の顔領域の中心座標をXfi、直近の動きベクトルをdXi、表示する顔枠の中心座標をXiとする。
まず、第0フレーム(図7(a))では、被写体の顔が正面を向いているため、顔検出処理により顔領域が検出される。この場合はS417において、顔検出処理により検出された顔領域の中心座標が、顔領域の中心座標Xf0、顔枠の中心座標X0として設定される。
次に、第1フレーム(図7(b))では、顔検出処理が行われないため顔検出結果が更新されず、S410の処理により動きベクトルdX1を用いて顔枠の中心座標X1を算出している。また、仮に顔検出処理が行われた場合であっても、被写体の顔が横を向いているため顔検出は失敗し、S422の処理により動きベクトルを用いて顔枠の座標が算出されることとなる。
第2フレーム(図7(c))でも同様に、S410の処理により動きベクトルを用いて顔枠の座標が算出される。なお、第2フレームでは、直近の動きベクトルdX2だけでなく、過去の動きベクトル履歴(dX1)も用いて顔枠の中心座標X2が算出される。
第3フレーム(図7(d))では、顔検出処理が行われ、正面向きの別被写体の顔領域が検出される。従って、S417において、顔検出処理により検出された別被写体の顔領域の中心座標が、顔領域の中心座標Xf3、顔枠の中心座標X3として設定される。
ここで、第3フレームにおいては動きベクトルの履歴更新処理(S416)が行われた際に動きベクトルの履歴が初期化されている。具体的には、直近の顔領域の中心座標Xf3と、前のフレームの顔枠の中心座標X2とを比較して、その位置の差が予め設定された閾値より大きいため、動きベクトルの履歴が初期化される。また、第0フレームの顔検出結果と第3フレームの顔検出結果に基づいて、互いの顔領域の画像を比較し、2つのフレームで検出している顔が別の顔に変わったと判定されたため、動きベクトルの履歴が初期化される。
第4フレーム(図7(e))、第5フレーム(図7(f))では、第1フレーム、第2フレームと同様に、S410の処理により動きベクトルとその履歴を用いて顔枠の座標が算出される。なお、第3フレームにおいて別被写体の顔領域を検出した際に、それ以前の被写体に関する動きベクトルの履歴は初期化されている。従って、第4、5フレームにおける顔枠の座標を算出する際には以前の被写体の動きが影響することはない。
顔検出結果が別被写体の顔領域に更新された第3フレームにて動きベクトルの履歴を初期化しない場合は、第4フレーム、第5フレームの顔枠の座標が不正になる。図7(a)〜図7(f)の場合、第1フレーム、第2フレームの右向きのベクトル履歴が影響し、第4フレーム、第5フレームの顔枠の座標が右にずれてしまうことになる。具体的には、第4フレームのAvg(dX1,dX2,dX4)、第5フレームのAvg(dX1,dX2,dX4,dX5)が、dX1、dX2により右向きとなる。しかしながら、第3フレームにおける動きベクトルの履歴更新処理(S416)により、以前の被写体に関する動きベクトルの履歴が初期化されることで、図7のような場合であっても、被写体に対して正しく顔枠を表示することができる。
なお、顔検出処理にて新たに顔領域が検出された際には、それまでの動きベクトルの履歴とは無関係に顔枠を設定するのであるから、顔検出処理にて新たな顔領域が検出される度に、動きベクトルの履歴を初期化するという方法も考えられる。しかしながら、本実施形態に係る撮像装置100は、新たに検出された顔領域の位置と、直近のフレームで顔枠が表示されていた位置が閾値よりも近い場合には、動きベクトルの履歴を維持するようにしている。以下に、その理由を説明する。
図8は、新たに検出された顔領域の位置と直近のフレームで顔枠が表示されていた位置が閾値よりも近い場合に、動きベクトルの履歴を維持したときの画像表示部28の表示例を示す。図9は、同様の場合に動きベクトルの履歴を維持しないときの画像表示部28の表示例を示す。図8(a)〜図8(f)は0フレーム目から5フレーム目までの画像表示部28の表示例を示す概念図である。また、図7を参照して説明した表示例と同様に、画像表示部28には顔領域に対応した顔枠28aが表示される。また、顔検出処理は3フレームに1回行われるものとし、顔検出処理が行われないフレームでは動きベクトルを用いて顔検出結果が補間される。また、第iフレームにおける最新の顔検出結果の顔領域の中心座標をXfi、最新の動きベクトルをdXi、表示する顔枠の中心座標をXiとする。
まず、第0フレーム(図8(a))では、被写体の顔が正面を向いているため、顔検出処理により顔領域が検出される。この場合はS417において、顔検出処理により検出された顔領域の中心座標が、顔領域の中心座標Xf0、顔枠の中心座標X0として設定される。
次に、第1フレーム(図8(b))では、顔検出処理が行われないため顔検出結果が更新されず、S410の処理により動きベクトルdX1を用いて顔枠の中心座標X1を算出している。また、仮に顔検出が行われた場合であっても、被写体の顔が横を向いているため顔検出は失敗し、S422の処理により動きベクトルを用いて顔枠の座標が算出されることとなる。
第2フレーム(図8(c))でも同様に、S410の処理により動きベクトルを用いて顔枠の座標が算出される。なお、第2フレームでは、最新の動きベクトルdX2だけでなく、過去の動きベクトル履歴(dX1)も用いて顔枠の中心座標X2が算出される。
第3フレーム(図8(d))では、顔検出処理が行われ、第0フレームで検出された被写体と同一の被写体の正面向きの顔領域が検出される。従って、S417において、過去の動きベクトル履歴(dX1、dX2)とは無関係に、顔検出処理により検出された顔領域の中心座標が、顔領域の中心座標Xf3、顔枠の中心座標X3として設定される。
ここで、第3フレームにおいては、動きベクトルの履歴更新処理(S416)が行われた際に、動きベクトルの履歴がリセットされることなく保持される。具体的には、最新の顔領域の中心座標Xf3と、前のフレームの顔枠の中心座標X2とを比較して、その位置の差が予め設定された閾値より小さいため、動きベクトルの履歴がリセットされない。また、第0フレームの顔検出結果と第3フレームの顔検出結果に基づいて、互いの顔領域の画像を比較し、2つのフレームで検出している顔が同一の顔だと判定されたため、動きベクトルの履歴がリセットされない。
第4フレーム(図8(e))、第5フレーム(図8(f))では、第1フレーム、第2フレームと同様に、S410の処理により動きベクトルとその履歴を用いて顔枠の座標が算出される。なお、第3フレームにおいて顔領域を検出した際に、第1、第2フレームで右向きであった動きベクトルの履歴はリセットされない。従って、第4、第5フレームで別被写体が左に横切り、第5フレームで最新の動きベクトルdX5が左向きであったとしても、第1、第2フレームにおける動きベクトルの履歴から右向きに動く以前の被写体に対して顔枠を表示することができる。
なお、図8と同様な場面において、顔検出結果が更新された場合に必ず動きベクトル履歴を初期化してしまう場合の画像表示部28の表示は図9に示すとおりである。すなわち、第3フレーム(図9(d))では、顔検出処理によって新たな顔領域が検出され、動きベクトルの履歴が初期化される。第4フレーム(図9(e))では、動きベクトルの履歴が無いため、左に横切る別被写体による直近の動きベクトル(dX4)を用いて顔枠の中心座標X4が算出される。第5フレーム(図9(f))では、直近の動きベクトル(dX5)と過去の動きベクトル(dX4)を用いて顔枠の中心座標X5が算出される。しかしながら、直近の動きベクトル(dX5)も過去の動きベクトル(dX4)も左に横切る別被写体から得られた動きベクトルであるために、顔枠が右向きに動く以前の被写体から完全に外れてしまう。
本実施形態では、動きベクトルの履歴更新処理(S416)において、顔検出結果に応じて動きベクトルの履歴に関して初期化/保持を切り替えることによって、例えば図7に示すように被写体の動きに合わせて正しく顔枠を表示することが可能となる。
なお、上記実施形態では、S427における動きベクトルの検出処理の結果算出される顔位置と動きベクトルのうち、動きベクトルについて履歴の操作を行っている(S407、S411、S423、S604)。そして、動きベクトルの履歴を用いて顔枠の位置を設定している(S410、S422)。しかしながら、動きベクトルの検出処理の結果算出される顔位置について履歴をとり、この顔位置の履歴を用いて同様に顔枠の位置を設定することも可能である。
また、上記実施形態では、S602において、直近の顔領域の座標と、直前のフレームの顔枠の座標との差分に応じて動きベクトルの履歴を初期化するか否かを判定する場合を例示している。しかしながら、直近の顔座標から求めた動きベクトルと、動きベクトルの履歴の差分に応じて動きベクトルの履歴を初期化するか否かを判定してもよい。この場合、顔の位置があまり変わらなかったとしても、動きベクトルの向きが変わった場合などに動きベクトルの履歴を初期化することができる。これは、検出した顔がそれまでと同じような動きをする(動く方向が変わらない)のであれば、それまでに検出した顔と同一の顔を検出しているとみなしている。また、検出した顔がそれまでと異なる動きをするのであれば、それまでに検出した顔と新たに検出した顔とが別のものであると判定して、動きベクトルの履歴を初期化しようとするものである。
なお、上述した実施の形態における記述は、一例を示すものであり、これに限定するものではない。上述した実施の形態における構成及び動作に関しては、適宜変更が可能である。
(他の実施形態)
上述の実施形態は、システム或は装置のコンピュータ(或いはCPU、MPU等)によりソフトウェア的に実現することも可能である。従って、上述の実施形態をコンピュータで実現するために、該コンピュータに供給されるコンピュータプログラム自体も本発明を実現するものである。つまり、上述の実施形態の機能を実現するためのコンピュータプログラム自体も本発明の一つである。
なお、上述の実施形態を実現するためのコンピュータプログラムは、コンピュータで読み取り可能であれば、どのような形態であってもよい。例えば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等で構成することができるが、これらに限るものではない。上述の実施形態を実現するためのコンピュータプログラムは、記憶媒体又は有線/無線通信によりコンピュータに供給される。プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記憶媒体、MO、CD、DVD等の光/光磁気記憶媒体、不揮発性の半導体メモリなどがある。
有線/無線通信を用いたコンピュータプログラムの供給方法としては、コンピュータネットワーク上のサーバを利用する方法がある。この場合、本発明を形成するコンピュータプログラムとなりうるデータファイル(プログラムファイル)をサーバに記憶しておく。プログラムファイルとしては、実行形式のものであっても、ソースコードであっても良い。そして、このサーバにアクセスしたクライアントコンピュータに、プログラムファイルをダウンロードすることによって供給する。この場合、プログラムファイルを複数のセグメントファイルに分割し、セグメントファイルを異なるサーバに分散して配置することも可能である。つまり、上述の実施形態を実現するためのプログラムファイルをクライアントコンピュータに提供するサーバ装置も本発明の一つである。
また、上述の実施形態を実現するためのコンピュータプログラムを暗号化して格納した記憶媒体を配布し、所定の条件を満たしたユーザに、暗号化を解く鍵情報を供給し、ユーザの有するコンピュータへのインストールを許可してもよい。鍵情報は、例えばインターネットを介してホームページからダウンロードさせることによって供給することができる。また、上述の実施形態を実現するためのコンピュータプログラムは、すでにコンピュータ上で稼働するOSの機能を利用するものであってもよい。さらに、上述の実施形態を実現するためのコンピュータプログラムは、その一部をコンピュータに装着される拡張ボード等のファームウェアで構成してもよいし、拡張ボード等が備えるCPUで実行するようにしてもよい。