zoukankan      html  css  js  c++  java
  • CycleGan论文笔记

    原文地址:https://arxiv.org/abs/1703.10593

    背景——风格迁移

    图片生成领域是GAN网络的天下,最近很多人将GAN网络应用到了图像风格迁移领域。这篇论文也是做image to image translation,之前已经有较为成功的网络PIX2PIX了(同一个团队做的),本篇论文的出发点和PIX2PIX的不同在于:

    1. PIX2PIX网络要求提供image pairs,也即是要求提供x和y,整个思路为:从噪声z,根据条件x,生成和真实图片y相近的y‘。条件x和图像y是具有一定关联性的。
    2. 而本篇CycalGAN不要求提供pairs,如题目所说:Unpaired。因为成对的图像数据集其实并不多。这里的x和y不要求有什么较好的关联性,可以是毫不相干的两幅图像。

     

    方法

    普通的GAN损失:

    但单纯的使用这一个损失是无法进行训练的。原因在于,映射F完全可以将所有x都映射到y空间的同一张图片,使损失无效化。为此提出循环GAN网络。从域x生成域y,再从y生成回x,循环往复。

    网络结构

     两个生成器网络:G和F;两个鉴别器网络:Dx和Dy。整个网络是一个对偶结构。

    下图对网络结构说明很清楚,出处见水印。

     

    Loss函数

    Loss部分除了经典的基础的GAN网络的对抗loss,还提出了一个cycle-loss。因为网络需要保证生成的图像必须保留有原始图像的特性,所以如果我们使用生成器GenratorA-B生成一张假图像,那么要能够使用另外一个生成器GenratorB-A来努力恢复成原始图像。此过程必须满足循环一致性。

    对抗损失有两部分:

    对偶网络的循环损失分为前向循环损失和后向循环损失,分别为:

     

    采用L1 loss:

    最后,总的损失函数为:

    lamba=10

    代码中还有个loss:identity loss

    大致可以这样理解,生成器是负责域x到域y的图像生成,如果输入域y的图片还是应该生成域y的图片y‘’,计算y‘’和输入y的loss。

    训练细节

    • Generator采用的是Perceptual losses for real-time style transfer and super-resolution 一文中的网络结构;一个resblock组成的网络,降采样部分采用stride 卷积,增采样部分采用反卷积;Discriminator采用的仍是pix2pix中的PatchGANs结构,大小为70x70
    • 定义四个xx器的损失函数,分别优化训练G和D,两个生成器共享权重,两个鉴别器也共享权重训练
    • 计算每个生成图像的损失是不可能的,因为会耗费大量的计算资源。建立一个图像库,存储之前生成的50张图,而不只是最新的生成器生成的图
    • Lr=0.0002。对于前100个周期,保持相同的学习速率0.0002,然后在接下来的100个周期内线性衰减到0。

    实验结果

    一些对比试验结果:(通过label生成原图y‘,再利用FCN对生成的原图y‘进行分割,进行一个label-photo的实验)

  • 相关阅读:
    Class.getSimpleName()的作用
    win7下制作ubuntu系统安装启动盘和U盘安装ubuntu全过程
    奈奎斯特三大准则
    [转]OFDM中保护间隔和循环前缀抵抗ISI和ICI
    频偏
    移动通信里面,OFDM技术所说的“载波相互正交”是什么意思?
    虚拟盘符映射
    npm 安装与常用命令
    ASP.NET WebAPI HTTPS
    记录下自己写的gulp打包脚本
  • 原文地址:https://www.cnblogs.com/a-little-v/p/9762599.html
Copyright © 2011-2022 走看看