问题
本文提出了一种单阶段的三维目标检测算法,并在文中分析了二阶段三维目标检测算法的不必要性。其所提算法在waymo实时目标检测竞赛中取得了第一的成绩。其性能超过了所有单阶段和多阶段的目标检测算法。
作者首先分析了二阶段目标检测算法主要有两个作用,一是二阶段中逐点的特征可能能够在一定程度上恢复因为前期的体素化,卷积的步长和感受野的缺乏带来的信息损失。另一个原因是因为分类和回归这两个独立的分支可能在一定程度上不能对齐,因此需要一个二阶段的网络来进行调整。
对于逐点的特征能够在一定程度上恢复因一系列操作带来的信息损失,作者引用了一些论文中的说明,当基于体素的特征能够实现和基于点的特征相同的位置精度。对于任务不对齐的问题,作者通过实验发现,第一阶段提出的边界框已经非常精确了,第二阶段对于性能的提升主要集中于分类的置信度上。换句话说就是第二阶段可能对定位精度没有帮助。
上述观察与使用二阶段网络中的第二个理由是相符的。即一阶段中独立的分类和定位任务可能存在不对齐的情况,因此使用二阶段的网络来对定位精度高的anchor的分类精度进行调整。
在知道二阶段的作用之后,作者提出,是否能够通过更好的设计来避免二阶段网络的使用。因此,作者主要做了两个方面的改进,一个是在backbone中引入了self-calibrated卷积,另一个是设计了一个anchor-free的检测头。
解决方法
作者首先分析了二阶段目标检测的必要性。对于二阶段目标网络能够在一定程度上恢复信息损失,作者通过引用其他的工作说明,当voxel设置为(0.1m, 0.1m, 0.15m)时能够达到和基于点的方法相同的精度。
对于第二个原因,即一阶段存在任务不对齐的情况,作者提出了其可能带来的三个方面的改进:1) 框的回归,2) 分类分数,3)两者的对齐程度。
为了探索第二阶段网络的实际作用,作者在一个一阶段网络上分别加入了分类分支和回归分支。经过实验发现,在加入回归分支后,网络的性能并没有发生很大的变化。
上表展示的就是引入不同的分支之后网络性能的变化。其中2S-box表示的时在第二阶段中使用回归分支,2S-score表示的是在第二阶段中使用分类分数的分支,IoU表示的是作者提出的IoU-aware的检测头。从表中可以看出,经过精心设计的IoU的一阶段检测头的性能超过了二阶段的网络。
下面简单介绍一下网络的总体结构:
首先是backbone网络。本文中使用的是基于体素的方法,使用基于体素的骨干网络将点云空间下采样8倍。然后将生成的特征图reshape为BEV形式的特征图。
在经过3D特征提取之后,特征图被送入了多尺度的backbone中,为了能够充分发挥单阶段目标检测网络的潜力,作者使用self-Calibrated卷积网络替代的卷积神经网络。SC-Conv能够高效的扩大感受野,同时还引入了channel-wise和spatial-wise的注意力机制。
更重要的是,作者设计了一个anchor-free的检测头。除了AFDet中原始的五个子检测头之外,作者还设计了一个IoU-aware的置信度预测网络。这是去除二阶段网络的关键设计。此外,还引入了一个辅助损来作为额外的监督。
分类任务的置信度将检测任务中是一个非常常用的指标,但是分类置信度通常缺乏位置信息。此外,一个定位精确的边界框可能因为其较低的分类置信度而在NMS的过程中被删除。这两者的不对齐对基于排名的指标也是有害的。为了能够解决这个问题,作者使用以下公式计算的结果作为最终的分类置信度,该评测指标既考虑了分类精度又考虑了定位精度。其及算方法如下:
使用上述指标作为NMS排名的依据。这样在一定程度上实现两者的对齐。
此外,作者还引入了一个预测关键点的子检测头,作者在相同的heatmap上为每一个目标检测5个BEV视角上的关键点,分别是4个角点和目标的中心点。虽然在相同的headmap上,但是其半径缩小了一半。在验证的过程中,这个子检测头是不适用的,所以不会影响检测性能。
与AFDet一样,作者为不同的子检测头设计了不同的损失函数,对于上面的IoU-aware的检测头,作者将作为该子检测头的损失函数。
解决效果
本文所提方法在Waymo数据集上单模型达到了新的SOTA的检测效果。
消融实验
上图展示了作者主要创新点对于检测性能的影响,从表中可以看出,IoU-aware的检测头对于检测性能的影响最大,SC-Conv此致,Keypoint的也在一定程提高了模型的检测性能。