This example shows how to convert images from one domain into another using CycleGAN
CycleGAN is a GAN model that is generally used for the following purposes.
- Style transfer (images and paintings)
- Season conversion
- Day / night conversion
- Object transformation
The difference from Pix2Pix, which also perform image-image conversion, is that CycleGAN uses unsupervised learning, so there is no need for a paired image dataset. In this example, even with unsupervised learning, you can see the model convert the images by understanding whether the fruit was a whole one or a cut one.
MATLAB version should be R2019b and later
The repository provides the following files:
- CycleGANExample.mlx — Example showing how to train the CycleGAN model
- generator.m — Function to create a CycleGAN generator network
- discriminator.m — Function to create a CycleGAN discriminator network
- cycleGanImageDatastore.m — Datastore to prepare batches of images for training
- cycleGAN_1000.mat - Pretrained model that converts apples to oranges and vice-versa
To run, open CycleGANExample.mlx and run the script. You can train the model or use the pretrained model by setting the doTraining flag to false.
Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks (Jun-Yan Zhu.etc, 2017)
Copyright 2019-2020 The MathWorks, Inc. Download a free MATLAB trial for Deep Learning