Point Cloud Transformer 由于点云的不规则性和无序性,我们不能直接使用卷积来进行处理点云。与此同时,注意力机制是一种排序不变、不依赖点连接算子,十分适合点云的操作。
点云的整体架构
文章图片
点云整体架构由输入嵌入部分——>注意力层——>分割分类构成。其设计主要参考了PointNet和Transformer的设计理念。
输入嵌入部分输入嵌入部分主要由两种形式构成:
- 点嵌入(只考虑单点嵌入,使用共享的神经网络,将点云映射到高维空间)
- 领域嵌入(不只是考虑单点情况,还是用KNN算法得到领域信息,进而通过领域嵌入方式将点云映射到高维空间)
注意力层
文章图片
PCT注意力层使用了两种模型:
- “传统”的
self-attention
- offset-attention(结合上述的
self-attention
和图中卷积的拉普拉斯算子)
self-attention
中的Q、K、V 矩阵。为了保存维度一致,对K进行转置。进行Softmax
标准化(方便求解梯度),得到Attention Map
(也就是下图中的五角星)。点乘生成V矩阵得到Attenion Feature
。运用offset-attention
生成LBR。文章图片
分类分割头部参考PointNet设计:
- 分类
- 使用上述获得
Attention Feature
,进行Pooling(一般情况还是使用Max Pooling)得到全局特征
,进行全连接
和Dropout
(防止过拟合),输出分类结果。
- 使用上述获得
- 分割
Attention Feature
(如何得到局部特征
)得到局部特征
,结合分类得到的全局特征
。拼接局部特征
和全局特征
,进行全连接
和Dropout
特征。
文章图片
PCT分类论文中把PCT分成了三类:
- NPCT
- SPCT
- PCT
PCT使用的三种数据库
- 分类:ModelNet40
- 分割:ShapeNet
- 语义分割: S3DIS
论文精读
- 点云和NLP领域上不太相关,PCT主要做出了以下的修改:
- 基于坐标的输入嵌入模块 —— 解决点云的无序性
- 优化 offer-attention 模块 —— 优化之前Transformer的self-attention层,使用offset。把点云看作图、把浮点数矩阵。看作attention map
作用:
- 相对坐标更为可靠
- 图卷积学习中,
Laplacian
矩阵更为有效
- 邻近嵌入模块 —— 加强局部的效果,而不只是考虑单点无关联情况
- 基于坐标的输入嵌入模块 —— 解决点云的无序性
- 相关工作
- Transformer in NLP —— NLP 使用广泛,但是其处理的为位置相关,语义有序的情况
- Transformer in images —— ViT 中局部补丁和基本语义信息,提出
邻近嵌入模块
——可以捕获局部信息并获取语义信息。 - Point-based deep learning —— pointnet点云提出后,处理方式层出不穷。比如:拓展、限制算子,体素化处理(把点云变成有序的,从而进行卷积操作),使用attention。本文提出
Transformer
而不是使用self-attention
作为辅助。
- PCT的表示:
- PCT
- 对input进行升维操作(更好描述语义关联),除了去除position embedding这一步骤,其他的都与Transformer理念相同。
- 输入——>4次 attention层操作 ——>拼接全部的attention层——>使用MP-AP得到全局特征
- 分类
- MP-AP——> LBRD——>LBRD(D:dropout(防止过拟合))——> Linear
- 分割
- 使用one-hot解码到64维度,运用LBRD——>LBR——>Linear(Normal estimate)
- NPCT
- 把点云当作整个句子,把点看作句子中的一个单词。结合
self-attention
。 self-attention
Q、K、V 模型,最后进行标准化。——>解决点云无序、不规则问题。采用SS
- 把点云当作整个句子,把点看作句子中的一个单词。结合
- Offset-Attention
- 使用 offset-attention代替 self-attention(加入了Laplacian运算)
- 先进行softmax之后进行l1-norm(传统的是先进行规范化,之后进行softmax)
- 增强局部特征表示的邻近嵌入
- 之前点云的操作考虑了全局变量,但是没有考虑到局部变量
- 其主要包含两大块——>两个LBR层和两个SG(Sampling and Grouping)。其中LBR是标配,SG是扩大特征提取的感受野。SG主要使用欧氏距离的
knn
- SG
- 使用 the farthest point sampling (FPS) to downsample 。(FPS何方神圣,可以改进?)
FPS博客详细介绍 - 使用 knn
- 使用 the farthest point sampling (FPS) to downsample 。(FPS何方神圣,可以改进?)
- PCT
参考Jittor官方解读PCT
Jittor官方实现
【PCT|Point Cloud Transformer】PCT论文地址
推荐阅读
- Transforme结构(位置编码 | Transformer Architecture: The Positional Encoding)
- 视觉Transformer中的输入可视化方法
- 4万字50余图3个实战示例一网打尽Transformer
- 周报|Transforemr模型从零搭建Pytorch逐行实现
- transformers|【深度学习】(ICCV-2021)PVT-金字塔 Vision Transformer及PVT_V2
- 深度学习知识总结|从RNN到Attention到Transformer系列-Encode-Decode(Seq2Seq)介绍及代码实现
- 论文阅读|论文阅读 - Video Swin Transformer
- transformer|论文阅读|MobileViT
- #|MobileViT(A mobile-friendly Transformer-based model for image classification)