bmild / nerf

Code release for NeRF (Neural Radiance Fields)
http://tancik.com/nerf
MIT License
9.58k stars 1.34k forks source link

different performance using estimated camera poses from colmap code and colmap gui #138

Open hengfei-wang opened 2 years ago

hengfei-wang commented 2 years ago

In my project, I have 18 images for one scene. I tried two methods using colmap to get camera poses. One is using LLFF script as author said in readme file. Another is using colmap GUI to get camera poses. I expect same reconstruction results from NeRF using these two versions of camera poses. But I find that there are huge reconstruction differences. Both methods converged in colmap. But the reconstruction results using LLFF script are much better than using colmap GUI. That is weird.

Does anyone have the same problem? I did not change any setup in colmap, just use default setup. Is there any difference between LLFF colmap script and colmap GUI?

kwea123 commented 2 years ago

LLFF script just converts colmap result (either gui or command line) to another format that nerf can parse. When you say "using colmap gui", how did you convert to input that can be used for nerf?

hengfei-wang commented 2 years ago

Sorry, I did not explain it clearly. I use colmap gui and command line to get raw camera data first, then I use LLFF script to convert the data to another format that nerf can parse. But using comap gui and command line causes different results. Both converged in colmap.

hengfei-wang commented 2 years ago

some details:

Recently, I am using colmap to generate camera poses for nerf training. I use my dataset which contains sparse images of one scene. I ran img2pose.py from https://github.com/Fyusion/LLFF/blob/master/imgs2poses.py, which is recommended by nerf authors. But it failed. However, I put my images into gui version of colmap. It works!!??? And I check all the settings between img2pose.py and gui version to make sure they are same. That's so weird. But when i trained nerf using camera pose from colmap gui, its results do not look good. And I picked up some scenes which both img2pose.py and colmap gui can work on for comparison on nerf. The camera pose from img2pose.py always perform better than gui version. I do not understand why. Is there any difference between command line version and gui version of colmap? Default parameters different? I have setted the parameters on gui version according to img2pose.py to make sure their settings are same.

Any help is appreciated.

ynma-hanvo commented 2 years ago

i think this is a colmap issue. you may ask it on colmap repo.

zhangzhenfengjy commented 2 years ago

一些细节:

最近,我正在使用 colmap 生成用于 nerf 训练的相机姿势。我使用我的数据集,其中包含一个场景的稀疏图像。我从https://github.com/Fyusion/LLFF/blob/master/imgs2poses.py运行 img2pose.py,这是 nerf 作者推荐的。但它失败了。但是,我将图像放入 gui 版本的 colmap 中。有用!!???我检查了 img2pose.py 和 gui 版本之间的所有设置,以确保它们相同。这太奇怪了。但是当我使用 colmap gui 的相机姿势训练 nerf 时,它的结果看起来并不好。我挑选了一些 img2pose.py 和 colmap gui 都可以处理的场景,以便在 nerf 上进行比较。img2pose.py 中的相机姿势总是比 gui 版本更好。我不懂为什么。colmap的命令行版本和gui版本有什么区别吗?默认参数不同?我已经根据 img2pose.py 设置了 gui 版本的参数,以确保它们的设置相同。

任何帮助表示赞赏。 您好,请问我在运行作者提供的imgsposes.py代码时遇到了一些问题,可以咨询您一下吗?我的QQ是:1275993595