【论文阅读】【点云处理】Transformer在点云上的应用

Transformer在点云上的应用的研究处于起步阶段。

Transformer的入门可以看我另外一篇博客:从零入门Transformer

PCT: Point Cloud Transformer

论文链接:https://arxiv.org/abs/2012.09688
代码链接:https://github.com/MenghaoGuo/PCT

naive PCT

在这里插入图片描述

1、输入为点云,用MLP做input embedding。
2、送入transformer中,做成DenseNet的连接形式。
3、然后用LBR进一步提取特征到1024维
4、做MA-Pool,就是max-pooling和average-pooling结合,得到一个global feature

做classification:用这个global feature直接算
做Segmentation和法向量预测:需要恢复到原始点的数量,则把global feature和做MA-pool之前的特征拼接起来。然后用LBR做预测。

Offset-Attention

这块是本文声称的一个创新点:

SA代表self attention这个模块, F s a F_{sa} Fsa代表经过self-attention操作之后的特征
在这里插入图片描述

原本的self-attention如上,本文改成了:
在这里插入图片描述
然后我认为作者强行与Laplacian matrix关联了一下。那你说有改进,那你就做ablation study看一下效果提升多少啊。

作者也改了normalization的方法。

Neighbor Embedding for Augmented Local Feature Representation

作者认为attention可以很好的提取全局特征,但对于局部特征来说则弱一些。所以作者提出,先用PointNet++来提取一些局部特征,作为transformer的输入。

对于classification,PointNet++中的采样保留就好。但对于分割。就不要FPS这个,对所有点做局部特征提取。

Experiment

实验做出来效果很好,就是没有ablation study说明提出改进的比较性。

Point Transformer

Attention Module

作者首先给出原本transformer的表达式,其中 δ \delta δ是position encoding, ρ \rho ρ是normalizaion函数,例如softmax:
在这里插入图片描述

然后作者给出了vector attention的表达式,这里作者也没给出引文,我也没听过没查到说vector attention是啥。但也先不管,其中 γ \gamma γ是MLP, β \beta β是relation function,例如减法:
在这里插入图片描述



紧接着,作者给出了本文attention的表达式
在这里插入图片描述
其中, γ \gamma γ, φ \varphi φ, ψ \psi ψ, α \alpha α均是MLP, δ \delta δ如下给出,其中 θ \theta θ也是MLP:
在这里插入图片描述
那我们重新整理一下这个公式:

y i = ∑ ρ ( M L P ( x i ) − M L P ( x j ) + M L P ( x i − x j ) ) ⊙ ( M L P ( x j ) + M L P ( x i − x j ) ) y_i = \sum \rho(MLP(x_i)-MLP(x_j)+MLP(x_i-x_j)) \odot(MLP(x_j)+MLP(x_i-x_j)) yi=ρ(MLP(xi)MLP(xj)+MLP(xixj))(MLP(xj)+MLP(xixj))

我认为MLP反正是可以训练的,MLP合一合表示其实也是一样的,结果就是:
y i = ∑ ρ ( M L P ( x i , x j , x i − x j ) ) ⊙ ( M L P ( x j , x i − x j ) ) y_i = \sum \rho(MLP(x_i,x_j,x_i-x_j)) \odot(MLP(x_j,x_i-x_j)) yi=ρ(MLP(xi,xj,xixj))(MLP(xj,xixj))

x j x_j xj的挑选还是在 x i x_i xi的KNN这个邻域内,那么这个其实就和《Relation-Shape Convolutional Neural Network for Point Cloud Analysis》的想法就很像了。这里放一张RS-CNN的图:
在这里插入图片描述
x i x_i xi的邻域内的一个点 x j x_j xj h i , j h_{i,j} hi,j其实就是 x i x_i xi x j x_j xj的位置关系,然后用MLP计算权重 w i , j w_{i,j} wi,j,然后再与 f x j f_{x_j} fxj相乘,表示成公式就是:
y i = ∑ ρ ( M L P ( x i , x j , x i − x j ) ) ⊙ ( M L P ( x j ) ) y_i = \sum \rho(MLP(x_i,x_j,x_i-x_j)) \odot(MLP(x_j)) yi=ρ(MLP(xi,xj,xixj))(MLP(xj))

其实差不多嘛,就是对 f x j f_{x_j} fxj做了个特征的增加

network

在这里插入图片描述

跟PointNet++或者是RS-CNN差不多。

Experiment

实验效果很好,而且在ablation study中证明了本文提出的attention的方法要比原本的self attention更有效。

猜你喜欢

转载自blog.csdn.net/wqwqqwqw1231/article/details/115219267