Project page | Paper | Video | Viewer Pre-built for Windows
This repo contains the official implementation for the paper "AtomGS: Atomizing Gaussian Splatting for High-Fidelity Radiance Field". Our work builds upon 3DGS and GS Monitor codebases.
This codebase builds upon the 3DGS repository and maintains compatibility with it. Therefore, if you want to set up the repository smoothly, we strongly advise you to explore the video tutorial and the FAQ section from 3DGS. This may help you identify if your concern is a known issue and, ideally, lead you to a solution.
git clone --single-branch --branch main https://github.com/RongLiu-Leo/AtomGS.git
cd AtomGS
conda env create --file environment.yml
conda activate AtomGS
The Pre-built Viewer for Windows can be found here. If you use Ubuntu or you want to check the viewer usage, please refer to GS Monitor.
Adjust the data into the format like:
<location>
|---input
|---<image 0>
|---<image 1>
|---...
Then run
python convert.py -s <location> [--resize] #If not resizing, ImageMagick is not needed
<path to downloaded/compiled viewer>/bin/SIBR_remoteGaussian_app_rwdi.exe
atomgs.mp4
python train.py -s <path to COLMAP or NeRF Synthetic dataset>
For object-centered or masked datasets, if there is no large background, we advise using a dense representation to achieve better geometry accuracy.
python train.py -s <path to COLMAP or NeRF Synthetic dataset> --scaling_lr 0 --iteration 7000
Some Tips
- When facing OOM problem, try to reduce
--warm_up_until
- If you observe an oversmooth problem, try to reduce
--lambda_normal
; If you think the geometry is still noisy, try to increase--lambda_normal
.
Important Command Line Arguments for train.py
Path to the source directory containing a COLMAP or Synthetic NeRF data set.
Path where the trained model should be stored (output/<random>
by default).
Threshold is used to prune the Gaussians whose opacity falls below this value.
Threshold is used to clone the Gaussians whose positonal gradient exceeds this value.
Threshold is used to split the Gaussians whose positonal gradient exceeds this value.
Iteration where Atom Proliferation stops.
Iteration where warm-up strategy stops.
Influence of MS-SSIM Loss.
Influence of Edge-Aware Normal Loss.
The percentile of Atom Scale initialization.
python view.py -s <path to COLMAP or NeRF Synthetic dataset> -m <path to trained model>
Important Command Line Arguments for view.py
Path to the source directory containing a COLMAP or Synthetic NeRF data set.
Path where the trained model should be stored (output/<random>
by default).
Specifies which of iteration to load.
python render.py -s <path to COLMAP or NeRF Synthetic dataset> -m <path to trained model>
Important Command Line Arguments for render.py
Path to the source directory containing a COLMAP or Synthetic NeRF data set.
Path where the trained model should be stored (output/<random>
by default).
Specifies which map to render (rgb
by default).
python export.py -s <path to COLMAP or NeRF Synthetic dataset> -m <path to GS model>
Important Command Line Arguments for export.py
Path to the source directory containing a COLMAP or Synthetic NeRF data set.
Path where the trained model should be stored (output/<random>
by default).
Specifies which of iteration to load (7000
by default).
Downsample ratio for fusing RGB, depth, and normal maps to Poisson Mesh.
Threshold is used to cut off the background.
The maximum possible depth of the octree used in Poisson Mesh Extraction.
If you find our code or paper helps, please consider giving us a star or citing:
@misc{liu2024atomgs,
title={AtomGS: Atomizing Gaussian Splatting for High-Fidelity Radiance Field},
author={Rong Liu and Rui Xu and Yue Hu and Meida Chen and Andrew Feng},
year={2024},
eprint={2405.12369},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://rongliu-leo.github.io/AtomGS/}
}
This project is licensed under the Gaussian-Splatting License - see the LICENSE file for details.