楊斌超,續欣瑩,2,程 蘭,馮 洲
1.太原理工大學 電氣與動力工程學院,太原 030024
2.先進控制與裝備智能化山西省重點實驗室,太原 030024
隨著自動駕駛技術的研究取得卓越進展,未來自動駕駛將可以在更加復雜的環境中應用,這對視覺里程計的精度和魯棒性提出了更高的要求。視覺里程計是通過分析相關的攝像機圖像來確定車輛的位置和方向的過程,被廣泛應用于無人駕駛、機器人、虛擬現實、增強現實等[1],是一種性價比及可靠性較高的新興導航技術[2]。
傳統的視覺里程計[1,3]依賴人工設計的特征、不準確的建模、環境動力約束復雜等不足導致其在動態目標、光度變化等的環境條件下依然存在較多挑戰。
與利用物理模型或幾何理論創建人工設計的算法不同,基于深度學習的視覺里程計在預測位姿和深度等信息取得了積極進展[4-5]。相對基于雷達、雙目相機的視覺里程計,現有的基于單目相機的視覺里程計魯棒性較差,但在低成本和普適性上有著無法替代的優勢。
近年來,使用深度學習解決幀間位姿估計和回環檢測問題取得不錯的進展[6-7]。與經典的幀間估計提取特征點進行匹配后計算位姿運動不同,基于深度學習的幀間估計提取的特征點更加稠密[8],并且無需利用圖像的幾何結構、進行特征搜索和匹配等復雜的操作。Li等人[9]在立體圖像上基于空間與時間一致性,利用視圖合成建立自監督信號,估計位姿和深度信息。由于自監督的訓練方式相對有監督的訓練方式不需要任何的人工標記、更具泛化能力[10],本文采用自監督的方式設計模型。
自監督建立在光度一致性假設上,即只有當場景幾何和相機姿態的中間預測與物理地面相一致時,幾何視圖合成系統才能始終如一地運行良好[11]。在實際道路環境中,動態物體會對光度一致性假設造成破壞,從而導致深度和位姿的不準確估計。為了解決這個問題,GeoNet[12]通過強化幾何一致性損失,構建剛性結構重構器和非剛性運動定位器來估計靜態場景結構和運動動力學。Ricco等人[13]使用遮罩去除不穩定像素點。但上述方法并不能很好地解決移動物體所帶來的光度投影扭曲。
語義信息可以幫助自監督的光度誤差損失去除不確定的像素點,而不是簡單的遮罩。目前,視覺里程計與語義信息的融合通常是將語義信息作為單獨的任務或在建圖中引入語義映射,而未利用語義信息輔助構建深度、位姿等幾何信息。
針對這類移動物體對光度一致性假設的破壞,本文提出一種基于道路環境動態語義特征的單目視覺里程計,簡稱為DS-VO(visual odometry with dynamic semantic),主要內容如下:
(1)在語義分割網絡的基礎上,對道路環境下車輛的前景圖像處理得到動態語義概率先驗圖;設計語義概率解析網絡,將得到的動態語義概率先驗圖作為先驗信息,以空間仿射變換的形式影響深度估計網絡的中間特征層,使網絡學習到當前環境下的動態信息,提高深度估計與位姿估計的魯棒性。在測試中,只需一次前向傳播就可以得到動態語義特征圖、深度圖和位姿向量。
(2)設計兩個獨立的全連接層,分別估計位姿向量中的旋轉向量和平移向量。降低大旋轉帶來的連續幀間交疊區域少而導致旋轉向量的預測誤差,同時避免相同的全連接層網絡對旋轉向量和平移向量擬合能力的差異問題。在損失函數上,采用結構相似度指標(SSIM)和魯棒性較強的L1光度絕對誤差作為光度誤差的損失函數,與二階梯度平滑損失一起構成網絡的損失函數。
本文的DS-VO由位姿估計網絡和深度估計網絡構成,并在網絡中加入語義概率解析網絡,網絡結構如圖1所示。輸入網絡的圖像為相鄰的多張連續彩色圖像序列,圖像分辨率為416×128,每3張連續幀為一個集合。每個集合以通道數為軸疊加為9通道的張量輸入位姿估計網絡中,集合的中間幀輸入深度估計網絡中,分別產生相鄰幀的6維位姿向量和深度。
編碼解碼器網絡結構作為神經網絡的一種類型,其結構可以保留圖像像素的空間信息。考慮到深度圖具有一定分辨率、邊緣信息復雜的特點,本文的深度估計網絡基于編碼解碼結構,以恢復原圖像的完整深度信息。如圖1所示,通過輸入一張當前車輛的前景圖像產生對應四個尺度的稠密深度圖(灰色矩形)。其具體網絡結構主要由7組卷積和反卷積組成,反卷積由Zeiler等人提出[14],與卷積一樣都是通過網絡的反向傳播進行參數優化。

