理论教育 图像检索系统设计与实现技巧

图像检索系统设计与实现技巧

时间:2023-08-23 理论教育 版权反馈
【摘要】:前文在图像检索的关键环节图像标注上做了富有成效的研究,基于此,本部分将结合上述两个模型,设计并实现图像检索系统,并对其中关键的图像获取和图像检索两个关键模块做详细介绍。(三)系统关键模块实现1.微博爬虫实现微博爬虫是图像检索系统中必不可少的一环,它不断地从微博获取图像相关数据,为图像检索提供了数据支撑。

图像检索系统设计与实现技巧

前文在图像检索的关键环节图像标注上做了富有成效的研究,基于此,本部分将结合上述两个模型,设计并实现图像检索系统,并对其中关键的图像获取和图像检索两个关键模块做详细介绍。本系统主要采用分布式框架hadoop、深度学习框架tensorflow,以及数据库Mysql,J2EE等技术。

(一)需求分析

本系统旨在帮助大数据平台提供低层图像数据支撑,同时提供管理和检索数据的服务。因为系统是提供数据给平台做分析,所以要求系统能不断地从网上获取数据,将获取到的数据有效地存储,并且用户可以通过关键字准确快速地查看图像数据。针对系统的特点将从数据存储需求、数据检索需求和用户交互需求三个方面进行详细的分析。

1.数据存储需求

本系统的数据采集模块将不断地从网上采集海量的图像,每天的采集量都在100万条左右,因此需要为海量的数据提供一个相应的数据库。传统的数据库显然不能应付不断增大的数据,由于数据大多是图像,传统的关系型数据库对于图片数据的直接存储不能提供很好的服务。综合考虑,本书将采用分布式数据库HBase进行图片存储,HBase通过并行查询使得它可以对海量数据进行高效的访问,通过列存储的方式,使得它比传统数据在扩展性上更加优异。

2.数据检索需求

用户输入关键字后,需要系统能及时准确地返回检索结果。针对系统查询的准确性,我们通过第三章和第四章提出的图像标注模型,对图像进行丰富的标注,利用标注词进行查询。我们发现在分布式数据库中查询操作耗时巨大,同时HBase只能通过rowkey(行键)查询,这给查询增加了不便。本部分为分布式数据库创建索引,以此提升检索速度,图像在进行标注后,根据标注词建立倒排索引的单词词典,使用单词词典构建倒排索引,当系统后台接收到关键字时,能根据倒排索引,快速得到图像的位置。考虑到数据库中不存在用户查询的图像的J情况,我们在查询前设计关键字相似列表,利用相似查询关键字给用户做一定程度上的推荐查询。

3.用户交互需求

用户的检索习惯往往是只输入少量的关键字进行查询,但是一张图像往往需要较多的关键字才能准确描述清楚,这导致查询的结果范围很大,用户还需要自己从查询结果中筛选需要的图像,给用户带来了糟糕的检索体验。

基于此,在检索界面我们提供额外的关键字给用户选择,通过多个关键字的组合使查询的结果更加准确。

(二)系统设计

1.流程设计

本系统主要业务流程为图像采集子系统采集图像后分别提取图像的多源信息和图像自身,图像采集子系统采集的图像信息存入分布式数据库中。分布式数据库中的图像进入图像标注模块,图像标注模块分为两个通道:一个通道是完全私用图像多源信息的标注模型,另一个通道是完全依靠图像本身的标注模型。同时使用两种标注模型,提升了图像标注的丰富程度,最后提取图像的记和图像的标注关键词生成图像检索数据库。用户输入关键字,使用查询接口在图像检索数据库中查询图像的记,系统将使用图像数据库查询图像,将结果返回给用户,系统业务流程如图9-7所示。

图9-7 系统业务流程图

2.系统功能结构

经过系统的需求和业务分析,本部分设计系统的功能模块由四个模块组成:图像检索模块、图像库模块、图像标注模块和用户交互模块,系统功能模块如图9-8所示。

图9-8 系统功能模块图

(1)图像检索模块

