王偉棟,李菲菲,謝 林,陳 虬
(上海理工大學(xué) 光電信息與計算機(jī)工程學(xué)院,上海 200093)
圖像檢索的定義是從數(shù)據(jù)庫中找到與所查詢圖像相似的圖像。隨著科技的發(fā)展,圖像檢索已經(jīng)由基于文本的圖像檢索(Text-Based Image Retrieval,TBIR)發(fā)展為基于內(nèi)容的圖像檢索(Content-Based Image Retrieval,CBIR)。CBIR的原理是提取圖像的視覺特征并與數(shù)據(jù)庫中圖像的視覺特征進(jìn)行比較,然后將相似的圖像返回給用戶。
然而,圖像的相似度是指人類對圖像內(nèi)容理解的差異,這種差異無法從圖像的視覺特征中反映出來。低層特征與高層特征的顯著差異導(dǎo)致了早期CBIR的匹配困難,即所謂的語義鴻溝。語義鴻溝產(chǎn)生的主要原因是低層特征無法表達(dá)圖像的內(nèi)容。這也是近年來低層特征逐漸被圖像檢索的高級特征所取代的原因。目前,深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNNs)獲得圖像高層特征的能力已得到廣泛的認(rèn)可。
圖像檢索最早期的方法是通過計算特征之間的歐氏距離來尋找相似的圖像。由于網(wǎng)絡(luò)圖像數(shù)量的快速增長,在計算歐氏距離過程中需要花費大量的時間,極大地限制了檢索效率。為了提高檢索效率,如CNNH(CNN Based Hashing)[1]這類將DNNs與哈希算法相結(jié)合的方法被陸續(xù)提出。
本文基于DNNs和哈希算法的優(yōu)點,提出了一種新的圖像檢索的方法。該方法分為兩個階段,第一階段中通過深度神經(jīng)網(wǎng)絡(luò)Res20[2]獲取圖像的高層語義特征;在第二階段中通過哈希算法得到高層特征對應(yīng)的哈希編碼。對于哈希編碼的生成,相對于采用固定閾值進(jìn)行特征二值化的方法,本文提出的新方法中運(yùn)用了兩次二值化,針對不同的查詢圖像,通過動態(tài)調(diào)整特征二值化的閾值來優(yōu)化圖像的哈希編碼,使之更好地反應(yīng)圖像之間的語義相似度,從而提高圖像檢索的準(zhǔn)確率。
哈希算法的原理是將每一個輸入到哈希函數(shù)的值映射到{0,1}空間,從而解決數(shù)據(jù)處理過程中耗時及存儲量過大的問題。哈希算法可以分為早期數(shù)據(jù)獨立的哈希算法和當(dāng)下基于學(xué)習(xí)的哈希算法。數(shù)據(jù)獨立的哈希算法,如局部敏感哈希(LSH)[3-4]使用隨機(jī)投影來構(gòu)造哈希函數(shù)。依賴于數(shù)據(jù)的散列方法包括無監(jiān)督哈希和監(jiān)督哈希。兩者的不同之處在于前者利用標(biāo)簽信息生成哈希編碼,而后者則是利用成對相似性進(jìn)行哈希編碼生成。
無監(jiān)督的哈希算法如核化局部敏感哈希(Kernelized Locality Sensitive Hashing,KLSH)[5]、語義哈希、譜哈希(Spectral Hashing,SH)[6]和迭代量化(Iterative Quantization,ITQ)[7]不使用監(jiān)督信息,僅利用無標(biāo)簽訓(xùn)練樣本學(xué)習(xí)哈希函數(shù)。監(jiān)督哈希算法如二進(jìn)制重構(gòu)(Binary Reconstruction Embeddings,BRE)[8]、基于核函數(shù)的監(jiān)督哈希(Kernel-Based Supervised Hashing,KSH)[9]和最小損失哈希(Minimum Loss Hashing,MLH)使用的標(biāo)簽信息,成對的相似并和其他監(jiān)督信息學(xué)習(xí)哈希編碼。KSH使用基于核函數(shù)的模型以減少相似圖像哈希編碼之間的漢明距離;而BRE則是通過最小化原始距離及對應(yīng)哈希碼漢明距離之間的重建誤差進(jìn)行哈希函數(shù)學(xué)習(xí)。
傳統(tǒng)的圖像檢索方法是將如:SIFT、GIST和HOG這些傳統(tǒng)的人工特征編譯成哈希編碼[10]。該方法的缺點在于低層特征對圖像內(nèi)容的表現(xiàn)力不足,不能反映圖像之間的語義相似性。而將哈希算法和神經(jīng)網(wǎng)絡(luò)相結(jié)合則可以有效地解決這個問題。
CNNH是典型的將哈希算法與神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法。該方法由兩個不同的階段組成:在第一階段,通過對相似度矩陣進(jìn)行分解,得到樣本的二值編碼;在第二階段中,將原始圖像輸入到卷積神經(jīng)網(wǎng)絡(luò)中,然后利用該網(wǎng)絡(luò)擬合目標(biāo)哈希編碼。盡管CNNH不是端到端的訓(xùn)練,且學(xué)習(xí)到的特征不能作用于哈希編碼的更新,但是該方法加強(qiáng)了圖像內(nèi)容的表達(dá)能力,提高了檢索的精度,體現(xiàn)出哈希算法和神經(jīng)網(wǎng)絡(luò)相結(jié)合對于提高圖像檢索精度的有效性。文獻(xiàn)[11]提出了一種改進(jìn)的CNNH方法,該方法能夠在使用深度神經(jīng)網(wǎng)絡(luò)的同時進(jìn)行圖像特征以及哈希函數(shù)的學(xué)習(xí),并且將圖像三元組作為監(jiān)督信息。相較于CNNH,該方法是端到端的訓(xùn)練,學(xué)到的圖像特征可以反作用于哈希編碼的更新。但是,三元組的質(zhì)量直接影響檢索精度,并且其對于任意圖像的特征向量均采用固定閾值進(jìn)行特征二值化,這導(dǎo)致該算法雖然簡化了學(xué)習(xí)過程、提高了檢索效率,卻仍無法獲得理想的檢索結(jié)果。
本文提出一種新的方法:輸入原始圖像和圖像對應(yīng)的標(biāo)簽信息;通過多次迭代進(jìn)行整個網(wǎng)絡(luò)參數(shù)的優(yōu)化,得到對圖像內(nèi)容表現(xiàn)能力最佳的特征;利用該特征生成對應(yīng)的哈希編碼以完成圖像檢索的工作,其流程如圖1所示。
圖1 本文所用方法的流程框圖
網(wǎng)絡(luò)深度對深度學(xué)習(xí)的性能有顯著影響[12],本文采用深度為20的ResNet網(wǎng)絡(luò)圖像提取深層特征的深度神經(jīng)網(wǎng)絡(luò)。ResNet的主要特點是快捷連接(Shortcut Connection), 即將前饋卷積網(wǎng)絡(luò)上的兩個層跳過它們之間的中間層直接進(jìn)行連接,每個快捷連接會產(chǎn)生一個殘差塊。ResNet的基本結(jié)構(gòu)如圖2所示。
圖2 ResNet的基本結(jié)構(gòu)
圖3 殘差塊的結(jié)構(gòu)[2]
圖3中的H(x)和F(x)分別定義為映射函數(shù)和殘差函數(shù)。H(x)和F(x)的表達(dá)式分別如下
G=W2σ(W1x)
(1)
H(x)=F(x,{Wi})+x
(2)
其中,σ表示非線性函數(shù)Relu。
本文將深度網(wǎng)絡(luò)全連接層學(xué)習(xí)到的訓(xùn)練樣本特征作為參數(shù)用于構(gòu)造哈希函數(shù)。用A表示由訓(xùn)練樣本的特征組成的矩陣
(3)
(4)
式中max和min分別定義為u所在列向量中的最大元素和最小元素。根據(jù)新生成的矩陣B,通過以下表達(dá)式得到特征二值化的閾值向量T
(5)
T中的每一個元素都被定義為對應(yīng)維度的特征值轉(zhuǎn)換成二值碼的閾值,該哈希函數(shù)表示為
(6)
在圖像檢索過程中,對于任一輸入的查詢圖像,均采用該查詢圖像和用于檢索的圖像哈希編碼之間的漢明距離來反映兩者之間的相似度,表達(dá)式如下
S=‖Yq-Yr‖
(7)
其中,Yq,Yn∈{0,1}k,分別代表查詢圖像和用于檢索的圖像的哈希編碼。漢明距離越小意味著兩幅圖像越相似。將用于檢索的圖像按照漢明距離大小以升序返回,從而檢索出與查詢圖像相似度最高的前k張圖像。
由于漢明距離的大小直接反映了兩幅圖像之間的相似程度,故選擇合適的閾值向量極為重要。對于任一輸入的查詢圖像,若能使閾值向量的每一個元素盡可能的接近相似圖像對應(yīng)維度特征值所處值域的邊界,則得到的哈希編碼就能最大限度保持圖像之間的語義相似。在測試過程中,將測試樣本作為查詢圖像輸入訓(xùn)練好的深度神經(jīng)網(wǎng)絡(luò)并提取特征,按上述方法進(jìn)行第一次特征二值化,得到訓(xùn)練樣本和測試樣本最初的哈希編碼。隨后,根據(jù)指定的平均準(zhǔn)確率和平均召回率來設(shè)置漢明距離的閾值。使用K={K1,K2,…,Kn}和L={L1,L2,…,Ln}分別表示在當(dāng)前漢明距離的閾值條件下,輸入的n張查詢圖像分別檢索到的圖像總數(shù)和其中相似圖像的數(shù)量;N表示用于檢索的圖像集中每個類別的圖像數(shù)。相應(yīng)的平均準(zhǔn)確率和平均召回率可表示為
(8)
(9)
針對不同的查詢圖像,將與該查詢圖像漢明距離大于所設(shè)閾值的訓(xùn)練樣本剔除。隨后,利用剩余所有訓(xùn)練樣本的原始特征以上文方法更新本次檢索任務(wù)的閾值向量。最后,利用新的閾值向量進(jìn)行第二次特征二值化并利用所獲得的哈希編碼完成對于當(dāng)前查詢圖像的檢索工作。
該方法設(shè)定平均召回率是為了避免被剔除的圖像中包含過多的相似圖像,設(shè)定平均準(zhǔn)確率則是由于剩余訓(xùn)練樣本中相似圖像所占比重過大,不利于閾值的選取。剔除部分與查詢圖像漢明距離過大的圖像是為了調(diào)整特征矩陣每一列的均值,令閾值向量中的每一個元素盡可能接近相似圖像在該維度下特征值所集中的值域邊界。在測試過程中,平均召回率和平均準(zhǔn)確率分別被設(shè)定為(≥98%)和(≈20%)。
實驗中使用數(shù)據(jù)集Cifar-10[13]和MNIST[14]測試本文提出的新方法,并將實驗結(jié)果與其他方法的結(jié)果進(jìn)行比較。Cifar-10是一個用于一般物體識別的數(shù)據(jù)庫,包含10個類別共60 000張32×32像素的RGB圖像,其中包括50 000張訓(xùn)練樣本以及10 000張測試樣本。MNIST是一個手寫數(shù)字?jǐn)?shù)據(jù)庫,包含了(0~9)10個數(shù)字標(biāo)簽共70 000張28×28像素的灰度圖像,包括60 000張訓(xùn)練樣本和10 000張測試樣本。
本實驗從兩個數(shù)據(jù)庫測試樣本中每個類別抽取100張圖像,共抽取1 000張圖像作為查詢圖像;從訓(xùn)練樣本中檢索出相似圖像,并將本文方法與CNNH, BRE, KSH, LSH, ITQ等傳統(tǒng)哈希方法進(jìn)行性能對比。對于BRE, KSH等方法,使用一個512維的GIST向量來表示圖像的特征。改進(jìn)的CNNH和CNNBH方法的性能檢測參見文獻(xiàn)[11,15]。
方法性能的評價則基于P-R曲線和Top-k檢索返回的準(zhǔn)確率曲線兩項指標(biāo)。P-R曲線是根據(jù)漢明距離的大小反映所有查詢圖像的平均準(zhǔn)確率和平均召回率;Top-k檢索返回的準(zhǔn)確率曲線反映了檢索返回的與查詢圖像哈希編碼漢明距離最小的前k張圖像中相似圖像所占的比例。實驗中,通過調(diào)整網(wǎng)絡(luò)模型全連接層的節(jié)點數(shù),統(tǒng)一提取訓(xùn)練樣本和測試樣本長度為48的特征向量以及對應(yīng)長度的哈希編碼用于隨后的性能分析。利用開源的深度學(xué)習(xí)框架Caffe[16]實現(xiàn)對網(wǎng)絡(luò)模型的訓(xùn)練和圖像特征向量的提取。
在檢索到的圖像按漢明距離大小以升序返回的前提下,使用不同方法在MNIST和Cifar-10兩個數(shù)據(jù)庫上得到P-R曲線和Top-k返回圖像的檢索精度,如圖4和圖5所示。
從上圖中可以看出,本文提出的方法在兩項性能指標(biāo)上均優(yōu)于其他方法。相對于以傳統(tǒng)特征SIFT和HOG作為輸入的方法,應(yīng)用新方法后性能的提高極其顯著,充分說明了深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的特征相較于低層特征而言對圖像內(nèi)容的表達(dá)能力更強(qiáng)。由于CNNH使用的網(wǎng)絡(luò)模型并非端到端的訓(xùn)練,學(xué)習(xí)到的特征無法對哈希編碼進(jìn)行優(yōu)化,且相似度矩陣分解產(chǎn)生了額外的錯誤,導(dǎo)致訓(xùn)練目標(biāo)偏離了最小化誤差。Improved CNNH和CNNBH雖然采用了端到端的訓(xùn)練模式,但由于兩者均采用了固定閾值對特征進(jìn)行二值化,使所得哈希編碼對于圖像語義相似的保留有所不足。
圖4 采用MNIST數(shù)據(jù)庫的實驗結(jié)果
圖5 采用Cifar-10數(shù)據(jù)庫的實驗結(jié)果
為了驗證兩次二值化對于提高檢索平均精度的有效性,對圖4和圖5在使用相同深度神經(jīng)網(wǎng)絡(luò)的前提下,使用一次二值化和兩次二值化得到的哈希編碼用于圖像檢索得到的P-R曲線進(jìn)行了比較。從圖4(a)和圖5(a)可以看出,在相同的平均召回率下,兩次二值化得到平均準(zhǔn)確率要高于僅一次二值化得到的平均準(zhǔn)確率,反映出不同的查詢圖像通過兩次二值化調(diào)整閾值后得到的哈希編碼能夠更好地保留圖像之間的語義相似性,從而證實了兩次二值化對于提高檢索平均精度的有效性。
本文所提出了一種將深度神經(jīng)網(wǎng)絡(luò)和哈希算法相結(jié)合的圖片檢索方法。該方法使用了Res20網(wǎng)絡(luò)以加強(qiáng)圖像特征向量對圖像內(nèi)容的表達(dá)能力。該方法同時采用端到端訓(xùn)練模式的網(wǎng)絡(luò)結(jié)構(gòu),結(jié)合以數(shù)據(jù)庫圖像特征矩陣的均值向量作為二值化閾值的兩次特征二值化,令圖像的特征在二值化的過程中較大限度地保留了圖像的語義相似性。利用該方法得到的哈希編碼,其圖像檢索的準(zhǔn)確率優(yōu)于傳統(tǒng)的圖像檢索方法和CNNH等相關(guān)方法,體現(xiàn)了該方法的有效性。