换脸综述翻译-Face swap综述(摘自SCI)

论文名称:Quick Overview of Face Swap Deep Fakes

链接:https://pdfs.semanticscholar.org/1a67/17bdf1ce758e6621de45616e5801631386c3.pdf

这篇文章综述简要介绍了换脸深度伪造技术的概念、背景及实现方法。通过翻译,希望这些信息能够帮助你更好地了解这一计算机视觉领域的研究方向。

目录

摘要

1 介绍

2 换脸技术的发展

2.1Preprocessing

2.2 Identity Extraction

2.3. 特征提取器

2.4 生成器

2.5. 后处理

2.6. 评估方法

3.挑战

4.结论

5.未来方向

参考文献

摘要

近年来,深度伪造(Deep Fake)技术在生成和检测方面发展迅速。这两个领域的研究者在各自的成果上相互超越。这些研究通过采用自动编码器(Autoencoders)、生成对抗网络(Generative Adversarial Networks,GANs)以及其他算法等方法,创造出能抵抗计算机算法或人眼检测的假内容。在日益增长的新兴研究中,部分研究凭借其解决方案和检测的稳健性在该领域作出显著贡献。尽管生成算法不断取得进展,但这个领域仍然有更多的研究空间。本文将简要介绍一些最新换脸深度伪造算法的基本原理。

1 介绍

换脸技术生成的照片具有不同个体的面部特征(如姿势、表情、光照和背景等)。实现这一任务并不仅限于对模型进行长期训练。此外,通常还需要进行更耗时的预处理和后处理任务,以创建在感知上表现良好的转换。大多数描述的算法使用各种劳动密集型的外部解决方案来提高它们的性能。算法开发者通常采用两种主要方法——基于源的方法和基于目标的方法。基于目标的方法需要从源图像中提取个体的“身份”信息,并将其插入到目标图像中,同时保留目标图像的特征。相比之下,基于源的方法涉及根据从目标图像中提取的属性编辑源图像。后一种解决方案的缺点是对使用的环境没有控制。因此,本文将重点关注基于目标的算法,使其具有尽可能通用的实用性。算法工作的发展引入了更多解决方案以提高质量并减少实现目标结果所需的时间或数据量[1]。通常,获得最佳结果的工作针对特定示例进行训练,而不是针对训练集之外的示例进行泛化。本文将介绍身份转换流程。但是,应考虑它们的预处理和后处理工具变化时,所达到的结果可能会发生变化。因此,大部分工作将关注流程的运行方式以及生成算法的模型。

图1展示了一个典型的基于源的换脸流程。它包括数据预处理、深度伪造模型(包含诸如身份提取等次要模型)以及后处理以提高结果。由于不同阶段根据算法和开发者所拥有的计算能力经常合并,将引入新的划分:

  • 身份提取:涉及获取关于人的身份的信息。
  • 特征提取:从含有将要编辑身份的人的图像中提取姿势、情感和背景等特征和属性。
  • 生成器:生成包含源人物身份的目标图像。

图1 典型的换脸流程

上图的换脸技术可以这样理解:

1. 检测和裁剪:使用人脸检测算法(如MTCNN)识别并从源图像和目标图像中裁剪出人脸区域。

2. 中间表示:在处理过程中,我们需要提取有关人脸的关键特征:

- 标志点/关键点:描述面部结构的一组像素点,如眼睛、鼻子、嘴巴等位置。

- 边界框:包围人脸区域的矩形框。

- 骨架:描述面部结构(如鼻子、眼睛、嘴巴)的连线。

- 3DMM参数:3D形状模型参数,包括3D人脸几何形状和纹理。

- UV映射:将3D面部模型映射到2D平面的过程。

- 深度图:表示图像中各个像素点到摄像头的距离。

3. 混合:在生成目标图像后,将源图像的背景与合成的换脸区域进行混合,以创建自然和连贯的最终结果。混合过程通常涉及颜色和亮度调整,以及边缘平滑处理。

2 换脸技术的发展

Faceswap [2] 是一款基于深度学习方法的换脸软件,最早基于深度学习的换脸方法之一,首次亮相于2017年并仍在不断开发。开发者不断推出更新和新模型,用户可以选择并进行测试。这款软件基于自动编码器的基本方法,即使没有过多的编程知识,用户依旧可以进行换脸操作。尽管提供了基本设置,用户还可以对模型进行许多更改。

另一个基于自动编码器并公开提供的算法和软件是 SOTA(最先进技术)DeepFaceLab [3]。开发者通过添加其他科学发展成果,如生成对抗网络(GANs)[4,5],持续开发该软件。除了发布论文中的模型外,作者还提到其他增强功能,包括预处理和后处理。该解决方案在生成内容质量方面被认为是最好的之一。由于整个流程仅适用于两个人,因此能够提供高质量效果。在训练过程中未出现的人无法使用该模型。每次想要在新人物上执行换脸操作时,都必须从头开始训练模型。

