SLAM學習資料整理 殿堂級大牛
總結一下我接觸過的SLAM演算法吧,主要集中在visual slam:
特徵法:
- ORB SLAM https://github.com/raulmur/ORB_SLAM2
優勢: 在靜態環境下定位準確,穩定, 單目和雙目版本都可以達到實時(高於10frames/s)。程式碼可讀性強,易擴充套件, 網上也有實現和imu融合的版本。
劣勢:建的地圖點雲稀疏。 執行速度方面,因為提特徵點的時間有瓶頸最快的執行速度應該不超過30frames/s, 我在本機 (i7-6600U) 測的速度基本都在20frames/s左右,因此對於高幀率的相機需要降幀率才能用。對動態物體很敏感,再有動態物體時非常容易tracking lost。
總的來說ORB-SLAM還是在智慧駕駛領域用的最廣泛的SLAM演算法,因為它在work的時候可以work的很好,急需解決的問題是對特徵點提取的加速,以及處理的環境中的動態物體。
直接法
2. DSO https://github.com/JakobEngel/dso
優勢:可以生成相當稠密的點雲, 這個優點給DSO很大想象空間。 速度在可以work的時候很快, 大概在20-30frames/s。
劣勢:對場景光照要求高,要求儘量保持曝光時間的穩定。對動態物體沒有orb那樣敏感。程式碼可擴充套件性比較差,目前開源的只有單目版本,這個版本沒有做尺度恢復因此沒法在實際中直接用。這裡貼一個我開發的stereo dso: https://github.com/JiatianWu/stereo-dso, 可以恢復相對準確的pose。
DSO的缺點和優點都很明顯,目前的侷限應該是還沒有一個開源可用的像雙目orb那樣穩定的版本,但是有很大的潛力去做一些orb無法做的事,比如建稠密的高精地圖,甚至semantic的高精地圖都有可能。
簡單說一下LSD,自從DSO出來後LSD就沒多少價值了,因為DSO在準確性,穩定性和速度上都比LSD好。LSD有個優勢就是迴環檢測,這個對於DSO有些雞肋,因為如果odometry都可以很精確為什麼需要用額外的計算量去做迴環檢測呢。
半直接法
3. SVO https://github.com/uzh-rpg/rpg_svo
優點:非常快, 快到可以在laptop上達到300frames/s。
缺點:誤差大,不準確。這也是為達到高速度犧牲效能的結果吧。
SVO適用的主要場景是無人機,因此程式碼中採用了一些無人機上的假設,比如假設相機的姿態是向下看的。SVO的最大問題就是不準確,這個可以通過融合imu改善,前提是你擁有一個準確的imu。。
Visual-inertial SLAM
4. 首推港科大的VINS https://github.com/HKUST-Aerial-Robotics/VINS-Mono。 沒仔細研究過, 不過港科大的這個工作開源的很徹底,ros版本的和ios版本的都開源了, 大家可以看看產品級的slam應用是怎麼實現的,程式碼也很清晰,主要側重點在後端的優化,前端寫的很簡潔。
另外經典的VIO還是ETH的OKVIS: https://github.com/ethz-asl/okvis 。VINS和OKVIS效能差不多, OKVIS開發得更早一些, 後端優化的一些思想比如sliding window optimization也被DSO和VINS所借鑑。
一、入門篇
1. Andrew Davison的課程: http://www.doc.ic.ac.uk/~ajd/Robotics/index.html
week7 SLAM,week8裡面推薦了slam的兩個入門 Tutorial 1 和Tutorial 2
2. 瑞士蘇黎世理工的學生練習:http://www.csc.kth.se/~kootstra/index.php?item=313&menu=300
把excise 3:SLAM(EKF)做完,SLAM原理基本理解
3. 高博的CNBLOG:http://www.cnblogs.com/gaoxiang12/
二、現有資源
1. OpenSLAM:https://openslam.org/
這個網站中含有很多slam方面的資料,編寫的程式也各有不同,很權威
2. Kitti相簿,可以做simulation:http://www.cvlibs.net/datasets/kitti/
3. 蘇黎世理工學習練習excise3看完後可以使用Javier Civera 的程式進行試手,注意對calibration的調整
http://webdiis.unizar.es/~jcivera/code/1p-ransac-ekf-monoslam.html
4. 對於Javier Civera的1p RANSAC-monoSLAM有一定了解了,可以試試用SURF去實現
南理工論文可以參考 http://cdmd.cnki.com.cn/Article/CDMD-10288-1012319519.htm
6. Monocular SLAM:http://vision.ia.ac.cn/Students/gzp/monocularslam.html
8. PTAM:http://www.robots.ox.ac.uk/~gk/PTAM/
libCVD:http://www.edwardrosten.com/index.html
編譯PTAM:http://www.fx114.net/qa-207-77156.aspx
windows下編譯PTAM:http://blog.csdn.net/cgf_909/article/details/24457771
9. ORB_SLAM:http://webdiis.unizar.es/~raulmur/orbslam/
10. LSD_SLAM:http://www.cnblogs.com/hitcm/category/763753.html
三、相關書籍
1. Multiple View Geometry in Computer Vision Second Edition ,http://www.robots.ox.ac.uk/~vgg/hzbook/
計算機視覺方面大神級別的書,也有中文版
2. Robotics Vision and Control ,http://www.petercorke.com/RVC/
澳大利亞昆士蘭理工大學的Peter Corke是機器視覺領域的大牛人物,他所編寫的Robotics, vision and control一書更是該領域的經典教材
配套有matlab工具箱。工具箱分為兩部分,一部分為機器人方面的,另一部分為視覺方面的工具箱
原始碼都是開放免費下載的: http://petercorke.com/Toolbox_software.html
3. Probabilistic Robotics,http://www.probabilistic-robotics.org/理解這本書要有很好的數學基礎
2. 麻省理工John Leonard:http://marinerobotics.mit.edu/ 側重於應用。目前主要在做水下SLAM的專案。參加過DARPA的智慧車挑戰賽。
五、其他資源(一)
1. Giorgio Grisetti; Cyrill Stachniss; Wolfram Burgard; (GridMapping 演算法,及概率機器人一書作者)
2. M. Montemerlo; Dirk Haehnel; Sebastian Thrun; (FastSLAM創始者,理論水平和實際應用能力非常強)
參加過DARPA的智慧車挑戰賽,取得最好成績。
3. Austin Eliazar; Ronald Parr; (DP-SLAM創始者,從文章到資料,程式都公開的牛人)
4. 以 Jose Neira和Jose luis Blanco為代表的一批西班牙學者.
5. http://babel.isa.uma.es/mrpt/index.php/Main_Page 2008年開始陸續出現了一些好文章.
6. http://cres.usc.edu/radishrepository/view-all.php 包含了大量的用於驗證SLAM演算法的資料.
7. http://www.isa.uma.es/C13/jlblanco/default.aspx 西班牙的一個博士生.程式設計能力極強. 另外Jose Neira帶領的團隊也比較猛.
六、其他資源二(二)
工具類:
資料集:
提供python寫的工具,參考 TUM資料集測評工具的使用
除此之外提供online測試
合併深度圖和rgb:
python associate.py rgb.txt depth.txt > associations.txt #如果沒有最後那個選項會把結果直接列印到控制檯
對齊輸出軌跡,並計算誤差:
python eveluate_ate.py --save alignedTrajectory.txt groundtruth.txt KeyFrameTrajectory.txt
科研類:
PTAM - ISMAR2007 英國牛津 Georg Klein 主頁及程式碼 PTAM-GPL
DTAM - ICCV2011 倫敦帝國理工學院 Richard paper
RGB-D_SLAM Trans. on Robotics2014 開原始碼
ORB-SLAM - Trans. on Robotics2015 西班牙Raúl Mur Artal 主頁 ORB-SLAM開原始碼 ORB-SLAM2開原始碼
SVO - ICRA2014 瑞士蘇黎世大學 Christian Forster 開原始碼
LSD-SLAM 2014 德國慕尼黑工業大學(TMU) Jakob Engel 開原始碼
德國慕尼黑工業大學計算機視覺組:https://vision.in.tum.de/research/vslam
一個更全的統計:Awesome SLAM\
相關文章
- SLAM(一)----學習資料整理SLAM
- 126篇殿堂級深度學習論文分類整理,從入門到應用深度學習
- Go 學習資料整理Go
- iOS 學習資料整理iOS
- swift學習資料整理Swift
- STF,docker學習資料整理Docker
- iOS 學習資料整理(上)iOS
- 【整理】Hadoop學習資料Hadoop
- 全面的Swift學習資料整理Swift
- SLAM學習筆記(1)SLAM筆記
- 整理最全的“大資料”學習資源大資料
- 前端學習整理資料(未完待續)前端
- iOS相關學習資料的整理iOS
- 學習資源整理
- 資深CCNA大牛披露學習的秘訣
- 安卓學習資源整理安卓
- Flask學習資源整理Flask
- SSM框架學習之Spring的AOP學習以及資料整理SSM框架Spring
- [碼]國外大牛整理的Java資源 !Java
- [碼]國外大牛整理的Java資源!Java
- Python資料學習整理,小白們的福音Python
- mysql資料庫學習基礎知識整理MySql資料庫
- 鴻蒙OS學習資料整理,持續更新中鴻蒙
- 大資料學習:怎樣進行大資料的入門級學習?大資料
- Python學習資源整理Python
- (轉)WPF學習資源整理
- 資料庫升級-物理重新整理資料字典資料庫
- 深度學習應用資源整理深度學習
- 小白如何入門大資料,資深技術大牛帶你回顧學習路線!大資料
- 深度學習FPGA實現基礎知識6(Deep Learning(深度學習)學習資料大全及CSDN大牛部落格推薦)深度學習FPGA
- 資料試驗室--頂級學習資料,知識寶庫
- Git學習整理Git
- 工作學習整理
- SSH學習整理
- iOS學習資料整理及前端一部分iOS前端
- 值得學習的設計師高效PHOTOSHOP資料夾整理術
- 技術大牛分享:JAVA學習路線Java
- 自己整理的學習資料——DB2 V8資料庫基礎(六)DB2資料庫