稀疏卷积神经网络由于其有效性和简单性已经成为解决3D目标检测问题的主要研究方向之一,然而精度的提高通常伴随着计算成本的增加,这限制了其在实际系统中的适用性。
如何在不牺牲准确性的情况下提高效率就显得尤为关键。本文将介绍一种新的卷积算子,名为空间剪枝稀疏卷积(SPS-Conv),由香港大学、香港中文大学、百度联合开发。
SPS-Conv可以很容易得整合到现有的稀疏3D CNN中,而无需额外的架构修改。实验表明,SPS-Conv可以在不影响性能的情况下将GFLOPs减少50%以上。
在本文中,我们分析了现有稀疏三维神经网络的主要组成部分,发现三维神经网络忽略了数据的冗余,并在下采样过程中进一步放大了数据,这带来了大量额外的和不必要的计算开销。
受此启发,我们提出了一种新的卷积算子,称为空间剪枝稀疏卷积(SPS-Conv),它包括两种变体,空间剪枝子流形稀疏卷积(SPSS-Conv)和空间剪枝正则稀疏卷积(SPRS-Conv),这两种都是基于动态确定关键区域以减少冗余的思想。我们验证了大小可以作为确定关键区域的重要线索,从而消除基于学习的方法的额外计算。
所提出的模块可以容易地结合到现有的稀疏3D CNNs中,而无需额外的架构修改。在KITTI、Waymo和nuScenes数据集上的大量实验表明,我们的方法可以在不牺牲性能的情况下实现GFLOPs降低50%以上。
当深入研究3D检测的任务时,可以发现3D数据本身具有高冗余度。如图1所示,与稀疏CNN的每个阶段中的背景点相比,前景点在整个场景中的比例非常低(大约5%),这表明信息量较少的背景点占据了场景的主要区域。
然而,现有的3D稀疏CNN均匀地应用于整个场景,导致对背景区域的大量计算,这可能是冗余的。直观地说,如果可以识别并有选择地跳过这些区域,计算成本就有可能显著降低,而不会降低性能。
除了数据的冗余,模型设计本身也带来了冗余。3D稀疏CNN的下采样操作将计算相邻空体素的特征,在卷积(步距>1)下采样之后,非空体素的数量可能增加而不是减少。这无疑会增加后续阶段不必要的计算成本。
图1 前景点和背景点对比
如图2所示,稀疏卷积有两种类型,即正则稀疏卷积和子流形稀疏卷积,它们的主要区别在于卷积的输出位置。正则稀疏卷积可以像2D卷积一样有效地扩大感受野,这对于3D稀疏数据是有利的。
然而由于产生了太多的活动位置,它也带来了计算负担,这可能导致在后续的卷积层速度下降。为了在效率和感受野之间取得更好的折中,稀疏卷积神经网络中的下采样层往往采用正则稀疏卷积。
相比之下,子流形稀疏卷积限制一个输出位置是活跃的当且仅当对应的输入位置是活跃的,这避免了常规稀疏卷积中的膨胀,但这种情况下的感受野是有限的。
( a )子流形稀疏卷积( b ) 正则稀疏卷积。
针对上述问题和两种稀疏卷积结构,作者提出了一种新的有效的稀疏卷积算子,命名为空间剪枝稀疏卷积(SPS-Conv)。
为了有效地降低由三维空间冗余引起的不必要的计算成本,作者还研究了SPS-Conv的两种变体,即空间剪枝子流形稀疏卷积(SPSS-Conv)和空间剪枝正则稀疏卷积(SPRS-Conv),它们都基于相同的思想,即冗余应该根据不同个体的特定上下文在三维空间中动态地改善。
具体来说,考虑到背景区域通常在3D场景中占大多数的事实,直接在输入体积的任何地方执行子流形卷积不可避免地涉及大量不必要的计算,导致计算冗余。
因此,着眼于缓解这个问题,作者提出了空间修剪子流形稀疏卷积(SPSS-Conv)来动态检查感兴趣的区域,其结构如图3所示。
图3 幅度引导的空间采样和空间剪枝子流形稀疏卷积(SPSS-Conv)的图示。值得注意的是,在SPSS-Conv过程中,“Important”是指只在高量值的位置进行卷积,卷积的邻域仍然包含不重要的特征。
正则稀疏卷积的“膨胀”效应不可避免地导致大量相邻位置被激活,这给后续层带来了更大的计算负担。
而因为稀疏卷积中的空间动态稀疏性对于复杂的3D目标检测至关重要,因此SPRS-Conv被设计为基于幅度的动态预测降采样模块,可以有效抑制空间冗余的放大效应。SPRS-Conv的具体结构如图4所示。
图4 空间剪枝正则稀疏卷积(SPRS-Conv)的图示。SPRS-Conv的输入由幅度引导的空间采样产生。该图示出了步长为2的情况。
SPSS和SPRS可以很容易地插入到任何现有的稀疏CNN,为了证明其有效性和推广能力,作者分别用SPRS-Conv和SPSS-Conv替换稀疏CNN中除主干层以外的所有正则稀疏卷积和子流形稀疏卷积,如图5所示是具体的网络架构。
图5 框架概述。使用SPSS块和SPRS块代替所有的子流形块和正则块。
作者在三个具有挑战性的基准上评估SPS-Conv,包括Waymo、nuScene以及KITTI数据集。
同时作者选用了大量的baseline进行SPS-Conv优化,在KITTI数据集包括VoxelR-CNN,PV-RCNN以及Second,对于nuScenes和Waymo数据集为CenterPoint。
分别用SPSS-Conv和SPRS-Conv代替稀疏CNN中的子流形卷积和正则卷积,其他实验超参数遵循基线方法的默认设置。在模型训练上采用直接端到端的方式进行。
nuScenes:如表1和表2所示是不同方法的定量对比结果。表1显示带有SPS-Conv的算法在mAP和NDS的nuScenes测试集上取得了有竞争力的性能。
同时表2显示SPS-Conv可以帮助基础模型保留原始性能,同时跳过冗余计算,具体来说,SP-CenterPoint的GFLOPs仅为基本模型的54.5%。
表1 在nuScenes数据集上与其他方法的比较。CenterPoint*表示CenterPoint的重复实验结果。
表2 在nuScenes数据集上与基本方法的比较。GFLOPs仅包括稀疏CNN中的浮点运算。
Waymo:作者在室外数据集Waymo中提出了基于CenterPoint的SPS-Conv,结果如表3所示。实验结果表明了SPS-Conv在具有稠密点云的大规模数据集上的通用性:SPS-Conv在保持较高性能的同时显著降低了FLOPs。
表3 在Waymo val split上对CenterPoint基线方法的比较,用20%的数据进行训练。GFLOPs仅包括稀疏CNN中的浮点运算。
KITTI:如表4和表5所示,与其他方法相比SPS-Conv取得了具有竞争力的结果。表5可以看出,使用SPS-Conv后,稀疏CNN的GFLOPs降低了50 %以上。
表4 与其他方法在KITTI val AP3D(R11)的比较
表5 与基本方法在KITTI val AP3D(R11)的比较,GFLOPs只包括稀疏CNN中的浮点运算。
SPS-Conv剪枝比例:SPS-Conv的剪枝比例(PR)用来控制每个块中选择的不重要位置的比例,比例越高,参与计算的位置越少。作者在CenterPoint上对nuScenes数据集进行评估,结果如表6和表7所示。其中GFLOPs有一个相对明显且成比例的下降,但相比之下性能下降并没有那么严重。这也揭示了3D场景中的确包含空间冗余,当选择性地跳过这些冗余位置时,不会影响性能。
表6 nuScenes val上SPSS-Conv的消融实验
表7 nuScenes val上SPRS-Conv的消融实验
具有高幅度位置的重要性:如表8所示,当扭转重要位置时,在所有类别中都有相当大的性能下降。这种现象在小物体上表现得更为明显,尤其是对于交通锥和自行车类别(甚至达到约7%的性能降幅)。
点数较多的大对象类别(例如车辆)对采样方法不太敏感,但性能仍有明显下降。与SPSS-Conv的实验结果相比,SPRS的反演实验具有更夸张的性能损失。当不进行反演时,SPRS会抑制降采样部分减少的低幅值无关特征,表现为没有明显的性能损失。
然而当选择抑制幅度较大的位置时,空间冗余被放大,重要特征无法有效扩展。将上述特征转换为BEV图后,由于来自输入的前景点数量被削弱,提取的有效特征非常有限,导致很大程度的性能下降。
表8 在nuScenes数据集上高幅度位置重要性的消融实验
如图6(a)所示是修剪前后点云的可视化结果,分别提供原始图像和修剪后的图像。可以观察到大多数前景点被保留,背景区域中落在垂直结构中的点,例如杆和树也被保留,这是因为它们往往容易与前景对象混淆。处理这些点需要更强的深度神经网络。如图6(b)所示,大多数前景点的特征量级都比较大(车辆)。相比之下,简单的背景点(地面)以较小的幅度显示,更容易被网络区分。
图6 可视化
本文介绍了稀疏神经网络中的空间冗余,以及一种新的简单有效的卷积算子SPS-Conv,它有两个变种,即SPSS-Conv和SPRS-Conv。
3D场景中大比例的背景区域导致空间冗余,这可以通过SPS-Conv来修剪,进而大幅度减少GFLOPs,而不会影响性能。SPS-Conv为大模型的训练提出了新的解决方案。