李宇
摘要:隨著外觀專利數(shù)據(jù)的快速增長,單機(jī)環(huán)境下的外觀專利圖像檢索系統(tǒng)越來越難以滿足用戶快速檢索的需求。為提升大規(guī)模外觀專利圖像檢索效率,該文設(shè)計(jì)一種基于hadoop的分布式外觀專利圖像檢索系統(tǒng)。該系統(tǒng)利用提取圖像特征的LIRe開發(fā)包和分布式檢索系統(tǒng)hadoop,并行提取出圖片的特征,建立特征庫和索引庫,并利用多特征索引聯(lián)合檢索方式提高查準(zhǔn)率,實(shí)驗(yàn)驗(yàn)證了在外觀專利數(shù)據(jù)系統(tǒng)可有效提升檢索效率。
關(guān)鍵詞:分布式技術(shù);hadoop;圖像檢索
中圖分類號(hào):TP391? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)18-0205-04
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(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 背景
外觀設(shè)計(jì)專利是對(duì)工業(yè)品外觀的新設(shè)計(jì),外觀專利必須要對(duì)產(chǎn)品的形狀、圖案、色彩或者其結(jié)合做出新的富有美感設(shè)計(jì)并適用于工業(yè)應(yīng)用。近年來,工商業(yè)發(fā)展迅速,外觀專利數(shù)據(jù)量不斷增長。2019年我國外觀設(shè)計(jì)專利申請(qǐng)量達(dá)71.20萬件,這些數(shù)據(jù)涉及不同領(lǐng)域,不同形狀,顏色,紋理,海量的外觀專利為外觀專利檢索帶來了新的挑戰(zhàn)。傳統(tǒng)的基于文本的圖像檢索,是利用描述圖像的文本進(jìn)行圖像檢索,近年來由于圖像內(nèi)容復(fù)雜[1],難以通過文字描述全面且描述的文本主觀性較強(qiáng),因此,通過文本檢索難以達(dá)到較好的檢索效果。針對(duì)這個(gè)問題,本文設(shè)計(jì)了一種基于hadoop的分布式外觀專利檢索系統(tǒng)[2],通過定義圖像數(shù)據(jù)類型,將圖像轉(zhuǎn)為hadoop集群可以處理的形式,在mapreduce分布式計(jì)算中,基于hadoop 的多個(gè)節(jié)點(diǎn)分布式協(xié)同運(yùn)算,利用LIRe(Lucene Image Retrieval)并行化提取外觀專利圖像特征值和索引,建立外觀專利特征和索引數(shù)據(jù)庫,采用倒排索引技術(shù)對(duì)數(shù)據(jù)提取索引來建立“目錄”,由于索引數(shù)據(jù)量小,遍歷成本低,操作方便,待查詢外觀專利圖像可以通過索引快速查找相似專利。仿真實(shí)驗(yàn)結(jié)果表明本文設(shè)計(jì)的系統(tǒng)利用分布式集群的存儲(chǔ)和計(jì)算能力提高了圖像檢索的效率,實(shí)現(xiàn)基于內(nèi)容的快速外觀專利圖像檢索。
2 應(yīng)用框架
2.1 hadoop框架
Hadoop是一種分布式存儲(chǔ)與計(jì)算的大數(shù)據(jù)框架,它運(yùn)用分而治之的思想,將大數(shù)據(jù)的任務(wù)分配到各個(gè)節(jié)點(diǎn)進(jìn)行并行處理,再將結(jié)果進(jìn)行匯總得到最終結(jié)果[3-5]。Hadoop的核心組成部分主要包括三部分:第一部分是分布式文件系統(tǒng)HDFS,用于數(shù)據(jù)的存儲(chǔ)和管理,通過數(shù)據(jù)流來進(jìn)行數(shù)據(jù)訪問,為hadoop提供了很好的訪問讀取功能。第二部分是Map-Reduce分布式計(jì)算編程模型,封裝了底層的實(shí)現(xiàn)原理,使用者只需要關(guān)注業(yè)務(wù)層代碼的實(shí)現(xiàn),而不必去關(guān)心底層的繁瑣原理,就可以完成分布式計(jì)算,提高計(jì)算效率。第三部分是yarn集群,yarn集群將資源管理和任務(wù)調(diào)度進(jìn)行分離,是一種新的hadoop資源管理器。
2.2 LIRe(Lucene Image REtrieval)
LIRe是一種基于內(nèi)容的圖像檢索的Java庫,它提供一種的簡單方式來創(chuàng)建基于圖像特性的Lucene索引。Lucene是一個(gè)全文檢索引擎的架構(gòu),包括索引引擎和查詢引擎,文本分析引擎,目的是為使用者提供一個(gè)方便的建立索引和檢索的工具包。Lucene提供的應(yīng)用程式接口,可以實(shí)現(xiàn)全文索引和全文檢索。Lucene在大多數(shù)情況下用于文本建立索引并檢索,對(duì)于圖像檢索Lucene并不適合。LIRe是一種為圖像建立lucene索引并搜索的圖像檢索開發(fā)包。本文通過LIRe提取圖像的特征,并為特征創(chuàng)建Lucene索引來完成基于內(nèi)容的圖像搜索。LIRe支持三十多種圖像特征提取與檢索,便于針對(duì)不同的需求選擇不同的特征,在LIRe中還可以擴(kuò)展額外的特征提取算法,需要實(shí)現(xiàn)LIReFeature接口并改寫底層函數(shù)。
LIRe在創(chuàng)建索引文件時(shí),將特征向量轉(zhuǎn)化為字符串形式,在IndexWrite中設(shè)置Analyzer,經(jīng)由Analyzer處理后,由IndexWriter類將獲得的document對(duì)象寫入已經(jīng)設(shè)置好的索引文件中。索引文件中包含子索引文件segment,這些索引組合而成最終的索引文件。Segment中包含document文件,是索引的基本單元。每個(gè)文檔又由一個(gè)或多個(gè)field域和詞組成。LIRE索引文件結(jié)構(gòu)如圖1所示。
LIRe可以應(yīng)用在很多場景下,例如提取醫(yī)學(xué)圖像特征,檢索相似圖片,或使用LIRe實(shí)現(xiàn)視頻檢索系統(tǒng),本文將LIRe與分布式系統(tǒng)結(jié)合使用,有效提高了圖像檢索效率[6-9]。
3 分布式外觀專利檢索系統(tǒng)設(shè)計(jì)研究
3.1 系統(tǒng)總體設(shè)計(jì)
為滿足外觀專利圖像檢索快速檢索的要求,本文提出一種基于hadoop的分布式外觀專利圖像檢索系統(tǒng)。 系統(tǒng)采用分布式計(jì)算框架mapreduce來并行提取圖像特征并建立圖像索引庫,提高構(gòu)建索引效率。本文設(shè)計(jì)的基于hadoop的分布式外觀專利檢索系統(tǒng)整體運(yùn)行流程圖如圖2所示。
在建立索引庫時(shí),特征提取采用的是mapreduce分布式并行提取方案,將最耗時(shí)的任務(wù)分到各個(gè)子節(jié)點(diǎn)上并行計(jì)算,使整個(gè)系統(tǒng)更為靈活,上傳圖像數(shù)據(jù)到hdfs時(shí),可定義輸入格式合并小文件用于存儲(chǔ)圖像數(shù)據(jù)。建立好索引庫之后,用待檢索圖像去索引庫中查找相似圖像并比對(duì),避免遍歷整個(gè)文件,從而提高了檢索效率。
3.2 特征提取與多特征聯(lián)合查詢方案
圖像內(nèi)容信息多種多樣,依據(jù)圖像信息進(jìn)行分類提取的算法有很多,如基于顏色特征的特征提取算法,基于紋理、形狀的特征提取算法,基于尺度不變特征的特征提取方法[10]。Lire庫中實(shí)現(xiàn)了很多符合MPEG標(biāo)準(zhǔn)且集成于DocumentBuilderFactory類中的特征提取方法。常用的特征有顏色和邊緣方向特征描述符(CEDD,Color and Edge Directivity Descriptor,)。模糊顏色和紋理直方圖(FCTH ,F(xiàn)uzzy Color and Texture Histogram);Tamura紋理特征等。其中,CEDD特征提取方法將顏色和紋理信息整合為一個(gè)144位的直方圖,其包含顏色和紋理兩個(gè)模塊,顏色信息提取模塊將RGB模型轉(zhuǎn)為HSV模型,經(jīng)過模糊過濾器得到顏色特征;紋理信息是通過YIQ模型得到像素灰度值,提取圖像邊緣方向直方圖紋理信息得到。CEDD直方圖包括六個(gè)信息區(qū)域,六個(gè)區(qū)域提取出六維方向直方圖,每一維再加入顏色模塊提取的24維顏色信息,利用這種方式將顏色和紋理信息相結(jié)合,最終得出6*24=144維直方圖信息。CEDD較其他單一特征檢索或許更有優(yōu)勢(shì),但CEDD固定于紋理和顏色特征描述。Tamura通過對(duì)對(duì)紋理的視覺感知進(jìn)行研究,提出了Tamura紋理描述算法,Tamura算法分析圖像灰度分布,從粗糙度、對(duì)比度、方向度、線性度、規(guī)整度和粗略度等6個(gè)不同方向分別描述紋理特征。此外,還有一些其他特征提取算法,如尺度不變特征變換(Scale-invariant feature transform , SIFT)等。在依據(jù)不同特征值檢索時(shí),自定義檢索的特征種類與數(shù)量,考慮到不同特征值影響因子不同,故將檢索時(shí)各影響因子進(jìn)行歸一化處理,保證各個(gè)檢索因子處于相同地位。
而在使用距離進(jìn)行相似性度量得到排序結(jié)果時(shí),采用Z-score standardization對(duì)影響因子進(jìn)行歸一化處理效果較好,Z-score standardization稱為0均值標(biāo)準(zhǔn)化,在使用距離度量相似性時(shí)表現(xiàn)良好。在系統(tǒng)中,先得到各個(gè)特征值相似性檢索的結(jié)果分布,再自定義最終返回結(jié)果,本文采用Z-score standardization對(duì)各個(gè)特征值檢索結(jié)果進(jìn)行歸一化處理后,聯(lián)合查詢得到最終的相似性匹配結(jié)果。這里以N個(gè)特征索引聯(lián)合查詢?yōu)槔焊鱾€(gè)特征值的相似性距離為D1,D2,D3,...,DN,聯(lián)合查詢數(shù)量可以隨時(shí)增加或刪除,保證了靈活性,使用公式(1)計(jì)算得到特征相似度距離的均值。
UD =[D1+D2+D3+...+DNN]? ? ? ? ? ?(1)
由公式(2)得到特征相似度距離的標(biāo)準(zhǔn)差:
[σd=i=1N(Di-uD)2N-1]? ? ? ? ? ? ? ? ? ? ? ? ? ?(2)
將上邊得到的均值與標(biāo)準(zhǔn)差代入公式(3)中得到各個(gè)歸一化相似度距離
Ds = [Di-UDσd]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (3)
系統(tǒng)可以為任一種特征建立特征庫和索引庫,存放于hdfs上,方便使用。在檢索階段,不同環(huán)境下的不同圖像用于檢索的特征庫或者索引庫要求不同,根據(jù)數(shù)據(jù)要求不同,可選擇不同特征占主導(dǎo)地位來進(jìn)行圖像檢索。
3.3 自定義數(shù)據(jù)類型ImageInputFormat
Mapreduce的數(shù)據(jù)類型中并沒有圖片數(shù)據(jù)類型,因此傳入圖片數(shù)據(jù)做分布式運(yùn)算需要自定義外觀專利圖像數(shù)據(jù)類ImageInputFormat。ImageInputFormat繼承FileInputFormat類,F(xiàn)ileInputFormat類繼承自InputFormat。InputFormat的主要作用是驗(yàn)證job的輸入規(guī)范,對(duì)輸入的文件按要求分片或者不分片,產(chǎn)生InputSplit文件,一個(gè)map任務(wù)使用一個(gè)InputSpilt文件,創(chuàng)建RecordReader,從文件中讀取數(shù)據(jù)到map端,按照自定義的內(nèi)容轉(zhuǎn)成Key-Value的格式供map端使用。ImageInputFormat中的isSplitable設(shè)置為false,然后自定義ImageRecordReader,將圖片數(shù)據(jù)的路徑、名稱、類型或者綜合信息作為K1,將內(nèi)容封裝到BytesWritable中作為V1,實(shí)現(xiàn)一次讀取一個(gè)完整圖像文件封裝為Key-Value形式,提供給map使用。
3.4 mapreduce并行提取圖像特征
系統(tǒng)采用Hdfs分布式存儲(chǔ)數(shù)據(jù)。系統(tǒng)首先根據(jù)InputFormat類將數(shù)據(jù)變成mapreduce可以處理的類型,這里選用自定義的ImageInputFormat[11-12]類,將圖像數(shù)據(jù)轉(zhuǎn)為可以使用的數(shù)據(jù)類型,然后利用自定義map函數(shù)并行提取圖像特征,自定義的map函數(shù)中,運(yùn)用Lire開發(fā)包和map函數(shù)相結(jié)合并行化提取圖像特征值,配置需要的數(shù)據(jù)格式,在reduce階段提取索引形成索引庫。在檢索時(shí),運(yùn)用分布式檢索,檢索方法使用多特征索引聯(lián)合查詢。在建立索引階段,mapreduce執(zhí)行任務(wù)關(guān)注的結(jié)果是得到倒排索引表,故本文設(shè)計(jì)將reduce任務(wù)分解轉(zhuǎn)移到map階段的setup方法和map方法中,將提取特征值和建立索引封裝到自定義的map類中,規(guī)避使用reduce,將reduce任務(wù)設(shè)置為0,可減少map端和reduce端傳輸時(shí)大量的網(wǎng)絡(luò)消耗,并且將原本在reduce階段的實(shí)例化IndexWriter寫入setup中。圖3為系統(tǒng)索引流程圖。
為提升檢索效率,檢索階段同樣使用mapreduce模型,流程圖如圖4。
在優(yōu)化的mapreduce模型中,本來在reduce端提取索引實(shí)例化的IndexWriter,被提取到在map端的setup方法中執(zhí)行,setup方法只執(zhí)行一次,在這里執(zhí)行IndexWriter的初始化工作,可減少mapreduce中因重復(fù)構(gòu)建IndexWriter而消耗的時(shí)間,從而提高系統(tǒng)效率,但是需要在map端完成特征索引提取。此系統(tǒng)設(shè)計(jì)在map端完成特征索引提取,減少reduce數(shù)據(jù)傾斜和通信I/O消耗,從而提高構(gòu)建索引庫效率。
3.5 實(shí)驗(yàn)結(jié)果及分析
為了驗(yàn)證本文設(shè)計(jì)的分布式檢索系統(tǒng)的效果,通過搭建hadoop集群來進(jìn)行分布式索引實(shí)驗(yàn)。實(shí)驗(yàn)中,將三臺(tái)機(jī)器配置在同一個(gè)局域網(wǎng)中,操作系統(tǒng)均為Centos 64位操作系統(tǒng)。配置三臺(tái)機(jī)器,并配套輔助軟件安裝以及修改配置信息,JDK版本為1.8版本,各項(xiàng)配置如表1所示。
通過實(shí)驗(yàn)對(duì)比單機(jī)與集群運(yùn)行環(huán)境下索引構(gòu)建效率,首先向主服務(wù)器提交提取索引請(qǐng)求,主服務(wù)器接收請(qǐng)求,利用自定義數(shù)據(jù)類型ImageInputFormat將圖像設(shè)置為封裝好的Key-Value鍵值對(duì)形式,分別分發(fā)任務(wù)到各個(gè)節(jié)點(diǎn)執(zhí)行map任務(wù),并行提取圖像特征并建立索引庫,由于系統(tǒng)硬件設(shè)施限制,分別運(yùn)行圖像數(shù)量為10-10000張圖像作為實(shí)驗(yàn)數(shù)據(jù),結(jié)果如表2所示。
為了更加直觀的展示三種運(yùn)行方式構(gòu)建索引表的運(yùn)行時(shí)間對(duì)比,將表中數(shù)據(jù)繪制成線形圖如圖5所示。
由實(shí)驗(yàn)結(jié)果可以看出:在圖像數(shù)據(jù)量較少時(shí),單機(jī)環(huán)境運(yùn)行時(shí)間較短,并且前邊是非線性增長,處理器還未達(dá)到極限,當(dāng)數(shù)據(jù)量增長到1000時(shí),單機(jī)提取特征值建立索引庫時(shí)間開始線性增長,而分布式構(gòu)建索引卻與開始相差不大,在接近5000幅圖片時(shí),分布式索引超越單機(jī),效率更高,當(dāng)圖片數(shù)量增長到10000時(shí),單機(jī)環(huán)境下系統(tǒng)運(yùn)行崩潰,分布式建立索引占據(jù)絕對(duì)優(yōu)勢(shì),當(dāng)數(shù)量更大時(shí),單機(jī)環(huán)境不僅效率低,而且到達(dá)極限易造成系統(tǒng)崩潰。實(shí)驗(yàn)證明,分布式外觀專利檢索系統(tǒng)能有效提高大數(shù)據(jù)情形下外觀專利提取特征值索引的效率。而在進(jìn)行檢索時(shí),分布式檢索框架也證明更有利于利用多特征聯(lián)合檢索得到檢索結(jié)果。圖6給出了5個(gè)檢索結(jié)果,每一行的第一張為待檢索圖片,后十張為檢索結(jié)果。通過結(jié)果可以看出:如果待檢索圖像在數(shù)據(jù)庫中有原圖,能準(zhǔn)確檢測(cè)出原圖結(jié)果;而排序靠前的圖像,綜合相似度較高,排序靠后的圖像則在顏色或者紋理方面有相似之處,在檢索時(shí),可根據(jù)側(cè)重點(diǎn)不同而調(diào)整特征檢索的算法,滿足不同情形下實(shí)驗(yàn)要求。
4 結(jié)束語
針對(duì)單機(jī)運(yùn)行環(huán)境下,外觀專利檢索系統(tǒng)效率低下、可擴(kuò)展性差等問題,本文對(duì)分布式平臺(tái)和基于內(nèi)容的圖像檢索技術(shù)進(jìn)行了研究,提出了一種基于hadoop的外觀專利圖像檢索系統(tǒng)。利用hadoop云平臺(tái)的分布式文件系統(tǒng)和mapreduce框架模型,結(jié)合Lire特征提取開發(fā)包,對(duì)外觀專利圖像數(shù)據(jù)庫并行化建立倒排索引并檢索,實(shí)現(xiàn)了基于圖像內(nèi)容的分布式外觀專利檢索系統(tǒng),實(shí)驗(yàn)表明,此系統(tǒng)在可滿足用戶快速檢索的需求。
參考文獻(xiàn):
[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] 林文煜,戴青云,曹江中,等.一種基于內(nèi)容的海量圖像檢索框架的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2016,12(9):212-215.
[3] 林志強(qiáng).基于Hadoop的圖像檢索系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].南京:東南大學(xué),2017.
[4] 王倩,譚永杰,秦杰,等.基于Hadoop分布式平臺(tái)的海量圖像檢索[J].南京理工大學(xué)學(xué)報(bào),2017,41(4):442-447.
[5] 徐振濤,林清瀅.基于Hadoop的圖像存儲(chǔ)和檢索的研究與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī),2019(26):42-46.
[6] 毛亞青,王亮,胡俊峰.基于Flink的海量醫(yī)學(xué)圖像檢索系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2020,28(9):212-217.
[7] 吳志強(qiáng),祝忠明,劉巍,等.基于LireSolr的機(jī)構(gòu)知識(shí)庫圖像檢索[J].圖書館學(xué)研究,2016(14):39,58-63.
[8] 王賢偉,戴青云,姜文超,等.基于MapReduce的外觀設(shè)計(jì)專利圖像檢索方法[J].小型微型計(jì)算機(jī)系統(tǒng),2012,33(3):626-632.
[9] 郝娟,呂曉琪,趙瑛,等.基于自定義的LIRe和HBase的海量醫(yī)學(xué)圖像檢索[J].電視技術(shù),2016,40(5):116-120,135.
[10] 許磊.基于多視圖的三維模型檢索系統(tǒng)[D].天津:天津大學(xué),2018.
[11] 洪波.基于MapReduce的并行計(jì)算框架研究與優(yōu)化[D].成都:電子科技大學(xué),2017.
[12] 楊迪.基于內(nèi)容的分布式圖像檢索[D].北京:北京郵電大學(xué),2015.
【通聯(lián)編輯:謝媛媛】