学习SLAM的小伙伴,那些年有没有哭晕在厕所?

2020 年 11 月 29 日 计算机视觉life

点击上方“计算机视觉life”,选择“星标”

快速获得最新干货

那些年有没有哭晕在厕所?

很多学习SLAM的小伙伴通常会经历以下阶段:

  1. 看SLAM相关的论文,发现很多公式、理论看不懂,好不容易努力看了个大概,也不知道具体怎么用。

  2. 于是去跑开源代码,安装调试出错,网上也找不到解决方案。不知道是环境配置问题还是代码有bug。

  3. 好不容易跑通了代码。在实际测试时发现问题很多,远不如论文里写的那么牛逼,不知道这个算法的适用场景是什么。抓不住重点瞎折腾,浪费了时间。

  4. 没办法,硬着头皮去看代码,代码量又非常大,看起来非常痛苦,急需大牛帮忙梳理思路。

  5. 摸索了很久,终于发现有几个点(藏的很深)好像比较影响算法性能,还发现了一些trick的东西。自己也不会改进,感觉被骗了,纠结要不要换个开源试试。

  6. 反反复复好不容易找到适合自己的开源方案,发现上面过程要再来一遍,想要理清代码,搞懂原理也要花费大量精力,更别提改进代码了。

  7. 哭晕在SLAM的汪洋大海里。。。

学习SLAM中经历上述阶段是令人痛苦的,关键是浪费了很多宝贵的时间,即使是SLAM大神,我估计或多或少都经历过上述阶段。如果一开始有人能指点一下,肯定能绕开不少坑吧!

为解决上述问题,「从零开始学习SLAM」知识星球应运而生,星球里目前已经有接近2100人。包含三维重建、机器人SLAM方向沉淀了2年多的干货,包括大量图文、视频教学视频、实习/校招/社招机会、笔试面试题目及解析、疑难解惑、领域内最新开源论文/代码/数据集等(详细介绍见后),还可以加入粉丝专属微信交流群/星球内部资料、每天只需几毛钱,即可快速触达我们优质技术社区,一起交流学习,不管是刚刚入门的新手,还是已经是行业的从业者,都能获益良多~


现在加入立减30元,优惠有效期到12月2日晚上23点截止,名额有限,先到先得,3天内不满意可全额退款



7月底ORB_SLAM3 论文及开源代码了,支持单目、双目、RGB-D相机,针孔、鱼眼,视觉惯性里程计,多地图SLAM等,基本视觉SLAM都被覆盖了,难怪 SLAMer 们惊呼「全能王」来了!


拿几个例子说话:

疯狂震荡!

疯狂绕圈!


甚至滑滑梯从黑管子中穿过!


ORB_SLAM3 虽然是在ORB_SLAM2的基础上加入了很多新的方法,但是基本框架、代码结构都是ORB_SLAM2的延伸和扩展,学习ORB_SLAM2 就非常有必要了!


笔者和小伙伴们一起做了ORB_SLAM2超详细的代码注释,见下,红色表示原作者代码错误!黄色是解答一部分疑惑,绿色的是详细的步骤,蓝色是代码原理推导。


注释的代码持续更新,网址:

https://github.com/electech6/ORBSLAM2_detailed_comments


此外,笔者录制了 ORB_SLAM2 的逐行代码详解系列视频,对于疑难部分绘制了大量示意图片方便理解。方便不熟悉的同学快速入门,每周都会更新,目前已经更新到21讲视频。这里放两个视频供大家参考。

ORBSLAM2原理代码详解1-简介、安装、运行


ORBSLAM2代码详解19-如何构建离线/在线vocabulary tree,图像如何转化为词袋BowVector和特征向量FeatureVector


视频中不仅仅讲ORBSLAM2本身,也扩展讲解了很多相关知识。

目前视频已经更新到第40讲,预计更新到50讲+,已经更新的视频每个10-30分钟,标题见下:


ORBSLAM2原理代码详解01-简介安装运行.mp4                                          

ORBSLAM2原理代码详解02-图像金字塔特征点数目、灰度质心圆索引.mp4                         

ORBSLAM2原理代码详解03-特征提取仿函数、图像扩充金字塔.mp4                         

ORBSLAM2原理代码详解04-特征点四叉树均匀化分配策略.mp4                                    

ORBSLAM2原理代码详解05-ORB特征点方向计算实现旋转不变性.mp4                                

ORBSLAM2原理代码详解06-ORB描述子steer brief计算方法.mp4                            

ORBSLAM2原理代码详解07-去畸变算图像边界划分网格.mp4                                     

ORBSLAM2原理代码详解08-稀疏双目立体匹配.mp4                                         

ORBSLAM2原理代码详解09-单目初始化快速特征匹配方法.mp4                                    

ORBSLAM2原理代码详解10-单目初始化中特征匹配角点筛查原理及bug解析.mp4                

ORBSLAM2原理代码详解11-单目初始化单应矩阵归一化及DLT计算原理.mp4                       

ORBSLAM2原理代码详解12-单目初始化根据得分找到最佳单应基础矩阵.mp4                       

ORBSLAM2原理代码详解13-卡方检验介绍及在源码的应用.mp4                                    

ORBSLAM2原理代码详解14-从单应矩阵恢复位姿及三角化.mp4                                    

ORBSLAM2原理代码详解15-从基础矩阵得到最佳位姿及三维点.mp4                                  

ORBSLAM2原理代码详解16- 初始化三维点来构造初始化地图.mp4                                  

ORBSLAM2原理代码详解17- 初始化关键帧更新共视关系、尺度归一化.mp4                         

ORBSLAM2原理代码详解18-视觉词袋BoW的应用背景.mp4                                     

ORBSLAM2原理代码详解19- 图像描述子转化为BowVector和FeatureVector.mp4               

ORBSLAM2原理代码详解20- 参考关键帧跟踪当前普通帧.mp4                                    

ORBSLAM2原理代码详解21- 恒速模型跟踪当前普通帧.mp4                                     

ORBSLAM2原理代码详解22- 跟踪丢失后的重定位方法.mp4                                     

ORBSLAM2原理代码详解23- 跟踪局部地图-创建局部关键帧和地图点.mp4                           

ORBSLAM2原理代码详解24-局部地图跟踪-局部地图点搜索匹配.mp4                                 

ORBSLAM2原理代码详解25- 关键帧简介、插入及创建关键帧.mp4                                  

ORBSLAM2原理代码详解26- 不同跟踪方法的对比、跟踪完整流程.mp4                                

ORBSLAM2原理代码详解27- 局部建图线程处理新关键帧、检查删除地图点.mp4                  

ORBSLAM2原理代码详解28- 局部建图线程生成新的地图点.mp4                                   

ORBSLAM2原理代码详解29- 局部建图里两级局部关键帧地图点融合.mp4                            

ORBSLAM2原理代码详解30- 局部建图里localBA过程.mp4                                  

ORBSLAM2原理代码详解31- 局部建图线程剔除关键帧及线程梳理.mp4                                

ORBSLAM2原理代码详解32- 闭环检测寻找初始闭环候选关键帧.mp4                                 

ORBSLAM2原理代码详解33- 根据闭环连续性进一步精选闭环候选关键帧.mp4                      

ORBSLAM2原理代码详解34- 为什么需要计算Sim3?.mp4                                    

ORBSLAM2原理代码详解35- 通过估计的Sim3变换互相投影来获得更多的匹配对.mp4          

ORBSLAM2原理代码详解36- 闭环时固定地图点用G2O进行Sim3优化.mp4                           

ORBSLAM2原理代码详解37- 闭环候选连接关键帧地图点投影匹配.mp4                                

ORBSLAM2原理代码详解38- 闭环矫正SIM3位姿传播.mp4                                    

