pix2pix(PatchGAN)的网络结构

优化object:

pix2pix的关键PatchGAN

PatchGAN discriminator 专注于高频结构,它限制注意力于图片不同尺度局部的patches,

PatchGAN与 L1 正则化项结合,利用这两种方法来学习低频并锐化局部区域的细节。

This motivates restricting the PatchGAN discriminator to only

model high-frequency structure, relying on an L1 term to
force low-frequency correctness
. In order to model
high-frequencies, it is sufficient to restrict our attention to
the structure in local image patches. Therefore, we design
a discriminator architecture – which we term a PatchGAN
– that only penalizes structure at the scale of patches. This
discriminator tries to classify if each N ×N patch in an im-
age is real or fake. We run this discriminator convolution-
ally across the image, averaging all responses to provide the
ultimate output of D.

pix2pix(PatchGAN)网络结构细节

pix2pixHD

顾名思义,是 pix2pix的高清改良版,怎么高清的哪?

设计的生成器由两部分组成,G1和G2,其中G2又被割裂成两个部分。G1和pix2pix的生成器没有差别,就是一个end2end的U-Net结构。G2的左半部分提取特征,并和G1的输出层的前一层特征进行相加( element-wise sum)融合信息,把融合后的信息送入G2的后半部分输出高分辨率图像。

训练时,先用低分辨率图片训练一个residual network G1网络,完后G1首尾拼上G2,联合训练高分辨率图片。

判别器使用多尺度判别器,在三个不同的尺度上进行判别并对结果取平均。判别的三个尺度为:原图,原图的1/2降采样,原图的1/4降采样(实际做法为在不同尺度的特征图上进行判别,而非对原图进行降采样)。显然,越粗糙的尺度感受野越大,越关注全局一致性。

关于loss

  • GAN loss:和pix2pix一样,使用PatchGAN。
  • Feature matching loss:将生成的样本和Ground truth分别送入判别器提取特征,然后对特征做Element-wise loss
  • Content loss:将生成的样本和Ground truth分别送入VGG16提取特征,然后对特征做Element-wise loss
  • 使用Feature matching loss和Content loss计算特征的loss,而不是计算生成样本和Ground truth的MSE,主要在于MSE会造成生成的图像过度平滑,缺乏细节。Feature matching loss和Content loss只保证内容一致,细节则由GAN去学习。

关于多样性

不同于pix2pix实现生成多样性的方法(使用Dropout),这里采用了一个非常巧妙的办法,即学习一个条件(Condition)作为条件GAN的输入,不同的输入条件就得到了不同的输出,从而实现了多样化的输出,而且还是可编辑的。具体做法如下图:

首先训练一个编码器 ,利用编码器提取原始图片的特征,然后根据Labels信息进行Average pooling,得到特征(上图的Features)。这个Features的每一类像素的值都代表了这类标签的信息。

vid2vid

Vid2Vid作为pix2pix, pix2pixHD的改进版本,重点解决了视频到视频转换过程中的前后帧不一致性问题。

视频生成的难点

GAN在图像生成领域虽然研究十分广泛,然而在视频生成领域却还存在许多问题。主要原因在于生成的视频很难保证前后帧的一致性,容易出现抖动。对于视频问题,最直观的想法便是加入前后帧的光流信息作为约束,Vid2Vid也不例外。由于Vid2Vid建立在pix2pixHD基础之上,加入时序约束。因此可以实现高分辨率视频生成

作者给出的方案

  • 生成器加入光流约束
  • 判别器加入光流信息
  • 对前景、背景分别建模

Learning objective function

 

对前景,背景分别建模 

用SPADE替代pix2pixHD

替代之后,效果明显,如下图:

注意:SPADE里面生成器G和判别器D里面的卷积层都用了Spectral Norm谱归一化,来加强训练的稳定性。(简而言之,Spectral Norm 约束了卷积层的 Lipschitz 常数,被用作稳定鉴别器网络训练的一种方式。在实践中,它非常奏效。)

SPADE的多模

对于相同的seg mask,只需要取不同的噪声输入,就会得到不同的输出,避免了同一个seg mask在监督学习下,被强行要求相同于不同target图片,从而造成模糊的问题。

SPADE的loss和D和pix2pixHD可以认为是一样的。

单单生成器G的不同,SPADE 为什么会比pix2pixHD效果好太多?

因为原始的语义输入,会被逐步直接的调制进入生成图片的流水线,避免了被一些normalization 层wash away掉一些细节信息。

