0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

相關(guān)VI-SLAM算法內(nèi)容總結(jié)

新機(jī)器視覺(jué) ? 來(lái)源:CSDN博客 ? 作者:半不閑居士 ? 2021-11-03 09:45 ? 次閱讀

本文為作者在從事Slam相關(guān)工作中對(duì)這幾年遇到以及改進(jìn)過(guò)相關(guān)VIO算法內(nèi)容總結(jié)。

1.背景介紹

一個(gè)完整的 SLAM(simultaneous localization and mapping) 框架包括傳感器數(shù)據(jù)、 前端、 后端、 回環(huán)檢測(cè)與建圖,如圖1所示,其中,前端將傳感器的數(shù)據(jù)抽象成適用于估計(jì)的模型,回環(huán)檢測(cè)判斷機(jī)器人是否經(jīng)過(guò)已知的位置。而后端接受不同時(shí)刻前端測(cè)量的位姿和回環(huán)檢測(cè)的信息并對(duì)它們進(jìn)行優(yōu)化,從而得到全局一致的軌跡。建圖則是根據(jù)狀態(tài)估計(jì)得到的軌跡建立與任務(wù)要求相對(duì)應(yīng)的地圖。通常,僅含有前端和局部后端的框架被稱(chēng)為里程計(jì), 而帶有回環(huán)檢測(cè)和全局后端的完整框架被稱(chēng)為 SLAM。

近十年來(lái),SLAM 及其相關(guān)技術(shù)的研究取得了快速進(jìn)展,研究的重點(diǎn)從開(kāi)始的激光雷達(dá)到相機(jī)和IMU,與此同時(shí)芯片MEMS器件的也取得快速發(fā)展,算力得到的極大提高,相機(jī)和IMU 等傳感器實(shí)現(xiàn)了高精度化、小型化和低成本化。這使得SLAM技術(shù)在移動(dòng)端能夠?qū)崟r(shí)的運(yùn)用。而視覺(jué)傳感器因其體積小、 成本低和易于進(jìn)行硬件設(shè)置而獲得了廣泛的關(guān)注,大量基于視覺(jué)傳感器的 SLAM 方法被提出,但純視覺(jué) SLAM 方法存在無(wú)法在圖像紋理少的區(qū)域工作、快速運(yùn)動(dòng)時(shí)圖像模糊等問(wèn)題;而IMU可測(cè)量角速度和加速度,其功能可以與相機(jī)進(jìn)行互補(bǔ),并且在融合之后能夠得到更加完善的SLAM 系統(tǒng)。

采用相機(jī)和 IMU 的 SLAM 方法被稱(chēng)為視覺(jué)慣性 SLAM(visual-inertial SLAM,VI-SLAM),只含有很小的漂移。本文主要介紹VI-SLAM,對(duì)激光和純視覺(jué)SLAM不重點(diǎn)介紹。目前VI-SLAM數(shù)據(jù)融合的的方法分為兩類(lèi):緊耦合和松耦合,其中,緊耦合是指把 IMU 的狀態(tài)與相機(jī)的狀態(tài)合并在一起進(jìn)行位姿估計(jì)。松耦合是指相機(jī)和 IMU 分別進(jìn)行自身的位姿估計(jì),然后對(duì)它們的估計(jì)結(jié)果進(jìn)行融合。

而VI-SLAM根據(jù)后端優(yōu)化方法的不同,分為基于濾波和基于優(yōu)化 2 類(lèi)方法,在濾波方法中,傳統(tǒng)的 EKF(擴(kuò)展卡爾曼濾波器) 、UKF(無(wú)跡卡爾曼濾波器)、改進(jìn)的 MSCKF(多狀態(tài)約束卡爾曼濾波器) 和OpenVins都取得了一定的成果?,F(xiàn)階段基于優(yōu)化的方法則慢慢占據(jù)了主流。

2. 基于優(yōu)化的方案

基于優(yōu)化的方法主要依靠圖像處理技術(shù)進(jìn)行特征提取和圖像匹配,而 IMU 數(shù)據(jù)則被視為先驗(yàn)項(xiàng)或者正則化項(xiàng)。自 PTAM(parallel tracking and map-ping) 之后,批量非線性?xún)?yōu)化方法一般都分為2 個(gè)線程:跟蹤和建圖。在跟蹤線,通過(guò)各種特征檢測(cè)器從圖像中提取 3 維空間中的點(diǎn)、線或其他路標(biāo)特征。然后,針對(duì)檢測(cè)到的所有特征,在 2 個(gè)圖像之間定義重投影誤差。之后用該誤差建立優(yōu)化的代價(jià)函數(shù),以便找到特征或地標(biāo)的坐標(biāo),即光束平差法(bundle adjustment,BA) 。在建圖線程,地圖中特征和路標(biāo)的坐標(biāo)被用于定義 2 幅圖像之間的重投影誤差,然后再次應(yīng)用優(yōu)化算法來(lái)發(fā)現(xiàn)移動(dòng)機(jī)器人位姿的變化。將優(yōu)化問(wèn)題分成 2 個(gè)并行線程的目的是使跟蹤部分實(shí)時(shí)響應(yīng)圖像數(shù)據(jù),以便快速獲得跟蹤結(jié)果。而地圖的優(yōu)化沒(méi)有必要實(shí)時(shí)計(jì)算,可以放在后端緩慢運(yùn)行?;趦?yōu)化的方法通常使用g 2 o 、Ceres 、GTSAM 等非線性?xún)?yōu)化庫(kù)實(shí)現(xiàn)優(yōu)化。

