快看,那个学SLAM 的崩溃了!
点“计算机视觉life”关注,置顶更快接收消息!
本文列举了当前优秀SLAM方案,点出了SLAM学习者的困境,最后打算搞点大事
请把此文转发给你认识的SLAM大神,愿你头发浓密,心想事成
当前优秀SLAM方案一览
研究SLAM的小伙伴入门的时候都经历过痛苦阶段,这是因为SLAM是个系统工程,算法比较难实现。但好在有不少优秀的开源代码可以借鉴,这里列举一些目前比较流行的开源SLAM方案(分类方式不一定科学,凑合看哈):
纯视觉SLAM开源方案:
稀疏地图
- ORB SLAM v2 (单目、双目、RGB-D)
半稠密地图
- LSD SLAM (单目、双目、RGB-D)
- DSO (单目)
- SVO(单目, 仅VO)
稠密地图
- RGB-D SLAM V2 (RGB-D)
- Kintinuous (RGB-D)
- Elastic Fusion (RGB-D)
- Bundle Fusion (RGB-D)
- InfiniTAM (RGB-D)
- RTAB-Map (RGB-D,双目,LIDAR)
多传感器融合
- VINS (单目+IMU、双目+IMU)
- OKVIS (单目+IMU、双目+IMU)
- ROVIO (单目+IMU)
- RKSLAM (单目+IMU)
- Cartographer (LIDAR + IMU)
- V-LOAM (单目+LIDAR)
和深度学习结合
- CNN-SLAM: 将LSD-SLAM里的深度估计和图像匹配都替换成基于CNN的方法,并可以融合语义
- VINet : Visual-inertial odometry as a sequence-to-sequence learning problem: 利用CNN和RNN构建了一个VIO,即输入image和IMU信息,直接输出估计的pose
- 3DMV: Joint 3D-Multi-View Prediction for 3D Semantic Scene Segmentation: 联合3D多视图预测网络在室内环境中进行RGB-D扫描的3D语义场景分割
- ScanComplete: Large-Scale Scene Completion and Semantic Segmentation for 3D Scans: 将场景的不完整3D扫描作为输入,能够预测出完整的3D模型以及每个体素的语义标签
- DeepVO: A Deep Learning approach for Monocular Visual Odometry
- Lightweight Unsupervised Deep Loop Closure: 用CNN解决闭环问题
以上不全,还请大神留言补充哈
下面是重点~
那些年有没有哭晕在厕所?
很多研究SLAM的小伙伴通常会经历以下阶段:
- 看SLAM相关的论文,发现很多公式、理论看不懂,好不容易努力看了个大概,也不知道具体怎么用。
- 于是去跑开源代码,安装调试出错,网上也找不到解决方案。不知道是环境配置问题还是代码有bug。
- 好不容易跑通了代码。在实际测试时发现问题很多,远不如论文里写的那么牛逼,不知道这个算法的适用场景是什么。抓不住重点瞎折腾,浪费了时间。
- 没办法,硬着头皮去看代码,代码量又非常大,看起来非常痛苦,急需大牛帮忙梳理思路。
- 摸索了很久,终于发现有几个点(藏的很深)好像比较影响算法性能,还发现了一些trick的东西。自己也不会改进,感觉被骗了,纠结要不要换个开源试试。
- 反反复复好不容易找到适合自己的开源方案,发现上面过程要再来一遍,想要理清代码,搞懂原理也要花费大量精力,更别提改进代码了。
- 哭晕在SLAM的汪洋大海里。。。

学习SLAM中经历上述阶段是令人痛苦的,关键是浪费了很多宝贵的时间,即使是SLAM大神,我估计或多或少都经历过上述阶段。如果一开始有大神指点一下,肯定能绕开不少坑吧
希望在这里
基于此,计算机视觉life想要做一件事情,就是解读目前流行的开源SLAM方案(包括但不限于上述列表),帮助SLAM学习者少踩坑。如果你是一位SLAM研究者,对目前SLAM流行的开源方案有一定研究,可以加入我们,一起搞点大事。
加入方法:
请简单介绍一下自己的基本信息,如果能直接附上简历(可选)就更好啦,基本信息包括但不限于:
姓名、微信号、所在学校/公司、熟悉哪个SLAM框架,可以详细描述一下特长:比如对xx开源算法熟悉原理应用,做过xx项目,发表过xx论文,主导过xx产品等。
以上越详细越好,请务必留下微信号,方便取得联系
本文长期有效,请将上述信息发送至 simiter@126.com,邮件标题「开源SLAM」。不管是否通过筛选,一周内都会收到回复。
最后,请把此文转发给你认识的SLAM大神,愿你头发浓密,心想事成。

