视觉惯性SLAM:理论与源码解析 - 程小六

《视觉惯性SLAM:理论与源码解析》系统介绍以相机和惯性测量单元为主传感器的视觉、视觉惯性SLAM算法。本书通过选取该领域有代表性的两个开源项目,从原理阐述、公式推导、代码解析和工程经验等多个维度,对SLAM技术进行全面的解读。为了让读者在轻松的氛围中快速理解专业知识,本书以小白和师兄对话的形式娓娓道来,帮助读者在学习的过程中不断思考和提升。同时,本书秉承“一图胜千言”的理念,把大量复杂的原理或流程绘制成清晰、易懂的示意图,降低了初学者的学习门槛。本书理论和实践并重,引导读者循序渐进地掌握项目实践经验。
《视觉惯性SLAM:理论与源码解析》兼具技术的广度和深度,适合有一定SLAM基础的高等院校学生、科研机构研究人员和企业从业者阅读,尤其适合希望深入研究视觉(惯性)SLAM的算法工程师参考。
第1章 概览/3
1.1什么是SLAM/3
1.2SLAM有什么不可替/5
1.3SLAM的应用领域/7
参考文献/9
第2章编程及编译工具/11
2.1C++新特性/11
2.2CMake入门/16
第3章SLAM中常用的数学基础知识/29
3.1为什么要用齐次坐标/29
3.2三维空间中刚体旋转的几种表达方式/33
第4章相机成像模型/39
4.1针孔相机成像原理/39
4.2针孔相机成像模型/41
4.3相机畸变模型/47
参考文献/50
第5章对极几何/51
5.1对极几何的基本概念/51
5.2理解对极约束/52
第6章图优化库的使用/55
6.1g2o编程框架/56
6.2构建g2o顶点/61
6.3构建g2o边/67
参考文献/75
第二部分ORB-SLAM2理论与实践
第7章ORB特征提取/83
7.1ORB特征点/83
7.2ORB特征点均匀化策略/93
参考文献/105
第8章ORB-SLAM2中的特征匹配/106
8.1单目初始化中的特征匹配/107
8.2通过词袋进行特征匹配/115
8.3通过地图点投影进行特征匹配/131
8.4通过Sim(3)变换进行相互投影匹配/136
参考文献/140
第9章地图点、关键帧和图结构/141
9.1地图点/141
9.2关键帧/153
9.3图结构/170
参考文献/173
第10章ORB-SLAM2中的地图初始化/174
10.1为什么需要初始化/174
10.2单目模式地图初始化/175
10.3双目模式地图初始化/197
第11章ORB-SLAM2中的跟踪线程/205
11.1参考关键帧跟踪/206
11.2恒速模型跟踪/209
11.3重定位跟踪/214
11.4局部地图跟踪/247
参考文献/258
第12章ORB-SLAM2中的局部建图线程/259
12.1处理新的关键帧/260
12.2剔除不合格的地图点/261
12.3生成新的地图点/263
12.4检查并融合当前关键帧与相邻帧的地图点/269
12.5关键帧的剔除/271
第13章ORB-SLAM2中的闭环线程/275
13.1什么是闭环检测··275
13.2寻找并验证闭环候选关键帧/276
13.3计算Sim(3)变换/281
13.4闭环矫正/298
13.5闭环全局BA优化/305
参考文献/307
第14章ORB-SLAM2中的优化方法/308
14.1跟踪线程仅优化位姿/309
14.2局部建图线程中局部地图优化/315
14.3闭环线程中的Sim(3)位姿优化/323
14.4闭环时本质图优化/329
14.5全局优化/336
第三部分ORB-SLAM3理论与实践
第15章ORB-SLAM3中的IMU预积分/345
15.1视觉惯性紧耦合的意义/345
15.2IMU预积分原理及推导/346
15.3IMU预积分的代码实现/371
参考文献/377
第16章ORB-SLAM3中的多地图系统/378
16.1多地图的基本概念/378
16.2多地图系统的效果和作用/379
16.3创建新地图的方法和时机/381
16.4地图融合概述/385
参考文献/387
第17章ORB-SLAM3中的跟踪线程/388
17.1跟踪线程流程图/388
17.2跟踪线程的新变化/388
第18章ORB-SLAM3中的局部建图线程/399
18.1局部建图线程的作用/399
18.2局部建图线程的流程/400
18.3IMU的初始化/402
参考文献/410
第19章ORB-SLAM3中的闭环及地图融合线程/411
19.1检测共同区域/412
19.2地图融合/420
参考文献/429
第20章视觉SLAM的现在与未来/430
20.1视觉SLAM的发展历程/430
20.2视觉惯性SLAM框架对比及数据集/434
20.3未来发展趋势/437
20.4总结/442
参考文献/442