SLAM视觉十四讲:双倍内容强化版

SLAM视觉十四讲:双倍内容强化版 pdf epub mobi txt 电子书 下载 2025

图书标签:
  • SLAM
  • 视觉SLAM
  • 机器人
  • 计算机视觉
  • 传感器融合
  • 定位
  • 地图构建
  • 强化学习
  • 算法
  • 实践
想要找书就要到 小特书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

这是一本介绍视觉SLAM 的书。

  SLAM 是Simultaneous Localization and Mapping 的缩写,中文译作「同时定位与地图型建置」。它是指搭载特定感测器的主体,在没有环境先验资讯的情况下,于运动过程中建立环境的模型,同时估计自己的运动。

  本书的主题就是SLAM视觉, SLAM 的目的是解决「定位」与「地图型建置」这两个问题。也就是说,一边要估计感测器本身的位置,一边要建立周围环境的模型。近年来随着科技的发展,涌现出了一大批与SLAM 相关的应用点。

  本书全面系统地介绍了以视觉感测器为主体的视觉SLAM 技术,详细地介绍SLAM 的理论背景、系统架构,以及各个模组的主流做法。同时,极其重视实作:本书介绍的所有重要演算法,都将列出可以执行的实际程式,以求加深读者的了解。并把完整的SLAM 系统分成几个模组:视觉里程计、后端最佳化、建图,以及回路检测。我们将陪着读者一点点实现这些模组中的核心部分,探讨它们在什么情况下有效,什么情况下会出问题,并指导大家在自己的机器上执行这些程式。你会接触到一些必要的数学理论和许多程式设计知识,会用到Eigen、OpenCV、PCL、g2o、Ceres 等函数库,掌握它们在Linux 作业系统中的使用方法。

  全书分为三大部分:

  「数学基础篇」
  第1 讲 是预备知识,介绍本书的基本资讯,习题部分主要包含一些自测题。
  第2 讲 为SLAM 系统概述,介绍一个SLAM 系统由哪些模组成,各模组的实际工作是什么。实作部分介绍程式设计环境的架设过程及IDE 的使用。
  第3 讲 介绍3D 空间刚体运动,你将接触到旋转矩阵、尤拉角、四元数的相关知识,并且在Eigen 中使用它们。
  第4 讲介绍李群与李代数。即使你现在不懂李代数为何物,也没有关系。你将学到李代数的定义和使用方式,然后透过Sophus 操作它们。
  第5 讲 介绍针孔相机模型及影像在电脑中的表达。你将用OpenCV 调取相机的内外参数。
  第6 讲 介绍非线性最佳化,包含状态估计理论基础、最小平方问题、梯度下降方法。你会完成一个使用Ceres 和g2o 进行曲线拟合的实验。

  「实作应用篇」
  第7 讲 为特征点法的视觉里程计。该讲内容比较多,包含特征分析与比对、对极几何约束的计算、PnP 和ICP 等。在实作中,你将用这些方法估计两个影像之间的运动。

  第8 讲 为直接法的视觉里程计。你将学习光流和直接法的原理,然后实现一个简单的直接法运动估计。

  第9 讲 为后端最佳化,主要为对Bundle Adjustment(BA)的深入讨论,包含基本的BA,以及如何利用稀疏性加速求解过程。你将用Ceres 和g2o 分别撰写一个BA 程式。

  第10 讲 主要介绍后端最佳化中的位姿图。位姿图是表达关键页框之间约束的一种更紧凑的形式。我们会介绍SE(3)和Sim(3)的位姿图,同时你将使用g2o 对一个位姿球进行最佳化。

  第11 讲 为回路检测,主要介绍以词袋方法为主的回路检测。你将使用DBoW3 撰写字典训练程式和回路检测程式。

  第12 讲 为地图型建置。我们会讨论如何使用一元进行稠密深度图的估计(以及这是多么不可靠),然后讨论RGB-D 的稠密地图型建置过程。你会撰写极线搜索与块符合的程式,然后在RGB-D 中遇到点云地图和八叉树地图的建置问题。

  第13 讲 是专案实作,你将架设一个二元视觉里程计架构,综合运用先前学过的知识,实现它的基本功能。在这个过程中,你会碰到一些问题,例如最佳化的必要性、关键页框的选择等。我们会在Kitti 资料集上测试它的效能,讨论一些改进的方法。

  第14 讲 主要介绍目前的开放原始码SLAM 方案及未来的发展方向。相信在阅读了前面的知识之后,你会更容易了解它们的原理,实现自己的新想法。

  适合读者群  机器人技术工程师、对 SLAM 有兴趣者,或 SLAM 相关课程科系师生作为教材或自学参考。                                     

