出发点&动机
从人类视频中学习执行操作任务是一种很有前景的机器人教学方法。然而,许多操作任务需要在任务执行过程中改变控制参数(如力),而仅靠视觉数据无法捕捉这些信息。这里利用臂带(测量人体肌肉活动)和麦克风(记录声音)等传感设备,捕捉人类操作过程中的细节,使机器人能够提取任务计划和控制参数以执行相同任务。为此,引入了模态链(CoM),这是一种提示策略,使视觉语言模型(VLM)能够对多模态人类演示数据(视频结合肌肉或音频信号)进行推理。通过逐步整合来自每个模态的信息,CoM优化任务计划并生成详细的控制参数,使机器人能够基于单个多模态人类视频提示执行操作任务。我们的实验表明,与基线方法相比,CoM在提取任务计划和控制参数的准确性上提高了三倍,并且在真实机器人实验中对新任务设置和物体具有很强的泛化能力。
背景介绍
机器人能否仅通过观看一个人类手部视频演示,就能学会执行物理挑战性操作任务(如拧开矿泉水瓶或打鼓)?实现这一能力的一种方法是从视频中识别人类任务计划,然后将其转化为可执行的机器人技能。尽管视频理解领域的最新进展在动作识别方面取得了有希望的结果,但许多操作技能需要精确指定控制参数,而这些参数仅从纯视觉信息中难以推断,例如:轻轻握住钥匙进行旋转、用力插入插头、轻敲鼓面以产生柔和的声音。这一限制制约了机器人仅通过观看人类视频执行多样化操作任务的能力。
这里的核心挑战是,仅从人类视频数据中提取任务计划非常困难,因为纯视觉数据缺乏识别这些计划所需的细节。一个关键观察是,人类任务计划中的许多细节(如力和速度等控制参数)可以通过肌肉活动和物体交互声音等附加信号更好地捕捉。例如,插入电源插头时,人类会先以较小的力握住插头调整方向,然后用力将其插入插座。在这项工作中,我们利用配备肌肉传感器的现代臂带和带麦克风的运动相机等传感设备,收集包含图像、肌肉活动和物体交互声音的多模态演示视频。这些设备提供了人类在操作过程中何时以及如何施加物理力的额外信息。然而,有效利用这些信号需要新的方法来对多模态人类演示视频进行推理。
视觉语言模型(VLM)能够解决从视觉推理到信号处理,甚至生成控制机器人的代码等广泛的实际问题。长上下文输入的最新进展进一步使VLM能够将视频和长序列数值信号作为输入。这让我们思考:VLM能否作为通用推理模型,从多模态演示视频中推断人类任务计划?大多数VLM应用仍只接受单一模态作为输入。为应对这一挑战,引入了模态链(CoM)框架,该框架提示VLM依次分析每个模态,通过整合来自每个模态的新信息逐步优化答案。
CoM使VLM能够通过分析单个多模态人类视频提取任务计划和控制参数。借助CoM,附加模态的加入帮助VLM更好地分割子任务。例如,当人类打开瓶子时,力数据中的三个峰值信号表明三次扭转动作。CoM使VLM能够利用这些信息,首先将整个任务分割为粗略的任务框架,然后通过整合其他模态逐步填充更多细节。此外,从附加模态获取的力信息使VLM能够为诸如“抓握”和“击打”等技能生成更准确的控制参数,不同级别的力。根据经验,发现CoM从人类视频中提取精确任务计划和控制参数的准确率达到60%。仅依赖纯视觉数据的方法准确率为零,而直接将所有模态一次性输入模型的简单方法平均准确率为17%。
如何将这些任务计划转化为机器人动作?先前的工作表明,基础模型可以根据语言指令生成机器人可执行的API调用。我们的场景不同之处在于,要求基础模型根据多模态演示视频生成API调用。这些API调用具有跨实体泛化的优势,因为代码API可以抽象掉机器人实体,允许在不同机器人之间顺利部署。此外,基于高级视觉模型的代码API进一步使机器人能够泛化到新物体和未见物体配置。
主要贡献如下:
- 模态链(CoM):一种提示策略,使VLM能够通过逐步整合视觉和力信息,从多模态人类视频演示数据中进行推理。
- 一次性操作程序生成:一种从单个多模态人类演示视频生成机器人控制程序的流程,整合力信息(通过肌肉或音频信号获得)以生成不同技能的细粒度控制参数。
- 通用性:展示了CoM在两种高级VLM模型上的一致优势,并且方法允许VLM从单个人类视频中学习编写机器人代码,这些代码可以在不同的真实机器人平台上运行,具有泛化能力。
相关工作
从视频中理解人类活动
理解视频中的人类活动一直是计算机视觉领域的长期研究重点。早期工作主要旨在通过分类捕捉视频的高级语义含义。为了提取更详细的信息,后来的研究开始专注于从视频中推导任务计划。然而,这些方法往往受限于对特定训练数据集的依赖,难以泛化到未见的动作类别。近年来,大型视觉语言模型的发展使得提示VLM从视频中理解人类活动取得了令人印象深刻的结果。与先前工作不同,本工作侧重于对包含力或音频信息的多模态人类视频进行推理,为下游细粒度机器人操作任务提供必要信息。
机器人与控制的基础模型
近年来,基础模型在机器人领域取得了显著进展,涵盖从高级推理到低级控制的多个层面。早期工作主要集中在语言条件下的机器人推理和规划,其中任务使用自然语言定义。然而,一些操作任务(尤其是涉及空间歧义或需要细粒度控制的任务)仅用语言难以精确描述。视觉语言模型(VLM)的最新进展引入了更具表现力的任务规范,如视觉注释。我们的工作则使用一次性多模态视频作为任务规范,使机器人能够从人类演示中提取任务计划和控制参数。为了将基础模型应用于机器人控制,已经出现了几种有前景的方法,包括基于目标条件策略的子目标选择、轨迹优化的奖励或约束生成,以及基于感知和控制原语的代码生成。与这些基于语言输入的方法不同,这里展示了VLM如何直接从一次性人类视频输入中进行推理,生成低级操作程序,为提示机器人执行具有丰富视觉提示的新任务提供了一种替代方法。
从人类视频中学习操作
最近大量研究探索了利用人类视频数据来教机器人操作技能。这些工作侧重于从人类视频中提取不同信息,如物体功能、运动轨迹、任务动态和奖励表示。像一些工作训练了基于人类或机器人视频(而非语言指令)的操作策略。尽管它们有效,但由于这些方法仅从视频(图像序列)中学习,无法推断许多操作任务所需的重要细节,例如施加多大的力。在这项工作中,我们专注于开发能够利用多种传感模态(包括图像、力和声音)的方法,以更好地理解人类演示中不易察觉的微妙细节,并使机器人能够更好地执行此类任务。
从多模态人类视频中学习
这里介绍提出的系统设计,该系统以单个多模态人类演示视频为输入,并生成机器人可执行代码以执行视频中演示的操作任务。系统有三个主要组件:(1)收集多模态人类视频;(2)用于理解多模态人类视频的模态链;(3)生成代码和控制机器人。对于每个组件,首先讨论动机,然后给出示例。
多模态人类演示视频
视频通常难以捕捉人类执行操作任务的细粒度细节,尤其是涉及力施加的细节。例如,插入电源插头时,首先施加轻力调整其方向,然后增加力进行插入。这些不同的力级别至关重要,但仅从视频中难以观察到,这凸显了需要超越视觉信息的多模态数据。
为解决这些挑战,我们考虑多模态人类视频在每个时间步包括RGB图像、人体肌肉信号或物体交互声音以及手部姿势。它们共同提供了人类任务计划的更全面视图。由带肌肉传感器(EMG)的臂带捕捉的人体肌肉信号或由麦克风捕捉的物体交互声音可以提供必要的力信息,指示人类在整个任务中施加力的时间和大小。此外,为了提供人类手部动作的更详细信息,我们使用基于视觉的方法来估计手部姿势,并将指尖的像素位置作为另一个输入模态。
模态链
接下来,使用视觉语言模型(VLM)来分析此类多模态人类视频中提供的丰富信息,以提取任务计划描述。VLM需要处理来自所有这些模态的信号:以正确的时间顺序识别人类动作,并确定每个动作的控制参数(如目标物体名称、运动方向)。使用VLM实现此目的的一种方法是将所有模态按顺序交织在一起直接查询模型。然而,我们发现最先进的VLM(如Gemini 1.5 Pro、GPT-4o)往往难以关联模态之间的信息,导致忽略某些输入或尝试从错误模态提取信息等问题。为了提高VLM在理解多模态人类视频方面的性能,提出了模态链(CoM),这是一种提示策略,查询VLM按顺序分析每个模态,提取关键信息并逐步聚合结果以产生最终答案。
模态链提示:CoM提示由三部分组成:(1)每个模态及其输入数据格式的描述;(2)可用动作集的描述以及动作参数的解释;(3)一个视频到分析对的示例,介绍如何分析每个模态以生成带参数的已识别动作序列。
模态链示例:图2展示了使用CoM分析多模态人类视频的示例。在此视频中,一个人用左手握住瓶子,用右手拧开瓶盖。CoM依次分析每个输入模态,并基于先前分析优化答案。在图2中,我们用不同颜色突出显示每个模态贡献的新信息。在第一阶段,VLM分析力或听觉信号,找出人何时施加和释放力,然后推断出人施加力的次数。然而,没有手部和图像信息,不清楚人具体在做什么。在第二阶段,VLM结合手部姿势信息,现在识别出人在施加力时正在抓握和扭转,手指位置还表明在握住瓶子时逆时针扭转约180度,释放时顺时针旋转手指。仍然,没有图像数据,任务中出现的物体仍然未知。在第三阶段,VLM整合图像数据,识别出左手握住瓶子,右手拧开瓶盖。有了这些信息,VLM生成动作函数,指定每个时间步的详细动作参数。请注意,示例提示中没有出现任何任务或物体,示例提示仅用于演示分析的输出格式和可用技能库。
编写机器人代码
基于上述人类视频分析,最后一步是将动作序列转换为具有低级API调用的机器人可执行代码。使用相同的VLM执行此代码生成,以创建完成任务的操作程序。代码生成提示包括视频分析以及机器人API的描述和所需的输出格式。
生成高级任务计划示例:以下是上述开瓶任务生成的程序示例:
Move_to('left', Find('bottle')) Grasp('left') Move_to('right', Find('bottle_cap')) for _ in range(3): Grasp('right') Twist('right', 'counterclockwise', 180) Release('right') Twist('right', 'clockwise', 180)
VLM结合来自CoM的视频分析,生成了详细的开瓶任务计划,包括使用右夹具在握住瓶盖时逆时针扭转,以及在不握住瓶盖时顺时针扭转,还生成了一个for循环脚本来指定周期性扭转动作。
生成控制参数示例:除了生成任务计划外,在诸如将插头插入电源插座等接触丰富的任务中,VLM还可以生成控制参数以指定力的使用:
from skills import Grasp, Push_towards, Insert Grasp('right', 'plug', 100) # 力范围从[0, 100] Move_to('right', 'box', 20) # 在手内旋转插头 Insert('right', 'power_strip', 100)
利用来自多模态人类视频的力信息,VLM指定了不同任务阶段施加的力大小,允许使用Move_to通过向墙壁推压(力=20)来重新调整手中插头的方向,并在将插头插入电源插座时用力握住(力=100)。
实现细节
数据收集:肌肉信号(EMG)包含八个通道的数据,采样率为200Hz。由于相机以60Hz记录,我们对肌肉信号进行下采样以匹配相机采样率,并使用八个通道的最大值作为每个时间步的力信号。与音频信号类似,我们计算每个时间步的声音响度作为输入音频值。对于手部姿势估计,我们使用HaMeR来定位指尖的像素位置。信号处理步骤的更多细节可在附录中找到。
机器人执行:机器人API调用由预定义的控制函数组成,这些函数将生成的程序“接地”到真实机器人系统中。这些API从感知模型的最新进展中受益匪浅。例如,在实验中所有物体定位都是通过向Gemini 1.5 Pro查询RGB-D图像和目标物体名称(如生成的程序中所指定)来执行的,这直接在RGB图像上生成目标物体周围的2D边界框。然后,我们使用深度信息和相机参数创建检测到的边界框内实体的3D点云,并使用平均3D位置表示物体的位置。这些开放词汇API简化了生成的程序与机器人感知系统之间的连接,直接增强了基于代码的机器人策略的能力。
实验分析
实验旨在回答以下问题:
Q1:模态链是否能提高VLM对多模态人类视频的理解?
Q2:力信息是否有助于VLM推理人类任务计划?
Q3:手部姿势是否有助于细粒度操作?
Q4:带有CoM的VLM能否从多模态人类视频中提取控制参数?
Q5:生成的程序在真实机器人上的表现如何?
实验设置
基线方法:
将基线分为两类:
- 输入模态差异组:包括仅图像(纯视觉)、无力数据(排除肌肉/音频信号)、无手部姿态(仅力+图像)、无图像(力+手部姿态)、全模态(力+手部姿态+图像)。
- 推理流程差异组:包括直接合并所有模态输入(Merg)、分模态处理后合并(Sep-Merg)、分模态独立处理(Sep-Sep),以及我们的模态链方法(CoM,逐步整合模态信息)。
任务设计:
- 多模态视频分析任务:测试按压立方体、插入插头、打鼓、开瓶4类任务,每个任务包含10个不同物体/视角的测试视频,评估VLM提取任务计划的准确率与相似度分数(基于输出与真实标签的最长公共子串)。
- 真实机器人执行任务:在开瓶、插入插头、擦板、打鼓4项任务上测试生成代码的执行效果,包含泛化场景(如未见瓶子类型、随机物体摆放)和跨机器人平台(ViperX与KUKA双臂机器人)部署。
数据与提示:
- 多模态数据包含同步的RGB视频、肌肉电信号(EMG)或音频音量、手部指尖2D坐标。
- 提示模板包含输入格式说明(如“力信号为归一化浮点数”)、动作库示例(如Grasp(hand, object, force)),并使用与测试任务无关的示例视频(如按压苹果)引导VLM输出结构化分析结果。
实验结果
模态链提升多模态理解能力
如图5所示,在Gemini 1.5 Pro和GPT-4o模型上,模态链(CoM)显著优于其他基线方法:
- 与直接合并模态的Merg方法(平均准确率17%)相比,CoM准确率提升至60%,相似度分数提高42%。
- 分阶段处理模态的Sep-Sep方法虽优于合并输入,但CoM通过逐步利用前序模态分析结果(如先用EMG信号定位力施加时机,再结合手部姿态推断动作类型),进一步提升17%-19%准确率,证明顺序推理对模态关联的重要性。
力信息是任务计划提取的关键
从表1可见:
- 仅图像输入(Image-only)在所有任务中准确率为0,表明纯视觉无法推断力相关参数(如拧瓶盖的力度变化)。
- 包含力信号的全模态方法(All)相比无力基线(w.o. force),相似度分数平均提升42%,尤其在开瓶任务中,力信号的三个峰值直接对应三次扭转动作的分段,验证了力数据对任务阶段划分的决定性作用。
手部姿态助力细粒度动作解析
在开瓶任务中,仅全模态方法(All)实现非零成功率。手部姿态提供的指尖旋转方向(如逆时针180度)和抓握释放时序,帮助VLM区分“握瓶身”与“拧瓶盖”的不同动作阶段。这表明,视觉模型估计的手部关键点对解析复杂操作至关重要,弥补了VLM直接从视频中提取精细手部运动的不足。
控制参数提取与机器人执行效果
如图4的定性结果所示,CoM能够:
- 识别单/双臂任务的目标物体(如左手握瓶、右手拧盖);
- 提取力强度(如插入插头时force=100)、运动方向(逆时针)、时间戳(t=22-35s扭转)等细粒度参数。
在真实机器人测试中(表2),CoM生成的代码平均成功率达73%,显著优于仅依赖视觉的基线(0%)。例如:
- 开瓶任务:在7种瓶子(6种未见)上成功执行,跨ViperX与KUKA机器人平台的成功率分别为60%和75%;
- 插入插头任务:面对随机摆放的插头与插座,通过Gemini 1.5 Pro的视觉定位API(生成2D边界框→转换3D坐标)实现15/20次成功插入;
- 打鼓任务:准确复现不同力度的鼓点节奏(如轻击force=20、重击force=100),成功率80%。
与“Oracle”基线(手动编写代码,成功率92%)相比,CoM的差距主要来自视觉定位误差(如目标物体遮挡)和开环控制限制(无法应对突发干扰)。