APP下载

基于深度卷积神经网络和局部敏感哈希的图像检索

2020-07-01廖荣凡沈希忠

应用技术学报 2020年2期
关键词:哈希检索卷积

廖荣凡, 沈希忠

(上海应用技术大学 电气与电子工程学院, 上海 201418)

在网络信息技术日益发达的背景下,网络图像资源迅速增长,如何实现快速有效的检索成为了亟待解决的问题。当前基于内容的图像检索(content-based image retrieval, CBIR)成为研究的热点之一。基于图像内容的检索技术流程是通过提取图像纹理、形状和色彩分布等特征,计算待检索图像与已经构建好的图像数据库中各个图像的距离,返回与待检索图像最接近的图像。检索中最具有挑战性的问题是如何将图像像素层面的信息与个人理解的图像语义联系起来[1]。

深度卷积神经网络在图像分类、图像语义分割和目标检测等计算机视觉领域表现优异,对图像底层和中层特征有很好的表达能力。相对于人工选择图像特征表达图片内容的方法,例如SIFT[2]、HOG[3],卷积神经网络学习到的高维图像特征可以更好地表达图像信息,但也增加了计算复杂度,尤其是在大数据背景下,训练1个大型深度卷积神经网络使其收敛到较高的精度,然后用于图像检索任务,往往需要很大的计算开销,同时对于检索本身而言高维度的特征向量也较低了检索的效率。

Krizhevsky等[4]使用其提出的Alex-Net网络的第7层(全连接层)输出作为图像的特征向量,用于图像检索,在ImageNet数据集[5]上取得了很好的表现。但是其输出的特征向量高达 4 096 维,检索大量 4 096 维的数据,判断2个向量的相似度,其计算速度是一个值得优化的问题。Babenko等[6]使用主成分分析(PCA)压缩特征向量的维度,实现数据降维,明显地加快了检索速度,但是比较2个矩阵的相似度依然不是一个高效的运算。文献[7-10]提出使用近似最近邻(approximate nearest neighbor,ANN)算法加速运算,如局部敏感哈希(locality sensitive hash,LSH),将高维度的特征数据映射到低维度的二值空间中,形成二值编码后,比较它们的汉明距离可以进一步提高检索速度[11]。

在Alex-Net网络之后涌现出了一系列表现优异同时也更加复杂的卷积网络,如VGGNet[12]、Inception[13]和Xception[14]等,这些网络虽然提高了图像检索的精度但因为巨大的计算开销同时也增加了网络训练的难度。

本文设计的检索方法提供了一种简洁有效的图像检索框架。在计算资源有限的情况下,利用迁移学习方式[4]使用VGG16深度卷积神经网络在ImageNet数据集上训练好的模型完成图像检索任务,并使用LSH算法进一步提升检索速度。

图1 检索图片Fig.1 Retrieve image

1 图像检索方法

通过迁移学习方式使用VGG16深度卷积神经网络[12]在ImageNet数据集上训练好的模型,先采集由其全连接层输出的高维图像特征,再经局部敏感哈希处理保存图像的二值化特征编码建立图像的特征数据集,最后将待检索图片输入到网络中得到图像的特征编码和数据库中的特征数据集进行比较返回最相近的图像。

1.1 深度卷积VGGNet网络

卷积神经网络(convolutional neural network, CNN)是一种专门用来处理具有类似网格结构数据的神经网络,如时间序列数据和图像数据[15],具有很好的特征提取能力,可以层次化提取图像的像素特征完成高精度的图像分类。

VGGNet由牛津大学开发。VGG16网络[12]包括13个卷积层、5个池化层和3个全连接层。它的输入为224×224×3(pixel)的RGB图像,整个网络只使用3×3的卷积核,卷积步长为1,而池化层均采用2×2的最大池化,由全连接层实现对ImageNet数据集的分类。

卷积神经网络全连接层的输出包含输入图像的视觉特征,可以看成为输入图像的特定编码,具有相似编码的图像也具有相似的图像特征[16-17]。使用VGG16网络在ImageNet数据集上训练好的模型,分离网络的图像分类层(softmax layer)使用其全连接层的输出作为图像检索的特征编码,建立检索图像数据集的特征索引(见图1)。

设图像数据集中有N张图片,数据集中第i(0≤i≤N)张图片的特征编码为vi∈Rm,待检索图片特征为vq∈Rm,其中m为特征的维度。2张图片间的距离定义为

li=‖vi-vq‖q

(1)

在图片搜索时,将待检索图片输入神经网络得到检索图片的特征编码vq后与数据库中的各图像特征vi对比,计算图像特征之间的距离,如式(1),按距离的大小返回距离最小的前n张图片。

