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

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

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

SLAM的歷史、理論以及實(shí)現(xiàn)的方式

ml8z_IV_Technol ? 來(lái)源:未知 ? 作者:李倩 ? 2018-11-19 14:42 ? 次閱讀

到目前為止,室內(nèi)的視覺(jué)SLAM仍處于研究階段,遠(yuǎn)未到實(shí)際應(yīng)用的程度。一方面,編寫(xiě)和使用視覺(jué)SLAM需要大量的專(zhuān)業(yè)知識(shí),算法的實(shí)時(shí)性未達(dá)到實(shí)用要求;另一方面,視覺(jué)SLAM生成的地圖(多數(shù)是點(diǎn)云)還不能用來(lái)做機(jī)器人的路徑規(guī)劃,需要科研人員進(jìn)一步的探索和研究。以下,我會(huì)介紹SLAM的歷史、理論以及實(shí)現(xiàn)的方式,且主要介紹視覺(jué)(Kinect)的實(shí)現(xiàn)方式。

??

1.前言

開(kāi)始做SLAM(機(jī)器人同時(shí)定位與建圖)研究已經(jīng)近一年了。從一年級(jí)開(kāi)始對(duì)這個(gè)方向產(chǎn)生興趣,到現(xiàn)在為止,也算是對(duì)這個(gè)領(lǐng)域有了大致的了解。然而越了解,越覺(jué)得這個(gè)方向難度很大??傮w來(lái)講有以下幾個(gè)原因:

入門(mén)資料很少。雖然國(guó)內(nèi)也有不少人在做,但這方面現(xiàn)在沒(méi)有太好的入門(mén)教程。《SLAM for dummies》可以算是一篇。中文資料幾乎沒(méi)有。

SLAM研究已進(jìn)行了三十多年,從上世紀(jì)的九十年代開(kāi)始。其中又有若干歷史分枝和爭(zhēng)論,要把握它的走向就很費(fèi)工夫。

難以實(shí)現(xiàn)。SLAM是一個(gè)完整的系統(tǒng),由許多個(gè)分支模塊組成?,F(xiàn)在經(jīng)典的方案是“圖像前端,優(yōu)化后端,閉環(huán)檢測(cè)”的三部曲,很多文獻(xiàn)看完了自己實(shí)現(xiàn)不出來(lái)。

自己動(dòng)手編程需要學(xué)習(xí)大量的先決知識(shí)。首先你要會(huì)C和C++,網(wǎng)上很多代碼還用了11標(biāo)準(zhǔn)的C++。第二要會(huì)用Linux。第三要會(huì)cmake,vim/emacs及一些編程工具。第四要會(huì)用openCV, PCL, Eigen等第三方庫(kù)。只有學(xué)會(huì)了這些東西之后,你才能真正上手編一個(gè)SLAM系統(tǒng)。如果你要跑實(shí)際機(jī)器人,還要會(huì)ROS

當(dāng)然,困難多意味著收獲也多,坎坷的道路才能鍛煉人(比如說(shuō)走著走著才發(fā)現(xiàn)Linux和C++才是我的真愛(ài)之類(lèi)的。)鑒于目前網(wǎng)上關(guān)于視覺(jué)SLAM的資料極少,我于是想把自己這一年多的經(jīng)驗(yàn)與大家分享一下。說(shuō)的不對(duì)的地方請(qǐng)大家批評(píng)指正。

這篇文章關(guān)注視覺(jué)SLAM,專(zhuān)指用攝像機(jī),Kinect等深度像機(jī)來(lái)做導(dǎo)航和探索,且主要關(guān)心室內(nèi)部分。到目前為止,室內(nèi)的視覺(jué)SLAM仍處于研究階段,遠(yuǎn)未到實(shí)際應(yīng)用的程度。一方面,編寫(xiě)和使用視覺(jué)SLAM需要大量的專(zhuān)業(yè)知識(shí),算法的實(shí)時(shí)性未達(dá)到實(shí)用要求;另一方面,視覺(jué)SLAM生成的地圖(多數(shù)是點(diǎn)云)還不能用來(lái)做機(jī)器人的路徑規(guī)劃,需要科研人員進(jìn)一步的探索和研究。以下,我會(huì)介紹SLAM的歷史、理論以及實(shí)現(xiàn)的方式,且主要介紹視覺(jué)(Kinect)的實(shí)現(xiàn)方式。

