摘要
对比语言图像预训练 (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简介
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相关工作
零样本 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.1重新审视 CLIP
对比视觉-语言预训练 (CLIP) 减轻了主导计算机视觉领域的以下缺点:1. 深度模型需要大量的格式化和标记的训练数据,这些数据成本高昂;2. 模型的泛化能力较弱,难以迁移到包含未见对象的新场景。 CLIP 由图像编码器 (ResNet [31] 或 ViT [6]) 和文本编码器 (Transformer [53]) 组成,两者分别将图像和文本表示投影到一个联合嵌入空间。 在训练过程中,CLIP 从 4 亿个图像-文本对构建正负样本,用对比损失训练两个编码器,其中大规模的图像-文本对可以从互联网上免费获取,并且假设包含所有类别的图像和大多数文本概念。 因此,CLIP 可以实现有希望的开放词汇识别。
对于 2D 零样本分类,CLIP 首先将类别名称放入预定义的模板中以生成文本嵌入,然后对图像进行编码以获得图像嵌入。 接下来,它计算图像和文本嵌入之间的相似度以确定类别。 MaskCLIP 将 CLIP 进一步扩展到 2D 语义分割。 具体来说,MaskCLIP 修改了 CLIP 的图像编码器的注意力池化层,从而执行像素级掩码预测,而不是全局图像级预测。
3.2CLIP2场景
如图 2 所示,我们首先利用 CLIP 和 3D 网络分别提取文本嵌入、图像像素特征和点特征。 其次,我们基于 CLIP 的知识构建正样本和负样本。 最后,我们通过将点特征拉向其对应的文本嵌入来施加语义一致性正则化。 同时,我们通过强制时间一致的点特征与其对应的像素特征之间的一致性来应用时空一致性正则化。 在接下来的部分,我们将介绍详细信息和见解。
3.2.1语义一致性正则化
由于 CLIP 是在二维图像和文本上预训练的,我们首要关注的是二维图像和三维点云之间的域差距。 为此,我们构建了密集的像素-点对应关系,并通过像素-点对将图像知识转移到三维点云中。 具体来说,我们使用六个相机拍摄的对应图像校准了激光雷达点云。 因此,可以相应地获得密集的像素-点对应关系
以前的方法 [51, 44] 为跨模态知识转移提供了一个有希望的解决方案。 他们首先构建正像素-点对
其中
由于文本由放置在预定义模板中的类名组成,因此文本嵌入代表了相应类的语义信息。 因此,具有相同语义的那些点将被限制在相同的文本嵌入附近,而具有不同语义的那些点将被推开。 为此,我们的语义一致性正则化导致对比学习中出现更少的冲突。
3.2.2语义引导的空间-时间一致性正则化
除了语义一致性正则化之外,我们还考虑了图像像素特征如何帮助正则化 3D 网络。 自然的替代方法是直接将点特征及其在嵌入空间中的对应像素拉入。 但是,图像像素的噪声分配语义和不完美的像素-点映射阻碍了下游任务的性能。 为此,我们提出了一种新颖的语义引导的空间-时间一致性正则化,通过对局部空间和时间内的点施加软约束来缓解这个问题。
具体来说,给定一个图像
其中
其中
其中
实际上,本地网格
3.2.3可切换自训练策略
我们将损失函数
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 个扫描用于测试。
Initialization | nuScenes | SemanticKITTI | ScanNet | |||
Random | ||||||
PPKT [44] | ||||||
SLidR [51] | ||||||
PointContrast [55] | ||||||
CLIP2Scene |
Method | nuScenes | ScanNet |
CLIP2Scene |
实现细节。
我们遵循 SLidR [51] 在 nuScenes [5, 24] 数据集上预训练网络。 网络在 600 个场景的所有关键帧上进行预训练。 此外,预训练的网络在 SemanticKITTI [3] 上进行微调,以验证泛化能力。 我们利用 CLIP 模型来生成图像特征和文本嵌入。 遵循 MaskCLIP,我们修改了 CLIP 图像编码器的注意力池化层,从而提取了密集的像素-文本对应关系。 我们将 SPVCNN [52] 作为 3D 网络来生成逐点特征。 该框架是在 PyTorch 上开发的,其中 CLIP 模型在训练期间被冻结。 训练时间约为 40 小时,在两块 NVIDIA Tesla A100 GPU 上进行 20 个 epoch。 优化器是带有余弦调度器的 SGD。 我们将温度
4.1 无标注语义分割
在对网络进行预训练后,我们展示了当网络未在任何标注上进行微调时的 3D 网络性能(表 2)。 由于没有先前方法报告 3D 无标注分割性能,我们将我们的方法与不同的设置进行比较(表 3)。 在接下来的内容中,我们将描述实验设置并深入了解我们的方法和不同的设置。
设置。 我们在 nuScenes 和 ScanNet 数据集上进行实验,以评估无标注语义分割性能。 遵循 MaskCLIP [61],我们将类名置于 85 个手工制作的提示中,并将其输入到 CLIP 的文本编码器中以生成多个文本特征。 然后,我们对文本特征进行平均,并将平均后的特征输入到分类器中以进行逐点预测。 此外,为了探索如何有效地将 CLIP 的知识迁移到 3D 网络以进行无标注分割,我们进行了以下实验以突出显示我们框架中不同模块的有效性。
Ablation Target | Setting | mIoU (%) |
- | Baseline | |
Prompts | nuScenes | |
SemanticKITTI | ||
Cityscapes | ||
All | ||
Regularization | w/o StCR | |
w/o SCR | ||
KL | ||
Training Strategy | w/o S3 | |
ST | ||
Sweeps | 1 sweep | |
3 sweeps | ||
5 sweeps | ||
merged | ||
Full Configuration | CLIP2Scene |
基线。 3D 语义分割网络的输入只有一次扫描,我们通过语义一致性正则化对框架进行预训练。
提示 (nuScenes、SemanticKITTI、Cityscapes、全部)。 基于基线,我们分别将 nuScenes、SemanticKITTI、Cityscapes 和所有类名替换到提示中,以生成文本嵌入。
正则化 (无 StCR,无 SCR,KL)。 基于完整方法,我们删除了时空一致性正则化 (无 StCR) 和语义一致性正则化 (无 SCR)。 此外,我们滥用 StCR 和 SCR,并通过 Kullback–Leibler (KL) 散度损失将图像特征蒸馏到点云中。
培训策略(不含 S3、ST)。 我们在完整的方法中滥用了可切换的自我训练策略(w/o S3)。 此外,我们还展示了仅通过 10 个时期(ST)后自己的预测来训练 3D 网络的性能。
扫描次数(1 次扫描、3 次扫描、5 次扫描和合并)。 我们将扫描次数
不同提示的效果。 为了验证文本嵌入如何影响性能,我们根据不同数据集(nuScenes、SemanticKITTI 和 Cityscapes)中的类别名称生成各种文本嵌入,并为框架预训练所有类别。 如表 3 所示,我们发现即使使用其他数据集的文本嵌入(SemanticKITTI 和 Cityscapes)进行学习,3D 网络仍然可以识别 nuScenes 的物体,并且性能良好(分别为 13.9% 和 11.3% mIoU)。 结果表明,3D 网络具有开域识别能力。
语义和时空一致性正则化的影响。 我们从我们的方法中删除了时空一致性正则化(w/o SCR)。 实验表明,性能大幅下降,表明我们设计方案的有效性。 此外,我们还通过 KL 散度损失将图像特征提炼到点云,其中文本嵌入计算 logits。 但是,这种方法无法将图像中的语义信息转移。 主要原因是图像像素的噪声分配语义以及由于校准误差导致的像素点对应不完美。
可切换自训练策略的影响。 为了检验可切换自训练策略的效果,我们用图像监督训练网络(w/o S3)或用它们自己的预测训练 3D 网络。 两种试验都出现了性能下降,表明可切换自训练策略在跨模态自监督学习中是有效的。
扫描数量的影响。 直观地,我们方法的性能得益于更多扫描信息。 因此,我们还展示了分别将扫描大小限制为 1、3 和 5 时的性能。 然而,我们观察到 5 次扫描的性能与 3 次扫描类似,但计算成本更高。 因此,我们凭经验将扫描次数设置为 3。
定性评估。 各个类别(公交车、摩托车、汽车和卡车)的定性评估如图 5 所示,表明即使在没有任何标注数据训练的情况下,我们的方法也能感知物体。 但是,我们也观察到在真实目标周围的误报预测。 我们将在未来的工作中解决这个问题。
4.2标注效率语义分割
当可用于训练的标记数据很少时,预训练的 3D 网络也能提高性能。 我们直接比较 SLidR [51],这是唯一发布的用于图像到 LiDAR 自监督表示蒸馏的方法。 此外,我们还比较了 PPKT [44] 和 PointContrast [55]。 接下来,我们将介绍 SLidR 和 PPKT,并对其进行详细比较。
PPKT。 PPKT 是一种针对 RGB-D 数据集的跨模态自监督方法。 它通过像素到点的对比损失执行 2D 到 3D 的知识蒸馏。 为了公平比较,我们使用相同的 3D 网络和训练协议,但用 InfoNCE 损失代替我们的语义和时空正则化。 该框架在 4096 个随机选择的图像到点对上训练了 50 个 epochs。
SLidR。 SLidR 是一种针对自动驾驶数据的图像到激光雷达的自监督方法。 与 PPKT 相比,它将图像超像素引入跨模态自监督学习。 为了公平比较,我们将我们的损失函数替换为他们的超像素驱动的对比损失。
性能. 如表 1 所示,在 nuScenes 数据集上微调 1% 和 100% 时,我们的方法明显优于最先进的方法,分别提高了 8.1% 和 1.1%。 与随机初始化相比,分别提高了 14.1% 和 2.4%,表明了我们语义驱动的跨模态对比学习框架的效率。 定性结果如图 6 所示。 此外,我们还验证了我们方法的跨域泛化能力。 当在 nuScenes 数据集上预训练 3D 网络并在 1% 和 100% 的 SemanticKITTI 数据集上微调时,我们的方法明显优于其他最先进的自监督方法。
讨论. PPKT 和 SLidR 表明对比损失对于将知识从图像转移到点云很有希望。 类似于自监督学习,构造正样本和负样本对于无监督跨模态知识蒸馏至关重要。 但是,以前的方法存在优化冲突问题,即,一些负样本实际上是正样本。 例如,道路在场景的点云中占很大比例,并且应该在语义分割任务中具有相同的语义。 当随机选择训练样本时,大多数负定义的道路-道路点实际上是正的。 当将这些样本前馈到对比学习时,对比损失将它们在嵌入空间中推开,导致表示学习不令人满意,并损害下游任务的性能。 SLidR 引入超像素驱动的对比学习来缓解这些问题。 其动机是图像像素和投影点的视觉表示在超像素内是一致的。 尽管避免从同一个超像素中选择负图像-点对,但冲突仍然存在于超像素之间。 在我们的 CLIP2Scene 中,我们引入了免费提供的密集像素-文本对应关系来缓解优化冲突。 文本嵌入表示语义信息,可用于为对比学习选择更合理的训练样本。
除了训练样本选择,以前的方法还忽略了多扫描点云的时间一致性。 也就是说,对于映射到相同图像像素的 LiDAR 点,它们的特征被限制为一致。 此外,考虑到 LiDAR 扫描和相机图像之间的校准误差。 我们将像素到点的映射放松到图像网格到点网格的映射以进行一致性正则化。 为此,我们的时空一致性正则化导致更理性的点表示。
最后但并非最不重要的一点,我们发现随机切换监督信号有利于自监督学习。 从本质上讲,不同的模态网络学习不同的特征表示。 它们可以过滤掉由噪声伪标签引入的不同类型的错误。 通过这种可切换操作,错误流可以相互减少。
5结论
在这项名为 CLIP2Scene 的工作中,我们探索了 CLIP 知识如何有利于 3D 场景理解。 为了有效地将 CLIP 的图像和文本特征转移到 3D 网络,我们提出了一种新颖的语义驱动跨模态对比学习框架,包括语义正则化和时空正则化。 我们的预训练 3D 网络首次实现了无标注的 3D 语义分割,并取得了不错的性能。 此外,当使用标记数据进行微调时,我们的方法明显优于最先进的自监督方法。