Is Mapping Necessary for Realistic PointGoal Navigation 论文阅读和代码分析

论文

论文信息

题目:Is Mapping Necessary for Realistic PointGoal Navigation?
作者:Ruslan Partsey、 Erik Wijmans
代码地址:rpartsey.github.io/pointgoalnav
来源:CVPR

Abstract

目标:证明显式地图不是成功导航的必要条件。

对比实验
数据集(模拟器):无地图导航模型的标准数据集Gibson。

模拟器和现实世界的区别:本体感知(位置和方向)、观测噪声、动力学噪声。

  1. 理想环境:位置和方向信息 + 没有RGB-D传感器噪声和驱动噪声:100%
  2. 现实环境:没有位置和方向信息 + RGB-D传感器噪声和驱动噪声:71.7%
  3. 实验环境:位置和方向信息 + RGB-D传感器噪声和驱动噪声:97%([39])、99.8%(本论文)

证实了唯一的性能限制因素是智能体的自我定位能力。

Introduction

特点

  1. 通过动作嵌入进行动作调节。
  2. 训练时数据增强。
  3. 用于集成的测试时数据增强。
  4. 增加了数据集大小和模型大小。

PointGoal Navigation

任务定义
在这里插入图片描述
在PointNav中,智能体在以前未见过的环境中初始化,并被分配到相对于其起始位置指定的目标。动作空间是离散的,由四种类型的动作组成:停止(结束episode),向前移动0.25m,以α角向左转弯和向右转弯。

评估指标
Agent通过三个主要指标进行评估:

  1. Success: 如果智能体在距离目标0.36m (2倍agent半径)的范围内发出停止命令,则 e p i s o d e i episode\space i episode i被认为是成功的。
  2. Success weight by (inverse normalized) Path Length (SPL):
    形式上,对于 e p i s o d e i episode\space i episode i,设 S i S_i Si为成功的二进制指示器, p i p_i pi为智能体路径的长度, l i l_i li为最短路径(测地线距离)的长度,那么对于N个episode:
    S P L = 1 N ∑ i = 1 N S i ⋅ l i m a x ( p i , l i ) SPL=\frac{1}{N}\sum_{i=1}^{N}S_i \cdot \frac{l_i}{max(p_i,l_i)} SPL=N1i=1NSimax(pi,li)li
  3. SoftSPL: 即二元的成功状态 S i S_i Si被目标的完成过程所取代。形式上,对于 e p i s o d e i episode i episodei,设 d 0 i d_{0_i} d0i为到目标的初始距离, d T i d_{T_i} dTi为episode结束时到目标的距离(包括成功和失败),则
    S o f t S P L = 1 N ∑ i = 1 N ( 1 − d T i d 0 i ) ⋅ ( l i m a x ( p i , l i ) ) SoftSPL=\frac{1}{N}\sum_{i=1}^{N}\left(1-\frac{d_{T_i}}{d_{0_i}} \right) \cdot \left ( \frac{l_i}{max(p_i,l_i)}\right ) SoftSPL=N1i=1N(1d0idTi)(max(pi,li)li)

PointNav-v1: Idealized (Noise-less) Setting
智能体配备了无噪声 RGB-D 摄像头,可以访问地面实况定位(通过 GPS+罗盘传感器),并且运动是确定性/无噪声的(意味着右转 10° 总是使代理正好旋转 10°)。该代理还可以沿着墙壁“滑动”——这是视频游戏中的常见行为,可以提高人类控制能力,但后来发现会降低模拟到真实的性能。

用强化学习的效果已经很好了

PointNav-v2: Realistic (Noisy) Setting
引入驱动噪声(通过对 LoCoBot 机器人进行基准测试建模 )、移除 GPS+Compass 以及向 RGB-D 相机添加噪声来解决 v1 的这些缺点。为了模拟真实世界的相机 RGB 和深度,使用了 [8] 中的噪声模型(向RGB 中加高斯噪声模型;向Depth中加 Redwood 噪声)。

Navigation Policy

模块结构

由两个组件构成:

一个导航策略(nav-police):在时间步 t t t给出观测值 O t O_t Ot,决定采取哪种操作来达到目标​​;

