当前位置:   article > 正文

PointPillar进阶之路 | PillarNeXt逐步优化改进PointPillars

pointnext与pointpillars对比

作者 | 小书童 编辑 | 集智书童

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【3D目标检测】技术交流群

后台回复【3D检测综述】获取最新基于点云/BEV/图像的3D检测综述!

d15db26e1bcce7c3a57023a820361c95.png

为了处理稀疏和非结构化的原始点云,基于激光雷达的3D目标检测研究主要集中在设计用于细粒度几何建模的专用局部点聚合器上。本文从分配计算资源的角度重新审视了局部点聚合器。作者发现,考虑到准确性和延迟,最简单的基于Pillar的模型表现得出奇地好。此外,作者还表明,2D目标检测成功后的最小适应,如扩大感受野,显著提高了性能。

大量实验表明,基于Pillar的网络在架构和训练方面具有现代化的设计,在Waymo Open Dataset和nuScenes这两个流行的基准测试上具有最先进的性能。本文的结果挑战了人们的普遍直觉,即详细的几何建模对于实现3D目标检测的高性能至关重要。

代码和模型:https://github.com/qcraftai/pillarnext

1、简介

激光雷达点云中的3D检测是自动驾驶系统中的一项重要任务,因为它为后续的车载模块提供了关键信息,从感知、预测到规划。在开发专门设计用于应对该领域点云的复杂网络方面进行了广泛的研究。

由于点云的稀疏性和不规则性,现有的大多数工作都采用基于网格的方法,将点云转换为规则网格,如Pillar、Voxel和Range view,从而可以应用规则算子。然而,人们普遍认为,基于网格的方法(尤其是对于Pillar)不可避免地会导致信息丢失,导致较差的结果,尤其是对于小目标(例如行人)。

最近的研究[ PV RCNN++]提出了细粒度几何建模的混合设计,以结合基于点和网格的表示。将上述所有算子命名为局部点聚合器,因为它们旨在聚合特定邻域中的点特征。作者观察到,当前3D目标检测的主流是为点云开发更专业的算子,而网络架构几乎没有被探索。大多数现有作品仍然建立在SECOND或PointPillars的原始架构之上,这些架构缺乏现代化的设计。

同时,在一个密切相关的领域,图像中的2D目标检测取得了显著进展,这在很大程度上可以归功于架构和训练的进步。其中,强大的Backbone(例如,ResNet和Swin Transformer)、有效的Neck(例如,BiFPN和YOLOF)和改进的训练尤其值得注意。因此,2D目标检测的研究重点与3D目标检测有很大不同。

根据上述观察结果,作者重新思考了激光雷达点云中3D目标检测的重点。具体来说,作者重新审视了设计3D目标检测模型时的两个基本问题:「局部点聚合器」「网络架构」

首先,作者从一个新的角度,即计算预算来比较局部点聚合器。细粒度聚合器通常比粗粒度聚合器需要更多的计算资源。例如,基于Voxel的聚合器采用3D卷积,这需要更多的网络参数,并且运行速度比2D卷积慢得多。这就提出了一个问题,即「如何有效地分配计算预算或网络容量?。我们应该把资源花在细粒度结构上,还是把它们分配给粗略的网格?」

8e7363bffbc5e2c2a812fdc38a2e3eb5.png

令人惊讶的是,如图1所示,当在可比预算和增强策略下进行训练时,更简单的基于Pillar的模型可以实现优于或与基于Voxel的模型相当的性能,即使对于行人等小目标也是如此,同时显著优于基于多视图融合的模型。这对实际性能增益和细粒度局部3D结构的必要性提出了挑战。作者的发现也与最近在一般点云分析方面的工作一致,表明不同的局部聚合器在强大的网络下表现相似。

其次,对于网络架构,作者的目标不是为点云提出任何特定领域的设计,相反,从2D目标检测的成功中进行了最小的调整,并表明它们优于大多数具有点云专用架构的现有网络。例如,一个关键的发现是,「适当地扩大感受野会带来显著的改善」。与以前依赖于多尺度特征融合的工作不同,作者表明,在最终阶段,具有足够感受野的单个尺度可以获得更好的性能。这些有希望的结果表明,3D目标检测可以继承2D领域的成功实践。

