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.
🙄 Difficult algorithm, Simple code.

🎉TensorFlow2.0-Examples🎉! "Talk is cheap, show me the code." ----- Linus Torvalds Created by YunYang1994 This tutorial was designed for easily divin

1.7k Dec 25, 2022
Code release for our paper, "SimNet: Enabling Robust Unknown Object Manipulation from Pure Synthetic Data via Stereo"

SimNet: Enabling Robust Unknown Object Manipulation from Pure Synthetic Data via Stereo Thomas Kollar, Michael Laskey, Kevin Stone, Brijen Thananjeyan

68 Dec 14, 2022
SkipGNN: Predicting Molecular Interactions with Skip-Graph Networks (Scientific Reports)

SkipGNN: Predicting Molecular Interactions with Skip-Graph Networks Molecular interaction networks are powerful resources for the discovery. While dee

Kexin Huang 49 Oct 15, 2022
PyTorch Implementation of PortaSpeech: Portable and High-Quality Generative Text-to-Speech

PortaSpeech - PyTorch Implementation PyTorch Implementation of PortaSpeech: Portable and High-Quality Generative Text-to-Speech. Model Size Module Nor

Keon Lee 279 Jan 04, 2023
RefineMask (CVPR 2021)

RefineMask: Towards High-Quality Instance Segmentation with Fine-Grained Features (CVPR 2021) This repo is the official implementation of RefineMask:

Gang Zhang 191 Jan 07, 2023
The UI as a mobile display for OP25

OP25 Mobile Control Head A 'remote' control head that interfaces with an OP25 instance. We take advantage of some data end-points left exposed for the

Sarah Rose Giddings 13 Dec 28, 2022
This is the official implementation of VaxNeRF (Voxel-Accelearated NeRF).

VaxNeRF Paper | Google Colab This is the official implementation of VaxNeRF (Voxel-Accelearated NeRF). This codebase is implemented using JAX, buildin

naruya 132 Nov 21, 2022
This repo holds the code of TransFuse: Fusing Transformers and CNNs for Medical Image Segmentation

TransFuse This repo holds the code of TransFuse: Fusing Transformers and CNNs for Medical Image Segmentation Requirements Pytorch=1.6.0, 1.9.0 (=1.

Rayicer 93 Dec 19, 2022
Este conversor criará a medida exata para sua receita de capuccino gelado da grandiosa Rafaella Ballerini!

ConversorDeMedidas_CapuccinoGelado Este conversor criará a medida exata para sua receita de capuccino gelado da grandiosa Rafaella Ballerini! Requirem

Arthur Ottoni Ribeiro 48 Nov 15, 2022
Code for a real-time distributed cooperative slam(RDC-SLAM) system for ROS compatible platforms.

RDC-SLAM This repository contains code for a real-time distributed cooperative slam(RDC-SLAM) system for ROS compatible platforms. The system takes in

40 Nov 19, 2022
FLVIS: Feedback Loop Based Visual Initial SLAM

FLVIS Feedback Loop Based Visual Inertial SLAM 1-Video EuRoC DataSet MH_05 Handheld Test in Lab FlVIS on UAV Platform 2-Relevent Publication: Under Re

UAV Lab - HKPolyU 182 Dec 04, 2022
Code for CPM-2 Pre-Train

CPM-2 Pre-Train Pre-train CPM-2 此分支为110亿非 MoE 模型的预训练代码,MoE 模型的预训练代码请切换到 moe 分支 CPM-2技术报告请参考link。 0 模型下载 请在智源资源下载页面进行申请,文件介绍如下: 文件名 描述 参数大小 100000.tar

Tsinghua AI 136 Dec 28, 2022
Code for Mesh Convolution Using a Learned Kernel Basis

Mesh Convolution This repository contains the implementation (in PyTorch) of the paper FULLY CONVOLUTIONAL MESH AUTOENCODER USING EFFICIENT SPATIALLY

Yi_Zhou 35 Jan 03, 2023
Avalanche RL: an End-to-End Library for Continual Reinforcement Learning

Avalanche RL: an End-to-End Library for Continual Reinforcement Learning Avalanche Website | Getting Started | Examples | Tutorial | API Doc | Paper |

ContinualAI 43 Dec 24, 2022
Ludwig is a toolbox that allows to train and evaluate deep learning models without the need to write code.

Translated in 🇰🇷 Korean/ Ludwig is a toolbox that allows users to train and test deep learning models without the need to write code. It is built on

Ludwig 8.7k Dec 31, 2022
Pytorch Implementation for Dilated Continuous Random Field

DilatedCRF Pytorch implementation for fully-learnable DilatedCRF. If you find my work helpful, please consider our paper: @article{Mo2022dilatedcrf,

DunnoCoding_Plus 3 Nov 13, 2022
A tool for making map images from OpenTTD save games

OpenTTD Surveyor A tool for making map images from OpenTTD save games. This is not part of the main OpenTTD codebase, nor is it ever intended to be pa

Aidan Randle-Conde 9 Feb 15, 2022
Automated detection of anomalous exoplanet transits in light curve data.

Automatically detecting anomalous exoplanet transits This repository contains the source code for the paper "Automatically detecting anomalous exoplan

1 Feb 01, 2022
Line-level Handwritten Text Recognition (HTR) system implemented with TensorFlow.

Line-level Handwritten Text Recognition with TensorFlow This model is an extended version of the Simple HTR system implemented by @Harald Scheidl and

Hoàng Tùng Lâm (Linus) 72 May 07, 2022
tsflex - feature-extraction benchmarking

tsflex - feature-extraction benchmarking This repository withholds the benchmark results and visualization code of the tsflex paper and toolkit. Flow

PreDiCT.IDLab 5 Mar 25, 2022