天天看點

SLAM: 單目視覺SLAM的方案分類《機器人手冊》

摘抄知乎上一段有趣的話:

    如果你出門問别人『學習SLAM需要哪些基礎?』之類的問題,一定會有很熱心的大哥大姐過來摸摸你的頭,肩或者腰(不重要)

SLAM: 單目視覺SLAM的方案分類《機器人手冊》

,一臉神秘地從懷裡拿出一本比饅頭還厚的《Multiple View Geometry》或《State Estimation For Robotics》或 《An Invitation to 3D Computer Vision》塞給你。然後告訴你,隻要潛心修煉兩年,一定會……

    扯淡!SLAM是一個工程,不是一門課或者一個算法.........

    單目視覺SLAM方法在是否引入機率架構方面分為基于機率架構的方法和基于非機率架構的方法。其中前者的代表方法是基于Kalman濾波(KF)的方法,基于粒子濾波(PF)的方法等;後者的代表方法是基于關鍵幀和稀疏捆綁調整優化的方法,基于圖優化的方法等。

    在《機器人手冊》 第2卷,這本書裡面,第23張講述了:三維視覺和基于視覺的實時定位于地圖重建。在第37章裡面,講述了 同時定位與建圖。指出了SLAM的三種基本方法。

SLAM: 單目視覺SLAM的方案分類《機器人手冊》

       一種是EKF的方法,但由于性能的限制,逐漸變得非主流;第二種基于圖表示,成功使用稀疏非線性優化方法解決SLAM問題,成為主要方法;第三種也是成為粒子濾波器的非參數統計濾波技術,是線上SLAM的一種主流方法。

文章連結:http://www.opencv.org.cn/forum.php?mod=viewthread&tid=37672

一、機率方法

      采用機率架構的方法的思路大緻為:假設從初始時刻到目前 時刻的觀測資料和控制輸入已知,那麼就可以聯合後驗機率來建構一個後驗機率密度函數,這個函數用來描述相機姿态 和 地圖中的特征的空間位置,進而通過遞歸的貝葉斯濾波算法 來對建構的機率密度函數進行估計,進而完成SLAM問題的解決。

      在基于KF的方法中,假設滿足高斯分布并且系統的非線性較小時可以得到不錯的效果,另外從後驗機率的不同可以分為EKF-SLAM方法、擴充資訊濾波(EIF)方法、UKF-SLAM方法、SEIF方法等,例如,Davison等提出的單目視覺SLAM系統(MonoSLAM)和Roussillon[提出的實時單目視覺SLAM系統(RTSLAM)就是建立在擴充卡爾曼濾波(EKF)的基礎上的。

     再基于PF的方法中,主要有Doucet[7]提出的基于Rao-Blackwellized粒子濾波器(RBPF)的方法 和在此基礎上Montemerlo[8]提出的 FastSLAM方法等,其中FastSLAM方法可以用于非線性的系統。

      優點: 基于機率架構的方法的計算架構類似,其中基于EKF的單目視覺,一般可以分為運動模型和觀測模型并在一階HMM 的假設下可以實作系統狀态的預測和觀測更新。地圖也可以線上更新。

      缺點:但是這種方法多采用增量式的地圖建立方法,複雜度是n^2的。另外故在系統不穩定和觀測的不确定性的影響下造成誤差的累積,在大規模場景時會導緻最終地圖的不一緻性,難于保持準确度和魯棒性。

二、非機率方法

   在非機率架構的方法中,Klein等在基于關鍵幀的基礎上提出的PTAM系統(Parallel Tracking andMapping),該系統會在後文給出詳細的分析和優化措施。基于圖優化的SLAM方法[9]在采取了全局優化的基礎上,在大規模場景下可以取得好的效果。在國外,基于圖優化的方法大都被劃分為前端和後端的問題,