A Benchmark on Tricks for Large-scale Image Retrieval

摘要

  關於度量學習已進行了許多研究,而度量學習已成爲實例級圖像檢索的最佳執行方法中的關鍵要素。同時,對可以顯著提高性能的預處理和後處理技巧的關注較少。此外,我們發現大多數以前的研究都使用小型數據集來簡化處理。由於深度學習模型中特徵表示的行爲取決於領域和數據,因此使用適當的檢索技巧組合時,瞭解模型在大規模環境中的行爲非常重要。在本文中,我們廣泛分析了衆所周知的預處理,後處理技巧及其組合對於大規模圖像檢索的效果。我們發現正確使用這些技巧可以顯著改善模型性能,而無需複雜的體系結構或造成損失,正如在2019年Google Landmark檢索挑戰賽上獲得競爭性結果所證實的那樣。

1、引言

  隨着度量學習技術的最新發展,已經進行了積極的研究[26、14、19、42、36],旨在提高圖像檢索的模型性能。先前的大多數方法都集中在通過精心設計損失函數[35,46]和體系結構[22]來學習良好的表示方法,並針對諸如牛津5k [28]和巴黎6k [29]等相對較小規模的數據集評估其性能。這些數據集結構良好,可靠且足夠小,易於處理。但是,在小型數據集上的高性能並不能保證對發現的模型進行泛化。儘管一些研究[25]嘗試使用牛津105k [28]和巴黎106k [29]等數據集來研究大規模圖像檢索,但是我們發現大多數公共大規模數據集並不是真正的大。相反,它們通常由少量查詢和索引圖像以及大量不相關的圖像用作干擾因素。此外,我們很少見有針對包含超過100K查詢的數據集評估性能的工作,而該數據集實際上在查詢和索引大小方面都是大規模的。原因很簡單:從大量索引圖像中查詢超過100K圖像非常耗時且計算量大。       另一方面,在預處理和後處理過程中使用的技巧[40、3、17、26]也對檢索性能有重大影響。 F. Radenovic等。 [30]通過在主要處理之前和之後應用幾種檢索技巧,報告了性能的極大提高。儘管這些技巧很重要,但我們發現很少有論文討論性能最佳的預處理和後處理技巧,尤其是在大型環境中。       在本文中,我們旨在分析當組合使用不同類型的預處理技巧和後處理技巧時,大規模數據集的檢索性能如何變化。爲此,我們設計了一個非常簡單的模型,該模型不使用任何困難的工程(例如網絡手術),並以逐步的方式分析了衆所周知的檢索技巧對性能的影響。如圖1所示,針對技巧和模型的所有可能組合進行了廣泛的實驗,如圖1所示。我們發現,即使使用簡單的推理模型,正確使用衆所周知的檢索技巧也可以顯着提高整體性能。主要貢獻。我們的貢獻有兩個:(1)我們通過大量實驗分析了預處理,後處理技巧及其組合對大規模圖像檢索的影響。 (2)我們證明,通過適當地結合衆所周知的檢索技巧可以實現競爭性改進。我們的流程在Google地標檢索挑戰賽[2019]中排名第8位

2.預處理技巧

   我們使用了兩個大型數據集進行實驗:分別來自2018年和2019年Google地標挑戰的Google地標數據集(GLD)v1 [26]和GLD v2 [2]。表1中顯示了數據集的詳細統計信息。在處理大規模數據集時,可能會出現一些意外問題。第一個問題是如何從此類大規模數據集中消除噪聲。當數據集變得更大時,可能會包含更多的噪音,這些噪音會起到干擾作用。因此,應仔細消除噪聲,因爲訓練數據的質量會顯着影響模型性能[13,14]。第二個問題是如何通過足夠多的試驗來快速評估模型性能以執行大量實驗。與其他著名的地標數據集[30]不同,GLD數據集包含超過70萬個索引圖像和10萬個查詢圖像。此數據量需要大量時間和內存才能進行單個評估。在本節中,我們描述如何通過去除噪聲圖像並構建小規模驗證集來規避這些問題。

