CS 180 Fall 2024

Final Project NeRF by Lawrence Shieh

Part 1: Fit a Neural Field to a 2D Image

For the whole part 1 we have num_epochs=3000 and batch_size=10000. The architecture of the neural net follows the one given in the project spec.

Image 1 for Part 1.1

Fox With Original Parameters

{"num_layers": 3, "hidden_dim": 256, "num_frequencies": 10, "learning_rate": 1e-2}

Image 1 for Part 1.1
Image 3 for Part 1.1
Image 3 for Part 1.1

Decrease Fox Hidden Dimension to 64

{"num_layers": 3, "hidden_dim": 64, "num_frequencies": 10, "learning_rate": 1e-2}
We can see that the results perform significantly worse than the original parameters. This make sense since we decrease the amount of information contained in the layers by decreasing the hidden dimensions.

Image 1 for Part 1.1
Image 3 for Part 1.1
Image 3 for Part 1.1

Decrease Fox num_layers to 1

{"num_layers": 1, "hidden_dim": 256, "num_frequencies": 10, "learning_rate": 1e-2}
We can see that this performs slightly worse than the original parameter. This make sense since we are having less layers for the net to learn. However, it isn't as bad as decreasing the hidden dimensions. This make sense since decreasing num_layers just mean that the neural net couldn't learn as deep of a relationship between pixels. However, all the informations are still retained as the original.

Image 1 for Part 1.1
Image 3 for Part 1.1
Image 3 for Part 1.1

Custuom Image (Campanile)

{"num_layers": 3, "hidden_dim": 256, "num_frequencies": 10, "learning_rate": 1e-2}
This Cusuom Image is larger than the fox image, which should theoritaically make it harder to reconstruct. Using the original parameters we can see that this reconstruction is indeed worse than the fox image.

Image 1 for Part 1.1
Image 3 for Part 1.1
Image 3 for Part 1.1

Part 2: Fit a Neural Radiance Field from Multi-view Images

Each part implmentation is done by the spec setup. The equations and neural network are all provided in the project spec. I utilized equations such as these to complete the task.

Image 1 for Part 1.1
Image 1 for Part 1.1
Image 1 for Part 1.1
Image 1 for Part 1.1
Image 1 for Part 1.1

The setup from 2.1 to 2.3 is done proof by the following image visuazlied with the given code.

Image 1 for Part 1.1
Image 1 for Part 1.1

The NeRF is set up using the following archetechture.

Image 1 for Part 1.1

Training Results

These are the training results.

Image 1 for Part 1.1
Image 1 for Part 1.1

Validation Results

These are the validation results.

Image 1 for Part 1.1
Image 1 for Part 1.1

Test Results

This is the gif test results. Note that the gif actaully doesn't loop, refresh the page to see the full video from all directions. If you have questions about the process please take a look at the submitted code.

Image 1 for Part 1.1

Bells and wistle

Change background color to blue

Image 1 for Part 1.1