NeuSDFusion: A Spatial-Aware Generative Model for 3D Shape Completion, Reconstruction, and Generation¶
会议: ECCV 2024
arXiv: 2403.18241
领域: 图像生成
一句话总结¶
提出 NeuSDFusion,一个基于混合三平面 SDF 表示(NeuSDF)和空间感知 Transformer 自编码器的 3D 形状生成框架,通过保持三平面间的空间对应关系,在无条件生成、多模态形状补全、单视图重建和文本到 3D 生成等任务上达到 SOTA 性能。
研究背景与动机¶
- 三平面表示的兴起:三平面(tri-plane)用三个正交 2D 平面紧凑表示 3D 信息,相比体素/点云更高效
- 现有方法忽略空间一致性:
- NFD、DiffusionSDF 等将三个平面在通道维拼接当作 RGB 图像处理,忽略不同平面同一坐标之间没有显式关系
- Rodin 的 3D 感知卷积使用池化聚合特征,丢失上下文信息,无法生成平滑表面
- 3D 表示的内存限制:T-SDF 用 3D 体素存储距离场,内存消耗大,难以捕获精细形状特征
- NFD 的表示局限:三平面从离散占用网格学习,表示能力受网格分辨率限制
- 核心目标:设计一个高效的 3D 表示和生成框架,能够在保持空间一致性的同时生成高保真、多样化的 3D 形状
方法详解¶
整体框架¶
三阶段流水线: 1. NeuSDF 拟合:将每个 3D 物体编码为三平面 + MLP 的混合 SDF 表示 2. 空间感知自编码器:将原始三平面压缩为紧凑的潜在三平面表示,保持空间对应关系 3. 潜在扩散模型:在压缩的潜在空间中进行条件/无条件生成
关键设计¶
NeuSDF 表示: - 将 3D 形状用三个轴对齐平面(XY、YZ、XZ)表示 - 查询任意 3D 点 \(p\) 时,投影到三个平面通过双线性插值获取特征 \(F_{xy}, F_{xz}, F_{yz}\),逐元素求和后经 MLP 解码为 SDF 值 - 优化方法:对每个物体联合优化三平面和 MLP 参数 - 采样策略:表面点(\(\Omega_0\))+ 空间填充点(\(\Omega\)),并采样法线向量作为额外监督
空间感知 Transformer 自编码器: - 问题:现有方法(roll-out、通道拼接)使用 CNN 处理三平面,导致跨平面空间关系丢失 - Roll-out 在三平面边界处卷积跨越两个平面,产生边界缺陷 - 通道拼接忽略不同平面同一位置间缺乏关系的事实 - 解决方案:U 形 Transformer 编码器-解码器结构 - 每个阶段先用分组卷积独立下采样各平面(参数更高效) - 再将三平面展平为 1D token 序列 \(x \in \mathbb{R}^{C \times 3HW}\) 输入 Transformer - Transformer 注意力学习三个平面间的全局关系 - 空间感知位置嵌入(SAPE):为三个平面各创建独立的可学习位置嵌入,引入归纳偏置使每个 token 能区分其他 token 属于同一平面还是不同平面 - 线性注意力:使用线性注意力机制将复杂度从 \(O(n^2)\) 降为 \(O(n)\),使得可以直接处理高分辨率三平面(第一阶段 \(3 \times 64 \times 64 = 12288\) tokens)
条件扩散模型: - 在潜在三平面空间训练 U-Net 扩散模型 - 条件注入:通过 cross-attention 层将条件编码器输出(图像/文本/点云特征)注入 U-Net 的每个Block - Classifier-free guidance:10% 概率将条件替换为零掩码
损失函数¶
NeuSDF 拟合:\(\mathcal{L}_{geo} = \mathcal{L}_{sdf} + \mathcal{L}_{normal} + \mathcal{L}_{eikonal}\) - SDF 损失:表面点距离为零 + 空间点与真值 SDF 值一致 - 法线损失:梯度方向与真值法线一致 - Eikonal 损失:SDF 梯度模长约束为 1(保持 SDF 的物理特性)
自编码器:\(\mathcal{L}_{ae} = \mathcal{L}_{rec} + \mathcal{L}_{KL} + \mathcal{L}_{geo}\)
潜在扩散:\(\mathcal{L}_{ldm} = \|\Psi(z_t, \gamma(t)) - z_0\|^2\)
实验关键数据¶
主实验¶
无条件生成(ShapeNet,1-NNA↓):
| 方法 | 表示 | Airplane CD/EMD | Chair CD/EMD | Car CD/EMD |
|---|---|---|---|---|
| IM-GAN | Occupancy | 79.48/82.94 | 58.59/69.05 | 95.69/94.79 |
| LION | Point Cloud | 67.41/61.23 | 53.70/52.34 | 53.41/51.14 |
| 3DQD | TSDF | 56.29/54.78 | 55.61/52.94 | 55.75/52.80 |
| NeuSDFusion | NeuSDF | 52.33/52.47 | 51.95/52.60 | 53.06/51.11 |
多模态形状补全(×10²):
| 方法 | Bottom Half MMD↓ | Bottom Half AMD↓ | Octant MMD↓ | Octant AMD↓ |
|---|---|---|---|---|
| AutoSDF | 3.51 | 8.20 | 5.72 | 12.79 |
| 3DQD | 2.93 | 6.30 | 4.69 | 10.93 |
| NeuSDFusion | 2.29 | 5.90 | 3.03 | 9.59 |
消融实验¶
单视图重建(Pix3D):
| 方法 | CD↓ | F-Score↑ |
|---|---|---|
| Pix2Vox | 3.00 | 0.39 |
| AutoSDF | 2.28 | 0.42 |
| SDFusion | 1.85 | 0.43 |
| NeuSDFusion | 0.92 | 0.61 |
文本引导生成:
| 方法 | PMMD↓ | CLIP-S↑ | FPD↓ | TMD↑ |
|---|---|---|---|---|
| 3DQD | 1.49 | 32.11 | 59.00 | 2.80 |
| NeuSDFusion | 1.49 | 32.52 | 55.01 | 3.20 |
关键发现¶
- 表示能力:NeuSDF 在所有类别的无条件生成上均优于 TSDF(3DQD)、点云(LION)等表示,证明混合三平面 SDF 表示的优越性
- 空间一致性:与 roll-out 和通道拼接方法对比,空间感知 Transformer 自编码器生成的物体表面更完整光滑,无边界伪影
- 单视图重建:CD 从 SDFusion 的 1.85 降至 0.92(50% 提升),F-Score 从 0.43 提升至 0.61(42% 提升),得益于 NeuSDF 表示能捕获更精细的形状细节
- 多模态补全:在质量指标(MMD/AMD)上领先,同时保持有竞争力的多样性(TMD),说明潜在空间的结构化有利于条件生成
亮点与洞察¶
- 混合表示的优雅设计:三平面 + MLP 的 NeuSDF 表示既享有三平面的高效性,又通过连续 SDF 学习避免了离散网格的分辨率限制
- 空间感知位置嵌入(SAPE):简单而有效的归纳偏置,使 Transformer 能区分三个平面间的空间关系
- 线性注意力的关键作用:使得直接在 12288 长度的 token 序列上做全局注意力成为可能,突破了 LRM 等方法 32 分辨率的限制
- 通用的条件生成框架:同一个管线支持无条件生成、形状补全、单视图重建和文本到 3D,展示了表示和架构的通用性
局限性¶
- 第一阶段的 NeuSDF 拟合需要对每个物体独立优化,数据集规模扩大时耗时较长
- Marching Cubes 提取形状的分辨率仍然受限
- 线性注意力虽降低了复杂度,但在特别复杂的几何细节上可能不如完整的自注意力
评分¶
⭐⭐⭐⭐ (4/5) — 三阶段管线设计清晰完整,NeuSDF 表示和空间感知 Transformer 均有实质创新,在四个任务上的全面评估令人信服,对 3D 生成领域有重要推进