Introduction
-
之前2D视觉中许多高精确的结果是来自基础模型在大规模数据集上预训练取得的。现在有很多研究相比研究新的训练模型,更倾向于基于已存在的基础模型利用它们预先训练的特性在目标任务中获得更好的性能。这种趋势和几年前的NLP领域发展趋势相似。
-
在NLP领域,BERT等基础模型一直占据主导地位,在完成各种NLP任务方面表现出卓越的能力。此外,像CLIP一样在图像和文本等多模态数据上进行预训练有很强的zero-shot能力。但这些只是在2D和NLP领域的,但3D领域还没有很好的表现。
-
一个zero-shot的基础模型不仅能够提高已存在的3D骨干的表现力而且有助于的3D场景理解和3D检索任务。然而,3D理解的基础模型的开发面临着一些挑战:
数据集获取不方便,2D的数据直接在网上爬取图片及文本对应即可,而3D数据无法直接对应。之前的工作PointCLIP直接在CLIP的2D视觉编码器上使用3D点云的深度图,这种方法缺少基础模型的特征,无法应用于3D微调任务和3D场景理解任务。它不具备提取3D理解下游任务相关的任何3D几何特征的能力。 -
作者的工作:
1.构建一个包括3D点云、图像以及对应文本描述的数据集。利用ShapeNet中的3D点云作为3D数据,并绘制其相应的渲染2D图像(随机视图)及对应文本。
2.利用对比损失训练三维编码器,并将CLIP视觉编码器中的三维特征与二维特征进行比较。 -
遇到的问题:
像CLIP这样的大规模语言模型主要是在自然图像上训练的,这些图像的分布与3D物体的图形渲染视图不同。 -
解决方法:
使用prompt tuning技术,在将其转发到视觉编码器之前,在输入空间中移动分布。改变少部分CLIP的参数并保持大部分的参数冻结。 -
做的实验
1.在合成和真实对象数据集上做zero-shot实验
2.通过使用基于文本的查询来展示3D模型在开放场景中的理解能力,以及在使用图像或文本查询时进行跨模式3D数据检索的能力。
Related Work
-
Vision Language Models
1.CLIP用4亿数据进行对比学习表现良好的多模态训练结果。
2.BLIP包括文本到图像生成的辅助任务。
3.采用VLM进行三维点云处理仍处于起步阶段。
4.PointCLIP是第一个将CLIP应用于3D的模型,将3D点云的深度图使用在CLIP的视觉编码器上。我们专注于在CLIP中使用3D编码器,以便它可以直接采用3D点云。 -
3D Point cloud processing methods
对点云的处理方法要不就是直接使用原始点云数据,要不就死将原始点云转化为体素或图像的中间表示。
1.PointNet直接使用无序电点集。
2.PointNet++结合递归捕获局部几何结构的分层特征学习方法。
3.Point-Transformer和PCT基于Transformer的方法。
4.PointMLP有效地使用深度残差MLP网络进行点云分析。
Method
主要目标训练一个3D形状编码器来获取形状特征,这些特征可以有效地捕获点云的几何属性,同时也与CLIP对每个对象类别的特征表示保持一致。
CG3D Framework
- 3D Encoder
3D点云作为输入,捕捉物体的基本形状特征,并增加的投影层确保输出特征维度保持一致。 - 2D Visual Encoder
3D点云所对应的渲染2D图像为输入,通过使用视觉编码器,我们可以获得点云数据集中存在的高效和隐含的类别表示,然后用于与3D特征对齐。 - Text Encoder
3D点云对应的文本信息作为输入,配置与CLIP相同。
Training the 3D Encoder
我们的主要训练目标是将3D点云与相应的类别级图像和文本对齐。
我们通过将编码后的特征投影到一个公共维来获得每个样本在公共嵌入空间中的特征表示。
-
问题
CLIP在训练的过程中爬取的是各种网上的数据,但CG3D训练的只有来自3D点云的渲染图片,泛化性不好。 -
解决方法
1.fine-tuning通过使用CLIP损失函数(计算图像和文本特征之间的相似性)优化其权重来训练视觉编码器。但这种方法会导致性能大幅下降:编码器在试图适应新的数据分布时失去了所有的先验知识。
2.可以通过增加用于微调的新数据量来避免这个问题。但是创造一个足够大的3D数据集不现实
3.Visual prompt tuning
它是一种在输入空间中添加少量可训练参数以针对特定任务微调基本模型的方法。我们使用deep prompting,在ViT(可视编码器)的变压器层的每一层引入可学习的提示作为可学习的标记。我们使用原始的CLIP损失,即图像和文本特征之间的对比损失来训练这些提示。
Using CG3D
-
Zero-shot Recognition
将3D点云输入,并且给定n个提示信息,eg:这是一个__。分别计算3D点云与提示信息的相似度,取相似度最高的结果作为识别结果。 -
Scene Querying with Language
使用语言查询来查询场景以了解场景的关键细节
步骤:
1.给定一个场景,使用k-means聚类算法分割场景为多个有意义的实例(共k个)。
2.将这些聚类前馈给CG3D框架,得到一系列3D特征。
3.将文本查询传递给文本编码器以获取文本。
4.将这些3D特征与通过将输入查询转发给文本编码器获得的文本特征进行匹配。 -
Retrieval
3D点云检索
1.将图片或文本查询输入相应编码器获得特征向量
2.使用3D编码器对3D点云进行编码获得特征向量
3.获得查询特征向量与3D特征之间的相似度得分取最高。 -
Fine-tuning for Supervised Tasks
CG3D的3D编码器部分可以使用任意骨干模型,使用CG3D做预训练,得到的权重可以用作下游任务的起点。