CVPR 2019 · Neural Implicit Representation

DeepSDF

把整个三维形状写成一个可连续查询的函数,并在推理时通过优化 latent code 找到最符合观测的完整形状。

Jeong Joon Park · Peter Florence · Julian Straub · Richard Newcombe · Steven Lovegrove
CVPR 2019,pp. 165–174 · arXiv:1901.05103v1

19 页正文与补充材料完整核查Table 1–5 全量重建官方代码 commit 48c19b8 审计MathJax 3.2.2 离线运行

研究问题:三维表示如何同时保留细节、拓扑与紧凑性

规则体素网格的储存与计算量随分辨率立方增长;点云缺少闭合曲面;固定模板网格难以处理孔洞数量不同的形状。DeepSDF 选择连续 signed distance field,将曲面定义为神经网络输出的零等值面,一个 decoder 通过 latent code 表示同一类别中的许多形状。

输入
位置 + 形状码

查询点 \(\mathbf{x}\in\mathbb{R}^3\) 与形状 latent code \(\mathbf{z}\)。训练数据还包含真实 SDF 值 \(s\)。

输出
一个标量

\(\tilde{s}=f_{\theta}(\mathbf{z},\mathbf{x})\)。符号区分内外,绝对值近似到表面的距离。

曲面
零等值面

满足 \(f_{\theta}(\mathbf{z},\mathbf{x})=0\) 的点构成形状边界,可用 raycasting 或 Marching Cubes 显式化。

Figure 1 latent interpolation
Figure 1(原论文):椅子与汽车在 latent space 中线性插值。图像由连续 SDF 直接 raycast;它展示平滑变化,但没有单独证明插值路径处处符合真实数据分布。
Figure 2 Stanford Bunny SDF
Figure 2(原论文):Stanford Bunny 的内外采样、二维 SDF 截面与从零等值面恢复的三维曲面。
Paper Verified

论文在 known-shape representation、unknown-shape reconstruction、partial shape completion 和 latent interpolation 四方面进行实验。Jeong Joon Park 与 Peter Florence 姓名后的 † 只对应“在 Facebook Reality Labs 实习期间完成工作”的脚注,没有共同第一作者或通讯作者含义。

连续 SDF:网络学习空间中的距离场

\[\operatorname{SDF}(\mathbf{x})=s,\qquad \mathbf{x}\in\mathbb{R}^{3},\quad s\in\mathbb{R}.\]Eq. 1。内部为负,外部为正,曲面为零值。
\[X=\{(\mathbf{x},s):\operatorname{SDF}(\mathbf{x})=s\},\qquad f_{\theta}(\mathbf{x})\approx\operatorname{SDF}(\mathbf{x}).\]Eq. 2–3。单形状版本用有限 SDF samples 学习连续函数。
\[\mathcal{L}(f_{\theta}(\mathbf{x}),s)=\left|\operatorname{clamp}(f_{\theta}(\mathbf{x}),\delta)-\operatorname{clamp}(s,\delta)\right|,\]\[\operatorname{clamp}(u,\delta)=\min\bigl(\delta,\max(-\delta,u)\bigr).\]Eq. 4。正文实验使用 \(\delta=0.1\),让容量集中在曲面附近。
Figure 3aFigure 3b
Figure 3(原论文):多形状版本把 \(\mathbf{z}\) 与 \(\mathbf{x}\) 拼接,学习 \(f_{\theta}(\mathbf{z}_i,\mathbf{x})\approx \operatorname{SDF}^{i}(\mathbf{x})\)。

SDF 比 occupancy 多保留距离信息,可用于 sphere tracing 的步长估计,空间导数 \(\partial f_{\theta}/\partial\mathbf{x}\) 可提供法向。论文没有显式 Eikonal 约束,预测场通过监督 samples 逼近 metric SDF。

Auto-decoder:训练时直接学习每个形状的 code

