Coder Social home page Coder Social logo

nerf-jax's People

Contributors

animatedrng avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

tubbz-alt buryang

nerf-jax's Issues

Add option to control Oryx sow/reap debug image interface

At the moment, we sow a few intermediate values and gradients of the integrate function using Oryx. It would be nice to sow all of these values, but only if the a certain flag is provided. We can then reap all of these functions and visualize them with Tensorboard.

Clean up `map_batched` and `map_batched_rng`

Currently these functions return the RNG key and are implemented in a weird and un-intuitive way (e.g. the arguments into the map callback). We can probably refactor these functions to have a cleaner, more JAX-idiomatic interface.

Have the geometry network control the standard deviation on phi

It's a bit unusual, and I'm not totally sure if this is the purview of the geometry network or the appearance network. Probably the geometry network because it's not parameterized with the view direction. But this is one way to ensure that we can represent intrinsically fuzzy details (e.g. hair) without sacrificing surface quality on the non-fuzzy surfaces. Unclear exactly how the geometry network represents this value, and how it interacts with the global coarse-to-fine phi schedule. Maybe it just scales the standard deviation on phi accordingly?

Figure out coarse-to-fine schedule for phi standard deviation and sampling strategy

Currently we use a stratified sampler to pick isosurfaces, with a constant step size between each isosurface sample (i.e we sample the -2, -1, 0, +1, +2 isosurfaces with a bit of jitter). We also have a standard deviation on $\phi(x, \sigma)$, the function which determines the volume density as we get closer or farther from the zero isosurface.

These values currently don't change over the course of optimization. We probably should reduce them, and possibly even reduce the number of samples that we perform.

Add finite difference tests

At the moment, we don't have any finite difference tests (like autograd.gradcheck in PyTorch). For cases in which the rendering integrand is actually smooth (i.e all composited isosurfaces intersect), these tests will probably do a good job. The first ideal candidate would be the integrate function, as we can manually specify valid isosurfaces. It's also possible that these tests will help alert us to the presence of NaNs during the backwards pass. See this page in the Autodiff cookbook for details.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.