deepfake检测—CVPR2023—Implicit Identity Leakage: The Stumbling Block to Improving Deepfake Detection Generalization


CVPR 2023论文
代码:https://github.com/megvii-research/CADDM
论文:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10204669
信任每一个公开代码的检测方法!
代码解析:https://blog.csdn.net/JustWantToLearn/article/details/138773005

0 前言必看!

这篇论文一口气读完非常舒服,提出假设,验证假设,解决问题。
模型的输入是整张人脸,默认模型会提取很多人物本身特征,各种检测模型的提出就是为了强制这个模型去关注伪影、不正常部分。但是作者证明了模型提取特征中人物ID信息的重要以及对结果的影响!
质疑:【个人看法】
1、如果说因为人物ID信息影响模型跨数据集能力,那是不是就说明数据集本身有偏见?只要数据集够大,包含的ID人物够多,就可以更好的检测?
2、后续关于deepfake检测的创新点会不会偏重于 数据集包含人物、场景应更加复杂【模型会更鲁棒】,deepfake检测模型应自监督强制模型去关注造假部分(思维发散:但这样对于diffusion造假检测能力会下降)

关于提出的模型部分,但看论文会一头雾水,后续我会结合代码进行理解。

1 研究动机

对于训练良好的深度假检测二分类器,我们发现其泛化能力的绊脚石是由于错误地学习了图像上的身份表示。如图 (a)所示,deepfake图像通常是通过将源图像的人脸替换为目标图像的人脸来生成的。然而,我们注意到合成假图像的过程可能会导致ID表示的信息丢失。假图像的身份不能被认为与其目标图像或源图像相同。特别是,当目标图像的面部与假图像的面部交换回来时,很明显目标图像的身份发生了改变。
在深度伪造检测模型中,基于身份,假图像和真图像之间存在一个隐式的决策边界。在训练阶段,二元分类器可能会意外地将某些身份组视为真身份,而将其他身份组视为假身份。当在跨数据集评估上进行测试时,这种有偏见的表示可能会被二元分类器错误地使用,导致基于图像面部外观的错误判断。在本文中,我们在各种主干的二元分类器中定性和定量地验证了这种现象(称为隐式身份泄漏)。
在这里插入图片描述

2 解决方法

在此基础上,我们提出了一种简单有效的方法,即不识别深度伪造检测模型,以减少隐式身份泄漏的影响。直观地说,通过强迫模型只关注图像的局部区域,会减少对全局身份信息的关注。因此,我们设计了一个基于锚点的检测器模块,称为伪迹检测模块(Artifact Detection module),来引导我们的模型关注局部伪迹区域。期望这样的模块能够使用多尺度锚点检测图像上的伪像区域,每个锚点被分配一个二进制标签来指示该伪像是否存在。通过对伪迹区域进行局部化并对多尺度锚点进行分类,我们的模型学会了在更精细的层面上区分局部伪迹区域和局部真迹区域之间的差异,从而减少了对全局身份信息的误用。
1、我们发现仅由二值标签监督的深度伪造检测模型对图像的身份信息非常敏感,本文将其称为隐式身份泄漏。
2、我们提出了一种简单而有效的方法,称为ID- aware Deepfake Detection Model,以减少ID表示的影响,成功地优于其他最先进的方法。
3、我们进行了大量的实验来验证隐式身份泄漏现象,并证明了我们的方法的有效性。

3 以往工作缺点

1、泛化性差
2、when forgeries do not contain specific artifacts that are introduced in the training phase, they often fail to work well.【英文更容易理解】

4 方法流程

虽然身份信息在对模型进行数据集内评估测试时增强了真假图像之间的差异,但在跨数据集评估上往往会误导模型。

在本节中,我们进行了彻底的实验来验证这一假设。首先,我们进行ID线性分类实验,以验证二元分类器在训练阶段捕获身份信息。其次,我们分别量化了这种ID表示对数据集内评估和跨数据集评估的影响,以验证其对深度假检测任务的影响。

