基于Hadoop的分布式外观专利图像检索系统研究
李宇
摘要:随着外观专利数据的快速增长,单机环境下的外观专利图像检索系统越来越难以满足用户快速检索的需求。为提升大规模外观专利图像检索效率,该文设计一种基于hadoop的分布式外观专利图像检索系统。该系统利用提取图像特征的LIRe开发包和分布式检索系统hadoop,并行提取出图片的特征,建立特征库和索引库,并利用多特征索引联合检索方式提高查准率,实验验证了在外观专利数据系统可有效提升检索效率。
关键词:分布式技术;hadoop;图像检索
中图分类号:TP391? ? ? 文献标识码:A
文章编号:1009-3044(2021)18-0205-04
开放科学(资源服务)标识码(OSID):
Research on Distributed Appearance Patent Image Retrieval System Based on Hadoop
LI Yu
(Guangdong University of Technology, Guangzhou 510006, China)
Abstract: With the rapid growth of appearance patent data, appearance patent image retrieval system in stand-alone environment is more and more difficult to meet the needs of fast retrieval. In order to promote large-scale appearance patent retrieval efficiency, this paper designed a distributed appearance patent image retrieval system based on the hadoop framework of the system. The proposed system adopts LIRe development package for extracting image features and Distributed cloud computing platform Hadoop to parallelly extract image features and establish feature database and index database. Retrieval method with Multi-feature index is used to improve the accuracy, experimental results show that this patent images retrieval system can effectively improve the efficiency of retrieval.
Key words: distributed technology; hadoop; image retrieval
1 背景
外观设计专利是对工业品外观的新设计,外观专利必须要对产品的形状、图案、色彩或者其结合做出新的富有美感设计并适用于工业应用。近年来,工商业发展迅速,外观专利数据量不断增长。2019年我国外观设计专利申请量达71.20万件,这些数据涉及不同领域,不同形状,颜色,纹理,海量的外观专利为外观专利检索带来了新的挑战。传统的基于文本的图像检索,是利用描述图像的文本进行图像检索,近年来由于图像内容复杂[1],难以通过文字描述全面且描述的文本主观性较强,因此,通过文本检索难以达到较好的检索效果。针对这个问题,本文设计了一种基于hadoop的分布式外观专利检索系统[2],通过定义图像数据类型,将图像转为hadoop集群可以处理的形式,在mapreduce分布式计算中,基于hadoop 的多个节点分布式协同运算,利用LIRe(Lucene Image Retrieval)并行化提取外观专利图像特征值和索引,建立外观专利特征和索引数据库,采用倒排索引技术对数据提取索引来建立“目录”,由于索引数据量小,遍历成本低,操作方便,待查询外观专利图像可以通过索引快速查找相似专利。仿真实验结果表明本文设计的系统利用分布式集群的存储和计算能力提高了图像检索的效率,实现基于内容的快速外观专利图像检索。
2 应用框架
2.1 hadoop框架
Hadoop是一种分布式存储与计算的大数据框架,它运用分而治之的思想,将大数据的任务分配到各个节点进行并行处理,再将结果进行汇总得到最终结果[3-5]。Hadoop的核心组成部分主要包括三部分:第一部分是分布式文件系统HDFS,用于数据的存储和管理,通过数据流来进行数据访问,为hadoop提供了很好的访问读取功能。第二部分是Map-Reduce分布式计算编程模型,封装了底层的实现原理,使用者只需要关注业务层代码的实现,而不必去关心底层的繁琐原理,就可以完成分布式计算,提高计算效率。第三部分是yarn集群,yarn集群将资源管理和任务调度进行分离,是一种新的hadoop资源管理器。
2.2 LIRe(Lucene Image REtrieval)
LIRe是一种基于内容的图像检索的Java库,它提供一种的简单方式来创建基于图像特性的Lucene索引。Lucene是一个全文检索引擎的架构,包括索引引擎和查询引擎,文本分析引擎,目的是为使用者提供一个方便的建立索引和檢索的工具包。Lucene提供的应用程式接口,可以实现全文索引和全文检索。Lucene在大多数情况下用于文本建立索引并检索,对于图像检索Lucene并不适合。LIRe是一种为图像建立lucene索引并搜索的图像检索开发包。本文通过LIRe提取图像的特征,并为特征创建Lucene索引来完成基于内容的图像搜索。LIRe支持三十多种图像特征提取与检索,便于针对不同的需求选择不同的特征,在LIRe中还可以扩展额外的特征提取算法,需要实现LIReFeature接口并改写底层函数。
LIRe在创建索引文件时,将特征向量转化为字符串形式,在IndexWrite中设置Analyzer,经由Analyzer处理后,由IndexWriter类将获得的document对象写入已经设置好的索引文件中。索引文件中包含子索引文件segment,这些索引组合而成最终的索引文件。Segment中包含document文件,是索引的基本单元。每个文档又由一个或多个field域和词组成。LIRE索引文件结构如图1所示。
LIRe可以应用在很多场景下,例如提取医学图像特征,检索相似图片,或使用LIRe实现视频检索系统,本文将LIRe与分布式系统结合使用,有效提高了图像检索效率[6-9]。
3 分布式外观专利检索系统设计研究
3.1 系统总体设计
为满足外观专利图像检索快速检索的要求,本文提出一种基于hadoop的分布式外观专利图像检索系统。 系统采用分布式计算框架mapreduce来并行提取图像特征并建立图像索引库,提高构建索引效率。本文设计的基于hadoop的分布式外观专利检索系统整体运行流程图如图2所示。
在建立索引库时,特征提取采用的是mapreduce分布式并行提取方案,将最耗时的任务分到各个子节点上并行计算,使整个系统更为灵活,上传图像数据到hdfs时,可定义输入格式合并小文件用于存储图像数据。建立好索引库之后,用待检索图像去索引库中查找相似图像并比对,避免遍历整个文件,从而提高了检索效率。
3.2 特征提取与多特征联合查询方案
图像内容信息多种多样,依据图像信息进行分类提取的算法有很多,如基于颜色特征的特征提取算法,基于纹理、形状的特征提取算法,基于尺度不变特征的特征提取方法[10]。Lire庫中实现了很多符合MPEG标准且集成于DocumentBuilderFactory类中的特征提取方法。常用的特征有颜色和边缘方向特征描述符(CEDD,Color and Edge Directivity Descriptor,)。模糊颜色和纹理直方图(FCTH ,Fuzzy Color and Texture Histogram);Tamura纹理特征等。其中,CEDD特征提取方法将颜色和纹理信息整合为一个144位的直方图,其包含颜色和纹理两个模块,颜色信息提取模块将RGB模型转为HSV模型,经过模糊过滤器得到颜色特征;纹理信息是通过YIQ模型得到像素灰度值,提取图像边缘方向直方图纹理信息得到。CEDD直方图包括六个信息区域,六个区域提取出六维方向直方图,每一维再加入颜色模块提取的24维颜色信息,利用这种方式将颜色和纹理信息相结合,最终得出6*24=144维直方图信息。CEDD较其他单一特征检索或许更有优势,但CEDD固定于纹理和颜色特征描述。Tamura通过对对纹理的视觉感知进行研究,提出了Tamura纹理描述算法,Tamura算法分析图像灰度分布,从粗糙度、对比度、方向度、线性度、规整度和粗略度等6个不同方向分别描述纹理特征。此外,还有一些其他特征提取算法,如尺度不变特征变换(Scale-invariant feature transform , SIFT)等。在依据不同特征值检索时,自定义检索的特征种类与数量,考虑到不同特征值影响因子不同,故将检索时各影响因子进行归一化处理,保证各个检索因子处于相同地位。
而在使用距离进行相似性度量得到排序结果时,采用Z-score standardization对影响因子进行归一化处理效果较好,Z-score standardization称为0均值标准化,在使用距离度量相似性时表现良好。在系统中,先得到各个特征值相似性检索的结果分布,再自定义最终返回结果,本文采用Z-score standardization对各个特征值检索结果进行归一化处理后,联合查询得到最终的相似性匹配结果。这里以N个特征索引联合查询为例:各个特征值的相似性距离为D1,D2,D3,...,DN,联合查询数量可以随时增加或删除,保证了灵活性,使用公式(1)计算得到特征相似度距离的均值。
UD =[D1+D2+D3+...+DNN]? ? ? ? ? ?(1)
由公式(2)得到特征相似度距离的标准差:
[σd=i=1N(Di-uD)2N-1]? ? ? ? ? ? ? ? ? ? ? ? ? ?(2)
将上边得到的均值与标准差代入公式(3)中得到各个归一化相似度距离
Ds = [Di-UDσd]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (3)
系统可以为任一种特征建立特征库和索引库,存放于hdfs上,方便使用。在检索阶段,不同环境下的不同图像用于检索的特征库或者索引库要求不同,根据数据要求不同,可选择不同特征占主导地位来进行图像检索。
3.3 自定义数据类型ImageInputFormat
Mapreduce的数据类型中并没有图片数据类型,因此传入图片数据做分布式运算需要自定义外观专利图像数据类ImageInputFormat。ImageInputFormat继承FileInputFormat类,FileInputFormat类继承自InputFormat。InputFormat的主要作用是验证job的输入规范,对输入的文件按要求分片或者不分片,产生InputSplit文件,一个map任务使用一个InputSpilt文件,创建RecordReader,从文件中读取数据到map端,按照自定义的内容转成Key-Value的格式供map端使用。ImageInputFormat中的isSplitable设置为false,然后自定义ImageRecordReader,将图片数据的路径、名称、类型或者综合信息作为K1,将内容封装到BytesWritable中作为V1,实现一次读取一个完整图像文件封装为Key-Value形式,提供给map使用。
3.4 mapreduce并行提取图像特征
系统采用Hdfs分布式存储数据。系统首先根据InputFormat类将数据变成mapreduce可以处理的类型,这里选用自定义的ImageInputFormat[11-12]类,将图像数据转为可以使用的数据类型,然后利用自定义map函数并行提取图像特征,自定义的map函数中,运用Lire开发包和map函数相结合并行化提取图像特征值,配置需要的数据格式,在reduce阶段提取索引形成索引库。在检索时,运用分布式检索,检索方法使用多特征索引联合查询。在建立索引阶段,mapreduce执行任务关注的结果是得到倒排索引表,故本文設计将reduce任务分解转移到map阶段的setup方法和map方法中,将提取特征值和建立索引封装到自定义的map类中,规避使用reduce,将reduce任务设置为0,可减少map端和reduce端传输时大量的网络消耗,并且将原本在reduce阶段的实例化IndexWriter写入setup中。图3为系统索引流程图。
为提升检索效率,检索阶段同样使用mapreduce模型,流程图如图4。
在优化的mapreduce模型中,本来在reduce端提取索引实例化的IndexWriter,被提取到在map端的setup方法中执行,setup方法只执行一次,在这里执行IndexWriter的初始化工作,可减少mapreduce中因重复构建IndexWriter而消耗的时间,从而提高系统效率,但是需要在map端完成特征索引提取。此系统设计在map端完成特征索引提取,减少reduce数据倾斜和通信I/O消耗,从而提高构建索引库效率。
3.5 实验结果及分析
为了验证本文设计的分布式检索系统的效果,通过搭建hadoop集群来进行分布式索引实验。实验中,将三台机器配置在同一个局域网中,操作系统均为Centos 64位操作系统。配置三台机器,并配套辅助软件安装以及修改配置信息,JDK版本为1.8版本,各项配置如表1所示。
通过实验对比单机与集群运行环境下索引构建效率,首先向主服务器提交提取索引请求,主服务器接收请求,利用自定义数据类型ImageInputFormat将图像设置为封装好的Key-Value键值对形式,分别分发任务到各个节点执行map任务,并行提取图像特征并建立索引库,由于系统硬件设施限制,分别运行图像数量为10-10000张图像作为实验数据,结果如表2所示。
为了更加直观的展示三种运行方式构建索引表的运行时间对比,将表中数据绘制成线形图如图5所示。
由实验结果可以看出:在图像数据量较少时,单机环境运行时间较短,并且前边是非线性增长,处理器还未达到极限,当数据量增长到1000时,单机提取特征值建立索引库时间开始线性增长,而分布式构建索引却与开始相差不大,在接近5000幅图片时,分布式索引超越单机,效率更高,当图片数量增长到10000时,单机环境下系统运行崩溃,分布式建立索引占据绝对优势,当数量更大时,单机环境不仅效率低,而且到达极限易造成系统崩溃。实验证明,分布式外观专利检索系统能有效提高大数据情形下外观专利提取特征值索引的效率。而在进行检索时,分布式检索框架也证明更有利于利用多特征联合检索得到检索结果。图6给出了5个检索结果,每一行的第一张为待检索图片,后十张为检索结果。通过结果可以看出:如果待检索图像在数据库中有原图,能准确检测出原图结果;而排序靠前的图像,综合相似度较高,排序靠后的图像则在颜色或者纹理方面有相似之处,在检索时,可根据侧重点不同而调整特征检索的算法,满足不同情形下实验要求。
4 结束语
针对单机运行环境下,外观专利检索系统效率低下、可扩展性差等问题,本文对分布式平台和基于内容的图像检索技术进行了研究,提出了一种基于hadoop的外观专利图像检索系统。利用hadoop云平台的分布式文件系统和mapreduce框架模型,结合Lire特征提取开发包,对外观专利图像数据库并行化建立倒排索引并检索,实现了基于图像内容的分布式外观专利检索系统,实验表明,此系统在可满足用户快速检索的需求。
参考文献:
[1] Yu N N,Qiu T S,Bi F,et al.Image features extraction and fusion based on joint sparse representation[J].IEEE Journal of Selected Topics in Signal Processing,2011,5(5):1074-1082.
[2] 林文煜,戴青云,曹江中,等.一种基于内容的海量图像检索框架的设计与实现[J].电脑知识与技术,2016,12(9):212-215.
[3] 林志强.基于Hadoop的图像检索系统设计与实现[D].南京:东南大学,2017.
[4] 王倩,谭永杰,秦杰,等.基于Hadoop分布式平台的海量图像检索[J].南京理工大学学报,2017,41(4):442-447.
[5] 徐振涛,林清滢.基于Hadoop的图像存储和检索的研究与实现[J].现代计算机,2019(26):42-46.
[6] 毛亚青,王亮,胡俊峰.基于Flink的海量医学图像检索系统设计与实现[J].计算机测量与控制,2020,28(9):212-217.
[7] 吴志强,祝忠明,刘巍,等.基于LireSolr的机构知识库图像检索[J].图书馆学研究,2016(14):39,58-63.
[8] 王贤伟,戴青云,姜文超,等.基于MapReduce的外观设计专利图像检索方法[J].小型微型计算机系统,2012,33(3):626-632.
[9] 郝娟,吕晓琪,赵瑛,等.基于自定义的LIRe和HBase的海量医学图像检索[J].电视技术,2016,40(5):116-120,135.
[10] 许磊.基于多视图的三维模型检索系统[D].天津:天津大学,2018.
[11] 洪波.基于MapReduce的并行计算框架研究与优化[D].成都:电子科技大学,2017.
[12] 杨迪.基于内容的分布式图像检索[D].北京:北京邮电大学,2015.
【通联编辑:谢媛媛】