Image Operation Chain Detection with Machine Translation Framework

Yuanman Li , Member, IEEE, Jiaxiang You, Student Member, IEEE, Jiantao Zhou , Senior Member, IEEE, Wei Wang , Member, IEEE, Xin Liao , Senior Member, IEEE, and Xia Li , Member, IEEE

摘要

​  操作链检测的目的是揭示给定操作图像中涉及的操作及其应用顺序,这对于图像处理和多媒体取证至关重要。目前,所有现有方法都将图像操作链检测视为分类问题,并且仅考虑最多包含两个操作的链。考虑到操作与解决方案空间呈指数级增长之间的复杂相互作用,检测更长的操作链极具挑战性。为了解决这一问题,本研究提出了一种新的图像操作链检测方法。不同于现有的基于分类模型的方法,我们采用机器翻译框架进行操作链的检测。具体而言,我们的方法将操作链建模为目标语言中的句子,每个可能的操作用该语言中的一个词来表示。在执行链检测时,我们首先将输入图像转换成潜在源语言中的句子,通过学习到的深度特征实现。随后,我们提出在机器翻译框架下将潜在语言转换为目标语言,并最终按顺序解码所有操作。此外,我们开发了链反转策略和双向建模机制,以提升检测性能。我们还设计了一种加权交叉熵损失,旨在缓解链长度和链类别不平衡带来的问题。我们的方法可以检测包含多达7个操作的操作链,并在各种场景中对短链和长链的检测都取得了非常有希望的结果。

I.引言

​  操作链检测在数字图像分析中扮演着至关重要的角色。许多数字图像因一系列操作而受损,如JPEG压缩、高斯噪声、重采样、增强等。了解给定图像所经历的操作链,可以提供其退化历史的更多细节,这对于许多图像处理任务[1]、[2]、[3]至关重要。以多退化图像恢复为例,退化历史可用于构建模型,合成大量原始与退化图像对,进而训练深度网络以实现更佳的图像恢复效果。此外,操作链的信息对于图像取证同样重要。如今,图像伪造在互联网谣言、假新闻和不诚实的学术文献中普遍存在,对人类生活的多个方面造成了负面影响。在制作图像伪造时,通常会使用多种常见的图像处理技术来隐藏操作痕迹或使生成的图像看起来更加逼真。基于这一背景,许多图像取证算法被设计出来,用于验证图像的真实性并揭示其操作链[4]、[5]。
​  大多数先前的研究都集中在设计用于识别单一操作的取证方法上。这些方法大致可以分为两类:一是针对特定操作的检测[6],[7],二是通用操作检测[8],[9],[10]。然而,实际上伪造图像通常涉及多个操作。因此,调查人员开始考虑操作链检测。图1展示了两个例子,其中一张图像通过五种操作以不同的顺序进行了处理。

image-20250606232032134

​  与传统的特定和通用操作检测方法不同,操作链检测需要同时识别应用于图像的多个操作,并确定这些操作的顺序,以揭示完整的图像处理历史[4]。操作链检测的任务超出了传统取证算法的能力,原因如下:首先,传统的取证方法只能识别一个潜在的操作,如何有效地将它们结合在一起揭示多个操作似乎并不直接。其次,确定检测操作的顺序仍然不容易,特别是当操作的数量很大时。第三,由于不同图像操作之间的相互作用,后序操作可能会影响和掩盖前序操作留下的痕迹,使某些操作难以被检测。考虑到上述困难,操作链检测方面取得的进展有限。例如,[11]的工作从理论上研究了使用信息论度量方法量化不同操作链之间可区分性的问题。[12]和[13]的研究将操作链检测问题视为多个假设检验的问题。在最近的论文中,[4]和[5]通过使用深度卷积神经网络(CNNs)尝试检测操作链,取得了显著进展。据我们了解,现有的所有算法都将操作链检测视为分类问题,面临以下挑战:

  • 所有先前的方法仅考虑由最多两个操作组成的链。随着链的长度增加,解空间的大小呈指数级增长。例如,当只有两个操作时,可能的链数为\(\textstyle\sum_{i=0}^{2}A_{2}^{i}=5\);而当有七个操作时,可能的解决方案数量则达到\(\textstyle\sum_{i=0}^{7}A_{7}^{i}=13700\)。更糟糕的是,对于较长的操作链,操作之间的相互作用极其复杂,先前创建的指纹可能会受到后续操作的强烈影响,甚至被掩盖。由于这些挑战,如何检测长操作链仍然是一个未解决的问题。
  • 所有现有的方法都将链检测建模为一个分类问题,通过直接为每个链分配一个独特的标签。尽管这种方法看似非常直接,但它无法充分利用操作的顺序(或部分顺序)信息,也无法充分利用不同链之间的强相关性。例如,由于链路的唯一标记,JPEG→AWGN→重采样和AWGN→重采样的关系变得模糊。

