当前位置: 首页 > news >正文

模态链:利用视觉-语言模型从多模态人类视频中学习操作程序

25年4月来自谷歌 DeepMind 和斯坦福大学的论文“Chain-of-Modality: Learning Manipulation Programs from Multimodal Human Videos with Vision-Language-Models”。

从人类视频中学习执行操作任务,是一种很有前景的机器人教学方法。然而,许多操作任务需要在执行过程中改变控制参数,例如力度,而单靠视觉数据无法捕捉到这些参数。本研究利用传感设备(例如测量人体肌肉活动的臂环和录制声音的麦克风)来捕捉人体操作过程中的细节,并使机器人能够提取任务规划和控制参数来执行相同的任务。为了实现这一目标,本文引入模态链(CoM),这是一种提示策略,使视觉-语言模型能够推理多模态人类演示数据——视频与肌肉或音频信号相结合。通过逐步整合来自各个模态的信息,CoM 可以完善任务规划并生成详细的控制参数,使机器人能够基于单个多模态人类视频提示执行操作任务。实验表明,与基线相比,CoM 在提取任务规划和控制参数方面准确率提高三倍,并且对现实世界机器人实验中的新任务设置和目标,具有很强的泛化能力。

机器人能否仅通过观看一段人类手部视频演示来学习执行具有挑战性的体力操作任务(例如,扭动打开水瓶或击鼓)?实现此功能的一种方法是从视频中识别人类任务规划,然后将其转换为可执行的机器人技能。虽然视频理解领域的最新进展,在动作识别方面显示出令人鼓舞的结果 [26],但许多操作技能需要精确指定控制参数,而这些参数无法轻易地从纯视觉信息中推断出来,例如,轻轻握住以旋转手中的钥匙,用力按压插头以插入,轻轻敲击鼓以发出柔和的声音。这种约束限制了机器人仅通过观看人类视频来执行各种操作任务的能力。

从视频中理解人类活动。理解视频中的人类活动一直是计算机视觉领域的长期研究重点 [6, 12, 16, 17, 29]。早期的研究主要旨在通过分类来捕捉视频的高级语义 [56, 61]。为了提取更详细的信息,后期的研究开始专注于从视频中推导任务规划 [7, 20, 67]。然而,这些方法往往受限于对特定训练数据集的依赖,因此很难推广到未见过的动作类别。近年来,大型视觉-语言模型的发展在促进视觉-语言模型 (VLM) 从视频中理解人类活动方面取得了令人瞩目的成果 [25]。

机器人与控制的基础模型。近年来,基础模型在机器人技术领域取得了显著进展,涵盖了从高级推理到低级控制的各个领域 [15, 19]。早期研究主要关注语言条件下的机器人推理和规划,其中任务使用自然语言定义 [2, 9, 21, 23, 32, 33, 39, 51, 57, 66]。然而,某些操作任务——尤其是涉及空间模糊性或需要细粒度控制的任务——难以仅用语言来指定。视觉-语言模型 (VLM) 的最新进展引入了更具表现力的任务规范,例如视觉注释 [18, 22, 36, 54]。另一方面,为了将基础模型应用于机器人控制,一些颇具前景的方法已经出现,包括目标条件策略的子目标选择 [11, 46, 50]、轨迹优化的奖励或约束生成 [22, 31, 64],以及基于感知和控制原语的代码生成 [30, 52]。

从人类视频中学习操作。近期大量研究探索利用人类视频数据来教授机器人操作技能 [3, 5, 13, 14, 24, 28, 37, 42, 43, 47–49, 53, 55, 58, 60, 62, 65]。这些工作专注于从人类视频中提取不同的信息,例如物体 affordance [4, 27]、运动轨迹 [55, 59, 68]、任务动态 [34, 41] 和奖励表征 [8, 35, 44, 45]。[24, 55, 68] 等工作训练的操作策略以人类或机器人视频为条件,而不是语言指令。尽管这些方法很有效,但由于它们只从视频(图像序列)中学习,它们无法推断出许多操作任务所需的重要细节,例如需要施加多大的力。

