天天看點

End-to-End Learning of Deep Visual Representations for Image Retrieval

目錄

代碼:https://github.com/almazan/deep-image-retrieval

1、主要貢獻:

2、Leveraging Large-Scale Noisy Data

4、 Learning to Rank: An End-to-End Approach

5、 Improving the R-MAC Representation

6、Evaluation of the Complete Approach

1、主要貢獻:

1、利用一個大規模并且嘈雜的地标資料集,然後開發一種自動清理方法,産生一個适合深度檢索的訓練集;

2、我們建立在最近的R-MAC區域最大激活描述符(這個是在MAC的基礎上提出的局部區域方法)描述符的基礎上,說明它可以被解釋為一個深度和可微的體系結構,并提出了改進來增強它;

3、我們用Simaese體系結構來訓練這個網絡,然後用一個triplet loss整合三個流;

R-MAC區域最大激活描述符:該方法計算了不同尺度下的多個圖像區域的基于CNN的描述子,這些描述子被彙總成一個固定長度的緊湊特征向量,是以具有一定的尺度和平移魯棒性。這種方法的一個優點是可以在高分辨率下對圖像進行編碼,并且不會扭曲圖像的縱橫比。

Simaese網絡:參考引用部落格,各位請移步->:https://blog.csdn.net/ybdesire/article/details/84072339

End-to-End Learning of Deep Visual Representations for Image Retrieval

圖中兩個模型都是由CNN構成,并且兩個模型的參數值完全相同。不同于傳統CNN的地方,是Siamese網絡并不直接輸出類别,而是輸出一個向量(比如上圖中是128個數值組成的一維向量):

若輸入的圖像X1和X2為同一個人,則上下兩個模型輸出的一維向量歐氏距離較小

若輸入的圖像X1和X2不是同一個人,則上下兩個模型輸出的一維向量歐氏距離較大

是以通過對上下兩個模型輸出的向量做歐氏距離計算,就能得到輸入兩幅圖像的相似度。

Ranking loss:預測輸入樣本之間的相對距離。這個任務經常也被稱之為度量學習(metric learning)。詳細的學習請參考:https://blog.csdn.net/LoseInVain/article/details/103995962/

2、Leveraging Large-Scale Noisy Data

使用的是Landmarks資料集:大概214K張圖像,672個類别;文章中是在此基礎上與oxford5k、paris6k和hoildays資料集進行對比,删除了一些重複的圖像,最終獲得大概:192000張圖像,586個類别;然後再對獲得的資料集進行劃分:

168882張 用于實際的微調訓練
剩下的20668張 用于驗證集

附上這個資料集的連結:https://hyper.ai/datasets/7512    資料集太大了....

Cleaning the Landmarks Dataset:

使用不變關鍵點比對和空間驗證來比較每對圖像,使用SIFT和Hessian仿射關鍵點檢測器和使用first-to-second neighbor ratio rule比對關鍵點;然後用Philbin等人提出的仿射變換模型來驗證所有成對比對;在不損失一般性的情況下,我們将描述單個landmark類的其餘清理過程。一旦我們得到了所有圖像對之間的一組成對分數,我們就構造了一個節點為圖像,邊緣為成對比對的圖。我們修剪得分低的所有邊。然後提取圖的連通分量。它們對應于一個地标的不同側面;見圖1,顯示了聖保羅大教堂兩個最大的連接配接部分。最後,我們隻保留最大的連接配接元件,并丢棄其他元件,以確定類中的所有圖像在視覺上是相關的。這一清潔過程留下約49000個圖像(分為42410個教育訓練圖像和6382個驗證圖像),仍然屬于586個地标中的一個,稱為地标清潔。清理過程在一個32核伺服器上花費了大約1周的時間,在類之間并行。

Bounding Box Estimation:

用學習到的感興趣區域(ROI)選擇器代替R-MAC描述符中的區域均勻采樣方法;

End-to-End Learning of Deep Visual Representations for Image Retrieval
End-to-End Learning of Deep Visual Representations for Image Retrieval

個人感覺這個方法挺好的,篩選出一些有用的圖像,并且進一步準确定位圖像中的圖像;對一些小型資料集可能就不太适合了,方法還是可以借鑒的,學習了;

4、 Learning to Rank: An End-to-End Approach

4.1 The R-MAC Baseline

建議看一下原論文:Particular object retrieval with integral max-pooling of CNN activations.

End-to-End Learning of Deep Visual Representations for Image Retrieval

