SLAM相关学习资料:综述/激光/视觉/数据集/常用库
點擊上方“3D視覺工坊”,選擇“星標”
干貨第一時間送達
作者丨菠蘿包包包@知乎
來源丨https://zhuanlan.zhihu.com/p/434874344
編輯丨3D視覺工坊
1. 綜述類文獻
1.1.?[2020]A Survey of Simultaneous Localization and Mapping with an Envision in 6G Wireless Networks
翻譯版本:?https://zhuanlan.zhihu.com/p/368946786
?比較新,激光及視覺均有涉及,介紹了SLAM相關的傳感器及一些比較著名的開源項目。
1.2.?[2017]Simultaneous Localization And Mapping: A Survey of Current Trends in Autonomous Driving
翻譯版本:https://zhuanlan.zhihu.com/p/26075315
通過分析KITTI上排名靠前的算法,介紹了SLAM方法在自動駕駛方面的局限性,然后討論了如何減輕這些局限性。
2. 開源激光SLAM項目
除列出的部分之外也有許多優秀的開源項目,提及的論文中會有引述,感興趣也可以一并了解。
2.1. LOAM
論文地址:https://www.ri.cmu.edu/pub_files/2014/7/Ji_LidarMapping_RSS2014_v8.pdf
翻譯版本:https://zhuanlan.zhihu.com/p/259662645
經典開源項目,KITTI常年霸榜。有很多基于其框架的二次開發作品,相關資料很多。
視頻演示:YouTube - LOAM: Lidar Odometry and Mapping in Real-time
(https://www.youtube.com/watch?v=8ezyhTAEyHs)
代碼:曾經開源,后又取消,源碼比較復雜,有HKUST的簡化版實現
中文注釋源碼:https://github.com/cuitaixiang/LOAM_NOTED
?簡化實現版本:https://link.zhihu.com/?target=https%3A//github.com/HKUST-Aerial-Robotics/A-LOAM
2.2. LeGO-LOAM
論文地址:https://ieeexplore.ieee.org/document/8594299
翻譯版本:https://zhuanlan.zhihu.com/p/115986186
LOAM的衍生作品,更改了特征點的提取形式,添加了后端優化,相關資料也很多,github內有論文。
視頻演示:YouTube - LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain(https://www.youtube.com/watch?v=O3tz_ftHV48)
代碼:https://github.com/RobustFieldAutonomyLab/LeGO-LOAM
2.3. LIO-SAM
論文地址:https://arxiv.org/abs/2007.00258
翻譯版本:https://zhuanlan.zhihu.com/p/381739765
LeGO-LOAM同作者的后續作品,在LeGO-LOAM基礎上添加了IMU傳感器,簡化了特征提取。代碼比較簡單,但實現和論文表述有出入,框架不夠完善。
視頻演示:YouTube - LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping(https://www.youtube.com/watch?v=A0H8CoORZJU)
代碼:https://github.com/TixiaoShan/LIO-SAM
2.4. LVI-SAM
論文地址:https://arxiv.org/abs/2104.10831
翻譯版本:知乎 - LVI-SAM:緊耦合的激光視覺慣導SLAM系統(Tixiao Shan新作,已開源)(https://zhuanlan.zhihu.com/p/370948341)
LeGO-LOAM和LIO-SAM同作者的后續作品,在LIO—SAM基礎上融合了視覺SLAM(VINS-Mono),可能作者水論文成癮了吧,每年加一點發一篇。框架有些問題,魯棒性或許不如LIO-SAM和LeGO-LOAM。
視頻演示:YouTube - LVI sam in Hongkong Urban scenario(https://www.youtube.com/watch?v=d5fg4JVvwyM)
代碼:https://github.com/TixiaoShan/LVI-SAM
2.5. FAST-LIO
論文地址:https://arxiv.org/abs/2010.08196
非LOAM衍生作,HKU-mars出品的輕量化的激光雷達+IMU融合的里程計框架,加速了卡爾曼增益的求解方法。系統是基于Livox的固態激光雷達開發的,但也提供了普通機械式激光雷達的適配。
視頻演示:YouTube - FAST-LIO: A Fast, Robust LiDAR-inertial Odometry Package by Tightly-Coupled Iterated Kalman Filter(https://www.youtube.com/watch?v=iYCY6T79oNU)
代碼:https://github.com/hku-mars/FAST_LIO
2.6. R2LIVE
R2LIVE: A Robust, Real-time, LiDAR-Inertial-Visual tightly-coupled state Estimator and mapping
翻譯版本:知乎 - SLAM經典文獻之:R2LIVE(激光-IMU-相機緊耦合)(https://zhuanlan.zhihu.com/p/363383641)
FAST-LIO后續作品,新加入了視覺,框架比LVI-SAM合理,但LIO和VIO部分融合度有限。視頻演示來看魯棒性和精度都很好,可以應付激光/視覺單一子系統失效的情景。
視頻演示:BiliBili - R2LIVE:穩健,實時,LiDar、慣性、相機的多傳感器SLAM框架(代碼開源)(https://www.bilibili.com/video/BV1xp4y187uz)
代碼:https://link.zhihu.com/?target=https%3A//github.com/hku-mars/r2live
2.7. R3LIVE
R3LIVE: A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled state Estimation and mapping package
翻譯版本:知乎 - 開源 | 港大MARS實驗室 R3LIVE (R2LIVE升級) 魯棒實時RGB雷達視覺慣導緊耦合狀態估計(https://zhuanlan.zhihu.com/p/409447180)
R2LIVE后續作品(真夠高產,一年內迭代三次),加入了RGB信息,框架有較大改動,LIO和VIO部分融合為一個global map了。視頻演示來看效果非常好,github已經創建了倉庫,但代碼還沒放出來。
視頻演示:BiliBili - R3LIVE A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual state estimator(https://www.bilibili.com/video/BV1d341117d6)
代碼(暫未開源):github - r3live
2.8. SUMA++
SuMa++: Efficient LiDAR-based Semantic SLAM
翻譯版本:https://zhuanlan.zhihu.com/p/122373061
基于語義分割的激光雷達SLAM,語義分割由RangeNet++完成。利用語義信息進行了動態物體剔除和ICP匹配,效果很好。
視頻演示:YouTube - IROS'19: SuMa++: Efficient LiDAR-based Semantic SLAM by Chen et al.(https://www.youtube.com/watch?v=uo3ZuLuFAzk)
代碼:https://github.com/PRBonn/semantic_suma
3. 開源視覺SLAM項目
除列出的部分之外也有許多優秀的開源項目,提及的論文中會有引述,感興趣也可以一并了解。
3.1. ORB-SLAM1&2&3
http://webdiis.unizar.es/~raulmur/MurMontielTardosTRO15.pdf
https://128.84.21.199/pdf/1610.06475.pdf
https://arxiv.org/abs/2007.11898
翻譯版本:知乎 - ORB-SLAM1 論文翻譯(https://zhuanlan.zhihu.com/p/424201739)、博客園 - ORB-SLAM2 論文全文翻譯(https://www.cnblogs.com/MingruiYu/p/12991119.html)、知乎 - 一文詳解ORB-SLAM3(https://zhuanlan.zhihu.com/p/206952146)
經典的稀疏特征點法視覺SLAM,建議搭配高博的《十四講》食用,《十四講》基本是按照ORB-SLAM的框架進行講解的,相關資料也非常多。框架清晰合理,但做了比較多的工程性工作,導致代碼比較復雜,魯棒性和精度都非常好。ORB-SLAM2增加了對雙目和RGB-D相機的支持,ORB-SLAM3中融合了IMU,并且新增了SubMap,利用回環檢測的機制進行多地圖的拼接。
視頻演示:YouTube - ORB-SLAM3: a Visual, Visual-Inertial and Multi-Map SLAM with monocular, stereo and RGB-D cameras(https://www.youtube.com/watch?v=UVb3AFgabu8)
代碼:
https://github.com/raulmur/ORB_SLAM
https://github.com/raulmur/ORB_SLAM2
https://github.com/UZ-SLAMLab/ORB_SLAM3
3.2. VINS-Mono & VINS-Fusion
1)Online Temporal Calibration for Monocular Visual-Inertial Systems
2)VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator
翻譯版本:CSDN - [論文學習]Online Temporal Calibration for Monocular Visual-Inertial Systems(https://blog.csdn.net/unlimitedai/article/details/97612397)
知乎 - 【論文閱讀】VINS-Mono:A Robust and Versatile Monocular Visual-Inertial State Estimator(https://zhuanlan.zhihu.com/p/386659861)
HKUST出品,非常著名的稀疏特征點法視覺慣性里程計。VINS-Mono是一個單目+IMU的視覺-慣性里程計系統,VINS-Fusion在其基礎上擴展了雙目相機和GPS的支持。代碼較ORB-SLAM簡單很多,很多在其基礎上的二次開發,包括一些激光-視覺融合SLAM也選擇了VINS作為視覺里程計部分的實現,相關資料豐富。
視頻演示:YouTube - [Open Source] VINS-Mono: Monocular Visual-Inertial System Indoor and Outdoor Performance、
代碼:
https://github.com/HKUST-Aerial-Robotics/VINS-Mono
https://github.com/HKUST-Aerial-Robotics/VINS-Fusion
3.3. GVINS
GVINS: Tightly Coupled GNSS-Visual-Inertial Fusion for Smooth and Consistent State Estimation
翻譯版本:知乎 - SLAM經典文獻之:GVINS: Tightly Coupled GNSS-Visual-Inertial Fusion(GNSS-視覺-慣性緊組合)(https://zhuanlan.zhihu.com/p/380792573)
依舊是HKUST出品(此時VINS-Mono作者秦通應該是畢業離開了),VINS系列續作。真正意義上緊耦合了GNSS定位,不使用解算后的經緯度定位,而是使用原始衛星測量報文,將GNSS誤差也加入了狀態估計之中。根據論文表述精度和應對GNSS失效情況的魯棒性都很好。
視頻演示:YouTube - GVINS: tightly coupled GNSS-visual-inertial fusion for smooth and consistent state estimation
代碼:https://github.com/HKUST-Aerial-Robotics/GVINS
3.4. SVO & SVO pro
1. SVO: Fast Semi-Direct Monocular Visual Odometry
2. SVO: Semi-Direct Visual Odometry for Monocular and Multi-Camera Systems
翻譯版本:https://zhuanlan.zhihu.com/p/81338529
半直接法(Semi-Direct)視覺里程計,速度快,pro在其基礎上擴展了多種相機模型的支持,添加了回環檢測功能形成了完整的SLAM系統。開源比較晚,pro17年發表21年才開源并且github上的issue沒人回復。
視頻演示:YouTube - SVO: Fast Semi-Direct Monocular Visual Odometry
代碼:
https://github.com/uzh-rpg/rpg_svo
https://github.com/uzh-rpg/rpg_svo_pro_open
3.5. DSO
Direct Sparse Odometry
翻譯版本:https://zhuanlan.zhihu.com/p/29177540
?全直接法(Full-Direct)視覺里程計,依賴最小化光度誤差,而不是重投影誤差進行位姿優化,與ORB-SLAM等特征點法框架有很大不同,比較獨樹一幟,優點是速度快。
視頻演示:YouTube - DSO: Direct Sparse Odometry
代碼:https://github.com/JakobEngel/dso
3.6. DROID-SLAM
DROID-SLAM: Deep Visual SLAM for Monocular,Stereo, and RGB-D Cameras
翻譯版本:https://zhuanlan.zhihu.com/p/434471738
使用神經網絡,直接端到端的實現了視覺SLAM。使用單目視頻訓練,但支持雙目/RGBD作為輸入,論文中表述其精度已經達到了SOTA,但在未知場景數據集(KITTI,不再其訓練集范圍內)下測試尺度漂移嚴重,效果不理想。
代碼:https://github.com/princeton-vl/droid-slam
4. 開源數據集
4.1. KITTI & KITTI360
Vision meets Robotics: The KITTI Dataset
地址:KITTI Vision Benchmark Suite、KITTI-360
傳感器:Lidar、雙目相機、IMU、GNSS等
著名室外車載場景下的開源數據集,由于有Benchmark,很多論文都會使用此數據集以和其他方法進行對比評價。傳感器間均經過了標定。提供包括光流、深度、位姿、語義分割、目標檢測等多種ground truth,也提供原始數據,有寫好的數據讀取/轉存ROSbag工具。KITTI-360提供了全景圖像,并和點云數據進行了融合。
4.2. nuScenes
地址:NUSCENES(https://www.nuscenes.org/)
傳感器:6x相機、Lidar、5xRadar、IMU
戶外車載場景數據集,所有傳感器的內外參均進行了標定,提供目標檢測和語義分割的ground truth,提供了開發工具和說明文檔且官網有較詳細的教程。
4.3. Mulran
MulRan: Multimodal Range Dataset for Urban Place Recognition
地址:Mulan(https://sites.google.com/view/mulran-pr/dataset)
傳感器:Lidar、IMU、GNSS、Radar 戶外車載場景數據集,偏向于場景識別,未提供圖像,IMU等標定信息不全。數據質量很高,但激光雷達由于其他傳感器遮擋,缺失后向60度左右范圍的點云。提供了Radar產生的polar image用于場景識別,官方提供了腳本工具用于發布ROS話題。
4.4. UTBM
https://github.com/epan-utbm/utbm_robocar_dataset
地址:EU Long-term Dataset with Multiple Sensors for Autonomous Driving?傳感器:2x雙目相機+2x工業相機+魚眼相機、Lidar、IMU、RTK-GNSS等 戶外車載場景數據集,傳感器齊全。只提供了ROSbag格式數據,傳感器外參未知。
備注:感謝微信公眾號「3D視覺工坊」整理。
5. 常用庫
5.1. OpenCV
圖像處理庫
官方教程:
https://docs.opencv.org/4.x/d9/df8/tutorial_root.html
5.2. PCL(Point Cloud Library)
點云處理庫
官方教程:
https://pcl.readthedocs.io/projects/tutorials/en/master/
5.3. Eigen
矩陣運算/線性代數庫
官方教程:
https://eigen.tuxfamily.org/dox/GettingStarted.html
5.4. Ceres Solver
Google的非線性優化庫
官方教程:
http://ceres-solver.org/tutorial.html
5.5. g2o
圖優化庫,本質上等價于ceres。通過將待優化狀態定義為圖頂點(Vertex),約束定義為圖邊(Edge)的形式,將非線性優化的過程轉為了圖結構,采用稀疏矩陣的方式求解非線性優化問題。資料比較少,建議直接看論文和github上的官方示例。
論文:g 2o: A General Framework for Graph Optimization
源碼:https://github.com/RainerKuemmerle/g2o
5.6. GTSAM
另一個圖優化庫。不同的是,它通過貝葉斯網絡對狀態量進行最大似然估計進行優化。官方資料比g2o好很多,github上也提供了示例供參考。圖的定義與g2o不同,其稱之為“因子圖(factor graph)”,上手難度比g2o小。
官方教程:
https://gtsam.org/tutorials/intro.html
論文:
iSAM: Incremental Smoothing and Mapping
iSAM2: Incremental Smoothing and Mapping Using the Bayes Tree
源碼:https://github.com/borglab/gtsam
6. 理論相關
此處只列出了一些比較簡略的相關原理說明/公式推導資料,深挖下去坑比較深,有需要的話還是建議尋找專門書籍學習。
6.1. 李群與李代數
https://www.youtube.com/watch?v=mH0oCDa74tE
3Blue1Brown的群論相關視頻。
論文:A micro Lie theory for state estimation in robotics
一篇講的很詳細的狀態預測中有關流形、李群、李代數理論的論文。從最基礎的概念開始講起,到介紹流形及其上微分規則。最后總結了機器人狀態估計中常用的公式及其推導,保姆級教程。
6.2. IMU誤差模型與預積分
1)IMU Preintegration on Manifold for Efficient Visual-Inertial Maximum-a-Posteriori Estimation
2)On-Manifold Preintegration for Real-Time Visual-Inertial Odometry
兩篇以視覺SLAM融合IMU為背景,講解IMU預積分模型的經典論文。
簡明預積分推導:https://zhuanlan.zhihu.com/p/388859808
《十四講》作者高翔的IMU預積分模型講解,依舊是《十四講》的風格,清晰明白。
6.3. 貝葉斯濾波/卡爾曼濾波
https://www.bilibili.com/video/BV1eE41147wK
一位自動駕駛相關算法UP主的系列課程,跟隨UP自己的筆記進行授課,推導嚴謹講解通俗而細致。強烈推薦。
本文僅做學術分享,如有侵權,請聯系刪文。
3D視覺精品課程推薦:
1.面向自動駕駛領域的多傳感器數據融合技術
2.面向自動駕駛領域的3D點云目標檢測全棧學習路線!(單模態+多模態/數據+代碼)
3.徹底搞透視覺三維重建:原理剖析、代碼講解、及優化改進
4.國內首個面向工業級實戰的點云處理課程
5.激光-視覺-IMU-GPS融合SLAM算法梳理和代碼講解
6.徹底搞懂視覺-慣性SLAM:基于VINS-Fusion正式開課啦
7.徹底搞懂基于LOAM框架的3D激光SLAM: 源碼剖析到算法優化
8.徹底剖析室內、室外激光SLAM關鍵算法原理、代碼和實戰(cartographer+LOAM +LIO-SAM)
9.從零搭建一套結構光3D重建系統[理論+源碼+實踐]
10.單目深度估計方法:算法梳理與代碼實現
11.自動駕駛中的深度學習模型部署實戰
12.相機模型與標定(單目+雙目+魚眼)
重磅!3DCVer-學術論文寫作投稿?交流群已成立
掃碼添加小助手微信,可申請加入3D視覺工坊-學術論文寫作與投稿?微信交流群,旨在交流頂會、頂刊、SCI、EI等寫作與投稿事宜。
同時也可申請加入我們的細分方向交流群,目前主要有3D視覺、CV&深度學習、SLAM、三維重建、點云后處理、自動駕駛、多傳感器融合、CV入門、三維測量、VR/AR、3D人臉識別、醫療影像、缺陷檢測、行人重識別、目標跟蹤、視覺產品落地、視覺競賽、車牌識別、硬件選型、學術交流、求職交流、ORB-SLAM系列源碼交流、深度估計等微信群。
一定要備注:研究方向+學校/公司+昵稱,例如:”3D視覺?+ 上海交大 + 靜靜“。請按照格式備注,可快速被通過且邀請進群。原創投稿也請聯系。
▲長按加微信群或投稿
▲長按關注公眾號
3D視覺從入門到精通知識星球:針對3D視覺領域的視頻課程(三維重建系列、三維點云系列、結構光系列、手眼標定、相機標定、激光/視覺SLAM、自動駕駛等)、知識點匯總、入門進階學習路線、最新paper分享、疑問解答五個方面進行深耕,更有各類大廠的算法工程人員進行技術指導。與此同時,星球將聯合知名企業發布3D視覺相關算法開發崗位以及項目對接信息,打造成集技術與就業為一體的鐵桿粉絲聚集區,近4000星球成員為創造更好的AI世界共同進步,知識星球入口:
學習3D視覺核心技術,掃描查看介紹,3天內無條件退款
?圈里有高質量教程資料、可答疑解惑、助你高效解決問題
覺得有用,麻煩給個贊和在看~??
總結
以上是生活随笔為你收集整理的SLAM相关学习资料:综述/激光/视觉/数据集/常用库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 疫情汹涌,餐饮行业如何修炼内功科学选址?
- 下一篇: Windows:忘记本地账户开机密码,但