机器人也会写代码了?CodeDiffuser:用VLM生成指令,精准化解语言歧义(RSS 2025)

在让机器人“听懂人话”并安全执行复杂操作的道路上,一个被忽视却极具挑战的问题是——自然语言本身往往含糊不清。比如,当你让机器人“把杯子挂到树上”,面对多只杯子、不同高度的树枝,它该怎么决定?现有基于语言的控制方法大多依赖端到端模型,从理解指令到生成动作一步到位,但这很容易在遇到语言歧义、多物体或接触丰富的操作任务时失效。

这篇来自 Columbia、Toyota、UIUC 与清华的最新研究,提出了一种全新的框架。它利用大视觉-语言模型(VLM)先将自然语言转化为任务专用的“代码”,再借助可解释的中间表示指导机器人行动。生成的代码不仅让机器人理解哪些区域更重要,还能在三维空间中形成注意力图,帮助化解指令歧义。

在大量多物体交互与含糊指令场景下,这套方法相比传统模仿学习表现出更好的稳健性和泛化力,为未来让机器人真正理解人类复杂指令迈出了关键一步

图1|CodeDiffuser 利用视觉-语言模型生成的代码,作为一种可解释且可执行的表示,用于理解抽象和含糊的语言指令。这些生成的代码与视觉基础模型(VFM)接口,计算出三维注意力图,作为一种中间表征,用以突出任务相关区域,并与低层策略进行信息传递。通过在仿真和真实环境中的大量评估,作者证明了该方法在处理语言歧义、接触丰富的操作以及多物体交互等挑战性语言条件机器人任务时的有效性。

论文出处:RSS2025

论文标题:CodeDiffuser: Attention-Enhanced Diffusion Policyvia VLM-Generated Code for Instruction Ambiguity

论文作者:Guang Yin, Yitong Li, Yixuan Wang, Dale McConachie, Paarth Shah

Kunimatsu Hashimoto, Huan Zhang, Katherine Liu, Yunzhu Li

论文地址:https://www.roboticsproceedings.org/rss21/p072.pdf

自然语言指令在用于指定机器人任务时,往往存在模糊和不确定性。如图 2 所示,指令“把电池放进托盘”就可能对应多种可行的执行路径。然而,现有的基于语言条件的模仿学习方法通常依赖端到端模型,试图同时处理高级语义理解和低级动作预测,这容易导致性能欠佳。

在实验中,作者发现现有的扩散策略(diffusion policies)在涉及语言模糊性的复杂任务中,即便使用大量数据,也仅能收敛到远低于实际可用水平的成功率。这显露出端到端方法在面对语言歧义和多样环境变化时的适应性不足。

为此,本文提出了一种新的机器人操作框架,旨在解决潜在语言歧义下的任务执行问题。该方法基于一个关键技术洞察:利用代码生成为视觉-语言模型(VLM)的视觉语义理解与视觉运动策略(visuomotor policy)的灵巧物理能力之间,提供一种可解释且可执行的接口。

具体而言,作者提出了 CodeDiffuser,利用视觉-语言模型生成的任务特定代码,来有效应对语言歧义并增强语义理解能力。该中间代码可与视觉基础模型(Visual Foundation Models)接口,生成三维注意力图,从而突出任务相关区域,并引导低层策略进行动作生成。通过这一机制,CodeDiffuser 在语言模糊、多物体交互以及接触丰富操作等挑战性任务中,表现出远超现有模仿学习方法的稳健性与泛化能力

有些读者可能不太明白自然语言指令的歧义和模糊性是怎么在大模型这里体现的,毕竟人类天生对于自然语言有着非常强的处理能力,因此小编通过下图说明:

2用于机器人任务的自然语言指令通常存在固有的歧义性和模糊性。例如,考虑这样一条指令:“把一节电池放进一个插槽”,这在工厂环境中是十分常见的任务。在所给场景中,这条指令可通过多种动作来执行:机器人可以从三个可选的电池中任选其一,并将其放入托盘中的六个潜在插槽之一,最终产生共十八种可能的执行方案。此外,自然语言指令在歧义程度上也存在差异,既可能是高度模糊的,也可能是明确指定目标实例和目标位置的指令

3|全文方法总览CodeDiffuser 由三个主要组件构成:代码生成、三维注意力图计算以及低层策略。(a) CodeDiffuser 首先利用 VLM 的语义推理与代码生成能力,结合含有潜在歧义的人类指令和环境观测,生成任务特定的代码。(b) 这些生成的代码通过基于 VFM 构建的感知 API 进行处理,计算出突出任务相关区域的三维注意力图。(c) 最后,这些注意力图被输入到低层策略中,用于生成具体动作,以完成多物体交互、接触丰富操作以及具有语言歧义的任务

