(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-25
(45)【発行日】2024-01-09
(54)【発明の名称】画像処理方法、画像処理プログラム、および画像処理装置
(51)【国際特許分類】
G06T 7/20 20170101AFI20231226BHJP
【FI】
G06T7/20 300B
(21)【出願番号】P 2020021932
(22)【出願日】2020-02-12
【審査請求日】2022-10-06
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110004185
【氏名又は名称】インフォート弁理士法人
(74)【代理人】
【識別番号】100121083
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】川村 亮介
(72)【発明者】
【氏名】村瀬 健太郎
【審査官】山田 辰美
(56)【参考文献】
【文献】特開2008-186303(JP,A)
【文献】Tadas Baltrusaitis, et al,Cross-dataset learning and person-specific normalisation for automatic Action Unit detection,2015 11th IEEE International Conference and Workshops on Automatic Face and Gesture Recognition (FG),米国,IEEE,2015年,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7284869
【文献】Giota Stratou, et al,Refactoring facial expressions: An automatic analysis of natural occurring facial expressions in iterative social dilemma,2017 Seventh International Conference on Affective Computing and Intelligent Interaction (ACII),米国,IEEE,2018年,p.427-p.433,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8273635
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/20
(57)【特許請求の範囲】
【請求項1】
入力画像から顔の複数の特徴点を検出し、
画像から所定の顔の動きを検出する処理における前記画像内の領域の重要度
であって前記画像内の前記領域を遮蔽したときに前記処理による検出結果に生じる変化の大きさから得られる前記重要度を示す重要度情報を参照し、前記重要度情報が示す第1の閾値以下の重要度を有する画像領域に対応する1又は複数の点を、前記入力画像から検出された前記複数の特徴点のうちから選択し、
選択された前記1又は複数の点を用いて前記入力画像を補正して補正画像を生成し、
認識モデルに前記補正画像を入力して得られた出力に基づいて、前記入力画像に前記所定の顔の動きが発生しているかを判定する、
処理を含むことを特徴とするコンピュータが実行する画像処理方法。
【請求項2】
前記画像領域は、前記第1の閾値以下で第2の閾値以上の重要度を有する前記画像領域である、
ことを特徴とする請求項1に記載の画像処理方法。
【請求項3】
前記選択する処理は、前記所定の顔の動きの発生している第1の画像に含まれる複数の特徴点のそれぞれと、前記第1の画像と対応する前記所定の顔の動きの発生していない第2の画像に含まれる複数の特徴点のそれぞれとの間の差分が第3の閾値以下である特徴点に対応する前記1又は複数の特徴点を選択する処理を含む、
ことを特徴とする請求項1または2に記載の画像処理方法。
【請求項4】
前記認識モデルは、前記所定の顔の動きが発生していることがラベルされている複数の画像と、前記所定の顔の動きが発生していないことがラベルされている複数の画像とを前記画像領域を用いて補正して得られた複数の補正画像を教師データとして、機械学習を実行することによって生成された学習済みモデルである、
ことを特徴とする請求項1乃至3のいずれか1項に記載の画像処理方法。
【請求項5】
前記所定の顔の動きは、アクションユニットの1つであり、
前記入力画像に対する前記判定での前記アクションユニットの動きの発生の有無の判定結果と、前記入力画像に対する他のアクションユニットの発生の有無の情報とに基づいて、前記入力画像に写る顔の心理状態を示す情報を出力する、ことを更に含む、
ことを特徴とする請求項1乃至4のいずれか1項に記載の画像処理方法。
【請求項6】
入力画像から顔の複数の特徴点を検出し、
画像から所定の顔の動きを検出する処理における前記画像内の領域の重要度
であって前記画像内の前記領域を遮蔽したときに前記処理による検出結果に生じる変化の大きさから得られる前記重要度を示す重要度情報を参照し、前記重要度情報が示す第1の閾値以下の重要度を有する画像領域に対応する1又は複数の点を、前記入力画像から検出された前記複数の特徴点のうちから選択し、
選択された前記1又は複数の点を用いて前記入力画像を補正して補正画像を生成し、
認識モデルに前記補正画像を入力して得られた出力に基づいて、前記入力画像に前記所定の顔の動きが発生しているかを判定する、
処理をコンピュータに実行させる画像処理プログラム。
【請求項7】
入力画像から顔の複数の特徴点を検出する検出部と、
画像から所定の顔の動きを検出する処理における前記画像内の領域の重要度
であって前記画像内の前記領域を遮蔽したときに前記処理による検出結果に生じる変化の大きさから得られる前記重要度を示す重要度情報を参照し、前記重要度情報が示す第1の閾値以下の重要度を有する画像領域に対応する1又は複数の点を、前記入力画像から検出された前記複数の特徴点のうちから選択する選択部と、
選択された前記1又は複数の点を用いて前記入力画像を補正して補正画像を生成する補正部と、
認識モデルに前記補正画像を入力して得られた出力に基づいて、前記入力画像に前記所定の顔の動きが発生しているかを判定する判定部と、
を含む、画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理方法、画像処理プログラム、および画像処理装置に関する。
【背景技術】
【0002】
近年の画像処理技術の発達にともない、人間の顔の動き(例えば、表情)を検出して利用する技術が開発されている。例えば、人間の顔の動きから心理状態の機微な変化を認識し、心理状態の変化に応じた処理を行うシステムの開発が行われている。
【0003】
これに関し、表情の認識に関連する技術が知られている(例えば、特許文献1および特許文献2)。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2010-055395号公報
【文献】特開2001-307123号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、例えば、様々な顔の向きに対して頑健に顔の動きを検出するために、画像に写る顔の向きに応じた補正処理を行ってから、顔の動きの認識モデルの入力することが行われている。しかしながら、顔の動きの検出時に認識モデルが重要視している顔の部分は、動きによって異なる。そのため、検出する顔の動きによらず一律に補正した画像を用いて顔の動きの検出を行うと、顔の動きの検出精度が低下してしまうことがある。
【0006】
1つの側面では、本発明は、顔の動きの検出精度を向上させることを目的とする。
【課題を解決するための手段】
【0007】
本発明の一つの態様の画像処理方法は、入力画像から顔の複数の特徴点を検出し、画像から所定の顔の動きを検出する処理における画像内の領域の重要度であって画像内の当該領域を遮蔽したときに当該処理による検出結果に生じる変化の大きさから得られる重要度を示す重要度情報を参照し、重要度情報が示す第1の閾値以下の重要度を有する画像領域に対応する1又は複数の点を、入力画像から検出された複数の特徴点のうちから選択し、選択された1又は複数の点を用いて入力画像を補正して補正画像を生成し、認識モデルに補正画像を入力して得られた出力に基づいて、入力画像に所定の顔の動きが発生しているかを判定する、処理を含む。
【発明の効果】
【0008】
顔の動きの検出精度を向上させることができる。
【図面の簡単な説明】
【0009】
【
図1】例示的なアクションユニット情報を示す図である。
【
図3】例示的な画像からのAUの検出処理を示す図である。
【
図5】実施形態に係る画像処理装置のブロック構成を例示する図である。
【
図6】例示的な遮蔽感度マップの生成を示す図である。
【
図7】所定範囲の重要度を有する領域を重要度のヒストグラムを用いても表した例を示す図である。
【
図8】実施形態に係る重要度情報に基づく補正点の特定処理の動作フローを例示する図である。
【
図9】実施形態に係る補正点情報の例を説明する図である。
【
図10】実施形態に係る動きの大きさに基づく補正点の特定の例を説明する図である。
【
図11】実施形態に係る動きの大きさに基づく補正点の特定処理の動作フローを例示する図である。
【
図12】重要度情報により特定された補正点と動きの大きさに基づき特定された補正点との集合を例示する図である。
【
図13】実施形態に係る補正処理とAU検出処理の流れの例を説明する図である。
【
図14】実施形態に係るAUごとの認識モデルの生成処理の動作フローを例示する図である。
【
図15】AUごとに生成されたAU認識モデルを用いたAU認識処理の動作フローを例示する図である。
【
図16】実施形態に係る心理状態判定処理の動作フローを例示する図である。
【
図17】実施形態に係る所定期間の心理状態を示す表示画面を例示する図である。
【
図18】実施形態に係る画像処理装置を実現するためのコンピュータのハードウェア構成を例示する図である。
【発明を実施するための形態】
【0010】
以下、図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、複数の図面において対応する要素には同一の符号を付す。
【0011】
上述のように、人間の顔の動きを検出するための技術が開発されている。例えば、人間の表情を記述する手法の1つに、例えば、FACS(Facial Action Coding System)がある。FACSは、顔面筋肉の解剖学的知見を基礎としており、顔の動作が顔の動作単位であるアクションユニット(AU:Action Unit)でコード化されて記述される。様々なAUが定義されており、各AUには、AU1から始まるAU番号が割り振られている。
【0012】
図1は、例示的なアクションユニット情報100を示す図である。
図1のアクションユニット情報100では、AU番号と、そのAU番号と対応するAUの動きとが対応づけて登録されている。例えば、AU4は眉を内側に下げる動きである。これらのAUを用いることで、表情の微細な変化を記述することができる。そして、AUの変化を認識することで、心理状態を推定することができる。
【0013】
図2は、例示的な心理状態情報200を示す図である。
図2の心理状態情報200では、心理状態と、その心理状態において表情から検出されるAU番号とが対応づけて登録されている。例えば、画像に写る人物が喜んでいる場合、その人物の表情からはAU12、およびAU25が検出される傾向がある。そのため、画像に写る人物の表情からAU12およびAU25が検出された場合、画像に写る人物が喜んでいると判定することができる。そして、例えば、この様に画像に写る人物の表情に発生しているAUを検出し、検出されたAUと対応する心理状態を心理状態情報200から特定することで、画像に写る人物の心理状態を推定することが可能である。
【0014】
ところで、例えば、様々な顔の向きに対して頑健にAUを認識するために、顔の特徴点を用いて画像に写る顔に向きに応じた補正処理を行ってからAUの認識モデルに画像を入力することが行われている。
【0015】
図3は、例示的な画像からのAUの検出処理を示す図である。例えば、人物がAUの認識において好ましい向きで写っている参照画像を用意する。参照画像は、例えば、顔が傾いておらず、また、顔が正面を向いていて、所定サイズ以上の大きさで写っている画像であってよい。
【0016】
そして、例えば、
図3に示すように、顔が傾いている画像などの入力画像がAUの検出対象として入力されたとする。この場合に、まず、参照画像と入力画像とのそれぞれで顔の特徴点の検出が行われる。顔の特徴点を検出するための様々な顔ランドマーク検出手法が知られており、一例では、顔から68点の特徴点をランドマークとして検出する手法が用いられてよい。
【0017】
図4は、例示的な顔の68点の特徴点を示す図である。
図4に示すように、顔の輪郭、目、鼻、口の周辺に特徴点が定められている。なお、実施形態で利用可能な顔のランドマークとして用いる特徴点は、
図4に示す68点に限定されるものではなく、その他の数および配置の特徴点が用いられてもよい。ここでは、参照画像および入力画像において、これらの68点の特徴点を検出して用いる例を述べる。
【0018】
続いて、写っている人物の顔のスケールの違い、移動、回転の影響を減少させるように入力画像に補正処理を実行する。補正処理では、入力画像で検出された特徴点の配置を参照画像で検出された対応する特徴点の配置に合わせるように、入力画像が補正されてよい。なお、入力画像と、参照画像とで対応する特徴点とは、例えば、入力画像および参照画像の双方の画像から検出された
図4の番号が一致する特徴点であってよい。一例では、入力画像の補正にはProcrustes法が用いられてよい。
【0019】
その後、補正処理により得られた補正画像は、
図3に示すように、AUの認識モデルに入力され、補正画像において発生しているAUの検出が行われる。そして、心理状態情報200に基づいて、検出されたAUから画像に写る人物の心理状態を推定することができる。
【0020】
しかしながら、例えば、認識モデルが顔の動きの検出時に重要視している顔の部分は、検出する顔の動きによって異なり得る。例えば、AU1のように眉の動き検出する場合と、AU15のように唇の動き検出する場合とでは、AUの動きの発生を検出する上で重要な顔の部分が異なり得る。
【0021】
それにもかかわらず、例えば、
図3に示すように、様々なAUの動きの検出を共通する補正画像を用いて実行すると、AUによっては補正によりAUの検出に重要な顔の部分の動きが抑え込まれてしまったりすることがある。その結果、顔の動きの検出精度が低下することがある。そのため、顔の動きの検出精度を向上させることのできる更なる技術の提供が望まれている。
【0022】
以下で述べる実施形態では、検出対象とする顔の動きごとに、補正に用いる好ましい特徴点を特定する。そして、検出対象とする顔の動きごとに特定された好ましい特徴点を用いて検出対象とする顔の動きごとに補正画像を生成する。続いて、得られた補正画像を認識モデルに入力して検出対象とする顔の動きの検出を行う。この様に、検出対象とする顔の動きごとに個別に補正画像を生成して認識モデルに入力し、顔の動きの検出を行うため、実施形態によれば顔の動きの検出精度を向上させることができる。その結果、表情の認識精度も向上させることができる。
【0023】
なお、以下では、顔の動きとしてAUを用いる例を説明するが、実施形態はこれに限定されるものではない。例えば、別の実施形態では、その他の顔の動きが用いられてもよい。一例では、眉の動き、および口の動きというように、顔のパーツごとの動きを対象に実施形態が適用されてもよい。以下、実施形態を更に詳細に説明する。
【0024】
図5は、実施形態に係る画像処理装置500のブロック構成を例示する図である。画像処理装置500は、例えば、パーソナルコンピュータ(PC)、ノートPC、タブレット端末、サーバコンピュータなどの画像を処理する情報処理装置であってよい。そして、画像処理装置500は、実施形態に係る顔の動きの検出処理を実行してよい。
【0025】
画像処理装置500は、例えば、制御部501、記憶部502、および通信部503を含む。制御部501は、例えば、画像処理装置500の全体を制御してよい。制御部501は、例えば、検出部511、選択部512、補正部513、判定部514、および出力部515などを含み、またその他の機能部を含んでもよい。画像処理装置500の記憶部502は、例えば、アクションユニット情報100、心理状態情報200、および後述する補正点情報900などの情報を記憶していてよい。通信部503は、例えば、制御部501の指示に従って他の装置とデータを通信してよい。これらの各部の詳細および記憶部502に格納されている情報の詳細については後述する。
【0026】
続いて、顔の複数の特徴点のうちからの顔の動きと対応する補正画像の生成に用いるのに好ましい特徴点の特定について説明する。なお、以下では、補正に用いるのに好ましい点として特定された特徴点を、補正点と呼ぶことがある。
【0027】
[重要度情報による補正点の特定]
本発明者らは、検出対象とする顔の動きがあった場合に、その動きのある領域の周囲に、動きは小さいが検出対象とする顔の動きの検出に寄与する領域があることに着目した。
【0028】
例えば、認識モデルによる検出対象の顔の動きの検出に画像中のどの領域が重要であるかを示す重要度を、検出対象の動きの発生している画像上で評価することで、重要度情報を生成することができる。重要度情報には、一例では、遮蔽感度マップ(Occlusion sensitivity map)などの重要度マップを用いることができる。しかしながら、実施形態に係る重要度情報は、遮蔽感度マップに限定されるものではなく、検出対象とする顔の動きの検出における画像内の各領域の重要度を示す情報であれば、その他の手法で生成された情報であってもよい。
【0029】
図6は、例示的な遮蔽感度マップの生成を示す図である。例えば、
図6(a)に示すように、遮蔽感度マップの生成では、制御部501は、画像の一部をパッチで遮蔽して認識モデルに入力する。この時、遮蔽されたパッチの箇所が認識モデルでの認識に重要な領域であれば、出力層で正解の出力値が低下する。一方、遮蔽されたパッチの箇所が認識モデルでの認識に重要でない領域である場合、出力層で正解の出力値はあまり変化しない。
【0030】
例えば、
図6(b)および
図6(c)は、認識モデルでAU12:唇端を張り上げる動きを検出する場合のパッチの位置に応じた出力層での正解の出力値への影響を示している。AU12は、唇の動きであるため、例えば、
図6(b)に示すように、顔の目などを隠しても、認識モデルの認識結果には影響が小さく、正解の出力値の変化は小さい。一方で、例えば、
図6(c)に示すように、唇をパッチで隠してしまうと、出力層での正解の出力値が顕著に低下する。
【0031】
制御部501は、例えば、画像を走査するようにパッチを移動させながら、パッチの位置に対応づけて出力層で正解の出力値の変化を記録する。そして、制御部501は、画像内で各領域が認識モデルでの動きの検出に重要な領域であるか否かを示す重要度を、正解の出力値の低下の度合いから評価し、それに基づいて重要度情報を生成してよい。
【0032】
図6(d)は、AU12の動きが発生している画像に対して、AU12の認識モデルで作成した重要度情報を例示している。
図6(d)に示すように、顔の中であってもAU12の発生部位から大きく離れた領域では、認識対象のAU12の動きがほとんど伝搬しておらず、重要度において背景などの表情とは無関係な領域と大きな差がなく一様に低い重要度を示している(
図6の領域A)。一方、AU12は唇の動きであるため、唇の周辺の動きのある領域は高い重要度を示している(
図6の領域B)。そして、検出対象の動きの発生している重要な領域(
図6の領域B)の周辺に、動きは小さいが検出対象の動きの検出に寄与する所定範囲の重要度を有する領域がある(
図6の領域C)。実施形態では、この所定範囲の重要度を有する領域に含まれる特徴点を、検出対象の顔の動きを検出する認識モデルに入力するための補正画像の生成に用いる補正点として特定する。
【0033】
なお、
図7は、所定範囲の重要度を有する領域を、重要度のヒストグラムを用いても表した例を示す図である。
図7のヒストグラムでは、横軸に重要度がとられており、縦軸にその重要度の検出数がとられている。なお、
図7の例では、画像中で検出された最大の重要度を1.0として、重要度を正規化している。この場合に、制御部501は、例えば、第1の閾値以下で第2の閾値以上の範囲を有する所定範囲の重要度の領域を、
図6(d)の動きは小さいが検出対象の動きの検出に寄与する領域(領域C)と対応する画像領域として特定してよい。なお、所定範囲は、例えば、第2の閾値として用いる下限の重要度が0.4~0.6の範囲の値、また、第1の閾値として用いる上限の重要度が0.7~0.9の範囲の値などで上限と下限が定められていてよい。一例では、所定範囲は、0.5~0.7の範囲であってよい。この場合に、例えば、
図7において重要度が0.5未満の領域は、
図6(d)の領域Aと対応していてよく、また、
図7において重要度が0.7よりも上の領域は、
図6(d)の領域Bと対応していてよい。そして、実施形態では、制御部501は、例えば以上で述べた認識モデルによる検出対象の動きの認識に重要な領域の周囲にある所定範囲の重要度を有する領域に含まれる特徴点を、補正に用いる補正点として特定してよい。
【0034】
なお、補正点の抽出に用いる重要度の所定範囲は、一例では、以下のように設定することができる。例えば、検出対象の動きの発生している所定以上の動きのある特徴点は含まず、かつ、その周辺の動きが所定以下で小さい特徴点は含むように所定範囲の上限を定めることができる。また、背景などの表情とは無関係な領域や、検出対象の動きのある領域から離れた顔領域が除かれて、認識モデルによる検出対象の動きの検出にある程度寄与する所定以上の重要度を有する領域を含むように所定範囲の下限を設定することができる。なお、所定範囲は、例えば、検出対象の動きごとに個別に定められてよい。また、所定範囲は、例えば、以上の要件を満たす領域が抽出されるように、経験則に基づいて設定されてもよい。
【0035】
以上のように設定した所定範囲の重要度を有する領域に含まれる特徴点は、例えば、位置の動きは小さいが、その位置が検出対象の動きの検出に寄与している。そのため、これらの特徴点の位置を、参照画像での位置に合わせるように入力画像を補正することで、その内部にある重要度の高い領域での検出対象の動きが保存されるように画像が補正することができる。
【0036】
従って、以上のように所定範囲の重要度を有する領域に含まれる特徴点を補正点として特定し、補正点と対応する点を用いて補正処理を行うことで、検出対象の動きの検出に適した補正画像を生成することができる。そして、得られた補正画像を認識モデルに入力して動きの検出を実行することで、動きの検出精度を高めることができる。従って、実施形態によれば表情の認識精度を向上させることができる。なお、別な実施形態では制御部501は、例えば、第1の閾値以下の重要度の領域を、所定範囲の重要度を有する画像領域として特定してもよい。
【0037】
続いて、以上で述べた、重要度情報による補正点の特定処理の動作フローの例を説明する。
図8は、実施形態に係る重要度情報に基づく補正点の特定処理の動作フローを例示する図である。例えば、制御部501は、補正点の特定対象のAUの指定とともに、補正点の特定処理の実行指示が入力されると、
図8の動作フローを開始してよい。
【0038】
ステップ801(以降、ステップを“S”と記載し、例えば、S801と表記する)において制御部501は、補正点の特定対象のAUの発生している画像と参照画像とを読み出す。
【0039】
S802において制御部501は、補正点の特定対象のAUの発生している画像と参照画像とのそれぞれで顔領域を抽出する。
【0040】
S803において制御部501は、補正点の特定対象のAUの発生している画像と参照画像とのそれぞれで、顔領域から特徴点を検出する。
【0041】
S804において制御部501は、参照画像に基づいて、補正点の特定対象のAUの発生している画像を補正する。一例では、制御部501は、所定の特徴点の位置が、参照画像での対応する特徴点の位置に合うように、補正点の特定対象のAUの発生している画像を補正し、補正画像を生成してよい。なお、補正に用いる所定の特徴点は、一例では、発生しているAUによらず、動きや個人差の少ない特徴点であってよい。
【0042】
S805において制御部501は、認識モデルを用いて重要度情報を作成する。なお、重要度情報の作成に用いる認識モデルは、例えば、補正点の特定対象のAUの発生の有無を検出するように学習された認識モデルであってよい。一例では、認識モデルは、補正点の特定対象のAUの発生の有無をラベルした画像データを教師データとして学習を行うことで、AUごとに個別に生成された認識モデルであってよい。また、別の実施形態では認識モデルは、
図3に例示するように、様々なAUが発生している複数の画像に、その画像で発生しているAUがラベルされている教師データを用いて、画像に発生しているAUを特定するように学習された認識モデルであってもよい。
【0043】
S806において制御部501は、補正画像に対して生成した重要度情報と、補正画像から検出された特徴点とを重ね合わせる。
【0044】
S807において制御部501は、重要度情報において所定範囲の重要度を有する画像領域に含まれる特徴点を補正点として特定する。なお、所定範囲は、一例では、
図7を参照して述べたように設定されてよい。
【0045】
S808において制御部501は、補正点の特定対象のAUと対応づけて、特定した補正点を補正点情報900に登録し、補正点が登録された補正点情報900を記憶部502に記憶して、本動作フローは終了する。
【0046】
図9は、実施形態に係る補正点情報900の例を説明する図である。
図9(a)には、補正点情報900の例が示されている。補正点情報900では、AU番号と、そのAUの検出の際の補正処理で用いる補正点とが対応づけて登録されている。なお、
図6~
図8を参照して述べた、重要度情報による補正点の特定では、AUごとに個別に補正点が特定されるため、例えば、
図9(b)に示すように、異なるAUでは補正点も異なり得、AUごとに適した補正を行うことができる。
【0047】
また、重要度情報による補正点の特定では、検出対象のAUの動きのある領域の周辺領域にある特徴点が補正点として特定される。そのため、これらの補正点を参照画像での配置に合わせるように画像を補正することで、その内部にある重要度の高い領域で検出対象の動きが保存されるように画像が補正することができる。そして、得られた補正画像を認識モデルに入力して動きの検出を実行することで、動きの検出精度を高めることができる。従って、実施形態によれば表情の認識精度を向上させることができる。
【0048】
[AUの動きの発生による動きの大きさに基づく補正点の特定]
続いて、AUの動きの発生による動きの大きさが小さい特徴点を、AUごとに補正点として特定する処理について述べる。例えば、検出対象のAUに動きが発生したときに動きの小さい特徴点は、検出対象のAUの動きへの影響を抑えて補正ができると考えられるため、そのAUの検出の際に補正点として用いることが好ましい。そこで、実施形態ではAUごとに、そのAUの動きが発生しても動きが小さい特徴点を、補正に用いる補正点として特定する。
【0049】
図10は、実施形態に係るAUごとの動きの小さい特徴点の特定の例を説明する図である。例えば、補正点の特定対象のAUの動きが発生していない複数の画像を用意する。また、特定対象のAUの動きが発生していない複数の画像のそれぞれと対応する特定対象のAUの動きが発生している画像も用意する。なお、特定対象のAUの動きが発生している画像と、対応する特定対象のAUの動きが発生していない画像とは、一例では、同一人物が対象AUの動作を行った状態と、行っていない状態とで、所定の許容範囲内で同じ撮影条件下で撮影された画像であってよい。撮影条件は、例えば、被写体との撮影距離、撮影の角度、光の当たり具合などの条件を含んでよい。
【0050】
続いて、用意した対象AUの動きが発生していない画像のデータセットと、対象AUの動きが発生している画像のデータセットとのそれぞれで、特徴点の検出を行い、各特徴点の座標群を出力する。例えば、対象AUの動きが発生していない画像から抽出された68点の特徴点のそれぞれの座標を(x0i,y0i)(i=1~68)とする。また、対象AUの動きが発生している画像から抽出された68点の特徴点のそれぞれの座標を(x1i,y1i)(i=1~68)とする。
【0051】
この場合に、制御部501は、対応する画像の特徴点ごとに(x0i,y0i)の座標群と(x1i,y1i)の座標群とで座標の差分が閾値(例えば、第3の閾値)以下であるかを判定する。そして、制御部501は、座標の差分が閾値以下である特徴点を、対象AUが発生したときに動きの小さい特徴点として特定してよい。例えば、閾値として有意差を用いても良い。すなわち、制御部501は、(x0i,y0i)の座標群と(x1i,y1i)の座標群とでx座標およびy座標のいずれにおいても有意差がない場合、座標の差分が閾値以下であると判定しても良い。なお、有意差の有無は、統計学的手法を用いて判定することができ、一例では、t検定を用いて判定されてよい。なお、別の実施形態では制御部501は、(x0i,y0i)と(x1i,y1i)との座標間の距離が、発生している最大の座標間の距離に対して所定の割合以下の特徴点を、座標の差分が閾値以下である特徴点として特定してもよい。所定の割合は、一例では、10%~20%などの範囲の値であってよい。
【0052】
そして、制御部501は、例えば、以上のようにして特定された対象AUの動きが発生しても動きが小さい特徴点を、補正点として特定してよい。例えば、以上で述べたように、所定の顔の動きの発生している第1の画像に含まれる複数の特徴点のそれぞれと、第1の画像と対応する所定の顔の動きの発生していない第2の画像に含まれる複数の特徴点のそれぞれとの間の差分が第3の閾値以下である特徴点を補正点として特定することができる。
【0053】
続いて、以上で述べた、動きの大きさに基づく補正点の特定処理の動作フローの例を説明する。
【0054】
図11は、実施形態に係る動きの大きさに基づく補正点の特定処理の動作フローを例示する図である。例えば、制御部501は、動きの大きさに基づく補正点の特定処理の実行指示が入力されると、
図11の動作フローを開始してよい。
【0055】
S1101において制御部501は、補正点の特定対象AUの動きが発生している画像群と、補正点の特定対象AUに動きが発生していない画像群とを読み込む。
【0056】
S1102において制御部501は、補正点の特定対象AUの動きが発生しても動きの小さい特徴点を特定する。例えば、制御部501は、
図10で述べたように、対象AUの動きが発生していない画像と対象AUの動きが発生している画像との間で、特徴点の座標を比較することで、対象AUが発生しても動きの小さい特徴点を特定してよい。
【0057】
S1103において制御部501は、対象AUと対応づけて、動きの小さい特徴点を補正点として補正点情報900に登録し、補正点が登録された補正点情報900を記憶部502に記憶して、本動作フローは終了する。
図9を参照して述べたように、補正点情報900には、例えば、AU番号と、そのAUの検出の際の補正処理で用いる補正点とが対応づけて登録されてよい。
【0058】
なお、
図10~
図11を参照して述べた特徴点の動きの大きさに基づく補正点の特定でも、AUごとに個別に補正点が特定されるため、例えば、
図9(b)に示すように、異なるAUでは特定された補正点も異なり得る。そのため、特徴点の動きに基づき特定された補正点を用いて補正処理を行うことで、AUごとに適した補正を行うことができる。
【0059】
また、補正点情報900にAUごとに登録される補正点は、
図12に示すように、重要度情報により特定された補正点と、特徴点の動きの大きさに基づき特定された補正点との積集合であってもよい。この場合、重要度情報による補正点の特定処理と動きの大きさに基づく補正点の特定処理とにおいて共通して特定された補正点に基づいて、画像の補正処理が実行される。また、別の実施形態では、重要度情報により特定された補正点と、特徴点の動きの大きさに基づき特定された補正点とのいずれか一方が補正点情報900に登録されてもよい。更に別の実施形態では、重要度情報により特定された補正点と、特徴点の動きの大きさに基づき特定された補正点との和集合が補正点情報900に登録されてもよい。また、補正点情報900には重要度情報により特定された補正点と、特徴点の動きの大きさに基づき特定された補正点とが区別されて、個別に登録されていてもよい。
【0060】
そして、以上で述べたように、AUごとに特定された補正点に基づいて、画像の補正処理を行うことで、AUごとに適した補正を行うことができる。そのため、実施形態によればAUの検出精度を向上させることができる。以下、AUごとに特定した補正点に基づく補正処理とAUの検出処理を説明する。
【0061】
図13は、実施形態に係る補正処理とAU検出処理の流れの例を説明する図である。例えば、人物がAUの認識において好ましい向きで写っている参照画像を用意する。例えば、参照画像は、顔が傾いておらず、顔が正面を向いていて、所定サイズ以上の大きさで写っている画像であってよい。そして、例えば、
図13に示すように、顔が傾いている画像などの入力画像が表情の判定対象として入力されたとする。
【0062】
この場合に、制御部501は、参照画像と入力画像とのそれぞれで顔の特徴点を検出する。そして、制御部501は、補正点情報900からAUごとに補正点の情報を読み出し、読み出した補正点と対応する1又は複数の特徴点を特定し、特定した1又は複数の特徴点の配置を、参照画像での配置に合わせるように入力画像を補正する。それにより、制御部501は、AUごとに補正画像を生成することができる。例えば、
図13では、補正点情報900から読み出したAUごとの補正点と対応する1又は複数の特徴点を用いて、AU1用の補正画像、AU2用の補正画像、…というように、AUごとに補正画像がそれぞれ生成されている。
【0063】
そして、制御部501は、以上のように生成された各AU用の補正画像を、各AU用の認識モデルに入力して、対象AUの発生の有無を検出してよい。例えば、
図13では制御部501は、AU1用の補正画像をAU1用の認識モデルに入力し、AU1の発生の有無を判定する。また、制御部501は、AU2用の補正画像をAU2用の認識モデルに入力し、AU2の発生の有無を判定する。
【0064】
なお、個々のAU用の認識モデルは、例えば、以下のように生成することができる。まず、認識モデルを作成する対象のAUの発生の有無がラベルされている画像データを用意する。そして、制御部501は、対象のAUの発生の有無がラベルされている画像データを、対象AUと対応する補正点情報900の補正点と対応する特徴点を用いて補正して、対象AU用の補正画像を生成する。続いて、制御部501は、得られた対象AU用の補正画像を教師データとして対象AUを検出するように認識モデルの学習を行うことで、対象AU用の認識モデルを作成することができる。以下、AUごとの認識モデルの生成処理を更に説明する。
【0065】
図14は、実施形態に係るAUごとの認識モデルの生成処理の動作フローを例示する図である。例えば、制御部501は、認識モデルの生成対象のAUの指定とともに認識モデルの生成処理の実行指示が入力されると、
図14の動作フローを開始してよい。
【0066】
S1401において制御部501は、参照画像と指定された認識モデルを生成する対象AUの動き有りの画像群と対象AUの動き無しの画像群とを読み込む。
【0067】
S1402において制御部501は、読み込んだ画像から顔領域を抽出する。S1403において制御部501は、読み込んだ画像の顔領域から顔の特徴点を検出する。
【0068】
S1404において制御部501は、補正点情報900から対象AUと対応する補正点の情報を取得し、補正点と対応する1又は複数の点を検出された顔の特徴点のうちから選択する。
【0069】
S1405において制御部501は、選択した1又は複数の点を、参照画像で補正点と対応する1又は複数の特徴点の配置に合わせるように、対象AUの動き有りの画像群と対象AUの動き無しの画像群とを補正して補正画像を生成する。
【0070】
S1406において制御部501は、対象AUの動きの有無をラベルした補正画像を教師データとして用い、対象AUの動きが発生しているかを判定するように学習を行った学習済みの認識モデルを生成し、本動作フローは終了する。なお、モデルの学習は、例えば、ディープラーニング、サポートベクターマシンなどの既知の様々な機械学習の手法を用いて実施することができる。
【0071】
以上で述べたように、例えば、補正点情報900に登録されている対象AUごとの補正点に基づいて、補正点と対応する特徴点を特定し、補正点と対応する特徴点を用いて画像の補正を行う。そして、生成された補正画像を用いてモデルの学習を行うことで、対象AUの発生の有無を検出するための認識モデルを生成することができる。なお、例えば、所定範囲の重要度を有する画像領域を用いて、補正して得られた複数の補正画像を教師データとして、機械学習を実行することで、対象AUの発生の有無を検出するための認識モデルを生成してもよい。そして、各AUごとに生成された認識モデルを用いて各AUごとにAU発生の有無を検出することができる。
【0072】
図15は、AUごとに生成された認識モデルを用いたAU認識処理の動作フローを例示する図である。例えば、制御部501は、AU認識処理の実行指示が入力されると、
図15の動作フローを開始してよい。
【0073】
S1501において制御部501は、AUの発生の有無を検出する対象の画像の入力を受け付ける。例えば、制御部501は、ユーザによって指定された画像を記憶部502から読み込んでよい。
【0074】
S1502において制御部501は、入力された画像から顔領域を抽出する。そして、S1503において制御部501は、顔領域から特徴点を検出する。
【0075】
S1504において制御部501は、補正点情報900を参照し、顔領域から検出した特徴点のうちから、AUごとに補正点と対応する1または複数の特徴点を選択する。
【0076】
S1505において制御部501は、AUごとに選択した1または複数の特徴点を用いて補正処理を行ってAUごとに補正画像を生成する。
【0077】
S1506において制御部501は、AUごとに生成した補正画像を、対応するAUごとの認識モデルに入力して、AUの発生の有無を判定し、本動作フローは終了する。なお、AUごとの認識モデルは、例えば、
図14の動作フローで生成されるAUごとに生成した補正画像を用いて学習が行われた認識モデルであってよい。そして、以上のようにAUごとに特定した補正点と対応する1または複数の特徴点を用いて補正画像を生成し、AUごとに生成された認識モデルを用いてAUの発生の有無を判定するため、入力画像に発生しているAUを高い精度で検出することが可能である。そのため、実施形態によれば、表情の認識精度を向上させることができる。
【0078】
なお、以上に述べた動作フローの処理を含む実施形態に係る処理は、画像処理装置500などの1つの装置に実装されてもよいし、別の実施形態では、複数の装置による連携で実装されてもよい。例えば、サーバコンピュータと、クライアントの端末とで実施形態に係る処理が実装されてもよい。以下、画像処理装置500がサーバコンピュータとして動作し、クライアントの端末から心理状態判定処理の実行指示を受信すると、心理状態を判定する処理について例示する。
【0079】
図16は、実施形態に係る心理状態判定処理の動作フローを例示する図である。例えば、画像処理装置500の制御部501は、クライアントの端末から心理状態判定処理の実行指示を受信すると、
図16の動作フローを開始してよい。なお、画像処理装置500は、
図16の動作フローとは別の処理で、クライアントの端末から撮影装置で所定期間に撮影された心理状態の判定対象の人物の写る複数の画像を受信し、記憶部502に記憶していてよい。
【0080】
S1601において画像処理装置500の制御部501は、所定期間に撮影された判定対象の人物が写る複数の画像を読み出す。なお、所定期間は、例えば、人物の心理状態を検出する期間であってよい。一例では、制御部501は、5分~10分などの所定期間において、5秒~20秒おきなどの所定の間隔で撮影された複数の画像に対して処理を実行してよい。
【0081】
S1602において制御部501は、読み出した複数の画像にAU認識処理を実行する。AU認識処理では、制御部501は、例えば、複数の画像のそれぞれを入力画像として、
図15のAU認識処理を実行することで、複数の画像のそれぞれにおいて発生しているAUを検出してよい。
【0082】
S1603において制御部501は、複数の画像の各画像ごとに、発生している心理状態を特定する。例えば、制御部501は、画像において発生しているAUの組が当てはまる心理状態を心理状態情報200から特定して、画像に写る人物に発生している心理状態を特定してよい。一例として、画像からAU1、AU2、AU12、AU25が検出されている場合には、制御部501は、これらのAUの組と対応する心理状態:喜び、うれしい驚きを検出してよい。
【0083】
S1604において制御部501は、読み出した複数の画像において検出された心理状態の回数を心理状態ごとに集計する。
【0084】
S1605において制御部501は、例えば、集計の結果得られた画像に写る人物の心理状態を示す情報を出力し、本動作フローは終了する。例えば、制御部501は、集計した心理状態を表示するための表示情報を生成し、心理状態判定処理の実行指示を送信してきたクライアントの端末に表示情報を出力してよい。クライアントの端末は、表示情報を受信すると、例えば、クライアントの端末が備えるディスプレイなどの表示装置に、画像に写る人物の所定期間の心理状態を示す表示画面1700を表示させてよい。
【0085】
図17は、実施形態に係る所定期間の心理状態を示す表示画面1700を例示する図である。表示画面1700には、所定期間に検出された画像に写る人物の心理状態の集計結果が示されている。例えば、横軸は、所定期間に検出された喜び、怒り、驚き、…などの心理状態であり、縦軸は心理状態の検出数である。
図17の例では、所定期間に喜びと、驚き、うれしい驚きの感情が検出されており、対象人物が所定期間においてこれらの心理状態にあることを推定することができる。そして、これらの心理状態の情報は、例えば、判定対象の人物の心理状態が安定しているかなどを判定したり、判定対象の人物の業務管理や、診断などに利用したりすることができる。
【0086】
以上において、実施形態を例示したが、実施形態はこれに限定されるものではない。例えば、上述の動作フローは例示であり、実施形態はこれに限定されるものではない。可能な場合には、動作フローは、処理の順番を変更して実行されてもよく、別に更なる処理を含んでもよく、または、一部の処理が省略されてもよい。例えば、重要度情報に基づいて特定された補正点を、補正処理で補正に用いる1または複数の特徴点の特定に利用しない場合には、
図8の動作フローは省略されてもよい。また、動きの大きさに基づき特定された補正点を、補正処理で補正に用いる1または複数の特徴点の特定に利用しない場合には、
図11の動作フローは省略されてもよい。
【0087】
また、上述の実施形態では、心理状態の検出対象として人間を例に説明を行っているが、実施形態はこれに限定されるものではない。例えば、心理状態の検出対象は、犬、猫などのペット、およびその他の動物であってもよい。
【0088】
また、上述の実施形態では、顔の動きとしてAU単位で動きを検出する例を述べているが、実施形態は、AU単位での動きの検出に限定されるものではない。例えば、別の実施形態では、眉の動き、口の動きといった部位ごとに顔の動きが検出されてもよい。そして、この場合に、部位ごとに動きを検出する認識モデルを用いて重要度情報を生成したり、動きの少ない特徴点を特定したりして補正点が特定されてもよい。例えば、
図1のアクションユニット情報100では、AU1、AU2、AU4は眉の動きに関するAUであるため、制御部501は、これらの複数のAUをまとめた動きに対して補正点を特定してもよい。
【0089】
また、上述の実施形態では、参照画像を用いて、補正点と対応する入力画像の1または複数の特徴点が、補正点と対応する参照画像での1または複数の特徴点の配置に合うように補正を行う例を述べているが、実施形態はこれに限定されるものではない。別の実施形態では補正の際に参照画像は用いられなくてもよい。例えば、制御部501は、補正点と対応する入力画像の1または複数の特徴点が、予め参照画像からAUごとの特定されている補正点と対応する所定の特徴点の座標などの配置に合うように入力画像を補正してもよい。
【0090】
また、上述の実施形態では、AUの発生している1つの画像に対して生成した重要度情報に基づいてそのAUと対応する補正点を特定する例を述べているが、実施形態はこれに限定されるものではない。別の実施形態では、或るAUの発生している複数の画像から生成した複数の重要度情報に基づいてそのAUと対応する補正点が特定されてもよい。
【0091】
更には、上述の実施形態では、全てのAUの検出に上述の実施形態を適用する例を述べているが、実施形態はこれに限定されるものではない。別の実施形態では、複数のAUのうちの一部のAUの検出に上述の実施形態を適用し、残りのAUの検出には、別の手法が用いられてもよい。
【0092】
また、上述の実施形態では、認識モデルの出力層の正解の出力値に基づいて重要度を評価する例を述べているが、別の実施形態では、認識モデルの出力層の正解の出力値が、そのまま重要度を表す指標として用いられてもよい。
【0093】
また、上述の実施形態では、第1の閾値以下で第2の閾値以上の範囲を有する所定範囲の重要度の領域から補正点を特定して補正点情報900として記憶部502に記憶し、補正処理で参照する例を述べているが、実施形態はこれに限定されるものではない。例えば、別の実施形態では制御部501は、重要度情報が示す第1の閾値以下の重要度を有する画像領域に対応する1又は複数の点を、入力画像から検出された複数の特徴点のうちから選択してもよい。
【0094】
なお、上述の実施形態において、例えば、
図15のS1503の処理では、画像処理装置500の制御部501は、検出部511として動作する。また、例えば、
図15のS1504の処理では、画像処理装置500の制御部501は、選択部512として動作する。例えば、
図15のS1505の処理では、画像処理装置500の制御部501は、補正部513として動作する。例えば、
図15のS1506の処理では、画像処理装置500の制御部501は、判定部514として動作する。例えば、
図16のS1605の処理では、画像処理装置500の制御部501は、出力部515として動作する。
【0095】
図18は、実施形態に係る画像処理装置500を実現するためのコンピュータ1800のハードウェア構成を例示する図である。
図18の画像処理装置500を実現するためのハードウェア構成は、例えば、プロセッサ1801、メモリ1802、記憶装置1803、読取装置1804、通信インタフェース1806、および入出力インタフェース1807を備える。なお、プロセッサ1801、メモリ1802、記憶装置1803、読取装置1804、通信インタフェース1806、入出力インタフェース1807は、例えば、バス1808を介して互いに接続されている。
【0096】
プロセッサ1801は、例えば、シングルプロセッサであっても、マルチプロセッサやマルチコアであってもよい。プロセッサ1801は、メモリ1802を利用して例えば上述の動作フローの手順を記述したプログラムを実行することにより、上述した制御部501の一部または全部の機能を提供する。例えば、画像処理装置500のプロセッサ1801は、記憶装置1803に格納されているプログラムを読み出して実行することで、検出部511、選択部512、補正部513、判定部514、および出力部515として動作する。
【0097】
メモリ1802は、例えば半導体メモリであり、RAM領域およびROM領域を含んでよい。記憶装置1803は、例えばハードディスク、フラッシュメモリ等の半導体メモリ、または外部記憶装置である。なお、RAMは、Random Access Memoryの略称である。また、ROMは、Read Only Memoryの略称である。
【0098】
読取装置1804は、プロセッサ1801の指示に従って着脱可能記憶媒体1805にアクセスする。着脱可能記憶媒体1805は、例えば、半導体デバイス、磁気的作用により情報が入出力される媒体、光学的作用により情報が入出力される媒体などにより実現される。なお、半導体デバイスは、例えば、USB(Universal Serial Bus)メモリである。また、磁気的作用により情報が入出力される媒体は、例えば、磁気ディスクである。光学的作用により情報が入出力される媒体は、例えば、CD-ROM、DVD、Blu-ray Disc等(Blu-rayは登録商標)である。CDは、Compact Discの略称である。DVDは、Digital Versatile Diskの略称である。
【0099】
なお、上述の記憶部502は、例えばメモリ1802、記憶装置1803、および着脱可能記憶媒体1805を含んでよい。例えば、画像処理装置500の記憶装置1803には、アクションユニット情報100、心理状態情報200、および補正点情報900が格納されている。
【0100】
通信インタフェース1806は、プロセッサ1801の指示に従って、他の装置と通信する。一例では、通信インタフェース1806は、有線または無線通信で画像を撮影するカメラなどの撮影装置や、クライアントの端末などの他の装置とデータを送受信してよい。通信インタフェース1806は、上述の通信部503の一例である。
【0101】
入出力インタフェース1807は、例えば、入力装置および出力装置との間のインタフェースであってよい。入力装置は、例えばユーザからの指示を受け付けるキーボード、マウス、タッチパネルなどのデバイスである。出力装置は、例えばディスプレイなどの表示装置、およびスピーカなどの音声装置である。
【0102】
実施形態に係る各プログラムは、例えば、下記の形態で画像処理装置500に提供される。
(1)記憶装置1803に予めインストールされている。
(2)着脱可能記憶媒体1805により提供される。
(3)プログラムサーバなどのサーバから提供される。
【0103】
なお、
図18を参照して述べた画像処理装置500を実現するためのハードウェア構成は、例示であり、実施形態はこれに限定されるものではない。例えば、上述の構成の一部が、削除されてもよく、また、新たな構成が追加されてもよい。また、別の実施形態では、例えば、上述の制御部501の一部または全部の機能がFPGA、SoC、ASIC、およびPLDなどによるハードウェアとして実装されてもよい。なお、FPGAは、Field Programmable Gate Arrayの略称である。SoCは、System-on-a-chipの略称である。ASICは、Application Specific Integrated Circuitの略称である。PLDは、Programmable Logic Deviceの略称である。
【0104】
以上において、いくつかの実施形態が説明される。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態および代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨および範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態が実施され得ることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して、または実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。
【符号の説明】
【0105】
100 アクションユニット情報
200 心理状態情報
500 画像処理装置
501 制御部
502 記憶部
503 通信部
511 検出部
512 選択部
513 補正部
514 判定部
515 出力部
900 補正点情報
1700 表示画面
1800 コンピュータ
1801 プロセッサ
1802 メモリ
1803 記憶装置
1804 読取装置
1805 着脱可能記憶媒体
1806 通信インタフェース
1807 入出力インタフェース
1808 バス