三维部件魔法拼装! 北大&斯坦福利用动态图网络学习生成

语言: CN / TW / HK

  本文是第三十四届神经信息处理系统大会(NeurIPS 2020)入选论文《生成式的基于动态图网络学习的三维部件拼装(Generative 3D Part Assembly via Dynamic Graph Learning)》的解读,首发于知乎。

  知乎原文:

  https://zhuanlan.zhihu.com/p/265319518

  项目主页:

  https://hyperplane-lab.github.io/Generative-3D-Part-Assembly/

  论文链接:

  https://arxiv.org/pdf/2006.07793.pdf

  代码仓库:

  https://github.com/Championchess/Generative-3D-Part-Assembly

  

  1

  引言

  三维形状的部件拼装,是计算机视觉、图形学领域的基本问题。如图1所示,三维部件拼装在数学上可以形式化为对于各个输入部件的位姿估计(pose estimation)问题,即给定各个部件在各自规范空间(canonical space)中的布局,目标是组成一个完整的形状。三维部件拼装有着很广泛的应用,比如从家具城买回来一堆家具的部件,或者工厂当中有一堆杂乱摆放的零件,这时候则需要机器人把这些零散的部件组装成完整的、可供使用的整体。

  尽管目前已有很多工作利用深度学习方法进行部件拼装,然而这些方法都至少有以下几个局限性之一:1. 每个部件的几何形状都可以任意生成,没有限制;2. 假设了每个部件初始的时候都是已经旋转好了的;3. 假设机器人知道关于整个三维几何形状的先验知识。为了让训练出来的模型能够更好地在真实的场景中完成部件拼装的任务,在我们的任务设定当中,每个部件的几何形状都是给定、不能更改的,机器人不知道关于整体形体的任何先验知识,并且需要预测每个给定输入部件的包括旋转、平移在内的六自由度位姿。

  为解决这一新设定下的部件拼装问题,我们提出了一个基于迭代式图神经网络(iterative graph neural network)的动态图神经网络学习(dynamic graph learning)的框架。在这一框架下,机器人通过对各个部件几何形状的观察和推理去隐式学习各个部件之间的关系,并将这一隐式学到的部件关系应用到部件拼装任务当中,甚至达到了比使用给定各部件之间真实连接关系更好的效果。这一框架,为分析机器学习过程中“机器是如何学习的”,提供了启示。

  图1. 三维形状的部件拼装任务

  2

  方法

  给定一个原始的三维点云 ,我们的目标是对每一个输入的部件 去预测一个六自由度的部件位姿 ,用预测的位姿对每一个输入的部件 做变换得到变换后的部件 ,这些变换后的部件则一起构成机器人最终拼装出来的三维几何体 。

  我们的架构由迭代式的图神经网络骨架(iterative graph neural network backbone)、动态关系推理模块(dynamic relation reasoning module)和动态部件聚合模块(dynamic part aggregation module)组成,总的框架结构如图2所示。

  迭代式的图神经网络骨架:我们在每一轮迭代的时候对图中每一个结点做一次信息传递(message passing)以更新这个结点的潜表达:

  ,

  其中, 是点 j 传递给点 i 的信息。此外,我们还根据当前轮每个结点的潜表达、上一轮对这个结点代表部件的位姿预测、这个结点代表部件初始几何信息去更新这个结点代表部件的位姿预测:

  动态关系推理模块:每一轮迭代时,我们根据当前图的各个结点代表部件的位姿去动态更新图中边的权重:

  ,

  并按照当前图中边的权重加权对每一个结点做信息传递以更新这个结点的潜表达:

  动态部件聚合模块:偶数轮迭代时,我们把代表每种等价类部件(geometrically-equivalent parts)的结点聚合成一个结点 ,从而在一个稀疏点集(sparse node set)上进行信息传递;奇数轮迭代的时候,我们又把这些聚合了的结点分开(unpool)成独立的结点,从而在稠密点集(dense node set)上进行信息传递。

  以上各个模块具体的实现和训练细节请参见论文。

  

  图2. 我们部件拼装动态图神经网络的框架结构

  3

  实验结果

  我们的实验是在 PartNet [1] 数据集上进行的。我们和之前一些方法(如 ComplementMe [2], PQ-Net [3] 等)的变体以及我们自己方法的几个变体都进行了对比,展示了定性和定量的结果,证明了我们的方法在部件拼装任务中的优越性。图3展示了定性的对比结果(左),此外,利用 VAE 类似的思想,我们的方法还可以产生多模态的输出(右)。

  

  图3. 不同方法在部件拼装任务上的对比(左)以及我们的方法可以产生多模态的输出(右)

  最有意思的是,我们的网络在学习拼装部件的过程中能够隐式地学习到各个部件之间的关系,如图4所示。我们可以观察到,奇数步的时候呈现出相同的模式(pattern),偶数步的时候亦呈现出另一种相同的模式(关于模式的详细分析请参见论文)。总体而言,较为中心的部件(central part)(如back, seat)相比于较为边缘的部件(peripheral part)(如 leg, arm)发出的关系权重更多,而接收的关系权重更少。结合信息传递的过程,我们可以分析得到,中心部件更多地主导了部件拼装的过程。

  

  图4. 动态图网络隐式学习到的各部件之间的关系。橙色表示4个最大的关系权重,黄色表示最小的关系权重。纵列表示发出关系权重的部件,横排表示接收关系权重的部件。

  为了进一步佐证这个结论,图5进一步可视化了我们的迭代式图神经网络拼装部件的过程。可以发现,我们的模型在没有任何外界直接监督的情况下隐式地学会了渐进式地(in a coarse-to-fine manner)拼装部件:在开始的几步先拼好中心部件(back和seat),接着边缘部件(arm 和 leg)会根据中心部件的位姿来调整自己的位姿,最终“由粗到细”地完成部件的拼装。

  

  图5. 迭代式图神经网络拼装部件的过程

  4

  总结

  本文提出了一种更贴近实际的(practical)的部件拼装问题,并设计了一个基于动态图网络学习的可以生成多模态拼装的方法。我们的方法揭示了动态图网络学习在部件拼装任务中的优越性,并为分析“机器是如何学习的”提供了思路。未来可能的研究方向包括考虑融合部件关节信息以及更高阶的部件之间的信息等来达到更好的部件拼装效果。

  参考文献

  [1] Kaichun Mo, Shilin Zhu, Angel X Chang, Li Yi, Subarna Tripathi, Leonidas J Guibas, and Hao Su. Partnet: A large-scale benchmark for fine-grained and hierarchical part-level 3d object understanding. CVPR, 2019.

  [2] Minhyuk Sung, Hao Su, Vladimir G Kim, Siddhartha Chaudhuri, and Leonidas Guibas. Complementme: weakly-supervised component suggestions for 3d modeling. ACM TOG, 36(6):1–12, 2017.

  [3] Rundi Wu, Yixin Zhuang, Kai Xu, Hao Zhang, and Baoquan Chen. Pq-net: A generative part seq2seq network for 3d shapes. CVPR, 2020.

分享到: