专栏首页Python编程和深度学习GAN的发展系列四(Pix2Pix、CycleGAN)

GAN的发展系列四(Pix2Pix、CycleGAN)

一、 Pix2pix 论文:《Image-to-Image Translation with Conditional Adversarial Networks》 论文地址:https://arxiv.org/abs/1611.07004 代码地址:https://github.com/phillipi/pix2pix.

1、基本思路 Pix2pix用条件cGAN做图像转换image translation的鼻祖,图像转换是从输入图像的像素到输出图像像素的映射,通常用CNN卷积神经网络来缩小欧式距离,但会导致输出图像的模糊问题,pix2pix利用GAN完成成对图像的转换。

2、网络框架和目标函数 Pix2pix的网络框架如下,原理和CGAN类似

生成器采用Unet结构(之前的文章介绍过深度学习系列(四)分割网络模型(FCN、Unet、Unet++、SegNet、RefineNet)),输入目标轮廓,经过编码解码生成着色的目标图像,判别器采用PatchGan对生成假图像和真实图像进行判别,把图像分成切片patch,分别判断每个patch的真假,再平均最后的结果,作者采用的patch大小为70x70。

通常情况下的CGAN目标函数为

文中增加了一个L1 Loss一起优化目标函数

使用传统的L1 loss来让生成的图片跟训练的图片尽量相似,用GAN来构建高频部分的细节。 3、缺点 使用这样的结构其实学到的是x到 y 之间的一对一映射,也就说,pix2pix就是对ground truth的重建:输入轮廓图→经过Unet编码解码成对应的向量→解码成真实图。这种一对一映射的应用范围十分有限,当我们输入的数据与训练集中的数据差距较大时,生成的结果很可能就没有意义。

二、 CycleGAN 论文:《Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks》 论文地址:https://arxiv.org/abs/1703.10593 代码地址:https://github.com/junyanz/CycleGAN

1、基本思路 CycleGan可以实现风格迁移功能,通过两个镜像对称的GAN构成一个环形网络。针对无配对数据,在源域和目标域之间不需要建立一对一的映射就可以实现风格迁移,

2、网络框架 CycleGAN的两个GAN共享两个生成器G和F,但判别器是独立的两个Dx和Dy,一个单向GAN包含两个loss,CycleGAN包含四个loss。X和Y是两个数据分布,生成器G和F分别是X到Y与Y到X的映射,两个判别器Dx和Dy分别对转换后的图片进行判别,生成器采用ResBlock结构,判别器采用pix2pix的PatchGAN结构,大小为70x70, cycle-consistency loss是用数据集中其他的图来检验生成器,这是防止G和F过拟合。

损失函数是三个loss的和:

前面两个是CycleGAN中两个GAN的loss,第三个是重建的L1 loss,

重建的损失也包括两个,相当于目的是让真实的X和生成的假X相似,真实的Y和生成的假Y相似,

本文分享自微信公众号 - Python编程和深度学习(Python_Deeplearning),作者:Python编程和深度学习

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • GAN的发展系列二(PGGAN、SinGAN)

    在前面的文章里我们已经介绍了GAN生成对抗网络的入门和一些GAN系列,在之后的专辑里会继续介绍一些比较经典的GAN。

    Minerva
  • GAN生成对抗网络入门介绍

    GAN(Generative Adversarial Network)生成对抗网络,由Ian Goodfellow在2014年提出。

    Minerva
  • 计算机二级Python考点解析第一天

    距离2018年全国计算机二级Python考试还有一个半月时间,本公众号尽量在考试前对计算机二级Python的考试内容进行全面的介绍,希望大家都至少达到合格水平!...

    Minerva
  • GAN 2.0!英伟达“风格迁移”面部生成器,世间万物逼真呈现

    这组效果惊艳到可怕的成果,出自英伟达的研究人员最近提出的一种新的生成器架构,基于风格迁移,将面部细节分离出来,由模型进行单独调整,从而大幅度超越传统GAN等模型...

    新智元
  • 挑战 11 种 GAN的图像真伪,DeepFake鉴别一点都不难 | CVPR2020

    近年来,图像合成技术日趋进步,GAN在给我们带来艺术体验的同时也埋下了很多隐患。Deepfake(AI换脸)技术让很多事情的真实性变得扑朔迷离,甚至会产生极大的...

    AI科技评论
  • go 比较两个字符串的版本号大小

    solate
  • 翻车现场:我用pytorch和GAN做了一个生成神奇宝贝的失败模型

    神奇宝贝已经是一个家喻户晓的动画了,我们今天来确认是否可以使用深度学习为他自动创建新的Pokemon。

    deephub
  • 玩转千位分隔符输出

    1、Python 1.1 format方法: 2.7版本以上直接用format设置千分位分隔符 Python 2.7 (r27:82500, Nov 23 20...

    用户1177713
  • Python 基础:类与函数

    1、Python 中的类(上) 1.1 数据属性 类数据属性和实例数据属性 特殊的类属性 属性隐藏 1.2 方法 实例方法 类方法 ...

    用户1177713
  • Vue2 SSR 的优化之旅

    自从 Vue2 出正式版后, 就开始了 SSR 之旅, 不过之前用的都是虚拟主机, 部署不了 SSR, 所以也只是在本地写着玩, 双 11 的时候, 买了个某云...

    前端博客 : alili.tech

扫码关注云+社区

领取腾讯云代金券