3D Geometry-aware Deformable Gaussian Splatting for Dynamic View Synthesis

January 13, 2025 · View on GitHub

CVPR 2024

Project Page | Arxiv

Zhicheng Lu1*, Xiang Guo1*, Le Hui1, Tianrui Chen1,2, Min Yang2, Xiao Tang2, Feng Zhu2, Yuchao Dai1

1School of Electronics and Information, Northwestern Polytechnical University   2Samsung R&D Institute

* Equal Contribution

Installation

conda env create --file environment.yml
conda activate gags
pip install einops open3d 

Install torchsparse according to the following link:

https://github.com/PJLab-ADG/OpenPCSeg/blob/master/docs/INSTALL.md

Usage

Data Preparation

Taking the D-NeRF synthetic dataset as an example, you can download the data from the following link: D-NeRF Dataset. You can download our pretrained model for D-NeRF Dataset Google Drive, and modify the source_path in <output/extpname/config.txt> and <output/extpname/cfd_args> to your DNeRF dataset directory.

Training

python train.py -s <DATA_DIR>  --eval \
     --port 4810 --expname 'bouncingballs' --voxelsize 0.005 

Rendering

After optimization, the numerical result can be evaluated via:

python render.py -m ./output/<OUT_DIR> --render_type 'metrics'

You can fix the viewpoint and obtain the changes of the scene over time:

python render.py -m ./output/<OUT_DIR> --render_type 'time' --frame_pose 5

Or you can fix time and obtain the changes of the scene over viewpoint:

python render.py -m ./output/<OUT_DIR> --render_type 'pose' 

Meanwhile, you can change time and viewpoint at the same time:

python render.py -m ./output/<OUT_DIR> --render_type 'time_pose' 

Evaluation

python metrics.py -m ./output/<OUT_DIR> 

Citation

@inproceedings{lu2024gagaussian,
  title={3D Geometry-aware Deformable Gaussian Splatting for Dynamic View Synthesis},
  author={Lu, Zhicheng and Guo, Xiang and Hui, Le and Chen, Tianrui and Yang, Ming and Tang, Xiao and Zhu, Feng and Dai, Yuchao},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  year={2024}
}