基于块的CNN图像伪造检测

基于块的卷积神经网络用于图像伪造检测

摘要

随着各种图像编辑工具的发展,进行数字图像伪造并掩盖伪造边缘变得更加容易。另一方面,这些视觉上难以察觉的篡改操作也使得数字图像的真实性认证变得困难。因此,迫切需要开发一种精确且鲁棒的检测方法来识别这些拼接图像。过去,一些研究人员提出了若干方法,取得了超过97%的准确率,但这些方法的鲁棒性尚不明确。本文提出了一种基于特殊分块策略的新型图像伪造检测方法,其中每个块的处理单元为丰富模型卷积神经网络(rCNN)。所提出的方法不仅能够检测拼接图像,而且在JPEG压缩情况下仍保持有效性。在CASIA v1.0、CASIO v2.0和哥伦比亚图像伪造评估数据库上进行了大量实验,验证了该方法的有效性和强鲁棒性。

关键词 :拼接图像检测 · Rich模型 · Convolutional神经网络 · Blocking策略

1 引言

随着各种图像编辑工具的发展,编辑数字图像变得更加容易,其中图像伪造是常见的技术之一。图像伪造通常被认为是将同一幅图像或不同图像中的区域进行裁剪和粘贴的过程[1]。因此,根据粘贴区域的来源,此类问题可分为图像拼接和复制‐移动伪造[2]。如果粘贴区域来自被粘贴图像之外的其他图像,则该过程被视为图像拼接,否则为复制‐移动伪造。通常,这些图像伪造的检测依赖于图像在伪造过程中底层统计特征不可避免的变化[2]。

存在许多用于图像伪造检测的方法。其中许多方法考虑了不同域中的统计特征。Shi et al.[3]提出了一种用于图像拼接检测的自然图像模型,该模型应用离散余弦变换(DCT)并从DCT域中提取特征。

Zhou等提出了一种基于马尔可夫的方法,从离散余弦变换和小波变换域提取特征 [2]。与前述方法不同,Lyu等人的方法直接关注伪造边缘周围噪声的不一致性,因为他们假设来自不同相机传感器的图像其噪声是不同的 [4]。除了噪声不一致性外,一些研究人员发现伪造边缘两侧的纹理微模式也存在差异。受此启发,G. Muhammad等从图像中提取局部二值模式,并对其应用可导向金字塔变换。这些特征能有效表示篡改图像中纹理模式的失真,且在CASIA数据集上实现了迄今为止最佳的检测性能 [5,6]。

与上述方法不同,我们并不专注于任何特定特征或特定领域,而是致力于构建一个能够自动提取有用特征的模型。我们的模型基于深度神经网络。深度神经网络的模型形式多样,例如深度置信网络[7],深度自编码器[8]和卷积神经网络(CNN)[9]。其中,CNN是计算机视觉任务中广泛使用的深度神经网络模型之一,也是本文所采用的模型[10,11,13]。它对原始输入图像应用可训练滤波器和局部邻域池化操作,从而生成层次化且日益抽象的特征。由于其结构和工作原理与视觉系统高度相似,CNN在视觉目标识别方面能够取得优异的性能 [10],。CNN的基本操作和结构包括初始化器、激活函数、池化层、滤波器训练层和分类器[15]。这些结构和操作的不同组合可以形成不同的模型,如VGG [17], LeNet[19]和AlexNet[18]。它们在特定应用领域的性能可能有所不同,因此针对不同应用可以采用不同的结构。此外,深度学习也被称为调参的艺术,因为模型具有大量参数,而精细的调参可能直接影响网络是否能达到预期的任务性能[19]。在我们提出的CNN中,我们采用丰富模型来初始化神经网络的第一层,该方法我们在[20]中提出,并已证实其有助于模型在伪造图像检测中实现高性能。图1分别展示了来自伪造图像和真实图像在不同层的特征。第一层的特征图在伪造区域周围表现出明显差异。这些突出的特征可能对我们的任务具有重要意义。然而,直接对图像应用拉伸变换会降低基于CNN的方法的性能,因为伪造边缘的特征对拉伸变换非常敏感。为了避免拉伸变换带来的影响,我们采用了一些特殊方法。在[20],中,我们对特征图应用最大池化。通过支持向量机(SVM)使用对比损失函数时,最大池化后的特征图可达到98.02%的准确率。尽管如此,最大池化对JPEG压缩的鲁棒性仍不够强。因此,我们设计了一种新颖策略来增强其能力。

本文提出了一种新的分块策略。在所提出的方法中,我们首先将大图像分割成小块。如果一个图像块包含伪造块,则将其标记为伪造块,否则标记为认证块。

示意图0

