基于深度哈希的批量图像并行检索方法

2018-03-01 00:32熊舒羽
关键词:批量哈希检索

熊舒羽,毛 雷,刘 畅

(重庆理工大学 计算机科学与工程学院, 重庆 400054)

基于内容的图像检索(content-based image retrieval,CBIR)用一种或多种特征表示图像,然后计算待检索图像与数据库中图像在特征空间中的相似度,并按照相似度从大到小的顺序返回数据库中的图像。在传统的CBIR中,通常运用人工特征方法,力图提取更具判别性的图像特征,从而提高检索准确率。随着数字图像爆炸式增长,给图像检索的准确性和有效性带来了极大挑战。因此,探索新的图像特征提取方法、设计图像并行检索系统成为当前亟待解决的问题。近年来,卷积神经网络(convolutional neural network,CNN)在许多计算机视觉任务上取得了重大突破。由于效果较好,这种方法也被用于图像检索中。Krizhevsky A等[1]直接利用第7层的输出作为图像特征进行图像检索,取得了很好的效果,但是在查询图像时,需要计算查询图像与数据库中每张图像的相似度,导致检索时间较长,无法实现大规模数据库实时检索。Haomiao Liu等[2]提出了DSH模型,通过训练好的网络,自动提取每张图像的哈希码建立索引,在保证检索精度的前提下,降低了检索的时间复杂度。但是这些方法没有解决海量图像的存储问题,且对批量图像检索仍具有局限性。

大数据分布式计算平台Hadoop的出现为海量图像检索提供了新思路[3],即利用MapReduce技术[4],将检索过程并行化来加快批量图像检索效率。Raju U[5]和Premchaiswadi等[6]分别用Local Tetra Patterns (LTrP)和Auto Color Correlation(ACC)算法提取图像特征并存储在分布式文件系统中以实现并行检索,但这些特征的匹配容易受光照以及噪声的影响。张学浪等[7]利用SIFT算法结合词袋模型,有效减少了检索时的计算量,提高了检索实时性,但K-Means算法随机初始的聚类中心对噪音和孤立点的容忍性较差,对检索精度有较大影响。

针对传统的单节点图像检索方法在批量图像检索中效率低,且仅以人工特征作为检索依据导致特异性差的问题,本文结合了CNN的强大学习能力及Hadoop分布式并行计算的特点,提出一种基于深度哈希算法的批量图像并行检索方法。首先,构建深度哈希模型获取图像特征和哈希码存放在HBase中,然后在Hadoop平台上实现批量图像并行二级检索,即在每个检索节点上,先根据哈希编码确定图像候选集,再计算候选图像与待检索图像的相似度,最后根据相似度返回检索结果。与文献[4]和文献[7]算法相比,本文方法不仅计算量有所降低,而且准确率显著提高。

1 方法

1.1 概述

本文提出的基于深度哈希批量图像并行检索方法,主要分为3个阶段:构建深度哈希模型、图像特征与哈希码存储、图像并行检索,如图1所示。

1) 构建深度哈希模型。该模型可以通过端到端的学习方法,将学到的图像表示反作用于二值编码的更新,因此能完全发挥出深度学习的能力。

2) 图像特征与哈希码存储。将图像输入到训练好的模型,以输出的12维数据作为图像特征,然后通过符号函数将图像特征二值化成哈希码,最后分别存储在HBase的图像特征表和哈希表中。

3) 图像并行检索。 运用MapReduce技术,在每个节点上检索图像时,先在哈希表中搜索相匹配的哈希码(如图1中标注的一级过程),然后与候选集中的图像进行特征相似度计算(如图1中标注的二级过程),然后搜集结果并排序。

图1 方法概述

1.2 深度哈希

深度哈希算法结合了卷积神经网络自我学习优势以及哈希方法在检索中计算效率和空间上的优点,通过训练卷积神经网络模型,将网络输出的结果约束在一个范围内,例如[-1,1],量化得到最终的哈希码。该哈希码长度短,计算量和存储空间大幅度降低,而且检索效果较好,故本文采用卷积神经网络模型在训练集上学习,构建图像特征和哈希提取模型,将模型输出的结果作为图像特征,将量化后的结果作为哈希码。

1.2.1 网络结构

本文设计的卷积神经网络模型结构如图1所示。该网络是由2个卷积池化层和2个完全连接层组成。卷积层的核大小为3×3,步长为1,pad参数设置为1(两个卷积层卷积核个数分别为96,64)。池化层的核大小为3×3,步长为2。第1个全连接层包含384个节点,第2个有12个节点,这里的12也表示哈希码的长度。所有卷积层的激活函数都为ReLU[8],所有池化层的输出都采用LRN[1]进行向量归一化。同时,为了防止训练的时候过拟合,在两个全连接层之间添加了Dropout正则化[9]。

1.2.2 损失函数和优化目标

为了得到哈希值,需要对网络的输出进行约束,引导每张图像的输出接近离散值。因此,本文采用文献[2]中的损失函数:

λ(|||ai,1|-1||1+|||ai,2|-1||1)}

