CVPR2020:视觉导航的神经拓扑SLAM

Neural Topological SLAM for Visual Navigation

论文地址:

http://openaccess.thecvf.com/content_CVPR_2020/papers/Chaplot_Neural_Topological_SLAM_for_Visual_Navigation_CVPR_2020_paper.pdf

Project webpage:

https://devendrachaplot.github.io/projects/Neural-Topological-SLAM

摘要

本文研究了图像目标导航问题,即在一个新的未知环境中导航到目标图像所指示的位置。为了解决这一问题,我们设计了有效利用语义和提供近似几何推理的空间拓扑表示。我们表示的核心是具有相关语义特征的节点,这些节点使用粗糙的几何信息相互连接。我们描述了基于监督学习的算法,可以在噪声驱动下建立、维护和使用这些表示。视景仿真和物理仿真的实验研究表明,该方法能够有效地描述结构的变化规律,有效地解决长视距导航问题。我们观察到,与研究这项任务的现有方法相比,相对提高了50%以上。

1. 介绍

假设你在一个新房子里,如图1所示,你被赋予了一个任务,如图1所示找到一个目标物体(上图)。虽然有多种可能的移动方向,但我们大多数人会选择2号路径移动。这是因为我们使用了强大的结构优先-我们意识到目标是一个烤箱,更可能在厨房找到,似乎可以通过路径2。现在让我们假设,一旦你到达烤箱,你的目标是回到你最初看到的客厅。你将如何导航?这个问题的答案在于我们人类如何存储我们刚刚穿过的房子的地图(或布局)。一个可能的答案是公制地图,在这种情况下,我们将确切知道多少步骤,以达到客厅。但这显然不是我们人类的运作方式[16,41]。相反,我们中的大多数人会先离开厨房,搬到走廊上,然后导航到从走廊上可以看到的客厅。

图1:语义优先级和标记。当被要求进入烤箱的目标图像时,大多数人会使用2号路径,因为它允许进入厨房。人类每天都使用语义先验和常识来探索和导航,但大多数导航算法都很难做到这一点。

从上面的例子可以清楚地看出,一个成功的视觉导航算法有两个主要组成部分:(a)建立空间表示并存储它们的能力;(b)利用结构先验知识的能力。在空间表现方面,大多数导航论文都坚持要建立自由空间的精确表达。然而,度量地图有两个主要缺点:第一,度量地图不能很好地根据环境大小和经验量进行缩放。但更重要的是,真实机器人上的驱动噪声使得建立一致的表示具有挑战性,精确的定位可能并不总是可能的。当涉及到利用结构性优先权时,大多数基于学习的方法都没有明确地对这些优先权进行建模。相反,他们希望学习的策略函数隐式编码这些结构优先prior。但是,这些策略函数在通过RL学习时是否能够编码语义优先级仍然不清楚。

在本文中,我们建议正面解决这两个问题。我们提出了一个空间的拓扑表示,代替了使用容易受到局部化和噪声影响的度量映射。基于局部几何信息,我们提出的表示由以图的形式连接的节点组成。通过360度全景图像直观地表示每个节点。节点之间使用近似的相对姿态相互连接。但是,使我们的视觉拓扑图新颖的是两个方向函数Fg和Fs,它们提取了节点的几何和语义属性。具体来说,Fg估计智能体agent遇到空闲空间的可能性,Fs估计智能体agent朝特定方向移动时遇到目标映像的可能性。通过显式建模和学习函数Fs,我们的模型确保在探索和导航新的未知环境时对结构prior进行编码和使用。与经典的和基于端到端学习的方法相比,我们的表现法没有什么优势:(a)它使用图形化表示法,允许进行有效的长期规划;(b)它通过函数Fs显式地编码结构优先级;(c)几何函数Fg允许为新环境进行有效的探索和在线地图构建;(d)但最重要的是,所有的功能和政策都可以在完全监督的方式学习,而不需要通过RL进行不可靠的信用分配。