本书特色

  SLAM视觉属于电脑视觉和机器人研究的交叉领域,本书系统介绍SLAM视觉(同时定位与地图构置)所需的基本知识与核心演算法,既包括数学理论基础,如三维空间的刚体运动、非线性优化;又涵盖电脑视觉的演算法实现,例如多视图几何、回环检测等。书中提供大量的实例程式码供读者学习,从而更深入地掌握内容。

  ► 更多的实例 增加一些实验程式来介绍演算法的原理。本书中的许多程式,除了唿叫函数库函数,还提供底层的实现。

  ► 更深入的内容 主要是从第7讲至第12讲的部分,重新定义那些容易引起误解的内容。

  ► 更完整的专案项目 在介绍所有必要知识之后,向读者展现一个完整的SLAM 系统是如何工作的。以精简的程式实现完整的功能,读者会获得一个由几百行程式实现、有完整前后端的SLAM 系统。

  ► 更通俗、简洁的表达 这是一本好书的标准,作者重新制作部分插图,清晰简明的让读者更清楚易懂。
《机器人感知与决策:从理论基石到前沿应用》 本书旨在全面、深入地探讨机器人感知与决策领域的核心理论、关键技术及其在实际工程中的应用。我们专注于构建一个严谨的知识体系,帮助读者构建扎实的理论基础,并掌握应对复杂工程挑战的实践能力。全书内容涵盖了从基础数学原理到尖端人工智能算法的广泛光谱,力求在深度和广度上达到新的高度。 第一部分:感知系统的数学基础与信号处理 本部分首先为后续的复杂算法奠定坚实的数学基石。我们从高等代数、线性代数在线性空间、矩阵分解和特征值分析在机器人建模中的应用开始,深入探讨概率论与数理统计在不确定性量化中的关键作用。 随后,我们详细阐述了信号处理的基础理论。这包括傅里叶分析(连续与离散)、小波变换在时频分析中的应用,以及卡尔曼滤波(KF)的经典形式及其扩展(EKF、UKF)在线性与非线性状态估计中的精确推导和实现细节。我们特别强调了噪声模型的建立与参数辨识,这是确保感知系统鲁棒性的前提。此外,我们将介绍基于粒子滤波(PF)的蒙特卡洛方法,用于处理高度非高斯、多模态的复杂状态空间问题,并通过实际案例展示其在复杂环境跟踪中的优势。 第二部分:机器人环境感知技术 本部分聚焦于机器人获取外部世界信息的关键技术。我们不局限于单一传感器,而是构建了一个多传感器融合的框架。 2.1 视觉感知核心:图像处理与特征提取 我们首先深入讲解了经典计算机视觉的基础,包括图像的采集、去噪、增强技术。重点在于几何基础,如相机模型(针孔、畸变模型)的精确标定方法(单目、双目、多目)。在特征提取方面,本书系统梳理了从经典的手工设计特征(如SIFT, SURF, ORB)到现代深度学习驱动的特征表示方法。我们详细分析了这些特征在不同光照和运动条件下的性能表现和计算复杂度。 2.2 深度感知技术:激光雷达与深度相机 激光雷达(LiDAR)作为高精度测距的主流传感器,其数据处理是重中之重。我们将剖析不同类型的LiDAR(TOF, F-TOF, 扫描式)的工作原理、误差模型,并详细介绍点云数据的预处理流程,包括降采样、滤波、配准算法(迭代最近点ICP及其变体)。对于深度相机(如结构光、ToF),本书着重讨论了其在近距离环境中的精度限制、噪声特性,以及如何通过多视角融合提高三维重建的质量。 2.3 传感器数据融合:信息理论视角 本节将传感器融合提升到理论高度。我们不仅停留在简单的卡尔曼滤波融合,而是引入了贝叶斯网络、Dempster-Shafer理论(证据理论)在处理异构、冲突数据时的应用。讨论如何根据传感器的信度和冗余度动态调整权重,实现最优状态估计,确保系统对环境的理解是连贯且一致的。 第三部分:机器人定位与地图构建(SLAM基础) 本部分是本书的核心理论载体之一,我们从同步定位与建图(SLAM)的理论起源、数学框架出发,构建完整的技术栈。 3.1 状态估计的优化框架 我们详细阐述了误差状态的定义、运动模型(里程计)和观测模型(传感器量测)的建立。重点剖析了基于图优化的SLAM范式,如何将定位与建图问题转化为非线性最小二乘问题。书中对高斯-牛顿法、列文伯格-马夸特(LM)算法在求解大规模、稀疏约束优化问题中的收敛性、效率和并行化策略进行了深入的数学推导和比较分析。 3.2 前端与后端技术 在前端处理上,本书深入研究了特征匹配、回环检测(Loop Closure)的鲁棒性技术,包括基于度量距离和基于语义信息的回环检测方法。在后端优化方面,我们详细介绍了如何构建和维护因子图或Pose Graph,以及使用GTSAM等主流优化库进行全局一致性优化的流程。 3.3 视觉里程计(VO)与视觉SLAM 针对纯视觉系统,我们系统梳理了直接法(Direct Method)和特征点法(Feature-based Method)的优劣。对于直接法,本书强调了光度一致性假设下的能量函数设计与求解;对于特征点法,则聚焦于几何约束的建立和一致性检验。 第四部分:机器人运动规划与决策 本部分侧重于机器人在已知或未知环境中自主导航的能力,涉及路径搜索、避障和任务决策。 4.1 经典路径规划算法 我们全面回顾了基于图搜索的规划方法,包括Dijkstra、A算法,并着重讨论了它们在连续空间中的局限性。随后,本书详细介绍了采样基础的规划器,如快速搜索随机树(RRT)及其变体(RRT,Informed RRT),分析了其完备性和渐进最优性。势场法作为局部避障的有效手段,其斥力/引力函数的合理设计和参数整定也被置于重要位置。 4.2 局部路径优化与轨迹跟踪 规划出的路径往往不能直接用于执行,需要进行平滑处理和局部优化。本书介绍了基于样条曲线(Spline)的轨迹平滑方法,以及时间最优控制理论在轨迹生成中的应用。在轨迹跟踪方面,我们详细阐述了PID控制器的设计、前馈控制,以及更高级的基于模型预测控制(MPC)的鲁棒轨迹跟踪策略,包括约束处理和模型精确度的影响。 第五部分:面向复杂环境的智能决策 本部分将机器人从“知道自己在哪”和“知道如何去那”提升到“知道该做什么”的层面,引入了人工智能与学习方法。 5.1 概率推理与有限状态机 系统地介绍了马尔可夫决策过程(MDP)和部分可观测马尔可夫决策过程(POMDP)的数学框架,这是制定最优策略的基础。我们讨论了动态规划方法(如价值迭代、策略迭代)以及蒙特卡洛树搜索(MCTS)在决策求解中的应用。 5.2 强化学习在机器人控制中的应用 本书详细讲解了深度强化学习(DRL)的核心算法,如深度Q网络(DQN)、策略梯度方法(REINFORCE, A2C, A3C)以及近端策略优化(PPO)。我们着重分析了如何将这些方法应用于机器人控制任务,例如接触力控制、非结构化环境下的运动学习,以及如何设计奖励函数以引导机器人学习出安全、高效的行为策略。特别地,本书探讨了模仿学习(Imitation Learning)和离线学习(Offline RL)在数据效率和安全性方面的优势。 结语 全书贯穿了从理论推导到工程实现的完整闭环,旨在为读者提供一套系统、前沿且高度实用的机器人感知与决策技术栈。每一章节都配有详尽的数学论证和对实际系统性能影响的分析,确保读者不仅知其然,更能知其所以然。

