想象一下,你走进一个房间并告诉机器人: “找到水槽旁边的红色马克杯。”这对我们要来说不费吹灰之力。但对于计算机视觉系统而言,这需要跨越 2D 视觉数据、3D 空间几何和自然语言之间的鸿沟。这就是开放词汇 3D 场景理解 (Open-Vocabulary 3D Scene Understanding) 所面临的挑战。

近年来,3D 高斯泼溅 (3D Gaussian Splatting,简称 3DGS) 彻底改变了我们要表示 3D 场景的方式。它通过将场景表示为数百万个 3D 高斯斑点 (blobs) 来提供高质量的渲染。然而,将语义信息 (语言) 附加到这些斑点上一直是一个瓶颈。现有的方法依赖于渲染 2D 特征图来“教” 3D 模型它正在看什么。这个过程计算昂贵,搜索速度慢,而且往往导致语义特征模糊或不准确。

在这篇文章中,我们将深入探讨 Dr. Splat , 这是一篇提出“医治”这些高斯体新方法的各项研究论文。Dr. Splat 完全绕过了缓慢的渲染过程,直接将语言嵌入 (Language Embeddings) 注册到 3D 高斯体上,并对其进行压缩以实现闪电般的搜索速度。

问题所在: 渲染差异

要理解为什么 Dr. Splat 是必要的,我们首先需要看看当前的“语言嵌入式” 3DGS 方法是如何工作的。通常,这些方法采用预训练的 2D 视觉语言模型 (如 CLIP) ,并试图将其知识蒸馏到 3D 场景中。它们通过将 3D 场景渲染成 2D 图像,将这些渲染图像与 CLIP 特征进行比较,并使用梯度下降来更新 3D 参数。

虽然这听起来合乎逻辑,但它引入了一个重大问题: 渲染差异 (Rendering Discrepancy)

当你通过渲染来蒸馏特征时,中间步骤会扭曲数据。3D 高斯体内部优化后的嵌入往往会偏离原始的高质量 CLIP 嵌入。此外,搜索物体变成了一个 2D 图像检索任务 (渲染视图并逐像素寻找物体) ,而不是真正的 3D 搜索。

可视化渲染的 2D 特征与 3D 特征之间的差异。

如上图 2 所示,差异是显而易见的。在左侧 (a),传统的基于渲染的蒸馏产生的是有些准确但模糊的相似度“斑块”。在右侧 (b),Dr. Splat 的直接注册产生了清晰、精确的“杯子”定位,特别突出了把手和边缘这些特征最明显的地方。

背景: 3D 高斯与语言场

在剖析 Dr. Splat 之前,让我们简要建立一下数学基础。

3D 高斯泼溅 (3DGS)

3DGS 将场景表示为 3D 高斯体的集合。每个高斯体都有位置、协方差 (形状/旋转) 、不透明度 (\(\alpha\)) 和颜色 (\(c\))。为了渲染图像,这些高斯体被投影到 2D 平面上并混合。像素的颜色 \(\hat{\mathbf{c}}\) 计算如下:

渲染 3DGS 颜色的方程。

这里,\(T_i\) 代表透射率 (光线穿过前面高斯体的量) ,\(\alpha_i\) 是不透明度。

语言嵌入式 3DGS

为了让场景理解语言,研究人员将颜色向量 \(c\) 替换为高维特征向量 \(f\) (例如,512 维的 CLIP 嵌入) 。特征像素 \(\hat{\mathbf{f}}\) 的渲染方程变为:

渲染特征向量的方程。

标准方法是优化 3D 特征 \(\tilde{\mathbf{f}}_i\),使渲染结果 \(\hat{\mathbf{f}}\) 与从输入图像中提取的 CLIP 特征相匹配。Dr. Splat 认为,这个优化循环正是效率和准确性丧失的根源。

Dr. Splat 方法

作者提出了一个框架,消除了对语言特征进行单场景优化的需求。Dr. Splat 不是通过梯度下降来“学习”特征,而是机械地将它们注册 (Register) 到高斯体上,然后使用乘积量化 (Product Quantization) 来高效地存储它们。

Dr. Splat 工作流程概览。

