占用网络:通过学习粒子动力学进行4D重建
2020年01月13日 由 KING 发表
795988
0
下面是马克斯·普朗克智能系统研究所研究人员的客座文章。在本文中,研究人员描述了一种从图像或稀疏点云进行密集4D重建的新方法。
[video width="1280" height="720" mp4="https://www.atyun.com/uploadfile/2020/01/Occupancy-Flow-4D-Reconstruction-by-Learning-Particle-Dynamics.mp4"][/video]
在我们的世界中进行交互和导航的智能代理必须能够以3D推理。因此,近年来,对于基于学习的3D重建引起了很多兴趣。此类技术使用神经网络来处理一些输入信息(例如图像或稀疏点云)并输出单个对象或场景的3D几何形状。
3D重建中的一个特殊挑战是我们使用的输出表示,即几何图形的表示。一方面,这种表示应具有足够的表现力,以使我们可以表示现实世界中出现的所有复杂几何形状。另一方面,该表示应与现代机器学习技术(特别是深度学习)一起很好地工作。
最近,我们的小组提出了一种新的基于学习的3D重建输出表示形式,称为“ 占领网络”,其中,几何图形通过深层神经网络表示,该网络将对象的内部与外部区分开。我们发现,这种表示既强大到足以表示复杂的几何图形,又非常适合深度学习范例。它不仅可以在对象实例上而且还可以在查询点上有效地并行化,从而使我们能够充分利用最新的NVIDIA GPU。
例如,这允许我们训练一个神经网络,该网络可以从稀疏的3D点云中重建人类。
使用进行培训NVIDIA GPU的RTX与cuDNN -accelerated PyTorch深度学习的框架。
挑战
尽管这很好用,但这种情况并不完全现实:在现实世界中,物体在运动,因此人类不会静止不动,而会运动。因此,我们的输入将看起来像这样:
当然,我们可以单独对待每个时间步骤,并将其应用到网络中。但是,这将非常慢(毕竟我们无法重用先前时间步长中的信息),甚至更糟的是,我们在各个时间步长之间没有任何对应关系。2秒后指尖在哪里结束?我们不知道,因为我们无法在稍后的时间步骤中识别出身体上的特定点(例如,手指尖)在哪里。我们可以做些比这更聪明的事情吗?
方法
我们在该项目中的主要见解是,我们可以分别表示3D实体的形状和运动(“解缠结”)。我们不仅使用占用网络,还使用两个网络:占用网络和速度网络。占用网络代表3D对象的形状,而速度网络定义3D空间中随时间变化的运动场。我们可以将其可视化如下:
在推论过程中,我们可以使用占用网络(如先前的论文)在时间0处提取网格,然后通过求解一个常微分方程使用速度网络在时间上向前传播顶点。
在训练过程中,我们以3D形式对随机点进行采样,然后及时返回以确定这些点在时间0处的位置。然后,我们评估这些假设位置处的占用网络,并与采样时间的地面实际占用率进行比较。这样,我们甚至不需要训练数据中不同时间步长之间的对应关系!但是,如果给出了它们,我们可以通过将点跟随矢量场的位置与应该去的位置进行比较来轻松地合并它们。
总而言之,关键思想是我们解开3D对象的形状和运动。当我们使用连续速度网络进行运动表示时,我们会自动获得时间步长之间空间中每个点的对应关系。这也使推理步骤快得多!
实验
让我们再次从引言中查看我们的示例。此示例中的“ 入住流程”如何执行?结果如下:
我们看到,“占用流”以一种合理的方式重构了3D运动,并且正确地显示了对应关系(由颜色表示)。
在我们的论文中,我们进行了多种其他实验。例如,我们使用了一个生成模型将运动从一种形状转移到另一种形状: