首页 > 其他分享 >论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training

时间:2023-10-14 15:00:45浏览次数:45  
标签:Pre Training CLIP 训练 深度图 视图 Classification 我们 3D

CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training

CLIP2Point:通过图像深度预训练将 CLIP 传输到点云分类  

ICCV 2023

摘要

由于训练数据有限,3D 视觉和语言的预训练仍在开发中。最近的工作尝试将视觉语言(V-L)预训练方法转移到 3D 视觉。然而,3D 和图像之间的领域差距尚未解决,因此 V-L 预训练模型在 3D 下游任务中受到限制。为了解决这个问题,我们提出了 CLIP2Point,一种通过对比学习将 CLIP 转移到 3D 域的图像深度预训练方法,并使其适应点云分类。我们引入了一种新的深度渲染设置,可以形成更好的视觉效果,然后渲染来自 ShapeNet 的 52,460 对图像和深度图进行预训练。 CLIP2Point的预训练方案结合了跨模态学习来增强深度特征以捕获表达视觉和文本特征以及模内学习以增强深度聚合的不变性。此外,我们提出了一种新颖的门控双路径适配器(GDPA),即具有全局视图聚合器和用于下游代表性学习的门控融合的双路径结构。它允许将 CLIP 和 CLIP2Point 结合起来,以有效的适应方式将预训练知识调整到下游任务。实验结果表明,CLIP2Point能够有效地将CLIP知识转移到3D视觉中。 CLIP2Point 优于其他 3D 迁移学习和预训练网络,在零样本、少样本和完全监督分类方面取得了最先进的结果。

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_编码器

图 1. 3D 域 CLIP 迁移学习的总体架构。点云首先投影到多视图深度图,然后由 CLIP 视觉编码器聚合。与文本提示的比较呈现分类预测。然而,我们认为深度图和 CLIP 预训练图像之间存在域差距。为此,提出了一种通过 CLIP2Point 进行预训练的深度编码器。

1.简介

视觉语言(V-L)预训练在计算机视觉领域取得了巨大成功。受益于规模化通过数据,V-L 预训练模型 [35, 49] 将语言知识转移到视觉理解,可以针对多个下游任务进行微调。然而,由于缺乏足够的训练数据,3D 视觉和语言的预训练仍然是一个悬而未决的问题。例如,对比语言-图像预训练(CLIP)[35]采用超过 4 亿个图像-文本对作为训练数据。相比之下,针对 3D 视觉和语言预训练的研究很少。此外,即使是传统的 3D 预训练方法 PointContrast [46] 也是在 ScanNet [11] 上仅使用来自 1,513 个场景的 10 万对点云进行训练。由于 3D 预训练的限制,大多数现有的 3D 深度网络 [34, 43] 都是在特定的下游数据集上从头开始训练的。

一种补救措施是利用现有成功的 V-L 预训练模型来执行 3D 视觉任务。为此,我们可以首先将 3D 点云转换为多视图 2D 深度图 [38,15,16,44]。通过简单地将 2D 深度图视为图像,PointCLIP [55] 将 CLIP 应用于 3D 任务,在点云分类中提供零样本和少样本设置以及文本提示。然而,其结果仍然有限,因为渲染的深度图与 CLIP 训练数据集的图像域有很大不同。而且点云数据的稀疏性和无序性导致多个视图的深度分布不同,进一步混淆了CLIP的聚合。现有的预训练工作主要关注点云的域间隙[1]或多视图一致性[46],而我们打算基于深度图解决类似的问题。此外,V-L 迁移中应包含使预训练知识适应下游任务的解决方案。

为了将 CLIP 转移到 3D 领域,我们提出了 CLIP2Point,一种具有两种学习机制的预训练方案:1)用于 RGB 图像和深度图对比对齐的跨模态学习,2)深度的模态内学习增强深度聚合不变性的方式。特别是,图像编码器 Ei 直接来自 CLIP 权重,并在预训练期间被冻结。虽然深度编码器 Ed 被训练为 1)在跨模态学习中将深度特征与 CLIP 图像特征对齐,2)鼓励深度聚合保持不变以查看模态内学习中的变化。通过预训练,深度特征可以与视觉 CLIP 特征很好地对齐。至于训练数据,我们没有采用现有 RGB-D 数据集中的深度图,因为它们采样密集,与渲染深度图的稀疏性相矛盾。相反,我们直接从 3D 模型重建多视图图像和深度图。具体来说,我们渲染来自 ShapeNet [4] 的 RGB 图像的 10 个视图,其中涵盖 55 个对象类别的 52,460 个 3D 模型。同时,我们生成相应的深度图,并采用新的渲染设置,为CLIP编码形成更好的视觉效果。实验表明,我们的CLIP2Point可以显着提高零样本点云分类的性能。为了进一步使我们的 CLIP2Point 适应下游任务,我们提出了一种新颖的门控双路径适配器(GDPA)。由于我们的预训练是对齐实例级深度图,因此它可以与侧重于类别级区分的 CLIP 预训练知识互补。

