来自蒙特利尔、卡内基梅隆大学的团队,在 ICRA 2020 上发表的论文中所提出的 ∇SLAM,解决了当下 SLAM 系统普遍所面临的一个开放性问题。
近两年来,随着自动驾驶、无人机等智能设备的迅猛发展,其背后的一项关键技术——SLAM,(Simultaneous Localization And Mapping,中文译名:同时定位与地图构建)也名声大噪。
SLAM 发展距今已有 30 余年的历史,是机器在未知环境下,感知和状态估计、进行自主作业的关键技术,可以说,机器要执行路径规划、导航等任务,AR 、 VR 构建稳定的三维空间,这些技术都离不开 SLAM 的辅助。
通俗点来说,SLAM 就解答两个问题:「我在哪儿?」和「我的环境里有啥?」
比如扫地机器人这类,就是依靠激光雷达或摄像头,再结合 SLAM 技术,才能清楚房间的角角落落是如何布局的,然后构建环境地图,根据这些信息来规划自己的打扫路径。
不过,发展多年以来,传统的 SLAM 算法仍面临端到端不可微的开放性问题,来自蒙特利尔大学、卡内基梅隆大学的团队在 ICRA 2020 发表的论文,则针对这一问题提出了解决办法。
目前,经典的 SLAM 算法有 Kinect-Fusion 、 PointFusion 和 ICP-SLAM 等,但由于这些方法中,很多组件是不可微分的,所以,SLAM 的表示学习一直是一个开放性的问题。这也成为了阻碍 SLAM 发展的瓶颈。
为了解决此类问题,许多研究者开始使用深度学习。但是,这些研究大多限于虚拟数据集或特定环境,甚至为了准确性而牺牲效率。因此,它们不够实用。
在今年 5 月,在机器人与人工智能领域的重要会议 ICRA 2020(International Conference on Robotics and Automation,机器人与自动化国际会议)上,来自蒙特利尔大学、卡内基梅隆大学的团队,发表了论文《∇SLAM: Dense SLAM meets Automatic Differentiation》,提出了以上问题的一个解决方法。
作者指出,在 SLAM 的密集建图系统中,比如优化(Optimization)问题,光线投射(Raycast)问题等,有很多单元是不可被微分的,这也使得基于梯度的方法在 SLAM 中没有取得很大的成功。
对此,作者在论文中提出了 gradslam(∇SLAM),这是一种在 SLAM 上的可微计算图。利用计算图的自动微分功能, gradslam(∇SLAM)允许在其每个组件或整个系统之间进行基于梯度的学习。
一个完全可微分的 SLAM 系统,将使任务驱动的表示学习成为可能,因为表示任务性能的误差信号,可以通过 SLAM 系统,反向传播到原始传感器观察数据中。
最终结果是,团队在不牺牲性能的情况下,设计了可微分的信赖域(trust-region)优化器、表面测量和融合方案,以及对光线上的微分。这种密集的 SLAM 与计算图形的融合,使大家能够从 3D 地图一路回溯到 2D 像素,为基于梯度的 SLAM 学习开辟了新的可能性。
作者表示, gradslam(∇SLAM)的框架非常具有泛化性,可以扩展到任何现有的 SLAM 系统并使其可微。
团队对典型的 SLAM 方法 ICP-Odometry 、 ICP-SLAM 、 Kinect-Fusion 以及 PointFusion,实现为可微分计算图,并分析了每种方法与其不可微的对应方法的比较。
结果表明:在 ICP-Odometry 和 ICP-SLAM 建图上的表现良好,绝对轨迹误差和相对位姿误差都呈现了一个较低的水平。如下表所示:
项目的官方地址:
https://github.com/gradslam/gradslam,可以动手实操一下,感受 gradslam(∇SLAM) 方案的优势。
除了 Github 以外,我们还找到了一个方便操作的国内服务,算力容器服务平台 OpenBayes 也上线了该模型训练教程,可以直接在 JupyterNotebook 中运行。
只需要访问 openbayes.com 注册,就可以获得 CPU 、 NVIDIA T4 、 NVIDIA Tesla V100 等多种算力资源,目前在内测期间每周都有免费算力额度发放至账户。
OpenBayes 除了提供各类算力容器,还有公开数据集、预训练模型、以及很多热门项目的 Jupyter Notebook,一键运行,方便操作。
注册说明
注册新用户即可获得
gradslam(∇SLAM)运行说明
SLAM 技术已是业界公认的视觉领域空间定位技术的前沿方向视觉领域空间定位技术的前沿方向,从无人机到无人驾驶,从扫地机器人到 VR/AR 领域,这些热门领域都可看到 SLAM 的身影。
所以,如果你也想了解 SLAM 方向的最新科研成果,不如在这个周末好好研究 gradslam(∇SLAM)项目。
论文地址:
项目 GitHub 地址:
https://github.com/gradslam/gradslam
gradslam(∇SLAM)JupyterNotebook 地址:
https://openbayes.com/console/openbayes/containers/HoveymNsfrT