很多公司在工程上是用VINS(VINS-Mono或VINS-Fusion)做里程計,而不是ORB-SLAM,但是好像ORB-SLAM比VINS效果更好,這是為什么呢?且看大家是怎么說的
簡單回顧
ORB-SLAM是一種基于特征的單目視覺SLAM系統(tǒng),廣泛用于實時三維地圖構(gòu)建和機器人定位。該系統(tǒng)使用ORB特征進行高效的視覺識別和地圖重建,支持關(guān)鍵幀技術(shù)和回環(huán)檢測來優(yōu)化地圖的準確性。ORB-SLAM能夠在多種環(huán)境下穩(wěn)定工作,適用于動態(tài)場景和長時間操作,因其出色的性能和靈活性,被廣泛應(yīng)用于自動駕駛、增強現(xiàn)實等領(lǐng)域。
VINS(Visual-Inertial Navigation System)是一種結(jié)合視覺信息和慣性測量單元(IMU)數(shù)據(jù)的SLAM框架,能夠提供高精度的實時定位和地圖構(gòu)建功能。VINS通過融合相機和IMU的數(shù)據(jù),即使在視覺信息不足的情況下也能保持較高的定位精度,使其適用于快速運動或低光照條件下的場景。VINS框架因其魯棒性和準確性,在無人機導(dǎo)航、移動機器人等領(lǐng)域得到了廣泛應(yīng)用。
看看大家怎么說
袁博融說
因為大部分工程師對SLAM都沒有深入了解。要么是都試試,哪個能跑通效果好就用哪個,要么是跟著主流意見走。而主流意見未必就是對的,很大程度上也是受公眾號自媒體影響。其實VINS和ORB-SLAM都不是適合工程使用的好方案。
工程應(yīng)用首先應(yīng)保證前端的魯棒性,其次才是精度。畢竟你要先能收斂,看精度才有意義。運行時但凡飄一下,之前精度再高也是打水漂。VINS和ORB-SLAM對于corner cases是沒啥特殊處理的,連ZUPT都沒做,這就注定魯棒性不足。VINS長時間運行會發(fā)散是必然的。
大家覺得VINS和ORB-SLAM精度高,那是它們在幾個公開數(shù)據(jù)集上表現(xiàn)好。但這并不意味著它們在工程應(yīng)用中也一定表現(xiàn)好。實際上,應(yīng)用中對精度影響更大的反而是數(shù)據(jù)質(zhì)量,而不是算法本身。比如傳感器的標定誤差、同步精度、曝光、對比度、噪點等都可能會產(chǎn)生顯著影響。在這種情況下,算法本身的差異甚至可以忽略不計。即便你出廠標定的再好,產(chǎn)品在整個生命周期里的參數(shù)漂移也是要考慮的吧。這些都是工程問題。
我一直不建議SLAM研究者只拿數(shù)據(jù)集做測試。數(shù)據(jù)集的固定序列難以讓我們認識算法表現(xiàn)的隨機性。我見過在某些序列上基礎(chǔ)的VO比VINS和ORB-SLAM精度更高。但這顯然是隨機性引起的,因為綜合多個序列的結(jié)果還是VINS和ORB-SLAM更好。我經(jīng)常手持設(shè)備去跑測試,即便走同樣的線路,多次的表現(xiàn)也會有差異。如果一個算法多次表現(xiàn)起伏很大,我們至少可以說它在這個場景中沒有處于合適的工作窗口。
作為開發(fā)者不能總是照顧算法的特性,而應(yīng)該多創(chuàng)造可能產(chǎn)生退化的極端場景做研究。這就是為什么我之前甚至錄了過山車數(shù)據(jù)來做SLAM測試。
我自己實現(xiàn)的VIO方案可以跑完這條序列,但我不覺得VINS或ORB-SLAM能做到。我開源這套數(shù)據(jù)后也一直沒有其他人說能跑通。即便我的方案能跑通這種極端場景,也不意味著它在其它看起來更簡單的場景中就不會出問題。事實上我們在其它項目中也遇到過各種挑戰(zhàn),也是花了幾個月的時間去分析和優(yōu)化,現(xiàn)在也還在繼續(xù)迭代。
VINS和ORB-SLAM的后端其實都不算先進,應(yīng)該說還不如RTAB-Map。這幾個后端其實都在用BoW,但RTAB-Map還有內(nèi)存管理等高級特性。我一直奇怪咋還不更新成VLAD,是因為大家跑的場景不夠大嗎?反正RTAB-Map很快會支持VLAD的,因為我也是它的第二大貢獻者。但我并不是說RTAB-Map比VINS或ORB-SLAM更好,而是它們根本不好比。RTAB-Map最初就是個VSLAM后端框架,后來才加的前端。我前面說的基礎(chǔ)的VO就是RTAB-Map后來加的實現(xiàn)。而你甚至可以在RTAB-Map中用VINS或ORB-SLAM做前端。這也是為什么我要另外做VIO方案,因為RTAB-Map本來就沒提供這些,它只是預(yù)留了模板。RTAB-Map不是個算法而是個框,什么都可以往里裝。
ORB-SLAM的最大硬傷就是它用的是ORB特征。ORB特征除了性能好一些,在各類任務(wù)上都沒什么優(yōu)勢。不知道有多少研究者仔細測試和比較過,其實傳統(tǒng)特征描述子最好的還是SIFT(而且專利也到期了),后來的沒一個能打的。但SIFT檢測開銷大也是眾所周知的。而SIFT檢測+SIFT描述子也不是最好的。我目前知道的最好的組合是GFTT(Shi-Tomasi)+SIFT描述子,回環(huán)檢測能力吊打其它各種組合。CV領(lǐng)域就是這么神奇,最老的反而是最好的。GFTT本身開銷就低,還方便做硬件加速。ORB做硬件加速都要更麻煩一些。我自己方案就是用GFTT+RootSIFT或SuperPoint(HF-Net)。不考慮后端的話,GFTT+KLT其實都非常好了。
所以如果你要問工程上哪個方案最好,我會告訴你RTAB-Map不錯,但它只能做后端,你還需要一個好的前端。我們的前端方案今年會推產(chǎn)品,RTAB-Map這一兩年也還會有重量級更新。除了VLAD部分還會有iSAM2,Gaussian Splatting等。目標就是純視覺做超大場景(至少城市級吧)VSLAM+三維重建。
樂知者說
論文與實際有差別。
這就看你把orbslam和vinsmono用來干什么了。
先作為Vio來說,結(jié)論vinsmono優(yōu)于orb3(沒有了回環(huán)檢測、多地圖功能和重定位的orb3,不如vins一根毛)。理由如下:
1、運行資源。orb3遠比vins消耗的多,不解釋。
2、前段跟蹤穩(wěn)定性。lk光流跟蹤比orb3 track跟蹤穩(wěn)定很多。orb3在實際場景中,tracklocalmap容易失敗。orb3在室外場景中容易reset,然后新建地圖。
3、后端優(yōu)化這塊。怎么說呢,orb3確實強,但是不符合導(dǎo)航要求的定位。因為你會經(jīng)常看到它明開始跟飛很遠,然后又給你突然拉回來。這種跟飛又來回來很蛋疼。沒有vins-mono那邊平滑。
4、精度這塊(假設(shè)你成功運行完一個數(shù)據(jù)集),精度orb3會比vins強(vio初始化好的話,orb3可以到達1%)。然并軟,因為orb3并不穩(wěn)定,跑同一個書籍,你可能得到的結(jié)果都差異很大。
5、外參和實延。orb受外參數(shù)影響特別大,不如vins一根毛。
6、調(diào)試。vins參數(shù)量小于orb3,且穩(wěn)定性比orb3強多了,不然你都不知道這次結(jié)果比上次好到底是什么原因?qū)е碌摹?/p>
結(jié)論:
vio1 vins-mono+orb3初始化策略
vio2 msckf前段+orb后端
這兩個YYDS。
作為slam (三維重建,語義地圖),orb3遠優(yōu)越于vins。自己理解。忠告:遠離vslam或者Vio,擁抱感知或者激光。
余世杰說
說下自己的理解,ORB強在是一個完整的系統(tǒng),代碼結(jié)構(gòu)邏輯非常清晰,比較模塊化,要做修改替換啥的比較方便,同時地圖的部分對于需要的項目來說很省事兒,可以直接拿來用。缺點是,代碼中還是存在一些致命的bug,會跑崩(程序掛了),以及作為一個VIO系統(tǒng)來說,穩(wěn)定性不夠強,若視覺失效,幾乎立馬就整體丟了,所以精度高的意義沒那么大了又。若要求視覺必須穩(wěn)定,那為啥我還要加IMU呢,這也是一個ORB3精度可能不如ORB2的一個原因。
VINS強在一個對外參依耐性沒那么強,畢竟自己可以估計,導(dǎo)致就算初始化有點點問題,也可以很快穩(wěn)定下來。而穩(wěn)定性更是不用說,在視覺失效個5秒左右,系統(tǒng)都能比較正常的跑下來。還可以融合GPS輸出個對齊結(jié)果,對于需要的項目也是一個加分項。缺點的話,大概就是缺少了地圖一部分吧,自身是比較強的。
格雷茨卡說
因為VINS-Mono在真實場景中的穩(wěn)定性遠遠好于ORB-SLAM3,雖然ORB-SLAM3在論文中的精度指標大幅度好于VINS-Mono,但是,你總不能一直在那幾個數(shù)據(jù)集刷指標吧,在工程中的應(yīng)用就要求一個系統(tǒng)必須能夠魯棒穩(wěn)定,本人實測ORB-SLAM3對外參,特別是rotation,非常敏感,標定差一些直接就跑飛了,而VINS就不會有這個問題,可能雖然整體誤差有一些大,但是實時性和魯棒性足夠了,ORB-SLAM3的VI初始化很耗時間,同時在自己實際設(shè)備上的有效性一般,VINS的初始化簡單明了,實測也不會跑飛,而且又有一個250HZ的IMU預(yù)積分線程,能夠很好的保證實時性,因此工程應(yīng)用無腦VINS,會省很多事情
審核編輯:黃飛
-
機器人
+關(guān)注
關(guān)注
210文章
28231瀏覽量
206612 -
移動機器人
+關(guān)注
關(guān)注
2文章
757瀏覽量
33546 -
SLAM
+關(guān)注
關(guān)注
23文章
419瀏覽量
31789 -
增強現(xiàn)實
+關(guān)注
關(guān)注
1文章
712瀏覽量
44930 -
自動駕駛
+關(guān)注
關(guān)注
783文章
13694瀏覽量
166165
原文標題:為什么工程上選擇VINS而不是ORB-SLAM?
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論