数字图像复制—粘贴篡改检测与定位算法

2016-12-22 22:02许曼曼杨继翔
软件导刊 2016年11期

许曼曼 杨继翔

摘 要:为了提高图像区域的复制篡改检测效率,提出了一种基于相位相关的数字图像检测与定位算法。该算法首先对图像进行滑窗分块,根据各个图像块的灰度均值大小选出可能匹配的图像块对,然后利用相位相关技术对图像块对进行匹配度计算,最后根据候选图像块对之间的距离消除误匹配块对,并标记篡改区域。实验结果表明,该算法检测效率高且实用性强。

关键词:相位相关;图像检测;篡改检测

DOIDOI:10.11907/rjdk.161845

中图分类号:TP317.4

文献标识码:A 文章编号文章编号:16727800(2016)011019903

0 引言

目前数字图像篡改检测技术是一个热门学科,在国内外得到了广泛关注。数字图像有主动取证和被动取证两种,被动取证技术因其不需要任何预签名或预嵌入信息而应用更为广泛。安徽大学的谷宗运[1]提出了基于Tchebichef矩的数字图像被动认证算法,该算法是在提取图像的低频分量后,对低频分量进行分块并提取每一块的矩特征,因而能有效抵抗噪声污染、有损压缩以及旋转等攻击;王俊文[2]提出了基于小波变换和Zernike矩的检测算法和基于高斯金字塔分解和Hu矩的算法。Zernike矩算法主要对待检测图像利用小波分解进行降维,提取低频分量进行研究。Hu矩算法的核心思想是对待检测图像进行高斯金字塔分解,并使用圆形块代替传统的方形块,以对抗区域复制过程中带来的旋转问题;刘美红等[3]提出了基于将图像分块后提取每块的特征向量进行分形和统计的检测方法,该算法最后利用图像块的位置信息和欧式距离来定位篡改区域;杜振龙等[4]提出了采用图像3种特征复合的方式来描述图像的盲检测算法;吴琼等[5]提出了基于零连通特征和模糊隶属度的图像盲取证算法;魏为民[6]提出利用JPEG块效应不一致的方法对合成图像进行盲检测;骆伟祺等[7]提出了采用图像7维特征作为图像块特征向量的特征提取方法,该方法可以对抗平滑滤波、压缩等后处理操作,但不能抗旋转;康晓兵等[8]提出了一种有效的盲检测算法来识别图像复制伪造区域,该算法采用截尾奇异值分解变换来处理图像块数据,并对图像块进行相似性匹配检测。本文利用相位相关计算图像块之间的匹配度,对图像进行滑窗分块时可以一次滑动多个像素,大大减少了图像块数量,从而有效提高了检测效率。

1 检测与定位算法

1.1 算法基本思想

当前图像篡改检测技术中最常用的是块匹配技术,该方法是将图像划分为独立且相互重叠的小图像块,然后选取图像特征来描述图像块,在图像块特征集合中搜索出特征匹配的图像块对,进而得出篡改区域。本文利用相位相关技术来判断图像块匹配度并计算它们之间的相对位移,根据相对位移可以得出它们之间的重叠部分。即使两个图像块不完全一样,利用它们的相对位移可以标记出相互重叠的部分。基于此原理,本文方法对图像进行分块时可以一次滑动多个像素,从而减少图像块数量,大大缩小了图像块对匹配的搜索空间,有效提高了程序运行时间。

1.2 利用相位相关求图像重叠率

相位相关算法是基于傅里叶变换的一种技术。由于相位相关利用图像的功率谱信息而不依赖于图像内容,所以具有很强的抗噪能力,常用于数字图像取证领域。该技术能够检测出图像块之间的偏移量。

傅里叶变换和反变换能将信号在时域与频域之间进行转化,所以能够分别在时域或频域上分析信号。由于它是一种全局变换,所以不能同时在两个域上分析信号。傅里叶变换在不同研究领域中有各种不同的变体形式,比如离散傅里叶变换和连续傅里叶变换。对数字图像进行傅里叶变换,能将图像从时域变换到频域空间,利用傅里叶频谱特性进行图像处理。快速傅里叶变换(fft)是离散傅里叶变换的快速算法,它将复杂的运算过程分解成无数个简单的加(减)运算,而且保留了离散傅里叶变换的所有特性。因此,快速傅里叶变换在图像处理中得到了广泛应用。

假设g(x,y)是由图像f(x,y)平移变换所得,平移量为(x0,y0),它们之间的关系可以表示为:

其中,G*(u,v)是 G(u,v)的共轭复数,对互功率谱P(u,v)进行离散傅里叶逆变换后,能得到两个图像间的相位相关性矩阵p(x,y),即互功率谱脉冲函数。矩阵中的峰值与它们之间的重叠程度有关,且峰值对应的坐标表示两个图像块之间的平移量。

