免费看成人无码网站|久久久久中文欧美在线二区|午夜精 亚洲精品Aⅴ一区二区三区四区|国产精品自产拍高潮在线

多種視覺SLAM方案對比(選擇SLAM方案四大要點)

在SLAM研究中,我們通常需要在各數(shù)據(jù)集上測試各個方案的性能情況。如下主要對表1中6個視覺SLAM方案進行相關(guān)測試,測試其在不同場景、要求下的精度和魯棒性,并給出最終方案選型。

【由于時間、場地等原因,整合前人測試結(jié)果,在此附上鏈接,謝謝大神的分享!】

**

開源SLAM方案選型:

**

多種視覺SLAM方案對比

**

數(shù)據(jù)集:

**

多種視覺SLAM方案對比

一、ORB-SLAM2

檢測流程:Kinect生成地圖【地圖主要可見的有關(guān)鍵幀(包括相機的pose,相機的內(nèi)參,ORB特征),3D的地圖點( 空間中3D位置,法線方向,ORB的描述子),詞袋向量,共視圖等】 → 保存地圖 → 加載地圖和重定位

缺點:1、不能解決實際問題。它基于特征點法,建的圖是稀疏的,只能滿足定位需求,而無法提供導航、避障、交互等諸多功能。而且目前還沒有開放存儲和讀取地圖后重新定位的功能。

2、受光照和車輛、行人等動態(tài)物體的影響太大

后續(xù)工作:對前端數(shù)據(jù)進行軌跡的優(yōu)化和回環(huán),稠密建圖

【自我備注:1、保存稀疏地圖的MapPoint和KeyFrame成.bin格式 ;2、如果保存成pcd格式,那么關(guān)鍵幀與關(guān)鍵點之間的關(guān)系沒有辦法保存。。。即pcd保存的地圖信息并不完整】

二、VINS MONO

參考博文:https://blog.csdn.net/Darlingqiang/article/details/80689123

實現(xiàn)原理:用緊耦合方法實現(xiàn)的,通過單目+IMU恢復(fù)出尺度

目標:AR

整體框架:

1、Measurement Preprocessing:觀測值數(shù)據(jù)預(yù)處理,包含圖像數(shù)據(jù)跟蹤IMU數(shù)據(jù)預(yù)積分;

2、Initialization:初始化,包含單純的視覺初始化和視覺慣性聯(lián)合初始化;

3、Local Visual-Inertia BA and Relocalization:局部BA聯(lián)合優(yōu)化和重定位,包含一個基于滑動窗口的BA優(yōu)化模型;

4、 Loop detection and Global Pose Graph Optimization:回環(huán)檢測;全局圖優(yōu)化,只對全局的位姿進行優(yōu)化;

多種視覺SLAM方案對比

代碼解讀:

VINS代碼主要包含在兩個文件中:

1、feature_tracker 接收圖像,使用KLT光流算法跟蹤

2、vins_estimate 包含相機和IMU數(shù)據(jù)的前端預(yù)處理(也就是預(yù)積分過程)、單目慣性聯(lián)合初始化(在線的標定過程)、基于滑動窗口的BA聯(lián)合優(yōu)化、全局的圖優(yōu)化和回環(huán)檢測

vins主要就是兩個節(jié)點:

1、一個節(jié)點算前端,為feature_tracker_node.cpp

2、另一個節(jié)點算后端,為estimator_node.cpp

多種視覺SLAM方案對比

三、ORB_SLAM2、VI ORB SLAM2 、 VINS Mono對比實驗

參考鏈接:http://www.liuxiao.org/2018/02/vi-orb-slam2-與-vins-對比實驗/

主要指標:均方根誤差

多種視覺SLAM方案對比

實驗結(jié)果:

1、ORB 與 VI ORB 對比

多種視覺SLAM方案對比

由表可以看出:

1)雙目 VIO 比單目 VIO 效果要更好也更穩(wěn)定;

2)原始 VO 的優(yōu)化已經(jīng)比較徹底,IMU 誤差項的加入給優(yōu)化結(jié)果造成了更多的不穩(wěn)定性,加入 IMU 的版本均不如原始雙目版本的精度。

2、VI ORB 與 VINS Mono 對比(開啟閉環(huán))

多種視覺SLAM方案對比

由表可以看出:

1)VINS Mono 精度與VIORB Mono/Stereo比,精度要高一些;

2)VI ORB 是不能完全跑過所有測試集的,特別是快速運動的 V2_03_difficult 測試集結(jié)尾階段會跟丟;而vins mono采用的光流跟蹤,不易跟丟。

