IMDL-BenCo:A Comprehensive Benchmark and Codebase for Image Manipulation Detection & Localization
IMDL-BenCo: A Comprehensive Benchmark and Codebase for Image Manipulation Detection & Localization
Xiaochen Ma1†, Xuekang Zhu1†, Lei Su1†, Bo Du1†, Zhuohang Jiang1†,
Bingkui Tong1†,
Zeyu Lei1,2†, Xinyu Yang1†, Chi-Man Pun2, Jiancheng
Lv1,3, Jizhe Zhou1,3∗
1中国四川大学计算机科学学院
2澳门大学计算机与信息科学系
3中国教育部机器学习与工业智能工程研究中心
(† 平等的贡献。∗ 通讯作者: Jizhe Zhou (jzzhou@scu.edu.cn))
摘要
在图像操作检测与定位(IMDL)领域,尚未建立一个全面的基准。没有这样一个基准,导致模型评价不足和具有误导性,严重破坏了这一领域的发展。然而,由于开源基线模型的缺乏以及不一致的培训和评估协议,使得在IMDL模型之间进行严格的实验和忠实的比较具有挑战性。为了解决这些挑战,我们引入了IMDL-BenCo,第一个全面的IMDL基准测试和模块化代码库。
IMDL-BenCo:
i)
将IMDL框架分解为标准化的、可重用的组件,并修改模型构建管道,提高了编码效率和定制的灵活性;ii)全面实现或整合最先进的模型的培训代码,以建立一个全面的IMDL基准;iii)
基于已建立的基准测试和代码库进行深入分析,为IMDL模型体系结构、数据集特征和评估标准提供了新的见解。具体来说,IMDL-BenCo包括通用的处理算法,8个最先进的IMDL模型(其中1个从头开始复制),2套标准的训练和评估协议,15个gpu加速评估指标,以及3种鲁棒性评估。这个基准和代码库代表了在校准IMDL领域的当前进展和鼓舞未来突破方面的重大突破。代码可从以下网址获得:https://github.com/scu-zjz/IMDLBenCo。
1介绍
“实验是科学真理的最终仲裁者。”-理查德·费曼。
授权的图像操作或生成模型驱动图像操作检测和定位(IMDL)任务到信息取证和安全[24,36]的前沿。虽然该任务在文献中偶尔被称为“伪造检测”[15,13]或“篡改检测”[32,31],但现在的共识倾向于将术语IMDL
[13]作为这个研究领域最合适的描述符。IMDL内的“操作”范围会产生与原始内容[38]的语义差异。它不涉及纯生成的图像(例如,从纯文本生成的图像),也不涉及应用图像处理技术,引入噪声或其他非语义变化,而不改变图像[5]的基本意义。
术语“检测和定位”表示了一个IMDL模型的双重责任:同时进行图像级和像素级的评估。这包括在图像级别上的二值分类,识别输入图像是被操纵的还是真实的,以及在像素级别上的分割任务,通过掩模描绘精确的操纵区域。简而言之,IMDL模型应识别语义上显著的图像改变,并提供两个结果:一个类标签和一个操作掩码。
尽管深度神经网络在IMDL领域[10,45,11]中取得了快速的成功,但现有的模型存在不一致的训练和评估协议,由附录A.1中的表支持。这些不一致导致了不相容和不公平的比较,产生了不充分和具有误导性的实验结果。因此,建立一个统一和全面的基准是IMDL领域最受关注的问题。然而,构建这个基准测试远不仅仅是直接的协议统一或简单的模型再训练。首先,大多数最先进的(SoTA)作品的培训代码是不公开的,而且一些SoTA作品的源代码是完全未发布的[27]。其次,IMDL模型通常包含不同的低级特性[43,4,13]和复杂的损失函数,需要高度定制的模型架构和解耦的管道设计来实现有效的复制。现有的框架,如OpenMMLab2和Detectron23,严重依赖于注册表机制和紧密耦合的管道。这种冲突导致了在现有框架下复制IMDL模型时严重的效率问题,并导致了具有极高编码负载和低可伸缩性的单片模型体系结构。因此,一个全面的IMDL基准测试尚未建立起来。
为了解决这个问题,我们引入了IMDL-BenCo,第一个全面的IMDL基准测试和模块化代码库。
IMDL-BenCo:
i)具有一个包含四个组件的模块化代码库:数据加载器、模型库、训练脚本和评估器;模型库包含可定制的模型体系结构,包括SoTA模型和主干模型。损失设计也独立于模型库,而其他组件则由接口进行标准化,并且具有高度的可重用性;这种方法减轻了模型定制和编码效率之间的冲突;ii)完全实现或整合8种SoTA
IMDL模型的代码(见表1)和建立了一个具有2套标准的训练和评估方案的综合基准,15gpu加速评估指标,和3种鲁棒性评估;iii)基于建立基准和代码库进行深入分析,为IMDL模型架构、数据集特征和评估标准提供新的见解。

