yenchenlin / nerf-pytorch

A PyTorch implementation of NeRF (Neural Radiance Fields) that reproduces the results.
MIT License
5.37k stars 1.04k forks source link

Perfect peformance with lego, but bad with other objects. #63

Open Q-Y-Yang opened 2 years ago

Q-Y-Yang commented 2 years ago

Hey, @yenchenlin thanks for your pytorch implementation of nerf!

When I trained with lego in the nerf synthetic dataset, the test result is not bad even with only 20000 iterations. 004 For example, above is a render result of lego. However, when I tried to train other objects in nerf synthetic dataset, it did not work. Render result of ship with 30000 iterations training:

000 (1) Render result of chair with 50000 iterations training (a white image as follows) : 001

Therefore, the result is also not satisfying when I trained on my own 360 degree synthetic inward-facing dataset. I compared the nerf network in the official tensorflow release and that in this repo. It seems both are 8 layers MLP. Is there anyone has ideas?

Q-Y-Yang commented 2 years ago

I think I figured it out. The point is near and far bounds are different for each obejct with different size.

Feynman1999 commented 2 years ago

I think I figured it out. The point is near and far bounds are different for each obejct with different size.

new bee here, can you share some suggestions for the setting of bounds?

Q-Y-Yang commented 2 years ago

I think I figured it out. The point is near and far bounds are different for each obejct with different size.

new bee here, can you share some suggestions for the setting of bounds?

It is up to the distance between object and camera in your dataset. The bounds should cover the distance.

lllz815 commented 2 years ago

I think I figured it out. The point is near and far bounds are different for each obejct with different size.

Hi, Hello, I also encounter the same problem as you. When I use other synthetic data, the images I render are all white. I have tried many methods but they still have no effect. I have read your understanding of this, but I do not understand it very well. Can you tell me how I should operate specifically? I will be very grateful if you can give me an answer