陳濤 范林坤 李旭川 郭叢帥
(長(zhǎng)安大學(xué),西安 710064)
主題詞:視覺里程計(jì) 深度學(xué)習(xí) 智能車輛 位置信息
隨著車輛逐漸向自主化、無人化方向發(fā)展,車輛的位置信息成為其執(zhí)行決策時(shí)的重要參考因素。智能車的定位可分為絕對(duì)定位和相對(duì)定位,其中相對(duì)定位法主要包括慣性導(dǎo)航和里程計(jì)法,2種方法都不可避免地存在誤差累積且難以消除。慣性導(dǎo)航效果的優(yōu)劣受慣性測(cè)量單元(Inertial Measurement Unit,IMU)精度的影響較大,高精度IMU 的成本較高。隨著計(jì)算機(jī)視覺的發(fā)展,通過視覺采集到的信息不但可以滿足車輛定位的需求,而且可以進(jìn)行車輛和行人的識(shí)別,同時(shí),視覺傳感器成本較低、體積較小、布置方便,因此,視覺方案是同時(shí)考慮成本、穩(wěn)定性、精度和使用復(fù)雜度時(shí)的最佳方案。
視覺里程計(jì)(Visual Odometry,VO)是無接觸的位姿估計(jì)過程,根據(jù)單個(gè)或多個(gè)相機(jī)的輸入得到系統(tǒng)每一時(shí)刻之間的相對(duì)位姿,同時(shí)可以根據(jù)輸入的圖像序列恢復(fù)場(chǎng)景的空間結(jié)構(gòu)。1980年,Moravec 等人首次提出從連續(xù)的圖像中估計(jì)相機(jī)位姿的思想[1]。Matthies 等人于1985年提出了經(jīng)典的視覺里程計(jì)框架[2],該框架主要包括特征提取、匹配和幀間位姿估計(jì),并一直作為視覺里程計(jì)的主要框架沿用至今,根據(jù)這一框架發(fā)展得到的VO 系統(tǒng)稱為基于模型的VO。根據(jù)圖像信息利用方式的不同,基于模型的VO 可以分為直接法VO 和特征法VO?,F(xiàn)有表現(xiàn)較好的VO 系統(tǒng)多是基于模型的[3],但是這些VO 系統(tǒng)必須被準(zhǔn)確標(biāo)定,而且要運(yùn)行在光照穩(wěn)定、紋理充足的環(huán)境中,同時(shí),在大場(chǎng)景中的魯棒性較低,無法對(duì)場(chǎng)景信息進(jìn)行語義理解,另外,單目VO因其尺度不確定性而無法得到車輛的真實(shí)運(yùn)動(dòng)尺度。
目前,深度學(xué)習(xí)在物體識(shí)別、分類、同步定位與地圖構(gòu)建(Simultaneous Location and Mapping,SLAM)的回環(huán)檢測(cè)和語義分割等方面都取得了不錯(cuò)的效果[4]。相較于人工設(shè)計(jì)特征,深度學(xué)習(xí)以端到端的方式從大量數(shù)據(jù)中學(xué)習(xí)特征,得到魯棒性更好、效率更高的特征,從而能夠有效解決基于模型的VO 在光照條件惡劣的情況下魯棒性低、回環(huán)檢測(cè)準(zhǔn)確率低、動(dòng)態(tài)場(chǎng)景中精度不高、無法對(duì)場(chǎng)景進(jìn)行語義理解的問題,因此,基于深度學(xué)習(xí)的VO是VO系統(tǒng)的重要發(fā)展方向之一。
很多學(xué)者針對(duì)VO系統(tǒng)進(jìn)行了綜述:李宇波等人綜述了VO的發(fā)展過程,將VO分為單目、雙目、多目,從魯棒性、實(shí)時(shí)性和精確性3個(gè)方面對(duì)VO進(jìn)行分析[5];Amani等人將當(dāng)時(shí)的VO 系統(tǒng)進(jìn)行分類,根據(jù)系統(tǒng)的輸入、輸出特性分析其特點(diǎn)[6];Mohammad等人將VO與其他的定位方式進(jìn)行比較,并將當(dāng)時(shí)效果較好的VO 進(jìn)行對(duì)比,分析了VO 的應(yīng)用難點(diǎn)和存在的挑戰(zhàn)[7];He 等人綜述了單目VO的發(fā)展現(xiàn)狀與代表性的VO系統(tǒng)[8];李傳立等人將基于模型的VO分特征法和直接法進(jìn)行了綜述[9]。但是這些綜述均面向基于模型的VO,而沒有考慮基于深度學(xué)習(xí)的VO。由于VO 是視覺同步定位與地圖構(gòu)建(Visual Simultaneous Location and Mapping,VSLAM)的組成部分,一些基于深度學(xué)習(xí)的SLAM的綜述中會(huì)提到基于深度學(xué)習(xí)的VO[10-14],但將重點(diǎn)集中于SLAM 系統(tǒng),對(duì)基于深度學(xué)習(xí)的VO 的綜述不夠全面。本文針對(duì)有監(jiān)督、無監(jiān)督和模型法與學(xué)習(xí)結(jié)合的視覺里程計(jì),主要從幀間運(yùn)動(dòng)估計(jì)、系統(tǒng)的實(shí)時(shí)性、魯棒性等方面對(duì)基于深度學(xué)習(xí)的智能車輛VO系統(tǒng)進(jìn)行分析,綜述基于深度學(xué)習(xí)的智能車輛VO的發(fā)展現(xiàn)狀、現(xiàn)存的不足與發(fā)展趨勢(shì),為基于深度學(xué)習(xí)的智能車輛VO和VSLAM前端的發(fā)展提供建議。
基于模型的VO 主要包括相機(jī)標(biāo)定、圖像特征匹配、相機(jī)位姿估計(jì),當(dāng)考慮VO的全局位姿信息時(shí),還包括相機(jī)位姿的全局優(yōu)化。如果將整幅圖像視為一個(gè)矩陣來考慮,不但增大了計(jì)算量,同時(shí)也很難準(zhǔn)確估計(jì)相機(jī)位姿,因此一般考慮圖像的部分像素信息,并據(jù)此估計(jì)相機(jī)位姿。根據(jù)圖片像素信息的2種不同利用方式,將基于模型的VO 分為特征法VO 和直接法VO,圖1 所示為基于模型的車輛VO位姿估計(jì)過程,A0、A1分別為空間點(diǎn)A在I0、I1幀上的投影。
圖1 基于模型的車輛VO位姿估計(jì)
特征法VO首先在圖像中選取特征,這些特征在相機(jī)視角發(fā)生少量變化時(shí)保持不變,于是可以在各圖像中找到相同的點(diǎn),在此基礎(chǔ)上對(duì)相機(jī)位姿進(jìn)行估計(jì)。一組好的特征對(duì)位姿估計(jì)的最終表現(xiàn)至關(guān)重要,其中角點(diǎn)相較于邊緣和區(qū)塊更容易區(qū)分,是特征法VO 的研究重點(diǎn)。角點(diǎn)提取算法有很多,如Harris 角點(diǎn)、FAST 角點(diǎn)、GFTT 角點(diǎn)等[8]。為了增加角點(diǎn)的可重復(fù)性、可區(qū)別性、高效率和本地性,研究者設(shè)計(jì)了更多穩(wěn)定的圖像局部特征,最具代表性的有SIFT(Scale Invariant Feature Trans?form)、SURF(Speed-up Robust Features)、ORB(Oriented FAST and Rotated BRIEF)等[8]。
根據(jù)已經(jīng)匹配好的特征估計(jì)相機(jī)位姿時(shí),由于相機(jī)類型和特征點(diǎn)不同,相機(jī)位姿估計(jì)算法也不相同。當(dāng)相機(jī)為單目相機(jī)時(shí),已知2D 的像素坐標(biāo),根據(jù)所有的2D匹配點(diǎn)使用對(duì)極幾何法計(jì)算相機(jī)的相對(duì)運(yùn)動(dòng);當(dāng)相機(jī)為雙目或深度相機(jī)時(shí),已知特征點(diǎn)的3D坐標(biāo),通常用迭代最近點(diǎn)(Iterative Closest Point,ICP)算法估計(jì)相機(jī)位姿;當(dāng)已知一些特征點(diǎn)在世界坐標(biāo)系下的3D坐標(biāo)和像素坐標(biāo)時(shí),常用PnP(Perspective-n-Point)、EPnP(Efficient Perspective-n-Point)、P3P(Perspective-Three-Point)算法。此外,為了使得到的位姿達(dá)到全局最優(yōu),常用光束法平差(Bundle Adjustment,BA)算法或?yàn)V波算法對(duì)相機(jī)位姿進(jìn)行全局優(yōu)化。
MonoSLAM 是由Davison 等發(fā)明的第一個(gè)成功應(yīng)用單目攝像頭的純視覺SLAM 系統(tǒng)[15],系統(tǒng)以擴(kuò)展卡爾曼濾波為后端,追蹤前端是非常稀疏的特征點(diǎn);PTAM(Parallel Tracking and Mapping)是首個(gè)以優(yōu)化為后端的SLAM系統(tǒng),該系統(tǒng)首次區(qū)分出前、后端的概念,同樣引領(lǐng)了后期很多VSLAM 的設(shè)計(jì)[16];Mur-Artal 等人提出的ORB-SLAM 是特征點(diǎn)法SLAM 的集大成者[17],首次提出了基于ORB的BOW(Bag of Words)回環(huán)檢測(cè)方法。
特征點(diǎn)法VO 因其較強(qiáng)的魯棒性和較高的精確性成為目前主流的VO,但是特征的提取與描述子的計(jì)算耗時(shí)較多,使用特征時(shí)忽略了圖片的其他信息,VO的運(yùn)行環(huán)境遇到特征缺失的情況時(shí)無法找到足夠的特征計(jì)算相機(jī)運(yùn)動(dòng)是特征法VO的主要缺點(diǎn)。
直接法VO是為了克服特征點(diǎn)法VO的不足而存在的,直接法根據(jù)像素的亮度信息估計(jì)相機(jī)運(yùn)動(dòng),可以不尋找特征和描述子,既節(jié)省了計(jì)算時(shí)間,也避免了特征缺失的情況,只要場(chǎng)景中存在明暗變化,直接法就能工作。根據(jù)使用像素?cái)?shù)量的多少,直接法分為稀疏、稠密和半稠密3種。與特征點(diǎn)法只能重構(gòu)稀疏特征點(diǎn)相比,直接法還具有恢復(fù)稠密和半稠密結(jié)構(gòu)的能力。
LSD-SLAM[18-19]是Engel 等為了構(gòu)建半稠密三維地圖提出的算法,該算法采用直接法進(jìn)行數(shù)據(jù)關(guān)聯(lián),由深度估計(jì)、跟蹤和建圖3個(gè)線程組成。該方法對(duì)圖像點(diǎn)建立隨機(jī)深度圖,并在后續(xù)幀中對(duì)深度進(jìn)行調(diào)整,直至收斂。該方法的初始化不需要多視圖幾何約束,不會(huì)陷入多視圖幾何退化的困境,但初始化過程需要多個(gè)關(guān)鍵幀深度圖才會(huì)收斂。直接稀疏里程計(jì)(Direct Sparse Odometry,DSO)[20]是直接法的拓展,其使用光度值誤差最小化幾何和光度學(xué)參數(shù)。DSO對(duì)圖像中有梯度、邊緣或亮度平滑變化的點(diǎn)均勻采樣以降低計(jì)算量,并且對(duì)光度學(xué)模型校正、曝光時(shí)間、透鏡光暈和非線性響應(yīng)都進(jìn)行了校準(zhǔn)。為了提高速度、降低計(jì)算量,DSO 使用滑動(dòng)窗口方法,對(duì)固定幀數(shù)的位姿進(jìn)行優(yōu)化;DPPTAM(Dense Piecewise Planar Tracking and Mapping)[21]基于超像素對(duì)平面場(chǎng)景進(jìn)行稠密重建,該方法對(duì)圖像中梯度明顯的點(diǎn)進(jìn)行半稠密重建,然后對(duì)圖像中其他點(diǎn)進(jìn)行超像素分割,通過最小化能量函數(shù)完成稠密重建。
此外,直接法的缺點(diǎn)也很明顯:完全依靠梯度搜索達(dá)到降低損失函數(shù)的目的,但圖像是強(qiáng)烈的非凸函數(shù),這很容易使得優(yōu)化算法陷入局部最優(yōu);單個(gè)像素的區(qū)分度不明顯;灰度不變性是個(gè)很強(qiáng)的假設(shè),在很多情況下不會(huì)滿足。
基于模型的VO 已經(jīng)可以達(dá)到很好的效果。以O(shè)RBSLAM為代表的特征法VO和以DSO為代表的直接法VO都可以在特定環(huán)境下達(dá)到很高的精度,同時(shí)保證系統(tǒng)的實(shí)時(shí)性,但是在缺少特征、光照變化明顯、車載相機(jī)運(yùn)動(dòng)劇烈的惡劣環(huán)境中,這些系統(tǒng)的魯棒性很難得到保證。深度學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域的成功應(yīng)用給了研究者們一些啟示,利用深度學(xué)習(xí)的方法可以從輸入圖像中自動(dòng)提取特征,相較于人工設(shè)計(jì)的特征,其充分利用了圖像的信息。因此,通過提高對(duì)環(huán)境的學(xué)習(xí)能力來提高VO的魯棒性和精度是一條有效的解決途徑,并已經(jīng)成為現(xiàn)階段VO研究路線的一個(gè)重要分支。圖2所示為3種視覺里程計(jì)框架。
圖2 3種視覺里程計(jì)框架
基于深度學(xué)習(xí)的VO 以端到端的方式進(jìn)行幀間位姿估計(jì),輸入為圖像序列,輸出是圖像的相對(duì)位姿,包括位移和旋轉(zhuǎn),位姿估計(jì)效果往往取決于網(wǎng)絡(luò)的架構(gòu)和損失函數(shù)的形式。卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)是位姿估計(jì)網(wǎng)絡(luò)中常用的網(wǎng)絡(luò)結(jié)構(gòu),主要由卷積層、池化層、全連接層組成,其中卷積層是CNN的核心,不同的卷積核從圖像中自動(dòng)提取不同的特征,得到的特征可以更充分地代表圖像的信息。由于車載相機(jī)的位姿變化具有連續(xù)性,循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)也已經(jīng)用于位姿估計(jì)網(wǎng)絡(luò)。RNN通過反饋循環(huán)來保持隱藏狀態(tài)的記憶,并對(duì)當(dāng)前輸入與之前狀態(tài)間的依賴關(guān)系進(jìn)行建模。訓(xùn)練模型時(shí)根據(jù)訓(xùn)練數(shù)據(jù)是否帶有標(biāo)簽,可以將基于深度學(xué)習(xí)的VO分為有監(jiān)督的VO、無監(jiān)督的VO和半監(jiān)督學(xué)習(xí)的VO。
基于學(xué)習(xí)的VO需要大量的數(shù)據(jù)對(duì)搭建的模型進(jìn)行訓(xùn)練。KITTI數(shù)據(jù)集由德國卡爾斯魯厄理工學(xué)院和豐田美國技術(shù)研究院聯(lián)合制作,是目前國際上最大的自動(dòng)駕駛場(chǎng)景下的計(jì)算機(jī)視覺算法評(píng)測(cè)數(shù)據(jù)集,用于評(píng)測(cè)立體圖像(Stereo)、光流(Optical Flow)、視覺測(cè)距(Visual Odometry)、3D物體檢測(cè)(3D Object Detection)和3D跟蹤(3D Object Tracking)等計(jì)算機(jī)視覺技術(shù)在車載環(huán)境下的性能;Cityscapes 數(shù)據(jù)集采集了50個(gè)城市不同季節(jié)的街道車輛運(yùn)行數(shù)據(jù),目標(biāo)是用于場(chǎng)景語義理解;Mapillary 數(shù)據(jù)集是由位于瑞典馬爾默的公司Mapillary AB開發(fā)的,用來分享含有地理標(biāo)記照片的服務(wù),其創(chuàng)建者希望利用眾包的方式將全世界(不僅是街道)以照片的形式存儲(chǔ);Comma.ai’s Driving Dataset的目的是構(gòu)建低成本的自動(dòng)駕駛方案,目前主要應(yīng)用場(chǎng)景是使用改裝手機(jī)來輔助自動(dòng)駕駛,開源部分主要是行車記錄儀的數(shù)據(jù);Apolloscape是百度的自動(dòng)駕駛數(shù)據(jù)集,有很多復(fù)雜場(chǎng)景的道路。目前,智能車數(shù)據(jù)集以視頻和圖片為主,隨著越來越多公司的加入和眾包方式的應(yīng)用,公開的數(shù)據(jù)集會(huì)越來越豐富。表1列舉了部分主要的智能車數(shù)據(jù)集。
表1 部分主要智能車數(shù)據(jù)集
A.Kendal 等人于2015 年提出的PoseNet 是早期利用深度學(xué)習(xí)進(jìn)行位姿估計(jì)的典型代表[22],PoseNet 網(wǎng)絡(luò)使用CNN 進(jìn)行相機(jī)位姿估計(jì),通過真實(shí)相機(jī)位姿的數(shù)據(jù)集進(jìn)行訓(xùn)練,其使用的損失函數(shù)為:
式中,x和q分別為CNN 估計(jì)的相機(jī)的三維坐標(biāo)和旋轉(zhuǎn)四元數(shù);分別為相機(jī)的真實(shí)三維坐標(biāo)和旋轉(zhuǎn)四元數(shù);λ為三維坐標(biāo)和位姿損失函數(shù)的平衡因子。
經(jīng)過充分訓(xùn)練后,PoseNet 的位姿估計(jì)精度與基于模型的VO相當(dāng)。
為了確定位姿估計(jì)的不確定性,Kedall 等人在PoseNet 的基礎(chǔ)上進(jìn)一步增加Dropout 層,提出了Bayesian PoseNet[23],在這個(gè)網(wǎng)絡(luò)中平衡因子λ的選擇同樣至關(guān)重要,之后又在PoseNet 的基礎(chǔ)上提出了一種混合網(wǎng)絡(luò)[24],這種網(wǎng)絡(luò)在訓(xùn)練過程中可以自動(dòng)調(diào)整平衡因子λ,不但使網(wǎng)絡(luò)的性能得到提升,而且可以得到網(wǎng)絡(luò)的不確定性。
Oliveira 等人構(gòu)建了一個(gè)度量網(wǎng)絡(luò),進(jìn)行幀間位姿估計(jì)和拓?fù)渚W(wǎng)絡(luò)關(guān)系學(xué)習(xí),對(duì)相機(jī)進(jìn)行定位[25]。度量網(wǎng)絡(luò)將軌跡分割成有限的位置點(diǎn)的集合,利用CNN 來學(xué)習(xí)拓?fù)渚W(wǎng)絡(luò)間的關(guān)系,通過將該網(wǎng)絡(luò)與自定位網(wǎng)絡(luò)相結(jié)合,系統(tǒng)表現(xiàn)出了很好的定位特性。DeTone 等人提出的HomographNet用CNN來預(yù)測(cè)雙目圖像的單應(yīng)性矩陣參數(shù)[26],使用大量數(shù)據(jù)進(jìn)行長(zhǎng)時(shí)間訓(xùn)練后,網(wǎng)絡(luò)的性能優(yōu)于基于ORB特征點(diǎn)估計(jì)的單應(yīng)性矩陣參數(shù)算法。
2017年,Wang等人提出的DeepVO單目視覺測(cè)距系統(tǒng)[27]是有監(jiān)督學(xué)習(xí)VO 的里程碑成果,之后的很多研究是以此為基礎(chǔ)進(jìn)行的。該系統(tǒng)中時(shí)間圖像序列通過長(zhǎng)短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)模塊引入RCNN(Recurrent Convolution Neuro Network),以端到端的方式訓(xùn)練RCNN估計(jì)攝像機(jī)的運(yùn)動(dòng),網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。試驗(yàn)結(jié)果表明,該系統(tǒng)的精度和魯棒性在當(dāng)時(shí)的VO中有很強(qiáng)的競(jìng)爭(zhēng)力。同時(shí),Wang等人在Costante等人的研究基礎(chǔ)上,通過改善DeepVO的網(wǎng)絡(luò)結(jié)構(gòu)實(shí)現(xiàn)了估計(jì)系統(tǒng)不確定性的功能[28]。Melekhovetal等人在DeepVO的基礎(chǔ)上利用CNN提出了相機(jī)攝影預(yù)估系統(tǒng)[29]。Turan 等人提出了類似于DeepVO 的Deep EndoVO[30],并將其應(yīng)用于軟骨機(jī)器人領(lǐng)域[31],取得了不錯(cuò)的效果。基于學(xué)習(xí)的方法總是存在泛化的問題,為了提高基于有監(jiān)督學(xué)習(xí)VO的泛化能力,Saputra等將課程學(xué)習(xí)(即通過增加數(shù)據(jù)復(fù)雜性來訓(xùn)練模型)和幾何損失約束[32]加入到DeepVO中,知識(shí)提煉(即通過教一個(gè)較小的模型來壓縮大模型)也被應(yīng)用到該框架中,以減少網(wǎng)絡(luò)參數(shù)的數(shù)量,使其更適合在移動(dòng)設(shè)備上進(jìn)行實(shí)時(shí)操作[33]。
圖3 DeepVO的網(wǎng)絡(luò)架構(gòu)[27]
Ummenhofer 等人利用一系列編碼-解碼網(wǎng)絡(luò)提出了有監(jiān)督的DeMoN 系統(tǒng)[34]。該系統(tǒng)專門設(shè)計(jì)了迭代網(wǎng)絡(luò),可以同時(shí)估計(jì)相機(jī)運(yùn)動(dòng)、圖像景深、場(chǎng)景平面和光流,但需要大量標(biāo)記有相關(guān)標(biāo)簽的數(shù)據(jù)進(jìn)行訓(xùn)練。Peretroukhin等人沒有直接使用深度神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)相機(jī)的姿勢(shì)[35],而是使用基于模型的幾何估計(jì)器進(jìn)行位姿預(yù)測(cè),提出了DPC-Net,然后使用CNN 進(jìn)行預(yù)測(cè)位姿校正,也就是對(duì)提出的CNN進(jìn)行訓(xùn)練,從基于模型的估計(jì)器中學(xué)習(xí)位姿真實(shí)值與預(yù)測(cè)值之間的誤差,同時(shí),該網(wǎng)絡(luò)也可以減少相機(jī)參數(shù)標(biāo)定帶來的影響。
Costante 等人提出了一種CNN 體系結(jié)構(gòu),稱為L(zhǎng)SVO[36],該網(wǎng)絡(luò)將時(shí)間圖像對(duì)作為輸入,以端到端的形式進(jìn)行訓(xùn)練。LS-VO 由一個(gè)自動(dòng)編碼器網(wǎng)絡(luò)組成,用于對(duì)光流的表示方式進(jìn)行學(xué)習(xí),用一個(gè)位姿估計(jì)網(wǎng)絡(luò)來預(yù)測(cè)攝像機(jī)的位姿,但是沒有解決尺度漂移的問題。為了解決這個(gè)問題,F(xiàn)rost 等人采用CNN 從連續(xù)的視頻幀中進(jìn)行速度回歸[37],通過將估計(jì)速度進(jìn)一步集成到集束調(diào)整中,成功實(shí)現(xiàn)了尺度漂移校正。
對(duì)比以上研究可以發(fā)現(xiàn),有監(jiān)督學(xué)習(xí)VO的基本思路為通過使用有標(biāo)簽的數(shù)據(jù)集訓(xùn)練神經(jīng)網(wǎng)絡(luò),得到利用圖片信息映射相機(jī)的位姿變化信息的網(wǎng)絡(luò)結(jié)構(gòu),從而實(shí)現(xiàn)定位。得益于機(jī)器學(xué)習(xí)技術(shù)的發(fā)展和芯片計(jì)算能力的提高,這些端到端的學(xué)習(xí)方法可以直接從原始圖像中自動(dòng)學(xué)習(xí)相機(jī)位姿變換,并且可以達(dá)到甚至超越基于模型的VO的效果。但是,有監(jiān)督學(xué)習(xí)的方法需要大量有標(biāo)簽的數(shù)據(jù)來訓(xùn)練網(wǎng)絡(luò),而對(duì)數(shù)據(jù)集進(jìn)行標(biāo)注需要大量工作,這限制了其應(yīng)用范圍。
基于無監(jiān)督學(xué)習(xí)的VO不需要對(duì)數(shù)據(jù)進(jìn)行標(biāo)注,具有更好的適應(yīng)性和泛化能力,是一個(gè)重要的研究方向。
由于受到圖像仿射變換技術(shù)(Spatial Transformer)的啟發(fā)[38],與VO 相關(guān)的無監(jiān)督深度學(xué)習(xí)方法主要集中在深度估計(jì)領(lǐng)域。Builtuponit 等人利用立體圖像對(duì)的左右光度約束提出了一種無監(jiān)督深度估計(jì)方法[39],之后R.Garg 等人采用左右目的光度誤差作為損失函數(shù),通過優(yōu)化左右視圖的仿射關(guān)系進(jìn)一步對(duì)該算法進(jìn)行優(yōu)化[40]。在此基礎(chǔ)上,Zhou等人利用單目圖片對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,可以得到含有絕對(duì)尺度的相機(jī)運(yùn)動(dòng)[41]。這些是早期的通過無監(jiān)督方法估計(jì)相機(jī)運(yùn)動(dòng)的方法,展示出了無監(jiān)督方法在相機(jī)位姿估計(jì)中的潛力。
Zhou等人提出了一種無監(jiān)督深度學(xué)習(xí)的自我運(yùn)動(dòng)和深度估計(jì)系統(tǒng)[41],試驗(yàn)結(jié)果表明,系統(tǒng)性能與有監(jiān)督的方法相當(dāng)。但是,由于使用的是單目相機(jī),系統(tǒng)無法恢復(fù)運(yùn)動(dòng)的絕對(duì)尺度。為了解決這個(gè)問題,Li等人受無監(jiān)督深度估計(jì)方法的啟發(fā)[40-41]提出了一種無監(jiān)督學(xué)習(xí)的單目視覺測(cè)距系統(tǒng)UnDeepVO[42],使用雙目圖像對(duì)進(jìn)行訓(xùn)練,如圖4 所示。UnDeepVO 在位姿預(yù)測(cè)和深度估計(jì)中表現(xiàn)出良好的性能,此外,它還可以恢復(fù)6 自由度姿勢(shì)和深度圖的絕對(duì)比例。Nguyen 等[43]也將類似的無監(jiān)督深度學(xué)習(xí)方法引入了單應(yīng)性估計(jì),并實(shí)現(xiàn)了不錯(cuò)的效果。H.Zhan 等利用雙目圖片恢復(fù)運(yùn)動(dòng)的真實(shí)尺度,在相機(jī)基線已知時(shí),在左右圖像對(duì)之間額外引入了光度誤差。完成訓(xùn)練后,該網(wǎng)絡(luò)可以用單張圖像進(jìn)行位姿估計(jì),因此所用的測(cè)試集和訓(xùn)練集是不同的[44]。最近的研究結(jié)果表明,圖像景深估計(jì)和相機(jī)位姿估計(jì)可以通過光度損失函數(shù)代替基于真值的損失函數(shù),使用無監(jiān)督的方法進(jìn)行學(xué)習(xí)。SfM-Learner[41]是第一個(gè)同時(shí)學(xué)習(xí)攝像機(jī)運(yùn)動(dòng)和深度估計(jì)的自我監(jiān)督方法,SCSfM-Learner[45]是在其結(jié)構(gòu)基礎(chǔ)上提出的一種方法,它通過加強(qiáng)深度一致性來解決SfM-Learner 中的尺度問題,該幾何一致性損失會(huì)增強(qiáng)預(yù)測(cè)深度圖和重構(gòu)深度圖之間的一致性。該框架將預(yù)測(cè)的深度圖轉(zhuǎn)換為3D 結(jié)構(gòu),并將其投影回深度圖以生成重建的深度圖,這樣深度預(yù)測(cè)便能夠在連續(xù)幀上保持尺度一致。
圖4 UnDeepVO網(wǎng)絡(luò)架構(gòu)[42]
車輛運(yùn)行過程中,VO采集到的場(chǎng)景往往是動(dòng)態(tài)的,為VO的魯棒性帶來了挑戰(zhàn)。針對(duì)這個(gè)問題,GeoNet建模了剛性結(jié)構(gòu)重建器和非剛性運(yùn)動(dòng)定位器,分別估計(jì)靜態(tài)場(chǎng)景結(jié)構(gòu)和運(yùn)動(dòng)動(dòng)態(tài),將學(xué)習(xí)過程分為重建和定位2個(gè)子任務(wù)[46]。GANVO采用一種生成式對(duì)抗學(xué)習(xí)網(wǎng)絡(luò)來估計(jì)景深,并引入時(shí)間遞歸模塊進(jìn)行位姿回歸[47]。Li等利用生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Networks,GAN)生成更精確的深度圖和位姿[48],并進(jìn)一步優(yōu)化目標(biāo)框架中的合成圖像,采用鑒別器評(píng)估合成圖像生成的質(zhì)量,有助于生成的深度圖更加豐富和清晰。
對(duì)比分析以上研究可以看出,無監(jiān)督學(xué)習(xí)不需要提前標(biāo)記數(shù)據(jù)集,相較于有監(jiān)督學(xué)習(xí)而言可以節(jié)省很多工作量。盡管無監(jiān)督的VO 在位姿估計(jì)精度上仍然不及有監(jiān)督的VO,但它在估計(jì)場(chǎng)景尺度和動(dòng)態(tài)場(chǎng)景相機(jī)位姿估計(jì)問題上的表現(xiàn)優(yōu)于其他方案,另外,無監(jiān)督學(xué)習(xí)VO在網(wǎng)絡(luò)設(shè)計(jì)的可操作性和無標(biāo)簽數(shù)據(jù)場(chǎng)景下的泛化能力方面也有一定的優(yōu)勢(shì),而且無監(jiān)督學(xué)習(xí)的VO通過位姿變換后的圖像與實(shí)際圖像的差異進(jìn)行訓(xùn)練,比較符合人類的普遍認(rèn)知習(xí)慣。隨著無監(jiān)督學(xué)習(xí)的網(wǎng)絡(luò)的性能不斷提高,無監(jiān)督的VO有可能成為提供位姿信息的最理想解決方案。圖5和圖6分別展示了無監(jiān)督學(xué)習(xí)的VO、有監(jiān)督學(xué)習(xí)的VO和基于模型的VO在KIITI數(shù)據(jù)集上的平移誤差和旋轉(zhuǎn)誤差。從圖5和圖6可以看出,有監(jiān)督學(xué)習(xí)的VO 的定位精度略優(yōu)于無監(jiān)督學(xué)習(xí)的VO,而基于模型的VO 的定位精度一直高于基于學(xué)習(xí)的VO的定位精度。表2 分有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)展示了幾種典型的基于深度學(xué)習(xí)的VO。
圖5 3種VO在KITTI數(shù)據(jù)集上的平移誤差
圖6 3種VO在KITTI數(shù)據(jù)集上的旋轉(zhuǎn)誤差
表2 典型的基于學(xué)習(xí)的VO
為了比較3種VO的實(shí)時(shí)性,在KITTI數(shù)據(jù)集中選擇試驗(yàn)平臺(tái)為雙核2.5 GHz 和單核2.5 GHz 的試驗(yàn)結(jié)果進(jìn)行對(duì)比,如表3和表4所示。
從表3 和表4 可以看出,基于學(xué)習(xí)的VO 在實(shí)時(shí)性上明顯優(yōu)于基于模型的VO,主要原因是,雖然神經(jīng)網(wǎng)絡(luò)有大量參數(shù)需要計(jì)算,但其支持并行計(jì)算,可以用GPU實(shí)現(xiàn)運(yùn)算加速,而基于模型的VO 有大量復(fù)雜的公式,計(jì)算速度很難提升。
上述基于深度學(xué)習(xí)的方法的問題在于沒有顯式地考慮攝像機(jī)運(yùn)動(dòng)引入的多視圖幾何約束。針對(duì)這個(gè)問題,有學(xué)者提出了將基于學(xué)習(xí)的方法和基于模型的方法進(jìn)行不同程度結(jié)合的技術(shù),并取得了顯著的效果。CNN-SLAM[51]在直接法VO 系統(tǒng)中融合單視圖CNN 深度。CNN-SVO[49]在特征位置進(jìn)行深度初始化,而CNN提供的深度可減少初始圖像中的不確定性。Yang[52]等人將深度預(yù)測(cè)融入DSO[20]中作為虛擬的立體測(cè)量值。Li 等人通過位姿圖對(duì)位姿估計(jì)進(jìn)行優(yōu)化[53]。Zhan 等人利用CNN 對(duì)景深和相機(jī)位姿進(jìn)行預(yù)測(cè),構(gòu)建了一個(gè)有效的單目VO 系統(tǒng),但該系統(tǒng)無法恢復(fù)真實(shí)尺度。Yin等人將通過學(xué)習(xí)得到的深度估計(jì)值直接應(yīng)用到基于模型的視覺里程計(jì)中,以恢復(fù)運(yùn)動(dòng)的真實(shí)尺度[54]。
表3 雙核2.5 GHz下3種VO的幀率 幀/s
表4 單核2.5 GHz下3種VO的幀率 幀/s
通過上述深度預(yù)測(cè)模型,將深度估計(jì)結(jié)果直接應(yīng)用到基于模型的VO中能有效解決尺度問題。Barnes等人將深度學(xué)習(xí)得到的深度圖和掩膜模型加入到基于模型的VO 中以提高模型的動(dòng)態(tài)場(chǎng)景處理能力[55]。Zhang 等人將學(xué)習(xí)到的深度估計(jì)和光流預(yù)測(cè)集成到傳統(tǒng)的視覺里程計(jì)模型中,達(dá)到了優(yōu)于其他模型的性能[3]。幾何算法往往在混合系統(tǒng)中為神經(jīng)網(wǎng)絡(luò)提供先驗(yàn)信息,例如D3VO將深度、位姿和深度預(yù)測(cè)合并到直接法VO中,取得了不錯(cuò)的效果[50]。
與僅依賴深度神經(jīng)網(wǎng)絡(luò)來估計(jì)位姿的端到端VO不同,混合VO將經(jīng)典幾何模型與深度學(xué)習(xí)框架結(jié)合在一起,基于成熟的幾何理論,使用深層神經(jīng)網(wǎng)絡(luò)替換幾何模型的各部分,以達(dá)到更好的效果?;谀P团c深度學(xué)習(xí)相結(jié)合的VO 的性能往往優(yōu)于端到端的VO,混合模型相較于一些基于模型的單目VO的性能更優(yōu)越,例如,視覺慣性測(cè)距(Visual-Inertial Odometry,VIO)系統(tǒng)D3VO擊敗了幾種常用的常規(guī)VO/VIO系統(tǒng)(DSO、ORBSLAM),因此混合VO也是一個(gè)重要的技術(shù)路線。
在很多VO 算法中,場(chǎng)景被假設(shè)為靜態(tài)的,只能容忍很小一部分動(dòng)態(tài)場(chǎng)景,場(chǎng)景中出現(xiàn)動(dòng)態(tài)物體時(shí)多數(shù)會(huì)被系統(tǒng)作為異常值處理。場(chǎng)景不變假設(shè)在多數(shù)情況下不能滿足,如何使VO 系統(tǒng)可以準(zhǔn)確、快速地處理動(dòng)態(tài)場(chǎng)景是智能車輛VO技術(shù)發(fā)展中不可避免的問題。
目前,有很多提高VO在動(dòng)態(tài)場(chǎng)景中性能的方案,主要面向2個(gè)問題:一是如何分辨場(chǎng)景中的動(dòng)態(tài)物體和靜態(tài)物體;二是如何處理被動(dòng)態(tài)物體遮擋的靜態(tài)場(chǎng)景。Leung和Medioni以地平面為基準(zhǔn)進(jìn)行車輛位姿估計(jì)[56],提出的方法在動(dòng)態(tài)環(huán)境中具有不錯(cuò)的試驗(yàn)結(jié)果,但是,由于該系統(tǒng)假設(shè)1個(gè)場(chǎng)景中只有1個(gè)主平面,很難將其應(yīng)用于多個(gè)平面的環(huán)境中。Tan等通過將地圖特征投影到當(dāng)前幀中檢測(cè)物體的外觀和結(jié)構(gòu),從而檢測(cè)場(chǎng)景中發(fā)生的變化[57]。Wangsiripitak和Murray通過跟蹤場(chǎng)景中已知的3D 對(duì)象來確定相鄰幀間的場(chǎng)景變化[58]。類似地,Riazuelo 等通過檢測(cè)和跟蹤行人來檢測(cè)行人的運(yùn)動(dòng)[59]。Li和Lee使用深度邊緣點(diǎn)來檢測(cè)運(yùn)動(dòng)物體,這些深度被賦予相關(guān)的權(quán)重,可以表明其屬于動(dòng)態(tài)對(duì)象的概率[60]。
深度學(xué)習(xí)在動(dòng)態(tài)物體檢測(cè)方面已經(jīng)達(dá)到了很好的效果,但如何很好地恢復(fù)被遮擋的靜態(tài)環(huán)境,為位姿估計(jì)提供更多的約束,仍需要不斷探索。
GPS和IMU是傳統(tǒng)的車輛定位裝置,在車輛上的應(yīng)用已相對(duì)成熟,IMU與相機(jī)優(yōu)勢(shì)互補(bǔ),GPS可以為VO提供絕對(duì)的位置信息,而且不同類型的傳感器會(huì)帶來不同的環(huán)境特征,因此,多傳感器融合的定位往往是智能車輛最終的應(yīng)用方案。但是,不同傳感器體現(xiàn)環(huán)境信息的方式不同,如何在VO中充分利用每種傳感器一直是一個(gè)開放的問題。除基于常規(guī)最優(yōu)狀態(tài)估計(jì)的多傳感器融合外,在深度學(xué)習(xí)框架中進(jìn)行傳感器融合和管理的優(yōu)勢(shì)越發(fā)明顯。很顯然,基于深度學(xué)習(xí)的方法可能會(huì)催生新的自適應(yīng)多傳感器融合的VO。
Clark 等人結(jié)合DeepVO 得到的位姿估計(jì)結(jié)果和利用LSTM 得到的慣性傳感器讀數(shù)提出了基于深度學(xué)習(xí)的視覺與IMU 融合的VINet[61],該網(wǎng)絡(luò)以端到端的方式訓(xùn)練,可以達(dá)到優(yōu)于模型法的效果。Turan 等人利用同樣的思路通過結(jié)合視覺和磁傳感器預(yù)測(cè)相機(jī)6 自由度位姿[62]。Pillai 等人將GPS、IMU、相機(jī)和輪式里程計(jì)融合進(jìn)行車輛位姿估計(jì),利用神經(jīng)網(wǎng)絡(luò)處理不同相機(jī)產(chǎn)生的光流信息[63]。Li 等人提出的Recurrent-OctoMap 通過學(xué)習(xí)大量的3D 激光雷達(dá)數(shù)據(jù)能夠細(xì)化語義建圖,是一種融合語義特征的學(xué)習(xí)方法[64]。
在智能車輛視覺里程計(jì)系統(tǒng)中,理解語義信息至關(guān)重要。利用深度學(xué)習(xí)得到的語義級(jí)對(duì)象在大規(guī)模復(fù)雜環(huán)境下的VO系統(tǒng)中發(fā)揮著重要作用,能夠了解對(duì)象屬性和對(duì)象間的相互關(guān)系將使機(jī)器人與人、機(jī)器人與環(huán)境之間取得更好的交互效果。此外,語義級(jí)對(duì)象可以提高位姿估計(jì)的準(zhǔn)確性和魯棒性,同時(shí),良好的位姿估計(jì)有利于場(chǎng)景語義分割。借助對(duì)場(chǎng)景的理解以提高VO 的效率和泛化能力是一個(gè)很好的探索領(lǐng)域。
本文分析了有監(jiān)督、無監(jiān)督和模型法與深度學(xué)習(xí)相結(jié)合的智能車輛視覺里程計(jì)技術(shù)發(fā)展路線,結(jié)合近年來的主要研究成果發(fā)現(xiàn),基于學(xué)習(xí)的智能車輛VO主要是將VO 變?yōu)槎说蕉说南到y(tǒng),使其輸入1 張或若干張圖片后直接輸出車輛的位姿。但是,通過深度學(xué)習(xí)的方法永遠(yuǎn)存在泛化的問題,VO在特定的環(huán)境中訓(xùn)練后,在其他環(huán)境的表現(xiàn)往往有所下降。另外,設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)時(shí)將場(chǎng)景的語義信息考慮在內(nèi),加入多傳感器作為視覺信息的補(bǔ)充來提高基于深度學(xué)習(xí)的VO 的魯棒性和精度是一個(gè)可行的方案?;谏疃葘W(xué)習(xí)的方法作為一個(gè)很好的補(bǔ)充,雖然在車輛的位姿估計(jì)方面得到了一些結(jié)果,但是目前還不能取代基于模型的方法。