/DANet

Dual Adversarial Network: Toward Real-world Noise Removal and Noise Generation (ECCV 2020) (Pytorch)

Primary LanguagePython

DANet

Dual Adversarial Network: Toward Real-world Noise Removal and Noise Generation (ECCV, 2020) ECCV Version arXiv Version

Due to the page limitation, the experimental results on Nam benchmark and some discussions were not included in the ECCV paper and put into supplementary material. And the arXiv version includes the complete experimental results.

Requirements and Dependencies

  • Ubuntu 16.04, cuda 10.0
  • Python 3.7.4, Pytorch 1.3.1
  • More detail (See environment.yml)

Training pipelines

The DANet model was trained on SIDD Medium Dataset, and tested on SIDD validation and testing datasets. For DANet+, we employed the noise-free images in the original training dataset (i.e., SIDD Medium Dataset) as source images to simulate more clean-noisy image pairs using the trained generator.

Different from DANet, GDANet trained on the concatenation of SIDD Medium, PolyU and Renoir Datasets. For GDANet+, we adopted other high-quality images in Flickr as source images to simulate more training pairs. Of cource, you can use any other images instead of Flickr.

Prepare data:

Writing the SIDD and Renoir datasets into hdf5 fromat:

    python datasets/preparedata/SIDD_big2small_train.py --data_dir yours_sidd_data_path
    python datasets/preparedata/SIDD_big2small_test.py --data_dir yours_sidd_data_path
    python datasets/preparedata/Renoir_big2small_all.py --data_dir yours_renoir_data_path

Training settings:

Modify the training settings for specific model in configs floder. Note that you at least need to revise the saving path of training and testing datasets accroding to your own computers.

Begin training:

  • Train DANet
    python train_DANet.py 
  • Train DANet+
    python train_DANetPlus.py 
  • Train GDANet
    python train_GDANet.py 
  • Train GDANet+
    python train_GDANetPlus.py 

Testing pipelines

Testing denoising results

  • Test DANet
    python test_denoising_SIDD.py --model DANet

  • Test DANet+
    python test_denoising_SIDD.py --model DANet+

  • Test GDANet
    python test_denoising_DND.py --model GDANet

  • Test GDANet+
    python test_denoising_DND.py --model GDANet+ 

Testing generation results

  • Test DANet
    python test_generation_SIDD.py

  • Test GDANet
    python test_generation_arbitrary.py

AKLD measure

    python demo_AKLD.py

Citation

@incollection{ECCV2020_984,
title = {Dual Adversarial Network: Toward Real-world Noise Removal and Noise Generation},
author = {Yue, Zongsheng and Zhao, Qian and Zhang, Lei and Meng, Deyu},
booktitle = {Proceedings of the European Conference on Computer Vision (ECCV)},
month = {August},
year = {2020}
}