【深度学习】BeautyGAN: 美妆,化妆,人脸美妆

https://www.sysu-hcp.net/userfiles/files/2021/03/01/3327b564380f20c9.pdf

【深度学习】BeautyGAN: Instance-level Facial Makeup Transfer with Deep Generative Adversarial Network

在这里插入图片描述

BeautyGAN: Instance-level Facial Makeup Transfer with Deep Generative Adversarial Network

Tingting Li
Tsinghua-Berkeley Shenzhen Institute, Tsinghua University
litt.thu@foxmail.com

Ruihe Qian
Institue of Information Engineering of CAS
vitochien09@gmail.com

Chao Dong
SIAT-Sensetime Joint Lab, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences
chao.dong@siat.ac.cn

Si Liu
Beijing Key Laboratory of Digital Media, School of Computer Science and Engineering, Beihang University
liusi@buaa.edu.cn

Qiong Yan
SenseTime Research
yanqiong@sensetime.com

Wenwu Zhu
Tsinghua-Berkeley Shenzhen Institute, Department of Computer Science and Technology, Tsinghua University
wwzhu@tsinghua.edu.cn

Liang Lin
Sun Yat-sen University
linliang@ieee.org

摘要

面部化妆迁移旨在将给定参考化妆人脸图像的化妆风格转换到另一张无妆的人脸图像,同时保持面部身份。这种实例级迁移问题比传统的域级迁移任务更具挑战性,尤其是在没有配对数据的情况下。化妆风格不同于全局风格(如绘画),因为它包含了几种局部风格/化妆品,包括眼影、口红、粉底等。现有的风格迁移方法难以提取和迁移这种局部而细腻的化妆信息。我们通过在一个双输入/输出生成对抗网络中结合全局域级损失和局部实例级损失来解决这个问题,称为BeautyGAN。具体而言,通过区分生成图像和域中的真实样本的判别器来确保域级迁移。实例级损失通过在不同的面部局部区域上计算像素级直方图损失来实现。我们进一步引入感知损失和循环一致性损失,以生成高质量的人脸图像并保持身份一致性。总体目标函数使网络能够通过无监督对抗学习来学习实例级翻译。我们还建立了一个包含3834张高分辨率人脸图像的新化妆数据集。大量实验表明,BeautyGAN能够生成视觉上令人愉悦的化妆人脸,并且准确地实现化妆迁移。数据和代码可在http://liusi-group.com/projects/BeautyGAN获取。

计算机与信息科学概念

  • Computing methodologies → Computer vision tasks
  • Neural networks
  • Unsupervised learning

关键词

面部化妆迁移;生成对抗网络

引文格式

Tingting Li, Ruihe Qian, Chao Dong, Si Liu, Qiong Yan, Wenwu Zhu, and Liang Lin. 2018. BeautyGAN: Instance-level Facial Makeup Transfer with Deep Generative Adversarial Network. In 2018 ACM Multimedia Conference (MM ’18), October 22–26, 2018, Seoul, Republic of Korea. ACM, New York, NY, USA, 9 pages. https://doi.org/10.1145/3240508.3240618

1. 引言

化妆是一种通过使用特殊化妆品(如用于遮瑕的粉底、眼线、眼影和口红)来改善面部外观的普遍方式。随着成千上万的化妆产品的出现,从品牌、颜色到使用方式各不相同,没有专业建议的情况下很难找到适合的化妆风格。虚拟化妆应用程序是一个方便的工具,帮助用户尝试照片中的化妆风格,例如MEITU XIUXIU、TAAZ和DailyMakever。然而,这些工具都需要用户手动交互,并且仅提供一定数量的固定化妆风格。在日常生活中,名人总是带有漂亮的化妆风格,这提供了一些可以参考的例子。化妆迁移提供了一种高效的方法,帮助用户选择最适合的化妆风格。如图1所示,化妆迁移(我们方法的结果)可以将给定参考人脸图像的化妆风格转换到另一张无妆人脸图像上,而不改变面部身份。

现有的自动化妆迁移研究可以分为两类:传统的图像处理方法,如图像梯度编辑和基于物理的操作,以及通常基于深度神经网络的深度学习方法。图像处理方法通常将图像分解为多个层(如面部结构、颜色、皮肤),并在将参考人脸图像扭曲到无妆图像后迁移每一层。基于深度学习的方法采用多个独立的网络来处理每个化妆品。几乎所有以前的方法都将化妆风格视为不同成分的简单组合,因此最终输出图像在组合处看起来不自然,有明显的伪影(见图4)。