​  由于这些问题的困扰,图像操作链检测仍处于起步阶段,基于分类的方法所取得的有限进展促使我们考虑新的方法,特别是针对长链检测。
​  本文提出了一种新型的端到端深度框架,用于图像操作链检测,我们将其命名为TransDetect。与以往基于分类模型的方法不同,我们在机器翻译框架内解决了操作链检测问题,我们的方法继承了机器翻译解码超长句子的能力。具体来说,我们将操作链建模为目标语言中的一个句子,每个图像操作用该语言的一个单词表示。因此,图像操作链检测的目标是找到从处理后的图像域到目标语言域的映射关系。为此,首先将输入图像转换到深度特征空间,然后将这些特征转化为潜在源语言中的句子,以描述操作链的指纹。最后,我们提出使用机器翻译框架将潜在语言转换为目标语言,从而解码整个操作链。此外,我们还提出了分层特征提取、链反向、双向建模和加权交叉熵损失策略,以提高检测性能。
​  据我们所知,这是首次将操作链检测作为通用机器翻译问题进行研究,并在统一框架下考虑包含多达七个操作的链。我们总结了本研究的主要贡献和创新点如下:

  • 我们采用策略性建模方法,将操作链作为时间序列(具体来说,目标语言中的一个句子)进行建模,而不是直接给它贴上简单的标签。与现有方法相比,我们的链模型保留了原始链的特性,例如操作顺序和相似链之间的强相关性。基于所提出的链模型,我们在机器翻译框架内设计了一种新颖的图像操作链检测方法。
  • 与其它机器翻译任务类似,我们的方法逐步解码操作链,即逐个操作地进行。这一特性使我们的方法能够利用先前解码的操作作为先验信息,帮助解码下一个操作,从而大大缓解了长链检测中解决方案空间大的问题。我们进一步提出了两种策略,即链反转和双向建模,以提高检测性能。
  • 为了检测未知长度的链,我们设计了一个加权交叉熵损失来处理链长度和链类别之间的不平衡问题。
  • 大量的实验表明,我们的方法在检测短链和长链的各种场景中都取得了非常有希望的结果。

​ 本研究的部分内容之前已作为会议版本发表在[14]上。与[14]相比,技术部分和实验部分都得到了显著的改进。我们总结了主要的改进如下:首先,我们从通用机器翻译的角度重新定义了操作链检测,并详细阐述了我们的翻译策略在保持相似操作链之间强相关性方面的优势。其次,我们针对链长和类别所导致的基本不平衡问题,设计了加权交叉熵损失函数(WCEL,Weighted Cross-Entropy Loss function)来解决这一问题,并对参数的选择进行了论证。第三,我们提出了一种链反转策略和双向建模策略,以减轻早期解码子链(置信度较低)导致的错误传播,并提出了一个分层特征提取策略,通过融合多级特征来实现更丰富的语言表示。这两种策略在消融研究中得到了验证。第四,与[14]仅提供包含最多5个操作的链的平衡长度实验初步结果相比,我们进行了广泛的额外实验,以展示我们的优势。这些实验包括但不限于:新的评估指标——双语评估下研究(BLEU,Bilingual Evaluation Understudy)分数、平衡类别实验、跨数据集验证、与更近期方法的对比,以及处理未知参数和由7个操作组成的链等挑战性案例。此外,与[14]相比,性能显著提升,例如,在未知长度的链检测上,准确率提高了12.69%。最后但同样重要的是,我们新增了第五部分A小节,专门讨论本研究的不足之处及未来发展方向。
​  本文其余部分安排如下:第二部分回顾相关工作,第三部分详细介绍我们提出的用于操作链检测的TransDetect算法,第四部分给出了大量的实验结果,最后在第六部分给出结论。

II.相关工作

​  在本节中,我们简要回顾了操纵检测的一些相关工作和流行的机器翻译框架Transformer。

A.操纵检测

​  目标操作检测:
​  目标操作检测方法旨在识别单一特定的操作。这些方法通常通过提取特定操作留下的特征,如重采样[6]、[15]、中值滤波[7]、[16]、对比度增强[17]和JPEG压缩[18],来构建二分类问题。例如,Qiao等人[6]提出了一种统计框架,通过分析残差噪声的行为来检测重采样操作。Pasquini等人[19]基于假设检验理论,探讨了重采样操作的可检测性。Cao等人[17]设计了两种对比度增强检测器,分别基于零高度间隙指纹和块峰值/间隙箱,考虑了之前已进行JPEG压缩的图像。Chen等人[16]通过突出差异域中引入的统计伪影,提出了中值滤波操作检测器。Kang等人[7]研究了从中值滤波残差图计算出的自回归系数,并开发了一种算法,用于检测压缩图像中的中值滤波。除了上述方法外,还有许多其他常见的操作类型[20]、[21]、[22]、[23]、[24]、[25]。

