作者:黃澤霞,邵春莉
摘要:本綜述涵蓋了深度學習技術應用到SLAM領域的最新研究成果,重點介紹和總結了深度學習在前端跟蹤、后端優(yōu)化、語義建圖和不確定性估計中的研究成果,展望了深度學習下視覺SLAM的發(fā)展趨勢,為后繼者了解與應用深度學習技術、研究移動機器人自主定位和建圖問題的可行性方案提供助力。
?
引言
隨著機器人技術的發(fā)展,越來越多的機器人被用來代替人類完成簡單重復或危險的工作。移動機器人由于具有較強的靈活性和可靠性,已逐漸成為機器人領域的研究焦點。在沒有人干預的情況下,通過自身所帶的傳感器感知環(huán)境,獲取未知環(huán)境的信息,并對環(huán)境進行建模,實現(xiàn)自主導航和定位是移動機器人的核心任務。目前,同步定位與地圖創(chuàng)建(SLAM)技術是實現(xiàn)移動機器人這一任務的主流技術方案。
SLAM技術最早被應用在機器人領域,是希望在沒有任何先驗知識的情況下,機器人能依據(jù)傳感器的信息實時構建周圍環(huán)境地圖,同時,根據(jù)這個地圖推測自身的位置[1]。根據(jù)所使用的傳感器類型的不同,可以把SLAM分為基于雷達的SLAM和基于視覺的SLAM。如圖 1所示,一個完整的視覺SLAM系統(tǒng)主要由傳感器數(shù)據(jù)流、前端跟蹤模塊(視覺里程計)、后端優(yōu)化模塊、回環(huán)檢測模塊和地圖構建模塊組成[2]。
圖1 視覺SLAM系統(tǒng)框架
隨著深度學習技術的興起,計算機視覺的許多傳統(tǒng)領域都取得了突破性進展,例如目標的檢測、識別和分類等領域。近年來,研究人員開始在視覺SLAM算法中引入深度學習技術,使得深度學習SLAM系統(tǒng)獲得了迅速發(fā)展,并且比傳統(tǒng)算法展現(xiàn)出更高的精度和更強的環(huán)境適應性。
從2015年Kendall等[3]?提出在視覺里程計中引入深度學習方法開始,經(jīng)過近十年的發(fā)展,基于深度學習的視覺SLAM系統(tǒng)框架已日趨成熟。同時,深度學習與視覺SLAM結合發(fā)展方面也取得了很多進展[4-8]。其中,文[4] 較早地對深度學習與SLAM融合方法進行了深入細致的調(diào)研,并展望了幾個未來的方向。但由于當時對語義SLAM領域的研究剛剛起步,文中只進行了簡要討論,沒有辦法進行全面總結。此外,多數(shù)綜述都只對SLAM系統(tǒng)的某幾個方面進行歸納與總結,如,對視覺里程計和回環(huán)檢測研究成果的總結[5],對視覺里程計、回環(huán)檢測和地圖重建的調(diào)研[6-7]?等。值得注意的是,雖然也有專門討論不確定性估計算法的綜述[9-10],然而,它們大部分的關注點主要集中在基于神經(jīng)網(wǎng)絡方法對不確定性的建模、深度模型下不確定性方法之間的對比等。
基于上述分析及廣泛調(diào)研,本文對深度學習下視覺SLAM方法涵蓋的幾大模塊(視覺里程計、回環(huán)檢測、全局優(yōu)化、語義SLAM以及不確定性估計)當前采用的算法的性能特點、應用環(huán)境等方面進行分類討論,如圖 2所示。同時,論述了現(xiàn)有模型的局限性,并指出該領域未來可能的發(fā)展方向。
圖2 基于深度學習的視覺SLAM現(xiàn)有方法的分類
?
深度學習下的視覺SLAM前端跟蹤
SLAM前端跟蹤也稱作視覺里程計(VO),可以通過傳感器獲得的不同幀之間的感知信息估計出移動機器人的運動變化[11]。VO估計最核心的任務是利用傳感器的測量數(shù)據(jù)準確地預測移動機器人的運動并輸出相對位姿。對SLAM系統(tǒng)而言,在初始狀態(tài)已知的情況下,可通過這些相對位姿重構全局軌跡。因此,保證輸出位姿估計精度是移動機器人實現(xiàn)高精度定位的關鍵因素[8]。
2.1 深度學習與視覺里程計
傳統(tǒng)的VO估計通常包括相機標定、特征提取、特征匹配/ 跟蹤、異常值剔除、運動估計、尺度估計和局部優(yōu)化幾部分,系統(tǒng)架構如圖 3所示[12]。
圖3 傳統(tǒng)單目VO的框架圖
卷積神經(jīng)網(wǎng)絡(CNN或ConvNet)在圖像識別任務中獲得的巨大成功,使得利用CNN來處理VO問題成為了可能。和傳統(tǒng)的VO估計方法相比,深度學習方法可以自動對圖像特征進行提取,而不需要繁重的人工特征標注過程,使得整個估計過程更加直觀簡潔。根據(jù)網(wǎng)絡的訓練方式和數(shù)據(jù)集是否使用標簽,本節(jié)主要集中對有監(jiān)督學習(supervised learning)VO、無監(jiān)督學習(unsupervised learning)VO和自監(jiān)督學習(self-supervised learning)VO三種情況進行討論和總結。
2.1.1 有監(jiān)督學習VO
有監(jiān)督學習VO的目的是通過在標記數(shù)據(jù)集上訓練一個深度神經(jīng)網(wǎng)絡模型,直接構造出從連續(xù)圖像到運動變換的映射函數(shù)。模型的輸入是一對連續(xù)的圖像,輸出是包含了平移信息和旋轉信息的矩陣。
2015年,Konda等[13]?提出了基于端到端的卷積神經(jīng)網(wǎng)絡架構來預測相機速度和輸入圖像的方向變化的方法,整個預測過程主要包括圖像序列深度和運動信息的提取、圖像序列速度和方向變化估計2個步驟,是將深度學習融入到VO研究領域中最早的研究成果之一。
Costante等[14]?通過學習圖像數(shù)據(jù)的最優(yōu)特征表示,對視覺里程計進行了估計。該方案將稠密光流特征作為CNN網(wǎng)絡的輸入,探索和設計了3種不同的CNN深度網(wǎng)絡架構,基于全局特征的CNN-1b、基于局部特征的CNN-4b,以及結合前2種架構的P-CNN。所提方案雖然在應對圖像運動模糊、光照變化方面具有較強的魯棒性,但當圖像序列幀間速度過快時,算法誤差會較大,準確性會下降。
在有監(jiān)督學習VO的模型中,DeepVO[12]?是目前效果最好且應用較為廣泛的。該算法采用將ConvNet和遞歸神經(jīng)網(wǎng)絡(RNN)相結合的方法來實現(xiàn)視覺里程計的端到端學習。該網(wǎng)絡的框架如圖 4所示,它不采用傳統(tǒng)VO中的任何模塊,而是直接從一系列原始RGB圖像或視頻中推斷出姿態(tài)。DeepVO框架不僅能通過CNN自動學習VO問題的有效特征表示,而且能夠利用RNN隱式地學習圖像間的內(nèi)在聯(lián)系及動力學關系。
圖4 DeepVO網(wǎng)絡的框架結構圖
與傳統(tǒng)方法相比,DeepVO模型在精度上沒有絕對的優(yōu)勢,但是,因其學習的是各幀之間的位姿關系,具有較好的泛化能力,因而得到了廣泛的關注。例如,VINet算法[15]和Deep EndoVO算法[16]?等都是在此基礎上進行的改進,并獲得了較好的效果。
隨著研究人員對高效的小規(guī)模網(wǎng)絡的深入研究,知識蒸餾作為一種新興的輕量化小模型,已成為深度學習領域又一個被關注的重點。2019年,Saputra等[17]?首次利用知識蒸餾來預測位姿回歸,提出了一種基于對教師模型結果的“信任”程度來附加蒸餾損失的方案。該方法有效地減少了網(wǎng)絡的參數(shù)量,增強了移動機器人的實時操作性。其他相關方法還有很多,比如,Saputra等[18]?在ICRA會議上探討了將課程學習(curriculum learning,CL)應用到復雜幾何任務上的問題,設計了CL-VO網(wǎng)絡。該網(wǎng)絡利用新的課程學習策略來學習單目視覺里程計中的幾何信息,通過幾何感知目標函數(shù),在訓練的過程中逐步提升訓練數(shù)據(jù)的復雜度。
總之,由于機器學習技術、數(shù)據(jù)存儲量和計算速度等方面的飛速發(fā)展,這些有監(jiān)督學習方法可以從輸入圖像中自動獲取相機的位姿變換,從而解決實際場景中視覺里程計估計難的問題。
2.1.2 無監(jiān)督學習VO
無監(jiān)督學習所學習的數(shù)據(jù)不需要標注,學習的目標通常是找出數(shù)據(jù)與數(shù)據(jù)之間的關系。隨著深度學習技術在計算機視覺領域中的優(yōu)勢凸顯,人們對探索無監(jiān)督學習在視覺里程計中的應用越來越感興趣,研究者也逐步把側重點放在了該領域上。
2017年,Godard等[19]?在CVPR會議上提出了采用無監(jiān)督學習的方法來進行單一圖像的深度估計。該方法的基本思路是利用圖像的多重目標損失來訓練神經(jīng)網(wǎng)絡,使得光度誤差最小化,從而得到很好的視差圖。特別值得注意的是,文[19] 是在已知相機參數(shù)的情況下進行訓練的。為了解決相機參數(shù)未知且左右相機不在同一個平面的問題,Zhou等[20]?提出了一種既不需要雙目相機,也不用知道相機參數(shù)的改進算法。其核心思想是通過深度CNN和位姿CNN兩個網(wǎng)絡分別生成深度圖和圖像間的位姿,根據(jù)深度圖與位姿將原圖像投射到目標圖像上,最后通過比較真實目標圖像與投射產(chǎn)生的目標圖像的重建誤差來訓練網(wǎng)絡。該學習方式在網(wǎng)絡結構設計、初始值設定和訓練方法上都采用了較為合適的策略,是目前效果最好的無監(jiān)督學習方法之一。然而在文獻中,作者提到還存在幾個尚待解決的問題:1) 該方法存在絕對尺度問題。由于文中的深度預測不夠完整,因而無法重建環(huán)境的全局軌跡,降低了其在全局范圍內(nèi)定位的精度。2) 文中的光度一致性計算沒有考慮實際場景中可能出現(xiàn)的物體移動和遮擋。
對于上述尺度一致性問題,學者們進行了討論和研究,并提出了許多不同的改進方案[21-23]。例如,Li等[21]?在文[20] 的基礎上作了相應的改進,提出一種基于無監(jiān)督學習方法來得到相機位姿絕對尺度的單目視覺里程計估計網(wǎng)絡UnDeepVO。該方法通過左右圖像分別估計出相機左右序列的位姿值和深度值,然后再利用輸入的立體圖像對得到真實尺度的深度圖,與大多數(shù)單目無監(jiān)督的學習方案相比,該方法能夠真實地恢復相機位姿的尺度。文[22] 提出利用幾何一致性損失函數(shù)來滿足深度估計和位姿估計之間的尺度一致性約束。該方法將預測的圖像深度圖轉換到3D空間,然后將局部深度重投影作為損失函數(shù),以此來保持深度預測的尺度一致性,從而保持位姿估計的尺度一致性。
在改善位姿估計精度方面,Yin等[24]?提出了一種可以聯(lián)合學習單目深度、光流和相機姿態(tài)的GeoNet無監(jiān)督網(wǎng)絡學習框架。該學習過程通過剛性結構重建器和非剛性運動定位器2個子任務,分別學習剛性流和目標物體的運動。除此之外,GeoNet還引入了自適應幾何一致性損失,增強了對相機遮擋和非朗伯區(qū)域的異常值的魯棒性,提升了相機位姿估計的精度。此外,Zhao等[25]?同樣也在改善位姿估計精度方面進行了改進和擴展。
自2014年Goodfellow等[26]?提出生成式對抗網(wǎng)絡(GAN)以來,由于其強大的生成能力,該方法在計算機視覺、自然語言處理等領域越來越受到學術界和工業(yè)界的重視。GANVO算法[27]?正是在GAN基礎上提出的一種生成式無監(jiān)督學習框架,該算法通過在單目VO中使用生成式對抗神經(jīng)網(wǎng)絡和循環(huán)無監(jiān)督學習方法來預測相機運動姿態(tài)和單目深度圖。SGANVO(疊加生成式對抗網(wǎng)絡)[28]?是繼GANVO之后出現(xiàn)的一種改進算法,其整體是由一堆GAN層堆疊組成。系統(tǒng)在對抗性學習過程中進行深度估計和自我運動預測,并對算法的前、后層網(wǎng)絡進行遞歸表示,從而有效地捕捉各層的時間動態(tài)特征。SGANVO通過增加網(wǎng)絡層數(shù)的方式,使得深度估計效果得到了很大的改善。
傳統(tǒng)的無監(jiān)督深度估計需要利用雙目圖片進行自監(jiān)督,而文[29] 提出的SfM-Net網(wǎng)絡卻只需要單目的視頻流就能恢復深度圖和相機位姿的估計。首先,通過輸入的單個圖像生成對應深度圖像;然后,融合生成深度點云;最后,通過輸入連續(xù)兩幀的圖像計算輸出圖像間的位姿關系,識別并分割出(以掩模的形式)場景中的運動物體。
相比于有監(jiān)督學習VO,無監(jiān)督學習VO學習到的特征更加具有適應性和豐富性,因此,在性能上雖然與前者還有一定差距,但其在提供未知場景位姿信息方面具有更佳的可拓展性和可解釋性。
2.1.3 自監(jiān)督學習VO
在傳統(tǒng)的VO中,想要獲得場景像素點的深度真值比較困難,而自監(jiān)督學習方法集成了深度學習框架和經(jīng)典的幾何模型,給這一難題指明了方向。
第一種自監(jiān)督學習法是以立體相機拍攝的圖像對作為訓練樣本,根據(jù)視差與場景深度的關系,預測出目標圖像的視差圖,并轉換為深度圖[30-32]。如,文[30] 提出用立體圖像作為訓練網(wǎng)絡的輸入,以自監(jiān)督的方式在圖像對上進行模型訓練。文中以左右視差之間的雙循環(huán)一致性作為目標函數(shù),同時引入自適應正則化損失函數(shù),以此排除立體圖像中的遮擋區(qū)域。Godard等[19]?使用單個圖像作為卷積神經(jīng)網(wǎng)絡的輸入,在全局范圍內(nèi)預測得到每個像素的場景深度;然后利用左右圖像一致性損失,增強左右視差圖的一致性,可以使結果更準確。此外,Chen等[31]?和Choi等[32]?從訓練策略著手,基于雙目深度估計的結果來估計單目圖像的深度。通過這種方式獲得的網(wǎng)絡模型可以獲得最佳性能。
另一種基于自監(jiān)督估計深度的思路是將視頻序列中的連續(xù)幀作為訓練樣本[33-37]。由于連續(xù)幀之間的相機運動是未知的,因此,該方法既要估計目標圖像的深度,還需要預測相機位姿。倫敦大學Godard等[33]?利用深度估計和姿態(tài)估計網(wǎng)絡得到圖像的逆深度估計和相機位姿估計,然后把相機位姿與視差計算的光度投影誤差作為損失函數(shù),利用梯度下降這種優(yōu)化方法對損失函數(shù)中的每個誤差進行優(yōu)化或更新,以此來提升算法處理遮擋場景的魯棒性。Li等[34]?利用連續(xù)幀之間的時序約束進行自監(jiān)督學習,該算法將自監(jiān)督學習VO表示為一個序列學習問題,將幀間相關性表示為一個壓縮碼,并通過長短期記憶(LSTM)網(wǎng)絡來集成序列信息。通過對抗學習這種方法,很好地解決了位姿估計過程中造成的誤差積累,給系統(tǒng)后端提供了更精確的深度和更準確的位姿估計。Zhan等[36]?將學習到的深度和光流預測整合到傳統(tǒng)的VO測量模型中,獲得了比其他算法更具競爭力的性能表現(xiàn)。此外,Li等[37]?提出了基于元學習的在線自監(jiān)督學習方法。
研究表明,與傳統(tǒng)的單目VO或視覺慣導里程計相比,將深度學習與傳統(tǒng)方法相結合的自監(jiān)督方法在性能上更加優(yōu)越[38]。這一結論從側面說明了自監(jiān)督領域發(fā)展的巨大潛力和無限可能。
2.2 深度學習與視覺慣導里程計
高精度的導航和定位是自動駕駛汽車的核心技術之一。傳統(tǒng)的視覺里程計方法由于遮擋、尺度不確定性、相對位置偏移和低幀率等一系列問題,很難達到實際場景的應用需求;相比而言,慣性測量單元(IMU)定位設備價格低廉,可以直接獲得運動主體的角速度和加速度的測量數(shù)據(jù),達到理想的定位效果。因此,為了提升導航定位系統(tǒng)的精度和穩(wěn)定性,在傳統(tǒng)的VO中融入慣性信息是行之有效的方案,并已取得了一定成果[39-41]。
深度學習是一種端到端的學習方式,在模型訓練時直接學習從輸入的原始數(shù)據(jù)到期望輸出的映射。與傳統(tǒng)方法相比,基于深度學習的視覺慣性里程計(VIO)方法最大的優(yōu)點是無需手動提取特征,完全依靠數(shù)據(jù)驅動,能利用數(shù)據(jù)本身蘊含的信息實現(xiàn)深度預測。近年來,對該領域的探索與研究開始引起許多研究者的關注。
VINet網(wǎng)絡[15]?首次提出結合IMU的信息,通過深度神經(jīng)網(wǎng)絡的框架來解決VIO的問題。整個VINet網(wǎng)絡利用CNN網(wǎng)絡從2個相鄰幀圖像中提取視覺運動特征,同時使用LSTM網(wǎng)絡來建模IMU的慣導特征。然后利用特殊歐氏群把視覺運動特征和慣導特征進行結合,以此實現(xiàn)對相機位姿的預測。通過VINet方法,既減少了對手動同步和校準的依賴,同時在同步誤差方面也表現(xiàn)出了更強的魯棒性。
文[42] 利用在線糾錯OEC模塊進行了VIO無監(jiān)督網(wǎng)絡學習方法的設計。該方法在沒有慣性測量單元內(nèi)在參數(shù)或缺失IMU和相機之間的外部校準的情況下,將RGB-D圖像與慣性測量直接相結合,根據(jù)像素的縮放圖像投影誤差的雅可比行列式生成相機運動的估計軌跡。DeepVIO是Han等[43]?提出的一種端到端自監(jiān)督深度學習網(wǎng)絡框架,該框架主要使用雙目序列來估計每個場景的深度和密集的3D幾何約束并作為監(jiān)督信號,結合IMU數(shù)據(jù)來獲取絕對軌跡估計值。與傳統(tǒng)方法相比,DeepVIO減少了相機與IMU之間校準不正確、數(shù)據(jù)不同步和丟失的影響,與其他基于VO和VIO系統(tǒng)的最新學習方法相比,該算法在準確性和數(shù)據(jù)適應性方面的表現(xiàn)也更為突出。
基于深度學習的視覺慣性里程計方法已經(jīng)被證明是成功的,然而,這些方法在設計過程中并沒有完全解決多傳感數(shù)據(jù)的魯棒融合策略問題。針對這一問題,Chen等[44]?提出一種新的單目端到端VIO多傳感器選擇融合策略。該策略融合了單目圖像和慣性測量單元,根據(jù)外部環(huán)境和內(nèi)部傳感器的動態(tài)數(shù)據(jù)來估計運動軌跡,提高了對應用場景的魯棒性。此外,還提出了不同掩碼策略下的融合網(wǎng)絡模式,在數(shù)據(jù)損壞的情況下,該融合策略表現(xiàn)出更優(yōu)的性能。
在很多室內(nèi)和室外場景中,面對不同的場景尺度因子,單目的SLAM系統(tǒng)需要對相機和IMU之間的空間變換和時間偏移進行標定。對這一限制問題,Lee等[45]?利用光流神經(jīng)網(wǎng)絡的思想,以連續(xù)的2個相鄰幀作為網(wǎng)絡的輸入,提出了一種不需要標定的VIO學習框架,該方法適用于計算能力不高且需要實時處理信息的VIO系統(tǒng)。為了解決單目視覺SLAM系統(tǒng)實時重構真實尺度場景困難的問題,浙江大學左星星博士提出了一種實時的CodeVIO方法[46],采用一種新的、實時的單目相機慣導定位與稠密深度圖重建的策略。該策略結合了深度神經(jīng)網(wǎng)絡與傳統(tǒng)的狀態(tài)估計器,利用輕量級的條件變分自動編碼器(conditional variational autoencoder,CVAE),把高維度的稠密深度圖在神經(jīng)網(wǎng)絡中編碼為低維度的深度碼,以增加稠密深度估計的準確性。CodeVIO方法一方面利用VIO稀疏深度圖的信息,以稀疏視覺特征點的深度作為神經(jīng)網(wǎng)絡的輸入;另一方面使用了一種高效的網(wǎng)絡雅可比矩陣計算方法,使網(wǎng)絡在實時單線程運行的同時,具有了很強的泛化能力和高了一個數(shù)量級的計算效率。
此外,Liu等[47]?提出InertialNet網(wǎng)絡,訓練端到端模型來推導圖像序列和IMU信息之間的聯(lián)系,預測相機旋轉角度。Kim等[48]?將不確定性建模引入無監(jiān)督的損失函數(shù)中,在不需要用真值協(xié)方差作為標簽的情況下學習多傳感器間深度與位姿的不確定性。通過這種方法,克服了學習單個傳感器時的不確定性和局限性。文[49] 提出了一種新的基于深度學習模型的相機和IMU傳感器融合的算法,以預測無人機系統(tǒng)的3D運動。
2.3 方法總結與對比分析
近年來,結合深度學習的視覺SLAM方法越來越受到研究者的高度關注?,F(xiàn)有基于深度學習的VO估計方法的性能對比如表 1所示。由于各算法的測試數(shù)據(jù)集和評估性能各有差異,難以對算法性能進行精確對比,因此表中僅列出了各算法在特定測試條件下的定位誤差作為參考指標。特別強調(diào),表中所列誤差的性能指標值越小,說明算法的尺度一致性越佳,定位越準確。
表1 現(xiàn)有基于深度學習的VO估計方法的性能對比
結合表 1性能,從現(xiàn)有的成果來看,深度學習在SLAM領域取得了一定的成果。與無監(jiān)督學習方法相比,有監(jiān)督學習方法表現(xiàn)出的尺度漂移誤差更小、跟蹤魯棒性更佳。從算法的深度估計結果來說,目前提出的基于無監(jiān)督/ 自監(jiān)督的VO算法都能達到較好的預測效果。
值得一提的是,無監(jiān)督學習是通過學習數(shù)據(jù)之間的規(guī)律來提取輸入圖像的特征,因此,能學習到更加豐富多樣的圖像特征表征,在未知的場景下具有更佳的適應性和泛化能力。
自監(jiān)督學習方法既保留了傳統(tǒng)算法的特點,又融合了深度學習的優(yōu)勢,能夠較好地恢復場景的尺度,與無監(jiān)督學習相比,具有更大的優(yōu)勢。如,自監(jiān)督模型D3VO方法[38]?的跟蹤精度甚至超過了現(xiàn)有的單目深度視覺里程計或視覺慣導里程計系統(tǒng)。當然,在特定限制的任務環(huán)境中,具體可以采用哪種學習方式還需要根據(jù)具體情況來決定。
近年來,將慣性單元數(shù)據(jù)與相機的地標信息進行融合已成為構建高精度、高魯棒SLAM系統(tǒng)的重要途徑。部分現(xiàn)有基于視覺/ 慣性融合的視覺SLAM算法的總結如表 2所示。表 2中,表示平均平移誤差百分比,ATE表示絕對軌跡誤差,RE表示旋轉誤差,RMSE表示均方根誤差。不難看出,基于學習的VIO的研究雖然才起步,但與傳統(tǒng)的SLAM系統(tǒng)相比,其在定位精度、尺度一致性以及生成運動軌跡等方面的能力很突出。另外,IMU和相機之間具有較強的互補性,將兩者進行融合是提升SLAM系統(tǒng)精度和魯棒性的重要途徑。
表2 現(xiàn)有視覺慣導里程計融合算法的簡要比較
綜上所述,深度學習在SLAM領域中的實際應用效果雖然還不是很理想,但是隨著深度學習研究的深入,該領域已成為近年來的研究熱門。
?
深度學習下的視覺SLAM后端優(yōu)化
SLAM的后端優(yōu)化主要是對不同時刻視覺里程計預測得到的相機位姿信息以及局部地圖進行優(yōu)化調(diào)整。在VO中,不管是位姿估計還是建圖,都是利用相鄰幀之間的運動來完成的,這容易導致誤差逐幀累積,最終產(chǎn)生較大的累積漂移[11]。在對這些區(qū)域進行地圖重構時,將導致與同一區(qū)域已建圖不重合,出現(xiàn)重影現(xiàn)象;同時,也有必要把所有地圖數(shù)據(jù)放到一起再做一次全局的優(yōu)化,以降低系統(tǒng)各部分的誤差,提高系統(tǒng)的準確性。因此,為了降低誤差漂移對SLAM系統(tǒng)性能帶來的影響,后端優(yōu)化就顯得至關重要。
3.1 深度學習與回環(huán)檢測
在視覺SLAM領域中,回環(huán)檢測(loop closure detection)是又一個值得關注和研究的熱點問題。其主要解決機器人位姿估計的累積漂移問題,以實現(xiàn)在大規(guī)模復雜環(huán)境下的精確導航。準確的回環(huán)檢測可以進一步優(yōu)化移動機器人的運動估計,建立全局一致的地圖,反之則可能導致地圖重建失敗。因此,回環(huán)檢測算法的好壞對整個視覺SLAM系統(tǒng)精度與魯棒性的提升至關重要[11]。
早期的回環(huán)檢測方法是手工標注特征點,應用詞袋(BoW)模型來達到圖像匹配的目的。隨著深度學習、目標識別、語義分割等領域的迅速發(fā)展,研究者更傾向于使用先進技術來更好地實現(xiàn)回環(huán)檢測。2015年,國防科技大學張宏等[50]?較早地將深度學習應用在回環(huán)檢測中,利用Caffe深度學習框架下已經(jīng)提前訓練好的AlexNet模型產(chǎn)生一種適合回環(huán)檢測的描述符。該方法先將圖像輸入到CNN中,以每個中間層的輸出作為一個特征值,用來描述整幅圖像,然后利用二范數(shù)進行特征匹配來確定是否存在回環(huán)。仿真結果表明在光照變化明顯的環(huán)境下這種深度學習的特征描述符比傳統(tǒng)的BoW和隨機蕨法等方法更穩(wěn)定、魯棒性更強,并且產(chǎn)生描述符的用時更短。
自動編碼器是一種無監(jiān)督學習模型,能夠自動提取數(shù)據(jù)中的有效特征,具有較強的泛化性。近些年,該方法受到了廣泛的關注,且已成功應用于諸多領域。清華大學高翔等[51]?提出采用堆疊去噪自動編碼器(stacked denoising auto-encoder,SDA)的無監(jiān)督學習方式描述整幅圖像來進行圖像的匹配,最終得到了較好的回環(huán)檢測效果。此外,如文[52] 也是在自動編碼器結構的基礎上,以無監(jiān)督學習的方式壓縮場景數(shù)據(jù)來提取緊湊的特征表示向量。
隨著CNN訓練的飛速發(fā)展,針對光照變化、天氣變化和物體快速移動等復雜場景,有不少研究者開始考慮采用CNN網(wǎng)絡學習特征與人工設計特征相結合的方式進行場景識別。文[53] 在局部特征聚合描述子(VLAD)的基礎上進行了擴展,提出了一種端對端的場景識別NetVLAD算法。此算法將傳統(tǒng)的VLAD結構與CNN網(wǎng)絡結構相結合,利用卷積網(wǎng)絡的反向傳播對網(wǎng)絡進行算法優(yōu)化,提高了對同類別圖像的表達能力,同時大大地提高了圖像的匹配精度。Bampis等[54]?提出了新的回環(huán)檢測方法,主要通過旋轉不變和尺度不變的局部特征描述向量以及動態(tài)序列識別技術來提高系統(tǒng)的性能。除此之外,文中還引入時間一致性過濾器來進一步提升所產(chǎn)生序列的相似性度量結果。參照文[54] 的思路與方法,Memon等[55]?提出了有監(jiān)督學習與無監(jiān)督學習相結合的回環(huán)檢測方法。文中利用深度學習在特征提取方面的優(yōu)勢,引入超級字典的概念,加快了場景比較的速度。同時,結合自動編碼器對新場景進行回環(huán)檢測,提高了回環(huán)檢測的效率。
雖然,基于深度學習的回環(huán)檢測方法可以從原始數(shù)據(jù)中自動地學習特征,能更充分地表達圖像信息,對復雜的環(huán)境變化有更好的適應性和更強的魯棒性,但是,如何針對不同場景自動選擇不同隱含層的結果、如何找到更好的用于場景識別的特征、如何尋找合適的回環(huán)檢測的性能評估基準等諸多問題依然是未來研究的重點。
3.2?深度學習與全局優(yōu)化
SLAM全局優(yōu)化需要考慮的問題是如何利用不準確的關鍵幀建立起全局約束,以優(yōu)化各幀的相機位姿。為了實現(xiàn)全局優(yōu)化,可以通過建立和優(yōu)化位姿圖來求解各幀的相機位姿。位姿圖是以關鍵幀的全局位姿作為圖的節(jié)點,以關鍵幀之間的相對位姿誤差作為圖的邊的權重,通過令整個圖的所有邊的權重值總和最小,來優(yōu)化得到每個圖節(jié)點的值。也可通過另一種目前比較主流的圖優(yōu)化方法來獲得全局最優(yōu)解。不論是何種優(yōu)化方法,一般采用的求解器都是高斯-牛頓法或LM算法[11]。
深度學習的實質(zhì)是利用觀察到的相機位姿和場景表征來提取圖像特征并構建映射函數(shù)。近年來,研究者們針對如何將深度學習融入到全局優(yōu)化問題中進行了探索與嘗試,獲得了比較好的性能優(yōu)化結果。文[56] 提出的CNN-SLAM法將CNN預測的稠密深度地圖引入到直接單目SLAM法獲得的深度測量值中,該方法使得SLAM系統(tǒng)在回環(huán)檢測和圖形優(yōu)化方面具有更強的魯棒性和更高的準確性。Zhou等[57]?提出了DeepTAM學習方法,其核心在于將來自CNN的相機位姿和深度估計引入到經(jīng)典DTAM系統(tǒng)[58]?中,然后通過后端全局優(yōu)化,來實現(xiàn)更精確的相機位姿估計和場景重構。
基于無監(jiān)督學習的單目視覺里程計,由于缺少累積誤差的校正技術,在大規(guī)模里程計估計方面的精確度達不到預期目標。針對這一局限性,Li等[59]?將無監(jiān)督學習的單目VO與圖優(yōu)化后端集成在一起,提出了一種混合的視覺里程計系統(tǒng)。以時間和空間光度損失作為主要監(jiān)督信號,在系統(tǒng)后端,根據(jù)估計得到的局部閉環(huán)6自由度約束構建全局位姿圖并進行優(yōu)化,從而改善系統(tǒng)的定位精度和魯棒性。除了文[59] 的方法之外,DeepFactors算法[60]?也值得一提。文[60] 中提出的深度SLAM系統(tǒng)是將學習到的稠密地圖與3種不同類型的后端概率因子圖相結合來實現(xiàn)的。該系統(tǒng)在概率框架中整合了一致性度量、先驗學習等算法,在對位姿和深度變量進行聯(lián)合優(yōu)化的同時還能保持系統(tǒng)的實時性能。
目前,深度學習方法在全局優(yōu)化中的應用處于初步探索階段,隨著各種深入研究的解決方案的提出與實現(xiàn),深度學習在該領域的應用將會引來更多的關注?;谏疃葘W習的全局優(yōu)化方案也會得到進一步的提升和改進。
?
深度學習下的語義SLAM
語義SLAM是語義信息和視覺SLAM的相互融合,其研究的核心就是對目標物體進行檢測與識別。而深度學習算法是當前主流的物體識別算法。因此,在語義SLAM系統(tǒng)中引入深度學習成為SLAM系統(tǒng)發(fā)展的必然趨勢。
而真正意義上的語義SLAM(即語義建圖和SLAM定位相互促進)發(fā)展相對較晚。2017年,Bowman等[61]?引入了期望最大值方法來動態(tài)估計物體與觀測的匹配關系。作者把語義SLAM轉換成概率問題,利用概率模型計算出來的物體中心在圖像上重投影時應該接近檢測框的中心這一思想來優(yōu)化重投影誤差。雖然文[61] 解決了語義特征的數(shù)據(jù)關聯(lián)問題和如何用語義信息獲取路標和攝像頭位姿的問題,但是沒有考慮語義元素之間的互斥關系,以及連續(xù)多幀的時序一致性。Lianos等[62]?提出的視覺語義里程計(VSO)方法是在文[61] 的基礎上,使用距離變換將分割結果的邊緣作為約束,同時利用投影誤差構造約束條件,從而實現(xiàn)中期連續(xù)點跟蹤。
為了提高語義SLAM系統(tǒng)識別動態(tài)物體的準確性,清華大學的Yu等[63]?在2018年IROS會議上提出了一種動態(tài)環(huán)境下魯棒的語義視覺SLAM系統(tǒng)(DS-SLAM)。在DS-SLAM中,將語義分割網(wǎng)絡放在一個單獨運行的線程之中,結合語義信息和運動特征點檢測,來剔除每一幀中的動態(tài)物體,從而提高位姿估計的準確性和系統(tǒng)運行的效率。動態(tài)環(huán)境下,此系統(tǒng)降低了對動態(tài)目標的影響,極大地提高了定位精度。同時,生成的密集語義八叉樹地圖可用于執(zhí)行高級任務。但此方法要求所使用的語義網(wǎng)絡運行速度足夠快。
Kaneko等[64]?借用語義分割能將圖像中每一類物體進行分類和標注這一特點,利用語義分割產(chǎn)生的掩模來排除不可能找到正確對應的區(qū)域。在檢測特征點階段,添加了“不檢測掩蔽區(qū)域中的特征點”的操作,可以排除大部分獲得的不準確的對應關系,減小了隨機一致性采樣誤差。該方法引入了語義分割的全局信息,可以彌補視覺SLAM局部信息的不足,故具有較高的精度。
為了解決實際應用中的動態(tài)遮擋問題,文[65] 提出了一種新穎的動態(tài)分割方法,從而實現(xiàn)對相機自我運動的準確跟蹤。該方法首先將語義信息與對象級的幾何約束相結合,快速提取出場景中的靜態(tài)部分,再對靜態(tài)部分從粗到細分兩步實現(xiàn)精確跟蹤。另外,對動態(tài)部分,提出了利用分層次掩碼的動態(tài)物體掩碼策略。相比于其他動態(tài)視覺SLAM方法,文[65] 的方法在效率和動態(tài)跟蹤精度等方面都有了明顯的提升。
隨著語義分割技術的發(fā)展,借助語義信息,將數(shù)據(jù)關聯(lián)升級到物體級別,使得提升復雜場景下的識別精度成為了可能。目前,有許多研究(如文[66-69])都是基于物體級別關聯(lián)的語義SLAM算法。2019年,Yang等[66]?提出用于聯(lián)合估計相機位姿和動態(tài)物體軌跡的CubeSLAM方法。該算法針對靜態(tài)物體和動態(tài)物體分別采用不同的關聯(lián)方法:對于靜態(tài)物體,將SLAM提取到的特征點和2D檢測框檢測的對象關聯(lián)起來;而對于動態(tài)物體,直接用稀疏光流算法來跟蹤像素,動態(tài)特征的3D位置通過三角化測量來得到。數(shù)據(jù)關聯(lián)過程中,采用立方體在地圖中表示物體。除了上述描述,還有學者提出用橢圓體(特殊雙曲面)來表示物體[67-68]。但是橢圓體的物體表示只是一種近似,它的檢測框和實際測量的檢測框不可能完全重合,因此QuadricSLAM算法[67]?對精度提升并沒有幫助,但采用CubeSLAM方法對其精度提升很大。DSP-SLAM算法[69]的基礎框架也是把一個物體級的3維重建算法加到一個傳統(tǒng)SLAM算法中,其數(shù)據(jù)關聯(lián)還是要用到特征點,也是在地圖優(yōu)化中加入物體與相機以及物體與地圖點的約束。
在復雜多變的環(huán)境下,基于深度學習的語義信息具有光線不變性,因此語義分割下的定位比較穩(wěn)定[70-71]。如,Stenborg等[70]?通過結合深度學習去解決SLAM中的位置識別問題。其核心思想是在已有3D地圖的基礎上利用圖像語義分割后得到的描述子代替?zhèn)鹘y(tǒng)描述子,然后再去建模,同時考慮2D點到3D點的映射關系。
雖然對語義SLAM已有不少初步探索,但由于其發(fā)展較晚,因此許多工作還僅處于起步階段,很多問題還沒有考慮,但可以預見未來幾年這方面的研究會越來越多。
?
深度學習下的不確定性估計
盡管深度神經(jīng)網(wǎng)絡在無人駕駛車輛控制或醫(yī)學圖像分析等高風險領域非常有吸引力,但它們在重視安全的現(xiàn)實生活中的應用仍然有限。而造成這種限制的主要原因是模型給出的預測結果并不總是可靠的。例如,在無人駕駛等對安全性要求較高的領域中,完全依賴深度模型進行決策有可能導致災難性的后果。為此,有必要對基于深度學習的移動機器人的不確定性進行預測,以確保安全性。
一般地,模型中預測的不確定性大致可分為由模型引起的認知不確定性(模型不確定性)和由數(shù)據(jù)引起的任意不確定性(數(shù)據(jù)不確定性)[10]。近年來,很多研究者對捕捉深度神經(jīng)網(wǎng)絡(DNN)中的不確定性表現(xiàn)出越來越大的興趣。貝葉斯模型就是預測認知不確定性的重要方法之一[72]。該方法使用隨機失活方法(dropout方法)來訓練DNN,訓練得到的均值是預測值,而方差就是不確定度。本節(jié)重點討論定位與建圖過程中的不確定性估計和運動跟蹤過程中的不確定性估計,以及這些不確定性估計的用途,表 3對現(xiàn)有的深度學習下不確定性估計算法進行了總結。
表3 現(xiàn)有的深度學習下不確定性估計算法
在視覺SLAM系統(tǒng)中,定位或場景識別的不確定性是影響系統(tǒng)可信度的重要因素。語義分割是進行長期視覺定位或者場景理解的重要工具,有意義的不確定性度量對于決策至關重要。隨著技術的發(fā)展,越來越多的工作對上述問題進行了探討(如文[73-76]),并獲得了較理想的性能。
文[73] 提出了一種基于信息理論的視覺SLAM特征選擇方法SIVO(semantically informed visual odometry and mapping),該方法將語義分割和神經(jīng)網(wǎng)絡不確定性引入到特征選擇過程中,利用貝葉斯神經(jīng)網(wǎng)絡把特征的分類熵加到新的特征中,每一個被選擇的特征都顯著降低了車輛狀態(tài)的不確定性,并多次被檢測為靜態(tài)對象(建筑物、交通標志等),且具有較高的置信度。根據(jù)這種選擇策略生成稀疏地圖,可以促進長期定位。
貝葉斯SegNet網(wǎng)絡[74]?能夠通過對場景模型不確定性的度量來預測場景像素級的不確定性,其核心思想是在SegNet網(wǎng)絡結構的基礎上增加隨機失活層與貝葉斯決策。算法通過多次的前向運算得到多個輸出結果,對這些結果求均值得到最終預測的分割結果;求對應位置像素的方差,得到模型的不確定性圖。此外,該算法還可以使用蒙特卡洛算法來生成像素類標簽的后驗分布,并在多個預測的結果中找到最優(yōu)的結果。
在實際應用中除了需要進行模型預測之外,也需要預測結果的置信度。利用神經(jīng)網(wǎng)絡學習給定輸入的不確定性估計已受到越來越多研究者的重視。2018年,Wang等[77]?從深度學習的角度出發(fā)探討了視覺里程計估計的不確定性,針對基于深度遞歸卷積神經(jīng)網(wǎng)絡的單目VO,提出了一種端到端的序列間概率視覺里程計(ESP-VO)框架。通過這種方法,在不引入太多額外計算的情況下,可以有效地預測運動變換的不確定性。為了驗證算法的有效性,文[77] 在代表駕駛、飛行和步行情景的幾個數(shù)據(jù)集上進行了廣泛的驗證實驗。結果表明,基于這些最小化誤差函數(shù)進行全局優(yōu)化能減少系統(tǒng)的累積漂移,與其他先進的方法相比,所提出的ESP-VO具有競爭優(yōu)勢。
鑒于單目自監(jiān)督網(wǎng)絡在深度估計時不需要深度標注,因而越來越多的研究者開始致力于理解和量化自監(jiān)督網(wǎng)絡預測中深度不確定性的估計。2020年,Poggi等[78]?提出了一種新穎的不確定性估計方法,該方法用到2個網(wǎng)絡:一個網(wǎng)絡用于重建,主要利用翻轉圖像輸入的方法和多個不同的模型對同一張圖片的深度不確定性進行預測;另一個網(wǎng)絡用來模擬重建網(wǎng)絡生成的分布,通過自監(jiān)督的方式學習一個可以預測不確定度的模型,其輸出為不確定度。在位姿未知的情況下,該方法可以始終提高深度的估計準確度。另外,文[79] 提出一種自監(jiān)督的概率歸一化的卷積網(wǎng)絡,該方法可同時對深度與不確定度進行預測。一方面,對輸入數(shù)據(jù)的不確定度進行估計,使得該網(wǎng)絡可以基于數(shù)據(jù)可靠性進行針對性的學習;另一方面,提出概率歸一化的卷積神經(jīng)網(wǎng)絡(NCNN),將訓練過程轉變?yōu)樽畲蠡迫还烙媶栴},實現(xiàn)對輸出不確定度的估計。
綜上所述,在視覺SLAM中引入不確定估計后,可知模型對于預測結果的置信程度,有助于提高模型在實際場景環(huán)境中的應用性能。但目前關于該理論的研究才剛剛起步,其學習的方法較少,在實際場景下的適應性還有待進一步驗證。
?
未來發(fā)展趨勢
盡管基于深度學習的SLAM技術在精度和魯棒性上已經(jīng)表現(xiàn)出比傳統(tǒng)SLAM方法更優(yōu)的性能,解決方案也變得更有吸引力。但目前的研究仍處于初級階段,所設計的模型還存在不足,故無法完全解決當前的問題。為了提高實際應用中的適用性和安全性,研究人員還將面臨許多挑戰(zhàn)。為此,文中討論了幾點可能助力該領域進一步發(fā)展的思路。
1) 適應性更強的數(shù)據(jù)集標注
深度學習嚴重依賴于海量的數(shù)據(jù),如果想用這些數(shù)據(jù)來訓練深度學習的模型,首先需要對它們進行處理與標注。從理想的角度看,標注的數(shù)據(jù)數(shù)量越多,訓練得到的模型效果也會越好。但是,在實際標注過程中,不但需要結合實際的硬件資源與時間,還需要注意數(shù)據(jù)量的增大給模型效果提升帶來的負面影響。數(shù)據(jù)標注的質(zhì)量將直接影響訓練得到的深度學習模型的可靠性。
綜上所述,提高數(shù)據(jù)標注的質(zhì)量也成為了該領域的研究重點。數(shù)據(jù)標注是一個耗費成本與時間的過程,經(jīng)濟、高效地完成數(shù)據(jù)標注,這是研究人員必須面對和解決的難題。如何在成本與質(zhì)量這兩者之間找到一個平衡就顯得尤為重要。同時,期望未來能夠利用SLAM方法來構建圖像之間存在對應關系的大規(guī)模的數(shù)據(jù)集,這可能有助于解決數(shù)據(jù)標注問題。
2) 深度學習模型的拓展
目前,許多基于深度學習的模型,如卷積神經(jīng)網(wǎng)絡、長短期記憶網(wǎng)絡和自動編碼器等都是端到端的學習方式。盡管這些模型的快速發(fā)展提升了系統(tǒng)的魯棒性和準確性,但在實際應用場景中,許多數(shù)據(jù)是從非歐氏空間生成的,而傳統(tǒng)的端到端的深度學習方法對此類數(shù)據(jù)的處理能力卻難以使人滿意。
近幾年,越來越多的學者對深度學習方法在圖數(shù)據(jù)上的擴展產(chǎn)生了濃厚的興趣。用于處理圖數(shù)據(jù)的圖神經(jīng)網(wǎng)絡(graph neural network)[80]?由此應運而生。從本質(zhì)上講,圖神經(jīng)網(wǎng)絡是幾何深度學習的一部分,主要是將端到端學習與歸納推理相結合,研究具有結構屬性、拓撲性質(zhì)的數(shù)據(jù)的學習和預測任務。因此,對于圖神經(jīng)網(wǎng)絡結構的深入研究有助于解決深度學習無法處理的關系推理和組合泛化的問題,是未來一個新的研究熱點。
3) 多傳感器融合算法的研究
在現(xiàn)實生活中,移動機器人或硬件設備往往不僅僅只攜帶一種傳感器,而是多種傳感器相互配合使用。不同傳感器的最遠探測距離、精度、功能等各不相同,因此在使用多種傳感器的情況下,要想保證系統(tǒng)決策的可靠性和快速性,就必須對傳感器進行信息融合。例如,手機VIO系統(tǒng)就是通過融合IMU數(shù)據(jù)和相機信息,彌補了單一傳感器的不足,為實現(xiàn)SLAM的小型化和低成本提供了行之有效的研究方向。DeLS-3D設計[81]?融合了相機視頻、運動傳感器(GPS/IMU)等數(shù)據(jù)和3維語義地圖,可以提升SLAM系統(tǒng)的魯棒性和效率。上述例子表明,將多種具有互補性的傳感器進行融合是提升SLAM系統(tǒng)精度和魯棒性的重要途徑。
多傳感器融合的軟硬件難以分離。當前,在硬件層面實現(xiàn)多傳感器融合并不難,重點和難點在于如何實現(xiàn)算法和傳感器之間的融合。另外,動態(tài)與未知環(huán)境下的融合問題也將是多傳感器融合面臨的另一個難題。相信隨著技術的不斷發(fā)展,算法融合問題將會得到很好的解決,多傳感器融合技術也許很快就會在實際生活中得到廣泛應用。
?
結論
從已有的大量研究可以看出,基于深度學習的SLAM方法雖然是一個剛起步且在不斷發(fā)展的研究領域,但是已逐漸引起了研究者的廣泛關注。
到目前為止,深度學習與SLAM的結合已經(jīng)在視覺里程計、場景識別與全局優(yōu)化等各種任務中取得了顯著的成果。同時,由于深度神經(jīng)網(wǎng)絡具有強大的非線性擬合能力,可以任意逼近人工建模難以模擬的非線性函數(shù),因此在實際應用中魯棒性更佳。
此外,語義信息與傳統(tǒng)視覺SLAM算法的集成有助于提高對圖像特征的理解,對構建高精度的語義圖也產(chǎn)生了重要影響。基于深度學習的SLAM技術的快速發(fā)展為移動機器人向實用化、系列化、智能化發(fā)展提供了助力。
審核編輯:黃飛
?
評論
查看更多