近年來(lái),SLAM技術(shù)取得了驚人的發(fā)展,領(lǐng)先一步的激光SLAM已成熟的應(yīng)用于各大場(chǎng)景中,視覺(jué)SLAM雖在落地應(yīng)用上不及激光SLAM,但也是目前研究的一大熱點(diǎn),今天我們就來(lái)詳細(xì)聊聊視覺(jué)SLAM的那些事兒。
視覺(jué)SLAM是什么?
視覺(jué)SLAM主要是基于相機(jī)來(lái)完成環(huán)境的感知工作,相對(duì)而言,相機(jī)成本較低,容易放到商品硬件上,且圖像信息豐富,因此視覺(jué)SLAM也備受關(guān)注。
目前,視覺(jué)SLAM可分為單目、雙目(多目)、RGBD這三類,另還有魚眼、全景等特殊相機(jī),但目前在研究和產(chǎn)品中還屬于少數(shù),此外,結(jié)合慣性測(cè)量器件(Inertial Measurement Unit,IMU)的視覺(jué)SLAM也是現(xiàn)在研究熱點(diǎn)之一。從實(shí)現(xiàn)難度上來(lái)說(shuō),大致將這三類方法排序?yàn)椋簡(jiǎn)文恳曈X(jué)>雙目視覺(jué)>RGBD。
單目相機(jī)SLAM簡(jiǎn)稱MonoSLAM,僅用一支攝像頭就能完成SLAM。最大的優(yōu)點(diǎn)是傳感器簡(jiǎn)單且成本低廉,但同時(shí)也有個(gè)大問(wèn)題,就是不能確切的得到深度。
一方面是由于絕對(duì)深度未知,單目SLAM不能得到機(jī)器人運(yùn)動(dòng)軌跡及地圖的真實(shí)大小,如果把軌跡和房間同時(shí)放大兩倍,單目看到的像是一樣的,因此,單目SLAM只能估計(jì)一個(gè)相對(duì)深度。另一方面,單目相機(jī)無(wú)法依靠一張圖像獲得圖像中物體離自己的相對(duì)距離。為了估計(jì)這個(gè)相對(duì)深度,單目SLAM要靠運(yùn)動(dòng)中的三角測(cè)量,來(lái)求解相機(jī)運(yùn)動(dòng)并估計(jì)像素的空間位置。即是說(shuō),它的軌跡和地圖,只有在相機(jī)運(yùn)動(dòng)之后才能收斂,如果相機(jī)不進(jìn)行運(yùn)動(dòng)時(shí),就無(wú)法得知像素的位置。同時(shí),相機(jī)運(yùn)動(dòng)還不能是純粹的旋轉(zhuǎn),這就給單目SLAM的應(yīng)用帶來(lái)了一些麻煩。
而雙目相機(jī)與單目不同的是,立體視覺(jué)既可以在運(yùn)動(dòng)時(shí)估計(jì)深度,亦可在靜止時(shí)估計(jì),消除了單目視覺(jué)的許多麻煩。不過(guò),雙目或多目相機(jī)配置與標(biāo)定均較為復(fù)雜,其深度量程也隨雙目的基線與分辨率限制。通過(guò)雙目圖像計(jì)算像素距離,是一件非常消耗計(jì)算量的事情,現(xiàn)在多用FPGA來(lái)完成。
RGBD相機(jī)是2010年左右開始興起的一種相機(jī),它最大的特點(diǎn)是可以通過(guò)紅外結(jié)構(gòu)光或TOF原理,直接測(cè)出圖像中各像素離相機(jī)的距離。因此,它比傳統(tǒng)相機(jī)能夠提供更豐富的信息,也不必像單目或雙目那樣費(fèi)時(shí)費(fèi)力地計(jì)算深度。
視覺(jué)SLAM框架解讀
1.傳感器數(shù)據(jù)
在視覺(jué)SLAM中主要為相機(jī)圖像信息的讀取和預(yù)處理。如果在機(jī)器人中,還可能有碼盤,慣性傳感器等信息的讀取和同步。
2.視覺(jué)里程計(jì)
視覺(jué)里程計(jì)的主要任務(wù)是估算相鄰圖像間相機(jī)運(yùn)動(dòng)以及局部地圖的樣子,最簡(jiǎn)單的是兩張圖像之間的運(yùn)動(dòng)關(guān)系。計(jì)算機(jī)是如何通過(guò)圖像確定相機(jī)的運(yùn)動(dòng)的。在圖像上,我們只能看到一個(gè)個(gè)的像素,知道他們是某些空間點(diǎn)在相機(jī)的成像平面投影的結(jié)果。所以必須先了解相機(jī)跟空間點(diǎn)的幾何關(guān)系。
Vo(又稱為前端)能夠通過(guò)相鄰幀間的圖像估計(jì)相機(jī)運(yùn)動(dòng),并恢復(fù)場(chǎng)景的空間結(jié)構(gòu),稱它為里程計(jì)。被稱為里程計(jì)是因?yàn)樗挥?jì)算相鄰時(shí)刻的運(yùn)動(dòng),而和再往前的過(guò)去信息沒(méi)有關(guān)聯(lián)。相鄰時(shí)刻運(yùn)動(dòng)串聯(lián)起來(lái),就構(gòu)成了機(jī)器人的運(yùn)動(dòng)軌跡,從而解決了定位問(wèn)題。另一方面,根據(jù)每一時(shí)刻的相機(jī)位置,計(jì)算出各像素對(duì)應(yīng)的空間點(diǎn)的位置,就得到了地圖。
3.后端優(yōu)化
后端優(yōu)化主要是處理slam過(guò)程中噪聲的問(wèn)題。任何傳感器都有噪聲,所以除了要處理“如何從圖像中估計(jì)出相機(jī)運(yùn)動(dòng)”,還要關(guān)心這個(gè)估計(jì)帶有多大的噪聲。
前端給后端提供待優(yōu)化的數(shù)據(jù),以及這些數(shù)據(jù)的初始值,而后端負(fù)責(zé)整體的優(yōu)化過(guò)程,它往往面對(duì)的只有數(shù)據(jù),不必關(guān)系這些數(shù)據(jù)來(lái)自哪里。在視覺(jué)slam中,前端和計(jì)算接視覺(jué)研究領(lǐng)域更為相關(guān),比如圖像的特征提取與匹配等,后端則主要是濾波和非線性優(yōu)化算法。
4.回環(huán)檢測(cè)
回環(huán)檢測(cè)也可以稱為閉環(huán)檢測(cè),是指機(jī)器人識(shí)別曾到達(dá)場(chǎng)景的能力。如果檢測(cè)成功,可以顯著地減小累積誤差?;丨h(huán)檢測(cè)實(shí)質(zhì)上是一種檢測(cè)觀測(cè)數(shù)據(jù)相似性的算法。對(duì)于視覺(jué)SLAM,多數(shù)系統(tǒng)采用目前較為成熟的詞袋模型(Bag-of-Words, BoW)。詞袋模型把圖像中的視覺(jué)特征(SIFT, SURF等)聚類,然后建立詞典,進(jìn)而尋找每個(gè)圖中含有哪些“單詞”(word)。也有研究者使用傳統(tǒng)模式識(shí)別的方法,把回環(huán)檢測(cè)建構(gòu)成一個(gè)分類問(wèn)題,訓(xùn)練分類器進(jìn)行分類。
5.建圖
建圖主要是根據(jù)估計(jì)的軌跡建立與任務(wù)要求對(duì)應(yīng)的地圖,在機(jī)器人學(xué)中,地圖的表示主要有柵格地圖、直接表征法、拓?fù)涞貓D以及特征點(diǎn)地圖這4種。而特征點(diǎn)地圖是用有關(guān)的幾何特征(如點(diǎn)、直線、面)表示環(huán)境,常見于視覺(jué)SLAM技術(shù)中。這種地圖一般通過(guò)如GPS、UWB以及攝像頭配合稀疏方式的vSLAM算法產(chǎn)生,優(yōu)點(diǎn)是相對(duì)數(shù)據(jù)存儲(chǔ)量和運(yùn)算量比較小,多見于最早的SLAM算法中。
視覺(jué)SLAM工作原理
大多數(shù)視覺(jué)SLAM系統(tǒng)的工作方式是通過(guò)連續(xù)的相機(jī)幀,跟蹤設(shè)置關(guān)鍵點(diǎn),以三角算法定位其3D位置,同時(shí)使用此信息來(lái)逼近推測(cè)相機(jī)自己的姿態(tài)。簡(jiǎn)單來(lái)說(shuō),這些系統(tǒng)的目標(biāo)是繪制與自身位置相關(guān)的環(huán)境地圖。這個(gè)地圖可以用于機(jī)器人系統(tǒng)在該環(huán)境中導(dǎo)航作用。與其他形式的SLAM技術(shù)不同,只需一個(gè)3D視覺(jué)攝像頭,就可以做到這一點(diǎn)。
通過(guò)跟蹤攝像頭視頻幀中足夠數(shù)量的關(guān)鍵點(diǎn),可以快速了解傳感器的方向和周圍物理環(huán)境的結(jié)構(gòu)。所有視覺(jué)SLAM系統(tǒng)都在不斷的工作,以使重新投影誤差(Reprojection Error)或投影點(diǎn)與實(shí)際點(diǎn)之間的差異最小化,通常是通過(guò)一種稱為Bundle Adjustment(BA)的算法解決方案。vSLAM系統(tǒng)需要實(shí)時(shí)操作,這涉及到大量的運(yùn)算,因此位置數(shù)據(jù)和映射數(shù)據(jù)經(jīng)常分別進(jìn)行Bundle Adjustment,但同時(shí)進(jìn)行,便于在最終合并之前加快處理速度。
視覺(jué)SLAM與激光SLAM有什么區(qū)別?
在業(yè)內(nèi),視覺(jué)SLAM與激光SLAM誰(shuí)更勝一籌,誰(shuí)將成為未來(lái)主流趨勢(shì)這一問(wèn)題,成為大家關(guān)注的熱點(diǎn),不同的人也有不同的看法及見解,以下將從成本、應(yīng)用場(chǎng)景、地圖精度、易用性幾個(gè)方面來(lái)進(jìn)行詳細(xì)闡述。
1.成本
從成本上來(lái)說(shuō),激光雷達(dá)普遍價(jià)格較高,但目前國(guó)內(nèi)也有低成本的激光雷達(dá)解決方案,而VSLAM主要是通過(guò)攝像頭來(lái)采集數(shù)據(jù)信息,跟激光雷達(dá)一對(duì)比,攝像頭的成本顯然要低很多。但激光雷達(dá)能更高精度的測(cè)出障礙點(diǎn)的角度和距離,方便定位導(dǎo)航。
2.應(yīng)用場(chǎng)景
從應(yīng)用場(chǎng)景來(lái)說(shuō),VSLAM的應(yīng)用場(chǎng)景要豐富很多。VSLAM在室內(nèi)外環(huán)境下均能開展工作,但是對(duì)光的依賴程度高,在暗處或者一些無(wú)紋理區(qū)域是無(wú)法進(jìn)行工作的。而激光SLAM目前主要被應(yīng)用在室內(nèi),用來(lái)進(jìn)行地圖構(gòu)建和導(dǎo)航工作。
3.地圖精度
激光SLAM在構(gòu)建地圖的時(shí)候,精度較高,思嵐科技的RPLIDAR系列構(gòu)建的地圖精度可達(dá)到2cm左右;VSLAM,比如常見的,大家也用的非常多的深度攝像機(jī)Kinect,(測(cè)距范圍在3-12m之間),地圖構(gòu)建精度約3cm;所以激光SLAM構(gòu)建的地圖精度一般來(lái)說(shuō)比VSLAM高,且能直接用于定位導(dǎo)航。
視覺(jué)SLAM的地圖建立
4.易用性
激光SLAM和基于深度相機(jī)的視覺(jué)SLAM均是通過(guò)直接獲取環(huán)境中的點(diǎn)云數(shù)據(jù),根據(jù)生成的點(diǎn)云數(shù)據(jù),測(cè)算哪里有障礙物以及障礙物的距離。但是基于單目、雙目、魚眼攝像機(jī)的視覺(jué)SLAM方案,則不能直接獲得環(huán)境中的點(diǎn)云,而是形成灰色或彩色圖像,需要通過(guò)不斷移動(dòng)自身的位置,通過(guò)提取、匹配特征點(diǎn),利用三角測(cè)距的方法測(cè)算出障礙物的距離。
總體來(lái)說(shuō),激光SLAM相對(duì)更為成熟,也是目前最為可靠的定位導(dǎo)航方案,而視覺(jué)SLAM仍是今后研究的一個(gè)主流方向,但未來(lái),兩者融合是必然趨勢(shì)。
以上部分內(nèi)容來(lái)源于網(wǎng)絡(luò)
關(guān)鍵字:视觉SLAM,视觉SLAM是什么