StarGAN: Unified Generative Adversarial Net works for Multi-Domain Image-to-ImageTranslation

StarGAN是一种新的方法,能用一个模型执行多种域的图像转换,通过单一网络同时训练多个数据集,提高图像质量,并允许灵活地转换到任意目标域。这种方法在面部属性转移和表情合成任务中表现出色,解决了现有模型效率低下的问题。
摘要由CSDN通过智能技术生成

文章链接:https://arxiv.org/pdf/1711.09020v3.pdf

代码链接:GitHub - yunjey/stargan: StarGAN - Official PyTorch Implementation (CVPR 2018)

我们提出了StarGAN,这是一种新颖且可扩展的方法,可以仅使用单一模型为多个域执行图像到图像的转换。StarGAN的这种统一模型架构允许在单个网络中同时训练具有不同域的多个数据集。这使得StarGAN与现有模型相比具有更高质量的翻译图像,以及灵活地将输入图像翻译到任何所需目标域的新功能。我们通过经验证明了我们的方法在面部属性转移和面部表情合成任务上的有效性。

我们将术语属性表示为图像中固有的有意义的特征:如头发颜色、性别或年龄,并将属性值表示为属性的特定值,例如,黑色/金色/棕色表示头发颜色或男性/女性表示性别。

我们进一步将域表示为一组共享相同属性值的图像。例如男人可以代表一个域,或者女人可以代表另一个域。一些图像数据集带有许多标记属性。例如,CelebA数据集包含40个与头发颜色、性别和年龄等面部属性相关的标签,RaFD数据集包含8个面部表情标签,如快乐愤怒悲伤

然而,现有的模型在这种多域图像转换任务中效率低下。它们的低效率源于这样一个事实:为了学习k个域之间的所有映射,必须训练k(k−1)个生成器。同时,它们是无效的,即使存在可以从所有域的图像(如脸型)中学习到的全局特征,每个生成器也不能充分利用整个训练数据,只能从k个域中的两个域中学习。未能充分利用训练数据可能会限制生成图像的质量。它们无法联合训练来自不同数据集的域,因为每个数据集都是部分标记的。

如图2 (b)所示,我们的模型采用了多个域的训练数据,并仅使用一个生成器学习所有可用域之间的映射。这个想法很简单。我们的生成器不是学习固定的转换(例如,从黑色到金色的头发),而是同时接收图像和域信息作为输入,并学习灵活地将图像转换到相应的域。我们使用一个标签(例如,二进制或one-hot向量)来表示域信息。

在训练过程中,我们随机生成一个目标域标签,训练模型灵活地将输入图像转换到目标域。通过这样做,我们可以控制域标签,并在测试阶段将图像转换为任何所需的域。

我们还介绍了一种简单而有效的方法,通过在域标签中添加mask vector来实现不同数据集域之间的联合训练。

网络框架:

我们首先描述了我们提出的StarGAN,这是一个在单个数据集中解决多域图像到图像转换的框架。然后,我们讨论StarGAN如何合并包含不同标签集的多个数据集,以灵活地使用任何这些标签执行图像转换。我们的目标是训练一个单独的生成器G来学习多个域之间的映射为了实现这一点,我们训练G将输入图像x转换为输出图像y,条件是目标域标签c, G(x, c)→y我们随机生成目标域标签c,使G学会灵活地转换输入图像。我们还引入了一个辅助分类器[22],它允许一个鉴别器控制多个域。

对抗损失:

域分类损失:

对于给定的输入图像x和目标域标签c,我们的目标是将x转换为输出图像y,它被正确地分类到目标域c

将目标损失分解为两项:

用于优化D的真实图像的域分类损失

用于优化G的虚假图像的域分类损失。

重建损失:

其中c表示目标域标签,c’表示源域标签

总目标函数:

多重数据集训练:

StarGAN的一个重要优势是它同时包含不同类型标签的多个数据集,因此StarGAN可以在测试阶段控制所有标签。然而,当从多个数据集学习时,一个问题是每个数据集只知道部分标签信息。

Mask Vector:

为了缓解这个问题,我们引入了一个掩码向量m,它允许StarGAN忽略未指定的标签,并专注于特定数据集提供的显式已知标签。在StarGAN中,我们使用一个n维的one-hot向量来表示m,  n是数据集的数量。此外,我们将标签的统一版本定义为向量。

Ci表示第i个数据集标签的向量。已知标签ci的向量既可以表示为二进制属性的二进制向量,也可以表示为分类属性的one-hot向量。对于剩余的n−1个未知标签,我们简单地赋0值。

训练策略:

当使用多个数据集训练StarGAN时,我们使用中定义的域标签c ~作为生成器的输入。通过这样做,生成器学会忽略未指定的标签,这些标签是零向量,并专注于显式给定的标签。除了输入标签c ~的维度外,生成器的结构与使用单个数据集进行训练时完全相同。另一方面,我们扩展了鉴别器的辅助分类器,以生成所有数据集标签上的概率分布。然后,我们在多任务学习设置中训练模型,其中鉴别器试图最小化与已知标签相关的分类错误。例如,当使用CelebA中的图像进行训练时,鉴别器只最小化与CelebA属性相关的标签的分类错误,而不最小化与RaFD相关的面部表情。在这些设置下,通过在CelebARaFD之间交替使用,鉴别器学习了两个数据集中的所有鉴别特征,生成器学习了控制两个数据集中的所有标签。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值