著者信息

作者简介

高翔


  清华大学自动化系博士,慕尼克工业大学博士后。专注于电脑视觉、定位与建图、机器学习等,着、译作有《视觉SLAM十四讲:从理论到实践》、《机器人学中的状态估计》,在RAS、Auto Robotics、IROS等期刊会议上发表论文。现从事自动驾驶车辆研发工作。

张涛

  清华大学自动化系教授。1999年获清华大学自动化系检测技术与自动化装置专业博士学位,2002年获日本国立佐贺大学工学系研究科系统控制专业博士学位。研究课题包括机器人、航空航太、电脑视觉等。

刘毅

  华中科技大学图像与人工智慧研究所博士。专注于影像处理、三维重建、视觉SLAM,以及感测器融合研究和应用,曾在深圳市大疆创新公司,英特尔中国研究院等单位实习。
 
颜沁睿

  比利时荷语鲁汶大学人工智慧硕士,电子工程学士(GroupT)。长期致力于研究人工智慧技术在机器人领域的应用,包括电脑视觉、机器学习和SLAM。现担任地平线机器人公司智慧驾驶部演算法工程师。
 

图书目录

前言
01 | 预备知识
1.1 本书讲什么
1.2 如何使用本书
1.3 风格约定
1.4 致谢和宣告
1.5 习题(基础自测题)