根据上述发现,作者提出了一个基于Pillar的网络,称为「PillarNeXt」,它在两个流行的基准上得出了最先进的结果。本文的方法简单而有效,具有很强的可扩展性和可推广性。通过调整网络参数的数量,开发了一系列在检测精度和推理延迟之间具有不同权衡的网络,这些网络可用于自动驾驶中的车载和非车载应用。

本文的主要贡献可以总结如下:

  1. 这是第一项从计算预算分配的角度比较不同局部点聚合器(Pillar、Voxel和多视图融合)的工作。作者的发现挑战了人们的普遍看法,表明与Voxel相比,Pillar可以实现相当的3D mAP和更好的BEV mAP,并且在3D和BEV mAP中都显著优于多视图融合。

  2. 受2D检测成功的启发,作者发现扩大感受野对3D目标检测至关重要。通过最小的自适应,本文的检测器优于现有的点云设计方法。

  3. 本文的网络经过适当的训练,在两个大型基准测试中取得了优异的结果。

2、相关方法

2.1、基于激光雷达的三维目标检测

根据局部点聚合器,现有的方法可以大致分为基于点、网格和混合的表示。作为一种基于点的方法,PointRCNN使用 PointNet++生成Proposals,然后通过RoI池化对每个Proposal进行细化。然而,在这种方法中进行相邻点聚合极其昂贵,因此在自动驾驶中处理大规模点云是不可行的。

另一方面,基于网格的方法将点云离散为结构化网格,其中可以应用2D或3D卷积。在VoxelNet中,VoxelNet将3D空间划分为Voxel,并聚集每个Voxel内的点特征,然后使用密集的3D卷积进行上下文建模。SECOND通过引入稀疏3D卷积来提高效率。PointPillars将点云组织为垂直列,并采用2D卷积。另一种基于网格的表示是距离视图,它也可以通过2D卷积进行有效处理。多视图融合方法利用了基于Pillar/Voxel和距离视图的表示。

尽管效率很高,但人们普遍直观地认为,基于网格的方法会导致细粒度的信息丢失。因此,提出了将点特征合并到网格表示中的混合方法。在这项工作中,作者转而关注基本的网络架构和相关的训练,并表明细粒度的局部几何建模被高估了。

2.2、特征融合与感受野

多尺度特征融合始于以自上而下的方式聚合层次特征的特征金字塔网络(FPN)。将高级语义与低级空间线索相结合被广泛用于2D目标检测。在PAN中,PANet进一步指出自下而上的融合也很重要。两者都通过直接相加特征图来进行融合。BiFPN表明,不同尺度的特征贡献不相等,并采用可学习的权重来调整重要性。

感受野作为特征融合的一个相关因素,在2D检测和分割中也得到了广泛的研究和验证。在DeepLab中,提出了空间金字塔池(ASPP)来对具有多个有效感受野的特征进行采样。TridentNet应用具有不同空洞因子的3个卷积,使感受野范围与目标尺度范围相匹配。YOLOF中也引入了类似的策略,该策略使用扩张的卷积来扩大感受野,同时保持原始感受野。

尽管这些关于特征融合和感受野的技术已经在2D领域被广泛采用,但它们在3D领域几乎没有被讨论。该领域的大多数现有网络仍然遵循或基于VoxelNet的架构进行改进。在这项工作中,作者的目标是将最新的设计集成到3D目标检测网络中。

2.3、模型缩放

这一方面在图像领域已经得到了很好的研究,包括分类、检测和分割任务。可以观察到,共同增加深度、宽度和分辨率可以提高精度。在EffificientNet中提出了一种用于分类的复合缩放规则,该规则后来扩展到目标检测。人们普遍认为,模型容量会影响模型性能。因此,不同方法的比较应考虑模型容量,以便得出合理的结论。

据作者所知,只有一项工作[ Cost-aware comparison of lidar-based 3D object detectors]研究3D目标检测中的模型缩放。它缩放SECOND的深度、宽度和分辨率,以找到每个组件的重要性。然而,它只关注单一类型的模型,而本文在广泛的模型尺度上系统地比较了在类似计算预算下的不同局部点聚合器。

3、网络架构概述

