?

基于深度學習的動態環境視覺里程計研究

2023-12-30 14:26崔立志楊嘯乾
空間控制技術與應用 2023年6期
關鍵詞:軌跡卷積動態

崔立志, 楊嘯乾*, 楊 藝

1. 河南理工大學電氣工程與自動化學院, 焦作 454003 2. 河南省煤礦裝備智能檢測與控制重點實驗室, 焦作 454003

0 引 言

同時定位與地圖構建(simultaneous localization and mapping,SLAM)是指智能體在未知環境下,依靠傳感器對周圍進行感知和自我定位,并同時構建周圍環境地圖[1].視覺SLAM的主要傳感器是相機,相機可以儲存更加豐富的場景信息,并且具有價格低廉、體積小和易攜帶等優點,目前廣泛應用于虛擬現實、無人駕駛和航空航天等領域[2].比如在航空航天領域中,利用視覺SLAM算法可以實時地對飛行器的位置和環境進行建模和估計,這對于無人機和其他航空航天器的自主導航和任務執行非常重要.

視覺里程計是視覺SLAM的核心前端,它利用相鄰圖像之間的差異分析來估計相機的運動位姿,并創建周圍環境的局部地圖[3].經過多年發展,在特定的場景已經非常成熟,一批經典的視覺SLAM系統,如ORB-SLAM2[4]、ORB-SLAM3[5]和大尺度單目SLAM系統(large scale direct monocular-SLAM,LSD-SLAM[6])等因此而產生.其中,MURARTAL等[4]提出基于特征點法的ORB-SLAM2系統,這是特征點法的代表,集成了單目、雙目和RGB-D相機的綜合SLAM系統,能夠在大型的環境中實時運行,并且構建周圍環境的稀疏點云地圖.CAMPOS等[5]在ORB-SLAM2的基礎上提出基于特征點法的ORB-SLAM3系統,增加慣性里程計、多地圖融合等功能.ENGEL等[6]提出一種基于直接法的LSD-SLAM系統,它使用直接法來匹配圖像中的像素,能夠構建大尺度、全局一致的環境地圖.然而,這些經典的視覺SLAM系統大多是基于靜態環境的假設,當算法處于動態環境中時,相機的位姿估計可能受到動態物體的干擾,不穩定的特征點會使得相機出現特征丟失和軌跡漂移等現象,使得系統的穩定性[7]和魯棒性受到影響.

為了解決這些問題,減少動態物體的干擾,國內外研究人員做了很大的努力.CHENG等[8]提出一種稀疏運動去除模式,根據連續幀之間相似性和差異來檢測動態區域.TAN等[9]采用自適應的隨機抽樣一致(RANSAC)算法來區選圖像中的動態點和靜態點.LI等[10]通過選擇深度圖像的邊緣點來尋找對應關系,并且設計了一種靜態加權法來減輕動態點的影響.這些僅依賴幾何約束的方法,更加適應低動態的場景,由于沒有先驗語義信息,在高動態場景中可能造成特征點識別過度或者識別不足.

近些年,隨著深度學習的發展,越來越多的學者將幾何約束和深度學習結合[11].BEASCOS等[12]提出DynaSLAM(tracking, mapping and inpainting in dynamic scenes SLAM)系統,它應用分割掩碼區域卷積神經網絡 (mask regions with CNN features, Mask R-CNN)逐像素地分割圖像中的動態對象,并結合多視圖幾何來剔除動態特征點.YU等[13]提出DS-SLAM(a semantic visual SLAM towards dynamic environment)語義系統,與語義分割網絡SegNet(segmentation network)結合,利用光流法進行運動一致性檢測濾除動態特征點,同時構建語義八叉樹地圖.RDS-SLAM系統由LIU等[14]提出,該算法添加語義分割線程和基于語義的優化線程,并使用數據關聯算法刪除異常值.FAN等[15]提出Blitz-SLAM系統,使用BlitzNet掩碼深度信息進行動態物體的檢測,并應用極限約束技術對其進行分類.雖然結合深度學習方法可以更好地過濾動態點,提高系統的定位精度,但是SegNet、Mask R-CNN等分割網絡比較耗時,不僅增加計算量而且實時性較差,很難應用到實際的生產工作中.

為了實現現有視覺SLAM系統在動態環境下的實時性,并且提高系統的定位精度和魯棒性,本文主要有以下貢獻:

1) 提出一種高效的輕量級目標檢測網絡,與ORB-SLAM3的前端視覺里程計結合,準確快速地檢測潛在動態物體;

