廖 逍,王興濤,徐海青
(1.國網(wǎng)信息通信產(chǎn)業(yè)集團有限公司,北京 100021)(2.安徽繼遠軟件有限公司,安徽 合肥 230088)
在創(chuàng)建基于內(nèi)容的圖像檢索系統(tǒng)(content-based image retrieval,CBIR)過程中,一般使用圖像特征提取、特征處理和特征表達等技術。圖像的特征表達和相似性度量對于圖像檢索來說尤為重要,要重視機器可處理的低層級的像素信息和人所感知到的語義概念之間的鴻溝[1]。相關研究提出,可以利用卷積神經(jīng)網(wǎng)絡將圖片的編碼作為圖片的特征進行圖像檢索,深度卷積神經(jīng)網(wǎng)絡能夠表達圖片的圖像信息[2]。但是,將預訓練深度網(wǎng)絡模型作為特征提取器存在局限性,在ImageNet上針對圖像分類任務設計的網(wǎng)絡對圖片的差異并不敏感,使用有監(jiān)督的針對圖像檢索設計的學習框架才能起到良好的效果[3]。特征提取方式與訓練損失函數(shù)都會對圖像檢索的性能有所影響,所以本文重點探討如何從卷積神經(jīng)網(wǎng)絡中提取圖像的全局特征。
傳統(tǒng)圖像檢索方式是基于SIFT[4](scale invariant feature transform)圖像提取特征實現(xiàn)的,主要特點為尺度不變性、旋轉(zhuǎn)不變性。但即使是某些語義上不相近的圖片,利用SIFT特征去度量相似性時也會呈現(xiàn)出較高的置信度[5]。
全局特征指的是直接提取卷積層激活的信息,包括SPoC[6]、MAC[7]、GeM[8]等內(nèi)容。另外,還可以使用注意力機制對模型的全局特征進行重新整合。局部特征能夠降低圖片背景的影響,只提取圖片中的部分區(qū)域作為該圖片的編碼。R-MAC模型是將一張圖片的幾個區(qū)域聚合,從而構(gòu)成固定長度的圖像特征表達[7],但由于采用的是固定的網(wǎng)格劃分,無法保證一個區(qū)域能夠完全和感興趣的區(qū)域?qū)省6捎肍aster-RCNN中提出的區(qū)域候選網(wǎng)絡(region proposal network,RPN)進行感興趣區(qū)域的篩選[3]則可以避免這一點。目前最新的圖像特征表達形式是將全局特征和局部特征結(jié)合起來,如DELG[9]特征或者通過ASMK等聚合算法將局部特征綜合起來[10]。因此,本文提出在創(chuàng)建特征的時候融合特征,一方面是不局限于某一層,另一方面是挖掘神經(jīng)網(wǎng)絡特征層內(nèi)部的信息并重新整合。
度量學習是機器學習的核心,能夠?qū)崿F(xiàn)檢索任務,將數(shù)據(jù)映射到嵌入的度量空間中。相似的圖片在度量空間中的距離更近,而不相似的圖片則距離較遠,圖片之間的距離度量包含歐氏距離、余弦距離、SNR(signal-to-noise ratio)、信噪比[11]等。使用深度神經(jīng)網(wǎng)絡進行度量學習的研究集中在設計良好的損失函數(shù),比如如何構(gòu)建訓練組(batch)、如何利用訓練組進行距離度量計算。訓練組選擇的內(nèi)容非常重要,所以提出了多種多樣的樣本采集策略,包含困難樣本挖掘、距離權重采樣[12]、基于訓練結(jié)果的跨訓練組采樣[13]等。
常用的訓練組損失函數(shù)包括Contrastive loss[14]、Triplet loss[15]、N pair loss[16]、Proxy NCA loss[17]、MultiSimilarity loss[18]等,Contrastive loss能夠縮小兩張相似圖片之間的距離,使不相似圖片之間的距離大于一定的閾值;Triplet loss會導致正樣本接近anchor、負樣本遠離anchor,出現(xiàn)優(yōu)化困難等問題;N pair loss利用1個anchor、1個正樣本與多個負樣本進行距離計算;Proxy NCA loss利用代理點進行NCA(neighborhood component analysis)損失計算;MultiSimilarity loss根據(jù)樣本之間的不同關系進行權重賦值,從而計算損失結(jié)果。最近的研究表明,損失函數(shù)并不是決定性能高低的關鍵,在公平實驗中,各個損失函數(shù)并沒有顯著的差異[19]。
圖像特征的設計對于保證圖像檢索質(zhì)量至關重要,以下探討3種常見的特征池化方式。設χk為某一卷積層的第k個特征圖(feature map)。
1)SPoC(平均池化),是指對卷積層中每個特征圖求平均。
(1)
式中:fSPoC為平均池化輸出值;|χk|表示第k個特征圖的元素個數(shù);K為特征圖的維數(shù);x為第k個特征圖中的元素。
2)MAC(最大池化),是指卷積層內(nèi)中每個特征圖的最大值。
(2)
式中:fMAC為最大池化輸出值。
3)GeM,是指對卷積層中每個特征圖單元進行“非線性平均”,之所以叫做GeM,是因為其介于SPoC和MAC之間。
(3)
式中:fGeM為廣義平均池化輸出值;pk表示一個可學習的參數(shù)。
MAC特征的優(yōu)勢為每個特征層的極大值能夠?qū)崿F(xiàn)“空間不變性”,不受復雜背景因素的影響;SPoC特征的優(yōu)勢為能夠考慮圖片的全局信息;GeM則是MAC和SPoC的折中,既考慮了主要內(nèi)容即極值點的影響,又能夠兼顧圖片中的全局信息。深度神經(jīng)網(wǎng)絡在學習的過程中,高層的卷積層通常學習語義信息,低層級的卷積層可以學習到更多細節(jié)信息,無論是SPoC、MAC還是GeM,考慮的都是從單一的卷積層提取信息。但是,在深度學習圖像檢測領域,利用多尺度的特征圖提取檢測對象已經(jīng)是一個慣例,例如SSD[20]、FCOS[21]等檢測網(wǎng)絡。因此,借鑒這種思想,利用多尺度、多層級的特征層信息進行融合,以提取內(nèi)容豐富的特征,對圖像向量進行描述。
多層融合的方式包括“硬融合”(hard fusion)和“軟融合”(soft fusion)兩種方式,“硬融合”是指各個層的系數(shù)為常數(shù),“軟融合”是指可學習的參數(shù)在反向傳播的過程中更新。在下文的實驗中將使用這兩種不同的融合方式。
另外,本文提出了DELF[22]特征描述,通過注意力機制提取特征,得到關于一張圖片的全局特征。為此引入了ECA[23]和CBAM[24]兩種注意力機制開展特征提取實驗。ECA是一個輕量化的注意力機制,而CBAM是一個相對復雜的注意力模塊,其利用Spatial Attention模塊和Channel Attention模塊,綜合了空間和通道兩個方面的信息。在獲得圖像特征的卷積層上使用這兩種不同的機制,能夠得到圖像的表達特征。
根據(jù)文獻[25]中的對比實驗結(jié)果,在統(tǒng)一訓練方式、評測基準的背景下,各個損失函數(shù)的訓練結(jié)果差異并不大,這說明SOTA(state-of-the-art)的方式并不完全準確,因此本文采用最傳統(tǒng)的最直接的Contrastive loss。損失函數(shù)公式為:
(4)
式中:L為損失函數(shù);N為輸入樣本量;d為兩張圖片之間的距離;y表示兩張圖片是否相似,相似為1,反之為0;margin為事先設定的閾值,是一個人為指定的超參數(shù)。Contrastive loss通過對給定的兩張圖片計算損失進行對比,如果兩張圖片相似,則縮小它們之間的距離,否則使它們之間的距離大于所設置的閾值。
本節(jié)針對之前提出的圖像特征提取和融合方式,使用統(tǒng)一的訓練框架和實驗進行驗證。
采用的訓練數(shù)據(jù)集和文獻[8]中一致,由全球各個國家的地標、城市的圖片構(gòu)成,共約163 000張圖片,包含713個建筑物模型,其中551個用來作為訓練集,162個作為驗證集,而測試集采用rOxford和rParis[25],衡量指標采用mAP(平均精度均值)。
實驗采用ResNet-101[26]網(wǎng)絡,去掉了其全連接層部分,采用ImageNet預訓練的參數(shù)作為網(wǎng)絡的初始化參數(shù),最后的輸出向量要經(jīng)過正則化(Normalize)處理,最終獲得維度為2 048的特征向量。使用Adam作為隨機梯度下降算法,相關實驗參數(shù)設置為:batch-size為4,初始學習率為10-6,每一輪訓練的學習率衰減參數(shù)為exp(-0.01),沖量為0.9,權重衰減為5×10-4,負樣本圖片數(shù)量是5張。使用GeForce GTX 1080Ti顯卡,margin設為0.7。
首先,對比原始的SPoC、MAC和GeM特征的檢索效果,見表1,訓練圖片尺寸采用256×256,查詢過程中是1 024×1 024,查詢過程中不對PCA進行處理,直接對神經(jīng)網(wǎng)絡提取到的特征進行檢索。在rOxford和rParis數(shù)據(jù)集上,SPoC的平均準確率都是最低的,這說明求平均的處理方式無法表征圖像內(nèi)容,原因可能在于圖像中待檢索的內(nèi)容被其他要素淹沒,降低了特征向量的顯著性。
表1 不同特征提取方式在測試集上的mAP
之前創(chuàng)建的特征都是將最后一層卷積層的特征圖作為基礎實現(xiàn)特征的提取和綜合,這樣做忽視了低層卷積所提供的細節(jié)信息。本文考慮將高層的語義信息與低層的紋理信息相融合以獲得更好的特征,如圖1所示,而利用ResNet-101進行的實驗表明,低層和高層的融合確實會提升檢索的平均準確率。
圖1 ResNet網(wǎng)絡上的不同層的融合說明
不同層級融合的特征在測試集上的mAP見表2。在rOxford數(shù)據(jù)集上,無論是MAC特征還是GeM特征,F(xiàn)usion_34基本上超過了原始的卷積層提取到的特征,MAC+Fusion_34在Easy檢索難度下給出了最好的結(jié)果,比Fusion_4的最好結(jié)果提升了2.5%,GeM+Fusion_34和GeM+Fusion_234則分別在Medium和Hard檢索難度下給出了最好的結(jié)果,比Fusion_4的最好結(jié)果分別提升了1.5%和2.0%。在rParis數(shù)據(jù)集上,MAC與不同的融合方式組合效果沒有提升反而有所下降,GeM+Fusion_34在Easy和Medium檢索難度下同時給出了最好的結(jié)果。
表2 不同層級融合的特征在測試集上的mAP
總之,相較于單層提取到的特征,特征融合能夠提高檢索準確率,但是在不同數(shù)據(jù)集上效果并不完全一致。
利用注意力機制開展實驗,在ResNet-101的最后一層卷積層激活上,ECA分別使用了長度為7和11的一維卷積核,將ECA和CBAM模塊處理后的卷積方法和GeM及MAC提取方法結(jié)合起來,最終獲得的都是2048維的特征向量。在測試集上的檢索效果見表3,可以看出,在整體上直接將注意力模塊插入到原始網(wǎng)絡結(jié)構(gòu)中并沒有取得良好效果,只有MAC+ECA_7在rOxford和rParis上的檢索性能比起原始信息有微弱的提升,而CBAM模塊的使用反而使得檢索的準確率下降。實驗結(jié)果證明,通道信息注意力機制可以提升檢索準確率,而空間信息的注意力機制反而會降低原始信息的可區(qū)分度和檢索準確率。
表3 注意力機制融合特征在測試集上的mAP
本文探討了針對圖像檢索進行全局特征提取的不同方式,證明了MAC特征和GeM特征要優(yōu)于SPoC特征,平均池化會導致待檢索內(nèi)容被淹沒在背景信息中,而不同層級的信息融合,可以有效提升圖像的檢索準確率。尤其是當圖片之間的差異比較小時,低層細節(jié)信息的補充對于圖像特征的表達十分重要。在相同的特征提取方式下,不同數(shù)據(jù)集上的檢索準確率不同,說明數(shù)據(jù)集本身的分布對于該分布下的圖像檢索的質(zhì)量有很大的影響,如何針對數(shù)據(jù)集的分布進行建模并研究是非常值得探討的問題。