Last-Mile Embodied Visual Navigation 论文阅读

论文阅读

题目:Last-Mile Embodied Visual Navigation
作者:JustinWasserman, Karmesh Yadav
来源:CoRL
时间:2023
代码地址:https://jbwasse2.github.io/portfolio/SLING

Abstract

现实的长期任务(例如图像目标导航)涉及探索和利用阶段。

分配有目标图像后,具体代理必须探索以发现目标,即使用学习到的先验进行有效搜索。一旦发现目标,代理必须准确校准到目标的最后一英里导航。与任何强大的系统一样,探索性目标发现和利用性最后一英里导航之间的切换可以更好地从错误中恢复。

遵循这些直观的导轨,我们提出 SLING 来提高现有图像目标导航系统的性能。完全补充现有方法,我们专注于最后一英里导航,并通过神经描述符利用问题的底层几何结构。通过简单但有效的开关,我们可以轻松地将 SLING 与启发式、强化学习和神经模块化策略连接起来。

在标准化图像目标导航基准 [1] 上,我们提高了策略、场景和情节复杂性的性能,将最先进的成功率从 45% 提高到 55%。

Introduction

我们将导航到可见对象或区域的后一个问题称为最后一英里导航。

最后一英里导航的非结构化本地策略要么是
(a)样本效率低下(强化学习框架中的数十亿帧[11]),要么是
(b)在从离线演示中学习时存在偏差且泛化能力较差(由于分布式)移位 [12, 13])

我们的主要贡献是:
(1)通用的最后一英里导航系统和开关,我们将其与五种不同的目标发现方法连接起来,从而实现全面改进。
(2) 在最广泛测试的折叠上,新的最先进技术取得了 54.8% 的成功,即与已发表的作品相比大幅跃升了 21.8% [5],与并发预印本相比跃升了 9.2%(Gibson -curved)AI Habitat 图像目标导航基准 ;
(3) 在具有挑战性的环境中进行广泛的图像目标导航机器人实验,其性能优于在真实世界数据 [14] 上训练的神经模块化策略 [1]。

Related Work

Embodied navigation

Anderson 等人 [15] 正式提出了评估具体代理的不同目标定义和指标。
在点目标导航中,目标的相对坐标是可用的(在所有步骤 [16,11,17,18,19] 或仅在剧集开始时 [9,20,21])。成功导航到点目标可以在没有语义场景理解的情况下完成,正如竞争性的仅深度代理所看到的那样 [16, 11]。语义导航需要通过图像(图像目标 [1, 2, 22])、声音提示(音频目标 [23, 24])或类别标签(对象目标 [8, 9])来识别目标。

导航的几个扩展包括语言条件导航[25,26,27,28],社交导航[29,30,31,32,33]和多代理任务[34,35,36,37,38] 39]。然而,这些都建立在单代理导航的基础上,并受益于相关的进步。对于更具体的任务和范例,我们建议读者参考最近的一项调查[40]。在这项工作中,我们专注于视觉丰富的环境中的图像目标导航。

Image-goal navigation

Chaplot 等人 [3] 引入了一种模块化和分层的方法,用于利用拓扑图存储器导航到图像目标。 Kwon 等人 [41] 引入了一种基于图像相似性的记忆表示,该记忆表示又以无监督的方式从未标记的数据和代理观察到的图像中学习。
NRNS [1] 改进了基于拓扑图的架构,并开源了 AI Habitat 内的公共数据集以及 IL 和 RL 基线 [11, 3]。该数据集已用于标准化评估[5, 6]。
ZER [5] 专注于将图像目标导航策略转移到其他导航任务。在并发预印本中,Y adav 等人 [6] 利用自监督预训练 [42] 来改进图像目标导航基准的端到端视觉 RL 策略 [11]。

Last-mile navigation

上述作品主要关注目标发现。相比之下,最近的研究还发现了当目标在智能体的视野中或附近时发生的“最后一英里”错误。对于多目标导航,Wani 等人 [46, 47] 在允许最终“找到”或“停止”操作的错误预算时观察到了两倍的改进。 Chattopadhyay 等人 [48] 发现导航的最后一步很脆弱,即小的扰动会导致严重的故障。 Ye 等人 [10] 将最后一英里错误确定为目标-目标导航中的一个突出错误模式(占失败的 10%)。

