1. 程式人生 > >高仙技術家|SLAM(二)——完善迴環檢測的視覺SLAM

高仙技術家|SLAM(二)——完善迴環檢測的視覺SLAM

高仙技術家|SLAM(二)——完善迴環檢測的視覺SLAM
高仙是全球較早從事自主移動技術研發與應用探索的機器人公司之一。成立至今,高仙不斷打磨並完善了機器人全場景移動技術,並通過全球超過50+機型、1萬+機器人終端在5000+行業的落地積累,實現了從室內到室外等不同環境、從清潔到安防等不同業務領域的廣泛應用。高仙機器人全場景移動技術給越來越多的機器人賦予了自主移動必需的“軀殼”、“大腦”和“靈魂”。
在上篇高仙技術家文章中,我們介紹了鐳射SLAM方案,並在文章末端強調了閉環檢測的重要性。在閉環檢測的過程中,單一的鐳射檢測方法在現實應用中存在著侷限性,想要高效得到全域性一致的高精地圖,基於視覺的迴環檢測必不可少。
迴環檢測的定義和作用
在SLAM系統中,感測器資料噪聲和演算法本身都會導致前端估算的載具位姿存在一定的誤差,該誤差會隨著時間不斷積累.最顯著的情況下,當機器人完成一個環形的運動之後,SLAM演算法計算出的路徑會由於積累誤差而無法完全閉合。如圖1所示, 載具繞建築物一圈之後, 當前位置和起始位置的牆(分別用藍色和紅色虛線標出)沒有完全重合。
在這裡插入圖片描述


圖1 未經過迴環修正的地圖

對於該問題,你是否已經有了一些想法呢? 其實很簡單,如果能讓載具知道已經到了"老地方",然後將"老地方"的資料和當前資料關聯起來,就可以通過建立約束關係和後端優化來消除累積誤差,結果如圖2所示。那麼,迴環檢測的任務就是上述解決辦法的第一步,即檢測是否到達了"老地方"。至於為什麼叫回環檢測,也許是因為這種情況一般發生在載具走了一個環狀的路徑。

在這裡插入圖片描述
 圖2 經過迴環修正後的地圖

迴環檢測的方法
迴環檢測本質上說是一個匹配問題, 只要能達到目的,可以有非常多的解決辦法。因此,試圖對迴環檢測方法進行分類難免以偏概全,這裡簡單作出歸納,並且不侷限於視覺和鐳射,以供參考[1][2]:
地圖與地圖的匹配
特徵點與特徵點的匹配
特徵點與地圖的匹配
影象與影象的匹配
需要說明的是,這裡的"影象"指影象全域性資訊,所謂的影象到影象的匹配也是在全域性資訊層面的匹配。其中的地圖與地圖的匹配,多應用於鐳射SLAM和RGBD SLAM。而所謂的特徵點, 指從影象或者鐳射資料中提取的具有代表性的關鍵點。
下面介紹兩種具有代表性的迴環檢測方法:
DBOW
熟悉視覺SLAM的讀者應該不會對DBOW陌生, 它是一個基於詞袋模型(BOW,BagofWord)的迴環檢測開源框架,屬於上述方法中的特徵點到特徵點的匹配方法[3][4]。DBOW使用詞袋模型對影象特徵點進行了分類,在匹配時只需要和屬於同一類的特徵進行匹配就可以起到加速的作用。這裡使用圖的方式對其演算法框架進行梳理,一方面可以幫助讀者理解迴環檢測的過程,另一方面是因為許多視覺迴環檢測方法都與之類似:
在這裡插入圖片描述

圖3 DBOW演算法框架
可以看出來,DBOW演算法通過了多層篩選,以保證結果的可靠性。同時,其使用機器學習方法進行特徵分類,通過大量的資料訓練,保證了分類的準確性。 但是,萬事都有兩面性,過多的判斷和篩選增加了演算法的複雜性。比如,演算法中有很多引數需要使用者根據經驗去設定,對於不同的場景又需要不同的引數,這就增加了使用的難度。再者,訓練的詞袋模型不可能適用於任何場景,對於某些特定場景,需要特定的場景資料進行重新訓練。而許多學術論文中所提出的詞袋模型載入時間過長問題,當裝置運算量足夠,且不需要頻繁啟動的情況下,其實可以忽略。
目前GITHUB上DBOW,DBOW2和DBOW3可供大家使用。其中,最新的DBOW3對DBOW2進行了加速方面的改進。

