All Projects → MingtaoGuo → CycleGAN

MingtaoGuo / CycleGAN

Licence: MIT license
A simple code of CycleGAN which is easy to read is implemented by TensorFlow

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to CycleGAN

day2night
Image2Image Translation Research
Stars: ✭ 46 (+119.05%)
Mutual labels:  cyclegan, image2image
Generative-Model
Repository for implementation of generative models with Tensorflow 1.x
Stars: ✭ 66 (+214.29%)
Mutual labels:  cyclegan
Alae
[CVPR2020] Adversarial Latent Autoencoders
Stars: ✭ 3,178 (+15033.33%)
Mutual labels:  paper-implementations
CycleGAN-gluon-mxnet
this repo attemps to reproduce Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks(CycleGAN) use gluon reimplementation
Stars: ✭ 31 (+47.62%)
Mutual labels:  cyclegan
pix2pix
This project uses a conditional generative adversarial network (cGAN) named Pix2Pix for the Image to image translation task.
Stars: ✭ 28 (+33.33%)
Mutual labels:  cyclegan
publications-arruda-ijcnn-2019
Cross-Domain Car Detection Using Unsupervised Image-to-Image Translation: From Day to Night
Stars: ✭ 59 (+180.95%)
Mutual labels:  cyclegan
Awesome CV Research
No description or website provided.
Stars: ✭ 18 (-14.29%)
Mutual labels:  paper-implementations
CVC
CVC: Contrastive Learning for Non-parallel Voice Conversion (INTERSPEECH 2021, in PyTorch)
Stars: ✭ 45 (+114.29%)
Mutual labels:  cyclegan
awesome-generative-deep-art
A curated list of generative deep learning tools, works, models, etc. for artistic uses
Stars: ✭ 172 (+719.05%)
Mutual labels:  image2image
selective search
Python implementation of selective search
Stars: ✭ 40 (+90.48%)
Mutual labels:  paper-implementations
CycleGAN-Models
Models generated by CycleGAN
Stars: ✭ 42 (+100%)
Mutual labels:  cyclegan
cycleGAN-PyTorch
A clean and lucid implementation of cycleGAN using PyTorch
Stars: ✭ 107 (+409.52%)
Mutual labels:  cyclegan
gans-2.0
Generative Adversarial Networks in TensorFlow 2.0
Stars: ✭ 76 (+261.9%)
Mutual labels:  cyclegan
Pytorch Vae
A Collection of Variational Autoencoders (VAE) in PyTorch.
Stars: ✭ 2,704 (+12776.19%)
Mutual labels:  paper-implementations
Plant-Disease-Identification-using-CNN
Plant Disease Identification Using Convulutional Neural Network
Stars: ✭ 89 (+323.81%)
Mutual labels:  paper-implementations
SAnD
[Implementation example] Attend and Diagnose: Clinical Time Series Analysis Using Attention Models
Stars: ✭ 39 (+85.71%)
Mutual labels:  paper-implementations
pytorch-gans
PyTorch implementation of GANs (Generative Adversarial Networks). DCGAN, Pix2Pix, CycleGAN, SRGAN
Stars: ✭ 21 (+0%)
Mutual labels:  cyclegan
DA-RetinaNet
Official Detectron2 implementation of DA-RetinaNet of our Image and Vision Computing 2021 work 'An unsupervised domain adaptation scheme for single-stage artwork recognition in cultural sites'
Stars: ✭ 31 (+47.62%)
Mutual labels:  cyclegan
UPIT
A fastai/PyTorch package for unpaired image-to-image translation.
Stars: ✭ 94 (+347.62%)
Mutual labels:  cyclegan
dgcnn
Clean & Documented TF2 implementation of "An end-to-end deep learning architecture for graph classification" (M. Zhang et al., 2018).
Stars: ✭ 21 (+0%)
Mutual labels:  paper-implementations

CycleGAN

A simple code of CycleGAN which is easy to read is implemented by TensorFlow

Method

Please see the detail about the paper CycleGAN from here Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks.The method of original pix2pix needs lots of paired datasets. For example, sketch-to-cat translation, we should have the datasets about many cats and its corresponding sketches in pixelwise. Sometimes, paired datasets are very rare. Just like man-to-woman translation for pix2pix it's impossible, but the method of this paper(CycleGAN) it's become possible. The most innovation point of this paper is about that the kinds of datasets don't need paired image, instead it just need two domains of different kinds of samples. For example, one domain is about man, another is about woman.

The main method of this paper, please see the image below(from the paper). Inspiration of "Cycle" is from language to language translationDual Learning for Machine Translation. For example, French-to-English and English-to-French, they called it dual learning. In CycleGAN, datasets domain X and datasets domain Y translate each other, like this X-to-Y and Y-to-X.

In this code, we don't use the loss function of LSGAN, instead we use WGAN which has been proved that it can yield high quality results and faster convergence rate, the problem of mode collapse of GAN also be solved by WGAN. But WGAN has shotcoming that it must satisfy the 1-Lipschitz condition. WGAN-GP solve the problem of WGAN about 1-Lipschitz condition by gradient penalty, but it has a problem that the computation of gradient penalty cost too much time in training phase. In this code, we don't use gradient penalty, instead we use spectral Normalization which is published in ICLR2018, it not only can yield high quality results like WGAN-GP, but also cost less time in training phase.

Results from the paper

How to use the code

Firstly, you should install python and install some packages of python like tensorflow, numpy, scipy, pillow etc.

Please use these commands to install:

  1. pip install tensorflow
  2. pip install numpy
  3. pip install scipy
  4. pip install pillow

Secondly, putting two domains of datasets into the folder X and Y. For example, put the datasets about man into X, and put the datasets about woman into Y. I will provide one datasets about man2woman, which is selected from CelebA. There are about 8000 images for man, and 10000 images for woman and the images i had croped and resized it to 256x256. Please download the datasets from here BaiDuYun

Results of this code

Because of my poor device, i just train the CycleGAN for 13 epochs, the result of man2woman as shown below, the result of woman2man looks not really well, so i don't show it.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].