首页 > 其他分享 >论文解读:PointCLIP: Point Cloud Understanding by CLIP

论文解读:PointCLIP: Point Cloud Understanding by CLIP

时间:2023-09-27 11:02:54浏览次数:58  
标签:CLIP Point 样本 视图 Understanding 点云 PointCLIP 3D

PointCLIP: Point Cloud Understanding by CLIP

cvpr 2022

最近,通过对比视觉语言预训练 (CLIP) 进行的零样本和少样本学习在 2D 视觉识别方面显示出了鼓舞人心的性能,该识别学习在开放词汇设置中将图像与其相应的文本进行匹配。然而,由大规模 2D 图像文本对预训练的 CLIP 是否可以推广到 3D 识别仍有待探索。在本文中,我们通过提出 PointCLIP 来确定这种设置是可行的,PointCLIP 可以在 CLIPencoded 点云和 3D 类别文本之间进行对齐。具体来说,我们通过将点云投影到多视图深度图而不进行渲染来对其进行编码,并聚合视图方向的零样本预测以实现从 2D 到 3D 的知识迁移。最重要的是,我们设计了一个视图间适配器,以更好地提取全局特征,并将从 3D 学到的小镜头知识自适应地融合到在 2D 中预训练的 CLIP 中。只需在几次设置中微调轻量级适配器,PointCLIP 的性能就可以大大提高。此外,我们观察到 PointCLIP 和经典 3D 监督网络之间的互补特性。通过简单的集成,PointCLIP 提高了基线的性能,甚至超越了最先进的模型。因此,PointCLIP 是在低资源成本和数据制度下通过 CLIP 进行有效 3D 点云理解的有前途的替代方案。我们对广泛采用的 ModelNet10、ModelNet40 和具有挑战性的 ScanObjectNN 进行了彻底的实验,以证明 PointCLIP 的有效性.

1 简介

近年来,深度学习在 2D 和 3D 领域的计算机视觉任务中占据主导地位,例如图像分类 [12, 17, 21, 28, 36, 41],目标检测 [1, 4,13,29,46,64],语义分割[3,24,35,61,65],点云识别和零件分割[19,43,44,55]。随着3D传感技术的快速发展,对3D点云数据处理的需求不断增长,催生了许多先进的深度模型,这些模型具有更好的局部特征聚合器[30,32,49]、几何建模[20,39,40]和基于投影的处理[ 20、34、48]。与基于网格的2D图像数据不同,3D点云存在空间稀疏性和不规则分布的问题,这阻碍了从2D域直接方法的迁移。此外,大规模新捕获的点云数据包含大量训练分类器“看不见”类别的对象。在这种情况下,即使是性能最好的模型也可能无法识别它们,并且每次出现“看不见的”物体时都无法重新训练。

对比视觉语言预训练(CLIP)[45] 极大地缓解了 2D 视觉中的类似问题,该训练提出通过自然语言监督学习可转移的视觉特征。对于“看不见的”类别的零样本分类,CLIP 利用视觉和语言之间的预训练相关性来进行开放词汇识别并取得了可喜的表现。为了进一步提高少样本设置的准确性,CoOp [66]采用可学习的标记来对文本提示进行编码,以便可以自适应地形成分类器权重。从另一个角度来看,CLIP-Adapter [16]附加了一个带有两个线性层的轻量级残差式适配器,以更好地适应图像特征。 Tip-Adapter[63]进一步提高了其性能,同时大大减少了训练时间。这两种方法都比零样本 CLIP 取得了显著的改进。因此,CLIP 在 2D 中探索了识别新的未标记物体的问题。然而,一个问题自然而然地出现了:这种基于 CLIP 的模型能否转移到 3D 领域并实现对“看不见的”3D 物体的零样本分类?为了解决这个问题,我们提出了 PointCLIP,它将 CLIP 的 2D 预训练知识转移到 3D 点云理解。第一个关注点是弥合无序点云和 CLIP 可以处理的基于网格的图像之间的模式差距。考虑到自动驾驶[4,13,29,42]和室内导航[67]等各种场景下实时预测的需要,我们建议采用在线透视投影[19],无需任何后期渲染[48],即,简单地将每个点投影到一系列预定义的图像平面上以生成散射深度图。这种投影过程的成本在时间和计算上都是微不足道的,但保留了来自多个视图的点云的原始属性。最重要的是,我们应用 CLIP 通过 CLIP 预训练的视觉编码器对点云的多视图特征进行编码,并通过零样本分类器独立获得每个视图的文本匹配预测。按照 CLIP,我们将 3D 类别名称作为提示放入手工制作的模板中,并通过 CLIP 的文本编码器生成零样本分类器。由于不同的视图对整个场景的识别贡献不同,我们通过视图之间的加权聚合获得点云的最终预测。

