張 鳳, 王偉良, 袁 帥, 孫明智
(沈陽建筑大學 信息與控制工程學院, 沈陽 110168)
在計算機視覺同時定位與建圖(SLAM)[1]方面,大多數SLAM主要應用在靜態環境中,且要求滿足確定的環境條件,才可以正常運行工作.少數成熟的視覺SLAM方法具有實時動態兼容性能,在環境中實時動態物品非常顯著或偶爾產生的時候,可以正常運行工作,而環境中動態物體實時移動時,就會失去效能.歐陽豪[2]和程珉等[3]應用稠密光流法對環境里運動物品進行測試,在位姿估測前除去運動物品,從而提高實時動態條件下的定位準確性,但稠密光流法不能滿足實時在線性等多種要求,對精確度的提高也有限.牛青青[4]根據改進光流法對運動物品進行全面處理,應用RGSA方法完成環境的動靜脫離,從而避免產生特征點誤匹配,稠密光流法其精確度尚可,但實時性較差.張鳳等[5]改進了RANSAC算法[6],可以高效去除動態特征點,該方法表現出非常好的魯棒性,但耗時嚴重,不能滿足實時需求.
為了解決傳統SLAM在動態環境下準確性較差的問題,本文采用ORB SLAM算法進行特征點提取,并在視覺前端部分做出了改進,增加了在動態環境下識別的分支任務.運用Mask R-CNN算法對動態物體進行檢測與剔除,從而實現在室內動態環境下的同時定位與建圖.最后與ORB SLAM2進行對比分析,本文算法有效地提高了定位精度.
ORB[7](oriented FAST and rotated BRIEF)突出的優勢是結合了FAST[8]特征角點檢測與BRIEF[9]描述子,其主要由三個部分構成:提取圖像FAST特征點、構建特征點描述向量、匹配特征點.其中提取特征點,即從圖像中提取若干FAST特征點,構建相應的高斯金字塔.
FAST特征點相鄰矩陣為
(1)
式中:(x,y)為相對FAST特征點的位置;I(x,y)為圖像灰度值.FAST特征點的方向為
(2)
由于FAST特征點本身缺乏旋轉特性,所以通常借助灰度質心法來保持其旋轉特性.構建特征點描述向量時,借助BRIEF描述子來對FAST特征點進行描述,最后借助漢明距離方式來匹配特征點.在特征點中選取一定比例的像素點,比較灰度值形成特征描述子,對于描述子分段函數組成圖像點可表示為

(3)
式中,d(x)與d(y)為相鄰處的灰度函數.選擇的特征點數量不多,但都具有角點,實時性較好,可以滿足實時處理.
就ORB SLAM系統[10]算法而言,主要由線程跟蹤、定位、閉環檢測等構成.跟蹤線程的主要作用是提取當前圖像的ORB特征,再匹配上一幅圖像的特征,從而對相機位姿加以估計,得出相機的運動軌跡,若跟蹤失敗可憑借與上一個關鍵幀圖像進行匹配,來對相機姿勢進行重新初始化設置.基于已構建的局部地圖,對當前相機位姿進行優化,憑借地圖點數量及運行時間來決定是否生成關鍵幀.定位線程的主要作用是針對SLAM系統構建局部特征點軌跡,大致實現流程如下:首先,當跟蹤線程存在關鍵幀插入時,會篩選新生成的特征地圖點;然后,基于BA優化對相機位姿及生成的地圖點進行調整;最后,處理插入的關鍵幀.就閉環檢測線程而言,其主要作用是實現對SLAM系統的回環檢測及閉環修正.
Mask R-CNN[11]為掩碼區域卷積神經網絡,根據操作需要,對高維語義信息進行專業性的訓練和技術支持,從而實現圖片像素等級的分割操作應用,這是一類實時動態物品圖片像素等級分割的神經網絡分割模型.Mask R-CNN主要是以R-CNN系列框架為基礎,進行應用技術的改進與功能優化.較上一代Faster R-CNN[12]神經網絡模型來說,Mask R-CNN添加了專門的分割掩碼分支.圖1為Mask R-CNN網絡模型.

