张广群,汪杭军
(浙江农林大学信息工程学院,浙江临安311300)
一些媒体中出现了复制移动篡改的事件,例如首届华赛金奖作品《广场鸽接种禽流感疫苗》[1]就被确定为是造假照片,见图1。于是,数字图像的完整性和权威性的验证技术显得日益重要。从理论上来说,在自然图像中有二个以上 (含两个)连贯区域中精确匹配 (包括颜色、噪声、纹理等)的可能性很小。因此,复制移动篡改检测技术的目标就是找到同幅图中完全相同的图像块。然而由于篡改者为了得到更逼真的效果,通常在篡改区域中加入噪声、压缩、进行诸如平移、旋转、缩放等几何变换,从而使篡改的区域与复制的区域可能不完全一致。因此,一个好的篡改检测算法应该能够有效地对抗常规的这些后处理操作。目前已有的检测算法可分成基于块匹配和基于点匹配两大类。
图1 复制移动篡改例子
基于块匹配技术关键是找到鲁棒的图像块特征表达。很多学者提出了用不同的特征来代表图像块。如:骆伟祺[2]选择颜色和方向特征来检测复制篡改区域。Bayram[3]采用了傅里叶-梅林变换 (fourier-mellin transform,FMT)来产生几何特征不变量。Lin[4]等人提出一种旋转不变的特征。现有的这些块匹配算法虽然在时间复杂度上有所降低,但还存在以下两个问题:
(1)面对大量的篡改数据需要检测时将显得力不从心。
(2)同时在对抗旋转、缩放等几何变换效果方面也是不理想。如特征FMT、也只能对抗轻微的旋转和缩放。Lin提出的也只能对抗诸如90、180和270度等一些特殊角度的旋转,而不能对抗任意角度的旋转。
因此,由Huang等人[5]首次提出基于关键点匹配算法,它基于SIFT(scale-invariant feature transform)的移动复制检测算法,利用了SIFT算子具有很好的光照、旋转、缩放等不变性并且具有相对低的计算量等特点,能很好地检测经过旋转、缩放等几何变换,同时它在特征点上进行匹配,大大降低了算法的复杂度。但是该算法存在一个致命的问题,在图像的平坦区域中不能提取特征点,所以也就无法检测出平坦区域的篡改。例如,在图2中,柱子被天空的一部分覆盖而成为平坦区域,对篡改图进行SIFT特征点提取时,由于天空部分没有特征点,而无法检测该篡改。
图2 平坦区域图像关键点检测
结合上述两类算法的优点,本文提出复杂场景下 (平坦区域和非平坦区域都有篡改)图像复制-移动篡改检测方法:即把一副待检测的图像分成两部分,非平坦区域和平坦区域。非平坦区域采用基于关键点 (speeded-up robust features,SURF)匹配,平坦区域采用块匹配。实验结果表明,该方法可以很好地解决在平坦区域和非平坦区域均有篡改的图像。
SURF是由Bay[6]提出的一种特征提取算法,比SIFT计算速度更快[5,7]。本文采用OpenSURF提取特征点来检测非平坦区域的篡改,细节参见文献 [8]。
Bayram[3]利用傅里叶变换的位移具有旋转、理论和相似性的傅里叶-梅林变换下的不变量,提出了一个基于块匹配的篡改检测算法。由于FMT特征的优秀性能,本文用它来进行平坦区域的篡改检测。基于FMT的不变量特征提取过程如下:
(1)获取傅里叶变换以保证特征是平移不变量
(2)转换为对数-极坐标域中相应参数的平移变换
3)将转换的对数-极坐标值投影为1维,并按照式3得到不同θ的量化值共45个特征
本文首先采用平坦区域检测算法把一副图像分成两部分。然后分别用基于块匹配算法和基于关键点算法检测。具体的过程描述如下:
步骤1 通过采用1.1介绍的SURT算法从图像中提取特征点,通过特征点匹配和排除,再对区域变形进行评估,并利用相关性确定篡改区域,最终确定非平坦区域的篡改检测;
步骤2 以特征点为中心作正方形,用数学形态学的腐蚀与开运算,填补小空洞,填充小的封闭区域,最终检测出平坦区域;
步骤3 在平坦区域图像分块,在分块中提取FMT特征;
步骤4 相似块检测算法确定平坦区域篡改部分。
首先,通过采用1.1介绍的SURT算法从图像中提取特征点。通过特征点匹配和排除,再对区域变形进行评估,并利用相关性确定篡改区域。该算法采用了Xueyun Pan框架[9],可以检测连续旋转的区域,而不像文献 [7]仅仅是给出了匹配点。
在平坦区域中,由于像素值是相似的,变化不大,我们可以通过观察像素值的变化确定这些区域。Ahn[10]提出了使用熵和二阶统计的方法来检测图像中的平坦区域。但是这种算法并没有利用关键点信息,复杂度较高,影响我们算法的性能。我们采用的算法是基于2.1中得到的关键点基础上的。
假设得到的n个关键点为p1,p2,…pn,具体的过程描述如下:
步骤1 初始化:FLM(i,j)=255(表示为白色)图像中所有的像素点;
步骤2 以关键点为中心,作边长为a的正方形,见图3(b);
步骤3 然后进行腐蚀与开运算,将一些小的空洞填补,得到图3(c);
步骤4 最后填充面积小于A的密闭区域,得到图3(d);
步骤5 图3(d)中白色的背景区域即为所求的平坦区域。
图3 平坦区域求解过程
虽然平坦区域算法检测出白色的部分就是平坦区域,但是该区域是由许多不规则的形状组成,如图4所示。为了提高检测篡改区域的效率,我们用固定大小的正方形对图像进行分块。
图4 平坦区域图像分块
首先,分块算法将图像从左到右和从上到下的顺序分成固定大小的、互不重叠的块,删除那些没有点落在平坦区域的子块。分块效果如图4所示。这样的分块方式有两个优点:
(1)忽视非平坦区域;
(2)减少平坦区域块的子块的数目。
但是同时也带来一个问题:如何确定部分块的篡改,我们将在2.4节讨论解决这个问题。
分块后,我们采用1.2介绍的FMT来提取每一个子块的特征,得到45个特征值。
为了找到相似块,我们采用基排序[4]来代替通常使用的字典排序。在对所有的子块获得特征向量后,对每个特征向量值进行取整操作。然后对特征向量进行排序操作,将这些图像块的特征向量组成特征矩阵,矩阵的行数就是图像块的数目,矩阵的列数就是每个图像块的特征维数。
对排序后的特征向量对应的图像块,按照偏移向量的计算式 (4),计算出2个图像块对的偏移向量,统计相同的偏移向量的个数N,并与阈值进行比较。对块间距离D和T比较,当满足条件N>5且D>T时确定存在篡改操作
由于采用互不重叠的分块方式,当获取检测结果后,需要进行边缘处理,细节参见本文作者在文献 [11]提出的方法。
在这部分,我们将描述本文提出的篡改检测方法的实验效果。实验中的图像来自于我们自己篡改图像库,该库有200副图像,其中100副是篡改图像,100副是原始图像,图像的分辨率从500*375到800*600像素点。我们从中挑选出包含有平坦区域和非平坦区域都有篡改的图像。
一般来说,平坦区域的篡改是为了隐藏不想出现部分的图像部分,采用复制平坦的一部分来覆盖它,这使得这部分图像也成了平坦区域。平坦区域的篡改很少用到图像的几何变换。而非平坦区域部分的图像经常在篡改后会应用各种几何变换。因此,我们测试了10副在平坦区域仅仅有压缩和高斯模糊的篡改和非平坦区域有旋转和缩放的图像,部分检测的结果如图5和图6所示。
本实验是在CPU 2.60GHz,内存2GB的机器上实现的,输入的参数如下所示:所有子块的大小16*16,OpenSURF参数 为 octaves=4,intervals=1,sample=2,thres=0.00001f,轮廓块的相关性的阈值是0.3,在非平坦区域的篡改检测区域的阈值是600像素,正方形的长度是a=16,在平坦区域填充封闭区域的阈值A=500,偏移向量u=6。
在图5(b),有两个地方有篡改,在图像的左边屋顶被擦除,图像的右边出现了一个略微放大的塔。基于关键点匹配的方法检测结果如图5(c)所示,由于两个塔有相同的关键点,因此被检测,但是屋顶没被检测出来,因为擦除后的屋顶成为平坦区域没有关键点。而基于我们的方法,首先在提取关键点的基础上用平坦区域算法产生平坦区域,然后被分块,提取FMT特征。在块匹配后,结果如图5(d)所示,两块区域均被检测到。
在图6(b),有两个地方有篡改,一个是位于图像右边的街灯的上半部分被天空覆盖,另一个是右边骑自行车的人经过一定角度的右旋转后复制到小车的后半部分。同样地,基于关键点匹配的结果如图6(c)所示,两个骑自行车的人因为有同样的关键点而被检测到。而原来是街灯的区域因为成为平坦区域而没有关键点,所以没被检测到。我们的方法检测结果如图6(d)所示,两块区域均被检测到。
以上2个例子的结果表明了我们的算法不但能够很好的检测所有的篡改区域,能够对抗后处理操作,而且需要相对短的时间,每幅图像处理的时间大约5秒。
基于块匹配的大部分已有的技术在检测传统的复制移动型篡改具有一定抗噪、抗重压缩,甚至是抗对比度调整和抗模糊的能力。但这些方法都不能非常有效地检测图像中经过旋转、镜像及缩放拷贝的粘贴区域而且是耗时的。而基于点匹配技术虽然解决了上述基于块匹配的不能解决的问题,但却无法检测出平坦区域的篡改。因此本文提出结合块匹配和关键点匹配技术的优点进行篡改检测一个新的方法。将一副待检测的图像分成非平坦区域和平坦区域两部分,分别采用基于SURF匹配和块匹配技术。实验结果表明,该方法不但能够检测在平坦区域和非平坦区域均有篡改的图像,而且算法具有很好的鲁棒性,在计算速度上也具有明显的优势。
[1]TAN Renwei."Square pigeons"fake reporters confirmed[EB/OL].[2008-04-04].http://epaper.nddaily.com/A/html/2008-04/04/content_431860.htm(in Chinese).[谭人玮.“广场鸽”确认造假记者解聘 [EB/OL].[2008-04-04].http://epaper.nddaily.com/A/html/2008-04/04/content _431860.htm.
[2]LUOW,HUANG J,QIU G.Robust detection of region-duplication forgery in digital image[C]//Washington,D.C:ICPR,2006:746-749.
[3]Bayram S,Sencar H T,Memon N.An effcient and robust method for detecting copy-move forgery[C]//Washington:IEEE CASSP,2009:1053-1056.
[4]LIN H J,WANG C W,Kao Y T.Fast copy-move forgery detection[J].WSEAS Transaction on Signal Processing,2009,5(5):188-197.
[5]HUANG H,GUOW,ZHANGY.Detection of copy-move forgery in digital images using SIFT Algorithm [C]//Washington,D C:IEEE Computer Society,2008:272-276.
[6]BAY H,Tuytelaars T,Van Gool L.Surf:Speeded-up robust features[C]//Berlin:9th Euro-Pean Conference on Computer Vision,2006:404-417.
[7]Amerini I,Ballan L,Caldelli R,et al.Geometric tampering estimation by means of a SIFT-based forensic analysis[C]//Dallas:IEEE International Conference on Acoustics,Speech,and Signal Processing(ICASSP),2010:1702-1705.
[8]Christopher Evans.Notes on the opensurf library[DB/OL].[2009-02-18].http://www.cs.bris.ac.uk/Publications/Papers/2000970.pdf.
[9]PAN Xunyu,Lyu Siwei.Region duplication detection using image feature matching[J].IEEE Transactions on Information Forensics and Security,2010,5(4):857-867.
[10]Ahn W,Kim J S.Flat-region detection and false contour removal in the digital TV display[C]//Amsterdam:ICME,2005:1338-1341.
[11]ZHANG Guangqun,WANG Hangjun.Quick detection of Copy-Move forgery based on FMT [J].Computer Engineering and Design,2010,31(15):3530-3533(in Chinese).[张广群,汪杭军.基于FMT的快速Copy-Move篡改检测[J].计算机工程与设计,2010,31(15):3530-3533.]