程 珉 陳臨強(qiáng) 楊全鑫(杭州電子科技大學(xué)計(jì)算機(jī)學(xué)院 浙江 杭州 310018)
同時(shí)定位與地圖構(gòu)建(Simultaneous Localization and Mapping, SLAM)最早由Smith等[1-2]提出,應(yīng)用于機(jī)器人領(lǐng)域,解決機(jī)器人在未知環(huán)境中隨著移動(dòng)過(guò)程估計(jì)出自身位置以及環(huán)境三維地圖點(diǎn)云的問(wèn)題。隨著技術(shù)的發(fā)展,基于激光雷達(dá)的SLAM算法已趨于成熟,研究熱點(diǎn)逐漸轉(zhuǎn)向基于視覺(jué)的SLAM算法,其中使用單目攝像頭作為傳感器的SLAM是計(jì)算機(jī)視覺(jué)中最突出的挑戰(zhàn)之一,即基于單目視覺(jué)的同時(shí)定位和地圖構(gòu)建算法(Monocular Visual Simultaneous Localization and Mapping, MV-SLAM)。
Davison等[3]提出了第一個(gè)MV-SLAM算法——MonoSLAM,其基于濾波器,計(jì)算量很大,只能處理特征點(diǎn)稀疏的小場(chǎng)景。Klein等[4]提出PTAM,首次將SLAM算法分成跟蹤和建圖兩個(gè)線(xiàn)程并行運(yùn)行,并且是第一個(gè)采用關(guān)鍵幀機(jī)制和非線(xiàn)性?xún)?yōu)化的SLAM算法,極大地降低了算法復(fù)雜度,奠定了MV-SLAM的基礎(chǔ)。PTAM的跟蹤線(xiàn)程基于FAST特征提取與圖像塊搜索匹配,較為耗時(shí),只能應(yīng)用于室內(nèi)小場(chǎng)景。文獻(xiàn)[5-6]提出了基于直接法的MV-SLAM,其不計(jì)算特征點(diǎn),而是直接跟蹤圖像像素計(jì)算相機(jī)運(yùn)動(dòng),對(duì)弱紋理環(huán)境魯棒性好,并且可以構(gòu)建稠密地圖,但是其基于灰度不變假設(shè),若在光度變化或動(dòng)態(tài)場(chǎng)景會(huì)破壞假設(shè)導(dǎo)致算法失敗。隨著特征點(diǎn)算法的發(fā)展,文獻(xiàn)[7-8]提出了基于PTAM改進(jìn)的ORB-SLAM,采用ORB(Oriented FAST and Rotated BRIEF)[9]特征,匹配特征點(diǎn)只需計(jì)算特征點(diǎn)二進(jìn)制描述子的距離,滿(mǎn)足算法的實(shí)時(shí)性,并加入回環(huán)檢測(cè)線(xiàn)程消除累計(jì)誤差,可以應(yīng)用于室外大場(chǎng)景,是當(dāng)今最具有代表性的MV-SLAM算法之一。而后,針對(duì)基于直接法與特征點(diǎn)法的MV-SLAM的不足,研究者對(duì)其進(jìn)行改進(jìn),如Piao等[10]提出的AVIO,將移動(dòng)設(shè)備的慣性測(cè)量單元信息融入直接法;Pumarola等[11]提出的PL-SLAM,在點(diǎn)特征的基礎(chǔ)上增加線(xiàn)特征的提取,提高SLAM算法對(duì)點(diǎn)特征缺失場(chǎng)景的魯棒性;針對(duì)動(dòng)態(tài)場(chǎng)景,Bescos等[12]提出了基于深度學(xué)習(xí)的DynaSLAM,檢測(cè)場(chǎng)景中的動(dòng)態(tài)目標(biāo)并進(jìn)行背景修復(fù)。
基于特征點(diǎn)法的MV-SLAM,圍繞著特征點(diǎn)的匹配關(guān)系運(yùn)行,只有提取到的匹配點(diǎn)足夠充足且精確,才能正確地計(jì)算相機(jī)位姿與地圖點(diǎn)世界坐標(biāo)。并且,MV-SLAM首先要進(jìn)行算法的初始化,其極大地依賴(lài)于特征點(diǎn)的匹配精度,而在紋理缺失或重復(fù)的場(chǎng)景,MV-SLAM常常由于無(wú)法獲得足夠的匹配關(guān)系,初始化失敗。
ORB-SLAM采用的BRIEF描述子[13]只簡(jiǎn)單考慮像素灰度信息,丟失了大量紋理信息,通常需要昂貴的后驗(yàn)方法(如RANSAC算法)來(lái)驗(yàn)證匹配,從而增加了整個(gè)過(guò)程的運(yùn)行時(shí)間,甚至,在紋理特殊的場(chǎng)景由于大量誤匹配而使算法無(wú)法運(yùn)行。Yang等[14]提出了局部差分二進(jìn)制(Local Difference Binary, LDB)描述子,綜合考慮特征點(diǎn)周?chē)钠骄叶扰c梯度,但是其不具備旋轉(zhuǎn)和尺度不變性,不適用于需要在真實(shí)世界中運(yùn)行的SLAM算法。因此,為了提高ORB-SLAM算法的適用范圍,本文提出一種考慮圖像塊紋理信息的特征對(duì)其進(jìn)行改進(jìn)。首先在特征提取階段增加特征點(diǎn)鄰域水平與垂直方向的梯度信息來(lái)描述特征。然后根據(jù)內(nèi)點(diǎn)比例(Internal Point Ratio, IPR)與初始化時(shí)間選擇相機(jī)運(yùn)動(dòng)模型算法的迭代次數(shù)。最后從特征點(diǎn)精度與相機(jī)軌跡精度考慮,采用內(nèi)點(diǎn)比例均值(Internal Point Ratio Mean, IPRM)和相機(jī)絕對(duì)軌跡誤差(Absolute Trajectory Error, ATE)作為評(píng)價(jià)標(biāo)準(zhǔn)。實(shí)驗(yàn)結(jié)果表明,與ORB-SLAM相比,改進(jìn)后的算法精度明顯提高,并且在多種弱紋理環(huán)境下成功建圖。
ORB-SLAM算法基于ORB特征匹配,分為跟蹤、建圖、回環(huán)檢測(cè)三個(gè)線(xiàn)程并行運(yùn)行。跟蹤線(xiàn)程對(duì)每一個(gè)視頻幀提取ORB特征點(diǎn),首先進(jìn)行地圖初始化,然后根據(jù)特征點(diǎn)的匹配關(guān)系估計(jì)相機(jī)位姿與地圖點(diǎn)云,并根據(jù)一定規(guī)則決定關(guān)鍵幀;接著,關(guān)鍵幀插入局部建圖線(xiàn)程,構(gòu)造局部地圖并用集束調(diào)整優(yōu)化相機(jī)位姿與地圖點(diǎn)位置;同時(shí)回環(huán)檢測(cè)線(xiàn)程在后端對(duì)每一個(gè)關(guān)鍵幀檢測(cè)回環(huán)以消除累計(jì)誤差。本文主要改進(jìn)該算法的跟蹤線(xiàn)程,其流程如圖1所示。
ORB特征由FAST角點(diǎn)與BRIEF描述子組成,其計(jì)算速度很快,可以滿(mǎn)足SLAM算法的實(shí)時(shí)性要求。FAST角點(diǎn)提取圖像中比其鄰域大部分像素點(diǎn)灰度值大或者小的像素點(diǎn),而后BRIEF描述子在提取到的角點(diǎn)鄰域隨機(jī)選取n對(duì)點(diǎn)對(duì),執(zhí)行二進(jìn)制測(cè)試τ:
(1)
式中:I為點(diǎn)對(duì)(x、y)的灰度值。
將得到的n個(gè)二進(jìn)制編碼相連,這個(gè)二進(jìn)制字符串就是FAST角點(diǎn)的描述子。
BRIEF描述子只考慮了特征點(diǎn)的灰度信息,因此,特征點(diǎn)不具備很強(qiáng)的獨(dú)特性,導(dǎo)致SLAM算法在特征匹配環(huán)節(jié)存在大量誤匹配從而降低相機(jī)軌跡精度,甚至在弱紋理場(chǎng)景中無(wú)法初始化。為了更好地描述特征點(diǎn),提取圖像的紋理信息,本文在此基礎(chǔ)上提出一種改進(jìn)的ORB特征,其描述子綜合考慮FAST角點(diǎn)的灰度信息與其鄰域的梯度信息,然后采用文獻(xiàn)[15]的多網(wǎng)格策略捕獲圖像不同空間粒度下的不同模式,并在計(jì)算描述子之前計(jì)算角點(diǎn)的主導(dǎo)方向,將角點(diǎn)鄰域旋轉(zhuǎn)到該方向,使其具有旋轉(zhuǎn)不變性。改進(jìn)的ORB特征算法具體步驟如下。
首先,為輸入視頻幀F(xiàn)(x,y)構(gòu)造高斯金字塔,采用高斯濾波器G(x,y,σi)平滑圖像,逐層增加平滑因子σi的值,獲得金字塔的每一層圖像,以構(gòu)建高斯金字塔Pyri(1≤i≤L):
Pyri=F(x,y)×G(x,y,σi)=
(2)
式中:L為高斯金字塔層數(shù)。
在每層圖像金字塔上提取FAST角點(diǎn),使其具有尺度不變性,對(duì)每個(gè)角點(diǎn)修剪以點(diǎn)為中心的N×N圖像塊,采用基于灰度矩的方法計(jì)算每個(gè)圖像塊的主導(dǎo)方向。具體來(lái)說(shuō),圖像塊的灰度矩定義為:
(3)
式中:I(x,y)是像素(x,y)的灰度值;p、q的值為0或1。
利用圖像塊的灰度矩可得圖像塊的灰度質(zhì)心:
(4)
在大多數(shù)情況下,圖像塊的灰度質(zhì)心偏離其幾何中心。構(gòu)造一個(gè)從幾何中心O到灰度質(zhì)心C的向量OC。那么,圖像塊的主導(dǎo)方向?yàn)椋?/p>
θ=tan-1(m01,m10)
(5)
然后,將圖像塊旋轉(zhuǎn)至特征點(diǎn)的主導(dǎo)方向計(jì)算描述子得到旋轉(zhuǎn)不變性。將圖像塊劃分為n×n個(gè)網(wǎng)格單元,從每個(gè)網(wǎng)格單元提取水平和垂直梯度dx、dy,以及其中心的灰度值I,隨機(jī)提取m對(duì)網(wǎng)格對(duì),考慮網(wǎng)格對(duì)i、j的梯度值與網(wǎng)格中心灰度值,執(zhí)行二進(jìn)制測(cè)試τ:
(6)
式中:Func()={I,dx、dy}。每對(duì)網(wǎng)格單元分別比較三個(gè)值的大小獲得三位二進(jìn)制字符串。
本文應(yīng)用四級(jí)網(wǎng)格策略(2×2,3×3,4×4,5×5)分別計(jì)算描述子,從而獲得圖像更豐富的紋理信息,將其相連得到一串1 386位的字符串。
最后,采用基于庫(kù)數(shù)據(jù)集[16]訓(xùn)練的256個(gè)位索引,對(duì)該字符串進(jìn)行選擇。將這些選定的位連接起來(lái),形成一個(gè)32字節(jié)的二進(jìn)制描述符。圖2為改進(jìn)的ORB特征提取的流程。
圖2 改進(jìn)的ORB特征提取流程
對(duì)一組輸入視頻幀分別進(jìn)行兩種特征的提取與匹配,構(gòu)造相同的8層高斯金字塔,采用相同的匹配方式,即根據(jù)上一幀的特征點(diǎn)位置確定當(dāng)前幀的匹配點(diǎn)搜索范圍,然后計(jì)算上一幀特征點(diǎn)與當(dāng)前幀搜索范圍內(nèi)特征點(diǎn)的漢明距離,選擇距離最小與次小的兩個(gè)點(diǎn),計(jì)算其距離的比率,若小于1則距離最小的點(diǎn)為匹配點(diǎn)。本文定義匹配點(diǎn)的IPR值來(lái)評(píng)價(jià)ORB與改進(jìn)的ORB特征精度。假設(shè)連續(xù)兩幀F(xiàn)1、F2的匹配點(diǎn)為(x1,x2),個(gè)數(shù)為N,對(duì)于匹配點(diǎn)數(shù)超過(guò)100的連續(xù)幀,隨機(jī)選取200組匹配點(diǎn)用RANSAC算法迭代計(jì)算對(duì)應(yīng)的單應(yīng)矩陣H,每組包含8對(duì)匹配點(diǎn),計(jì)算出一個(gè)H,然后將當(dāng)前幀所有匹配點(diǎn)通過(guò)H投影到上一幀中計(jì)算重投影誤差E:
E=d(x1,H-1x2)2+d(x2,Hx1)2
(7)
若E小于閾值t,則判斷該特征點(diǎn)為內(nèi)點(diǎn)。假設(shè)內(nèi)點(diǎn)數(shù)為n,由此得出每一個(gè)單應(yīng)矩陣對(duì)應(yīng)的IPR值:
(8)
以圖3為實(shí)驗(yàn)環(huán)境,采用一組視頻幀的IPR值測(cè)試改進(jìn)后的ORB特征點(diǎn)精度,結(jié)果如圖4所示,可知本文算法特征點(diǎn)精度明顯提高。在弱紋理場(chǎng)景,ORB-SLAM常常由于特征稀疏得不到足夠多精確的匹配點(diǎn),無(wú)法初始化,所以本文采用精度更高的改進(jìn)ORB特征在其跟蹤線(xiàn)程進(jìn)行改進(jìn),提高ORB-SLAM算法在弱紋理場(chǎng)景的適用性。
圖3 特征點(diǎn)精度對(duì)比實(shí)驗(yàn)環(huán)境
圖4 IPR值對(duì)比
與以雙目或者深度相機(jī)作為傳感器的SLAM算法不同,MV-SLAM首先要進(jìn)行初始化,獲取一組相機(jī)初始位姿與初始地圖,只有初始化成功,算法才能順利運(yùn)行。具體來(lái)說(shuō),ORB-SLAM的初始化階段首先對(duì)兩個(gè)連續(xù)幀進(jìn)行特征提取,然后選擇匹配點(diǎn)個(gè)數(shù)大于100的兩個(gè)連續(xù)幀,從中提取200組匹配點(diǎn)采用RANSAC算法與八點(diǎn)法并行地迭代計(jì)算相機(jī)運(yùn)動(dòng)模型,即單應(yīng)矩陣Hcr與本質(zhì)矩陣Fcr:
xc=Hcrxr
(9)
(10)
式中:xc、xr為連續(xù)幀之間的匹配點(diǎn),選取八對(duì)匹配點(diǎn)即可求解上述公式。
為每個(gè)相機(jī)運(yùn)動(dòng)模型M計(jì)算相應(yīng)得分SM:
(11)
(12)
選出得分最高的兩個(gè)模型,計(jì)算得分比例R:
(13)
式中:SH和SF為兩個(gè)模型對(duì)應(yīng)的得分,若R>0.45,則場(chǎng)景可以近似為一個(gè)平面,選擇模型Hcr,否則,選擇Fcr。
最后,采用奇異值分解從相機(jī)運(yùn)動(dòng)模型恢復(fù)出相機(jī)運(yùn)動(dòng),即旋轉(zhuǎn)矩陣與平移向量,再通過(guò)三角測(cè)量計(jì)算出特征點(diǎn)的三維坐標(biāo)。由此,便完成了MV-SLAM算法的地圖初始化。
由2.1節(jié)可知,本文在特征提取階段采用了描述子信息更豐富的特征點(diǎn),匹配精度明顯提高,但是由于特征點(diǎn)計(jì)算復(fù)雜度的提高,使初始化時(shí)間增長(zhǎng),受益于其更高的匹配精度,本文通過(guò)降低模型選擇算法的RANSAC迭代次數(shù)來(lái)適應(yīng)改進(jìn)后特征計(jì)算的時(shí)間代價(jià)。使用如圖3所示實(shí)驗(yàn)場(chǎng)景測(cè)試不同迭代次數(shù)對(duì)算法的影響,并采用運(yùn)行15次的初始化時(shí)間作為質(zhì)量評(píng)價(jià)。圖5為不同迭代次數(shù)下算法運(yùn)行15次的初始化時(shí)間,并按從小到大排列??梢钥闯觯?dāng)?shù)螖?shù)為默認(rèn)值200時(shí),改進(jìn)的ORB-SLAM算法的初始化時(shí)間為4~7 s,較ORB-SLAM明顯增長(zhǎng);當(dāng)?shù)螖?shù)為175時(shí),改進(jìn)的ORB-SLAM初始化時(shí)間基本與為200時(shí)相同;當(dāng)?shù)螖?shù)為150時(shí),改進(jìn)的ORB-SLAM初始化時(shí)間降為0.9~4 s,與迭代次數(shù)為200的ORB-SLAM基本持平;而當(dāng)?shù)螖?shù)為125時(shí),初始化時(shí)間起伏較大,因?yàn)榈螖?shù)過(guò)少可能會(huì)引起最優(yōu)模型的得分不高,導(dǎo)致三角測(cè)量的誤差較大,無(wú)法恢復(fù)出足夠符合條件的地圖點(diǎn);當(dāng)ORB-SLAM迭代次數(shù)降為150時(shí)也與此情況相同。各迭代次數(shù)下運(yùn)行15次的模型得分均值如表1所示,其中:A為改進(jìn)的ORB-SLAM算法;B為ORB-SLAM算法??芍?dāng)?shù)螖?shù)過(guò)少時(shí),得分有所降低,模型誤差較大,無(wú)法滿(mǎn)足后續(xù)三角測(cè)量的條件,算法將繼續(xù)重新選擇連續(xù)幀進(jìn)行初始化,從而拖慢了初始化時(shí)間。綜上所述,本文選擇150作為改進(jìn)的ORB-SLAM初始化階段模型算法的迭代次數(shù),使其在提高特征點(diǎn)匹配精度的同時(shí)保證初始化的時(shí)間效率。特別地,ORB-SLAM算法假設(shè)相機(jī)運(yùn)動(dòng)勻速,換句話(huà)說(shuō),其在成功初始化后不再計(jì)算新的相機(jī)運(yùn)動(dòng)模型,而是使用上一幀的相機(jī)位姿與運(yùn)動(dòng)作為當(dāng)前幀的初始位姿,所以本文僅在初始化階段優(yōu)化模型選擇算法的迭代次數(shù)。
圖5 不同迭代次數(shù)下的初始化時(shí)間對(duì)比
本文分別使用TUM數(shù)據(jù)集[17]與通過(guò)單目攝像頭采集的實(shí)際場(chǎng)景數(shù)據(jù)集,評(píng)估改進(jìn)的ORB-SLAM的相機(jī)軌跡精度與對(duì)紋理缺失或重復(fù)場(chǎng)景的適用性,并與ORB-SLAM進(jìn)行對(duì)比。實(shí)驗(yàn)平臺(tái)為ubuntu14.04,電腦配置為Intel Core i5-3230M CPU,8 GB RAM,主頻為2.60 GHz,未使用GPU加速。
TUM數(shù)據(jù)集是由Kinect采集的兩個(gè)室內(nèi)場(chǎng)景的36個(gè)圖像序列,每個(gè)數(shù)據(jù)集包含RGB圖像、深度圖像與相機(jī)的真實(shí)軌跡,本文選用其中15個(gè)圖像序列的RGB圖像,評(píng)估改進(jìn)的ORB-SLAM算法的相機(jī)軌跡精度與特征點(diǎn)精度。
3.1.1算法精度測(cè)試
文獻(xiàn)[17]通過(guò)測(cè)量算法估計(jì)相機(jī)軌跡與真實(shí)相機(jī)軌跡之間的絕對(duì)距離來(lái)計(jì)算相機(jī)軌跡精度。本文使用與文獻(xiàn)[17]相同的方法。假設(shè)軌跡序列是時(shí)間同步的,并且都具有長(zhǎng)度n??梢詫r(shí)間步長(zhǎng)i處的ATE計(jì)算為:
(14)
式中:Xi為算法測(cè)量的相機(jī)軌跡;Yi為真實(shí)相機(jī)軌跡;S為兩個(gè)軌跡對(duì)應(yīng)于最小二乘解的剛體變換。
然后,計(jì)算平移分量所有時(shí)間指數(shù)的均方根誤差(RMSE),即:
(15)
式中:trans(ATE)是指相對(duì)姿態(tài)誤差A(yù)TEi的平移分量。
表2為改進(jìn)的ORB-SLAM與ORB-SLAM、PL-SLAM、DynaSLAM的RMSE值對(duì)比??梢钥闯?,相較于ORB-SLAM,改進(jìn)的ORB-SLAM的相機(jī)軌跡精度得到明顯提高。而在某些線(xiàn)特征豐富、點(diǎn)特征缺失的場(chǎng)景,PL-SLAM精度較好,在動(dòng)態(tài)場(chǎng)景則DynaSLAM精度最好。并且在弱紋理場(chǎng)景數(shù)據(jù)集rgbd1_floor與動(dòng)態(tài)場(chǎng)景數(shù)據(jù)集r3_wa_xyz,ORB-SLAM初始化失敗導(dǎo)致系統(tǒng)無(wú)法運(yùn)行,而改進(jìn)的ORB-SLAM成功運(yùn)行。如圖6所示,(a)顯示了一個(gè)紋理缺失的地板場(chǎng)景,特征點(diǎn)稀疏,(b)為ORB-SLAM的當(dāng)前幀,顯示ORB-SLAM雖然提取到了部分FAST角點(diǎn),依然初始化失敗,而(c)和(d)顯示了改進(jìn)的ORB-SLAM算法在此場(chǎng)景成功建圖,其提取的FAST角點(diǎn)與ORB-SLAM相同,得益于改進(jìn)的考慮圖像塊紋理信息的描述子,算法的特征匹配精度大大提高,從而可以在此弱紋理場(chǎng)景成功初始化,同時(shí)由表2可知,該場(chǎng)景的相機(jī)軌跡誤差也很低。
3.1.2特征點(diǎn)精度測(cè)試
為了進(jìn)一步評(píng)價(jià)特征點(diǎn),本文定義整個(gè)跟蹤線(xiàn)程中特征匹配的內(nèi)點(diǎn)比例均值IPRM評(píng)價(jià)特征點(diǎn)的精度,即:
(16)
式中:S為RANSAC算法的迭代次數(shù)。
圖7展示了15個(gè)數(shù)據(jù)集跟蹤線(xiàn)程的IPRM值,實(shí)驗(yàn)結(jié)果表明相對(duì)于ORB-SLAM,改進(jìn)的ORB-SLAM的特征點(diǎn)精度更高,更有利于單目SLAM算法的運(yùn)行。
3.1.3平均跟蹤時(shí)間測(cè)試
跟蹤時(shí)間方面,改進(jìn)的ORB-SLAM算法在特征提取階段不僅計(jì)算了特征點(diǎn)的灰度信息,還計(jì)算了其鄰域水平與垂直方向的梯度信息來(lái)描述特征點(diǎn),所以時(shí)間略有增長(zhǎng),但避免了大量的誤匹配,使算法精度與對(duì)紋理特殊場(chǎng)景的適用性得以提高。而PL-SLAM由于增加了線(xiàn)特征的提取與匹配,時(shí)間增長(zhǎng)較大;Dynaslam對(duì)場(chǎng)景進(jìn)行動(dòng)態(tài)目標(biāo)檢測(cè)與背景修復(fù),并且沒(méi)有對(duì)實(shí)時(shí)操作進(jìn)行優(yōu)化,所以沒(méi)有達(dá)到實(shí)時(shí)運(yùn)行。表3為改進(jìn)的ORB-SLAM與ORB-SLAM、PL-SLAM、DynaSLAM的平均跟蹤時(shí)間對(duì)比。
本數(shù)據(jù)集是由手機(jī)內(nèi)置單目攝像頭在室內(nèi)與室外的紋理缺失或重復(fù)場(chǎng)景采集的數(shù)據(jù),處理為分辨率640×480像素,每秒30幀的圖像序列,評(píng)估改進(jìn)的ORB-SLAM算法對(duì)紋理特殊場(chǎng)景的適用性。
如圖8所示,為兩者在紋理缺失的室內(nèi)小場(chǎng)景的表現(xiàn),ORB-SLAM無(wú)法提取到足夠的匹配點(diǎn)進(jìn)行初始化,而改進(jìn)的ORB-SLAM可以順利恢復(fù)大量特征點(diǎn)的世界坐標(biāo)構(gòu)建地圖。
圖9-圖10所示為兩者在紋理缺失的室外大場(chǎng)景和紋理重復(fù)的室外小場(chǎng)景的表現(xiàn),雖然存在大量角點(diǎn),但由于角點(diǎn)的相似性,ORB-SLAM即使提取到足夠的特征點(diǎn),也由于大量誤匹配使初始化時(shí)間大幅度增長(zhǎng),并且在初始化成功后,常常出現(xiàn)跟蹤失敗的現(xiàn)象;而改進(jìn)的ORB-SLAM憑借更高的特征點(diǎn)精度使算法在正常時(shí)間順利初始化從而成功建圖。兩者在三個(gè)場(chǎng)景的特征點(diǎn)精度對(duì)比如表4所示,初始化時(shí)間與跟蹤失敗次數(shù)對(duì)比如表5所示。
圖9 場(chǎng)景2
圖10 場(chǎng)景3
表5 初始化時(shí)間與跟蹤失敗次數(shù)對(duì)比
針對(duì)基于特征匹配的單目視覺(jué)SLAM算法對(duì)場(chǎng)景紋理敏感的問(wèn)題,本文在ORB-SLAM算法的基礎(chǔ)上提出一種綜合考慮特征點(diǎn)灰度值與其鄰域梯度值的描述子對(duì)其改進(jìn),并根據(jù)改進(jìn)的特征點(diǎn)精度與相機(jī)運(yùn)動(dòng)模型得分優(yōu)化了模型選擇算法。標(biāo)準(zhǔn)數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果表明,本文算法的相機(jī)軌跡與特征點(diǎn)精度明顯優(yōu)于ORB-SLAM,在某些特征點(diǎn)缺失的弱紋理場(chǎng)景中能夠順利初始化;實(shí)際數(shù)據(jù)集實(shí)驗(yàn)結(jié)果表明,無(wú)論是紋理缺失還是紋理重復(fù)的場(chǎng)景,本文算法都有較高的適用性,并且在提高算法精度的同時(shí)保證了較好的計(jì)算效率。