Two-way GAN

Cycle-consitenty Loss is good for color and texture, but not very succesfull on shape change. For transfer with shape, could check UNIT and its variants

CycleGAN

Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks (ICCV 2017) by Jun-Yan Zhu, Taesung Park, Phillip Isola, Alexei A. Efros
Project| Torch | pyTorch | CVPR2018 slides
Could be applyed on any unapired datasets (better if two datasets share similar visual content)
../_images/cycleGAN_result.png ../_images/cycle-consistency_loss.png Adversarial Loss

\[\begin{split}\text{for }G: X \to Y{ and } D_Y, \mathfrak{L}_{GAN}(G, D_Y, X, Y) & =\mathbb{E}_{y \sim p_{data}(y)}[log D_Y(y)] \\ & +\mathbb{E}_{x \sim p_{data}(x)}[log (1-D_Y(G(x))] \\ min_G max_{D_Y} \mathfrak{L}_{GAN}(G, D_Y, X, Y)\\\end{split}\]

Cycle Consistency Loss

\[\begin{split}\mathfrak{L}_{cyc}(G,F) & = \mathbb{E}_{x \sim p_{data}(x)} [||F(G(x))-x||_1]] \\ & + \mathbb{E}_{y \sim p_{data}(y)} [||F(G(y))-y||_1]] \\\end{split}\]

Full Objective

\[\begin{split}\mathfrak{L}(G, F, D_x, D_Y) & = \mathfrak{L}_{GAN}(G, D_Y, X, Y) \\ & + \mathfrak{L}_{GAN}(F, D_X, X, Y) \\ & + \mathfrak{L}_{cyc}(G,F) \\ G^*, F^* = arg min_{G, F} max_{D_X, D_Y} \mathfrak{L}(G, F, D_x, D_Y)\end{split}\]

my testing

testing cycleGAN good at color and texture changes, bad at shape

Augmented CycleGAN

Augmented CycleGAN: Learning Many-to-Many Mappings from Unpaired Data (ICML 2018)
pyTorch (Python2, pyTorch 0.3) | Theano re-implementation
../_images/AugCGAN_male_to_females.png Apart from generator, also have 2 encoders \(E_A: A \times B → Z_a, E_B: B \times A → Z_b\) which enable optimization of cycle-consistency with stochastic, structured mapping
../_images/AugCGAN_components.png

Paired CycleGAN

PairedCycleGAN: Asymmetric Style Transfer for Applying and Removing Makeup (CVPR 2018)
Could apply specified style from input_reference to input_source, as a one-to-many transformation
../_images/paired_CycleGAN_result.png ../_images/paired_CycleGAN_FG.png
pre-train makeup removal function F(many-to-one) with CycleGAN first, then alternate the training of makeup transfer function G (one-to-many)
Note: Consider as conditional GAN with (input source + input reference) as conditions

ComboGAN

ComboGAN: Unrestrained Scalability for Image Domain Translation (CVPR 2018)
encoder-decoder pairs that share the latent coding. ../_images/comboGAN.png

Comparison of above 4 conditional variants

GAN condition apply to the amount of generator/encoder input
Augmented CycleGAN within domain 2 generators source image + encoding
Paired CycleGAN within domain 2 generators source image + reference image
UNIT, ComboGAN cross-domains encoder-decoder pairs source image (to target encoder)
StarGAN cross-domains 1 generators source image + label of target domain