cv論文筆記:SIFT Meets CNN: A Decade Survey of Instance Retrieval

一、基本信息

標題:SIFT Meets CNN:
A Decade Survey of Instance Retrieval
時間:2017
出版源:IEEE Transactions on Pattern Analysis and Machine Intelligence
論文領域:圖像檢索綜述,SIFT,CNN
引用格式:L. Zheng, Y. Yang and Q. Tian, “SIFT Meets CNN: A Decade Survey of Instance Retrieval,” in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 40, no. 5, pp. 1224-1244, 1 May 2018, doi: 10.1109/TPAMI.2017.2709749.
鏈接:https://arxiv.org/abs/1608.01807

二、研究內容

在這裏插入圖片描述
2000年,可以認爲是大部分傳統方法結束的時間節點,當時Smeulders等撰寫了“圖像檢索早期發展的終結”這篇綜述。
2003年,詞袋模型(BoW)進入圖像檢索社區的視野,並在2004年結合了SIFT方法符被應用於圖像分類任務。這後來的近10年時間裏,社區見證了BoW模型的優越性,它給圖像檢索任務帶來了各種提升。
2012年,Krizhevsky等人使用AlexNet神經網絡模型在ILSRVC 2012上取得了當時世界上最高的識別準確率。從那以後,研究的重心開始向基於深度學習特別是卷積神經網絡(CNN)的方法轉移。

各種圖像檢索模型的異同點:
在這裏插入圖片描述

SIFT

在這裏插入圖片描述

使用小型編碼本。

視覺詞彙少於幾千個,緊湊編碼向量在降維和編碼之前生成。

編碼方法

BoW(Bag of words)

BoW方法的核心思想是提取出關鍵點描述子後利用聚類的方法訓練一個碼本,隨後每幅圖片中各描述子向量在碼本中各中心向量出現的次數來表示該圖片,該方法的缺點是需要碼本較大
參考這篇文章解釋

VLAD(vector of locally aggregated descriptors)

VLAD算法可以看做是一種簡化的FV,其主要方法是通過聚類方法訓練一個小的碼本,對於每幅圖像中的特徵找到最近的碼本聚類中心,隨後所有特徵與聚類中心的差值做累加,得到一個k * d的vlad矩陣,其中k是聚類中心個數,d是特徵維數(如sift是128維),隨後將該矩陣擴展爲一個(k*d)維的向量,並對其L2歸一化,所得到的向量即爲VLAD。

算法可以分爲如下幾步:
1.提取圖像的SIFT描述子
2.利用提取到的SIFT描述子(是所有訓練圖像的SIFT)訓練一本碼書,訓練方法是K-means
3.把一副圖像所有的SIFT描述子按照最近鄰原則分配到碼書上(也即分配到K個聚類中心)
4.對每個聚類中心做殘差和(即屬於當前聚類中心的所有SIFT減去聚類中心然後求和)
5.對這個殘差和做L2歸一化,然後拼接成一個K*128的長向量。128是單條SIFT的長度

FV(Fisher Vector)

FV方法的核心思想是利用高斯混合模型(GMM),通過計算高斯混合模型中的均值、協方差等參數來表示每張圖像。該方法的優點是準確度高,但缺點是計算量較大。

基於Fisher Vector的圖像學習的完整過程應該描述爲下面幾個步驟。
選擇GMM中K的大小
1.用訓練圖片集中所有的特徵(或其子集)來求解GMM(可以用EM方法),得到各個參數;
2.取待編碼的一張圖像,求得其特徵集合;
3.用GMM的先驗參數以及這張圖像的特徵集合按照以上步驟求得其fv;
4.在對訓練集中所有圖片進行2,3兩步的處理後可以獲得fishervector的訓練集,然後可以用SVM或者其他分類器進行訓練。參考這篇文章解釋

總結

