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\
相關文章
- Go 學習資料整理Go
- SLAM學習筆記(1)SLAM筆記
- 前端學習整理資料(未完待續)前端
- SSM框架學習之Spring的AOP學習以及資料整理SSM框架Spring
- Python資料學習整理,小白們的福音Python
- Python學習資源整理Python
- mysql資料庫學習基礎知識整理MySql資料庫
- 大資料學習:怎樣進行大資料的入門級學習?大資料
- 鴻蒙OS學習資料整理,持續更新中鴻蒙
- 安卓學習資源整理安卓
- 資料庫升級-物理重新整理資料字典資料庫
- 小白如何入門大資料,資深技術大牛帶你回顧學習路線!大資料
- 爬蟲學習整理(3)資料儲存——Python對MySql操作爬蟲PythonMySql
- 2021年最新整理, C++ 學習資料[持續更新中]C++
- 技術大牛分享:JAVA學習路線Java
- Git學習整理Git
- 工作學習整理
- SLAM +機器學習迎來了“感知時代”SLAM機器學習
- 新手入門SLAM必收藏的資料SLAM
- 杉巖資料:以超融合技術鑄造音樂殿堂
- 大資料專家級技能模型與學習指南大資料模型
- 2022,大資料Kafka全新學習路線升級大資料Kafka
- 資料庫知識整理 - 概述、資料模型、三級模式結構資料庫模型模式
- 【深度學習】大牛的《深度學習》筆記,Deep Learning速成教程深度學習筆記
- js 部分學習整理JS
- 小程式學習整理
- 學習bootstrap的整理。boot
- 學習資料
- 大資料學習資料大資料
- Go學習【二】學習資料Go
- Swift web服務框架Vapor 學習資源整理SwiftWeb框架Vapor
- Masonry 原始碼學習整理原始碼
- Go Web輕量級框架Gin學習系列:資料繫結GoWeb框架
- 大資料學習大資料
- Python 學習資料Python
- Angular學習資料Angular
- hibernate學習資料
- gis 資料學習