Connections to 3D vision

我们最后一英里导航系统的目标是预测两个图像之间的相对相机姿势,即代理的视图和图像目标。为此,根据 3D 到 2D 点对应关系对校准相机进行位姿估计,将我们的具体导航任务与几何 3D 计算机视觉联系起来。

SLING

我们遵循 Hahn 等人 [1] 的图像目标导航任务基准(类似于之前的公式 [2, 3])。代理观察 RGB 图像 I a I_a Ia、深度图 D a D_a Da 和图像目标 I g I_g Ig。代理可以从 A = { m o v e f o r w a r d , t u r n r i g h t , t u r n l e f t , s t o p } A = \{move\space forward, turn\space right, turn\space left, stop\} A={move forward,turn right,turn left,stop}中采样动作。停止动作终止该情节。

如图 1a 所示,我们将图像目标导航分为目标发现和最后一英里导航阶段。

在目标发现阶段,代理负责发现目标,即导航足够近,使目标占据以自我为中心的观察的很大一部分(“发现目标”图像)。图 1b 显示了我们系统之间的控制流。如果没有触发 explore )exploit 开关,基于学习的探索将继续。否则,如果探索)利用开关触发,代理的观察现在与图像目标重叠,并且控制流到最后一英里导航系统。我们发现来自探索的单向流程(如[1, 3]中所尝试的)利用过于乐观。因此,我们引入对称开关,包括将控制流回目标发现的开关。
在这里插入图片描述

Goal Discovery

我们可以将我们的多功能最后一英里导航系统和切换机制与任何现有方法结合起来。这些现有方法是先前建议的图像目标导航解决方案。我们通过五种不同的目标发现 (GD) 实现来证明这一点

直[61]Straight 。一种简单的启发式探索,代理向前移动,如果卡住了,可以通过右转来解锁自身(类似于[61]中的有效探索基线)。

距离预测网络(Distance Prediction Network, NRNS-GD)[1]。探索性导航是通过在可导航区域中提出路径点(利用代理的深度掩模确定)来完成的,使用拓扑图维护历史记录,并使用图神经网络进行处理。利用距离预测网络的输出来选择最小成本航路点。附录 B 和 [1] 中给出了更多详细信息。

去中心化分布式 PPO(Decentralized Distributed PPO, DDPPO-GD)[11]。用于真实感模拟器的 PPO [62] 实现,其中渲染是计算瓶颈。这是之前跨任务工作中的标准端到端深度强化学习基线 [18,1,5,6,63]。

离线视觉表示学习(Offline Visual Representation Learning, OVRL-GD)[6]。 DDPPO 网络,其视觉编码器使用自监督借口任务 [42] 对从 3D 扫描 [64] 获得的图像进行预训练。

环境-状态距离预测 (Environment-State Distance Prediction, Oracle-GD)。为了量化目标发现阶段错误的影响,我们设计了一个上限。这是 NRNS-GD 的一个特权变体,可获取距环境的地面真实距离,专门用于目标发现阶段。

Last-Mile Navigation

Neural Feature Extractor:我们首先将智能体的 RGB I a I_a Ia 转换为局部特征 ( X ^ a \hat{X}_a X^a, F a F_a Fa),其中 X ^ a ∈ R n a × 2 \hat{X}_a ∈ \mathbb{R}^{n_a×2} X^aRna×2 是位置, F a ∈ R n a × k F_a ∈ \mathbb{R}^{n_a×k} FaRna×k 是智能体图像中的视觉描述符。这里, n a n_a na是检测到的局部特征的数量, k k k是每个描述符的长度。
类似地, I g I_g Ig 导致特征 ( X ^ g \hat{X}_g X^g, F g F_g Fg),其中 X ^ g ∈ R n g × 2 \hat{X}_g ∈ \mathbb{R}^{n_g×2} X^gRng×2 F g ∈ R n g × k F_g ∈ \mathbb{R}^{n_g×k} FgRng×k,图像目标中具有 n g n_g ng 局部特征。
继 DeTone 等人[65]之后,我们采用兴趣点检测器,对合成数据进行预训练,然后进行跨域单应性适应(此处,k = 256)。