Figure 4 auto-encoderFigure 4 auto-decoder
Figure 4(原论文):每个训练形状分配随机 code,与 decoder 参数共同反向传播。测试时固定 \(\theta\),只优化新形状的 code。
\[p_{\theta}(\mathbf{z}_i\mid X_i)\propto p(\mathbf{z}_i)\prod_{(\mathbf{x}_j,s_j)\in X_i}p_{\theta}(s_j\mid\mathbf{z}_i;\mathbf{x}_j),\qquad p(\mathbf{z}_i)=\mathcal{N}(\mathbf{0},\sigma^2\mathbf{I}).\]Eq. 7 的严谨写法。原论文排版使用等号并省略 Bayes evidence \(p(X_i)\);对 MAP 优化而言该项与 \(\mathbf{z}_i\) 无关。给定 code 后,各空间 sample 的 SDF likelihood 被视为条件独立。
\[p_{\theta}(s_j\mid\mathbf{z}_i;\mathbf{x}_j)\propto\exp\left[-\mathcal{L}\left(f_{\theta}(\mathbf{z}_i,\mathbf{x}_j),s_j\right)\right].\]Eq. 8 的 energy 表达。原文同样省略归一化项;它足以导出 MAP objective,但不能单凭该式视为严格 normalized likelihood。clamped \(L_1\) 在 \(\lvert s\rvert\gt\delta\) 的远场不继续增加监督强度,网络也没有全域 Eikonal 约束。
\[\underset{\theta,\{\mathbf{z}_i\}_{i=1}^{N}}{\arg\min}\sum_{i=1}^{N}\left[\sum_{j=1}^{K}\mathcal{L}\left(f_{\theta}(\mathbf{z}_i,\mathbf{x}_j),s_j\right)+\frac{1}{\sigma^2}\lVert\mathbf{z}_i\rVert_2^2\right].\]Eq. 9。全局 decoder 与所有训练实例 code 共同优化。
Our Interpretation

Auto-decoder 把编码变成优化问题,允许测试观测采用任意数量和任意空间分布的 samples;代价是每个新形状都要执行许多次梯度更新,并受初始化与局部最优影响。

数据、网络与训练:复现所需的完整链路

ShapeNet mesh
归一化
→
100 个虚拟相机
提取定向表面点
→
近表面 + 均匀采样
构建 SDF pairs
→
联合优化
decoder 与 codes
Figure 13 DeepSDF architecture
Figure 13(补充材料):8 个 fully connected layers,隐藏宽度 512;ReLU、weight normalization、dropout 0.2;末层 tanh。256 维 reconstruction code 与 xyz 组成 259 维输入,第 4 层再次注入输入;shape completion 使用 128 维 code。
项目论文设置说明
OptimizerAdam同时更新 decoder 与训练 shape codes。
Decoder learning rate\(10^{-5}B\)\(B\) 为每批 shape 数。
Latent learning rate\(10^{-3}\)直接优化 embedding。
Samples / shape / batch16,384正负各半。
Regularization\(\sigma=10^{-2}\)控制 Gaussian code prior。
训练资源1000 epochs;8 张 Nvidia GPU;约 8 小时GPU 型号、精度、随机种子、完整 scheduler 未披露。
数据版本representation 用 ShapeNet v2;completion 用 ShapeNet v1completion 跟随 3D-EPN 基准。
Evidence Boundary

补充材料训练细节写 \(\mathcal{N}(0,0.01^2)\),完整概率推导段落写 \(\mathcal{N}(0,0.001^2)\)。官方代码默认 0.01,复现时必须记录实际初始化。

测试时推理:固定网络,寻找最合适的形状码

\[\hat{\mathbf{z}}=\underset{\mathbf{z}}{\arg\min}\sum_{(\mathbf{x}_j,s_j)\in X}\mathcal{L}\left(f_{\theta}(\mathbf{z},\mathbf{x}_j),s_j\right)+\frac{1}{\sigma^2}\lVert\mathbf{z}\rVert_2^2.\]Eq. 10。decoder 固定,观测可来自完整 mesh 或一张 depth image。