BOF、FV、VLAD等算法都是基於特徵描述算子的特徵編碼算法,關於特徵描述算子是以SIFT爲基礎的一類算法,該類算法能得到圖片的一系列局部特徵,該類特徵對旋轉、縮放、亮度變化保持不變性,對視角變化、仿射變換、噪聲也保持一定程度的穩定性,但是該類特徵產生的特徵矩陣一般都較爲龐大,因此需要利用特徵編碼算法對其進行編碼,以便後續構建索引,實現圖像檢索。

BOF、FV、VLAD都需要對SIFT得到的特徵進行聚類,得到一個碼本,利用碼本,將原始的N維特徵向量映射到K維的空間中,不同之處在於映射方法不同。

BOF(Bag Of Features):建立碼本時採用K-means,在映射時,利用視覺詞袋量化圖像特徵,統計的詞頻直方圖,該詞頻直方圖即爲編碼後的特徵向量,損失的信息較多。BOF是把特徵點做kmeans聚類,然後用離特徵點最近的一個聚類中心去代替該特徵點,損失較多信息;

FV(Fisher Vector):FV是對特徵點用GMM建模,GMM實際上也是一種聚類,只不過它是考慮了特徵點到每個聚類中心的距離,也就是用所有聚類中心的線性組合去表示該特徵點,在GMM建模的過程中也有損失信息。

VLAD(vector of locally aggregated descriptors):VLAD像BOF那樣,只考慮離特徵點最近的聚類中心,VLAD保存了每個特徵點到離它最近的聚類中心的距離; 像Fisher vector那樣,VLAD考慮了特徵點的每一維的值,對圖像局部信息有更細緻的刻畫; 而且VLAD特徵沒有損失信息。

最似最近鄰檢索

在這裏插入圖片描述

分層k-means(HKM)

=HKM方法在2006年提出,HKM分層次地應用標準k-means方法進行特徵訓練。HKM首先將特徵空間中的點劃分爲幾個族,接着遞歸地將每個族劃分爲更多的羣集。
在每次遞歸時,每個點都要被歸類爲 kˉ\bar{k}個族中的其一個, 聚類樹的深度爲 O(logK)O(\log K) 其中 KK 是期望得到的聚類族數目。HKM的計算複雜度是 O(kˉMlogK),O(\bar{k} M \log K), 其中 MM是訓練樣本數。當KK很大的時候,HKM的計算複雜度遠小於扁平K-means

近似k-means(AKM)

在AMK算法中,分配步驟的花費可以表示爲,其中v是K-D樹中要訪問的最近簇的候選數。因此AKM的計算複雜度與HKM相當,並且當K較大時,明顯小於扁平k-means算法。實驗表明AKM的量化誤差要低於HKM,因此它要要優於HKM算法。在大多數基於AKM的方法中,最似最近鄰檢索算法選用FLANN
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
KD樹

使用大型編碼本。

鑑於BoW直方圖的稀疏性和視覺詞彙的高區分度,在算法中使用了倒排索引和存儲友好型的簽名方式。在編碼本的生成和編碼中使用了類似的方法。

特徵編碼

ANN搜索算法(Approximate Nearest Neighbor)
ANN的方法分爲三大類:基於樹的方法、哈希方法、矢量量化方法。brute-force搜索的方式是在全空間進行搜索,爲了加快查找的速度,幾乎所有的ANN方法都是通過對全空間分割,將其分割成很多小的子空間,在搜索的時候,通過某種方式,快速鎖定在某一(幾)子空間,然後在該(幾個)子空間裏做遍歷。

倒排

在這裏插入圖片描述
倒排是一種提高存儲和檢索效率的算法,它常被用於大/中等規模的編碼本中。

使用中型編碼本。

鑑於BoW的稀疏性和視覺詞彙的低區分度,使用倒排索引和二進制簽名方法。準確率和效率間的權衡是影響算法的主要因素。
中等規模編碼本一般含有10——200k個視覺詞彙。視覺詞彙展現了中等區分能力,同時檢索時也使用了倒排索引。

在中等規模編碼本下視覺詞彙的區分度介於小規模編碼本和大規模編碼本之間。因此,對量化過程中帶來的信息損失需要進行補償。最終,漢明嵌入(HE)這個里程碑式的工作成爲實踐中的主流算法。

