丁國(guó)強(qiáng),趙朋朋,李 濤,婁泰山
(鄭州輕工業(yè)大學(xué) 電氣信息工程學(xué)院,河南 鄭州 450002)
當(dāng)前的SLAM研究大多基于靜態(tài)場(chǎng)景的假設(shè)[1,2],但是在實(shí)際應(yīng)用中,動(dòng)態(tài)對(duì)象是不可避免的。這些動(dòng)態(tài)對(duì)象將改變圖像信息,從而導(dǎo)致錯(cuò)誤的數(shù)據(jù)關(guān)聯(lián)并會(huì)降低定位的精度。此外,一旦將動(dòng)態(tài)信息加載到地圖中,將會(huì)導(dǎo)致“重影”[3],從而影響地圖的可視化和應(yīng)用?;陟o態(tài)場(chǎng)景的假設(shè)極大地限制了SLAM的發(fā)展和在現(xiàn)實(shí)生活中的應(yīng)用。傳統(tǒng)SLAM[4]將動(dòng)態(tài)對(duì)象視為錯(cuò)誤數(shù)據(jù)關(guān)聯(lián),并通過(guò)RANSAC[5,6](random sample consensus)對(duì)其進(jìn)行過(guò)濾,但當(dāng)動(dòng)態(tài)目標(biāo)太多時(shí),RANSAC將失效。
在面向動(dòng)態(tài)環(huán)境的視覺(jué)SLAM系統(tǒng)中[7-10],特征可以分為兩類(lèi),靜態(tài)特征和動(dòng)態(tài)特征。各種動(dòng)態(tài)SLAM算法的目標(biāo)基本上都是剔除動(dòng)態(tài)特征,僅保留靜態(tài)特征,以提高系統(tǒng)的精度。楊世強(qiáng)等[11]首先利用幾何約束雙向投票模型進(jìn)行動(dòng)態(tài)特征粗過(guò)濾,然后通過(guò)RANSAC計(jì)算系統(tǒng)基礎(chǔ)矩陣,最終采用極線幾何來(lái)精確判斷動(dòng)態(tài)特征并進(jìn)行剔除;Wang等[12]應(yīng)用基本矩陣檢測(cè)特征點(diǎn)的不一致性,然后對(duì)深度圖像進(jìn)行聚類(lèi),當(dāng)聚類(lèi)區(qū)域中的異常值超過(guò)閾值時(shí),該區(qū)域?qū)⒈蛔R(shí)別為移動(dòng)對(duì)象。
為了應(yīng)對(duì)動(dòng)態(tài)環(huán)境的挑戰(zhàn),使視覺(jué)SLAM更好得到應(yīng)用,本文提出了一種基于語(yǔ)義和幾何約束的動(dòng)態(tài)SLAM系統(tǒng)。將語(yǔ)義先驗(yàn)信息與幾何約束相結(jié)合來(lái)處理動(dòng)態(tài)特征,并且通過(guò)加入圖像補(bǔ)全線程來(lái)降低剔除動(dòng)態(tài)特征后對(duì)位姿估計(jì)的影響,從而提高視覺(jué)SLAM系統(tǒng)在動(dòng)態(tài)環(huán)境中的定位精度。最后,在公開(kāi)數(shù)據(jù)集上進(jìn)行測(cè)試,實(shí)驗(yàn)驗(yàn)證了本文算法的有效性。
目前大部分有關(guān)SLAM的研究基本上都是基于ORB-SLAM2開(kāi)展的,ORB-SLAM2是目前較為完善的SLAM方案之一,因此本文也在此基礎(chǔ)上進(jìn)行改進(jìn),如圖1所示。原始的ORB-SLAM2系統(tǒng)主要包括3個(gè)線程:跟蹤、局部建圖、回環(huán)檢測(cè);本文針對(duì)動(dòng)態(tài)環(huán)境的挑戰(zhàn),加入了語(yǔ)義分割網(wǎng)絡(luò),用來(lái)檢測(cè)特征點(diǎn)的狀態(tài),針對(duì)剔除動(dòng)態(tài)目標(biāo)上的特征點(diǎn)后產(chǎn)生的掩膜空洞,加入了圖像補(bǔ)全線程,有利于提高位姿估計(jì)和地圖構(gòu)建的精度。在輸入圖像后,并行運(yùn)行語(yǔ)義分割網(wǎng)絡(luò)和跟蹤線程,進(jìn)行運(yùn)動(dòng)一致性檢測(cè),利用先驗(yàn)的語(yǔ)義信息,判斷圖中的靜態(tài)區(qū)域,待判斷區(qū)域,背景區(qū)域,然后用靜態(tài)區(qū)域的特征點(diǎn)迭代出基礎(chǔ)矩陣,來(lái)確定待判斷區(qū)域的狀態(tài)。將動(dòng)態(tài)區(qū)域的特征點(diǎn)剔除后,該區(qū)域的點(diǎn)將不參與后續(xù)的位姿估計(jì)與地圖構(gòu)建,以致于會(huì)導(dǎo)致圖像特征的缺失,從而影響系統(tǒng)精度,因此采用圖像補(bǔ)全線程,通過(guò)相關(guān)算法,搜索動(dòng)態(tài)區(qū)域的背景圖像塊來(lái)形成一個(gè)合成幀,就相當(dāng)于SLAM運(yùn)行在一個(gè)不包含動(dòng)態(tài)物體的靜態(tài)區(qū)域,利用合成幀來(lái)估計(jì)相機(jī)位姿,可以有效提高相機(jī)位姿估計(jì)精度。
圖1 系統(tǒng)框架
為了檢測(cè)動(dòng)態(tài)對(duì)象,本文采用了SegNet語(yǔ)義分割網(wǎng)絡(luò),并在此基礎(chǔ)上加入了注意力機(jī)制。引入注意機(jī)制是為了提高語(yǔ)義分割模型的性能。注意力機(jī)制的想法是允許解碼器以靈活的方式利用輸入序列中最相關(guān)的部分,通過(guò)所有編碼輸入向量的加權(quán)組合,使相關(guān)性最高的向量被賦予最高權(quán)重。本文改進(jìn)后的語(yǔ)義網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 改進(jìn)的SegNet網(wǎng)絡(luò)框架
Badrinarayanan等提出了SegNet網(wǎng)絡(luò)結(jié)構(gòu),主要為了處理智能機(jī)器人領(lǐng)域中的圖像語(yǔ)義分割問(wèn)題。SegNet是一種具有深度卷積的對(duì)稱(chēng)網(wǎng)絡(luò)結(jié)構(gòu),并且提出了編碼器和解碼器的概念。該網(wǎng)絡(luò)的編碼器部分主要由VGG16網(wǎng)絡(luò)的前13個(gè)卷積層組成,并且沒(méi)有使用全連接層,與其它分割網(wǎng)絡(luò)相比,其網(wǎng)絡(luò)參數(shù)數(shù)量顯著下降。在Max pooling過(guò)程中,通過(guò)添加池化索引來(lái)記錄池化過(guò)濾器中最大特征值的位置,以便保留池化操作的位置信息。然后,將最大值恢復(fù)到池化索引所記錄的位置,并對(duì)其它位置用零填充,以確保上采樣過(guò)程中信息的準(zhǔn)確性,上采樣池化恢復(fù)過(guò)程如圖3所示。解碼器部分則使用來(lái)自編碼過(guò)程所記錄的最大池化索引進(jìn)行上采樣,確保了解碼器的上采樣特征信息的恢復(fù),并很好地保證了檢測(cè)目標(biāo)的邊緣信息。上采樣僅在解碼器部分使用,與編碼過(guò)程的池化層對(duì)應(yīng),并且上采樣步驟不用進(jìn)行學(xué)習(xí),只需要通過(guò)池化索引就可完成。最終解碼器輸出高維的特征到分類(lèi)器中,獨(dú)立的對(duì)每個(gè)像素進(jìn)行分類(lèi),預(yù)測(cè)的分割對(duì)應(yīng)于每個(gè)像素具有最大概率處的類(lèi)別。
圖3 上采樣恢復(fù)過(guò)程
本文在SegNet網(wǎng)絡(luò)的基礎(chǔ)上加入了通道注意力模塊,其中Max pooling是將目標(biāo)區(qū)域輸出最大值,這種方式得到的特征圖可以保留更多的紋理特征;Average pooling則是對(duì)池化區(qū)域內(nèi)的圖像取平均值,這種方式可以得到更多的背景信息。經(jīng)過(guò)池化操作,得到兩組1×1×512維的向量,然后用1×1的卷積使它們降到1×1×256維,接著經(jīng)過(guò)ReLU激活層增加模型的非線性能力,最后使兩組特征向量恢復(fù)到512維,將得到的權(quán)重乘以編碼器的輸出,可以有效提高網(wǎng)絡(luò)的分割能力。其中,語(yǔ)義分割效果與部分先驗(yàn)信息如圖4所示。
圖4 語(yǔ)義分割效果與語(yǔ)義先驗(yàn)信息
對(duì)于兩幀圖片進(jìn)行特征匹配,可以粗略得到特征點(diǎn)之間的匹配關(guān)系,但是因?yàn)閳?chǎng)景中可能包含動(dòng)態(tài)物體,因此會(huì)對(duì)位姿求解產(chǎn)生影響。一般來(lái)說(shuō),靜態(tài)物體的匹配精度的置信度比較高。因此,本文選擇使用先驗(yàn)靜態(tài)匹配點(diǎn)對(duì)來(lái)估計(jì)模型。
根據(jù)之前的目標(biāo)檢測(cè)網(wǎng)絡(luò),我們已經(jīng)得到了圖像中的先驗(yàn)語(yǔ)義信息,根據(jù)一般經(jīng)驗(yàn),可以事先定義訓(xùn)練數(shù)據(jù)庫(kù)所包含物體的類(lèi)別的靜態(tài)率,例如人、車(chē)、動(dòng)物具有較低的靜態(tài)率,此類(lèi)目標(biāo)是本文主要關(guān)注的對(duì)象,需要進(jìn)行優(yōu)化;而電視,桌子具有較高的靜態(tài)率,如果將這個(gè)指標(biāo)量化,可以表示為θ∈[0,1], 本文定義靜態(tài)率大于0.9的區(qū)域?yàn)殪o止區(qū)域,其余部分為待判斷區(qū)域。本文主要利用靜止區(qū)域的特征點(diǎn)和背景點(diǎn)去計(jì)算幀間圖像的基礎(chǔ)矩陣。
通過(guò)語(yǔ)義分割網(wǎng)絡(luò),可以得到圖片中所有的掩膜區(qū)域,和掩膜的分類(lèi)信息,讀取事先定義的物體的靜態(tài)率。因此可以將掩膜區(qū)域分為靜態(tài)掩膜,其中的特征點(diǎn)定義為staticP={P1,P2,P3,…Pn}, 和待判斷掩膜,其中的特征點(diǎn)集合為unknownQ={Q1,Q2,Q3…Qn}, 而除去所有掩膜區(qū)域的部分,定義為背景區(qū)域,靜態(tài)率為1,其中的特征點(diǎn)集合為backgroundM={M1,M2,M3…Mn}, 定義staticS為當(dāng)前幀所有靜態(tài)特征點(diǎn)的集合,則
staticS=staticP+backgroundM
(1)
對(duì)兩幀圖片staticSK與staticSK-1中的特征點(diǎn)進(jìn)行匹配,計(jì)算其漢明距離,可以得到兩幀圖片靜態(tài)特征點(diǎn)的對(duì)應(yīng)關(guān)系。在此處使用RANSAC算法進(jìn)行迭代,主要步驟為:
(1)在樣本空間staticS中隨機(jī)選擇8對(duì)匹配點(diǎn);
(2)利用式(6)使用8點(diǎn)法計(jì)算基礎(chǔ)矩陣F;
(3)利用式(8)驗(yàn)證其余點(diǎn)的幾何約束,統(tǒng)計(jì)符合約束的點(diǎn)的對(duì)數(shù)n;
(4)重復(fù)迭代步驟(1)~(3),將n達(dá)到最大時(shí)的F作為兩幀圖像的基礎(chǔ)矩陣。
利用先驗(yàn)靜態(tài)區(qū)域的特征點(diǎn)計(jì)算的基礎(chǔ)矩陣精度較高,本文采用運(yùn)動(dòng)一致性檢驗(yàn)來(lái)驗(yàn)證unknownQ中特征點(diǎn)的狀態(tài)。定義約束條件如圖5所示。
圖5 幾何約束
圖5中O1與O2代表相機(jī)光心,PA與PB分別為3D點(diǎn)P在圖像A與圖像B上的投影點(diǎn),歸一化坐標(biāo)分別表示為
pa=[u1v11]T,pb=[u2v21]T
(2)
對(duì)于pa與pb滿足關(guān)系
s1pa=KP,s2pb=K(RP+t)
(3)
其中,K為相機(jī)內(nèi)參矩陣,R、t為相機(jī)間的變換關(guān)系,s1、s2表示尺度因子。
在理想情況下,圖片中一對(duì)匹配點(diǎn)滿足約束
(4)
其中可以將基礎(chǔ)矩陣F改寫(xiě)為
f=[f11f12f13f21f22f23f31f32f33]T
(5)
然后對(duì)式(4)進(jìn)行改寫(xiě),可以得到
[u1u2u1v2u1v1u2v1v2v1u2v21]f=0
(6)
其中,F(xiàn)中的元素全都包含在f中,pa與pb是一對(duì)匹配點(diǎn),共有n對(duì)匹配點(diǎn)。而f中共有9個(gè)參數(shù),且一般令f33=1來(lái)歸一化矩陣,共有8個(gè)未知數(shù),因此需要8個(gè)方程來(lái)求解,對(duì)應(yīng)于取圖片中8對(duì)匹配點(diǎn),所以該方法稱(chēng)為8點(diǎn)法。
l1與l2分別代表兩圖中的對(duì)極線,在同一平面內(nèi)可用Ax+By+C=0來(lái)表示,則像點(diǎn)PA映射到極線l2上用方程可表示為
(7)
其中,F(xiàn)為前一步RANSAC迭代出來(lái)的基礎(chǔ)矩陣。
根據(jù)像點(diǎn)與極線的映射關(guān)系,可以得出特征點(diǎn)是否符合約束,從而判斷特征點(diǎn)的狀態(tài)。如果pb不在極線l2上,則需要計(jì)算像點(diǎn)到極線的距離
(8)
理想狀態(tài)下,d應(yīng)該等于0,而在現(xiàn)實(shí)場(chǎng)景中,由于相機(jī)采集的照片不可避免的存在一定程度的畸變和噪聲,使得相鄰幀間的點(diǎn)無(wú)法完美匹配在極線上。因此設(shè)定一個(gè)閾值T,當(dāng)d>T,則判定該點(diǎn)為動(dòng)態(tài)點(diǎn)。由于像點(diǎn)與極線的距離與特征點(diǎn)的視差值相關(guān),因此閾值T定義為
T=αf+ε
(9)
其中,α代表視差系數(shù),f代表特征點(diǎn)的視差值,也就是相鄰兩幀像素坐標(biāo)的變化。通過(guò)對(duì)特征點(diǎn)與極線關(guān)系判斷,確定動(dòng)態(tài)特征點(diǎn)并進(jìn)行篩除,如圖6所示。
圖6 動(dòng)態(tài)特征點(diǎn)剔除效果
經(jīng)過(guò)運(yùn)動(dòng)一致性檢測(cè)環(huán)節(jié),環(huán)境中運(yùn)動(dòng)的物體并不參與位姿估計(jì),而直接將運(yùn)動(dòng)目標(biāo)濾除,必然會(huì)導(dǎo)致特征缺失,并在圖像中產(chǎn)生掩碼空洞,如圖7所示,影響后續(xù)的位姿估計(jì)和建圖,因此需要補(bǔ)充空洞區(qū)域。
圖7 掩碼空洞
視頻補(bǔ)全方法旨在使用每幀中其余部分相似的內(nèi)容來(lái)填充目標(biāo)空洞。目前很多視頻補(bǔ)全算法[13]僅針對(duì)固定攝像機(jī),無(wú)法很好應(yīng)用到SLAM中。因此本文采用一種非參數(shù)的基于圖像塊的補(bǔ)全算法[14]。該算法可以處理使用移動(dòng)攝像機(jī)捕捉的動(dòng)態(tài)場(chǎng)景,目前大部分方法還未涉及此類(lèi)問(wèn)題,因?yàn)橐朁c(diǎn)變化會(huì)提升問(wèn)題的復(fù)雜度。主要通過(guò)聯(lián)合估計(jì)缺失區(qū)域中的光流和顏色來(lái)解決這個(gè)問(wèn)題。
在該算法中,首先使用兩幀光流算法計(jì)算所有相鄰幀的已知區(qū)域中的正向和反向光流。經(jīng)過(guò)初始化后,在每個(gè)尺度下,主要迭代3個(gè)步驟:
(1)最近鄰場(chǎng)估計(jì):在局部外觀最相似的源圖像塊中尋找與目標(biāo)圖像塊近似的圖像塊來(lái)最小化顏色空間誤差;
(2)顏色更新:顏色更新通過(guò)圖像塊投票進(jìn)行重建,其中未知像素處的像素顏色通過(guò)對(duì)所有重疊圖像塊中相應(yīng)最近鄰區(qū)域的顏色進(jìn)行平均來(lái)估計(jì),并且沿著光流向量搜索已知像素來(lái)合并已知區(qū)域中最近的相鄰時(shí)刻的顏色,使用前向、后向流動(dòng)一致性來(lái)識(shí)別不可靠流動(dòng)的區(qū)域;
(3)光流更新:在估計(jì)目標(biāo)區(qū)域的顏色后,細(xì)化正向和反向光流場(chǎng)。固定源區(qū)域中的光流,僅更新目標(biāo)區(qū)域中的光流,從而得到具有時(shí)空孔邊界約束的光流估計(jì)算法。
該算法補(bǔ)全效果如圖8所示,最終任務(wù)歸結(jié)為求解目標(biāo)函數(shù)
圖8 補(bǔ)全結(jié)果
(10)
其中,Ecolor-spatial表示目標(biāo)區(qū)域中基于空間圖像塊的顏色重建誤差;Ecolor-temporal表示合成顏色的時(shí)間不一致性;Eflow-spatial表示正向和反向流場(chǎng)的空間正則化。
對(duì)于顏色空間誤差,可以使目標(biāo)區(qū)域的局部鄰域Pi近似為源區(qū)域的局部鄰域Qi。由于考慮了重疊區(qū)域,因此可以保證空間一致。目標(biāo)圖像塊Pi是一個(gè)以ti為中心的5×5軸對(duì)稱(chēng)區(qū)域,而Qi可通過(guò)Pi以si為中心,以θi為比例變換得到。顏色空間誤差表示為所有重疊圖像塊的平方損失之和
(11)
而顏色時(shí)間誤差可以保證正向和反向流向量的相鄰幀之間顏色時(shí)間的一致性
(12)
對(duì)于光流空間誤差,為了促進(jìn)分段平滑光流場(chǎng),引入了空間正則化
(13)
經(jīng)過(guò)之前的運(yùn)動(dòng)一致性檢測(cè)剔除動(dòng)態(tài)點(diǎn),并對(duì)空洞區(qū)域進(jìn)行補(bǔ)全后,利用合成幀提取特征點(diǎn),求解相機(jī)位姿,更新位姿優(yōu)化初值。假設(shè)有n個(gè)3D空間點(diǎn)Pi=[Xi,Yi,Zi], 以及這些點(diǎn)在二維圖像中的像點(diǎn)pi=[ui,vi], 建立起Pi與pi的關(guān)系如式(14)所示,變換為參數(shù)形式如式(15)所示。其中si為尺度因子,K為相機(jī)的內(nèi)參,ξ∧為位姿變換的李代數(shù)矩陣,exp(ξ∧) 表示為向量到矩陣的指數(shù)映射,e代表誤差項(xiàng)
(14)
sipi=K·exp(ξ∧)Pi+e
(15)
對(duì)相鄰幀構(gòu)建最小二乘問(wèn)題,就可以得到優(yōu)化后的相機(jī)位姿
(16)
本文運(yùn)行測(cè)試平臺(tái)為筆記本電腦,其硬件配置為Intel Core i5-9400H,主頻為2.3 GHz,內(nèi)存為8 G,顯卡為GTX 1050,搭載系統(tǒng)為Ubuntu 16.04。
實(shí)驗(yàn)所需的TUM RGB-D數(shù)據(jù)集是慕尼黑工業(yè)大學(xué)提供的一個(gè)大型開(kāi)源數(shù)據(jù)集,其中包含RGB圖、深度圖和真實(shí)軌跡,可以用來(lái)評(píng)估視覺(jué)SLAM系統(tǒng)。
在測(cè)試中,本文主要使用數(shù)據(jù)集中的7個(gè)序列,且將它們定義為:freiburg2_desk序列是靜態(tài)環(huán)境;freiburg3_sitting_xyz、freiburg3_sitting_static序列是低動(dòng)態(tài)環(huán)境;freiburg3_walking_static、freiburg3_walking_xyz、reiburg3_walking_halfsphere、freiburg3_walking_rpy序列是高動(dòng)態(tài)環(huán)境,關(guān)于數(shù)據(jù)集的介紹可參見(jiàn)文獻(xiàn)[15,16]。為了后續(xù)表述簡(jiǎn)便,本文將數(shù)據(jù)集序列中的freiburg簡(jiǎn)寫(xiě)為fr,將sitting簡(jiǎn)寫(xiě)為s,將walking簡(jiǎn)寫(xiě)為w,將halfsphere簡(jiǎn)寫(xiě)為hs。
目前,視覺(jué)SLAM系統(tǒng)主要使用兩種評(píng)估指標(biāo),包括絕對(duì)軌跡誤差(absolute trajectory error,ATE)和相對(duì)位姿誤差(relative pose error,RPE),具體定義請(qǐng)參見(jiàn)文獻(xiàn)[17]。此外,我們還使用均方根誤差(root mean square error,RMSE)和標(biāo)準(zhǔn)差(standard deviation,SD)來(lái)判斷本文算法的準(zhǔn)確性。
定量比較結(jié)果見(jiàn)表1~表3,比較了本文算法和ORB-SLAM2在7個(gè)數(shù)據(jù)集序列中的實(shí)驗(yàn)結(jié)果。評(píng)價(jià)指標(biāo)為RMSE、平均誤差(Mean)和SD。這些評(píng)價(jià)指標(biāo)顯示了估計(jì)軌跡與系統(tǒng)真實(shí)值之間的差異,可以此來(lái)分析系統(tǒng)的性能。
表1 絕對(duì)軌跡誤差對(duì)比結(jié)果
表中本文算法相較于ORB-SLAM2性能的提升率可以表示定義為
(17)
其中,δ表示提升率,α表示ORB-SLAM2算法的軌跡誤差,β表示本文算法的軌跡誤差。
在表1中展示了算法之間的ATE對(duì)比結(jié)果,表2與表3分別是在不同序列中,算法之間的相對(duì)軌跡平移誤差和相對(duì)軌跡旋轉(zhuǎn)誤差的對(duì)比結(jié)果。分析表1~表3中的數(shù)據(jù),在高動(dòng)態(tài)場(chǎng)景中,相較于ORB-SLAM2,本文算法ATE和RPE的各項(xiàng)數(shù)值明顯降低了,其中ATE部分的RSME最高降低了98.4%,RPE平移和旋轉(zhuǎn)誤差部分最高分別降低了98.35%和97.52%,因?yàn)镺RB-SLAM2無(wú)法處理相機(jī)的復(fù)雜運(yùn)動(dòng)疊加場(chǎng)景高速運(yùn)動(dòng),容易定位丟失,而本文如入了運(yùn)動(dòng)一致性檢測(cè)模塊和語(yǔ)義分割模塊來(lái)檢測(cè)動(dòng)態(tài)物體,使SLAM可以在高動(dòng)態(tài)場(chǎng)景中工作。而對(duì)于靜態(tài)和低動(dòng)態(tài)場(chǎng)景,本文算法提升幅度不大,因?yàn)閷?duì)于ORB-SLAM2算法本身具有一定的魯棒性,可以處理一些低動(dòng)態(tài)場(chǎng)景。
表2 相對(duì)軌跡誤差平移部分對(duì)比結(jié)果
表3 相對(duì)軌跡誤差旋轉(zhuǎn)部分對(duì)比結(jié)果
對(duì)于圖9、圖10中,主要展示了本文算法與ORB-SLAM2在數(shù)據(jù)集的高動(dòng)態(tài)序列上估計(jì)軌跡與真實(shí)軌跡的誤差和兩算法的相對(duì)位姿誤差,從圖中可以看出,ORB-SLAM2算法不能很好處理高動(dòng)態(tài)場(chǎng)景,具有很大的軌跡誤差。而觀察本文算法的誤差圖,可以發(fā)現(xiàn)可以有效減小動(dòng)態(tài)對(duì)象對(duì)系統(tǒng)的影響,因?yàn)楸疚睦谜Z(yǔ)義網(wǎng)絡(luò)提取先驗(yàn)信息,然后與幾何約束相結(jié)合剔除了場(chǎng)景中的動(dòng)態(tài)特征點(diǎn),并且圖像補(bǔ)全線程補(bǔ)充了動(dòng)態(tài)特征剔除后的圖像信息,相當(dāng)于把原來(lái)的動(dòng)態(tài)場(chǎng)景轉(zhuǎn)化為靜態(tài)場(chǎng)景,可以有效降低系統(tǒng)軌跡誤差,提高位姿估計(jì)的精度。
圖9 fr3_w_xyz序列上的ATE和RPE
圖10 fr3_w_hs序列上的ATE和RPE
然后為了進(jìn)一步驗(yàn)證本文算法的有效性,計(jì)算出其它面向動(dòng)態(tài)環(huán)境的視覺(jué)SLAM系統(tǒng)的各項(xiàng)誤差指標(biāo),并與本文算法進(jìn)行對(duì)比,由表4可以得知,與目前一些先進(jìn)的應(yīng)用于動(dòng)態(tài)環(huán)境的SLAM相比,本文算法也具有一定的競(jìng)爭(zhēng)性。結(jié)果表明,該方法可以有效消除動(dòng)態(tài)對(duì)象的干擾,從而降低優(yōu)化過(guò)程中的位姿誤差。
表4 同類(lèi)算法ATE對(duì)比
這部分實(shí)驗(yàn)用于評(píng)估每個(gè)系統(tǒng)的跟蹤時(shí)間。平均跟蹤時(shí)間見(jiàn)表5。本文SLAM算法主要側(cè)重于位姿估計(jì)和軌跡誤差,因此對(duì)SLAM系統(tǒng)實(shí)時(shí)性能提升不大,主要是由于本文加入了語(yǔ)義分割網(wǎng)絡(luò)來(lái)提取語(yǔ)義信息,分割圖像,加入了運(yùn)動(dòng)一致性檢測(cè),用來(lái)剔除動(dòng)態(tài)點(diǎn),之后還對(duì)剔除動(dòng)態(tài)點(diǎn)后的圖像進(jìn)行了補(bǔ)全,來(lái)優(yōu)化位姿估計(jì),這些線程都會(huì)產(chǎn)生時(shí)間成本。因此下一步需要進(jìn)一步優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),進(jìn)一步提高SLAM系統(tǒng)的實(shí)時(shí)性。
表5 不同系統(tǒng)的平均定位跟蹤時(shí)間
本文利用改進(jìn)的語(yǔ)義分割網(wǎng)絡(luò)提取語(yǔ)義先驗(yàn)信息,結(jié)合幾何約束剔除動(dòng)態(tài)特征,并且對(duì)產(chǎn)生掩碼空洞的圖片進(jìn)行補(bǔ)全。最后,在公開(kāi)的TUM數(shù)據(jù)集上進(jìn)行了評(píng)估。結(jié)果表明,在動(dòng)態(tài)環(huán)境下,該算法可以顯著提高定位精度。然而,在室外大規(guī)模、多動(dòng)態(tài)目標(biāo)場(chǎng)景中,仍會(huì)出現(xiàn)定位丟失的情況。目前,該算法可以應(yīng)用在各種靜態(tài)場(chǎng)景,以及一些室內(nèi)動(dòng)態(tài)場(chǎng)景中。在未來(lái)研究中需要進(jìn)一步優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),以應(yīng)對(duì)復(fù)雜環(huán)境中的各種挑戰(zhàn),更好的實(shí)現(xiàn)機(jī)器人的導(dǎo)航與定位。