《视觉SLAM十四讲 从理论到实践》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:高翔,张涛等著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2017
  • ISBN:9787121311048
  • 页数:387 页
图书介绍:本书系统介绍了视觉SLAM(同时定位与地图构建)所需的基本知识与核心算法,既包括数学理论基础,如三维空间的刚体运动、非线性优化,又包括计算机视觉的算法实现,例如多视图几何、回环检测等。此外,我们还提供了大量的实例代码供读者学习研究,更深入地掌握这些内容。

第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 致谢和声明 7

第2讲 初识SLAM 9

2.1 引子:小萝卜的例子 11

2.2 经典视觉SLAM框架 17

2.2.1 视觉里程计 17

2.2.2 后端优化 19

2.2.3 回环检测 20

2.2.4 建图 21

2.3 SLAM问题的数学表述 22

2.4 实践:编程基础 25

2.4.1 安装Linux操作系统 25

2.4.2 Hello SLAM 27

2.4.3 使用cmake 28

2.4.4 使用库 30

2.4.5 使用IDE 32

第3讲 三维空间刚体运动 37

3.1 旋转矩阵 39

3.1.1 点和向量,坐标系 39

3.1.2 坐标系间的欧氏变换 40

3.1.3 变换矩阵与齐次坐标 42

3.2 实践:Eigen 44

3.3 旋转向量和欧拉角 48

3.3.1 旋转向量 48

3.3.2 欧拉角 50

3.4 四元数 51

3.4.1 四元数的定义 51

3.4.2 四元数的运算 53

3.4.3 用四元数表示旋转 55

3.4.4 四元数到旋转矩阵的转换 55

3.5 相似、仿射、射影变换 56

3.6 实践:Eigen几何模块 57

3.7 可视化演示 60

第4讲 李群与李代数 62

4.1 李群与李代数基础 64

4.1.1 群 64

4.1.2 李代数的引出 65

4.1.3 李代数的定义 67

4.1.4 李代数so(3) 67

4.1.5 李代数se(3) 68

4.2 指数与对数映射 69

4.2.1 SO(3)上的指数映射 69

4.2.2 SE(3)上的指数映射 70

4.3 李代数求导与扰动模型 72

4.3.1 BCH公式与近似形式 72

4.3.2 SO(3)李代数上的求导 73

4.3.3 李代数求导 74

4.3.4 扰动模型(左乘) 75

4.3.5 SE(3)上的李代数求导 76

4.4 实践:Sophus 76

4.5 相似变换群与李代数 79

4.6 小结 81

第5讲 相机与图像 82

5.1 相机模型 84

5.1.1 针孔相机模型 84

5.1.2 畸变 87

5.1.3 双目相机模型 90

5.1.4 RGB-D相机模型 92

5.2 图像 93

5.3 实践:图像的存取与访问 95

5.3.1 安装OpenCV 95

5.3.2 操作OpenCV图像 96

5.4 实践:拼接点云 99

第6讲 非线性优化 104

6.1 状态估计问题 106

6.1.1 最大后验与最大似然 106

6.1.2 最小二乘的引出 108

6.2 非线性最小二乘 109

6.2.1 一阶和二阶梯度法 110

6.2.2 高斯牛顿法 111

6.2.3 列文伯格—马夸尔特方法 113

6.2.4 小结 114

6.3 实践:Ceres 115

6.3.1 Ceres简介 116

6.3.2 安装Ceres 116

6.3.3 使用Ceres拟合曲线 117

6.4 实践:g2o 121

6.4.1 图优化理论简介 121

6.4.2 g2o的编译与安装 122

6.4.3 使用g2o拟合曲线 123

6.5 小结 128

第7讲 视觉里程计1 130

7.1 特征点法 132

7.1.1 特征点 132

7.1.2 ORB特征 134

7.1.3 特征匹配 137

7.2 实践:特征提取和匹配 138

7.3 2D-2D:对极几何 141

7.3.1 对极约束 141

7.3.2 本质矩阵 143

7.3.3 单应矩阵 146

7.4 实践:对极约束求解相机运动 148

7.5 三角测量 153

7.6 实践:三角测量 154

7.6.1 三角测量代码 154

7.6.2 讨论 156

