body_model = SMPLX(model_path=os.path.join(MODEL_PATH,'smplx'), use_face_contour=True, use_pca=False, gender='neutral')
smpl_data = json.load(open(os.path.join(smplx_folder, smpl_file)))
output = body_model( global_orient= torch.tensor(smpl_data['global_orient']).unsqueeze(0).contiguous(),
transl = torch.tensor(smpl_data['transl']).unsqueeze(0).contiguous(),
body_pose = torch.tensor(smpl_data['body_pose']).unsqueeze(0).contiguous(),
betas = torch.tensor(smpl_data['betas']).unsqueeze(0).contiguous(),
jaw_pose=torch.tensor(smpl_data['jaw_pose']).unsqueeze(0).contiguous(),
left_hand_pose = torch.tensor(smpl_data['left_hand_pose']).unsqueeze(0).contiguous(),
right_hand_pose = torch.tensor(smpl_data['right_hand_pose']).unsqueeze(0).contiguous(),
expression=torch.tensor(smpl_data['expression']).unsqueeze(0).contiguous(),
return_verts=True
)
However, there are still translation and rotation offsets between the PLY scans and the SMPLX body mesh.
Also, it seems that the scale (0.986) is not correct. Could you please describe how you registered the body model parameters?
Thank you very much.