(CVPR) Point Transformer - 详细解读

目录

知识补充

点云处理回顾

文中提到的针对PoinrNet++的一些改进采样策略:

将卷积表示为MLP:

作者灵感来源:

先前使用到注意力机制的3D点云文章:

自注意力机制适合处理点云的原因

Point Transforemer

标量点积注意力层可以表示为:

向量点积注意力层可以表示为:

Point Transformer Layer

Position Encoding

Point Transformer Block

Network Architecture

Backbone structure

Transition down

总结

特征编码

第一个Point Transformer层

Transition Down模块

Point Transformer层

参考资源


知识补充

mIoU(mean Intersection over Union)是一种常用于图像分割、对象检测和语义分割等计算机视觉任务中的评估指标。它计算的是预测区域与真实区域之间的交集与并集的比值的平均值。

本文的贡献:a self-attention layer for 3D point cloud processing

点云处理回顾

基于学习的处理3D点云的方法可以分为以下几种:基于投影的、基于体素和基于点的网络。

基于点云的相关重要文章:PointNetPointNet++

文中提到的针对PoinrNet++的一些改进采样策略:

1、Oren Dovrat, Itai Lang, and Shai Avidan. Learning to sample. In CVPR, 2019.

2、Wenxuan Wu, Zhongang Qi, and Li Fuxin. Pointconv: Deep convolutional networks on 3d point 3、clouds. In CVPR, 2019. 2, 6, 7

4、Jiancheng Yang, Qiang Zhang, Bingbing Ni, Linguo Li, Jinxian Liu, Mengdie Zhou, and Qi Tian. Modeling point clouds with self-attention and gumbel subset sampling. In CVPR, 2019. 2, 3, 5, 6

5、Qingyong Hu, Bo Yang, Linhai Xie, Stefano Rosa, Yulan Guo, Zhihua Wang, Niki Trigoni, and Andrew Markham. Randla-net: Efficient semantic segmentation of large-scale point clouds. In CVPR, 2020. 2

将卷积表示为MLP:

Shenlong Wang, Simon Suo, Wei-Chiu Ma, Andrei Pokrovsky, and Raquel Urtasun. Deep parametric continuous convolutional neural networks. In CVPR, 2018.

作者灵感来源:

先前使用到注意力机制的3D点云文章:

1、Saining Xie, Sainan Liu, Zeyu Chen, and Zhuowen Tu. Attentional shapecontextnet for point cloud recognition. In CVPR, 2018. 3, 6, 7

2、Xinhai Liu, Zhizhong Han, Yu-Shen Liu, and Matthias Zwicker. Point2sequence: Learning the shape representation of 3d point clouds with an attention-based sequence to sequence network. In AAAI, 2019. 3, 6, 7

3、Juho Lee, Yoonho Lee, Jungtaek Kim, Adam Kosiorek, Seungjin Choi, and Yee Whye Teh. Set transformer: A framework for attention-based permutation-invariant neural networks. In ICML, 2019. 3, 6

4、Jiancheng Yang, Qiang Zhang, Bingbing Ni, Linguo Li, Jinxian Liu, Mengdie Zhou, and Qi Tian. Modeling point clouds with self-attention and gumbel subset sampling. In CVPR, 2019. 2, 3, 5, 6

共性问题:将注意力机制用于整个点云

适当的位置编码在大规模点云理解中的重要性(先前的研究忽视了位置信息)

自注意力机制适合处理点云的原因

1、排列不变性:3D点云是无序的,即点的顺序不应影响最终的处理结果。自注意力机制天然具有排列不变性,因为它通过对所有点对的关系进行建模来处理输入,而不依赖于任何特定的输入顺序。

2、捕捉全局上下文:点云数据通常覆盖了3D空间中的对象或场景,理解这些数据需要捕捉点之间复杂的空间关系。自注意力机制能够有效地捕捉这些关系,因为它为每对点赋予一个注意力权重,这反映了它们之间的相对重要性。

Point Transforemer

自注意力算法可以分为两类:标量注意力向量注意力

Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszko reit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, and Illia Polosukhin. Attention is all you need. In NIPS, 2017. 1, 2, 3, 4, 7 (标量注意力)

Hengshuang Zhao, Jiaya Jia, and Vladlen Koltun. Exploring self-attention for image recognition. In CVPR, 2020. 1, 2, 3, 4 (矢量注意力)

标量点积注意力层可以表示为:

流程:使用𝝋,𝝍转换点云的输入特征,然后计算他们的标量积。并将输出作为注意力的权重,用于对𝜶转换的特征进行加权处理。

标量自注意力中,每一对输入特征(比如说点云中的两个点的特征)之间的关系是通过计算他们的标量积来衡量的。将结果通过SoftMax来获得注意力权重,进而通过权重聚合其他特征。这一方法将同一注意力权重应用于相关特征的所有通道,意味着整个特征向量会以相同的比例缩放。

向量点积注意力层可以表示为:

其中,𝛽表示关系函数(例如加减法),𝛾表示映射函数(例如MLP),用于得到注意力聚合的特征向量。

与标量自注意力不同的是,向量自注意力中的注意力权重是向量而不是单个数值,这允许在特征聚合过程中调节单个特征通道。

