CycleGAN in layman terms
CycleGAN is one of the most complex and powerful GAN architecture. The idea genesis from conditional GAN architecture. In this architecture, we condition an entire image. One of the most comprehensive examples of CycleGAN is what if you convert apple to orange and the same orange back to apple? That is what cycleGAN helps us achieve. Being a quite complicated architecture, we get the following components if we break down into smaller pieces:
- 2 generators — to generate apple to orange and reverse
- 3 discriminators — to supervise each generation
The traditional image-to-image translation had the following main issue:
- need paired images
For example — if you want to build a model to convert colored images to B/W images, then you can obtain the dataset for B/W images easily using a computer vision algorithm.
The same case for building a model to draw images from the sketch — use a computer vision algorithm to find edges of object(which will be your sketch dataset) and train to create a photo from the sketch. Pretty easy.
But what if getting paired training data is not possible? For example — you want to see how the terrain behind your house looks if your house is in the desert. That is simply not possible.