🌦 [ICRA 2025] WeatherGS: 3D Scene Reconstruction in Adverse Weather Conditions via Gaussian Splatting
WeatherGS is a novel framework for 3D scene reconstruction under challenging weather conditions such as rain and snow. Built upon 3D Gaussian Splatting (3DGS), WeatherGS addresses the limitations of conventional 3DGS models when applied to scenes with dynamic, weather-induced noise.
⭐ If you like our work or find it useful, please give us a star or cite below. Thanks!
- 🌧️ Weather-Resilient: Effectively distinguishes and filters out transient artefacts to improve static scene reconstruction.
- 🧠 Mask-Guided Optimization: Leverages learned visibility and transient masks to suppress weather-induced distortions.
- 🎥 Photo-Realistic Output: Maintains high-fidelity rendering even under severe weather degradation.
- ⚡ Fast Rendering: Preserves the real-time rendering capability of the original 3D Gaussian Splatting framework.
Make sure your system supports PyTorch with GPU acceleration.
git clone https://github.com/Jumponthemoon/WeatherGS.git
cd WeatherGS
We recommend using Anaconda:
conda env create --file environment.yml
conda activate weathergs
You can download preprocessed dataset through this link:
👉 Google Drive - WeatherGS Resource
cd 3DGS
python train.py -s /path/to/scene --masks /path/to/scene/masks
Due incompatibility, you should build another two seperated environments to run the AEF and LED modules:
cd AEF
conda env create --file environment.yml
conda activate aef
python infer.py --image_path /path/to/images
If you know the type of the scene, you can add --task for better performance:
python infer.py --image_path /path/to/images --task desnow # or derain
⚠ Requires TensorFlow 1.15. We recommend using a separate environment:
cd LED
conda deactivate
conda create -n led python=3.6
conda activate led
pip install -r requirements.txt
First generate coarse masks:
python detect_occlusion.py --image_path /path/to/processed_images/
Then refine the mask by changing threshold and dilation parameters:
python refine_mask.py --scene_path /path/to/scene/
The final masks will be saved in the masks/
directory.
If you use this code or find this project helpful, please cite:
@misc{weathergs_qian,
title={WeatherGS: 3D Scene Reconstruction in Adverse Weather Conditions via Gaussian Splatting},
author={Chenghao Qian and Yuhu Guo and Wenjing Li and Gustav Markkula},
year={2025},
eprint={2412.18862},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2412.18862},
}
This work builds upon 3D Gaussian Splatting, DiffPlugin and AttGAN. We thank for their amazing works!