由于运行时效率和接近2D目标检测,作者将重点放在基于网格的模型上。通常,基于网格的网络由:

  1. 用于将原始点云转换为结构化特征图的网格编码器

  2. 用于一般特征提取的Backbone

  3. 用于多尺度特征融合的Neck

  4. 用于特定任务输出的检测Head组成

现有网络通常将所有这些组件耦合在一起。在本节中将它们解耦,并简要回顾每个部分。

326aa3c57e4a7300bab6d367f0b0845e.png

3.1、Grid Encoder

网格编码器用于将点云离散化为结构化网格,然后将每个网格内的点转换并聚合为初步特征表示。在这项工作中,针对以下3种网格编码器:

  • 「Pillar」:基于Pillar的网格编码器将点排列在垂直列中,并应用多层感知器(MLP),然后进行最大池化,以提取Pillar特征,这些特征被表示为伪图像。

  • 「Voxel」:与Pillar类似,基于Voxel的网格编码器在Voxel中组织点并获得相应的特征。与支柱相比,Voxel编码器保留了沿高度维度的细节。

  • **Multi-View Fusion (MVF)**:基于MVF的网格编码器结合了基于Pillar/Voxel和距离视图的表示。在这里,按照[Pillar-based object detection for autonomous driving]将Pillar编码器与基于Pillar视图的编码器结合在一起,该编码器对Pillar坐标中的点进行分组。

3.2、Backbone and Neck

Backbone 基于由网格编码器提取的初步特征来执行进一步的特征提取。为了进行公平的比较,作者使用ResNet-18作为Backbone ,因为它在以前的工作中很常用。

具体而言,使用基于支柱或MVF的编码器在Backbone 中使用稀疏2D卷积,使用基于Voxel的编码器在Backbone 中使用稀疏3D卷积。然后可以利用Neck来聚集来自Backbone 的特征,以扩大感受野并融合多尺度上下文。然而,与图像相比,如何设计有效的Neck用于点云中的目标检测还没有得到很好的探索。

作者的目标是通过将2D目标检测的先进Neck设计集成到3D目标检测的模型架构中来缩小这一差距,例如使用改进的多级特征融合的BiFPN或使用在单个特征级别上具有多个扩展率的卷积的ASPP。

3.3、Detection Head

在SECOND和PointPillars的开创性工作中,使用基于Anchor的检测头来预先定义头部输入特征图上每个位置的轴对齐Anchor。取而代之的是,CenterPoint通过其中心点来表示每个目标,并预测中心度Heatmap,其中在每个中心位置实现边界框的回归。由于其简单性和卓越的性能,作者在所有网络中都采用了基于中心的检测头。

作者也展示了一组简单的Head修改,如特征上采样、多分组和IoU分支,显著提高了性能。

4、实验

4.1、网络设计研究

1、Grid Encoders的研究

首先评估第3.1节中介绍的3种具有代表性的网格编码器,即Pillar、Voxel和MVF。尽管这3种编码器已经被提出很长时间了,但在相同的网络架构和网格分辨率下,它们从未被公平地比较过。在这里,作者用稀疏的ResNet-18作为Backbone来测试其有效性和效率。作者缩放Backbone的宽度,获得了一系列从微小、小型、基础到大型的网络,即Pillar/Voxel/MVF-T/S/B/L。

162e0f9833813a562455858c11da1fcc.png

表1列出了每个模型的通道和参数编号、FLOP和延迟。注意,没有Voxel-T,因为基于Voxel的模型的FLOP要高得多,最小的模型从与Pillar-S类似的计算成本开始。

对于表1中的第一组,在通常采用的常规训练计划(即12个Epoch)下比较了具有不同模型尺度的3个网格编码器。从表中可以看出,在BEV APH下,Pillar编码器在车辆上表现良好,在行人上表现相当,同时具有显著更低的延迟。表8中关于nuScenes的每类比较进一步支持了这一结论。

请注意,从BEV的角度来看,行人通常只带几个Pillar,然而,Pillar编码器足以实现卓越或同等的性能,包括小目标。

然而,Pillar编码器在3D APH下仍然落后。为了进一步研究造成这一差距的原因,通过将训练计划扩展到36个Epoch来增强模型,增加了IoU回归损失,并在多组检测头中加入了IoU得分分支(一个用于车辆,另一个用于行人和骑自行车的人,如图2所示)。

