語義SLAM和多傳感器融合是自動駕駛建圖和定位部分比較熱門的兩種技術。語義SLAM中,語義信息的數據關聯相較於特征點的數據關聯有所不同。我們一般用特征描述子的相似性來匹配和關聯不同圖像中的特征點。特征點的描述子會受到光照、視角和傳感器的影響,不太適用於大尺度長周期的任務,比如自動駕駛的高精度地圖。得益於深度學習的快速發展,這些影響因素對於目標識別、語義分割來說已經不是最本質的困難,因此語義信息在高精度地圖中越來越受重視。
語義SLAM數據關聯的基本考慮
在SLAM中,語義信息的數據關仍然是一個值得研究的問題。這個問題的關鍵在於,一幅圖像中可能檢測出數個相同類別的目標物體,如何能夠正確地將其對應於地圖數據中已有的該類別的3D物體。
在語義SLAM中,雖然語義目標同樣可以產生某種描述子(比如深度網絡中的某些層),但對於相同類別且距離較近的目標,我們可能無法確定合理的對應關系。考慮到圖像中的目標(10個左右)並不如特征點那樣豐富(1000個左右),錯誤的匹配並不方便通過RANSAC算法來排除(樣本不足)。
下面列出幾種有用的因素。
- 較為准確的先驗估計(姿態),比如通過IMU、GPS、里程計等。
- 能夠得到VO和目標的准確位置,比如雙目、深度攝像頭、結合激光等。
- 地圖中有很多(局部)唯一確定的路標物體。
- 考慮所有可能的數據關聯。
利用第一點,我們能夠使用一些簡單的方法建立數據關聯,但此時仍需考慮錯誤關聯的影響。
利用第二點,我們能夠准確地重建出語義目標的幾何特性(空間位置、朝向等)。X-View: Graph-Based Semantic Multi-View Localization
這篇文章將多幀的語義目標位置組合成圖,利用圖匹配算法求解相機在全局地圖中的位置(只定位不建圖)。
利用第三點,我們能夠方便地確定關聯關系。比如,行車道上的交通指示牌結合文字OCR識別,能夠唯一確定該路牌的位置,相當於一個全局觀測。比如,考慮到交通指示牌相互之間的間距很大,在局部唯一,因此結合GPS和指示牌即可唯一確定該指示牌的位置。根據Mobileye的REM的專利描述,它們可能利用了該類信息。
第四點即是本文想講解的一種方法。
文章的出發點和創新點
本文主要想介紹一篇基於概率模型的語義定位方法。文章名字是Semantic Localization Via the Matrix Permanent
,是 University of Pennsylvania 的GRASP實驗室。還有一篇類似的文章,名字是Localization from semantic observations via the matrix permanent
。他們組后續一篇文章Probabilistic Data Association for Semantic SLAM
得了ICRA2018最佳論文獎。
本篇文章的出發點是用概率模型建模數據關聯過程,通過求解后驗概率\(p(Z|Y,X)\),利用粒子濾波的框架求解姿態\(X\)。其中,\(Z\)是觀測,\(Y\)是地圖中的路標點(landmark),\(X\)是姿態(pose)。這里假設地圖已經建立,其中路標點的位置、類別等信息已經包含在地圖中。文章的模型基於很少的先驗假設,只需要語義信息和一些識別算法的先驗概率,因此有很廣的適用范圍。
這篇文章的創新點個人總結有以下幾點。
- 嘗試去建立路標點和觀測之間的所有可能的概率關聯,而不是一對一的數據關聯。這樣的好處是避免一對一關聯中錯誤關聯的影響。因為在語義SLAM中,語義信息的數量相比於特征點而言是稀少的,因此不當的數據關聯的個數應當盡可能的少,否則可能導致姿態估計很快出現漂移。
- 考慮了目標識別中的錯誤率和漏檢率。
- 優化了后驗概率的計算方法。建立整個概率分布是一個\(N!\)復雜度的問題,作者將其轉化為一個多項式復雜度的問題。
作者在文章中只用了語義信息,還沒有應用傳統SLAM和多傳感器融合的方法。如果要應用到實際中,可能可以融合一些其它的想法。另外,這篇文章並沒有開源代碼能夠參考,運行速度上肯定也需要優化。
先寫這些吧,下次再介紹一些具體的內容。