Installation

This repository is built upon the nerfstudio library. This library has a few requirements, with the most important being having access to a CUDA compatible GPU. Furthermore, for full functionality, it needs colmap, ffmpeg and tinycuda-nn. Those requirements might be a bit tricky to install and the installation is system dependent. The easiest way to install them is to follow the instructions here up to the point of actually installing nerfstudio.

For this approach, I extended the nerfstudio library. Therefore please install my fork of nerfstudio available here. This can be done via:

git clone https://github.com/acse-pms122/nerfstudio_dev.git
cd nerfstudio_dev
pip install -e .

Then, clone this repository and install it via:

cd ..
git clone https://github.com/ese-msc-2022/irp-pms122.git
cd irp-pms122
pip install -e .

Then, install the command line completion via:

ns-install-cli

To check the installation, type:

ns-train seathru-nerf --help

If you see the help message, you are good to go! 🚀🚀🚀

Requirements

This implementation requires a GPU with a CUDA copatible driver. There are two model configurations as summarised in the following table:

Method

Description

Memory

Quality

seathru-nerf

Larger model, used to produced results in report

~23 GB

Best

seathru-nerf-lite

Smaller model

~7 GB

Good

I recommend to use the seathru-nerf method as it was used to experiment and produce the results presented in the paper. The seathru-nerf-lite still produces good results, but has not been tested on all scenes. If you happen to run into a CUDA_OUT_MEMORY_ERROR it is a sign that the available VRAM on the GPU is not enough. You can either use the smaller model, decrease the batch size, do both or upgrade to a better GPU.