APP下载

关于对图像哈希算法的研究与应用

2016-02-10姚永明吴凌燕

关键词:汉明原图哈希

姚永明, 杨 纯, 吴凌燕, 沈 烨

(南京邮电大学 通达学院,江苏 扬州 225200)

关于对图像哈希算法的研究与应用

姚永明, 杨 纯, 吴凌燕, 沈 烨

(南京邮电大学 通达学院,江苏 扬州 225200)

传统的基于文本的检索方式无法精确地搜索图片,因此基于图像内容的检索技术应运而生.它利用图像哈希算法提取图像特征,通过量化压缩等方法产生一个标明图像指纹的哈希序列,对比哈希序列即可判定两张图像的相似度.主要从图像哈希算法的定义、原理、特点、应用等方面进行研究,并着重介绍和对比aHash算法及pHash算法.

均值哈希算法;感知哈希算法;哈希算法;图片相似搜索

1 概述

在网络技术飞速发展的当今社会,以图片、音乐和视频为主的非结构化数据已经占据主导地位,如何从如此庞大的数据库中快速准确地找出我们需要的图像成为研究重点,同时随着人们对图像检索要求的提高,图像哈希技术应运而生.其工作原理是通过构造哈希函数将高维的数据映射成低维的二值哈希码,并使其在二值空间中保持高维数据的空间结构,具有检索速度快、存储空间小、表示方式简洁等优点.本文主要对图像哈希算法的概念及相关应用进行介绍,总结了aHash算法和pHash算法的基本思想、实现步骤,并通过旋转、缩放图像,改变图像颜色、内容等实验对均值哈希算法和感知哈希算法实现相似图像搜索的效果进行比较,总结其优缺点.

2 图像哈希算法的介绍及应用

图像哈希技术可以将任意分辨率的图像数据通过哈希函数转化为几十或几百个比特的二进制编码序列,称为哈希编码.哈希编码在目前二进制的计算机系统系下,不仅可以加快检索速度,还节省了内存空间.

2.1 哈希算法含义及特点

哈希的英文为HASH,也叫作散列函数.它是一种单向密码体制,同时可以把任意长度的输入,通过散列算法,变换成固定长度的输出.简单地说,哈希算法就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数.

HASH主要用于信息安全领域中的加密算法,它把一些不同长度的信息转化成杂乱的128位的编码,这些编码值叫做HASH值,即HASH就是找到一种数据内容和数据存放地址之间的映射关系.

2.2 均值哈希算法原理及应用

Average Hash,简称aHash,即均值哈希算法,主要用于由图像的缩略图搜原图.aHash主要利用图片的低频信息,其工作过程如下:

①缩小尺寸:将图片缩小到8×8的尺寸,共64个像素.

②简化色彩:将8×8的小图片转换成灰度图像.

③计算平均值:计算64个像素的灰度平均值.

④比较像素的灰度:将每个像素的灰度与平均值进行比较,大于或等于平均值记为1,小于平均值记为0.

⑤计算Hash值:将④的比较结果组合成一个64位的整数,即该图片的指纹.

⑥对比图片指纹:对比不同图片的指纹,计算出64位不相同位的位数.如果不相同的数据位数不超过5,说明两张图片很相似,如果大于10,说明两张图片不相同.

2.3 感知哈希算法原理及应用

pHash,全称为Perceptual Hash,即感知哈希算法.主要应用于图像检索、图像识别、图像认证及数字水印技术.其工作过程如下[1]:

①缩小尺寸:选取大于8×8,32×32的图片,简化DCT的计算,而非减小频率.

②简化色彩:将图片转化成灰度图像,进一步简化计算量.

③计算DCT:计算图片的DCT变换,得到32×32的DCT系数矩阵.

④缩小DCT:保留32×32大小的矩阵中呈现图片中最低频率的8×8矩阵.

⑤计算平均值:计算DCT的均值.

⑥计算Hash值:根据8×8的DCT矩阵,设置0或1的64位的Hash值,大于等于DCT均值的设为“1”,小于DCT均值的设为“0”.组合在一起构成一个64位的整数,即这张图片的指纹.

3 实践算法仿真

3.1 Matlab仿真实验

3.1.1 图像性质及特征

图像是一种二维的连续函数,像素是构成数字图像的最小单位.图像特征一般包含颜色特征、纹理特征、形状特征及空间关系特征.在计算机上对图像进行数字处理的时候,需要对图像进行采样和量化,量化级别越高,图像质量越好[2].

3.1.2 图形变换分析

(1)图像灰度处理

在数字图像处理中,灰度直方图表达的信息是每种亮度的像素点的个数.直方图是图像的一个重要特征,因为它用少量的数据就可以表达图像的灰度统计特征.在Matlab仿真实验中,建立一个数组存储1~256灰度级出现的个数,然后根据定义,计算各像素灰度值出现的个数,如图1、图2所示.

图1 原始图像

图2 各像素灰度值个数图

(2)基于DCT的图像去噪

对图像进行模糊和去噪声处理,目的是去除太小的细节或将目标内的小间断连接起来,以减少对图像特征识别的影响.一般图像存在很多冗余和相关性,也就是说图像的噪声在离散余弦变换结果中处在其高频部分,而高频部分的幅值一般很小,利用这一性质,很容易实现图像的噪声抑制.处理结果如图3、图4所示.

图3 原始图像

图4 滤波处理后的图像

(3)图像的缩小与放大

图像的缩小是通过减少像素个数来实现的,为减少缩小图像时的像素丢失,可以采用等间隔采样的图像缩小或局部均值的图像缩小[3].本实验采用局部均值法缩小图片,因为它不同于等间隔采样,仅取在原图像中的采样点像素,而是以相邻的两个采样点为分割,将原图像分成一个个的子块,缩小图像的像素取相应子块像素的均值.

一张图片的高频成分描述具体的细节,低频成分描述大范围的信息,在对图像数字处理时我们希望保留低频成分去除高频成分.所以图像的放大采用双线性插值法,因为双线性灰度插值的平滑作用可使得图像的细节产生退化,而这种现象在进行图像放大时尤其明显.

3.2 JAVA(eclipse)环境测试

为对比两种算法相似搜图的效果,实验对图片进行一系列的变化后提取出特征因子,计算出每张图片的汉明距离,并与原图的汉明距离进行比较,来判别此图是否与原图相似或者全部相同.同时,在多次变换图形形状、颜色、大小、内容等情况下,分析出算法对何种变换不敏感,并总结了它们各自的优缺点.

3.2.1 均值哈希(aHash)算法的测试

均值哈希算法通过对比图像指纹的差异,也就是汉明距离来判定图像是否相似.汉明距离表示两个等长字对应位不相同的数量,即两个字之间的差异.若计算以d(x,y)表示的两个字符串x,y之间的汉明距离,那么对x和y字符串进行异或运算,结果为1的个数之和便是它们的汉明距离.

(1)颜色变化的影响:通过5张背景颜色不同的图片与原图比较,得如下实验结果:

Resources: [0008884b0b080808,ffff4fbcfcfffff7,0008080b0b080800,

0008080b0b080808,0008080b0b080808](指纹数)

Source: ffff4fbcfcfffff7(指纹数)

[16,0,16,16,16](汉明距离)

汉明距离越小说明两张图相似度越高,因此只有第2张图与原图完全相同,其他的汉明距离都大于10而与原图不相似.因此颜色的改变对相似搜索有很大的影响.

(2)同样地,用均值哈希算法对改变了内容、大小和旋转角度的图片进行实验,并得如下结论:

a.图片放大或缩小,或改变纵横比,结果值不会改变,对搜索影响不大.

b.均值哈希算法更简单也更快速,不受图片大小缩放的影响,但是如果在图片上加几个文字,它就无法识别.所以,它的最佳用途是根据缩略图找出原图.

3.2.2 感知哈希(pHash)算法的测试

pHash算法使用离散余弦变换(DCT)来获取图片的低频成分,离散余弦变换公式如下:

其中F(u,v)是变换系数阵列的元素,式中表示的阵列为N*N.DCT是种图像压缩算法,它将图像从像素域变换到频率域.

二维图像进行离散余弦(DCT)变换的步骤:

①获得图像的二维数据矩阵f(x,y);

②求离散余弦变换的系数矩阵A;

③求系数矩阵对应的转置矩阵AT;

④根据公式[F(u,v)]=Af(x,y)AT计算离散余弦变换.

实验把对图形的变换集中在一起,用pHash算法对其进行相似比较,实验结果如下:

source:a000000000000000

1-1 2-0 3-2 4-2 5-0 6-0 7-0 8-1 9-16 10-0 11-1

(注:a000000000000000是原图片的指纹数;“a-b”型数据的a代表图片序号,b代表汉明距离,b越小就越相似)

本次实验达到了图片相似搜索的目的,而且改善了均值哈希算法对颜色的敏感性,从而使得搜索相似图的效果大大改善.

3.3 实验总结

通过Matlab对图像的分析,我们得知在pHash算法处理图像中加入DCT变换会使相似搜索的可比性提高,并且采用局部均值法缩小图像和双线性插值法放大图片,减少了图像像素的丢失,图片的特征识别效果有所提高.另外eclipse环境测试的实验结果,也说明了均值哈希算法(aHash)更简单,但是在比较上略显死板,一旦图像中涉及颜色变化或者内容修改,它将无法识别.感知哈希算法(pHash)虽然比较复杂,但它能很好地容忍一些小的变形,改善了相似图片比较的性能.

4 总结与展望

本文对图像哈希算法的应用背景及相关理论知识进行了介绍,主要对均值哈希算法和感知哈希算法进行了研究和比较,总结了它们各自算法的思想、实现过程及优缺点.面对大数据下的检索,图像搜索似乎成为一种趋势,图像哈希技术在图像检索、模式识别以及多媒体认证等应用领域有着重要的研究意义.今后我们会更加关注图像检索技术的发展,努力研究算法的核心思想,并尽其所能地从多方面来提高算法的精确性、抗干扰性.

[1] 牛夏牧,焦玉华.感知哈希综述[J].电子学报,2008,36(7):1406-1411.

[2] 赵小川.学以致用:现代数字图像处理技术提高及应用案例详解(MATLAB版)[M].北京:北京航空航天大学出版社,2012.

[3] 史世泽.局部敏感哈希算法的研究[D].西安:西安电子科技大学,2013.

[责任编辑 马云彤]

Research and Application of the Image Hash Algorithm

YAO Yong-ming, YANG Chun, WU Ling-yan, SHEN Ye

(Tongda College, Nanjing University of Posts and Telecommunications, Yangzhou 225200, China)

The traditional text based retrieval method can not accurately search the image, so the image content based retrieval technology came into being. It uses the image Hashing algorithm to extract image features, and a marked image fingerprint of the Hash sequence is produced by using of the method of quantization and compression, and the similarity of two images can be determined by compared to the Hash sequence. In this paper, the definition, principles, characteristics, applications and other aspects of the image Hashing algorithms are studied, and the aHash algorithm and the pHash algorithm are mainly introduced and compared.

mean Hash algorithm; perceptual Hash algorithm; Hash algorithm; image similarity search

1008-5564(2016)05-0030-04

2016-05-24

2015年江苏省大学生科技创新训练计划项目(CX66615011)

姚永明(1987—),男,江苏扬州人,南京邮电大学通达学院讲师,主要从事数字图像处理研究.

TN919.81

A

猜你喜欢

汉明原图哈希
基于特征选择的局部敏感哈希位选择算法
哈希值处理 功能全面更易用
文件哈希值处理一条龙
具有最优特性的一次碰撞跳频序列集的新构造
完形:打乱的拼图
找一找
大家来找茬
媳妇管钱
巧用哈希数值传递文件
巧拼火柴棒