基于優(yōu)化的方法有兩種類(lèi)型,一種是含有局部?jī)?yōu)化(LBA)和全局優(yōu)化(GBA),一種是只有全局優(yōu)化(GBA)

LBA通過(guò)設(shè)定固定的窗口,將在這個(gè)窗口內(nèi)的系統(tǒng)狀態(tài)進(jìn)行估計(jì),同時(shí)邊緣化舊的狀態(tài)維持實(shí)時(shí)優(yōu)化窗口。相比于濾波方法,基于優(yōu)化的方法精度更高,因?yàn)樗鼈兛梢詫?duì)過(guò)去的測(cè)量結(jié)果重新進(jìn)行線性化處理,同時(shí)在優(yōu)化時(shí)可以設(shè)置魯棒核函數(shù)來(lái)剔除一些異常值。從而提高精度;但是缺點(diǎn)是,邊緣化舊的一幀時(shí)帶來(lái)了稠密的先驗(yàn)信息,這在一定程度上降低了效率,針對(duì)這個(gè)問(wèn)題,一些文獻(xiàn) 中提出了為了稀疏性而放棄某些測(cè)量的方法。此外,由于采用了邊緣化的方法,LBA方法具有與部分濾波方法相似的問(wèn)題,如一致性,線性化誤差的累積等。

蘇 黎 世 聯(lián) 邦 理 工 學(xué) 院 ASL 實(shí) 驗(yàn) 室 Leutenegger 等 提 出 了 OKVIS(open keyframe-based visual-inertial SLAM);利用基于關(guān)鍵幀的滑動(dòng)窗口進(jìn)行批量非線性?xún)?yōu)化,先于滑動(dòng)窗口的關(guān)鍵幀被邊緣化,不用來(lái)進(jìn)行估計(jì)。系統(tǒng)前端使用多尺度 Harris 特征檢測(cè)器 來(lái)提取特征,然后在其基礎(chǔ)上計(jì)算 BRISK(binary robust invariant scalable keypoint)描述子,以便在幀與幀之間進(jìn)行數(shù)據(jù)關(guān)聯(lián)。。如圖 3 所示

香港科技大學(xué)飛行機(jī)器人實(shí)驗(yàn)室提出的 VINS-Mono(monocular visual-inertial system)方法類(lèi)似于 OKVIS,是一種基于非線性?xún)?yōu)化的 VI-SLAM方法。VINS-Mono 方法為這類(lèi)框架引入了幾個(gè)全新的功能,其完整系統(tǒng)包括觀測(cè)值預(yù)處理、 初始化、 局部視覺(jué)慣性聯(lián)合優(yōu)化、全局圖優(yōu)化和回環(huán)檢測(cè) 5 個(gè)部分, 前端提取 Harris 特征點(diǎn),并采用 LK(Lucas-Kanade)光流(opticalflow)法跟蹤相鄰幀。光流法是一種描述像素隨時(shí)間在圖像之間運(yùn)動(dòng)的方法。LK 光流法計(jì)算部分像素,在 SLAM 中用于跟蹤特征點(diǎn)的位置。

VINS-Mono 方法只計(jì)算特征點(diǎn),不計(jì)算描述子,同時(shí)使用光流法跟蹤特征點(diǎn)的運(yùn)動(dòng)。這樣就減少了計(jì)算和匹配描述子的時(shí)間和資源,只需要計(jì)算光流。在初始化部分,作者使用了一種松耦合的傳感器融合初始化程序,稱(chēng)為動(dòng)態(tài)初始化,先用圖像信息構(gòu)建SFM,后面結(jié)合IMU信息,進(jìn)行在線VIO標(biāo)定。使得系統(tǒng)可以在優(yōu)化之前從任意初始狀態(tài)引入估計(jì)器。同時(shí)采用預(yù)積分的處理方法處理IMU信息,得到兩幀之間的IMU相對(duì)運(yùn)動(dòng),而不是隨著某一時(shí)刻位姿改變而要重新處理IMU信息,減少計(jì)算量。系統(tǒng)采用與 OKVIS相似的基于滑動(dòng)窗口的緊耦合位姿估計(jì)方法,并且加入了基于DBoW2(bag of binary words 2)的回環(huán)檢測(cè)線程,使系統(tǒng)具有重定位功能,而全局優(yōu)化則采用4Dof優(yōu)化。

香港科技大學(xué)飛行機(jī)器人實(shí)驗(yàn)室隨后又推出了 VINS-Mobile 和 VINS-Fusion。VINS-Mobile 在 iOS 設(shè)備上運(yùn)行,并為增強(qiáng)現(xiàn)實(shí)(AR)應(yīng)用程序提供本地化服務(wù)。VINS-Mobile 對(duì) VINS-Mono 框架作了許多輕量化處理,并采用了一種基于小滑動(dòng)窗口的聯(lián)合優(yōu)化方案。VINS-Fusion 在完善 VINS 框架的同時(shí),提供了 4 個(gè)不同硬件的版本,包括單目 IMU、 雙目 IMU、 純雙目和雙目 IMU 與GPS 松耦合。

百度 AR 技術(shù)小組提出的 ICE-BA(incremental,consistent and efficient bundle adjustment) 沿 用了 OKVIS 以及 VINS-Mono 這一類(lèi)框架。前端提取Harris 特征點(diǎn) 并采用 LK 光流法 跟蹤相鄰幀,與 VINS-Mono 相似。后端則是論文中提出的增量式 BA,主要分為 3 個(gè)部分:局部 BA(LBA)、全局 BA(GBA) 以及相對(duì)邊緣化(Relative-Marginalization),前兩者采用增量式方法提升了后端速度,后者保證了LBA 和GBA 的一致性。其中,G BA 在建立增量方程時(shí),對(duì)系統(tǒng)已經(jīng)計(jì)算過(guò)且不變的狀態(tài)向量不進(jìn)行計(jì)算。