一个视觉里程计(VO):一个视觉测程(VO)模块,输入一对180×360 RGB-D帧,作为两个连续观测值 ( O t − 1 , O t ) (O_{t-1},O_t) (Ot1,Ot),并输出相对位姿变化 ( Δ x , Δ y , Δ z , Δ θ ) (\Delta x,\Delta y,\Delta z,\Delta \theta) (Δx,Δy,Δz,Δθ),其中 Δ x , Δ y , Δ z \Delta x,\Delta y,\Delta z Δx,Δy,Δz 表示摄像机中心的三维平移, Δ θ \Delta \theta Δθ表示围绕重力矢量的旋转。然后用于更新目标相对于机器人的位置,更新后的目标位置将与 O t O_t Ot一起提供给导航策略,以预测下一个行动。初始目标位置估计等于实际目标位置(根据任务规范)。

输入
g t − 1 g_{t-1} gt1:目标前一步的坐标
O t − 1 O_{t-1} Ot1:前一步的观测值
O t O_t Ot:当前的观测值
基于rnn的RL导航策略和基于cnn的可视化测程(VO)模块组成了基于rnn的现实点目标导航的智能体结构。
首先,VO 预测 t − 1 和 t 之间的变化,然后将目标更新为 wrt。当前姿势。更新后的目标位置与 Ot 一起提供给导航策略,以预测下一个动作。初始目标位置估计等于地面真实目标位置(根据任务规范)

网络结构

导航策略的网络结构
我们的导航策略由两层长短期存储器(LSTM)和半宽ResNet50编码器组成。

在每个时间步,策略被给予来自噪声深度传感器(导航策略的常见做法)和位置方向(训练时来自ground-truth,测试时来自视觉测程模块)的输出。

在通过特征编码器之前,视觉观察使用ResizeShortestEdge和CenterCrop观察转换进行转换;前者将输入的最短边调整为256像素,同时保持纵横比,后者将输入的中心裁剪为256 × 256像素。

视觉测程模块的网络结构
视觉测程模块表示为ResNet编码器后加一个压缩块和两个全连接(FC)层。

我们将BatchNorm替换为GroupNorm,并使用宽度的一半。压缩块由3×3 Conv2d+GroupNorm+ReLU组成。我们在全连接层之间应用DropOut,概率为0.2。完整的VO管道如图3所示。
图3 视觉测程模块的网络结构

训练细节

我们还实现了分布式VO训练管道。在8个节点上训练(每个节点有8个GPU,共64个GPU)比在1个节点上训练快6.4倍。

训练导航策略
我们利用分散式分布式近端策略优化(DD-PPO)和Wijmans等人的奖励结构来训练策略。

奖励函数设定
对于episode i i i,智能体接受 ‘terminal’ reward: r T = 2.5 ⋅ S u c e s s i r_T=2.5\cdot Sucess_i rT=2.5Sucessi以鼓励它停在正确的位置(并保持有效的路径),和一个shaped reward: r t ( a t , s t ) = − Δ g e o _ d i s t − 0.01 r_t(a_t,s_t)=-\Delta geo\_dist-0.01 rt(at,st)=Δgeo_dist0.01以鼓励它向目标执行动作(同时保持高效), Δ g e o _ d i s t \Delta geo\_dist Δgeo_dist是在状态 s t s_t st 执行操作时到目标的测地距离的变化。

我们在Gibson 4+上训练了25亿步,然后在Gibson 0+上训练了25亿步,最后在终止奖励由SPL加权的Gibson 0+上训练了25亿步。在整个实验过程中,每个阶段我们都使用前一阶段中最好的策略开始。

训练视觉里程计模块
我们在静态数据集 D = { ( O t − 1 , O t , a t − 1 , Δ p o s e ) } D=\left\{(O_{t-1},O_t,a_{t-1},\Delta pose)\right\} D={(Ot1,Ot,at1,Δpose)}上训练视觉测程模型。该数据集是通过使用oracle path来创建的,从这些轨迹中对具有关于所采取的行动和自我运动的元信息的RGB-D帧进行统一采样。我们使用Gibson 4+场景(和Gibson-v2 PointGoal导航集)来生成VO数据集。我们通过从训练场景中统一采样20%的观测对(总共500k到5M个训练示例)来收集训练数据集,通过从验证场景中采样75%的观测对(总共34k个)来收集验证数据集。

