dazinovic / neural-rgbd-surface-reconstruction

Official implementation of the CVPR 2022 Paper "Neural RGB-D Surface Reconstruction"

Home Page:https://dazinovic.github.io/neural-rgbd-surface-reconstruction/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Camera pose axes to OpenGL coordinate space alignment

Daniil-Osokin opened this issue · comments

Hi, Dejan! Thanks for opensourcing this work 💪! I cannot get how to transform poses from custom format to the format in this work. May be I did not get properly OpenGL coordinate system you mentioned, but it looks like the usual yUp coordinate system. So I expect that y axis from camera pose is "up" direction. However the poses for breakfast_room (and other provided scenes) are oriented differently: I have rotated MeshLab axes to match OpenGL coordinate system and draw camera poses (each 10th), and y axis from camera pose (in green) is aligned with z axis from coordinate system and vice versa:
breakfast_room_poses_in_ogl
I have checked #2, #5, #9, #16, #21 and still in stuck. Can you please clarify why camera axes are not aligned with the corresponding OpenGL coordinate axes?

commented

What exactly do you mean by custom format?

The poses that I provided for the synthetic scenes are already in the OpenGL coordinate system and don't need any further transformation. With respect to the world coordinate system, they are oriented exactly like on the website you linked. I.e., a camera at position (0, 0, 10), looking at the origin will have the following matrix:

1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 10,
0, 0, 0, 1

Thanks for the answer! If so, why the 1st pose for the breakfast room scene is oriented differently? It is visualized above, in the center of coordinate axes. For some reason its z and y axes are not collinear to the OpenGL coordinate axes (MeshLab axes here).

commented

Are those poses from poses.txt or trainval_poses.txt? The first file has the GT poses and they are in the OpenGL coordinate system (second column is also aligned with the world y-axis). The second file contains the output from BundleFusion. That also follows the OpenGL right-handed coordinate system convention, but I did not bother reorienting the scene so that camera-up and world-up are aligned. You can easily rotate the scene after reconstruction.

Thanks! I have figured out the reason of my error and successfully applied your method to custom data. Thanks for the great work!