然后,我们使用这些数据训练rCNN。训练好的rCNN作为图像伪造检测的块描述符。之后,我们应用分割与重构方法处理原始图像。新表达形式被调整大小并进行池化。最后,我们得到用于SVM的特征并对图像进行分类。与最大池化相比,我们的方法优势明显。首先,它包含了更多的图像信息。最大池化仅提取激活信息。所提出的方法不仅提取了激活信息,还包含了这些激活区域的分布。此外,最大池化对最大值非常敏感。如果区域未被正确激活,可能会掩盖其他纠错信息,导致错误分类。

本文的其余部分组织如下:在第2节中,我们阐述了分块策略的过程。在第3节中,我们展示了所提出方法在不同数据库中的实验结果。最后,在第4节中得出本文的结论。

2 所提出的基于块的卷积神经网络

对于基于CNN的计算机视觉任务,例如图像处理应用,CNN训练的计算复杂度通常与图像维度成正比(介于线性和指数之间)。为了加速计算,我们在实现中采用了基于块的CNN策略。另一方面,CNN是一种数据驱动方法。分块策略有助于大幅扩展训练集,以实现有效特征学习。在经过CNN处理后,需要将每个块的特征或局部解进行组合,从而获得全局解。过去,我们采用一维最大池化来避免拉伸变换,因为拉伸变换可能通过插值和采样破坏伪造边缘。然而,该方法在很大程度上忽略了几何和纠错信息,并且对CNN激活的大值非常敏感。

因此,在我们的分块策略中,我们通过将块放回原始位置来直接恢复图像。这种重建方法仍然存在的问题是,来自不同尺寸图像的特征图具有不同的尺寸。因此,我们必须对特征图应用拉伸变换,但在此处应用拉伸变换是合理的,原因如下。之后,对重构特征图应用二维最大池化。最后,可将特征图排列成向量,供支持向量机 (SVM)等分类器使用。

2.1 块,rCNN,重建和调整大小

在本文中,我们主要使用紧密分块和边缘分块。通过这种分块方法,任意两个块之间没有间隙,边缘部分直接从反方向获取。事实上,边缘分块可能会引起一个重要问题。所提出的方法最终会重建这些块。重建过程导致了一些重复区域(图1)。

示意图1

然而,这并不影响分类。因为最终结果是由每个块的特征决定的。在所提出的方法中,最重要的特征描述符是rCNN。rCNN处理这些块,因此描述是局部的。如果每个块都没有被标记为伪造图像,那么这些块的组合也不是伪造图像(图2)。

分块后,以我们的实验为例。块尺寸为 128×128。经过表1中的卷积神经网络处理后,从卷积层8中提取特征,其大小为 5×5×16。

分块并经过卷积神经网络处理后,这些块应被重建为原始图像的一个特征。重建是将块放回原始位置,使得特征图中的特征反映原始图像。然而,在执行此操作之前,应对特征图进行中心对称处理,因为在使用卷积神经网络提取特征时,图像实际上是进行中心对称处理的。因此,该操作可以消除卷积神经网络的方向影响。

然而,重建无法保证重建的特征具有相同的尺寸,因此需要进行重设尺寸过程。该重设尺寸过程

表1. 本文中rCNN的结构与设置。
ReLU
卷积层 2 Xavier
ReLU
Pool
LRN
卷积层 3 Xavier
ReLU
卷积层 4 Xavier
ReLU
Pool
LRN
卷积层5 Xavier
ReLU
卷积层6 Xavier
ReLU
卷积层6 ‐
ReLU
卷积层7 Xavier
ReLU
dropout
Ip1
带损失的Softmax

实际上是大特征图的一种拉伸变换,从而得到相同大小的特征以进行池化操作,最终分类器能够基于固定大小的特征向量对输入图像进行分类。在伪造图像检测中,拉伸变换并不理想,因为伪造边缘的统计信息对此类变换较为敏感。然而,与原始图像相比,特征是稀疏的。卷积神经网络实际上是对原始图像多次应用激活和池化操作,每一层都会放大激活值并减少冗余。由于稀疏性,该特征应对拉伸变换更具鲁棒性。实验结果也支持这一推测。特征的拉伸变换是有效的,且优于原始特征的拉伸变换(表2)。

在表2中,对原始图像应用拉伸变换会严重降低分类性能。相反,对特征应用拉伸变换则能获得更好的性能。因此,对特征应用拉伸变换更为合适。

表2. 操作1 是对原始图像应用拉伸变换 使用本文中的分类方法。操作2是Softmax分类器,它是 rCNN的直接结果。操作3是对其应用拉伸变换 特征并使用本文中的分类方法。
操作
操作1 74.24%
操作2 93.21%
操作3 97.97%

2.2 二维池化

