引言
在 3D 计算机视觉和图形学领域,从点云重建表面是一项基础任务。无论你是为 AR 应用扫描房间,还是为视频游戏创建资产,目标通常都是一致的: 将一堆不连贯的点转化为一个水密 (watertight) 、平滑且细节丰富的 3D 网格。
多年来,这一过程的“金标准”一直是 移动立方体算法 (Marching Cubes, MC) 。 当与神经隐式表示——特别是符号距离函数 (SDFs)——结合使用时,MC 非常可靠。然而,它有一个显著的缺陷: 它很死板。MC 在固定分辨率的网格上运行。如果你想要高细节,就需要高分辨率的网格,这会生成数百万个微小的三角形,导致巨大的文件大小和内存占用。如果你想要轻量级的文件,降低网格分辨率后,你会立即失去锐利的边缘和精细的细节。
这就造成了一个令人沮丧的权衡: 高保真 (High Fidelity) vs. 轻量级 (Lightweight) 。 通常情况下,两者不可兼得。
在这篇文章中,我们将深入探讨一篇 CVPR 论文,题目为 “High-Fidelity Lightweight Mesh Reconstruction from Point Clouds” (从点云进行高保真轻量级网格重建) 。 研究人员提出了一种新的流程,避开了传统体素网格的局限性。他们的方法不再同等对待空间的所有部分,而是根据几何形状进行自适应,在表面弯曲的地方放置更多的网格元素,而在平坦的地方放置更少的元素。

如图 1 所示,当限制在相同数量的元素 (顶点和面) 时,传统的移动立方体 (MC) 无法捕捉雕塑复杂的面部特征。相比之下,我们今天要讨论的方法 (Ours) 生成的结果几乎与真值 (Ground Truth, GT) 无法区分。
让我们来看看他们是如何做到这一点的。
背景: 均匀网格的问题
要理解这里的创新,我们首先必须了解当前的标准做法。现代重建方法通常从点云中学习一个 符号距离函数 (SDF) 。 SDF 是一个连续的数学函数,它告诉你,对于 3D 空间中的任意一点,你距离表面有多远。如果值为 0,你就位于表面上。
一旦学习了 SDF,我们需要提取网格。像移动立方体这样的算法将 3D 空间划分为均匀的立方体网格 (体素) 。它检查每个立方体角点的 SDF 值。如果一个立方体与零水平集 (表面) 相交,它就在该立方体内绘制三角形。
问题在于 均匀性 。 一面平坦的墙只需要极少的三角形来表示,而一尊细节丰富的雕像面部则需要数千个。移动立方体对墙和脸的处理方式完全相同。这导致了“冗余的网格元素”——在平坦表面上浪费了三角形——并且除非提高整个网格的分辨率,否则在细节区域就会缺乏分辨率。
研究人员提出了一种 轻量级网格重建 (Lightweight Mesh Reconstruction, LMR) 流程,摒弃了这种均匀的方法。他们的方法主要包含两个阶段:
- SDF 学习: 使用混合特征表示来学习高精度的隐式表面。
- 自适应网格生成: 根据表面曲率生成顶点,并使用 Delaunay 三角剖分连接它们。

第一部分: 学习更好的 SDF
在生成网格之前,我们需要形状的高质量隐式表示。许多以前的方法使用简单的多层感知机 (MLP) 来学习 SDF。虽然 MLP 是连续的,但它们往往难以记忆高频细节 (锐利的边缘或纹理) ,因为它们倾向于过度平滑数据。
为了解决这个问题,作者引入了 混合特征表示 (Hybrid Feature Representation) 。
结合网格与三平面 (Tri-planes)
该方法不仅仅依赖 MLP,而是在两个结构中显式存储可学习的特征:
- 体素网格 (\(\mathcal{V}\)): 特征向量的 3D 网格。这提供了强大的空间感知能力。
- 三平面 (\(\mathcal{T}\)): 存储投影特征的三个 2D 平面 (\(xy, yz, zx\))。这有助于保持平滑性并减少纯体素网格有时会出现的伪影。
当网络需要知道特定查询点 \(q\) 的特征时,它会从网格和三平面中提取数据。
特征提取定义如下:

这里,\(TriI\) 代表从 3D 网格进行三线性插值,\(BiI\) 代表从 2D 平面进行双线性插值。通过将这些相加,模型获得了一个丰富的特征向量 \(fea(q)\),它结合了 3D 的精度和 2D 的平滑度。
该特征向量与坐标 \(q\) 拼接后,传入一个小型的 MLP (\(g_{mlp}\)) 以预测 SDF 值:

使用 Neural Pull 进行训练
为了训练这个网络,作者利用了 Neural Pull 机制。核心思想是利用预测的 SDF 值 \(f_\theta(q)\) 及其梯度 \(\nabla f_\theta(q)\) 将查询点 \(q\) 投影到表面上。
投影操作如下所示:

这里,\(s_{\theta, q}\) 是表面上的投影点。通过最小化该投影点与真值点云中最近点 \(p\) 之间的距离来训练网络。

此外,为了确保梯度准确 (这对后续的网格生成步骤至关重要) ,他们强制执行梯度一致性损失:

这确保了查询点 \(q\) 处的梯度与表面点 \(s\) 处的梯度保持一致。SDF 学习的总损失结合了这两个目标:

第二部分: 曲率自适应顶点生成
这是论文的核心部分。一旦学习了 SDF,标准方法会运行移动立方体算法。然而,这种方法通过智能地放置顶点,从零开始构建网格。
直觉
想象一下你是一位正在素描人脸的艺术家。你不会在任何地方都画上均匀分布的点。你会把点密集地聚拢在眼睛、鼻子和嘴唇周围 (高曲率) ,而在前额和脸颊上 (低曲率) 则画得稀疏一些。这种方法在数学上做的正是这件事。
计算曲率
首先,系统需要“看到”表面曲率。它通过将随机点投影到 SDF 的零水平集上,创建一组 表面查询点 (\(S\)) 。
对于特定点 \(s\),通过观察其邻居来估计曲率。该方法计算点 \(s\) 与其邻居 \(s_k\) 之间的表面法线 (垂直于表面的方向) 变化了多少。

这里,\(\delta_k\) 代表偏差。如果法线指向同一方向,\(\delta_k\) 接近 0 (平坦) 。如果它们发散,该值较高 (弯曲) 。这些偏差根据距离由高斯核 \(w_k\) 进行加权:

最后,该点的平均曲率 \(c_s\) 通过对这些加权偏差求和得到:

顶点生成器网络
系统初始化一组顶点 \(v_o\) (使用最远点采样以确保良好的覆盖) ,然后使用 顶点生成器 (Vertex Generator) 网络来优化它们的位置。目标是移动这些顶点,使它们聚集在高曲率区域。
优化后的位置 \(v\) 计算为原始位置加上一个学习到的位移:

网络 \(\gamma\) 是一个 Point-Transformer。但它如何知道将点移动到哪里呢?作者设计了特定的损失函数来引导这种行为。
1. 曲率加权吸引 (\(\mathcal{L}_{cur}\)): 这个损失将顶点拉向表面点 (\(s \in S\)),但如果表面点具有高曲率 (\(c_s\)),它会拉得更用力。

2. 法线一致性 (\(\mathcal{L}_{nc}\)): 为了确保顶点正确地落在表面上,它们的法线必须与底层的 SDF 法线一致。

3. 排斥损失 (\(\mathcal{L}_{rep}\)): 为了防止所有顶点塌陷到一个奇点或聚集得过于密集,排斥损失强制它们之间保持一定的距离。

结合这些损失产生了一个“力场”,顶点沿着隐式表面滑动,自然地在锐利的边缘和角落处累积,同时在平坦区域保持稀疏分布。

