Open ghost opened 2 years ago
Thanks @evenfh ,
We haven't tested with CO3D (yet), so I cannot quickly answer your question. Is the format of CO3D similar to the DTU MVS format?
We did write a loader for DTU (unfortunately not available in the public release). For that I used https://docs.opencv.org/3.4/d9/d0c/group__calib3d.html (see Detailed Description) and the decomposeProjectionMatrix function https://docs.opencv.org/3.4/d9/d0c/group__calib3d.html#gaaae5a7899faa1ffdf268cd9088940248 and built an OpenGL projection matrix from that, see slide 25 here: https://fileadmin.cs.lth.se/cs/Education/EDA221/lectures/latest/Lecture5_web.pdf
Please note that we do not expect good quality results from CO3D as it breaks many of our assumptions. Compared to the nerf/nerd datasets it has less controlled lighting, lower quality segmentation masks, and probably more inaccurate camera positions. For some more info, see: https://github.com/NVlabs/nvdiffrec/issues/10
Thaks for the reply @jmunkberg and @JHnvidia ,
I am not familiar with the DTU MVS format, unfortunately. The CO3D dataset provides focal length and principal point in NDC space. It also provides extrinsic camera parameters(rotation and translation) which i believe uses the pytorch3d coordinate system convention. In Pytorch3D +Z points in to the screen whereas OpenGL has +Z pointing out of the screen, explained here: https://pytorch3d.org/docs/renderer_getting_started (see Pytorch3D vs OpenGL).
I read your comment about the segmentation masks, @JHnvidia. However, i created new segmentation masks by hand so that particular aspect should not be a problem. However, I agree that the inaccurate camera positions and the lighting might be part of the issue here.
I updated the code above with some comments.
Hi. Thanks for sharing the code. Great work!
I am trying to train the model with objects from the CO3D dataset (link). However, I am getting pretty bad results and i suspect that my camera matrices are incorrect. I would really appriciate some help if possible.
Here is how i create the matrices (i used this article as a reference to create the projection matrix) :
Result: