PointNeXt: Revisiting PointNet++ with Improved Training and Scaling Strategies
摘要
PointNet++是对点云理解最具影响力的神经架构之一。尽管最近的网络(如PointMLP和Point Transformer)在很大程度上超过了PointNet++的准确性,但我们发现,性能增益的很大一部分是由于改进了训练策略,即数据扩充和优化技术,以及增加了模型大小,而不是架构创新。因此,PointNet++的全部潜力还有待发掘。在这项工作中,我们通过对模型训练和缩放策略的系统研究,重新审视了经典的PointNet++,并提供了两个主要贡献。
首先,我们提出了一组改进的训练策略,显著提高了PointNet++的性能。例如,我们表明,在不改变架构的情况下,PointNet++在ScanObjectNN对象分类上的总体准确率(OA)可以从77.9%提高到86.1%,甚至优于最新的PointMLP。其次,我们在PointNet++中引入了反向残差瓶颈设计和可分离MLP,以实现高效和有效的模型缩放,并提出了PointNets的下一个版本PointNeXt。PointNeXt可以灵活地放大,在3D分类和分割任务上都优于最先进的方法。在分类方面,PointNeXt在ScanObjectNN上的总体准确率达到87.7%,超过PointMLP 2.3%,同时推理速度快10倍。在语义分割方面,PointNeXt在S3DIS(6倍交叉验证)上以74.9%的平均IoU建立了一种新的先进性能,优于最近的Point Transformer。
1引言
3D数据采集的最新进展导致人们对点云理解的兴趣激增。随着PointNet[29]和PointNet++[30]的兴起,使用深度CNN以非结构化格式处理点云成为可能。继“点网”之后,引入了许多基于点的网络,其中大多数侧重于开发新的复杂模块来提取局部结构,例如KPConv[43]中的伪网格卷积和点变换器[56]中的自注意层。这些新提出的方法在各种任务中都大大优于PointNet++,给人的印象是PointNet++架构太简单,无法学习复杂的点云表示。在这项工作中,我们重新审视了PointNet++这一经典且广泛使用的网络,发现其全部潜力还有待发掘,主要是由于PointNet++出现时不存在的两个因素:(1)优越的训练策略和(2)有效的模型
通过对各种基准的全面实证研究,例如用于对象分类的ScanObjecNN[44]和用于语义分割的S3DIS[1],我们发现训练策略,即数据扩充和优化技术,对网络的性能起着重要作用。事实上,与PointNet++[30]相比,最先进(SOTA)方法[46,43,56]的大部分性能增益是由于改进了训练策略,不幸的是,与架构变化相比,这些策略很少被公开。例如,如表5所示,在训练过程中随机丢弃颜色可以意外地将PointNet++在S3DIS[1]上的测试性能提高5.9%的平均IoU(mIoU)。此外,采用标签平滑[39]可以将ScanObjectNN[44]上的整体准确性(OA)提高1.3%。这些发现启发我们重新审视PointNet++,并为其配备当今广泛使用的新的高级训练策略。令人惊讶的是,如图1所示,单独使用改进的训练策略将PointNet++在ScanObjectNN上的OA提高了8.2%(从77.9%提高到86.1%),建立了一个新的SOTA,而没有对架构进行任何更改(详细信息请参阅第4.4.1节)。对于S3DIS分割基准,通过6倍交叉验证在所有领域评估的mIoU可以增加13.6%(从54.5%增加到68.1%),优于PointNet++之后的许多现代架构,如PointCNN[22]和DeepGCN[21]。
此外,我们观察到,当前用于点云分析的主流模型[20,43,56]使用了比原始PointNets[29,30]多得多的参数。将PointNet++从最初的小规模有效扩展到更大的规模是一个值得研究的主题,因为通常期望更大的模型能够实现更丰富的表示并表现得更好[2,19,55]。然而,我们发现,在PointNet++中使用更多构建块或增加信道大小的天真方式只会导致延迟开销,而不会显著提高准确性(见第4.4.2节)。为了有效和高效地扩展模型,我们在PointNet+中引入了残差连接[13]、反向瓶颈设计[36]和可分离MLP[32]。现代化的体系结构被命名为PointNeXt,即PointNets的下一个版本。PointNeXt可以灵活扩展,在各种基准测试中都优于SOTA。如图所示,PointNeXt将原来的PointNet++提高了20.4%mIoU(从54.5%到74.9%),并且在ScanObjecNN[44]上实现9.8%的OA增益,超过了SOTA Point Transformer[56]和PointMLP[28]。下面我们总结一下我们的贡献:
•我们首次对点云域中的训练策略进行了系统研究,并表明PointNet++通过简单地单独采用改进的训练策略来反击(ScanObjectNN上的+8.2%OA和S3DIS上的+13.6%mIoU)。改进后的训练策略是通用的,可以很容易地应用于改进其他方法[29,46,28]。
•我们提出PointNeXt,即PointNets的下一个版本。PointNeXt是可扩展的,在所研究的所有任务上都超过了SOTA,包括对象分类[44,49]、语义分割[1,5]和部分分割[53],同时在推理方面比SOTA更快。
2初步:对PointNet++的回顾
我们的PointNeXt建立在PointNet++[30]的基础上,它使用类似U-Net[35]的架构,带有编码器和解码器,如图2所示。编码器部分使用多个集合抽象(SA)块来分层地抽象点云的特征,而解码器通过相同数量的特征传播块来逐渐地对抽象的特征进行插值。SA块由用于对进入点进行下采样的子采样层、用于查询每个点的邻居的分组层、用于提取特征的一组共享多层感知器(MLP)以及用于聚合邻居内的特征的归约层组成。分组层、MLP和归约层的组合被公式化为:
其中R是归约层(例如,最大池化),其从表示为{j:(i,j)∈N}的邻居聚合点i的特征。Pli,xli,xlj分别是网络第l层中邻居j的输入坐标、输入特征和特征。hθ表示以x l j和相对坐标(p l j−p l i)的级联作为输入的共享MLP。请注意,由于具有单规模分组(每个阶段使用一个SA块)的PointNet++是原始论文[30]中使用的默认架构,因此我们将其称为PointNet++,并将其用作我们的基线。
3方法论:从PointNet++到PointNeXt
在本节中,我们将介绍如何将经典体系结构PointNet++[30]现代化为PointNeXt,即具有SOTA性能的PointNet++的下一个版本。我们的探索主要集中在两个方面:(1)训练现代化以改进数据扩充和优化技术,以及(2)架构现代化以探测感受野缩放和模型缩放。这两个方面都对模型的性能有重要影响,但之前的研究没有充分探讨。
3.1训练现代化:PointNet++反击
我们进行了一项系统研究,以量化现代点云网络使用的每种数据扩充和优化技术的效果[46,43,56],并提出了一套改进的训练策略。PointNet++的潜力可以通过采用我们提出的训练策略来揭示。
3.1.1数据扩充
数据扩充是提高神经网络性能的最重要策略之一;因此,我们从那里开始我们的现代化。最初的PointNet++使用了来自各种基准的随机旋转、缩放、平移和抖动的数据增强的简单组合[30]。最近的方法采用了比PointNet++中使用的方法更强的扩充。例如,KPConv[43]在训练过程中随机丢弃颜色,Point BERT[54]使用公共点重采样策略从原始点云中随机采样1024个点进行数据缩放,而RandLA Net[15]和Point Transformer[56]加载整个场景作为分割任务的输入。在本文中,我们通过加性研究量化了每次数据增强的效果。
我们以PointNet++[30]作为基线开始我们的研究,该基线使用原始数据扩充和优化技术进行训练。我们删除每个数据扩充,以检查是否有必要。我们增加了有用的扩充,但删除了不必要的扩充。然后,我们系统地研究了代表作[46,43,32,56,28,54]中使用的所有数据增强,包括数据缩放,如点重采样[54]和加载整个场景作为输入[15],随机旋转,随机缩放,平移以移动点云,抖动以向每个点添加独立噪声,高度附加[43](即,附加沿物体重力方向的每个点的测量值作为附加输入特征)、自动调整颜色对比度的颜色自动对比度[56],以及用零值随机替换颜色的颜色下降。我们逐步验证数据扩充的有效性,只保留提供更好验证准确性的扩充。在这项研究的最后,我们为每个任务提供了一组数据增强,以最大限度地提高模型的性能。第4.4.1节详细介绍和分析未发现的发现。
3.1.2优化技术
优化技术包括损失函数、优化器、学习率调度器和超参数在内的优化技术对神经网络的性能也至关重要。PointNet++在整个实验中使用了相同的优化技术:交叉熵损失、Adam优化器[16]、指数学习率衰减(步长衰减)和相同的超臂。由于机器学习理论的发展,现代神经网络可以用理论上更好的优化器(例如。AdamW[27]vs.Adam[16])和更高级的损失函数(具有标签平滑的交叉熵[39])。与我们对数据扩充的研究类似,我们还量化了每种现代优化技术对PointNet++的影响。我们首先对学习率和权重衰减进行顺序超参数搜索。然后,我们对标签平滑、优化器和学习率调度器进行了加法研究。我们发现了一组改进的优化技术以可观的幅度提升业绩。通常,具有标签平滑、AdamW和余弦衰变的CrossEntropy可以在各种任务中适度地优化模型。详细调查结果见第4.4.1节。
3.2建筑现代化:小改造→ 重大改进
在本小节中,我们将PointNet++[30]现代化为拟议的PointNeXt。现代化包括两个方面:(1)感受野标度和(2)模型标度。
3.2.1感受野缩放
感受野是神经网络设计空间中的一个重要因素[38,7]。在点云处理中,至少有两种方法可以缩放感受野:(1)采用更大的半径来查询邻域,(2)采用分层结构。由于在最初的PointNet++中已经采用了分层结构,因此我们在本小节中主要研究(1)。请注意,PointNet++的半径设置为初始值r,该初始值在对点云进行下采样时加倍。我们研究了每个基准中不同的初始值,发现半径是特定于数据集的,可能对性能产生重大影响。第4.4.2节对此进行了详细说明。
此外,我们发现等式中的相对坐标∆p=p l j−p l i。(1)使网络优化更加困难,导致性能下降。因此,我们提出了相对位置归一化(∆p归一化),将相对位置除以邻域查询半径:
在没有归一化的情况下,相对位置的值(∆p=p l j−p l i)非常小(小于半径),需要网络学习更大的权重来应用于∆p。这使得优化变得不平凡,特别是因为权重衰减用于减少网络的权重,从而倾向于忽略相对位置的影响。所提出的归一化通过重新缩放缓解了这一问题,同时减少了∆p在不同阶段之间的方差。
3.2.2模型缩放
PointNet++是一个相对较小的网络,其中编码器在分类架构中仅由2个阶段和4个阶段组成,用于分割。每个阶段仅由1个SA区块组成,每个区块包含3层MLP。PointNet++用于分类和分割的模型大小均小于2M,与通常使用超过10M个参数的现代网络相比要小得多[43,28,32]。有趣的是,我们发现,无论是附加更多的SA块还是使用更多的通道,都不会显著提高准确性,同时导致吞吐量显著下降(参见第4.4.2节),这主要是由于梯度消失和过拟合。因此,在本小节中,我们将研究如何以有效和高效的方式扩展PointNet++。
我们提出了一个反向残差MLP(InvResMLP)块,每个阶段将其附加在第一个SA块之后,以实现有效和高效的模型缩放。InvResMLP构建在SA块上如图2底部中间所示。InvResMLP和SA之间有三个区别。(1) 增加了输入和输出之间的残差连接,以缓解消失梯度问题[13],尤其是当网络深入时。(2) 引入可分离MLP以减少计算并加强逐点特征提取。虽然原始SA块中的所有3层MLP都是根据邻域特征计算的,但InvResMLP将MLP分离为根据邻域特征(在分组层和归约层之间)计算的单层和点特征(归约后)的两层,这是受MobileNet[14]和ASSANet[32]的启发。(3) 利用反向瓶颈设计[36]将第二个MLP的输出通道扩展4倍,以丰富特征提取。与原始SA块的附加相比,附加InvResMLP块被证明可以显著提高性能(见第4.4.2节)。
除了InvResMLP,我们还介绍了宏体系结构的三个变化。(1) 我们统一了用于分类和分割的PointNet++编码器的设计,即将用于分类的SA块的数量从2个缩放到4个,同时在每个阶段保持用于分割的原始数量(4个块)。(2) 我们使用对称解码器,其中改变其信道大小以匹配编码器。(3) 我们添加了一个stem MLP,一个在架构开始时插入的额外MLP层,以将输入点云映射到更高的维度。
总之,我们提出了PointNeXt,即PointNets[29,52]的下一个版本,通过结合所提出的InvResMLP和上述宏体系结构更改,从PointNet++进行了修改。PointNeXt的体系结构如图2所示。我们将干MLP的信道大小表示为C,将InvResMLP块的数量表示为B。较大的C导致网络的宽度增加(即,宽度缩放),而较大的B导致网络的深度增加(即深度缩放)。注意,当B=0时,在每个阶段仅使用一个SA块而不使用InvResMLP块。SA块中的MLP层的数量被设置为2,并且在每个SA块内部添加剩余连接。当B6=0时,InvResMLP块被附加在原始SA块之后。在这种情况下,SA块中的MLP层数被设置为1以节省计算成本。PointNeXt系列的配置总结如下:
4实验
我们在五个标准基准上评估PointNeXt:用于语义分割的S3DIS[1]和ScanNet[5],用于对象分类的ScanObjectNN[44]和ModelNet40[49],以及用于对象部分分割的ShapeNetPart[3]。
实验设置。除非另有规定,否则我们使用带标签平滑的交叉熵损失[39]、AdamW优化器[27]、初始学习率lr=0.001、权重衰减10−4、余弦衰减和批量大小为32的32G V100 GPU为所有任务训练PointNeXt。选择验证集上的最佳模型进行测试。对于S3DIS分割,点云按照常见做法进行体素下采样,体素大小为0.04m[43,32,56]。PointNeXt以初始lr=0.01训练100个时期(训练集重复30次),使用每个批次固定数量的点(24000),批次大小为8作为输入。在训练过程中,通过在每次迭代中查询随机点的最近邻居来获得输入点。根据点变换器[56],我们使用整个体素下采样场景作为输入来评估PointNeXt。对于ScanNet场景分割,我们遵循分层变换器[17],并在没有标签平滑的情况下训练具有多步学习率衰减的PointNeXt,并在[70,90]时期以0.1的衰减率衰减。体素大小设置为0.02m,训练中的输入点数设置为64000。我们对模型进行了100个时期的训练(训练集重复6次),批次大小为每个GPU 2个,有8个GPU。对于ScanObjectNN分类,PointNeXt以0.05的权重衰减训练250个时期。在点BERT[54]之后,输入点的数量被设置为1024,其中点在训练期间被随机采样,在测试期间被均匀采样(表示为点重采样增强)。对于ModelNet40分类,PointNeXt与ScanObjectNN类似地被训练,但是针对600个时期。对于ShapeNetPart零件分割,我们使用每个GPU 8个GPU和4个GPU的批量大小来训练PointNeXt,并将Poly FocalLoss[18]作为标准,用于400个时期。继PointNet++之后,2048个具有法线的随机采样点被用作训练和测试的输入。S3DIS、ScanNet、ScanObjectNN、ModelNet40和ShapeNetPart中使用的数据扩充的详细信息见第4.4.1节。
对于除ShapeNetPart分割之外的所有实验,我们不进行任何投票[23]2,因为如SimpleView[9]所建议的,在不使用任何集成方法的情况下比较性能更为标准。然而,我们发现,几乎所有型号在ShapeNetPart中的性能都非常接近,在没有投票的情况下很难实现最先进的IoU。我们还提供了模型参数(Params.)和推理吞吐量(每秒实例数)进行比较。使用ScanObjectNN和ModelNet40中的128×1024(批量大小128,点数1024)作为输入,使用ShapeNetPart中的64×2048测量所有方法的吞吐量。在S3DIS中,由于内存限制,一些方法[46,20]无法处理整个场景,因此使用16×15000点来测量吞吐量[32]。使用NVIDIA Tesla V100 32GB GPU和32核Intel Xeon@2.80GHz CPU测量所有方法的吞吐量。
4.1 S3DIS和ScanNet中的3D语义分割
S3DIS[1](斯坦福大型3D室内空间)是一个具有挑战性的基准,由6个大型室内区域、271个房间和13个语义类别组成。S3DIS中的标准6倍交叉验证结果如表1所示。请注意,官方的PointNet++[30]没有在S3DIS中进行实验。在这里,我们使用PointCNN[22]报道的结果进行比较。我们的PointNeXt-S是最小的变体,在平均IoU(mIoU)、总体准确度(OA)和平均准确度(mAcc)方面分别优于PointNet++13.5%、6.4%和10.2%,同时在吞吐量方面更快。速度的提高是由于PointNeXt-S的SA块中的层数减少(见第3.2.2节)。通过所提出的模型缩放,PointNeXt的性能可以逐渐提高。例如,PointNeXt-L在mIoU方面比SOTA Point Transformer[56]高0.4%,同时速度快3倍。请注意,Point Transformer使用了我们大多数改进的训练策略。PointNeXt XL是一款超大型变体,其mIoU/OA/mAcc达到74.9%/90.3%/83.0%,同时运行速度比Point Transformer更快。作为限制,我们的PointNeXt XL由更多的参数组成,并且就FLOP而言计算成本更高,这主要是由于反向瓶颈中的信道扩展(×4)和双倍的初始信道大小(C=64)。我们还在表1中提供了S3DIS区域5中PointNeXt的结果。在三次随机运行中的平均值±std,其中PointNeXts实现了与6倍实验类似的改进。
另一个著名的大规模分割数据集ScanNet[5]包含了20个语义类别的各个房间的3D室内场景。我们遵循公共训练、验证和测试划分,分别进行了1201次、312次和100次扫描。对于PointNet++,我们使用分层转换器[17]报告的结果进行比较。如表1所示,我们通过采用改进的训练策略(详见补充材料),将验证集中的PointNet++从53.5%mIou提高到57.2%mIou。PointNeXt-S在valmIoU上比原来的PointNet++进一步获得+11.0,这主要是由于使用了较小的半径(0.1m→ 0.05m)和相对位置归一化。随着模型尺寸的增加,ScanNet的性能稳步提高。我们最大的变体,PointNeXt XL在验证方面优于PointNet++18.0%的mIoU,在测试方面达到71.2%的mIoU,击败了最近的方法Point Transformer[56]和CBL[41]。
4.2 ScanObjectNN和ModelNet40中的3D对象分类
ScanObjectNN[44]包含约15000个真实扫描对象,这些对象被分为15类,具有20902个唯一对象实例。由于遮挡和噪声,ScanObjectNN对现有的点云分析方法提出了重大挑战。继PointMLP[28]之后,我们对PB_T50_RS进行了实验,这是ScanObjectNN最难、最常用的变体。如表2所示,所提出的PointNeXt-S在OA和mAcc方面都以非平凡的优势超过了现有方法,同时使用了更少的模型参数,运行速度更快。在PointNet++[30]的基础上,PointNeXt在最初报告的PointNet++性能基础上实现了显著改进,即+9.8%的OA和+10.4%的mACC。这证明了所提出的训练和模型扩展策略的有效性。PointNeXt还优于SOTA PointMLP[28](即+2.3%OA,+1.9%mACC),同时运行速度快10倍。这表明PointNeXt是一个简单、有效和高效的基线。请注意,我们没有在该基准上对PointNeXt的升级变体进行实验,因为我们发现使用PointNeXt-S的性能已经饱和,这主要是由于数据集的规模有限。
ModelNet40[49]是一个常用的3D对象分类数据集,它有40个对象类别,每个类别包含100个独特的CAD模型。然而,最近的工作[12,28,34]显示,与该合成数据集相比,人们对真实世界扫描数据集ScanObjectNN越来越感兴趣。遵循这一趋势,我们主要在ScanObjectNN中以PointNeXt为基准。在这里,我们还提供了ModelNet40中的结果。表2显示,在没有任何架构变化的情况下,高级训练策略将PointNet++的OA从91.9%提高到92.8%。PointNeXt-S(C=32)比原始报告的PointNet++高出1.3%的OA,同时速度更快。注意,具有较大宽度C=64的PointNeXt-S可以实现更高的总体精度(94.0%)。ShapeNetPart[53]是一个广泛用于对象级零件分割的数据集。它由16个不同形状类别的16880个型号组成,每个类别有2-6个零件,总共有50个零件标签。
4.3 ShapeNetPart中的三维对象零件分割
如表3所示,我们的PointNeXt-S具有默认宽度(C=32),其性能相当与SOTA CurveNet[50]相比,并在实例平均IoU(ins.mIoU)和吞吐量方面优于大量代表性网络,如KPConv[43]和ASSANet[32]。由于ShapeNetPart的规模较小,模型在深度缩放后会过拟合。然而,我们发现,通过将宽度从32增加到64,PointNeXt可以优于CurveNet,同时速度超过4倍。同样值得强调的是,具有更大宽度(C=160)的PointNeXt达到87.0%Ins。mIoU,而基于点的方法的性能多年来一直饱和在该值以下。我们强调,我们仅在ShapeNetPart中使用了投票,通过对10个随机缩放的输入点云的结果进行平均,缩放因子等于[0.8,12]。在没有投票的情况下,我们注意到性能下降了约0.5实例mIoU。
4.4消融和分析
表4和表5分别对ScanObjectNN[44]和S3DIS[1]中提出的训练和缩放策略进行了加法研究。我们采用原始的PointNet++作为基线。在ScanObjectNN中,PointNet++由[44]使用交叉熵损失、Adam优化器、学习率1e-3、权重衰减1e-4、每20个时期0.7的阶跃衰减和250个时期16的批大小进行训练,同时使用随机旋转和抖动作为数据增强。官方的PointNet++没有在S3DIS数据集中进行实验。我们参考了广泛使用的重新实现[52],其中PointNet++使用与ScanObjectNN相同的设置进行训练,只是仅使用随机旋转作为扩充。请注意,对于所有实验,我们在ScanObjectNN中为250个时期和在S3DIS中为100个时期训练我们的所有模型。
4.4.1训练策略
数据扩充是我们研究PointNet++现代化的第一个方面。根据表4和表5中的观察结果,我们得出了四个结论。(1) 数据缩放提高了分类和分割任务的性能。例如,在ScanObjectNN中,点重采样可以将性能提高2.5%的OA。将整个场景作为输入,而不是像PointNet++[30]和其他先前工作[43,21,32]中所做的那样使用块或球体子采样输入,将分割结果提高了1.1%mIoU。(2) 高度附加提高了性能,尤其是在对象分类方面。高度附加使网络知道物体的实际大小,从而提高了精度(+1.1%OA)。(3) 颜色下降是一种强大的增强功能,可以显著提高可用颜色的任务的性能。在S3DIS区域5中单独采用颜色下降增加了5.9%mIoU。我们假设颜色下降迫使网络更多地关注点之间的几何关系,这反过来又提高了性能。(4) 更大的模型支持更强的数据扩充。尽管随机旋转使S3DIS中PointNet++的性能下降了0.3%mIoU(表5数据扩充部分的第二行),但它被证明对更大规模的模型是有益的(例如,在PointNeXt-B上提高了1.5%mIoU)。ScanObjectNN中的另一个例子表明,去除随机抖动也增加了1.1%的OA。总体而言,随着数据增强的改进,ScanObjectNN中PointNet++的OA和S3DIS区域5中的mIoU分别提高了5.8%和9.5%。
优化技术包括损失函数、优化器、学习率调度器和超参数。如表4和表5所示,标签平滑、AdamW[27]优化器和余弦衰减在分类和分割任务中始终提高性能。这表明,更发达的优化方法,如标签平滑和AdamW,通常适用于优化神经网络。与逐步衰退相比,余弦衰退也更容易调整(通常只需要初始和最小学习率),并且可以实现类似于逐步衰退的性能。关于超参数,使用比PointNet++中使用的学习率更大的学习率提高了S3DIS中的分割性能。
总的来说,我们的训练策略包括更强的数据扩充和现代优化技术,可以将PointNet++在ScanObjectNN数据集中的OA性能从77.9%提高到86.1%,令人印象深刻地超过SOTA PointMLP 0.7%。S3DIS区域5和S3DIS的mIOU分别提高了11.7和13.6个绝对百分点(如图1所示)。我们的观察结果表明,经典PointNet++和SOTA之间的性能差距很大一部分是由于训练策略。
推广到其他网络。尽管针对PointNet++[30]提出了训练策略,但我们发现它们可以应用于其他方法,如PointNet[29]、DGCNN[46]和PointMLP[28],并提高了它们的性能。这种可推广性在ScanObjectNN[44]中得到了验证。如表6所示,当配备我们的训练策略时,代表性方法的OA都可以得到改善。
4.4.2模型缩放
接收场缩放。包括半径缩放和公式中定义的归一化∆p。(2) ,也在表4和表5中进行了验证。半径是特定于数据集的,而将半径从0.2缩小到0.15可以提高ScanObjectNN中0.3%的OA,保持半径与0.1相同可以在S3DIS中获得最佳性能。关于归一化∆p,它将ScanObjectNN和S3DIS中的性能分别提高了0.3 OA和0.4 mIoU。此外,在表7中,我们表明归一化∆p对更大的模型PointNext XL有更大的影响(S3DIS数据集中为2.3 mIoU)。
模型缩放。通过所提出的InvResMLP和一些宏体系结构变化来缩放PointNet++(见第3.2.2节)。在表4中,我们展示了使用茎MLP、对称解码器和SA块中的残差连接的PointNeXt-S在ScanObjectNN中提高了1.0%的OA。如表5所示,通过使用所提出的InvResMLP的更多块来放大PointNeXt-S,可以进一步揭示大规模S3DIS数据集中的性能(从63.8%到70.5%mIoU)。此外,在表7中,我们消融了拟议的InvResMLP的每个组件块和S3DIS区域5中的不同阶段比率。正如所观察到的,每一次体系结构更改都确实有助于提高性能。在所有变化中,剩余连接是最重要的,如果没有剩余连接,mIoU将从70.5%下降到64.0%。可分离的MLP增加3.9%mIoU,同时使网络速度加快3倍。从基线消除反向瓶颈会导致下降1.5%的mIoU,速度增益不到1%。在消除反向瓶颈后,在每个阶段内添加更多的块可以将其性能提高到69.7±0.3,但仍低于基线。表7还显示了初始宽度缩放的性能,它将PointNet++的宽度从32增加到256,以匹配PointNeXt XL的吞吐量,即初始深度缩放以在PointNet++中附加更多SA块,以获得相同数量的B=(3,6,3,3)的PointNextXL块,以及原始复合缩放以将原始深度缩放模型的宽度加倍到与PointNeXt XL相同的宽度(C=64)。我们提出的模型缩放策略比这些简单的缩放策略实现了更高的性能,同时速度更快。
5
与基于体素的方法[10,4]和基于多视图的方法[37,12,9]相比,基于工作点的相关方法直接使用其非结构化格式处理点云。PointNet[29]是基于点的方法的先驱,它提出通过将特征提取限制为逐点来对具有共享MLP的点的排列不变性进行建模。PointNet++[30]是通过捕捉局部几何结构来改进PointNet的。目前,大多数基于点的方法侧重于本地模块的设计。[46,45,31]依赖于图神经网络。[51,22,43,42]将点云投影到伪网格上,以允许规则卷积。[48,23,24]通过局部结构确定的权重自适应地聚合邻域特征。此外,最近的方法利用类Transformer网络[56,17]通过自我关注提取局部信息。我们的工作在本地模块设计中没有遵循这一趋势。相比之下,我们将注意力转移到另一个重要但在很大程度上未得到充分探索的方面,即培训和扩展战略。最近在[2,47,26]中对图像分类的训练策略进行了研究。在点云领域,SimpleView[9]是第一项表明训练策略对神经网络性能有很大影响的工作。然而,SimpleView只是采用了与DGCNN[46]相同的训练策略。相反,我们进行了系统的研究,以量化每种数据扩充和优化技术的效果,并提出了一套改进的训练策略,以提高PointNet++[30]和其他代表性工作[29,46,28]的性能。
模型扩展可以显著提高网络的性能,如各个领域的开创性工作所示[40,55,21]。与使用小于2M的参数的PointNet++[30]相比,大多数当前主流网络由大于10M的参数组成,如KPConv[43](15M)和PointMLP[28](13M)。在我们的工作中,我们探索了可以以有效和高效的方式扩展PointNet++的模型扩展策略。我们提供了关于扩展技术以提高性能的实用建议,即使用剩余连接和反向瓶颈设计,同时通过使用可分离的MLP来保持吞吐量。
6结论和讨论
在本文中,我们证明了通过改进的训练和缩放策略,PointNet++的性能可以提高到超过当前技术水平。更具体地说,我们量化了当今广泛使用的每种数据扩充和优化技术的效果,并提出了一套改进的训练策略。这些策略可以很容易地应用于提高PointNet++和其他代表作品的性能。我们还将反向残差MLP块引入到PointNet++中以开发PointNeXt。我们证明,在保持高吞吐量的同时,PointNeXt在各种基准测试上具有优于PointNet++的性能和可扩展性。这项工作旨在引导研究人员更多地关注培训和扩展策略的效果,并激励未来朝着这个方向开展工作。
限制
尽管PointNeXt-XL是所有具有代表性的基于点的网络[30,43,15,56]中最大的模型之一,但其参数数量(44M)仍低于图像分类中的小型网络,如Swin-S[25](50M)、ConNeXt-S[26](50M和ViT-B[8](87M),并且与它们的大型变体(包括Swin-L(197M)、ConvNeXt-XXL(350M)和ViT-L(305M))相去甚远。在这项工作中,我们没有进一步扩大模型大小,主要是因为与较大的图像对应物(如ImageNet[6])相比,点云数据集的规模较小。此外,我们的工作仅限于现有模块,因为重点不是引入新的架构更改。