真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

經(jīng)典視覺(jué)SLAM框架-創(chuàng)新互聯(lián)

引言:通過(guò)前面的推送我們已經(jīng)對(duì)SLAM有了個(gè)大體的認(rèn)識(shí)。(初識(shí)視覺(jué)SLAM)下面來(lái)看經(jīng)典的視覺(jué)SLAM框架,了解一下視覺(jué)SLAM究竟由哪幾個(gè)模塊組成。
本文選自《視覺(jué)SLAM十四講:從理論到實(shí)踐》。

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)、做網(wǎng)站與策劃設(shè)計(jì),常寧網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:常寧等地區(qū)。常寧做網(wǎng)站價(jià)格咨詢:18980820575

整體視覺(jué)SLAM流程圖。
          經(jīng)典視覺(jué)SLAM框架

整個(gè)視覺(jué)SLAM流程包括以下步驟。

  1. 傳感器信息讀取。在視覺(jué)SLAM中主要為相機(jī)圖像信息的讀取和預(yù)處理。如果是在機(jī)器人中,還可能有碼盤、慣性傳感器等信息的讀取和同步。

  2. 視覺(jué)里程計(jì)(Visual Odometry,VO)。視覺(jué)里程計(jì)的任務(wù)是估算相鄰圖像間相機(jī)的運(yùn)動(dòng),以及局部地圖的樣子。VO又稱為前端(Front End)。

  3. 后端優(yōu)化(Optimization)。后端接受不同時(shí)刻視覺(jué)里程計(jì)測(cè)量的相機(jī)位姿,以及回環(huán)檢測(cè)的信息,對(duì)它們進(jìn)行優(yōu)化,得到全局一致的軌跡和地圖。由于接在VO之后,又稱為后端(Back End)。

  4. 回環(huán)檢測(cè)(Loop Closing)?;丨h(huán)檢測(cè)判斷機(jī)器人是否到達(dá)過(guò)先前的位置。如果檢測(cè)到回環(huán),它會(huì)把信息提供給后端進(jìn)行處理。

  5. 建圖(Mapping)。它根據(jù)估計(jì)的軌跡,建立與任務(wù)要求對(duì)應(yīng)的地圖。

經(jīng)典的視覺(jué)SLAM框架是過(guò)去十幾年的研究成果。這個(gè)框架本身及其所包含的算法已經(jīng)基本定型,并且已經(jīng)在許多視覺(jué)程序庫(kù)和機(jī)器人程序庫(kù)中提供。依靠這些算法,我們能夠構(gòu)建一個(gè)視覺(jué)SLAM系統(tǒng),使之在正常的工作環(huán)境里實(shí)時(shí)定位與建圖。因此,我們說(shuō),如果把工作環(huán)境限定在靜態(tài)、剛體,光照變化不明顯、沒(méi)有人為干擾的場(chǎng)景,那么,這個(gè)SLAM系統(tǒng)是相當(dāng)成熟的了。

讀者可能還沒(méi)有理解上面幾個(gè)模塊的概念,下面就來(lái)詳細(xì)介紹各個(gè)模塊具體的任務(wù)。這里您只需對(duì)各模塊有一個(gè)直觀的、定性的理解即可。

視覺(jué)里程計(jì)

視覺(jué)里程計(jì)關(guān)心的是相鄰圖像之間的相機(jī)運(yùn)動(dòng),最簡(jiǎn)單的情況當(dāng)然是兩張圖像之間的運(yùn)動(dòng)關(guān)系。例如,當(dāng)看到下圖時(shí),我們會(huì)自然地反應(yīng)出右圖應(yīng)該是左圖向左旋轉(zhuǎn)一定角度的結(jié)果(在視頻情況下感覺(jué)會(huì)更加自然)。我們不妨思考一下:自己是怎么知道“向左旋轉(zhuǎn)”這件事情的呢?人類早已習(xí)慣于用眼睛探索世界,估計(jì)自己的位置,但又往往難以用理性的語(yǔ)言描述我們的直覺(jué)。看到時(shí),我們會(huì)自然地認(rèn)為,這個(gè)場(chǎng)景中離我們近的是吧臺(tái),遠(yuǎn)處是墻壁和黑板。當(dāng)相機(jī)向左轉(zhuǎn)動(dòng)時(shí),吧臺(tái)離我們近的部分出現(xiàn)在視野中,而右側(cè)遠(yuǎn)處的柜子則移出了視野。通過(guò)這些信息,我們判斷相機(jī)應(yīng)該是向左旋轉(zhuǎn)了。

    經(jīng)典視覺(jué)SLAM框架
               相機(jī)拍攝到的圖片與人眼反應(yīng)的運(yùn)動(dòng)方向。

