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

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

  • 知乎原文:

  • 项目主页:

  • 论文链接:

  • 代码仓库:


三维部件魔法拼装!北大&斯坦福利用动态图网络学习生成文章插图
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)上进行信息传递 。


推荐阅读