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