池化是神经网络中一种常见的操作,有助于减少冗余并提取重要信息。事实上,池化的原理与视觉系统类似。哺乳动物视觉系统对小区域内的特定值非常敏感。这一工作过程在数字图像处理中非常有用。通过这种方式,可以显著降低存储需求。一般来说,池化是一个特定窗口函数的过程。该窗口函数可以是均值函数、最大值函数、最小值函数等。窗口以特定步长滑动,且窗口处理的区域可以重叠或松散。窗口函数从处理区域中给出一个值。此外,池化操作可以是多维的。图3分别表示一维最大池化和二维池化的过程。

示意图2 是一维最大池化。窗口函数是最大值函数,滑动步长为一。(b) 是二维池化。窗口函数也是最大值函数。然而,此池化的滑动步长为二,并且还包含零填充以解决剩余部分问题。)

池化方法多种多样,因为滑动步长、窗口函数和填充的设置不同。本文中的池化不采用填充。因此,步长、窗口函数大小和对象大小的设置应满足公式 (1)。

$$ T = \begin{cases}
\frac{S - W + 1}{2p}, & \text{if } W \text{ is odd} \
\frac{S - W + 2}{2p}, & \text{if } W \text{ is even}
\end{cases} $$

其中,T 是窗口函数的移动次数,S 是池化过程的长度,p 是滑动步长。显然,它们均为正整数或零。实际上,池化的设置对结果的性能有很大影响。合理的池化参数设置需要大量测试。

2.3 提出的检测方法

过去,一维最大池化被用于处理rCNN的特征。本文提出了一种分块方法(图4)。

示意图3

一维池化特征与原始图像的几何位置完全无关。然而,从二维池化特征中,可以容易地确定伪造区域的位置,尽管可能不够精确。事实上,如果某个块被分类为伪造图像,则由于在池化过程中保留了该块的所有大值,一维池化特征很容易被分类为伪造图像。通常情况下,当原始图像是伪造图像时,许多块会同时被分类为伪造块。因此,一维池化在识别伪造图像方面非常强。然而,有时认证图像中的某个块可能被错误地分类为伪造图像,从而压倒其他块。另一方面,二维池化方法具有鲁棒性,少量错误的块不会对整体特征产生很大影响。但这种方法可能会受到特殊伪造边缘的严重影响。例如,如果伪造部分非常小,则可能被视为噪声。实验表明,二维池化方法在分类认证图像方面非常有效。结果还表明,二维池化方法的性能弱于一维池化方法。然而,二维池化方法对JPEG压缩比一维池化更具鲁棒性,这在第3节实验部分中有所体现。事实上,JPEG压缩容易引起小的颜色块,其边缘与伪造边缘非常相似。在rCNN过程中,由于这些颜色块的存在,JPEG压缩会产生大量噪声。这些噪声会严重影响一维池化,因为它从每个块中选择最大值。这些噪声被激活并被选为特征图的一部分,从而导致一维池化方法无法识别认证图像。然而,这些噪声对二维池化影响较小,因为这些噪声仅占据整个特征图相当小的区域。总之,整个过程可以总结为以下步骤:

  1. 分块:紧密分块并从反方向取剩余部分。例如,如果图像尺寸为 150×150,且块尺寸为 128×128。经过所提出的分块方法后,我们得到4个块:1. 长度1–128,宽度1–128;2. 长度23–150,宽度1:128;3. 长度1–128,宽度23–150;4. 长度23–150,宽度23–150。
  2. rCNN处理:这些块由rCNN进行处理。rCNN的结构见表1,rCNN的详细信息可参考[20]。例如,如果我们从卷积层8中提取特征,则得到4个特征,其大小为 5×5×16。
  3. 重建:将块的特征图的中心对称部分放回原始图像中的对应位置。重建后得到一个 10×10×16的较大特征。
  4. 调整大小:拉伸变换。例如,我们应用拉伸变换将一个 10×10×16的特征调整为一个 20×20×16的特征。
  5. 池化:二维最大池化且无填充。本文采用大小为 5×5、移动步长3的池化操作。根据第2.2节,对 20×20×6的特征进行池化后得到一个 6×6×16的特征。
  6. 支持向量机:使用支持向量机对来自池化特征排列成的向量进行分类。我们将 6×6×16的特征按行排列,得到一个长度为576的向量。实际上我们是逐层排列特征的。先排列第一层,得到一个长度为36的向量,再将其与下一层产生的长度为36的向量连接起来。依次类推,最终得到一个长度为576的向量。我们将其作为SVM输入。

3 实验结果和分析