2.1 數據清理和實驗

          通過清除訓練集中的噪聲,我們旨在最大程度地增大類間的差異,並最大程度地減少類間的差異。 爲了在沒有監督的情況下解決這個問題,我們使用了一種聚類技術,即基於噪聲應用的密度的空間聚類(DBSCAN)[11],可以用任何聚類算法[32,33]代替。 基於生成的集羣,三種不同類型的乾淨數據集(TR1,TR2和TR3)已構建。 下面介紹了構造每個數據集的詳細過程。TR1: 通過肉眼檢查,我們注意到GLD v1的訓練集是乾淨且可靠的,因此我們按原樣使用數據集進行訓練。 爲了獲得半監督學習效果[4,23],我們在訓練集中添加了虛擬類。 這些虛擬類是GLD v1的測試集和索引集的集羣。 首先,我們使用GLD v1訓練了基線模型,並提取了GLD v1的測試和索引集的功能。 然後,將DBSCAN應用於生成集羣,其中每個集羣都被分配爲新的虛擬類。 爲了清楚起見,我們將結果稱爲TR1。TR2:在GLD v2的索引集中,有許多不是地標的干擾物圖像,例如文檔,肖像和自然場景。 我們旨在在訓練階段使用這些噪聲,以便模型可以增加真實地標與嵌入空間中的噪聲之間的距離。 爲此,我們執行了相同的聚類過程,但還選擇了幾個干擾器聚類作爲虛擬類。 這些干擾項類與TR1組合在一起,我們稱之爲組合數據集TR2。TR3:與GLD v1相比,GLD v2的訓練集具有更多的類和圖像。 同時,它包含大量噪聲類別和圖像。 爲了解決這個問題,我們首先使用在Open Images數據集[21]和iNaturalists數據集[41]上訓練的簡單二進制分類器刪除了自然場景。 然後,將每個類別中的圖像聚類,以便可以將噪聲排除爲異常值。 當在一個類中找到多個羣集時,我們選擇最大的羣集並丟棄其他羣集。 此外,通過查詢每個類的圖像,也可以排除TR2中重複的GLD v2訓練集中的類。

2.2 小規模驗證集

   節省每次評估運行的時間很重要,因爲它決定了我們可以運行多少次試驗來驗證我們的假設。 此外,驗證集應儘可能反映測試數據的特徵,以防止誤導解釋。 爲了獲得更小的數據集,我們從GLD v2中採樣了約2%的訓練圖像,並將樣本分爲測試集和索引集。 因爲GLD v2的測試集包含許多幹擾項圖像,所以我們包含了來自噪聲羣集的虛擬類。 這樣,我們期望驗證集的分佈將類似於GLD v2的測試和索引集。 我們報告驗證分數和提交分數,因爲在驗證分數的基礎上探索了每個模型的最佳性能超參數。

2.3 實驗結果

   圖2顯示了一個示例,說明聚類後有噪聲的地標標籤如何變得乾淨。 原始數據集包括從同一地標內部,外部甚至部分視點拍攝的圖像。 這些類內部差異較大的數據集可能會干擾學習模型中的正確表示形式,尤其是在使用成對排名損失時。 此外,自然場景的圖像也有一些迭代級別的變化,因此也使訓練過程變得困難。 通過選擇一個大的聚類並去除干擾項來完善原始數據集後,我們獲得了一個乾淨的數據集。我們通過區分訓練集和N-pair + Angular模型進行了實驗,並驗證了每種性能。訓練階段的輸入大小爲256×256 px,推理階段的輸入大小爲416×416 px,並具有1024維嵌入。如表2所示,使用TR1進行訓練,其中包含來自測試集和索引集的虛擬類,它通過使用未標記的標籤來提高模型性能。原始訓練集不再有用時的數據。用TR2訓練的模型提供的性能類似於用TR1訓練的模型,因爲數據和類的數量沒有明顯的不同。由於GLD v2的訓練集非常嘈雜,因此我們無法從原始數據集中訓練模型。使用TR3(包括來自GLD v2的純淨訓練集)可以進一步提高性能。總體而言,通過更精細地對數據進行聚類幷包含更多圖像,可以提高驗證和提交性能。實驗還表明,驗證集適合用於驗證和提交的性能類似的模式。

3、學習表示

   在許多情況下,通過使用新穎的體系結構或損失函數設計可以獲得最先進的性能[10、20、22]。 儘管此類方法在GLD上可能顯示出可比的結果,但我們有意設計了一個非常簡單的模型,因爲我們對預處理和後處理技巧對大規模數據集的影響比對推理模型本身更感興趣。 儘管如此,找出常用的合併方法和目標的哪種組合最適合該任務仍然很有趣。 因此,我們用不同類型的合併方法和損失函數訓練了多個模型,這些模型有望對後處理中的特徵集合有所幫助。3.1池化       儘管實現起來很簡單,但從最後一層開始的特徵圖上的合併方法對模型性能的影響仍然很大[5,38,31,39]。 由於這個原因,在[19]中進行了廣泛的實驗,以找到合併方法的最佳組合。 但是,在這裏,我們發現最佳的池化方法取決於域。 最終,本文使用了三種不同的方法(SPoC [5],MAC [38]和GeM [31])進行訓練3.2. Objectives       如表3所示,具有兩個不同目標的模型在訓練數據上具有相似的性能,但趨勢不同。 與N-pair + Angular模型不同,Xent + Triplet模型在TR1上表現出最佳性能。 有了TR3,Xent + Triplet由於Xent損失的波動,無法正確訓練模型。 這可能是因爲Xent損失對數據集的質量敏感,因爲Xent損失可能在優化過程中獲得少量重複的類。輸入大小。 我們通過更改特徵提取步驟中的輸入大小,對錶3中的index-2模型進行了實驗。 結果顯示在圖4(a)中。 它表明,隨着輸入大小的增加,性能會提高,因爲較大的輸入大小會在卷積神經網絡(CNN)模型中生成較大的特徵圖,從而包含更豐富的信息。 但是,性能並不會無限期地提高,而是在某一點開始降低。