2.SLAM問(wèn)題

SLAM,全稱(chēng)叫做Simultaneous Localization and Mapping,中文叫做同時(shí)定位與建圖。啊不行,這么講下去,這篇文章肯定沒(méi)有人讀,所以我們換一個(gè)講法。

3.小蘿卜的故事

從前,有一個(gè)機(jī)器人叫“小蘿卜”。它長(zhǎng)著一雙烏黑發(fā)亮的大眼睛,叫做Kinect。有一天,它被邪惡的科學(xué)家關(guān)進(jìn)了一間空屋子,里面放滿(mǎn)了雜七雜八的東西。

小蘿卜感到很害怕,因?yàn)檫@個(gè)地方他從來(lái)沒(méi)來(lái)過(guò),一點(diǎn)兒也不了解。讓他感到害怕的主要是三個(gè)問(wèn)題:

1.自己在哪里?

2.這是什么地方?

3.怎么離開(kāi)這個(gè)地方?

在SLAM理論中,第一個(gè)問(wèn)題稱(chēng)為定位(Localization),第二個(gè)稱(chēng)為建圖(Mapping),第三個(gè)則是隨后的路徑規(guī)劃。我們希望借助Kinect工具,幫小蘿卜解決這個(gè)難題。各位同學(xué)有什么思路呢?

4.Kinect數(shù)據(jù)

要打敗敵人,首先要了解你的武器。不錯(cuò),我們先介紹一下Kinect。眾所周知這是一款深度相機(jī),你或許還聽(tīng)說(shuō)過(guò)別的牌子,但Kinect的價(jià)格便宜,測(cè)量范圍在3m-12m之間,精度約3cm,較適合于小蘿卜這樣的室內(nèi)機(jī)器人。它采到的圖像是這個(gè)樣子的(從左往右依次為rgb圖,深度圖與點(diǎn)云圖):

Kinect的一大優(yōu)勢(shì)在于能比較廉價(jià)地獲得每個(gè)像素的深度值,不管是從時(shí)間上還是從經(jīng)濟(jì)上來(lái)說(shuō)。OK,有了這些信息,小蘿卜事實(shí)上可以知道它采集到的圖片中,每一個(gè)點(diǎn)的3d位置。只要我們事先標(biāo)定了Kinect,或者采用出廠的標(biāo)定值。

我們把坐標(biāo)系設(shè)成這個(gè)樣子,這也是openCV中采用的默認(rèn)坐標(biāo)系。

o’-uv是圖片坐標(biāo)系,o-xyz是Kinect的坐標(biāo)系。假設(shè)圖片中的點(diǎn)為(u,v),對(duì)應(yīng)的三維點(diǎn)位置在(x,y,z),那么它們之間的轉(zhuǎn)換關(guān)系是這樣的:

左側(cè)的s為尺度因子,表示從相機(jī)光心出去的射線(xiàn)都會(huì)落在成像平面的同一個(gè)點(diǎn)上。如果我們不知道該點(diǎn)的距離,那么s就是一個(gè)自由變量。但在RGB-D相機(jī)中,我們?cè)贒epth圖中知道了這個(gè)距離,它的讀數(shù)dep(u,v)與真實(shí)距離相差一個(gè)倍數(shù)。如果也記作s,那么:

后一個(gè)公式給出了計(jì)算三維點(diǎn)的方法。先從深度圖中讀取深度數(shù)據(jù)(Kinect給的是16位無(wú)符號(hào)整數(shù)),除掉z方向的縮放因子,這樣你就把一個(gè)整數(shù)變到了以米為單位的數(shù)據(jù)。然后,x,y用上面的公式算出。一點(diǎn)都不難,就是一個(gè)中心點(diǎn)位置和一個(gè)焦距而已。f代表焦距,c代表中心。如果你沒(méi)有自己標(biāo)定你的Kinect,也可以采用默認(rèn)的值:s=5000, cx = 320, cy=240, fx=fy=525。實(shí)際值會(huì)有一點(diǎn)偏差,但不會(huì)太大。

