APP下载

基于图像内容的信息检索

2019-05-09

山西电子技术 2019年2期
关键词:检索服务器数据库

袁 源

(山西职业技术学院,山西 太原 030006)

1 简介

信息检索,尤其是文本检索,已经成为最有影响力的检索工具之一。在互联网上,它帮助世界各地的人们轻松地获取各种信息,几乎没有任何费用。这种信息化检索已经为人类的经济、文化和技术发展提供强有力的燃料。当今互联网、数码相机、多媒体的飞速发展,加上网络得以普及,现在人们越来越沉浸于网上检索信息了,而图像的查询更是变得不可缺少。基于图像的社交网络应用,一些世界领先的技术巨头,如谷歌和百度都投入了他们的精力,使得文本检索和图像搜索取得了巨大的成功。几十年来,我们利用信息构建了一个基于内容的图像搜索引擎,它可以完成计算机视觉的各种任务,如图像分类、图像处理,检测、图像分割等。

例如图像检索,我们使用某些特征表示图像,这样就可以使用预处理得到它的特性,并将其与所有图像的相似度进行比较,经过检索许多图像,得到结果并显示它们在网页上。在此将讨论数据集的细节,深层学习模型,框架和下面的搜索引擎体系结构。

2 数据和模型

2.1 ImageNet

Imagenet是一个图像数据库,它包含超过1000万类图像。ImageNet的大规模视觉识别通常被称为ILSVRC,已成为一个世界各地的计算机视觉研究者的竞争目标,检测与分类彼此的任务。我们选择它作为图像数据库,是因为:

1) 可以在项目里做大型和多样化足够的图像检索任务。

2) 另一方面,由于计算资源的限制,它不太适合安装在桌面上的磁盘空间中。

3) 最后,有许多预先训练模型的训练在ImageNet中,这样我们就可以挑选一个,使用它无需从头开始训练模型或调整模型[1]。

在我们的项目中,我们只使用了ImageNet的训练数据。

2.2 残留网络

残留网络是目前最先进的深度学习模型ilsvr的分类任务。一般来说,它的设计,使它可以更容易地优化,并可以添加更多的层,以获得更好的性能。这是一个革命性的创新,许多研究者提出了其他类似的架构,在基础上实现更好的性能,从那时起,一个典型的基本构建块残留网络就如图1所示诞生。一个残余网络包含多个这样的构建块,它们通过多种方式组合在一起。该模型的作者声称他们取得了在ImageNet测试误差率为3.57%。

我们选择了ResNet-50作为我们的模型是基于以下原因:

1) 模型的性能是许多其他模型中最好的之一。

2) 该模型不太大,在实时应用中不需要计算查询图像的特征提取。

3) Keras在预训练的模型中ImageNet是可用的,同时tensofiow是一个方便的包装。

图1 残留网络基本构建块

虽然模型是设计用于图像分类、图像的内部表示,但是它已经可以应用到其他的任务中,因此,在图像搜索图像内容中得以广泛使用。

在检索任务中,当使用模型中的原始特征时,它对检索与查询图像属于同一类别的,图像会表现出较小的偏差。当我们通过PCA减少特征的维数时,这种偏差可以得到缓解。

3 框架和体系结构

3.1 框架

我们使用Python作为我们的主要语言来构建整个框架。我们使用Tornado作为一个Web框架来构建搜索引擎。它支持异步网络,可以扩展到成千上万的开放连接。我们使用HTML,CSS,JavaScript来为用户建立前端Web接口。我们的包装上使用的是tensofiow keras,后端为keras,训练图像的特征和提取从上传的imagenet上查询图像。我们把NumPy和scikit-learn用作矢量计算和矩阵计算的工具,并执行降维[2]。

3.2 结构

3.2.1 前端服务器

1) 前端服务器接收到一个查询图像(Base64编码)来自用户,提取特征,将特征传递给服务器。

2) 前端服务器接收来自特征服务器的结果(图像名称和相似性分数),根据分数对结果进行排序,并将顶部k个图像名称(批处理请求)发送到相应的图像服务器(图像名称)。

3) 前端服务器从图像服务器接收结果(图像),将它们发送给页面并将它们显示给用户。

3.2.2 特征服务器

1) 每个特征服务器存储部分图像的特征。

2) 每个特征服务器从前端服务器接收查询图像特征,将其与它存储的图像的特征进行比较,并将顶部k图像名称和相似度分数返回到前端服务器。

3.2.3 图像服务器

1) 每个图像服务器存储图像的一部分。

2) 每个图像服务器与前端服务器接收图像的名称,返回相应的图像编码为base64格式

3.2.4 索引器

1) 索引器是一种离线组件索引图像。

2) 索引器是通过特征从Keras和tensofiow提取图像,然后将它们存储在一个名为键的图像特征值的字典里。

3.2.5 维减速机

1) 它是一个离线组件,将原始特征空间嵌入到一个低得多的特征空间中。

