点云深度学习系列博客(六): Point Transformer方法概述

在上一篇博客《注意力机制原理概述》中,我们介绍了注意力机制的基本原理以及一些技术细节。基于注意力机制的深度学习模型在起初设计时,针对的是NLP问题。包括词元分析,翻译等语言处理任务,注意力机制能够训练超大规模数据,并建立学习模型,获得显著的性能提升。鉴于注意力机制在NLP任务中的空前成功,视觉领域也尝试引入注意力机制,著名工作包括VIT [1] 和Swin Transformer [2]。对于点云数据处理,一些基于Transformer模型 [3][4] 的工作也被提出。本文以文献 [3] 为基础,概述在点云数据处理任务中引入Point Transformer的具体思路。


1. 概述

Point Transformer基于自注意力网络实现网络模型的构建。通过设计针对点云的自注意力层,结合位置编码构建Transformer block,利用自注意力机制,实现包括语义分割,部件分割以及识别任务。该项工作的最大贡献即提出面向点云的自注意力层。自注意力层是序列无关的,天然适合处理无序点云数据。为了方便理解自注意力层,这里回顾一些基础知识。设存在一个特征向量{xi},标准的标量点积注意力层能够被表示为:

yi是输出特征, φ, ψ, 和 α是逐点特征变换,类似线性变换或MLP,δ是位置编码函数,ρ是标准化操作,例如softmax。标量注意力层计算由φ和ψ变换来的特征的标量点积,使用输出作为注意力分数,对α变换的汇聚特征赋权。注:这个公式的写法存在一些误导,在一些相关介绍中,一般使用α来表示权重或分数,这里是反的,需要注意。

在向量注意力中,注意力权重的计算是不同的,其为向量表示,可以独立调节特征通道。

这里的β为关系函数,γ为映射函数,如MLP,用来产生注意力向量用于特征汇聚。结合前文对注意力机制的介绍,不管ρ的内部多么复杂,其只用来衡量查询xi与xj的差异,并指导对xj的加权输出,建立xi与{xj}的关系。包括标量和向量自注意力都是集合算符,集合本身能够被视为表示任意信号的特征向量。自然,其能够对应一组点云局部的patch,或邻域结构。


2. Point Transformer层

基于自注意力机制的基本原理,文献 [3] 提出Point transformer层(Pt层),结构如下:

 是xi点的一个局部邻域,可基于KNN定义。由于我们有了局部邻域,就可以使用最近的基于图像patch的自注意力网络,来分析点在其邻域内的自注意力。这里的映射函数γ是一个包含两层线性层的MLP和一个Relu层的组合。Pt层层如下图所示:

图1. Point transformer层结构图。


3. 位置编码与块构建

位置编码在自注意力机制中是非常重要的,相关介绍已经在上篇博客中提及。在点云处理中,三维点坐标天然表达位置信息,可以被直接用来做位置编码。这里给出位置编码函数δ的表示:

pi和pj即点的坐标,编码函数θ与之前提到的映射函数γ的结构一样。

构建包含Pt层在内的残差Point Transformer 块(Pt块)作为网络设计的核心,结果如下图(a)所示:

图2. 各模块结构示意图。

transformer块汇聚了自注意力层,线性映射降低了维度,提高计算效率。输入是一组特征向量x伴随三维坐标p。Pt块促进了局部特征向量的信息交互,产生新的特征向量作为输出。信息汇聚既适应特征向量的内容,也适应特征向量的三维布局。


4. 模型架构

基于Pt块,一个完整的点云Transformer网络模型被构建。Pt层是网络中最主要的特征聚合算子,不需要卷积或其他辅助模块。整个结构仅需要Pt层,点变换和池化操作。网络结构如下图:

 图3. Point transformer结构图。

整个架构包含五个阶段,每个阶段都会逐次进行下采样,下采样率分别为1,4,4,4,4,对应的点数为N,N/4,N/16,N/64,N/256。各个阶段的过度由转接模块实现,向下转接用于特征编码,向上转接用于特征解码。

向下转接主要的功能是减少点集维度,例如从第一阶段到第二阶段,点数N变到N/4。这里使用最远点采样,实现向下转接。为了池化转接后的特征向量,这里使用KNN(k=16)在输入端。每个输入特征经过一个线性变换,随之进行归一化和ReLU,然后进行最大池化。转接前点集的,按照K近邻汇聚到转接后采样点中。向下转接模块结构如图2(b)所示。

对于稠密预测任务,类似于语义分割,我们适配一个U-net的设计,其结构与向下转接形成对偶关系。每一阶段通过上采样模块连接,实现对电云的上采样。最后,每一个输入点的特征被一个线性层处理,紧跟着一个归一化层和重采样层,使得特征通过三线形差值,被映射到高分辨率点集。这些从之前的解码器生成的特征正好对应对称位置编码阶段的特征,通过跨越连接实现(见图3,对应位置的编解码器均有一条跨越连接的数据通路)。向上转接模块如图2(c)所示。

最后,对于分割任务,最后一层解码后,每一点均会对应生成一个特征向量。最后应用一个MLP层映射这个特征到最终结果。对于分类任务,我们逐点对特征执行全局平均池化,以获得一个对于整个点云的全局特征向量。将这个全局特征通过一个MLP层以输出分类结果。


5. 实验结果

图4. S3DIS场景分割结果。

 

 图5. S3DIS场景分割精度与ModelNet40识别精度对比数据。


