Skip to content

fraunhoferhhi/Improving-ADC-3DGS

Repository files navigation

Improving Adaptive Density Control for 3D Gaussian Splatting

Glenn Grubert1,2 · Florian Barthel1,2 · Anna Hilsmann2 · Peter Eisert1,2

1Humboldt-Universität zu Berlin, Berlin, Germany · 2Fraunhofer Heinrich Hertz Institute (HHI), Berlin, Germany

Keywords

Gaussian Splatting, Adaptive Density Control, Densification, Novel View Synthesis, 3D Scene Reconstruction

Abstract

3D Gaussian Splatting (3DGS) has become one of the most influential works in the past year. Due to its efficient and high-quality novel view synthesis capabilities, it has been widely adopted in many research fields and applications. Nevertheless, 3DGS still faces challenges to properly manage the number of Gaussian primitives that are used during scene reconstruction. Following the adaptive density control (ADC) mechanism of 3D Gaussian Splatting, new Gaussians in under-reconstructed regions are created, while Gaussians that do not contribute to the rendering quality are pruned. We observe that those criteria for densifying and pruning Gaussians can sometimes lead to worse rendering by introducing artifacts. We especially observe under-reconstructed background or overfitted foreground regions. To encounter both problems, we propose three new improvements to the adaptive density control mechanism. Those include a correction for the scene extent calculation that does not only rely on camera positions, an exponentially ascending gradient threshold to improve training convergence, and significance-aware pruning strategy to avoid background artifacts. With these adaptations, we show that the rendering quality improves while using the same number of Gaussians primitives. Furthermore, with our improvements, the training converges considerably faster, allowing for more than twice as fast training times while yielding better quality than 3DGS. Finally, our contributions are easily compatible with most existing derivative works of 3DGS, making them relevant for future works.

no image source
Figure: Rendered novel views from the drjohnson, garden, and flowers scene using 3DGS, PixelGS, and our method. Our method produces better backgrounds, creates fewer artifacts, and uses the same number of Gaussians as 3DGS.

Overview

This repository contains the code for our paper "Improving Adaptive Density Control for 3D Gaussian Splatting".

Our improvements consist of:

  • Correction for the scene extent (Section 4.1)

  • Exponentially ascending gradient threshold (Section 4.2)

  • Significance-aware pruning strategy (Section 4.3)

These are implemented in the code and labeled with the corresponding section numbers.

Our implementation builds upon the code of PixelGS (https://github.com/zhengzhang01/Pixel-GS), which in turn relies on the 3DGS implementation (https://github.com/graphdeco-inria/gaussian-splatting). Additionally, our code follows certain approaches from "Revising Densification in Gaussian Splatting" by Bulò et al., which are highlighted in the code with comments at the relevant sections. For further details on related work and our own improvements, please refer to our paper.

Cloning the Repository

SSH

git clone git@github.com:fraunhoferhhi/Improving-ADC-3DGS.git --recursive

HTTPS

git clone https://github.com/fraunhoferhhi/Improving-ADC-3DGS.git --recursive

Installation

conda create -n pixelgs python=3.9 -y
conda activate pixelgs
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.8 -c pytorch -c nvidia

pip install -r requirements.txt

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

Datasets

The scenes used for evaluation in our paper are from the Deep Blending and Tanks and Temples datasets, both available from https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/.

Benchmarking

The commands for optimizing, rendering, and evaluating the scenes are all the same as for the original implementation of 3DGS. For qualitative and quantitative evaluation, we used the 3DGS evaluation pipeline provided by the full_eval.py script. For that reason, we simply redirect to https://github.com/graphdeco-inria/gaussian-splatting.

Notes

In addition to the implementations for our improvements, this repository contains a data logger for tracking cloning, splitting, and pruning operations, as well as for calculating the test loss during training. Furthermore, the file full_pipeline.py offers a set of functionalities for comparative analysis of different configurations. It uses the output files (eval_epochs, eval_scores, FINAL_REGISTER) generated by the data logger. For sequential training with different configurations, run_experiment.py can be used. The configurations for logging and execution can be adjusted in cuda_configs/devices.py.

To Do

For the calculation of the alpha-blending coefficients sum per Gaussian, a fake color tensor is passed to the rasterizer. The rendered fake image is then used to compute a fake loss, which is added to the training loss. Through backpropagation, the alpha-blending coefficients can then be accessed via the fake color tensor. This approach was taken from Bulò et al. and allows access to the alpha-blending coefficients without needing to re-implement the rasterizer. However, as a result of this method, we observed significant runtime degradation. For the future, it would be beneficial to implement a rasterizer that provides efficient access to the alpha-blending coefficients.


Contact

For questions or inquiries, please contact:

Acknowledgements

This work has partly been funded by the German Research Foundation (project 3DIL, grant no. 502864329), the German Federal Ministry of Education and Research (project VoluProf, grant no. 16SV8705), and the European Commission (Horizon Europe project Luminous, grant no. 101135724).

Citation

If you find this project useful, please consider citing:

@inproceedings{Grubert_2025,
   title={Improving Adaptive Density Control for 3D Gaussian Splatting},
   url={http://dx.doi.org/10.5220/0013308500003912},
   DOI={10.5220/0013308500003912},
   booktitle={Proceedings of the 20th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications},
   publisher={SCITEPRESS - Science and Technology Publications},
   author={Grubert, Glenn and Barthel, Florian and Hilsmann, Anna and Eisert, Peter},
   year={2025},
   pages={610–621}
}

About

[VISAPP '25] Improving Adaptive Density Control for 3D Gaussian Splatting

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published