相比之下,后续的创新尝试将照片中描绘的人物的身份与可能存在的特征(如头发、眼镜或遮挡物)分离。此转换仅影响面部。此外,还努力使其尽可能通用,并限制生成过程中使用的人物样本数量。这样的一个解决方案是 FaceShifter:朝向高保真度和遮挡感知的换脸技术[6]。生成算法本身由两个网络组成:负责面部转换的 AEI-Net(自适应嵌入集成网络),使用编码方法将身份信息与 GANs 结合;以及 HEAR-Net(启发式错误确认网络),用于改进所获得的结果(包括遮挡)。

类似于上述方法,SimSwap:高保真度换脸的高效框架[7],也涉及对身份信息的编码。与前述方法相比,它使用一个而非两个模型来执行换脸任务。

在获得的转换质量方面取得卓越成果的方法是 HifiFace:3D形状和语义先验引导的高保真度换脸技术[8]。在这项任务中,开发者采用3D形状感知身份来调节面部形态,基于3DMMs(3D可变形模型)和3D面部重建方法进行几何监督。该方法在身份转换方面取得了良好成果,同时增加了高质量结果的方面。

另一个取得优异成果的方法是 GHOST-A [9]。其实现将上述的 FaceShifter 作为基础。然而,它结合了一些如眼睛损失函数、超分辨率块和基于高斯的面部遮罩的发现,从而提高了基础方法的质量。

最后一个可分析的模型是基于扩散的架构 —— DiffFace [10]。得益于技术进步和计算能力的增加,扩散模型也在换脸技术中得到了应用。尽管在其当前的操作速度方面存在许多缺点,但这些模型在生成样本的现实感方面可能具有突破性,主要通过培训过程的稳定性[11]。

2.1Preprocessing

在目标使用和训练中的主要方面之一是适当的数据处理,例如,在图像中找到人脸。并非所有算法开发者都关注这个问题,并使用公开可用的训练集。在此小节中,作者描述了开发者在这方面使用的解决方案。

Faceswap 软件是一对一方法,其操作仅限于在两个人(目标和源)上工作,开发者没有描述所使用的数据集,但展示了使用程序所需的操作算法。首先,获取大量数据非常重要,例如描绘源目标的照片或电影。这些数据输入三个过程:检测、对齐和遮罩生成,这通常类似于进一步讨论的算法。人脸检测是在帧内定位人脸的过程。检测器检查图像并识别类似于人脸的区域。对齐过程涉及在人脸内部找到“地标”(图1中的中间表示),从而定位人脸。该过程接受检测器结果,并确定面部关键特征(眼睛、嘴巴、鼻子等)的位置。遮罩生成从图像区域中移除背景和障碍,并留下面部。预处理中获得的结果既用于训练阶段,也用于实际使用。

作为软件,Faceswap允许用户选择他想在各个过程中使用的算法。

在检测阶段,可以选择几种检测模型:CV2 DNN检测器(基于OpenCV2库,它是一个使用预训练单次检测模型—ResNet[12]的检测器)、MTCNNs[13](多任务级联卷积网络)和S3FD[14](单次尺度不变面部检测器,这是所提议的最佳检测器。它可以检测到更多的面部并产生较少的假阳性,但需要更多的资源)。

S3FD人脸检测器是一个先进的算法系统,可以在图像或视频内容中检测到人脸。它的开发目的是解决与基于锚的检测方法相关的挑战,特别是在识别较小的物体或面部时,它们的效率降低。该系统基于尺度公平框架构建,该框架采用一系列锚相关层和一系列经过精心策划的锚尺度。这种方法使系统能够有效地处理各种尺度的面部,从大到非常小。S3FD检测器的一个关键特性是其实施尺度补偿锚匹配策略。该策略旨在提高小面部的召回率,从而提高系统在内容中准确识别较小面部的能力。此外,S3FD检测器采用最大输出背景标签。这个特性旨在降低与小型面部检测相关的假阳性率,实质上意味着它有助于防止系统错误地将非面部物体或区域识别为面部。

在对齐过程中,用户可以选择两种算法:CV2 DNN Aligner[15](资源消耗较低,但准确性也较低)和FAN[16](速度较慢,但更为准确)。FAN的作者设计了一种应对2D和3D数据集的人脸对齐算法。他们将先进的地标定位架构与现代残差块相结合,对扩展后的2D面部地标数据集进行训练,并在多个2D数据集上进行评估。为应对3D人脸对齐的稀缺性,引入了一个2D引导的CNN将2D注释转换为3D,从而创建了迄今为止最大、最具挑战性的3D面部地标数据集。这些网络的性能非常出色,这表明它们可能在使用的数据集上接近最高精度。在遮罩开发的过程中,开发者实现了BiSeNet[17](基于神经网络的相对轻量级遮罩,为遮罩区域提供更精确的控制,包括遮罩整个头部)、VGG Clear[18](一种旨在为主要是正面对齐的无遮挡面部提供智能分割的遮罩)、VGG Obstructed[18](一种旨在为主要是正面对齐的面部提供智能分割的遮罩。遮罩模型经过特殊训练,可识别一些面部阻挡物)、Unet-DFL—TernausNet[19](由后面描述的DeepFaceLab软件的开发者实现并相应地进行训练。遮罩旨在为主要是面部正面部分提供智能分割)。

