CVPR2019 Oral 高更再世 GauGAN:Semantic Image Synthesis with Spatially-Adaptive Normalization

Semantic Image Synthesis with Spatially-Adaptive Normalization
Taesung Park, Ming-Yu Liu, Ting-Chun Wang,,Jun-Yan Zhu
UC Berkeley
NVIDIA 3MIT CSAIL 2019

NVIDIA提出的一篇GAN,并基于这个算法开发了GauGAN,可以去尝试着玩一下他们的DEMO,效果非常惊艳。

这篇论文提出了Spatially-adaptive denormalization,解决了normalization损失语义信息的问题。正文里着重介绍了 SPatially-Adaptive (DE)normalization (SPADE),更多信息还需要去看附录。


图1

模型效果如图1,标签mask控制语义,风格图片控制风格。

Semantic Image Synthesis

设$\mathbf{m} \in \mathbb{L}^{H \times W}$为语义分割mask,$\mathbb{L}$是标签类集。

Spatially-adaptive denormalization

设$\mathbf{h}^{i}$为卷积网络第i层的特征图,一个batch共N个样本,$C^i$为这层的通道数,$H^{i}$和$W^{i}$是特征图宽高。SPADE类似BN,在每个通道上进行,将特征值归一化到标注正态分布,再用学习到的scale和bias调节:

其中$\mu_{c}^{i}$ and $\sigma_{c}^{i}$是通道c的特征值的均值与标准差:

图2

其流程见图2。学到的$\gamma_{c, y, x}^{i}(\mathbf{m})$和$\beta_{c, y, x}^{i}(\mathbf{m})$是和特征图同shape的矩阵,而且是通过一个小网络得到的,网络结构见图10。

图10

论文还论证了SPADE本质是几个已有的normalization的泛化:Conditional BN,AdaIN等。

encoder

图14

图14是encoder网络结构,只有使用VAE训练时会用到。最终两个fc输出两个256长的向量,作为均值和方差去生成256长的随机向量,作为生成器的输入。其loss为KL散度loss,和生成器一起优化:

p是标准正态分布,q是通过预测的均值与方差生成的向量。为了让generator的梯度能传回到encoder,使用了[22]的reparamterization技巧。

该技巧就是encoder只输出均值方差,基于均值方差随机采样,避免随机采样无法梯度回传问题

SPADE generator

图4

SPADE generator网络结构见图4,因为使用了SPADE,因此生成器的输入不再需要mask信息,比起流行的架构(pix2pixHD),少了encoder部分,网络变得更轻量了,而且可以使用随机的高斯分布向量作为输入。

用随机向量作为生成器的输入,以及这样去训练辨识器,可能会比较难理解。但要实现variational auto encoding(VAE),还是需要使用encoder的预测,生成随机向量作为输入。

图11

图12

图11和12是SPADE ResBlk和生成器的网络结构。

Discriminator

图13

辨识器网络结构见图13,其设计基于pix2pixHD,里面使用了IN(Instance Normalization),将seg与要辨识的图片concat后作为输入。训练细节这篇论文没讲,可以看pix2pixHD、pix2pix,以及他们的基础PatchGAN。

Why does SPADE work better?

语义信息没有被normalize,不会丢失。图3是一个对比。

图3

整体流程

整体流程见图15。
图15

Experiment

性能评价指标是将合成的图片使用语义分割模型进行分割,与gt的分割mask进行比较,评估其mean Intersection-over-Union (mIoU)和 pixel accuracy (accu) metrics。此外还用了Frechet Inception Distance (FID)评价合成与真实图片分布的距离。下面是一系列结果展示与性能对比。

Alt text

Alt text

Alt text

Alt text

Alt text

Alt text

Alt text

Alt text

Alt text

还有更多图片结果,感兴趣的可以去论文附录里看。