Unsupervised R2R Denoising for Real Image Denosing
This repository is an PyTorch implementation of the paper Recorrupted-to-Recorrupted: Unsupervised Deep Learning for Image Denoising. The network we adopted is DnCNN and our implementation is based on DnCNN-PyTorch. We give the author credit for the implementation of DnCNN. We give the author credit for the implementation of DnCNN. The Gaussian denoising version is available R2R.
- Matlab (For training patch generation)
- PyTorch
- OpenCV for Python
- scikit-image
Here we adapt SIDD Medium data for training. The training data and validation data can be download in SIDD website. After downloading, move both the "Data" folder and "noise_level_functions.csv" of training data to "sidd_dataset" folder.
To generate training patch, please run the following commands.
cd gen_data
bash gen_sidd.sh
Training
python train_sidd_dncnn.py --gpu 0
The pretrained model is available on './experiments/pre_trained.pth'
Validation
python test_sidd_dncnn.py --gpu 0 --phase validation --model_path 'path of pretrained model' --val_path 'path of validation data'
Test
python test_sidd_dncnn.py --gpu 0 --phase test --model_path 'path of pretrained model' --val_path 'path of test data'
Any other NNs can be adapted here by changing the model architecture.
@InProceedings{Pang_2021_CVPR,
author = {Pang, Tongyao and Zheng, Huan and Quan, Yuhui and Ji, Hui},
title = {Recorrupted-to-Recorrupted: Unsupervised Deep Learning for Image Denoising},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2021},
pages = {2043-2052}
}