基于超像素形状特征的图像复制粘贴篡改检测算法*
2021-03-01魏伟一王立召王婉茹赵毅凡
魏伟一,王立召,王婉茹,赵毅凡
(西北师范大学计算机科学与工程学院,甘肃 兰州 730070)
1 引言
随着现代信息技术的迅速发展,快捷简便的图像处理方式使得图像篡改变得轻而易举,因此图像篡改检测具有十分重要的意义。在目前的取证技术中,主动取证技术具有更广泛的应用,也是目前图像取证研究的主要方向[1]。复制粘贴篡改是目前最常用的数字图像篡改手段之一[2],其方法是将图像的某个区域复制之后粘贴到同幅图像的另一个区域,达到增加目标或隐藏目标的目的。目前,复制粘贴篡改检测CMFD(Copy-Move Forgery Detection)分为基于块的方法和基于关键点的方法。
基于块的方法通常是将图像划分为交叠的规则块,然后匹配图像块的特征,定位篡改区域[3]。文献[4]将图像划分为交叠矩形块,并在矩形块内提取图像的DCT(Discrete Cosine Transform)系数作为矩形块的特征向量进行匹配,具有较高的检测精度。Lee等人[5,6]提出使用梯度直方图作为图像块的特征描述符进行篡改检测。Wang等人[7]将图像划分为圆形块,并使用四元数指数矩的模作为特征向量进行篡改检测,该方法对旋转和缩放具有一定的鲁棒性。秦娟等人[8]提出一种基于圆谐-傅里叶矩的篡改检测算法,提取每个块的圆谐-傅里叶矩作为块的特征定位篡改区域,该算法能有效抵抗噪声、高斯模糊和旋转等操作,且与基于Hu矩的方法相比具有更好的检测效果。Zhao等人[9]针对划分交叠块时间复杂度高的缺陷,提出基于DCT-SVD的CMFD方法,使用量化的DCT系数矩阵获得更稳健的图像特征,并通过SVD降低每个块的特征维度,有效降低了算法时间复杂度。Yang等人[10]提出一种基于多粒度超像素的CMFD算法,将超像素与特征点结合检测伪造区域,该算法对于噪声、JPEG压缩和几何形变有较高的鲁棒性,且有效提高了检测效率。综上所述,对图像进行区域划分主要有划分矩形块、划分圆形块、划分超像素几种方法,前2种方法划分的大量交叠块使得后续特征提取和匹配时间复杂度较高,基于矩形块的方法对几何变换的鲁棒性较低,而超像素划分的方法能够有效提高检测效率。
Figure 1 Flowchart of algorithm
基于关键点的方法通常需要选择稳定的关键点,并计算关键点特征描述符进行匹配,定位篡改区域。基于关键点的方法时间复杂度较低,且抵抗几何变换的鲁棒性较高。文献[11]提出了一种基于加速鲁棒特征SURF(Spedup Up Robust Features)算法的复制粘贴篡改检测方法,相比基于尺度不变特征SIFT(Scale-Invariant Feature Transform)算法的检测,检测效率有所提高。针对传统方法中效率低和精度不高的问题,独智序等人[12]提出一种基于稳健关键点的CMFD算法,将离散小波变换高斯随机矩阵应用于SIFT特征向量,降低了特征维度。文献[13]提出使用SIFT、不变矩和区域增长的方法,能有效地检测伪造区域。文献[14]提出了一种结合局部强度顺序模式与SIFT特征点的复制粘贴篡改检测算法,该算法使用g2NN匹配关键点,并利用新的关键点描述模型与基于密度网格的过滤策略去除冗余匹配关键点对,该算法在图像经过旋转、缩放等处理而变形的情况,具有一定的鲁棒性。基于关键点的方法通常有基于SIFT、基于SURF、基于ORB(Oriented fast and Rotated Brief)以及在此基础上的改进算法,这些算法在一定程度上能够表现出良好的检测效果,但是对于纹理复杂程度较高的图像,难以检测到准确的关键点。
近几年来随着人工智能的快速发展,出现了基于深度学习的方法。文献[15]提出一种基于深度神经架构BusterNet的CMFD方法,该方法具有2个分支架构,并带有融合模块,通过视觉相似性来定位伪造区域。但是,该算法仅仅依靠DNN(Deep Neural Networks)的结构,对于未经训练的篡改图像效果不理想。文献[16]提出了一种端到端的Dense-InceptionNet方法进行篡改检测,该方法分为金字塔特征提取、特征相关匹配和分层后处理3个步骤,表现出良好的检测性能。这些基于深度学习的图像篡改检测算法基本上都源于数字图像的成像过程留下的模式噪声,而且鉴定图像复制-粘贴的算法相对较少。
本文针对超像素分割结果受分割数目的影响和特征点提取忽略了颜色信息的问题,提出一种新颖的超像素自适应划分和超像素形状编码方法,并在颜色不变量模型中得到稳定的特征点,增强了超像素描述的鲁棒性,实现了有效抵抗几何不变性的图像复制粘贴篡改检测。
2 基于超像素形状特征的CMFD算法
基于超像素形状特征的CMFD算法过程如图1所示。首先分割超像素,提取稳定的特征点;其次,根据超像素不同方向边界像素到中心像素的距离差异构建新的形状编码方案提取超像素形状特征,将超像素形状特征编码与特征点融合并匹配;最后对匹配的超像素二次分割与匹配,经过后处理获得最终的检测区域。
2.1 基于小波对比度的熵率超像素自适应划分
超像素是颜色、纹理相似度较高的像素组成的小区域。常见的超像素分割方法有简单线性迭代聚类SLIC(Simple Linear Iterative Clustering)和熵率超像素分割ERS(Entropy Rate Superpixel)。Liu等人[17]于2001年提出熵率超像素分割ERS,该方法将图像映射成无向图,将图像的分割转换为对图的分割。ERS既完整地保留了图像边界信息,也有效提高了检测效率。如图2所示,SLIC分割的超像素块大小较均匀,而ERS对边界的处理效果较好,由于超像素形状特征编码依赖于超像素块的边界信息,因此ERS更适合本文所提出的复制粘贴篡改检测算法。
Figure 2 Comparison of SLIC segmentation images and ERS segmentation images
Figure 3 Adaptive superpixel segmentation images
目前,大多数超像素分割算法对于超像素分割的数目都需要预先设定一个固定值,若划分的数目太小,会降低检测精度,若划分数目过大,会增加时间复杂度。由于图像的小波对比度同时考虑了图像内的低频分量和高频分量,能较好地反映图像内各个对象视觉上的差异[18],因此本文通过研究小波对比度与图像纹理复杂程度的关系,对超像素划分数目进行自适应确定。首先对图像进行4级小波变换,然后提取变换后的低频分量和高频分量并计算图像小波对角对比度P,如式(1)所示:
(1)
(2)
2.2 基于颜色不变量的SURF特征点检测
近年来,许多研究者提出了很多图像特征点检测算法应用于图像视觉领域,例如Harris角点检测[19]、SIFT[20]、抗错性尺度不变特征SIFER(Scale-Invariant Feature detector with Error Resilience)[21]和SURF[22]等。但是,这些算法大多忽视了图像的颜色信息,难以有效检测稳定的特征点。因此,本文采用基于颜色不变量的SURF算法提取鲁棒的特征点[23]。SURF算法和基于颜色不变量的SURF算法检测结果分别如图4和图5所示。
Figure 4 Detection results of SURF algorithm
Figure 5 Detection results of SURF algorithm based on color invariant
基于颜色不变量的SURF算法主要步骤如下所示:
(1)计算图像颜色不变量矩阵:在颜色不变量模型[24]中,通过以下方式对光反射率进行建模:
(3)
其中,x表示图像位置,λ表示波长,E′=e(λ,x)表示光谱强度,ρf(x)表示位置x处的反射系数,R∞(λ,x)表示物体的反射率,继而可由式(4)求得颜色不变量H。
f(R∞(λ,x))
(4)
根据高斯色彩模型,E、Eλ、Eλλ与彩色图像R、G、B3个分量有近似的关系,如式(5)所示:
(5)
由此可得到RGB图像的颜色不变量H,颜色不变量图如图6和图7所示。
Figure 6 Original image
Figure 7 Color invariant image
(2)使用颜色不变量计算Hessian矩阵。
(3)使用新的Hessian矩阵提取稳定的特征点并计算新的64维特征描述符:
(6)
其中,(x,y)为特征点坐标;n为特征向量的维数,n=64。
2.3 超像素形状特征提取
本文所提算法使用一种新颖的形状特征编码方式提取超像素形状特征应用于CMFD,以提高检测效率和精度,增强几何变换的鲁棒性。
2.3.1 超像素形状特征
文献[25]将每个超像素均匀量化为16个区域,每个方向间隔为22.5°,将中心像素和每个方向间隔的所有边界像素的距离之和定义为定向中心边界距离OCBD(Orientated Center-Boundary Distance)特征向量中的一维,OCBD特征向量的第i维由式(7)计算得到:
(7)
2.3.2 超像素形状编码
文献[25]只是将方向间隔内边界像素和中心像素的距离简单求和获得16维OCBD特征向量,对于旋转或缩放等几何变换不具有鲁棒性,计算量较大。因此,本文提出了有效抵抗几何变换的超像素形状编码方式,即以超像素的质心为中心像素,利用超像素16个方向的边界像素到中心像素的距离与这些距离的均值的大小关系进行编码,并使其超像素的形状编码方式具有旋转不变性,这种编码方式的计算量大大减少,如图8所示。
Figure 8 Graphical display of superpixel segmentation,center pixels,boundary pixels,and their average distances
具体的编码过程如下所示:
(1)超像素均匀量化为16个方向,间隔为22.5°。
(2)计算第i个方向间隔内边界像素到中心像素的距离均值,作为该方向边界像素到中心像素的距离ri,如式(8)所示:
(8)
(3)计算16个方向边界像素到中心像素距离的平均值r,将每个方向边界像素到中心像素的距离ri与r比较,若ri>r,则该方向边界像素到中心像素的距离编码为1,否则,记为0。第i个方向的形状特征值为一个0和1组成的编码值,如式(9)所示:
(9)
(4)为了进一步提高形状编码的旋转不变性,以16个边界像素的不同位置为起点,顺时针旋转编码得到二进制数,然后转换为十进制整数,得到16个十进制形状编码,取最小值作为该超像素的形状特征,如式(10)所示:
(10)
当超像素包含的像素数目过少时,会因为微小的像素级差异导致检测结果不准确。但是,利用基于熵率的超像素自适应划分后,一般划分的区域较大,因此个别区域较小的超像素对最终的检测结果影响甚微。
2.4 超像素特征融合与匹配
在提取图像SURF特征点和超像素形状编码之后,将SURF特征点与超像素形状编码融合,提高CMFD算法的精度;然后使用精确欧氏局部敏感哈希E2LSH(Exact Euclidean Locality Sensitive Hashing)[10]进行特征点匹配,由此可得每2个超像素之间匹配特征点的个数;通过2个超像素之间特征点匹配的数目可以粗略估计可疑篡改区域。
2.4.1 特征融合
将超像素内所有SURF特征点描述符与超像素形状编码融合,得到新的64维SURF特征点描述符,如式(11)所示:
(11)
2.4.2 超像素特征匹配
(1)用E2LSH进行特征点相似性度量:由于空间中距离相近的2个点原本就有较高的相似性,因此要求匹配的2个关键点的距离满足以下条件:
‖(x1,y1)-(x2,y2)‖>T_N
(12)
其中T_N为距离阈值。
(2)在完成了特征点匹配之后,可以求得任意2个超像素中特征点匹配的数目。将所有超像素之间匹配特征点的数目进行排序,得到一个升序的数目集,然后对数目集求一阶导数和二阶导数,超像素匹配阈值T1可由式(13)得到:
(13)
2.5 超像素再分割与匹配
在得到可疑篡改区域后,要精确定位篡改区域。将超像素进行更小尺寸的超像素分割,方法与初次分割超像素类似。对超像素的初次匹配可得可疑超像素中匹配的特征点对,用二次划分的超像素代替匹配的特征点,将得到匹配的更小的超像素对。具体过程如下所示:
(1)定位匹配的超像素中的关键点对,P={(p1,q1),(p2,q2),…,(pi,qi),…,(pk,qk)},其中,(pi,qi)表示匹配的特征点对,k表示匹配的特征点总数。
(2)将超像素继续分割为更小的超像素,方法与之前类似,用分割后的更小的超像素代替之前匹配的关键点对,最终得到匹配的更小的超像素对:
S={(sp1,sq1),(sp2,sq2),…,
(spi,sqi),…,(sps*,sqs*)}
(14)
其中,(spi,sqi)表示匹配的超像素对,i=1,2,…,s*,s*表示匹配的超像素对的总数。
2.6 后处理
由于在篡改检测时会丢失篡改区域的超像素,这会降低CMFD的精度和召回率。篡改区域通常是一个连续较大的区域,通过提取可疑伪造区域超像素及其相邻像素的局部特征,将具有相似局部特征的相邻超像素合并为一个区域,可提高CMFD的检测精度,具体方法如下所示:
(1)对于每一个超像素对及其8个邻域的超像素,计算其颜色均值。
(2)当邻域超像素的平均颜色值与当前超像素的平均颜色值满足式(15),则将其合并到当前超像素:
(15)
其中,G(·)为超像素的颜色均值,θ表示邻域超像素的方向,T_G是颜色均值相似度的阈值。
(3)最后经过形态学操作填充并平滑边界,得到完整的CMFD结果。
3 实验结果与分析
本节通过实验验证所提算法的性能,运行环境为Intel(R)Core(TM)i7-8550U处理器,内存 8 GB,软件为Matlab R2016b。
3.1 数据集、攻击类型及评价标准
本文使用3个公共数据集进行实验。第1个是Christlein等人[26]提出的数据集,简称FAU。FAU包括48幅原始图像和87幅篡改图像,这87幅篡改图像就是复制同一幅图像中的区域粘贴到原图中的图像。原图的平均尺寸约为3000×2300,复制每个图像约10%的区域对图像进行复制粘贴篡改。第2个数据集是Cozzolino等人[27]提出的,称为GRIP。此数据集包含80幅原始图像和80幅复制粘贴篡改图像。图像的尺寸均为768×1024,其复制区域约为图像的1%。第3个数据集是CoMoFoD数据集[28],包含200幅基础图像和4 800幅不同类型攻击的篡改图像,平均图像尺寸为512×512。
除了在普通情况下测试本文算法,本节还在图像受到各种攻击时进行测试。在受到攻击的情况下,由原始图像生成篡改图像时,会通过各种手段处理复制粘贴区域,例如JPEG压缩、高斯白噪声和几何形变(例如缩放和旋转)。
为了综合评价所提算法的性能,在图像级别定义了评价指标F值,如式(16)所示:
(16)
其中,Tp表示检测到的篡改图像数目,Tn表示未被检测到的篡改图像数目,Tw表示检测错误的篡改图像数目。在像素级别,类似地,Tp表示图像中篡改的像素数目,Tn表示图像中未被检测到的像素数目,Tw表示图像中检测错误的像素数目。
3.2 设置参数
从实验的角度来讲,参数的选择对于最后的结果有至关重要的影响。需要设置的参数有关键点空间距离T_D、颜色均值相似度T_G,分别由实验确定。从数据集FAU和GRIP中随机选取40幅图像,使用几何变换等处理操作得到200幅篡改图像,对200幅篡改图像使用不同的参数实验,通过实验结果评价不同参数值对实验结果的影响。
(1)在特征点匹配时,搜索到的特征点对中,2个空间距离相近的特征点也可能被搜索到,因此本文对特征点对的空间距离使用阈值T_D进行约束,而选取的T_D过小或过大都会影响算法的性能。本文使用不同的距离阈值T_D测试算法性能,结果如图9所示。通过实验得出T_D设置为0.5时,算法性能最优。
Figure 9 Spatial distance threshold selection
(2)为减少错误匹配,在后处理的操作中,本文引入了颜色均值特征,在比较当前超像素与邻域超像素的颜色均值相似度时,使用T_G作为特征相似度阈值。本文通过实验测试不同的T_G对实验结果的影响,如图10所示。通过实验得出,T_G=13时算法有更好的表现。
Figure 10 Color similarity threshold selection
Figure 11 Comparison of algorithms
3.3 实验结果与对比
将本文所提算法与文献[10,26]算法在FAU和GRIP数据集上进行实验,部分实验结果如图11所示。
对FAU和GRIP数据集中的图像进行旋转、高斯白噪声和JPEG压缩处理,使用不同的算法进行测试,部分结果如图12~图14所示,在理想情况下,各种算法的F值和运行时间比较如表1所示。
Figure 12 Result of rotatig angle test
Figure 13 Result of increasing the Gaussian white noise test
Figure 14 Result of JPEG compression test
Table 1 Comparison of F-measure and CPU running time among the proposed algorithm and other algorithms
通过2个数据集上的测试结果可以看出,本文所提算法能够较快、精确地检测出伪造区域,同时在对抗JPEG压缩、高斯白噪声和几何形变等方面均表现出了良好的性能,且有效降低了算法的时间复杂度。
现有的最新算法在GRIP数据集和FAU数据集上检测效果较好,但在CoMoFoD数据集上检测效果不够理想,为了验证本文算法的有效性,在CoMoFoD数据集上进行测试,部分结果如图15所示。依据此数据集的高斯白噪声和JPEG标准,将本文所提算法与文献[10,26]算法在CoMoFoD数据集上进行对比测试,测试结果分别如图16和图17所示。从图17中可以看出,虽然在CoMoFoD数据集上表现不佳,但是相比较文献[10,26]的算法,本文所提算法在JPEG压缩和高斯白噪声的攻击下更具优势。
Figure 15 Result on CoMoFoD dataset
Figure 16 Result of increasing the Gaussian white noise test on CoMOFoD
Figure 17 Result of JPEG compression test on CoMOFoD
4 结束语
针对传统CMFD算法时间复杂度高以及几何不变性脆弱的问题,本文提出了一种基于超像素形状特征的图像复制粘贴篡改检测算法,该算法采用一种新型的超像素形状特征编码方法并结合特征点进行篡改检测。在不同数据集上的多种实验表明,所提算法在精度和时间复杂度上都表现出了良好的性能。在对篡改图像进行诸如JPEG压缩、高斯白噪声和几何形变等处理的情况下,所提算法也具有较强的鲁棒性。但是,对于过于复杂的组合篡改攻击,该算法性能有所降低,因此未来的工作将针对组合篡改攻击研究更加有效的方法。