圖1 DS-VO網絡設計Fig.1 Network structure of DS-VO
在道路環境下,存在大量動態物體、不穩定實例,這會對光度一致性假設條件構成破壞,有研究使用掩碼或遮罩來對光度不穩定的像素進行弱化處理[15],也有研究直接處理光度誤差損失過大的像素點[11]。通過實驗,發現在像素層面的簡單弱化不穩定像素點光度或者簡單強化穩定像素點光度并不會達成很好的效果。本文借鑒Wang等人[16]的方法,提出語義概率解析網絡。在深度估計網絡的編碼解碼結構中加入概率解析網絡(圖1黃色矩形),并融合上下文信息,其具體細節結構如圖2所示,其中Semantics為語義概率先驗,由Deeplab[17]產生,Conv feature和Upconv feature分別為編碼和解碼結構的特征層,Osem為語義概率解析網絡輸出特征層,即動態語義概率先驗信息:

圖2 語義概率解析網絡Fig.2 Semantic probability analysis network

式中,·為點乘計算,P為語義概率先驗,ν為語義概率解析網絡,其輸入的通道數為語義類別數,輸出的通道數和上下文連接通道的特征圖通道數一致,φ,ω為輸入的特征圖F通過語義概率解析網絡產生的參數對。
位姿估計可以連續跟蹤車輛的運動并產生相對位姿,通過在已有的初始化條件下整合相對位姿重建車輛的全局運動軌跡。現有的位姿估計網絡存在兩個主要問題:第一,由于在道路環境下大旋轉會導致連續幀之間交疊區域過小,對光度一致性造成一定程度的破壞;并且旋轉向量的表示與平移向量表示相比,具有更高的非線性,相對訓練難度較大。第二,位姿預測并非傳統意義上的圖像預測,而是一種運動估計,如何通過簡單有效的網絡預測位姿向量達到較好的精度成為一個具有挑戰性的問題。本文提出使用2個不同的全連接網絡(圖1的橙色矩形)分別處理位姿向量中的旋轉向量和平移向量,以避免相同的全連接層對旋轉向量和平移向量擬合能力的不同導致出現預測誤差,進一步利用簡單的網絡結構提升位姿估計的能力,保證了位姿估計中不同類型向量估計的準確性。
位姿估計網絡包含:7層卷積層和2組3層全連接層,每個卷積層后皆有批歸一化層,避免梯度消失,每個全連接層后為ReLU(rectified linear unit)非線性激活函數和Dropout層。Dropout層防止網絡過擬合,而ReLU函數可以有效進行梯度下降的反向傳播,減少參數量,避免梯度問題。
為了能使網絡進行自監督訓練,本文利用光度幾何一致性構建損失函數,通過損失函數的反向傳播進行訓練。光度幾何一致性表示幾何投影兩個連續的單目圖像中對應像素點之間的約束,通過最小化光度誤差,使網絡以端到端的方式學習6維位姿向量和深度地圖。
一張圖像幀I輸入深度預測網絡產生相應的深度圖D,相鄰的3個圖像幀序列輸入位姿預測網絡產生2個相鄰幀間的位姿變換[R|t],其中,R為旋轉向量,t為平移向量,兩者共同構成位姿向量[R|t]。以相鄰的兩張圖像幀為例,光度誤差的損失來自于兩張相鄰的單目圖像,圖3展示了單個像素計算光度誤差的方式。這里,假設第一張圖像幀I1的一個像素點為p1,p1所對應的在第二張圖像幀I2的一個像素點為p2,I1和I2之間的位姿向量為送入深度預測網絡得出的深度圖為D2,p2所對應的深度為D2(p2),則可以通過p2估計出p1,公式如下:

圖3 光度誤差Fig.3 Photometric error

