专栏名称: FightingCV
一个专注于分享计算机视觉、多模态机器学习方向前沿论文,解答常见科研问题,分享好用科研工具的公众号。努力努力再努力,瑞思拜!
目录
相关文章推荐
51好读  ›  专栏  ›  FightingCV

多注意力深度伪造检测

FightingCV  · 公众号  ·  · 2024-11-02 09:52

正文

摘要

深度伪造的面部伪造在互联网上广泛传播,引起了严重的社会问题。 最近,如何检测这种伪造内容已成为一个热门研究课题,许多深度伪造检测方法被提出。 其中大多数将深度伪造检测建模为一个普通的二元分类问题,即首先使用一个主干网络提取一个全局特征,然后将其输入到一个二元分类器(真/假)中。 但是由于此任务中真实图像和假图像之间的差异通常是微妙且局部的,我们认为这种简单的解决方案并非最佳选择。 在本文中,我们改而将深度伪造检测表述为一个细粒度的分类问题,并提出一个新的多注意力深度伪造检测网络。 具体来说,它包括三个关键部分:1)多个空间注意力头,使网络能够关注不同的局部区域;2)纹理特征增强块,放大浅层特征中的细微伪影;3)在注意力图的引导下聚合低级纹理特征和高级语义特征。 此外,为了解决该网络的学习难度,我们进一步引入了一种新的区域独立损失和一种注意力引导的数据增强策略。 通过对不同数据集进行大量实验,我们证明了我们的方法优于简单的二元分类器,并取得了最先进的性能。 该模型将在近期发布在 https://github.com/yoctta/multiple-attention。

1 引言

得益于生成模型的巨大进步,深度伪造技术最近取得了显著成功,各种面部伪造方法 [19, 41, 21, 31, 32, 44, 28, 38] 被提出。 由于这些技术可以生成高质量的假视频,甚至连人眼都无法辨别真伪,因此它们很容易被恶意用户滥用,造成严重的社会问题或政治威胁。 为了减轻这些风险,许多深度伪造检测方法 [27, 34, 22, 33, 26, 45] 被提出。 它们中的大多数将深度伪造检测建模为一个简单的二元分类问题(真/假)。 基本上,它们通常首先使用一个主干网络来提取可疑图像的全局特征,然后将它们馈送到一个二元分类器中以区分真假。

图 1: 我们方法获得的多个注意力区域的示例。 注意力区域是分开的,并响应不同的判别特征。

但是,随着伪造品越来越逼真,真假之间的差异将变得更加微妙和局部,因此使这种基于全局特征的简单解决方案无法正常工作。 但实际上,这种微妙和局部的特性与细粒度分类问题有着相似的精神。 例如,在细粒度鸟类分类任务中,一些物种看起来非常相似,只有通过一些细微的局部差异才能区分开来,例如喙的形状和颜色。 基于此观察,我们建议将深度伪造检测建模为一个具有两个类别的特殊细粒度分类问题。

受细粒度分类领域中基于部件的模型成功的启发,本文提出了一种用于深度伪造检测的新型多注意力网络。 首先,为了使网络关注不同的潜在伪影区域,我们设计了多个注意力头,通过使用深层语义特征来预测多个空间注意力图。 其次,为了防止细微的差异在深层中消失,我们增强了从浅层获得的纹理特征,然后将低级纹理特征和高级语义特征聚合为每个局部部分的表示。 最后,每个局部部分的特征表示将由一个双线性注意力池化层独立池化,并融合为整个图像的表示。 1 给出了我们方法获得的判别特征的示例。

但是,训练这种多注意力网络并非易事。 这主要是因为,与可以使用视频级标签作为显式指导并以监督方式进行训练的单注意力网络 [6] 不同,多注意力结构只能以无监督或弱监督方式进行训练。 通过使用一种常见的学习策略,我们发现多注意力头会退化为单注意力对应物,即,只有一个注意力区域产生强烈的响应,而所有剩余的注意力区域都被抑制,无法捕获有用的信息。 为了解决这个问题,我们进一步提出了一种新的注意力引导数据增强机制。 具体来说,在训练期间,我们将故意模糊一些高响应注意力区域( soft attention dropping ),并迫使网络从其他注意力区域学习。 同时,我们引入了新的区域独立性损失,以鼓励不同的注意力头关注不同的局部部分。

