众所周知,Tesla的FSD引入了Occupancy Networks技术,用来重建车子周遭的3D环境。正好笔者也看过相关的论文,趁这个机会跟大家介绍一下。
推荐阅读:下一代人工智能技术:从大语言模型(LLM)到世界模型(WM)
Tesla所设计的Occupancy Network与本文所介绍的技术并不相同,但目的都是重建voxel层级的占据预测。
常见的3D物体表面隐式表示法(如SDF),通常是用场域(Field)或函数(Function)的方式去表示。而Occupancy Networks(以下简称ONet),则是以深度学习分类器的连续决策边界来作为隐式表示。而像这样深度学习网络的隐式表示法,也常被称为Deep Implicit Fields(DIFs)。
"Occupancy networks implicitly represent the 3D surface as the continuous decision boundary of a deep neural network classifier."
下图为显式表示法(体素/点云/网格)与ONet对于公园椅的描述概貌。

ONet的概念在于,给予空间中任一点p一个介于0~1之间的占用率,因此可以将物体的占用函数表示为:

这个函数可以被视为一个分类器,而在ONet中我们尤其关注用来隐式表示物体表面的决策边界。而ONet则是以(p, x)作为input,其中x为对于物件的观察(如图像、体素等),x ∈ X。而output则是一个0~1的实数表示机率,整个ONet表示如下:

关于模型的训练,我们首先在3D物体的边界体(Bounding Volume)内进行随机采样。对第i个样本采样k个点:

其损失函数如下,其中xi是批次B(batch)中的第i个观测值,oij ≡ o(pij) 表示点pij是否实际被物体占用。L为交叉熵损失。在实践上,采用均匀方式在物体的边界框(带填充)内进行采样,可以获得最佳的训练效果。

至于在提取物体表面网格(Mesh)的推断(Inference)上,ONet提出了多分辨率等值面提取 (Multiresolution IsoSurface Extraction, MISE)的方法。该方法通过渐进式地构建八叉树(利用ONet评估空间是否被占据),再结合行进立方体(Marching Cube)算法,最终提取出高分辨率的物体表面网格。

而从内存存取的角度来看,与体素表示法相比,ONet仅需6百万个参数 即可训练完ShapeNet数据集中的4746个样本 ;而体素表示法所需的内存空间,则会随着分辨率的提升,以三次方的比例增长。

接下来,我们看看基于单一影像的3D物体重建结果,并与当时其他先进(state-of-the-art)的方法进行比较:

最后,对于论文的训练细节以及其他实验结果数据感兴趣的读者,可以进一步查阅以下论文:《Occupancy Networks: Learning 3D Reconstruction in Function Space》
