PointCLIP: Point Cloud Understanding by CLIP

Abstract

近年来,基于对比视觉语言预训练(CLIP)的零镜头和少镜头学习在二维视觉识别中表现出了令人鼓舞的效果,该方法在开放词汇设置下学习图像与相应文本的匹配。然而,通过大规模二维图像-文本对预训练的CLIP是否可以推广到三维识别,还有待探讨。在本文中,我们通过提出PointCLIP来确定这种设置是可行的,PointCLIP在CLIPencoded的点云和3D类别文本之间进行对齐。具体而言,我们通过将点云投影到多视图深度图上对其进行编码,并以端到端的方式聚合逐视图的零射击预测,从而实现了从2D到3D的有效知识传递。为了更好地提取全局特征,并将3D少镜头知识自适应地融合到2D预训练的CLIP中,我们进一步设计了一个访谈视图适配器。只需在少量镜头设置下微调适配器,PointCLIP的性能就可以得到很大提高。此外,我们还观察了PointCLIP与经典3d监督网络之间的知识互补特性。通过在推理过程中简单的集成,PointCLIP有助于在最先进的3D网络上实现有利的性能增强。因此,PointCLIP是一种很有前途的替代方案,可以在低数据条件下以边际资源成本有效地理解3D点云。我们在ModelNet10、ModelNet40和ScanObjectNN上进行了深入的实验,以证明PointCLIP的有效性

Introduction

在深度学习领域,尽管2D和3D视觉任务已经取得了显著进展,如图像分类、目标检测和语义分割等,但3D点云数据的处理仍然面临空间稀疏性和不规则分布的挑战。特别是,模型在训练时未曾遇到过的对象类别,现有的分类器往往难以有效识别。针对这一问题,对比视觉语言预训练(CLIP)模型在2D视觉识别中的成功应用,提出了一个具有挑战性的想法:将CLIP模型扩展到3D领域,实现对3D点云数据的理解和分类。CLIP通过大规模图像-文本对的预训练,学习了图像与文本之间的关联,从而在零样本设置下展现出对未见类别的识别能力。然而,将这种能力迁移到3D点云上并非易事,需要解决从2D图像到3D点云的跨模态知识转移问题。为了应对这一挑战,作者提出了PointCLIP方法,它通过将点云数据投影到多个视图的深度图上,并利用CLIP的预训练视觉编码器提取特征,实现了对3D点云的零样本分类。PointCLIP的优势在于,即使在没有3D训练数据的情况下,也能利用2D图像-文本对的预训练知识来理解和分类3D点云数据,这对于在数据稀缺的情况下进行3D点云理解具有重要意义。

论文的研究目标是在低数据条件下实现有效的3D点云理解,并以边际资源成本实现这一目标。作者们计划在ModelNet10、ModelNet40和ScanObjectNN等数据集上进行实验,以验证PointCLIP方法的有效性,并提出未来的工作将探索CLIP在更广泛的3D应用中的泛化能力。

Related work

主要是介绍一些相关的概念。

Zere-shot learning in 3D

零样本学习在3D领域的目标是识别在训练中未出现过的对象。尽管这一概念在2D分类中已广受关注,但在3D领域的应用研究相对较少。早期的工作通过将3D数据集分为“见过”和“未见”的样本,并使用前者训练PointNet来识别后者。随后的研究通过改进3D特征质量和引入三元损失来提高归纳学习的性能,允许使用未标记的数据。与这些方法不同,PointCLIP不依赖于3D样本的训练,而是通过2D数据进行预训练,实现对3D未见样本的直接零样本识别,这一设置在跨2D到3D领域的知识转移方面更具挑战性,并且对于解决实际问题具有紧迫性。

Transfer Learning

迁移学习是一种利用数据丰富的领域知识来辅助数据较少领域学习的技术。在视觉领域,ImageNet预训练对目标检测和语义分割等任务有显著帮助。在自然语言处理领域,通过网页爬取的语料库预训练的模型在机器翻译和自然语言推理任务上取得了优异的性能。