2) 將目標檢測網絡與運動一致性算法結合,用于判斷并剔除動態點,僅使用靜態點進行特征匹配和位姿估計;

3) 在TUM的RGB-D數據集上,將本文算法與其他系統算法進行對比測試,評估本文系統的相機位姿定位精度.

1 系統設計

傳統的ORB-SLAM3[5]算法系統基于靜態環境的假設,然而現實應用場景中,往往存在移動的物體從而造成特征點的誤匹配.本文以ORB-SLAM3算法系統為基礎,在其前端視覺里程計增加目標檢測線程和運動一致性檢測線程,使得網絡在檢測動態物體的同時減少動態特征點對視覺里程計的影響.

1.1 改進的ORB-SLAM3算法系統

自2015年以來,ORB-SLAM系列算法已成為特征點法中的經典代表.學者們基于ORB-SLAM[16],先后推出ORB-SLAM2和ORB-SLAM3算法,使得特征點法在SLAM系統方面達到新的高度.ORB-SLAM3采用3個并行線程,分別為跟蹤、局部建圖和回環檢測.跟蹤線程作為核心線程,實時處理相機圖像幀序列來執行相機的姿態估計,其中局部建圖線程的主要職責是建立局部地圖并優化關鍵幀和局部地圖的位姿,最終刪除不必要的關鍵幀和地圖點.回環檢測線程則負責檢測并閉合回路,以進一步提高SLAM系統的準確性.這3個線程相互協作,實現了高效的實時點云SLAM.

本文主要在其前端視覺里程計部分進行改進,如圖1虛線所示,在跟蹤線程增加目標檢測線程和動態點剔除線程.

1.2 動態目標檢測

為了準確地識別動態物體,同時滿足SLAM系統在實際應用中實時性的要求,本文結合深度學習提出一種高效的輕量級目標檢測網絡,它可以對運動中的每一幀圖像進行目標檢測,整體框架如圖2所示.

圖2 目標檢測網絡結構Fig.2 Object detection network structure

1.2.1 目標檢測網絡YOLOv5s分析

YOLO(you only look once)是一種基于神經網絡[17]的單階段目標檢測網絡,它的基本概念是將目標檢測任務轉化為回歸問題,通過使用單張圖片作為神經網絡的輸入,僅僅經過一個神經網絡,就能夠得到目標邊界框的位置和所屬的類別信息[18].YOLOv5由Ultralytics公司于2020年5月提出,目前仍在迭代更新,根據網絡大小的不同主要分為YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x 4個版本.

網絡分為4個組成部分,包括輸入部分(input)、主干網絡(backbone)、頸部網絡(neck)和推理部分(prediction).輸入部分運用Mosaic數據增強、自適應錨框計算和自適應圖像縮放等策略,以對輸入數據進行預處理,增加小目標檢測的準確性.主干網絡結構主要由C3、Conv和SPPF模塊組合而成,C3模塊將輸入的特征圖分成2個部分,在依次完成操作后再加以組合,就可以完成豐富的梯度組合,在保證準確率的同時降低了計算成本,并且通過殘差連接控制有無殘差網絡,默認為True值,表示有殘差網絡,否則為Flase值.空間金字塔池化(spatial pyramid pool-fast,SPPF)進行多尺度信息特征的融合,也大大增強了模型特征的提取能力.頸部網絡采用路徑聚合網絡(path aggregation network,PANET)結構,增強了語義信息和定位信息.推理部分非極大值抑制(non-maximum suppression, NMS)對檢測的目標框進行篩選.

本文選擇YOLOv5s v6.0版本網絡模型作為基礎目標檢測網絡結構,與其他版本網絡相比,YOLOv5s在準確度與速度之間取得平衡,雖然不是YOLOv5系列中最快的版本,但在廣泛的硬件上,仍能提供實時目標檢測能力.由于其較小的尺寸和較低的計算需求,YOLOv5s更容易部署在邊緣設備和嵌入式系統上.可見YOLOv5s在速度、效率、模型大小和部署方面具有優勢,非常滿足SLAM系統的要求.

1.2.2 改進的C3Ghost模塊

GhostNet[19]是華為諾亞方舟實驗室提出的一種輕量級神經網絡.Ghost模塊是GhostNet網絡的主要模塊,它僅通過少量的計算就能生成大量的特征圖,在保證網絡精度的同時減少網絡參數和計算量.首先利用較少的卷積核生成一部分特征圖,接著對這部分特征圖進行線性變換生成更多的特征圖,最后拼接2組特征圖形成GhostNet特征圖.傳統卷積和Ghost模塊卷積過程如圖3所示.

