NVlabs / CenterPose

Single-Stage Keypoint-based Category-level Object Pose Estimation from an RGB Image (ICRA 2022)
Other
285 stars 34 forks source link

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

Open hnuzhy opened 7 months ago

hnuzhy commented 7 months ago

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.