但是,如果進(jìn)一步問(wèn):能否確定旋轉(zhuǎn)了多少度,平移了多少厘米?我們就很難給出一個(gè)確切的答案了。因?yàn)槲覀兊闹庇X(jué)對(duì)這些具體的數(shù)字并不敏感。但是,在計(jì)算機(jī)中,又必須精確地測(cè)量這段運(yùn)動(dòng)信息。所以我們要問(wèn):計(jì)算機(jī)是如何通過(guò)圖像確定相機(jī)的運(yùn)動(dòng)的呢?
前面也提過(guò),在計(jì)算機(jī)視覺(jué)領(lǐng)域,人類在直覺(jué)上看來(lái)十分自然的事情,在計(jì)算機(jī)視覺(jué)中卻非常困難。圖像在計(jì)算機(jī)里只是一個(gè)數(shù)值矩陣。這個(gè)矩陣?yán)锉磉_(dá)著什么東西,計(jì)算機(jī)毫無(wú)概念(這也正是現(xiàn)在機(jī)器學(xué)習(xí)要解決的問(wèn)題)。而在視覺(jué)SLAM中,我們只能看到一個(gè)個(gè)像素,知道它們是某些空間點(diǎn)在相機(jī)的成像平面上投影的結(jié)果。所以,為了定量地估計(jì)相機(jī)運(yùn)動(dòng),必須先了解相機(jī)與空間點(diǎn)的幾何關(guān)系。
要講清這個(gè)幾何關(guān)系以及VO的實(shí)現(xiàn)方法,需要鋪墊一些背景知識(shí)。在這里我們先讓讀者對(duì)VO有個(gè)直觀的概念?,F(xiàn)在只需知道,VO能夠通過(guò)相鄰幀間的圖像估計(jì)相機(jī)運(yùn)動(dòng),并恢復(fù)場(chǎng)景的空間結(jié)構(gòu)。稱它為“里程計(jì)”是因?yàn)樗蛯?shí)際的里程計(jì)一樣,只計(jì)算相鄰時(shí)刻的運(yùn)動(dòng),而和再往前的過(guò)去的信息沒(méi)有關(guān)聯(lián)。在這一點(diǎn)上,VO就像一種只有短時(shí)間記憶的物種。
現(xiàn)在,假定我們已有了一個(gè)視覺(jué)里程計(jì),估計(jì)了兩張圖像間的相機(jī)運(yùn)動(dòng)。那么,只要把相鄰時(shí)刻的運(yùn)動(dòng)“串”起來(lái),就構(gòu)成了機(jī)器人的運(yùn)動(dòng)軌跡,從而解決了定位問(wèn)題。另一方面,我們根據(jù)每個(gè)時(shí)刻的相機(jī)位置,計(jì)算出各像素對(duì)應(yīng)的空間點(diǎn)的位置,就得到了地圖。這么說(shuō)來(lái),有了VO,是不是就解決了SLAM問(wèn)題呢?
視覺(jué)里程計(jì)確實(shí)是SLAM的關(guān)鍵,我們也會(huì)花大量的篇幅來(lái)介紹它。然而,僅通過(guò)視覺(jué)里程計(jì)來(lái)估計(jì)軌跡,將不可避免地出現(xiàn)累積漂移(Accumulating Drift)。這是由于視覺(jué)里程計(jì)(在最簡(jiǎn)單的情況下)只估計(jì)兩個(gè)圖像間的運(yùn)動(dòng)造成的。我們知道,每次估計(jì)都帶有一定的誤差,而由于里程計(jì)的工作方式,先前時(shí)刻的誤差將會(huì)傳遞到下一時(shí)刻,導(dǎo)致經(jīng)過(guò)一段時(shí)間之后,估計(jì)的軌跡將不再準(zhǔn)確。比方說(shuō),機(jī)器人先向左轉(zhuǎn),再向右轉(zhuǎn)。由于誤差,我們把第一個(gè)估計(jì)成了。那我們就會(huì)尷尬地發(fā)現(xiàn),向右轉(zhuǎn)之后機(jī)器人的估計(jì)位置并沒(méi)有回到原點(diǎn)。更糟糕的是,即使之后的估計(jì)再準(zhǔn)確,與真實(shí)值相比,都會(huì)帶上這的誤差。

          經(jīng)典視覺(jué)SLAM框架
                    累積誤差與回環(huán)檢測(cè)的校正結(jié)果。