这里的核心挑战是,从人类视频数据中提取任务规划非常困难,因为纯视觉数据缺乏识别这些规划所需的细节。一个关键的观察是,人类任务规划中的许多细节,例如力和速度等控制参数,可以通过附加信号(例如人体肌肉活动和物体交互声音)更好地捕捉。例如,当插入电源插头时,人们会先用较小的力抓住插头,调整其在手中的方向,然后在将其插入插座时牢牢握住。

这项工作利用传感设备,例如配备肌肉传感器的现代臂环和带麦克风的运动相机,来收集包含图像、肌肉活动和物体交互声音的多模态演示视频。它们提供关于人类在操作过程中何时以及如何施加身体力量的附加信息。然而,有效地利用这些信号需要新的从多模态人类演示视频进行推理的方法。视觉-语言模型 (VLM) 能够解决广泛的实际问题,从视觉推理到信号处理 [63],甚至用于控制机器人的代码生成 [30]。长上下文输入的最新进展进一步使 VLM 能够将视频和长序列数字信号作为输入 [10]。这不禁要问:VLM 能否作为通用的推理模型,从多模态演示视频中推断出人类的任务规划?大多数 VLM 应用程序仍然只接受一种模态作为输入。

为了应对这一挑战,本文引入模态链 (CoM),这是一个框架,它促使 VLM 逐个分析每个模态,通过整合来自每个模态的新信息逐步完善答案。如图所示:

请添加图片描述

该系统设计中,其任务是以单个多模态人体演示视频作为输入,并生成机器人可执行代码来执行视频中演示的操作任务。该系统包含三个主要组件:(1) 收集多模态人类视频;(2) 用于理解多模态人类视频的模态链;以及 (3) 生成代码并控制机器人。

多模态人类演示视频

视频通常难以捕捉人体执行操作任务的细微细节,尤其是涉及施力的场景。为了应对这些挑战,考虑将多模态人体视频在每个时间步长上包含 RGB 图像、人体肌肉信号或物体交互声音以及手势(如上图所示)。它们共同构成了对人体任务规划的更全面视图。带有肌肉传感器(EMG)的臂带捕捉的人体肌肉信号,或麦克风捕捉的物体交互声音,可以提供必要的力信息,这些信息可以指示人体在整个任务过程中施加力的时间和大小。此外,为了提供关于人体手部运动的更详细信息,使用基于视觉的方法[38]来估计手势,并将指尖的像素位置作为另一种输入模态。

模态链

接下来,用视觉-语言模型 (VLM) 分析此类多模态人类视频中提供的丰富信息,以提取任务规划描述。VLM 需要处理来自所有模态的信号:以正确的时间顺序识别人类动作,并确定每个动作的控制参数(例如,目标物体的名称、运动方向)。为此,使用 VLM 的一种方法是直接查询模型,将所有模态交错排列在一个序列中(如图 (a) 所示)。然而,最先进的 VLM(例如 Gemini 1.5 Pro [40]、GPT-4o [1])通常难以关联不同模态之间的信息,从而导致诸如忽略某些输入或尝试从错误的模态中提取信息等问题。为了提升 VLM 理解多模态人体视频的性能,本文提出模态链 (CoM,如图 (b) 所示),这是一种提示策略,它要求 VLM 按顺序分析每个模态,提取关键信息并逐步汇总结果以生成最终答案。

请添加图片描述

提示模态链。CoM 提示由三部分组成:(1) 每种模态及其输入数据格式的描述;(2) 可用动作集的描述以及动作参数的说明;以及 (3) 一个视频-到-分析对的示例,介绍如何分析每种模态以生成一系列带有参数的可识别动作。

模态链示例。上图右展示一个使用 CoM 分析多模态人类视频的示例。在此视频中,一个人用左手握住瓶子,用右手拧开瓶盖。CoM 按顺序分析每个输入模态,并根据之前的分析优化答案。在图中,用不同的颜色突出显示每种模态贡献的新信息。在第一阶段,VLM 分析力或听觉信号,并找出人何时施加和释放力。然后,它推断出人施加力的次数。但是,如果没有手和图像信息,就不清楚人到底在做什么。在第二阶段,VLM 结合手部姿势信息。它现在识别出人在施加力时处于抓握和扭转状态。手指位置还表明在握住瓶子时逆时针扭转约 180 度,而在释放时顺时针旋转手指。但是,由于没有图像数据,任务中出现的物体仍然未知。在第三阶段,VLM 整合图像数据。它识别出左手握住瓶子,右手扭动瓶盖。利用这些信息,VLM 生成动作函数,指定每个时间步的详细动作参数。注:示例提示中未出现任何任务或目标。示例提示仅用于演示分析的输出格式和可用技能库。