4.1 验证ID表示的存在

  • 假设1:在没有明确监督的情况下,deepfake数据集中的ID表示在训练阶段被二元分类器意外捕获。

在本节中,我们进行了ID线性分类实验,以验证二元分类器意外地学习了图像上的ID表示。
首先对从分类器中提取的冻结特征进行了微调,以评估学习到的ID表示的泛化性。给定一个在FF++上训练的二元分类器,我们测量了从FF++、celeb-df和人脸识别数据集LFW中提取的特征对身份的线性分类精度。
具体来说,我们将输入特征冻结到ResNet-18/34/50、Xception和efficiency -b3的最后一个线性层,以证明这种现象的普遍性。从图2可以看出,不同分类器对特征的线性分类有不同程度的收敛,对身份分类取得了不同程度的准确率。
在这里插入图片描述
二元分类器在冻结特征上的ID线性分类。
这样的结果也表明,尽管分类器以前从未在Celeb-DF和LFW上进行过训练,但它们仍然从图像中提取了关于身份的大量信息,特别是在强骨干(例如,Efficient-b3)上。即使没有明确的身份标签监督,不同主干的二元分类器也可以学习图像的ID表示。

4.2 量化ID表征的影响

  • 假设2:虽然意外学习的ID表示可能会增强数据集内评估的性能,但它往往会在跨数据集评估上误导模型。

在验证了二元分类器特征中ID表示的存在性之后,我们进行了另一个实验来验证其在深度伪造检测中的效果。
关键的挑战是如何定量地将二值分类器的输出归为输入图像的ID表示
图像的身份不是由每个图像区域单独决定的,例如嘴、眼睛和鼻子。相反,这些区域通常会相互协作,形成一定的模式,例如输入图像的身份。因此,我们使用多元交互度量来量化ID表示的影响。这样的度量可以被认为是从输入图像的输出分数中分离出来的归属分数,它被分配给多个单元的交互。设 N = 1 , 2 , 3 , … , n N ={1,2,3,…, n} N=1,2,3n表示输入图像的所有单元。由单位 S ⊂ N S\subset N SN的子集引起的多元交互作用计算为

在这里插入图片描述

ϕ ( [ S ] ∣ N [ s ] ) \phi ([S]|N_{[s]}) ϕ([S]N[s])表示denotes the Shapley value [57] of the coalition [ S ] [S] [S],表示 [ S ] [S] [S]对输出分数的贡献。 ϕ ( i ∣ N i ) \phi (i|N_{i}) ϕ(iNi)为单位 i i i的Shapley值,表示单位 i i i的贡献。
N S = N / S ∪ [ S ] N_S = N/S\cup {[S]} NS=N/S[S], N i = N / i ∪ { i } N_i = N/i\cup \left \{ i \right \} Ni=N/i{i}

在实践中,为了降低计算成本,我们从每个视频中采样5帧,并将输入图像分成16 × 16个网格。 S S S在实验中被设置为 S = N S = N S=N,因为作为deepfake检测的通用协议,输入人脸通常被裁剪和对齐以扩展整个图像。这样,我们使用 I ( [ N ] ) I([N]) I([N])作为每张图像的分数,并计算帧级AUC来显示ID表示的效果。
在这里插入图片描述

结果如表1所示。我们使用ResNet-18/34/50、Xception和efficiency -b3作为分类器的主干,以阐明ID表示对深度伪造检测模型的广泛影响。所有分类器都在FF++上进行训练。总的来说,在数据集内评估过程中进行测试时,所有分类器的AUC都> 0.5,表明对真假图像差异的增强。相反,在跨数据集评估过程中,所有分类器的AUC都< 0.5,这表明ID表示存在误导。这样的结果验证了我们的假设。

4.3 无身份识别深度伪造检测模型

4.3.1 动机

