南洋理工 & 新加坡大学提出 DM3D | 3D点云剪枝策略,在多个检测模型上实现精度与计算效率双赢 !

AI人工智能初学者

共 34524字,需浏览 70分钟

 ·

2024-07-18 09:00

ADAS Laboratory




点击上方蓝字关注 智驾实验室

         加入【智驾实验室】交流群,获取更多内容和资料


将深度神经网络应用于三维点云处理,因其在增强现实/虚拟现实、自动驾驶和机器人技术等多个领域的卓越性能而越来越受到关注。然而,随着神经网络模型和三维点云规模的不断扩大,降低计算和内存开销以实现在实际应用中的延迟和能源限制变得至关重要。

尽管现有方法提出了降低计算成本和内存占用的方法,但它们大多数仅解决了输入中的空间冗余,即移除了3D数据中背景点的冗余。

在本文中,作者提出了一种新颖的后训练权重剪枝方案,用于3D目标检测,该方案(1)与所有现有的点云稀疏化方法正交,确定预训练模型中导致局部性和置信度(检测失真)最小失真的冗余参数

以及(2)一个通用的即插即用剪枝框架,可与任意3D检测模型配合使用。该框架通过基于失真的二阶泰勒近似识别逐层稀疏性,旨在最小化网络输出的检测失真,以最大程度地保持检测精度。

尽管使用了二阶信息,作者引入了一种轻量级方案来高效获取Hessian信息,并随后使用动态规划解决逐层稀疏性问题。

在KITTI、Nuscenes和ONCE数据集上的大量实验表明,作者的方法在显著降低计算量(FLOPs)的情况下,能够保持甚至提高剪枝模型的检测精度。

值得注意的是,在CenterPoint和PVRCNN模型上,作者分别实现了超过 的FLOPs减少,而mAP没有下降,显著提升了现有技术水平。

1 Introduction

三维深度学习因其自主驾驶、机器人技术以及虚拟现实/增强现实等领域中的广泛应用而受到科研界和工业界的极大关注。特别是,3D目标检测对于自动驾驶系统来说是一项理解驾驶环境的基本视觉任务,它是后续决策过程的基础。基于LiDAR的目标检测模型最新进展表明,为了达到经验上可接受的精度,需要显著昂贵的计算成本,尤其是在处理由高度异质和非结构化的3D数据所提出的挑战时。然而,为了最大限度地减少现实世界驾驶中的危险事件,实现低延迟检测的快速推理至关重要。因此,加速对计算和内存需求高的3D数据上的目标检测,使其在现实应用中更具可行性,成为了一项紧迫的任务。

图1:在ONCE数据集上,DM3D与 Baseline 的AP得分与FLOPs对比。

先前的尝试[5, 30]利用3D点云模态中的空间稀疏性,跳过不必要的计算以获得加速。其他尝试进一步从原始LiDAR数据中识别出不重要的点和 Voxel 以减少内存占用。所有这些尝试只考虑移除 Voxel 间的连接计算,而在它们的公式中没有考虑到明确的检测精度保留。最新的稀疏3D目标检测方法[40]通过移除空间冗余,创下了20%的浮点运算每秒(FLOPs)的减少记录。然而,当仅削减点云信息时,FLOPs减少存在一个不可避免的上线。另一方面,3D模型中的权重冗余仍然很高,并且尚未得到充分解决。现有的针对3D分割任务的权重稀疏化方法[12]剪除了邻域点访问率最低的卷积核连接。然而,与已被证明在CIFAR-10等基准数据集上可达到90%以上的典型基于幅度和基于泰勒的排名方案[16, 17, 33]相比,这种基于命中率的权重选择方案在保持精度方面是次优的。3D模型权重稀疏化的另一个挑战是如何分配各层的修剪比例,以最小化对模型准确性的负面影响。[12]通过在单层率失真关系上采用贪心搜索来解决此问题。尽管他们将分配问题放松为每个连续两层组的子问题,以使解决方案可行,但这种放松仍然需要大量的真实数据收集,降低了效率。

在本文中,作者提出了一个针对3D目标检测模型的通用权重修剪框架。受到经典率失真理论的启发,作者的方法在计算复杂度(FLOPs)的约束下,最小化3D检测模型的检测失真,包括检测局部性和置信度。权重的修剪以逐层的方式进行,每个层的修剪比例根据基于海森的率失真分数决定,该分数可以通过预计算的梯度值高效地计算得出。然后,作者开发了一个超快速动态规划算法,其时间复杂度为多项式,以找到每层的全局最优修剪比例。请注意,作者提出的权重修剪和先前提出的输入修剪方法可以相互补偿。通过结合权重和输入修剪,作者期望获得最大的压缩比。作者与先前的工作进行了比较,并在各种3D检测模型上进行了大量实验,以证明作者方法的有效性。如图1所示,作者在各种数据集上实现了显著的加速,同时性能下降可以忽略不计甚至有所提升。

据作者所知,这是首次系统地提出了一种以最小化失真方式为3D检测模型进行权重修剪的方法。

作者总结本文的主要贡献如下:

  • 作者提出了一个针对3D目标检测模型的通用权重修剪框架,能够通过稀疏化权重来减少计算复杂度(FLOPs)。修剪目标被表述为帕累托优化,它明确地最小化了检测边界框局部性和分类置信度的失真。所提出的修剪方案可以作为后训练处理的独立即插即用模块应用于3D目标模型,并且可以与其他空间修剪方法配合使用。
  • 作者的方法采用了基于海森的逐层修剪方案。通过执行动态规划和细粒度优化,作者推导出一个具有多项式时间复杂度的极其高效的算法,以找到全局最优解。得益于最小化失真的目标和细粒度优化,作者的方法可以在非常高的修剪比例下最大限度地保留检测精度。
  • 作者的方法在三个基准数据集上的六个3D目标检测模型上取得了最先进的效果。

2 Related Works

通常,用于三维点云的神经网络主要采用基于点[23]的方法或基于 Voxel 的方法。基于点的方法直接使用神经网络处理原始的三维点云数据,而基于 Voxel 的技术则首先将原始数据 Voxel 化,然后在 Voxel 上操作而不是在原始数据上。许多研究采用了基于 Voxel 的方法来进行三维目标检测任务。

Spatial Sparsity

稀疏3D卷积。 稀疏3D卷积神经网络(CNN)旨在高效处理稀疏点云数据,其中大部分是具有零值的背景点。因此,在这样数据上计算卷积可以通过跳过3D空间中的空位置来完成。[7, 24]为有效点云数据表示构建了分层结构。提出了规则稀疏卷积(RSC)[9]和子流形稀疏卷积(SSC)[10],以减轻活动点数量的增加,从而在稀疏卷层中保持空间稀疏性。一些库[29, 34]被开发出来以支持稀疏3D卷积以实现快速推理。[32]根据输入图像的空间位置应用不同的滤波器,解决了在具有空间变化分布的LiDAR数据上使用标准卷积的效率问题。

空间冗余减少。 容易观察到,即使是在3D数据的活跃区域,点/ Voxel 的自然冗余仍然存在。因此,这种方法旨在进一步识别冗余的空间数据点,以减少计算复杂性。[9]是早期提出的工作,主张当相应的输入点不存在时,应省略输出点,确保仅在具有相关输入数据的区域进行计算。[11]简化了基于点的3D动作识别模型的集合抽象过程,以识别重要的点和帧。[3, 19]提出通过预测重要性图来利用特征稀疏性,以移除冗余区域,实现计算和内存的减少。Multi[18]提出了一种Focal Loss来预测 Voxel 重要性,并与 Voxel 精炼结合使用。Ada3D[40]进一步利用了2D BEV Backbone中的空间冗余,提出了保留稀疏性的批归一化(Sparsity Preserving BatchNorm)来进行3D到BEV特征转换。[2, 20]利用了连续3D帧之间的差异(残差)通常是稀疏的这一事实。