编写机器人代码

基于上述获得的人类视频分析,最后一步是将动作序列转换为带有低级 API 调用的机器人可执行代码。使用相同的 VLM 执行此代码生成 [30],以创建完成任务的操作程序。代码生成的提示,包括视频分析以及机器人 API 的描述和所需的输出格式,例如:

请添加图片描述

生成高级任务规划的示例。以下是针对上述开瓶任务生成的程序示例:

请添加图片描述

VLM 整合 CoM 的视频分析,并生成详细的开瓶任务规划,其中包括使用右侧夹持器握住瓶盖逆时针旋转,以及不握住瓶盖顺时针旋转。它还生成一个 for 循环脚本,来指定周期性旋转动作。

控制参数生成示例。除了生成任务规划外,在诸如将插头插入电源板等接触密集型任务中,VLM 还可以生成控制参数来指定力的使用:

请添加图片描述

利用多模态人类视频中的力信息,VLM 指定在不同任务阶段施加的力大小,允许使用“移动到”功能通过将插头推向墙壁(force = 20)来重新调整手中插头的方向,并在将插头插入电源板时牢牢握住插头(force = 100)。

实现细节

数据收集。肌肉信号 (EMG) 包含八个通道,采样率为 200Hz。由于摄像头的记录频率为 60Hz,对肌肉信号进行下采样以匹配摄像头的采样率,并使用八个通道中的最大值作为每个时间步的力信号。与音频信号类似,计算每个时间步的声音响度作为输入音频值。对于手势估计,用 HaMeR [38] 来定位指尖的像素位置。

机器人执行。机器人 API 调用由预定义的控制函数组成,这些函数将生成的程序“扎根”于现实世界的机器人系统中。这些 API 受益于感知模型的最新进展。例如,在实验中,所有目标定位都是通过使用 RGB-D 图像和目标物体的名称(在生成的程序中指定)查询 Gemini 1.5 Pro 来执行的,这会直接在 RGB 图像上围绕目标物体生成一个 2D 边框。然后,利用深度信息和相机参数创建检测边框内实体的三维点云,并使用平均三维位置来表示物体的位置。这些开放词汇 API 简化生成的程序与机器人感知系统之间的连接,直接增强基于代码机器人策略的能力。

实验设置

基线。将基线分为两类:具有不同输入模态的基线和具有不同 VLM 推理程序的基线。对于具有不同输入模态的方法,基线包括:(1) 仅图像 - 仅使用视频图像输入;(2) 无图像 - 使用力和手势输入,不使用图像输入;(3) 无力 - 不包括力输入;(4) 无手势 - 不包括手势输入;以及 (5) 全部 - 使用所有三种输入模态:力、手势和图像。对于具有不同 VLM 推理程序的方法,基线包括:(1)Merg - 合并所有模态输入并直接生成最终答案;(2)Merg-Sep - 合并所有输入但为每种模态生成单独的答案;(3)Sep-Merg - 分离每种模态输入,然后直接生成一个最终答案;(4)Sep-Sep - 分离每种模态输入并为每个模态生成单独的答案,然后生成最终答案;(5)Ours - 本文按顺序处理每种模态,在分析前一种模态的基础上分析每种模态,直到得到最终答案。