互功率谱脉冲函数的最大值代表两个图像之间的相关性,随着相关性降低,脉冲函数的峰值也会减小。图1是对大小为32×32的图像块进行实验的结果,图1(a)中的两幅图像完全一样,脉冲函数的峰值在(1,1)处最大且等于1,其余部分全为0;图1(b)中两幅图像的平移量为(4,1),脉冲函数最大为0.49;图1(c)中两幅图像的平移量为(8,7),峰值为0.32;图1(d)显示的图像没有明显峰值,且最大值只有0.12,两幅图像不相关。

1.3 算法步骤

步骤1:读取待检测图像的大小A×B,对图像进行划窗分块,每块为正方形,子块边长为a,滑动步长为a_sli,当图像边界不能完整分块时,对子块进行补零,构成a×a像素的图像块。

步骤2:对每一图像块用其左上角第一个像素在图像中的位置(xi,yi)进行标示,计算每个图像块的灰度均值,并从大到小排序。

步骤3:由于篡改区域与被复制区域在灰度均值上相似,对每个图像块只要在其[-L,L]范围内利用相位相关技术搜索与其匹配的图像块即可,具体步骤如下:

(1)对每个图像块首先排除与它互相重叠的图像块对,因为在同幅图像中复制和粘贴区域不相交。当|xi-xi′|≤a且|yi-yi′|≤a时,两个图像块相互重叠。

(2)对于不重叠的图像块对进行相位相关计算,计算结果返回脉冲函数峰值P和峰值的坐标(i1,j1)。P与预设阈值T1比较,结果有3种情况:①峰值P小于预设阈值T1时,说明图像块对不相关;②峰值P大于预设阈值T1且平移坐标为(1,1)时,说明两个图像块完全匹配,记为候选匹配块对1;③峰值P大于预设阈值T1且平移坐标为(m,n)时,说明两个图像块部分重叠,记为候选匹配块对2。

步骤4:在候选匹配块对中,计算每对块对之间的偏移量,当具有相同偏移量的图像块数大于预设阈值T2时,图像块对即是复制粘贴区域,否则是误匹配块对。

步骤5:对检测出的匹配块对进行白色标记,输出标记图片。

2 实验结果与分析

所有实验均运行在CPU为Intel Core (TM)2.4GHz、内存为4GB以及Windows7上,采用Matlab 7编程进行测试。

实验选择的第一幅是256×256的灰度图像,如图2(a)所示,图2(b)是复制粘贴篡改过的图像。利用Photoshop图像处理软件复制图像中的马,粘贴到草地上的另一边。

对图像进行检测,设置参数值子块大小为16×16,滑动步长为8像素,L=10,阈值T1=0.28,T2=9,检测结果如图3所示。

子块与滑动步长的大小是影响检测准确率的重要因素,对第二幅实验图像采用不同的子块大小及滑动步长进行对比实验。图4(a)是原图,图4(b)是篡改后的图像,图5(a)是子块a=16×16,滑动步长为8像素,L=10,阈值T1=0.28,T2=20时的检测结果;而当子块a=8×8,滑动步长为4像素,L=20,阈值T1=0.43,T2=100时,检测结果如图5(b)所示。

实验结果表明,不同的参数大小对篡改区域的定位有很大影响,当子块大小为16时,程序能准确定位出复制粘贴区域,由于子块比较大,所以边缘区域不能被准确标记到;当子块大小缩小到8时,从图5(b)中可以看出,标志篡改区域变得更加准确,图像中动物的脚也能标记出来。所以在对图像进行分块时,子块与滑动步长越小,算法标记复制粘贴区域的精确率越高,同时检测时间也越长。

3 结语

本文算法在检测图像篡改区域时,有效解决了检测效率低的问题。在对图像划分子块时,一次滑动多个像素,可大大减少图像块数量;在进行相位相关匹配前,先对图像块的灰度均值进行比较,选择均值相近的图像块进行进一步匹配,从而缩小搜索范围,提高程序检测效率。实验结果表明,本文算法能准确定位篡改区域且检测效率高。

参考文献:

[1] 谷宗运.区域复制篡改的数字图像被动认证研究[D].安徽:安徽大学,2011.

[2] 王俊文.数字图像内容篡改盲取证研究[D].南京:南京理工大学,2010.

[3] 刘美红,徐蔚鸿.基于分形和统计的复制—粘贴篡改图像的检测[J].计算机应用,2011,31(8):22362239.

[4] 杜振龙,杨凡,等.基于复合特征的复制粘贴伪造图像盲检测[J].计算机工程与设计,2012,33(11):42644267.

[5] 吴琼,孙韶杰,等.数字图像盲取证对样本合成修复应用的篡改区域检测算法[J].自动化学报,2009,35(3):239243.

[6] 魏为民.基于Fourier谱分析的数字图像被动取证研究[D].上海:上海大学,2009.

[7] 骆伟祺,黄继武,丘国平.鲁棒的区域复制图像篡改检测技术[J].计算机学报,2007,30(11):19982007.

[8] 康晓兵,魏生民.基于TSVD的图像复制区域伪造检测算法[J].计算机应用研究,2008,25(12):37413743.

(责任编辑:黄 健)