图2:模型概述。图中显示了所提出的模型,神经拓扑SLAM的概述。它由三个部分组成,一个在接收到观测数据时更新拓扑图的图构造模块,一个对子目标进行采样的全局策略,以及一个通过导航操作到达子目标的局部策略。

2. 相关研究

本文在以下几个方面对导航问题做出了贡献:空间表示、导航策略的训练范式和不同的导航任务。我们调查以下这些领域的工作。

导航任务。

导航任务可以分为两大类。第一类任务是已知目标位置的任务,需要进行有限的探索。这可以是一种简单的无碰撞漫游[15,33],跟随对象[22],到达目标坐标[1,17]:使用沿路径[5,21]的图像序列或基于语言的指令[2]。有时,目标被指定为一个图像,但环境经验可以通过演示[13,34]或基于奖励的训练[24,47]的形式获得,这再次限制了探索的作用。第二类任务是目标未知,需要探索的时候。例如,在一个新的环境中找到一个物体[17],或者房间[42],或者进行明确的探索[6,9]。这些任务类别涉及不同的挑战。前一个任务侧重于有效的检索和健壮的执行,而后一个任务则涉及语义和常识推理,以便在以前看不见的环境中高效地操作。在这项工作中,我们的重点是在一个新的环境中达到目标图像。除目标图像外,环境中没有可用的经验。我们不知道有任何针对这一具体问题的工作。

经典的空间表现。

空间和拓扑表示在机器人导航中有着丰富的历史。研究人员使用了明确的度量空间表示[12],并考虑了如何使用不同的传感器构建这种表示[19,26–28,38],以及如何根据这种表示对智能体agent进行定位[11]。最近的工作已经开始将语义与这种空间表示联系起来[4]。类似地,非度量拓扑表示在经典文献中也被考虑过[10,20,23]。一些工作结合了拓扑和度量表示[39,40],一些研究了语义拓扑表示[20]。虽然我们的工作建立在现有的拓扑图文献的基础上,但这种相似性只存在于高层次的图结构中。我们的工作重点是使可视化拓扑映射和探索具有可扩展性、健壮性和高效性。我们通过在拓扑图中同时表示语义和几何属性来实现这一点;能够以在线方式构建拓扑图,最终将学习问题作为一个有监督的问题。

学习空间表示

根据所考虑的问题,研究了不同的表示。对于短程移动任务,应提供纯反应性策略[3,15,22,33]。对于更复杂的问题,例如在一个新的环境中的目标驱动导航,这种纯反应策略不能很好地工作[47],并且已经研究了基于内存的策略。这可以是普通的神经网络存储器的形式,如LSTMs[25,29]或transformers[14]。研究人员还将经典文献中的见解融入到导航用表达性神经记忆的设计中。这包括空间记忆[17,30]和拓扑方法[8,13,34,35,42,45]。学习到的空间方法可以获得表达性的空间表示[17],但是由于它们依赖于度量一致性而受到限制,因此大多被证明在离散状态空间中用于相对较短的水平任务[17,30]。研究人员还解决了被动和主动定位的问题[7,26],以帮助建立这种一致的度量表示。一些拓扑方法[8,13,34]处理人类探索或预先构建的拓扑图,因此忽略了探索问题。其他人则使用显式语义构建拓扑表示[42,46],这限制了可以处理的任务和环境。与以往的工作相比,我们将空间和拓扑表示统一起来,使之对驱动误差具有鲁棒性,并说明了如何逐步地、自主地建立拓扑表示,以及如何进行语义推理。

训练方法

