CycleGAN三兄弟

生成器是根据一个随机数据来生成图片的。每次产生的随机的z,某种意义上是一个只有我们的G才懂的特殊编码,它决定了结果要如何表示。

那么,如果需要做图片风格转换,再用随机数做编码源是不是太不负责任了?生成结果会与原图毫无关联。

怎么办呢?也简单,让G不再从随机源生成图片,而是从我们给定的图片数据读入这个特殊编码。当然,为了把图片变成编码再生成图片,我们需要把单纯从随机数产生图片的生成器变为能够从现实数据提取特征编码的编码器,图片特征转换用的特征转换器,以及从特征编码恢复图片的解码器。

之前学习CNN的时候有了解到,卷积层(Convolution Layer)能够从原本图片里不断分离高阶特征,转置卷积层(Transpose Convolution Layer)能够反过来根据特征合成图片。

简单的想法就是,利用若干个卷积层构建编码器,若干个转置卷积层构建解码器,然后两者之间用一个能够产生变化的深度网络来担当特征转换器。(事实上DiscoGAN、CycleGAN、DualGAN三者的最大区别之一便在这里,DiscoGAN使用最简单直白的CNN编码器和解码器,使用全连接网络当转换器;CycleGAN则使用了ResNet充当转换器;DualGAN则是使用类似WGAN的形式来表示。)

图中的G、F可以看成上述条件GAN情形下的u-net结构(为了方便采用这种结构,具体结构以原文为准),从一种画风迁移到另一种画风的生成变换。然后在D利用对于生成后的图片特征与真实的图片特征进行打分,并得到loss,基本结构可参见DCGAN中D的结构,其中的细节是PatchGAN,其结构特征与要进行区分这一目的是统一的,区分“画风“——”纹理“而非边界,所以PatchGAN可以看成将图片”剪成“若干个小碎片,用同一部分权重区分对应小碎片间的画风区别做平均——CNN共用权重的思想。

正是由于PatchGAN进行的是纹理上的判别,故要求要在模型结构上对于“边界“做”正则“,以保证迁移过程两端在边界上的一致性。(对应的部分在”使用图片描述方式解决翻译问题“中就是文本特征对于图片特征的均方一致收敛,保证特征转化的一致性,可以实现,agant的特征回传)

由于画风迁移是一种特征,就可以直接把随机变量的一致性对应到可逆性(l1下)。((b)(c)两图)(在实现上要注意,可逆性的正则如果太强可能导致画风不变,所以可能涉及随着训练的进行在loss层面适当减小影响的调节,在下面的实现中提到了这个问题)--------------------- 作者:斯温jack 来源:CSDN 原文:https://blog.csdn.net/sinat_30665603/article/details/80843461 

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 周六 贝 八 一起去看牙 想去cascada 先在好运来吃了个饭 结果车打不着了火了 八很不开心 车也不给力了好像...
    Vanesa阅读 1,148评论 0 0
  • ❤感赏昨天两位恩师的指导与鞭策,让我认识到自己的不足之处,我知道两位恩师是来拯救我的孩子的,谢谢老师! ❤感赏自己...
    苦咖啡_0a98阅读 2,761评论 3 7
  • 别人不是你,你也不是别人 谁也不知道谁曾经经历过什么 不懂你的人,别解释 不爱你的人,别在意 自己开心、幸福就好
    Johnfeng漫步阅读 2,481评论 0 1
  • 前些日子,看到微信朋友圈里有人转发了个小调查:“你最讨厌什么样儿的人?”下面有n多选项,例如:不诚实、没有爱、口是...
    凡妈侃育儿阅读 4,286评论 0 2

友情链接更多精彩内容