尽管 PointCLIP 在没有任何 3D 训练的情况下实现了跨模态零样本分类,但其性能仍然落后于在完整数据集上训练有素的经典点云网络。为了消除这一差距,我们引入了一种具有瓶颈线性层的可学习视图间适配器,以便在少镜头设置中更好地从多个视图中提取特征。

具体来说,我们连接所有视图的特征,并通过交互和总结跨视图信息来提取点云的紧凑全局特征。基于全局表示,生成每个视图的适应特征,并通过残差连接将其添加到其原始 CLIP 编码特征中。通过这种方式,每个视图都配备了融合的全局特征,并将来自 3D 少镜头数据集的新适应特征与 2D 预训练的 CLIP 编码相结合。在训练过程中,因为每个类只给出几个样本,我们只微调这个轻量级适配器并冻结 CLIP 的视觉和文本编码器以避免过度拟合。令人惊讶的是,具有少镜头微调的采访适配器的 PointCLIP 实现了与之前一些经过完整数据集良好训练的模型相当的性能,这是性能和成本之间的良好权衡。

此外,我们观察到 CLIP 的 2D 知识在对比损失的监督下,与最接近的 3D 监督是互补的。具有视图间适配器的 PointCLIP 可以在少样本设置下进行微调,以提高经典的完全训练的 3D 网络的性能。以 16-shot ModelNet40 [57] 和完全训练的 PointNet++ [44] 中的 PointCLIP 为例,我们直接集成它们的预测 logits 进行测试。令人惊讶的是,PointNet++ 的性能为 89.71%,通过 PointCLIP 提高到 92.03%,准确率达到 87.20%。此外,我们选择最先进的 3D 识别模型 CurveNet [39] 作为集成基线,并将性能从 93.84% 提升到 94.08%。相比之下,简单地集成在 ModelNet40 上完全训练的两个模型而不使用 PointCLIP 只会导致性能损失。因此,PointCLIP 可以重新定位为多知识集成模块,它通过 2D 对比知识和有限的额外训练来促进 3D 网络。

我们论文的贡献如下:

• 我们提出PointCLIP来扩展CLIP来处理3D点云数据,通过将2D预训练知识转移到3D来实现跨模态零样本识别。

• 通过多个视图之间的功能交互,在PointCLIP 上引入了视图间适配器,并提高了少镜头微调的性能。

• PointCLIP 可用作多知识集成模块,用于增强现有经过全面训练的 3D 网络的性能,超越最先进的性能。

• 在广泛采用的 ModelNet10、ModelNet40 和具有挑战性的 ScanObjectNN 上进行了全面的实验,这表明 PointCLIP 在 3D 理解方面的潜力。

2.相关工作

3D 中的零样本学习。零样本学习的目标是能够识别训练期间未采用的“看不见”的物体。尽管零样本学习已经引起了人们对 2D 分类的广泛关注[26,45,58],但只有少数作品探索如何在 3D 领域进行零样本学习。作为点云上的第一次尝试,[7]将3D数据集分为两部分:“已见”和“未见”样本并在前者上训练PointNet [43],但在后者上通过使用类别语义测量余弦相似度进行测试。

基于这项先前的工作,[5] 进一步缓解了由低质量提取的 3D 特征导致的中心度问题 [62],并且 [6] 引入了三元组损失以在传导设置中获得更好的性能,这允许在以下位置利用未标记的“看不见的”数据训练时间。与上述所有在部分 3D 样本上训练网络并在其他样本上进行预测的设置不同,PointCLIP 无需任何 3D 训练即可实现直接零样本识别,并对整个点云数据集进行预测。因此,我们的设置对于 2D 预训练和 3D 应用之间的领域差距更具挑战性,但对于实际问题更加紧迫。