2) 对于我们的项目,我们使用PCA作为我们的尺寸减速器[3]。

4 评价

我们对图像检索系统的评价是主观的,因为检索到的图像是否与查询图像相关,完全取决于用户的意图和目标。在我们的评估里,给出的“相关的信息”作为“主要的图像中的对象是相同的或图像的颜色和款式都是高度相关的”,我们使用精确评分作为评价。我们很难计算我们的数据库中100万个图像中有多少图像与查询图像相关。因此,我们不能用F-score或其他依赖回忆。我们将评价分为两类:数据库评价,即查询图像在数据库中,并进行数据库评价,这意味着查询图像不在数据库中。有10名学生帮助我们评估我们的系统,每个人都需要使用25个图像进行数据库评估和25个图像进行外部数据库评估,然后我们计算了每个分数的精确得分,并将分数平均化。以下是我们的结果:

在数据库评估中有2048个维度的原始特征:0.98

基于2048维原始特征的数据库评估精度:0.85

在数据库评价中,减少了200个维度的特征:0.93

用200个维度减少特征的数据库评估精度:0.75

从结果中,我们看到,从数据库的查询图像,我们的系统可以准确地检索相关的图像。我们认为部分原因是因为我们使用的模型是直接对训练数据库中的图像分类。查询图像的图像数据库,精确的得分相对较低。我们将讨论在section5.3这方面的改进。另一方面,当我们使用PCA减少特征的维数时,两种情况下的精确度都会降低。

图2 狗的图像搜索结果示例

5 讨论

5.1 图像表示和传输中遇到的问题

由于我们的项目都是关于图像的,需要在网页和前端服务器之间或图像服务器到前端服务器之间传输图像的形式上,认真考虑和认真处理。

用户上传的图像需要保存在磁盘中以供下一步操作,从首页到前台服务器,我们使用javascript POST方法。映像不能简单地作为参数传递,而JSON不支持包含二进制类型。基于这些事实,我们尝试了几种方法,包括将图像转换为格式数据类型,以及用于编码和解码的图像类型(如PNG、jpeg)。最后,我们通过提取图像的Base64格式和张贴图像的Base64字符串表示形式直接提供给前端服务器。对于前端服务器,图像的这些表示必须首先转换为PNG格式(否则为失败),然后保存我们想要的任何格式[4]。

一旦得到原始图像,我们就可以将表示代码提取出来并解析为其他服务器的URL参数。显示图像变得简单,因为我们已经克服了保存图像部分。

图3 特征向量大小为2 048时的搜索结果

5.2 在尺寸特征上的成功和失败

在评价部分,特征尺寸对我们的图片搜索结果有很大的影响。我们的图像特征是一个带有浮点值的向量。

从最后的汇集层resnet50模型提取原料特征2028个维度,将更致力于图像中的对象,因为resnet50是对象分类和语义特点的最后一层训练。换句话说,搜索结果会更可能包括原始图像中的对象的图像。

与此相反,当我们使用PCA来减少特征维数,如果向量的大小不是那么大,但仍然相当(如200),PCA效果会给更多的“一般感觉和风格”的结果。它不把物体聚焦在图像中,而是给出相似环境、背景或颜色的图像。

图4 特征向量大小为200时的搜索结果

5.3 在未来的改进

1) 在这个项目中我们从最后汇集层resnet50模型使用了表示代码。在未来,我们想尝试从中间层如何表示代码,来影响我们的搜索引擎的性能。

2) 由于不同的特征对检索结果有不同的影响,我们可以同时为用户提供多种选择,如基于对象的检索、基于样式的检索、基于颜色的检索。在这种情况下,我们会增加更多类型的特点[4]。

3) 在我们的项目中,我们只使用欧几里德距离来度量两个图像特征之间的相似性,并没有100%保证更小的欧氏距离。在未来,我们可以考虑添加相似性模块,在模型训练中学习图像之间的相似性。

4) 这次我们只用大约100万张图片作为我们的图像数据库,将来我们可以提供更强大的和多样的检索。

5) 我们的项目是以文本检索为动机的,还可以进一步扩展我们的框架,不仅仅局限于图像,在这种情况下,数据存储、视频表示模型和搜索引擎体系结构方面还有许多挑战。

6 结论

在该项目中,我们利用深度学习模型开发了一个基于图像内容的图像检索系统。结果表明,检索到的图像与查询图像高度相关。在未来,我们打算做更多的改进,使其规模更加形象,可扩展到多媒体检索系统支持视频,音乐,音响等等。

猜你喜欢

检索服务器数据库
通信控制服务器(CCS)维护终端的设计与实现
瑞典专利数据库的检索技巧
PowerTCP Server Tool
一种基于Python的音乐检索方法的研究
数据库
计算机网络安全服务器入侵与防御
数据库
专利检索中“语义”的表现
数据库
数据库