CenterPose icon indicating copy to clipboard operation
CenterPose copied to clipboard

How to obtain the GT rotation matrix and euler angles labels of each object in Objectron?

Open hnuzhy opened this issue 4 months ago • 0 comments

Thank you for your released code. Recently, I'm doing a project using the Objectron dataset. Now, I need obtain the GT rotation matrix and euler angles labels of each object. The given labels of Objectron contain the possible answer of GT rotation matrix (either camera.transform or camera.view_matrix). This is also explained by an official related issue in Objectron.

Then, I utilized the camera.view_matrix multipling object.rotation for each instance as the GT rotation matrix, and wanted to further visualize the orientation of each object. I have to convert the GT rotation matrix into corresponding euler angles. Below is my code.

from scipy.spatial.transform import Rotation
rot_mat_2 = np.transpose(rot_mat)  # rot_mat is the GT rotation matrix
euler_angles = Rotation.from_matrix(rot_mat_2).as_euler("zxy", degrees=True)  # is this order right?
[roll, pitch, yaw] = euler_angles 

I plotted three euler angles for further checking. However, the orientation is not always visually right. Some examples are shown below.

positive / right examples:

negative / wrong examples:

I'm not sure if this is my fault or just the GT labels of orientation have large noise caused by human annotators. I noticed that you have shown right visualiztion of object orientation by euler angles in your paper. But I cannot find the corresponding code in this repo. Could you please share your processing steps? Thank you very much.

hnuzhy avatar Feb 25 '24 11:02 hnuzhy