最近在图像到图像翻译方面的进展,如风格迁移,表明一个作用于整个图像的端到端结构可以生成高质量的结果。然而,直接将这些技术应用于我们的任务仍然是不可行的。面部化妆迁移有两个主要特点不同于以前的问题:1)化妆风格因人而异,需要在实例级别进行迁移。相反,典型的图像到图像翻译方法(如CycleGAN)主要用于域级迁移。CycleGAN在两个集合(如马和斑马)之间实现图像到图像的翻译,强调域间差异而忽略了域内差异。因此,在我们的问题中使用CycleGAN往往会生成一个平均的域级风格,在给定不同参考人脸的情况下不变(见图4)。2)化妆风格超越了全局风格,还包括独立的局部风格。具体而言,在传统的风格迁移工作中,风格通常是指全局的绘画方式,如笔触和颜色分布。相反,化妆风格更加细腻和精致,由包括眼影、口红、粉底等在内的几种局部化妆品组成。每种化妆品代表完全不同的风格。因此,很难在保留各种化妆品特性的同时,作为一个整体提取化妆风格。

另一个关键问题是缺乏训练数据。一方面,现有的化妆数据集(见表1)太小,无法训练足够大的网络,并且面部化妆图像大多是低分辨率/质量的。另一方面,很难获得一对具有不同化妆风格的对齐良好的人脸图像。因此,使用配对数据进行监督学习也是不可行的。

为了解决上述问题,我们提出了一种新的双输入/输出生成对抗网络,称为BeautyGAN,以实现化妆风格迁移在一个统一的框架中。它接受化妆和无妆脸作为输入,并直接输出迁移结果。不需要额外的前处理/后处理。类似于CycleGAN,网络首先通过一对区分生成图像和域中的真实样本的判别器将无妆脸迁移到化妆域。在域级迁移的基础上,我们通过采用在不同面部区域上计算的像素级直方图损失来实现实例级迁移。为了保持面部身份并消除伪影,我们还在总体目标函数中加入了感知损失和循环一致性损失。得益于双输入/输出设计,通过只使用一个生成器,可以在一个前向传递中实现输入和输出之间的循环一致性,从而实现化妆和去化妆。此外,在整个训练过程中不需要配对数据。如图1所示,生成的图像自然且视觉上令人愉悦,没有明显的伪影。

总结起来,主要贡献有三点:

  1. 我们通过双输入/输出生成对抗网络实现了自动化妆迁移。实验展示了迁移策略的有效性,生成的结果质量高于现有最先进的方法。
  2. 我们通过成功应用于局部区域的像素级直方图损失实现了实例级风格迁移。这种实例级迁移方法可以轻松推广到其他图像翻译任务,如头部肖像的风格迁移、图像属性迁移等。
  3. 我们建立了一个新的化妆数据集,包含3834张图像,可以在http://liusi-group.com/projects/BeautyGAN获取。

2. 相关工作

2.1 化妆研究

最近,化妆相关的研究引起了越来越多的关注。提出了一种基于局部约束字典学习的面部化妆检测和去除框架。引入了一种生成对抗网络,用于生成无妆图像以进行化妆不变的人脸验证。化妆迁移是另一种有吸引力的应用,旨在在保留

源图像身份的同时,从参考图像中迁移化妆风格。通过将图像分解为三层并逐层迁移化妆信息。这种方法可能会使源图像的面部细节变得平滑,因此提出了另一种图像分解方法。以上所有化妆迁移框架都基于传统方法,而提出了一种局部化妆迁移框架,采用深度学习方式。它将面部化妆分为几个部分,并对每个面部部分进行了不同的方法。采用变形和结构保持来合成化妆后图像。

与上述工作不同,我们的网络可以同时实现化妆迁移和去化妆。同时,统一的训练过程可以考虑不同区域化妆品之间的关系。此外,端到端网络本身可以学习源图像中化妆品的适应性,从而无需后处理。

2.2 风格迁移

风格迁移旨在结合来自不同图像的内容和风格。为实现这一目标,提出了一种方法,通过最小化内容和风格重建损失生成重建图像。为控制更多信息,如颜色、尺度和空间位置,提出了一种改进的方法,其中引入了感知因素。上述方法可以产生高质量的结果,但需要大量计算。提出了一种前馈网络,用于风格迁移,计算量较少且质量近似。

2.3 生成对抗网络 (GAN)

生成对抗网络(GAN)是一种生成模型,包含一个判别器和一个生成器。由于其生成视觉上逼真图像的能力,GAN被广泛用于计算机视觉任务。提出了一种用于图像超分辨率的生成对抗网络。采用条件GAN解决特定的眼部修复问题。通过对合成图像进行对抗模型训练以提高其真实性。甚至可以结合用户交互来进行实时图像编辑,利用GAN估计图像流形。

2.4 GAN用于图像到图像翻译

大多数现有的图像到图像翻译研究旨在学习从源域到目标域的映射。最近,有一些应用GAN的有前景的工作。提出了一个所谓的pix2pix框架,可以从标签图生成图像,并从边缘图重建对象。为解决缺乏配对图像进行训练的问题,提出了一种模型,其生成器通过权重共享约束绑定在一起,以学习联合分布。提出了循环一致性损失,以规范输入和翻译图像之间的关键属性。StarGAN甚至在一个生成器中解决了多域之间的映射问题。特别地,引入了一个与GAN一起工作的编码器,用于图像属性迁移。