因?yàn)榧词怪匦掠?jì)算,精度也不會(huì)有太大的改善。對(duì)于LBA 來(lái)說(shuō),由于幾乎每個(gè)點(diǎn)都被滑動(dòng)窗口里面所有幀看到,因此即使只重新線性化一部分點(diǎn),也會(huì)帶來(lái)較大的改動(dòng)。因此在LBA這個(gè)部分,系統(tǒng)中采用了一個(gè)更高效的針對(duì)局部 BA 的后端設(shè)計(jì)。這個(gè)方法把長(zhǎng)期跟蹤的特征點(diǎn)分成很多短期跟蹤段,這樣每次重新計(jì)算特征點(diǎn)的時(shí)候,重新線性化的區(qū)域減小,從而提高了效率。見(jiàn)圖5;對(duì)于滑窗系統(tǒng),往往都有邊緣化這一步,把有些本應(yīng)該出了滑動(dòng)窗口的信息以另一種形式存儲(chǔ)下來(lái)。但是當(dāng)有GBA 存在時(shí),邊緣化的效果未必會(huì)有很大的提升,反而可能會(huì)下降。ICE-BA 中改進(jìn)了邊緣化方法,保持了邊緣化和全局 BA 的一致性,見(jiàn)圖6。但在測(cè)試的時(shí)候,去掉相對(duì)邊緣化有些數(shù)據(jù)集效果會(huì)更好。

由于 VI-SLAM 系統(tǒng)實(shí)現(xiàn)了優(yōu)異的效果,一些著名的視覺(jué) SLAM 系統(tǒng) 相繼推出了自己系統(tǒng)的 VI 版本,VI-ORB SLAM 就是其中最有代表性的系統(tǒng)之一。在這里首先介紹純視覺(jué)ORB-SLAM ,其首次使用 3 個(gè)線程:實(shí)時(shí)跟蹤特征點(diǎn)的線程、局部建圖的優(yōu)化線程(co-visibility graph)和全局回環(huán)檢測(cè)與優(yōu)化線程(essential graph),來(lái)完成 SLAM。跟蹤線程對(duì)每幅圖像提取 ORB 特征點(diǎn),并與最近的關(guān)鍵幀比較,計(jì)算特征點(diǎn)位置并估計(jì)位姿。局部 BA 線程求解更精細(xì)的相機(jī)位姿和特征點(diǎn)空間位置。全局回環(huán)檢測(cè)線程采用 DBoW2 對(duì)全局的地圖與關(guān)鍵幀進(jìn)行回環(huán)檢測(cè),消除累積誤差。ORB-SLAM 的三線程結(jié)構(gòu)取得了優(yōu)異的跟蹤和建圖效果,保證了移動(dòng)機(jī)器人軌跡與地圖的全局一致性,該算法框架在開(kāi)源數(shù)據(jù)集測(cè)試的結(jié)果是效果最好的開(kāi)源代碼。

VI-ORB SLAM 改進(jìn)自 ORB-SLAM2,作者引入 IMU 嘗試解決在快速運(yùn)動(dòng)時(shí)丟失特征點(diǎn)的問(wèn)題。VI ORB-SLAM 分別對(duì) 3 個(gè)線程作了修改,用以融合 IMU 信息。在跟蹤線程,基于重投影誤差和 IMU 預(yù)積分,建立幀與幀之間的約束關(guān)系來(lái)構(gòu)造代價(jià)函數(shù),從而得到當(dāng)前幀位姿的最優(yōu)估計(jì)。在局部建圖線程,有了新的關(guān)鍵幀之后,將會(huì)對(duì)前 N 個(gè)關(guān)鍵幀進(jìn)行優(yōu)化,當(dāng)前的關(guān)鍵幀(第 N + 1幀)將固定不變,提供 IMU 預(yù)積分約束。如圖 7所示,P、v、b 分別為優(yōu)化的位姿、IMU 速度與偏差。在全局回環(huán)檢測(cè)線程,由于 IMU 提供了尺度信息,因此全局優(yōu)化將從 7 個(gè)自由度下降到 6 個(gè)自由度。全局位姿優(yōu)化將忽略 IMU 信息,因此不再優(yōu)化速度和偏差,當(dāng)完成全局位姿優(yōu)化后,再根據(jù)矯正后的位姿對(duì)速度進(jìn)行矯正。

在2020年,ORB-SLAM3開(kāi)源,其第一個(gè)能夠執(zhí)行視覺(jué)、視覺(jué)慣性和多地圖重用的系統(tǒng),相比于ORB-SLAM2,ORB-SLAM3新增元素有以下面這幾個(gè):

1. 單、雙目的vo/vio slam系統(tǒng),并支持魚(yú)眼相機(jī)。

2. 地圖復(fù)用,擁有合并地圖的功能。

3. 高召回的地點(diǎn)識(shí)別(占用較低的計(jì)算資源換得高召回與精度)

4. 不限制相機(jī)模型,只需提供投影,反投影及Jacobian方程(程序里提供了針孔與魚(yú)眼模型)

其主要的創(chuàng)新點(diǎn)分為:

1.“完全”基于最大后驗(yàn)估計(jì)MAP的VI-SLAM ,無(wú)論在初始化階段還是運(yùn)行階段,都采用了MAP進(jìn)行狀態(tài)估計(jì),因此ORB-SLAM3在室內(nèi)外、大小場(chǎng)景中魯棒性很好,且精確度是其他方法的2~5倍; 如文中所講,本文的IMU和視覺(jué)的組合系統(tǒng)是extremely robust的。

