ECCV-2024 | 指令不够用、大模型来生成!BEVInstructor:基于BEV感知和大模型的视觉语言导航指令生成

  • 作者:Sheng Fan, Rui Liu, Wenguan Wang, and Yi Yang

  • 单位:浙江大学

  • 原文链接:Navigation Instruction Generation with BEV Perception and Large Language Models (https://link.springer.com/chapter/10.1007/978-3-031-72670-5_21)

  • 代码链接:https://github.com/FanScy/BEVInstructor

主要贡献

  • 论文提出BEVInstructor,通过将鸟瞰图(BEV)特征与多模态大模型(MLLMs)结合,显著提高了导航指令生成的性能。

  • BEV编码器将多视角图像特征转换为BEV网格特征,保留三维几何和对象语义,提供更全面的场景理解。

  • 通过参数高效的提示调优和实例引导的迭代精调策略,BEVInstructor逐步优化指令,生成更准确和详细的导航指令。

  • 实验表明,该方法在R2R、REVERIE和UrbanWalk数据集上均优于现有方法,验证了其在复杂环境中生成高质量导航指令的有效性。

研究背景

研究问题

论文主要解决的问题是如何生成导航指令,使得具身智能体能够描述导航路线。现有的研究直接将2D透视观测序列映射到路线描述,但这种方法忽略了3D环境的几何信息和对象语义。

研究难点

  • 如何有效融合3D几何信息和对象语义以生成准确的导航指令;

  • 如何在零样本情况下利用多模态大模型(MLLMs)生成高质量的导航指令。

相关工作

  • 早期的解决方案依赖于手工制作的规则或模板,缺乏灵活性。

  • 后续研究采用神经网络进行端到端学习,如LSTM和Transformer。

  • 最近的多模态大模型展示了强大的视觉-语言理解和生成能力,但在零样本情况下仍无法完全满足导航指令生成的需求。

研究方法

BEVINSTRUCTOR通过引入BEV特征并结合2D视角特征来编码3D环境的语义和几何信息。视觉嵌入被用作视觉提示,并通过透视-BEV提示调整来实现跨模态对齐。此外,提出了实例引导的迭代细化策略,以逐步提高生成指令的质量。

Perspective-BEV编码器

论文构建了BEV编码器,通过3D检测的监督,将透视特征转换为3D信息。

该编码器使用deformable注意力层来采样图像特征,并通过深度一致性权重来区分不同深度的参考点。

Perspective-BEV融合模块

这是一种参数高效的更新策略,它将3D几何信息融入提示中,以利用MLLMs的跨模态能力。

通过在视觉嵌入序列中插入可学习的嵌入作为透视Perspective-BEV提示来实现。

Perspective-BEV提示调优

为了参数高效更新,提出了Perspective-BEV提示调优方法。

该方法在MLLMs的最后几层插入可学习的嵌入作为提示,并通过自注意力和线性层来调节深度特征。

实例引导的迭代精调

采用了实例引导的迭代精调策略,逐步改进生成的指令。

初始阶段,BEVInstructor输出一系列候选实例词作为初始地标token,然后在模型中结合这些粗粒度地标来细化指令。

这一过程通过多轮迭代实现,以提高指令的质量和相关性。

实验设计

数据集

实验在三个数据集上进行:R2R、REVERIE和UrbanWalk。R2R和REVERIE用于室内场景,UrbanWalk用于室外场景。

评估指标

使用五个标准指标进行评估:BLEU、CIDEr、METEOR、ROUGE和SPICE。其中,SPICE被作为主要指标。

实现细节

BEVInstructor使用PyTorch实现,所有模型在单台机器上使用2个NVIDIA A40 GPU训练。多模态大模型使用LLaMA-7B初始化,具有32层。

结果与分析

定量结果

  • 在R2R、REVERIE和UrbanWalk数据集上,BEVINSTRUCTOR在所有指标上都取得了最佳性能。

  • 在R2R val seen和val unseen上,BEVINSTRUCTOR分别在SPICE上提高了1.9%和1.4%,在CIDEr上提高了4.6%和3.0%。

  • 在REVERIE val seen和val unseen上,BEVINSTRUCTOR在SPICE上分别提高了7.0%和4.2%,在CIDEr上分别提高了12.6%和8.3%。

  • 在UrbanWalk测试集上,BEVINSTRUCTOR在SPICE上提高了11.3%,在Bleu-4上提高了12.5%,在Meteor上提高了7.3%,在Rouge上提高了13.1%。

定性结果

  • 在REVERIE数据集上,BEVINSTRUCTOR在识别与动作视图相关的场景和对象方面表现出增强的能力,并在细化阶段将这些元素明确地纳入指令中。

诊断实验

  • 通过一系列消融研究评估了BEVINSTRUCTOR的关键模块的有效性,证明了各个组件的互补性和整体设计的有效性。

指令质量分析

  • 通过与HAMT和DUET模型的比较,验证了BEVINSTRUCTOR生成的指令在实际视觉-语言导航任务中的路径引导能力和数据增强效果。

总结

BEVInstructor通过结合BEV特征和多模态大模型,显著提高了3D感知和语言能力。

该方法在多个数据集上均表现出色,验证了其生成高质量导航指令的有效性。

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

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

相关文章

Kubernetes Secret的创建与使用

前提条件 拥有Kubernetes集群环境,可参考:Kubernetes集群搭建理解Kubernetes部署知识,可参考:使用Kubernetes部署第一个应用 、Deloyment控制器 Secret简介 Kubernetes Secret 是一种用于存储敏感信息(如密码、令牌、…

电脑出现 0x0000007f 蓝屏问题怎么办,参考以下方法尝试解决

电脑蓝屏是让许多用户头疼的问题,其中出现 “0x0000007f” 错误代码更是较为常见且棘手。了解其背后成因并掌握修复方法,能帮我们快速恢复电脑正常运行。 一、可能的硬件原因 内存问题 内存条长时间使用可能出现物理损坏,如金手指氧化、芯片…

Ubuntu下ESP32-IDF开发环境搭建

Ubuntu下ESP32-IDF开发环境搭建 文章目录 Ubuntu下ESP32-IDF开发环境搭建一、前言二、软件安装三、开发环境搭建3.1 ESP-IDF安装:3.2 安装编译工具: 四、编译并烧录代码五、ESP32代码编辑工具 一、前言 ​ 开发ESP32,我们首先就要安装开发环…

Linux复习4——shell与文本处理

认识vim编辑器 #基本语法格式: vim 文件名 •如果文件存在,进入编辑状态对其进行编辑 •如果文件不存在,创建文件并进入编辑状态 例: [rootlocalhosttest]# vim practice.txt #Vim 编辑器三种模式: 命令模式&a…

5个实用的设计相关的AI网站

在这个日新月异的数字时代,我们不断面临着新的挑战和机遇。随着人工智能(AI)技术的飞速发展,越来越多的AI工具开始融入到设计相关的工作流程中,极大地提升了工作效率和创作能力。今天,我非常兴奋地向大家介…

云手机群控能用来做什么?

随着云手机的发展,云手机群控技术逐渐从小众的游戏多开工具,发展为涵盖多个领域的智能操作平台。不论是手游搬砖、短视频运营,还是账号养成等场景,云手机群控都展现出了强大的应用潜力。本文将为大家详细解析云手机群控的应用场景…

数据结构(哈希表(中)纯概念版)

前言 哈希表(Hash Table)是计算机科学中的一个基础而重要的数据结构,它广泛评估各种算法和系统中,尤其是在需要快速查找、插入和删除操作的场景中。由于其O( 1)的平均时间复杂度,存储表在性能要求较高的应用中表现得非…

Python使用requests_html库爬取掌阅书籍(附完整源码及使用说明)

教程概述 本教程先是幽络源初步教学分析掌阅书籍的网络结构,最后提供完整的爬取源码与使用说明,并展示结果,切记勿将本教程内容肆意非法使用。 原文链接:Python使用requests_html库爬取掌阅书籍(附完整源码及使用说明…

F#语言的软件开发工具

F#语言的软件开发工具 引言 F#是一种函数式编程语言,它源自于ML,并与.NET平台紧密结合。F#的设计目标是提高生产力,尤其是在处理复杂问题时,它的表达能力和简洁语法使得开发者能够更加高效地编写代码。随着F#的流行,…

水库大坝三维模型开发bim篇

效果图 开发过程 使用了bimface 插件上传做好rvt模型到bimface工程引入bimface相关的插件代码加载模型自定义目录树定位构件闪烁构件展示构件信息 代码 技术交流加V:bloxed appKey 和appSecret 换成自己的就行 <template><div class"box-bim w100" ref&…

Java预加载

预加载&#xff08;Preload&#xff09;是一种在程序运行之前预先加载所需资源或对象的优化技术&#xff0c;旨在提高程序的性能和响应速度。以下是对预加载的详细解释&#xff1a; 一、预加载的定义 预加载是指在程序实际运行之前&#xff0c;将预计会频繁使用的资源&#x…

CSharp: Oracle Stored Procedure query table

存储过程查询postgreSQL,Oracle 和sql server,Mysql 有区别。程序调用也是有区别。 oracle sql script: CREATE OR REPLACE PROCEDURE procSelectSchool(paramSchoolId IN char,p_cursor OUT SYS_REFCURSOR ) AS BEGINOPEN p_cursor FORSELECT *FROM SchoolWHERE SchoolId p…

C语言基础——指针(4)

一&#xff0e; 字符指针变量 字符指针变量的使用和整型指针变量的使用方法相似&#xff0c;以下是其基本使用方法的例子&#xff1a; &#xff08;1&#xff09;字符指针变量还有一种使用方法&#xff1a; const char* p "abcd" 需…

学习笔记(C#基础书籍)-- C#基础篇

&#xff08;12.24&#xff09; C#介绍&#xff1a;《第一章》 特点&#xff1a;语法简洁&#xff0c;面向对象&#xff0c;支持绝大部分的web标准&#xff0c;强大的安全机制&#xff08;垃圾回收器&#xff09;&#xff0c;兼容性好&#xff08;遵循.NET的公共语言规范【CL…

在 CentOS 上安装 MySQL 8

在 CentOS 上安装 MySQL 8 您可以按照以下步骤操作&#xff1a; 1. 更新系统 首先&#xff0c;更新系统软件包以确保安装的最新版本。 sudo yum update -y 2. 安装 MySQL 8 安装 MySQL 存储库 wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.r…

Net9解决Spire.Pdf替换文字后,文件格式乱掉解决方法

官方文档 https://www.e-iceblue.com/Tutorials/Spire.PDF/Program-Guide/Text/Find-and-replace-text-on-PDF-document-in-C.html C# 在 PDF 中查找替换文本 原文件如下图&#xff0c;替换第一行的新编码&#xff0c;把41230441044替换为41230441000 替换代码如下&#xff…

Timsort算法

Timsort算法是一种混合、稳定且高效的排序算法&#xff0c;源自归并排序和插入排序。它通过将已识别的子序列&#xff08;称为“run”&#xff09;与现有run合并直到满足某些条件来完成排序。以下是对Timsort算法的详细解释及举例说明&#xff1a; Timsort算法概述 混合性&…

Squeeze-and-Excitation (SE) 模块

Squeeze-and-Excitation (SE) 模块是一种神经网络架构中的注意力机制&#xff0c;旨在通过学习每个通道的重要性来增强网络的表示能力。这种机制最早由 Jie Hu 等人在 2017 年的论文《Squeeze-and-Excitation Networks》中提出。SE 模块通过全局信息的“挤压”&#xff08;sque…

shell 编程(五)

shell 环境的配置文件 df 命令 df 命令时unix 和类unix系统中用于显示文件系统磁盘空间使用情况的命令&#xff0c;df 是disk free的缩写&#xff0c;它可以显示磁盘上每个挂载点的使用情况&#xff0c;包括总容量&#xff0c;已用空间&#xff0c;可用空间以及挂载点信息。 基…

Merry Christmas HTML

简单分享 Merry Christmas HTML 设计的核心代码 HTML: <body class"card"> <div class"dialog"><div class"dialog-in"><div class"dialog-msg"><div class"heading">Youve got a post card!…