这个基准测试和代码库代表了在校准IMDL领域的当前进展方面的一个重大飞跃,并可以激发未来的突破。
2相关工程
IMDL模型架构
IMDL的关键是识别通过篡改创建的伪影。伪影被认为是表现在低级特征空间上的。因此,几乎所有现有的IMDL模型都采用了“主干网络+低级特征提取器”的范式。例如,SPAN
[18]和ManTra-Net [43]使用VGG [34]作为其模型的主干,并结合SRM
[49]和BayarConv [1]滤波器,以获得图像的低级特征。MVSS-Net
[4]结合了提取边缘信息的Sobel [35]操作符和在其ResNet- 50
[16]主干上的BayarConv来提取图像噪声。关于每个模型的详细信息见表1。各种低级特征提取器会导致各种损失函数和极其定制的模型架构。因此,在现有框架内复制IMDL模型是低效的。各种损失函数和训练架构之间的高耦合也使得扩展不同的模型训练框架变得极其困难。训练框架之间的差异进一步增加了模型再现的难度。这种紧密耦合也严重影响了算法的创新和快速迭代。
不一致的训练和评估方案
除了模型复制困难,到目前为止,存在多个显著不同的训练和评估IMDL模型的协议。MVSSNet、CAT-Net和TruFor在ImageNet
[6]数据集上进行了预训练。SPAN [18]、PSCC-Net [25]、CAT-Net [22]和TruFor
[22]使用合成数据集进行训练。此外,TruFor还使用了大量来自流行的照片分享网站Flickr和DPReview的原始图片来训练其Noiseprint++提取器。MVSS-Net
[4]和IML-ViT [27]在CASIAv2 [8]数据集上进行训练。另一方面,NCL
[47]没有使用预训练,而是在NIST16
[12]数据集上进行了训练。这些模型的详细训练和评估方案见附录A.1。考虑到IMDL基准数据集都是小尺寸(几百到几千张图片)[47],训练数据集的实质性差异使它不可避免地使用大型训练集或预训练模型将表现异常好在其他评估集,大大挑战模型性能评估的公平性。此外,如表1所示,大多数模型的代码并没有完全开源。他们的研究结果很难校准,并且可能对新的IMDL研究人员有高度的误导性。
现有的IMDL总结和基准
尽管IMDL总结[28,46]已经注意到IMDL研究中协议的不一致性和模型复制的困难,但很少有努力致力于解决这个问题。现有的调查往往依赖于具有独特的训练策略和数据集的独立设计的模型和数据集,导致报告结果的偏差。此外,据我们所知,目前还没有全面的基准来确保IMDL模型的公平和一致的评估。这种缺乏统一的基准测试导致了误导性的、不忠实的模型评估,并破坏了IMDL领域的总体进展。
3我们的代码库
本节介绍了我们使用PyTorch4实现的模块化的、面向研究的和用户友好的代码库。

如图1所示,它包括四个关键组件:数据加载器、模型库、训练脚本和评估器。我们的代码库在为IMDL任务提供标准化的工作流和为用户提供广泛的定制选项以满足他们的特定需求之间取得了平衡。
3.1数据加载程序
数据加载器主要处理数据集的排列、增强和转换过程。
数据集管理
我们为每个数据集提供转换脚本,以将它们重新排列成一组JSON文件。后续的培训和评估可以根据这些JSON文件进行。
增强和转换
由于需要专家注释和大量的手工工作,IMDL数据集通常非常小,这使得它难以满足越来越大的模型的需求。因此,数据增强是必要的。此外,确保输入模式和图像形状满足现有模型的要求是至关重要的。我们的数据加载器设计了以下转换序列:
1)IMDL特定的变换:受MVSSNet
[4]的启发,我们实现了朴素的初始绘制和朴素的复制-移动转换,这可以在不需要额外数据集的情况下有效地提高性能。
2)通用变换:这包括典型的视觉转换,如翻转、旋转和随机亮度调整,使用Albumentations[3]库实现。
3)后处理变换:有些模型需要除RGB模式以外的其他信息。例如,CAT-Net
[22]需要JPEG格式特有的特定元数据,这些元数据可以通过回调函数的增强图像从RGB域进一步获得。
4)形状变换:这包括零填充[27],裁剪和调整大小,以确保均匀的输入形状。
此外,评估者可以自动适应不同的塑造策略来完成度量计算。
3.2模型库
该模型库目前由8个SoTA模型、6个基于开箱即用的视觉骨干模型的骨干模型和5个常用于IMDL任务的特征提取模块组成。需要强调的是,我们的目标是使用相同的训练脚本(标准化)对所有模型进行训练,同时也适用于所有SoTA IMDL模型(定制)。

