NR-GAN: Noise Robust Generative Adversarial Networks (CVPR 2020)
This repository provides PyTorch implementation for noise robust GAN (NR-GAN). NR-GAN is unique in that it can learn a clean image generator even when only noisy images are available for training.
Note: In our previous studies, we have also proposed GANs for label noise. Please check them from the links below.
- Label-noise robust GAN (rGAN) (CVPR 2019)
- Classifier's posterior GAN (CP-GAN) (BMVC 2019)
Paper
Noise Robust Generative Adversarial Networks. Takuhiro Kaneko and Tatsuya Harada. In CVPR, 2020.
[Paper] [Project] [Slides] [Video]
Installation
Clone this repo:
git clone https://github.com/takuhirok/NR-GAN.git
cd NR-GAN/
First, install Python 3+. Then install PyTorch 1.3 and other dependencies by the following:
pip install -r requirements.txt
Training
To train a model, use the following script:
bash ./scripts/train.sh [dataset] [model] [output_directory_path]
Example
To train SI-NR-GAN-I (sinrgan1) on CIFAR-10 with additive Gaussian noise with a fixed standard deviation (cifar10ag25), run the following:
bash ./scripts/train.sh cifar10ag25 sinrgan1 outputs
The results are saved into outputs.
Note: In our experiments, we report the best model encountered during training to mitigate the performance fluctuation caused by GAN training instability.
Options
Regarding [dataset], choose one option among the following:
cifar10: No noisecifar10ag25: (A) Additive Gaussian noise with a fixed standard deviationcifar10ag5-50: (B) Additive Gaussian noise with a variable standard deviationcifar10lg25p16: (C) Local Gaussian noise with a fixed-size patchcifar10lg25p8-24: (D) Local Gaussian noise with a variable-size patchcifar10u50: (E) Uniform noisecifar10mix: (F) Mixture noisecifar10bg25k5: (G) Brown Gaussian noisecifar10abg25k5: (H) Sum of (A) and (G)cifar10mg25: (I) Multiplicative Gaussian noise with a fixed standard deviationcifar10mg5-50: (J) Multiplicative Gaussian noise with a variable standard deviationcifar10amg5_25: (K) Sum of few (A) and (I)cifar10amg25_25: (L) Sum of much (A) and (I)cifar10p30: (M) Poisson noise with a fixed total number of eventscifar10p10-50: (N) Poisson noise with a variable total number of eventscifar10pg30_5: (O) Sum of (M) and few (A)cifar10pg30_25: (P) Sum of (M) and much (A)
Regarding [model], choose one option among the following:
gan: GANambientgan: AmbientGANsinrgan1: SI-NR-GAN-Isinrgan2: SI-NR-GAN-IIsdnrgan1: SD-NR-GAN-Isdnrgan2: SD-NR-GAN-IIsdnrgan3: SD-NR-GAN-III
Examples of generated images
CIFAR-10 with additive Gaussian noise
cifar10ag25: (A) Additive Gaussian noise with a fixed standard deviation
AmbientGAN† is trained with the ground-truth noise model, while the other models are trained without full knowledge of the noise (i.e., the noise distribution type and noise amount).
CIFAR-10 with multiplicative Gaussian noise
cifar10mg25: (I) Multiplicative Gaussian noise with a fixed standard deviation
AmbientGAN† is trained with the ground-truth noise model, while the other models are trained without full knowledge of the noise (i.e., the noise distribution type, noise amount, and signal-noise relationship).
Citation
If you find this work useful for your research, please cite our paper.
@inproceedings{kaneko2020NR-GAN,
title={Noise Robust Generative Adversarial Networks},
author={Kaneko, Takuhiro and Harada, Tatsuya},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
year={2020}
}
Related work
- A. Bora, E. Price, A. G. Dimakis. AmbientGAN: Generative Models from Lossy Measurements. In ICLR, 2018.
- T. Kaneko, Y. Ushiku, T. Harada. Label-Noise Robust Generative Adversarial Networks. In CVPR, 2019.
- T. Kaneko, Y. Ushiku, T. Harada. Class-Distinct and Class-Mutual Image Generation with GANs. In BMVC, 2019.



