点击上方“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相关学习资料:综述/激光/视觉/数据集/常用库相关推荐

  1. 1000套物联网 电子 电气毕业设计论文及相关学习资料

    1000套物联网 电子 电气毕业设计论文及相关学习资料 文章目录 1000套物联网 电子 电气毕业设计论文及相关学习资料 一.资料介绍 二.资料详情 1.资料大小 2.资料详情(连号,而且还有其他的内 ...

  2. SpiderMonkey相关学习资料

    SpiderMonkey相关学习资料 1.在Sublime中搭建SpiderMonkey编译环境 2.SpiderMonkey引擎下载 3.SpiderMonkey 入门 4.Spider官网 htt ...

  3. 彻底搞懂基于LOAM框架的3D激光SLAM全套学习资料汇总!

    地图定位算法是自动驾驶模块的核心,而激光SLAM则是地图定位算法的关键技术,其重要性不言而喻,在许多AI产品中应用非常多(包括但不限于自动驾驶.移动机器人.扫地机等).相比于传统的视觉传感器,激光传感 ...

  4. 颜色科学相关学习资料

    主要汇总颜色科学相关的资料,包括数据,论文,标准,其他人的分享,有好的网站和平台也希望大家推荐.持续更新中... 地址:https://lspdd.org/app/en/lamps 简介:光源光谱数据 ...

  5. 从技术小白到收获BAT研发offer,分享我的学习经验和感悟(赠送相关学习资料)

    去年秋季参加了校园招聘,有幸拿到了BAT.头条.网易.滴滴.亚马逊.华为等offer,经过研究生两年的学习积累,终于达成了自己的目标,期间也经历了很多,谨以此文,聊表感叹,也会分享很多我的Java学习 ...

  6. Kinect结合OpenCV获取骨骼数据原理及相关学习资料

    首先说一下,本系统所使用的开发环境版本是计算机系统Windows 10.Visual Studio 2013.Opencv3.1.0和Kinect SDK v2.0. vs2013需要vc12,如果V ...

  7. 【总结】有三AI所有GAN相关学习资料汇总,有图文、视频、代码实战等......

    GAN无疑是这几年深度学习领域里最酷的技术,不管是理论的研究,还是GAN在图像生成,图像翻译,语音图像等基础领域的应用,都非常的丰富.我们公众号输出过非常多的GAN相关资源,本次做一个简单汇总. 免费 ...

  8. 3D激光雷达SLAM算法学习01——3D激光SLAM整体框架

    #1.3D激光雷达系列主要内容 结合个人毕业设计和日后发展方向,开始学习3D激光雷达的相关感知算法,预计SLAM(定位和建图)开始,本篇给出简单的框架和绪论,后边会按照图优化/滤波原理.传感器基础.数 ...

  9. 【图像处理基础知识】中文车牌识别API-HyperLPR的应用与相关学习资料(python版)

    课题用到了车牌识别,因为C++不会,听说上手比较困难,干脆用了Python做一个原型,编程实现比较快.但是,问题来了,图像处理方面C++是完美工具,大多API.资料都是C++编写的,python的真的 ...

最新文章

  1. SQL Server 性能调优3 之索引(Index)的维护
  2. 2017光棍节新生训练赛
  3. vue中checkbox 样式自定义重写;循环遍历checkbox,拿到不同的v-model绑定值;及获取当前checked 状态,全选和全不选等功能。...
  4. 【笔记】基于轻量和积网络及无人机遥感图像的大豆田杂草识别
  5. 速约~阿里云存储新品发布会
  6. 【渝粤教育】国家开放大学2018年秋季 1320T关系营销 参考试题
  7. java xml dom getelementbyid,DOM中常见的元素获取方式
  8. 华为杯大学生计算机软件大赛,关于举办2018年西安电子科技大学程序设计网络赛暨第十六届“华为杯”大学生程序设计竞赛的通知...
  9. VS2008SP1中CDialogEx的使用问题及解决
  10. 卷积法求解系统的零状态响应_信号与系统复习(2013.6)
  11. python转str类型的列表为list格式
  12. template 标签
  13. 建立了索引怎么使用_对MySQL索引的认识
  14. java camel swagger,Swagger将下划线转换为camelcase
  15. 七日Python之路--第八天(一些琐碎)
  16. 【已解决】ws2_32.dll丢失怎么办?ws2_32.dll调用失败如何修复
  17. 业务系统+电子签章开放平台,快速构建个性化的电子签署应用
  18. 基于GIS的中国历代名人人生轨迹研究
  19. wx.scanCode(Object object)使用详解
  20. 基于routeros的ADSL带宽叠加

热门文章

  1. vim代码格式化插件clang-format
  2. 嵌入式linux启动信息完全注释
  3. 出租车不需要司机了?带你体验无人驾驶出租车!|『智能产品家』第三期
  4. 仿网易云音乐部分UI实现
  5. Direct3D(D3D)简介
  6. 开始构建你的DBaaS:使用zCloud自动化安装部署Oracle和MySQL数据库
  7. Oracle-07:别名,去重,子查询
  8. ES6-Promise实时获取地址和天气问题
  9. 计算机显卡显示图片原理,认识显卡!浅析显卡及显卡工作原理
  10. 如何在智星云主机配置 conda 和 pip 源