任务。设计两类任务:多模态视频分析和使用生成程序进行真实世界机器人评估。在多模态视频分析中,在四个任务上测试所有方法:按压立方块、插入插头、打鼓和开瓶子。这些任务具有长任务范围、力敏感性和双手操作的特点。每个任务包含 10 个包含不同目标和摄像机视点的测试视频。对于每个基线,对每个视频查询 VLM 三次,并报告生成在视频中观察的正确人类任务规划平均成功率,以及相似度得分,该得分通过查找输出和真值之间的最长公共字符串计算得出。对于所有四个任务,使用两个高级 VLM 模型进行测试:Gemini 1.5 Pro [40] 和 GPT-4o [1]。在现实世界的机器人评估中,测试四个任务(如图所示):开瓶子、插插头、擦木板和打鼓。每种方法都经过 20 次试验,并报告平均成功率。

请添加图片描述

为了测试泛化能力,如上图 © 所示,使用 7 种类型的瓶子(其中 6 种未见过)测试开瓶子;在插插头任务中,还随机放置插头、电源板和盒子。在擦木板中,在木板上的不同位置绘制不同形状的标记。在打鼓任务中,测试不同的鼓点。为了测试方法的跨实体部署,在两个机器人平台上测试开瓶任务:双手操控的 ViperX 和双手操控的 KUKA。

提示。对于视频分析任务,使用的提示包括输入数据格式的说明和一个示例视频。输入格式解释手势数据,该数据由拇指和中指尖的二维像素位置组成。肌肉或音频信号被标准化为单个浮点值。示例视频涉及人类以随机方式与任务无关的物体进行交互。例如,“按压立方体”和“开瓶”任务都使用相同的示例视频,其中人类正在按压并旋转桌子上的苹果和罐头。该视频仅演示原始技能的关键特征,不包括测试目标或任务计划。提供示例视频的预期输出,以帮助 VLM 生成相同格式的响应,从而方便对结果进行基准测试。在每个评估任务中,所有基准方法都使用相同的示例视频。提示后,提供不带任务描述的测试视频,并直接让 VLM 生成对输入多模态视频的分析。对于真实世界机器人评估,提示包含这里 CoM 流水线先前生成的视频分析,以及 Python 格式的机器人 API 调用定义。然后,要求 VLM 生成主函数,以根据视频分析重现人类任务规划。VLM 生成程序后,使用 exec() 在真实世界机器人上执行生成的代码。

http://www.xdnf.cn/news/154351.html

相关文章:

  • 有关图的类型的题目(1)
  • Linux下终端命令行安装常见字体示例
  • 基于亚马逊云科技构建音频转文本无服务器应用程序
  • 使用matplotlib绘制Raincloud图/云雨图/柱状图/小提琴图
  • 《代码之美:静态分析工具与 CI 集成详解》
  • 【虚幻C++笔记】碰撞检测
  • 探秘卷积神经网络:深度学习的图像识别利器
  • 【Linux网络】构建HTTP响应与请求处理系统 - HttpResponse从理解到实现
  • 常见的机器视觉通用软件
  • JDBC数据库操作中如何保证最后关闭了所占用的资源——try用法的细节控制
  • k8s中资源的介绍及标准资源namespaces实践
  • 如何在 Conda 环境中降级 Python 版本:详细指南
  • H.264/AVC标准主流开源编解码器编译说明
  • 2025第十六届蓝桥杯大赛(软件赛)网络安全赛 Writeup
  • MyBatis缓存配置的完整示例,包含一级缓存、二级缓存、自定义缓存策略等核心场景,并附详细注释和总结表格
  • Prometheus、Zabbix和Nagios针对100个节点的部署设计架构图
  • PyTabKit:比sklearn更强大的表格数据机器学习框架
  • 性能提升手段--池化技术
  • 机器学习之一:机械式学习
  • 【学习笔记】检索增强生成(RAG)技术
  • flutter 引擎初始化
  • React Router v7 从入门到精通指南
  • Android学习总结之ANR问题
  • 学习笔记:Qlib 量化投资平台框架 — GETTING STARTED
  • 【SpringBoot】WebConfig 跨域配置详细说明
  • 聊聊Spring AI Alibaba的YuQueDocumentReader
  • [Lc day] 滑动窗口 | hash | 前缀和 | 维护区间最值子数组
  • JSP实现用户登录注册系统(三天内自动登录)
  • ASAM MDF 文件格式简介:测量数据的标准化存储
  • 【漫话机器学习系列】225.张量(Tensors)