刘 正, 田秀霞
(上海电力大学 计算机科学与技术学院, 上海 200090)
随着图像编辑技术的不断发展,人们可以轻松地篡改图像内容或者操纵图像生成过程,使得图像的真实性和完整性受到挑战,严重影响了人们对新闻报道、军事经济中图像真实度的信任。在已有的研究范围中,学者们将图像内容篡改类型总体上分为两类:一是复制粘贴篡改(Copy-move);二是拼接组合篡改(Splicing)。复制粘贴篡改是指是在同一幅图像上,将部分区域复制粘贴到该图中的其他位置;拼接组合篡改是指将一幅图像中的某个区域拷贝到另一幅图像中以生成新的图像。
按照是否预先在数字图像中嵌入附加信息,可以将数字图像篡改检测将分为主动检测和被动检测(也叫盲检测)两种[1]。篡改主动检测技术主要包括数字签名技术和数字水印技术。这两种方法的共同点是需要图像提供方进行摘要信息的提取或者水印的嵌入,即在实际检测时需要图像提供方进行配合。这一条件在实际操作中很难满足,因此无须对数字图像进行预先处理的数字图像篡改被动检测技术成为当前图像检测领域的研究热点。
数字图像篡改被动检测技术大体上被分为两类:一是基于特征提取的传统篡改检测技术;二是基于卷积神经网络(Convolutional Neural Network,CNN)的篡改检测技术。在早期的研究中,研究者大多将注意力集中在图像本身的统计信息和物理特性上,采用基于图像的特征提取方法来检测篡改区域,如从镜头失真矫正、颜色插值、传感器噪声等图像生成过程中不同的处理信号入手,大量的篡改被动检测算法和数学模型被提出[2-5],在信息受限的场景中得到了良好的应用,从而进一步促进了数字图像取证领域的发展。但是传统的篡改检测技术只是针对图像的某一种属性进行设计,最终的检测率不高并且鲁棒性也较差,导致基于特征提取的篡改检测算法很难在实际应用中高质量、高效率地解决图像的信息安全问题。
近年来,随着深度学习技术的不断发展,相关学者尝试使用深度学习技术解决数字图像的篡改检测问题。基于CNN的篡改检测技术利用深度学习网络的多层结构和强大的特征学习能力,实现了不依赖于图像的单一属性的篡改检测,弥补了基于特征提取的传统图像篡改检测技术适用度不高的缺点。
基于CNN的篡改检测技术不仅可以定位篡改区域,而且还能给出相应的篡改类型,在现有的用于数字图像取证的公开数据集的实验中,基于CNN的篡改检测算法效果优于传统图像的篡改检测算法,并表现出较好的鲁棒性[6-7]。
现有数字图像篡改被动检测技术的相关综述主要聚焦于传统的检测方法,如文献[6]阐述了目前国内外学者在JPEG图像篡改的被动取证技术方面的主要研究成果,基于篡改和方法的不同,将目前的检测方法分为双重JPEG压缩检测方法和JPEG块效应不一致性检测方法。文献[1]总结了目前基于底层线索和基于学习的感知哈希图像篡改检测方法,并根据方法的不同特点进行了更为细致的分类。其缺点是整体缺乏对利用CNN来设计图像篡改检测方法的阐述。本文归纳和总结了数字图像篡改被动检测方法,分析了其中的不足和面临的问题,对现有的代表性工作和方法尤其是基于CNN的方法的主要框架进行了论述,并给出了数字图像篡改被动检测技术未来的发展趋势。
基于图像统计信息和物理特征,传统的篡改被动检测技术分别对复制粘贴和拼接组合的两种篡改手段提出了相应的检测方法。学者们根据篡改手段和图像属性的不同,将检测方法分成5种类别:基于重叠块的检测方法;基于特征点的检测方法;基于图像属性的检测方法;基于设备属性的检测方法;基于压缩属性的检测方法。图像篡改检测类型及技术如图1所示。
图1 图像篡改检测类型及技术
复制粘贴篡改的一般原理是将同一幅图像中相似的物体平移到图像的另一个区域中。由于此类篡改操作对图像的变动较小,因此不容易被人发现。
复制粘贴篡改定义如图2所示。
图2 复制粘贴示意
令f(x,y)表示原始图像,g(x,y)表示复制粘贴篡改之后的图像。Aj和Ai表示原始区域,Aj′和Ai′表示复制区域。图像的原始区域和复制区域分别有位移差ΔDi=(xi,yi)和ΔDj=(xj,yj),则篡改图像可以表示为
(1)
式中:(x,y)——像素点;
f(x,y)——图像在点(x,y)处的像素值;
Δx,Δy——对应分量的坐标点差值;
∂——系统参数。
1.1.1 基于重叠块的篡改检测方法
基于重叠块的篡改检测方法是将输入的图像划分为相互重叠的像素块,每一个像素块根据不同的变换计算规则得出相应的变换值,该变换值作为此像素块的特征值,成为检测该区域是否被篡改的依据。因此,该方法的关键是依据相关数学原理在特征提取过程中计算得到的块特征。根据具体实现方法的不同,可将基于重叠块的检测方法再细分为单一几何变换法和复合几何变换法。
(1)单一几何变换法。单一几何变换法是指基于一种数字图像变换理论,实现高效快速地篡改检测。文献[7]提出了一种基于频率的复制粘贴篡改检测方法,先将图片分割成相互重叠的块,利用离散余弦变换(Discrete Cosine Transform,DCT)提取出各个图像块的特征向量,然后通过匹配和滤波,将两个相似的特征向量分别对应图像中两个相似区块,即复制粘贴篡改区域。文献[8]通过比较相似重叠块,使用主成分分析(Principle Component Analysis,PCA)的方法最终确定可能的重复区域,并且可以对经过处理的图像(比如对图像进行模糊化、噪声污染等)进行较好的复制粘贴篡改检测。
(2)复合几何变换法。为了进一步提高检测的准确性,研究者们融合不同的几何变换理论,使提取的图像块特征更接近于期望值。文献[9]提出了一种基于离散小波变换(Discrete Wavelet Transform,DWT)和奇异值分解(Signal Value Decomposition,SVD)的复制粘贴被动检测方法。首先将DWT用于图像分割,通过SVD对小波中的低频分量进行降维表示;然后按照字典顺序对向量进行分类,复制粘贴的图像块将分类在相邻列表中。通过降维操作,该方法不仅可以降低计算的复杂度,而且对于高度压缩的图像或者边缘处理的图像也能准确地定位篡改区域。与单一几何方法的不同在于,作者充分利用了DWT和SVD各自在图像块分割和降维特征提取方面的优势,在检测效率和检测质量上均获得了良好的性能。
1.1.2 基于特征点的篡改检测方法
当基于重叠块的篡改检测方法在输入的图像尺寸特别大、分割的重叠块特别多时,特征值计算和特征匹配过程缓慢,算法的时间复杂度高。为了提高检测精度和降低算法的时间复杂度,一些学者提出了基于特征点的篡改检测方法。
1999年,DAVID L D G在计算机视觉国际会议上提出尺度不变特征变换(Scale-Invariant Feature Transform,SIFT)算法[10]。该算法可在图像中检测出关键点,被广泛用于数字图像的特征描述。以后的学者在这一理论基础上进行了优化改进,开展了一系列基于特征点的篡改检测方法的研究。
AMERINI I等人[11]仿造SIFT在关键点识别和聚类方面的设计思路,提出了一种基于J-Linkage算法的复制粘贴篡改检测及其定位的方法,在几何变换空间内展现了鲁棒性较高的聚类效果,实现了对复制区域更好地预测和识别。ARDIZZONE E等人[12]提出了一种新颖的利用特征点进行篡改检测的方法,首先从图像中提取特征点(关键点),然后将对象建模为建立在这些点上的一组连接的三角形,根据三角形的形状、颜色信息以及提取到的三角形顶点的局部特征向量来进行匹配。该方法相对于单一的块匹配和点匹配实现了更高的检测精度,同时设计的算法对几何变换具有良好的鲁棒性。
基于特征点的篡改检测方法从图像的高熵区提取特征信息,得到的特征向量的数目较少,对特征匹配的时间较短,从而使得该方法的总体效率比基于重叠块的篡改检测方法总体效率要高,但其不足之处在于,当图像本身的对比度不高、光照一致性不足、图像压缩程度较高时,提取到的特征点会大大减少,导致算法失效[13]。
不同于复制粘贴篡改方式,图像拼接组合篡改操作的内容来源更广泛、不局限于图像内部的场景,因此拼接组合的篡改检测具有更大的挑战性。
拼接组合篡改的定义如图3所示。
图3 拼接组合示意
令两幅原始图像分别为f1(x,y)和f2(x,y),两幅图像的截图操作分别为系统函数H1(x,y)和H2(x,y),则拼接组合操作后的图像g(x,y)可表示为
g(x,y)=f1(x,y)H1(x,y)+
f2(x,y)H2(x,y)
(2)
1.2.1 基于图像属性的篡改检测方法
在基于图像属性的篡改检测研究中,部分学者尝试从不同图像来源所产生的不同图像统计信息来寻找特征。目前算法研究主要包括双相干特征、自然图像统计模型和边缘检测。
(1)双相干特征。文献[14]研究了利用双相干特征进行图像的篡改被动检测,并提出了使用幅值和相位作为特征来检测拼接组合篡改的可能性,最后利用支持向量机的分类方法对提出的图像属性特征的检测结果进行了评价。为了弥补经验观测与理论解释之间的差距,该作者又在上述工作的基础上提出并研究了一种基于双极信号噪声思想来检测拼接组合篡改引起的图像内容的断层[15],进一步提高了图像识别的准确度。
(2)自然图像统计模型。文献[16]提出了自然图像模型,由从给定的测试图像中提取的统计特征和应用于测试图像的多尺度块离散余弦变换生成的二维阵列组成,用于区分篡改和未篡改图像。
(3)边缘检测。拼接组合篡改导致图像边缘像素相关度的不连续性也会产生具有可分辨性的特征模式。例如,文献[17]将图像边缘像素信息进行拼接检测,判断是否发生篡改。文献[18]利用不同图像拼接时色度阈值的差异,提出了一种基于边缘图像灰度共生矩阵的彩色图像篡改检测方法。该方法采用BOOSTING[19]特征选择器来确定最优特征,然后通过支持向量机对特征进行分类。
1.2.2 基于设备属性的篡改检测方法
现代多种数字设备(如数码相机、扫描仪、手机等)都可以生成数字图像,不同成像设备来源的数字图像虽然在视觉上并没有太大差异,但是由于各种设备特征的不同(如感光元件、颜色插值等),其产生的数字图像也会有不同的可分辨性特征。通过对这些设备属性特征的提取,使用相应的取证算法可以进行篡改检测。该方法可以从两个角度来实现:一是根据彩色滤波阵列(Color Filter Array,CFA);二是根据相机的传感器噪声(Sensor Noise)。数字图像成像过程如图4所示。
图4 数字图像成像过程
(1)根据CFA插值检测。CFA插值原理是:通过将捕获的输出转换为红色、绿色和蓝色三原色通道(Red,Green,Blue,RGB)来重建全彩色图像的过程。数码相机得到一幅彩色图像,需要通过周围像素的值估计出缺失的其他两种颜色的分量信息,即为 CFA 插值过程。不同的成像设备有不同的插值算法,拼接组合篡改会导致两个区域的插值像素不连续。文献[20]利用CFA产生的伪影来检测图像篡改,提出了两个思路,一是基于CFA模式估计,二是基于CFA插值像素中的传感器噪声功率应显著低于非插值像素。在此理论基础上,文献[21]基于线性模型,对CFA插值的相关性进行了建模,通过最大期望算法(Expectation Maxization Algorithm,EM算法)[22]计算出像素的相关性系数,并对图像拼接进行了检测。为了更好地理解像素相关性系数,选择标准互相关系数来衡量RGB颜色分量间的相关性强度,即
(3)
式中:ρ(I1,I2)——相关性系数,|ρ(I1,I2)|≤1,ρ越接近1说明两个矩阵的相关性越高;
I1,I2——两个不同的矩阵;
EI——矩阵I的期望值;
M,N——矩阵的行和列,并且1≤n1≤M,1≤n2≤N。
(2)根据相机传感器噪声模式检测。其原理是:不同的图像具有不同的传感器噪声分布。由于拼接组合篡改来源于不同的两幅图像,因此拼接区域具有不同于原始图像的剩余区域中的噪声模式,利用这些差异可实现拼接组合篡改的检测。文献[23]提出了一种检测相机传感器噪声的方法,当检测某个区域缺少对应的模式噪声时,即判断为篡改区域。文献[24]利用3组统计噪声特征进行了图像篡改检测分析,包括去噪分析、小波分析和邻域分析,有效地区分了数字图像的原始区域和拼接组合区域。为了解决一些检测器对噪声敏感导致不能应对噪声退化的问题,文献[25]提出了一种简单的方法,将一幅图像分割成具有均匀噪声水平的各个分区,若添加新的局部噪声则会导致图像噪声不一致,故可以根据图像中不同的噪声级来检测篡改区域。
1.2.3 基于压缩属性的篡改检测方法
基于压缩属性的篡改检测方法主要针对JPEG文件格式的图像。JPEG是一种常用的国际压缩标准,也是目前流行的图像格式之一。由于其在高压缩率的情况下仍然能保持较好的图片质量,因此确定图像是否被压缩是图像处理中的一个重要问题,在图像篡改检测中起着非常重要的作用。
文献[26]提出了针对不同JPEG压缩生成的低质量图像的篡改检测方法,但只有在检测图像的一部分最初是低于图像其他部分的压缩品质时才有效。文献[27]提出在JPEG压缩过程中引入的块效应可以作为一种“自然认证码”,利用DCT系数直方图设计了一种估计局部JPEG压缩分块伪影度量的技术,并将伪影中的不一致性作为拼接篡改的证据。
在JPEG块效应的基础上,文献[28]将分块伪影作为检测图像篡改的“水印”,提出了分块伪影特征矩阵(Blocking Artifact Characteristics Matrix,BACM)。该方法认为对于原始的图像,BACM具有规则的对称性,对于从另一张JPEG图像中拼接过来的部分,BACM的规则对称性被破坏,充分利用这一特征并对图像篡改进行检测。文献[29]提出了一种通过检测DCT系数中隐藏的双重量化效应来检测篡改的JPEG图像并进一步定位篡改部分的方法。该方法除了能够检测图像的拼接组合篡改之外,还可以检测由各种合成方法(如消光和修补)篡改的图像,但是当整幅图像被调整大小、旋转或者裁剪时,该方法会失效。
综上所述,虽然基于特征提取的传统篡改检测方法在实际应用中都有其不足之处,但各种算法的提出有效地提升了检测效果,进一步完善了图像内容的安全保护机制。传统篡改检测算法对比如表1所示。其中,被攻击图像指的是经过处理的图像,比如对图像进行模糊化、噪声污染等。
表1 传统篡改检测算法比较
近年来,随着深度学习技术的不断发展,CNN在特征提取方面的优异表现引起了图像取证领域学者的注意。在数字图像篡改检测方面,传统的篡改检测方法只是基于某种特定图像操作所引起的图像特征改变来进行分析,而CNN的优点在于其具有强大的特征学习能力,学习到的数据能反映出数据的本质特征,更有利于结果的分类和可视化。
文献[30]首次将CNN用于数字图像的篡改检测,利用CNN从输入的RGB彩色图像中自动学习特征层次表示。为了保留更细微的篡改痕迹,使用文献[31]提出的空间丰富模型(Spatial Rich Model,SRM)初始化网络参数,并采用特征融合技术得到最终判别特征。首次基于CNN方法与其他传统方法的篡改检测性能比较如表2所示。
由表2可知,基于CNN的图像篡改检测算法在3个公开的数据集上的检测准确率均高于其他3个最新的传统篡改检测算法,表明利用CNN提取数字图像的特征信息可以更好地完成篡改图像的检测。
文献[35]提出了一种两阶段的基于CNN的深度学习方法来学习篡改特征:第一阶段使用自动编码器模型来学习每个单独的篡改特征;第二阶段整合每个篡改特征的上下文信息以便更准确地进行检测。该方法不仅在JPEG文件格式的图像集上表现突出,而且在CASIA数据集中的TIFF文件格式的图像上也实现了一定准确率的篡改检测。
文献[36]基于两阶段设计算法,采用了1个混合的CNN-LSTM模型来捕捉篡改区域和非篡改区域之间的区分特征。长短期记忆模型(Long Short Term Memory,LSTM)[37]是一种能够记录图像上下文信息的网络模型。作者的思路是将LSTM与CNN中的卷积层相结合来理解篡改区域与非篡改区域共享的边界上像素之间的空间结构差异性,通过对网络端到端的训练以及利用反向传播机制,使得整个框架能够检测包括复制粘贴和拼接组合不同类型的图像篡改操作。
文献[38]结合图像成像设备属性的特点,提出了一种利用不同摄像机模型在图像上留下的特征足迹进行图像篡改检测和定位的算法。该算法的基本原理是,原始图像的所有像素都应该被检测为使用单一设备拍摄,相反,如果通过拼接组合的篡改方式进行图像的合成,则可以检测出多个设备的痕迹。该算法首先利用CNN从图像块中提取摄像机模型特征,然后利用迭代聚类的方法对特征进行分类,以检测图像是否被伪造,并对篡改区域实现定位。该方法对于拼接组合篡改方式的图像具有很好的检测效果,但对于复制粘贴的篡改图像不适用。
文献[39]提出了一种新的深度融合网络,通过跟踪篡改区域的边界来定位篡改区域。首先训练一组称为基网的深度CNN,分别对特定类型的拼接组合篡改进行响应,然后选取若干层基网络作为深度融合神经网络,融合网络通过对少量图像进行微调后,能够识别出图像块是否由不同的来源合成的。该方法中,作者用大尺寸图像块作为网络的输入来揭示篡改区域的属性,但是当被篡改区域的尺寸较小时,该方法可能会失效。
为了学习更丰富的图像篡改特征,文献[40]提出了一种双流Faster-RCNN网络,并对其进行端到端的训练,以检测给定的篡改图像区域。同时借助Faster-RCNN在目标检测领域的应用[41-42],不仅能准确定位篡改区域,还能标注出篡改类型,如是否为复制粘贴篡改等。
其中:双流之一是RGB流,其目的是从输入的RGB图像中提取特征,以查找篡改伪影,如强对比度、非自然边界等;双流之二为噪声流,是利用富文本分析模型滤波层中提取的噪声特征来揭示真实区域和篡改区域之间噪声不一致性的特征。然后通过双线性池化层融合来自两个流的特征,以进一步合并这两种模式的空间特性,提高检测的准确性。该算法的贡献一是展示了Faster-RCNN网络如何适应图像篡改检测的双流模式;二是证明了对于检测不同的篡改方式RGB流和噪声流是互补的。这为今后在该领域的继续研究提供了创新思路。
虽然上述基于深层网络结构的图像篡改算法可以学习到更高级的语义信息,但对篡改区域的检测和定位效果并不理想。基于此,文献[43]提出了一种基于级联卷积神经网络的图像篡改检测算法,在CNN普遍特性的基础上,利用浅层稀神经元的级联网络代替以往深层次单一网络。该算法分为两部分:一是级联卷积神经网络;二是自筛选后处理。前者学习图像中篡改区域和非篡改区域的属性差异,实现多层级篡改区域定位;后者对级联神经网络的检测定位结果进行优化。
其中,级联卷积神经网络由粗筛网络、粒提网络和精辨网络3级子网络串联组成。由于级联网络结构的灵活性,通过将不同的训练数据传输到不同层次的网络中,可以学习到特定的篡改特征。自适应筛选后处理的过程是对级联卷积神经网络的输出结果进行优化,通过自适应筛选器去除误检部分,然后对筛选结果进行空白填充。实验所参考的评价参数精确率、召回率和F1值分别为
(4)
(5)
(6)
实验结果表明,该算法效果优于传统图像篡改检测算法,并且表现出较好的鲁棒性。
为了进一步提高基于CNN篡改检测方法的性能和检测效率,2019年文献[44]提出了一种环形残差网络(RRU-Net),可直接定位篡改区域而无需额外的预处理和后处理操作。该网络包含两个关键步骤:残差传播(Residual Propagation)和残差反馈(Residual Feedback)。前者主要用于解决网络中梯度退化的问题,后者使篡改区域和非篡改区域的差异对比更加明显。
表3为数字图像篡改被动检测技术综合比较。
表3 数字图像篡改被动检测技术综合比较
由于数字图像篡改被动检测技术不需要额外的先验知识,在实际的司法取证、保证新闻真实性等场景中的应用价值不言而喻,也促进了该领域学术研究的进步。综合上述近10年的发展历程,未来发展趋势可总结为两个层面,即面向互联网共享环境下的数字图像篡改检测研究和面向大规模图像数据集的数字图像篡改检测研究。
(1)面向互联网共享环境下的数字图像篡改检测研究。在目前的研究中,尤其是利用图像统计信息和物理特性的传统篡改检测方法的大部分工作还局限于实验室环境的数据集,随着互联网的开放共享和各种即时通信软件的应用,在实际生活中的图像通常会经过一系列再编辑的过程,如裁剪缩放、美颜滤镜、压缩解码等操作,会在一定程度上破坏像素之间的特征联系,从而导致现有的检测算法不能达到预期性能。文献[45]认为,考虑到图像篡改检测本身具有迫切的应用需求,可以预见针对互联网共享环境下的检测算法研究是未来一个重要的研究内容,也是从实验室走向实际应用必须要解决的问题之一。
(2)面向大规模图像数据集的数字图像篡改检测研究。得益于计算机软件和硬件设备的不断升级,深度学习技术开始走进大众视野,研究者在从大规模图像集中利用CNN学习特征时,不再支付昂贵的实验仪器费用,节省了大量的物力和财力。但是由于微信、微博等图像社交网络的流行,学者们一方面可以获取大量经过复制粘贴和拼接组合的图像,为篡改检测算法有效性的研究提供了有利条件,另一方面大规模的图像数据对篡改检测算法造成了一些困难:文献[46]认为,由于需要提取原始图像和篡改后图像的区分特征,加之需要计算篡改区域和非篡改区域样本间的相关性,使数据规模增大,导致算法的时间复杂度大大增加。因此,如何应对大规模图像数据集,是数字图像篡改检测研究在未来必须要解决的一个重要难题。
本文对当前的数字图像篡改被动检测技术进行了分析,将篡改被动检测技术分为基于特征提取的传统篡改检测和基于CNN的篡改检测,并对两个方向的主要研究工作分别进行了阐述。在此基础上,认为面向互联网共享环境下的数字图像篡改检测研究和面向大规模图像数据集的数字图像篡改检测研究是未来发展的两个主要趋势。