迁移学习。迁移学习[9, 60]旨在利用数据丰富领域的知识来帮助数据稀缺领域的学习。对于一般视觉,ImageNet [9] 预训练可以极大地帮助下游任务,例如对象检测 [1,18,46] 和语义分割 [35]。同样在自然语言处理中,通过 Mask Language Model [10] 在网络爬取语料库上预训练的表示在机器翻译 [38] 和自然语言推理 [8] 上实现了领先的性能。

在没有任何微调的情况下,最近推出的 CLIP [45] 显示了对“看不见的”数据集的卓越图像理解能力。 CLIP-Adapter [16]、Tip-Adapter [63]、ActionCLIP [53] 和 WiSE-FT [56] 进一步表明,通过注入特定领域的监督可以大大提高 CLIP 的性能。尽管成功的故事令人鼓舞,但大多数现有方法都是在相同的模式下进行知识转移,即图像到图像[9]、视频到视频[2]或语言到语言[10]。与它们不同的是,我们的 PointCLIP 能够有效地将从 2D 图像学习到的表示转移到不同的 3D 点云,这激发了未来跨不同模态的转移学习的研究。

点云深度神经网络。现有的点云深度神经网络可分为基于点的方法和基于投影的方法。基于点的模型在原始点上进行处理,无需任何预转换。

PointNet [43] 和 PointNet++ [44] 首先使用多层感知器(MLP)对每个点进行编码,并利用最大池操作来实现排列不变性。最近的基于点的方法提出了更先进的本地聚合器和架构设计[30,49]。除了原始点之外,基于投影的方法通过将点云转换为体积[37]或多视图[48]数据形式来理解点云。

其中,多视图方法将点云投影到多个视图的图像中,并使用在 ImageNet [28] 上预训练的 2D 卷积神经网络(CNN)[21] 对其进行处理,例如 MVCNN [48] 等 [14,15, 25,59]。

通常,此类视图投影方法对离线生成的图像进行操作,这些图像是从点转换的 3D 网格 [54] 投影的,或者需要对阴影和纹理进行后期渲染 [47],因此将它们用于实时应用程序成本高昂且不切实际。相反,我们遵循 SimpleView [19],将原始点简单地投影到图像平面上,并根据垂直距离设置它们的像素值。这种深度图生成会产生边际时间和计算成本,满足高效的端到端零样本识别的需求。

3.方法

在3.1节中,我们首先回顾用于2D零样本分类的对比视觉语言预训练(CLIP)。然后在 3.2 节中,我们介绍了 PointCLIP,它将 2D 预训练知识转换为 3D。在第 3.3 节中,我们为 PointCLIP 提供了视图间适配器,以便在少镜头设置下获得更好的性能。在第 3.4 节中,我们建议将 PointCLIP 与经过充分训练的经典 3D 网络进行集成,以实现多知识集成,这可以实现最先进的性能。

3.1.重温 CLIP

CLIP 经过训练,可以将图像与其相应的自然语言描述进行匹配。 CLIP中有两个独立的编码器,分别用于视觉和文本特征编码。在训练过程中,给定一批图像和文本,CLIP 提取它们的特征并学习将它们在嵌入空间中与对比损失对齐。为了确保全面的学习,从互联网上收集了 4 亿个训练图像文本对,这使得 CLIP 能够将图像与开放词汇表中的任何语义概念对齐,以实现零样本分类

具体来说,对于 K 类的“看不见的”数据集,CLIP 通过将所有类别名称放入预定义的模板(称为提示)中来构造文本输入。然后,通过类别提示的C维文本特征得到零样本分类器,记为Wt ∈ R K×C 。

Wt 中的每个 K 行向量都编码预训练的类别权重。同时,每张测试图像的特征由CLIP的视觉编码器编码为fv ∈ R 1×C,分类logits ∈ R 1×K计算为:

论文解读:PointCLIP: Point Cloud Understanding by CLIP_3D


其中softmaxi(·)和pi表示softmax函数和类别i的预测概率。整个过程不需要新的训练图像,但仅通过冻结的预训练编码器即可实现有希望的零样本分类性能。