​  通用操作检测:
​  实际上,通常无法获得关于已应用了哪种操作的先前信息。在这种情况下,调查人员可能会运行多个独立的目标检测器来验证图像。然而,在实践中,如何在控制总体误报率的同时融合不同法医测试的结果是非常具有挑战性的。为了解决这一问题,近期的一些研究探讨了通用图像取证算法,旨在通过单一测试从多种可能的操作中识别出具体的篡改类型。与针对特定操作的检测不同,通用图像取证方法将篡改检测视为一个多类分类问题[8],[9],[10],[26]。例如,邱等人[10]将各种图像处理操作建模为隐写术,并基于通用的隐写分析特征设计了一种通用的图像取证方法,实现了对六种典型操作的区分能力。李等人[9]研究了残差域中相邻像素之间的相关性,并设计了一种通用的取证算法,用于区分十一种图像操作和四种反取证操作。Bayar等人[5]开发了一种基于端到端CNN的通用图像操作检测器(MISLnet),该检测器通过设计一个约束卷积层来学习操作产生的特征,并抑制被操作图像的内容。最近,吴等人[8]提出了一种端到端的全卷积网络,用于通用操作检测,称为ManTra-Net,该网络考虑了来自七个操作家族的多达385种图像操作。然而,其最高检测准确率仅为约50%。

​  操作链检测:
​  应该注意的是,针对性和通用操作检测方法只能从潜在操作池中揭示一个应用的操作。然而,在实践中,通常会顺序地对图像应用多个操作。最近,研究人员开始尝试检测操作链,这需要确定所涉及的操作及其顺序。Boroumand等人[27]提出了一种基于深度学习的图像处理历史检测算法,该算法假设在两个不同质量因子的JPEG压缩操作之间插入一个操作。Chen等人[28]设计了一种基于自动CNN架构的图像处理历史检测算法,考虑了调整大小等四种操作的组合。[12]的作者[13]将检测操作顺序的问题转化为多重假设检验问题,并通过信息理论框架研究了何时可以或不能检测到操作顺序。Bayar等人[5]提出了一种受约束的CNN,用于检测最多包含两个图像操作的图像操作链。最近,Liao等人[4]开发了一种双流CNN,用于基于从空间域和变换域提取的特征来检测两个图像操作的链。值得注意的是,所有现有方法都将操作链检测视为一个多类分类问题,并且仅考虑最多包含两个操作的链。

B. Transformer

​  机器翻译的目标是将一种语言(源语言)转换成另一种语言(目标语言)。鉴于句子的顺序特性,许多传统的机器翻译模型采用了循环编码器-解码器框架,例如循环神经网络(RNN)、长短期记忆网络(LSTM)[29]和门控循环单元(GRU)网络[30]。最近提出了一种基于自注意力机制的简单网络架构——Transformer,旨在实现训练过程的并行化[31]。值得注意的是,Transformer摒弃了循环结构,能够建模全局依赖关系,而不考虑这些依赖关系在输入或输出序列中的距离。随着这种架构在机器翻译领域的巨大成功,研究人员开始将Transformer应用于计算机视觉任务。vision Transformer(ViT)[32]是一项开创性的研究,它实现了用于图像分类任务的纯Transformer编码器。ViT将输入图像序列化为一系列标记,然后将这些标记输入到具有多头自注意力机制的标准Transformer编码器中。受此启发,许多其他基于Transformer的视觉架构也被设计出来[33],[34],例如DeiT [33]和Swin Transformer [34]。

III.用于操作链检测的TRANSDETECT算法

​  在本节中,我们讨论了提出的用于操作链检测的TransDetect算法。与现有算法不同,我们将操作链检测问题视为机器翻译问题,而非分类问题。

A.问题的定义

​  在我们的研究中,操作链Ti被定义为一系列连续应用于图像的操作的有序序列。我们假设这些操作是从操作池\({\mathcal{O}}=\{O_{1},O_{2},...,O_{M}\},\)中选取的,因此可以将Ti表示为 \[T_{i}= O_{1}^{\prime}\rightarrow O_{2}^{\prime}\rightarrow\dots\rightarrow O_{m}^{\prime},~~ O_{1}^{\prime}..., O_{m}^{\prime}\in{\cal O}.\] ​  对于链长为N的情况,所有可能的链总数为\(A^N_M\)。假设链的最大长度为N (N≤M),那么,存在K条不同的链。 \[K=A_{M}^{0}+A_{M}^{1}+A_{M}^{2}+\ldots+A_{M}^{N},\] ​  请注意,式(2)中的\(A^0_M\)表示图像未被修改,即链的长度为0。设\(\mathcal{T}_{c h a i n}=\{T_{1},T_{2},...,T_{K}\}\)包含所有可能的链;因此,链检测操作旨在从\(\mathcal{T}_{c h a i n}\)中识别出给定处理图像的正确链。
​  应该强调的是,揭示完整操作链中的一些长子链对图像取证分析也是有帮助的。因此,在本研究中,我们将给定链的子链定义为其连续的子序列。例如,链Ti=O₁→O₂→O₃的子链包括O₁、O₂、O₃、O₁→O₂、O₂→O₃以及O₁→O₂→O₃。
​  我们可以推导出,随着M和N的增加,T链的规模将呈指数级增长,这使得问题变得极其复杂。以往的研究仅限于最多包含两个操作的链。为了应对长链检测的问题,我们在机器翻译框架中进行了操作链检测,其中每个操作由目标语言句子中的一个词表示。与现有方法相比,我们的基于机器翻译的方法能够保留原始链的顺序信息和相似链之间的强相关性。此外,我们的方法逐步检测链,其中先前解码操作的先验信息用于辅助下一个操作的检测,从而大大缓解了长链检测的大解决方案空间的问题。此外,如第三节D部分所示,通过操作链的顺序建模,成功检测到的子链也能有效引导我们框架的学习过程。
​  本文考虑了多达七种图像运算,总共产生了13700种可能的运算链。所考虑的操作和相关参数总结见表I。