3、VI ORB 與 VINS Mono 對比(關(guān)閉閉環(huán))

多種視覺SLAM方案對比

由表可以看出:

VINS Mono 對閉環(huán)依賴較大,在關(guān)閉閉環(huán)后,VINS Mono 的性能下降較多。

4、實驗小結(jié)

1)在沒有閉環(huán)情況下,VINS Mono 精度略低于 VIORB;而在有閉環(huán)情況下,二者精度差距不大。

2)由于開源 VIORB 版本并非官方實現(xiàn),與官方版本有很多不同之處,沒有辦法測試真實官方 VIORB 的性能;但基本可以看出對于VI ORB SLAM2 框架,IMU 的引入主要是在快速運動時能夠減少一些丟失,而精度上與 VO 相近或略有下降;

3)以光流作為前端的 VINS Mono 比描述子作為前端的 VIORB 具有更好的魯棒性,在快速運動時更不容易丟失。因此在類似于無人機這樣的場景,VINS 應(yīng)該是比 VIORB 更好的選擇;而對于精度要求較高、場景更大而運動較慢的場景,VIORB /ORB仍然更合適;

4)不論是否引入 IMU,雙目對于精度和魯棒性都會有一定的提升,VINS Fusion相比于vins mono,性能有所提升;{精度——慢速,雙目;魯棒——快速}

5)除前端差別較大外(比如光流與ORB、滑窗與局部地圖),雖然都是預(yù)積分,二者后端算法與實現(xiàn)亦有較大不同(李代數(shù)與四元數(shù)參數(shù)化不同、積分方式不同、g2o與ceres實現(xiàn)差別等),因此造成性能差異的原因較復(fù)雜。

5、 VI ORB-SLAM初始化與VINS初始化對比(將vi orb-slam初始化方法移植到vins中)

四、VIO:飛行機器人單目VIO算法測評

參考鏈接:https://blog.csdn.net/u012348774/article/details/81414264

核心思想:

全面的比較了各種公開的單目VIO算法(MSCKF、OKVIS、ROVIO、VINS-Mono、SVO+MSF和SVO+GTSAM);

在多個嵌入式平臺上(Laptop,Intel NUC,UP Board,ODROID)測試了各種單目VIO算法,并分析了算法的表現(xiàn);

3.選用EuRoC MAV數(shù)據(jù)集。

結(jié)論:SVO+MSF是計算效率最高的算法,而VINS-Mono是狀態(tài)估計精度最高的算法,ROVIO則處于兩者之間

五、VINS FUSION

推薦鏈接:https://blog.csdn.net/huanghaihui_123/article/details/86518880

發(fā)布信息:港科大 2019年1月12號

版本:

(1)單目+imu

(2)純雙目

(3)雙目+imu

(4)雙目+imu+GPS

和vins mono相比:

對比于VINS Mono,主要增加了global_fusion包,用來融合GPS以及視覺IMU定位的結(jié)果。代碼結(jié)構(gòu),之前的pose_graph節(jié)點更名為loop_fusion,之前的feature_track節(jié)點融合進vins_estimator內(nèi)部。vins_estimator中的factor殘差項增加了很多,主要是視覺的殘差項增加。

優(yōu)勢:可以靜止進行初始化;尺度信息不一定完全依靠IMU(有雙目),不會造成尺度不可關(guān)的情況;魯棒性上,雙目明顯優(yōu)于單目;

劣勢:由于視覺誤匹配等各種原因,雙目的精度會比單目差一點。

【自我備注:使用vinsfusion閉環(huán)跑KITTI的純雙目數(shù)據(jù)集,跑出來的output結(jié)果有vio.txt位姿文件,但這個沒有閉環(huán),閉環(huán)的數(shù)據(jù)在單獨的vio_loop.csv文件里,這個文件里的數(shù)據(jù)只有閉環(huán)幀,而且數(shù)據(jù)格式和真實軌跡不一樣,不是12列。如何將閉環(huán)的vio_loop.csv數(shù)據(jù)融合到未閉環(huán)的vio.txt數(shù)據(jù)里,然后畫出閉環(huán)后的整體軌跡估計?】

六、RTAB-MAP

概述:與其他視覺slam方案不同在于提供了一個與時間和尺度無關(guān)的基于外觀的定位與構(gòu)圖解決方案,優(yōu)化了大型環(huán)境的在線閉環(huán)檢測問題,主要是利用計算權(quán)重使得只利用有限數(shù)量的定位點參與閉環(huán)檢測,但是若需要也可以訪問全局的定位點。

