Skip to content

janelu44/streamnerf

 
 

Repository files navigation

StreamNeRF

This repository is an official fork of the MipNeRF repository and includes the implementation of StreamNeRF, a progressive decoding adaptation for NeRF models. This project is part of the 2023 Research Project at TU Delft.

Abstract

Neural Radiance Fields (NeRF) and their adaptations are known to be computationally intensive during both the training and the evaluating stages. Despite being the end goal, directly rendering a full-resolution representation of the scene is not necessary and not very practical for scenarios like streamed applications. Our goal is to design a streamable adaptation for a model that can produce fast, rough estimates of 3D scenes, by only using a shallow part of the network. The quality is subsequently improved as more parts of the network are available, such that it can be used in online applications where the model needs to be transferred. Separate models can be trained at different resolutions, but this approach results in a large space overhead and also increases the evaluation time. This can be mitigated by reducing the depth of low-resolution models, but redundancy will still be high as each new model needs to re-evaluate the input data, rendering previous calculations obsolete. Our method combines key concepts from previous approaches to create a progressively trained model that is able to produce intermediate outputs of increasing quality while attempting to optimize the trade-off between overhead and quality. Our model is able to produce a recognizable representation of the scene with as little as one hidden layer from the original model. It also allows for division into streamable chunks which can be sent individually and, upon reconstruction, provide intermediate outputs that bring consistent improvement in quality. The newly streamed data uses the residual output from previous computations in order to reduce redundancy. We show that the final quality of our adaptation is within 2% of the original in terms of previously used quantitative metrics.

Visual results

Results

Installation

Please see the README file of MipNeRF for installation instructions. To run the adapted model, use scripts/train_stream.sh and scripts/eval_stream.sh instead of the equivalent original files.

Acknowledgements

I would like to thank the authors of NeRF and MipNeRF, and the developers of JaxNeRF.

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 92.6%
  • Shell 3.9%
  • Jupyter Notebook 3.5%