Sparsity in Model Weights

除了利用直观的空间冗余之外,很少有尝试在3D网络中利用权重冗余。[39]使用了生成器来提出剪枝策略,并使用贝叶斯优化评估器来为3D目标检测选择剪枝策略。他们为每一层配置了独特的剪枝方案和比率。非所有邻居[12]识别了在3D分割模型中计算输出特征时最不常关注的核神经元。他们还通过在两层分组策略上使用贪心搜索来执行逐层稀疏分配。CP [13]利用了结构化剪枝(通道剪枝)针对基于点的3D网络。现有的权重剪枝方法都没有建立在像作者在这篇论文中提出的那样,最小化剪枝对检测性能影响的基础上。

3 Preliminaries

层内剪枝。作者针对3D检测模型中的所有特征提取层进行可学习参数的剪枝,_即_,在3D主干网络中的SparseConv [5]的核和在2D鸟瞰图(BEV)主干网络中的Conv2d。为了确定在给定层稀疏度的情况下,层中哪些参数需要被剪枝,作者通过绝对一阶泰勒展开项对层内的神经元进行排序,并消除排名靠后的神经元。从数学上讲,作者首先通过泰勒展开得到神经元排序得分矩阵 [22],其中 表示网络参数, 表示网络输出 对网络参数 的导数。上述剪枝方案可以表示为 ,其中 是在剪枝比例 下从排序得分矩阵 生成的二进制 Mask 。作者进一步定义了由典型的剪枝操作引起的权重扰动

4 Methodologies

作者提出了一种基于注意力的深度学习模型,用于图像分类。该模型受到人类视觉系统的启发,人类视觉系统会选择性地关注输入刺激的相关部分,同时忽略不相关信息。

类似地,作者的模型融合了注意力机制,强调与图像分类任务相关的特征,并抑制不那么重要的特征。作者模型的总体架构由三个主要组成部分构成:用于特征提取的卷积神经网络(CNN)、用于聚焦显著区域的注意力模块以及用于预测图像标签的分类层。所提出的方法在几个基准数据集上进行评估,与现有最先进的方法相比,证明了其有效性和竞争力。

Problem Definition

给定一个由(1)具有 层的特征提取器 及其参数集 组成,其中 是第 层的权重;(2)在2D/3D特征 之上的检测Head,输出3D检测边界框预测和置信度,其中 表示预测的边界框数量, 代表类别数量, 表示边界框坐标的维度。因此,检测输出是边界框预测和类别置信度分数的拼接:

中修剪参数将得到新的参数集 。作者将修剪的影响视为密集预测 与修剪后模型预测 之间的失真。

鉴于不同层以不同方式对模型的性能产生影响[8],修剪层权重的影响将因层而异,特别是各层中活跃的前景点/ Voxel 所携带的变信息。为每一层分配适当的层状稀疏水平可能对性能产生重大影响。在这方面,作者提出的修剪问题被表述如下,以获得在指定的计算缩减目标(FLOPs)约束下,最小化边界框定位失真和置信度分数失真的层状稀疏分配。因此,作者制定了一个帕累托优化问题:

它共同在一定的FLOPs缩减目标 下最小化修剪引起的失真。 是拉格朗日乘数。

Second-order Approximation of Detection Distortion

为了获得一个可处理的解决方案,上述目标需要转换成优化变量的闭式函数,即逐层的剪枝比率。对于每一层,给定一个参数评分方法,相应的权重剪枝误差 也就确定了。首先,作者使用二阶泰勒展开来展开失真 (从现在起为了视觉清晰,作者省略了上标 ):

其中 是第 层权重的海森矩阵。

然后考虑目标方程 4 中平方 L2 范数的期望,可以重写为向量的内积形式:

