赵 杰 毕秀丽
(1.商洛学院电子信息与电气工程学院 商洛 726000)(2.重庆邮电大学计算智能重点实验室 重庆 400065)
互联网和多媒体技术的迅速发展使得数字图像、视频、音频的内容安全性、真实性成为社会的热点问题。传统数字内容认证的主要方式为数字水印,在版权保护领域应用广泛,取得了一些成绩,但局限性也很明显[1]。近年来,图像被动取证技术得到人们的重视。数字图像篡改方式多种多样,人们也提出了针对性的算法[2~5]。Copy-Move 是最常见的一种篡改操作。最直接的方法是穷举搜索法,但时间复杂度过高。Jessica Fridrich 等提出利用量化DCT 系数来进行块匹配检测的办法,而文献[6]提出了改进算法,通过Zig-zag 扫描选取图像块的一部分DCT 系数,该方法可以抵抗JPEG 压缩和模糊攻击。文献[7]提出对图像中每个圆形块进行对数极坐标变换,然后对变换结果再做傅里叶变换来提取特征,该方法虽然对旋转和缩放攻击具有鲁棒性,但是不能抵抗常见的后处理操作。文献[8]运用灰度归一化和不变矩阵提取各个对象的盲取证特征。文献[9]提出一种采用尺度不变特征变化(SIFT)的方法,当复制区域经过旋转和尺度缩放,这种方法仍能成功检测出篡改区域,然而,其缺陷在于其仅利用匹配的特征点对篡改区域进行标记,特征向量较长。而文献[10]则将图像转换到HSV空间再运用SIFT 特征点检测篡改。有学者提出采用kernel PCA(KPCA)算法提取分块特征,得到的基于KPCA 的特征对于加噪和JPEG 压缩有较好的鲁棒性[11]。此外还有很多方法利用方向梯度直方图、SVD 等[12~15]。本文提出一种利用局部图像感知Hash 的Copy-Move 篡改检测方法,首先提取图像块的分块特征,然后进行特征向量排序,并进行相似匹配,得到初步标记结果,然后滤除误匹配块,从而得到最终检测结果。
主要检测步骤如下:
1)如果输入图像为彩色图像,则首先将其转换为灰度图像。
2)假设输入图像大小为M×N ,将灰度图像划分为互相重叠的小块,分块大小为B×B,则共有(M-B+1)×(N-B+1)个分块。B越大分块数越少,检测越快,但漏检的几率也增大;B 越小分块数越多,检测越慢,准确性会增加,但虚警率也有可能增加。
3)将每个分块归一化为规格大小,计算直流分量及分块感知Hash 值,将其作为该分块的特征向量,特征向量长度记为L。
4)特征矩阵由每个图像块的特征向量组成,大小为(M-B+1)(N-B+1)×L。
5)对特征矩阵进行字典排序,计算排序后特征矩阵中相邻两行感知Hash 值的相似度,如果相似度大于阈值Tc,则计算这两行的位移矢量。如果这两行代表的图像块左上角像素点坐标为(i1,j1)和(i2,j2),其位移矢量为
为减小误匹配块,只选择图像块左上角像素点间距离D大于距离阈值Td的两行对应的位移矢量,并对相同的位移矢量进行计数。像素点间距离可用欧式距计算,即
6)特征矩阵遍历完成之后,会得到若干位移矢量,每种位移矢量有若干计数值。由于区域复制后有可能会进行旋转操作,因此,统计近似的位移矢量的计数值之和C,如果C大于阈值Tf,则将满足条件的对应图像块进行标记。
7)对初步标记的结果进行滤波,消除错误匹配块,得到最终标记结果。
整体流程如图1所示。
图1 基本过程
实验仿真通过Matlab R2014 完成,进行基本Copy-Move 篡改测试,复制原图中部分区域,粘贴至其他区域,形成Copy-Move 篡改,然后对篡改图像进行检测。选取两幅图片的测试结果如图2 所示。
图2 基本Copy-Move篡改检测结果
对篡改后图像分别进行色彩缩减、模糊、亮度调整、对比度调整、JPEG 压缩等后操作,然后进行检测,结果分别如图3~图7所示。
图3 Copy-Move+图像色彩缩减检测结果
图4 Copy-Move+图像模糊检测结果
图5 Copy-Move+图像亮度调整检测结果
图6 Copy-Move+图像对比度调整检测结果
还有可能出现复制区域后多处粘贴的篡改情况,利用本文算法对该类型进行测试,结果如图8所示。
图7 Copy-Move+图像JPEG压缩检测结果
图8 多处粘贴检测结果
本文采用分块的方式,利用各块的感知Hash对Copy-Move的图像区域进行检测与匹配,虽然重叠分块较多,但每块的特征矢量构建简单,运算复杂度较低。实验结果该方法对模糊、对比度、亮度调整等多种润饰的Copy-Move篡改有一定效果,对多次粘贴仍然可以标记出篡改区域。