視覺SLAM技術簡述,一文了解視覺SLAM

如今科技發展日新月異,隨着機器人、AR/VR等人工智能領域的不斷髮展,視覺SLAM也取得了驚人的發展。本文就視覺SLAM的定義、研究分類、模塊、工作原理及應用方向等方面做一個視覺SLAM的技術簡述。

 

視覺SLAM是什麼?

SLAM的英文全稱是Simultaneous Localization and Mapping,中文稱作「即時定位與地圖創建」,而視覺SLAM就是用攝像頭來完成環境的感知工作。

當一個自主移動的機器人處在一個未知的環境,它要通過攝像頭獲取的信息數據對自身以及周圍環境進行一個預估,在機器人移動過程中根據位置估計和攝像頭對感知的數據進行自身的定位,同時不斷地建造和更新地圖並且規劃自身的路徑。

 

視覺SLAM研究分類

視覺SLAM研究主要分爲三大類:單目、雙目、RGBD。

單目SLAM只用一支攝像頭就可以完成SLAM。最大的優點是傳感器簡單且成本低,但同時也有個大問題,就是不能通過單張圖片得到深度信息(距離),存在尺寸不確定的現象,比如丟失深度信息的相片中,我們能見到“手捏太陽”“借位拍照”這樣的現象。

單目相機無法依靠一張圖像獲得圖像中物體離自己的相對距離。爲了估計這個相對深度,只能利用移動相機之後進行三角化,測量像素的距離。即是說,它的軌跡和地圖,只有在相機運動之後才能收斂,如果相機不進行運動時,就無法得知像素的位置。同時,相機運動還不能是純粹的旋轉,這就給單目SLAM的應用帶來了一些麻煩。

 

 

雙目SLAM利用左右目的視差計算像素的距離,從而實現自身的定位。立體視覺既可以在運動時估計深度,亦可在靜止時估計,消除了單目視覺的無法得到深度信息的麻煩。目前市面常見的雙目相機包括INDEMIND雙目視覺慣性模組等。不過通過雙目圖像計算像素距離,計算量大,而且在特徵少的白牆或暗光環境易丟失目標。

 

RGBD相機是2010年左右新興的一種相機,它最大的特點是可以通過紅外結構光或Time-of-Flight原理,直接測出圖像中各像素離相機的距離。因此,它比傳統相機能夠提供更豐富的信息,也不必像單目或雙目那樣費時費力地計算深度。目前常用的RGBD相機包括Kinect/Kinect V2等。不過,現在多數RGBD相機還存在測量範圍窄、噪聲大、視野小等諸多問題。出於量程的限制,主要用於室內SLAM。

 

視覺SLAM框架解讀

一般的視覺SLAM系統分爲五個模塊:傳感器數據、視覺里程計、後端、建圖、迴環檢測。

 

1.傳感器數據

在視覺SLAM中主要爲相機圖像信息的讀取和預處理。如果在機器人中,還可能有碼盤,慣性傳感器等信息的讀取和同步。

2.視覺里程計

視覺里程計(VO)也稱前端。它根據相鄰圖像的信息,估計出粗略的相機運動,給後端提供較好的 初始值。VO 的實現方法,按是否需要提取特徵,分爲特徵點法的前端以及不提特徵的直 接法前端。基於特徵點法的前端,長久以來(直到現在)被認爲是視覺里程計的主流方法。 它運行穩定,對光照、動態物體不敏感,是目前比較成熟的解決方案。

3.後端優化

後端優化主要是處理slam過程中噪聲的問題。任何傳感器都有噪聲,所以除了要處理“如何從圖像中估計出相機運動”,還要關心這個估計帶有多大的噪聲。

前端給後端提供待優化的數據,以及這些數據的初始值,而後端負責整體的優化過程,它往往面對的只有數據,不必關係這些數據來自哪裏。在視覺slam中,前端和計算接視覺研究領域更爲相關,比如圖像的特徵提取與匹配等,後端則主要是濾波和非線性優化算法。

4.迴環檢測

迴環檢測也可以稱爲閉環檢測,是指機器人識別曾到達場景的能力。迴環檢測提供了當前數據與所有歷史數據的關聯,在跟蹤算法丟失之後,我們還可以利用迴環檢測進行重定位。因此,迴環檢測對整個SLAM系統精度與魯棒性的提升,是非常明顯的。

5.建圖

建圖主要是根據估計的軌跡建立與任務要求對應的地圖,在機器人學中,地圖的表示主要有柵格地圖、直接表徵法、拓撲地圖以及特徵點地圖這4種。而特徵點地圖是用有關的幾何特徵(如點、直線、面)表示環境,常見於視覺SLAM技術中。


視覺SLAM工作原理

大多數視覺SLAM系統的工作方式是通過連續的相機幀,跟蹤設置關鍵點,以三角算法定位其3D位置,同時使用此信息來逼近推測相機自己的姿態。簡單來說,這些系統的目標是繪製與自身位置相關的環境地圖。這個地圖可以用於機器人系統在該環境中導航作用。與其他形式的SLAM技術不同,只需一個3D視覺攝像頭,就可以做到這一點。

 

通過跟蹤攝像頭視頻幀中足夠數量的關鍵點,可以快速瞭解傳感器的方向和周圍物理環境的結構。所有視覺SLAM系統都在不斷的工作,以使重新投影誤差(Reprojection Error)或投影點與實際點之間的差異最小化,通常是通過一種稱爲Bundle Adjustment(BA)的算法解決方案。VSLAM系統需要實時操作,這涉及到大量的運算,因此位置數據和映射數據經常分別進行Bundle Adjustment,但同時進行,便於在最終合併之前加快處理速度。

 

目前,視覺SLAM主要被運用於無人機、無人駕駛、機器人、AR、智能家居等領域,同時涌現出了一大批視覺SLAM優秀的公司和產品。如百度的自動駕駛軟件、仙途智能的智能環衛車、科沃斯的掃地機器人、INDEMIND的機器人視覺導航定位解決方案、穿戴計算解決方案等等。

 

隨着城市物聯網和智能系統的完善,視覺SLAM的前景是非常廣闊的。尤其是視覺SLAM得天獨厚的語義地圖優勢,能很好地滿足人與人工智能之間的交互,非常符合人工智能的發展趨勢。

雖然目前視覺SLAM技術方面還存在着一些問題,但這些都會隨着消費刺激和產業鏈的發展逐步解決、趨於完善。

 

參考文獻

《視覺SLAM十四講》高翔

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