基于四元组的图像hash方法

来源:互联网 发布:折800淘宝 编辑:程序博客网 时间:2024/06/08 15:45

像素级别的图像hash方法过于敏感,对于噪声、滤波、压缩等攻击非常不鲁棒,最近读到一篇文献,利用四元组表示彩色图像,基于图像几何和图像特征分别计算hash,形成的hash值鲁棒性比较高,有效的抵抗了各种攻击,文献的算法用于图像的篡改检测,我们主要学习其中鲁棒的hash提取方法。


一、四元组


四元组是一个四维的复数,包括一个实部三个虚部



    四元组中i,j,k遵守下面的规则:

        还可以将四元组表示为极坐标或者虚部加实部的形式,四元组的模等义为四元组系数平方的算数平方根sqrt(a^2+b^2+c^2+d^2),模为1的四元组为一个单位,实部为0的四元组定义为纯四元组。

四元组理解和学习可以参考:彻底搞懂四元组

二、傅立叶梅林变换


根据上面的规则可以看出,四元组不支持交换律,彩色图像由R,G,B三个通道组成,一幅彩色图像可以表示为一个实部为0的四元组,R,G,B分别为四元组的虚部:


傅立叶梅林变换等效于对一幅图像做对数极坐标变换后在进行傅立叶变换,文章选取了傅立叶梅林矩作为图像的几何hash,将彩色图像的每一个通道从笛卡尔坐标系转化到极坐标系得到:


对图像进行四元组的傅里叶变换,选取傅里叶梅林矩作为图像hash,傅里叶梅林变换具有旋转不变性,图像经过旋转和缩放后,进行傅里叶梅林变换有如下关系:


通过上面的等式可以求出图像旋转的角度和缩放因子,对图像进行还原。

四元组的傅里叶变换公式为:

m取1,n取1,2,3,4,5则可得到5组傅里叶梅林矩。

三、图像特征hash

图像在传输过程中、或者人为对图像进行旋转和缩放的操作,可以通过上面得到的傅里叶梅林矩将图像恢复,为了增加图像的鲁棒性,还需要在图像特征方面生成hash,同样需要将图像转化为四元组表示方式:


f1定义为图像的边缘强度,f2表示图像的结构信息,f3,、f4表示图像的颜色信息。

图像结构信息通过对图像进行双边滤波,进行灰度化后的结果作为结构信息,双边滤波的权重系数由定义域核和值域核共同决定,所以可以在保留边缘的情况下对图像进行去噪处理:



双边滤波的学习和matlab实现可以参考Rachel Zhang的博客

边缘信息可以通过不同参数(值域方差)得到的双边滤波结果做差得到:


颜色信息通过red-green,blue-yellow 颜色对来表示,首先对颜色进行定义:


通过上面的颜色定义可以计算出两组颜色信息:




这样通过f1,f2,f3,f4可以构造出图像的四元组系数,对构造的四元组进行傅里叶变换,将变换后的图像原点平移,使低频集中在中心,从中心选取16个系数作为图像的特征hash

将集合hash和特征hash组合形成整个 图像的hash,对于噪声、滤波、压缩等普通的攻击具有较好的鲁棒性

四、参考文献

Yan C P, Pun C M, Yuan X C. Quaternion-Based Image Hashing for Adaptive Tampering Localization[J]. IEEE Transactions on Information Forensics & Security, 2016, 11(12):2664-2677.

原创粉丝点击