为了证明我们的多注意力网络的有效性,我们在不同的现有数据集上进行了广泛的实验,包括 FaceForensics++ [34] 、Celeb-DF [25] 和 DFDC [9] 结果表明,我们的方法优于传统的二元分类基线,并取得了最先进的性能。 总之,本文的贡献如下:

  • 我们将深度伪造检测重新定义为一个细粒度分类任务,这为该领域带来了一个新颖的视角。

  • 我们提出了一种新的多注意力网络架构,以从多个面部注意力区域捕获局部判别性特征。 为了训练这个网络,我们还引入了一个区域独立性损失,并设计了一种注意力引导数据增强机制,以对抗学习的方式辅助网络训练。

  • 广泛的实验表明,我们的方法优于传统的二元分类基线,并取得了最先进的检测性能。

2 相关工作

人脸伪造检测是计算机视觉和图形学中的一个经典问题。 最近,深度生成模型的快速发展使得人脸伪造技术“深入”并能生成逼真的结果,这带来了深度伪造检测的新问题,并带来了重大挑战。 大多数深度伪造检测方法将该问题作为传统的二元分类来解决,然而,伪造人脸的细微和局部修改使其更类似于细粒度视觉分类问题。

2.1 深度伪造检测

由于人脸伪造对社会安全构成巨大威胁,因此开发有效的反制措施至关重要。 许多工作 [46, 23, 4, 53, 34, 22, 33, 26, 45, 43] 已被提出。 早期工作 [46, 23] 通过视觉生物特征检测伪造,例如不自然的眨眼或不一致的头部姿势。

随着基于学习的方法成为主流,一些工作 [53, 34] 提出了从空间域提取特征的框架,并在特定数据集上取得了优异的性能。 最近,新兴方法已经考虑了更多数据领域。 [45] 通过空间、隐写分析和时间特征检测篡改的人脸。 它添加了一个简化 Xception 流,带有一个受限卷积层和一个 LSTM。 [26] 使用一个双分支表示提取器,使用多尺度高斯拉普拉斯 (LoG) 算子来组合来自颜色域和频率域的信息。 [33] 使用频率感知分解和局部频率统计来揭示频率域中的深度伪造伪影,并取得了最先进的性能。

大多数现有方法将深度伪造检测视为一个通用的二元分类问题。 它们侧重于如何构建复杂的特征提取器,然后进行二分法来区分真实和假人脸。 但是,逼真的伪造物给这种二元分类框架带来了重大挑战。 在本文中,我们根据它们的相似性将深度伪造检测问题重新定义为一个细粒度分类问题。

图 2: 我们方法的框架。 三个组件在我们的框架中起着重要作用:一个用于生成多个注意力图的注意力模块、一个用于提取和增强纹理信息的纹理增强块以及一个双向使用的双线性注意力池,用于聚合纹理和语义特征。

2.2 细粒度分类

细粒度分类 [50, 49, 13, 37, 12, 52, 47, 17, 10] 是计算机视觉中的一项具有挑战性的研究任务,它捕捉局部判别性特征以区分不同的细粒度类别。 该领域的研究主要集中在以弱监督的方式定位判别性区域和学习多样化的互补部分集合。 之前的工作 [50, 49] 建立了部分模型来定位物体,并将物体和语义部分同等对待。 最近,一些工作 [52, 47, 10] 在多注意力框架下被提出,这些方法的核心思想是同时学习多个尺度或图像部分的判别性区域,并鼓励这些来自不同区域的特征融合。 此外, [17] 设计了注意力裁剪和注意力丢弃来获得更平衡的注意力图。 在本文中,我们首次将深度伪造检测建模为一种特殊的细粒度分类问题。 它在学习微妙和判别性特征方面具有相同的精神,但只涉及两个类别:真和假。

