表情の分析をお手軽にやっちゃおう!
顔面運動をManualでアノテーションしてる表情データセットであるFEAFAで訓練した学習機の使い方を解説する。適当に試した感じめっちゃ便利っぽいので、日本人を対象とした表情の研究したくなったときには是非。
利点
・Action Unitの種類がこれまでにないほど豊富(圧巻の24種類)
欠点
・性能評価がまだ(論文にしてない)
FEAFAとは
Ke Lu氏の研究チームによって開発された表情データベース。子ども、成人、高齢者127人ほどに、意図的に様々な顔面運動を行ってもらったデータベース。99356のフレームがあり、そのすべてにAUが付与された激アツなデータベース。
詳細はこちらを見てね。
開発したシステムのすごく簡単な説明
機構としては以下の流れである。
1.顔検出&ランドマーク取得(MediaPipe)
2.ランドマークの向きから傾きを補正して224×224にリサイズ
3.顔の正規化
4.正規化した顔にモデルをあてはめてAU推定
こういったシステムに採用されがちなランドマークやHOGなどの特徴量は特に採用してません。
Dockerによる使い方
ここではWindows、Ubuntu、Macだろうが関係なし。OSに依存しないDockerを使った顔面運動検出システムの使用方法を紹介する。
以下のコードは「顔面運動検出システムを利用可能な仮想環境を起動する」コマンドだ。「-v [ローカルPATH]:[コンテナ内パス]」の[ローカルPATH]には表情画像・映像の入ったフォルダのパスを設定しておく。[コンテナ内パス]のフォルダ内には設定した表情画像・映像のフォルダがコンテナ内で作成される。コマンドラインでは以下のように入力する(ここではPowerShellを想定してます):
docker run --rm `
-v "C:\Users\ほげほげ\Documents\データが入ったフォルダ\frames:/data:ro" `
-v "${PWD}:/out" `
nambaikin/hiroshima-fatool:cpu-v3 `
--dir /data --recursive --out /out/preds.csv
一応簡単に説明すると、data:ro
のコロンの左側に表情画像を入れておく。複数あれば勝手に回してくれる。${PWD}
は今いるディレクトリでデータを保存してくれる(末尾の preds.csv を保存する場所)。
出力されるのは、瞳を閉じる動き(AU43左・右)、瞳を開く動き(AU5左・右)、眉間にしわを寄せる(AU4左・右)、眉を上げる動き(AU1+2左・右)、下あごの平行動き(AD30左・右)、笑顔の動き(AU12左・右)、口角を横に引っ張る動き(AU20左・右)、唇を中に埋める動き(AU28上・下)、下唇を外側に動かす(AD29)、上唇を上げる動き(AU10)、下唇を下げる動き(AU16)、下唇を上げる動き(AU17)、キス顔(AU18)、ふくれっ面(AD34:使うか?)、鼻にしわを作る動き(AU9)
上記24種類の顔の出現確率・強度・生起の有無、が出力される。
ではでは!