vchoutas / smplify-x

Expressive Body Capture: 3D Hands, Face, and Body from a Single Image
https://smpl-x.is.tue.mpg.de/
Other
1.77k stars 340 forks source link

the mapping between SMPL-x joint ids to joint names #152

Open kidSun opened 3 years ago

kidSun commented 3 years ago

hello,I get the output 'joints', I can't find the mapping between SMPL-x joint ids to joint names.

Anirudh257 commented 3 years ago

The 118 joints are following the Openpose ordering. More specifically, first 25 are body joints, followed by 21 left hand joints, 21 right hand joints and remaining are the facial joints.

kidSun commented 3 years ago

thanks,I find the mapping, in blender add on project

ovshake commented 3 years ago

Hi @Anirudh257, thanks for the wonderful work. I am confused about the ordering. I understand the ordering is in openpose format for the first 25 joints. Then what does this ordering mean? I am interested to get the first 24 joints according to this list. How can I convert the existing openpose ordering to this?

Anirudh257 commented 3 years ago

@ovshake I am glad that you found it useful. In the link posted, the first 24 openpose joints should match with the first 24 SMPL-X joints given in my opinion. You can look into these images to confirm once. Openpose 25 joints_body -> Openpose 25 body joints

Openpose 21 joints_hand -> Openpose 21 hand joints

Openpose 70 joints_face -> Openpose 70 face joints.

ovshake commented 3 years ago

Yes, but in the file, the first joint is pelvis but on the open pose figure, we can see that the first joint is face. I think they are different. Additionally, there are 3 spine points according to SMPLX joint ordering but only 2 spine points are present in the open pose ordering.

Anirudh257 commented 3 years ago

@ovshake Does this help? https://github.com/vchoutas/smplify-x/blob/3e11ff1daed20c88cd00239abf5b9fc7ba856bb6/smplifyx/utils.py#L96

AABLOOOM commented 1 year ago

@ovshake Does this help?

https://github.com/vchoutas/smplify-x/blob/3e11ff1daed20c88cd00239abf5b9fc7ba856bb6/smplifyx/utils.py#L96

@Anirudh257 Hi!

Do you know how to understand the mapping index in:

if openpose_format.lower() == 'coco25': if model_type == 'smpl': return np.array([24, 12, 17, 19, 21, 16, 18, 20, 0, 2, 5, 8, 1, 4, 7, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34], dtype=np.int32) I know SMPL has 23 joints and Openpose has 25 joints, but how does the number bigger than 25 come from? I'm really confused about the mapping issue, thanks in advance.

shrutic12 commented 1 year ago

Hi! This is great work. Is it possible to get a tesselated mesh (with connecting vertices) of the full body like in Google's mediapipe face mesh https://mediapipe.readthedocs.io/en/latest/solutions/face_mesh.html ?