Closed yuxwind closed 5 years ago
The joints used in Human3.6M have a slightly different definition than those used by the SMPL body model, so we use a different regressor to accurately recover them from vertices during evaluation. You can use this definition of joints during training as well, but for simplicity we use a single regressor that is compatible with all training datasets.
Thanks! I have tried to apply both regressors on T mesh and found the joints position are slightly different as you said. It seems that the joints of Human3.6M are more near the skin than the SMPL joints, which located inside the body. Is this consistent with your observation?
Yes, there are only minor differences.
I noticed that the regressor matrice to get 3D joints from predicted vertices are different between for training and for evaluation. In training, smpl.get_joints() multiply predicted vertices with J_regressor of SMPL_FILE and JOINT_REGRESSOR_TRAIN_EXTRA to get joints while run_evaluation() uses JOINT_REGRESSOR_H36M. What's the concern here? Thanks!