CLIP作为一种新引入的模型,在没有经过微调的情况下,对未见数据集展现出了卓越的图像理解能力。进一步的工作表明,通过引入特定领域的监督,CLIP的性能可以得到显著提升。然而,大多数现有方法都在相同模态内进行知识转移,如图像到图像或语言到语言。与这些方法不同,PointCLIP能够实现从2D图像到3D点云的跨模态知识转移,这为未来在不同模态之间进行迁移学习的研究提供了新的方向和动机。

Deep neural network for point cloud

点云深度神经网络主要分为基于点的方法和基于投影的方法。基于点的方法如PointNet和PointNet++,通过多层感知器对点进行编码,并使用最大池化操作保证排列不变性,近期的研究还引入了更先进的架构设计和几何提取器以提高点云解析能力。而基于投影的方法则将点云转换为体积或多视图数据形式,多视图方法通过将点云投影到多个视图的图像上,并利用在ImageNet上预训练的2D CNN进行处理。然而,这些方法通常需要离线生成或后期渲染,成本较高且不适用于实时应用。与此相反,本文提出的SimpleView方法直接将原始点投影到图像平面上,通过点的垂直距离设置像素值,这种方法具有较低的时间和计算成本,适合高效的端到端零样本识别任务。

Method

首先是一个概述在第3.1节中,首先回顾对比视觉语言预训练(CLIP)用于2D零射击分类。然后在3.2节中,介绍PointCLIP,将2D预训练的知识转移到3D点云中。在3.3节中,提供一个访谈视图适配器,以获得更好的少镜头性能。在第3.4节中,建议将PointCLIP与经过充分训练的经典3D网络集成,以进行多知识互补。

A Revisit of CLIP

PointCLIP的管道。为了弥合模态差距,PointCLIP将点云投影到多视图深度图上,并通过在2D中预训练的CLIP进行3D识别。该开关提供了直接零弹分类和少弹分类的替代方案,分别以实线和虚线表示,从这个图中可以看到分成了视觉编码和文本编码两种方式。

CLIP是一个预训练模型,它通过两个独立的编码器分别对图像和文本特征进行编码,以便将图像与其自然语言描述相匹配。在训练过程中,CLIP从互联网上收集了4亿个图像-文本对,通过对比损失在嵌入空间中对齐图像和文本的特征,实现了对开放词汇表中任何语义概念的零样本分类能力。对于未见数据集,CLIP使用预定义模板构建文本输入,并利用类别文本的C维特征获得零样本分类器。CLIP的视觉编码器将测试图像编码为特征向量,然后通过这些特征和文本编码器的权重计算分类logits,并通过softmax函数得到K个类别的预测概率。整个过程无需额外的训练图像,依赖预训练编码器实现优秀的零样本分类性能。

Point Cloud Understanding by CLIP

这一部分提出了PointCLIP,是一个基于预训练的CLIP模型的方法,用于点云数据的零样本学习。

由于3D数据集通常比2D数据集小且类别有限,这使得难以获得适合迁移学习的预训练3D网络。为了解决这个问题,PointCLIP通过从多个视图生成点投影图像,将无序的3D点云数据转换为CLIP能够处理的格式,从而弥合了2D和3D之间的模态差距。这些投影图像保留了点云的原始属性,并且通过简单的深度图投影,以最小的时间和计算成本实现了高效的端到端零样本识别。

PointCLIP利用CLIP的预训练2D知识,通过视觉编码器提取多视图特征,并通过文本编码器构建零样本分类器,通过加权求和的方式聚合来自不同视角的分类结果,实现了对点云的整体理解,而无需任何3D训练数据。

Inter-view Adapter for PointCLIP

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

PointCLIP虽然在点云上实现了高效的零样本分类,但其性能仍不及完全训练的3D神经网络。为了解决这一问题,作者提出了一种视图间适配器,是一个附加在PointCLIP之上的三层多层感知器(MLP),用于在少样本设置下提升性能。

在训练过程中,CLIP的视觉和文本编码器被冻结,只有适配器通过交叉熵损失进行微调。适配器通过连接多视图的特征并经过两层线性变换获取全局表示,然后基于全局特征生成适应性特征,并通过残差连接将其添加回原始CLIP编码的特征。

这种方法不仅增强了对点云的整体理解,而且将新学习到的3D少样本知识融合到2D预训练的CLIP中,进一步提升了跨模态性能。通过仅使用少量样本微调适配器,PointCLIP在ModelNet40数据集上实现了显著的性能提升,从而证明了特征适应在3D少样本数据上的重要性和有效性。

Multi-knowledge Ensemble

PointCLIP与传统的点云网络不同,它不是从零开始在3D数据集上训练,而是继承了2D视觉-语言学习的预训练知识。

研究者探究了将传统点云网络和PointCLIP的知识结合起来的可能性,以提高推理性能。实验中,PointNet++和PointCLIP的集成,通过简单的相加方式,提升了分类性能,证明了不同来源知识互补的有效性。这种集成方法不仅在PointNet++上有效,与其他最先进的3D网络集成时也能观察到类似的性能提升。

因此,PointCLIP可以作为一个即插即用的增强模块,用于提升点云识别的鲁棒性。这表明,通过结合不同领域的知识,可以显著提高模型的性能,尤其是在数据稀缺的情况下。

Experiment

Zero-shot Classification

在这个实验中,PointCLIP配备了视图间适配器,并在1到16次shot的设置下,在ModelNet10、ModelNet40和ScanObjectNN数据集上进行了实验。实验中,选择了ResNet-101作为CLIP的预训练视觉编码器,以加强特征提取,并增加了投影视图的数量至10个,特别是增加了左侧视图。实验结果表明,PointCLIP在少样本分类任务中优于其他四种代表性的3D网络,包括PointNet、PointNet++、SimpleView和CurveNet。消融实验进一步分析了不同投影视图对性能的影响,并发现在16次shot设置下,10个视图比6个视图表现更好。

此外,不同的视觉编码器和提示设计对性能也有显著影响,其中ResNet-101编码器和“点云的大[CLASS]”提示设计表现最佳。

最后,通过与其他完全训练的3D网络集成,PointCLIP进一步提升了性能,证明了其作为即插即用增强模块的潜力,能够实现更稳健的点云识别。

Few-shot Classification

这一部分描述了PointCLIP在少样本学习环境下的实验设置、性能表现和消融研究。实验在ModelNet10、ModelNet40和ScanObjectNN数据集上进行,采用了视图间适配器,并在1到16次shot的设置下进行。为了提高效率和性能,使用了ResNet-101作为预训练的视觉编码器,并增加了投影视图的数量至10个。

实验结果显示,PointCLIP在少样本分类任务中优于其他几种3D网络。消融研究表明,增加投影视图的数量可以提高性能,尤其是左侧视图对性能的提升最为显著。此外,不同的视觉编码器和提示设计对性能有显著影响,其中ResNet-101编码器和特定提示设计表现最佳。最后,通过与其他3D网络集成,PointCLIP进一步提升了性能,证明了其作为多知识集成模块的潜力。

Multi-knowledge Ensemble

这部分主要展示了PointCLIP与其他几种3D网络模型集成后性能提升的数据。表中列出了六种不同的3D网络模型(PointNet、PointNet++、RSCNN、DGCNN、SimpleView、CurveNet)在有无PointCLIP集成时的准确率对比,以及性能提升的具体数值和增益比率。这些数据显示了PointCLIP作为一个多知识集成模块,能够显著提升现有3D网络的性能,尤其是在只有少量样本(16-shot)的情况下,PointCLIP在ModelNet40数据集上达到了87.20%的准确率。这表明PointCLIP能够有效地与其他模型集成,通过补充2D视觉语言预训练的知识来增强3D点云的识别能力。