除了上述处理方法,Faceswap还允许选择归一化方法,以便在不同光照条件下更好地找到人脸。为减少“微抖动”,添加了Re Feed功能,该功能重复检测-对齐过程几次,然后对结果求平均。然后,必须相应地对生成的数据进行排序以捕捉错误样本。开发者实现了几种排序算法;然而,他们建议使用涉及VGG面部描述符[20]的算法。它使用成对聚类算法检查数据集中每个面部的512个特征之间的距离,并按照相应顺序排列它们。DeepFaceLab,同样是一对一方法,因此没有关于用户可配置默认设置数量的公开可用数据集,比其前身更为谦虚。尽管如此,它实现了更好的结果并且更加自动化。开发者专注于为用户提供最佳预处理算法。他们引入了几种模式,以确定要操作和提取的面部部分,而不是自定义设置:全面部(默认模式,整个面部)、半面部(分辨率更高,但包括较小的颧骨区域)、中间面部(比半面部宽30%)、整个面部(整个面部区域加上额头)和头部(整个头部)。

在人脸检测部分,他们建议在 Faceswap[14]中也使用S3FD检测器。随时间推移保持性能稳定的第二步是人脸对齐。为此,开发者建议使用两种算法:2DFAN(2D Face Alignment Network [16],也用于 Faceswap 并适用于具有标准姿势的面部)和 PRNet [21](在面部一侧不可见的特殊情况下使用)。此外,开发者添加了一个可配置时间步长的可选功能,以确保检测到的点的稳定性。他们使用 Umeyama 的[22]传统点模式映射和转换方法生成面部对齐所需的相似性变换矩阵。在应用上述步骤之后,为了消除潜在的错误,他们使用许多提议的排序算法之一,并消除不代表将为其训练模型的人脸的样本。在进一步的步骤中,使用 TernausNet [19]进行分割和遮罩。TernausNet可以有效地消除不规则的遮挡。然而,在某些镜头中,模型可能无法生成精确的遮罩。因此,开发者开发了一个面部分割工具 XSeg,可以通过少镜头学习进行自定义。用户可以创建遮罩标签并训练自定义分割模型,从而创建自定义遮罩。FaceShifter 利用 CelebA-HQ[23]、FFHQ[24]和 VGGFace[20] 来训练 AEI 网络。相比之下,HEAR 网络仅通过这些数据集中具有最高启发式错误百分比的面部区域以及合成遮挡进行训练。

遮挡图片随机采样自 EgoHands [25]、GTEA Hand2K [26] 和 ShapeNet [27] 对象渲染集。每张面部图像首先使用提取的五个地标进行对齐,并使用方法 [28] 进行裁剪。裁剪后的图像包含整个面部以及周围的部分区域。SimSwap 在 VGGFace2 数据集 [29] 上进行训练,小于 250 × 250 的图像被移除以提高质量。然后对它们进行对齐和去本质裁剪。SimSwap 开发者为提高质量生成了自己的 VGGFace2HQ 数据集 [30],通过在上述数据集上应用两个工具获得:GFPGAN [31] —用于图像恢复—和 InsightFace [32] —用于数据预处理。HifiFace 在 VGGFace2 [29] 和 Asian-Celeb [33] 上进行训练。开发者为 256 × 256 分辨率和 512 × 512 分辨率创建了两个模型。对于前者,他们使用与 FaceShifter [28] 相同的方法,对于后者,他们实现了一个人像增强网络 [34],以将训练集的分辨率提高到 512 × 512。GHOST-A 的开发者在他们的工作中使用了 CelebA-HQ [23] 和 VGGFace2 [20] 数据集,并使用 InsightFace 库 [32] 正确地裁剪和对齐面部。DiffFace 开发者使用 FFHQ [24] 数据集训练扩散模型,同时使用 FaceForenics++ 数据集 [35] 测试算法的性能。

2.2 Identity Extraction

面部替换流程中负责提取身份特征的组件是身份提取器。它的任务是将一个人的脸部表示为适当的隐藏空间,以消除不同时刻和情况下拍摄的同一人照片的非通用属性。FaceSwap 和 DeepFaceLab 是一对一算法,因此身份提取器的训练也应该在整个流程的训练过程中进行。FaceSwap 是基于使用自编码器的思想。为了利用自编码器交换面部,作者训练了两个自编码器:一个用于要移动的面部(源)的人,一个用于要替换的面部(目标)的人。由于使用了瓶颈,身份特征被分配给了这样一个解决方案的模型。自编码器最终试图仅基于非通用属性来重建适合模型的身份。DeepFaceLab 的开发者在他们的解决方案中使用了一个标准编码器,通过个人解码器完成身份特征的传递。