作者将在这种增强策略下训练的模型称为Pillar/Voxel/MVF+。与表1的第二组相比,Pillar模型在3D APH下实现了与车辆上的Voxel模型相当甚至更好的结果,同时运行速度相当快。作者假设,在没有显式高度建模的情况下,基于Pillar的网络需要精细的设计,如更长的训练,才能完全收敛。这挑战了Pillar编码器丢失高度信息的普遍看法,并表明细粒度的局部几何建模可能没有必要。

这种反直觉的结果促使作者重新思考如何有效地分配3D目标检测网络的计算资源。基于Pillar的模型仅在BEV空间中分配资源,而基于Voxel和MVF的方法也沿着高度维度进行计算。在比较这些方法时,以前的工作没有考虑到计算预算。在本文的实验表明,在类似的FLOP下,将计算分配到高度维度是没有好处的。得出的结论是,将所有FLOP投资于BEV不仅更高效,而且更有效,如图1和表1和表8所示。

f190beee8a2148c68e5e5e1df091bd9b.png 41a5bd34cf1a9aaa39cd3a6e272f0cf0.png

它还揭示了训练的重要性。大多数以前的工作通常采用定期或短期的训练计划进行比较,这可能会得出不同的结论。在图3中演示了基于Pillar和Voxel的网络的学习行为。有趣的是,发现Pillar模型与BEV APH中的Voxel模型相比收敛。而对于3D APH,Pillar模型的收敛速度比Voxel模型慢得多。然而,当训练持续足够的Epoch时,这种差距会缩小,这表明先前方法报告的Pillar和Voxel之间的3D APH性能差距部分是由它们的不同收敛速度造成的,而不是Voxel中更细粒度的几何建模。

2、Neck Modules的研究

在之前的研究中得出的结论是,不同的局部点聚合器可能对最终结果并不重要。在下文中展示了对网络架构的简单升级可以极大地提高性能。特别是,关注的是Neck模块的设计,这在3D目标检测中还没有得到很好的探索。

该领域中的大多数当前网络依赖于PillarNet和VoxelNet中使用的多尺度融合,该融合将不同阶段的特征图上采样到相同的分辨率,然后将它们连接起来。如何设计Neck模块来进行更有效的特征聚合在2D目标检测中得到了广泛的研究,但在3D目标检测中尚未采用大多数先进的技术。

作者首先集成了两种流行的设计,即FPN和BiFPN。如表2的第一组所示,在最新的PillarNet工作中,车辆提高了2.38%。

24049941b13f54c3066b6e1da96be40d.png

使用多尺度特征的一个主要目标是处理目标尺度的巨大变化。然而,BEV空间中的3D目标并不存在这样的问题。这促使重新思考3D目标检测是否需要多尺度表示。因此,研究了3个单尺度Neck模块。Baseline是使用未经下采样或上采样的残差块的平颈,由于感受野有限,其性能较差。

在YOLOF中,有人认为,当感受野与目标大小匹配时,2D目标检测器表现更好。受这一观察结果的启发,作者在YOLOF中应用空洞卷积来扩大感受野,并在车辆上产生更好的性能。作者还与ASPP块集成,与PillarNet中使用的Neck相比,车辆性能提高了2.45%。上述所有设计在行人上都达到了可比的性能。这些比较共同表明,多尺度特征可能不是必要的,相反,扩大感受野起着关键作用。

这项研究表明,简单地从2D目标检测中调整Neck模块可以为3D目标检测带来不错的改进,这有助于探索图像领域更成功的实践,以升级点云的网络设计。

3、解决方案研究

直观地说,较小的网格大小保留了更多细粒度的信息,但需要更高的计算成本。下采样可以有效地降低成本,但会降低性能。通过改变Backbone和Head的网格大小和特征采样率,作者对不同的网格和特征分辨率进行了实验。

7e0287b07d7669635828f0ac9469d63c.png

如表3所示,如果输出特征分辨率是固定的(0.3),则使用大的网格尺寸(0.075至0.3)不会影响诸如车辆之类的大目标的性能,但会降低诸如行人之类的小目标的精度。对输出特征分辨率(0.3到0.6)进行下采样会损害这两个类别的性能。

然而,如果简单地在检测头中提供上采样层,可以获得显著的改进,尤其是对于小目标。这表明细粒度信息可能已经被编码在下采样的特征图中,并且Head中的简单上采样层可以有效地恢复细节。

