vchoutas / smplify-x

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

Getting 127,3 Joints dimension #176

Open ahmedraza1996 opened 2 years ago

ahmedraza1996 commented 2 years ago

Hello, I regenerated the joints using output pickle file, joints = model_output.joints.detach().cpu().numpy().squeeze() I used --use-hand=True and --use-face= False while generating the output. There were several threads discussing the Joints to be (118,3) , but weirdly I am getting shape (127,3) ...Does anyone know the mapping?

mohamad-hasan-sohan-ajini commented 2 years ago

Hey dude

The 127 joints index you mentioned are corresponding to these:

[0, 55) <-> 55 joints: As mentioned in the smplx paper, the body model consists of 54 joints . Here there is an extra joint (that I think is not really joint but the center of the body) named Global. The joint names can be restored from model/smplx/SMPLX_NEUTRAL.npz under the key named part2num:

[
   'Global',
   'L_Thigh',
   'R_Thigh',
   'Spine',
   'L_Calf',
   'R_Calf',
   'Spine1',
   'L_Foot',
   'R_Foot',
   'Spine2',
   'L_Toes',
   'R_Toes',
   'Neck',
   'L_Shoulder',
   'R_Shoulder',
   'Head',
   'L_UpperArm',
   'R_UpperArm',
   'L_ForeArm',
   'R_ForeArm',
   'L_Hand',
   'R_Hand',
   'Jaw',
   'L_Eye',
   'R_Eye',
   'L_Index1',
   'L_Index2',
   'L_Index3',
   'L_Middle1',
   'L_Middle2',
   'L_Middle3',
   'L_Pinky1',
   'L_Pinky2',
   'L_Pinky3',
   'L_Ring1',
   'L_Ring2',
   'L_Ring3',
   'L_Thumb1',
   'L_Thumb2',
   'L_Thumb3',
   'R_Index1',
   'R_Index2',
   'R_Index3',
   'R_Middle1',
   'R_Middle2',
   'R_Middle3',
   'R_Pinky1',
   'R_Pinky2',
   'R_Pinky3',
   'R_Ring1',
   'R_Ring2',
   'R_Ring3',
   'R_Thumb1',
   'R_Thumb2',
   'R_Thumb3'
]

[55-76) <-> (21 joints): These 21 joints are optional. You can add each part you want based on the parameters passing to the function named vertex_joint_selector. By default all the parts are added to the joint matrix. Part A (5 joints) head elements: nose, {r, l} x {eye, ear} Part B (6 joints) foot elements: {l, r} x {BigToe, SmallToe, Heel} Part C (10 joints) hand elements: {l, r} x {thumb, index, middle, ring, pinky}

[76, 127) <-> (52 joints): These are the face landmarks comes from face key points.