李延真,石立國,徐志根,程 超,夏清泉
(國網(wǎng)山東省電力公司青島供電公司,山東 青島 266001)
同時定位與建圖(Simultaneous Localization And Mapping,SLAM)是移動機器人領(lǐng)域的一個具有挑戰(zhàn)性的難題。目前SLAM技術(shù)研究主要集中于兩種方法,一是基于便攜式激光測距儀的方法,即激光SLAM,另一種是基于計算機視覺的方法,即視覺SLAM。采用激光雷達構(gòu)建的點云地圖,在某種程度上無法展現(xiàn)較好的環(huán)境細(xì)節(jié)信息,以至于智能機器人在環(huán)境復(fù)雜的場景中,不能有效的進行環(huán)境信息感知和決策。隨著計算機技術(shù)以及視覺傳感器技術(shù)的發(fā)展,視覺SLAM采用相機來替代激光雷達重構(gòu)周圍環(huán)境的3D地圖,已取得了巨大且快速的發(fā)展。而且,圖像中包含更加豐富的環(huán)境特征信息,以使得機器人能夠在更大范圍內(nèi)完成任務(wù)。此外,視覺傳感器的發(fā)展以及深度相機、立體相機的出現(xiàn)和改進,吸引了許多學(xué)者對視覺SLAM技術(shù)進行了大量的研究。視覺SLAM主要由特征提取、特征跟蹤、運動跟蹤、閉環(huán)檢測、地圖構(gòu)建、位姿估計等部分組成。
經(jīng)典視覺SLAM框架如圖1所示,通常包含傳感器數(shù)據(jù)輸入、前端、后端、地圖構(gòu)建以及閉環(huán)檢測。前端獲取傳感器原始數(shù)據(jù),并對數(shù)據(jù)進行預(yù)處理。例如特征提取,短期和長期數(shù)據(jù)關(guān)聯(lián)等操作,以便將幾何信息轉(zhuǎn)換為數(shù)學(xué)模型并將其發(fā)送到后端。后端對前端的輸入模型進行優(yōu)化、最小化相機姿態(tài)的累計誤差,以及地圖信息的優(yōu)化調(diào)整。閉環(huán)檢測將相機圖像的檢測結(jié)果送到后端處理,通過計算圖像相似性,對機器人經(jīng)過的場景進行識別比對,從而實現(xiàn)累計誤差的消除。
圖1 經(jīng)典SLAM框架Fig.1 Classic SLAM framework
根據(jù)視覺傳感器的不同,視覺SLAM主要分為單目、RGB-D、立體視覺SLAM等方法。其中,采用單相機解決SLAM問題的方案稱為單目SLAM;而RGB-D SLAM方法不僅需要單目相機,并且需要用到紅外傳感器;立體視覺SLAM則需要在不同方位安裝多個相機。視覺傳感器一般具有視覺里程測量功能,具有足夠的穩(wěn)定性和魯棒性,而且易于實現(xiàn)。
近十年來,SLAM算法有很多,主要分為基于直接法的視覺SLAM和基于特征點法的視覺SLAM兩大類。
1.1.1 基于特征點的視覺SLAM
Davison等人提出了一種單目SLAM方法,稱為MonoSLAM。MonoSLAM采用EKF算法建立環(huán)境特征點的地圖,這種地圖雖有一定限制,但在解決單目特征初始化的問題上足夠穩(wěn)定。此外,地圖的稀疏性也暴露了機器人在需要更多環(huán)境細(xì)節(jié)的情況下,無法完成定位任務(wù)的問題。為此,研究出現(xiàn)了UKF方法以及改進的UKF方法,用于解決視覺SLAM的線性不確定性。而Sim等人提出的基于PF的單目SLAM方法可以構(gòu)建更精確的映射,但PF方法的算法具有很高的計算復(fù)雜度,以至于無法在大型環(huán)境下應(yīng)用。Klein等人設(shè)計了一種基于關(guān)鍵幀的單目SLAM方法,即PTAM。在該方法中,跟蹤和建圖分為兩個并行化的任務(wù)。關(guān)鍵幀提取技術(shù),即通過數(shù)個關(guān)鍵圖像串聯(lián),優(yōu)化地圖和運動軌跡,從而避免了對每一幅圖像的細(xì)節(jié)進行處理。這種方法采用非線性優(yōu)化來替代EKF方法解決線性化的困難,進而減少了機器人在定位中的不確定性。但是,由于PTAM存在全局優(yōu)化的問題,使得該方法無法在大型環(huán)境中應(yīng)用。
2015年,Mur-Artal等人提出了一種新的實時視覺SLAM方法---ORB-SLAM。該方法是一種基于特征法的單目SLAM,實時估計3D特征位置和重建環(huán)境地圖,其特征計算具有良好的旋轉(zhuǎn)和縮放不變性,具有較高的定位精度。但該方法使得CPU運算負(fù)擔(dān)大,生成的地圖僅用于定位需求,無法用于導(dǎo)航和避障需求。為此,Mur-Artal等于2017年又提出了一種改進算法,即基于ORB-SLAM的ORBSLAM2,其不僅支持RGB-D相機以外的單目相機還支持使用立體相機。
然而,ORB-SLAM2是通過大規(guī)模數(shù)據(jù)生成訓(xùn)練詞匯,當(dāng)詞匯量較大時,其過程對于移動機器人來說是非常耗時的。在機器人工作環(huán)境固定的情況下,使用大數(shù)據(jù)集會導(dǎo)致大量無效數(shù)據(jù)的產(chǎn)生。此外,ORB-SLAM2還缺乏離線可視化和軌跡建圖的能力。
1.1.2 基于直接法的視覺SLAM
1.ene modo-yi tülekü ɡejü beledkejü bui(我要把這根木頭燒了/我想燒掉這根木頭)
LSD-SLAM、DTAM是基于直接法的單目SLAM方法,使用RGB圖像作為輸入,通過所有像素強度估計相機的幀軌跡和重建環(huán)境的3D地圖。DTAM是一種直接稠密的方法,通過在相機視頻流中提取多張靜態(tài)場景圖片來提高單個數(shù)據(jù)信息的準(zhǔn)確性,從而實時生成精確的深度地圖。該方法計算復(fù)雜度比較大,需要GPU并行運算,對全局照明處理的魯棒性較差。
LSD-SLAM能夠構(gòu)建一個半稠密的全局穩(wěn)定的環(huán)境地圖,包含了更全面的環(huán)境表示,在CPU上實現(xiàn)了半稠密場景的重建。該方法對相機內(nèi)參敏感和曝光敏感,需要特征點進行回環(huán)檢測,無法在照明不規(guī)律變化的場景中應(yīng)用。
Forster等人提出的SVO(Semi-direct Visual Odoemtry),是一種半直接法的視覺里程計,其是特征點和直接法的混合使用,該方法的時間復(fù)雜度較低,但是,該方法舍棄了后端優(yōu)化和回環(huán)檢測,而且位姿估計會產(chǎn)生累積誤差,因此在移動機器人丟失位置后重定位比較困難。
DSO(Direct Sparse Odometry)也是一種半直接法的視覺里程計,基于高度精確的稀疏直接結(jié)構(gòu)和運動公式。該方法能夠直接優(yōu)化光度誤差,考慮了光度標(biāo)定模型,該方法不僅完善了直接法位姿估計的誤差模型,還加入了仿射亮度變換、光度標(biāo)定、深度優(yōu)化等方法,在無特征的區(qū)域中也可以使其具有魯棒性。但是,該方法舍棄了回環(huán)檢測。
VI-SLAM(Visual-Inertial SLAM)將視覺傳感器和IMU優(yōu)勢結(jié)合,從而為移動機器人提供更加豐富的運動信息和環(huán)境信息。其主要方式將視覺前段信息與IMU信息結(jié)合,即視覺慣性里程計(VIO),采用濾波技術(shù)以及優(yōu)化方法,對采集的物理量信息進行處理,進而實現(xiàn)對自身的運動和環(huán)境信息估計。當(dāng)視覺傳感器在短時間內(nèi)快速運動失效時,融合IMU數(shù)據(jù)能夠為視覺提供短時的精準(zhǔn)定位,同時利用視覺定位信息來估計IMU的零偏,減少IMU由零偏導(dǎo)致的發(fā)散和累積誤差。通過二者的融合,可以解決視覺位姿估計輸出頻率低的問題,同時位姿估計精度有一定的提高,整個系統(tǒng)也更加魯棒。目前VI-SLAM已在機器人、無人機、無人駕駛、AR和VR等多個領(lǐng)域有所應(yīng)用。
MSCKF算法將視覺與慣性信息在EKF框架下融合,相較于單純的VO算法,該算法能夠應(yīng)用在運動劇烈、紋理短時間缺失等環(huán)境中,而且魯棒性更好;相較于基于優(yōu)化的VIO算法(VINS,OKVIS),MSCKF精度相當(dāng)、速度更快,適合在計算資源有限的嵌入式平臺運行。ROVIO是基于單目相機開發(fā)的緊耦合VIO系統(tǒng),通過對圖像塊的濾波實現(xiàn)VIO,利用擴展卡爾曼濾波進行狀態(tài)估計,使用速度更快的FAST來提取角點,其三維坐標(biāo)用向量和距離表示。其次,所有角點是通過圖像塊進行描述,并通過視頻流獲取了多層次表達;最后利用IMU估計的位姿來計算特征投影后的光度誤差,并將其用于后續(xù)優(yōu)化。雖然該算法計算量小,但對應(yīng)不同的設(shè)備需要調(diào)參數(shù)(參數(shù)對精度很重要),并且沒有閉環(huán),經(jīng)常存在誤差,會殘留到下一時刻。
視覺與激光雷達融合的SLAM,是將激光雷達在建圖和距離測量時準(zhǔn)確度較好的優(yōu)勢,與視覺方法構(gòu)建環(huán)境信息較準(zhǔn)確的優(yōu)勢相結(jié)合,在一定程度上能夠避免單相機在使用過程中的單目尺度漂移、雙目深度估計精度不高、戶外RGB-D稠密重建困難的缺陷,將有效提升SLAM性能。其確定是標(biāo)定和融合比較困難。
視覺與激光雷達融合的SLAM主要分為:改進的視覺SLAM、改進的激光SLAM以及并行激光與視覺SLAM。
J.Graeter等人提出了一種激光-視覺里程計方法(LiDAR-Monocular Visual Odometry,LIMO)。該方法從LiDAR中提取圖片中特征點的深度,不僅考慮局部平面假設(shè)的外點,并考慮了地面點。Shin等人利用LiDAR提供的稀疏深度,提出了一種基于單目相機直接法的視覺SLAM框架。采用滑動窗口進行追蹤的方法,忽略舊的關(guān)鍵幀,不在大規(guī)模場景下集成了深度的幀與幀的匹配方法。這種方法相機分辨率比激光雷達分辨率高,從而導(dǎo)致許多像素缺失深度信息。為處理相機和激光雷達分辨率匹配的問題,De Silva等人在計算兩個傳感器之間的幾何變換后,采用高斯過程回歸,對缺失值進行插值。Scherer等人采用VIO對機器人的狀態(tài)進行估計,采用激光雷達進行障礙物及邊界檢測,但是激光雷達的點云數(shù)據(jù)可能包含遮擋點,從而對精度有一定的影響。為提高精度,Huang等人提出一種基于直接法的SLAM方法,采用遮擋點檢測器和共面點檢測器解決這一問題。
在一些研究中,視覺-激光SLAM,采用激光雷達掃描匹配進行運動估計,相機進行特征檢測,從而對純激光SLAM的缺陷進行相應(yīng)的彌補。Liang等人提出了一種解決激光和相機傳感器集成的大規(guī)模激光碰撞中的閉環(huán)問題。其利用ORB特征和詞袋特征,實現(xiàn)了環(huán)路檢測的快速、魯棒性。通過在不同大規(guī)模環(huán)境下的實驗,驗證了該方法的有效性。Zhu等人將3D激光SLAM和視覺關(guān)鍵幀詞袋回環(huán)檢測相融合,并對最近點迭代(ICP)進行優(yōu)化。Pandey等人利用3D點云與可用相機圖像的共配準(zhǔn),將高尺度特征描述符(如尺度不變特征變換(SIFT)或加速魯棒特征(SURF))與3D點相關(guān)聯(lián),即利用視覺信息對剛性轉(zhuǎn)換做了預(yù)測,并且建立通用的ICP框架。
此外,并發(fā)視覺激光融合也是一個研究方向。Seo等人同時采用激光雷達和視覺傳感器并行構(gòu)建了兩個地圖:激光雷達立體像素地圖和具有地圖點的視覺地圖,并在后端優(yōu)化中運用殘差對里程求解,使其保持全局一致,從而能夠更好的進行狀態(tài)估計,是一種緊耦合的方法。Zhang等人提出一種視覺雷達里程計的通用框架。該方法使用高頻運行的視覺里程計作為圖像幀速率(60 Hz)來估計運動,并使用低頻率(1 Hz)激光雷達測距儀細(xì)化運動估計,并消除由視覺測距漂移引起的點云失真。
將深度學(xué)習(xí)理論引入視覺SLAM中,主要應(yīng)用包含:使用深度神經(jīng)網(wǎng)絡(luò)對單目視覺深度進行估計;將深度學(xué)習(xí)與視覺SLAM前端結(jié)合,從而提高圖像特征提取的準(zhǔn)確度;融入物體識別、目標(biāo)檢測、語音分割等技術(shù),進而增加對周圍環(huán)境信息的感知與理解。
Zhou等人提出了一種單目深度和位姿估計的無監(jiān)督學(xué)習(xí)網(wǎng)絡(luò),其特點是完全無監(jiān)督網(wǎng)絡(luò),從非結(jié)構(gòu)化視頻序列進行單視圖深度估計和多視圖位姿估計,但得到的深度和位姿缺乏系統(tǒng)尺度。Godard等人提出了一種卷積神經(jīng)網(wǎng)絡(luò),替代了直接用深度圖數(shù)據(jù)訓(xùn)練,采用容易獲得的雙目立體視覺的角度,在沒有參考深度數(shù)據(jù)的情況下,估計單個圖像的深度,從而可以執(zhí)行端到端無監(jiān)督單眼深度估計,并加強左右視差圖的一致性,從而提升性能和魯棒性。Mahjourian等人提出了一種基于無監(jiān)督學(xué)習(xí)的新方法,對單目視頻中的深度與自我運動的估計,最終作者在KITTI數(shù)據(jù)集和手機拍攝的微景觀標(biāo)定的視頻數(shù)據(jù)集上進行了算法驗證。Daniel DeTone等人提出了一種DeepSlam,在存在圖像噪聲的情況下進行特征點檢測,相比傳統(tǒng)方案,具有顯著的性能差距。此外,DeTone等人還提出了一個自監(jiān)督框架SuperPoint,適用于計算機視覺中大量多視圖幾何問題的興趣點檢測器和描述符的訓(xùn)練。Jiexiong Tang等人提出了一種基于深度學(xué)習(xí)的GCNv2網(wǎng)絡(luò)(GCN-SLAM),用于生成關(guān)鍵點和描述符。
JohnMcCormac等人提出了Semanticfusion方法,使用CNN進行語義分割,加上條件隨機場對分割結(jié)果的優(yōu)化,設(shè)計了semantic mapping系統(tǒng),是一種將CNN和最先進的稠密SLAM融合方案。Thomas Whelan等人提出了ElasticFusion,用來構(gòu)建語義三維地圖。Bowman等人提出一種融合尺度信息與語義信息的理論框架,通過對目標(biāo)進行相應(yīng)的檢測,將尺度信息和語義信息結(jié)合,從而實現(xiàn)對運動估計和地圖的優(yōu)化。
目前,大部分的研究都是基于靜態(tài)環(huán)境,而且光線良好,且為非單調(diào)紋理特征的情形。但實際生活場景中還會有大量動態(tài)的行人或者物體,所以研究動態(tài)環(huán)境下的SLAM也是極其重要的。其關(guān)鍵技術(shù)就是將動態(tài)的行人或物品等特征點,能夠在地圖中過濾移除,避免對定位和閉環(huán)檢測產(chǎn)生不良影響
為此,Wei Tan等人提出了RDSLAM(Robust monocular slam)方法,其是一種基于關(guān)鍵幀的在線表示和更新方法的實時單目SLAM系統(tǒng)。該方法可以處理緩慢變化的動態(tài)環(huán)境,能夠檢測變化并及時更新地圖。Chao Yu等人提出了一個面對動態(tài)環(huán)境的語義視覺SLAM系統(tǒng)DS-SLAM。該方法結(jié)合語義信息和運動特征點檢測,來濾除每一幀中的動態(tài)物體,從而提高位姿估計的準(zhǔn)確性,同時建立語義八叉樹地圖。其是基于優(yōu)化ORB-SLAM的方法,使其具有更好的魯棒性。 MaskFusion是由RüNZ M等人提出的一個實時的、具備對象感知功能的、語義和動態(tài)RGB-D SLAM系統(tǒng)。該方法在連續(xù)的、自主運動中,能夠在跟蹤和重建的同時,識別分割場景中不同的物體并分配語義類別標(biāo)簽。DynaSLAM是一個在動態(tài)環(huán)境下輔助靜態(tài)地圖的SLAM系統(tǒng),通過增加運動分割方法使其在動態(tài)環(huán)境中具有穩(wěn)健性,并且能夠?qū)討B(tài)物品遮擋的部分進行修復(fù)優(yōu)化,生成靜態(tài)場景地圖。StaticFusion是一種面向動態(tài)環(huán)境基于面元的RGB-D SLAM系統(tǒng),能夠在動態(tài)環(huán)境中檢測運動目標(biāo)并同時重建背景結(jié)構(gòu),但該方法的初始若干幀內(nèi)不能有大量動態(tài)物體,否則初始靜態(tài)場景面元地圖的不準(zhǔn)確性增加。
在視覺SLAM發(fā)展的三十年里,已取得了重大的成果,形成一些常用的框架方法,在機器人、無人機、無人駕駛、AR和VR等多個領(lǐng)域已有所應(yīng)用。針對視覺SLAM經(jīng)典研究方法的特點做一總結(jié),見表1。
表1 視覺SLAM經(jīng)典方法總結(jié)Tab.1 Summary of classical visual SLAM
綜上所述,目前已有的SLAM方法仍然在計算力問題、室外動態(tài)大規(guī)模地圖構(gòu)建、地圖復(fù)用等方面存在不足,以及在實時性與準(zhǔn)確性問題上難以兼顧。目前,SLAM應(yīng)用場景不斷變化,移動環(huán)境場景也不斷增多,SLAM算法在動態(tài)物體及動態(tài)環(huán)境方面要求也不斷升高,同時實時性要求也隨之提高,這也成為今后SLAM算法的研究方向,隨著新型傳感器以及更多算法的研究與發(fā)展,視覺SLAM也不斷提高精度及魯棒性,平衡實時性和準(zhǔn)確性,向可移植、多傳感器融合以及智能語義SLAM的方向發(fā)展。