Open Orig1n opened 7 months ago
Thanks for your interest. I'm not exactly sure which "correction" you are referring to, but I guess most likely you are saying why the SMPL poses are different in viewpoints: t_correction = (_pose[0, 0].numpy() - np.eye(3)) @ j0
. This is usually a tricky practical problem when rotating the SMPL. When rotating a SMPL, one can add some axis angel to the first joint rotation, but the SMPL will rotate around its first joint, not the object space origin, so the translation needs to be updated to mitigate this different rotation origin. Here j0 = (so.joints[0, 0]).numpy()
is the first joint position in the object space, which the SMPL is rotated around, and it's used to correct the translation.
I note in zju_mocap.py, you correct the smpl data like this.
Do this correction has any reference? Since during the correction, camera pose is used, it means one frame has different smpl data in different views. It feels quiet strange...