1. 程式人生 > >【轉載】LIFT: Learned Invariant Feature Transform學習筆記

【轉載】LIFT: Learned Invariant Feature Transform學習筆記

LIFT: Learned Invariant Feature Transform

2016 ECCV 收錄 Kwang Moo Yi, Eduard Trulls, Vincent Lepetit, Pascal Fua

1.介紹

  在CV領域區域性特徵發揮重要作用,從影象中尋找與匹配它們是大量的研究工作的課題。到最近,最好的技術依賴於手工設計的特徵(SIFTSURFORB)。在過去幾年,在許多計算機視覺領域,基於machine learning或更確切說是deep learning已經開始表現的比傳統技術更好。

  儘管如此,這些新演算法只在完整的計算過程中的某一步使用深度學習,例如

detecting featurecomputing their orientationextracting robust representations。本文使用一種全新的深度架構,將三部分一起執行。我們證明它的整體效能比最先進的方法要好,在很大程度上是因為它允許這些單獨的步驟進行優化以配合彼此的工作。

  我們的架構稱之為LIFTlearning invariant feature transform。完整流程如下圖,它由三個相互聯通的元件組成。the Detector, the Orientation Estimator, and the Descriptor。每個都是基於CNNs

(卷積神經網路),這些都被證明可以很好地執行單獨的功能。為結合它們,我們使用Spatial TransformersJaderberg, M., Simonyan, K., Zisserman, A., Kavukcuoglu, K.: Spatial Transformer Networks. In: NIPS. (2015))矯正經過DetectorOrientation Estimator輸出的影象塊。我們使用soft argmax function來替代傳統的非區域性極大值抑制。這將使我們保持end-to-end differentiability,同時全網路也能使用BP演算法,此前我們從未找到這種方式架構。

https://images2017.cnblogs.com/blog/1274669/201711/1274669-20171108103056263-707018016.png

  同時我們也知道如何有效訓練,我們建立了一種Siamese network,使用SFMStructure-from-Motion)產生的特徵點訓練它,SFM的場景的視角和光照都在變化,這樣來訓練它的權重。在不同尺度影象塊上規劃訓練問題,使它變得更容易優化。在實踐中,我們發現從頭開始構建完整的架構是不可能的,因為分散的部件嘗試優化不同的目標。我們介紹一種問題明確的learning來克服這個問題。它包含training the Descriptor first,然後被用來train the Orientation Estimatorand finally the Detector。測試時我們解耦執行,先是Detector在全圖尺度空間跑一遍,the Orientation Estimator and Descriptor只處理keypoints

2.相關工作

  區域性特徵的文獻很多,但它們總是考慮finding feature points, computing their orientation, and matching them。這裡我們將分別討論三部分。

2.1 Feature Point Detectors  特徵點的研究大多數關心找到有特色的,大小和朝向能被可靠估計的區域性地區。早期的角點尋找使用影象訊號的一階近似,FAST只使用machine learning加速找角點過程,除了角點,SIFT在尺度空間找blobs(斑塊),SURFHaar filter加速,MSERMaximally Stable Extremal Regions)檢測區域,(Mikolajczyk, K., Schmid, C.: An Affine Invariant Interest Point Detector. In: ECCV. (2002))檢測仿射區域。SFOPForstner, W., Dickscheid, T., Schindler, F Detecting Interpretable and Accurate Scale-Invariant Keypoints. In: ICCV. (September 2009))使用junctions(連線,交叉) and blobsEdge Foci使用魯棒邊界(Zitnick, C., Ramnath, K.: Edge Foci Interest Points. In: ICCV. (2011))應對光線變化。更多精心設計的複雜特徵點被提出來,並且表現進一步提高(Mainali, P., Lafruit, G., Tack, K., Van Gool, L., Lauwereins, R.: Derivative-Based Scale Invariant Image Feature Detector with Error Resilience. TIP 23(5) (2014))(Mainali, P., Lafruit, G., Yang, Q.,Geelen, B., VanGool, L., Lauwereins, R.: SIFER: Scale-Invariant Feature Detector with Error Resilience. IJCV 104(2) (2013))。

  與這些工程上表現良好的特徵點對比,早期的learning points嘗試有(Sochman, J., Matas, J.: Learning a Fast Emulator of a Binary Decision Process. In: ACCV. (2007) )(Trujillo, L., Olague, G.: Using Evolution to Learn How to Perform Interest Point Detection. In: ICPR. (2006))。其中(Verdie, Y., Yi, K.M., Fua, P., Lepetit, V.: TILDE: A Temporally Invariant Learned DEtector. In: CVPR. (2015))展示出學習的特徵點比之前的那些特徵點表現更好。在這個工作中,分段線性卷積濾波器被訓練的能魯棒檢測特徵點,即使有lighting and seasonal changes。但是,這隻能處理一小塊影象資料,並且視角不能變化,因此我們根據它得到靈感,並且大幅度擴充套件到我們的流程中來。

2.2 Orientation Estimation

  儘管朝向在匹配特徵點上起著關鍵的作用,估計一個區別性取向的問題比detection or feature description受到的關注少。結果導致SIFT介紹的方法往往成為小改進的標準,比如使用intensity centroid(強度中心),如ORB設計那樣。

  (Yi, K., Verdie, Y., Lepetit, V., Fua, P.: Learning to Assign Orientations to Feature Points. In: CVPR. (2016))使用deep learning來預測穩定的方向,取得了巨大進步。我們將這個體系結構融入到我們的流程中並展示如何使用我們的問題特定的培訓策略來訓練它。

