Closed YuyanHuang closed 3 years ago
How R and t are defined? You should be aware that the root position is not (0,0,0). You should rotate the root joint position as well.
@mks0601 R and t are defined: t, R = np.array(cam_param['campos'][str(cam_idx)], dtype=np.float32).reshape(3), np.array(cam_param['camrot'][str(cam_idx)], dtype=np.float32).reshape(3,3) t = -np.dot(R,t.reshape(3,1)).reshape(3)
I haven't seen how the root position is set in render.py.
You are applying the extrinsics on the root_pose
(rotation) and trans
(translation).
However, there is another translation vector, root joint position.
When you set trans
to zero vector, you can notice that the root joint position (output.joints[0]) is not zero.
You should rotate the root joint position, as well, like here.
I need to use the MANO parameters in the camera coordinate system, and try to use the camera extrinsics to convert it to the camera coordinate system. But it failed, and the fitting error reached tens of millimeters. Part of the code is as follows: