Fast-Learning
Fast-Learning copied to clipboard
Reproduce results with Instant-NGP with llff and synthetic dataset
I want to reproduce the results of the paper for running with instant NGP dataset on LLFF and Nerf Synthetic dataset. I run the following command as per your readme:
python main_nerf.py data/nerf_synthetic/lego --workspace trial_nerf -O --bound 1.0 --scale 0.8 --dt_gamma 0
However I notice that none of the functions in quadtree are being called and the image_probs is the same all over. Am I running it with the wrong setup?
If I uncomment the following line in provider.py:
self.image_probs.append(get_img_prob(image))
I get an error (during get_img_prob).
Can you please help me find the correct setup for running your code vs. uniform sampling?
Thank you
We noticed that instant-ngp is so fast that the time consumption of quadtree subdivision becomes a significant overhead. Therefore, we adopted error map as a simple subdivision and sampling strategy for instant-ngp. We sample rays according to the rendering error maps, which is equivalent to subdividing the quadtree into all leaf nodes from the beginning. An implementation is provided in line 356 in provider.py.
Thank you for your response. I have not been able to locate where in the paper you mention this specific design choice for instant ngp. Would you please be able to point me to the location?
If I uncomment line 356 and comment line 360 in provider.py, and also uncomment line 881 in utils.py, and run with the following command on synthetic dataset:
python main_nerf.py data/nerf_synthetic/lego --workspace trial_nerf -O --bound 1.0 --scale 0.8 --dt_gamma 0
I see that the number of rays per epoch decrease, but I see no psnr improvement and the total time reported at the end is the same too (the backward time is less but total time is averaged over 3 runs is almost the same). Similar to the paper, I run the code on Nvidia 3090 GPU. Do I run the code with a wrong setup? How can I reproduce 18% speed improvement with 0.4 psnr increase as claimed in your paper?