流程:開始->特征提取和匹配->求兩兩幀的視覺里程計->優(yōu)化php的結(jié)果->局部地圖->運動狀態(tài)估計->運動狀態(tài)估計->位姿圖->詞袋模型->相似度計算->結(jié)束

特征點:使用詞袋法創(chuàng)建圖像的簽名,基于opencv從圖像中提取SURF特征來得到視覺單詞。

建圖方式:1.Octomap(3d占用柵格地圖)

2.稠密點云地圖

3.2d占用柵格地圖

ROS節(jié)點:輸入:1.TF(傳感器相對于機器人底座的位置)

2.里程計

3.相機輸入以及帶有校準的信息

輸出:1.Map Data和Graph

優(yōu)點:1.適用于長期和大規(guī)模環(huán)境在線建圖的要求

2.里程計魯棒性較好好且低漂移

3.定位魯棒性較好

4.地圖生成開發(fā)實用且簡便

5.提供軟件包

缺點:1.方案偏向于商品化,二次開發(fā)難

參考:https://blog.51cto.com/remyspot/1784914

七、RGBD-SLAM V2

概述:系統(tǒng)前端為視覺里程計,從每一幀的RGB提取特征,計算描述符,RANSAC+ICP計算兩幀之間的運動估計,并提出了一個EMM(環(huán)境測量模型)判斷運動估計是否可以接受,后端回環(huán)檢測基于G2O的位姿圖優(yōu)化

特征點:1.SIFT by GPU(綜合表現(xiàn)最好)

2.SURF by CPU(OPENCV)

3.ORB by CPU (OPENCV)(準確率,實時性更加好)

建圖方式:八叉樹地圖octomap(利于導航 ; 易于更新 ;存儲方式比較省空間)

優(yōu)點:1.二次開發(fā)較容易,可以在其基礎(chǔ)上繼續(xù)開發(fā)

缺點:1.實時性相對較差,相機要慢速運動

參考:http://www.cnblogs.com/voyagee/p/7027076.html

八、RTAB-MAP和RGBD-SLAM V2的對比

系統(tǒng)構(gòu)建:

1、RGBD_SLAM V2是一個非常全面優(yōu)秀的系統(tǒng),將SLAM領(lǐng)域的圖像特征、優(yōu)化、閉環(huán)檢測、點云、octomap等技術(shù)融為一體,

2、RTAB-Map是當前最優(yōu)秀的RGBD SLAM

開發(fā):RGBD_SLAM2適合RGBD SLAM初學者,也可以在其基礎(chǔ)上繼續(xù)開發(fā)。

RTAB-MAP二次開發(fā)難度較高(著名的Google Tango(見如何評價Google 的 Project Tango和Google Project Tango 有哪些黑科技)就是使用RTAB-Map做SLAM,)

實時性:RGBD_SLAM2的缺點是其算法實時性不好,相機必須慢速運動,

RTABMAP 通過STM/WM/LTM的內(nèi)存管理機制,減少圖優(yōu)化和閉環(huán)檢測中需要用到的結(jié)點數(shù),保證實時性以及閉環(huán)檢測的準確性,能夠在超大場景中運行。

回環(huán)檢測:RGBDSLAMV2:相機較快運動時,會出現(xiàn)很大的地圖重疊。

RTABMAP:穩(wěn)定性相對較好,但是也不穩(wěn)定。

個人:實際運行中RGBD SLAM V2用點云表達,點云表達方式耗費內(nèi)存,時間較長后,三維空間中的點云數(shù)量增多,畫面出現(xiàn)明顯的卡頓,但采集得結(jié)果細節(jié)表現(xiàn)得很好

RTAB-MAP實際運行過程中,畫面比較流暢,但是是使用3d柵格占用地圖表現(xiàn)的,細節(jié)表現(xiàn)得也不錯。

九、RTAB-MAP和ORB-SLAM的對比

系統(tǒng)構(gòu)建:RTAB-MAP:框架較全面,支持聯(lián)合建圖,建立的地圖包括三維稠密點云和二維柵格地圖(可以直接從ros獲取二進制程序)

ORB-SLAM:只滿足了定位的需求,無法提供導航,避障,交互等諸多功能 。

代碼可讀性:RTAB-MAP:差,基本上封裝了。

ORB-SLAM:可讀性好。

應(yīng)用:RTAB-MAP:適合作為slam應(yīng)用