4、後處理技巧

   在本節中,我們研究了實例級圖像檢索的衆所周知的後處理技巧,包括功能集合,數據庫擴充(DBA),查詢擴展(QE)和重新排序。 即使每個技巧本身的有效性在許多研究中都得到了充分證明,但我們發現很少有論文通過經驗研究了這些技巧技術應相互結合以最大化性能。 我們旨在找出以不同方式組合技巧的相互影響,下面的部分將詳細介紹。4.1. 多特徵集成       特徵集成是一種傳統的方法,是在許多視覺任務中提高性能的最有代表性的技術[24、20、19]。 儘管特徵集成可以看作是多個特徵的簡單串聯,但是有一個值得考慮的觀點:哪些特徵最適合組合? 在單個模型的基礎上,我們訓練了各種不同的主幹,池化方法,目標,提取了1024維特徵,並連接了一組隨機選擇的特徵。 我們研究了性能如何根據所連接功能的數量而變化。 此外,我們調查了通常使用的“最佳”策略(該策略首先選擇性能最佳的功能)是否確實可以保證在實際測試中獲得更好的結果。4.2. DBA and QE       數據庫端增強用該點自身值及其前k個最近鄰值(k-NN)的加權總和替換數據庫中的每個特徵點[40,3]。 DBA的目的是通過平均最近鄰的特徵點來獲得更魯棒和獨特的圖像表示。我們使用計算得出的權重W執行描述符的加權總和,其中logspace函數生成10a和10b之間的n個點。與DBA類似,由Chum等人介紹的查詢擴展。 [9]是一種通過獲取更豐富的查詢表示來提高圖像檢索質量的流行方法。對於每個查詢,它從數據庫中檢索前k個最近的鄰居,並將檢索到的鄰居與原始查詢。根據需要重複進行此過程,並使用最終的組合查詢來生成已檢索圖像的排名列表。更準確地說,每個查詢的加權和聚合是根據公式1計算得出的權重W執行的。4.3. PCA 白化在檢索任務中,基於CNN的描述符的白化得到了提升[34,5],因爲它們通過共同降低共權重來處理因共現過度計數而引起的問題[18]。 通常,生成模型通過獨立數據集上的主成分分析(PCA)以無監督的方式學習美白。 我們進行了PCA白化(PCAw)通過使用Scikit-learn API中的實現,DBA和QE的4096維特徵可以產生1024維特徵[27]; 然後,我們再次應用l2歸一化。4.4. 重排序       一旦檢索到前k個候選者,重新排列檢索到的候選者的順序就可以提高性能。 與前面提到的技巧相比,重排序技巧的影響相對較小,因爲只有在前k個候選中都找到了真實的圖像時,重排序纔有效。 但是,正確使用重新排名肯定會提高性能。 我們使用兩種獨特的方法進行了重新排序:基於全局描述符的圖搜索和基於局部描述符的局部匹配。

圖搜索。 擴散(DFS)[45,17]是一種在特徵空間中捕獲圖像流形的機制。 它基於離線構造的數據集的鄰域圖有效地搜索流形。 此方法特別改善了對小對象和混亂場景的檢索,這適合Google Landmark Challenge的數據集領域。 使用DFS可以提高性能巨大,許多最新的圖像檢索論文都將其用作最大化基準數據集得分的最後一步。
局部匹配。 我們使用圖像的空間信息進行排序。 給定兩個圖像,提取出對應匹配,並使用RANSAC [12,8]來計算內部數。 由於對所有可能的查詢和索引圖像對執行幾何驗證對於大規模數據而言是昂貴的,因此我們僅對前kd個候選對象進行局部匹配,這是檢索到的結果用於全局描述符。 我們使用了在地標數據集上經過預訓練的DELF [26],並如本文所述,從每張圖像中提取了1K局部特徵。 在實驗中,我們發現不相關的圖像有時會獲得10分以上的匹配分數,從而導致性能下降。 爲了抑制這種情況,我們僅在比賽分數超過某個閾值(σ= 50)時纔對候選圖片重新排名。

4.5 實驗結果

 基於受過訓練的單一模型,我們檢查了上述後處理方法的效果。 表4中列出了功能組合和每個後處理步驟的性能。圖4顯示了相應技巧的超參數的實驗。

4.5.1 多特徵集成

圖4(a)顯示了性能如何根據串聯特徵的數量而變化。 隨着功能數量的增加,我們發現了更好的結果,但是隨着功能的增加,增益會變小。 考慮到計算成本和性能增益,我們建議使用4到6個特徵進行串聯。 我們還調查了“僅最佳”策略是否是找到集成功能最佳組合的最佳方法。 爲了對此進行測試,構造了1,400多個串聯特徵的組合,並在驗證集上進行了評估,如圖4(d)所示。 結果表明,模型的低性能變化與更好的性能(紅線)之間存在相關性。 但是,我們不應該完全信任“僅最佳”策略,因爲點(藍線)的方差不可忽略。

4.5.2 DBA/QE and PCAw

對於使用DBA,QE和PCA處理功能,我們可以考慮兩種方法,具體取決於首先使用哪種技巧:(i)對級聯功能執行PCA,然後是DBA和QE。 或(ii)首先在每個功能上執行DBA和QE,連接功能,然後應用PCA。 我們選擇後者是因爲它始終可以取得更好的效果。 注意,表4中的結果基於這種方式的評估。 在實驗中,我們發現了一個有趣的觀點:這些技巧的工作方式有所不同,具體取決於之前是否將DBA和QE應用於該功能。表4顯示,在DBA和QE之後應用PCA和白化時,所有串聯功能的組合均顯示出一致的性能提升。該結果與不應用圖4(b)中的DBA和QE的結果不兼容,這意味着使用PCA和白化進行尺寸縮減會降低性能。同樣,我們發現最佳特徵維數的結果相互矛盾。對於使用DBA和QE的PCAw,輸出的最佳尺寸爲1024,但是當使用不帶DBA和QE的功能時,相同的參數值會顯着降低性能,如圖4(c)所示。有趣的是,DBA和QE增強了特徵表示的質量,這也使它們對降低維數具有魯棒性。如表4所示,在所有技巧中,DBA和QE的收益最大。迭代DBA和QE執行k次增強,但由於DBA和QE的執行效果最佳,因此我們將k = 1。

4.5.3 重排序

  最近,提出了“檢測到檢索” [37](D2R)的概念,我們使用[37]的界標檢測器來檢測和裁剪感興趣的區域。裁剪區域用於DELF的局部特徵提取[26],在表5中列爲DELF Rerank + D2R。儘管DELF在Oxford5k和Paris6k數據集上取得了競爭性結果,但我們觀察到性能略有提高甚至惡化在對DELF進行大規模排名後x數據集(例如GLD)。 我們還探索了DFS的排名。如圖4(e)所示,使用DBA / QE進行DFS重排序可以通過超參數kq改善性能,而沒有使用DBA / QE進行DFS重排序則無濟於事。這表明通過應用DBA / QE發現的特徵可以在特徵空間中構建更好的圖像流形,以進行圖搜索。此外,我們通過將DFS與空間驗證(SV)相結合進行了實驗,這被稱爲DFS + SV。 DFS + SV將全局描述符之間的餘弦相似性的成對相似性度量替換爲通過DELF重排序獲得的局部描述符的空間匹配分數。表5顯示DFS可以提高性能,而SV則可以降低性能。隨着k-NN圖構造數k的增加,性能得到了改善,但是額外的計算卻使該過程變了個權衡。

4.5.4 谷歌地標檢索大賽

  表6顯示了2019年Google Landmark檢索挑戰賽的最終結果。對於最終提交,我們從表4中選擇了組合J,並對每個要素應用了kA = 1的DBA和QE。 然後將這些特徵連接起來,並以1024的輸出維數應用PCAw。最後,使用DFS + SV(NN = 20K)對排名前100位的候選對象進行了排名,這比僅使用DFS時的性能更高。 通過將著名的檢索技巧與簡單的推理模型正確結合並正確使用超參數,我們的流程在排行榜上排名第8位。 我們沒有使用任何複雜的架構或損失函數。 請注意,挑戰後我們的最終提交分數有所提高,如表5和表6所示。

5、結論

  在本文中,我們研究了大型數據集上預處理和後處理技巧的有效性。 我們的流程使用了諸如數據集清理,特徵集成,DBA / QE,PCAw以及通過圖搜索和局部特徵匹配進行重排序等技巧。 我們表明,學習良好的圖像表示以及應用適當的預處理和後處理技巧都很重要,這些技巧可以顯着提高整體性能。 最終,與基線模型相比,我們最多可以得到mAP @ 100增加10.24的結果。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章