Conference

Neural Progressive Meshes

Yun-Chun Chen, Vladimir G. Kim, Noam Aigerman, Alec Jacobson

University of Toronto; Adobe Research

一句话总结

本文提出 Neural Progressive Meshes,用一个基于细分的编码器-解码器网络把高分辨率网格压缩成”粗网格 + 稀疏逐面特征”,特征可按重要性从服务端渐进传输到客户端,在相同压缩率下重建质量显著优于传统抽取、细分与渐进网格方法。

研究背景

  • 领域现状:3D 资产在移动端、VR/AR 上的传输需求快速上升,常用做法是网格抽取(decimation)和 LoD 技术来控制带宽预算;渐进网格(Progressive Meshes)可增量传输逐步提升质量。
  • 核心痛点:抽取类方法在降面数时不可避免地丢失几何细节,用平面近似复杂结构;经典细分(Loop、Butterfly)用固定的手工滤波器,只能恢复分段光滑表面、补不回原始细节;而把整个网络过拟合到单个网格的神经方法(如 NCS、ACORN、NGLOD)需要为每个形状传整套网络权重,无法复用不同形状间共享的细节,成本高。
  • 本文 idea:观察到不同形状的局部几何细节常呈现相似模式,可以用一个在大量曲面上预训练的共享生成空间来表示。于是把几何细节编码进逐面特征,用来引导神经细分过程重建高分辨率几何;再配合稀疏性约束,让特征可按重要性排序、渐进传输。

方法

整体框架:服务端先用 QSlim 把输入网格抽取到 400 面的粗网格 \(M_0\),再通过中点细分构造一串 LoD 网格 \(M_0 \ldots M_L\)(\(L=3\),每层面数 4 倍增长),并用连续自参数化把细分顶点映射回原网格得到真值坐标。编码器把各层几何细节编码为逐面特征并逐层下采样;解码器仅从粗网格 \(M_0\) 出发做神经细分重建,可选地接收编码器传来的逐面特征来逐步提升质量。同层编码器与解码器之间用跳连(U-Net 式)相连。

flowchart LR
  A["输入网格 M"] --> B["QSlim 抽取 + 中点细分<br/>得到 LoD 序列 M0..ML"]
  B --> C["编码器 E<br/>逐层下采样得逐面特征 f_i"]
  C -->|"传输 M0 + 稀疏特征"| D["解码器 D<br/>神经细分重建"]
  D --> E["高分辨率网格"]
  C -. "同层跳连" .-> D

关键设计:

  1. 基于细分的编码器:改编自 SubdivNet,在 LoD 网格上定义卷积与池化(高分辨率网格每四个三角形对应上一层一个三角形)。最高层输入是 13 维逐面特征(7 维形状特征:面积、三个内角、面法向与顶点法向内积;6 维位姿特征:面中心坐标与面法向)。与 SubdivNet 不同,每一层的输入是”上一层输出特征 \(f_i\)”与”当前层网格算出的 13 维特征 \(f_i^{\text{mesh}}\)”的拼接,从而把每个 LoD 层的局部细节都注入编码过程,最终输出 8 维学习特征。
  2. 基于细分的解码器:改编自 Neural Subdivision,但不用 half-flap 表示,而是用相邻两个三角形的特征来预测下一细分层中点的位移。解码器把粗网格的 \(f_0^{\text{mesh}}\) 与学习特征 \(f_0\) 拼接作为输入;若某些特征未传输则置零,仍能重建出合理形状。
  3. 重建损失:一是顶点位置的 \(\ell_2\) 距离 \(L_{\text{corr}} = \sum_{i=1}^{L} \frac{1}{\lvert V_i \rvert} \lVert \tilde{V}_i - V_i \rVert^2\);二是 Jacobian 域的损失 \(L_{\text{jacobian}} = \sum_{i=1}^{L} \frac{1}{\lvert F_i \rvert} \sum_j \lVert J_j^i - I \rVert^2\),匹配法向、曲率等微分属性。
  4. 稀疏性损失驱动渐进传输:\(L_{\text{sparsity}} = \sum_{i=0}^{L-1} \frac{1}{\lvert F_i \rvert} \lVert f_i \rVert_1\),鼓励对重建无用的特征归零。总损失 \(L = L_{\text{corr}} + \alpha L_{\text{jacobian}} + \beta L_{\text{sparsity}}\)(\(\alpha=1,\ \beta=0.1\))。训练后按特征幅值排序,从大到小渐进传输,客户端可在任意带宽/资源预算下停止。

实验结果

在 Thingi10K 上(从 6418 个网格中采样 1000 个,按 80/10/10 划分),在相同压缩率 \(CR=61.39\) 下与各类基线比较重建质量。\(d_{pm}\) 为点到网格平均距离,\(d_{normal}\) 为平均法向误差,越低越好。

方法 \(d_{pm}\) (×10⁻⁴) ↓ \(d_{normal}\) ↓
QSlim 30.11 13.21°
Loop 68.47 14.98°
Butterfly 40.55 16.99°
SubdivFit 27.33 15.41°
Neural Subdivision 19.03 11.21°
本文 4.12 7.19°

本文在两项指标上均大幅领先,\(d_{pm}\) 比次优的 Neural Subdivision 低约 4.6 倍。其余实验以文字补充:渐进特征消融显示,不传特征时 \(d_{pm}=14.56\),加 40 个特征降到 6.81,加 400 个降到 4.12,验证了”传得越多、质量越好”的渐进性;LoD 消融中三角形数从 1600 增到 25600,质量提升但边际收益递减。与神经过拟合方法(NCS、ACORN、NGLOD)相比,本文在质量相当的同时压缩率高出一个量级。相比无损的 Progressive Meshes,在 \(CR>10\) 时优势明显扩大,说明本文尤其适合需要大幅压缩的场景。运行时上,A40 GPU 下编码器前向约 4.02s、客户端细分到 25600 面约 4.58s。

亮点与局限

  • 亮点:
    • 用共享的学习生成空间表示跨形状复用的局部几何细节,摆脱了”每个形状过拟合一套网络”的高成本模式。
    • 稀疏 + 幅值排序天然支持渐进传输,客户端可在任意带宽预算下截断,且不改变压缩率就能选择细分层级来平衡计算开销。
    • 只需传输粗网格的拓扑(其余靠细分定义),保证了输入的流形性与水密性;相同压缩率下重建质量全面领先。
  • 局限:
    • 属于有损压缩,在极低压缩率区间不及无损的 Progressive Meshes。
    • 对拓扑复杂、含纤细薄结构的形状会失效。
    • 依赖 QSlim 抽取到固定 400 面和 TetWild 预处理,粗网格质量与预处理会影响上限;训练需约 2 天。

延伸思考

  • 该方法把”神经细分”从单形状过拟合推进到可泛化的共享细节空间,思路上与图像超分辨率的先验学习相通;能否引入注意力或更强的图卷积进一步扩大可表达的细节空间值得探索。
  • 渐进特征的选择目前基于幅值排序,附录指出用重建损失来判定特征重要性能略微提升效果,说明”传哪些特征”本身是一个可优化的率失真问题,或可结合视点可见性做视点自适应传输,正好契合 VR/AR 场景。
  • 对薄结构和复杂拓扑失效的问题,提示未来可结合拓扑感知的抽取或隐式表示,处理细分难以覆盖的几何。