吳思齊,劉 飛,白 羽,馬運濤,王 斐,郭梓鈺
(1.北京建筑大學理學院,北京 102616; 2.北京建筑大學測繪與城市空間信息學院,北京 102616;3.東方通用航空攝影有限公司,山西 太原 030031)
近年來,視覺同時定位和地圖構建(simultaneous localization and mapping, SLAM)伴隨計算機視覺的快速發展受到了廣泛關注,同時單目視覺傳感器相比于昂貴的激光傳感器,更易受到自動駕駛、移動機器人、無人機等領域的青睞[1-2],因此Mono-SLAM技術被廣泛研究,各種算法層出不窮。文獻[3]提出基于比較像素亮度等信息的直接視覺里程計方法,但在復雜光照變化場景下穩定性較差。文獻[4]提出改進收斂半徑優化匹配算法對抗室外光照,文獻[5]采用對光照變化較為穩健的ORB特征點法對相機定位。但在實際戶外復雜多變的光照場景中,相機捕獲的圖片常常會被噪聲污染,使得上述方法失效。特別是亮度較高的條狀眩光被誤匹配為特征點,而圖片其他紋理明顯區域由于相機感光度設定使得對比度下降,導致特征點提取失敗,進一步造成視覺SLAM系統穩定性降低、軌跡跟蹤丟失率過高等問題,甚至導致整個視覺SLAM系統宕機。
因此,為解決現有視覺SLAM算法在戶外眩光場景下穩定性較差的問題,本文提出一種改進的視覺ORB-SLAM2算法,以提升室外復雜光照場景下的SLAM跟蹤穩健性,并通過戶外試驗驗證該算法的有效性。
本文提出的改進ORB-SLAM2算法框架如圖1所示。在原有視覺ORB-SLAM2框架基礎上,增加圖片眩光處理模塊,并利用滑窗思想判斷已去除眩光圖片的亮度;對低亮度圖像通過限制對比圖自適應直方圖均衡化(CLAHE)處理,提高紋理變化明顯區域特征點的提取數量,降低軌跡跟蹤丟失率,以增強室外眩光場景SLAM系統的穩健性。

圖1 改進ORB-SLAM2算法流程
1.1.1 眩光成因
如圖2所示,在一張無眩光污染的圖片中,每個像素點在傳感器上的信息是由光源發射的所有光線經相機鏡頭折射并全部匯聚到該點形成的。但在實際戶外場景中,相機鏡頭常常因受到污染或內部元件損壞等因素的影響,少量入射光線在鏡頭內部發生折射和反射,導致圖片受到眩光的污染。

圖2 眩光成像模型
1.1.2 眩光去除模型
現有防治或減少眩光影響的方法大體分為3類: ①通過物理方法在相機鏡頭涂抹防反射材料[6]或在鏡頭表明增加玻璃透鏡防止鏡頭污染。前者只能減少特定波長光線造成的眩光影響,且價格高昂不宜普及;后者會使入射光線在玻璃透鏡表明發生反射與折射的可能性增加,更加不利于眩光的防治。 ②通過傳統圖像處理的方法識別圖像明亮區域[7-9]再應用二進制掩碼加以去除。此方法檢測眩光類型有限,同時會將圖像本身明亮區域誤當作眩光區域去除,造成圖片信息缺失。 ③通過神經網絡深度學習方式去除圖片眩光。計算機視覺技術的發展推動了圖像處理技術的進步,如采取半監督等方式去除圖片反射[10-12]、利用Gan網絡對圖像去雨[13-14],但圖像去除眩光算法進展緩慢,主要原因是成對的眩光圖片數據集較難收集。2021年文獻[15]在實驗室人工合成5000張眩光圖片,利用U-Net網絡訓練實現單張圖片的眩光去除。本文利用此方法處理定位相機捕獲的圖片,以減少眩光對圖片信息的干擾。
U-Net網絡框架如圖3所示。其中,網絡輸入端、輸出端分別是3通道受到眩光污染及已去除眩光的RGB圖像;該網絡左側(虛線)為特征提取網絡,由4個block組成,每個block包含2次卷積和1次最大池化降采樣操作,可充分提取圖片特征;網絡右側為特征融合網絡,同樣由4個block組成,每個block包含2次卷積和1次插值上采樣操作,用于恢復圖片尺寸。由于受眩光污染的圖像往往同時包含眩光和光源,為避免網絡將光源本身作為眩光去除,對網絡輸出結果添加mask,將光源區域像素值調整為真實值,則該部分損失值為0。該網絡損失定義為

圖3 U-Net網絡框架
(1)
(2)

