自动化创建 Digital Cousin(ACDC)笔记
前端时间的学习分享契机,遇到了一个有意思主题 “数字表亲(Digital Cousin)”,把幻灯片整理记录一篇学习笔记。
论文的全名是Automated Creation of Digital Cousins for Robust Policy Learning
,作者是斯坦福大学李飞飞带队的AI研究团队。论文结构清晰、简明扼要,我作为小白读者也可以学到很多知识。
从我的阅读角度的三个循序渐进的脉络是:
- 背景:为什么会提出 Digital Cousin?
- 介绍 Digital Cousin 的自动化生产流程(ACDC),以及其中使用的主要AI技术
- 针对 Digital Cousin 的机器人策略训练的实验结果和结论
Why Digital Cousin?
数字孪生/Digital Twin是个现有概念, Digital Twin 是对真实世界中的物理对象、过程、关系或行为的虚拟表达。Digital Twin 追求的是 1:1 高度仿真还原。
聚焦到机器人策略学习这个行业,Digital Twin 的应用已经非常深入且普遍了,一些大型的工厂车间、仓储物流厂商已经在用 Digital Twin场景中训练自己的机器人了。
扩展阅读:
举个例子,视频中是亚马逊的仓储物流管理车间,视频左侧是 Digital Twin 机器人策略训练的虚拟场景,右侧是现实世界场景。
由 Digital Twin 仿真环境预训练的机器人手臂,可以在实际场景尽可能地完成各种工作。 可以用于提升流水线上的工作效率,和帮助改善人类员工的工作舒适度。
这是另外一个例子,台湾和硕科技公司的智能生产和质检机器人,可以执行实际生产线上的非常有挑战性芯片分拣任务。
这两个例子的 Digital Twin 及机器人训练都是在 NVIDIA Ominiverse 云平台中进行训练的。通常这样的商业训练环境非常昂贵,而且由于训练场景精细单一,机器人往往是用来执行专业的单项任务。
基于 Digital Twin 机器人策略训练的两大痛点:高昂的成本,无法支持跨域的泛化能力。研究团队提出了 Digital Cousin 的概念,并为其量身定制了一套自动化生产流程。 Digital Cousin 是对原始物理场景的一个近似虚拟,不苛求一模一样,但追求相似的 几何结构 和 近似的语义呈现。
例如下图,Digital Cousin 复述了对原场景的抽象,一个三人布艺沙发,一个单人布艺沙发,前面一个方形小茶几;茶几上发了一个木质盒子和一个球。
Digital Twin 可能只有一个正确答案,但是Digital Cousin 就会有无限多个解。 在具体的实验中, Digital Cousin的Candidates 会是通过近似程度定量打分的一个集合。
ACDC 及 AI 技术
总体上分三步,就是将现实场景的中的一张RGB照片,第一步, 从照片中提取场景信息,第二步,在一个3D模型资源库中匹配符合筛选条件的3D模型,第三步,重组这些找到的单体模型创建数个 Digital Cousin 3D 场景出来。
1 提取
第一步提取信息,主要为了获取 分割后的场景中对象掩码图片和相关的文本标注,以及深度信息。
首先将现实场景的照片交给 GPT,结合作者设计的 Prompt 对照片中的部分进行自动标注和文字描述。只有GPT返回的文字描述还远远不够,还需要对图片进一步的加工,对图片进行分割和对象提取,得到图中各个对象的掩码图片。这里使用了 Grounded SAM v2 这个开源AI图像处理框架,它包含了多个图像处理模型,如 Grounding DINO 和 Segment Anything Model 2。这个框架可以基于文字提示词,对图片,甚至可以对视频中的对象进行识别、自动标注、分割和追踪。GPT 的第二轮工作是将Grounded SAM 2 输出的掩码图片和它对应的标签做筛选同步,得到准确的文字描述和单一对象掩码图片。
信息提取中的另一个平行分支是进行深度估计。 我们知道,图片的分割标记都是二维工作,但是如果想实现从2D图片到3D场景的飞跃,就必须引入场景深度的计算。这里使用的 AI 模型是 Depth Anything v2, 这是一个非常犀利的单目深度估算模型。所谓单目/Monocular,也就是单一相机或单一照片输入的意思。如果是多个相机机位,深度计算更接近数学问题。但是单目深度计算就是结合了对图片内容理解的估算,正是AI擅长的领域。 Depth Anything v2 得到的就是深度数据集输出,这项研究中采用了 点云的数据形式。
2 匹配
拿到提取的对象掩码图片和文字描述,就可以到一个现有的 3D模型资源库中去按图索骥。研究团队用了斯坦福大学的 BEHAVIOR-1K 这个3D模型数据集,但实际论文指出ACDC的工作流不限于使用这一个数据集。
匹配过程主要分两大步, 定性分类和定量筛选:
在第一步定性分类过程中使用了 Open AI 的 开源模型 CLIP(Contrastive Language-Image Pretraining); CLIP 是一个基于大量文字标注图片的预训练模型,它是建立了文字和图片连接的优秀模型。文字标签和对象掩码图片交给CLIP ,输出一波相匹配的模型快照,得到符合类别的3D模型集合。
下一步是定量筛选, 再介绍一个图像处理模型,DINO v2 (Distillation with No Labels) 是 Facebook/Meta 发布的开源模型,它的特色在自监督训练的图片识别模型,不依赖文字标注。
例如筛选单人沙发,可以从图片的近似测量指标方面将最匹配的模型过滤出来。 DINO V2 对图片中模型的朝向也可以感知,因此还可以继续在多个选项中选出方向最优的模型。
DINO v2,除了相似图片对象检索,图像分割等基本功能,它还能实现很多不可思议的工作,例如 Sparse Matching/稀疏匹配,深度估算等等。
3 生成
最后一步 结合提取过程生成的 深度估算数据点云,和层层筛选得到的 单个 3D模型, 进行 Digital Cousin 场景的生成。
主要实现方法是,将3D模型的中心放置到 点云中对象的几何中心,再去缩放模型比例。并根据模型在照片中和墙壁和地面的邻接关系进行3D模型的摆放。
最终,在技术上实现了从单张照片到多个 Digital Cousin 场景的自动化生成。
实验与结论
Digital Cousin 场景的生成的性能和质量是否满足机器人策略学习的要求? 这是需要严格实验检验的,这部分不是 ACDC 生产工艺的内容,但是对这套生产工艺的证明至关重要。 研究团队也做了较大篇幅的实验和测试。
我们简单看一下,主要围绕这4个关键问题进行实验和采集结果。
- ACDC 可以生产高质量的 Digital Cousin 场景吗? 给定一张RGB图片,Digital Cousin 场景中能否捕捉原始场景中固有的高级语义和空间细节?
- 初始设定下,基于 Digital Cousin训练的策略和基于Digital Twin 训练的策略是否相当?
- 域外设定下,基于 Digital Cousin 训练的策略是否比基于Digital Twin训练的策略表现更优?
- 基于 Digital Cousin 训练的策略是否能够实现零样本模拟到现实的策略迁移?
实验
针对每个问题都有专项的试验来检验:
第一项实验 Real to Sim 从现实到虚拟,从一张照片得到多个Digital Cousin 场景,这个实验结果直观上可见语义和空间细节都还原的很好,并且生成过程有多项测量参数可以支持评估。回答第一个问题。
第二项实验 Sim to Sim 从虚拟到虚拟,用于回答第2和3问题。 也就是对比在相同初始条件下,Digital Cousin 训练的策略是否比 Digital Twin 相匹配? 并且进一步对比域外分布情况下,Digital Cousin是不是可以更稳健而胜出?
这里有三个现实任务,开柜门,开抽屉,放碗。 横轴是 DINO EmbeddingDistance 表示场景间的差异, 实验目的是测量随着差异的增加,机器人策略的成功比率。通过图表明显可以看到,靠右侧差异较大的场景中,通过Digital Cousin 训练的策略更加稳健,成功率更高。
实验中的具体任务结果动图, 柜子形状或比例发生变化的时候,Digital Twin 训练的策略的机械手臂无法打开柜门或抽屉。第三项实验,用于回答第四个问题 基于 Digital Cousin 训练的策略是否能够实现零样本模拟到现实的策略迁移?
这个问题至关重要,是理论走向现实的重要检验。 研究团队使用一个真实的 宜家衣柜和它的Digital Twin,生产了一系列 Digtial Cousin 场景,再基础之上分别进行策略训练。 然后让真实的机械手臂去打开现实世界的柜门,Cousin获得了优异的成绩。最后一项综合实验,从拍照到生成场景训练到实际场景测试,机器人也出色的完成了任务。
总结
结论:
Digital Cousin 可以从一张真实世界RGB照片自动化创建。在这些 Digital Cousin 场景之上训练的策略比在 Digital Twin 场景上训练的策略更加鲁稳健,同时具有相当的域内性能和更优秀的跨域泛化能力,并实现了零样本模拟到现实的策略迁移。
已知限制:
- ACDC创建的场景的多样性受到模型资产库的限制。
- ACDC是在几个AI大模型的基础之上创建的,相应的继承了这些限制。
- ACDC上训练的机器人策略还有很大提升空间,可从策略训练的新技术如 Diffusion 中受益。
参考
- 论文:https://arxiv.org/abs/2410.07408
- 博客:https://digital-cousins.github.io/