1.1 Bridging the Domain Gap: Self-Supervised 3D Scene Understanding with Foundation Models (NeurIPS 2023 | Clemson University)
论文链接:https://arxiv.org/abs/2305.08776
代码链接:https://github.com/Zhimin-C/Bridge3D
1.1.1 Motivation
Bridge3D 背后的Motivation是创建一种通过自我监督学习弥合 3D 模型和文本/图像基础模型之间差距的方法。
基础模型在图像分割、对象检测和视觉语言理解等 2D 和语言任务中取得了显著的成果。然而,由于领域差距的存在,它们丰富 3D 场景表示学习的潜力在很大程度上尚未得到开发。
然而,这些强大的模型在推进 3D 场景理解方面的潜力尚未完全实现,这主要是由于大规模 3D 文本对数据集的可用性有限,以及与获取高质量 3D 注释相关的相当大的成本。
1.1.2 Contribution
- 为了应对这一挑战,我们提出了一个新颖的框架 Bridge3D,该框架利用多个基础模型的优势,通过自我监督学习推进 3D 表示学习
- 提出了一种基于基础模型的新颖的mask和补丁丢弃策略,以细化网络对 3D mask自动编码器的前景表示学习的关注。
- 提出了一种新颖的场景级和对象级多模态知识蒸馏方法,该方法通过从基础模型获得的特征、语义mask和caption来预训练 3D 网络
- 这是第一项利用多个基础模型进行自监督 3D 场景理解的研究。这种开创性的方法已被证明在各种下游任务中优于最先进的方法。
1.1.3 OVERVIEW
The proposed method consists of three components: a semantic-guided masked autoencoder, multi-modal scene-level knowledge distillation, and multimodal object-level knowledge distillation.
-
Mask Generation by Foundation Models
提出的方法利用现有的基础模型来生成实例分割mask。 -
最初,我们使用基于 BLIP 的 Tag2text 来创建image captions,利用ChatGPT 过滤 ScanNet 和 SUN RGB-D 数据集中的captions对象,为 3D 场景生成文本prompt。
-
随后,使用 SAM 生成图像的mask。(这一步感觉和后面的关系没在文中突出?)
-
最后,我们使用文本标签作为 Grounding Dino 的提示来创建相应的边界框,然后将其输入到 SAM 中以生成零样本实例分割标签和分割掩码 O1,…ON。
该过程离线完成并保存在本地,生成的标签在自监督训练阶段直接使用。如图 3 和图 4 所示,从基础模型生成的实例分割掩模在语义结果和对象级掩模方面优于以前的方法。此外,图3表明,当使用caption方法作为提示并过滤掉3D无关文本时,基础模型的性能进一步提高。 -
Semantic Guided 3D Masked Autoencoder
为了让 3D 模型理解 3D 特定的表示,我们利用 Point-MAE 作为预训练的基线,它通过从可见输入恢复原始输入的借口任务来学习有意义的表示。Point-MAE 方法利用标准 Transformer 作为其架构的骨干,具有不对称的编码器-解码器结构。 -
编码器将visible tokens Tv 作为输入并生成encoded tokens Te,而解码器包含较少的 Transformer 块并负责生成重建的masked 3D coordinates。
-
Positional embeddings被合并到每个 Transformer 块中以提供基于位置的信息。
-
encoded tokens Te 用可学习的mask token Tm 填充并发送到解码器。一组位置嵌入被添加到解码器中的每个 Transformer 块中,以为所有token提供位置信息。
-
然后,解码器 Hm 的输出通过一个简单的全连接层来重建屏蔽的 3D 坐标 P pre。
-
之后,它恢复coordinates of the points in each masked point patch,,并评估预测坐标的准确性,它使用 l2 Chamfer Distance 计算重建损失,其公式为
倒角距离:
倒角距离(chamfer distance)是用于评估两组点之间的相似度的度量。给定两个点集 A 和 B,倒角距离定义为 A 中每个点到 B 中最近邻点的距离之和,加上 B 中每个点到 A 中最近邻点的距离之和。
Hausdorff距离:
Foreground-aware Masking and Patch Dropping.
Point-MAE依赖于随机mask策略,导致整个图像的注意力分散,并且对前景物体的关注不足。这种注意力的分散可能导致模型在不重要的背景元素上浪费计算资源,从而导致学习到的表示较弱。
此外,Point-MAE 重建所有屏蔽标记(包括来自背景的标记)的方法可能会进一步削弱表示学习,因为由于前景-背景不平衡,模型过度集中于背景。
尽管 MAE 建议使用 2D 语义显着性图来指导分类任务中 3D 实例的点标记掩蔽,但有效指导 3D 场景mask的问题仍然是一个关键的研究挑战。
为了解决这些问题,我们基于从基础模型获得的分割结果提出了一种语义引导的mask策略。
具体来说,对于从前面提到的分割获得的前景对象,与整个mask比率 rw 相比,我们mask了更高百分比的前景点 rf 。
这会产生更具挑战性的重建任务,并迫使模型更多地关注前景物体。此外,我们不是像 Point-MAE 中那样输入所有补丁 {Pi}M i=1 ,而是随机丢弃一定百分比的背景补丁以获得 {Pi}Ni=1 。
Transform解码器通过使用可见标记的特征以及(visible patches and mask patches) 位置信息来重建masked point patch。
解码器不会重建drop的补丁。丢弃足够多的背景补丁后,解码器会看到更少的点来执行简单的上采样,这进一步改进了 3D 表示学习并通过减少输入数据来加速预训练
- Scene-level Multi-modal Knowledge Distillation
尽管一些作品研究了使用图像和点云的场景级多模态学习,由于当前 3D 场景数据集缺乏相应的文本描述,利用文本和点云探索场景级多模态学习仍然是一个挑战。为了解决这个问题,我们建议利用image caption方法来生成相应的caption并过滤掉其他3D不相关的对象以获得3D场景描述文本ts。
然后,我们训练 3D 网络将 3D 点云与其相应的场景级图像和文本 ts 对齐。我们在下面制定了所提出的方法。
考虑一组N个点云-图像-文本对{F 3D, F 2D, F text},其中F 3D 表示来自编码器的场景级点云特征,F 2D 是从预先训练的基础获得的相应图像特征基于is的模型,F文本是基于ts预训练的基础模型的文本特征。
我们的模型将场景级 3D 特征 F 3D 映射到具有投影头 Em 的每个模态 m 的隐藏表示 ^ F m 。映射过程可以表述为:
由于避免表示崩溃的属性,以前的方法[9; 59]利用InfoNCE损失[48]进行多模态知识蒸馏。然而,在这项工作中,我们发现利用仅正 L1 平滑损失会产生更好的结果。我们认为这是因为这些基础模型在预训练阶段已经学习了判别特征,因此在蒸馏阶段不需要negative pairs。
- Object-level Multi-modal Knowledge Distillation
计算机视觉中的传统技术,例如 Felzenszwalb-Huttenlocher和超像素 ,已在早期方法中采用[59]。
然而,这些技术产生的mask结果较差,并且无法生成语义标签,这阻碍了它们弥合 3D-2D 文本差距的能力,并使强大的语言基础模型的潜力无法实现。
最近的 CLIP2Scene 方法 使用 MaskClip 模型来生成密集语义预测,但它无法生成实例语义结果,这阻止了对象级视觉表示被提炼为 3D 模型。
以上方法的低质量输出阻碍了 3D 表示学习。相比之下,我们提出的 Bridge3D 方法利用从基础模型获得的高质量掩模来指导对象级知识蒸馏,从而增强 3D 场景理解。
在 Bridge3D 的对象级知识蒸馏阶段,我们提出了一种通过decoder重构token来进行多模态蒸馏的独特方法,这与之前的方法不同 [9; 59]直接从其他模态提取知识到 3D 后编码器。
Point-MAE 使用解码器来重建这些屏蔽标记并学习特定特征。在我们的方法中,我们不仅要求解码器重建masked 点云,还重建与visible point tokens 相关的文本和视觉特征,以提取多模态知识。
具体来说,
I
i
I_i
Ii表示从预训练的视觉模型获得的、属于掩模
O
i
O_i
Oi的视觉特征。我们使用映射函数将点分组到相应的掩模中:G1,. 。 。 ,Gk。对于每个场景,通过平均池化计算mask视觉特征和mask点特征。
其中
H
i
H_i
Hi代表来自decider的visible token,
F
2
D
F_{2D}
F2D是投影头。对于文本到点云的知识蒸馏,由于只有前景对象才具有来自语义标签的文本信息,因此我们选择相应的前景mask J1,. 。 。 , Js 来自 G.
其中
t
s
,
i
t_{s,i}
ts,i是对应的掩码语义标签,
φ
t
e
x
t
φ_{text}
φtext是预训练的文本编码器,
F
t
e
x
t
F_{text}
Ftext是投影头。然后,我们将视觉文本对转换为点文本对,并(将知识从文本提取到对)象级别的点云。
Our final loss is the sum of previous loss terms.
Experiment
首先介绍Bridge3D的预训练设置。然后,展示了我们的方法在几个流行的下游任务上的有效性,包括 3D 对象检测和 3D 语义分割。最后,我们进行了广泛的消融研究以展示每种设计的有效性。
3D backbone encoder:用Point-MAE架构
对于图像分支,我们遵循 DINOV2 ViT-B,在 ViT 主干之前将 518x518 图像划分为大小为 37 × 37 的规则块。对于图像分支,我们直接利用 CLIP ViT-B [54] 来提取文本特征。对于image captioning,我们利用 Tag2text [34]。
对于文本prompt,我们只使用 ScanNet 和 SUN RGB-D 的所有类名作为提示,并过滤image captioning生成的其他类。