第一部分 数学基础
02 | 初识SLAM
2.1 引子:小萝卜的实例
2.2 经典视觉SLAM 架构
2.3 SLAM 问题的数学表述
2.4 实作:程式设计基础
2.5 习题
03 | 3D 空间刚体运动
3.1 旋转矩阵
3.2 实作:Eigen
3.3 旋转向量和尤拉角
3.4 四元数
3.5 相似、仿射、射影转换
3.6 实作:Eigen 几何模组
3.7 视觉化示范
3.8 习题
04 | 李群与李代数
4.1 李群与李代数基础
4.2 指数与对数对映
4.3 李代数求导与扰动模型
4.4 实作:Sophus
4.5 相似转换群与李代数
4.6 小结
4.7 习题
05 | 相机与影像
5.1 相机模型
5.2 影像
5.3 实作:电脑中的影像
5.4 实作:3D 视觉
5.5 习题
06 | 非线性最佳化
6.1 状态估计问题
6.2 非线性最小平方
6.3 实作:曲线拟合问题
6.4 小结
6.5 习题

第二部分 实践应用
07 | 视觉里程计1
7.1 特征点法
7.2 实作:特征分析和比对
7.3 2D−2D:对极几何
7.4 实作:对极约束求解相机运动
7.5 三角测量
7.6 实作:三角测量
7.7 3D−2D:PnP
7.8 实作:求解PnP
7.9 3D−3D:ICP
7.10 实作:求解ICP
7.11 小结
7.12 习题
08 | 视觉里程计2
8.1 直接法的引出
8.2 2D光流
8.3 实作:LK 光流
8.4 直接法
8.5 实作:直接法
8.6 习题
09 | 后端1
9.1 概述
9.2 BA与图最佳化
9.3 实作:Ceres BA
9.4 实作:g2o 求解BA
9.5 小结
9.6 习题
10 | 后端2
10.1 滑动视窗泸波和最佳化
10.2 位姿图
10.3 实作:位姿图最佳化
10.4 习题
11 | 回路检测
11.1 概述
11.2 词袋模型
11.3 字典
11.4 相似度计算
11.5 实验分析与评述
11.6 习题
12 | 建图
12.1 概述
12.2 一元稠密重建
12.3 实作:一元稠密重建
12.4 RGB-D 稠密建图
12.5 TSDF 地图和Fusion 系列
12.6 小结
12.7 习题
13 | 实作:设计SLAM 系统
13.1 为什么要单独列专案章节
13.2 专案架构
13.3 实现
13.4 实验效果
13.5 习题
14 | SLAM:现在与未来
14.1 目前的开放原始码方案
14.2 未来的SLAM 话题
14.3 习题
A | 高斯分佈的性质
A.1 高斯分佈
A.2 高斯分佈的运算
A.3 复合的实例
B | 矩阵求导
B.1 纯量函数对向量求导
B.2 向量函数对向量求导
C | ROS 入门
C.1 ROS 是什么
C.2 ROS 的特点
C.3 如何快速上手ROS

 