image-20250606233708623

​  例如,经过链式MF→GB→HE→USM→AWGN→JPEG处理的图像可以表示为O2→O1→O6→O7→O4→O5。需要注意的是,O1至O5的操作也在[5]中使用。除了可能的图像操作外,表I还列出了三个辅助符号,这些符号将用于机器翻译。O0是Transformer模型中用于并行训练的填充符号。Os和Oe分别是解码的开始和结束符号。

B.提出的TransDetect算法

​  图2展示了我们提出的TransDetect算法框架。

image-20250606233902052

​  该方法主要包含三个步骤:1)分层特征提取,2)分词及源句子构建,3)语言翻译。

1)分层特征提取

​  由于操作之间的复杂交互,学习良好的特征表示对于检测操作链至关重要。在我们的研究中,我们提出了一种使用深度架构来提取混合操作留下的痕迹的层次特征的方法。具体来说,我们的特征提取器由以下三种类型的层组成:

  • 卷积层(Conv),第一层包含64个滤波器,核大小为3×3。我们对特征进行了批量归一化处理,并使用修正线性单元(ReLU)作为激活函数,以实现非线性映射。
  • ResBlock:为了提取混合操作的层次特征,我们构建了一组残差块,每个残差块包含两个卷积层和一个跳跃连接。
  • MaxPool:在每个ResBlock之后串联了三个MaxPooling函数,以生成更加紧凑的特征,每个函数将特征图的尺寸缩减至原来的四分之一。

​  由于不同操作之间的相互作用,不同操作留下的痕迹强度差异显著;有些痕迹可能被严重削弱,而另一些则可能非常强烈。为了提取更丰富的特征表示,我们不仅提取了低级特征,还提取了高级特征,并在层次特征提取模块的末尾将这些特征连接起来,如图2所示。进一步地,自适应最大池化操作[35]应用于不同级别的特征,以生成相同大小的特征图。
​  为了简化,我们将分层特征提取过程表示为\({\mathcal{F}}_{f e}(\cdot)\)。对于给定的输入图像I,其深度表示计算如下: \[{F}_{o}=\mathcal{F}_{f e}(I).\] ​  \({F}_{o}\)的尺寸为\({C}\times H^{\prime}\times W^{\prime}\),,其中C表示通道数;\(W^{\prime}\)\(H^{\prime}\)分别代表每个特征图的宽度和高度。

2)分词与源句构建

​  请注意,机器翻译的输入应为时间序列信号。因此,将深度特征表示Fo转换成时间序列,以携带链的特征,这一点非常重要,对于翻译过程来说是必要的。在基于机器翻译的图像处理任务中,大多数现有方法会将输入图像分割成空间域[32]、[34]中的序列标记。在我们的案例中,操作是全局进行的,因此不受空间位置的影响。基于这一特点,我们提出了一种通道级标记化策略,将特征转换为时间序列信号。设标记化函数为\(\mathcal{T}_{source}(\cdot)\),则我们将Fo转换为时间序列如下: \[S_{o}=\,{\cal T}_{s o u r c e}({\cal F}_{o}).\] ​  为了简化,我们将\(\mathcal{T}_{source}(\cdot)\)函数实现为两个Conv+BN+ReLU层与MaxPooling和通道展平的组合。在实验中,我们根据经验将第一个和第二个卷积层的滤波器数量分别设置为64和32,以平衡准确性和复杂度。直观来说,\(\mathcal{T}_{source}(\cdot)\)将特征映射到一个潜在的源语言空间,在这个空间中,时间序列信号So可以被看作是源语言中的一个32词句子。需要注意的是,源语言空间中的词与表I中展示的图像操作不是一一对应的,而句子So则概括了目标链对图像作用的复杂行为。
​  设\(S_{o}=[W_{1},\dots,W_{32}]\),其中每个词\(W_i\in\mathbb{R}^{H^{\prime}{W}^{\prime}}\)。与其它词嵌入策略[32]类似,我们将每个词Wi嵌入到一个512维的向量中。数学上, \[v_{i}^{s}=E m b e d s(W_{i}),\;\;\;i\in\{1,...,32\}.\] ​  在本文中,我们使用全连接层来实现词嵌入函数。
​  综上所述,通过应用前两个步骤,图像可以转换为潜在源语言中的嵌入式句子,表示为\(V^{s}=[v_{1}^{s},v_{2}^{s},v_{3}^{s}...v_{32}^{s}]\in\mathbb{R}^{32\times512}\)