7.7 3D-2D:PnP 157

7.7.1 直接线性变换 158

7.7.2 P3P 159

7.7.3 Bundle Adjustment 161

7.8 实践:求解PnP 165

7.8.1 使用EPnP求解位姿 165

7.8.2 使用BA优化 166

7.9 3D-3D:ICP 172

7.9.1 SVD方法 173

7.9.2 非线性优化方法 175

7.10 实践:求解ICP 176

7.10.1 SVD方法 176

7.10.2 非线性优化方法 178

7.11 小结 180

第8讲 视觉里程计2 182

8.1 直接法的引出 184

8.2 光流(Optical Flow) 185

8.3 实践:LK光流 187

8.3.1 使用TUM公开数据集 187

8.3.2 使用LK光流 188

8.4 直接法(Direct Method) 192

8.4.1 直接法的推导 192

8.4.2 直接法的讨论 195

8.5 实践:RGB-D的直接法 196

8.5.1 稀疏直接法 196

8.5.2 定义直接法的边 197

8.5.3 使用直接法估计相机运动 199

8.5.4 半稠密直接法 200

8.5.5 直接法的讨论 202

8.5.6 直接法优缺点总结 203

第9讲 实践:设计前端 205

9.1 搭建VO框架 206

9.1.1 确定程序框架 207

9.1.2 确定基本数据结构 208

9.1.3 Camera类 210

9.1.4 Frame类 212

9.1.5 MapPoint类 213

9.1.6 Map类 213

9.1.7 Config类 214

9.2 基本的VO:特征提取和匹配 216

9.2.1 两两帧的视觉里程计 216

9.2.2 讨论 224

9.3 改进:优化PnP的结果 224

9.4 改进:局部地图 227

9.5 小结 233

第10讲 后端1 235

10.1 概述 237

10.1.1 状态估计的概率解释 237

10.1.2 线性系统和KF 239

10.1.3 非线性系统和EKF 242

10.1.4 EKF的讨论 243

10.2 BA与图优化 245

10.2.1 投影模型和BA代价函数 245

10.2.2 BA的求解 247

10.2.3 稀疏性和边缘化 248

10.2.4 鲁棒核函数 255

10.2.5 小结 256

10.3 实践:g2o 257

10.3.1 BA数据集 257

10.3.2 g2o求解BA 258

10.3.3 求解 262

10.4 实践:Ceres 264

10.4.1 Ceres求解BA 265

10.4.2 求解 267

10.5 小结 269

第11讲 后端2 270

11.1 位姿图(Pose Graph) 271

11.1.1 Pose Graph的意义 271

11.1.2 Pose Graph的优化 272

11.2 实践:位姿图优化 274

11.2.1 g2o原生位姿图 274

11.2.2 李代数上的位姿图优化 278

11.2.3 小结 284

11.3 因子图优化初步 285

11.3.1 贝叶斯网络 285

11.3.2 因子图 286

11.3.3 增量特性 288

11.4 实践:gtsam 289

11.4.1 安装gtsam 4.0 289

11.4.2 位姿图优化 290

第12讲 回环检测 297

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 实践:创建字典 306

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 检测之后的验证 317

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.4 实验分析与讨论 339

13.4.1 像素梯度的问题 339

13.4.2 逆深度 340

13.4.3 图像间的变换 341

13.4.4 并行化:效率的问题 342

13.4.5 其他的改进 343

13.5 RGB-D稠密建图 343

13.5.1 实践:点云地图 344

13.5.2 八叉树地图 347

13.5.3 实践:八叉树地图 350

13.6 TSDF地图和Fusion系列 352

13.7 小结 356

第14讲 SLAM:现在与未来 357

14.1 当前的开源方案 358

14.1.1 MonoSLAM 358

14.1.2 PTAM 359

14.1.3 ORB-SLAM 361

14.1.4 LSD-SLAM 363

14.1.5 SVO 364

14.1.6 RTAB-MAP 366

14.1.7 其他 367

14.2 未来的SLAM话题 367

14.2.1 视觉+惯性导航SLAM 367

14.2.2 语义SLAM 369

14.2.3 SLAM的未来 370

附录A 高斯分布的性质 371

附录B ROS入门 374

参考文献 377