当作者进一步展开内积项时,每一层对 )的交叉项是:

当作者讨论随机变量 的影响时,作者可以将一阶和二阶导数 视为常数,从而将它们移出期望之外。同时,向量转置在期望内部是无关紧要的。然后,等式7变为

算法1 通过动态规划进行优化。

利用假设1,作者可以发现上述4个交叉项也等于零,然后作者可以推导出失真期望如下。

在上述放松之后,作者将原始目标估计为:

翻译为简体中文:

Optimization Stratgy and Empirical Complexity Analysis

作者将用 表示在第 层剪枝 个权重时的剪枝比例,其中对于所有的 ,有 。在解决由方程式 10 定义的剪枝问题时,作者的方法包括选择最优的剪枝比例以最小化如方程式 10 所表达的失真。假设作者已经获得了一组 ,其中 表示在第 层剪枝 个权重时的失真误差。

具体来说,定义 为状态函数,其中 表示在前 层剪枝 个权重造成的最小失真。通过以下状态转换规则将原始问题分解为子问题,可以解决搜索问题:

然后,作者可以通过使用动态规划并按照转换规则进行,如算法 1 所示,获得最优剪枝解决方案,其时间复杂度与模型参数大小成线性关系。

Performance Optimization and Empirical Complexity

Hessian近似。 对于经验网络,作者使用经验Fisher矩阵 [14]来近似Hessian矩阵

其中 是一个小的阻尼常数, 是单位矩阵。在一个大小为 的校准集上计算 的直接方法是通过迭代不同的剪枝比例 来确定相应的 值。然而,即使使用了近似的Hessian,这个过程在复杂度为 的情况下仍然计算密集,其中 是可能的剪枝比例的数量, 是第 层权重的神经元数量。这在提高所提方法的效率以充分利用稀疏网络的优点方面提出了挑战。作者观察到,随着剪枝比例的变化,导数 保持不变。这允许作者为所有剪枝比例重用Hessian矩阵,将复杂度降低到 。然而,双二次复杂度的存在仍然使得成本过高。此外,作者观察到,随着剪枝比例的轻微增加,只有一小部分神经元会从已经经历了剪枝的权重张量中被进一步识别出来以进行移除。因此,每次剪枝比例从 增加到 时,作者可以选择一个子向量 ,并按照以下规则从 更新

图2:如方程13所述的 的详细简化计算。

可以表示为以下三部分之和: + + (公式13)。将子向量 的维度表示为 ,这等于在从 增加到 的剪枝比例 下,与 相比,在 中新剪枝的神经元数量。在公式13中的乘法计算可以在低维度上操作,其中 是从原始向量和中索引的子向量和子矩阵。为了进一步消除可能的混淆,作者在图2中说明了上述更新规则公式13。考虑到 ,表示完全没有剪枝,这确保了 。因此,复杂度变成了 次更新的总和 。由于 线性增加, ,因此,复杂度大约为 。因此,计算所有 层的失真 的总计算复杂度大约为 ,这显著低于原始复杂度。

5 Experiments

以下是第5节实验部分的开始部分。

Experimental Settings

表1:在ONCE_val集上DM3D的性能比较。灰色背景表示密集模型的结果。对于 Baseline 稀疏检测结果,作者列出了与它们在原文中报告的相应密集模型性能下降的情况。

表2:在Nuscenes_val集上DM3D的性能比较。

数据集和模型。作者评估了三个3D目标检测任务,以证明作者提出方法的有效性,分别是KITTI、Nuscenes和ONCE。KITTI数据集包括3712个训练样本,3769个验证样本和7518个测试样本。检测目标分为三类:汽车、行人和自行车, GT 边界框分为"简单"、"中等"和"困难"难度等级。检测性能评估采用每个类别的平均精度(AP),对于汽车使用IoU阈值为0.7,对于行人和自行车使用0.5。nuScenes数据集是一个全面的自动驾驶数据集,包含1000个驾驶序列,包括LIDAR和摄像头等多种模态。作者遵循默认划分,其中_train_划分包括700个训练场景,_val_集有150个场景。ONCE数据集是一个大规模基于LiDAR的自动驾驶收集,包含100万个场景,其中16000个完全标注用于3D目标检测,使用mAP进行性能评估。作者进行了一轮后训练剪枝,然后进行一轮微调以完全恢复性能。