3. 我们的方法:BeautyGAN

我们的目标是实现参考化妆图像与无妆图像之间在实例级别的面部化妆迁移。考虑两个数据集, A ⊆ R H × W × 3 A \subseteq \mathbb{R}^{H \times W \times 3} ARH×W×3指代无妆图像域, B ⊆ R H × W × 3 B \subseteq \mathbb{R}^{H \times W \times 3} BRH×W×3指代具有各种化妆风格的化妆图像域。我们同时学习这两个域之间的映射,表示为 G : A × B → B × A G : A \times B \rightarrow B \times A G:A×BB×A,其中 A × B A \times B A×B表示笛卡尔积。也就是说,给定两个图像作为输入:一个源图像 I s r c ∈ A I_{src} \in A IsrcA和一个参考图像 I r e f ∈ B I_{ref} \in B IrefB,网络应该生成一个化妆后的图像 I s r c B ∈ B I_{src}^B \in B IsrcBB和一个去妆图像 I r e f A ∈ A I_{ref}^A \in A IrefAA,表示为 ( I s r c B , I r e f A ) = G ( I s r c , I r e f ) (I_{src}^B, I_{ref}^A) = G(I_{src}, I_{ref}) (IsrcB,IrefA)=G(Isrc,Iref) I s r c B I_{src}^B IsrcB综合了 I r e f I_{ref} Iref的化妆风格,同时保持 I s r c I_{src} Isrc的面部身份,而 I r e f A I_{ref}^A IrefA实现了从 I r e f I_{ref} Iref中去除化妆。基本问题是如何学习实例级别的对应关系,应该确保结果图像 I s r c B I_{src}^B IsrcB和参考图像 I r e f I_{ref} Iref之间的化妆风格一致性。请注意,没有配对数据用于训练。

为了解决这个问题,我们引入了在不同化妆品上作用的像素级直方图损失。此外,感知损失用于保持面部身份和结构。然后,我们可以在不改变面部结构的情况下将确切的化妆迁移到源图像。该方法基于生成对抗网络,并且便于将所有损失项整合到一个完整的目标函数中。对抗损失有助于生成视觉上令人愉悦的图像,并细化不同化妆品之间的关联。损失函数和网络架构的详细信息如下所示。

3.1 完整目标

如图2所示,整体框架由一个生成器 G G G和两个判别器 D A D_A DA D B D_B DB组成。在公式 ( I s r c B , I r e f A ) = G ( I s r c , I r e f ) (I_{src}^B, I_{ref}^A) = G(I_{src}, I_{ref}) (IsrcB,IrefA)=G(Isrc,Iref)中, G G G接受两个图像 I s r c ∈ A I_{src} \in A IsrcA I r e f ∈ B I_{ref} \in B IrefB作为输入,并生成两个翻译后的图像作为输出, I s r c B ∈ B I_{src}^B \in B IsrcBB I r e f A ∈ A I_{ref}^A \in A IrefAA

我们首先给出 D A D_A DA D B D_B DB的目标函数,其中只包含对抗损失。 D A D_A DA区分生成的图像 I r e f A I_{ref}^A IrefA与集合 A A A中的真实样本,公式为:

L D A = E I s r c [ log ⁡ D A ( I s r c ) ] + E I s r c , I r e f [ log ⁡ ( 1 − D A ( I r e f A ) ) ] L_{D_A} = \mathbb{E}_{I_{src}} [\log D_A(I_{src})] + \mathbb{E}_{I_{src}, I_{ref}} [\log(1 - D_A(I_{ref}^A))] LDA=EIsrc[logDA(Isrc)]+EIsrc,Iref[log(1DA(IrefA))]

类似地, D B D_B DB旨在区分生成的图像 I s r c B I_{src}^B IsrcB与集合 B B B中的真实样本,公式为:

L D B = E I r e f [ log ⁡ D B ( I r e f ) ] + E I s r c , I r e f [ log ⁡ ( 1 − D B ( I s r c B ) ) ] L_{D_B} = \mathbb{E}_{I_{ref}} [\log D_B(I_{ref})] + \mathbb{E}_{I_{src}, I_{ref}} [\log(1 - D_B(I_{src}^B))] LDB=EIref[logDB(Iref)]+EIsrc,Iref[log(1DB(IsrcB))]

生成器 G G G的完整目标函数包含四种类型的损失:对抗损失、循环一致性损失、感知损失和化妆约束损失:

L G = λ a d v L a d v + λ c y c L c y c + λ p e r L p e r + L m a k e u p L_G = \lambda_{adv} L_{adv} + \lambda_{cyc} L_{cyc} + \lambda_{per} L_{per} + L_{makeup} LG=λadvLadv+λcycLcyc+λperLper+Lmakeup

