[お役立ち]アジア人のAction Unitで学習した顔面運動検出システムを作った
@ なんばいきん · Thursday, Aug 28, 2025 · 5 minute read · Update at Aug 28, 2025

表情の分析をお手軽にやっちゃおう!
顔面運動を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種類の顔の出現確率・強度・生起の有無、が出力される。


ではでは!

他にこんな記事があるよ

『Science of Facial Expression』を翻訳しました
Py-featで表情分析
OpenFaceで表情分析

なんばいきん's blog
表情の研究してます。左上のアイコンで夜モードにできるけどそしたらRコードが全部見えなくなるクソみたいなブログ。それがここ。

docker r お役立ち 出張 旅行 日記 研究 読書感想文 雑談 音楽
r

© 2020 - 2025 とある心理学系研究者のブログ

Powered by Hugo with theme Dream.

Social Links