作者:Biao Zhang, Jiapeng Tang, Matthias Nießner, Peter Wonka

单位:KAUST, Technical University of Munich

会议:ACM Transactions on Graphics 42(4), SIGGRAPH 2023

链接:arXiv / Project / Code / DOI

研究动机

3DShape2VecSet 讨论的是一个很基础但容易被低估的问题:如果要把扩散模型真正搬到 3D 形状生成里,应该在什么表示空间里扩散?

2D 图像扩散模型可以直接在像素或压缩 latent 上工作,因为图像天然是规则网格。但 3D 形状没有这么统一的表示:voxel 规则但立方级开销太大,point cloud 轻量但缺少连续表面,mesh 结构复杂,neural field 连续且能表达完整表面,却本身像一个无限维函数,不能直接作为扩散模型的固定长度输入。

论文选择的路线是 latent diffusion:先训练一个 shape autoencoder,把 3D 形状压成固定大小 latent,再在这个 latent 空间训练扩散模型。问题就变成:这个 latent 既要能还原细节,又要足够紧凑,还要适合 Transformer/attention 处理。传统 global latent 太粗,regular grid latent 太大,irregular grid latent 又把每个 latent 绑到显式空间坐标上,生成模型还要学习坐标和特征的联合分布。

3DShape2VecSet-0

3DShape2VecSet 的核心判断是:对生成模型来说,3D 形状未必需要被表示成“带坐标的一堆局部特征”,也可以表示成“无显式位置的一组 latent vectors”。空间查询点和 latent set 之间的关系交给 cross-attention 学习。这样既保留 neural field 的连续解码能力,又把扩散模型要建模的对象变成一个固定长度的 latent set。

核心方法

论文先把已有 neural field 表示放到同一个视角里比较。global latent 是一个全局码,表达容量不足;regular grid/irregular grid 把 latent 放到空间位置上,再通过距离或插值获得查询点的局部特征;3DShape2VecSet 则去掉显式 latent position,只保留一组 latent vectors,并用 attention 学习查询点和 latent 的相似性。

3DShape2VecSet-1

这个变化看起来很小,但它改变了建模对象。过去 irregular-grid 方法需要保存 ${ \mathbf{f}i, \mathbf{x}_i }{i=1}^{M}$,其中 $\mathbf{x}_i$ 是 latent anchor 的空间位置;3DShape2VecSet 只保存:

查询点 $\mathbf{x}$ 对应的特征不再由欧氏距离核插值得到,而是由 cross-attention 式的可学习相似度得到:

然后用一个 fully connected layer 输出 occupancy:

直观地说,query point 不再问“离我最近的空间 anchor 是谁”,而是问“在 latent set 里,哪些 token 对解释我这个空间位置最有用”。这也是论文把 RBF、neural field 和 Transformer attention 连接起来的关键。

3DShape2VecSet-2

整个 autoencoder 分成三个部分:shape encoding、KL regularization block、shape decoding。

3DShape2VecSet-3

第一步是从输入 mesh 或 point cloud 中采样点云,并把大量点压缩成较小的 latent set。论文比较了两种 query 设计:一种是 DETR/Perceiver 风格的 learnable query set,另一种是从输入点云中用 FPS 采样点作为 point queries。实验显示 point queries 更好,原因也比较合理:固定 learnable queries 对每个形状都一样,而 point queries 至少保留了输入依赖的几何线索。

3DShape2VecSet-4

第二步是 KL regularization。它不是表面重建所必需的,而是为了第二阶段扩散模型训练。论文把每个 latent $\mathbf{f}_i$ 投影成低维均值和方差,再重参数化采样得到更小的 $\mathbf{z}_i$:

KL 项约束这个低维 latent 空间,使扩散模型面对的分布更规整,同时压缩总 latent 尺寸 $M \cdot C_0$。论文的一个重要经验是:相比减少 latent 数量 $M$,降低通道数 $C_0$ 更像是一种可接受的压缩方式,因为它对重建质量伤害较小,但能明显降低生成阶段难度。

3DShape2VecSet-5

第三步是 latent set diffusion。扩散模型不是在点云、voxel 或 mesh 上去噪,而是在压缩后的 latent set ${\mathbf{z}_i}$ 上去噪。无条件生成只需要 self-attention 处理 latent set;条件生成则增加 cross-attention,把类别、图像、文本或局部点云条件注入 denoising network。

3DShape2VecSet-6

3DShape2VecSet-7

这里值得注意的是,论文并不是提出一个全新的扩散训练公式,而是把 EDM 的 denoising 思路放进 3D latent set 表示中:

因此方法贡献主要不在“扩散公式本身”,而在把 3D shape 表示改造成一个适合 attention 和 latent diffusion 的固定长度集合。

数据集

论文的主实验使用 ShapeNet-v2,包含 55 个 man-made object 类别,并采用 3DILG 中的 train/val split。预处理时,每个形状先转成 watertight mesh,再归一化到 bounding box;训练 neural field 时,从 3D 空间和近表面区域分别随机采样 occupancy 查询点。

不同任务的数据和条件来源如下:

  1. shape autoencoding:ShapeNet-v2 mesh/point cloud,输入点云大小为 2048。
  2. unconditional / category-conditioned generation:完整 ShapeNet 形状集合,其中类别条件覆盖 55 类。
  3. single-view reconstruction:使用 3D-R2N2 提供的渲染图像,每个形状 24 个随机视角,图像尺寸为 $224 \times 224$。
  4. text-conditioned generation:使用 ShapeGlot 文本描述。
  5. point-cloud completion:从完整点云中构造 partial point cloud patches 作为条件。

这套数据设置的优势是覆盖了重建、无条件生成、类别条件生成、图像条件、文本条件和点云补全多个入口;局限是它仍主要建立在 ShapeNet 这类干净、类别化、以物体为中心的数据上,对真实扫描、复杂场景级几何、拓扑噪声和非刚性物体的泛化没有被系统验证。

算力

论文给出了比较明确的训练设置。shape autoencoder 使用 8 张 A100,batch size 为 512,训练 $T=1600$ epochs;扩散模型使用 4 张 A100,batch size 为 256,训练 $T=8000$ epochs。采样时,最终 latent set 通过 18 个 denoising steps 得到。

这说明方法虽然把生成空间压缩到了 latent set,但整体仍是重训练成本较高的两阶段系统。尤其是第一阶段 autoencoder 和第二阶段 diffusion 都需要较长训练,论文自己也把训练时间高、数据变化时可能需要重训第一阶段列为 limitation。

实验结果

实验可以分成三条证据链:表示质量、生成质量、多条件应用能力。

第一条证据是 shape autoencoding。Table 3 显示,在 ShapeNet 表面重建中,Point Queries 版本在 mean(all) 上达到 IoU 0.965、Chamfer 0.038、F-Score 0.970,整体优于 OccNet、ConvOccNet、IF-Net 和 3DILG。这里最关键的不是单个类别的数字,而是它说明“无显式位置的 latent set + attention interpolation”并没有牺牲细节表达,甚至在薄结构上比若干 grid/local latent 方法更稳。

3DShape2VecSet-8

可视化结果也支持这一点。很多失败案例都集中在椅背、篮子、栏杆、细杆这类薄结构上,3DShape2VecSet 的 point query 版本通常比 3DILG 和其他局部 grid 方法保留得更完整。

3DShape2VecSet-9

第二条证据是无条件生成。论文使用 Rendering-FID/KID 和 Surface-FPD/KPD 两类指标:前者从多视角渲染图像评估,后者从采样点云的 PointNet++ 特征评估。Table 6 中 $C_0=32$ 的版本在 Surface-FPD、Surface-KPD、Rendering-FID、Rendering-KID 上都取得最好结果,说明 latent 过小会压掉形状信息,latent 过大又会让扩散训练更难。

3DShape2VecSet-11

与 point-cloud diffusion PVD 相比,3DShape2VecSet 的差距更明显:Surface-FPD 从 2.33 降到 0.63,Rendering-FID 从 270.64 降到 17.08。这组结果支持论文的判断:如果目标是生成可还原为干净表面的 3D shape,neural field latent 比直接生成点云更适合。

3DShape2VecSet-12

3DShape2VecSet-10