2.多地圖系統(tǒng),當(dāng)定位丟失即lost時(shí),ORB-SLAM3會(huì)自動(dòng)建立一個(gè)新的小地圖,并在revisit兩張地圖上的同一地點(diǎn)的時(shí)候進(jìn)行地圖的seamlessly merge,因此,這一算法能夠使用不僅僅幾幀之前的信息,而是運(yùn)用了全局的信息,能夠在bundle adjustment中利用視差較大的幀來(lái)增加BA求解的準(zhǔn)確性(因?yàn)楫?dāng)視察較小時(shí),求解不準(zhǔn)確,且優(yōu)化容易進(jìn)入局部極值)。這種方法里對(duì)同一特征的觀測(cè)可能在時(shí)間上的間隔較大,因?yàn)槲覀儗?duì)其上一次的觀測(cè)甚至可能出現(xiàn)在之前一張小地圖中(中間過(guò)程里lost了至少一次)。

在這里簡(jiǎn)單介紹一下iSAM,iSAM是增量式圖優(yōu)化,該算法可簡(jiǎn)單的理解為iSAM可以自適應(yīng)的判斷當(dāng)前測(cè)量是否影響某個(gè)歷史狀態(tài),從而判斷是否要計(jì)算更新,從而能夠減少不必要的計(jì)算;在2012年,iSAM2 用貝葉斯樹(shù)+在線啟發(fā)式排序重新解決iSAM問(wèn)題,后端部分原理相似與ICE-BA相似,都是增量式BA,該技術(shù)是GBA的一項(xiàng)突破,利用因子圖來(lái)保持稀疏性,并僅識(shí)別和更新受新度量影響的變量的一小部分。使用貝葉斯樹(shù)數(shù)據(jù)結(jié)構(gòu)來(lái)獲得有效的變量排序,從而最大程度地減少了計(jì)算時(shí)間。由于新的測(cè)量結(jié)果只對(duì)估計(jì)值的局部產(chǎn)生影響,通過(guò)分析受影響的區(qū)域,可以減少一些沒(méi)必要的計(jì)算,加速優(yōu)化流程。

基 于 優(yōu) 化 的 方 法 是 目 前 VI-SLAM 領(lǐng) 域 以 及SLAM 相關(guān)領(lǐng)域的熱點(diǎn)之一,非線性?xún)?yōu)化方法實(shí)現(xiàn)了相較于濾波方法更精確的狀態(tài)估計(jì)效果。但由于計(jì)算資源有限,目前的方法往往以犧牲一部分精度和路標(biāo)點(diǎn)為代價(jià)換取系統(tǒng)的實(shí)時(shí)性。新型的優(yōu)化器以及并行計(jì)算方法的出現(xiàn)有望進(jìn)一步減少對(duì)計(jì)算資源的占用,但大范圍在線系統(tǒng)的實(shí)時(shí)性仍然是一個(gè)有待解決的問(wèn)題。

3. 基于濾波的方案

不同濾波方法的分類(lèi)如圖 9 所示,卡爾曼濾波器作為一種解決狀態(tài)估計(jì)問(wèn)題的經(jīng)典模型,主要存在 2 個(gè)問(wèn)題。首先,它要求時(shí)序和測(cè)量方程是線性的,這個(gè)問(wèn)題可以由 EKF 和 UKF 解決。其次,卡爾曼濾波器假設(shè)后驗(yàn)分布是單峰分布的,而且需要通過(guò)均值和協(xié)方差來(lái)表達(dá),因此,它針對(duì)物體的位姿只能有一個(gè)假設(shè),并不能保證關(guān)于狀態(tài)的多個(gè)假設(shè),這個(gè)問(wèn)題可以由粒子濾波器(particle filter,PF) 解決。

一個(gè)完整的 EKF 框架包括預(yù)測(cè)步驟和更新步驟。對(duì)于基于濾波的 VI-SLAM 方法,慣性傳感器能夠提供 3 軸的加速度和角速度,用于計(jì)算 3 維剛體運(yùn)動(dòng)的動(dòng)態(tài)模型并在預(yù)測(cè)步驟中進(jìn)行預(yù)測(cè)。相機(jī)能夠提供在特征和移動(dòng)機(jī)器人之間的角度和距離測(cè)量結(jié)果,并在更新步驟中更新預(yù)測(cè)結(jié)果。

早期的 SLAM 工作主要是基于擴(kuò)展卡爾曼濾波器,由 Smith 等基于早期的工作實(shí)現(xiàn)。Jones 等將 EKF 框架引入 VI-SLAM 系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了將狀態(tài)和參數(shù)作為在線程序的一部分進(jìn)行估計(jì),并用 EKF 框架進(jìn)行了有效實(shí)現(xiàn).Kelly 等將 UKF 框架引入 VI-SLAM 系統(tǒng)。該方法能夠在線、隨時(shí)校準(zhǔn)更新位姿,比如正在進(jìn)行的導(dǎo)航或建圖任務(wù)。

