论文解读PCT: Point Cloud Transformer(用于点云处理的Transformer)

        最近几年transformer越来越火,在NLP、CV等领域都取得了很大的成功。这篇文章作者利用了transformer能够处理无序数据的特点,将transformer应用到点云的处理上。它的想法是基于最原始的transformer那篇文章(Attention Is All Your Need),关于那篇文章的解读可以参考:庖丁解牛Transformer原理

        论文的整体架构如下图1所示,整体上跟pointnet那篇差不多(左边是一个encoder结构,右边是一个decoder),不同的地方主要在于encoder。对于encoder点云数据先经过一个Input Embedding模块,然后通过一系列的Attention模块并且cat每个模块的输出,最后再经过一个全连接层得到点云的特征。对于decoder来说,根据task不同其结构不同,其结构跟pointnet那篇基本上一样,所以这里不做介绍。

图1 PCT整体架构

        下面再来看看作者是怎么设计encoder的,根据网络结构由简入繁,作者把encoder分为三个版本:NPCT(Naive PCT)、SPCT(Simple PCT)、PCT。

 一、NPCT

        也就是直接把transformer的self-attention结构直接套进来,即直接替换图1里面的Attention模块,然后Input Embedding模块就是简单的两层LBR(point embedding)。self-attention模块结构如下图2所示(开关处为虚线连接)。

 图2 Attention结构

二、SPCT

        更进一步地,将NPCT结构里面的SA(Self-Attention)改变为OA(Offset-Attention),OA的结构如图2所示(开关处为实线连接),OA只是在SA的基础上做了两个调整。第一个调整是attention之后的features与输入features做了一个element-wise的差值(Offset)(图2中的第二个开关),作者说这是启发于图卷积里面受益于拉普拉斯矩阵L=D-E替代了邻接矩阵,这里D表示度矩阵,我们知道在GNN里面这种调整之后网络不只是聚合了节点附近的邻接信息,并且还可以把节点自身的信息也考虑进去,作者这样调整之后发现网络确实表现的更好;为什么做了一个element-wise的差值之后就可以有拉普拉斯矩阵的效果呢?作者在这里给出了一个推导过程

F_in表示输入的features,F_sa表示attention之后的features,A表示attention map,V表示value矩阵,W_v表示一个线性层,I表示单位矩阵。

        第二个改变就是在normalization这一步(图2中的第一个开关),在原始的transformer为了计算attention map的时候为了防止softmax输入数值过大导致梯度消失会先经过scale,而作者把这个scale去掉了,直接softmax得到attention map,然后在第二个维度上做一个L1归一化。作者说这样做之后能让attention weights更加集中(估计意思是让网络将更多的注意力集中到点云的局部区域),并且能减少噪声的干扰。但是我有个疑问,这样直接softmax不会导致梯度消失吗,我的猜想是紧接后面的L1归一化能抑制后续softmax前过大的数值。

三、PCT

        进一步地,在SPCT基础上作者改进了Input Embedding模块。前面的point embedding只擅长学习点云的全局特征,容易忽略点云局部信息,因此作者想设计出像PointNet++和DGCNN那样能有局部信息聚合策略的网络,提出了neighbor embedding,网络结构如下图3所示。

图3 neigbor embedding结构

        先看图3左边部分,这是Input Embedding的整体架构,前面就是两个全连接层,后面接了两个SG(sampling and grouping)模块,SG模块既可以对特征进行下采样,又可以聚合领域信息。图3右边部分是SG模块的具体结构,首先对输入特征进行下采样,并且通过最近邻算法找出每个采样点的k领域,然后对于每个领域中的点都要跟采样点做一个差值,然后将这个差值跟采样点cat起来通过两层全连接层,最后通过max池化得到每个采样区域的局部特征。至于将这个差值跟采样点cat起来的原因作者说是借鉴EdgeConv的思想,虽然EdgeConv这篇文章我还没有读,但是我估计这个差值代表了局部区域的一些几何信息(类似于拉普拉斯坐标),而采样点代表了这个局部区域的中心点(也就是这个局部区域的空间位置),这样将这两种信息cat之后就能让网络在后续更容易地进一步聚合局部信息。

四、实验

        作者在分类、点云法向量估计、点云分割的任务上进行了实验,在这三个任务上PCT均获得了state-of-the-art的效果,简化版本的NPCT和SPCT也能获得不错的效果。而网络大小和计算性能上的表现的话也是比之前的一些baseline要好些的。另外作者说如果只是想单纯的提升网络的效果的话可以增加neighbor embedding的层数。

 

 

  • 7
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: PCT代表Point Cloud Transformer点云变换器),它是一种深度学习模型,专门用于处理点云数据。点云数据是由大量点组成的三维几何形状数据,常用于机器人视觉、自动驾驶、3D建模等领域。 PCT模型基于自注意力机制(self-attention)和Transformer模型架构,通过对点云数据进行编码和解码,实现对点云数据的语义理解和特征提取,能够有效地解决点云数据噪声、不完整性等问题,提高点云数据的处理效率和准确性。 ### 回答2: PCT是指点云变换器(PCT: Point Cloud Transformer),是一种新颖的点云数据生成方法。点云是由立体激光雷达或者其他三维扫描仪捕获的点云数据集合,被广泛应用于各个领域,例如自动驾驶、虚拟现实等。PCT的出现为点云数据的处理、分类和分割提供了全新的解决方案。 PCT方法是基于自监督学习的方法,其强大的点云编码器通过学习局部和全局特征来提取点云的语义信息。与传统方法相比,PCT以一种新的、更加高效的方式从点云中检索出高级语义特征,同时还可以通过训练神经网络进行大量扩展,使得其具有很好的鲁棒性和泛化能力。 PCT的优点在于可以高效轻便地处理大规模、高维度和密集的点云数据,并能够支持多种类型的数据变换,例如旋转、缩放和翻转等。此外,PCT还可进行大规模的点云数据推理和预测,可以在实践中进行语义分割、目标识别和对象重建等操作。 总之,PCT是一种创新的点云变换器,其结构和算法使得对点云数据的处理更加快速、高效和准确,并为自动驾驶、虚拟现实、机器人感知等领域提供了更广泛的应用前景。随着近年来人工智能技术的快速发展,PCT将在点云领域中成为一个具有强大竞争力的解决方案。 ### 回答3: PCT是一种新型的点云处理算法,全称为Point Cloud Transformer,中文名为点云变换器。PCT算法是在Transformer模型的基础上针对点云数据进行的改良,能够有效地处理点云数据中的特征信息。 PCT算法的核心思想是使用自注意力机制来学习点云数据的特征表示。自注意力机制是指对于输入的点云数据,PCT算法会根据点与点之间的关系计算每个点与周围点的关联程度,从而将各点的特征信息进行整合,得到一个更为全面的点云特征表示。 与传统的点云处理算法相比,PCT算法具有如下优点: 1. 对不同大小的点云数据进行自适应处理,不需要预先指定输入点云的大小。 2. 具有更好的灵活性和可扩展性,适用于不同场景下的点云数据处理。 3. 在处理稀疏点云数据时,PCT算法能够充分利用点云数据的局部性质,提升点云数据的处理精度。 总之,PCT算法是一种新兴的点云数据处理算法,具有能够高效处理不同尺度的点云数据、充分利用数据局部性质、提升处理精度等优点,对点云数据的处理能力有较大的提升。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值