?

一種基于RGB-D 相機的語義地圖構建方法?

2024-01-23 13:38郭旭達宋勇磊
計算機與數字工程 2023年10期
關鍵詞:體素類別關聯

郭旭達 宋勇磊

(南京理工大學 南京 210094)

1 引言

智能機器人在陌生環境中進行同時定位和建圖(SLAM)的課題已經被持續研究了幾十年,并且學者門提出了許多卓有成效的SLAM 算法框架。SLAM 技術廣泛應用于掃地機器人、服務機器人、巡檢機器人、廠房運輸機器人等場景。

SLAM 技術主要基于激光雷達和視覺攝像機兩類感知設備,由于單目相機、雙目相機和RGB-D相機相對較低的硬件成本,近年來視覺SLAM 逐步成為研究熱點。圖像存儲了豐富的紋理信息,可同時用于其他基于視覺的應用,如語義分割、目標檢測等。當前視覺SLAM 算法的框架通常由特征提取前端、狀態估計后端、地圖構建和回環檢測等幾個基本模塊組成。一些具有代表性的SLAM 算法已經取得了令人滿意的性能,如MonoSLAM[1]、ORB-SLAM2[2]、LSD-SLAM[3]等,這些方法主要側重于優化機器人的位姿估計。在機器人對周圍環境進行地圖構建方面的研究,傳統的SLAM 方法大多僅建立包含稀疏特征點的地圖或只具有幾何信息的三維地圖[4]。機器人執行高級別任務時需要理解物體的語義信息與周圍的場景進行交互。隨著深度學習技術的發展,一些神經網絡模型[5]在語義分割方面取得了良好的性能。因此,可以嘗試將神經網絡模型與SLAM 結合構建語義地圖,從而提高機器人的環境描述能力。

語義信息作為物體的外在屬性,對于機器人理解周圍環境可以起到至關重要的作用。SLAM++[6]利用物體級別對象輔助SLAM 中的相機定位,并增量構建面向物體級別對象的三維語義地圖。但他們的方法需要提供物體的幾何模型,并且需要提前建立物體幾何信息數據庫,因此算法只能檢測在數據庫中出現的物體,無法提供整個場景的密集語義標注。SemanticFusion[7]基于ElasticFusion[4]跟蹤相機位姿并建立面元(surfels)地圖,在該過程中同步進行回環檢測優化整個地圖。利用卷積神經網絡(CNN)模型輸出RGB 圖像的像素級語義分割結果后,基于貝葉斯概率更新surfels 的語義類別標簽。Co-fusion[8]同樣基于ElasticFusion[4]提出物體級別語義SLAM 方法,該算法基于運動分割和語義分割進行運動物體的檢測,使用多種模型擬合方法跟蹤物體并重建物體形狀,最終維護一個背景模型和多物體模型。

DS-SLAM[9]基于ORB-SLAM2[2]提出了動態環境中的語義SLAM 框架,結合語義信息和移動一致性檢查來濾除每一幀中的動態物體,從而提高位姿估計的準確性。能夠減少動態環境下,移動物體對于位姿估計的影響,最后構建稠密的3D 語義八叉樹地圖。但也存在不足,語義分割僅能識別20 種物體類別,并且只認為人是移動的類別。文獻[10]提出了一種適用于無人機平臺的輕量級、實時語義SLAM 框架。該方法將視覺/視覺慣性里程計(VO/VIO)信息與從檢測到的語義對象中提取的平面幾何信息相結合。創建由質心和法線方向以及類標簽和平面類型(即水平或垂直)表示的平面組成的稀疏語義地圖。

本文提出一種將語義信息結合到SLAM 過程中的新方法并最終構建三維語義地圖。算法整理流程如圖1 所示。首先使用語義分割模型對RGB-D 相機輸入的RGB 圖像進行語義信息提取,然后進行時間序列上的語義分割結果關聯對比,將存在誤差的分割結果過濾后,與深度圖像進行數據關聯生成帶有語義標簽的點云數據,最后通過增量融合的方法集成當前幀的點云數據,構建基于TSDF的三維語義地圖。

圖1 三維語義地圖構建流程

2 語義數據關聯

2.1 語義信息提取

近年來,深度學習在目標檢測與圖像分割領域的研究成果層出不窮。Bowen Cheng等提出的Panoptic-DeepLab[11]模型是目前全景分割研究方向的佼佼者,性能和實時性基本可以滿足SLAM 的需求。并且在COCO 數據集上訓練的模型可以識別大約130 個事物和種類,因此選擇Panoptic-Deep-Lab用于本文方法的語義信息提取模塊。

通過實驗發現,在連續多幀圖像進行分割時,往往會出現某一兩幀圖像中會有物體被識別為錯誤的語義類別。針對此問題,本文提出一種新方法進行錯誤數據過濾。