如图1所示,我们将损失函数的计算积分到模型的正向函数中。通过一个统一的接口,我们传递所需的信息,如图像和掩码,并输出预测结果、反向传播的损失,以及任何需要可视化的损失、中间特征和图像。因此,对于新的IMDL方法,用户只需要将带有损失设计的模型脚本添加到模型库中,这样它就可以与IMDL-BenCo中的所有其他组件无缝集成。通过使用这个框架有效地再现当前的SoTA模型,我们证明了我们已经成功地平衡了标准化和定制之间的冲突。
1)
SoTA模型
如表1所示,我们如实地复制了8个主流的IMDL
SoTA模型,并遵循了原始工作的设置。

只要有可能,我们就使用公开可用的代码,只进行必要的接口修改。对于缺乏公开可用代码的模型,我们根据它们各自的论文中描述的设置来实现它们。每个模型的实现细节列在附录A.3中。
2)骨干模型:
作为分类和分割任务,主流IMDL算法广泛使用现有的视觉骨干,这些骨干的性能也会影响已实现算法的性能。因此,我们将广泛使用的视觉骨干,包括ResNet
[16]、U-Net [30]、ViT
[9]、Swin-Transformer[26]和SegFormer[44]作为IMDL-BenCo的骨干网络。
3)特征提取器模块:
目前,一些标准的特征提取器被广泛应用于IMDL任务中。我们已经实现了5个主流功能提取器作为nn.module,包括离散余弦变换(DCT),快速傅里叶变换(FFT)[2],Sobel
operator[35],BayarConv[1],SRM过滤器[49],允许无缝集成与骨干模型与注册表机制管理大规模的实验或直接导入方便在后续研究中使用。
3.3训练脚本
训练脚本是使用IMDL-BenCo的入口点,它还集成了其他组件来执行特定的功能。它可以有效地自动化任务,如模型训练、度量评估、可视化、GradCAM分析[33],以及基于配置文件(如JSON、命令行或YAML)的复杂性计算。为了避免在其他框架中看到的训练管道的高耦合(例如,开放MM实验室通常需要修改Python包函数来定制特性),我们提供了一个代码生成器,允许用户创建高度定制的训练脚本,同时仍然利用IMDL-BenCo的高效组件来提高开发效率。
3.4评估器
评估指标对于评估IMDL模型的性能至关重要的。然而,现有的方法面临两个关键问题:
1)指标往往不明确,如optimal-F1[4]、permute-F1[22,13]、micro-F1和macro-F15,这些评分被匿名用作F1评分;2)大多数开源代码在CPU上计算指标,导致处理速度慢。
为了解决这些问题,我们在PyTorch中开发了gpu加速评估器,并作为标准指标集成。每个评估者计算一个特定的度量,包括图像级F1评分(检测)、AUC精度(曲线下面积);以及像素级F1评分(定位)、AUC、准确性和IOU(与Union的交集)。所有的算法都会自动适应数据加载器中的形状转换,从而提供了额外的便利。我们还明确地实现了导出的算法,如inverse-F1和permute-F1来评估它们的高估倾向,如第5.3节所示。这强调了在未来的工作中,精确和透明的度量选择的重要性,以确保公平和一致的比较。
我们用来自CASIAv2数据集的12,554张图像和4张NVIDIA
4090gpu进行了实验,并用
nn.Identity作为模型测试了我们的评估者的时间效率。其计算时间可以忽略不计。结果如表2所示,我们的算法显著减少了度量评估时间,为大规模IMDL任务提供了一个更快、更可靠的工具。

