作者:Lovre Antonio Budimir, Yushi Guan, Steve Ryhner, Sven Lončarić, Nandita Vijaykumar

单位:Faculty of Electrical Engineering and Computing, University of Zagreb; Department of Computer Science, University of Toronto; Vector Institute

会议:2026 Arxiv

链接:https://arxiv.org/abs/2605.13600

研究动机

SCOUP-0

3D Language Gaussian Splatting 的目标是在 3DGS 场景上挂载语言对齐的视觉特征,让三维场景可以被文本查询,例如在重建好的房间里直接问 "red cup""knife""bag of cookies",系统能够在 3D 空间和渲染视角中给出对应区域。

这件事的难点不在于 3DGS 本身,而在于语言特征太重。典型流程会先用 SAM 把每张图切成区域,再用 CLIP / OpenCLIP 给每个区域提取 512 维语义特征。如果把这种高维特征直接存到几百万个 Gaussian 上,存储、聚合和渲染都会变慢;如果用 scene-specific autoencoder 或 codebook 在 3D 里优化,又会引入反复 feature rasterization,导致每个场景都要很长的语义重建时间。

已有方法大致卡在三个目标之间:

  1. 直接 feature uplifting 快,但每个 Gaussian 存高维特征,内存和渲染代价高。

  2. autoencoder 压缩能省存储,但渲染时要解码,速度和语义保真都会受影响。

  3. LangSplatV2 这类 codebook 方法让渲染更快,但 codebook 和 Gaussian coefficient 需要通过 3D rasterization 联合优化,训练慢且显存占用高。

SCOUP 的核心问题就是:能不能同时做到快速 2D 到 3D 语义重建、低存储开销、快速语言特征渲染,并且不牺牲 open-vocabulary 查询精度?

核心方法

SCOUP 的关键选择是把语言表征学习从 3DGS 优化里拆出来:先在 2D 图像区域上学习稀疏 codebook 表示,再把稀疏系数 uplift 到 3D Gaussian。也就是说,昂贵的语义压缩不再发生在 millions of Gaussians 上,而是在 SAM mask 对应的 2D region 上完成。

1. 2D Sparse Coding:先在 CLIP 原生空间里压缩

论文首先沿用 LangSplat 系列的语义特征提取方式:对每个输入视角,用 SAM ViT-H 在三个层级生成 segmentation masks,再用 OpenCLIP ViT-B/16 为每个 mask 编码 512 维 CLIP 特征。由于同一个 SAM region 内的像素共享同一个 CLIP embedding,SCOUP 不为每个像素单独学系数,而是为 region 学一个稀疏 coefficient vector。

给定 scene-aware codebook $C \in \mathbb{R}^{L \times D}$,每个像素/区域的 CLIP 特征 $F_v(p)$ 被近似为:

约束是 $W_v(p)$ 最多只有 $K$ 个非零元素,且系数非负、和为 1。论文实现上用 normalized soft top-K softmax 来约束 region-wise logits,并用 cosine reconstruction loss 联合优化 codebook 与 region coefficient。

这个设计有两个细节值得记:

  1. codebook 学习发生在 2D CLIP feature 空间,而不是 3D Gaussian 空间,因此监督域与文本查询最终比较的语义空间一致。

  2. region 数量远少于 Gaussian 数量,小物体和大物体也更容易在 codebook 学习中保持相对均衡;如果先把 dense feature uplift 到 3D 再压缩,大物体对应的 Gaussian 数量会压倒小物体。

2. Sparse Coefficient Uplifting:只把非零系数投到 3D

完成 2D sparse coding 后,SCOUP 不再 uplift 完整 512 维 CLIP feature,而是只 uplift 每个 region 的 $K$ 个非零 codebook 系数。对于第 $i$ 个 Gaussian,论文用 Gaussian-to-pixel association 在多视角中聚合 coefficient:

这里 $S_i$ 是第 $i$ 个 Gaussian 在各视角中关联到的像素集合,$e_i(v,p)$ 表示该 Gaussian 对像素的渲染贡献权重。因为 $W_v(p)$ 是稀疏的,聚合复杂度从 dense feature uplifting 的 $O(|S_i|D)$ 降为 $O(|S_i|K)$。论文实验里使用 $D=512, K=4$,所以这是数量级上的差异。

3. Top-K Filtering:把多视角聚合当成语义投票

多视角聚合后的 $w_i$ 可能不再严格只有 $K$ 个非零项,因为不同视角会激活不同 codebook atoms。SCOUP 把这个现象解释为一个投票过程:如果某个 codebook atom 在多个视角中反复出现,它的累计权重大,说明这是跨视角一致的语义;反之,小权重项更可能是遮挡、分割误差或视角噪声。