其中 λ a d v \lambda_{adv} λadv λ c y c \lambda_{cyc} λcyc λ p e r \lambda_{per} λper是控制每项相对重要性的权重。 G G G的对抗损失整合了 L D A L_{D_A} LDA L D B L_{D_B} LDB

L a d v = L D A + L D B L_{adv} = L_{D_A} + L_{D_B} Ladv=LDA+LDB

生成器 G G G和判别器 D A D_A DA D B D_B DB之间进行minmax博弈, G G G试图最小化对抗损失,而判别器 D A D_A DA D B D_B DB旨在最大化相同的损失函数。其余三种损失将在后续部分详细说明。

3.2 域级化妆迁移

我们利用域级化妆迁移作为实例级化妆迁移的基础。由于双输入/输出架构,提出的网络可以在一个生成器内同时学习两个域之间的映射。输出图像需要保持输入图像的面部身份和背景信息。为满足这两个约束,我们引入感知损失和循环一致性损失。

与直接测量像素级欧几里得距离的差异不同,感知损失计算由深度卷积网络提取的高层特征之间的差异。在本文中,我们利用在ImageNet数据集上预训练的16层VGG网络。对于图像 x x x F l ( x ) F^l(x) Fl(x)表示在VGG的第 l l l层上的相应特征图,其中 F l ∈ R C l × H l × W l F^l \in \mathbb{R}^{C_l \times H_l \times W_l} FlRCl×Hl×Wl C l C_l Cl是特征图的数量, H l H_l Hl W l W_l Wl分别是每个特征图的高度和宽度。因此,输入图像 I s r c I_{src} Isrc I r e f I_{ref} Iref与输出图像 I s r c B I_{src}^B IsrcB I r e f A I_{ref}^A IrefA之间的感知损失表示为:

L p e r = 1 C l × H l × W l ∑ i j k E l L_{per} = \frac{1}{C_l \times H_l \times W_l} \sum_{ijk} E^l Lper=Cl×Hl×Wl1ijkEl

$$
E^l = [F^l(I_{src}) - Fl(I_{src}B)]^2_{ijk} + [F^l(I_{ref}) - F^l(I_{ref}

A)]2_{ijk}
$$

其中 F i j k l F^l_{ijk} Fijkl l l l层中第 i i i个滤波器在位置 ⟨ j , k ⟩ \langle j,k \rangle j,k的激活值。

为了保持背景信息,我们还引入循环一致性损失。当输出图像传递到生成器时,它应该生成与原始输入图像尽可能接近的图像。这个过程可以表示为:

( I s r c , I r e f ) → G ( I s r c , I r e f ) → G ( G ( I s r c , I r e f ) ) ≈ ( I s r c , I r e f ) (I_{src}, I_{ref}) \rightarrow G(I_{src}, I_{ref}) \rightarrow G(G(I_{src}, I_{ref})) \approx (I_{src}, I_{ref}) (Isrc,Iref)G(Isrc,Iref)G(G(Isrc,Iref))(Isrc,Iref)

损失函数公式为:

L c y c = E I s r c , I r e f [ d i s t ( I s r c r e c , I s r c ) + d i s t ( I r e f r e c , I r e f ) ] L_{cyc} = \mathbb{E}_{I_{src}, I_{ref}} [dist(I_{src}^{rec}, I_{src}) + dist(I_{ref}^{rec}, I_{ref})] Lcyc=EIsrc,Iref[dist(Isrcrec,Isrc)+dist(Irefrec,Iref)]

其中 ( I s r c r e c , I r e f r e c ) = G ( G ( I s r c , I r e f ) ) (I_{src}^{rec}, I_{ref}^{rec}) = G(G(I_{src}, I_{ref})) (Isrcrec,Irefrec)=G(G(Isrc,Iref))。距离函数 d i s t ( ⋅ ) dist(\cdot) dist()可以选择L1范数、L2范数或其他度量。

3.3 实例级化妆迁移

为了进一步鼓励网络学习实例级化妆迁移,必须在化妆风格一致性上增加约束。我们观察到面部化妆可以视觉上识别为颜色分布。无论是口红、眼影还是粉底,化妆过程主要可以理解为颜色变化。在文献中可以找到各种颜色迁移方法。我们采用直方图匹配(Histogram Matching,HM)这一直接的方法,并引入额外的像素级直方图损失,限制输出图像 I s r c B I_{src}^B IsrcB和参考图像 I r e f I_{ref} Iref在化妆风格上的一致性。

直方图损失

如果我们直接在两幅图像的像素级直方图上采用均方误差(MSE)损失,由于指示函数,梯度将为零,因此对优化过程没有贡献。因此,我们采用直方图匹配策略,首先生成一个地面真值重映射图像。假设我们要计算原始图像 x x x和参考图像 θ \theta θ之间的直方图损失,我们首先在 x x x θ \theta θ上执行直方图匹配,以获得具有相同颜色分布但仍保留内容信息的重映射图像 H M ( x , θ ) HM(x,\theta) HM(x,θ)。在得到 H M ( x , θ ) HM(x,\theta) HM(x,θ)之后,方便利用 H M ( x , θ ) HM(x,\theta) HM(x,θ) x x x之间的MSE损失,然后反向传播梯度进行优化。

面部分割

我们不直接在整个图像上使用直方图损失,而是将化妆风格分为三个重要成分——口红、眼影、粉底。最新的方法也将这三种成分作为化妆代表。然后我们在每个部分上应用局部直方图损失。原因有两点。首先,背景和头发的像素与化妆无关。如果我们不将它们分开,它们将扰乱正确的颜色分布。其次,面部化妆超越了全局风格,而是几个独立风格在不同化妆品区域的集合。从这个意义上说,我们采用在文献中的面部分割模型来获得面部引导掩码 M = F P ( x ) M = FP(x) M=FP(x)。对于每个输入图像 x x x,预训练的面部分割模型将生成一个索引掩码 M M M,表示几个面部位置,包括嘴唇、眼睛、面部皮肤(对应粉底)、头发、背景等。最后,对于每个 M M M,我们跟踪不同的标签,生成三个对应的二进制掩码,代表化妆品空间: M l i p M_{lip} Mlip M e y e M_{eye} Meye M f a c e M_{face} Mface。需要注意的是,眼影在 M M M上没有注释,因为无妆图像没有眼影。但我们期望结果图像 I s r c B I_{src}^B IsrcB具有与参考图像 I r e f I_{ref} Iref相似的眼影颜色和形状。根据眼睛掩码 M e y e M_{eye} Meye,我们计算包围眼影的两个矩形区域,然后排除眼睛区域、中间的头发和眉毛区域。这样我们可以创建一个特定的二进制掩码,代表眼影 M s h a d o w M_{shadow} Mshadow

化妆损失

总体化妆损失由作用于嘴唇、眼影和面部区域的三个局部直方图损失集成而成:

L m a k e u p = λ l L l i p s + λ s L s h a d o w + λ f L f a c e L_{makeup} = \lambda_l L_{lips} + \lambda_s L_{shadow} + \lambda_f L_{face} Lmakeup=λlLlips+λsLshadow+λfLface

其中 λ l \lambda_l λl λ s \lambda_s λs λ f \lambda_f λf是权重因子。我们将图像与它们对应的二进制掩码相乘,并在结果图像 I s r c B I_{src}^B IsrcB和参考图像 I r e f I_{ref} Iref之间进行空间直方图匹配。形式上,我们定义局部直方图损失为:

L i t e m = ∥ I s r c B − H M ( I s r c B ⊙ M i t e m 1 , I r e f ⊙ M i t e m 2 ) ∥ 2 L_{item} = \|I_{src}^B - HM(I_{src}^B \odot M_{item}^1, I_{ref} \odot M_{item}^2)\|^2 Litem=IsrcBHM(IsrcBMitem1,IrefMitem2)2

M 1 = F P ( I s r c B ) M^1 = FP(I_{src}^B) M1=FP(IsrcB)

M 2 = F P ( I r e f ) M^2 = FP(I_{ref}) M2=FP(Iref)

这里, ⊙ \odot 表示元素级乘法, i t e m item item在集合 { l i p s , s h a d o w , f a c e } \{lips, shadow, face\} {lips,shadow,face}中。

4. 数据收集

我们收集了一个新的面部化妆数据集,总共包含3834张女性图像,其中1115张无妆图像和2719张化妆图像。我们将这个数据集称为MakeupTransfer(MT)数据集。它包括种族、姿势、表情和背景杂乱的一些变化。集合了大量化妆风格,包括烟熏妆风格、华丽妆风格、复古妆风格、韩妆风格和日妆风格,从细腻到浓烈。具体而言,还有一些裸妆图像,为了方便,已归类为无妆类别。初始数据来自于网络爬取。我们手动删除在不良照明条件下的低分辨率图像。然后,保留的图像进行68个标志点的人脸对齐。根据两眼位置,将它们变换为相同的空间大小256×256。在3834张图像中,我们随机选择100张无妆图像和250张化妆图像进行测试。其余图像分为训练集和验证集。

MT是迄今为止最大的化妆数据集,与其他已发布的化妆数据集相比。现有的化妆数据集大多由不超过1000张图像组成。它们通常为一个对象组装一对图像:化妆前图像和化妆后图像对。尽管这种配对图像中获取的是同一对象,但它们在视图上有所不同:姿势、表情甚至照明。通常,它们用于研究化妆在人脸识别中的影响,不适用于化妆迁移任务。MT数据集包含多种化妆风格和超过3000个对象。化妆数据集之间的详细比较见表1。MT数据集的例子如图3所示。

5. 实验

在本节中,我们描述了网络架构和训练设置。所有实验均应用我们发布的相同MT数据集。我们从定性和定量的角度比较我们的方法与其他基线的性能。并进一步对BeautyGAN的组成部分进行详细分析。

5.1 实现细节