3 方法

3.1 概述

在本节中,我们将首先说明设计的动机,并简要概述我们的框架。 如前所述,真假人脸之间的差异通常很微妙,并且发生在局部区域,这不容易被单一注意力的结构化网络捕获。 因此,我们认为将注意力分解成多个区域可以更有效地收集用于深度伪造检测任务的局部特征。 同时,全局平均池化(当前深度伪造检测方法普遍采用)在我们的框架中被局部注意力池化所取代。 这主要是因为纹理模式在不同区域之间差异很大,从不同区域提取的特征可能会被全局池化操作平均,从而导致可区分性损失。 另一方面,我们观察到由伪造方法引起的细微伪影往往保留在浅层特征的纹理信息中。 这里,纹理信息代表浅层特征的高频成分,就像 RGB 图像的残差信息一样。 因此,应该更加关注并增强浅层特征,而这在当前最先进的检测方法中尚未得到考虑。

受这些观察结果的启发,我们提出了一种多注意力框架,将深度伪造检测问题视为细粒度分类问题来解决。 在我们的框架中,三个关键组件被整合到主干网络中:1)我们采用了一个注意力模块来生成多个注意力图。 2)我们使用密集连接的卷积层 [18] 作为纹理增强块,它可以从浅层特征图中提取和增强纹理信息。 3)我们用双线性注意力池化( BAP )替换全局平均池化。 并且我们使用 BAP 从浅层收集纹理特征矩阵,并保留深层语义特征。 我们方法的框架如图 2 所示。

图 3: 注意力模块的结构以及获得纹理特征矩阵 P 的过程。 采用提出的归一化平均池化代替全局平均池化。

与基于单注意力结构的网络不同,单注意力结构网络可以将视频级标签作为显式指导进行训练,而基于多注意力的网络由于缺乏区域级标签,只能以无监督或弱监督的方式进行训练。 这可能导致网络退化,多个注意力图关注相同的区域,而忽略了其他可能也提供区分性信息的区域。 为了解决这个问题,我们专门设计了一个区域独立性损失,其目的是确保每个注意力图关注一个特定的区域,而不会重叠,并且关注的区域在不同的样本之间是一致的。 此外,我们采用注意力引导数据增强( AGDA )机制来降低最具区分性特征的显著性,并迫使其他注意力图挖掘更多有用的信息。

3.2 多注意力框架

将网络的输入人脸图像表示为 I ,将我们框架的主干网络表示为 f ,从 t 层中间阶段提取的特征图表示为 f t ( I ) ,大小为 C t × H t × W t 这里, C t 是通道数, H t , W t 分别是特征图的高度和宽度。

多个注意力图生成。 如上所述,给定一个真实/假脸图像 I 作为输入,我们的框架首先使用一个注意力块为 I 生成多个注意力图。 如图 3 所示,注意力块是一个轻量级模型,它包含一个 1 × 1 卷积层、一个批归一化层和一个非线性激活层 ReLU。 从特定层 S L a 提取的特征图将被馈送到这个注意力块,以获得 M 个大小为 H t × W t 的注意力图 A ,其中 A k R { H t × W t } 代表第 k 个注意力图,对应于一个特定的判别区域,例如,眼睛、嘴巴或甚至在 [22] 中定义的混合边界。 S L a 的确定将在第 4 节中讨论。

纹理特征增强。 大多数深度伪造检测的二元分类框架都没有关注一个重要现象,即伪造方法造成的伪影通常在浅层特征图的纹理信息中很突出。 这里的纹理信息代表浅层特征的高频分量。 因此,为了保留更多纹理信息以捕获这些伪影,我们设计了一个纹理特征增强块,如图 3 所示。 我们首先应用局部平均池化在块中对特定层 S L t 的特征图进行下采样,并获得池化后的特征图 D 。 如何选择 S L t 将在下面的实验部分讨论。 然后类似于空间图像的纹理表示,我们在特征级别定义残差来表示纹理信息,如下所示:



