以下文章来源于深圳大学可视计算研究中心 ,作者胡悦
导读
本文是VCC胡悦同学对论文 Ditto: Building Digital Twins of Articulated Objects From Interaction 的解读,该工作来自德克萨斯大学奥斯汀分校机器人感知和学习实验室,并已被发表在计算机视觉顶级会议CVPR 2022上。
项目主页:
https://ut-austin-rpl.github.io/Ditto/
该工作提出了一种基于深度学习的方法,用于生成铰链式物体的数字孪生。该方法的输入为铰链式物体交互前与交互后的点云,输出为该铰链式物体的数字孪生,其中包括运动部件和静止部件的三维重建以及相应的关节信息。该工作的方法新颖,为生成铰链式物体的数字孪生提供了新的思路,同时,该方法输出的数字孪生可以直接导入虚拟环境或者VR/AR设备之中,具有实际的应用价值。
I
引言
数据、算法与算力是构建深度学习系统最重要的三大板块,随着算法研究的突破以及AI芯片的发展,数据扮演着越来越重要的角色。其中,被认为是AI领域的下一个“北极星问题”之一的具身智能,就面临着训练数据难以获取的问题。例如,要训练一个可以帮忙干家务的家庭机器人,去真实环境中训练速度过于缓慢,而去虚拟环境中训练则需要大量的人工重建并标记好关节信息的可交互的三维模型,而这面临着高昂的人工成本。
Ditto 提出了一种端到端生成铰链式物体的数字孪生的方法,半自动地将现实中的物体生成可交互的三维模型,该三维模型可以直接导入虚拟环境之中,配合物理引擎模拟,可以帮助获取在虚拟环境中训练机器人的数据。在Synthetic和Shape2Motion数据集上,相比与Baseline和A-SDF,Ditto在重建效果和运动信息估计上取得了优越的效果。
II
技术贡献
本工作主要贡献如下:
重建现实世界中铰接物体的交互式数字孪生,并直接导入到虚拟环境中;
提出Ditto,一种端到端模型,从关节运动前后的两个视觉输入中共同学习铰接模型的关节和几何形状。
III
方法介绍
本论文提出的Ditto:是一个深度学习框架,通过交互式感知,进而构建铰接物体的数字孪生。Ditto通过结构化的特征网格和统一的隐式神经表示,共同学习零件级的几何重建和关节估计。图1说明了网络模型体系结构:先由一个双流编码器组成,它融合了两个输入点云和多个隐式解码器,用于几何结构的重建和关节估计。接着,该模型采用几何重建和关节估计相结合的损失函数联合优化。最后,本论文从隐式解码器中提取出铰接对象的显式模型。
图1 Ditto网络模型的体系架构
网络模型的使用方式,如图2所示,输入物体交互前,扫描一个点云;输入物体交互后,再对物体扫描一个点云。接着,将这两个点云输入给Ditto,Ditto则会输出一个带有关节估计、几何重建和part分割的结果集合。
图2 如何使用Ditto获得数字孪生体
IV
部分结果展示
该论文中使用了Synthetic数据集和Shape2Motion数据集中的几何模型,这两个数据集中的模型有个共同的特点,那就是其中的几何模型都是水密模型,Ditto作者提供的代码也只允许使用水密模型。该论文编写了一个模拟器模拟与这些数据集中模型部件的力学交互,接着利用编写的数据生成器,随机对任意模型中的任意部件进行随机力度的力学交互作用,最后采集模拟器中的物体的数据信息,作为训练集。
表1 两个数据集上几何重建和关节估计的实验结果
图3 Ditto重建结果:同时具有精确的几何结构和关节估计
总的实验结果见表1和图3,在Shape2Motion和synthetic两个数据集上,与baseline相比,Ditto在所有指标上都获得了更好的结果。
如图4所示,Correspondence和Global Joint方法在关节估计上表现不佳;而且,虽然baseline的方法重建出了较为精确的几何形状,但将整体的几何结构划分成各part时,还存在着鬼影和错误。相比之下,如图3所示,Ditto则实现了零件级的几何重建和关节估计。
图4 Correspondence(左)和Global Joint(右)在关节估计上误差较大,part划分时还存在鬼影和错误
本论文在synthetic数据集上进行了面向A-SDF的对比实验。如表1,当涉及到整个物体倒角距离时,Ditto明显优于A-SDF;如图5,A-SDF无法重建未见过类别物体的几何细节,尤其是如抽屉等,具有移动类型关节的物体,相比之下,Ditto则精确地重建了整个物体并还原了几何细节,如图中的柜门和抽屉的把手。
图5 Ditto重建的结果拥有比A-SDF更精细的几何结构,并且Ditto可以对关节进行显式估计
A-SDF和Ditto之间的关键区别是:Ditto使用前馈模型,A-SDF使用测试时间优化来生成关节码和形状码,而A-SDF算法性能较差的原因正是在测试时间优化过程中受到关节码和形状码的干扰。并且值得注意的是,A-SDF需要对每个物体类别(如眼镜、床头柜、冰箱等具体类别)进行单独的训练,而Ditto则是一种与物体类别无关的方法。此外,Ditto还可以显式提取关节和物体部件,优于基于隐式表达的A-SDF。因此,可以认为Ditto的任务目标更具挑战性。
最后,本论文使用Ditto来重建现实物体的数字孪生体。本论文选择了三件日常用品,一个玩具柜,一台笔记本电脑和一个水龙头。结果如图6所示,虽然深度相机输入点云有噪声且并不完整,甚至结果还存在一些伪影,但Ditto最终还是重建出这些现实物体的几何形状并估计出了较为准确的关节信息。接着,本论文将水龙头的数字孪生体导入机器人学习仿真框架Robosuite,最终使用模拟的机器人手臂与数字孪生体进行交互,并在校准模拟机器人和真实机器人动作帧后,将动作传递回现实世界。
图6 现实场景实验:本论文用经过模拟数据集训练的Ditto来构建物理对象的数字孪生。将重建的水龙头模型导入到物理模拟器中。机器人与虚拟水龙头互动,并将其动作传回现实世界,以操纵物理水龙头
V
总结与展望
本论文介绍了Ditto,一种基于隐式神经表征的模型,用于通过交互感知重建铰接物体的数字孪生,可以从关节运动前后的两个视觉输入中共同学习完整的几何重建和关节估计。结果表明,Ditto在几何和关节推理方面取得了比baseline更准确的结果。
但是,该项目仍然存在有待改进的部分:
1. 目前Ditto只将输入对象分割为两个部分,移动部分和静态部分。未来或许可以拓展Ditto的方法,重建具有多个关节和部件的复合物体的完整运动树。
2. Ditto的预测需要通过对物体交互才可以得到数据进行预测,在现实中这需要人的参与才可以进行,未来或许可以通过开发算法来自主地与对象交互并主动收集数据。
VI
思考与讨论
Q: 在进行训练的时候,如果我们的数据集中的模型不是水密的,生成的occ点云为空集,该怎么办?
A: 建议换用水密模型作为训练数据集,如果不可抗力地要使用非水密模型用于训练数据集模型,那么可以改下训练集生成代码:在为训练集生成occ点云的过程中,将距离模型一定距离的点也认为是在模型的内部,但该方法会损失一部分Ditto训练后的预测准确性。
Q: 运行Ditto进行预测,为什么有时效果特别差?
A: 有两种可能:一是,使用的点云采集自非水密的模型,或是如纸张这样体积小表面积大的物体。Ditto对于这类物体的预测能力不是很好,其期待的物体的各部件都是有体积概念存在的,输入点云也要能体现这一规则;二是,输入的两个点云中,存在“全闭”状态的点云。如图7所示,对一个柜子门,对Ditto输入门闭合时的点云和门打开时的点云,结果通常会较差,而对Ditto输入一个“半开”的点云和一个“全开”的点云,则结果要好上不少。根据以上两点调整你的输入进行预测,这样Ditto就能预测出一个比较好的结果。
图7 左边是输入“全闭”和“全开”后预测的结果,右边是输入“半开”和“全开”后预测的结果
以下是开放性问题,欢迎读者朋友留言讨论:
Q: 为什么输入带有“全闭”状态点云的两个点云,Ditto的预测效果会很差,能有什么方法避免吗?
转自:“arXiv每日学术速递”微信公众号
如有侵权,请联系本站删除!