发明内容
本发明的目的是提供一种基于保角变换的图像哈希生成方法,解决了现有技术中的图像处理操作和几何畸变鲁棒性差的问题。
本发明的另一个目的是提供上述方法生成的图像哈希进行图像篡改的检测及定位方法,解决了现有技术中篡改检测与篡改定位对几何变换的无效性问题。
本发明采用的技术方案是,基于保角变换的图像哈希生成方法,按照以下步骤实施:
步骤1、提取特征
输入大小为No1×No2的图像I0,先将图像I0转换成灰度图像,然后对该灰度图像进行保角变换得到直径为No的圆形图像
用一级DB2小波变换处理得到小波低频重构图,称为W0;
将W0划分成半径为的圆形区域,简称为子圆,G是预先设定的,设相邻两个子圆的圆心相对于图像中心的圆心角为α,每一个子圆用Bok表 示,其中k=1,...,M,M由ro和α决定,
令Bok(x,y)代表子圆Bok中空间位置(x,y)的灰度值,用Nok表示子圆Bok包含的像素点数量,计算每一个子圆Bok的灰度均值:
用Canny算子对每一个Bok提取边缘,设Eok表示边缘图像,令Eok(x,y)表示Eok中空间位置在(x,y)的灰度值值,计算边缘点在Eok中所占的比例:
步骤2、生成中间Hash
令Co=(μo1,po1,...,μoM,poM),Co中元素的排列顺序是由对应的图像块,逆时针从图像的最外层向里,依次排列,C0即为图像I0的中间Hash;
步骤3、生成密钥
使用logistic映射产生混沌序列,设K∈(0,1)是由接收方与发送方共享的初始密钥,令L(·)表示映射:
令k1=K,
令k=(k1,k2,...,k2M),k的长度为l=2M;
步骤4、加密
令
即为图像I0经过加密的Hash值;
步骤5、压缩数据
对进行Huffman编码,生成Haffman树HTo,中的每一个元素用其在Haffman树所对应的Haffman编码来取代,生成最终图像哈希Ho。
本发明采用的第二个技术方案是,利用上述方法生成的图像哈希进行图像篡改的检测及定位方法,按照以下步骤实施:
步骤1、对于接收到的图像哈希值Ho和Haffman树HTo
首先进行Haffman解码,然后利用初始密钥K以及密钥生成步骤中的密钥生成算法生成密钥k,解密获得原始图像I0的中间Hash值Co;
步骤2、生成测试图像的中间Hash
将大小为Nt1×Nt2的输入图像It转换成灰度图像,然后使用保角变换得到直径为Nt的圆形图像对进行一级DB2小波变换,得到低频重构图像,称为Wt,将Wt划分成半径为的子圆,设相邻两个子圆的圆心与Wt的中心所成圆心角为α;每一个子圆用Btk',表示,其中k'=1,...,M',M'由rt和α决定,利用图像哈希生成方法中描述的算法生成It的图像哈希值Ht,且它的中间Hash值Ct是:Ct=(μt1,pt1,...,μtM,ptM);
步骤3、估计几何变换
从Ct中取子集C't=(μt1,pt1,...,μts,pts),其中的元素对应于Wt的最外层子圆;根据C't中元素的个数,从Co中取同样元素个数的子集C'o=(μo1,po1,...,μos,pos),其中的元素应该对应于W0的最外层子圆,计算C'o中每一对(μoj,poj)与C't中所有(μti,pti)的差的绝对值,依次记为:
...,
对结果Δ1先按均值差的绝对值从小到大排序,取前10对值,再对该10对值按照从小到大排序,取第一对值,不失一般性,记为: 则Wt中(μtj,ptj)∈C't能够被认为与W0中(μo1,po1)∈C'o相对应,用样的方法找到其它对应的子圆
计算对应于的子圆(μtj,ptj)∈C't的圆心与的圆心所成的角 度,记为X1,类似地计算对应的X2,...,Xs,令X=(X1,...,Xs),
对X中数值为0的元素计数,即令如果则认为图像没有经过旋转;
否则,令Xc即为图像被旋转的角度,对It旋转-Xc,得到矫正的图像I't,根据Hash生成算法中描述的方法计算I't的中间Hash:
C't=(μ't1,p't1,...,μ'tM,p'tM);
步骤4、利用Hash的全局性进行篡改检测
为了衡量Ho与Ht的相似程度,定义Co与C't之间的距离:
如果D<T,接收到的图像It被认为是真实的;如果D≥T,T是阈值,接收到的图像It被认为是不真实的,进入步骤5检测被篡改区域的位置;
步骤5、利用Hash的局部性进行篡改定位
用中间Hash值Co和C't定义子圆Bok与Btk之间的距离D1和D2:
D1(Bok,B'tk)=|μok-μ'tk|,D2(Bok,B'tk)=|pok-p'tk|,k=1,...,M,
如果D1(Bok,B'tk)≥T1且D2(Bok,B'tk)≥T2,则认为图像块是不真实的;否则,图像块被认为是真实的,T1和T2是阈值用来确定篡改位置。
本发明的有益效果是:
1)本发明的图像哈希方法中,首先对图像进行保角变换,将图像映射到圆形区域上,然后利用小波变换,得到小波低频重构图,再对小波重构图像构造子圆,利用canny算子提取子圆中图像的边缘信息,利用子圆的统计信息和边缘信息的统计量生成图像哈希;利用Hash的全局相似性检测图像内容是否被篡改,利用Hash的局部相似性检测被篡改的图像区域的位置。
2)本发明的图像哈希方法不仅能检测图像哈希是否被篡改,而且能够检测被篡改区域的位置。对内容保持的图像处理操作如JPEG压缩、中值滤波、添加噪声等操作都具有良好的鲁棒性;对几何变换具有稳健性;对恶意篡改攻击具有较好的敏感性,能检测出细微的纹理变化和颜色变化。
3)本发明的图像哈希方法能够很好地实现对无意失真的鲁棒性与对恶意篡改的敏感性之间的折中,并具有较高的计算效率,因此,不仅可以用于图像内容有效性认证,而且可以用于大规模图片库的快速检索与匹配。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明基于保角变换的图像哈希方法,参见图1,包括特征提取、生成中间Hash、密钥生成、加密及数据压缩步骤,具体步骤是:
步骤1、提取特征
输入大小为No1×No2的图像I0,先将图像I0转换成灰度图像,然后对该灰度图像进行保角变换得到直径为No的圆形图像用一级DB2小波变换处理得到小波低频重构图,称为W0;将W0划分成半径为的圆形区域(简称为子圆,允许交叉重叠,其中,G是预先设定的),设相邻两个子圆的圆心相对于图像中心的圆心角为α(α是预先设定的),每一个子圆用Bok表示,其中k=1,...,M,M由ro和α决定,
令Bok(x,y)代表子圆Bok中空间位置(x,y)的灰度值,用Nok表示子圆Bok包含的像素点数量,计算每一个子圆Bok的灰度均值:
用Canny算子对每一个Bok提取边缘,设Eok表示边缘图像,令Eok(x,y)表示Eok中空间位置在(x,y)的灰度值值,计算边缘点在Eok中所占的比例:
图2为对图像进行子圆区域划分的示意图(只画出了最外层两圈的圆),图3为子圆区域划分的原理示意图。
步骤2、生成中间Hash
令Co=(μo1,po1,...,μoM,poM),Co中元素的排列顺序是由对应的图像块,逆时针从图像的最外层向里,依次排列,C0即为图像I0的中间Hash;
步骤3、生成密钥
为了使算法具有较高的安全性,使用混沌密钥对中间Hash进行加密,使用混沌密钥的原因是因为混沌序列对于初始值具有较高的敏感性,并且具有较快的运算速度。
使用logistic映射产生混沌序列,设K∈(0,1)是由接收方与发送方共享的初始密钥,令L(·)表示映射:
令k1=K,
令k=(k1,k2,...,k2M),k的长度为l=2M;
步骤4、加密
令 即为图像I0经过加密的Hash值;
步骤5、压缩数据
对进行Huffman编码,生成Haffman树HTo,中的每一个元素用其在Haffman树所对应的Haffman编码来取代,生成最终图像哈希Ho。
本发明利用上述方法生成的图像哈希进行图像篡改的检测及定位方法,见图4所示,包括以下步骤:
步骤1、对于接收到的图像哈希值Ho和Haffman树HTo,首先进行Haffman解码,然后利用初始密钥K以及密钥生成步骤中的密钥生成算法生成密钥k,解密获得原始图像I0的中间Hash值Co;
步骤2、生成测试图像的中间Hash
将大小为Nt1×Nt2的输入图像It转换成灰度图像,然后使用保角变换得到 直径为Nt的圆形图像对进行一级DB2小波变换,得到低频重构图像,称为Wt,将Wt划分成半径为的子圆(允许交叉重叠重叠),设相邻两个子圆的圆心与Wt的中心所成圆心角为α;每一个子圆用Btk',表示,其中k'=1,...,M',M'由rt和α决定,利用图像哈希生成方法中描述的算法生成It的图像哈希值Ht,且它的中间Hash值Ct是:Ct=(μt1,pt1,...,μtM,ptM)。
步骤3、估计几何变换
从Ct中取子集C't=(μt1,pt1,...,μts,pts),其中的元素对应于Wt的最外层子圆;根据C't中元素的个数,从Co中取同样元素个数的子集C'o=(μo1,po1,...,μos,pos),其中的元素应该对应于W0的最外层子圆,计算C'o中每一对(μoj,poj)与C't中所有(μti,pti)的差的绝对值,依次记为:
...,
对结果Δ1先按均值差的绝对值(第一个元素)从小到大排序,取前10对值,再对该10对值按照从小到大排序,取第一对值,不失一般性,记为: 则Wt中(μtj,ptj)∈C't能够被认为与W0中(μo1,po1)∈C'o相对应,用样的方法找到其它对应的子圆
计算对应于的子圆(μtj,ptj)∈C't的圆心与的圆心所成的角度,记为X1,类似地计算对应的X2,...,Xs,令X=(X1,...,Xs)。
对X中数值为0的元素计数,即令如果则认为图像没有经过旋转。
否则,令Xc即为图像被旋转的角度,对It旋转-Xc,得到矫正的图像I't,根据Hash生成算法中描述的方法计算I't的中间Hash:
C't=(μ't1,p't1,...,μ'tM,p'tM);
步骤4、利用Hash的全局性进行篡改检测
为了衡量Ho与Ht的相似程度,定义Co与C't之间的距离:
如果D<T,接收到的图像It被认为是真实的;如果D≥T,T是阈值,接收到的图像It被认为是不真实的,进入步骤5检测被篡改区域的位置;
步骤5、利用Hash的局部性进行篡改定位
用中间Hash值Co和C't定义子圆Bok与Btk之间的距离D1和D2:
D1(Bok,B'tk)=|μok-μ'tk|,D2(Bok,B'tk)=|pok-p'tk|,k=1,...,M,
如果D1(Bok,B'tk)≥T1且D2(Bok,B'tk)≥T2,则认为图像块是不真实的;否则,图像块被认为是真实的,T1和T2是阈值用来确定篡改位置。
本发明的仿真实验结果
1)对内容保持的图像处理操作的鲁棒性实验
本实验的目的是检测本发明的图像哈希方法对于JPEG压缩、滤波、添加噪声等内容保持的图像处理操作具有鲁棒性。实验所使用的图像是从不同的图像测试数据库中随机挑选的1000幅自然图像。实验步骤如下:
1.1)生成图像哈希:利用本发明的图像哈希生成方法,计算每幅图像的中间Hash值Co,并分别计算它经过JPEG压缩、滤波、添加噪声之后的版本的中间Hash值Ct。
1.2)篡改检测:利用本发明的篡改检测方法分别计算每对中间Hash值Co和Ct之间的距离D。
1.3)统计检测通过率,检测通过率定义为:
在不同的阈值下计算检测通过率,结果见表1和表2(其中,NF表示噪声因子,QF表示质量因子)。
表1、不同阈值T下对于添加噪声操作的检测通过率
表2、不同阈值T下对于JPEG压缩和滤波操作的检测通过率
从表1和表2可以看出,阈值越高通过率越高。对于滤波当阈值等于0.5的时候通过率是最合适的。对于JPEG压缩,鲁棒性几乎是完美的。当阈值小于0.8的时候通过率是令人满意的。
2)敏感性测试及ROC曲线(Receiver Operating Characteristic Curve)
一般来说,图像哈希方法的鲁棒性与敏感性是一对相互矛盾的性质。鲁棒性要求算法在轻微扰动以及内容保持的操作下具有稳定性,而敏感性则要求算法在小面积恶意篡改下具有明显的敏感性。因此,在实际应用中,必须考虑图像哈希算法的性能折中。为了量化分析本发明方法的鲁棒性与敏感性之间的折中,利用假阴性率(PFNP)和假阳性率(PFPP):
用“Lion”(图5)作为真实图像,用“Lake”(图6)作为“Lion”的篡改图像,通过比较“Lion”图的每个Boi与“Lake”图的每个Btj之间的度量距离D1和D2来计算PFNP。如果D1(Boi,Btj)≤T1或D2(Boi,Btj)≤T2(其中T1和T2是由实验测得的阈值),认为篡改伪造的图像区域被检测成了可信的图像区域,利用PFNP的定义计算其值。
利用JPEG压缩作为无意失真来估计PFPP。用“Lion”图作为真实图像,通过比较“Lion”的每个Boi与它的JPEG压缩版本的每个Btj之间的距离D1和D2来计算PFPP。如果D1(Boi,Btj)≥T1并且D2(Boi,Btj)≥T2(其中T1和T2是由实验测得的阈值),认为可信图像区域被检测成了篡改伪造图像区域。然后利用PFPP的定义计算其值。对于不同的阈值计算PFNP和PFPP,得到ROC曲线如图7所示,横坐标表示假阳性率,纵坐标表示假阴性率。
图8为Fawad Ahmed在[11]中提出的Hash方法的ROC曲线。从曲线的趋势可以看出,本发明的方法当PFNP=0.01的时候PFPP=0.05。方法[11],当 PFNP=0.01的时候PFPP=0.16,所以在相同的假阴性率下,本发明的方法有比较低的假阳性,检测结果比较准确。
3)篡改定位的视觉效果
本实验的目的是为了展示本发明方法的篡改检测与篡改定位方法的效果,即检测被篡改区域的位置的能力。实验中测试了大量纹理和大小都不同的图像,图9-图26展示了实验结果,其中,用本发明的篡改定位方法检测出的被篡改伪造的区域用颜色块标出(注:原图是彩色的,很醒目,目前不醒目的原因是因为灰度图像造成的)。图9为苹果的原始图像,图10为对图9进行对象替换攻击的篡改图像,图11为用本发明的篡改检测与篡改定位方法对图10的检测结果。图12为青蛙的原始图像,图13为对图12进行拼接攻击的篡改图像,图14为用本发明的篡改检测与篡改定位方法对图13的检测结果。图15为建筑物的原始图像,图16为对图15进行复制移动攻击的篡改图像,图17为用本发明的篡改检测与篡改定位方法对图16的检测结果。图18为火箭的原始图像,图19为对图18进行颜色变化的篡改图像,图20为用本发明的篡改检测与篡改定位方法对图19的检测结果。图21为海报的原始图像,图22为对图21进行的篡改和旋转的篡改图像,图23为用本发明的篡改检测与篡改定位方法对图22的检测结果。图24为大象的原始图像,图25为对图24进行篡改并旋转和缩放的篡改图像,图26为用本发明的篡改检测与篡改定位方法对图25的检测结果。
由实验结果可以看出,本发明的篡改定位方法对恶意篡改很敏感,而且能够精确地检测被篡改区域的位置。
4)效率测试
为了检测本发明的效率,实验测试了图像哈希生成时间以及篡改检测 与篡改定位计算时间。在实验中,从不同的图像数据库中随机选取了1000副日子图像作为测试图像,表3给出了所耗费的计算时间的统计平均值。
表3、图像哈希生成、篡改检测与篡改定位的计算时间
图像尺寸 |
256×256 |
512×512 |
1024×1024 |
2050×2050 |
Hash生成时间(s) |
3.213 |
4.197 |
5.342 |
6.566 |
篡改检测和篡改定位时间(s) |
3.142 |
3.8115 |
4.325 |
4.674 |
从表3可以看出,本发明具有有效的计算效率。
5)图像哈希碰撞测试
图像哈希碰撞意味着两个不同的图像I和I'具有相似的图像哈希值,碰撞率定义为:
在实验中,从不同图像数据库中随机选取1000副自然图像作为测试图像,计算并比较任意两个图像哈希值,统计碰撞率,图27显示了不同阈值下的图像哈希碰撞率,横坐标表示阈值T,纵坐标表示图像哈希的碰撞率。
6)旋转角度矫正的准确度测试
该实验的目的是说明本发明的方法中的矫正旋转图像的准确性。在实验中,从不同的图像库中随机选取1000副自然图像。对每幅图像旋转不同角度,用本发明中的几何矫正算法计算旋转角度,记录实际旋转角度和计算出的角度的差值的绝对值A,表4显示的是矫正结果。从表4可以看出,旋转5°时,矫正误差小于0.1°的图像占51.2%,这样矫正图像与原图像几乎重合。有48.8%的图像矫正误差在0.5°与1.5°之间,这些图像在篡改定位的时候会出现少许的偏移,但是主要的篡改部位仍然可以确定。在旋转5°的时候,矫 正误差没有大于1.5°的。在旋转角度加大以后,会有大约2%左右的图像出现角度矫正错误,即矫正误差大于A>1.5°。通过本实验可以看出,本方法完全可以满足对旋转图像的矫正。
表4、旋转角度测试
7)Hash长度与篡改定位粒度
本发明的方法生成的Hash长度可以是定长的也可以是变长的。当设置子圆区域数量恒定时,Hash值的长度是定长的,这样便于管理,节省存储空间,使用方便。但是对于较大的图像如果子圆的数量设置的较少,篡改定位效果就可能不好。如图28为原始图像-天空,图29为图28的篡改图像,当设置子圆区域的半径较小、数量较多的时侯,生成细粒度Hash,算法能够准确地定位出“鹰”所在的位置被篡改了,如图30所示的用细粒度Hash对图29的检测结果;而当设置子圆区域的半径大、数量少的时候,篡改定位的区域覆盖了未被篡改的山丘,使得无法分辨到底是哪个目标被篡改了,如图31所示用粗粒度Hash对图29的检测结果。
图32为橙子的原始图像,图33为图32的篡改图像,本来篡改图像只是添加了一只虫子,图34为用细粒度Hash对图33的检测结果;如果设置 的子圆的数量少、半径较大,就会引起误判,如图35所示的用粗粒度Hash对图33的检测结果,就好像是整个苹果都是拼接到图像中的。
如果根据图像的大小和定位的精度需求设置小圆的个数,这样Hash的长度就是变长的。在这种情况下,Hash的定位精度得到了保障,但是由于是变长的,Hash的管理不是很方便。在实际应用中可以根据定位的精度需求和Hash管理的情况,自由设置选择Hash的长度是定长的还是变长的。
参考文献
[1]A.Swaminathan,Y.Mao,M.Wu.Robust and secure image hashing.IEEE Trans.[J].Information Forensics and Security.2006.Vol.1:215-230.
[2]M.Schneider,S.F.Chang.A robust content based digital signature for image authentication.[J].Image Processing.1996.227-230.
[3]R.Venkatesan,SM Koon,H.JakubowskiM.Robust image hashing.[J].In Proc.IEEE Int.Conf.Image Processing.2000.664-666.
[4]C.Y.Lin,S.F.Chang.A robust image authentication method distinguishing JPEG compression from malicious manipulation.[J].Circuits and Systems for Video Technology.2001.vol.11:153-168.
[5]C.S.Lu,H.YM Liao.Structural digital signature for image authentication:an incidental distortion resistant scheme.[J].Multimedia.2003.vol.5:161-173.
[6]S Tang,JT Li,YD Zhang.Compact and Robust Image Hashing.[C].ICCSA.2005.547-556.
[7]Yan Zhao.Perceptual Image Hash Using Texture and Shape Feature[J].Journal of Computational Information Systems.2012.Vol.8(8):3519-3526.
[8]Yan Zhao,Shuozhong Wang,Xinpeng Zhang,and Heng Yao.Robust Hashing for Image Authentication Using Zernike Moments and Local Features[J].IEEE Transactions on Information Forensics and Security.2013.VOL.8(1):55-63.
[9]Fouad Khelifi,Jianmin Jiang.Perceptual Image Hashing Based on Virtual Watermark Detection[J].IEEE Transaction on Image Processing.2010.Vol.19():981-994.
[10]Xiaodi Hou,Jonathan Harel,and Christof Koch.Image Signature:Highlighting Sparse Salient Regions[J].IEEE Transaction On Pattern Analysis and Machine Intellence.2012.Vol.34(1):194-201.
[11]Fawad Ahmed,M.Y.Siyal,Vali Uddin Abbas.A secure and robust hash-based scheme for image authentication.[J].Signal Processing.2010.1456–1470。