4我们的基准
4.1基准设置
数据集
我们的基准测试包括8个在IMDL领域常用的公开数据集:
CASIA[8],Fantastic
Reality[21],IMD2020[29],NIST16[12],Columbia[17],COVERAGE[42],tampered
COCO[22],tampered RAISE[22]。每个数据集的详细信息见附录A.2。
评价指标
由于篡改区域的大小通常比真实区域小,因此像素级f1分数被广泛用作评估模型性能的合适指标。我们在两个协议中使用0.5的固定阈值来评估每个模型的像素级F1分数。我们还使用像素级的AUC和IOU指标来评估所有的模型。对于具有检测头的模型,我们另外报告了图像级F1分数。最后,我们给出了在高斯模糊、高斯噪声和JPEG压缩条件下的像素级F1分数的鲁棒性测试结果。
硬件配置
实验在3台不同的服务器上进行,分别使用两个AMD
EPYC 7542cpu和128G RAM,分别包含4个×NVIDIA A40 GPUs、6个×NVIDIA 3090
GPUs和4个×NVIDIA 4090 GPUs。
模型和超参数
我们的基准测试在IMDL字段中选择了8个SoTA方法作为实现方法的初始批。模型是:Mantra-Net[43],MVSS-net[4],CAT-Net[22],ObjectFormer[40],PSCC-Net[25],NCL-IML[47],Trufor[13]和IML-ViT[27]。我们的小修改、设置和超参数的细节可以在附录A.3中找到。
4.2基准协议
现有公共数据集的规模和质量的不平衡导致了IMDL方法的训练和评估协议的不一致。这使得很难在现有方法之间实现公平和方便的比较。为此,我们选择了两种合理且广泛使用的协议:
MVSS协议,由MVSS-Net[4]提出,其中,模型只在CASIAv2数据集上进行训练,然后直接在其他数据集上进行测试,而不进行微调。CASIAv2数据集大小中等,但质量较高,这使得该协议成为模型泛化能力的一个很好的度量。
CAT协议,由CAT-Net[22]提出,其中,模型在一个由CASIAv2、Fantastic
Reality、IMD2020、tampered COCO和tampered
RAISE组成的混合数据集上进行训练。
对于每个epoch,随机抽取固定数量的图像进行训练,然后直接在其他数据集上进行模型测试,而不进行微调。这个混合数据集包括各种类型的篡改和大量的篡改图像,使模型能够有效地演示其学习能力。
具体来说,在MVSS协议中,我们在训练没有检测头的方法时不使用真实的图像。而在cat协议中,我们并没有做出这种区分。此外,我们还使用了在每篇论文中指定的推荐的图像缩放尺寸。我们还对所有方法应用了一致的数据增强技术,如翻转、模糊、压缩以及使用OpenCV6实现的简单复制-移动和修改操作。
4.3我们的基准结果
对于MVSS协议,我们报告了COVERAGE、Columbia、NIST16、CASIAv1和IMD2020数据集的F1得分。对于CAT协议,我们排除了IMD2020,因为它被包含在训练过程中。像素级F1得分和图像级F1得分分别见表3和表4。


像素级的AUC和IoU见附录A.4。我们复制的模型的性能与原始论文中报告的结果之间存在一些差异。此外,一些模型在相同的协议下表现出有限的性能。我们还在图2中描述了MVSS协议下的鲁棒性测试。

我们观察到,一些模型存在显著的鲁棒性变化,证明了统一框架的必要性和保真度。
5实验分析
我们的代码库和基准测试统一了IMDL模型的测试和训练协议。尽管有这种统一,但与其他检测或分割任务相比,IMDL任务也保留了多个独特和关键的特征,特别是依赖于“主干网络+低级特征提取器”范式、具有随机分割的基准数据集和各种评估指标。因此,我们进一步调查和深入分析了4个广泛关注但不太深入的问题,包括:
1)低级特征提取器是IMDL中必须使用的吗?
2)哪种主干架构最适合IMDL任务?
3)随机分割训练和测试数据集是否会影响模型的性能?
4)哪些指标主要代表了模型的实际行为?
通过大量的实验,我们是第一个用证据事实来回答上述问题的人,并为模型设计、数据集清理和IMDL领域的度量提供了新的关键见解。
5.1低级特征提取器和骨架
如表1所示,目前流行的IMDL方法严重依赖于特征提取器来检测操作痕迹。

然而,很少有文章专门分析不同的提取器的优点。在本节中,我们将模型动物园中实现的主干模型(见第3.2节)与不同的特征提取器模块相结合,以探索每个特征提取器的性能及其与主干的兼容性。各组合模型的复杂性如表5所示。