可进一步理解为:在标量自注意力中,会计算一个单一的注意力得分(标量)来加权每个特征通道(即该标量值会作用于该特征的所有特征通道)。

而在向量自注意力中,每个特征通道中的特征值都有一个独立的加权注意力得分。这意味着在聚合时,每个通道可以被不同程度地强调或抑制。

Point Transformer Layer

基于向量点注意力,使用减法关系,并在注意力向量𝛾和变换后的特征𝛼中添加位置编码𝛿。网络定义为:

其中,子集𝜒(𝑖)⊆𝜒是点𝑥𝑖的一个局部领域(基于KNN定义),这里的𝑥𝑖是已经进行FPS划分得到的局部邻域中的点

在每个数据点周围的局部领域中应用局部自关注机制。

Point Transforemer层表示如下:

Point Transforemer层的目标是从输入的点云集合中提取特征,并生成一个新的特征集合,其中每个点的特征都通过考虑周围点的特征来更新。

具体实现:

在每个点的局部领域内引入自注意力机制,每个点只与其最近的k各邻点交互(用于捕捉模型的局部信息结构)。

在注意力和特征变换分支引入位置编码𝛿来增强模型对点云中相对位置信息的理解能力。

Position Encoding

位置编码能够使算子适应数据中的局部结构。原因如下:

1、3D点云本质上是一组无序的点,每个点包含了它的位置信息和可能的其他特征(如颜色或法线)。与图像处理不同,点云中点的顺序不固定,这意味着模型需要能够识别点之间的空间关系,而不仅仅是依赖点的绝对位置或顺序。(处理无序集合)

2、3D点云中的对象和场景通常具有复杂的局部结构,如物体的边缘、角落或平面。位置编码使自注意力机制能够考虑到这些局部结构的空间排列,从而更有效地捕捉和利用这些细节信息。(适应局部结构)

3、通过将位置信息作为输入特征的一部分,自注意力层可以根据点之间的相对或绝对位置调整其对特征的重视程度。这种机制增强了模型的表达能力,允许它识别出不同空间配置的特征模式。(增强模型的表达能力)

序列和图像中的位置编码都由人精细选择(例如基于正弦余弦函数(原Transformer中的位置编码方式)或归一化范围值)

而在三维点云中,点的坐标是自然的位置编码候选方式。本文使用一种参数化的位置编码方式𝛿,定义如下:

作者认为位置编码对注意力生成分支和特征转换分支都很重要,因此在两个分支中都添加了可训练参数的位置编码。

Point Transformer Block

Network Architecture

Backbone structure

特征编码包括五个阶段,这些阶段对逐步下采样的点集进行操作。

作者的配置为:每个阶段的下采样率为 [1, 4, 4, 4, 4],即每个阶段产生的点集的维度为 [N, N/4, N/16, N/64, N/256],N表示输入点的个数。

连续的阶段通过转换模块连接(向下转换用于特征编码,向上转换用于特征解码)

Transition down

1、使用最远点采样(FPS)从输入点集𝑃1中选取一个子集𝑃2作为下采样结果(𝑃2⊂𝑃1)。

2、在𝑃2中,通过k近邻搜索找到其在原始点集𝑃1中最近的k个邻近点(用于确认哪些原始点的信息将被聚合到下采样后的点上)

3、接着,对每一个采样的点,将其k个近邻点的特征通过最大池化合并到一起(这个过程不仅减少了点的数量,还结合了近邻点的特征,捕获了局部的空间信息)。

4、最后,将聚合后的特征经过线性层进一步提炼特征。

总结

注意力机制即模拟人类视觉感知,选择性地筛选刷信息。注意力机制引入三个基本元素(查询-Query、键-Key、值-Value),K和V对应信息的输入和输出,Q对应自主性提示。

注意力思想可以理解为来源于Nadaraya-Watson核回归

假设输入为N个3D点云,每个点具有三维坐标X,Y,Z。

特征编码

1、初始特征提取:对输入的点云进行线性变换(MLP)来提取初始特征(包括批量归一化、ReLU等等),为每个点生成初始特征向量。

第一个Point Transformer层

1、Linear:特征变换 - 全局特征处理(处理整个点云的特征) -- 此层考虑点云中的所有点的特征和位置信息。

2、自注意力机制

特征变换:将所点的特征通过一组线性层(包括ReLU等)来转换每个点的特征;

位置编码:计算每个点与其他点的相对位置,并通过MLP来学习参数𝜃;

特征聚合:根据计算的权重修正每个点的特征值。

3、Linear:特征变换

Transition Down模块

1、降采样:通过FPS选择一组分布广泛的点作为下一阶段的输入 - 减少计算量并保留几何信息

2、局部邻域构建(KNN - MLP):在采样后的点集中,通过K近邻来寻找降采样后每个点的局部邻域,在后续处理中增加局部结构信息。

3、特征聚合:类似于PointNet中的对称函数,通过最大池化来聚合这一尺度下的点云信息。

Point Transformer层

将降采样后点作为新的全部点集,与之前Point Transformer层相同步骤提取该点集中每个点和其他点之间的自注意力特征,作为下一层降采样的输入。

参考资源

论文地址: https://arxiv.org/abs/2012.09164

代码复现: GitHub - qq456cvb/Point-Transformers: Point Transformers

  • 23
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
【资源说明】 基于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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

晨晨丶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值