PCT: Point Cloud Transformer是2021年清华大学发表在CVMJ上的一篇论文
论文地址 : PCT: Point Cloud Transformer
前言
近些年在NLP领域Transformer越来越火,在CV领域也有人尝试将Transformer应用于图像视觉任务,相较于流行的卷积神经网络具有更好的性能,典型的如目标检测领域的DETR等。关于Trandformer和DETR的解读可以参考沐神的论文精读视频:Transformer论文逐段精读【论文精读】、DETR 论文精读【论文精读】
受到Transformer在视觉和NLP任务中成功的启发,这篇论文提出了一种基于Transformer用于点云学习的框架PCT。
一、PCT
PCT整体框架如上图Figure 2所示,大体上和PointNet的网络框架相似,不同的地方在于PCT将PointNet中对点云进行处理的MLP换成了Attention,经过四层Attention模块后将每一层的输出拼接起来,再通过一个池化层和LBR层得到点云的特征。对于后续的工作和PointNet基本上相同。
二、Naive PCT
Naive PCT也仅仅是将Transformer中的Self-Sttention模块搬运进来,将Figure 2中的Attention模块更换为Self-Sttention,Self-Sttention具体结构如Figure 3中的虚线所示。
三、Offset-Attention
作者参考了图卷积网络中使用了拉普拉斯矩阵,整体框架如Figure 3中的实线所示。关于拉普拉斯矩阵可以参考:图谱论学习—拉普拉斯矩阵背后的含义。经过推导可以得到和拉普拉斯矩阵(L=D-A)类似的公式。
其次作者将原始Transformer中的normalization操作中Scale这一步骤去掉,直接进行softmax,然后进行L1-norm。作者解释说这样可以增强注意力权重,减少噪声的影响,有利于下游任务。
Here, we use the softmax operator on the first dimension and an l1-norm for the second dimension to normalize the attention map. The traditional Transformer scales the first dimension by 1/√da and uses softmax to normalize the second dimension. However, our offset-attention sharp-ens the attention weights and reduce the influence of noise, which is beneficial for downstream tasks.
四、Neighbor Embedding
由于目前只得到了全局特征,没有考虑到局部特征,参考了PointNet++和DGCNN,作者提出了Neighbor Embedding进行局部特征提取。Neighbor Embedding框架如上图Figure 4所示,其中SG模块采用FPS和KNN,与PointNet++中的SA模块极为相似。最终的输出结果用于后续的Self-Attention模块。
根据论文中所提供的推导流程来看,将Figure 4进行修改可能更加满足推导流程。
总结
对本篇论文最大的感受就是强行将Transformer应用于点云领域,并没有像DETR一样,将Transformer应用到图像处理中,仅仅是使用了Self-Attention模块而已,同时针对Neighbor Embedding感觉就是PointNet++中SA模块的翻版,但是为什么一开始不使用PointNet++,而要使用PointNet。
但是由于点云自身的无序性,对点云处理也需要一种排序不变,不依赖点之间关系的处理方法,Transformer显然是更适合用于点云的处理和分析。
本文是自己对论文的理解,如有不同见解,欢迎讨论、指正。