mks0601 / Hand4Whole_RELEASE

Official PyTorch implementation of "Accurate 3D Hand Pose Estimation for Whole-Body 3D Human Mesh Estimation", CVPRW 2022 (Oral.)
MIT License
314 stars 31 forks source link

The difference of body_pose between 'MSCOCO_train_SMPL_NeuralAnnot.json' and 'MSCOCO_train_SMPLX_all_NeuralAnnot.json' #45

Closed linjing7 closed 2 years ago

linjing7 commented 2 years ago

Hi, thanks for your excellent work. I notice that the body_pose param in MSCOCO_train_SMPLX_all_NeuralAnnot.json is quite different from that in MSCOCO_train_SMPL_NeuralAnnot. Here is my code and could you please tell me what cause the difference?

image image
mks0601 commented 2 years ago

Of course they are different. MSCOCO_train_SMPLX_all_NeuralAnnot.json -> SMPLX MSCOCO_train_SMPL_NeuralAnnot.json -> SMPL

linjing7 commented 2 years ago

As mentioned in NeuralAnnot and the code of Hand4Whole, the SMPLX param is integrated by the SMPL, MANO, and FLAME params. Therefore, I think the body part of SMPLX param should be the same as SMPL param? If not, could you please show me about the intergration code? pose = torch.cat((root_pose, body_pose, lhand_pose, rhand_pose, jaw_pose), 1)

image
mks0601 commented 2 years ago

body_pose is different for SMPL and SMPLX as they have slightly different joint definition. For the integration, NeuralAnnot/Hand4Whole estimates SMPLX body_pose, not SMPL body_pose. You can simply forward the same body_pose to SMPL and SMPLX layers to see the difference.

linjing7 commented 2 years ago

Okay, got it, thank you very much. Could you please share the code to transfer the MANO parameter into hand_pose of SMPLX?

mks0601 commented 2 years ago

Are you talking about neuralannot? Hand4Whole does not require it

linjing7 commented 2 years ago

Hi, I'm sorry to find that the param of hand_pose in MANO and SMPLX are the same except for the root_pose. Thank you very much for your patient reply.