這也就是所謂的漂移(Drift)。它將導(dǎo)致我們無(wú)法建立一致的地圖。你會(huì)發(fā)現(xiàn)原本直的走廊變成了斜的,而原本的直角變成了歪的——這實(shí)在是一件很難令人忍受的事情!為了解決漂移問(wèn)題,我們還需要兩種技術(shù):后端優(yōu)化(更多時(shí)候稱為后端(Back End)。由于主要使用的是優(yōu)化方法,故稱為后端優(yōu)化。)和回環(huán)檢測(cè)。回環(huán)檢測(cè)負(fù)責(zé)把“機(jī)器人回到原始位置”的事情檢測(cè)出來(lái),而后端優(yōu)化則根據(jù)該信息,校正整個(gè)軌跡的形狀。

后端優(yōu)化

籠統(tǒng)地說(shuō),后端優(yōu)化主要指處理SLAM過(guò)程中噪聲的問(wèn)題。雖然我們很希望所有的數(shù)據(jù)都是準(zhǔn)確的,然而現(xiàn)實(shí)中,再精確的傳感器也帶有一定的噪聲。便宜的傳感器測(cè)量誤差較大,昂貴的可能會(huì)小一些,有的傳感器還會(huì)受磁場(chǎng)、溫度的影響。所以,除了解決“如何從圖像估計(jì)出相機(jī)運(yùn)動(dòng)”之外,我們還要關(guān)心這個(gè)估計(jì)帶有多大的噪聲,這些噪聲是如何從上一時(shí)刻傳遞到下一時(shí)刻的,而我們又對(duì)當(dāng)前的估計(jì)有多大的自信。后端優(yōu)化要考慮的問(wèn)題,就是如何從這些帶有噪聲的數(shù)據(jù)中估計(jì)整個(gè)系統(tǒng)的狀態(tài),以及這個(gè)狀態(tài)估計(jì)的不確定性有多大——這稱為大后驗(yàn)概率估計(jì)(Maximum-a-Posteriori,MAP)。這里的狀態(tài)既包括機(jī)器人自身的軌跡,也包含地圖。
相對(duì)地,視覺(jué)里程計(jì)部分有時(shí)被稱為“前端”。在SLAM框架中,前端給后端提供待優(yōu)化的數(shù)據(jù),以及這些數(shù)據(jù)的初始值。而后端負(fù)責(zé)整體的優(yōu)化過(guò)程,它往往面對(duì)的只有數(shù)據(jù),不必關(guān)心這些數(shù)據(jù)到底來(lái)自什么傳感器。在視覺(jué)SLAM中,前端和計(jì)算機(jī)視覺(jué)研究領(lǐng)域更為相關(guān),比如圖像的特征提取與匹配等,后端則主要是濾波與非線性優(yōu)化算法。
從歷史意義上來(lái)說(shuō),現(xiàn)在我們稱為后端優(yōu)化的部分,很長(zhǎng)一段時(shí)間直接被稱為“SLAM研究”。早期的SLAM問(wèn)題是一個(gè)狀態(tài)估計(jì)問(wèn)題——正是后端優(yōu)化要解決的東西。在最早提出SLAM的一系列論文中,當(dāng)時(shí)的人們稱它為“空間狀態(tài)不確定性的估計(jì)”(Spatial Uncertainty)。雖然有一些晦澀,但也確實(shí)反映出了SLAM問(wèn)題的本質(zhì):對(duì)運(yùn)動(dòng)主體自身和周圍環(huán)境空間不確定性的估計(jì)。為了解決SLAM問(wèn)題,我們需要狀態(tài)估計(jì)理論,把定位和建圖的不確定性表達(dá)出來(lái),然后采用濾波器或非線性優(yōu)化,估計(jì)狀態(tài)的均值和不確定性(方差)。狀態(tài)估計(jì)與非線性優(yōu)化的具體內(nèi)容將在第6講、第10講和第11講介紹。讓我們暫時(shí)跳過(guò)它的原理說(shuō)明,繼續(xù)往下介紹。