用點積比較兩幅圖像的R-MAC向量可以解釋為權重多對多區域比對,其中權重取決于聚集區域描述符的範數。

4.2 Learning to Retrieve

Learning with a Classification Loss:

使用交叉熵損失很容易地對地标資料集上的标準分類體系結構(例如VGG16)進行微調,然後使用改進的卷積濾波器作為R-MAC管道的特征提取器,而不是使用原始權重。使用這種方法作為我們的訓練基準,首先,它不直接學習任務尋址、檢索,而是一種代理、分類。第二,它沒有利用R-MAC架構,因為它學習了原始的分類架構,使用了低分辨率的方形裁剪。隻有在訓練結束後,卷積權值才與R-MAC體系結構一起使用。

Learning with a Ranking Loss:

使用基于圖像三元組的Ranking Loss。給定由查詢圖像、與查詢相關的元素和不相關的元素組成的三元組,相關圖像的R-MAC表示更接近于查詢的表示,而不是無關圖像的表示。

設計了一個三流連體網絡體系結構,其中三個流中的每一個産生的圖像表示都被綜合考慮到了損失。該架構如圖3所示。卷積濾波器和完全連接配接層的權重在流之間共享,因為它們的大小與圖像的大小無關。這意味着Siamese體系結構可以處理任何大小和縱橫比的圖像,可以使用測試時使用的相同(高)分辨率的圖像來訓練網絡。

使用如下的Ranking Loss. 設 

End-to-End Learning of Deep Visual Representations for Image Retrieval

 是一個帶有R-MAC描述符 q 的查詢圖像;

End-to-End Learning of Deep Visual Representations for Image Retrieval

 是一個帶有 

End-to-End Learning of Deep Visual Representations for Image Retrieval

 描述符的相關圖像;

End-to-End Learning of Deep Visual Representations for Image Retrieval

 是一個帶有 

End-to-End Learning of Deep Visual Representations for Image Retrieval

 描述符的不相關圖像;然後定義Ranking Loss如下所示:

End-to-End Learning of Deep Visual Representations for Image Retrieval

其中m是用于控制邊距的标量。給定一個産生非零損失的三重态,子梯度計算如下所示:

End-to-End Learning of Deep Visual Representations for Image Retrieval

子梯度通過網絡的三個流進行反向傳播,卷積層和“PCA”層一起更新,shifting 和 fully connected 得到更新。這種方法優化了排名目标。

4.3 Practical Considerations

應該注意一些實際的考慮:

  1. 確定采樣 triplet 産生效果,首先随機選取 N 個訓練樣本,用目前模型提取 N 個訓練樣本的特征,然後計算出所有可能的三元組及其損失。所有産生損失的triplet都會被預選為好的候選項;通過随機抽樣一個均勻分布的 N 個圖像,然後随機選擇25個損失最大的三元組中的一個作為查詢來實作的。每次更新模型時都應該重新計算一組好的候選對象,這非常耗時。在實踐中,我們假設一個給定模型的大多數硬三元組即使模型更新了幾次也仍然是硬的,是以我們隻在模型更新 k 次之後更新一組好的候選對象。在我們的實驗中,我們使用N=5000個樣本和k=64個疊代,每次疊代的批大小為64個三元組。
  2. 第二個要考慮的問題是訓練期間所需的記憶體量,因為我們同時訓練大圖像(較大的一側調整為800像素)和三個流。在使用VGG16架構時,我們在一個12gb記憶體的M40 GPU上一次隻能在記憶體中容納一個三聯。為了對一批有效大小大于1的bs進行更新,我們依次計算和聚合每個三元組的網絡參數損失梯度,實際隻對每個bs三元組進行更新,bs = 64。
  3. 當使用更大的網絡(如ResNet101)時,情況會變得更加複雜,因為我們沒有足夠的記憶體來處理甚至一個三元組。為了避免減小圖像尺寸會導緻圖像細節的丢失,我們提出了一種替代方法,具體在算法1中。這種方法允許我們使用單個流順序處理一個三元組的流,而不是同時使用所有的流。可以在減少訓練圖像大小的情況下訓練深層結構。
End-to-End Learning of Deep Visual Representations for Image Retrieval

4.4 Experiments

本節主要研究不同設定和架構的權重的影響,所有實驗都按照标準的R-MAC政策提取區域。

4.4.1 Experimental Details