5.定位問(wèn)題

知道了Kinect中每個(gè)點(diǎn)的位置后,接下來(lái)我們要做的,就是根據(jù)兩幀圖像間的差別計(jì)算小蘿卜的位移。比如下面兩張圖,后一張是在前一張之后1秒采集到的:

你肯定可以看出,小蘿卜往右轉(zhuǎn)過(guò)了一定的角度。但究竟轉(zhuǎn)過(guò)多少度呢?這就要靠計(jì)算機(jī)來(lái)求解了。這個(gè)問(wèn)題稱(chēng)為相機(jī)相對(duì)姿態(tài)估計(jì),經(jīng)典的算法是ICP(Iterative Closest Point,迭代最近點(diǎn))。這個(gè)算法要求知道這兩個(gè)圖像間的一組匹配點(diǎn),說(shuō)的通俗點(diǎn),就是左邊圖像哪些點(diǎn)和右邊是一樣的。你當(dāng)然看見(jiàn)那塊黑白相間的板子同時(shí)出現(xiàn)在兩張圖像中。在小蘿卜看來(lái),這里牽涉到兩個(gè)簡(jiǎn)單的問(wèn)題:特征點(diǎn)的提取和匹配。

如果你熟悉計(jì)算機(jī)視覺(jué),那你應(yīng)該聽(tīng)說(shuō)過(guò)SIFT, SURF之類(lèi)的特征。不錯(cuò),要解決定位問(wèn)題,首先要得到兩張圖像的一個(gè)匹配。匹配的基礎(chǔ)是圖像的特征,下圖就是SIFT提取的關(guān)鍵點(diǎn)與匹配結(jié)果:

對(duì)實(shí)現(xiàn)代碼感興趣的同學(xué)請(qǐng)Google“opencv匹配”即可,在openCV的教程上也有很明白的例子。上面的例子可以看出,我們找到了一些匹配,但其中有些是對(duì)的(基本平等的匹配線(xiàn)),有些是錯(cuò)的。這是由于圖像中存在周期性出現(xiàn)的紋理(黑白塊),所以容易搞錯(cuò)。但這并不是問(wèn)題,在接下來(lái)的處理中我們會(huì)將這些影響消去。

得到了一組匹配點(diǎn)后,我們就可以計(jì)算兩個(gè)圖像間的轉(zhuǎn)換關(guān)系,也叫PnP問(wèn)題。它的模型是這樣的:

[uv]=C(Rp+t)(1)(1)[uv]=C(Rp+t)

R為相機(jī)的姿態(tài),C為相機(jī)的標(biāo)定矩陣。R是不斷運(yùn)動(dòng)的,而C則是隨著相機(jī)做死的。ICP的模型稍有不同,但原理上也是計(jì)算相機(jī)的姿態(tài)矩陣。原則上,只要有四組匹配點(diǎn),就可以算這個(gè)矩陣。你可以調(diào)用openCV的SolvePnPRANSAC函數(shù)或者PCL的ICP算法來(lái)求解。openCV提供的算法是RANSAC(Random Sample Consensus,隨機(jī)采樣一致性)架構(gòu),可以剔除錯(cuò)誤匹配。所以代碼實(shí)際運(yùn)行時(shí),可以很好地找到匹配點(diǎn)。

有同學(xué)會(huì)說(shuō),那只要不斷匹配下去,定位問(wèn)題不就解決了嗎?表面上看來(lái),的確是這樣的,只要我們引入一個(gè)關(guān)鍵幀的結(jié)構(gòu)(發(fā)現(xiàn)位移超過(guò)一個(gè)固定值時(shí),定義成一個(gè)關(guān)鍵幀)。然后,把新的圖像與關(guān)鍵幀比較就行了。至于建圖,就是把這些關(guān)鍵幀的點(diǎn)云拼起來(lái),看著還有模有樣,煞有介事的:

1-200幀的匹配結(jié)果

然而,如果事情真這么簡(jiǎn)單,SLAM理論就不用那么多人研究三十多年了(它是從上世紀(jì)90年代開(kāi)始研究的)(上面講的那些東西簡(jiǎn)直隨便哪里找個(gè)小碩士就能做出來(lái)……)。那么,問(wèn)題難在什么地方呢?

