yfeng95 / DECA

DECA: Detailed Expression Capture and Animation (SIGGRAPH 2021)
Other
2.17k stars 426 forks source link

How to obtain the coordinates of 68 landmarks of the reconstructed model #66

Open tkzky opened 3 years ago

tkzky commented 3 years ago

Hi, thanks for making this great work open sourced. I want to know how to obtain the coordinates of 68 landmarks of the reconstructed model like (x,y,z) ? Thank you!

TimoBolkart commented 3 years ago

Either you take the output mesh in FLAME topology and extract the 3D landmarks from this mesh using the provided barycentric landmark embedding (you could do that by calling the function vertices2landmarks in lbs.py. The forward function in FLAME.py demonstrates how this is done during training). Another possibility is to return the landmarks2d or landmarks 3d (depending if static or dynamic face contour) as return from the self.flame function call in the decode function of deca.py. These landmarks are later projected into the image and only the projection is returned. Instead you would need to return the landmarks before projecting them into the image. Does that answer your question?

vicdxxx commented 2 years ago

I have a good idea, use pytorch3d to show this landmarks in 3D space, you can see and draw directly, and it will show the coordinates if you hangover one landmark.

tyrink commented 2 years ago

Either you take the output mesh in FLAME topology and extract the 3D landmarks from this mesh using the provided barycentric landmark embedding (you could do that by calling the function vertices2landmarks in lbs.py. The forward function in FLAME.py demonstrates how this is done during training). Another possibility is to return the landmarks2d or landmarks 3d (depending if static or dynamic face contour) as return from the self.flame function call in the decode function of deca.py. These landmarks are later projected into the image and only the projection is returned. Instead you would need to return the landmarks before projecting them into the image. Does that answer your question?

hi, i've just return the 68 keypoints from the self.flame function call in the decode function of deca.py. However, I got keypoints as follows and it seemed something went wrong.The numbers were too small and I even got minus. Do you have any ideas? image

vicdxxx commented 2 years ago

这是来自QQ邮箱的假期自动回复邮件。   您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。

weiweiecho commented 10 months ago

@tkzky Hi , do you know how to solve this problem now?