我们提出了一种双路径结构,其中使用了我们的预训练深度编码器 Ed 和 CLIP 视觉编码器 Ei。每个编码器都附加一个可学习的全局视图聚合器,以从多个视图中提取整体特征。最终的logits可以通过两个编码器的门控融合来计算。

总而言之,我们的贡献可以概括为:

• 我们提出了一种称为 CLIP2Point 的对比学习方法,采用新提出的预训练数据集,该数据集是从 ShapeNet 进行预处理的,将 CLIP 知识转移到 3D 领域。实验表明,CLIP2Point 显着提高了零样本分类的性能。

• 我们提出了一种新颖的门控双路径适配器(GDPA),这是一种具有全局视图聚合器和门控融合的双路径结构,可有效地将CLIP2Point扩展到下游表示学习。

• 在ModelNet10、ModelNet40 和ScanobjectNN 上进行了大量实验。与 3D 迁移学习和预训练网络相比,CLIP2Point 在零样本、少样本和完全监督的点云分类任务上取得了最先进的结果

2. 相关工作

2.1.视觉语言预训练

视觉语言 (V-L) 预训练越来越受到多模态任务的关注。这些模型通过大规模图像-文本 [7, 5] 或视频-文本 [39] 对进行预训练,可以应用于多个下游任务,例如视觉问答、图像/视频字幕和文本到文本图像生成。 CLIP [35]进一步利用V-L预训练来传递跨模态知识,让自然语言理解视觉概念。尽管如此,跨 3D 视觉和语言的预训练 [50, 20] 受到 3D 文本数据对不足的限制。形状检索 [17] 和文本引导形状生成 [27] 等 3D 下游任务的性能有限。考虑到3D视觉和语言之间的空缺,我们尝试将CLIP预训练的知识转移到3D领域,使语言适用于点云分类。

2.2.自监督预训练

自监督预训练已成为计算机视觉中的一个重要问题。由于不需要与任务相关的注释,因此它可以利用大规模数据和借口任务来学习通用表示。特别是,对比学习[19,6,30,42]和掩码自动编码[18,59,13]是两种流行的自监督方案。与直接将屏蔽自动编码应用于 3D 点补全 [52, 33] 不同,Li 和 Heizmann [24] 认为 3D 视觉中的对比学习可能因粒度(点/实例/场景)或模态(点/深度/图像)而异。在这项工作中,我们的目标是采用图像深度对比学习来弥合深度特征和视觉 CLIP 特征之间的领域差距,从而允许将 CLIP 知识转移到 3D 领域。

2.3.下游微调

微调已广泛应用于下游任务中,以使预训练的权重适合特定的训练数据集[53,26,58,56]。一种常见的做法是在训练过程中更新整个参数,但如果训练数据规模有限,则可能会出现过拟合。相反,部分调整 [3, 54] 是一种适合下游数据的数据有效方式。最近,提示调整已应用于语言 [2, 25] 和视觉 [14, 21] 模型。即时调整提供了几个可学习的令牌序列和用于适应的特定任务头,而无需完全调整预先训练的参数。请注意,3D 视觉中的预训练模型仍处于早期探索阶段,点云中现有的深度网络 [34,43,31] 都遵循完整的调整范例。相比之下,我们提出了一种新颖的门控双路径适配器,用于轻量级微调。通过 CLIP 文本提示,仅通过调整高效适配器即可实现受监督的下游设置。

3. 3D 中基于 CLIP 的迁移学习

3D 视觉中的迁移学习工作[38,15,16,44]基本上都是基于 2D 预训练网络,将点云转换为 2D 深度图。最近,V-L 预训练的成功为 3D 语言迁移开辟了潜在的机会。 PointCLIP [55]直接采用 CLIP 视觉编码器来投影深度图。然而,图像深度域差距限制了其性能。相反,我们设法将深度特征与 CLIP 域保持一致,从而促进下游任务的发展。

3.1. CLIP和PointCLIP回顾

CLIP[35]是一种视觉语言预训练方法,通过对比学习来匹配图像和文本。它包含两个单独的编码器:视觉编码器和语言编码器,分别提取图像特征和文本特征。这里,C是编码器的嵌入维度。对于零样本迁移,F I 和 F T 的余弦相似度暗示了匹配结果。以K类分类任务为例,用类别名称生成文字提示然后通过CLIP编码,提取文本特征列表。对于每个图像特征 F I ,我们可以计算预测概率 p 如下,

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_编码器_02

其中 lk 表示第 k 个类别的 logit。

PointCLIP [55]将 CLIP 应用到 3D 点云数据。它从点云中渲染多视图深度图,然后使用CLIP视觉编码器提取深度图特征,其中N是视图的数量。零样本分类的 Logits 可以与等式(1)类似地计算,同时通过搜索权重来收集多视图特征。 PointCLIP 还提出了一种用于少样本分类的视图间适配器。它采用残差形式,将多视图特征连接为全局表示,然后将 GD 添加回去以提取适应特征。适配器可以表示为,

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_深度图_03

