Paper: https://openaccess.thecvf.com/content/CVPR2022/papers/Zhang_PointCLIP_Point_Cloud_Understanding_by_CLIP_CVPR_2022_paper.pdf
Code: https://github.com/ZrrSkywalker/PointCLIP
一、大体内容
之前介绍的CLIP(对比视觉-语言预训练模型,是一个文本和图像结合的多模态模型,其将自然语言用于引导视觉进行学习)在 2D 视觉识别的零样本和少样本学习中表现优异,但3D点云因稀疏性、不规则性等特点,难以直接迁移2D知识,且3D数据标注成本高,低数据场景下的识别挑战大。本文将 CLIP 的 2D 预训练知识迁移到 3D 点云理解中,实现低数据(零样本、少样本)场景下高效的 3D 点云识别,同时降低资源成本。
如下图所示,整体还是分为文本和视觉编码两大块,上半部分按照制定Prompts输入到CLIP的文本编码器得到文本特征,下半部分3D点云先经过不同视角生成2D深度图,然后分别输出到视觉编码器得到图像特征,对于Zero-shot每一个图像特征和文本特征计算logits,最后再通过给定权重加权输出最终每个类别的logits。对于Few-shot,多了一个Inter-view Adapter,目的是聚合各个视角的特征,然后通过残差连接回原图像特征,之后和Zero-shot一致。

二、贡献点
- 提出 PointCLIP,首次实现 CLIP 从 2D 到 3D 点云的跨模态零样本识别
- 设计轻量级视图间适配器,在少样本场景下大幅提升性能,且训练成本低
- 验证 PointCLIP 与经典 3D 网络的互补性,可作为即插即用模块提升现有 3D 模型性能
- 在 ModelNet10、ModelNet40、ScanObjectNN等数据集上验证了方法的有效性
三、相关细节
3.1 和pointNet++等对比,训练方式有变化
pointNet++等3D点云网络,训练和测试都是采用的原始点云,而PointCLIP训练时是采用的2D图片文本对。

3.2 3D点云如何得到投影图
借鉴SimpleView选择透视投影(近大远小)。从不同视角投影点云得到多张深度图。

比如投影到xy平面,3D点坐标(x,y,z)对应的图像位置是(x/z, y/z)向上取整,像素值选择Z,不像SimpleView引入卷积层扩展到三通道,这里直接复制了三份。
那对于多个点云投影到同一位置,像素值如何选取?
选取离当前视角最近的值,这也符合透视投影近大远小的规律。
3.3 少样本优化:视图间适配器(Inter-view Adapter)
设计目的:是解决零样本性能与全量训练 3D 网络的差距,在少样本场景下通过聚合多视角特征来提升性能。

将 CLIP 提取的多视角特征拼接,通过两层 MLP 生成紧凑的全局特征,基于全局特征生成每个视角的适配特征,通过残差连接与原始特征融合,自适应注入 3D 少样本知识。
训练的时候冻结 CLIP 的视觉和文本编码器,仅微调适配器(参数少,避免过拟合)。
3.4 Multi-knowledge Ensemble

文中还做了个融合实验,把PointCLIP基于2D 视觉-语言知识,与经典3D监督网络(如 PointNet++、CurveNet)的3D特定知识互补。集成方式也很简单,集成方式:在推理时简单叠加 PointCLIP 与 3D 网络的分类 logits,无需额外训练,如表中所示,这种简单的组合可以提升性能。

四、实验结果
-
零样本性能(无 3D 训练)
ModelNet10:30.23%;ModelNet40:20.18%;ScanObjectNN:15.38%,验证了 2D 到 3D 知识迁移的有效性。

-
少样本性能(微调适配器)
ModelNet40 的 16-shot 场景下,准确率达 87.20%,远超同期 3D 网络(如 PointNet++、CurveNet),且样本量越少,优势越明显。


-
集成性能
与 PointNet++ 集成:性能从 89.71% 提升至 92.03%(+2.32%), 与 CurveNet(SOTA 3D 网络)集成:从 93.84% 提升至 94.08%,验证知识互补性。

-
提示工程
尝试了不同的提示词,性能也有些变化。

