職恒輝,尹晨陽,李慧斌
西安交通大學(xué) 數(shù)學(xué)與統(tǒng)計學(xué)院,西安 710049
為了使智能體可以像人類一樣感知和探索世界,在環(huán)境中實(shí)現(xiàn)對智能體位置和姿態(tài)的估計即定位問題變得非常關(guān)鍵[1]。為達(dá)到該目的,各種不同的系統(tǒng)和方法被相繼提出,通常包含全球定位系統(tǒng)(GPS)、慣性導(dǎo)航定位(INS)、激光雷達(dá)定位、人工標(biāo)志定位等。然而,上述系統(tǒng)和方法均存在一定缺陷,例如GPS只能用于室外定位;慣性導(dǎo)航系統(tǒng)存在累計漂移問題;激光雷達(dá)定位成本昂貴。隨著計算機(jī)視覺技術(shù)的發(fā)展,僅使用視覺傳感器實(shí)現(xiàn)定位得到了研究者們的廣泛關(guān)注。視覺傳感器成本低、精度高,同時可以得到大量圖像數(shù)據(jù)進(jìn)而實(shí)現(xiàn)目標(biāo)檢測等其他計算機(jī)視覺任務(wù)。
視覺里程計VO(virual odometry)指從視覺傳感器所拍攝的視頻中實(shí)時恢復(fù)出其本身的位姿。最早的VO思想在1980年由Moravec[2]提出,他指出可以從滑動相機(jī)所采集的連續(xù)圖像中實(shí)現(xiàn)機(jī)器人的位姿估計。隨后Matthies等人[3]提出基于特征提取、匹配、幀間運(yùn)動估計的經(jīng)典框架,后續(xù)基于模型的算法大多由該框架發(fā)展而來。VO的概念由Nister等人[4]正式提出,該系統(tǒng)真正意義上實(shí)現(xiàn)了機(jī)器人的室外定位導(dǎo)航。此后,基于模型的VO算法因其發(fā)展時間長、理論模型健全,目前已在火星探測、自動駕駛、無人機(jī)、AR、VR等領(lǐng)域[5-8]得到了廣泛應(yīng)用?;谀P偷姆椒m然取得了豐碩的成果,但其在面對遮擋、動態(tài)物體等挑戰(zhàn)性的場景時仍然魯棒性較差,特別的,單目VO方法還存在尺度不確定性問題。而且此類方法高度依賴手工設(shè)計的低級特征,不能很好地表示現(xiàn)實(shí)世界中的復(fù)雜場景。此外,基于模型的方法假設(shè)世界是靜態(tài)的,而在實(shí)踐中,現(xiàn)實(shí)世界的場景幾何形狀和外觀會隨著時間發(fā)生一定的變化。
近年來,隨著深度學(xué)習(xí)技術(shù)在目標(biāo)檢測、圖像分類、語義分割等領(lǐng)域得到了成功應(yīng)用,展現(xiàn)出其在VO中的巨大潛力。相比于基于模型的方法,基于深度學(xué)習(xí)的方法有以下優(yōu)勢:第一,相比于人工設(shè)計的低維特征,深度學(xué)習(xí)從大量數(shù)據(jù)中學(xué)習(xí)的高維特征在面對挑戰(zhàn)環(huán)境時具有更強(qiáng)的魯棒性;第二,基于深度學(xué)習(xí)的方法不需要復(fù)雜的參數(shù)標(biāo)定和幾何變換,而是使用端到端方式進(jìn)行位姿估計;第三,基于深度學(xué)習(xí)的方法隨著數(shù)據(jù)集的持續(xù)擴(kuò)大,可以繼續(xù)學(xué)習(xí)和適應(yīng)新的環(huán)境,就像人類依靠直覺而不是準(zhǔn)確的模型來探索新環(huán)境一樣。諸多研究表明,基于深度學(xué)習(xí)的方法可在挑戰(zhàn)性場景中取得更好的性能,展現(xiàn)了深度學(xué)習(xí)在解決VO任務(wù)中的潛力[9]。
雖然目前已有一些VO方法的綜述,但大部分僅針對于基于模型的算法[10-13],或針對某個特定的領(lǐng)域如機(jī)器人定位[14],有些基于深度學(xué)習(xí)的SLAM綜述包含了早期的深度學(xué)習(xí)VO方法[15-17],一些研究性文獻(xiàn)的背景調(diào)研部分也對深度學(xué)習(xí)VO方法的研究現(xiàn)狀進(jìn)行了總結(jié)[18]。陳濤等人[19]雖然對深度學(xué)習(xí)方法進(jìn)行了綜述,但其發(fā)表時間較早,相對缺乏對各種方法的綜合性對比分析以及基本數(shù)學(xué)原理、評價指標(biāo)等的介紹,且只從三個方面展望了未來的發(fā)展趨勢,對目前該領(lǐng)域仍存在的問題缺乏充分的總結(jié)和探討。隨著近兩年深度學(xué)習(xí)方法的迅速發(fā)展,越來越多的基于深度學(xué)習(xí)方法被提出。因此,本文對近年來有代表性的、最新的有監(jiān)督、無監(jiān)督、模型與深度學(xué)習(xí)相結(jié)合的方法進(jìn)行全面詳細(xì)的綜述,并對各類方法進(jìn)行綜合性的對比分析,介紹了該領(lǐng)域的基本數(shù)學(xué)原理、常用數(shù)據(jù)集、評價指標(biāo)等必要知識。在此基礎(chǔ)上,指出了深度學(xué)習(xí)方法仍然存在的一些問題,并對未來發(fā)展提供了一些建議。
通常,基于模型的方法通過數(shù)學(xué)模型和幾何計算進(jìn)行位姿估計,經(jīng)過30年的發(fā)展,已得到了廣泛應(yīng)用。VO在實(shí)現(xiàn)方法上依據(jù)是否需要提取圖像特征點(diǎn)主要分為兩種方法:特征點(diǎn)法和直接法。
假設(shè)一個智能體搭載相機(jī)在環(huán)境中運(yùn)動并采集連續(xù)的圖像{I1,I2,…,In},VO的目的是計算出相鄰圖像Ik-1和Ik之間的剛體變換Tk-1,k∈?4×4,見圖1。進(jìn)而由Tk-1,k恢復(fù)出相機(jī)的整體運(yùn)動軌跡。剛體變換Tk-1,k由平移量和旋轉(zhuǎn)量構(gòu)成:
圖1 剛體變換Fig.1 Rigid body transformation
其中,Rk-1,k∈SO(3)表示旋轉(zhuǎn)矩陣,tk-1,k∈?3×1表示平移向量。假定所有時刻圖像對的相對變換集合為{T1,2,T2,3,…,Tn-1,n},則相機(jī)在時刻k的空間位姿Pk為:
其中,P0是相機(jī)在初始時刻的空間位姿。因此,可以遞推得到整個相機(jī)的運(yùn)動軌跡{P1,P2,…,Pn}。在增量計算運(yùn)動軌跡時,某個時刻的估計誤差不可避免地會隨著時間累計。為了消除累計誤差,根據(jù)計算得到的前k個位姿進(jìn)行濾波或束調(diào)整(bundle adjustment)優(yōu)化,從而估計更準(zhǔn)確的局部軌跡。
特征點(diǎn)法首先在圖像中提取特征,這些特征在相機(jī)視角發(fā)生少量變化時保持不變,于是可通過特征匹配實(shí)現(xiàn)圖像間的數(shù)據(jù)關(guān)聯(lián),從而對相機(jī)的相對變換矩陣進(jìn)行求解?;诓煌悇e的數(shù)據(jù)關(guān)聯(lián),可以得到不同的位姿求解方法。當(dāng)?shù)玫?D-2D的對應(yīng)關(guān)系時,可使用對極幾何法計算相對運(yùn)動;當(dāng)?shù)玫?D-2D的對應(yīng)關(guān)系時,可使用PnP(perspective n point)、EPnP(efficient perspectiven-point)、P3P(perspective three point)等方法求解;當(dāng)?shù)玫?D-3D對應(yīng)關(guān)系時,則可使用ICP(iterative closest point)算法進(jìn)行求解。求解得到相對變換矩陣后,再計算重投影誤差對相機(jī)位姿以及空間點(diǎn)的三維坐標(biāo)進(jìn)行優(yōu)化:
其中,ui表示Ik-1中的像素點(diǎn),它投影到空間點(diǎn)的坐標(biāo)為pi,u′i表示經(jīng)過特征匹配得到的Ik與ui對應(yīng)的特征點(diǎn),π表示相機(jī)重投影模型。特征點(diǎn)法的基本流程如圖2所示。
圖2 特征點(diǎn)法基本流程Fig.2 Pipline of feature point-based method
特征表達(dá)對于基于特征點(diǎn)的方法至關(guān)重要,早期的方法使用圖像中易于區(qū)分的角點(diǎn)作為特征,常用的有Harris角點(diǎn)、FAST角點(diǎn)、GFTT角點(diǎn)[20]等,角點(diǎn)雖然可以較好地與圖像中的其他區(qū)域區(qū)分開來,但對于旋轉(zhuǎn)、尺度、光照變化的魯棒性不強(qiáng)。因此,研究人員提出了更加穩(wěn)定的特征表達(dá)方法,如SIFT[21](scale invariant feature transform)、SUFT[22](speed-up robust features)、ORB[23](oriented FAST and rotated BRIEF)、BRISK[24](binary robust invariant scalable keypoints)等。
2007年Davison等人提出了MonoSLAM系統(tǒng)[25],是第一個僅利用單目相機(jī)實(shí)現(xiàn)實(shí)時定位與建圖的方法,其使用擴(kuò)展卡爾曼濾波器對相機(jī)位姿和特征點(diǎn)的三維坐標(biāo)進(jìn)行優(yōu)化求解,但擴(kuò)展卡爾曼濾波器假定了馬爾可夫性,忽略更久遠(yuǎn)時間域上的信息,且計算復(fù)雜度較高。為解決該問題,Klein等人在2008提出了PTAM算法[26],該算法首次提出以非線性優(yōu)化作為SLAM的后端,使用BA[27]處理關(guān)鍵幀。其也是第一個引入關(guān)鍵幀的算法,并將跟蹤和建圖兩個子任務(wù)分別通過不同的線程處理。以該結(jié)構(gòu)為基礎(chǔ),發(fā)展出許多優(yōu)秀的開源SLAM系統(tǒng),包括目前廣為使用的ORB-SLAM系列[28-30]。ORB-SLAM算法由Mur-Artal等人2015年提出,整個流程都使用計算速度快、方向與旋轉(zhuǎn)不變性的ORB特征,同時加入了回環(huán)檢測模塊,極大地提升了位姿和特征點(diǎn)三維坐標(biāo)的精度,同時提供單目、雙目、RGB-D相機(jī)的多個輸入接口,成為了易用性最強(qiáng)之一的SLAM系統(tǒng)。
針對特征點(diǎn)法的缺點(diǎn),直接法被提出,其利用灰度不變性假設(shè)從光流中完成數(shù)據(jù)關(guān)聯(lián),然后最小化光度誤差估計相機(jī)運(yùn)動:
其中,ui表示Ik-1中的像素點(diǎn),它投影到空間點(diǎn)的坐標(biāo)為pi,u′i表示Ik與ui對應(yīng)同一個空間點(diǎn)的像素點(diǎn),Ik表示灰度值,K表示相機(jī)內(nèi)參,d表示像素點(diǎn)對于當(dāng)前幀的深度值。直接法的基本流程見圖3所示。
圖3 直接法基本流程Fig.3 Pipline of direct method
DTAM[31]是Newcombe等人在2011年提出的基于關(guān)鍵幀的SLAM算法,該算法是真正意義上的第一個直接法,它不使用稀疏的特征點(diǎn),而是使用圖像中的每個像素。該算法首先通過立體測量完成地圖初始化,然后根據(jù)重建的地圖估計相機(jī)運(yùn)動和像素深度,最后通過空間連續(xù)性對其優(yōu)化,在實(shí)時幾何計算方面取得了重大進(jìn)展,但需要GPU才能完成實(shí)時計算,因此無法被部署到實(shí)際的移動設(shè)備上。LSD-SLAM[32]由Engel等人在2014年提出,它可從姿態(tài)跟蹤中恢復(fù)半稠密的三維地圖。該算法包含姿態(tài)跟蹤、深度估計和全局地圖優(yōu)化三個線程,并可在全局地圖上維護(hù)和跟蹤,包括關(guān)鍵幀的地圖和相關(guān)的半稠密深度地圖,從而提升了精度和效率,可在無GPU加速的情況實(shí)時運(yùn)行,但其使用卡爾曼濾波器進(jìn)行優(yōu)化計算,一定程度上忽略了時域信息。DSO[33]算法也是由Engel等人在2017年提出的,它使用光度誤差來最小化幾何和光度學(xué)誤差,采用新的深度估計機(jī)制優(yōu)化代替卡爾曼濾波器,并對圖像中有梯度、邊緣或亮度平滑變化的點(diǎn)均勻采樣以降低計算量,進(jìn)一步提高了精度和效率。
基于特征點(diǎn)的方法通常具有較強(qiáng)的魯棒性、較高的準(zhǔn)確性、較快的運(yùn)算速度,因而得到了廣泛應(yīng)用,但也存在下述問題和局限性。首先該類方法的性能取決于特征的設(shè)計方式,復(fù)雜的特征可以提高性能,但計算復(fù)雜度也會增加,因此需要在計算復(fù)雜度和實(shí)時性之間做出取舍;其次,在少紋理和重復(fù)紋理場景下,如天空、墻面、走廊等,精度會大幅下降甚至無法工作;再者,該類方法僅可恢復(fù)特征點(diǎn)的深度,因此無法構(gòu)建稠密地圖;最后,人工設(shè)計的特征僅使用了圖像的局部信息,沒有考慮全局信息,因此容易受到動態(tài)物體、遮擋的影響。
直接法不需提取特征點(diǎn)和描述子,因此不但效率得到了提高,在少紋理區(qū)域仍能正常運(yùn)行。相比于特征點(diǎn)法僅利用稀疏特征點(diǎn),直接法可使用任意多的像素進(jìn)行位姿和三維坐標(biāo)估計,因此其具有構(gòu)建稀疏、半稠密以及稠密地圖的能力。但其也存在一些局限性,首先直接法依靠梯度搜索來求解位姿,但大部分場景下的圖像灰度是關(guān)于像素坐標(biāo)的非凸函數(shù),因此會導(dǎo)致優(yōu)化過程陷入局部極小,無法得到最優(yōu)解;其次直接法所依賴的灰度不變性是強(qiáng)假設(shè),在相機(jī)的曝光參數(shù)發(fā)生變化、環(huán)境亮度發(fā)生變化的情況下,算法的精度會下降,因此其研究和應(yīng)用仍然沒有特征點(diǎn)法成熟,目前只適合于運(yùn)動較小,圖像整體亮度變化不大的情形。
基于模型的方法經(jīng)過多年的發(fā)展,具有完善的數(shù)學(xué)模型支撐,不依賴于訓(xùn)練集的數(shù)據(jù),計算量較小,可在未見過的場景中實(shí)時運(yùn)行,因此其在精度、實(shí)時性、模型部署方面都有很好的表現(xiàn),得到了廣泛的實(shí)際應(yīng)用,成為當(dāng)前工業(yè)界主要應(yīng)用的方法。但目前基于模型的方法依然存在以下問題:
(1)在相機(jī)運(yùn)動速度較快、旋轉(zhuǎn)角度過大的時候,基于模型的方法可能會出現(xiàn)“跟丟”的情況。
(2)基于模型的方法假設(shè)場景是靜態(tài)的,對于環(huán)境中常見的動態(tài)物體如人、車等沒有很好的處理方法,會造成模型精度的下降。
(3)對于光照強(qiáng)度變化劇烈、亮度較低、環(huán)境特征紋理不豐富等挑戰(zhàn)性場景的魯棒性不高。
(4)需要復(fù)雜的人工幾何標(biāo)定,過程繁瑣。
基于深度學(xué)習(xí)的方法利用深度網(wǎng)絡(luò),通過端到端的方式直接從圖像對中回歸出六自由度的相機(jī)位姿。依據(jù)在訓(xùn)練時是否使用帶標(biāo)簽的數(shù)據(jù)集,將其分為監(jiān)督學(xué)習(xí)方法和無監(jiān)督學(xué)習(xí)方法。除此之外,可以將基于模型的方法和基于深度學(xué)習(xí)的方法結(jié)合,得到模型-學(xué)習(xí)融合方法。
Kendall等人在2015年提出的PoseNet[34]是首個利用CNN完成VO任務(wù)的方法,其采用端到端的方式從單目圖像序列中回歸出相機(jī)位姿。其在GoogleNet[35]的基礎(chǔ)上進(jìn)行修改得到23層網(wǎng)絡(luò)結(jié)構(gòu),并使用了遷移學(xué)習(xí)和SFM(structure from motion)方法解決標(biāo)簽數(shù)據(jù)少的問題。該方法在光照改變、運(yùn)動模糊等挑戰(zhàn)性場景中的魯棒性較強(qiáng)。但PoseNet的損失函數(shù)需要人工設(shè)置平移項和旋轉(zhuǎn)項之間的平衡因子,可能會帶來經(jīng)驗誤差。為解決該問題,Kendall等人[36]又提出了兩種新的損失函數(shù),一種是通過網(wǎng)絡(luò)自動學(xué)習(xí)平衡因子,另一種通過多視圖幾何融合平移項與旋轉(zhuǎn)項,從而進(jìn)一步提升了準(zhǔn)確率。但上述的方法使用的損失函數(shù)僅考慮了單幀的信息,視覺里程計具有很強(qiáng)時間依賴性,Saputra等人[37]提出的方法使用復(fù)合相對位姿變換約束來構(gòu)建損失函數(shù),更好地利用了長序列間的時間相關(guān)性。
為了充分利用深度學(xué)習(xí)提取高維特征的能力,不同的基礎(chǔ)網(wǎng)絡(luò)架構(gòu)被進(jìn)一步提出。PoseNet等早期的深度學(xué)習(xí)方法利用CNN網(wǎng)絡(luò)預(yù)測相機(jī)位姿,然而VO任務(wù)的輸入為連續(xù)的圖像序列,CNN無法很好地對其建模,因此可更好處理序列數(shù)據(jù)的RNN網(wǎng)絡(luò)被引入到VO中。2017年Walch等人[38]首先使用了LSTM網(wǎng)絡(luò)進(jìn)行位姿預(yù)測,他們先使用CNN提取特征,然后將特征輸入到LSTM單元中,從而使網(wǎng)絡(luò)自動選出最適宜于位姿估計的特征,該方法雖然使用了RNN網(wǎng)絡(luò),但卻只用于特征選擇,沒有充分利用其處理序列的相關(guān)性。在此基礎(chǔ)上,Wang等人在2017年提出了DeepVO[39],該方法依然先用CNN提取特征,將特征排列為時間序列,然后通過雙層的LSTM網(wǎng)絡(luò)輸出相機(jī)位姿,實(shí)現(xiàn)了序列相關(guān)性的建模,提高了基于學(xué)習(xí)方法的精度,其網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示,該結(jié)構(gòu)也成為了監(jiān)督學(xué)習(xí)方法的通用結(jié)構(gòu),但DeepVO使用的LSTM網(wǎng)絡(luò)僅利用了之前幀的信息,而實(shí)際上當(dāng)前幀后面的幀和當(dāng)前幀具有共視關(guān)系。因此,Clark等人提出了Vidloc[40],將上述方法中的LSTM層替換為雙向LSTM進(jìn)一步提升了序列建模的能力。MagicVO[41]在此基礎(chǔ)上將網(wǎng)絡(luò)的輸入由單幀圖像替換為了堆疊的圖像對,進(jìn)一步提升了預(yù)測精度。ESP-VO[9]、Costante等人[42]和Kendall等人[43]分別引入不確定性度量進(jìn)一步完善了上述工作,但他們的不確定性度量是由幾個網(wǎng)絡(luò)層簡單的回歸而來,并且沒有合理利用得到的不確定性。受到他們的啟發(fā),Kaygusuz等人[44]使用混合密度網(wǎng)絡(luò)將位姿作為混合高斯分布進(jìn)行回歸,并將不確定性作為預(yù)測結(jié)果穩(wěn)定性的準(zhǔn)則?,F(xiàn)有方法使用的CNN和RNN網(wǎng)絡(luò)的參數(shù)較多,導(dǎo)致模型訓(xùn)練、預(yù)測速度較慢,Koumis等人[45]使用3D卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行序列信息的建模,可以在更少的網(wǎng)絡(luò)參數(shù)下實(shí)現(xiàn)更快計算。
圖4 DeepVO方法流程Fig.4 Pipline of DeepVO
由于里程計估計的是相鄰幀間的相對變換,在最終計算整個運(yùn)動軌跡時會不可避免地累計先前幀的誤差,因此在長時間的預(yù)測中會出現(xiàn)誤差累計、軌跡漂移問題。為解決該問題,Lin等人在2018年提出了DGRNet[46],該方法采用兩個LSTM子網(wǎng)絡(luò)分別預(yù)測運(yùn)動的相對變換和絕對位姿,然后將二者進(jìn)行融合,并提出基于交叉變換約束的損失函數(shù),一定程度解決了累計漂移問題。相比于前者僅利用序列圖像信息的方法,Peretroukhin等人[47]提出的方法使用貝葉斯神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)每幀圖像中的光照方向,然后將其與雙目視覺里程計進(jìn)行融合,從而減少累計漂移。LS-VO[48]將光流估計和VO預(yù)測整合到一個網(wǎng)絡(luò)中進(jìn)行聯(lián)合計算和優(yōu)化,提升了算法在光照改變、遮擋等場景下的魯棒性,但其僅使用了相鄰幀之間的光流,忽略了時間域上的信息。Huang等人[49]擴(kuò)展了該方法,他們使用RNN來對隱空間的光流進(jìn)行建模,且使用了自監(jiān)督的方法來訓(xùn)練光流網(wǎng)絡(luò),加快了算法的整體收斂速度,得到了更加精確的運(yùn)動軌跡。但上述方法在簡單地使用RNN建模時間信息時,也會將時域上的錯誤信息進(jìn)行累計,從而影響結(jié)果。因此,Xue等人[50]通過神經(jīng)模擬記憶的方式逐步和自適應(yīng)地保存從局部到全局的信息,并采用時空注意力的方法,利用共視性為每個視圖動態(tài)的選擇特征,從而解決了錯誤累計問題。
視覺里程計通常假設(shè)場景是靜態(tài)的,因此當(dāng)場景中存在動態(tài)物體比如行走的人和車時,會造成精度的下降。Kuo等人[51]在2020年提出的方法中使用注意力機(jī)制來減少動態(tài)物體的影響,其將相鄰幀的光流圖作為注意力子網(wǎng)絡(luò)的輸入,同時與語義分割后的圖像結(jié)合,得到可衡量靜態(tài)與動態(tài)物體重要性的注意力特征圖,該特征圖參與損失函數(shù)的計算,從而減少動態(tài)物體的影響。Xue等人[52]在2018年提出的方法中,使用上下文注意力機(jī)制選擇適用于不同運(yùn)動模式的特征,從而提升了網(wǎng)絡(luò)面對動態(tài)物體時的魯棒性。
由以上綜述可知,監(jiān)督學(xué)習(xí)的基本流程是使用CNN和RNN構(gòu)建能提取高維圖像特征的網(wǎng)絡(luò),然后通過全連接層或卷積層回歸出六自由度的相對變換,最后通過帶標(biāo)簽的數(shù)據(jù)集來訓(xùn)練網(wǎng)絡(luò),實(shí)現(xiàn)相機(jī)位姿的估計。學(xué)者們在此流程上,從網(wǎng)絡(luò)基礎(chǔ)架構(gòu)、軌跡漂移問題、損失函數(shù)設(shè)計問題、動態(tài)物體問題等方法出發(fā),提出了各種方法進(jìn)一步提升了網(wǎng)絡(luò)的精度。
無監(jiān)督學(xué)習(xí)方法不需要人工標(biāo)注的數(shù)據(jù)集,因此具有更好的泛化性與適應(yīng)性,近年得到了廣泛關(guān)注。
得益于圖像仿射變換技術(shù)(affine transformation)的發(fā)展[53],Garg等人[54]在2016年第一次使用無監(jiān)督方法獲得了單幀圖像的深度,該方法輸入兩個已知位姿的圖像對A和B,利用深度網(wǎng)絡(luò)回歸出圖像A的深度圖,然后與圖像B經(jīng)過仿射變換得到假圖像A′,根據(jù)A與A′之間的差異構(gòu)造光度一致性損失函數(shù),從而實(shí)現(xiàn)了無監(jiān)督學(xué)習(xí),但該方法僅可預(yù)測深度。為了同時預(yù)測深度和相機(jī)相對變換,Zhou等人[55]提出一個可以同時預(yù)測深度和幀間相對變換的無監(jiān)督學(xué)習(xí)算法,該算法輸入相鄰圖像對,分別稱為源圖像和目標(biāo)圖像,目標(biāo)圖像由深度估計子網(wǎng)絡(luò)提取深度,同時將兩張圖像拼接后輸入位姿估計子網(wǎng)絡(luò)估計相對變換,然后經(jīng)過warping計算:
其中,t和s分別表示目標(biāo)圖像和源圖像,p表示像素點(diǎn)位置,K、T?、D?分別表示相機(jī)內(nèi)參,網(wǎng)絡(luò)估計的幀間變換矩陣,深度圖。最后使用計算得到的假源圖像和真實(shí)源圖像構(gòu)建損失函數(shù),實(shí)現(xiàn)了深度和位姿估的聯(lián)合估計,其網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示,該結(jié)構(gòu)也成為了無監(jiān)督學(xué)習(xí)方法的基本框架。
圖5 文獻(xiàn)[55]方法流程Fig.5 Pipline of literature[55]method
為了進(jìn)一步增強(qiáng)深度學(xué)習(xí)提取高維特征的能力,不同的基礎(chǔ)結(jié)構(gòu)被提出。SFM-Net[56]通過增加語義分割網(wǎng)絡(luò)和光流網(wǎng)絡(luò),將語義信息和光流信息融合到位姿和深度預(yù)測中。Wang等人[57]提出的方法首次將光流作為網(wǎng)絡(luò)輸入,并利用前向后向光流一致性約束構(gòu)建損失函數(shù),進(jìn)一步提升了精度。D3VO[58]將光照變換、位姿不確定性估計整合到VO框架中,提升了網(wǎng)絡(luò)在面對光照變化、遮擋等情況下的魯棒性。雖然上述的方法通過整合多種信息來提升精度,但這也會使網(wǎng)絡(luò)參數(shù)過多,訓(xùn)練時間過長。為解決該問題,Kim等人[59]僅使用單一的Mask-RCNN網(wǎng)絡(luò)提取特征,即可同時實(shí)現(xiàn)位姿估計、深度估計、目標(biāo)檢測、語義分割,該工作降低了多任務(wù)訓(xùn)練時的計算量。為進(jìn)一步提升位姿預(yù)測的效率,Zhang等人[60]僅用網(wǎng)絡(luò)獲得初始的位姿,而在后續(xù)的推斷步驟中僅對姿態(tài)進(jìn)行最小化光度誤差的梯度更新,從而在降低計算量的同時得到了精確的結(jié)果。然而,他們雖然更好地利用了網(wǎng)絡(luò)學(xué)習(xí)高維特征的能力,但在初始的信息關(guān)聯(lián)階段,只是簡單地對原始圖像進(jìn)行了拼接。Liang等人[61]使用孿生網(wǎng)絡(luò)分別提取單幀圖像的特征,并在高維的特征空間完成了相鄰幀的信息關(guān)聯(lián),充分地利用了深度學(xué)習(xí)學(xué)習(xí)高維特征的能力,進(jìn)一步提升了網(wǎng)絡(luò)的精度。
大多數(shù)基于深度學(xué)習(xí)的方法使用光度一致性來實(shí)現(xiàn)無監(jiān)督學(xué)習(xí),但光度不變性是強(qiáng)假設(shè),在光照改變、相機(jī)曝光改變等情況下該假設(shè)會遭到破壞,導(dǎo)致精度下降。使用光度一致性假設(shè)構(gòu)建的損失函數(shù)僅考慮了像素級的差異,對于離群點(diǎn)較敏感。因此,Godard等人[62]使用結(jié)構(gòu)一致性度量SSIM[63]構(gòu)建光度一致性損失函數(shù),從圖像結(jié)構(gòu)的層次考慮了真實(shí)圖像和重建圖像的差異。但上述的方法僅從圖像層次直接比較了真實(shí)圖像和重建圖像之間的差異,忽略了高維的信息。因此,Almalioglu等人[64]提出使用對抗生成網(wǎng)絡(luò)GAN[65]實(shí)現(xiàn)無監(jiān)督學(xué)習(xí),該方法的生成器從隨機(jī)數(shù)據(jù)中采樣,得到當(dāng)前幀的深度圖,然后判別器計算warping得到的假圖像與真實(shí)圖像間的差異,從而提升網(wǎng)絡(luò)在光度一致性假設(shè)被破壞時的魯棒性。Li等人[66]擴(kuò)展了該方法,他們的生成器直接回歸單幀圖像深度圖和幀間相對位姿變換。為了更好地利用高維圖像特征,在上述工作的基礎(chǔ)上,F(xiàn)eng等人[67]提出了一種新穎的堆疊式對抗生成網(wǎng)絡(luò),底層網(wǎng)絡(luò)用于回歸單目深度圖和相機(jī)位姿,而高層網(wǎng)絡(luò)則用于判別假圖像和真圖像的差異,該方法可以更好地提取高維特征,從而提升網(wǎng)絡(luò)的精度和魯棒性。上述的方法依然是從真實(shí)圖像和重建圖像間的差異出發(fā)來實(shí)現(xiàn)無監(jiān)督訓(xùn)練,一定程度上依然依賴光度一致性假設(shè),為徹底拋棄該框架,Iyer等人[68]提出使用復(fù)合變換約束來構(gòu)建損失函數(shù),該方法分別估計出一段圖像序列中每個圖像對的相對變換,將這些相對位姿通過復(fù)合變換約束:
構(gòu)建的損失函數(shù)實(shí)現(xiàn)了無監(jiān)督學(xué)習(xí)。
單目視覺里程計面臨尺度不確定性的問題。為解決該問題,Zhan等人[69]提出使用基線校準(zhǔn)過的雙目圖像進(jìn)行訓(xùn)練,該方法將左右圖像對的光度一致性構(gòu)建損失函數(shù),并使用了圖像的稠密特征表達(dá)來輔助訓(xùn)練,從而將校準(zhǔn)雙目圖像的尺度帶入預(yù)測結(jié)果中,但該方法僅簡單地利用了雙目圖像的光度一致性約束,沒有更深層次地考慮雙目圖像間的幾何關(guān)系。在此框架上,UDeepVO[70]和Undemon[71]分別使用雙目圖像的位姿一致性約束和雙目視差光滑約束來構(gòu)建損失函數(shù),進(jìn)一步消除了尺度不確定性。不同于上述使用雙目圖像的方法,Liu等人[72]在2019年提出的方法中通過雷達(dá)獲取的深度信息來輔助訓(xùn)練,賦予網(wǎng)絡(luò)絕對的尺度?;谏疃葘W(xué)習(xí)的方法除了不能獲得絕對的尺度,預(yù)測的每一幀尺度也是不固定的,因此在長序列的軌跡預(yù)測中精度會下降。為解決該問題,Bian等人[73]將前一幀的深度投影到當(dāng)前幀中,與當(dāng)前幀的深度值對比,從而構(gòu)建深度一致性約束,迫使相鄰的幀具有一致的尺度,從而一定程度上解決了該問題,但他們的方法沒有考慮到投影值的可靠性,因此結(jié)果存在一定的誤差。為解決該問題,Almalioglu等人[74]對投影的深度賦予正視角等約束,并且提出了可以處理遮擋的遮擋感知損失函數(shù),進(jìn)而得到了一致的尺度和更精確的結(jié)果。
視覺里程計面臨的另一個問題是當(dāng)場景中存在動態(tài)物體或遮擋時比如行走的人、車時,會導(dǎo)致方法的精度大幅下降。為解決該問題,Yin等人在2018年提出了GeoNet[75],該算法分為三個階段,第一階段回歸出相對變換和深度圖,然后通過幾何變換計算出圖像間的光流。第二階段的子網(wǎng)絡(luò)以計算得到的光流作為輸入,輸出消去動態(tài)物體影響的全光流圖,最后通過仿射變換損失對兩個階段進(jìn)行聯(lián)合優(yōu)化,從而提升了網(wǎng)絡(luò)對于動態(tài)物體的魯棒性。但該方法僅考慮了動態(tài)物體,當(dāng)圖像中存在遮擋時,無法充分地提取特征,會造成精度的下降。為解決該問題,2020年Zou等人[76]借鑒了基于模型算法中關(guān)鍵幀的思想,建立一個雙層的LSTM網(wǎng)絡(luò),第一層LSTM用于預(yù)測初始的相機(jī)變換,第二層LSTM使用記憶力模塊[77]實(shí)現(xiàn)了不同幀重要性的篩選。
基于深度學(xué)習(xí)的方法在與訓(xùn)練數(shù)據(jù)不一致的場景中測試時,會出現(xiàn)精度下降的問題,對于不同場景泛化性較低。為解決該問題,2020年Li等人[78]引入了在線學(xué)習(xí)技術(shù),使用在線元學(xué)習(xí)的方式使網(wǎng)絡(luò)不斷適應(yīng)與訓(xùn)練數(shù)據(jù)集不同的新環(huán)境,并提出使用特征對齊來處理不一致的數(shù)據(jù)分布,從而提升網(wǎng)絡(luò)面對新場景時的泛化性。之后,他們又將貝葉斯建模推理[79]和高斯牛頓優(yōu)化融入到在線學(xué)習(xí)中,在保證泛化性的同時提升了網(wǎng)絡(luò)的精度。
由以上綜述可知,無監(jiān)督學(xué)習(xí)方法的基本框架是由位姿估計和深度估計兩個子網(wǎng)絡(luò)構(gòu)成,然后通過幾何變換、圖像仿射變換實(shí)現(xiàn)整個網(wǎng)絡(luò)的無監(jiān)督訓(xùn)練。在此框架基礎(chǔ)上,各類方法從基礎(chǔ)架構(gòu)、損失函數(shù)設(shè)計問題、尺度不確定性問題、動態(tài)物體問題、場景泛化性問題等方面入手,逐漸提升了無監(jiān)督學(xué)習(xí)方法的準(zhǔn)確性和魯棒性。
基于模型的方法雖然有一些缺點(diǎn),但經(jīng)過多年發(fā)展并得到了廣泛應(yīng)用,具有其本身的優(yōu)勢,因此將基于模型的算法和基于深度學(xué)習(xí)的算法相結(jié)合,也是當(dāng)前發(fā)展的趨勢之一。
基于深度學(xué)習(xí)的方法缺乏幾何建模,可解釋性較差。因此,Prasad等人[80]將對極約束引入到深度學(xué)習(xí)方法中,該方法對仿射變換后假圖像和真圖像提取SURF特征,并進(jìn)行特征匹配,然后計算本征矩陣來構(gòu)造兩幅圖像的對極約束,用其構(gòu)造損失函數(shù),可以提升方法的魯棒性。在此基礎(chǔ)上,Shen等人[81]使用PnP[82]算法從網(wǎng)絡(luò)估計的深度信息中計算絕對位姿,并構(gòu)建絕對位姿約束來提升算法的精度。VlocNet++[83]不僅使用幾何約束,而且融合了語義分割的信息,其通過多任務(wù)學(xué)習(xí)的方法,同時估計相對位姿、絕對位姿、語義分割圖,并使用自適應(yīng)加權(quán)來融合各個子任務(wù),實(shí)現(xiàn)空間域上的一致性。但上述方法忽略了時間域的信息,因此Li等人[84]提出的方法直接從單目圖像序列中輸出一個局部窗口的姿態(tài)圖,然后通過圖優(yōu)化和回環(huán)檢測來提升精度。
上述方法僅將更多的幾何約束引入到基于學(xué)習(xí)的方法中,為了實(shí)現(xiàn)更深層次的融合,可以將一種方法的結(jié)果整合到另一種方法的具體步驟中。D3VO[58]首先通過深度網(wǎng)絡(luò)分別得到深度圖、光度不確定性和相對變換,然后將深度圖融合到直接法中的雙目幾何約束計算步驟,將光度不確定性用于直接法的光度能量損失計算步驟,將相對變換用于前端追蹤和后端優(yōu)化的初始化步驟,可以有效提升直接法的精度。Iyer等人[68]提出的方法中使用ORB-SLAM對網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練,為后續(xù)的無監(jiān)督學(xué)習(xí)提供良好的參數(shù)初值,加速收斂。
基于模型的方法依賴靜態(tài)場景假設(shè),因此其面對動態(tài)物體、光照改變等場景時的魯棒性較差,造成精度下降。為解決該問題,2018年Barnes等人[85]使用深度學(xué)習(xí)對場景中的動態(tài)物體生成掩碼從而消去其影響,該算法分為兩個階段,第一階段是通過深度網(wǎng)絡(luò)得到動態(tài)物體的mask,在此階段通過對同一場景進(jìn)行多次遍歷,可以得到帶動態(tài)物體標(biāo)簽的數(shù)據(jù)集,用于訓(xùn)練網(wǎng)絡(luò)。第二階段將網(wǎng)絡(luò)產(chǎn)生的mask用于特征點(diǎn)法和光流法的局部地圖優(yōu)化中,對優(yōu)化函數(shù)進(jìn)行像素加權(quán)提升效果,該算法在包含大量動態(tài)物體的實(shí)際場景中仍能穩(wěn)定運(yùn)行。但上述方法僅利用簡單的mask消去動態(tài)物體的影響,沒有充分考慮動態(tài)物體對視覺里程計問題本身的影響。因此,Wagstaff等人[86]提出的方法不是直接估計幀間相對變換,而是回歸出由于違反建模假設(shè)而導(dǎo)致的系統(tǒng)錯誤,將得到的系統(tǒng)錯誤與位姿變換進(jìn)行融合,可以得到更精確的結(jié)果,該方法可以與任何基于模型的方法進(jìn)行結(jié)合,提升其準(zhǔn)確性和魯棒性。模型與學(xué)習(xí)融合算法因為可以結(jié)合模型法與深度學(xué)習(xí)方法的優(yōu)點(diǎn),得到了研究者們的關(guān)注。研究者們從將幾何約束引入到基于學(xué)習(xí)的方法中、將二者按步驟融合、利用深度學(xué)習(xí)方法解決模型法出現(xiàn)的問題三個方面出發(fā),提出了一些出色的工作。
監(jiān)督學(xué)習(xí)方法網(wǎng)絡(luò)結(jié)構(gòu)相對簡單,不需要同時預(yù)測深度即可獲得相對變換,因此訓(xùn)練和測試速度較快。且隨著數(shù)據(jù)集的擴(kuò)大,其精度在理論上會持續(xù)提高。表1按時間發(fā)展順序?qū)ΡO(jiān)督學(xué)習(xí)的一些重要工作的特點(diǎn)以及性能指標(biāo)進(jìn)行了總結(jié)。從表中可以看到,隨著深度學(xué)習(xí)的快速發(fā)展,更加先進(jìn)的基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)、多任務(wù)輔助訓(xùn)練、不確定性估計等方法被逐漸引入到視覺里程計任務(wù)中,使得監(jiān)督學(xué)習(xí)方法的精度進(jìn)一步提高,在一些場景下甚至超過了基于模型的方法。但同時,監(jiān)督學(xué)習(xí)方法也有一定的缺陷。其需要大量帶標(biāo)簽的數(shù)據(jù)集才能取得不錯的效果,傳感器位姿的標(biāo)簽通常是由搭載高精度GPS等傳感器的移動設(shè)備在實(shí)際運(yùn)行中收集而來,這需要很高的成本。因此監(jiān)督學(xué)習(xí)方法的應(yīng)用被限制,無監(jiān)督學(xué)習(xí)成為新的研究熱潮。
表1 監(jiān)督學(xué)習(xí)方法Table 1 Supervised learning methods
無監(jiān)督學(xué)習(xí)方法無需人工標(biāo)注的數(shù)據(jù)集,它可以通過預(yù)測的位姿和深度實(shí)現(xiàn)網(wǎng)絡(luò)的無監(jiān)督訓(xùn)練。這成為無監(jiān)督方法的最大優(yōu)勢。此外,無監(jiān)督學(xué)習(xí)方法通過幾何變換、仿射變換的方式將位姿和深度聯(lián)系起來,更符合真實(shí)的物理模型,具有一定的可解釋性。并且在構(gòu)建損失函數(shù)的過程中,可以更好對動態(tài)物體、遮擋進(jìn)行處理。因此無監(jiān)督方法具有更強(qiáng)的魯棒性和易用性,成為當(dāng)前最受關(guān)注的深度學(xué)習(xí)方法。但無監(jiān)督學(xué)習(xí)方法的網(wǎng)絡(luò)結(jié)構(gòu)較復(fù)雜,需要同時使用兩個子網(wǎng)絡(luò)來預(yù)測位姿和深度,參數(shù)量會大幅上升,因此訓(xùn)練和推理的速度相對較慢,在實(shí)際場景中較難部署。表2按時間發(fā)展順序?qū)o監(jiān)督學(xué)習(xí)的一些重要工作的特點(diǎn)以及性能指標(biāo)進(jìn)行了總結(jié)。
表2 無監(jiān)督學(xué)習(xí)方法Table 2 Unsupervised learning methods
模型-學(xué)習(xí)融合方法可以結(jié)合基于模型的方法和基于深度學(xué)習(xí)方法的優(yōu)勢,在一定程度上提高了模型法對挑戰(zhàn)性場景的魯棒性,也提高了深度學(xué)習(xí)方法的可解釋性。但該類方法也同時具有二者的局限性,其深度學(xué)習(xí)的部分推理速度較慢,影響實(shí)時性,而將二者融合在一起需要復(fù)雜的參數(shù)設(shè)置,影響易用性。
(1)KITTI數(shù)據(jù)集
KITTI數(shù)據(jù)集[87]由德國卡爾斯魯厄理工學(xué)院和豐田美國技術(shù)研究院聯(lián)合創(chuàng)辦,是目前國際上最大的自動駕駛場景下的算法評測數(shù)據(jù)集。KITTI包含市區(qū)、鄉(xiāng)村和高速公路等場景采集的真實(shí)圖像數(shù)據(jù),一共有22個視頻序列,其中11個視頻序列帶有g(shù)round-truth標(biāo)簽。每張圖像中最多達(dá)15輛車和30個行人,還有各種程度的遮擋與截斷,以10 Hz的頻率采樣收集而得。
(2)EuRoC數(shù)據(jù)集
EuRoC數(shù)據(jù)集[88]由蘇黎世聯(lián)邦理工學(xué)院創(chuàng)辦,由搭載雙目相機(jī)和IMU的微型無人機(jī)在兩個室內(nèi)場景和一個大規(guī)模的工業(yè)場景搜集而得。整個數(shù)據(jù)集包含11個雙目視頻序列,采集的幀率為20 Hz。數(shù)據(jù)集由無人機(jī)的飛行速度、光照、遮擋、場景紋理的情況一共分為簡單、中等、困難三個難度。
(3)TUM RGB-D數(shù)據(jù)集
TUM數(shù)據(jù)集[89]是德國慕尼黑工業(yè)大學(xué)Computer Vision Lab創(chuàng)辦,數(shù)據(jù)由手持Kinect相機(jī)采集,是目前應(yīng)用最為廣泛的RGB-D數(shù)據(jù)集,包含了depth圖像和rgb圖像,以及對應(yīng)的ground-truth等數(shù)據(jù)。該數(shù)據(jù)主要包含了不同紋理、光照、結(jié)構(gòu)和采集幀率的多個類別室內(nèi)環(huán)境視頻序列。
(4)Cityscapes數(shù)據(jù)集
Cityscapes數(shù)據(jù)集[90]是由2015年德國奔馳公司推動發(fā)布的城市景觀數(shù)據(jù)集。該數(shù)據(jù)集由搭載多種類別傳感器的汽車在德國的50個城市的不同季節(jié)收集而得,Cityscapes擁有5 000張精細(xì)標(biāo)注的城市環(huán)境的駕駛場景圖像,它具有19個類別的密集像素標(biāo)注以及高精度GPS采集的視覺里程計標(biāo)注。該數(shù)據(jù)集不僅在可以用在VO算法的訓(xùn)練測試評估,也是最具權(quán)威性和專業(yè)性的圖像分割數(shù)據(jù)集之一。各個數(shù)據(jù)集的圖片樣例如圖6所示。
假設(shè)算法估計的位姿為P1,P2,…,Pn∈SE(3),真實(shí)的位姿為Q1,Q2,…,Qn∈SE(3),其中下標(biāo)代表時間。通常使用以下評價指標(biāo)對估計的準(zhǔn)確性進(jìn)行衡量。
(1)相對位姿誤差RPE(relative pose error)
相對位姿誤差可用來衡量運(yùn)動軌跡中相隔固定時間的局部準(zhǔn)確度,其描述了在固定時間間隔Δ中,兩幀位姿差相比于真實(shí)位姿差的精度。第i幀的RPE定義如下:
當(dāng)已知視頻幀總數(shù)n與時間間隔Δ時,共可得到n-Δ個RPE,此時可通過平均值、中位數(shù)或更常用的均方根誤差RMSE進(jìn)行統(tǒng)計,得到整個軌跡的總體RPE:
其中,tran(Ei)表示取相對位姿誤差中的平移部分。通常會將其除以整個軌跡的長度(單位為100 m),得到更為通用的平均平移誤差terr(%)。當(dāng)需要衡量旋轉(zhuǎn)部分的誤差時,只需從Ei中取出旋轉(zhuǎn)部分進(jìn)行相同的計算,得到平均旋轉(zhuǎn)誤差rerr((°)/(100 m))。
(2)絕對軌跡誤差A(yù)TE(absolute trajectory error)
絕對軌跡誤差可衡量估計位姿和真實(shí)位姿的直接差值,非常直觀地反應(yīng)了算法精度和軌跡全局一致性。然而,估計的位姿和真實(shí)位姿通常不在同一坐標(biāo)系中,因此需要先將兩者對齊。對于雙目SLAM和RGB-D SLAM而言,尺度是統(tǒng)一的,因此只需通過最小二乘法計算從估計位姿到真實(shí)位姿的變換矩陣S∈SE(3);對于單目相機(jī),其尺度具有不確定性,因此需要計算從估計位姿到真實(shí)位姿的相似變換矩陣S∈Sim(3)。第i幀的ATE定義如下:
與RPE類似,依然可以使用平均值、中位數(shù)、均方根誤差RMSE來統(tǒng)計整個軌跡的ATE,常用的RMSE統(tǒng)計為:
RPE和ATE具有強(qiáng)烈的相關(guān)性,但卻各有不同,在實(shí)際應(yīng)用中,可選擇合適的指標(biāo)進(jìn)行算法評價。
同時,為了橫向比較基于模型的方法和基于深度學(xué)習(xí)的方法,從方法的準(zhǔn)確性、對于挑戰(zhàn)性場景的魯棒性、實(shí)際部署中的運(yùn)行效率、對于新場景的泛化性、訓(xùn)練測試過程中所需的數(shù)據(jù)量、實(shí)際的應(yīng)用場景六個方面衡量了各類方法的效果,并對其進(jìn)行對比分析,結(jié)果見表3。
從表3中可以看出,在方法的準(zhǔn)確性方面,基于模型的方法因為依賴靜態(tài)場景假設(shè),因此當(dāng)場景中存在動態(tài)物體時,精度會明顯下降。此外基于特征點(diǎn)的方法依賴特征點(diǎn)的質(zhì)量和可區(qū)分性,當(dāng)場景紋理單一時,精度無法得到保證。而直接法依賴灰度不變性假設(shè),在光照改變、相機(jī)曝光值改變時,灰度不變性假設(shè)遭到破壞,方法精度下降。基于深度學(xué)習(xí)的方法因為可以提取高維的圖像特征,因此可以較好地處理上述問題,但當(dāng)測試場景與訓(xùn)練集的場景風(fēng)格差異較大時,方法的精度也會下降。
表3 模型法和深度學(xué)習(xí)法對比Table 3 Model-based methods versus deep learning-based methods
在魯棒性方面,由于基于模型的方法依賴靜態(tài)場景假設(shè),因此對于違反該假設(shè)的情況,比如動態(tài)物體、低紋理、光照改變等情況的魯棒性較低。而基于深度學(xué)習(xí)的方法因為可以自動地學(xué)習(xí)高維的特征表達(dá),也不依賴于靜態(tài)場景假設(shè),因此對于上述情況的魯棒性較強(qiáng),可以穩(wěn)定運(yùn)行。
在運(yùn)行效率方面,基于特征點(diǎn)方法的計算時間主要花費(fèi)在特征點(diǎn)的提取和匹配上,因此當(dāng)設(shè)計的特征點(diǎn)較簡單時,運(yùn)行效率很高,但同時精度會相應(yīng)地下降。直接法無需提取特征點(diǎn),使用光流完成圖像間的信息關(guān)聯(lián),因此運(yùn)行效率很高。對于基于深度學(xué)習(xí)的方法,深度學(xué)習(xí)網(wǎng)絡(luò)具有大量的參數(shù),需要進(jìn)行長時間的訓(xùn)練才能取得令人滿意的效果,因此運(yùn)行效率較低。特別的,無監(jiān)督學(xué)習(xí)方法通常包含了位姿估計和深度估計兩個子網(wǎng)絡(luò),因此運(yùn)行效率相對比監(jiān)督學(xué)習(xí)方法更低。
在泛化性方面,基于模型的方法依賴幾何或概率模型,因此一旦建立好模型、設(shè)定好參數(shù)后,該類方法可在不同的場景中運(yùn)行。而基于深度學(xué)習(xí)的方法對數(shù)據(jù)敏感,在面對與訓(xùn)練場景差異較大的場景時,泛化性較低。
在所需數(shù)據(jù)量方面,基于模型的方法只在初始階段需要少量的數(shù)據(jù)進(jìn)行相機(jī)內(nèi)參標(biāo)定以及初始化等。而基于深度學(xué)習(xí)的方法需要從數(shù)據(jù)中進(jìn)行學(xué)習(xí),因此需要大量的數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)的訓(xùn)練。特別的,監(jiān)督學(xué)習(xí)方法所需的數(shù)據(jù)需要帶有高成本的人工標(biāo)簽。
在應(yīng)用場景方面,基于特征點(diǎn)的方法適用于靜態(tài)、紋理豐富、無遮擋的場景。直接法適用于靜態(tài)、無光照改變、無相機(jī)曝光改變等場景。當(dāng)有帶標(biāo)簽數(shù)據(jù)集,并且測試場景與訓(xùn)練場景相差不大時,使用監(jiān)督學(xué)習(xí)方法可以更好地處理動態(tài)物體等挑戰(zhàn)性情況。而當(dāng)缺乏帶標(biāo)簽的數(shù)據(jù)集時,使用無監(jiān)督學(xué)習(xí)方法可以取得更好的效果。
(1)用于訓(xùn)練的數(shù)據(jù)集依然不足。大規(guī)模的數(shù)據(jù)集對于基于深度學(xué)習(xí)算法至關(guān)重要,然而在當(dāng)前的V-SLAM或VO領(lǐng)域并不存在規(guī)模足夠大,質(zhì)量足夠高的數(shù)據(jù)集用于訓(xùn)練網(wǎng)絡(luò)。經(jīng)常使用的KITTI等數(shù)據(jù)集雖然在基于模型的方法中足夠用于測試和評估,但對于深度學(xué)習(xí)方法的訓(xùn)練仍有所欠缺。此外,當(dāng)前數(shù)據(jù)集采集場景比較單一,導(dǎo)致訓(xùn)練的網(wǎng)絡(luò)對于新場景的泛化性較差。因此如何收集到大規(guī)模、高質(zhì)量的數(shù)據(jù)集依然是當(dāng)前的一個問題。
(2)網(wǎng)絡(luò)結(jié)構(gòu)依然較簡單。近年CNN在計算機(jī)視覺的各個領(lǐng)域中扮演了重要角色,因此CNN也是第一個被用于視覺里程計任務(wù)的深度學(xué)習(xí)框架。然而CNN對于學(xué)習(xí)序列數(shù)據(jù)的相關(guān)性是不足的,因此RNN網(wǎng)絡(luò)得到了廣泛應(yīng)用,然而RNN網(wǎng)絡(luò)雖能很好地學(xué)習(xí)序列圖像間的相關(guān)性和依賴性,但其卻不能像CNN網(wǎng)絡(luò)一樣從圖像中提取合理的高維特征表達(dá)。因此,如何設(shè)計出既能建模序列相關(guān)性又能提取高維特征的深度學(xué)習(xí)框架是當(dāng)前存在的重要問題。
(3)運(yùn)行效率較低。深度學(xué)習(xí)的方法往往具有大量的網(wǎng)絡(luò)參數(shù),尤其是無監(jiān)督學(xué)習(xí)方法,通常包含位姿估計和深度估計兩個子網(wǎng)絡(luò),因此需要大量的時間進(jìn)行訓(xùn)練。在測試時相對比于基于模型的方法也稍慢。但實(shí)時性是視覺里程計任務(wù)的一個重要需求,因此如何提升基于深度學(xué)習(xí)方法的訓(xùn)練和測試效率是一個亟待解決的問題。
(4)模型在移動設(shè)備上的部署相對困難?;谏疃葘W(xué)習(xí)的方法通常需要借助GPU等高性能計算設(shè)備進(jìn)行訓(xùn)練和測試。視覺里程計模型在實(shí)際的應(yīng)用中通常需要部署在移動設(shè)備上,但在移動設(shè)備中,計算資源有限,無法提供GPU等設(shè)備進(jìn)行加速計算。因此當(dāng)前基于深度學(xué)習(xí)方法的移動端部署是需要解決的問題。
(5)深度學(xué)習(xí)方法可解釋性差?;谀P偷乃惴總€步驟都有嚴(yán)格的數(shù)學(xué)理論指導(dǎo),盡管這種基于靜態(tài)場景的假設(shè)使得基于模型的算法在面對光照改變、動態(tài)物體等挑戰(zhàn)性場景的魯棒性較低,但算法執(zhí)行的過程卻是“透明的”和可控的。深度學(xué)習(xí)卻是一個“黑盒”模型,通常只能依賴訓(xùn)練好的模型來得到結(jié)果,而無法從理論上進(jìn)行預(yù)測,因此當(dāng)網(wǎng)絡(luò)預(yù)測得到的結(jié)果不符合預(yù)期時,無法進(jìn)行根本性的調(diào)整。
(6)缺乏統(tǒng)一、合理、廣泛的評價指標(biāo)。當(dāng)前通常使用RMSE、ATE、RTE等指標(biāo)來評估算法的準(zhǔn)確率,然而當(dāng)算法被部署在實(shí)際中運(yùn)行時,它通常難以達(dá)到論文中所提到的準(zhǔn)確性。這是因為算法的實(shí)際表現(xiàn)受到多種因素的影響,例如面對實(shí)際場景的魯棒性、泛化性等,但當(dāng)前卻無法定量評估這些因素。因此需要一個合理的評價指標(biāo),不僅可以評估算法準(zhǔn)確,還能反應(yīng)其面對真實(shí)場景的表現(xiàn),從而更加全面、合理地對各個算法進(jìn)行比較分析。
(7)泛化性和魯棒性仍然有待提高。與基于模型的算法相比,基于學(xué)習(xí)的算法在實(shí)際運(yùn)行時不過度依賴先前所估計的位姿,因此通常不會出現(xiàn)初始化或者追蹤失敗的情況,然而當(dāng)輸入網(wǎng)絡(luò)的場景圖像與網(wǎng)絡(luò)在訓(xùn)練時的圖像差異過大時,算法會產(chǎn)生精度下降的問題。因此怎樣提升學(xué)習(xí)算法在面對新場景時的泛化性和魯棒性,仍然是一個大的問題。
(1)使用無監(jiān)督方法來訓(xùn)練網(wǎng)絡(luò)。無監(jiān)督的方法通常只需要增加數(shù)據(jù)集的規(guī)模,即可獲得一定的性能提升,而基于監(jiān)督學(xué)習(xí)的方法則需要大規(guī)模的人工標(biāo)注數(shù)據(jù)集,其通常是高成本和難獲得的。此外,無監(jiān)督方法使用幾何變換、光度一致性等約束作為損失函數(shù)來指導(dǎo)網(wǎng)絡(luò)的訓(xùn)練,更符合真實(shí)的運(yùn)動模型,可解釋性更好。
(2)利用語義信息獲得語義推理能力。理解語義信息是獲得高層次理解和語義推理的重要步驟,而當(dāng)前的方法僅理解低級的幾何特征而沒有真正利用到語義信息。一方面,利用語義信息可以形成語義層次的定位約束,從而提高準(zhǔn)確性和魯棒性。另一方面,將語義信息集成到VO中可以讓設(shè)備推斷出周圍的情況,例如可以根據(jù)檢測到的車輛方向和位置來推斷自身的運(yùn)動方向。因此理解高級語義信息、并將其與VO任務(wù)進(jìn)行融合是未來重要的發(fā)展方向。
(3)使用深度學(xué)習(xí)實(shí)現(xiàn)多傳感器融合定位。由于圖像數(shù)據(jù)存在光照改變、相機(jī)曝光改變等問題,因此許多基于模型的算法使用概率或非線性優(yōu)化方法將相機(jī)、IMU等多類傳感器的數(shù)據(jù)融合來進(jìn)行位姿估計,極大的提升了預(yù)測精度。然而使用深度學(xué)習(xí)實(shí)現(xiàn)數(shù)據(jù)融合[91-92]的方法卻相對較少,與傳統(tǒng)融合方法相比,基于學(xué)習(xí)的方法不需要進(jìn)行復(fù)雜的人工標(biāo)定等步驟,因此基于學(xué)習(xí)的融合方法在未來具有很大的發(fā)展?jié)摿Α?/p>
(4)將基于模型的方法和基于深度學(xué)習(xí)的方法進(jìn)行融合?;谀P偷姆椒ń⒃趪?yán)格的數(shù)學(xué)建模之上,其在靜態(tài)、充足的光照和富足的紋理等場景下更加可靠和準(zhǔn)確,然而在具有挑戰(zhàn)性的場景中運(yùn)行時,該類方法會面臨跟蹤丟失、初始化失敗等許多問題。雖然基于深度學(xué)習(xí)的方法可以在挑戰(zhàn)性的場景中良好運(yùn)行,但其在正常場景中卻缺少可靠性與準(zhǔn)確性。因此,合理、高效、巧妙地結(jié)合這兩種方法在提升VO系統(tǒng)的準(zhǔn)確性和魯棒性方面具有巨大的潛力。
(5)減小網(wǎng)絡(luò)的參數(shù)和計算量。當(dāng)前,基于深度學(xué)習(xí)模型的參數(shù)過多,計算量過大,難以在實(shí)際的移動設(shè)備上進(jìn)行部署運(yùn)行。因此,可以考慮從網(wǎng)絡(luò)的設(shè)計上出發(fā),使用網(wǎng)絡(luò)蒸餾等方法減小網(wǎng)絡(luò)的參數(shù)量,提升網(wǎng)絡(luò)的計算速度,以便于更好地在移動端部署。
(6)提升深度學(xué)習(xí)方法的泛化性?;谏疃葘W(xué)習(xí)的方法從數(shù)據(jù)中進(jìn)行學(xué)習(xí),因此其在面對與訓(xùn)練集場景差異較大的場景時,精度會有所下降,導(dǎo)致方法的應(yīng)用受限。因此可以考慮使用域泛化、域自適應(yīng)等方法使網(wǎng)絡(luò)在面對新場景時,依然保持高準(zhǔn)確率。
(7)構(gòu)建大型的多場景數(shù)據(jù)集?;谏疃葘W(xué)習(xí)方法的精度和魯棒性很大程度上取決于數(shù)據(jù)集的規(guī)模和質(zhì)量。因此收集更大、包含場景更多的數(shù)據(jù)集可以有效地提升基于深度學(xué)習(xí)方法的準(zhǔn)確性和魯邦性。
(8)使用更加先進(jìn)和新穎的深度學(xué)習(xí)方法。隨著近年深度學(xué)習(xí)技術(shù)的蓬勃發(fā)展,其在各個領(lǐng)域的使用也越來越廣泛,然而在VO任務(wù)中,大多只使用一些簡單和通用的深度學(xué)習(xí)框架和方法,如CNN、RNN、GAN等。因此將更多的深度學(xué)習(xí)技術(shù)引入到VO任務(wù)中,例如圖卷積神經(jīng)網(wǎng)絡(luò)GNN等來實(shí)現(xiàn)更準(zhǔn)確、速度更快的位姿圖優(yōu)化,使用attention機(jī)制來處理動態(tài)物體等。
近年來,基于深度學(xué)習(xí)的視覺里程計取得了蓬勃的進(jìn)展,其在移動機(jī)器人、AR/VR、自動駕駛中得到了廣泛應(yīng)用。本文分析總結(jié)了基于深度學(xué)習(xí)的視覺里程計的發(fā)展路線,通過回顧這些重要的工作,可以看到一些重要的問題得到了解決,但目前仍然存在許多挑戰(zhàn)性的問題待學(xué)者們研究攻克。相信在從弱人工智能時代向強(qiáng)人工智能時代轉(zhuǎn)變發(fā)展的歷史進(jìn)程中,基于深度學(xué)習(xí)的視覺里程計將在人與環(huán)境、機(jī)器與環(huán)境的交互中發(fā)揮越來越重要的作用。