论文解读:PointCLIP: Point Cloud Understanding by CLIP_点云_02

图 2.PointCLIP 的流程。为了弥补模态差距,PointCLIP 将点云投影到多视图深度图上,并通过在 2D 中预训练的 CLIP 进行 3D 识别。该开关分别以实线和虚线提供了直接零样本分类和使用视图间适配器的少样本分类的替代方案。

3.2. CLIP 的点云理解

各种大规模 2D 数据集 [28, 31] 为预训练模型 [11, 21] 提供了丰富的样本,以实现高质量和鲁棒的 2D 特征提取。相比之下,广泛采用的 3D 数据集相对较小,并且类别有限,例如ModelNet40 [57] 具有 9,843 个样本和 40 个类别,而 ImageNet [28] 具有 100 万个样本和 1,000 个类别。因此,获得良好的预训练 3D 网络用于迁移学习是非常困难的。为了缓解这个问题并探索 CLIP 的跨模态能力,我们提出 PointCLIP 基于预训练的 CLIP 对点云进行零样本学习。

弥合模态差距。点云是散布在3D空间中的一组无序点,其稀疏性和分布与基于网格的2D图像有很大不同。为了将点云转换为 CLIP 可访问的表示,我们从多个视图生成点投影图像,以消除 3D 和 2D 之间的模态间隙。具体来说,如果3D空间中一个点的坐标表示为(x,y,z),以底部投影视图为例,其在图像平面上的位置为(x/z;y/z) [19]。这样,投影出来的点云就是一个透视缩小的图形,即距离小,反之大,更接近真实照片中的点云。除了[19]应用卷积层将一通道深度图预处理为三通道之外,我们不采用任何预卷积,直接将所有三个通道中的像素值设置为z。此外,与其他离线投影方法(其投影图像是从网格[54]或CAD模型[48]生成)不同,我们的投影深度图来自原始点,不包含颜色信息,但包含分散的深度值,这导致边缘时间和计算成本。凭借这种轻量级的跨模态内聚力,CLIP 的预训练知识可以用于点云理解。

零样本分类。基于 M 个视图的投影图像,我们使用 CLIP 提取它们的视觉特征 {fi},其中 i = 1, ..., M. 对于文本分支,我们将 K 个类别名称放置到预定义模板的类标记位置:“[CLASS] 的点云深度图”。并将它们的文本特征编码为零样本分类器 Wt ∈ R K×C 。在此基础上,分别计算每个视图的分类logitsi,并通过它们的加权求和得到最终的点云logitsp,

论文解读:PointCLIP: Point Cloud Understanding by CLIP_3D_03

其中αi是一个超参数,衡量视图i的重要性。每个视图 fi 编码点云特征的不同视角,能够进行独立的零样本分类。他们的总结进一步补充了不同视角的信息,以获得整体的了解。 PointCLIP 的整个过程对于“看不见的”3D 数据集来说是非参数化的,它通过 CLIP 预先训练的 2D 知识将每个点云与其类别配对,而无需任何 3D 训练。

3.3. PointCLIP 的视图间适配器

图 3. 所提出的视图间适配器的详细结构。给定点云的多视图特征,适配器提取其全局表示并生成视图方面的适应特征。通过残差连接,新学习的 3D 知识被融合到预先训练的 CLIP 中。

论文解读:PointCLIP: Point Cloud Understanding by CLIP_3D_04



论文解读:PointCLIP: Point Cloud Understanding by CLIP_clip_05

图 4.PointCLIP 可以为经典 3D 网络提供免费的 2D 知识,并充当即插即用的增强模块。

虽然 PointCLIP 在点云上实现了高效的零样本分类,但其性能仍然无法与完全训练的 3D 神经网络相比 [43, 44]。然后,我们考虑一个更常见的场景,其中每个“不可见”类别的一些对象包含在新收集的数据中,并且网络需要在小样本设置下识别它们。对整个模型进行微调是不切实际的,因为参数庞大且样本不足很容易导致过度拟合。因此,参考自然语言处理(NLP)中的[23]和CLIP-Adapter [16]对下游任务的预训练模型进行微调,我们在PointCLIP之上附加了一个三层多层感知器(MLP) ,命名为视图间适配器,以进一步增强其在小样本设置下的性能。对于训练,我们冻结 CLIP 的视觉和文本编码器,并通过交叉熵损失微调可学习适配器。

