Point Cloud Transformer

Point Cloud Transformer

由于点云的不规则性和无序性,我们不能直接使用卷积来进行处理点云。与此同时,注意力机制是一种排序不变、不依赖点连接算子,十分适合点云的操作。

点云的整体架构

Point Cloud Transformer_第1张图片

点云整体架构由输入嵌入部分——>注意力层——>分割分类构成。其设计主要参考了PointNet和Transformer的设计理念。

输入嵌入部分

输入嵌入部分主要由两种形式构成:

  • 点嵌入(只考虑单点嵌入,使用共享的神经网络,将点云映射到高维空间)
  • 领域嵌入(不只是考虑单点情况,还是用KNN算法得到领域信息,进而通过领域嵌入方式将点云映射到高维空间)

该层的目的在于把点云映射到高维空间。如上图,则是映射为128维度。是否可以使用其他方法 改进 KNN

注意力层

Point Cloud Transformer_第2张图片

PCT注意力层使用了两种模型:

  • “传统”的self-attention
  • offset-attention(结合上述的self-attention和图中卷积的拉普拉斯算子)

如图,输入嵌入进行升维成为128维度,进行线性变换分别生成self-attention中的Q、K、V 矩阵。为了保存维度一致,对K进行转置。进行Softmax标准化(方便求解梯度),得到Attention Map(也就是下图中的五角星)。点乘生成V矩阵得到Attenion Feature。运用offset-attention生成LBR。

Point Cloud Transformer_第3张图片

分类分割头部

参考PointNet设计:

  • 分类
    • 使用上述获得Attention Feature,进行Pooling(一般情况还是使用Max Pooling)得到全局特征,进行全连接Dropout(防止过拟合),输出分类结果。
  • 分割
    • Attention Feature(如何得到局部特征)得到局部特征,结合分类得到的全局特征。拼接局部特征全局特征,进行全连接Dropout特征。

Point Cloud Transformer_第4张图片

PCT分类

论文中把PCT分成了三类:

  • NPCT
  • SPCT
  • PCT

PCT使用的三种数据库

  • 分类:ModelNet40
  • 分割:ShapeNet
  • 语义分割: S3DIS

论文精读

  1. 点云和NLP领域上不太相关,PCT主要做出了以下的修改:

    1. 基于坐标的输入嵌入模块 —— 解决点云的无序性

    2. 优化 offer-attention 模块 —— 优化之前Transformer的self-attention层,使用offset。把点云看作图、把浮点数矩阵。看作attention map

      作用:

      1. 相对坐标更为可靠
      2. 图卷积学习中,Laplacian 矩阵更为有效
    3. 邻近嵌入模块 —— 加强局部的效果,而不只是考虑单点无关联情况

  2. 相关工作

    1. Transformer in NLP —— NLP 使用广泛,但是其处理的为位置相关,语义有序的情况
    2. Transformer in images —— ViT 中局部补丁和基本语义信息,提出 邻近嵌入模块 ——可以捕获局部信息并获取语义信息。
    3. Point-based deep learning —— pointnet点云提出后,处理方式层出不穷。比如:拓展、限制算子,体素化处理(把点云变成有序的,从而进行卷积操作),使用attention。本文提出Transformer而不是使用self-attention作为辅助。
  3. PCT的表示:

    1. PCT
      1. 对input进行升维操作(更好描述语义关联),除了去除position embedding这一步骤,其他的都与Transformer理念相同。
      2. 输入——>4次 attention层操作 ——>拼接全部的attention层——>使用MP-AP得到全局特征
      3. 分类
        • MP-AP——> LBRD——>LBRD(D:dropout(防止过拟合))——> Linear
      4. 分割
        • 使用one-hot解码到64维度,运用LBRD——>LBR——>Linear(Normal estimate)
    2. NPCT
      1. 把点云当作整个句子,把点看作句子中的一个单词。结合self-attention
      2. self-attention Q、K、V 模型,最后进行标准化。——>解决点云无序、不规则问题。采用SS
    3. Offset-Attention
      1. 使用 offset-attention代替 self-attention(加入了Laplacian运算)
      2. 先进行softmax之后进行l1-norm(传统的是先进行规范化,之后进行softmax)
    4. 增强局部特征表示的邻近嵌入
      1. 之前点云的操作考虑了全局变量,但是没有考虑到局部变量
      2. 其主要包含两大块——>两个LBR层和两个SG(Sampling and Grouping)。其中LBR是标配,SG是扩大特征提取的感受野。SG主要使用欧氏距离的knn
      3. SG
        1. 使用 the farthest point sampling (FPS) to downsample 。(FPS何方神圣,可以改进?)
          FPS博客详细介绍
        2. 使用 knn

后续补充

参考

Jittor官方解读PCT

Jittor官方实现

PCT论文地址

你可能感兴趣的:(PCT,pointnet,transformer)