(starGAN v2)StarGAN v2: Diverse Image Synthesis for Multiple Domains

论文:https://arxiv.org/abs/1912.01865

源码:GitHub - clovaai/stargan-v2: StarGAN v2 - Official PyTorch Implementation (CVPR 2020)

代码解读:[CVPR2020] StarGAN v2_xby的学习笔记存档处-CSDN博客_stargan v2

Abstract

        一个好的图像到图像的translation模型应该学习不同视觉域之间的映射,同时满足以下特性:1)生成图像的多样性和2)跨多个域的可扩展性。现有的方法解决了其中一个问题,对所有领域都有有限的多样性或多个模型。我们提出StarGAN v2,这是一个单一的框架,它处理了这两种情况,并在基线上显示了显著的改进结果。在CelebAHQ和一个新的动物面孔数据集(AFHQ)上的实验验证了我们在视觉质量、多样性和可扩展性方面的优势。为了更好地评估图像到图像的转换模型,我们发布了AFHQ,这是一种高质量的动物面部,但区域间和区域内存在很大差异。代码、预训练模型和数据集都可以在atclovaai/stargan-v2上找到。

1. Introduction

        图像到图像的translation旨在学习不同视觉域之间的映射。在这里,域意味着可以将一组图像分组为一个视觉上有区别的类别,并且每个图像都有一个独特的外观,我们将其称为style。例如,我们可以根据人的性别设置图像域,在这种情况下,风格包括化妆、胡须和发型(图1的上半部分)。一个理想的图像到图像的translation方法应该能够综合图像在各个领域的不同风格。然而,设计和学习这样的模型变得很复杂,因为在数据集中可能有任意数量的样式和领域。

        为了解决风格的多样性,很多关于图像到图像翻译的工作已经被开发出[1,16,34,28,38,54]。这些方法将低维的潜码注入到发生器中,该潜码可以从标准高斯分布中随机采样。当生成图像时,他们的领域特定解码器将潜在代码解释为各种样式的风格。但是,由于这些方法只考虑了两个域之间的映射,它们无法扩展到越来越多的域。例如,有了k个domains,这些方法需要训练K(K-1)生成器来处理每个和每个域之间的转换,这限制了它们的实际使用。

        为了解决可扩展性问题,一些研究提出了一个统一的框架[2,7,17,30]。StarGAN[7]是最早的模型之一,它使用单个生成器学习所有可用域之间的映射。生成器将域标签作为额外的输入,并学习将图像转换到相应的域。然而,StarGAN仍然学习每个域的确定性映射,这并没有捕获数据分布的多模态性质。这种限制来自于这样一个事实,即每个域都由一个预定的标签表示。注意,生成器接收一个固定的标签(例如,一个热向量)作为输入,因此它不可避免地在每个域产生相同的输出,给定一个源图像。

        为了获得这两个领域的最佳效果,我们提出StarGAN v2,这是一种可伸缩的方法,可以跨多个域生成不同的图像。特别地,我们从StarGAN开始,并将其域标签替换为我们建议的可以表示特定域的多种样式的特定域样式代码。为此,我们介绍了两个模块,一个映射网络和一个样式编码器。映射网络学习将随机高斯噪声转换为风格码,编码器学习从给定的参考图像中提取风格码。考虑到多个域,两个模块都有多个输出分支,每个分支都为特定的域提供样式代码。最后,利用这些样式代码,我们的生成器学习如何成功地综合多个领域的不同图像(图1)。

        我们首先研究StarGANv2的各个组件的影响,并说明我们的模型确实从使用样式代码中受益(第3.1节)。我们的经验证明,我们提出的方法是可扩展到多个领域,并在视觉质量和多样性方面,与领先的方法(章节3.2)相比,有明显更好的结果。最后,我们提出了一个新的高质量和广泛变化的动物面孔数据集(AFHQ)(附录xa),以更好地评估图像到图像的转换模型在大域间和域内差异方面的性能。我们将此数据集公开发布,供研究社区使用。

2. StarGAN v2

        在本节中,我们描述了我们提出的框架和它的训练目标函数。