(1)

其中:W是权值矩阵;N为每次迭代处理的图像对;li表示第i对图像是否相似(0代表相似,1代表不相似);ai,j是第i对图像中第j个图像的输出结果(j=1,2);λ是控制正则化的权重参数;θ为阈值;1为全1向量。

该损失函数具有可分性。第1项因子保证相似图像对映射成相同的二进制;第2项因子保证相似图像对映射成不同的二进制;第3项因子能够维持损失函数的梯度值为-1或者+1,可以保证训练的稳定性,最终使得学习到的特征具有相似保留性。

训练卷积神经网络的目的是使损失函数值最小化,本文采用批量梯度下降法作为反向传播算法。因此,需要计算式(1)的梯度值,但是绝对值和最大值运算不可微,所以采用次梯度方法。其3项因子的次梯度求解为:

(2)

所有层的权值都采用Xavier初始化,在训练时,设置批量大小为128,遗忘因子为一个实数0.99,权衰量为0.000 4,学习率固定为0.001,总共迭代10 000次。

1.2.3 哈希码的生成

深度哈希方法在生成哈希码时,将图像输送到训练好的网络,并将网络输出进行量化,得到12位二进制哈希码{1,0}k,其中量化函数为:

(3)

1.3 图像特征与哈希码存储

为了有效存储数据,用到了一个分布式的NoSQL数据库HBase。HBase表是一个分布式多维表,表中的数据通过一个行关键字、列族和列名以及时间戳进行索引和查询定位。训练好模型后,给定一张图像作为输入,通过前向传输提取fc2层的特征值作为图像特征,量化得到二进制哈希码。最后,数据分别存放在HBase的图像特征表和哈希表中。

1) 图像特征表。图像名称作为行关键字,特征作为列值,其存储格式如下:

(lmageId,Float1Float2…Float12)

ImageId代表本地文件系统中图像的名称。后面紧跟着12个浮点数,表示12维特征向量。

2)哈希表。哈希码作为行关键字,图像名称作为列值,即将哈希码相同的图像放在同一个字段里,其存储格式和图像特征表类似,存储格式如下:

(Hashcode,lmageId1lmageId2…lmageIdk)

哈希码表示一个哈希值,k表示有k个图像的哈希值是一样的图像。

1.4 图像并行检索

本文设计的批量图像并行检索方法是基于Hadoop平台实现。Hadoop由分布式文件系统(HDFS)、MapReduce等组成。HDFS是Hadoop使用的一个分布式的文件系统,MapReduce是一种简单但功能强大的并行计算编程模型,能分布式处理大型数据集。MapReduce的操作包含2个步骤:Map阶段处理输入的数据,输出〈key,value〉键值对;在Reduce阶段,接收key和相关的value集合形成一个较小的集合,然后进行相关处理,形成最终的结果。本文在Hadoop上设计的批量图像并行检索过程如图2所示。在检索前,将批量待检索图像先转换为特征文件上传至HDFS中,系统会根据文件大小自动生成多个分块。在Mapper阶段,每个Mapper对应一个分块,并分布在不同节点上同时执行。在每个Mapper进行检索任务中,首先根据待检索图像的哈希码在HBase的哈希表中进行哈希匹配,即汉明距离小于2,得到相似图像候选集;然后计算待检索图像与候选集中每个图像特征向量的相似度大小,即计算两个特征向量的欧式距离。距离越大,表示两特征向量相似度越低;同理,距离越小,相似度越高。最后,以待检索图像名称作为key值,相似图像名称加相似度作为value值输出。

在Reducer阶段,输入的是待检索图像名称,以及与名称相同的所有value值集合,对集合中每个相似图像,按照相似度从大到小对检索的结果进行排序,以降序输出检索结果。

图2 批量图像并行检索过程

2 实验与结果

2.1 实验环境

在服务器中虚拟了4个用于构建Hadoop集群Centos6.3系统和一个用于caffe[10]的Ubuntu14.04系统。集群包括1个master节点(即NameNode)和3个slave节点(即DataNode),其中Hbase部署在master和2个slave节点上(因为zookeeper个数最好设置为奇数个)。4台机器配置如表1所示,实验中参数设置为:θ=24,λ=0.01。

表1 Hadoop集群中各节点的配置

2.2 数据集与评估评价指标

采用CIFAR-10[11]数据集作为离线训练的样本集,其中该数据集包含60 000张32×32彩色图片,人工分为相互独立的10个类(airplane,automobile,bird,cat,deer,dog,frog,horse,ship,truck),每个类包含6 000张图片,其中50 000张图像用于训练模型,10 000张图像用于评估模型。该图像可以直接输入模型,因此不需要做任何预处理。

在实验中,具有相同的分类标签则认为两幅图像相似。为了验证检索效果,本文采用平均精度均值(the mean average precision,mAP)技术指标评价检索结果。

2.3 检索性能分析

