专栏名称: FightingCV
一个专注于分享计算机视觉、多模态机器学习方向前沿论文,解答常见科研问题,分享好用科研工具的公众号。努力努力再努力,瑞思拜!
目录
相关文章推荐
李楠或kkk  ·  alva.xyz 是 ai 和 ... ·  3 天前  
青澄财经  ·  携程金融打造携程增长第三极 ·  3 天前  
青澄财经  ·  携程金融打造携程增长第三极 ·  3 天前  
Z Finance  ·  速来火山引擎白嫖满血版DeepSeek,邀请 ... ·  3 天前  
Z Finance  ·  速来火山引擎白嫖满血版DeepSeek,邀请 ... ·  3 天前  
51好读  ›  专栏  ›  FightingCV

CLIP2Scene:通过 CLIP 实现标签高效的 3D 场景理解

FightingCV  · 公众号  ·  · 2024-12-01 09:00

正文

摘要

对比语言图像预训练 (CLIP) 在 2D 零样本和少样本学习中取得了可喜的成果。 尽管在 2D 中表现出色,但将 CLIP 应用于帮助 3D 场景理解的学习尚待探索。 在本文中,我们首次尝试研究 CLIP 知识如何有利于 3D 场景理解。 我们提出了 CLIP2Scene,一个简单而有效的框架,它将 CLIP 知识从 2D 图像文本预训练模型转移到 3D 点云网络。 我们表明,预训练的 3D 网络在各种下游任务中取得了令人印象深刻的性能,即无标注和使用标记数据进行微调以进行语义分割。 具体来说,基于 CLIP,我们设计了一个语义驱动的跨模态对比学习框架,通过语义和时空一致性正则化来预训练 3D 网络。 对于前者,我们首先利用 CLIP 的文本语义来选择正负点样本,然后采用对比损失来训练 3D 网络。 在后者方面,我们强制时间上连贯的点云特征与其对应的图像特征之间的一致性。 我们在 SemanticKITTI、nuScenes 和 ScanNet 上进行了实验。 我们的预训练网络首次实现了无标注的 3D 语义分割,在 nuScenes 和 ScanNet 上分别获得了 20.8% 和 25.08% 的 mIoU。 当使用 1% 或 100% 的标记数据进行微调时,我们的方法显著优于其他自监督方法,分别提高了 8% 和 1% 的 mIoU。 此外,我们证明了处理跨域数据集的泛化能力。 代码已公开 1

1 简介

图 1 : 我们探索了 CLIP 知识如何有利于 3D 场景理解。 为此,我们提出了 CLIP2Scene,这是一种语义驱动的跨模态对比学习框架,它利用 CLIP 知识通过语义和时空一致性正则化来预训练 3D 点云分割网络。 CLIP2Scene 在无标注的 3D 语义分割方面取得了令人印象深刻的性能,并且在对带标注数据进行微调时明显优于其他自监督方法。

3D 场景理解是自动驾驶、机器人导航等领域的基础 [26, 28] 目前的基于深度学习的方法在 3D 点云数据上展现出了令人鼓舞的性能 [47, 62, 33, 56, 15, 38, 32] 但是,一些缺点阻碍了它们在现实世界的应用。 第一个缺点是它们严重依赖于大量带标注的点云,特别是在高质量的 3D 标注获取成本很高的情况下 [44, 51, 40, 39] 此外,它们通常无法识别训练数据中从未见过的新物体 [11, 45] 结果,可能需要额外的标注工作来训练模型识别这些新物体,这既繁琐又耗时。

对比视觉语言预训练 (CLIP) [48] 提供了一种新的视角,可以缓解 2D 视觉中的上述问题。 它是在来自网站的大规模免费图像-文本对上训练的,并建立了视觉语言关联以实现有希望的开放词汇识别。 MaskCLIP [61] 进一步探索了基于 CLIP 的语义分割。 通过对 CLIP 预训练网络进行最少的修改,MaskCLIP 可以直接用于新物体的语义分割,而无需额外的训练工作。 PointCLIP [59] 揭示了 CLIP 的零样本分类能力可以从 2D 图像推广到 3D 点云。 它有望将点云帧投影到 2D 深度图的不同视图中,从而弥合图像和点云之间的模态差距。 以上研究表明 CLIP 在增强 2D 分割和 3D 分类性能方面的潜力。 然而,CLIP 知识是否以及如何有利于 3D 场景理解仍未得到充分探索。

