CVPR 2018 · Explicit Surface Learning

Deep Marching Cubes

把 Marching Cubes 改造成可微的概率曲面层:网络同时预测体素占据概率与网格边上的顶点位移,直接用稀疏点云监督三角网格。

Yiyi Liao · Simon Donné · Andreas GeigerCVPR 2018 · 2916–2925DOI 10.1109/CVPR.2018.0030832³ output grid
Paper Verified

核心贡献位于表示层。

传统 MC 由 signed distance 的符号决定离散拓扑,拓扑变化处无法稳定反向传播。DMC 将拓扑写成 8 个 Bernoulli 占据变量诱导的分布,并把几何写成每条网格边上的连续位移。

256每个立方单元的全部二值角点配置
140论文保留并重新归一化的 singly connected topology
0.2183D 点云实验的 Chamfer,32³
20补充材料报告的训练 epoch
01 · Research Motivation

训练目标与最终网格之间存在断层

点集方法需要额外表面重建;占据网格或 TSDF 方法先优化中间表示,再调用不可训练的 MC。最终需要的是 mesh,训练期间优化的却常是点距或体素误差。

Paper Verified

隐式监督很昂贵

非闭合网格与稀疏点云缺少可靠 inside/outside 标注,把它们转换为 dense occupancy 或 TSDF 会引入错误监督。

Paper Verified

MC 阻断拓扑梯度