4、总结
f18a90cc492165c51cba221f44463676.png

作者逐一提供了每个组件的改进,以阐明图4中的提升路线图。如该图所示,可以看出,模型缩放(例如,微小到基本)、增强的网络Neck和Head(例如,基于ASPP的Neck和Head的简单修改)以及适当的训练(例如,足够的训练Epoch和数据增强),比原始基线模型产生了巨大的改进。

在下面的实验中,使用具有上述改进的Pillar-B作为提出的网络PillarNeXt-B的默认设置。它与专门为点云开发的最先进的方法进行了广泛的比较。在图2中展示了PillarNeXt的整体架构。

4.2、WOD上的SOTA对比

将PillarNeXt-B与WOD验证集上公布的结果进行了比较。作为一种常见的做法,分别列出了使用单个和多个框架的方法。为了完整性,还将其与具有长期时间建模的方法进行了比较。本文的模型经过了36个Epoch的训练,并增加了faded copy-and-paste数据增强方法。

70ddb8215b65e332abbb8874522aba68.png

如表4所示,单阶段模型优于许多两阶段方法。同样值得注意的是,与具有复杂时间建模和细粒度几何建模的方法相比,本文的基于Pillar的方法在没有显式时间建模的情况下,甚至对行人等小目标实现了更好的结果。这清楚地验证了网络设计在基本架构和适当训练方面的重要性。

4369a0e9971eba5a6277c0c69294b612.png

除了3D结果外,作者还在表5中报告了BEV指标。BEV在自动驾驶中被广泛使用,因为下游任务自然是在BEV的空间中进行的。有趣的是,单帧模型已经优于许多多帧方法。与采用整个序列(约200帧)进行细化的板外方法3DAL相比,3帧模型实现了更好的性能。这再次验证了简洁的单阶段网络的有效性。

e08f7129c5023385db30d89ca10fef55.png

在表6中,进一步展示了在WOD测试集上的结果,以评估本文方法的泛化能力。作者不使用任何测试时间扩充或模型集成。PillarNeXt-B也被发现优于最先进的方法。

4.3、Nuscenes上的SOTA对比

最后,将PillarNeXt-B与最先进的nuScenes方法进行了比较。本文的模型使用常用的重新采样CBGS和faded copy-and-paste数据增强进行了20个Epoch的训练。在表7中报告了验证集的结果。

9e7d3df556cf3feaaa8b4f6bf1a160e5.png

在这里,使用一个更简单的模型,通过删除检测头中的IoU分支。本文的方法实现了68.8%的NDS和62.5%的mAP的优异性能,这表明了所提出的模型在不同数据集上的可推广性。

值得注意的是,除了PillarNet-18之外,所有高性能的方法都是基于Voxel的。本文的基于Pillar的模型在mAP方面大大优于领先的基于Voxel和多视图的方法。

为了进一步分析,作者还将其与完全相同设置下的基于Voxel的模型(voxel-B)进行了比较。PillarNeXt-B可获得更高的NDS和相当的mAP。特别是,对于表8中的每类性能,与Voxel-B相比,PillarNeXt-B在行人和交通锥中实现了同等或更高的结果。这进一步验证了基于Pillar的模型在精确检测小目标方面可以非常有效。

5、参考

[1].PillarNeXt: Rethinking Network Designs for 3D Object Detection in LiDAR Point Clouds.

视频课程来了!

自动驾驶之心为大家汇集了毫米波雷达视觉融合、高精地图、BEV感知、传感器标定、传感器部署、自动驾驶协同感知、语义分割、自动驾驶仿真、L4感知、决策规划、轨迹预测等多个方向学习视频,欢迎大家自取(扫码进入学习)

654b32585bddd7919ab1dd8fba57aaf8.png

(扫码学习最新视频)

国内首个自动驾驶学习社区

近1000人的交流社区,和20+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、Occpuancy、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

e8d1381abc37815427f71661d6ac93c7.jpeg

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向;

9749ff059eff5d8e5c3b8f010c209a7f.jpeg

添加汽车人助理微信邀请入群

备注:学校/公司+方向+昵称

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/288192
推荐阅读
相关标签
  

闽ICP备14008679号