什么是SLAM

随着无人驾驶的发展,人们发现对于车辆外部环境的感知,以及车辆自身空间位置的确定变得尤为重要,知道外部环境就解决了“知彼”,而知道车辆本身在环境中的位置,就是“知己”,当我们达到“知己知彼”时,操控车辆在环境中运行,就显得游刃有余。
  
  其实我们可以想象一下我们自己在生活中行走时候的场景,我们首先观察环境,同时我们可以获得自己在环境中的位置,然后我们就可以大胆的向前走了,一边走一边再观察环境获得自己的位置,不断地往复,我们就可以在任何未知、复杂的环境中运动自如。
  
  而这个同时了解外部环境和自身定位的过程就叫做 SLAM,它的英文全称是:Simultaneous Localization and Mapping,译作“同时定位与地图构建”。

SLAM的就业情况

自动驾驶的火热,就代表了SLAM的火热,现在(2019年)不管大小无人驾驶公司,基本都有SLAM的岗位,而且普遍工资都不低,对于一个应届的研究生,拿下三四十万的年薪并不是很难。SLAM相关的博士毕业生工资更是可观,前段时间VINS-MONO的作者,港科大沈邵劼组的博士秦通,拿到华为201万年薪的offer。当然这样的大牛是少数,但是也足以说明SLAM的火热。
  
  SLAM工程师的年薪之所以这么高,一方面是因为自动驾驶的火热,另一方面SLAM是一个门槛很高的方向,它的理论知识很多,而且有些十分抽象,并且国内现在做这个方向的人还不是很多。不像是深度学习一个月就能入门,立马就能着手做一些东西,SLAM可能学了一年,还会觉得自己好像啥也不会,连一个完整的简单代码都写不出来。

我的SLAM学习历程

我是研一下的时候开始接触并学习SLAM,当时我们组调研一些资料,最终确定学习视觉SLAM。从那时起我的主要经历就放在SLAM的学习上了。现在还有大半年我就毕业了,算来学习SLAM也有两年的时间了,尽管看上去两年时间挺长的,但是我的大部分时间都是在自学,所以期间走了不少弯路,直到现在我都不觉得自己已经入门SLAM了,我觉得我只是找到了一些学习SLAM的感觉了。
  
  趁着毕业之前最后一些时间,给自己定下一个目标,挤出一些时间来,总结一下自己SLAM上学到一些东西,一方面是将知识记录下来,另一方面也是将自己前期学习中留下的坑,填一填。

关于《视觉SLAM十四讲》

对于SLAM初学者,一本高质量内容友好的教材非常重要,我在学习SLAM的时候,高翔的《视觉SLAM十四讲 从理论到实践》,给了我巨大的帮助,这本书是国内目前能看到的SLAM教材中,我觉得它算的上是最全面,最通俗的一本教材了。有些人说它不好,不适合初学者,这也无可厚非,确实这本书,为了突出一些内容和节省篇幅,省掉了很多算法的介绍,初学者读起来,会很吃力。

比方说第七讲,

尺度不变性由构建图像金字塔,并在图像金字塔的每一层上检测角点来实现

尽管这一句话并没有几个字,但是这一句话中隐藏的算法知识非常多,首先我们要知道什么是尺度不变性,其次我们还要知道什么是图像金字塔,但是这些东西在书中并没有给出解释。
  
  像这样被省略掉的算法知识点很多,有些对于公式的推导也省略了一些过程,对于初学者的理解造成不少麻烦。我在初读这本书的时候,其中很多这样的知识令我困惑。经过一些时间的学习之后,对其中的内容有了一些了解,我想借此再次拜读一下这本书,对其中的一些内容进行解读,对于一句话就带过的,但是很重要的算法,进行进一步的扩充,对于一些代码,再加上更详细的注释。

希望我可以坚持住,直到写完整本书的内容解读,加油。

你所浪费的今天,是许多人祈求奢望的明天;你所面对的现在,是未来的你回不去的曾经。

更新(2020年3月7日)

解读十四讲的内容基本就要写完了,过程中我不断地翻看之前的内容,每次看都觉得自己的写东西还不够好,常常写着写着就没有新东西,就完全变成解释书中的内容了,这一点是我特别不满意的地方,感觉这样一方面自己没有得到很大提高,另一方面内容也不够完善。
  
  在又一遍通读此书之后,我还是觉得这本书离你能自己写出一个简单的SLAM系统还很遥远,一个原因是因为书中的内容实际还是过于简单,另外一个重要的原因是书中为了考虑篇幅,省略了一些非常重要的算法的介绍,这些算法稍显复杂,但是在工程实际中确实是最常使用的,比如在PnP求解中常采用的一种方法是EPnP,而书中却并未介绍,又比如对于E矩阵和H矩阵,实际上的从它们分解出R和t也是非常重要的一步,但是书中也并未解释,我觉得这些内容对于初学SLAM的同学来说,会稍显复杂,但是这是一个必不可少的环节,你终究是要去学习一些更复杂的算法。这些被作者省略的内容,实际上你都能很容易的找到对应的资料或者论文研读,但是如果没有一些基础知识,直接看势必有些晦涩。
  
  所以我准备继续填补我在学习十四讲中的一些坑,继续挖掘一些更深层次的算法,也许这些算法都已经有人介绍过了,我想在别人的基础之上,再学习理解一下,然后将自己的理解记录在博客中,以达到促进自己不断学习的目的,如果能为那些初学SLAM的朋友带来帮助,我将不胜荣幸。
  
  后续我希望继续补充之前解读的内容,但是新加入的内容,我会明显标示出来。
  
  我还有一句忠告,送给那些正在学习的人,学习算法一定要多动手,如果你是初学者一定要耐下性子,去自己实现一些简单的算法,不要觉得这样是浪费时间,我就是因为这方面欠缺,现在开始显露一下问题。
  
  最后最后,我要感谢那些在抗疫一线奋斗的可爱的同学,是你们的辛苦让我们拥有健康的生活。

