一句话定位

Act3D 把 6-DoF 末端执行器 keypose 预测重铸为「连续 3D 特征场里的检测问题」:用预训练 2D 骨干把多视角 RGB-D 抬升成 3D 场景特征云,再递归地由粗到细采样-打分候选「幽灵点」(ghost point),靠相对 3D 注意力避免固定分辨率体素化的算力爆炸。RLBench 上单任务 74 任务集 83% 成功率(比 2D SOTA InstructRL 高 10 个绝对点)、多任务 18 任务/249 变体集 65% 成功率(比 3D SOTA PerAct 高 22 个绝对点且训练算力不到其三分之一)。

背景与定位

论文站在「action detection」范式的延长线上:Transporter Networks 把 4-DoF keypose 预测重铸成俯视图上的像素分类,靠检测局部特征而非回归全局聚合特征大幅提升样本效率,但受限于俯视 2D 平面世界。要把这一范式扩展到通用 6-DoF 3D 操作,核心难点是——末端执行器的合理 3D 位置不仅落在物理表面点上,还可能落在自由空间里(预抓取位姿、关节物体的回退位姿、任务阶段转换位姿,统称 keypose),而给自由空间中的点做特征化并不直观。C2F-ARM 与 PerAct 的做法是把工作空间体素化、检测下一个最优 3D 体素(PerAct 用 Perceiver 的隐变量瓶颈自注意力规避体素间全自注意力的开销),但高精度任务仍需要高分辨率体素网格,算力代价高;HiveFormer / Auto-λ / InstructRL 这类方法则退而求其次,检测一个接触点后回归一个偏移量,没有充分利用 action-detection 的归纳偏置。

Act3D 完全放弃体素化,转而把场景表示为连续 3D 特征云:在自由空间里采样 3D 点网格并靠相对交叉注意力对其物理特征云做特征化,从而以任意空间分辨率检测末端执行器位置。相对 3D 注意力的设计借鉴了 RoFormer 的旋转位置编码思路并把它扩展到 3D。这一「幽灵点 + 相对注意力」的检测框架直接被同实验室后续工作继承和扩展:3D Diffuser Actor(CoRL 2024)把检测头换成条件扩散去噪整段 6-DoF 轨迹,同代码仓库里的 ChainedDiffuser 则用轨迹扩散连接 keypose 解决 Act3D 自陈的关节物体操作局限。

模型架构

视觉-语言编码器:冻结、不参与微调的 CLIP ResNet-50 视觉编码器 + 对应 CLIP 语言编码器,利用二者共享的视觉-语言特征空间做指令理解和指代 grounding。每个 256×256 输入图像视角经 2D 骨干 + 特征金字塔网络(FPN)抽出两张多尺度特征图:32×32 粗粒度视觉 token 和 64×64 细粒度视觉 token;再用深度值把 2D token 逐点插值抬升为 3D 场景特征云。

递归由粗到细的幽灵点采样:共 3 个采样阶段——先在整个工作空间(约 1 米立方)采样,再收缩到以上一阶段选中焦点为中心的 16 厘米直径球,最后收缩到 4 厘米直径球。最粗的幽灵点关注全局粗特征云(32×32×n_cam 个粗 token),更细的幽灵点关注局部细特征云(64×64×n_cam 细 token 中距离最近的 32×32×n_cam 个)。训练时三阶段共采样 1000 个幽灵点(均分到三阶段);推理时可采样远多于训练时见过的点数(实验中用 10,000 个)以拿计算量换精度,这是可行的,因为幽灵点之间不做自注意力、彼此独立特征化。

相对 3D 交叉注意力:每个幽灵点及一个参数化 query 都独立地对多尺度 3D 场景特征云、语言 token、本体感受(proprioception)做交叉注意力(2 层)。位置编码是 RoFormer 旋转位置编码到 3D 的扩展:给定点 p=(x,y,z) 和特征 x,编码函数 PE(p,x)=M(p)x,M(p) 是按 x/y/z 三轴分块的旋转矩阵(每轴一个 2×2 旋转子块,频率 θ_k=1/10000^(6(k−1)/d)),两个位置编码特征的内积只依赖于相对位置 p_j−p_i——这使注意力天然具备平移不变性,是消融中最关键的设计(换成绝对 3D 位置编码,成功率从 98.1% 掉到 55.4%,掉 42.7 个点)。

检测 Transformer 头:把每个幽灵点 token 与参数化 query 做内积打分,选出下一个最优末端执行器 3D 位置 a_pos;再从该 query 的上下文化表示用一个简单 MLP 回归四元数旋转 a_rot、二值夹爪开合 a_open、以及运动规划器是否需要避障 a_col。