因此论文对每个 Gaussian 的聚合向量再做一次 Top-K:

这样每个 Gaussian 最终只存 $K$ 个 coefficient value 和对应 index。这个步骤同时带来三件事:压低存储、加速渲染、过滤多视角不一致的语义噪声。

4. Sparse Coefficient Rendering:渲染稀疏系数,再乘 codebook

推理时,3DGS 渲染的不是 512 维 dense feature,而是每个 Gaussian 上的稀疏 coefficient。渲染到 2D 后得到稀疏 coefficient map:

最后用一个矩阵乘法恢复 CLIP feature:

相比 autoencoder 解码,这一步没有神经网络 decoder;相比 dense feature rasterization,它只访问非零系数。论文还沿用 LangSplatV2 的设置,三个 SAM semantic levels 独立处理,并在渲染时同时输出三个层级的 sparse coefficient maps。

数据集

论文评估的是 open-vocabulary 3D scene understanding,主要使用三个数据集:

  1. LERF-OVS:包含 4 个用 iPhone/Polycam 采集的 in-the-wild 场景,并带有文本查询对应的 segmentation masks 和 localization points。论文报告 open-vocabulary localization 的 mAcc,以及 segmentation 的 IoU。

  2. Mip-NeRF360:使用 GAGS 提供的标注,在 4 个室内/室外场景上报告 IoU。

  3. 3D-OVS:在 bed、bench、room、sofa、lawn 这 5 个长尾物体场景上报告 segmentation IoU。

算力

论文明确说明所有实验都在 NVIDIA RTX A6000 GPU 上进行。

训练和实现设置如下:

  1. 输入是只用 RGB 图像训练 30,000 iterations 得到的 3DGS scene。

  2. SAM ViT-H 生成三个层级的 masks,OpenCLIP ViT-B/16 编码每个 mask,得到 512 维语义特征。

  3. 每个 semantic level 的 2D sparse coding 训练 4,000 epochs,Adam 优化器,学习率 0.0007。

  4. 默认 codebook size $L=64$,每个区域和 Gaussian 保留 $K=4$ 个非零系数。

  5. codebook 用 CLIP-encoded masked regions 做 k-means 初始化。

实验结果

1. LERF-OVS 上的主结果

SCOUP-1

SCOUP-2

在 LERF-OVS 上,SCOUP 的整体 localization mAcc 达到 86.9,高于 LangSplatV2 的 84.1 和 VALA 的 83.9。分场景看,它在 Figurines 上提升最明显,达到 85.7;Kitchen 上也达到 95.5。

segmentation mIoU 的整体结果是 64.4,高于 LangSplatV2 的 59.9 和 VALA 的 61.7。提升主要来自 Ramen 和 Teatime 两个场景,说明 sparse coding + Top-K filtering 对跨视角语义一致性确实有帮助。

从可视化结果看,SCOUP 的热力图边界更集中,尤其是 "wavy noodles""red cup" 这类小目标或局部目标上,LangSplatV2 的响应更容易扩散到背景或相邻物体。

2. Mip-NeRF360 与 3D-OVS

SCOUP-3

SCOUP-4

Mip-NeRF360 上,SCOUP 的 overall mIoU 为 69.5,略高于 LangSplatV2 的 69.4,显著高于 LangSplat 的 57.3 和 GOI 的 58.5。具体场景里,Room 为 66.5,Counter 为 82.3,Garden 为 57.4,Bonsai 为 71.7。

3D-OVS 上,SCOUP 的 overall mIoU 为 92.6,低于 Occam’s LGS 的 95.0 和 LangSplatV2 的 94.6。论文指出主要问题来自 Bed 场景里的单个查询 "black leather shoe":SAM 在预处理阶段会把 shoe 和周围 white sheet 区域混在一起,导致该 query 明显拖低平均值;如果排除这个 query,Bed 场景 mIoU 会升到 96.4。

这组结果说明 SCOUP 不是在所有场景上绝对领先,而是在保持极高效率的同时基本维持或接近 SOTA 语义精度。它的短板也很清晰:上游 SAM mask 一旦错分,后续稀疏系数再干净也很难恢复对象边界。

3. 速度、显存与渲染

SCOUP-5

Table 3 是这篇论文最关键的结果之一。相比 LangSplatV2:

  1. Mip-NeRF360 上,2D 到 3D 语义重建时间从 684 分钟降到 1.4 分钟。

  2. 3D-OVS 上,重建时间从 570 分钟降到 0.5 分钟。

  3. GPU memory 从 37.7GB / 28.5GB 降到 10.4GB / 4.4GB。

  4. 3D 到 2D rendering speed 保持相同,都是 15 FPS。