上面的概览 (图 3) 勾勒出了两阶段的流程:

  1. 预处理: 优化标准的 3D 高斯体 (几何/颜色) 并构建一个通用的量化码本。
  2. 训练: 从图像中提取 CLIP 嵌入,并使用几何投票机制将它们注册到高斯体上。

1. 直接特征注册

核心创新在于将特征分配视为几何投影问题,而不是优化问题。

首先,系统从训练图像中提取语义特征图 \(\mathbf{F}^{\mathrm{map}}\)。这涉及使用 Segment Anything Model (SAM) 来获取物体掩码,并使用 CLIP 来获取这些掩码区域的特征向量。

使用掩码计算特征图的方程。

一旦我们有了逐像素的语义特征,就需要决定哪些 3D 高斯体对这些像素负责。作者提出了一个 “Top-k” 策略

对于训练图像中的特定像素,我们向场景中投射一条射线。我们要查看与这条射线相交的 3D 高斯体。然而,并不是射线上的每个高斯体都重要——有些是透明的或被遮挡的。我们根据每个高斯体对该像素的贡献计算一个权重 \(w_i\):

计算每个像素的高斯权重的方程。

我们只选择沿该射线权重最高的 Top-k 个高斯体。这些是构成物体可见表面的“主导”高斯体。

接下来,我们在所有训练图像中聚合这些权重。如果一个高斯体在多个图像 (视角) 中可见,它将累积来自所有图像的权重。

聚合所有图像权重的方程。

最后,分配给 3D 高斯体的特征向量仅仅是所有“击中”它的 2D CLIP 特征的加权平均值,并归一化为单位长度。

将最终特征分配给高斯体的方程。

这个过程如下图所示。请注意,来自 2D 特征图的特征是如何投影到沿射线的 “Top-k” 高斯体上的,从而有效地为 3D 几何体涂上语义信息。

Dr. Splat 中的特征注册过程。

2. 乘积量化 (PQ)

语义 3D 场景的一个主要瓶颈是内存。一个标准的 3DGS 场景可能有数百万个高斯体。如果我们给每一个都附加一个 512 维的浮点向量,内存使用量就会激增。

Dr. Splat 使用乘积量化 (PQ) 解决了这个问题。

PQ 是一种压缩技术。它不存储完整的向量,而是将高维向量分割成较小的子向量。对于每个子向量,它在预先计算的“码本” (质心列表) 中找到最接近的匹配项,并仅存储该质心的索引

乘积量化过程的示意图。

如图 S1 所示,512 维的向量被分割成片段。每个片段被量化为一个质心索引 (例如,索引 13,索引 5) 。

至关重要的是,作者在一个海量外部数据集 (LVIS) 上一次性训练这个 PQ 码本。他们不需要为每个新的 3D 场景重新训练它。这使得 Dr. Splat 在特征编码器方面是“免训练”的。

为什么这样更快? 在执行搜索 (例如,“找到椅子”) 时,我们不需要解压向量并计算点积。我们可以预先计算查询和码本质心之间距离的查找表 (LUT)

查找表构建方程。

此时距离计算就变成了从表中检索值的简单求和,与高维向量数学运算相比,这在计算上是微不足道的。

使用 LUT 计算距离的方程。

速度的提升是巨大的。正如下面的图表所示,使用带有查找表的 PQ 比标准的余弦相似度快几个数量级,特别是当子向量数量减少 (压缩率更高) 时。

推理速度比较: PQ vs 余弦相似度。

新指标: 体积感知 IoU (Volume-Aware IoU)

研究人员在评估过程中遇到了一个障碍: 用于 3D 定位的标准指标 (交并比,IoU) 是为点云设计的。它们将每个点视为空间中均匀的点。

但 3D 高斯体并不是均匀的点。有些大而透明;有些小而不透明。一个大而模糊的高斯体可能在技术上与真值点重叠,但在视觉上没有任何贡献。

基于点的 IoU 测量的局限性。

图 6 显示,仅根据“显著性得分” (体积 \(\times\) 不透明度) 移除高斯体,会极大地改变场景的外观。因此,评估指标必须考虑到这种显著性。

