基于CycleGAN的图像风格转换

  首先,对CycleGAN不了解的可以下载论文《Unpaired Image-to-Image Translation using Cycle-Consistent Adversial Network》,附上下载链接。

  这里我们只对CycleGAN的特点以及训练时的感悟进行总结。

               基于CycleGAN的图像风格转换_第1张图片

  先上一张自己画的总体框架。

  总体的流程:将图像分成X域和Y域,网络有两个过程,第一个是蓝线标示的前向过程,从X域真图像开始,经过一个生成器转换到Y域,再经过一个生成器回到X域;同理,由红色虚线标示的反向过程是图像从Y域出发,经过一个生成器转换到X域,再经过一个生成器回到Y域。每个生成器后都有一个判别器,来判断当前输入图像的真假。判别器使用PatchGAN。

  循环一致性检验是加在X域真图像和X域假图像之间,还要Y域真图像和Y域假图像之间,计算L1 loss 来保证图像内容的不变性。如果不加循环一致性检验,在训练时很容易导致模式坍塌,这也是训练不成对图像的难点所在。

  训练时对抗损失使用最小二乘损失,我在训练时,图像上采样过程使用亚像素卷积层代替反卷积,有利于消除棋盘效应。

  对于L1 loss 我在训练中尝试使用过L2 loss 但发现loss曲线比较震荡,这里不推荐。

  我用CycleGAN做了人脸超分辨还有手势图像转换,有兴趣的可以交流一下。

  

你可能感兴趣的:(深度学习)