視覺SLAM——概述 算法框架 SLAM與SFM的區別

前言

此爲學習《視覺SLAM十四講》第1、2講及其他相關SLAM內容的總結與整理。

什麼是SLAM

SLAM是Simultaneous Location and Mapping,同時定位與地圖構建。是指搭載特定傳感器的主體,在沒有環境先驗信息的情況下,於運動過程中建立環境的模型,同時估計自己的運動。
目的是解決自主機器人“定位”和“建圖”兩個問題。同時要求能夠實時地,沒有先驗知識地進行。

SLAM問題的本質是對主體自身(位姿)和周圍環境空間(點雲)的不確定性的估計。

經典SLAM算法框架

在這裏插入圖片描述

  • 傳感器信息獲取:相機圖像的讀取和預處理,碼盤、IMU等的讀取和時間同步。
  • 前端視覺里程計(Visual Odometry,VO):通過相鄰幀間的圖像估計相機運動,並恢復場景的空間結構。僅通過VO估計軌跡會出現累計漂移。主要是特徵點法和直接法。
  • 後端優化(Optimization):接收不同時刻視覺里程計輸出的相機位姿,以及迴環檢測的信息,對其進行優化,得到全局一致的軌跡和地圖。主要是濾波和非線性優化算法。
  • 迴環檢測(Loop Closing):解決位置估計誤差隨時間漂移的問題,得到全局一致的地圖。利用圖像相似性判斷機器人是否曾經到達過此位置,如果檢測到迴環,會把信息提供給後端進行處理。
  • 建圖(Mapping):根據估計出的軌跡,建立於任務要求對應的地圖。

SLAM數學模型

運動方程和觀測方程:
在這裏插入圖片描述
SLAM可建模爲一個狀態估計問題:當知道運動測量讀數u,以及傳感器的讀數z時,如何求解定位問題(估計機器人自身位置x)和建圖問題(估計路標點y),其中w和v爲運動噪聲和觀測噪聲。

狀態估計問題的求解,與系統是否線性,噪聲服從哪種分佈有關。系統可分爲線性/非線性和高斯/非高斯系統。其中線性高斯系統(LG)的無偏最優估計可由卡爾曼濾波器(KF)給出。目前優化技術已經明顯優於濾波器技術,主流視覺SLAM使用以圖優化爲代表的優化技術進行狀態估計。

傳感器的分類

1、外置:安裝在環境中,如導軌、二維碼等,這類傳感器簡單有效,但約束了外界環境;
2、內置:攜帶在機器人本體上,如輪式編碼器、相機、激光、聲納、IMU等,通常測量間接的物理量而非直接位置數據,具有通用性。

相機簡單介紹

相機是以一定速率採集環境信息得到照片,形成視頻流。照片的本質是拍照時的場景在相機的成像平面下的投影,是以二維的形式反應三維世界,丟失了場景的深度。

單目相機SLAM:通過移動時物體產生的視差計算深度,無法確定真實尺度(Scale)(尺度不確定性)。
尺度表示爲單目SLAM估計的軌跡和地圖與真實軌跡和地圖之間相差的因子。

雙目相機(stereo):由兩個單目相機組成,通過基線(Baseline)估計每個像素的深度。
優點:不依賴其他傳感器,可應用於室內/室外。
缺點:配置與標定複雜,深度量程和精度受雙目基線和分辨率所限,視差的計算非常消耗計算資源,需要GPU。

深度相機(RGB-D):通過紅外結構光或者Time-of-Fight(TOF)原理,主動測量物體的距離。
優點:通過物理手段測量,可以節省大量運算;
缺點:目前存在測量範圍窄、噪聲大、視野小、易受陽光干擾、無法測量投射材質等問題,主要應用於室內。

地圖的分類

地圖是對環境的描述,主要分爲:

  • 度量地圖(Metric Map):精確地表示地圖中物體的位置關係。
  • 拓撲地圖(Topological Map):強調地圖元素之間的關係,是一個圖(Graph),由節點和邊組成,只考慮節點間的連通性。

度量地圖又可分爲:

  • 稀疏地圖(Sparse)對環境進行一定尺度的抽象,不表達所有物體,如選擇一部分具有代表意義的物體,成爲路標(Landmark)。
  • 稠密地圖(Dense):建模所有看到的東西,一般由許多小塊組成,包含佔據、空閒、未知三種狀態。

SFM、單目多視角三維重建和vSLAM的區別

SFM又叫structure from motion,即從運動恢復結構。

1、SFM以及單目多視角三維重建的圖像是無序的,匹配時需要進行較爲暴力的匹配,選擇初始兩張圖像以及加入最好的下一張圖像需要技巧;
SLAM是有序的圖像序列,一般通過前後幀間匹配和局部窗口法,只有迴環檢測時需要進行圖像間的匹配。
2、SFM中的structure對應於vSLAM中的mapping,camera pose對應於vSLAM中location。從目的考慮,SFM主要是要爲了實現三維重建(3D reconstuction),而vSLAM主要是要實現定位(location)。
3、SFM 是離線處理的,對處理時間要求不嚴格,但對結果的精確度要求高;SLAM需要在線處理,一般要求達到實時性。且SLAM更希望能在小型電腦或嵌入式設備中應用。

視覺SLAM的主要挑戰

  1. 迴路序列和多視頻序列
  2. 高效高精度處理大尺度場景
  3. 動態場景
  4. 快速運動和強旋轉問題

機器人綁架

指在丟失之前位置信息的情況下,去確定機器人的當前位姿。比如機器人在移動過程中,由於傳感器的暫時性功能故障或相機的快速移動導致跟蹤失敗,從而得到一個錯誤的位姿估計;或者外界強行將其放到另外一個位姿。

"綁架問題"可以分爲初始化綁架和追蹤丟失狀態綁架。
1)初始化綁架可採用粒子濾波方法,重新分散隨即狀態粒子到三維空間,經不斷更新後粒子收斂到可解釋觀察結果的區域。
2)追蹤丟失狀態綁架,即在綁架之前系統已經保存當前狀態估計,則可以融合多傳感器和增加替代傳感器的方式解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章