实现细节。作者使用OpenPCDet [31]框架进行微调。尽可能从官方网站使用预训练权重进行后训练剪枝。对于其他模型,作者在KITTI和ONCE上使用作者保留的模型,用所有默认设置训练80个周期。作者在8个A100 40GB GPU上设置了微调批处理大小为64,使用Adam优化器,所有实验的权重衰减为0.01。作者通常将微调学习率设置为密集训练学习率的10倍。作者为KITTI和nuScenes设置30个周期,为ONCE设置60个周期。作者搜索所有微调模型,并根据每个数据集的上述指标找到最佳性能。

FLOPs计算。由于作者从检测模型中剪枝了3D和2D的主干网络,作者相应地报告了3D和2D主干网络中剪枝层的FLOPs。对于仅在3D主干中执行 Voxel 稀疏化的 Baseline 方法,作者重新计算了相对于3D和2D主干的FLOPs减少,以便公平比较。除了表4中的结果,由于作者考察了剪枝检测Head的影响,作者报告了三种情况下相对于整个网络的FLOPs。

Main Results

表3:在KITTI val 数据集上,针对Car类别的DM3D性能比较。

作者在各种3D目标检测数据集上对剪枝方法进行了广泛的评估,包括Nuscene、ONCE和KITTI。正如作者在表1中展示的,在ONCE验证数据集上,与相同的FLOPs减少水平下的稀疏 Baseline 方法相比,DM3D在所有三个测试检测器(VPRCNN [26]、SECOND [34] 和 CenterPoint [38])上实现了更高的检测精度。在PVRCNN [26]和SECOND [34]模型上,作者在Car、Pedestrian和Cyclist类的所有精度指标上均优于 Voxel 剪枝方案[18]。作者还观察到,与PVRCNN的 Baseline 密集模型相比,mAP得分提高了2%。在CenterPoint [38]上,作者也比当前的SOTA [40]表现更好。在表2中,作者展示了Nuscenes数据集的结果。同样,与 Baseline 相比,在相同水平的FLOPs减少下,作者观察到mAP和NDS指标的绩效下降较少。在最近的VoxelNeXT网络上,与Ada3D Baseline [40]的0.75 mAP下降相比,作者对剪枝模型的mAP提升了0.41。KITTI数据集的比较结果展示在表3中。作者的方法继续在两个主流模型上与 Baseline 取得相当的性能,特别是对于Car AP Mod.得分。在Voxel R-CNN上,SPSS-Conv [19] 在Car AP Easy上表现出色,比密集Voxel R-CNN提高了0.28,而作者的DM3D方法带来的性能提升虽小但仍然是正的。

作者在图1中展示了作者在一个数据集上的整体检测性能。作者与两种 Baseline 方法Multi [18]和Ada3D [40]在不同FLOPs减少水平下的三种检测网络上进行比较。在CenterPoint上,作者将作者的剪枝方案的帕累托前沿与Ada3D进行了比较,这是唯一报告了其mAP性能的文献。作者观察到,使用DM3D方案,从原始CenterPoint模型中减少了3.89 FLOPs,同时仍然比Ada3D表现更好。在SECOND和PVRCNN上,作者在不同的检测类别上始终比 Baseline 表现更好,同时逐渐减少FLOPs,并为两个网络实现了大约2 的速度提升。

Ablation Study and Discussions

5.3.1 Controlling pruning rates of different parts in backbone.