在本节中,我们将所提出方法的检测精度和对JPEG压缩的鲁棒性与其它最先进的方法进行比较。涉及的竞争方法包括:SPT & LBP方法[5],该方法目前实现了最先进的检测性能,以及何[5]提出的DWT与DCT方法。我们选择何的方法,是因为它基于域变换。实验中使用了三个常用数据集,即CASIA1、CASIA2和哥伦比亚伪造图像数据库,作为训练和测试的基准[6,22]。CASIA v1.0数据集包含1725张大小为 384×256像素的彩色JPEG格式图像,其中925张为伪造图像。伪造部分可能经过缩放、旋转或变形处理。CASIA v2.0数据库更具挑战性,因为数据集制作者对篡改区域应用了其他后处理操作。该数据集包含7491张真实图像和5132张伪造图像。这些图像的尺寸各异,从 240×160到 900×600不等,存储格式也多样化,包括JPEG、BMP和TIFF。CASIA v1.0和v2.0均包含拼接和复制‐移动伪造图像。哥伦比亚数据集(又称DVMM)包含933张真实图像和912张拼接图像,图像大小为 128×128。这些图像除了拼接或复制‐移动操作外,未经过其他任何处理,且全部为灰度图像。除数据集细节外,rCNN的结构在表1中进行了介绍。首先,为了方便起见,我们将所有训练图像裁剪为 128×128图像用于训练。此操作有助于我们获得较大的训练集。通过改变方向并应用对称操作,进一步扩充了数据集。而在测试时,所有图像严格保持不变,直接由前述方法或对比方法进行处理。此外,实验采用十折交叉验证方式,即将数据集划分为十部分,每次实验使用其中九部分作为训练集,剩余一部分作为测试集。经过十次实验后,所有结果的平均值即为最终结果。此外,为方便起见,在本实验中我们主要使用CAFFE框架,并主要调用Matlab中DIP工具包 [23,24]的函数。这些工具能够有效简化实验过程。同时,所有支持向量机均采用LIBSVM 3中的函数2[25]。所有重要参数(C、G)均由LIBSVM中的 easy.py自动设置。因此,除方法本身外,其余设置均保持一致。在本实验中,所有图像严格保持与数据集中原始图像相同。表4展示了不同方法在不同数据集上的准确率结果。关于关键设置,块大小为 128×128,CNN特征提取自第8卷积层。此外,重构特征被调整大小至 20×20。随后,对该特征应用大小为 5×5、步长3的最大池化操作,得到一个 6×6×16的特征。最终,将这些特征排列成一个576维向量,并使用支持向量机完成分类任务,其中C和G通常分别为1024和1。从表4可以看出,我们基于CNN的方法取得了更优的检测性能,在所有3个数据集上的表现均优于其他竞争方法。

表4. 我们提出的方法与其他竞争方法的性能比较
数据集 (%) LBP& SPT DWT& DCT Proposed Max-pooling

然后我们比较了所涉及方法的鲁棒性性能,结果总结在图5中。JPEG压缩通过Matlab DIP工具包中的imwrite函数实现。图像格式设置为‘.jpg’,且压缩因子各不相同。我们分别设置JPEG压缩因子为95、85、75、65、55、45、35、25、15、5。图5显示,我们的方法在所有涉及的方法中是最具鲁棒性的。此外,从曲线可以看出,所提出的方法对压缩因子具有鲁棒性。尽管在应用压缩后其性能立即下降,但即使压缩因子降至0.05,性能仍然非常稳定。这可能是因为所提出的方法能够在JPEG压缩过程中学习到重要的稳定特征。另一方面,LBP & SPT对JPEG压缩非常敏感,准确率很快下降至50%。实验结果表明,提出的基于块的卷积神经网络方法及池化策略在检测伪造图像方面非常有效,并且对JPEG压缩具有良好的鲁棒性。

示意图4

4 结论

本文提出了一种用于图像伪造检测的新型基于块的CNN方法。本文表明,我们的方法是检测伪造图像的最佳方法之一。它不仅能够实现接近最先进的技术水平,而且对一种非常常见的操作:JPEG压缩具有高度的鲁棒性。正如我们之前提到的,检测伪造图像在信息安全中具有重要意义,同时对数字图像处理和目标识别也有特殊意义,因为边缘信息在数字图像处理中非常重要,而边缘本身也是目标识别中一个非常特殊的对象。

事实上,存在许多其他操作用于后处理伪造边缘。本文仅展示了对JPEG压缩的鲁棒性。显然,rCNN具有强大的学习能力来应对各种操作。因此,需要进一步研究该方法,以充分挖掘其潜力。此外,计算是基于卷积神经网络的图像伪造检测中的另一个关键问题。事实上,尽管我们使用最新的GPU训练卷积神经网络模型,但仍然非常耗时。因此,寻找加速计算的方法至关重要,例如集群GPU计算,这也是我们未来研究的方向。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值