radekd91 / emoca

Official repository accompanying a CVPR 2022 paper EMOCA: Emotion Driven Monocular Face Capture And Animation. EMOCA takes a single image of a face as input and produces a 3D reconstruction. EMOCA sets the new standard on reconstructing highly emotional images in-the-wild

Home Page:https://emoca.is.tue.mpg.de/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Saving Flame codes while running emoca on images

galib360 opened this issue · comments

When save_codes flag is set to true, it saves the flame codes for shape, pose, expression codes with dimensions 100, 6, 50 respectively. However, the FLAME 2020 version has 300, 18, 100 dimensional shape, pose, expression respectively. Could you please elaborate or give me a pointer on how the emoca inference of FLAME codes correspond to the FLAME 2020 model? Thank you in advance.

Figured out that the 6 dimensional pose output corresponds to the pose (position, rotation) of the "jaw" bone of the FLAME model. However, still confused about the exp and shape output of the FLAME parameters. Blender Addon of the FLAME 2020 model has 300 and 100 shape keys for shape and expression respectively while emoca outputs 100 and 50 dimensional values. Although from the inference data, using the first 100 out of 300 for "Shape" shape keys and first 50 out of 100 "Exp" still produces coherent facial animations.

The 6D pose corresponds to global rotation and jaw rotation (parameters 1-3 and 7-9 of the 18-dimensional FLAME pose vector). The 100-dimensional identity shape and the 50-dimensional expression shape are the first 100 / 50 parameters of the FLAME identity shape / expression shape vectors. The remaining 200 FLAME identity and 50 expression remain at zero. Does this answer your question?

@galib360 Were you able to import FLAME animations into Blender? Did you also import the camera from EMOCA so that it matches the plate?