在本文中,我们探索如何利用 CLIP 的 2D 图像-文本预学习知识进行 3D 场景理解。 以前跨模态知识蒸馏方法 [51, 44] 存在优化冲突问题, ,一些正对被视为对比学习的负样本,导致表示学习不令人满意,并损害下游任务的性能。 此外,它们还忽略了多扫描点云的时间连贯性,无法利用丰富的扫描间对应关系。 为了解决上述问题,我们提出了一种新颖的语义驱动的跨模态对比学习框架,该框架充分利用 CLIP 的语义和视觉信息来规范化 3D 网络。 具体来说,我们提出了语义一致性正则化和时空一致性正则化。 在语义一致性正则化中,我们利用 CLIP 的文本语义来选择正负点样本,以进行冲突较少的对比学习。 对于时空一致性正则化,我们使用 CLIP 的图像像素特征对时间一致的点特征施加软一致性约束。 这种操作还减轻了图像到点校准不完善的影响。

我们在室内和室外数据集上进行了几项下游任务,以验证预训练网络如何有利于 3D 场景理解。 第一个是无标注语义分割。 遵循 MaskCLIP,我们将类名放入多个手工制作的模板中作为提示,并对 CLIP 生成的文本嵌入进行平均以进行无标注分割。 我们的方法首次在 nuScenes [24] 和 ScanNet [20] 数据集上实现了 20.8% 和 25.08% 的 mIoU 无标注 3D 语义分割,而无需在任何标记数据上进行训练。 其次,我们在标签高效学习中与其他自监督方法进行比较。 当使用 nuScenes 数据集上 1% 或 100% 的标记数据微调 3D 网络时,我们的方法在显著优于最先进的自我监督方法,分别提高了 8% 和 1% 的 mIoU。 此外,为了验证泛化能力,我们在 nuScenes 数据集上预训练网络,并在 SemanticKITTI [3] 上对其进行评估。 我们的方法仍然显著优于最先进的方法。 我们工作的关键贡献总结如下。

  • 第一个将 CLIP 知识提炼到 3D 网络以进行 3D 场景理解的工作。

  • 我们提出了一种新颖的语义驱动跨模态对比学习框架,它通过时空和语义一致性正则化来预训练 3D 网络。

  • 我们提出了一种新颖的语义引导时空一致性正则化,它强制执行时间一致的点云特征与其对应的图像特征之间的一致性。

  • 我们的方法首次在无标注 3D 场景分割上取得了有希望的结果。 当使用标记数据进行微调时,我们的方法显著优于最先进的自我监督方法。

2 相关工作

图 2 : 语义驱动跨模态对比学习的说明。 首先,我们分别通过文本编码器、图像编码器和点编码器获得文本嵌入 t i 、图像像素特征 x i 和点特征 p i 其次,我们利用 CLIP 知识构建正样本和负样本以进行对比学习。 因此,我们在短时间内获得点-文本对 { x i , t i } i = 1 M 和所有像素-点-文本对 { x ^ i k , p ^ i k , t i k } i = 1 , k = 1 M ^ , K 这里, { x i , t i } i = 1 M { x ^ i k , p ^ i k , t i k } i = 1 , k = 1 M ^ , K 分别用于语义一致性正则化和时空一致性正则化。 最后,我们通过将点特征拉到其对应的文本嵌入来执行语义一致性正则化,并通过模仿时间上连贯的点特征与其对应的像素特征来执行时空一致性正则化。