换句话说,SCOUP 主要赢在 per-scene semantic reconstruction 的部署门槛:以前是小时级,现在是分钟甚至一分钟内。

4. Ablation:Top-K 不是只为省存储

SCOUP-6

消融实验比较了三种路线:

  1. dense feature uplifting:mIoU 60.5,mAcc 82.0,2D→3D 需要 21.3 分钟,3D→2D 只有 0.5 FPS,存储 7.8GB。

  2. sparse uplifting 不加 Top-K:mIoU 60.0,mAcc 81.2,2D→3D 降到 0.7 分钟,3D→2D 提升到 22.0 FPS,存储 1.0GB。

  3. sparse uplifting + Top-K:mIoU 64.4,mAcc 86.9,2D→3D 仍为 0.7 分钟,3D→2D 进一步到 29.3 FPS,存储降到 0.1GB。

这说明 Top-K filtering 不只是压缩技巧。它把多视角中低共识的 coefficient 去掉以后,语义质量反而提升,mIoU 从 60.0 提高到 64.4,mAcc 从 81.2 提高到 86.9。

5. 附加分析与失败案例

SCOUP-7

SCOUP-8

Figure 4 进一步拆解了效率来源:2D sparse coding 的编码时间明显低于 LangSplat 的 MLP autoencoder;右图显示 sparse coefficient uplifting 相比 full-dimensional feature uplifting 在维度增加时几乎保持平坦,而 dense uplifting 随 feature dimension 快速增长。

Figure 5 对比了多视角一致性。SCOUP 的 sparse coding 特征在 cosine similarity 分布上更接近 ground-truth CLIP embeddings,而 MLP autoencoder 解码特征的一致性更分散。这支持了论文的主张:在 CLIP 原生空间里做 scene-aware sparse coding,比学一个解码器再还原 CLIP feature 更保真。

SCOUP-9

Figure 6 展示了 direct feature uplifting 的局限:透明或半透明物体,例如 glass,容易因为 3DGS opacity 较低而得到不稳定语义响应。这不是 SCOUP 独有的问题,而是依赖 3DGS visibility / Gaussian-to-pixel association 的方法都会继承的风险。

SCOUP-10

附加 qualitative results 也显示,在 "plate""sake cup""pumpkin""ketchup" 等查询上,SCOUP 的响应通常比 LangSplat 和 LangSplatV2 更聚焦,尤其是在目标较小、遮挡复杂或背景纹理干扰较多时。

优势与不足

优势

  1. 把语义压缩从 3D Gaussian 空间挪到 2D CLIP/SAM region 空间,避开了 per-scene 反复 feature rasterization,是这篇论文最本质的效率来源。

  2. 稀疏系数 uplift 的复杂度由 $D$ 变成 $K$,默认 $D=512, K=4$,所以在语言特征维度很高时优势明显。

  3. Top-K filtering 同时承担压缩和 denoising 的作用,把多视角聚合自然解释成 semantic voting,设计简单但很有解释力。

  4. 在 LERF-OVS 上达到更高 overall mAcc 和 mIoU,同时把 LangSplatV2 的小时级重建时间压到分钟级,实用价值很强。

不足

  1. 整条链路仍然依赖 SAM 和 CLIP/OpenCLIP 的质量。SAM mask 错分、透明物体 opacity 不稳定、CLIP 对细粒度类别区分不足,都会传递到 3D 语义场。

  2. SCOUP 需要已有 3DGS scene 和 Gaussian-to-pixel association,因此它解决的是 3DGS 之后的语义挂载问题,不是端到端重建几何与语义。

  3. 3D-OVS 上并非全面最优,Bed 场景表现受单个 query 明显影响,说明在长尾查询和局部分割失败时仍不够鲁棒。

  4. 论文主要评估 object localization / segmentation,对语言驱动导航、机器人交互、动态场景编辑等下游任务还没有直接验证。

记忆点

  1. 不要在 millions of Gaussians 上学习 codebook,先在 2D SAM region 上把 CLIP feature 稀疏化。

  2. Sparse coefficient uplifting 的关键收益来自 $O(|S_i|D)$ 到 $O(|S_i|K)$,默认 $512 \rightarrow 4$。

  3. Top-K filtering 可以看作跨视角语义投票:高权重是共识,低权重是噪声。

  4. 这篇论文真正解决的是 3DLGS 的工程瓶颈:把 open-vocabulary 3D semantic reconstruction 从小时级拉到分钟级,同时保持接近或优于主流方法的查询精度。

  5. 方法的上限仍被 SAM/CLIP 和 3DGS visibility 约束,透明物体、小物体错分、长尾 query 是后续值得继续看的方向。