相機的輸出頻率為30Hz,相鄰兩幀間的位移差很小,因此可以借助幀間關聯對比過濾錯誤的識別。在得到當前幀的識別結果Lt后,本文方法選擇與之前四幀的分割結果Lt-1、Lt-2、Lt-3和Lt-4進行關聯對比計算,如式(1),只保留五幀中相同的語義標簽,如果不同則刪除,經過上述處理后,得到語義標簽的交集。

2.2 數據關聯

本文最終目的是建立完整的帶有語義信息的三維地圖。因此,需要使點云圖中的每一個點具有相應的語義類別。本文所使用的模型可識別種類數量約為130 種,而8-bit 灰度圖像的灰度值范圍為0~255。因此,可以將0~255 的灰度范圍值與語義類別一一對應建立LUT 表。在將深度圖轉為點云時,與LUT表結合,將語義類別關聯到點云中。

由于彩色圖像與深度圖像尺寸大小不同,因此需要根據相機的內、外參計算深度圖像中每一個像素對應中的語義類別值。首先根據相機的外參計算彩色圖像到深度圖像的旋轉矩陣R 和平移向量T。外參矩陣由一個旋轉矩陣和一個平移向量構成,彩色和深度攝像頭的旋轉矩陣分別為Rrgb和Rdepth,平移向量分別為Trgb和Tdepth。那么根據式(2)和式(3)即可得到旋轉矩陣R和平移向量T。

為將深度圖像中的每一個像素匹配到對應的語義標簽,則需要通過相機的內參矩陣、彩色圖像到深度圖像的旋轉矩陣R 和平移向量T 進行關聯計算。通過式(4)計算得到深度圖像中某點Pxy的對應的語義類別lxy。

Pxy=(x,y,z)為某點的空間坐標值,z 為深度值,Irgb和Idepth分別為彩色相機和深度相機的內參矩陣。

通過以上公式就可以在將深度圖像轉為點云時進行數據關聯,使每一個三維點都具有語義標簽。

完整算法如Algorithm 1所示。

3 語義地圖構建

本文選擇以截斷符號距離函數算法(Truncated Signed Distance Function,TSDF[12])為基礎建立三維語義地圖。本文在Voxblox[13]的啟發之下,使用前端位姿估計的結果,將當前幀生成的帶有語義信息的三維點云融合到全局地圖中。

3.1 點云語義分組

TSDF通過存儲每個體素(voxel)到最近物體表面的有符號距離sdf 來進行地圖構建,體素在物體之外為正數,在物體之內則為負數。同時每個體素由一個權重w 來評估相應的距離。本文方法中,每個體素包含一個有符號16 位浮點型距離值sdf、一個無符號8位權重值w 和一個8位語義類別標簽值l,共4個字節。

Voxblox[13]中提出了基于RayCasting[14]的分組射線衍射方法,將處于同一個體素中的點分為一組,計算組內所有點的平均坐標值作為體素的坐標,這樣在保持精度的同時加快了地圖構建速度。本文方法同樣根據點的坐標將處于同一個體素voxelid(x,y,z)中的點points(m)={p1,p2,…,pm}分為一組。通過式(5)可以計算得到每一個點所在體素的坐標,ε為體素大小。

而與Voxblox[13]中分組射線衍射方法所不同的是,本文方法對于同一個體素中的點points={p1,p2,…,pm},分別計算各語義類別點的權重和,計算方式如式(6),選擇權重和最大的作為當前體素的語義類別,將所選擇語義類別點的坐標加權平均值作為體素的中心坐標值,如式(7)所示。

3.2 地圖構建及體素更新

本文中采用Voxel Hashing[15]方法,只在相機測量到的物體表面劃分體素,而不是將整個空間都劃分成體素。在此基礎之上將8×8×8 的體素劃分為一個體素塊(voxel block),通過式(8)即可計算得到體素voxelid所在的體素塊坐標block(x,y,z),η為體素塊大小。

將體素塊的坐標值通過哈希函數(9)映射到一個哈希表中,方便體素塊的查詢,p1、p2、p3為常數,n為哈希表大小。

在將新的一幀點云數據融合到全局地圖中時,通常是從傳感器原點向點云中的每一點投射射線,在射線方向上計算每一個與之相交的體素的距離D 和權重W,從而構建TSDF。本文中使用RayCasting[14]方法將經過語義分組后的點云數據進行融合,Voxblox[13]提出了結合相機模型的權重計算方法,將相機測量的深度信息和點與表面的距離結合來計算權重。本文同樣采取Voxblox[13]中的方法進行體素的距離D 和權重W 的更新,計算公式如式(10~13)所示。

p(x,y,z)為當前幀中的點,o 為傳感器原點,v(x,y,z)為與之相交的體素中心坐標,d(v,p,o)為點p 與物體表面的距離,w(v,p)為當前點權重,δ、ε為截斷距離閾值,δ=4s,ε=s,s為體素大小。

4 實驗及分析