图像检索模块主要功能是提升用户检索体验,通过倒排索引的建立,减少检索时间;通过在检索前对关键字的预处理,使得检索词在系统没有查询图片时也能返回相似的图像;通过检索结果的分类查看,提升用户的精确检索,本系统的分类不同于其他对图片类型的分类,是一种关键字的分类,提供多个结果集中的关键字,用户可以更准确地筛选到需要的图像。

(2)图像库模块

图像库主要包含图像采集模块,通过爬虫程序在微博上采集图像的相关信息;图像数据库存储图像的所有数据,包括图像自身、图像属性信息、用户信息、社交信息等多源数据;图像检索库主要存储图像记和图像关键字标注。(www.daowen.com)

(3)图像标注模块

图像标注是本系统的核心模块,标注效果的好坏将直接决定图像检索的结果。为了提升标注的丰富度和深度,本模块充分结合图像和图像多源信息两种标注模型,两种模型互补,使得标注更加丰富和细致。本模块包含两种图像标注模型:基于多源信息分析的图像标注模型和完全基于图像自身标注模型。

(4)用户交互模块

用户交互主要包含用户检索、图像展示、筛选功能。

部署架构系统采用的是B/s架构,包含爬虫服务器、Hadoop分布式集群、Web服务器和Mysql数据服务器。其部署如图9-9所示。

图9-9 系统部署架构图

Web服务器与外网连接负责相应Web请求,其他服务器都在内网中进行部署,Web服务器作为系统的唯一一个接口与外网连接,保证系统的安全。Hadoop集群本机采用CDH集成安装,CDH是Hadoop众多分支中的一种,提供了Hadoop的核心:可扩展存储和分布式计算,相较于原始Hadoop,在兼容性、安全性、可维护性和稳定性上更加优异。

(三)系统关键模块实现

1.微博爬虫实现

微博爬虫是图像检索系统中必不可少的一环,它不断地从微博获取图像相关数据,为图像检索提供了数据支撑。考虑到基于API的微博数据获取方式存在局限性,不仅需要申请高级接口,而且还要用户授权才能获取他的全部微博信息。所以,本系统选择爬虫来获取微博图像的相关信息。

微博爬虫的主体架构是采用Soapy爬虫框架。Soapy中的调度器组件首先从一部分精心挑选的种子URL列表中取出一条待抓取的URL发给爬虫引擎组件,引擎解析URL后将其封装成一个Request请求,发送给下载器组件下载网页资源,将下载好的网页资源封装成Response发送给爬虫解析器组件,解析器组件通过Beautiful Soup模块进行网页的解析,通过解析器找到微博内容中的图像和图像的相关信息,同时如果解析到URL则将URL存入待抓取URL列表,等待调度器读取,其流程如图9-10所示。

图9-10 微博爬虫流程

2.图像索引生成

该模块是系统的主要模块,在海量数据中,为了快速的检索图像,采用了基于图像标签相似度的倒排索引技术为图像索引数据库建立索引。在传统的倒排技术之前,对带检索的关键字进行预处理,使系统能在检索结果图片缺少或不足时依然能为用户推荐一些相关图像。

3.查询前预处理

用户输入关键字查询,系统获取该关键字,利用《知网Hownet》语义相似度算法与单词词典中的关键词进行相似度计算,找出其中与该关键字最相似的10个组成关键字相似列表。关键字相似列表的作用是,当数据库中查询不到用户所输入关键字的图像时,关键字相似列表中的关键字替代用户输入的检索关键字。

4.倒排索引建立

在文档检索中倒排索引的查询速度和资源消耗比其他索引更加优异,因此常常被用于文档检索上。在基于图像标签的检索中,图像索引表中每一项由图像记和图像标注关键字组成,根据关键字和该关键字对应的图像记便可以查询到图片在分布式数据库中的位置。

(四)系统展示

本部分展示系统的操作流程,首先进入系统页面,和百度搜狗等图像搜索服务一样,用户在搜索框中输入关键字,点击图像搜索,系统后台返回包含该关键字的图像。如果没有检索到该关键字的图像,通过检索相似关键字,返回其结果。下面通过输入关键字“科比”作为检索,如“全明星、退役、绝杀、奥斯卡”等。用户可以通过点击这些关键字在结果集中进行筛选,可以看到通过提供在第一次检索结果图像中具有的高频关键字,用户可以更加便捷的检索出自己需要的图片。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