式中,K1和K2分別是圖像幀I1和I2對應兩幅圖像的本征矩陣。通過估計得到的深度和位姿對每個像素點使用同樣的計算過程和相應的空間轉移[18],可以通過圖像I2得到I1的投影圖像,將I1的投影圖像與I1作光度誤差比較,兩者越相似則表示估計得到的深度與位姿越準確。
早期研究中,單目自監督的深度估計主要依賴基于光度一致性計算光度誤差[15],然而直接計算光度誤差作為損失函數會導致深度估計網絡魯棒性較低。本文使用結構相似性指標(SSIM)作為損失函數的一部分[19],與L1光度絕對誤差一起作為單目光度誤差損失函數,用來評估目標圖像和投影生成圖像的相似度。SSIM在超分辨[20]、圖像去模糊[21]等都有應用,SSIM越大,表明投影圖像與原圖像之間的差距越小,當兩圖像完全相同時,SSIM為1。L1損失函數為最小絕對值誤差,較L2損失函數相比魯棒性更強。可以得到基于無監督的單目光度誤差損失為:


式中,α是平衡系數[22],Ik為圖像序列中的一張圖像幀,為圖像幀Ik通過計算投影和雙線性插值后生成的圖像。
由于深度不連續性經常出現在圖像的像素梯度中,為了去除不準確的預測、解決深度和位姿估計中的梯度局部性問題和消除低紋理區域學習深度的不連續性,本文在損失公式中引入深度平滑項[15]。深度平滑項對相鄰像素進行梯度進行計算,與光度誤差損失一起構成網絡的損失函數。由于一階梯度平滑項會導致深度圖梯度趨于零,而深度圖具有連續性,其梯度期望為常值,所以本文采用二階梯度平滑項,深度平滑項為預測深度圖的二階梯度的L1范數,其公式如下:

式中,||為絕對值,β為深度平滑損失的權重,Dk是Ik所估計的深度圖,?為向量的微分計算,T為轉置。
在訓練過程中,將單目圖像序列同時輸入深度估計網絡和位姿估計網絡,利用卷積神經網絡強大的建模能力預測位姿向量和深度圖,結合輸入的原始圖像、深度圖以及位姿向量,根據光度誤差計算,重建出下一幀圖像,并將重建的下一幀圖像與真實的下一幀圖像進行對比,計算出損失。通過損失函數反向傳播到神經網絡,調整網絡參數,改進生成的結果,不斷重復該過程,直到重建誤差降到最小,神經網絡趨于擬合。本文的網絡具體流程如圖4所示。

圖4 網絡流程圖Fig.4 Flow chart of network
實驗使用KITTI數據集[23]、Cityscapes數據集[24]和PASCAL VOC 2012數據集[25],其中使用KITTI數據集的視頻圖像用于訓練、深度預測的評估,KITTI Odometry數據集用于位姿預測的評估,Cityscapes、PASCAL VOC數據集用于語義先驗產生網絡的訓練。
KITTI數據集是目前國際上最大的自動駕駛場景下的視覺算法評測數據集,包含市區、鄉村和高速公路等場景采集的真實圖像數據,包括原始的輸入原圖像、雷達三維點云數據和相機運動軌跡。Cityscapes數據集包含了5 000張精細標注的圖像,其中包含50個城市的不同背景,以及30類涵蓋地面、建筑、交通標志、自然、人和車輛等的物體標注。PASCAL VOC數據集主要是針對視覺任務中監督學習提供標簽數據,主要類別為人、動物、交通車輛等。
諸多的相關工作中都采用了Eigen劃分的單目深度估計數據集[26],這個測試數據由28個場景、697張圖片構成,不包括訓練圖片,為了方便與其他方法比較,本文也采用了這個數據集來評估深度預測效果。
系統工作站采用Nvidia Titan Xp GPU進行訓練,實驗使用PyTorch深度學習框架。初始化Adam[27]優化器參數β1=0.9,β2=0.999。最初按照經驗值設置學習率為0.001,此時模型難以收斂;改進學習率為0.000 1,訓練曲線振蕩較大,無法達到最優值。經過多次調整。最終選擇合適的學習率為0.000 2,批尺寸設置為4。訓練迭代次數為20萬次時,模型趨于擬合。所有訓練數據為單目圖像,沒有任何數據標簽下自監督訓練。將訓練的圖像大小調整為128×416,并進行隨機縮放與裁剪以擴充數據集。
通過對引入的語義概率解析網絡在不同網絡結構上的訓練結果對比驗證網絡設計的合理性。為了直觀地評估消融實驗的結果,給出了上述11個深度估計評價指標對4個網絡的深度估計結果,以及絕對軌跡誤差(ATE)和相對軌跡誤差(RE)指標[23]對4個網絡的位姿估計結果,如圖5所示。Base即位姿估計和深度估計網絡中未引入語義概率解析網絡;Sem-en為在深度估計網絡中的編碼部分引入語義概率解析網絡;Sem-de為在深度估計網絡中的解碼部分引入語義概率解析網絡;Sem-all為在深度估計網絡中的編碼及解碼部分引入語義概率解析網絡。可以發現,在深度估計中,語義先驗加入到深度估計網絡的解碼結構帶來了較好的效果,同樣在位姿估計中,相較不引入語義先驗,在網絡中引入語義先驗提升了位姿估計的精度。深度估計定量分析的評價指標如下:

圖5 消融實驗Fig.5 Ablation experiment

圖5中a1、a2、a3分別代表深度估計預測精度ζ,三個不同的閾值(1.25,1.252,1.253)。它統計像素的百分比預測的深度值與真實值之比小于閾值。預測的深度值與真實值之比小于閾值。越接近1,預測結果越好,評價指標公式如下:

對于語義概率先驗的產生網絡,使用文獻[17]提出的語義分割網絡,在PASCAL VOC數據集預訓練后在Cityscapes數據集上精調,語義概率先驗的產生網絡產生8個動態物體類別概率,輸出的語義概率先驗作為語義概率解析網絡的輸入,語義概率解析網絡輸出為動態語義概率先驗信息。如圖6所示,本文對語義先驗產生網絡所產生的語義先驗進行了可視化,可以清晰地看到語義概率對于動態物體的理解能力。

圖6 動態語義概率先驗可視化Fig.6 Dynamic semantic probability prior visualization
本文從測試場景中排除所有平均光流值小于1像素的靜態序列幀進行訓練。使用的數據一共有30 945個序列,其中23 982個序列用于訓練,6 963個序列用于驗證。首先進行定量對比實驗,將本文方法與現有方法比較,深度估計的閾值精度如圖7所示,仍使用同圖5相同的深度估計預測精度ζ,深度估計對比結果如表1所示。

表1 深度估計量化結果對比Table 1 Comparison of depth estimation quantitative results

圖7 閾值精度評價指標對比Fig.7 Comparison of threshold accuracy evaluation indicators
分析上述實驗結果,與現有的有監督方法[26,28]和無監督方法[9,15,29]相比,本文方法在無深監督信號的情況下,取得了更好的深度估計效果。為了直觀評估深度估計的結果,本文與文獻[15]的方法進行對比,分別可視化本文引入和不引入語義先驗的網絡的深度估計結果,并可視化深度真值,如圖8所示。可以發現,相較于其他方法對于深度估計存在深度圖模糊、邊緣不清、深度不連續、不完整的現象,本文方法引入動態物體語義先驗后,深度估計可以準確估計深度圖,有效改善深度圖不連續、模糊、空洞等現象,并且深度圖邊緣更加清晰。

圖8 深度估計結果對比Fig.8 Comparison of depth estimation results
為了量化評估位姿估計網絡,使用KITTI odometry 09和10序列進行測試,并與一些已經提出的方法進行比較,對比結果如表2所示,其中,第四行數據為數據集的里程計真值的平均值。與ORB-SLAM2等在長期具有滑動窗口優化相比,由于本文所設計的視覺里程計是在短期的圖像序列片段進行訓練和測試,本文方法在短期評估上,即相對位姿的評估更具優勢。與文獻[15]方法相比,本文方法在序列09上的絕對軌跡誤差指標均值降低1%,標準差降低1.2%;與人工設計特征點的傳統算法[30]相比,本文方法也取得了相似或更優的結果,因此本文方法有著更好的表現。

表2 絕對軌跡誤差(ATE)Table 2 Absolute trajectory error(ATE)
本文提出一種基于道路環境動態語義特征的視覺里程計(DS-VO),通過神經網絡模型直接將輸入原始數據和輸出目標連接起來,不再需要人工設計特征;分析了在視覺里程計中基于光度一致性的自監督網絡存在的局限性,提出語義概率解析網絡為深度估計網絡提供動態物體先驗,以增強自監督網絡的魯棒性;針對平移和旋轉向量的網絡訓練難度不一致,提出使用兩個獨立的全連接層分別估計平移和旋轉向量。實驗結果表明,本文算法可以顯著提升深度估計與位姿估計的精度。