3)语言翻译

​  与现有的方法不同,这些方法为每个目标链分配一个独特的标签,我们的方法将链建模为目标语言空间中的句子,每个操作则由该句子中的一个词表示。句子的长度会随着操作链的长度而变化。从根本上说,我们的框架与任何机器翻译模型兼容。鉴于Transformer [31]在自然语言处理(NLP)和计算机视觉任务中的巨大成功,我们采用了Transformer [31]进行语言翻译。如图3所示,Transformer架构由编码器和解码器组成,类似于其他机器翻译框架。
​  (i)在编码器端,Transformer为每个嵌入向量vi添加位置编码,以表示词在句子中的相对位置。与原始Transformer采用硬编码的位置嵌入策略不同,本文提出了一种可学习的方法来编码词的位置,正如[38]中所提出的。具体来说, \[f_{i}=P o s i t i o n a l\;E n c o d i n g(i),\] ​  其中,位置编码函数\(P o s i t i o n a l\;E n c o d i n g(\cdot)\)将句子中的第i个位置映射到一个向量\(f_{i}\in\mathbb{R}^{1\times512}\)。带有位置编码的嵌入词, \[V_{0}^{s}=[v_{1}^{s}+f_{1},v_{2}^{s}+f_{2},...v_{32}^{s}+f_{32}]\,,\] ​  然后输入到Transformer编码器中。
​  Transformer编码器的架构如图3(a)所示。

image-20250607190658802

​  具体而言,我们构建了一个具有L层的Transformer编码器,其结构遵循[31]框架,其中每一层均包含一个前馈网络(FFN,feedforward network)和一个多头自注意力模块(MSA,multihead self-attention)。编码程序可表述如下: \[\begin{array}{l}Q_{\ell-1}^{s,i}=F C_{q i}(V_{\ell-1}^{s}),\\K_{\ell-1}^{s,i}=F C_{k i}(V_{\ell-1}^{s}),\\J_{\ell-1}^{s,i}=F C_{v i}(V_{\ell-1}^{s}),\\H e a d_{i}=S A(Q_{\ell-1}^{s,i},K_{\ell-1}^{s,i},J_{\ell-1}^{s,i}),\;\;\;\;\;\;i=1,...,U,\\T_{\ell-1}^{s}=L N\left(F C\left(c a t\left[H e a d_{1},...,H e a d_{U}\right]\right)+V_{\ell-1}^{s}\right),\\V_{\ell}^{s}=L N\left(F F N(T_{\ell-1}^{s})+T_{\ell-1}^{s}\right),\;\;\;\;\;\;\ell=1,...,L,\\[z_{1},z_{2},z_{3}...z_{32}]=Z^{s}=V_{L}^{s}.\end{array}\] ​  在此,U表示头的数量,\(F C_{x i}(\cdot)\)是第i个全连接层的头,\(LN(\cdot)\)表示层归一化操作,\(FFN(\cdot)\)是由两个全连接层组成的块。\(SA(\cdot)\)作为自注意力机制,其公式为 \[S A(Q,K,J)=s o f t m a x\left({\frac{Q K^{T}}{\sqrt{d_{k}}}}\right)J,\] ​  其中,Q、K和J分别对应查询矩阵、键矩阵和值矩阵。\(Z^{s}\in\mathbb{R}^{32\times512}\)是编码器的输出结果。
​  (ii)在解码器端,与其它转换方法类似,我们为每个句子分配一个起始符号(Os),以控制解码器的状态。针对目标操作链O1→O2→...→ON,每个操作都将被嵌入到向量空间中。具体如下: \[\begin{array}{l}v_{s}^{t}=W o r d2V e c(O_{s}),\;\;\;\;\;\;v_{e}^{t}=W o r d2V e c(O_{e}),\\v_{i}^{t}=W^{}o r d2V e c(O_{i}^{t}),\;\;\;\;\;\;i=1,...,N.\end{array}\] ​  在我们的工作中,我们通过PyTorch深度学习框架的nn.embedding函数实现了Word2Vec(词向量)模型。具体而言,每个操作首先从操作字典中索引,然后将对应的索引映射到向量空间中。
​  解码器的架构如图3(b)所示,由L层构成。每一层包含一个掩码多头自注意力机制(MSA)模块、一个标准多头自注意力机制(MSA)模块和一个带有跳过连接的全连接网络(FFN)模块。

