点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
点击进入→自动驾驶之心【3D目标检测】技术交流群
后台回复【SparseKD】获取本文论文及代码!!!
摘要
尽管在三维物体检测方面取得了长足的进展,但先进的三维检测器往往存在计算开销过大的问题。为此,我们探讨了知识蒸馏(KD)在开发高效3D对象检测器方面的潜力,重点关注流行的基于pillar和voxel的检测器。在缺乏完善的师生对的情况下,我们首先从模型压缩和输入分辨率降低的角度研究如何获得在准确性和效率之间取得良好平衡的学生模型。然后,我们建立了一个基准,以评估现有的KD方法在2D领域开发的3D对象检测基于6个良好的师生对。进一步,我们提出了一种改进的KD管道,其中包含了一种增强的logit KD方法,只对由教师分类响应确定的几个关键位置进行KD,以及一个教师引导的学生模型初始化,以便通过权重继承将教师模型的特征提取能力转移到学生身上。最后,我们在Waymo和KITTI数据集上进行了广泛的实验。我们表现最好的模型达到了65.75%的LEVEL 2 mAPH,超过了它的教师模型,只需要44%的教师在Waymo上的flops。我们最高效的模型在NVIDIA A100上运行51 FPS,比PointPillar快2.2倍,在Waymo上精度更高。代码可从https://github.com/CVMI-Lab/SparseKD获得。
1.简介
点云三维目标检测是一项基础性的感知任务,在自动驾驶、机器人、智慧城市等领域有着广泛的应用。近年来,得益于大规模3D感知数据集[12,2,45]和先进的point-based[36],pillar-based[24,51]和voxel-based的稀疏和不规则LiDAR点云场景表示[13,60],3D检测取得了显著进展[55,43,41,1,58]。然而,更强的性能往往伴随着更重的计算负担(参见图1),使得它们在实际应用程序中的采用仍然是一个具有挑战性的问题。
最近提高效率的尝试集中在为基于点的3D对象检测器开发指定的架构[6,59],而不能推广到广泛的基于pillar/voxel的方法[60,24,55,41,58,10]。在这里,我们的目标是一个模型不可知的框架,以获得高效和准确的三维物体检测器与知识蒸馏(KD)。由于KD的有效性、通用性和简单性,它已成为在各种2D任务中开发高效模型的事实上的策略[18,30,9,19,54],他通过从准确而计算复杂的教师模型中学习知识,提高了轻量级的、准确的学生网络的表现。尽管对2D任务进行了大量的研究,但由于尚未解决的研究挑战,KD用于高效3D物体检测的研究在很大程度上没有引起研究的注意。在本文中,我们首次系统地研究了用于开发高性能和高效的三维激光雷达探测器的知识蒸馏。
首先,我们研究如何在给定一个预先训练的教师3D对象检测器下,权衡效率和准确性获得轻量级的学生检测器,。与二维领域不同的是,在二维领域中,可以很容易地获得具有不同模型效率的成熟主干架构(例如,ResNet 18 vs. ResNet 50)[44,47,16],这种可扩展的3D backbone仍有待开发。这使得设计合适的学生模型成为一个不容忽视的问题。直观地说,一个好的学生模型应该在准确性和效率之间达成一个很好的妥协,因为一个差的学生模型可能有较差的能力或体系结构级别的缺点,导致进一步的知识蒸馏的困难。从这个角度来看,我们首先提出了性价比(CPR)来公平地评估一个模型的效率和能力。然后,我们研究了基于柱状结构和基于体素结构的不同因素,包括模型宽度(即通道数量)、深度(即层数)和输入分辨率。具体来说,我们发现基于柱的架构更倾向于输入级压缩(即降低输入分辨率),而基于体素的检测器更倾向于宽度级压缩,因为基于体素的检测器的空间冗余较少。
其次,我们实证研究了现有的知识蒸馏方法在这个新设定下的准确性教师模型和高效学生模型的有效性。由于之前没有针对这个问题的研究,我们在涵盖基于voxel和pillar的体系结构的6对师生对上对7种现有的知识蒸馏方法进行了基准测试。具体来说,我们评估了以下主要流:基于模型输出的logit KD提取(KD[18]和GID-L[9]),模仿中间特征的feature KD (FitNet [40], Mimic [26], FG[50]和GID-F[9]),以及利用教师预测的标签分配[35]的label KD。进一步,我们还研究了它们的协同效应,实证发现特征KD在单个方面优于其他KD方式,但无法与其他KD方式协同进一步提高3D检测性能。这可能是因为logit和标签KD可以为中间特征添加隐式正则化。我们通过实证研究得到的最佳策略是单独使用FG[50]或minic[26]。
第三,我们提出了简单、通用和有效的策略,以改进基于上述强KD baseline的三维目标检测知识蒸馏。针对3D场景中包含3D对象的小信息量区域和大量冗余背景区域之间的极端不平衡,我们设计了一种改进的logit KD方法,即关键位置logit KD,只对高度自信或教师预测最高的位置进行模仿。这些区域显示在实例中心或容易出错的位置附近。此外,为了促进知识从教师到学生的有效转移,我们开发了教师引导初始化(TGI),它重新映射预先训练的教师参数来初始化学生模型。该方法在继承教师模型的特征提取能力的同时,与logit和label KD技术很好地配合。
最后,我们对高效模型设计和知识蒸馏方法的实证研究在提供高效和有效的基于柱和体素的3D检测器方面取得了优异的性能。这在最大的带注释的3D对象检测数据集——Waymo[45]上得到了广泛的验证。如图1所示,我们的性能最好的模型CP-Voxel-S的性能甚至超过了它的老师模型(cp - voxel),而它的flops减少了2.4倍。此外,我们最有效的基于柱的模型(即CP-pillar -v0.64)可以达到51FPS和58.89%的mAPH,而之前最快的基于voxel/pillar的检测器——PointPillar在NVIDIA A100 GPU上运行23帧每秒和57.03% mAPH(见第D节)。我们的方法也被证明在从复杂的两级对象检测器到轻量级的单级检测器的知识转移方面是有效的。此外,我们的方法可以很好地推广到其他设置,如KITTI数据集与SECOND,以及第5.5节的先进压缩方法,第F节的其他检测器,甚至第E节的3D语义分割。
2.相关工作
3D lidar-based目标检测旨在从点云定位与识别3D物体。基于点的方法[43,6,56,59]采用原始点云并利用pointnet++[36]提取稀疏点特征并生成逐点的3D建议。基于pillar的工作[24,51]完成了鸟瞰图的体素化,并利用pointnet++提取pillar特征。基于体素的方法[60,55,41]对点云进行体素化,利用三维稀疏卷积网络获得体素特征,这是目前最流行的数据处理方法。此外,range-based的工作[1,46]被用于远程的、更快的检测。近年来,利用原始点数据处理设计高效的三维探测器引起了人们的关注[6,59]。在这项工作中,我们专注于探索模型不可知的知识蒸馏方法,以提高三维探测器的效率。
知识蒸馏旨在将知识从一个大的教师模型转移到一个轻量级的学生网络,这是高效深度学习的一个蓬勃发展的领域。Hinton等人提出了开创性的知识蒸馏(KD)[18]概念,它在输出水平(即预测logits)上蒸馏教师和学生之间的知识。另一个研究方向是通过储存在教师提供的信息性中间特征中的提示来帮助学生进行优化[40,20,23,17,22,5]。此外,一些研究通过强调instance-wise蒸馏和特征知识,尝试了二维物体检测中的蒸馏技术[26,50,9,37,57,35]。Mimic[26]、FG[50]和GID[9]采样的局部区域特征,使用box proposals或自定义指标进行前景感知特征模仿。
Label KD[35]利用教师信息对学生进行标签分配。最近,知识蒸馏也被用于将三维检测领域的多模态设置[14,31]或多帧设置到单帧设置[52]中的知识转移。然而,据我们所知,我们是第一个在最流行的设置中探索知识蒸馏的人:基于单帧3D lidar的对象检测。在这项工作中,我们提出了一个增强的3D检测KD管道,利用我们设计的高效3D检测器在流行的体素/柱数据表示上。我们的轻量级检测器CP-Voxel-S和CP-Pillar-v0.4的性能分别略优于最先进的教师检测器,同时需要更少的计算开销。
3.设计高效的学生网络
由于目前还没有现成的轻量级骨干体系结构来构建学生网络,我们对如何获得一个高效的模型进行了实证研究,该模型具有令人满意的效率和准确性权衡,以促进进一步的知识蒸馏。在本节中,我们将首先描述我们的实验设置和模型评估指标。然后,我们研究了获得高效模型的不同策略,并对如何为基于柱和基于体素的体系结构实现良好的权衡进行了深入分析。
3.1 基础设置和评估策略
基础设置:对于检测器体系结构,我们关注最先进的模型CenterPoint[58]的两个变体:CenterPoint-Pillar (CP-Pillar)和CenterPoint-Voxel (CP-Voxel),涵盖了最流行的基于柱和体素的3D检测器[55,60,24,51,41,42,10]。对于数据集,我们在最大的带标注的3D LiDAR感知数据集Waymo Open dataset (WOD)[45]上执行所有实验,并使用20%的训练样本进行快速验证。在模型训练方面,我们采用了流行的3D检测代码库OpenPCDet[49]的训练方案,以保证比较的公平性和标准化。注意,在这个阶段没有任何知识蒸馏的方法。
评价指标。根据[38,27],我们采用参数数量、flops、激活、延迟(即测试时间)和峰值GPU训练内存(批处理大小1)作为定量指标,从参数、计算和内存三个方面评价模型效率。注意,GTX-1060 GPU的激活、失败和延迟平均超过99帧。我们提供更多的延迟作为参考,因为它很大程度上取决于硬件设备和操作级优化(见第D节)。我们使用LEVEL 2 mAPH作为WOD[45]之后的性能评估指标。
由于我们的主要目标是设计在性能和效率之间有良好权衡的学生网络,我们提出了一个定量指标,即成本绩效比(CPR),以直接衡量这方面的模型。为了构建CPR,我们使用激活(行为)作为评估效率的指标,因为它与硬件加速器(如[38]所示的gpu)上的运行时密切相关。我们的CPR最后将活化比和mAPH结合如下:

其中下标s和t分别表示学生模型和教师模型。通过加权学生网络相对于教师网络的相对激活下降和性能下降比,CPR被归一化为[0,1]。请注意,性能退化项使用了三次幂,以惩罚导致严重性能退化的加速方法。我们认为,有必要确保高效检测器的相对良好性能,因为精度较差的模型可能会遭受体系结构级别的问题,这可能会导致发展知识蒸馏技术的困难,并禁止获得准确和高效的检测器。

3.2加速策略
为了获得高效的模型,我们研究了基于pillar和voxel的3d detectors的模型和输入分辨率压缩技术,如图2所示,并研究了它们对模型精度的影响。
压缩模型。在这里,我们通过沿着深度(即层数)或宽度(通道数)对给定的教师主干进行压缩,如图2右侧所示。为了减轻分层研究的繁琐负担,我们利用不同层之间的功能相似性,将其分为Pillar特征编码(PFE)模块、鸟瞰特征编码(BFE)模块和检测头(图2:右)三个主要模块,并在模块级进行分析。具体来说,PFE在将特征投影到鸟瞰图(bird eye’s view, BEV)网格之前对应于网络组件,包括稀疏三维卷积主干[13],用于在基于体素的体系结构中提取体素类特征,或pointnet++[36]用于从基于柱的检测器中的点编码柱类特征。在PFE之后,将特征聚合为柱状特征,并映射到二维BEV网格中。然后,采用二维卷积层组成的BFE在BEV网格上提取最终的检测特征图。最后,检测头从BFE中获取输出,产生最终的预测结果。对于宽度修剪,我们认为教师检测器的宽度为1.0,通过在给定宽度下减少通道的数量来瘦化学生的每个模块。深度裁剪也遵循这一范式,但仍然保持每个模块的最小结构(如下采样层和上采样层),以确保基本的检测能力。模型修剪结果如表1所示。

