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

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

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

高翔博士分享:?jiǎn)文縎LAM在移動(dòng)端應(yīng)用的實(shí)現(xiàn)難點(diǎn)有哪些?

QQ475400555 ? 來(lái)源:zhihu ? 2023-06-07 15:02 ? 次閱讀

提綱如下:

單目SLAM難點(diǎn)

視覺(jué)SLAM難點(diǎn)

可能的解決思路

圖片中非原創(chuàng)部分均已加引用,請(qǐng)勿盜圖,轉(zhuǎn)載請(qǐng)私信告知。

單目slam的障礙來(lái)自于理論和實(shí)踐兩個(gè)方面。理論障礙可以看做是固有的,無(wú)法通過(guò)硬件選型或軟件算法來(lái)解決的,例如單目初始化和尺度問(wèn)題。實(shí)踐問(wèn)題包括計(jì)算量,視野等,可以依靠選型、算法、軟件設(shè)計(jì)等方法來(lái)優(yōu)化。不過(guò)在同等硬件水平下,優(yōu)化也存在極限的。比如對(duì)O(1)的算法不滿意從而設(shè)計(jì)O(1/n)的算法似乎是不可能的……

單目SLAM難點(diǎn)

單目的優(yōu)點(diǎn)是成本低,最大的局限性是測(cè)不到空間物體的距離,只有一個(gè)圖像。所以早期視覺(jué)SLAM也被稱為“只有角度的SLAM”(Bearing Only)。距離在定位中至關(guān)重要,雙目和RGBD相機(jī)的使用就是為了能夠計(jì)算(或測(cè)量)這個(gè)距離。上一個(gè)圖你們直觀體會(huì)一下距離的重要性:

5f33adca-04e7-11ee-90ce-dac502259ad0.jpg

很顯然,沒(méi)有距離信息,我們不知道一個(gè)東西的遠(yuǎn)近——所以也不知道它的大小。它可能是一個(gè)近處但很小的東西,也可能是一個(gè)遠(yuǎn)處但很大的東西。只有一張圖像時(shí),你沒(méi)法知道物體的實(shí)際大小——我們稱之為尺度(Scale)。

可以說(shuō),單目的局限性主要在于我們沒(méi)法確定尺度,而在雙目視覺(jué)、RGBD相機(jī)中,距離是可以被測(cè)量到的(當(dāng)然測(cè)量也有一定的量程和精度限制)。雙目視覺(jué)和人眼類似,通過(guò)左右眼圖像的差異來(lái)計(jì)算距離——也就是所謂的立體視覺(jué)(Stereo)。RGBD則是把(通常是紅外)光投射到物體表面,再測(cè)量反射的信息來(lái)計(jì)算距離的。具體原理分結(jié)構(gòu)光和ToF兩種,在此不多做解釋,還是上圖直觀感受一下。

5f3cc356-04e7-11ee-90ce-dac502259ad0.png

5f481864-04e7-11ee-90ce-dac502259ad0.png

距離未知導(dǎo)致單目SLAM存在以下問(wèn)題:

需要初始化

尺度不確定

尺度漂移

而一旦我們擁有了距離信息,上述幾條就都不是問(wèn)題,這也是雙目和RGBD存在的意義。下面分別講一下以上幾條。

---------------我是分割線-----------------

1.1 初始化

單目SLAM剛開(kāi)始時(shí),只有圖像間的信息,沒(méi)有三維空間的信息。于是一個(gè)基本問(wèn)題就是:怎么通過(guò)兩張圖像確定相機(jī)自身運(yùn)動(dòng),并且確定像素點(diǎn)的距離。這個(gè)問(wèn)題稱為單目SLAM初始化問(wèn)題。一般是通過(guò)匹配圖像特征來(lái)完成的。

5f59d522-04e7-11ee-90ce-dac502259ad0.png

匹配好的特征點(diǎn)給出了一組2D-2D像素點(diǎn)的對(duì)應(yīng)關(guān)系,但由于是單目,沒(méi)有距離信息。初始化的意義是求取兩個(gè)圖像間的運(yùn)動(dòng)和特征點(diǎn)距離,所以初始化完畢后你就知道這些特征點(diǎn)的3D位置了。后續(xù)的相機(jī)運(yùn)動(dòng)就可以通過(guò)3D點(diǎn)-2D點(diǎn)的匹配信息來(lái)估計(jì)。后續(xù)的問(wèn)題叫PnP(Perspective n Point)。

對(duì),你想的沒(méi)錯(cuò),單目的流程就是:初始化——PnP——PnP——……