所有的组合模型都在CASIAv2数据集上进行了200个epoch的训练,图像大小为512×512。详细的实验设置请见附录A.7.1。然后在四个不同的数据集上对它们进行评估——casiav1、Columbia、NIST16、Coverage和IMD2020——以评估它们的泛化能力。表6报告了四个数据集的每个设置的平均F1得分。

实验表明,特定的特征提取器,如BayarConv和Sobel,会对模型的性能产生负面影响。相比之下,ResNet模型在配备DCT、FFT和SRM特征提取器时,显示出更好的性能。ViT模型,当配备特征提取器时,往往不拟合,可能需要更多的轮次来收敛。一种更好的特征融合方法可以消除目前ViT模型存在的问题。对于Swin Transformer,添加特征提取器可能会导致过拟合,而分段形成器的性能通常会下降。详细的讨论和实验结果详见附录A.7.2。
特征提取器的必要性
简而言之,BayarConv和Sobel不适合执行IMDL任务。适当的低级特征提取器,如DCT、FFT和SRM,可以提高ResNet模型的性能。然而,所有的特征提取器都可能阻碍ViT及其变体的收敛,导致Swin
Transformer的过拟合,并导致传感器的整体性能下降。因此,低级别的特征提取器在IMDL中并不是必需的。
骨干适用
如表6所示,Swin
Transformer和Segformer在IMDL任务上表现出了稳健的性能,优于ResNet和ViT。U-Net体系结构并不太适合此任务。
5.2数据集偏差和清理方法
数据集偏差
通过我们的基准测试,我们发现将我们的协议下的模型性能与他们在论文中进行微调后的模型性能进行比较,在每个模型上,在NIST16数据集上观察到显著的性能下降。然而,在其他基准数据集上并不会出现如此巨大的下降。经过彻底的分析,我们发现NIST16数据集包含了“非常相似”的篡改模式。然后,当这些非常相似的图像被随机分割成训练集和测试集时,模型可以通过记忆非常相似的训练样本来有效地定位操作区域。我们将这种关键的数据集偏差称为“标签泄漏”。图3说明了NIST16数据集中的一个标签泄漏实例。

数据集清理
为了提高NIST16进行评估的可靠性,我们引入了一个新的数据集,NIST16-C7,它是通过应用基于结构相似度(SSIM)[41]的过滤方法创建的。这一过程有助于消除过度相似的图像,减少数据集偏差,并防止由标签泄漏造成的性能高估。关于我们的分析和清洗程序的更多细节,请见附录A.7.3。
我们对NIST16-C进行了广泛的基准测试,测试结果如表7所示。

这表明我们已经消除了NIST16数据集中的冗余数据,解决了标签泄漏问题。因此,模型现在可以专注于学习篡改的底层特性。
5.3评价指标选择
有争议的F1分数
f1度规具有不同的计算方程的多种变化,如invert-F1和permute-F1[20,22,13]。Invert-F1是通过计算反向预测结果与原始掩码之间的f1得到的值。permute-F1是原始F1和invert-F1之间的最大值。公式为Permute-F1(G,
P) =max(F1(G, P), Invert-F1(G,
P)),其中G是地面真相,P是预测的掩模。如图4所示,当掩模的白色面积较大,且模型的预测与掩模存在显著偏差时,Invert-F1得分远高于f1得分。这个指标影响了评估的公平性。
此外,在通过sklearn库计算f1分数时,使用“macro”、“micro”和“weighted”等参数是不合适的,因为它人为地夸大了我们的f1指标,这是不合理的。我们在附录A.7.4中进一步分析了这些具有误导性的F1指标。将这些F1分数匿名混合使用将会导致重大的公平性问题。总之,我们认为使用f1分数和“二进制”参数进行计算是更加科学和严格。我们希望未来的研究能够统一采用这个标准。此外,我们还在附录A.7.5中讨论了AUC被高估的当前问题。
6结论
总之,IMDL-BenCo标志着图像处理检测和定位领域的一个重大进展。通过提供一个全面的基准测试和一个模块化的代码库,IMDL-BenCo提高了编码效率和定制的灵活性,从而促进了严格的实验和IMDL模型的公平比较。此外,IMDL-BenCo通过为模型开发和评估提供一个统一的和可扩展的框架来激发未来的突破。我们预计,IMDL-BenCo将成为研究人员和从业者的重要资源,推动IMDL技术在各个领域的能力和应用,包括信息取证和安全。