oracle path指的是一个理想化的路径规划方法,它假设智能体已经知道了完整的环境地图,并且没有任何感知或执行误差。在这种情况下,智能体可以通过简单地计算最短路径来找到目标位置。因此,oracle path可以被认为是一种最优的路径规划方法。

该模型的批处理大小为32,Adam优化器的学习率为 1 0 − 4 10^{-4} 104,平移和旋转的均方误差(MSE)损失。

训练视觉测程(VO)模块的优化手段

  1. 通过action embeddings进行动作调节。视觉测程(VO)模块根据图像和所执行的动作进行测程。我们发现,将动作的one-hot(独热码)表示转换为continuous embeddings,并将它们连接到VO网络中的最后两个全连接层,显著提高了+8 Success/+5 SPL的性能。

continuous embeddings和one-hot的区别:在one-hot编码中,每个动作都被表示为一个只有一个元素为1的向量,其余元素为0。而continuous embeddings则是将每个动作类型映射到一个固定长度的向量空间中,并使用该向量来表示该动作。相比之下,continuous embeddings可以更好地捕捉不同动作之间的相似性和差异性,并且可以通过embedding层来学习这些特征。因此,在某些情况下,使用continuous embeddings可以提高神经网络的性能

  1. 训练时的数据增强。当智能体产生观测值 O t − 1 O_{t-1} Ot1 O t O_t Ot 时,我们可以通过反向姿势和动作创建一个新的训练图像,将 O t − 1 O_{t-1} Ot1 O t O_t Ot 联系起来。我们还提出了一种新的增强,称为Flip。累积起来,它们可以通过+2 Success/+1 SPL来提高性能。
    视觉测程模块接收到两个用于向前移动的观测对(原始和翻转)和四个用于转向{左,右}动作的观测对(原始,翻转,交换(原始),交换(翻转))。在聚合阶段,通过对每个增强应用逆变换,将输出转换回原始坐标坐标系,然后求平均值以产生最终的自我运动估计。
    数据增强

  2. 用于集成的测试时数据扩充。为了提高稳健性,我们在测试时执行所有增强,并对所有组合进行汇总预测。这提高了+3 Success/+3 SPL的性能。

  3. 增加数据集大小和模型大小。最后,我们研究了数据集规模从500k增加到1.5M观测对(+8 Success/+7 SPL),更大的模型规模(+3 Success/+3 SPL),以及数据集规模从1.5M增加到5M (+8 Success/+6 SPL)的影响。

实验

Habitat Challenge 挑战赛2021 PointNav项目

我们在Habitat Challenge 挑战赛基准测试标准中评估了性能最佳的智能体(表1,第16行)。我们的智能体在测试标准拆分中达到94%的成功率和74%的SPL。与之前发表的最先进技术相比,这增加了+16%的成功率/+15%的SPL。超过了当时的冠军智源机器人的成功。
在这里插入图片描述

物体目标导航 (Object Navigation) 是智能机器人的基本任务之一。在此任务中,智能机器人在一个未知的新环境中主动探索并找到人指定的某类物体。物体目标导航任务面向未来家庭服务机器人的应用需求,当人们需要机器人完成某些任务时,例如拿一杯水,机器人需要先寻找并移动到水杯的位置,进而帮人们取到水杯。

虽然我们的结果不能有效地“解决”现实设置下的PointGoal导航,但它们显著地提高了性能,并提供了更多的证据,表明即使在严酷的现实条件下,也可以在不构建显式映射的情况下进行导航。