图书序言

作者序

  《视觉SLAM 十四讲:从理论到实作》出版已经两年多。两年来,这本书经历了13 次重印,在GitHub 上拥有2500 个星星,也在业界引起了广泛的关注和讨论。大多数读者评价是正面的,当然,书中也有些地方不够令人满意。例如,这本书针对初学者,有些应该深入的地方讲得不够深入;书中的数学符号不够统一,有些地方容易令读者产生误解;专案实作章节内容不够丰富,介绍较浅,等等。实际上,我在2016 年中期开始创作第1 版,所有文字、图片和程式都是从零开始准备的,再加上当时在读博士,也是第一次写这么厚的书,错漏在所难免。2018 年,我在慕尼黑工大给学生讲SLAM 课程,期间又累积了一些材料,所以本书从内容上更丰富、更合理。在第1 版的基础上做了以下改动:

  1. 更多的实例。增加了一些实验程式来介绍演算法的原理。在第1 版中,多数实作程式唿叫了各种函数库中的内建函数,现在我认为更深入地介绍底层计算会更好,所以本书中的许多程式,除了唿叫函数库函数,还提供了底层的实现。

  2. 更深入的内容。主要是从第7 讲至第12 讲的部分,同时删除了一些泛泛而谈的边角料(例如GTSAM 相关内容1)。对第1 版大部分数学公式进行了审查,重新定义了那些容易引起误解的内容。

  1 因数图最佳化现在已有完整的书籍《机器人感知:因数图在SLAM 中的应用》,用一小节很难介绍清楚。

  3. 更完整的专案项目。将第1 版的第9 讲移至第13 讲。于是,我们可以在介绍了所有必要知识之后,向大家展现一个完整的SLAM 系统是如何工作的。

  相比于第1 版,我在本书的专案中将追求以精简的程式实现完整的功能,你会获得一个由几百行程式实现的、有完整前后端的SLAM 系统。

  4. 更通俗、简洁的表达。我觉得这是一本好书的标准,特别是当介绍一些看起来高深莫测的数学知识时。我重新制作了部分插图,使它们即使在黑白印刷条件下也能看起来很清楚。

  当然,每讲前的简笔划我是不会改的!
  总之,我尽量做到深入浅出,也希望本书能够给你带来更加舒适的阅读体验。
 

图书试读

用户评价

评分

读完《SLAM视觉十四讲:双倍内容强化版》,最直观的感受就是,自己对SLAM的理解深度和广度都有了质的提升。这本书真正做到了“双倍内容强化”,它不仅仅是内容量的堆叠,更是将一些前沿的研究方向,比如基于深度学习的SLAM,或者是在复杂场景下的SLAM应用,都做了深入的探讨。我记得有一章专门讲了视觉惯性SLAM,让我对如何融合不同传感器的数据有了全新的认识,不再觉得IMU只是一个辅助定位的工具,而是可以和视觉信息产生更深层次的协同。而且,这本书的排版和印刷质量也非常棒,阅读体验很舒适。我有时候会带着这本书去咖啡馆,一边喝咖啡一边阅读,感觉非常有沉浸感。对我而言,它不仅仅是一本技术书籍,更像是一次关于SLAM技术的深度探索之旅,让我对未来的研究方向充满了期待。

评分

