论文解读:【NeurIPS 2023】 Bridging the Domain Gap: Self-Supervised 3D Scene Understanding with Foundation

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

  1. 为了应对这一挑战,我们提出了一个新颖的框架 Bridge3D,该框架利用多个基础模型的优势,通过自我监督学习推进 3D 表示学习
  2. 提出了一种基于基础模型的新颖的mask和补丁丢弃策略,以细化网络对 3D mask自动编码器的前景表示学习的关注。
  3. 提出了一种新颖的场景级和对象级多模态知识蒸馏方法,该方法通过从基础模型获得的特征、语义mask和caption来预训练 3D 网络
  4. 这是第一项利用多个基础模型进行自监督 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.

  1. Mask Generation by Foundation Models
    提出的方法利用现有的基础模型来生成实例分割mask。

  2. 最初,我们使用基于 BLIP 的 Tag2text 来创建image captions,利用ChatGPT 过滤 ScanNet 和 SUN RGB-D 数据集中的captions对象,为 3D 场景生成文本prompt。

  3. 随后,使用 SAM 生成图像的mask。(这一步感觉和后面的关系没在文中突出?)

  4. 最后,我们使用文本标签作为 Grounding Dino 的提示来创建相应的边界框,然后将其输入到 SAM 中以生成零样本实例分割标签和分割掩码 O1,…ON。
    该过程离线完成并保存在本地,生成的标签在自监督训练阶段直接使用。如图 3 和图 4 所示,从基础模型生成的实例分割掩模在语义结果和对象级掩模方面优于以前的方法。此外,图3表明,当使用caption方法作为提示并过滤掉3D无关文本时,基础模型的性能进一步提高。

  5. Semantic Guided 3D Masked Autoencoder
    为了让 3D 模型理解 3D 特定的表示,我们利用 Point-MAE 作为预训练的基线,它通过从可见输入恢复原始输入的借口任务来学习有意义的表示。Point-MAE 方法利用标准 Transformer 作为其架构的骨干,具有不对称的编码器-解码器结构。

  6. 编码器将visible tokens Tv 作为输入并生成encoded tokens Te,而解码器包含较少的 Transformer 块并负责生成重建的masked 3D coordinates。

  7. Positional embeddings被合并到每个 Transformer 块中以提供基于位置的信息。

  8. encoded tokens Te 用可学习的mask token Tm 填充并发送到解码器。一组位置嵌入被添加到解码器中的每个 Transformer 块中,以为所有token提供位置信息。

  9. 然后,解码器 Hm 的输出通过一个简单的全连接层来重建屏蔽的 3D 坐标 P pre。

  10. 之后,它恢复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 表示学习并通过减少输入数据来加速预训练

  1. 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。
在这里插入图片描述

  1. 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生成的其他类。

### 连接视觉语言模型与运动规划以实现细粒度机器人操作 为了实现通过语义关键点表示连接视觉语言模型(VLM)与运动规划(KMP),从而完成细粒度的机器人操作,可以考虑以下几个方面: #### 1. 高维决策到Meta-action的一对一映射 利用Meta-action Encoder \( \phi \),能够将大语言模型(LLM)输出的高维度决策转化为具体的元动作(meta-action)。这一过程依赖于可学习嵌入矩阵\( E_{\text{act}} \),它实现了从抽象的语言描述到具体物理行为的有效转换[^1]。 #### 2. 自然指导与自我指导相结合的方法 借鉴《Semi-Instruct: Bridging Natural-Instruct and Self-Instruct for Code Large Language Models》中的方法论,可以通过半监督的方式构建训练数据集。这种方法不仅增强了模型对于复杂任务的理解能力,还提高了其泛化性能[^2]。 #### 3. 数据驱动的知识获取机制 基于《Knowing When to Ask -- Bridging Large Language Models and Data》,提出了一个框架来决定何时向外部数据库查询额外的信息。这种策略有助于减少错误率并提升系统的可靠性[^3]。 #### 技术实现路径 以下是可能的技术路线图以及其实现方式: - **语义解析模块**:采用预训练好的多模态模型作为基础架构,输入图像或视频片段提取场景内的对象及其属性特征; - **关键点检测网络**:设计专门用于捕捉目标物体上特定部位位置关系的关键点预测算法; - **交互逻辑生成器**:借助强化学习或者模仿学习技术教导机械臂按照指定顺序执行一系列子任务直至达成最终目的。 ```python def execute_fine_grained_manipulation(vlm_output, kmp_plan): """ Execute fine-grained robotic manipulation based on VLM output and KMP plan. Args: vlm_output (dict): Output from the visual language model containing semantic keypoints. kmp_plan (list): Sequence of kinematic motion planning steps. Returns: bool: True if successful; False otherwise. """ meta_actions = [] for step in kmp_plan: action_embedding = phi(step) # Convert high-dimensional decision into a meta-action via φ meta_action = decode_meta_action(action_embedding) meta_actions.append(meta_action) success = perform_robotic_operations(meta_actions, vlm_output['keypoints']) return success def decode_meta_action(embedding_vector): """Decode an embedding vector back into its corresponding physical operation.""" pass # Placeholder function def perform_robotic_operations(operations, keypoints): """Perform operations according to given sequence while considering detected keypoints.""" pass # Placeholder function ``` 上述伪代码展示了如何结合来自VLM的结果与由KMP制定的动作序列共同指引实际设备运作的过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值