ORBSLAM2原理代码详解39- 闭环矫正SIM3位姿修正地图点.mp4                                 

ORBSLAM2原理代码详解40- 闭环相连关键帧组投影匹配融合地图点.mp4        


欢迎加入「从零开始学习SLAM」知识星球一起学习!


SLAM知识星球已经运行两年多,沉淀的干货越来越多,目前已经有约2千人加入,早期加入的成员很多已经进入业界知名公司、高校研究机构开启了精彩的人生。希望SLAM知识星球能够帮助更多的小伙伴快速找到组织,能够高效的进入学习状态,少走弯路,共同进步



扫码加入,不满意3天内无条件退款!



我们的SLAM知识星球学习交流社区,包含:


  1. 图文教程:从零开始学习SLAM图文教程、练习题及答案解析,更新到第19课

  2. 视频教程:ORBSLAM2 逐行代码详解(更新到12课)、环境/第三方库配置使用、作业讲解、疑难/常见错误讲解、VO代码讲解

  3. 面试经验:SLAM常见面试题目及答案解析、SLAM笔试题目及答案、

  4. 参考资料:电子书、实用手册、SLAM最新论文、开源代码介绍

  5. 工作机会:第一时间发布三维视觉、SLAM相关内推实习/校招/社招岗位、项目合作、硕博招生等

  6. 答疑解惑:包括作业解答、知识盲点梳理、调研调试方法、硕博方向选择等

  7. 优秀同学:星球内嘉宾和学员都非常优秀上进,包括:


    来自大疆、旷世、商汤、虹软、百度、上汽、海康威视、达闼、极智嘉、肇观、华捷艾米、银星智能、indemind、中科慧眼等公司的视觉SLAM/激光SLAM/三维重建/多传感器融合/点云处理算法工程师、技术leader


    来自慕尼黑理工、KIT、柏林工大、东京大学、筑波大学、瑞典皇家理工、苏黎世大学、卡迪夫大学、阿德莱德大学、约翰霍普金斯大学、香港理工、香港中文等境外留学生


    来自清华、北航、北邮、中科院、上交、华东理工、上大、浙大、杭电、南大、南航、南邮、矿大、中科大、哈工大、西交、西电、武大、华科、成电、华南理工、广东工大、国防科大、东大、深大等国内优秀硕博士




什么是SLAM?


SLAM是 Simultaneous Localization And Mapping的 缩写,一般翻译为:同时定位与建图、同时定位与地图构建。


SLAM的典型过程是这样的:当某种移动设备(如机器人/无人机、手机、汽车等)从一个未知环境里的未知地点出发,在运动过程中通过传感器(如激光雷达、摄像头等)观测定位自身在三维空间中的位置和姿态,再根据自身位置进行增量式的三维地图构建,从而达到同时定位和地图构建的目的

传统的视觉算法主要是对针对二维图像的处理,借助深度学习在分类识别方面取得了超越人眼精度的巨大成就,就像人眼是通过双眼立体视觉来感知三维世界一样,智能移动终端(比如智能手机、无人汽车、无人机、智能机器人)需要能够像人类一样利用SLAM算法来快速精确的感知、理解三维空间。


最近几年,以双目相机、结构光/TOF相机、激光雷达为代表的三维传感器硬件迭代更新迅猛,国内外已经形成了成熟的上下游产业链。三维视觉传感器也逐渐走入普通人的生活,在智能手机、智能眼镜等设备上应用越来越多,以手机为例,苹果、华为、小米、OPPO、VIVO等手机大厂都在积极推动结构光/TOF相机在手机上的普及。

SLAM技术为核心的三维视觉在学术界也是一个热门方向,从最近几年计算机视觉相关的顶级会议CVPR, ICCV,  ECCV,IROS, ICRA 录用论文来看,视觉定位、三维点云识别分割、单目深度估计、无人驾驶高精度导航、语义SLAM等相关论文占比越来越高。


