核心要点  

  StackGAN旨在生成高分辨率的真实图片。

  • stackGAN-v1架构包含两个阶段:用于文本到图像的合成,阶段1GAN根据给定的文本描述绘制对象的形状和颜色,生成低分辨率图像。阶段2将阶段1的结果和文本作为输入,生成具有真实图片细节的高分辨率图像。
  • StackGAN-V2:针对有条件和无条件生成任务,提出了一种先进的多阶段生成式对抗网络体系结构StackGAN-v2。由树状结构中中的多个生成器和鉴别器组成:同一场景对应的多个尺度的图像来自于树的不同分支。通过联合逼近多个分布,stackGAN-v2比stackGAN-v1表现出更稳定的训练行为。

StackGAN++

创新点:

1.在StackGAN++模型中,有3个生成器,3个判别器,分别学习三种不同尺度的图像分布

2.联合条件分布和无条件分布估计

  如果是无条件分布估计,需在图像生成的过程中,加入隐变量z,即连接到不同尺度的图像分布

  如果是条件分布估计,就将串接的隐变量z替换成语义变量c,并同时也串接到判别器的隐层特征中

3.颜色一致性正则化。动机是因为生成的图像在不同尺度中应该保持共有的基本结构和颜色。

1.介绍

  生成对抗模型是goodfellow等人提出的一种生成模型,在最初的设计中,GAN是由一个生成器和一个具有竞争目标的判别器组成。训练生成器生成面向真实数据分布的样本以欺骗判别器,优化判别器以区分来自真实数据分布的真实样本和生成器生成的虚假样本。近年来,GAN在模拟样本,图像,视频等复杂数据分布方面显示出了巨大的潜力。

  尽管获得了成功,GAN模型很难去训练。训练过程通常不稳定,和对超参数敏感。一些文献认为,不稳定的部分原因是数据分布和隐含的模型分布的不相交支持。

  这个问题在生成高分辨率(256*256)时更加严重,因为高分辨率图像分布和模型分布在高维空间中的共享支持的机会非常少。此外,GAN训练的常见故障现象是模型崩溃:生成的许多样本包含相同的颜色或文理图像。

  为了稳定GAN的训练过程,提高样本的多样性,一些方法尝试通过提出新的网络架构,引入启发式技巧或修改学习目标来应对挑战。但是大多是方法设计来近似单个数据分布(例如,相同大小的图像)。由于模型与数据分布高维空间中存在少量重合,使得直接逼近高分辨率图像数据分布十分困难,以往的方法局限于生成低分辨率图像。在这项工作中,我们观察到,真实世界的数据,特别是自然图像,可以在不同尺度中建模。可以将多分辨率的数字化图像看作是对相同的连续图像信号以不同的采样率进行采样,因此,图像在多个离散尺度上的分布是相关的。除了不同尺度的多个分布外,图像加上或者不带有条件变量,都可以看作条件分布和无条件分布,他们也是相关的分布。基于这些观察结果,认为将复杂的生成任务分解为渐进目标的子问题,GAN可以被稳定的训练来生成高分辨率图像。在此基础上,我们提出stackGAN来模拟低到高维数据的分布。

  首先,我们提出一个两阶段生成对抗网络,stackGAN-V1,通过草图细化过程从文本描述生成图像,通过Stage1GAN生成低分辨率图像,在第一个阶段的基础上,与第二个阶段叠加在一起生成高分辨率的图像。通过再一次对第一阶段的结果和文本进行条件设置,第二个阶段GAN学会捕捉第一阶段GAN省略的文本信息,并绘制更多的细节,进一步,我们提出了一个新颖的条件平滑技术,以鼓励平滑的潜在条件集。允许在条件集中的随机扰动,增加了合成图像的多样性。

  第二,提出了一个先进的生成式对抗网络架构,StackGAN-V2,用于有条件和无条件生成任务,StackGAN-v2有多个生成器,它们在树状结构中,共享大部分参数。网络的输入可以看作树的根,多尺度图像由树的不同分支生成。位于最深分支的生成器的最终目标是生成逼真的分辨率图像。中间分支的生成器具有逐步生成小到大图像的目标,以帮助实现最终目标。整个网络被联合训练来近似不同但高度相关的图像在不同分支上的分布。一个分布模型的正反馈可以改善其他分布的学习。对于图像生成任务,我们提出的StackGAN-v2同时近似于无条件的纯图像分布和基于文本描述的图像分布。这两种分布是互补的。此外,我们提出了一个颜色一致性正则化项,以指导我们的生成器在不同尺度上生成更多的一致性样本。正则化提供了额外的约束,以促进多分布近似,这是特别有用的无条件设置,其中没有实例监督之间的图像和输入噪声矢量。

  总之,stackGAN三个贡献:

  1.stackGAN-v1首次从文本描述生成具有照片般逼真细节的256*256分辨率图像,

  2.提出了一种新的条件增强技术来稳定条件GANS训练,来提高样本的多样性。

  3.stackGANs-v2通过联合近似多个分布,进一步提高了生成图像的质量,稳定了GANs的训练

