2015
Aggregating Deep Convolutional Features for Image Retrieval
Abstract
最近的一些研究表明,由深度卷積神經網絡產生的圖像描述符為圖像分類和檢索問題提供了最先進的性能。它還表明,卷積層的激活可以解釋為描述特定圖像區域的局部特征。這些局部特征可以使用為局部特征開發的聚合方法(例如Fisher向量)進行聚合,從而提供新的強大的全局描述符。
在本文中,我們研究了聚合局部深度特征以產生用於圖像檢索的緊湊全局描述符的可能方法。首先,我們發現深層特征和傳統手工設計的特征具有完全不同的pairwise相似性分布,因此現有的聚合方法必須仔細地重新評估。這樣的重新評估表明,相對於淺層特征,基於sum pooling的簡單聚合方法對於深度卷積特征具有最好的性能。該方法是一種有效的方法,參數少,在學習主成分分析矩陣時不存在過擬合的風險。總的來說,新的緊湊型全局描述符在四個常見的基准上大大提高了最先進的水平。
1. Introduction
基於深度卷積神經網絡(CNNs)[13]激活的圖像描述符已經成為最先進的用於視覺識別的通用描述符[18,21,4]。最近的一些研究[2,21,7]提出使用最后的全連接網絡層的輸出作為全局圖像描述符,並在描述符維數有限的情況下證明了它們對比先前的先進技術的優勢。
近年來,研究重點從全連接層提取的特征轉向CNNs的深卷積層特征[5,22,14](下面我們將這些特征稱為深度卷積特征)。這些特征具有非常有用的特性,例如,它們可以直接和有效地從任意大小和高寬比的圖像中提取出來。此外,卷積層的特征被自然地解釋為對應於特定特征的接受域的局部圖像區域的描述符。這樣的特征可以看作是手工制作的“淺”特征的類比,比如dense SIFT[16,26]特征。也許是受到這種類比的啟發,[15]建議使用這些特征來識別有意義的對象部分,而[5]建議使用在這些局部特征上構造的Fisher vector[23]來生成一個全局圖像描述符,其在外部數據集上提供最先進的分類性能。
本文的重點是圖像檢索,特別是圖像檢索的全局描述符的構造。根據最近的論文[2,7,21,22],我們考慮基於預訓練的深度神經網絡的激活的描述符,特別是神經網絡的深度卷積層。考慮到新興的在卷積層的特性感知,將其稱為“new dense SIFT”[15,22,5,14],重用用於dense SIFT的最先進的embedding-and-aggregation框架,如VLAD [9], Fisher vectors [19] or triangular embedding [10],並將它們應用於深卷積特性。我們的第一個貢獻是評估這些方法(特別是Fisher vectors和triangular embedding)以及更簡單的聚合方案(如sum pooling和max pooling)。
令人驚訝的是,我們發現用於深度卷積特征的聚合方法的相對性能與用於淺層描述符的方法大不相同。特別是,一個基於sum pooling聚合的沒有高維的嵌入,但具有簡單的后處理操作的簡單全局描述符,其性能非常好。這種基於sum pooling的卷積特征(SPoC描述符)的描述符在很大程度上提高了標准檢索數據集上的緊湊全局描述符的最新水平,並且在檢索方面的性能比之前在[2,7,22]中提出的深度全局描述符要好得多。除了出色的檢索精度之外,SPoC特性還具有計算效率高、實現簡單和幾乎不需要調優超參數的特點。
重要的是,SPoC特征的性能優於深度卷積特征的Fisher vectors和triangular embedding。這與dense SIFT情況形成了鮮明的對比,在dense SIFT情況下,原始特征的sum pooling不會產生一個具有競爭力的全局描述符。我們進一步研究了深度卷積特征與淺層特征(SIFT)性能不同的原因,表明深度卷積特征具有較高的識別能力和不同的分布特性,因此不需要進行初步的embedding步驟。對這一主張提供了定性解釋和實驗證實。
總體而言,本文介紹並評價了一種新的簡單緊湊的全局圖像描述符,並探討了其成功的原因。在公共檢索基准測試中,描述符的性能優於現有方法。例如,在使用256維表征的Oxford數據集(在查詢過程中使用整張圖像時)上,得到了0.66 mAP的性能。
2. Related work
Descriptor aggregation. 將一組局部描述符(如SIFT)聚合成全局描述符的問題已經得到了廣泛的研究。最著名的方法是VLAD [9], Fisher Vectors[19],以及最近的triangular embedding[10],它構成了最先進的“hand-crafted”特性,如SIFT。
讓我們回顧一下這些方案背后的思想(使用來自[10]的符號)。圖像使用特征集
表示。我們的目標是將這些特性組合成一個有區別的全局表征
。區分性是指具有相同物體或場景的兩幅圖像的表征比不相關的兩幅圖像的表征更相似(如在余弦相似度方面相似)。除了可區分之外,大多數應用程序都偏愛更緊湊的全局描述符,這也是我們在這里工作的重點。因此,根據某些歸一化程序,通過主成分分析(PCA)降低了
的維數。
常見的生成表征的方法包含兩步:主要是embedding(嵌入)和aggregation(聚合)(可選擇性地再跟上PCA操作,一般用來降維)。embedding步驟映射每個個別特征x到一個更高維的向量
。然后實現映射特征
的聚合。聚合的可能選擇是一個簡單的求和操作
,當然也可以使用更先進的方法(如democratic kernel [10])。
現有的框架在映射的方法選擇上有所不同。比如,VLAD預先計算K個centroids
的碼本,然后映射x到向量
,其中k是x最近centroids的數量。Fisher vector嵌入的管道是相似的,除了它使用的是soft probabilistic quantization而不是在VLAD的hard quantization。它還包含關於個別特征的殘差的到嵌入的二階信息。Triangulation Embedding [10] 還使用了聚類centroids,並通過串聯個別特征x和聚類centroids
之間的歸一化差別來嵌入該個別特征x。然后中心化、白化和歸一化embedding
。
嵌入步驟的基本原理是提高個體特征的識別能力。沒有這樣的嵌入,一對自無關的圖片的SIFT特征xi,xj有相當大的機會有一個較大的標量內積<xi,xj>值。這就成為了局部特征之間偶然的false positives匹配的來源,如果數據集足夠大,圖像之間也會發生false positives匹配(因為產生的全局描述符之間的相似性是由對局部特征之間的相似性聚合而來的[3,25])。嵌入方法(·)通常被設計用來抑制這種false positives。例如,VLAD嵌入抑制了碼本中臨近不同centroids的特征對之間的所有匹配(使對應的標量內積為零)。可以對其他嵌入執行類似的分析。
用高維映射抑制false positives有一定的缺點。首先,這種映射還可以抑制局部特征之間的true positives匹配。其次,這種嵌入通常包括學習大量的參數,如果訓練集和測試集的統計數據不同,這些參數可能會發生過擬合。同樣地,由於表征可以是非常高維的,它可能需要具有類似統計數據的保持數據來學習可靠的主成分分析和白化矩陣。為此,[10]提出使用PCA旋轉和power-normalization來代替白化。最后,與更簡單的聚合方案相比,高維嵌入的計算強度更大。
盡管存在這些缺點,但是高維嵌入總是與SIFT這樣的特性一起使用,因為如果沒有它們,生成的全局描述符的識別率就低得令人難以接受。在本文中,我們證明了與SIFT相比,原始深度卷積特征的相似性足夠可靠,無需嵌入即可使用。在非嵌入特性上執行的簡單的sum pooling聚合提供了與高維嵌入相當的性能。消除嵌入(embedding)步驟簡化了描述符,導致更快的計算速度,避免了過度擬合的問題,並且總體上導致了一種新的最先進的用於圖像檢索的壓縮描述符。
Deep descriptors for retrieval. 之前的一些研究已經考慮了使用深度特征進行圖像檢索。因此,開創性的工作[12]給出了利用從全連接層中提取的深度特征進行檢索的定性例子。之后,[2]對這些特征在對相關數據集進行微調和不進行微調的情況下的性能進行了廣泛的評估,總體報道PCA壓縮的深度特征優於傳統的類SIFT特征計算的緊湊描述符。
同時,在[7]中,提出了一種更高效的描述符,它基於提取圖像的不同片段,將它們通過一個CNN,然后使用VLAD-embedding[9]來聚合全連接層的激活。與此相關,[21]的工作報告了很好的檢索結果,它使用了來自CNN全連接層的幾十個特征集,而沒有將它們聚合到一個全局描述符中。
最后,最近的研究[1,22]對最后一個卷積層的sum pooling聚合得到的圖像檢索描述符進行了評估。在這里,我們展示了在最后一個卷積層上使用sum pooling聚合特性會帶來更好的性能。這與將sum pooling聚合解釋為 simplest match kernel [3]的實現是一致的,這在sum pooling的情況下是有缺陷的。
總的來說,與之前的工作相比[2,7,21,1,22],我們顯示了在描述符(SPoC)中大量的設計選擇可以極大地提高描述符的准確性和效率。與這些工作相比,我們還討論和分析了在描述符聚合上與研究主體的連接,並評估了幾個重要的聚合備選方案。
3. Deep features aggregation
在這一節中,我們首先比較深度卷積特征和SIFTs的分布特性,並強調兩者的區別。基於這些差異,我們提出了一種新的全局圖像描述符,它避免了SIFTs所需的嵌入步驟,並討論了幾種與該描述符相關的設計選擇。
在我們的實驗中,深度卷積特征的提取是將一幅圖像 I 通過一個預先訓練好的深度網絡,並考慮到最后一個卷積層的輸出。讓這個層由C個特征圖組成,每個特征圖有高度H和寬度W。然后用一組H×W的c維向量表示輸入圖像I,這是我們所處理的深度卷積特征。
3.1. Properties of local feature similarities
如[10]中分析的那樣,原始SIFT特征的個體相似性是不可靠的,即不相關的圖像patch可以產生非常接近的SIFT特征。深度特征預計會更加強大,因為它們是在監督的方式下從大量數據中學習到的。為了證實這一點,我們以兩個實驗的形式,對計算出的特征的相似性進行了比較。
Experiment 1 觀察三種描述符匹配的patches(圖1),我們按照如下步驟來尋找這些patches:
- 對於Oxford Buildings數據集中的每一張圖像,我們都提取了深度特征和dense SIFT特征。
- 我們通過有着64個成分的Fisher vector embedding來嵌入SIFT特征。
- 對於每個查詢圖像的每種特征類型(deep convolutional, original SIFT, embedded SIFT),我們計算其特征與數據集中所有其他圖像特征之間的余弦相似度。
- 我們從每幅圖像的前10列表中考慮隨機特征對的相似性,並可視化相應的圖像patches(原始和嵌入的SIFT特征為全接受域,深卷積特征為接受域的中心)。
(就是當兩張圖得到的特征相似時,可視化他們之間對應的image patch,看兩張圖是否真的相似)
圖1是通過該過程選擇的特征對的隨機子集(每個Oxford building一個隨機選擇特征對),上面一行對應基於深度卷積特征的匹配,中間一行對應原始dense SIFT,下面一行對應embedded SIFT。正如預期的那樣,深度特征產生的匹配中明顯的false positive要少得多,因為它們通常對應同一對象,對光照/視點變化和小的變化具有明顯的容錯性。基於SIFT的匹配要糟糕得多,而且許多匹配都對應於不相關的圖像patches。利用Fisher vector的SIFT特征的embedding提高了匹配質量,但仍不如深度特征的效果。
Experiment 2. 我們還研究了深度卷積特征和dense SIFTs的高維分布的統計。最重要的是,我們對具有最大范數(norm)的深度特性的分布感興趣,因為這些特性對全局描述符的貢獻最大。在接下來的實驗中,我們也觀察到它們是最具鑒別力的。我們使用sum pooling描述符進行檢索,但我們只聚合了(1)1%的隨機特征(2)1%的具有最大范數的特征。Oxford building數據集[20](1)中的mAP得分只有0.09,遠遠小於(2)中0.34的mAP。這驗證了具有大范數的特征比隨機特征具有更強的辨別能力。
對於不同類型的特征,我們希望調查由其個體相似性產生的匹配的可靠性。為此,我們將每個點到它最近鄰居的距離與到數據集中隨機點的距離進行比較。更詳細地說,我們執行以下操作。從每個查詢圖像中,我們提取十個具有最大范數的深度特征,並為每個深度特征計算到其他圖像所有深度卷積特征的距離。然后我們繪制一個圖來說明到第k個鄰居的距離如何依賴於它的索引k。對於每個查詢特征,距離都通過除以給定特征和來自其他圖像的所有特征之間的距離的中值來標准化。
我們對從不同深度層次的層中提取的三種卷積特征“conv3_1”、“conv4_1”和“conv5_4”執行此步驟,它們來自於OxfordNet[24]。我們也對dense SIFTs進行了這個實驗,盡管在這種情況下,從每張圖像中提取隨機的特征,因為SIFT特征都被相同范數歸一化了。對於所有類型的特征,我們使用200萬個特征的子集作為參考集,每幅圖像使用大約1000個特征。
圖2顯示了所有查詢的平均曲線。它們表明,來自“conv5_4”層的高范數深度卷積特征有少量“非常接近”的近鄰,它們比其他點要近得多。這與SIFTs相反,在SIFTs中,到最近鄰的典型距離與到數據集中隨機描述符的距離要近得多(????這不是一樣的意思嗎?意思應該是說SIFTs的近鄰數量比深度卷積特征的數量多)。這一事實表明,SIFT特征的密閉性信息少得多,它們的強相似性是不可靠的,容易出現意外的false positive匹配。有趣的是,“conv3_1”和“conv4”特征的個體相似性不如“conv5 4”特征的可靠(更深層次的特征具有更可靠的相似性)。
請注意,第二個實驗是無監督的,因為我們在計算距離時沒有考慮匹配的正確性。相反,第二個實驗強調了深度卷積特征和SIFT特征在高維空間分布上的實質性差異。
這兩個實驗的結果都表明,來自最后一個卷積層的深度特征的個體相似性具有更強的辨別能力,這些相似性產生的匹配中的false positive數量應該比SIFTs更小,這是因為匹配更精確(實驗1),也因為高范數深度特征的近鄰更少(實驗2)。當需要將這些特征編碼到全局描述符中時,這就可以繞過高維embedding步驟。
3.2. SPoC design
我們描述了SPoC描述符,它基於沒有embedding的原始深度卷積特征的聚合。我們將從圖像I中計算出的每一個深度卷積特征f 與 該特征在最后一個卷積層生成的map stack中的空間位置對應的空間坐標(x, y)關聯起來。
Sum pooling. SPoC描述符的構造從深度特性的sum pooling開始:
得到的描述符的標量積對應於一對圖像之間最簡單的匹配核[3]:
Centering prior. 對於大多數檢索數據集,感興趣的對象往往位於靠近圖像幾何中心的位置。可以通過一個簡單的加權heuristics來修改SPoC描述符以包含這樣的中心先驗操作。這個heuristics算法給來自特征map stack的中心的特征分配更大的權重,將公式(1)改為:
系數依賴於空間坐標h和w。我們使用的是高斯加權方案:
在這里,我們將σ這個參數設置為中心和最近邊界之間距離的三分之一(這個特殊的選擇來自於統計數據中的“three sigma”經驗法則,盡管它顯然與我們的使用沒有直接關系)。雖然非常簡單,但這個中心先驗為一些數據集的性能提供了實質性的提高,這將在實驗中顯示。
Post-processing.獲得的表征后面跟着L2歸一化,並實現PCA壓縮和白化:
其中MPCA為大小為N×C的PCA矩形矩陣,N為保留維數,si為相關奇異值。
最后,對白化向量進行l2歸一化:
注意,未壓縮的的維數等於對應卷積層中的輸出maps數。C的典型數值是幾百,因此,
具有中等的維度數。因此,在計算一個緊湊描述符時,估計SPoC的主成分分析矩陣和相關奇異值的數據要比Fisher向量或triangulation embedding少得多,因為它們對應的描述符的維數要高得多,而且過擬合的風險更高。下面的實驗以及例如[10]的報告表明,這種過擬合可能是一個嚴重的問題。
4. Experimental comparison
Datasets. 我們在四個標准數據集上評估了SPoC和其他聚合算法的性能。
INRIA Holidays數據集[8](節假日)包含1491個假期快照,對應500個組,每個組具有相同的場景或對象。每個組中的一個圖像用作查詢(所以相同組的其他圖像就是對應的ground truth圖像,如果檢索到的相似圖像是同組的,則檢索正確)。性能報告為對500個查詢計算的mAP。與[2]類似,我們通過將圖像旋轉±90度來手動將其固定在錯誤的方向。
Oxford building數據集[20](Oxford5K)包含了來自Flickr的5062張與Oxford 地標相關聯的照片。固定了對應11個建築物/地標的55個查詢,並提供了關於提供的這11個類在剩余數據集中的ground truth相關性(即標注剩下數據集中哪些圖是其的相似圖片,檢索到這些圖則算檢索正確)。性能是通過對55個查詢使用mean average precision(mAP)來衡量的。
Oxford Buildings dataset+100K [20] (Oxford105K) 這個數據集包含Oxford Buildings數據集和另外100K張來自Flickr的干擾圖像。
University of Kentucky Benchmark dataset [17] (UKB) 包含2550個物體的10200張照片(每個物體4張照片)。每個圖像用於查詢數據集的其余部分。性能則是top 4結果中相同目標圖像的平均數量來表示。
Experimental details. 我們使用由Simonyan和Zisserman[24]訓練的非常深的CNN來提取深度卷積特征。CNNs使用Caffe[11]軟件包。在這個架構中,最后一個卷積層的maps數為C = 512。所有圖像在通過網絡之前都被調整為586×586的大小。因此,最后一層的空間大小為W×H = 37×37。SPoC和其他方法的最終維數為N = 256。
Aggregation methods. 實驗的重點是比較不同的深度卷積特征聚合方案。
我們考慮了簡單sum pooling和max pooling聚合方法。此外,我們還考慮了兩種更復雜的聚合方法,即Fisher vector [19] (Yael[6]實現)和Triangulation embedding [10](authors實現)。我們仔細地調整了這些方法的設計選擇,以便使它們適應新的特性。
因此,對於Fisher vector,我們發現它有利於主成分分析——在嵌入前將特征壓縮到32維。對於Triangulation embedding ,幾個對SIFTs有強烈影響的調整在深度特征的情況下影響相對較小(這包括對初始特征的平方根和去除高能量的成分操作)。在系統比較中我們沒有使用democratic kernel [10],因為它可以應用於所有的embedding方法,而它的計算復雜度在某些情況下是令人望而卻步的。我們觀察到,對於Holidays數據集,它始終如一地將Triangulation embedding性能提高了2%(在PCA之前測量)。
在所有embedding方法之后使用PCA將其降至256維。對於sum pooling(SPoC),接下來是進行白化,而對於Fisher vector和Triangulation embedding方法,我們使用了power normalization來避免過擬合(如[10]所建議的)。雖然[1]建議在max pooling聚合中使用白化方法,但我們觀察到它會降低檢索性能,因此我們沒有在max pooling中使用白化方法。最后對所有表征進行L2歸一化,使用標量積相似度(等同於歐氏距離)進行檢索。除非另有說明,PCA(和白化)的參數是在保留的數據集上學習的(如Paris buildings for Oxford Buildings, 5000 Flickr images for Holidays)。
Results. 表1和表2比較了不同的聚合方法和SPoC的不同變體。
有幾件事值得注意:
- 對於深度卷積特性,sum pooling在一定程度上是最佳的聚合策略。它優於同樣簡單的max pooling,即使存在下面討論的缺陷, 它也優於Fisher vector和Triangulation embedding,這與SIFT特征形成鮮明對比。
- 我們在表2中演示過擬合對不同方法的適應性。我們可以看到,盡管用power normalization代替了白化方法,Fisher vector和Triangulation embedding還是會受到最終PCA的過擬合的影響。當在測試數據集上學習PCA時,它們的性能有了很大的提高。由於這種過擬合效果,使用更簡單的聚合模型實際上是有益的:Fisher vector使用16 vs 256的混合分量,Triangulation embedding 使用1 vs 16的聚類中心。對於SPoC和max-pooling方法,過擬合非常小。
- 對於Triangulation embedding,具有一個centroid的退化配置性能最好(執行了比表中報告的更詳盡的搜索)。即使沒有主成分分析將最終描述符壓縮到256維,我們也觀察到,未壓縮的描述符從使用多個centroid中獲得的性能好處微乎其微,這與我們對深度卷積特征的統計數據的觀察是一致的。
- Center prior方法為Oxford(a lot)、Oxford105K(a lot)和UKB(very little)數據集提供了幫助,但傷害了Holidays數據集一點點的性能。
- 白化對sum pooling比max pooling更有利(例如,max pooling在Oxford數據集使用白化獲得0.48的mAP,而不使用白化則得到0.52的mAP)。顯然,一些流行的特征在圖像中是即常見又突發的,他們對SPoC的貢獻被白化方法抑制了。對於max pooling來說,流行特性的突發性不是什么問題。
- 正如[2]中所觀察到的那樣,PCA壓縮有利於深度描述符。在Oxford數據集中未壓縮的(但仍然白化)SPoC特性得到0.55的mAP(壓縮的效果為0.59 mAP)和在Holidays數據集中得到0.796的mAP效果(壓縮后得到0.802的mAP效果)。
圖3顯示了一些使用SPoC描述符的好的和壞的檢索示例的定性示例。我們還演示了查詢圖像的局部特征與數據集圖像的全局SPoC描述符之間的相似性映射的一些示例。為了生成這些映射,我們使用SPoC構建相同的PCA+白化變換來壓縮局部特征。然后計算查詢圖像的局部特征和數據集圖像的SPoC描述符之間的余弦相似度,並將其可視化為熱圖。這樣的熱圖允許定位一個查詢圖像的區域,類似於在搜索結果中的一個特定的圖像。
表3給出了與最先進的緊湊全局描述符的比較。現有的研究對Oxford數據集使用不同的評估協議,例如[10,25]在檢索前裁剪查詢圖像,而最近的研究[22,2,1,21]使用未裁剪的查詢圖像。這里,我們計算兩種協議中的SPoC描述符。在crop情況下,對於查詢圖像,我們只聚合接受域的中心在查詢邊框內的特征(在基於SIFT的方法中通常是這樣做的)。由於裁剪會丟棄一些上下文信息,因此croped查詢的結果會比較低。
對於所有的評估設置(特別是在查詢沒有被裁剪的情況下),Oxford5K和Oxford105K之間的性能差距非常小。這10萬張Flickr干擾圖片雖然對於hand-crafted特征(即SIFT等方法得到的特征)是“足夠干擾的”,但並沒有真正“干擾”到深度卷積特征,因為它們與Oxford Buildings的圖片太不一樣了。
與[2,7,22]中提到的深度描述符相比,SPoC特性提供了相當大的改進。有幾種方法可以進一步改善結果。首先,將從同一幅圖像的多個尺度提取的特征聚類在一起可以獲得輕微的提升(在我們的初步實驗中大約提升2%的mAP)。通過在一個專門收集的數據集上對原始CNN進行微調,也可以得到類似的改進(與[2]相同)。
5. Summary and Discussion
我們研究了幾種將深度卷積特性聚合為緊湊的全局描述符的備選方案,並提出了一種基於簡單的sum pooling聚合的新描述符(SPoC)方法。雖然SPoC的組件簡單且已知,但我們展示了我們的設計選擇的組合所產生的描述符比以前基於深度特征的全局圖像描述符有了很大的提升,實際上也比以前最先進的緊湊全局圖像描述符有了很大的提升。
除了提出一個具體的描述符外,我們還評估了針對上一代局部特征(SIFT)提出的高級聚合策略,並分析了為什么sum pooling為深度卷積特征提供了一個可行的替代方案。特別地,我們強調了局部卷積特征和dense SIFT之間的區別。我們的經驗表明,深度卷積特征不應該被視為“新的dense SIFT”,因為當切換到新的特征時,針對SIFT等特征所建議的不同計算機視覺技術的相對性能必須被重新評估(而使用深度卷積特征則不需要重新評估)。