总结

整体来说,基于自注意力机制设计的Point Transformer利用了点在局部邻域的对应关系,建立查询、键、值在点云局部邻域的表示,并建立以点对为注意力单位的特征学习模型。这取代了PointNet++中在局部建立特征卷机的做法,使得向下采样点特征聚集的过程更加高效,降低了邻域中,不相关点对对于训练的影响。不过,没有使用多头注意力,仍被称为Transformer,感觉是有点奇怪的。我认为对于之后对于该结构的改进,可以从此处入手。


Reference

[1] A. Dosovitskiy, L. Beyer, A. Kolesnikov, et al. An image is worth 16x16 words: Transformers for image recognition at scale[J]. arXiv preprint arXiv:2010.11929, 2020.

[2] Z. Liu, Y. Lin, Y. Cao, et al. Swin transformer: Hierarchical vision transformer using shifted windows [C]. International conference on computer vision. 2021: 10012-10022.

[3] H. Zhao, L. Jiang, J. Jia J, et al. Point transformer [C]. Proceedings of the IEEE/CVF international conference on computer vision. 2021: 16259-16268.

[4] MH. Guo, JX. Cai, ZN. Liu, et al. Pct: Point cloud transformer[J]. Computational Visual Media, 2021, 7: 187-199.

  • 3
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
【资源说明】 基于Point Transformers复现点云分割任务及HAQ算法进行自动量化压缩python源码+运行说明.tar基于Point Transformers复现点云分割任务及HAQ算法进行自动量化压缩python源码+运行说明.tar基于Point Transformers复现点云分割任务及HAQ算法进行自动量化压缩python源码+运行说明.tar基于Point Transformers复现点云分割任务及HAQ算法进行自动量化压缩python源码+运行说明.tar基于Point Transformers复现点云分割任务及HAQ算法进行自动量化压缩python源码+运行说明.tar基于Point Transformers复现点云分割任务及HAQ算法进行自动量化压缩python源码+运行说明.tar 基于Point Transformers复现点云分割任务及HAQ算法进行自动量化压缩python源码+运行说明.tar 基于Point Transformers复现点云分割任务及HAQ算法进行自动量化压缩python源码+运行说明.tar基于Point Transformers复现点云分割任务及HAQ算法进行自动量化压缩python源码+运行说明.tar 基于Point Transformers复现点云分割任务及HAQ算法进行自动量化压缩python源码+运行说明.tar 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,也适用于小白学习入门进阶。当然也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或者热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载,沟通交流,互相学习,共同进步!
### 回答1: PCT代表Point Cloud Transformer点云变换器),它是一种深度学习模型,专门用于处理点云数据。点云数据是由大量点组成的三维几何形状数据,常用于机器人视觉、自动驾驶、3D建模等领域。 PCT模型基于自注意力机制(self-attention)和Transformer模型架构,通过对点云数据进行编码和解码,实现对点云数据的语义理解和特征提取,能够有效地解决点云数据噪声、不完整性等问题,提高点云数据的处理效率和准确性。 ### 回答2: PCT是指点云变换器(PCT: Point Cloud Transformer),是一种新颖的点云数据生成方法点云是由立体激光雷达或者其他三维扫描仪捕获的点云数据集合,被广泛应用于各个领域,例如自动驾驶、虚拟现实等。PCT的出现为点云数据的处理、分类和分割提供了全新的解决方案。 PCT方法是基于自监督学习的方法,其强大的点云编码器通过学习局部和全局特征来提取点云的语义信息。与传统方法相比,PCT以一种新的、更加高效的方式从点云中检索出高级语义特征,同时还可以通过训练神经网络进行大量扩展,使得其具有很好的鲁棒性和泛化能力。 PCT的优点在于可以高效轻便地处理大规模、高维度和密集的点云数据,并能够支持多种类型的数据变换,例如旋转、缩放和翻转等。此外,PCT还可进行大规模的点云数据推理和预测,可以在实践中进行语义分割、目标识别和对象重建等操作。 总之,PCT是一种创新的点云变换器,其结构和算法使得对点云数据的处理更加快速、高效和准确,并为自动驾驶、虚拟现实、机器人感知等领域提供了更广泛的应用前景。随着近年来人工智能技术的快速发展,PCT将在点云领域中成为一个具有强大竞争力的解决方案。 ### 回答3: PCT是一种新型的点云处理算法,全称为Point Cloud Transformer,中文名为点云变换器。PCT算法是在Transformer模型的基础上针对点云数据进行的改良,能够有效地处理点云数据中的特征信息。 PCT算法的核心思想是使用自注意力机制来学习点云数据的特征表示。自注意力机制是指对于输入的点云数据,PCT算法会根据点与点之间的关系计算每个点与周围点的关联程度,从而将各点的特征信息进行整合,得到一个更为全面的点云特征表示。 与传统的点云处理算法相比,PCT算法具有如下优点: 1. 对不同大小的点云数据进行自适应处理,不需要预先指定输入点云的大小。 2. 具有更好的灵活性和可扩展性,适用于不同场景下的点云数据处理。 3. 在处理稀疏点云数据时,PCT算法能够充分利用点云数据的局部性质,提升点云数据的处理精度。 总之,PCT算法是一种新兴的点云数据处理算法,具有能够高效处理不同尺度的点云数据、充分利用数据局部性质、提升处理精度等优点,对点云数据的处理能力有较大的提升。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿老甘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值