自动摘要: title:回顾pix2pix tags: pix2pix categories: 框架 pytorch GAN toc:false da ……..
title: 回顾-pix2pix
tags:
- pix2pix
categories:- 框架
- pytorch
- GAN
toc: false
date: 2018-12-25 03:38:57
1.Pix2Pix 简介:
- 1.这是基于CGAN的pix2pix模型!
- 2.Pix2Pix与一般GAN不同的地方在于,其实现的目标是图像翻译,A-》B,比如,一张场景可以转换为RGB全彩图,也可以转化成素描,也可以转化为灰度图。
- 顾名思义,Pix2Pix指的是像素对像素的翻译,图像大小保持不变。G网络的输入是A图像,通过G网络生成的图像叫做FakeB,而真实的图像就是RealB。
- 论文: https://arxiv.org/abs/1611.07004
- 项目:https://github.com/phillipi/pix2pix
2.Pix2Pix 网络架构:
** 生成网络: **
生成器G使用U-net实现:
- 从图中可以看出u-net采用跳跃式链接的全卷积结构(有点像resnet的跨层链接)
U-net来源于VAE的encoder-decoder:
如图;
注:U-Net通过卷积和反卷积实现的U形形状的网络结构;输入和输出都是3个维度
** 判别网络: **
判别器D使用马尔科夫性的判别器(PatchGAN)(论文)
- 简单来说:PatchGAN可以理解为一种风格/纹理损失网络
** 注:根据kernelsize是1的进行将为,最终实现1个chanel的图像**
** 损失函数: **
- 原始GAN(G不需要x):
- CGAN(G需要x):
- 给GAN加个L1或L2,而Pix2pix使用的是L1架构,可以减少模糊程度:
- 最终G损失:
** 注:最终的loss是针对一个chanel的图像的每个像素求MSE(均方差loss,fake的label为0,real的label为1)或BCE(二进制交叉熵)。**
** 训练方法: **
- 训练大致过程如上图所示。图片 x 作为此cGAN的条件,需要输入到G和D中。G的输入是{x,z}(其中,x 是需要转换的图片,z 是随机噪声),输出是生成的图片G(x,z)。D则需要分辨出{x,G(x,z)}和{x,y}。
3.Pix2Pix 创新点:
- 1.一般的方法都是训练CNN去缩小输入跟输出的欧氏距离,论文在GAN的基础上提出一个通用的方法:pix2pix 来解决这一类问题。通过pix2pix来完成成对的图像转换
- 2.输入为图像而不是随机向量
- 3.成对输入为图像而不是随机向量
- 4.Patch判别器来降低计算量提升效果
- 5.L1损失函数的加入来保证输入和输出之间的一致性。