核心要点  

  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. IT兄弟连 Java语法教程 流程控制语句 循环结构语句1

    循环语句可以在满足循环条件的情况下,反复执行某一点代码,这段被重复执行的代码被称为循环体,当反复执行这个循环体时,需要在合适的时候把循环条件该为假,从而结束循环,否则循环将一直执行下去,形成死循环.循 ...

  2. 推荐 | 中文文本标注工具Chinese-Annotator(转载)

    自然语言处理的大部分任务是监督学习问题.序列标注问题如中文分词.命名实体识别,分类问题如关系识别.情感分析.意图分析等,均需要标注数据进行模型训练.深度学习大行其道的今天,基于深度学习的 NLP 模型 ...

  3. GO 基本语法——变量

    基本语法--变量 一.变量的使用 1.1 什么是变量 变量是为存储特定类型的值而提供给内存位置的名称.在go中声明变量有多种语法. 所以变量的本质就是一小块内存,用于存储数据,在程序运行过程中数值可以 ...

  4. Z从壹开始前后端分离【 .NET Core2.2/3.0 +Vue2.0 】框架之七 || API项目整体搭建 6.2 轻量级ORM

    本文梯子 本文3.0版本文章 前言 零.今天完成的蓝色部分 0.创建实体模型与数据库 1.实体模型 2.创建数据库 一.在 IRepository 层设计接口 二.在 Repository 层实现相应 ...

  5. python基础(26):类的成员(字段、方法、属性)

    1. 字段 字段:包括普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同. 普通字段属于对象 静态字段属于类 字段的定义和使用: class Province: # ...

  6. Java之IO模型

    首先来看一下同步与异步的概念: 1.同步是指当前端发起一次操作请求时,只有后台执行完所有的代码操作才会给前端返回值. 2.异步是将前端发回的消息加入消息队列,并且立刻给前端返回请求,告诉用户可以离开当 ...

  7. Redis中使用redis-cli及密码登录

    使用redis-cli登录后如果Redis中设置了密码那么输入密码可能会出现: NOAUTH Authentication required的错. 这个时候可以输入:auth password 进行登 ...

  8. iOS UItableview 镶嵌 collectionView ,cell 自适应高度动态布局

    最近在写这个功能,之前看到很多,可是需求一直没有涉及到,大致思路是有的,发现,网上的大部分都有缺陷和bug,我也是好无语啦啦啦,也不晓得是不是升级 了xcode,一样的代码,允许的效果都不一样,,,苦 ...

  9. Linux(ubuntu) 一行代码搞定查看文件目录

    ls 命令:• ls 是英文单词 list 的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于 DOS 下的 dir 命令 ls命令之后加各种参数的作用: ls -a 显示指定目录下所有子 ...

  10. emmet的用法

    emmet 是一个提高前端开发效率的一个工具.emmet允许在html.xml.和css等文档中输入缩写,然后按tab键自动展开为完整的代码片段. 一.Sublime Text 3 安装插件Emmet ...