image-20250607191725710

​  Masked-MSA模块的作用是确保当前单词的解码不依赖于未解码的单词。与编码器类似,我们采用了可学习的位置嵌入策略来编码单词之间的相对位置。通过Masked-MSA(MMSA)模块,Transformer在训练阶段能够并行解码单词,从而同时输出目标操作链中所有操作的概率。数学上,整个解码过程可以表述如下: \[\begin{array}{l}V_{0}^{t}=\left[v_{s}^{t}+f_{0},v_{1}^{t}+f_{1},v_{2}^{t}+f_{2},...v_{N}^{t}+f_{N}\right],\\H e a d=M M S A\left(Q_{\ell-1},K_{\ell-1},J_{\ell-1}\right),\\G_{\ell-1}=L N\left({F C}(H e a d)+V_{\ell-1}^{t}\right),\\T_{\ell-1}^{t}=L N(M S A(F C_{q}(G_{\ell-1})\times F C_{k}(Z^{s}),F C_{v}(Z^{s}))+G_{\ell-1}),\\V_{\ell}^{t}=L N\left(F F N\left(T_{\ell-1}^{t}\right)+T_{\ell-1}^{t}\right),\ \ \ \ \ \ell=1,...,L,\\\hat{y}=S o f t m a x\left(F C\left(V_{L}^{t}\right)\right).\end{array}\] ​  我们将Q−1定义为包含U个头查询矩阵的集合,其中\(Q_{\ell-1}^{i}=F C_{q i}(V_{\ell-1}^{t})\)。同样地,我们也可以定义\(K_{\ell-1}\)\(J_{\ell-1}\)。随后,式(11)中描述的MMSA(·)操作流程可表示为 \[\begin{array}{l}H e a d_{i}=S A_{m a s k e d}(Q_{\ell-1}^{i},K_{\ell-1}^{i},J_{\ell-1}^{i})\\H e a d=c a t\left[H e a d_{1},H e a d_{2},...,H e a d_{U}\right],\;i=1,...,U.\end{array}\] ​  这里,\(SA_{masked}\)表示Transformer中采用的掩码自注意力机制。在推理阶段,与其它机器翻译框架类似,Transformer会逐步解码输入句子,即逐词进行处理。这使得我们的TransDetect算法能够充分利用先前解码操作的信息,从而促进后续操作的识别。关于Transformer的更多细节,请参见[31]。在获得不同操作的概率后,我们选择概率最高的操作。

C.链反转和双向建模

​  操作链检测面临的主要挑战之一是,早期操作留下的痕迹可能被后续操作严重削弱。如果使用早期低置信度子链的解码来辅助后期操作的解码,这将加剧错误的传播。本文提出了两种策略来解决这一问题,即链反转和双向建模。
​  对于链反转策略,我们建议将链的顺序进行反转,即将原始目标链O1→O2→...→ON(从左到右,即L2R)转换为ON→ON−1→...→O1(从右到左,即R2L),然后再计算损失。这种反转方式确保了链中最后的操作,这些操作可能在图像上留下更明显的痕迹,首先被解码。由于Transformer的渐进解码特性,最早且高置信度解码的操作将作为先验信息,有助于识别那些痕迹较弱的前序操作。
​  尽管链反转策略具有优势,但某些预测误差仍可能被传播,导致之前的操作难以检测。受[39]的启发,本研究进一步提出了一种双向建模策略,使解码器能够交互式地整合来自L2R和R2L方向的信息。来自相反方向的相互约束能够显著减少误差累积,从而提升最终检测性能。图4展示了我们提出的双向建模策略的具体流程。具体而言,类似于公式(11)中的第二个方程,我们首先计算L2R和R2L的注意力结果,通过 \[\begin{array}{l}\stackrel{\rightarrow}{H_{1}}\ =M M S A\left(\stackrel{\rightarrow}{Q}_{\ell-1},\stackrel{\rightarrow}{K}_{\ell-1},\stackrel{\rightarrow}{J}_{\ell-1}\right),\\\stackrel{\leftarrow}{H_{1}}\ =M M S A\left(\stackrel{\leftarrow}{Q}_{\ell-1},\stackrel{\leftarrow}{K}_{\ell-1},\stackrel{\leftarrow}{J}_{\ell-1}\right),\end{array}\] ​  其中,MMSA(·)是在公式(12)中定义的Masked-MSA操作。在我们的研究中,我们使用→表示L2R方向,而←表示R2L方向。受跨注意力机制[40]的启发,我们提出了一种方法,通过交互方式整合两个相反方向的信息。 \[\begin{array}{l}\overset{\rightarrow}{H_{2}}\ =M M S A\left(\overset{\leftarrow}{Q}_{\ell-1},\overset{\rightarrow}{K}_{\ell-1},\overset{\rightarrow}{J}_{\ell-1}\right),\\\overset{\leftarrow}{H_{2}}\ =M M S A\left(\overset{\rightarrow}{Q}_{\ell-1},\overset{\leftarrow}{K}_{\ell-1},\overset{\leftarrow}{J}_{\ell-1}\right),\end{array}\] ​  请注意,\(\stackrel{\rightarrow}{H_{1}}\)\(\stackrel{\leftarrow}{H_{2}}\)包含了来自两个方向的信息。最终的注意力结果随后计算出来。 \[\begin{aligned}\overset{\leftarrow}{H} & =\overset{\to}{\operatorname*{H_1}}+\lambda_1\cdot\overset{\to}{\operatorname*{H_2}}, \\\overset{\leftarrow}{\operatorname*{H}} & =\overset{\leftarrow}{\operatorname*{H_1}}+\lambda_2\cdot\overset{\leftarrow}{\operatorname*{H_2}}, \\H & =cat[\overset{\rightarrow}{H},\overset{\leftarrow}{H}]\end{aligned}\] ​  其中λ₁和λ₂是两个通过自适应学习得到的参数。
​  对于双向建模,我们可直接用(15)中得到的H替换(11)中的Head,同时保持其他步骤不变。实验阶段将展示,我们的双向建模策略能显著提升检测精度。

