Skip to content

Pytorch Implementation of "Deep Iterative Down-Up CNN for Image Denoising".

Notifications You must be signed in to change notification settings

SonghyunYu/DIDN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8495067 · Dec 9, 2019

History

19 Commits
Jun 28, 2019
Jun 28, 2019
Jun 28, 2019
Jun 28, 2019
Aug 2, 2019
Jun 28, 2019
Dec 9, 2019
Jun 28, 2019
Jun 28, 2019
Jun 28, 2019
Dec 9, 2019
Jun 28, 2019
Jun 28, 2019
Jun 28, 2019

Repository files navigation

DIDN

Pytorch Implementation of "Deep Iterative Down-Up CNN for Image Denoising" [PDF]

Our method took second and third place at each track in [NTIRE 2019 Challenge on Real Image Denoising]

If you use our work in your research or publication, please cite our paper:

@inproceedings{yu2019deep,
  title={Deep iterative down-up CNN for image denoising},
  author={Yu, Songhyun and Park, Bumjun and Jeong, Jechang},
  booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops},
  year={2019}

Related Work

Other method of our team "Densely Connected Hierarchical Network for Image Denoising" [PDF], [code]

Environment

python 3.6
pytorch 1.0.0
MATLAB (to prepare data)

Prepare data

You need to prepare data before training or testing the model.
Please use matlab files in './data' folder.
For training, we used DIV2K dataset, and only sample images are included in this project.
Please download the whole dataset for training the model. [DIV2K download page]

Test

Download Pre-trained models: [download]
and place them in the './checkpoint/pretrained_color' and './checkpoint/pretrained_gray' folders.
for grayscale images, gray_eval.py
for color images, color_eval.py

optional arguments:  
  --cuda : using cuda   
  --model : model path  
  --output_path : output image path   
  --self_ensemble : using self-ensemble  
  --gpus : gpu ids  
  
  You can also change test dataset in the code!

Example:

python gray_eval.py --cuda --self_ensemble

If you are interested in the ntire challenge results, you can download the pre-trained models [here]

Training

optional arguments:  
  --batchSize : batchsize (default: 16)  
  --nEpochs : number of epochs (default: 50)  
  --lr : initial learning rate (default: 0.0001)  
  --cuda : using cuda   
  --resume : path to checkpoint (default: none)  
  --start_epoch : manual starting epoch number (useful for resume, default: 1)  
  --threads : number of threads for data loader (default: 0)  
  --gpus : gpu ids  
  
  You can also change training data path and validation data path in the code!  

Example:

python gray_train.py --cuda --threads 8

Weight ensemble

For weight ensemble, train the model multiple times manually using --resume option,
and averaging weights using 'weight_ensemble_2.py'.

Contact

If you have any questions about the code or paper, please contact [email protected]

Releases

No releases published

Packages

No packages published