摘 要:針對(duì)移動(dòng)機(jī)器人在動(dòng)態(tài)環(huán)境中視覺(jué)同時(shí)定位和地圖構(gòu)建(visual simultaneous localization and mapping,VSLAM)精度低、魯棒性差的問(wèn)題,提出了一種自適應(yīng)運(yùn)動(dòng)目標(biāo)處理SLAM算法(adaptive dynamic SLAM,AD-SLAM)。基于對(duì)極幾何約束的場(chǎng)景動(dòng)態(tài)分級(jí)前端實(shí)時(shí)感知運(yùn)行環(huán)境的動(dòng)態(tài)變化。通過(guò)基于幾何約束和運(yùn)動(dòng)概率的低動(dòng)態(tài)環(huán)境動(dòng)態(tài)特征和基于語(yǔ)義分割的高動(dòng)態(tài)環(huán)境動(dòng)態(tài)目標(biāo)處理消除運(yùn)動(dòng)目標(biāo)。在計(jì)算機(jī)視覺(jué)數(shù)據(jù)集TUM上進(jìn)行實(shí)驗(yàn)驗(yàn)證,結(jié)果表明提出方案在復(fù)雜動(dòng)態(tài)環(huán)境中保證算法實(shí)時(shí)性的前提下提升了移動(dòng)機(jī)器人建圖過(guò)程中定位的精度和魯棒性。
關(guān)鍵詞:同時(shí)定位和地圖構(gòu)建;動(dòng)態(tài)環(huán)境;動(dòng)態(tài)分級(jí);對(duì)極幾何;語(yǔ)義分割;運(yùn)動(dòng)概率
中圖分類號(hào):TP242.6 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1001-3695(2023)08-018-2361-06
doi: 10.19734/j.issn.1001-3695.2022.11.0800
Adaptive moving object processing SLAM algorithm based on scene dynamic classification
Wang Fuqiang, Wang Qiang Li Min, Yang Pan
(School of Transportation amp; Logistics Engineering, Wuhan University of Technology, Wuhan 430063, China)
Abstract:Aiming at the problem of low accuracy and poor robustness of visual simultaneous localization and mapping (VSLAM) in dynamic environment, this paper proposed an adaptive dynamic SLAM (AD-SLAM). The scene dynamic classification front-end based on epipolar geometry constraint perceived the dynamic changes of the working environment in real time. This method used the dynamic feature culling in low dynamic environment based on geometric constraints and moving probability and the dynamic target processing in high dynamic environment based on semantic segmentation to eliminate moving objects. Experimental verification on the computer vision dataset TUM shows that the proposed method can improve the accuracy and robustness of localization in the mapping process of mobile robots while ensuring the real-time performance of the algorithm.
Key words:SLAM; dynamic environment; dynamic classification; epipolar geometry; semantic segmentation; moving probability
0 引言
近年來(lái),自動(dòng)駕駛、無(wú)人機(jī)、移動(dòng)機(jī)器人等智能領(lǐng)域受到廣泛關(guān)注。視覺(jué)同時(shí)定位和地圖構(gòu)建(VSLAM)作為移動(dòng)機(jī)器人、自動(dòng)駕駛和虛擬現(xiàn)實(shí)的關(guān)鍵技術(shù),通過(guò)設(shè)備上搭載的傳感器感知周圍環(huán)境,實(shí)現(xiàn)自我定位并增量式構(gòu)建環(huán)境地圖。相較于激光雷達(dá),相機(jī)價(jià)格低廉、信息豐富的特點(diǎn)具有顯著優(yōu)勢(shì),現(xiàn)有的VSLAM方案在基于靜態(tài)環(huán)境假設(shè)條件下已經(jīng)取得顯著的研究成果,如基于特征點(diǎn)法的ORBSLAM[1]、基于直接法的LSD-SLAM[2]等,能在靜態(tài)環(huán)境下準(zhǔn)確定位并建立稀疏或稠密地圖。然而,在實(shí)際環(huán)境中動(dòng)態(tài)場(chǎng)景是普遍的,當(dāng)機(jī)器人運(yùn)行在動(dòng)態(tài)未知的新環(huán)境時(shí),不可避免會(huì)觀測(cè)到運(yùn)動(dòng)的人或物體,這些運(yùn)動(dòng)對(duì)象會(huì)嚴(yán)重影響機(jī)器人的位姿估計(jì)精度甚至導(dǎo)致定位和建圖失效,靜態(tài)世界的理想假設(shè)嚴(yán)重限制了VSLAM的應(yīng)用范圍。為提高VSLAM在復(fù)雜動(dòng)態(tài)環(huán)境中的魯棒性,擴(kuò)大VSLAM的應(yīng)用場(chǎng)景,近年來(lái)相關(guān)學(xué)者對(duì)傳統(tǒng)SLAM方案進(jìn)行了改進(jìn),主要分為基于對(duì)極幾何[3]和光流[4]的幾何方法,以及基于深度學(xué)習(xí)的方法兩類。
基于幾何的方法[5~8]判斷像素級(jí)特征點(diǎn)的動(dòng)態(tài)性。Wang等人[9]對(duì)室內(nèi)動(dòng)態(tài)環(huán)境下RGB-D SLAM進(jìn)行研究,通過(guò)深度圖聚類把圖像分成若干區(qū)域,將RGB圖像上的特征點(diǎn)投影到聚類后的深度圖上判斷區(qū)域動(dòng)態(tài)性,但是如何確定圖像幀準(zhǔn)確的聚類數(shù)是難點(diǎn)。林凱等人[10]利用RGB-D圖的深度信息,建立基于重投影深度差值的累積模型分割場(chǎng)景動(dòng)靜態(tài)區(qū)域,賦予動(dòng)靜區(qū)域特征點(diǎn)不同的權(quán)重進(jìn)行優(yōu)化。魏彤等人[11]根據(jù)圖像深度和顏色信息進(jìn)行場(chǎng)景區(qū)域分割,結(jié)合稀疏動(dòng)態(tài)特征信息標(biāo)記動(dòng)態(tài)區(qū)域,當(dāng)動(dòng)態(tài)目標(biāo)和背景的顏色或深度相近時(shí)會(huì)出現(xiàn)錯(cuò)誤分割。以上基于幾何的方法分割結(jié)果準(zhǔn)確度低,且僅能處理包含少量動(dòng)態(tài)特征的場(chǎng)景,若環(huán)境中存在大量的動(dòng)態(tài)目標(biāo)將會(huì)失效。
基于深度學(xué)習(xí)的方法將圖像識(shí)別、語(yǔ)義分割和實(shí)例分割應(yīng)用到SLAM系統(tǒng),識(shí)別圖像的先驗(yàn)運(yùn)動(dòng)信息。何召蘭等人[12]利用Mask R-CNN[13]生成掩模信息對(duì)特征點(diǎn)進(jìn)行篩選,識(shí)別并剔除預(yù)先訓(xùn)練好的幾種潛在運(yùn)動(dòng)目標(biāo),然而Mask R-CNN復(fù)雜、計(jì)算量大,不能滿足SLAM系統(tǒng)的實(shí)時(shí)性要求。Yu等人[14]在ORBSLAM2三線程的基礎(chǔ)上添加語(yǔ)義分割和稠密語(yǔ)義地圖構(gòu)建線程,把分割圖上存在一定數(shù)量動(dòng)態(tài)點(diǎn)的對(duì)象視為動(dòng)態(tài)目標(biāo),最終建立八叉樹地圖,但僅把人當(dāng)做潛在的運(yùn)動(dòng)目標(biāo),與現(xiàn)實(shí)場(chǎng)景不符。Cui等人[15]利用語(yǔ)義分割輔助對(duì)極幾何約束檢測(cè)環(huán)境中的運(yùn)動(dòng)信息,在ORBSLAM2跟蹤線程前添加語(yǔ)義光流動(dòng)態(tài)特征檢測(cè)和剔除模塊,實(shí)現(xiàn)語(yǔ)義和幾何的緊耦合約束。Li等人[16]提出運(yùn)動(dòng)概率傳播模型,將幾何模型和語(yǔ)義分割結(jié)果轉(zhuǎn)換為觀測(cè)概率,用貝葉斯更新關(guān)鍵點(diǎn)的運(yùn)動(dòng)概率,剔除潛在運(yùn)動(dòng)概率高的關(guān)鍵點(diǎn)。Bescos等人[17]提出DynaSLAM,基于ORBSLAM2添加動(dòng)態(tài)目標(biāo)檢測(cè)和背景補(bǔ)償模塊,利用Mask R-CNN語(yǔ)義分割潛在運(yùn)動(dòng)物體。Cheng等人[18]提出DM-SLAM,在初始化時(shí)利用Mask R-CNN分割圖像幀,僅利用位于靜態(tài)背景區(qū)域的絕對(duì)靜態(tài)點(diǎn)進(jìn)行相機(jī)位姿初始化,重點(diǎn)研究了雙目和RGB-D相機(jī)模式,利用光流法和重投影誤差區(qū)分靜點(diǎn)和動(dòng)點(diǎn),在高動(dòng)態(tài)場(chǎng)景下提高了位姿估計(jì)的精度。Fan等人[19]針對(duì)室內(nèi)動(dòng)態(tài)環(huán)境在ORBSLAM2的基礎(chǔ)上引入BlitzNet語(yǔ)義分割網(wǎng)絡(luò)區(qū)分圖像背景區(qū)域和潛在動(dòng)態(tài)區(qū)域,用背景區(qū)域的匹配點(diǎn)極線約束定位潛在動(dòng)態(tài)區(qū)域上的靜態(tài)點(diǎn),并利用深度圖的集合信息對(duì)原始語(yǔ)義分割掩膜進(jìn)行修正,但該方法只能適用于室內(nèi)環(huán)境深度相機(jī)模式,絕大多數(shù)場(chǎng)景不適用對(duì)環(huán)境條件要求嚴(yán)格的深度相機(jī)。常規(guī)基于深度學(xué)習(xí)的方法順序分割所有普通幀或關(guān)鍵幀,跟蹤線程需要等待耗時(shí)最長(zhǎng)的語(yǔ)義分割結(jié)果,導(dǎo)致系統(tǒng)的運(yùn)行速度很大程度上受深度學(xué)習(xí)網(wǎng)絡(luò)的限制。針對(duì)常規(guī)基于語(yǔ)義分割的動(dòng)態(tài)SLAM存在的語(yǔ)義分割阻塞問(wèn)題,Liu等人[20]基于ORB-SLAM3的RGB-D方案,添加并行運(yùn)行的語(yǔ)義線程和基于語(yǔ)義的優(yōu)化線程,語(yǔ)義分割線程采取每次從關(guān)鍵幀序列中選取最前和最后兩幀進(jìn)行分割的策略,跟蹤線程不再需要等待每幀的語(yǔ)義分割結(jié)果,在一定程度上減輕了跟蹤線程的阻塞問(wèn)題。然而該分割策略會(huì)隨時(shí)間累積未知語(yǔ)義信息的關(guān)鍵幀數(shù)目,導(dǎo)致語(yǔ)義信息更新慢,容易誤判特征點(diǎn)動(dòng)態(tài)性,存在較大累積誤差的問(wèn)題。針對(duì)語(yǔ)義分割網(wǎng)絡(luò)模型規(guī)模大、比較耗時(shí)且難以滿足實(shí)時(shí)性要求的問(wèn)題,Su等人[21]基于ORBSLAM2設(shè)計(jì)基于輕量級(jí)目標(biāo)檢測(cè)網(wǎng)絡(luò)YOLOv5的動(dòng)態(tài)目標(biāo)檢測(cè)線程,但目標(biāo)檢測(cè)得到的候選框包含大范圍背景圖像,無(wú)法精確分割動(dòng)態(tài)目標(biāo)輪廓,盡管額外添加了光流處理解決框內(nèi)動(dòng)態(tài)特征識(shí)別的問(wèn)題,但在檢測(cè)框內(nèi)仍然容易出現(xiàn)動(dòng)態(tài)誤判點(diǎn)。Xing等人[22]將環(huán)境中的動(dòng)態(tài)元素分為短期動(dòng)態(tài)和長(zhǎng)期動(dòng)態(tài)兩類,為減少M(fèi)obileNet V2 SSD語(yǔ)義分割網(wǎng)絡(luò)計(jì)算量,只對(duì)關(guān)鍵幀進(jìn)行語(yǔ)義分割,普通幀則通過(guò)粒子濾波跟蹤前一關(guān)鍵幀的動(dòng)態(tài)目標(biāo)位置,該策略在一定程度上提升了SLAM系統(tǒng)的實(shí)時(shí)性。
綜合相關(guān)研究,幾何法動(dòng)態(tài)SLAM原理簡(jiǎn)單,常用于靜態(tài)或低動(dòng)態(tài)環(huán)境SLAM處理少量噪聲特征點(diǎn)。典型基于深度學(xué)習(xí)的方法引入Mask R-CNN和YOLO等語(yǔ)義分割和目標(biāo)檢測(cè)網(wǎng)絡(luò)識(shí)別潛在運(yùn)動(dòng)物體,利用靜態(tài)背景上特征進(jìn)行跟蹤和建圖,避免了動(dòng)態(tài)物體引發(fā)的特征誤匹配和包含大誤差的數(shù)據(jù)關(guān)聯(lián)。無(wú)論是幾何法處理動(dòng)態(tài)特征還是典型基于深度學(xué)習(xí)的動(dòng)態(tài)SLAM方案存在以下問(wèn)題:
a)單純基于幾何的動(dòng)態(tài)特征處理方法只能應(yīng)對(duì)包含少量動(dòng)態(tài)點(diǎn)的場(chǎng)景,且無(wú)法利用圖像的高級(jí)語(yǔ)義信息協(xié)助判斷動(dòng)態(tài)物體和建立包含語(yǔ)義信息的高級(jí)地圖;
b)由于深度學(xué)習(xí)網(wǎng)絡(luò)規(guī)模較大,無(wú)差別對(duì)所有圖像幀進(jìn)行分割計(jì)算會(huì)導(dǎo)致跟蹤線程長(zhǎng)時(shí)間等待語(yǔ)義信息的阻塞現(xiàn)象,不能滿足SLAM系統(tǒng)運(yùn)行實(shí)時(shí)性要求,且難以分辨分割輪廓邊緣特征點(diǎn)動(dòng)態(tài)性。
未知?jiǎng)討B(tài)環(huán)境下性能最優(yōu)的動(dòng)態(tài)目標(biāo)處理方式因環(huán)境特性而不同,當(dāng)機(jī)器人運(yùn)行在動(dòng)態(tài)性較低的環(huán)境中,無(wú)差別語(yǔ)義分割所有圖像幀對(duì)計(jì)算資源造成浪費(fèi),而高動(dòng)態(tài)環(huán)境下純幾何方法缺少的語(yǔ)義信息無(wú)法處理大范圍運(yùn)動(dòng)物體,因此需要在不同環(huán)境下通過(guò)語(yǔ)義分割協(xié)同幾何方法識(shí)別運(yùn)動(dòng)目標(biāo)和異常噪聲點(diǎn)。為了使機(jī)器人在SLAM過(guò)程中能夠感知運(yùn)行環(huán)境的動(dòng)態(tài)性,根據(jù)所處環(huán)境自適應(yīng)選擇合理的動(dòng)態(tài)特征處理策略,設(shè)計(jì)了基于對(duì)極幾何的場(chǎng)景動(dòng)態(tài)分級(jí)前端,系統(tǒng)根據(jù)當(dāng)前運(yùn)行環(huán)境的動(dòng)態(tài)級(jí)別自適應(yīng)執(zhí)行基于累積運(yùn)動(dòng)概率的低動(dòng)態(tài)場(chǎng)景特征處理策略和基于語(yǔ)義分割的高動(dòng)態(tài)場(chǎng)景運(yùn)動(dòng)目標(biāo)處理算法,通過(guò)更新地圖點(diǎn)運(yùn)動(dòng)概率的方式傳遞動(dòng)態(tài)信息,減少地圖點(diǎn)動(dòng)態(tài)性的誤判,根據(jù)動(dòng)態(tài)性自適應(yīng)語(yǔ)義分割降低了分割網(wǎng)絡(luò)對(duì)SLAM系統(tǒng)實(shí)時(shí)性的影響,改進(jìn)的AD-SLAM算法在保證機(jī)器人定位精度的前提下減少了語(yǔ)義分割計(jì)算量,提升了系統(tǒng)的定位精度、實(shí)時(shí)性和魯棒性。
1 算法流程
本文提出的動(dòng)態(tài)SLAM算法是基于ORBSLAM2設(shè)計(jì)的,系統(tǒng)框架如圖1所示。典型的ORBSLAM2由跟蹤線程、局部建圖線程和閉環(huán)檢測(cè)線程三個(gè)線程組成。理想情況下,提取相機(jī)輸入圖像幀的FAST關(guān)鍵點(diǎn)并計(jì)算BRIEF描述子,由此組成的ORB特征點(diǎn)提取速度快,具有良好的旋轉(zhuǎn)不變性和亮度魯棒性。跟蹤線程通過(guò)特征匹配,計(jì)算圖像幀間的相對(duì)變換,估計(jì)相機(jī)位姿;局部建圖線程處理跟蹤線程傳遞的關(guān)鍵幀,生成新的地圖點(diǎn)并剔除冗余關(guān)鍵幀;閉環(huán)線程通過(guò)檢測(cè)閉環(huán),判斷機(jī)器人是否回到之前到過(guò)的位置,根據(jù)閉環(huán)檢測(cè)結(jié)果進(jìn)行全局BA優(yōu)化。
在跟蹤線程前添加場(chǎng)景動(dòng)態(tài)分級(jí)前端,跟蹤線程融入動(dòng)態(tài)目標(biāo)檢測(cè)和動(dòng)態(tài)地圖點(diǎn)優(yōu)化剔除處理。動(dòng)態(tài)分級(jí)前端提取上一幀圖像的Harris角點(diǎn),通過(guò)光流法加速匹配當(dāng)前圖像幀角點(diǎn),由前后兩幀圖像的匹配角點(diǎn)計(jì)算得到初步基礎(chǔ)矩陣,利用對(duì)極幾何約束計(jì)算匹配角點(diǎn)的運(yùn)動(dòng)一致性,根據(jù)匹配角點(diǎn)的動(dòng)態(tài)率劃分當(dāng)前所處環(huán)境為高動(dòng)態(tài)或低動(dòng)態(tài)。高動(dòng)態(tài)環(huán)境中存在較大的運(yùn)動(dòng)目標(biāo),通過(guò)語(yǔ)義分割RGB圖引入高級(jí)語(yǔ)義信息識(shí)別顯著動(dòng)態(tài)物,獲得圖像中運(yùn)動(dòng)物體的種類和位置。高動(dòng)態(tài)場(chǎng)景語(yǔ)義分割后和低動(dòng)態(tài)場(chǎng)景用幾何約束和隨機(jī)樣本一致性(random sample consensus,RANSAC)剔除少量動(dòng)態(tài)特征和噪聲點(diǎn),同時(shí)不斷更新地圖點(diǎn)的運(yùn)動(dòng)概率。若檢測(cè)運(yùn)動(dòng)概率更新后的地圖點(diǎn)為動(dòng)態(tài),在跟蹤優(yōu)化階段進(jìn)行刪除。剔除異常動(dòng)態(tài)特征點(diǎn)和地圖點(diǎn)后再進(jìn)行后續(xù)的位姿估計(jì)和后端優(yōu)化,實(shí)現(xiàn)SLAM在動(dòng)態(tài)環(huán)境下的穩(wěn)定運(yùn)行。
2 基于動(dòng)態(tài)分級(jí)的自適應(yīng)運(yùn)動(dòng)目標(biāo)處理SLAM算法
2.1 基于對(duì)極幾何的場(chǎng)景動(dòng)態(tài)分級(jí)
機(jī)器人定位和建圖過(guò)程中相機(jī)拍攝相鄰兩幀圖像時(shí)間間隔很短,幀率30 fps拍攝的兩幀圖片時(shí)間僅相差33 ms,可以滿足光流法的灰度不變假設(shè)。為加快場(chǎng)景動(dòng)態(tài)分級(jí)速度,采用光流法跟蹤相鄰兩幀圖像的Harris角點(diǎn),快速得到前后幀的角點(diǎn)匹配關(guān)系,根據(jù)匹配關(guān)系計(jì)算相機(jī)運(yùn)動(dòng)基礎(chǔ)矩陣F。
2.2 基于極線約束和累積運(yùn)動(dòng)概率的低動(dòng)態(tài)場(chǎng)景處理
2.3 基于語(yǔ)義分割的高動(dòng)態(tài)場(chǎng)景運(yùn)動(dòng)物體處理
動(dòng)態(tài)分級(jí)模塊判斷當(dāng)前環(huán)境為高動(dòng)態(tài),圖像中存在較大運(yùn)動(dòng)目標(biāo),提取當(dāng)前圖像幀ORB特征,用恒速跟蹤模型加速特征匹配,同時(shí)把RGB圖傳入語(yǔ)義分割線程分割得到相同尺寸的語(yǔ)義分割掩膜。用位于靜態(tài)物體和背景圖像上的絕對(duì)靜態(tài)點(diǎn)計(jì)算初步基礎(chǔ)矩陣,為保證跟蹤質(zhì)量,盡可能保留更多的靜態(tài)點(diǎn),用絕對(duì)靜態(tài)點(diǎn)計(jì)算的基礎(chǔ)矩陣檢驗(yàn)分割出的潛在運(yùn)動(dòng)目標(biāo)上的疑似動(dòng)態(tài)點(diǎn),如果潛在運(yùn)動(dòng)物體上的特征點(diǎn)為靜態(tài),認(rèn)為潛在動(dòng)態(tài)目標(biāo)在此刻沒(méi)有運(yùn)動(dòng),保留特征點(diǎn)為靜態(tài)特征,對(duì)應(yīng)地圖點(diǎn)的動(dòng)態(tài)觀測(cè)次數(shù)保持不變。剔除存在動(dòng)態(tài)特征的潛在運(yùn)動(dòng)目標(biāo)上的ORB特征點(diǎn),更新動(dòng)態(tài)特征關(guān)聯(lián)地圖點(diǎn)的動(dòng)態(tài)觀測(cè)次數(shù),保留經(jīng)過(guò)篩選的靜態(tài)特征RANSAC計(jì)算基礎(chǔ)矩陣F,為防止語(yǔ)義分割輪廓邊界特征和個(gè)別異常特征的動(dòng)態(tài)性出現(xiàn)誤判,再采用低動(dòng)態(tài)場(chǎng)景下基于對(duì)極幾何相互投影極線的方法判斷剩余特征點(diǎn)的動(dòng)態(tài)性,更新兩種方式判斷的動(dòng)靜特征關(guān)聯(lián)地圖點(diǎn)的累積運(yùn)動(dòng)概率,得到可靠的靜態(tài)匹配特征和地圖點(diǎn)用于下一步的相機(jī)位姿估計(jì)和非線性優(yōu)化,保證VSLAM系統(tǒng)在動(dòng)態(tài)環(huán)境中穩(wěn)定運(yùn)行。
3 實(shí)驗(yàn)與分析
為檢驗(yàn)提出方法的有效性,將設(shè)計(jì)的動(dòng)態(tài)環(huán)境下自適應(yīng)運(yùn)動(dòng)目標(biāo)處理AD-SLAM算法分別于改進(jìn)前的ORBSLAM2算法和目前表現(xiàn)較為優(yōu)秀的幾種動(dòng)態(tài)SLAM算法作對(duì)比。在公開數(shù)據(jù)集TUM[24]上進(jìn)行實(shí)驗(yàn)測(cè)試,該數(shù)據(jù)集包含一系列現(xiàn)實(shí)場(chǎng)景拍攝的圖像集,并提供相機(jī)拍攝過(guò)程中的真實(shí)運(yùn)動(dòng)軌跡。選取TUM數(shù)據(jù)集中四個(gè)經(jīng)典的靜態(tài)和動(dòng)態(tài)場(chǎng)景序列,freiburg1_xyz圖像序列是靜態(tài)場(chǎng)景,由相機(jī)在一張靜態(tài)的辦公桌前沿xyz方向移動(dòng)拍攝所得。freiburg3_sitting_xyz圖像序列是低動(dòng)態(tài)場(chǎng)景,相機(jī)沿xyz方向拍攝,有兩位工作人員坐在桌子前交談并伴隨打手勢(shì)。freiburg3_walking_static圖像序列是高動(dòng)態(tài)場(chǎng)景,相機(jī)在拍攝過(guò)程中保持靜止,環(huán)境中有人來(lái)回走動(dòng)。 freiburg3_walking_xyz圖像序列是高動(dòng)態(tài)場(chǎng)景,相機(jī)在拍攝過(guò)程中沿xyz方向移動(dòng),伴隨有兩個(gè)人來(lái)回走動(dòng)。實(shí)驗(yàn)過(guò)程中的硬件為個(gè)人計(jì)算機(jī),主要參數(shù)CPU為酷睿i5-10300H,GPU 為 4 GB內(nèi)存GTX1650 Ti,操作系統(tǒng)為Ubuntu 18.04。用TUM數(shù)據(jù)集中的圖像恢復(fù)不同動(dòng)態(tài)環(huán)境下相機(jī)拍攝過(guò)程,在相同條件下多次運(yùn)行得到ORBSLAM2算法、本文改進(jìn)的AD-SLAM算法以及其他改進(jìn)算法的定位結(jié)果,分別與數(shù)據(jù)集提供的軌跡真值進(jìn)行對(duì)比得到算法的定位精度和運(yùn)行時(shí)間數(shù)據(jù)。
3.1 評(píng)價(jià)指標(biāo)
采用絕對(duì)軌跡誤差(absolute trajectory error,ATE),相對(duì)位姿誤差(relative pose error,RPE)和每幀圖像的平均跟蹤時(shí)間(mean tracking time,MTT)作為評(píng)價(jià)SLAM定位精度和實(shí)時(shí)性的指標(biāo)。ATE是在運(yùn)動(dòng)過(guò)程中每一時(shí)刻的相機(jī)估計(jì)位姿和該時(shí)刻相機(jī)真實(shí)位姿的絕對(duì)誤差,用于評(píng)價(jià)SLAM系統(tǒng)的定位精度。RPE包括旋轉(zhuǎn)相對(duì)位姿誤差和平移相對(duì)位姿誤差,是單位時(shí)間內(nèi)位姿變化的差值,用于評(píng)價(jià)SLAM系統(tǒng)的漂移。MTT是平均每幀圖像的跟蹤時(shí)間,用于評(píng)價(jià)系統(tǒng)的時(shí)間效率。
3.2 定位精度評(píng)估
3.2.1 與ORBSLAM2比較
分別在四個(gè)數(shù)據(jù)集上運(yùn)行ORBSLAM2和AD-SLAM。ORBSLAM2作為公認(rèn)經(jīng)典和穩(wěn)定的特征點(diǎn)法SLAM系統(tǒng),在靜態(tài)世界假設(shè)條件下表現(xiàn)出優(yōu)異的效果。以下展示了在靜態(tài)數(shù)據(jù)集序列freibury1_xyz和動(dòng)態(tài)數(shù)據(jù)集序列freibury3_walking_xyz中的運(yùn)行結(jié)果對(duì)比圖。靜態(tài)序列freiburg1_xyz中ORBSLAM2和AD-SLAM的運(yùn)行結(jié)果如圖5所示,freiburg3_walking_xyz高動(dòng)態(tài)場(chǎng)景序列中兩種SLAM算法運(yùn)行結(jié)果如圖6所示。ATE圖中黑色線表示相機(jī)真實(shí)運(yùn)動(dòng)軌跡,藍(lán)色線是SLAM計(jì)算的相機(jī)運(yùn)動(dòng)軌跡,紅色線表示每一幀時(shí)刻相機(jī)的絕對(duì)偏差。從圖5、6的ATE軌跡圖可以看出,ORBSLAM2在靜態(tài)環(huán)境中可以得到比較準(zhǔn)確的相機(jī)估計(jì)運(yùn)動(dòng)軌跡,然而當(dāng)場(chǎng)景中存在動(dòng)態(tài)目標(biāo)時(shí),絕對(duì)軌跡誤差最大處達(dá)到1 m以上,位姿估計(jì)出現(xiàn)嚴(yán)重偏差,機(jī)器人視覺(jué)定位失敗。本文AD-SLAM不僅能在freibury1_xyz低動(dòng)態(tài)環(huán)境中計(jì)算得到準(zhǔn)確的位姿,在freiburg3_walking_xyz高動(dòng)態(tài)序列中依然能夠穩(wěn)定運(yùn)行,計(jì)算得到和相機(jī)真實(shí)運(yùn)動(dòng)軌跡接近的預(yù)測(cè)運(yùn)動(dòng)軌跡。
定量評(píng)估算法的各項(xiàng)指標(biāo),表2比較了AD-SLAM和ORBSLAM2的絕對(duì)軌跡誤差A(yù)TE。結(jié)果表明ORBSLAM2魯棒性很差,在高動(dòng)態(tài)場(chǎng)景中受運(yùn)動(dòng)物體影響較大,導(dǎo)致定位效果急劇下降,freiburgs_walking_xyz高動(dòng)態(tài)序列的平均絕對(duì)軌跡誤差達(dá)到0.61 m。AD-SLAM在低動(dòng)態(tài)場(chǎng)景下定位精度相比ORBSLAM2提升效果不明顯,在freibury1_xyz和freibury3_sitting_xyz場(chǎng)景定位精度分別提升2.3%和8.77%,是因?yàn)镺RBSLAM2在低動(dòng)態(tài)環(huán)境已經(jīng)達(dá)到了較高的定位精度,可提升空間不大;在高動(dòng)態(tài)環(huán)境中AD-SLAM的定位效果提升顯著,freiburg3_walking_static和freiburg3_walking_xyz場(chǎng)景的平均絕對(duì)軌跡誤差分別降低了98.37%和97.87%。
表3對(duì)比了AD-SLAM和ORBSLAM2的平移相對(duì)位姿誤差,實(shí)驗(yàn)結(jié)果表明,AD-SLAM相較于ORBSLAM2估計(jì)位姿的相對(duì)位姿平移漂移量顯著下降,尤其在高動(dòng)態(tài)環(huán)境中漂移分別下降91.13%和94.29%。表4對(duì)比了AD-SLAM和ORBSLAM2的旋轉(zhuǎn)相對(duì)位姿誤差,實(shí)驗(yàn)數(shù)據(jù)表明,針對(duì)指標(biāo)旋轉(zhuǎn)相對(duì)位姿誤差,相比ORBSLAM2,本文AD-SLAM在高動(dòng)態(tài)環(huán)境下有顯著的定位提升效果,freiburg3_walking_static和freiburg3_walking_xyz序列的旋轉(zhuǎn)相對(duì)位姿誤差降低了85.76%和91.79%。
3.2.2 與其他動(dòng)態(tài)SLAM算法比較
近年來(lái)相關(guān)學(xué)者對(duì)動(dòng)態(tài)環(huán)境下視覺(jué)SLAM進(jìn)行了研究,為驗(yàn)證本文算法的有效性,將AD-SLAM算法與目前表現(xiàn)較為優(yōu)秀的幾種動(dòng)態(tài)SLAM算法DynaSLAM[17]、DS-SLAM[14]、RDS-SLAM[20]和Blitz-SLAM[19]進(jìn)行對(duì)比如表5所示,表中比較了幾種動(dòng)態(tài)SLAM算法定位絕對(duì)軌跡誤差(ATE)的均方根誤差(RMSE),“-”表示文獻(xiàn)中沒(méi)有對(duì)應(yīng)數(shù)據(jù)集的運(yùn)行結(jié)果,由表中結(jié)果可得,在freiburg1_xyz和freiburg3_sitting_xyz場(chǎng)景中,本文AD-SLAM算法取得了最佳的定位效果,在freiburg3_walking_static和freiburg3_walking_xyz場(chǎng)景中,本文算法相比DS-SLAM、RDS-SLAM和Blitz-SLAM具有更小的定位誤差,DynaSLAM的定位效果略好于本文算法,但差距很小效果相當(dāng),原因是數(shù)據(jù)集中的動(dòng)態(tài)目標(biāo)主要是人,而DynaSLAM算法直接將人上特征點(diǎn)刪除,在該數(shù)據(jù)集上效果表現(xiàn)較好,但當(dāng)環(huán)境中存在其他類別移動(dòng)物體時(shí)效果會(huì)下降。
3.3 實(shí)時(shí)性評(píng)估
對(duì)提出的動(dòng)態(tài)AD-SLAM算法和普通語(yǔ)義分割SLAM算法運(yùn)行實(shí)時(shí)性進(jìn)行比較。文獻(xiàn)[17]中DynaSLAM在freiburg3_walking_halfsphere和freiburg3_walking_rpy數(shù)據(jù)集的平均每幀跟蹤時(shí)間分別為0.334 s和0.236 s,平均運(yùn)行耗時(shí)接近AD-SLAM的3倍。表6給出了AD-SLAM算法和DS-SLAM語(yǔ)義分割SLAM算法在同一計(jì)算平臺(tái)平均每幀圖像的跟蹤時(shí)間。實(shí)驗(yàn)結(jié)果表明,本文AD-SLAM算法在運(yùn)行效率上提升效果明顯, DS-SLAM無(wú)論在高動(dòng)態(tài)環(huán)境還是低動(dòng)態(tài)場(chǎng)景,每幀圖像的跟蹤時(shí)間差異性很小,平均0.178 s。本文AD-SLAM實(shí)時(shí)感知環(huán)境動(dòng)態(tài)性,在不同動(dòng)態(tài)環(huán)境下的自適應(yīng)處理策略有效提升了系統(tǒng)的運(yùn)行時(shí)間效率,在低動(dòng)態(tài)場(chǎng)景序列freiburg1_xyz的運(yùn)行速度相比DS-SLAM提升了40.51%,序列freiburg3_sitting_xyz的實(shí)時(shí)性提升了34.64%,在高動(dòng)態(tài)場(chǎng)景,序列freiburg3_walking_static和freiburg3_walking_xyz的實(shí)時(shí)性對(duì)比DS-SLAM分別提升了36.67%和5.65%。
綜合算法的定位精度和實(shí)時(shí)性,在動(dòng)態(tài)未知的復(fù)雜動(dòng)態(tài)環(huán)境下,本文提出的AD-SLAM算法相較于ORBSLAM2和動(dòng)態(tài)DynaSLAM、DS-SLAM等算法,不僅顯著提高了機(jī)器人VSLAM定位的精度,而且相比常規(guī)語(yǔ)義分割動(dòng)態(tài)SLAM算法在運(yùn)行實(shí)時(shí)性上取得了明顯的改善,提升了SLAM系統(tǒng)的精度、魯棒性和實(shí)時(shí)性。
4 結(jié)束語(yǔ)
針對(duì)復(fù)雜動(dòng)態(tài)環(huán)境下視覺(jué)SLAM定位精度低、魯棒性差的問(wèn)題,本文提出基于場(chǎng)景動(dòng)態(tài)分級(jí)的自適應(yīng)多策略同時(shí)定位與建圖算法AD-SLAM。首先根據(jù)對(duì)極幾何約束實(shí)時(shí)判斷運(yùn)行環(huán)境為高動(dòng)態(tài)和低動(dòng)態(tài)場(chǎng)景,在高動(dòng)態(tài)場(chǎng)景語(yǔ)義分割協(xié)同極線約束剔除動(dòng)態(tài)目標(biāo)上大量動(dòng)態(tài)特征點(diǎn)和少量異常噪聲點(diǎn),在低動(dòng)態(tài)場(chǎng)景引入極線約束剔除少量的動(dòng)態(tài)外點(diǎn),更新維護(hù)地圖點(diǎn)的累積運(yùn)動(dòng)概率,消除了動(dòng)態(tài)特征和地圖點(diǎn)對(duì)相機(jī)位姿估計(jì)的影響。在公開數(shù)據(jù)集TUM上對(duì)算法進(jìn)行了驗(yàn)證,實(shí)驗(yàn)結(jié)果表明本文算法在未知?jiǎng)討B(tài)環(huán)境下的定位精度和魯棒性有顯著提升,且相比僅語(yǔ)義分割的SLAM算法,算法的實(shí)時(shí)性得到了改善。下一步工作,將進(jìn)行復(fù)雜動(dòng)態(tài)環(huán)境下的高精度地圖構(gòu)建和維護(hù)。
參考文獻(xiàn):
[1]Mur-Artal R,Montiel J M M,Tardos J D. ORBSLAM: a versatile and accurate monocular SLAM system[J]. IEEE Trans on Robotics,2015,31(5): 1147-1163.
[2]Engel J,Schps T,Cremers D. LSD-SLAM: large-scale direct mono-cular SLAM[C]// Proc of European Conference on Computer Vision. Cham: Springer,2014: 834-849.
[3]Hartley R,Zisserman A. Multiple view geometry in computer vision[M]. Cambridge: Cambridge University Press,2003.
[4]Lucas B D,Kanade T. An iterative image registration technique with an application to stereo vision[C]// Proc of the 7th International Joint Conference on Artificial Intelligence. San Francisco,CA: Morgan Kaufmann Publishers Inc.,1981: 674-679.
[5]Kundu A,Krishna K M,Sivaswamy J. Moving object detection by multi-view geometric techniques from a single camera mounted robot[C]// Proc of IEEE/RSJ International Conference on Intelligent Robots and Systems. Piscataway,NJ: IEEE Press,2009: 4306-4312.
[6]Li Shile,Li Donghui. RGB-D SLAM in dynamic environments using static point weighting[J]. IEEE Robotics and Automation Letters,2017,2(4): 2263-2270.
[7]Dai Weichen,Zhang Yu,Li Ping,et al. RGB-D SLAM in dynamic environments using point correlations[J]. IEEE Trans on Pattern Analysis and Machine Intelligence,2022,44(1): 373-389.
[8]Bahraini M S,Bozorg M,Rad A B. SLAM in dynamic environments via ML-RANSAC[J]. Mechatronics,2018,49: 105-118.
[9]Wang Runzhi,Wan Wenhui,Wang Yongkang,et al. A new RGB-D SLAM method with moving object detection for dynamic indoor scenes[J]. Remote Sensing,2019,11(10): 1143.
[10]林凱,梁新武,蔡紀(jì)源. 基于重投影深度差累積圖與靜態(tài)概率的動(dòng)態(tài)RGB-D SLAM算法[J]. 浙江大學(xué)學(xué)報(bào): 工學(xué)版,2022,56(6): 1062-1070. (Lin Kai,Liang Xinwu,Cai Jiyuan. Dynamic RGB-D SLAM algorithm based on reprojection depth difference cumulative map and static probability[J]. Journal of Zhejiang University: Engineering Science,2022,56(6): 1062-1070.)
[11]魏彤,李緒. 動(dòng)態(tài)環(huán)境下基于動(dòng)態(tài)區(qū)域剔除的雙目視覺(jué)SLAM算法[J]. 機(jī)器人,2020,42(3): 336-345. (Wei Tong,Li Xu. Bino-cular vision SLAM algorithm based on dynamic region elimination in dynamic environment[J]. Robot,2020,42(3): 336-345.)
[12]何召蘭,何乃超,張慶洋,等. 基于實(shí)例分割的視覺(jué)SLAM算法[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2020,41(10): 2791-2796. (He Zhaolan,He Naichao,Zhang Qingyang,et al. Visual SLAM algorithm based on instance segmentation[J]. Computer Engineering and Design,2020,41(10): 2791-2796.)
[13]He Kaiming,Gkioxari G,Dollár P,et al. Mask R-CNN[C]// Proc of IEEE International Conference on Computer Vision. Piscataway,NJ: IEEE Press,2017: 2961-2969.
[14]Yu Chao,Liu Zuxin,Liu Xinjun,et al. DS-SLAM: a semantic visual slam towards dynamic environments[C]// Proc of IEEE/RSJ International Conference on Intelligent Robots and Systems. Piscataway,NJ: IEEE Press,2018: 1168-1174.
[15]Cui Linyan,Ma Chaowei. SOF-SLAM: a semantic visual SLAM for dynamic environments[J]. IEEE Access,2019,7: 166528-166539.
[16]Li Ao,Wang Jikai,Xu Meng,et al. DP-SLAM: a visual SLAM with moving probability towards dynamic environments[J]. Information Sciences,2021,556: 128-142.
[17]Bescos B,F(xiàn)acil J M,Civera J,et al. DynaSLAM: tracking,mapping,and inpainting in dynamic scenes[J]. IEEE Robotics and Automation Letters,2018,3(4): 4076-4083.
[18]Cheng Junhao,Wang Zhi,Zhou Hongyan,et al. DM-SLAM: a feature-based SLAM system for rigid dynamic scenes[J]. ISPRS International Journal of Geo-Information,2020,9(4): 202.
[19]Fan Yingchun,Zhang Qichi,Tang Yuliang,et al. Blitz-SLAM: a semantic SLAM in dynamic environments[J]. Pattern Recognition,2022,121: 108225.
[20]Liu Yubao,Miura J. RDS-SLAM: real-time dynamic SLAM using semantic segmentation methods[J]. IEEE Access,2021,9: 23772-23785.
[21]Su Peng,Luo Suyun,Huang Xiaoci. Real-time dynamic SLAM algorithm based on deep learning[J]. IEEE Access,2022,10: 87754-87766.
[22]Xing Zhiwei,Zhu Xiaorui,Dong Dingcheng. DE-SLAM: SLAM for highly dynamic environment[J]. Journal of Field Robotics,2022,39(5): 528-542.
[23]Badrinarayanan V,Kendall A,Cipolla R. SegNet: a deep convolutio-nal encoder-decoder architecture for image segmentation[J]. IEEE Trans on Pattern Analysis and Machine Intelligence,2017,39(12): 2481-2495.
[24]Sturm J,Engelhard N,Endres F,et al. A benchmark for the evaluation of RGB-D SLAM systems[C]// Proc of IEEE/RSJ International Conference on Intelligent Robots and Systems. Piscataway,NJ: IEEE Press,2012: 573-580.