Unknown-shape reconstruction 从 held-out SDF samples 随机初始化 code,以 Adam 优化,再查询空间网格并用 Marching Cubes 提取零等值面。论文定量 mesh 使用 \(512^3\) 网格,Chamfer 使用 30,000 points,EMD 使用 500 points。

Shape completion 对每个深度点沿估计法向前后取距离 \(\eta\) 的 samples,赋值 \(+\eta\) 与 \(-\eta\)。相机到可见表面之间沿 ray 采 free-space points;若 \(f_{\theta}(\mathbf{z},\mathbf{x}_j)\lt0\),增加 \(\left|f_{\theta}(\mathbf{z},\mathbf{x}_j)\right|\) 损失。论文没有给出 \(\eta\)、每条 ray 的 free-space sample 数、采样间隔、completion 的 optimizer iterations 或 learning rate,因此完整 forward / backward sampling 细节无法从正文与补充材料恢复。

Figure 8(原论文,plane 行):输入深度、DeepSDF 补全、第二视角、ground truth 与 3D-EPN。
Figure 9(原论文):位置噪声约为 plane 长度 3% 的 partial point cloud 与补全结果。
\[D_{\mathrm{noise}}=\frac{1}{(1/D)+\mathcal{N}(0,\alpha^2)}.\]Eq. 11。附录以 \(\alpha\in\{0.01,0.02,0.03,0.05\}\) 模拟 inverse-depth noise,共评测 85 个 plane completions。

实验结果:五张原表逐项重建

指标定义与单位

\[d_{\mathrm{CD}}(S_1,S_2)=\sum_{\mathbf{x}\in S_1}\min_{\mathbf{y}\in S_2}\lVert\mathbf{x}-\mathbf{y}\rVert_2^2+\sum_{\mathbf{y}\in S_2}\min_{\mathbf{x}\in S_1}\lVert\mathbf{x}-\mathbf{y}\rVert_2^2.\]双向 squared Chamfer。论文从两个 mesh 表面各采 30,000 points,再除以 30,000;Table 2 明确将结果乘 \(10^3\),Table 3–4 沿用同一评测说明。
\[d_{\mathrm{EMD}}(S_1,S_2)=\min_{\phi:S_1\rightarrow S_2}\sum_{\mathbf{x}\in S_1}\lVert\mathbf{x}-\phi(\mathbf{x})\rVert_2.\]EMD 使用 500 points 并求精确 bijection。Mesh accuracy 是使 90% 生成点落在 ground-truth mesh 距离 \(d\) 内的最小 \(d\),使用 1000 个生成表面点。Mesh completion 是 1000 个 ground-truth points 中距离生成 mesh 小于 \(\Delta=0.01\) 的比例。

Normal cosine similarity 从 ground-truth 表面采 2500 个带法向点,匹配生成 mesh 最近 face。为兼容没有 oriented normals 的 AtlasNet,评测对生成法向及其反向取较高 cosine,即等价于绝对 cosine;范围为 0 到 1。

Table 1 · 表示能力、模型大小与推理

方法类型离散化复杂拓扑闭合表面法向GB秒任务
3D-EPNVoxel SDF\(32^3\)✓✓✓0.42—C
OGNOctree\(256^3\)✓✓0.540.32K
AtlasNet-SphereParametric mesh1 patch✓0.0150.01K,U
AtlasNet-25Parametric mesh25 patches✓0.1720.32K,U
DeepSDFContinuous SDFnone✓✓✓0.00749.72K,U,C

Table 2 · Known cars

方法CD mean ↓CD median ↓EMD mean ↓EMD median ↓
OGN0.1670.1270.0430.042
AtlasNet-Sphere0.2100.1850.0460.045
AtlasNet-250.1570.1400.0600.060
DeepSDF0.0840.0580.0430.042
Figure 5(原论文):DeepSDF(左)与 OGN(右)的 known car 视觉比较。

Table 3 · Unknown ShapeNet shapes