MSCKF 是 Mourikis 在 2007 年 提 出 的,MSCKF 2.0 也在隨后由 Mourikis 和 Li 提出 ,是目前許多 VI-SLAM 系統(tǒng)的基礎(chǔ)。MSCKF 是一種基于擴(kuò)展卡爾曼濾波器的 VI-SLAM 框架。在傳統(tǒng)EKF 框架中,特征點(diǎn)信息會(huì)加入到狀態(tài)向量和協(xié)方差矩陣?yán)?,這會(huì)加大矩陣維度,增加計(jì)算量,如圖 10 所示。而MSCKF 則在狀態(tài)向量里只添加窗口內(nèi)的相機(jī)狀態(tài),而忽略特征點(diǎn),減少計(jì)算量。同時(shí)系統(tǒng)一般采用IMU靜態(tài)初始化,系統(tǒng)啟動(dòng)后需要靜止一段時(shí)間,才能初始化成功,該系統(tǒng)沒(méi)有回環(huán)檢測(cè)功能。MSCKF 工作的最主要貢獻(xiàn)在于推導(dǎo)出一種測(cè)量模型,該模型能夠表達(dá)從多個(gè)相機(jī)位姿觀察到靜態(tài)特征時(shí)出現(xiàn)的幾何約束。系統(tǒng)中維護(hù)一個(gè)位姿的滑動(dòng)窗口,如果一個(gè)特征點(diǎn)在滑動(dòng)窗口內(nèi)的幾個(gè)位姿都被觀察到的話就會(huì)在這幾個(gè)位姿間建立約束。這種方法用一個(gè)特征點(diǎn)約束多個(gè)相機(jī)位姿,從而進(jìn)行 KF 的更新,舊的特征點(diǎn)和滑動(dòng)窗口之外的相機(jī)姿態(tài)則被丟棄。近幾年,許多基于 MSCKF 的工作相繼提出,框架整體的精度和魯棒性得到了不斷的提升。

蘇黎世聯(lián)邦理工學(xué)院無(wú)人系統(tǒng)實(shí)驗(yàn)室(Autono-mous Systems Lab,ASL)的 Bloesch 等提出了一種基于迭代擴(kuò)展卡爾曼濾波器(IEKF)的直接法單目視覺(jué)慣性里程計(jì),簡(jiǎn)稱(chēng) ROVIO(robust visual inertialodometry) 。如圖 11所示,該算法將視覺(jué)信息和IMU信息進(jìn)行緊耦合的一種視覺(jué)慣性測(cè)量單元。數(shù)據(jù)融合的方法主要是通過(guò)迭代卡爾曼濾波來(lái)進(jìn)行的。對(duì)于視覺(jué)方面的信息,作者主要是通過(guò)將路標(biāo)點(diǎn)在圖像中對(duì)應(yīng)的點(diǎn)周?chē)膱D像塊做為路標(biāo)點(diǎn)的描述子,從而得到光度誤差。然后將光度誤差進(jìn)行變換得到IEKF中的innovation term,進(jìn)而進(jìn)行濾波狀態(tài)的更新。

整體的濾波方程的構(gòu)造是以機(jī)器人為中心進(jìn)行構(gòu)造的(fully robocentric)——實(shí)際上這個(gè)robocentric就是以IMU為原點(diǎn)固連在IMU上的坐標(biāo)系——從而保證能觀狀態(tài)不受不斷增長(zhǎng)的全局協(xié)方差的影響,這樣可以減小因非線性而造成的誤差。此外,作者還將路標(biāo)點(diǎn)的空間位置信息拆開(kāi)成了兩項(xiàng)。一項(xiàng)是bearing vector(二維向量),還有一項(xiàng)是distance(這里實(shí)際上用的是逆深度)。并在 IMU 預(yù)測(cè)階段對(duì)路標(biāo)點(diǎn)進(jìn)行預(yù)測(cè),在視覺(jué)更新時(shí)對(duì)其修正,不像其他框架一般僅在視覺(jué)階段去計(jì)算。這樣的構(gòu)造方式可以避免不能觀狀態(tài)量,并且使得初始化沒(méi)有延遲。由于使用了基于 QR 分解的測(cè)量空間縮減方法,并執(zhí)行每個(gè)路標(biāo)點(diǎn)的更新迭代,因此系統(tǒng)具有較高的效率和準(zhǔn)確性。

ARL 實(shí) 驗(yàn) 室 隨 后 又 推 出 了 Maplab 框 架,與 ROVIO 不同的是,Maplab 帶有一個(gè)完整的 VI-SLAM 系統(tǒng),具有回環(huán)檢測(cè)和重定位功能。系統(tǒng)由兩部分組成,一部分是 ROVIOLI(ROVIO with lo-calization integration),一個(gè)在線的視覺(jué)慣性全局定位系統(tǒng),其接收?qǐng)D像與慣性傳感器數(shù)據(jù)作為輸入,輸出全局的位姿估計(jì),并建立地圖。另一部分是離線的 Maplab 控制臺(tái),可以讓使用者以離線批處理方式在地圖上應(yīng)用各種算法。

在 松 耦 合 方 法 中, Faessler 等使 用 了 一種基于 SVO(semi-direct visual odometry)和 MSF(multi-sensor fusion)的方案。SVO 是一種計(jì)算量較小的稀疏直接算法。其通過(guò)跟蹤 FAST(fromaccelerated segment test) 特征并最小化周?chē)鷪D像塊的光度誤差來(lái)匹配幀間圖像,使用非線性最小二乘法來(lái)最小化特征中的重投影誤差,得到僅由相機(jī)估計(jì)的位姿。MSF是一種通用的 EKF 框架,用于在位姿估計(jì)中融合來(lái)自不同傳感器的數(shù)據(jù)。系統(tǒng)將純視覺(jué) SVO 得到的位姿作為通用位姿傳感器的輸出提供給 MSF,然后與 IMU 數(shù)據(jù)融合。由于是一種松耦合框架,位姿的尺度需要近似正確,因而時(shí)常要手動(dòng)初始化。

