nkolot / GraphCMR

Repository for the paper "Convolutional Mesh Regression for Single-Image Human Shape Reconstruction"
BSD 3-Clause "New" or "Revised" License
425 stars 67 forks source link

Different J_regressor matrix for training and evaluation #12

Closed yuxwind closed 5 years ago

yuxwind commented 5 years ago

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!

geopavlakos commented 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.

yuxwind commented 5 years ago

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?

joints

geopavlakos commented 5 years ago

Yes, there are only minor differences.