如何从零开始系统化学习视觉SLAM?
2019-04-13 22:32 计算机视觉life 阅读(2944) 评论(0) 编辑 收藏 举报由于显示格式问题,建议阅读原文:如何从零开始系统化学习视觉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/分割/建模」方案介绍
超详细干货 | 三维语义分割概述及总结