2023/06/14

FaceLandmarkDetection

Mediapipe Face Landmark detectionでBlendshapeできる

以前はFacemeshとして知られていた顔の表情を3Dランドマークで推論するモデルがFacemeshV2として進化しましたね!なんとBlendshapeスコアが出せるようになりました。blazeFace => faceMeshV2 => blendShapeV2 という流れ。Facemeshに取って代わってFaceLandmarkDetectionになりました。

Face detection guide | MediaPipe | Google for Developers
使い方はPythonで試してみるのが一番わかる。

活用する側での一番のポイントは、ARKitのPerfectSyncとBlendShapeがコンパチなところ。BlendShapeの名前が同じなのでPerfectSync対応のアバターにそのまま使える。
ARFaceAnchor.BlendShapeLocation | Apple Developer Documentation

実際にPythonで動かしてみたところ、tongueOut 以外のBlendShapeスコアが出た。新しいFacemeshのドキュメントによると、cheekPuffとtongueOutは対象外とのことだが一応cheekPuffは含まれている。動いてるかどうかは微妙だけど。

これでPerfectSync対応にしておけばMediapipeからでも動かせることになる。Androidサンプルもあるので頑張ればネイティブに動かせる。

ARCoreやMLKitで動くようになれば、ARFoundationから利用できるようになるのかな。それまではPythonかWeb版でどうにかするかな。