ORB-SLAM:適合研究使用

計算量:RTAB-MAP:內(nèi)存管理方法計算量相對較小

ORB-SLAM:三線程結(jié)構(gòu),必須對每幅圖像計算一遍orb特征,耗時和計算量大

回環(huán)檢測:RTAB-MAP:回環(huán)檢測只訪問有限數(shù)量的定位點

ORB-SLAM:優(yōu)秀的回環(huán)檢測算法保證了ORB-SLAM2有效地防止累積誤差,并且在丟失之后還能迅速找回,這一點許多現(xiàn)有的SLAM系統(tǒng)都不夠完善。為此,ORB-SLAM2在運行之前必須加載一個很大的ORB字典 。

十、SLAM算法對比:

一:視覺和IMU前端數(shù)據(jù)處理

對于視覺前端做法基本分為三種:

①特征點提?。╢eature detection)+根據(jù)描述子匹配特征點

orbslam, okvis

優(yōu)點:因為有描述子,因此對地圖的維護很方便(包括重定位,閉環(huán),全局優(yōu)化)

尤其是對室內(nèi)環(huán)境,當視覺上共視關(guān)系較多的時候,這種方法能很大提高定位精度和局部的穩(wěn)定性。室內(nèi)移動機器人建議使用這種方法

缺點:每幀圖像都要提取特征點數(shù)量的描述子,浪費時間;在tracking過程中,如果運動過快(圖像出現(xiàn)模糊)比較容易tracking failed,而光流要好一些

②特征點提取+光流跟蹤

vins,svo的初始化

優(yōu)點:簡單高效,tracking要魯棒一些

缺點:不容易構(gòu)建全局map,視覺約束只靠滑窗里面的關(guān)鍵幀。

比如vins的閉環(huán)和重定位是需要另外再提取特征點和描述子的;但后端做得好

③直接法

lsdslam,dso

優(yōu)點:在弱紋理下,魯棒性好

缺點:不容易維護全局地圖,對光照影響較大,高精度地圖中無法使用等。

對于IMU前端:

IMU前端基本都是使用預(yù)積分的方式,和積分的區(qū)別(預(yù)積分把重力考慮進去了)。imu預(yù)積分主要是在兩幀圖像之間更新imu的5個狀態(tài)變量(p, v, q, ba, bg)的Jacobian和covariance。

PS:為了使得非線性優(yōu)化中,不用每次改變位姿后,積分需要重新計算的問題。

現(xiàn)在改變位姿(速度,位移,旋轉(zhuǎn)四元數(shù)關(guān)于世界坐標系的),預(yù)積分內(nèi)的項保持不變。

改變ba,bg(加速度和陀螺儀偏移)后,預(yù)積分的項可以通過泰勒一階展開來進行更新。

jacobian是單位矩陣,主要是為了求一階近似的p, v,q;covariance是零矩陣,主要是為了求imu誤差項的權(quán)重

IMU初值確定:一般結(jié)合vins mono 等的視覺信息來求

二:后端優(yōu)化

濾波:不需要做邊緣化,重定位難。因為不需要迭代,速度略快。

**優(yōu)化:**需要邊緣化(比較耗時間),重定位容易。迭代優(yōu)化,速度略慢。

VINS-Mono與OKVIS類似,是基于非線性優(yōu)化器優(yōu)化一個滑窗內(nèi)的關(guān)鍵幀,幀間通過魯棒的角點關(guān)聯(lián)。在系統(tǒng)初始化階段,通過松耦合的方式融合多種傳感器;在重定位階段,則通過緊耦合的方式融合傳感器。在優(yōu)化之前,也通過IMU預(yù)積分減少計算量。除此至外,VINS還提供了基于4DoF的位姿圖優(yōu)化和回環(huán)檢測。

十一、實體測試

多種視覺SLAM方案對比

十二、方案選型(個人觀點,不喜勿噴)

通過上述調(diào)研,出于資源等的考慮,初步將ORB_SLAM2、 VINS FUSION、RTAB MAP 和LSD SLAM列入后期調(diào)研中,擬再花兩周進行相機選型和實體場景測試,先給出現(xiàn)階段調(diào)研結(jié)果,希望大家相互學習,共同進步!

作者為CSDN博主「lark_ying」

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至2161241530@qq.com 舉報,一經(jīng)查實,本站將立刻刪除。如若轉(zhuǎn)載,請注明出處:http://www.parklessenses.com/uncategorized/40746/

(0)

相關(guān)推薦

發(fā)表評論

登錄后才能評論