SLAM——计算机对世界的感知与理解

管理员账号

2019-08-14

在移动互联网大潮之后,自动驾驶、无人机、服务机器人等人工智能硬件会成为下一个产业爆发点,其中关键的技术之一就是动态定位和环境建模的SLAM技术。

在计算机视觉(Computer Vision)创立之初,人们就想象着有朝一日计算机能和我们一样,用眼睛去观察世界,理解周遭的物体,探索未知的领域。这样一个美妙而又浪漫的梦想,吸引了无数科研人员日夜为之奋斗。

但事情的进展远不如预想那么顺利。我们眼中的花草树木、虫鱼鸟兽,在计算机中只是由一个个数字自排列而成矩阵。让计算机理解图像的内容,就像让我们自己理解这些数字一样困难。更别提让计算机去探索这个世界了。

随着技术的发展,现在的我们终于有了一点点成功迹象:一方面是机器学习技术的发展,使计算机渐渐能够辨别出物体、人脸、声音、文字。另一方面,在SLAM(Simultaneous Localization and Mapping,同时定位与地图构建)发展了将近30年之后,我们的相机渐渐开始能够认识到自身的位置,发觉自己在运动并感受周围的环境,甚至可以进行实时的三维重建。

SLAM技术解决了机器人的一个基础性困难——定位和建图。当设备主体(机器人)来到一个完全陌生的环境时,它可以精准地在运动过程中建立环境模型,同时估计自己的运动。基于此,涌现出一大批与SLAM 相关的应用点:自动驾驶、无人机、服务机器人、虚拟现实和增强现实……

SLAM是计算机对世界的感知和理解,也一直是机器人和计算机视觉的研究热点。

虽然SLAM理论框架基本趋于稳定,但其编程实现仍然较为复杂,有着较高的技术门槛。加之,国内与SLAM 相关的论文、书籍非常匮乏,让许多对SLAM 技术感兴趣的初学者无从一窥门径。刚步入SLAM 领域的研究者,不得不花很长的时间,学习大量的知识,走许多弯路才得以接近SLAM 技术的核心。

幸运的是,2017年《视觉 SLAM 十四讲:从理论到实践》一书出版。作为SLAM第一本话语原创著作,这本书从基础理论到代码实例,系统性讲解SLAM,大大降低了国内学生和相关从业者的进入门槛。

两年来,《视觉SLAM十四讲》一书共经历了 13 次重印,在 GitHub 上拥有 2500 个星星,也在业界引起了广泛的关注和讨论。今天,《视觉SLAM十四讲:从理论到实践(第2版)》带着超40%的内容增补回来了!

本书全面系统地介绍了以视觉传感器为主体的视觉SLAM 技术,并极其重视实践。书中介绍的所有重要算法,都将给出可以运行的实际代码,以求加深读者的理解。在第2版中,我们会讨论大多数算法的内在原理,而非简单地从函数库中进行调用。

之所以这么做,主要是考虑到SLAM 是一项和实践紧密相关的技术。再漂亮的数学理论,如果不能转化为可以运行的代码,就仍是可望而不可及的空中楼阁,没有实际意义。我们相信,实践出真知,实践出真爱。只有实际地演算过各种算法,你才能真正认识SLAM,真正地喜欢上科研。

1.更多的实例。增加了一些实验代码来介绍算法的原理。在第1版中,多数实践代码调用了各种库中的内置函数,现在作者认为更深入地介绍底层计算会更好。所以本书中的许多代码,除了调用库函数,还提供了底层的实现。

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

3.更完善的工程项目。将第1版的第9讲移至第13 讲。于是,我们可以在介绍了所有必要知识之后,向大家展现一个完整的SLAM 系统是如何工作的。相比于第1版,本书的项目中将追求以精简的代码实现完整的功能,你会得到一个由几百行代码实现的、有完整前后端的SLAM 系统。

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

高 翔