匹配問題

  • RANSAC它重複計算每個對應的仿射變換,並通過適合變換的內點數來驗證。RANSAC算法有效地重新排列排名最高的圖像的子集,但存在效率問題。最終,如何在SIFT爲基礎的框架下有效、準確地結合空間信息被廣泛地研究。

  • WGC 弱幾何一致性 。在投票空間中,具有較大值的容器更可能代表真正的轉換。WGC這種方法關注匹配特徵在尺度和方向上的差異,不同空間則被量化到容器中

  • HPM 霍夫金字塔匹配方法,通過分層劃分變換空間來分配匹配結果。HPM在靈活性和準確性之間取得了平衡,非常高效。還可以通過允許單個通信對多個容器進行投票來減少量化損失。HPM和這種方法都在速度上快於RANSAC算法,同時也可以被看作是對和HE一起提出的WGC在旋轉和尺度不變性上的拓展

CNN

使用預訓練的模型

通過在大規模圖像集(例如ImageNet)上預訓練的CNN模型進行單通道傳播提取特徵。使用緊湊編碼/池化技術進行檢索。

預訓練的CNN模型:
在這裏插入圖片描述

CNN濾波器類似局部手工製作的特徵中的檢測器,但是對於高層次和複雜的刺激,CNN濾波器具有不同於SIFT類檢測器的特質。AlxNET已被證明被新的的如具有最大數量參數的VGGNet超越。ResNet和GoogleNet分別贏得了ILSVRC 2014和2015的挑戰,表明CNN網絡的效果和網絡層數成正比。

特徵編碼與池化

  • 一組列特徵類似於SIFT特徵,因此可以直接使用標準編碼方案。常用的方法就是VLAD和FV算法
    池化。
  • CNN特徵與SIFT的主要區別在於前者在每個維度上都有明確的含義,也就是對輸入圖像的特定區域的濾波器響應。直接池化技術也可以產生具有區分度的特徵。

使用微調的模型

在訓練圖像與目標數據庫具有相似的分佈的訓練集上,對CNN模型進行微調。通過單通道CNN模型,運用端到端的方法提取出CNN特徵。這種視覺表示方法提升了模型的區分能力。
用於微調的CNN結構主要分爲兩類:

  • 基於分類的網絡被訓練以將建築分類爲預定義的類別。由於訓練集和查詢圖像之間通常不存在類重疊,因此在AlexNet中如FC6或FC7的學習到的嵌入特徵用於基於歐氏距離的檢索。
  • 驗證網絡可以使用孿生網絡(siamese network)結合成對損失函數(pairwise loss)或三元損失函數(triplet loss),這種方法已經被更廣泛地用於微調網絡任務中

混合型方法。

圖像塊被多次輸入進CNN用於特徵提取。編碼與索引方法和基於SIFT的檢索方法近似。

特徵提取

特徵提取過程包括圖像塊檢測和描述符生成

圖像塊檢測:

  • 第一種檢測器是網格化圖像塊。例如,在《Multi-scale orderless pooling of deep convolutional activation features》中使用了兩個尺寸滑動窗口的策略來生成圖像塊
  • 第二類是具有不變性的關鍵點/區域檢測器。例如高斯差分特徵點在《Learning to compare image patches via convolutional neural networks》中使用。
  • 第三種是區域建議方法,它也同樣提供了潛在對象可能的位置信息。Mopuri等人使用選擇性搜索策略來提取圖像塊,而邊緣區域方法在《Fisher encoded convolutional bag-of-windows for efficient image retrieval and social image tagging》中使用。

描述符生成:
《Descriptor matching with convolutional neural networks: a comparison to sift》證實了CNN一類的區域描述是有效的,並且在出模糊圖像之外的圖像匹配任務繁重要優於SIFT描述符。

徵編碼與索引

混合方法的編碼/索引過程類似於基於SIFT的檢索,如同在小碼本下的VLAD / FV編碼或大碼本下的倒排索引。