解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 前言相关推荐

  1. 视觉SLAM十四讲学习笔记---前三讲学习笔记总结之SLAM的作用、变换和位姿表示

    经过半年学习SLAM相关知识,对SLAM系统有了一些新的认识,故回看以前的学习记录,做总结和校正. 前三讲学习笔记如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉S ...

  2. slam十四讲第二版 pdf_聊聊这两年学习slam啃过的书

    作者:Amber 来源:微信公众号|3D视觉工坊(系投稿) 「3D视觉工坊」技术交流群已经成立,目前大约有8000人,方向主要涉及3D视觉.CV&深度学习.SLAM.三维重建.点云后处理.自动 ...

  3. 视觉SLAM十四讲学习笔记-第六讲学习笔记总结(1)---非线性优化原理

    第六讲学习笔记如下: 视觉SLAM十四讲学习笔记-第六讲-非线性优化的状态估计问题_goldqiu的博客-CSDN博客 ​​​​​​视觉SLAM十四讲学习笔记-第六讲-非线性优化的非线性最小二乘问题_ ...

  4. tensorflow 语义slam_研究《视觉SLAM十四讲从理论到实践第2版》PDF代码+《OpenCV+TensorFlow深度学习与计算机视觉实战》PDF代码笔记...

    我们知道随着人工神经网络和深度学习的发展,通过模拟视觉所构建的卷积神经网络模型在图像识别和分类上取得了非常好的效果,借助于深度学习技术的发展,使用人工智能去处理常规劳动,理解语音语义,帮助医学诊断和支 ...

  5. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-三角测量和实践

     专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第 ...

  6. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-对极几何和对极约束、本质矩阵、基础矩阵

    专栏系列文章如下:  专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLA ...

  7. 视觉SLAM十四讲学习笔记-第四讲---第五讲学习笔记总结---李群和李代数、相机

    第四讲---第五讲学习笔记如下: 视觉SLAM十四讲学习笔记-第四讲-李群与李代数基础和定义.指数和对数映射_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第四讲-李代数求导与扰动模 ...

  8. 视觉SLAM十四讲学习笔记专栏汇总

    专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二 ...

  9. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-PnP和实践

      专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记- ...

  10. Ubuntu20/视觉SLAM十四讲踩坑记录

    Ubuntu/视觉SLAM十四讲踩坑记录 Ubuntu(20)/视觉SLAM十四讲踩坑记录: 共性问题: 1.安装OpenCV后,例程仍无法找到OpenCV文件 ch3 visualizeGeomet ...

最新文章

  1. Java对象的生命周期与作用域的讨论(转)
  2. 六、Linux 文件基本属性
  3. 2021-05-07 matlab中的addpath用法
  4. 三消也玩策略?这款游戏没那么简单——《妙连千军》
  5. BZOJ 3173: [Tjoi2013]最长上升子序列
  6. 牛客 - 完全图(二分)
  7. intellij运行多个工程
  8. ES6-24 生成器与迭代器的应用
  9. 那些相似的CRM之间究竟有无区别
  10. 【Postgresql】pg掉电后无法重启
  11. 概率、随机数、随机数生成函数(面试题)
  12. How to enable/disable EWF
  13. 堪称Python入门新华字典的《Python背记手册》高清无码版,开源免费下载
  14. Golang-web网站入门-服务器入门
  15. Linux进阶 | 万字详解Docker镜像的制作,手把手学会!
  16. 条形码识别(1)——基础知识
  17. 教你购物只花一半钱,先领优惠券再购物,原来你一直都买贵了?
  18. 数字系统设计(FPGA)课程设计: 多功能数字钟
  19. 吃鸡过后末日题材成新宠?6月末日新游扎堆,绝不只是代号:生机
  20. 新中新二代身份证读卡Syn_ReadBaseMsg方法

热门文章

  1. 【树莓派C语言开发】实验13:雨滴传感器模块(关联PCF8591)
  2. 红蜘蛛多媒体网络教室v7.2版一款网络教学的软件_我是亲民_新浪博客
  3. redis数据库实例
  4. awvs无法启动问题
  5. Charles使用教程(Mac)
  6. 正弦波及FFT变换py程序
  7. 用拼音输入法字典库实现同音字模糊查询
  8. java课程设计——简易计算器
  9. 计算机等级考试数据库三级知识点吐血总结!!!
  10. Win10 虚拟机安装 Windows xp(professional sp3)简记(非教学)