Skip to content

Repository files navigation

LumiGauss

This is the official implementation of LumiGauss: Relightable Gaussian Splatting in the Wild, accepted at WACV2025.

Paper SuppMat Used Data

Teaser Image

Demo GIF

[UPDATE 18/05/2025]

Preprocessed and used data are available here. Place the data in data subfolder. All configs for evaluation with gt test envmaps are provided in eval_files folders (only paths to envmap jpgs need to be adjusted). run_all.sh script uses these configs now.

Installation

Clone the Repository:

git clone https://github.com/joaxkal/lumigauss.git --recursive
cd lumigauss

Create the Environment:

conda env create --file environment.yml
conda activate lumigauss

The environment.yml file includes pinned versions of key dependencies. However, please note that certain packages may require adjustments depending on your specific CUDA version and GPU setup.

For users on different hardware setups, it's possible to create a base environment using the original 2DGS repository and then manually install missing dependencies.

Dataset

We use data from NERF-OSR. Required dataset structure:

data/
├── images/            # Undistorted images
├── masks/             # Corresponding masks
├── sparse/            # COLMAP sparse reconstruction data
└── lk2_split.csv      # Train/test split file

*_split.csv format:

filename;split
02-05_19_30_DSC_2599.jpg;train
25-08_19_30_IMG_0421.JPG;test
...

Usage

Refer to run_all.sh for scripts to train, render, and test. We provide two implementations: one using MLP and another with direct SH_env optimization. Initial tests showed significantly worse results with direct optimization, so the parameters were not further tuned. If you choose to use this version, additional fine-tuning may be required.

Notes on testing

Use environment maps (JPG) and test masks provided by NERF-OSR. We follow the evaluation protocol from SOL-NERF:

  • Align the test environment map with scene reconstruction from COLMAP (match ground).
  • Assume the environment map aligns with the ground; adjust only the Y-axis rotation.
  • Estimate the sun direction using shadows and lighting in ground-truth images.
  • Configure the test_config file for your alignment and angle setup. Render images within the guessed angle range.
  • Evaluate results using PSNR and select the angle with the highest PSNR.

Notes on sky synthesis

We don't optimize sky Gaussians separately; they are treated like other objects in the scene — oriented toward the camera and illuminated by the environment map. Training environment maps work well for sky synthesis because they are optimized for such sky orientation. However, using external maps may introduce artifacts. For more realistic synthesis, consider optimizing segmented sky regions independently.

Acknowledgments

We acknowledge the following useful resources and repositories we built upon while developing LumiGauss:

Citation

If you find this work useful, please cite

@misc{kaleta2024lumigaussrelightablegaussiansplatting,
    title={LumiGauss: Relightable Gaussian Splatting in the Wild}, 
    author={Joanna Kaleta and Kacper Kania and Tomasz Trzcinski and Marek Kowalski},
    booktitle = {Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision},
    year = {2025} 
}

About

[WACV2025] Official repository for "LumiGauss: Relightable Gaussian Splatting in the Wild"

Resources

Stars

100 stars

Watchers

10 watching

Forks

Releases

Packages

Contributors

Languages