StackGAN-v2

  是端到端网络,对一系列多尺度图像进行建模,StackGAN-v2在树形结构中,包含了多个生成器和判别器,从低分辨率到高分辨率的图像来自树的不同分支。在每一个分支,生成器捕获在该尺度上的图像分布,判别器估计样本来之该尺度的训练图像的概率。生成器联合训练去逼近多维分布,生成器和判别器交替训练。讨论两种类型的多维分布,多尺度图像分布和无条件与有条件的图像分布。

  1.多尺度图像分布

  噪声向量z ∼ pnoise 作为输入,使用多个生成器生成不同尺度的图像。噪声pnoise通常是标准正态分布,经过层与层,潜在变量z转换为隐层特征。通过非线性转换,计算每个生成器的隐藏特征。

代表第i个分支的隐藏特征,m分支的总数。为了捕获在预处理中省略的信息,噪声向量z和隐层特征hi-1共同作为计算hi的Fi的输入。在不同层的隐藏特征的基础上,生成器产生小尺度到大尺度的样本(s0,s1,...,sm-1)

Gi是第i个分支的生成器。

  在生成器之后,每一个判别器以真实图像xi或者假样本si作为输入,被训练分成两类。

  StackGan-v2是联合近似多个图像分布增加这些数据分布与模型分布共享的机会。对中间的分支增加辅助任务,为训练整个网络提供更多的梯度信号。例如,近似在第一个分支上的低分辨率的图像分布导致具有基本颜色和结构的图像。然后,后续分支的生成器集中完成更高分辨率图像的细节。

  2.联合无条件和有条件分布

  对于无条件图像生成,训练stackGAN-v2来区分真假图片。处理条件图像生成,图像和他们相应的调节变量被输入到鉴别器中,以确定条件对是否匹配。这引导生成器近似条件图像分布。对于有条件的StackGan-v2,F0,Fi将条件向量c作为输入,比如h0 = F0(c,z),hi = Fi(hi-1,c).对于Fi,条件向量c代替了噪声向量z来鼓励生成器通过条件变量来描绘具有更多细节的图像。因此,多尺度样本由si= Gi(hi)生成。有条件的StackGAN的判别器Di的目标函数由两项组成,无条件损失和有条件损失。无条件损失决定图片是真是假,有条件损失决定图像和条件是否匹配。

每个尺度的发生器Gi联合近似无条件和条件图像分布。

  3.颜色一致性正则化

  在不同的生成器上增加图像分辨率,不同尺度的生成图片应该共享相似的基本结构和颜色。颜色一致性项使具有相同输入的不同生成器生成的图片在颜色上增加一致性来提高生成图片的质量。 

  4.实现细节

  StackGAN-v2模型生成256*256的图像。输入向量(无条件的是z,有条件的是z和 c)先转换成4*4*64的特征张量,然后这个张量在不同的网络层上通过6次上采样转换成64*64*4,128*128*2,最终变成256*256*1。中间的64*64*4,128*128*2,256*256*1特征使用3*3的卷积生成相应尺度的图片。c或z也直接加入到中间层中,来保证c或z中的编码信息不被省略。所有的判别器都有下采样和3*3卷积使输入图像转换成4*4*8的张量,最后使用sigmoid的函数计算输出概率。

