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实时性、高精度都是你想要的!