1. 程式人生 > >初入SLAM,論文學習:權美香,樸鬆昊,李國. 視覺 SLAM 綜述

初入SLAM,論文學習:權美香,樸鬆昊,李國. 視覺 SLAM 綜述

摘要

視覺 SLAM 指的是相機作為唯一的外部感測器,在進行自身定位的同時建立環境地圖。 SLAM 建立的地圖的好壞對之後自主的定位、路徑規劃以及壁障的效能起到一個決定性的作用。 本文對基於特徵的視覺 SLAM 方法和直接的 SLAM 方法,視覺 SLAM 的主要標誌性成果,SLAM 的主要研究實驗室進行了介紹,並介紹了 SIFT,SURF,ORB特徵的檢測與匹配,關鍵幀選擇方法,並對消除累積誤差的閉環檢測及地圖優化的方法進行了總結。最後,對視覺SLAM 的主要發展趨勢及研究熱點進行了討論,並對單目視覺 SLAM,雙目視覺 SLAM,RGB_D SLAM 進行了優缺點分析。

1.根據感測器的視覺SLAM分類

根據採用的視覺感測器不同, 可以將視覺SLAM主要分為三類:僅用一個相機作為唯一外部感測器的單目視覺SLAM;使用多個相機作為感測器的立體視覺SLAM;基於單目相機與紅外感測器結合構成的感測器的RGB-D SLAM。

 

2.視覺SLAM方法

2.1基於特徵的 SLAM 方法

基於特徵的視覺SLAM方法指的是對輸人的影象進行特徵點檢測及提取,並基於2-D或3-D的特徵匹配計算相機位姿及對環境進行建圖。如果對整幅影象進行處理,則計算複雜度太高,由於特徵在儲存影象重要資訊的同時有效減少了計算量,從而被廣泛使用。

早期的單目視覺 SLAM 的實現是藉助於濾波器而實現的,利用擴充套件卡爾曼濾波器^{概念摘出}

( extended Kalman filter, EKF)  來實現同時定位與地圖建立,其主要思想是使用狀態向量來儲存相機位姿及地圖點的三維座標,利用概率密度函式來表示不確定性,觀測模型和遞迴的計算,最終獲得更新的狀態向量的均值和方差。(線性化問題+解決)

之後基於關鍵幀的單目視覺SLAM逐漸發展起來,其中最具代表性的是parallel tracking and mapping(PTAM)進行操作,避免了特徵點的提取,能夠使用影象的所有資訊。此外,提供更多的環境幾何資訊,有的提取關鍵幀的方法,且將定位和建立地圖分為兩執行緒。(PTAM代表作:KLEIN G, MURRAY D. Parallel Tracking and Mapping for Small AR Workspaces[ C] / / IEEE and ACM Interna⁃ tional Symposium on Mixed and Augmented Reality. Nara, Japan, 2007: 225-234.)

也有將整個SLAM過程分為定位、建立地圖、閉環3個執行緒,且對這 3 個任務使用相同的 ORB特徵,且引進本質圖的概念來加速閉環校正過程的做法。

RGB-D SLAM通常使用ICP演算法來進行位姿估計。

2.2直接的SLAM方法

直接的SLAM方法指的是直接對畫素點的強度進行操作,避免了特徵點的提取,該方法能夠使用影象的所有資訊。此外,提供更多的環境幾何資訊,有助於對地閣的後續使用。且對特徵較少的環境有更高的準確性和魯棒性。

稠密的影象定位:對當前影象構建半稠密inverse深度地圖,並使用稠密影象配準(dense image alignment)法計算相機位姿。構建半稠密地圖即估計影象中梯度較大的所有畫素的深度值,該深度值被表示為高斯分佈,且當新的影象到來時,該深度值被更新。

kinect融合的方法:該方法通過kinect獲取的深度影象對每幀影象中的每個畫素進行最小化距離測量而獲得相機位姿,且融合所有深度影象,從而獲得全域性地圖資訊

2.3視覺SLAM主要標誌性成果

1.MonoSLAM是第1個基於EKF方法的單目SLAM,能夠達到實時但是不能確定漂移多少,能夠在概率框架下線上建立稀疏地圖。

2.DTAM是2011年提出的基於直接法的單目SLAM演算法,該方法通過幀率的整幅影象對準來獲得相對於稠密地圖的相機的6個自由度位姿,能夠在GPU上達到實時的效果。

3.PTAM是第1個用多執行緒處理SLAM的演算法,將跟蹤和建圖分為兩個單獨的任務並在兩個平行的執行緒進行處理。

4.KinectFusion是第1個基於Kinect的能在GPU上實時構建稠密三維地圖的演算法,該方法僅使用Kinect相機獲取的深度資訊去計算感測器的位姿以及構建精確的環境3D地圖模型。

5.LSD-SLAM是直接的單目SLAM方法,即直接對影象的畫素點進行處理,相比於之前的基於直接法的單目視覺里程計,不僅能計算出自身的位姿,還能構建出全域性的半稠密且精確的環境地圖。

6.ORB-SLAM是2015年出的比較完整的基於關鍵幀的單目SLAM演算法,將整個系統分為追蹤、地圖建立、閉環控制3個執行緒進行處理,且特徵的提取與匹配、稀疏地圖的建立、位置識別都是基於ORB特徵,其定位精確度很高,且可以實時執行。

之後看的論文就鎖定是對應的這六篇論文了。

從其他論文中看到一個不錯的表。(劉浩敏,章國鋒,鮑虎軍.基於單目視覺的同時定位與地圖構建方法綜述[J].計算機輔助設計與圖形學學報,2016,28(06):855-868.)

 

3.SLAM演算法的關鍵問題

3.1特徵檢測與匹配