圖1 Mask R-CNN網絡模型Fig.1 Mask R-CNN network model
Mask R-CNN網絡結構前半部分,能根據圖片生成與之相匹配的候選區域.Mask R-CNN通過殘差網絡ResNet與FPN之間有效的結合,完成整個過程中圖像特征的提取.
Mask R-CNN神經網絡結構的后半部分是根據ROI完成3個關鍵的工作任務:候選框物品的分類、候選框bbox分布坐標回歸以及所需要的分割掩碼.由于候選區域的實際大小不等,要求最先展開ROI Align,使其歸一化,將ROI Pooling[13]里的取整具體量化全面處理,把計算求解中間數值的模式轉化為保存浮點數并且展開雙線性插值的操作應用模式.根據圖1中的相關信息可知,經過歸一化的ROI在此階段能夠進入到全連接網絡,并實現候選區類別分類和bbox回歸.把分類工作任務里的最終一個Softmax[14]分類層的種類,改成要求展開測試的實時動態物品種類,從而高效完成遷移學習.
在ORB SLAM的基礎上融和Mask R-CNN,利用Mask R-CNN信息輔助定位對相機實現定位,利用Mask R-CNN生成的掩模信息篩選所需的特征點.將圖像的ORB特征[15]作為整個過程中的視覺SLAM路標特征,利用極線幾何的動態特征點剔除方法對卷積神經網絡不能識別的動態物體進行剔除,保留了前景物體的特征點,經過篩選后的特征點歸屬于不同的物體.因此,ORB特征點描述子的相似性大大降低.圖2為本文算法流程圖.

圖2 本文算法流程圖Fig.2 Flow chart of as-proposed algorithm
對于ORB SLAM實現一組特征點匹配,需要整幅圖像的特征點,整體運算效率較低,而Mask R-CNN主要采用邊界框,將視覺圖像劃分成有語義標記的多種不同實例區域,在進行特征匹配的操作過程中,僅需在同一實例區域進行小范圍的匹配操作,有助于從整體上提升特征匹配質量效果與位姿匹配的估算精度,大大地降低了匹配錯誤率.
對于Mask R-CNN不能識別的物體,例如書本、桌椅等,對實際移動的物體使用極線幾何方法進行剔除.圖3為相鄰兩幀圖像之間的幾何關系圖.

圖3 極線幾何模型Fig.3 Epipolar geometry model
將前幀圖像到后幀圖像空間幾何變換記為(R,t),則有
(4)

(5)
(6)

(7)
式中,F為基礎矩陣.式(7)對一正確匹配像素點對的約束關系進行詳細描述,如果某一像素特征點為另一像素特征點的精準匹配,這就說明其必在圖像平面的極線上,進而能夠估算出比較準確的幀間基本矩陣.但是,此矩陣通常受一些因素的影響,存在一定的誤差,造成實際計算中特征點無法正好落在所計算的極線上.基于此,采用每個特征點到各自極線的距離對匹配點對的可靠性進行綜合性衡量.

(8)
式中,X、Y、Z為極線方程向量.像素點x2到極線的距離為
(9)
式中,D為x2到極線l1兩者之間的具體距離.在實際環境中會造成距離D過大,特征點處于動態目標中,一般涉及到兩種不同的情況:特征點不匹配、環境中產生了一些動態目標.約束距離D可以有效剔除不匹配點及其中的異常點.若D≥θ,則說明所判斷點是動態目標中的異常點.其中,θ為濾除閾值,其表達式為
(10)
式中:N為ORB特征點提取數;Di為第i個特征點到極線之間的具體距離.圖4為殘余物體去除前后Mask對比圖.