其中 concat(·) 表示通道维度上的级联,f1 和 f2 是两层 MLP,Wv ∈ R C×C ,αv 表示视图变换和第 v 个视图的求和权重。 f1、f2 和 Wv 是在少样本学习期间可学习的,而 αv 则在学习后进行搜索。然而,深度图是几何信息的表示,缺乏自然纹理信息。因此,直接应用CLIP视觉技术是不合适的。编码器用于提取深度特征,为促进点云分类留下一些余地。

3.2.与 CLIP 视觉特征对齐

我们建议学习一种深度编码器,用于将深度特征与 CLIP 视觉特征对齐,而不是直接将 CLIP 视觉编码器应用于深度图。换句话说,我们期望渲染的深度图提取的特征与相应图像的 CLIP 视觉特征一致。然后,可以直接采用CLIP文字提示来匹配深度特征。此外,由于深度图是在多个视图中呈现的,因此多个视图的深度分布的一致性也需要保持。

对比学习是一种自监督的预训练方法,它将每个样本的特征与其正样本进行对齐,满足我们最小化图像和深度特征之间的距离以及增强多视图深度特征一致性的期望。我们从 ShapeNet 重建一个预训练数据集,其中包含成对的渲染 RGB 图像和相应的深度图。我们提出了一种具有模态内和跨模态对比学习的预训练方案。然后,预训练的深度编码器可以很好地适应 CLIP 提示。为了进一步为 CLIP 编码生成具有更好视觉效果的深度图,采用了新的深度渲染设置。

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_深度图_04

图2. CLIP2Point的预训练方案。我们提出了一种具有模态内和跨模态对比学习的自监督预训练方案,以将深度特征与 CLIP 视觉特征对齐。我们为每个 3D 模型随机选择一个摄像机视图,并修改视图的距离以构建一对渲染的深度图。我们在从深度编码器提取的深度特征对之间采用一个 NT-Xent 损失,在图像特征和平均深度特征之间采用另一个 NT-Xent损失。我们在训练期间冻结图像编码器,强制深度编码器的深度特征与 CLIP 视觉编码器的图像特征对齐。另外,我们在深度渲染时只考虑红点,而不是所有的蓝点,这提高了视觉效果。

3.2.1 预训练方案

如图2所示,我们的预训练网络包括深度编码器Ed和图像编码器Ei。给定输入数据集

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_3D_05

,其中

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_深度图_06

是随机摄像机视图中的第 i 个渲染图像,我们在相同视角下以不同距离 d1 和 d2 渲染相应的深度图

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_深度图_07

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_3D_08

。我们首先采用

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_3D_09

和Ed之间的模态内聚合,然后从

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_编码器_10

中提取图像特征 Ei ,强制 Ed 在跨模态方面与 Ei 保持一致。 Ed 和 Ei 均使用 CLIP 中视觉编码器的权重进行初始化。我们在训练期间冻结 Ei 的参数,而 Ed 是可学习的。

模态内学习。考虑到3D空间中点云的稀疏性和无序性,即使我们在相同的距离处渲染深度图,不同视图的深度值的分布也有很大差异。为了保持Ed中距离聚合的不变性,采用模态内对比学习。对于每个输入深度图 Di ,我们随机修改相机视图的距离但保持视角,生成两个增强深度图

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_深度图_11

。然后将

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_深度图_12

输入到 Ed 中,提取深度特征

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_深度图_13

。跟随中的 NT-Xent 损失,模态内对比Lintra 损失可以表示为,

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_编码器_14

其中 N 表示批量大小。 l i intra(·) 基于 InfoNCE [32] 损失。更多详情请参阅补充资料。最终的深度特征图是

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_3D_15

的平均值。

跨模态学习。对于一组渲染的 RGBD 数据,跨模态对比学习旨在最小化同一对中渲染图像和深度图之间的距离,同时最大化其他图像和深度图之间的距离。对于每个输入图像 Ii ,我们提取图像特征,这与 CLIP 视觉特征完全相同。与深度特征 F D i 一起,我们得到跨模态对比损失 Lcross 如下,

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_3D_16

类似地,li cross(·) 基于 InfoNCE [32] 损失。

Lintra 和 Lcross 是独立传播的,在我们的预训练过程中,Lintra 的下降速度比 Lcross 快得多。因此,我们采用多任务损失[22]来平衡这两项。总体损失函数 L 表示为

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_编码器_17

其中 σ 是可学习的平衡参数。

3.2.2 深度渲染