网络架构。我们设计了带有两个输入和两个输出的生成器 G G G。具体来说,网络包含两个分别带有卷积的独立输入分支。在中间,我们将这两个分支连接起来,并将它们输入到几个残差块中。然后,输出特征图将通过两个独立的反卷积分支进行上采样,以生成两个结果图像。注意,这些分支在各层中不共享参数。我们还对 G G G使用实例归一化。对于判别器 D A D_A DA D B D_B DB,我们采用相同的70×70 PatchGANs,它将局部重叠图像块分类为真实或伪造。

训练细节。为了稳定训练过程并生成高质量图像,我们采用了两种额外的训练策略。首先,受CycleGAN启发,我们将对抗损失中的所有负对数似然目标替换为最小二乘损失。例如,公式1定义如下,同样适用于公式2和4:

L D A = E I s r c [ ( D A ( I s r c ) − 1 ) 2 ] + E I s r c , I r e f [ D A ( I r e f A ) 2 ] L_{D_A} = \mathbb{E}_{I_{src}} [(D_A(I_{src}) - 1)^2] + \mathbb{E}_{I_{src}, I_{ref}} [D_A(I_{ref}^A)^2] LDA=EIsrc[(DA(Isrc)1)2]+EIsrc,Iref[DA(IrefA)2]

其次,我们引入谱归一化

以稳定训练判别器。它计算量轻且易于整合,满足利普希茨约束:

W S N ( W ) : = W σ ( W ) W_{SN}(W) := \frac{W}{\sigma(W)} WSN(W):=σ(W)W

其中 σ ( W ) \sigma(W) σ(W) W W W的谱范数,表示为:

σ ( w ) : = max ⁡ h : h ≠ 0 ∥ W h ∥ 2 ∥ h ∥ 2 = max ⁡ ∥ h ∥ 2 ≤ 1 ∥ W h ∥ 2 \sigma(w) := \max_{h:h\neq0} \frac{\|Wh\|_2}{\|h\|_2} = \max_{\|h\|_2 \leq 1} \|Wh\|_2 σ(w):=h:h=0maxh2Wh2=h21maxWh2

这里, h h h是每层的输入。

在所有实验中,我们通过PSPNet获得不同面部区域的注释标签掩码。用于保持身份的VGG16网络的relu_4_1特征层被应用。这样的VGG16在ImageNet上预训练,并在整个训练过程中固定参数。公式3和9中的参数为: λ a d v = 1 \lambda_{adv} = 1 λadv=1 λ c y c = 10 \lambda_{cyc} = 10 λcyc=10 λ p e r = 0.005 \lambda_{per} = 0.005 λper=0.005 λ l = 1 \lambda_l = 1 λl=1 λ s = 1 \lambda_s = 1 λs=1 λ f = 0.1 \lambda_f = 0.1 λf=0.1。我们使用Adam从头开始训练网络,学习率为0.0002,批量大小为1。

5.2 基线

Digital Face Makeup 是一种早期的化妆迁移工作,采用传统图像处理方法。

DTN 是最先进的化妆迁移工作。它提出了一种局部化妆迁移网络,独立地迁移不同的化妆品。

Deep Image Analogy 是一项最新的工作,实现了跨两个语义相关图像的视觉属性迁移。它采用图像类比来匹配从深度神经网络中提取的特征。我们将其应用于化妆迁移任务进行比较。

CycleGAN 是一种代表性的无监督图像到图像翻译工作。为了适应化妆迁移任务,我们在其中修改了生成器,使用两个分支作为输入,但保持所有其他架构和设置不变。

Style Transfer 是一种相关工作,训练了一个前馈网络,用于从各自的图像中合成风格和内容信息。我们采用无妆图像作为内容,参考化妆图像作为风格进行实验。

5.3 与基线的比较

定性评估。如图4所示,我们展示了与基线的定性比较结果。我们观察到,尽管Guo等人生成的图像上有化妆,但结果都有明显的伪影。看起来像一个假面具附在无妆脸上。面部和眼睛轮廓周围出现不匹配问题。一些错误的细节被迁移,如第二行和第四行的黑色眼影被迁移为蓝色。Liu等人独立地迁移不同的化妆品,导致眼睛区域和嘴唇区域周围的对齐伪影。粉底和眼影也没有正确迁移。风格迁移生成的图像引入了颗粒状伪影,降低了图像质量。它通常迁移全局风格,如绘画笔触,因此不适用于精细的化妆风格迁移。与上述方法相比,CycleGAN可以生成相对真实的图像。然而,化妆风格与参考不一致。Liao等人生成的输出具有与参考图像相似的化妆风格,并显示出自然的结果。然而,它不仅迁移面部化妆,还迁移参考图像中的其他特征。例如,第三张图像将背景颜色从黑色变为灰色,第四张图像改变了头发颜色,所有图像都修改了瞳孔颜色以与参考图像相似。此外,它迁移的化妆风格比参考图像轻,尤其是在口红和眼影方面。

