1. 论文概述与核心贡献
这篇由上海期智研究院、上海交通大学、清华大学交叉信息研究院和上海人工智能实验室联合发表的论文《3D Diffusion Policy: Generalizable Visuomotor Policy Learning via Simple 3D Representations》,提出了一种创新的机器人视觉运动策略学习方法。该方法通过结合3D点云表示和扩散模型,显著提升了模仿学习的效率和泛化能力。
核心突破在于:传统基于2D图像的扩散策略通常需要100-200次人类演示才能学会一个任务,而DP3(3D Diffusion Policy)仅需10次演示就能达到更好的性能。这主要得益于3D几何信息的有效利用,使得模型能够更好地理解空间关系,从而在视角变化、物体外观变化等场景下展现出更强的鲁棒性。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术背景与问题分析
2.1 传统方法的局限性
当前主流的视觉模仿学习方法主要面临三个关键挑战:
-
数据效率低下:大多数基于深度学习的策略需要大量的人类演示数据,这在现实场景中成本极高。收集数百次完美演示不仅耗时,在某些复杂任务中甚至不现实。
-
泛化能力不足:基于2D图像的方法对视角变化、光照条件和物体外观(颜色、纹理)的变化非常敏感。训练时看到的视角和测试时的视角稍有不同,性能就可能大幅下降。
-
安全隐患:2D方法由于缺乏对3D空间的准确理解,经常会产生不安全的动作,比如让机械臂撞向桌面或自身。
2.2 3D表示的优势
与2D图像相比,3D点云具有几个独特优势:
- 几何不变性:点云表示不受视角变化的影响,同一个物体从不同角度观察,其3D结构是不变的。
- 信息密度高:去除了2D图像中的冗余纹理信息,专注于几何结构,使模型更容易学习到本质特征。
- 空间关系明确:直接包含深度信息,使机器人能准确理解物体间的空间关系,避免碰撞等危险动作。
3. DP3方法详解
3.1 整体架构设计
DP3采用两阶段架构:
- 感知模块:将原始传感器数据(深度图)转换为紧凑的3D特征表示
- 决策模块:基于扩散模型的动作生成器,以3D特征为条件生成动作序列
这种解耦设计既保留了3D几何信息,又利用了扩散模型在连续动作空间中的强大生成能力。
3.2 感知模块实现细节
3.2.1 点云预处理流程
-
深度图转点云:使用相机内参将单视角深度图转换为3D点云。论文中采用84×84的分辨率,平衡了信息量和计算开销。
-
背景去除:通过预设的3D边界框(Bounding Box)裁剪掉无关的背景点,只保留任务相关区域。这一步大幅减少了后续计算量。
-
最远点采样(FPS):将点云下采样到512或1024个点。FPS能更好地保留原始点云的几何特征,相比随机采样或体素化,对后续任务更有利。
3.2.2 点云编码器设计
作者采用了极简的三层MLP结构:
- 每层MLP后接LayerNorm和ReLU激活
- 最后使用最大池化(Max-pooling)聚合全局特征
- 最终输出仅64维的紧凑特征向量
这种轻量设计使得整个模型可以端到端训练,同时保持实时推理能力(在论文报告的实验中达到10Hz的控制频率)。
关键设计选择:不使用复杂的PointNet++或Transformer结构,是为了避免过拟合,特别是在小样本场景下。实验证明,简单的MLP配合最大池化已经足够捕获任务相关的几何特征。
3.3 决策模块:扩散策略实现
3.3.1 扩散模型基础
扩散模型通过逐步去噪的过程生成数据。在动作生成场景中:
- 从随机噪声开始
- 通过多步迭代(论文中使用10步DDIM)
- 逐步 refine 动作序列
条件信息(3D特征+机器人状态)通过cross-attention注入到扩散模型中。
3.3.2 动作表示
采用6维向量表示每个时间步的动作:
- 3维平移 + 3维旋转(轴角表示)
- 对于机械臂控制,通常预测未来1-2秒的动作序列(10-20个时间步)
3.3.3 训练目标
采用标准的扩散模型损失:
code复制L = MSE(ϵ_k, ϵ_θ(α_k a_0 + β_k ϵ_k, k, v, q))
其中:
- ϵ_k是真实噪声
- ϵ_θ是模型预测的噪声
- v是3D视觉特征
- q是机器人状态
作者特别指出,采用"样本预测"(Sample Prediction)比传统的"噪声预测"(Epsilon Prediction)在动作生成质量上表现更好。
4. 数据设计与训练策略
4.1 数据采集方案
4.1.1 仿真数据生成
在仿真环境中,采用两种方式生成演示数据:
- 脚本策略:针对规则任务(如抓取固定位置的物体)
- RL智能体:通过强化学习训练专家策略,用于更复杂的任务
4.1.2 真实世界数据收集
使用两种遥操作方式:
- 键盘控制:适用于简单动作
- 视觉重定向:操作者通过视觉反馈引导机器人完成动作
4.2 关键数据设计选择
-
单视角点云:虽然多视角能提供更完整信息,但会增加系统复杂度。实验证明单视角已足够。
-
去除颜色信息:刻意忽略RGB信息,迫使模型专注于几何特征,从而提高对物体外观变化的鲁棒性。
-
动作空间设计:采用末端执行器的位姿变化(Δpose)而非绝对位置,更易于学习。
5. 实验结果与分析
5.1 仿真环境测试
在7个不同领域的72个任务上进行评估:
- 机械臂操作(抓取、放置、装配)
- 灵巧手操作(旋转、捏取)
- 移动操作(导航+操作)
关键结果:
- 仅需10次演示,DP3就超越了需要100+演示的2D扩散策略(相对提升24.2%)
- 在视角变化测试中,DP3的成功率比2D方法高31.5%
- 推理速度达到10Hz,满足实时控制需求
5.2 真实世界验证
四个挑战性任务:
- 包饺子(面团变形操作)
- 卷起柔性物体
- 在障碍物间导航抓取
- 工具使用(如用铲子转移物体)
仅用40次人类演示,平均成功率就达到85%。特别值得注意的是:
- 零样本泛化:训练时使用的物体和测试时不同(不同形状的饺子皮)
- 安全性:没有出现机械臂碰撞或危险动作
5.3 消融实验
作者进行了系列消融研究验证设计选择:
- 点云vs体素:点云表示比体素化表现更好(+12.3%)
- 3D vs 2D:3D特征比2D图像特征提升显著(+24.2%)
- 采样点数:512 vs 1024点差异不大(<3%),说明模型对点数不敏感
- 特征维度:64维比128维更好,说明小特征尺寸有助于防止过拟合
6. 实际应用建议
基于论文结果和实践经验,给出以下部署建议:
6.1 系统配置
-
硬件要求:
- 深度相机(如RealSense D435)
- 中等算力GPU(RTX 3060及以上)
- 实时控制系统(1kHz以上控制频率)
-
软件栈:
- PyTorch实现
- ROS2用于机器人控制
- Open3D用于点云处理
6.2 调参技巧
-
扩散步数:
- 训练时:100-200步
- 推理时:10步(DDIM加速)
-
学习率:
- 初始lr=1e-4
- 使用cosine衰减调度
-
批量大小:
- 小样本时:8-16
- 大数据时:32-64
6.3 常见问题排查
-
动作抖动:
- 增加动作序列的时间平滑项
- 降低扩散步长
-
泛化不足:
- 确保训练数据包含足够的几何变化
- 尝试数据增强(随机旋转、缩放点云)
-
推理速度慢:
- 减少点云采样点数(可降至256)
- 使用TensorRT加速
7. 未来扩展方向
虽然DP3表现出色,仍有改进空间:
- 多模态融合:在必要时加入触觉或力反馈信息
- 动态场景:扩展到非刚性物体和动态环境
- 自监督学习:减少对人类演示的依赖
- 长期规划:结合大语言模型进行高层任务分解
在实际部署中发现,将DP3与传统的运动规划器结合使用效果更好——DP3负责高层动作生成,传统规划器处理避障等底层安全约束。这种混合架构既保留了学习方法的灵活性,又确保了系统的可靠性。