为了将点云数据转换为渲染的深度图像,我们需要将 3D 坐标 (X, Y, Z) ε R 3 投影到特定视图中的 2D 坐标 ( ˆX, ˆY ) ε Z 2 。这里我们选择从前视图渲染为例:(x,y,z)处的点可以通过透视投影简单地匹配到(⌈x/z⌉,⌈y/z⌉)处对应的像素。然而,仍然存在两个问题:1)多个点可以投影到特定平面上的同一像素; 2) 由于点在 3D 空间中稀疏分布,因此渲染的深度图的大面积保持空白。对于第一个问题,现有的工作[15, 55]更喜欢多个点的加权求和,

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_3D_18

其中 (x, y, z) 是匹配 (ˆx, ˆy) 的点集,ϵ 表示极小值,例如 1e −12。我们认为这些点的最小深度值在 2D 视觉中更直观,因为我们无法用肉眼透视地观看物体。对于第二期,可以覆盖的像素很少由于点云的稀疏性。为了细化深度值的视觉连续性,我们将每个点扩展到其邻域像素。以 R 作为膨胀率,我们有匹配集 M(ˆx, ˆy, R ) 如下,

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_编码器_19

其中 P 表示点云集。之前的渲染设置可以看作是R = 1的特例。我们设置R = 2,从而得到最终的渲染值如下:

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_深度图_20

其中min(·)表示输入集的最小值。我们在图 2 的底部说明了渲染过程。我们将飞机中红点的值作为(0, 0)中的深度,但之前的工作需要额外考虑所有蓝点。

3.3.零样本分类

利用新渲染的深度图和预先训练的深度编码器,我们可以通过 CLIP 中的类似操作获得更好的零样本分类性能。由于预训练后深度特征与图像特征具有相似的分布,因此我们可以简单地使用提示,即“[类名]的图像”作为文本提示。提取深度特征后,我们计算所有视图的平均logits,如下:

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_深度图_21

请注意,PointCLIP 利用后搜索来查找一组视图权重 ,从而实现最高准确度。

我们认为后搜索是一个耗时的过程,这对于需要效率的零/几次任务来说通常是不公平的。因此,我们在训练和评估过程中避免了后搜索,而是用多视图 logits 的平均值代替。

4.下游表示学习

虽然零样本学习是到下游任务的有效传输管道,但轻量级微调对于进一步提高预测精度也很有用。为了将 CLIP2Point 应用于更多任务,我们提出了一种新颖的门控双路径适配器(GDPA)用于表示学习。

4.1.门控双路适配器

双路结构。 CLIP2Point 可以在零样本点云分类方面取得显着改进,因为我们的预训练缩小了深度图和图像之间的域差距。在小样本学习中,轻量级适配器还可以以某种方式帮助以更直接的方式转移域,重点是最小化类别级别的距离。这就是为什么 PointCLIP 在少样本分类中能够获得有希望的准确性的原因。然而,我们预训练中的域迁移是基于实例级判别、提取和比较全局特征。

因此,我们预训练的深度编码器和CLIP视觉编码器可以互补,其中深度编码器可以调整到适当的特征域,而视觉编码器可以更加关注类别选择。

全局视图聚合器。 3D-2D 传输的最终目标是从多视图图像中聚合 3D 对象的全局表示。而在PointCLIP中,采用适配器提取全局特征,然后将其扩展回输入多视图深度特征R N×C 的维度,这增加了计算成本和信息丢失的风险。此外,剩余的多视图特征仍然需要聚合,无论是通过耗时的后搜索还是粗略特征平均。相反,多个视图的全局特征可以直接估计全局 Logits 向量。因此,我们提出全局视图聚合器g:

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_编码器_22

其中 f1 和 f2 是线性层。然后我们可以减少可学习的参数并避免后期搜索,呈现一个高效的特征聚合如下:

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_3D_23

其中特征的上标C与CLIP相关。

门控融合。注意力机制是多模态交互模块中的常见策略[40]。然而,轻量级适配器无法承受如此大的计算。

门[36]充当阈值来区分何时在层之间建立身份连接,这可以自然地应用于多层的交互。为了有效地控制多模态知识的融合,我们提出了一种门控策略,将可学习的门控权重 σ 添加到 CLIP 特征中。然后,我们可以计算最终的全局特征G和logits,如下所示:

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_深度图_24

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_深度图_25

图 3. 用于下游学习的门控双路径适配器 (GDPA)。我们设计了一个双路径结构,将我们预先训练的深度编码器与 CLIP 视觉编码器相结合。我们提出了一个全局视图聚合器并将其附加到每个编码器,这对于下游训练来说是参数高效的。 GDPA允许将CLIP中的知识与我们的预训练融合,增强CLIP2Point的适应能力。

4.2.下游监督

GDPA 将 CLIP2Point 扩展到监督下游学习。少样本和完全监督的识别任务都是可用的,如果提供可能的建议,甚至可以访问场景级任务。由于GDPA是对象级别的判别,我们可以简单地使用交叉熵[12]损失进行监督。

5. 实验

5.1。数据集

