赞
踩
百万像素的一次性面部重演
arxiv:https://arxiv.org/abs/2205.13368
面部重现的目标是将目标表情和头部姿势转移到源面部,同时保留源身份。随着人脸相关应用的普及,关于这个话题的研究也很多。然而,现有方法的结果仍然局限于低分辨率并且缺乏真实感。在这项工作中,我们提出了一种称为 MegaFR 的一次性高分辨率面部重演方法。准确地说,我们通过使用基于 3DMM 的渲染图像来利用 StyleGAN [24,25],并通过设计一个在没有高质量视频的情况下工作的损失函数来克服缺乏高质量视频数据集的问题。此外,我们应用迭代细化来处理极端姿势和/或表情。由于所提出的方法通过 3DMM 参数控制源图像,我们可以明确地操纵源图像。我们将 MegaFR 应用于各种应用,例如面部正面化、眼睛修复和会说话的头部生成。实验结果表明,我们的方法成功地将身份与表情和头部姿势分开,并且优于传统方法。
关键词:StyleGAN,GAN 反转,人脸再现,潜在空间操作,可控 GAN
人脸重演[43,26,45,32,54,52,14,19] 是一种人脸操作任务,它在保留身份的同时将目标面部表情和头部姿势转移到源人脸,如图 1 所示. 随着对虚拟人类的兴趣不断增加以及生成对抗网络(GAN)[17]的进步,该领域已经开发了许多基于 GAN 的方法。然而,人脸再现结果仍然局限于低分辨率,缺乏真实感。
在开发逼真的面部再现系统时,利用给定身份的大型数据集(例如,单个人的大量视频剪辑)是有利的[40,26]。然而,对这些数据的要求限制了系统的应用,最近的工作集中在少数镜头或一次性设置中的面部重演[51,8,50]。然而,few-shot 面部重演方法仍然需要(许多)人的视频训练,并且缺乏大型高分辨率视频数据集使得高分辨率的小幅面部重演成为一项具有挑战性的任务。
对于高分辨率人脸图像的合成和处理,我们需要一个精心设计的生成模型,例如 StyleGAN [24,25],并且已经有很多尝试 [29,42,11,41] 将身份与头部姿势和面部重演的潜在空间中的表达。然而,传统方法仍然存在潜在空间中的属性纠缠问题。总而言之,一次性和高分辨率面部重现的主要挑战是:
(i)缺乏适当的大型和高分辨率视频数据集
(ii)难以将身份与头部姿势和表情分离(或在潜在空间中找到有意义的方向)
为了缓解上述挑战,我们开发了一种称为 MegaFR 的新方法,用于一次性和高分辨率人脸重现。我们的方法利用 StyleGAN 并使用 GAN 反转通过潜在空间操作来执行面部重演。与直接使用 3DMM 参数的现有方法不同,我们使用从 3DMM 参数获得的渲染图像作为网络输入,以提供有关姿势和表情的可解释和明确的信息。此外,我们设计了一个在没有高质量视频的情况下也能工作的损失函数。最后,我们应用迭代细化步骤来处理极端的头部姿势和表情。我们的方法旨在控制具有 3DMM 参数的源图像,所提出的方法可以被认为是一种可控的 StyleGAN 以及人脸再现方法。实验结果表明,我们的方法成功地将身份与表情和头部姿势分开,在视觉质量和控制范围(例如,极端姿势和/或表情)方面都优于传统方法。最后,我们展示了我们的工作在与面部相关的应用程序上的有效性,例如面部正面化、眼睛修复和会说话的头部生成。
图 1:我们的面部重演结果(1024×1024)。所提出的方法为各种姿势和表情提供高分辨率结果。
对于逼真的结果,我们利用 StyleGAN 和潜在空间操作。因此,我们将在本节中回顾潜在空间操作方法和面部重演
GAN inversion [47] 旨在将给定的真实图像映射到预训练的 GAN 模型的潜在空间中。 GAN inversion允许我们通过潜在空间操作来编辑真实图像。近年来,StyleGAN [24,25,22,23] 因其最先进的性能和高度解耦的潜在空间而被普遍用于预训练的 GAN 模型。
为了执行 GAN 反演,通常使用基于优化的方法 [1,2,25] 或基于学习的方法 [35,48,44,5]:基于优化的方法通过直接最小化错误和学习来搜索潜在代码基于方法训练产生给定输入图像的潜在代码的编码器。 GHFeat [48] 和 pSp [35] 使用特征金字塔网络来提取潜在代码。在 [44] 中,e4e 旨在获得更好的重建真实图像的可编辑性。此外,ReStyle [5] 引入了一种迭代细化方法来提高重建质量。
最近的研究表明,潜在空间操作技术在语义图像编辑中是有效的。为了在潜在空间中发现有意义的方向,在监督框架中开发了几种方法 [16,21,38,3]。 InterFaceGAN [38] 使用属性分类器在支持向量机 (SVM) 学习的潜在空间中找到语义方向。 StyleFlow [3] 使用连续规范化流 (CNF) 来寻找非线性语义方向。另一方面,无监督方法[20,39]被提出来在不使用属性分类器的情况下找到语义方向。一些方法是为特殊目的而设计的,例如年龄转换 [4] 或面部交换 [58]。此外,还有一些方法 [46,30] 专注于多模态的文本引导图像处理。 StyleCLIP [30] 使用 CLIP [33] 损失来执行文本引导的潜在空间操作。与我们的方法相关,最近的工作 [42,41] 在生成和控制人脸图像之前使用 3DMM 参数作为人脸参数。
面部重演[43,26,45,32,54,52,14,19] 是一项面部操作任务,它将目标面部表情和头部姿势转移到源面部。最近,大多数工作都集中在一次性或少量人脸重演上,以缓解数据准备问题。几种方法 [51,8,50] 采用了元学习的思想,并对一些图像进行了微调,以执行少镜头人脸重演。
PIRenderer [34] 使用 3DMM 参数来实现对头部姿势和表情的直接控制。 ID-disentanglement [29] 基于 StyleGAN 并执行一次性和高分辨率人脸重演。
对人脸图像进行逼真且可解释的操作是一项具有挑战性的任务。我们通过使用 3DMM 作为中间表示来解决这个问题,这是一个强大的人脸 3D 统计模型 [31,7,28]。图 2 显示了我们的 MegaFR 架构的概述,其中 3D 人脸重建网络从人脸图像中产生 3DMM 参数。在本节中,我们首先介绍我们的 3D 人脸重建网络,该网络旨在忠实地捕捉面部表情,并解释整体架构和提出的损失函数。
许多基于 3DMM [37,12,18,15] 的 3D 人脸重建方法,我们可以将这些现成的网络用于我们的方法。然而,为了执行精确的面部再现,我们通过专注于更准确地捕捉面部表情来训练我们的 3D 面部重建网络。在几个 3DMM 模型中,我们选择了 FLAME [28],其定义为:
M
(
β
,
ψ
,
θ
)
:
ℜ
∣
β
∣
×
∣
ψ
∣
×
∣
θ
∣
→
ℜ
N
×
3
M(\beta, \psi, \theta): \Re^{|\beta| \times|\psi| \times|\theta|} \rightarrow \Re^{N \times 3}
M(β,ψ,θ):ℜ∣β∣×∣ψ∣×∣θ∣→ℜN×3
这里
β
∈
ℜ
300
\beta \in \Re^{300}
β∈ℜ300 是身份向量,
ψ
∈
ℜ
100
\psi \in \Re^{100}
ψ∈ℜ100 表情向量,
θ
∈
ℜ
12
\theta \in \Re^{12}
θ∈ℜ12 是姿态向量,
N
=
5023
N=5023
N=5023 是顶点个数。
我们的 3D 人脸重建网络像传统方法一样使用图像和地标对进行训练,但是,我们在眼睛和嘴巴的地标上增加了权重,以更精确地捕捉面部表情。对于训练,我们使用差分渲染器来处理损失函数中的人脸轮廓。
我们使用预训练的 StyleGAN 生成高分辨率结果并在潜在空间中执行人脸重演。为此,我们必须将给定的图像映射到 StyleGAN 的潜在空间中并找到它的潜在代码。在许多反转编码器 [35,44,5,56] 中,我们采用 e4e [44],因为它在潜在空间中具有出色的可编辑性。
图 2:我们的 MegaFR 架构。网络接收源面部图像和目标 3D 渲染图像以执行面部重演。
如图 2 所示,我们的编码器 E F R E_{FR} EFR 得到重构的源人脸图像 x s x_s xs 和目标渲染图像 r t r_t rt。为了生成目标 3D 渲染图像 r t r_t rt,我们使用预训练的 3D 人脸重建网络(第 3.1 节)计算重建的源人脸图像 x s x_s xs 的 3DMM 参数并提取形状参数(身份)。对于姿势和表情参数,我们应用重建重建网路到目标图像 x t x_t xt。使用这些参数,我们获得了目标渲染图像 r t r_t rt。然后,将重建的源人脸图像 x s x_s xs 和目标渲染图像 r t r_t rt 连接起来并输入到编码器 E F R E_{FR} EFR 中。
我们基于 pSp [35] 架构设计了编码器 E F R E_{FR} EFR,并将输入通道的数量从 3 修改为 6。请注意,在训练期间,除了编码器 E F R E_{FR} EFR 之外,所有网络都被冻结。直观地说,编码器 E F R E_{FR} EFR 产生残余潜在代码,它指示潜在空间中表情和头部姿势变化的方向。最后,将残差潜在代码添加到初始潜在代码中,并使用预训练的 StyleGAN 生成最终图像 x f x_f xf。
正如 StyleCLIP [30] 和 TediGAN [46] 中所讨论的,StyleGAN 的粗层和中层主要控制头部姿势和表情,而精细层与颜色和其他细节有关。因此,我们将层分为三组,如 StyleCLIP:我们忽略精细层,仅在粗略和中等层上执行潜在操作。这种方法可以帮助我们控制头部姿势和表情,同时最大限度地减少对身份的副作用。
由于在训练我们的网络时没有标签对,我们设计了一个在没有标签对输出的情况下工作的损失函数。损失函数为:
L
total
(
x
,
r
)
=
λ
1
L
I
D
+
λ
2
L
l
m
k
+
λ
3
L
pairwise
+
λ
4
L
c
y
c
+
λ
5
L
self
+
λ
6
L
latent
L_{\text {total }}(x, r)=\lambda_1 L_{I D}+\lambda_2 L_{l m k}+\lambda_3 L_{\text {pairwise }}+\lambda_4 L_{c y c}+\lambda_5 L_{\text {self }}+\lambda_6 L_{\text {latent }}
Ltotal (x,r)=λ1LID+λ2Llmk+λ3Lpairwise +λ4Lcyc+λ5Lself +λ6Llatent
其中 x 和 r 分别是输入图像和渲染图像。
身份id损失。首先,我们使用 ID loss 来保留源人脸的身份,其中 R 是 ArcFace [10] 的预训练骨干网络。
L
I
D
=
1
−
⟨
R
(
x
s
)
,
R
(
F
(
x
s
,
r
t
)
)
⟩
L_{I D}=1-\left\langle R\left(x_s\right), R\left(F\left(x_s, r_t\right)\right)\right\rangle
LID=1−⟨R(xs),R(F(xs,rt))⟩
3D 面部关键点损失。 3D 面部关键点损失可用于确保从目标到源的成功面部重演。我们使用 3D 人脸重建网络获得 3D 人脸关键点坐标,关键点损失由下式给出:
L
l
m
k
=
∑
i
∥
p
t
i
−
p
f
i
∥
1
L_{l m k}=\sum_i\left\|p_t^i-p_f^i\right\|_1
Llmk=i∑
pti−pfi
1
其中 p t i p_t^i pti 和 p f i p_f^i pfi 是3D人脸关键点 (见图2), i i i 是关键点索引。
关键点匹配损失。为了忠实地反映目标表情,我们对嘴巴和眼睛使用了额外的损失。具体来说,我们分别计算沿嘴和眼睛的上(U)线和下(L)线的相应地标之间的距离:
L
pair
=
∑
j
∥
(
p
t
j
,
U
−
p
t
j
,
L
)
−
(
p
f
j
,
U
−
p
f
j
,
L
)
∥
1
L_{\text {pair }}=\sum_j\left\|\left(p_t^{j, U}-p_t^{j, L}\right)-\left(p_f^{j, U}-p_f^{j, L}\right)\right\|_1
Lpair =j∑
(ptj,U−ptj,L)−(pfj,U−pfj,L)
1
其中
p
t
j
,
U
,
p
t
j
,
L
,
p
f
j
,
U
p_t^{j, U}, p_t^{j, L}, p_f^{j, U}
ptj,U,ptj,L,pfj,U, 和
p
f
j
,
L
p_f^{j, L}
pfj,L 是对应的3D人脸关键点 (见图 2)。
循环一致性损失。为了解决缺乏标签对的问题,我们使用循环一致性损失,这通常用于未配对的图像到图像的转换[57,27,9]:
L
c
y
c
=
L
rec
(
x
s
,
F
(
F
(
x
s
,
r
t
)
,
r
s
)
)
L_{c y c}=L_{\text {rec }}\left(x_s, F\left(F\left(x_s, r_t\right), r_s\right)\right)
Lcyc=Lrec (xs,F(F(xs,rt),rs))
其中
L
rec
(
⋅
,
⋅
)
L_{\text {rec }}(\cdot, \cdot)
Lrec (⋅,⋅) 是 (a) 像素级 L2 loss
L
2
(
⋅
,
⋅
)
L_2(\cdot, \cdot)
L2(⋅,⋅), (b) 感知损失
L
L
P
I
P
S
(
⋅
,
⋅
)
L_{L P I P S}(\cdot, \cdot)
LLPIPS(⋅,⋅)[53], ©
L
I
D
(
⋅
,
⋅
)
L_{I D}(\cdot, \cdot)
LID(⋅,⋅) 身份损失。
自重建损失。此外,我们使用类似于循环一致性损失的自我重建损失
L
self
=
L
r
e
c
(
x
s
,
F
(
x
s
,
r
s
)
)
.
L_{\text {self }}=L_{r e c}\left(x_s, F\left(x_s, r_s\right)\right) .
Lself =Lrec(xs,F(xs,rs)).
潜在判别器损失。最后,我们使用潜在判别器损失来防止潜在代码偏离潜在空间的原始分布:
L
latent
=
−
D
latent
(
w
f
)
L_{\text {latent }}=-D_{\text {latent }}\left(w_f\right)
Llatent =−Dlatent (wf)
where
D
latent
D_{\text {latent }}
Dlatent is the pre-trained latent discriminator used in e4e
[
44
]
[44]
[44], and
w
f
w_f
wf is
其中 D latent D_{\text {latent }} Dlatent 是 e4e [44] 中使用的预训练潜在判别器, w f w_f wf 是 StyleGAN 的输入潜在代码(见图 2)。
受 ReStyle [5] 和 HyperStyle [6] 的启发,我们采用迭代细化方案来提高重演质量。然而,与他们不同的是,我们仅将迭代细化方案应用于推理。也就是说,在我们的案例中,人脸再现的真实输出图像不可用。请注意,ReStyle 和 HyperStyle 旨在 GAN 反演,训练输入图像也是真实输出图像。迭代细化的过程可以表示为:
x
s
(
i
+
1
)
←
F
(
x
s
(
i
)
,
r
t
)
x_s^{(i+1)} \leftarrow F\left(x_s^{(i)}, r_t\right)
xs(i+1)←F(xs(i),rt)
其中
x
s
(
0
)
=
x
s
x_s^{(0)}=x_s
xs(0)=xs。根据经验,我们发现对大多数情况应用一次迭代细化就足够了。
在实验中,我们使用 FFHQ 数据集进行训练,使用 CelebA-HQ 数据集进行测试。我们使用 e4e [44] 作为我们的基线 StyleGAN 反演编码器。图 3 显示了所提出的 MegaFR 的面部重演结果:我们的方法成功地再现了目标的头部姿势和表情,同时保留了源身份并满足多视图一致性。极端情况下的实验结果如图 4 所示。如图所示,我们的方法即使在极端的姿势和表情中也能成功地进行面部重演。如第二行和第三行所示,开口度在第一次迭代时没有完全重现,通过我们的迭代细化得到了改进。
图 3:CelebA-HQ 的重演结果。第一列和第二列显示源面的实数 ( x r e a l x_{real} xreal) 和反转 ( x s x_s xs)。第一行显示目标人脸( x t x_t xt),其他图像是人脸重演的结果。
图 4:极端情况和迭代细化。
图 5 显示了传统方法与我们的工作之间的定性比较:InterFaceGAN [38]、StyleFlow [3] 和 PIRenderer [34] 允许我们控制偏航和俯仰(InterFaceGAN 仅提供偏航的潜在方向); ID-disentanglement [29] 旨在使用给定的源图像和目标图像执行面部重演。
InterFaceGAN 提供了与输入图像无关的单一潜在偏航方向。这种方法基于潜在空间的线性假设,实际上会导致与其他属性(如表达)的纠缠。如图 5(a) 所示,InterFaceGAN 提供了高分辨率的结果,但随着偏航角的增加嘴巴逐渐闭合。虽然 InterFaceGAN 也提供了微笑的潜在方向,但并不清楚微笑的程度,我们无法明确控制表情。
StyleFlow 是一种非线性方法,它使用连续归一化流 (CNF) 并缓解了 InterFaceGAN 的纠缠问题。如图 5(b) 所示,StyleFlow 生成高分辨率结果并保留一系列偏航和俯仰值的表达。然而,StyleFlow 只能在狭窄的操作范围内运作良好,无法处理极端情况。
与我们的工作类似,PIRenderer 通过 3DMM 参数控制头部姿势和表情。然而,PIRenderer 使用低分辨率视频数据集进行训练,其结果限制为 256×256。另一方面,我们的方法使用高分辨率图像数据集进行训练以生成高分辨率结果。
ID-disentanglement 试图从头部姿势和表情中解开身份,它可以被认为是面对重演。如图 5(d) 所示,我们的方法提供了更好的身份解缠,而 ID 解缠则存在身份不一致问题。
表 1 给出了面部重演方法的定量结果。在表中,我们使用编码器 e4e 和 pSp 评估了所提出的 MegaFR,并且两个编码器都优于传统方法 [29]。尽管 pSp 产生的指标略有改进,但我们发现 e4e 提供了视觉上合理的结果并将 e4e 设置为基线。
表 1:CelebA-HQ 的定量结果。
图 5:定性比较。 (a)~(d) 显示了控制偏航和俯仰的比较。 (e)~(g)显示了面部重演与给定的各种目标图像的比较。
使用重建图像(图 2 中的 x s x_s xs)作为编码器的输入来编辑人脸,有时会由于真实图像空间和 StyleGAN 表示的图像空间之间的域间隙而导致轻微的身份变化或细节丢失。
为了弥补这一差距,我们可以将 PTI [36] 等额外的优化步骤应用于 StyleGAN 生成器:这种方法改变了预训练 StyleGAN 的权重,以保留真实输入图像的细节。图 6 显示了域外图像的人脸重演结果,我们可以看到域外图像可以在我们的方法中成功处理。
图 6:域外图像上的人脸重演结果。
由于我们的方法旨在通过 3DMM 参数控制源图像,我们可以显式地控制 StyleGAN。在本节中,我们将 MegaFR 应用于人脸相关应用,并展示我们工作的可控性和有效性。
人脸正面化是一项人脸操作任务,它从任意摆姿势的图像中合成正面视图。由于配对图像数据集通常不可用,研究人员试图通过利用人脸图像的先验知识来解决这个问题:R&R [55] 利用了 3DMM,pSp [35] 利用了预训练的 StyleGAN。
与传统方法相比,我们的 MegaFR 允许我们同时利用 3DMM 和 StyleGAN。如图 7 所示,MegaFR 满足多视图一致性,在视觉上优于其他方法。此外,我们可以通过采用额外的优化来重现输入的细节 [36]。表 2 显示了面部正面化方法的定量比较。如上一节所述,我们发现与 MegaFR (pSp) 相比,MegaFR (e4e) 提供了更好的感知质量和可编辑性。
图 7:CelebA-HQ 上人脸正面化的定性比较。
Eye in-painting是一项面部修复任务,可以在图片中睁开闭着的眼睛。为此,大多数先前的作品 [13,49] 和商业应用都依赖于参考图像。与他们不同的是,我们在没有参考的情况下进行眼睛修复,因为我们可以直接在我们的框架中控制面部表情(通过 3DMM 参数)。
图 8 显示了我们的方法与 Adobe Photoshop 之间的比较。如图所示,当源图像和参考图像之间存在差异时,Adobe Photoshop 需要额外的参考图像并产生较差的结果。另一方面,我们的方法允许我们在没有任何参考图像的情况下睁开闭眼并控制睁眼程度(通过改变 3DMM 参数)。
图 8:MegaFR 和 Adobe Photoshop 打开闭眼。
说话头生成是商业上重要的应用,并且已经提出了许多方法来提供照片般逼真的说话头序列。由于单个人的巨大视频集通常不可用,因此最近的作品 [51,8,50,34] 专注于单镜头或少镜头说话的头部生成。然而,据我们所知,传统工作依赖于低分辨率视频数据集,其结果受限于低分辨率。
在本文中,我们在没有视频数据集的情况下实现了一次性和高分辨率的人脸重现,我们还可以将我们的方法应用于生成高分辨率的说话头部序列。如图 9 所示,我们的方法成功地再现了目标的面部表情和头部姿势,同时保留了源身份。请注意,我们的方法不仅重演头部姿势和嘴唇动作,而且重演其他面部表情(例如,眨眼)。
图 9:MegaFR 生成的说话头序列。
我们使用来自 3DMM 参数的渲染图像,这是对 CNN 更友好的输入。我们设计了一个损失函数来克服缺少高分辨率视频数据集的问题,并应用迭代细化步骤来处理极端情况。我们的方法成功地将身份与头部姿势和表情分开,并且可以在百万像素上实现一次性面部重演。此外,我们的方法通过 3DMM 参数控制源图像,并且可以用于显式控制 StyleGAN。凭借可控性,我们将 MegaFR 应用于人脸相关应用,并展示了我们工作的有效性
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。