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

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

摘要

在视觉和语言导航 (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.mfbz.cn/a/426670.html

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

相关文章

动态SQL的处理

学习视频:3001 动态SQL中的元素_哔哩哔哩_bilibili 目录 1.1为什么学 1.2动态SQL中的元素 条件查询操作 if 元素 choose、when、otherwise元素 where、trim元素 更新操作 set元素使用场景 复杂查询操作 foreach 元素中的属性 ​编辑 迭代数组 迭代List 迭代Map 1…

RocketMQ - 深入研究一下Broker是如何持久化存储消息的

1. CommitLog消息顺序写入机制 首先思考一下,当生产者的消息发送到一个Broker上的时候,他接收到了一条消息,接着他会对这个消息做什么事情? 首先第一步,他会把整个消息直接写入磁盘上的一个日志文件,叫做CommitLog,直接顺序写入这个文件,如下图: 这个CommitLog是很…

Python用类实现抽象和封装

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 路在脚下,勇往直前&#x…

mac报错:zsh: command not found: npm

1、问题概述? 在mac系统中使用npm命令的时候,mac os报错提示: zsh: command not found: npm 一般出现发这种情况的原因时没有安装npm,而npm这命令时集成在nodejs中的,所以安装nodejs就可以了。 2、解决办法 本质就是需要安装…

Day13:信息打点-JS架构框架识别泄漏提取API接口枚举FUZZ爬虫插件项目

目录 JS前端架构-识别&分析 JS前端架构-开发框架分析 前端架构-半自动Burp分析 前端架构-自动化项目分析 思维导图 章节知识点 Web:语言/CMS/中间件/数据库/系统/WAF等 系统:操作系统/端口服务/网络环境/防火墙等 应用:APP对象/API接…

聊一聊Python量化交易

在金融领域,量化交易已经成为一种越来越受欢迎的交易方式。它通过使用数学模型来分析市场,自动化执行交易决策,以此来获取超额回报。近年来,Python因其简洁易学、功能强大而成为量化交易领域的首选编程语言。本文将详细介绍Python…

Vue 前端开发 v-for和v-if两个指令不能混合使用

原由: 在进行项目开发的时候因为在一个标签上同时使用了v-for和v-if两个指令导致的报错。 提示错误:The undefined variable inside v-for directive should be replaced with a computed property that returns filtered array instead. You should no…

NOC2023软件创意编程(学而思赛道)python初中组初赛真题

软件创意编程 一、参赛范围 1.参赛组别:小学低年级组(1-3 年级)、小学高年级组(4-6 年级)、初中组。 2.参赛人数:1 人。 3.指导教师:1 人(可空缺)。 4.每人限参加 1 个赛项。 组别确定:以地方教育行政主管部门(教委、教育厅、教育局) 认定的选手所属学段为准。 二、…

【新书推荐】11.1 子程序设计

第十一章 子程序及参数传递 本章先讲述子程序设计的方法,然后介绍在子程序调用中参数的四种传递方法。 11.1 子程序设计 在前面的示例和练习中,会发现程序中会有一些反复使用到的代码片段。我们将程序中反复出现的程序片段设计成子程序,这样…

蓝桥杯备赛 day1 | 1. 门牌制作, 2. 迷宫, 3. 乘积尾零

最近正好在刷算法题&#xff0c;报了一个蓝桥杯体验一下&#xff0c;但是钱都交了&#xff0c;高低混个奖好吧&#xff0c;今天做的都是一些填空推理题&#xff0c;相当于用程序写下正解&#xff0c;代码是在Dev C上面写的 #include<iostream> #include<bits/stdc.h&g…

ABAP - SALV教程13 使用自定义的状态栏

有时候SALV的默认标准按钮无法满足用户需求,需要在状态栏中添加自定义的按钮解决方法1&#xff1a;在默认的标准按钮上调用方法增加按钮&#xff1a;http://t.csdnimg.cn/rB7my解决方法2&#xff1a;使用自定义的状态栏&#xff0c;报错问题的解决&#xff1a;http://t.csdnimg…

Spring Boot整合Mybatis配置多数据源

Spring Boot 专栏&#xff1a;https://blog.csdn.net/dkbnull/category_9278145.html Spring Cloud 专栏&#xff1a;https://blog.csdn.net/dkbnull/category_9287932.html GitHub&#xff1a;https://github.com/dkbnull/SpringBootDemo Gitee&#xff1a;https://gitee.com/…

达梦运维工具-DEM搭建

运维监控工具-DEM 前言 根据达梦官网文档整理 一、工具介绍 DM企业管理器&#xff08;DM Enterprise Manager&#xff0c;简称为DEM&#xff09;提供一个通过Web 界面来监控、管理并维护DM数据库的集中式管理平台。数据库管理员可通过任意Web应用登录DEM&#xff0c;从而对…

rtt的io设备框架面向对象学习-io设备管理层

目录 1.设备基类2.rtt基类2.1 rtt基类定义2.2 对象容器定义2.3 rtt基类构造函数 3.io设备管理接口4.总结 这层我的理解就是rtt基类和设备基类所在&#xff0c;所以抽离出来好点&#xff0c;不然每个设备类都要重复它。 1.设备基类 /include/rtdef.h中定义了设备基类struct rt_…

力扣日记3.3-【回溯算法篇】332. 重新安排行程

力扣日记&#xff1a;【回溯算法篇】332. 重新安排行程 日期&#xff1a;2023.3.3 参考&#xff1a;代码随想录、力扣 ps&#xff1a;因为是困难题&#xff0c;望而却步了一星期。。。T^T 332. 重新安排行程 题目描述 难度&#xff1a;困难 给你一份航线列表 tickets &#xf…

动态库制作

win下扩展名为.dll(dynamic linking library) linux下前缀为dll 扩展名为.so(shared object) linux 下使用动态库步骤 1&#xff0c;制作动态库&#xff0c; libmath.so 2&#xff0c;在主程序中包含动态库&#xff08;就是添加头文件的方法&#xff09; 3&#xff0c;编译…

支持向量机 SVM | 线性可分:公式推导

目录 一. SVM的优越性二. SVM算法推导小节概念 在开始讲述SVM算法之前&#xff0c;我们先来看一段定义&#xff1a; 支持向量机(Support VecorMachine, SVM)本身是一个二元分类算法&#xff0c;支持线性分类和非线性分类的分类应用&#xff0c;同时通过OvR或者OvO的方式可以应用…

ElasticSearch开篇

1.ElasticSearch简介 1.1 ElasticSearch&#xff08;简称ES&#xff09; Elasticsearch是用Java开发并且是当前最流行的开源的企业级搜索引擎。能够达到实时搜索&#xff0c;稳定&#xff0c;可靠&#xff0c;快速&#xff0c;安装使用方便。 1.2 ElasticSearch与Lucene的关…

《数字图像处理(MATLAB版)》相关算法代码及其分析(1)

目录 1 自适应中值滤波算法 1.1 函数定义 1.2 输入参数检查 1.3 初始化 1.4 自适应中值滤波过程 1.5 处理剩余未处理的像素 1.6 总结 2 计算输入数组的平均值 2.1 函数定义 2.2 注释 2.3 输入验证 2.4 计算平均值 2.5 总结 3 基于高斯模型的贝叶斯分类器 3.1 函…

Python3 字符串

字符串是 Python 中最常用的数据类型。我们可以使用引号( 或 " )来创建字符串。 创建字符串很简单&#xff0c;只要为变量分配一个值即可。例如&#xff1a; var1 Hello World! var2 "Runoob" Python 访问字符串中的值 Python 不支持单字符类型&#xff…
最新文章