SIFT與CNN的碰撞:萬字長文回顧圖像檢索任務十年探索歷程
翻譯&編輯:李中梁
前言
本文是《SIFT Meets CNN: A Decade Survey of Instance Retrieval》的下篇。在上 篇中概述了圖像檢索任務極其發展歷程,介紹了圖像檢索系統的基本架構和設計難點,詳細展示了基於圖像局部特徵(以SIFT為代表)的檢索流程以及關鍵環節的核心演算法。
在下篇中將介紹基於CNN特徵的圖像檢索系統的流程及關鍵問題,並在幾個常見數據集上測試六個經典檢索系統的性能。最後文章將對圖像檢索領域的發展趨勢進行展望。
這篇刊登在 TPAMI 2018年5月刊上的綜述《SIFT Meets CNN: A Decade Survey of Instance Retrieval》全面調研了十多年來圖像檢索任務中所使用的圖像編碼、檢索演算法,並對比了各種方法在各大數據集上的實驗結果,旁徵博引,內容詳實。如果您剛接觸圖像檢索領域,可以通過本篇文章摸清其概貌;如果您在領域內深耕多年,也可以在本文中查漏補缺,裨益良多。
TPAMI是計算機視覺領域頂級期刊,此文的質量也不必多言,我在此斗膽將這篇綜述加以整理,翻譯成文,若有不當之處還望指出。
標題:
當SIFT邂逅CNN:圖像檢索任務跨越十年的探索歷程
作者:
Liang Zheng, Yi Yang, and Qi Tian
4 基於CNN的圖像檢索系統
基於CNN的圖像檢索方法近年來不斷被提出,並且在逐漸取代基於手工檢測器和描述符的方法。在這篇綜述中,基於CNN的方法被分為三類:使用預訓練的CNN模型,使用微調的CNN模型以及使用混合模型。前兩類方法使用單向傳遞網路來提取全局特徵,混合模型方法可能需要多個網路傳遞。如圖2所示(譯者註:由於圖2在上篇中,因此摘取到本文中方便閱讀)。
圖2:基於SIFT特徵與CNN特徵的圖像檢索流程
4.1 使用預訓練CNN模型的圖像檢索系統
由於預訓練CNN模型是單通模式,因此這種方法在特徵計算中非常高效。考慮到傳輸特性,它的成功在於特徵提取和編碼步驟。我們將首先描述一些常用的數據集和網路進行預訓練,然後進行特徵計算。
4.1.1 預訓練的CNN模型
表2:可供使用的預訓練CNN模型
流行的CNN網路結構。AlexNet,VGGNet,GoogleNet以及ResNet這幾個CNN網路適用於特徵提取,詳見表2.簡單來說,CNN網路可以視為一系列非線性函數的集合,它由如卷積,池化,非線性等多個層組成。CNN是一個分層次的結構。自網路的底層到頂層,圖像經過濾波器的卷積,同時這些圖像濾波器的感受野隨增長而增加。同一層的濾波器尺寸相同但是參數不同。AlxNet是這些網路中最早被提出的的,它有五個卷積層和三個全連接(FC)層。它的第一層大小96個11×11×3的濾波器,在第五層中有256個大小為3×3×192的濾波器。Zeiler等人觀察到濾波器對某些視覺模式十分敏感,這些模式從底層的低級的圖像紋理演變到頂層的高級的圖像目標。對於低層次和簡單的視覺刺激,CNN濾波器類似局部手工製作的特徵中的檢測器,但是對於高層次和複雜的刺激,CNN濾波器具有不同於SIFT類檢測器的特質。AlxNET已被證明被新的的如具有最大數量參數的VGGNet超越。ResNet和GoogleNet分別贏得了ILSVRC 2014和2015的挑戰,表明CNN網路的效果和網路層數成正比。如果要調研全部這些網路超出了本文的範圍,我們建議讀者參閱《Imagenet classification with deep convolutional neural networks》,《Return of the devil in the details: Delving deep into convolutional nets》和《Very deep convolutional networks for large-scale image recognition》中的細節。
用於預訓練模型的數據集。一些大規模的識別數據集被用於CNN網路的預訓練。在其中,ImageNet數據集常被研究員拿來使用。它包含1000個語義類的120萬個圖像,並且通常被認為是具有普適性的。用於預訓練模型的另一個數據集是PASES-205,它的數據規模是ImageNet的兩倍但圖像種類卻要比ImageNet少五倍。它是一個以場景為主的數據集,描繪了各種室內場景和室外場景。在《Learning deep features for scene recognition using places database》中,混合了ImageNet和PASES-205的數據集也同樣會被拿來用於模型的預訓練。HybridNet在《Going deeper with convolutions》,《Deep residual learning for image recognition》,《Factors of transferability for a generic convnet representation》和《A practical guide to cnns and fisher vectors for image instance retrieval》中被用於實例檢索任務的評估。
遷移問題。最近的一些工作綜合評估了各種CNN網路在實例檢索任務中的表現,模型遷移是大家都比較關心的一個問題。在《Factors of transferability for a generic convnet representation》中將實例檢索任務認為是距離原始數據集最遠的(計算機視覺)目標。首先,在模型遷移過程中,從不同層提取的特徵表現出不同的檢索性能。實驗表明高層網路的泛化能力要低於較低層的網路。例如,在ImageNet上預訓練的網路AlexNet表明,FC6、FC7和FC8在檢索精度上呈遞減順序。《Particular object retrieval with integral max-pooling of cnn activations》和《Good practice in cnn feature transfer》也指出,當使用適當的編碼技術時,AlexNet和VGGNet的pool5層特徵甚至優於FC6層特徵。其次,當原始的訓練集不同時,模型的準確率也會受到影響。例如,Azizpour等人指出HybridNet在Holidays數據集上展現出的性能要劣於PCA。他們同樣發現在ImageNet上預訓練的AlexNet模型在包含常見物體而非建築場景圖像的Ukbench數據集上的表現要好於PlacesNet和HybridNet(譯者註:AlexNet,PlacesNet和HybridNet預訓練模型使用的訓練集不同)。因此,當使用預訓練的CNN模型時,源和目標的相似度在實例檢索中起著至關重要的作用。
4.1.2 特徵提取
FC描述符。最直接的想法就是網路的全連接層(FC layer)提取描述符,在AlexNet中就是FC6或FC7中的描述符。FC描述符是在與輸入圖像卷積的層之後生成的,具有全局表示性,因此可以被視為全局特徵。它在歐幾里德距離下產生較好的檢索精度,並且可以使用指數歸一化來提高檢索精度。
中間局部特徵。許多最新的檢索方法專註於研究中間層的描述符。在這種方法中,低層網路的卷積核用於檢測局部視覺模式。作為局部檢測器,這些濾波器具有較小的感受野並密集地應用於整張圖像。與全局FC特徵相比,局部檢測器對於諸如截斷和遮擋的圖像變換更魯棒,其方式類似於局部不變數檢測器。
局部描述符與這些中間局部檢測器緊密耦合,換而言之,它們是輸入圖像對這些卷積運算的響應。另一方面,在卷積運算後等到的激活圖層可以看做是特徵的集成,在這篇綜述中將其稱為「列特徵」。例如,在AlexNet中第一層有個檢測器(卷積濾波器)。這些濾波器產生了張大小為的熱力圖(在最大池化後)。熱力圖中的每個像素點具有大小為的感受野,同時記錄了圖像對濾波器的響應。因此列特徵的大小是,它可以看作是對原始圖像中某個圖像塊的描述。該描述符的每個維度表示相應檢測器的激活程度,並且在某種程度上類似於SIFT描述符。列特徵最早出現在《Visual instance retrieval with deep convolutional networks》中,Razavian等人首先在分好塊的特徵圖上進行最大池化,然後將它們連接在所有過濾器上,最終生成列特徵。在《Hypercolumns for object segmentation and fine-grained localization》中,來自多層的列特徵被連接形成「超列」(hypercolumn)特徵。
4.1.3 特徵編碼與池化
當提取列特徵時,圖像由一組描述符表示。為了將這些描述符聚合為全局表示,目前採用了兩種策略:編碼和直接池合併(如圖2所示)。
編碼。一組列特徵類似於一組SIFT特徵,因此可以直接使用標準編碼方案。常用的方法就是VLAD和FV演算法,兩個演算法的簡要介紹可以參加本文3.3.2節。一個里程碑式的工作發佈於《Exploiting local features from deep networks for image retrieval》,文中後首次將列特徵用VLAD演算法編碼。這個想法後來擴展為CNN的微調。BoW編碼同樣也可以使用,具體工作可以參見《Hybrid multi-layer deep cnn/aggregator feature for image classification》。每個層內的列特徵被聚集成一個BoW向量,然後跨層連接。《Bags of local convolutional features for scalable instance search》是固定長度表示的一個例外,這篇文章將列特徵用大小為25K的碼本量化,還採用了倒排索引結構來提升效率。
池化。CNN特徵與SIFT的主要區別在於前者在每個維度上都有明確的含義,也就是對輸入圖像的特定區域的濾波器響應。因此,除了上面提到的編碼方案之外,直接池化技術也可以產生具有區分度的特徵。
這方面的一項里程碑工作包括Tolias等人提出的最大卷積激活(MAC)。在沒有扭曲或裁剪圖像的情況下,MAC用單個前向傳遞來計算全局描述符。特別地,MAC計算每個中間特徵映射的最大值,並將所有這些值串聯在一個卷積層內。在其多區域版本中,使用積分圖演算法和最似最大運算元進行快速計算。隨後局部的MAC描述符隨著一系列歸一化和PCA白化操作被一起合併。我們在本次調研中也注意到了其他一些工作同樣也採用了相似的思想,在中間特徵映射上採用最大或平均池化,其中Razavian等人的《Visual instance retrieval with deep convolutional networks》是打開先河的工作。同時大家也發現最後一層卷積層(如VGGNet的pool5)在池化後達到的準確率要高於FC描述符以及其他卷積層。
除了直接特徵池化,在池化之前給每個層內的特徵圖分配一些特定的權重也是有益的。在《Aggregating local deep features for image retrieval》中,Babenko等人提出「目標對象往往出現在圖像中心」這樣一個先驗知識,並在總池化前對特徵圖施加一個2-D高斯掩膜。Xie等人在《Interactive: Inter-layer activeness propagation》中改進了MAC表示法,他們將高層語義和空間上下文傳播到底層神經元,以提高這些底層激活神經元的描述能力。Kalantidis等人使用了一個更常規的加權策略,他們同時執行特徵映射和信道加權以突出高激活的空間響應,同時減少異常突發情況的影響。
4.2 使用微調CNN模型的圖像檢索系統
雖然預先訓練的CNN模型已經取得了令人驚嘆的檢索性能,但在指定訓練集上對CNN模型進行微調也是一個熱門話題。當採用微調的CNN模型時,圖像級的描述符通常以端到端的方式生成,那麼網路將產生最終的視覺表示,而不需要額外的顯式編碼或合併步驟。
表3:用於微調網路方法的實例檢索級的數據集統計
4.2.1 用於微調網路的數據集
微調網路時使用的數據集對學習高區分度的CNN特徵具有至關重要的作用。ImageNet僅提供了圖像的類別標籤,因此預訓練的CNN模型可以對圖像的類別進行分類,但卻難以區分同一類的圖像。因此要面向任務數據集進行CNN模型微調。
近年來用於微調網路方法數據集統計在表3中。數據集主要集中於建築物和普通物體中。微調網路方向一個里程碑式的工作是《Neural codes for image retrieva》。這篇文章通過一個半自動化的方法收集地標數據集:在Yandex搜索引擎中自動地爬取流行的地標,然後手動估計排名靠前的相關圖像的比例。該數據集包含672類不同的地標建築,微調網路在相關的地標數據集,如Oxford5k和假日數據集上表現優異,但是在Ukbench數據集(包含有普通物體)上性能降低了。Babenko等人也在含有300個多角度拍攝的日常物品圖像的多視圖RGB-D數據集上對CNN模型進行了精細調整,以提高在Ukbench數據集上的性能。地標數據集後來被Gordo等人使用,他們使用基於SIFT匹配的自動清洗方法後再微調網路。在《Cnn image retrieval learns from bow: Unsupervised fine-tuning with hard examples》中,Radenovi等人利用檢索和運動結構的方法來構建三維地標模型,以便將描述相同建築的圖像進行分組。使用這個標記的數據集,線性判別投影方法(在表5中表示為)優於先前的白化方法。另一個名為Tokyo Time Machine的數據集使用谷歌街景時間機器工具來收集圖像,谷歌提供的這個工具可以提供同一地點不同時間的圖像。上述的大部分數據集主要關注了地標圖像,而Bell等人則建立了一個由傢具組成的產品數據集,通過開發眾包流程來繪製現場的目標和相應產品之間的連接。對所得到的查詢集進行微調也是可行的,但是這種方法可能不適合於新的查詢類型。
4.2.2 微調的網路
用於微調的CNN結構主要分為兩類:基於分類的網路和基於驗證的網路。基於分類的網路被訓練以將建築分類為預定義的類別。由於訓練集和查詢圖像之間通常不存在類重疊,因此在AlexNet中如FC6或FC7的學習到的嵌入特徵用於基於歐氏距離的檢索。該訓練/測試策略採用在方框中,其中最後的FC層被修改為具有對應於地標數據集中類的數目的672個節點。在《Neural codes for image retrieval》中採用訓練/測試策略,其網路最後的FC層被修改為672個節點,對應於地標數據集中類別數目。
驗證網路可以使用孿生網路(siamese network)結合成對損失函數(pairwise loss)或三元損失函數(triplet loss),這種方法已經被更廣泛地用於微調網路任務中。在《Learning visual similarity for product design with convolutional neural networks》中採用了基於AlexNet的孿生網路和對比損失函數。在《Cnn image retrieval learns from bow: Unsupervised fine-tuning with hard examples》中Radenovi′c等人提出用MAC成代替全連接層。更進一步地,可以通過建立的3維建築模型挖掘訓練對。基於共同觀測的3D點雲(匹配的SIFT特徵)的數目來選擇正例圖像對,而CNN描述符中距離較小的那些圖像對被認為是負例樣本。這些圖像輸入到孿生網路中,並且用正則後的MAC層輸出計算對比損失函數。與《Cnn image retrieval learns from bow: Unsupervised fine-tuning with hard examples》同時進行的一項工作是《Deep image retrieval: Learning global representations for image search》,Gordo等人在Landmark資料庫上對三元損失網路和區域提取網路進行微調。《Deep image retrieval: Learning global representations for image search》這項工作的的優越性在於物體其定位能力,它很好地在特徵學習和提取步驟中排除了圖像背景。在這兩項工作中,微調模型在landmark,OxFoD5K、PARIS6K和Holidays數據集上表現出了最先進的精度,以及在UKBayes數據集上表現出良好的泛化能力(將表5)。在《Netvlad: Cnn architecture for weakly supervised place recognition》中,在最後一個卷積層中插入一個類似VLAD編碼層,通過反向傳播進行訓練。與此同時,設計了一個新的三元損失函數來利用弱監督的Google Street View Time Machine數據。
4.3 基於CNN模型的混合式方法
混合式方法中使用多網路傳遞方式。許多圖像塊從輸入圖像中獲得並被輸入網路中進行特徵提取,隨後進行編碼/池化。由於「檢測器+描述符」的方式和基於SIFT的方法很相似,因此我們稱其為「混合式」方法。這種方法的效率通常比單通傳遞要低。
4.3.1 特徵提取
在混合方法中,特徵提取過程包括圖像塊檢測和描述符生成。對第一步而言,主要有三種區域檢測器。第一種檢測器是網格化圖像塊。例如,在《Multi-scale orderless pooling of deep convolutional activation features》中使用了兩個尺寸滑動窗口的策略來生成圖像塊。在《Cnn features off-the-shelf: an astounding baseline for recognition》中首先對數據集進行裁剪和旋轉,然後將其劃分為不同尺度的圖像塊。第二類是具有不變性的關鍵點/區域檢測器。例如高斯差分特徵點在《Learning to compare image patches via convolutional neural networks》中使用。MSER區域檢測器在《Descriptor matching with convolutional neural networks: a comparison to sift》中被使用。第三種是區域建議方法,它也同樣提供了潛在對象可能的位置信息。Mopuri等人使用選擇性搜索策略來提取圖像塊,而邊緣區域方法在《Fisher encoded convolutional bag-of-windows for efficient image retrieval and social image tagging》中使用。在《Faster r-cnn features for instance search》中使用區域建議網路(RPN)來對目標進行定位。
《Descriptor matching with convolutional neural networks: a comparison to sift》證實了CNN一類的區域描述是有效的,並且在出模糊圖像之外的圖像匹配任務繁重要優於SIFT描述符。對於給定的圖像塊,混合CNN方法通常使用全連接層或池化的方法來整合CNN特徵,相關文獻對此均有研究。這些研究從多尺度的圖像區域中提取4096維FC特徵或目標建議區域。另一方面,Razavian等人還在最大池化後採用中間描述符來作為區域描述符。
上述方法採用預訓練模型進行圖像塊特徵提取。以手工檢測器為基礎,圖像塊描述符也可以通過有監督或無監督方式進行CNN訓練學習,這相對於之前關於SIFT描述符學習的工作有所改進。Yi等人進一步提出了一種在單個流程中集成了區域檢測器、方向估計和特徵描述符結果的端到端學習方法。
4.3.2 特徵編碼與索引
混合方法的編碼/索引過程類似於基於SIFT的檢索,如同在小碼本下的VLAD / FV編碼或大碼本下的倒排索引。
VLAD/FV編碼過程緊隨SIFT特徵提取後,在上文已經詳細描述過這樣的流程,不再贅述。另一方面,有一些工作研究探索了圖像塊的CNN特徵的倒排索引。同樣,在SIFT方法流程中諸如HE之類的編碼方法也被使用。除了上述提到的編碼策略,我們注意到《Cnn features off-the-shelf: an astounding baseline for recognition》,《Visual instance retrieval with deep convolutional networks》,《Image classification and retrieval are one》這些工作提取每個圖像的多個區域描述符進行多對多匹配,這種方法稱為稱為「空間搜索」。該方法提高了檢索系統對平移和尺度變化的魯棒性,但可能會遇到效率問題。另一種使用CNN最高層特徵編碼的策略是在基於SIFT編碼(如FV)的最後面建立一個CNN結構(主要由全連接層組成)。通過在自然圖像上訓練一個分類模型,中間的全連接層可以被用來進行檢索任務。
4.4 討論
4.4.1 基於SIFT和CNN的方法間的關係
在本篇綜述中,我們將現有的文獻分為六個精細的類,表1和表5總結了六個類別的差異和代表性作品。我們的觀察結果如下。
第一,混合方法可被視為從SIFT-到基於CNN的方法的過渡方法,除了將CNN特徵提取為局部描述符之外,它在所有方面都類似於基於SIFT的方法。由於在圖像塊特徵提取期間需要多次訪問網路,因此特徵提取步驟的效率可能會受到影響。
第二,單向CNN方法傾向於將SIFT和混合方法中的各個步驟結合起來。在表5中,「預訓練單向網路」一類方法整合了特徵檢測和描述步驟;在「微調單向網路」中,圖像級描述符通常是在端到端模式下提取的,因此不需要單獨的編碼過程。在《Deep image retrieval: Learning global representations for image search》中,集成了類似「PCA」層以減少區分維數,進一步完善了端到端的特徵學習。
第三,出於效率上的考慮,特徵編碼的固定長度表示方法越來越流行。它可以通過聚集局部描述符(SIFT或CNN)、直接匯或端到端特徵計算的方法來獲得。通常,諸如PCA的降維方法可以在固定長度的特徵表達中使用,ANN搜索方法(如PQ或哈希)可用於快速檢索。
4.2.2 哈希與實例檢索
哈希方法是最似最近鄰問題的主流解決方案。它可以被分類類為局部敏感哈希(LSH)演算法和哈希學習方法。LSH是數據無關的且常通過學習哈希來獲得更優異的性能。對於學習哈希方法,最近的一項調研《A survey on learning to hash》將其歸類為量化和成對相似性保留這兩類。我們在3.3.2節已經詳細討論過量化方法熱,不再贅述。成對相似性保留方法包括一些常用的手工設計哈希方法,如譜哈希,LDA哈希等。
近年來隨著深度網路的發展,哈希方法也從手工設計的方式轉變到受監督的訓練方式。這些方法將原始圖像作為輸入,並在二值化之前生成學習的特徵。然而,這些方法大多集中於圖像分類式的檢索任務,與本次調研所中討論的實例圖像檢索不同。實例檢索任務中,當可以收集到足夠的訓練數據時(例如建築和行人和數據)時,深度散列方法可能是至關重要的。
5 實驗比較
5.1 圖像檢索數據集
在本次調研中使用了五個流行的實例檢索數據集,這些數據集的統計數據如表4所示。
表4:流行的實例檢索數據集統計
Holidays數據集由Jégou等人從個人假日相冊中收集,因此圖像包含各種各樣的場景。該資料庫由500組1,491幅相似圖像組成,每組圖像有一條查詢記錄,共計500條。除了《Efficient representation of local geometry for large scale object retrieval》和《Learning a fine vocabulary》,大多數基於SIFT的方法手動地將圖像旋轉成直立方向。最近許多基於CNN的方法也使用了旋轉版的Holidays數據集。在表5中這兩個版本數據集上的結果用」/「間隔,旋轉圖像可以帶來2%-3%的mAP值。
Ukbench數據集包括10,200種不同內容的圖像,如物體、場景和CD封面。所有圖像被分為2,550組,每個組有四個圖像描述相同的物體/場景,在不同的角度,照明,形變,等情況下的表現。該數據集中的每個圖像依次作為查詢記錄,因此有10,200條查詢記錄。
Oxford5k數據集用牛津11個地標名從Flickr網站爬取共計5062幅圖像組建數據集。該數據集通過手繪邊界框為每個地標的定義五個查詢記錄,從而總共存在55個感興趣區域(ROI)查詢記錄。每個資料庫圖像被分配了好的,還可以的,垃圾的,或壞的四個標籤之一。前兩個標籤表示與查詢的感興趣區域是匹配的,而「壞」表示不匹配。在糟糕的圖像中,只有不到25%的對象是可見的,或者它們遭受嚴重的遮擋或變形,因此這些圖像對檢索精度影響不大。
Flickr100k數據集包括99,782張來Flickr網站145個最流行標籤的高清圖像。在文獻中,通常將該數據集添加到Oxford5k中,以測試檢索演算法的可擴展性。
Paros6k數據集從11指定的巴黎建築查詢中爬出6,412中圖像。每個地標有五個查詢記錄,因此這個數據集同樣有55個帶有邊界框的查詢記錄。資料庫圖像使用和Oxford5k一樣的四種類型的標籤作為Oxford5k數據集標籤。針對Oxford5k和Paris6k數據集有兩個評估準則。對於基於SIFT的方法,被裁剪的區域通常用於查詢。對於基於CNN的方法,有些工作採用的是全尺寸圖像,有些工作採用的是將裁剪的ROI傳入CNN或者用CNN提取全圖特徵後再裁剪得到ROI。使用完整的圖像的方法可以提高mAP指標。詳細的指標可以參見表5。
表5:一些有代表性的圖像檢索方法在六個數據集上的表現
5.2 評價指標
精準度-召回率。召回指的是返回的正確匹配數占資料庫中總數或正確匹配數的比率,而精準度是指返回結果中真實匹配的那部分圖像。給定一個集合含有張返回的圖像,假設其中有張正確匹配的圖像,而整個數據集中有張正確匹配的圖像,那麼召回率和精準度分別計算為和。在圖像檢索中,給定一張待查詢圖像和返回列表,可以根據這些點繪製精準度-召回率曲線,其中是資料庫中的圖像數目。
平均準確率和平均精度。為了更加清晰地記錄圖像檢索系統的性能,我們使用平均準確率(average precision)對其進行衡量,它相當於精準度-召回率曲線下的面積。通常,較大的AP值意味著更高的精準度-召回率曲線,亦即更好的檢索性能。由於圖像檢索數據集通常具有多個查詢圖像,所以對它們各自的AP值進行平均,以產生最終的性能評價,即平均精度(mean average precision, mAP)。傳統地,我們使用mAP來評估檢索系統在Oxford5k、Paris6k和Holidays數據集上的準確度。
N-S得分。N-S得分專用於Ukbench數據集,它是以David Nistér 和Henrik Stewénius的名字來命名的。N-S得分其實等價於精準度或者召回率,因為在Ukbench數據集中的每個查詢在資料庫中都有四個正確的匹配項。N-S得分用總排名列表中前四中的真實匹配的平均數量來計算。
圖6:多年來在Holidays(a), Ukbench(b), Oxford5k(c)數據集上的最優表現
5.3 比較與分析
5.3.1 多年來性能的改進
我們在圖6中展示了過去十年圖像檢索精度的改善以及在表5中展示了一些有代表性的方法。實驗結果通過在獨立的數據集上建立的編碼本來計算。我們可以清楚地看到,實例檢索的領域一直在不斷改進。10多年前提出的基線方法(HKM)在Holidays, Ukbench, Oxford5k, Oxford5k+Flickr100k以及Paris6k數據集上的準確率分別僅為59.7%, 2.85, 44.3%, 26.6%以及46.5%。從基線方法開始,通過引入高區分度編碼本、空間約束和互補描述符,大規模編碼本方法開始穩定地提升。對於中型編碼本方法來說,隨著Hamming嵌入及其改進的方法,在2008年至2010年間它見證了最顯著的精度提升。從那時起,主要的改進來自特徵融合的強度,特別是使用在Holiday和Ukbench數據集上提取的的顏色和CNN特徵。
圖7:特徵維度對圖像檢索系統準確率的影響
表6:不同類別方法間的效率和準確度的比較
另一方面,基於CNN的檢索模型在圖像例檢索中迅速顯示出其優勢。在2012年AlexNet剛提出時,當時的FC特徵的性能與SIFT模型相比仍然遠不能令人滿意。例如,在ImageNet上預訓練的AlexNet,其FC描述符在Holidays,Ukbench和Oxford5k數據集上的AP,N-S得分和mAP上的得分分別為 64.2%,3.42,43.3%。這些指標是要比《Contextual weighting for vocabulary tree based image retrieval》在Holidays和Ukbench數據集上的成績低13.85%和0.14,比《Object retrieval and localization with spatially-constrained similarity measure and k-nn re-ranking》在Oxford5k上的成績低31.9%。然而,然而,CNN網路結構和微調策略的進步,基於CNN的方法的性能迅速提高,在Holidays和Ukbench數據集上極具競爭力,並且在Oxford5k數據集上的指標略低,但它具的內存消耗更小。
5.3.2 準確率比較
不同數據集上不同類別的檢索精度可以在圖6,表5和表6中查看。從這些結果中,我們有三個發現。
第一,在基於SIFT的方法中,中等規模編碼本對的表現要優於小規模編碼本。一方面,由於大的沃羅諾伊方格,中等規模編碼本的視覺辭彙可以使相關匹配的召回率變高。HE方法的進一步集成在很大程度上提高了模型區分度,實現了匹配圖像召回率和精度之間較好的平衡。另一方面,雖然小規模編碼本中的視覺詞具有最高的匹配召回率,但由於聚合過程和維度小,它們的圖像區分能力沒有顯著提高。因此它的表現可以認為是不佳的。
第二,在基於CNN的方法中,微調的模型在特定任務(如地標/場景檢索)中的表現要有很大優勢,這些任務的數據一般和訓練集數據分布相似。雖然這一觀察是在預期之內,有趣的是我們發現在《Deep image retrieval: Learning global representations for image search》中提出的微調模型在通用檢索(例如Ukbench數據集)上的表現極具競爭力,而它與訓練集的數據分布並不同。事實上,Babenko等人在《Neural codes for image retrieval》中表明,在Landmarks數據集上進行微調的CNN特徵會降低在Ukbench上的的準確率。《Deep image retrieval: Learning global representations for image search》這項工作的泛化能力可以歸因於對區域提取網路的有效訓練。相比之下,使用預先訓練模型可以在Ukbench上表現出較高的精度,但在landmarks數據集上的表現中等。相似地,混合方法在所有的任務中的表現都相當,但它仍然可能遇到效率問題時。
第三,比較這六中方法,「CNN微調模型」和「SIFT中等編碼本」方法具有最好的總體準確度,而「SIFT小編碼本」類別具有相對較低的準確度。
圖8:在 Oxford5k數據集上的存儲代價和檢索準確率
5.3.3 效率比較
特徵計算時間。在基於SIFT的方法中,主要的步驟就是局部特徵的提取。通常情況下,根據圖像的複雜度(紋理),CPU提取640×480大小圖像的基於Hessian仿射區域的SIFT描述符需要1-2s。對於基於CNN的方法,在TitanX卡上通過VGG16網路對一個224×224和1024×768的圖像進行單向傳遞分別需要0.082s和0.34 7s。據報道,四幅圖像(最大邊724像素)可以在1s內處理。預訓練列特徵的編碼(VLAD或FV)的時間非常快。對於CNN混合方法,提取幾十個區域的CNN特徵可能需要幾秒鐘。總體而言,CNN預訓練模型和微調模型在用GPU進行特徵計算時的效率高。同樣應該注意的是,當使用GPU進行SIFT提取時,也可以實現高效率。
檢索時間。最似最近鄰搜索演算法用於「SIFT大編碼本」,「SIFT小編碼本」,「CNN預訓練模型」和「CNN微調模型」時都是相當高效的,這是因為倒排列表對於適當訓練的大碼本來說是簡短的,並且因為後者三有一個緊湊的表示,用像PQ這樣的ANN搜索方法來加速是可行的。中等規模編碼本的效率較低,因為它的倒排索引與大碼本相比包含更多的條目,並且漢明嵌入方法的過濾效果只能在一定程度上修正這個問題。如4.3節所述,混合方法的檢索複雜度會因為多對多匹配策略的影響而變得低效率。
訓練時間。用AKM或HKM訓練大型或中型編碼本通常需要幾個小時,使用小型編碼本可以縮短訓練時間。對於微調模型,Gordo等人在一塊K40 GPU上花費了5天訓練三元損失模型。可能在孿生網路或者分類模型上這會花費更少的時間,但是要比生成SIFT編碼本的時間長得多。因此,在訓練方面,使用直接池或小碼本的效率更高。
存儲代價。表5和圖8表明具有大碼本的SIFT方法和緊湊方法在存儲成本上都是高效的。還可以使用PQ或其他有效的量化/散列方法將緊湊表示壓縮成緊湊編碼,從而可以進一步減少它們的存儲消耗。相比之下,使用中等碼本的方法是最消耗內存的,因為二進位簽名應該存儲在倒排索引中。混合方法總要有混合存儲成本,因為多對多策略需要存儲每個圖像的多個區域描述符,而其他一些方法則採用高效的編碼方法。
空間驗證與查詢拓展。空間驗證通常和QE演算法一起使用,可以使得檢索結果排列表更加精準。RANSAC驗證在《Object retrieval with large vocabularies and fast spatial matching》中提出,它的複雜度為,其中是匹配的特徵數目,可以看出演算法的複雜度較高。ADV方法的複雜度相對較小,為,因為它能夠避免不相關的Hough選票。《Hough pyramid matching: Speeded-up geometry re-ranking for large scale image retrieval》和《A vote-and-verify strategy for fast spatial verification in image retrieval》提出的方法最有效,複雜度僅為,同時後一項工作進一步地輸出QE的變換和內值。
從查詢擴展的角度來看,由於提出了新的查詢,搜索效率會受到影響。例如,由於新查詢,AQE的搜索時間幾乎增加了一倍。對於遞歸AQE和帶尺度遞歸QE方法,搜索時間更加長了,因為要執行好幾個新的搜索。其他QE變體所提出的改進只比執行另一搜索增加了邊際成本,因此它們的複雜性類似於QE方法。
5.3.4 重要的參數
我們總結編碼本大小對使用SIFT特徵的大/中型碼本的影響,以及維數對包括SIFT小編碼本和基於CNN方法的緊湊表示的影響。
編碼本規模。圖8展示了模型在Oxford5k上的mAP結果,對大規模編碼本和中規模編碼本的方法進行對比。有兩點值得注意。第一,mAP值通常隨著編碼本增大而增加,但當碼本足夠大時aMP值可能達到飽和。這是因為更大的碼本提高了匹配精度,但是如果它太大,匹配的召回率變低,導致性能飽和甚至損害性能。第二,當編碼本規模變化時,使用中等規模編碼本的方法表現更穩定。這可以歸因於HE方法,它對更小的碼本貢獻更多,彌補了較低的基線方法的性能。
維數。維數對緊湊向量的影響在圖7中給出。我們的發現檢索精度通常在較大的尺寸下較為穩定,而當維數低於256或128時精度迅速下降。我們第二個發現是關於區域提取的。這些方法在各種特徵長度下都表現出非常出色的性能,這可能是由於它們在目標定位方面的優越能力。
5.3.5 討論
我們簡要地討論何時使用CNN或SIFT以及其他相關方法。上文對兩者特徵進行了詳細的比較。
一方面,表示向量長度固定的CNN方法幾乎在所有的基準數據集上的性能都佔有優勢。具體而言,在兩種情況下基於CNN的方法可以考慮優先使用。第一種是對於特定對象的檢索(例如建築物、行人),當提供的訓練數據足夠時,可以充分利用CNN網路嵌入學習的能力。第二種,對於常見的對象檢索或類檢索,預訓練的CNN模型是有競爭力的。
另一方面,儘管基於CNN方法的通常是具有優勢的,我們仍認為SIFT特徵在某些情況下仍然具有優勢。例如,當查詢或一些目標圖像是灰度圖像時,CNN可能不如SIFT有效,因為SIFT是在灰度圖像上計算而不訴諸於顏色信息。當物體顏色變化非常劇烈時也同樣如此。另外,在小對象檢索中或當查詢對象被嚴重遮擋時,使用諸如SIFT之類的局部特徵是更好的選擇。在書籍/CD封面檢索等應用中,由於豐富的紋理,我們也可以期待SIFT的良好性能。
6 未來的研究方向
6.1 面向通用任務的實例檢索
圖像檢索一個非常重要的方向就是使用搜索引擎實現通用檢索。為了實現這個目標需要解決兩個重要問題。
第一,需要引入大規模圖像數據集。雖然如表3所示展示了多個圖像數據集,但這些數據集通常包含特定類型的實例,例如地標或室內物品。雖然Gordo等人在《Deep image retrieval: Learning global representations for image search》中使用的RPN結構除了在構建數據集之外,還在在Ukbench數據集上表現得富有競爭力,但如果在更通用的數據集上訓練CNN能否帶來進一步的改進,則仍然是未知數。因此,社區迫切需要大規模的圖像數據集或一種可以以監督或非監督的方式生成這樣一個數據集的有效方法。
第二,設計新的CNN網路和學習策略對於充分利用訓練數據具有重要意義。先前有工作採用標準分類模型,成對損失或三重損失模型對CNN網路進行微調。Faster R-CNN在實例檢索中的引入對更精確的對象定位來說是一個良好的開始。此外,在另一個檢索任務中採用微調模型時,遷移學習方法也是非常重要。
6.2 面向專用任務的實例檢索
另一方面,在專用實例檢索中的研究也越來越多。例如地點檢索,行人檢索,車輛檢索,標誌檢索等。在這些任務中的圖像具有特定的先驗知識。例如在行人檢索任務中,循環神經網路(RNN)可以連接身體部分的描述符,在車輛檢索任務中,在特徵學習期間可以推斷視圖信息,同時牌照圖像也可以提供關鍵信息。
同時,訓練數據的收集過程可以進一步研究。例如,可以通過谷歌街景收集不同地點的訓練圖像。車輛圖像可以通過監視視頻或互聯網圖像來獲取。在這些特定的數據集上探索新的學習策略以及研究遷移學習的效果將是有趣的。最後,緊湊向量編碼或短編碼也將在現實的檢索任務設置中變得重要。
7 結語
本篇綜述回顧了基於SIFT和CNN特徵的實例檢索方法。根據編碼本的規模,我們將基於SIFT的方法分為三類:使用大,中,小規模的編碼本。基於CNN的方法也被分為了三類:使用預訓練模型,微調模型和混合模型的方法。在每個類別下都對先前的方法進行了全面的調研。從各種方法的演變可以看出,混合方法處於SIFT和CNN方法的過渡位置,緊湊編碼方法越來越流行,並且實例檢索正朝著端到端的特徵學習和提取的方向發展。
通過在幾個基準數據集上收集的實驗結果,對六種方法進行了比較。我們發現CNN微調模型策略在不同的檢索任務上都得到了較高準確率,並且在效率上也具有優勢。未來的研究可能集中於學習更通用的特徵表示或更特定場景的檢索任務。
-------------原文結束-------------
寫在最後
毋庸置疑,這是一篇極高水準的綜述,本人斗膽將其翻譯成文願對大家有所幫助。
圖像檢索系統作為計算機視覺領域的一項關鍵技術,以其誘人的前景不斷激勵著一代代的科研工作者攻克難點,追求卓越。從文中我們可以看到,僅僅十多年的時間,圖像檢索方面的研究已經取得了不俗的成績,尤其是近年來興起的深度學習技術又為該領域的發展添加了助燃劑。
然而,我們也應該意識到挑戰仍然是存在且巨大的。更加魯棒的圖像特徵描述符,更加快速的檢索演算法都是我們需要繼續研究的課題。同志們,任重道遠啊!
歡迎與我交流
github:
https://github.com/keloli
blog:
https://www.jianshu.com/u/d055ee434e59
參考資料
[SIFT Meets CNN: A Decade Survey of Instance Retrieval @TPAMI Volume 40 Issue 5 ? May 2018]((https://ieeexplore.ieee.org/abstract/document/7935507/))
[SIFT Meets CNN: A Decade Survey of Instance Retrieval @arxiv](https://arxiv.org/abs/1608.01807)
[VLAD特徵(vector of locally aggregated descriptors)](https://blog.csdn.net/happyer88/article/details/47054503)
[乘積量化(Product Quantization)](https://www.cnblogs.com/mafuqiang/p/7161592.html)
END
機器學習演算法工程師
一個用心的公眾號
進群,學習,得幫助
你的關注,我們的熱度,
我們一定給你學習的最大的幫助
TAG:機器學習演算法工程師 |