SharpGS: Sharpness-Preserving 3D Gaussian Splatting with Differentiable Blur-Driven Density Control (ECCV 2026)
Official Implementation
This repository contains the official dateset and code in the following paper:
SharpGS: Sharpness-Preserving 3D Gaussian Splatting with Differentiable Blur-Driven Density Control
Moonsoo Jeong1, Dongbeen Kim1, Minseong Kim1, Sungkil Lee1,*
1Sungkyunkwan University
*Corresponding author
European Conference on Computer Vision (ECCV) 2026
We present SharpGS, a differentiable blur-driven density control, which enhances the quality of 3D Gaussian Splatting (3DGS). Standard 3DGS often struggles to capture intricate details, particularly in textured patterns and object boundaries, due to the limited sensitivity of its density control. Simple finer densification can result in excessive primitive counts with marginal quality gain. To address this, we introduce blur as an effective perceptual cue, leveraging CUDA-based differentiable blur. Our density control estimates per-primitive blur levels by comparing reconstructions to blurred ground-truth images, and identifies high-frequency regions where additional primitives are required. While this naturally produces more primitives, we counterbalance this by suppressing redundant primitives. Specifically, we penalize the blur levels of inherently smooth regions such as sky, and regularize the opacities of potential split/clone candidates. We experimentally demonstrate that SharpGS greatly improves the state-of-the-art 3DGS methods in terms of quality, while keeping learned primitives compact.
Use the provided environment.yml file to create and install the conda environment:
conda env create -f environment.yml
conda activate sharpGSReplace items in braces {} with your actual values when running the commands.
OMP_NUM_THREADS=4 \
CUDA_VISIBLE_DEVICES={gpu_idx} \
python train-sharpgs.py \
-s {dataset_dir} \
-m {output_dir} \
-i images or images_{scale} \
--use_reg \
--decrease_opacity \
--eval{gpu_idx}: GPU index to use{dataset_dir}: Path to dataset{output_dir}: Directory to stored the trained modelimagesorimages_{scale}: Directory of original images or scaled images, aligned with the resolution settings adopted in the official 3DGS results.- Mip-NeRF360 datasets
Following the official 3DGS settings, scenes require down-scaled images:- Use
images_4: bicycle, flowers, garden, stump, treehill - Use
images_2: bonsai, counter, kitchen, room
- Use
- Tanks&Temples (train, truck) and Deep Blending (drjohnson, playroom)
These scenes use the original resolution, so use the defaultimagesdirectory.
- Mip-NeRF360 datasets
OMP_NUM_THREADS=4 \
CUDA_VISIBLE_DEVICES={gpu_idx} \
python metrics.py \
-m {output_dir} \
--skip_trainIf you find this work useful, please cite:
@inproceedings{jeong26sharpgs,
title = {{SharpGS: Sharpness-Preserving 3D Gaussian Splatting with Differentiable Blur-Driven Density Control}},
author = {Jeong, Moonsoo and Kim, Dongbeen and Kim, Minseong and Lee, Sungkil},
booktitle = {(Provisionally accepted to) European Conference on Computer Vision (ECCV)},
year = {2026}
}This repository is based on the 3DGS. Thanks for their awesome work.