Dark Noise Diffusion: Noise Synthesis for Low-Light Image Denoising
📄 View on arXiv
Authors
Liying Lu |
Raphaël Achddou |
Sabine Süsstrunk
-
Clone the repository
git clone https://github.com/IVRL/NoiseDiff.git cd NoiseDiff -
Install dependencies
Run the installation script to set up the required environment.
Please install PyTorch and torchvision versions matching your device.bash install.sh
-
Download the SID and ELD datasets
Download the SID dataset from the Learning-to-See-in-the-Dark repository and the ELD dataset from the ELD repository.
Please follow the instructions in each repository for downloading and preparing the datasets. Also change the data path in thedataloader/dataset.py,dataloader/dataset_denoising.pyandtest_denoising.pyaccordingly. -
Download the dark shading resources for denoising training
Download the dark shading resources from the PMN repository, place theresourcesfolder under the root directory. -
Download the pre-trained models
Download the pre-trained models from Google Drive, and place thepretrained_ckptsfolder under the root directory. -
(Optional) Download our synthetic data
The noise images generated by our model can be downloaded from HuggingFace.
All commands for training and testing are provided in script.sh. You can modify the parameters in the script as needed.
-
Training:
Run the training command inscript.shto train the diffusion network. You can train it using our provided synthetic data or your own generated data. -
Testing / Data Generation:
Use the provided command to generate synthetic noise data. Set the--resumeargument to the path of your trained model checkpoint, or use the provided pretrained checkpoints in the--pretrained_ckptsfolder. -
Logs: Training logs will be saved in the
./logsfolder. -
Output: Generated data will be saved in the
./outputfolder.
(Save paths can be changed by changing the--save_folderin the commands.)
-
Training:
Use the corresponding command inscript.shto train the denoising network. -
Testing:
Run the test command to evaluate the denoising performance on the SID or ELD dataset, with or without dark shading correction. Set the--resumeargument to the path of your trained model checkpoint, or use the provided pretrained checkpoints in the--pretrained_ckptsfolder. -
Logs: Training logs will be saved in the
./logsfolder. -
Output: Denoising results will be saved in the
./outputfolder.
(Save paths can be changed by changing the--save_folderin the commands.)
- The synthetic dataset is a bit large, we are still trying to upload the complete dataset.
- For any issues or questions, please open an issue on this repository, or contact us via email at [email protected].
This project refers to some code from the following repositories, we thank the authors for their contributions and publishing their code:
If you find this work useful, please cite our paper:
@inproceedings{NoiseDiff2025,
title = {Dark Noise Diffusion: Noise Synthesis for Low-Light Image Denoising},
author = {Lu, Liying and Achddou, Rapha{\"e}l and S{\"u}sstrunk, Sabine},
booktitle = {Proceedings of the International Conference on Computational Photography (ICCP)},
year = {2025}
}