不同的任务还导致设计不同的导航政策训练方法。这包括使用稀疏和形状奖励的强化学习[24,25,31,33,47]、模仿学习和匕首[17,32]、针对单个组件的自我监督学习[15,34]。虽然RL允许学习丰富的探索性行为,但使用RL的训练策略是众所周知的困难和样本不足。模仿学习是样本有效,但不允许学习探索性行为。自我监督学习很有前途,但只在已知目标任务的背景下进行了实验。我们采用一种有监督的学习方法,展示了我们如何在不受大量样本复杂性影响的情况下学习表现性探索行为。

实验测试

我们的模型由三个部分组成:图形更新模块、全局策略和局部策略。在较高层次上,图更新模块基于智能体agent观测更新拓扑图,全局策略选择图中的节点作为长期目标,并使用路径规划确定子目标以达到目标,局部策略基于视觉观测导航到子目标。图2提供了所提议的模型的概述。上述组件需要访问4个功能。我们首先定义了这4个函数,然后描述了模型组件如何使用它们。

图4显示了此函数的输入输出对示例。对应于同一源图像的分数随着目标图像的变化而变化。估计这个分数需要模型学习环境的语义先验知识。

图5显示了图形更新模块的概述。

通过访问上述四个功能,我们讨论了不同组件如何使用这些功能进行导航。在本小节中,我们将描述如何训练单个多任务学习模型来学习所有四个功能。图7显示了这个多任务学习模型的概述。

我们将NTS和两次消融的成功率和SPL作为顺序目标数的函数在图8中报告。在这种情况下,成功被定义为智能体agent在1000集测试集中达到的目标比率。

我们对每一个困难场景的1000集的建议方法和所有基线进行评估。我们比较了表1中RGB和RGBD设置中所有困难级别的所有方法。结果表明,在所有困难的情况下,该方法都比所有基线有相当大的优势,总的SUC/SPL分别为0.55/0.38、0.35/0.23和0.63/0.43、0.44/0.29。结果还表明,随着难度的增加,NTS相对于基线的相对改善会增加,从而导致硬设置的大幅度改善(RGBD为0.43/0.26 vs 0.16/0.09)。

为了量化停止操作的影响,我们在表2(左)中报告了所有没有停止操作的模型的性能。我们发现RL基线的性能要高得多。

为了量化这种影响,我们在表2(右)中评估了所有没有任何运动驱动和传感器噪声的模型。结果表明,在无运动噪声的情况下,基于度量映射的基线随距离的变化具有更好的性能,但NTS的性能并没有明显提高。

CVPR2020:视觉导航的神经拓扑SLAM的更多相关文章

  1. 工业搬运机器人(AGV)为什么要选择视觉导航

    在智能制造和仓储物流领域,搬运机器人的需求量在逐年上升.机器人(AGV)的种类千差万别,如何选择成为需求方头痛的问题. 本文将从客户关心的多个方面,对市面上的常见的工业级导航方案做一个比较. 搬运机器 ...

  2. SLAM+语音机器人DIY系列:(六)SLAM建图与自主避障导航——2.google-cartographer机器人SLAM建图

    摘要 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习.在前面的学习铺垫后,终于迎来了最大乐趣的时刻,就是赋予我们的miiboo机器人能自由行走的生命.本章将围绕机器人SLAM建图.导航避障 ...

  3. 深度学习:又一次推动AI梦想(Marr理论、语义鸿沟、视觉神经网络、神经形态学)

    几乎每一次神经网络的再流行,都会出现:推进人工智能的梦想之说. 前言: Marr视觉分层理论 Marr视觉分层理论(百度百科):理论框架主要由视觉所建立.保持.并予以解释的三级表象结构组成,这就是: ...

  4. 激光SLAM Vs 视觉SLAM

    博客转载自:https://www.leiphone.com/news/201707/ETupJVkOYdNkuLpz.html 雷锋网(公众号:雷锋网)按:本文作者SLAMTEC(思岚科技公号sla ...

  5. 三维视觉惯性SLAM的有效Schmidt-EKF

    三维视觉惯性SLAM的有效Schmidt-EKF An Efficient Schmidt-EKF for 3D Visual-Inertial SLAM 论文地址: http://openaccess ...

  6. 深度学习结合SLAM研究总结

    博客转载自:https://blog.csdn.net/u010821666/article/details/78793225 原文标题:深度学习结合SLAM的研究思路/成果整理之 1. 深度学习跟S ...

  7. 服务机器人的小脑——SLAM技术

    博客转载自:https://www.leiphone.com/news/201706/DZlMscTwdIzFyodg.html 雷锋网(公众号:雷锋网)按:本文作者SLAMTEC(思岚科技公号sla ...

  8. SLAM的现在与未来

    http://geek.csdn.net/news/detail/202128 作者:高翔,张涛,刘毅,颜沁睿. 编者按:本文节选自图书<视觉SLAM十四讲:从理论到实践>,系统介绍了视觉 ...

  9. 机器人自主移动的秘密:SLAM与路径规划有什么关系?(三)

    博客转载自:https://www.leiphone.com/news/201612/lvDXqY82OGNqEiyl.html 雷锋网(公众号:雷锋网)按:本文作者SLAMTEC(思岚科技公号sla ...