输入压缩。除了模型的复杂性,输入分辨率也会影响模型的效率[48,37]。例如,通过将输入分辨率减半,BFE模块和探测头中的二维卷积层的计算开销将减少到(见图2:左)。此外,在稀疏和大规模的3D场景中,背景区域较大,这自然具有冗余,并提供了以较粗分辨率处理数据进行输入压缩的可能性。具体来说,在构建voxel/pillar时,通过增加x-y平面上的体素/柱的大小来实现输入压缩。如表2所示,我们以教师体素大小的25%逐步增加学生体素大小,并记录他们的效率和准确性指标。
3.3 结论与分析
通过分析表1和表2所示的实验结果,我们对基于pillar和voxel的检测器的高效模型设计得出以下结论。
宽度与深度压缩:宽度级修剪是首选。如表1所示,对于CP-Pillar和CP-Voxel,在宽度上修剪网络通常比在深度上修剪网络获得更高的CPR。例如,由于性能更强,CP-Voxel (d)比CP-Voxel (g)需要少1.5倍的操作和少4倍的flop。由于3d目标检测网络比2d检测网络浅很多(例如CP-Pillar只有19个卷积层,CP-Voxel有35个卷积层),这使得深度压缩在3D检测中比宽度压缩更具挑战性和可扩展性。
按模块进行修剪选择:PFE模块需要减少的冗余最少。由于PFE、BFE和检测头的功能不同,它们在三维检测中可能有各自的冗余。对比表1中的CP-Voxel (c), (d)和(e)以及CP-Pillar (a)和(b),我们发现对PFE进行更少的修剪可以获得更高的CPR,这表明PFE模块中的网络参数对高性能至关重要,有必要保持PFE模块中的网络复杂性。
适合不同检测体系结构的压缩策略。对比表1和表2中不同压缩策略的结果,我们发现基于柱的架构(即CP-Pillar)更适合于输入压缩,而基于体素的架构(即CP-Voxel)更倾向于宽度级压缩。这种差异主要在于这两种探测器上BEV特征的空间冗余度不同。由于基于体素的检测器的PFE模块将输入分辨率降低到1/8,0.1m的输入体素大小将在BEV特征上放大到0.8m。因此,更少的空间冗余可以进一步压缩CP-Voxel。而CP-Pillar在Waymo上经常保持输入与BEV特征的分辨率相同[49,58],因此在BEV网格上具有较大的分辨率冗余,便于设计输入分辨率较粗的学生网络。
总结学生网络。在上述分析的推动下,我们最终得出了以下压缩学生模型,在效率和性能之间进行了良好的权衡。对于CP-Pillar,由于它有利于输入压缩,我们采用表2中体素大小为0.40、0.48和0.64的输入压缩模型,分别命名为CP-Pillar-v0.4、CP-Pillar-v0.48和CP-Pillar-v0.64。对于CP-Voxel,我们在表1中选择了它的宽度压缩模型(a) (b)和(d),分别命名为CP-Voxel-s,CP-Voxel- xs和CP-Voxel- xxs。

