3D-VLA: A 3DVision-Language-Action Generative World Model

Date:2024-3-14

论文链接:https://arxiv.org/abs/2403.09631

原文代码仓库:[UMass-Embodied-AGI/3D-VLA: [ICML 2024] 3D-VLA: A 3D Vision-Language-Action Generative World Model]

提出了 3D-VLA,通过生成世界模型无缝地将 3D 感知、推理和行动联系起来。具体来说,3D-VLA 构建在基于 3D 的大型语言模型(3D-LLM)之上,并引入了一组交互tokens来与具体环境互动。此外,为了将生成能力注入模型,还训练了一系列扩散模型,并将它们对齐到LLM用于预测目标图像和点云的模型中。3D-VLA 显着提高了具身环境中的推理、多模态生成和规划能力,展示了其在实际应用中的潜力。

Background

  • 已有模型存在的问题:
    1. RT-2、PALM-E等VLA模型已经可以根据2D图像生成高级计划或低级行动,但人类位于一个比2D图像更丰富的3D物理世界中,需要根据对环境的3D理解进行推理、计划和行动,而目前的VLA模型依赖于2D输入,缺乏与更广泛的3D物理世界领域的集成。
    2. 目前已有的3D具身模型可以在3D环境中进行规划与行动,但此类模型仅通过学习从感知到行动的直接映射来执行动作预测,而忽略了世界的巨大动态以及动作与动态之间的关系。相比之下,人类被赋予了世界模型,这些模型描绘了对未来场景的想象,以相应地规划行动。
  • 构建类似人类的3D世界模型带来的挑战:
    1. 已有的模型局限于语言这一单一模态
    2. 现有的具身数据集主要包含 2D 图像或视频,缺乏用于 3D 空间推理和规划的 3D 相关注释

Dataset:3D embodied instruction tuning datasets

增强数据集示例

出发点:已有的数据集(视频-动作对)大多不提供深度或 3D 注释以及机器人操作中的精确控制,而如果没有 3D 信息,机器人很难理解和执行需要 3D 空间推理的命令(“将最远的杯子放入中间抽屉”)

构建方式:从已有的具身数据集(12个数据集:语言指令/图像/深度信息/模拟环境/人机交互/3D注释)中提取3D-语言-动作对,得到如下信息的标注:点云、深度图、3D bounding boxes;机器人7D动作(与RT系列文章一致,x/y/z/roll/pitch/yaw/抓持器打开);文本描述

使用到的已有具身数据集

视觉标注

  • 获取3D点云数据:基于深度图数据,可使用相机标定内参/姿态数据将RGB-D图像升维至3D点云
    • 估计深度:ZoeDepth
    • 估计光流:RAFT

光流(optical flows):提炼生成数据——在摄像机姿态不变的视频片段中,用于估计哪些像素背景未移动,并将这些背景的深度图对齐到同一视频的不同帧中,同时将每帧的深度图乘以一个系数,以确保深度一致性。

RGBD目标图像的可视化(RGB+Depth深度图):Novel Env为日常生活中收集的未见环境

生成的RGB-D目标图像与目标点云

  • 生成3D标注:

    • 对象的 3D 边界框(bounding box)
      1. 使用spaCy解析获取指令(数据集提供文本指令以描述机器人执行的命令)中的所有名词块(包括操作对象)
      2. 采用预训练的映射/对齐模型(grounding model)(如Grounded-SAM)获取各对象的2D蒙版,并根据有效光流区域中的最高置信度值来选择操作对象
      3. 通过将2D蒙版升维至3D点云中,获取空间中所有对象的3D bounding box

    由于重建了深度和点云,因此可以在未来的帧中使用图像、深度和点云作为ground truth。

    • 3D 空间中的机器人动作:数据集中已提供7D机器人动作

语言标注

生成密集的语言标注,其中包含围绕在生成的3D视觉标注周围的tokens:采用带有tokens的预训练语言模板,将3D标注构建至提示词与答案中

预训练语言模板