FaceShifter 和随后的算法已经是多对多算法,它们旨在为多个个体实例工作,包括不一定在训练集中找到的实例。引入了一个名为“Identity Encoder”的组件来提取身份特征。它负责对包含生成器重建身份所需信息的身份嵌入进行编码。在 FaceShifter、SimSwap 和 Ghost-A 的开发者的解决方案中,他们使用了一个用于面部识别的预处理模型 [36]。该模型在大量的 2D 面部上进行了训练。在 HiFiFace 中,开发者使用了一个 3D-shape-aware 身份提取器来提取目标的身份信息。在这个任务中,与之前的解决方案不同,除了用于面部识别的预训练网络(Curricularface [38])之外,还添加了一个预训练的 3D 面部重建模型 [37],以生成携带身份信息的识别向量。它用于同时处理包含属性和身份的图像。在生成的信息的基础上,从第一个模型中提取表情和姿势信息,从第二个模型中提取身份信息。在 DiffFace 中,开发者测试了两个用于在面部合成过程中作为条件引入的提取身份特征的模型:ArcFace [36] 和 CosFace [39]。这些特征的引入在生成子部分中进行了描述。

ArcFace、CosFace 和 CurricularFace 是面部识别的最先进方法,它们通过在 Softmax 损失函数中采用边距来最大化类别可分性,从而显著提高特征可区分性。ArcFace 引入了一种加性角边距损失,具有明确的几何解释,并显著增强了区分能力。它容易受到大量标签噪声的影响。因此,提出了一种名为子中心 ArcFace 的变体。在子中心 ArcFace 中,每个类别包含多个子中心,训练样本只需要接近其中任意一个。该技术通过自动净化实际噪声下的原始网络面孔来提高性能。预训练的 ArcFace 模型还可以使用网络梯度和批量归一化先验生成保留身份的面部图像。

CosFace 通过提出一种大边距余弦损失(LMCL)来解决传统 Softmax 损失中缺乏区分能力的问题。它将 Softmax 损失重新构造为余弦损失,使用 L2 归一化特征和权重向量来消除径向变化。引入余弦边距项以在角空间中最大化决策边距。因此,实现了最小类内方差(同一身份内的差异)和最大类间方差(不同身份间的差异)。

CurricularFace 引入了一种自适应课程学习损失,将课程学习融入损失函数,为深度面部识别开发了一种新颖的训练策略。它从早期训练阶段的简单样本开始,然后在后期阶段过渡到更难的样本。该方法调整不同训练阶段简单和困难样本的相对重要性,从而根据难度级别为不同样本分配不同的重要值。

从本质上讲,这些方法努力最大化类间方差并最小化类内方差,从而确保更有效的面部特征区分。主要区别在于引入损失函数中的边距以及管理学习过程的技术。

2.3. 特征提取器

面部交换的第二个组件——特征提取器,是提取同一人不同照片中不同的属性,即姿势、面部表情和光照。在 FaceSwap 和 DeepFaceLab 中,使用编码器提取属性并将其编码到相应的隐藏空间。通过操纵这个空间的大小,可以在牺牲通用特征和身份的情况下增加对原始图像的相似度。DeepFaceLab 的开发者还开发了一种具有额外中间表示的模型扩展,这些表示被组合并传递到相应的解码器,以获得更好的光照和颜色表示。

FaceShifter 和 GHOST-A 利用多级属性编码器负责编码嵌入姿势、光照、背景或表情等信息的属性。为了在空间维度增大的情况下尽可能保留更多的属性,开发者建议在不同维度的特征图上表示这些属性。用于此目的的网络架构是 U-Net [40]。通过基于提取器模型的不同级别的空间的特殊选择的成本函数,实现了属性提取的自监督训练。在 SimSwap 框架中,通过使用鉴别器的适当成本函数在生成器中强制执行属性的行为。这个过程将在以下子节中描述。在 HiFiFace 中,从照片中提取属性信息最终使用了一种修改过的编码器,其结构中包含残差块 [41]。

DiffFace 的开发者使用了三种解决方案来提取/传输属性到模型中。其中两个位于称为 Facial Guidance 的解决方案中,该解决方案负责引导训练中的面部生成过程和训练模型中的直接合成过程。在这个过程中,作者使用了一个面部解析器 [14] 和一个注视估计器 [39]。面部解析器引导面部生成过程,使生成的面部结构与源面部将应用到的人相匹配。使用这些指南可以保证一致地放置面部特征,如眼睛、眉毛、嘴唇等。注视估计器引导了关于眼球位置的生成过程。这个组件在面部交换模型中通常是一个关键且棘手的问题,因此这个领域中的额外模型克服了这个问题。第三种解决方案是重用面部解析器,但在最后的生成阶段,用于重建背景和头发等元素。

2.4 生成器

面部子模型的重要组成部分是生成器,它是一个编码器,用于组合并处理在前面步骤中获得的表示。在 FaceSwap 和 DeepFaceLab 的情况下,生成过程以及提取过程,正如前面章节中看到的那样,是密切相互关联的。没有明确的边界来说明特定分割发生在哪里。然而,这源于采用的方法和解码器的最终交换。Faceswap没有进行额外的优化,因此成本函数证明结果仅基于图像重建。开发者实现了诸如L1(平均绝对误差)、L2(均方误差)、Logcosh、广义损失 [42]、L-无穷范数、DSSIM(结构相似性差异)、GMSDLoss(梯度幅度相似性偏差损失)[43] 和 GradientLoss [44] 等成本函数。为了产生更真实的效果,已将 GAN 模型添加到 DeepFaceLab 中;然而,它们的使用仅建议在培训结束时进行。默认情况下,DFL 使用 DSSIM 和 L2 的混合损失。这种组合受到同时获得两种优势的愿望驱动:DSSIM 更快地泛化人脸,而 MSE 提供更高的精确度。这种损失组合旨在在泛化和表现力之间找到平衡。此外,在为生成器和判别器网络使用 GAN 时,还应用了先前描述的成本函数。