Matching Module:根据提取的特征 ( X ^ a \hat{X}_a X^a, F a F_a Fa) 和( X ^ g \hat{X}_g X^g, F g F_g Fg),我们预测匹配的子集 X ^ a ∈ R n a × 2 \hat{X}_a ∈ \mathbb{R}^{n_a×2} X^aRna×2 X ^ g ∈ R n g × 2 \hat{X}_g ∈ \mathbb{R}^{n_g×2} X^gRng×2 。匹配被优化以使 X a X_a Xa X g X_g Xg对应于同一点。
我们利用基于注意力的图神经网络(GNN),遵循 Sarlin 等人 [52],使用最佳传输公式很好地解决部分匹配和遮挡问题。上述神经特征提取器和基于 GNN 的匹配器有助于享受基于学习的方法的好处,特别是那些在大型离线视觉数据上进行预训练的方法,而无需在线、端到端微调。

接下来描述依赖于这些神经特征的几何组件。

Lifting Points from 2D --> 3D。代理的 2D 局部特征相对于代理的坐标系提升为 3D,即 P a ∈ R n × 3 P_a ∈ \mathbb{R}^{n×3} PaRn×3。这是通过利用相机固有矩阵 K(特别是主点 px、py 和焦距 fx、fy)以及 Xa 中每个位置的相应深度值(例如 d a ∈ R n d_a ∈ R^n daRn)来完成的。 P a P_a Pa 的第 i 行计算为:
在这里插入图片描述
Perspective-n-Point:下一步的目标,即透视 n 点 (PnP) 是找到代理和目标相机姿势之间的旋转和平移,以最小化重投影误差。
具体来说,对于给定的旋转矩阵 R ∈ R 3 × 3 \textbf{R} ∈ R^{3×3} RR3×3 和平移向量 t ∈ R 3 \textbf{t} ∈ R^3 tR3,局部特征的 3D 位置 Pa 可以从代理的坐标系重新投影到目标相机的坐标系:
在这里插入图片描述

Easimating Distance and Heading to Goal: 预测的平移 t 可以帮助计算从智能体到目标的距离 ρ = ∥ t ∥ 2 ρ = \|t\|_2 ρ=t2。类似地,从智能体到目标的航向 ϕ \phi ϕ 可以通过沿光轴(智能体视图)的单位向量与 t 的点积获得。具体来说, ϕ = sgn ⁡ ( t [ 1 ] ) ∗ arccos ⁡ ( t ⋅ o a / ∥ t ∥ 2 ∥ o a ∥ 2 ) \phi=\operatorname{sgn}(t[1]) * \arccos \left(\mathbf{t} \cdot \mathbf{o}_{a} /\|\mathbf{t}\|_{2}\left\|\mathbf{o}_{a}\right\|_{2}\right) ϕ=sgn(t[1])arccos(toa/∥t2oa2)。该符号来自 t [ 1 ] t[1] t[1],它沿着垂直于智能体光轴但平行于地面的轴指向。在计算航向时,该标志特别重要,因为它区分了代理向右转还是向左转

Local police: 最后,利用智能体当前位置到估计目标之间的距离 ρ ρ ρ 和航向 ϕ \phi ϕ 来估计动作空间 A 中达到目标的动作。在准确实现[66, 1]之后,我们采用局部度量地图来允许代理启发式避开障碍物并朝着目标移动

Switches

我们定义了目标发现(探索)和最后一英里导航(利用)两个阶段之间简单但有效的切换。

如果对应数量 n > n t h n > n_{th} n>nth,则触发 explore --> exploit 开关,其中 n t h n_{th} nth 是设定阈值。这表明代理的图像与图像目标有显着重叠,因此控制可以流向最后一英里的导航阶段。我们发现这个简单的开关比训练特定的深度网络来实现相同的效果更好([1,3,4]中尝试的变体)。对于explore,如果R、t(参见方程(2))的优化失败或者预测距离大于 d t h d_{th} dth(调整为4m),则智能体返回到目标发现阶段。

