Home / 机器人学习 / DP3:简洁三维表示与动作扩散

075|DP3:简洁三维表示与动作扩散

系列首页 · 上一篇 · 下一篇

原论文:3D Diffusion Policy: Generalizable Visuomotor Policy Learning via Simple 3D Representations,Yanjie Ze 等,2024,arXiv v2。论文。

先接住前作的问题

Diffusion Policy能够生成多模态动作段,但少量RGB示范还要学会从投影恢复几何。DP3保留动作扩散,改用稀疏点云表示,追问明确三维位置能减少多少数据负担;它不是用扩散生成场景。

五个前置概念

五个前置概念:

  • 反投影:利用深度与相机参数恢复三维点。
  • 最远点采样:逐步选择远离已选点的位置,改善空间覆盖。
  • 排列不变性:点的输入顺序变化不应改变全局表示。
  • 条件扩散策略:由当前观察约束动作分布的去噪生成器。
  • 归纳偏置:模型或预处理主动偏向某种问题结构。

一、问题设定:少量示范下怎样让动作策略直接利用三维位置

同一只杯子在图像里变大,可能因为靠近相机,也可能因为杯子本身更大。三维点云直接提供空间位置,能减少模仿学习在少量示范中自行推断几何的负担。

DP3 是离线模仿学习。状态观测包括点云和机器人姿态,动作维数随机械臂、夹爪或灵巧手而不同。没有奖励优化、critic 或在线探索。模拟专家可能来自 RL,但专家的训练算法不是 DP3 本身。

相较依赖关键位姿与规划器的三维方法,DP3 直接学习较密集动作序列,更适合高维手部控制。相较原始图像扩散策略,主要新增的是三维感知管线和对应编码器。

三维信息也不是免费真值:相机深度通过内外参转换,裁剪工作区,再下采样。模拟深度与真实传感器的噪声、遮挡不同,真实结果不能视为模拟训练后直接零样本迁移;论文在真实任务上另收集示范训练。

动作终止在真实评估中由人根据完成、无法继续或危险行为决定。这个执行协议会影响成功率、时长和违规统计,不能假定所有方法有统一自动终止器。方法与设置:§III–V。

二、以紧凑点云特征条件化动作扩散

1. 从深度到点集合

对于像素(u,v)(u,v)、深度dd、焦距fx,fyf_x,f_y与主点cx,cyc_x,c_y,教学反投影为:

xc=(u−cx)d/fx,yc=(v−cy)d/fy,zc=d.x_c=(u-c_x)d/f_x,\quad y_c=(v-c_y)d/f_y,\quad z_c=d.

再用外参把相机坐标变到选定参考坐标。此式说明标定误差直接变成空间误差,网络并不天然消除它。

点云去掉颜色,工作区裁剪后进行最远点采样,保留512或1024点。裁剪不是识别并分割每个物体,却提供了“哪些空间可能重要”的人工先验。

2. 编码器的归纳偏置

逐点 MLP 处理坐标,LayerNorm稳定特征,再对点维度最大池化,投影为64维视觉表示;机器人状态另编码后作为条件。

最大池化对点排列不变。原文描述使用了 order-equivariant 一词,但最终全局向量在点顺序改变时应保持相同;这是排列不变性,不能称为几何旋转等变性。若把场景整体转90度,普通MLP并不保证动作自动转90度。

相对 PointNet,这里移除用于特征变换的 T-Net 与 BatchNorm 等组件。视觉分类希望物体姿态变化时类别不变,控制却往往需要精确保留姿态。分类编码器强,不意味着它保留的特征最适合动作。

3. 扩散目标:公式介绍和实际参数化不同

设干净动作块为A0A_0,加噪得到:

Ak=αˉkA0+1−αˉkϵ,ϵ∼N(0,I).A_k=\sqrt{\bar\alpha_k}A_0+ \sqrt{1-\bar\alpha_k}\epsilon,\qquad \epsilon\sim\mathcal N(0,I).

原文先用预测噪声的通用公式介绍扩散,但实现明确采用 sample prediction,即预测干净动作。教学损失应相应写为:

Lsample=E∥A^0,θ(Ak,k,z,q)−A0∥2.\mathcal L_{\rm sample} =\mathbb E\|\hat A_{0,\theta}(A_k,k,z,q)-A_0\|^2.

zz为三维表示,qq为机器人状态。不能只照抄噪声预测公式,然后声称是本文实际训练目标。消融专门比较了两种参数化。

优化的是示范动作去噪误差;机制是空间表示与条件动作生成;改善指标是任务成绩和训练收敛。没有把“点离目标近”作为奖励。

扩散时间kk不是机器人时间tt。推理10次去噪不会要求环境前进10步;执行块才决定环境何时重新获得反馈。

