Sign inSign up

dromni/nerfstudio

By dromni

Updated almost 2 years ago

Docker Image containing nerfstudio as well as all required packages and software to use it.

Image
Machine learning & AI
Developer tools
28

50K+

dromni/nerfstudio repository overview

nerfstudio docker image

This is a docker image implementing nerfstudio (nerfstudio) as a ready to be used solution. All requirements and used third party software (like colmap) is included in the image. It is based on CUDA 11.8 and supports the following CUDA architectures:

GPUCUDA arch
H10090
40X089
30X086
A10080
20X075
TITAN V / V10070
10X0 / TITAN Xp61
9X052

Using an interactive container

The docker container can be launched with an interactive terminal where nerfstudio commands can be entered as usual. Some parameters are required and some are strongly reocmmended for usage as following:

docker run --gpus all \                                         # Give the container access to nvidia GPU (required).
            -v /folder/of/your/data:/workspace/ \               # Mount a folder from the local machine into the container to be able to process them (required).
            -v /home/<YOUR_USER>/.cache/:/home/user/.cache/ \   # Mount cache folder to avoid re-downloading of models everytime (recommended).
            -p 7007:7007 \                                      # Map port from local machine to docker container (required to access the web interface/UI).
            --rm \                                              # Remove container after it is closed (recommended).
            -it \                                               # Start container in interactive mode.
            --ipc=host \                                        # Give the container access to the host memory to avoid memory limitations which is by default 64 MB (recommended).
            dromni/nerfstudio:<tag>                             # Docker image name

Call nerfstudio commands directly

Besides, the container can also directly be used by adding the nerfstudio command to the end.

docker run --gpus all \                                         # Give the container access to nvidia GPU (required).
            -v /folder/of/your/data:/workspace/ \               # Mount a folder from the local machine into the container to be able to process them (required).
            -v /home/<YOUR_USER>/.cache/:/home/user/.cache/ \   # Mount cache folder to avoid re-downloading of models everytime (recommended).
            -p 7007:7007 \                                      # Map port from local machine to docker container (required to access the web interface/UI).
            --rm \                                              # Remove container after it is closed (recommended).
            -it \                                               # Start container in interactive mode.
            --ipc=host \                                        # Give the container access to the host memory to avoid memory limitations which is by default 64 MB (recommended).
            dromni/nerfstudio:<tag>                             # Docker image name
            ns-process-data video --data /workspace/video.mp4   # Smaple command of nerfstudio.

Note

  • The container works on Linux and Windows, depending on your OS some additional setup steps might be required to provide access to your GPU inside containers. (See https://docs.nvidia.com/cuda/wsl-user-guide/index.html)
  • Paths in Windows use backslash '\' between folders and therefore mounts mostly need quotes around the paths to avoid issues caused by the backslash interpreted as escape character. Please use -v 'C:\folder1\folder2\:/workspace/'
  • Everything inside the container, what is not in a mounted folder (workspace in the above example), will be permanently removed after destroying the container. Always do all your tasks and output folder in workdir!
  • The user inside the container is called user (with password 'user') and is mapped to the local user with ID 1000 (usually the first non-root user on Linux systems).
  • The container currently is based on nvidia/cuda:11.8.0-devel-ubuntu22.04, consequently it comes with CUDA 11.8 which must be supported by the nvidia driver. No local CUDA installation is required or will be affected by using the docker image.
  • Alternatively, to setting --ipc=host you can also assign a specific amount of memory to the container by using --shm-size=XXgb (which asignes XX gigabyte of memory). The downside is that you need to know how much memory you want to provide, in case of ipc=host the container has access to the whole memory available to the system and by this avoids bad chosen values.

Changelog of the docker image

For changes of nerfstudio itself please visit the nerfstudio github releases page.

Planned
  • Update base image to CUDA 12.2
main
  • NOT recommended! You should always prefer releases instead as this version might not work as expected and is irregularly updated!
1.1.5
  • Update gsplat to 1.4.0
1.1.4
  • Update gsplat to 1.3.0
  • Update colmap to 3.10
  • Update glog to 0.7.1
  • Update Ceres-solver to 2.2.0
  • Remove pixel-perfect-SfM
1.1.3
  • Update gsplat to 1.0.0
1.1.2
  • none
1.1.1
  • Remove GARfield (incompatible with new gsplat)
  • Remove SeaThru-NeRF
1.1.0
  • Update gsplat to 0.1.11
  • Add BioNeRF
1.0.3
  • none
1.0.2
  • Update gsplat to 0.1.8 (2024-03-18)
1.0.1
  • none
1.0.0
  • Add gsplat for rendering Gaussian Splats in nerfstudio viewer
  • Update hloc to v1.4
  • Pre-installed nerfstudio autocompletions
  • Reduce image size by removing pip build cache
  • Dropped support for CUDA architecture 3.7
  • Added GARField.studio (www.garfield.studio)
0.3.4
  • Update pytorch to version 2
0.3.3
  • Removed k-planes as it is incompatible with the new nerfstudio version. Will be re-added as soon as fixed
0.3.2
  • Added torchtyping
  • Added external NeRF models: LeRF, NeRF-player, k-planes, NeRF2NeRF
0.3.1
  • none
0.3.0
  • Upgrade to PyTorch 2
0.2.1
  • none
0.2.0
  • Added npm, required for prettier used by nerfstudio.
0.1.19
  • Added temporary fix to make masks work again. This results in higher VRAM usage in case you are using masks.
0.1.18
  • Bump torch from 1.12.1 to 1.13.1.
  • Bump torchvision from 0.13.1 to 0.14.1.
  • Add hloc as alternative feature maching tool for ns-process-data.
0.1.17
  • Bump CUDA from 11.7 to 11.8 (should improve computation times for new GPUs a little)
  • Bump Colmap from 3.7 to 3.8
  • Added the user ('user') to sudoers list withput password prompting. Now you can use elevated rights, e.g. by typing sudo apt update.
  • Added curl (required for some download tasks).
0.1.16
  • Added multi CUDA architecture support for the nvidia architectures mentioned at the top.
No track of changes for <= 0.1.15

Tag summary

Content type

Image

Digest

sha256:adcca86d1

Size

12.7 GB

Last updated

almost 2 years ago

docker pull dromni/nerfstudio:1.1.5