Learning from Unlabeled 3D Environments forVision-and-Language Navigation

news2024/11/14 10:30:49

这篇论文是关于高级指令的

摘要

在视觉和语言导航 (VLN) 中,实体代理需要按照自然语言指令在真实的 3D 环境中进行导航。现有 VLN 方法的一个主要瓶颈是缺乏足够的训练数据,导致对未见过的环境的泛化效果不理想。虽然 VLN 数据通常是手动收集的,但这种方法成本高昂并且阻碍了可扩展性。在这项工作中,我们通过建议从 HM3D 的 900 个未标记的 3D 建筑物自动创建大规模 VLN 数据集来解决数据稀缺问题 [45]。我们为每个建筑物生成一个导航图,并从 2D 传输对象预测,通过跨视图一致性生成伪 3D 对象标签。然后,我们使用伪对象标签作为提示来微调预训练的语言模型,以减轻指令生成中的跨模式差距。我们生成的 HM3D-AutoVLN 数据集在导航环境和指令方面比现有 VLN 数据集大一个数量级。我们通过实验证明 HM3D-AutoVLN 显着提高了 VLN 模型的泛化能力。在 SPL 指标上,我们的方法在 REVERIE 和 SOON 数据集的未见验证分割上分别比现有技术提高了 7.1% 和 8.1%。

介绍

让机器人执行各种家务是科幻小说中的常见愿景。这样的长期目标需要一个实体代理来理解我们的人类语言,在物理环境中导航并与物体交互。作为实现这一目标的第一步,视觉和语言导航任务(VLN)[3]已经出现并吸引了越来越多的研究关注。早期的 VLN 方法 [3,28] 为代理提供了到达目标位置的分步导航指令,例如“走出卧室。右转,沿着走廊走。在走廊尽头左转。走到沙发前停下来”。虽然这些详细的指令降低了任务的难度,但它们降低了人们在现实生活中指挥机器人时的实用价值。因此,最近的 VLN 方法 [43,57] 专注于高级指令,并要求代理在目标位置找到特定对象,例如,“到客厅把沙发上最靠近灯的白色靠垫拿给我”。智能体需要自行探索 3D 环境以找到“靠垫”。

与分步instruction相比,遵循这种高级目标驱动的说明更具挑战性。由于没有详细的指导,智能体需要了解环境的结构才能进行有效的探索。然而,大多数现有的 VLN 任务,如 REVERIE [43] 或 SOON [57] 都是基于 Matterport3D (MP3D) 数据集 [4] 的 3D 扫描,并且包含少于 60 个建筑物和大约 10K 训练轨迹。有限的训练数据量使得 VLN 模型过度适应可见环境,从而导致在未见环境中导航策略的通用性较差。然而,手动收集更多 VLN 数据成本高昂且不可扩展。为了解决这个数据稀缺问题,之前的工作研究了各种数据增强方法,例如通过说话者模型在所见环境中合成更多指令和轨迹[16]、环境丢失[49]或编辑[30],以及混合所见环境[33]。尽管如此,这些方法仍然基于少量的 3D 环境,无法覆盖广泛的对象和场景。为了解决视觉多样性,VLN-BERT [36] 利用来自网络的图像标题对来提高泛化能力,而 Airbert [18] 表明来自室内环境(BnB 数据集)的图像标题对对 VLN 任务更有利。然而,图像标题对很难模仿 3D 环境中代理的真实导航体验,这使得通过动作预测学习导航策略变得具有挑战性。

