如何从零开始系统化学习视觉SLAM?
由于显示格式问题,建议阅读原文:如何从零开始系统化学习视觉SLAM?
什么是SLAM?
SLAM是 Simultaneous Localization And Mapping的 英文首字母组合,一般翻译为:同时定位与建图、同时定位与地图构建。虽然听起来比较拗口,但SLAM却是三维视觉的核心技术,广泛应用于AR、自动驾驶、智能机器人、无人机等前沿热门领域。可以说凡是具有一定行动能力的智能体都拥有某种形式的SLAM系统。关于SLAM的具体应用场景介绍可以看《SLAM有什么用?》
SLAM是计算机视觉技术的下一个风口
相比于计算机 视觉领域的另一个热门:深度学习,SLAM技术尚处于技术爆发前期。这是因为:
在学术研究 方面:从最近几年计算机视觉的三大顶级会议CVPR, ICCV, ECCV 录用论文来看,以SLAM技术为核心的三维视觉论文正在快速增长;
在硬件设备方面:以双目相机、深度相机为代表的消费级3D相机最近几年发展迅猛,国内外已经形成了成熟的产业链。3D相机在智能手机、智能眼镜等设备上应用越来越多,以手机为例,苹果、华为、小米、OPPO、VIVO等手机大厂都在积极推动深度相机在手机上的普及。
在应用场景方面:最近几年无人机,智能机器人,自动驾驶汽车,AR设备的快速发展也极大促进SLAM技术在现实场景中的应用。
雷军说,站在时代的风口,猪都能飞起来。可以预见,SLAM技术是计算机视觉技术继深度学习后的下一个爆发的风口,关于这方面详情见《为什么要学SLAM?》。
学习SLAM如何入门?
那么,想要学习SLAM如何入门呢?
我们还是先拿深度学习做个对比。从研究角度出发,深度学习相对容易入门,这是由于深度学习本身黑盒子的特点,很多从业者不需要了解图像处理、计算机视觉的基础知识便可以得到一个相对较好的结果,因此入门门槛并不是很高。但事情都具有两面性,门槛越低的行业,也容易被替代。
而学习SLAM则需要具备三维空间刚体变换、相机成像模型、特征点提取与匹配、多视角几何、非线性优化等内容。这对于非该领域的从业者来说算是较高的门槛,也需要花费不少的时间来打基础。这个过程可能比较痛苦,但是熬过了这个过程,你就拥有了自己独有的核心竞争力,不用担心轻易被取代,未来会有非常强的竞争力。
但是目前关于SLAM学习的资料不多,而且参差不齐,初学者推荐高翔的《视觉SLAM十四讲》,该书也是本教程的必备参考书籍,虽然本书写的已经比较基础,但很多小伙伴在学习期间仍然会遇到很多困难:公式看不懂,代码不会写,不知道怎么入手等,白白浪费了时间和精力,甚至因此放弃了该方向的研究,白白错过了时代的风口。
有没有好的入门方法?
首先,我们来看看入门都需要哪些知识。这篇文章告诉你《学习SLAM到底需要学什么?》,以下是笔者所总结的SLAM学习的知识树:
《从零开始学习SLAM》知识星球
扫码即可加入学习!
支持三天内无条件退款(退款2次无法再加入)
有效期一年,平均每天不到0.3元,就能够和一群优秀的SLAM从业者一起交流进步,甚至解决就业问题。AI时代,最好的投资就是投资自己的大脑。
《从零开始学习SLAM》知识星球
星主是中科院毕业博士,目前在某CV公司从事视觉SLAM相关研究工作。星球主要有以下几个亮点:
1、技术介绍全面,不枯燥。该系列从最基础的知识开始介绍,一次只介绍一个具体的知识点,以形象生动的公众号图文结合视频课程,一点点深挖SLAM的各个重要技术点。有效期一年(从加入时间开始往后一年有效,到期仍可查看之前所有内容,查看新内容需续费),平时忙也没关系,有空可以反复看。
2、有习题,重视实践。笔者会根据不同知识点设计一些实用性的练习题(推导、编程等),俗话说,光看不做假把式,适当的练习能够加深读者的理解,把知识消化吸收为自己所用。
3、高质量的交流学习社区。练习题参考答案都会放到知识星球「从零开始一起学习SLAM」里,并会根据作业情况进行不定期讲解。星球内所有成员都可以进行发布问题、分享知识、上传资源、点赞、留言、赞赏、收藏等操作。而所有的交流讨论、资源分享等都可以沉淀下来并方便日后查询。遇到问题可以在星球里免费提问,星主看到后会及时答疑解惑 。
4、精选SLAM常见面试题,定期发布在星球里,引导大家讨论,并提供参考答案,帮助找工作的同学从容面试。目前已经有几十条SLAM常见面试题目和详细解答。
SLAM学习大纲
工具类
1、 熟悉Linux指令及基本操作
2、 熟悉Cmake基本操作
3、 熟悉C++编程,能看懂会使用C++11新特性
4、 熟悉Clion集成开发环境
5、 熟练掌握计算机视觉库OpenCV
6、 熟练掌握几何库Eigen
7、 熟练掌握李代数库Sophus
8、 熟练掌握点云库PCL
9、熟练掌握图优化库G2o
10、 熟练掌握非线性优化库Ceres
。。。
基础知识
1、 SLAM发展概况,宏观了解SLAM应用场景
2、 使用齐次坐标的原因及应用
3、 三维空间刚体旋转的表示方法,重点是四元数、旋转矩阵
4、 李群李代数在SLAM中的应用背景、推导关键公式
6、 双目相机模型
7、 RGB-D相机成像原理
8、 点云处理
9、 相机畸变模型及去畸变方法
10、对极几何
11、单应矩阵
12、相机标定
13、特征点提取、匹配、筛选
14、视觉里程计
15、梯度下降、牛顿法、高斯牛顿、LM、图优化方法
16、PNP、ICP、Bundle Adjustment
17、回环检测
。。。
亮点
1、 优秀论文讲解
2、 RGB-D稠密重建
3、 点云网格化
4、 三维模型重建
5、 从零开始手写一个完整SLAM
。。。
注:
1、 新进星球的同学可以关注 置顶的“内容快速导航”,尽早跟上节奏。
2、 一般隔一段时间会集中视频讲解一下作业,梳理一下常见问题和注意事项,所以大家没提交作业的尽早提交哈。做的不好没关系,关键要真的去做作业。
3、 本课程优势:
会增加比较实用的知识(如点云处理、三维重建等)和编程经验(调试方法、容易出错点讲解)
练习题实用性强,所有提交的作业都会批改,及时指出错误,也可以从其他人的作业中发现不同的做法,快速提高
重点公式/代码细致讲解
循序渐进写出一个完整SLAM
研究方向选择、考研/考博、工作选择等问题都可以免费提问
知识星球需付费加入,随着人数增多,会适当调高价格,越早加入价格越优惠。此外,星球还会红包奖励积极分享、解答问题的成员,只要每天0.3元 ,就能够把握时代的风口,和一群优秀的SLAM从业者一起交流进步,甚至解决就业问题。快用微信扫下面二维码加入SLAM学习圈~
下面是星球里的部分讨论交流截图:
(由于显示格式问题,图片显示有问题,建议阅读原文:如何从零开始系统化学习视觉SLAM? )
如果没有考虑好是否加入星球也没关系。可以关注笔者公众号:计算机视觉life
可以查看、学习以下笔者发布的SLAM学习系列文章,都是免费的哦~
把握时代风口,越早加入越有价值~
以下 是公众号部分文章:
由于格式问题,部分链接显示有问题,建议阅读原文:如何从零开始系统化学习视觉SLAM?
从零开始一起学习SLAM | 为什么要学SLAM?
从零开始一起学习SLAM | 学习SLAM到底需要学什么?
从零开始一起学习SLAM | SLAM有什么用?
从零开始一起学习SLAM | C++新特性要不要学?
从零开始一起学习SLAM | 为什么要用齐次坐标?
从零开始一起学习SLAM | 三维空间刚体的旋转
从零开始一起学习SLAM | 为啥需要李群与李代数?
从零开始一起学习SLAM | 相机成像模型
从零开始一起学习SLAM | 不推公式,如何真正理解对极约束?
从零开始一起学习SLAM | 神奇的单应矩阵
从零开始一起学习SLAM | 你好,点云
从零开始一起学习SLAM | 给点云加个滤网
从零开始一起学习SLAM | 点云平滑法线估计
从零开始一起学习SLAM | 点云到网格的进化
从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码
从零开始一起学习SLAM | 掌握g2o顶点编程套路
零基础小白,如何入门计算机视觉?
SLAM领域牛人、牛实验室、牛研究成果梳理
我用MATLAB撸了一个2D LiDAR SLAM
可视化理解四元数,愿你不再掉头发
最近一年语义SLAM有哪些代表性工作?
视觉SLAM技术综述
汇总 | VIO、激光SLAM相关论文分类集锦
研究SLAM,对编程的要求有多高?
2018年SLAM、三维视觉方向求职经验分享
深度学习遇到SLAM | 如何评价基于深度学习的DeepVO,VINet,VidLoc?
IMU标定 | 工业界和学术界有什么不同?
研究SLAM,对编程的要求有多高?
新型相机DVS/Event-based camera的发展及应用
最近三年开源「语义SLAM/分割/建模」方案介绍
超详细干货 | 三维语义分割概述及总结
如何从零开始系统化学习视觉SLAM?的更多相关文章
- 从零开始一起学习SLAM | 用四元数插值来对齐IMU和图像帧
视觉 Vs. IMU 小白:师兄,好久没见到你了啊,我最近在看IMU(Inertial Measurement Unit,惯性导航单元)相关的东西,正好有问题求助啊 师兄:又遇到啥问题啦? 小白:是这 ...
- 从零开始一起学习SALM-ICP原理及应用
点"计算机视觉life"关注,星标更快接收干货! ## 小白:师兄,最近忙什么呢,都见不到你人影,我们的课也好久没更新了呢 师兄:抱歉,抱歉,最近忙于俗事.我后面一起补上,学习劲头 ...
- 视觉SLAM关键方法总结
点"计算机视觉life"关注,置顶更快接收消息! 最近在做基于激光信息的机器人行人跟踪发现如果单独利用激光信息很难完成机器人对行人的识别.跟踪等功能,因此考虑与视觉融合的方法,这样 ...
- 视觉slam十四讲开源库安装教程
目录 前言 1.Eigen线性代数库的安装 2.Sophus李代数库的安装 3.OpenCV计算机视觉库的安装 4.PCL点云库的安装 5.Ceres非线性优化库的安装 6.G2O图优化库的安装 7. ...
- 从零开始一起学习SLAM | 掌握g2o边的代码套路
点"计算机视觉life"关注,置顶更快接收消息! 小白:师兄,g2o框架<从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码>,以及顶点<从零开始 ...
- 从零开始一起学习SLAM | 掌握g2o顶点编程套路
点"计算机视觉life"关注,置顶更快接收消息! ## 小白:师兄,上一次将的g2o框架<从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码>真的很清晰 ...
- 从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码
首发于公众号:计算机视觉life 旗下知识星球「从零开始学习SLAM」 这可能是最清晰讲解g2o代码框架的文章 理解图优化,一步步带你看懂g2o框架 小白:师兄师兄,最近我在看SLAM的优化算法,有种 ...
- 从零开始一起学习SLAM | 给点云加个滤网
对VSLAM和三维重建感兴趣的在计算机视觉life"公众号菜单栏回复"三维视觉"进交流群. 小白:师兄,上次你讲了点云拼接后,我回去费了不少时间研究,终于得到了和你给的参 ...
- 从零开始一起学习SLAM | 为什么要学SLAM?
在<零基础小白,如何入门计算机视觉?>中我提到过,计算机视觉的研究目前主要分为两大方向:基于学习的方法和基于几何的方法.其中基于学习的方法最火的就是深度学习,而基于几何方法最火的就是视觉S ...
随机推荐
- HTML5全屏浏览器兼容方案
最近一个项目有页面全屏的的需求,搜索了下有HTML5的全屏API可用,不过各浏览器的支持不一样. 标准 webkit Firefox IE Element.requestFullscreen() ...
- Win下必备神器之Cmder
诚言,对于开发码字者,Mac和Linux果断要比Windows更贴心;但只要折腾下,Windows下也是有不少利器的.之前就有在Windows下效率必备软件一文中对此做了下记载:其虽没oh-my-zs ...
- HBase总结 LSM理解
转载的文章,觉得写的比较好 讲LSM树之前,需要提下三种基本的存储引擎,这样才能清楚LSM树的由来: 哈希存储引擎 是哈希表的持久化实现,支持增.删.改以及随机读取操作,但不支持顺序扫描,对应的存储 ...
- Python学习(三十二)—— Django之视图系统
转载自:http://www.cnblogs.com/liwenzhou/articles/8305104.html Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Pyth ...
- [Sublime]Sublime安装以及插件使用
安装直接去官网下载安装了 安装Package Control关于安装Package Control,有两种方法. 一.自动安装 自动安装很方便,网上代码很多.我用的是Sublime Text3,通过V ...
- Redis自学笔记:4.4进阶-消息通知
4.4消息通知 4.4.1任务队列 传递任务的队列.与任务队列进行交互的实体有两类,一类是生产者,一类是消费者. 生产者将需要处理的任务放入任务队列中,二消费者不断从任务队列中读入任务 信息并执行. ...
- XVII Open Cup named after E.V. Pankratiev. XXI Ural Championship
A. Apple 按题意模拟即可. #include<stdio.h> #include<iostream> #include<string.h> #include ...
- React(六)Props属性
state 和 props 主要的区别在于 props 是不可变的,而 state 可以根据与用户交互来改变.这就是为什么有些容器组件需要定义 state 来更新和修改数据. 而子组件只能通过 pro ...
- mobile_1 物理像素
1 物理像素 需求: border: 1px solid red; 在移动端 dpr 为 2 的屏幕上,实际上是 2 物理像素. 如何实现 1 物理像素? 首先,肯定不能 border: 0.5 ...
- 十、JSTL标签库
l JSTL标签库(重点) l 自定义标签(理解) l MVC设计模式(重点中的重点) l Java三层框架(重点中的重点) JSTL标签库 1 什么是JSTL JSTL是apache对EL表达式 ...