以下、本発明の実施の形態について図面を参照しながら説明する。まず、本発明の第1の実施の形態に係る動画像処理装置について説明する。
図1は、本発明の第1の実施の形態に係る動画像処理装置100の構成を概略的に示すブロック図である。図1の動画像処理装置100は、撮影された動画像データを入力として、この動画像データを構成する複数の画像フレームデータから、人物を含み、かつ、その人物の表情が特定の表情、ここでは笑顔である画像フレームデータを検出する。そして、動画像処理装置100は、笑顔の画像データが検出された場合に、静止画像データを取得する処理を実行して記録媒体に記録する機能を有する。
動画像処理装置100は、装置全体を制御するための制御部110と、動画像データ及び静止画像データを入力する撮像部120とを備える。動画像処理装置100は、撮像部120から入力された動画像データを構成する画像フレームデータから人物の笑顔が記録されている画像を検出する笑顔画像検出部130と、撮像部120から入力された静止画像データを符号化する画像符号化部140とを備える。さらに、動画像処理装置100は、符号化された画像データを記録するためのメモリカードやハードディスク等の記録媒体150と、ユーザが操作するためのスイッチ類を備えた操作部160とを備えている。
制御部110は、ユーザによる操作部160の操作に応じて、撮影部120を制御して画像データを入力し、笑顔画像検出部130や画像符号化部140を制御する。
撮像部120は、撮影レンズと、この撮影レンズにより形成される被写体像を検出するCMOSセンサ等の撮像素子から構成され、連続した画像フレームデータのデータとして画像データを出力する。なお、撮像部120は、制御部110からの指示により撮影モードを動画モードと静止画モードとの間で切り替える。動画モードでは、比較的低い解像度で連続的に画像を撮影し、静止画モードでは、比較的高い解像度で単独の画像を撮影する。
笑顔画像検出部130は、動画モードで撮影された画像フレームデータから人物の顔を検出する顔検出部131と、検出された顔の表情が特定の表情(この例では笑顔)にどれだけ近いかの度合いを示す表情評価値を算出する表情評価部132とを備える。また、笑顔画像検出部130は、評価差分値判定部133を備えている。評価差分値判定部133は、現在処理中の画像フレームデータに対する表情評価値と現在処理中の画像フレームデータよりも前の時点における画像フレームデータに対する表情評価値の差分値を算出し、算出された差分値が所定の条件を満たすか否かを判定する。
制御部110は、表情評価部132により算出された表情評価値が高い画像フレームデータのうち、評価差分値判定部133が所定の条件を満たすと判定した場合に、静止画像データを取得する処理を実行して記録媒体に記録する機能を備えている。制御部110は、所定の条件を満たすと判定されると、そのタイミングで記録指示を撮像部120及び画像符号化部140に出力する。これにより、撮像部120は静止画モードで画像を撮影し、この画像データが画像符号化部140により静止画像データとして符号化され、記録媒体150に記録される。
次に、上記のように構成された動画像処理装置100の動作について説明する。操作部160を操作することによりユーザが動画像処理装置100の電源を投入すると、制御部110は撮像部120を初期化した後、撮像部120を制御して動画モードで撮影を開始させる。撮影した動画像は、図示せぬLCDパネル等の表示部にプレビュー表示される。プレビュー表示の際には、1秒間に一定のフレーム数の表示が行われ、撮影された動画像データは表示後破棄される。
ユーザが操作部160を操作して記録開始を指示すると、制御部110は笑顔画像検出部130を初期化した後、撮像部120で撮影した動画像データの画像フレームデータを顔検出部131に入力する(入力ステップ)。
顔検出部131は、入力された画像フレームデータを解析し、画像フレームデータ(静止画像)中に人物の顔が存在するか否かを判別する(顔検出ステップ)。判別には、特許文献1に記載された手法を用いることができる。そして、顔検出部131は、入力画像フレームデータに顔が存在すると判別した場合には、顔領域を特定し、この顔領域の対象物が人物の顔である確度を示す顔信頼度値を算出する(顔信頼度算出ステップ)。
顔検出部131により検出された画像フレームデータ中の顔領域の情報は表情評価部132に入力され、顔領域に対する顔信頼度値は評価差分値判定部133に入力される。表情評価部132は、入力された顔領域の画像に対して笑顔の度合いを示す表情評価値を算出する(表情評価ステップ)。表情評価値の算出には、特許文献2に記載された手法を用いることができる。評価差分値判定部133は、入力された顔信頼度値に基づいてしきい値を調整する(しきい値設定ステップ)。具体的には、顔検出部131により算出された顔信頼度値が大きい場合はしきい値を小さな値に変更し、顔信頼度値が小さい場合はしきい値を大きな値に変更する。
表情評価部132により算出された表情評価値は、評価差分値判定部133に入力される。評価差分値判定部133は、入力された表情評価値がしきい値より大きいか否かを判別し、大きい場合には、入力された表情評価値と1つ前の画像フレームデータに対する表情評価値の差分値を算出する(算出ステップ)。そして、算出された差分値が所定の条件を満たすか否かを判定する(評価差分値判定ステップ)。ここでは、例えば、差分値が一定の基準値より小さい場合に所定の条件を満たすものと判定する。評価差分値判定部133は、所定の条件を満たす(差分値が基準値より小さい)と判定した場合には、笑顔検出信号を制御部110へ出力し、所定の条件を満たさない(差分値が基準値より大きい)と判定した場合には、笑顔非検出信号を制御部110へ出力する。一般に、表情の変化は連続的であり、表情評価値が最大値に近づくと、直前の画像フレームデータとの表情評価値の差分値は小さくなると考えられる。そのため、差分値に基づいて静止画データの取得タイミングを決定することにより、表情評価値が最大値に近い静止画像データを取得することができる。評価差分値判定部133の動作の詳細については後述する。
笑顔検出信号が入力されると、制御部110は静止画像データを取得する処理を実行する(制御ステップ)。具体的には、制御部110は、撮影部120を静止画モードに切り替えて画像データを取得し、画像符号化部140に入力する。画像符号化部140は、入力された画像データに対してJPEG圧縮などの静止画像符号化処理を実行する。制御部110は、符号化処理が実行された静止画像データを静止画ファイルとして記録媒体150に記録する。制御部110は、静止画ファイルの記録が終了すると、撮影を終了し、撮影部120のモードを動画モードに切り替えてプレビュー表示を再開させる。
一方、顔検出部131は、画像フレームデータ中に人物の顔が存在しないと判別した場合には、表情評価部132に顔領域が存在しないことを通知し、表情評価部132は、評価差分値判定部133に顔領域が存在しないことを通知する。評価差分値判定部133は、顔領域が画像フレームデータ中に存在しないため笑顔非検出信号を制御部110に出力する。制御部110は、処理対象の画像フレームデータに対する処理を終了し、次の画像フレームデータに対する処理を開始する。
図2は、図1における評価差分値判定部133の動作を示すフローチャートである。以下、図2のフローチャートを用いて評価差分値判定部133の動作について説明する。図2の処理は、ユーザが笑顔画像の記録を指示した際に、笑顔画像が検出されるまで画像フレームデータ毎に実行される。
評価差分値判定部133は、まず、差分値を求めるために必要な直前の画像フレームデータの表情評価値の保持するための内部変数である評価値保持変数REvを−1に初期化する(ステップS101)。続いて、評価差分値判定部133は、表情評価部132から現在処理中の画像フレームデータに対する表情評価値が入力されているか否かを判別する(ステップS102)。画像フレームデータから顔領域が検出されずに表情評価値が入力されていない場合(ステップS102でNo)には、評価値保持変数REvを−1に初期化し(ステップS111)、制御部110に笑顔非検出信号を出力する(ステップS112)。そして、ステップS102に戻って次の画像フレームデータを処理する。表情評価値が入力されている場合(ステップS102でYes)には、表情評価部132から入力された現在の処理対象の画像フレームデータに関する表情評価値を内部変数である評価値変数Evにセットする(ステップS103)。そして、顔検出部131から入力された顔信頼度値を内部変数である顔信頼度変数Rvにセットする(ステップS104)。
次に、評価差分値判定部133は、評価値保持変数REvが−1より大きいか否かを判別する(ステップS105)。評価値保持変数REvが−1より大きくない場合(ステップS105でNo)は、変数が初期化されたばかりで、直前の画像フレームデータに関する評価値が保存されておらず、差分値を求めることができない。このため、評価値保持変数REvに評価値変数Evの値をセットし(ステップS113)、制御部110に笑顔非検出信号を出力し(ステップS112)、ステップS102に戻って次の画像フレームデータを処理する。
一方、評価値保持変数REvが−1より大きい場合(ステップS105でYes)は、直前の画像フレームデータに関する評価値が保存されていることを意味するため、顔信頼度変数Rvの値に従ってしきい値THvを決定する(ステップS106)。本実施の形態では、以下の表1に示すような対応関係に従い、顔信頼度変数Rvの値に応じて定数THv0、THv1、THv2のいずれかの値がしきい値THvにセットされる。すなわち、顔信頼度変数Rvの値が大きい場合にはしきい値THvは小さくなり、顔信頼度変数Rvの値が小さい場合にはしきい値THvは大きくなる。
次に、評価差分値判定部133は、評価値保持変数REvの値と評価値変数Evの値との差分をとって差分値変数Dにセットする(ステップS107)。これにより、現在処理中の画像フレームデータの表情評価値と、直前の画像フレームデータの表情評価値との差分値が求められる。
そして、評価差分値判定部133は、評価値変数Evの値がしきい値THvを超えているか否かを判別する(ステップS108)。本実施の形態では、評価値変数Evの値がしきい値THvを超えていると判別された場合(ステップS108でYes)に、検出された顔領域の表情が笑顔であると判定する。ステップ206で顔信頼度値に応じてしきい値をセットしており、顔信頼度値が小さい顔領域に対しては笑顔検出のしきい値が大きくなるため、誤検出率を低くすることができる。
表情評価値がしきい値より小さい場合(ステップS208でNo)には、顔領域が笑顔ではないと判断され、前記のステップS113,S112を経てステップS102に戻って次の画像フレームデータを処理する。
笑顔であると判定された場合(ステップS108でYes)、評価差分値判定部133は、差分値変数Dの値が所定の基準値Dcの値より大きいか否かを判別する(ステップS109)。差分値変数Dの値が基準値Dcより小さくない場合(ステップS109でNo)は、表情評価値が十分に高い値に達していないとみなし、前記のステップS113,S112を経てステップS102に戻って次の画像フレームデータを処理する。差分値変数Dの値が基準値Dcより小さい場合(ステップS109でYes)には、表情評価値が十分に高い値に達したとみなし、制御部110に笑顔検出信号を出力して(ステップS110)処理を終了する。
図2の処理によれば、表情評価値の差分値に基づいて撮像部120から入力される動画像データから好適な笑顔の画像フレームデータを検出することができる。したがって、その画像フレームデータが検出された時点で静止画像の撮影をすることにより、好適な笑顔の静止画像を撮影することができる。
次に、図2の処理の具体例を図3に基づいて説明する。図3は、図1における評価差分値判定部133の作用を説明するための表情評価値の時間に伴う変化を示すグラフである。図中の折れ線は、表情評価部132から顔画像を含む画像フレームデータ毎に出力される表情評価値を黒丸でプロットしたものであり、撮影された動画像データの中で表情評価値がどのように変化するかを示している。なお、この例では、全ての画像フレームデータに対して顔検出部131からは同一の顔信頼度が出力されているものとする。したがって、しきい値は一定である。
ユーザが画像の記録を指示すると、笑顔画像検出部130が初期化され、撮像部120から画像フレームデータが順次笑顔画像検出部130に入力される。入力された画像フレームデータは、顔検出部131、表情評価部132での処理を経て、図3に示す表情評価値が順次評価差分値判定部133に入力される。図3に示す最初の表情評価値に対しては、差分値算出の対象となる直前の画像フレームデータが入力されていないため、図2のステップS105でNoと判別され、ステップS112に進み、笑顔非検出信号が出力される。以降、(a)の画像フレームデータまでは順次表情評価値が評価差分値判定部133に入力され、直前の画像フレームデータの表情評価値との差分値を算出するが(ステップS107)、表情評価値がしきい値よりも小さい。このため、ステップS108でNoと判別され、ステップS112に進み、笑顔非検出信号が出力される。(b)の画像フレームデータ以降は表情評価値がしきい値よりも大きくなるため、ステップS108ではYesと判別されてステップS109で表情評価値の差分値と基準値Dcとが比較される。(b)、(c)、(d)の画像フレームデータでは差分値が基準値Dcよりも大きいため、ステップS109で表情評価値が十分に高い値に達していないと判定され、ステップS112で笑顔非検出信号が出力される。(e)の画像フレームデータの処理時に前記差分値が所定の値Dcよりも小さくなるため、ステップS109で表情評価値が十分に高い値に達したと判定され、ステップ210で笑顔検出信号が制御部110に出力されて評価差分値判定部133は処理を終了する。
制御部110は、笑顔検出信号が入力されると静止画の撮影処理を開始する。撮影処理を開始した場合、撮像部120から出力される画像データは顔検出部131には入力されず、画像符号化部140に入力されるため、図3の(e)から後の期間には表情評価値は算出されないが、表情評価値を算出した場合の評価値の例として示している。撮影処理を開始すると、制御部110は撮像部120を制御して絞りの調整、フラッシュの発光、露出時間の制御等を行うため、(e)から後のタイミングで実際の撮影が行われる。このため、(e)から遅れたタイミング、例えば(f)のタイミングで画像データが撮像部120から出力され、表情評価値が大きな画像データを符号化して記録することができる。
次に、本発明の第2の実施の形態に係る動画像処理装置について説明する。本実施の形態は、その構成、作用が上述した第1の実施の形態と基本的に同じであるので、重複した構成、作用については説明を省略し、以下に異なる構成、作用について説明する。
第1の実施形態では、評価値の差分値と比較する基準値Dcを定数としていたが、本実施の形態では、この基準値を直前の画像フレームデータの処理時に算出した表情評価値の差分値に基づいて基準値Dcの値を動的に決定する。第1の実施の形態との相違は、評価差分値判定部133内の処理のみであり、他は図1に示した構成と同一である。
図4は、第2の実施の形態に係る動画像処理装置の評価差分値判定部133の作動を示すフローチャートである。図2と同一内容のステップについては詳細な説明は省略する。
評価差分値判定部133は、評価値保持変数REvを−1に初期化し(ステップS201)、1つ前の画像フレームデータの処理時に算出した表情評価値の差分値を保持するための差分値保持変数Dpを0に初期化する(ステップS202)。続いて、評価差分値判定部133は、現在処理中の画像フレームデータに対する表情評価値が入力されているか否かを判別する(ステップS203)。表情評価値が入力されていない場合(ステップS203でNo)には、評価値保持変数REvを−1に初期化し(ステップS214)、差分値保持変数Dpを0に初期化し(ステップS215)、制御部110に笑顔非検出信号を出力する(ステップS216)。そして、ステップS203に戻って次の画像フレームデータを処理する。表情評価値が入力されている場合(ステップS203でYes)には、現在の処理対象の画像フレームデータに関する表情評価値を評価値変数Evにセットする(ステップS204)。そして、顔検出部131から入力された顔信頼度値を顔信頼度変数Rvにセットする(ステップS205)。
次に、評価差分値判定部133は、評価値保持変数REvが−1より大きいか否かを判別する(ステップS206)。評価値保持変数REvが−1より大きくない場合(ステップS206でNo)は、評価値保持変数REvに評価値変数Evの値をセットする(ステップS217)。そして、制御部110に笑顔非検出信号を出力し(ステップS216)、ステップS203に戻って次の画像フレームデータを処理する。
一方、評価値保持変数REvが−1より大きい場合(ステップS206でYes)は、顔信頼度変数Rvの値に従ってしきい値THvを決定する(ステップS207)。そして、評価値保持変数REvの値と評価値変数Evの値との差分をとって差分値変数Dにセットする(ステップS208)。
そして、評価差分値判定部133は、差分値保持変数Dpの値がセットされているか否か、すなわち、1つ前の画像フレームデータに対して表情評価値の差分値を算出しているか否かを判定する(ステップS209)。1つ前の画像フレームデータに対する表情評価値の差分値が算出されている場合(ステップS209でYes)には、評価値変数Evの値がしきい値THvを超えているか否か、すなわち、表情が笑顔であるか否かを判別する(ステップS210)。そして、笑顔であると判別された場合(ステップS210でYes)には、差分値保持変数Dpの値から基準値Dcの値を算出する。この例では、差分値保持変数Dpの値に一定の割合として1/3をかけた値を基準値Dcとして用いる。
基準値Dcを設定した後、評価差分値判定部133は、差分値変数Dの値が設定された基準値Dcの値より小さいか否かを判別する(ステップS212)。差分値変数Dの値が基準値Dcより小さい場合(ステップS212でYes)には、評価差分値判定部133は、表情評価値が十分に高い値に達したとみなし、制御部110に笑顔検出信号を出力して(ステップS213)処理を終了する。
一方、1つ前の画像フレームデータに対する表情評価値の差分値が算出されていない場合(ステップS209でNo)には、差分値保持変数Dpに差分値変数Dの値をセットする(ステップS218)。その後、評価値保持変数REvに評価値変数Evの値をセットし(ステップS217)、制御部110に笑顔非検出信号を出力し(ステップS216)、ステップS203に戻って次の画像フレームデータを処理する。表情評価値がしきい値より小さい場合(ステップS210でNo)、及び、差分値変数Dの値が設定された基準値Dcの値より大きい場合(ステップS212でNo)にも、ステップS218,S217,S216を実行する。
図4の処理によれば、表情評価値の差分値に基づいて撮像部120から入力される動画像データから好適な笑顔の画像フレームデータを検出することができる。したがって、その画像フレームデータが検出された時点で静止画像の撮影をすることにより、好適な笑顔の静止画像を撮影することができる。
次に、図4の処理の具体例を図5に基づいて説明する。図5は、図4に示す第2の実施形態の評価差分値判定部133の作用を説明するための表情評価値の時間に伴う変化を示すグラフである。なお、この例でも、全ての画像フレームデータに対して顔検出部131からは同一の顔信頼度が出力されているものとする。したがって、しきい値は一定である。
ユーザが画像の記録を指示すると、図5に示す表情評価値が順次評価差分値判定部133に入力される。図5に示す最初の表情評価値に対しては、差分値算出の対象となる直前の画像フレームデータが入力されていない。そのため、図4のステップS206でNoと判別され、評価値保持変数に最初の表情評価値がセットされ(ステップS217)、笑顔非検出信号が出力される(ステップS216)。2つめの表情評価値に対しては、直前の表情評価値はセットされているため、ステップS206ではYesと判別されて差分値は計算される(ステップS208)。ただし、直前の表情評価値に対する差分値は設定されていないため、ステップS209でNoと判別され、差分値保持変数Dpに差分値変数Dの値がセットされ(ステップS218)、笑顔非検出信号が出力される(ステップS216)。
図5に示す3つめから(a)までの表情評価値に対しては、ステップS206,S209ではYesと判別されるが、しきい値を超えていないためステップS210でNoと判別され、笑顔非検出信号が出力される(ステップS216)。
図5の(b)以降の表情評価値はしきい値を超えるため、ステップS210でもYesと判別され、基準値Dcが1つ前の表情評価値に対する差分値に基づいて計算され(ステップS211)、現在の表情評価値の差分値と比較される(ステップS212)。この段階では、1つ前の(a)の表情評価値に対する差分値D(a)に基づいて、Dc=D(a)/3により基準値Dcが求められる。ただし、図5の例では、求められた基準値Dcより(b)の表情評価値に対する差分値D(b)の方が大きいため、ステップS212でNoと判別され、笑顔非検出信号が出力される(ステップS216)。
以降、(c)の表情評価値については、差分値D(c)が直前の(b)の表情評価値に対する差分値に基づいて計算された基準値Dc=D(b)/3と比較される。また、(d)の表情評価値については、差分値D(d)が直前の(c)の表情評価値に対する差分値に基づいて計算された基準値Dc=D(c)/3と比較される。いずれも、ステップS212でNoと判別され、笑顔非検出信号が出力される(ステップS216)。
(e)の画像フレームデータの処理時には、差分値D(e)が直前の(d)の表情評価値に対する差分値に基づいて計算された基準値Dc=D(d)/3より小さくなる。このため、ステップS212でYesと判別され、笑顔検出信号が出力され(ステップS213)、評価差分値判定部133は処理を終了する。
制御部110は、笑顔検出信号が入力されると、撮像部120を制御して絞りの調整、フラッシュの発光、露出時間の制御等を行うため、(e)から後のタイミングで実際の撮影が行われる。このため、(e)から遅れたタイミング、例えば(f)のタイミングで画像データが撮像部120から出力され、表情評価値が大きな画像データを符号化して記録することができる。
次に、本発明の第3の実施の形態に係る動画像処理装置について説明する。本実施の形態は、その構成、作用が上述した第2の実施の形態と基本的に同じであるので、重複した構成、作用については説明を省略し、以下に異なる構成、作用について説明する。
第2の実施形態では、評価値の差分値と比較する基準値Dcを1つ前の画像フレームデータの処理時に算出した表情評価値の差分値に基づいて算出している。これに対して、本実施の形態では、この基準値を直前の複数(この例では3つ)の画像フレームデータの処理時に算出した表情評価値の差分値の平均値に基づいて決定する。第1、第2の実施の形態との相違は、評価差分値判定部133内の処理のみであり、他は図1に示した構成と同一である。
図6は、第3の実施の形態に係る動画像処理装置の評価差分値判定部133の作動を示すフローチャートである。図2及び図4と同一内容のステップについては詳細な説明は省略する。
評価差分値判定部133は、評価値保持変数REvを−1に初期化する(ステップS301)。続いて、評価差分値判定部133は、1つ前、2つ前、3つ前の画像フレームデータの処理時に算出した表情評価値の差分値を保持するための差分値保持変数Dp1,Dp2,Dp3を0に初期化する(ステップS302,303,304)。さらに、評価差分値判定部133は、現在処理中の画像フレームデータに対する表情評価値が入力されているか否かを判別する(ステップS305)。表情評価値が入力されていない場合(ステップS305でNo)には、評価差分値判定部133は、評価値保持変数REvを−1に初期化し(ステップS316)、差分値保持変数Dp1,Dp2,Dp3を0に初期化する(ステップS317,318,319)。そして、評価差分値判定部133は、制御部110に笑顔非検出信号を出力し(ステップS320)、ステップS305に戻って次の画像フレームデータを処理する。表情評価値が入力されている場合(ステップS305でYes)には、評価差分値判定部133は、現在の処理対象の画像フレームデータに関する表情評価値を評価値変数Evにセットする(ステップS306)。そして、評価差分値判定部133は、顔検出部131から入力された顔信頼度値を顔信頼度変数Rvにセットする(ステップS307)。
次に、評価差分値判定部133は、評価値保持変数REvが−1より大きいか否かを判別する(ステップS308)。評価値保持変数REvが−1より大きくない場合(ステップS308でNo)は、評価差分値判定部133は、評価値保持変数REvに評価値変数Evの値をセットする(ステップS321)。そして、評価差分値判定部133は、制御部110に笑顔非検出信号を出力し(ステップS320)、ステップS305に戻って次の画像フレームデータを処理する。
一方、評価値保持変数REvが−1より大きい場合(ステップS308でYes)は、顔信頼度変数Rvの値に従ってしきい値THvを決定する(ステップS309)。そして、評価値保持変数REvの値と評価値変数Evの値との差分をとって差分値変数Dにセットする(ステップS310)。
次に、評価差分値判定部133は、差分値保持変数Dp3の値がセットされているか否か、すなわち、3つ前の画像フレームデータに対して表情評価値の差分値を算出しているか否かを判定する(ステップS311)。3つ前の画像フレームデータに対する表情評価値の差分値が算出されている場合(ステップS311でYes)には、評価値変数Evの値がしきい値THvを超えているか否か、すなわち、表情が笑顔であるか否かを判別する(ステップS312)。そして、笑顔であると判別された場合(ステップS312でYes)には、差分値保持変数Dp1,Dp2,Dp3の値から基準値Dcの値を算出する。この例では、差分値保持変数Dp1,Dp2,Dp3の平均値に一定の割合として1/3をかけた値を基準値Dcとして用いる。
基準値Dcを設定した後、評価差分値判定部133は、差分値変数Dの値が設定された基準値Dcの値より小さいか否かを判別する(ステップS314)。差分値変数Dの値が基準値Dcより小さい場合(ステップS314でYes)には、評価差分値判定部133は、表情評価値が十分に高い値に達したとみなし、制御部110に笑顔検出信号を出力して(ステップS315)処理を終了する。
3つ前の画像フレームデータに対する表情評価値の差分値が算出されていない場合(ステップS311でNo)には、差分値保持変数Dp3,Dp2,Dp1にそれぞれ1つ前の差分値Dp2,Dp1,Dの値をセットする(ステップS322,323,324)。そして、評価値保持変数REvに評価値変数Evの値をセットし(ステップS321)、制御部110に笑顔非検出信号を出力し(ステップS320)、ステップS305に戻って次の画像フレームデータを処理する。表情評価値がしきい値より小さい場合(ステップS312でNo)、及び、差分値変数Dの値が設定された基準値Dcの値より大きい場合(ステップS314でNo)にも、ステップS322,323,324,321,320を経てステップS305に戻る。
図6の処理によれば、表情評価値の差分値に基づいて撮像部120から入力される動画像データから好適な笑顔の画像フレームデータを検出することができる。このため、その画像フレームデータが検出された時点で静止画像の撮影をすることにより、好適な笑顔の静止画像を撮影することができる。
次に、図6の処理の具体例を図7に基づいて説明する。図7は、図6に示す第3の実施形態の評価差分値判定部133の作用を説明するための表情評価値の時間に伴う変化を示すグラフである。なお、この例でも、全ての画像フレームデータに対して顔検出部131からは同一の顔信頼度が出力されているものとする。したがって、しきい値は一定である。
ユーザが画像の記録を指示すると、図7に示す表情評価値が順次評価差分値判定部133に入力される。図7に示す最初の表情評価値に対しては、差分値算出の対象となる直前の画像フレームデータが入力されていない。このため、図4のステップS308でNoと判別され、評価値保持変数に最初の表情評価値がセットされ(ステップS321)、笑顔非検出信号が出力される(ステップS320)。2つめの表情評価値に対しては、直前の表情評価値はセットされているため、ステップS308ではYesと判別されて差分値は計算されるが(ステップS310)、3つ前の表情評価値に対する差分値は設定されていない。このため、ステップS311でNoと判別され、差分値保持変数Dp1に差分値変数Dの値がセットされ(ステップS324)、笑顔非検出信号が出力される(ステップS320)。ステップS322,323の時点では、差分値保持変数Dp1,Dp2の値は初期値0のままであるため、これらの処理を終了しても差分値保持変数Dp2,Dp3の値は0である。
図7の3つめの表情評価値までは、差分値保持変数Dp3の値が0であるため、ステップS311でNoと判別される。
図7の(a)の表情評価値が入力されると、ステップS308,S311ではYesと判別されるが、しきい値を超えていないためステップS312でNoと判別され、笑顔非検出信号が出力される(ステップS320)。
図7の(b)以降の表情評価値はしきい値を超えるため、ステップS312でもYesと判別され、基準値Dcが直前の3つの表情評価値に対する差分値に基づいて計算され(ステップS313)、現在の表情評価値の差分値と比較される(ステップS314)。この段階では、直前の3つの表情評価値に対する差分値D(a−2),D(a−1),D(a)に基づいて、Dc=(D(a−2)+D(a−1)+D(a))/9により基準値Dcが求められる。ただし、図7の例では、求められた基準値Dcより(b)の表情評価値に対する差分値D(b)の方が大きいため、ステップS314でNoと判別され、笑顔非検出信号が出力される(ステップS320)。
以降、(c)の表情評価値については、差分値D(c)が直前の3つの表情評価値に対する差分値に基づいて計算された基準値Dc=(D(a−1)+D(a)+D(b))/9と比較される。また、(d)の表情評価値については、差分値D(d)が直前の3つの表情評価値に対する差分値に基づいて計算された基準値Dc=(D(a)+D(b)+D(c))/9と比較される。いずれも、ステップS314でNoと判別され、笑顔非検出信号が出力される(ステップS320)。
(e)の画像フレームデータの処理時には、差分値D(e)が直前の3つの表情評価値に対する差分値に基づいて計算された基準値Dc=(D(b)+D(c)+D(d))/9より小さくなる。このため、ステップS314でYesと判別され、笑顔検出信号が出力され(ステップS315)、評価差分値判定部133は処理を終了する。
制御部110は、笑顔検出信号が入力されると、撮像部120を制御して絞りの調整、フラッシュの発光、露出時間の制御等を行うため、(e)から後のタイミングで実際の撮影が行われる。このため、(e)から遅れたタイミング、例えば(f)のタイミングで画像データが撮像部120から出力され、表情評価値が大きな画像データを符号化して記録することができる。
なお、第1〜第3の実施の形態では、プレビュー表示のための動画撮影と静止画の撮影とで撮影モードが異なることを前提としていたが、これらを区別せず、動画モードで撮影された画像フレームデータの一部をそのまま静止画像データとして利用してもよい。その場合には、笑顔検出信号が入力された時点(e)の画像フレームデータを符号化して記録することも可能である。
次に、本発明の第4の実施の形態に係る動画像処理装置について説明する。本実施の形態は、その構成、作用が上述した第1の実施の形態と基本的に同じであるので、重複した構成、作用については説明を省略し、以下に異なる構成、作用について説明する。
第1〜第3の実施の形態の動画像処理装置は、画像フレームデータ中の顔画像が1つである場合を想定したものであるが、第4の実施の形態の動画像処理装置は、画像フレームデータ中に顔画像が複数ある場合を想定したものである。
図8は、本発明の第4の実施の形態に係る動画像処理装置100Aの構成を概略的に示すブロック図であり、図9は、図8における評価差分値判定部の詳細な構成を示すブロック図である。装置全体の基本的な構成は図1と同一であるが、笑顔画像検出部170の構成が第1の実施の形態とは異なるため、異なる符号を付している。他の構成は図1と同一であるため、同一符号を付して重複した説明は省略する。
本実施の形態の笑顔画像検出部170は、撮像部120から入力された動画像データから人物の笑顔が記録されている画像フレームデータを検出するものである。笑顔画像検出部170は、画像フレームデータから複数の人物の顔部分の領域を検出する顔検出部171と、顔検出部171で検出された複数の顔領域に対して笑顔の度合いを示す表情評価値をそれぞれ算出するための表情評価部172とを備える。また、笑顔画像検出部170は、評価差分値判定部173を備える。評価差分値判定部173は、現在処理中の画像フレームデータに対する表情評価値と現在処理中の画像フレームデータより前の時点における画像フレームデータに対する表情評価値の差分値を各顔領域について算出し、差分値が所定の条件を満たすか否かを判定する。
ユーザが操作部160を操作して動画像処理装置100Aの電源を投入すると、制御部110は撮像部120を初期化した後、撮像部120を制御して動画モードで撮影を開始させる。撮影した動画像は、図示せぬ表示部にプレビュー表示される。ユーザが操作部160を操作して記録開始を指示すると、制御部110は笑顔画像検出部170を初期化した後、撮像部120で撮影した動画像データの画像フレームデータを顔検出部171に入力する。
顔検出部171は、入力された画像フレームデータから複数の顔領域を検出可能であり、入力された画像フレームデータを解析し、画像フレームデータ中に人物の顔が存在するか否かを判定する。また、顔検出部171は、入力画像フレームデータに顔が存在すると判別した場合には、顔領域を特定し、この顔領域の画像が人物の顔である確度を示す顔信頼度値を算出する。複数の顔が存在する場合には、複数の顔領域を特定し、それぞれの顔領域について顔信頼度値を算出する。
また、顔検出部171は、検出された顔領域にID番号を付加する機能を有し、連続する画像フレームデータで検出された顔領域に対して同一人物であると判定された顔領域に一意のID番号を付加することができる。連続する画像フレームデータ間で検出される顔領域に対して同一人物であることを特定するには、例えば1つ前の画像フレームデータで検出した顔領域の情報と、現在の画像フレームデータで検出された顔領域の情報とを比較する。比較の結果、画像フレームデータ中での位置、大きさの差異が一定値以下の顔領域を同一人物と判定することができる。
顔検出部171により画像フレームデータ中に人物の顔が存在しないと判定された場合、顔検出部171は表情評価部172に顔領域が存在しないことを通知し、表情評価部172は評価差分値判定部173に顔領域が存在しないことを通知する。評価差分値判定部173は、顔領域が画像フレームデータ中に存在しないため笑顔非検出信号を制御部110に出力し、制御部110は当該画像フレームデータに対する処理を終了して次の画像フレームデータに対する処理を開始する。
顔検出部171により画像フレームデータ中に人物の顔が存在すると判定された場合、顔検出部171により検出された画像フレームデータ中の各顔領域の情報と各顔領域のID番号を含む情報とは表情評価部172に入力される。また、各顔領域に対する顔信頼度値は評価差分値判定部173に入力される。表情評価部172は、入力されたそれぞれの顔領域の画像に対して笑顔の度合いを示す表情評価値を算出する。
算出された各顔領域に対する表情評価値および顔信頼度値は、それぞれID番号と関連づけられて評価差分値判定部173に入力される。評価差分値判定部173は、直前の画像フレームデータに含まれる顔領域の表情評価値と、現在処理中の画像フレームデータに含まれる顔領域の表情評価値との差分値を各顔領域毎に算出し、それぞれの顔領域の差分値が所定の条件を満たすか否かを判定する。そして、評価差分値判定部173は、これらの判定を統合して全体として笑顔が検出されたか否かを判定する。
本実施の形態の評価差分値判定部173は、例えば、図9に示すように3領域の顔画像の表情評価値の差分値をそれぞれ独立して検出できるように、表情評価値と共に入力されるID番号を検出して入力された表情評価値を振り分けるID判別部173aを備える。また、評価差分値判定部173は、ID番号にしたがって振り分けられたそれぞれの表情評価値から差分値を算出して所定の条件を満たすか否かを判定する第1、第2、第3のID別評価差分値判定部173b、173c、173dを備える。また、評価差分値判定部173は、各ID別評価差分値判定部173b,173c,173dから出力される評価差分値を統合して画像全体で好適な表情評価値が得られるタイミングで笑顔検出信号を制御部110へ出力する評価差分値判定統合部173eを備える。
表情評価部172から入力された各顔領域に対するID番号、表情評価値と、顔検出部171から入力される顔信頼度値とは、ID判別部173aに入力され、ID番号に応じてそれぞれID別評価差分値判定部173b,173c,173dに入力される。
なお、ID番号に対応する顔領域が検出されていない場合は、顔領域が検出されていないことを示す情報が各ID別評価差分値判定部に入力される。また、ID判別部173aは、顔領域が検出されているID番号の個数を示す有効ID数を評価差分値判定統合部173eに出力する。
ID別評価差分値判定部173b,173c,173dのそれぞれの動作は、第1の実施の形態の評価差分値判定部133と同様である。すなわち、対応するID番号に対する顔領域の表情評価値の差分値が所定の状態であるか否かを判別し、検出結果を評価差分値判定統合部173eに出力する。評価差分値判定統合部173eでは、各ID別評価差分値判定部からの検出結果および、ID判別部173aから入力された顔領域の個数を用いて、画像データ全体で好適な表情評価値の判別を行い、検出結果として制御部101に出力する。
制御部110は、第1の実施の形態におけるのと同様に、評価差分値判定部173の出力に応じて画像符号化部140を制御して画像フレームデータを符号化し、符号化された静止画像データを記録媒体150に記録する。
図10は、図9における評価差分値判定統合部173eの作動を示すフローチャートである。以下、図10のフローチャートを用いて評価差分値判定統合部173eの動作について説明する。
評価差分値判定統合部173eは、処理を開始すると、笑顔が検出された顔領域の数を保持するための顔数変数NUMを0に初期化する(ステップS401)。続いて、評価差分値判定統合部173eは、第1のID別評価差分値判定部173bからID1の顔領域に対する笑顔検出信号が入力されたか否かを判定する(ステップS402)。ID1の顔領域に対する笑顔検出信号が入力された場合(ステップS402でYes)は、笑顔を検出した顔領域の数を示す顔数変数NUMを1カウント増加させ(ステップS403)、笑顔を検出した顔領域の数が1であるか否かを判定する(ステップS404)。笑顔を検出した顔領域の数が1である場合、すなわち処理を開始して最初に笑顔が検出された場合には、内部タイマーをリセットする(ステップS405)。
評価差分値判定統合部173eは、上記のステップS402〜405と同様の処理を、第2のID別評価差分値判定部173c、第3のID別評価差分値判定部173dについても実行する(ステップS406〜409,S410〜413)。
各ID別評価差分値判定部からの信号に対する処理が終了すると、評価差分値判定統合部173eは、笑顔を検出した顔領域の数を確認する。顔領域の数が0か否かを判別し(ステップS414)、いずれの顔領域に対しても笑顔が検出されていない場合(ステップS414でYes)は、制御部110に笑顔非検出信号を出力し(ステップS417)、ステップS402に戻って次の画像データを処理する。
笑顔が検出されていると判別された場合(ステップS414でNo)には、笑顔が検出された顔領域の数と、ID判別部173aより入力された有効ID数が一致するか否かを判別する(ステップS415)。判定の結果、全ての顔領域が笑顔になっていると判定された場合(ステップS415でYes)は、評価差分値判定統合部173eは、制御部110に笑顔検出信号を出力し(ステップS418)、処理を終了する。
検出された全ての顔領域が笑顔になっていないと判定された場合(ステップS415でNo)には、内部タイマーの値が所定の値T0vよりも大きくなったか否かを判別する(ステップS416)。タイマー値が所定の値T0vより大きくない場合(ステップS416でNo)には、制御部110に笑顔非検出信号を出力し(ステップS417)、ステップS402に戻って次の画像フレームデータの処理を行う。所定の値T0vよりも大きい場合(ステップS416でYes)には、制御部110に笑顔検出信号を出力して処理を終了する。
図10の処理によれば、次の場合に、所定の期間経過後、静止画像の取得を制御部110に指示することができる。すなわち、画像フレームデータに含まれる顔領域の表情評価値の差分値が全て所定の条件を満たした場合、あるいは、最初に1つの顔領域で差分値が所定の条件を満たした後、所定の期間内に他の顔に対する差分値が所定の条件を満たさなかった場合である。
以下、本実施の形態に係る動画像処理装置100Aの処理の具体例を図11及び図12に基づいて説明する。図11及び図12は、画像フレームデータ毎に表情評価部132から出力される表情評価値の変化を3つの顔画像領域のそれぞれについてのプロットしたグラフである。図中の折れ線は、実線がID1の顔画像の表情評価値、点線がID2の顔画像の表情評価値、二点鎖線がID3の顔画像の表情評価値の変化を示す。
図11は、3つの顔領域に入る3人が互いに近いタイミングで笑顔になっている例における表情評価値の変化を示すグラフである。第1のID別評価差分値判定部173bは、(a)の時点で表情評価値の差分値が所定の基準値より小さくなったことを検出して評価差分値判定統合部173eに笑顔検出信号を出力する。評価差分値判定統合部173eは、ID1に対する笑顔検出信号を受信し、図10のステップS405でタイマーをリセットする。
その後、評価差分値判定統合部173eは、図11中の(b)、(c)のタイミングでID2およびID3に対する笑顔検出信号を受信する。評価差分値判定統合部173eは、(a)のタイミングでリセットしたタイマー値がTOvの値よりも大きくなる前に、検出されている全ての顔領域に対する笑顔検出信号が入力されたことをステップS415で検出する。そして、評価差分値判定統合部173eは、制御部110に笑顔検出信号を出力する(ステップS418)。制御部110は、(c)のタイミングで笑顔検出信号を受信して撮影処理を開始し、(c)からΔt遅れたタイミングで撮像部120から出力される画像データを取得することにより、全ての顔領域に対する表情評価値が大きな画像データを符号化して記録できる。
図12は、3つの顔領域に入る3人のうち1人だけが笑顔になっている例における表情評価値の変化を示すグラフである。第1のID別評価差分値判定部173bは、(a)の時点で表情評価値の差分値が所定の基準値より小さくなったことを検出して評価差分値判定統合部173eに笑顔検出信号を出力する。評価差分値判定統合部173eは、ID1に対する笑顔検出信号を受信し、図10のステップS405でタイマーをリセットする。
評価差分値判定統合部173eは、図11中の(a)のタイミングからTOvの時間が経過した(a’)のタイミングまで他の顔領域に対する笑顔検出信号を受信しないため、図10のステップS416でタイマー値がTOvの値より大きくなったことを検出する。評価差分値判定統合部173eは、(a’)のタイミングで制御部110に笑顔検出信号を出力する(ステップS418)。制御部110は、(a’)のタイミングで笑顔検出信号を受信して撮影処理を開始し、(a’)からΔt遅れたタイミングで撮像部120から出力される画像データを取得する。これにより、ID1の顔領域の表情評価値が小さくなる前に画像データを符号化して記録することができる。
また、本発明の目的は、以下の処理を実行することによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROM等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
更に、前述した実施形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行う場合である。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOSなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現する場合も含まれる。
この場合、上記プログラムは、該プログラムを記憶した記憶媒体から直接、又はインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続された不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。