消融

  1. action embeddings:我们分析了两种可能的整合元信息的方法:将embeddings连接到编码器之后的第一个FC层(表1,将action embeddings到第一个FC层,与基线(第2行与第1行)相比,性能提高了+7 Success/+5 SPL。将action embeddings到所有FC层,性能进一步提高了+1 Success/+1 SPL(第3行与第2行)。我们相信,这允许FC层接收更多的上下文,以使用共享编码器为每个动作类型学习更准确的自我运动。

  2. 训练时间:通过应用Flip来丰富VO数据集多样性可以提高+2 Success/+1 SPL(第6行对第3行)的性能。有趣的是,我们发现Swap会降低-2 Success/-2 SPL(第4行对第3行)的性能。

  3. 更大的数据集:为了研究大规模训练的影响,我们按照第4.4节所述的相同的数据集收集协议,将训练数据集大小增加了3倍(从500k增加到1.5M训练对)。在没有增强的情况下,增加数据集大小3×可以提高性能+5 Success/+4 SPL(第12行对第3行)和+8 Success/+4 SPL(第14行对第11行)。
    我们还使用这个更大的数据集检查了增强的影响。令人惊讶的是,我们发现它们在更大的训练数据集上更有影响力。

  4. 更深层次的编码器:我们发现,使用更复杂的编码器架构(ResNet50而不是ResNet18)进行训练,可以进一步提高导航性能+3 Success/+3 SPL(第15行vs第14行)。
    消融实验

sim to sim

我们研究了智能体的两个组件如何从训练数据集Gibson转移到Matterport3D数据集。我们发现在智能体的性能日渐本地化由只有 -6 Success/-6 SPL(表2、行5 vs 行2),智能体的性能与视觉测程法降低更多,-19 Success/-18 SPL(行6 vs 行3)。

这就留下了一个问题——是否存在通用(跨数据集)VO模块?我们预计,创建这样一个系统需要在多个大规模数据集上进行训练。
在这里插入图片描述

sim to real

我们在现实中对我们的方法进行了初步探索,并将我们的学习代理部署在没有sim2real适应的LoCoBot上。在9个episodes中,它获得了11%的成功,71%的SoftSPL,并完成了通往目标道路(SoftSuccess)的92%。根据网站上提供的导航视频,该代理可以很好地避开障碍物。这些初步结果显示出希望,适应性方法可以提高性能。

结束语

虽然我们的结果不能有效地“解决”现实环境中的PointGoal导航,但它们显著地提高了性能,并提供了更多的证据,表明即使在严酷的现实条件下,也可以在不构建显式映射的情况下进行导航。

局限性

虽然我们的工作在现实条件下的无地图导航方法方面取得了重大进展,但它有几个局限性。

  1. 体现特异性。虽然我们的VO模型和训练过程是策略不可知的,但它们不是实现不可知的。action embeddings的重要性意味着放松这将是一个挑战,这意味着VO模型可能需要为每个实施例重新训练,这是浪费的。
  2. 数据集特异性。同样,我们学习的VO模型在数据集之间不能很好地传输,可能需要为每个数据集重新训练。我们相信大规模多数据集训练可能是一个解决方案,但这仍然是一个悬而未决的问题。
  3. 计算需求。我们的最佳导航策略使用了总共75亿步的经验。训练我们最好的VO模型首先需要生成5M个训练对,然后在64个GPU上训练(总共约5000个GPU小时)。PointNav-v1[26,32,36]的高计算需求迅速降低,我们预计PointNav-v2的计算需求也会降低,但这仍然是一个开放的方向。

其余细节

确定SPL的上限

为了将导航策略的性能与视觉测程模块隔离开来,我们通过访问ground-truth位置和方向来检查智能体的性能。在Gibson val数据集上,我们的智能体在PointNav-v2设置中实现了99.8%的成功和80%的SPL。这一结果表明,即使有嘈杂的观测和驱动,也可以在不建立明确的地图的情况下实现近乎完美的成功。

为了回答近乎完美的SPL是否也可以实现,我们需要在现实环境中对SPL设置一个严格的上限。回想一下,在现实设置驱动是有噪声的。因此,即使是一个对环境完全了解的oracle智能体也可能无法遵循最短路径并实现100%的SPL。例如如果智能体按照最短路径靠近障碍物,噪声驱动可能会使其与障碍物接触,此时需要进行避让,因此增加了其路径长度。

为了确定SPL的更严格的上限,我们实现了一个启发式规划器,它使用ground-truth映射来选择运动原语(转{左,右}×N,然后向前移动)。规划器选择使用真实地测地线距离(因此使用真实地图)最好地减少到目标的距离的原语,在选定的原语中执行第一个操作,然后重新运行选择过程,直到达到目标。在Gibson验证中,oracle达到84%的SPL。因此,在现实环境中,我们不应该期望100%的SPL。

然后,我们通过考虑给予神谕的特权信息(ground-truth map)来进一步收紧上限。考虑理想的设置,在这种设置中,智能体的挑战是未知环境中的路径规划,而不是额外满足于有噪声的驱动和观察。这种设置也被认为是Gibson数据集上的“解决”,使其成为量化地面真相地图影响的理想设置。在理想的设置中,在Gibson val上,oracle实现了99%的SPL,而对于一个学习智能体,最广为人知的结果是97%的SPL[33]。使用绝对或相对差异,我们预计在现实环境中,当oracle达到84%的SPL时,学习智能体可以达到大约82%的SPL。虽然80%并不是82%,但这表明视觉测程模块是限制因素(视觉测程模块的最佳结果是63% SPL),我们将在本文的其余部分将重点放在这个组件上

参考

文章链接:https://blog.csdn.net/weixin_42856843/article/details/129798138

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/11037.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】实验九:二叉树

实验九 二叉树 一、实验目的与要求 1)理解二叉树的类型定义; 2)掌握二叉树的存储方式及基于存储结构的基本操作实现; 二、 实验内容 1. 二叉树的结点定义如下: struct TreeNode { int m_nvalue; TreeNode* m_…

多源BFS-- 矩阵距离

关于多源BFS,基本上就是单源BFS的简单升级了一下,比如在queue中队头开始时只有一个,我们通过这一个队头去推导其他的东西。而多源最短路就是队头一开始有1-n个可能的数,一个一个去BFS。 题目思路: 这个题就直接把所有的…

HummerRisk V1.3.0 发布

HummerRisk V1.3.0发布: 大家好,HummerRisk 1.3.0和大家见面了,在这个版本中我们继续在多云接入管理、多云检测方式、云资源态势方面提供新的能力,并增加了新的镜像仓库支持类型,并优化了云的区域选择、优化规则组内容…

C#时间轴曲线图形编辑器开发1-基本功能

目录 一、前言 1、简介 2、开发过程 3、工程下载链接 二、基本功能实现 1、绘图面板创建 (1)界面布置 (2)显示面板代码 (3) 面板水平方向、竖直方向移动功能实现 (4)面板放…

【数据结构】实验五:栈

实验五 栈 一、实验目的与要求 1)熟悉栈的类型定义和基本操作; 2)灵活应用栈解决具体应用问题。 二、实验内容 1、判断回文数,回文是指正读反读均相同的字符序列,如“1221”和“12321”均是回文,但“…