常用特徵SIFT,SURT,ORB特徵。SIFT特徵具有可辨別性,由於其描述符用高維向量(128維)表示,且具有旋轉不變性、尺度不變性、放射變換不變性,對噪聲和光照變化也有魯棒性,時間複雜度高。SURF特徵具有尺度不變性、旋轉不變性,且相對於SIFT特徵的演算法速度提高了3到7倍。對兩幅影象的SIFT和SURF特徵進行匹配時通常是計算兩個特徵向量之間的歐氏距離,並以此作為特徵點的相似性判斷度量。ORB特徵是FAST特徵檢測運算元與BRIEF描述符的結合,並在其基礎上做了一些改進。ORB特徵最大的優點是計算速度快,是SIFT特徵的100倍。FAST特徵檢測速度就很快,再加上BRIEF描述符是二進位制串,大大縮減了匹配速度,而且具有旋轉不變性,但不具備尺度不變性。BRIEF有種遺傳演算法轉化原理的感覺呢。

在大量包含直線和曲線的環境下,使用點特徵時,環境中很多資訊都將被遺棄,為了彌補這個缺陷,從而也提出了基於邊特徵的視覺SLAM和基於區域特徵的視覺SLAM方法。這兩種論文有必要一看。

3.2關鍵幀選擇

幀對幀的對準方法會造成大的累積漂浮,由於位姿估計過程中總會產生誤差。為了減少幀對幀的對準方法帶來的誤差,基於關鍵幀的SLAM方法被提出。有三種:基於地圖點數量[地圖點?],基於特徵點數量(低於某閾值為新關鍵幀),基於熵相似性。我以前讀到過一篇和幀蒸餾網路相關的論文,還寫過文章,或許這是個可以套用的點。

3.3閉環檢測方法

閉環檢測及位置識別,判斷當前位置是否是以前已訪問過的環境區域。三維重建過程中必然會產生誤差累積,實現閉環是消除的一種手段。有文獻對閉環檢測方法進行了比較,且得出影象對影象的匹配效能優於地圖對地圖,影象對地圖的匹配方法。影象對影象的匹配方法中,詞袋方法由於其有效性得到了廣泛的應用。詞袋指的是使用視覺詞典樹將一幅影象的內容轉換為數字向量的技術。對訓練影象集進行特徵提取,並將其特徵描述符空間通過K中心點聚類方法離散化為個簇。由此,詞典樹的第一節點層被建立。下面的層通過對每個簇重複執行這個操作而獲得,直到共獲得層。最終獲得W個葉子節點,即視覺詞彙。這種特徵逐層提取的感覺有點像CNN。

3.4地圖優化

對於一個在複雜且動態的環境下工作的機器人,3D地圖的快速生成是非常重要的,且建立的環境地圖對之後的定位、路徑規劃及壁障的效能起到一個關鍵性的作用,從而精確的地圖建立也是非常重要的。閉環檢測成功後,往地圖裡新增閉環約束,執行閉環校正。

閉環問題可以描述為大規模的光束平差法(bundle adjustment)問題,即對相機位姿及所有的地圖點3D座標進行優化,但是該優化計算複雜度太高,從而很難實現實時。

另一種可執行方法為通過位姿圖優化(pose graph optimization)方法來對閉環進行優化,頂點為相機位姿,邊表示位姿之間相對變換的圖稱為位姿圖,位姿圖優化即將閉環誤差沿著圖進行分配,即均勻分配到圖上的所有位姿上。

有文獻提出的RGB-D SLAM演算法的位姿圖裡每個邊具有一個權重,從而在優化過程中,不確定性高的邊比不確定性低的邊需要變化更多去補償誤差,並在最後,對圖裡的每個頂點進行額外的閉環檢測且重新優化整個圖。

4.視覺SLAM主要發展趨勢及研究熱點

4.1多感測器融合

相機能夠捕捉場景的豐富細節,而慣性測量單元IMU有高的幀率且相對小的能夠獲得準確的短時間估計,這兩個感測器能夠相互互補,從而一起使用能夠獲得更好的結果。

4.2與深度學習的結合

1.一種基於深度學習的立體匹配方法:用卷積神經網路來學習小影象塊間的相似性,該卷積神經網路輸出的結果用於線性化立體匹配代價。

2.一種通過整合區域性敏感雜湊法和新的語義搜尋空間劃分的優化技術,使用卷積神經網路和大的地圖達到實時的位置識別。

3.一種使用卷積神經網路去學習視覺里程計的最佳的視覺特徵和最優的估計器。

4.一種重定位系統,使用貝葉斯卷積神經網路從單個彩色影象計算出六個自由度的相機位姿及其不確定性。

個人希望研究的方向,有空這幾篇對應的論文也要讀。仔細想想這些確實在解決上述的關鍵問題,特徵檢測,閉環檢測,地圖優化。

 

5.不同種類視覺SLAM的優缺點

5.1單目視覺SLAM

單目相機應用靈活、簡單、價格低。但是,單目視覺SLAM只能依靠獲得的影象資料計算環境物體的方向資訊,無法直接獲得可靠的深度資訊,從而初始地圖建立及特徵點的深度恢復都比較困難,尺度不確定性為誤差來源。

5.2雙目視覺SLAM

雙目視覺SLAM利用外極線幾何約束的原理去匹配左右兩個相機的特徵,從而能夠在當前幀速率的條件下直接提取完整的特徵資料,因而應用比較廣泛,它直接解決了系統地圖特徵的初始化問題。

5.3RGB-D SLAM

深度相機在獲得彩色影象的同時獲得深度影象,從而方便獲得深度資訊,且能夠獲得稠密的地圖,但是成本高,體積大,有效探測距離太短,從而可應用環境很有限。