Jittor开源:清华大学图形学实验室推出点云Transformer
Transformer 已经在自然语言处理任务中取得了巨大的成功,并且在图像处理任务上也表现出了巨大的潜力。清华大学图形学实验室博士生国孟昊等成功将Transformer 推广到三维点云处理上,并在点云分类、点云部件分割和点云法向量估计任务上取得了state-of-the-art 的效果。
Transformer for Point Cloud
清华大学图形学实验室提出了用于点云处理的 Transformer,Point Cloud Transformer (PCT);并在Github上开源了基于计图(Jittor)框架的源代码。
https://github.com/MenghaoGuo/PCT
图1 PCT的网络架构
PCT提出了两种嵌入方式,分别是点嵌入和邻域嵌入。输入嵌入的目的是将点云从欧式空间 xyz映射到高维空间(文章中使用的是128维空间)。点嵌入是仅考虑单点的信息,使用共享的多层神经网络,将点云映射到高维空间。邻域嵌入则不仅仅考虑了单点,还通过使用了KNN考虑了每个点的邻域信息,通过这种邻域嵌入的方式将点嵌入到高维空间。
2. 注意力层
PCT使用了两种不同的注意力层,self-attention 和 offset-attention。Self-attention 是 Transformer 文章中使用的注意力机制,但是它直接作用在点云上效果并不是很理想。为了使得注意力层有更强的表达能力,作者结合了图卷积中的拉普拉斯算子和自注意力机制,提出了offset-attention,该层也表现出了比 self-attention 更好的性能,两者的具体结构如下图所示,他们的区别在于标准化的顺序以及是否有特征之间的减法操作。
图2 PCT的注意力层
3. 分类分割头部
针对不同的任务,分类分割最后的处理略有不同。对于分类,我们对经过注意力层之后的特征直接做Pooling 操作,然后通过全连接层和Dropout 层得到最后的输出。对于分割,我们在做完Pooling 后,像 PointNet 一样,先进行repeat 和 concat 操作,再使用全连接层和Dropout层得到最后的输出。
首先,我们可视化了注意力层的 attention map (五角星标注了查询点)。
图3 PCT注意力层的attention map及分割结果
表4 PCT网络的参数以及计算量的统计
图4 PCT与PiontNet及Ground Truth的分割结果对比
点击原文阅读,可以下载本文的pdf。
1) Meng-Hao Guo, Jun-Xiong Cai, Zheng-Ning Liu, Tai-Jiang Mu, Ralph R. Martin and Shi-Min Hu, PCT: Point Cloud Transformer,
arxiv.org/pdf/2012.09688.
3. Jittor开源点云模型库,多种主流模型训练比Pytorch提升一倍以上