atomgs

[BMVC'24] Official implementation for the paper "AtomGS: Atomizing Gaussian Splatting for High-Fidelity Radiance Field"

https://github.com/rongliu-leo/atomgs

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.7%) to scientific vocabulary

Keywords

gaussian-splatting radiance-field
Last synced: 6 months ago · JSON representation ·

Repository

[BMVC'24] Official implementation for the paper "AtomGS: Atomizing Gaussian Splatting for High-Fidelity Radiance Field"

Basic Info
Statistics
  • Stars: 139
  • Watchers: 5
  • Forks: 8
  • Open Issues: 2
  • Releases: 0
Topics
gaussian-splatting radiance-field
Created about 2 years ago · Last pushed 8 months ago
Metadata Files
Readme License Citation

README.md

AtomGS: Atomizing Gaussian Splatting for High-Fidelity Radiance Field

Project page | Paper | Video | Viewer Pre-built for Windows

Teaser image

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.

Installation

Environment

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. shell git clone --single-branch --branch main https://github.com/RongLiu-Leo/AtomGS.git cd AtomGS conda env create --file environment.yml conda activate AtomGS

Viewer

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.

Scripts

Prepare the data

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

Lauch the Viewer

shell <path to downloaded/compiled viewer>/bin/SIBR_remoteGaussian_app_rwdi.exe

Train an AtomGS Model

https://github.com/RongLiu-Leo/AtomGS/assets/102014841/65dc3d7a-5062-4aa0-82e0-2250a6fc90ea

shell 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. shell python train.py -s <path to COLMAP or NeRF Synthetic dataset> --scaling_lr 0 --iteration 7000 Some Tips

  1. When facing OOM problem, try to reduce --warm_up_until
  2. 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

#### --sourcepath / -s Path to the source directory containing a COLMAP or Synthetic NeRF data set. #### --modelpath / -m Path where the trained model should be stored (output/<random> by default). #### --prunethreshold Threshold is used to prune the Gaussians whose opacity falls below this value. #### --clonethreshold Threshold is used to clone the Gaussians whose positonal gradient exceeds this value. #### --splitthreshold Threshold is used to split the Gaussians whose positonal gradient exceeds this value. #### --atomproliferationuntil Iteration where Atom Proliferation stops. #### --warmupuntil Iteration where warm-up strategy stops. #### --lambdamsssim Influence of MS-SSIM Loss. #### --lambdanormal Influence of Edge-Aware Normal Loss. #### --atominitquantile The percentile of Atom Scale initialization.


View the Trained Model

shell python view.py -s <path to COLMAP or NeRF Synthetic dataset> -m <path to trained model>

Important Command Line Arguments for view.py

#### --sourcepath / -s Path to the source directory containing a COLMAP or Synthetic NeRF data set. #### --modelpath / -m Path where the trained model should be stored (output/<random> by default). #### --iteration Specifies which of iteration to load.


Render the Trained Model

shell python render.py -s <path to COLMAP or NeRF Synthetic dataset> -m <path to trained model>

Important Command Line Arguments for render.py

#### --sourcepath / -s Path to the source directory containing a COLMAP or Synthetic NeRF data set. #### --modelpath / -m Path where the trained model should be stored (output/<random> by default). #### --render_mode Specifies which map to render (rgb by default).


Export Poisson Mesh from the Trained Model

Teaser image shell python export.py -s <path to COLMAP or NeRF Synthetic dataset> -m <path to GS model>

Important Command Line Arguments for export.py #### --source_path / -s Path to the source directory containing a COLMAP or Synthetic NeRF data set. #### --model_path / -m Path where the trained model should be stored (```output/``` by default). #### --iteration Specifies which of iteration to load (```7000``` by default). #### --downsample Downsample ratio for fusing RGB, depth, and normal maps to Poisson Mesh. #### --depth_threshold Threshold is used to cut off the background. #### --poisson_depth The maximum possible depth of the octree used in Poisson Mesh Extraction.


Citation

If you find our code or paper helps, please consider giving us a star or citing: bibtex @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/} }

License

This project is licensed under the Gaussian-Splatting License - see the LICENSE file for details.

Owner

  • Name: Rong Liu
  • Login: RongLiu-Leo
  • Kind: user
  • Company: USC

Computer Vision & Deep Learning

Citation (CITATION.bib)

@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/}
}

GitHub Events

Total
  • Issues event: 1
  • Watch event: 29
  • Push event: 3
  • Fork event: 6
Last Year
  • Issues event: 1
  • Watch event: 29
  • Push event: 3
  • Fork event: 6

Dependencies

submodules/diff-gaussian-rasterization/setup.py pypi
submodules/simple-knn/setup.py pypi
environment.yml pypi
  • matplotlib *
  • open3d *
  • submodules *