圖3 傳統卷積和Ghost卷積過程Fig.3 Traditional convolution and Ghost convolution process

假設輸入的特征尺寸大小為h×w,通道數為c,輸出的特征尺寸大小為h′×w′,卷積核大小為k×k,數量為n,則傳統卷積的FLOPs數據量為n×h′×w′×c×k×k.

對于Ghost模塊卷積,如圖3(b)所示,第一部分進行普通卷積過程,假設生成m個特征圖,其m

Ghost模塊卷積有一個直接拼接和s-1個Ghost特征圖.比較傳統卷積和Ghost模塊卷積,公式如下:

(1)

其中,分子表示傳統卷積的復雜度,分母表示Ghost模塊卷積的復雜度,s代表Ghost模塊卷積第二部分每個通道產生的總映射,s遠小于傳統卷積通道數c,n/s指Ghost模塊卷積第一部分普通卷積輸出的直接特征圖,d×d為線性操作卷積核大小,具有與k×k相似的大小,由式(1)可知,傳統卷積的計算量約是Ghost模塊卷積計算量的s倍,從而證明GhostNet網絡的輕量化效力.為了滿足SLAM系統的實時性要求,本文將GhostNet網絡融入到YOLOv5s的C3模塊,形成新的C3Ghost模塊,如圖4所示.

GhostConv的第一個Conv采用了1×1卷積核,并使用步長為1將輸入特征圖的通道數減半.接下來,將特征圖送入一個深度可分離卷積層,該層使用5×5卷積核進行處理,最后將2者拼接.GhostBottleneck利用第一個GhostConv對輸入特征圖的通道數進行降維,并利用第二個GhostConv將通道數恢復如初,隨后使用3×3深度可分離卷積產生的殘差邊與恢復后的特征圖相加,以實現特征融合.C3Ghost模塊使用GhostBottleneck代替原來的Bottleneck,這樣可以減少大部分3×3傳統卷積的使用,從而壓縮模型,減少計算量,并提高運行速度.

1.2.3 融合CA注意力機制

在人類的感知中,注意力扮演著至關重要的角色,幫助人們有針對地關注重要的事物并獲取所感興趣的信息.將這種注意力引入到機器學習中,就形成了注意力機制,可以顯著提升模型的性能.常見的注意力機制有擠壓和激勵通道注意力模塊(squeeze-and-excitation,SE[20])、卷積注意力模塊(convolutional block attention module,CBAM[21])和高效通道注意力模塊(efficient channel attention,ECA[22])等,然而像SE等一些通道注意力機制僅增強了通道信息而忽略了位置信息,本文研究的SLAM算法對定位要求較高,因此引入了CA[23].

從圖5可知,CA注意力模塊為了準確編碼圖像位置信息并獲得圖像寬度和高度的注意力,將輸入特征圖分為寬度和高度2個方向分別進行全局平均池化,獲得2個方向的特征圖,這樣可以捕捉到更精確的位置信息.

圖5 CA注意力機制流程Fig.5 CA attention mechanism process

圖6 運動一致性檢測示意Fig.6 Motion consistency detection instructions

圖7 損失函數可視化Fig.7 Loss function visualization

然后將以上2個輸出的特征圖進行拼接,接著進行1×1的卷積變換,將其維度降為原來的C/r,經過批量歸一化處理獲得特征圖f,接著將特征圖f按照原來的高度和寬度進行1×1的卷積,分別得到通道數與原來一樣的特征圖Fh和Fw,經過Sigmoid激活函數后,分別得到特征圖在高度和寬度上的注意力權重gh和gw,最后通過乘法加權計算,將得到在高度和寬度方向上帶有注意力權重的特征圖.

以上可知CA注意力模塊具有豐富的位置信息,并且可以提升目標檢測的準確性,非常符合SLAM系統對定位的要求,本文將CA注意力模塊融入到YOLOv5s網絡的SPPF模塊前,增強網絡的特征提取能力.

1.3 動態點運動一致性檢測

通過目標檢測網絡可以有效區分運動物體,然而目標檢測有一定的局限性,通常情況下,會在現實場景中看到人們短暫停留,電腦里的人像圖片等等靜止物體,這些物體的特征點會被誤識別為動態特征點,所以需要進一步判定潛在運動的物體目標是否真正在運動,本文使用目標檢測和運動一致性算法結合對動態特征點進行檢測和剔除.

