王珠珠
(西安电子科技大学网络与信息安全学院,陕西 西安 710071)
由于图像编辑软件的大量出现和数字媒体监管力度的缺乏,人们可以轻易更改图像的内容信息,导致更改后的图像可能会传递完全不同的信息,这一有害趋势已经在很多领域引起了严重的不良后果。针对这一系列问题,许多学者对其进行了深入性的研究。总体来说,图像内容篡改操作可分为2类:复制粘贴篡改和剪切组合篡改。在复制粘贴篡改中,一幅图像里的某一部分内容会被复制粘贴到同一幅图像的另一个部分,以达到掩盖或增加图像内容的目的。剪切组合篡改是指将一幅图像的一个或几个区域复制到另一幅图像中以生成一幅新的图像。一组剪切组合篡改示例如图1所示,其中,图 1(a)为原始图像,图 1(b)为篡改图像,图1(c)为篡改图像中的真实篡改区域。本文所研究的篡改类型为剪切组合篡改,并提出了一种有效的检测算法实现剪切组合篡改检测。传统的剪切组合篡改检测算法主要是根据图像中篡改与非篡改区域之间的属性差异进行判断,基于这些属性差异的检测算法大致可分为4类:1) 基于图像本质属性的检测方法[1-3];2) 基于成像设备属性的检测方法[4-7];3) 基于图像压缩属性的检测方法[8-12];4) 基于图像散列的检测方法[13-16]。由于每种检测算法只针对一种特定的图像属性,当这种属性不明显或不存在时,会出现检测失效的情况。例如,当被篡改图像和篡改图像产自相同品牌和模型的成像设备时,它们具有相同的噪声信息,那么基于图像本质属性的检测方法就会失效;而基于图像散列技术的检测方法则需要利用原始图像的散列值才能进行判断,严格来说,这并不算一种盲检测算法。
图1 剪切组合篡改示例
近年来,由于卷积神经网络可自动学习高维数据间的映射关系,并且具有平移不变性等属性,使其在图像分类、图像语义分割、图像生成等计算机视觉领域都取得较大成功。目前,基于卷积神经网络的检测算法可实现不依赖于图像单一属性的图像篡改检测,弥补了传统算法依赖于图像单一属性、适用度不高等缺陷。文献[17]将卷积神经网络首次应用于图像篡改检测,可用于判断当前图像是否被篡改,但不能定位篡改区域的具体位置。文献[18]提出了一种基于图像块的检测算法,但仅能大致定位图像中的篡改区域。为实现篡改区域的像素级定位,文献[19-20]都使用了不重叠的图像块作为神经网络的输入进行判断。由于大多数基于卷积神经网络的图像篡改检测算法主要是对图像中的每个块进行判断分类来得到最终检测结果,缺少利用图像上下文中的特征关联信息进行匹配和判断的条件(图像中的上下文关联信息是图像篡改检测中较为重要的部分),导致最终检测结果难以达到理想状况。同时,这些方法都是由多个阶段操作混合完成的,具有较高的时间复杂度。针对以上问题,本文首先利用 U型检测网络[21]针对图像上下文间的关联信息进行定位的特点实现图像篡改检测,然后再使用全连接条件随机场[22]对 U型检测网络的检测结果进行进一步的优化精细,最终得到较好的实验效果。
基于 U型检测网络的图像篡改检测算法主要由两部分组成:U型检测网络[21]和全连接条件随机场[22]后处理。首先利用U型检测网络对输入图像中的篡改区域进行较为精细的定位得到疑似篡改区域,然后利用全连接条件随机场对上述疑似区域进行进一步的精细优化以获得最终精确的检测结果。基于U型检测网络的检测示例如图2所示,其中,图2(a)为待检图像,图2(b)为通过U型检测网络检测得到的疑似篡改区域,图2(c)为通过全连接条件随机场后处理的最终检测结果。
图2 基于U型检测网络的检测示例
一般来说,在图像分类任务中,网络结构由若干个卷积层和池化层交替组成,通过全连接层和softmax激活函数得到最终的预测类别。由于全连接层会丢失特征的空间位置信息来完成特征的分类和回归,因此在图像分割任务中,为保留输出特征能映射回输入图像的空间位置信息,需要舍弃全连接层,并利用上采样层或反卷积层来输出高分辨率的预测特征图。
2.1.1 卷积层
卷积层由一系列卷积核组成,每个卷积核负责不同的特征信息提取,这些特征信息包含了图像中的纹理信息、边缘信息、亮度分布、噪声信息等,对网络的判断起着重要作用。同时,由于卷积核权值共享的特点,可使特征提取的效率更高,整体参数更少。卷积层的计算方式为
其中,x为采样输入,wi为第i个卷积核的权重参数,bi为第i个神经元的偏置项,yi为第i个神经元的输出。
2.1.2 池化层
池化层也称为下采样层,一般在卷积层之后进行操作,可以通过池化层使卷积层输出的特征向量降维。池化层的具体作用有4个:1) 维持输出特征的不变形,这些不变形包括平移不变形、旋转不变性、尺度不变性等;2) 减小下一个卷积层的输入数据大小、减小计算量和参数大小;3)可获得固定大小的输出,例如全局均值池化可以得到输出为1×1的特征图,这对某些输入数据大小不固定的情况较为重要;4) 由于池化操作可降低网络的参数大小,进一步地也可预防网络出现过拟合的情况。
2.1.3 上采样层
上采样层一般应用于图像分割任务中,利用插值方法,将低分辨率的语义级信息放大至较高分辨率,以获得可视化结果。
U型检测网络本质上是一种卷积神经网络,于2015年由Ronneberger等[21]提出,被广泛应用于医学图像处理领域,相较于传统的神经结构分割算法,不论是检测速率还是检测精度都有较大提升。U型检测网络的结构如图3所示,图中数字表示当前的特征个数。U型检测网络首先利用连续的卷积层和最大池化层来获取图像中的上下文特征信息,然后使用一系列上采样层将得到的特征信息进行插值放大以得到高分辨率特征图,最后利用层与层之间特征的横向传播,以达到减少特征的细节信息损失和精准定位篡改区域的目的。
图像篡改检测实际上也可被看作一个复杂的图像分割问题,同理,适用于图像分割问题的方法也可用于图像篡改区域检测中。在图像篡改检测中,由于图像中篡改区域与非篡改区域之间的可鉴别特征较为隐蔽和虚弱,当网络结构较深时,这些可鉴别特征会出现梯度消失的情况,为解决这一问题,需在U型检测网络中卷积层后加入批归一化[23]操作。批归一化的具体计算步骤如算法1所示。
算法1 批归一化操作
图3 U型检测网络的结构
由于批归一化后输入数据会被限制在正态分布下,使网络的表达能力下降,为了解决这一问题,引入学习得到的γ和β进行尺度变换和偏移。同时,为解决图像中篡改区域和非篡改区域间的隐蔽特征难以学习的问题,引入focal loss[24]作为网络的损失函数。focal loss在交叉熵[25]的基础上,进一步研究了简单样本和困难样本之间的关系及其对损失值的影响,从而解决了以往网络主要针对简单样本的特征进行学习却忽略困难样本的重要性的问题。focal loss计算式为
其中,tα为可调的权重控制参数,γ为聚焦参数,为正确预测的概率。
在通过U型检测网络检测后,得到的疑似篡改区域仍包含了部分误判区域。基于此,利用全连接条件随机场[22]后处理对U型网络的检测结果进行进一步的精细优化以得到最终的检测结果。全连接条件随机场作为一种经典的判别式模型,可更好地反映观测集中所有变量之间的相互联系和依赖关系。全连接条件随机场后处理在U型检测网络检测结果的基础上,不仅可进一步精细化检测结果,同时还可以剔除那些较小的误判区域,输出结果即为最终的篡改区域检测结果。
全连接条件随机场符合吉布斯分布,如式(3)所示。
其中,i为像素为一元势函数,代表U型检测网络的输出结果;为二元势函数,计算式为
数据集 CASIA v2.0[26]是一个篡改图像复杂真实且不易被人眼判断的篡改图像数据集。为保证实验的客观性和实际性,本文选择CASIA v2.0作为实验数据集。CASIA v2.0数据集中包含了复制粘贴和剪切组合这2种图像篡改类型,由于本文仅针对图像的剪切组合篡改,因此从CASIA v2.0数据集中筛选出共计1 082组剪切组合篡改图像数据作为实验数据,其中,随机选取900组图像数据作为训练数据,142组图像数据作为验证数据,余下的40组作为测试数据。同时由于CASIA v2.0数据集中数据量的限制,实验部分采用十折交叉验证法来对实验效果进行客观公正的评估。在第3.1节中将会列出本文算法各个步骤的具体参数设置和对比实验的评价参数。进一步地,为客观验证本文所提算法的有效性及顽健性,本文从传统的基于图像单一属性的篡改检测算法和当前基于深度学习的检测算法中分别挑选出几种检测效果较好的算法作为对比算法,并在第 3.2节中列出几种算法的具体实验效果及其在各种攻击条件下的检测效果。
在训练过程中,U型检测网络的初始学习率被设定为0.1进行训练,在迭代50轮后,学习率会被降低到0.01进行训练,再次迭代50轮后,学习率会被降低至0.001继续训练,直至网络趋于平稳状态。U型检测网络选用随机梯度下降作为网络的优化器,focal loss作为网络的损失函数,focal loss中超参数at=0.25,γ=2。在全连接条件随机场后处理的推断过程中,迭代更新次数为5。本文所提算法使用Python作为编程语言,利用PyTorch深度学习库实现U型检测网络,实验部分中传统的基于单一属性的检测算法的实现平台为 Matlab,基于深度学习的检测算法的实现框架为Tensorflow,并且以上对比算法都已调至最优参数。
本文对比实验部分所参考的评价参数为精确率、召回率和F,其中,精确率的计算如式(6)所示,召回率的计算如式(7)所示,F的计算如式(8)所示。
其中,真阳性表示检测结果中正确检测为篡改区域的像素总量,伪阳性表示检测结果中错误检测为篡改区域的像素总量,伪阴性表示检测结果中错误检测为非篡改区域的像素总量。
为评价本文所提算法的实际效果,本文选择BLK算法[27]、GHO算法[28]、DCT算法[9]、CFAE算法[29]、NADQ算法[30](以上算法由Zampoglou等[31]复现)、C2R-Net算法和U-Net算法为对比实验算法。由于原始CASIA v2.0数据集的图像数据为TIFF格式,而BLK算法、GHO算法、DCT算法以及NADQ算法是基于 JPEG图像格式的压缩属性进行检测的,为保证对比实验的公平性,需将 TIFF格式的图像数据转化为零压缩的JPEG格式的图像数据。
从测试数据中随机挑选5组数据作为示例,如图 4所示。其中,每一列表示一组示例及不同方法的检测结果,第a行表示篡改图像,第b行表示对应的真实篡改区域图像,第c行表示BLK算法的检测结果,第d行表示GHO算法的检测结果,第e行表示DCT算法的检测结果,第f行表示CFAE算法的检测结果,第g行表示NADQ算法的检测结果,第h行表示C2R-Net算法的检测结果,第i行表示U-Net算法的检测结果,第j行表示本文所提算法的检测结果。从主观视觉角度出发,在 5种传统的基于图像单一属性的篡改检测算法中,BLK算法、GHO算法、CFAE算法以及NADQ算法的检测结果趋于失效状态,DCT算法也仅能大致定位出图像中的篡改内容;基于深度学习的C2R-Net算法虽然能定位出图像中的篡改内容,但仍存在少量误检及较多漏检情况;原始U-Net算法能较好地定位图像中的篡改区域,但存在少量多检及误检情况;而本文所提算法在U-Net算法的基础上精细了检测结果,筛掉了误检区域,最终展示了较好、较稳定的检测效果。
表1展示了本文所提算法及7种对比算法通过十折交叉验证在40组图像数据上的检测结果的精确率、召回率和F的平均值。由表1可知,本文所提算法的检测效果在精确率及F上都优于其他7种对比算法,但召回率略低于DCT算法及NADQ算法。尽管DCT算法和NADQ算法的检测结果的召回率较高,但从主观视角来判断,2种算法的检测结果存在较多的误检,且出现大范围失效问题(如图4第e行和第g行所示)。进一步地,为验证本文所提算法的顽健性(由于图4中已展示了原始 U-Net算法和本文所提算法在非攻击条件下的实验效果,这里不再做U-Net算法顽健性实验的展示),本文测试了7种算法在不同攻击情况下的检测效果,结果如图5所示,并分别计算精确率、召回率及F的平均值。图5(a)、图5(c)和图5(e)表示本文所提算法及 6种对比算法在不同品质因子的JPEG图像压缩攻击下的检测结果,图5(b)、图5(d)和图5(f)表示各算法在不同方差(均值默认为0)的高斯噪声攻击下的检测结果,图 5(a)和图 5(b)表示各算法在不同类型、不同程度攻击下的检测结果的精确率,图5(c)和图5(d)表示各算法在不同攻击情况下的检测结果的召回率,图5(e)和图5(f)表示各算法在不同攻击情况下的检测结果的F。从图5可以看出,在JPEG图像压缩攻击下,对比算法中仅DCT算法和C2R-Net算法有一定的抗攻击能力,当品质因子为80以下时,DCT算法呈检测失效状态;在高斯噪声攻击下,仅 C2R-Net能完成检测。而本文所提算法不仅在JPEG图像压缩攻击下展示了较好、较稳定的检测结果,在高斯噪声攻击下仍维持了较好的检测效果。
图4 5组对比实验示例
表1 本文所提算法及7种对比算法在40组图像数据上的检测结果精确率、召回率和F的平均值
图5 本文算法及6种对比算法的检测结果
本文提出了一种基于 U型检测网络的图像篡改检测算法,首先利用U型检测网络检测图像中的疑似篡改区域,接着为进一步优化精细U型网络的检测结果,本文使用全连接条件随机场后处理进行处理并得到最终的检测结果。为评价本文所提算法的有效性及实际性,将其与传统的基于图像单一属性的篡改检测算法和当前基于深度学习的检测算法进行实验对比,实验结果表明,本文所提算法的检测效果优于其他几种对比算法。