FaceShifter 由两个网络组成。第一个是自适应嵌入集成网络 (AEINet)。它的目标是在保留另一个人的属性的同时,将一个人的身份从一张图片转移到另一张图片。为了完成这个任务,AEINet使用了前面章节中描述的两个组件,以及第三个组件——自适应注意力去标准化生成器,负责整合上述嵌入。为了避免由于简单拼接而产生模糊结果,开发者提出了一种名为AAD(自适应注意力去标准化)的层。他们的工作受到了SPADE [45] 和 AdaIN [46] 机制的启发。SPADE 引入了一种名为空间自适应标准化的新层,用于从语义布局合成照片般逼真的图像。在传统模型中,语义布局直接进入深度网络,并通过卷积、标准化和非线性层进行处理。然而,这通常导致语义信息被“冲刷掉”。SPADE 通过使用输入布局在标准化层数中通过空间自适应、学习的变换来调制激活,解决了这个问题。这导致图像更好地保留了语义输入,并允许用户控制生成图像的语义和风格方面。AdaIN 通过使用一种新颖的层,将内容特征的均值和方差与风格特征的均值和方差对齐,实现实时风格转换。传统的风格转换方法通常需要缓慢的迭代优化过程,并且通常与一组固定的风格绑定。AdaIN 克服了这些限制,允许任意风格转换,而不受预定义风格集的限制。此外,它提供了灵活的用户控件,如内容-风格权衡、风格插值以及颜色和空间控件,所有这些都使用单个前馈神经网络实现。

AAD 层的核心概念之一是动态改变身份嵌入和属性嵌入的有效区域,以便它们可以合成不同的面部特征。这种修改是通过使用去标准化在多个层次上整合特征来实现的。例如,身份嵌入应该集中在合成对识别身份最关键的视觉特征,包括眼睛、嘴唇和面部形状。因此,AAD 层采用了一种基于 Sigmoid 遮罩的注意力机制。

这个网络的成本函数包括四个函数。第一个是对抗性损失,由于使用了一个额外的鉴别器来解决合成样本的真实性而产生。为此,使用了一种多尺度鉴别器 [45]。另一个应用科学 2023, 13, 6711 8 的 17 是计算从身份编码器获取的包含交换身份的图像和给定身份的输入图像的两个向量的余弦相似性。同样,只使用 L2,比较属性提取器为不同空间维度的输出和输入包含属性信息。如果在训练期间将相同的样本输入,最终添加的成本是重建成本函数 —— 输出和输入之间的 L2 距离;否则,不包括这个成本。在 FaceShifter 的情况下,还引入了第二个模型 —— HEARNet(启发式错误确认细化网络),可以将其视为后处理。之所以实现它,是因为结果没有充分处理遮挡,而是经常模糊它们。它的架构是 U-Net,AEINet 的输出图片输入到输入。如果只有两个包含属性的图像输入到输入,则输入图像与 AEINet 的输出图像之间的差值输入到输入。

Ys,t = HEARNet(AEINet(Xs, Xt), (Xt - AEINet(Xt, Xt))), (1)

其中 Ys,t 表示交换身份的输出图像,Xs 表示包含身份信息的输入图像,Xt 表示包含属性信息的输入图像。结果是一个更好地处理遮挡的合成面部。在这部分的实现中使用了三个成本函数。与前面一样,使用了负责保留身份的成本函数 —— 余弦相似性。还有一个变化成本函数,计算输入和输出之间的 L1,旨在控制变化过多,以及之前也使用的重建函数,当 Xt = Xs 时,它以相同的原理工作 —— L2;否则,它是 0。此外,在预处理子段描述的数据集上,将随机生成的对象叠加在图像上以训练网络,通常用于遮挡。

SimSwap 算法的开发者将编码器、解码器和鉴别器作为生成器的一部分。编码器输入将在其上叠加面部的图像。用前面提到的预训练的 ArcFace 网络获得的身份特征被输入到编码器和解码器之间的属性向量中。为此,使用了修改过的残差块 [41] 和 AdaIN [46]。多尺度鉴别器 [47] 基于 patchGAN [48] 用作对抗。PatchGAN 是特定类型生成对抗网络(GAN)的鉴别器架构。它计算图像中每个 N × N 块是真实还是假。PatchGAN 鉴别器在图像上逐步卷积运行,而不是一次性评估整个图像,从而在块的尺度上惩罚结构不一致。然后,对所有块的响应进行平均以提供鉴别器的最终输出。