指标 / 方法chairplanetablelampsofa
CD mean ↓
AtlasNet-Sph.0.7520.1880.7252.3810.445
AtlasNet-250.3680.2160.3281.1820.411
DeepSDF0.2040.1430.5530.8320.132
CD median ↓
AtlasNet-Sph.0.5110.0790.3892.1800.330
AtlasNet-250.2760.0650.1950.9930.311
DeepSDF0.0720.0360.0680.2190.088
EMD mean ↓
AtlasNet-Sph.0.0710.0380.0600.0850.050
AtlasNet-250.0640.0410.0730.0620.063
DeepSDF0.0490.0330.0500.0590.047
Mesh accuracy mean ↓
AtlasNet-Sph.0.0330.0130.0320.0540.017
AtlasNet-250.0180.0130.0140.0420.017
DeepSDF0.0090.0040.0120.0130.004
Figure 6(原论文):held-out chair、sofa 与 plane 的重建对照。

Table 4 · Single-view completion

类别方法CD med. ↓CD mean ↓EMD ↓Mesh acc. ↓Mesh comp. ↑Cos sim. ↑
chair3D-EPN2.252.830.0840.0590.2090.752
DeepSDF1.282.110.0710.0490.5000.766
plane3D-EPN1.632.190.0630.0400.1650.710
DeepSDF0.371.160.0490.0320.7220.823
sofa3D-EPN2.032.180.0710.0490.2540.742
DeepSDF0.821.590.0590.0410.5410.810

Table 5 · Unknown shapes 的完整度与法向

指标 / 方法chairplanetablelampsofa
Mesh completion mean ↑
AtlasNet-Sph.0.6680.8620.7550.2810.641
AtlasNet-250.7230.8870.7850.5280.681
DeepSDF0.9470.9430.9590.8770.931
Mesh completion median ↑
AtlasNet-Sph.0.6860.9300.7950.2570.666
AtlasNet-250.7360.9440.8250.5330.702
DeepSDF0.9700.9700.9820.9300.941
Cosine similarity mean ↑
AtlasNet-Sph.0.7900.8400.8260.7190.847
AtlasNet-250.7970.8580.8350.7250.826
DeepSDF0.8960.9070.9160.8620.917
Paper Verified

DeepSDF 在 Table 3 的 20 个 lower-is-better 单元中获得 19 个最优,仅 table 类 CD mean 由 AtlasNet-25 更低。Table 5 的 15 个 higher-is-better 单元全部最优。

附录实验:哪些设计选择得到支持

Depth 与 skip input

500 个 chair 的 memorization 实验显示,无 skip 时约 4 层后训练误差饱和;每隔 4 层重新拼接输入后,误差随深度继续下降。测试误差从 4 层约 9.7 降到 8 层约 5.7,随后趋于平缓。

Truncation distance

100 个 known cars 上,\(\delta\) 从 0.05 增到 1.0 时 Chamfer 适度升高。较小值把容量集中于零等值面,较大值覆盖更宽 SDF 域。

Figure 14–15(补充材料):network depth / skip input 与 truncation distance 实验。

MNIST 对照让 AE、VAE、AD 的 decoder 结构一致,并比较 2、5、15 维 latent spaces。AE 的随机 samples 常出现伪影,decoder-only optimization 会发散;AD 在全部维度均可通过优化找到测试 code。15 维 VAE decode 的数值 test error 略低,作者报告 AD 的重建视觉更接近目标数字。

Figure 10–11(补充材料):原始点云误差随 inverse-depth noise 超线性增加,DeepSDF completion 的 mean / median Chamfer 近似线性恶化。
Author Claim

Figure 1 的平滑插值与 MNIST 对照被用来支持 latent space 平滑、完整。三维 latent distribution 的覆盖率没有独立测量,因此该结论的证据仍有限。

Paper vs. Implementation:官方仓库复现审计

核查对象为 Meta Research 官方归档仓库 commit 48c19b8d49ed5293da4edd7da8c3941444bc5cd7。仓库于 2023 年 10 月归档为只读。

