niessner / Matterport

Matterport3D is a pretty awesome dataset for RGB-D machine learning tasks :)
https://niessner.github.io/Matterport/
MIT License
929 stars 153 forks source link

"normalizedAxes" convention in the oriented bounding box definition. #19

Closed bhushaan closed 5 years ago

bhushaan commented 5 years ago
"obb": {
        "centroid":[3.39208,-1.72134,1.13262],
        "axesLengths":[1.11588,0.619098,0.439177],
        "dominantNormal":[-0.707107,-0.707107,0],
        "normalizedAxes":[0,0,1, -0.707107,0.707107,0, -0.707107,-0.707107,0]
      }

Inside the .segsem.json file in the "house_segmentation" folder, for each object the oriented bounding box information is given as shown above. However, there is no mention of the convention of the normalized axes. It is important because, while getting the orientation of the bounding box, we need to construct the rotation matrix from the normalizedAxes array. Now we know according to the world coordinate system, Z-axis points upwards. And most of the objects are only rotated around the up axis; z-axis in the global/world coordinate frame. So in my understanding, one of the vectors (three values) in normalisedAxes must be [0, 0, 1] which will be the last column in the rotation matrix which transforms from the global coordinate system to local object coordinate system. But how to determine first and second column in that rotation matrix.

ZZWENG commented 3 years ago

Hi @bhushaan , are there any updates to this issue? I am also confused about how to interpret the normalizedAxes annotation, and there is not much documentation found online. Thank you!