图 5 清晰地展示了结果。注意“Ours”方法如何将蓝色顶点集中在形状的锐利边缘,而对比方法 (PoNQ) 的分布则更加均匀、效率较低。
第三部分: Delaunay 网格生成
我们现在有一团位于表面上的优化后的顶点。为了将其转化为网格,我们需要用三角形连接它们。
作者使用 Delaunay 三角剖分 (Delaunay Triangulation) 。 在 3D 中,该算法连接点以形成填充体积的四面体 (具有 4 个三角形面的金字塔) 。结果是一个实心的四面体块。
为了提取表面网格,我们必须将每个四面体分类为形状的 内部 (Inside) 或 外部 (Outside) 。 物体的表面本质上就是“内部”四面体和“外部”四面体之间的边界。
多标签投票
确定四面体是否在形状内部,在边界附近可能会很棘手。作者提出了一种概率方法。他们在每个四面体内采样多个随机参考点。对于每个参考点,他们检查 SDF 值。
- SDF < 0: 该点在内部。
- SDF > 0: 该点在外部。
四面体被分配获得最多票数的标签 (内部/外部) 。
邻域标签约束
这种投票方法的一个常见问题是,表面附近的细窄四面体可能会被错误分类,导致“非流形 (non-manifold)”几何结构 (边由两个以上的面共享,或顶点连接两个不连通的体积) 。这会破坏网格拓扑。
为了解决这个问题,作者实施了一个基于邻居的约束。

如图 3 所示,该方法查看四面体的四个邻居。如果一个四面体的标签与其大多数邻居的标签不一致,则翻转其标签。这种简单的“同伴压力”规则平滑了分类噪声,并确保生成的网格是 水密、流形且无自相交的 。
实验与结果
作者将他们的方法与几种最先进的技术进行了测试,包括 Neural Marching Cubes (NMC)、Neural Dual Contouring (NDC) 和 PoNQ。
视觉质量
视觉结果非常惊人,特别是在观察复杂的有机形状和锐利的机械部件时。

在图 4 中,看看恐龙骨架 (底行) 。NMC 和 VoroMesh 方法在骨骼的细微结构上表现挣扎,留下了缺口或形成了团块。提出的方法 (Ours) 即使在这种低分辨率下也能保持骨架的结构完整性。
细节保留
在比较 Stanford 数据集上的重建时,该方法展示了其保留细节的能力明显优于标准方法。

在图 6 中,比较“Ours / MC512” (使用高分辨率移动立方体) 和“Ours / AM5%” (使用仅 5% 顶点数量的自适应网格生成) 。视觉差异微乎其微,但 AM 版本使用的数据量却只是九牛一毛。这验证了论文的核心前提: 自适应网格生成可以在不牺牲保真度的情况下实现轻量级文件。
可扩展性
该方法不仅适用于单个物体;它还可以扩展到整个场景。

图 8 展示了 ScanNet 室内场景的重建。自适应网格生成 (AM) 比 GridPull 或 NeuralPull 更好地保留了家具 (如桌子和椅子) 的清晰边界,后两者往往会生成嘈杂或凹凸不平的表面。
定量分析
论文提供了详尽的表格,但关键结论在于 曲率误差 (CE) 和 拓扑正确性 (CT) 。
- 曲率误差: 提出的方法始终实现较低的曲率误差,这意味着它准确地跟随了真值表面的弯曲和扭转。
- 拓扑: 许多神经网格生成方法无法生成流形网格 (CT < 1.0) 。提出的方法在几乎所有测试中都获得了完美的 1.0 水密性和流形性得分。
结论
“High-Fidelity Lightweight Mesh Reconstruction from Point Clouds” 中提出的研究为 3D 重建中的效率问题提供了一个令人信服的解决方案。通过放弃移动立方体的均匀网格并采用 曲率自适应策略 , 作者弥合了高视觉保真度和低存储需求之间的鸿沟。
这项工作的主要收获:
- 混合特征至关重要: 将体素网格与三平面结合比单独使用 MLP 能创建更稳健的 SDF。
- 基于点的表示: 将隐式表面视为一组动态的点,允许根据几何形状直接优化顶点位置。
- 拓扑是关键: 使用带有邻域约束的 Delaunay 三角剖分确保最终网格无需大量清理即可用于下游应用 (如物理模拟或 3D 打印) 。
随着 3D 内容在网络和移动应用中变得越来越普遍,像这样能在最大化质量的同时最小化带宽和处理能力的技术,将日益成为计算机视觉流程中的标准。
](https://deep-paper.org/en/paper/file-2068/images/cover.png)