I1和I2是連續的2幀圖像,O1和O2分別對應相機的光心,2個光心的連線為基線,空間點H在I1和I2的投影點分別用H1和H2表示,此時H1和H2的歸一化平面坐標P1和P2分別為P1=[u1,v1,1]、P2=[u2,v2,1],與基本矩陣F滿足

P2FP1=0

(2)

特征點H1和H2與相機光心平面基線的交線L1和L2稱為極線,在平面中用方程Ax+By+C=0表示,則點H1到極線L2的映射為

(3)

根據點H2與極線L2的關系,可以判斷特征點的狀態.當點H2不在極線L2上時,特征點可能為動態點,事實上,受到系統誤匹配等因素的影響,特征點也可能為靜態點,此時計算點H2到極線L2的距離

(4)

當距離D大于設定的閾值時,將這些特征點判定為動態點,并將其剔除.

2 實驗與分析

為了驗證本文算法的有效性,使用TUM RGB-D公共數據集中的動態場景數據進行測試.TUM[24]數據集由德國慕尼黑工業大學提供,是一個RGB-D數據集.該數據集是在真實環境中使用Kinect攝像頭和多臺高速攝像機拍攝而成的,包括彩色圖像、深度圖像和準確的真實位姿軌跡(ground truth)等內容.其中動態場景又分為低動態Sitting和高動態Walking 2類序列,這2類序列包含Halfsphere、Static、xyz和rpy 4 種不同的相機運動方式,分別表示為:相機沿著半球面移動、相機近似靜止、相機沿著x、y和z軸方向運動以及相機做翻滾、俯仰等運動.本文實驗使用高動態數據集fr3_walking_xyz、fr3_walking_rpy、fr3_walking_static和fr3_walking_halfsphere序列以及低動態數據集fr3_sitting_static序列.

所有實驗在操作系統Ubuntu18.04下進行,其CPU為英特爾i7-8700k,顯卡為NVIDIA GeForce GTX1080Ti.目標檢測網絡使用Python3.8編寫,SLAM部分使用C++編寫.

2.1 目標檢測實驗效果

為了驗證本文所提出的動態目標檢測網絡具有高效的檢測性能,選擇了包含人、汽車、椅子和沙發等20種不同物體的VOC-2007數據集進行訓練[2].訓練參數設置如下:訓練周期為430,批處理量為16,訓練時輸入圖像大小為640×640,進程數為8,初始學習率為0.01.訓練可視化結果如圖8所示,可見預測框損失、置信度損失和類別損失均在穩步下降.

圖8 檢測效果Fig.8 Detection effect

使用訓練出來的最佳權重文件best.pt對fr3_walking_xyz數據集中的859張圖片進行多次檢測,檢測效果如圖8所示,攝像機僅拍到的下半身人像也可以準確地檢測出來.并且與目標檢測網絡YOLOv5s在CPU上檢測對比,如表1所示,參數量減少了48.1%,檢測時間平均提升了21.7%.

表1 CPU實驗檢測Tab.1 CPU experimental detection

2.2 相機位姿估計誤差實驗分析

實驗使用EVO(Python package for the evaluation of odometry and SLAM) 軌跡評估工具將數據集序列的估計軌跡與真實軌跡進行比較,以評估SLAM系統的性能.綜合考慮算法的精度和軌跡的全局一致性,使用絕對軌跡誤差(absolute trajectory error,ATE)和相對位姿誤差(relative pose error,RPE)這2個評價指標.ATE是指算法估計位姿和真實位姿之間的直接差值,可提供直觀的精度評估,反應算法精度和軌跡全局一致性.RPE則表示相機在平移和旋轉方向上的相對誤差,主要描述的是與真實位姿相比,相隔固定時間差2幀位姿差的精度,相當于直接測量里程計的誤差.針對每個指標,進行統計分析,采用均方根誤差(RMSE)、平均誤差(mean)、中值誤差(median)和標準偏差(standard deviation,SD)這4個參數.其中RMSE描述估計值和真實值的偏差,易受到較大或偶發錯誤的影響,因此能更好地反映系統的魯棒性,SD評價估計軌跡相較于真實軌跡的離散程度,能夠反映系統的穩定性.誤差的改進值由式(5)計算

(5)

其中,η為改進值,ηos3為ORB-SLAM3運行結果,ηour為本文方法運行結果.

