GauGAN (SPADE) 水记 (seg2img)

GauGAN (SPADE) 水记 (seg2img)

根据语义mask生成图像

论文:

Semantic Image Synthesis with Spatially-Adaptive Normalization

https://arxiv.org/pdf/1903.07291.pdf

https://github.com/NVlabs/SPADE

https://github.com/NVlabs/SPADE

网络结构解析:

GauGAN之原理解析

论文逐段详解:

CVPR 2019 | SPADE 阅读笔记(翻译)_ybacm的博客-CSDN博客_spade模型

模型架构

论文中的模型架构如下:

https://pic1.zhimg.com/80/v2-a6c63b3200a71020062a434c7bfd9d74_720w.jpg

模型由三部分组成:Encoder,Generator,Discriminator。

Encoder用于从真实图像中获取与其分布有关均值mu和方差var,然后用得到的均值,方差和高斯分布产生的向量x做反归一化操作,最终得到一个包含真实图像信息的随机向量z。

Generator接收上一步产生的随机向量z,产生一个图像x_,在生成的过程中会不断地使用语义图去增强语义信息。

Discriminator接收的是语义图与图像连接产生的张量,经过一系列的处理会输出判断结果,如果语义图与Generator生成的图像相连接,那么就判断为假,反之如果语义图与真实的图像相连接,那么久判断为真。

经过生成器和判别器的不断博弈训练,最终我们输入一个语义图,生成器会生成与该语义图相对应的真实图像。

他们将谱标准化 Spectral Norm 应用于生成器和判别器中的所有层。

SPADE

在这里插入图片描述这个 Sync Batch Norm 表示把所有 GPU 的数据综合起来计算 BN 。

SPADE是在Generator里使用的模型,一个模块会接收上一层的输出,以及语义图作为输入,上一层的输出经过BN,语义图经过resize后通过一个卷积层,然后再分别通过两个卷积层,这两个卷积层输出的结果分别和BN的结果做wise乘法以及加法得到输出。(文中说这种处理方式能够有效地弥补BN带来的语义信息的丢失,使得生成的图像能够更加逼真,因为语义图经过卷积层处理后得到的是表示语义信息的方差和均值,然后经过反归一化操作就向生成的图像中添加了语义信息

论文的模型并没有直接使用SPADE,而是利用其构建了一个模块SPADE ResBlk

https://pic3.zhimg.com/80/v2-3147bea65388ab4dddd8dd78254cecd2_720w.jpg

Generator中实际使用的就是和这个模块

Generator

下图是Generator的架构:

https://pic4.zhimg.com/80/v2-1d8b6a50669bb2179eb34820d2d1d583_720w.jpg

训练时输入的z向量是满足高斯分布的向量利用真实图经过Encoder得到的均值和方差经过反归一化处理得到的,利用训练好的模型生成图像时可以直接使用满足高斯分布的向量作为Generator的输入。

Encoder

Encoder的架构如下:

https://pic4.zhimg.com/80/v2-2f333ed3153c131e5ea8563c3a3c1373_720w.jpg

Encoder 的输出用 KL 散度约束到正态分布

Discriminator

Discriminator架构如下:

https://pic3.zhimg.com/80/v2-b8808febdcd3c0ff1f90a56d02f89a86_720w.jpg

为什么要 SPADE

SPADE(Spatially-Adaptive Denormalization)空间自适应反标准化

条件标准化层(Conditional normalization layers)包括 Conditional BatchNorm 和自适应实例标准化(Adaptive Instance Normalization, AdaIN)两种方法。

这两种方法最初都用于风格迁移任务,后来被用于各种视觉任务。

条件标准化似乎就是先正常 Normalization 然后再用一个线性变换作为 Denormalization ,这个线性变换的参数是通过外部数据推断的,并且需要训练

SPADE 的 Spatially-Adaptive 的意思似乎就是像素级的意思,似乎之前的条件标准化都是 channel级的。

对 mask 做 Normalization 往往会丢失太多信息

因为分割掩码通常由几个均匀uniform的区域组成,所以在应用标准化时会出现信息丢失的问题。

如果输入多个不同的纯色的 mask (比如纯天空,纯草地),经过 Normalization 后就会统统变成一样的,这样语义信息就丢失了。

在这里插入图片描述

所以 SPADE 里面没有对 mask 用 Normalization

不过,论文里的 BN 应该不是普通的 BN ,而是 谱标准化(Spectral Norm)

GauGAN2

GauGAN第二代发布!训练超1000万张图片,两个词就能生成风景画!

增加了 text-to-image 的功能

似乎就是加大训练集,加大模型

GauGAN2用了1000万张图像,模型有 1 亿参数

而 GauGAN 只用了 100 万张图像训练

似乎是在 DALL-E 之后提出的模型

没找到相关的论文或者解析,这个可能是闭源的

试玩:

英伟达其他模型的试玩:

AI Demos from NVIDIA Research

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值