e.g. I should pick up the chip bag [loc tokens] </img /pcd>

使用基于ChatGPT的提示词工具,使提示词prompt更加多样化:

  • 向 ChatGPT 提供指令和标注对象及其bounding box,要求 ChatGPT 总结信息并将模板生成的提示重写为更多样化的形式;
  • 提供 2-3 个人工编写的小样本演示,以指导 GPT 了解它被指示生成的数据类型;
  • 对于没有预定义模板的任务,ChatGPT 也会被要求自行生成提示和答案作为这些任务的语言输入和输出。

使用ChatGPT使prompt更加多样化

Model

模型架构:左侧部分展示了目标生成功能;模型可以根据用户的输入想象最终的状态图像和点云,然后可以将生成的目标状态反馈给我们的模型,以指导机器人控制。

3D-VLA是一个用于具身环境中的三维推理、目标生成和决策的世界模型。

  1. 以3D-LLM作为backbone,在此之上构建主干开发 3D-VLA 基础模型

    • 由于收集的数据集无法达到多模态LLM从头开始训练所需的十亿级规模,因此需要利用多视图特征生成 3D 场景特征。这使得视觉特征能够无缝集成到预先训练的 VLM 中,无需调整。
    • 3D-LLM的训练数据集主要包括对象和室内场景,这与该模型所用数据集的具体设置并不直接一致,因此选择不加载 3D-LLM 预训练模型,而是使用 BLIP2-FlanT5_XL作为预训练模型
    • 训练期间解冻了 token 的输入和输出嵌入,以及 Q-Former 的权重。
  2. 添加一系列交互(interaction)tokens:进一步增强模型对 3D 场景的理解以及与3D世界交互的能力

    • 在句中的物体名词两侧加入token:,使得模型可以更好地捕获需要操作/提到的对象

    e.g., a chocolate bar [loc tokens] on the table

    • 为了更好地通过语言表示空间信息,设计了一组位置tokens:,用于定位提到的对象,这些标记由 AABB 形式的 3D bounding box 的六个tokens表示
    • 为了更好地使用框架对动态进行编码,引入了tokens: 来封装静态场景的嵌入。通过对场景tokens进行组合,3D-VLA 可以理解动态场景并管理交错 3D 场景和文本的输入。
    • 通过一组扩展的代表机器人动作的专用tokens进一步增强架构:机器人的动作具有 7 个自由度,由离散tokens(如 ,<gripper0/1> )表示,他们代表了机器人手臂的预期绝对位置(x/y/z)、旋转角度(roll/pitch/yaw)、抓手打开度。这些动作由token : 分隔。
  3. 将目标生成(图像-深度/点云)能力注入3D-VLA

    人类**预先可视化场景的最终状态**,以便于行动预测或决策,这是构建世界模型的一个关键方面。此外,通过初步实验可以发现,提供基本事实的最终状态可以增强模型的推理和规划能力。

    训练多模态大语言模型来生成图像、深度和点云主要存在以下问题,文章中根据这两点给出了对应的模型设计优化方案:

    • 视频扩散模型并不是为具体的某种模态量身定制的——根据不同的模态(如图像、深度和点云)对具体的扩散模型进行预训练

      利用选取的3D-语言视频数据来训练条件扩散模型,该模型根据指令编辑初始状态模态,以生成相应的最终状态模态。

      • RGB-D to RGB-D:采用Stable Diffusion V1.4作为预训练模型,将RGB潜变量和深度潜变量连接起来作为图像条件。
      • 点云 to 点云:采用Point-E作为预训练模型,添加点云的条件输入。
    • 如何将各种模态的扩散模型纳入一个单一基础模型——使用投影器将这些扩散模型的解码器与3D-VLA 基础模型的嵌入空间对齐

      在对扩散模型进行预训练后,配备各种解码器,这些解码器可以在其模态中调节潜空间来生成目标:图像 和点云 的tokens会告诉解码器输出的类型。

      在图像/点云的tokens封装之间,监督LLM生成的给机器人操作的指令,包括目标和位置tokens。

      e.g. pick up the apple [loc tokens]

      基于此,可以使用基于transformer的投影器,将解码器的特征和嵌入(embedding)从LLM映射到扩散模型的空间中,从而建立高级语言支持和多模态目标生成之间的联系,增强模型理解并提高生成多模态数据的能力。

      为了提高训练3D-VLA的效率并避免灾难性遗忘,利用LoRA微调不同的扩散模型

      只训练新引入的特殊tokens embedding、相应的embedding输出线性层和整个投影器,训练目标是同时最小化LLM和扩散模型的去噪损失