4.3D目标检测中的benchmark知识蒸馏
有了第3节中导出的学生网络,我们现在准备对用于3D对象检测的知识蒸馏进行实证研究。在这里,我们对7种流行的2D KD方法进行了基准测试,包括logit KD(即KD[18]和GID-L[9]),特征KD(即FitNet [40], Mimic [26], FG[50]和GID-F[9]),以及label KD,在6对师生上进行了综合分析。注意,GID和标签KD是最先进的2D KD检测方法,GID分为GID-L和GID-F,分别对应logit KD和特征KD。实现细节和超参数的值在第B节中描述。

图3:三维检测的整体KD范式。在整个蒸馏过程中,教师权重被冻结。Logit、feature和label KD分别用绿色、紫色和黄色表示。
4.1 范式
我们首先评估了现有的二维蒸馏方法的三维检测。如图3所示,我们用于3D检测的整体KD范式包含三个部分:logit、feature和label KD,分别利用教师指导响应、中间feature和label分配级别。
Logit KD是[18]介绍的最经典的蒸馏方法。它以教师模型的最终输出作为学生网络训练的指导,并与具体任务密切相关。在三维目标检测中,我们计算教师和学生输出之间的logit KD损失如下:

下标s和t表示学生和教师,和分别代表目标检测的sigmoid函数处理后的分类响应和边界框回归预测后的结果,κ是学生网络为了匹配教师网络输出进行的双线性插值操作,是3D 的detector的回归损失函数,是一个范围在[0,1]的mask值,用来突出重要的区域(见图3中绿色部分)。相比vanilla(香草)KD[18]模仿所有教师输出,GID-L只关注不同中选定的建议框和结果所涵盖的一些局部区域。
Feature KD是二维目标检测中的主要研究方向。它要求学生模型模仿教师模型的中间特征图。具体来说,我们在师生网络BFE的最后一层构建特征模拟,如下所示:

其中y是真值,ψ表示RoI对齐[15],φ是含有batch normalization的1×1卷积[21]和ReLU[34]块来对齐channel-wise feature的老师特征和学生之间的差异特性. 掩码用于表明关键区域,范围在0,1。考虑到检测过程中前景和背景区域的不平衡性,最近的一个流行的解决方案是强调对象区域进行蒸馏[26,50,9]。不同研究的特征KD方法主要是在这些关键区域的选择上有所不同。
label KD是一种新提出的蒸馏策略,它在学生[35]的label assignment阶段利用了教师的预测。由于KD标签简单通用,我们也将其作为KD基线方法。具体来说,给定一个点云场景x及其对应的ground truth (GT)集合y,标签KD首先从预训练的教师检测中获得预测和置信度分数。在用给定的阈值τ对进行滤波后,得到了一个高质量的教师预测集。它通过将GTs和自信的教师预测结合,生成一个教师辅助的GT集 = {y,},并对具有的学生进行标签分配。在学生检测器上,标记KD的最终分类和回归损失为和。
训练目标是三种流式KD技术的结合,具体如下:

其中λ、α1、α2、α3为不同目标间的权衡参数。请注意,每个操作(例如ψ、κ、mfeat、mcls等)的存在和实现在不同的KD方法中是不同的。
表3:基于Waymo的三维目标检测知识蒸馏。性能用LEVEL 2 mmap进行测量。最佳和次优方法分别用粗体和下划线表示。“我们的”表示我们在第5节中介绍的改进的知识蒸馏方法

4.2 结果与分析
基准分析。如表3所示,与无蒸馏方法相比,三种KD方法在六对师生组上都获得了性能提升。在7种KD策略中,基于特征的KD方法(即Mimic和FG)表现突出,显示了从教师提示中学习特征提取的强大潜力。此外,我们发现实例感知的局部区域模仿在三维检测的蒸馏中非常重要,因为巨大的背景区域压倒了稀疏实例的监督。例如,通过实例感知的模仿,Mimic、FG和GID-F始终优于完全模仿教师特征图所有空间位置的FitNet。通过比较实例感知GID-L和vanilla KD的结果,也可以在logit KD中得出类似的结论。
协同分析。虽然表3中的结果主要关注每种KD方式的个体有效性,但它们的协同效应也是一个重要的考虑因素,这有可能进一步提高学生的表现。如表4所示,虽然feature KD本身在CP-Voxel-XXS上的性能优于logit KD和label KD技术,但与其他KD方法结合使用,性能几乎无法提高,甚至会出现性能下降。相反,logit KD和label KD可以很好地配合,进一步提高学生的能力。这可能是由于logit KD和label KD隐式地对特征进行正则化,这可能与特征KD的优化方向相冲突,导致协同效果不佳。
表4:基于CP-Voxel-XXS的协同分析

5.方法
如表4所示,结合GID-L[9]、label KD[35]和FG[50]三个KD流的最佳方法,基础知识蒸馏的效果并不显著。接下来,我们提出了一种改进的3D目标检测KD管道,包括关键点位置logit KD,通过对稀疏关键点位置的模拟响应来缓解前景和背景区域之间的极端不平衡,标签KD,以及教师引导的初始化方案,进一步促进教师特征提取能力转移到学生模型。
5.1 方法
关键位置Logit KD。由于前景和背景区域的不平衡,之前的2D方法试图只对靠近或覆盖实例的像素强制输出级模仿[50,9]。然而,我们发现在3D场景中,由于小的信息实例和大的冗余背景区域之间的极端不平衡,它是次优的。例如,基于CP-Pillar,即使是一辆长10米,宽4米的车辆,在最终的468 × 468响应图中,也只占用32 × 13像素。3D检测中如此小的实例和大的感知范围需要更复杂的模仿区域选择,而不是之前在2D检测中粗糙的基于实例的掩蔽方式。因此,我们提出了关键位置(PP) logit KD,它利用教师分类响应或标签分配的线索来确定蒸馏的重要区域。
具体来说,关键位置的选择可以表述为在Eq.(2)中找到合适的。在这里,我们展示了三个变量来获得它。首先,高性能教师预测的置信度可以作为一个有价值的指标来找出学生的关键位置(即confidenece PP)。通过筛选阈值为τ的教师置信度,我们将≥τ的的i,j位设为1,否则设为0。同理,我们也可以选择教师分类响应P个中排名前K位作为关键位置,并将其转换为一个one-hot的embedded 。这些置信度的或排名靠前的位置被显示在物体中心或容易出错的区域附近。最后,受CenterPoint[58]中的高斯标签分配的启发,我们可以用一种平滑的方式定义关键位置,每个实例的中心-峰值高斯分布为(即高斯PP)。实验结果表明,PP logit KD的三种变体在三维检测中都取得了很好的效果。