预训练数据集。现在有许多 RGB-D 数据集可供使用,而这些数据集中的深度图像无法替代渲染的深度图,因为它们带有密集注释。为了将图像与稀疏标记的深度图对齐,我们必须直接将 3D 点云转换为深度图。

ShapeNet [4] 是一个大型 3D 形状数据集,包含 55 个类别的 52,460 个 3D 模型。之前的作品 [48, 10] 在有限的视图中渲染了 ShapeNet 的子集。相反,我们使用来自 ShapeNet 互补集的形状和纹理信息在 10 个视图中渲染 RGB 图像。该实现遵循 Pytorch3D [23] 上的 MVTN [16]。

同时,我们对相应 3D 模型最远的 1,024 个点进行采样,然后将这些点渲染到深度图,如式(10)所示。为了访问 CLIP 表示,渲染图像和深度图的大小为 224×224。在 ShapeNet 上分离分类基准后,我们有 41,943 对用于训练,10,517 对用于验证。对于批次中的每个训练样本,我们从十个视图中随机选择一个视图。为了评估渲染质量,我们进行了零样本分类实验。我们的验证集中 RGB 图像和深度图的准确率分别为 54.21% 和 19.98%。

下游数据集。我们在 ModelNet10 [45]、ModelNet40 [45] 和 ScanObjectNN [41] 上评估零样本分类,以及 16 样本和全监督分类

在 ModelNet40 上。 ModelNet 是一个合成的室内 3D 数据集,其中 ModelNet10 和 ModelNet40 都是其用于分类的子集。 ModelNet10 包含 10 个类别的 4,899 个 CAD 模型,其中 3,991 个用于训练,908 个用于测试。 ModelNet40 包含 40 个类别的 12,311 个 CAD 模型,其中 9,843 个用于训练,2,468 个用于测试。由于原始 ModelNet40 方向未对齐,因此我们使用对齐版本 [37]。 ScanObjectNN 是一个真实世界的数据集,包含来自 15 个类别的 2,902 个点云数据样本。与 ModelNet 中干净的 CAD 模型不同,ScanObjectNN 中的对象部分呈现并附加背景。因此,它比 ModelNet 困难得多。对于所有三个数据集,我们对每个模型的 1,024 个点进行采样作为输入点云。

5.2.实现细节W使用视觉变换器[14]的基本版本,补丁大小为32(即ViT-B/32)作为我们的视觉编码器,用于图像和深度的编码。在预训练中,我们使用权重衰减为 1×10−4 的 LAMB [51] 优化器,并将学习率初始化为 6×10−3 。我们的预训练需要 100 个 epoch,批量大小为 256。我们选择评估集中精度最高的检查点作为下游任务的最终权重。在少样本和全监督学习中,我们使用权重衰减为 1 × 10−4 的 AdamW [28] 优化器,并将学习率初始化为 1 × 10−3 。训练批量大小为 32。

5.3.零样本分类 据我们所知,PointCLIP 是对整个 3D 数据集进行零样本分类的唯一尝试。之前的工作 [9, 8] 将 3D 数据集分为两部分:“已见”和“未见”类别。模型在前者上进行训练并在后者上进行评估,这比我们的零样本任务更容易。为了评估深度渲染设置和预训练传输的有效性,我们比较了 ModelNet10、ModelNet40 和 ScanobjectNN 上的 PointCLIP。对于 ScanobjectNN,我们分别测试仅对象分割(S-OBJ ONLY)、背景分割(S-OBJ BG)和最难分割(S-PB T50 RS)。

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_深度图_26

如表1所示,即使没有预训练,我们的方法也可以优于 PointCLIP,只需使用新渲染的深度图。特别是仅在 S-OBJ 上,我们的精度提高了 10% 以上,这意味着即使在现实世界的噪声数据中,我们渲染的深度图也可以接近 CLIP 域。经过预训练后,在 ModelNet10 和 ModelNet40 上准确率显着提高,分别提高了 36.40% 和 29.20%。尽管如此,仅在 S-OBJ 上也可以获得 20.31% 的收益。而S-OBJ BG和S-PB T50 RS的改进相对较小。我们认为这是因为我们从 ShapeNet 生成预训练数据集,这是一个没有背景的干净的合成数据集。背景点可能会在一定程度上干扰对象辨别。我们还注意到,PointCLIP 在 S-PB T50 RS 上比在 S-OBJ BG 上具有更好的精度。 S-PB T50 RS是增强版,包含的案例比S-OBJ BG多得多。由于这两个结果都相对较低,我们判断它在像 ScanObjectNN 这样的现实数据集上的性能可能不稳定。

5.4. 16-Shot 分类

为了进一步评估我们预训练的传输能力并验证门控双路径适配器,我们与 PointCLIP 以及两种自监督预训练方法进行比较:CrossPoint [1] 和 Point-MAE [ 33]在16镜头分类中。我们为 CrossPoint 选择 DGCNN [43] 主干,为 PointMAE 选择 12 层 Transformer 编码器。虽然我们只使用 ViT-B/32 作为编码器,但实验中包含了 ResNet101 中的 PointCLIP。

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_3D_27

