表情認識装置及び方法、並びに撮像装置
【課題】予め特定の表情の画像を登録することを不要としながら、各個人の顔の特徴量をベースとして表情を判定することを可能とする。
【解決手段】表情認識装置は、順次に画像を入力し、入力された画像から検出された顔の画像情報に基づいて表情判定を開始するか否かを判定する。表情認識装置は、表情判定を開始すると判定された場合、その判定に応じて、画像から検出された顔の画像情報に基づいて参照特徴情報を取得する。そして、表情認識装置は、表情判定を開始すると判定した後に入力された画像について、検出された顔の画像情報から特徴情報を抽出し、当該抽出された特徴情報と上記取得された参照特徴情報とに基づいて、当該検出された顔の表情を判定する。
【解決手段】表情認識装置は、順次に画像を入力し、入力された画像から検出された顔の画像情報に基づいて表情判定を開始するか否かを判定する。表情認識装置は、表情判定を開始すると判定された場合、その判定に応じて、画像から検出された顔の画像情報に基づいて参照特徴情報を取得する。そして、表情認識装置は、表情判定を開始すると判定した後に入力された画像について、検出された顔の画像情報から特徴情報を抽出し、当該抽出された特徴情報と上記取得された参照特徴情報とに基づいて、当該検出された顔の表情を判定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人物の画像情報から表情を認識する表情認識装置及び方法、並びに撮像装置に関する。
【背景技術】
【0002】
表情を認識する様々な従来の技術がある。特許文献1に記載の表情認識処理では、予め表情認識処理に使用するための無表情の参照画像を用意しておく。そして、入力された画像と予め用意しておいた無表情の参照画像の夫々に対してウェーブレット変換を施し、帯域毎に周波数信号の平均電力を算出する。そして、夫々の平均電力との差分を算出することにより表情を判定する。
【0003】
また、特許文献2に記載の表情認識処理では、予め表情認識処理に使用するための無表情の参照画像から所定の特徴点を抽出した後、特徴点間の距離などを算出する。そして、入力画像からも同じように特徴点間距離を算出し、夫々の距離の差分値を算出することにより表情を判定する。
【0004】
更に、特許文献3には、無表情の参照画像を使用しない表情認識技術が記載されている。特許文献3に記載の表情認識処理では、1枚の画像から左右目尻と口の両端点を検出した後、これらの4点から作成される矩形の長辺と短辺の比により表情を判定する。
【0005】
さらに、特許文献4には、各特徴部位から眉の動きなどの表情要素と表情要素情報を得て、その表情要素情報から表情要素コードを算出した後、表情要素コードを所定の変換式で演算して情緒の量を算出する方法が記載されている。
【特許文献1】特許第02840816号明細書
【特許文献2】特開2005−56388号公報
【特許文献3】特開2005−266984号公報
【特許文献4】特許第2573126号明細書
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献1、特許文献2に記載された表情認識処理では、無表情からの変化を捉えているため、特許文献3に記載されているような無表情画像を使用しない表情認識技術と比べると、
(1)眼や口などの顔面パーツ位置の個人差を吸収することができる、
(2)比較的検出精度が高い表情の微妙な変化も捉えることができる、
という大きなメリットがある。しかしながら、その一方、
(1)予め無表情の画像を登録する手間がかかる、
(2)登録された人物しか表情を認識することができない、
(3)表情認識処理を行う人物の数だけ画像などを登録しておく必要があるため、より多くのメモリ領域が必要となる、
(4)登録の際の撮影環境と表情認識を実行する際の撮影環境が異なる場合、撮影環境の違いにより表情を精度良く認識することができない場合がある、
(5)無表情画像を登録するユーザによって無表情画像の定義などがバラバラになると、表情認識精度が大きく左右される、
という課題があった。上記の5つの課題は、予めユーザが無表情画像をマニュアルで登録するという動作に起因する。
【0007】
また、特許文献3,4では、共通の基準を用いて個人の表情を判定することになるため、顔の特徴点の位置等に関する個人差を吸収できず、精度を向上することが困難である。
【0008】
本発明は、上記の課題に鑑みてなされたものであり、予め特定の表情の画像を登録することを不要としながら、各個人の顔の特徴量をベースとして表情を判定することを可能とする表情認識装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記の目的を達成するための本発明の一態様による表情認識装置は以下の構成を備える。すなわち、
順次に画像を入力する画像入力手段と、
前記画像入力手段で得られる画像から顔を検出する顔検出手段と、
前記顔検出手段で検出された顔の画像情報に基づいて表情判定を開始するか否かを判定する開始判定手段と、
前記開始判定手段が表情判定を開始すると判定した場合、前記顔検出手段で検出された顔の画像情報に基づいて参照特徴情報を取得する取得手段と、
前記開始判定手段が表情判定を開始すると判定した後に前記画像入力手段で入力された画像について、前記顔検出手段によって検出された顔の画像情報から特徴情報を抽出し、当該抽出された特徴情報と前記参照特徴情報とに基づいて前記検出された顔の表情を判定する表情判定手段とを備える。
【0010】
また、上記の目的を達成するための本発明の他の態様による表情認識装置は以下の構成を備える。すなわち、
順次に画像を入力する画像入力手段と、
前記画像入力手段で得られる画像から顔を検出する顔検出手段と、
前記顔検出手段で検出された顔から特徴量を抽出する特徴量抽出手段と、
前記特徴量抽出手段で抽出された特徴量の信頼度が閾値以上である場合に、当該特徴量をメモリに格納する格納手段と、
前記格納手段によって前記メモリに格納された特徴量の変化に基づいて、前記顔における顔の表情を判定する表情判定手段とを備える。
【0011】
更に、上記の目的を達成するための本発明の他の態様による撮像装置は以下の構成を備える。すなわち、
上記表情認識装置と、
撮像手段により画像を時系列に取得して、前記画像入力手段に前記取得手段で取得した画像を供給する供給手段と、
前記表情判定手段が予め定めれられた表情であると判定した場合、当該画像を撮影画像として記録する記録手段とを備える。
【発明の効果】
【0012】
本発明によれば、予め特定の表情の画像を登録することを不要としながら、各個人の顔の特徴量をベースとして表情を精度良く判定することが可能となる。
【発明を実施するための最良の形態】
【0013】
以下、添付図面を参照して本発明の好適な実施形態について詳しく説明する。
【0014】
<第1実施形態>
図1は、実施形態に係る撮像装置100の構成を示すブロック図である。本実施形態では撮像装置100の例として電子スチルカメラを用いる。以下、撮像装置100を電子カメラとも言う。
【0015】
図1において、101は撮像レンズ群である。102は光量調節装置であり、絞り装置及びシャッタ装置を備える。103は撮像素子であり、撮像レンズ群101を通過した被写体像としての光束を電気信号に変換する。撮像素子103は、例えばCCD或いはCMOS等で構成される。104はアナログ信号処理回路であり、撮像素子103のアナログ信号出力にクランプ処理、ゲイン処理等を行う。105はアナログ/デジタル(以下、A/Dとする)変換器であり、アナログ信号処理回路104の出力をデジタル信号に変換するである。
【0016】
107はデジタル信号処理回路であり、A/D変換器105からのデータ或いはメモリ制御回路106からのデータに対して、所定の画素補間処理や色変換処理などを行う。また、デジタル信号処理回路107は、撮像した画像データを用いて所定の演算を行う。
【0017】
システム制御回路112は、デジタル信号処理回路107の演算結果に基づいて露出制御回路113、焦点制御回路114に対する制御を実行する。これにより、TTL(スルー・ザ・レンズ)方式のAF(オートフォーカス)処理、AE(自動露出)処理、EF(ストロボプリ発光)処理が実行される。また、デジタル信号処理回路107は、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてTTL方式のAWB(オートホワイトバランス)処理も行っている。更に、その撮像した画像データから、特定被写体を検出し、特定被写体の表情認識処理も実行している。
【0018】
メモリ制御回路106は、アナログ信号処理回路104、A/D変換器105、デジタル信号処理回路107、メモリ108、デジタル/アナログ(以下、D/Aとする)変換器109を制御する。A/D変換器105でA/D変換されたデータはデジタル信号処理回路107、メモリ制御回路106を介して、或いはA/D変換器105でA/D変換されたデータが直接メモリ制御回路106を介して、メモリ108に書き込まれる。
【0019】
メモリ108は表示装置110に表示するデータを記憶している。このメモリ108に記録されているデータは、D/A変換器109を介してTFT、LCD等の表示装置110に出力されて表示される。また、メモリ108は撮像した静止画象や動画像を格納し、所定枚数の静止画像や所定時間分の動画像を格納するのに十分な記憶量を備えている。これにより、複数枚の静止画像を連続して撮像する連写撮影やパノラマ撮影の場合にも、高速かつ大量の画像書き込みをメモリ108に対して行うことが可能となる。また、メモリ108はシステム制御回路112の作業領域としても使用することが可能である。なお、撮像した静止画象や動画像は、インターフェース111を使用してCD−ROM、フロッピー(登録商標)ディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等の記憶媒体に書き込むように構成しても良い。
【0020】
表示装置110に撮像した画像データを逐次表示すれば、電子ファインダとしての機能を実現できる。また表示装置110は、システム制御回路112の指示により任意に表示をオン/オフすることが可能であり、表示をオフにした場合は、オンにした場合に比較して、この撮像装置100の電力消費を大幅に低減できる。また、システム制御回路112は、プログラムの実行に応じて、文字、画像等を用いて動作状態やメッセージ等を表示装置110に表示する。
【0021】
111はインターフェースであり、メモリカードやハードディスク等の記憶媒体を撮像装置100に接続する。また、インターフェース111を用いて、他のコンピュータやプリンタ等の周辺機器との間で画像データや画像データに付属した管理情報を転送し合うことができる。インターフェース111をPCMCIAカードやCF(コンパクトフラッシュ(登録商標))カード等の規格に準拠したものを用いて構成した場合、各種通信カードを接続することで外部機器との間の情報転送を実現できる。この各種通信カードとしては、LANカードやモデムカード、USBカード、IEEE1394カード、P1284カード、SCSIカード、PHS等の通信カード、等があげられる。
【0022】
システム制御回路112は撮像装置100全体の動作を制御している。システム制御回路112内のメモリ(不図示)に、このシステム制御回路112の動作用、または特定被写体の顔や表情を認識する定数、変数、プログラム等が記憶されている。なお、CD−ROM、フロッピーディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を使用して、システム制御回路112内のメモリに記憶されているこれらの定数、変数、プログラム等を変更することが可能である。また、システム制御回路112の動作用、または特定被写体の顔や表情を認識するためのデータやプログラムに関しては、メモリに格納するのではなく、上記記憶媒体等などから読み取ることにより実行させても良く、上記記載方法に限定しているわけではない。
【0023】
露出制御回路113は、光量調節装置102の絞り装置、シャッタ装置を制御する。焦点制御回路114は撮像レンズ群101のフォーカシング、ズーミングを制御する。露出制御回路113、焦点制御回路114はTTL方式を用いて制御されている。すなわち、システム制御回路112は、撮像した画像データをデジタル信号処理回路107によって演算した演算結果に基づき、露出制御回路113、焦点制御回路114に対して制御を行う。
【0024】
以下、図2のフローチャートを参照して、本実施形態による撮像装置100(電子カメラ)の全体動作を説明する。尚、図2に示される処理を実行するプログラムはシステム制御回路112内の不図示のメモリに記憶されており、当該処理はシステム制御回路112の制御の下に実行される。
【0025】
電源投入などにより本処理が開始されると、まず、ステップS200で、システム制御回路112は、内部のメモリの各種フラグや制御変数等を初期化する。ステップS201で、システム制御回路112は撮像装置100のモード設定状態を検知し、自動撮影モードに設定されていればステップS203へ、その他のモードに設定されていればステップS202に処理を進める。尚、自動撮影モードでは、被写体の顔の表情が所定の表情(本実施形態では笑顔)となったことを検知したタイミングで撮影(撮影画像としての記録動作)が行われる。ステップS202では、システム制御回路112は選択されたモードに応じた処理を実行し、その処理を終えるとステップS201に戻る。
【0026】
一方、自動撮影モードが設定されている場合は、ステップS203において、システム制御回路112は、電源の残容量や動作情況が撮像装置100の動作に問題があるか否かを判断する。システム制御回路112は、問題があると判断すると、ステップS204において、表示装置110を用いて、画像や音声により所定の警告表示を行い、その後、処理をステップS201に戻す。
【0027】
ステップS203において電源に問題が無いと判断されると、処理はステップS205に進む。ステップS205では、システム制御回路112は記憶媒体の動作状態が撮像装置100の動作、特に記憶媒体に対する画像データの記録再生動作に関して問題があるか否かを判断する。問題があると判断すされると、処理は前述のステップS204に進む。ステップS204において、システム制御回路112は、表示装置110を用いて、画像や音声により所定の警告表示を行い、その後処理をステップS201に戻す。
【0028】
ステップS205で記憶媒体に問題がないと判断されると、処理はステップS206に進む。ステップS206では、システム制御回路112は、画像や音声により撮像装置100の各種設定状態のユーザインターフェース(以下、UIと称する)を提示する。尚、表示装置110の画像表示がオンであったならば、表示装置110も用いて画像や音声により撮像装置100の各種設定状態のUI表示を行ってもよい。こうしてユーザによる各種設定がなされる。
【0029】
次にステップS207で、システム制御回路112は表示装置110の画像表示をオン状態に設定する。更に、ステップS208で、システム制御回路112は撮像した画像データを逐次表示するスルー表示状態に設定する。尚、本実施形態では、撮像素子103により得られた画像が順次にメモリ108に格納される。システム制御回路112は、この画像を時系列順に、順次に取り込む画像入力の機能を有する。このスルー表示状態では、メモリ108に逐次書き込まれた画像データを表示装置110により逐次表示することにより、電子ファインダ機能を実現している。
【0030】
ステップS209では、システム制御回路112は、撮影者などのユーザによってシャッタースイッチが押されたかどうかを確認する。シャッタースイッチが押されていないならば、処理はステップS201に戻る。シャッタースイッチが押されたならば、直ちに撮影は行わず、システム制御回路112は、ステップS210で顔検出処理を実行する。そして、ステップS211において、システム制御回路112は、ステップS210の顔検出処理結果に基づいて、所定のAE・AF制御を行う。更に、後述するステップS212〜219の手順により、所定の動作指示に応じて自動撮影モードによる撮影処理(所定の表情を自動的に検出して撮影する処理)が行われる。
【0031】
〔顔検出処理について〕
顔検出処理は、例えば、ニューラルネットワークやサポートベクターマシンに代表される学習を用いた方法がある。また、目や鼻といった物理的な形状の特徴のある部位を画像領域からテンプレートマッチングで抽出する手法がある。他にも、P.Viola and M.Jonesらの“Rapid Object Detection Using a BoostedCascadeof Simple Features,”in Proc. Of CVPR, vol.1, pp.511-518, December, 2001のような手法がある。更に、特開平10−232934号公報や特開2000−48184号に記載されているような肌の色や目の形といった画像特徴量を検出し統計的手法を用いて解析する手法がある。本実施形態においては、顔画像と非顔画像を用いてニューラルネットワークで学習させることにより顔識別器を構築する方法を用いる。また、ニューラルネットワークで学習させた顔識別器を使用すると、顔が存在する付近のニューロンは発火状態となる。このため、ニューロンの発火数や発火強度を用いて顔検出位置に加えて顔検出信頼度などを算出するようにしても良い。顔検出信頼度とは、検出された顔検出位置がどの程度信頼できるかという程度を表す値であり、顔検出信頼度が高い値であればあるほど、顔が存在する確率が高いことを示している。例えば、顔検出位置は最大出力値のニューロン位置とし、顔検出信頼度は最大出力値に対して所定の関数を通すことによって所定の値(例えば、0〜1)に正規化し、最大出力値から得られる値(例えば、0〜1)をそのまま顔検出信頼度とする方法がある。尚、顔検出位置とその周辺の領域を顔領域という。
【0032】
なお、顔検出信頼度は、固定閾値以上のニューロン数が所定数N1以上であるならば顔検出信頼度を1、所定数N2以上であるならば顔検出信頼度を0.6、それ以外は0とするような方法もある。また、固定閾値以上のニューロン数を所定の関数を通すことによって顔検出信頼度を算出する方法でも良い。他にもニューロン値の最大値から上位N3%のニューロン出力値の和を所定の関数を通すことによって顔検出信頼度を算出する方法など、顔位置検出位置や顔検出信頼度は別の手法を用いても良い。
【0033】
以降、ステップS212〜S213、或いはステップS214〜S219の処理が、撮像素子103から時系列順に入力される画像について実行されることになる。ステップS212〜S213では、顔の状態情報に基づくタイミングで所定の特徴量を参照特徴量として自動的に抽出し、ステップS214〜S219では、抽出された参照特徴量を用いた表情判定が実行される。すなわち、ステップS213による参照特徴量の設定処理は、ステップS215における表情判定処理の開始判定を行うものである。まず、ステップS212において、システム制御回路112は、撮像した画像データをスルー表示する。そして、ステップS213において、表情認識処理に使用する最適な参照特徴量を自動的に抽出して設定する処理を行うとともに、参照特徴量を設定できたか否かを判定する。参照特徴量を自動的に抽出する方法については以下で説明する。
【0034】
〔表情認識用の参照特徴量の抽出処理〕
図3は、表情認識処理に使用する最適な基準となる参照特徴量を自動的に抽出し、設定する処理フローチャートである。なお、以下の実施形態では最適な参照特徴量を無表情状態時から抽出される以下で説明するような各特徴量とするが、無表情状態以外の特定の表情状態から得られる各特徴量を参照特徴量としてもよい。
【0035】
ステップS300において、システム制御回路112は、上記説明した顔検出処理を用いて、顔位置検出処理と上記説明したような顔検出信頼度の算出とを再度行う。これは、AE・AF時から被写体の顔位置が変動している可能性があるためである。また、ここでは検出された顔位置周辺で代表的な眼のテンプレートと口のテンプレートを使用して、左右の眼の位置と口の位置を検出する。ステップS301では、システム制御回路112は、顔検出信頼度を用いて顔が検出されたかどうかを確認する。顔検出信頼度が所定値以上、つまり顔が検出されたと確認されれば、処理はステップS302へ進む。顔検出信頼度が所定値以下、つまり顔が検出されたと確認されなければ、本処理は終了する。ステップS302では、システム制御回路112は、ステップS300で検出された左右の眼の位置を用いて顔のサイズを算出する。算出された顔のサイズが所定サイズ以内であれば、処理はステップS303へ進む。
【0036】
例えば、システム制御回路112は、図4に示されるような左右の眼の検出位置400、401から両眼間距離を算出し、この両眼間距離を用いて顔のサイズを算出する。そして、ステップS302において、この算出されたサイズが所定サイズ外であると判定された場合は、本処理を終了する。ステップS303では、システム制御回路112は、ステップS300で検出された左右の眼の検出位置400、401を用いて顔の向きを算出する。この算出の結果、顔の向きが所定向き以内であれば、処理はステップS304へ進む。ステップS303では、例えば、図4のように両眼位置を結ぶ直線の傾きから顔の向き(面内回転量)を算出する。ステップS303で顔の向きがが所定の向きの範囲にないと判定された場合には、処理を終了する。ステップS304では、システム制御回路112は、図4の両眼の検出位置400、401を用いて、両眼間距離が所定の距離、顔の向きが所定の向きになるようにアフィン変換による正規化処理を行う。以上のように、ステップS301〜S303では、検出された顔のサイズ、向き、信頼度に基づいて、検出された顔の有効性を判定し、有効であると判定された場合に、以降の処理(無表情状態の判定)が行われる。
【0037】
ステップS305では、システム制御回路112は、図5のように顔の特徴点500〜517の抽出を行う。特徴点の抽出方法としては、様々な手法があるが、本実施形態では、各特徴点を検出する所定の範囲を設定し、各設定範囲内で特徴点を検出するニューラルネットワークを用いることにより検出する方法を用いる。ニューラルネットワークは、顔検出同様に予め各特徴点画像データを用いて学習させた各ネットワークを使用する。
【0038】
各特徴点の検出範囲は、両眼の検出位置400,401、顔検出位置402(鼻の位置)、口の位置403を用いて、次のように設定される。例えば特徴点500、502の検出範囲には、図6のように両眼間距離aと左眼検出位置400を用いて範囲600、601が設定される。また、特徴点503、505の検出範囲も両眼間距離aと右眼位置401を用いて同様に設定される。また、特徴点501の検出範囲には、図7に示されるような範囲602が設定され、特徴点504の検出範囲も同様な方法で設定される。特徴点506、509の検出範囲としては、図8のように範囲603、604が設定され、特徴点510、513の検出範囲も同様な方法で設定される。特徴点507、508の検出範囲には、図9のように範囲605、606が設定され、特徴点511、512も同様な方法で設定される。特徴点514、517の検出範囲としては、図10のように範囲607、608が設定される。また、特徴点515、516の検出範囲としては、図11のように範囲609、610が設定される。
【0039】
なお、ニューラルネットワークを用いると、各特徴点の正解位置付近では多数のニューロンが発火する。よって、本実施形態では、所定の閾値を超えたニューロン値の重心を算出することにより口の特徴点位置の抽出を行う方法を用いる。なお、位置算出方法や設定範囲は本実施形態に限定されるわけではない。
【0040】
ステップS306では、所定の特徴点がすべて検出されたかどうか確認する。すべての特徴点が検出された、つまり図5の特徴点500〜517の全てが検出されたならば、処理はステップS307へ進む。すべての特徴点を検出できない場合には、本処理を終了する。ステップS307において、システム制御回路112は、図5の特徴点500〜517のうちの口の特徴点514〜517の動的変化量から無表情状態であるかどうかを判定する。以下で無表情状態を判定する方法について説明する。
【0041】
図12は、図6の顔検出位置402を基準として、無表情から笑顔表情に変化する際の口の特徴点514及び517のy座標変化を示したグラフである。なお、図12のp1からp2までは無表情状態のフレーム、p2からp3までは笑顔状態のフレームである。図12を見れば分かるように、p1からp2の無表情状態では、顔検出位置を基準とした口の特徴点514及び517のy座標の変化量は、所定幅L1の範囲内で微小に振動するだけである。それに対し、p2からp3の笑顔表情状態では、頬の筋肉が持ち上がることにより口の特徴点514及び517のy座標が顔検出位置402に近づくため、顔検出位置402を基準としたy座標の変化量は大きく変動する。口の特徴点515及び516についても同様に、無表情状態では、顔検出位置402を基準とした口の特徴点515及び516のy座標の変化量は、所定幅(L2とする)の範囲内で微振するだけである。よって、顔検出位置402を基準とした口の特徴点のy座標の変化量(変動量)が、所定フレーム数連続して(予め定められた枚数の連続する画像において)各所定幅L1、L2内であれば、無表情状態として判定する。各所定幅L1、L2は、大量の無表情データを分析することによって予め得ておく。本実施形態では、口の特徴点のy座標変化量が参照特徴量抽出のタイミングを決定する為の顔の情報になる。
【0042】
なお、無表情状態で微小に振動する理由は、画像ノイズなどの影響により、口の特徴点検出位置が本来の正解位置から多少ズレることがあるためである。よって、口付近を覆い隠す物体などの影響により口の特徴点位置の誤検出などをしない限り、無表情状態では、顔検出位置402を基準とした口の特徴点位置のy座標変化量は、本来の正解位置である口の特徴点位置を基準として所定分散内に、ほぼ収まる。ステップS308では、このようにして所定特徴点の各フレーム間の動的な変化量から無表情状態であるかどうかが判定される。すなわち、検出された顔の特定の位置(顔検出位置402)を基準点とした顔面パーツを構成する特徴点(本例では口の特徴点)の座標値に基づいて、表情判定を開始するか否かが判定される。或いは、顔の特定の位置と顔面パーツを構成する特徴点との距離を利用してもよいことは明らかである。
【0043】
なお、上記のように参照特徴量を抽出する各所定幅を設定するのではなくて、参照特徴量を抽出しない各所定幅を設定するようにしても良い。すなわち、上記では、無表情の状態から参照特徴量を抽出するものとして、所定フレーム数連続して変動が所定幅以内であれば、参照特徴量を抽出した。しかしながら、他の表情の状態から参照特徴量を抽出するものとして、変動が所定幅以内では参照特徴量を抽出せず、所定フレーム数連続して所定幅より大きければ、参照特徴量を抽出するようにしても良い。また、無表情状態を判定する方法は、x座標とy座標の両方を使用しても構わないし、口の特徴点以外の特徴点を使用しても構わない。また、例えば、更に顔情報として眼の開閉度状態を用い、特徴点507と特徴点508の距離や距離変化などを使用して眼開きの状態タイミングで参照特徴量を抽出しても良い。また、特徴点抽出のように瞳画像をニューラルネットワークで学習させ、固定閾値以上の瞳ニューロン数から眼の開閉状態を判定するようにしても良い。例えば、検出された瞳領域の画素数が所定値以上である場合に、参照特徴量の設定を行う(表情判定処理を開始する)と判定するようにしてもよい。また、所定フレーム数の連続ではなく、所定の時間の連続を条件としてもよい。
【0044】
ステップS307で所定特徴点から無表情状態であると判定された場合には、処理はステップS308へ進む。ステップS307で所定特徴点から無表情状態でないと判定された場合には、処理を終了する。ステップS308では表情判定に使用する参照特徴量を抽出し、設定する。このように、本実施形態では、検出された顔の画像情報(検出された顔位置の周辺の画像)に基づいて、ステップS214以降の表情判定を開始するか否かが判定される。そして、表情判定を開始すると判定された場合は、上記表情判定のために、検出された顔の画像情報に基づいて参照特徴情報としての参照特徴量が取得される。以下で判定すべき表情の一例としての笑顔表情の参照特徴量について説明する。
【0045】
〔参照特徴量〕
笑顔表情は、Facial Action Coding System (P.Ekmanand W.V.Friesen, Facial ActionCoding System(FACS): Manual, Palo Alto:ConsultingPsychologists Press, 1978)において、以下のように提唱されている。
「FACSにおける笑顔表情の定義」
・頬を持ち上げる 唇の端を引っ張りあげる。
【0046】
本実施形態では、笑顔表情を判定するのに、図13のように特徴点506と特徴点514のy座標距離710、特徴点513と特徴点517のy座標距離711、特徴点514と特徴点517のx方向距離712の夫々の変化量を用いる。よって、笑顔表情を判定する際に用いる参照特徴量とは、本実施形態では無表情状態の顔画像から得られる上記距離710、711、712のことであり、以下、これらを特徴量ともいう。ステップS308では、これらの特徴を参照特徴量として抽出する。他の表情を判定するための特徴に関しても、各表情毎に上記FACSの定義に従った特徴を決定し、決定した各特徴を用いて表情を判定するようにすればよい。
【0047】
なお、これらの距離を算出する際には図14のように所定の位置、例えば、顔検出位置402を基準としてy方向距離713、714(以下、特徴量713,714ともいう)を算出するようにしても良い。また、使用する特徴に関しては、本実施形態記載の特徴に限定されるものではない。
【0048】
ステップS213において、所定の参照特徴量がすべて設定された場合には、処理はステップS214へ進む。一方、ステップS213において、所定の参照特徴量がすべて設定されない場合には、処理はステップS212へ戻り、システム制御回路112は、次のフレーム画像をスルー表示する。ステップS214では、システム制御回路112は、参照特徴量が設定されたフレーム画像の次のフレーム画像をスルー表示する。ステップS215では、システム制御回路112は、ステップS214でスルー表示されたフレーム画像と同じシーンではあるが解像度の異なる画像を用いて表情判定処理を行い、所定の表情であるか否かを判定する。すなわち、ステップS215では、ステップS213で表情判定処理を開始すると判定された後(参照特徴量が設定された後)に入力された画像について、検出した顔の画像情報から特徴情報が抽出される。そして、当該抽出された特徴情報と参照特徴情報とに基づいて顔の表情が判定される。以下、表情判定処理について説明する。
【0049】
〔表情判定処理〕
図15は、表情判定処理のフローチャートである。ステップS800〜S806においては、図3のステップS300〜S306と同様の処理が行われる。
従って、表情判定処理においても、検出された顔のサイズ、向き、信頼度に基づいて、検出された顔の有効性が判定される(S801〜S803)。そして、有効であると判定された場合に、以降の処理(表情判定)が行われる。ステップS807において、システム制御回路112は、現フレーム画像に対して、まず、基準となる参照特徴量(図16の特徴量901、902、903)と同様の種類の特徴量(図16の905、906、907)を抽出する。次に、無表情の顔画像900から抽出した特徴量901、902、903と現フレーム顔画像904から抽出した特徴量905、906、907との夫々特徴量の差、もしくは比を算出することで各特徴量の変化特徴量ν1、ν2、ν3を算出する。そして、ステップS808では、システム制御回路112は、各特徴量の重みと変化量ν1、ν2、ν3から以下の式を用いて笑顔表情の度合いを算出し、SumScoreが所定得点以上であれば笑顔表情と判定し、所定得点以下であれば笑顔表情でないと判定する。
【0050】
【数1】
【0051】
ユーザのカメラ操作により特定シーン、つまり特定の表情だけを判定するのであれば上記所定得点による判定で良い。しかし、あらゆる表情から1つの所定の表情を判定する場合は、例えば各表情毎の得点を算出して最も高い得点を算出した表情を当該所定の表情として判定する方法がある。また、他にも最終層を各表情としたニューラルネットワークを用いる方法や、特許第02962549号明細書のように隠れマルコフモデル(HMM)を用いて表情を判定する方法などがある。
【0052】
図2に戻り、ステップS215で撮影対象の表情(所定の表情)と判定された場合には、処理はステップS216へ進む。一方、ステップS215で撮影対象の表情と判定されない場合には、処理はステップS219へ進む。ステップS216では、システム制御回路112は撮像画像データをメモリ108に書き込ませる撮影動作を行う。ステップS216の撮影動作が終了すると、ステップS217において、システム制御回路112は、ステップS216で撮影された画像表示を行うクイックレビュー表示を実行する。ステップS218では、システム制御回路112は、メモリ108に書き込まれた撮像画像データを読み出して、画像圧縮処理を行わせた後、記憶媒体へ圧縮した画像データの書き込みを行う記録処理を実行する。なお、記録処理を行う前に必要に応じて、高輝度或いは低輝度の色を薄くする色消し処理などの画像処理を行っても良い。ステップS219で、例えば、シャッタースイッチを再度押すなどの自動撮影終了合図が検出された場合は、システム制御回路112は処理をステップS201へ戻し、当該自動撮影を終了する。一方、自動撮影終了合図がなければ、処理はステップS214に戻り、当該自動撮影が継続される。
【0053】
なお、上記説明した特徴点位置、距離特徴量などは各フレーム毎の値を使用するのではなくて、所定フレーム数の平均値とするようにしても良い。
【0054】
以上、所定特徴点の動的変化に基づいて、表情認識の際に必要な参照特徴量を設定した後、表情を認識する方法について説明した。
【0055】
なお、第1実施形態では、電子スチルカメラに適用した場合について説明したが、ビデオカメラなどにも適用可能であることは言うまでもない。
【0056】
以上のように、第1実施形態によれば、
(1)予め無表情の画像を登録する手間がかかる、
(2)登録された人物しか表情を認識することができない、
(3)表情認識処理を行う人物の数だけ画像などを登録する必要があるため、より多くのメモリ領域が必要となる、
(4)登録の際の撮影環境と表情認識を実行する際の撮影環境が異なる場合、撮影環境の違いにより表情を精度良く認識することができない場合がある、
(5)無表情画像を登録するユーザによって無表情画像の定義などがバラバラとなる。その結果、表情認識精度を大きく左右させる、
といった従来技術の課題を解決することができる。
【0057】
<第2実施形態>
次に、第2実施形態について説明する。図16は、第2実施形態の全体動作を示すフローチャートであり、以下では図16のフローチャートを用いて説明する。ステップ900〜910までは第1実施形態(ステップS200〜S210)と同様の処理である。
【0058】
ステップS911では、システム制御回路112は、ステップS910で検出された各顔に対して個人認証を行う。個人認証技術は、例えば、特開2000−30065号公報に記載の相互部分空間法を用いる方法や、特開2003−323622号公報に記載の顔領域を複数の部分領域に分割し、各部分領域毎に比較を行う方法などがある。本実施形態では、特開2003−323622号公報に記載されている、顔領域を複数の部分領域に分割する方法を用いる。なお、認証に用いる画像は予め登録しておかなくとも、撮影直前に登録するようにしても良い。ステップS912において、システム制御回路112は、ステップ911で認証された人物に対してAE・AFを行う。ステップS913では、システム制御回路112は、第1実施形態同様にスルー表示を行う。ステップ914では、システム制御回路112は、第1実施形態とは別の手法を用いて無表情状態を判定し、参照特徴量の抽出を行う。以下、再度図3のフローチャートを用いて、第2実施形態による参照特徴量の抽出方法を説明する。
【0059】
〔表情認識用の参照特徴量の抽出処理〕
図3のステップS300〜306までは第1実施形態と同様な処理を行う。ステップ307では、図14の特徴量712、713、714が所定範囲内ならば無表情状態とする。この所定範囲の決定方法としては、例えば次のような方法が挙げられる。予め無表情の大量のデータを用意しておき、図14の特徴量712に関して図17のようにヒストグラム1を、同様に特徴量713、714に対してヒストグラム2、ヒストグラム3を作成する。次に、図17のヒストグラム1からすべての特徴量712が含まれるように閾値a及び閾値bを決定する。同様に、ヒストグラム2からすべて特徴量713が含まれるように閾値c、dを決定し、ヒストグラム3からすべての特徴量714が含まれるように閾値e、fを決定する。そして、各特徴量が各閾値間にあるならば無表情状態であると判定する。なお、閾値a、閾値bは図18のように特徴量の平均μと分散σを算出して、平均μから所定分散n*σ(σ:分散 n:定数)だけ離れた値を閾値a’、b’とするような方法を用いても良いし、別の手法により各閾値を決定しても良い。使用する特徴量に関しても第2実施形態で使用した特徴量に限定されるわけではない。
【0060】
ステップS308以降、及び図16のステップS915〜S920では、第1実施形態同様の処理が行われる。
【0061】
以上のように、第2実施形態によれば、複数の顔の画像の特徴量を予め統計処理して得られた基準を保持しおき、検出された顔の画像情報から得られる特徴量が基準から所定範囲内にある場合に、表情判定を開始する。このため、第2実施形態によれば、第1実施形態のようにフレーム間にわたる特徴点の変化から無表情状態を判定するのではなくて、1枚のフレーム画像から得られる所定特徴量を使用して無表情状態を判定することができる。
【0062】
なお、第2実施形態では、電子スチルカメラに適用した場合について説明したが、ビデオカメラなどにも適用可能であることは言うまでもない。また、撮像装置ではなく、大量の画像が蓄積されたデータベースから特定人物の無表情状態画像を抽出した後、特定人物の所定表情画像を抽出するように構成することも可能である。
【0063】
<第3実施形態>
次に、第3実施形態について説明する。全体動作フローチャートは第2実施形態(図16)と同様とする。
【0064】
図19は、図16のステップ914での処理、すなわち第3実施形態による参照特徴設定処理を表すフローチャートである。図19のステップS1000〜ステップS1004までは第1、第2実施形態、すなわちステップS300〜S304と同様の処理を行う。
【0065】
ステップS1005では、システム制御回路112は、まず空間フィルタ処理を行う領域を設定する。例えば、空間フィルタ処理を行う領域を図20の領域1100、1101、1102とする。次に、無表情状態を判定するために図20の領域1102に対して空間フィルタ処理を行う。使用する空間フィルタは例えば、水平・垂直エッジを検出するためのSobelフィルタを用いるが、Sobelフィルタに限定されるわけではない。
【0066】
ステップS1006では、システム制御回路112は、ステップS1005での空間フィルタ出力を用いて無表情状態かどうかを判定する。図21は、図20の領域1100、領域1102に対して、水平・垂直エッジを検出するSobelフィルタ処理を実行した結果を示す。状態A〜Cは領域1102に対してSobelフィルタ処理を実行した結果であり、状態D,Eは領域1100に対してSobelフィルタ処理を実行した結果である。状態Aは口を閉じた無表情状態、状態Bは口を横方向に開いた無表情以外の状態、状態Cは口を縦方向に開いた無表情以外の状態である。また、状態Dは眼を開けた無表情の状態、状態Eは眼を閉じた無表情以外の状態である。
【0067】
まず図21の状態A、状態B、状態Cを比較すると分かるように、状態Aの口を閉じた無表情状態では、水平及び垂直エッジフィルタ出力値が全体的に低い。それに対し、状態Bもしくは状態Cの口を開いたような無表情以外の状態では、特に水平エッジフィルタ出力値が全体的に高い。また、図21の状態Dと状態Eも同様に比較すると、眼を開いた無表情状態Dは、垂直エッジフィルタ出力値が高い部分が存在するが、眼を閉じた状態Eでは垂直エッジフィルタ出力値が全体的に低い。
【0068】
以上の結果より、ステップS1005では、領域1100から得られる垂直エッジフィルタ出力値の和が所定値以上、領域1102から得られる水平フィルタ出力値の和が夫々所定値以下であるならば、無表情状態である確率が高いということが分かる。実際に無表情状態を判定するには、無表情状態値を算出するような以下の関数を用いる。
【0069】
【数2】
【0070】
Nは無表情判定に使用する特徴数、filter_outputは空間フィルタ出力値和、fiはi番目の特徴から無表情度を算出するための関数である。本実施形態においては、上記のようにN=2とする。なお、各関数fiには重み付けがされており、例えば、領域1100から得られる垂直エッジフィルタ出力値の和よりも、領域1102から得られる水平フィルタ出力値の和の方が、無表情を判定する際に重みを大きくする。より具体的には、無表情度のMax値を1とすると、領域1100から得られる垂直エッジフィルタ出力値の和から得られる無表情度のMax値を0.4、領域1102から得られる水平フィルタ出力値の和から得られる無表情度のMax値を0.6とする。無表情度を算出する関数は、大量の無表情状態画像に対して水平及び垂直エッジを検出し、夫々のフィルタ出力値の和の統計的なデータから算出される。例えば、図22の(a)や(b)のように無表情状態画像から得られたヒストグラムを用いることにより、無表情度を算出する関数を決定するが、これらの方法に限定されるわけではない。また、無表情状態を判定するのに使用する領域は、口・眼領域だけではなく、他の領域など複数の領域を使用しても良い。
【0071】
無表情状態を判定する際の別の方法として、エッジフィルタ出力値以外に、図20の領域1102に対して歯の色である白色領域を抽出し、白色領域の面積(画素数)を用いて無表情状態を判定するようにしても良い。
【0072】
図19に戻り、ステップS1007では、表情判定に使用する参照特徴量を抽出する。第3実施形態における参照特徴量は、図20の領域1100、1101、1102に対して水平及び垂直エッジを検出するので計6つのSobelフィルタ出力値データを参照特徴量として抽出する。
【0073】
次に、ステップS916において表情を判定するための、第3実施形態による処理について説明する。図23は、ステップS916における、第3実施形態よる表情判定処理を示すフローチャートである。ステップS1200〜S1204までは第1、第2実施形態(S800〜S804)と同様の処理である。
【0074】
ステップS1205では、システム制御回路112は、図19のステップS1005と同様な処理を行い、水平及び垂直エッジを検出する計6つのSobelフィルタ出力値を得る。ステップS1206では、システム制御回路112は、図19のステップS1007で抽出された計6つのSobelフィルタ出力値と、図23のステップS1205で検出された計6つのSobelフィルタ出力値との差から夫々フィルタ差分出力値を得る。ステップS1207では、システム制御回路112は、ステップS1206で得た6つの空間フィルタ差分出力値を用いて表情の判定を行う。
【0075】
表情の判定方法としては、本実施形態では、図24のように6つの空間フィルタ差分出力値を入力層、表情判定を出力層とするニューラルネットワークを使用する。このニューラルネットワークの学習方法は、例えば、無表情の画像データとある1つの表情の画像データを大量に用意し、これらの画像データから6つフィルタ差分出力値を算出する。そして、各表情についてのこれらの6つフィルタ差分出力値を夫々入力層に入力した時に、例えば、出力層でのその表情に対応するニューロン出力値が1、その他の表情に対応するニューロン出力値は0となるように学習させる方法がある。このようなニューラルネットワークの入力層にステップS1206で得た6つのフィルタ差分出力値を入力することによって、出力層である表情判定層の所定の表情カテゴリを検出するニューロンが最も強く発火することになる。従って、表情判定層の各ニューロン値を参照することによって表情を判定することができる。なお、表情判定においてはニューラルネットワークではなく他の識別器を使用しても構わない。
【0076】
以上、第3実施形態では、空間フィルタ出力値に基づいて表情認識の際に必要な参照特徴量を抽出した後、表情を認識する方法について説明した。
【0077】
なお、第3実施形態では、電子スチルカメラに適用した場合について説明したが、ビデオカメラなどにも適用可能であることは言うまでもない。また、撮像装置ではなく、大量の画像が蓄積されたデータベースから特定人物の無表情状態画像を抽出した後、特定人物の所定表情画像を抽出することも可能である。
【0078】
<第4実施形態>
次に、第4実施形態について説明する。図25は、第4実施形態の全体動作を示すフローチャートである。ステップS1300〜ステップS1320までは第2実施形態(図16のS900〜S920)と同様の処理を行う。ステップS1316で所定表情でないと判定された場合には、処理はステップS1321へ進む。ステップS1321では、システム制御回路112は、ステップS1314のように無表情状態の判定に加えて、参照特徴量を更新するかの判定を行う。すなわち、第4実施形態では、ステップS1316で所定の表情であると判定されるまでの間に、無表情状態と再度判定し、参照特徴量の設定/表情判定処理の開始を行うと判定した場合に、参照特徴量を更新する。以下、ステップS1321の処理の詳細を説明する。
【0079】
ステップS1321では、上記のように、まず第2の実施形態で説明した方法で、無表情状態であるかどうかの判定を行う。次に、予め用意された大量の無表情画像から得られた図13の特徴量710(または、711、712)のヒストグラムが、図26のように表されるとする。ステップS1314、つまり最初に抽出された特徴量710を特徴量1400、ステップS1321で抽出された特徴量710を特徴量1401とする。第4実施形態では、無表情状態の判定に用いられた特徴量が予め用意されたヒストグラムの平均μにより近ければ参照特徴量を更新する。図26の場合、最初に抽出された特徴量1400(ステップS1314で抽出された特徴量)よりもステップS1321で抽出された特徴量1401の方が平均μに近い位置に存在する。従って、ステップS1321では参照特徴量を更新すると判定される。ステップS1321で参照特徴量を更新すると判定された場合、処理はステップS1322に進む。ステップS1322において、システム制御回路112は、参照特徴量を更新する。一方、ステップS1321で参照特徴量を更新しないと判定された場合は、ステップS1322をスキップして、ステップS1320へ進む。なお、参照特徴量更新判定に関しては、上記方法に限定するわけではなく、予め用意する大量の無表情画像を特定人物と限定するようにしても良い。
【0080】
このように、第4実施形態によれば、より表情認識に最適な無表情画像を検出した場合に参照特徴量を更新することで表情認識精度を向上させることができる。
【0081】
<第5実施形態>
次に、第5実施形態について説明する。図27は第5実施形態による撮像装置100の全体動作を示すフローチャートである。ステップS1500〜S1512までは第1実施形態(ステップS200〜S212)と同様の処理である。ステップS1513では表情認識処理が行われる。以下ではステップS1513の詳細を説明する。図28はステップS1513の詳細処理を示すフローチャートである。
【0082】
ステップS1600〜ステップS1606までは第1実施形態の表情判定(ステップS800〜S806)と同様の処理である。ステップS1607では、システム制御回路112は、所定特徴点の信頼度がすべて所定閾値以上であるか否かを判定する。所定特徴点の信頼度が全て所定閾値以上であれば、処理はステップS1608へ進む。一方、ステップS1607で、所定特徴点の信頼度がすべて所定閾値以上ではないと判定された場合は、処理を終了する。
【0083】
以下、特徴点の信頼度に関する説明をする。特徴点の信頼度とは、検出された特徴点がどの程度特徴点の検出結果として信頼できるかという値を示している。特徴点の信頼度の算出方法としては以下が挙げられる。例えば、本実施形態では、アフィン変換などにより顔の画像は正規化されている。従って、図5の特徴点509は図7の左眼検出位置400よりも右側にあるというような特徴点位置や眼の検出位置間の空間的な配置関係を用いる方法がある。また、第1実施形態で説明したように特徴点検出にニューラルネットワークを用いるのであれば、ニューロン出力値を用いる方法がある。第5実施形態では、上記特徴点の空間的な配置関係を用いる。例えば、大量のデータベースから得られる様々な表情から、所定位置を基準とした各特徴点までの相対座標値、もしくは相対距離を統計的に算出する。例えば、図29のように図6の左眼検出位置400から図5の特徴点509までの相対的なx座標を算出する。そして、算出された統計量に基づいて図29のように信頼度算出関数hを構成し、この信頼度算出関数hを用いて信頼度を算出する。
【0084】
同様に他の特徴点に対しても信頼度算出関数を構成する。なお、信頼度算出方法は本実施形態に記載の方法に限定されるわけではない。
【0085】
ステップS1608では、検出すべき表情に応じて選択された特徴点から必要な特徴量を抽出し、格納する。例えば、表情の一例として笑顔表情を認識するのであれば、図14の特徴量712、713、714を抽出し、これらをメモリに記憶しておく。ステップS1517による自動撮影の継続(S1512〜S1516の繰り返し)により、メモリには現フレームを含め、複数フレーム前の特徴量712、713、714が格納されている。
【0086】
ステップS1609では、システム制御回路112は、特徴量の差分から各特徴量の変化量を算出する。すなわち、格納されているフレームt[frame]の画像から得られた特徴量712、713、714を基準として、フレームt’[frame]で抽出された特徴量712、713、714との差分が用いられる。なお、各特徴量変化量は複数フレームの平均を用いても良い。図30では例として、(a)は図14の特徴量713の変化パターン、(b)は図14の特徴量714の変化パターン、(c)は図14の特徴量712の変化パターンを示している。また、図30のt1からt2は口を縦方向に開ける動作、t3からt4は口の両端を持ち上げる笑顔表情動作である。
【0087】
ステップS1610では、ステップ1609で得られたフレームt[frame]の特徴量を基準としたフレームt’[frame]の特徴量の変化量、例えば、図30のフレームt3〜t4までの特徴量1、特徴量2、特徴量3の変化量から表情を判定する。例えば、特許第02962549号明細書や特許第0294816号明細書に記載されているような隠れマルコフモデルを用いて、上記変化量から表情を判定する。こうして、特徴量の変化量パターンから表情が判定される。なお、隠れマルコフモデル以外の方法を用いても構わない。
【0088】
図27に戻り、ステップS1513において所定表情が認識されれば、処理はステップS1514へ進む。一方、所定表情が認識されなければ、処理はステップS1513からステップS1517へ進む。ステップS1514〜S1517は第1実施形態(ステップS216〜S219)と同様の処理を行う。
【0089】
以上のように所定の条件を満たす特徴情報を抽出し、特徴情報の変化量パターンに基づいて表情を判定することによって、より精度の高い表情認識処理を行うことができる。
【0090】
以上のように、上記各実施形態によれば、予め参照特徴量を抽出するのではなく、
(1)表情を判定する際に所定の情報に基づいて所定のタイミングで自動的に参照特徴量が抽出され、
(2)抽出した参照特徴量と各特徴量の変化パターンに基づいて表情が判定される。
【0091】
このため、上記各実施形態によれば、
(1)予め無表情の画像を登録しておかなければならない、
(2)登録された人物しか表情を認識することができない、
(3)表情認識処理を行う人物の数だけ画像などを登録する必要があるため、より多くのメモリ領域が必要となる、
(4)登録の際の撮影環境と表情認識を実行する際の撮影環境が異なる場合、撮影環境の違いにより表情を精度良く認識することができないことがある、
という課題を解決した表情認識が可能となる。
【0092】
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。すなわち、上記実施形態では撮像装置により表情判定を実現する構成を示したが、情報処理装置が上述した表情判定の処理を実行することも可能である。
【0093】
従って、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
【0094】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0095】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
【0096】
コンピュータプログラムを供給するためのコンピュータ読み取り可能な記憶媒体としては以下が挙げられる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などである。
【0097】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0098】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
【0099】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどとの協働で実施形態の機能が実現されてもよい。この場合、OSなどが、実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【0100】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行なう。
【図面の簡単な説明】
【0101】
【図1】本実施形態である撮像装置のハードウェア構成である。
【図2】第1実施形態の撮像装置による全体的な動作を示すフローチャートである。
【図3】第1実施形態による参照特徴量の設定処理(ステップS213)の詳細を示すフローチャートである。
【図4】検出された左右眼の例を示した図である。
【図5】検出する特徴点の例を示した図である。
【図6】特徴点500、502を検出するための領域の設定例を示した図である。
【図7】特徴点503を検出するための領域の設定例を示した図である。
【図8】特徴点506、509を検出するための領域の設定例を示した図である。
【図9】特徴点507、508を検出するための領域の設定例を示した図である。
【図10】特徴点514、517を検出するための領域の設定例を示した図である。
【図11】特徴点515、516を検出するための領域の設定例を示した図である。
【図12】顔検出位置を基準として、特徴点514、517のy座標の変化を示したグラフを示す図である。
【図13】表情の一例である笑顔表情を判定するために使用する特徴の例を示した図である。
【図14】表情の一例である笑顔表情を判定するために使用する特徴の例を示した図である。
【図15】第1実施形態による表情判定処理(ステップS215)の詳細を示すフローチャートである。
【図16】第2実施形態の撮像装置による全体的な動作を示すフローチャートである。
【図17】ヒストグラムを用いて無表情状態を判定する閾値を決定する方法の例を示した図である。
【図18】ヒストグラムを用いて無表情状態を判定する閾値を決定する方法の他の例を示した図である。
【図19】第3実施形態による参照特徴量の設定処理の詳細を示すフローチャートである。
【図20】第3実施形態によるフィルタ処理を行う処理領域を示した図である。
【図21】フィルタ処理を行った結果の例を示した図である。
【図22】図21の状態A及び状態Eの、垂直方向エッジフィルタ出力和ヒストグラムを示した図である。
【図23】第3実施形態による表情判定処理の詳細を示すフローチャートである。
【図24】表情を判定するニューラルネットワークを説明する図である。
【図25】第4実施形態の撮像装置による全体的な動作を示すフローチャートである。
【図26】参照特徴量を更新する判定処理方法を説明する図である。
【図27】第5実施形態の撮像装置による全体的な動作を示すフローチャートである。
【図28】第5実施形態による表情判定処理(ステップS1513)の詳細を示すフローチャートである。
【図29】特徴点信頼度算出方法を説明する図である。
【図30】各特徴量の変化パターンを示した図である。
【技術分野】
【0001】
本発明は、人物の画像情報から表情を認識する表情認識装置及び方法、並びに撮像装置に関する。
【背景技術】
【0002】
表情を認識する様々な従来の技術がある。特許文献1に記載の表情認識処理では、予め表情認識処理に使用するための無表情の参照画像を用意しておく。そして、入力された画像と予め用意しておいた無表情の参照画像の夫々に対してウェーブレット変換を施し、帯域毎に周波数信号の平均電力を算出する。そして、夫々の平均電力との差分を算出することにより表情を判定する。
【0003】
また、特許文献2に記載の表情認識処理では、予め表情認識処理に使用するための無表情の参照画像から所定の特徴点を抽出した後、特徴点間の距離などを算出する。そして、入力画像からも同じように特徴点間距離を算出し、夫々の距離の差分値を算出することにより表情を判定する。
【0004】
更に、特許文献3には、無表情の参照画像を使用しない表情認識技術が記載されている。特許文献3に記載の表情認識処理では、1枚の画像から左右目尻と口の両端点を検出した後、これらの4点から作成される矩形の長辺と短辺の比により表情を判定する。
【0005】
さらに、特許文献4には、各特徴部位から眉の動きなどの表情要素と表情要素情報を得て、その表情要素情報から表情要素コードを算出した後、表情要素コードを所定の変換式で演算して情緒の量を算出する方法が記載されている。
【特許文献1】特許第02840816号明細書
【特許文献2】特開2005−56388号公報
【特許文献3】特開2005−266984号公報
【特許文献4】特許第2573126号明細書
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献1、特許文献2に記載された表情認識処理では、無表情からの変化を捉えているため、特許文献3に記載されているような無表情画像を使用しない表情認識技術と比べると、
(1)眼や口などの顔面パーツ位置の個人差を吸収することができる、
(2)比較的検出精度が高い表情の微妙な変化も捉えることができる、
という大きなメリットがある。しかしながら、その一方、
(1)予め無表情の画像を登録する手間がかかる、
(2)登録された人物しか表情を認識することができない、
(3)表情認識処理を行う人物の数だけ画像などを登録しておく必要があるため、より多くのメモリ領域が必要となる、
(4)登録の際の撮影環境と表情認識を実行する際の撮影環境が異なる場合、撮影環境の違いにより表情を精度良く認識することができない場合がある、
(5)無表情画像を登録するユーザによって無表情画像の定義などがバラバラになると、表情認識精度が大きく左右される、
という課題があった。上記の5つの課題は、予めユーザが無表情画像をマニュアルで登録するという動作に起因する。
【0007】
また、特許文献3,4では、共通の基準を用いて個人の表情を判定することになるため、顔の特徴点の位置等に関する個人差を吸収できず、精度を向上することが困難である。
【0008】
本発明は、上記の課題に鑑みてなされたものであり、予め特定の表情の画像を登録することを不要としながら、各個人の顔の特徴量をベースとして表情を判定することを可能とする表情認識装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記の目的を達成するための本発明の一態様による表情認識装置は以下の構成を備える。すなわち、
順次に画像を入力する画像入力手段と、
前記画像入力手段で得られる画像から顔を検出する顔検出手段と、
前記顔検出手段で検出された顔の画像情報に基づいて表情判定を開始するか否かを判定する開始判定手段と、
前記開始判定手段が表情判定を開始すると判定した場合、前記顔検出手段で検出された顔の画像情報に基づいて参照特徴情報を取得する取得手段と、
前記開始判定手段が表情判定を開始すると判定した後に前記画像入力手段で入力された画像について、前記顔検出手段によって検出された顔の画像情報から特徴情報を抽出し、当該抽出された特徴情報と前記参照特徴情報とに基づいて前記検出された顔の表情を判定する表情判定手段とを備える。
【0010】
また、上記の目的を達成するための本発明の他の態様による表情認識装置は以下の構成を備える。すなわち、
順次に画像を入力する画像入力手段と、
前記画像入力手段で得られる画像から顔を検出する顔検出手段と、
前記顔検出手段で検出された顔から特徴量を抽出する特徴量抽出手段と、
前記特徴量抽出手段で抽出された特徴量の信頼度が閾値以上である場合に、当該特徴量をメモリに格納する格納手段と、
前記格納手段によって前記メモリに格納された特徴量の変化に基づいて、前記顔における顔の表情を判定する表情判定手段とを備える。
【0011】
更に、上記の目的を達成するための本発明の他の態様による撮像装置は以下の構成を備える。すなわち、
上記表情認識装置と、
撮像手段により画像を時系列に取得して、前記画像入力手段に前記取得手段で取得した画像を供給する供給手段と、
前記表情判定手段が予め定めれられた表情であると判定した場合、当該画像を撮影画像として記録する記録手段とを備える。
【発明の効果】
【0012】
本発明によれば、予め特定の表情の画像を登録することを不要としながら、各個人の顔の特徴量をベースとして表情を精度良く判定することが可能となる。
【発明を実施するための最良の形態】
【0013】
以下、添付図面を参照して本発明の好適な実施形態について詳しく説明する。
【0014】
<第1実施形態>
図1は、実施形態に係る撮像装置100の構成を示すブロック図である。本実施形態では撮像装置100の例として電子スチルカメラを用いる。以下、撮像装置100を電子カメラとも言う。
【0015】
図1において、101は撮像レンズ群である。102は光量調節装置であり、絞り装置及びシャッタ装置を備える。103は撮像素子であり、撮像レンズ群101を通過した被写体像としての光束を電気信号に変換する。撮像素子103は、例えばCCD或いはCMOS等で構成される。104はアナログ信号処理回路であり、撮像素子103のアナログ信号出力にクランプ処理、ゲイン処理等を行う。105はアナログ/デジタル(以下、A/Dとする)変換器であり、アナログ信号処理回路104の出力をデジタル信号に変換するである。
【0016】
107はデジタル信号処理回路であり、A/D変換器105からのデータ或いはメモリ制御回路106からのデータに対して、所定の画素補間処理や色変換処理などを行う。また、デジタル信号処理回路107は、撮像した画像データを用いて所定の演算を行う。
【0017】
システム制御回路112は、デジタル信号処理回路107の演算結果に基づいて露出制御回路113、焦点制御回路114に対する制御を実行する。これにより、TTL(スルー・ザ・レンズ)方式のAF(オートフォーカス)処理、AE(自動露出)処理、EF(ストロボプリ発光)処理が実行される。また、デジタル信号処理回路107は、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてTTL方式のAWB(オートホワイトバランス)処理も行っている。更に、その撮像した画像データから、特定被写体を検出し、特定被写体の表情認識処理も実行している。
【0018】
メモリ制御回路106は、アナログ信号処理回路104、A/D変換器105、デジタル信号処理回路107、メモリ108、デジタル/アナログ(以下、D/Aとする)変換器109を制御する。A/D変換器105でA/D変換されたデータはデジタル信号処理回路107、メモリ制御回路106を介して、或いはA/D変換器105でA/D変換されたデータが直接メモリ制御回路106を介して、メモリ108に書き込まれる。
【0019】
メモリ108は表示装置110に表示するデータを記憶している。このメモリ108に記録されているデータは、D/A変換器109を介してTFT、LCD等の表示装置110に出力されて表示される。また、メモリ108は撮像した静止画象や動画像を格納し、所定枚数の静止画像や所定時間分の動画像を格納するのに十分な記憶量を備えている。これにより、複数枚の静止画像を連続して撮像する連写撮影やパノラマ撮影の場合にも、高速かつ大量の画像書き込みをメモリ108に対して行うことが可能となる。また、メモリ108はシステム制御回路112の作業領域としても使用することが可能である。なお、撮像した静止画象や動画像は、インターフェース111を使用してCD−ROM、フロッピー(登録商標)ディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等の記憶媒体に書き込むように構成しても良い。
【0020】
表示装置110に撮像した画像データを逐次表示すれば、電子ファインダとしての機能を実現できる。また表示装置110は、システム制御回路112の指示により任意に表示をオン/オフすることが可能であり、表示をオフにした場合は、オンにした場合に比較して、この撮像装置100の電力消費を大幅に低減できる。また、システム制御回路112は、プログラムの実行に応じて、文字、画像等を用いて動作状態やメッセージ等を表示装置110に表示する。
【0021】
111はインターフェースであり、メモリカードやハードディスク等の記憶媒体を撮像装置100に接続する。また、インターフェース111を用いて、他のコンピュータやプリンタ等の周辺機器との間で画像データや画像データに付属した管理情報を転送し合うことができる。インターフェース111をPCMCIAカードやCF(コンパクトフラッシュ(登録商標))カード等の規格に準拠したものを用いて構成した場合、各種通信カードを接続することで外部機器との間の情報転送を実現できる。この各種通信カードとしては、LANカードやモデムカード、USBカード、IEEE1394カード、P1284カード、SCSIカード、PHS等の通信カード、等があげられる。
【0022】
システム制御回路112は撮像装置100全体の動作を制御している。システム制御回路112内のメモリ(不図示)に、このシステム制御回路112の動作用、または特定被写体の顔や表情を認識する定数、変数、プログラム等が記憶されている。なお、CD−ROM、フロッピーディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を使用して、システム制御回路112内のメモリに記憶されているこれらの定数、変数、プログラム等を変更することが可能である。また、システム制御回路112の動作用、または特定被写体の顔や表情を認識するためのデータやプログラムに関しては、メモリに格納するのではなく、上記記憶媒体等などから読み取ることにより実行させても良く、上記記載方法に限定しているわけではない。
【0023】
露出制御回路113は、光量調節装置102の絞り装置、シャッタ装置を制御する。焦点制御回路114は撮像レンズ群101のフォーカシング、ズーミングを制御する。露出制御回路113、焦点制御回路114はTTL方式を用いて制御されている。すなわち、システム制御回路112は、撮像した画像データをデジタル信号処理回路107によって演算した演算結果に基づき、露出制御回路113、焦点制御回路114に対して制御を行う。
【0024】
以下、図2のフローチャートを参照して、本実施形態による撮像装置100(電子カメラ)の全体動作を説明する。尚、図2に示される処理を実行するプログラムはシステム制御回路112内の不図示のメモリに記憶されており、当該処理はシステム制御回路112の制御の下に実行される。
【0025】
電源投入などにより本処理が開始されると、まず、ステップS200で、システム制御回路112は、内部のメモリの各種フラグや制御変数等を初期化する。ステップS201で、システム制御回路112は撮像装置100のモード設定状態を検知し、自動撮影モードに設定されていればステップS203へ、その他のモードに設定されていればステップS202に処理を進める。尚、自動撮影モードでは、被写体の顔の表情が所定の表情(本実施形態では笑顔)となったことを検知したタイミングで撮影(撮影画像としての記録動作)が行われる。ステップS202では、システム制御回路112は選択されたモードに応じた処理を実行し、その処理を終えるとステップS201に戻る。
【0026】
一方、自動撮影モードが設定されている場合は、ステップS203において、システム制御回路112は、電源の残容量や動作情況が撮像装置100の動作に問題があるか否かを判断する。システム制御回路112は、問題があると判断すると、ステップS204において、表示装置110を用いて、画像や音声により所定の警告表示を行い、その後、処理をステップS201に戻す。
【0027】
ステップS203において電源に問題が無いと判断されると、処理はステップS205に進む。ステップS205では、システム制御回路112は記憶媒体の動作状態が撮像装置100の動作、特に記憶媒体に対する画像データの記録再生動作に関して問題があるか否かを判断する。問題があると判断すされると、処理は前述のステップS204に進む。ステップS204において、システム制御回路112は、表示装置110を用いて、画像や音声により所定の警告表示を行い、その後処理をステップS201に戻す。
【0028】
ステップS205で記憶媒体に問題がないと判断されると、処理はステップS206に進む。ステップS206では、システム制御回路112は、画像や音声により撮像装置100の各種設定状態のユーザインターフェース(以下、UIと称する)を提示する。尚、表示装置110の画像表示がオンであったならば、表示装置110も用いて画像や音声により撮像装置100の各種設定状態のUI表示を行ってもよい。こうしてユーザによる各種設定がなされる。
【0029】
次にステップS207で、システム制御回路112は表示装置110の画像表示をオン状態に設定する。更に、ステップS208で、システム制御回路112は撮像した画像データを逐次表示するスルー表示状態に設定する。尚、本実施形態では、撮像素子103により得られた画像が順次にメモリ108に格納される。システム制御回路112は、この画像を時系列順に、順次に取り込む画像入力の機能を有する。このスルー表示状態では、メモリ108に逐次書き込まれた画像データを表示装置110により逐次表示することにより、電子ファインダ機能を実現している。
【0030】
ステップS209では、システム制御回路112は、撮影者などのユーザによってシャッタースイッチが押されたかどうかを確認する。シャッタースイッチが押されていないならば、処理はステップS201に戻る。シャッタースイッチが押されたならば、直ちに撮影は行わず、システム制御回路112は、ステップS210で顔検出処理を実行する。そして、ステップS211において、システム制御回路112は、ステップS210の顔検出処理結果に基づいて、所定のAE・AF制御を行う。更に、後述するステップS212〜219の手順により、所定の動作指示に応じて自動撮影モードによる撮影処理(所定の表情を自動的に検出して撮影する処理)が行われる。
【0031】
〔顔検出処理について〕
顔検出処理は、例えば、ニューラルネットワークやサポートベクターマシンに代表される学習を用いた方法がある。また、目や鼻といった物理的な形状の特徴のある部位を画像領域からテンプレートマッチングで抽出する手法がある。他にも、P.Viola and M.Jonesらの“Rapid Object Detection Using a BoostedCascadeof Simple Features,”in Proc. Of CVPR, vol.1, pp.511-518, December, 2001のような手法がある。更に、特開平10−232934号公報や特開2000−48184号に記載されているような肌の色や目の形といった画像特徴量を検出し統計的手法を用いて解析する手法がある。本実施形態においては、顔画像と非顔画像を用いてニューラルネットワークで学習させることにより顔識別器を構築する方法を用いる。また、ニューラルネットワークで学習させた顔識別器を使用すると、顔が存在する付近のニューロンは発火状態となる。このため、ニューロンの発火数や発火強度を用いて顔検出位置に加えて顔検出信頼度などを算出するようにしても良い。顔検出信頼度とは、検出された顔検出位置がどの程度信頼できるかという程度を表す値であり、顔検出信頼度が高い値であればあるほど、顔が存在する確率が高いことを示している。例えば、顔検出位置は最大出力値のニューロン位置とし、顔検出信頼度は最大出力値に対して所定の関数を通すことによって所定の値(例えば、0〜1)に正規化し、最大出力値から得られる値(例えば、0〜1)をそのまま顔検出信頼度とする方法がある。尚、顔検出位置とその周辺の領域を顔領域という。
【0032】
なお、顔検出信頼度は、固定閾値以上のニューロン数が所定数N1以上であるならば顔検出信頼度を1、所定数N2以上であるならば顔検出信頼度を0.6、それ以外は0とするような方法もある。また、固定閾値以上のニューロン数を所定の関数を通すことによって顔検出信頼度を算出する方法でも良い。他にもニューロン値の最大値から上位N3%のニューロン出力値の和を所定の関数を通すことによって顔検出信頼度を算出する方法など、顔位置検出位置や顔検出信頼度は別の手法を用いても良い。
【0033】
以降、ステップS212〜S213、或いはステップS214〜S219の処理が、撮像素子103から時系列順に入力される画像について実行されることになる。ステップS212〜S213では、顔の状態情報に基づくタイミングで所定の特徴量を参照特徴量として自動的に抽出し、ステップS214〜S219では、抽出された参照特徴量を用いた表情判定が実行される。すなわち、ステップS213による参照特徴量の設定処理は、ステップS215における表情判定処理の開始判定を行うものである。まず、ステップS212において、システム制御回路112は、撮像した画像データをスルー表示する。そして、ステップS213において、表情認識処理に使用する最適な参照特徴量を自動的に抽出して設定する処理を行うとともに、参照特徴量を設定できたか否かを判定する。参照特徴量を自動的に抽出する方法については以下で説明する。
【0034】
〔表情認識用の参照特徴量の抽出処理〕
図3は、表情認識処理に使用する最適な基準となる参照特徴量を自動的に抽出し、設定する処理フローチャートである。なお、以下の実施形態では最適な参照特徴量を無表情状態時から抽出される以下で説明するような各特徴量とするが、無表情状態以外の特定の表情状態から得られる各特徴量を参照特徴量としてもよい。
【0035】
ステップS300において、システム制御回路112は、上記説明した顔検出処理を用いて、顔位置検出処理と上記説明したような顔検出信頼度の算出とを再度行う。これは、AE・AF時から被写体の顔位置が変動している可能性があるためである。また、ここでは検出された顔位置周辺で代表的な眼のテンプレートと口のテンプレートを使用して、左右の眼の位置と口の位置を検出する。ステップS301では、システム制御回路112は、顔検出信頼度を用いて顔が検出されたかどうかを確認する。顔検出信頼度が所定値以上、つまり顔が検出されたと確認されれば、処理はステップS302へ進む。顔検出信頼度が所定値以下、つまり顔が検出されたと確認されなければ、本処理は終了する。ステップS302では、システム制御回路112は、ステップS300で検出された左右の眼の位置を用いて顔のサイズを算出する。算出された顔のサイズが所定サイズ以内であれば、処理はステップS303へ進む。
【0036】
例えば、システム制御回路112は、図4に示されるような左右の眼の検出位置400、401から両眼間距離を算出し、この両眼間距離を用いて顔のサイズを算出する。そして、ステップS302において、この算出されたサイズが所定サイズ外であると判定された場合は、本処理を終了する。ステップS303では、システム制御回路112は、ステップS300で検出された左右の眼の検出位置400、401を用いて顔の向きを算出する。この算出の結果、顔の向きが所定向き以内であれば、処理はステップS304へ進む。ステップS303では、例えば、図4のように両眼位置を結ぶ直線の傾きから顔の向き(面内回転量)を算出する。ステップS303で顔の向きがが所定の向きの範囲にないと判定された場合には、処理を終了する。ステップS304では、システム制御回路112は、図4の両眼の検出位置400、401を用いて、両眼間距離が所定の距離、顔の向きが所定の向きになるようにアフィン変換による正規化処理を行う。以上のように、ステップS301〜S303では、検出された顔のサイズ、向き、信頼度に基づいて、検出された顔の有効性を判定し、有効であると判定された場合に、以降の処理(無表情状態の判定)が行われる。
【0037】
ステップS305では、システム制御回路112は、図5のように顔の特徴点500〜517の抽出を行う。特徴点の抽出方法としては、様々な手法があるが、本実施形態では、各特徴点を検出する所定の範囲を設定し、各設定範囲内で特徴点を検出するニューラルネットワークを用いることにより検出する方法を用いる。ニューラルネットワークは、顔検出同様に予め各特徴点画像データを用いて学習させた各ネットワークを使用する。
【0038】
各特徴点の検出範囲は、両眼の検出位置400,401、顔検出位置402(鼻の位置)、口の位置403を用いて、次のように設定される。例えば特徴点500、502の検出範囲には、図6のように両眼間距離aと左眼検出位置400を用いて範囲600、601が設定される。また、特徴点503、505の検出範囲も両眼間距離aと右眼位置401を用いて同様に設定される。また、特徴点501の検出範囲には、図7に示されるような範囲602が設定され、特徴点504の検出範囲も同様な方法で設定される。特徴点506、509の検出範囲としては、図8のように範囲603、604が設定され、特徴点510、513の検出範囲も同様な方法で設定される。特徴点507、508の検出範囲には、図9のように範囲605、606が設定され、特徴点511、512も同様な方法で設定される。特徴点514、517の検出範囲としては、図10のように範囲607、608が設定される。また、特徴点515、516の検出範囲としては、図11のように範囲609、610が設定される。
【0039】
なお、ニューラルネットワークを用いると、各特徴点の正解位置付近では多数のニューロンが発火する。よって、本実施形態では、所定の閾値を超えたニューロン値の重心を算出することにより口の特徴点位置の抽出を行う方法を用いる。なお、位置算出方法や設定範囲は本実施形態に限定されるわけではない。
【0040】
ステップS306では、所定の特徴点がすべて検出されたかどうか確認する。すべての特徴点が検出された、つまり図5の特徴点500〜517の全てが検出されたならば、処理はステップS307へ進む。すべての特徴点を検出できない場合には、本処理を終了する。ステップS307において、システム制御回路112は、図5の特徴点500〜517のうちの口の特徴点514〜517の動的変化量から無表情状態であるかどうかを判定する。以下で無表情状態を判定する方法について説明する。
【0041】
図12は、図6の顔検出位置402を基準として、無表情から笑顔表情に変化する際の口の特徴点514及び517のy座標変化を示したグラフである。なお、図12のp1からp2までは無表情状態のフレーム、p2からp3までは笑顔状態のフレームである。図12を見れば分かるように、p1からp2の無表情状態では、顔検出位置を基準とした口の特徴点514及び517のy座標の変化量は、所定幅L1の範囲内で微小に振動するだけである。それに対し、p2からp3の笑顔表情状態では、頬の筋肉が持ち上がることにより口の特徴点514及び517のy座標が顔検出位置402に近づくため、顔検出位置402を基準としたy座標の変化量は大きく変動する。口の特徴点515及び516についても同様に、無表情状態では、顔検出位置402を基準とした口の特徴点515及び516のy座標の変化量は、所定幅(L2とする)の範囲内で微振するだけである。よって、顔検出位置402を基準とした口の特徴点のy座標の変化量(変動量)が、所定フレーム数連続して(予め定められた枚数の連続する画像において)各所定幅L1、L2内であれば、無表情状態として判定する。各所定幅L1、L2は、大量の無表情データを分析することによって予め得ておく。本実施形態では、口の特徴点のy座標変化量が参照特徴量抽出のタイミングを決定する為の顔の情報になる。
【0042】
なお、無表情状態で微小に振動する理由は、画像ノイズなどの影響により、口の特徴点検出位置が本来の正解位置から多少ズレることがあるためである。よって、口付近を覆い隠す物体などの影響により口の特徴点位置の誤検出などをしない限り、無表情状態では、顔検出位置402を基準とした口の特徴点位置のy座標変化量は、本来の正解位置である口の特徴点位置を基準として所定分散内に、ほぼ収まる。ステップS308では、このようにして所定特徴点の各フレーム間の動的な変化量から無表情状態であるかどうかが判定される。すなわち、検出された顔の特定の位置(顔検出位置402)を基準点とした顔面パーツを構成する特徴点(本例では口の特徴点)の座標値に基づいて、表情判定を開始するか否かが判定される。或いは、顔の特定の位置と顔面パーツを構成する特徴点との距離を利用してもよいことは明らかである。
【0043】
なお、上記のように参照特徴量を抽出する各所定幅を設定するのではなくて、参照特徴量を抽出しない各所定幅を設定するようにしても良い。すなわち、上記では、無表情の状態から参照特徴量を抽出するものとして、所定フレーム数連続して変動が所定幅以内であれば、参照特徴量を抽出した。しかしながら、他の表情の状態から参照特徴量を抽出するものとして、変動が所定幅以内では参照特徴量を抽出せず、所定フレーム数連続して所定幅より大きければ、参照特徴量を抽出するようにしても良い。また、無表情状態を判定する方法は、x座標とy座標の両方を使用しても構わないし、口の特徴点以外の特徴点を使用しても構わない。また、例えば、更に顔情報として眼の開閉度状態を用い、特徴点507と特徴点508の距離や距離変化などを使用して眼開きの状態タイミングで参照特徴量を抽出しても良い。また、特徴点抽出のように瞳画像をニューラルネットワークで学習させ、固定閾値以上の瞳ニューロン数から眼の開閉状態を判定するようにしても良い。例えば、検出された瞳領域の画素数が所定値以上である場合に、参照特徴量の設定を行う(表情判定処理を開始する)と判定するようにしてもよい。また、所定フレーム数の連続ではなく、所定の時間の連続を条件としてもよい。
【0044】
ステップS307で所定特徴点から無表情状態であると判定された場合には、処理はステップS308へ進む。ステップS307で所定特徴点から無表情状態でないと判定された場合には、処理を終了する。ステップS308では表情判定に使用する参照特徴量を抽出し、設定する。このように、本実施形態では、検出された顔の画像情報(検出された顔位置の周辺の画像)に基づいて、ステップS214以降の表情判定を開始するか否かが判定される。そして、表情判定を開始すると判定された場合は、上記表情判定のために、検出された顔の画像情報に基づいて参照特徴情報としての参照特徴量が取得される。以下で判定すべき表情の一例としての笑顔表情の参照特徴量について説明する。
【0045】
〔参照特徴量〕
笑顔表情は、Facial Action Coding System (P.Ekmanand W.V.Friesen, Facial ActionCoding System(FACS): Manual, Palo Alto:ConsultingPsychologists Press, 1978)において、以下のように提唱されている。
「FACSにおける笑顔表情の定義」
・頬を持ち上げる 唇の端を引っ張りあげる。
【0046】
本実施形態では、笑顔表情を判定するのに、図13のように特徴点506と特徴点514のy座標距離710、特徴点513と特徴点517のy座標距離711、特徴点514と特徴点517のx方向距離712の夫々の変化量を用いる。よって、笑顔表情を判定する際に用いる参照特徴量とは、本実施形態では無表情状態の顔画像から得られる上記距離710、711、712のことであり、以下、これらを特徴量ともいう。ステップS308では、これらの特徴を参照特徴量として抽出する。他の表情を判定するための特徴に関しても、各表情毎に上記FACSの定義に従った特徴を決定し、決定した各特徴を用いて表情を判定するようにすればよい。
【0047】
なお、これらの距離を算出する際には図14のように所定の位置、例えば、顔検出位置402を基準としてy方向距離713、714(以下、特徴量713,714ともいう)を算出するようにしても良い。また、使用する特徴に関しては、本実施形態記載の特徴に限定されるものではない。
【0048】
ステップS213において、所定の参照特徴量がすべて設定された場合には、処理はステップS214へ進む。一方、ステップS213において、所定の参照特徴量がすべて設定されない場合には、処理はステップS212へ戻り、システム制御回路112は、次のフレーム画像をスルー表示する。ステップS214では、システム制御回路112は、参照特徴量が設定されたフレーム画像の次のフレーム画像をスルー表示する。ステップS215では、システム制御回路112は、ステップS214でスルー表示されたフレーム画像と同じシーンではあるが解像度の異なる画像を用いて表情判定処理を行い、所定の表情であるか否かを判定する。すなわち、ステップS215では、ステップS213で表情判定処理を開始すると判定された後(参照特徴量が設定された後)に入力された画像について、検出した顔の画像情報から特徴情報が抽出される。そして、当該抽出された特徴情報と参照特徴情報とに基づいて顔の表情が判定される。以下、表情判定処理について説明する。
【0049】
〔表情判定処理〕
図15は、表情判定処理のフローチャートである。ステップS800〜S806においては、図3のステップS300〜S306と同様の処理が行われる。
従って、表情判定処理においても、検出された顔のサイズ、向き、信頼度に基づいて、検出された顔の有効性が判定される(S801〜S803)。そして、有効であると判定された場合に、以降の処理(表情判定)が行われる。ステップS807において、システム制御回路112は、現フレーム画像に対して、まず、基準となる参照特徴量(図16の特徴量901、902、903)と同様の種類の特徴量(図16の905、906、907)を抽出する。次に、無表情の顔画像900から抽出した特徴量901、902、903と現フレーム顔画像904から抽出した特徴量905、906、907との夫々特徴量の差、もしくは比を算出することで各特徴量の変化特徴量ν1、ν2、ν3を算出する。そして、ステップS808では、システム制御回路112は、各特徴量の重みと変化量ν1、ν2、ν3から以下の式を用いて笑顔表情の度合いを算出し、SumScoreが所定得点以上であれば笑顔表情と判定し、所定得点以下であれば笑顔表情でないと判定する。
【0050】
【数1】
【0051】
ユーザのカメラ操作により特定シーン、つまり特定の表情だけを判定するのであれば上記所定得点による判定で良い。しかし、あらゆる表情から1つの所定の表情を判定する場合は、例えば各表情毎の得点を算出して最も高い得点を算出した表情を当該所定の表情として判定する方法がある。また、他にも最終層を各表情としたニューラルネットワークを用いる方法や、特許第02962549号明細書のように隠れマルコフモデル(HMM)を用いて表情を判定する方法などがある。
【0052】
図2に戻り、ステップS215で撮影対象の表情(所定の表情)と判定された場合には、処理はステップS216へ進む。一方、ステップS215で撮影対象の表情と判定されない場合には、処理はステップS219へ進む。ステップS216では、システム制御回路112は撮像画像データをメモリ108に書き込ませる撮影動作を行う。ステップS216の撮影動作が終了すると、ステップS217において、システム制御回路112は、ステップS216で撮影された画像表示を行うクイックレビュー表示を実行する。ステップS218では、システム制御回路112は、メモリ108に書き込まれた撮像画像データを読み出して、画像圧縮処理を行わせた後、記憶媒体へ圧縮した画像データの書き込みを行う記録処理を実行する。なお、記録処理を行う前に必要に応じて、高輝度或いは低輝度の色を薄くする色消し処理などの画像処理を行っても良い。ステップS219で、例えば、シャッタースイッチを再度押すなどの自動撮影終了合図が検出された場合は、システム制御回路112は処理をステップS201へ戻し、当該自動撮影を終了する。一方、自動撮影終了合図がなければ、処理はステップS214に戻り、当該自動撮影が継続される。
【0053】
なお、上記説明した特徴点位置、距離特徴量などは各フレーム毎の値を使用するのではなくて、所定フレーム数の平均値とするようにしても良い。
【0054】
以上、所定特徴点の動的変化に基づいて、表情認識の際に必要な参照特徴量を設定した後、表情を認識する方法について説明した。
【0055】
なお、第1実施形態では、電子スチルカメラに適用した場合について説明したが、ビデオカメラなどにも適用可能であることは言うまでもない。
【0056】
以上のように、第1実施形態によれば、
(1)予め無表情の画像を登録する手間がかかる、
(2)登録された人物しか表情を認識することができない、
(3)表情認識処理を行う人物の数だけ画像などを登録する必要があるため、より多くのメモリ領域が必要となる、
(4)登録の際の撮影環境と表情認識を実行する際の撮影環境が異なる場合、撮影環境の違いにより表情を精度良く認識することができない場合がある、
(5)無表情画像を登録するユーザによって無表情画像の定義などがバラバラとなる。その結果、表情認識精度を大きく左右させる、
といった従来技術の課題を解決することができる。
【0057】
<第2実施形態>
次に、第2実施形態について説明する。図16は、第2実施形態の全体動作を示すフローチャートであり、以下では図16のフローチャートを用いて説明する。ステップ900〜910までは第1実施形態(ステップS200〜S210)と同様の処理である。
【0058】
ステップS911では、システム制御回路112は、ステップS910で検出された各顔に対して個人認証を行う。個人認証技術は、例えば、特開2000−30065号公報に記載の相互部分空間法を用いる方法や、特開2003−323622号公報に記載の顔領域を複数の部分領域に分割し、各部分領域毎に比較を行う方法などがある。本実施形態では、特開2003−323622号公報に記載されている、顔領域を複数の部分領域に分割する方法を用いる。なお、認証に用いる画像は予め登録しておかなくとも、撮影直前に登録するようにしても良い。ステップS912において、システム制御回路112は、ステップ911で認証された人物に対してAE・AFを行う。ステップS913では、システム制御回路112は、第1実施形態同様にスルー表示を行う。ステップ914では、システム制御回路112は、第1実施形態とは別の手法を用いて無表情状態を判定し、参照特徴量の抽出を行う。以下、再度図3のフローチャートを用いて、第2実施形態による参照特徴量の抽出方法を説明する。
【0059】
〔表情認識用の参照特徴量の抽出処理〕
図3のステップS300〜306までは第1実施形態と同様な処理を行う。ステップ307では、図14の特徴量712、713、714が所定範囲内ならば無表情状態とする。この所定範囲の決定方法としては、例えば次のような方法が挙げられる。予め無表情の大量のデータを用意しておき、図14の特徴量712に関して図17のようにヒストグラム1を、同様に特徴量713、714に対してヒストグラム2、ヒストグラム3を作成する。次に、図17のヒストグラム1からすべての特徴量712が含まれるように閾値a及び閾値bを決定する。同様に、ヒストグラム2からすべて特徴量713が含まれるように閾値c、dを決定し、ヒストグラム3からすべての特徴量714が含まれるように閾値e、fを決定する。そして、各特徴量が各閾値間にあるならば無表情状態であると判定する。なお、閾値a、閾値bは図18のように特徴量の平均μと分散σを算出して、平均μから所定分散n*σ(σ:分散 n:定数)だけ離れた値を閾値a’、b’とするような方法を用いても良いし、別の手法により各閾値を決定しても良い。使用する特徴量に関しても第2実施形態で使用した特徴量に限定されるわけではない。
【0060】
ステップS308以降、及び図16のステップS915〜S920では、第1実施形態同様の処理が行われる。
【0061】
以上のように、第2実施形態によれば、複数の顔の画像の特徴量を予め統計処理して得られた基準を保持しおき、検出された顔の画像情報から得られる特徴量が基準から所定範囲内にある場合に、表情判定を開始する。このため、第2実施形態によれば、第1実施形態のようにフレーム間にわたる特徴点の変化から無表情状態を判定するのではなくて、1枚のフレーム画像から得られる所定特徴量を使用して無表情状態を判定することができる。
【0062】
なお、第2実施形態では、電子スチルカメラに適用した場合について説明したが、ビデオカメラなどにも適用可能であることは言うまでもない。また、撮像装置ではなく、大量の画像が蓄積されたデータベースから特定人物の無表情状態画像を抽出した後、特定人物の所定表情画像を抽出するように構成することも可能である。
【0063】
<第3実施形態>
次に、第3実施形態について説明する。全体動作フローチャートは第2実施形態(図16)と同様とする。
【0064】
図19は、図16のステップ914での処理、すなわち第3実施形態による参照特徴設定処理を表すフローチャートである。図19のステップS1000〜ステップS1004までは第1、第2実施形態、すなわちステップS300〜S304と同様の処理を行う。
【0065】
ステップS1005では、システム制御回路112は、まず空間フィルタ処理を行う領域を設定する。例えば、空間フィルタ処理を行う領域を図20の領域1100、1101、1102とする。次に、無表情状態を判定するために図20の領域1102に対して空間フィルタ処理を行う。使用する空間フィルタは例えば、水平・垂直エッジを検出するためのSobelフィルタを用いるが、Sobelフィルタに限定されるわけではない。
【0066】
ステップS1006では、システム制御回路112は、ステップS1005での空間フィルタ出力を用いて無表情状態かどうかを判定する。図21は、図20の領域1100、領域1102に対して、水平・垂直エッジを検出するSobelフィルタ処理を実行した結果を示す。状態A〜Cは領域1102に対してSobelフィルタ処理を実行した結果であり、状態D,Eは領域1100に対してSobelフィルタ処理を実行した結果である。状態Aは口を閉じた無表情状態、状態Bは口を横方向に開いた無表情以外の状態、状態Cは口を縦方向に開いた無表情以外の状態である。また、状態Dは眼を開けた無表情の状態、状態Eは眼を閉じた無表情以外の状態である。
【0067】
まず図21の状態A、状態B、状態Cを比較すると分かるように、状態Aの口を閉じた無表情状態では、水平及び垂直エッジフィルタ出力値が全体的に低い。それに対し、状態Bもしくは状態Cの口を開いたような無表情以外の状態では、特に水平エッジフィルタ出力値が全体的に高い。また、図21の状態Dと状態Eも同様に比較すると、眼を開いた無表情状態Dは、垂直エッジフィルタ出力値が高い部分が存在するが、眼を閉じた状態Eでは垂直エッジフィルタ出力値が全体的に低い。
【0068】
以上の結果より、ステップS1005では、領域1100から得られる垂直エッジフィルタ出力値の和が所定値以上、領域1102から得られる水平フィルタ出力値の和が夫々所定値以下であるならば、無表情状態である確率が高いということが分かる。実際に無表情状態を判定するには、無表情状態値を算出するような以下の関数を用いる。
【0069】
【数2】
【0070】
Nは無表情判定に使用する特徴数、filter_outputは空間フィルタ出力値和、fiはi番目の特徴から無表情度を算出するための関数である。本実施形態においては、上記のようにN=2とする。なお、各関数fiには重み付けがされており、例えば、領域1100から得られる垂直エッジフィルタ出力値の和よりも、領域1102から得られる水平フィルタ出力値の和の方が、無表情を判定する際に重みを大きくする。より具体的には、無表情度のMax値を1とすると、領域1100から得られる垂直エッジフィルタ出力値の和から得られる無表情度のMax値を0.4、領域1102から得られる水平フィルタ出力値の和から得られる無表情度のMax値を0.6とする。無表情度を算出する関数は、大量の無表情状態画像に対して水平及び垂直エッジを検出し、夫々のフィルタ出力値の和の統計的なデータから算出される。例えば、図22の(a)や(b)のように無表情状態画像から得られたヒストグラムを用いることにより、無表情度を算出する関数を決定するが、これらの方法に限定されるわけではない。また、無表情状態を判定するのに使用する領域は、口・眼領域だけではなく、他の領域など複数の領域を使用しても良い。
【0071】
無表情状態を判定する際の別の方法として、エッジフィルタ出力値以外に、図20の領域1102に対して歯の色である白色領域を抽出し、白色領域の面積(画素数)を用いて無表情状態を判定するようにしても良い。
【0072】
図19に戻り、ステップS1007では、表情判定に使用する参照特徴量を抽出する。第3実施形態における参照特徴量は、図20の領域1100、1101、1102に対して水平及び垂直エッジを検出するので計6つのSobelフィルタ出力値データを参照特徴量として抽出する。
【0073】
次に、ステップS916において表情を判定するための、第3実施形態による処理について説明する。図23は、ステップS916における、第3実施形態よる表情判定処理を示すフローチャートである。ステップS1200〜S1204までは第1、第2実施形態(S800〜S804)と同様の処理である。
【0074】
ステップS1205では、システム制御回路112は、図19のステップS1005と同様な処理を行い、水平及び垂直エッジを検出する計6つのSobelフィルタ出力値を得る。ステップS1206では、システム制御回路112は、図19のステップS1007で抽出された計6つのSobelフィルタ出力値と、図23のステップS1205で検出された計6つのSobelフィルタ出力値との差から夫々フィルタ差分出力値を得る。ステップS1207では、システム制御回路112は、ステップS1206で得た6つの空間フィルタ差分出力値を用いて表情の判定を行う。
【0075】
表情の判定方法としては、本実施形態では、図24のように6つの空間フィルタ差分出力値を入力層、表情判定を出力層とするニューラルネットワークを使用する。このニューラルネットワークの学習方法は、例えば、無表情の画像データとある1つの表情の画像データを大量に用意し、これらの画像データから6つフィルタ差分出力値を算出する。そして、各表情についてのこれらの6つフィルタ差分出力値を夫々入力層に入力した時に、例えば、出力層でのその表情に対応するニューロン出力値が1、その他の表情に対応するニューロン出力値は0となるように学習させる方法がある。このようなニューラルネットワークの入力層にステップS1206で得た6つのフィルタ差分出力値を入力することによって、出力層である表情判定層の所定の表情カテゴリを検出するニューロンが最も強く発火することになる。従って、表情判定層の各ニューロン値を参照することによって表情を判定することができる。なお、表情判定においてはニューラルネットワークではなく他の識別器を使用しても構わない。
【0076】
以上、第3実施形態では、空間フィルタ出力値に基づいて表情認識の際に必要な参照特徴量を抽出した後、表情を認識する方法について説明した。
【0077】
なお、第3実施形態では、電子スチルカメラに適用した場合について説明したが、ビデオカメラなどにも適用可能であることは言うまでもない。また、撮像装置ではなく、大量の画像が蓄積されたデータベースから特定人物の無表情状態画像を抽出した後、特定人物の所定表情画像を抽出することも可能である。
【0078】
<第4実施形態>
次に、第4実施形態について説明する。図25は、第4実施形態の全体動作を示すフローチャートである。ステップS1300〜ステップS1320までは第2実施形態(図16のS900〜S920)と同様の処理を行う。ステップS1316で所定表情でないと判定された場合には、処理はステップS1321へ進む。ステップS1321では、システム制御回路112は、ステップS1314のように無表情状態の判定に加えて、参照特徴量を更新するかの判定を行う。すなわち、第4実施形態では、ステップS1316で所定の表情であると判定されるまでの間に、無表情状態と再度判定し、参照特徴量の設定/表情判定処理の開始を行うと判定した場合に、参照特徴量を更新する。以下、ステップS1321の処理の詳細を説明する。
【0079】
ステップS1321では、上記のように、まず第2の実施形態で説明した方法で、無表情状態であるかどうかの判定を行う。次に、予め用意された大量の無表情画像から得られた図13の特徴量710(または、711、712)のヒストグラムが、図26のように表されるとする。ステップS1314、つまり最初に抽出された特徴量710を特徴量1400、ステップS1321で抽出された特徴量710を特徴量1401とする。第4実施形態では、無表情状態の判定に用いられた特徴量が予め用意されたヒストグラムの平均μにより近ければ参照特徴量を更新する。図26の場合、最初に抽出された特徴量1400(ステップS1314で抽出された特徴量)よりもステップS1321で抽出された特徴量1401の方が平均μに近い位置に存在する。従って、ステップS1321では参照特徴量を更新すると判定される。ステップS1321で参照特徴量を更新すると判定された場合、処理はステップS1322に進む。ステップS1322において、システム制御回路112は、参照特徴量を更新する。一方、ステップS1321で参照特徴量を更新しないと判定された場合は、ステップS1322をスキップして、ステップS1320へ進む。なお、参照特徴量更新判定に関しては、上記方法に限定するわけではなく、予め用意する大量の無表情画像を特定人物と限定するようにしても良い。
【0080】
このように、第4実施形態によれば、より表情認識に最適な無表情画像を検出した場合に参照特徴量を更新することで表情認識精度を向上させることができる。
【0081】
<第5実施形態>
次に、第5実施形態について説明する。図27は第5実施形態による撮像装置100の全体動作を示すフローチャートである。ステップS1500〜S1512までは第1実施形態(ステップS200〜S212)と同様の処理である。ステップS1513では表情認識処理が行われる。以下ではステップS1513の詳細を説明する。図28はステップS1513の詳細処理を示すフローチャートである。
【0082】
ステップS1600〜ステップS1606までは第1実施形態の表情判定(ステップS800〜S806)と同様の処理である。ステップS1607では、システム制御回路112は、所定特徴点の信頼度がすべて所定閾値以上であるか否かを判定する。所定特徴点の信頼度が全て所定閾値以上であれば、処理はステップS1608へ進む。一方、ステップS1607で、所定特徴点の信頼度がすべて所定閾値以上ではないと判定された場合は、処理を終了する。
【0083】
以下、特徴点の信頼度に関する説明をする。特徴点の信頼度とは、検出された特徴点がどの程度特徴点の検出結果として信頼できるかという値を示している。特徴点の信頼度の算出方法としては以下が挙げられる。例えば、本実施形態では、アフィン変換などにより顔の画像は正規化されている。従って、図5の特徴点509は図7の左眼検出位置400よりも右側にあるというような特徴点位置や眼の検出位置間の空間的な配置関係を用いる方法がある。また、第1実施形態で説明したように特徴点検出にニューラルネットワークを用いるのであれば、ニューロン出力値を用いる方法がある。第5実施形態では、上記特徴点の空間的な配置関係を用いる。例えば、大量のデータベースから得られる様々な表情から、所定位置を基準とした各特徴点までの相対座標値、もしくは相対距離を統計的に算出する。例えば、図29のように図6の左眼検出位置400から図5の特徴点509までの相対的なx座標を算出する。そして、算出された統計量に基づいて図29のように信頼度算出関数hを構成し、この信頼度算出関数hを用いて信頼度を算出する。
【0084】
同様に他の特徴点に対しても信頼度算出関数を構成する。なお、信頼度算出方法は本実施形態に記載の方法に限定されるわけではない。
【0085】
ステップS1608では、検出すべき表情に応じて選択された特徴点から必要な特徴量を抽出し、格納する。例えば、表情の一例として笑顔表情を認識するのであれば、図14の特徴量712、713、714を抽出し、これらをメモリに記憶しておく。ステップS1517による自動撮影の継続(S1512〜S1516の繰り返し)により、メモリには現フレームを含め、複数フレーム前の特徴量712、713、714が格納されている。
【0086】
ステップS1609では、システム制御回路112は、特徴量の差分から各特徴量の変化量を算出する。すなわち、格納されているフレームt[frame]の画像から得られた特徴量712、713、714を基準として、フレームt’[frame]で抽出された特徴量712、713、714との差分が用いられる。なお、各特徴量変化量は複数フレームの平均を用いても良い。図30では例として、(a)は図14の特徴量713の変化パターン、(b)は図14の特徴量714の変化パターン、(c)は図14の特徴量712の変化パターンを示している。また、図30のt1からt2は口を縦方向に開ける動作、t3からt4は口の両端を持ち上げる笑顔表情動作である。
【0087】
ステップS1610では、ステップ1609で得られたフレームt[frame]の特徴量を基準としたフレームt’[frame]の特徴量の変化量、例えば、図30のフレームt3〜t4までの特徴量1、特徴量2、特徴量3の変化量から表情を判定する。例えば、特許第02962549号明細書や特許第0294816号明細書に記載されているような隠れマルコフモデルを用いて、上記変化量から表情を判定する。こうして、特徴量の変化量パターンから表情が判定される。なお、隠れマルコフモデル以外の方法を用いても構わない。
【0088】
図27に戻り、ステップS1513において所定表情が認識されれば、処理はステップS1514へ進む。一方、所定表情が認識されなければ、処理はステップS1513からステップS1517へ進む。ステップS1514〜S1517は第1実施形態(ステップS216〜S219)と同様の処理を行う。
【0089】
以上のように所定の条件を満たす特徴情報を抽出し、特徴情報の変化量パターンに基づいて表情を判定することによって、より精度の高い表情認識処理を行うことができる。
【0090】
以上のように、上記各実施形態によれば、予め参照特徴量を抽出するのではなく、
(1)表情を判定する際に所定の情報に基づいて所定のタイミングで自動的に参照特徴量が抽出され、
(2)抽出した参照特徴量と各特徴量の変化パターンに基づいて表情が判定される。
【0091】
このため、上記各実施形態によれば、
(1)予め無表情の画像を登録しておかなければならない、
(2)登録された人物しか表情を認識することができない、
(3)表情認識処理を行う人物の数だけ画像などを登録する必要があるため、より多くのメモリ領域が必要となる、
(4)登録の際の撮影環境と表情認識を実行する際の撮影環境が異なる場合、撮影環境の違いにより表情を精度良く認識することができないことがある、
という課題を解決した表情認識が可能となる。
【0092】
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。すなわち、上記実施形態では撮像装置により表情判定を実現する構成を示したが、情報処理装置が上述した表情判定の処理を実行することも可能である。
【0093】
従って、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
【0094】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0095】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
【0096】
コンピュータプログラムを供給するためのコンピュータ読み取り可能な記憶媒体としては以下が挙げられる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などである。
【0097】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0098】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
【0099】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどとの協働で実施形態の機能が実現されてもよい。この場合、OSなどが、実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【0100】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行なう。
【図面の簡単な説明】
【0101】
【図1】本実施形態である撮像装置のハードウェア構成である。
【図2】第1実施形態の撮像装置による全体的な動作を示すフローチャートである。
【図3】第1実施形態による参照特徴量の設定処理(ステップS213)の詳細を示すフローチャートである。
【図4】検出された左右眼の例を示した図である。
【図5】検出する特徴点の例を示した図である。
【図6】特徴点500、502を検出するための領域の設定例を示した図である。
【図7】特徴点503を検出するための領域の設定例を示した図である。
【図8】特徴点506、509を検出するための領域の設定例を示した図である。
【図9】特徴点507、508を検出するための領域の設定例を示した図である。
【図10】特徴点514、517を検出するための領域の設定例を示した図である。
【図11】特徴点515、516を検出するための領域の設定例を示した図である。
【図12】顔検出位置を基準として、特徴点514、517のy座標の変化を示したグラフを示す図である。
【図13】表情の一例である笑顔表情を判定するために使用する特徴の例を示した図である。
【図14】表情の一例である笑顔表情を判定するために使用する特徴の例を示した図である。
【図15】第1実施形態による表情判定処理(ステップS215)の詳細を示すフローチャートである。
【図16】第2実施形態の撮像装置による全体的な動作を示すフローチャートである。
【図17】ヒストグラムを用いて無表情状態を判定する閾値を決定する方法の例を示した図である。
【図18】ヒストグラムを用いて無表情状態を判定する閾値を決定する方法の他の例を示した図である。
【図19】第3実施形態による参照特徴量の設定処理の詳細を示すフローチャートである。
【図20】第3実施形態によるフィルタ処理を行う処理領域を示した図である。
【図21】フィルタ処理を行った結果の例を示した図である。
【図22】図21の状態A及び状態Eの、垂直方向エッジフィルタ出力和ヒストグラムを示した図である。
【図23】第3実施形態による表情判定処理の詳細を示すフローチャートである。
【図24】表情を判定するニューラルネットワークを説明する図である。
【図25】第4実施形態の撮像装置による全体的な動作を示すフローチャートである。
【図26】参照特徴量を更新する判定処理方法を説明する図である。
【図27】第5実施形態の撮像装置による全体的な動作を示すフローチャートである。
【図28】第5実施形態による表情判定処理(ステップS1513)の詳細を示すフローチャートである。
【図29】特徴点信頼度算出方法を説明する図である。
【図30】各特徴量の変化パターンを示した図である。
【特許請求の範囲】
【請求項1】
順次に画像を入力する画像入力手段と、
前記画像入力手段で得られる画像から顔を検出する顔検出手段と、
前記顔検出手段で検出された顔の画像情報に基づいて表情判定を開始するか否かを判定する開始判定手段と、
前記開始判定手段が表情判定を開始すると判定した場合、前記顔検出手段で検出された顔の画像情報に基づいて参照特徴情報を取得する取得手段と、
前記開始判定手段が表情判定を開始すると判定した後に前記画像入力手段で入力された画像について、前記顔検出手段によって検出された顔の画像情報から特徴情報を抽出し、当該抽出された特徴情報と前記参照特徴情報とに基づいて前記検出された顔の表情を判定する表情判定手段とを備えることを特徴とする表情認識装置。
【請求項2】
前記表情判定手段は、前記抽出された特徴情報と、前記参照特徴情報との差もしくは比に基づいて表情を判定することを特徴とする請求項1に記載の表情認識装置。
【請求項3】
前記顔検出手段で検出された顔に関して顔のサイズ、顔の向き、検出の信頼度の少なくとも1つを検出し、その検出結果に基づいて前記検出された顔の有効性を判断する判断手段を更に備え、
前記開始判定手段と前記表情判定手段は、前記判断手段が有効であると判断した顔の画像情報に対して判定を行うことを特徴とする請求項1または2に記載の表情認識装置。
【請求項4】
前記開始判定手段は、前記顔の特定の位置を基準点とした顔面パーツを構成する特徴点の座標値に基づいて表情判定を開始するか否かを判定することを特徴とする請求項1乃至3のいずれか1項に記載の表情認識装置。
【請求項5】
前記開始判定手段は、前記検出された顔の特定の位置と、顔面パーツを構成する特徴点との距離に基づいて表情判定を開始するか否かを判定することを特徴とする請求項1乃至3のいずれか1項に記載の表情認識装置。
【請求項6】
前記開始判定手段は、前記検出された顔に空間フィルタ処理を施して得られた出力値に基づいて表情判定を開始するか否かを判定することを特徴とする請求項1乃至3のいずれか1項に記載の表情認識装置。
【請求項7】
前記開始判定手段は、予め定められた枚数もしくは時間の連続する画像において、前記検出された顔の画像情報から得られる特徴量の変動量が所定範囲内となった場合に、表情判定を開始すると判定することを特徴とする請求項1乃至3のいずれか1項に記載の表情認識装置。
【請求項8】
前記開始判定手段は、複数の顔の画像から得られた特徴量を予め統計処理して設定された基準を保持し、前記検出された顔の画像情報から得られる特徴量が前記基準から所定範囲内にある場合に、表情判定を開始すると判定することを特徴とする請求項1乃至3のいずれか1項に記載の表情認識装置。
【請求項9】
前記開始判定手段は、前記検出された顔の画像における、特定の領域の画素数が所定の条件を満たす場合に、表情判定を開始すると判定することを特徴とする請求項1乃至3のいずれか1項に記載の表情認識装置。
【請求項10】
前記特定の領域の画素数が所定の条件を満たす場合とは瞳領域の画素数が所定値以上である場合であることを特徴とする請求項9に記載の表情認識装置。
【請求項11】
前記特定の領域の画素数が所定の条件を満たす場合とは、歯の色の領域の画素数が所定値以下である場合であることを特徴とする請求項9に記載の表情認識装置。
【請求項12】
前記表情判定手段が顔の表情を判定するまでの間に、前記開始判定手段が表情判定を開始すると再度判定した場合に、前記参照特徴情報を、当該開始すると再度判定された後に前記取得手段で取得される参照特徴情報で更新することを特徴とする請求項1乃至11のいずれか1項に記載の表情認識装置。
【請求項13】
前記表情判定手段は、前記抽出された特徴情報に含まれる各特徴量と前記参照特徴情報に含まれる各特徴量の変化量に重み付けを行い、重み付けされた変化量に基づいて前記検出された顔の表情を判定することを特徴とする請求項1乃至12のいずれか1項に記載の表情認識装置。
【請求項14】
前記顔検出手段で検出された顔の画像に基づいて個人認証を行う個人認証手段をさらに備えることを特徴とする請求項1乃至13のいずれか1項に記載の表情認識装置。
【請求項15】
請求項1乃至14のいずれか1項に記載の表情認識装置と、
撮像手段により画像を時系列に取得して、前記画像入力手段に前記取得手段で取得した画像を供給する供給手段と、
前記表情判定手段が予め定めれられた表情であると判定した場合、当該画像を撮影画像として記録する記録手段とを備えることを特徴とする撮像装置。
【請求項16】
順次に画像を入力する画像入力手段と、
前記画像入力手段で得られる画像から顔を検出する顔検出手段と、
前記顔検出手段で検出された顔から特徴量を抽出する特徴量抽出手段と、
前記特徴量抽出手段で抽出された特徴量の信頼度が閾値以上である場合に、当該特徴量をメモリに格納する格納手段と、
前記格納手段によって前記メモリに格納された特徴量の変化に基づいて、前記顔における顔の表情を判定する表情判定手段とを備えることを特徴とする表情認識装置。
【請求項17】
情報処理装置による表情認識方法であって、
順次に画像を入力する画像入力工程と、
前記画像入力工程で得られる画像から顔を検出する顔検出工程と、
前記顔検出工程で検出された顔の画像情報に基づいて表情判定を開始するか否かを判定する開始判定工程と、
前記開始判定工程が表情判定を開始すると判定した場合、前記顔検出工程で検出された顔の画像情報に基づいて参照特徴情報を取得する取得工程と、
前記開始判定工程が表情判定を開始すると判定した後に前記画像入力工程で入力された画像について、前記顔検出工程によって検出された顔の画像情報から特徴情報を抽出し、当該抽出された特徴情報と前記参照特徴情報とに基づいて前記検出された顔の表情を判定する表情判定工程とを備えることを特徴とする表情認識方法。
【請求項18】
情報処理装置による表情認識方法であって、
順次に画像を入力する画像入力工程と、
前記画像入力工程で得られる画像から顔を検出する顔検出工程と、
前記顔検出工程で検出された顔から特徴量を抽出する特徴量抽出工程と、
前記特徴量抽出工程で抽出された特徴量の信頼度が閾値以上である場合に、当該特徴量をメモリに格納する格納工程と、
前記格納工程によって前記メモリに格納された特徴量の変化に基づいて、前記顔における顔の表情を判定する表情判定工程とを備えることを特徴とする表情認識方法。
【請求項19】
請求項17または18に記載の表情認識方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項20】
請求項17または18に記載の表情認識方法をコンピュータに実行させるためのコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体。
【請求項1】
順次に画像を入力する画像入力手段と、
前記画像入力手段で得られる画像から顔を検出する顔検出手段と、
前記顔検出手段で検出された顔の画像情報に基づいて表情判定を開始するか否かを判定する開始判定手段と、
前記開始判定手段が表情判定を開始すると判定した場合、前記顔検出手段で検出された顔の画像情報に基づいて参照特徴情報を取得する取得手段と、
前記開始判定手段が表情判定を開始すると判定した後に前記画像入力手段で入力された画像について、前記顔検出手段によって検出された顔の画像情報から特徴情報を抽出し、当該抽出された特徴情報と前記参照特徴情報とに基づいて前記検出された顔の表情を判定する表情判定手段とを備えることを特徴とする表情認識装置。
【請求項2】
前記表情判定手段は、前記抽出された特徴情報と、前記参照特徴情報との差もしくは比に基づいて表情を判定することを特徴とする請求項1に記載の表情認識装置。
【請求項3】
前記顔検出手段で検出された顔に関して顔のサイズ、顔の向き、検出の信頼度の少なくとも1つを検出し、その検出結果に基づいて前記検出された顔の有効性を判断する判断手段を更に備え、
前記開始判定手段と前記表情判定手段は、前記判断手段が有効であると判断した顔の画像情報に対して判定を行うことを特徴とする請求項1または2に記載の表情認識装置。
【請求項4】
前記開始判定手段は、前記顔の特定の位置を基準点とした顔面パーツを構成する特徴点の座標値に基づいて表情判定を開始するか否かを判定することを特徴とする請求項1乃至3のいずれか1項に記載の表情認識装置。
【請求項5】
前記開始判定手段は、前記検出された顔の特定の位置と、顔面パーツを構成する特徴点との距離に基づいて表情判定を開始するか否かを判定することを特徴とする請求項1乃至3のいずれか1項に記載の表情認識装置。
【請求項6】
前記開始判定手段は、前記検出された顔に空間フィルタ処理を施して得られた出力値に基づいて表情判定を開始するか否かを判定することを特徴とする請求項1乃至3のいずれか1項に記載の表情認識装置。
【請求項7】
前記開始判定手段は、予め定められた枚数もしくは時間の連続する画像において、前記検出された顔の画像情報から得られる特徴量の変動量が所定範囲内となった場合に、表情判定を開始すると判定することを特徴とする請求項1乃至3のいずれか1項に記載の表情認識装置。
【請求項8】
前記開始判定手段は、複数の顔の画像から得られた特徴量を予め統計処理して設定された基準を保持し、前記検出された顔の画像情報から得られる特徴量が前記基準から所定範囲内にある場合に、表情判定を開始すると判定することを特徴とする請求項1乃至3のいずれか1項に記載の表情認識装置。
【請求項9】
前記開始判定手段は、前記検出された顔の画像における、特定の領域の画素数が所定の条件を満たす場合に、表情判定を開始すると判定することを特徴とする請求項1乃至3のいずれか1項に記載の表情認識装置。
【請求項10】
前記特定の領域の画素数が所定の条件を満たす場合とは瞳領域の画素数が所定値以上である場合であることを特徴とする請求項9に記載の表情認識装置。
【請求項11】
前記特定の領域の画素数が所定の条件を満たす場合とは、歯の色の領域の画素数が所定値以下である場合であることを特徴とする請求項9に記載の表情認識装置。
【請求項12】
前記表情判定手段が顔の表情を判定するまでの間に、前記開始判定手段が表情判定を開始すると再度判定した場合に、前記参照特徴情報を、当該開始すると再度判定された後に前記取得手段で取得される参照特徴情報で更新することを特徴とする請求項1乃至11のいずれか1項に記載の表情認識装置。
【請求項13】
前記表情判定手段は、前記抽出された特徴情報に含まれる各特徴量と前記参照特徴情報に含まれる各特徴量の変化量に重み付けを行い、重み付けされた変化量に基づいて前記検出された顔の表情を判定することを特徴とする請求項1乃至12のいずれか1項に記載の表情認識装置。
【請求項14】
前記顔検出手段で検出された顔の画像に基づいて個人認証を行う個人認証手段をさらに備えることを特徴とする請求項1乃至13のいずれか1項に記載の表情認識装置。
【請求項15】
請求項1乃至14のいずれか1項に記載の表情認識装置と、
撮像手段により画像を時系列に取得して、前記画像入力手段に前記取得手段で取得した画像を供給する供給手段と、
前記表情判定手段が予め定めれられた表情であると判定した場合、当該画像を撮影画像として記録する記録手段とを備えることを特徴とする撮像装置。
【請求項16】
順次に画像を入力する画像入力手段と、
前記画像入力手段で得られる画像から顔を検出する顔検出手段と、
前記顔検出手段で検出された顔から特徴量を抽出する特徴量抽出手段と、
前記特徴量抽出手段で抽出された特徴量の信頼度が閾値以上である場合に、当該特徴量をメモリに格納する格納手段と、
前記格納手段によって前記メモリに格納された特徴量の変化に基づいて、前記顔における顔の表情を判定する表情判定手段とを備えることを特徴とする表情認識装置。
【請求項17】
情報処理装置による表情認識方法であって、
順次に画像を入力する画像入力工程と、
前記画像入力工程で得られる画像から顔を検出する顔検出工程と、
前記顔検出工程で検出された顔の画像情報に基づいて表情判定を開始するか否かを判定する開始判定工程と、
前記開始判定工程が表情判定を開始すると判定した場合、前記顔検出工程で検出された顔の画像情報に基づいて参照特徴情報を取得する取得工程と、
前記開始判定工程が表情判定を開始すると判定した後に前記画像入力工程で入力された画像について、前記顔検出工程によって検出された顔の画像情報から特徴情報を抽出し、当該抽出された特徴情報と前記参照特徴情報とに基づいて前記検出された顔の表情を判定する表情判定工程とを備えることを特徴とする表情認識方法。
【請求項18】
情報処理装置による表情認識方法であって、
順次に画像を入力する画像入力工程と、
前記画像入力工程で得られる画像から顔を検出する顔検出工程と、
前記顔検出工程で検出された顔から特徴量を抽出する特徴量抽出工程と、
前記特徴量抽出工程で抽出された特徴量の信頼度が閾値以上である場合に、当該特徴量をメモリに格納する格納工程と、
前記格納工程によって前記メモリに格納された特徴量の変化に基づいて、前記顔における顔の表情を判定する表情判定工程とを備えることを特徴とする表情認識方法。
【請求項19】
請求項17または18に記載の表情認識方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項20】
請求項17または18に記載の表情認識方法をコンピュータに実行させるためのコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図21】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図21】
【公開番号】特開2008−310775(P2008−310775A)
【公開日】平成20年12月25日(2008.12.25)
【国際特許分類】
【出願番号】特願2007−160680(P2007−160680)
【出願日】平成19年6月18日(2007.6.18)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成20年12月25日(2008.12.25)
【国際特許分類】
【出願日】平成19年6月18日(2007.6.18)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]