配置数字:单任务实验用 2 层交叉注意力、embedding 维度 60;多任务(语言条件)实验 embedding 维度 120。三个采样阶段权重共享(tied weights)——消融显示去掉权重共享会掉 17.5 个点(98.1→80.6)。动作定义为 a={a_pos∈R³, a_rot∈四元数, a_open∈{0,1}, a_col∈{0,1}}。本文只在单臂(RLBench 各任务 + 真实 Franka Panda 平行爪)设置下验证,不含跨本体(cross-embodiment)设计。

数据

纯离线示范模仿学习(behavior cloning),不含在线 RL。

仿真(RLBench)——沿用前作的两套评测协议以便对比:

  • 单任务设置(HiveFormer 提出):74 个任务、分 9 个类别(Planning / Tools / Long term / Rotation-invariant / Motion planner 等),每任务 100 条示范训练,500 条未见 episode 评测;另测试仅用 10 条示范/任务的低数据场景。相机:3 个视角(左/右/腕部)。
  • 多任务多变体设置(PerAct 提出):18 个任务、249 个变体(每任务 2–60 个变体,测试对新物体颜色/形状/大小/类别的泛化,比单任务设置下”同物体新摆放”的泛化更难),每任务 100 条示范(跨变体切分),500 条未见 episode 评测。相机:4 个视角(前/左/右/腕部)。

真实世界:Franka Emika Panda + 单个 Azure Kinect RGB-D 前视相机(30Hz,1280×720 裁剪降采样到 256×256,用 easy_handeye ROS 包标定外参)。设计 8 个真实任务(涉及液体、关节物体、可变形物体),每任务采集 10–15 条人类遥操示范,训练一个跨全部 8 任务的语言条件多任务策略(合计约 100 条示范)。

keypose 抽取:沿用 Guhur/Shridhar 前作做法——末端执行器状态改变(抓取/释放)或速度趋近零(进入预抓取/新任务阶段)即判定为 keypose;策略只预测下一个 keypose,推理时用运动规划器(仿真用 RLBench 自带 BiRRT/OMPL,真实世界用 MoveIt! 提供的 BiRRT)连接执行。

数据增强:RGB-D 图像随机裁剪(成功率 +6.5%);yaw 旋转扰动 ±45° 仅在真实世界使用——消融显示它在仿真里反而使成功率下降 11.9%,与 PerAct 的观察一致。

训练方法

目标函数:位置预测在每一轮粗到细都用幽灵点上的 softmax 交叉熵监督;旋转预测用四元数上的 MSE;夹爪开合与避障标志用二值交叉熵。

幽灵点采样规模:训练采样 1000 个(三阶段均分),推理可扩展到 10,000 个(无需重新训练,因幽灵点独立特征化)——消融显示只用 1000 个推理会掉 4.9 个点(93.2 vs 98.1),与主文声称的”推理时多采样带来 4.9% 提升”完全对应。

算力预算:单任务实验 batch size 16,单张 32GB V100,200k 步(约 1 天);语言条件多任务实验 batch size 48,8×32GB V100,600k 步(约 5 天)——不到 PerAct 报告训练预算(8×V100 训练 16 天)的三分之一。真实世界多任务策略 4×V100 训练 3 天。

Infra(训练 / 推理工程)

  • 训练硬件:单任务 1× Nvidia 32GB V100(1 天/200k 步);语言条件多任务 8× Nvidia 32GB V100(5 天/600k 步);真实世界多任务 4× V100(3 天)。消融中把训练时幽灵点数翻倍到 2000 需要 2 块 GPU。并行策略与训练精度(fp16/bf16 等)论文未披露。
  • 推理硬件:真实世界实验在单张 Nvidia RTX 4090 桌面 GPU 上运行推理。
  • 控制方式:策略预测离散 keypose(非逐时间步连续控制),由运动规划器(仿真 BiRRT/OMPL,真实世界 MoveIt! BiRRT,机器人控制走 frankapy 包)连接执行;论文未报告端到端推理延迟或控制频率(Hz)等数字。
  • 视觉输入:真实世界用单个 Azure Kinect 前视 RGB-D,30Hz 采集、降采样到 256×256 输入分辨率。

评测 benchmark

单任务(HiveFormer 协议,74 任务/9 类别,100 条示范/任务):Act3D 83% 成功率,比 2D 多视角策略 InstructRL(此前 SOTA)高 10 个绝对点,在全部 9 个类别上一致领先;仅用 10 条示范/任务时已能与 InstructRL 用 100 条示范打平。

多任务(PerAct 协议,18 任务/249 变体,100 条示范/任务):Act3D 65% 成功率,比 3D 体素化策略 PerAct(此前 SOTA)高 22 个绝对点,多数任务上一致领先;且训练算力不到 PerAct 的三分之一(5 天 vs 16 天,同为 8×V100)。