我们在表2中展示了我们的少样本实验的定量结果。通过 CLIP 权重初始化,我们的无需预训练的小样本管道已经优于其他方法,这要归功于全局视图聚合器。此外,我们的预训练版本可以达到 89.79% 的准确率,这非常接近一些传统的监督网络,如 PointNet++ [34]。

5.5.完全监督分类

虽然 GDPA 是一个轻量级适配器,适合小样本任务,但我们也可以将其应用于完全监督。我们在 ModelNet40 上进行了完全监督的分类实验,与 5 个最先进的 3D 传输网络 MVCNN [38]、SimpleView [15]、MVTN [16]、PointCLIP [55] 和 P2P [44] 进行比较。与 CLIP2Point 类似,这些网络将点云数据转换为深度图,利用 2D 预训练主干来提取相应的形状特征。我们还与 3D 自监督预训练方法 Point-BERT [52] 和 Point-MAE [33] 进行比较。

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_编码器_28

如表3所示。CLIP2Point 的性能优于 P2P (HorNet-L),但输入要求低得多。此外,我们的训练仅微调可学习的适配器,这比那些全面调整的方法更有效。实验结果证明,我们以较低的输入和参数要求实现了最先进的技术。

5.6.消融研究

模态内学习。在CLIP2Point中,跨模态学习对于弥合图像深度域差距是必要的,而模内学习是深度不变性的额外增强。为了评估我们的模态内学习的有效性,我们仅进行了跨模态的预训练实验,其中零样本分类的准确率仅为 38.29%。无论随机视图距离如何,我们都简单地提取原始深度图的特征作为 F D i 。最终损失可以表示为方程(6)。我们保持相同的预训练设置,而该版本预训练的零样本分类结果比帧内模态版本低 11.09%。我们的模态内对比学习允许深度编码器在不同相机视图之间保持深度不变性。如果没有随机距离和相应的对比限制,当不同视图中的深度值变化很大时,编码器可能很容易失败。

门控双路适配器。为了评估门控双路径适配器的设计,我们对双路径结构、全局视图聚合器和门控权重进行了实验。

对于单路径适配器,我们使用 CLIP2Point 中的预训练深度编码器提取特征。

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_编码器_29

如表4所示。所有部件都发挥改进作用。视图间适配器中的额外权重使得少样本训练更容易过度拟合。全局特征的扩展和多视图特征的聚集都可能导致信息丢失。此外,双路结构大大提高了性能在我们的全局视图聚合器中,这表明来自 CLIP2Point 和 CLIP 的知识是互补的。

虽然视图间适配器的改进相对较小,但我们认为单个编码器中的多视图收集可能会干扰编码器的组合。

我们进一步评估 GDPA,其中两条路径的编码器均使用 CLIP 视觉编码器进行初始化。其准确率为87.20%,甚至低于单路径版本(87.46%,表2)。这意味着双路径结构的改进来自于预训练知识的精细融合,而不是增加参数。

深度渲染。为了分析深度渲染设置,我们评估了选项卡中的几个设置。 5.“加权”和“最小值”分别表示式(8)和式(10)中描述的深度值。对于消融研究,扩张率设置为 1、2 和 4。为了公平地比较所有设置,我们使用单路径适配器而不进行预训练。

如表所示。如图5所示,使用最小深度值在零样本和少样本分类中都具有更高的精度。我们认为这是因为“最小”深度值下的视觉效果可以接近CLIP预训练图像。然而,膨胀率并不是越大越好。太大的膨胀率可能会模糊深度图,尤其是在物体的角落附近。图4中的可视化进一步表明我们的设置具有最佳的视觉效果。看来具有深度渲染的全局视图聚合器是少镜头的主要增长点。虽然我们认为,如果没有预训练集成,它很难达到接近完全监督网络的精度,因为我们只使用每个类别 16 个样本进行少样本学习。

特征分布的可视化。为了进一步验证 CLIP2Point 的有效性,我们在图 5 中可视化 ModelNet10 上的特征。PointCLIP (a) 和 CLIP2Point w/o 预训练 (b) 提取的特征都是混沌的。

经过预训练后,CLIP2Point (c) 在特征空间中分离类方面效果很好,这表明我们的预训练极大地提高了特征表示。然而,仍然存在两个相似的类别混淆在一起。经过几次训练后,所有班级都被明确分开。

6. 结论