圖4 殘余物體去除前后Mask對比Fig.4 Mask comparison before and after residual object removal
本文選用了德國慕尼黑工業(TUM)大學計算機視覺小組提供的兩個公開數據集,作為動態環境下的相機定位數據集,即freiburg3_walking_xyz與freiburg3_walking_halfsphere,該數據集包括兩名研究人員繞工位不停緩慢走動,最后兩人依次回到座位上交談的場景.相機處于高角度進行視頻采集,相機往復旋轉與左右移動的同時對兩名研究人員進行圖像采集工作.除此之外,還有一部深度相機對此相機的移動進行了數據采集,能得到此相機的真實軌跡,并用來做精度分析.這兩個數據集中研究人員移動占整個視頻時長較長,因此能滿足本文研究應用背景.圖5為數據集的某兩幀場景.

圖5 TUM數據集場景圖像Fig.5 TUM dataset scene images
采用本文SLAM視覺算法和ORB SLAM2算法對兩個數據集依次進行處理.圖6a為使用ORB SLAM2算法得到的相機特征點與研究人員移動軌跡情況;圖6b為使用ORB SLAM2算法得到的視頻內對應幀圖像的特征點.圖7a為使用本文算法得到的相機特征點與研究人員移動軌跡情況;圖7b為使用本文算法得到的視頻內對應幀圖像的特征點.

圖6 基于ORB SLAM2移動軌跡與特征點圖像Fig.6 Moving trajectory and feature point images based on ORB SLAM2

圖7 基于本文算法的移動軌跡與特征點圖像Fig.7 Moving trajectory and feature point images based on as-proposed algorithm
由圖6~7可知,本文算法得到的特征點并不在移動的研究人員身上,而ORB SLAM2得到的特征點很多且在移動的人員身上,這是導致最后相機定位不準確的原因.
圖8為使用freiburg3_walking_halfsphere數據集(即數據集1)得到的估計位姿與真實位姿軌跡圖,圖9為使用freiburg3_walking_xyz數據集(即數據集2)得到的估計位姿與真實位姿軌跡圖.在位姿關系對比圖中,黑色線條軌跡表示視覺相機通過深度相機得到的真實軌跡位姿,藍色線條軌跡表示SLAM經過估計后得到的相機變化坐標,紅色線條表示同一時間相機估計位姿與真實位姿之間的位姿誤差距離,紅色線段越長以及紅色區域越大表示誤差越大,位姿估計的準確性越低.
為了對相機精度進行評估,本文采用絕對軌跡誤差(ATE)表示真實軌跡點坐標與采用本文SLAM系統得到的定位點坐標的誤差,用兩者的軌跡誤差均方根[16]進行計算,即
(11)

將數據集實驗得到的絕對軌跡誤差進行對比,結果如表1所示.表2為每幀算法執行時間對比.

圖8 數據集1的估計位姿與真實位姿軌跡Fig.8 Estimated pose and real pose trajectory by dataset 1

圖9 數據集2的估計位姿與真實位姿軌跡Fig.9 Estimated pose and real pose trajectory by dataset 2

表1 兩種算法ATE對比Tab.1 ATE comparison of two algorithms

表2 兩種算法執行時間對比Tab.2 Execution time comparison of two algorithms
通過表1~2數據分析可以看出,在動態環境中,精度有了明顯的提升,與ORB SLAM2算法相比至少提升了96%.在運行效率上,并沒有大幅度降低系統的時效性,因此,本文算法處理動態環境下的相機定位問題是可行的,對精度的提升效果十分明顯.
本文將Mask R-CNN卷積神經網絡與ORB SLAM進行結合,在動態物體移動的情況下,對相機進行精準定位,解決了移動機器人在室內有干擾的情況下進行位姿信息獲取的問題.利用Mask R-CNN網絡對動態物體進行目標檢測,使特征點提取范圍轉移到不移動的區域上.經過數據信息集對照測試與ORB SLAM2對比分析,測試實驗結果表明,在滿足實時在線的環境里,本文算法的精度提高了96%以上.