NR-GAN: Noise Robust Generative Adversarial Networks

Related tags

Deep LearningNR-GAN
Overview

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.

NR-GAN examples

Note: In our previous studies, we have also proposed GANs for label noise. Please check them from the links below.

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 noise
  • cifar10ag25: (A) Additive Gaussian noise with a fixed standard deviation
  • cifar10ag5-50: (B) Additive Gaussian noise with a variable standard deviation
  • cifar10lg25p16: (C) Local Gaussian noise with a fixed-size patch
  • cifar10lg25p8-24: (D) Local Gaussian noise with a variable-size patch
  • cifar10u50: (E) Uniform noise
  • cifar10mix: (F) Mixture noise
  • cifar10bg25k5: (G) Brown Gaussian noise
  • cifar10abg25k5: (H) Sum of (A) and (G)
  • cifar10mg25: (I) Multiplicative Gaussian noise with a fixed standard deviation
  • cifar10mg5-50: (J) Multiplicative Gaussian noise with a variable standard deviation
  • cifar10amg5_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 events
  • cifar10p10-50: (N) Poisson noise with a variable total number of events
  • cifar10pg30_5: (O) Sum of (M) and few (A)
  • cifar10pg30_25: (P) Sum of (M) and much (A)

Noise examples

Regarding [model], choose one option among the following:

  • gan: GAN
  • ambientgan: AmbientGAN
  • sinrgan1: SI-NR-GAN-I
  • sinrgan2: SI-NR-GAN-II
  • sdnrgan1: SD-NR-GAN-I
  • sdnrgan2: SD-NR-GAN-II
  • sdnrgan3: SD-NR-GAN-III

Examples of generated images

CIFAR-10 with additive Gaussian noise

cifar10ag25: (A) Additive Gaussian noise with a fixed standard deviation

Examples of generated images on CIFAR-10 with additive Gaussian noise

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

Examples of generated images on CIFAR-10 with multiplicative Gaussian noise

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

  1. A. Bora, E. Price, A. G. Dimakis. AmbientGAN: Generative Models from Lossy Measurements. In ICLR, 2018.
  2. T. Kaneko, Y. Ushiku, T. Harada. Label-Noise Robust Generative Adversarial Networks. In CVPR, 2019.
  3. T. Kaneko, Y. Ushiku, T. Harada. Class-Distinct and Class-Mutual Image Generation with GANs. In BMVC, 2019.
Elevation Mapping on GPU.

Elevation Mapping cupy Overview This is a ros package of elevation mapping on GPU. Code are written in python and uses cupy for GPU calculation. * pla

Robotic Systems Lab - Legged Robotics at ETH Zürich 183 Dec 19, 2022
Code for Paper Predicting Osteoarthritis Progression via Unsupervised Adversarial Representation Learning

Predicting Osteoarthritis Progression via Unsupervised Adversarial Representation Learning (c) Tianyu Han and Daniel Truhn, RWTH Aachen University, 20

Tianyu Han 7 Nov 22, 2022
Face Recognize System on camera AI OAK1

FRS on OAK1 Face Recognize System on camera OAK1 This project contains our work that deploy on camera OAK1 Features Anti-Spoofing Face detection Face

Tran Anh Tuan 6 Aug 08, 2022
gtfs2vec - Learning GTFS Embeddings for comparing PublicTransport Offer in Microregions

gtfs2vec This is a companion repository for a gtfs2vec - Learning GTFS Embeddings for comparing PublicTransport Offer in Microregions publication. Vis

Politechnika Wrocławska - repozytorium dla informatyków 5 Oct 10, 2022
Using multidimensional LSTM neural networks to create a forecast for Bitcoin price

Multidimensional LSTM BitCoin Time Series Using multidimensional LSTM neural networks to create a forecast for Bitcoin price. For notes around this co

Jakob Aungiers 318 Dec 14, 2022
Improving Compound Activity Classification via Deep Transfer and Representation Learning

Improving Compound Activity Classification via Deep Transfer and Representation Learning This repository is the official implementation of Improving C

NingLab 2 Nov 24, 2021
OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation

Build Type Linux MacOS Windows Build Status OpenPose has represented the first real-time multi-person system to jointly detect human body, hand, facia

25.7k Jan 09, 2023
Neural network for recognizing the gender of people in photos

Neural Network For Gender Recognition How to test it? Install requirements.txt file using pip install -r requirements.txt command Run nn.py using pyth

Valery Chapman 1 Sep 18, 2022
StyleGAN2-ADA - Official PyTorch implementation

Abstract: Training generative adversarial networks (GAN) using too little data typically leads to discriminator overfitting, causing training to diverge. We propose an adaptive discriminator augmenta

NVIDIA Research Projects 3.2k Dec 30, 2022
ONNX-GLPDepth - Python scripts for performing monocular depth estimation using the GLPDepth model in ONNX

ONNX-GLPDepth - Python scripts for performing monocular depth estimation using the GLPDepth model in ONNX

Ibai Gorordo 18 Nov 06, 2022
My personal Home Assistant configuration.

About This is my personal Home Assistant configuration. My guiding princile is to have full local control of all my devices. I intend everything to ru

Chris Turra 13 Jun 07, 2022
HTSeq is a Python library to facilitate processing and analysis of data from high-throughput sequencing (HTS) experiments.

HTSeq DEVS: https://github.com/htseq/htseq DOCS: https://htseq.readthedocs.io A Python library to facilitate programmatic analysis of data from high-t

HTSeq 57 Dec 20, 2022
Official implementation for the paper: Permutation Invariant Graph Generation via Score-Based Generative Modeling

Permutation Invariant Graph Generation via Score-Based Generative Modeling This repo contains the official implementation for the paper Permutation In

64 Dec 29, 2022
[TIP 2020] Multi-Temporal Scene Classification and Scene Change Detection with Correlation based Fusion

Multi-Temporal Scene Classification and Scene Change Detection with Correlation based Fusion Code for Multi-Temporal Scene Classification and Scene Ch

Lixiang Ru 33 Dec 12, 2022
Code release for Local Light Field Fusion at SIGGRAPH 2019

Local Light Field Fusion Project | Video | Paper Tensorflow implementation for novel view synthesis from sparse input images. Local Light Field Fusion

1.1k Dec 27, 2022
Code for ECCV 2020 paper "Contacts and Human Dynamics from Monocular Video".

Contact and Human Dynamics from Monocular Video This is the official implementation for the ECCV 2020 spotlight paper by Davis Rempe, Leonidas J. Guib

Davis Rempe 207 Jan 05, 2023
project page for VinVL

VinVL: Revisiting Visual Representations in Vision-Language Models Updates 02/28/2021: Project page built. Introduction This repository is the project

308 Jan 09, 2023
Pytorch cuda extension of grid_sample1d

Grid Sample 1d pytorch cuda extension of grid sample 1d. Since pytorch only supports grid sample 2d/3d, I extend the 1d version for efficiency. The fo

lyricpoem 24 Dec 03, 2022
Model Quantization Benchmark

Introduction MQBench is an open-source model quantization toolkit based on PyTorch fx. The envision of MQBench is to provide: SOTA Algorithms. With MQ

500 Jan 06, 2023
Spectral Tensor Train Parameterization of Deep Learning Layers

Spectral Tensor Train Parameterization of Deep Learning Layers This repository is the official implementation of our AISTATS 2021 paper titled "Spectr

Anton Obukhov 12 Oct 23, 2022