具体来说,给定点云的 CLIP 编码的 M 视图特征,我们将它们沿通道维度连接为 Concate(f1∼M) ∈ R 1×MC ,并通过前两个获得点云的紧凑全局特征视图间适配器的层为

论文解读:PointCLIP: Point Cloud Understanding by CLIP_3D_06

其中fglobal ∈ R 1×C且W1、W2代表适配器中的两层权重。通过这种视图间聚合,来自多个视角的特征融合成一个总结性表示。之后,从全局特征生成按视图调整的特征,并通过残差连接将其添加到其原始 CLIP 编码特征中,如下所示

论文解读:PointCLIP: Point Cloud Understanding by CLIP_3D_07

其中 W3i ∈ R C×C 表示视图 i 的 W3 的第 i 部分,并且 WT 3 = [WT 31; WT 32; ···WT 3M]∈ R C×MC 。一方面,fa i 将全局引导的自适应特征混合到 fi 中,以实现对点云的整体理解,从而实现更好的视图预测。另一方面,residualstyle适配器将新学习的3D小样本知识与2D预训练的CLIP知识相结合,进一步促进了跨模态知识迁移。

在视图间适配器之后,每个视图使用适应的特征f a i 和文本分类器Wt进行分类。与零样本分类相同,来自所有视图的所有 M 个逻辑被汇总以构建最终预测,并且视图权重 αi 可以是这里的可学习参数,以实现更自适应的聚合。令人惊讶的是,只需使用少量样本对这个轻量级适配器进行微调就可以显著提高性能,例如在 ModelNet40 上,从 20.18% 到 87.20%,每个类别 16 个样本,不到全部数据的 1/10。这种鼓舞人心的提升证明了对 3D 少样本数据进行特征自适应的有效性和重要性,这极大地促进了从 2D 到 3D 的知识迁移。因此,具有视图间适配器的 PointCLIP 为点云理解提供了一种有前途的替代解决方案。在某些应用中,没有条件用大规模全注释数据训练整个模型,仅对少镜头数据的三层适配器进行微调就可以达到相当的性能。

3.4.多知识集成

经典点云网络,例如早期的 PointNet [43] 和最近的 CurveNet [39],是通过闭集监督在 3D 数据集上从头开始训练的。相比之下,PointCLIP 主要继承了 2D 视觉语言学习的预训练先验,包含不同方面的知识。然后我们研究这两种形式的知识是否可以集成在一起进行联合推理。在实践中,我们首先获得经典模型,例如PointNet++ [44] 从 [22] 中预训练,以及零样本或适配器版本的 PointCLIP。我们对两个模型进行推理,并通过简单的加法将它们的预测逻辑集成为最终输出。超出我们的预期,在 16 次微调 PointCLIP 87.20% 的帮助下,PointNet++ 的 89.71% 提高到 92.03%,显着提高了 +2:32%。换句话说,两个低分模型的集成可以产生一个更强的模型,这充分证明了两个模型知识的互补交互。而且,甚至零样本PointCLIP为20.18%,PointNet++仍然可以提高到92.10%。相比之下,集成一对经典的完全训练模型不会提高性能,这表明了互补知识的重要性。我们还与其他先进网络实现了这种集成,并观察到类似的性能提升,其中一些实现了最先进的性能。因此,PointCLIP 可以用作即插即用的增强模块,以实现强大的点云理解。

论文解读:PointCLIP: Point Cloud Understanding by CLIP_3D_08

表 1. PointCLIP 在 ModelNet10、ModelNet40 和 ScanObjectNN 上的零样本性能(具有最佳性能设置)。 Proj.Settings 包括投影距离和投影深度图的边长。视图权重是从 1 到 10 的相对值。

论文解读:PointCLIP: Point Cloud Understanding by CLIP_3D_09

表 2. 关于 ModelNet40 上零样本和 16 样本 PointCLIP 的投影视图数量和每个视图重要性的消融研究 (%)。

论文解读:PointCLIP: Point Cloud Understanding by CLIP_3D_10

