1、密级:保密期限: 硕士研究生学位论文 题目:基于深度神经网络的图像检索系统设计与实现 学号:2013140364 姓名: 专业:计算机技术 导师:王小捷 学院:计算机学院 2015年11月11日 独创性(或创新性)声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示
2、了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:日期: 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论文。(保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在年解密后适用本授权书。非保密论文注释:本学位论文不属于保密范围,适用本授权书。 本人签名:日期:
3、 导师签名:日期: 基于深度神经网络的图像检索系统设计与实现 摘要 关键字 CONTENT BASED IMAGE RETRIVAL ABSTRACT KEY WORD 目 录 摘要 5 ABSTRACT 6 第一章 绪论 3 1.1课题背景及意义 3 1.2相关领域研究现状 4 1.2.1图像检索模型现状 4 1.2.2深度神经网络现状 5 1.3论文研究内容及成果 5 1.4 论文结构安排 7 第二章 基础知识及技术 8 2.1 引言 8 2.2 卷积神经网络(CNN) 8 2.2.1 历史 8 2.
4、2.2 结构 8 2.2.3 特性 8 2.2.4 训练 8 2.3 稀疏自编码(Autoencoder ) 8 2.3.1 历史 8 2.3.2 Autoencoder 结构 8 2.3.3 Sparse Autoencoder 结构 8 2.3.4 特性 8 2.3.5 训练 8 2.4相关工程技术 8 2.4.1 Caffe机器学习工具 8 2.4.2 flann近邻检索库 9 2.4.3 Cassandra & LevelDB数据库 9 2.4.4 Thrift轻量级RPC接口 10 2.4.5 Laravel 10 2.4.6 Bootstrap 11
5、 2.5 本章小结 11 第三章 图像检索算法研究 11 3.1基于CNN特征的图像检索Hash模型 11 3.1.1 图像检索定义 11 3.1.2 CNN特征抽取 12 3.1.3 Hash索引建立 12 3.1.4图像检索ReRank过程 13 3.1.5 Hash模型图像检索分析小节 13 3.2基于LSH的图像检索索引算法研究 14 3.2.1背景技术 14 3.2.2LSH实现及训练 15 3.3基于Spectical Hash的图像检索索引算法研究 15 3.3.1背景技术 15 3.3.2Spectral Hashing实现及训练 17 3.4基于深
6、度神经网络Hash的图像检索索引算法研究 19 3.4.1背景技术 19 3.4.2Autoencoder Hash实现 20 3.4.3Autoencoder Hash训练 21 3.5实验过程及结果分析 22 3.5.1实验准备 22 3.5.2实验过程 24 3.5.3实验结果及分析 25 3.6本章小结 26 第四章 图像检索系统设计与实现 26 4.1系统介绍 26 4.1.1工作流程 26 4.1.2体系结构 27 4.2核心模块实现 28 4.3.1索引构建模块 29 4.3.2图像检索模块 29 4.3系统架构实现 30 4.3.1表现层 30
7、 4.3.2逻辑层 30 4.3.3应用层 31 4.3.4数据层 31 4.3.5系统架构小结 32 4.4系统实例展示 32 4.5系统评估 32 4.5.1系统评估方案 32 4.5.2系统评估结果及分析 32 4.6本章小结 32 总结与展望 33 5.1本文总结 33 5.2未来工作展望 33 参考文献 33 第一章 绪论 1.1课题背景及意义 近些年来,随着移动互联网飞速发展,人们的交互方式也发生了巨大的变化,从传统的“手敲眼看”,发展到现在的“说、拍”,信息的生成越来越便利,互联网上的图片信息、声音信息等多媒体信息出现爆炸式增长,也给获
8、取想要的信息增加了难度,从海量的多媒体信息中快速提取有价值的知识越来越具有广阔的潜在价值和应用前景。 当前,文本检索文本已经成熟,而图像检索系统还未完全成熟,还有很大成长空间。图像检索是根据图像信息,在图像数据集合中找到相似的图像子集,图像检索有两大类,一类是基于关键字或描述来搜索图片,这种方式需要人工标注大量的数据,工作量太大,数据难收集,此外由于图片本身表达的信息量远远大于文字,表达信息丰富,不同的人对图片的描述不尽相同,具有主观性和不准确性等弊端,基于文本的检索越来越不能满足人们的需求。另一种方式是20世纪90年代兴起的,基于内容的图像检索(content-based image re
9、trieval , CBIR),也就是常说的“图找图”方式,人们不用去描述,可以直接表达完全所需搜索的图片,确定性更高,更能满足当今移动互联网的发展趋势。 CBIR系统是移动互联网新入口,对互联网公司来说具有重大的战略意义,实际上各大公司很早就开始布局,并且已经有很多优秀的系统,如谷歌的Google Goggles、Tinyeye、百度识图等。CBIR系统有两大关键部分特征提取和索引建立,分别影响着检索系统的准确度和时间效率。当前主要研究方法有Bag of Visual Words(BOV)模型和 Hash模型两种。BOV应用很广,各种各样的改进版本层出不穷。Hash模型近些年来也获得了极
10、大发展,主要有Location Sensitive Hash (LSH)、Spectical Hash、神经网络Hash三类。现在来说基于BOV的方法为主流,但是基于Hash体系的算法拥有线性响应速度,具有良好的前景。 视觉总是侧重于两个焦点,背景和目标主体,而一些次要信息就被忽略了,然而目标主体的出现往往伴随光照、尺度、旋转等变化,所以查找时候需要提取各种特征,而不是直接的图片像素查找,需要基于图片抽象属性(场景语义、行为语义和情感语义)等更深层次的主体特征进行检索,这些问题均是图像检索关键问题,然而现有模型(尤其Hash模型)在这方面做的不足。 互联网上能够爬取到的图片大多是无标注图片
11、数据,即没有文字标注的信息,仅能用于无监督训练,而可用于有监督训练的有标图片数据为很少,并且人工标注数据成本大,一般任务很难承受其成本。在使用上,有标数据质量很高、数量少,可以用来进行有监督训练;而无标数据质量不高,数量多,仅能用于无监督训练。这两方面的原因使得综合利用有标图片和无标图片来提高图片检索系统效果变成一件非常有意义的事情。 为了实现两个目标,需要设计综合利用有标图片和无标图片、能够进行特征选择的深度语义图像检索系统。现在深度神经网络已经得到了极大发展,发展出多种类型:深度循环神经网络、卷积神经网络、Deep Autoencoder网络等,有监督方法和无监督方法均有,对图片分类、标
12、注、分割等任务的发展都起到了跨越式的促进作用,它不仅能用于提取图片深层特征,还能提取图片的深层语义表示等。图像检索的两大核心问题是特征提取、索引建立,深度神经网络非常适合综合利用有标、无标数据完成这两类任务。 1.2相关领域研究现状 本文的主要工作与图像检索系统和深度神经网络相关,这部分总结下相关工作研究现状。 1.2.1图像检索模型现状 图像检索模型分为两条发展线路Bag of Visual Words(BOV)检索模型和基于Hash的检索模型。 Bag of Visual Words(BOV)模型,它首先对海量图片提取特征描述符,然后通过K-means方法选出基描述符,做成词典,
13、再对每个图片用KNN方法转换成描述符文档,最后利用文本检索积累下来的技术进行搜索,这种方法成熟有效,并且出现各种改进方法,例如嵌入hamming码减少经验误差,增进单个描述符的表现能力。BOV方法发展很成熟,但是具有很多局限,BOV是一种无监督方法,没有利用有标数据,自身做到侧重难度较大,若使用卷积神经网络能利用有标图像数据提取有侧重的特征,但BOV方法利用的是局部特征进行检索,而卷积神经网络相对来说是一种全局特征,很难用于BOV模型的拓展,所以本文主要研究基于Hash的图像检索模型,以求达到更好的效果。 Hash模型因为时空复杂度低,已经发展成为新的热点,它主要有三种方法Location
14、Sensitive Hash (LSH)、Spectical Hash、神经网络Hash,其中LSH、Spectical Hash两种方案可以说均是Hash体系最具代表性的方方案。 文献[1]中,LSH方法通过设计几组位置敏感函数,通过函数的设计能够保证一定概率内,映射前后相似的点还相似。LSH的研究是最多的,改进也最多,但是仍然很难突破其极限,模型本身限制很多。LSH是人工定义hash,优点是简单有效,缺点是鲁棒性差,对尺度、旋转、视角变化的敏感,仅能用于高度相似搜索,尽管如此对它的改进和研究是所有三种方法中最多的,很多应用中,将其与用于提升BOV方案效果,但已经成了一种辅助手段。 Sp
15、ectical Hash近期来仅有一篇论文[2]提到,是比较新的算法,它另辟蹊径地对hash过程进行建模,对一个好的Hash方程进行符号化表示,如Hash码中命中1和0的概率率50%、码长度要尽量短、原空间相似的点在目的空间仍然相似等等,得到约束解方程,求解过程中,需对数据分布进行估计,才能接触积分方程,得到最优映射方程,即为最终Hash函数组。Spectical Hash方法的难点在于对于数据分布的估计以及对积分约束方程的求解,求解时,可以用均匀分布或者正态分布估计样本,大大简化了求解难度。 神经网络Hash采用的是Autoencoder Hash,使用深度Autoencoder 计算Ha
16、sh,其输入为原始图片像素值,通过大规模数据训练,求解到Autoencoder 网络训最符合数据分布的模型。这种方式人工参与度少,自学习效果好,并且鲁棒性好,具有很大的潜力和优势,但是仍具有无监督方法本身的不确定性,对检索没有侧重。 1.2.2深度神经网络现状 2012年Krizhevsky等人利用CNN在ImageNet数据库上取得突破性成果,短短四年时间里,CNN就已经在分类、检测、分割等各大领域取得喜人的突破。它的权值共享特性使其相比于传统的神经网络更接近生物的神经网络,不仅降低了网络的复杂度,还减少了参数的数量。CNN特别适合处理多维信息,尤其是图片信息。CNN工作时可以直接以原始
17、数据作为输入,不需要传统识别算法中复制的人工特征提取过程。而且CNN是建立在无标数据数据基础上的有监督分类分类器,整个分类网络的倒数第二层可以用来表示图像信息,CNN的网络结构使CNN特征得其具有一定的平移、倾斜、尺度不变性。 Autoencoder 是一种无监督网络,通过降低网络的自恢复误差,完成降纬过程。2006年Hinton发表文章[3],将Autoencoder用于高纬度数据降纬,引起很大反响,Autoencoder很快被人们熟知。2009年Hinton等人,提出Autoencoder Hash,将其用于文本情感语义Hash计算。2011年Krizhevsky 和Hinton发表文章
18、[4]将AutoencoderHash用于图片检索,直接用用图片做输入,训练Autoencoder Hash,在小图片数据集上进行检索评测,取得了不错的效果。 1.3论文研究内容及成果 本文主要完成一个实用的基于深度神经网络的图像检索系统,实现中需研究现有图像Hash方法并对比实验,并设计综合利用有标图片和无标图片、能够进行特征选择的深度语义图像检索方案。 (1)实现基于深度神经网络的图像检索系统 一个完整的图像检索系统包括图片爬取、存储、建立索引、检索系统等几部分组成,其中最为关键的是索引和检索两部分,本文分别对两部分进行研究、实现。一个好的检索系统既需要保证检索的质量,又需要在时间
19、上可用,这对索引算法提出了很高的要求,现在来说基于BOV模型的检索方法为主流,但是基于Hash体系的算法拥有更好线性响应速度,也得到了极大发展。本文在CNN特征基础上对Hash体系方法进行对比研究,设计符合要求的图像检索系统。 本文的最终目标是实现一个实用的图像检索网站,是一个工程性的任务,除了对Hash索引实验对比选择,还需要实现整个系统,能够为用户提供友好的检索服务,保证检索的质量同时,又需要在时间上可用。此外,工程实现方面又包括两方面:一方面,需要设计出符合要求且拓展性强的框架,采用优秀的网络框架实现,尤其是采用分布式及存储相关技术构建整个检索系统;另一方面,最大的任务在于将神经网络实
20、现代码与网络检索服务在工程上结合,完成基于深度神经网络的图像检索系统后台服务,由于主流神经网络工具未考虑上线问题,本文修改相关代码完成该任务。用到的Caffe工具有很好的速度、稳定性和拓展性,所以本文对Caffe框架进行学习和修改,以完成检索任务。 (2)Hash模型索引相关算法 在基于内容的图像检索系统中,需要在图像集中查找与某个给定图像“相似”的图像集合,这样的查找过程叫“相似性检索”。通常,是从图像中提取“特征”,然后在图像的“特征”上定义相似性。大多数情况下,特征用多维空间的点(或矢量)来描述,空间的维数可能低至几维,也可能大至数千维。空间中特征向量之间的接近程度反映了对象内容的相
21、似程度,因此基于内容的检索就简化为空间中点的快速搜索问题。在Hash体系中,它要做的任务就是找到一种Hash方程,完成高维特征到低维度Hash的映射,并且原特征空间中接近的点,在Hash后目的空间中仍然接近,可以说,整个Hash体系都延续这种思想发展而来。 Hash模型主要有Location Sensitive Hash (LSH)、Spectical Hash、神经网络Hash三类,其中LSH、Spectical Hash两种方案可以说均是Hash体系具代表性的方方案,深度神经网络计算Hash方法为新方法,对这三种方法进行实现、对比、选择,进而用来实现检索系统。LSH模型本身限制很多,对尺
22、度、旋转、视角变化的敏感,仅能用于高度相似搜索,很多应用中,将其与用于提升BOV方案效果,但已经成了一种辅助手段。Spectical Hash方法的难点在于对于数据分布的估计以及对积分约束方程的求解,虽然可以用均匀分布或者正态分布估计样本,简化了求解难度,但仍不是真实的分布。神经网络Hash方法可以说通过大规模训练,使用很少的参数很好拟合函数分布,在提取图片深层特征语义和数据维度降低上均有很好的表现,这些分别对应图像检索的两大核心问题:特征提取、索引建立。本文对深度神经网络进行研究,主要研究检索系统相关的图片语义特征以及特征降维任务,完成检索效果更强的图像检索系统。 (3)综合利用有标、无标
23、数据进行检索系统设计 本文对综合利用有标图片和无标图片来实现图像检索系统进行设计,利用有标数据训练CNN神经网络,通过CNN神经网络提取出图片的深层语义特征,然后利用无标特征数据,训练Autoencoder Hash。建立索引时对离线数据计算CNN特征,然后Hash降纬到32维二进制Hash索引,形成倒排;检索时同样网络计算特征、Hash,对相同Hash的图片进行Rerank。这种方案与传统的半监督算法不同,他不是针对单一任务的有无监督,而是对整个任务进行切分,选择适合的方案,分别用于图片特征提取和索引建立。最终本课题需要实现综合利用有标、无标数据的图像检索系统。 CNN特征是一种利用有标
24、数据获得的全局特征,更适合注重整体的语义检索,而不是高度相似的检索,符合设计需求。其次,建立在有监督分类数据上完成分类任务的CNN特征,保留了分类相关的信息,这种有监督特征自动学习并保留图像检索中所需侧重点的关键信息,使用CNN特征作为图像表示,则可对系统进行倾向性选择,使检索系统检索效果更容易改善,例如,检索系统计算相似性时,若要更多关注长袖短袖,则可以增大分类部分长袖短袖的比例。 Autoencoder 是一种无监督网络,网络中神经元的个数逐层减小,到达最小个数的中间层后,又对称增加,通过网络输出预测输入的方式,若能够自恢复则说明中间层保留了原始输入的信息。通过这种方式,Autoenco
25、de实现了降低维度的目的。Autoencoder Hash是的数据相关Hash,对Autoencoder 网络中间增加一个二值化的过程,整体的训练目标及训练过程不变,这就形成了一个等效的语义Hash模型,使用Autoencoder Hash拟合数据分布的,表现更优秀。 1.4 论文结构安排 本文各章节安排如下: 第一章为绪论,该章首先描述了课题的选题背景及选题意义,然后对本文研究的问题的研究现状分别进行了分析,展示了本文的研究内容、成果,最后描述论文的结构安排。 第二章为基础知识及技术,该章首先介绍卷积神经网络及SparseAutoencoder网络,为后续实验提供基础,然后介绍工程实
26、现中需要用到的技术 第三章为图像检索算法研究,该章首先对检索系统进行定义,形式化描述检索过程,对基于Hash的方法进行形式化定义。其次基于综合利用有标、无标数据的需求,设计出基于CNN特征的Hash检索系统实验方法。最后针对CNN抽取出来的图像数据集,实现并修改LSH、Spectical Hash、Autoencoder Hash三种Hash索引算法,在该数据集上进行实验、并对分析。 第四章为图像检索系统设计与实现,该章首先利用第三章的结论,对检索系统整体流程进行设计。其次工程实现上,介绍图像检索的各部分实现中用到的技术框架。最后对检索系统的性能、效果进行横向对比、分析。 第五章为总结与
27、展望,该章对全篇论文进行了总结,分析当前系统设计实现上的优劣,然后对未来可改进的方向进行了深度地探讨。 [1] 吴芳. 面向购物图像搜索的哈希索引结构算法研究[D]. 西南交通大学, 2013. [2] 李璟洁. 基于参数统计量的图片检索系统[D]. 天津大学, 2012. [3] 唐俊华, 阎保平. 基于LSH索引的快速图像检索[J]. 计算机工程与应用, 2002, (24):20-21. [4] 陈永权. 基于Hadoop的图像检索算法研究与实现[D]. 华南理工大学, 2013. [5] Weiss, Yair, Antonio Torralba, and
28、 Rob Fergus. Spectral hashing. Advances in neural information processing systems. 2009. [6] Salakhutdinov R, Hinton G E. Semantic hashing[J]. International journal of approximate reasoning, 2009. [7]A. Krizhevsky and G.E. Hinton. Using very deep autoencoders for content-based image retrieval. In E
29、SANN, 2011. [8] Alex Krizhevsky,Ilya Sutskever,Geoffrey E. Hinton - Advances in Neural Information Processing Systems,2012 [9] Osendorfer, Christian, et al. Unsupervised Feature Learning for low-level Local Image Descriptors. arXiv preprint arXiv:1301.2840 (2013). [10] Krizhevsky A, Sutskever I,
30、Hinton G E. Imagenet classification with deep convolutional neural networks: Advances in neural information processing systems, 2012[C]. [Semantic hashingR Salakhutdinov,G Hinton《International Journal of Approximate Reasoning》, 2009, 50(7):969–978] 【 G. E. Hinton and R. Salakhutdinov. Reducing the
31、 dimensionality of data with neural networks. Science, 313(5786):504507, July 2006.】 第二章 基础知识及技术 2.1 引言 2.2 卷积神经网络(CNN) 2.2.1 历史 2.2.2 结构 2.2.3 特性 2.2.4 训练 2.3 稀疏自编码(Autoencoder ) 2.3.1 历史 2.3.2 Autoencoder 结构 2.3.3 Sparse Autoencoder 结构 2.3.4 特性 2.3.5训练 2.4相关工程技术 随着计算机技术的发展,
32、尤其是互联网技术和相关企业的兴起,开源软件在互联网开发中所占比重越来越大,是大势所趋。本系统开发过程中同样用到很多开源软件,本小节对所用到的开源软件进行介绍。 2.4.1 Caffe机器学习工具 Caffe(Convolutional Architecture for Fast Feature Embedding)是UC Berkeley的贾扬清博士完成了一个清晰而高效的深度学习框架。Caffe是纯粹的C++/CUDA架构,支持命令行、Python和Matlab接口,可以在CPU和GPU间直接切换。Caffe无论在学术界还是在工业界都特别流行,是当前主要的深度学习框架之一,它有着如下五个优
33、点: l 上手快。模型与相应优化都是以文本形式而非代码形式给出。Caffe给出了模型的定义、最优化设置以及预训练的权重,方便立即上手。 l 速度快。能够运行最棒的模型与海量的数据。 Caffe与cuDNN结合使用,测试AlexNet模型,在K40上处理每张图片只需要1.17ms。 l 稳定性。Caffe可以说是各个框架中唯一能够稳定线上部署深度学习的框架。 l 模块化。方便扩展到新的任务和设置上。 可以使用Caffe提供的各层类型来定义自己的模型。 l 开放性。公开的代码和参考模型用于再现。 l 社区好。可以通过BSD-2参与开发与讨论。 Caffe由于速度和稳定的原因可以说非
34、常适合本系统开发、实验,作为线上服务的不二选择。 2.4.2 flann近邻检索库 Fast library for approximate nearest neighbors (FLANN)库是Opencv的一个子项目,用于高维数据的快速最近邻查询算法,在计算机视觉和机器学习中,对于一个高维特征,找到训练数据中的最近邻计算代价是昂贵的。目前来说,FLANN可以较好地解决这些问题,本系统用其解决在Hamming空间中查找二进制近邻hash码问题,提高查找稳定性及速度。 2.4.3 Cassandra& LevelDB数据库 Apache Cassandra是一套开源分布式Key-Va
35、lue存储系统。它最初由Facebook开发,用于储存特别大的数据。Facebook目前在使用此系统。它拥有以下特点: l Key-Value:能够更具key存储文档。 l 模式灵活:使用Cassandra,像文档存储,你不必提前解决记录中的字段。你可以在系统运行时随意的添加或移除字段。 l 可扩展性:对于一个Cassandra群集来说,扩展性能是比较简单的事情,只管在群集里面添加节点就可以了。 l 分布式:由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。 Leve
36、ldb是一个google实现的非常高效的Key-Value数据库,目前的版本能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。特别是LSM算法。LevelDB 是单进程的服务,性能非常之高,在一台4个Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。 本系统分别采用了这两种Key-Value数据库,可以任意切换,实现分布式环境和单机环境不同的检索系统。 2.4.4 Thrift轻量级RPC接口 Apache Thrift 是 Facebook 实现的一种高效的、支持多种编程语言的远程过程调用框架。Thri
37、ft 用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引 擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务。Thrift 允许你定义一个简单的定义文件中的数据类型和服务接口,以作为输入文件,编译器生成代码用来方便地生成RPC客户端和服务器通信的无缝跨编程语言,用法非常简单。 Thrift 应用很广,著名的 Key-Value 存储服务器 Cassandra
38、就是使用 Thrift 作为其客户端通信。可以说Thrift 是一个简单、快速、高效的远程过程框架,本系统使用不同读研开发,C++、Python、PHP均有使用,使用Thrift可以将各个模块串联起来。 2.4.5 Laravel Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以给开发者以最大的灵活性,既能创建非常小的网站也能构建大型的企业应用,可以帮开发者构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。它具有如下特点: l 高质量文档:Laravel 有一个非常棒的的社区支持。Laravel代码本身的表现力和良好的文档使
39、PHP程序编写令人愉快。 l 扩展容易:Laravel 使用composer构建,增加新拓展,仅需在配置中增加进去即可。Laravel的扩展包由世界各地的开发者贡献,而且还在不断增加中。 l 自动加载类:编写过PHP都会发现,PHP类加载非常难维护,Laravel简化了类的加载工作,以后就可以不用去维护自动加载配置表和非必须的组件加载工作了。当想加载任何库或模型时,Laravel会自动帮开发者加载需要的文件。 单就框架本身而言,Laravel是在所有当前全栈式PHP框架中最好的。Laravel几乎可以搞定任何web应用,和js的一些前端框架兼容得非常完美。它具有良好的扩展性和先进的架构,
40、是真正意义上的现代框架。本系统采用Laravel实现逻辑层及表现层。 2.4.6 Bootstrap Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目,它简洁灵活,让前端开发更快速、简单,使得 Web 开发更加快捷。所有开发者都能快速上手、所有设备都可以适配、所有项目都适用你的网站和应用能在 Bootstrap 的帮助下通过同一份代码快速、有效适配手机、平板、PC 设备,这一切都是 CSS 媒体查询的功劳。Bootstrap 提供了全面、美观的文档。能找到关于 HTML 元素、HTML 和 CSS 组件、jQuery 插件
41、方面的所有详细文档。基于这些特性,本文使用Bootstrap编写前段页面。 2.5本章小结 第三章 图像检索算法研究 3.1基于CNN特征的图像检索Hash模型 图片检索系统的图片来来源于互联网,而互联网上能够爬取到的图片大多是无标注图片,即没有文字标注的信息,仅能用于无监督训练,学习效果不佳,可用于有监督训练的高质量有标数据很少,如果采用人工标注数据则成本大,一般来说很难承受其成本。在使用效果上,有标数据可以用来有监督训练,质量很高,而无标数据仅能用于无监督训练,质量不高,检索系统可控性不强。这两方面的原因使得综合利用有标图片和无标图片来提高图像检索系统效果变成一件非常有
42、意义的事情。 3.1.1 图像检索定义 [基于LSH索引的快速图像检索_唐俊华] 基于图像内容的图像检索(Content-based image retrieval,CBIR)符合基本的检索定义,在图像数据库中搜索并查找出与给定图像的相似的图片,这种查找过程叫做“图像检索”。一般来说,这种相似最理想的是人眼看到的相似,可是这很难通过计算度量,所以就需要一些模拟“人眼观察”的可计算特征来度量两张图片的相似性,例如:SIFT、HOG等。这些特征组合成一个N维向量,即用N维空间中的一个点代表图片,空间特征向量(空间中的点)的接近程度建模图像内容的相似程度,于是基于内容的图像检索就简化为空间中点
43、的快速搜索问题。 基于内容的图像检索系统有一个简单的精确求解方案,即将整个图像数据库中的数据完整扫面一遍,逐个比对相似度,并排序给出相似度最大的。然而它的检索速度与数据库规模成正比,随着数据规模的扩大,检索性能直线下降,实用性差,用户等待时间长。这样条件下,如果能够降低对检索结果精确的要求,近似求解,但是检索速度大幅提升,尤其是能够设计出线性时间检索的系统,更具有诱惑力。目前,基于内容的图像检索系统更趋近于这种近似检索解决方案。 近似检索的任务定义如下:映射f将图像集O中的每张图像映射到N维特征向量集合X,即,对于一点集,若对于其中任意一点若有,即P中数据点x与查询点q之间的距离小于r的概
44、率大于𝑝,则𝑃集合为q概率p下的近似r近邻。其中𝐷(𝑞,𝑥)代表点q与x在空间上的距离。 从公式中可以得出,在r一定的条件下,概率p值越大,效果越好。可以看出p值等价于检索的准确率,p值越大则准确率越高,检索效果越好。 3.1.2 CNN特征抽取CNN特征抽取中使用的CNN特征抽取器为实验室他人工作任务,本系统直接使用,不是本文重点 卷积神经网络(CNN)在有标数据基础上构建有监督分类分类器,使用神经网络的倒数第二层表示图像信息,直观为模拟“人眼观察”的可计算特征向量,该特征保留了用于侧重分类的信息
45、使用CNN这种有监督特征,能够自动学习并保留图像检索中所需侧重点的关键信息。通过对数据进行有侧重标注,进行有监督训练,即可得到区分性强的特征。 图像检索系统中特征具有至关重要的地位,它的好坏直接关系到系统的性能。本文使用CNN特征能够实现利用有标数据提升检索系统性能的目的,实现中,本文中使用的CNN特征抽取器为实验室现有用于服装分类的特征,该特征侧重服装分类,对服装的特征的进行深层抽象,十分适合用于服装领域的图像检索系统。 由CNN特征抽取器,抽取出来的图像特征为4096维向量,每个维度上的取值均为非负实数。这样图像的相似可以用4096维特征的欧氏距离来度量,欧氏距离越小则越相似。这40
46、96特征为整个实验的基础,为下文提供标准的可度量数据。 3.1.3 Hash索引建立 近似检索在损失一些精度条件下,对检索过程进行加速,Hash索引的的建立是一个比较有效的措施。Hash索引类似于文件检索中的倒排索引,计算Hash索引的目的即为检索集合分块,减小检索过程中的候选集,从而加快检索速度,若相似的图片具有相同的Hash值,则检索时Hash值相同的集合即为候选集,这样检索图片时候只需对与目标图片Hash相同的数据集合进行后续距离计算操作,这时所需要做的是提高这种缩减后的候选集与原先全部数据相比,效果不要降低太多,这就要求在原空间中相似的图像,具有相同的Hash值。Hash索引建立时
47、Hash实际上是一种函数映射,它将特征点由4096维实数空间特征映射成32维度二进制hamming空间中的特征。在原空间中的相近的点,在hamming空间中具有相同的Hash值为终极目标。 3.1.4图像检索ReRank过程 基于CNN特征的图像检索Hash模型,首先通过CNN抽取4096特征,然后计算倒排索引Hash,其实,这并不是一个完善的检索过程,还需加入ReRank环节才能完整。因为图像近似检索系统,计算出Hash之后,只能算找出了较小的候选集,显然候选集直接呈现给用户是不合适的,需要按照相似度给出一个排序,这就是ReRank过程。计算hash值选小的候选集外加Rerank排序,
48、组合成完整的近似检索系统,实现对检索过程加速。 就图像任务而言,Rerank采取与CNN特征相同的度量线性查找,即通过CNN 特征抽取器计算待检索图像的4096特征,再计算Hash值,找到与其粗略近似的小候选集,再对小候选集合进行使用4096特征进行距离计算,对检索结果重新排序,再给出新的检索集合(小于或者等于候选集大小),这样最先出现在用户面前的图片,具有最高的相似度。这样看来,整个基于CNN特征的图像检索Hash模型是通过选取选取具有相同Hash值的集合,缩小了检索范围,加快了检索速度,接下来对小范围集合进行线性ReRank检索,最终给出一个检索结果,完成整个近似检索过程。 3.1
49、5 Hash模型图像检索分析小节 现对Hash检索模型进行总结。映射,可表示为,公式中p值越大,则意味着经函数变换后原实数空间O中相近的点在目的空间X中依然相近。在本文中为原实数空间O为CNN提取出的图像4096特征,点的相近用欧氏距离表示,Hamming空间X代表二进制Hash值,点的相近用Hamming距离表示,此时,函数表示Hash索引建立中的Hash函数(或者外加重排序操作)。 对于Hash过程来说,Hash函数变换后原实数空间O中相近的点在目的空间X中依然相近,要求在原空间相近的点,在目的Hamming空间中能够拥有相同的Hash值。提升检索效果p,则提升Hash函数这种相近点
50、具有相同Hash值的能力,更一般来说,等价于Hash模型图像检索模型中倒排索引的质量,即检索一张图片,从离线数据集合中选取出较小的候选集合,缩小检索范围,所给出候选集合的质量越高,检索效果越好,可以说Hash过程为整个检索系统的关键。 ReRank过程是检索过程的最后一步,可用公式【3.1】表示,ReRank过程对候选集进行排序,完成线性检索,将最相似的图像子集作为检索结果,并按相似度由高到低呈现给用户。 【3.1】 其中E为欧式距离,为具有相同Hash值的候选集合,R为检索结果。 总之,整个Hash模型图像检索过程可表示为算法【3.1】 算法3.1基于Hash的图像检索算法 输入: 离线图像集合及其Hash、4096卷积特征,待查询图片 输出:
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818