与基线相比,我们的方法生成的高质量图像上具有最准确的化妆风格,无论是在眼影、口红还是粉底方面进行比较。例如,在第二行,只有我们的结果迁移了参考图像中的黑色眼影。结果还显示BeautyGAN保持了原始无妆图像中的其他与化妆无关的组件,如头发、衣服和背景。在图5中,我们放大了眼妆和口红迁移的表现,以更好地展示比较。更多结果见补充文件。

定量比较。为了对BeautyGAN进行定量评估,我们进行了用户研究,参与者包括84名志愿者。我们随机选择了10张无妆测试图像和20张化妆测试图像,每种化妆迁移方法将获得10×20个化妆后结果。两种代表性基线方法进行比较:Liao等人和Liu等人。每次,我们展示五张图像,包括一张无妆图像、一张作为参考的化妆图像和三张随机排列的化妆迁移图像。参与者被指示根据质量、真实感和化妆风格相似性对三张生成的图像进行排名。排名1表示最佳化妆迁移表现,而排名3表示最差。

表3显示了结果。对于每种方法,我们对票数进行归一化,并获得三种排名的百分比。BeautyGAN有61.84%的结果排名第一,而Liao等人为33.91%,Liu等人为4.25%。此外,BeautyGAN在排名3列中的比例最低。我们观察到BeautyGAN大多被评为排名1,Liao等人主要分布在排名2,Liu等人则大多票数在排名3。用户研究表明,我们的方法优于其他基线。

5.4 BeautyGAN的组件分析

为了研究整体目标函数中每个组件的重要性,我们进行了消融研究。我们主要分析感知损失项和化妆损失项的效果。因此,实验始终包含对抗损失和循环一致性损失。表2显示了设置,图6展示了结果。

在实验A中,我们从公式3中移除感知损失项。在这种情况下,结果都是像素级扭曲和合并的假图像。相反,包含感知损失项的其他实验显示无妆脸的身份得以保留。因此,这表明感知损失有助于保持图像身份。

实验B、C、D、E旨在研究化妆损失项,该项由作用于不同化妆区域的三个局部直方图损失组成: L f a c e L_{face} Lface L s h a d o w L_{shadow} Lshadow L l i p s L_{lips} Llips。在实验B中,我们直接从公式3中移除化妆损失。我们发现生成的图像在肤色和口红上略有修改,但没有从参考图像迁移化妆风格。然后我们在实验C、D、E中依次添加 L f a c e L_{face} Lface L s h a d o w L_{shadow} Lshadow L l i p s L_{lips} Llips。列C显示了粉底成功从参考图像迁移的结果。在粉底迁移的基础上,实验D在其中添加了眼影约束 L s h a d o w L_{shadow} Lshadow。我们观察到局部眼妆也被迁移。列E是使用整体化妆损失训练的结果。它显示与列D相比,还迁移了口红。总之,化妆损失对实例级化妆迁移是必要的。化妆损失的三项分别在粉底、眼影和口红迁移中起作用。

6. 结论与未来工作

在本文中,我们提出了一种双输入/输出BeautyGAN用于实例级面部化妆迁移。通过一个生成器,BeautyGAN可以在一个前向传递中同时实现化妆和去化妆。我们引入像素级直方图损失来约束化妆风格的相似性。为了保持身份,引入了感知损失和循环一致性损失。实验结果表明,我们的方法在现有方法上取得了显著性能提升。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/802711.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式物联网在教育行业的应用——案例分析

作者主页: 知孤云出岫 嵌入式物联网在教育行业的应用——案例分析 目录 作者主页:嵌入式物联网在教育行业的应用——案例分析一、引言二、智能教室:环境监测系统1. 硬件需求2. 电路连接3. 代码实现 三、个性化学习:智能学习平台1. 数据处理与分析2. 代…

下载仓颉sdk安装时遇到“无法运行”问题

图1. 社区地址:GitCode - 全球开发者的开源社区,开源代码托管平台 在GitCode社区中下载Cangjie-0.53.4-windows_x64的sdk后,双击安装时遇到“此应用无法在你的电脑上运行的问题” 经过反复排查后,确定是sdk直接下载有问题;‘需要…

Android Studio 汉化

下载地址:https://plugins.jetbrains.com/plugin/13710-chinese-simplified-language-pack----/versions/stable 下载完zpi包之后,进入:设置 -> 插件 导入即可。 注: 汉化包需要与 Android Studio 版本对应。

Matlab|基于蒙特卡洛法的电动汽车充电负荷计算

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序方法复现《V2G 模式下含分布式能源的配电网优化运行研究》第二章电动汽车无序充电模型,按照文章《V2G 模式下基于复杂网络的电动汽车有序充电策略》分析思路研究了不同数量电动汽车接入情况…

Jetpack Compose学习记录(一)

目录 前言控件实时预览Modifierremember状态提升 前言 学了一段时间的Compose,不得不说声明式UI比原生的开发效率快很多,而且Compose也是Google现在主推的开发模式,可以动态化地更改ui,相比于databinding对数据和布局进行绑定。C…