Conclusion

本文提出了PointCLIP,它可以在没有任何3D训练的情况下对点云进行跨模态零射击识别。通过多视图投影,PointCLIP有效地将CLIP预训练的2D知识转移到3D领域。

此外,设计了一个跨视图适配器来聚合多视图特征,并在少量镜头设置下将3D学习的知识融合到预训练的CLIP中。通过微调适配器并冻结所有其他模块,PointCLIP的性能得到了很大提高。此外,PointCLIP还可以作为一个即插即用模块,为传统的3D网络提供补充知识,从而提高性能。除了识别之外,未来的工作将集中在将CLIP推广到更广泛的3D应用上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/51738.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于#define的使用方法总结

文章目录 #define 预处理指令一、#define宏定义二、查看预处理文件三、#define 的使用方法四、C语言宏中“#”和“##”的用法五、常见的宏定义总结六、常考题目 #define 预处理指令 #define 是 C 和 C 编程语言中的预处理指令,用于定义宏(macro&#xf…

斯坦福UE4 + C++课学习记录 13:UMG-血量条

文章目录 一、创建血量属性二、应用血量更改三、血量UI 一、创建血量属性 Unreal Motion Graphics (UMG)是 UE中用于创建用户界面 (UI) 的工具。它可以实现如下复杂功能: (1)动画:UMG 支持为控件添加动画。可以在 Widget Bluepri…

扩散模型系列0 DDPM:Denoising Diffusion Probabilistic Models

前言: 从7月12号开始 学习了一些扩散模型的论文,越看越上瘾,对未知的渴求激励着我不断地读论文整理、学习、分析、理解 以前发的博客仅仅是对论文的翻译,现在觉得仅仅翻译是不够的,读了一篇论文以后,要形成…

智慧出行新纪元:Vatee万腾平台引领未来交通蓝图

在科技日新月异的今天,智慧出行已成为连接城市脉动、重塑生活方式的关键词。Vatee万腾平台,作为智慧交通领域的佼佼者,正以前瞻性的视角和创新的技术,为我们描绘出一幅未来交通的宏伟蓝图,让每一次出行都成为一次前所未…

扩散模型系列ControlNet: Adding Conditional Control to Text-to-Image Diffusion Models

向文本到图像扩散模型添加条件控制 摘要解读: 我对摘要英文的理解: 我们提出了一个神经网络架构ControlNet,可以向大规模的预训练好的文本到图像的扩散模型中添加空间条件控制。ControlNet锁住了准备生产的大规模扩散模型,并且重…

TCP为什么需要四次挥手?

tcp为什么需要四次挥手? 答案有两个: 1.将发送fin包的权限交给被动断开发的应用层去处理,也就是让程序员处理 2.接第一个答案,应用层有了发送fin的权限,可以在发送fin前继续向对端发送消息 为了搞清楚这个问题&…

生鲜云订单零售系统小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,商品分类管理,商品信息管理,订单评价管理,订单管理,系统管理 微信端账号功能包括:系统首页,商品信息&#x…

力扣高频SQL 50题(基础版)第二十三题

文章目录 力扣高频SQL 50题(基础版)第二十三题596.超过5名学生的课题目说明实现过程准备数据实现方式结果截图 力扣高频SQL 50题(基础版)第二十三题 596.超过5名学生的课 题目说明 表: Courses -------------------- | Colum…

家具缓冲器:提升家居体验的得力助手

在家具和工业设备的设计与制造中,钢珠滑轨缓冲器的安装与否一直是一个备受争议的话题。钢珠滑轨缓冲器作为一种能够减少冲击和噪音的装置,其存在具的价值,但也并非在所有情况下是必需的。首先,从功能和使用体验的角度来看&#xf…

算力共享:如何理解、标识与调控多层次算力资源的异构性和复杂性,实现智能算力网生态诸要素有效互操作?