本文選擇在數據集ScanNet(v2)[16]中進行實驗,以驗證所提出方法的有效性。ScanNet(v2)是一個用于室內場景理解的大規模數據集,它使用消費級RGB-D 相機進行圖像數據采集。每個場景序列中包含采集的RGB 圖像和深度圖像、相機軌跡、每個場景的3D重建模型以及語義標注。

本文從ScanNe(tv2)中選擇了多組場景數據進行實驗,其中RGB 圖像大小為1296×968,深度圖像大小為640×480。所有的實驗均是在一臺配備英特爾i7-7800X 處理器、主頻3.50GHz、64G 內存和一塊Nvidia GeForce GTX 1080Ti 顯卡,顯存8GB 的計算機上進行的。

4.1 語義信息關聯評估

由于目前語義分割模型的分割準確率達不到百分之百,部分物體可能會識別錯誤?;蛴捎谠跀祿杉^程中,某一時刻相機視角中物體重疊或光照影響,導致相機某一幀分割錯誤。如圖2(b)中所示,語義分割模型將窗簾的某一部分錯誤的識別為人,將桌子的一部分錯誤的識別為柜子。如果不加以處理,直接與深度圖像進行數據關聯,就會產生錯誤數據,如圖3(a)中所示,在建圖時則會將錯誤的語義數據融合到地圖中。

圖2 語義分割結果

圖3 語義點云對比

圖2(c)為后續相機幀的正確識別結果,通過本文的方法,可以將窗簾和桌子識別錯誤的部分去除,只將正確的語義數據關聯到點云中,如圖3(b)所示。由于語義分割識別錯誤導致去除的環境信息將在后續相機幀中補充融合,結果如圖3(c)所示,窗簾和桌子均完整準確的融合到地圖中。直接使用Panoptic-DeepLab 的分割結果構建的地圖如圖4(b)所示,可以看到,存在多處錯誤的語義關聯,本文方法所構建地圖如圖4(c)所示,可以看到,語義數據關聯更加準確,去除了大多數錯誤分割數據。

圖4 語義地圖對比

4.2 語義地圖構建評估

如圖5 所示,(a)為ScanNet 數據集中場景scene0000_01,(b)為場景scene0000_01 的三維地圖語義標注,(c)為本文的方法所構建的語義地圖,深度圖像轉為點云數據后進行了體素降采樣,降采樣閾值為5cm。

圖5 場景scene0000_01三維語義地圖

由于目前沒有可行的方法從量化角度對地圖數據進行對比,因此在圖6 和圖7 中分別從多個角度將本文方法所構建地圖與數據集中所標注的語義地圖進行細節之處的對比。本文方法所標注語義類別顏色與數據集中所使用語義類別顏色不同。

圖6 scene0000_01局部對比1

圖7 scene0000_01局部對比2

如圖6 所示,(a)、(b)為場景scene0000_01 中局部細節,(a1)、(b1)為數據集中對場景scene0000_01 標注的語義地圖,(a2)、(b2)為本文方法所構建的語義地圖。對比(a1)與(a2),(a1)對場景中的吉他、垃圾桶與廚房用具沒有進行語義區分,而本文方法所構建地圖中對垃圾桶與廚房用具均準確標注,由于所使用的語義分割模型沒有將吉他識別,所以地圖中缺少對吉他的標注,這個問題需要后期對分割模型進行優化。對比圖(b1)與(b2),(b1)中的對桌子、書包與儲物筐沒有進行語義區分,而本文方法均進行了準確的標注。

如圖7 所示,(c)、(d)為場景scene0000_01 中剩余細節,(c1)、(d1)為數據集中標注的語義地圖,(c2)、(d2)為本文方法所構建的語義地圖。通過對比可以看出,(c1)中雖然識別出墻上的鐘表,但邊界模糊,基本丟失幾何信息,而本文方法構建結果要更加精確。(d1)中沒有標注書柜中的書籍信息,而本文方法準確識別、分割出書籍信息,并融合到地圖中。

5 結語

本文提出了一個使用RGB-D 數據進行三維語義地圖構建的方法。相機中RGB 圖像經過語義分割模型后得到其中物體的語義數據,通過前后幀關聯將錯誤數據濾除,提高語義關聯魯棒性;與深度圖像進行數據關聯生成帶有語義信息的點云數據,結合語義類別權重增量融合構建完整的三維語義地圖,可用于機器人的導航和規劃任務。綜上所述,本文所提出方法具有較高的實用價值。

猜你喜歡
體素類別關聯
基于多級細分的彩色模型表面體素化算法
瘦體素決定肥瘦
不懼于新,不困于形——一道函數“關聯”題的剖析與拓展
運用邊界狀態約束的表面體素加密細分算法
“一帶一路”遞進,關聯民生更緊
基于體素格尺度不變特征變換的快速點云配準方法
奇趣搭配
智趣
服務類別
論類別股東會
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合