在四個标準資料集上測試:Oxford5K、Paris6K、Holidays 和 UKB 資料集。對UKB使用[email protected],對其餘的使用平均平均精度(mAP)。按照标準做法,在Oxford5K和Paris6K資料集中,隻使用查詢感興趣的注釋區域,而在Holidays 和 UKB 資料集中,使用整個查詢圖像。此外,在對Hoildays進行評估時,查詢圖像将從資料集中删除,但不會對Oxford5K、Paris6K和UKB進行評估。按照大多數基于cnn的方法,我們在Hoildays資料集上手動校正圖像的方向,并對校正後的圖像進行評估。為了與不修正方向的方法進行公平比較,我們在最後的實驗中也報告了不修正方向的結果。

對于網絡的卷積部分,采用兩種流行的架構:VGG16 和ResNet101。使用PCA投影對全連接配接層進行初始化,并根據每個區域的歸一化描述符進行計算。所有的後續學習都在地标資料集中進行。

為了用分類進行微調,然後遵循标準訓練和修改訓練集圖像的尺寸,然後随機提取224×224的像素區域。為了使用我們提出的架構進行微調,我們還通過随機裁剪(随機删除圖像每邊5%)來增強我們的訓練資料,然後調整産生的裁剪大小,比如最大寬度為800像素,保留寬度。(其實就是對資料進行增強操作)在測試時間,所有資料庫圖像也被調整大小,使較大的一側為800像素。所有模型采用動量為0.9、學習率為0.001、權重衰減為0.00005的随機梯度下降(SGD)訓練。一旦驗證錯誤停止下降,我們在分類微調時将學習率降低到0.001。在學習排名時,沒有看到降低學習率的任何改善,是以将學習率保持在0.001,直到最後。margin被設定為m = 0.1。

4.4.2 Results

定量評估:我們在表1中報告了網絡卷積部分的兩個可能選擇的結果:VGG16(上)和ResNet101(下)。對于每種架構,我們首先使用R-MAC基線報告性能,其卷積層權重直接取自ImageNet預訓練的網絡,主成分分析是在landmarks -full上學習的。對于學到的模型,使用分類損失或者排名損失在地标資料集上進行微調參數。對于後者,直接使用預訓練的參數。

從表1報告的結果中,我們突出顯示了以下觀察結果。

End-to-End Learning of Deep Visual Representations for Image Retrieval
  • 與在ImageNet上預先訓練的模型相比,在相關資料集上使用原始分類損失的Finetuning已經帶來了顯著的改進,正如Babenko等人(2014)在前三個資料集上觀察到的那樣(盡管采用了不同的架構)。在這種情況下,使用完全标記進行教育訓練或使用清潔标記進行教育訓練不會産生顯著差異。
  • 優化提出的體系結構并降低其排名是最佳的性能政策。對于前三個資料集,使用地标資料集改進我們的模型的權值似乎非常有益。我們隻報告結果學習排名與Landmarks-clean。我們發現這一點至關重要:完全學習地标顯著降低了模型的準确性。
  • 為了利用排名損失在VGG16中獲得好的結果,我們認為重要的是,首先通過訓練地标資料集訓練分類損失來預熱網絡,就像Gordo等人(2016)所做的那樣。然而,當使用最近的ResNet101架構時,這并不是那麼重要:盡管預熱網絡帶來了輕微的改進,最終的結果是相似的。這也可以在圖4中觀察到,圖4中顯示了在資料集Oxford5K上的準确率,針對不同模型初始化的訓練進度。
  • 正如預期的那樣,基于ResNet101的模型優于基于VGG16的模型。然而,這種差距并不像訓練帶來的改善那麼明顯。
End-to-End Learning of Deep Visual Representations for Image Retrieval

Impact of Finetuning on the Neurons:

End-to-End Learning of Deep Visual Representations for Image Retrieval
End-to-End Learning of Deep Visual Representations for Image Retrieval

Computational Cost:總體來說,時間太長,除非你的硬體非常好!具體看論文吧。

5、 Improving the R-MAC Representation

在本節中,提出了幾種修改網絡架構本身的方法。首先,改進了區域池化機制,引入了區域建議網絡(region proposal network, RPN)來預測圖像中最相關的區域,在這些區域中需要提取局部特征(5.1節)。其次,注意到網絡體系結構隻考慮單一的固定圖像分辨率,提出将其擴充為建構一個多分辨率描述符(5.2節)。

5.1 Beyond Fixed Regions: Proposal Pooling