如 表4 所示,作者探索了从检测模型的不同模块中剪除越来越多的冗余权重的可能性。从仅剪枝3D Backbone 网络开始,作者从SECOND模型的3D Backbone 中剪除了47.62%的FLOPs,相对于整个网络而言,总FLOPs减少了93.2%。然后作者同时剪枝3D和2D Backbone 网络,保持检测Head不受影响。最后,作者将头层也包括进剪枝中,使得总FLOPs减少了64.9%。直观地,作者注意到随着总FLOPs的减少,AP分数逐渐下降,但下降幅度非常小,表明在3D检测模型中仍然存在大量的权重冗余。

二阶失真 真实失真。 为了评估提出的基于海森的失真近似方案是否忠实于实际的网络输出检测失真,作者在KITTI val 数据集上使用校准集上实际网络预测 的失真数据 进行了实验,如原方程 (4) 所描述。如 表5 所示,两种方法显示出没有显著性能差异,验证了提出的海森近似方案的有效性。

定性结果。 在图3中,作者可视化了将DM3D剪枝方案应用于Nuscenes数据集上的VoxelNeXT的定性性能,生成了60.91 mAP。可以观察到,通过DM3D方法剪枝的3D检测器为LiDAR数据中的基本视觉类别生成了高质量的边界框,进一步验证了DM3D的有效性。

逐层稀疏分配结果。 图4显示了提出的DM3D的详细分配结果。在图4中,作者展示了在不同FLOPs约束水平下,DM3D优化的逐层稀疏水平。作者分析了三种不同网络的行为。由于作者的方法利用了权重冗余,作者能够一起优化3D和2D Backbone 的逐层稀疏,并自动决定稀疏分配。作者观察到,在PVRCNN上,作者的方案使得2D Backbone 中的层比3D部分更加稀疏,而在SECOND上,情况相反,2D Backbone 中保留了更多的权重。这意味着PVRCNN的表达能力主要来自于3D特征提取,而不是SECOND。不管网络如何,2D Backbone 的早期层在大多数剪枝情况下都得以保留,这可能是因为这些层对于从3D领域平滑传输信息到2D至关重要。随着FLOPs目标的减少,稀疏性分布保持大致相同,其中大多数关于检测失真的敏感层保持较低的稀疏率。

与 Voxel 剪枝相结合的权重剪枝。 作者提出的权重剪枝方案与现有的 Voxel 剪枝方法正交。为了探索这两种范式相结合的可能性,并可能进一步减少计算量,作者在 Voxel 剪枝方法SPSS-Conv [19] 上应用了DM3D权重剪枝,该方法剪除了50%的冗余 Voxel ,并从3D和2D Backbone 中进一步剪除了参数,相对于整个网络而言,FLOPs减少了50.66%。如表6所示,作者观察到使用DM3D从空间稀疏网络中剪除权重几乎没有性能下降,而加速从1.36 提升到1.97 ,显示了DM3D与现成的空间剪枝方法的通用性。

作者在补充材料中提供了更多实验细节和讨论。

6 Conclusions

作者提出了一种针对基于 Voxel 的三维目标检测模型的权重剪枝方案,这与目前基于空间冗余的方法正交。建立的剪枝方案基于检测失真的二阶泰勒近似,能够最小化剪枝模型上的检测局部性和置信度下降。

该方案还极其轻量级,获取海森信息具有多项式复杂度,逐层稀疏度搜索具有线性复杂度。

作者在各种三维检测基准上展示了新方案优于目前仅利用空间冗余的最先进方法。

特别是,作者在CenterPoint和PVRCNN模型上分别实现了超过 的浮点运算量减少,同时保持无损检测

将来,作者旨在进一步制定一个统一的剪枝方案,同时利用权重和空间冗余,以兼得两者之优势。

参考

[1].DM3D: Distortion-Minimized Weight Pruning.





扫描下方二维码,添加AI驾驶员

获取更多的大模型多模态等信息


浏览 18
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报