因此SLAM技术在最近几年发展迅猛,广泛应用于增强现实感知、自动驾驶高精度定位、机器人自主导航、无人机智能飞行等前沿热门领域。




关于SLAM的入门介绍及应用案例解析,可以看笔者在一次线下分享中,做的一个入门视频介绍,时长约55分钟

学习SLAM如何入门?


SLAM是涵盖图像处理、多视角视觉几何、机器人学等综合性非常强的交叉学科。

学习SLAM涉及线性代数矩阵运算、李群李代数求导、三维空间刚体变换、相机成像模型、特征提取匹配、多视角几何、非线性优化、回环检测、集束调整、三维重建等专业知识。SLAM是强实践学科,需要具有一定的C++编程能力,掌握Linux操作系统、Eigen, Sophus, OpenCV, Dbow, g2o, ceres等第三方库,能够快速定位问题,解决bug。


SLAM关联知识(点开查看大图)


这对于初学者来说无疑具有较高的门槛,也需要花费不少的时间来摸索重点,打好基础。这个过程可能比较痛苦,但是熬过了这个过程,你就拥有了自己独有的核心竞争力,不用担心轻易被取代,未来会有非常强的竞争力


但是目前关于SLAM学习的资料不多,而且参差不齐,初学者推荐高翔的《视觉SLAM十四讲》,该书也是本教程的必备参考书籍


计算机视觉life总结了SLAM学习资源树(点击看大图)


但很多小伙伴在学习期间仍然会遇到很多困难:公式看不懂,代码不会写,不知道怎么入手,没有人指导或者一起讨论,很容易不得要领,进度极慢,走弯路等,不仅浪费了时间和精力,甚至因此放弃了该方向的研究,以后可能再也没有机会进入这个领域了,错过了时代的风口


目前SLAM领域优秀企业列表(点开查看大图)


有没有好的教程和学习圈子,可以避免采坑,及时答疑解惑,少走弯路,快速入门?



《从零开始学习SLAM》知识星球

该星球已经创立2年多,有约2千小伙伴加入学习,每天都有思维的碰撞,星球已经累计几千条优质主题,是少有以SLAM学习为主题的高质量知识星球。主要有以下几个亮点:


1、技术介绍全面。学习过程从基础的知识开始循序渐进,内容涵盖图文教程、视频教程、技术交流分享、工作机会


2、专门设计的练习题重视实践。星主根据不同知识点设计一些实用性的练习题(推导、编程等),所有提交作业都会批改。光看不做假把式,适当的练习能够加深读者的理解,把知识消化吸收为自己所用。


3、高质量的交流学习社区。星球成员来自国内外硕博士及相关公司研发人员。练习题,有专属内部实名微信群 帮助日常互助答疑解惑。所有成员都可以进行发布问题、分享知识、上传资源、点赞、留言、赞赏、收藏等操作。星球里提问均免费,星主会及时答疑解惑 。



4、精选SLAM常见面试题,定期发布在星球里,引导大家讨论,并提供参考答案,帮助找工作的同学从容面试。目前已经有几十条SLAM常见面试题目和详细解答。

见《干货总结 | SLAM 面试常见问题及参考解答》。星球内也会经常发布SLAM相关的实习生/校园/社会招聘



如何加入知识星球

知识星球需付费加入,价格随人数增加逐渐上涨,因此越早加入越优惠有效期一年(从加入时间开始往后一年有效,到期仍可查看之前所有内容,查看新内容需续费),平时忙也没关系,有空可以反复看。



时间不等人,万事早为先。学习切忌单打独斗,一个良好的学习圈子能够帮助你快速入门,交流讨论才能少走弯路,快速进步!加入SLAM学习星球,把握时代的风口,和国内外优秀的SLAM研究者一起交流进步,甚至找到理想工作。3天内无条件退款等你来哦