Experiment:模型评估

3D推理与定位

  • 测试任务(基于Open-X数据集):

    1. Embodied QA
    2. Task Caption(输入初始和最终场景,要求推理这个过程中发生了什么)
    3. What-if QA(与RT-1相同,指令拆解)
    4. Dense Caption(3D场景的过程推断)
    5. 定位:以zero-shot方式检测 2D 边界框,然后使用深度投影将它们传输到 3D 边界框
  • 对比Baseline模型:3D-LLM、2D-VLM(BLIP2、OpenFlamingo、LLaVA)、2D 对齐 MLLM(Kosmos-2、CoVLM)【针对任务5定位】

  • 测试方式:

    1. zero-shot(在未见的数据集上测试)
    2. 在训练集(2D 图像-指令-行为对)上测试
  • 测试结果:

    • 3D-VLA 在语言推理任务上优于所有 2D VLM 方法
    • 3D-LLM 在机器人推理任务上表现不佳
    • 3D-VLA 在定位性能方面表现出优于 2D 基线方法的明显优势

    任务1-4测试结果

    任务5测试结果

多模态目标生成

  • 测试任务:从 Open-X 测试集中随机抽样了 4000 个未见的episodes,定量评估Open-X 测试集上 3D-VLA 的 RGB 目标和点云目标生成能力

  • 对比Baseline模型:

    • 图像生成:图像编辑方法 Instruct-P2P、目标图像/视频生成方法SuSIE、具有图像生成能力的大语言模型 NeXT-GPT
    • 点云生成:文本-to-3D 扩散模型Point-E
  • 测试结果:

    • 图像目标生成:
      • 与直接zero-shot到机器人领域的现有生成方法(表中的第 1、2、3 行)相比,3D-VLA 在大多数指标方面都取得了有希望的性能
      • 即使与采用相同机器人数据集(表中第 4 行)上训练的 Instruct-P2P* 直接比较,3D-VLA 的性能也始终优于它
      • 从输入提示(第 5 行)中排除预测的边界框时,性能略有下降

    RGB图像生成测试结果

    • 点云生成:

      • 具有中间预测边界框的 3D-VLA 性能最佳

      点云生成测试结果

机器人行动规划

  • 测试任务:根据RLBench和CALVIN两个benchmark dataset评估3D-VLA 预测机械臂动作的能力

    • RLBench:选择3个任务进行评估;从pick-up-cup任务中选择var1作为未见任务以测试模型泛化能力
    • CALVIN:在long-horizon multi-task language control设置下按顺序执行5个任务;在场景A、B、C、D中训练并在场景D中测试
  • 对比Baseline模型:

    • RLBench:LanCon-Learn(一种多任务方法,可根据指令条件输出预测动作)
    • CALVIN:MCIL(一种序列-to-序列的条件变分自动编码器)
  • 测试结果:

    • 3D-VLA在大多数任务中和RLBench的行为预测baseline性能相当甚至更优,说明其行为规划能力优越
    • pick-up-cup任务很好地证明了模型的泛化能力
    • 3D-VLA 在 CALVIN 中也取得了良好结果

    RLBench数据集上的行动规划评估

    CALVIN数据集上的行动规划评估

3D-VLA: A 3DVision-Language-Action Generative World Model

http://asgard-tim.github.io/2025/04/18/3DVLA/

作者

Tim

发布于

2025-04-18

更新于

2025-04-30

许可协议

评论