图4:从CP-Pillar蒸馏到CP-Pillar-v0.64的通道方向L1归一化的可视化。
教师引导的初始化。如4.2节所述,特征KD方法本身优于其他KD方法,但其协同效果不足,阻碍了3D检测KD管道获得良好的性能。这可能是五种KD loss在中间特征的不同优化方向导致的。因此,我们探索是否有一种替代方式,也可以在特征提取方面利用教师的指导。由于特征图的值是由模型的权重决定的,所以从教师权重中寻找提示成为指导学生特征提取的一种选择。
因此,我们提出直接使用教师训练的权重作为学生网络的初始化,命名为教师引导初始化(TGI),通过继承教师模型来增强学生模型的特征提取能力。尽管这样的初始化对于输入压缩的学生(例如CP-Pillar-v0.64)是直观的,但它不能直接应用于修剪的学生(例如CP-Voxel-S)。因此,我们采用参数重映射策略FNA[11]将教师权重投影到学生参数上。以二维卷积层为例,师生参数表示为以及,其中并且.教师参数的前v和u通道直接分配给FNA的瘦学生网络。我们可视化了骨干特征的通道L1范数,将TGI提取的特征与其他策略进行比较。如图4所示,我们的TGI提取了与teacher相似的特征(见红框区域),但没有像KD特征那样天真地模仿所有教师通道(见白框区域)。我们认为,完全模仿所有教师特征可能会惩罚学生优化的架构或师生对之间的输入分辨率差异。我们的经验表明,我们的简单TGI策略在四种特征KD方法中分别实现了相当甚至更好的性能,并在六对师生对上显示了突出的协同效应(见第C节)。
5.2主要结果与比较
为了验证我们改进的KD管道,我们对所有六对师生进行了实验。如表3所示,我们改进的KD管道在所有设置下都超过了之前的KD策略,提高了0.7% ~ 1.9%,这要归功于我们增强的logit KD和更具协作性的TGI。CP-Voxel-S为我们的轻量级探测器配备了改进的KD管道,就mAPH而言,CP-Voxel-S获得了与CP-Voxel相当的性能,flops少了2.4倍。此外,CP-Voxel-XS的flop次数减少了3.1倍,性能下降仅为0.76%。此外,我们的蒸馏CP-Pillar-v0.4的flops减少了1.6倍,激活次数减少了1.5倍,甚至略优于CP-Pillar。CP-Pillar-v0.64只需要师模型25%的flops和29%的教激活,而实现55.82%的mAPH,性能仅比CP-Pillar下降3.27%。这些实验结果表明,知识蒸馏技术是提高高效三维探测器性能的一种有前途的技术。
5.3与其他检测器的比较
为了进一步证明我们设计的检测器和KD管道的效率和有效性,我们还将我们的蒸馏学生与其他检测器在完整的WOD上进行了比较。如表5所示,我们的CP-Voxel-S比它的老师CP-Voxel的参数少了约2.0倍,flop少了2.4倍,激活少了1.6倍,表现上甚至略好于教师。CP-Voxel-XS具有相似的延迟和更少的参数、flop和激活,比SECOND性能高出7.6%。我们的CP-Pillar-v0.64比GTX-1060上的PointPillar快2.4倍,性能提高1.8%。

5.4 跨阶段蒸馏
改进最先进的3D目标检测器的一种流行策略是采用目标proposal refinement head进行两阶段检测[41,10,42]。然而,尽管性能提高了3.5%,与CP-Voxel相比,PVRCNN++需要约2.2×参数,1.8×激活和3.5×延迟(见表6)。这样的计算和参数开销阻碍了最先进的两级3D探测器的实际应用。因此,在这里我们也研究了两级检测器的知识是否可以帮助单级检测器的学习。值得注意的是,这种跨阶段的蒸馏在2D和3D目标检测领域都是第一次尝试。如表6所示,利用预训练的PVRCNN++的提示,我们提取的CP-Voxel在推理期间实现了约1%的性能提升,而没有任何额外的计算和参数开销。
5.5更多场景泛化
为了证明我们的压缩和知识蒸馏方法的通用性,我们提供了其他数据集、检测器和压缩方法的实验。此外,我们还在E节和F节对将该方法推广到其他任务和更多的探测器进行了实验和讨论。
其他数据集和检测网络概论。如表7和表8所示,我们在第3.3节的压缩结论和改进的KD方法都可以很好地推广到KITTI[12]数据集,使用新的基于锚点的检测器SECOND。特别是,SECOND (a)比教师的表现高出0.5%左右,失败次数少3.5倍,显示了我们的结论和方法的普遍性。