零样本 3D 学习。 零样本学习 (ZSL) 的目标是识别训练集中未见过的物体。 许多努力都致力于 2D 识别任务 [8, 37, 58, 46, 41, 1, 54, 42, 4, 2, 21, 43, 25, 55, 60, 34] ,而很少有研究集中在 3D 域中执行 ZSL [18, 11, 45, 16, 17] [18] 将 ZSL 应用于 3D 任务,其中他们在“已见”样本上训练 PointNet [47] ,并在“未见”样本上进行测试。 后续工作 [16] 解决了由低质量点云特征引起的中心性问题。 [17] 提出了三元组损失,以在转导设置下提高性能,其中“未见”类在训练阶段被观察到但未标记。 [11] 首次尝试探索 3D 场景理解的转导零样本分割。 最近,一些研究将 CLIP 引入了零样本学习。 MaskCLIP [61] 研究了利用 CLIP 帮助 2D 稠密预测任务的问题,并展示了令人鼓舞的零样本语义分割性能。 PointCLIP [59] 是将 CLIP 应用于 3D 识别的开创性工作,并在零样本和少样本分类任务上展示了令人印象深刻的性能。 我们的工作更进一步,研究了 CLIP 中丰富的语义和视觉知识如何有利于 3D 语义分割任务。

自监督表示学习。 自监督学习的目的是获得对下游任务有益的良好表示。 主流方法采用对比学习来预训练网络 [30, 27, 23, 22, 14, 13, 7, 10, 12, 9, 9] 最近,受 CLIP 成功启发,利用 CLIP 的预训练模型进行下游任务引起了社区的关注 [49, 57, 50, 36, 35] DenseCLIP [49] 利用 CLIP 预训练的知识进行密集图像像素预测。 DetCLIP [57] 提出了一种配备 CLIP 的预训练方法,用于开放世界检测。 我们利用图像-文本预训练的 CLIP 知识来帮助 3D 场景理解。

交叉模态知识蒸馏。 近年来,越来越多的研究集中在将 2D 图像的知识迁移到 3D 点云中,用于自监督表示学习 [44, 51] PPKT [44] 采用 InfoNCE 损失来帮助 3D 网络从 2D 图像主干网络中提取丰富的知识。 SLidR [51] 进一步引入了超像素来增强跨模态知识蒸馏。 在本文中,我们首次尝试使用 CLIP 的知识预训练一个 3D 网络。

3 方法

考虑到 CLIP 在图像分类和分割方面取得了令人印象深刻的开放词汇性能,人们自然会产生好奇。 CLIP 能否赋予 3D 网络无标注场景理解的能力? 此外,当在标记数据上微调时,它是否会提升网络性能? 为了回答上述问题,我们研究了 CLIP 用于 3D 场景理解的跨模态知识迁移,称为 CLIP2Scene 我们的工作是利用 CLIP 知识进行 3D 场景理解的先驱。 在接下来的内容中,我们将回顾应用于 2D 开放词汇分类和语义分割的 CLIP,然后详细介绍我们的 CLIP2Scene。 我们的方法包括三个主要组成部分:语义一致性正则化、语义引导时空一致性正则化和可切换自训练策略。

图 3 : 图像像素到文本映射的说明。 通过现成的 MaskCLIP 方法 [61] 提取密集的像素-文本对应关系 { x i , t i } i = 1 M

3.1 重新审视 CLIP

对比视觉-语言预训练 (CLIP) 减轻了主导计算机视觉领域的以下缺点:1. 深度模型需要大量的格式化和标记的训练数据,这些数据成本高昂;2. 模型的泛化能力较弱,难以迁移到包含未见对象的新场景。 CLIP 由图像编码器 (ResNet [31] 或 ViT [6] ) 和文本编码器 (Transformer [53] ) 组成,两者分别将图像和文本表示投影到一个联合嵌入空间。 在训练过程中,CLIP 从 4 亿个图像-文本对构建正负样本,用对比损失训练两个编码器,其中大规模的图像-文本对可以从互联网上免费获取,并且假设包含所有类别的图像和大多数文本概念。 因此,CLIP 可以实现有希望的开放词汇识别。

对于 2D 零样本分类,CLIP 首先将类别名称放入预定义的模板中以生成文本嵌入,然后对图像进行编码以获得图像嵌入。 接下来,它计算图像和文本嵌入之间的相似度以确定类别。 MaskCLIP 将 CLIP 进一步扩展到 2D 语义分割。 具体来说,MaskCLIP 修改了 CLIP 的图像编码器的注意力池化层,从而执行像素级掩码预测,而不是全局图像级预测。

3.2 CLIP2场景