在本文中,我们提出了 CLIP2Point,它预训练深度编码器以将 CLIP 知识适应 3D 领域。我们引入了一种深度图像预训练方法,该方法包括模态内和跨模态对比学习,以弥合深度编码器的深度特征和 CLIP 视觉编码器的图像特征之间的域差距,并保持多视图的不变性深度分布。对于预训练数据,我们在 ShapeNet 中渲染来自 3D 模型的 52,560 张图像,同时使用新的深度图生成相应的深度图深度渲染设置。经过预训练后,零样本点云分类的性能显着提升。为了进一步使我们的预训练权重适应下游任务,我们新提出了门控双路径适配器。通过双路径结构中的全局视图聚合器和门控融合,与 3D 迁移学习和预训练方法相比,我们取得了最先进的结果。CLIP2Point 能够有效地将 CLIP 知识转移到 3D 视觉,为应用 CLIP 零样本和开放世界 3D 任务提供了可能性。此外,类似的想法也可用于将 CLIP 知识转移到其他视觉模式,例如近红外 (NIR) 图像。尽管如此,它的性能和泛化能力受到预训练数据的数量和质量的影响。例如,合成预训练数据仅限于包含噪声和复杂背景信息的现实下游任务。未来,我们将在预训练中利用更真实的数据,并将 CLIP2Point 扩展到其他复杂的 3D 任务(例如检测和分割)。

A. 损失函数详细信息

l i intra(·) 和 l i cross(·) 是基于 InfoNCE 的损失。它们的公式如下:

论文阅读:CLIP2Point: Transfer CLIP to Point Cloud Classification with Image-Depth Pre-Training_深度图_30

这里,e(a, b) = exp(a · b T /τ )。我们设置温度系数τ = 0.7。

B. 复杂性分析 基于全监督分类的实验,我们进一步报告了表中评估的计算成本和训练的参数大小。 6 分析比较模型的复杂度。

由于 PointCLIP 在使用 ResNet50x16 时达到了最佳精度,因此其计算成本高于我们使用 ViT-B/32 的 CLIP2Point。虽然 P2P 的计算成本更高,但由于 P2P 一次推断一个视图,因此其成本需要乘以 40(视图数)。我们的 CLIP2Point 实现了比 P2P (HorNet-L) 更高的精度,并且计算成本低得多。

另一方面,由于嵌入了 GDPA 模块,CLIP2Point 比那些全调优方法包含更少的训练参数。只有通过调整轻量级适配器,CLIP2Point 才能超越最先进的预训练方法 Point-MAE。

需要注意的是,Transformer 的计算成本较低是因为点云的分组和收集机制不包含在 MAC 的计算中。因此,将 MAC 值与 3D 网络进行比较是不公平的。

C. 在场景级任务上的应用与 CLIP 类似,我们在实例级范例中设计预训练管道。我们注意到CLIP中的知识更适合用于图像分类和检索,并且也很难直接利用CLIP中的细粒度知识。因此,现有的工作[47, 29]通常采用额外的模块来提供可能的建议,并且CLIP仍然充当分类器。继[29]之后,我们进行开放词汇 3D 检测实验,使用我们的 CLIP2Point 对边界进行分类由 3D 探测器生成的盒子。在选项卡中。如图7所示,CLIP2Point优于两个3D检测网络和两种基于预训练的跨模态方法,表明CLIP2Point可以适应开放世界场景级任务。与专门在 3D 检测数据集上通过 2D 检测器蒸馏进行训练的 OV-3DETIC 相比,我们的 mAP 相对较低,因为所提出的边界框中的点云数据存在噪声。尽管如此,结果验证了这种知识迁移在场景级任务中的可行性。在正文的结论中,我们还提到真实世界的训练数据可以在未来的工作中进一步增强与真实场景相关的任务。由于 CLIP2Point 在对象分类方面非常有效,因此它可以自然地应用于具有适当建议的场景级任务。

D. 为什么不将 CLIP 应用于 3D 网络?由于3D主干可以更容易地应用于下游任务,一个自然的想法是CLIP预训练知识是否可以直接应用于3D网络。事实上,之前的工作 [1, 24] 已经证明了这种 2D-3D 迁移的有效性。然而,这些方法只有在特定下游数据集上进行良好微调后才能取得良好的结果(例如,CrossPoint 预训练的 DGCNN 甚至无法在我们正文的少样本实验中超越 PointCLIP),这意味着它们很难适应仅使用 2D 知识的 3D 任务。我们用 3D 编码器 Point Transformer 替换 CLIP2Point 中的深度编码器 [57],同时在 Mod- 中获得 20.83% 的准确度预训练后的 elNet40 零样本分类。我们总结了导致不良结果的两个原因:1)2D和3D编码器提取的特征具有不同的粒度:2D编码器提取单视图特征,而3D编码器可以聚合完整的3D对象; 2)2D和3D编码器的参数大小差距较大(例如,CLIP中的ViTB/32包含87.85M参数,但DGCNN仅包含0.98M参数):2D预训练知识无法完全迁移到小型3D编码器。尽管如此,将 CLIP 知识直接转移到 3D 网络的未来工作仍然充满希望。

