PointCLIP: Point Cloud Understanding by CLIP

news2024/9/8 23:23:00

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.coloradmin.cn/o/1957831.html

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

相关文章

【状语从句】

框架 概念,特点主将从现连接词时间条件地点结果方式让步原因目的比较省略倒装 解读 1【概念,特点】 一个完整的句子,去修饰另一个完整句子中的动词,称为状语从句;特点:从句完整,只用考虑连接词是…

扩展------正向代理和反向代理怎么理解?

今天看博客园,突然看到正向代理和反向代理,发现自己还不会就稍微研究了一下。 正向代理----(看做是服务员) 当我们进饭店吃饭,我们不可能会直接去后厨叫厨师给我们做菜,而是通过服务员去通知,这个就叫做正向代理。 再…

keras在GPU环境下配置,conda虚拟环境并安装TensorFlow,cudatoolkit,cudann和jupyter等

前言:要有版本意识 在我个人的多次配置环境过程中,很多时候失败或者后序出现问题,往往都是版本不匹配的问题。所以在本次安装中,提前重点了解了下版本匹配情况。各位千万不要跳过这部分,因为这不仅是基础知识了解的过…

君子学习,是为了修养自己

98天 保护自己最好的方式: 恢复良知的明和诚,就能照见万物,能常觉、常照,任何东西都无所遁形。(相信直觉) 君子学习,是为了修养自己。 从不担忧别人会欺骗自己,只是永远不欺骗自己的…

docker笔记7-dockerfile

docker笔记7-dockerfile 一、dockerfile介绍二、dockerfile指令三、构建自己的镜像 一、dockerfile介绍 Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。 以下是常用的 Dockerfile 关键字的完整列表和说明: 二、docker…

实时捕获数据库变更

1.CDC概述 CDC 的全称是 Change Data Capture ,在广义的概念上,只要能捕获数据变更的技术,我们都可以称为 CDC 。我们目前通常描述的CDC 技术主要面向数据库的变更,是一种用于捕获数据库中数据变更的技术,CDC 技术应用…

C语言进阶 10. 字符串

C语言进阶 10. 字符串 文章目录 C语言进阶 10. 字符串10.1. 字符串10.2. 字符串变量10.3. 字符串输入输出10.4. 字符串数组10.5. 单字符输入输出10.6. 字符串函数strlen()10.7. 字符串函数strc()10.8. 字符串函数strcpy()10.9. 字符串搜索函数10.10. PAT10-0. 说反话 (20)10-1.…

RK3568平台(input篇)input数据上报分析

一.input设置事件类型 __set_bit 是一个位操作函数,用于设置一个位图中的特定位,例如可以通过下面的代码将 输入设备设置为支持按键事件: __set_bit(EV_KEY,myinput_dev->evbit) 第一位为设置设置事件类型。 第二位为输入设备的能力 和…

6 网络

6 网络 1、概念2 IP地址3、套接字4、TCP协议4.1 TCP协议的基本特征4.2 建立连接4.4 终止连接4.5 编程模型 5、UDP协议5.1 UDP协议的基本特性5.2 常用函数5.3 UDP通信模型 6、域名解析 1、概念 计算机网络是实现资源共享和信息传递的计算机系统 ISO/OSI网络协议模型 TCP/IP协…

应急响应靶场

靶场搭建 靶场环境搭建:首先确定目标靶机的IP地址: 端口探测:发现只开放了22号端口 尝试利用hydra进行爆破: 成功找到了密码。ssh远程登录之后,添加后门账号: msfvenom生成msf的木马: 利用python快速搭建h…

代码随想录 day 25 回溯

第七章 回溯算法 part04 491.递增子序列 本题和大家刚做过的 90.子集II 非常像,但又很不一样,很容易掉坑里。 https://programmercarl.com/0491.%E9%80%92%E5%A2%9E%E5%AD%90%E5%BA%8F%E5%88%97.html 视频讲解:https://www.bilibili.com/vi…

培训第十六天(web服务apache与nginx)

上午 静态资源 根据开发者保存在项目资源目录中的路径访问静态资源html 图片 js css 音乐 视频 f12,开发者工具,网络 1、web基本概念 web服务器(web server):也称HTTP服务器(HTTP server)&am…

解决Windows密码丢失问题:详细指南

解决Windows密码丢失问题:详细指南 引言 最近因为某些工作缘故,接触到windows比较频繁,特此记录一下 当下,计算机安全是每个人都不能忽视的重要问题。然而,有时可能因为忘记密码而无法访问自己的Windows系统&#xf…

NAS、SAN 与 DAS 的比较与应用场景

文章目录 1. NAS(网络附加存储)定义特点实现成本:适用场景 2. SAN(存储区域网络)定义特点实现成本:适用场景 3. DAS(直接附加存储)定义特点实现成本:适用场景 区别总结结…

基于tkinter的学生信息管理系统之登录界面和主界面菜单设计

目录 一、tkinter的介绍 二、登陆界面的设计 1、登陆界面完整代码 2、部分代码讲解 3、登录的数据模型设计 4、效果展示 三、学生主界面菜单设计 1、学生主界面菜单设计完整代码 2、 部分代码讲解 3、效果展示 四、数据库的模型设计 欢迎大家进来学习和支持&#xff01…

文件操作相关的精讲

目录: 思维导图 一. 文件定义 二. 文件的打开和关闭 三. 文件的顺序读写操作 四. 文件的随机读写操作 五. 文本文件和二进制文件 六. 文件读取结束的判断 七.文件缓冲区 思维导图: 一. 文件定义 1.文件定义 C语言中,文件是指一组相…

Chapter 18 Python异常

欢迎大家订阅【Python从入门到精通】专栏,一起探索Python的无限可能! 文章目录 前言一、什么是异常二、捕获异常三、异常的传递 前言 在Python中,异常是一种特定的对象,能够在程序运行过程中被抛出和处理。有效地管理异常不仅可以…

Spark+实例解读

第一部分 Spark入门 学习教程:Spark 教程 | Spark 教程 Spark 集成了许多大数据工具,例如 Spark 可以处理任何 Hadoop 数据源,也能在 Hadoop 集群上执行。大数据业内有个共识认为,Spark 只是Hadoop MapReduce 的扩展&#xff08…

精准客户从何而来?一招让你的客户源源不断!

你们是否还在为找不到精准客户而烦恼? 今天,我要分享一招非常实用的技巧,让你也能拥有源源不断的客源! 首先,我们需要深入了解自己的目标客户。他们是谁?他们的需求是什么?并利用大数据洞察客…