如图 2 所示,我们首先利用 CLIP 和 3D 网络分别提取文本嵌入、图像像素特征和点特征。 其次,我们基于 CLIP 的知识构建正样本和负样本。 最后,我们通过将点特征拉向其对应的文本嵌入来施加语义一致性正则化。 同时,我们通过强制时间一致的点特征与其对应的像素特征之间的一致性来应用时空一致性正则化。 在接下来的部分,我们将介绍详细信息和见解。

3.2.1 语义一致性正则化

由于 CLIP 是在二维图像和文本上预训练的,我们首要关注的是二维图像和三维点云之间的域差距。 为此,我们构建了密集的像素-点对应关系,并通过像素-点对将图像知识转移到三维点云中。 具体来说,我们使用六个相机拍摄的对应图像校准了激光雷达点云。 因此,可以相应地获得密集的像素-点对应关系 { x i , p i } i = 1 M ,其中 x i p i 分别表示 i 对配对的图像特征和点特征,分别由 CLIP 的图像编码器和三维网络提取。 M 是对的数量。 请注意,这是一个在线操作,与图像和点数据增强无关。

以前的方法 [51, 44] 为跨模态知识转移提供了一个有希望的解决方案。 他们首先构建正像素-点对 { x i , p i } i = 1 M 和负对 { x i , p j } ( i j ) ,然后通过 InfoNCE 损失将正对拉入,同时将负对推离嵌入空间。 尽管以前的方法在转移跨模态知识方面取得了令人鼓舞的性能,但它们都面临着相同的优化冲突问题。 例如,假设 i 个像素 x i j 个点 p j 位于同一个实例的不同位置,但具有相同的语义。 但是,InfoNCE 损失会试图将它们推开,这是不合理的,并且会损害下游任务的性能 [51] 鉴于此,我们提出了一种语义一致性正则化,它利用 CLIP 的语义信息来缓解这个问题。 具体来说,我们通过遵循现成的 MaskCLIP [61] 方法(图 3 )生成密集的像素-文本对 { x i , t i } i = 1 M ,其中 t i 是从 CLIP 的文本编码器生成的文本嵌入。 请注意,像素-文本映射无需任何额外的训练即可从 CLIP 中免费获得。 然后,我们将像素-文本对转换为点-文本对 { p i , t i } i = 1 M ,并利用文本语义来选择对比学习的正负点样本。 目标函数如下:

其中 t i c 表示 t i 是由 c 类名生成的,而 C 是类数。 D 表示标量积运算,而 τ 是一个温度项 ( τ > 0 )。

由于文本由放置在预定义模板中的类名组成,因此文本嵌入代表了相应类的语义信息。 因此,具有相同语义的那些点将被限制在相同的文本嵌入附近,而具有不同语义的那些点将被推开。 为此,我们的语义一致性正则化导致对比学习中出现更少的冲突。

3.2.2 语义引导的空间-时间一致性正则化

除了语义一致性正则化之外,我们还考虑了图像像素特征如何帮助正则化 3D 网络。 自然的替代方法是直接将点特征及其在嵌入空间中的对应像素拉入。 但是,图像像素的噪声分配语义和不完美的像素-点映射阻碍了下游任务的性能。 为此,我们提出了一种新颖的语义引导的空间-时间一致性正则化,通过对局部空间和时间内的点施加软约束来缓解这个问题。


图 4 : 图像像素到点的映射(左)和语义引导的融合特征生成(右)的示意图。 我们在 S 秒内建立图像 I 和时间一致的LiDAR点云 { P k } k = 1 K 之间的网格对应关系,并为单个网格生成语义引导的融合特征。 { x ^ i k , p ^ i k } i = 1 , k = 1 M ^ , K { f n } n = 1 N 都被用来执行时空一致性正则化。

具体来说,给定一个图像 I 和时间一致的LiDAR点云 { P k } k = 1 K ,其中 K 是在 S 秒内扫描的次数。 注意,图像与点云 P 1 的第一帧匹配,具有像素点对 { x ^ i 1 , p ^ i 1 } i = 1 M ^ 我们通过校准矩阵将点云的其余部分注册到第一帧,并将它们映射到图像(图 4 )。 因此,我们在短暂的时间 { x ^ i k , p ^ i k , t i k } i = 1 , k = 1 M ^ , K 内获得了所有像素点文本对。 接下来,我们将整个拼接后的点云分成规则的网格 { g n } n = 1 N ,其中时间一致的点位于同一个网格中。 我们通过以下目标函数对单个网格内的时空一致性约束进行强加:

其中 ( i ^ , k ^ ) g n 表示像素点对 { x ^ i k , p ^ i k } 位于第 n 个网格中。 { f n } n = 1 N 是一个由以下公式表示的语义引导跨模态融合特征:

其中 a i ^ k ^ b i ^ k ^ 是由以下公式计算出的注意力权重:

其中 λ 是温度项。

实际上,本地网格 g n 内的那些像素和点特征被限制在动态中心 f n 附近。 因此,这种软约束减轻了噪声预测和校准误差问题。 同时,它对时间一致的点特征施加了时空正则化。

3.2.3 可切换自训练策略

我们将损失函数 S _ i n f o S S R 结合起来,对整个网络进行端到端训练,其中 CLIP 的图像和文本编码器主干在训练期间被冻结。 我们发现,这种方法只有在用于 S _ i n f o S S R 的像素点特征 { x i , p i } i = 1 M { x ^ i k , p ^ i k } i = 1 , k = 1 M ^ , K 来自不同的可学习线性层时才有效。 在此基础上,我们进一步提出了一种有效的策略来提高性能。 具体来说,在 3D 网络的对比学习经过几个 epoch 后,我们随机切换配对图像像素的伪标签和点的预测标签之间的点伪标签。 由于不同的模态网络学习不同的特征表示,它们可以过滤掉由噪声伪标签引入的不同类型的错误。 通过这种可切换操作,误差流可以被相互 [29] 减少。

4 实验

数据集。

我们在两个大规模的室外 LiDAR 语义分割数据集上进行了广泛的实验, ,SemanticKITTI [3] 和 nuScenes [5, 24] ,以及一个室内数据集 ScanNet [20] nuScenes 数据集包含 700 个用于训练的场景,150 个用于验证的场景,以及 150 个用于测试的场景,其中 16 个类别用于 LiDAR 语义分割。 关于 SemanticKITTI,它包含 19 个用于训练和评估的类别。 它有 22 个序列,其中序列 00 到 10、08 和 11 到 21 分别用于训练、验证和测试。 ScanNet [20] 包含 1603 个扫描,有 20 个类别,其中 1201 个扫描用于训练,312 个扫描用于验证,100 个扫描用于测试。

表 1 : 在 nuScenes [24] 、SemanticKITTI [3] 和 ScanNet [20] val 集上,自监督方法之间的比较 (mIoU)。

Initialization nuScenes SemanticKITTI ScanNet
1 % 100 % 1 % 100 % 5 % 100 %
Random 42.2 69.1 32.5 52.1 46.1 63.3
PPKT [44] 48.0 70.1 39.1 53.1 47.5 64.2
SLidR [51] 48.2 70.4 39.6 54.3 47.9 64.9
PointContrast [55] 47.2 69.2 37.1 52.3 47.6 64.5
CLIP2Scene 56.3 71.5 42.6 55.0 48.4 65.1


表 2 : nuScenes [24] 和 ScanNet [20] val 数据集上无标注 3D 语义分割性能 (mIoU)。

Method nuScenes ScanNet
CLIP2Scene 20.80 25.08


实现细节。

我们遵循 SLidR [51] 在 nuScenes [5, 24] 数据集上预训练网络。 网络在 600 个场景的所有关键帧上进行预训练。 此外,预训练的网络在 SemanticKITTI [3] 上进行微调,以验证泛化能力。 我们利用 CLIP 模型来生成图像特征和文本嵌入。 遵循 MaskCLIP,我们修改了 CLIP 图像编码器的注意力池化层,从而提取了密集的像素-文本对应关系。 我们将 SPVCNN [52] 作为 3D 网络来生成逐点特征。 该框架是在 PyTorch 上开发的,其中 CLIP 模型在训练期间被冻结。 训练时间约为 40 小时,在两块 NVIDIA Tesla A100 GPU 上进行 20 个 epoch。 优化器是带有余弦调度器的 SGD。 我们将温度 λ τ 分别设置为 1 和 0.5。







请到「今天看啥」查看全文