图解pix2pix(PatchGAN) ,pix2pixHD,vid2vid,SPADE相关推荐

  1. 如何判断模糊图像_图像翻译三部曲:pix2pix, pix2pixHD, vid2vid

    所谓图像翻译,指从一副图像到另一副图像的转换.可以类比机器翻译,一种语言转换为另一种语言.下图就是一些典型的图像翻译任务:比如语义分割图转换为真实街景图,灰色图转换为彩色图,白天转换为黑夜...... ...

  2. pix2pix, pix2pixHD, vid2vid

    512*512 https://gitee.com/jacke121/pix2pixHD_ACM 1060 batch-size 1也训练不起来. https://github.com/deepglu ...

  3. pix2pix 与 pix2pixHD的大致分析

    目录 pix2pix与pix2pixHD的生成器 判别器 PatchGAN(马尔科夫判别器) 1.pix2pix 简单粗暴的办法 如何解决模糊呢? 其他tricks 2.pix2pixHD 高分辨率图 ...

  4. GAN系列之pix2pix、pix2pixHD

    1. 摘要 图像处理的很多问题都是将一张输入的图片转变为一张对应的输出图片,比如灰度图.梯度图.彩色图之间的转换等.通常每一种问题都使用特定的算法(如:使用CNN来解决图像转换问题时,要根据每个问题设 ...

  5. Pix2Pix(2017)+CycleGAN+Pix2PixHD

    GAN 常规的深度学习任务如图像分类.目标检测以及语义分割或者实例分割,这些任务的结果都可以归结为预测.图像分类是预测单一的类别,目标检测是预测Bbox和类别,语义分割或者实例分割是预测每个像素的类别 ...

  6. Vid2Vid:Video-to-Video Synthesis

    论文:Vid2Vid 代码:项目主页 Vid2Vid作为pix2pix,pix2pixHD的改进版本,重点解决了视频到视频转换过程中的前后帧不一致性问题. 视频生成的难点 GAN在图像生成领域虽然研究 ...

  7. SPADE: Semantic Image Synthesis with Spatially-Adaptive Normalization

    目录 介绍 相关工作 1.Unconditional normalization layers 2.Conditional normalization layers(这一部分挺重要的) 方法 3.1 ...

  8. 生成对抗网络GAN论文总结+复现代码(已完成27篇,未完待续。。。)

    GAN论文学习心得 写在前面 (GAN)Generative Adversarial Networks (CGAN)Conditional Generative Adversarial Nets (D ...

  9. Image Translation for Medical Image Generation Ischemic Stroke Lesion Segmentation——论文翻译

    摘要 ​ 基于深度学习的疾病检测和分割算法有望改善许多临床过程.然而,此类算法需要大量带注释的训练数据,而由于数据隐私.法律障碍和非统一的数据获取协议,这些数据通常在医疗环境中不可用.带有注释病理的合 ...

  10. 使用生成对抗网络进行端到端中国山水画创作(SAPGAN)

    目录​​​​​​​ 摘要: 1.Introduction 2. Related Work 2.1. Generative Adversarial Networks 2.2. Neural Style ...

最新文章

  1. Unity制作的 安卓和Ios程序如何退出
  2. Java 9 - 17 特性解读:Java 11
  3. mybatis查询时间段sql语句
  4. Java黑皮书课后题第10章:*10.11(几何:Circle2D类)定义Circle2D类
  5. Employee Assign Organization unit
  6. 已知有几个数据存放在BUF为首址的字节存储区中,试统计其中正数的个数,并将结果存入ZNUM单元中。
  7. x-lite asterisk 成功实现视频通话
  8. 轮播高度_Qt编写自定义控件24-图片轮播控件
  9. HTML期末作业-宠物网
  10. quickpcb添加pcb库_南京阿勒勾电子 quickpcb2005详细步骤教程
  11. Python 数据类型 布尔类型
  12. python如何退出模块_如何将一个 Python 函数进行模块化封装
  13. CAD绘图设计效率慢?这些外挂神器帮你1小时完成3小时的工作!
  14. 海康威视球机摄像头晚上补光灯闪烁问题
  15. win10系统打开/解压缩文件时出现文件名乱码
  16. Apache监控与调优(七)MPM相关参数
  17. 信度和效度经典例子_信度与效度公式的纠正
  18. 应用程序错误电脑黑屏_werfault应用程序错误黑屏|Win7解决werfault.exe应用程序错误方法...
  19. [RK3288][Android6.0] 调试笔记 --- 系统第一次开机进入Recovery模式原因
  20. Laravel中pluck的使用——返回指定的字段值信息列表

热门文章

  1. SLAM_视觉SLAM面试题及答案汇总
  2. 高翔视觉slam十四讲书籍习题(第三讲)
  3. 漫画制作软件EasyComic V1.7发布
  4. 终端模拟器怎么用android命令大全,终端模拟器命令大全apk下载-终端模拟器刷入recovery手机版下载V1.0.70安卓最新版-西西软件下载...
  5. Flink Back Pressure(背压)实现与监控
  6. ubuntu server 20.04 配置无线wifi网络并设置固定ip公司连接家里的linux服务器配置
  7. 3D打印牛排,入口即化!你敢吃吗?
  8. 超星问卷与麦客问卷自动填写(selenium+Chrome)
  9. github contribbution 没记录怎么破?
  10. 技术分享 | DNS解析不生效的原因及解决方法