1.2 局部敏感哈希

哈希算法指的是构建一个哈希模型,使用该哈希模型,可以将高维度的图片特征映射为低维度的哈希编码。局部敏感哈希(local sensitive Hash)算法主要用来解决高维空间中点的近似最近邻搜索问题。局部敏感哈希函数定义:

(2)

式中:r为超平面向量符合高维高斯N(0,1)分布[2];vi∈Rm代表样本的特征向量。

具体过程如下,给1个样本特征v∈Rm,将v代入哈希函数H={h1,h2,…,hk},得到二值编码的计算过程:

y={h1(v),h2(v),…,hk(v)}

(3)

这个过程也可以表示为:

H:v→{h1(v),h2(v), …,hk(v)}

(4)

得到哈希编码后,对图片进行最近邻搜索,通过计算待检索图片的哈希码与数据库中各图片哈希码的汉明距离,得到与待检索图片特征最相似的结果。

2张图片的特征向量为vi和vj,它们的哈希编码分别为yi=[h1(vi),h2(vi), …,hk(vi)]和yj=[h1(vj),h2(vj), …,hk(vj)],则它们的哈希距离定义为:

dH(yi,yj)=‖yi-yj‖1

(5)

在实际计算中,因为哈希码由0和1构成,因此其哈希距离可以直接通过计算机中的位操作来进行,因此大大提升了计算速度。相较于在原始的特征空间中利用图片特征进行检索,利用图片的哈希编码进行最近邻搜索明显地加快了检索的速度。

2 实 验

在ImageNet ILSVRC2012_img_val验证数据集上检验实验的效果。此数据集是ILSVRC2012训练数据集的验证数据集包含 50 000 张不同类型的图片。实验先利用VGG16网络建立数据集图片的特征索引,然后进行检索,验证实验的检索精度,最后使用局部敏感哈希加速检索速度,提高大规模图像数据检索的时效性。

2.1 卷积神经网络输出特征检索的有效性

使用基于距离排序的准确率测量方法,给出带查询图片q,检索出数据库中距离q最近的前k张图片,其中第i(0≤i≤k)张图片的标签(label)若与图片q的标签相同则记val(i)=1,否则记val(i)=0。检索精度P的计算公式为

(6)

取j张图片,每张图片的检索精度记为pj则模型的平均检测精度为:

(7)

使用10张验证集中的图片(见图1)。每张图片检索时取k=1、5、10,经过多次检索实验,上述网络的检索精度如表1所示。部分图片检索结果如附录1所示。

表1 图片检索精度Tab.1 Image retrieval accuracy

由实验结果分析可见当k=1时,即对输入图像进行匹配时可以完全精准地匹配到数据集中的对象。当k=5、10时,基于图像内容的检索精度分别为0.93和0.83,在准确判断图像类别的基础上还可以依据图像的像素特征返回相近的图片。

2.2 使用局部敏感哈希提升检索速度

使用局部敏感哈希算法将图像的高维特征映射到8维的哈希空间中建立图像索引,然后对上述提到的10张标准图片检索。在上述相同数据集上检索的时间,见表2。其中部分检索图像结果如附录2所示。

表2 使用VGG网络和VGG+LSH算法检索的时间开销Tab.2 Retrieval time using VGG network and VGG+LSH algorithm s

由上述实验结果可见在大规模数据集上使用这种方法可以明显提高检索的速度。在本图像数据集(50 000 张)中局部敏感哈希算法将检索速度提升了近3倍。使用上文设定的10张标准检索图片,按式(7)计算局部敏感哈希算法检索图片的精度。取k=1、5、10,经过多次检索实验,上述网络的检索精度如表3所示。实验表明使用VGG16网络结合局部敏感哈希算法检索图像可以在不明显影响检索精度的情况下大幅提升检索速度。

表3 VGG+LSH检索精度Tab.3 Image retrieval accuracy of VGG+LSH

3 结 语

本文通过使用深度卷积神经网络的全连接层输出作为图像的特征编码,用于端到端的基于内容的图像检索,并使用局部敏感哈希算法加速检索。实验表明使用VGG16网络结合局部敏感哈希算法检索图像可以大幅提升检索速度,同时保持较高的检索精度。本文设计的图像检索方法提供了一种在计算资源有限情况下实现大规模图像检索的轻便框架,可有效完成大规模数据的图像检索和匹配任务。

猜你喜欢

哈希检索卷积
基于特征选择的局部敏感哈希位选择算法
基于3D-Winograd的快速卷积算法设计及FPGA实现
哈希值处理 功能全面更易用
文件哈希值处理一条龙
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
专利检索中“语义”的表现
巧用哈希数值传递文件
国际标准检索