与传统透明屏相比,BOE透明屏有哪些特点优势?

BOE透明屏是一种新型的显示技术,它能够实现透明度高达90%以上的显示效果。这种屏幕可以应用于各种领域,如商业展示、智能家居、汽车行业等,具有广阔的市场前景。 BOE透明屏采用了先进的光学技术,通过控制光的传播和折射&#xff…

自建纯内网iot平台服务,软硬件服务器全栈实践

基于以下几个考虑,自制硬件设备,mqtt内网服务器。 1.米家app不稳定,逻辑在云端或xiaomi中枢网关只支持少部分在本地计算。 2.监控homeassistant官方服务有大量数据交互。可能与hass安装小米账户有关。 3.硬件:原理图,l…

【KVC补充 Objective-C语言】

一、KVC补充 好,那么接下来,再给大家说一下这个KVC 1.首先我们说,这个KVC,就是指的什么 key value coding 吧 全称就是叫做(Key Value Coding),这是它的全称 那么,你在帮助文档里面搜的时候,你就搜key-value coding 是不是这个啊,key-value coding 然后点击,进…

Unity XML3——XML序列化

一、XML 序列化 ​ 序列化:把对象转化为可传输的字节序列过程称为序列化,就是把想要存储的内容转换为字节序列用于存储或传递 ​ 反序列化:把字节序列还原为对象的过程称为反序列化,就是把存储或收到的字节序列信息解析读取出来…

