鄒浩東,昌 敏,2*,郭金庫,白俊強(qiáng)
(1. 西北工業(yè)大學(xué)無人系統(tǒng)技術(shù)研究院,西安 710072;2. 西北工業(yè)大學(xué)深圳研究院,深圳 518057)
近年來,無人機(jī)因其高機(jī)動性和日益完備的功能性而備受關(guān)注。但在一些復(fù)雜環(huán)境中,傳統(tǒng)的傳感器通信和感知能力都被嚴(yán)重限制,這導(dǎo)致無人機(jī)往往無法準(zhǔn)確感知周圍環(huán)境并做出正確的行動,因此,高性能的魯棒的自主導(dǎo)航能力對于無人機(jī)的發(fā)展和應(yīng)用具有重要意義。
同步定位與建圖(Simultaneous Localization And Mapping,SLAM)是一種能夠讓機(jī)器人獨立估計出自身在環(huán)境中的位置并同步構(gòu)建出周圍環(huán)境地圖的技術(shù),由Smith 在1986 年首次提出,后被廣泛應(yīng)用于增強(qiáng)現(xiàn)實、自動駕駛等領(lǐng)域。相機(jī)作為一種價格低廉、小體積、易部署、信息豐富的傳感器,已成功應(yīng)用于SLAM技術(shù)中,僅使用或主要使用相機(jī)作為傳感器的SLAM 被稱為視覺SLAM(Visual SLAM,VSLAM)。如無特指,本文中出現(xiàn)的SLAM均指視覺SLAM。
近些年,許多學(xué)者在視覺SLAM領(lǐng)域進(jìn)行了大量研究,并取得了很多成果,提出的一些方案在定位精度、建圖效果和魯棒性等方面也有較好的效果,比如間接法方案ORB-SLAM3[1]、直接法方案DSO[2]以及半直接法方案SVO[3],支持多傳感器融合的VINS-Fusion[4]等,都能魯棒地完成實時自身定位與環(huán)境地圖構(gòu)建。但在高速、高動態(tài)范圍等挑戰(zhàn)性場景中,傳統(tǒng)相機(jī)并不能很好地捕獲環(huán)境信息,進(jìn)而影響視覺SLAM方案的準(zhǔn)確性和實時性。
事件相機(jī)(Event Camera)[5]是一種新興的仿生傳感器,其與傳統(tǒng)相機(jī)最大的不同在于它并不以固定的幀率捕獲圖像,而是異步地響應(yīng)視場范圍內(nèi)每個像素的亮度變化,這種輸出被稱為“事件”。一個“事件”一般包含亮度發(fā)生變化的位置、時間和極性。此外,比起傳統(tǒng)相機(jī),事件相機(jī)具有高時間分辨率(μs 級)、低功耗、高動態(tài)范圍(140 dB)和高像素帶寬(kHz 級)等優(yōu)秀特性,從而可以減少運動模糊。因此,事件相機(jī)在無人機(jī)感知方面具有很大的潛力,目前事件相機(jī)已經(jīng)應(yīng)用于許多領(lǐng)域,如可在不受控的照明、延遲和電源下操作的可穿戴電子設(shè)備[6-7];目標(biāo)跟蹤、檢測和識別[8-12];深度估計、結(jié)構(gòu)光3D 掃描、光流估計[13-19];高動態(tài)范圍(High Dynamic Range,HDR)圖像重建[20-22]等。由于輸出形式的特殊性,需要新的方法來處理“事件”這一形式的輸出,從而釋放其潛力。
本文首先對SLAM 技術(shù)進(jìn)行概述,介紹當(dāng)前比較成熟的事件相機(jī)種類,并簡述其傳感原理。然后,列舉事件數(shù)據(jù)的不同表示方法,梳理基于事件的視覺SLAM 技術(shù)發(fā)展歷程。最后,對基于事件的視覺SLAM 作了總結(jié)并展望了未來發(fā)展趨勢。
SLAM 的目標(biāo)是自身定位與增量式環(huán)境構(gòu)建,主要解決在未知環(huán)境中移動機(jī)器人的自主感知問題。SLAM 的主流技術(shù)框架如圖1 所示,主要步驟包括:前端視覺里程計(Visual Odometry,VO)、后端優(yōu)化、回環(huán)檢測、建圖。以下分別對這幾個步驟進(jìn)行概述。
圖1 SLAM技術(shù)框架Fig.1 Pipeline of SLAM
前端視覺里程計根據(jù)若干個連續(xù)時刻的傳感器觀測數(shù)據(jù),給出當(dāng)前時刻自身運動的估計,作為后端優(yōu)化的初值。根據(jù)優(yōu)化過程中誤差的不同定義方式可將SLAM 方案大致分為間接法(Indirect Method)SLAM[23]和直接法(Direct Method)SLAM[2]。間接法也稱為特征法(Feature-based Method),需要從相機(jī)捕獲的圖片中選出一定數(shù)量具有代表性的點或線,稱為特征,再在不同幀中進(jìn)行特征檢測和基于相同特征描述子的特征描述與匹配(如圖2 所示),以特征的重投影誤差為優(yōu)化目標(biāo)進(jìn)行相機(jī)的相對位姿優(yōu)化,因此,當(dāng)環(huán)境中紋理較少,特征不足的時候間接法容易失效。直接法則通過最小化光度誤差對位姿和地圖進(jìn)行優(yōu)化,不同于間接法只使用特征進(jìn)行位姿估計,直接法往往會利用圖像上大量像素點的光度信息,因此不需要對圖像進(jìn)行預(yù)處理,但此方法基于一個強(qiáng)假設(shè),即灰度不變假設(shè),因此在前后幀光照相差較大時直接法容易失效。一些學(xué)者結(jié)合兩者優(yōu)點,提出了半直接法前端視覺里程計算法[3]。
圖2 當(dāng)前雙目圖像對(下)與最新關(guān)鍵幀(上)的匹配[24]Fig.2 Match between the current stereo image pair (bottom)and the latest keyframe (top)[24]
后端優(yōu)化就是對前端視覺里程計估計的狀態(tài)進(jìn)行進(jìn)一步優(yōu)化。SLAM 后端往往會把所有待優(yōu)化變量放進(jìn)一個統(tǒng)一的優(yōu)化框架進(jìn)行同時優(yōu)化,問題可以簡單表述為“從帶噪聲的觀測求解狀態(tài)的最優(yōu)估計”。從實現(xiàn)手段的角度,后端優(yōu)化主要分為濾波器法和非線性優(yōu)化法。濾波器法基于馬爾可夫假設(shè),認(rèn)為當(dāng)前時刻狀態(tài)僅基于上一時刻狀態(tài),核心在于對狀態(tài)量不斷進(jìn)行更新和迭代。非線性優(yōu)化法則同時考慮所有待優(yōu)化的狀態(tài)變量,最大化其后驗概率。一般包括自身位姿和地圖點的位置,對于一些特殊的系統(tǒng)而言,一些傳感器參數(shù)也會加入優(yōu)化過程。非線性優(yōu)化法的核心在于構(gòu)建一個以自身位姿、地圖點位置為優(yōu)化變量,以噪聲方差為優(yōu)化目標(biāo)的最小二乘問題,這類似于恢復(fù)運動結(jié)構(gòu)(Structure From Motion,SFM) 中的光束法平差(Bundle Adjustment,BA)。在早期,這種考慮所有狀態(tài)的全局優(yōu)化方法并不適用于SLAM,而后狀態(tài)量之間的信息矩陣的稀疏性被發(fā)現(xiàn),此方法也開始應(yīng)用。
地圖的內(nèi)容主要取決于任務(wù)需求,主要有柵格地圖、直接表征地圖、點云地圖以及拓?fù)涞貓D等。
回環(huán)檢測是讓機(jī)器人能夠識別出曾經(jīng)到過的場景從而消除累計誤差的步驟。在大場景中,這種只靠自身傳感器實現(xiàn)定位的方法會存在越來越大的累計誤差,對于單目系統(tǒng)甚至?xí)霈F(xiàn)尺度的累計誤差。回環(huán)檢測就是讓機(jī)器人在運動到之前到過的位置的時候能夠意識到自己到過,從而對系統(tǒng)的歷史軌跡、地圖等狀態(tài)量做一次系統(tǒng)的修正,遏制更大的累計誤差,目前比較成熟的回環(huán)檢測方法是基于詞袋模型(Bag-of-Words,BoW)進(jìn)行判別。
事件相機(jī)的前身是硅視網(wǎng)膜(Silicon Retina),自出現(xiàn)以來,已經(jīng)有了多種商業(yè)化產(chǎn)品,其中最成熟、最典型的事件相機(jī)主要包括動態(tài)視覺傳感器(Dynamic Viston Sensor,DVS)[25]、基于異步時間的圖像傳感器(Asynchronous Time-based Image Sensor,ATIS)[26]和動態(tài)有源像素視覺傳感器(Dynamic and Active Pixel Vision Sensor,DAVIS)[27-28]三種,以下對這三種主要的事件相機(jī)進(jìn)行介紹。
2.2.1 DVS
2008 年,Lichtstiner 提出第一個商用事件相機(jī)DVS,DVS 的每個像素在連續(xù)時間內(nèi)獨立量化局部相對強(qiáng)度變化,從而產(chǎn)生峰值事件,圖3 展示了其事件生成原理。
圖3 DVS工作原理[25]Fig.3 Principle of DVS[25]
它將有源連續(xù)時間對數(shù)光感受器(Active Continuous-time Front-end Logarithmic Photoreceptor)、自定時開關(guān)電容差分電路(Self-timed Switchedcapacitor Differencing Circuit)和雙晶體管比較器(Two-transistor Comparators)相結(jié)合,從而實現(xiàn)像素區(qū)域內(nèi)的低錯配、寬動態(tài)范圍和低延遲。
2.2.2 ATIS
2011年,Posch等提出ATIS。ATIS基于有源像素陣列,其中每個像素包含基于事件的變化檢測單元和基于脈沖寬度調(diào)制(Pulse-Width-Modulation,PWM)的曝光測量單元。其基于事件的變化檢測電路基于DVS 像素單元,因此功能也是等價的。此外,當(dāng)某像素的變化檢測單元檢測到一定幅度的亮度變化時,曝光測量單元就會啟動新的測量從而得到強(qiáng)度信息,具體來說,當(dāng)該像素上出現(xiàn)光照變化,其電容兩端的電壓下降,從高電平降至低電平的時間長短就代表該像素的強(qiáng)度大小。ATIS 只會在有光照變化,產(chǎn)生事件的像素輸出強(qiáng)度信息,進(jìn)一步提煉了視覺數(shù)據(jù)。
2.2.3 DAVIS
2014 年,Brandli 等提出DAVIS。DAVIS 的出現(xiàn)是為了將事件相機(jī)的高動態(tài)范圍、亞毫秒級延遲等優(yōu)秀特性應(yīng)用于一些基于圖像絕對強(qiáng)度信息的算法中。DAVIS 對DVS 和有源像素傳感器(Active Pixel Sensor,APS) 進(jìn)行了像素級的結(jié)合,以固定頻率輸出強(qiáng)度幀同時異步輸出事件,如圖4 所示。其與ATIS 的不同首先在像素的結(jié)構(gòu)上,DAVIS 像素實現(xiàn)事件和強(qiáng)度幀共同輸出的結(jié)構(gòu)共用一個光電二極管,因此像素區(qū)域更小,更大的區(qū)別在于像素強(qiáng)度的捕獲上,DAVIS 使用APS 同步曝光,而ATIS 則是事件驅(qū)動。表1 中比較了這幾種事件相機(jī)的代表機(jī)型的性能。
表1 常見事件相機(jī)比較Table 1 Comparison between common events camera
圖4 DAVIS輸出模式[27-28]Fig.4 Output mode of DAVIS[27-28]
最常用的評估SLAM估計誤差的指標(biāo)是絕對軌跡誤差(Absolute Trajectory Error,ATE)和相對誤差(Relative Error,RE),本小節(jié)將對這兩種誤差作簡要介紹并進(jìn)行比較,同時一種更直觀的可視化表示如圖5所示。
圖5 絕對軌跡誤差和相對誤差圖解[31]Fig.5 Illustration of ATE and RE[31]
3.1.1 ATE
其中,估計值與真值之間的相對旋轉(zhuǎn)ΔRi、相對位置Δpi、相對速度Δvi可表示為
為了量化整個軌跡的誤差水平,通常使用均方根誤差(Root Mean Square Error,RMES)。
式中,∠(·)代表將旋轉(zhuǎn)矩陣轉(zhuǎn)換為角軸表示。
ATE 可以直接反映位置、旋轉(zhuǎn)和速度誤差的絕對大小,并且可以較容易地用于比較,但它對錯誤發(fā)生的時間很敏感,比如在軌跡伊始的旋轉(zhuǎn)估計的誤差比起結(jié)束時往往給出更大的ATE。因此,除了ATE,RE也被廣泛用于SLAM的性能評估。
3.1.2 RE
VIO 系統(tǒng)是加入IMU (Inertial Measurement Unit)測量的VO系統(tǒng),對于一個VO/VIO系統(tǒng),全局位置和偏航角往往是不可獲得的,因此可以通過測量不同時刻的狀態(tài)之間的相對關(guān)系來評估狀態(tài)估計的質(zhì)量。
具體而言,對于一段軌跡,可以通過一些標(biāo)準(zhǔn)從所有狀態(tài)量中選取幾對狀態(tài)
式中,e>s,每一對狀態(tài)對應(yīng)一段子軌跡。對于每個dk,相對誤差δdk的計算方式與絕對軌跡誤差類似。具體地說,定義和之間的誤差需要先將進(jìn)行軌跡對齊,該步驟通常通過Umeyama方法[32]完成
式中,{s′,R′,t′}代表軌跡對齊變換,滿足
此時相對誤差δdk可以定義為
因此,全部的狀態(tài)對之間的總誤差可以表示為
RE 的計算并不只生成一個數(shù)字來表征誤差的大小,而是生成所有滿足特定標(biāo)準(zhǔn)的子軌跡的誤差集合,因此可以計算其中位數(shù)、平均值或RMSE 值等統(tǒng)計數(shù)據(jù),相對于ATE 提供了更多的信息。通過定義不同的標(biāo)準(zhǔn)來選擇加入誤差計算的狀態(tài)對,RE 可以具有不同的含義。一種常見的做法是選擇沿著軌跡間隔一定距離的狀態(tài)對,空間距離上接近的狀態(tài)對的RE 反映了局部一致性,而空間距離較大的狀態(tài)對的RE 則反映了系統(tǒng)長期運行的精度。RE 的缺點在于計算相對復(fù)雜。
SLAM 方案的研究和開發(fā)在很大程度上依賴于公開可用的數(shù)據(jù)集的數(shù)量以及質(zhì)量,由于事件相機(jī)這種傳感器的發(fā)展時間還比較短,帶有事件數(shù)據(jù)的可用于SLAM的數(shù)據(jù)集也相對較少,本節(jié)對目前可用的包含事件數(shù)據(jù)的數(shù)據(jù)集進(jìn)行了總結(jié)和對比,以便針對不同任務(wù)需求和基于不同硬件水平開展基于事件的視覺SLAM研究,具體信息見表2。
表2 包含事件的數(shù)據(jù)集對比Table 2 Comparison of datasets containing events
由于事件流這種特別的異步輸出形式很難直接用于當(dāng)前成熟的計算機(jī)視覺算法,為了從事件數(shù)據(jù)中提取到更多更有意義的信息從而完成后續(xù)任務(wù),近年來許多學(xué)者根據(jù)不同的任務(wù)需求,用不同的方式表示或處理事件數(shù)據(jù)?,F(xiàn)有的事件數(shù)據(jù)處理方法主要包括逐事件直接處理法、事件包處理法、事件流壽命估計處理法、事件幀處理法、時間平面處理法和運動補償事件幀處理法,以下對這些處理方法進(jìn)行整理。
逐事件直接處理法不對事件做預(yù)處理,直接投入后續(xù)步驟。以逐個事件作為輸入的方法一般包括使用概率濾波器或者使用脈沖神經(jīng)網(wǎng)絡(luò)(Spiking Neural Networks,SNN),它們將一些由過去的事件構(gòu)建的附加信息與新傳入的事件數(shù)據(jù)異步融合以產(chǎn)生輸出。SNN 是一種生物網(wǎng)絡(luò),專門處理以峰值形式而不是數(shù)值形式傳遞的信息。因其基于峰值的計算模型,可以處理來自基于事件的異步傳感器的輸出,而不需要任何預(yù)處理,與標(biāo)準(zhǔn)的人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)不同,功率極低。2018 年,Gallego 等設(shè)計了一種魯棒的濾波器[42],直接以逐個事件作為輸入,同時將貝葉斯估計、后驗逼近和指數(shù)族分布與傳感器模型相結(jié)合,將問題建模成一個時變系統(tǒng),狀態(tài)量包括事件相機(jī)的運動學(xué)描述,貝葉斯濾波器從觀測數(shù)據(jù)遞歸地估計系統(tǒng)狀態(tài)。2020 年,Gehrig 等首次提出了從事件相機(jī)給定事件的數(shù)值的時間回歸問題[43],專門研究了帶有SNN 的旋轉(zhuǎn)事件相機(jī)的3 自由度(Degree Of Freedom,DOF)角速度的預(yù)測,該方法直接根據(jù)不規(guī)則的異步事件輸入預(yù)測角速度,因此事件相機(jī)的高時間分辨率、高動態(tài)范圍、無運動模糊的優(yōu)點得以保留。
事件包處理法是一種匯集一批事件集中處理的方法。單個事件所攜帶的信息十分有限,所以匯集一批事件再進(jìn)行統(tǒng)一處理是一種很自然的思想。實際上,匯集事件的方法往往是選取一個時間段,將這個時間段內(nèi)的所有事件匯集成一個事件“包”,再交由后續(xù)處理。2012 年,Rogister 等所提出的一種解決運動物體上的立體匹配問題的算法[44]就是基于這種形式的事件數(shù)據(jù)處理。2016年,Rebecq 等提出EMVS (Event-based Multi-View Stereo)方法[16],采用事件包處理法解決了從一組已知視點估計密集3D 結(jié)構(gòu)的問題(如圖6 所示)。由于每個事件計算一次真實相機(jī)的位置再反投影的計算代價太大,該方法同樣是將很多事件累積起來,進(jìn)行批量的反投影計算。
圖6 EMVS恢復(fù)3D結(jié)構(gòu)[16]Fig.6 3D reconstruction by EMVS[16]
圖7 事件的壽命估計[45]Fig.7 Lifetime estimation of the event[45]
事件流壽命估計處理法是一種將異步稀疏事件流變?yōu)闀r間上連續(xù)的增強(qiáng)事件流的方法。2015 年,Mueggler 等借鑒了基于事件的光流估計方法,開發(fā)了一種基于光流估計的事件流增強(qiáng)算法,其利用光流得到事件在圖像平面上的速度,再基于運動速度擴(kuò)展每個事件的生命周期,從而生成時間上的連續(xù)的增強(qiáng)事件流[45]。在此方法中(如圖 7),生命周期τ表示當(dāng)前事件位置的亮度梯度需要多長時間才能觸發(fā)鄰近像素中的新事件,對于噪聲,生命周期為0。因此在這種表示法中,一個事件可表示為(xk,yk,tk,pk,τ,vx,vy),其中,xk,yk代表事件觸發(fā)的像素位置,tk代表事件觸發(fā)的時間戳,pk代表時間極性,τ代表該事件的生命周期,vx,vy代表事件在圖像平面上的速度。即使對于某個時刻,輸出也會包含附近時間段的所有事件同時還避免了運動模糊。通過這種表示方法,事件流的處理既可以使用傳統(tǒng)的計算機(jī)視覺的方法,同時還避免了時間窗口的選擇與優(yōu)化。事件流變成了時間連續(xù)的,后續(xù)的事件處理算法可以以特定的時間間隔(時間窗口的起點和終點都可以任意選擇)或選取某確定的時刻提取出事件進(jìn)行處理。
事件幀處理法是一種將多個事件融合成一個圖像幀的方法,融合得到的圖像幀稱為事件幀。這種方法以類似于傳統(tǒng)強(qiáng)度幀的方式作為后續(xù)輸入,從而適配成熟的基于傳統(tǒng)圖像幀的計算機(jī)視覺算法。2017 年,Rebecq 等提出的VIO 系統(tǒng)[46]中,通過選取時間窗口的方式將事件流分開,再將每個時間窗口內(nèi)的事件融合成一個事件幀參與后續(xù)狀態(tài)估計(如圖8所示)。
圖8 通過選取時間窗口合成事件幀[46]Fig.8 Event frames by selecting a time window[46]
2018年,Liu等提出一種自適應(yīng)切片累積方法實現(xiàn)多個事件融合成事件幀[47],此方案基于塊匹配光流(Block-Matching Optical Flow,BMOF),方案流程如圖9 所示,先將事件存儲為2D 事件直方圖,當(dāng)有新事件觸發(fā),通過增加像素值將新事件累計到當(dāng)前切片,累計結(jié)束之后,將每個切片的第一個事件的時間戳和最后一個事件的時間戳的平均值作為這個切片的時間戳,使用另外的兩個切片根據(jù)當(dāng)前事件位置計算光流(Optical Flow,OF)。此外,為使得單個切片上的事件的位移較小同時保證切片上事件不至太稀疏,該方案提出了一種新的切片輪轉(zhuǎn)的方法,即同時利用前饋和反饋的方式控制來調(diào)整切片時間。其中,前饋切片輪轉(zhuǎn)基于區(qū)域事件數(shù)量(Area Event Number),其規(guī)則是在區(qū)域的任何一個事件數(shù)超過閾值時觸發(fā)切片輪轉(zhuǎn),這樣更適應(yīng)于動態(tài)場景,而反饋切片輪轉(zhuǎn)的邏輯是在每次切片輪轉(zhuǎn)之后創(chuàng)建一個空白的OF 分布直方圖,然后用它來收集OF 結(jié)果,直到下一次切片輪轉(zhuǎn)。反饋切片輪轉(zhuǎn)的核心是計算直方圖的平均匹配距離,如果大于搜索半徑的一半,表示切片持續(xù)時間太長,從而降低切片閾值,反之增加。通過這種方式,切片時機(jī)隨當(dāng)前動態(tài)程度自適應(yīng)調(diào)整,單個事件幀包含的信息足夠豐富,亦能減少運動模糊。
圖9 自適應(yīng)切片輪轉(zhuǎn)法[47]Fig.9 Adaptive slice rotation[47]
時間平面(Time-Surface)表示法是一種基于事件的二維地圖表示,其中每個像素位置存放一個與時間相關(guān)的值,一般而言,這個值是該位置運動歷史的函數(shù),往往越大的值對應(yīng)著越新的事件。2017 年,Lagorce 等首次提出事件的時間平面表示法[48],這種時間平面的生成過程大致如圖10所示,圖中(a)、(b)、(c)分別代表不同的運動,第一列代表運動方式,第二列代表ATIS 的響應(yīng)數(shù)據(jù),其中白點為“ON”事件,黑點為“OFF”事件,第三列則表示由第二列紅圈中的事件獲得的Time-Surface。使用這種表示法的優(yōu)點是可以顯式地體現(xiàn)事件的豐富的時間信息,并且可以實現(xiàn)異步更新,缺點在于因其高度壓縮信息,每個像素只保留一個時間戳,因此對于像素頻繁峰值的紋理場景,有效性會降低。與之類似,2018 年,Sironi 等提出一種方法將事件流轉(zhuǎn)換為平均時間表面直方圖[49],具體方法是使用本地內(nèi)存單元來存儲過去的時間信息,其應(yīng)用是送入支持向量機(jī)(Support Vector Machine,SVM) 完成目標(biāo)檢測和識別。這種表示法可以認(rèn)為丟棄了時間維度,但能做到異步更新。2021 年,Zhou 等提出一個雙目事件相機(jī)系統(tǒng)[50],基于時間平面表示法,利用相機(jī)圖像平面上事件的時空一致性(Spatio-temporal Consistency)來解決視覺里程計的定位和建圖子問題。
圖10 事件的時間平面表示[48]Fig.10 Time-surface of events[48]
運動補償事件幀表示法是一種基于相機(jī)自身運動估計的改進(jìn)的事件幀表示法。普通的事件幀表示法是把大量異步事件融合之后得到一幀圖像作為后續(xù)輸入,這種簡單的融合增加了信噪比,集成了大量信息,但在這些融合的事件中,有很多事件是“同源”的,即由同一物體在不同時間觸發(fā)的事件,這種情況下,如果一個事件幀內(nèi)融合的事件太多,就會導(dǎo)致運動模糊[46](如圖11所示,左上圖為標(biāo)準(zhǔn)圖像,右上圖為3000 事件合成的事件幀,信噪比較低,左下圖為30000事件合成的事件幀,存在運動模糊,右下圖是帶有運動補償?shù)?0000事件合成的事件幀),針對這種因同源事件產(chǎn)生的運動模糊,一個直接有效的方法是估計相機(jī)運動,對事件幀進(jìn)行運動補償。2017 年,Gallego 等提出一種運動補償?shù)乃枷耄?1],其認(rèn)為當(dāng)邊緣在圖像平面上運動時,它會在所遍歷的像素上觸發(fā)事件,因此可以將同源事件扭曲到同一個參考時間,再將其對齊進(jìn)行最大化(即讓其盡可能重合)從而估計邊緣與相機(jī)本身的相對運動,進(jìn)而產(chǎn)生扭曲事件的清晰圖像。這種表示有一個衡量事件與候選運動擬合程度的標(biāo)準(zhǔn),即扭曲事件產(chǎn)生的邊緣越清晰,擬合效果越好。同年,Rebecq 等受這種方法的啟發(fā),利用IMU 實現(xiàn)事件幀的運動補償,從而避免了因累積事件導(dǎo)致的運動模糊[46]。2019 年,Gallego等針對運動補償,提出了22 種損失函數(shù)以分析運動補償方法中的事件對齊,并在公開數(shù)據(jù)集上比較了這些損失函數(shù)的準(zhǔn)確性和運行性能[52]。此外,由于這種運動補償?shù)乃枷胧菢闼氐?,所以除了?yīng)用于事件幀,還有學(xué)者將其運用在一些其他的事件數(shù)據(jù)表示法中,從而產(chǎn)生了基于運動補償?shù)狞c集表示法[53-54]以及基于運動補償?shù)臅r間平面表示法[55-56]。
圖11 事件幀的運動模糊[46]Fig.11 Motion blur of the event frame[46]
傳統(tǒng)的視覺SLAM基于傳統(tǒng)相機(jī)輸出的強(qiáng)度圖像幀,幀率較低,每一幀信息豐富,每個像素都有一個或多個數(shù)值代表不同通道的光強(qiáng)?;诖?,傳統(tǒng)的視覺SLAM技術(shù)針對這種輸出形式發(fā)展出了很多特有的方法和概念,如特征檢測、圖像對齊等。事件與傳統(tǒng)圖像幀有著本質(zhì)的不同,這也就導(dǎo)致這些方法和概念的不直接適用,因此,基于事件的視覺SLAM 算法往往和傳統(tǒng)算法有較大差別。新的數(shù)據(jù)形式導(dǎo)致了傳統(tǒng)算法的應(yīng)用較為困難,但事件相機(jī)本身的高動態(tài)范圍、低延遲、低功耗等優(yōu)秀特性代表了其對運動和變化的高度敏感性,因此,其非常適用于視覺SLAM領(lǐng)域。本小節(jié)主要對基于事件的視覺SLAM技術(shù)進(jìn)行回顧和梳理,表3 中對一些主要的框架進(jìn)行了匯總。同時,本章分別對僅基于事件的SLAM和主要基于事件的多傳感器融合SLAM的發(fā)展過程中的重要節(jié)點進(jìn)行了梳理。
表3 一些基于事件的SLAM方案比較Table 3 Comparison of some event-based SLAM
SLAM問題可以拆分成自身定位和環(huán)境構(gòu)建兩個子問題,在前期,事件數(shù)據(jù)的其他表示法還不成熟,基于事件的算法對兩個子問題還不能兼顧,而是先聚焦于自身的6DOF定位,其中,最先發(fā)展起來的是對相機(jī)純旋轉(zhuǎn)問題的3DOF 估計。2011年,Cook 等提出一種在交互網(wǎng)絡(luò)中通用的信息傳遞算法[21],不考慮平移,針對無人機(jī)的純旋轉(zhuǎn)問題,從事件流中同時估計自身運動、圖像強(qiáng)度和光流。2012 年,Weikersdorfer 等提出一種基于事件的粒子濾波算法[57],這也是首個基于事件相機(jī)的姿態(tài)跟蹤。該系統(tǒng)是實時運行的,并且只需要與使用的粒子數(shù)量成比例的最小內(nèi)存要求。但在這項工作中,地圖是需要提前構(gòu)建和固定的,這對于現(xiàn)實世界的應(yīng)用是一個嚴(yán)重的限制,地圖應(yīng)該由系統(tǒng)直接生成而不需要人工干預(yù)或提前準(zhǔn)備。2013 年,Weikersdorfer 等提出一種基于事件的SLAM 方案[58],應(yīng)用于二維場景,具體來說,其針對平面運動,即一個機(jī)器人在地面移動,并利用天花板上的特征完成自身定位(如圖12 所示)。該方案在完成自身定位的過程中自動生成地圖,是真正意義上基于事件的視覺SLAM系統(tǒng)。但這種方法基于一種過時的、低分辨率的事件相機(jī)模型,并依賴于完全體素化的尺寸有限的環(huán)境,這類概率方法的準(zhǔn)確性高度依賴于深度更新的頻率,因此限制了運動的速度。2014 年,Kim 等提出一種針對純旋轉(zhuǎn)的狀態(tài)估計方法[22],其基于概率濾波、基于逐個事件實現(xiàn)相機(jī)自身的3D 姿態(tài)估計和場景的高分辨率高動態(tài)范圍全景圖生成。
圖12 基于事件的2D-SLAM[58]Fig.12 Event-based 2D-SLAM[58]
2017 年,Gallego 等提出一種估計自身旋轉(zhuǎn)的方法,核心是以對比度最大化(Contrast Maximization)的方式通過邊緣對齊進(jìn)行運動估計,如圖13 所示。該方案在百萬級事件數(shù)據(jù)集中得到了驗證,角速度誤差大約為2%(標(biāo)準(zhǔn)偏差)和8%(最大偏差),并且可以跟蹤非常高速的運動(≈1000°/s)。因為應(yīng)用了滑動窗口方法[24],該方法可以以事件分辨率對應(yīng)的速率提供角速度估計(1 μs)。
圖13 最大化對比度估計旋轉(zhuǎn)[51]Fig.13 Estimation rotation by Contrast Maximization[51]
2014 年,Mueggler 等提出一種位姿跟蹤方案[60],僅使用DVS 完成自身完整的6DOF 位姿估計,成功演示了在高達(dá)1200°/s 的轉(zhuǎn)速下成功的位姿跟蹤;2015 年,Conradt 提出一種簡單的從事件信息中提取光流的混合算法[72],這種算法將生物啟發(fā)式的低級傳感器和生物學(xué)信息編碼與一種靈活的非大腦式(Non-Brain-Style)算法相結(jié)合,計算空間相鄰像素之間的時間差來推測運動,作者將其應(yīng)用于相機(jī)自身的運動估計,首先計算光流,然后計算角速度。
隨著相關(guān)技術(shù)的不斷發(fā)展,利用事件相機(jī)執(zhí)行位姿跟蹤所需的算力也在不斷降低,在中央處理器(Central Processing Unit,CPU)上實時運行的位姿跟蹤方案逐漸變得可行,構(gòu)建地圖所需的大量算力則主要依靠圖形處理器(Graphics Processing Unit,GPU)提供。
2016 年,Kim 等提出了第一個僅依賴事件流實現(xiàn)6DOF 位姿跟蹤和三維重建的方法[61]。該方案是一個基于三個解耦的概率濾波器的系統(tǒng),實現(xiàn)6DOF 姿態(tài)跟蹤、相對于關(guān)鍵幀的場景逆深度估計和場景對數(shù)強(qiáng)度梯度估計,此外,該方案將每個關(guān)鍵幀的梯度估計升級為強(qiáng)度圖像,并允許從低比特率輸入事件流中恢復(fù)具有空間和時間的超分辨率的實時視頻強(qiáng)度序列。方案算力要求較高,需要GPU 實時恢復(fù)圖像強(qiáng)度和深度,且在初始化階段需要平面運動假設(shè)等深度估計約束,不適用于純旋轉(zhuǎn)估計。2017 年,Reinbacher 等提出一種使用事件相機(jī)實現(xiàn)全景建圖和跟蹤的方法[73],方法靈感來源于DTAM、LSD-SLAM、DSO[2]這類直接對齊方法,即最小化當(dāng)前幀與世界地圖之間的光度誤差。其將跟蹤描述為一個優(yōu)化問題,利用類似于Kim 等在2014年提出的方法[22]中一樣的全景圖,通過跟蹤攝像機(jī)在全景空間上的軌跡來估計旋轉(zhuǎn)運動,可以在CPU 上實時運行,所提出的建圖方案可以準(zhǔn)確地表示每個位置生成事件的概率,但地圖更新和梯度計算是由GPU 完成的。2017 年,Rebecq 等提出EVO[63],這是一個不依賴其他傳感器,僅利用事件實現(xiàn)無人機(jī)的6DOF 運動和自然場景的三維SLAM 系統(tǒng),方案流程如圖14 所示,其將構(gòu)建出來的事件幀與當(dāng)前空間地圖對齊,對事件邊緣進(jìn)行跟蹤,同時將光度誤差替換為事件圖像和地圖模板兩個邊緣圖像之間的幾何誤差,建圖模塊則基于EMVS 方法[16]生成視差空間圖像(Disparity Space Image,DSI),構(gòu)建了具有可靠深度的三維邊緣圖。該方法不需要進(jìn)行圖像強(qiáng)度的恢復(fù)就可以估計深度。EVO 平均每秒可以處理150 萬事件,在中速情況下比實時快1.25~3 倍,在較高速情況下比實時慢2 倍。該方法同樣在初始化階段需要平面運動假設(shè)等深度估計約束,不適用于純旋轉(zhuǎn)估計。
圖14 EVO流程框圖[63]Fig.14 Pipeline of EVO[63]
目前基于事件的視覺SLAM 方案以單目為主。雖然對于傳統(tǒng)的視覺SLAM而言,雙目意味著深度的確定,但異步事件的雙目匹配并不簡單,因此基于雙目事件的SLAM 方案較少。2021 年,Zhou等提出ESVO[50],這是第一個基于事件的雙目VO系統(tǒng),采用事件數(shù)據(jù)的Time-Surface表示法,整體方案致力于最高限度地提高雙目事件流的時空一致性,如圖15 所示。在姿態(tài)跟蹤方面,其將地圖在左目的投影與事件的逆時間平面耦合從而完成位姿優(yōu)化,在建圖方面,它通過融合來自多個視點的深度估計來構(gòu)建基于概率的半稠密3D 地圖。該方案可以實現(xiàn)CPU上的實時運行。
圖15 基于雙目事件的時空一致性優(yōu)化[50]Fig.15 Event-based Stereo Spatiotemporal consistency optimization[50]
圖16 運動補償效果對比[74]Fig.16 Comparison of motion compensation[74]
2021 年,Hadviger 等提出一種基于特征檢測和匹配的雙目事件視覺里程計[66]。通過最小化重投影誤差來實現(xiàn)位姿估計。該方法比起ESVO有兩個重要的優(yōu)點:一是可以使跟蹤頻率適應(yīng)異步事件速率(跟蹤頻率無需預(yù)定義),相較之下,ESVO 有固定的預(yù)定義頻率,當(dāng)沒有足夠的傳入事件時需要重新初始化;二是不需要初始化,相較之下,ESVO 則依賴于在事件的時間平面上成功地執(zhí)行半全局匹配來初始化點云。該方案在一些公開數(shù)據(jù)集上表現(xiàn)出與ESVO 相同的性能。
在基于事件的SLAM方案里,運動補償是一種常見的策略,旨在最大化運動補償事件幀的清晰度來估計在事件流中捕獲的運動,減少運動模糊,運動補償方法中使用最多的就是最大化對比度,近些年也有許多學(xué)者針對最大化對比度這個思想展開了研究。
一般而言,為實現(xiàn)對比度最大化都是采用迭代優(yōu)化算法如共軛梯度,這就需要良好的初始化,2020 年,Liu 等提出一種新的基于分支定界(Branch-and-bound,BnB)的全局最優(yōu)事件估計算法[74],專門用以估計3DOF 的旋轉(zhuǎn),并證明其在求解質(zhì)量上大大優(yōu)于之前的局部優(yōu)化方法(圖 16)。這種方法能夠在約300 s 內(nèi)處理約50000 個事件(對于同樣的輸入,局部最優(yōu)求解器約需要30 s),不能達(dá)到實時要求,但也許可以通過GPU 加速的方式得到更好的性能。2021 年,Kim 等提出一種新的最大化對比度的思路用于旋轉(zhuǎn)和速度估計[75],不僅最大限度地提高單個時間窗口內(nèi)事件圖像的對比度,而且最大限度地提高隨時間觀察到的事件圖像的對比度,可以在筆記本上用單核CPU 實時運行,且在公共數(shù)據(jù)集和真實數(shù)據(jù)集上證明了其最大誤差在3°以內(nèi)。
對比度最大化的方法能夠很大程度上減少運動模糊,但隨著圖像分辨率和時間分辨率的增加,對比度最大化的方法產(chǎn)生的計算開銷太大。因此也有學(xué)者尋求其他減少運動模糊的方法。
2021 年, Liu 等提出時空配準(zhǔn)(Spatiotemporal Registration,STR)用以估計基于事件的旋轉(zhuǎn)運動[76],這種方法還能直接生成特征軌跡,直接有利于后續(xù)基于圖的運動優(yōu)化,甚至可以用于后續(xù)的回環(huán)問題,其與最大化對比度方法的效果對比如圖17 所示。2022 年,Wang 等提出將最大化對比度的思想擴(kuò)展到三維[77],其認(rèn)為運動本身一般是包含平移和旋轉(zhuǎn)的,而這些變換發(fā)生在任意結(jié)構(gòu)的環(huán)境中,因此圖像匹配可能不再由低維單應(yīng)性扭曲表示,從而使常用的扭曲事件圖像(Image of Warped Events,IWE)的應(yīng)用復(fù)雜化?;诖?,該方法將每個事件轉(zhuǎn)化為起點和方向依賴于連續(xù)軌跡參數(shù)的空間射線,不再評估圖像中像素點的密度,而是評估參考視圖前體積中離散位置的射線密度,這個體積稱為扭曲事件體積(Volume of Warped Events,VWE)。
圖17 最大化對比度(左)和時空配準(zhǔn)(右)[76]Fig.17 Contrast Maximization(left) vs Spatiotemporal Registration(right)[76]
傳統(tǒng)視覺SLAM 方案中基于特征的方案有的把線、面等作為特征進(jìn)行匹配參與后續(xù)狀態(tài)估計和建圖,而事件數(shù)據(jù)本身就對邊緣有更明顯和集中的映射,因此基于線特征來完成事件SLAM 也是可行的。2022 年,Chamorro 等提出一種基于線特征、基于事件的SLAM 系統(tǒng)[68],該系統(tǒng)基于PTAM,面向具有突出的直線形狀的人造場景,特別的是,該方案中的跟蹤和建圖線程以顯著不同的速度進(jìn)行并通過機(jī)器人操作系統(tǒng)(Robot Operating System,ROS) 環(huán)境進(jìn)行信息交互。跟蹤模塊使用小事件窗口,旨在以高速率實現(xiàn)6DOF 姿態(tài)和速度估計,為避免瞬時的大算力消耗,建圖模塊使用估計的相機(jī)姿態(tài)從場景中恢復(fù)3D 線。在這種方法中,跟蹤模塊只使用事件數(shù)據(jù),而不創(chuàng)建事件幀或從每個窗口提取特征,建圖模塊也只使用事件和估計的相機(jī)位姿恢復(fù)3D 線。該方案可在高密度線環(huán)境中實時運行。
綜上,對僅基于事件的SLAM發(fā)展過程中的重要節(jié)點梳理如圖18所示。
圖18 僅基于事件的SLAM方案發(fā)展節(jié)點梳理Fig.18 Milestone nodes in the development of event-only-based SLAM
事件相機(jī)輸出的異步事件流往往難以得到足夠的信息。正如一些新型的事件相機(jī)正在融合其他傳感器從而成為一個輸出信息更全面的傳感器,基于事件的SLAM 系統(tǒng)也在謀求多傳感器的融合從而更實時、更魯棒地完成定位與建圖任務(wù)。
5.2.1 事件相機(jī)融合IMU
傳統(tǒng)視覺SLAM的發(fā)展已經(jīng)證明IMU的融合可以幫助SLAM 系統(tǒng)實現(xiàn)更準(zhǔn)確和魯棒的定位和建圖,近些年也有許多學(xué)者將基于事件的SLAM 與IMU 融合,搭建了性能更好的基于事件的VIO 框架,以下對這些工作進(jìn)行梳理。
2017 年,Zhu 等提出第一個基于事件的VIO,稱為“EVIO”[54],其算法框架如圖19 所示,使用兩個最大期望算法(Maximum Expectation,EM)估計特征的光流及特征與事件之間的仿射變換,基于卡爾曼濾波融合基于IMU 的預(yù)測更新和特征軌跡。但最大期望算法的算力要求較高,系統(tǒng)無法滿足實時性。2020 年,F(xiàn)riedel等[78]對EVIO 進(jìn)行擴(kuò)展,提出一種基于經(jīng)過卷積神經(jīng)網(wǎng)絡(luò) (Convolutional Neural Network,CNN)訓(xùn)練后的特征檢測和描述的EVIO,其前端利用神經(jīng)網(wǎng)絡(luò)從異步的時間數(shù)據(jù)中生成圖像幀,這些幀被饋送到一個多狀態(tài)約束卡爾曼濾波 器 (Multi-State Constraint Kalman Filter,MSCKF)后端,后端再使用開發(fā)的CNN 的輸出來執(zhí)行狀態(tài)更新。
2017 年,Rebecq 等受Gallego 等之前提出的角速度估計方案[51]的啟發(fā),利用IMU實現(xiàn)事件幀的運動補償[46],從而避免了因累積事件導(dǎo)致的運動模糊,事件幀的特征檢測和跟蹤通過常規(guī)的FAST角點檢測和LK 光流實現(xiàn),算法的后端基于OKVIS[24]的方法,將IMU 誤差和特征的重投影誤差投入非線性優(yōu)化框架實現(xiàn)位姿估計和優(yōu)化。該系統(tǒng)可以完成CPU 上的實時(在筆記本上比實時平均快50%)6DOF 位姿估計和稀疏建圖,并且精度和效率都比EVIO 更好。該方案除在常規(guī)事件數(shù)據(jù)集上進(jìn)行了驗證,還在一個極高速數(shù)據(jù)集(boxes_6dof,3.2 million events/s)上驗證了可行性。2018 年,Mueggler 等提出一種基于事件的連續(xù)時間表示法的VIO[79],這種表示方法可以原則性地處理事件的異步性質(zhì)并利用IMU 的高頻率特性。該方法使用三次樣條將自身軌跡近似為剛體運動空間中的平滑曲線,并根據(jù)圖像平面中具有幾何意義的誤差測量和慣性測量來優(yōu)化軌跡。但系統(tǒng)的計算消耗較大,比實時方法慢3~13 倍,可通過增加GPU優(yōu)化。
2020 年,Gentil 等提出一種基于線特征的VIO 系統(tǒng)[80],稱為“IDOL”,該方法的前端提取環(huán)境中線段的事件集群,后端通過最小化單個事件和線在圖像空間中的投影之間的點到線的距離來估計系統(tǒng)沿著線的3D 位置的軌跡。提出了一種新的吸引/排斥機(jī)制以準(zhǔn)確估計線的末端,避免它們在事件數(shù)據(jù)中的顯式檢測。結(jié)果表明該方法在大多數(shù)數(shù)據(jù)集上的性能與當(dāng)時最先進(jìn)的視覺慣性里程計框架(ROVIO)在同一個數(shù)量級上,這對DVS 的新算法發(fā)展有很大影響。
5.2.2 事件相機(jī)融合其他傳感器
事件相機(jī)無法單獨獲取深度,因此與事件相機(jī)融合最多的是深度相機(jī)。2014年,Weikersdorfer等對自己在2013 年提出的方案[58]進(jìn)行了3D 擴(kuò)展[33],依靠額外的RGB-D相機(jī)完成深度估計,從而構(gòu)建用于位姿跟蹤的體素網(wǎng)格地圖。算法效率較高,運行速度比實時快20 倍,以數(shù)百赫茲提供位姿更新。2018 年,Gallego 等提出一種6DOF 相機(jī)位姿跟蹤方法[42],其利用RGB-D 相機(jī)應(yīng)用現(xiàn)有的稠密重建方法構(gòu)建了深度光度圖,再利用帶有光度圖的事件相機(jī)估計6DOF 運動,此方法的后端是一個魯棒的濾波器,同時將貝葉斯估計、后驗逼近和指數(shù)族分布與傳感器模型相結(jié)合,不僅跟蹤事件相機(jī)的運動狀態(tài),還同時估計一些傳感器參數(shù),如事件觸發(fā)閾值,這種方法在初始化階段需要平面運動假設(shè)等深度估計約束,不適用于純旋轉(zhuǎn)估計。2022 年,Zuo 等提出一種新的針對深度和事件相機(jī)的混合雙目裝置的實時VO 系統(tǒng)[69],稱為“DEVO”,其對事件數(shù)據(jù)采用Time-Surface 表示法,并同時用于跟蹤和建圖線程,兩線程并行。DEVO 的跟蹤線程只處理事件,并通過有效的3D-2D 邊緣對齊來增量式地估計6DOF 姿態(tài),而局部半稠密深度地圖在建圖線程中以較低幀率更新,這通過從時間平面圖中提取半稠密邊緣圖和從深度相機(jī)讀數(shù)中分配深度值完成。
除了附加深度相機(jī),也有一些方案將事件相機(jī)與傳統(tǒng)相機(jī)結(jié)合。2014 年,Censi 等將DVS 和一個普通CMOS 相機(jī)結(jié)合,提出一個基于事件的概率框架[59],通過單獨處理每個事件,利用事件估計自上一個CMOS 幀以來的相對位移,該方法估計旋轉(zhuǎn)效果很好,但因產(chǎn)生的事件過少而不能用于估計平移。2016 年,Kueng 等提出第一個基于特征跟蹤的、基于事件的VO 系統(tǒng)[62],該系統(tǒng)是一個跟蹤和地圖構(gòu)建并行的可視化系統(tǒng),其對傳統(tǒng)圖像幀進(jìn)行特征檢測,然后通過使用事件流來異步跟蹤稀疏的特征。該算法緊密地結(jié)合了位姿優(yōu)化和基于概率的建圖,實現(xiàn)了自然場景中的自身6DOF 運動估計。該算法每秒平均能夠處理16 萬事件,而正常的運動可能每秒產(chǎn)生105~106事件,更快的運動則會引起數(shù)百萬的事件,因此該方法的應(yīng)用場景也受運動速度的限制。
基于特征的方法適用于標(biāo)準(zhǔn)相機(jī),噪聲強(qiáng)度小,特征易于檢測和跟蹤,而直接法使用所有可用的數(shù)據(jù),包括不符合特征定義的像素,對于事件相機(jī)而言,事件外觀取決于運動和紋理,所以不容易檢測和跟蹤[5](如圖20 所示)。2022 年,Hidalgo-Carrió 等提出第一個基于單目事件和傳統(tǒng)圖像幀的6DOF 直接法VO 方案[70],利用事件生成模型來補充圖像幀,跟蹤傳統(tǒng)圖像幀間盲時間的運動。克服了間接法中外觀失去運動一致性的問題。方案效果在當(dāng)時最佳,在相同誤差允許范圍內(nèi)也能做到幀率更低,功耗更低,其中傳統(tǒng)圖像幀按需觸發(fā),該方法向低功耗跟蹤更近了一步。
圖20 不同運動導(dǎo)致的外觀改變[5]Fig.20 Changes in appearance due to different movements[5]
除了與常規(guī)的傳統(tǒng)相機(jī)或深度相機(jī)融合,也有學(xué)者將事件與雷達(dá)信息融合,完成SLAM。2021年,Safa 等提出一種事件和雷達(dá)信息融合的系統(tǒng)[67],該系統(tǒng)使用帶有脈沖時序依賴可塑性(Spike Timing Dependent Plasticity,STDP)學(xué)習(xí)的SNN,將DVS 和更稀疏的雷達(dá)探測融合(如圖21所示),提出的持續(xù)學(xué)習(xí)系統(tǒng)不需要任何離線訓(xùn)練階段,可在不可見的環(huán)境中部署,而不需要事先捕獲工作環(huán)境的數(shù)據(jù)集。
圖21 DVS和雷達(dá)融合的SLAM系統(tǒng)[67]Fig.21 DVS-Radar SLAM[67]
5.2.3 事件相機(jī)、IMU和傳統(tǒng)相機(jī)融合
2018 年,Vidal 等在2017 年Rebecq 等的工作[46]基礎(chǔ)上提出第一個同時結(jié)合事件相機(jī)、IMU和傳統(tǒng)相機(jī)的緊耦合SLAM 系統(tǒng)[64],稱為“Ultimate SLAM”,該方法利用傳統(tǒng)相機(jī)和事件相機(jī)的互補優(yōu)勢,不僅維護(hù)來自事件幀的特征軌跡,還同時維護(hù)來自傳統(tǒng)圖像幀的特征軌跡。然后將來自這兩個異構(gòu)源(事件幀和傳統(tǒng)圖像幀)的特征軌跡提供給優(yōu)化模塊,從而同時利用事件、傳統(tǒng)圖像幀和IMU 優(yōu)化相機(jī)位姿。如圖22 所示,該方案完成了真機(jī)部署,分別在室內(nèi)飛行過程中開燈和關(guān)燈(關(guān)燈狀態(tài)下傳統(tǒng)圖像幀幾乎為全黑)和在光照不足的環(huán)境中進(jìn)行快速飛行(傳統(tǒng)幀出現(xiàn)嚴(yán)重的運動模糊)的情況下進(jìn)行了方案的驗證。
圖22 結(jié)合事件相機(jī)、IMU、傳統(tǒng)相機(jī)的Ultimate SLAM[64]Fig.22 Ultimate SLAM combines event cameras,IMUs,and traditional cameras[64]
2020 年,Jung 等提出一種基于濾波融合事件相機(jī)、IMU 和傳統(tǒng)相機(jī)的位姿估計方法[65],其算法流程如圖23 所示,視覺前端使用傳統(tǒng)的圖像處理技術(shù)對強(qiáng)度圖像進(jìn)行特征提取等得到特征軌跡,事件前端通過最大期望算法(Expectation Maximization,EM)求解時間光流,估計器根據(jù)環(huán)境的先驗約束場景深度的范圍。該方案與EVIO 相比,在基準(zhǔn)數(shù)據(jù)集上的位置誤差降低了49.9%,但未能滿足實時性要求。
圖23 基于濾波的事件相機(jī)、IMU、傳統(tǒng)相機(jī)融合方案Fig.23 Event camera, IMU and traditional camera fusion scheme based on filter
2022 年,Chen 等提出第一個基于事件的、同時結(jié)合事件相機(jī)、IMU 和傳統(tǒng)相機(jī)的雙目VIO 系統(tǒng)[71],方案通過運動補償對原始事件流進(jìn)行預(yù)處理,最終實現(xiàn)了連續(xù)雙目事件流之間的時間跟蹤和瞬時匹配,得到了魯棒的實時狀態(tài)估計。此方法應(yīng)用于低照度環(huán)境下的四旋翼飛行,同時還進(jìn)行了真實世界的大規(guī)模環(huán)境實驗,證明了其長期有效性。
綜上,對主要基于事件的多傳感器融合SLAM發(fā)展過程中的重要節(jié)點梳理如圖24所示。
圖24 主要基于事件的多傳感器融合SLAM方案發(fā)展節(jié)點梳理Fig.24 Milestone nodes in the development of multi-sensor fusion SLAM mainly based on events
最后,對一些成熟的框架進(jìn)行性能對比,對比結(jié)果如表4所示。
表4 一些基于事件的SLAM方案性能對比Table 4 Accuracy comparison of some event-based SLAM
本文首先介紹了SLAM技術(shù)的基本流程,然后介紹了典型的事件相機(jī),列舉了基于事件的SLAM 性能評估方法,梳理了事件數(shù)據(jù)的不同處理方式,著重介紹了事件相機(jī)在視覺SLAM 領(lǐng)域的應(yīng)用研究。事件相機(jī)的低延遲、高動態(tài)范圍、高時間分辨率等特性都表明其在視覺SLAM 領(lǐng)域的適用性,但新的數(shù)據(jù)形式和尚不成熟的硬件體系限制了其應(yīng)用,因此,無論是事件相機(jī)本身還是基于事件的智能感知算法都有著巨大的進(jìn)步空間,未來的基于事件的SLAM 可以圍繞以下主題開展進(jìn)一步研究。
(1)新的基于事件的傳感器的研發(fā):無論是ATIS 還是DAVIS,或是之后的一些新的基于事件的傳感器出現(xiàn),都將事件這一數(shù)據(jù)形式拓向了更寬的應(yīng)用場景,而目前的主流的基于事件的傳感器僅僅是將傳統(tǒng)CMOS 相機(jī)與事件結(jié)合,未來的結(jié)合必然會更多元化,針對不同的應(yīng)用場景與不同的傳感器進(jìn)行結(jié)合將會事半功倍。
(2)新的處理事件數(shù)據(jù)的方法:事件數(shù)據(jù)本身的特殊性,決定了在發(fā)展前期只能通過一些累積手段形成各種類型的圖像(如事件幀),進(jìn)而去適應(yīng)成熟的算法體系。這種做法放棄了自身的諸多優(yōu)點,沒有從根本上改變圖像處理的范式。后續(xù)研究可以針對這種異步輸出形式,設(shè)計事件數(shù)據(jù)的算法,從而釋放事件相機(jī)的潛能。
(3)基于事件的SLAM與深度學(xué)習(xí)的結(jié)合:大量的研究成果已經(jīng)表明,事件相機(jī)會將SLAM 推向更快、更精確的領(lǐng)域。而此前一些與深度學(xué)習(xí)相結(jié)合的SLAM 方案,也已經(jīng)證明在算力允許的前提下,無論是前端視覺里程計還是后端優(yōu)化,深度學(xué)習(xí)的加入均會帶來效果、效率上較大的提升。此外,一些特殊的網(wǎng)絡(luò)如SNN,可以直接以事件作為輸入,最大程度地保留事件相機(jī)的優(yōu)秀特性。因此,基于事件的SLAM與深度學(xué)習(xí)的結(jié)合是一個值得開發(fā)的領(lǐng)域。
(4)基于雙目事件的SLAM:目前,基于事件的單目視覺SLAM已經(jīng)有了很多成熟的方案,但雙目系統(tǒng)的研究較少,從傳統(tǒng)的視覺SLAM技術(shù)發(fā)展歷程來看,在做好數(shù)據(jù)融合的前提下,雙目的加持會進(jìn)一步提升系統(tǒng)的性能。