初始化的運(yùn)動(dòng)是通過(guò)對(duì)極幾何來(lái)求解的,結(jié)構(gòu)是由三角測(cè)量得到的。初始化問(wèn)題是一個(gè)2D-2D求運(yùn)動(dòng)和結(jié)構(gòu)的問(wèn)題,比3D-2D的PnP要難(信息更少,更不確定)。我不展開(kāi)對(duì)極幾何求運(yùn)動(dòng)的原理,但是理解它,對(duì)理解單目局限性是很有幫助的。如題主感興趣,請(qǐng)看Multiple View Geometry第8章。如果在知乎上寫(xiě),會(huì)占掉很大的篇幅。

對(duì)極幾何最終會(huì)分解一個(gè)本質(zhì)矩陣(Essential Matrix)(或基本矩陣(Fundametal Matrix))來(lái)得到相機(jī)運(yùn)動(dòng)。但分解的結(jié)果中,你會(huì)發(fā)現(xiàn)對(duì)平移量乘以任意非零常數(shù),仍滿足對(duì)極約束。直觀地說(shuō),把運(yùn)動(dòng)和場(chǎng)景同時(shí)放大任意倍數(shù),單目相機(jī)仍會(huì)觀察到同樣的圖像!這種做法在電影里很常見(jiàn)。例用用相機(jī)近距離拍攝建筑模型,影片看起來(lái)就像在真實(shí)的高樓大廈一樣(比如奧特曼打怪獸實(shí)際是兩個(gè)穿著特?cái)z服裝的演員,多么無(wú)情的現(xiàn)實(shí))。

這個(gè)事實(shí)稱為單目的尺度不確定性(Scale Ambiguity)。所以,我們會(huì)把初始化的平移當(dāng)作單位1,而之后的運(yùn)動(dòng)和場(chǎng)景,都將以初始化時(shí)的平移為單位。然而這個(gè)單位具體是多少,我們不知道(攤手)。并且,在初始化分解本質(zhì)矩陣時(shí),平移和旋轉(zhuǎn)是乘在一起的。如果初始化時(shí)只有旋轉(zhuǎn)而沒(méi)有平移,初始化就失敗了——所以業(yè)界有種說(shuō)法,叫做“看著一個(gè)人端相機(jī)的方式,就知道這個(gè)人有沒(méi)有研究過(guò)SLAM”。有經(jīng)驗(yàn)的人會(huì)盡量帶平移,沒(méi)經(jīng)驗(yàn)的都是原地打轉(zhuǎn)……

所以,從應(yīng)用上來(lái)說(shuō),單目需要一個(gè)帶平移的初始化過(guò)程,且存在尺度不確定問(wèn)題,這是它理論上的障礙。

員工:老板你這樣移動(dòng)相機(jī)不行啊,要有平移的……

老板:我花20k請(qǐng)你來(lái)做slam,一個(gè)初始化都搞不定?

1.2 結(jié)構(gòu)問(wèn)題

由于單目沒(méi)有距離信息,所有特征點(diǎn)在第一次出現(xiàn)時(shí)都只有一個(gè)2d投影,實(shí)際的位置可能出現(xiàn)在光心與投影連線的任意一處。只有在相機(jī)運(yùn)動(dòng)起來(lái)以后,才可能通過(guò)三角測(cè)量,估計(jì)特征點(diǎn)的距離。

三角測(cè)量的應(yīng)用范圍很廣,傳說(shuō)高斯在十幾歲的時(shí)候就已經(jīng)用最小二乘法測(cè)量山的距離,來(lái)吊打這些二十大幾還在水paper的博士們?,F(xiàn)代天文學(xué)測(cè)星星的距離也使用三角測(cè)量。

5f9c2fd0-04e7-11ee-90ce-dac502259ad0.png

然而三角測(cè)量的前提是——你得有三角啊。

高斯用三角測(cè)量是站在兩座山上去量另一座,這就構(gòu)成了三角。雙目視覺(jué)左右兩個(gè)相機(jī),存在一定的平移,和目標(biāo)點(diǎn)也構(gòu)成了三角。但在單目情形下,你必須移動(dòng)相機(jī)之后,才可能去估計(jì)空間點(diǎn)的3D位置。換句話說(shuō),如果相機(jī)擺在那兒不動(dòng)——就沒(méi)有三角了。這導(dǎo)致單目在機(jī)器人避障中應(yīng)用存在困難,不過(guò)既然在談AR我們就先不說(shuō)機(jī)器人吧。

1.3 尺度漂移

