視覺同時定位與建圖(vSLAM)
Visual simultaneous localization and mapping: a survey
內容翻譯自以下論文,不當之處敬請指正。
Fuentes-Pacheco J, Ruiz-Ascencio J, Rend, et al. Visual simultaneous localization and mapping: a survey[J]. Artificial Intelligence Review, 2015, 43(1):55-81.
相機校正
線下校正:受到環境的影響,溫度、溼度
線上校正
單目SLAM:bearing-only SLAM,延遲與非延遲
追蹤多目標的顯著特徵
1. 假設相機運動平緩並且顯著特徵能夠匹配;使用特徵提取演算法和匹配技術;當存在紋理或者模糊時將會不精確,解決方法:使用關鍵幀或者分析實時視覺追蹤問題
2. 假設探測的環境是靜止的並且只包含靜物和剛體;大部分環境中包含運動的人或物體。如果不考慮此類問題將會造成錯誤地匹配和不可預測的錯誤。
3. 世界是視覺重複的。現實世界中存在大量的相似紋理,例如重複的建築、植物枝葉、牆的磚或石頭等。還有就是交通燈等物體將會在郊區環境重複出現,這使得在大型區域識別出之前探測過的區域並進行SLAM是困難的.
顯著特徵提取
顯著特徵(salient features)與路標(landmarks)的區別
* 顯著特徵描述的是二維影象環境的一塊區域
* 路標是三維現實世界的一塊區域
顯著特徵是最容易被定位的,由人為放置的路標產生。路標是為了在導航中產生救急的顯著特徵而被有意放置。例如放置在牆或地板上的方塊或者圓形。這些標誌的形狀可以預先知道,並且容易探測,但是環境必須在系統初始化之前被預先佈置。自然界的路標是在居住環境中出現的標誌。對於室內環境通常會使用門或窗的拐角作為自然路標,室外環境通常使用樹幹、區域或者興趣點。對於給定探測器,興趣點是有著容易和其他點區分的領域的點。
優質特徵的特質:
* 顯著性(容易提取)
* 精確性(可以使用精確度衡量)
* 旋轉、轉換、伸縮和光照的不變性
優質的路標應該在不同的三維視角下有著相似的形狀。顯著特徵提取過程由兩個階段組成:
* 探測:處理影象,從中得到大量顯著元素
* 描述:根據影象的視覺外觀構建特徵向量
描述器對位置和方向的不變性將會提高影象匹配和資料融合過程的效率。
4.1 探測器
視覺、自然特徵:角點、興趣點、線段和區域。興趣點的選擇極大依賴於機器人工作環境。
有大量的顯著特徵探測器:Harris角點探測器;Harris-Laplace和Hessian-Laplace點探測器以及它們仿射不變版本Harris-Affine和Hessian-Affine;SIFT使用的DoG(Difference of Gaussians,高斯微分);MSERs(Maximally Stable Extremal Regions,最大穩定極值區域);FAST (Features from Accelerated Segment Test);SURF (Speeded Up Robust Features)中使用的Fast-Hessian。Hessian-Affine 和 MSER有最優的效能,MSER是最魯棒的在視角和光照改變時。
由於角點的不變性特徵和它們在視覺領域的廣泛應用,大量vSLAM系統使用角點作為路標。但是Eade和Drummond使用線段作為路標,並且能夠融合高度幾何資訊地構造地圖。作者聲稱對於追蹤和SLAM,邊是好的特徵,有著光照、方向和伸縮不變性。使用邊作為特徵似乎是好的,因為對於相機突然移動而造成的模糊,邊受到的影響較小。然而邊提取困難、難以匹配。
4.2 描述器
物體識別中最常用的描述器是直方型SIFT描述器,基於顯著特徵點領域的區域性特徵,獲取128個分量的向量。PCA-SIFT是SIFT的變種,其主要思路是得到一個特別的、魯棒的、並且有著更少分量的SIFT,它使用PCA(Principal Component Analysis technique,主要成分分析技術)技術減少分量數。直方圖型描述器具有轉換、旋轉、伸縮不變性,和對光照和視角改變的區域性不變性。
SIFT不能保證高的穩定性,這意味著攝像頭在某個視角探測到的路標將會在攝像頭輕微移動之後消失。當前有很多SIFT演算法的變種提高了SIFT演算法的效能,例如:ASIFT,BRIEF,ORB(一種快速的二值描述器基於BRIEF,具有旋轉不變性和抗噪性);PIRF(Position-Invariant Robust Feature)和GPU-SIFT(SIFT在GPU上的實現)
5 影象匹配和資料融合問題
影象匹配:在一副圖片中搜索每個元素,並且將其與另一幅圖片中的對應。匹配演算法可以分為兩種:短基線和長基線。
5.1 短基線匹配
基線是劃分用來捕獲影象的兩個攝像頭的光學中心的線段。當影象從差別較小的視角被捕獲時,影象中相應點幾乎有相同的外形和位置,減少了問題的複雜度。在這種情況下,這個點可以使用矩形視窗的一組取樣點的強度值來描述。這個強度值可以通過相關性的進行衡量,如互相關、差的平方和、差的絕對值和,或者其他的。存在大量的公式衡量兩個兩個視窗的相似性。 normalized crossed correlation (NCC)是一種最好的度量方法之一,歸一化使這種方法有著亮度的不變性。homography單應性與NCC結合,使得NCC有著視角的不變性,使攝像頭能夠更自由地移動。但是NCC的一致性使其容易受到假正與假負樣本的影響。重複的紋理的圖片區域,搜尋區域的兩個或多個點將會有強響應。
短基線相關性,考慮搜尋區域的維度和視窗的維度都是重要的,否者將會出錯。例如,較小的視窗可以加快速度,但是會出現假的匹配,大的視窗會消耗過多的時間。通常建議使用9x9、11x11的視窗,並且視窗應包括角點,因為影象在交點處有著兩個或者多個方向梯度,同時有利於相關性的求解。幀與幀之間的短基線匹配不需要使用描述器,但是一旦追蹤失敗,描述器將會很有幫助。
短基線匹配的缺點是計算量大並且對噪聲敏感,例如對影象座標的錯誤度量會導致不同視角之間距離變小。然而,短基線還是可以實現對視訊中相應特徵的精確追蹤。
長基線匹配
使用長基線匹配時,影象出現尺寸或視角方面的巨大變化將會導致影象中的一個點移動到另一個圖片中的任何位置。這產生了一個困難的關聯問題。一個點領域的點將會由於視角和光照的變化而打亂,相關性度量不能得到較好的結果。
選擇相關性的最簡單方法是對比兩幅影象中所有特徵(暴力方法)。但是這種方法花費的時間會隨著提取特徵的數量而平方增長,這對於實時的應用中是不可取的。
最近,已經提出了大量某些變換不變性長基線匹配演算法,許多演算法使用對探測的特徵提取描述器,計算描述器之間相似性並且使用資料結構來快速而有效地搜尋匹配對。
不相似性的度量方法有很多,如尤拉距離、曼哈頓距離、卡方距離等等。資料結構可以是平衡二叉樹、雜湊表。特徵相關度量方法:
* 距離臨界值:距離小於臨界值的兩個特徵是相關的
* 最近領居:當距離相同時,選擇最近領域的特徵
* 最近鄰居距離比:與最近鄰居類似,臨界值為當前畫素與第相似特徵的距離比。
多義性:第一幀中的一個特徵被匹配到第二幀中的多個特徵,解決方法:means of relaxation techniques和considering
collections of points
圖形約束可以加速匹配過程。極限約束:x與y是對應點的必要條件是:y處於x的極線上。通過這種方式,全域性的匹配變為一條線的匹配。
其他研究:使用學習策略確定特徵的相似度。對相關性的定義看為分類問題,似乎是可以的。但是實時SLAM的特殊情況下,這似乎是不準確的,因為必須使用充分的資料進行線上訓練。同樣有論文提出了線上訓練的快速方法可以應用於SLAM之中。一些論文提出了不同的影象相關性度量方法,點的相似關係使用影象中點的均值來度量。兩幅圖片中相同或者相似的影象被認為是相關的。相同地,提出了一種基於影象的的迭代匹配演算法。但是,相關的研究還是有限的,不能解決實時問題,無法處理了時間閉塞問題。
使用高質量的描述器或是不同的相似度量方法並不能避免錯誤匹配問題。如果將這些匹配用於SLAM中將會對攝像機定位和建圖產生重要影響。因此使用魯棒性的估算器如RANSAC (Random Sample Consensus)、PROSAC (Progressive Sample Consensus)等是必要的,它們能夠自動處理錯誤匹配。其主要不同之處是估算模型質量的的方法。魯棒性的估算器通過獲取到的異常值來估算模型的質量。PANSAC估算異常值的全域性關係,同時對資料進行分類(是否與全域性關係相容),這種方法可以容忍大量異常值,已被廣泛使用。
另一種估算器使用從幀到幀間的貝葉斯技術,被成為動態匹配。動態匹配演算法對影象中最可能找到真正點的部分進行搜尋,減少了離群值的數量和影象處理運算元量。這個演算法基於夏農資訊理論原理進行指導性搜尋。動態匹配顯示出了很好的結果對於快速相機移動。這種技術的侷限性是當特徵增加時,拓展性較弱。實時無損的處理數百個特徵。
衡量匹配演算法的效能的方法是通過ROC curve(means of the Receiver Operating Characteristic curve)。這是一種圖形化表示包括計算真正、假正、假負、真負,計算正的預測的值和精確度。
* 真正:正確匹配的數量
* 假負:沒有被正確檢測到的匹配
* 假正:錯誤的匹配數量
* 真負:正確被拒絕的非匹配。
某些相關文獻中出現如下詞語:
* 精確度:正確匹配的數量除以被發現匹配的數目
* 召回率:正確匹配的數量除以期待正確匹配的數量
5.3視覺SLAM的資料融合
視覺地理識別技術(Visual Place Recognition techniques)
資料融合有如下特殊情況:閉環檢測、綁架的機器人(攝像頭)、多會話、協作建圖
5.3.1 閉環檢測
閉環檢測:識別任意長度的環狀移動中已經過的地方。這個問題是大型SLAM和錯誤恢復的最大障礙。
感性走樣(perceptual aliasing):環境中不同的兩個地方被識別為相同。使用攝像頭作為感測器,但是環境中出現重複的特徵。例如:走廊、相似的建築元素、或者灌木叢。一個好的閉環檢測演算法不能產生任何的假正,並且儘量少的假負。
閉環檢測的方法被分為三種:地圖到地圖、幀到幀、幀到地圖。主要區別為融合資料時的資料來源(地圖空間或者影象空間)。然而理想的是能夠結合三種的優勢構建一種系統。閉環檢測對於任何SLAM都是重要的問題。
【】中使用相似性矩陣來檢測捕獲影象中可能的匹配對來檢測閉環,重複和視覺混淆的影象。【】提出了一種特別的方法去從追蹤失敗中恢復,並且在單目SLAM中進行實時閉環檢測。他們同樣提出了一種GraphSLAM的系統,每個接點儲存著路標並且儲存相關接點之間的裝換關係的估算值。為了能夠檢測失敗或者閉環,他們的模型看起來BoVW(Bag of Visual Words),尋找獲取影象中相似的部分。【】中提出了一種使用貝葉斯濾波器優化BoVW的閉環檢測方法,其中獲取的每幀都會計算經過的可能性。【】中提出了一種值使用影象資料識別位置的可能性架構。通過學習生成的外觀模型,他們聲稱不僅可以計算兩個觀察物的相關性,同樣可以計算他們屬於同一位置的可能性,因此,他們計算獲取位置的概率分佈函式(pdf)。最後,【】提出了一種新的拓撲矩陣表示世界的方法,基於共可視性,簡化資料的關聯,提升識別效能。
閉環檢測為了能夠達到100%的精確度。這是因為一個假正可能會導致建圖中無法挽回的錯誤。在SLAM的上下文中假正比假負更可怕。假負減少了召回率但是對精確度沒有影響。因此閉環檢測器的衡量標準是精度為100%下的召回率。
5.3.2 機器人誘拐
機器人誘拐問題:在沒有之前位置資訊的情況下,確定機器人的位置。這種情況可能發生如果機器人被放到一個已經建圖的區域,在不知道放置過程的前提下。或者當機器人由於遮蔽區域出現盲目移動,空間位置感測器故障或是攝像頭的快速移動。
【】提出一種能夠容忍相機位置的不確定性和由於連續誤差錯誤的移動或遮蔽導致的追蹤錯誤。這個問題包括生成一個基於SIFT的描述器在不同的解析度來保證資料關聯的魯棒性。除此之外,基於哈爾小波的低階係數索引還被用到。【】提出一種重定位模組來檢測SLAM系統,檢測追蹤錯誤,在路標地圖中確定相機位置;一旦狀態變好就重新進行最終。重定位被執行通過路標識別使用隨機樹分類器並且使用特徵收割技術進行線上訓練。為了找到相機的位置,通過當前幀和地圖中的地標來生成候選的位置。三種潛在可能匹配中進行選擇。並且通過三點演算法計算集合中所有的相關位置。使用RANSAC,通過在影象中其他相關性來計算位置。如果一個位置的產生一個較大的“常識”,這個位置就被認為是正確的。
5.3.3 多會話協作建圖
多會話協作建圖:將不同時間機器人收集的兩個或多個地圖或者不同機器人收集的地圖進行融合,
地標測量的方法:最近領域、時序相容最近領域、結合相容、Joint Compatibility Branch and Bound。相似:地圖可用、機器人初始化良好。
6 vSLAM問題的解決方法
解決vSLAM問題的技術主要分為3類:
* 經典方法:基於概率濾波器,系統儲存著機器人姿態和路標位置的概率性代表
* 運動結構(Structure from Motion ,SfM):
* 仿生技術:
6.1 概率濾波器
大部分的SLAM技術基於概率技術。有the Extended Kalman Filter (EKF,拓展卡爾曼濾波)、Factored Solution to SLAM (FastSLAM,SLAM因素分解)、Maximum Likelihood (ML,最大似然法)和Expectancy Maximization (EM,期望最大化)。前兩種技術是最常用的,它們提供了最小化元素和地圖的不確定性。對於小區域成功,大區域和閉環檢測能力有限。
增量的構建地圖,隨機地圖、SLAM問題的精確解決方法使用EKF。包含元素位置和地圖元素的狀態向量。對觀察和測量的非線性模型進行迭代計算。通過概率密度函式(pdfs)表示不確定性。迭代的均值和方差接近於最優解。EKF對錯誤關聯非常敏感,一個錯誤的測量都會導致整個濾波器的發散。EKF計算複雜度是路標數量的二次方,成為大型建圖的主要困難。解決計算複雜度的文獻:atlas Framework、Compressed Extended Kalman Filter (CEKF) (Guivant 2002), Sparse Extended Information Filter (SEIF) (Thrun et al. 2002), Divide and Conquer in O(n) given by Paz et al. (2008) or Conditionally Independent Submaps (CI-Submaps) developed by Piniés and Tardós (2008).
FastSLAM使用Rao-Blackwellized粒子集表示元素姿態分佈,粒子代表元素的軌道,使用EKF進行建圖,假設資料關聯並且服從概率分佈。這種演算法包括粒子生成過程和重取樣,以防止粒子退化。這種演算法的計算複雜度是對數級的,O(plogn)其中p為粒子數、n為路標數。無法確定能夠精確代表元素位置的粒子數,粒子數過多消耗計算時間和記憶體,過少則會導致不精確的結果。
MonoSLAM實時單目概率系統,能夠產生3D矩陣點雲圖,速率30幀每秒。考慮相機6個自由度的移動,位置(x,y,z)方向(pitch,yaw,roll)。由於使用EKF來計算資料只適合室內環境。
MonoSLAM使用線段和角速度建立運動模型。產生不相容,無法正確處理瞬間位移,限制了攝像頭的移動。兩幀之間顯著特徵的移動非常小時才能精確追蹤。
優化方案:拓展運動模型,200Hz,考慮加速度、線速度和角速度。只能在幾秒內保持實時,地圖規模和計算量迅速增長。
維持大型地圖,使用粒子濾波器。每幀能夠追蹤30個特徵,保持數千個路標。
MonoSLAM戶外解決方法,使用層次建圖技術和基於Geometric Constraints Branch and Bound (GCBB)的資料關聯技術,能夠進行大型閉環檢測。
單目vSLAM的主要問題是初始化路標,單次觀測無法獲取深度。延遲初始化技術, 反深度引數化,能夠在EKF-SLAM系統中無延遲的進行路標初始化。
6.2 運動構圖
運動構圖(Structure from Motion (SfM))能夠從一系列影象中計算場景的3D結構和攝像頭位置。SfM演算法通過在當前幀中提取顯著特徵,匹配並進行非線性優化(bundle adjustment,BA)來減少重對映誤差。SfM對攝像頭的定位精度高,但是不一定能產生相容地圖。使用SFM進行精準定位。
視覺測距包括同時估算相機姿態和3D世界的特徵。視覺測距能夠處理每幀中數千的特徵而概率化技術只能處理少數。
Parallel Tracking and Mapping (PTaM)平行追蹤與建圖,基於關鍵幀,兩個並行執行的執行緒。第一個執行緒進行大量特徵的魯棒性追蹤,第二個使用BA技術產生3D點雲圖。
FrameSLAM and View-Based Maps,基於骨架的地圖表示,包括幀間非線性的約束(而不是獨立的3D特徵)。作者使用有輪機器人的雙目裝置,結果顯示了長距離、狀態改變下(穿過郊區環境)的優良效能。
為了提高單目SLAM系統的定位精度,提高特徵數量而非幀的數量,同時BA優化技術要優於濾波器。然而他們論證了濾波器是有用的,在高度不確定的環境中。理想的SLAM系統需要結合SfM技術和概率濾波器的優點
6.2 仿生模型
RatSLAM:使用海馬模型,齧齒動物定位和建圖技術。使用單攝像頭,能夠生成複雜環境的相容、穩定地圖表示。實驗顯示了室內外環境的優良效能。能夠閉合多於51個環、高達5KM在一天中的不同時刻。大量的RatSLAM系統被研究,其他生物的仿生研究、蜜蜂、螞蟻、靈長類、人類。
【】中測試和螞蟻的行為為了分析螞蟻如何通過視覺路標進行導航而非資訊素。旨在理解螞蟻如何使用視覺資訊進行導航、說明了該方法是可行的並且可以用於機器人實現。
7 觀測世界的表示
地圖是當今活躍的研究領域,空曠和障礙物在地圖中通過幾何的均值被表示。有幾種地圖表示,大致分為矩陣表示和拓撲地圖。矩陣地圖描述環境的幾何特性而拓撲地圖描述不同位置的關聯。
矩陣地圖分為障礙網格圖和路標圖。網格圖以胞格離散化環境,對空曠和障礙物進行建模,包含2D,2.5D,3D的資訊。路標地圖確定並儲存著某個顯著特徵的3D位置。
路標圖中只有孤立的路標被描述,因此記憶體資源和計算消耗比較少。對避障和導航不理想。合適元素姿態比地圖更加重要的情況。
拓撲地圖表示環境通過標誌點和弧邊,與圖類似。基於圖的表示簡化了地圖拓展問題。對地圖進行全域性優化,減少區域性誤差。拓撲圖缺少矩陣資訊,不能用於導航。【】提出了結合矩陣和拓撲資訊在一個相容的模型中。
最有前景的環境表示方法是基於圖的表示。有大量問題需要克服。檢測到錯誤位置時如何對圖形進行修正,或者全域性地圖的生成。