.. _installation-label:
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:
.. code-block:: bash
git clone https://github.com/acse-pms122/nerfstudio_dev.git
cd nerfstudio_dev
pip install -e .
Then, clone this repository and install it via:
.. code-block:: bash
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:
.. code-block:: bash
ns-install-cli
To check the installation, type:
.. code-block:: bash
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:
.. list-table::
:header-rows: 1
:widths: 20 40 10 10
* - 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.