最大池化也有明确的盲点。若全局特征为 zj=max⁡ihj(pi)z_j=\max_i h_j(p_i),pip_i 是第 ii 个点、hjh_j 是逐点网络的第 jj 维输出,那么重复任意已有点不会改变 zjz_j。所以它自然忽略采样顺序,也可能忽略点密度携带的信息;排列不变并不是无损三维表示。

教学例:一块薄透明边缘漏掉所有深度点后,再好的池化也无法从该帧恢复它。裁剪和最远点采样能节省算力,却会让传感缺失与小物体分辨率成为新瓶颈。原文空间表示消融检验的是给定深度与预处理条件下的效果,不能推广成任何相机与标定条件下都比RGB可靠。原文点云表示与实验消融

自构例子与前置概念

教学例子,未运行。 同一个碗沿相机视线远离10厘米,RGB外观主要表现为缩小,点云则明确给出深度增加。策略可以更容易学习“末端追踪碗的位置”,这是合理的几何收益。

如果深度标定整体偏了3厘米,点云会把错误位置当作确定几何。此时图像策略与点云策略谁更好,需要看各自数据和误差适应,不存在三维输入永远占优的定理。

再把一个绿色方块换成同形红块,无色点云几乎不变,动作也可能保持。但若命令要求绿色而不是红色,此不变性反而阻止正确决策。表示是否好,取决于哪些信息应忽略、哪些应保留。

三、裁剪并编码点云,再采样条件动作块

稀疏点集先经过坐标与工作区处理,紧凑编码器提供扩散条件。最大池化带来点顺序不变性,却不自动赋予空间旋转等变。

训练:
    从示范取历史深度、机器人状态与动作块
    用相机标定反投影为点云
    裁剪工作区、最远点采样、去除颜色
    逐点MLP → 最大池化 → 视觉特征
    随机选扩散时间,给动作块加噪
    条件UNet预测干净动作块,最小化重建误差

执行:
    用相同点云处理获得条件
    从高斯动作块开始,执行DDIM去噪
    取与当前时刻对齐的动作子序列执行
    读取新观测,重新生成

四、分开观测表示消融与任务总体平均

作者声称这种简单表示更高效、更能泛化。模拟与真实结果支持在所测任务上的整体优势,但优势不是每个任务都成立,也不等于点云输入自动提供旋转等变性或安全约束。

原图怎么读: 图2,原论文图注与图像。上部区分训练与评估,下部从单视角点云、轻量编码到动作扩散。三维数据是条件输入,去噪输出仍是动作,不是生成新的点云场景。

原文标注 CC BY 4.0。本页摘图仅保留图形区域并作栅格化;有面板重排的图另行注明,作者与原文入口见各图注。

3D Diffusion Policy: Generalizable Visuomotor Policy Learning via Simple 3D Representations,图2: 图2,原论文图注与图像。上部区分训练与评估,下部从单视角点云、轻量编码到动作扩散。三维数据是条件输入,去噪输出仍是动作,不是生成新的点云场景。
原图摘引:Yanjie Ze 等,2024,arXiv v2,HTML S2.F2,图2。核对原文。 图2,原论文图注与图像。上部区分训练与评估,下部从单视角点云、轻量编码到动作扩散。三维数据是条件输入,去噪输出仍是动作,不是生成新的点云场景。

结果图怎么读: 内嵌图5直接给出12个仿真任务的学习曲线:红线是DP3,蓝线是图像扩散策略,横轴为训练步数,纵轴为成功率。相同任务内看收敛速度和最终水平;这些训练步数不是新增真机交互数,仿真优势也不能直接替代真机安全性验证。

3D Diffusion Policy: Generalizable Visuomotor Policy Learning via Simple 3D Representations,图5:内嵌图5直接给出12个仿真任务的学习曲线:红线是DP3,蓝线是图像扩散策略,横轴为训练步数,纵轴为成功率。相同任务内看收敛速度和最终水平;这些训练步数不是新增真机交互数,仿真优势也不能直接替代真机安全性验证。
实验图原图摘引:Yanjie Ze 等,2024,arXiv v2,HTML S4.F5,图5。核对原文。原版权保留。
项目 设置 解读边界
模拟范围 72任务、7领域,多种模拟器 MetaWorld占50任务,平均受其影响大
示范 大多数10条;DexArt与HORA为100条 不应统称全任务10条
来源 人类、脚本或RL专家,按领域变化 专家获取成本不同
真实范围 Franka搭Allegro或夹爪,4任务各40示范 单视角深度,非通用多任务模型
输入 深度84×84反投影,稀疏无色点云 比RGB基线增加度量深度信息
更新 MetaWorld1000 epoch,其余3000,batch128 epoch不是环境交互量
扩散 训练100步、推理10步 不是100次环境动作
模拟评价 3种子,每200 epoch评20回合,取最高5次均值 偏最佳训练期,非只看最终模型
真实评价 每任务10次;泛化多为每变化1次 单条件统计较弱
未逐项核实 实际端到端延迟、训练GPU总时长 不将网络FPS视作控制闭环频率

