本発明の実施形態に係る画像処理装置100について、図1を参照して説明する。図1は、本発明の実施形態に係る画像処理装置100の構成図である。
画像処理装置100は、例えば、デジタルカメラである。画像処理装置100は、以下の構成要素を備える。
保護手段102は、例えばバリアである。保護手段102は、外部と撮影レンズ10との間に配置され、撮影レンズ10を保護する。シャッター12は、撮影レンズ10と後述の光電変換手段14との間に配置され、撮影レンズ10から光電変換手段14へ導かれる光量を絞るための絞り機能を有する。
取得手段17は、光電変換手段14、読み出し手段15、及びA/D変換手段16を含む。光電変換手段14は、被写体の光学像を光電変換して画像信号を生成する。読み出し手段15は、光電変換手段14から画像信号を読み出す。A/D変換手段16は、読み出し手段15により読み出された画像信号をA/D変換して画像データを生成する。
ここで、取得手段17は、異なる複数のタイミングで被写体を撮像して、被写体の複数の第1の画像データを第1の解像度で取得する。すなわち、光電変換手段14は、被写体の光学像を光電変換して第1の画像信号を生成する。読み出し手段15は、光電変換手段14から第1の画像信号を第1の画素数で読み出す。A/D変換手段16は、読み出し手段15により読み出された第1の画像信号をA/D変換して第1の画像データを生成する。第1の画像データは、その解像度が第1の解像度になっている。これらの動作が異なる複数のタイミングで行われて、複数の第1の画像データが第1の解像度で取得される。
また、取得手段17は、被写体を撮像して、被写体の第2の画像データを、第1の解像度よりも低い第2の解像度で取得する。すなわち、光電変換手段14は、被写体の光学像を光電変換して第2の画像信号を生成する。読み出し手段15は、光電変換手段14から第2の画像信号を、第1の画素数より少ない第2の画素数で読み出す。A/D変換手段16は、読み出し手段15により読み出された第2の画像信号をA/D変換して第2の画像データを生成する。第2の画像データは、その解像度が第2の解像度になっている。
タイミング発生部18は、メモリ制御部22及びシステム制御部50により制御されて、光電変換手段14、読み出し手段15、A/D変換手段16、後述のD/A変換器26にクロック信号や制御信号を供給する。
画像処理部20は、A/D変換手段16からのデータ或いはメモリ制御部22からのデータに対して、所定の画素補間処理や色変換処理を行う。
また、画像処理部20は、A/D変換手段16等から受け取った画像データを用いて所定の演算処理を行い、得られた演算結果をシステム制御部50へ供給する。これにより、システム制御部50は、露光制御手段40、測距制御手段42に対して制御を行い、TTL(スルー・ザ・レンズ)方式のAF(オートフォーカス)処理、AE(自動露出)処理、EF(フラッシュプリ発光)処理を行っている。
さらに、画像処理部20は、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてTTL方式のAWB(オートホワイトバランス)処理も行っている。
また、画像処理部20は、顔領域検出手段20aと顔情報抽出手段20bとを含む。顔領域検出手段20aは、取得手段17により取得された複数の画像データのそれぞれにおいて、被写体の顔領域を検出する。例えば、画像データから、口や目などの顔の構成要素に相当する形状を抽出し、その構成要素の位置を基準として顔領域を検出する。顔情報抽出手段20bは、顔領域検出手段20aにより検出された複数の顔領域のそれぞれから、被写体の顔の構成要素の形状に関する顔情報を抽出する。顔情報は、例えば、口や目や眉毛などの具体的な形状や座標に関する情報を含み、あるいは、例えば、鼻の端点、鼻穴の中心点、耳の端点などの形状や座標に関する情報を含む。ここで、顔情報は、それぞれの端点や中心点あるいは目の黒点などを入力された顔の画像から、例えばニューラルネットワークや空間フィルタを用いたエッジ検出などの手法を用いて算出することにより抽出することができる。顔領域検出手段20aが顔領域を抽出する際には、口や目などの顔の構成要素としての条件を満たす形状が存在するか否かという判断を行っている。つまり、笑っているときの大きく開いた口でも、黙っているときの閉じた口でも、口という条件さえ満たせばその具体的な形状までは問わない。これに対し、顔情報抽出手段20bが顔情報を抽出する際には、同じ口であっても、口角の位置や口の開き具合などの具体的な形状や顔領域における座標の情報までも含めて抽出される。
ここで、顔領域検出手段20aは、取得手段17により取得された複数の第1の画像データのそれぞれにおいて、被写体の第1の顔領域を検出する。顔情報抽出手段20bは、顔領域検出手段20aにより検出された複数の第1の顔領域のそれぞれから、被写体の顔の構成要素の形状に関する第1の顔情報を抽出する。
また、顔領域検出手段20aは、取得手段17により取得された第2の画像データにおいて、被写体の第2の顔領域を検出する。顔情報抽出手段20bは、顔領域検出手段20aにより検出された第2の顔領域から、被写体の顔の構成要素の形状に関する第2の顔情報を抽出する。
メモリ制御回路22は、A/D変換手段16、タイミング発生部18、画像処理部20、画像表示メモリ24、D/A変換器26、メモリ30、圧縮伸長部32を制御する。メモリ制御回路22は、A/D変換手段16や画像処理部20から受け取ったデータを画像表示メモリ24或いはメモリ30に書き込む。
画像表示メモリ24は、表示用の画像データを記憶する。D/A変換器26は、表示用の画像データをメモリ制御部22経由で画像表示メモリ24から受け取り、表示用の画像データをアナログ信号へD/A変換する。
第1の報知手段28は、D/A変換器26から受け取ったアナログ信号に応じた画像を表示する。第1の報知手段28は、例えば、TFT−LCDを含む。第1の報知手段28は、画像を逐次表示して、電子ファインダ機能を実現することが可能である。
ここで、第1の報知手段28は、システム制御部50の指示により任意に表示をON/OFFすることが可能であり、表示をOFFにした場合にデジタルカメラ100の電力消費を大幅に低減することが出来る。
メモリ30は、撮影した静止画像や動画像を格納する。メモリ30は、所定枚数の静止画像や所定時間の動画像を格納するのに十分な記憶量を備えている。これにより、複数枚の静止画像を連続して撮影する連射撮影やパノラマ撮影の場合にも、高速かつ大量の画像書き込みをメモリ30に対して行うことが可能となる。また、メモリ30はシステム制御部50の作業領域としても使用することが可能である。
圧縮伸長部32は、適応離散コサイン変換(ADCT)等により画像データを圧縮伸長する。圧縮伸長部32は、メモリ30に格納された画像を読み込んで圧縮処理或いは伸長処理を行い、処理を終えたデータをメモリ30に書き込む。
露光制御手段40は、絞り機能を備えるシャッター12を制御する。露光制御手段40は、フラッシュ48と連携することにより、フラッシュ調光機能を実現することができる。
測距制御手段42は、撮影レンズ10のフォーカシングを制御する。ズーム制御手段44は、撮影レンズ10のズーミングを制御する。バリア制御手段46は、保護手段102の動作を制御する。フラッシュ48は、AF補助光の投光機能、フラッシュ調光機能を有する。
システム制御部50は、デジタルカメラ100全体を制御する。例えば、システム制御部50は、取得手段17により取得された画像データに対して画像処理部20が演算した演算結果に基づき、露光制御手段40や測距制御手段42を制御する。
また、システム制御部50は、顔情報選択手段50a、表情推定手段50b、及び制御手段50cを含む。顔情報選択手段50aは、顔情報抽出手段20bにより抽出された複数の第1の顔情報から、被写体の顔の表情を推定するための基準となる基準顔情報を選択する。基準顔情報は、例えば、無表情状態の表情、すなわち、澄ました表情に対する顔情報である。ここで、顔情報選択手段50aは、例えば、所定の期間、口の形状の変化量が所定の閾値を超えなかった場合に、無表情状態であると判定して、その判定結果に応じた顔情報を基準顔情報として選択する。
なお、顔情報選択手段50aは、無表情状態を判定する際に、口以外の構成要素の形状を使用しても構わない。例えば、顔情報選択手段50aは、更に顔情報として眼の開閉度状態を用い、目の大きさの変化などを使用して眼開きの状態タイミングに基づいて基準顔情報を選択しても良い。また、顔情報選択手段50aは、瞳画像をニューラルネットワークで学習させ、固定閾値以上の瞳ニューロン数から眼の開閉状態を判定するようにしても良い。
表情推定手段50bは、基準顔情報と第2の顔情報とを比較して、第2の顔情報に対応した被写体の顔の表情を推定する。すなわち、表情推定手段50bは、顔情報選択手段50aから基準顔情報を受け取り、画像処理部20の顔情報抽出手段20bから第2の顔情報を受け取る。表情推定手段50bは、基準顔情報と第2の顔情報との差分を演算し、基準顔情報に対する第2の顔情報の変化量を示す変化量情報を生成する。表情推定手段50bは、検出しようとする表情に達したと判断するための変化量の閾値を示す閾値情報を後述のメモリ52から受け取る。表情推定手段50bは、変化量情報と閾値情報とに基づいて、変化量が閾値を超えたか否かを判定する。これにより、表情推定手段50bは、対象とする被写体の顔が、目標とする表情に達したか否かを判断する。
制御手段50cは、第1の画像データを第1の解像度で取得し、第2の画像データを第2の解像度で取得するように、取得手段17を制御する。具体的には、制御手段50cは、光電変換手段14及び読み出し手段15の少なくとも一方へタイミング発生部18が供給する信号を制御することにより、光電変換手段14及び読み出し手段15の少なくとも一方を制御する。すなわち、制御手段50cは、第1の画像データを第1の解像度で得るために、第1の画像信号を第1の画素数で読み出すように、光電変換手段14及び読み出し手段15の少なくとも一方を制御する。また、制御手段50cは、第2の画像データを第2の解像度で得るために、第2の画像信号を第1の画素数より少ない第2の画素数で読み出すように、光電変換手段14及び読み出し手段15の少なくとも一方を制御する。
メモリ52は、システム制御部50の動作用の定数、変数等を記憶する。また、メモリ52は、予め設定情報として後述の入力手段75から受け取った閾値情報を記憶する。
第2の報知手段54は、システム制御部50でのプログラムの実行に応じて、文字、画像、音声等を用いて動作状態やメッセージ等を報知する。第2の報知手段54は、デジタルカメラ100の後述の操作部70近辺の視認し易い位置に単数或いは複数個所設置される。第2の報知手段54は、例えば、液晶表示装置(LCD)、LED、発音素子(スピーカ)等の組み合わせにより構成されている。
また、第2の報知手段54は、その一部の機能が光学ファインダ104内に設置されている。
第2の報知手段54は、例えば、シングルショット/連写撮影表示、セルフタイマー表示、圧縮率表示、記録画素数表示、記録枚数表示、残撮影可能枚数表示、シャッタースピード表示、絞り値表示、及び露出補正表示などをLCD等に表示する。あるいは、第2の報知手段54は、例えば、フラッシュ表示、赤目緩和表示、マクロ撮影表示、ブザー設定表示、時計用電池残量表示、電池残量表示、エラー表示、及び複数桁の数字による情報表示などをLCD等に表示する。あるいは、第2の報知手段54は、例えば、外部記録媒体120の着脱状態表示、通信I/F動作表示、及び日付け・時刻表示等をLCD等に表示する。
また、第2の報知手段54は、合焦表示、手振れ警告表示、フラッシュ充電表示、シャッタースピード表示、絞り値表示、及び露出補正表示等を光学ファインダ104内に表示する。
不揮発性メモリ56は、電気的に消去・記録可能なメモリであり、画像処理プログラムなどのプログラムを記憶する。不揮発性メモリ56は、例えば、EEPROM等が用いられる。
入力手段75は、複数の被写体から顔情報を抽出する対象となる被写体を指示する抽出対象指示を受け付ける。あるいは、入力手段75は、被写体の表情を検出するための表情検出指示を受け付ける。あるいは、入力手段75は、検出しようとする表情に達したと判断するための変化量の閾値を変更するための変更指示を受け付ける。
また、入力手段75は、システム制御部50の各種の動作指示を受け付ける。スイッチやダイアル、タッチパネル、視線検知によるポインティング、音声認識装置等の単数或いは複数の組み合わせを介して、所定の指示を受け付ける。この入力手段75は、モードダイアルスイッチ60、シャッターボタン61、第1シャッタースイッチ62、第2シャッタースイッチ64、画像表示ON/OFFスイッチ66、及び操作部70を含む。
モードダイアルスイッチ60は、電源オフ、自動撮影モード、撮影モード、パノラマ撮影モード、再生モード、マルチ画面再生・消去モード、PC接続モード等の各機能モードを切り替え設定するための指示を受け付ける。
シャッターボタン61は、静止画撮影等するための指示などをユーザから受け付ける。例えば、シャッターボタン61は、半押しされることにより、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等するための第1の指示を受け付ける。例えば、シャッターボタン61は、全押しされることにより、静止画撮影等するための第2の指示を受け付ける。
第1シャッタースイッチ(SW1)62は、第1の指示をシャッターボタン61から受け取るとON状態になり、ON状態である旨の情報をシステム制御部50へ供給する。システム制御部50は、第1シャッタースイッチ62がON状態であることに応じて、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等の動作開始を各部へ指示する。
第2シャッタースイッチ(SW2)64は、第2の指示をシャッターボタン61から受け取るとON状態になり、ON状態である旨の情報をシステム制御部50へ供給する。これにより、システム制御部50は、一連の撮影処理の動作開始を指示する。一連の撮影処理では、光電変換手段14から読み出した信号をA/D変換手段16、メモリ制御部22を介して記憶手段30に画像データを書き込む露光処理、画像処理部20やメモリ制御部22での演算を用いた現像処理を行う。そして、一連の撮影処理では、記憶手段30から画像データを読み出し、圧縮伸長部32で圧縮を行い、記録媒体200或いは210に画像データを書き込む記録処理を行う。
画像表示ON/OFFスイッチ66は、第1の報知手段28のON/OFFを設定するための指示を受け付ける。この指示により、システム制御部50は、光学ファインダー104を用いて撮影を行う際に、第1の報知手段28への電流供給を遮断して、省電力化を図ることができる。
クイックレビューON/OFFスイッチ68は、撮影直後に撮影した画像データを自動再生するクイックレビュー機能を設定するための指示を受け付ける。例えば、第1の報知手段28をOFFとした場合におけるクイックレビュー機能の設定を受け付けることができるものとする。
操作部70は、各種ボタンやタッチパネル等からなる。操作部70は、メニューボタン、マクロボタン、マルチ画面再生改ページボタン、フラッシュ設定ボタン、単写/連写/セルフタイマー切り替えボタン、メニュー移動+(プラス)ボタン、メニュー移動−(マイナス)ボタンを含む。操作部70は、再生画像移動+(プラス)ボタン、再生画像−(マイナス)ボタン、撮影画質選択ボタン、露出補正ボタン、日付/時間設定ボタン、ブラケットモードの選択ボタン等を含む。
電源制御手段80は、電池検出回路、DC-DCコンバータ、通電するブロックを切り替えるスイッチ回路等により構成されており、電池の装着の有無、電池の種類、電池残量の検出を行う。電源制御手段80は、検出結果及びシステム制御部50の指示に基づいてDC-DCコンバータを制御し、必要な電圧を必要な期間、外部記録媒体120を含む各部へ供給する。
コネクタ82は、電源制御手段80に接続されている。コネクタ84は、電源86に接続されている。電源86は、例えば、アルカリ電池やリチウム電池等の一次電池やNiCd電池やNiMH電池、Li電池等の二次電池、ACアダプター等である。
カードコントローラ90は、メモリカード等の外部記録媒体とデータの送受信を行う。インタフェース91は、メモリカード等の外部記録媒体120とカードコントローラ90とのインタフェースとして機能する。コネクタ92は、メモリカード等の外部記録媒体120が接続される。記録媒体着脱検知手段98は、コネクタ92に外部記録媒体120が装着されているか否かを検知する。
なお、記録媒体を取り付けるインタフェース及びコネクタは、2以上の系統数であってもよい。また、インタフェース及びコネクタは、異なる規格のものが組み合わせされていても構わない。インタフェース及びコネクタは、半導体メモリカード等の規格に準拠したものを用いて構成して構わない。この場合、各種通信カードを接続することにより、他のコンピュータやプリンタ等の周辺機器との間で画像データや画像データに付属した管理情報を転送し合うことができる。各種通信カードは、例えば、LANカードやモデムカード、USBカード、IEEE1394カード、P1284カード、SCSIカード、PHS等の通信カード等である。
光学ファインダ104は、撮影を行う際に被写体を確認するために用いられる。光学ファインダー104を用いれば、第1の報知手段28による電子ファインダー機能を使用すること無しに撮影を行うことが可能である。また、光学ファインダー104には、第2の報知手段54により表示される情報の一部、例えば、合焦表示、手振れ警告表示、フラッシュ充電表示、シャッタースピード表示、絞り値表示、露出補正表示などに関する情報が表示される。
外部記録媒体120は、コネクタ92に着脱可能に接続される。外部記録媒体120は、例えば、メモリカード等である。
次に、画像処理装置100が被写体の表情を推定する際の処理(笑顔撮影モードの処理)の流れを、図2に示すフローチャートを用いて説明する。図2は、画像処理装置100が被写体の表情を推定する際の処理(笑顔撮影モードの処理)の流れを示すフローチャートである。
ステップS1(第1の取得ステップ)では、入力手段75が、笑顔撮影モードを選択するための指示を受け付ける。この笑顔撮影モードは、特定の被写体の笑顔を検出した際に自動的に撮影が行われる撮影モードである。取得手段17は、異なる複数のタイミングで被写体を撮像して得られた第1の画像データを第1の解像度で取得する。
すなわち、制御手段50cは、第1の画像データを第1の解像度で得るために、第1の画像信号を第1の画素数で読み出すように、光電変換手段14及び読み出し手段15の少なくとも一方を制御する。光電変換手段14は、被写体の光学像を光電変換して第1の画像信号を生成する。読み出し手段15は、光電変換手段14から第1の画像信号を第1の画素数で読み出す。A/D変換手段16は、読み出し手段15により読み出された第1の画像信号をA/D変換して第1の画像データを生成する。第1の画像データは、その解像度が第1の解像度になっている。これらの動作が異なる複数のタイミングで行われて、複数の第1の画像データが第1の解像度で取得される。
ステップS2(第1の顔領域検出ステップ)では、入力手段75が、顔領域検出を行うための指示をユーザから受け付け、その指示を顔領域検出手段20aへ供給する。顔領域検出手段20aは、その指示に応じて、取得手段17により取得された複数の第1の画像データのそれぞれにおいて、被写体の第1の顔領域を検出する。顔領域検出手段20aは、検出された第1の顔領域に関する情報をシステム制御部50へ供給する。
ステップS3では、準備処理が行われる。準備処理の詳細に関しては後述する。
ステップS4では、システム制御部50が、表情を検出すべきであるか否かを判断する。
例えば、システム制御部50は、被写体の表情を検出するための表情検出指示を入力手段75から受け取った場合、表情を検出すべきであると判断する。システム制御部50は、被写体の表情を検出するための表情検出指示を入力手段75から受け取らなかった場合、表情を検出すべきでないと判断する。
あるいは、例えば、システム制御部50は、対象とする被写体の全てについて基準顔情報が選択された場合、表情を検出すべきであると判断する。システム制御部50は、対象とする被写体のうち基準顔情報が選択されていない被写体が存在する場合、表情を検出すべきでないと判断する。
システム制御部50は、表情を検出すべきであると判断する場合、処理をステップS5へ進め、表情を検出すべきでないと判断する場合、処理をステップS1へ進める。
ステップS5(第2の取得ステップ)では、取得手段17が、被写体の顔の表情を推定するために、被写体を撮像して得られた第2の画像データを、第1の解像度よりも低い第2の解像度で取得する。ここで、取得手段17は、後述の検出処理(ステップS7)において第2の顔情報を抽出することに成功していないと判断する場合、前回の処理で用いた第2の解像度よりも高い解像度であって第1の解像度よりも低い解像度を新たに第2の解像度とする。
すなわち、制御手段50cは、第2の画像データを第2の解像度で得るために、第2の画像信号を第1の画素数より少ない第2の画素数で読み出すように、光電変換手段14及び読み出し手段15の少なくとも一方を制御する。ここで、制御手段50cは、後述の検出処理(ステップS7)において第2の顔情報を抽出することに成功していないと判断する場合、前回の処理で用いた第2の画素数よりも高い画素数を新たに第2の画素数とする。
光電変換手段14は、被写体の光学像を光電変換して第2の画像信号を生成する。読み出し手段15は、光電変換手段14から第2の画像信号を、第1の画素数より少ない第2の画素数で読み出す。A/D変換手段16は、読み出し手段15により読み出された第2の画像信号をA/D変換して第2の画像データを生成する。第2の画像データは、その解像度が第2の解像度になっている。
ステップS6(第2の顔領域検出ステップ)では、顔領域検出手段20aが、取得手段17により取得された複数の画像データのそれぞれにおいて、被写体の顔領域を検出する。顔領域検出手段20aは、検出された顔領域に関する情報をシステム制御部50へ供給する。
ステップS7では、検出処理が行われる。検出処理の詳細に関しては後述する。
ステップS8では、システム制御部50が、撮影すべきであるか否かを判断する。
例えば、システム制御部50は、表情フラグがONされた被写体の数が所定数以上である場合、撮影すべきであると判断し、表情フラグがONされた被写体の数が所定数未満である場合、撮影すべきでないと判断する。
あるいは、例えば、システム制御部50は、表示フラグがON状態である旨の情報を第2シャッタースイッチ64から受け取った場合、撮影すべきであると判断する。例えば、システム制御部50は、表示フラグがON状態である旨の情報を第2シャッタースイッチ64から受け取らなかった場合、撮影すべきでないと判断する。
システム制御部50は、撮影すべきであると判断する場合、処理をステップS9へ進め、撮影すべきでないと判断する場合、処理をステップS10へ進める。
ステップS9では、システム制御部50が、一連の撮影処理の動作開始を指示する。一連の撮影処理では、撮像素子14から読み出した信号をA/D変換器16、メモリ制御部22を介して記憶手段30に画像データを書き込む露光処理、画像処理部20やメモリ制御部22での演算を用いた現像処理を行う。そして、一連の撮影処理では、記憶手段30から画像データを読み出し、圧縮伸長部32で圧縮を行い、記録媒体200或いは210に画像データを書き込む記録処理を行う。
ステップS10では、システム制御部50が、笑顔撮影モードの処理を終了すべきか否かを判断する。
例えば、システム制御部50は、検出処理(ステップS7)において第2の顔情報を抽出することに成功していないと判断する場合、笑顔撮影モードの処理を終了すべきでないと判断する。システム制御部50は、検出処理(ステップS7)において第2の顔情報を抽出することに成功していると判断する場合、笑顔撮影モードの処理を終了すべきであると判断する。
例えば、システム制御部50は、撮影モードを笑顔撮影モード以外の撮影モードへ変更するための指示を受け取った場合、笑顔撮影モードの処理を終了すべきであると判断する。システム制御部50は、撮影モードを笑顔撮影モード以外の撮影モードへ変更するための指示を受け取らなかった場合、笑顔撮影モードの処理を終了すべきでないと判断する。
あるいは、例えば、システム制御部50は、笑顔撮影モードを終了すべき指示を受け取った場合、笑顔撮影モードの処理を終了すべきであると判断する。システム制御部50は、笑顔撮影モードを終了すべき指示を受け取らなかった場合、笑顔撮影モードの処理を終了すべきでないと判断する。
次に、準備処理(ステップS3)の流れを、図3を用いて説明する。図3は、被写体ごとの準備処理の流れを示すフローチャートである。図3には、特定の被写体(例えば、図5に示す被写体O1)に着目した場合の処理が示されている。すなわち、準備処理は、個々の被写体ごとに独立して並行的に行われる。
ステップS11では、顔情報抽出手段20bが、特定の被写体が対象とする被写体であるか否かを判断する。
例えば、顔情報抽出手段20bは、特定の被写体に対する抽出対象指示を入力手段75から受け取った場合、その特定の被写体が対象とする被写体であると判断する。顔情報抽出手段20bは、特定の被写体に対する抽出対象指示を入力手段75から受け取らなかった場合、その特定の被写体が対象とする被写体でないと判断する。
顔情報抽出手段20bは、特定の被写体が対象とする被写体であると判断する場合、処理をステップS12へ進め、特定の被写体が対象とする被写体でないと判断する場合、処理を終了する。
ステップS12(第1の顔情報抽出ステップ)では、顔情報抽出手段20bが、顔領域検出手段20aにより検出された複数の第1の顔領域のそれぞれから、被写体の顔の構成要素の形状に関する第1の顔情報を抽出する。
例えば、顔情報抽出手段20bは、以降のステップでの計算精度を上げるため、選択された顔のサイズと向きとを正規化する。顔情報抽出手段20bは、両眼の位置を用いて両眼間距離が所定の距離、顔の向きが所定の向きになるようにアフィン変換による正規化処理を行う。顔情報抽出手段20bは、正規化された顔から口や目や眉毛などの端点の形状を代表する特徴点を検出する。そして、顔情報抽出手段20bは、検出された各特徴点から第1の特徴量を算出する。すなわち、顔情報抽出手段20bは、複数の第1の顔領域のそれぞれから、被写体の顔の第1の特徴量を含む第1の顔情報を抽出する。
ここで、第1の顔情報は、例えば、図5に示すように、口や目や眉毛などの特徴点500〜517の具体的な形状や座標に関する情報を、第1の特徴量として含む。第1の顔情報は、それぞれの端点や中心点あるいは目の黒点などを入力された顔の画像から、例えばニューラルネットワークや空間フィルタを用いたエッジ検出などの手法を用いて算出することにより抽出することができる。すなわち、顔情報抽出手段20bは、各特徴点に対して所定の検出範囲を設定し、各検出範囲内で特徴量を検出するためのニューラルネットワークを用いることにより各特徴点を検出する。ニューラルネットワークには、顔検出同様に予め各特徴点画像データを用いて学習させた各ネットワークが使用される。
各特徴点に対する検出範囲は、例えば次のように設定される。顔情報抽出手段20bは、特徴点500、502(図5参照)に対して、例えば、図6に示すように、両眼間距離aと左眼位置400とを用いて検出範囲600、601を設定する。顔情報抽出手段20bは、特徴点503、505(図5参照)に対しても、特徴点500、502と同様に、両眼間距離aと右眼位置401を用いて検出範囲を設定する。顔情報抽出手段20bは、特徴点501(図5参照)に対して、図7に示すように、検出範囲602を設定する。顔情報抽出手段20bは、特徴点504(図5参照)に対しても、特徴点501と同様に検出範囲を設定する。顔情報抽出手段20bは、特徴点506、509(図5参照)に対して、図8に示すように、検出範囲603、604を設定する。顔情報抽出手段20bは、特徴点510、513に対しても、特徴点506、509と同様に検出範囲を設定する。顔情報抽出手段20bは、特徴点507、508(図5参照)に対して、図9に示すように、検出範囲605、606を設定する。顔情報抽出手段20bは、特徴点511、512(図5参照)に対しても、特徴点507、508と同様に検出範囲を設定する。顔情報抽出手段20bは、特徴点514、517(図5参照)に対して、図10に示すように検出範囲607、608を設定する。顔情報抽出手段20bは、特徴点515、516(図5参照)に対して、図11に示すように検出範囲609、610を設定する。
顔情報抽出手段20bにより算出される特徴量は、例えば、次のような情報である。特徴量の一例として笑顔表情の特徴量について説明する。
笑顔表情は、Facial Action Coding System(FACS)において、次のように提唱されている。(P.Ekman and W.V.Friesen, Facial Action Coding System(FACS) Manual, Palo Alto:Consulting Psychologists Press, 1978)。「FACSにおける笑顔表情の定義」として、「頬を持ち上げる」ことと、「唇の端を引っ張りあげる」こととが挙げられている。
本実施形態では、顔情報抽出手段20bが、笑顔表情の特徴量として、上記FACSの定義に従った図12に示す特徴量710〜712を算出する。すなわち、顔情報抽出手段20bは、特徴点506と特徴点514とのy方向の距離710を算出する。顔情報抽出手段20bは、特徴点513と特徴点517とのy方向の距離711を算出する。顔情報抽出手段20bは、特徴点514と特徴点517とのx方向の距離712を算出する。なお、距離710〜712は、いずれも、基準となる距離(例えば、両眼間距離a)に対する相対的な距離である。
ステップS13では、顔情報抽出手段20bが、顔情報を抽出することに成功したか否かを判断する。顔情報抽出手段20bは、顔情報を抽出することに成功したと判断した場合、処理をステップS15へ進め、顔情報を抽出することに成功していないと判断した場合、処理を終了する。
ステップS15(第1の顔情報選択ステップ)では、顔情報選択手段50aが、顔情報抽出手段20bにより抽出された複数の顔情報から、被写体の顔の表情を推定するための基準となる基準顔情報を選択する。基準顔情報は、例えば、無表情状態の表情、すなわち、澄ました表情に対する顔情報である。ここで、顔情報選択手段50aは、例えば、所定の期間、口の形状の変化量が所定の閾値を超えなかった場合に、無表情状態であると判定して、その判定結果に応じた顔情報を基準顔情報として選択する。
なお、顔情報選択手段50aは、無表情状態を判定する際に、口以外の構成要素の形状を使用しても構わない。例えば、顔情報選択手段50aは、更に顔情報として眼の開閉度状態を用い、目の大きさの変化などを使用して眼開きの状態タイミングに基づいて基準顔情報を選択しても良い。また、顔情報選択手段50aは、瞳画像をニューラルネットワークで学習させ、固定閾値以上の瞳ニューロン数から眼の開閉状態を判定するようにしても良い。
次に、検出処理(ステップS7)の流れを、図4を用いて説明する。図4は、被写体ごとの検出処理の流れを示すフローチャートである。すなわち、検出処理は、個々の被写体ごとに独立して並行的に行われる。図4には、特定の被写体の着目した場合の処理が示されている。
ステップS23(第2の顔情報抽出ステップ)では、顔情報抽出手段20bが、顔領域検出手段20aにより検出された第2の顔領域から、被写体の顔の構成要素の形状に関する第2の顔情報を抽出する。すなわち、顔情報抽出手段20bは、第2の顔領域から、被写体の顔の第2の特徴量を含む第2の顔情報を抽出する。このステップS23の詳細は、上記のステップS12と同様である。
なお、顔情報抽出手段20bは、取得された第2の画像データの解像度不足により検出したい特徴点の全てが検出されていない場合であっても、2以上の特徴点が検出されていれば、その2以上の特徴点を用いて第2の特徴量を算出する。
ステップS24では、顔情報抽出手段20bが、第2の顔情報を抽出することに成功したか否かを判断する。
例えば、顔情報抽出手段20bは、取得された第2の画像データの解像度不足により検出したい特徴点の全てが検出されていない場合であっても、例えば、2以上の特徴点が検出されていれば、第2の顔情報を抽出することに成功したと判断する。第2の顔情報を抽出することに成功したと判断する特徴点の数は、第1の顔情報を抽出することに成功したと判断する特徴点の数よりも少なく設定される。
顔情報抽出手段20bは、第2の顔情報を抽出することに成功したと判断した場合、処理をステップS25へ進め、第2の顔情報を抽出することに成功していないと判断した場合、処理を終了する。
ステップS25では、表情推定手段50bが、顔情報選択手段50aから基準顔情報を受け取り、画像処理部20の顔情報抽出手段20bから第2の顔情報を受け取る。表情推定手段50bは、基準顔情報と第2の顔情報との差分を演算し、基準顔情報に対する第2の顔情報の変化量を示す変化量情報を生成する。
例えば、表情推定手段50bは、顔の個々の構成要素に対して基準顔情報に含まれる第1の特徴量と第2の顔情報に含まれる第2の特徴量との差分を演算する。そして、表情推定手段50bは、次の数式1を用いて、笑顔表情の度合い、すなわち、笑顔度を算出する。被写体の顔の個々の構成要素に対する基準顔情報と他の顔情報との差分をv1、v2、v3、・・・とするとき、表情推定手段50bは、笑顔度を、
SumScore=ΣScorei
=Σg(wi、vi)・・・数式1
としてi=1〜Nについて合計して演算する。ここで、Nは顔の個々の構成要素を識別するための番号であり、wは各構成要素の重みであり、gは得点算出関数である。すなわち、表情推定手段50bは、この笑顔度SumScoreを変化量情報として生成する。この笑顔度SumScoreは、例えば、0から100といった数値で表される。
なお、表情推定手段50bは、取得された第2の画像データの解像度不足により検出したい特徴点の全てが検出されていない場合でも、算出された特徴量のみ用いて特徴量の変化量を算出し笑顔度を算出する。例えば笑顔の特徴量である距離710、711、712の内、距離710が算出できなかった場合は距離711、712のみ用いて笑顔度を算出する。また、表情推定手段50bは、基準顔情報と他の顔情報との比を演算し、基準顔情報に対する他の顔情報の変化量を示す変化量情報を生成してもよい。
ステップS27(表情推定ステップ)では、表情推定手段は、基準顔情報と第2の顔情報とを比較して、第2の顔情報に対応した被写体の顔の表情を推定する。すなわち、表情推定手段50bは、検出しようとする表情に達したか否かを判断する。
例えば、表情推定手段50bは、検出しようとする表情に達したと判断するための変化量の閾値を示す閾値情報を後述のメモリ52から受け取る。表情推定手段50bは、変化量情報と閾値情報とに基づいて、変化量が閾値を超えたか否かを判定する。表情推定手段50bは、変化量が閾値を超えたと判定した場合、対象とする被写体に対して、検出しようとする表情に達したと判断する。表情推定手段50bは、変化量が閾値を超えていないと判定した場合、対象とする被写体に対して、検出しようとする表情に達していないと判断する。
表情推定手段50bは、検出しようとする表情に達したと判断する場合、処理をステップS29へ進め、検出しようとする表情に達していないと判断する場合、処理を終了する。
ステップS29では、表情推定手段50が、メモリ52にアクセスして、目標とする表情に達した被写体の表情フラグをOFF状態からON状態へ書き換える。
以上のように、被写体の顔の表情を推定するための第2の画像データの第2の解像度は、基準顔情報を取得するための第1の画像データの第1の解像度よりも低くなっている。
すなわち、被写体の顔の表情を推定するための第2の画像データの解像度が低いので、被写体の表情を推定するための処理時間を短縮することができるため、被写体の表情を高速に推定することができる。
また、基準顔情報を取得するための第1の画像データの解像度が高いので、基準顔情報(第1の特徴量)を得るために抽出される特徴点の数が減少することを避けることができる。これにより、第2の画像データから得られる第2の顔情報に含まれる特徴点が変動しても、被写体の顔の表情を推定する精度を高精度に維持できる。なお、光電変換手段14から読み出す画素数を異ならせることで解像度の異なる第1の画像データと第2の画像データとを生成していたが、これ以外の方法であっても構わない。例えば、A/D変換して生成された第1の画像データにリサイズ処理を施して、第1の画像データと解像度の異なる第2の画像データとを生成しても構わない。
したがって、高速で高精度に被写体の顔の表情を推定することができる。この結果、良い表情と判定した時にシャッターチャンスを逃さず撮影することができる。
また、被写体の表情を推定するための制御信号を減らすことができるので、被写体の表情を推定するための電力を低減できる。
次に、上述した実施形態の機能を実現するためのプログラムについて説明する。
上述した実施形態の機能を実現するように各種のデバイスを動作させ、その各種のデバイスと接続された装置あるいはシステム内のコンピュータに対して上述した実施形態の機能を実現させるソフトウェアのプログラムコード(プログラム)を供給する。
そして、そのシステムあるいは装置のコンピュータ(CPUあるいはMPU)に(ソフトウェア的に又はハードウェア的に)格納されたプログラムにしたがって上に記載した各種のデバイスを動作させるようにしたものも、本発明の範疇に含まれる。
また、この場合、上記のソフトウェアのプログラム自体が上述した実施形態の機能を実現することになる。
また、そのプログラム自体、及びそのプログラムのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムを格納した記憶媒体も、本発明の範疇に含まれる。
かかるプログラムを記憶する記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、供給されたプログラムをコンピュータが実行することにより、上述の実施形態の機能が実現されるだけではない。
例えば、そのプログラムがコンピュータにおいて稼動しているOS(オペレーティングシステム)あるいは他のアプリケーション等と協働して上述の実施形態の機能を実現させる場合にも、かかるプログラムは、本発明の範疇に含まれる。
さらに、供給されたプログラムは、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納される。
そして、そのプログラムの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合にも、かかるプログラムは、本発明の範疇に含まれる。