预压缩方式概述。如表9所示,由于粗分辨率检测器具有更多的体系结构级冗余和更少的输入信息,CP-Pillar (f)通过结合模型和输入压缩策略实现了更高的CPR。此外,将KD方法应用于CP-Pillar (f)如表10所示,与冗余度较小的KD策略相比,虽然改进较少,但效率仍然更高。这表明,通过先进的压缩和蒸馏方法,我们可以得到更高效的检测器。

6.消融实验
在本节中,我们进行了广泛的消融实验,以深入研究我们改进的KD方法中每个组件的有效性。
组件消融。在这里,我们研究了我们的KD方法的每个组成部分及其协同效果。如表11所示,基于CP-Voxel-XXS, PP logit KD和TGI分别能获得1.4%左右的改善。当相互结合并标记KD时,它们进一步获得约1.6%的收益,显示出我们的组件的显著协同影响。相反,特征KD与其他KD技术结合使用时,性能甚至会下降0.2~0.6%。
TGI的调查。我们研究了不同参数重映射方式和教师对TGI的影响。除了FNA,我们还尝试了TGI的其他参数重映射策略,包括OFA[3]和Slim[32],通过设计指标选择重要通道。如表12所示,基于CP-Voxel-XS, OFA和Slim的结果不如FNA,因为指示器引导的通道选择不能确定跳过连接[16]的一致通道映射,而FNA通过简单地选择所有层的开始通道而存活。另外,CP-Voxel-XXS仅通过继承CP-Voxel-XS的参数而不是CP-Voxel进行改进,这表明教师和学生之间存在较大的架构差异,阻碍了TGI的有效性。

PP Logit KD的不同变体。在这里,我们基于CP-Voxel-S分析了章节5.1中PP logit KD的不同变体(即根据教师置信度、响应排名或软高斯实例掩码选择关键位置)。之前的粗实例感知响应模拟方法GID-L获得了约0.7%的改进,而所有三个PP logit KD变体都获得了约1.6% ~ 1.9%的改进。这证明了在输出级蒸馏中只关注关键位置进行3D检测的重要性。

Label KD分析。虽然最近的工作[35]提出了KD标签,但它只是将其改进归因于老师的“黑暗知识”。在此,我们试图分析基于CP-Pillar-v0.48的教师预测如何帮助学生,其中label KD表现最好。如表14所示,(b)仅结合教师预测进行分类标签分配,收益较小,说明标签KD主要有利于学生的回归目标。当去除与教师预测高度重叠的GTs时,(c)仍然获得约0.8%的收益,这表明教师预测中更可实现的回归目标有利于学生优化。最后,通过去除同一BEV网格中对象中心的教师预测(即单个位置重复目标),我们发现(d)相比(e)的性能有所下降,这表明重复回归目标也可以提高学生的回归能力。
7.结论
通过大量的实验结果和分析,我们研究了知识蒸馏作为一种获得高效3D探测器的通用方法的潜力。在设计高效的学生模型时,基于柱的检测器更倾向于输入压缩,而基于体素的检测器更适合于宽度压缩。此外,我们提出了关键位置logit KD和教师引导初始化的方法来增强3D KD。我们性能最好的检测器比它的老师更少2.4倍的失败,我们最有效的检测器比之前在NVIDIA A100上的最快的基于体素/柱的检测器快2.2倍,性能更高。我们希望我们的基准和分析可以启发未来对这个问题的研究。
参考
[1] Towards Efficient 3D Object Detection with Knowledge Distillation
往期回顾
Radar-LiDAR BEV融合!RaLiBEV:恶劣天气下3D检测的不二之选
【知识星球】日常干货分享
【自动驾驶之心】全栈技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、规划控制、模型部署落地、自动驾驶仿真测试、硬件配置、AI求职交流等方向;
添加汽车人助理微信邀请入群
备注:学校/公司+方向+昵称
自动驾驶之心【知识星球】
想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!