人们普遍认为,目标检测模块关注图像的局部区域,而不是全局表示。受局部区域通常不能反映图像身份这一事实的启发,我们在模型中设计了伪迹检测模块,将重点放在图像上的局部伪迹区域,从而减少对全局身份的关注。通过防止我们的模型学习图像的全局ID表示,可以减少隐式身份泄漏的影响。
此外,为了便于伪迹检测模块的训练,我们提出了多尺度面部交换方法,以伪迹区域位置的地面真值生成假图像,这也丰富了训练阶段的伪迹特征。

4.3.2 Artifact Detection Module(ADM)

Artifact Detection Module工件检测模块(ADM)的整体架构如图所示。
ADM以提取的主干特征作为输入,基于多尺度锚点检测伪像区域的位置。具体来说,在主干的末端,添加了四个不同尺度的额外层,其中特征图的大小在元组之后减小(7×7, 5×5, 3×3, 1×1)。在训练阶段,将多尺度检测模块放置在前三层之后,使用图像上的多尺度默认锚点检测假图像上的伪区域。
每个特征地图网格与输入图像上不同尺度的多个默认锚相关联。多尺度检测模块在每增加一层后增加一个检测器和一个分类器,输出类别的位置偏移量(N × 4)和置信度(N × 2),即假锚或真锚)用于图像上的每个默认锚。如果锚框与伪区域的地面真值之间的交集(Intersection over Union, IoU)大于阈值,则默认锚框被标注为假锚。此外,ADM的最终1 × 1特征映射与主干的末端建立了一个短连接,这进一步丰富了ADM学习到的工件特征。然后将其输出馈送到一个完全连接的层中以生成最终的预测。总而言之,ADM决定了在多尺度锚点中是否存在伪影区域。这样的架构有助于我们的模型减少对图像上的全局身份特征的关注,减少隐式身份泄漏的影响。
overall framework

4.3.3 Multi-scale Facial Swap(MFS)

MFS

多尺度换脸伪迹检测模块的训练需要对图像上的伪迹区域进行精细和局部的位置标注,通常在公开的deepfake数据集中是不可用的[36,56]。为此,我们提出了多尺度面部交换(Multi-scale Facial Swap, MFS)方法,**该方法使用多尺度滑动窗口和不同的混合函数来创建新的假图像,并对伪图像区域进行位置标注。**此外,新的假图像也进一步丰富了训练集中的伪特征。MFS过程如图所示。为了生成带有伪图像区域位置注释的新伪图像,MFS通过全局交换和部分交换两种方式对成对的伪图像和源图像进行处理。在局部交换过程中,MFS首先选择一个随机大小的滑动窗口来定位伪图像区域。为了找到伪影最有可能存在的局部区域,滑动窗口通过以下公式进行选择:

在这里插入图片描述

