潘華峰,王春玲,毋 濤
(西安工程大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,陜西 西安 710600)
對(duì)于已知的圖像檢索技術(shù)探索發(fā)展和研究[1-2],從發(fā)展初期至今為止,已經(jīng)被明確分成兩類(lèi):(1)基于文本的圖像檢索(text-based image retrieval,TBIR);(2)基于內(nèi)容的圖像檢索(content-based image retrieval,CBIR)?;谖谋镜膱D像檢索[3]技術(shù),首先需要人工進(jìn)行大量標(biāo)注,然后將標(biāo)注部分與目標(biāo)圖像進(jìn)行對(duì)比分析,該檢索技術(shù)也被稱(chēng)為“以字找圖”;基于內(nèi)容的圖像檢索[4]技術(shù),首先是需要提取數(shù)據(jù)集圖像中的色彩、紋理等[5]基本特性并按照這些特性信息進(jìn)行分類(lèi),之后在圖像集合中找到相似圖像,該檢索技術(shù)也稱(chēng)為“以圖找圖”。
該文主要進(jìn)行的是基于圖像內(nèi)容的檢索與推薦研究。圖像檢索[6-7]的含義是指首先提取被檢索目標(biāo)圖像中的相關(guān)內(nèi)容特征,之后將提取的特征與圖像數(shù)據(jù)集進(jìn)行相似性度量,以此找到相似的圖像。在目前對(duì)圖像內(nèi)容的研究中,針對(duì)圖像特征數(shù)據(jù)的“維度災(zāi)難”,Gayathiri等[8]通過(guò)使用Hadoop MapReduce框架,并且引入了一種全新的局部敏感散列算法,以提高對(duì)數(shù)據(jù)樣本提取的熟練程度。Lai等[9]提出了深度神經(jīng)網(wǎng)絡(luò)散列的方法,主要內(nèi)容是通過(guò)共享的網(wǎng)絡(luò)結(jié)構(gòu)得到圖像的內(nèi)容特征。文獻(xiàn)[10-11]主要講述了哈希網(wǎng)絡(luò)對(duì)于圖像檢索具有較好的效果。李涓楠等[12]之前將深度哈希網(wǎng)絡(luò)技術(shù)應(yīng)用到肺結(jié)節(jié)圖像檢索中,檢索效果得到了明顯的提升。林宇等[13]將深度哈希網(wǎng)絡(luò)技術(shù)應(yīng)用到船檢圖像的檢索中,也同樣取得了較好的檢索結(jié)果。
許多的應(yīng)用案例都可以說(shuō)明深度哈希網(wǎng)絡(luò)可以很好地應(yīng)用到解決圖像檢索的問(wèn)題當(dāng)中,因此該文提出一種結(jié)合深度哈希網(wǎng)絡(luò)和局部敏感散列的方法,并以泳裝版型圖像的檢索推薦作為應(yīng)用實(shí)例,完成中小型泳裝企業(yè)下單過(guò)程智能化的相關(guān)需求。
深度哈希網(wǎng)絡(luò)應(yīng)用于相似圖像檢索推薦的具體過(guò)程[14]:針對(duì)一個(gè)數(shù)據(jù)集中訓(xùn)練圖像的特征值,需要先通過(guò)哈希碼的特征學(xué)習(xí)子網(wǎng)絡(luò)方式進(jìn)行檢索和學(xué)習(xí),在此期間需要將特征學(xué)習(xí)得到的第一個(gè)特征結(jié)果進(jìn)一步在深度哈希學(xué)習(xí)層上進(jìn)行研究和學(xué)習(xí),得到第二個(gè)結(jié)果,并且將得到的結(jié)果進(jìn)行相互反饋。為了獲得最終合適的圖像哈希碼和檢索結(jié)果,在之前哈希碼的學(xué)習(xí)中利用某些哈希信息可以作為監(jiān)督信息傳遞的標(biāo)記函數(shù)進(jìn)行計(jì)算,并使用逆向傳遞的方式以及調(diào)改部分網(wǎng)絡(luò)參數(shù)來(lái)優(yōu)化損失函數(shù),使得圖像哈希碼得到一定的收斂。
為了檢索到相似圖像,第一步將目標(biāo)圖像進(jìn)行特征矢量和圖像哈希碼的提取,可以直接使用之前訓(xùn)練圖像數(shù)據(jù)集所建立的網(wǎng)絡(luò)模型進(jìn)行提??;第二步對(duì)比分析取得的哈希編碼值,把被檢索目標(biāo)圖像數(shù)據(jù)提取到的哈希碼與哈希表中保存的編碼值進(jìn)行一一比對(duì);這一步需要應(yīng)用某一具體的距離度量算法計(jì)算對(duì)比哈希碼之間的距離;最后檢索得到所需圖像,根據(jù)上一步驟中計(jì)算得到的距離大小,可以判斷圖像的相似度,從而得到所需要的圖像列表。
局部敏感散列[15]的定義:對(duì)于任意的p和q兩個(gè)點(diǎn),h作為映射函數(shù),如果滿(mǎn)足如下兩個(gè)條件:(1)如果d(p,q)≤R,并且h(p)=h(q)的概率不小于P1;(2)如果d(p,q)≥cR,并且h(p)=h(q)的概率不大于P2,并且符合P1>P2,這樣的哈希函數(shù)結(jié)果稱(chēng)為(R,cR,P1,P2)敏感的。
距離度量的作用是通過(guò)減小相同類(lèi)別樣本的距離來(lái)增大相似度,反之,通過(guò)增大不同類(lèi)別樣本之間的距離來(lái)減小相似度,從而完成樣本的分類(lèi),達(dá)到更好的聚類(lèi)性能。
對(duì)于數(shù)據(jù)集中所有圖像完成圖像特征提取后,可以根據(jù)特征的不同將圖像分別放入到不同類(lèi)別的圖像集合中,以便于之后目標(biāo)圖像方便快捷的查找。圖像檢索過(guò)程:根據(jù)計(jì)算得到相關(guān)的距離度量結(jié)果,需要從被檢索圖像集合中找到與被檢索目標(biāo)圖像接近甚至一樣的若干圖像,最后精確度量出與目標(biāo)向量的距離(相似度)。在被檢索數(shù)據(jù)集圖像較多的情況下,逐一進(jìn)行對(duì)比,需要消耗較長(zhǎng)的時(shí)間,無(wú)法應(yīng)用到實(shí)際問(wèn)題當(dāng)中。參考圖像索引[16-17]相關(guān)資料,可以通過(guò)構(gòu)建出一個(gè)合適的索引來(lái)解決耗費(fèi)時(shí)間的問(wèn)題,達(dá)到縮短檢索時(shí)間的目的。通過(guò)對(duì)比各種索引方式,決定采用局部敏感散列技術(shù)的散列索引方式,以此實(shí)現(xiàn)相似圖像的高效檢索。
不同于局部敏感哈希和密度敏感哈?;陔S機(jī)超平面,球哈希是基于超球面的哈希技術(shù)。
球哈希的哈希函數(shù)為:
(1)
其中,k表示數(shù)據(jù)空間的k個(gè)球,pk表示球心,rk表示球半徑,d表示特征點(diǎn)與球心之間的歐氏距離,點(diǎn)到球心的距離大于半徑,編碼為0,否則編碼為1。
在構(gòu)建球哈希函數(shù)時(shí)需要遵守如下兩個(gè)準(zhǔn)則:
(1)空間中每個(gè)點(diǎn)被哈希函數(shù)編碼為0或者1的概率是相等的。
(2)
(2)球哈希函數(shù)之間是相互獨(dú)立的。
Pr(hi(X)=1,hj(X)=0)=Pr(hi(X)=
(3)
深度哈希網(wǎng)絡(luò)技術(shù)用于圖像檢索推薦的過(guò)程如圖1所示。
圖1 深度哈希網(wǎng)絡(luò)的圖像檢索流程
2.1.1 特征提取
哈希網(wǎng)絡(luò)可以將輸入的樣本圖像采用SIFT[18]等形式轉(zhuǎn)換為視覺(jué)描述符向量,實(shí)現(xiàn)投影和量化操作,這個(gè)過(guò)程中由于普通的哈希網(wǎng)絡(luò)對(duì)特向表達(dá)的可區(qū)分性較低,因此該文使用深度哈希網(wǎng)絡(luò)來(lái)提高提取后對(duì)于視覺(jué)描述符向量的表現(xiàn)力。
哈希網(wǎng)絡(luò)目標(biāo)函數(shù)方程如下:
min∑kijDij‖YiK-YjK‖2=tr(YTLY)
(4)
subjectto:Y∈(-1,1)n×k
其中,Dij表示哈希網(wǎng)絡(luò)中的相似度矩陣;L表示在n個(gè)圖像提取點(diǎn)上相應(yīng)的編碼矩陣;k表示矩陣點(diǎn)中的編碼位數(shù);Dd(i,j)=∑jY(i,j)則表示網(wǎng)絡(luò)對(duì)角陣。
使用k-means算法將圖像數(shù)據(jù)進(jìn)行一定的分門(mén)別類(lèi)。第一步需要從所有圖像數(shù)據(jù)中確定若干盡量分開(kāi)的圖像數(shù)據(jù)作為初始化的聚類(lèi)中心,將其他剩余圖像數(shù)據(jù)歸類(lèi)到相對(duì)距離最小的中心點(diǎn);第二步是將獲得的每一個(gè)小的聚類(lèi)體作為一個(gè)新的團(tuán)體,反復(fù)進(jìn)行第一步,進(jìn)行更細(xì)致的聚類(lèi)劃分;最后一步就是通過(guò)多迭代優(yōu)化類(lèi)心,以此達(dá)到誤差最小的效果,得到相似度矩陣。
2.1.2 哈希編碼
在該深度哈希網(wǎng)絡(luò)模型中,哈希編碼值采用的是球哈希編碼方法進(jìn)行計(jì)算。其表達(dá)式為:
hi(x)=xwi+bi
(5)
其中,x對(duì)應(yīng)某個(gè)對(duì)象在網(wǎng)絡(luò)中的數(shù)據(jù)特征表達(dá);hi(x)對(duì)應(yīng)第i個(gè)圖像的哈希函數(shù)。
之后圖像數(shù)據(jù)對(duì)應(yīng)的k個(gè)哈希編碼就由這k個(gè)哈希函數(shù)進(jìn)行生成,過(guò)程如圖2所示。
圖2 超平面分割數(shù)據(jù)編碼
2.1.3 特征度量
在超平面編碼的基礎(chǔ)上,建立由超平面分割編碼下的空間衍生出的球哈希編碼。首先需要假定一個(gè)由m個(gè)元素組成的數(shù)據(jù)集,要求建立的球哈希至少包含m/2個(gè)元素,并且球體交集部分包含m/4個(gè)元素,之后經(jīng)過(guò)重復(fù)迭代計(jì)算來(lái)獲取k個(gè)函數(shù)表達(dá)式,同時(shí)依據(jù)超平面球哈希編碼所具有的特有性質(zhì),以及為了提高圖像檢索的精確度,需要在漢明空間上優(yōu)化特征度量方法,因此采用的特征度量方法是球哈希在漢明空間內(nèi)的計(jì)算公式:
(6)
其中,bi,bj作為圖像特征下的哈希編碼值,⊕的含義是異或運(yùn)算,并作為圖像特征下的漢明距離度量,而|bi∧bj|表示bi和bj位同為1的數(shù)量。
通過(guò)以圖像數(shù)據(jù)庫(kù)中挑選的圖像數(shù)據(jù)作為樣張,在樣張中挑選k個(gè)數(shù)據(jù),并把這些圖像對(duì)象作為函數(shù)球心,經(jīng)過(guò)一定的相關(guān)運(yùn)算可以得到k個(gè)對(duì)應(yīng)的球哈希函數(shù)表達(dá)式,使用函數(shù)表達(dá)式計(jì)算圖像的編碼值,從而獲取其對(duì)應(yīng)的漢明空間距離,并以此作為不同圖像間的相似度判斷依據(jù)。
局部敏感哈希的基本思想[19]是將獲得的數(shù)據(jù)進(jìn)行映射變換,完成局部敏感散列的建立,具體建立過(guò)程如下所述。局部敏感散列是以K和L為參數(shù)的隨機(jī)過(guò)程,其中K是散列映射后數(shù)據(jù)的大小,L表示散列表數(shù)量,經(jīng)過(guò)一個(gè)散列函數(shù)的相關(guān)映射,2048維度特征向量E轉(zhuǎn)換成K位的散列數(shù)據(jù)H,每一個(gè)散列函數(shù)的映射都是對(duì)2048維特征數(shù)據(jù)進(jìn)行的加權(quán)處理,強(qiáng)化局部數(shù)據(jù)的地位,也是對(duì)特征向量的局部敏感散列,在提取局部數(shù)據(jù)的同時(shí)完成了降維。具備相同散列結(jié)果的圖像會(huì)被放入同一個(gè)“桶”,在所有的“桶”中,所有的圖像數(shù)據(jù)中任何一個(gè)圖像都會(huì)和其他圖像發(fā)生一次“碰撞”,同一“桶”中的所有圖像數(shù)據(jù)都具備一定的相似性,其中每個(gè)圖像都會(huì)經(jīng)過(guò)L次散列,分別放入不同的散列表對(duì)應(yīng)表示的“桶”中,在單一某個(gè)“桶”內(nèi)任意兩個(gè)圖像之間發(fā)生“碰撞”的次數(shù)越多,說(shuō)明相似度越高。
LSH總體流程如圖3所示。
圖3 LSH總體流程
具體構(gòu)建LSH索引的過(guò)程如下:
(1)選取滿(mǎn)足(R,cR,P1,P2)-敏感的深度哈希函數(shù);
空間中選擇某兩個(gè)點(diǎn)x、y,并且需要滿(mǎn)足如下關(guān)系:
if(dist(x,y)≤R)P(h(x)=h(y))≥P1
(7)
if(dist(x,y)≥R)P(h(x)=h(y))≤P2
(8)
(2)確定相關(guān)參數(shù),依據(jù)上一步查詢(xún)得到的準(zhǔn)確率規(guī)定哈希表的數(shù)量L,對(duì)應(yīng)每個(gè)表內(nèi)函數(shù)表達(dá)式的數(shù)量K,以及其他和局部敏感哈希函數(shù)表達(dá)式相關(guān)的參數(shù);
(3)將所有經(jīng)過(guò)深度哈希函數(shù)運(yùn)算的數(shù)據(jù)結(jié)果放入到相應(yīng)的“桶”內(nèi),構(gòu)成了一個(gè)或若干個(gè)對(duì)應(yīng)的哈希表。
索引構(gòu)建示意圖如圖4所示。
使用python語(yǔ)言工具進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)硬件環(huán)境如下:Windows10系統(tǒng),搭載英特爾酷睿i5四核處理器,CPU主頻為2.50 GHz,運(yùn)行內(nèi)存為16 GB的筆記本電腦。
具體使用的軟件是基于Python3 & Qt5進(jìn)行實(shí)際實(shí)驗(yàn)研究,實(shí)驗(yàn)過(guò)程中使用到的依賴(lài)有:imagehash,pyqt5,pillow。
為了確保實(shí)驗(yàn)過(guò)程的嚴(yán)謹(jǐn)性和科學(xué)性,以及完成對(duì)于泳裝版型推薦的實(shí)例研究,該文使用的泳裝圖像數(shù)據(jù)集均來(lái)自于實(shí)驗(yàn)室合作的晉江某泳裝公司。實(shí)驗(yàn)數(shù)據(jù)集詳見(jiàn)表1。
表1 數(shù)據(jù)集描述
為了確保對(duì)采用的相似圖像檢索方法得到一個(gè)客觀的評(píng)價(jià),主要從以下兩方面進(jìn)行比較判別。
(1)檢索耗時(shí)。在相同數(shù)據(jù)集圖像的前提下,用不同檢索方法對(duì)同一被檢索目標(biāo)圖像進(jìn)行檢索,記錄不同檢索方法所消耗的時(shí)間,評(píng)判檢索的效率。消耗的時(shí)間越短,說(shuō)明效率越高。
(2)查全率和查準(zhǔn)率。查全率與查準(zhǔn)率是信息檢索領(lǐng)域內(nèi)的概念,二者是反映檢索效果的重要指標(biāo)。根據(jù)查準(zhǔn)率和查全率繪制PR曲線(xiàn),可根據(jù)曲線(xiàn)判斷檢索結(jié)果的優(yōu)劣。對(duì)于圖像檢索查詢(xún)結(jié)果,進(jìn)行查全率和查準(zhǔn)率的計(jì)算,判斷圖像檢索模型的檢索性能。
計(jì)算公式如下:
(9)
(10)
3.4.1 檢索效果
進(jìn)行圖像搜索的時(shí)候可以任意選取某個(gè)目標(biāo)檢測(cè)圖像,如圖5所示。
圖5 測(cè)試?yán)龍D
經(jīng)過(guò)實(shí)驗(yàn)檢索得到圖6所示的相似度以及圖像對(duì)比結(jié)果。
在圖6中,左側(cè)是被檢索目標(biāo)圖片,右側(cè)顯示的是從數(shù)據(jù)集中搜索獲得的若干最相近圖像,相似度從大到小進(jìn)行排列。其中相似度為1的是被檢索目標(biāo)圖像,其余羅列出來(lái)的幾個(gè)數(shù)據(jù)結(jié)果是被查詢(xún)到的最接近目標(biāo)圖像的圖像相似度。
圖6 圖像相似度檢索結(jié)果
圖7展示的是相似度較高的幾張被查找到的圖像,直接將查找結(jié)果展示出來(lái),給人們更直觀的感受,而不只是顯示相似度這個(gè)較為抽象的數(shù)據(jù)。以上結(jié)果說(shuō)明該文采用的模型具有可行性和有效性。
圖7 相似圖像檢索結(jié)果
3.4.2 性能分析
為了更為客觀地認(rèn)識(shí)和評(píng)判構(gòu)建的檢索推薦模型所具備的先進(jìn)性,進(jìn)行了如下兩個(gè)方面的比較分析。
(1)利用該圖像檢索方法和其他圖像檢索方法進(jìn)行相似圖像檢索耗時(shí)的對(duì)比,如表2所示。
表2 三種檢索方法耗時(shí)比較
相比較文中方法而言,文獻(xiàn)[20]使用的方法首先需要對(duì)圖像進(jìn)行劃分區(qū)域和圖像特征加權(quán)處理,導(dǎo)致在特征提取方面會(huì)多消耗大量的時(shí)間,檢索消耗的時(shí)間較少,但是總消耗時(shí)間仍然是相對(duì)最多的;文獻(xiàn)[21]在特征提取過(guò)程中消耗的時(shí)間較少,但是在圖像檢索過(guò)程中,使用的算法時(shí)間復(fù)雜度較高,需要花費(fèi)相對(duì)較多的時(shí)間。而文中使用深度哈希網(wǎng)絡(luò)進(jìn)行特征提取,消耗的時(shí)間相對(duì)較少,采用局部敏感散列的方式進(jìn)行相似圖像檢索,相對(duì)其他檢索方式具備相對(duì)明顯的優(yōu)勢(shì),縮短了檢索時(shí)間,提高了檢索效率。
(2)將文中方法取得的查準(zhǔn)率和查全率與其他方法進(jìn)行了一定的對(duì)比分析。對(duì)查全率有不同要求的情況下,相應(yīng)的查準(zhǔn)率的對(duì)應(yīng)變化如圖8所示。
圖8 三種檢索方法的查準(zhǔn)查全性能對(duì)比
根據(jù)性能對(duì)比可以發(fā)現(xiàn),在對(duì)查全率有較高要求的情況下,3種檢索方法的查準(zhǔn)率均出現(xiàn)了一定程度的下降,而該文所采用的檢索方法受到的影響是最小的。該文使用深度哈希網(wǎng)絡(luò)進(jìn)行圖像特征提取、利用漢明距離度量特征,相對(duì)提高了對(duì)于圖像內(nèi)容特征提取的精確度。
通過(guò)以上在檢索結(jié)果的對(duì)比和檢索時(shí)間的對(duì)比,可以明顯看出結(jié)合深度哈希網(wǎng)絡(luò)和局部敏感散列的相似圖像檢索推薦方法具備一定的優(yōu)勢(shì),足以說(shuō)明該檢索方法具有相對(duì)較高的性能,具備一定的先進(jìn)性。
提出了一種結(jié)合深度哈希網(wǎng)絡(luò)和局部敏感散列的相似圖像推薦策略,在圖像檢索準(zhǔn)確率和相關(guān)計(jì)算時(shí)間上有較為明顯的優(yōu)勢(shì),實(shí)現(xiàn)了相似圖像的快速準(zhǔn)確檢索。首先使用設(shè)計(jì)的深度哈希網(wǎng)絡(luò)模型對(duì)對(duì)象數(shù)據(jù)集進(jìn)行圖像內(nèi)容的特征提取,k-means算法實(shí)現(xiàn)劃分聚類(lèi),建立球哈希編碼計(jì)算得到漢明空間距離,之后利用局部敏感散列原理映射成二進(jìn)制形式的字符,整個(gè)索引表包含著產(chǎn)生散列碰撞的相似圖片;當(dāng)接收到目標(biāo)檢測(cè)圖像,先進(jìn)行圖像特性提取計(jì)算漢明距離,然后在散列索引表中尋找到最相似圖像集合,計(jì)算漢明空間距離得到精確查找結(jié)果,最后將所有的結(jié)果利用可視化界面進(jìn)行展示。
在之后的研究中,會(huì)嘗試采用映射函數(shù)對(duì)深度哈希模型進(jìn)行改進(jìn),使得泳裝版型圖像檢索的精度與速度得到更進(jìn)一步的提升。