这里 T 包含了 f S L t ( I ) 的大部分纹理信息。 然后我们使用一个具有 3 层的密集连接卷积块来增强 T ,输出记为 F R C F × H s × W s ,它被定义为“纹理特征图”。

双线性注意力池化。 在得到注意力图 A 和纹理特征图 F 后,我们使用双线性注意力池化 (BAP) 来获得特征图。 我们双向使用 BAP 来提取浅层特征图和深层特征图。 如图 3 所示,为了提取浅层纹理特征,我们首先使用双线性插值将注意力图调整到与特征图相同的尺寸(如果它们不匹配)。 然后,我们分别对纹理特征图 F 与每个注意力图 A k 进行逐元素相乘,得到部分纹理特征图 F k

在这一步结束时,部分纹理特征图 F k 应该在全局池化后被送入分类器。 但是,考虑到不同区域范围之间的差异,如果使用传统的全局平均池化,则池化特征向量将受到注意力图强度的影响,这违背了关注纹理信息的初衷。 为了解决这个问题,我们设计了一个归一化平均池化:



然后将归一化注意力特征 v k R 1 × N 堆叠在一起得到纹理特征矩阵 𝐏 R M × C F ,该矩阵将被送入分类器。

至于深层特征,我们首先将每个注意力图拼接起来,得到一个单通道注意力图 A s u m 然后我们使用 BAP 对 A s u m 和网络最后一层的特征图进行处理,得到全局深层特征 𝐆 ,该特征也将被送入分类器。

3.3 注意力图正则化的区域独立损失

如前所述,训练一个多注意力网络很容易陷入网络退化的状态,因为缺乏细粒度的标签。 具体来说,不同的注意力图倾向于关注相同的区域,如图 4 所示,这不利于网络捕获给定输入的丰富信息。 此外,对于不同的输入图像,我们希望每个注意力图都位于固定的语义区域,例如,注意力图 A 1 关注不同图像中的眼睛, A 2 关注嘴巴。 因此,每个注意力图捕获的信息的随机性将被降低。

为了实现这些目标,我们提出了一种区域独立损失,它有助于减少注意力图之间的重叠,并保持不同输入的一致性。 我们在第 3.2 节中获得的池化特征图 D 上应用 BAP 来获取“语义特征向量”: V R M × N ,区域独立损失的定义如下,通过修改 [15] 中的中心损失:



其中 B 是批次大小,M 是注意力的数量, m i n 表示特征与其对应特征中心的边距,当 y i 0 1 时,它被设置为不同的值。 m o u t 是每个特征中心之间的边距。 c R M × N V 的特征中心,它定义如下并在每次迭代中更新:



这里 α 是特征中心的更新速率,我们在每个训练 epoch 后衰减 α L R I L 的第一部分是类内损失,它将 V 拉近到特征中心 c ,第二部分是类间损失,它排斥分散的特征中心。 我们通过计算每个批次的 V 的梯度来优化 c 考虑到假脸的纹理模式应该比真脸的纹理模式更加多样化,因为假脸是由多种方法生成的,因此我们将假脸的部分特征限制在离真脸特征中心较远的邻域内,但边距更大。 通过这种方式,我们在类内给出一个更大的边距,用于在假脸上搜索有用信息。

对于我们框架的目标函数,我们将此区域独立损失与传统的交叉熵损失相结合:







C E
是交叉熵损失, λ 1 λ 2 是这两项的平衡权重。
默认情况下,我们在实验中设置 λ 1 = λ 2 = 1

3.4 注意力引导数据增强

在区域独立损失的约束下,我们减少了不同注意力区域的重叠。 然而,尽管不同的注意力区域可以很好地分离,但注意力图仍然可能对相同的判别特征做出响应。 例如,在图 5 中,注意力区域没有重叠,但它们都强烈地响应了输入面部的特征点。 为了迫使不同的注意力图关注不同的信息,我们提出了注意力引导数据增强 ( AGDA ) 机制。