译文:其中 D S S I M ( ⋅ ) DSSIM(·) DSSIM()表示结构不相似性,其值越大通常表明该区域更有可能包含人工制品。 x , y x,y x,y表示滑动窗口在图像上的top-left位置。 h , w h,w h,w表示滑动窗口的高度和宽度。如果, I F , I S I_F,I_S IF,IS表示假图像和源图像。基于选择的滑动窗口,然后我们计算一个掩码M来生成新的假图像。具体来说,我们通过裁剪假图像上的滑动窗口区域来获得伪图像区域的ground truth,并生成新的假图像 I F ′ I^{'}_F IF如下:
在这里插入图片描述
其中 B L E N D I N G ( ⋅ ) BLENDING(·) BLENDING()表示不同的混合方法(例如泊松混合和alpha混合)。以alpha混合为例: I F ′ = I F ∗ M + I S ∗ ( 1 − M ) I^{'}_F = I_F*M+I_S*(1-M) IF=IFM+IS(1M) , I F ′ I^{'}_F IF的伪影区域位置为 [ x t , y t , x t + h , y t + w ] [x_t, y_t, x_t +h, y_t + w] [xt,yt,xt+h,yt+w]。在全局交换的过程中,滑动窗口的大小等于源图像。如图4所示,MFS生成类似于FaceX-ray的新的假图像,也提供了更多样化的具有弹性变形的人脸区域。总的来说,通过多尺度滑动窗口和不同的混合方法,MFS生成的假图像具有伪影区域位置的地面真实性。它支持了我们模型的训练,并进一步丰富了数据集中的伪影特征。

4.3.4 Loss Function

总体损失函数是全局分类损失 L c l s L_{cls} Lcls和检测损失 L d e t L_{det} Ldet的加权和,
在这里插入图片描述

其中 β \beta β是一个正标量,它控制 L c l s L_{cls} Lcls L d e t L_{det} Ldet之间的权衡。

L c l s L_{cls} Lcls是衡量最终预测的准确性的交叉熵损失,即假或真图像。 L d e t L_{det} Ldet是指导ADM学习的检测损失,它包含置信度损失(confidence loss, L c o n f L_{conf} Lconf)和位置损失(location loss, L l o c L_{loc} Lloc L c o n f L_{conf} Lconf是二值交叉熵损失,用来衡量每个锚点(即假锚点或真锚点)的预测结果。 L l o c L_{loc} Lloc是平滑L1损失,用于测量ADM预测与伪影区域的地面真值之间的位置偏移。
在这里插入图片描述

N N N为正锚盒数,即假锚盒数; x ∈ { 0 , 1 } x\in \left \{ 0,1 \right \} x{0,1}是将默认锚与神器区域的地面真值匹配的指标; c c c表示类置信度; l , g l,g l,g表示ADM预测框和伪影区域地面真值框; α \alpha α表示正权。

5 实验

5.1 数据集

  1. FF++数据集,下载链接:https://github.com/ondyari/FaceForensics
    包含4320个视频,720个从YouTube收集的原创视频和3600个由FaceShifter、FaceSwap、Face2Face , Deepfakes ,NeuralTextures造假数据 。
  2. DFDC-V2:kaggle上下载
    包含2500个真实视频和2500个虚假视频。(DFDC-V2被广泛认为是最具挑战性的数据集,因为它的真实视频接近生活,而其伪造视频中的伪影区域比其他数据集小)
  3. Celeb-DF:https://github.com/yuezunli/celeb-deepfakeforensics
    包括178个真实视频,所有假视频仅由一种伪造算法生成

5.2 实验细节

在训练阶段,批大小设置为128,图像大小设置为224 × 224。MFS滑动窗口尺度从[40,80],[80, 120],[120, 160],[224, 224]。
所有图像都通过检测器提取的人脸地标进行对齐,使用常规数据增强(DA)来进一步改进模型泛化,如随机裁剪、高斯模糊/噪声和JPEG压缩。
选择在ImageNet上预训练的常用分类模型作为模型主干包括ResNet-34和EfficientNet-b3/b4。总epoch数设置为200,每个epoch有512个随机选择的mini-batch。损失函数中的α和β默认设置为1和0.1。初始化时学习率设为3.6 × 10-4,在epoch 10和epoch 20分别降为1 × 10-4和5 × 10-5进行微调。使用Adam作为优化器。在推理过程中,我们从每个视频中以相等的间隔选择32帧,使用deepfake检测视频级AUC跟随[来报告检测器性能。

5.3 实验分析1—我们的模型 VS二元分类器(在隐式身份泄漏现象方面)

将我们的模型与二元分类器在隐式身份泄漏现象方面进行比较,以证明我们的模型缓解了这一问题。

每个模型都使用了effentnet -b3作为公共主干,并在FF++数据集上进行了训练。
随机抽取了100张具有10个身份的图像,并使用t-SNE将从不同模型的最后一层提取的高维特征在2D中可视化。每个点代表一张图像的特征。不同的点标记表示具有不同身份的图像的特征。在图a(左)中,数据集内评估上,二值分类器成功区分了假图像和真实图像之间的差异。然而,不同身份的特征在视觉上是可分离的,这说明二值分类器部分学习到了图像的身份信息。当在Celeb-DF中进行测试时,如图a(右)所示,这些关于身份信息的不必要的知识往往会被二元分类器滥用,从而影响其性能。

在这里插入图片描述
相比之下,在对我们的模型进行数据集中评估时(图c(左)),不同身份的特征在视觉上是不可分割的,并且彼此重叠,这表明我们的模型减少了隐式身份泄漏的影响。在Celeb-DF中进行测试时(图c(右)),我们的模型通过检测受身份信息影响较小的伪像区域来指示假图像,并且仍然大致区分了假图像和真实图像之间的差异。
**这些结果表明,ADM帮助我们的模型缓解了隐式身份泄漏现象。**同时,我们进行了与之前相同的ID线性分类实验,比较我们的模型和二元分类器的特征中是否存在ID表示。我们使用ResNet-34作为主干。图b和d显示,二元分类器的特征上的线性分类比我们模型的特征更容易收敛,并且获得了更好的精度。这些结果表明,二元分类器的特征比我们的模型包含了更多的身份信息,进一步验证了隐式身份泄漏现象以及我们的方法缓解其负面影响的补救效果。

5.4 消融实验—不同模块的影响

为了确认模型的有效性,我们评估了数据增强(DA)、MFS和ADM如何影响我们模型的准确性。我们在FF++上训练模型,并在FF++、Celeb-DF和DFDC-V2上测试了模型的性能。我们表示没有DA、MFS和ADM作为基线的模型。如表所示,基线在数据集内评估中取得了最好的性能。然而,基线只实现了Celeb-DF和DFDC-V2的AUC分别为64.05%和48.73%。与[32,75]类似,我们还添加了常规数据增强(DA),如随机裁剪,高斯模糊/噪声,JPEG压缩。
在这里插入图片描述

当添加DA时,我们的模型在Celeb-DF和DFDC-V2上的AUC较基线分别提高了16.02%和13.73%。我们认为,这些增强可能在一定程度上破坏了数据的身份信息,提高了模型的泛化。此外,ADM和MFS进一步提高了交叉数据集评估性能。ADM引导我们的模型学习局部区域的工件表示,从而减少了隐式身份泄漏的影响。MFS生成的图像与源图像共享相似的身份信息(例如见图6)。这种对齐的ID表示在一定程度上消除了真假图像之间ID信息的误导,也有助于减少隐式身份泄漏的影响。如表2所示,除了DA的作用外,我们提出的方法(即MFS和ADM)仍然可以进一步显著改善(如表2中Celeb-DF的11.08%和DFDC-V2的9.03%)。这种基于强基线模型(即,用DA训练的模型)的改进可以进一步验证我们提出的方法的有效性。

5.5 与最先进方法的比较

如表3所示,我们在三个公开的deepfake检测数据集上将我们的模型与其他deepfake检测方法进行了比较。在表3中,模型在FF++上进行训练,并在FF++、Celeb-DF和DFDC-V2上进行测试。此外,我们还在图6中提供了我们的方法的可视化结果,表明我们的模型成功地识别了由不同深度伪造算法处理的假图像,并回归了伪图像区域的边界框。
在这里插入图片描述
在这里插入图片描述

5.5.1 数据集内评估—提升不高,基本差不多

与其他方法相比,通过减少隐式身份泄漏的影响,自动学习了图像上的各种伪影特征,并在数据集内评估上取得了更好的性能。具体来说,与表现最好的方法SBI[58]相比,我们的方法(基于efficiency -b4)在FF++上对数据集内评估的AUC仍提高了0.15%。

5.5.2 跨数据集效果—提升很大

手工制作的方法迫使模型学习图像上特定的工件特征,从而提高跨数据集评估的性能(例如;80.58%的Celeb-DF用于面部x射线[32])。这些方法也可以被视为通过引导模型学习手工制作的工件特征而不是id相关信息来减少IIL的影响。然而,这种人为定义的工件特征可能无法反映所有被操纵区域内的广义表示,这限制了它们的进一步改进。相比之下,通过减少隐式身份泄漏的影响,我们的方法在伪造数据上学习了广义伪影特征,在跨数据集评估中实现了更好的泛化。特别是,在表3(底部)中,我们的模型在最近发布的DFDC-V2中获得的AUC比SBI[58]高1.43%,该数据集被广泛认为是最具挑战性的数据集。此外,我们的方法在表3(上)的Celeb-DF上的跨数据集评估的AUC也提高了0.70%。

综上所述,与之前的方法相比,我们的方法在数据集内和数据集间的评估性能都有显著提高,显示了减少隐式身份泄漏对人脸伪造学习广义伪像特征的影响的有效性。

5.5.3 鲁棒性评估

我们还根据LipForensics[20]中相同的鲁棒性实验设置,评估了我们的模型对不同类型图像扰动的鲁棒性。表4中的结果表明,我们的方法实现了97.4%的视频级AUC,高于LipForensics(即92.1%)。
在这里插入图片描述

5.5.4 FF++数据集中交叉验证

我们还在FF++上进行了交叉方法实验,我们的模型在一种被操纵的数据上进行了训练,并在剩下的三种数据上进行了测试。
在这里插入图片描述
表5(上)的结果显示,我们的方法展示了卓越的交叉方法泛化,表明学习到的ID表示的影响也在不同程度上阻碍了二元分类器用于深度假检测的交叉方法泛化。请注意,相同设置下的通用分类器[56]。这样的结果与之前手工制作的方法(如[32])相比,这些方法额外丰富了具有特定工件特征的训练数据,但仍然存在性能差距。
需要指出的是,我们的方法最重要的动机之一在于训练一个鲁棒的深度假检测模型,该模型可以从不断增加的训练数据中自动学习各种忠实的工件特征。随着训练伪造类型的增加,我们的方法成功捕获了广义伪影特征。与之前针对特定伪迹特征设计的手工制作方法相比,这种数据驱动的训练方案有助于释放为新提出的伪迹类型不断设计新方法的压力,这对于现实应用具有重要价值。因此,由于原始单一伪造类型中的人工特征有限,表5(上)中的结果是可以预期的,然而,通过扩大训练数据可以很容易地解决这个问题。
此外,我们在一个更具挑战性的场景中评估了我们的方法的泛化能力。FF++和DFDC-V2是用不同的操作方法和不同的原始视频收集的,这使得这些数据集之间的泛化变得更加困难。为此,表5(下)展示了我们的方法与二元分类器相比的有效性。

5.5.5 潜在的适用性

由于伪像检测模块可以方便地添加到不同主干的末端,因此我们的方法也可以作为即插即用模块应用于其他SOTA方法,以进一步提高性能。为了简化故事,我们将我们的方法与SBI[58]相结合,可以通过添加伪像检测模块轻松修改。如表6所示,当与SBI相结合时,我们的方法在跨数据集评估中取得了明显更好的结果。
在这里插入图片描述

6 结论分析

通过实验验证,我们发现了一种被称为隐式身份泄漏的现象:深度伪造检测模型对数据的身份信息敏感,这降低了模型对未知数据集的泛化能力。为此,我们提出了不知道身份的深度伪造检测模型来缓解隐式身份泄漏现象。大量的实验表明,通过减少隐式身份泄漏的影响,我们的模型成功地学习了广义工件特征,并且优于最先进的方法。综上所述,本研究为理解深度伪造检测模型的泛化提供了一个新的视角,为该领域的发展提供了新的视角。

Logo

科技之力与好奇之心,共建有温度的智能世界

更多推荐