在这项工作中,我们提出了一种新的数据生成方法,通过学习大规模未标记的 3D 建筑来提高模型对未见过的环境的泛化能力(见图 1)。我们利用最新的 HM3D 数据集 [45],其中包含 900 座 3D 建筑物。然而,这些数据没有任何标签。为了在各种未见过的环境中生成高质量的指令轨迹对,我们使用大规模预训练的视觉和语言模型。我们首先使用图像分割模型 [10] 来检测环境中图像的 2D 对象,并利用 3D 中的跨视图一致性来提高伪 3D 对象注释的准确性。然后,我们使用伪对象标签作为提示来微调语言模型 GPT-2 [44],以生成该对象的高级导航指令。通过这种方式,我们构建了 HM3D-AutoVLN 数据集,该数据集使用 900 个 3D 建筑物,由 36,562 个可导航节点、172,000 个 3D 对象和 217,703 个用于训练的对象-指令-轨迹三元组组成,比之前的 VLN 数据集大一个数量级。我们使用生成的 HM3D-AutoVLN 数据训练多个最先进的 VLN 模型 [8,9,22,49],并显示出显着的收益。具体来说,我们在 REVERIE 和 SOON 数据集上比最先进的 DUET 模型 [9] 分别提高了 7.1% 和 8.1%。总之,我们的贡献如下:

1、我们引入了一种从未标记的 3D 建筑物构建大规模 VLN 数据集 HM3D-AutoVLN 的自动方法。我们依靠 2D 图像模型来获取伪 3D 对象标签,并依靠预训练的语言模型来生成指令。

2、我们对两个具有挑战性的 VLN 任务 REVERIE 和 SOON 进行了广泛的实验。 HM3D-AutoVLN 数据集上的训练显着提高了多个最先进的 VLN 模型的性能。

3、我们提供有关数据收集和利用未标记环境所固有的挑战的见解。这表明环境的多样性比单独的训练样本数量更重要。

相关工作

vision and language navigation

随着各种支持数据集的出现,VLN 任务最近得到了普及[3,6,23,27,28,39,48,50]。不同的指令定义了 VLN 任务的变化。分步指令[3,6,28]要求智能体严格遵循路径,而目标驱动的高级指令[43,57]主要描述目标地点和物体,并命令智能体检索特定的远程对象。具身的问答任务要求代理导航并回答问题[12,55],而视觉和语言对话[13,38,39,50]任务使用与代理的交互式通信来指导导航。由于固有的多模态性质,VLN 任务的工作提供了有吸引力且富有创意的模型架构,例如跨模态注意机制 [16,34,35,49,52]、对象感知 [20,37,42]、序列建模使用transformer [8,22,40]、贝叶斯状态跟踪 [1] 和基于图的结构来更好地探索 [9,14,51]。这些模型通常以teacher forcing方式进行预训练 [8,19],然后使用student forcing [3,9]、随机采样 [31] 或强化学习 [8,22,49,53] 进行微调。虽然大多数现有的 VLN 工作侧重于具有预定义导航图的离散环境,但连续环境中的 VLN [26,27] 在现实世界中更实用 [2]。离散环境也被证明有利于连续 VLN,例如提供路点监督 [46] 并支持低级和高级操作的分层建模 [7,21]。

Data-centric VLN approaches

VLN 的主要挑战之一仍然是训练数据的稀缺,导致见过环境和未见过环境之间存在巨大差距。数据增强是解决过度拟合的一种有效方法,例如丢弃环境特征[49]、更改图像样式[30]、不同环境中的混合室[33]、从说话者模型生成更多路径指令对[16, 17,49] 和来自 GAN 的新图像 [24]。然而,这些数据增强方法仍然基于有限数量的环境,削弱了对未知环境的泛化能力。与上述相反,VLNBert [36] 和 Airbert [18] 利用丰富的网络图像标题来提高泛化能力。然而,这些数据并不完全类似于真实的导航体验,因此它们只能用于训练兼容性模型来测量路径指令相似性,而不是学习导航策略。在我们的工作中,逼真的 3D 环境用于学习导航策略。

3D environments

3D环境和仿真平台[25,29,41,47]是促进具身智能研究的基础。有一些基于视频游戏引擎的人工环境,例如 iThor [25] 和 VirtualHome [41],它们利用合成场景并允许与对象交互。然而,合成场景的视觉多样性有限,不能完全反映现实世界。因此,我们专注于 VLN 的逼真 3D 环境。 MP3D [4] 数据集是 90 个标记环境的集合,在 R2R [3]、RxR [28]、REVERIE [43] 和 SOON [57] 等现有 VLN 数据集中得到最广泛采用。虽然拥有高质量的重建,但 MP3D 中的房屋数量有限。 Gibson [54] 数据集包含 571 个场景,但它们的 3D 重建质量很差。最近的 HM3D 数据集 [45] 拥有最多数量的 3D 环境,但没有标签。它包含世界各地 1,000 个高质量且多样化的建筑规模重建(900 个公开发布),例如多层住宅、商店、办公室等。在这项工作中,我们采用未标记的 HM3D 数据集来扩展 VLN 数据集。

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

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