目录 鹏程云主机和NPU计算服务器关系 NPU计算服务器 两者关系 结论 两种不同类型的处理器或计算单元 FPGA MLU NS3(Network Simulator version 3) 一、基本属性 二、主要功能与特点 三、应用与前景 对象存储和HDD存储 一、定义与特点 二、应用场景 三、总结 对…

html+css+js前端作业和平精英6个页面页面带js

htmlcssjs前端作业和平精英6个页面页面带js 下载地址 https://download.csdn.net/download/qq_42431718/89595600 目录1 目录2 项目视频 htmlcssjs前端作业和平精英6个页面带js 页面1 页面2 页面3 页面4 页面5 页面6

3.2.微调

微调 ​ 对于一些样本数量有限的数据集,如果使用较大的模型,可能很快过拟合,较小的模型可能效果不好。这个问题的一个解决方案是收集更多数据,但其实在很多情况下这是很难做到的。 ​ 另一种方法就是迁移学习(transfer learning…

Go语言编程 学习笔记整理 第2章 顺序编程 前半部分

前言:《Go语言编程》编著 许式伟 吕桂华 等 1.1 变量 var v1 int var v2 string var v3 [10]int // 数组 var v4 []int // 数组切片 var v5 struct { f int } var v6 *int // 指针 var v7 map[string]int // map,key为string类型,value为in…

【QT】qt 文件操作

qt 文件 qt 文件1. Qt 文件概述2. 输入输出设备类3. 文件读写类4. 文件和目录信息类 qt 文件 1. Qt 文件概述 文件操作是应用程序必不可少的部分。Qt 作为⼀个通用开发库,提供了跨平台的文件操作能力。 Qt 提供了很多关于文件的类,通过这些类能够对文件…

微服务--配置管理

现在依然还有几个问题需要解决: 网关路由在配置文件中写死了,如果变更必须重启微服务 某些业务配置在配置文件中写死了,每次修改都要重启服务 每个微服务都有很多重复的配置,维护成本高 这些问题都可以通过统一的配置管理器服…

DP的优化途径---单调队列

1.前缀和单调队列&#xff1a;https://www.acwing.com/problem/content/137/ 我们先预处理下前缀和&#xff0c;以下标为i的点为有边界&#xff1a; 也就是求()的min&#xff0c;考虑到j的范围是定值&#xff0c;用单调队列维护即可。 AC代码&#xff1a; #include<bits/…

OpenGL3.3_C++_Windows(32)

demo SSAO SSAO 环境光照(Ambient Lighting)&#xff1a;光的散射&#xff0c;我们通过一个固定的常量作为环境光的模拟&#xff0c;但是这种固定的环境光并不能很好模拟散射&#xff0c;因为环境光不是一成不变的&#xff0c;环境光遮蔽&#xff1a;让&#xff08;褶皱、孔洞…

更新至2023年上市公司ESG数据合集(十份数据:华证年度、华证季度、商道融绿、wind、秩鼎、润灵环球、盟浪、富时罗素、上市银行华证ESG)

更新至2023年上市公司ESG数据合集&#xff08;十份数据&#xff1a;华证年度、华证季度、商道融绿、wind、秩鼎、润灵环球、盟浪、富时罗素、上市银行华证ESG&#xff09; 数据名称&#xff1a; 一、2018-2023年上市公司富时罗素ESG评分数据 二、2018-2023年上市公司Wind ES…

深度学习实战笔记3循环神经网络实现

我们要训练一个基于循环神经网络的字符级语言模型&#xff0c;根据用户提供的文本的前缀生成后续文本。 import math import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2l batch_size, num_steps 32, 35 train_iter, voc…

C#插件 调用存储过程(输出参数类型)

存储过程 CREATE PROCEDURE [dbo].[GetSum]num1 INT,num2 INT,result INT OUTPUT AS BEGINselect result num1 num2 END C#代码 using Kingdee.BOS; using Kingdee.BOS.App.Data; using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Util; using System; using System.…