原文附录用H=4,Nobs=2,Nact=3H=4,N_{\rm obs}=2,N_{\rm act}=3,对比扩散基线也采用该设置。长短预测范围消融有助于排除仅因基线块长度不合适造成的差异。

同图像分辨率不等于同信息预算:点云来自深度和标定。更适合问的是“具备相同深度时如何利用”,因此 RGB-D、深度图与点云消融比单纯 RGB 对比更能说明表示设计。

五组证据及其强弱

证据1:表I 的总体结果。 DP3汇总74.4,图像扩散59.8;作者报告相对提升24.2%。以表中四舍五入数计算为(74.4−59.8)/59.8≈24.4%(74.4-59.8)/59.8\approx24.4\%,不能伪装成精确重算一致。附录还说明 HORA 使用归一化回报,因此总体并非严格纯成功率平均。DexDeform 上87.8低于基线90.5,是明确例外。

证据2:表IV–VI 的表示与编码器消融。 点云优于所测深度图、体素等编码组合;去掉 PointNet 的部分组件后结果明显改善。支持控制特征设计重要,不证明所有更大点云网络必然失败。改变表示同时改变编码器,其比较不是只改变一个数学变量。

证据3:表VII 的细节。 不裁剪点云使平均表现明显下降;但 Door 单项反而更高。说明裁剪是有效先验,可能同时删除特定任务有用信息。加入颜色也不是每项都坏,不能把“不要颜色”当作普遍法则。

证据4:表VIII 的真实结果。 四任务均值85%,图像扩散35%,增加50个百分点;但每项只有10次,且任务间标准差不能替代重复训练的不确定性。Roll-Up与Dumpling使用的是橡皮泥操作,不能写成自主制作可食用食品;Drill目标是用钻具接触物体,不是验证真实钻孔工艺。

证据5:表IX–XIII 的泛化与违规。 新位置测试4/5成功,换色5/5,视角3/3,但每个条件通常只测一次,且改变相机后手动调整点云裁剪。主任务中未出现需人终止的危险动作,是有限协议下的观察,不能证明系统具有安全约束。实验与附录。

作者对三维“必要性”的表述应限定为所选任务、数据量和基线实现。基线增加深度、预训练或数据增强后可能改变结论,这篇并没有穷尽这些选择。

原机制图表补充定位:表V。

五、深度标定、裁剪和颜色语义仍有代价

代价首先是传感器和标定。透明、反光、细线物体的深度可能不完整;单视角无法观察遮挡面。稀疏下采样提高效率,也可能丢掉薄结构和精细接触边缘。

去颜色带来对纹理变化的鲁棒性,同时移除了区分同形异色物体的依据。若任务是“只拿红杯子”,不加入语言与颜色的原始DP3不能凭几何判断正确目标。这不是算法犯错,而是输入缺少任务所需信息。

作者承认极长时程尚未研究。本文进一步分析,64维全局池化可能压缩掉对象身份关系;在更多物体与组合指令场景中,局部关系表示可能比继续扩大同一种全局向量更重要。这是待实验的推断。

追问:点云工作区裁剪提高效率时,怎样检查它是否删掉了必要障碍?

参考答案:应记录裁剪坐标系与边界,并在边界附近设置物体或障碍变化的测试。若重要几何在编码前已被删除,更强点网络也无法恢复它。需同时比较点数、推理成本和任务失败位置,区分有效降噪与信息丢失;固定工作区的成功不能直接推出开放场景安全。

六、沿机制关系继续读

DP3直接承接Diffusion Policy的动作生成框架,主要改变观察表示;与PerAct是平行三维策略,点集压缩和体素动作分类的计算、精度瓶颈不同。

七、自测三题与参考答案

问题1:DP3的“3D”是生成三维点云吗?

答案:不是。点云是条件输入,扩散生成的是机器人动作序列。把两者混淆会误认为它学习了场景生成模型或物理模拟器;原方法并没有这种目标。

问题2:最大池化是不是让策略自动对旋转泛化?

答案:它只让点排列不影响全局特征。旋转会改变每个点坐标,普通MLP输出可以随之任意改变。旋转泛化需要数据、坐标设计或显式等变结构支持,不能从池化性质推出。

问题3:0次安全违规是否说明DP3比带安全控制器的方法更安全?

答案:不能。这里是在有限主任务试验中按需人终止的行为定义违规,没有证明硬约束,也未在统一风险暴露下比较安全控制器。应报告具体试验次数、扰动与违规定义,再讨论其实际意义。