Open VINS是黃國(guó)權(quán)老師團(tuán)隊(duì)在2019年8月份開(kāi)源的一套基于MSCKF的VINS算法。主要提供了流形滑動(dòng)窗口卡爾曼濾波器、在線攝像機(jī)內(nèi)、外標(biāo)定、攝像機(jī)-慣性傳感器時(shí)間偏移標(biāo)定、具有不同表示和一致第一估計(jì)的SLAM地標(biāo)(FEJ)處理、用于狀態(tài)管理的模塊化系統(tǒng)、可擴(kuò)展視覺(jué)慣性系統(tǒng)模擬器、用于算法評(píng)估的廣泛工具箱等功能。其在前端圖像信息處理中,結(jié)合了EKF-SLAM、MSCKF和Hybird SLAM等算法處理方式,提高了系統(tǒng)的穩(wěn)定性,在一些開(kāi)源數(shù)據(jù)集上其精度可以媲美基于優(yōu)化的SLAM。該開(kāi)源代碼的主要貢獻(xiàn)

1. 提供了一個(gè)可拓展、開(kāi)源的代碼庫(kù)

2. 提供了許多視覺(jué)視覺(jué)慣性的基礎(chǔ),包括多相機(jī),多IMU,視覺(jué)慣性運(yùn)動(dòng)對(duì)象跟蹤,Schmidt-based visual-inertial SLAM,點(diǎn)平面和點(diǎn)線視覺(jué)慣性導(dǎo)航等。

開(kāi)源代碼大致流程如圖12

圖12 openvins算法流程示意圖

b2101894-3838-11ec-82a8-dac502259ad0.png

表1 代表性 VI-SLAM 框架對(duì)比

4.濾波方法與優(yōu)化方法的聯(lián)系與對(duì)比

利用貝葉斯推斷可以建立基于濾波和基于優(yōu)化這 2 類(lèi)方法之間的聯(lián)系?;跒V波的方法,位姿的先驗(yàn)分布由內(nèi)感受型傳感器的測(cè)量構(gòu)建,似然分布由外感受型傳感器的測(cè)量建立,故可以視為最大后驗(yàn)估計(jì)(maximum a posteriori,MAP)問(wèn)題?;趦?yōu)化的方法,通過(guò)迭代找到測(cè)量總概率最高的狀態(tài),故可視為最大似然估計(jì)(maximum likelihood,ML)問(wèn)題?;趦?yōu)化的方法,可以通過(guò)向傳感器的測(cè)量值中添加正則化項(xiàng)或先驗(yàn)項(xiàng),使其由 ML 問(wèn)題轉(zhuǎn)化為 MAP 問(wèn)題。如果把 EKF 框架看作是非線性高斯-牛頓法或高斯法的近似,那么它的表現(xiàn)無(wú)疑是達(dá)不到要求的。

主要原因是,EKF 沒(méi)有迭代至收斂的過(guò)程,其雅可比矩陣只計(jì)算 1 次,可能會(huì)遠(yuǎn)離所期望的最優(yōu)估計(jì)。但由于 EKF 沒(méi)有一次性計(jì)算所有的雅可比矩陣,EKF 的結(jié)果比單次的高斯-牛頓法迭代更精確,它的缺陷只在于沒(méi)有迭代這個(gè)步驟。從優(yōu)化的角度來(lái)看,這是一個(gè)顯而易見(jiàn)的問(wèn)題,因?yàn)閮?yōu)化是需要最后迭代至收斂的。EKF 使用了馬爾可夫假設(shè)來(lái)實(shí)現(xiàn)其遞歸形式,由于使用了馬爾可夫假設(shè),一旦濾波器建立在該假設(shè)上就無(wú)法擺脫它。包括IEKF 在內(nèi),雖然 IEKF 一次迭代了一個(gè)時(shí)間步長(zhǎng),但它仍然依賴(lài)于馬爾可夫假設(shè),而且僅在一個(gè)時(shí)刻上進(jìn)行了迭代,并非在整個(gè)軌跡上。

本文比較了幾種代表性的 VI-SLAM 框架,如表 1 所示。可以看出,目前主流的 VI-SLAM 實(shí)現(xiàn)方法以緊耦合的優(yōu)化方法為主。相較于松耦合的方法,把 IMU 狀態(tài)與相機(jī)狀態(tài)合并在一起進(jìn)行狀態(tài)估計(jì)的緊耦合方法具有更高的精度。而由于基于濾波的方法具有馬爾可夫性,無(wú)法考慮到某時(shí)刻狀態(tài)與之前所有時(shí)刻狀態(tài)的關(guān)系,目前普遍認(rèn)為在計(jì)算資源足夠的情況下,基于優(yōu)化的方法會(huì)得到更精確的效果。但是在計(jì)算資源受限,或者移動(dòng)機(jī)器人位姿軌跡比較簡(jiǎn)單的場(chǎng)合里,基于濾波的方法仍然是一種有效的方式。

5. 展望

5.1 與深度學(xué)習(xí)結(jié)合

構(gòu)建語(yǔ)義地圖、在幀間匹配和回環(huán)檢測(cè)中采用 深 度 學(xué) 習(xí) 的 方 法 是 目 前 SLAM 的 研 究 熱 點(diǎn) 之一 。深度學(xué)習(xí)方法的引入使移動(dòng)機(jī)器人可以理解周?chē)h(huán)境的語(yǔ)義信息。完成一些更復(fù)雜的任務(wù)。但深度學(xué)習(xí)方法對(duì)于計(jì)算資源的需求巨大,在硬件條件較差的嵌入式場(chǎng)景難以使用,需要研究人員進(jìn)一步地改進(jìn)網(wǎng)絡(luò)。

5.2 輕量化

