概述
特征提取是計算機視覺中的一個重要主題。不論是SLAM、SFM、三維重建等重要應(yīng)用的底層都是建立在特征點跨圖像可靠地提取和匹配之上。特征提取是計算機視覺領(lǐng)域經(jīng)久不衰的研究熱點,總的來說,快速、準確、魯棒的特征點提取是實現(xiàn)上層任務(wù)基本要求。
特征點是圖像中梯度變化較為劇烈的像素,比如:角點、邊緣等。FAST(Features from Accelerated Segment Test)是一種高速的角點檢測算法;而尺度不變特征變換SIFT(Scale-invariant feature transform)仍然可能是最著名的傳統(tǒng)局部特征點。也是迄今使用最為廣泛的一種特征。特征提取一般包含特征點檢測和描述子計算兩個過程。描述子是一種度量特征相似度的手段,用來確定不同圖像中對應(yīng)空間同一物體,比如:BRIEF(Binary Robust IndependentElementary Features)描述子??煽康奶卣魈崛?yīng)該包含以下特性:
(1)對圖像的旋轉(zhuǎn)和尺度變化具有不變性;(2)對三維視角變化和光照變化具有很強的適應(yīng)性;(3)局部特征在遮擋和場景雜亂時仍保持不變性;(4)特征之間相互區(qū)分的能力強,有利于匹配;(5)數(shù)量較多,一般500×500的圖像能提取出約2000個特征點。
近幾年深度學習的興起使得不少學者試圖使用深度網(wǎng)絡(luò)提取圖像特征點,并且取得了階段性的結(jié)果。圖1給出了不同特征提取方法的特性。本文中的傳統(tǒng)算法以O(shè)RB特征為例,深度學習以SuperPoint為例來闡述他們的原理并對比性能。
圖1 不同的特征提取方法對比
傳統(tǒng)算法—ORB特征
盡管SIFT是特征提取中最著名的方法,但是因為其計算量較大而無法在一些實時應(yīng)用中使用。為了研究一種快速兼顧準確性的特征提取算法,Ethan Rublee等人在2011年提出了ORB特征:“ORB:An Efficient Alternative to SIFT or SURF”。ORB算法分為兩部分,分別是特征點提取和特征點描述。ORB特征是將FAST特征點的檢測方法與BRIEF特征描述子結(jié)合起來,并在它們原來的基礎(chǔ)上做了改進與優(yōu)化。其速度是SIFT的100倍,是SURF的10倍。Fast特征提取從圖像中選取一點P,如圖2。按以下步驟判斷該點是不是特征點:以P為圓心畫一個半徑為3 pixel的圓;對圓周上的像素點進行灰度值比較,找出灰度值超過 l(P)+h 和低于 l(P)-h 的像素,其中l(wèi)(P)是P點的灰度, h是給定的閾值;如果有連續(xù)n個像素滿足條件,則認為P為特征點。一般n設(shè)置為9。為了加快特征點的提取,首先檢測1、9、5、13位置上的灰度值,如果P是特征點,那么這四個位置上有3個或3個以上的像素滿足條件。如果不滿足,則直接排除此點。
圖2 FAST特征點判斷示意圖上述步驟檢測出的FAST角點數(shù)量很大且不確定,因此ORB對其進行改進。對于目標數(shù)量K為個關(guān)鍵點,對原始FAST角點分別計算Harris響應(yīng)值,,然后根據(jù)響應(yīng)值來對特征點進行排序,選取前K個具有最大響應(yīng)的角點作為最終的角點集合。除此之外,F(xiàn)AST不具有尺度不變性和旋轉(zhuǎn)不變性。ORB算法構(gòu)建了圖像金字塔,對圖像進行不同層次的降采樣,獲得不同分辨率的圖像,并在金字塔的每一層上檢測角點,從而獲得多尺度特征。最后,利用灰度質(zhì)心法計算特征點的主方向。作者使用矩來計算特征點半徑范圍內(nèi)的質(zhì)心,特征點坐標到質(zhì)心形成一個向量作為該特征點的方向。矩定義如下:
計算圖像的0和1階矩:
則特征點的鄰域質(zhì)心為:
進一步得到特征點主方向:
描述子計算BRIEF算法計算出來的是一個二進制串的特征描述符,具有高速、低存儲的特點。具體步驟是在一個特征點的鄰域內(nèi),選擇n對像素點pi、qi(i=1,2,…,n)。然后比較每個點對的灰度值的大小。如果I(pi)》 I(qi),則生成二進制串中的1,否則為0。所有的點對都進行比較,則生成長度為n的二進制串。一般n取128、256或512。另外,為了增加特征描述符的抗噪性,算法首先需要對圖像進行高斯平滑處理。在選取點對的時候,作者測試了5種模式來尋找一種特征點匹配的最優(yōu)模式(pattern)。
圖3 測試分布方法最終的結(jié)論是,第二種模式(b)可以取得較好的匹配結(jié)果。
深度學習的方法—SuperPoint
深度學習解決特征點提取的思路是利用深度神經(jīng)網(wǎng)絡(luò)提取特征點而不是手工設(shè)計特征,它的特征檢測性能與訓(xùn)練樣本、網(wǎng)絡(luò)結(jié)構(gòu)緊密相關(guān)。一般分為特征檢測模塊和描述子計算模塊。在這里以應(yīng)用較為廣泛的SuperPoint為例介紹該方法的主要思路。該方法采用了自監(jiān)督的全卷積網(wǎng)絡(luò)框架,訓(xùn)練得到特征點(keypoint)和描述子(descriptors)。自監(jiān)督指的是該網(wǎng)絡(luò)訓(xùn)練使用的數(shù)據(jù)集也是通過深度學習的方法構(gòu)造的。該網(wǎng)絡(luò)可分為三個部分(見圖1),(a)是BaseDetector(特征點檢測網(wǎng)絡(luò)),(b)是真值自標定模塊。(c)是SuperPoint網(wǎng)絡(luò),輸出特征點和描述子。雖然是基于深度學習的框架,但是該方法在Titan X GPU上可以輸出70HZ的檢測結(jié)果,完全滿足實時性的要求。
圖4 SuperPoint 網(wǎng)絡(luò)結(jié)構(gòu)示意圖下面分別介紹一下三個部分:BaseDetector特征點檢測:首先創(chuàng)建一個大規(guī)模的合成數(shù)據(jù)集:由渲染的三角形、四邊形、線、立方體、棋盤和星星組成的合成數(shù)據(jù),每個都有真實的角點位置。渲染合成圖像后,將單應(yīng)變換應(yīng)用于每個圖像以增加訓(xùn)練數(shù)據(jù)集。單應(yīng)變換對應(yīng)著變換后角點真實位置。為了增強其泛化能力,作者還在圖片中人為添加了一些噪聲和不具有特征點的形狀,比如橢圓等。該數(shù)據(jù)集用于訓(xùn)練 MagicPoint 卷積神經(jīng)網(wǎng)絡(luò),即BaseDetector。注意這里的檢測出的特征點不是SuperPoint,還需要經(jīng)過Homographic Adaptation操作。
圖5 預(yù)訓(xùn)練示意圖特征檢測性能表現(xiàn)如下表:
圖 6 MagicPoint 模型在檢測簡單幾何形狀的角點方面優(yōu)于經(jīng)典檢測器真值自標定:Homographic Adaptation 旨在實現(xiàn)興趣點檢測器的自我監(jiān)督訓(xùn)練。它多次將輸入圖像進行單應(yīng)變換,以幫助興趣點檢測器從許多不同的視點和尺度看到場景。以提高檢測器的性能并生成偽真實特征點。
圖7 Homographic Adaptation操作Homographic Adaptation可以提高卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的特征點檢測器的幾何一致性。該過程可以反復(fù)重復(fù),以不斷自我監(jiān)督和改進特征點檢測器。在我們所有的實驗中,我們將Homographic Adaptation 與 MagicPoint 檢測器結(jié)合使用后的模型稱為 SuperPoint。
圖8 Iterative Homographic AdaptationSuperPoint網(wǎng)絡(luò):SuperPoint 是全卷積神經(jīng)網(wǎng)絡(luò)架構(gòu),它在全尺寸圖像上運行,并在單次前向傳遞中產(chǎn)生帶有固定長度描述符的特征點檢測(見圖 9)。該模型有一個共享的編碼器來處理和減少輸入圖像的維數(shù)。在編碼器之后,該架構(gòu)分為兩個解碼器“頭”,它們學習特定任務(wù)的權(quán)重——一個用于特征檢測,另一個用于描述子計算。大多數(shù)網(wǎng)絡(luò)參數(shù)在兩個任務(wù)之間共享,這與傳統(tǒng)系統(tǒng)不同,傳統(tǒng)系統(tǒng)首先檢測興趣點,然后計算描述符,并且缺乏在兩個任務(wù)之間共享計算和表示的能力。
圖 9 SuperPoint DecodersSuperPoint 架構(gòu)使用類似VGG編碼器來降低圖像的維度。編碼器由卷積層、通過池化的空間下采樣和非線性激活函數(shù)組成。解碼器對圖片的每個像素都計算一個概率,這個概率表示的就是其為特征點的可能性大小。描述子輸出網(wǎng)絡(luò)也是一個解碼器。先學習半稠密的描述子(不使用稠密的方式是為了減少計算量和內(nèi)存),然后進行雙三次插值算法(bicubic interpolation)得到完整描述子,最后再使用L2標準化(L2-normalizes)得到單位長度的描述。最終損失是兩個中間損失的總和:一個用于興趣點檢測器 Lp,另一個用于描述符 Ld。我們使用成對的合成圖像,它們具有真實特征點位置和來自與兩幅圖像相關(guān)的隨機生成的單應(yīng)性 H 的地面實況對應(yīng)關(guān)系。同時優(yōu)化兩個損失,如圖 4c 所示。使用λ來平衡最終的損失:
實驗效果對比:
圖10 不同的特征檢測方法定性比較
圖 11 檢測器和描述符性能的相關(guān)指標
結(jié)論
在特征檢測上,傳統(tǒng)方法通過大量經(jīng)驗設(shè)計出了特征檢測方法和描述子。盡管這些特征在光照變化劇烈,旋轉(zhuǎn)幅度大等情況下還存在魯棒性問題,但仍然是目前應(yīng)用最多、最成熟的方法,比如ORB-SLAM使用的ORB特征、VINS-Mono使用的FAST特征等都是傳統(tǒng)的特征點。深度學習的方法在特征檢測上表現(xiàn)了優(yōu)異的性能,但是:(1)存在模型不可解釋性的問題;(2)在檢測和匹配精度上仍然沒有超過最經(jīng)典的SIFT算法。(3)大部分深度學習的方案在CPU上運實時性差,需要GPU的加速。(4)訓(xùn)練需要大量不同場景的圖像數(shù)據(jù),訓(xùn)練困難。本文最后的Homograpyhy Estimation指標,SuperPiont超過了傳統(tǒng)算法,但是評估的是單應(yīng)變換精度。單應(yīng)變換在并不能涵蓋所有的圖像變換。比如具有一般性質(zhì)的基礎(chǔ)矩陣或者本質(zhì)矩陣的變換,SurperPoint表現(xiàn)可能不如傳統(tǒng)方法。
原文標題:特征提?。簜鹘y(tǒng)算法 vs 深度學習
文章出處:【微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
計算機視覺
+關(guān)注
關(guān)注
8文章
1703瀏覽量
46249 -
計算模塊
+關(guān)注
關(guān)注
0文章
16瀏覽量
6236 -
深度學習
+關(guān)注
關(guān)注
73文章
5527瀏覽量
121892
原文標題:特征提?。簜鹘y(tǒng)算法 vs 深度學習
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論