Skip to content

[CVPR'24 Best Student Paper] Mip-Splatting: Alias-free 3D Gaussian Splatting

License

Notifications You must be signed in to change notification settings

Aokiji996/mip-splatting-nerf

 
 

Repository files navigation

Mip-Splatting: Alias-free 3D Gaussian Splatting

Zehao Yu · Anpei Chen · Binbin Huang · Torsten Sattler · Andreas Geiger

Logo

We introduce a 3D smoothing filter and a 2D Mip filter for 3D Gaussian Splatting (3DGS), eliminating multiple artifacts and achieving alias-free renderings.


Installation

Clone the repository and create an anaconda environment using

git clone [email protected]:autonomousvision/mip-splatting.git
cd mip-splatting

conda create -y -n mip-splatting python=3.8
conda activate mip-splatting

pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 -f https://download.pytorch.org/whl/torch_stable.html
conda install cudatoolkit-dev=11.3 -c conda-forge

pip install -r requirements.txt

pip install submodules/diff-gaussian-rasterization
pip install submodules/simple-knn/

Dataset

Blender Dataset

Please download and unzip nerf_synthetic.zip from the NeRF's official Google Drive. Then generate multi-scale blender dataset with

python convert_blender_data.py --blender_dir nerf_synthetic/ --out_dir multi-scale

Mip-NeRF 360 Dataset

Please download the data from the Mip-NeRF 360 and request the authors for the treehill and flowers scenes.

Training and Evaluation

# single-scale training and single-scale testing on NeRF-synthetic dataset
python scripts/run_nerf_synthetic_stmt.py 

# multi-scale training and multi-scale testing on NeRF-synthetic dataset
python scripts/run_nerf_synthetic_mtmt.py 

# single-scale training and single-scale testing on the mip-nerf 360 dataset
python scripts/run_mipnerf360.py 

# single-scale training and multi-scale testing on the mip-nerf 360 dataset
python scripts/run_mipnerf360_stmt.py 

Online viewer

After training, you can fuse the 3D smoothing filter to the Gaussian parameters with

python create_fused_ply.py -m {model_dir}/{scene} --output_ply fused/{scene}_fused.ply"

Then use our online viewer to visualize the trained model.

Acknowledgements

This project is built upon 3DGS. Please follow the license of 3DGS. We thank all the authors for their great work and repos.

Citation

If you find our code or paper useful, please cite

@article{Yu2023MipSplatting,
  author    = {Yu, Zehao and Chen, Anpei and Huang, Binbin and Sattler, Torsten and Geiger, Andreas},
  title     = {Mip-Splatting: Alias-free 3D Gaussian Splatting},
  journal   = {arXiv:2311.16493},
  year      = {2023},
}

About

[CVPR'24 Best Student Paper] Mip-Splatting: Alias-free 3D Gaussian Splatting

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 70.1%
  • Cuda 23.6%
  • C++ 5.6%
  • Other 0.7%