在R-MAC中用于區域池的多尺度網格試圖確定目标被至少一個區域覆寫。然而,這提出了兩個問題。首先,任何網格區域都不可能與感興趣的對象精确對齊。其次,很多區域隻覆寫背景,特别是當檢索對象規模較小時。這是一個問題,因為R-MAC簽名之間的比較可以看作是一個多對多區域比對,是以區域雜波将負面影響性能。增加網格中區域的數量可以提高一個區域與感興趣的對象良好對齊的可能性,但也會增加不相關區域的數量。

提出修改R-MAC架構,以增強其聚焦于圖像相關區域的能力。為此,用訓練有素的區域建議網絡(RPN)來代替剛性網格,以定位圖像中感興趣的區域,類似于Ren等人(2015)的建議機制。這個RPN是使用我們清洗過程的副産品獲得的地标資料集的近似邊界框标注來訓練的。所得到的網絡架構如圖6所示。

End-to-End Learning of Deep Visual Representations for Image Retrieval
End-to-End Learning of Deep Visual Representations for Image Retrieval

Learning the RPN:

End-to-End Learning of Deep Visual Representations for Image Retrieval

5.2 Multi-Resolution

在Tolias等人(2016)提出的原始R-MAC描述符中,圖像被考慮為單一比例。但是,可以考慮從調整到不同分辨率的圖像中提取群組合特征,以便內建來自不同尺度的資訊。其目标是改進資料庫圖像中以不同尺度出現的對象之間的比對和小對象的檢索。

原始R-MAC網絡的一個有趣特點是,不同的輸入圖像大小仍然産生相同長度的描述符。但是請注意,具有不同分辨率的同一圖像的兩個版本将不會産生相同的輸出描述符。網絡的第一部分是完全卷積的,它直接使處理不同大小的輸入,而聚合層将依賴于大小的輸入特征合并成一個固定長度的表示。根據這個想法,提出從以不同尺度調整大小的圖像中提取不同的描述符,然後将它們組合成一個單一的最終表示。在實踐中,我們使用3個尺度,在較大的一側使用550、800和1050像素,保持長寬比。然後分别提取這三幅圖像的描述符。最後,我們對它們進行加和聚合,并對它們進行L2-normalize,以獲得最終的描述符。

這個多分辨率描述符可以在查詢端和資料庫端進行計算。這個過程在特征提取時帶來了額外的計算成本(大約是三種分辨率成本的三倍),但是在搜尋時的成本和存儲成本是相同的。

這是一個權重共享的Siamese網絡,主要差別是使用平均池,而不是最大池化。

5.3 Experiments

在本節中,我們将研究proposal pooling和多分辨率描述符的影響。

Region Proposal Network:

End-to-End Learning of Deep Visual Representations for Image Retrieval

 Multi-Resolution:

End-to-End Learning of Deep Visual Representations for Image Retrieval

6、Evaluation of the Complete Approach

在本節中,将所獲得的表示與最新技術進行比較。我們的最後一個方法內建了另外兩個改進:查詢擴充(QE)和資料庫端特征增強(DBA)。

6.1 Query Expansion

給定查詢圖像進行查詢,然後檢索Top-K個結果。然後對K個結果進行空間驗證,将與查詢不比對的結果丢棄。将剩下的查詢結果與原始查詢一起彙總和重新規格化。最後使用組合的描述符進行第二次查詢,生成最終的檢索圖像清單。

雖然查詢擴充可以很大程度上提高精确度,但是會增加額外的查詢時間:空間驗證和第二次查詢操作。

本文中沒有執行空間驗證(但是通常需要通路本地關鍵點描述符,本文沒有);是以的話,也就隻有第二個查詢會使得時間翻倍。

6.2 Database-Side Feature Augmentation

DBA通過自身和它的鄰居的組合替換資料庫中每一張圖像的标簽;主要目的就是通過利用它鄰居的特征來提高圖像表示的品質。由于不使用空間驗證,隻對最近的K個鄰居進行求和聚合,就像在查詢擴充的情況下一樣。可以根據鄰居的排名總和進行權重。使用如下權重方案:

End-to-End Learning of Deep Visual Representations for Image Retrieval

其中 r 代表鄰居的排名;k 代表所有鄰居的數目。

同樣DBA也會增加資料庫的大小和查詢時間。真正耗費時間的是在尋找最近的鄰居中。并且這個過程一般都是線下完成的,太耗費時間了!!!

6.3 Experiments

6.3.1 Evaluation of QE and DBA