6.SLAM端優(yōu)化理論

最麻煩的問(wèn)題,就是“噪聲”。這種漸近式的匹配方式,和那些慣性測(cè)量設(shè)備一樣,存在著累積噪聲。因?yàn)槲覀冊(cè)诓粩嗟馗玛P(guān)鍵幀,把新圖像與最近的關(guān)鍵幀比較,從而獲得機(jī)器人的位移信息。但是你要想到,如果有一個(gè)關(guān)鍵幀出現(xiàn)了偏移,那么剩下的位移估計(jì)都會(huì)多出一個(gè)誤差。這個(gè)誤差還會(huì)累積,因?yàn)楹竺娴墓烙?jì)都基于前面的機(jī)器人位置……哇!這后果簡(jiǎn)直不堪設(shè)想?。ɡ?,你的機(jī)器人往右轉(zhuǎn)了30度,再往左轉(zhuǎn)了30度回到原來(lái)的位置。然而由于誤差,你算成了向右轉(zhuǎn)29度,再向左轉(zhuǎn)31度,這樣你構(gòu)建的地圖中,會(huì)出現(xiàn)初始位置的兩個(gè)“重影”)。我們能不能想辦法消除這個(gè)該死的誤差呢?

朋友們,這才是SLAM的研究,前面的可以說(shuō)是“圖像前端”的處理方法。我們的解決思路是:如果你和最近的關(guān)鍵幀相比,會(huì)導(dǎo)致累計(jì)誤差。那么,我們最好是和更前面的關(guān)鍵幀相比,而且多比較幾個(gè)幀,不要只比較一次。

我們用數(shù)學(xué)來(lái)描述這個(gè)問(wèn)題。設(shè):

不要怕,只有借助數(shù)學(xué)才能把這個(gè)問(wèn)題講清楚。上面的公式中,xp是機(jī)器人小蘿卜的位置,我們假定由n個(gè)幀組成。xL則是路標(biāo),在我們的圖像處理過(guò)程中就是指SIFT提出來(lái)的關(guān)鍵點(diǎn)。如果你做2D SLAM,那么機(jī)器人位置就是x, y加一個(gè)轉(zhuǎn)角theta。如果是3D SLAM,就是x,y,z加一個(gè)四元數(shù)姿態(tài)(或者rpy姿態(tài))。這個(gè)過(guò)程叫做參數(shù)化(Parameterization)。

不管你用哪種參數(shù),后面兩個(gè)方程你都需要知道。前一個(gè)叫運(yùn)動(dòng)方程,描述機(jī)器人怎樣運(yùn)動(dòng)。u是機(jī)器人的輸入,w是噪聲。這個(gè)方程最簡(jiǎn)單的形式,就是你能通過(guò)什么方式(碼盤(pán)等)獲得兩幀間的位移差,那么這個(gè)方程就直接是上一幀與u相加即得。另外,你也可以完全不用慣性測(cè)量設(shè)備,這樣我們就只依靠圖像設(shè)備來(lái)估計(jì),這也是可以的。

后一個(gè)方程叫觀測(cè)方程,描述那些路標(biāo)是怎么來(lái)的。你在第i幀看到了第j個(gè)路標(biāo),產(chǎn)生了一個(gè)測(cè)量值,就是圖像中的橫縱坐標(biāo)。最后一項(xiàng)是噪聲。偷偷告訴你,這個(gè)方程形式上和上一頁(yè)的那個(gè)方程是一模一樣的。

在求解SLAM問(wèn)題前,我們要看到,我們擁有的數(shù)據(jù)是什么?在上面的模型里,我們知道的是運(yùn)動(dòng)信息u以及觀測(cè)z。用示意圖表示出來(lái)是這樣的:

我們要求解的,就是根據(jù)這些u和z,確定所有的xp和xL。這就是SLAM問(wèn)題的理論。從SLAM誕生開(kāi)始科學(xué)家們就一直在解決這個(gè)問(wèn)題。最初,我們用Kalman濾波器,所以上面的模型(運(yùn)動(dòng)方程和觀測(cè)方程)被建成這個(gè)樣子。直到21世紀(jì)初,卡爾曼濾波器仍在SLAM系統(tǒng)占據(jù)最主要的地位,Davison經(jīng)典的單目SLAM就是用EKF做的。但是后來(lái),出現(xiàn)了基于圖優(yōu)化的SLAM方法,漸漸有取而代之的地位[1]。我們?cè)谶@里不介紹卡爾曼濾波器,有興趣的同學(xué)可以在wiki上找卡爾曼濾波器,另有一篇中文的《卡爾曼濾波器介紹》也很棒。由于濾波器方法存儲(chǔ)n個(gè)路標(biāo)要消耗n平方的空間,在計(jì)算量上有點(diǎn)對(duì)不住大家。盡管08年有人提出分治法的濾波器能把復(fù)雜度弄到O(n) [2],但實(shí)現(xiàn)手段比較復(fù)雜。我們要介紹那種新興的方法:Graph-based SLAM。

圖優(yōu)化方法把SLAM問(wèn)題做成了一個(gè)優(yōu)化問(wèn)題。學(xué)過(guò)運(yùn)籌學(xué)的同學(xué)應(yīng)該明白,優(yōu)化問(wèn)題對(duì)我們有多么重要。我們不是要求解機(jī)器人的位置和路標(biāo)位置嗎?我們可以先做一個(gè)猜測(cè),猜想它們大概在什么地方。這其實(shí)是不難的。然后呢,將猜測(cè)值與運(yùn)動(dòng)模型/觀測(cè)模型給出的值相比較,可以算出誤差:

通俗一點(diǎn)地講,例如,我猜機(jī)器人第一幀在(0,0,0),第二幀在(0,0,1)。但是u1告訴我機(jī)器人往z方向(前方)走了0.9米,那么運(yùn)動(dòng)方程就出現(xiàn)了0.1m的誤差。同時(shí),第一幀中機(jī)器人發(fā)現(xiàn)了路標(biāo)1,它在該機(jī)器人圖像的正中間;第二幀卻發(fā)現(xiàn)它在中間偏右的位置。這時(shí)我們猜測(cè)機(jī)器人只是往前走,也是存在誤差的。至于這個(gè)誤差是多少,可以根據(jù)觀測(cè)方程算出來(lái)。