推荐阅读
从零开始一起学习SLAM | 为什么要学SLAM?
从零开始一起学习SLAM | 学习SLAM到底需要学什么?
从零开始一起学习SLAM | SLAM有什么用?
从零开始一起学习SLAM | C++新特性要不要学?
从零开始一起学习SLAM | 为什么要用齐次坐标?
从零开始一起学习SLAM | 三维空间刚体的旋转
从零开始一起学习SLAM | 为啥需要李群与李代数?
从零开始一起学习SLAM | 相机成像模型
从零开始一起学习SLAM | 不推公式,如何真正理解对极约束?
从零开始一起学习SLAM | 神奇的单应矩阵
从零开始一起学习SLAM | 你好,点云
从零开始一起学习SLAM | 给点云加个滤网
从零开始一起学习SLAM | 点云平滑法线估计
从零开始一起学习SLAM | 点云到网格的进化
从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码
零基础小白,如何入门计算机视觉?
SLAM领域牛人、牛实验室、牛研究成果梳理
我用MATLAB撸了一个2D LiDAR SLAM
可视化理解四元数,愿你不再掉头发
最近一年语义SLAM有哪些代表性工作?
视觉SLAM技术综述
汇总 | VIO、激光SLAM相关论文分类集锦
快看,那个学SLAM 的崩溃了!的更多相关文章
- 快看Sample代码,速学Swift语言(1)-语法速览
Swift是苹果推出的一个比较新的语言,它除了借鉴语言如C#.Java等内容外,好像还采用了很多JavaScript脚本里面的一些脚本语法,用起来感觉非常棒,作为一个使用C#多年的技术控,对这种比较超 ...
- 快看Sample代码,速学Swift语言(2)-基础介绍 快看Sample代码,速学Swift语言(1)-语法速览
快看Sample代码,速学Swift语言(2)-基础介绍 Swift语言是一个新的编程语言,用于iOS, macOS, watchOS, 和 tvOS的开发,不过Swift很多部分内容,我们可以从C或 ...
- 跟vczh看实例学编译原理——一:Tinymoe的设计哲学
自从<序>胡扯了快一个月之后,终于迎来了正片.之所以系列文章叫<看实例学编译原理>,是因为整个系列会通过带大家一步一步实现Tinymoe的过程,来介绍编译原理的一些知识点. 但 ...
- 跟vczh看实例学编译原理——三:Tinymoe与无歧义语法分析
文章中引用的代码均来自https://github.com/vczh/tinymoe. 看了前面的三篇文章,大家应该基本对Tinymoe的代码有一个初步的感觉了.在正确分析"print ...
- 跟vczh看实例学编译原理——零:序言
在<如何设计一门语言>里面,我讲了一些语言方面的东西,还有痛快的喷了一些XX粉什么的.不过单纯讲这个也是很无聊的,所以我开了这个<跟vczh看实例学编译原理>系列,意在科普一些 ...
- 看代码学知识之(2) ListView无数据时显示其他View
看代码学知识之(2) ListView无数据时显示其他View 今天看的一块布局是这样的: <!-- The frame layout is here since we will be show ...
- 看日记学git摘要~灰常用心的教程
看日记学git linux 命令行 cd ls / ls -a clear mkdir rmdir echo "hi, good day" > hi.txt touch he ...
- 比年轻更年轻,快看能否接棒B站?
撰文 |懂懂 编辑 | 秦言 来源:懂懂笔记 背靠超新Z世代,快看能否接棒B站? 国漫什么时候能追上日漫? 国漫作者真能挣到钱吗? 国漫什么时候才能走向世界? 这是中国漫画从业者的"灵魂三问 ...
- 快看Sample代码,速学Swift语言(2)-基础介绍
Swift语言是一个新的编程语言,用于iOS, macOS, watchOS, 和 tvOS的开发,不过Swift很多部分内容,我们可以从C或者Objective-C的开发经验获得一种熟悉感.Swif ...
随机推荐
- Springboot 参数中传List
使用REST API时,经常会有get/delete方法需要传一个list的情况,如果使用post难免有点破坏规则,实际上参数传list是可以做到的 方法一: 后端代码如下: @DeleteMappi ...
- 最新 第一视频java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.第一视频等10家互联网公司的校招Offer,因为某些自身原因最终选择了第一视频.6.7月主要是做系统复习.项目复盘.Leet ...
- 2、1 昨天讲列表缓存,为了让列表更新,我们需要在增、删、改方法之前加 @CacheEvict(value="list",allEntries = true)
package com.bw.service; import java.util.List; import javax.annotation.Resource; import org.springfr ...
- [转帖]8个优秀Docker容器监控工具,收藏了
8个优秀Docker容器监控工具,收藏了 Docker是目前使用最广泛的容器之一,但它并不总是像物理硬件一样可见.而使用docker容器监控工具有助于消除这种透明度的缺失.以下介绍8种优秀Docker ...
- java访问磁盘文件
转载,务必写上原文链接 !(尊重与你分享知识的人) 目录 文件 File 对象 VS FileDescriptor 对象 文件讲解java访问磁盘文件过程 fileReader.read() 图解ja ...
- C++之父给 C 程序员的建议
1. 在 C++中几乎不需要用宏, 用 const 或 enum 定义显式的常量, 用 inline 避免函数调用的额外开销,用模板去刻画一族函数或类型,用 namespace 去避免命名冲突. 2. ...
- 使用Laravel 和 Vue 构建一个简单的SPA
本教程是作者自己在学习Laravel和Vue时的一些总结,有问题欢迎指正. Laravel是PHP的一个框架,Vue是前端页面的框架,这两个框架如何结合起来构建一个SPA(Single Page Ap ...
- 跟我一起学编程—《Scratch编程》第21课:打地鼠
能够熟练创建并使用变量 能够熟练使用“广播”和侦测指令 能够熟练绘制角色和背景造型 能够熟练使用循环.选择等程序指令 任务描述: 绘制有6个地洞的背景:绘制锤子的两个造型:绘制地鼠的造型. 游戏开始后 ...
- Java坑人面试题之自动装箱和拆箱后的引用数据类型和基本数据类型的计算
在Java1.5以后的版本中,引用类型Integer和基本数据类型int之间是可以通过自动装箱和拆箱进行计算的 例如: Integer in = 1; //it means Integer in = ...
- (七)装配Bean(1)
针对给接口提供哪一个具体的实现,也就是装配哪一种具体的实现bean,在Spring中提供了多种方式,主要包括3种: 一.隐式的bean发现机制和自动装配(自动化装配bean) 二.在Java类中进行显 ...