隨著移動機器人的日益發展,SLAM也有了長足的進步。與激光SLAM相比,視覺SLAM的感知以及重定位能力更強。其次,它的安裝方式比較多元化以及價格低廉,這些優勢使它受到更多的關注,大量視覺SLAM算法被提出。
視覺SLAM框架包括傳感器數據、前端、后端、回環檢測和建圖,如圖1所示。回環檢測是SLAM系統中重要的組成部分,對消除累積誤差有著非常重要的作用,沒有回環檢測,SLAM系統就會等同于一個里程計,在長期大范圍的導航和定位中產生的累計誤差是的不可規避的。
僅僅依靠里程計進行的狀態估計會導致比較嚴重的偏差,錯誤回環信息會使整個算法收斂到一個錯誤的值,盡管也有許多能夠降低錯誤回環影響的圖優化算法,但是這些并不可能從根本上消除回環帶來的影響,并且會給整個定位系統帶來一定計算負擔。所以,回環檢測在后期的地圖優化中起著十分重要的作用。
圖1 視覺SLAM經典框架
目前視覺SLAM回環檢測主要方式有傳統的詞袋模型以及基于概率和詞袋模型的一些改進算法,但是傳統方式依然存在過多的人工干預,對于場景中動態對象的處理不是十分理想,并且計算量較大,響應比較慢。而深度學習技術的出現及發展在回環檢測問題的解決上提供了新的方向。
本文首先對回環檢測的問題進行描述,對目前使用較多的傳統回環檢測方法進行梳理,總結與深度學習及語義分割等技術相結合的回環檢測方法,在此基礎上分析不同神經網絡在公開數據集下的性能對比。介紹目前所使用的公開數據集及相關開源庫。同時,分別從結合深度學習的回環檢測、結合語義分割的回環檢測和加入回環檢測后的后端優化幾個方面對回環檢測目前所面臨的挑戰進行闡述,探討視覺SLAM回環檢測未來的發展熱點趨勢和方向,期望可以對回環檢測技術研究人員提供新的思路。
01 回環檢測問題描述
當移動機器人經過一定時間的運動后回到原點,但是由于隨著時間產生位姿漂移,此時的位置估計值并不是最初值,如果知道機器人是回到原點,把位置估計值拉回去,就可以消除漂移,起到減小累積誤差的作用,在地圖構建上減小誤差,回環檢測就可以起到這樣的作用,如圖2所示,正確的回環信息可以修正里程計誤差,從而得到信息一致的地圖。
圖2 回環檢測校正效果
在視覺SLAM問題中,位姿的估計是一個遞推的過程,當前幀的位姿由上一幀位姿推算,其中的誤差傳遞下去產生累積誤差。
如圖3所示,一般情況下,第五幀位通過第四幀推算出來,當找到與第一幀的關系時,便可以由第一幀推算,此時只有兩個約束的誤差,累積誤差就會減小,像這樣與之前的某一幀建立位姿約束關系就叫做回環。減少約束數因而減小累積誤差。回環檢測就是檢驗這種歷史幀的位姿約束問題。
圖3 回環檢測問題描述模型
02 主流回環檢測方法
2.1 根據路標點先驗信息
回環檢測的一種方式是根據路標點的先驗信息,在檢測時檢索到與先驗信息相同的信息即認為產生回環。但是存在以下兩個缺點:首先,如果使用人工設置的路標點,由于人力不夠會導致路標點數量有限,機器人移動范圍受限;其次,如果裝載GPS裝置,雖然免去人工路標點的設置環節,卻增加機器人的載荷,當機器人在弱GPS信號的環境中定位精度就會受到影響。所以,這種基于路標點的方式使用情況并不多。
2.2 詞袋模型
回環檢測中最常用的詞袋模型是將圖像中的特征處理成單詞,不同的單詞代表不同的特征,對兩張圖片中單詞進行對比,判斷兩張圖片是否相似,為將所有特征類比成一個個單詞,就需要訓練一個詞典,如圖4所示,這個詞典包含所有可能的單詞集合,通過訓練大量的數據可以使字典通用性更高。
圖4 詞袋模型模型實現過程
2.2.1 特征提取與描述
在視覺SLAM系統中,人為設計特征提取的方法包括SIFT、SURF和ORB算法三大類。
SIFT算法最早是由LoweDG提出的,由于它能夠在空間尺度中找到極值點,從而在實驗中提取的點具有尺度、位置、及旋轉不變的特點。
SURF(Speeded Up Robust Features)算法是由HerbertBay等人提出,此算法是SIFT算法的一種改進算法,運行效率更加高效,但是,尋找主方向步驟很大程度上取決于局部區域像素的梯度方向,即使偏差角度不大,只要主方向不準確,特征匹配的誤差就會比較大,導致匹配出錯。
Galvez-Lopez D提出ORB(FAST+Brief)也比較具有代表性,它的運行效率是SIFT的十倍,是SURF的一百倍,在提取FAST特征點時比較簡單,選擇一個以3為半徑的像素點作為中心點,并逐一比較中心點周圍的十六個像素點,如果灰度差異值大于12時,當前中心點判斷為特征點。除了局部特征方法外,全局圖像描述符GIST也被用于視覺SLAM中。表1總結歸納幾種特征提取方式。
表 1 特征提取方式對比表
2.2.2 聚類算法及相似性判斷
在回環檢測中,傳統的方法詞袋模型首先訓練一個詞典,之后需要產生一個數據庫,用來記錄查詞典時所用的單詞。訓練詞典即特征聚類的過程,假設所有的圖片中需要提取N個特征,可以聚類成N/1000個單詞,用這N/1000個單詞來匹配,每個特征需要比較N/1000次才可以找到對應單詞,為解決效率不高的問題,字典在訓練過程中構建一個樹,有k個分支,深度為d,根節點是粗分類,越下層分類越細,直至葉子結點。
利用k-d樹進行特征匹配,速度得到提升,并將時間復雜度降低到對數級別。詞袋模型核心內容就是使用K-means聚類算法,此算法比其他聚類算法更簡單,執行速度更快,可以用于很多常規的數據集,是一種硬聚類算法,在無監督學習實驗中廣泛使用。
傳統詞袋模型算法中,相似性判斷通常使用詞頻-逆文檔頻率(TF-IDF,Term Frequency–Inverse Document Frequency)算法,其中,TF指的是詞頻,表示在圖像中提取的詞匯的頻率,頻率越高,識別度就越高,IDF指的是逆文檔頻率,它表示在圖像中提取的詞匯出現頻率越低區分度越高。
2.2.3 實驗評估 傳統的詞袋模型在牛津大學公開數據集NewCollege以及CityCenter上的時間性能評估及相關信息如表2所示,圖5展示了兩種數據集利用詞袋模型方法下的準確率—回環率曲線對比。
表2 詞袋模型在不同數據集下訓練時間表(單位:秒)
圖5 詞袋模型進行回環檢測在不同數據集下的PR(準確率-回環率)曲線
2.3 基于詞袋模型和概率的改進算法
最常用的基于詞袋模型的方法仍然存在一定的局限性,這種方法將不同位置的相似場景錯誤判斷為同一場景,針對這個問題,一些基于詞袋模型和概率的改進方法也被提出。
根據概率生成一個概率分布,機器人回到地圖上此點的可能性大小是通過每個點的概率,貝葉斯模型是最常使用的模型。
03 傳統回環檢測算法改進
在回環檢測階段,為了將高維度的圖片進行實時性的比較與匹配,采用了提取圖像特征點及其附屬描述子的方式,并對兩幀圖像間描述子的相似度進行度量,與預設閾值進行比較,高于預設值,則判斷兩幀圖像相似,最終判斷移動機器人回到歷史時刻位置。
特征描述子如SIFT,SURF描述子均為浮點數編碼的描述子,比較相似度時采用2范數。特征描述子如BRIEF,ORB描述子等為二進制數編碼的描述子,比較相似度時則使用漢明距離。二進制描述子相較于浮點型描述子,占用更少的內存資源,且計算量較小。此外,BRIEF等二進制描述子比浮點數描述子的更容易訪問,具體如表3所示。圖像中的特征描述符得到了很好的利用就可以準確判斷回環是否產生,但是這是以原始特征順序和空間位置為代價的。如果處在類似的位置環境,但是空間排列順序不同,很容易造成回環檢測算法的失效,導致同時定位與建圖失敗。
因此,想要對傳統方式進行改進,就得使生成的新的單詞具備空間位置信息及其他附屬信息,并對新的二進制描述子的構成方式做出改進,以此提升回環檢測的準確度。
表3 常用特征描述子對比
04 深度學習在回環檢測中的應用
利用傳統算法,可以在視覺SLAM回環檢測中得到較好的準確率和召回率,但是存在訓練時間較長、過于依賴操作者經驗等問題。目前,計算機視覺與深度學習的相互結合,比如實例分類、對象檢測、行為識別等方面都有不錯的效果,執行效率以及準確率都有巨大的提升,深度學習技術的快速發展為回環檢測提供新的解決方法,能夠很好的解決目前回環檢測中的一些問題。
深度學習的一個重要用途就是可以對數據進行識別以及分類,將傳統方法與深度學習結合,或是直接將深度學習技術應用到回環檢測上,從而得到提出一種全新的方法。目前相關的研究分成兩個方向,主要是學習圖像特征的方式有區別,一種利用CNN神經網絡,另一種利用自編碼器進行非監督式的學習,接著從特征的相似性進行回環的判斷。
與傳統詞袋模型算法相比,利用深度學習的相關方法不需要人工提取特征,可以避免人工干預問題。并且因為深度學習可以獲得圖片更加深層的特征,可以更好地應對光照以及其他環境變化等外界因素,但是仍然需要更多相關知識的支持,為了獲得更好地回環檢測性能,深度學習與SLAM系統的結合還需要進一步開發。如表4所示,分別從物理意義、特征提取能力、設計流程、泛化能力、發展趨勢等幾個方面對傳統詞袋模型與利用深度學習的回環檢測算法進行了優缺點的對比。
表4 傳統詞袋模型與基于深度學習的回環檢測算法對比
05 回環檢測現有問題及未來發展方向
5.1 回環檢測存在的問題
傳統的回環檢測算法,在準確率和回環率上都有不錯的結果,但仍存在過多的人工干預、魯棒性不高、訓練時間長、過于依賴操作者經驗等問題。對于場景中的復雜情況,提取圖像描述子時,光照、天氣等外界因素被忽略了,同時圖像中物體的相對位置信息也是很重要的影響因素,將這些信息很好的利用起來就可以提高回環檢測的性能。
近年來,在計算機視覺和深度學習發展的推動下,回環檢測已經取得了很大的進步,但是這些算法在不同環境下的實時性以及不同情況下的泛化能力還需要進一步研究,例如基于深度學習的算法依賴大量的標記數據集且依賴當前環境與數據集之間的相似性;在信息特征的提取仍然缺少更加清晰的指導,訓練參數的調整也比較依賴以往積累下來的調參經驗,目前使用的CNN特征大多是由圖像分類網絡生成,如何訓練適用于回環檢測的專用CNN網絡仍然是一個亟待解決的問題。
5.2 回環檢測未來的發展方向
解決上述問題需要在相關領域進一步發展,更好地解決目前回環檢測中仍然存在的問題,需要借助更多的相關知識,比如深度學習、目標識別以及語義分割等。
(1)基于深度學習的回環檢測
近年來,由于深度學習的推動,目標檢測技術也取得了進步,這有助于提高移動機器人的動態場景適應能力。目標識別分開的方法和傳統的潛在區域特征提取方法不同,現在的目標識別算法為了提高目標識別的效率和準確率采用在深度學習框架下將兩部分整合在一起。Hou等詳細評估了目標識別中常用的物體潛在區域提取方法在回環檢測中的應用,他發現回環檢測中常用的對象識別方法以及使用神經網絡生成標記區域的方法均受訓練數據集的影響,這仍然存在一定的問題。
(2)基于語義分割的回環檢測
目前語義視覺SLAM的相關研究成果大致為視覺SLAM輔助語義和視覺SLAM語義輔助兩大類,前者又稱為語義建圖,大多基于卷積神經網絡實現,將一些語義信息集成到SLAM的研究中,以滿足復雜場景的要求。大多是利用提取得語義信息概括局部特征,與全局的圖進行比較。目前的語義SLAM研究處于初步發展階段,但前景廣闊。語義分割技術與深度學習結合后獲得了很大的提升,語義SLAM的難點在于如何設置誤差函數,如何將觀測值設置為深度學習的檢測結果和分割結果,并一起融入SLAM的優化問題。解決這些困難一定會給回環檢測問題帶來新的突破。
(3)加入回環檢測的后端優化
回環檢測的最終目標是更好地進行后端優化。在設置參數時,應該結合后端優化算法。通過找到更多正確的回環,提升整個系統的優化效果。否則,錯誤的回環可能使優化結果收斂到錯誤的結果,造成整個系統的失誤。傳統系統性能優化指標主要是算法的準確率,但在一些新的后端優化方法中,保證準確率的同時盡量提高召回率,在優化階段可減少錯誤回環的影響。這可以幫助SLAM系統設計出更好的后端,從而達到更好的地圖構建,有助于更好地構建新的SLAM系統。
06 結論
回環檢測對于整個SLAM系統至關重要,傳統的詞袋模型可以在一般情況下得到較好的性能,但是仍然存在過多人工干預等問題。在計算機視覺與深度學習技術的支持下,基于深度學習的算法有更好的性能,已經突破傳統詞袋模型,但是在實時性以及復雜場景下的情況仍然需要進一步研究,這樣可以使回環檢測的算法更好地應對場景的外觀變化。
為了更好地解決目前回環檢測中存在的問題,需要融入更多的相關領域的技術,深度學習、目標識別以及語義分割等技術的融入會給回環檢測帶來新的思考:
1)利用深度學習解決回環檢測問題,用專用的網絡來進行圖像提取,這樣可以檢測出關鍵幀的深層特征,但是在信息特征的提取缺少較為清晰的指導,訓練參數的調整依賴以往積累下來的調參經驗。
2)加入語義信息的回環檢測,對構建語義地圖、利用更高級的特征進行回環檢測、節省地圖的存儲空間具有重要作用。
3)將回環檢測問題與后端優化問題結合起來考慮達到更好地效果,使整個系統更加完整,這將是視覺SLAM未來發展的新方向。
審核編輯 :李倩
-
移動機器人
+關注
關注
2文章
757瀏覽量
33546 -
SLAM
+關注
關注
23文章
419瀏覽量
31789 -
深度學習
+關注
關注
73文章
5493瀏覽量
120998
原文標題:移動機器人視覺SLAM回環檢測原理、現狀及趨勢
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論