除了区分样本是真还是假之外,上述鉴别器还有另一个任务。为了更好地保留修改过的人照片的属性,引入了基于特征匹配的弱特征匹配损失,特征匹配起源于 pix2pixHD [47] ——这包括一张包含属性的照片,以及将重建的照片提供给鉴别器的输入。然后,仅使用鉴别器结构的最后几层,测量两种情况之间的 L1。通过增加使用的层数,可以增加对属性保留的强调;相反,通过减少使用的层数,可以增加对身份保留的强调。除了上面提到的对抗成本和弱特征匹配损失之外,还有三个成本函数。身份损失计算重建图像的身份编码器获得的向量与包含身份信息的输入之间的余弦相似性。另一个是重建损失,当输入照片属于同一个人时发生,从而计算重建照片和包含属性的照片之间的计数。最后一个是梯度惩罚成本 [49],旨在防止鉴别器中的梯度爆炸。梯度惩罚(GP)是在 Wasserstein GAN(WGAN-GP)中引入的正则化技术,用于执行 Lipschitz 约束,这对 Wasserstein GAN 的最佳性能至关重要。Appl. Sci. 2023, 13, 6711 9 的 17 HiFiFace 使用自适应实例归一化 [24,46] 的残差块组合上述获得的信息。语义面部融合模型还引入了一个额外的组件,以获得更高分辨率的合成图像并提高其真实性。在这个模块中,使用 HRNet [50] 从解码器输出预测一个面部遮罩。然后,使用残差块将此遮罩与编码器和解码器获得的信息融合。进一步获得融合信息,并根据先前获得的遮罩生成低分辨率图像。此外,如前所述,使用上采样生成融合,从而创建具有更高分辨率的遮罩和图像。不同的分辨率旨在影响编码器和解码器的专注度,这有助于将属性与身份分开。

算法中使用的成本函数分为两个主要子集:3D 形状感知身份损失和真实感损失。3D 形状感知身份损失成本函数包括:

  • 在 3D 形状感知身份提取器中连接的面部 3D 面部特征点的 L1 成本,以及较低分辨率和较高分辨率面部的输出。
  • 从源面部和两种分辨率的输出面部的身份向量提取器 [38] 获得的余弦相似度。

真实感损失包括以下内容:

  • 分割成本,即使用 HRNet 获取的包含属性的输入图像和两种分辨率输出的遮罩之间的 L1 距离。
  • 当输入图像中显示的人表示同一个人时发生的 L1 重建成本。它在包含属性的输入图像和两种分辨率的输出之间计算。
  • 循环损失 —— 通过在获得输出图像后对模型进行复用来获取,只需更改包含身份信息的人。在第二次迭代中,输出图像必须与第一次迭代中作为包含属性信息的图像相匹配。
  • 学习感知图像块相似性 [51] 用于提高真实感和捕捉细节。LPIPS通过从人类对图像相似性的判断中学习感知相似度度量而工作。它通过比较图像的块而不是整个图像来运作,从而捕获对感知相似性很重要的局部信息。图像块通过深度神经网络进行处理,特别是用于图像识别任务的 VGG 网络的变体。网络经过训练以预测人类做出的相似性判断。
  • 对抗性损失 [52] —— 源自用于提高真实感和捕捉细节的 GANs。总成本是上述成本函数之和。

如前所述,SberSwap 的 AEI-Net 基本架构借鉴了 FaceShifter [6]。与 FaceShifter 不同,开发者只使用了一种架构。此外,他们测试了 AAD(自适应注意力去标准化 —— 在描述 FaceShifter 时提到)块的最佳数量,并最终使用了两个。在成本函数中使用了 FaceShifter 已知的精确解决方案,并进行了一些修改。在负责重建的成本函数中,提出了 SimSwap [7] 中包含的解决方案,开发者为了激活这个成本函数,不要求输入图像相同,只需图像中表示的人相同即可。此外,他们引入了一种基于使用预训练检测器 [53] 比较包含属性的图像和输出图像的眼睛区域的 L2 特征的额外成本函数。

DiffFace 是一个基于噪声的迭代图像重建的扩散模型。在合成过程中操作这个噪声和条件组件导致生成属于模型 Appl. Sci. 2023, 13, 6711 10 的 17 训练的数据组的真实样本,但参数不同。作者使用 ID Conditional DDPM(扩散模型)、Facial Guidance 和 Target-Preserving Blending 指导生成过程。在扩散模型方面,根据定义,使用了 U-Net [40];在这种情况下,它基于 Wide ResNet [54]。自然,只有噪声在扩散模型中被近似,训练是基于它进行的。然而,在这种情况下,从基于源面部的身份提取器获得的一个向量被引入,以向模型添加诸如身份之类的条件。为了保留源身份,在每个训练步骤中,x0 的样本被近似,然后输入到身份特征提取器中,将结果向量与在条件下输入的面部特征向量进行比较,这为成本函数增加了另一个组件,即余弦相似度。在进一步的步骤中,为了引导模型保留投影面部的特征,引入了 Facial Guidance。在这方面,基于扩散模型的 x0 近似,每个组件在每个步骤中都计算梯度:身份引导、语义引导和注视引导。身份引导向量的余弦距离还可以防止在条件抽样过程中丢失身份特征,从而平衡保留被操纵面部的属性的另外两个组件。系统的最后一个组件是 Target-Preserving Blending,它处理了在面部合成过程中的背景保留。开发者在从面部解析器获得的遮罩中,从合成开始到扩散过程的特定步骤 T,逐渐将其强度从 0 增加到 1。当遮罩取值 1 时操纵起点,允许自适应控制和平衡身份特征与姿势、表情或面部形状等属性的行为。混合是与获得的目标硬遮罩的元素逐个产品的合成结果。