torch_10_stackGAN-V2的更多相关文章

  1. 如何搭建自己的SPRING INITIALIZR server

    这两天在慕课学Spring boot ,用idea通过spring initializr新建项目 即使用代理连不上.无奈. 参考了 GitHub - spring-io/initializr: A w ...

  2. Atitit. 破解  拦截 绕过 网站 手机 短信 验证码  方式 v2 attilax 总结

    Atitit. 破解  拦截 绕过 网站 手机 短信 验证码  方式 v2 attilax 总结 1. 验证码的前世今生11.1. 第一代验证码 图片验证码11.2. 第二代验证码  用户操作 ,比如 ...

  3. [Android]Android端ORM框架——RapidORM(v2.1)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/6020412.html [Android]Android端ORM ...

  4. [Android]Android端ORM框架——RapidORM(v2.0)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5626716.html [Android]Android端ORM ...

  5. JuCheap V2.0响应式后台管理系统模板正式发布beta版本

    JuCheap V1.* 查看地址: http://blog.csdn.net/allenwdj/article/details/49155339 经过半年的努力,JuCheap后台通用响应式管理后台 ...

  6. Atitit. 项目文档目录大纲 总集合  v2

    Atitit. 项目文档目录大纲 总集合  v2 -----Atitti.原有项目源码的架构,框架,配置与环境说明 v3 q511 -----Atitit.开发环境 与 工具 以及技术框架 以及 注意 ...

  7. python gettitle v2.0

    #!/usr/bin/env python # coding=utf-8 import threading import requests import Queue import sys import ...

  8. ".NET Compact Framework v2.0 could not be found."

    参考: http://blog.csdn.net/godcyx/article/details/7348431 问题原因: That's a known issue where VS can't di ...

  9. ASP.NET Identity V2

    Microsoft.AspNet.Identity是微软在MVC 5.0中新引入的一种membership框架,和之前ASP.NET传统的membership以及WebPage所带来的SimpleMe ...

  10. Atitit.自然语言处理--摘要算法---圣经章节旧约39卷概览bible overview v2 qa1.docx

    Atitit.自然语言处理--摘要算法---圣经章节旧约39卷概览bible overview v2 qa1.docx 1. 摘要算法的大概流程2 2. 旧约圣经 (39卷)2 2.1. 与古兰经的对 ...

随机推荐

  1. H5生成二维码

    要用H5生成二维码: 1.引入js库,可自行点击链接复制使用 <script type="text/javascript" src="http://static.r ...

  2. 基于 HTML5 WebGL 构建智能城市 3D 场景

    前言 随着城市规模的扩大,传统的方式很难彻底地展示城市的全貌,但随着 3D 技术的应用,出现了 3D 城市群的方式以动态,交互式地把城市全貌呈现出来.配合智能城市系统,通过 Web 可视化的方式,使得 ...

  3. 利用代码生成工具生成基于ABP框架的代码

    在前面随笔,我介绍了整个ABP优化过框架的分层模型,包括尽量简化整个ABP框架的各个层的关系,以及纳入一些基类的辅助处理,使得我们对应业务分层类或者接口尽可能减少代码,并具有生产环境所需要的基类接口, ...

  4. oracle学习笔记(二十三)——JDBC调用存储过程以及批量操作

    jdbc调用存储过程 使用并获得out模式的参数返回值 //存储过程为sum_sal(deptno department.deptno%type,sum in out number) Callable ...

  5. Idea导出jar包运行报错:找不到主清单属性解决方法

    解决方法 1.打开项目结构 2.创建一个Artifact 3.设置 我这里使用的maven,所以有resources文件夹 4.创建lib文件夹 右键output diretory,选择创建文件夹,名 ...

  6. 使用ZeroClipboard操作剪切板

    一.ZeroClipboard下载地址 点击下载 二.添加js引用 <script src="../Assets/js/jquery-1.8.3.min.js">< ...

  7. 如何让Python爬虫一天抓取100万张网页

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 王平 源自:猿人学Python PS:如有需要Python学习资料的 ...

  8. .NET Core下自带容器IServiceCollection以及AutoFac以及AutoFac中AOP简介

    https://www.cnblogs.com/artech/p/net-core-di-01.html 大内老A的在.NET Core下对这些的介绍,有一系列文章 https://www.cnblo ...

  9. SpringBoot(三) 配置文件 篇章

    SpringBoot 配置文件默认为application.properties,但是本章节主要讲解yaml文件配置,因为现在的趋势是使用yaml,它是类似于标准通用标记语言的子集XML的数据描述语言 ...

  10. Vue入门、插件安装

    一.Vue 1.什么是Vue? (1)官网地址: https://cn.vuejs.org/ (2)Vue是一个渐进式的JavaScript框架.采用自底向上增量开发的设计.可以简单的理解为Vue是一 ...