经典边交点 \(x=d/(d-d')\) 在 \(d=d'\) 处出现奇异性,符号翻转对应离散拓扑跳变,训练难以跨越。

Our Interpretation

弱监督承担两类推断

稀疏点只约束曲面位置;模型还要借助边界自由空间先验、内部占据先验与局部平滑性推断未观测区域及内外方向。

论文 Figure 1:点预测、隐式表面预测与显式表面预测的流程比较
Figure 1(原论文):三条路线共享输入编码思想。DMC 的 decoder 输出 occupancy 与 geometry,显式表面参与训练损失,表面提取进入可训练链路。
02 · Problem Formulation

输入点云,输出概率网格与显式三角面

论文实验输入为 \(K\) 个三维点,网络输出 \(O\) 与 \(X\)。DMCL 把两者转换为每个 cell 的拓扑分布和三角面位置;训练目标是期望曲面误差与三类正则项的加权和。

\(P\in\mathbb{R}^{K\times 3}\)
输入点云;3D ShapeNet 实验同时将采样点用于网络输入与稀疏监督。
\(O\in[0,1]^{N\times N\times N}\)
占据概率场;\(o_n=1\) 表示体素中心 \(n\) 被占据。
\(X\in[0,1]^{N\times N\times N\times 3}\)
三个坐标方向上的边顶点位置。每个 cell 共 12 条边,相邻 cell 共享对应预测。
\(T\in\{0,1\}^{2\times2\times2}\)
单个 cell 八个角点的二值拓扑状态,共 \(2^8=256\) 种配置。
\(M_n(T,X)\)
cell \(n\) 在拓扑 \(T\) 与几何 \(X\) 下生成的三角网格片段。
\(Y_n\)
落入 cell \(n\) 的监督点集合;没有监督点的非空 topology 收到小常数惩罚。
经典 MC 的边交点: \[ f(x)=d+x(d'-d),\qquad x=\frac{d}{d-d'} \]
\(d,d'\) 是边两端的 signed distance。该式决定亚体素顶点,但 \(d=d'\) 会造成奇异性;符号组合同时决定离散 topology。
论文 Figure 2 和 Figure 3:拓扑集合与 DMC 表示
Figure 2–3(原论文):Figure 2 展示 15 个旋转等价类并突出 singly connected 配置;Figure 3 比较 signed distance 插值得到边交点的 MC 与 occupancy 加 edge displacement 的 DMCL。
03 · Differentiable Marching Cubes Layer

将 topology 写成可微概率

每个角点的占据输出充当 Bernoulli 参数。八个角点独立相乘得到 cell topology 的概率,再与连续 edge displacement 一起定义 mesh 分布。

角点 Bernoulli: \[ p_n(t)=o_n^t(1-o_n)^{1-t},\qquad t\in\{0,1\} \]
梯度可直接进入 \(o_n\)。\(t\) 表示角点是否占据。
单个 cell 的拓扑概率: \[ p_n(T)=\prod_{m\in\{0,1\}^{3}}(o_{n+m})^{t_m}(1-o_{n+m})^{1-t_m} \]
八个角点状态 \(t_m\) 共同确定 lookup table 中的三角连接方式。论文定义保留 140 个 singly connected topology,并对保留集合重新归一化。
全网格 topology 分布: \[ p(\{T_n\mid n\in\mathcal{T}\})=\prod_{n\in\mathcal{T}}p_n(T_n),\qquad \mathcal{T}=\{1,\ldots,N-1\}^{3} \]
给定网络预测的 \(X\),论文以 cell 概率乘积表示整张 mesh 的 factorized topology 分布。相邻 cell 共享 corner occupancy,因此这些局部事件不具备统计独立性;实践中的 loss 按 cell 求期望,避免枚举整张 mesh。
表达能力边界:论文的 140 个 topology 排除了单个 cell 内的 disconnected configuration。官方训练 loss 进一步调用默认 get_accept_topology(3),仅列 48 个 topology,再加入 inside/outside dual 后得到 96 个训练条目;140 个最多四三角 topology 只用于可视化路径。共享角点与共享 edge parameter 提供局部一致性,论文与代码均没有给出全局 watertightness 保证。
04 · Network & Inference

局部 PointNet 特征进入 3D encoder-decoder

STEP 1

Point feature

每点 \(3\to256\to16\) 的 1D convolution / fully connected 映射。

STEP 2

Grid pooling

同一 cell 内对 16 维点特征 max pool;空 cell 使用零向量。

STEP 3

3D U-Net

16→32→64→128 编码,三次 pooling;unpooling 与 skip connection 恢复分辨率。

STEP 4

Two heads

occupancy head 输出 1 通道,offset head 输出 3 通道,均使用 sigmoid 约束。

STEP 5

Mesh decode

推理时选择每个 cell 的高概率 topology,按 edge offset 生成共享顶点与三角面。

论文 Figure 4:完整网络架构
Figure 4(原论文):输入点云经 point feature extraction 与 grid pooling 形成规则体特征;3D encoder-decoder 通过两个 head 输出 \(O\) 和 \(X\),DMCL 生成显式表面。
补充材料 Figure 2:逐层网络参数
Supplementary Figure 2:逐层通道数与 \(3\times3\times3\) kernel。卷积和反卷积后使用 Batch Normalization 与 ReLU;最后一层 occupancy 为 1 通道,offset 为 3 通道。

训练时

对 topology 分布计算期望点到网格距离与期望法向一致性。占据正则和邻域平滑直接作用在 \(O\)。误差通过 DMCL、自定义 C/CUDA 运算与 3D CNN 反向传播。

推理时

官方验证代码输出每个 cell 的 topology probability 与 offset,并调用 mesh 保存逻辑产生 OFF。论文没有报告 beam search、随机采样、温度、reranking 或 test-time optimization。

05 · Loss Functions

四项损失分别约束覆盖、方向与正则性

稀疏点云只提供曲面附近证据。完整目标借助边界自由空间、内部占据区域、邻域 occupancy 一致性和相邻面法向一致性补足未观测信息。

完整目标: \[ \mathcal{L}(\theta)=w_1\sum_n\mathcal{L}^{\mathrm{mesh}}_n(\theta)+w_2\mathcal{L}^{\mathrm{occ}}(\theta)+w_3\sum_{n\sim m}\mathcal{L}^{\mathrm{smooth}}_{n,m}(\theta)+w_4\sum_{n\sim m}\mathcal{L}^{\mathrm{curve}}_{n,m}(\theta) \]
\(\theta\) 是所有网络参数,\(n\sim m\) 表示相邻 cell。四项权重由补充材料给出。

1. Point-to-mesh

\[ \mathcal{L}^{\mathrm{mesh}}_n(\theta)=\mathbb{E}_{p_n(T\mid\theta)}\left[\sum_{y\in Y_n}\ell\bigl(M_n(T,X(\theta)),y\bigr)\right] \]

ℓ 取点到最近三角面的欧氏距离。它直接测量预测 mesh 与监督点的几何兼容性;仅有这一项会允许远离观测点的多余表面。

2. Occupancy prior

\[ \mathcal{L}^{\mathrm{occ}}(\theta)=\frac{1}{|\mathcal{B}|}\sum_{n\in\mathcal{B}}o_n(\theta)+w\left(1-\frac{1}{|\mathcal{S}|}\sum_{n\in\mathcal{S}}o_n(\theta)\right) \]

边界集合 \(\mathcal{B}\) 的六个外表面被鼓励为空;内部子体积 \(\mathcal{S}\) 被鼓励占据。自适应权重 \(w\) 随高置信占据体素增加而减小,避免强行填满中心。

3. Occupancy smoothness

\[ \mathcal{L}^{\mathrm{smooth}}_{n,m}(\theta)=|o_n(\theta)-o_m(\theta)| \]

相邻体素多数处于同一状态,变化主要发生在表面。该项传播局部 occupancy 信息并抑制碎片化边界。

4. Curvature

\[ \mathcal{L}^{\mathrm{curve}}_{n,m}(\theta)=\mathbb{E}_{p_{n,m}(T,T'\mid\theta)}\left[\kappa_{n,m}(T,T',X(\theta))\right] \]

\(\kappa\) 是跨共享边连接的三角面法向量平方 \(\ell_2\) 距离;不连通时取 0。该项在稀疏、含噪监督下抑制局部折皱。

非对称覆盖:point-to-mesh 项保证观测点靠近预测表面,没有直接保证预测表面每一点靠近观测。作者明确说明反向约束会惩罚真实但未观测的区域,因此以小常数空 cell 惩罚和三类先验控制多余表面。
06 · Data, Training & Reproduction

可复现信息集中在 supplement,仍有关键缺口

2D 验证数据

  • ShapeNet car silhouette:1547 个实例。
  • 训练 1237,测试 310。
  • 每个轮廓随机采样 300 个边界点。
  • 网格 \(N=32\),指标为 Chamfer、accuracy、completeness 与 occupancy Hamming。

3D ShapeNet 数据

  • 联合训练 bottle、car、sofa 三类。
  • 渲染 depth 后以 128³ TSDF fusion 清理内部面并建立评估 ground truth。
  • 从清理 mesh 随机采样点,兼作输入与稀疏监督;DMC 仍依赖这一 128³ preprocessing 管线,只是不需要 dense implicit target。
  • 输入添加 \(\sigma=0.15\) voxel 的 Gaussian noise。
  • Occupancy / TSDF baselines 使用 dense implicit ground truth,DMC 使用清理 mesh 上的稀疏采样点。
  • 论文、补充材料与 README 均未给出 3D train/validation 样本数量和确定性 split 列表。
Supplement Table 1 参数值作用
\(w_1\) on \(\mathcal{L}_{\mathrm{mesh}}\)\(1.0/N^3\)点到网格期望距离
\(w_2\) on \(\mathcal{L}_{\mathrm{occ}}\)\(0.4/N^3\)边界空闲与内部占据
\(w_3\) on \(\mathcal{L}_{\mathrm{smooth}}\)\(0.6/N^3\)相邻 occupancy 平滑
\(w_4\) on \(\mathcal{L}_{\mathrm{curve}}\)\(0.6/N^3\)连接三角面法向平滑
OptimizerAdam补充材料没有给出 β₁、β₂、weight decay
Learning rate5e-4补充材料报告值
Batch size8训练批量
Epoch20补充材料报告值
正文未报告:3D split 数量、GPU 型号、训练时长、随机种子、Adam β 参数、学习率调度、warmup、gradient clipping、precision 和 checkpoint 选择规则。官方数据包提供 train/validation 文件,但论文没有陈述这些划分的实例数量与 ShapeNet ID。
07 · Experiments

全部主表与关键消融

所有距离以 voxel 为单位,数值越低越好。accuracy 衡量预测表面到 ground truth 的距离,completeness 衡量 ground truth 到预测表面的距离;Chamfer 综合双向误差。

2D loss ablation(Figure 5g)

Loss configurationChamfer ↓Accuracy ↓Completeness ↓Hamming ↓
\(\mathcal{L}_{\mathrm{mesh}}\)0.3390.3880.28983.69%
+ \(\mathcal{L}_{\mathrm{occ}}\)0.3570.4290.2854.67%
+ \(\mathcal{L}_{\mathrm{smooth}}\)0.2400.2240.2550.56%
+ \(\mathcal{L}_{\mathrm{curve}}\)0.2450.2190.2720.53%

occupancy prior 将 Hamming 从 83.69% 降至 4.67%,说明它主要解决内外翻转;smoothness 带来最大的几何改善。curvature 改善 accuracy 和 Hamming,但 Chamfer 与 completeness 略降,作者所说“without decreasing performance”只在视觉平滑与部分指标上成立。

论文 Figure 5:2D 消融、跨类别与复杂拓扑
Figure 5(原论文):从仅使用 point-to-mesh 到加入三类正则的逐项结果;同图还展示 car→bottle 的类别泛化,以及多个分离 car 的复杂 topology。

Table 1 · noisy ground truth

\(\sigma\) (voxel)Chamfer ↓Accuracy ↓Completeness ↓
0.000.2450.2190.272
0.150.2460.2190.273
0.300.2960.2670.325

Table 2 · incomplete ground truth

Missing angleChamfer ↓Accuracy ↓Completeness ↓
15°0.2340.2100.257
30°0.2500.2270.273
45°0.3080.2610.354

Table 3 · 3D shape prediction from point clouds

ResolutionMethodChamfer ↓Accuracy ↓Completeness ↓
32³Occupancy + MC0.4070.2460.567
32³TSDF + MC0.4120.2360.588
32³weighted TSDF + MC0.3540.2190.489
32³PSR-50.3520.4050.298
32³Ours0.2180.1820.254
256³PSR-80.1980.1960.200

同为 32³ 时,DMC 的 Chamfer 相比 weighted TSDF + MC 从 0.354 降至 0.218,下降 38.4%;相比 PSR-5 从 0.352 降至 0.218,下降 38.1%。PSR-8 使用 256³,高分辨率下 Chamfer 和 completeness 更低,DMC 的 accuracy 仍为更低的 0.182。

论文 Figure 6:三维点云重建定性比较
Figure 6(原论文):Occupancy、weighted TSDF、PSR-5、PSR-8 与 DMC 的可视化比较。作者指出 DMC 对车轮、沙发靠背、缺失车底和窗洞更稳健;末两行展示薄面丢失与错误连接分离部件。

Supplement Table 2 · shape prediction from occupancy maps

MethodChamfer ↓Accuracy ↓Completeness ↓
Occupancy + MC0.2770.2170.337
TSDF + MC0.2710.1910.350
TSDF (weighted) + MC0.2760.2000.352
Ours0.2650.2110.318

DMC 获得最佳 Chamfer 与 completeness,TSDF + MC 获得最佳 accuracy。该实验还使用 occupancy 输入过滤:仅保留占据区域大于完整 cube 的 2% 的对象。

补充材料 Figure 3a 和 3b:汽车与沙发点云重建
Supplementary Figure 3(a–b):car 与 sofa 的更多点云重建结果,重点展示车轮、沙发腿、薄面以及不完整底部。
补充材料 Figure 3c 和 Figure 4:瓶子及 occupancy 输入结果
Supplementary Figure 3(c) 与 Figure 4:bottle 点云重建,以及从 binary occupancy map 学习亚体素 mesh 的结果。
08 · Paper vs. Implementation

官方代码能解释机制,也暴露复现差异

框架
README 固定 PyTorch 0.3.0,并明确与 0.4.0 不兼容;point-triangle distance、occupancy-to-topology、grid pooling 与 curvature 使用自定义 C/CUDA extension。
Point encoder
Conv1d(3,256,1) → ReLU → Conv1d(256,16,1);按 cell 做 max pooling,空 cell 为零。
Offset 编码
代码使用 sigmoid - 0.5 得到 \([-0.5,0.5]\) offset,再以 \(0.5-\mathrm{offset}\) 转换为 edge 上的 \([0,1]\) 位置;与论文直接把 \(X\) 写成 \([0,1]\) 的记号等价,但变量含义需要转换。
Topology
网络先计算 256 个 corner configuration 的概率。point-to-mesh loss 使用 get_accept_topology(3) 的 48 个条目及 48 个 inside/outside dual,共 96 个概率,再按概率和重新归一化。get_accept_topology(4) 返回 140 个条目,只交给 train/val 的可视化路径;源码注释标明该处仍需修复。
Mesh loss
官方实现将 accepted topology probability 与自定义 point-triangle distance 相乘后求和,并按 cell 数立方归一化。
Occupancy prior
边界权重经过 3×3×3 Gaussian kernel 扩散;内部区域取每轴 20%–80%。adaptive weight 使用最高 1/30 occupancy 的均值构造,并通过 .data 阻止该权重反向传播。
验证
val.sh 先输出 OFF,再由 mesh-evaluation 对 3000 个采样点计算距离。PSR baseline 的 oriented normals 由 MeshLab 估计。
参数收据:补充材料报告 lr=5e-4、20 epochs 与四项权重 \(1.0,0.4,0.6,0.6\) 除以 \(N^3\)。公开代码 config.py 的默认值为 lr=1e-4、510 epochs、weight decay=1e-3,以及 distance/prior/smoothness/curvature 权重 5/10/3/3;train.sh 没有覆盖这些默认值。仓库没有提供与论文表格绑定的完整命令、checkpoint 或 commit 说明,因此直接运行公开脚本无法保证复现论文设置。
Paper Verified

论文证据

论文证实 end-to-end surface loss、32³ 输出、稀疏 point supervision、三类 ShapeNet、四项 loss 与表格结果。

Author Claim

证据边界

“arbitrary topology”应理解为整体网格可形成多样 topology;论文表述覆盖 140 个 singly connected configuration,训练源码的几何 loss 实际使用 96 个 topology 条目。低分辨率会错误连接分离部件,也没有证明全局 watertightness。

09 · Reviewer Commentary

方法价值来自可微显式表示,证据规模仍然有限

Strengths

  • 把离散 topology 与连续 geometry 分离,形成可训练 mesh layer。
  • 直接支持稀疏 point supervision,绕开不可靠 inside/outside ground truth。
  • 损失消融清楚揭示 occupancy prior 与 smoothness 的作用。
  • 同分辨率比较保持 encoder 与 decoder 容量接近,主要变量集中在输出表示和损失。

Weaknesses

  • 3D 实验只覆盖 bottle、car、sofa,split 数量未公开。
  • 唯一系统性 loss ablation 在 2D;3D 缺少逐项消融与统计方差。
  • 论文与训练实现的 accepted topology 集合不同,单 cell disconnected geometry 仍受限制。
  • 32³ 限制薄结构,高分辨率 PSR-8 在 Chamfer 与 completeness 上更好。
  • 代码依赖过时 PyTorch 与自定义 extension,且默认参数偏离 supplement。

Claim audit

  • “sub-voxel accurate”由 edge displacement 与 occupancy-input 实验支持。
  • “arbitrary topology”获得跨类别与多物体案例支持,范围受局部 lookup table 限制。
  • “end-to-end is beneficial”在同 32³ baseline 上成立;与 256³ 方法的结果包含分辨率因素。
  • 曲率项没有降低所有量化指标,其贡献主要表现为局部平滑和 accuracy。
10 · Research Extensions

这条路线后来仍有清晰的发展空间

Research Extension

Adaptive resolution

将 occupancy 与 edge parameter 放入 octree、sparse voxel DAG 或 learned adaptive grid,集中预算到薄结构和高曲率区域,同时保持显式 connectivity。

Research Extension

Richer local topology

学习 cell tessellation template 或使用 tetrahedral decomposition,覆盖 disconnected case、锐边与非流形风险,并显式检查跨 cell consistency。

Research Extension

Bidirectional evidence

引入 visibility-aware free-space rays、法向、深度或 differentiable rendering,使未观测区域与多余表面获得更可靠约束,降低对中心占据先验的依赖。

Research Extension

Uncertainty calibration

当前 Bernoulli independence 产生 topology distribution,却没有评估概率校准。可对歧义区域建模相关角点分布,并报告 topology entropy 与几何误差关系。

Research Extension

Modern sparse backbones

使用 sparse 3D convolution 或 point transformer 替代 dense 32³ U-Net,并保持 DMCL 作为显式 surface decoder,评估容量与表示收益。

Research Extension

Reproducibility protocol

公开确定性 ShapeNet ID、preprocessing、完整训练命令、checkpoint、编译环境和 metric scripts,并对多个随机种子报告均值与标准差。

11 · Sources

一手资料与核查范围

  1. Liao, Donné, Geiger. Deep Marching Cubes: Learning Explicit Surface Representations. CVPR 2018. 正文 10 页。
  2. Official Supplementary Material. 5 页;包含完整网络图、超参数、occupancy-input 实验与更多定性结果。
  3. CVF Open Access proceedings page. 核对作者顺序、会议、页码与 BibTeX。
  4. Official GitHub repository. 核查 README、网络、数据加载、损失、自定义 C/CUDA、训练与验证脚本;仓库 HEAD e6efeb4。
  5. IEEE DOI record: 10.1109/CVPR.2018.00308.
作者角色核查:CVF 页面、正文首页、补充材料首页和官方仓库均将 Yiyi Liao 列为第一作者。上述一手资料没有显式通讯作者符号或文字;Andreas Geiger 仅能按末位作者规则记录为通讯作者候选,状态保持 unverified。