APP下载

一种面向图像相似度计算的改进哈希算法

2022-04-28夏雨轩曲海成关茜文

智能计算机与应用 2022年4期
关键词:哈希小波灰度

夏雨轩,曲海成,关茜文

(辽宁工程技术大学 软件学院,辽宁 葫芦岛 125105)

0 引 言

随着互联网的飞速发展,多媒体技术的广泛应用,互联网中的图像呈爆炸式增长,数量达到上千亿级。针对在海量数据库中寻找相似图像这一问题场景,常见的做法是先进行特征提取或者指纹生成,再计算图像的相似度。现有技术中有基于指纹生成的感知哈希(aHash)、均值哈希(pHash)、差异值哈希(dHash)算法,有基于特征提取的基于局部不变性的SIFT算法,基于深度学习的神经网络模型。这些技术均能满足一定程度的需要,对于所述算法和模型,吴迎采用基于SIFT和最临近匹配算法对图像相似度进行计算,精度略优于3种Hash算法。徐梦莹等人采用KAZE与aHash结合的方法对相似图像进行匹配,正确率较高。胡新荣等人采用改进Hash算法对图像相似度进行计算,鲁棒性较强。赵学敏等人采用基于深度学习的以图搜图技术,提供了神经网络模型提取图片特征信息并用于照片档案管理的思路。陈世荣等人采用改进的aHash对遥感图像格网进行相似度计算,提高了检测图像变化的精度。

Hash算法对图像的缩放、光照等变换的适应性较差。SIFT算法在求主方向阶段太过依赖图像局部像素的梯度方向,有可能使找到的主方向不准确,而后面的特征向量以及匹配严重依赖主方向,一旦有偏差效果会显著下降,且利用高斯滤波构建线性尺度空间来提取图片特征信息时容易造成图像边界清晰度下降和原始图像的细节丢失等问题,同时,图像金字塔的层数难于设定:如果层数少,会在匹配时出现误差;如果层数过多,则会造成keypointer数量过大,带来庞大的计算负担。而对于深度神经网络学习图像的方法,需要大量数据集去训练模型,且检索速度慢、适用场景固定。

在日常应用中,同一个物体会有多种不同角度、不同亮度等的图像表达,这些不同会改变图像的具体表示数据,但并不改变图像的视觉本质内容,对于这类图像,通过传统算法处理得到的指纹应基本相同。

由上述论文的理论研究与支撑,针对图像匹配中相似度计算出现的问题,本文提出一种新的图像相似度计算方法,具有准确率高、无需训练、可移植性强等优点,在主观视觉评价和客观指标上均取得了较好的结果。

1 幸存哈希算法

本文提出的幸存哈希算法是一种基于无监督学习的哈希方法,无需大量带标签的数据集,无需考虑图像尺寸大小不同而造成的影响,通过将每2个幸存点间距离汇总进一个数组,全相联映射计算2个数组间所有距离的比值,并设定阈值遍历取满足条件的值的个数,通过公式计算图像相似度,达到匹配的最终目的。图1为幸存哈希算法的基本结构。

图1 幸存哈希算法架构Fig.1 Survival hashing algorithm architecture diagram

1.1 Gabor小波滤波器

在图像处理中,Gabor函数是一个用于边缘提取的线性滤波器。Gabor滤波器的频率和方向表达同人类视觉系统类似,与人类的视觉细胞对外界的刺激做出应激反应十分相似。在空间域中,一个二维Gabor滤波器是一个由正弦平面波调制的高斯核函数,可以增强边缘以及峰、谷、脊轮廓等底层图像特征,所以可以用来增强图片关键部位的局部特征,提高图片边缘轮廓的清晰度。

二维Gabor小波的函数表达式为:

其中,k可由如下方式计算得到:

Gabor小波滤波器和脊椎动物视觉皮层感受野响应的比较见图2。图2中,第一行代表脊椎动物的视觉皮层感受野,第二行是Gabor小波滤波器,第三行是两者的残差。可见两者相差极小。Gabor小波滤波器的这一性质,使其在视觉领域中经常被用在图像的预处理中。

图2 Gabor小波滤波器和脊椎动物视觉皮层感受野响应的比较Fig.2 Comparison between Gabor wavelet filter and vertebrate visual cortex receptive field response

研究发现,Gabor小波对于光照的敏感度较低,对光照有很好的适应性,同时可以容忍图片一定程度上由于旋转和变形而造成的误差,因此Gabor小波滤波器十分适合纹理表达、分离与轮廓提取。N-Gabor轮廓图如图3所示。

