实时和高性能的 3D 目标检测对于自动驾驶至关重要。最近表现最好的 3D 目标检测器主要依赖于基于点或基于 3D voxel 的卷积,这两种方法在板载部署中的计算效率都很低。相比之下,基于 pillar
的方法仅使用 2D 卷积,其消耗的计算资源较少,但在检测精度上远远落后于基于 voxel
的方法。
在本文中,通过研究基于 pillar
和 voxel
的检测器之间的主要性能差距,开发了一种实时和高性能的基于pillar
的检测器,称为 PillarNet
。PillarNet
由一个用于有效pillar
特征学习的强大编码器网络、一个用于空间语义特征融合的Neck网络和常用的检测头组成。仅使用 2D 卷积 PillarNet
可以灵活地选择 pillar
大小,并与经典的 2D CNN 主干网络兼容,例如 VGGNet
和 ResNet
。此外,PillarNet
受益于设计的方向解耦 IoU
回归损失以及 IoU
感知预测分支。大规模 nuScenes
数据集和 Waymo
开放数据集的大量实验结果表明,所提出的 PillarNet
在有效性和效率方面优于最先进的 3D 检测器。
1、简介
随着使用深度神经网络在点云表示学习方面取得成功,基于 LiDAR
的 3D 目标检测最近取得了显著进展。然而,在大型基准数据集(例如 nuScenes Dataset
和 Waymo Open Dataset
)上表现最好的点云 3D 目标检测器需要大量的计算负载和大量的内存存储。因此,需要开发一种具有实时速度的性能最佳的 3D 检测器,用于自动驾驶汽车的车载部署。
现有的点云 3D 目标检测器主要使用基于 Grid
的点云表示,可以大致分为两类,即基于 3D Voxel
的方法和基于 2D pillar
的方法。这两组都采用经典的“编码器-Necj-Head”检测架构。基于Voxel
的方法通常将输入点云划分为规则的 3D Voxel
网格。然后使用具有稀疏 3D 卷积的编码器来学习跨多个级别的几何表示。在编码器之后,带有标准 2D CNN
的Neck
模块在馈送到检测头之前融合了多尺度特征。相比之下,基于 pillar
的方法将 3D 点云投影到 BEV 平面上的 2D 伪图像,然后直接在基于 2D CNN
的特征金字塔网络(FPN
)上构建Neck
网络以融合多尺度特征。
对于基于Voxel
的方法,由稀疏 3D CNN
提供支持的有效Voxel
特征学习提供了良好的检测性能。然而,由于编码器内部的 3D 稀疏卷积,很难在 BEV 空间上聚合具有不同分辨率的多尺度特征。对于基于 pillar
的方法,与基于Voxel
的对应物相比,用于 pillar
特征学习的光编码器产生的性能不令人满意。此外,小尺寸的伪图像和大的初始 pillar
进一步限制了检测性能。这是因为 pillar
越细,伪像越大,性能越好,但计算量越大。有趣的是,基于Voxel
和 pillar
的方法都使用 BEV 空间上的聚合多尺度特征执行 3D 检测。
作者观察到以前基于 pillar
的方法没有强大的 pillar
特征编码,这是性能不满意的主要原因。此外,逐步下采样 pillar
尺度可以帮助解耦输出特征图大小和初始伪图像投影尺度。因此,设计了一种实时、高性能的基于 pillar
的 3D 检测方法,称为 PillarNet
,它由用于分层深度 pillar
特征提取的编码器、用于多尺度特征融合的Neck
模块以及常用的基于中心的检测头。
在 PillarNet
中,强大的编码器网络涉及 5 个阶段。阶段 1 到 4 遵循与传统 2D 检测网络(如 VGG
和 ResNet
)相同的设置,但用其稀疏 CNN
代替 2D
卷积以节省资源。具有标准 2D
卷积的第 5 阶段拥有更大的感受野,并将语义特征提供给以下Neck
网络。Neck
网络通过堆叠卷积层在来自编码器阶段 5 的进一步丰富的高级语义特征和来自编码器阶段 4 的低级空间特征之间交换足够的信息。用于调整先前基于 pillar
的硬平衡 pillar
大小方法,PillarNet
通过巧妙地分离所选 pillar
尺度的相应编码器阶段提供了一种有效的解决方案。例如,为了适应 8 倍 pillar
大小的输入(nuScenes 数据集中为 0.075 * 8m),可以简单地移除 1×、2× 和 4× 下采样编码器阶段。
如图 1 所示,具有不同配置的 PillarNet
,即 PillarNet-vgg/18/34
,仅使用 2D
卷积就为基于点云的 3D
目标检测提供了可扩展性和灵活性。PillarNet
显著推进了基于 pillar
的 3D
检测器,并为进一步研究点云目标检测提供了新的思路。尽管它很简单,但 PillarNet
在两个大型自动驾驶基准测试中实现了最先进的性能并实时运行。
2、相关工作
2.1、Point Cloud 3D Object Detection
1、Point-based 3D object detectors
仅使用点云的 3D 目标检测主要可以概括为两类:基于 Point
的方法和基于 Grid
的方法。
基于 Point
的 3D 目标检测器。由开创性的 PointNet
提供支持,基于 Point
的方法直接处理不规则点云并预测 3D 边界框。
PointRCNN
直接从原始点云提出基于 Point
的 proposal
生成范例,然后通过设计一个 RoI
池化操作来优化每个 proposal
。
STD
将每个 proposal
中的点特征转换为紧凑的Voxel
表示,用于 RoI
特征提取。
3DSSD
作为单阶段 3D 目标检测器,引入 F-FPS
作为现有 D-FPS
的补充,具有集合抽象操作,有利于回归和分类。
这些基于 Point
的方法自然地保留了准确的点位置,并通过基于半径的局部特征聚合实现了灵活的感受野。然而,这些方法将 90% 的运行时间用于组织不规则的点数据而不是提取特征,并且不适合处理大规模点云。
2、Grid-based 3D object detectors
基于Grid
的 3D 目标检测器。大多数现有方法将稀疏和不规则的点云离散成规则的网格,包括 3D Voxel
和 2D pillar
,然后利用 2D/3D CNN 执行 3D 目标检测。开创性的 VoxelNet
将点云划分为 3D Voxel
,并使用 3D 卷积对场景特征进行编码。为了解决通常用于大型室外空间的空Voxel
,SECOND
引入了 3D 稀疏卷积来加速 VoxelNet
并提高检测精度。到目前为止,基于 3D Voxel
的方法主导着大多数 3D 检测基准。长期以来,即使使用稀疏的 3D 卷积,也很难在 3D 体素的精细分辨率和相关资源成本之间取得平衡。
PointPillars
在地平面上使用 2D Voxel
化和基于 PointNet
的每柱特征提取器。它可以利用二维卷积以有限的成本部署在嵌入式系统上。MVF 在将原始点投影到 2D 伪图像之前利用多视图特征来增强逐点信息。HVNet 在逐点级别融合不同尺度的pillar
特征,以实现良好的准确度和高推理速度。HVPR
巧妙地保持了基于pillar
的检测的效率,同时隐含地利用了基于Voxel
的特征学习机制以获得更好的性能。然而,当前基于 Pillar
的进步集中在复杂的 Pillar 特征投影或多尺度聚合策略上,以缩小相对于基于Voxel
的同类产品的巨大性能差距。相比之下,借助强大的骨干网络来解决上述问题并提高 3D 检测性能。
2.2、Multi-sensor based 3D Object Detection
大多数方法期望来自多个传感器的互补信息,例如相机图像和激光雷达,以实现高性能的 3D 对象检测。MV3D
设计 3D 对象锚点,并从 BEV 表示中生成建议,并使用来自 LiDAR
和相机的特征对其进行细化。相反,AVOD
在提案生成阶段融合了这些特征,并提供了更好的检测结果。ContFuse
学习将图像特征与点云特征融合到 BEV
空间中。MMF
通过代理任务(包括 RGB 图像的深度补全和点云的地面估计)努力实现 LiDAR-Camera
特征融合。3D-CVF
解决了 BEV
域中跨视图空间特征融合的多传感器配准问题。几乎所有这些多模态框架都依赖中间 BEV 表示来执行 3D 对象检测。我们的方法在 BEV 空间上提取点云特征,并有望无缝集成到现有的多模态框架中以实现高级性能。
3、本文方法
3.1 Preliminaries
基于网格的检测器在 BEV
空间上执行 3D 检测,包括基于 3D Voxel
的检测器和基于 2D pillar
的检测器。最近的基于Voxel
的检测器遵循 SECOND
架构,改进了稀疏 3D CNN
,以在开创性的 VoxelNet
上实现有效的Voxel
特征编码。基于 Pillar
的检测器通常遵循开创性的 PointPillars
架构,仅使用 2D CNN
进行多尺度特征融合。首先重新审视这两个具有代表性的点云检测架构,这促使了构建所提出的 PillarNet
方法。
1、SECOND
SECOND
是一种典型的基于Voxel
的单阶段目标检测器,它为后续基于Voxel
的检测器使用专门的稀疏 3D 卷积奠定了基础。它将无序点云划分为规则的 3D Voxel
,并在 BEV
空间上进行框预测。
整个 3D 检测架构包含3个基本部分:
- 编码器将输入的非空
Voxel
特征编码为 1×、2×、4× 和 8× 下采样的 3D 特征量; Neck
模块进一步将BEV
空间上的编码器输出以自上而下的方式抽象为多个尺度;- 检测头使用融合的多尺度
BEV
特征进行框分类和回归。
2、PointPillars
PointPillars
通过一个微小的 PointNet
在 X-Y 平面上投影原始点云,产生一个稀疏的 2D 伪图像。PointPillars
使用基于 2D CNN
的自顶向下网络来处理具有步长 1×、2× 和 4× 卷积块的伪图像,然后将多尺度特征连接起来用于检测头。
3、分析
尽管具有良好的运行时和内存效率,PointPillar
在性能上仍然远远落后于 SECOND
。在稀疏 3D 卷积具有出色的点云学习表示能力的前提下,最近基于 pillar
的方法主要集中在探索从原始点或复杂的多尺度策略中进行细心的 pillar
特征提取。另一方面,这些方法具有不利的延迟,并且仍然大大低于其基于 3D Voxel
的对应方法。
或者,通过将基于Grid
的检测器视为基于 BEV
的检测器来采取不同的观点,并重新审视整个点云学习架构发现基于pillar
的方法的性能瓶颈主要在于用于空间特征学习的稀疏编码器网络和用于充分空间语义特征融合的有效Neck
模块。
具体来说,PointPillars
直接应用特征金字塔网络在投影的密集 2D 伪图像上融合多尺度特征,缺少 SECOND
中用于有效 pillar
特征编码的稀疏编码器网络。另一方面,PointPillars
将最终输出特征图的大小与初始投影pillar
尺度相结合,随着 pillar
尺度变细,整个计算和内存成本急剧增加。
为了解决上述问题,本文方法支持 BEV
空间上的“encoder-neck-head”检测架构,以提高基于pillar
的方法的性能。具体来说,探讨了编码器和Neck
网络的显著差异和各自的功能:
- 在
SECOND
中重新设计编码器,将稀疏 3D 卷积替换为其稀疏 2D 卷积对应操作,用于原始点云的无损pillar
特征 - 通过继承稀疏编码器输出的稀疏空间特征和低分辨率特征图中的高级语义特征抽象,将
Neck
模块制定为空间语义特征融合
最后,使用相对较重量级的稀疏编码器网络来构建 PillarNet
,用于分层pillar
特征学习和轻量级的Neck
模块,用于充分的空间语义特征融合。
3.2、PillarNet Design for 3D Object Detection
在本小节中将介绍 PillarNet
设计的详细结构。图 3 中的整体架构由三个组件组成:用于深度pillar
特征提取的编码器、用于空间语义特征聚合的Neck
模块和 3D 检测头。通过常用的基于中心的检测头,作者展示了 PillarNet
的灵活性和可扩展性。
1、编码器网络设计
编码器网络旨在从投影的稀疏 2D pillar
特征中分层提取深度稀疏 pillar
特征,其中从 1 到 4 的可拆卸阶段使用稀疏 2D CNN 逐步下采样稀疏 pillar
特征。与 PointPillars
相比,设计的编码器有两个优点:
- 稀疏编码器网络可以在基于图像的 2D 目标检测上取得进展,例如
VGGNet
和ResNet
。用于pillar
特征学习的简单编码器可以大大提高 3D 检测性能。 - 分层下采样结构使得
PillarNet
可以巧妙地操作不同pillar
尺寸的稀疏pillar
特征,从而缓解了之前基于pillar
的方法中耦合pillar
尺寸的限制。
构建的 PillarNet
具有不同的主干,PilllarNet-vgg/18/34
,具有与 VGGNet / ResNet-18 / ResNet-34
相似的复杂性。详细的网络配置可以在论文的补充材料中找到。
2、Neck设计
与 FPN
一样,Neck
模块旨在融合用于主流检测头部(即锚框或锚点)的高级抽象语义特征和低级细粒度空间特征。额外的 16× 下采样密集特征图使用一组密集的 2D CNN 进一步抽象高级语义特征,以丰富大目标的感受野并为基于中心的检测头填充目标中心定位的特征。设置来自稀疏编码器网络的空间特征,从 SECOND
的初始设计开始,有两种可选的Neck
设计用于空间语义特征融合:
(1) SECOND
的朴素设计Neck-v1
(图4(A))应用自顶向下的网络生成多尺度特征,并将多尺度密集特征图连接起来作为最终输出。
(2) 激进的设计Neck-v2
(图4(B))考虑了来自额外16×下采样密集特征图的High-Level
语义特征和来自使用一组卷积层的稀疏编码器网络的Low-Level
空间特征之间的充分信息交换。
(3) 本文设计的Neck-v3
(图4(C))通过一组卷积层进一步丰富了16×下采样密集特征图上的High-Level
语义特征,并将Low-Level
语义特征与另一组卷积层融合以实现鲁棒特征提取。
3.3、Orientation-Decoupled IoU Regression Loss
通常,IoU
度量与预测的 3D 框的定位质量和分类精度高度相关。以前的方法表明,使用 3D IoU
质量重新加权分类并监督框回归可以实现更好的定位精度。
对于分类分支,遵循之前的方法并使用 IoU-rectification
方案将 IoU
信息合并到置信度分数中。后处理阶段的 IoU-Aware
修正函数可以表述为:
其中 S 表示分类分数,WIoU
是 IoU
分数。是一个超参数。为了预测 IoU 分数,使用 L1 loss
来监督 IoU
回归,其中预测的 3D 框和GT
框之间的目标 3D IoU 分数 W 由 。
对于回归分支,最近的方法将 GIoU
损失或 DIoU
损失从 2D 检测扩展到 3D 检测。然而,3D IoU 计算减慢了训练过程。此外,IoU
相关回归的耦合方向可能会对训练过程产生负面影响。
图 5 显示了这样一个例子。给定一个典型的 2D 边界框 [x, y, l, w, θ] = [0, 0, 3.9, 1.6, 0],x 和 y 位置存在方向与中心偏差或宽度比例的交叉效应偏差框与真实框之间的 IoU 度量优化期间的长度和长度大小如下:
- 中心偏差对方向回归的影响。如果
BBox
中心偏离很远,训练阶段很容易陷入局部最优。见图5(A)中的红色曲线。 - 尺寸变化对方向回归的影响。如果
BBox
大小发生很大变化,训练阶段就会进入optimization plateau
。参见图 5(B) 中的红色区域。 - 方向偏差对中心和尺寸回归的影响。即使方向偏差很大,优化方向也保持一致。
因此,通过将方向 θ 与相互耦合的7个参数 (x,y,z,w,l,h,θ) 解耦,提出了另一种与方向解耦 IoU 相关的回归损失。
具体来说,分别从 IoU 损失、GIoU 损失和 DIoU 损失扩展了 IoU 回归损失: (OD-IoU/OD-GIoU/OD-DIoU)。
3.4、Overall Loss Function
接下来,将Focal Loss
应用于 Headtmap
分类 ,将 L1 损失应用于定位偏移 、z 轴位置 、3D 对象大小 和方向 。整体损失联合优化如下:
其中损失权重λ是根据经验设置的参数。
4、实验
5、参考
[1].PillarNet: Real-Time and High-Performance Pillar-based 3D Object Detection.
6、推荐阅读
超轻目标检测 | 超越 NanoDet-Plus、YOLOv4-Tiny实时性、高精度都是你想要的!