Skip to main content

A collection of NeRF baselines for benchmarking

Project description

NerfBaselines

PyPI - Version GitHub License Downloads

The goal of this project is to provide a simple uniform way to benchmark different NeRF methods on standard datasets to allow for an easy comparison. The implemented methods use the original code published by the authors and, therefore, the resulting performance matches the original implementation. DISCLAIMER: This project is at a very early stage of its development. Stay tuned!

Getting started

Start by installing the nerfbaselines pip package on your host system.

pip install nerfbaselines

Now you can use the nerfbaselines cli to interact with NerfBaselines.

The next step is to choose the backend which will be used to install different methods. At the moment there are the following backends implemented:

  • docker: Offers good isolation, requires docker to be installed and the user to have access to it (being in the docker user group).
  • apptainer: Similar level of isolation as docker, but does not require the user to have privileged access.
  • conda (not recommended): Does not require docker/apptainer to be installed, but does not offer the same level of isolation and some methods require additional dependencies to be installed. Also, some methods are not implemented for this backend because they rely on dependencies not found on conda.
  • python (not recommended): Will run everything directly in the current environment. Everything needs to be installed in the environment for this backend to work.

The backend can be set as the --backend <backend> argument or using the NB_DEFAULT_BACKEND environment variable.

Downloading data

For some datasets, e.g. Mip-NeRF 360 or NerfStudio, the datasets can be downloaded automatically. You can specify the argument --data external://dataset/scene during training or download the dataset beforehand by running nerfbaselines download-dataset dataset/scene. Examples:

# Downloads the garden scene to the cache folder.
nerfbaselines download-dataset mipnerf360/garden

# Downloads all nerfstudio scenes to the cache folder.
nerfbaselines download-dataset nerfstudio

# Downloads kithen scene to folder kitchen
nerfbaselines download-dataset mipnerf360/kitchen -o kitchen

Training

To start the training use the nerfbaselines train --method <method> --data <data> command. Use --help argument to learn about all implemented methods and supported features.

Rendering

The nerfbaselines render --checkpoint <checkpoint> command can be used to render images from a trained checkpoint. Again, use --help to learn about the arguments.

Implementation status

Methods:

  • Nerfacto
  • Instant-NGP
  • Gaussian Splatting
  • Tetra-NeRF
  • Mip-NeRF 360
  • NeRF
  • Mip-NeRF
  • Zip-NeRF

Datasets/features:

  • Mip-NeRF 360 dataset
  • Blender dataset
  • any COLMAP dataset
  • any NerfStudio dataset
  • automatic dataset download
  • undistorting images for methods that do not support complex camera models (Gaussian Splatting)
  • Tanks and Temples
  • LLFF dataset
  • HDR images support
  • RAW images support
  • handling large datasets

Contributing

Contributions are very much welcome. Please open a PR with a dataset/method/feature that you want to contribute. The goal of this project is to slowly expand by implementing more and more methods.

License

This project is licensed under the MIT license.

Thanks

A big thanks to the authors of all implemented methods for the great work they have done.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nerfbaselines-0.0.5.tar.gz (81.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nerfbaselines-0.0.5-py3-none-any.whl (86.2 kB view details)

Uploaded Python 3

File details

Details for the file nerfbaselines-0.0.5.tar.gz.

File metadata

  • Download URL: nerfbaselines-0.0.5.tar.gz
  • Upload date:
  • Size: 81.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for nerfbaselines-0.0.5.tar.gz
Algorithm Hash digest
SHA256 5fcb967b1a7820d3e7675d5c94ed8f2abc97a993db2b5d7fb1ffad1b6ce73a08
MD5 082540f1261b5c8555adc0fe982d84ff
BLAKE2b-256 c2254f7308faf9f170fecd3b0890e229c8a3a8ea394ab66a32f07cf3dc4b5cf7

See more details on using hashes here.

File details

Details for the file nerfbaselines-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: nerfbaselines-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 86.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for nerfbaselines-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 557ba63632b6c02800b153f98228d75df9066344e64631802afcf93f9e987052
MD5 d66bc6fd72337302bb9e3bdfbdb8e55a
BLAKE2b-256 c547911de958a55683db69decf73130acbebdf87f0146e00af1db07c3b598905

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page