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