摘 要:為了解決視覺同步定位與建圖(Simultaneous Localization and Mapping,SLAM) 系統(tǒng)在動(dòng)態(tài)場景下容易受到動(dòng)態(tài)物體干擾,導(dǎo)致算法定位精度和魯棒性下降的問題,提出了一種融合YOLOv5s 輕量級(jí)目標(biāo)檢測網(wǎng)絡(luò)的視覺SLAM 算法。在ORB-SLAM2 的跟蹤線程中添加了目標(biāo)檢測和剔除動(dòng)態(tài)特征點(diǎn)模塊,通過剔除圖像中的動(dòng)態(tài)特征點(diǎn),提高SLAM 系統(tǒng)的定位精度和魯棒性。改進(jìn)了YOLOv5s 的輕量化目標(biāo)檢測算法,提高了網(wǎng)絡(luò)在移動(dòng)設(shè)備中的推理速度和檢測精度。將輕量化目標(biāo)檢測算法與ORB 特征點(diǎn)算法結(jié)合,以提取圖像中的語義信息并剔除先驗(yàn)的動(dòng)態(tài)特征。結(jié)合LK 光流法和對(duì)極幾何約束來剔除動(dòng)態(tài)特征點(diǎn),并利用剩余的特征點(diǎn)進(jìn)行位姿匹配。在TUM 數(shù)據(jù)集上的驗(yàn)證表明,提出的算法與原ORB-SLAM2 相比,在高動(dòng)態(tài)序列下的絕對(duì)軌跡誤差(Absolute Trajectory Error,ATE) 和相對(duì)軌跡誤差(Relative Pose Error,RPE) 均提高了95% 以上,有效提升了系統(tǒng)的定位精度和魯棒性。相對(duì)當(dāng)前一些優(yōu)秀的SLAM 算法,在精度上也有明顯的提升,并且具有更高的實(shí)時(shí)性,在移動(dòng)設(shè)備中擁有更好的應(yīng)用價(jià)值。
關(guān)鍵詞:視覺同步定位與建圖;動(dòng)態(tài)場景;輕量級(jí)網(wǎng)絡(luò);目標(biāo)檢測;LK 光流法
中圖分類號(hào):TP39 文獻(xiàn)標(biāo)志碼:A 開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
文章編號(hào):1003-3106(2024)04-0900-11
0 引言
同步定位與建圖(Simultaneous Localization andMapping,SLAM)是移動(dòng)機(jī)器人在進(jìn)入陌生環(huán)境后實(shí)現(xiàn)自主定位與導(dǎo)航的關(guān)鍵技術(shù)[1],已應(yīng)用于自動(dòng)駕駛、生物醫(yī)療和無人機(jī)等多個(gè)領(lǐng)域。當(dāng)前SLAM 系統(tǒng)主要借助相機(jī)、慣性測量單元(InertialMeasurement Unit,IMU)、激光雷達(dá)和超聲波雷達(dá)等傳感器,視覺SLAM 是使用相機(jī)作為外部傳感器進(jìn)行SLAM 技術(shù)。得益于計(jì)算機(jī)視覺技術(shù)的進(jìn)步,視覺SLAM 以其低廉的成本、豐富的環(huán)境信息和廣泛適應(yīng)性受到了學(xué)者的廣泛研究。在2007 年,Klein等[2]提出了一種基于關(guān)鍵幀的SLAM 解決方案,即并行跟蹤和建圖(Parallel Tracking and Mapping,PTAM),是視覺SLAM 領(lǐng)域的重大突破,使得基于視覺的SLAM 系統(tǒng)成為研究熱點(diǎn)。目前,視覺SLAM 主要分為2 類:特征點(diǎn)法和直接法。其中,PTAM、ORBSLAM2[3]是基于特征點(diǎn)法的優(yōu)秀算法,而LSD-SLAM[4]、DSO[5]則是基于直接法的優(yōu)秀算法。當(dāng)前,基于特征點(diǎn)和直接法的視覺SLAM 算法都是建立在靜態(tài)環(huán)境假設(shè)下實(shí)現(xiàn)高精確度和魯棒性,但在現(xiàn)實(shí)的生活場景中會(huì)出現(xiàn)大量諸如行人、動(dòng)物和汽車的動(dòng)態(tài)物體,當(dāng)環(huán)境中出現(xiàn)較多此類動(dòng)態(tài)物體時(shí),會(huì)使SLAM 系統(tǒng)的定位精度和魯棒性嚴(yán)重下降,甚至導(dǎo)致建圖失敗。
針對(duì)上述在動(dòng)態(tài)環(huán)境中視覺SLAM 遇到的問題,國內(nèi)外學(xué)者主要從基于幾何、基于光流和基于深度學(xué)習(xí)三方面進(jìn)行研究。一是基于幾何的算法,Kundu 等[6]提出了一種方法,通過使用多視幾何約束來檢測物體的靜止或運(yùn)動(dòng)狀態(tài)。該方法利用對(duì)極線約束和機(jī)器人運(yùn)動(dòng)知識(shí)來估計(jì)圖像像素沿著對(duì)極線的位置界限,以便檢測環(huán)境中的運(yùn)動(dòng)物體。此外,為了準(zhǔn)確分類物體的狀態(tài),還應(yīng)用了貝葉斯框架來區(qū)分是否為動(dòng)態(tài)物體。Palazzolo 等[7]提出了一種基于TSDF 的映射方法,能夠在動(dòng)態(tài)環(huán)境中跟蹤相機(jī)的姿態(tài)。該算法采用了有效的直接跟蹤方法,并利用編碼在Truncated Signed Distance Function(TSDF)中的顏色信息來估計(jì)傳感器的姿態(tài)。同時(shí),該算法還結(jié)合了體素哈希表示方法,通過基于配準(zhǔn)殘差和空閑空間表示的算法來過濾動(dòng)態(tài)特征,從而實(shí)現(xiàn)了在動(dòng)態(tài)環(huán)境中的稠密建圖。二是基于光流的算法,Fang 等[8]提出了一種基于點(diǎn)匹配技術(shù)和均勻采樣策略的光流方法有效實(shí)現(xiàn)了檢測和跟蹤移動(dòng)目標(biāo),并引入卡爾曼濾波器改善了檢測和跟蹤效果,但該算法在提高計(jì)算速度的同時(shí)損失了一部分精度。Zhang 等[9]提出了一種基于光流的稠密RGBD SL通過稠密的RGBD 點(diǎn)云建立三維地圖,使用光流算法來提取當(dāng)前幀與上一幀之間的運(yùn)動(dòng)信息,并計(jì)算相應(yīng)的光流殘差提升更準(zhǔn)確和高效的動(dòng)態(tài)、靜態(tài)分割,然后將動(dòng)態(tài)物體進(jìn)行剔除,在動(dòng)態(tài)和靜態(tài)環(huán)境下都實(shí)現(xiàn)了精準(zhǔn)和高效的性能。三是基于深度學(xué)習(xí)的算法,隨著深度學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域的發(fā)展,越來越多的研究人員運(yùn)用目標(biāo)檢測和語義分割的方法識(shí)別并剔除場景中的動(dòng)態(tài)特征點(diǎn)并取得了優(yōu)秀的效果。清華大學(xué)Yu 等[10]在ORB-SLAM2 基礎(chǔ)上提出一種名為DS-SLAM 的方法。該方法加入了語義分割和稠密地圖創(chuàng)建線程,并采用SegNet[11]語義分割網(wǎng)絡(luò)和運(yùn)動(dòng)一致性檢測方法相結(jié)合的方式,以剔除對(duì)系統(tǒng)影響大于設(shè)定閾值的特征點(diǎn),提高系統(tǒng)在動(dòng)態(tài)環(huán)境下的魯棒性和穩(wěn)定性。該算法經(jīng)過驗(yàn)證具有顯著的效果改進(jìn)。同樣,在ORB-SLAM2 基礎(chǔ)上Bescos 等[12]提出了DynaSLAM 算法,該算法利用Region-based Convolutional Neural Network(Mask R-CNN)[13]分割和多視圖幾何法結(jié)合來檢測潛在的動(dòng)態(tài)特征并剔除動(dòng)態(tài)元素,從而提升了系統(tǒng)的準(zhǔn)確性,但該算法存在著耗時(shí)嚴(yán)重和實(shí)時(shí)性差的問題。在結(jié)合目標(biāo)檢測方面,Zhong 等[14]提出了Detect-SLAM系統(tǒng),將目標(biāo)檢網(wǎng)絡(luò)———Single Shot MultiBoxDetector(SSD)[15]和SLAM 系統(tǒng)結(jié)合,通過預(yù)訓(xùn)練好的目標(biāo)檢測網(wǎng)絡(luò)對(duì)圖像序列中物體進(jìn)行檢測,然后在ORB 特征提取階段將動(dòng)態(tài)特征點(diǎn)剔除,極大地提高了動(dòng)態(tài)環(huán)境中SLAM 的準(zhǔn)確性和魯棒性。Wang等[16]提出了一個(gè)動(dòng)態(tài)場景下的語義SLAM 系統(tǒng),將深度學(xué)習(xí)方法和基于LUT SLAM 相結(jié)合,利用YOLOv3 目標(biāo)檢測算法對(duì)特定的運(yùn)動(dòng)物體進(jìn)行檢測并剔除,生成了剔除移動(dòng)物體的稠密點(diǎn)云圖。
為了減少環(huán)境中動(dòng)態(tài)物體對(duì)算法的影響,本文針對(duì)室內(nèi)的動(dòng)態(tài)場景提出了一種融合YOLOv5s 輕量級(jí)目標(biāo)檢測網(wǎng)絡(luò)的視覺SLAM 算法,運(yùn)用改進(jìn)后的輕量化目標(biāo)檢測算法、光流法和結(jié)合對(duì)極幾何約束的方法來剔除場景中的動(dòng)態(tài)特征點(diǎn),在保證實(shí)時(shí)性的同時(shí)提高視覺SLAM 系統(tǒng)在動(dòng)態(tài)場景中的定位精度和魯棒性。
本文有以下兩方面的改進(jìn)和創(chuàng)新:
① 將YOLOv5s 的原普通卷積替換為更加輕量級(jí)的Ghost 卷積,以減少網(wǎng)絡(luò)參數(shù)大?。辉诰W(wǎng)絡(luò)中添加Coordinate Attention(CA)機(jī)制,以增強(qiáng)網(wǎng)絡(luò)對(duì)于重要信息的捕捉能力;同時(shí)將損失函數(shù)CIoU 修改為EIoU,提高模型的穩(wěn)定性和性能。從而提高算法的推理速度和檢測精度。
② 在ORB-SLAM2 的框架中添加了目標(biāo)檢測模塊和剔除動(dòng)態(tài)特征點(diǎn)模塊,將目標(biāo)檢測算法、LK 光流法和對(duì)極幾何約束相結(jié)合,以此剔除環(huán)境中的動(dòng)態(tài)特征點(diǎn)。
1 系統(tǒng)框架與流程
ORB-SLAM2 是一種基于特征點(diǎn)的單目/ 雙目/RGB-D 視覺SLAM 系統(tǒng),可以通過相機(jī)捕捉的圖像數(shù)據(jù)來實(shí)現(xiàn)同時(shí)定位和地圖構(gòu)建,具有穩(wěn)定性高、運(yùn)行速度快和易于實(shí)現(xiàn)等優(yōu)點(diǎn),是目前視覺SLAM 領(lǐng)域應(yīng)用最為廣泛的系統(tǒng),包含跟蹤線程、局部建圖和閉環(huán)檢測3 個(gè)主要的線程,系統(tǒng)框架如圖1所示。
2 基于YOLOv5s 的輕量化目標(biāo)檢測算法
YOLO 系列作為一階目標(biāo)檢測算法的杰出代表,相比傳統(tǒng)算法,YOLO 算法的結(jié)構(gòu)簡單,具有較快的檢測速度和較高的檢測精度。YOLOv5 在YOLOv4 的基礎(chǔ)上優(yōu)化了網(wǎng)絡(luò)結(jié)構(gòu)、訓(xùn)練策略并進(jìn)行了數(shù)據(jù)增強(qiáng),使得其在速度和精度上都有所提升。因YOLOv5 的輕量化特性,其訓(xùn)練和推理速度比當(dāng)前最新的YOLOv7 和YOLOv8 也要快很多,并且具有較低的內(nèi)存占用,這使得YOLOv5 在移動(dòng)設(shè)備或者資源受限的系統(tǒng)應(yīng)用場景中更具優(yōu)勢,而YOLOv5s 是YOLOv5 系列中模型最小、運(yùn)行速度最快的網(wǎng)絡(luò)[17],對(duì)硬件設(shè)備要求較低,因此更適合在移動(dòng)端部署。
考慮到室內(nèi)動(dòng)態(tài)環(huán)境中的檢測對(duì)象以大目標(biāo)為主和移動(dòng)設(shè)備算力的限制,為進(jìn)一步滿足動(dòng)態(tài)場景中的目標(biāo)檢測和保證系統(tǒng)能夠?qū)崟r(shí)運(yùn)行的需要,本節(jié)以YOLOv5s 網(wǎng)絡(luò)為基礎(chǔ),改進(jìn)了一種基于YOLOv5s 的輕量化目標(biāo)檢測算法:① 將網(wǎng)絡(luò)的普通卷積替換為更加輕量化的Ghost 卷積,從而減少網(wǎng)絡(luò)的計(jì)算量,提高運(yùn)行速度;② 在Backbone 中添加CA 注意力機(jī)制,以增強(qiáng)網(wǎng)絡(luò)對(duì)于重要信息的捕捉能力;③ 使用新的EIoU 損失函數(shù)替代原YOLOv5s使用的CIoU,提高模型的穩(wěn)定性和性能。改進(jìn)后的YOLOv5s 網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。
2. 1 替換Ghost 卷積
隨著計(jì)算機(jī)視覺應(yīng)用場景的不斷擴(kuò)大和多樣化,輕量級(jí)網(wǎng)絡(luò)結(jié)構(gòu)的研究和應(yīng)用成為當(dāng)前熱點(diǎn)之一。在YOLOv5s 網(wǎng)絡(luò)中,主干網(wǎng)絡(luò)是整個(gè)模型的核心組成部分,決定了模型的性能和速度。然而,傳統(tǒng)的主干網(wǎng)絡(luò)如Darknet53 具有較多的參數(shù)和計(jì)算量,導(dǎo)致模型較大且運(yùn)行速度較慢。受限于移動(dòng)設(shè)備的硬件條件和環(huán)境影響,為提高模型的輕量化和速度,本文將YOLOv5s 網(wǎng)絡(luò)原有的普通卷積層替換為更加輕量化的深度可分離卷積GhostConv,如圖3所示為Ghost 模塊[18]。
GhostNet 采用輕量化的分組卷積和通道注意力機(jī)制,以保持高準(zhǔn)確率的同時(shí)減少網(wǎng)絡(luò)的計(jì)算量和存儲(chǔ)空間;使用反向殘差模塊來加速模型訓(xùn)練和降低模型的復(fù)雜度。因此,將原有的普通卷積層替換為GhostConv 不僅可以提高YOLOv5s 的速度,還可以減少網(wǎng)絡(luò)的參數(shù)量和存儲(chǔ)空間,更利于在嵌入式和資源受限的移動(dòng)設(shè)備進(jìn)行實(shí)時(shí)目標(biāo)檢測。
2. 2 添加CA 注意力機(jī)制
在深度學(xué)習(xí)中,注意力機(jī)制已被廣泛應(yīng)用于圖像識(shí)別、自然語言處理等任務(wù)中,取得了良好的效果。注意力機(jī)制是一種加強(qiáng)模型特征表達(dá)能力的計(jì)算單元,可以讓模型在處理數(shù)據(jù)時(shí)更關(guān)注重要的部分,同時(shí)減少不必要的計(jì)算。在加入Ghost 模塊后,參數(shù)量和計(jì)算量都大幅降低,加快了訓(xùn)練和推理速度,但同時(shí)也減少了網(wǎng)絡(luò)對(duì)全局特征的提取。因此,為減少冗余信息和增強(qiáng)特征圖中重要的特征信息,本文選擇在Backbone 添加CA 機(jī)制[19]。CA 機(jī)制模塊如圖4 所示。
算法流程主要如下:
① 輸入特征圖:特征圖輸入到CA 機(jī)制中進(jìn)行處理。
② 通道權(quán)重計(jì)算:對(duì)于輸入的特征圖,分別進(jìn)行全局平均池化操作和全局最大池化操作,得到2 個(gè)不同的特征向量。將這2 個(gè)特征向量經(jīng)過一個(gè)全連接層進(jìn)行變換,得到一個(gè)通道權(quán)重向量。
③ 特征重要性調(diào)整:將通道權(quán)重向量乘以輸入特征圖,得到加權(quán)特征圖。通道權(quán)重的作用是調(diào)整每個(gè)特征通道的重要性,因此加權(quán)特征圖中每個(gè)通道的特征表示的重要性得到了調(diào)整。
④ 通道信息融合:加權(quán)特征圖通過一個(gè)Sigmoid 函數(shù)進(jìn)行激活,得到一個(gè)權(quán)重矩陣。權(quán)重矩陣與輸入特征圖進(jìn)行逐元素相乘,得到經(jīng)過通道信息融合的特征圖,這個(gè)特征圖中的每個(gè)像素都包含了整個(gè)特征圖中所有通道的信息,并且每個(gè)通道的重要性已經(jīng)被調(diào)整。
CA 機(jī)制作為一種輕量級(jí)通道注意力機(jī)制,與SE、CBAM 注意力機(jī)制不同,其不涉及空間位置信息,而是關(guān)注不同通道間的關(guān)系和位置信息,通過自適應(yīng)地調(diào)整每個(gè)通道的權(quán)重,可有效地提升YOLOv5s 網(wǎng)絡(luò)的準(zhǔn)確性。
2. 3 引入EIoU 損失函數(shù)
在目標(biāo)檢測中,一個(gè)檢測框與真實(shí)框匹配通常采用Intersection over Union(IoU)指標(biāo)來度量。IoU通過計(jì)算檢測框和真實(shí)框之間的重疊部分面積與并集面積之比得到,定義如下:
IoU = P ∩ R/P ∪ R, (1)
式中:P 為檢測框,R 為真實(shí)框。YOLOv5s 使用CIoU[20]作為模型的損失函數(shù),CIoU 同時(shí)考慮到回歸框?qū)捀弑壤约罢鎸?shí)框與預(yù)測框中心距離,計(jì)算如下:
式中:ρ2(b,bgt )為圖預(yù)測框和真實(shí)框中心點(diǎn)之間的歐氏距離,c 為能夠同時(shí)包含真實(shí)框和預(yù)測框最小矩形框?qū)蔷€距離,α 為權(quán)重函數(shù),v 為預(yù)測框和真實(shí)框長寬比的相似性。定義如下:
CIoU 損失函數(shù)已有效解決了IoU、DIoU 存在的問題,但由于v 僅反映縱橫比的差異,因此CIoU 可能會(huì)以不恰當(dāng)?shù)姆椒▋?yōu)化相似性,即存在當(dāng)目標(biāo)框非常小或者存在較大的偏移時(shí),損失函數(shù)的值會(huì)出現(xiàn)較大的偏差。為解決這一問題,本文使用新的EIoU[21]替換CIoU 作為YOLOv5s 的損失函數(shù),EIoU函數(shù)計(jì)算如下:
EIoU 在CIoU 的基礎(chǔ)上計(jì)算寬高的差異值代替了縱橫比,有效解決了CIoU 的問題,并且采用FocalLoss 處理難易樣本不平衡的問題。引入EIoU 損失函數(shù)的網(wǎng)絡(luò)模型訓(xùn)練速度更快、收斂更穩(wěn)定,能夠更好地適應(yīng)動(dòng)態(tài)場景下目標(biāo)檢測需求。
3 動(dòng)態(tài)特征點(diǎn)剔除算法設(shè)計(jì)
3. 1 基于輕量化目標(biāo)檢測網(wǎng)絡(luò)的語義信息提取
在計(jì)算機(jī)視覺領(lǐng)域,語義信息通常指對(duì)圖像中對(duì)象的類別、位置、姿態(tài)和形狀等高級(jí)概念的理解和表達(dá),可以利用語義信息理解場景和動(dòng)態(tài)目標(biāo),以此提升在動(dòng)態(tài)場景下SLAM 系統(tǒng)的魯棒性。
傳統(tǒng)的特征點(diǎn)法SLAM 系統(tǒng)采用特征點(diǎn)提取和匹配的方法,在位姿初始化時(shí)對(duì)兩幀圖像進(jìn)行處理,接著通過RANSAC(Random Sample Consensus)等方法去除一些誤匹配和動(dòng)態(tài)點(diǎn)。在動(dòng)態(tài)場景中當(dāng)環(huán)境中的動(dòng)態(tài)數(shù)量過多時(shí),傳統(tǒng)SLAM 系統(tǒng)的位姿初始化精度會(huì)嚴(yán)重下降。考慮本文針對(duì)室內(nèi)場景進(jìn)行研究,場景中的動(dòng)態(tài)目標(biāo)以人或動(dòng)物為主,因此選擇人或動(dòng)物作為先驗(yàn)的動(dòng)態(tài)目標(biāo)。本文在ORBSLAM2的跟蹤線程上添加目標(biāo)檢測模塊,運(yùn)用改進(jìn)后的輕量化網(wǎng)絡(luò)YOLOv5s 進(jìn)行目標(biāo)檢測,并提取場景中圖像的語義信息,然后將提取的語義信息和ORB 特征提取相結(jié)合獲取圖像信息,利用目標(biāo)檢測算法預(yù)測一些先驗(yàn)的動(dòng)態(tài)區(qū)域并剔除其中的動(dòng)態(tài)特征點(diǎn),將保留下的特征點(diǎn)進(jìn)入下一環(huán)節(jié)進(jìn)行跟蹤匹配,從而獲得更準(zhǔn)確的相機(jī)位姿估計(jì)。
3. 2 基于光流法的特征跟蹤和匹配
由于光流法只需要對(duì)少量的特征點(diǎn)進(jìn)行追蹤,而不需要處理整張圖像,特征點(diǎn)可以通過快速角點(diǎn)檢測等方法進(jìn)行提取,能夠快速地計(jì)算出相鄰2 幀圖像中運(yùn)動(dòng)的點(diǎn),具有很好的實(shí)時(shí)性。因此通過前面語義信息濾除先驗(yàn)動(dòng)態(tài)特征點(diǎn)后,使用LK 光流法[22]對(duì)剩余的特征點(diǎn)進(jìn)行追蹤和匹配。LK 光流法示意如圖5 所示。
光流法有3 個(gè)主要假設(shè)條件:① 亮度恒定,這是光流法的基本設(shè)定;② 小運(yùn)動(dòng),必須滿足;③ 空間一致性。
在t 時(shí)刻處于(x,y)的像素為I(x,y,t),則t+dt時(shí)刻處于(x+dt,y+dt)的像素點(diǎn),根據(jù)假設(shè)①有:
I(x,y,t) = I(x + dx,y + dy,t + dt)。(6)
根據(jù)假設(shè)②,對(duì)式(6)進(jìn)行泰勒展開并保留一階項(xiàng):
根據(jù)假設(shè)③,利用最小二乘法完成對(duì)u、v 的求解后,可以對(duì)某個(gè)像素點(diǎn)在圖像中的位置進(jìn)行跟蹤估計(jì),然后使用光流法對(duì)像素點(diǎn)匹配。
3. 3 動(dòng)態(tài)特征點(diǎn)剔除
借助語義信息剔除先驗(yàn)的動(dòng)態(tài)特征點(diǎn)和基于光流法獲得基礎(chǔ)矩陣后,可以得到每對(duì)特征點(diǎn)對(duì)應(yīng)的極線,采用對(duì)極幾何約束通過計(jì)算每個(gè)特征點(diǎn)到其對(duì)應(yīng)極線的距離,判斷該點(diǎn)是否為動(dòng)態(tài)特征點(diǎn)。
假設(shè)圖6 中t1 、t2 時(shí)刻的2 個(gè)像素特征點(diǎn)p1 、p2是匹配的特征點(diǎn)對(duì),其齊次坐標(biāo)表示如下:
理想狀態(tài)下點(diǎn)到極線的距離D = 0,但因相機(jī)獲取的圖像受周圍環(huán)境噪聲、光線等影響會(huì)產(chǎn)生畸變,所以距離D≠0,因此通過設(shè)置閾值β 來判斷。若D>β,則認(rèn)為是動(dòng)態(tài)特征點(diǎn),進(jìn)行剔除;若D<β,則認(rèn)為是靜止的點(diǎn),予以保留。
考慮到單純地使用一種目標(biāo)檢測或光流法剔除場景中的動(dòng)態(tài)特征點(diǎn)不夠全面,本文將改進(jìn)后的輕量化目標(biāo)檢測算法、光流法以及對(duì)極幾何約束相結(jié)合來剔除場景中的動(dòng)態(tài)特征點(diǎn)。因此在ORBSLAM2 框架的跟蹤線程中添加了目標(biāo)檢測模塊和剔除動(dòng)態(tài)特征點(diǎn)模塊,改進(jìn)后的跟蹤線程如圖6 所示。首先,利用改進(jìn)后的YOLOv5s 輕量化算法來檢測圖像中的目標(biāo)并提取語義信息,將語義信息與ORB 特征提取相結(jié)合,剔除先驗(yàn)的動(dòng)態(tài)特征點(diǎn);其次,采用光流法將剩余的特征點(diǎn)進(jìn)行跟蹤匹配并計(jì)算出基礎(chǔ)矩陣;最后,使用對(duì)極幾何約束設(shè)置的閾值進(jìn)行第二次剔除動(dòng)態(tài)特征點(diǎn)。剩余的靜態(tài)特征點(diǎn)被用于位姿估計(jì),以減少環(huán)境中動(dòng)態(tài)物體的影響,從而提升系統(tǒng)的魯棒性和定位精度。
4 實(shí)驗(yàn)結(jié)果分析
為驗(yàn)證本文提出的算法整體性能和有效性,分別對(duì)2、3 節(jié)改進(jìn)后的算法進(jìn)行了實(shí)驗(yàn)驗(yàn)證。
4. 1 輕量化目標(biāo)檢測算法驗(yàn)證
4. 1. 1 數(shù)據(jù)集
考慮到室內(nèi)場景中的動(dòng)態(tài)物體以人為主,為驗(yàn)證改進(jìn)后的YOLOv5s 算法的有效性,本實(shí)驗(yàn)選取了COCO 數(shù)據(jù)集中“人”類別的圖片進(jìn)行訓(xùn)練和測試,共計(jì)10 800 張圖片。
4. 1. 2 性能評(píng)估
目標(biāo)檢測算法的性能通常用均值平均精度(mean Average Precision,mAP)反映模型在召回率不同的情況下的精度表現(xiàn),較高的mAP 值表示模型在高召回率下能保持較高的準(zhǔn)確率,因此mAP 值越高,說明模型的性能越好。計(jì)算如下:
本文進(jìn)行了消融實(shí)驗(yàn),比較了采用不同策略(替換Ghost 卷積、添加CA 機(jī)制和引入EIoU 損失函數(shù))對(duì)模型性能的影響。在數(shù)據(jù)集上,通過設(shè)置IoU閾值為0. 5,以mAP @ 0. 5 作為評(píng)價(jià)指標(biāo),結(jié)果如表1 所示。
從表1 可以看出,相比原版YOLOv5s 算法,使用Ghost 卷積替換原卷積后,模型參數(shù)量降低至3. 35 MB,檢測速度提高了29 幀/ 秒,檢測精度略有降低1. 9% 。此外,添加CA 機(jī)制和EIoU 損失函數(shù)對(duì)檢測精度均有一定提升。與原版相比,本文改進(jìn)的算法在mAP 上增加了3. 9% ,模型大小減小了40. 2% ,檢測速度提高了19 幀/ 秒。這些改進(jìn)實(shí)現(xiàn)了對(duì)輕量級(jí)目標(biāo)檢測算法在移動(dòng)設(shè)備上的需求,既提高了檢測精度又滿足了實(shí)時(shí)性的要求。
4. 2 改進(jìn)后ORBSLAM2 算法驗(yàn)證
4. 2. 1 TMU 數(shù)據(jù)集
為驗(yàn)證改進(jìn)后ORBSLAM2 算法的有效性,采用由德國慕尼黑工業(yè)大學(xué)提供的TUM 數(shù)據(jù)集[23],它包含了機(jī)器人在室內(nèi)環(huán)境中采集的RGBD 彩色圖像和深度圖像,已成為SLAM 領(lǐng)域最廣泛使用的評(píng)估數(shù)據(jù)集之一,被用于評(píng)估和比較不同算法的性能。本文選取了TUM 數(shù)據(jù)集中4 個(gè)不同的圖像序列fr3 _ walking _ xyz、fr3 _ walking _ halfsphere、fr3 _walking_static 和fr3 _sitting_static。其中walking 序列是高動(dòng)態(tài)場景下的數(shù)據(jù)集,sitting 序列是低動(dòng)態(tài)場景下的數(shù)據(jù)集。
4. 2. 2 動(dòng)態(tài)特征點(diǎn)剔除效果對(duì)比
在動(dòng)態(tài)特征點(diǎn)剔除過程中,為了保留存在于動(dòng)態(tài)物體檢測框中的靜態(tài)目標(biāo)特征點(diǎn),本文將能檢測到的物體分為高動(dòng)態(tài)、中等動(dòng)態(tài)和低動(dòng)態(tài)物體。僅當(dāng)物體的特征點(diǎn)處于高動(dòng)態(tài)物體檢測框并且未處于低動(dòng)態(tài)物體檢測框時(shí)才將其剔除。圖7 展示了動(dòng)態(tài)特征點(diǎn)剔除前后的效果,其中圖7 (a)為剔除前的特征點(diǎn)圖像,圖7 (b)為運(yùn)用本文算法剔除動(dòng)態(tài)特征點(diǎn)后的圖像。改進(jìn)后的方法有效檢測圖像中的物體信息,并剔除了場景中的高動(dòng)態(tài)物體“人”,同時(shí)保留了“電腦”“鍵盤”“椅子”等低動(dòng)態(tài)物體。
4. 2. 3 軌跡誤差結(jié)果對(duì)比
實(shí)驗(yàn)結(jié)果采用絕對(duì)軌跡誤差(AbsoluteTrajectory Error,ATE )和相對(duì)軌跡誤差(RelativePose Error,RPE)作為評(píng)價(jià)指標(biāo),并使用均方根誤差(RMSE)、平均誤差(Mean)和標(biāo)準(zhǔn)差(SD)來衡量。同時(shí)將提升效率定義為Improvement:
Improvement = ((m - n)/n) × 100% , (15)
式中:m、n 分別是本文方法和ORB_SLAM2 的運(yùn)算結(jié)果。表2、表3 和表4 分別為改進(jìn)前后算法的ATE、RPE(平移部分)和RPE(旋轉(zhuǎn)部分)運(yùn)算結(jié)果。
在ATE 方面,從表2 中可以看出,本文改進(jìn)后的算法相比于原ORBSLAM2 算法在fr3 _walking_xyz 序列中RMSE、Mean 和SD 分別提升了97. 46% 、97. 55% 和97. 15% ,其他3 個(gè)動(dòng)態(tài)序列中也有明顯的提升。該對(duì)比實(shí)驗(yàn)證明了本文算法在高動(dòng)態(tài)場景中具有較好的性能,可以顯著提升定位精度和魯棒性。在低動(dòng)態(tài)序列fr3_sitting_static 中RMSE、Mean和SD 僅僅提升了11. 63% 、9. 33% 和9. 30% ,提升效果相對(duì)不明顯。在低動(dòng)態(tài)序列中,絕大多數(shù)物體的位置、姿態(tài)是相對(duì)固定的,因此在序列中很難找到具有顯著動(dòng)態(tài)特征的物體或者區(qū)域,導(dǎo)致可以用來進(jìn)行跟蹤的特征點(diǎn)非常有限,而ORBSLAM2 在低動(dòng)態(tài)環(huán)境下具有較好的表現(xiàn),因此很難在低動(dòng)態(tài)序列中大幅提高其性能。在RPE 方面,從表3 和表4可以看出在高動(dòng)態(tài)序列中提升效果明顯,同樣在低動(dòng)態(tài)序列中提升效果不明顯。
為了更加直觀體現(xiàn)本文算法與ORB-SLAM2 算法的效果對(duì)比,分別繪制了高動(dòng)態(tài)序列下的ATE 和RPE 對(duì)比圖,其中ORBSLAM2 算法(上),本文算法(下)。圖8 為ATE 對(duì)比,圖中的黑色曲線表示相機(jī)的真實(shí)軌跡,藍(lán)色部分表示估計(jì)的軌跡。紅色線段則是二者的誤差,誤差越小,紅色線段就越短,表示系統(tǒng)的精度越高。圖9 為RPE 對(duì)比,可以看出本文算法相比于ORBSLAM2 算法,誤差的波動(dòng)范圍很小,其穩(wěn)定性更好。不難看出,在動(dòng)態(tài)場景下本文算法相比原算法的定位精度和魯棒性都有顯著的提升。
4. 2. 4 其他算法對(duì)比
為了驗(yàn)證本文算法的先進(jìn)性,將其與近年來比較優(yōu)秀的SLAM 算法進(jìn)行了比較。其中,DS-SLAM和DynaSLAM 是基于ORB-SLAM2 框架,采用語義分割算法提取動(dòng)態(tài)場景的語義信息;DetectSLAM 則利用YOLOv3 目標(biāo)檢測算法對(duì)特定的動(dòng)態(tài)物體進(jìn)行檢測并剔除;文獻(xiàn)[24]是基于幾何與運(yùn)動(dòng)約束進(jìn)行特征匹配,來減少動(dòng)態(tài)特征點(diǎn)和錯(cuò)誤匹配點(diǎn)的影響。表5 和表6 展示了本文算法與其他算法誤差對(duì)比和部分算法平均運(yùn)行時(shí)間對(duì)比。
綜合比較表5 和表6 可以看出,與DS-SLAM 算法相比,本文算法在高動(dòng)態(tài)場景下的定位精度和運(yùn)行時(shí)間效率均得到了顯著提升,在walking_xyz 和walking _ static 序列上ATE 的RMSE 分別降低了31. 6% 、6. 2% ,平均運(yùn)行時(shí)間降低了39. 2% ;與DynaSLAM 算法相比,本文算法在定位精度方面的表現(xiàn)相近,但在運(yùn)行時(shí)間方面快了7 倍多,運(yùn)行速度更快,這是因?yàn)椋模睿幔樱蹋粒?采用了Mask R-CNN 實(shí)例分割算法,處理圖像時(shí)較為耗時(shí);同時(shí),與DetectSLAM 算法和文獻(xiàn)[24]中的算法進(jìn)行對(duì)比,本文算法在定位精度也有著不同程度的提升。通過以上比較,進(jìn)一步驗(yàn)證了本文算法的先進(jìn)性。
5 結(jié)束語
本文提出了一種融合YOLOv5s 輕量級(jí)目標(biāo)檢測網(wǎng)絡(luò)的視覺SLAM 算法,旨在解決動(dòng)態(tài)場景下視覺SLAM 系統(tǒng)受到動(dòng)態(tài)物體影響導(dǎo)致定位精度和魯棒性下降的問題。該算法采用了基于YOLOv5s 的輕量化目標(biāo)檢測算法來實(shí)時(shí)檢測動(dòng)態(tài)物體,再結(jié)合ORB-SLAM2 算法提取圖像中的語義信息并剔除先驗(yàn)的動(dòng)態(tài)特征,最后通過LK 光流法和對(duì)極幾何約束來剔除動(dòng)態(tài)特征點(diǎn)。實(shí)驗(yàn)結(jié)果表明,相比原ORBSLAM2 算法,該算法在高動(dòng)態(tài)序列下的ATE 和RPE 均提高了95% 以上,并且在保證實(shí)時(shí)性的同時(shí),提高了定位精度和魯棒性,相比當(dāng)前一些優(yōu)秀的SLAM 算法,在精度和實(shí)時(shí)性上有著顯著的提升。因此,本文提出的融合YOLOv5s 目標(biāo)檢測的視覺SLAM 算法具有較好的實(shí)際應(yīng)用前景。下一步,考慮采用多傳感器融合和使用新的算法框架(如ORB-SLAM3)進(jìn)行優(yōu)化改進(jìn),使算法適應(yīng)更多場景的需要。
參考文獻(xiàn)
[1] 趙燕成,房桐,杜保帥,等. 移動(dòng)機(jī)器人視覺SLAM 回環(huán)檢測現(xiàn)狀研究[J]. 無線電工程,2023,53(1):129-139.
[2] KLEIN G,MURRAY D. Parallel Tracking and Mappingfor Small AR Workspaces[C]∥2007 6th IEEE and ACMInternational Symposium on Mixed and AugmentedReality. Nara:IEEE,2007:225-234.
[3] MURARTAL R,TARDOS J D. ORBSLAM2:An Opensource SLAM System for Monocular,Stereo,and RGBDCameras[J]. IEEE Transactions on Robotics,2017,33(5):1255-1262.
[4] ENGEL J,SCHOPS T,CREMERS D. LSDSLAM:Largescale Direct Monocular SLAM [C]∥ Computer Vision -ECCV 2014,Zurich:Springer,2014:834-849.
[5] MATSUKI H,STUMBERG L V,USENKO V,et al. Omnidirectional DSO:Direct Sparse Odometry with FisheyeCameras [J ]. IEEE Robotics and Automation Letters,2018,3(4):3693-3700.
[6] KUNDU A,KRISHNA K M,SIVASWAMY J. Moving Object Detection by Multiview Geometric Techniques from aSingle Camera Mounted Robot[C]∥2019 IEEE / RSJ International Conference on Intelligent Robots and Systems.St. Louis:IEEE,2009:4306-4312.
[7] PALAZZOLO E,BEHLEY J,LOTTES P,et al. ReFusion:3D Reconstruction in Dynamic Environments for RGBDCameras Exploiting Residuals[C]∥2019 IEEE / RSJ International Conference on Intelligent Robots and Systems.Macau:IEEE,2019:7855-7862.
[8] FANG Y Q,DAI B. An Improved Moving Target Detectingand Tracking Based on Optical Flow Technique andKalman Filter[C]∥2009 4th International Conference onComputer Science & Education. Nanning:IEEE,2009:1197-1202.
[9] ZHANG T W,ZHANG H Y,LI Y,et al. FlowFusion:Dynamic Dense RGBD SLAM Based on Optical Flow[C]∥2020 IEEE International Conference on Robotics and Automation. Paris:IEEE,2020:7322-7328.
[10] YU C,LIU Z X,LIU X J,et al. DSSLAM:A SemanticVisual SLAM Towards Dynamic Environments[C]∥2018IEEE / RSJ International Conference on Intelligent Robotsand Systems. Madrid:IEEE,2018:1168-1174.
[11] BADRINARAYANAN V,KENDALL A,CIPOLLA R. SegNet:A Deep Convolutional EncoderDecoder Architecturefor Image Segmentation[J]. IEEE Transactions on PatternAnalysis and Machine Intelligence,2017,39 (12 ):2481-2495.
[12] BESCOS B,FACIL 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.
[13] HE K M,GKIOXARI G,DOLL?R P,et al. Mask RCNN[C]∥ Proceedings of the IEEE International Conferenceon Computer Vision. Venice:IEEE,2017:2961-2969.
[14] ZHONG F W,WANG S,ZHANG Z Q,et al. DetectSLAM:Making Object Detection and SLAM Mutually Beneficial[C ]∥ IEEE Winter Conference on Applications ofComputer Vision. Lake Tahoe:IEEE,2018:1001-1010.
[15] LIU W,ANGUELOV D,ERHAN D,et al. SSD:SingleShot MultiBox Detector [C]∥ European Conference onComputer Vision. Amsterdam:Springer,2016:21-37.
[16] WANG Z M,ZHANG Q,LI J S,et al. A ComputationallyEfficient Semantic SLAM Solution for Dynamic Scenes[J]. Remote Sensing,2019,11(11):1363.
[17] 伍子嘉,陳航,彭勇,等. 動(dòng)態(tài)環(huán)境下融合輕量級(jí)YOLOv5s 的視覺SLAM[J]. 計(jì)算機(jī)工程,2022,48(8):187-195.
[18] HAN K,WANG Y H,TIAN Q,et al. GhostNet:More Features from Cheap Operations [C]∥ Proceedings of the2020 IEEE / CVF Conference on Computer Vision and Pattern Recognition. Seattle:IEEE,2020:1580-1589.
[19] HOU Q B,ZHOU D Q,FENG J S. Coordinate Attention forEfficient Mobile Network Design[C]∥Proceedings of the2021 IEEE / CVF Conference on Computer Vision and Pattern Recognition. Nashville:IEEE,2021:13713-13722.
[20] ZHENG Z H,WANG P,REN D W,et al. Enhancing GeometricFactors in Model Learning and Inference for Object Detection and Instance Segmentation[J]. IEEE Transactions onCybernetics,2022,52(8):8574-8586.
[21] ZHANG Y F,REN W Q,ZHANG Z,et al. Focal and Efficient IOU Loss for Accurate Bounding Box Regression[J]. Neurocomputing,2021,506:146-157.
[22] LUCAS B D,KANADE T. An Iterative Image RegistrationTechnique with an Application to Stereo Vision[C]∥IJCAI’81:Proceedings of the 7th International Joint Conference on Artificial Intelligence. Vancouver:Morgan Kaufmann Publishers Inc. ,1981:674-679.
[23] STURM J,ENGELHARD N,ENDRES F,et al. A Benchmark for the Evaluation of RGBD SLAM Systems[C]∥IEEE / RSJ International Conference on Intelligent Robotsand Systems. Vilamoura:IEEE,2012:573- 580.
[24] 艾青林,劉剛江,徐巧寧. 動(dòng)態(tài)環(huán)境下基于改進(jìn)幾何與運(yùn)動(dòng)約束的機(jī)器人RGBD SLAM 算法[J]. 機(jī)器人,2021,43(2):167-176.
作者簡介
趙燕成 男,(1999—),碩士研究生。主要研究方向:視覺SLAM、深度學(xué)習(xí)。
魏天旭 男,(1997—),碩士研究生。主要研究方向:深度學(xué)習(xí)、網(wǎng)絡(luò)控制系統(tǒng)。
仝 棣 男,(1996—),碩士研究生。主要研究方向:目標(biāo)檢測、神經(jīng)網(wǎng)絡(luò)。
(*通信作者)趙景波 男,(1971—),博士,教授。主要研究方向:機(jī)器人工程、計(jì)算機(jī)控制。
基金項(xiàng)目:國家自然科學(xué)基金(51475251);青島市民生計(jì)劃(2237xdny18nsh)