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^a∈Rna×2 是位置, F a ∈ R n a × k F_a ∈ \mathbb{R}^{n_a×k} Fa∈Rna×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^g∈Rng×2 且 F g ∈ R n g × k F_g ∈ \mathbb{R}^{n_g×k} Fg∈Rng×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^a∈Rna×2 和 X ^ g ∈ R n g × 2 \hat{X}_g ∈ \mathbb{R}^{n_g×2} X^g∈Rng×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} Pa∈Rn×3。这是通过利用相机固有矩阵 K(特别是主点 px、py 和焦距 fx、fy)以及 Xa 中每个位置的相应深度值(例如 d a ∈ R n d_a ∈ R^n da∈Rn)来完成的。 P a P_a Pa 的第 i 行计算为:

Perspective-n-Point:下一步的目标,即透视 n 点 (PnP) 是找到代理和目标相机姿势之间的旋转和平移,以最小化重投影误差。
具体来说,对于给定的旋转矩阵 R ∈ R 3 × 3 \textbf{R} ∈ R^{3×3} R∈R3×3 和平移向量 t ∈ R 3 \textbf{t} ∈ R^3 t∈R3,局部特征的 3D 位置 Pa 可以从代理的坐标系重新投影到目标相机的坐标系:

Easimating Distance and Heading to Goal: 预测的平移 t 可以帮助计算从智能体到目标的距离 ρ = ∥ t ∥ 2 ρ = \|t\|_2 ρ=∥t∥2。类似地,从智能体到目标的航向 ϕ \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(t⋅oa/∥t∥2∥oa∥2)。该符号来自 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


相关文章:
Last-Mile Embodied Visual Navigation 论文阅读
论文阅读 题目:Last-Mile Embodied Visual Navigation 作者:JustinWasserman, Karmesh Yadav 来源:CoRL 时间:2023 代码地址:https://jbwasse2.github.io/portfolio/SLING Abstract 现实的长期任务(例如…...
thunder gbm
文章目录 背景参考官网信息训练调参模型保存推理 背景 想在 GPU 上使用使用闪电般快速的提升方法?了解这个库就好了。在很多任务上,它都比 LightGBM 和 XGBoost 快。 ThunderGBM 的主要特征如下: 通常是其它库的 10 倍。 支持 Python&#x…...
数据结构--单链表
前言 上一章,我们讲了数据结构--动态顺序表,我们会发现有以下问题: 1.当我们要头部或者插入或删除时,都需要进行位置挪动,腾出某一个位置,时间复杂度为0(N); 2.增容需要申请新空间,…...
过程:从虚拟机上添加 git 并成功提交到 GitLab 的全过程
Ⅰ、准备工作: 1、Git 查看: 其一、命令:git --version // 此时就能在虚拟机环境下看到 git 的版本为: git version 2.41.0 其二、如何在虚拟机上安装 git : A、命令 : sudo apt-get install git B、然后再输入虚…...
机器学习笔记之优化算法(九)收敛速度的简单认识
机器学习笔记之优化算法——收敛速度的简单认识 引言收敛速度的判别标准 Q \mathcal Q Q-收敛速度 R \mathcal R R-收敛速度关于算法复杂度与收敛速度 引言 本节对收敛速度简单介绍。 收敛速度的判别标准 我们之前几节介绍了线搜索方法 ( Line Search Method ) (\text{Line …...
FPGA学习——Altera IP核调用之PLL篇
文章目录 一、IP核1.1 IP核简介1.2 FPGA中IP核的分类1.3 IP核的缺陷 二、PLL简介2.1 什么是PLL2.2 PLL结构图2.3 C4开发板上PLL的位置 三、IP核调用步骤四、编写测试代码五、总结 一、IP核 1.1 IP核简介 IP核(知识产权核),是在集成电路的可…...
经纬度坐标工具
LngLatUtil :用于计算里程数 import cn.hutool.core.util.ArrayUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import lombok.Getter; import lombok.Setter;import java.io.FileInputStream; import java.io.Serializable; import java.t…...
如何使用伪元素::before和::after?
伪元素(::before和::after)是CSS中非常有用的特性,它们允许你在元素的内容之前或之后插入额外的内容,并且不需要在HTML结构中添加额外的标记。这样可以方便地在页面上添加装饰性元素、图标、或者样式效果。以下是使用伪元素的基本方法: 1、创…...
Visual Studio Code中对打开的脚本格式统一
什么是Language Server Protocol (LSP)? Language Server Protocol(语言服务器协议,简称LSP)是微软在2016年提出的一套统一的通讯协议方案。LSP定义了一套编辑器或者IDE与语言服务器(Language Server)之间使用的协议&…...
补充JDK源码-IDEA集成工具
在阅读JDK8源码的时候发现,只有一小部分常用包是存在源码及其注释的,而很多内部包是没有源码,class文件在阅读的时候对阅读者十分不友好。在网上搜集了很多资料都没有解决问题。 解决问题办法:参考文档。本文主要是根据这篇文章记…...
Git Submodule 更新子库失败 fatal: Unable to fetch in submodule path
编辑本地目录 .git/config 文件 在 [submodule “Assets/CommonModule”] 项下 加入 fetch refs/heads/:refs/remotes/origin/...
Springboot切面打印日志
切面打印完整日志,以下代码用于扫描RestController 注解修饰的接口,并打印相关日志 import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; impor…...
ubuntu上回环设备/dev/loop0占用100%清理
查看磁盘占用情况时: df -h/dev/loopn这些设备在Linux下被称为回环设备。 终端输入: sudo apt autoremove --purge snapd再次查看:...
List list=new ArrayList()抛出的ArrayIndexOutOfBoundsException异常
1.应用场景,今天生产日志监控到一下ArrayList 进行add 异常,具体日志如下: eptionHandler.handler(178): TXXYBUSSINESS|执行异常 java.util.concurrent.CompletionException: java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bo…...
桶排序算法
桶排序算法 算法思想概述:桶排序的主要步骤如下: 算法goland实现:图解演示: 算法思想概述: 桶排序(Bucket Sort)是一种非比较性的排序算法,它将待排序的元素分到有限数量的桶&#…...
P8604 [蓝桥杯 2013 国 C] 危险系数
题目背景 抗日战争时期,冀中平原的地道战曾发挥重要作用。 题目描述 地道的多个站点间有通道连接,形成了庞大的网络。但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系。 我们来定义一个危险系数 DF(x,y)&…...
Excel·VBA表格横向、纵向相互转换
如图:对图中区域 A1:M6 横向表格,转换成区域 A1:C20 纵向表格,即 B:M 列转换成每2列一组按行写入,并删除空行。同理,反向操作就是纵向表格转换成横向表格 目录 横向转纵向实现方法1转换结果 实现方法2转换结果 纵向转横…...
Leetcode-每日一题【剑指 Offer 06. 从尾到头打印链表】
题目 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 1: 输入:head [1,3,2]输出:[2,3,1] 限制: 0 < 链表长度 < 10000 解题思路 1.题目要求我们从尾到头反过…...
LeetCode--HOT100题(22)
目录 题目描述:160. 相交链表(简单)题目接口解题思路代码 PS: 题目描述:160. 相交链表(简单) 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表…...
产品体系架构202308版
1.前言 当我们不断向前奔跑时,需要回头压实走过的路。不断扩张的同时把相应的内容沉淀下来,为后续的发展铺垫基石。 不知从何时起,产品的架构就面向了微服务/中台化/前后端分离/低代码化/分布式/智能化/运行可观测化的综合体,让…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