相关文章

2024年 前端JavaScript Web APIs 第一天 笔记

1.1 -声明变量const优先 1.2 -DOM树和DOM对象 1.3 -获取DOIM元素 1.4 -DOM修改元素内容以及年会抽奖 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content&quo…

初识面相对象深入理解、构造方法--学习JavaEE的day12

day12 一、初识面相对象深入理解 需求&#xff1a; 创建人类的对象&#xff0c;并操作对象 分析&#xff1a; 人类 - Person 属性&#xff1a;name、sex、age 方法&#xff1a;eat、sleep 场景&#xff1a;创建多个对象&#xff0c;去操作对象 public class Person {//成员变…

9、taocms代码审计

一、XSS 1、DOM型xss 限制 无复现 payload: aa)alert(1)( 触发的参数&#xff1a;name代码 根据路由找到对应的文件&#xff0c;在api.php里接受全局变量action&#xff0c;最终赋值给$m,判断 如果$m不在数组就结束&#xff0c;新建方法复制给$model。检查类的方法是否存…

2024 年广东省职业院校技能大赛(高职组)“云计算应用”赛项样题 2

#需要资源或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; #需要资源或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; #需要资源或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; 某企业根据自身业务需求&#…

【全局异常处理记录】⭐️通过自定义全局处理器有效统一各种异常并记录

目录 前言 方案 示例 测试 总结 前言 朋友们大家好啊&#xff0c;随着项目的进行&#xff0c;接口也是越来越多了&#xff0c;每个接口无论调用成功与否&#xff0c;都要有相应的应对措施&#xff0c;总不能出错的时候返回一堆异常信息给调用者&#xff0c;所以每个接口都…

Python算法100例-3.2 水仙花数

完整源代码项目地址&#xff0c;关注博主私信源代码后可获取 1.问题描述2.问题分析3.算法设计4.确定程序框架5.完整的程序6.问题拓展7.巧用字符串技巧 1&#xff0e;问题描述 输出所有的“水仙花数”。所谓的“水仙花数”是指一个三位数&#xff0c;其各位数字的立方和等于该…

【机器学习】有监督学习算法之:支持向量机

支持向量机 1、引言2、决策树2.1 定义2.2 原理2.3 实现方式2.4 算法公式2.5 代码示例 3、总结 1、引言 小屌丝&#xff1a;鱼哥&#xff0c;泡澡啊。 小鱼&#xff1a;不去 小屌丝&#xff1a;… 此话当真&#xff1f; 小鱼&#xff1a;此话不假 小屌丝&#xff1a;到底去还是…

奔跑吧,前端er!前端五大方向技能罗列,webGL、AI、桌面、游戏

经常看到头条上前端们争论各种框架的优劣&#xff0c;然后相互争吵不休&#xff0c;其实技术也好&#xff0c;框架也好&#xff0c;都是服务于项目需求的&#xff0c;争论的铁子们都站在自己的项目角度来品评工具&#xff0c;肯定是公说公有理婆说婆有理啦。 技术和框架是中性的…

ArrayBlockingQueue 数组阻塞队列 源码阅读

1. 概述 数组阻塞队列 有界的阻塞数组, 容量一旦创建, 无法修改阻塞队列, 队列满的时候, 往队列put数据会被阻塞, 队列空, 取数据也会被阻塞并发安全 2. 数据结构 /** 存储队列元素的数组 */ /** 存储队列元素的数组 */ final Object[] items;/** 队首位置&#xff0c;下一…

【王道操作系统】ch1计算机系统概述-06虚拟机

文章目录 【王道操作系统】ch1计算机系统概述-06虚拟机01传统计算机02虚拟机的基本概念&#xff08;1&#xff09;第一类虚拟机管理程序&#xff08;2&#xff09; 第二类虚拟机管理程序&#xff08;3&#xff09; 两类虚拟机管理程序的对比 【王道操作系统】ch1计算机系统概述…

【Linux系统化学习】线程概念

目录 线程的概念 线程的引出 什么是线程 理解线程比进程更加的轻量化 线程的优点 现成的缺点 线程异常 线程用途 Linux进程VS线程 线程的简单现象 线程的概念 有关操作系统的书籍或者课本都会这样描述线程&#xff1a; 线程是比进程轻量化的一种执行流线程是进程内部…

[SWPUCTF 2021 新生赛]babyrce

先打开环境 分析代码&#xff0c;要给COOKIE赋值admin1 使用hackbar赋值 打开rasalghul.php 分析代码&#xff0c;使用GET传参url&#xff0c;如果url里没有/ /&#xff0c;则赋值给ip&#xff0c;然后通过shell_exec函数得到flag&#xff0c;否则&#xff0c;返回nonono。他…

备战蓝桥杯————递归反转单链表

当要求只反转单链表中的一部分时&#xff0c;递归实现确实具有一定的挑战性&#xff0c;但也是可行的。下面我将介绍一种递归实现的方法来反转单链表中的一部分。 一、反转链表 题目描述 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示…

详解Win 7重置电脑操作步骤

文章目录 介绍Win 7 重置系统的方法&#xff1a;1.按下键盘上的Windows键和R键&#xff0c;打开运行窗口&#xff0c;输入sysprep 点击回车确定。2.之后就会出现如下界面&#xff0c;在这个新打开的窗口中双击 sysprep 程序3.选择【进入系统全新体验&#xff08;00BE) 】&#…

C++ sort排序

sort函数接受两个迭代器作为参数&#xff0c;分别表示要排序的范围的起始和结束位置。 请注意&#xff0c;sort函数默认使用小于运算符&#xff08;<&#xff09;来比较元素的顺序&#xff0c;默认从小到大排。 在这里&#xff0c;使用str.begin()和str.end()来表示整个字符…

【MDVRP多站点物流配送车辆路径规划问题(带容量限制)】基于遗传算法GA求解

课题名称&#xff1a;基于遗传算法求解带容量限制的多站点的物流配送路径问题MDVRP 版本时间&#xff1a;2023-03-12 代码获取方式&#xff1a;QQ&#xff1a;491052175 或者 私聊博主获取 模型描述&#xff1a; 15个城市中&#xff0c;其中北京&#xff0c;长沙和杭州三座…

springboot241基于SpringBoot+Vue的电商应用系统的设计与实现

基于SpringBootVue的电商应用系统的设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本电商应用系统就是在这样的大环境下诞生&#xff0c;其可以…

构建 ESLint 内存泄露检测插件入门:提升代码质量与防范运行时风险

前言 本文目的是介绍如何创建开发一个自定义规则 ESLint 插件。利用其能力,检测一些代码中可能存在的内存泄露并及时进行提示,避免潜在的后期影响。 本文实现其中一部分功能–检测事件监听器的使用是否存在内存泄露为例来演示基本的 ESLint 自定义规则插件开发的过程。用以…

排序算法——快速排序的非递归写法

快速排序的非递归 我们写快速排序的时候&#xff0c;通常用的递归的方法实现快速排序&#xff0c;那么有没有非递归的方法实现快速排序呢&#xff1f;肯定是有的。思想还是一样的&#xff0c;不过非递归是看似是非递归其实还是递归。 思路解释 快速排序的非递归使用的是栈这…

性能优越!|多策略改进的长鼻浣熊优化算法MSCOA(MATLAB)

文章来源于我的个人公众号&#xff1a;KAU的云实验台&#xff0c;主要更新智能优化算法的原理、应用、改进 ​函数测试(部分)&#xff1a; 仅运行MSCOA: 所有元启发式算法的共同点在于&#xff0c;其搜索过程可分为勘探和开发两个阶段。勘探阶段指算法对全局空间的搜索能力&…