刘福金,滕奇志,何小海
(四川大学 电子信息学院,四川 成都 610065)
基于SVD和直方图的JPEG图像篡改盲检测算法
刘福金,滕奇志,何小海
(四川大学 电子信息学院,四川 成都 610065)
现有的大多数图像篡改检测算法不能够很好地检测多次篡改区域,针对此不足,提出了一种有效的基于SVD和直方图的JPEG图像篡改盲检测算法。该算法首先以设定的窗口块在待检测图像上依次滑动一个像素得到每个单独的滑窗分块,每个分块用奇异值分解(SVD)值表征;然后字典排序所有分块量化后的SVD值矩阵,并通过统计排序后的矩阵的偏移频率来得到直方图;最后通过直方图设定阈值以判断分块是否属于复制粘贴块。实验结果表明,该算法不仅能对单次篡改区域进行准确定位,还能较好地检测到多次篡改区域。
复制粘贴;图像篡改;奇异值分解;直方图
随着低成本、高分辨率的数码相机和图片编辑软件的出现,人们很容易就能够对数字图像进行非常逼真的篡改,这种篡改在给人们带来方便的同时也可能会引入如妨碍司法公正、威胁个人隐私等比较严重的问题。因此,鉴定一幅数字图像的真实性和合法性是信息安全领域一个非常重要和急切的问题。
纽约州立大学Fridrich[1]最早提出了同幅图像的复制粘贴(copy-move)检测算法。Farid等人[2-3]在检测中使用了主成分分析;Zimba等人[4]将小波变换的方法运用在算法中;Zhang等人[5]使用奇异值 (Singular Value Decomposition,SVD)算法对copy-move篡改进行鉴定。文献[6]在奇异值算法中引入小波变换,该算法对大部分图像的效果不错,但对某一些篡改后经过JPEG压缩图像的检测效果并不理想。文献[7]针对文献[6]中的问题,去除了小波变换而根据各个奇异值的特点进行改进,但该算法不能检测图像的多次篡改。
本文提出了一种基于SVD和直方图的JPEG图像篡改盲检测算法。首先将图像进行单独的分块,并用SVD值表征;然后将所有分块的SVD值进行量化后得到的矩阵进行字典排序,再统计排序后矩阵的偏移频率得到直方图;最后通过设定阈值判断分块是否为复制粘贴块。实验结果表明,该算法不仅能对单次篡改区域进行准确定位,还能对多次篡改区域进行较好的检测。
1.1 同幅图像的copy-move篡改模型
同幅图像的copy-move篡改[1]是把一幅图像的某个区域copy-move到同幅图像的人或者物体上,以遮盖某些目标或者生成原图像中并不存在的场景。一般情况下图像由copy-move方式篡改后会存在两处或两处以上非常相似或者是完全相同的区域。由于copy-move区域是较大面积的区域进行的整体移动,因而这些区域之间具有联通性和相关性,即被复制区域和粘贴区域中,相对位置相同的像素间的偏移向量是相同的。图1示出了同幅图像的copy-move篡改模型。
图1 同幅图像的copy-move篡改模型
大量的实验证明:除有包含大片平坦区域的图像外,自然图像中很少会出现大面积的相似区域[8],包括形状、纹理和颜色等信息(由图像库的统计结果得到,不小于原始图像尺寸的0.85%为大面积区域)。如果大面积的相似区域存在于一幅图像中,则该图像被copy-move篡改过的可能性很大。基于上述讨论,将同幅图像的copy-move篡改模型假设为以下4个方面:
1)被复制区域R1是一个连续且无洞的区域;
2)被复制区域R1和粘贴区域R2不相交,即R1∩R2=∅;
3)偏移向量(Δx,Δy)是一个非零常数,且整个被复制区域和粘贴区域的像素点对应相同的偏移向量;
4)被复制区域的面积不小于整幅图像尺寸的0.85%。
1.2 算法思想
从线性代数的角度看,一幅灰度图像可以用一个由许多非负元素组成的矩阵表示。若将一幅图像表示为矩阵A,且定义A∈Rm×n,R表示实数域,设其秩为r。则矩阵A的奇异值分解定义为
A=UΛVT
(1)
式中:U∈Rm×m和V∈Rn×n都是正交矩阵;Λ为对角矩阵,表示为Λ=diag(δ1,δ2,…,δr,0,…,0),如果满足δ1≥δ2≥…≥δr>0的降序排列,则称δi(i=1,…,r)为矩阵A的奇异值。从图像处理的角度来看,图像的奇异值在它受到轻微扰动时不会发生剧烈的改变。在Λ的n个对角元素中,包含了矩阵A的大部分信息的前几个值会比后面的大。
图像的SVD分析方法是基于信号二阶统计特征的分析方法,图像分块进行SVD的目的有两个:一是得到每个图像块唯一、稳定的特征描述;二是能够进行有效降维,它使原方块的特征空间由m×n维下降到r维,降低了算法的复杂度。
1.3 算法步骤
本文提出了一种能够对一次和多次图像copy-move篡改区域进行有效检测和定位的算法,算法流程如图2所示。
图2 同幅图像复制粘贴篡改盲检测算法流程
首先,对待检测图像进行固定大小的滑窗分块;然后对每一分块进行奇异值分解,把所有分块的奇异值组成奇异值特征矩阵并按行字典排序(根据相似的分块奇异值矢量相近的原理,排序后相似分块对应的矢量会在排序矩阵中相邻);最后根据遍历排序矩阵统计出图像偏移频率直方图,通过直方图找到阈值,然后检测出复制伪造区域。将待测的灰度图像设为Im×n,其中m×n表示图像的大小。算法详细步骤描述如下:
1)设窗口块ω的大小为a×b(假设该分块大小小于被检测的copy-move图像区域),并在图像的像素上依次滑动,共有Nω=(m-a+1)×(n-b+1)个分块;
2)对每一个块用奇异值分解后得到的图像特征进行描述,特征空间从a×b维降到了r维,其中r=min(a,b);
3)对由所有分块组成的Nω×r维特征矩阵按行进行字典排序,得到特征矩阵S,si表示S中的第i行,i=1,…,Nω;
4)遍历S,计算S中相邻两行si,sj对应分块的坐标值的偏移矢量(Δx,Δy);
5)对满足条件Δx>a或Δy>b的两个分块进行偏移频率C(Δx,Δy)统计,得到偏移矩阵C(初始化为0)
C(Δx,Δy)=C(Δx,Δy)+1
(2)
7)对于偏移频率大于阈值T所对应的图像块进行标识,合并具有相同标识且相邻的图像块,组成copy-move的区域;如果被标识的图像块是孤立的,则判定为噪声,通过膨胀、腐蚀等形态学操作进行去除。
偏移矢量是用于计算排序图像特征矩阵中两个相邻行向量对应分块位置的横纵坐标偏移,满足Δx>a或Δy>b的两个分块不应该重叠。在这个条件下,把分块偏移频率用其对应的si,sj来统计,然后得到偏移频率矩阵C,以记录所有偏移量的统计信息。一个有意义的图像篡改区域应该包含许多连续的具有相似或者相同偏移矢量的分块,而不是零散的分块。因此可以得到:图像复制区域所对应的偏移统计频率在C中是比较大的数,且远远大于其他块对应的偏移频率值。
为了验证算法的可行性,笔者对一次篡改图像和两次篡改图像的复制伪造区域检测分别进行了测试,窗口块ω大小为4×4,阈值T根据直方图自动获取,对图像复制伪造区域进行了羽化、平滑和移动边缘处理。
图3c和图3e的对比可以看出,图像在没有被篡改的情况下其偏移频率都集中在0附近,而且是连续的,篡改部分的偏移频率严重偏移未篡改的部分;图3d和图3e的对比可以看出虽然都是对篡改图像统计的偏移频率,但是结果却相差很大,这是因为图3d是统计篡改图像经过小波变换后的,篡改部分在经过羽化和边缘处理之后相似性已经比较低了,再加上小波变换使图像的大部分细节去掉了,这样就使得篡改部分的相似性变得更低。
图3 第一次篡改
图4a的检测结果可以看出文献[6]中的算法只检测到了一些孤立的点,这些点在经过数学形态学处理之后全部去掉,这表明文献[6]中算法对羽化和边缘处理的稳健性不好;图4b和图4c可以看到文献[7]和本文算法都可以检测出篡改部分,但是本文的检测效果明显高于文献[7]的检测效果,这是因为文献[7]只考虑了偏移频率的最大值,而图3e表明篡改部分的偏移频率不仅仅只是最大频率,它还包括与最大频率连接的一段偏移频率。本文算法根据篡改部分偏移频率的特点,通过直方图确定阈值来判断篡改部分,其中T=750。
图4 第一次篡改的检测结果
图5b和图5c的对比论证了上面的结论:经过羽化和边缘处理之后的篡改部分的相似性比没有做任何处理的篡改图像的相似性低,再加上小波变换去掉了图像中的大部分细节,这样相似性就更低;图5c还表明两次篡改部分的偏移频率不一致。
图5 第二次篡改
图6a~图6c再次论证:文献[6]中算法对羽化和边缘处理的稳健性不好,篡改部分的偏移频率应包括除一段最小连续频率的所有频率,其中T=700。从图6c和图4c可以看到,本文算法不仅对一次篡改的图片有效,而且对多次篡改的图片也能达到很好的效果。
图6 第二次篡改的检测结果
对于同幅图像的复制粘贴篡改的检测,本文提出了一种基于SVD和直方图的JPEG图像篡改盲检测算法。该算法在没有小波变换的情况下用直方图确定阈值,以判断图像的多处篡改。此外,把JPEG图像作为处理对象对于当下的现实生活也具有重要意义。从实验结果可以看出,该算法对图像的多处篡改有较高的检测率。但是,由于本文算法没有在图像的前期处理中使用小波变换降低运算的复杂度,本文的运行效率不及使用小波变换的篡改检测算法,所以如何提高本算法的运行效率将是笔者下一步的研究重点。
[1]FRIDRICH J,SOUKAL D,LUKáš J.Detection of copy-move forgery in digital images[C]// Proc.Digital Forensic Research Workshop.Cleveland:[s.n.],2003:5-8.
[2]POPESCU A C,FARID H.Exposing digital forgeries by detecting duplicated image regions[R].Hanover :Dartmouth College,2004.
[3]HUANG Y,LU W,SUN W,et al.Improved DCT-based detection of copy-move forgery in images[J].Forensic Science International,2011,206(1/3):178-184.
[4]ZIMBA M,SUN X.DWT-PCA (EVD) based copy-move image forgery detection[J].International Journal of Digital Content Technology and its Applications,2011,5(1):251-258.
[5]ZHANG T,WANG R.Copy-move forgery detection based on SVD in digital image[C]//Proc.the 2nd International Congress in Image and Signal Processing.Tianjin:[s.n.],2009:1-5.
[6]LI G,WU Q,TU D.A sorted neighborhood approach for detecting duplicated regions in image forgeries based on DWT and SVD[C]// Proc.ICME.Beijing:[s.n.],2007:1750-1753.
[7]王正庚.数字图像复制粘贴型篡改盲检测[D].成都:四川大学,2012.
[8]骆伟祺,黄继武,丘国平.鲁棒的区域复制图像篡改检测技术[J].计算机学报,2007,30(11):1998-2007.
刘福金(1989—),硕士,主研图像处理与模式识别;
滕奇志(1962—),女,博士生导师,主研图像处理与模式识别;
何小海(1964—),博士生导师,主研图像处理与模式识别。
责任编辑:闫雯雯
JPEG Image Tampering Blind Detection Algorithm Based on SVD and Histogram
LIU Fujin,TENG Qizhi,HE Xiaohai
(CollegeofElectronicsandInformationEngineering,SichuanUniversity,Chengdu610065,China)
As to the most image forgery detection algorithms,it is hard to detect multi-tampered regions,thus an effective algorithm for JPEG image forgery blind detection based on SVD and histogram is proposed.First,moving the pixel with a specified size window in the input image one by one obtain every single patch,which will be represented by SVD value respectively.Then quantify all of the patches to get the matrix sorted by dictionary and calculate the histogram using the deviation frequency from that matrix.Finally,the copy-move regions can be verified combining histogram and threshold value.Experimental results show that for single-tampered regions this algorithm can not only stand out in terms of precision in patch location,but also performance well for multi-tampered regions.
copy- move;image tamper;Singular Value Decomposition (SVD);histogram
【本文献信息】刘福金,滕奇志,何小海.基于SVD和直方图的JPEG图像篡改盲检测算法[J].电视技术,2015,39(3).
国家自然科学基金项目(61471248)
TP751
A
10.16280/j.videoe.2015.03.026
2014-08-21