视觉SLAM十四讲 全书解读
一点儿也不萌的萌萌
一名在自动驾驶领域默默付出的无名小卒
展开
-
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 13 讲 建图
这一讲拖到现在才开始写,其中一个主要的原因是建图部分的内容,一方面比较容易理解,另一方面它在实际的工程中应用较少。工程中很少对视觉构建的地图进行复用,其原因主要有(来自我自己的经验):① 地图的精度较低,多数难以达到导航和定位的要求;② 视觉对光线比较敏感,构建的地图难以较好复用,有时早上建图,下午定位成功率就很低;③ 地图体积大,内存占用率高。视觉slam会维护一个比较复杂的地图数据结构,而这些数据如果不加处理,实际上是很占用资源的,对比cartographor这种激光slam的地图,同样场景下原创 2020-10-03 23:14:33 · 1420 阅读 · 0 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 12 讲 回环检测
在开始讲回环检测之前,我们先看下我们面临的问题!原创 2020-01-07 19:50:40 · 811 阅读 · 0 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 11 讲 后端 2
解读在上一讲的解读中,我介绍了基于图的后端优化,我们也了解了SLAM优化问题的稀疏性,基于稀疏性我们可以在很短的时间内对特征点位置相机姿态进行优化。不过更大的场景下,大量的特征点的存在会严重的降低计算效率,导致计算量越来越大以至于无法实时化1 。 经过观察发现,在做BA优化的时候,特征点的优化占了计算资源的大部分,而实际上经过几轮优化之后,空间位置估计会收敛到一个值保持不动,而发散的外...原创 2020-01-06 19:58:22 · 674 阅读 · 1 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 10 讲 后端1
从这一讲开始我们要开始学习SLAM的后端,前面我们学习了视觉里程计(VO),通过视觉里程计,我们可以构建一个短时间内效果还不错的轨迹和地图,但是长时间的误差的累计,还是会迅速的降低我们的轨迹和地图的精度,所以维护一个更大的地图和轨迹,使其达到最优状态,在实际中还是非常需要的。而这项任务的完成就离不开——后端。概述状态估计和概率解释我们再来看一下SLAM过程的运动方程和观测方程:{xk=f(...原创 2020-01-03 23:24:14 · 892 阅读 · 2 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 9 讲 实践:设计前端
Hello,各位朋友,新年快乐!我们要进入第9讲的解读了,第9讲是纯实践的一讲,我觉得作者的这个布置实在是对初学者太友好了,前面我们学习了前端的所有内容,然后来一个手写前端,一方面复习了前面的内容,另一方面可以让我们简单地窥探一下一个SLAM系统大概长啥样!我还是很希望你好好学习一下这部分代码,如果你是初学者,这可能是见过的最完整的SLAM系统了,如果你掌握了它,你再去看别的优秀开源SLAM框架...原创 2020-01-02 21:01:50 · 1431 阅读 · 6 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 8 讲 视觉里程计2
在第七讲中,作者介绍了基于特征点估计相机运动的方法。特征点法存在以下几个缺点:1.关键点的提取和描述子的计算非常耗时间;2.特征点是提取出来的一些代表性的点,但是忽略了特征以外的所有点;3.对于纹理信息很弱的地方,特征点法往往会失败。于是乎一些改进的思路就出现了:1.保留特征点,但是只计算关键点,去掉耗时的描述子计算过程,然后使用光流法跟踪特征点的运动;2.只计算关键点,不计算描...原创 2019-12-31 17:30:28 · 549 阅读 · 0 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 7 讲 视觉里程计1 ( 下 )
上一篇博客我解读了如何根据已经匹配上的特征点对求解相机的运动《解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 7 讲视觉里程计1 ( 中 )》,这一篇博客我们来看一下如果通过已经求得的相机运动恢复出特征点的空间位置,以及一些别的求解相机运动的方法。三角测量两个图像I1,I2I_1,I_2I1,I2,它们之间的变换矩阵已知为T12T_{12}T12,它们图像上分别有一个特...原创 2019-12-30 21:30:11 · 876 阅读 · 5 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 7 讲 视觉里程计1 ( 中 )
上一篇博客《解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 7 讲视觉里程计1 ( 上 )》,我解读了特征点,讲述了关键点的提取和描述子的计算,以及特征点的匹配。经过匹配之后就会获得很多匹配点对。那么怎么从匹配的点对中获得相机的运动关系呢?解读对极约束作者首先通过三点共面关系,推导出了对极约束。实际上这个推导过程还有一种更加简洁的方法,首先将书中对极几何约束示意图简化成如下...原创 2019-12-28 23:20:41 · 977 阅读 · 6 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 7 讲视觉里程计1 ( 上 )
解读《十四讲》到现在已经是第七讲了,基本上用于SLAM的数学知识已经差不多够了。我相信如果你先前没有接触过开源的SLAM框架的话,前面学习的这些数学知识的应用,可能你不会有一个很深刻的认识,但是往后的内容我们会一点一点的用上这些数学知识。这一讲我们要开始接触到SLAM的前端了,作者在这一讲中提到了很多细小的知识点,但是很多却一句话带过,并没有进一步的介绍,这一讲我也要着重介绍一下这些被一句话带过...原创 2019-12-27 15:38:13 · 986 阅读 · 8 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 6 讲 非线性优化
Hello,各位好朋友,还记得第五讲的时候,我跟你们说过纯数学理论的内容暂时告一段落!好吧,我骗你们了,哈哈! 这一讲不但是纯数学理论,而且还是很有难度的纯数学理论,如果你在看我这篇博客之前,已经看过这一讲的内容了,我相信第一次见到这些内容你可能根本不知道他在说啥!书上眼花缭乱的公式,似乎一直在向你传达两个字——放弃!哈哈,开个玩笑! 这一讲的解读,我准备从一个例子入手,用最通...原创 2019-12-21 23:26:43 · 1080 阅读 · 1 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 5 讲 相机与图像
如果你坚持学习到了第5讲,那么可以给自己稍微鼓励一下。从这一讲开始纯数学理论东西暂时会少一些,多的是一些可以直接看到效果的实践,没人什么是比直接看到效果更鼓舞人心的了吧!一. 原书主要内容在这一讲中,作者主要介绍了:三种相机模型,着重介绍了针孔相机模型的原理,还介绍了针孔相机模型的畸变问题;图形在计算机中的表示,以及简单地介绍了最为常用的图像库OpenCV的图像存储与访问操作和点云库PC...原创 2019-12-13 14:13:14 · 716 阅读 · 0 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 4 讲 李群与李代数 (下)
在上一篇解读中《解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 4 讲 李群与李代数 (上)》,我们先介绍了李群的定义,知道了我们前面介绍的旋转矩阵集合就是一个李群,然后我们通过一些推导得到了R=exp(ϕ∧)R = exp(\boldsymbol\phi^{\wedge})R=exp(ϕ∧),知道了旋转矩阵可以用向量的形式去表示。 这一讲我将带你解读李群和李代数的指数...原创 2019-12-08 18:09:01 · 783 阅读 · 2 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 4 讲 李群与李代数 (上)
在第3讲中,我解读了几种描述三维刚体运动的方法,包括旋转矩阵、旋转向量、四元数,也介绍了这几种常用的描述三维刚体运动的方法的优缺点。 如果你已经感觉理解上有点儿吃了了,那么接下来的这一讲可能也会有点儿难度。就像吉他中大横按的F和弦撑起了整个二手吉他市场一样,接下来的这一讲的李群李代数也同样葬送了很多初学者的学习之路。 在这一讲的解读中,我主要把重点放在如何把这一讲中的每个知识点...原创 2019-12-06 21:33:15 · 902 阅读 · 1 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 3 讲 三维刚体运动 (下)
陪女朋友为期五天的农村调研终于结束,终于可以回到大魔都享受城市生活了。在高铁上闲来无事再写点吧!(由于我肩部肌肉劳损,太疼了,所以本篇博客是我口述,女朋友代写的,感谢她的鼎力相助) 在上一篇博客中我们介绍了三维刚体运动的旋转矩阵和变换矩阵,下面我要带你解读这一讲的下半部分内容:旋转向量、欧拉角、四元数;相似、仿射、射影变换。解读这一讲中的很多概念都比较抽象,我尽量给大家总结的...原创 2019-11-26 23:49:50 · 663 阅读 · 5 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 3 讲 三维刚体运动 (上)
天气日渐转凉,真是应了那句老话:有一种思恋叫望穿秋水,有一种寒冷叫忘穿秋裤!上一讲是初识SLAM,如果你还觉得SLAM很简单,那么从这一讲开始,可能问题就要变得棘手了。不过万事开头难,坚持下去终究会守得云开见月明!第3讲 三维刚体的运动在这一讲中,作者原书主要介绍了:三维刚体运动的数学描述方法,包括旋转矩阵、变换矩阵、四元数、欧拉角;以及一种C++常用的数学矩阵运算库Eigen。解...原创 2019-11-24 14:31:52 · 720 阅读 · 1 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 2 讲 初识SLAM (下)
在上一篇博客中,我主要解读了视觉SLAM所用的传感器和经典的视觉SLAM框架。在这篇博客中,我接着上一篇博客的内容,解读第二讲的下半部分:SLAM问题的数学表述;完成后续代码实践需要做的准备工作。解读SLAM的数学描述关于SLAM的数学描述,就是两个方程,一个是运动方程,一个是观测方程xk=f(xk−1,uk,wk)zk,j=h(yj,xk,vk,j)x_k = f(x_{k-1}...原创 2019-11-21 00:39:02 · 944 阅读 · 2 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 2 讲 初识SLAM (上)
近来,实习下班比较早,再加上天气冷,不用陪女朋友逛街,所以早早回到寝室,继续写博客!在上一篇博客中,我解读了《视觉SLAM十四讲》第1讲的内容。在第一讲中,书中并没有什么技术性的问题,主要是作者介绍了一些预备知识。这篇博客,我要带你解读第2讲——初识SLAM。我相信如果你运行了我在上一篇博客中介绍的ORB-SLAM2,那么你对SLAM已经有一个很好的认识了。一、初识SLAM在这一讲中,作者...原创 2019-11-19 00:06:34 · 915 阅读 · 3 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 1 讲 预备知识
温馨提示,嘻嘻:我写这个系列博客的目的是,通过解读《视觉SLAM十四讲》,将自己当初学习这本书时,困惑的不解地方进行填坑,所以书中已经详细说明的内容,我不再赘述,对于书中省略的内容,我觉得很有用的东西,我会在后面的博文中和大家分享。所以大家想通过我的文章学习,你一定要先阅读过《视觉SLAM十四讲》对应一讲的内容之后,再看我的总结和解读。第一讲 预备知识原书主要内容在第一讲中作者主要介绍了,一...原创 2019-11-17 23:02:15 · 1691 阅读 · 6 评论 -
解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 前言
什么是SLAM随着无人驾驶的发展,人们发现对于车辆外部环境的感知,以及车辆自身空间位置的确定变得尤为重要,知道外部环境就解决了“知彼”,而知道车辆本身在环境中的位置,就是“知己”,当我们达到“知己知彼”时,操控车辆在环境中运行,就显得游刃有余。 其实我们可以想象一下我们自己在生活中行走时候的场景,我们首先观察环境,同时我们可以获得自己在环境中的位置,然后我们就可以大胆的向前走了,一边走...原创 2019-11-17 16:53:49 · 1444 阅读 · 4 评论