检索效率测试是在不同slave节点数的情况下,做批量图像特征匹配实验,并记录其消耗的时间,如图3所示。从图3中可知:随着检索图像数量的增加,当检索图像数量大于3 000时,并行检索的优势逐渐显现出来。结果表明:Hadoop能自适应海量图像检索,它显著提高了检索效率。

为了验证系统稳定性,本文将HBase中的图像通过复制分别扩充到10、20、30、40万张。采用测试集中图像作为检索图像,计算不同集群在不同规模数据库中的检索时间,如图4所示。从图4中可知:随着数据库的扩展,3节点集群的检索时间变化较缓,说明系统在处理大规数据库具有很好的稳定性。

图3 不同节点之间检索效率比较

为了评估CNN模型提取哈希特征的优势,将本文方法与文献[4]采用的颜色直方图特征提取方法和文献[7]采用的SIFT算法结合词袋模型方法进行对比实验。测试集中每张图像,以最相似图像作为检索结果来计算mAP,实验结果如表2所示。本文方法的精确度显著高于其它方法,高达60.28%,具有非常明显的优势。

表2 3种不同方法的mAP

3 结束语

本文提出用一个简单且高效的深度学习框架来训练CNN模型,让其学习图像特征及哈希码,然后用到分布式计算框架Hadoop进行批量图像并行二级检索。实验证实:该方法能更好地用于基于内容的海量图像检索中。且随着检索图像数量的增多,当达到10 000张时,三节点并行检索方法相对单节点,检索速度提高了51.46%。本文方法的平均精确度相对文献[4]的方法提高了34.55%,相对文献[7]的方法提高了12.63%。

由于深度学习具有较强的非线性表示能力,提取出来的图像特征比人工设计的特征更符合语义层的表示,因此更能表示图像的特性。并且将分布式计算框架Hadoop用于批量图像并行检索,不仅能解决海量图像数据的存储问题,还能显著提高检索效率。

本文的方法仍存在可改进之处,由于在Map计算过程中会产生中间数据,即会产生I/O操作,这些会影响图像检索系统的实时性,在接下来的研究中,将采用另一种新的分布式实时流计算框架Spark Streaming[12]来加快检索速度。

[1] KRIZHEVSKY A,SUTSKEVER I,HINTON G E.ImageNet Classification with Deep Convolutional Neural Networks[J].Advances in Neural Information Processing Systems,2012,25(2):1106-1114.

[2] LIU H M,WANG R P,SHAN S G,et al.Deep Supervised Hashing for Fast Image Retrieval[C]//The IEEE Conference on Computer Vision and Pattern Recognition.Las Vegas:IEEE,2016:2064-2072.

[3] 朱为盛,王鹏.基于Hadoop云计算平台的大规模图像检索方案[J].计算机应用,2014,34(3):695-699.

[4] SHI L,WU B,WANG B,et al.Map/Reduce in CBIR application[C]//International Conference on Computer Science and Network Technology.Harbin:IEEE,2011:2465-2468.

[5] RAJU U S N,GEORGE S,PRANEETH V S,et al.Content Based Image Retrieval on Hadoop Framework[C]//The IEEE International Congress on Big Data.New York:IEEE,2015:661-664.

[6] PREMCHAISWADI W,TUNGKATSATHAN A,INTARASEMA S,et al.Improving performance of content-based image retrieval schemes using Hadoop MapReduce[C]//2013 International Conference on High PERFORMANCE Computing and Simulation.Helsinki:HPCS,2013:615-620.

[7] 张学浪,耿楠.基于云计算的图像并行检索关键技术研究[J].计算机应用与软件,2013,30(5):220-222.

[8] NAIR V,HINTON G E.Rectified linear units improve restricted boltzmann machines[C]//International Conference on International Conference on Machine Learning.UCA:[s.n.],2010:807-814.

[9] SRIVASTAVA N,HINTON G,KRIZHEVSKY A,et al.Dropout:a simple way to prevent neural networks from overfitting[J].Journal of Machine Learning Research,2014,15(1):1929-1958.

[10] JIA Y,SHELHAMER E,DONAHUE J,et al.Caffe:Convolutional Architecture for Fast Feature Embedding[C]//Proceedings of the 22nd ACM international conference on Multimedia.New York:ACM,2014:675-678.

[11] KRIZHEVSKY A.Learning Multiple Layers of Features from Tiny Images[C]//Advances in Neural Information Processing Systems 25.Nevada,USA:NIPS,2012:1106-1114.

[12] ZAHARIA M,DAS T,LI H,et al.Discretized streams:fault-tolerant streaming computation at scale[C]//Twenty-Fourth ACM Symposium on Operating Systems Principles.[s.l.]:IEEE,2013:423-438.

猜你喜欢
批量哈希检索
批量提交在配置分发中的应用
哈希值处理 功能全面更易用
文件哈希值处理一条龙
基于VBA井斜数据批量校正方法
专利检索中“语义”的表现
基于OpenCV与均值哈希算法的人脸相似识别系统
巧用哈希数值传递文件
在数控车床上批量钻铰孔类工件的实践
考虑价差和再制造率的制造/再制造混合系统生产批量研究
国际标准检索