用單目估計(jì)出來(lái)的位移,與真實(shí)世界相差一個(gè)比例,叫做尺度。這個(gè)比例在初始化時(shí)確定,但單純靠視覺(jué)無(wú)法確定這個(gè)比例到底有多大。進(jìn)而,由于SLAM過(guò)程中噪聲的影響,這個(gè)比例還不是固定不變的。當(dāng)你用單目SLAM,會(huì)發(fā)現(xiàn),咦怎么跑著跑著地圖越來(lái)越小了……

5fb0b266-04e7-11ee-90ce-dac502259ad0.png

這種現(xiàn)象在當(dāng)前state-of-the-art的單目開(kāi)源方案出亦會(huì)出現(xiàn),修正方法是通過(guò)回環(huán)檢測(cè)。但是有沒(méi)有出現(xiàn)回環(huán),則要看實(shí)際的運(yùn)動(dòng)方式。所以……

員工:老板你這樣移動(dòng)相機(jī)不行啊,要經(jīng)常把它移回去……

老板:我花20k請(qǐng)你來(lái)做slam,怎么搞的地圖一會(huì)兒大一會(huì)兒小,這怎么用?

---------------我是分割線-----------------

視覺(jué)SLAM的困難

雙目相機(jī)和RGBD相機(jī)能夠測(cè)量深度數(shù)據(jù),于是就不存在初始化和尺度上的問(wèn)題了。但是,整個(gè)視覺(jué)SLAM的應(yīng)用中,存在一些共同的困難,主要包括以下幾條:

相機(jī)運(yùn)動(dòng)太快

相機(jī)視野不夠

計(jì)算量太大

遮擋

特征缺失

動(dòng)態(tài)物體或光源干擾

2.1 運(yùn)動(dòng)太快

運(yùn)動(dòng)太快可能導(dǎo)致相機(jī)圖像出現(xiàn)運(yùn)動(dòng)模糊,成像質(zhì)量下降。傳統(tǒng)卷簾快門(mén)式的相機(jī),在運(yùn)動(dòng)較快時(shí)將產(chǎn)生明顯的模糊現(xiàn)象。不過(guò)現(xiàn)在我們有全局快門(mén)的相機(jī)了,即使動(dòng)起來(lái)也不會(huì)模糊的相機(jī),只是價(jià)格貴一些。

5fc83152-04e7-11ee-90ce-dac502259ad0.png

(你真以為啥圖都可以用來(lái)SLAM嗎?拿衣服啊,圖片來(lái)自TUM數(shù)據(jù)集)

5fd7282e-04e7-11ee-90ce-dac502259ad0.png

