This is an extended version of C3DGS (CVPR24) for dynamic scenes.
Our code is based on STG@d9833e6.
git clone https://github.com/maincold2/Dynamic_C3DGS.git
cd Dynamic_C3DGS
bash script/setup.sh
We used Neural 3D and Technicolor datasets.
conda activate colmapenv
# Neural 3D
python script/pre_n3d.py --videopath <location>/<scene>
# Technicolor
python script/pre_technicolor.py --videopath <location>/<scene>
conda activate dynamic_c3dgs
python train.py --quiet --eval --config config/n3d_ours/<scene>.json --model_path <path to save model> --source_path <location>/<scene>/colmap_0
Applying post-processings for compression.
Storing npz file reflecting the actual storage.
For example, we can apply post-processings and save the compressed results in .npz format by the following command.
python train.py --quiet --eval --config configs/n3d_ours/cook_spinach.json --model_path log/ours_cook_spinach --source_path <location>/cook_spinach/colmap_0 --comp --store_npz
More hyper-parameters in the config file
Command line arguments can also set these.
Weight of masking loss to control the number of Gaussians, 0.0005 by default
Learning rate of the masking parameter, 0.01 by default
Learning rate for the neural field, 0.001 by default
Step schedule for training the neural field
Maximum hashmap size (log) of the neural field
Codebook size in each R-VQ stage for geometric attributes
The number of R-VQ stages for geometric attributes
Codebook size in each R-VQ stage for temporal attributes
The number of R-VQ stages for temporal attributes
Pruning inteval after densification, 1000 by default
The iteration at which R-VQ is implemented
# Neural 3D
python test.py --quiet --eval --skip_train --valloader colmapvalid --configpath config/n3d_ours/<scene>.json --model_path <path to model>
# Technicolor
python test.py --quiet --eval --skip_train --valloader technicolorvalid --configpath config/techni_ours/<scene>.json --model_path <path to model>
Without --comp and --store_npz options, our code saves the models in the original STG format, which can be used for the STG's viewer.
A great thanks to the authors of 3DGS and STG for their amazing work. For more details, please check out their repos.
@article{Lee_2024_C3DGS,
title={Compact 3D Gaussian Splatting for Static and Dynamic Radiance Fields},
author={Lee, Joo Chan and Rho, Daniel and Sun, Xiangyu and Ko, Jong Hwan and Park, Eunbyung},
journal={arXiv preprint arXiv:2408.03822},
year={2024}
}
@InProceedings{Lee_2024_CVPR,
author = {Lee, Joo Chan and Rho, Daniel and Sun, Xiangyu and Ko, Jong Hwan and Park, Eunbyung},
title = {Compact 3D Gaussian Representation for Radiance Field},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
year = {2024},
pages = {21719-21728}
}