随机推荐

  1. Linux启动流程和服务管理(init和systemd)

    目录 一:Linux启动流程 init和Systemd的区别 二:Linux服务管理(service,systemctl) 一:Linux启动流程 Rhel6启动过程: Rhel7启动过程: GRUB ...

  2. Python中python-nmap模块的使用

    目录 python-nmap的安装 python-nmap模块的使用 portScanner()类 环境:  python 2.7.13 Windows和Linux默认都是不安装python-nmap ...

  3. hdu3374最小表示法+KMP

    题意:       给你一个最长100W的串,然后让你找到最小同构子串,还有最大同构子串的下标,最小同构子串就是把字符串连接成一个环,然后选择一个地方断开,得到的一个ASCII最小的子串(求最大同理) ...

  4. 手脱ASPack2.12壳(练习)

    俗话说柿子挑软的捏,练习脱壳还得用加密壳脱 0x01 准备 1.OD 2.ASPack加壳软件 0x02 脱壳实战 查一下壳 OD载入 第一个call,F7进去 第二个call也是F7进去 之后往下单 ...

  5. SSM中事务的配置模板

    Spring-tx.xml 配置思路: 1. 声明事务管理器DataSourceTransactionManager,并注入数据源dataSource属性 2.配置事务增强<tx:advice& ...

  6. 跟我一起学Go系列:gRPC 入门必备

    RPC 的定义这里就不再说,看文章的同学都是成熟的开发.gRPC 是 Google 开源的高性能跨语言的 RPC 方案,该框架的作者 Louis Ryan 阐述了设计这款框架的动机,有兴趣的同学可以看 ...

  7. Scrum Meeting 1

    Basic Info where:新主楼 when:2020/4/23 target: 简要汇报一下已完成任务,下一步计划与遇到的问题 Progress Team Member Position Ac ...

  8. 炸天的3D引擎OpenCASCADE的用法及案例(https://blog.csdn.net/xipengbozai/article/details/117044032?spm=1001.2014.3001.5502)

    What CASCADE?Open CASCADE(简称OCC)平台是由法国Matra Datavision公司开发的CAD/CAE/CAM软件平台,可以说是世界上最重要的几何造型基础软件平台之一.开 ...

  9. 阅读vue源码-----内置组件篇(keep-alive)

    1.前言: <keep-alive>是vue实现的一个内置组件,也就是说vue源码不仅实现了一套组件化的机制,也实现了一些内置组件. <keep-alive>官网介绍如下:&l ...

  10. .NET平台系列10 .NET统一平台愿景

    系列目录     [已更新最新开发文章,点击查看详细] 2019年,微软分享了[统一的.NET堆栈和生态系统的愿景].给开发者带来的价值是,将能够使用一组API,语言和工具来针对广泛的应用程序类型,包 ...