赵 琰,周晓炜,沈 麒
1.上海电力大学电子与信息工程学院,上海200090
2.广西师范大学广西多源信息挖掘与安全重点实验室,广西桂林541004
随着互联网技术的快速发展,人们无需专业知识也能对图像进行编辑,如对图像添加对象或改变图像亮度等操作,但也带来了图像的内容认证、检索等方面问题.近年来,研究者们提出图像哈希技术用于解决上述问题.图像哈希指将图像单向映射为简短序列,其特性有:鲁棒性、区别性、安全性等.鲁棒性指原始图像与经过保持内容的数字处理后的图像之间的哈希序列相同或相似;区别性指不同图像的哈希序列有着明显的不同;安全性指攻击者在不知道正确密钥的前提下无法得到正确的哈希序列.因此哈希技术已广泛应用于图像检索、图像拷贝检测和图像篡改检测等方面[1].
近年来,已有许多研究者利用各种技术提出不同的哈希算法.如文献[2]将图像从RGB 颜色空间转换为HSI 颜色空间和YCbCr 颜色空间,然后对两个颜色空间的不同颜色通道进行分块处理,并对子块提取均值和方差来得到稳健的哈希序列.该算法对高斯低通滤波、水印嵌入和亮度调整等常见的保持内容的图像处理具有较好的鲁棒性[2].文献[3]提出了一种结合中心对称局部二值模式(center-symmetric local binary patterns,CS-LBP)描述符和奇异值分解技术来得到鲁棒的图像哈希算法,该算法对亮度调整、JPEG 压缩和高斯滤波等常见的图像处理鲁棒性较好.文献[4]探索了颜色向量角与边界信息的结合来得到鲁棒的哈希算法,该算法首先提取图像的的颜色向量角图像,利用Canny 算子获取原始图像的边界信息,通过提取边界信息所对应的颜色向量角值构建新的特征信息,对新的特征信息进行进一步提取鲁棒特征来生成哈希序列,该算法鲁棒性较好,但区别性不足.文献[5]对边界信息进行了研究,提出利用图像的显著结构特征来构建图像哈希算法,该算法利用双阈值Canny 算子来获得图像的边界信息,对包含较多边界信息的图像子块提取DCT(discrete dosine transform,DCT)系数特征和位置信息,最后联合起来并通过主成分分析(principal comonent analysis,PCA)压缩得到最终的哈希序列.实验结果显示,该方案鲁棒性较好,但由于该方案只利用了图像的边界信息,因此对图像的局部内容的改变识别能力较低.为了保证旋转处理的鲁棒性,文献[6]利用Ring 分割技术对图像进行分环处理,并提取每一环的统计特征来构建哈希算法.文献[7]探索了张量分解在哈希算法中的应用,提出了基于张量分解的图像哈希算法.该算法首先对原始图像完成预处理过程,然后提取图像在CIE L*a*b*颜色空间下的L*分量作为亮度分量,接着对亮度分量分割为一系列子块并求取相应的均值得到新的特征均值,利用特征矩阵构建张量,对张量进行Tucker 分解生成哈希序列.该方法具有不错的鲁棒性,但其分类性能需要进一步提高.除此之外,如局部线性嵌入[8-9]、多维尺度变换[10]、离散小波变换[11-12]、位平面分解[13]、randon 变换[14]等技术也被用于构建哈希算法.上述大部分哈希算法主要针对于灰度图像,忽略了图像的彩色信息,当图像的颜色信息被篡改时,这一类算法往往不能有效地识别出来,同时由于缺少颜色信息,算法的区分性也有所不足.
颜色信息是彩色图像中的重要信息,各种颜色特征在彩色图像的特征提取中得到了广泛的应用,如RGB 颜色空间或其他颜色空间各分量的统计值、颜色向量角(CVA)、颜色直方图等.然而,两个不同的颜色对可能产生相同的颜色向量角.如图1所示,(C1,C3)和(C2,C4)是两种不同的颜色对,但它们的颜色向量角相同.然而,C1、C2、C3、C4的红绿值分别为90、202.5、-30、-67.5.可见,利用红绿值可以有效地捕捉图像的颜色信息.因此,本文利用颜色对立色作为图像哈希的颜色特征.
本文通过颜色对立色机制有效地获取图像的颜色信息生成稳健的颜色特征,应用注意力权重矩阵获取图像的显著区域的鲁棒特征提高算法的区别性,结合颜色特征和显著区特征构建哈希算法.实验结果表明,本文算法对亮度调整、JPEG 压缩和图像缩放等常见的保持内容的图像处理操作具有较好的鲁棒性,可以较好地区分相似图像对、篡改图像对和不同图像对且哈希长度较短,生成效率较高.
图1 具有相同颜色向量角的两组不同颜色对Figure1 Two distinct color pairs with the same color vector angles
本文提出的基于对立色与显著区域的图像哈希算法生成过程如图2所示,主要由图像预处理、颜色特征提取、显著区域稳健特征提取、哈希序列的生成4个部分组成.
图2 图像哈希算法框架图Figure2 Algorithm framework of the image hashing method
对原始图像通过双线性内插法将其规格化为N ×N大小,提高算法对缩放的鲁棒性,并保证不同大小的图像拥有相同长度的哈希序列,然后将规范后的图像进行高斯低通滤波处理,以便减小噪音、压缩之类的细微操作对图像产生的影响[15].
研究发现,人的视网膜中存在红-绿和蓝-黄颜色对立成分[16],可由式(1)和(2)进行计算[17].
式中,R(x,y),G(x,y),B(x,y),Y(x,y)分别为式(3)~(6)定义的函数.
式中,fR(x,y)、fG(x,y)、fB(x,y)分别为RGB 颜色空间的红、绿、蓝3个通道.
按照上述计算方式,从预处理后的图像中提取RG 图像和BY 图像,图3为预处理图像和对立色图像的一个示例.
图3 预处理图像与对立色图像的一个示例Figure3 Example of pre-processed image and opposite color images
为了提取稳健的颜色特征,将RG 图像分割为一系列大小为b×b的非重叠小块,并对每一个小块的像素进行均值计算,得到特征矩阵F1.为了增加算法的鲁棒性,对特征矩阵F1的对角方向、垂直方向、反对角方向、水平方向的4个方向的像素变化进行计算,计算方式如图4所示,矩阵A与矩阵B相减得到相应方向的变化矩阵.将得到的4个方向变化矩阵按行展开得到对角变化序列Fd、反对角变化序列Ffd、水平变化序列Fs、垂直变化序列Fc.4个方向的变化序列联合得到4×(N/b-2)2维的特征矩阵F2,为了得到简短的颜色特征序列,设特征矩阵F2第j列均值作为参考向量Cj,按照式(7)计算出不变特征矩阵F3,并通过式(8)压缩得到简短的特征序列Z= [z1,z2,··· ,zj],最后利用式(9)的量化方式将特征序列量化为二进制序列H=[h1,h2,··· ,hj].
式中,max(F3(j))和min(F3(j))分别表示矩阵F3第j列的最大值和最小值;MZ为特性序列Z的均值.
经过上述处理后,可以从RG 图像中得到二进制序列HRG,同理从BY 图像中得到二进制序列HBY,将RG 图像和BY 图像的特征序列联合起来构成颜色特征HC=[HRG,HBY].
视觉的显著区域是人们观察一幅图像感兴趣的地方或区域.研究表明,大部分人在观察含多个人脸的图像时,不同位置的人脸对人的视觉吸引程度不同[18].受此启发,定义一个注意力权重矩阵,如图5所示.人们在观察一幅图像时,图像的不同权重区域对人的吸引程度不同.
图4 4个方向的颜色变化Figure4 Color change in four directions
图5 注意力权重矩阵示意图Figure5 Attention weight matrix diagram
为了提取视觉注意力区域的稳健特征,将预处理后的RGB 彩色图像转换为YCbCr 颜色空间,并取Y分量表示亮度分量,将亮度分量分割为一系列大小为b×b的小块.按照注意力权重矩阵,在不同权重区域中选取不同数量的小块来体现权重值.为了方便后续特征提取,设注意力权重矩阵的每个权重值区域包含4个图像子块.如图6所示,对中心区域,即圆形区域,选择4个小块表示该区域的显著区.图像块内包含的信息越丰富,相应的方差值越大.因此,对图6中的三角形区域,计算出该区域每个小块的方差,选取方差最大的2个小块作为该区域的显著块;在图6中的菱形区域选取方差最大的3个小块作为显著块;在图6中的长方形区域选取方差值最大的1个小块作为显著块.因此,共得到18个图像显著块.按照式(10)和(11)计算所有显著块的两个主要DCT 系数[19]来表示其相应子块的鲁棒特征,将所有子块的鲁棒特征联合起来得到维度为2×18 的特征矩阵E.然后对特征矩阵E按行展开,得到1×36 维的特征序列Z2,同时按照等式(9)将特征序列量化为二进制序列得到显著区特征序列HX.
式中,Cv表示图像块Bv的k × k维DCT 系数矩阵;Cv(1,2)表示系数矩阵Cv的第1 行第2 列;Cv(2,1)表示系数矩阵Cv的第2 行第1 列.
图6 视觉注意力示意图Figure6 Example of visual attention
将得到的颜色特征HC和显著区特征HX联合起来得到中间哈希序列Hm= [HC,HX].由1.3 节可以得到图像颜色特征的长度为2×(N/b-2)2bits,由1.4 节可以得到图像显著特征的长度为36 bits,于是本文提出的算法哈希长度L= 2×(N/b-2)2+36 bits.利用伪随机发生器产生L个伪随机数序列S作为密钥Key1.通过密钥Key1 对中间哈希序列的列重新排列得到最终的哈希序列,即
式中,S[i]为伪随机数序列S中的第i个数.
本文选择汉明距离判断两幅图像是否相似.当两幅图像的哈希距离D大于设定的阈值时判断为不同图像,反之为相似图像.
式中,h1和h2为两幅图像的哈希序列;⊕为异或操作.
本文算法的参数设置如下:规格化大小N= 256,标准差为1 的3×3 高斯低通滤波.图像块大小b=32,因此哈希长度L=108 bits.
为了评估本文算法的鲁棒性,利用20 幅标准彩色图像作为测试样本,图7为其中一部分图像示例.按表1所示的保持内容的图像处理操作生成相似图像.由于图像内容限制,实验结果仅列出airplane、house、lean、baboon、peppers 5 幅图像在不同攻击下的鲁棒性,见图8,其中横坐标为图像处理的参数设置,纵坐标为相似图像与原始图像的汉明距离.可以看出,旋转操作的汉明距离波动范围大,当旋转角度大于1°时,汉明距离波动范围超过了0.2,其他保持内容的图像处理操作的汉明距离波动范围不大.同时我们对20 幅图像在不同攻击下的汉明距离进行了统计,如表2所示,从中可以看出7 种保持内容的图像处理的哈希距离最小值均为0.在最大值、均值和标准差中,旋转操作的哈希距离均是最大,说明本文算法对大角度旋转的鲁棒性较差,这是因为本文显著区特征是通过图像子块来提取的,因此对大角度旋转的鲁棒性不足.其他6 种图像处理的哈希距离最大值均不超过0.15,且标准差和均值都较小,说明本文算法对诸如JPEG 压缩、亮度调整、对比度调整和椒盐噪音等保持内容的图像处理具有较好的鲁棒性.
图7 鲁棒性实验使用的彩色图像Figure7 Color images used in robustness experiment
从网络图库中下载1 000 幅不同图像构建测试集.通过所提哈希算法对1 000 幅图像提取哈希序列,并计算两两哈希序列之间的汉明距离,共得到499 500个哈希距离.实验结果如图9所示,图中横坐标为汉明距离,纵坐标为汉明距离出现的次数.计算发现最小的汉明距离为0.101 9,最大的汉明距离为0.796 3,平均值和标准差分别为0.484 9 和0.064 5.当阈值设为0.1 时,不同图像均能被有效地识别出来.当阈值增加时,算法的区别性随之降低,鲁棒性随之提高.因此,引入碰撞率[20]来分析本文算法的区别性,计算公式为
表1 攻击设置Table1 Attack settings
表2 不同攻击下的汉明距离统计结果Table2 Statistics results of hamming distance under different attacks
图8 鲁棒性实验结果Figure8 Robustness experiment results
式中,NC是不同图像对被误判为相似图像对的总数目,ND是不同图像对被正确判断为不同图像对的总数目.
碰撞率与阈值的关系如表3所示.从表3可知,当阈值设为0.14 时,碰撞率为8.0×10-6;当阈值设为0.16 时,碰撞率为1.8×10-5.因此本文算法碰撞率较低,可以选择一个合适的阈值平衡所提算法的鲁棒性和区别性.
表3 不同阈值下的碰撞率Table3 Collision probability under different thresholds
图9 不同图像对的汉明距离分布Figure9 Hamming distance distribution of different image pairs
为了对比算法的性能,将所提算法与Local Color 算法[2]、CS-LBP 算法[3]、Ring 算法[6]、TD 算法[7]进行比较.对2.2 节中的1 000 幅图像按表4处理生成相似图像对.利用ROC曲线[21]分析算法对相似图像对和不同图像对的区分能力,实验结果如图10 所示,横坐标为错误接收率PFPR,纵坐标为正确接收率PTPR,计算公式为
式中,n1为误判为相似图像对的数目;n2为正确判断的相似图像对数目;N1和N2分别为不同图对和相似图像对的总数目.
在ROC 曲线图中,不同算法取相同的PFPR时,PTPR越大的算法性能更优越.同理,取相同的PTPR时,PFPR越小的算法性能更优越.当PFPR为0 时,本文算法的PTPR为0.991 5,而Local Color 算法、Ring 算法、CS-LBP 算法、TD 算法的PTPR分别为0.960 3、0.974 2、0.998 7 和0.982 8.当PTPR接近1 时,本文算法的PFPR为6×10-5,而Local Color 算法、Ring算法、CS-LBP 算法、TD 算法的PFPR分别为0.943 6、0.475 0、0.126 4、0.009 3.只有PFPR为0时,CS-LBP 算法的PTPR略高于本文算法,其他数值均明显低于本文算法.同时从图9可以看出,本文算法相对于其他算法更接近图像的左上角,因此本文算法图像分类性能更好.这是因为本文算法充分利用了图像的颜色信息,并结合了图像的显著区特征使得算法在图像的鲁棒性和区别性上达到一个较好的平衡.同时为了测试不同算法的生成效率,我们通过Matlab 平台,在同一电脑上提取1 000 幅图像的哈希序列并记录总时间求出不同算法运行一次所需的平均时间,如表5所示.可以看出,本文算法在对比算法中所用时间最短为0.04 s,Ring 算法所用时间最长为0.55 s.
本文算法、Local Color 算法、Ring 算法、CS-LBP 算法、TD 算法的哈希长度分别为108 位、64个十进制数(一位的十进制数至少需要4 位二进制数表示,因此至少为256 位)、440 位、64个十进制数(最少256 位)和96 位.本文算法的哈希长度与TD 算法的哈希长度相差不大,但分类性能明显优于TD 算法;与其他算法对比,本文算法的哈希长度更加紧凑.
表4 攻击设置Table4 Attack settings
图10 不同哈希算法的ROC 曲线Figure10 ROC curves of different image hashing methods
表5 不同算法的平均时间和哈希长度Table5 Average time and hash length of different algorithms
为了测试本文算法的篡改检测性能,从VOC2012 数据库[22]中下载15 000 幅图像,并对每幅图像添加占原图像面积20%的对象,图11 为一个篡改示例.通过本文算法提取篡改图像与原始图像的哈希序列,并计算哈希距离.对篡改图像对的哈希距离分布、2.3 小节相似图像对和不同图像对的哈希距离分布进行绘制,如图12 所示.横坐标为汉明距离,纵坐标为发生的概率.取不同曲线的交点的横坐标T1= 0.078 8 和T2= 0.347 0 作为篡改检测的阈值,当原始图像与测试图像的哈希距离小于T1时,认为图像为相似图像;两个图像的哈希距离在T1和T2之间时,认为图像为篡改图像;哈希距离大于T2时,图像为不同图像.通过计算发现,当阈值T1= 0.078 8 时,算法有98.03%的识别率正确识别相似图像对;当阈值T2= 0.347 0 时,有97.92%的识别率正确识别不同图像对;对篡改图像,有98.72%的正确识别率识别篡改图像对.表6给出了一些篡改实例,其中1~6 是颜色篡改的实例,7~8 是在图像非显著区域进行篡改,可以看出篡改图像和原始图像的汉明距离均分布在阈值T1、T2之间.因此本文算法对图像篡改具有较好的检测能力.
图11 原始图像与篡改图像示例Figure11 Example of original image and tampered image
图12 汉明距离分布Figure12 Hamming distance distribution
表6 原始图像与篡改图像的汉明距离Table6 Hamming distances of original image and tampered image pairs
为了提高图像哈希算法的分类性能,兼顾算法的紧凑性,本文提出了一种基于颜色信息和显著区特征的紧凑图像哈希算法.该算法利用颜色对立色机制提取RG 图像和BY 图像,对这两种包含颜色信息的图像提取4个方向的颜色变化信息,并通过压缩得到颜色特征序列;利用视觉注意力权重矩阵,提取包含丰富信息的图像子块的主要DCT 系数来构建显著区特征;最后联合颜色特征和显著区域特征并置乱得到最终的哈希序列.实验结果表明,本文哈希算法的哈希序列紧凑、运算速度快,与现有一些算法对比,本文算法的图像分类能力较好.在篡改检测实验中,当取两个不同的阈值时,本文算法能够有98.72%正确识别率识别篡改图像对,同时算法对颜色篡改的图像,也具有较好的识别能力.