SLAM 本身是為了給上層應(yīng)用提供自身位姿估計(jì),在實(shí)際應(yīng)用中,研究人員并不希望算法占用太多運(yùn)算資源。使用者希望 SLAM 框架能夠輕量化,不影響移動(dòng)機(jī)器人或者手機(jī)移動(dòng)端所要完成的其他工作。相比于激光 SLAM 等成本高昂的方法,由于 VI-SLAM 系統(tǒng)只使用相機(jī)和慣性傳感器,在無(wú)人機(jī)或手持移動(dòng)設(shè)備上良好運(yùn)行 SLAM 程序成為可能。通過(guò)繼續(xù)改進(jìn)算法,現(xiàn)在很多大廠均能夠在移動(dòng)端實(shí)現(xiàn)效果良好的定位效果。

5.3 與更多傳感器融合

視覺(jué)與 IMU 的融合已經(jīng)在不同的領(lǐng)域取得了較理想的效果,但是當(dāng)場(chǎng)景特別大時(shí),視覺(jué)和 IMU傳感器的效果不太理想,這時(shí)就需要用到其他傳感器。在自動(dòng)駕駛領(lǐng)域,將激光雷達(dá)、 GPS/GNSS(全球衛(wèi)星導(dǎo)航系統(tǒng))、相機(jī)以及 IMU 等多傳感器進(jìn)行融合已經(jīng)成為一種趨勢(shì),引入激光雷達(dá)等傳感器會(huì)為系統(tǒng)提供更準(zhǔn)確的深度信息。但是更多的傳感器會(huì)帶來(lái)更復(fù)雜的標(biāo)定與融合方面的問(wèn)題,有待研究人員加以解決。

5.4 嵌入式系統(tǒng)

移動(dòng)機(jī)器人通常使用嵌入式設(shè)備作為平臺(tái)的計(jì)算硬件,而隨著計(jì)算能力的大力發(fā)展,嵌入式設(shè)備的使用頻率逐漸增多。新型 GPU(圖形處理器)的出現(xiàn)使得嵌入式系統(tǒng)的性能更加接近 PC 機(jī),但是計(jì)算能力仍然有限。一些嵌入式硬件,例如Jetson Nano、TX1/2 的出現(xiàn)使得研究人員可以在嵌入式系統(tǒng)中使用 GPU,便于移動(dòng)機(jī)器人在惡劣的條件下應(yīng)用 VI-SLAM 算法。隨著一些代表性產(chǎn)品 Google Project Tango、Microsoft Hololens、MagicLeap、Nreal等的應(yīng)用,VI-SLAM 技術(shù)會(huì)逐步融入到平常生活之中。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19126

    瀏覽量

    305242
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4612

    瀏覽量

    92901
  • SLAM
    +關(guān)注

    關(guān)注

    23

    文章

    424

    瀏覽量

    31833