作者提出了基于马氏距离 (Mahalanobis-distance) 的标签分配和加权 IoU 指标。

首先,他们计算点与高斯体之间的马氏距离,以分配伪真值标签:

马氏距离方程。

然后,基于与标记点云数据的接近程度,他们为每个高斯体分配一个语义标签:

为高斯体分配语义标签的方程。

最后,使用从高斯体的体积和不透明度导出的权重 \(\mathbf{d}\) 来计算 IoU:

加权交并比方程。

这确保了巨大的、可见的高斯体比微小的、不可见的高斯体对分数的贡献更大。下面的散点图证实,这个新指标与体素 mIoU (一种非常准确但缓慢的指标) 高度相关,而不加权的指标则不然。

比较新指标与体素 mIoU 的散点图。

实验与结果

Dr. Splat 在 LERF-OVS 和 ScanNet 等数据集上与 LangSplat 和 OpenGaussian 等最先进的方法进行了测试。

3D 物体选择

在这个任务中,模型接收一个文本查询 (例如,“waldo”) ,并且必须在 3D 中分割该物体。

物体选择的定性结果 (Waldo, 魔方) 。

视觉结果 (图 5) 说明了一切。LangSplat (顶行) 经常产生分散的、嘈杂的激活。OpenGaussian (中间) 难以区分位置相近的物体。Dr. Splat (底行) 精确地高亮了物体,即使是像 Waldo 或魔方这样的小物体。

3D 物体定位

这里的目标是为特定物体绘制边界框。

3D 物体定位的定性结果 (椅子,桌子) 。

在图 7 中,注意 “LangSplat-m” 这一列——它几乎完全无法定位椅子。Dr. Splat 提供了干净、紧凑的定位,与真值 (GT) 紧密对齐。

这种性能即使在包含多个物体的复杂场景中也能保持:

复杂卧室/办公室场景中的定位比较。

在上图 S6 中,Dr. Splat (绿色框) 成功识别了沙发和床,而其他方法 (红色框) 则产生了假阳性或错过了目标。

3D 语义分割

虽然 Dr. Splat 是为开放词汇搜索设计的,但它也可以执行完整的语义分割 (为场景的每个部分分配一个类别) 。

ScanNet 上的语义分割可视化。

分割图 (图 8) 显示,Dr. Splat 获得了比 OpenGaussian 更清晰的边界,特别是在地板和家具边缘。

消融实验

作者分析了其方法中的权衡。

  1. PQ 压缩: 减少子向量的数量可以提高速度,但会略微降低平均 IoU (mIoU)。
  2. Top-k 高斯体: 每条射线使用更多的高斯体可以提高准确性,直到某一点后趋于平稳,同时内存使用量增加。

关于 PQ 和 Top-k 的消融研究图表。

城市尺度与属性搜索

最令人印象深刻的演示之一是在 Waymo 数据集 (大规模城市环境) 上进行的。Dr. Splat 可以有效地扩展到数百万个高斯体。

它还能区分属性。例如,仅根据文本查询区分“绿灯”和“红灯”。

按属性定位的可视化 (绿灯 vs 红灯) 。

城市尺度数据上的额外定性结果。

图 S9 展示了该方法在野外环境中的鲁棒性,能够在混乱的街道场景中识别安全锥、消防栓和铃铛。

结论

Dr. Splat 代表了我们处理语义 3D 场景理解方式的一个重大转变。通过摆脱昂贵的基于渲染的蒸馏,并采用直接特征注册乘积量化 , 作者实现了一个具有以下特点的系统:

  1. 准确: 它比蒸馏更好地保留了 CLIP 嵌入的保真度。
  2. 快速: PQ 实现了无需渲染的闪电般快速的 3D 搜索。
  3. 高效: 它不需要针对每个场景训练语言特征。

对于计算机视觉的学生和研究人员来说,Dr. Splat 阐释了将 3D 表示 (高斯体) 直接与语义表示 (语言模型) 对齐的力量,而不是试图强迫它们通过 2D 渲染瓶颈。随着我们要迈向更多的交互式机器人和 AR/VR 应用,像 Dr. Splat 这样的技术对于创造真正理解其所处 3D 世界的机器将至关重要。