首先將本文算法和傳統的ORB-SLAM3[5]算法以及同類型的DynaSLAM[12]算法和DS-SLAM[13]算法做定量分析,圖9表示在高動態數據集fr3_walking_xyz序列下的不同算法絕對軌跡誤差結果,其中黑色表示相機真實軌跡,藍色表示算法估計軌跡,紅色表示2者的差異.由圖9可知,與傳統的ORB-SLAM3算法相比,本文算法的估計軌跡與相機真實軌跡更加一致,具有更好的魯棒性;對比同類型算法,本文算法也是明顯優于DS-SLAM算法的,與DynaSLAM算法軌跡幾乎一致.

圖9 不同算法絕對軌跡誤差結果Fig.9 Absolute trajectory error results of different algorithm

然后在高動態數據集序列和低動態數據集fr3_sitting_static序列上進行定量測試,表2~4分別表示絕對軌跡誤差、相對平移誤差和相對旋轉誤差的典型值數據對比以及本文算法與ORB-SLAM3[5]算法對比性能提升的百分比.所有數據均為測試所得,其中黑色表示最優結果.

表2 絕對軌跡誤差典型值Tab.2 Typical value of absolute trajectory error

表3 相對平移誤差典型值Tab.3 Typical value of relative translational error

表4 相對旋轉誤差典型值Tab.4 Typical value of relative rotational error

由表2~4可知,在高動態數據集序列上,與傳統的ORB-SLAM3[5]算法相比,本文方法在ATE和RPE的典型誤差提升率平均可達90%以上,表明本文方法能夠顯著提高動態場景SLAM系統的魯棒性和穩定性,特別是在高動態數據集fr3_walking_xyz序列上,在ATE的RMSE和SD的提升率上,分別可達到98.06%和98.23%,同樣在RPE上相對平移誤差和相對旋轉誤差的提升率也可達到98%左右,有力地證明了本文方法的有效性,提升了SLAM系統的定位精度.傳統的ORB-SLAM3系統對低動態的場景有著非常優異的性能表現,即便如此,在低動態的fr3_sitting_static序列上,本文方法在ATE和RPE的表現也是優于前者的.在高動態數據集序列與同類型的算法相比,本文算法全面優于DS-SLAM[13]算法,與DynaSLAM[12]算法的各項指標相差非常小,可以認為性能相當,但本文方法整體略優于DynaSLAM算法.

為了進一步驗證本文改進的視覺里程計方法的有效性,將本文方法與DS-SLAM[13]算法、RDS-SLAM[14](real-time dynamic SLAM using semantic segmentation methods)算法和Blitz-SLAM[15]算法進行ATE定量對比分析,數據來源于文獻,其中“/”表示原文獻沒有提供相關數據,加粗字體為最佳結果,次佳結果用下劃線示意.由表5可知,算法的最佳和次佳結果主要來自本文算法和使用語義分割的Blitz-SLAM算法,明顯優于DS-SLAM和RDS-SLAM算法,并與Blitz-SLAM算法的ATE指標相差非常小,可以認為性能一致,但本文方法采用目標檢測的實時性比其結合分割方法更好,可見本文算法有較好的效果.

表5 不同算法絕對軌跡誤差典型值Tab.5 Typical values of absolute trajectory error for different algorithms

3 結 論

本文提出一種基于深度學習的動態環境視覺里程計算法,在傳統的ORB-SLAM3系統的基礎上,引入高效的輕量目標檢測網絡,使用輕量級Ghost模塊和高效的坐標注意力機制CA模塊與目標檢測網絡YOLOv5s結合,在提升網絡檢測速度的同時保證檢測的準確性,獲取更多的語義先驗信息,并結合運動一致性檢測算法,確定場景中動態目標,剔除動態特征點,僅使用靜態特征點進行位姿估計.在TUM數據集實驗結果表明,相較于傳統的ORB-SLAM3算法系統,本文算法在高動態場景ATE和RPE方面的提升率平均可達90%以上,相比于同類型的算法,本文算法也有相對提升并且實時性更好,表明本文算法能夠有效地提高視覺SLAM系統在動態環境下的穩定性和魯棒性.后續的工作將對本文網絡進行模型壓縮,移植到智能體上,并且搭建具有豐富場景信息的八叉樹地圖,以便智能體完成導航、路徑規劃等更加復雜的任務.

猜你喜歡
軌跡卷積動態
國內動態
國內動態
國內動態
基于3D-Winograd的快速卷積算法設計及FPGA實現
軌跡
軌跡
動態
從濾波器理解卷積
軌跡
基于傅里葉域卷積表示的目標跟蹤算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合