2.5. 后处理

大多数作者没有将后处理作为算法操作的一部分进行介绍。然而,提及其使用可能性以提高创建的深度伪造的复杂性是没有错的。在 Faceswap 的情况下,创建者为预览获得的结果和可能对交换面部进行的调整提供了特殊工具。这些工具包括改变颜色强度(在选定的调色板中平衡,包括 RGB 或 HSV)、亮度或对比度。此外,还添加了操作两个遮罩混合的方法。这包括盒子遮罩,它是一个包含要进行交换的面部的方形区域,以及面部遮罩,它是一个定义面部边缘的遮罩。盒子混合用于将生成的框的边缘混合到原始框中。遮罩混合用于将遮罩的边缘与原始框混合。作者提供了归一化滤波器和高斯滤波器。虽然高斯滤波器速度较慢,但通常能获得最佳结果。最后一个需要调整的设置是“缩放”,或者更准确地说,锐化。有时,需要缩放图像以适应最终的框架。工具还提供了人工锐化图像的选项。锐化是否能产生好的结果是个人口味问题,设置必须根据个案进行单独更改。

为了强调在方法中使用的最重要的算法,它们在表 1 中进行了总结。

DeepFaceLab 提出的面部交换方案在后处理阶段涉及多个步骤。首先,使用 Umeyama 的可逆性 [22] 将生成的面部及其掩模从交换的目标解码器转换到源中目标图像的原始位置。下一步涉及将重建的面部与目标图像进行混合,以实现沿外轮廓的平滑匹配。为确保肤色一致性,DeepFaceLab 提供了五种共享位置传输算法,这些算法将重建的面色的颜色近似到目标面色。这些算法分别是 RCT(Reinhard Color Transfer)[56],LCT(Linear Color Transfer),MKL(Monge–Kantorovitch Linear)[57],IDT(Iterative Distribution Transfer)[58]和 SOT(Sliced Optimal Transfer)[59]。泊松混合[55]无缝地混合不同的肤色、脸型和光照条件,尤其是在重建的面部与指定区域和目标面部相交的界面处。这种技术有助于确保混合区域具有视觉吸引力和真实感。FaceShifter 和 SimSwap 在他们的工作中没有使用任何形式的后处理。在 HiFiFace 和 DiffFace 中,混合是网络操作的一部分。与上述不同,GHOST-A 还包括去除在使用模型生成的图像周边出现的额外伪影。因此,这种校正具有重要意义,因为整个图像将用于操作。直接粘贴输出将导致所提到的伪影可见。利用分割掩模来识别属于面部的像素以及不属于面部的像素。这种方法有助于隔离面部区域并确保面部交换过程不影响图像的其他部分。另外,在生成的面部边缘应用高斯模糊,并在生成的面部和输入面部形状彼此差异较大的情况下引入掩模大小的操作。

2.6. 评估方法

面部交换通常使用两种评估方法:客观评估和主观评估。客观评估涉及使用某种度量形式量化输出与目标之间的差异或相关性。这些作品中使用的度量通常基于损失函数,例如 SSIM(结构相似性)[3],用于形状、姿势和表情的欧几里得距离 [3, 6-10],或 ID 检索 [6-10]。作为主观评估,开发者不实施附加测试。然而,作为回顾,在图 2 中根据 DiffFace 作者[10]提供的比较和我们的实验展示了描述的多对多算法的性能样本。

根据结果的主观评估,可以得出 DiffFace 在生成图像质量方面取得了最佳效果,这是扩散模型的一个特征。然而,需要注意的是,目前这些模型的速度明显低于其他模型。在比较基于 GAN 训练的其他模型时,可以观察到 SimSwap 在保留属性方面提供了最佳结果。不幸的是,这是以准确表示身份为代价的。由于应用了额外的后处理操作,Ghost-A 取得了高质量的结果。在传递身份方面,HiFiFace 取得了最佳结果。总之,每个模型都有其优点和缺点。DiffFace 提供了卓越的图像质量,但以速度为代价。SimSwap 在保留属性方面表现出色,但在保持身份方面存在困难。Ghost-A 在应用额外的后处理操作后显示出高质量的结果,HiFiFace 以其准确传递身份的能力而脱颖而出。未来的面部交换模型可以致力于结合这些优点以提高整体性能。

3.挑战