视角泛化:测试时改变相机视角,Act3D 成功率降到 74.2%(相对掉 24%),HiveFormer 降到 20.4%(相对掉 77%)——3D 检测范式对视角变化的鲁棒性明显优于 2D 多视角回归偏移量的方法。

真实世界(8 任务,各 10 episode 评测):reach target 10/10、press handsan 10/10、fruits in bowl 8/10、uncrew cap 8/10、wipe coffee 7/10、duck in oven 6/10、stack cups 6/10、transfer beans 5/10。主要失败源自深度传感噪声导致的定位误差。

高精度任务补充实验(arXiv v2 附录 7.5,insert peg / sort shape / screw nail 三个高精度任务,success 数字):

方法insert pegsort shapescrew nail
PerAct163112
Act3D(256×256 输入)293431
Act3D(512×512 输入)474355

提高输入图像分辨率(更多、更精确定位的视觉 token)能进一步提升 Act3D 在高精度任务上的表现,但代价是更多计算。

消融要点(单任务 5 任务子集:pick cup / put knife on chopping board / put money in safe / slide block to target / take umbrella out of stand,完整模型基线 98.1%):

  • 仅 2 级粗到细(第 3 级换成回归偏移量):93.6(-4.5)
  • 去掉跨阶段权重共享:80.6(-17.5)
  • 绝对 3D 位置编码替代相对编码:55.4(-42.7,消融中最大跌幅)
  • 细粒度阶段也只关注全局粗特征(不用局部细特征):89.8(-8.3)
  • 推理时仅用 1000 个幽灵点(非默认 10,000):93.2(-4.9)
  • 采样球直径翻倍(32cm/8cm):96.6(-1.5,对超参不敏感);减半(8cm/2cm):91.2(-6.9)
  • 训练时 500 个幽灵点:95.8(-2.3);2000 个(需 2 GPU):98.4(+0.3)
  • 无图像增强:91.6(说明随机裁剪贡献 +6.5);加入旋转增强:86.2(说明旋转增强在仿真里反而 -11.9)

2D 骨干消融(多任务设置,18 任务):CLIP ResNet-50 骨干 65.1,ImageNet 预训练 ResNet-50 53.4,不用预训练骨干(原始 RGB)45.2——CLIP 明显优于 ImageNet 预训练与从零训练。注:正文叙述给出的提升幅度为”+8.7%(vs ImageNet)/+16.9%(vs 原始 RGB)“,与表格数字直接相减得到的 +11.7/+19.9 不完全吻合,此处按原文表格数值为准,叙述数字原样保留仅供参照(论文自身的不一致,未做外推修正)。

创新点与影响

贡献:(1)提出「幽灵点」概念——把自由空间里任意位置的候选末端执行器位姿都当作可采样、可特征化、可打分的检测目标,从而把体素化 3D 策略里”固定分辨率网格”这一算力瓶颈换成”自适应分辨率的递归粗到细采样”;(2)把 RoFormer 式旋转位置编码扩展到 3D 相对交叉注意力,证明它对该任务是决定性的(消融中单项最大跌幅 42.7 点);(3)证明大规模视觉-语言预训练的 2D 骨干(CLIP)优于 ImageNet 预训练或从零训练,且骨干可以完全冻结不参与微调;(4)证明跨阶段权重共享与”幽灵点独立特征化(无自注意力)“两个设计能让模型在推理时用比训练时多一个数量级的采样点数换取额外精度,而无需重新训练。

改变了什么:把 3D 操作策略的算力增长方式从”体素网格分辨率”解耦为”推理时可调的采样点数”,在两套 RLBench 协议上同时刷新 2D 与 3D 策略的 SOTA,并且训练算力显著低于此前 3D SOTA(PerAct)。这套”幽灵点 + 相对 3D 注意力”框架被同实验室后续工作 3D Diffuser Actor(CoRL 2024,把检测头换成条件扩散去噪整段轨迹)直接继承和形式化。

作者自陈局限(论文 4.4 节):(1) 在需要精细闭环控制的超高精度任务(螺丝、插拔)上有时失败;(2) 对关节物体操作(开关门/冰箱/烤箱)处理不好——因为运动规划器只用直线连接 keypose,缺乏更精确的轨迹预测,作者提出基于学习的轨迹预测作为未来工作(该方向随后由同代码仓库的 ChainedDiffuser 直接实现);(3) 长时程任务需要逐个预测所有 keypose,缺少分层子目标框架来复用技能。真实世界实验中还观察到深度传感噪声是主要失败源,作者建议用多视角输入做误差校正。

原始链接

一手源存档(sources/)

  • act3d—project-page — 项目主页快照(fetched 2026-07-16)
  • act3d—github-readme — GitHub zhouxian/chained-diffuser README 快照(fetched 2026-07-16)
  • 论文全文见上述 arXiv 链接(arXiv 原文 PDF,不入 git;已读 v1 与 v2 全文 HTML)