清华大学自动化系博士,慕尼黑工业大学博士后。研究兴趣主要为计算机视觉、定位与建图、机器学习等,主要著、译作包括《视觉SLAM十四讲:从理论到实践》、《机器人学中的状态估计》,在RAS、Auto Robotics、IROS等期刊会议上发表论文,现从事自动驾驶车辆研发工作。

如果你完全看不懂上面再说什么,那么恭喜你!本书很适合你!只要你对这门新技术感兴趣,在学习本书的过程中肯定会有所收获!你会掌握与SLAM 相关的理论知识,你的编程能力也将有明显的进步。首批拿到第二版的读者给出了这样的评价:

读者评论

  • Hi 高老师
    第二版ch4 程序编译出现以下问题,尚未找出原因,能否帮忙看看

    /home/cloudfu/slambook2/slambook2/ch4/build> make -j4
    Scanning dependencies of target useSophus
    [ 50%] Building CXX object CMakeFiles/useSophus.dir/useSophus.cpp.o
    /home/cloudfu/slambook2/slambook2/ch4/useSophus.cpp:5:10: fatal error: sophus/se3.hpp: No such file or directory

    include “sophus/se3.hpp”

          ^~~~~~~~~~~~~~~~
    

    compilation terminated.
    CMakeFiles/useSophus.dir/build.make:62: recipe for target ‘CMakeFiles/useSophus.dir/useSophus.cpp.o’ failed
    make[2]: [CMakeFiles/useSophus.dir/useSophus.cpp.o] Error 1
    CMakeFiles/Makefile2:67: recipe for target ‘CMakeFiles/useSophus.dir/all’ failed
    make[1]:
    [CMakeFiles/useSophus.dir/all] Error 2
    Makefile:83: recipe for target ‘all’ failed
    make: [all] Error 2 Failure: Exit code 2 *

    cloud.fu发表于 2019/8/30 11:07:54
    • 测试了下,还是需要make install

      cloud.fu发表于 2019/8/30 14:14:11
  • 高博您好,买了第一版以后觉得有一些还是很迷惑,然后看网上说第二版比第一版增加了很多东西,所以又买了一本。想问一下会有后面几章节的视频讲解么,以及代码解析什么的?

    烧鸡发表于 2019/8/15 19:58:25

相关专题

相关博文

  • 机器学习:数据驱动的科学

    机器学习:数据驱动的科学

    管理员账号 2017-05-27

    小编说:传统上,计算机会按照我们输入的指令一步步执行。而机器学习却是通过输入数据而不是指令来进行各种工作。 机器学习,也被称为统计机器学习,是人工智能领域的一个分支,其基本思想是基于数据构建统计模型,并利用模型对数据进行分析和预测...

    管理员账号 2017-05-27
    1031 0 0 0
  • 你听过无人驾驶,但你了解无人驾驶的算法吗?

    你听过无人驾驶,但你了解无人驾驶的算法吗?

    管理员账号 2017-05-26

    小编说:我们已经拉开了全自动无人驾驶的序幕,在幕布之后是我们精彩的未来,但你可能不知道的是无人驾驶系统是一个复杂的系统,系统主要由三部分组成:算法端、Client端和云端。算法端从传感器原始数据中提取有意义的信息以了解周遭的环境情况,...

    管理员账号 2017-05-26
    1237 0 0 0
  • 无人驾驶的分级以及产品化后会带来的改善

    无人驾驶的分级以及产品化后会带来的改善

    管理员账号 2017-05-24

    小编说:人工智能是时代,机器人开始作为服务的承载体出现,其中的一个具体事例就是无人驾驶的产品化。无人驾驶并不是一个单一的新技术,而是一系列技术的整合。本文将向您介绍这一技术对生活带来的改善以及无人驾驶的分级。本文选自《第一本无人驾驶技...

    管理员账号 2017-05-24
    212 0 0 0