VoxelNeXt:Fully Sparse VoxelNet for 3D Object Detection and Tracking
目前自动驾驶场景的3D检测框架大多依赖于dense head,而3D点云数据本身是稀疏的,这无疑是一种低效和浪费计算量的做法。我们提出了一种纯稀疏的3D 检测框架 VoxelNeXt。该方法可以直接从sparse CNNs 的 backbone网络输出的预测 sparse voxel 特征来预测3D物体,无需借助转换成anchor, center, voting等中间状态的媒介。该方法在取得检测速度优势的同时,还能很好地帮助多目标跟踪。VoxelNeXt在nuScenes LIDAR 多目标跟踪榜单上排名第一。
1.概述
在本文中,我们提出了VoxelNeXt。这是一个简单、高效且无需后期处理的3D对象检测器。我们设计的核心是体素到对象方案,其根据体素特征直接预测3D对象一个强大的完全稀疏的卷积网络。关键的优点是我们的方法可以去掉锚代理,稀疏到密集转换、区域建议网络和其他复杂组件。
由于我们的体素到对象方案避免了密集的特征图,所以网络可以高效推理。它只预测稀疏和必要的位置,如表1所示,与CenterPoint[57]相比。这种表示也使得VoxelNeXt可以很容易地扩展到使用离线跟踪器的3D跟踪。先前的工作[57]只跟踪预测的物体中心,这可能涉及对其位置的预测偏差。在VoxelNeXt中,查询体素(用于框预测的体素),也可以被跟踪以进行关联。
最近,FSD[16]利用了完全稀疏的框架。在VoteNet[37]的推动下,它投票支持对象中心,并采用迭代细化。由于3D稀疏数据通常分散在物体表面,因此这种投票过程不可避免地会引入偏差或误差。因此,需要诸如迭代群校正之类的细化来确保最终的准确性。该系统因其对客体中心的强烈信念而变得复杂。FSD[16]在大范围表现不错,但其效率不如我们的,如图所示。
2.具体方法
如果不使用2D检测头,直接用voxel稀疏会有什么问题呢?
稀疏探测器[16,46,47]的方法避免了密集的探测头,而是引入了其他复杂的管道。RSN[47]对距离图像执行前景分割,然后检测剩余图像上的3D对象稀疏数据。SWFormer[46]提出了一种具有精细窗口分割和具有特征金字塔的多个头的稀疏变换器。受VoteNet[37]的启发,FSD[16]使用点聚类和组校正来解决中心特征缺失的问题。
这些检测器进行稀疏预测,但以不同的方式使检测管道复杂化。在我们的工作中,这个中心缺失的问题也可以通过具有大感受野的稀疏网络简单地跳过。我们对常用的稀疏神经网络进行最小的调整,以实现完全稀疏的检测器。
稀疏神经网络因其效率而成为3D深度学习[10,11,23,41]中的大型骨干网络。人们普遍认为,它的表现能力对于预测是有限的。与所有这些解决方案相反,我们证明,在没有任何其他复杂设计的情况下,通过额外的下采样层可以简单地解决感受野瓶颈不足的问题。
点云或体素分布不规则,通常分散在3D对象的表面,而不是中心或内部。这促使我们沿着一个新的方向进行研究,直接基于体素而不是手工制作的锚或中心来预测3D盒子。
2.1.稀疏CNN骨干网适配
具有足够感受野的强特征表示是确保对稀疏体素特征进行直接和正确预测的必要条件。尽管普通稀疏CNN骨干网络已被广泛用于3D对象检测器[12,41,57],但最近的工作表明了其弱点,并提出了各种方法来增强稀疏骨干,例如使用精心设计的卷积[7]、large kernels [8], and transformers [25, 26, 35]。
与所有这些方法不同,我们尽可能少地进行修改来实现这一点,只使用额外的下采样层。默认情况下,简单稀疏的CNN骨干网络有4个阶段,其特征步长为{1,2,4,8}。我们将输出稀疏特征分别命名为{F1,F2,F3,F4}。此设置无法进行直接预测,尤其是对于大型对象。为了增强其能力,我们简单地包括两个额外的下采样层,以获得{F5,F6}的步长为{16,32}的特征。
这种微小的变化直接对扩大感受野产生了显著的影响。我们将最后三个阶段{F4,F5,F6}到Fc的稀疏特征进行组合。它们的空间分辨率都与F4对齐。对于阶段i,Fi是一组单独的特征fp。p∈Pi是三维空间中的一个位置,坐标为(xp,yp,zp)。该过程如图4所示。值得注意的是,这种简单的稀疏串联不需要其他参数化层。稀疏特征Fc和它们的位置Pc被获得为:
图4 VoxelNeXt框架的详细结构。图中带圆圈的数字对应于第3.1节和第3.2节中的段落。1-额外向下取样。2-稀疏高度压缩。3-体素选择。4-框回归。为了简单起见,我们在这里省略了F1、F2和F3的生成。
在附加下采样层的情况下,有效感受野ERF更大,预测框更准确。它足够有效,并且几乎不需要额外的计算,如表2所示。因此,我们使用这种简单的设计作为骨干网络。
稀疏高度压缩
3D对象检测器通过将稀疏特征转换为密集特征,然后将深度(沿z轴)组合为通道维度,将3D体素特征压缩为密集的2D图。这些操作需要占用占用内存和计算。
在VoxelNet中,我们发现2D稀疏特征对于预测是有效的。VoxelNeXt中的高度压缩是完全稀疏的。我们只需将所有体素放在地面上,并在相同的位置对特征进行累加。它的成本不超过1毫秒。我们发现,对压缩的2D稀疏特征的预测成本低于使用3D稀疏特征的成本,如表5所示。压缩的稀疏特征F’c及其位置P’c如下所示:
空间体素修剪
我们的网络完全基于体素。3D场景通常包含大量冗余的背景点,并且对预测几乎没有好处。我们沿着下采样层逐渐修剪不相关的体素。根据SPS Conv[32],我们抑制了具有小特征量值的体素的膨胀,如图6所示。
将抑制比设为0.5,我们仅对特征幅度|fp|(在通道维度上平均)位于所有体素的上半部分的体素进行扩张。体素修剪在很大程度上节省了计算,而不会影响性能,如表3所示。
2.2. 稀疏检测头
体素选择
图4显示了VoxelNeXt模型的详细框架。我们不依赖于密集特征图M,而是直接基于3D CNN骨干网络V∈R的稀疏输出来预测对象 N×F。我们首先预测K类体素的分数,s∈R
N×K。在训练过程中,我们将离每个注释边界框中心最近的体素指定为正样本。我们使用焦点损失[31]进行监督。我们注意到,在推理查询过程中,体素通常不在对象中心。它们甚至不一定在边界框内,例如图中的行人。我们在表7中统计了nuScenes验证集上查询体素的分布。
在推理过程中,我们通过使用稀疏最大池来避免NMS后处理,因为特性足够稀疏。与子流形稀疏卷积[19]类似,它只对非空位置进行运算。这是基于预测的分数s,并针对每个类别单独进行。
我们采用稀疏最大池来选择具有空间局部最大值的体素。去除的体素将被排除在框预测中,这节省了头部的计算。
框回归
从正的或选定的稀疏体素特征v∈Rn×F直接回归边界框。根据CenterPoint[57]中的协议,我们回归位置(∆x,∆y)∈R2,高度h∈R,3D尺寸s∈R3,旋转角度(sin(α),cos(α))∈R2
对于nuScenes数据集或跟踪,我们通过任务定义回归速度v∈R2。这些预测是在训练期间在L1损失函数下监督的。对于Waymo数据集,我们还预测了IoU,并在IoU损失的情况下进行训练,以提高性能[22]。我们简单地使用核大小为3的全连通层或3×3子流形稀疏卷积层进行预测,而不需要其他复杂的设计。我们发现,3×3稀疏卷积比全连接层产生更好的结果,负担有限,如表6所示
2.3 3D跟踪
我们的框架自然扩展到了3D跟踪。CenterPoint[57]通过二维速度v∈R2跟踪预测的物体中心,该速度也受到L1损失的监督。我们将此设计扩展到VoxelNeXt中。我们的解决方案是使用体素关联来包括更多与查询体素位置匹配的轨迹。
如图8所示,我们记录了用于预测每个框的体素的位置。与中心关联类似,我们计算L2距离以进行匹配。通过将查询位置的索引回溯到原始输入体素而不是stride-8位置来选择查询位置。被跟踪的体素存在于输入数据中,其比预测的中心具有更小的偏差。此外,相邻帧之间的查询体素共享与框相似的相对位置。我们的经验表明,体素关联改善了表11中的跟踪。
3.总结及实验结果
文章相对centerpoint 有较大提升,思想源于centerpoint,创新点在于直接使用真值中心最近对应的voxel作为有无目标的回归,而centerpont中还是基于2d特征的heatmap。跟踪时也使用原始查询voxel表现突出。具体指标如下:
原论文:https://arxiv.org/pdf/2303.11301.pdf