对于每个训练样本,随机选择一个注意力图 A k 来指导数据增强过程,并将其归一化为增强图 A k R H × W 然后,我们使用高斯模糊来生成一个降级图像。 最后,我们使用 A k 作为原始图像和降级图像的权重:



注意力引导的数据增强有助于从两个方面训练模型。 首先,它可以给某些区域添加模糊,从而确保模型从其他区域学习更稳健的特征。 或者,AGDA 可以随机擦除最显著的区分区域,这迫使不同的注意力图将它们的响应集中在不同的目标上。 此外,AGDA 机制可以防止单个注意力区域过度扩展,并鼓励注意力块探索各种注意力区域划分形式。

Candidate of S L t Candidate of S L a ACC(%)
L2 L4 96.38
L2 L5 97.26
L3 L4 96.14
L3 L5 96.81
表 1: 我们方法基于 S L t S L a 的不同组合的性能。

4 实验

在本节中,我们首先探索了我们提出的多注意力框架的最佳设置,然后展示了大量实验结果来证明我们方法的有效性。

4.1 实现细节

对于所有真实/假视频帧,我们使用最先进的面部提取器 RetinaFace [8] 来检测面部并将对齐的面部图像保存为大小为 380 × 380 的输入。 我们在公式 4 中设置超参数 α = 0.05 ,并在每个 epoch 后衰减 0.9。 公式 3 中的类间边距 m o u t 设置为 0.2。 类内边距 m i n 分别设置为 0.05 和 0.1,分别用于真实图像和假图像。 我们通过实验选择注意力图的数量 M S L a S L t 在 AGDA 中,我们将调整大小因子设置为 0.3 并使用高斯模糊 σ = 7 我们的模型使用 Adam 优化器 [20] 训练,学习率为 0.001,权重衰减为 1e-6。 我们在 4 个 RTX 2080Ti GPU 上训练我们的模型,批次大小为 48。

4.2 确定 S L a S L t

在本文中,我们采用 EfficientNet-b4 [39] 作为我们多注意力框架的主干网络。 EfficientNet-b4 能够以仅一半的 FLOPs 达到与 XceptionNet [3] 相当的性能。 EfficientNet 总共有 7 个主要层,分别表示为 L1-L7。

如上所述,我们观察到细微的伪影往往会被网络浅层中的纹理特征保留,因此我们选择 L2 和 L3 作为 S L t 的候选。 相反,我们希望注意力图关注输入的不同区域,这在一定程度上需要高级语义信息的指导。 因此,我们使用更深的阶段 L4 和 L5 作为 S L a 的候选。 通过默认设置 M = 1 ,我们在 FF++(HQ) 上训练了四种组合的模型。 从表 1 中的结果可以看出,当使用 L2 作为 S L t 和 L5 作为 S L a 时,模型的性能最佳。

Methods LQ HQ
ACC AUC ACC AUC
Steg.Features [11] 55.98 - 70.97
LD-CNN [5] 58.69 - 78.45 -
MesoNet [1] 70.47 - 83.10 -
Face X-ray [22] - 61.60 - 87.40
Xception [3] 86.86 89.30 95.73 96.30
Xception-ELA [14] 79.63 82.90 93.86 94.80
Xception-PAFilters [2] 87.16 90.20 - -
F 3 -Net [33] 90.43 93.30 97.52 98.10
Two Branch [26] - 86.59 - 98.70
EfficientNet-B4 [39] 86.67 88.20 96.63 99.18
Ours(Xception) 86.95 87.26 96.37 98.97
Ours(Efficient-B4) 88.69 90.40 97.60 99.29
表 2: 在 FaceForensics++ 数据集上分别使用高质量和低质量设置进行定量比较。 最佳性能用粗体标记。

4.3 与先前方法的比较

