杨 海,蔺 聪
(1. 广东财经大学信息学院,广州 510320;2. 广东财经大学统计与数学学院大数据与教育统计应用实验室,广州 510320;3. 中山大学广东省信息安全技术重点实验室,广州 510006)
随着计算机技术的不断发展,新手只需经过简单的学习就可借助图像编辑软件对图像进行篡改。篡改后的图像很难用肉眼辨别其真伪,使图像的真实性和完整性受到威胁[1]。因此,迫切地需要可靠且全面的篡改检测技术来识别伪造图像。
图像伪造中,常用的篡改操作有:复制移动、修复和拼接。图像拼接伪造是复制一幅图像的部分区域,然后粘贴到另一幅图像中并合并成一幅新图像[2]。在2017 年美国国家标准与技术研究所的Nimble挑战中[3],图像拼接问题被重新表述为:给定一个查询(探针)图像Q和一个潜在供体图像P,其目标除了检测Q是否包含来自P中的区域,还要定位出Q的拼接区域和P提供给Q的区域。这将图像拼接检测和定位的研究约束在一对图像上,因此Wu 等[4]将其定义为约束图像的拼接检测和定位(constrained image splicing detection and location, CISDL)。CISDL问题所用输入图像如图1 所示,图中第三列Qm中白色表示拼接区域,黑色为真实区域,第四列Pm中白色区域为提供给Q的区域。图中前两对图像的Q中包含了来自P的区域,为篡改图像,第三对图像为真实图像。
图1 CISDL问题所用图像
针对CISDL 问题,本文提出一种基于切比雪夫-傅里叶矩(Chebyshev-Fourier Moments,CHFM)特征的检测方法。本方法首先用CHFM矩[5]进行特征提取;其次用PatchMatch[6]算法进行特征匹配,得到各像素对应匹配像素的坐标索引;最后将上步得到的索引矩阵进行后处理,得到输入图像的掩模图像。
关于CISDL 问题,Wu 等[4]提出了深度匹配和验证网络(deep matching and validation network,DMVN),DMVN 网络中有特征提取、深度密集匹配、掩模反卷积和视觉一致性验证器四个模块。Ye 等[7]继承了DMVN 中的深度密集匹配,提出了特征金字塔深度匹配和定位网络(feature pyramid deep matching and localization network,FPLN)。FPLN 在深度密集匹配后添加了融合层,简化了DMVN 网络结构,可以检测和定位到小的拼接区域,但空间信息丢失限制了模型的辨别能力和定位精度。Liu 等[8]提出一种新的对抗性学习框架。该框架包含基于空洞卷积的深度匹配网络(deep matching network based on atrous convolution,DMAC)、一个检测网络和一个判别网络。Liu 等[9]又提出一种新的注意感知编解码器的深度匹配网络,称为AttentionDM。Xu 等[10]提出一种新的尺度自适应深度匹配网络(scale-adaptive deep matching network,SADM),SADM的金字塔框架捕获了多尺度细节,提高了多尺度区域和边界检测与定位的精度。
本节分为三个部分,来详细介绍提出方法的各个步骤,其流程如图2所示。第一部分介绍特征提取的相关知识;第二部分介绍Patch-Match 算法进行特征匹配的过程;第三部分是后处理,生成二值图像的过程。
图2 提出方法的流程
首先介绍一下图像矩。在数学上,图像矩一般定义为图像函数f和基函数Vnm的内积,公式为
其中:∗表示复共轭;f(x,y)是图像函数,其取值为(x,y) ∈R2。CHFM 矩是圆形矩,需将图像矩用极坐标形式进行表示,因此式(1)可表示为
式(2)中FI(n,m)表示图像矩集,f(ρ,θ)是图像函数f(x,y)的极坐标表示,其中ρ∈[0,∞ ],θ∈[0,2π ]。式(2)中基函数Vnm(ρ,θ)形式如下:
其中:Rnm(ρ)为径向基函数,可以是任意取值,j为虚数单位,取值为。
将式(3)代入式(2)中,式(2)可重新表示为
本方法中,选用的径向基函数为CHFM,其形式如下:
以上是图像矩的定义及形式,接下来用这些理论定义描述图像特征。图像中各像素的特征f(a)是由其FI(a)(n,m)值组成的集合,因此特征提取转变为求解各像素的FI(a)(n,m)值。计算FI(a)(n,m)值时,首先确定(n,m)对数量和块的大小。本方法选取16 对(n,m),即特征长度为16。块大小即滤波器大小为16×16。
其次,对式(2)进行近似,求解图像矩集。其近似形式为
特征匹配前首先对特征进行归一化,其公式为
式(7)中X是需归一化的像素对应的像素值,MinValue是需归一化的所有像素中像素值的最小值,MaxValue是需归一化的所有像素中像素值的最大值。
归一化后使用PatchMatch 算法进行特征匹配。其匹配步骤如下:
2.2.1 初始化
首先介绍一下偏移量。偏移量值是二维的,其值记录的是特征向量距离最小的两个块中心像素坐标之间的横向和纵向差值。用公式表示为
式中:Ω表示图像所有像素,a+Φ是除像素a外的像素。f(a)表示以a为中心P像素邻域的块对应的特征向量,D表示两个块对应特征向量之间的距离。D取最小值时,两个像素之间的坐标差值,即为a到其最近邻的偏移量。a对应最近邻像素(即a对应匹配点)a′的坐标用公式表示为
初始化是为图像中每个像素随机赋予一个偏移量,使每个像素都能够在当前图像中找到一个像素与之匹配,其匹配点坐标由公式(9)得到。由于特征匹配是寻找与目标点相对较远的匹配项,所以本阶段提前排除小于阈值8的偏移量。
2.2.2 迭代
本步骤是将初始化阶段好的偏移量传播和更新到整幅图像,需扫描整幅图像,在扫描时,每扫描一个像素执行传播和随机搜索,当扫描完整幅图像即一次迭代。其迭代过程如下:
(1)传播
奇数次迭代时Φ取值为ΔP(a) ={δ(a),δ(ar),δ(ac) },分别为当前像素的偏移量及其左相邻和上相邻像素的偏移量,扫描顺序如图3所示,从上至下,从左至右逐个进行扫描。首先扫描图像左上角第一个像素点,分别计算以该像素为中心的块与以该像素加上三个偏移量后得到的三个不同的像素为中心的块的特征向量之间的距离。取三个距离中的最小值,计算对应偏移量,接着执行随机搜索,更新当前像素的偏移量。然后往右扫描第二个像素,执行相同操作。当扫描完一行像素时,换行仍从左到右逐个像素进行扫描。当扫描到图像右下角最后一个像素时,扫描结束即完成一次迭代。在奇数次迭代时,好的偏移量能够传播到当前像素右面及下面各个像素。
图3 奇数次迭代扫描顺序
偶数次迭代时Φ取值分别为当前像素的偏移量及其右相邻和下相邻像素的偏移量。偶数次迭代过程中,扫描是从下至上,从右至左进行扫描。在偶数次迭代时,好的偏移量能够传播到当前像素左面及上面各个像素。
(2)随机搜索
传播得到的偏移量是在相邻像素中寻求的最优值,可能会出现在整个区域内不是最优的情况,所以需进行随机搜索,防止其陷入局部最优。
随机搜索时像素a偏移量取值公式为
其中:δ(a)是传播后的偏移量,Ri是边长为2i-1(i= 1,2,…,L)的方形网格中,服从均匀分布的二维随机变量,公式(10)中Φ取值为
本步骤首先以当前像素的最近邻像素为中心,在初始搜索半径为图像最长边的区域中随机寻找一个像素,计算以当前像素为中心的块与以该像素最近邻像素为中心的块特征向量之间的距离,与以随机搜索到的像素为中心的块特征向量之间的距离,比较两距离值。如果与以最近邻像素为中心的块特征向量的距离最小,将搜索区域半径缩小为原来一半,继续搜索。相反,更新当前像素偏移量,并以随机搜索的像素为中心,在搜索半径为原来一半的区域中继续进行搜索。当搜索半径缩小为1时,当前像素的偏移量更新完成。
通过匹配,最终得到两个分别记录各像素匹配像素的x索引和y索引的矩阵。
理想情况下,匹配后的偏移量大多是混浊的,需后处理来规范和约束偏移量,以减少误检的概率。后处理步骤如下:
(1)用半径为4 的圆形域对偏移量进行中值滤波。首先生成半径为4的圆形域,随后用其对匹配后得到的索引矩阵进行顺序统计中值滤波,得到两个新的索引矩阵。
(2)在半径为6 的圆形域中计算密集线性拟合(dense linear fitting,DLF)误差。DLF 是用线性仿射模型拟合出以a为中心N像素邻域的偏移量,使匹配后的偏移量与经过仿射后的偏移量误差平方和最小化:
(3)去除偏移对间距离小于50 的像素。本操作需计算各像素与对应最近邻像素欧式距离的平方,与阈值50×50 进行比较,会得到一幅二值图像,并与上步的二值图像取交集,最终得到去除偏移对间距离小于阈值的二值图像。
(4)形态学处理。首先去除二值图像中面积小于600 像素的区域;其次进行镜像检测,寻找二值图像中值为1 的像素,将其对应像素标记为1,并再次剔除面积小于600 像素的区域;随后对二值图像进行膨胀操作。特征生成后,去除了特征图边缘,需填充二值图像边缘,使其与输入图像大小相同。
本实验选用数据集是CASIA v2.0[12],图像大小从320×240 像素到800×600 像素不等,其中包含7200 张真实图像和5123 张篡改图像。篡改的5123 张图像中,有3302 张是复制移动问题的图像,有1821 张是拼接检测问题的图像。本实验根据Wu 等[4]上传到gitlab 上的CASIA 配对表格,随机选取100 对标签为1 的匹配对,将其对应图像拼接,并用Photoshop 生成各对图像的掩模图像。随后,对合成的图像及掩模图像进行后处理,将大小都设置为384×512像素。
为了综合评估本方法的性能,使用评价指标F1来度量,F1公式如下:
其中:图像级F1中的TP(真正例)为检测到的伪造图像的数量、FN(假反例)为未检测到的伪造图像数量、FP(假正例)为错误检测到的真实图像的数量。像素级F1中TP为检测到伪造像素的数量,FN为未检测到的伪造像素的数量,FP为误检测到真实像素的数量。在图像级上,F1的值表示检测方法识别图像真伪的能力。在像素级上,F1的值表示检测方法检测和定位图像伪造区域的精度。
为了检测本方法的性能,将本文方法与Cozzolino等[13]提出方法进行比较。图4展示了三组图像的掩模输出结果。从(c)和(d)中第一行和第三行可以看出两种方法检测到的篡改区域大小差不多,从第二行了解到本文方法检测到Cozzolino等[13]方法没有检测到的篡改区域。。
图4 两种方法检测结果对比
对比实验结果见表1,表1 中报告了两种方法图像级和像素级的F1值。通过表格了解到本方法图像级,特别是像素级的F1优于Cozzolino等[13]方法。
表1 对比实验结果/%
图像编辑软件不断发展,篡改后的图像效果逼真,很难辨别,给图像伪造检测带来极大的挑战。基于此,本文提出一种基于CHFM 特征的方法解决CISDL 问题,该方法首先提取CHFM 特征,其次用PatchMatch算法进行特征匹配,最后进行后处理,输出二值图像,以此了解输入图像对中的重复区域。
实验结果表明,本文方法检测和定位精度与Cozzolino 等[13]方法相比有了提高。但本文方法还有改造的空间,比如特征匹配方法和后处理阶段。在未来的工作中,将对这两个步骤的改进进行研究。