尽管神经网络能够很好地适应新的数据集,但所提供的算法会解决或产生额外的困难。训练数据不足可能是一个潜在的问题。在面部合成的情况下,深度神经网络算法通常需要更多的训练数据。算法开发者正在寻找将通用特征与通用属性区分开来,以便交换这些特性。这种策略提供了不需要高级标签的数据库的访问。大多数开发者使用不同的训练数据库,这对于性能比较并不理想。一对一和自动编码器方法需要独特的、单独的输入,尽管训练速度比其他应用程序更快。对于训练,多对多的 GAN 比扩散模型训练更快,尽管它们在性能质量上并不总是优越。作者还意识到在使用预训练的外部模型进行身份提取或面部解析时,训练数据的重要性。开发者使用一个足够泛化的模型,而不是在与转换器相同的数据集上进行训练。联邦学习可以帮助解决训练数据不足的挑战,因为它允许多个用户在本地协作训练模型而无需共享敏感数据,从而提高性能并避免数据隐私问题 [60]。

人类脸部的复杂性及其独特特征的出现是第二个困难。基于预先准备的模型的算法可能会忽略这些特征,从而产生异常的深度伪造。对于深度伪造生成算法来说,最具挑战性的任务之一是生成足够逼真的视觉效果,以欺骗观众。这种生成需要复杂的机器学习技术和对人类面部表情、身体动作和行为的全面理解。该算法必须学会如何将一个人的面部动作准确地映射到另一个人的面部上,同时保持相同的面部表情、唇动和其他细微特征,使图像或视频看起来真实。实现这种程度的真实感是复杂的,需要大量的时间、数据和处理资源投入。

所述方法缺乏内置功能,在操作过程中可访问更多数据以提高性能。它仅依赖于一个图像样本。开发这些类型的算法可以提高生成样本的质量。

深度伪造创建算法的另一个困难是确保生成的照片不包含伪影或缺陷,这可能会揭示它们的虚假特征。在生成具有高度操纵程度的图像时,这个问题至关重要,因为即使是轻微的错误也可能破坏幻觉并使图像或视频显得假。此外,系统必须考虑各种光照条件、相机角度、面部表情、遮挡和其他困难情况。面部交换算法的开发受到深度伪造检测技术不断发展的影响。随着新技术和工具的不断涌现,使用传统方法创建深度伪造变得越来越具挑战性;因此,必须开发新策略来跟上最新的进步。

4.结论

面部交换是一个充满前景且迅速扩展的研究领域,它有可能通过更准确地反映人类身份和特征来提高应用性能。尽管仍然存在需要解决的障碍,但给定的模型已经表现出在实现高交换效率和自然度方面的巨大潜力。这些技术在各种行业中具有潜在的应用,包括医学、娱乐业 [61]、教育 [62] 和军事领域。通过采用复杂系统(如滚动轴承故障诊断)的策略,条件加权转移Wasserstein自编码器为在多个源域之间传递知识提供了一种创新方法,从而在面部交换深度伪造的发展方面提供了有前景的进步 [63]。然而,另一方面,这些算法可能被不道德地使用 [64, 65]。然而,我们认为公开这些信息是更好的选择,因为它将帮助您了解您的对手。将这项技术整合到各个领域可以带来巨大的好处,如在视频游戏和动画电影中创建新的虚拟角色。面部交换是一个引人入胜的研究领域,将继续发展。第二部分对各种技术的算法的介绍,使人们可以从作者的角度来审视深度伪造问题。将它们的性能结果与所遇到的挑战相互比较,使人们对当前的前沿技术有了全球性的认识。本文阐述了使用深度学习技术进行面部交换的当前前沿技术。因此,它作为开发其他或可比策略的有益起点。

5.未来方向

对所提供方法的调查揭示了许多优于其他方法的解决方案。本文确定了一些有利的子解决方案,并建议选择最适用的方案以构建一个高效的方法。实施这些方法的计划包含在未来的工作中。此外,本文关于所使用的数据集以及评估方法的信息将为度量未来算法的有效性提供适当的标准。尽管算法开发者长期以来一直面临着面部交换的问题,但仍有许多方面需要研究。以下是一些:

  • 实时性能要求:在某些情况下,面部交换必须实时进行,这意味着算法必须执行得足够快,以便用户实时查看结果。因此,扩散模型仍需要发展。
  • 人类身份的复杂数字本质是一项相当困难的任务,因为它需要了解人类的多个方面。虽然所述方法仅限于图像,但转向时间域可能是未来的一个潜在方法。
  • 操作对我们的数据的适应性:算法的性能必须具有适应性。对于更高质量的数据,最终输出也必须相应适应。此外,如果不同用户之间的数据质量不同,系统也必须适应。
  • 为了实施面部交换算法,需要确定它们的性能。因此,算法设计者必须建立考虑多个识别特征的质量评估度量。
  • 满意的结果:特别是对于商业目的,面部交换结果的质量可能至关重要。算法开发者面临着确保算法的结果对客户有用的困难。

通过继续改进和研究这些挑战,未来的面部交换算法可能将在性能和质量方面实现显著提升,从而为各种应用和行业创造更多可能性。

参考文献

详情请去看原文,文中的引用标我都尽量保留了。

论文名称:Quick Overview of Face Swap Deep Fakes

链接:https://pdfs.semanticscholar.org/1a67/17bdf1ce758e6621de45616e5801631386c3.pdf

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值