小编先来帮大家总结下:这项工作要解决的是一个多模态配对问题,也就是如何让机器人根据观测到的场景以及自然语言指令,输出合适的动作序列。

从严格的角度看,他们要学习一个概率分布,即给定观察(包括多视角 RGB-D 图像)和语言指令,让输出的动作分布尽量匹配人类示范数据中的真实分布。

在实践中,他们将这个问题分解为:

 先用视觉-语言模型(VLM)和代码生成,得到一个表示任务相关区域的中间状态 zzz,比如 3D 注意力图。

 然后用模仿学习基于这些中间表示生成实际机器人端执行的动作序列。

代码生成

在这部分,作者采用了 VLM(例如 ChatGPT-4o)来直接从自然语言指令生成可执行的“任务代码”。这段代码调用感知 API,生成 3D 注意力图。

具体流程如下:

1. 先提供给 VLM 若干“示例代码”,展示如何用 detect、sel_name、sel_pos 这些 API 来从多视角 RGBD 中检测并选择物体。

2. 当输入一条自然语言任务(比如“把蓝色杯子挂到左边树枝上”)时,VLM 先调用 detect 找出所有 mug,再用 sel_name 找到“蓝色”的那个 mug,然后再用 sel_pos 从 branch 中挑出“左边”的那根树枝。

3. 最终,这段自动生成的代码就能基于输入的 RGBD 观测,输出一张 3D 注意力图

3D 注意力图生成的 API

为使得 VLM 可以生成能直接驱动机器人感知的程序,作者特别设计了一套简单的 API:

 detect: 给定一个物体名(如 "mug"),从多视角 RGBD 中检测所有属于这个类别的实例,输出 3D 点云和特征。

 sel_name: 从同类别物体中按语义属性(如“蓝色”)选择。

 sel_pos: 根据位置关系(如“左边”)来挑选具体实例。

他们用 DINOv2 提取每张图的 2D 语义特征,再通过深度与相机内外参融合成 3D 点云及其语义特征,然后用 DBSCAN 聚类得到物体实例。各位读者应该对这个过程不太陌生了,这是近年来非常主流的“2D->3D特征融合+聚类” pipeline。

视觉-运动策略学习

有了注意力图后,就可以用它来训练一个低层的模仿学习策略,让机器人根据 3D 注意力图,输出一段连续的 6D 末端执行器轨迹(位置+姿态)。

相比于直接从语言+图像一步到位输出动作,他们这种做法显得非常清晰:

 VLM + 代码先解析出任务相关区域(通过注意力图“高亮”)。

 再由 PointNet++ 等网络读入这些三维注意力信息,输出连续轨迹,而不是像以前一些方法那样只输出关键帧(keypose)。

同时作者还采用了一个小trick,他们在 PointNet++ 上加了残差连接(residual),并在消融实验中表明这种设计能显著提高性能,说明传播注意力信息到动作生成的确非常关键

本文通过一系列大规模仿真和真实机器人实验,重点回答以下四个问题 :

 当任务指令存在歧义性时,现有模仿学习算法表现如何?单纯增加演示数据能否解决这一问题?

 由 VLM 生成的代码是否能正确地将自然语言指令映射为 3D 注意力图?

 使用 3D 注意力图作为下游视觉-运动策略的中间表征是否合适?

 整个从语言到动作的系统在全面的仿真和现实评估中表现如何?

我们一起来看看实验的结果如何:

现有模仿学习算法在歧义任务下的表现

作者首先在 Pack Battery 任务上评估了两种现有模仿学习方法:Action Chunking Transformer(ACT)和 Diffusion Policy(DP),其中 DP 分别测试了基于 RGB(DP (RGB))和基于点云(DP (PCD))两种输入 。

 在简单任务(如仅有一个电池和单个固定插槽)下,这些基线方法均能很好完成任务。

 但随着拾取物体或插槽数量增加,导致任务歧义显著时,成功率显著下降。

 在更具体的实验里:

 当拾取选项增多(如 4 个电池 vs 1 个插槽)时,主要失败发生在拾取阶段;

 当放置选项增多(如 1 个电池 vs 12 个插槽)时,失败多出现在放置阶段。

实验还表明,单纯通过增加演示数量(从 30 到 540)并不能有效解决这种歧义带来的性能下降

图4|Pack Battery 任务评估不同模仿学习方法实验结果

从语言到 3D 注意力图的评估