在本节中,我们将我们的框架与当前最先进的深度伪造检测方法进行比较。 我们分别评估了 FF++ [34] 和 DFDC [9] 上的性能。 我们在第 4 节进一步评估了 Celeb-DF [25] 上的跨数据集性能。 我们采用 ACC(准确率)和 AUC(接收者操作特征曲线下的面积)作为广泛实验的评估指标。

4.3.1 FaceForensics++ 上的评估

FaceForensics++ [34] 是许多深度伪造检测方法中最常用的数据集,它包含来自互联网的 1000 个原始真实视频,每个真实视频对应 4 个伪造视频,这些伪造视频分别由 Deepfakes、NeuralTextures [40] 、FaceSwap [48] 和 Face2Face [41] 操纵。 在训练过程中,我们对原始帧进行 4 倍扩充以实现真实/虚假标签平衡。 我们采用 EfficientNet-B4 作为我们框架的主干,并分别测试了 HQ(c23)版本和 LQ(c40)版本的性能。 特别地,当我们在 LQ 上训练我们的模型时,参数由在 HQ 上预训练的参数初始化以加速收敛。 比较结果列于表 2 中。

2 中的结果表明,我们的方法在 FF++ 的 HQ 版本上取得了最先进的性能。 不同主干的性能验证了我们的框架不受主干网络的限制。 然而,与 F 3 -Net [33] 相比,LQ 版本的性能下降了 1.5%,因为 F 3 -Net 是一种专门为高压缩深度伪造视频检测而设计的方法。 这主要是因为 FF++(LQ) 中的视频高度压缩,导致纹理信息大量丢失,这对我们的纹理增强设计来说是一个灾难。 结果还揭示了我们框架的一个局限性,即我们的框架对高压缩率很敏感,高压缩率会模糊空间域中的大多数有用信息。 我们将在未来使我们的框架对压缩更健壮。

4.3.2 在 DFDC 数据集上评估

DeepFake Detection Challenge (DFDC) 是最近发布的规模最大的深度伪造检测数据集,该数据集在 Facebook 于 2020 年组织的 Deepfake Detection Challenge 中公开发布。 目前,它是深度伪造检测任务中最具挑战性的数据集,因为该数据集中的伪造视频具有极高的伪造质量。 很少有先前的研究在该数据集上进行,因此我们在该数据集的训练集上训练我们的模型,并且只将对数损失分数与 DFDC 竞赛中获胜团队的方法进行比较。 这里提供的对数损失分数是在 DFDC 测试集上计算的 (参考 表 2 of [9] ),它是 DFDC 私人集的一部分。 对数损失越小,性能越好。 3 中的结果表明,我们的框架在 DFDC 数据集上取得了最先进的性能。

Method Logloss
Selim Seferbekov [35] 0.1983
WM [51] 0.1787
NTechLab [7] 0.1703
Eighteen Years Old [36] 0.1882
The Medics [16] 0.2157
Ours 0.1679
表 3: 与 DFDC 获胜团队方法在 DFDC 测试数据集上的比较。 我们以 WM 团队的身份参加了比赛。

4.3.3 在 Celeb-DF 上进行跨数据集评估

在这一部分,我们评估了我们框架的可迁移性,该框架是在 FF++(HQ) 上训练的,使用多种伪造方法,但在 Celeb-DF [25] 上进行测试。 我们为每个视频随机抽取 30 帧来计算帧级 AUC 分数。 结果如表 4 所示。 我们的方法显示出比大多数现有方法更好的可迁移性。 双分支 [26] 在可迁移性方面取得了最先进的性能,然而,其数据集内 AUC 远远落后于我们的方法。

Method FF++ Celeb-DF
Two-stream [53]






请到「今天看啥」查看全文


推荐文章
反腐前沿  ·  勇敢示爱!小编送你过节指南~
8 年前
奔波儿灞与灞波儿奔  ·  无意间撞破了老板的小秘密。笑成傻逼!
7 年前