Point Transformer
自我注意网络已经彻底改变了自然语言处理,并在图像分类和目标检测等图像分析任务中取得了令人瞩目的进步。受此启发,我们研究了自我注意网络在三维点云处理中的应用。我们为点云设计了自我注意层,并利用这些层构建了用于语义场景分割、对象部分分割和对象分类等任务的自我注意网络。我们的点转换器设计改进了先前跨域和任务的工作。例如,在用于大规模语义场景分割的具有挑战性的S3DIS数据集上,点变换器在区域5上达到70.4%的mIoU,比最强的先验模型高出3.3个绝对百分比,并首次超过70%的mIoU阈值。
- Introduction
3D数据出现在许多应用领域,如自动驾驶、增强现实和机器人技术。与排列在常规像素网格上的图像不同,三维点云是嵌入在连续空间中的集合。这使得3D点云在结构上与图像不同,并阻止了已成为计算机视觉标准的深层网络设计的直接应用,例如基于离散卷积算子的网络。
为了应对这一挑战,出现了多种对3D点云进行深入学习的方法。一些人将3D空间体素化,以实现3D离散卷积的应用[23,32]。这导致了大量的计算和内存开销,并没有充分利用3D中点集的稀疏性。稀疏卷积网络通过仅对非空体素进行操作来缓解这些限制[9,3]。其他设计直接对点进行操作,并通过池操作符(25,27)或连续卷积(42,37)传播信息。另一系列方法将点集连接到一个用于消息传递的图中[44,19]。
在这项工作中,我们开发了一种深入学习点云的方法,其灵感来自transformer在自然语言处理[39,45,5,4,51]和图像分析[10,28,54]中的成功。transformer系列模型特别适合于点云处理,因为transformer网络的核心自我关注操作符本质上是一个集合操作符:它对输入元素的排列和基数是不变的。因此,将自我关注应用于三维点云非常自然,因为点云本质上是嵌入在三维空间中的集合。
我们充实了这种直觉,并为3D点云处理开发了一个自我关注层。基于这一层,我们为各种3D理解任务构建点变换网络。我们研究了自我注意算子的形式,自我注意在每个点周围的局部邻域中的应用,以及网络中位置信息的编码。由此产生的网络完全基于自我注意和逐点操作。
我们表明,point transformer在3D深度学习任务中非常有效,无论是在详细的对象分析级别还是大规模场景解析级别。特别是,point transformer在S3DIS数据集上的大规模语义分割(区域5上的mIoU为70.4%)、ModelNet40上的形状分类(总精度为93.7%)和在ShapeNetPart上(86.6%的实例mIoU)部件分割方面开创了新的技术水平。我们的全面实施和经过培训的模型将在验收后发布。总之,我们的主要贡献包括以下几点。
- 我们为点云处理设计了一个表现力很强的点变换层。该层对排列和基数不变性,因此天生适合点云处理基于点变换层
- 我们构建了高性能的point transformer网络,用于对点云进行分类和密集预测。这些网络可以作为3D场景理解的通用主干我们报告了在多个领域和数据集上进行的大量实验。
- 我们进行了对照研究,以检查point transformer设计中的具体选择,并在多个高度竞争的基准上设定了最新的技术状态,优于之前的长期工作。
- Related Work
对于二维图像理解,像素被放置在规则的网格中,并且可以使用经典卷积进行处理。相比之下,三维点云在三维空间中是无序和分散的:它们本质上是集合。基于学习的三维点云处理方法可分为以下类型:基于投影的、基于体素的和基于点的网络。
基于投影的网络。对于处理不规则输入(如点云),一种直观的方法是将不规则表示转换为规则表示。考虑到2D CNN的成功,一些方法【34、18、2、14、16】采用多视图投影,其中3D点云投影到各种图像平面。然后使用二维CNN在这些图像平面中提取特征表示,然后进行多视图特征融合,形成最终的输出表示。在一种相关的方法中,TangentConv【35】将局部曲面几何体投影到每个点的切面上,形成可以通过2D卷积处理的相切图像。然而,这种方法严重依赖于切线估计。在基于投影的框架中,点云内部的几何信息在投影阶段被折叠。当在投影平面上形成密集的像素网格时,这些方法也可能未充分利用点云的稀疏性。投影平面的选择可能会严重影响识别性能,三维遮挡可能会影响准确性。
基于体素的网络。将不规则点云转换为规则表示的另一种方法是三维体素化,然后是三维卷积。如果天真地应用,由于体素数量的立方增长(作为分辨率的函数)导致的计算和存储成本加剧。解决方案是利用稀疏性,因为大多数体素通常未被占用。例如,OctNet[29]使用具有分层分区的不平衡八叉树。基于稀疏卷积的方法,其中卷积核仅在占用的体素上进行评估,可以进一步减少计算和内存需求【9,3】。这些方法显示了良好的精度,但由于量化到体素网格上,仍然可能丢失几何细节。
基于点的网络。研究人员没有将不规则点云投影或量化到二维或三维的规则网格上,而是设计了深度网络结构,直接吸收点云,作为嵌入在连续空间中的集合。PointNet[25]利用置换不变操作符,如逐点MLP和池层,来聚合集合中的特征。PointNet++[27]将这些思想应用于分层空间结构中,以提高对局部几何布局的敏感性。此类模型可以受益于点集的有效采样,并且已经开发了多种采样策略[27、7、46、50、11]。
许多方法将点集连接到一个图中,并在此图上进行消息传递。DGCNN【44】对kNN图执行图卷积。PointWeb[55]紧密连接着当地的邻近地区。ECC【31】使用动态边缘条件滤波器,其中卷积核基于点云内的边缘生成。SPG【15】操作一个表示上下文关系的超点图。KCNet[30]利用内核关联和图池。Wang等人[40]研究了局部谱图卷积。GACNet【41】采用了图形注意卷积,HPEIN【13】构建了一个层次化的点-边交互架构。DeepGCNs【19】探索了图形卷积网络中深度用于3D场景理解的优势。
许多方法基于直接应用于3D点集的连续卷积,无需量化。PCCN【42】将卷积核表示为MLP。SpiderCNN【49】将核权重定义为一系列多项式函数。球面CNN【8】设计球面卷积来解决3D旋转等变问题。PointConv[46]和KPConv[37]基于输入坐标构造卷积权重。InterpCNN【22】利用坐标插值逐点核权重。PointCNN【20】建议使用特殊操作符对输入无序点云进行重新排序。Ummenhofer等人【38】应用连续卷积来学习基于粒子的流体动力学。
Transformer and self-attention。Transformer和self-attention模型彻底改变了机器翻译和自然语言处理[39、45、5、4、51]。这激发了2D图像识别自我注意网络的发展【10、28、54、6】。Hu等人【10】和Ramachandran等人【28】在局部图像块中应用标量点积自我关注。Zhao等人【54】开发了一系列向量自我注意算子。Dosovitskiy等人[6]将图像视为斑块序列。
我们的工作受到Transformer和自我注意网络在序列和2D图像上可以匹配甚至优于卷积网络的发现的启发。自我关注在我们的设置中特别重要,因为它本质上是一个集合操作符:位置信息作为集合处理的元素的属性提供【39,54】。由于三维点云本质上是具有位置属性的点集,因此自我注意机制似乎特别适合于这种类型的数据。因此,我们开发了一个点变换层,将自我关注应用于三维点云。
之前有许多工作【48、21、50、17】利用注意力进行点云分析。他们将全局注意力应用于整个点云,这会带来大量计算,并且使得这些方法不适用于大规模3D场景理解。它们还利用标量点积注意,不同的通道共享相同的聚合权重。相比之下,我们在本地应用了自我关注,这使得具有数百万个点的大型场景具有可扩展性,并且我们利用了向量关注,这对于实现高精度非常重要。与之前忽略位置信息的方法相比,我们还证明了在大规模点云理解中适当位置编码的重要性。总的来说,我们表明,适当设计的自我注意网络可以扩展到大型和复杂的3D场景,并大大提高了大规模点云理解的技术水平。
- Point Transformer
我们首先简要回顾了Transformer 和 self-attention的一般公式。然后,我们提出了用于三维点云处理的点变换层。最后,我们提出了我们的三维场景理解网络体系结构。
-
- Background
Transformer 和 self-attention网络彻底改变了自然语言处理[39、45、5、4、51],并在二维图像分析中取得了令人印象深刻的结果[10、28、54、6]。自我注意算子可分为两类:标量注意[39]和向量注意[54]。
设X={xi}i是一组特征向量。标准标量点积注意层可以表示为:
其中,yi是输出特征。φ、 ψ和α是逐点特征变换,如线性投影或MLP。δ是位置编码函数,ρ是标准化函数,如softmax。标量注意层计算由φ和ψ转换的特征之间的标量积,并将输出作为注意权重,用于聚合由α转换的特征。
在向量注意中,注意权重的计算是不同的。特别是,注意权重是可以调节单个特征通道的向量:
其中,β是一个关系函数(例如减法),γ是一个映射函数(例如MLP),它生成用于特征聚合的注意向量。
标量和向量自我注意都是集合运算符。该集合可以是代表整个信号的特征向量集合(例如,句子或图像)[39,6],或来自信号内局部面片的特征向量集合(例如,图像面片)[10,28,54]
-
- Point Transformer Layer
自我关注自然适合点云,因为点云本质上是不规则嵌入在度量空间中的集合。我们的点变换层基于向量自我关注。我们使用减法关系,将位置编码δ添加到注意向量γ和变换后的特征α中:
这里是子集X(i)⊆ X是xi的一个局部邻域(特别是k个最近邻域)中的一组点。因此,我们采用最近的自我关注网络进行图像分析,在每个数据点周围的局部邻域内局部应用自我关注【10、28、54】。映射函数γ是一个具有两个线性层和一个ReLU非线性的MLP。点变压器层如图2所示。
-
- Position Encoding
位置编码在自我注意中起着重要作用,允许操作员适应数据中的局部结构[39]。序列和图像网格的标准位置编码方案是手工编制的,例如基于正弦和余弦函数或归一化范围值[39,54]。在三维点云处理中,三维点坐标本身是位置编码的自然候选对象。除此之外,我们还引入了可训练的参数化位置编码。我们的位置编码函数δ定义如下:
这里pi和pj是点i和j的三维点坐标。编码函数θ是一个具有两个线性层和一个ReLU非线性的MLP。值得注意的是,我们发现位置编码对于注意生成分支和特征转换分支都很重要。因此,等式3在两个分支中添加了可训练的位置编码。位置编码θ与其他子网端到端地训练。
-
- Point Transformer Block
我们构建了一个剩余的Point Transformer块,其核心是Point Transformer层,如图4(a)所示。transformer块集成了自我关注层、可降低维度并加速处理的线性投影以及剩余连接。输入是一组具有关联3D坐标p的特征向量x。点变换器块有助于这些本地化特征向量之间的信息交换,为所有数据点生成新的特征向量作为其输出。信息聚合同时适应特征向量的内容及其在三维中的布局。
-
- 网络体系结构
我们基于点变换块构建了完整的三维点云理解网络。请注意,Point Transformer是整个网络中的主要特征聚合操作符。我们不使用卷积进行预处理或辅助分支:网络完全基于Point Transformer层、点转换和池化层。网络架构如图3所示。
主干结构。用于语义分割和分类的点变换网络中的特征编码器有五个阶段,它们在逐步降采样的点集上运行。各阶段的下采样率为[1,4,4,4,4],因此每个阶段产生的点集的基数为[N,N /4,N /16,N /64,N /256],其中N是输入点的数量。请注意,阶段数和下采样率可以根据应用而变化,例如,为了构建用于快速处理的轻量级主干。连续阶段由转换模块连接:向下转换用于特征编码,向上转换用于特征解码。
下采样。向下转换模块的一个关键功能是根据需要减少点集的基数,例如,在从第一阶段到第二阶段的转换中,从N减少到N /4。将作为向下转换模块输入的点集表示为P1,将输出点集表示为P2。我们在P1中执行最远点采样[27],以确定分布良好的子集P2⊂ P1具有必要的基数。为了将P1的特征向量汇集到P2上,我们在P1上使用kNN图。(这与第3.2节中的k相同。我们在整个过程中使用k=16,并在第4.4节中报告了该超参数的对照研究。)每个输入特征都要经过一个线性变换,然后进行批量归一化和ReLU,然后从P1中的k个相邻点最大化到P2中的每个点。向下过渡模块如图4(b)所示。
上采样。对于语义分割等密集预测任务,我们采用了U-net设计,其中上述编码器与对称解码器耦合【27,3】。解码器中的连续级通过向上转换模块连接。其主要功能是将特征从下采样输入点集P2映射到其超集P1⊃ P2。 为此,每个输入点特征由一个线性层处理,然后进行批量归一化和ReLU,然后通过三线性插值将特征映射到更高分辨率的点集P1。这些来自前一解码器级的插值特征与通过跳过连接提供的来自相应编码器级的特征进行总结。向上过渡模块的结构如图4(c)所示。
- 实验
我们评估了所提出的点变换器设计在许多领域和任务上的有效性。对于3D语义分割,我们使用具有挑战性的斯坦福大学大型3D室内空间(S3DIS)数据集[1]。对于3D形状分类,我们使用广泛采用的ModelNet40数据集【47】。对于对象部分分割,我们使用ShapeNetPart[52]。
实施细节。我们在PyTorch中实现了point transformer【24】。我们使用SGD优化器,动量和权重衰减分别设置为0.9和0.0001。对于S3DIS上的语义分割,我们训练40K次迭代,初始学习率为0.5,在步骤24K和32K时下降了10倍。对于ModelNet40上的3D形状分类和ShapeNetPart上的3D对象部分分割,我们进行了200个时期的训练。初始学习率设置为0.05,在第120和160个阶段下降10倍。
-
- 语义分割
数据和度量。用于语义场景解析的S3DIS[1]数据集由三个不同建筑的六个区域的271个房间组成。扫描中的每个点都分配了13个类别(天花板、地板、桌子等)的语义标签。按照一个共同的方案【36,27】,我们在两种模式下评估所提出的方法:(a)区域5在训练期间被保留并用于测试,(b)6倍交叉验证。对于评估指标,我们使用联合上的平均类相交(mIoU)、类精度平均值(mAcc)和整体点精度(OA)。
性能比较。结果见表1和表2。根据两种评估模式中的所有指标,Point Transformer优于所有先前的模型。在区域5,点式变压器的mIoU \/mAcc \/OA达到70.4%\/76.5%\/90.8%,在每个指标上都比之前的所有工作高出多个百分点。Point Transformer是第一款通过70%mIoU标准的机型,在mIoU中比现有技术水平高出3.3个绝对百分比。点变换器的性能优于基于MLPs的框架,如PointNet【25】,基于体素的架构,如SegCloud【36】,基于图形的方法,如SPGraph【15】,基于注意力的方法,如PA T【50】,稀疏卷积网络,如MinkowskiNet【3】,以及连续卷积网络,如KPConv【37】。在6倍交叉验证下,Point Transformer的性能也大大优于所有之前的模型。这种模式下的mIoU为73.5%,比现有技术水平(KPConv)高出2.9个绝对百分点。点式变压器(4.9M)中的参数数量远小于当前高性能架构,如KPConv(14.9M)和SparseConv(30.1M)。
可视化。图5显示了Point Transformer的预测。我们可以看到这些预测非常接近真值。Point Transformer在复杂的3D场景中捕获详细的语义结构,例如椅子的腿、海报板的轮廓以及门口周围的装饰。
-
- 形状分类
数据和度量。ModelNet40【47】数据集包含12311个CAD模型,包含40个对象类别。它们分为9843个型号用于培训,2468个型号用于测试。我们遵循Qi等人[27]的数据准备过程,从每个CAD模型中均匀地采样点以及对象网格中的法向量。对于评估指标,我们使用每个类别的平均准确度(mAcc)和所有类别的总体准确度(OA)。
性能比较。结果如表3所示。Point Transformer在这两个指标上都设置了最新的技术状态。Net40型点式变压器的总体精度为93.7%。它优于基于图形的强模型,如DGCNN【44】,基于注意力的模型,如A-SCN【48】和Point2Sequence【21】,以及基于点的强模型,如KPConv【37】。
可视化。为了探索点变换器学习的表示,我们通过检索点变换器生成的输出特征空间中的最近邻来进行形状检索。一些结果如图6所示。检索到的形状与查询非常相似,当它们不同时,它们在我们认为语义不太突出的方面也不同,例如桌子的腿。
4.3. 部件分割
数据和度量。ShapeNet零件数据集【52】为3D对象零件分割添加了注释。它由16个形状类别的16880个模型组成,其中14006个3D模型用于培训,2874个用于测试。每个类别的零件数量在2到6个之间,共有50个不同的零件。我们使用Qi等人【27】产生的采样点集与之前的工作进行公平比较。对于评估指标,我们报告类别mIoU和实例mIoU。
性能比较。结果如表4所示。根据实例mIoU的测量,点变换器的性能优于所有以前的模型。(请注意,我们在培训期间没有使用损失平衡,这可以提高mIoU类别。)
可视化。许多模型上的对象部分分割结果如图7所示。Point Transformer的零件分割预测非常清晰,非常接近实际情况。
4.4. 消融实验
我们现在进行了一些对照实验,以检查点变压器设计中的具体决策。这些研究是在S3DIS数据集上的语义分割任务上进行的,并在区域5上进行了测试。
K近邻数。我们首先研究邻域数k的设置,它用于确定每个点周围的局部邻域。结果如表5所示。当k设置为16时,可获得最佳性能。当邻域较小(k=4或k=8)时,模型可能没有足够的上下文进行预测。当邻域较大(k=32或k=64)时,每个自我关注层都会提供大量数据点,其中许多数据点可能更远,相关性也较低。这可能会在处理过程中引入过多的噪声,降低模型的精度。
Softmax正则化。我们对式3中的归一化函数ρ进行了烧蚀研究。在S3DIS区域5上,没有softmax正则化的性能为66.5%\/72.8%\/89.3%,以mIoU \/mAcc \/OA计。它的性能远远低于softmax正则化的性能(70.4%\/76.5%90.8%)。这表明在此设置中,规范化是必不可少的。
位置编码。我们现在研究位置编码δ的选择。结果如表6所示。我们可以看到,如果没有位置编码,性能会显著下降。使用绝对位置编码时,性能比不使用绝对位置编码时更高。相对位置编码产生最高的性能。当仅将相对位置编码添加到注意生成分支(等式3中的第一项)或仅添加到特征变换分支(等式3中的第二项)时,性能再次下降,表明将相对位置编码添加到两个分支很重要。
注意类型。最后,我们研究了点变压器层中使用的自我关注类型。结果如表7所示。我们检查了四个条件。”“MLP”是一个不引起注意的基线,它用逐点MLP替换点变换器块中的点变换器层“MLP+池”是一种更高级的无注意基线,它用逐点MLP替换点变换器层,然后在每个kNN邻域内进行最大池:这在每个点执行特征转换,并使每个点能够与其本地邻域交换信息,但不利用注意机制。”“标量注意”将等式3中使用的向量注意替换为标量注意,如等式1和原始变压器设计中的向量注意【39】。'向量注意”是我们使用的公式,如公式3所示。我们可以看到,标量注意比无注意基线更具表现力,但反过来又优于向量注意。向量注意力和标量注意力之间的表现差距很大:分别为70.4%和64.6%,提高了5.8个绝对百分点。V载体注意力更具表现力,因为它支持对单个特征通道的自适应调制,而不仅仅是整个特征向量。这种表现力在3D数据处理中似乎非常有用。
结论变形
transformer彻底改变了自然语言处理,并在2D图像分析方面取得了令人印象深刻的成果。受这一进展的启发,我们为3D点云开发了transformer体系结构。与语言或图像处理相比,变换器可能更适合点云处理,因为点云本质上是嵌入在度量空间中的集合,而处于变换器网络核心的自我注意操作符基本上是集合操作符。我们已经证明,除了这种概念上的兼容性之外,transformers在点云处理方面也非常有效,优于各种族的最新设计:基于图的模型、稀疏卷积网络、连续卷积网络等。我们希望,我们的工作将激发对点变换器特性的进一步研究,开发新的操作符和网络设计,以及将变换器应用于其他任务,如3D对象检测。