【论文精读ICCV_2023】BlendFace: Re-designing Identity Encoders for Face-Swapping
- 一、前言
- Abstract
- 1. Introduction
- 2. Related Work
- 3. Attribute Bias in Face Recognition Models
- 3.1. Identity Distance Loss
- 3.2. Analysis of Identity Similarity
- 4. BlendFace
- 4.1. Pre-training with Swapped Faces
- 4.2. Face-Swapping with BlendFace
- 5. Experiment
- 5.1. Implementation Detail
- 5.2. Experiment Setup
- 5.3. Comparison with Previous Methods
- 5.4. Ablation and Analysis
- 6. Limitations
- 7. Conclusion
一、前言
Kaede Shiohara, Xingchao Yang, Takafumi Taketomi
【Paper】 > 【Code】
整个文章的关键点 or Pipeline:
- 本文提出了一个专门用于换脸领域的身份编码器,能够解决ArcFace中存在的attribute biases
- BlendFace 背后的关键思想是在混合图像上训练人脸识别模型,将其属性替换为其他图像的属性,以减轻人际偏差(例如发型)。(即一个身份的不同图像之间发型大概率是关联的,混合的目的是将该身份的人脸换到另一个背景中,从而换掉发型,去除了这种人际偏差。)
- 这篇工作做了很多实验,是可以借鉴的:例如该方法与公开可用的最先进模型进行比较,即 FSGAN [54]、SimSwap [14]、MegaFS [90]、InfoSwap [22] 和 FSLSD [75]。还采用来自 FF++ 数据集的 Deepfakes [1]、FaceSwap [2] 和 FaceShifter [45] 以及来自官方项目页面 [4] 的 HifiFace [72] 生成的视频。
- 指标六个指标:ArcFace (Arc) [17]、BlendFace (Blend)、面部形状 [18]、表情 (Expr) [18]、头部姿势 [18] 和凝视 [3]。我们测量源图像和交换图像之间的距离以获取身份度量,即 ArcFace、BlendFace 和形状,以及目标图像和交换图像之间的距离以获取属性度量,即表情、姿势和凝视。
我们计算了 ArcFace 和 BlendFace 提取的特征向量的余弦距离,形状、表情和姿势的预测 3DMM 参数的 L1 距离,以及注视的预测欧拉角的 L1 距离。我们进一步计算所有指标中考虑源和目标的相对距离[40],表示为“-R”。- 局限性: 很难改变面部形状,有时无法保留手等硬遮挡。
Abstract
背景:
计算机视觉中的生成对抗网络和人脸识别模型的巨大进步使得交换单一来源图像上的身份成为可能。问题:
尽管许多研究似乎提出了几乎令人满意的解决方案,但我们注意到以前的方法仍然遭受身份属性纠缠的困扰,这会导致不需要的属性交换,因为广泛使用的身份编码器(例如 ArcFace)存在一些关键的属性偏差归因于他们对人脸识别任务进行预训练。解决方案:
为了解决这个问题,我们设计了 BlendFace,一种用于面部交换的新型身份编码器。
BlendFace 背后的关键思想是在混合图像上训练人脸识别模型,将其属性替换为其他图像的属性,以减轻人际偏差(例如发型)。
BlendFace 将解开的身份特征输入到生成器中,并作为身份损失函数正确地引导生成器。实验:
大量实验表明,BlendFace 改善了换脸模型中的身份属性分离,保持了与之前方法相当的定量性能。代码和模型可在 https://github.com/mapooon/BlendFace 获取。
1. Introduction
换脸的目的是用图像中的源身份替换目标身份,同时保留目标属性,例如面部表情、头发、姿势和背景。
这项任务因其在电影和元宇宙等各个领域的潜在应用而受到广泛关注。
生成对抗网络(GAN)[7,25,34,36,51,58,89]的最新进展使得在各种条件下生成逼真的图像成为可能,例如属性[29]、身份[9]、和表情[83],以及无条件图像生成。
此外,人脸识别模型的进步为人脸交换提供了强大的身份编码器,这提高了身份从源输入到生成图像的可转移性,并导致成功且质量合理的one-shot人脸交换模型[9,14,22,45,50 , 72, 74–76, 90] 。
然而,尽管做出了这些令人印象深刻的努力,但仍然存在一个关键问题。
由于用作身份编码器的人脸识别模型的偏见指导,以前最先进的方法会遭受身份属性纠缠的困扰。
图 1 展示了传统人脸识别模型 ArcFace [17] 的失败案例。
如图所示,基于 ArcFace 的换脸模型往往会交换不需要的属性,例如发型和头部形状。
这是因为同一身份的图像与某些属性具有很强的相关性;
因此,人脸识别模型会意外地学会将属性识别为身份,这会导致训练人脸交换模型时出现误导。
尽管人脸识别领域的某些研究提出了减轻个体之间偏见的有效方法,但它们不能解决人脸交换模型中的偏见,因为它们没有考虑个人内部偏见。
在本文中,我们提出了 BlendFace,一种新颖的身份编码器,它为面部交换提供了良好解开的身份特征。
首先,我们在 VGGFace2 [12] 数据集上分析广泛使用的身份编码器 ArcFace [17]。
使用伪交换图像对身份相似度分布的比较表明,由于 ArcFace 中的属性偏差,发型、颜色和头部形状等属性会强烈影响它们的相似性,这有望防止换脸模型解开身份和属性。
基于初步实验的观察,我们通过简单地用交换图像训练ArcFace来设计BlendFace,使模型不关注面部属性,从而弥合了交换面部和真实面部相似度分布之间的差距。
然后,我们使用 BlendFace 训练换脸模型,该模型在损失函数中充当源特征提取器和身份指导。
如图2所示,通过用BlendFace替换源特征提取和损失计算中的传统身份编码器,训练换脸模型以生成更加解缠结的换脸结果。
重要的是,我们的工作与之前的换脸研究是兼容的。
BlendFace可以应用于各种基于学习的换脸模型。
在实验部分,我们按照惯例将我们的模型与 FaceForensics++ [60] 数据集上最先进的面部交换模型进行比较。
比较表明,所提出的方法在身份相似性和属性保留(即表情、姿势和凝视)方面优于或与竞争对手相当,同时与以前的模型相比,提高了交换结果的视觉一致性。
此外,我们的消融研究和分析从多个角度证明了BlendFace对于人脸相关研究的优势。
2. Related Work
Face-Swapping. 面部操作,特别是面部交换,由于其潜在的应用(例如逼真的数字化身创建)而成为计算机视觉领域的一个重要研究领域。
早期方法采用传统图像处理 [10] 和 3D 可变形模型 (3DMM) [11,15,55]。
生成对抗网络(GAN)[7,25,34,36,51,58,89]在计算机视觉领域取得的辉煌成功推动了基于学习的换脸模型的广泛探索。
FSGAN [54]通过四个编码器-解码器网络实现与主题无关的面部交换,即重演、分割、修复和混合网络。
复杂的面部识别模型[17,41,49,68]从大规模面部数据集中学习丰富的身份信息[6,12,26,79,91]改善了面部交换中的身份保留。
SimSwap[14]提出了鉴别器特征空间中每个生成图像和目标图像之间的弱特征匹配损失,以平衡源身份和目标属性的保留。
FaceShifter [45]提出了一个两阶段框架,包括混合从多个尺度的源图像和目标图像中提取的特征的 AEI-Net 和学习使用对象数据集重建遮挡的 HEAR-Net [8,13,21] 。
InfoSwap [22]引入了信息理论损失函数来解开身份。
HifiFace [72] 将 3DMM [18] 纳入其身份提取中,以重新训练源外观和形状。
Smooth-Swap [40] 开发了一种平滑身份编码器,使用自监督预训练 [39] 来稳定地进行 GAN 训练。
最近,一些研究 [74,75,90] 揭示了预先训练的 StyleGAN [35-37] 提供了强大的先验,可以生成百万像素分辨率的逼真面部图像以进行面部交换。
MegaFS [90]通过用源图像的高语义特征替换目标图像的高语义特征来生成交换的面孔。
RAFSwap [74] 将语义级特征与面部解析模型 [80] 集成。
FSLSD [75] 通过 StyleGAN 的侧输出传输多级属性。
StyleSwap [76]提出了有效保留源身份的迭代身份优化。
StyleFace [50] 和 UniFace [73] 分别将面部交换统一为去识别和重演。
在本文中,我们独立于这些最先进的方法重新设计了身份编码器;我们的编码器可以很容易地融入到以前基于学习的面部交换模型中。
Face Recognition. 人脸识别任务是研究领域的一个基本问题。
最近的方法主要是使用深度卷积网络进行的。
特别是,基于边缘的损失函数(例如,[17,49,68])显着增强了人脸识别的性能。
然而,一些研究[33,59,63,64,67,82]发现这种身份编码器包含属性偏差,例如姿势、发型、颜色、种族和性别;因此,去偏人脸识别模型一直是该领域关注的话题。
IMAN [70]提出了信息理论适应网络。
RL-RBN[69]通过强化学习来调整ArcFace的边缘。
GAC [24] 提出了由特定人口群体的内核和注意力模块组成的自适应层。
DebFace [23] 在对抗性学习中使用特征解开块和聚合块来解开性别、年龄、种族和身份。
尽管这些方法有效地减轻了身份之间的偏见,但它们并没有关注人际偏见nter-personal biases。
因此,现有的身份提取器会导致不期望的属性交换,因为用于人脸识别的数据集中每个身份的图像在某些属性(例如发型、颜色和头部形状)中具有很强的相关性。
Therefore, existing identity extractors cause undesired attributes swapping because images of each identity in datasets used for face recognition have strong correlations in some attributes, e.g., hairstyles, colors, and head shapes.
为了解决这个问题,我们设计了一种去偏编码器,通过使用交换属性的合成图像训练人脸识别模型,从面部图像中提取分离的身份特征,从而实现良好分离的面部交换。
3. Attribute Bias in Face Recognition Models
给定源图像和目标图像,面部交换旨在生成面部图像,其中目标身份被源身份替换,同时保留目标图像的属性。
首先,我们通过对大多数换脸模型采用的ArcFace [17]进行初步实验,重新思考换脸的身份编码,例如[14,22,45,72,75,90] 。
关键的观察结果是用另一个人的属性替换一个人的属性会导致身份相似性下降,这表明 ArcFace 固有的属性偏差。
3.1. Identity Distance Loss
换脸的困难之一是缺乏真实图像。
给定训练期间源和目标输入的两个不同身份的图像,生成的图像受到一些基于特征的损失的约束,例如,外观\cite{lpips,arcface,perceptual},3D面部形状\cite{deep3dfacerecon} ,以及segmentation \cite{faceparsing}来保留源的身份和目标的属性。
值得注意的是,之前的方法大多采用在大规模人脸识别数据集\cite{cisia,webface260m,vggface2,ms1m,glint360k}上训练的 ArcFace \cite{arcface} , 其从源输入中提取身份信息并测量源图像
X
s
X_s
Xs 和交换图像
Y
s
,
t
Y_{s,t}
Ys,t 之间的身份距离如下:
L
i
d
=
1
−
c
o
s
⟨
E
i
d
(
X
s
)
,
E
i
d
(
Y
s
,
t
)
⟩
,
\begin{equation} \mathcal{L}_{id}=1-cos\langle E_{id}(X_{s}), E_{id}(Y_{s,t})\rangle, \end{equation}
Lid=1−cos⟨Eid(Xs),Eid(Ys,t)⟩,其中
E
i
d
E_{id}
Eid表示ArcFace编码器,
c
o
s
⟨
u
,
v
⟩
cos\langle u,v\rangle
cos⟨u,v⟩是向量
u
u
u和
v
v
v的余弦相似度。
3.2. Analysis of Identity Similarity
在这里,我们从人脸交换的角度探讨了 VGGFace2 \cite{vggface2} 数据集上 ArcFace \cite{arcface} 的属性偏差。
如图3所示,我们首先随机采样第
i
i
i个身份的第
j
j
j个图像,表示为
X
i
j
X_{i_j}
Xij,然后计算
X
i
j
X_{i_j}
Xij以及相同身份的所有图像
{
X
i
1
,
X
i
2
,
⋯
,
X
i
n
i
}
\{X_{i_1}, X_{i_2}, \cdots, X_{i_{n_i}}\}
{Xi1,Xi2,⋯,Xini}之间的余弦相似度,其中
n
i
n_i
ni表示身份
i
i
i的图像数量。
随后,受 Face X-ray \cite{facexray} 的启发,我们从随机采样的 100 张身份图像中搜索与
X
i
j
X_{i_j}
Xij 面部标志landmarks最接近的图像
X
~
i
j
\tilde{X}_{i_j}
X~ij对于每个
X
i
j
X_{i_j}
Xij 来说,其身份不是
i
i
i。
将
X
i
j
X_{i_j}
Xij的Lab空间中的颜色统计数据
μ
\mu
μ和
σ
\sigma
σ转移到
X
~
i
j
\tilde{X}_{i_j}
X~ij的颜色统计数据后,我们替换
X
~
i
j
\tilde{X}_{i_j}
X~ij的面 与
X
i
j
X_{i_j}
Xij 通过利用一个mask
M
^
i
j
\hat{M}_{i_j}
M^ij来混合它们,这个mask
M
^
i
j
\hat{M}_{i_j}
M^ij 是通过乘以
X
i
j
X_{i_j}
Xij 的内部掩码
M
i
j
M_{i_j}
Mij 和
X
~
i
j
\tilde{X}_{i_j}
X~ij 的
M
~
i
j
\tilde{M}_{i_j}
M~ij,具体如下:
X
^
i
j
=
X
i
j
⊙
M
^
i
j
+
X
~
i
j
⊙
(
1
−
M
^
i
j
)
,
\begin{equation} \hat{X}_{i_j}= X_{i_j} \odot \hat{M}_{i_j} + \tilde{X}_{i_j} \odot (1-\hat{M}_{i_j}), \end{equation}
X^ij=Xij⊙M^ij+X~ij⊙(1−M^ij),其中
⊙
\odot
⊙ 表示逐点乘积,
X
^
i
j
\hat{X}_{i_j}
X^ij 表示合成交换图像,
M
^
i
j
=
B
l
u
r
(
M
i
j
⊙
M
~
i
j
)
\hat{M}_{i_j} = Blur(M_{i_j} \odot \tilde{M}_{i_j})
M^ij=Blur(Mij⊙M~ij)。
然后我们计算
X
i
j
X_{i_j}
Xij 和替换图像
{
X
^
i
1
,
X
^
i
2
,
⋯
,
X
^
i
n
i
}
\{\hat{X}_{i_1}, \hat{X}_{i_2}, \cdots, \hat{X}_{i_{n_i}}\}
{X^i1,X^i2,⋯,X^ini}之间的余弦相似度。
此外,我们计算
X
i
j
X_{i_j}
Xij 和最接近的图像
X
~
i
j
\tilde{X}_{i_j}
X~ij 之间的余弦相似度。
我们对所有身份重复此过程,并在Fig.4a中绘制相似度分布。
本实验的主要观察结果如下:
1)仅对于相同图像比较,相似度才等于1;否则,即使两个图像具有相同的身份,相似度也几乎低于 0.85 。
2)锚定图像和合成正图像之间的相似度低于实际正图像对之间的相似度,这表明人脸的颜色分布和外部人脸区域的属性强烈影响相似度。
这是因为面部识别模型倾向于将某些属性(例如发型和头部形状)识别为身份,因为用于训练的面部识别数据集的每个身份的图像集通常在其属性中具有相关性。
这些结果使我们假设使用传统人脸识别模型(例如 ArcFace \cite{arcface})最小化公式1中的身份损失与目标属性的保留相冲突,因为人脸识别模型具有属性偏差,这过度限制生成器不仅要传输源图像中的身份,还要传输属性。
4. BlendFace
我们提出了一种新颖的身份编码器 BlendFace 来解决由于人脸识别模型中的属性偏差而导致的身份属性纠缠问题,如第 3.2节中讨论的。
首先,我们引入了一种预训练策略,使用合成交换面孔synthetically swapped faces来训练去偏身份编码器。
然后,我们将身份编码器合并到面部交换模型中,解开属性和身份,以实现高保真面部交换。
4.1. Pre-training with Swapped Faces
正如3.2节中所讨论的,在真实人脸数据集上训练的传统人脸识别模型,例如 MS-Celeb-1M \cite{ms1m} 会意外地学习到属性偏差,因为每个身份的图像都高度相关彼此在某些属性上,例如发型和化妆;对于属性差异较大的源图像和目标图像,这会产生较差的结果。
为了解决这个问题,我们开发了一种去偏身份编码器 BlendFace,可以通过使用交换属性的合成面部图像训练面部识别模型来实现。
我们采用 ArcFace \cite{arcface} 作为我们的基本模型,并使用具有合成交换属性的混合图像对其进行训练。
对于训练期间的每个样本,我们以与 3.2节 中相同的方式以概率
p
p
p 交换输入图像的属性。
ArcFace \cite{arcface}的损失函数如下:
L
=
−
log
e
s
cos
(
θ
y
i
+
m
)
e
s
cos
(
θ
y
i
+
m
)
+
∑
k
=
1
,
k
≠
y
i
K
e
s
cos
θ
k
,
\begin{equation} \mathcal{L} = - \log \frac{e^{s\cos(\theta_{y_i} + m)}}{e^{s\cos(\theta_{y_i} + m)}+\sum_{k=1, k\ne y_i}^{K}e^{s\cos\theta_k}}, \end{equation}
L=−logescos(θyi+m)+∑k=1,k=yiKescosθkescos(θyi+m),其中
θ
y
i
\theta_{y_i}
θyi表示编码器的深度特征向量和权重向量之间的角度。
K
K
K、
s
s
s 和
m
m
m 分别表示类数、规模和边际。
我们观察到,我们的预训练弥合了“Swapped”分布和“Same”分布之间的差距(见图7b)。
我们在 第5.4节 中对
p
p
p 和
M
^
i
j
\hat{M}_{i_j}
M^ij 进行消融。
4.2. Face-Swapping with BlendFace
为了验证 BlendFace 的有效性,我们使用 BlendFace 构建了换脸模型。
我们表示源、目标与生成图像分别为
X
s
X_s
Xs、
X
t
X_t
Xt 和
Y
s
,
t
Y_{s,t}
Ys,t
(
=
G
(
X
s
,
X
t
)
)
(=G(X_s, X_t))
(=G(Xs,Xt))。
我们采用最先进的架构 AEI-Net \cite{faceshifter} 并进行一些修改。
我们用 BlendFace 替换用于编码源身份和计算距离损失
L
i
d
\mathcal{L}_{id}
Lid (公式1) 的 ArcFace。
受先前研究的启发,我们将混合掩模预测器合并到属性编码器中(即,\cite{hififace,rafswap,styleswap})。
预测掩码mask
M
^
\hat{M}
M^ 由二元交叉熵损失
L
m
a
s
k
\mathcal{L}_{mask}
Lmask 和来自人脸解析模型的地面真值掩码
M
M
M 监督 \cite{faceparsing} 为如下:
L
m
a
s
k
=
−
∑
x
,
y
{
M
x
,
y
log
M
^
x
,
y
+
(
1
−
M
x
,
y
)
log
(
1
−
M
^
x
,
y
)
}
,
\begin{equation} \mathcal{L}_{mask}= -\sum_{x,y}\{M_{x,y}\log\hat{M}_{x,y} + (1-M_{x,y}) \log(1-\hat{M}_{x,y})\}, \end{equation}
Lmask=−x,y∑{Mx,ylogM^x,y+(1−Mx,y)log(1−M^x,y)},其中
x
x
x和
y
y
y是图像的空间坐标。
我们为源输入和目标输入提供共享相同身份的不同图像,而不是在激活重建损失时提供相同的图像,如下所示:
L
r
e
c
=
{
∥
X
t
−
Y
s
,
t
∥
1
if
I
D
(
X
t
)
=
I
D
(
X
s
)
,
0
otherwise.
\begin{equation} \mathcal{L}_{rec}= \begin{cases} \left\|X_{t} - Y_{s,t}\right\|_1 & \text{if $ID(X_t) = ID(X_s)$,} \\ 0 & \text{otherwise.} \end{cases} \end{equation}
Lrec={∥Xt−Ys,t∥10if ID(Xt)=ID(Xs),otherwise.我们使用
p
=
0.2
p=0.2
p=0.2 对源图像和目标图像进行相同的身份采样。
我们使用循环一致性损失来代替原始 FaceShifter 中使用的属性损失,如下所示:
L
c
y
c
=
∥
X
t
−
G
(
X
t
,
Y
s
,
t
)
∥
1
.
\begin{equation} \mathcal{L}_{cyc}= \left \| X_t- G(X_t, Y_{s,t})\right\|_1. \end{equation}
Lcyc=∥Xt−G(Xt,Ys,t)∥1.我们使用与 GauGAN \cite{gaugan} 中相同的对抗性损失项
L
a
d
v
\mathcal{L}_{adv}
Ladv。
总损失
L
\mathcal{L}
L 的公式为:
L
=
L
a
d
v
+
L
m
a
s
k
+
λ
1
L
i
d
+
λ
2
L
r
e
c
+
λ
3
L
c
y
c
,
\begin{equation} \mathcal{L}= \mathcal{L}_{adv} + \mathcal{L}_{mask} + \lambda_{1}\mathcal{L}_{id} + \lambda_{2}\mathcal{L}_{rec} + \lambda_{3}\mathcal{L}_{cyc}, \end{equation}
L=Ladv+Lmask+λ1Lid+λ2Lrec+λ3Lcyc,其中系数
λ
1
\lambda_{1}
λ1、
λ
2
\lambda_{2}
λ2 和
λ
3
\lambda_{3}
λ3 是平衡损失函数的超参数。
请参阅补充材料,了解我们换脸模型架构的更详细描述。
5. Experiment
我们通过与以前的方法、消融和分析的广泛比较来验证我们方法的有效性。
结果表明,与之前的模型相比,BlendFace 提高了身份相似性和属性保留的保真度。
5.1. Implementation Detail
Pretraining of BlendFace. 我们采用 MS-Celeb-1M [26] 数据集来训练 BlendFace。批量大小和epochs 数分别设置为 1024 和 20。我们根据等式3中的损失训练我们的编码器。 使用学习率为 0.1 的 SGD 优化器进行 20 个epochs。我们将替换属性的概率 p 设置为 0.5。
Training of face-swapping model. 我们采用 VGGFace2 \cite{vggface2} 数据集来训练我们的换脸模型。
我们遵循 FFHQ \cite{stylegan} 的预处理来对齐和裁剪图像。
我们使用 ADAM \cite{adam} 优化器,其中
β
1
=
0
\beta_{1}=0
β1=0、
β
2
=
0.999
\beta_{2}=0.999
β2=0.999 和
l
r
=
0.0004
lr=0.0004
lr=0.0004 作为生成器和判别器。
我们训练模型进行
300
300
300k 迭代,批量大小为 32。
方程7中总损失的系数根据经验设置为
λ
1
=
10
\lambda_{1}=10
λ1=10、
λ
2
=
5
\lambda_{2}=5
λ2=5和
λ
3
=
5
\lambda_{3}=5
λ3=5。
5.2. Experiment Setup
Setup. 按照传统的评估协议,我们在 FaceForensics++ (FF++) [60] 数据集上评估人脸交换模型,该数据集包括 Deepfakes [1]、Face2Face [66]、FaceSwap [2] 各 1000 个真实视频和 1000 个生成视频、NeuralTextures [65] 和 FaceShifter [45]。我们遵循原始 FF++ 数据集定义的源和目标对的设置。我们使用与 HifiFace [72] 相同的源帧。
Metric. 为了评估生成图像的保真度,我们考虑六个指标:ArcFace (Arc) [17]、BlendFace (Blend)、面部形状 [18]、表情 (Expr) [18]、头部姿势 [18] 和凝视 [3]。我们测量源图像和交换图像之间的距离以获取身份度量,即 ArcFace、BlendFace 和形状,以及目标图像和交换图像之间的距离以获取属性度量,即表情、姿势和凝视。
我们计算了 ArcFace 和 BlendFace 提取的特征向量的余弦距离,形状、表情和姿势的预测 3DMM 参数的 L1 距离,以及注视的预测欧拉角的 L1 距离。我们进一步计算所有指标中考虑源和目标的相对距离[40],表示为“-R”。
5.3. Comparison with Previous Methods
Baselines. 我们将我们的方法与公开可用的最先进模型进行比较,即 FSGAN [54]、SimSwap [14]、MegaFS [90]、InfoSwap [22] 和 FSLSD [75]。我们还采用来自 FF++ 数据集的 Deepfakes [1]、FaceSwap [2] 和 FaceShifter [45] 以及来自官方项目页面 [4] 的 HifiFace [72] 生成的视频。
Result. 定量结果如表1所示。我们的模型在姿势和注视的绝对和相对指标方面优于以前的方法,并且在表情的绝对和相对指标方面取得了第二好的结果。尽管很难使用人脸识别模型将我们的模型与以前的身份相似度方法进行比较,因为使用与训练中相同的编码器进行的评估往往被高估,但我们的模型至少在ArcFace 中优于 Deepfakes [1]、FaceSwap [2] 和 存在 FSGAN [54]。我们还在图 5 中展示了一些生成的图像。我们省略了 Deepfakes、FaceSwap 和 FaceShifter 的示例,因为这些结果是由不同的源帧生成的。
我们可以看到,以前的方法存在属性泄漏,特别是在改变发型(例如(a)和(d))和头部形状(例如(c)和(e))时,而我们的方法成功地定性地产生了稳健的结果。
此外,我们观察到基于 StyleGAN2 的方法,即 MegaFS [90] 和 FSLSD [75] 很容易受到看不见的域的影响,因为这些模型有时会在源身份反转方面失败。由于空间限制,我们在补充材料中包含了更多生成的结果。由于我们的方法限制面部形状的变化以保持面部内部和外部的一致性,因此生成的图像和源图像之间面部形状的相似度略低于其他方法,这是我们在第 6 节中讨论的方法的局限性之一。
5.4. Ablation and Analysis
Choices of source encoder and loss. 我们发现换脸模型的性能强烈依赖于身份编码器的选择来提取源特征并计算身份损失。我们训练四个面部交换模型,将 ArcFace 和 BlendFace 设置为源编码器或损失。
然后我们用与第5.3节相同的协议评估这些模型。
请注意,我们在第5.3节中的模型将 BlendFace 设置为身份编码器和损失。
结果如表2所示。可以看出,在源编码器和损失计算中使用ArcFace在BlendFace、表情、姿势和注视的距离上都带来了最差的结果,这意味着ArcFace的身份属性纠缠。
同时,我们的方法在 ArcFace 上实现了姿势和凝视的最佳保存,尽管身份距离最差,因为 ArcFace 往往会低估良好解缠结的交换结果。
我们还在图 6 中显示了生成的图像。我们可以观察到,由于身份和属性的纠缠,使用 ArcFace 计算身份损失会产生不一致的混合边界和属性,而 BlendFace 会产生一致的结果。这些结果清楚地表明,我们的 BlendFace 在换脸方面在数量和质量上都优于 ArcFace。
Probability of replacing attributes. 我们检查了身份编码器预训练中替换属性的概率
p
p
p 的影响。
我们还用
p
=
0.25
p=0.25
p=0.25、
0.75
0.75
0.75 和
1.00
1.00
1.00 训练编码器,然后进行与 3.2节 相同的实验,并在 Fig 7中绘制分布。
可以看出,使用交换面孔训练身份编码器弥合了图中表示为“Same”的实际正样本与表示为“Swapped”的交换面孔的相似度分布之间的差距,即使当
p
=
0.25
p=0.25
p=0.25 时也是如此。
此外,增加
p
p
p 会使这些分布更接近。
我们再次强调ArcFace \cite{arcface},对应于
p
=
0.0
p=0.0
p=0.0的情况,低估了交换的面,如图4所示。
这一结果支持我们的预训练方法消除了人脸识别模型中的属性偏差。
Face verification on real face datasets. 我们在人脸验证任务中验证我们的编码器。我们采用众所周知的基准,包括 LFW [30]、CFP-FP [61] 和 AgeDB [53]。
我们将 BlendFace 与 ArcFace 和 SynFace [57] 进行比较,后者是在 GAN 合成图像上训练的 ArcFace 的变体。
我们采用无限制的带标记的外部数据协议来评估模型,遵循人脸识别研究领域的惯例(例如[17])。
我们在表 3 中给出了结果。我们观察到,尽管性能略有下降,但我们的编码器保留了人脸验证的能力。这是因为删除的特征(例如发型、脸型和颜色)对于验证真实面孔很有用。
Blending mask. 我们检查混合蒙版在 BlendFace 预训练中的效果。
如 Sec.3.2中所述,我们使用从交集
M
i
j
⊙
M
~
i
j
M_{i_j} \odot \tilde{M}_{i_j}
Mij⊙M~ij 生成的掩码
M
^
i
j
\hat{M}_{i_j}
M^ij在预训练期间混合源图像
X
i
j
X_{i_j}
Xij 和目标图像
X
~
i
j
\tilde{X}_{i_j}
X~ij。
我们在这里用
M
i
j
M_{i_j}
Mij 或
M
~
i
j
\tilde{M}_{i_j}
M~ij 训练 BlendFace,而不是
M
i
j
⊙
M
~
i
j
{M}_{i_j} \odot \tilde{M}_{i_j}
Mij⊙M~ij。然后我们用这些编码器训练换脸模型。
如图8所示,我们发现使用
M
i
j
⊙
M
~
i
j
{M}_{i_j} \odot \tilde{M}_{i_j}
Mij⊙M~ij 的模型比
M
i
j
{M}_{ i_j}
Mij 或
M
~
i
j
\tilde{M}_{i_j}
M~ij产生更一致的结果。
这是因为将
X
i
j
X_{i_j}
Xij 和
X
~
i
j
\tilde{X}_{i_j}
X~ij 与
M
i
j
M_{i_j}
Mij 或
M
~
i
j
\tilde{M}_{i_j}
M~ij 混合会在混合图像
X
^
i
j
\hat{X}_{i_j}
X^ij的预训练期间产生伪影,这会损害换脸模型。
Saliency Map.显着性图。 为了探索 BlendFace 的有效性,我们将 ArcFace 和 BlendFace 的显着图可视化。受滑动遮挡[84]的启发,我们测量了多个掩模尺寸{16,24,32,40,48,56}上被遮挡的输入图像和参考图像之间的身份相似性的平均敏感度。如图9所示,ArcFace同时关注内表面和外表面,而我们的编码器只关注内表面。结果支持我们的 BlendFace 只能交换内部面,而不会发生不需要的外部面属性转移。
6. Limitations
我们新颖的身份编码器 BlendFace 提供了分离的身份特征,有利于面部交换和其他与面部相关的任务;
然而,我们注意到我们的方法有一些局限性。
首先,我们的模型很难改变面部形状,因为我们限制了身份交换的区域以提高面部内部和外部之间的空间一致性。
因此,当具有不同面部形状的源图像和目标图像被输入到我们的模型中时,生成的图像在外观方面看起来像源对象,但在面部形状方面可能不是。
其次,与以前的方法类似,由于缺乏极端场景的训练样本,我们的方法有时无法保留手等硬遮挡。
可以通过将 HEAR-Net [45] 合并到我们的模型中来改进它。
7. Conclusion
介绍:
在本文中,我们提出了 BlendFace,这是一种分离良好的身份编码器,可实现更一致的面部交换。motivation:
BlendFace 背后的关键观察是,在真实人脸数据集上训练的传统人脸识别模型在某些属性上存在偏差,例如发型和脸型,这导致换脸结果不一致。
为了解决这个问题,我们使用混合图像作为已交换属性的伪正(pseudo-positive)样本来训练人脸识别模型,以便编码器仅关注内部人脸,从而改善了人脸交换的身份和属性的分离。实验:
与 FaceForensics++ 数据集上的先前方法的比较表明,我们的方法取得了新的最先进的结果,特别是在保留目标属性、保持视觉一致性方面。
此外,我们的广泛分析为后续面部相关研究提供了 BlendFace 的优势。
潜在的负面社会影响。 换脸模型存在被滥用的风险,例如欺骗人脸验证系统和合成政治演讲,即所谓的“深度伪造”。
因此,视觉界一直致力于数字人脸取证,这导致了许多有前途的深度换脸检测方法[5,16,27,28,46,47,52,62,71,77,86,87]和各种各样的方法基准 [19, 20, 31, 38, 43, 44, 48, 60, 88, 92]。
可以通过主动检测方法 [78, 81] 并严格限制仅用于研究目的的模型的发布来减轻风险。
此外,我们将在 FF++ 上发布我们模型的基准数据集,以供未来人脸取证的研究使用。