基於SIFT和CNN的方法間的關係

第一,混合方法可被視爲從SIFT-到基於CNN的方法的過渡方法,除了將CNN特徵提取爲局部描述符之外,它在所有方面都類似於基於SIFT的方法。由於在圖像塊特徵提取期間需要多次訪問網絡,因此特徵提取步驟的效率可能會受到影響。

第二,單向CNN方法傾向於將SIFT和混合方法中的各個步驟結合起來。在表5中,“預訓練單向網絡”一類方法整合了特徵檢測和描述步驟;在“微調單向網絡”中,圖像級描述符通常是在端到端模式下提取的,因此不需要單獨的編碼過程。在《Deep image retrieval: Learning global representations for image search》中,集成了類似“PCA”層以減少區分維數,進一步完善了端到端的特徵學習。

第三,出於效率上的考慮,特徵編碼的固定長度表示方法越來越流行。它可以通過聚集局部描述符(SIFT或CNN)、直接匯或端到端特徵計算的方法來獲得。通常,諸如PCA的降維方法可以在固定長度的特徵表達中使用,ANN搜索方法(如PQ或哈希)可用於快速檢索

比較與分析

多年來在Holidays(a), Ukbench(b), Oxford5k©數據集上的最優表現:
在這裏插入圖片描述
多年來性能的改進:
在這裏插入圖片描述

基於CNN的檢索模型在圖像例檢索中迅速顯示出其優勢。在2012年AlexNet剛提出時,當時的FC特徵的性能與SIFT模型相比仍然遠不能令人滿意。然而,CNN網絡結構和微調策略的進步,基於CNN的方法的性能迅速提高,在Holidays和Ukbench數據集上極具競爭力,並且在Oxford5k數據集上的指標略低,但它具的內存消耗更小。

三、未來研究方向

面向通用任務的實例檢索

  • 第一,需要引入大規模圖像數據集。因此,社區迫切需要大規模的圖像數據集或一種可以以監督或非監督的方式生成這樣一個數據集的有效方法。
  • 第二,設計新的CNN網絡和學習策略對於充分利用訓練數據具有重要意義。Faster R-CNN在實例檢索中的引入對更精確的對象定位來說是一個良好的開始。此外,在另一個檢索任務中採用微調模型時,遷移學習方法也是非常重要。

面向專用任務的實例檢索

例如地點檢索,行人檢索,車輛檢索,標誌檢索等。在這些任務中的圖像具有特定的先驗知識。例如在行人檢索任務中,循環神經網絡(RNN)可以連接身體部分的描述符,在車輛檢索任務中,在特徵學習期間可以推斷視圖信息,同時牌照圖像也可以提供關鍵信息。

四、結論與思考

作者結論

本篇綜述回顧了基於SIFT和CNN特徵的實例檢索方法。根據編碼本的規模,我們將基於SIFT的方法分爲三類:使用大,中,小規模的編碼本。基於CNN的方法也被分爲了三類:使用預訓練模型,微調模型和混合模型的方法。在每個類別下都對先前的方法進行了全面的調研。從各種方法的演變可以看出,混合方法處於SIFT和CNN方法的過渡位置,緊湊編碼方法越來越流行,並且實例檢索正朝着端到端的特徵學習和提取的方向發展。

通過在幾個基準數據集上收集的實驗結果,對六種方法進行了比較。我們發現CNN微調模型策略在不同的檢索任務上都得到了較高準確率,並且在效率上也具有優勢。未來的研究可能集中於學習更通用的特徵表示或更特定場景的檢索任務。

總結

初步瞭解圖像檢索流程,對比基於SIFT和CNN的實例檢索方法,圖像檢索系統作爲計算機視覺領域的一項關鍵技術,更加魯棒的圖像特徵描述符,更加快速的檢索算法都是我們需要繼續研究的課題

思考

對於文中提到最大卷積激活(MAC),MAC用單個前向傳遞來計算全局描述符不是很理解

參考

參考1SIFT
參考2CNN

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章