原文標(biāo)題:近十年的VI-SLAM算法綜述與發(fā)展

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    一種基于MASt3R的實(shí)時(shí)稠密SLAM系統(tǒng)

    本文提出了一種即插即用的單目SLAM系統(tǒng),能夠在15FPS的幀率下生成全局一致的位姿和稠密幾何圖形。 01 ? 本文核心內(nèi)容 視覺(jué)SLAM乃是當(dāng)今機(jī)器人技術(shù)與增強(qiáng)現(xiàn)實(shí)產(chǎn)品的基礎(chǔ)性構(gòu)建模塊。通過(guò)
    的頭像 發(fā)表于 12-27 15:25 ?139次閱讀

    利用VLM和MLLMs實(shí)現(xiàn)SLAM語(yǔ)義增強(qiáng)

    語(yǔ)義同步定位與建圖(SLAM)系統(tǒng)在對(duì)鄰近的語(yǔ)義相似物體進(jìn)行建圖時(shí)面臨困境,特別是在復(fù)雜的室內(nèi)環(huán)境中。本文提出了一種面向?qū)ο?b class='flag-5'>SLAM的語(yǔ)義增強(qiáng)(SEO-SLAM)的新型SLAM系統(tǒng),借
    的頭像 發(fā)表于 12-05 10:00 ?162次閱讀
    利用VLM和MLLMs實(shí)現(xiàn)<b class='flag-5'>SLAM</b>語(yǔ)義增強(qiáng)

    【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+內(nèi)容簡(jiǎn)介

    內(nèi)容簡(jiǎn)介這是一本深入解讀基礎(chǔ)算法及其電路設(shè)計(jì),以打通算法研發(fā)到數(shù)字IC設(shè)計(jì)的實(shí)現(xiàn)屏障,以及指導(dǎo)芯片設(shè)計(jì)工程師從底層掌握復(fù)雜電路設(shè)計(jì)與優(yōu)化方法為目標(biāo)的專(zhuān)業(yè)技術(shù)書(shū)。任何芯片(如WiFi芯片、5G芯片
    發(fā)表于 11-21 17:14

    激光雷達(dá)在SLAM算法中的應(yīng)用綜述

    SLAM算法運(yùn)行的重要傳感器。基于激光雷達(dá)的SLAM算法,對(duì)激光雷達(dá)SLAM總體框架進(jìn)行介紹,詳細(xì)闡述前端里程計(jì)、后端優(yōu)化、回環(huán)檢測(cè)、地圖構(gòu)
    的頭像 發(fā)表于 11-12 10:30 ?585次閱讀
    激光雷達(dá)在<b class='flag-5'>SLAM</b><b class='flag-5'>算法</b>中的應(yīng)用綜述

    MG-SLAM:融合結(jié)構(gòu)化線特征優(yōu)化高斯SLAM算法

    同步定位與地圖構(gòu)建 (SLAM) 是計(jì)算機(jī)視覺(jué)中的一個(gè)基本問(wèn)題,旨在在同時(shí)跟蹤相機(jī)姿勢(shì)的同時(shí)對(duì)環(huán)境進(jìn)行地圖構(gòu)建?;趯W(xué)習(xí)的密集 SLAM 方法,尤其是神經(jīng)輻射場(chǎng) (NeRF) 方法,在捕獲密集光度
    的頭像 發(fā)表于 11-11 16:17 ?308次閱讀
    MG-<b class='flag-5'>SLAM</b>:融合結(jié)構(gòu)化線特征優(yōu)化高斯<b class='flag-5'>SLAM</b><b class='flag-5'>算法</b>

    算法角度看 SLAM(第 2 部分)

    作者: Aswin S Babu 正如我們?cè)赱第 1 部分]中所討論的,SLAM 是指在無(wú)地圖區(qū)域中估計(jì)機(jī)器人車(chē)輛的位置,同時(shí)逐步繪制該區(qū)域地圖的過(guò)程。根據(jù)使用的主要技術(shù),SLAM 算法可分為三種
    的頭像 發(fā)表于 10-02 16:39 ?326次閱讀
    從<b class='flag-5'>算法</b>角度看 <b class='flag-5'>SLAM</b>(第 2 部分)

    深度識(shí)別算法包括哪些內(nèi)容

    深度識(shí)別算法是深度學(xué)習(xí)領(lǐng)域的一個(gè)重要組成部分,它利用深度神經(jīng)網(wǎng)絡(luò)模型對(duì)輸入數(shù)據(jù)進(jìn)行高層次的理解和識(shí)別。深度識(shí)別算法涵蓋了多個(gè)方面的內(nèi)容,主要包括以下幾種類(lèi)型: 1. 卷積神經(jīng)網(wǎng)絡(luò)(CNN) 概述
    的頭像 發(fā)表于 09-10 15:28 ?385次閱讀

    Jetson Nano集成探索大象機(jī)器人myAGV上的 SLAM 算法

    引言 大家好,最近新入手了一臺(tái)myAGV JN這是elephant robotics在myAGV升級(jí)后的版本。最近有對(duì)SLAM相關(guān)知識(shí)感興趣,想深入了解一些關(guān)于ROS中SLAM的一些算法
    的頭像 發(fā)表于 06-03 14:13 ?499次閱讀
    Jetson Nano集成探索大象機(jī)器人myAGV上的 <b class='flag-5'>SLAM</b> <b class='flag-5'>算法</b>!

    基于FPGA的常見(jiàn)的圖像算法模塊總結(jié)

    意在給大家補(bǔ)充一下基于FPGA的圖像算法基礎(chǔ),于是講解了一下常見(jiàn)的圖像算法模塊,經(jīng)過(guò)個(gè)人的總結(jié),將知識(shí)點(diǎn)分布如下所示。
    的頭像 發(fā)表于 04-28 11:45 ?599次閱讀
    基于FPGA的常見(jiàn)的圖像<b class='flag-5'>算法</b>模塊<b class='flag-5'>總結(jié)</b>

    深度解析深度學(xué)習(xí)下的語(yǔ)義SLAM

    隨著深度學(xué)習(xí)技術(shù)的興起,計(jì)算機(jī)視覺(jué)的許多傳統(tǒng)領(lǐng)域都取得了突破性進(jìn)展,例如目標(biāo)的檢測(cè)、識(shí)別和分類(lèi)等領(lǐng)域。近年來(lái),研究人員開(kāi)始在視覺(jué)SLAM算法中引入深度學(xué)習(xí)技術(shù),使得深度學(xué)習(xí)SLAM系統(tǒng)獲得了迅速發(fā)展,并且比傳統(tǒng)
    發(fā)表于 04-23 17:18 ?1292次閱讀
    深度解析深度學(xué)習(xí)下的語(yǔ)義<b class='flag-5'>SLAM</b>

    什么是SLAMSLAM算法涉及的4要素

    SLAM技術(shù)可以應(yīng)用在無(wú)人駕駛汽車(chē)、無(wú)人機(jī)、機(jī)器人、虛擬現(xiàn)實(shí)等領(lǐng)域中,為這些領(lǐng)域的發(fā)展提供了支持。SLAM技術(shù)的發(fā)展已經(jīng)逐漸從單純的定位和地圖構(gòu)建轉(zhuǎn)向了基于場(chǎng)景理解的功能。
    發(fā)表于 04-04 11:50 ?2414次閱讀

    什么是SLAM?基于3D高斯輻射場(chǎng)的SLAM優(yōu)勢(shì)分析

    基于NeRF的SLAM算法采用全局地圖和圖像重建損失函數(shù),通過(guò)可微分渲染捕獲稠密的光度信息,具有高保真度。
    的頭像 發(fā)表于 04-01 12:44 ?735次閱讀

    基于NeRF/Gaussian的全新SLAM算法

    基于NeRF的SLAM算法采用全局地圖和圖像重建損失函數(shù),通過(guò)可微分渲染捕獲稠密的光度信息,具有高保真度。
    的頭像 發(fā)表于 01-26 10:48 ?654次閱讀
    基于NeRF/Gaussian的全新<b class='flag-5'>SLAM</b><b class='flag-5'>算法</b>

    動(dòng)態(tài)環(huán)境中基于神經(jīng)隱式表示的RGB-D SLAM

    神經(jīng)隱式表示已經(jīng)被探索用于增強(qiáng)視覺(jué)SLAM掩碼算法,特別是在提供高保真的密集地圖方面。
    的頭像 發(fā)表于 01-17 10:39 ?903次閱讀
    動(dòng)態(tài)環(huán)境中基于神經(jīng)隱式表示的RGB-D <b class='flag-5'>SLAM</b>