图3 N-Gabor轮廓图Fig.3 N-Gabor skeleton map

1.2 固定阈值二值化

图像经过Gabor小波滤波器后可以被清晰地看见轮廓,但轮廓图有256个灰度等级,不方便进一步操作,故需对轮廓图进行二值化处理。图4为NGabor图像的灰度直方图。

图4 N-Gabor图像的灰度直方图Fig.4 N-Gabor gray scale histogram of images

二值化的算法分为固定阈值和自适应阈值,由N-Gabor图像的灰度直方图可知,若使用自适应二值化算法,可能导致2张形状完全不同、颜色近似的图像在下面的步骤中被提取出位置基本一致的幸存点,因此使用固定阈值二值化算法,以127为固定阈值,选定像素灰度值小于127则定义为0,反之则定义为1。图5为N-Gabor图像经过固定阈值二值化处理后得到的N-G-binary图像。

图5 N-G-binary图像Fig.5 N-G-binary image

1.3 幸存点定位

上述步骤得到的图的大小取决于原图分辨率,若图片过大,会影响计算效率,且图中灰度值为0的点存在十分密集的情况,故进行降采样与类似池化的操作。

将图片进行高斯模糊后删除偶数行与列,进行上述操作若干次,直至图像大小变更为32×32;从左上角第一个像素开始,向右下角逐行进行遍历,每出现一个灰度值为0的点,建立一个以该点为左上角的矩阵,矩阵长为8,宽为8,其中为N-Gbinary图像宽度,为N-G-binary图像高度。得到上述矩阵后,将除左上角像素外其余所有像素灰度值设置为1,即将N-G-binary图像中灰度值为0的点数量限制在64个以内,最终得到的灰度值为0的点如同幸存下来的点,故取名为幸存点。

1.4 幸存点测距与指纹生成

经上述步骤对图像进行处理后,从左上角第一个像素开始,向右下角逐行进行遍历,对得到的图像中所有灰度值为0的点间进行全相联映射做比,得到的最多63个距离即为该图片的指纹。

1.5 指纹比较

其中,为前文所述比值的个数。

2 实验结果与分析

为了验证本文算法的可靠性和实用性,本文选用了三维建筑物正面图像、侧面图像及其经Retinex增强图像、经典Mikolajczyk标准图像集中旋转变换(boat)组,共5张图像,做3组实验,分别对5组图像使用感知哈希算法、均值哈希算法、差异值哈希算法、幸存哈希算法计算其相似度。样本图像如图6所示。

图6 实验中所用的样本图像Fig.6 Sample images used in the experiment

本文选用的实验平台是Windows10操作系统家庭中文版,配置为Intel(R)Core(TM)i5-10300H CPU,16 GB内存,编程环境为Anaconda Spyder,基于OpenCV进行实验,选择算法准确率和算法的运行时间作为评价指标,来对本文算法进行分析评估,实验结果见表1、表2。

表1 各算法在每组图片上计算的结果Tab.1 Results calculated by each algorithm on each set of images%

表2 各算法在每组图片上计算的时间Tab.2 Time calculated by each algorithm on each set of pictures s

由表1可知,对于视觉变换的图像,本文算法计算得出的相似度仅次于均值哈希算法,与其差距甚微;对于光照变换的图像,本文算法计算得出的相似度高达100%;对于旋转变换的图像,本文算法略逊色于均值哈希算法。可以推出本文算法对图像的具体表示数据有较准确的判断力,对视觉本质内容识别表现良好。

由表2可知,对于视觉变换和光照变换的图像,本文算法运行效率高于其它3种算法;对于旋转变换的图像,本文算法表现稍差。

3 结束语

本文算法对于计算光照变换的图像相似度,表现优异,但对于旋转变换中视角变化大的图像,效果欠佳,而且在比较光照变换的图像过程中运行时间较长,这将是后续研究的重点。

本文从网上采集多组数据,同时也使用多种不同算法对图片进行相似度计算,结果验证本文算法具有和人类视觉神经高度相似的特性,对图像多种几何变换的适应性较强,确实提高了图片相似度计算的准确率。

猜你喜欢

哈希小波灰度
构造Daubechies小波的一些注记
小波去噪算法研究
哈希值处理 功能全面更易用
天津港智慧工作平台灰度发布系统和流程设计
Windows哈希值处理不犯难
文件哈希值处理一条龙
华为“灰度”哲学
善用游戏的方式解决手足争端
Arduino小车巡线程序的灰度阈值优化方案
青蛙历险