齊詠生 姚辰武 劉利強 董朝軼 李永亭
(1.內(nèi)蒙古工業(yè)大學(xué)電力學(xué)院, 呼和浩特 010080; 2.內(nèi)蒙古自治區(qū)機(jī)電控制重點實驗室, 呼和浩特 010051)
為實現(xiàn)自主移動和導(dǎo)航,移動機(jī)器人需要解決3個關(guān)鍵問題:位姿估計、建圖、路徑規(guī)劃[1-3]。其中移動機(jī)器人位姿估計是建圖與路徑規(guī)劃的重要前提和關(guān)鍵環(huán)節(jié)。
目前常見的信息提取渠道主要分為激光雷達(dá)傳感器和相機(jī)傳感器。而相機(jī)傳感器相比激光雷達(dá)傳感器,具有成本低廉、質(zhì)量輕、功耗低、采集信息豐富等優(yōu)點,因而相機(jī)傳感器用于機(jī)器人位姿估計已成為一個重要的發(fā)展方向。
即時定位與地圖構(gòu)建(Simultaneous localization and mapping,SLAM),主要解決移動機(jī)器人在未知環(huán)境中定位與地圖構(gòu)建的問題。而SLAM前端作為其重要環(huán)節(jié)是一個求解運動變換的過程,并為后端提供初始的數(shù)據(jù),SLAM前端可以分為特征提取、特征匹配、數(shù)據(jù)關(guān)聯(lián)[4-6]。迄今為止已經(jīng)有一些經(jīng)典的視覺SLAM算法,其算法的前端部分都是采用視覺定位。MonoSLAM[7]是第一個基于單目相機(jī)運行的SLAM方案,其前端采取稀疏的特征點進(jìn)行匹配估計位姿,能夠?qū)崿F(xiàn)實時的無漂移運動恢復(fù)結(jié)構(gòu)。但該方案的前端特征點跟蹤魯棒性較差,很容易丟失;PTAM[8]采用了Tracking和Mapping雙線程的結(jié)構(gòu),在Tracking線程中其前端采取FAST提取特征點進(jìn)行匹配,其優(yōu)點是提取速度快,但也存在魯棒性差的缺陷,而且它會提取出大量的FAST特征,需要使用各種約束剔除誤匹配,耗時耗力。為了降低前端計算工作量,以直接法為代表的LSD-SLAM[9]在幀與幀之間實現(xiàn)跟蹤以構(gòu)建光度誤差,降低特征匹配的計算量,但該算法對紋理缺乏的場景效果較差。ORB-SLAM2[10]在PTAM架構(gòu)的基礎(chǔ)上,增加了地圖初始化和閉環(huán)監(jiān)測功能,可實現(xiàn)全局約束優(yōu)化。但ORB-SALM2前端在復(fù)雜場景下(噪聲引入、運動模糊、光線明亮變化)特征點的提取抗干擾能力較差,而且其描述子Brief[11]利用的是圖像局部信息,缺乏全局性描述,會對提取的特征點造成較多誤匹配,影響定位精度。
為進(jìn)一步提高ORB-SLAM2定位精度,MA等[12]從提高特征點描述子區(qū)分度的角度出發(fā)提出了ASD-SLAM,針對視點變化和高度重復(fù)的場景,使用深度學(xué)習(xí)的方法提高特征點描述子的區(qū)分度。所提出的Adaptive Scale Triplet損失函數(shù)應(yīng)用于Triplet Network獲得自適應(yīng)尺度描述子(ASD),替換傳統(tǒng)視覺SLAM框架的前端,提高了特征的匹配精度。然而該算法也存在特征點提取抗干擾能力差,在復(fù)雜環(huán)境下提取點數(shù)變少甚至無法求解位姿的問題。LI等[13]將深度學(xué)習(xí)目標(biāo)檢測方法融入SLAM前端中,提出一種PO-SLAM方案,該方法是對ORB-SLAM2的改進(jìn),對輸入的圖像從目標(biāo)檢測網(wǎng)絡(luò)中提取對象的語義信息,使用bundle adjustment構(gòu)建對目標(biāo)的映射,可有效提高定位精度。不過,當(dāng)環(huán)境中目標(biāo)信息減少和缺失時,仍會出現(xiàn)目標(biāo)檢測失效、定位精度下降的問題。
為克服上述問題,提出基于多級深度網(wǎng)絡(luò)提取圖像特征點和輸出描述子[14-17]。在面對復(fù)雜場景提取特征點時具有很好的抗干擾性,輸出的描述子匹配精度也有較大提高。但上述網(wǎng)絡(luò)對特征點提取和描述子輸出分別采用不同網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)龐大復(fù)雜,當(dāng)面對較大場景、輸入圖像較大時,網(wǎng)絡(luò)的計算時間成本陡然增加,降低了SLAM系統(tǒng)的實時性,此外該類方法對移植系統(tǒng)的資源要求很高。
通過前期研究和深入分析,發(fā)現(xiàn)目前所研究的ORB-SLAM2的前端定位算法主要缺陷為:特征點的提取是基于人工設(shè)定的規(guī)則,在復(fù)雜場景[18-21]中,特征點提取會失效,或點數(shù)變少甚至于無法求解位姿,容易跟蹤失敗。通過使用深度學(xué)習(xí)可有效改善這些問題,然而引入深度學(xué)習(xí)在特征點提取和描述子輸出時會帶來網(wǎng)絡(luò)龐大、復(fù)雜場景環(huán)境下計算成本過高,實時性難以保證的問題。ORB-SLAM2使用Brief描述子利用的是圖像的局部信息進(jìn)行特征點匹配,而圖像中紋理信息較為豐富,當(dāng)特征點距離較遠(yuǎn)時局部信息描述子可能非常相似,很容易產(chǎn)生誤匹配現(xiàn)象,影響定位精度。為此,從不影響V-SLAM實時性同時又保證具有較強抗干擾性角度出發(fā),提出一種概率p-SuperPoint網(wǎng)絡(luò)實現(xiàn)特征點提取,提高提取特征點的魯棒性;并在其中引入一種帶有反饋特征點p概率控制策略,實現(xiàn)特征點的輸出質(zhì)量控制,提高前端位姿估計的準(zhǔn)確性。提出在描述子輸出部分引入一種自適應(yīng)K-means聚類算法融合Brief描述子,提高特征點的匹配精度和魯棒性。最后,引入一種Ransac的隨機(jī)抽樣方法對估計的位姿進(jìn)行檢驗,增強算法的可靠性。
綜上,本文提出一種信息融合描述子位姿估計前端算法(SuperPoint Brief and K-means visual cocation,SBK-VL)。該算法綜合考慮ORB-SLAM2和深度學(xué)習(xí)方法2種思路的優(yōu)缺點,給出一種均衡方案,用更小的計算成本得到最佳的估計精度;將該算法與經(jīng)典ORB-SLAM2算法、GCNv2-SLAM算法進(jìn)行比較,以驗證算法的有效性。
SuperPoint網(wǎng)絡(luò)是基于自監(jiān)督學(xué)習(xí)用于訓(xùn)練特征點檢測器和描述子,適用于計算機(jī)視覺中大多數(shù)視點幾何問題[14]。它能夠有效檢測圖像中的特征點和輸出特征點對應(yīng)的描述子,其中SuperPoint網(wǎng)絡(luò)中的特征點提取網(wǎng)絡(luò)在復(fù)雜環(huán)境下具有較好的抗干擾能力。SuperPoint特征點提取網(wǎng)絡(luò)框架如圖1所示。
圖1 SuperPoint特征點提取網(wǎng)絡(luò)框架圖Fig.1 SuperPoint feature point extraction network
該網(wǎng)絡(luò)輸入尺寸W×H圖像,經(jīng)過類似于VGG-net編碼形式的卷積,對圖像實施降維,提取特征,圖中的解碼部分經(jīng)過Softmax,計算圖像的每個像素成為特征點的概率,最后在Reshape中采用子像素卷積的方法將其重組為與原來圖像尺寸相同并帶有特征點位置的圖像。該網(wǎng)絡(luò)輸出圖像中的像素帶有一個0-1的數(shù)值概率表示該像素點成為特征點的概率[14]。該網(wǎng)絡(luò)結(jié)構(gòu)簡單,參數(shù)組成較少,網(wǎng)絡(luò)運算時間短,因此可以將其應(yīng)用到V-SLAM算法中,來提取復(fù)雜環(huán)境下的特征點。
多視圖幾何中已知2D的像素坐標(biāo)估計相機(jī)的運動使用的是對極幾何。
如圖2中p1和p2是一對在第1幀和第2幀中匹配好的特征點,設(shè)第1幀到第2幀的運動為旋轉(zhuǎn)和平移,旋轉(zhuǎn)和平移運動前后的2個相機(jī)的中心分別為O1、O2。設(shè)P的空間位置為P=(X,Y,Z)。
圖2 對極幾何約束Fig.2 Polar geometric constraints
根據(jù)針孔相機(jī)原理,2個像素點p1和p2的像素位置為
s1p1=KP
(1)
s2p2=K(RP+t)
(2)
式中K——相機(jī)內(nèi)參矩陣
R——相機(jī)旋轉(zhuǎn)矩陣
t——相機(jī)平移向量
s1、s2——尺度
上述2個投影關(guān)系可以寫為
p1?KP
(3)
p2?K(RP+t)
(4)
式中?表示尺度意義下的相等,現(xiàn)取
x1=K-1p1
(5)
x2=K-1p2
(6)
式中x1、x2——2個像素歸一化平面的坐標(biāo)
于是有
x2?Rx1+t
(7)
(8)
化簡后,得到用對極幾何計算相機(jī)的位姿,計算式化簡為
(9)
式(9)的中間部分記作2個矩陣:基礎(chǔ)矩陣F和本質(zhì)矩陣E。
F=K-TEK-1
(10)
E=R
(11)
可以進(jìn)一步化簡對極約束,根據(jù)特征點的配對坐標(biāo)求出E或F,根據(jù)E或F求出R、t。
SBP-VL算法架構(gòu)如圖3所示。由圖3可知,算法框架主要包括3部分:基于位姿反饋輸出的深度學(xué)習(xí)特征點提取網(wǎng)絡(luò)、特征點匹配和位姿估計。
圖3 SBK-VL算法框架Fig.3 SBK-VL algorithm framework
(1)基于概率p-SuperPoint網(wǎng)絡(luò)的特征點提取。如前所述,SuperPoint網(wǎng)絡(luò)編碼器具有類似VGG-net的架構(gòu),其網(wǎng)絡(luò)結(jié)構(gòu)簡單、參數(shù)少、運算時間短,非常適合應(yīng)用到V-SLAM算法中實現(xiàn)復(fù)雜環(huán)境下特征點提取。但在應(yīng)用中該網(wǎng)絡(luò)需要提前設(shè)定一個固定的閾值來判定圖中像素點是否為特征點。實驗中發(fā)現(xiàn),固定的閾值對于不同場景(如運動模糊場景)會導(dǎo)致連續(xù)丟幀,甚至是位姿估算失敗進(jìn)入重定模式等。為此,引入一種概率閾值p控制方法,即由特征點的概率閾值p自適應(yīng)控制該網(wǎng)絡(luò)生成特征點的質(zhì)量,當(dāng)位姿估算超出誤差范圍或位姿估算失敗時特征點的概率閾值p會被重置,以適應(yīng)場景的變化實現(xiàn)準(zhǔn)確位姿估計。另外,由于網(wǎng)絡(luò)輸出的特征點可能會有稠密現(xiàn)象,給后續(xù)特征點匹配帶來一定難度,因此,在本文算法中加入了非極大值抑制環(huán)節(jié),將多余特征點去除。
(2)特征點匹配。該部分由Brief描述子匹配和特征點K-means聚類組成。考慮到傳統(tǒng)Brief描述子主要反映的是局部特征,會造成誤匹配。為此,基于相鄰幀結(jié)構(gòu)相似性原理,引入自適應(yīng)K-means聚類剔除出現(xiàn)的誤匹配,同時采用歐氏距離平均法自適應(yīng)確定聚類類數(shù)K0。
(3)位姿估計。引入Ransac隨機(jī)抽樣對估計出的位姿進(jìn)行準(zhǔn)確性檢驗,設(shè)置誤差檢驗范圍并加入反饋環(huán)節(jié)。若估計的位姿結(jié)果超出該范圍或位姿估計失敗,則進(jìn)行反饋重新設(shè)置概率閾值p,重新產(chǎn)生特征點;否則,輸出估計準(zhǔn)確的旋轉(zhuǎn)矩陣和平移向量。
SuperPoint網(wǎng)絡(luò)是一個能夠檢測特征點和描述子的雙網(wǎng)絡(luò)。但當(dāng)輸入圖像變大、場景變大,該網(wǎng)絡(luò)的計算成本增加、運算量變大。因此,在特征點檢測中只使用SuperPoint網(wǎng)絡(luò)中的特征點檢測網(wǎng)絡(luò),這樣可以減少該網(wǎng)絡(luò)的計算時間。該特征點檢測網(wǎng)絡(luò)能夠?qū)D像中的像素點生成一個概率值的標(biāo)記,表示該像素點成為特征點的概率,因此將SuperPoint網(wǎng)絡(luò)輸出的圖像中像素點概率作為衡量特征點質(zhì)量的標(biāo)準(zhǔn)。通過設(shè)定概率閾值p便可以控制特征點的輸出。概率閾值p設(shè)置的越高表示網(wǎng)絡(luò)提取到的特征點質(zhì)量越高,輸出數(shù)量越少。特征點輸出質(zhì)量越高表示特征點在不同場景下的不變性與穩(wěn)定性越強。而前端的位姿估計面臨的2個風(fēng)險分別為由特征點誤匹配造成的位姿估計誤差太大和由特征提取數(shù)目太少而造成的位姿估計失敗。而這2個問題可以通過控制特征點的輸出來解決。
(1)位姿估計誤差太大。該情況大多是由于特征匹配出現(xiàn)誤差,而位姿估計時使用了錯誤的特征匹配數(shù)據(jù),對于前端位姿估計誤差太大,解決辦法為提高特征點的輸出質(zhì)量,減少特征點的輸出數(shù)量,即提高概率閾值p,一方面閾值p的提高使得特征點數(shù)量減少,復(fù)雜環(huán)境下特征點的描述子相似性很高的點多數(shù)會消失,降低匹配難度,且在特征點匹配的過程中進(jìn)一步減少了時間;另一方面特征點輸出質(zhì)量高、穩(wěn)定性強,在不同場景下處于前一幀圖像的特征點很大概率也會存在后一幀圖像中,在特征點匹配的過程中更加容易精確尋找到匹配的特征點,使得點與點匹配后的精度提高。對于前端位姿估計誤差太大情況,本文提出概率閾值p的控制策略公式
(12)
式中p0——初始設(shè)定閾值
e0——所有特征點映射誤差閾值
誤差閾值是以真實投影特征點為圓心,半徑為e0的圓,該誤差閾值與圖像的尺寸有一定的比例關(guān)系,即
(13)
式中W——輸入圖像的寬
H——輸入圖像的高
式(13)表示以真實投影特征點為圓心,半徑為e0的圓與輸入圖像的面積占比為0.002,根據(jù)實際輸入圖像的尺寸可以確定e0。在實際場景中可以根據(jù)實際情況對e0進(jìn)行微調(diào)。
圖4表示實際投影的2種情況:I1圖像中的點u1、u2,經(jīng)過三維空間中點P1、P2映射到圖像I2中點u′1、u′2,圖像I2中的虛線方框表示實際投影位置,實線方框為真實投影點,圓圈表示投影誤差范圍,該圖展示了實際投影在誤差范圍內(nèi)和超出誤差范圍的2種情況。
圖4 特征點投影示意圖Fig.4 Projection of feature points
圖5 控制策略示意圖Fig.5 Schematic of control strategy
圖6 閾值重設(shè)流程圖Fig.6 Threshold reset flow chart
(2)位姿估計失敗。當(dāng)復(fù)雜場景中提取到的特征點數(shù)目太少(如運動模糊)而無法滿足位姿方程的求解條件,往往會造成位姿估計失敗,針對這種情況,解決辦法為降低概率閾值p、提高特征點數(shù)量、降低質(zhì)量以滿足位姿求解方程。對于位姿估計失敗時該概率閾值p的控制策略公式為
(14)
式中pn-1——n-1次設(shè)置的概率閾值
pn——n次設(shè)置的概率閾值
該控制策略采用比例函數(shù),當(dāng)n-1次設(shè)置的概率閾值pn-1使得提取的特征點數(shù)量不足造成位姿求解失敗時,為保證降低后概率閾值所提取出的特征點數(shù)能夠滿足式(11)的求解(式(11)的求解需要至少4對匹配的特征點),所以降低后的概率閾值所提取出的特征點數(shù)應(yīng)至少為原來的4倍,于是概率閾值設(shè)置降低為原來的1/4,重新提取特征點求解位姿。該控制策略流程如圖7所示。
圖7 位姿估計失敗時閾值重設(shè)流程圖Fig.7 Threshold reset flow chart when pose estimation failed
特征點匹配如圖8所示,包括特征點預(yù)匹配、匹配特征點的自適應(yīng)K-means聚類、類與類之間的對齊剔除誤匹配3部分。
圖8 特征點匹配算法流程圖Fig.8 Feature point matching algorithm flow
2.3.1特征點預(yù)匹配
將前后2幀檢測的特征點使用Brief描述子進(jìn)行預(yù)匹配。由于Brief描述子是一種利用圖像局部信息產(chǎn)生的描述子,且采用二進(jìn)制描述,因此會造成特征點誤匹配現(xiàn)象。此時即使降低閾值也不能消除誤匹配,這是因為圖像中的紋理信息豐富,使得特征點的局部信息很容易產(chǎn)生相似性,而閾值的下降會造成點數(shù)減小,導(dǎo)致方程求解條件缺失無法求解。因此必須進(jìn)行進(jìn)一步誤匹配消除。
2.3.2特征點聚類
在特征點進(jìn)行預(yù)匹配的過程中,發(fā)現(xiàn)經(jīng)過預(yù)匹配的特征點在結(jié)構(gòu)上具有相似性,因此當(dāng)對參與預(yù)匹配的特征點進(jìn)行聚類時,前后2幀圖像的特征點能夠有很好的聚類性能,可充分利用前后2幀類的相似性剔除誤匹配?;诖?,提出K-means聚類的誤匹配剔除思路。使用K-means聚類主要是因為該方法計算簡單、直觀,不過傳統(tǒng)K-means聚類算法需要人為設(shè)定聚類系數(shù)K0,實際應(yīng)用中很難滿足,為此,提出一種自適應(yīng)的改進(jìn)措施。
首先定義距離
(15)
式中i、j——圖像中特征點聚類數(shù)
(x,y)——聚類的中心點坐標(biāo)
d0——類間的平均歐氏距離
當(dāng)該距離越大時,其一幀圖像中類與類之間距離越遠(yuǎn),在進(jìn)行類與類的對齊時越易于匹配。
選取不同的K0則會對應(yīng)不同d0,d0越大,其類與類之間的差距越大則特征點的結(jié)構(gòu)信息越明確,2幀圖像類與類之間的匹配范圍就越清晰,因此K0的確定就轉(zhuǎn)換為最大化距離d0問題。通過實驗發(fā)現(xiàn)大部分的K0取3和4時d0能夠取得最大,但K0的選取范圍不能太大,過大的K0會使得K-means在聚類時花費更多的時間,因此,將K0的合理范圍劃分在2~9之間,能夠滿足特征點類的劃分和適當(dāng)?shù)挠嬎愠杀?。由此得到具體算法流程如圖9所示。
圖9 確定K0流程圖Fig.9 Flow chart for determining K0 value
2.3.3誤匹配剔除
誤匹配剔除的關(guān)鍵在于2幀圖像中第1幀圖像的類與第2幀圖像類的對齊,而類的中心點可以表示一類特征點的范圍,因此類與類的對齊就轉(zhuǎn)換為中心點匹配問題。首先,對輸入的前后2幀圖像根據(jù)圖9流程圖所確定的K0分別聚成K0類;其次計算前后2幀K0類的中心點坐標(biāo);在類的中心點周圍以9×9的方格取81位像素值作為該中心點的描述子,具體示意圖如圖10所示。
圖10 類中心點的描述方式Fig.10 Description of class center point
圖10中的實心點表示類中心點,網(wǎng)格表示類中心點周圍像素值。對每個中心點分別取上述描述方式,并在2幀之間進(jìn)行匹配,與預(yù)匹配結(jié)果進(jìn)行比較,最終剔除誤匹配。顯然類的中心點的對齊代表的是2類特征點結(jié)構(gòu)的相似性和全局匹配性,可從整體范圍內(nèi)剔除特征點的誤匹配,充分利用了全局信息。為了更好地說明誤匹配剔除過程,示例如圖11所示。
圖11 類的匹配示意圖Fig.11 Schematic of matching
圖11中實心圓點表示Brief描述子匹配后的特征點;三角形的點和虛直線表示使用Brief所產(chǎn)生的誤匹配;正方形點表示聚類的中心點,虛線圓圈表示特征點聚類Ⅰ的范圍,實線圓圈表示特征點聚類Ⅱ的范圍。由圖11可以看出,本該在類Ⅰ的特征點被Brief描述子匹配到了類Ⅱ的范圍里,發(fā)生誤匹配,為此采用聚類中心匹配方法,利用前后2幀圖像類Ⅰ和類Ⅱ的劃分和對齊可以有效地將誤匹配結(jié)果剔除。
圖12 位姿檢驗流程圖Fig.12 Flow chart of pose estimation
為了驗證本文算法的有效性,分別比較了SuperPoint與FAST特征點的場景適應(yīng)性、概率閾值p控制策略正確性、提高概率閾值p對特征點匹配準(zhǔn)確率的影響、Brief描述子與K-means結(jié)合對特征點誤匹配剔除的有效性等,最后,將本文方法與經(jīng)典ORB-SLAM2算法[10]、GCNv2-SLAM算法[16]進(jìn)行了比較,驗證算法的有效性和優(yōu)越性。
分別在明亮變化場景、運動模糊場景、引入高斯噪聲和椒鹽噪聲場景,通過SuperPoint網(wǎng)絡(luò)和FAST提取特征點,對比2種特征提取器的效果,實驗結(jié)果如圖13所示。
圖13 不同場景中兩種算法對比結(jié)果Fig.13 Comparison results of two algorithms in different scenarios
圖像中實心圓點表示提取到的特征點,由上述實驗結(jié)果可以看出:在亮度減小時(夜間場景)SuperPoint提取結(jié)果明顯優(yōu)于FAST,F(xiàn)AST提取點數(shù)不足以求解方程;在亮度增加時SuperPoint提取的特征點分布性較FAST好。在運動模糊場景下,SuperPoint提取結(jié)果明顯優(yōu)于FAST,F(xiàn)AST提取點數(shù)僅有4點。在對圖像引入噪聲后,發(fā)現(xiàn)FAST對噪聲很敏感,而SuperPoint對噪聲有抗干擾作用。綜上,SuperPoint的提取效果明顯優(yōu)于FAST,對場景的適應(yīng)能力更強。
SuperPoint網(wǎng)絡(luò)輸出圖像中的像素帶有一個0-1的概率閾值標(biāo)記,表示該像素點成為特征點的概率[14]。該概率閾值越高表示該特征點響應(yīng)越高。如果設(shè)置一個概率閾值p,使得網(wǎng)絡(luò)輸出的特征點大于概率閾值p的特征點,輸出便篩選出了具有高概率的特征點。對前后2幀采用不同的概率閾值p進(jìn)行特征點的提取,實驗結(jié)果發(fā)現(xiàn),帶有高概率標(biāo)記的特征點能夠同時出現(xiàn)在前后2幀圖像中,在幀與幀的變化過程中表現(xiàn)相對穩(wěn)定,比帶有低概率特征點穩(wěn)定,不容易丟失,即帶有高概率標(biāo)記的特征點在應(yīng)對環(huán)境變化時表現(xiàn)穩(wěn)定,特征點質(zhì)量高。圖14為前后2幀帶有概率標(biāo)記的特征點圖像。
圖14 前后2幀帶有概率標(biāo)記的特征點圖像Fig.14 Feature point images with probability markers in two frames before and after
圖像第1幀采用概率閾值p=0.3進(jìn)行特征點的提取,第2幀圖像采用概率閾值p=0.4進(jìn)行提取。其中使用圓圈標(biāo)記的特征點顯示有較高的概率標(biāo)記值,也都存留在了第2幀中,而帶有五邊形標(biāo)記的特征點顯示有相對較低的概率標(biāo)記值,在后一幀中沒有保留。從上述結(jié)果可以發(fā)現(xiàn),帶有高概率標(biāo)記的特征點在前后2幀中表現(xiàn)穩(wěn)定。因此,采用SuperPoint網(wǎng)絡(luò)提取特征點的輸出響應(yīng)值(概率閾值)Pi作為衡量該特征點質(zhì)量,輸出響應(yīng)值Pi越大表明質(zhì)量越高,輸出響應(yīng)值Pi越小表明質(zhì)量越低。設(shè)定p為概率閾值,則集合A表示特征點質(zhì)量相對高的集合,為A={Pi|Pi>p,0
對于位姿估計失敗情況,在復(fù)雜環(huán)境中往往由于運動模糊產(chǎn)生的特征點輸出較少,不滿足位姿求解方程,針對這種情況,應(yīng)當(dāng)降低概率閾值產(chǎn)生更多的特征點,因此根據(jù)式(14)將初始閾值重置為原來的1/4,即0.05重新提取特征點進(jìn)行位姿估計,由圖15可以看出概率閾值改變后特征點數(shù)明顯增加,可進(jìn)行位姿估計。
圖15 模糊場景下特征點提取匹配結(jié)果Fig.15 Feature point extraction and matching results when in fuzzy scene
圖16 特征點提取匹配映射結(jié)果Fig.16 Feature point extraction matching mapping results
圖16a為p=0.2時特征點的特征提取匹配情況,根據(jù)其特征匹配計算出R,當(dāng)圖I1用R進(jìn)行映射時并不能恢復(fù)圖I2。對于圖16a由于產(chǎn)生錯誤的位姿估計導(dǎo)致圖像的映射結(jié)果錯誤,在圖16b中將p重置為0.37,減少特征點數(shù)量提高特征點質(zhì)量,計算出R能夠很好地使其恢復(fù)至原圖I2。
為了驗證提高特征點質(zhì)量(即提高概率閾值)對特征點匹配準(zhǔn)確率的影響,進(jìn)行如表1所示實驗,實驗以概率閾值從0.2提升到0.25時特征點的匹配情況為例,并分別針對TUM和ETHl數(shù)據(jù)集進(jìn)行測試,具體實驗結(jié)果見表1,圖17為其中1組對比圖結(jié)果。
圖17對應(yīng)實驗5(表1第5行),采用ETHl數(shù)據(jù)集進(jìn)行驗證結(jié)果。從對比圖中可清晰地看出,在提高概率閾值后,原本在前一幀中存在的特征點(圖中黃色圓圈標(biāo)記)在下一幀中發(fā)生部分消失,此時由表1統(tǒng)計數(shù)據(jù)可知,消失的特征點中,誤匹配點消失的比率更高。如實驗5中,刪除特征點總數(shù)為30個,其中誤匹配特征點為11個,占比36.7%,明顯高于概率閾值提升之前的19.5%。分析原因可知,誤匹配的特征點質(zhì)量偏低,當(dāng)適當(dāng)提升概率閾值后首先被剔除的特征點是這些低質(zhì)量的特征點,因此本文算法相當(dāng)于起到一個濾除作用,可以有效提升匹配的正確率。從表1也可以看出,對于給出的6個實驗中,均實現(xiàn)了正確率的提升,平均提升率為4.34個百分點。由此,可以進(jìn)一步表明,提高概率閾值有利于提升特征點的匹配正確率。
首先使用特征點提取器對前后2幀圖像進(jìn)行特征點提取,之后使用Brief描述子進(jìn)行匹配,在前后2幀中分別求d0,求出使2幀d0之和最大的值所對應(yīng)的K0,確定聚類類數(shù)K0。由圖18可以看出,當(dāng)K0=3時取得最大值。將前后2幀圖像分別分成3類,對分成3類的中心點進(jìn)行對齊,剔除產(chǎn)生的誤匹配。
實驗結(jié)果如圖19所示,在Brief預(yù)匹配后特征點之間產(chǎn)生了誤匹配,對參與匹配的特征點經(jīng)過K0=3的聚類,因參與匹配的特征點在結(jié)構(gòu)上具有相似性,利用其結(jié)構(gòu)分布相似性對聚類后的特征點類進(jìn)行中心點對齊,將幀與幀之間的類進(jìn)行對齊。實驗結(jié)果最后顯示誤匹配的特征點被剔除。
表1 概率閾值提高后匹配情況Tab.1 Improved probability threshold matching
為了驗證該匹配方法的準(zhǔn)確程度,分別在TUM數(shù)據(jù)集和ETHI數(shù)據(jù)集中選取了幾對圖像幀進(jìn)行了特征匹配實驗,實驗結(jié)果表明信息融合描述子的平均匹配正確率為92.71%,Brief描述子進(jìn)行匹配的平均正確率為80.86%。使用信息融合描述子對比使用Brief描述子的匹配正確率平均提高11.87個百分點。表2為該方法的匹配結(jié)果。
圖17 Brief的匹配結(jié)果(Eth1-ethl_syn1_flash)Fig.17 Brief matching results
圖18 K0值的選定Fig.18 Selection of K0 value
圖19 Brief與K-means結(jié)合的結(jié)果Fig.19 Result of combination of Brief and K-means
表2 特征點匹配精度比較結(jié)果Tab.2 Feature point matching accuracy comparison
為驗證本文前端算法替換ORB-SLAM2前端能夠提高定位精度,分別使用TUM RGB-D和ETHl[22]公共數(shù)據(jù)集的多個典型視頻序列對該算法進(jìn)行測試,與ORB-SLAM2[10]、GCNv2-SLAM算法[16]在絕對軌跡誤差(ATE)、相對軌跡誤差(RPE)、平均跟蹤時間等指標(biāo)進(jìn)行了比較。實驗平臺的硬件環(huán)境CPU為AMD Ryzen 5 3600 CPU 3.60 GHz,GPU為NVIDIA GTX 1650 SUPER 4 GB,運行內(nèi)存為16 GB。實驗結(jié)果表明該算法能以每個序列的幀速率實時運行。基于TUM和ETHl的視頻序列的實驗結(jié)果如圖20~23所示。
圖20 視頻序列fr1_xyz不同算法仿真結(jié)果Fig.20 Simulation diagrams of different algorithms of video sequence fr1_xyz
圖21 視頻序列fr2_rpy不同算法仿真結(jié)果Fig.21 Simulation diagrams of different algorithms of video sequence fr2_rpy
圖22 視頻序列Ethl_flash不同算法仿真結(jié)果Fig.22 Simulation diagrams of different algorithms of video sequence Ethl_flash
圖20~23實驗結(jié)果展示了3種算法在TUM視頻序列fr1_xyz、fr2_rpy和ETHl視頻序列Ethl_flash、Ethi_local的測試結(jié)果,表3、4顯示了ETHl和TUM視頻序列在3種算法下的測試結(jié)果。
其中在TUM數(shù)據(jù)集下,在絕對誤差和相對誤差方面總體上GCNv2-SLAM最小,SBK-SLAM次之,ORB-SLAM2最大;而在ETHl數(shù)據(jù)集下,總體上SBK-SLAM最小,GCNv2-SLAM與ORB-SLAM2相當(dāng)。分析可知,當(dāng)使用TUM數(shù)據(jù)集時GCNv2-SLAM的深度網(wǎng)絡(luò)作用精度強使得誤差最小,精度總體上均高于SBK-SLAM、ORB-SLAM2。而當(dāng)使用有干擾的數(shù)據(jù)集ETHl進(jìn)行實驗時,SBK-SLAM精度總體上均高于GCNv2-SLAM和ORB-SLAM2,分析可知主要在于SBK-SLAM在特征點匹配期間除了計算Brief描述子外加入了K-means聚類算法,從而降低了誤匹配使得最后的定位精度提高。
圖23 視頻序列Ethl_local不同算法仿真結(jié)果Fig.23 Simulation diagrams of different algorithms of video sequence Ethl_local
表3 ETHl數(shù)據(jù)集下SLAM算法比較結(jié)果Tab.3 Comparison results of SLAM algorithms under ETHl dataset
表4 TUM數(shù)據(jù)集下SLAM算法比較結(jié)果Tab.4 Comparison results of SLAM algorithms under TUM dataset
但在平均跟蹤時間總體上GCNv2-SLAM用時最長、SBK-SLAM次之、ORB-SLAM2最小。主要原因在于GCNv2-SLAM特征點提取階段和特征點匹配階段使用了深度網(wǎng)絡(luò),SBK-SLAM只在特征點提取階段使用了深度網(wǎng)絡(luò),匹配階段沒有引入深度網(wǎng)絡(luò)計算。
從總體看,SBK-SLAM在匹配中增加了聚類算法,相比ORB-SLAM2提高了定位精度,在深度學(xué)習(xí)網(wǎng)絡(luò)中只提取特征點適應(yīng)場景復(fù)雜性,相比GCNv2-SLAM減少了運算時間。
(1)在特征點提取階段給出一種概率p-SuperPoint深度學(xué)習(xí)算法,相比于ORB-SLAM2的FAST特征提取器能更好地適應(yīng)場景的復(fù)雜性,具有更高的魯棒性。
(2)在特征點匹配階段提出一種基于Brief描述子與自適應(yīng)K-means聚類復(fù)合算法,實現(xiàn)局部細(xì)節(jié)和全局描述信息融合,可有效減少特征點的誤匹配。
(3)在位姿估計階段,使用一種Ransac隨機(jī)抽樣對估計位姿進(jìn)行準(zhǔn)確性檢驗,通過設(shè)置誤差檢驗范圍并加入反饋環(huán)節(jié),提升位姿估計的準(zhǔn)確性,增強算法的可靠性。