2.3 Feature Descriptors

  特徵描述符被設計用來提供顯著影象塊的區別表示,並對視角和光照變化保持魯棒性。有成熟的SIFT由梯度方向的區域性直方圖計算出來的,SURF使用積分影象表示來加速,DAISYTola, E., Lepetit, V., Fua, P.: A Fast Local Descriptor for Dense Matching. In: CVPR. (2008))依賴於有定向梯度的卷積圖來近似直方圖,這使DAISY提取稠密描述符時,它會產生很大的計算收益。

  儘管很成功,但是學習型的描述子表現更好。從無監督的雜湊到基於線性判別分析的監督學習技術(Strecha, C., Bronstein, A., Bronstein, M., Fua, P.: LDAHash: Improved Matching with Smaller Descriptors. PAMI 34(1) (January 2012))(Winder, S., Brown, M.: Learning Local Image Descriptors. In: CVPR. (June 2007)),遺傳演算法,凸優化。現在流行通過大量資料訓練過的CCNs,直接從raw image patches釋放描述子。例如MatchNetHan, X., Leung, T., Jia, Y., Sukthankar, R., Berg, A.C.: MatchNet: Unifying Feature and Metric Learning for Patch-Based Matching. In: CVPR. (2015))訓練Siamese CNN來特徵表達用一個全連線的網路來度量,DeepCompareZagoruyko, S., Komodakis, N.: Learning to Compare Image Patches via Convolu- tional Neural Networks. In: CVPR. (2015))展示出當network focuses on the center of the image能表現更好。(Zbontar, J., LeCun, Y.: Computing the Stereo Matching Cost with a Convolutional Neural Network. In: CVPR. (2015))使用相似方法獲得短基線情況下較好的兩檢視匹配。在(Simo-Serra, E., Trulls, E., Ferraz, L., Kokkinos, I., Fua, P., Moreno-Noguer, F.: Discriminative Learning of Deep Convolutional Feature Point Descriptors. In: ICCV. (2015))中hard negative mining被用來學習compact descriptorscompact descriptors使用歐式距離度量相似性。(Balntas, V., Johns, E., Tang, L., Mikolajczyk, K.: PN-Net: Conjoined Triple Deep Network for Learning Local Image Descriptors. In: arXiv Preprint. (2016))依靠sample triplets to mine hard negatives

  我們依靠(Balntas, V., Johns, E., Tang, L., Mikolajczyk, K.: PN-Net: Conjoined Triple Deep Network for Learning Local Image Descriptors. In: arXiv Preprint. (2016))的架構,因為描述符被訓練並用歐氏距離進行比較,與需要學習度量的描述符相比,它具有更廣泛的適用性。

https://images2017.cnblogs.com/blog/1274669/201711/1274669-20171108132931575-1166734835.png

我們的架構有四個分支,P1P2 (blue)對應同一物理點的不同檢視,並被用作訓練描述符的正面例子。P3 (green)是不同的3d點,對於描述符來說,這是一個負面的例子。P4 (red)不包含明顯的特徵點,只作為一個負面的例子來訓練Detector。輸入一個Pthe Detector, the softargmax, and the Spatial Transformer層分別提供一個小p,然後進入the Orientation Estimatorthe Spatial TransformerRot一下,得到the rotated patch pθ,然後提供給the Descriptor得到最終的description vector d

3.方法

3.1訓練方法

1.給定一個輸入影象patch PDetector就會提供一個分數圖S

2.我們在評分對映S上執行一個soft argmax,並返回單個潛在特徵點的位置x

3.我們提取了一個以x為中心的較小的patch p,使用Spatial Transformer layer Crop( 2),作為Orientation Estimator的輸入。

4Orientation Estimator預測一個patch orientation θ

5.我們根據這個方向旋轉p使用第二個Spatial Transformer layer,貼上Rot在圖2中,產生

6送到Descriptor網路,計算特徵向量d

3.2訓練步驟

1. 首先訓練描述符:訓練影象塊的位置和方向均來自SFM的特徵點,其中會取四個影象塊P1,P2,P3,P4P1,P2是來自同一個3D點在不同視角下的影象,P3是不同3D點投影回來的影象塊,P4是不包含任何特徵點的影象塊。那麼損失函式的構建就為:

https://img-blog.csdn.net/20180721141206411?

2. 訓練方向Orientation Estimator,損失函式就是最小化同一3D點在不同視角下的描述符距離,使用已經訓練好的描述符來計算描述符向量:

https://img-blog.csdn.net/20180721141955219?

3. 訓練特徵點檢測,輸入一個影象塊,輸出score map。其計算函式為:

https://img-blog.csdn.net/20180721142337164?

其使用最大分數圖的位置代替直接用sfm的位置,使其非常容易的去訓練而且可靠,位置x的函式由S得到:

https://img-blog.csdn.net/20180721142729645?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3ByZXBoZXQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70https://img-blog.csdn.net/20180721142754709?

最終損失函式定義為:

https://img-blog.csdn.net/20180721142936541?

執行流程:

https://img-blog.csdn.net/20180721143509182?

4.結論

       這篇文章提出了一個深度網路框架,結合了特徵點檢測,方向估計和描述符計算模組,使用後向傳播進行端到端的訓練。訓練過程從後往前,先訓練描述符,在訓練方向估計,最後訓練特徵點檢測模組。從作者實驗對比效果看,這種方法與傳統SIFT方法比較,對光照和季節變化具有很強的魯棒性。