尚医通06:数据字典+EasyExcel+mongodb

内容介绍 1、数据字典列表前端 2、EasyExcel介绍、实例 3、数据字典导出接口、前端 4、数据字典导入接口、前端 5、数据字典添加redis缓存 6、MongoDB简介 7、MongoDB安装 8、MongoDB基本概念 数据字典列表前端 1、测试问题 (1)报错日志 &am…

SpringBoot复习:(4)打成的jar包是如何启动的?

jar包通过MANIFEST的Main-Class指定了主类JarLauncher, JarLauncher的main方法代码如下: 其中调用的launch的代码如下: 首先,创建了一个自定义的ClassLoader,代码如下: 其中调用的重载的createClassLoader代码如下&#xff1…

STM32MP157驱动开发——按键驱动(中断)

文章目录 编写使用中断的按键驱动程序编程思路设备树相关驱动代码相关 代码修改设备树文件gpio_key_drv.cMakefile编译测试 编写使用中断的按键驱动程序 对于使用中断的按键驱动,内核自带的驱动程序 drivers/input/keyboard/gpio_keys.c 就可以,需要做的…

cpolar内网穿透工具

文章目录 cpolar内网穿透工具 cpolar内网穿透工具 科学技术的发展日新月异,电子设备在人们的生活中已成为不可或缺的工具,甚至在很多情况下,各类型的电子设备已经成为工作的核心,虽然移动设备越来越小巧,功能也越来越…

基于netlify生成custom SSL certificate

(1)腾讯云申请 (2)域名控制台解析 (3)Nginx下载(crt: CA certificate Chain)

SpringBoot 8种异步实现方式

前言:异步执行对于开发者来说并不陌生,在实际的开发过程中,很多场景多会使用到异步,相比同步执行,异步可以大大缩短请求链路耗时时间,比如:「发送短信、邮件、异步更新等」,这些都是…

如何解决大数据下滚动页面卡顿问题

原文合集地址如下,有需要的朋友可以关注 本文地址 合集地址 前言 之前遇到不分页直接获取到全部数据,前端滚动查看数据,页面就听卡顿的,当然这和电脑浏览器性能啥的还是有点关系。但根源还是一次性渲染数据过多导致的&#xf…

【C++从0到王者】第十三站:vector源码分析及手把手教你如何写一个简单的vector

文章目录 一、vector的源码分析1.分析思路2.构造函数和插入接口 二、手把手教你写一个简单的vector1.基本结构2.迭代器与私有成员变量的定义3.构造函数4.size和capacity5.迭代器函数接口6.析构函数7.reserve接口8.尾插9.operator[]运算符重载10.简单的测试前面的接口11.insert以…

【043】解密C++ STL:深入理解并使用 list 容器

解密C STL:深入理解并使用list容器 引言一、list 容器概述二、list容器常用的API2.1、构造函数2.2、数据元素插入和删除操作2.3、大小操作2.4、赋值操作2.5、数据的存取2.6、list容器的反转和排序 三、使用示例总结 引言 💡 作者简介:一个热爱…

2023年深圳杯数学建模D题基于机理的致伤工具推断

2023年深圳杯数学建模 D题 基于机理的致伤工具推断 原题再现: 致伤工具的推断一直是法医工作中的热点和难点。由于作用位置、作用方式的不同,相同的致伤工具在人体组织上会形成不同的损伤形态,不同的致伤工具也可能形成相同的损伤形态。致伤…

7D透明屏的市场应用广泛,在智能家居中有哪些应用表现?

7D透明屏是一种新型的显示技术,它能够实现透明度高达70%以上的显示效果。这种屏幕可以应用于各种领域,如商业广告、展览展示、智能家居等,具有广阔的市场前景。 7D透明屏的工作原理是利用光学投影技术,将图像通过透明屏幕投射出来…