回環(huán)檢測(cè)

回環(huán)檢測(cè),又稱閉環(huán)檢測(cè)(Loop Closure Detection),主要解決位置估計(jì)隨時(shí)間漂移的問(wèn)題。怎么解決呢?假設(shè)實(shí)際情況下機(jī)器人經(jīng)過(guò)一段時(shí)間的運(yùn)動(dòng)后回到了原點(diǎn),但是由于漂移,它的位置估計(jì)值卻沒(méi)有回到原點(diǎn)。怎么辦呢?我們想,如果有某種手段,讓機(jī)器人知道“回到了原點(diǎn)”這件事,或者把“原點(diǎn)”識(shí)別出來(lái),我們?cè)侔盐恢霉烙?jì)值“拉”過(guò)去,就可以消除漂移了。這就是所謂的回環(huán)檢測(cè)。
回環(huán)檢測(cè)與“定位”和“建圖”二者都有密切的關(guān)系。事實(shí)上,我們認(rèn)為,地圖存在的主要意義是讓機(jī)器人知曉自己到過(guò)的地方。為了實(shí)現(xiàn)回環(huán)檢測(cè),我們需要讓機(jī)器人具有識(shí)別到過(guò)的場(chǎng)景的能力。它的實(shí)現(xiàn)手段有很多。例如像前面說(shuō)的那樣,我們可以在機(jī)器人下方設(shè)置一個(gè)標(biāo)志物(如一張二維碼圖片)。它只要看到了這個(gè)標(biāo)志,就知道自己回到了原點(diǎn)。但是,該標(biāo)志物實(shí)質(zhì)上是一種環(huán)境中的傳感器,對(duì)應(yīng)用環(huán)境做了限制(萬(wàn)一不能貼二維碼怎么辦?)。我們更希望機(jī)器人能使用攜帶的傳感器——也就是圖像本身,來(lái)完成這一任務(wù)。例如,可以判斷圖像間的相似性來(lái)完成回環(huán)檢測(cè)。這一點(diǎn)和人是相似的。當(dāng)我們看到兩張相似的圖片時(shí),容易辨認(rèn)它們來(lái)自同一個(gè)地方。如果回環(huán)檢測(cè)成功,可以顯著地減小累積誤差。所以,視覺(jué)回環(huán)檢測(cè)實(shí)質(zhì)上是一種計(jì)算圖像數(shù)據(jù)相似性的算法。由于圖像的信息非常豐富,使得正確檢測(cè)回環(huán)的難度降低了不少。
在檢測(cè)到回環(huán)之后,我們會(huì)把“A與B是同一個(gè)點(diǎn)”這樣的信息告訴后端優(yōu)化算法。然后,后端根據(jù)這些新的信息,把軌跡和地圖調(diào)整到符合回環(huán)檢測(cè)結(jié)果的樣子。這樣,如果我們有充分而且正確的回環(huán)檢測(cè),就可以消除累積誤差,得到全局一致的軌跡和地圖。

建圖

建圖(Mapping)是指構(gòu)建地圖的過(guò)程。地圖是對(duì)環(huán)境的描述,但這個(gè)描述并不是固定的,需要視SLAM的應(yīng)用而定。

        經(jīng)典視覺(jué)SLAM框架
                   形形×××的地圖

對(duì)于家用掃地機(jī)器人來(lái)說(shuō),這種主要在低矮平面里運(yùn)動(dòng)的機(jī)器人,只需要一個(gè)二維的地圖,標(biāo)記哪里可以通過(guò),哪里存在障礙物,就夠它在一定范圍內(nèi)導(dǎo)航了。而對(duì)于一個(gè)相機(jī),它有6自由度的運(yùn)動(dòng),我們至少需要一張三維的地圖。有些時(shí)候,我們想要一個(gè)漂亮的重建結(jié)果,不僅是一組空間點(diǎn),還需要帶紋理的三角面片。另一些時(shí)候,我們又不關(guān)心地圖的樣子,只需要知道“A點(diǎn)到B點(diǎn)可通過(guò),而B點(diǎn)到C點(diǎn)不行”這樣的事情。甚至,有時(shí)不需要地圖,或者地圖可以由其他人提供,例如,行駛的車輛往往可以得到已繪制好的當(dāng)?shù)氐貓D。
對(duì)于地圖,我們有太多的想法和需求。因此,相比于前面提到的視覺(jué)里程計(jì)、回環(huán)檢測(cè)和后端優(yōu)化,建圖并沒(méi)有一個(gè)固定的形式和算法。一組空間點(diǎn)的集合也可以稱為地圖,一個(gè)漂亮的3D模型亦是地圖,一個(gè)標(biāo)記著城市、村莊、鐵路、河道的圖片還是地圖。地圖的形式隨SLAM的應(yīng)用場(chǎng)合而定。大體上講,可以分為度量地圖與拓?fù)涞貓D兩種。

