在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例常规C/C++编程 → 视觉SLAM十四讲.pdf

视觉SLAM十四讲.pdf

常规C/C++编程

下载此实例
  • 开发语言:C/C++
  • 实例大小:85.56M
  • 下载次数:88
  • 浏览次数:783
  • 发布时间:2020-11-24
  • 实例类别:常规C/C++编程
  • 发 布 人:mastercai
  • 文件格式:.pdf
  • 所需积分:2
 相关标签: 视觉 c++ SLAM

实例介绍

【实例简介】视觉SLAM十四讲

【实例截图】

from clipboard

【核心代码】

目录
第 1 讲 前言 1
1.1 本书讲什么 . . . . . . . . . . 1
1.2 如何使用本书 . . . . . . . . . 3
1.2.1 组织方式 . . . . . . . 3
1.2.2 代码 . . . . . . . . . . 5
1.2.3 面向的读者 . . . . . . 6
1.3 风格约定 . . . . . . . . . . . 6
1.4 致谢和声明 . . . . . . . . . . 8
第 2 讲 初识 SLAM 10
2.1 引子:小萝卜的例子 . . . . . 12
2.2 经典视觉 SLAM 框架 . . . . 18
2.2.1 视觉里程计 . . . . . . 19
2.2.2 后端优化 . . . . . . . 21
2.2.3 回环检测 . . . . . . . 21
2.2.4 建图 . . . . . . . . . . 22
2.3 SLAM 问题的数学表述 . . . . 24
2.4 实践:编程基础 . . . . . . . . 27
2.4.1 安装 Linux 操作系统 . 27
2.4.2 Hello SLAM . . . . . . 29
2.4.3 使用 cmake . . . . . . 30
2.4.4 使用库 . . . . . . . . . 32
2.4.5 使用 IDE . . . . . . . 34
第 3 讲 三维空间刚体运动 39
3.1 旋转矩阵 . . . . . . . . . . . 41
3.1.1 点和向量,坐标系 . . 41
3.1.2 坐标系间的欧氏变换 . 42
3.1.3 变换矩阵与齐次坐标 . 45
3.2 实践:Eigen . . . . . . . . . . 46
3.3 旋转向量和欧拉角 . . . . . . 50
3.3.1 旋转向量 . . . . . . . 50
3.3.2 欧拉角 . . . . . . . . . 52
3.4 四元数 . . . . . . . . . . . . . 53
3.4.1 四元数的定义 . . . . . 53
3.4.2 四元数的运算 . . . . . 55
3.4.3 用四元数表示旋转 . . 57
3.4.4 四元数到旋转矩阵的
转换 . . . . . . . . . . 57
3.5 * 相似、仿射、射影变换 . . . 58
3.6 实践:Eigen 几何模块 . . . . 59
3.7 可视化演示 . . . . . . . . . . 62
第 4 讲 李群与李代数 64
4.1 李群李代数基础 . . . . . . . . 66
4.1.1 群 . . . . . . . . . . . 66
4.1.2 李代数的引出 . . . . . 67
4.1.3 李代数的定义 . . . . . 69
4.1.4 李代数 so(3) . . . . . 69
4.1.5 李代数 se(3) . . . . . 70
4.2 指数与对数映射 . . . . . . . . 71
4.2.1 SO(3) 上的指数映射 . 71
4.2.2 SE(3) 上的指数映射 . 73
4.3 李代数求导与扰动模型 . . . . 74
4.3.1 BCH 公式与近似形式 74
4.3.2 SO(3) 李代数上的求导 76
4.3.3 李代数求导 . . . . . . 77
4.3.4 扰动模型(左乘) . . 78
i
ii 目录
4.3.5 SE(3) 上的李代数求导 79
4.4 实践:Sophus . . . . . . . . . 80
4.5 * 相似变换群与李代数 . . . . 82
4.6 小结 . . . . . . . . . . . . . . 84
第 5 讲 相机与图像 85
5.1 相机模型 . . . . . . . . . . . 87
5.1.1 针孔相机模型 . . . . . 87
5.1.2 畸变 . . . . . . . . . . 90
5.1.3 双目相机模型 . . . . . 93
5.1.4 RGB-D 相机模型 . . . 95
5.2 图像 . . . . . . . . . . . . . . 97
5.2.1 计算机中图像的表示 . 97
5.3 实践:图像的存取与访问 . . 99
5.3.1 安装 OpenCV . . . . . 99
5.3.2 操作 OpenCV 图像 . . 100
5.4 实践:拼接点云 . . . . . . . . 103
第 6 讲 非线性优化 108
6.1 状态估计问题 . . . . . . . . . 110
6.1.1 最大后验与最大似然 . 110
6.1.2 最小二乘的引出 . . . . 112
6.2 非线性最小二乘 . . . . . . . . 113
6.2.1 一阶和二阶梯度法 . . 114
6.2.2 Gauss-Newton . . . . 115
6.2.3 Levenberg-Marquadt . 117
6.2.4 小结 . . . . . . . . . . 119
6.3 实践:Ceres . . . . . . . . . . 120
6.3.1 Ceres 简介 . . . . . . 120
6.3.2 安装 Ceres . . . . . . 121
6.3.3 使用 Ceres 拟合曲线 . 121
6.4 实践:g2o . . . . . . . . . . . 125
6.4.1 图优化理论简介 . . . . 125
6.4.2 g2o 的编译与安装 . . 126
6.4.3 使用 g2o 拟合曲线 . . 127
6.5 小结 . . . . . . . . . . . . . . 131
第 7 讲 视觉里程计 1 133
7.1 特征点法 . . . . . . . . . . . 134
7.1.1 特征点 . . . . . . . . . 134
7.1.2 ORB 特征 . . . . . . . 136
7.1.3 特征匹配 . . . . . . . 139
7.2 实践:特征提取和匹配 . . . . 140
7.3 2D-2D: 对极几何 . . . . . . . 143
7.3.1 对极约束 . . . . . . . 143
7.3.2 本质矩阵 . . . . . . . 146
7.3.3 单应矩阵 . . . . . . . 148
7.4 实践:对极约束求解相机运动 151
7.4.1 讨论 . . . . . . . . . . 154
7.5 三角测量 . . . . . . . . . . . 155
7.6 实践:三角测量 . . . . . . . . 157
7.6.1 三角测量代码 . . . . . 157
7.6.2 讨论 . . . . . . . . . . 159
7.7 3D-2D: PnP . . . . . . . . . . 160
7.7.1 直接线性变换 . . . . . 160
7.7.2 P3P . . . . . . . . . . 162
7.7.3 Bundle Adjustment . . 164
7.8 实践:求解 PnP . . . . . . . 168
7.8.1 使用 EPnP 求解位姿 . 168
7.8.2 使用 BA 优化 . . . . . 169
7.9 3D-3D: ICP . . . . . . . . . . 175
7.9.1 SVD 方法 . . . . . . . 175
7.9.2 非线性优化方法 . . . . 177
7.10 实践:求解 ICP . . . . . . . 178
7.10.1 SVD 方法 . . . . . . . 178
7.10.2 非线性优化方法 . . . . 180
7.11 小结 . . . . . . . . . . . . . . 182
目录 iii
第 8 讲 视觉里程计 2 184
8.1 直接法的引出 . . . . . . . . . 185
8.2 光流(Optical Flow) . . . . 186
8.2.1 Lucas-Kanade 光流 . . 187
8.3 实践:LK 光流 . . . . . . . . 189
8.3.1 使用 TUM 公开数据集 189
8.3.2 使用 LK 光流 . . . . . 190
8.4 直接法(Direct Methods) . 193
8.4.1 直接法的推导 . . . . . 193
8.4.2 直接法的讨论 . . . . . 197
8.5 实践:RGB-D 的直接法 . . . 197
8.5.1 稀疏直接法 . . . . . . 197
8.5.2 定义直接法的边 . . . . 198
8.5.3 使用直接法估计相机
运动 . . . . . . . . . . 200
8.5.4 半稠密直接法 . . . . . 201
8.5.5 直接法的讨论 . . . . . 202
8.5.6 直接法优缺点总结 . . 205
第 9 讲 实践章:设计前端 207
9.1 搭建 VO 框架 . . . . . . . . . 208
9.1.1 确定程序框架 . . . . . 209
9.1.2 确定基本数据结构 . . 210
9.1.3 Camera 类 . . . . . . 212
9.1.4 Frame 类 . . . . . . . 214
9.1.5 MapPoint 类 . . . . . 215
9.1.6 Map 类 . . . . . . . . 216
9.1.7 Config 类 . . . . . . . 217
9.2 基本的 VO:特征提取和匹配 218
9.2.1 两两帧的视觉里程计 . 219
9.2.2 讨论 . . . . . . . . . . 226
9.3 改进:优化 PnP 的结果 . . . 227
9.3.1 讨论 . . . . . . . . . . 229
9.4 改进:局部地图 . . . . . . . . 229
9.5 小结 . . . . . . . . . . . . . . 235
第 10 讲 后端 1 237
10.1 概述 . . . . . . . . . . . . . . 238
10.1.1 状态估计的概率解释 . 238
10.1.2 线性系统和 KF . . . . 241
10.1.3 非线性系统和 EKF . . 244
10.1.4 EKF 的讨论 . . . . . . 245
10.2 BA 与图优化 . . . . . . . . . 246
10.2.1 投影模型和 BA 代价
函数 . . . . . . . . . . 247
10.2.2 BA 的求解 . . . . . . 248
10.2.3 稀疏性和边缘化 . . . . 250
10.2.4 鲁棒核函数 . . . . . . 257
10.2.5 小结 . . . . . . . . . . 258
10.3 实践:g2o . . . . . . . . . . . 259
10.3.1 BA 数据集 . . . . . . 259
10.3.2 g2o 求解 BA . . . . . 260
10.3.3 求解 . . . . . . . . . . 264
10.4 实践:Ceres . . . . . . . . . . 266
10.4.1 Ceres 求解 BA . . . . 266
10.4.2 求解 . . . . . . . . . . 268
10.5 小结 . . . . . . . . . . . . . . 270
第 11 讲 后端 2 272
11.1 位姿图(Pose Graph) . . . . 273
11.1.1 Pose Graph 的意义 . . 273
11.1.2 Pose Graph 的优化 . . 274
11.2 实践:位姿图优化 . . . . . . 276
11.2.1 g2o 原生位姿图 . . . . 276
11.2.2 李代数上的位姿图优化 280
11.2.3 小结 . . . . . . . . . . 285
11.3 * 因子图优化初步 . . . . . . . 286
11.3.1 贝叶斯网络 . . . . . . 286
11.3.2 因子图 . . . . . . . . . 287
iv 目录
11.3.3 增量特性 . . . . . . . 289
11.4 * 实践:gtsam . . . . . . . . 290
11.4.1 安装 gtsam 4.0 . . . . 290
11.4.2 位姿图优化 . . . . . . 291
第 12 讲 回环检测 298
12.1 回环检测概述 . . . . . . . . . 299
12.1.1 回环检测的意义 . . . . 299
12.1.2 方法 . . . . . . . . . . 300
12.1.3 准确率和召回率 . . . . 301
12.2 词袋模型 . . . . . . . . . . . 303
12.3 字典 . . . . . . . . . . . . . . 305
12.3.1 字典的结构 . . . . . . 305
12.3.2 实践:创建字典 . . . . 307
12.4 相似度计算 . . . . . . . . . . 309
12.4.1 理论部分 . . . . . . . 309
12.4.2 实践:相似度的计算 . 310
12.5 实验分析与评述 . . . . . . . . 314
12.5.1 增加字典规模 . . . . . 314
12.5.2 相似性评分的处理 . . 316
12.5.3 关键帧的处理 . . . . . 316
12.5.4 检测之后的验证 . . . . 316
12.5.5 与机器学习的关系 . . 317
第 13 讲 建图 319
13.1 概述 . . . . . . . . . . . . . . 320
13.2 单目稠密重建 . . . . . . . . . 322
13.2.1 立体视觉 . . . . . . . 322
13.2.2 极线搜索与块匹配 . . 323
13.2.3 高斯分布的深度滤波器 325
13.3 实践:单目稠密重建 . . . . . 328
13.3.1 实验结果 . . . . . . . 337
13.4 实验分析与讨论 . . . . . . . . 339
13.4.1 像素梯度的问题 . . . . 339
13.4.2 逆深度 . . . . . . . . . 341
13.4.3 图像间的变换 . . . . . 342
13.4.4 并行化:效率的问题 . 343
13.4.5 其他的改进 . . . . . . 343
13.5 RGB-D 稠密建图 . . . . . . . 344
13.5.1 实践:点云地图 . . . . 344
13.5.2 八叉树地图 . . . . . . 348
13.5.3 实践:八叉树地图 . . 351
13.6 *TSDF 地图和 Fusion 系列 . 353
13.7 小结 . . . . . . . . . . . . . . 356
第 14 讲 SLAM:现在与未来 358
14.1 当前的开源方案 . . . . . . . . 359
14.1.1 MonoSLAM . . . . . . 360
14.1.2 PTAM . . . . . . . . . 361
14.1.3 ORB-SLAM . . . . . . 362
14.1.4 LSD-SLAM . . . . . . 364
14.1.5 SVO . . . . . . . . . . 366
14.1.6 RTAB-MAP . . . . . . 367
14.1.7 其他 . . . . . . . . . . 368
14.2 未来的 SLAM 话题 . . . . . . 368
14.2.1 视觉   惯导 SLAM . 369
14.2.2 语义 SLAM . . . . . . 370
14.2.3 SLAM 的未来 . . . . . 372
附录 A 高斯分布的性质 373
A.1 高斯分布 . . . . . . . . . . . 373
A.2 高斯分布的运算 . . . . . . . . 373
A.2.1 线性运算 . . . . . . . 373
A.2.2 乘积 . . . . . . . . . . 374
A.2.3 复合运算 . . . . . . . 374
A.3 复合的例子 . . . . . . . . . . 374
附录 B ROS 入门 375
B.1 ROS 是什么 . . . . . . . . . . 375
B.2 ROS 的特点 . . . . . . . . . . 375
B.3 如何快速上手 ROS? . . . . 376

标签: 视觉 c++ SLAM

实例下载地址

视觉SLAM十四讲.pdf

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警