说实话,当初买这本书,主要还是看中“双倍内容强化版”这几个字,以为就是把原来的内容加厚而已。但实际读下来,才发现它不仅仅是量的增加,更是质的飞跃。特别是它在强化学习和SLAM结合的部分,简直是打开了新世界的大门!我之前接触过一些强化学习的书,但总觉得和机器人导航、定位这些实际场景联系不够紧密,学起来总有点“空中楼阁”的感觉。而这本《SLAM视觉十四讲:双倍内容强化版》,则把强化学习的理论巧妙地融入到SLAM的框架中,比如如何利用强化学习来优化位姿估计的鲁棒性,如何让机器人自主学习探索环境,这些内容真的非常前沿,也很有启发性。它提供了一些非常实用的代码示例,虽然说要完全复现还有一定的技术门槛,但至少给了一个非常好的起点,让我知道从哪里入手去探索这些高级的应用。我特别喜欢它对算法的详细推导和分析,即使是比较复杂的数学公式,也给出了清晰的解释,让我能够理解其内在的数学原理,而不是仅仅停留在调包侠的层面。

评分

以前看SLAM相关的文章,总觉得里面充斥着各种“黑盒”算法,比如各种奇奇怪怪的特征描述子,或者是各种复杂的非线性优化方法,让人感觉离理解核心技术很遥远。但《SLAM视觉十四讲:双倍内容强化版》却让我对这些“黑盒”有了更深的认识。它对每一个算法的演进过程,比如从ORB-SLAM到ORB-SLAM2,再到ORB-SLAM3,都有非常细致的梳理和对比。它会告诉你为什么要有这些改进,这些改进解决了什么问题,以及它们的优缺点是什么。这种“溯源”式的讲解方式,让我能够跳出对单一算法的孤立理解,而是能够把握整个技术发展的脉络。而且,书里在讲解一些关键技术点时,会涉及到不少经典的论文,但它又不会简单地引用论文,而是会提炼出论文中的核心思想,用更易懂的语言和图示来解释。我感觉这本书不仅仅是在传授知识,更是在培养一种分析和解决问题的思维方式。

评分

对于我这种刚入门SLAM不久的开发者来说,最大的挑战就是如何将理论知识转化为实际可运行的代码。很多教材虽然讲得很清楚,但往往缺乏实操指导,每次想自己动手实现一个简单的SLAM系统,都感觉无从下手。然而,《SLAM视觉十四讲:双倍内容强化版》在这方面做得相当出色。书中不仅提供了扎实的理论基础,更在每一章都穿插了大量的代码片段和伪代码,甚至还有一些开源项目的介绍和使用建议。我尤其印象深刻的是关于后端优化的部分,书里不仅讲解了BA(Bundle Adjustment)的原理,还详细介绍了如何使用g2o这样的库来构建和优化因子图。我跟着书里的例子,尝试着在自己的数据集上运行了一遍,虽然刚开始遇到了一些bug,但通过对照书中的解释,很快就解决了。这种“学以致用”的学习方式,真的让我受益匪浅,也极大地增强了我继续深入研究SLAM的信心。感觉这本书就像一位经验丰富的导师,在你迷茫的时候,总能适时地伸出援手,指引你前进的方向。

评分

SLAM这玩意儿,当初刚接触的时候,真的就像雾里看花,摸不清头脑。尤其是在影像处理这块,总感觉少点什么,对各种传感器数据的融合啊、卡尔曼滤波啊、图优化啊,都只停留在纸面上的理解,想真正动手实践,又不知道从何下手。那段时间,真的花了不少时间在各种零散的资料上打转,感觉知识点零散,缺乏系统性。后来偶然听朋友推荐了这本《SLAM视觉十四讲:双倍内容强化版》,当时就觉得名字听起来挺有份量的,但心里还是有点忐忑,毕竟之前踩过不少坑。不过,打开书之后,那种豁然开朗的感觉是真的!它不像有些书那样,上来就堆砌一堆高深的公式,而是循序渐进,从最基础的相机模型、投影变换讲起,一点点带你进入SLAM的世界。尤其是关于视觉部分,它把很多之前让我头疼的理论,比如特征点提取、匹配,深度估计,以及多视图几何的一些概念,都讲得特别透彻,而且还结合了不少实际的应用案例,让我觉得不再是死记硬背,而是真正理解了背后的逻辑。书中的图示也相当丰富,很多时候一张图就能抵过千言万语,大大降低了学习门槛。

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 ttbooks.qciss.net All Rights Reserved. 小特书站 版权所有