第三条证据是多条件应用。论文展示了 category-conditioned generation、text-conditioned generation、partial point cloud completion 和 single-view reconstruction。它们共同说明 latent set diffusion 不是只能做单一无条件生成,而是可以通过 cross-attention 接收不同形式的条件。

3DShape2VecSet-13

3DShape2VecSet-14

3DShape2VecSet-15

3DShape2VecSet-16

最后,论文用 retrieval novelty analysis 反驳“模型只是记住训练集”的风险。生成样本与训练集中最近邻的 Chamfer distance 可视化显示,很多生成形状和最近训练样本在结构上相似但不是直接复制。这只能支持“没有明显逐样本复制”的结论,不能完全证明分布外创造能力,但作为 ShapeNet 设定下的 sanity check 是必要的。

3DShape2VecSet-17

图表取舍上,论文主体的 Fig.1-Fig.14 和 Table 1-Table 9 均已盘点。本文插入了所有核心方法图、主要生成/重建可视化、Table 1、Table 3、Table 6、Table 7;Table 2 是相关工作列表,Table 4-5 的 ablation 和 Table 8-9 的条件生成指标已在文字中总结,没有逐表插入。

优势与不足

优势

  1. 表示设计抓住了 3D latent diffusion 的核心瓶颈。论文没有直接把 2D 扩散模型搬到 voxel 或 point cloud,而是先把 neural field 压成一个适合 Transformer 的 latent set,这让 autoencoding 和 generation 两阶段可以用同一种表示串起来。

  2. 去掉显式 latent position 是一个简洁但有效的设计。它把局部几何关系从手工距离核/空间插值迁移到 attention similarity 中,减少了生成模型要同时建模位置和特征的负担。

  3. 实验覆盖面比较完整。重建、无条件生成、类别条件、文本条件、图像条件、局部点云条件都被验证,说明这个表示不是只为某一个任务调出来的。

  4. ablation 给出了可复用经验:用 $C_0$ 压缩通道比减少 latent 数量 $M$ 更稳;point queries 比 learnable queries 更适合从输入点云聚合信息;$C_0$ 过大反而可能让 diffusion 更难训。

不足

  1. 训练成本高。两阶段训练本来就重,论文设置中 autoencoder 需要 8 张 A100、diffusion 需要 4 张 A100,并且训练 epoch 很长。对于经常换数据域的应用,第一阶段重训成本会成为实际门槛。

  2. 主要验证域仍是 ShapeNet 风格物体。ShapeNet 的物体中心、干净类别和 watertight 预处理降低了真实数据复杂度。对真实扫描点云、场景级重建、开放类别和强噪声输入,论文没有给出同等强度证据。

  3. 表示虽然去掉了显式位置,但空间归纳偏置也相应减弱。attention 可以学习相似性,但是否总能在更大规模、更复杂拓扑或局部细节极密集的形状上稳定学习,是后续需要验证的问题。

  4. 评价仍依赖代理指标。Rendering-FID/KID 和 Surface-FPD/KPD 比单一可视化更可信,但它们仍不能完全评价拓扑正确性、可编辑性、纹理/材质可用性或下游资产质量。

记忆点

  1. 这篇论文最值得记住的不是“用扩散模型做 3D”,而是“先把 3D neural field 变成一个固定长度 latent set,再扩散这个 set”。

  2. 3DShape2VecSet 把 RBF 式插值、neural field 解码和 cross-attention 统一到一个公式里:查询坐标和 latent token 的相似性由网络学习,而不是由显式空间距离决定。

  3. Point Queries 是一个朴素但重要的经验:当任务是从点云压缩形状时,用输入依赖的采样点做 query,比完全固定的 learnable queries 更容易保留几何。

  4. KL block 的作用不是为了重建,而是为了给扩散模型准备一个更规整、更小的 latent 空间;压缩通道数 $C_0$ 的 trade-off 比直接减少 latent 数量 $M$ 更友好。

  5. 这篇工作适合借鉴到其他“连续对象 + 生成模型”的问题中:先找到一个固定大小、可 attention 处理、能连续解码的 latent set,再在这个 latent set 上做生成、补全或条件控制。