16-726 Learning-Based Image Synthesis

Project 3: When Cats meet GANs

Trung Nguyen

Objective

The goal of this assignment is to generate images with GAN networks. Specifically, we start with a vanilla DCGAN and then proceed with CycleGan that sample from two different domains. We will use DCGAN on grumpy cats images and CycleGan on cats and Pokemons images

Padding Formula

The formula to compute the size for output is given below

DCGAN

Architecture

The architecture of the DC GAN is decribed as below

Discriminator
Generator

Training steps

Data Augmentation

Two type of data augmentation is implemented in this experiment

Basic: With only image normalization with mean = 0.5 and std = 0.5

Deluxe: With random crop, random horizontal flip and image normalization

DCGAN Resutls

Basic Data Augmentation
Iteration 200
Iteration 1000
Iteration 5000
Iteration 10000
Deluxe Data Augmentation
Iteration 200
Iteration 1000
Iteration 5000
Iteration 10000

The curves in all of the four graphs look as GAN manages to train. The D loss decreases as the G loss oscilates around 1 with smaller oscillation as it learns.

CycleGAN

For this experiment, only deluxe dat augmentation is used

Architecture

The architecture of the CycleGAN is decribed as below

Training steps

CycleGAN Resutls

Cat dataset
Without Cycle Loss
Iteration 200

X to Y

Y to X

Iteration 600

X to Y

Iteration 1000

X to Y

Iteration 5000

X to Y

Y to X

Iteration 10000

X to Y

Y to X

With Cycle Loss
Iteration 200

X to Y

Y to X

Iteration 600

X to Y

Iteration 1000

X to Y

Iteration 5000

X to Y

Y to X

Iteration 10000

X to Y

Y to X

Pokemon dataset between Fire and Water pokemons
Without Cycle Loss
Iteration 200

Fire to Water

Water to Fire

Iteration 1000

Fire to Water

Water to Fire

Iteration 5000

Fire to Water

Water to Fire

Iteration 10000

Fire to Water

Water to Fire

Iteration 20000

Fire to Water

Water to Fire

Iteration 40000

Fire to Water

Water to Fire

Iteration 55000

Fire to Water

Water to Fire

With Cycle Loss
Iteration 200

Fire to Water

Water to Fire

Iteration 1000

Fire to Water

Water to Fire

Iteration 5000

Fire to Water

Water to Fire

Iteration 10000

Fire to Water

Water to Fire

Iteration 20000

Fire to Water

Water to Fire

Iteration 40000

Fire to Water

Water to Fire

Iteration 55000

Fire to Water

Water to Fire