End-to-End Learning of Deep Visual Representations for Image Retrieval
End-to-End Learning of Deep Visual Representations for Image Retrieval

6.3.2 Comparison with the State of the Art

一共在四個資料集上進行驗證對比:

Oxford 5k

Paris 6k

Oxford 105k

Paris 106k

上述四個資料集網上都能下載下傳到,我就不贅述了!

表格4列出來一些對比:第一部分的說明如下:

在holidays資料集上,通過手動旋轉糾正圖像的方向;如果不執行這個操作,準确率會從94.8下降到90.3,但是仍然比現有的技術效果好;

不用使用oracle來旋轉資料庫映像,可以自動旋轉查詢映像并發出三個不同的查詢(原始查詢、查詢旋轉90度和查詢旋轉270度)。一個資料庫圖像的得分是通過三個查詢獲得的最大得分。這使得查詢過程慢了3倍,但是在沒有oracle幹預的情況下将準确率提高到了92.9。

使用ResNet101代替VGG16重新實作了R-MAC基線。雖然在使用ResNet101時精度的提高是不可忽略的,但通過訓練模型獲得的精度仍然要高得多(在Oxford5K中,訓練時的69.4和84.1,使用單或多分辨率設定)。這一差距突出了設計良好的體系結構和有相關資料的完整的端到端訓練的重要性,所有這些都是為圖像檢索的特定任務量身定做的。

End-to-End Learning of Deep Visual Representations for Image Retrieval

表4的第二部分顯示了不必依賴全局表示的最新方法的結果。大多數方法的特點是比本文的方法占用更大的記憶體(如:

Tolias and Jégou (2015), Tolias et al. (2016), Danfeng et al.(2011), Azizpour et al. (2015). );這些方法在運作時執行代價高昂的空間驗證,通常需要在資料庫中為每個圖像存儲數以千計的本地描述符(Tolias and Jégou 2015;Li et al. 2015;Mikulik et al.2013).;

它們中的大多數還執行查詢擴充(QE)。為了在同等條件下比較,還使用了QE和使用QE和DBA方法進行對比。僅使用QE帶來的改進隻有同時使用QE和DBA時的一半左右,并且避免了對資料庫的任何預處理。盡管不需要在運作時進行任何形式的空間驗證,該方法在所有資料集上都有很大的改進。特别是,性能在5到14點MAP領先的所有資料集的競争者。

文獻中最好的方法(Tolias and Jegou 2015);由于需要大量的存儲記憶體和昂貴的驗證,是以很難擴充。例如,Tolias和Jegou(2015)的方法需要一個緩慢的空間驗證,每次查詢耗時超過1秒(不包括描述符提取時間)。如果沒有空間驗證,他們的方法會丢失5個mAP點,而且每次查詢仍然需要大約200毫秒。Tolias等人(2016)的方法更具可伸縮性,但仍需要額外的空間驗證階段,該階段基于存儲許多資料庫圖像的本地表示,盡管使用了先進的壓縮技術,但最終會比我們的方法占用更大的記憶體。相比之下,我們的方法隻計算兩個矩陣向量的乘積(如果不執行QE,隻計算一個),這是非常有效的。該操作在不到一秒的時間内計算數百萬次圖像比較。在不進行任何壓縮的情況下,我們的方法需要為每張圖像存儲2048個浮點數,即8 kb,但是這種表示可以大幅壓縮而不會造成很大的精度損失,我們将在下一節中介紹。最後,我們想要指出,我們的方法使用一個通用模型來計算我們學到的形象代表對所有測試資料集對比。

在UKB資料集使用該模型。該方法在沒有QE和DBA的情況下獲得3.84的[email protected],在有QE和DBA的情況下獲得3.91的[email protected]。注意,訓練略微降低了我們在UKB上的性能(表1)。這是由于我們的訓練集(地标圖像)和UKB圖像(日常生活項目)之間的差異造成的。下降仍然是邊際的,這表明我們的方法可以很好地适應其他檢索上下文。

6.3.3 Short Image Codes with PCA and PQ

使用主成分分析(PCA)或産品量化(PQ)壓縮我們的2048維圖像描述符;在這兩種情況下,我們在沒有标記的圖像上學習詞彙表(PCA投影或PQ碼本),并用我們學習到的表示進行編碼。

End-to-End Learning of Deep Visual Representations for Image Retrieval

6.4 Qualitative Results

End-to-End Learning of Deep Visual Representations for Image Retrieval

繼續閱讀