作者在仿真中建立了基准,定量评估了从自然语言到 3D 注意力图的映射能力 。

 下图所示,在 Hang Mug 与 Pack Battery 场景上,该方法成功率分别为 97% 与 94%,总体达到 191/200。

 系统不仅能在简单指令(如“把最右边的电池放到左列的插槽”)下正确高亮目标电池和插槽,还能在更复杂甚至带自我修正的指令(如“把红杯挂在最上面的树枝,哦不,是绿杯”)中依然准确生成对应 3D 注意力图。

图5|Pack Battery 和Hang Mug多任务成功率分析

使用 3D 注意力驱动的扩散策略评估

接着,作者评估了以 3D 注意力图为条件的低层视觉-运动策略(即 CodeDiffuser 的扩散策略)。

 在 Pack Battery 任务中,随着演示次数增加到约 120,成功率迅速提高并达到 90% 以上,表明这种基于注意力的策略可以有效解决任务歧义。

 在进一步提高拾取和放置选项导致任务歧义增强的设置中,成功率仍保持在较高水平,显示出 3D 注意力图是应对下游任务歧义的稳健表征 。

 还在未见过的高歧义场景上测试了泛化能力,结果表明如果在训练中见过足够多的多样场景,策略能够很好地推广到新情形。

图6|3D注意力机制的可视化结果(结合扩散策略)

整体系统在仿真与真实世界的验证

作者在仿真中与多种基线进行对比,包括:

 使用 2D 注意力代替 3D 注意力的变体。

 去除 PointNet++ 中残差连接的 ablation。

结果显示:

 在 Pack Battery 与 Hang Mug 的仿真中,CodeDiffuser 总体成功率达 86.5%,明显高于 Lang-DP(约 6-12%)及 Lang-ACT(~5-6%)。

 在真实世界的 Hang Mug、Pack Battery 与 Stow Books 中也持续超越基线,平均成功率为 80% 。

本文提出了一个高斯阴影模型实现了在不同环境中的三维人体模型重建的,并能够实现非常出色的阴影渲染效果。这个模型适用于动态场景,并且可以进行迭代细化。重建的角色即便在新环境中重新定位和重新照明,也能够拥有逼真的阴影渲染。同时本文还通过延迟渲染等小trick加快了计算的速度,使得该方法能够以很少的计算成本(0.3秒)为代价,大大提升模型的阴影渲染能力。

### VLM(视觉-语言模型)与生成式对抗网络 (GANs) 的相关研究和应用 #### 视觉-语言模型概述 大型视觉语言模型(LVLMs),通过整合来自不同模态的信息,能够更深入地理解和描述复杂场景。这类模型不仅限于简单的图像分类或文本翻译任务;相反,它们可以在诸如视觉问答(VQA)[^3]、图像字幕生成、跨模态检索等领域发挥重要作用。 #### 生成式对抗网络简介 生成式对抗网络(GANs)由两个神经网络组成——生成(generator)试图创建逼真的样本数据,而判别器(discriminator)则尝试区分真实数据与伪造品。两者相互竞争并共同进化,最终使生成器学会模仿训练集中未见过的新实例。 #### 结合VLM与GAN的研究进展 1. **多模态内容创作** 利用VLM强大的语义解析能力和GAN出色的合成特性相结合,研究人员开发出了能根据自然语言指令自动生成高质量图片的技术方案。例如,给定一段描述性的文字说明,系统可以产出相应的艺术作品或是产品设计草图[^2]。 2. **增强现实体验优化** 将VLM应用于AR环境中物体识别及交互逻辑的理解方面,配合GAN实现虚拟对象的真实感渲染效果提升用户体验的真实性感受。这方面的典型应用场景包括但不限于教育工具、娱乐游戏以及远程协作平台等。 3. **自动化编辑流程革新** 对于媒体行业而言,借助这两种技术的力量可极大简化视频剪辑过程中的素材选取环节。具体来说,可以通过分析剧本脚本自动挑选匹配镜头片段,并运用风格迁移算法调整画面色调达到统一的艺术呈现标准。 ```python import torch from transformers import CLIPProcessor, CLIPModel from diffusers import StableDiffusionPipeline def generate_image_from_text(text_description): model = CLIPModel.from_pretrained("openai/clip-vit-base-patch32") processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch32") pipe = StableDiffusionPipeline.from_pretrained('CompVis/stable-diffusion-v1-4') inputs = processor(text=text_description, return_tensors="pt", padding=True) with torch.no_grad(): image_features = model.get_image_features(**inputs) generated_images = pipe(image_features).images return generated_images ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值