表 3.具有不同提示设计的 PointCLIP 在 ModelNet40 上的性能。 [CLASS] 表示类别标记,[Learnable Tokens] 表示固定长度的可学习提示。

论文解读:PointCLIP: Point Cloud Understanding by CLIP_clip_11

表 4. ModelNet40 上不同视觉编码器的 PointCLIP 性能 (%)。 RN50 表示 ResNet-50,ViT-B/32 表示具有 32 × 32 补丁嵌入的视觉转换器,RN.×16 表示 ResNet-50,其计算量是[45]的 16 倍。

标签:CLIP,Point,样本,视图,Understanding,点云,PointCLIP,3D
From: https://blog.51cto.com/u_16234088/7621679

相关文章

  • 「Java开发指南」在MyEclipse中的Spring开发(三)
    在上文中(点击这里回顾>>),我们介绍了如何管理多个Beans和项目、Spring配置编辑器等,本文将继续介绍AOP、WebFlow支持等,要持续关注哦~MyEclipsev2023.1.2离线版下载MyEclipse技术交流群:742336981欢迎一起进群讨论6.AOP支持BeansCrossReferences视图显示了所有被建议的beans......
  • eclipse中左侧的菜单栏没了怎么办?
    1.打开eclipse2.在上面一行的菜单栏中找到Window,打开 3.找到showview,展开  4.找到PakageExplorer,点开即可还原左侧菜单栏 ......
  • 20 广域网技术PPP(Point to Point)协议/实验+理论
    广域网广域网是连接不同地区局域网的网络,通常所覆盖的范围从几十公里到几千公里。它能连接多个地区、城市和国家,或横跨几个洲提供远距离通信,形成国际性的远程网络。广域网和局域网的区别局域网是一种覆盖地理区域比较小的计算机网络。广域网是一种通过租用ISP网络或者自建......
  • Eclipse 安装SVN
    https://blog.csdn.net/weixin_49343190/article/details/112518794这个更靠谱https://blog.csdn.net/qq_45305209/article/details/118354171......
  • Fallible point in C/C++
    Operator[]Theperformanceof[]inCandC++isdifferent.e.g.,whenyouexcuteA[index]IfAisaobject,itwillcalltheoperator[]IfAisapointer,itisequivalenttoA+indexSo,operatoroverloadingisinvalidtopointer.......
  • Flink的Checkpoint状态和Kafka Broker上的提交位点一致
    Flink的Checkpoint状态和KafkaBroker上的提交位点一致消息队列Kafka连接器_实时计算Flink版-阿里云帮助中心https://help.aliyun.com/zh/flink/developer-reference/kafka-connector消息队列Kafka更新时间:2023-09-1910:33:27  本文为您介绍如何使用消息队列Kaf......
  • Performance of Maxon WiFi 6 Industrial Access Point
    TheMaxonWiFi6IndustrialAccessPointhasacoveragerangeofupto300metersinopenair,andupto200metersindoors.However,theactualcoveragerangewillvarydependingonanumberoffactors,includingtheenvironment,thetypeofantennasuse......
  • # github.com/coreos/etcd/clientv3/balancer/resolver/endpoint
    linux使用go连接etcd集群时报错:#github.com/coreos/etcd/clientv3/balancer/resolver/endpoint/root/go/pkg/mod/github.com/coreos/[email protected]+incompatible/clientv3/balancer/resolver/endpoint/endpoint.go:114:87:undefined:resolver.BuildOption/root/go/pkg/mod/g......
  • eclipse更多快捷键和插件(我喜欢ctrl+shift+r)
    (1)Ctrl+M--切换窗口的大小(2)Ctrl+Q --跳到最后一次的编辑处(3)F2       --当鼠标放在一个标记处出现Tooltip时候按F2则把鼠标移开时Tooltip还会显示即ShowTooltipDescription。          F3       --跳到声明或定义的地方。         F5      --单......
  • 从eclipse开发到开发eclipse-系列
    阅读对象:有一定的Java语言基础,希望从事eclipse插件开发及了解eclipse插件机制的读者。目的:希望通过这个系列专题的介绍,让国内更多的开发人员了解eclipse,让更多的开发人员不仅能够使用eclipse,还能够参于到开发eclipse这个大家庭中来。专栏文章:从eclipse开发到开发eclipse(1):Eclip......