1. 论文相关
CVPR2019
2.摘要
2.1 摘要
任意属性编辑通常可以通过结合编解码(encoder-decoder)和生成对抗网络解决。然而,编码器中的瓶颈层(bottleneck layer)通常会导致模糊和低质量的编辑结果。添加跳过连接(skip connections)可以提高图像质量但以削弱属性操纵能力(attribute manipulation ability)为代价。此外,现有的方法利用目标属性向量,引导灵活翻译到预期的目标领域。在这项工作,我们建议从选择性转移视角(selective transfer perspective)解决这个问题(address these issues)。考虑到具体的编辑任务当然只与更改的属性相关,而不是所有目标属性,我们的模型有选择地在目标和源属性向量之间的差异作为输入。此外,选择性迁移单元(selective transfer units)与编码器-解码器结合去自适应选择和修改编码器特征用于增强属性编辑。实验表明我们的方法(即STGAN)同时提高了属性操作准确度和感知质量,在任意面部属性编辑和季节翻译(arbitrary facial attribute editing and season translation)与目前最先进的方法相比表现良好。
2.2
(1) several arbitrary attribute editing approaches [7, 11, 26] have been developed, which usually (i) use encoder-decoder architecture, and (ii) take both source image and target attribute vector as input.
(2)
2.3 主要贡献
为了解决上述问题,本文从选择性迁移的角度对任意属性编辑进行了研究,提出了STGAN模型。在选择性方面,我们的STGAN建议(i)只考虑要改变的属性,以及(ii)在编辑属性无关区域时有选择地将编码器特征与解码器特征连接起来。在迁移方面,我们的STGAN期望能够自适应地修改编码器特征,以适应不同编辑任务的要求,从而为处理局部和全局属性提供统一的模型。
为此,代替使用完全的目标属性向量,我们的STGAN将目标和源属性向量之间的差异作为编码器-解码器的输入。随后,提出了选择传输单元(selective transfer units ,STUs)来自适应地选择和修改编码特征,并将其与解码特征相结合,以提高图像质量和属性处理能力。特别地,STU被添加到每一对编解码层中,并同时考虑了编码特征、内部状态和差异属性向量,以开发跨层一致性和任务专用性。从图1和2中,我们的STGAN可以为任意属性编辑产生高质量和真实感(high quality and photo-realistic)的结果,并且在目标和源属性相同的情况下获得接近理想的重建。总之,这项工作的贡献包括:
(1)以差分属性向量代替所有目标属性作为输入,增强了属性的灵活转换,简化了训练过程。
(2)提出了选择性传输单元,并将其与编码器-解码器结合,以同时提高属性操作能力和图像质量。
(3)实验结果表明,我们的stgan在任意的面部属性编辑和季节翻译方面表现出了良好的性能。
3. 方法
本节介绍我们提出的用于任意属性编辑的STGAN。首先,我们以AttGAN为例来分析跳过连接(skip connections)的局限性。然后,以差分属性向量(difference attribute vector)为输入,在编解码结构中加入选择性传输单元,构成STGAN。最后给出了STGAN的网络结构(见图5)和模型目标。
3.1. AttGAN中跳跃连接的限制(Limitation of Skip Connections in AttGAN)
StarGAN[7]和 AttGAN[11]采用编码器-解码器结构,其中空间池化或下采样(spatial pooling or downsampling)对于获取属性操作的高级抽象表示至关重要。然而,下采样不可逆地降低了特征图的空间分辨率和精细细节,而这些细节不能通过转置卷积完全恢复,结果容易出现细节模糊或丢失。为了提高编辑结果的图像质量, AttGAN[11]在编码器和解码器之间应用了一个跳跃连接,但是我们将证明它仍然是有局限性的。
为了分析跳跃连接的影响和局限性,我们在测试集上测试了ATTGAN的四个变体:(i)ATTGAN W/O跳跃连接(ATTGAN ED),(ii)HE等人发布的ATTGAN模型。[11]使用一个跳跃连接(attgan),(iii)使用两个跳跃连接(attgan-2s)的attgan,以及(iv)具有所有对称跳跃连接的attgan[28](attgan-unet)。
(i) AttGAN w/o skip connection (AttGAN-ED);
(ii) AttGAN model released by He et al. [11] with one skip connection (AttGAN);
(iii) AttGAN with two skip connections (AttGAN-2s);
(iv) AttGAN with all symmetric skip connections [28] (AttGAN-UNet).
表1列出了保持目标属性向量与源属性向量相同的PSNR/SSIM重建结果,图3显示了图像的重建结果。可以看出,增加跳跃连接有利于精细细节的重建,并且随着跳跃连接数的增加,重建效果会更好。通过设置不同于源属性向量的目标属性向量,图4通过面部属性分类模型进一步评估面部属性生成的准确性。添加一个跳跃连接(即attgan)只会略微降低大多数属性的生成精度,但添加多个跳跃连接会导致显著的性能下降(notable degradation)。因此,跳跃连接的部署以削弱属性操作能力为代价来提高重建图像质量,主要归因于跳跃连接直接连接编码器和解码器特征。为了避免这种困境,我们提出了一种STGAN,它采用选择性传输单元来自适应地变换由待改变属性引导的编码器特征。
3.2. 以差分属性向量为输入(Taking Difference Attribute Vector as Input)
StarGAN[7]和 AttGAN[11]都将目标属性向量和源图像作为生成器的输入。实际上,全目标属性向量的使用是多余的,可能会对编辑结果造成危害。在图2中,目标属性向量与源属性向量完全相同,但是StarGAN[7]和 AttGAN[11]可能会错误地操纵一些未改变的属性。从图2可以看出,编辑了金发的人脸图像后,变得更加金发。此外,它们甚至错误地调整了具有“女性”属性的源图像的头发长度。
对于任意的图像属性编辑,只需考虑待修改的属性,而不是完整的目标属性向量,就可以保留更多的源图像信息。所以我们把差异属性向量定义为目标和源属性向量的差异,
把作为输入可以带来一些独特的优点。首先,要改变的属性只是一组很小的属性向量,而使用通常会使模型更容易训练。第二,与相比,可以为指导图像属性编辑提供更多有价值的信息,包括是否需要编辑属性、属性应该朝哪个方向更改。然后利用这些信息设计合适的模型,实现编码特征和解码特征的转换和拼接,在不牺牲属性操作精度的前提下提高图像重建质量。最后,在实际操作中更方便用户提供。当作为输入时,用户需要手动提供所有目标属性,或者修改某些属性预测方法提供的源属性。
3.3. 选择性迁移单元(Selective Transfer Units)
图5显示了我们的STGAN的总体架构。我们提出了选择性转换单元(STU)来选择性地转换编码器特征,使之与解码器特征兼容和互补,而不是通过跳接直接将编码器特征与解码器特征串联起来。自然地,转换需要对改变的属性进行自适应,并且在不同的编码器层之间保持一致。因此,我们修改了GRU[6,8]的结构来构建STUs,以便将信息从内层传递到外层。
在不丧失泛化性的前提下,我们以第层编码器为例。由表示第层的编码器特征$$,
用表示第层的隐藏状态。为了方便起见,将差分属性向量拉伸为与具有相同的空间大小。与序列建模不同,跨层特征映射具有不同的空间大小。所以我们首先使用转置卷积(transposed convolution)来上采样隐藏状态,
其中,表示级联操作,表示转置卷积(transposed convolution)。然后,STU采用GRU的数学模型来更新隐藏状态和变换后的编码器特征。
其中表示卷积运算,表示入口积(entrywise product),表示sigmoid function。
复位门(reset gate)和更新门(update gate)的引入使得我们可以有选择地控制隐藏状态、差分属性向量和编码器特征的贡献。此外,在公式(6)和(7)中进行的卷积变换和线性插值(convolution transform 和 linear interpolation)提供了一种用于迁移编码器特征及其与隐藏状态的组合的自适应方法。与GRU作为隐藏状态的输出相比,我们将作为隐藏状态的输出和作为转换后的编码器特征的输出。实验结果表明,该方法对属性生成精度有一定的提高。
3.4. 网络体系结构(Network Architecture)
我们的STGAN由两部分组成,即生成器和判别器。图5显示出了由用于抽象潜在表示(abstract latent representation)的编码器和用于生成目标图像的解码器组成的网络结构。编码器包含5个卷积层,内核大小为4,步幅为2,解码器包含5个转置卷积层。此外,STU应用在前四个编码器层的后面,用下图公式表示:
判别器有两个分支和。由五个卷积层和两个全连接层组成,用于区分图像是假图像还是真图像。与共享卷积层,但通过另外两个完全连接的层预测属性向量。有关网络体系结构的详细信息请参阅附件。
3.5. 损失函数(Loss Functions)
给定一个输入图像,编码器的特征可以通过以下公式获得:
。然后,在指导下,部署STU来转换每一层的编码器特征:
请注意,我们采用了四个STU,并直接传递给。部署在不同层的STU不共享参数,因为(i)维度不同,(ii)内部层的特征比外部层的特征更抽象。
让. 因此,的编辑结果可以由以下公式给出:
可以被写成:
在下面,我们将详细介绍重建、对抗和属性操作损失,这些损失将被用于训练我们的STGAN。
3.5.1 重建损失(Reconstruction loss)
当目标属性与源属性完全相同,即=0时,自然要求编辑结果近似于源图像。因此,重建损失被定义为:
其中l1-范数用于保持重构结果的真实性(preserving the sharpness of reconstruction result)。
3.5.2 对抗性损失(Adversarial loss)
当目标属性与源属性不同,即时,编辑结果的基本真实性(ground-truth)将不可用。因此,对抗性损失[9]被用于限制编辑结果与真实图像不可区分。特别是,我们遵循Wasserstein GAN (WGAN)[3]和WGAN-GP[10],并定义训练和的损失:
其中,沿真实图像和生成图像对之间的直线采样。
3.5.2 属性操作损失(Attribute manipulation loss)
即使缺少了ground-truth,我们也可以要求编辑结果具有所需的目标属性。因此,我们引入了一个与共享卷积层的属性分类器,并定义了以下属性操作损失,用于训练和生成器:
3.5.3 模型目标(Model Objective)
考虑到上述损失,训练判别器的目标可以表述为:
4. 实验
我们使用ADAM[15]优化器对模型进行训练,其值和。学习率初始化为,100个epochs后衰减为进行微调。在所有的实验中,方程(17)和(18)中的tradeoff parameters设置为,和。所有的实验都是在tensorflow[1]环境下进行的,cudnn 7.1运行在Intel(R) Xeon(R) E3-1230v5 CPU 3.40GHz 和
Nvidia GTX1080Ti GPU的PC机上。源代码可以在https://github.com/csmliu/stgan.git上找到。
4.1. 面部属性编辑(Facial Attribute Editing)
在[7,11]之后,我们首先评估了在CelebA数据集[23]上任意编辑面部属性的STGAN,该数据集已被大多数相关工作采用[7,11,17,26]
4.1.1数据集和预处理(Dataset and preprocessing)
CelebA数据集[23]包含202599个对齐的面部图像,裁剪大小为178×218,每个图像有40个属性标签。图像分为训练集、验证集和测试集。我们从验证集获取1000张图像来评估训练过程,使用验证集的其余部分和训练集来训练STGAN模型,并使用测试集进行性能评估。我们考虑了13种属性,包括秃头、刘海、黑发、金发、棕色头发、浓眉、眼镜、男性、嘴巴微微张开、胡须、无胡须、皮肤苍白和年轻,因为它们在外观上更具特色,涵盖了相关工作使用的大多数属性。在我们的实验中,每个图像的中心170×170区域被裁剪并通过双三次插值(bicubic interpolation)调整到128×128。训练和推理时间请参阅补充材料。
4.1.2 定性结果(Qualitative results.)
我们将STGAN与四种竞争方法进行比较,即IcGAN [26], FaderNet [17],AttGAN [11] and StarGAN [7]。定性结果如图6所示。AttGAN的结果是由发布的模型生成的,为了进行公平的比较,我们对其他模型进行了重新训练。从图6可以看出,所有竞争方法在处理复杂属性(如秃头、头发和年龄)方面仍然受到限制,并且容易产生过多的结果。此外,在处理复杂和/或多个属性时,它们的结果更可能没有得到充分的修改,并且照片不真实。相比之下,我们的STGAN在正确处理所需属性方面是有效的,并且能够产生高质量的结果。更多的编辑结果见附录。
4.1.3 定量评估(Quantitative evaluation)
属性编辑的性能可以从图像质量和属性生成精度两个方面进行评价。由于无法获得编辑结果,我们采用了两种方法对STGAN进行定量评估。首先,利用STGAN的训练集训练一个深度属性分类模型,对测试集上的13个属性的分类精度达到94.5%。然后图7显示出了属性生成精度,即编辑结果的改变属性上的分类精度。可以看出,我们的STGAN比所有竞争方法都有很大的优势。对于秃头、黑发、棕色头发和眉毛的属性,STGAN在与竞争方法的比较中获得20%的准确率。
在图像质量方面,保持目标属性向量与源属性向量一致,PSNR/SSIM重建结果见表2。利用STU和差分属性向量,与AttGAN和STGAN相比,STGAN的重建效果更好(PSNR为> 7 dB)。结果与图2一致。由于训练过程的限制,IcGAN的重建能力非常有限。FaderNet模型的重建效果较好,主要是由于每个FaderNet模型只处理一个属性。
4.1.4 用户研究(User study)
众包平台的用户研究对AttGAN, StarGAN和STGAN三种高性能方法的生成质量进行了评价。我们考虑13个属性的11个任务,因为金发、黑发和棕色头发之间的转移合并为头发颜色。对于每个任务,50名经过验证的人员参与其中,每个人都有50个问题。在每个问题中,人们都会得到一个从测试集中随机选择的源图像,以及由AttGAN, StarGAN和STGAN编辑的结果。为了公平比较,结果以随机顺序显示。指导用户选择最佳的结果,该结果能更成功地改变图像的属性,提高图像质量,更好地保留源图像的身份和细节。结果如表3所示,STGAN有更高的概率被选为所有11项任务的最佳方法。
4.2. 季节翻译(Season Translation)
我们使用CycleGAN发布的数据集进一步训练STGAN在夏季和冬季之间进行图像到图像的转换[34]。该数据集包含约塞米蒂的照片,包括训练集中1231张夏季和962张冬季图像,以及309张夏季和238张冬季图像供测试。我们还随机从训练集中选择100幅图像进行验证。所有图像都用作256×256的原始大小。
我们比较了我们的STGAN和AttGAN, StarGAN以及zhu等人发布的CycleGAN。请注意,CycleGAN分别使用两个生成器进行夏季→冬季和冬季→夏季的翻译,而其他三种方法使用单个模型执行这两个任务。图8示出了翻译结果的几个示例。可以看出,STGAN在竞争方法上表现良好。我们还进行了一个用户研究,使用相同的设置进行面部属性编辑。从表4来看,我们的STGAN在四种竞争方法中获胜的概率超过50%。
5. 烧蚀研究(Ablation Study)
使用面部属性编辑,我们实现了STGAN的几个变体,并在CelebA[23]上对它们进行评估,以评估不同属性向量和STU的作用。具体来说,我们考虑了六种变体,即(i)stgan:原始stgan,(ii)stgan-dst:用目标属性向量替换差分属性向量,(iii)stgan-conv:用以编码器特征和差分属性向量为输入的卷积算子代替stu来修改编码器特征,(iv)stgan-conv-res:采用stgan-conv中学习卷积算子的剩余学习公式,(v)stgan-gru:stgan中用gru代替stu,(vi)stgan-res:stgan中采用剩余学习公式学习stu。
(i) STGAN: original STGAN,
(ii) STGAN-dst: substituting difference attribute vector with target attribute vector,
(iii) STGAN-conv: instead of STU, applying a convolution operator by taking encoder feature and difference attribute vector as input to modify encoder feature,
(iv) STGAN-conv-res: adopting the residual learning formulation to learn the convolution operator in STGAN-conv,
(v) STGAN-gru: replacing STU with GRU in STGAN,
(vi) STGAN-res: adopting the residuallearning formulation to learn the STU in STGAN.
我们还训练属性向量不同的attgan和stargan模型,用attgan diff和stargan-diff表示。图9和10显示了属性操作的结果。对于定性结果请参阅附件。
5.1 差分属性向量和目标属性向量(Difference attribute vector vs. target attribute vector)
在图9中,我们使用差分属性向量给出了AttGAN,StarGAN和STGAN-dst与它们的对应物(即AttGAN-diff, StarGAN-diff 和 STGAN)的比较结果。可以看出,对于这三种模型,差异属性向量通常有利于属性生成的准确性。此外,实证研究表明,使用差分属性向量可以提高训练的稳定性和图像重建的性能。请注意,虽然AttGAN-diff 和StarGAN-diff的性能比AttGAN和StarGAN好,但它们仍然存在图像质量差的问题。
5.2 选择性迁移单元与它的变体(Selective Transfer Unit vs. its variants)
图10报告用于迁移基于差分属性向量的编码器特征的几个STGAN变体的属性生成精度。STGAN-conv 和STGAN-conv-res这两种卷积方法明显低于STGAN,说明它们在编码器特征的选择性传输方面受到限制。与STGAN-conv 相比,STGAN-conv-res具有较高的属性生成精度。因此,我们还比较了STGAN和STGAN-res,以检验STU是否可以通过残差学习得到改善。然而,由于STU的选择能力,residual learning的进一步部署不能为大多数属性带来任何收益,并且在一些全局(例如性别、年龄)和精细(例如胡子、胡须)属性上表现更差。最后,以变换后的特征作为隐藏状态,将STGAN与STGAN-gru进行了比较。虽然STGAN-gru在秃头上的表现更好,但STGAN在大多数属性上都略优于STGAN-gru,并且在属性性别和胡子上的增益是显著的。
6. 结论
本文研究了基于选择性传输视角的任意图像属性编辑问题,在编解码网络中引入差分属性向量和选择性传输单元(STU),建立了STGAN模型。通过采用差分属性向量而不是目标属性向量作为模型输入,我们的STGAN可以专注于编辑要改变的属性,这大大提高了图像重建质量,增强了属性的灵活转换。此外,还提出了STU算法,可以根据特定的属性编辑任务自适应地选择和修改编码器特征,从而提高属性操作能力和图像质量。对任意人脸属性编辑和季节翻译的实验表明,我们的STGAN在属性生成精度和编辑结果的图像质量方面都优于现有的工作。
参考资料
[1] ST-GAN: Spatial Transformer Generative Adversarial Networks for Image Compositing 原文翻译
[2] CVPR 2019 | STGAN: 人脸高精度属性编辑模型
参考论文
[1] Yunjey Choi, Minje Choi, Munyoung Kim, Jung-Woo Ha,
Sunghun Kim, and Jaegul Choo. Stargan: Unified generative
adversarial networks for multi-domain image-to-image
translation. In IEEE Conference on Computer Vision and
Pattern Recognition, pages 8789–8797, 2018. 1, 2, 3, 4, 6, 7
[2] Zhenliang He, Wangmeng Zuo, Meina Kan, Shiguang Shan,
and Xilin Chen. Arbitrary facial attribute editing: Only
change what you want. arXiv preprint arXiv:1711.10678,
- 1, 2, 3, 4, 6, 7
[3] Guim Perarnau, Joost van de Weijer, Bogdan Raducanu, and
Jose M A´ lvarez. Invertible conditional gans for image editing.
arXiv preprint arXiv:1611.06355, 2016. 1, 2, 3, 6, 7
论文下载
[1] STGAN: A Unified Selective Transfer Network for Arbitrary Image Attribute Editing
代码
[1] csmliu/STGAN