An official implementation for Splatfacto-W.
Please update your nerfstudio to the latest development version.
git clone https://github.com/nerfstudio-project/nerfstudio.git
cd nerfstudio
pip install --upgrade pip setuptools
pip install -e .
Ensure that nerfstudio has been installed according to the instructions. Clone or fork this repository and run the commands:
conda activate nerfstudio
cd splatfacto-w/
pip install -e .
ns-install-cli
You can download the phototourism dataset from running.
ns-download-data phototourism --capture-name <capture_name>
To train with it, download the train/test tsv file from the bottom of nerf-w and put it under the data folder (or copy them from ./splatfacto-w/dataset_split
). For instance, for Brandenburg Gate the path would be your-data-folder/brandenburg_gate/brandenburg.tsv
. You should have the following structure in your data folder:
|---brandenburg_gate
| |---dense
| | |---images
| | |---sparse
| | |---stereo
| |---brandenburg.tsv
Then, run the command:
ns-train splatfacto-w --data [PATH] nerf-w-data-parser-config --data_name [trevi,sacre,brandenburg]
If you want to train datasets without nerf-w's train/test split or your own datasets, we provided a light-weight version of the method for general cases. To train with it, you can run the following command
ns-train splatfacto-w-light [OPTIONS] --data [PATH] [dataparser]
You can add these options to enhance the training process:
--pipeline.model.enable_bg_model True
--pipeline.model.enable_alpha_loss True
--pipeline.model.enable_robust_mask True
For phototourism, the dataparser
should be colmap
and you need to change the colmap path through the CLI because phototourism dataparser does not load 3D points.
We provide a temporary script export_script.py
for exporting PLY files. Notice that the background model won't be exported since it is not supported by other PLY viewers.
The basic command structure is as follows:
python export_script.py --load_config [config_file] --output_dir [output_directory] --camera_idx [camera_index]
You can see the current camera index in the CLI as you click each image in Viser.
To render videos for selected camera index, add the --camera_idx [camera_index]
parameter to the end of your ns-render
command.