Experiments

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

W5500-EVB-PICO做DNS Client进行域名解析(四)

前言 在上一章节中我们用W5500-EVB-PICO通过dhcp获取ip地址(网关,子网掩码,dns服务器)等信息,给我们的开发板配置网络信息,成功的接入网络中,那么本章将教大家如何让我们的开发板进行DNS域名解析…

小程序 view下拉滑动导致scrollview滑动事件失效

小程序页面需要滑动功能 下拉时滑动&#xff0c;展示整个会员卡内容&#xff0c; 下拉view里包含了最近播放&#xff1a;有scrollview&#xff0c;加了下拉功能后&#xff0c;scrollview滑动失败了。 <view class"cover-section" catchtouchstart"handletou…

CS 144 Lab Four 收尾 -- 网络交互全流程解析

CS 144 Lab Four 收尾 -- 网络交互全流程解析 引言Tun/Tap简介tcp_ipv4.cc文件配置信息初始化cs144实现的fd家族体系基于自定义fd体系进行数据读写的adapter适配器体系自定义socket体系自定义事件循环EventLoop模板类TCPSpongeSocket详解listen_and_accept方法_tcp_main方法_in…

[整合]无root权限的服务器上安装screen

安装ncurses 命令行输入以下指令安装ncurses&#xff0c;这个是安装screen的前置依赖包。 wget http://ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar.gz #下载所需的ncurses版本tar zxvf ncurses-6.0.tar.gz #解压到当前目录cd ncurses-6.0 #打开ncurses-6.0文件夹mkdi…

---------------- 部署 Zookeeper 集群 ----------------

部署 Zookeeper 集群 1.安装前准备2.安装 Zookeeper修改配置文件在每个节点上创建数据目录和日志目录在每个节点的dataDir指定的目录下创建一个 myid 的文件配置 Zookeeper 启动脚本 //准备 3 台服务器做 Zookeeper 集群 192.168.109.1 192.168.109.2 192.168.109.3 1.安装前准…

实现vscode上用gdb调试stm32

实现vscode上用gdb调试stm32 这周负责编写设备的某个模块&#xff0c;其中遇到了一些变量地址不正确的错误&#xff0c;按理这种底层变量错误用gdb一类的调试器就能很快查到&#xff0c;可是初入嵌入式一行&#xff0c;此C语言非彼C语言&#xff0c;对于gdb怎么对接到项目上根…

ffmpeg-ffplay代码架构简述

全局变量 /* Minimum SDL audio buffer size, in samples. */ // 最小音频缓冲 #define SDL_AUDIO_MIN_BUFFER_SIZE 512 /* Calculate actual buffer size keeping in mind not cause too frequent audio callbacks */ // 计算实际音频缓冲大小&#xff0c;并不需要太频繁…

浅谈React中的ref和useRef

目录 什么是useRef&#xff1f; 使用 ref 访问 DOM 元素 Ref和useRef之间的区别 Ref和useRef的使用案例 善用工具 结论 在各种 JavaScript 库和框架中&#xff0c;React 因其开发人员友好性和支持性而得到认可。 大多数开发人员发现 React 非常舒适且可扩展&#xff0c;…

51单片机(普中HC6800-EM3 V3.0)实验例程软件分析 实验三 LED流水灯

目录 前言 一、原理图及知识点介绍 二、代码分析 知识点五&#xff1a;#include 中的库函数解析 _crol_&#xff0c;_irol_&#xff0c;_lrol_ _cror_&#xff0c;_iror_&#xff0c;_lror_ _nop_ _testbit_ 前言 第一个实验:51单片机&#xff08;普中HC6800-EM3 V3.0…

深度学习——注意力机制、自注意力机制

什么是注意力机制&#xff1f; 1.注意力机制的概念&#xff1a; 我们在听到一句话的时候&#xff0c;会不自觉的捕获关键信息&#xff0c;这种能力叫做注意力。 比如&#xff1a;“我吃了100个包子” 有的人会注意“我”&#xff0c;有的人会注意“100个”。 那么对于机器来说…