(全局快門(mén)相機(jī)在拍攝高速運(yùn)動(dòng)的物體仍是清晰的,圖片來(lái)自網(wǎng)絡(luò)

運(yùn)動(dòng)過(guò)快的另一個(gè)結(jié)果就是兩個(gè)圖像的重疊區(qū)(Overlap)不夠,導(dǎo)致沒(méi)法匹配上特征。所以視覺(jué)SLAM中都會(huì)選用廣角、魚(yú)眼、全景相機(jī),或者干脆多放幾個(gè)相機(jī)。

2.2 相機(jī)視野不夠

如前所述,視野不夠可能導(dǎo)致算法易丟失。畢竟特征匹配的前提是圖像間真的存在共有的特征。

2.3 計(jì)算量太大

基于特征點(diǎn)的SLAM大部分時(shí)間會(huì)花在特征提取和匹配上,所以把這部分代碼寫(xiě)得非常高效是很有幫助的。這里就有很多奇技淫巧可以用了,比如選擇一些容易計(jì)算的特征/并行化/利用指令集/放到硬件上計(jì)算等等,當(dāng)然最直接的就是減少特征點(diǎn)啦。這部分很需要工程上的測(cè)試和經(jīng)驗(yàn)。總而言之特征點(diǎn)的計(jì)算仍然是主要瓶頸所在。要是哪天相機(jī)直接輸出特征點(diǎn)就更好了。

2.4 遮擋

相機(jī)可能運(yùn)動(dòng)到一個(gè)墻角,還存在一些邪惡的開(kāi)發(fā)者刻意地用手去擋住你的相機(jī)。他們認(rèn)為你的視覺(jué)SLAM即使不靠圖像也能順利地工作。這些觀念是毫無(wú)道理的,所以直接無(wú)視他們即可。

2.5 特征缺失、動(dòng)態(tài)光源和人物的干擾

老實(shí)說(shuō)SLAM應(yīng)用還沒(méi)有走到這一步,這些多數(shù)是研究論文關(guān)心的話題(比如直接法)?,F(xiàn)在AR能夠穩(wěn)定地在室內(nèi)運(yùn)行就已經(jīng)很了不起了。

---------------我是分割線-----------------

可能的解決思路

前邊總結(jié)了一些單目視覺(jué)可能碰到的困難。我們發(fā)現(xiàn)大部分問(wèn)題并不能在當(dāng)下的視覺(jué)方案能夠解決的。你或許可以通過(guò)一些工程技巧加速特征匹配的過(guò)程,但像尺度、遮擋之類的問(wèn)題,明顯無(wú)法通過(guò)設(shè)計(jì)軟件來(lái)解決。

所以怎么辦呢?——既然視覺(jué)解決不了,那就靠別的來(lái)解決吧。畢竟一臺(tái)設(shè)備上又不是只有一塊單目相機(jī)。更常見(jiàn)的方案是,用視覺(jué)+IMU的方式做SLAM。

當(dāng)前廣角單目+IMU被認(rèn)為是一種很好的解決方案。它價(jià)格比較低廉,IMU能在以下幾點(diǎn)很好地幫助視覺(jué)SLAM:

IMU能幫單目確定尺度

IMU能測(cè)量快速的運(yùn)動(dòng)

IMU在相機(jī)被遮擋時(shí)亦能提供短時(shí)間的位姿估計(jì)

所以不管在理論還是應(yīng)用上,都出現(xiàn)了一些單目+IMU的方案[2,3,4]。眾所周知的Tango和Hololens亦是IMU+單目/多目的定位方式。

5fe1d6ac-04e7-11ee-90ce-dac502259ad0.png

(用Tango玩MC,缺點(diǎn)是蓋的房子尺寸和真實(shí)世界一樣。蓋二樓你就得真跑到樓上去蓋——這怎么造圓明園?)

6075d852-04e7-11ee-90ce-dac502259ad0.png

(這貨就是靠后邊這魚(yú)眼+IMU做跟蹤的)

(Hololens圖就不上了吧……橫豎也不是自己的)

聲明:本文內(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)注

    23

    文章

    4587

    瀏覽量

    92505
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1078

    瀏覽量

    40375
  • SLAM
    +關(guān)注

    關(guān)注

    23

    文章

    415

    瀏覽量

    31758

原文標(biāo)題:高翔博士分享:?jiǎn)文縎LAM在移動(dòng)端應(yīng)用的實(shí)現(xiàn)難點(diǎn)有哪些?

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    從基本原理到應(yīng)用的SLAM技術(shù)深度解析

    LSD-SLAM 即 Large-Scale Direct SLAM,兼容相機(jī)和雙目相機(jī)。LSD-SLAM是一種基于光流跟蹤的直接法
    發(fā)表于 02-26 09:41 ?8851次閱讀
    從基本原理到應(yīng)用的<b class='flag-5'>SLAM</b>技術(shù)深度解析

    SLAM技術(shù)的應(yīng)用及發(fā)展現(xiàn)狀

    )、無(wú)人機(jī)、自動(dòng)駕駛等都有應(yīng)用,大疆位工程師甚至說(shuō)過(guò)“所有關(guān)于無(wú)人機(jī)的夢(mèng)想都建立SLAM之上”,可見(jiàn)SLAM技術(shù)的關(guān)鍵性。 工業(yè)用途主要是集中
    發(fā)表于 12-06 10:25

    讓機(jī)器人完美建圖的SLAM 3.0到底是何方神圣?

    ,控制與建圖中心斷開(kāi)連接時(shí)地圖數(shù)據(jù)不會(huì)丟失,移動(dòng)沒(méi)有斷電的情況下地圖數(shù)據(jù)不會(huì)丟失?!   ∽詈螅匆幌?b class='flag-5'>SLAM 3.0的實(shí)際建圖效果吧
    發(fā)表于 01-21 10:57

    激光SLAM與視覺(jué)SLAM什么區(qū)別?

    機(jī)器人運(yùn)動(dòng)控制系統(tǒng)架構(gòu)中,可分為最底層、中間通信層和決策層三大層面,最底層包含了機(jī)器人本身的電機(jī)驅(qū)動(dòng)和控制部分,中間通信層是底層部分和決策層的通信通路,而決策層則是實(shí)現(xiàn)機(jī)器人的定位建圖及導(dǎo)航。
    發(fā)表于 07-05 06:41

    SLAM的相關(guān)知識(shí)點(diǎn)分享

    小小的雀躍,千里之行始于足下,但愿能夠一步一個(gè)腳印的走下去!感謝公司實(shí)驗(yàn)室Leonardo博士的大力支持和指導(dǎo),出學(xué)校后遇到的一位良心導(dǎo)師,萌萌的,很負(fù)責(zé)任的領(lǐng)導(dǎo)!另外感謝來(lái)自意大...
    發(fā)表于 08-30 06:13

    基于SLAM移動(dòng)機(jī)器人設(shè)計(jì)

    題目:基于SLAM移動(dòng)機(jī)器人設(shè)計(jì)嵌入式PPT應(yīng)具有的幾個(gè)部分1、哪些硬件  1)小車  2)STM32F429開(kāi)發(fā)板  3)樹(shù)莓派3b+開(kāi)發(fā)板  4)4g通信模塊  5)GPS模塊  6
    發(fā)表于 11-08 06:17

    目視覺(jué)SLAM仿真系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    實(shí)現(xiàn)目視覺(jué)同時(shí)定位與建圖(SLAM)仿真系統(tǒng),描述其設(shè)計(jì)過(guò)程。該系統(tǒng)工作性能良好,其SLAM算法可擴(kuò)展性強(qiáng),可以精確逼近真實(shí)目視覺(jué)
    發(fā)表于 04-15 08:50 ?82次下載

    WebServer的嵌入式實(shí)現(xiàn)與交互式設(shè)計(jì)_高翔

    WebServer的嵌入式實(shí)現(xiàn)與交互式設(shè)計(jì)_高翔
    發(fā)表于 03-19 11:28 ?1次下載

    視覺(jué)SLAM深度解讀

    ,根據(jù)生成的點(diǎn)云數(shù)據(jù),測(cè)算哪里障礙物以及障礙物的距離。但是基于、雙目、魚(yú)眼攝像機(jī)的視覺(jué)SLAM方案,則不能直接獲得環(huán)境中的點(diǎn)云,而是形成灰色或彩色圖像,需要通過(guò)不斷
    的頭像 發(fā)表于 09-11 22:01 ?1928次閱讀

    激光SLAM與視覺(jué)SLAM必將融合 移動(dòng)機(jī)器人核心技術(shù)將不斷升級(jí)

    近年來(lái),伴隨移動(dòng)機(jī)器人在各行各業(yè)的廣泛應(yīng)用,SLAM這個(gè)“名字”逐漸被更多的人所熟悉,但是SLAM具體是什么、SLAM哪些應(yīng)用領(lǐng)域、激光
    發(fā)表于 01-18 17:43 ?3318次閱讀

    實(shí)際應(yīng)用中,SLAM技術(shù)是如何實(shí)現(xiàn)

    SLAM作為機(jī)器人自主定位導(dǎo)航的重要突破口正不斷引起業(yè)內(nèi)重視,它是實(shí)現(xiàn)機(jī)器人自主行走的關(guān)鍵技術(shù),可幫助機(jī)器人實(shí)現(xiàn)即時(shí)定位與地圖構(gòu)建,實(shí)際應(yīng)用中,S
    的頭像 發(fā)表于 12-26 09:23 ?774次閱讀

    密集SLAM的概率體積融合概述

    我們提出了一種利用深度密集 SLAM 和快速不確定性傳播從圖像重建 3D 場(chǎng)景的新方法。所提出的方法能夠密集、準(zhǔn)確、實(shí)時(shí)地 3D 重建場(chǎng)景,同時(shí)對(duì)來(lái)自密集
    的頭像 發(fā)表于 01-30 11:34 ?643次閱讀

    立體視覺(jué):我用相機(jī)求了個(gè)體積!

    一般而言,是無(wú)法依靠自身來(lái)完成測(cè)量的,企業(yè)選擇讓相機(jī)動(dòng)起來(lái),但是一旦動(dòng)起來(lái)實(shí)際上也是雙目,不再是
    的頭像 發(fā)表于 03-01 11:19 ?1002次閱讀

    使用python和opencv實(shí)現(xiàn)攝像機(jī)測(cè)距

    我的論文方向目前是使用攝像頭實(shí)現(xiàn)機(jī)器人對(duì)人的跟隨,首先攝像頭與kinect等深度攝像頭最大的區(qū)別是無(wú)法有效獲取深度信息,那就首先從這
    的頭像 發(fā)表于 07-03 10:01 ?2896次閱讀
    使用python和opencv<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>單</b><b class='flag-5'>目</b>攝像機(jī)測(cè)距

    探頭的應(yīng)用范圍哪些?

    探頭的應(yīng)用范圍哪些? 探頭是一種常用的測(cè)量?jī)x器,廣泛應(yīng)用于工業(yè)、科研、醫(yī)療等領(lǐng)域。下面將詳細(xì)介紹
    的頭像 發(fā)表于 01-08 11:19 ?482次閱讀