占据网络是什么?用“这个点是否被占据”来表示三维形状
占据网络(Occupancy Network)是一种用神经网络表示三维形状的方法,由图宾根大学和马克斯·普朗克研究所等机构的研究人员在 2018 年提出,论文标题是《占据网络:在函数空间中学习三维重建》,被 CVPR 2019 接收。
三维形状怎么表示
用计算机表示一个三维物体,传统上有几种方式。体素:把空间切成许多小立方体,记录每个立方体是否被物体占据,就像三维的像素,但分辨率越高,所需的存储空间增长得极快,分辨率翻倍,存储量变成八倍。点云:用物体表面上的一堆点表示,但点之间没有连接关系,看不出表面是什么样子。网格:用很多三角形面片拼成物体表面,但用神经网络直接生成网格比较困难,拓扑结构也不好处理。这些表示方式要么受限于固定的分辨率,要么不便于用神经网络学习。
占据网络的思路
占据网络的核心想法是:不直接存储形状,而是学习一个函数。给这个函数输入三维空间中任意一个点的坐标,它输出这个点“被占据”的概率,也就是这个点在物体内部的可能性。物体的表面,就是概率等于 0.5 的那些点构成的边界。这个函数用一个神经网络来表示,网络还可以接收一张图片、一个点云等作为条件输入,于是就能根据输入重建出对应的三维形状。
这种表示的好处在于它是连续的:可以在空间中任何位置、任意精细地查询,不受固定分辨率的限制,理论上能表示任意分辨率的形状,而所需的存储只是神经网络的参数。需要可视化时,再用移动立方体等算法从这个函数中提取出网格。论文在从单张图片、点云和低分辨率体素重建三维形状的任务上,都取得了很好的效果。
影响
占据网络和同期的 DeepSDF 等工作一起,开创了用神经网络隐式表示三维几何的研究方向,被称为神经隐式表示,后来影响深远的神经辐射场(NeRF)也属于这一思路。在工业界,“占据网络”这一名称还被特斯拉等自动驾驶公司用来指代一类感知模型:把车辆周围的三维空间划分成体素,预测每个体素是否被物体占据,从而感知各种形状不规则、难以用检测框描述的障碍物,这与原论文的思想一脉相承。