(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024017313
(43)【公開日】2024-02-08
(54)【発明の名称】学習プログラム、識別プログラム、学習方法および識別方法
(51)【国際特許分類】
G06V 40/16 20220101AFI20240201BHJP
G06T 7/00 20170101ALI20240201BHJP
G06V 10/40 20220101ALI20240201BHJP
G06T 7/20 20170101ALI20240201BHJP
【FI】
G06V40/16 B
G06T7/00 350B
G06V10/40
G06T7/20 300B
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022119862
(22)【出願日】2022-07-27
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】川村 亮介
(72)【発明者】
【氏名】村瀬 健太郎
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096JA11
5L096KA04
(57)【要約】
【課題】AUの識別精度を高める。
【解決手段】実施形態の学習プログラムは、取得する処理と、分類する処理と、算出する処理と、学習する処理とをコンピュータに実行させる。取得する処理は、人物の顔を含む複数の画像を取得する。分類する処理は、顔の特定の部位の動きに関連するAUの発生の有無と、AUの発生有りの画像に対するオクルージョンの有無との組み合わせとに基づいて、複数の画像を分類する。算出する処理は、分類された複数の画像のそれぞれを機械学習モデルに入力して画像の特徴量を算出する。学習する処理は、AUの発生有りの画像と、AUの発生有りの画像に対するオクルージョン有りの画像との特徴量間の第1の距離が小さくなるとともに、AUの発生有りの画像に対するオクルージョン有りの画像と、AUの発生なしの画像に対するオクルージョン有りの画像との特徴量間の第2の距離が大きくなるように機械学習モデルを学習する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
人物の顔を含む複数の画像を取得し、
前記顔の特定の部位の動きに関連するアクションユニットの発生の有無と、前記アクションユニットの発生有りの画像に対するオクルージョンの有無との組み合わせとに基づいて、前記複数の画像を分類し、
前記分類された複数の画像のそれぞれを機械学習モデルに入力して前記画像の特徴量を算出し、
前記アクションユニットの発生有りの画像と、当該アクションユニットの発生有りの画像に対するオクルージョン有りの画像との特徴量間の第1の距離が小さくなるとともに、前記アクションユニットの発生有りの画像に対するオクルージョン有りの画像と、前記アクションユニットの発生なしの画像に対するオクルージョン有りの画像との特徴量間の第2の距離が大きくなるように前記機械学習モデルを学習する、
処理をコンピュータに実行させる学習プログラム。
【請求項2】
前記取得する処理は、前記アクションユニットの発生の有無を示す正解情報とともに入力された画像に基づいて、前記アクションユニットの発生の有無が付与された人物の複数の顔画像を記憶する記憶部を参照し、前記入力された画像におけるアクションユニットの発生の有無とは当該アクションユニットの発生の有無が逆の画像を取得する、
ことを特徴とする請求項1に記載の学習プログラム。
【請求項3】
前記取得する処理は、前記入力された画像および前記取得した画像に基づいて、当該画像の一部を隠蔽してオクルージョン有りの画像を取得する、
ことを特徴とする請求項2に記載の学習プログラム。
【請求項4】
前記取得する処理は、前記アクションユニットに関する動作箇所の少なくとも一部を隠蔽する、
ことを特徴とする請求項3に記載の学習プログラム。
【請求項5】
前記学習する処理は、前記第1の距離をd
o、前記第2の距離をd
au、前記第1の距離に関するマージンパラメータをm
o、前記第2の距離に関するマージンパラメータをm
auとしたときの次の式(1)の損失関数Lossに基づいて前記機械学習モデルを学習する、
【数1】
ことを特徴とする請求項1に記載の学習プログラム。
【請求項6】
前記アクションユニットの発生の有無を示す正解情報が付与された画像を前記機械学習モデルに入力して得られた特徴量を入力した場合に、前記正解情報が示すアクションユニットの発生の有無を出力するように識別モデルを学習する処理をさらにコンピュータに実行させる、
ことを特徴とする請求項1に記載の学習プログラム。
【請求項7】
人物の顔の特定の部位の動きに関するアクションユニットの発生の有無と、前記アクションユニットの発生有りの画像に対するオクルージョンの有無との組み合わせとに基づいて分類された複数の画像のそれぞれを機械学習モデルに入力して前記画像の特徴量を算出し、前記アクションユニットの発生有りの画像と、当該アクションユニットの発生有りの画像に対するオクルージョン有りの画像との特徴量間の距離が小さくなるとともに、前記アクションユニットの発生有りの画像に対するオクルージョン有りの画像と、前記アクションユニットの発生なしの画像に対するオクルージョン有りの画像との特徴量間の距離が大きくなるように学習された前記機械学習モデルを取得し、
人物の顔を含む識別対象の画像を、取得した前記機械学習モデルに入力して得られた特徴量に基づいて、前記識別対象の画像に含まれる人物の顔における特定のアクションユニットの発生の有無を識別する、
処理をコンピュータに実行させる識別プログラム。
【請求項8】
人物の顔を含む複数の画像を取得し、
前記顔の特定の部位の動きに関連するアクションユニットの発生の有無と、前記アクションユニットの発生有りの画像に対するオクルージョンの有無との組み合わせとに基づいて、前記複数の画像を分類し、
前記分類された複数の画像のそれぞれを機械学習モデルに入力して前記画像の特徴量を算出し、
前記アクションユニットの発生有りの画像と、当該アクションユニットの発生有りの画像に対するオクルージョン有りの画像との特徴量間の第1の距離が小さくなるとともに、前記アクションユニットの発生有りの画像に対するオクルージョン有りの画像と、前記アクションユニットの発生なしの画像に対するオクルージョン有りの画像との特徴量間の第2の距離が大きくなるように前記機械学習モデルを学習する、
処理をコンピュータが実行する学習方法。
【請求項9】
人物の顔の特定の部位の動きに関するアクションユニットの発生の有無と、前記アクションユニットの発生有りの画像に対するオクルージョンの有無との組み合わせとに基づいて分類された複数の画像のそれぞれを機械学習モデルに入力して前記画像の特徴量を算出し、前記アクションユニットの発生有りの画像と、当該アクションユニットの発生有りの画像に対するオクルージョン有りの画像との特徴量間の距離が小さくなるとともに、前記アクションユニットの発生有りの画像に対するオクルージョン有りの画像と、前記アクションユニットの発生なしの画像に対するオクルージョン有りの画像との特徴量間の距離が大きくなるように学習された前記機械学習モデルを取得し、
人物の顔を含む識別対象の画像を、取得した前記機械学習モデルに入力して得られた特徴量に基づいて、前記識別対象の画像に含まれる人物の顔における特定のアクションユニットの発生の有無を識別する、
処理をコンピュータが実行する識別方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、学習プログラム、識別プログラム、学習方法および識別方法に関する。
【背景技術】
【0002】
近年の画像処理技術の発達により、人間の心理状態の機微な変化を表情(驚き、喜び、哀しみ等)から検知し、心理状態の変化に応じた処理を行うシステムの開発が進んでいる。この表情検知に用いるための表情の変化を記述する代表的な手法の1つとして、AUs(Action Units)を用いた表情の記述がある(表情は複数のAUの組み合わせを含む)。
【0003】
AUは、表情を顔の部位と表情筋に基づいて分解して定量化した顔の動きの動作単位であり、AU1(眉の内側を上げる)、AU4(眉を下げる)、AU12(唇両端を引き上げる)等、表情筋の動きに対応して数十種定義されている。表情検知時には、検知対象の顔画像よりこれらAUのOccurrence(発生の有無)を識別し、発生したAUをもとに微細な表情の変化を認識する。
【0004】
顔画像から各AUの発生の有無を識別する従来技術としては、機械学習による認識モデルに顔画像のデータを入力して得られた出力に基づいて各AUの発生の有無を識別するものが知られている。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】JAA-Net: Joint Facial Action Unit Detection and Face Alignment via Adaptive Attention
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記の従来技術では、顔画像の一部に髪の毛、マスク等による隠蔽(以下、「オクルージョン」とも称する)があると、各AUの発生の有無の識別精度が悪くなるという問題がある。例えば、顔画像において、あるAUの発生部位が一部隠蔽された場合、その部位が動いたか否かの認識は困難なものとなる。一例として、眉間の一部が髪の毛で隠れた場合には、AU4(眉を下げる)等の眉間の動きは認識しにくくなる。
【0007】
1つの側面では、AUの識別精度を高めることができる学習プログラム、識別プログラム、学習方法および識別方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
1つの案では、学習プログラムは、取得する処理と、分類する処理と、算出する処理と、学習する処理とをコンピュータに実行させる。取得する処理は、人物の顔を含む複数の画像を取得する。分類する処理は、顔の特定の部位の動きに関連するアクションユニットの発生の有無と、アクションユニットの発生有りの画像に対するオクルージョンの有無との組み合わせとに基づいて、複数の画像を分類する。算出する処理は、分類された複数の画像のそれぞれを機械学習モデルに入力して画像の特徴量を算出する。学習する処理は、アクションユニットの発生有りの画像と、アクションユニットの発生有りの画像に対するオクルージョン有りの画像との特徴量間の第1の距離が小さくなるとともに、アクションユニットの発生有りの画像に対するオクルージョン有りの画像と、アクションユニットの発生なしの画像に対するオクルージョン有りの画像との特徴量間の第2の距離が大きくなるように機械学習モデルを学習する。
【発明の効果】
【0009】
AUの識別精度を高めることができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、顔画像の一例を説明する説明図である。
【
図2】
図2は、特徴量算出を説明する説明図である。
【
図3】
図3は、特徴量算出の学習を説明する説明図である。
【
図4】
図4は、特徴量からの識別学習を説明する説明図である。
【
図5】
図5は、第1の実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
【
図6】
図6は、第1の実施形態にかかる情報処理装置の動作例を示すフローチャートである。
【
図7】
図7は、第2の実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
【
図8】
図8は、第2の実施形態にかかる情報処理装置の動作例を示すフローチャートである。
【
図9】
図9は、コンピュータ構成の一例を説明する説明図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して、実施形態にかかる学習プログラム、識別プログラム、学習方法および識別方法を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する学習プログラム、識別プログラム、学習方法および識別方法は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【0012】
[表情認識システム]
本実施にかかる表情認識システムの全体構成について説明をする。表情認識システムは、複数のカメラと、映像データの解析を実行する情報処理装置とを有する。また、情報処理装置は、カメラで撮影された人物の顔画像から、表情認識モデルを用いて、人物の表情を認識する。表情認識モデルは、人物の特徴量の一例である表情に関する表情情報を生成する機械学習モデルの一例である。具体的には、表情認識モデルは、表情を顔の部位と表情筋に基づいて分解して定量化する手法であるAU(Action Unit:アクションユニット)を推定する機械学習モデルである。この表情認識モデルは、画像データの入力に応じて、表情を特定するために設定されるAU1からAU28の各AUの発生強度(例えば5段階評価)で表現した「AU1:2、AU2:5、AU4:1、・・・」のような表情認識結果を出力する。
【0013】
表情認識ルールは、表情認識モデルの出力結果を用いて表情を認識するためのルールである。
図10は、表情認識ルールの一例を示す図である。
図10に示すように、表情認識ルールは、「表情」と「推定結果」を対応付けて記憶する。「表情」は、認識対象の表情であり、「推定結果」は、各表情に該当するAU1からAU28の各AUの強度である。
図10の例では、「AU1が強度2、AU2が強度5、AU3が強度0・・・」の場合は表情「笑顔」と認識されることを示している。なお、表情認識ルールは、管理者等により予め登録されたデータである。
【0014】
(実施形態の概要)
図1は、顔画像の一例を説明する説明図である。
図1に示すように、顔画像100、101は、人物の顔110を含む画像である。顔画像100の顔110のように、顔面に対する隠蔽がない場合(オクルージョン無し)は、眉間にしわがよる(AU04)について、その発生の有無を正しく識別することができる。
【0015】
これに対し、顔画像101のように、顔110の髪111により眉間の一部が隠されている場合(オクルージョン有り)は、オクルージョンによって眉間部分の皮膚のしわが見えにくくなり、例えば髪111のエッジがしわと誤認識されたりすることがある。したがって、従来技術による認識モデルでは、眉間部分にオクルージョンが有る場合、眉間にしわがよる(AU04)について、その発生の有無を正しく識別することが困難になる。
【0016】
図2は、特徴量算出を説明する説明図である。
図2に示すように、実施形態にかかる情報処理装置では、いくつかのパターンに分類された顔画像100a、100b、100cのそれぞれを特徴量算出モデルM1に入力し、各画像に関する特徴量(第1の特徴量120a、第2の特徴量120b、第3の特徴量120c)を算出する。なお、以下の説明において、各画像に関する特徴量を特に区別しない場合は、特徴量120と称するものとする。
【0017】
ここで、特徴量算出モデルM1は、入力した画像に対してその画像に関する特徴量120を算出して出力する機械学習モデルである。この特徴量算出モデルM1には、GMCNN(Generative Multi-column Convolutional Neural Networks)やGAN(Generative Adversarial Networks)等のニューラルネットワークが適用できる。この特徴量算出モデルM1に入力される画像は、静止画像であってもよいし、時系列順の画像列であってもよい。また、特徴量算出モデルM1が算出する特徴量120については、画像に含まれる顔の表情筋の動きなどを示すベクトル情報、各AUのIntensity(発生強度)など、入力した画像の特徴を示す情報であればいずれであってもよい。
【0018】
顔画像100aは、唇両端を引き上げる(AU15)という動作単位(AU)が顔110に生じている画像である(オクルージョンは生じていない)。この顔画像100aを特徴量算出モデルM1に入力して算出された特徴量が、第1の特徴量120aである。なお、実施形態では、唇両端を引き上げる(AU15)の発生の有無を例示しているが、AUについてはAU15に限定するものではなく任意である。
【0019】
顔画像100bは、唇両端を引き上げる(AU15)というAUが生じている顔110において、口元の遮蔽物112によりオクルージョンが生じている画像である。この顔画像100bを特徴量算出モデルM1に入力して算出された特徴量が、第2の特徴量120bである。
【0020】
顔画像100cは、唇両端を引き上げる(AU15)というAUが生じていない顔110において、口元の遮蔽物112によりオクルージョンが生じている画像である。この顔画像100cを特徴量算出モデルM1に入力して算出された特徴量が、第3の特徴量120cである。なお、以下の説明において、顔画像100a、100b、100cを特に区別しない場合は、顔画像100と称するものとする。
【0021】
実施形態にかかる情報処理装置は、AUの発生有り(オクルージョン無し)の顔画像100aの第1の特徴量120aと、AUの発生有りの顔画像100aに対するオクルージョン有りの顔画像100bの第2の特徴量120bとの間の第1の距離(do)を求める。ついで、実施形態にかかる情報処理装置は、第1の距離(do)が小さくなるように、特徴量算出モデルM1の学習を行う。
【0022】
また、実施形態にかかる情報処理装置は、AUの発生有りの顔画像100aに対するオクルージョン有りの顔画像100bの第2の特徴量120bと、AUの発生無しの画像に対するオクルージョン有りの顔画像100cの第3の特徴量120cとの間の第2の距離(dau)を求める。ついで、実施形態にかかる情報処理装置は、第2の距離(dau)が大きくなるように、特徴量算出モデルM1の学習を行う。
【0023】
例えば、情報処理装置は、顔画像100をニューラルネットワークに入力することで、ニューラルネットワークからの特徴量を取得する。そして、情報処理装置は、取得した特徴量において、正解データとの誤差が小さくなるように、ニューラルネットワークのパラメータを変更した機械学習モデルを生成する。第1の距離(do)が小さくなるとともに、第2の距離(dau)が大きくなるように特徴量算出モデルM1を学習する。
【0024】
図3は、特徴量算出の学習を説明する説明図である。
図3に示すように、実施形態にかかる情報処理装置は、第1の距離(d
o)が小さくなるとともに、第2の距離(d
au)が大きくなるように特徴量算出モデルM1を学習することで、特徴量算出モデルM1が出力する特徴量に遮蔽物112によるオクルージョンの影響が及ぶことを軽減することができる。
【0025】
例えば、AUの発生有りの顔画像100a、100bを学習後の特徴量算出モデルM1に入力した場合には、オクルージョンの有無による差異が特徴量に生じにくくなる。また、ともにオクルージョン有りであるがAUの発生の有無が異なる顔画像100b、100cを学習後の特徴量算出モデルM1に入力した場合には、AUの発生の有無による差異が特徴量に生じやすくなる。
【0026】
なお、実施形態にかかる情報処理装置は、第1の距離(do)が小さくなるとともに、第2の距離(dau)が大きくなる特徴量算出モデルM1の学習については、次の式(1)の損失関数(Loss)に基づいて行う。ここで、mo、mauは、それぞれ第1の距離(do)、第2の距離(dau)に関するマージンパラメータである。このマージンパラメータは、損失関数(Loss)の演算時における距離のマージンを調整するものであり、例えばユーザが任意に設定した設定値とする。
【0027】
【0028】
式(1)の損失関数(Loss)では、第1の距離(do)が大きく、互いにAUの発生有りであってもオクルージョンの有無で特徴量間に差が生じてしまっている場合はロスが大きくなる。また、式(1)の損失関数(Loss)では、第2の距離(dau)が小さく、互いにAUの発生の有無が異なるが、オクルージョンにより特徴量間に差が生じていない場合にはロスが大きくなる。
【0029】
また、実施形態にかかる情報処理装置は、上記の特徴量算出モデルM1にAUの発生の有無を示す正解情報が付与された画像を入力して得られた特徴量をもとに、AUの発生の有無を識別する識別モデルを学習する。この識別モデルは、特徴量算出モデルM1とは別のニューラルネットワークによる機械学習モデルであってもよいし、特徴量算出モデルM1の後段に配置された識別層であってもよい。
【0030】
図4は、特徴量からの識別学習を説明する説明図である。
図4に示すように、実施形態にかかる情報処理装置は、AUの発生の有無を示す正解情報が付与された顔画像100を学習済みの特徴量算出モデルM1に入力して特徴量120を得る。ここで、正解情報は、各AUの発生の有無を示す配列(AU1,AU2,…)等である。例えば、配列(1,0,…)が正解情報として顔画像100に付与されている場合、顔画像100において、AU1の発生有りが示されている。
【0031】
実施形態にかかる情報処理装置は、特徴量120を識別モデルM2に入力した場合、正解情報が示すAUの発生の有無に対応した値を識別モデルM2が出力するように識別モデルM2のパラメータをアップデートすることで、識別モデルM2の学習を行う。実施形態にかかる情報処理装置は、このように学習した特徴量算出モデルM1、識別モデルM2を用いることで、識別対象の顔画像より、その顔におけるAUの発生の有無を識別することができる。
【0032】
例えば、情報処理装置は、特徴量120をニューラルネットワークに入力することで、ニューラルネットワークからのAUの発生の有無を示す特徴量を取得する。そして、情報処理装置は、取得した特徴量において、正解データとの誤差が小さくなるように、ニューラルネットワークのパラメータを変更した機械学習モデルを生成する。
【0033】
(第1の実施形態)
図5は、第1の実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
図5に示すように、情報処理装置1は、画像入力部11、顔領域抽出部12、部分隠蔽画像生成部13、AU比較画像生成部14、画像データベース15、画像セット生成部16、特徴量算出部17、距離算出部18、距離学習実行部19、AU認識学習実行部20および識別部21を有する。
【0034】
画像入力部11は、通信回線等を介して外部より画像の入力を受け付ける処理部である。具体的には、画像入力部11は、特徴量算出モデルM1、識別モデルM2の学習時には学習元となる画像とAUの発生の有無を示す正解情報の入力を受け付ける。また、画像入力部11は、識別時には識別対象となる画像の入力を受け付ける。
【0035】
顔領域抽出部12は、画像入力部11が受け付けた画像に含まれる顔領域を抽出する処理部である。顔領域抽出部12は、公知の顔認識処理により、画像入力部11が受け付けた画像から顔領域を特定し、特定した顔領域を顔画像100とする。ついで、顔領域抽出部12は、特徴量算出モデルM1、識別モデルM2の学習時には顔画像100を部分隠蔽画像生成部13、AU比較画像生成部14および画像セット生成部16に出力する。また、顔領域抽出部12は、識別時には顔画像100を識別部21に出力する。
【0036】
部分隠蔽画像生成部13は、顔領域抽出部12およびAU比較画像生成部14より出力された顔画像100(オクルージョン無し)について一部分を隠蔽したオクルージョン有りの画像(顔画像100b、100c)を生成する処理部である。具体的には、部分隠蔽画像生成部13は、オクルージョン無しの顔画像100に対し、正解情報として示されたAUの発生の有りの動作箇所の少なくとも一部を隠すようにマスキングした画像を生成する。ついで、部分隠蔽画像生成部13は、生成した画像(オクルージョン有りの画像)を画像セット生成部16へ出力する。
【0037】
例えば、正解情報として唇両端を引き上げる(AU15)ことが示されている場合、部分隠蔽画像生成部13は、AU15に対応した動作箇所である口周りの一部を隠すようにマスキングした画像を生成する。他のAUに対応する動作箇所についても同様である。例えば、正解情報として眉の内側を上げる(AU1)ことが示されている場合、部分隠蔽画像生成部13は、AU1に対応した動作箇所である眉の一部を隠すようにマスキングした画像を生成する。
【0038】
なお、マスキングについては、動作箇所の一部をマスクするものに限定するものではなく、動作箇所以外をマスクしてもよい。例えば、部分隠蔽画像生成部13は、顔画像100の全体領域に対してランダムに指定した一部の領域をマスクしてもよい。
【0039】
AU比較画像生成部14は、顔領域抽出部12より出力された顔画像100について、正解情報が示すAUの発生の有無とは逆の画像を生成する処理部である。具体的には、AU比較画像生成部14は、AUの発生の有無が付与された人物の複数の顔画像を記憶する画像データベース15を参照し、正解情報が示すAUの発生の有無とは逆の画像を取得する。AU比較画像生成部14は、取得した画像を部分隠蔽画像生成部13および画像セット生成部16へ出力する。
【0040】
ここで、画像データベース15は、複数の顔画像を格納するデータベースである。画像データベース15に格納された顔画像それぞれには、各AUの発生の有無を示す情報(例えば各AUの発生の有無を示す配列(AU1,AU2,…))が付与されている。
【0041】
AU比較画像生成部14は、この画像データベース15を参照し、例えばAU1の発生有りとする配列(1,0,…)が正解情報である場合、AU1の発生無し(0,*(任意),…)に該当する顔画像を取得する。これにより、AU比較画像生成部14は、入力された学習元となる顔画像100に対して、AUの発生の有無が逆となる画像を得る。
【0042】
すなわち、画像入力部11、顔領域抽出部12、部分隠蔽画像生成部13およびAU比較画像生成部14は、人物の顔を含む複数の画像を取得する取得部の一例である。
【0043】
画像セット生成部16は、顔領域抽出部12、部分隠蔽画像生成部13およびAU比較画像生成部14から出力された顔画像(顔画像100a、100b、100c)について、AUの発生の有無と、AUの発生有りの画像に対するオクルージョンの有無とを組み合わせたいずれかのパターンに分類した画像セットを生成する処理部である。すなわち、画像セット生成部16は、複数の画像のそれぞれを分類する分類部の一例である。
【0044】
具体的には、画像セット生成部16は、第1の距離(do)と、第2の距離(dau)とを得るための画像セット(顔画像100a、100b、100c)に分類する。
【0045】
一例として、画像セット生成部16は、AU有りの正解情報が付与された入力画像について顔領域抽出部12より出力された顔画像100a、顔画像100aに対するマスキングの後に部分隠蔽画像生成部13より出力された顔画像100b、および、顔画像100aとはAUの発生の有無が逆となる画像としてAU比較画像生成部14より生成され、部分隠蔽画像生成部13によるマスキングの後に出力された顔画像100cの3種の画像を組み合わせる。
【0046】
なお、画像セット生成部16は、第1の距離(do)を得るための画像セット(顔画像100a、100b)と、第2の距離(dau)を得るための画像セット(顔画像100b、100c)とに分類してもよい。
【0047】
特徴量算出部17は、画像セット生成部16が生成した画像セットの各画像に関する特徴量120を算出する処理部である。具体的には、特徴量算出部17は、画像セットの各画像を特徴量算出モデルM1に入力することで、特徴量算出モデルM1からの出力(特徴量120)を得る。
【0048】
距離算出部18は、特徴量算出部17が算出した画像セットの各画像に関する特徴量120をもとに、第1の距離(do)と、第2の距離(dau)とを算出する処理部である。具体的には、距離算出部18は、顔画像100a、100bを組み合わせた画像セットによる特徴量をもとに、第1の距離(do)を算出する。同様に、距離算出部18は、顔画像100b、100cを組み合わせた画像セットによる特徴量をもとに、第2の距離(dau)を算出する。
【0049】
距離学習実行部19は、距離算出部18が算出した第1の距離(do)と、第2の距離(dau)とをもとに、第1の距離(do)が小さくなるとともに、第2の距離(dau)が大きくなるように特徴量算出モデルM1を学習する処理部である。具体的には、距離学習実行部19は、上述した式(1)の損失関数におけるロスを小さくするように、逆誤差伝搬法等の公知の手法を用いて特徴量算出モデルM1のパラメータを調整する。
【0050】
距離学習実行部19は、学習後の特徴量算出モデルM1に関するパラメータ等を記憶装置(図示しない)に格納する。よって、識別時において、識別部21は、記憶装置に格納された情報を参照することで、距離学習実行部19による学習後の特徴量算出モデルM1を得ることができる。
【0051】
AU認識学習実行部20は、AUの発生の有無を示す正解情報と、特徴量算出部17により算出された特徴量120とをもとに、識別モデルM2の学習を行う処理部である。具体的には、AU認識学習実行部20は、特徴量120を識別モデルM2に入力した場合、正解情報が示すAUの発生の有無に対応した値を識別モデルM2が出力するように識別モデルM2のパラメータをアップデートする。
【0052】
AU認識学習実行部20は、学習後の識別モデルM2に関するパラメータ等を記憶装置(図示しない)に格納する。よって、識別時において、識別部21は、記憶装置に格納された情報を参照することで、AU認識学習実行部20による学習後の識別モデルM2を得ることができる。
【0053】
識別部21は、識別時において、顔領域抽出部12が識別対象となる画像より抽出した顔画像100をもとに、AUの発生の有無を識別する処理部である。
【0054】
具体的には、識別部21は、記憶装置に格納された情報を参照して特徴量算出モデルM1および識別モデルM2に関するパラメータを得ることで、特徴量算出モデルM1および識別モデルM2を構築する。ついで、識別部21は、顔領域抽出部12が抽出した顔画像100を特徴量算出モデルM1に入力し、顔画像100に関する特徴量120を得る。ついで、識別部21は、得られた特徴量120を識別モデルM2に入力することで、AUの発生の有無を示す情報を得る。識別部21は、このようにして得られた識別結果(AUの発生の有無)を、例えば表示装置などに出力する。
【0055】
図6は、第1の実施形態にかかる情報処理装置1の動作例を示すフローチャートである。
図6に示すように、処理が開始されると、画像入力部11は、学習元となる画像(正解情報を含む)の入力を受け付ける(S11)。
【0056】
ついで、顔領域抽出部12は、入力された画像に対して顔認識処理を施すことで顔周辺領域を抽出する(S12)。ついで、部分隠蔽画像生成部13は、顔周辺領域画像(顔画像100)に対して隠蔽マスク画像を重畳する(S13)。これにより、部分隠蔽画像生成部13は、顔画像100(オクルージョン無し)に対するオクルージョン有りの隠蔽画像を生成する。
【0057】
ついで、AU比較画像生成部14は、顔周辺領域画像(顔画像100)とAUの発生の有無が逆のAU比較画像を画像データベース15より選択して取得する。ついで、部分隠蔽画像生成部13は、取得したAU比較画像に対して隠蔽マスク画像を重畳する(S14)。これにより、部分隠蔽画像生成部13は、AU比較画像(オクルージョン無し)に対するオクルージョン有りの画像を生成する。
【0058】
ついで、画像セット生成部16は、隠蔽画像と、隠蔽する前の画像(顔周辺領域画像(顔画像100))、AU比較画像(オクルージョン有り)をペアにして登録する(S15)。ついで、特徴量算出部17は、画像ペアの3種の画像それぞれから特徴量120(第1の特徴量120a、第2の特徴量120bおよび第3の特徴量120c)を算出する(S16)。
【0059】
ついで、距離算出部18は、隠蔽画像と顔周辺領域画像の特徴量間の距離(do)と、隠蔽画像とAU比較画像(オクルージョン有り)の特徴量間の距離(dau)を算出する(S17)。
【0060】
ついで、距離学習実行部19は、距離算出部18により得られた距離(do、dau)で、第1の距離(do)が小さくなるとともに、第2の距離(dau)が大きくなるように特徴量算出モデルM1を学習する(S18)。
【0061】
ついで、AU認識学習実行部20は、特徴量算出モデルM1で隠蔽画像の特徴量120を算出する。ついで、AU認識学習実行部20は、算出した特徴量120を識別モデルM2に入力した場合に正解情報が示すAUの発生の有無に対応した値を識別モデルM2が出力するように、AU認識学習を行い(S19)、処理を終了する。
【0062】
(第2の実施形態)
図7は、第2の実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
図7に示すように、第2の実施形態にかかる情報処理装置1aは、予め顔画像を抽出した画像データの入力を受け付ける顔画像入力部11aを有する構成である。すなわち、第2の実施形態にかかる情報処理装置1aでは、顔領域抽出部12がない点が第1の実施形態にかかる情報処理装置1とは異なっている。
【0063】
図8は、第2の実施形態にかかる情報処理装置1aの動作例を示すフローチャートである。
図8に示すように、情報処理装置1aでは、顔画像入力部11aが顔画像の入力を受け付ける(S11a)ことから、顔周辺領域の抽出(S12)を行わなくてもよい。
【0064】
(効果)
以上のように、情報処理装置1、1aは、人物の顔を含む複数の画像を取得する。情報処理装置1、1aは、顔の動きに関する特定の動作単位(AU)の発生の有無と、動作単位の発生有りの画像に対するオクルージョンの有無とを組み合わせたいずれかのパターンに複数の画像のそれぞれを分類する。情報処理装置1、1aは、パターンに分類された画像のそれぞれを特徴量算出モデルM1に入力して画像の特徴量を算出する。画像入力部11、1aは、動作単位の発生有りの画像と、動作単位の発生有りの画像に対するオクルージョン有りの画像との特徴量間の第1の距離が小さくなるとともに、動作単位の発生有りの画像に対するオクルージョン有りの画像と、動作単位の発生なしの画像に対するオクルージョン有りの画像との特徴量間の第2の距離が大きくなるように特徴量算出モデルM1を学習する。
【0065】
このように、情報処理装置1、1aでは、オクルージョンの影響を軽減し、特定の動作単位(AU)の発生による顔画像の変化の大きさを特徴量として出力するように特徴量算出モデルM1を学習することができる。したがって、学習後の特徴量算出モデルM1に識別対象の画像を入力して得られた特徴量を用いてAUの識別を行うことで、識別対象の画像にオクルージョンがある場合であっても、精度よくAUの発生の有無を識別することができる。
【0066】
また、情報処理装置1、1aは、動作単位の発生の有無を示す正解情報とともに入力された画像に基づいて、動作単位の発生の有無が付与された人物の複数の顔画像を記憶する画像データベース15を参照し、入力された画像における動作単位の発生の有無とは動作単位の発生の有無が逆の画像を取得する。これにより、情報処理装置1、1aでは、入力された画像より、動作単位の発生の有りおよび動作単位の発生無しの両方の画像を得ることができる。
【0067】
また、情報処理装置1、1aは、入力された画像および画像データベース15を参照して取得した画像に基づいて、画像の一部を隠蔽してオクルージョン有りの画像を取得する。これにより、情報処理装置1、1aでは、入力された画像より、動作単位の発生の有りおよび無しの画像におけるオクルージョン有りの画像を得ることができる。
【0068】
また、情報処理装置1、1aは、オクルージョン有りの画像を取得する際に、動作単位に関する動作箇所の少なくとも一部を隠蔽する。これにより、情報処理装置1、1aでは、動作単位に関する動作箇所の少なくとも一部が隠蔽されたオクルージョン有りの画像を得ることができる。したがって、情報処理装置1、1aでは、動作単位に関する動作箇所の少なくとも一部が隠蔽されたオクルージョン有りの画像を用いて特徴量算出モデルM1の学習を進められることから、動作箇所が隠蔽されるケースについて効率よく学習することができる。
【0069】
また、情報処理装置1、1aは、第1の距離をdo、第2の距離をdau、第1の距離に関するマージンパラメータをmo、第2の距離に関するマージンパラメータをmauとしたときの式(1)の損失関数Lossに基づいて特徴量算出モデルM1を学習する。これにより、情報処理装置1、1aでは、損失関数Lossにより、第1の距離が小さくなるとともに、第2の距離が大きくなるように特徴量算出モデルM1を学習することができる。
【0070】
また、情報処理装置1、1aは、動作単位の発生の有無を示す正解情報が付与された画像を特徴量算出モデルM1に入力して得られた特徴量を入力した場合に、正解情報が示す動作単位の発生の有無を出力するように識別モデルM2を学習する。これにより、情報処理装置1、1aでは、特徴量算出モデルM1に入力して得られた特徴量をもとに、動作単位の発生の有無を識別する識別モデルM2を学習することができる。
【0071】
また、情報処理装置1、1aは、学習された特徴量算出モデルM1を取得し、人物の顔を含む識別対象の画像を、取得した特徴量算出モデルM1に入力して得られた特徴量に基づいて、識別対象の画像に含まれる人物の顔における特定の動作単位の発生の有無を識別する。これにより、情報処理装置1、1aは、識別対象の画像においてオクルージョンがある場合であっても、特徴量算出モデルM1より得られた特徴量に基づいて精度よく特定の動作単位の発生の有無を識別することができる。
【0072】
(その他)
なお、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0073】
また、情報処理装置1、1aの各種処理機能(画像入力部11、顔画像入力部11a、顔領域抽出部12、部分隠蔽画像生成部13、AU比較画像生成部14、画像セット生成部16、特徴量算出部17、距離算出部18、距離学習実行部19、AU認識学習実行部20および識別部21)は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、情報処理装置1で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
【0074】
ところで、上記の実施形態で説明した各種処理機能は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施形態と同様の機能を有するプログラムを実行するコンピュータ構成(ハードウエア)の一例を説明する。
図9は、コンピュータ構成の一例を説明位する説明図である。
【0075】
図9に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、データ入力を受け付ける入力装置202と、モニタ203と、スピーカ204とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る媒体読取装置205と、各種装置と接続するためのインタフェース装置206と、有線または無線により外部機器と通信接続するための通信装置207とを有する。また、情報処理装置1は、各種情報を一時記憶するRAM208と、ハードディスク装置209とを有する。また、コンピュータ200内の各部(201~209)は、バス210に接続される。
【0076】
ハードディスク装置209には、上記の各種処理機能(例えば画像入力部11、顔画像入力部11a、顔領域抽出部12、部分隠蔽画像生成部13、AU比較画像生成部14、画像セット生成部16、特徴量算出部17、距離算出部18、距離学習実行部19、AU認識学習実行部20および識別部21)における各種の処理を実行するためのプログラム211が記憶される。また、ハードディスク装置209には、プログラム211が参照する各種データ212が記憶される。入力装置202は、例えば、操作者から操作情報の入力を受け付ける。モニタ203は、例えば、操作者が操作する各種画面を表示する。インタフェース装置206は、例えば印刷装置等が接続される。通信装置207は、LAN(Local Area Network)等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
【0077】
CPU201は、ハードディスク装置209に記憶されたプログラム211を読み出して、RAM208に展開して実行することで、上記の各種処理機能に関する各種の処理を行う。なお、プログラム211は、ハードディスク装置209に記憶されていなくてもよい。例えば、コンピュータ200が読み取り可能な記憶媒体に記憶されたプログラム211を読み出して実行するようにしてもよい。コンピュータ200が読み取り可能な記憶媒体は、例えば、CD-ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこのプログラム211を記憶させておき、コンピュータ200がこれらからプログラム211を読み出して実行するようにしてもよい。
【0078】
以上の実施形態に関し、さらに以下の付記を開示する。
【0079】
(付記1)人物の顔を含む複数の画像を取得し、
前記顔の特定の部位の動きに関連するアクションユニットの発生の有無と、前記アクションユニットの発生有りの画像に対するオクルージョンの有無との組み合わせとに基づいて、前記複数の画像を分類し、
前記分類された複数の画像のそれぞれを機械学習モデルに入力して前記画像の特徴量を算出し、
前記アクションユニットの発生有りの画像と、当該アクションユニットの発生有りの画像に対するオクルージョン有りの画像との特徴量間の第1の距離が小さくなるとともに、前記アクションユニットの発生有りの画像に対するオクルージョン有りの画像と、前記アクションユニットの発生なしの画像に対するオクルージョン有りの画像との特徴量間の第2の距離が大きくなるように前記機械学習モデルを学習する、
処理をコンピュータに実行させる学習プログラム。
【0080】
(付記2)前記取得する処理は、前記アクションユニットの発生の有無を示す正解情報とともに入力された画像に基づいて、前記アクションユニットの発生の有無が付与された人物の複数の顔画像を記憶する記憶部を参照し、前記入力された画像におけるアクションユニットの発生の有無とは当該アクションユニットの発生の有無が逆の画像を取得する、
ことを特徴とする付記1に記載の学習プログラム。
【0081】
(付記3)前記取得する処理は、前記入力された画像および前記取得した画像に基づいて、当該画像の一部を隠蔽してオクルージョン有りの画像を取得する、
ことを特徴とする付記2に記載の学習プログラム。
【0082】
(付記4)前記取得する処理は、前記アクションユニットに関する動作箇所の少なくとも一部を隠蔽する、
ことを特徴とする付記3に記載の学習プログラム。
【0083】
(付記5)前記学習する処理は、前記第1の距離をdo、前記第2の距離をdau、前記第1の距離に関するマージンパラメータをmo、前記第2の距離に関するマージンパラメータをmauとしたときの式(1)の損失関数Lossに基づいて前記機械学習モデルを学習する、
ことを特徴とする付記1に記載の学習プログラム。
【0084】
(付記6)前記アクションユニットの発生の有無を示す正解情報が付与された画像を前記機械学習モデルに入力して得られた特徴量を入力した場合に、前記正解情報が示すアクションユニットの発生の有無を出力するように識別モデルを学習する処理をさらにコンピュータに実行させる、
ことを特徴とする付記1に記載の学習プログラム。
【0085】
(付記7)人物の顔の特定の部位の動きに関するアクションユニットの発生の有無と、前記アクションユニットの発生有りの画像に対するオクルージョンの有無との組み合わせとに基づいて分類された複数の画像のそれぞれを機械学習モデルに入力して前記画像の特徴量を算出し、前記アクションユニットの発生有りの画像と、当該アクションユニットの発生有りの画像に対するオクルージョン有りの画像との特徴量間の距離が小さくなるとともに、前記アクションユニットの発生有りの画像に対するオクルージョン有りの画像と、前記アクションユニットの発生なしの画像に対するオクルージョン有りの画像との特徴量間の距離が大きくなるように学習された前記機械学習モデルを取得し、
人物の顔を含む識別対象の画像を、取得した前記機械学習モデルに入力して得られた特徴量に基づいて、前記識別対象の画像に含まれる人物の顔における特定のアクションユニットの発生の有無を識別する、
処理をコンピュータに実行させる識別プログラム。
【0086】
(付記8)人物の顔を含む複数の画像を取得し、
前記顔の特定の部位の動きに関連するアクションユニットの発生の有無と、前記アクションユニットの発生有りの画像に対するオクルージョンの有無との組み合わせとに基づいて、前記複数の画像を分類し、
前記分類された複数の画像のそれぞれを機械学習モデルに入力して前記画像の特徴量を算出し、
前記アクションユニットの発生有りの画像と、当該アクションユニットの発生有りの画像に対するオクルージョン有りの画像との特徴量間の第1の距離が小さくなるとともに、前記アクションユニットの発生有りの画像に対するオクルージョン有りの画像と、前記アクションユニットの発生なしの画像に対するオクルージョン有りの画像との特徴量間の第2の距離が大きくなるように前記機械学習モデルを学習する、
処理をコンピュータが実行する学習方法。
【0087】
(付記9)前記取得する処理は、前記アクションユニットの発生の有無を示す正解情報とともに入力された画像に基づいて、前記アクションユニットの発生の有無が付与された人物の複数の顔画像を記憶する記憶部を参照し、前記入力された画像におけるアクションユニットの発生の有無とは当該アクションユニットの発生の有無が逆の画像を取得する、
ことを特徴とする付記8に記載の学習方法。
【0088】
(付記10)前記取得する処理は、前記入力された画像および前記取得した画像に基づいて、当該画像の一部を隠蔽してオクルージョン有りの画像を取得する、
ことを特徴とする付記9に記載の学習方法。
【0089】
(付記11)前記取得する処理は、前記アクションユニットに関する動作箇所の少なくとも一部を隠蔽する、
ことを特徴とする付記10に記載の学習方法。
【0090】
(付記12)前記学習する処理は、前記第1の距離をdo、前記第2の距離をdau、前記第1の距離に関するマージンパラメータをmo、前記第2の距離に関するマージンパラメータをmauとしたときの式(1)の損失関数Lossに基づいて前記機械学習モデルを学習する、
ことを特徴とする付記8に記載の学習方法。
【0091】
(付記13)前記アクションユニットの発生の有無を示す正解情報が付与された画像を前記機械学習モデルに入力して得られた特徴量を入力した場合に、前記正解情報が示すアクションユニットの発生の有無を出力するように識別モデルを学習する処理をさらにコンピュータに実行させる、
ことを特徴とする付記8に記載の学習方法。
【0092】
(付記14)人物の顔の特定の部位の動きに関するアクションユニットの発生の有無と、前記アクションユニットの発生有りの画像に対するオクルージョンの有無との組み合わせとに基づいて分類された複数の画像のそれぞれを機械学習モデルに入力して前記画像の特徴量を算出し、前記アクションユニットの発生有りの画像と、当該アクションユニットの発生有りの画像に対するオクルージョン有りの画像との特徴量間の距離が小さくなるとともに、前記アクションユニットの発生有りの画像に対するオクルージョン有りの画像と、前記アクションユニットの発生なしの画像に対するオクルージョン有りの画像との特徴量間の距離が大きくなるように学習された前記機械学習モデルを取得し、
人物の顔を含む識別対象の画像を、取得した前記機械学習モデルに入力して得られた特徴量に基づいて、前記識別対象の画像に含まれる人物の顔における特定のアクションユニットの発生の有無を識別する、
処理をコンピュータが実行する識別方法。
【符号の説明】
【0093】
1、1a…情報処理装置
11…画像入力部
11a…顔画像入力部
12…顔領域抽出部
13…部分隠蔽画像生成部
14…AU比較画像生成部
15…画像データベース
16…画像セット生成部
17…特徴量算出部
18…距離算出部
19…距離学習実行部
20…AU認識学習実行部
21…識別部
100、100a~100c、101…顔画像
110、110a…顔
111…髪
112…遮蔽物
120…特徴量
120a…第1の特徴量
120b…第2の特徴量
120c…第3の特徴量
200…コンピュータ
201…CPU
202…入力装置
203…モニタ
204…スピーカ
205…媒体読取装置
206…インタフェース装置
207…通信装置
208…RAM
209…ハードディスク装置
210…バス
211…プログラム
212…各種データ
M1…特徴量算出モデル
M2…識別モデル