2.1. Proposed framework

        用X和Y分别表示图像集和可能的域。给定一个imagex∈X和一个任意domain的y∈Y,我们的目标是训练一个单独的生成器G,它可以生成对应于该图像x的每个domain的y的多个image。我们在每个域的学习风格空间和训练中生成特定于域的风格向量来反映风格向量。图2展示了我们的框架的概述,该框架由下面描述的四个模块组成。

        Generator(Figure2a)。我们的生成器G将一个输入图像x转换为一个输出image为G(x,s),反映了一个特定于域的样式代码s,它由映射网络F或者样式编码器E提供。我们使用自适应实例归一化(AdaIN)[15,22]来注入G。我们观察到s设计来代表一个特定领域的风格,这消除了提供y给G和允许G去合成所有领域的图像的必要性。

        Mapping network (Figure2b)。给定一个潜在的代码z和一个域y,我们的映射网络F生成一个样式代码s=F_y(z),其中F_y(\cdot )表示对应于域y的F的输出。F包含一个具有多个输出分支的MLP,为所有可用域提供样式代码。F可以通过对隐含向量z∈Z和domain y∈Y随机抽样,产生不同的风格代码。我们的多任务架构允许我们高效有效地学习所有领域的风格表示。

        Style encoder (Figure2c)给定一个图像x及其相应的域y,我们的编码器E提取x的样式代码s=E_y(x)。这里,E_y(\cdot)表示E对应域y的输出。与F类似,我们的风格编码也受益于多任务学习设置。可以产生不同的风格代码使用不同的参考图像。这允许G合成一个输出图像来反映一个风格为s的图像x。

        Discriminator (Figure2d)。我们的鉴别器D是一个多任务鉴别器[30,35],它由多个输出分支组成。每个分支D_y学习一个二元分类,决定一个图像x是它的域的真实图像还是由G产生的假图像G(x,s)

(starGAN v2)StarGAN v2: Diverse Image Synthesis for Multiple Domains_第1张图片​ 图2  StarGAN v2概述,由四个模块组成
(a)生成器将输入图像转换为输出图像,反映特定领域的风格代码
(b)映射网络将一个潜在的代码转换为多个领域的风格代码
(c)风格编码器提取图像的风格代码,让生成器进行参考引导图像合成
(d)判别器从多个域区分真假图像。
注意,除了生成器之外的所有模块都包含多个输出分支,其中一个分支是在训练相应的域时选择的。

2.2. Training objectives

4.Discussion

        我们讨论了StarGAN v2能够在多个领域成功合成不同风格图像的几个原因。首先,我们的风格代码是由多头映射网络和风格编码器在每个域单独生成的。通过这样做,我们的生成器只能专注于使用样式代码,其特定于领域的信息已经由映射网络处理(第3.1节)。其次,遵循StyleGAN[22]的观点,我们的风格空间是通过学习转换产生的。这为我们的模型提供了比基线[16,28,34]更大的灵活性,基线假设样式空间是一个固定的高斯分布(章节3.2)。最后但并非最不重要的是,我们的模块得益于充分利用多个领域的训练数据。通过设计,每个模块的共享部分应该学习领域不变特征,从而产生正则化效应,鼓励对未见样本进行更好的推广。为了表明我们的模型泛化了看不见的图像,我们使用在CelebA-HQ上训练的模型测试了FFHQ[22]中的几个样本(图7)。在这里,StarGAN v2成功地捕获了引用的样式,并将这些样式正确地呈现到源图像中。

6.Conclusion

        我们提出了StarGAN v2,它解决了图像到图像平移的两个主要挑战:将一个域的图像转换为多个目标域的图像,支持多个目标域。实验结果表明,我们的模型可以跨多个领域生成丰富风格的图像,显著优于以往领先的方法[16,28,34]。

7.一些笔记

        starGAN的结构:

         starGAN v2的结构:

(starGAN v2)StarGAN v2: Diverse Image Synthesis for Multiple Domains_第2张图片

        问题在于:1、StarGAN 风格转换的图像部分很局限,多样性差;2、这里的attribute需要人工标出,没标出就无法学习,当存在多种style或domain时,很棘手。比如有一组全新domain的图片,你需要将你的图片转换成他的风格,那你需要单独标出.

        StarGAN 改进版本,不需要具体标出style标签(attribute),只需1、输入源domain的图像,以及目标domain的一张指定参考图像(Style Encoder网络学习其style code),就可将源图像转换成 目标domain+参考图像style 的迁移图像;或者2、输入源domain的图像,以及随机噪声(mapping网络将其映射为指定domain的随机style code),就可将源图像转换成 目标domain+随机style的迁移图像。

你可能感兴趣的:(PyTorch对抗生成网络,计算机视觉,人工智能,神经网络)