Docker Compose构建lnmp

目录 Compose的优点 编排和部署 Compose原理 Compose应用案例 安装docker-ce 阿里云镜像加速器 安装docker-compose docker-compose用法 Yaml简介 验证LNMP环境 Compose的优点 先来了解一下我们平时是怎么样使用docker的&#xff1f;把它进行拆分一下&#xff1a; 1…

BS框架说明

B/S架构 1.B/S框架&#xff0c;意思是前端&#xff08;Browser 浏览器&#xff0c;小程序、app、自己写的&#xff09;和服务器端&#xff08;Server&#xff09;组成的系统的框架结构 2.B/S框架&#xff0c;也可理解为web架构&#xff0c;包含前端、后端、数据库三大组成部分…

[深度学习] GPU处理能力(TFLOPS/TOPS)

计算能力换算 理论峰值 &#xff1d; GPU芯片数量GPU Boost主频核心数量*单个时钟周期内能处理的浮点计算次数 只不过在GPU里单精度和双精度的浮点计算能力需要分开计算&#xff0c;以最新的Tesla P100为例&#xff1a; 双精度理论峰值 &#xff1d; FP64 Cores &#xff0a;…

RK3588平台开发系列讲解(文件系统篇)什么是 VFS

文章目录 一、什么是 VFS二、VFS 数据结构2.1、超级块结构2.2、目录结构2.3、文件索引结点2.4、打开的文件2.5、四大对象结构的关系沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 今天我们一起来瞧一瞧 Linux 是如何管理文件,也验证一下 Linux 那句口号:一切皆为文…

【枚举,构造】CF1582 C D

Problem - C - Codeforces 题意&#xff1a; 思路&#xff1a; 思路很简单&#xff0c;只删除一种&#xff0c;直接枚举删除的是哪一种即可 但是回文子序列的判定我vp的时候写的很答辩&#xff0c;也不知道为什么当时要从中间往两边扫&#xff0c;纯纯自找麻烦 然后就越改越…

软件架构师高级——3、数据库系统

• 数据库概述&#xff08;★★★&#xff09; 集中式数据库系统 •数据管理是集中的 •数据库系统的素有功能 &#xff08;从形式的用户接口到DBMS核心&#xff09; 者口集中在DBMS所在的计算机。 B/S结构 •客户端负责数据表示服务 •服务器主要负责数据库服务 •数据 和后端…

【Linux】【预】配置虚拟机的桥接网卡+nfs

【Linux】【预】配置虚拟机的桥接网卡 1. 配置VM虚拟机的桥接网络2 配置Win10中的设置3.配置Linux中的IP4. 串口连接开发板&#xff0c;配置nfs5 修改网络文件6 验证nfs 是否成功总结 1. 配置VM虚拟机的桥接网络 右击设置&#xff0c;选择添加网络&#xff0c;按照如下顺序操作…

MySQL语句性能分析与优化

目录 SQL性能分析 SQL执行频率 SQL慢查询日志 Profile Explain SQL优化 插入数据的优化 主键优化 Order By优化 Group By优化 Limit 优化 Count 优化 Update 优化 多表连接查询优化 SQL性能分析 通过SQL性能分析来做SQL的优化&#xff0c;主要是优化SQL的查询语…

Springboot+Easyexcel将数据写入模板文件并导出Excel

SpringbootEasyexcel将数据写入模板文件并导出Excel 一、导入依赖二、根据excel表头创建对应的实体类Pojo三、Controller类接收请求四、Service层获取待写入数据五、效果展示六、总结 一、导入依赖 <!--操作excel工具包--> <dependency><groupId>com.alibab…

[Flask]SSTI1

根据题目提示&#xff0c;这关应该是基于Python flask的模版注入&#xff0c;进入靶场环境后就是一段字符串&#xff0c;而且没有任何提示&#xff0c;有点难受&#xff0c;主要是没有提示注入点 随机尝试一下咯&#xff0c;首先尝试一下guest&#xff0c;GET传参 但是没有反应…