chenhsuanlin / bundle-adjusting-NeRF

BARF: Bundle-Adjusting Neural Radiance Fields 🤮 (ICCV 2021 oral)
MIT License
782 stars 112 forks source link

Import blender dataset without pose(identity matrix),but can not get refined pose. #70

Closed Wjt-shift closed 1 year ago

Wjt-shift commented 1 year ago

I use the blender dataset lego and Initialize the pose with identity matrix,but can not get a good result.It is the pose result after 200000 epoch.Barf can not refine pose with identity matrix? image

chenhsuanlin commented 1 year ago

Hi @Wjt-shift, are you modifying the Blender configs to initialize all the poses to the same (identity matrix)? If that's the case, this is unlikely going to work well, since BARF is considered a local registration method. Please see #19 and #48 for discussions. (That said, I have never tried this setup before, and it seems to work much better than I thought!)

qbeer commented 1 year ago

Hi @chenhsuanlin! I haven't tried to optimize for this, but maybe the issue comes from stating in the paper that you do initialize the pose matrices to correspond to the identity transformation and go on optimizing from there. It is not straight-forward to think that this basically ONLY WORKS with forward-facing LLFF like datasets because the optimal poses are very similar (the model can find a good approximation then iterate on each of them). At least this is my understanding of it. I don't think this is intentional, but maybe it is worth adding some notes to the README about this. And thanks fro sharing the code and responding to people kindly.

chenhsuanlin commented 1 year ago

Thanks @qbeer. The identity pose initialization setup was only mentioned in the LLFF experiments (Sec 4.3), and I don't think I have ever claimed that this would work for any camera trajectory in general (e.g. object-centric renderings as in the Blender experiments). It would be great if you could point out where the confusion was coming from in the paper.

qbeer commented 1 year ago

It might just cause confusion that it is part of the NeRF (3D): Real-World Scenes section (4.3) - it might just suggest to the reader that this could work in different, real-world settings. It is mentioned that you use the LLFF dataset, but one might try to use another one and might not understand that this is a local registration method. I completely understand your point of view, sometimes it might just be easier for people to explicitly state [not necessarily in a paper] that you'd need the forward facing setting.

Thanks again. :)