我們得到了一堆誤差,把這些誤差平方后加起來(lái)(因?yàn)閱渭兊恼`差有正有負(fù),然而平方誤差可以改成其他的范數(shù),只是平方更常用),就得到了平方誤差和。我們把這個(gè)和記作phi,就是我們優(yōu)化問(wèn)題的目標(biāo)函數(shù)。而優(yōu)化變量就是那些個(gè)xp, xL。

改變優(yōu)化變量,誤差平方和(目標(biāo)函數(shù))就會(huì)相應(yīng)地變大或變小,我們可以用數(shù)值方法求它們的梯度和二階梯度矩陣,然后用梯度下降法求最優(yōu)值。這些東西學(xué)過(guò)優(yōu)化的同學(xué)都懂的。

注意到,一次機(jī)器人SLAM過(guò)程中,往往會(huì)有成千上萬(wàn)幀。而每一幀我們都有幾百個(gè)關(guān)鍵點(diǎn),一乘就是幾百萬(wàn)個(gè)優(yōu)化變量。這個(gè)規(guī)模的優(yōu)化問(wèn)題放到小蘿卜的機(jī)載小破本上可解嗎?是的,過(guò)去的同學(xué)都以為,Graph-based SLAM是無(wú)法計(jì)算的。但就在21世紀(jì)06,07年后,有些同學(xué)發(fā)現(xiàn)了,這個(gè)問(wèn)題規(guī)模沒(méi)有想象的那么大。上面的J和H兩個(gè)矩陣是“稀疏矩陣”,于是呢,我們可以用稀疏代數(shù)的方法來(lái)解這個(gè)問(wèn)題?!跋∈琛钡脑?,在于每一個(gè)路標(biāo),往往不可能出現(xiàn)在所有運(yùn)動(dòng)過(guò)程中,通常只出現(xiàn)在一小部分圖像里。正是這個(gè)稀疏性,使得優(yōu)化思路成為了現(xiàn)實(shí)。

優(yōu)化方法利用了所有可以用到的信息(稱(chēng)為full-SLAM, global SLAM),其精確度要比我們一開(kāi)始講的幀間匹配高很多。當(dāng)然計(jì)算量也要高一些。

由于優(yōu)化的稀疏性,人們喜歡用“圖”來(lái)表達(dá)這個(gè)問(wèn)題。所謂圖,就是由節(jié)點(diǎn)和邊組成的東西。我寫(xiě)成G={V,E},大家就明白了。V是優(yōu)化變量節(jié)點(diǎn),E表示運(yùn)動(dòng)/觀測(cè)方程的約束。什么,更糊涂了嗎?那我就上一張圖,來(lái)自[3]。

圖有點(diǎn)模糊,而且數(shù)學(xué)符號(hào)和我用的不太一樣,我用它來(lái)給大家一個(gè)圖優(yōu)化的直觀形象。上圖中,p是機(jī)器人位置,l是路標(biāo),z是觀測(cè),t是位移。其中呢,p, l是優(yōu)化變量,而z,t是優(yōu)化的約束??雌饋?lái)是不是像一些彈簧連接了一些質(zhì)點(diǎn)呢?因?yàn)槊總€(gè)路標(biāo)不可能出現(xiàn)在每一幀中,所以這個(gè)圖是蠻稀疏的。不過(guò),“圖”優(yōu)化只是優(yōu)化問(wèn)題的一個(gè)表達(dá)形式,并不影響優(yōu)化的含義。實(shí)際解起來(lái)時(shí)還是要用數(shù)值法找梯度的。這種思路在計(jì)算機(jī)視覺(jué)里,也叫做Bundle Adjustment。

不過(guò),BA的實(shí)現(xiàn)方法太復(fù)雜,不太建議同學(xué)們拿C來(lái)寫(xiě)。好在2010年的ICRA上,其他的同學(xué)們提供了一個(gè)通用的開(kāi)發(fā)包:g2o [5]。它是有圖優(yōu)化通用求解器,很好用,我改天再詳細(xì)介紹這個(gè)軟件包??傊覀冎灰延^測(cè)和運(yùn)動(dòng)信息丟到求解器里就行。這個(gè)優(yōu)化器會(huì)為我們求出機(jī)器人的軌跡和路標(biāo)位置。如下圖,紅點(diǎn)是路標(biāo),藍(lán)色箭頭是機(jī)器人的位置和轉(zhuǎn)角(2D SLAM)。細(xì)心的同學(xué)會(huì)發(fā)現(xiàn)它往右偏轉(zhuǎn)了一些。:

7.閉環(huán)檢測(cè)

上面提到,僅用幀間匹配最大的問(wèn)題在于誤差累積,圖優(yōu)化的方法可以有效地減少累計(jì)誤差。然而,如果把所有測(cè)量都丟進(jìn)g2o,計(jì)算量還是有點(diǎn)兒大的。根據(jù)我自己測(cè)試,約10000多條邊,g2o跑起來(lái)就有些吃力了。這樣,就有同學(xué)說(shuō),能把這個(gè)圖構(gòu)造地簡(jiǎn)潔一些嗎?我們用不著所有的信息,只需要把有用的拿出來(lái)就行了。

事實(shí)上,小蘿卜在探索房間時(shí),經(jīng)常會(huì)左轉(zhuǎn)一下,右轉(zhuǎn)一下。如果在某個(gè)時(shí)刻他回到了以前去過(guò)的地方,我們就直接與那時(shí)候采集的關(guān)鍵幀做比較,可以嗎?我們說(shuō),可以,而且那是最好的方法。這個(gè)問(wèn)題叫做閉環(huán)檢測(cè)。

閉環(huán)檢測(cè)是說(shuō),新來(lái)一張圖像時(shí),如何判斷它以前是否在圖像序列中出現(xiàn)過(guò)?有兩種思路:一是根據(jù)我們估計(jì)的機(jī)器人位置,看是否與以前某個(gè)位置鄰近;二是根據(jù)圖像的外觀,看它是否和以前關(guān)鍵幀相似。目前主流方法是后一種,因?yàn)楹芏嗫茖W(xué)家認(rèn)為前一種依靠有噪聲的位置來(lái)減少位置的噪聲,有點(diǎn)循環(huán)論證的意思。后一種方法呢,本質(zhì)上是個(gè)模式識(shí)別問(wèn)題(非監(jiān)督聚類(lèi),分類(lèi)),常用的是Bag-of-Words (BOW)。但是BOW需要事先對(duì)字典進(jìn)行訓(xùn)練,因此SLAM研究者仍在探討有沒(méi)有更合適的方法。

在Kinect SLAM經(jīng)典大作中[6],作者采用了比較簡(jiǎn)單的閉環(huán)方法:在前面n個(gè)關(guān)鍵幀中隨機(jī)采k個(gè),與當(dāng)前幀兩兩匹配。匹配上后認(rèn)為出現(xiàn)閉環(huán)。這個(gè)真是相當(dāng)?shù)暮?jiǎn)單實(shí)用,效率也過(guò)得去。

高效的閉環(huán)檢測(cè)是SLAM精確求解的基礎(chǔ)。這方面還有很多工作可以做。

聲明:本文內(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)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    211

    文章

    28582

    瀏覽量

    207808
  • SLAM
    +關(guān)注

    關(guān)注

    23

    文章

    426

    瀏覽量

    31887
  • 計(jì)算機(jī)視覺(jué)

    關(guān)注

    8

    文章

    1699

    瀏覽量

    46057

原文標(biāo)題:干貨 | 視覺(jué)SLAM漫談

文章出處:【微信號(hào):IV_Technology,微信公眾號(hào):智車(chē)科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深度解讀A-SLAM和AC-SLAM實(shí)現(xiàn)和方法應(yīng)用

    本文的優(yōu)勢(shì)不僅包括討論A-SLAM的內(nèi)部組成部分,還包括其應(yīng)用領(lǐng)域、局限性和未來(lái)前景,以及對(duì)過(guò)去十年A-SLAM進(jìn)行全面的統(tǒng)計(jì)調(diào)查。
    發(fā)表于 03-17 10:44 ?817次閱讀

    什么是SLAM?視覺(jué)SLAM怎么實(shí)現(xiàn)?

    上周的組會(huì)上,我給研一的萌新們講解什么是SLAM,為了能讓他們?cè)跊](méi)有任何基礎(chǔ)的情況下大致聽(tīng)懂,PPT只能多圖少字沒(méi)公式,這里我就把上周的組會(huì)匯報(bào)總結(jié)一下。 這次匯報(bào)的題目我定為“視覺(jué)SLAM:一直在
    的頭像 發(fā)表于 08-21 10:02 ?1w次閱讀
    什么是<b class='flag-5'>SLAM</b>?視覺(jué)<b class='flag-5'>SLAM</b>怎么<b class='flag-5'>實(shí)現(xiàn)</b>?

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

    也將SLAM分為激光SLAM和視覺(jué)SLAM。激光SLAM比視覺(jué)SLAM起步早,在理論、技術(shù)和產(chǎn)品
    發(fā)表于 12-06 10:25

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

    抖動(dòng),必要時(shí)調(diào)整  ▲ SLAM 3.0 ——采用圖優(yōu)化的SLAM方式  SLAM 3.0 相比較于前兩代,采用圖優(yōu)化方式進(jìn)行構(gòu)圖,能
    發(fā)表于 01-21 10:57

    SLAM技術(shù)目前主要應(yīng)用在哪些領(lǐng)域

    )作為工具,獲取地圖數(shù)據(jù),并構(gòu)建地圖,規(guī)避路程中遇到的障礙物,實(shí)現(xiàn)路徑規(guī)劃。跟SLAM技術(shù)在機(jī)器人領(lǐng)域的應(yīng)用類(lèi)似,只是相比較于SLAM在機(jī)器人中的應(yīng)用,無(wú)人駕駛的雷達(dá)要求和成本要明顯高于機(jī)器人。  無(wú)人機(jī)
    發(fā)表于 12-01 14:26

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

    機(jī)器人定位導(dǎo)航中,目前主要涉及到激光SLAM與視覺(jué)SLAM,激光SLAM理論、技術(shù)和產(chǎn)品落地上都較為成熟,因而成為現(xiàn)下最為主流的定位導(dǎo)航方式
    發(fā)表于 07-05 06:41

    單目視覺(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é)SLAM過(guò)程。以方便
    發(fā)表于 04-15 08:50 ?82次下載

    激光 SLAM與VSLAM定位導(dǎo)航方法誰(shuí)主沉浮?

    、無(wú)人駕駛、AR、VR 等領(lǐng)域。其用途包括傳感器自身的定位,以及后續(xù)的路徑規(guī)劃、運(yùn)動(dòng)性能、場(chǎng)景理解。 由于傳感器種類(lèi)和安裝方式的不同,SLAM實(shí)現(xiàn)
    發(fā)表于 11-22 11:52 ?3次下載

    視覺(jué)SLAM技術(shù)以及其應(yīng)用詳解

    當(dāng)我們談?wù)?b class='flag-5'>SLAM時(shí),最先問(wèn)到的就是傳感器。SLAM實(shí)現(xiàn)方式與難度和傳感器的形式與安裝方式密切相關(guān)。傳感器分為激光和視覺(jué)兩大類(lèi),視覺(jué)下面又
    的頭像 發(fā)表于 01-09 13:09 ?2.4w次閱讀

    機(jī)器人SLAM實(shí)現(xiàn)

    、位姿變換估計(jì)以及閉環(huán)檢測(cè)對(duì)SLAM系統(tǒng)的影響,建立了關(guān)鍵幀閉環(huán)匹配算法和SLAM實(shí)時(shí)性與魯棒性之間的關(guān)系,提出了一種基于ORB關(guān)鍵幀匹配算法的SLAM方法。運(yùn)用改進(jìn)ORB算法加快了圖
    發(fā)表于 03-26 10:57 ?6次下載

    高仙SLAM具體的技術(shù)是什么?SLAM2.0有哪些優(yōu)勢(shì)?

    高仙的SLAM2.0技術(shù)體系核心,是基于多傳感器融合+深度學(xué)習(xí)的架構(gòu),即語(yǔ)義SLAM。高仙SLAM2.0技術(shù)方案以語(yǔ)義分析、機(jī)器學(xué)習(xí)為基礎(chǔ),結(jié)合云端實(shí)時(shí)信息處理以及專(zhuān)為多傳感器融合而開(kāi)
    的頭像 發(fā)表于 05-15 16:48 ?9069次閱讀

    視覺(jué)SLAM的技術(shù)資料總結(jié)

    隨著傳感器種類(lèi)和安裝方式的不同,SLAM實(shí)現(xiàn)方式和難度會(huì)有很大差異。按傳感器來(lái)分,SLAM主要分為激光、視覺(jué)兩大類(lèi)。其中,激光
    的頭像 發(fā)表于 05-12 10:31 ?5394次閱讀

    在實(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)用中,SLAM技術(shù)究竟又是如何
    的頭像 發(fā)表于 12-26 09:23 ?846次閱讀

    為什么SLAM很重要 SLAM算法實(shí)現(xiàn)的4要素

    可進(jìn)入的每個(gè)角落。SLAM最早由Smith、Self和Cheeseman于1988年提出。由于其重要的理論與應(yīng)用價(jià)值,被很多學(xué)者認(rèn)為是實(shí)現(xiàn)真正全自主移動(dòng)機(jī)器人的關(guān)鍵。 詞語(yǔ)
    的頭像 發(fā)表于 08-26 16:07 ?7245次閱讀

    SLAM技術(shù)在國(guó)內(nèi)的發(fā)展現(xiàn)狀

    用在SLAM上的傳感器主要可分為兩大類(lèi),一種是激光雷達(dá),而另一種是攝像頭,為此,業(yè)內(nèi)人士也將SLAM分為激光SLAM和視覺(jué)SLAM。激光SLAM
    的頭像 發(fā)表于 02-15 19:15 ?2426次閱讀
    <b class='flag-5'>SLAM</b>技術(shù)在國(guó)內(nèi)的發(fā)展現(xiàn)狀