加入还可以获得:

- SLAM星球入门系列练习题答案汇总

- SLAM星球问答整理

- 计算机视觉、SLAM入门学习资料

- 课程与项目视觉相关技术问题,有问必答

- 不定期SLAM相关求职招聘信息及经验分享


扫码加入,不满意3天内无条件退款!


加入之后,邀请其他人加入后双方都可以获得8%-18%的返现。快快分享给爱学习的小伙伴吧~



如果没有考虑好是否加入星球也没关系。可以关注公众号:计算机视觉life,公众号里有大量SLAM、三维视觉相关的高质量文章,都是免费的哦~


长按关注计算机视觉life

登录查看更多
0

相关内容

一份硬核计算机科学CS自学修炼计划
专知会员服务
40+阅读 · 2021年1月12日
【斯坦福CS330】终身学习: 问题陈述,前后迁移,30页ppt
专知会员服务
25+阅读 · 2020年12月13日
【开放书】SLAM 中的几何与学习方法,62页pdf
专知会员服务
107+阅读 · 2020年6月5日
Python数据分析:过去、现在和未来,52页ppt
专知会员服务
99+阅读 · 2020年3月9日
台湾大学林轩田机器学习书籍《从数据中学习》,216页pdf
专知会员服务
84+阅读 · 2019年12月13日
如何系统学习视觉惯性里程计(VIO)?
计算机视觉life
16+阅读 · 2019年5月12日
从零开始一起学习SLAM | 点云到网格的进化
计算机视觉life
12+阅读 · 2019年1月9日
从零开始一起学习SLAM | 点云平滑法线估计
计算机视觉life
4+阅读 · 2018年12月28日
136个Python 机器学习知识点让你受益终生!
PaperWeekly
8+阅读 · 2018年12月23日
从零开始一起学习SLAM | 给点云加个滤网
计算机视觉life
6+阅读 · 2018年12月18日
从零开始一起学习SLAM | 你好,点云
计算机视觉life
9+阅读 · 2018年11月26日
知识星球:从零开始一起学习SLAM
计算机视觉life
7+阅读 · 2018年10月17日
从零开始一起学习SLAM | 学习SLAM到底需要学什么?
计算机视觉life
8+阅读 · 2018年9月9日
VIP会员
相关VIP内容
一份硬核计算机科学CS自学修炼计划
专知会员服务
40+阅读 · 2021年1月12日
【斯坦福CS330】终身学习: 问题陈述,前后迁移,30页ppt
专知会员服务
25+阅读 · 2020年12月13日
【开放书】SLAM 中的几何与学习方法,62页pdf
专知会员服务
107+阅读 · 2020年6月5日
Python数据分析:过去、现在和未来,52页ppt
专知会员服务
99+阅读 · 2020年3月9日
台湾大学林轩田机器学习书籍《从数据中学习》,216页pdf
专知会员服务
84+阅读 · 2019年12月13日
相关资讯
如何系统学习视觉惯性里程计(VIO)?
计算机视觉life
16+阅读 · 2019年5月12日
从零开始一起学习SLAM | 点云到网格的进化
计算机视觉life
12+阅读 · 2019年1月9日
从零开始一起学习SLAM | 点云平滑法线估计
计算机视觉life
4+阅读 · 2018年12月28日
136个Python 机器学习知识点让你受益终生!
PaperWeekly
8+阅读 · 2018年12月23日
从零开始一起学习SLAM | 给点云加个滤网
计算机视觉life
6+阅读 · 2018年12月18日
从零开始一起学习SLAM | 你好,点云
计算机视觉life
9+阅读 · 2018年11月26日
知识星球:从零开始一起学习SLAM
计算机视觉life
7+阅读 · 2018年10月17日
从零开始一起学习SLAM | 学习SLAM到底需要学什么?
计算机视觉life
8+阅读 · 2018年9月9日
Top
微信扫码咨询专知VIP会员