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 数据集。
相关文章:

Learning from Unlabeled 3D Environments forVision-and-Language Navigation
这篇论文是关于高级指令的 摘要 在视觉和语言导航 (VLN) 中,实体代理需要按照自然语言指令在真实的 3D 环境中进行导航。现有 VLN 方法的一个主要瓶颈是缺乏足够的训练数据,导致对未见过的环境的泛化效果不理想。虽然 VLN 数据通常是手动收集的&#x…...

【算法分析与设计】组合
📝个人主页:五敷有你 🔥系列专栏:算法分析与设计 ⛺️稳中求进,晒太阳 题目 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 示例 1&…...

数仓模型设计方法论
在当今大数据时代,数据已经成为企业最重要的资产之一。而数据仓库作为企业数据管理和分析的核心基础设施,其设计方法论对于企业的数据治理和决策分析至关重要。本文将探索数仓模型设计的方法论,帮助读者更好地理解和应用数仓模型设计。 一、…...

MySQL 面试题
MySQL 基础 数据库的约束与范式? 七大约束: 检查约束:以数据类型以及数据的长度进行约束,在一个表中, 所插入的数据,必须和数据类型匹配,并且范围不能超过指定的长度。非空约束 not null&…...

计算机专业必看的十部电影
计算机专业必看的十部电影 1. 人工智能2. 黑客帝国3. 盗梦空间4. 社交网络5. Her6. 模仿游戏7. 斯诺登8. 头号玩家9. 暗网10. 网络迷踪 计算机专业必看的十部电影,就像一场精彩盛宴! 《黑客帝国》让你穿越虚拟世界,感受高科技的魅力《模仿游戏…...

数据库之间数据迁移工具datax
简介 DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databe…...
uniapp:根据环境(开发、测试、生产)选择服务器接口或者业务
一、根据环境(开发、测试、生产)选择服务器接口或者业务 打开main.js 页面,使用以下代码 const accountInfo wx.getAccountInfoSync(); const envWx accountInfo.miniProgram.envVersion; if (envWx develop) {console.log(开发环境&…...

Leetcode—63. 不同路径 II【中等】
2024每日刷题(115) Leetcode—63. 不同路径 II 动态规划算法思想 实现代码 class Solution { public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {int m obstacleGrid.size();int n obstacleGrid[0].size();…...

Redis 之三:Redis 的发布订阅(pub/sub)
概念介绍 Redis 发布订阅 (pub/sub) 是一种消息通信模式,它允许客户端之间进行异步的消息传递 Redis 客户端可以订阅任意数量的频道。 模型中的角色 在该模型中,有三种角色: 发布者(Publisher):负责发送信…...
ngx_waf入门教程:保护你的Nginx服务器
ngx_waf入门教程:保护你的Nginx服务器 在今天的网络环境中,安全性是每个网站和应用程序都必须考虑的关键因素。Nginx作为一款流行的开源Web服务器和反向代理服务器,广泛应用于各种业务场景。为了增强Nginx的安全性,我们可以使用n…...

视觉Transformers中的位置嵌入 - 研究与应用指南
视觉 Transformer 中位置嵌入背后的数学和代码简介。 自从 2017 年推出《Attention is All You Need》以来,Transformer 已成为自然语言处理 (NLP) 领域最先进的技术。 2021 年,An Image is Worth 16x16 Words 成功地将 Transformer 应用于计算机视觉任务…...

真香定律!我用这种模式重构了第三方登录
分享是最有效的学习方式。 博客:https://blog.ktdaddy.com/ 老猫的设计模式专栏已经偷偷发车了。不甘愿做crud boy?看了好几遍的设计模式还记不住?那就不要刻意记了,跟上老猫的步伐,在一个个有趣的职场故事中领悟设计模…...

Linux入门到入土
Linxu Linux 简介 Linux 内核最初只是由芬兰人林纳斯托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。 Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX(可移植操作系统接口)…...

基础真空技术外国文献Fundamentals of Vacuum Technology
基础真空技术外国文献Fundamentals of Vacuum Technology...
LeetCode每日一题【c++版】- 用队列实现栈与用栈实现队列
用队列实现栈 题目描述 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。int pop() 移除…...

深入理解快速排序算法:从原理到实现
目录 1. 引言 2. 快速排序算法原理 3. 快速排序的时间复杂度分析 4. 快速排序的应用场景 5. 快速排序的优缺点分析 5.1 优点: 5.2 缺点: 6. Java、JavaScript 和 Python 实现快速排序算法 6.1 Java 实现: 6.2 JavaScript 实现&#…...

设计模式----装饰器模式
在软件开发过程中,有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下,可以动态地扩展其功能。所有这些都可以釆用装饰器模式来实现。 装饰器模式 允许向一个现有的对象添加新的功能,同时又不改变他的…...

Golang pprof 分析程序的使用内存和执行时间
一、分析程序执行的内存情况 package mainimport ("os""runtime/pprof" )func main() {// ... 你的程序逻辑 ...// 将 HeapProfile 写入文件f, err : os.Create("heap.prof")if err ! nil {panic(err)}defer f.Close()pprof.WriteHeapProfile(f…...

C/C++平方和问题(蓝桥杯)
题目描述: 小明对数位中含有2、0、1、9 的数字很感兴趣,在1 到40 中这样的数包 括1、2、9、10 至32、39 和40,共28 个,他们的和是574,平方和是14362。 注意,平方和是指将每个数分别平方后求和。 请问&#…...

(libusb) usb口自动刷新
文章目录 libusb自动刷新程序Code目录结构Code项目文件usb包code包 效果描述重置reset热拔插使用 END libusb 在操作USB相关内容时,有一个比较著名的库就是libusb。 官方网址:libusb 下载: 下载源码官方编好的库github:Release…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...