D.损失函数

​  当已知链长时,我们直接使用以下交叉熵损失进行网络训练: \[\mathcal{L}=\frac{1}{K N}\sum_{k=1}^{K}\sum_{i=1}^{N}c r o s s e n t r o p y\left(\hat{T}_{k,i},T_{k,i}\right),\] ​  其中K表示训练样本的数量,\(\hat{T}_{k,i}\),i代表估计链\(\hat{T}_{k}\)的第i个操作,而\(T_{k,i}\),i则指目标链\(T_k\)的第i个真实操作。在训练阶段,我们通过添加填充符号O0对所有链进行补全,使其长度固定为N。
​  当链长度未知时,考虑到不同链类别和链长度之间的不平衡,我们有两种基本策略来训练TransDetect。
​  1)平衡类别策略(BCS,Balanced Category Strategy)
​  第一个策略是为每个类别分配相同数量的样本,这是分类问题中的自然设置。然然而,BCS在翻译语境中可能会造成严重的长度不平衡问题。由于随着链长(N)的增加,相应类别的数量\(K=A_{M}^{N}\)呈指数增长,因此模型倾向于生成较长的链。如表II所示,在每个类别包含29个样本的情况下,BCS为长度为7和6的链分配了147153个样本,而长度为1的链仅分配了204个样本。我们的实证研究发现,即使真实链非常短,使用BCS训练的模型也更倾向于解码较长的链。
​  2)平衡长度策略(BLS,Balanced Length Strategy)
​  另一种策略是确保每个链长对应相同数量的样本。然而,这会导致不同类别样本的数量严重失衡。如表II所示,在假设总样本数为400 k且每个链长的样本数量相等的情况下,长度为1的链有7k个对应的样本,而长度为7的链只有10个样本。因此,模型在处理短链时容易过拟合,而在处理长链时表现不佳。
​  3)加权交叉熵损失(WCEL)
​  为了解决类别不平衡与长度不平衡之间的权衡问题,我们提出了一种用于网络训练的加权交叉熵损失函数(WCEL),其表达式如下: \[{\mathcal{L}}={\frac{1}{K N}}\sum_{k=1}^{K}\gamma(N_{k})\sum_{i=1}^{N}c r o s s e n t r o p y\left({\hat{T}}_{k,i},T_{k,i}\right).\] ​  在这里,\(\gamma\left(N_{k}\right)\)是一个与链长Nk相关的加权函数。在我们的实现中,我们根据BCS(贝叶斯条件概率)分配样本,并使用\(\gamma\left(N_{k}\right)\)更加重视较短的链,从而解决了BCS引起的不平衡问题。由于链长增加时,链类别的数量呈指数增长,我们定义\(\gamma\left(N_{k}\right)\)\[\gamma(n)={\frac{e^{-p_{n}}}{\sum_{i=0}^{N}e^{-p_{i}}}},n=0,...,N,\] ​  其中 \[p_{n}=\alpha\times\frac{A_{M}^{n}}{\sum_{i=0}^{N}A_{M}^{i}},\alpha\geq0.\] ​  在这里,N表示链的最大长度,M表示可能的操作数量。可以看出,γ(n)与链长n呈负相关,这使得模型更加关注较短的链。α是一个超参数,用于控制γ(n)与链长之间的斜率;相应的曲线如图5所示。如何选择合适的α将在第四部分中讨论。
​  值得注意的是,通过操作链的顺序建模,正确检测到的子链不仅能减少公式(16)和(17)中定义的损失,还能明确指导网络训练。对于双向模型,公式(17)在两个方向上计算损失。

