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.mfbz.cn/a/61173.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

antv/l7地图,鼠标滚动,页面正常滑动-- 我们忽略的deltaY

背景 在官网项目中,需要使用一个地图,展示产品的分布区域及数量。希望的交互是,鼠标放上标点,tooltip展示地点和数量等信息。鼠标滚动,则页面随着滚动。但是鼠标事件是被地图代理了的,鼠标滚动意味着地图的…

4,链表【p5】

链表 4.1哈希表简介4.2有序表简介4.3链表4.3.1例1-反转单向和双向链表4.3.2例2-打印两个有序链表的公共部分4.3.3面试时链表解题的方法论4.3.4例3-判断一个链表是否为回文结构4.3.4.1快慢指针 4.3.5例4-将单向链表按某值划分成左边小、中间相等、右边大的形式4.3.6例5-复制好友…

RabbitMQ - 简单案例

目录 0.引用 1.Hello world 2.轮训分发消息 2.1 抽取工具类 2.2 启动两个工作线程接受消息 2.4 结果展示 3.消息应答 3.1 自动应答 3.2 手动消息应答的方法 3.3 消息自动重新入队 3.4 消息手动应答代码 4.RabbitMQ 持久化 4.1 队列如何实现持久化 4.2 消息实现持久化 5.不…

DBSCAN聚类

一、概述 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,簇集的划定完全由样本的聚集程度决定。聚集程度不足以构成簇落的那些样本视为噪声点,因此DBSCAN聚类的方式也可以用于异常点的检测。 二、算法…

【音视频SDK测评】线上K歌软件开发技术选型

摘要 在线K歌软件的开发有许多技术难点,需考虑到音频录制和处理、实时音频传输和同步、音频压缩和解压缩、设备兼容性问题等技术难点外,此外,开发者还应关注音乐版权问题,确保开发的应用合规合法。 前言 前面写了几期关于直播 …

SpringBoot+SSM实战<一>:打造高效便捷的企业级Java外卖订购系统

文章目录 项目简介项目架构功能模块管理端用户端 技术选型用户层网关层应用层数据层工具 项目优缺点结语 黑马程序员最新Java项目实战《苍穹外卖》:让你轻松掌握SpringBootSSM的企业级开发技巧项目简介 《苍穹外卖》是一款为餐饮企业(餐厅、饭店&#x…

leetcode 1290.二进制链表转整数

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;二进制链表转整数 ps&#xff1a; 1 0 1 (0 << 1) 1 0 1 1 (1 << 1) 0 2 0 2 (2 << 1) 1 4 1 5代码&#xff1a; int getDecimalValue(struct ListNode* head) {int ans 0;while(head !…

滇医通微信小程序分析笔记

注意 本文章仅供学习交流使用&#xff0c;如果你是铁粉你就会知道博主之前发布过一篇相关的文章&#xff0c;但是由于代码涉及到法律相关所以就隐藏了&#xff0c;两年的时间过去了&#xff0c;因为女朋友已经早早安排上了&#xff0c;所以就搁置了&#xff0c;本次不做代码分…

视频监控汇聚平台EasyCVR视频分享页面WebRTC流地址播放不了是什么原因?

开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多…

微信小程序nodejs+vue+uniapp个人家庭理财系统--论文

随着Internet的发展&#xff0c;人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化&#xff0c;网络化和电子化。网上管理&#xff0c;它将是直接管理家庭理财系统app的最新形式。本论文是以构建家庭理财系统app为目标&#xff0c;使用nodejs技术制作&…

macOS下Django环境搭建

1. macOS升级pip /Library/Developer/CommandLineTools/usr/bin/python3 -m pip install --upgrade pip 2. 卸载Python3.9.5版本 $ sudo rm -rf /usr/local/bin/python3 $ sudo rm -rf /usr/local/bin/pip3 $ sudo rm -rf /Library/Frameworks/Python.framework 3. 安装P…

人工智能大模型中token的理解

“token”是当前语言类模型的数据单位。当前的自回归语言模型是根据 token 来作为单位进行数据处理和计算&#xff0c;分词&#xff08;tokenization&#xff09;就是将句子、段落、文章这类型的长文本分解为以 token 为单位的数据结构&#xff0c;把文本分词后每个词表示成向量…

SpringBoot + ajax 实现分页和增删查改

0目录 1.SpringBoot 2.SpringBoot分页&#xff1b;增删改查 1.SpringBoot分页 创建数据库和表 创建SpringBoot工程&#xff0c;引入springboot下的分页依赖 配置application.yml 实体类 Mapper接口 Mapper.xml Service接口 Service实现类 控制层 测试 加…

并查集模板的应用:连通块

一、链接 837. 连通块中点的数量 二、题目 给定一个包含 nn 个点&#xff08;编号为 1∼n1∼n&#xff09;的无向图&#xff0c;初始时图中没有边。 现在要进行 mm 个操作&#xff0c;操作共有三种&#xff1a; C a b&#xff0c;在点 aa 和点 bb 之间连一条边&#xff0c…

【BASH】回顾与知识点梳理(五)

【BASH】回顾与知识点梳理 五 五. 数据流重导向5.1 什么是数据流重导向standard output 与 standard error output/dev/null 垃圾桶黑洞装置与特殊写法standard input &#xff1a; < 与 << 5.2 命令执行的判断依据&#xff1a; ; , &&, ||cmd ; cmd (不考虑指…

【安装】阿里云轻量服务器安装Ubuntu图形化界面(端口号/灰屏问题)

阿里云官网链接 https://help.aliyun.com/zh/simple-application-server/use-cases/use-vnc-to-build-guis-on-ubuntu-18-04-and-20-04 网上搜了很多教程&#xff0c;但是我没在界面看到有vnc连接&#xff0c;后面才发现官网有教程。 其实官网很详细了&#xff0c;不过这里还是…

针对java程序员的了解细节操作系统与进程

一、&#x1f49b; 操作系统&#xff08;浅浅概念&#xff09;&#xff1a;是用来搞管理软件的 1.对下,要管理各种硬件设备 2.对上,要给应用程序提供一个稳定的运行环境 二、&#x1f499; 进程&#xff1a;正在运行的程序&#xff0c;假如程序没有运行就不叫程序&#xff0c;…

【java安全】CommonsBeanUtils1

文章目录 【java安全】CommonsBeanUtils1前言Apache Commons BeanutilsBeanComparator如何调用BeanComparator#compare()方法&#xff1f;构造POC完整POC 调用链 【java安全】CommonsBeanUtils1 前言 在之前我们学习了java.util.PriorityQueue&#xff0c;它是java中的一个优…

echarts-pie---------3D曲状环形饼图实现!!!

示例&#xff08;参考此处饼图修改https://www.isqqw.com/viewer?id37497&#xff09; 话不多说直接上代码 此套代码可以直接再echarts官网中的此处运行 let selectedIndex ; let hoveredIndex ; option getPie3D([{name: 数学,value: 60,itemStyle: {color: #1890FF,},},{…

JVM入门到精通

一、JVM概念 1.1、什么是JVM Java Virtual Machine&#xff1a;Java虚拟机&#xff0c;用来保证Java语言跨平台 Java虚拟机可以看做是一台抽象的计算机&#xff0c;如同真实的计算机那样&#xff0c;它有自己的指令集以及各种运行时内存区域 Java虚拟机与Java语言并没有必然…