E. 渲染细节按照 MVTN [16],我们使用 Pytorch3D [23] 将 3D 模型渲染为 RGB 图像。我们首先使用 ShapeNetCore v2 中的纹理信息加载网格对象。我们选择球形配置中的 10 个视图,然后在 Pytorch3D.render 中使用 MeshRasterizer 和 HardPhongShader,背景和灯光的颜色均为白色。对于零样本评估,我们使用 6 个正交视图:前、后、左、右、上、下。我们添加了四个角视图用于预训练和下游学习。视距初始化为1,预训练时距离的随机范围为[0.9,1.1)。我们在图 6 中可视化了飞机的十个视图。

F.数据集可视化我们在图7、8、9中提供了更多的可视化结果。对于ShapeNet中的每个类别,我们都有一个渲染的RGB图像和相应的深度图

标签:Pre,Training,CLIP,训练,深度图,视图,Classification,我们,3D
From: https://blog.51cto.com/u_16282361/7861787

相关文章

  • Working with Regular Expression in Python.
    #正则表达式正则表达式是一组由字母和符号组成的特殊文本,它可以用来从文本中找出满足你想要的格式的句子。一个正则表达式是一种从左到右匹配主体字符串的模式,常使用缩写的术语“regex”或“regexp”。实验网站:regex101参考:菜鸟正则语法元字符正则表达式起作用主要依赖......
  • 第三方IDE使用gdb调试Qt实现pretty print
      直接使用gdb调试Qt应用时,Qt的一些数据类型没法友好的显示出来,而qtcreator可以很好的展示出来,qtcreator也是通过gdb来调试的,在展示数据时,其实是gdb通过python脚本来处理后显示的,这些python脚本位于/usr/share/qtcreator/debugger这个位置(ubuntu20.04)。gdb在启动时,会自动在某......
  • 【报文修改利器】tcprewrite的安装和使用方法
    tcprewrite作为tcpreplay的一个工具,可以对数据包的2-4层进行修改,功能非常强大。下面主要介绍下安装方法、整体的步骤和每层具体的修改方法。一、安装方法以下服务器信息为该文档安装tcpreplay服务环境服务器信息:CentOS7 内核版本:3.10.0-1160.el7.x86_641.直接使用yum进行安......
  • 「UI开发」DevExpress WPF Pivot Grid组件可轻松实现多维数据分析!(一)
    DevExpressWPF PivotGrid组件是一个类似excel的数据透视表,用于多维数据分析和跨选项卡报表生成。众多的布局自定义选项让您完全控制其UI,以用户为中心的功能使其更易于部署。P.S:DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过De......
  • Prefixes and Suffixes (CF D) (字符串翻转找性质)
     思路:利用操作使得题目更好分析,t的后缀,反转t,来看t的前缀, 实际操作的时候,把s和t的前缀在反转一下进行交换就可以了,发现性质1C(si,ti)他们的相对位置不会变化,一直是匹配的然后利用翻转的性质,一定会产生任意我想要的排列 (从后开始构造,先把目......
  • Fi-GNN: Modeling Feature Interactions via Graph Neural Networks for CTR Predicti
    目录概Fi-GNN代码LiZ.,CuiZ.,WuS.,ZhangX.andWangL.Fi-GNN:Modelingfeatureinteractionsviagraphneuralnetworksforctrprediction.CIKM,2019.概"图网络"用在精排阶段(算哪门子图网络啊).Fi-GNN一个item可能有多种field,比如:\[\underbrace......
  • 为什么我们需要不断的开发不同的机器学习模型 —— Do we Need Hundreds of Classifie
        ==========================================  论文:《DoweNeedHundredsofClassifierstoSolveRealWorldClassificationProblems?》  论文地址:https://jmlr.org/papers/volume15/delgado14a/delgado14a.pdf        =========......
  • DevExpress Reporting中文教程 - 如何在macOS等系统中生成导出报表文档
    DevExpressReporting是.NETFramework下功能完善的报表平台,它附带了易于使用的VisualStudio报表设计器和丰富的报表控件集,包括数据透视表、图表,因此您可以构建无与伦比、信息清晰的报表。在本文中,我们将讨论如何在.NETMAUI项目中合并DevExpressReports和BlazorReportViewer......
  • Python word'str'(字符串前缀string prefix)的种类
    Python字符串前缀(Stringprefix) r'string'r'',用法是不会对后方字符串中的转义符进行转义,如: str=r'\n'print(str)#会直接输出\n,并不会输出换行 f'string'f'',用法是对字符进行格式化就和str.format()一样,会对{}进行格式化,如: str=f'你好,{}'......
  • WordPress网站被黑怎么办?【含解决方案】
    在我们的日常WordPress主题售后工作中,经常会有用户反馈网站出现问题,例如:阿里云提示后门木马文件;打开后跳转到其他地址;页面出现乱码;被添加了其他内容等,根据我们的经验,这种一般都是网站被黑导致的。 如何确认网站是否被黑根据以往经验,可以通过以下方式来判断:1、如果是阿里云提......