项目论文官方代码复现影响
训练 epochs1000示例 specs 为 2001发布配置属于后续复现配置。
Decoder LR\(10^{-5}B\)batch 64,初始 0.0005,每 500 epochs 乘 0.5论文公式对应 0.00064。
输出激活末层 tanh最终始终执行 tanh;specs 的 use_tanh 为 false最终行为符合论文,配置名容易误导。
Code regularization\(\lVert\mathbf{z}\rVert_2^2/\sigma^2\)求 sample-expanded code 的 \(\lVert\mathbf{z}\rVert_2\),乘 1e-4,前 100 epochs warm up实现形式与论文 squared norm 有差异。
Test reconstructionMAP;定量 mesh \(512^3\)800 iterations、每步 8000 samples、LR 5e-3 半程降 10 倍、mesh \(256^3\)复现表格需提高 resolution。
Table 3 selectionchair / plane 各重建两次,保留 Chamfer 较低者README 明确发布流程未实现该选择使用 ground truth metric。
Shape completion正文核心实验README 明确当前 release 没有 completion codeTable 4 与 Figure 8–11 无法完整重跑。
公开 splitsShapeNet 五类chair 3281/832;plane 1780/456;table 4859/1216;lamp 897/213;sofa 1628/411completion 的 v1 / 3D-EPN 流程缺失。
latent ~ N(0, 0.01²)
repeat 800 iterations:
    sample 8000 balanced positive / negative SDF points
    clamp prediction and target to [-0.1, 0.1]
    loss = L1 + 1e-4 * mean(latent²)
    Adam updates latent only; LR 5e-3 becomes 5e-4 halfway
query a 256³ grid and extract level 0 with Marching Cubes
Reproducibility Boundary

本页面核对论文、补充材料、arXiv 源文件与官方代码,没有下载 ShapeNet 或重跑训练。训练 GPU 型号、随机种子、混合精度、完整 completion 脚本和论文 checkpoint 均未公开。

Reviewer commentary

Strengths

  • 连续 implicit representation 避免固定 voxel resolution,能表达孔洞、薄结构与闭合表面。
  • Auto-decoder 把稀疏、部分观测统一进 latent MAP objective。
  • 实验覆盖 representation、completion、interpolation、noise、network depth、truncation、AE/VAE 对照与多种几何指标。
  • Table 3 与 Table 5 显示跨五类 ShapeNet 的广泛优势。

Weaknesses

  • 每个测试形状都需迭代优化 code,9.72 秒显著慢于 AtlasNet。
  • canonical pose 是强假设,真实场景还需估计 SE(3)。
  • Table 3 的 oracle-of-two 选择依赖 ground truth。
  • 公开仓库缺失 completion,核心结果无法完整重跑。
  • 单个全局 code 面对多物体场景和局部高频细节时扩展能力有限。
Paper Verified
标准化 ShapeNet mesh 或 canonical-view partial depth 下,DeepSDF 在指定评测获得强 reconstruction / completion 数值。
Author Claim
插值与 MNIST 对照支持 latent space 平滑、完整;三维 coverage 没有独立测量。
Our Interpretation
长期影响来自“坐标输入的连续神经场 + test-time latent optimization”的组合。
Unresolved
regularization、epochs、learning rate、mesh resolution 与评测选择需要复现者明确固定版本。
Research Extension

面向 procedural material 或结构化资产,可把全局 code 拆成可组合局部 codes,并让 renderer feedback 参与 test-time optimization;同时预测 validity 与 uncertainty,使结果兼顾可执行、可编辑和多视角一致。这属于研究设想,论文没有验证。

一手来源

  1. CVPR 2019 Open Access 正式页面,pp. 165–174,DOI 10.1109/CVPR.2019.00025,含 PDF、supplement 与视频。
  2. arXiv:1901.05103v1,19 页正文与补充材料合订本;本页面还核对原始 TeX 与 Figure 文件。
  3. Meta Research 官方 DeepSDF 仓库,commit 48c19b8d49ed5293da4edd7da8c3941444bc5cd7。
  4. ShapeNet,主要数据来源。
  5. 3D-EPN,completion baseline 与 split 来源。