秦姣華,黃家華,向旭宇,譚 云
(中南林業(yè)科技大學(xué) 計算機與信息工程學(xué)院,長沙 410004)
時代在高速發(fā)展,圖片、視頻等包含大量信息的數(shù)據(jù)也在不斷增長,正因如此,高效、快速的圖像檢索方法成為了當(dāng)前的研究熱門。
近年來,隨著ImageNet[1]等大規(guī)模并被標(biāo)記的數(shù)據(jù)集出現(xiàn),卷積神經(jīng)網(wǎng)絡(luò)在深度學(xué)習(xí)中得到了廣泛的應(yīng)用。為了進一步解決卷積神經(jīng)網(wǎng)絡(luò)中存在的過擬合等問題,各種不同的卷積神經(jīng)網(wǎng)絡(luò)也被相繼提出,如AlexNet、VGGNet、GoogleNet和ResNet等,并且在圖像分類[2]、目標(biāo)檢測[3]、圖像信息隱藏[4]、無載體隱寫[5]、驗證碼識別[6]等多個領(lǐng)域都取得了良好的效果。任夏荔等[7]使用卷積神經(jīng)網(wǎng)絡(luò)提取特征進行圖像檢索,得到了良好的檢索效果。牛亞茜等[8]利用卷積神經(jīng)網(wǎng)絡(luò)端到端的結(jié)構(gòu),并同時學(xué)習(xí)圖像和特征之間的語義相似性,提高了檢索效率。
而提取有效的特征是提高圖像檢索正確率至關(guān)重要的因素。但是,現(xiàn)有的大多數(shù)圖像檢索方法都是對整張圖像進行特征提取,不能區(qū)分圖像中的突出部分,且背景噪聲會產(chǎn)生一定的干擾。因此,對圖像中不同區(qū)域的特征進行權(quán)重的分配或在分析出圖像的突出部分后對突出部分進行特征提取,能夠使特征更加有效。并且,將不同的特征進行融合可以使特征之間優(yōu)勢互補,融合后的特征也包含更多的信息,能夠提高圖像檢索的正確率。
因此,本文將注意力機制應(yīng)用于圖像檢索中,通過用在ImageNet上預(yù)訓(xùn)練的50層殘差網(wǎng)絡(luò)對圖像的特征進行提取用作局部特征,將全局平均池化層應(yīng)用于局部特征,輸出的特征作為全局特征。同時將局部特征分別輸入到卷積塊注意模塊[9](Convolutional Block Attention Module,CBAM)和瓶頸注意模塊[10](Bottleneck Attention Module,BAM)中后將輸出進行融合,最后將經(jīng)過處理后的局部特征和全局特征進行融合,通過計算圖像之間的曼哈頓距離度量圖像的相似性。
之前常用的特征融合是將尺度不變特征變換(Scale Invariant Feature Transform,SIFT)特征等淺層特征進行融合[11],但是這些底層特征不能很好地表示圖像,其性能還有很大的改進空間。近年來,基于卷積神經(jīng)網(wǎng)絡(luò)的圖像特征的提取和生成得到了廣泛的研究[12]。但是,基于卷積神經(jīng)網(wǎng)絡(luò)提取的圖像特征比較單一,單獨用這個特征來進行檢索往往達不到較好的效果。因此,研究者們將不同類型的特征融合在一起,構(gòu)建出一個包含更多信息的描述符。Liu等[13]將低層特征與微調(diào)后的卷積神經(jīng)網(wǎng)絡(luò)提取的特征進行融合,檢索精確率得到了有效提升。
除了融合不同特征外,現(xiàn)有的特征融合方法還可以融合卷積神經(jīng)網(wǎng)絡(luò)不同層的特征進行檢索。侯媛媛等[14]充分利用了卷積神經(jīng)網(wǎng)絡(luò)提取特征的有效性和層次性,通過融合圖像多種層次的特征來提高檢索的準(zhǔn)確率。王志明等[15]提出了一種結(jié)合卷積神經(jīng)網(wǎng)絡(luò)和深度哈希的方法,先融合卷積神經(jīng)網(wǎng)絡(luò)不同層的特征,然后通過深度哈希的方法生成哈希碼,提高準(zhǔn)確率的同時縮短了檢索時間。
近年來,卷積神經(jīng)網(wǎng)絡(luò)成為了深度學(xué)習(xí)的代表算法之一,并在計算機視覺中也得到了廣泛的應(yīng)用。一般情況下,隨著網(wǎng)絡(luò)寬度和深度的增加,網(wǎng)絡(luò)的性能能夠得到一定的提升。但是,在深度學(xué)習(xí)中,網(wǎng)絡(luò)層數(shù)增多會帶來模型過擬合、梯度爆炸和梯度消失等問題,導(dǎo)致訓(xùn)練時誤差增加和引起的測試誤差也增加。2016年,He等人[16]提出的殘差網(wǎng)絡(luò)(ResNet)很好地解決了上述問題,成為目前在圖像領(lǐng)域使用最多的模型。殘差網(wǎng)絡(luò)的主要構(gòu)成是殘差塊,將多個殘差塊堆積在一起就可以構(gòu)建不同深度的殘差網(wǎng)絡(luò)。兩層殘差塊構(gòu)成的是ResNet-34,而三層殘差塊構(gòu)成ResNet-50/101/152,分別如圖1(a)、(b)所示。
圖1 殘差網(wǎng)絡(luò)構(gòu)建塊
注意力機制借鑒了人的注意力機制,能夠讓模型對重要信息更為關(guān)注并進行不斷的學(xué)習(xí),能夠作用于任何序列模型中。它能夠?qū)⒂邢薜木性谝恍┲攸c信息上,合理分配圖像中不同部位的關(guān)注度,不僅減小了計算量,也節(jié)約了成本。注意力機制近幾年來在深度學(xué)習(xí)中得到了廣泛的應(yīng)用,無論是用于圖像處理、語音識別還是自然語言處理都取得了很好的效果。
彭晏飛等[17]通過訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)和區(qū)域注意力網(wǎng)絡(luò)提取圖像特征來對遙感圖像進行檢索。他們通過區(qū)域卷積最大激活(Regional Maximum Activation of Convolutions,R-MAC)在特征圖上進行滑動采樣得到區(qū)域特征向量時,每個采樣區(qū)域會有40%的重疊,增加了信息的冗余,并且會導(dǎo)致后續(xù)計算量增大。因此與文獻[17]相比,本文方法存在的信息冗余更少,且計算量更小,在匹配時更易于計算特征之間的相似性。
Ng等[18]結(jié)合二階損失和二階空間注意力對特征重新加權(quán),從而進行圖像的匹配。文獻[18]主要使用的是空間注意力,而本文方法使用了空間和通道兩種注意力機制,能夠更好對圖像中的突出部分進行加權(quán)。由于只使用空間注意力會忽略通道域中的信息,而本文方法結(jié)合了空間注意力和通道注意力,能夠使最終特征的信息更加完整。
本節(jié)將詳細介紹基于卷積神經(jīng)網(wǎng)絡(luò)和注意力機制的圖像檢索方法,整體框架如圖2所示。在該方法中,首先通過卷積神經(jīng)網(wǎng)絡(luò)提取圖像的特征作為局部特征α,并將全局平均池化層應(yīng)用于局部特征,輸出的特征作為全局特征β。同時利用CBAM和BAM 對局部特征進行處理,融合后得到局部融合特征γ。最后將局部融合特征γ和全局特征β進行融合,得到最終特征。為了與文獻[19]進行比較,使用曼哈頓距離度量查詢圖像與數(shù)據(jù)庫圖像的相似性。
圖2 基于卷積神經(jīng)網(wǎng)絡(luò)和注意力機制的圖像檢索方法
通過卷積神經(jīng)網(wǎng)絡(luò)提取的特征包含了圖像的高級語義信息,可以有效解決許多計算機視覺問題,并且性能優(yōu)于其他低層特征[20]。
卷積神經(jīng)網(wǎng)絡(luò)由一系列卷積層、池化層、全連接層構(gòu)成,其激活被饋送到激活器中。淺層的卷積層更多關(guān)注的是低級的局部特征,并且通過最大池化改進其旋轉(zhuǎn)、平移等小尺度變換,而更深層次的全連接層則關(guān)注于高級視覺抽象。本文使用ResNet50對圖像進行特征提取,將ResNet50提取的特征作為局部特征α;隨后將局部特征輸送到一個全局平均池化層中,其輸出作為全局特征β。
局部特征的處理是通過將經(jīng)ResNet50提取的圖像特征進行進一步的轉(zhuǎn)化,得到更加精細化的特征,這有利于提高檢索結(jié)果精確率。通過將提取的原始圖像特征進行細化,能夠得到對圖像更加精細的描述。我們使用CBAM和BAM兩個模塊分別對局部特征進行細化后再進行融合,得到局部融合特征。
α′CBAM=MC(α)?α,
(1)
αCBAM=MS(α′CBAM)?α′CBAM。
(2)
式中:α′CBAM為通道注意力模塊輸出的結(jié)果,?為數(shù)組元素依次相乘。
BAM[10]則是由通道注意力模塊MC′和空間注意力模塊MS′并行構(gòu)成。與CBAM類似,通道注意力模塊利用特征通道間的關(guān)系得到其特定的響應(yīng),然后通過空間注意力模塊選擇增強還是減弱處于不同空間位置的特征。將局部特征α輸入到BAM模塊中,得到αBAM:
αBAM=α+α?M(α) 。
(3)
式中:M(α)=σ(MC′(α)+MS′(α)),σ是sigmoid函數(shù)。
最后,將經(jīng)兩個模塊處理后的特征αCBAM、αBAM進行融合,得到局部融合特征γ:
γ=αCBAM+αBAM。
(4)
本節(jié)將局部融合特征γ和全局特征β進行融合來獲得最終的圖像特征。在這里,我們簡單地將兩個特征連接在一起,最終的融合特征ε為
ε=γ+β。
(5)
得到查詢圖像與數(shù)據(jù)庫圖像的最終的融合特征ε后,計算查詢圖像與數(shù)據(jù)庫中每張圖像的特征之間的曼哈頓距離,計算公式如下:
(6)
式中:pi為數(shù)據(jù)庫圖像的特征;qi為查詢圖像的特征;n為特征的維度,在這里,n=2 048。計算出查詢圖像與數(shù)據(jù)庫圖像的曼哈頓距離后進行排序,得到匹配的結(jié)果。距離越小,圖像之間的相似性越高。
本文選用了在圖像檢索領(lǐng)域運用廣泛的三個數(shù)據(jù)集:corel1k、corel5k和corel10k。corel1k數(shù)據(jù)集包含建筑、人臉、大象等10個類別的圖像,每個類別100張共計1 000張圖像。corel5k中包含50個類別的圖像,分別為蝴蝶、水果、小汽車等。與corel1k數(shù)據(jù)集相同,每個類別包含100張圖像,一共包含5 000張圖像。與前兩個數(shù)據(jù)集類似,corel10k中包含熱氣球、貓、鮮花等100個類的圖像,每個類別包含100張圖像,一共包含10 000張圖像。corel5k中的所有類別都是從corel10k中抽取的,因此,corel5k可以看作是corel10k的子集。在實驗中,我們隨機從每類圖像中抽取20張圖像作為查詢圖像,其余的作為訓(xùn)練集實驗時,將corel1k中的圖像大小調(diào)整為384×384,corel5k和corel10k中的圖像大小調(diào)整為192×192。
基于內(nèi)容的圖像檢索一般使用精確率(precision)和召回率(recall)來評價系統(tǒng)性能的好壞。因此,本文使用這兩種評價指標(biāo)。精確率計算公式如下:
(7)
式中:IN為查詢某張圖像時返回的前IN張圖像的數(shù)量,IB為實際返回的IN張圖像中正確圖像數(shù)量。
召回率計算公式如下:
(8)
式中:IC是查詢圖像對應(yīng)的類別中圖像的數(shù)量,對于不同的數(shù)據(jù)集,IC的值不同。在我們所使用的corel1k、corel5k和corel10k數(shù)據(jù)集中,IC=100。
對于每個類別的平均準(zhǔn)確率(PC)和平均召回率(RC)的計算公式如下:
(9)
(10)
式中:M表示每個類別中的圖像總數(shù),C代表數(shù)據(jù)集中的每個類別。接著,計算平均精確率(APC)和平均召回率(ARC):
(11)
(12)
式中:NT為數(shù)據(jù)集中的類別總數(shù),對于corel1k、corel5k和corel10k數(shù)據(jù)集,NT分別等于10、50、100。
3.3.1 性能比較
表1顯示了本文方法在corel1k、corel5k和corel10k數(shù)據(jù)集上的平均精確率和平均召回率與文獻[19]的比較結(jié)果,表中文獻[19]的結(jié)果是使用作者提供代碼復(fù)現(xiàn)的結(jié)果。為了公平比較,我們在實驗時使用了復(fù)現(xiàn)文獻[19]時相同的測試集。從表中可以看出,在三個數(shù)據(jù)集上,本文方法都優(yōu)于文獻[19]方法,精確率都在90%以上且在corel1k數(shù)據(jù)集上達到99.38%;在corel1k和corel5k中,精確率分別提高了22.09%和33.73%;特別是在corel10k中,精確率提高了43.81%。由此可見,基于卷積神經(jīng)網(wǎng)絡(luò)的特征提取與注意力機制的結(jié)合能夠很好地提升檢索效果。
表1 本文方法與文獻[19]在corel1k、corel5k、corel10k數(shù)據(jù)集中的檢索性能比較
3.3.2 參數(shù)分析
表2展示了本文方法使用不同的距離度量圖像相似性的比較結(jié)果。如表2所示,在corel1k中使用表中四種距離度量時精確率都達到了98%以上。在corel5k中使用曼哈頓距離進行度量時得到的平均精確率是最高的,為97.16%;與使用堪培拉距離度量時得到的最低平均檢索精確率相比,僅相差0.56%。在corel10k中,使用余弦距離和歐式距離進行度量時效果最好,平均檢索精確率為94.52%;使用堪培拉距離進行度量時,平均檢索精確率最低,為93.8%,與使用余弦距離和歐式距離進行度量時相差0.72%。顯然,使用不同距離進行度量時對精確率和召回率的影響很小。在實驗中,我們使用與文獻[19]相同的距離——曼哈頓距離度量圖像間的相似性。
表2 不同距離度量下的平均精確率和平均召回率
研究表明,隨著檢索返回的前k張圖像數(shù)量(top-k)的增加,查詢IN張圖像時返回的不相關(guān)的圖像也隨之增加,會導(dǎo)致平均精確率降低。因此,我們還在三個數(shù)據(jù)集上與文獻[19]在改變k時的平均精確率進行了比較,結(jié)果如圖3所示。可以看出,與文獻[19]相比,本文方法在k增加的同時依然返回了較多的正確圖像。隨著k的增加,本文方法的平均精確率只有很小的下降幅度,整體趨于平穩(wěn),這表示本文方法是有效且穩(wěn)定的。
(a)corel1k
我們分別從三個數(shù)據(jù)集的建筑、水果、羊類別的測試圖像中選取一張樣本圖像進行檢索,圖4~6展示了樣本圖像及其檢索返回的前12個結(jié)果。從圖中可以看出,檢索結(jié)果與樣本圖像都包含相似的內(nèi)容,屬于同一類別,證明本文方法是有效的。
圖4 corel1k樣本圖及檢索返回前12個結(jié)果
圖5 corel5k樣本圖及檢索返回前12個結(jié)果
圖6 corel10k樣本圖及檢索返回的前12個結(jié)果
3.3.3 檢索效率比較
在圖像檢索中,檢索效率也是一項重要的評價指標(biāo)。本節(jié)比較了文獻[19]與本文方法的特征提取消耗的時間和檢索消耗的時間,結(jié)果如表3和表4所示。
表3 特征提取消耗時間比較
表4 檢索消耗時間比較
表3中消耗的時間為提取數(shù)據(jù)庫圖像和所有查詢圖像特征消耗的時間總和,為3次實驗的平均值??梢钥闯觯疚姆椒ㄔ谌齻€數(shù)據(jù)集上都比文獻[19]消耗的時間少。這是因為文獻[19]在提取特征時需要提取三種特征,并且需要對三種特征分別進行處理,而本文方法直接將圖像輸入到訓(xùn)練好的網(wǎng)絡(luò)中提取特征,因此消耗的時間較短。
表4中的結(jié)果為檢索一張圖像平均消耗的時間,表中結(jié)果為3次實驗的平均值。從表中可以看出,檢索時本文方法比文獻[19]的方法消耗的時間多,因為本文方法的特征維度較大,為2 048維,故在計算相似度時需要消耗更多時間。
本文提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)和注意力機制的圖像檢索方法,通過卷積神經(jīng)網(wǎng)絡(luò)提取特征,然后使用注意力機制處理特征,最后使用特征融合來進行圖像檢索。在corel1k、corel5k和corel10k三個數(shù)據(jù)集上進行了實驗,結(jié)果表明所提方法能夠獲得更高的精確率和召回率,在top-k增加時仍能保持較好的精確率,且使用不同距離度量圖像之間的相似性對精確率的計算影響很小。其中corel1k和corel5k可以看作是corel10k的子集。由實驗結(jié)果可以看出,在圖像數(shù)量增加時檢索精確率有一定的下降。這是因為圖像數(shù)量增加時相似但不是同一類別的圖像的數(shù)量也在增加,在計算圖像相似度時會造成誤判,從而導(dǎo)致檢索精確率降低。
由于本文所使用的特征維度較大,在今后的工作中,我們將進一步考慮降維或使用較小維度的特征進行檢索。