PCT
Transformer 在点云中的应用
Transformer在处理一系列点时,它天生是排列不变的,这使得它非常适合点云学习。为了更好的捕获点云数据的上下文信息作者加强了input 的 embedding 操作,使之支持最远点采样和最邻近搜索。
介绍
因为点云的无序性和无结构性。
之前的PointNet使用MLP、maxpooling和刚性变换操作来确保其排列和旋转下的不变性。
或者是使用CNN进行特征提取:
- 对点云进行体素化
- 对输入点序列进行重新排序
与自然语言的处理的一些不同
基于坐标的输入嵌入模块(Coordinate-based input embedding module)
在Transformer中使用位置编码模块来表示自然语言中的语序,从而区分不同位置上的同一个词以及表示词与词的位置关系。
但是点云数据之间没有固定的顺序,作者将原始的位置编码和输入嵌入到一个基于坐标的输入嵌入模块中,每个点都有各自的坐标,从而生成可区分的特征。
优化的偏移注意力模块(Optimized offset-attention module)
用自我注意(self-attention)模块的输入与 注意特征(attention feature)之间的 偏移量 来代替 注意特征(attention feature) 。
优点:
- 同一物体的绝对坐标可以通过刚性变换完全不同。因此,相对坐标通常更可靠。
- Laplacian矩阵在图卷积学习中被证明是非常有效的。可以把点云看作一个图,用float值邻接矩阵作为 注意图(attention map) 。同时将注意力图的每行向量长度缩放到1。及度矩阵额可以看成是单位矩阵。偏移注意力优化过程可以近似理解为一个拉普拉斯过程。
Laplacian矩阵——度矩阵degree matrix)与邻接矩阵(adjacency matrix)之间的偏移量
领域嵌入模块(Neighbor embedding module)
NLP中句子的每个单词都包含着基本的语义信息。
但是在点云中点的独立输入坐标与语义内容之间的相关性很弱。
注意力机制可以有效的捕获全局特征,但是容易忽略几何信息,而局部集合信息是点云目标的关键。
针对这个问题,作者使用 领域嵌入模 块来替代 点嵌入模块 。并使用包含语义信息的 局部点组 之间的注意,而不是 单个点 之间的注意来辅助注意力模块。
contributions
- 提出了一种新的基于变压器的点云学习框架PCT,该框架具有固有的排列不变性,非常适合于具有不规则域的非结构化、无序点云数据。
- 相对于变压器原有的自注意模块,提出了采用隐式拉普拉斯算子和归一化细化的偏移注意。
- 大量的实验表明,带有显式局部上下文增强的PCT在形状分类、零件分割和常规估计任务中取得了最先进的性能。
点云数据在Transformer中的表示
分类 ; 结构分割 ; 正态估计(normal estimation)
Enconder
PCT将点云的输入编码到一个更高维的特征空间。(该空间可以表征点之间的语义亲和力(semantic affinities),作为各种点云处理任务的基础)
将特种空间的特征输入到4个堆叠的注意力模块中学习对于每个点都具有丰富的语义信息和可区分的表示,接着通过一个线性层生成输出特征。
其中 A T i AT^i ATi 表示第i层注意力层,输入和输出保持相同的维度, F e F_e Fe为一开始编码的更高维特征空间的特征矩阵。 W o W_o Wo是线性层的权重。
使用max-pooling (MP)和average-pooling (AP) 的拼接来提取全局特征——MA-Pool。
分类
由两个级联前馈神经网络LBR组成(线性层、BatchNorm (BN)和ReLU层),每个层的dropout概率为0.5,最终由一个线性层来预测 N c N_c Nc个分类
分割
首先拼接全局特征 F g F_g Fg和点特征 F o F_o Fo。
为了获得一个通用的模型用于各种对象,将一个热点对象类别向量编码为64维特征并拼接全局特征。与大多数点云分割网络相同,只是在第一个前馈神经网络LBR上进行dropout。点分类输出 N s N_s Ns类。
正态估计
使用与分割相同的网络只是 N s = 3 N_s=3 Ns=3。
Naive PCT
将Transformer应用于点云数据的方法是直接将整个点云数据视为一个句子,每个点为一个单词。
将点 P P P都嵌入到 d e d_e