HALOC
HALOC是另外一個優秀的迴環檢測開源框架, 屬於影象到影象的匹配,當然在篩選過程中也使用了特徵點與特徵點的匹配[1][5]。
影象與影象之間的匹配, 是在影象全域性資訊層面的匹配, 即直接判斷歷史影象是否和當前影象資料相似。然而, 直接對比影象的每一個畫素是一個相當複雜和耗時的過程。理所當然的思路是通過某種統計方法對整個影象的資訊進行統計或者說壓縮, 再進行對比。常見的方法有:
基於影象外觀的統計方法。如紋理資訊,顏色資訊,頻域資訊,影象矩陣分解等。
基於特徵點的統計方法。
比如,可以統計影象某個或多個顏色通道的直方圖, 利用直方圖的相似度來判斷整個影象是否相似。
HALOC演算法是一種基於特徵點統計的全域性影象匹配方法。簡單來說,就是統計影象中特徵點的資訊,作為該影象的標籤。在特徵檢測時,就可利用該標籤進行快速匹配。那麼,如何得到影象標籤呢? 其實,所謂的標籤,就是一個向量,該向量是對影象整體特徵資訊的濃縮,如下圖所示:
在這裡插入圖片描述
圖4 影象標籤生成過程
如上圖所示,將影象當中的所有特徵的描述子按照一定的順序進行排列,組成一個特徵描述子矩陣,將該矩陣進行壓縮之後就可以得到一個數組形式的影象標籤。由此,該標籤足夠代表影象的總體特徵資訊,同時匹配速度也非常快。在此基礎上,進一步進行類似於DBOW的多層篩選,即可得到最優的迴環匹配結果。
相比於DBOW演算法,HALOC演算法不需要詞袋的訓練和載入,框架上也更加簡答易用。

高仙如何實施迴環檢測
高仙是全球最早從事SLAM演算法研究的公司之一。多年以來,得到了業界的廣泛肯定,並獲得了相關領域的多項殊榮和獎勵。這些都離不開每一位研究者對創新的不懈追求,和紮根現場,落地為本的求是精神。通過不斷地積累,高仙已經建立了一套完整和可靠的SLAM技術方案,融合了20多種感測器,並且通過實時的資料反饋、測試反饋、模擬反饋形成完整的開發閉環,保證了演算法的效能。
高仙的SLAM方案融合了鐳射和視覺SLAM方案。其中,鐳射感測器提供的幾何資料精度高,某些鐳射型號能提供的反射率資訊更能幫助提取場景的特徵,在此基礎上,影象資料又提供了足夠的顏色特徵,便於完成精準的place recognition。在迴環檢測成功後,使用鐳射和視覺共同篩選過的穩定幾何特徵可以進一步能夠建立structural constraints,優化地圖和位姿。在閉環檢測上,高仙將視覺迴環檢測方法和鐳射檢測方法結合起來,形成了一套準確並且高效的迴環檢測方案,並在不同場景中進行了大量的測試,確保了演算法的魯棒性。最終, 達到全域性一致的高精地圖。
在這裡插入圖片描述
圖5. 迴環檢測效果圖

在這裡插入圖片描述

圖6. 迴環檢測演算法在多個場景中的測試結果

最後,作為一個剛從學校踏入社會的應屆生,本人由衷地感謝高仙對我的培養和認可。入職以來,接觸了視覺SLAM,鐳射SLAM,以及感測器驅動的開發等工作。通過在實踐中不斷地打磨自己,增強了自身硬實力。同時,自動駕駛領域的快速發展,也讓我體會到站在浪潮之巔的激動與自豪。高仙熱烈歡迎從事相關領域的研究者和在校生加入到公司發展的快車道上來,與高仙一起創造更好的未來!

[1] Carrasco P L N, Bonin-Font F, Oliver-Codina G. Global image signature for visual loop-closure detection[J]. Autonomous Robots, 2016, 40(8):1403-1417.
[2] Williams B, Cummins M, Neira J, et al. A comparison of loop closing techniques in monocular SLAM.[J]. Robotics & Autonomous Systems, 2009, 57(12):1188-1197.
[3] Dorian Gálvez-López. DBoW2[EB/OL]. https://github.com/dorian3d/DBoW2
[4] GalvezlóPez D, Tardós J D. Bags of Binary Words for Fast Place Recognition in Image Sequences[J]. IEEE Transactions on Robotics, 2012, 28(5):1188-1197.
[5]Negre Carrasco, Pep Lluis. libhaloc[EB/OL]. https://github.com/srv/libhaloc