度量地圖(Metric Map)

度量地圖強(qiáng)調(diào)精確地表示地圖中物體的位置關(guān)系,通常用稀疏(Sparse)與稠密(Dense)對(duì)其分類。稀疏地圖進(jìn)行了一定程度的抽象,并不需要表達(dá)所有的物體。例如,我們選擇一部分具有代表意義的東西,稱之為路標(biāo)(Landmark),那么一張稀疏地圖就是由路標(biāo)組成的地圖,而不是路標(biāo)的部分就可以忽略掉。相對(duì)地,稠密地圖著重于建模所有看到的東西。對(duì)于定位來(lái)說(shuō),稀疏路標(biāo)地圖就足夠了。而用于導(dǎo)航時(shí),則往往需要稠密的地圖(否則撞上兩個(gè)路標(biāo)之間的墻怎么辦?)。稠密地圖通常按照某種分辨率,由許多個(gè)小塊組成。對(duì)于二維度量地圖是許多個(gè)小格子(Grid),而對(duì)于三維度量地圖則是許多小方塊(Voxel)。一般地,一個(gè)小塊含有占據(jù)、空閑、未知三種狀態(tài),以表達(dá)該格內(nèi)是否有物體。當(dāng)查詢某個(gè)空間位置時(shí),地圖能夠給出該位置是否可以通過(guò)的信息。這樣的地圖可以用于各種導(dǎo)航算法,如A*、D*等,為機(jī)器人研究者所重視。但是我們也看到,這種地圖需要存儲(chǔ)每一個(gè)格點(diǎn)的狀態(tài),會(huì)耗費(fèi)大量的存儲(chǔ)空間,而且多數(shù)情況下地圖的許多細(xì)節(jié)部分是無(wú)用的。另一方面,大規(guī)模度量地圖有時(shí)會(huì)出現(xiàn)一致性問(wèn)題。很小的一點(diǎn)轉(zhuǎn)向誤差,可能會(huì)導(dǎo)致兩間屋子的墻出現(xiàn)重疊,使地圖失效。

拓?fù)涞貓D(Topological Map)

相比于度量地圖的精確性,拓?fù)涞貓D則更強(qiáng)調(diào)地圖元素之間的關(guān)系。拓?fù)涞貓D是一個(gè)圖(Graph),由節(jié)點(diǎn)和邊組成,只考慮節(jié)點(diǎn)間的連通性,例如A、B點(diǎn)是連通的,而不考慮如何從A點(diǎn)到達(dá)B點(diǎn)。它放松了地圖對(duì)精確位置的需要,去掉了地圖的細(xì)節(jié)問(wèn)題,是一種更為緊湊的表達(dá)方式。然而,拓?fù)涞貓D不擅長(zhǎng)表達(dá)具有復(fù)雜結(jié)構(gòu)的地圖。如何對(duì)地圖進(jìn)行分割形成結(jié)點(diǎn)與邊,又如何使用拓?fù)涞貓D進(jìn)行導(dǎo)航與路徑規(guī)劃,仍是有待研究的問(wèn)題。
本文選自《視覺(jué)SLAM十四講:從理論到實(shí)踐》,點(diǎn)此鏈接可在博文視點(diǎn)官網(wǎng)查看此書。
                經(jīng)典視覺(jué)SLAM框架
想及時(shí)獲得更多精彩文章,可在微信中搜索“博文視點(diǎn)”或者掃描下方二維碼并關(guān)注。
                   經(jīng)典視覺(jué)SLAM框架

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買多久送多久。


網(wǎng)頁(yè)題目:經(jīng)典視覺(jué)SLAM框架-創(chuàng)新互聯(lián)
本文來(lái)源:http://weahome.cn/article/dhjopj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部