為避免因產生眩光使圖片紋理變化明顯區域較暗,造成特征點提取不足的問題,本文對已去除眩光圖像采用CLAHE方法進行處理。CLAHE對圖像低亮度區域有較好提升對比度的效果,但對亮度正常或高亮度圖像使用CLAHE方法往往會放大圖像噪聲,對ORB特征點提取造成干擾。因此,本文設計一種圖像亮度判斷算法,僅對低亮度圖像采用CLAHE處理,算法流程如圖4所示。

圖4 圖像亮度判斷及增強算法流程
將輸入的第i幀圖像分成9塊,計算每個子塊的平均灰度并排序為img[k],k=1,2,…,9,圖中
(3)
(4)
t1、t2表示灰度判定閾值,本文根據經驗值分別設定為30、90。為避免光照復雜變化造成亮度判定結果不穩定,本文設計一種滑窗增加此算法的穩健性,窗口大小等同于定位相機每秒傳輸圖像幀數(FPS),對于當前第i幀圖像,其亮度imgMidi判斷值用Min(imgMid_windos_FPSi)的數值代替。其中,imgMid_windos_FPSi表示第i幀圖像至第i+FPS幀圖像相應灰度值室的窗口列表。
分別使用文獻[5]發布的25 000余張無眩光污染圖像和VGG-19預訓練模型合成訓練數據和提取圖像特征,眩光圖在使用在光學實驗室發布[15]基礎上,增加眩光圖像[16],共計10 001張,可有效去除多種類型眩光,U-Net網絡使用NVIDIA GeForce RTX 3070顯卡訓練。
本文使用Intel RealSense D435i相機采集室外圖像,RGB圖像分辨率設定為640×480像素,相機FPS設定為30。為體現本文算法對室外眩光場景的穩健性,采集包含強眩光干擾且眩光分布在試驗路線起始段、結束段等多種數據集。截取視頻序列如圖5所示。其中,11021數據集在試驗路線起始段受眩光干擾,11010數據集在試驗路線結束段受眩光干擾,10250數據集因光線較強造成圖像紋理變化明顯區域對比度過低。

圖5 連續5幀眩光序列
在圖像眩光去除方面,試驗結果如圖6所示,場景1、場景2受眩光干擾,經U-Net網絡可有效去除圖片眩光,場景3未受眩光污染經該網絡處理仍可保持原始信息,對該網絡輸出結果經本文亮度判斷算法及CLAHE增強處理,低亮度圖像圖片質量得到較大提升。
對改進的SLAM系統進行戶外試驗,模擬數據選取10250序列數據集,基于Ubuntu18.04操作系統,部分試驗結果如圖7所示。在試驗中,該序列數據集第1008幀在原始SLAM系統中提取大量錯誤眩光特征點,并隨著相機繼續運動特征點提取數量不足造成圖像軌跡跟蹤失敗,SLAM系統無法繼續運行。經本文算法改進后,該幀圖像眩光部分得到有效去除,紋理變化明顯區域的特征點提取數量顯著增加,該數據集可在SLAM系統中持續建圖直至視頻結束,驗證本文改進的ORB-SLAM2系統對室外眩光場景有更好的穩健性。

圖7 試驗結果對比
在關閉回環檢測模塊的條件下分別測試在試驗路線起始段受炫光干擾的11010數據集(逆時針行進)及在試驗路線結束段受炫光干擾的11021數據集(順時針行進),試驗結果如圖8所示,結果顯示,采用本文改進的ORB-SLAM2算法,相機在繞行試驗路線1周后均可回到起點,而原始ORB-SLAM2系統在兩條軌跡上都出現較嚴重的軌跡漂移,且軌跡首尾端存在較大間隙,誤差較大,進一步驗證本文改進的SLAM算法在室外眩光場景下的穩健性較高。

圖8 運行軌跡對比
針對傳統視覺SLAM系統在室外眩光環境下穩定性較差的問題,本文提出了一種可用于戶外含有眩光干擾的改進視覺SLAM算法。首先對視覺相機捕獲的圖像經U-Net網絡檢測并去除眩光,減少眩光對特征點提取的干擾,對無眩光干擾的圖像仍可保持原始圖片信息輸出;然后經圖像亮度判斷算法判斷去除眩光干擾的圖像,對低亮度圖像進行限制對比度直方圖均衡化處理,提高圖像紋理變化明顯區域對比度,增加相應區域特征點提取數量。在實際戶外場景下的試驗表明,本文算法可有效增加在復雜眩光場景下SLAM系統的定位精度和穩健性。