FreeCAD源码分析:Serialization

序列化(Serialization)是在程序运行时将对象转换成字节流的过程,进而将二进制字节流罗盘到文件系统或者通过网络发送到远端。而反序列化(Deserialization)则恰恰相反,是由二进制字节流重新构建对象的过程。 Ref. from Boost Serialization Here, we use …

电子标书怎么盖章?

电子标书怎么盖章?下面是利用e-章宝(##### 与在线盖章的平台不同,专业的盖章软件在盖章时无需要上传你的文档,甚至在无网络下都可以使用,且保密性非常强,如e-章宝。如果你的文件保密性强,用网上…

CSS综合案例(快报模块头部制作)

(大家好,今天我们将继续来学习CSS的相关知识,大家可以在评论区进行互动答疑哦~加油!💕) 目录 一、前述 二、案例分析 1.样例参看 2.拆分分析 三、案例实施 一、前述 案例:快报模块头部制…

open3d:随机采样一致性分割平面

1、背景介绍 随机采样一致性算法(RANSAC Random Sample Consensus)是一种迭代的参数估计算法,主要用于从包含大量噪声数据的样本中估计模型参数。其核心思想是通过随机采样和模型验证来找到数据中最符合模型假设的点。因此,只要事…

spring框架(ioc控制反转 aop面向切面编程)

目录 服务端三层开发: spring框架(ioc控制反转 aop面向切面编程) 1、Spring框架的优点 什么是事物? 2、Spring的IOC核心技术 什么是ioc? 代码举例:(详细流程见笔记) **applic…

NSSCTF-Web题目26(PHP弱比较)

目录 [SWPUCTF 2022 新生赛]funny_php 1、题目 2、知识点 3、思路 [ASIS 2019]Unicorn shop 4、题目 5、知识点 6、思路 [SWPUCTF 2022 新生赛]funny_php 1、题目 2、知识点 弱比较、双写绕过 3、思路 出现源代码,我们进行审计 第一个if 这里要我们GET方…

AI PC创造新商机,ISP与HPD集成单芯片方案受欢迎

今年以来,AI PC逐渐成为市场的焦点,因为AI PC给多年一成不变的PC市场带来了新的看点,也给了消费者升级的理由。今年是AI PC的元年,上半年不论是芯片厂商,还是PC厂商都在AI PC市场快速布局。AI PC相关的大模型、生态&am…

CRMEB 多商户Java版 v1.7更新预告!积分商城要来了

👩‍💻:下个版本有积分商城吗? 👨‍💻:积分商城什么时候可以出呢? 🙋:什么时候能上拼团呢? 🙋‍♂️:图片热区&#xf…

用Java连接MySQL数据库的总结

✨个人主页: 不漫游-CSDN博客 前言 在日常开发中,使用Java连接MySQL数据库是一个常见的任务,涉及多个步骤。接着我就带着大家细细看来~ 一.下载.jar 包文件 1.什么是.jar 文件 通俗点讲就是一个压缩包,不过里面存放的都是由Java代…

沙盒软件大揭秘:你的数字世界“防火墙”

在数字时代,我们每天都会接触到各种各样的软件,其中不乏一些来源不明、可能存在潜在威胁的程序,我们总担心不小心点到什么“雷区”,让电脑或手机变得“病怏怏”。 为了保护我们的系统免受侵害,沙盒软件应运而生&#…

JavaScript Math 函数举例

https://andi.cn/page/621577.html

【YOLOv5/v7改进系列】改进池化层为YOLOv9的SPPELAN

一、导言 YOLOv9提出了一种新的方法和架构,旨在解决深度神经网络中的信息瓶颈问题并提升模型的性能。以下是该研究的主要优点: 理论分析与创新: 提出了可编程梯度信息(PGI)的概念,以应对深度网络为实现多重…

windows下gcc编译C、C++程序 MinGW编译器

文章目录 1、概要2、MinGW安装2.1 编译器下载2.2 编译器安装2.3 设置环境变量2.4 查看gcc版本信息 3、编译C、C程序3.1 编写Hello World.c3.2 编译C程序3.3 运行程序3.4 编译C程序 1、概要 GCC原名为GNU C语言编译器(GNU C Compiler),只能处…

技能 | postman接口测试工具安装及使用

哈喽小伙伴们大家好!今天来给大家分享一款轻量级,高效好用的接口测试工具-postman. Postman是一个流行的API开发工具,主要用于测试、开发和文档化API。以下是关于Postman的介绍及其主要使用场景: Postman介绍: 1. 功能丰富的API客户端&#…

用Pytorch实现线性回归(Linear Regression with Pytorch)

使用pytorch写神经网络的第一步就是需要准备好数据集,设计模型(用于计算y_hat(y的预测值)),构造损失函数和优化器(使用PyTorch API),写训练周期(前馈&#xf…