【论文精读ICCV_2023】BlendFace: Re-designing Identity Encoders for Face-Swapping

【论文精读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:

  1. 本文提出了一个专门用于换脸领域的身份编码器,能够解决ArcFace中存在的attribute biases
  2. BlendFace 背后的关键思想是在混合图像上训练人脸识别模型,将其属性替换为其他图像的属性,以减轻人际偏差(例如发型)。(即一个身份的不同图像之间发型大概率是关联的,混合的目的是将该身份的人脸换到另一个背景中,从而换掉发型,去除了这种人际偏差。)
  3. 这篇工作做了很多实验,是可以借鉴的:例如该方法与公开可用的最先进模型进行比较,即 FSGAN [54]、SimSwap [14]、MegaFS [90]、InfoSwap [22] 和 FSLSD [75]。还采用来自 FF++ 数据集的 Deepfakes [1]、FaceSwap [2] 和 FaceShifter [45] 以及来自官方项目页面 [4] 的 HifiFace [72] 生成的视频。
  4. 指标六个指标:ArcFace (Arc) [17]、BlendFace (Blend)、面部形状 [18]、表情 (Expr) [18]、头部姿势 [18] 和凝视 [3]。我们测量源图像和交换图像之间的距离以获取身份度量,即 ArcFace、BlendFace 和形状,以及目标图像和交换图像之间的距离以获取属性度量,即表情、姿势和凝视。
    我们计算了 ArcFace 和 BlendFace 提取的特征向量的余弦距离,形状、表情和姿势的预测 3DMM 参数的 L1 距离,以及注视的预测欧拉角的 L1 距离。我们进一步计算所有指标中考虑源和目标的相对距离[40],表示为“-R”。
  5. 局限性: 很难改变面部形状,有时无法保留手等硬遮挡。

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=1cosEid(Xs),Eid(Ys,t)⟩,其中 E i d E_{id} Eid表示ArcFace编码器, c o s ⟨ u , v ⟩ cos\langle u,v\rangle cosu,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=XijM^ij+X~ij(1M^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(MijM~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+(1Mx,y)log(1M^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={XtYs,t10if 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=XtG(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 节中讨论的方法的局限性之一。
如表1所示
在这里插入图片描述

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} MijM~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} MijM~ij。然后我们用这些编码器训练换脸模型。
如图8所示,我们发现使用 M i j ⊙ M ~ i j {M}_{i_j} \odot \tilde{M}_{i_j} MijM~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++ 上发布我们模型的基准数据集,以供未来人脸取证的研究使用。

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

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

相关文章

linux下sys目录与proc目录的作用

sys目录作用 在Linux系统中,/sys目录是一个特殊的虚拟文件系统(sysfs),用于提供对内核和设备的运行时信息的访问。它是在内核中运行的驱动程序和子系统的接口,可以用于获取和配置系统的硬件和内核信息。 以下是/sys目…

uniapp原生插件之安卓虹软人脸识别增值版原生插件

插件介绍 虹软人脸识别增值版支持在线激活,离线激活,支持图片人脸识别(可识别网络图片),活体检测,离线识别,相机预览旋转,相机人脸识别,批量注册(支持网络图…

Spring(Spring/Springboot 的创建) 基础

一. Spring 1.1 Spring是什么? Spring 指的是 Spring Frameword(Spring 框架),它是一个开源框架。 Spring 是包含了众多工具方法的IoC容器。 1.2 什么是容器? 容器时用来容纳某种物品的装置。 我们之前接触到的容器: • List/Map ->…

MySQL基础笔记

MySQL 1. SQL1.1 SQL-DDL语句1.1.1 数据库操作1.1.2 表操作 1.2 MySQL-DML语句1.3 MySQL-DQL语句1.3.1 基本查询1.3.2 条件查询1.3.3 聚合函数1.3.4 分组查询1.3.5 排序查询1.3.6 分页查询 1.4 MySQL-DCL语句1.4.1 管理用户1.4.2 权限控制 2. 函数2.1 字符串函数2.2 数值函数2.…

事件相互独立

两个事件的情况 定义:假设A、B是两个事件,如果满足,那么就称这两个事件相互独立。 如果,那么A、B相互独立和互不相容不能同时成立。 互相独立意思是一个事件的发生跟另外一个事件是否发生没有关系。而互不相容的意思是两个事件…

你真的了解进程注入吗?

关注公众号回复20231110获取最新网络安全以及内网渗透等资料。 文章目录 关注公众号回复20231110获取最新网络安全以及内网渗透等资料。进程注入进程注入是什么?windows进程虚拟地址空间句柄Tokens线程数特权shellcode注入 进程注入 进程注入是什么? 攻…

《HumanGaussian: Text-Driven 3D Human Generation with Gaussian Splatting》

文章目录 前置知识:一、正文:二、方法 前置知识: \quad 1)SMPL(Skinned Multi-Person Linear)模型 \quad SMPL(Skinned Multi-Person Linear)模型是一种用于表示人体形状和姿势的三维…

随机变量的定义

试验E的样本空间为S,样本空间S中的元素记为e,即样本点是e,样本空间记成,表示元素组成的集合。 随机变量的定义:设随机变量的样本空间为,是定义在样本空间S上的实值单值函数,称为随机变量。 随机…

vue3+element-plus, 设置table表格滚动到最底部

当table设置heigh属性时, 希望表格添加行数时,能显示最后底部数据(即表格滚动条,滚动到最底部)解决方法 const tableListRef ref();let table tableListRef.value.layout.table.refs; // 获取表格滚动元素 let tab…

Java基础语法之继承

为什么要继承 会发现,狗和猫只有叫声不同,因为它们都是动物,会有相同的属性和行为,所以它们可以继承animla类 如何继承 用到extends关键字 这样就会简化好多 注意 1.Animal称为父类/超类/基类;dog,cat称…

《快乐阅读》期刊论文发表投稿

《快乐阅读》期刊是经中华人民共和国新闻出版总署审核通过的,由河南文艺出版社有限公司主办、中原大地传媒股份有限公司主管的,面向国内外公开发行的省级优秀学术刊物。 收稿栏目:清唱、微课堂、教学实践、专栏、师与道、教与学、经验交流、…

电机驱动开发

最近在搞电机驱动程序,感觉很简单,实际操作却发现里面还有很多猫腻(细节)。 电机在嵌入式设备中非常常见,例如云台的转动,都是靠电机来驱动的。 电机常见分步进电机、直流电机,相对来说步进电机…

【后端学前端】第一天 css动画 内凹导航栏

1、学习信息 css动画 内凹导航栏_哔哩哔哩_bilibili 随便找的的视频&#xff0c;主要原因是在公司不方便有声音 2、源码 最终源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title…

Re59:读论文 Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文名称&#xff1a;Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks 模型开源地址&#xff1a;https://huggingface.co/facebook/rag-token-nq ArXiv下载地址&#xff1a;https://arxi…

【INTEL(ALTERA)】Agilex7 FPGA Development Kit DK-DK-DEV-AGI027RBES 编程/烧录/烧写/下载步骤

DK-DEV-AGI027RBES 的编程步骤&#xff1a; 将 USB 电缆插入 USB 端口 J8&#xff08;使用 J10 时&#xff0c;DIPSWITCH SW5.3&#xff08;DK-DEV-AGI027RES 和 DK-DEV-AGI027R1BES&#xff09;和 SW8.3&#xff08;DK-DEV-AGI027RB 和 DK-DEV-AGI027-RA&#xff09;应关闭&a…

37.分支结构嵌套

目录 一.什么是分支结构嵌套 二.什么情况下会用分支结构嵌套 三.举例 四.注意事项 五.视频教程 一.什么是分支结构嵌套 在一个if语句中又包含了另外一个if语句&#xff0c;这种情况称之为if语句的嵌套&#xff0c;也叫做分支结构嵌套。 二.什么情况下会用分支结构嵌套 如…

计算机网络简答题

面向连接和非连接的服务特点 面向连接的服务&#xff1a;通信双方在进行通信之前&#xff0c;要事先建立一个完整的可以彼此沟通的通道&#xff0c;在通信过程中整个连接的情况可以被实时的监控和管理 面向非链接的服务&#xff1a;不需要预先建立一个联络两个通信节点的连接&a…

陵园殡仪馆网站建设的效果如何

陵园墓地的需求度众多周知非常高&#xff0c;无论墓地坑位咨询还是事项/环境展示、资料预览等都是常见事项&#xff0c;由于行业的特殊性&#xff0c;对正常客户来说&#xff0c;并不会知悉各个事项、价格、服务、流程等内容。 而对企业来说&#xff0c;也有获客、品牌扩张等需…

ViTDet论文笔记

arxiv&#xff1a;https://arxiv.org/abs/2203.16527 GitHub&#xff1a;https://github.com/ViTAE-Transformer/ViTDet 摘要 本文提出使用plain&#xff0c;non-hierarchical视觉transformer作为目标检测的主干网络。通过这种设计可以使得ViT结构模型不需要再重新设计一个分…

微信小程序自定义提示框组件并使用插槽 tooltip

创建tooltip组件引用 创建一个自定义组件&#xff0c;例如命名为 tooltip tooltip.wxml&#xff1a;用于定义组件的结构&#xff1b; <!--components/tooltip/tooltip.wxml--> <view class"tooltip-wrapper" hidden"{{hidden}}" style"lef…
最新文章