IV. 实验结果

​  在本节中,我们介绍并分析了一组实验,这些实验旨在评估我们的TransDetect方法的有效性。我们使用PyTorch深度学习框架实现了该方法。在实验过程中,我们采用了以下设置:将ResBlock中的滤波器数量设为64,Transformer编码器和解码器的层数各设为6,MSA模块的头数设为U = 8;训练过程中,每轮迭代150次,批量大小为24。用于这些实验的源代码将在https://github.com/YuanmanLi/github-TransDetect.上发布。

A.数据集

B.对比方法和指标

C.检测两个操作的链

D.检测已知长度的链

E.检测未知长度的链

F.跨数据集验证

H.更具挑战性的链条检测性能

V.图像修复检测的应用

​  在本节中,我们通过一个简单的案例研究来进一步评估TransDetect的有效性,该案例研究涉及稳健的图像修复检测。图像修复是图像处理领域的一个基本任务,用于填补不完整图像中的缺失部分。同时,它也成为了伪造图像的强大工具,例如通过修改或删除图像内容来实现。在图像修复过程中,通常会应用一些后处理操作以减弱伪造痕迹。在我们的实验中,我们采用了HP-FCN [45]进行图像修复检测,并使用GC数据集[23]进行评估,该数据集包含48,000张训练图像和1,000张测试图像。为了简化,本案例研究仅考虑了四种后处理链:链A:GB→AWGN→JPEG,链B:GB→USM→JPEG,链C:GB→USM→AWGN→JPEG,以及链D:AWGN→GB→USM→JPEG。
​  表十三展示了不同设置下的修复检测结果。

image-20250607195059991

​  在首次实验中,我们通过随机应用上述四种操作链对训练图像进行数据增强,直接训练模型。最终模型的平均F1分数达到39.79%,AUC分数为81.84%。在第二次实验中,我们首先使用TransDect来估计给定测试图像的后处理链,然后利用这个估计的链对第一次实验中获得的模型进行一次微调。结果显示,通过TransDect估计的链微调后的模型,F1(AUC)提高了6.75%(即4.54%)。尽管案例研究较为简单,但这一显著的改进表明,有效揭示给定图像的退化历史对于实现稳健的伪造检测非常有帮助。值得注意的是,在实际应用中可能涉及许多其他后处理链,如何自动调整模型参数以适应这些估计的链,将是未来研究的一个有趣方向。

A.讨论

​  在我们的实验中,我们考虑了包含多达七个常用操作的链,以确保每个长度的ACC值保持在50%以上。感兴趣的读者可以将我们的方法应用于更长的链。尽管我们的方法已经比现有方法表现得更好,但要提高更长链的准确性,未来的研究仍需付出更多努力。
​  类似于现有的操作链检测算法,如[4]和[5],我们假设操作是在给定图像块的全局范围内进行的。有时,图像仅在局部被修改。在这种情况下,我们可以首先使用通用的图像取证方法来识别可能的操作区域,然后应用我们的算法来局部检测图像的操作链。此外,与现有方法类似,我们假设操作链中的操作来自一个已知的集合。实际上,还可能存在其他标准和定制的操作。如何最小化这些操作对检测方法的影响是一个挑战,也是一个未来值得探讨的有趣话题。
​  实际上,当一个或几个操作被应用时,可以直接应用我们的方法来重建图像处理历史,从而获得足够的信息,以确定图像的真实性和来源。
​  此外,实际上,一些常见的图像处理技术被广泛用于削弱或掩盖复杂数字伪造的指纹,例如复制-移动、拼接和图像修复。这些未知的操作会严重影响伪造检测器的性能[46]。在这种情况下,可以首先应用我们的框架来揭示后处理的历史。然后,利用这些信息,伪造检测器可以进行自适应调整,以提高对后处理操作负面影响的抵抗能力。如何将我们的方法与其它伪造检测算法有效结合,仍需未来更多的努力。

VI.结论

​  在本文中,我们提出了一种新的图像操作链检测方法。这是首次考虑包含多达七个操作的链,这导致了超过10,000种可能的解决方案。具体而言,我们在机器翻译框架内进行了操作链检测,这种方法与现有的基于分类模型的算法完全不同。在我们的框架中,每个操作用一个词表示,将操作链视为目标语言中的句子。图像操作链检测的目标是将原始图像空间映射到目标语言空间。为此,原始图像首先被转换成潜在的源语言空间,这些句子能够准确描述不同操作链留下的特征。
​  接着,通过逐步将源语言中的句子转换为目标语言中的句子,来解码链。此外,我们提出了三种策略:分层特征提取、链反转、双向建模和加权交叉熵损失,以提升检测性能。广泛的实验已经证明了我们方案的优势。