Assignment 4 of Learning for 3D Vision (16-889)

1. Sphere Tracing (30pts)

python -m a4.main --config-name=torus

Hyperparameters used as stopping criteria: max_iter=64 , value of sdf considered to lie on the surface <= -1e-4 Here, we iteratively move along the ray with a step size that is equal to the value of the sdf at that point until stopping criteria is met.

2. Optimizing a Neural SDF (30pts)

Optimized Neural SDF

python -m a4.main --config-name=points

Eikonal loss is implemented as given in the slides : mean(l1_loss(norm_l2(gradients)-1.))

Hyperparameters used :

number of MLP layers=6 with harmonic xyz embedding, epochs=5000, inter_weight=0.1, eikonal_weight=0.02

3. VolSDF (30 pts)

python -m a4.main --config-name=volsdf

How does high beta bias your learned SDF? What about low beta?

For high beta value, density at the surface will decrease and will be higher inside the object. As beta goes to zero, the density will converge to a step function where all points belonging inside the object will have a constant density of alpha.

Would an SDF be easier to train with volume rendering and low beta or high beta? Why? Low beta should be preferrable, as it would promote higher density for a point inside than a point that lies on the surface.

Would you be more likely to learn an accurate surface with high beta or low beta? Why? Low beta is likely to learn an accurate surface as it would separate the points that are inside, on the surface and outside more clearly.

Optimized result : with beta=0.05 (this beta gives a decent result as we would prefer a lower beta value)

Different hyperparamter :

for Beta = 1 we get ,

for Beta = 0.5 we get ,

4. Neural Surface Extras (CHOOSE ONE! More than one is extra credit)

4.1 Render a Large Scene with Sphere Tracing (10 pts)

Various objects (box, sphere, torus) are rendered together in a scene.

Running command : python -m a4.main --config-name=torus

4.2 Fewer Training Views (10 pts)

We train the SDF and Nerf on 2 different setting (number of views)

For number of views=10

Nerf (left) , SDF (middle) , SDF geometry (right)

For number of views=20

Nerf (left) , SDF (middle) , SDF geometry (right)

4.3 Alternate SDF to Density Conversions (10 pts)

NeuS sdf_to_density implementation with s = 80 as hyperparameter

Number of late days 1