【蒸馏(1)】UniDistill:用于BEV 3D检测的通用跨模态蒸馏框架!
技术趋势洞察:
蒸馏工作反映出两个方向:一是通过蒸馏弥补纯视觉BEV与多模态模型的性能差距(接近LiDAR效果但更低成本);二是将蒸馏从感知层扩展到决策层(如thinktwice的端到端驾驶),这可能成为自动驾驶模型压缩和部署的关键技术。
背景:
几乎所有论文都强调如何将激光雷达(LiDAR)或雷达(Radar)等模态的知识迁移到纯视觉BEV模型中(如BEVDistill、UniDistill)【跨模态蒸馏】,解决视觉模型在深度估计和3D几何理解上的短板。UniDistill"通用"可能指设计了模态无关的蒸馏损失函数,可适配不同传感器组合(如相机+雷达 vs 纯视觉)。
论文:UniDistill: A Universal Cross-Modality Knowledge Distillation Framework for 3D Object Detection in Bird’s-Eye View
发表在:CVPR2023
代码:https://github.com/megvii-research/CVPR2023-UniDistill
Abstract
在本文中,我们提出了一个通用的跨模态知识蒸馏框架 (UniDistill) 来提高单模态检测器的性能。具体来说,在训练期间,UniDistill 将教师和学生检测器的特征投射到 Bird’s-Eye-View (BEV) 中,这是不同模态的友好表示。然后,计算三个蒸馏损失以稀疏对齐前景特征,帮助学生从老师那里学习,而不会在推理过程中引入额外的成本。利用 BEV 中不同检测器的类似检测范式,UniDistill 轻松支持 LiDAR 到摄像机、摄像机到 LiDAR、融合到 LiDAR 和融合到摄像机的蒸馏路径。此外,三个蒸馏损失可以过滤未对齐的背景信息的影响,并在不同大小的物体之间进行平衡,从而提高蒸馏的有效性。在nuScenes上进行的大量实验表明,UniDistill有效地将学生检测器的mAP和NDS提高了2.0%∼3.2%。
1. Introduction
3D 物体检测在自动驾驶和机器人导航中起着至关重要的作用。通常,流行的 3D 检测器可分为 (1) 基于 LiDAR [18, 33, 34, 42, 43] 或相机 [1, 13, 20, 24] 的单模态检测器和 (2) 基于两种模态的多模态检测器 [22, 30, 36, 37]。通过融合两种模态的互补知识,多模态检测器优于单模态检测器。然而,同时处理两种模态的数据不可避免地会引入额外的网络设计和计算开销。更糟糕的是,任何模态的故障都会直接导致检测失败,阻碍这些检测器的应用。
作为一种解决方案,最近的一些研究引入了知识蒸馏,将其他模态的互补知识转移到单模态检测器。在 [6,15,46] 中,如图 1(a) 和 1(b) 所示,对于单模态学生检测器,作者首先对不同模态进行数据转换,以训练结构相同的老师。然后利用老师通过指导学生产生相似的特征和预测结果来传递知识。这样,单模态学生就可以获得多模态知识并提高性能,而无需在推理过程中产生额外成本。
尽管现有方法可以有效地传递跨模态知识,但由于老师和学生的模态都受到限制,因此其应用受到限制。在 [6] 中,老师和学生的模态固定为 LiDAR 和相机,而在 [15,46] 中,它们被确定为 LiDAR-相机和 LiDAR。然而,3D 物体检测领域的传感器组合导致不同检测器的应用多样化且复杂。由于老师和学生的模态都受到限制,这些方法难以应用于更多情况,例如,[6] 中的方法不适合将知识从基于摄像头的老师转移到基于 LiDAR 的学生。
为了解决上述问题,我们提出了一个通用的跨模态知识蒸馏框架 (UniDistill),帮助单模态检测器提高性能。我们的动机是基于这样的观察:不同模态的检测器在鸟瞰图 (BEV) 中采用类似的检测范式,在将低级特征转换为 BEV 后,BEV 编码器会进一步对高级特征进行编码,检测头会生成响应特征以执行最终预测。
UniDistill 利用相似性构建了通用知识蒸馏框架。如图 1© 所示,在训练期间,UniDistill 将老师和学生检测器的特征投射到统一的 BEV 域中。然后,对于每个地面真实边界框,计算三个蒸馏损失来传递知识:(1)特征蒸馏损失,通过对齐 9 个关键点的低级特征来传递语义知识。(2)关系蒸馏损失,通过对齐 9 个关键点的高级特征之间的关系来传递结构知识。(3)响应蒸馏损失,通过在类高斯掩模中对齐响应特征来缩小预测差距。由于对齐的特征通常由不同的探测器产生,因此 UniDistill 可轻松支持 LiDAR 到相机、相机到 LiDAR、融合到 LiDAR 和融合到相机的蒸馏路径。此外,这三个损失稀疏地对齐前景特征以过滤未对齐的背景信息的影响并在不同尺度的对象之间进行平衡,从而提高蒸馏效果。
总结起来,我们的贡献有三点:
-
我们在友好的 BEV 领域为单模态 3D 物体检测器提出了一个通用的跨模态知识蒸馏框架 (UniDistill)。通过不同模态知识的迁移,单模态检测器的性能得到了提高,而无需在推理过程中增加额外成本。
-
得益于 BEV 中类似的检测范式,UniDistill 支持 LiDAR 到相机、相机到 LiDAR、融合到 LiDAR 和融合到相机的蒸馏路径。此外,设计了三个蒸馏损失来稀疏对齐前景特征,过滤背景信息错位的影响并在不同大小的物体之间实现平衡。
-
在 nuScenes 上进行的大量实验表明,UniDistill 可以有效地将学生检测器的 mAP 和 NDS 提高 2.0%∼3.2%。
2. Related Work
2.1. 3D Object Detection
当前主流的 3D 物体检测器通常可分为两类:(1)基于 LiDAR [23, 25, 27, 32, 43] 或相机 [13, 20, 28, 38–40] 的单模态检测器;(2)同时使用两种数据作为输入的多模态检测器 [14, 22, 30, 44]。其中一类基于 LiDAR 的检测器是基于网格的 [17,26,41,43,47],其中非结构化的 LiDAR 点首先分布到规则网格中。作为开创性的工作,VoxelNet [47] 对点云进行体素化,执行 3D 卷积,将特征重塑为 BEV 特征,然后提出边界框。PointPillars [17] 用柱子代替体素来编码点云,避免了耗时的 3D 卷积运算。 CenterPoint [43] 提出了一种无锚检测头,并获得了更好的性能。
大多数基于相机的检测器都像 2D 检测一样在透视图中执行检测。 在 [38] 中,作者提出了 FCOS3D,它是 FCOS [35] 在 3D 物体检测领域的扩展。 同样,在 [40] 中,继 DETR [2] 之后,作者提出了 DETR3D 以注意模式执行检测。 最近,一些工作 [13, 20] 被提出来通过应用 LiftSplat-Shoot [29] 将图像特征从透视图转换为 BEV 来检测 BEV 中的物体,并取得了令人满意的改进。
通过融合 LiDAR 点和图像的互补知识,基于 LiDAR 相机的检测器优于上述单模态检测器。 利用 2D 检测结果,F-PointNet [30] 获得候选物体区域,收集内部的点,然后执行基于 LiDAR 的检测。 AVOD [16] 和 MV3D [5] 通过 ROI 池化执行与对象提议的模态融合。UVTR [19] 统一了体素空间中的多模态表示,用于基于变换器的 3D 对象检测。最近最先进的检测器 BEVFusion [22] 提出将图像和 LiDAR 特征转换为 BEV,以进行模态融合和结果预测。
我们的工作受到最近检测器在 BEV 中采用类似检测范式的启发。将特征转换为 BEV 后,遵循类似的过程,其中 BEV 编码器进一步编码高级特征,检测头产生预测结果。检测范式的相似性使得在通用框架中进行跨模态知识提炼成为可能。
2.2. Knowledge Distillation
知识蒸馏最初是在 [10] 中提出的,用于模型压缩,其主要思想是将学习到的知识从教师网络转移到学生。不同的作品对知识有不同的解释,包括输出层 [10] 的软目标和中间特征图 [31]。由于知识蒸馏的有效性,它已在各种计算机视觉任务中得到广泛研究,例如 2D 物体检测 [7, 9, 45] 和语义分割 [11, 21]。
最近,它被引入到 3D 物体检测中,用于将知识转移到单模态检测器。在 [6] 中,作者提出通过使用投影到透视图的 LiDAR 来训练另一个基于摄像头的老师,将 LiDAR 点的深度知识转移到基于摄像头的学生检测器。在 [15, 46] 中,PointPainting [36] 老师被用来指导 CenterPoint 学生产生类似的特征和反应。
虽然这些方法对于知识转移是有效的,但老师和学生的模态受到限制。然而,不同检测器的多样化和复杂应用将限制它们的应用。相反,我们提出的 UniDistill 将检测器的特征投射到 BEV,并支持 LiDAR 到相机、相机到 LiDAR、融合到 LiDAR 和融合到相机的蒸馏路径。
我们注意到最近的一项工作 BEVDistill 也在 BEV 中执行跨模态蒸馏。然而,它也对老师和学生的模态施加了限制,导致应用受限。此外,它们的主要蒸馏损失是为基于变压器的检测器设计的。不同的是,我们的 UniDistill 旨在提高基于 CNN 的检测器的性能
3. Methodology
在本节中,我们详细描述了我们提出的 UniDistill。在第 3.1 节中,我们简要介绍了 BEV 中不同检测器的类似检测范式,其中一些低级 BEV 特征是通过视图变换获得的,并进一步编码为高级特征和响应特征。在第 3.2 节中,我们描述了用于跨模态知识蒸馏的 UniDistill 框架。对于教师和学生检测器,在 BEV 中获得其特征后,计算三个对齐前景特征的蒸馏损失以执行知识转移。
3.1. Preliminary
最近的检测器在 BEV 中采用了类似的检测范式,主要区别在于获取低级 BEV 特征的方法。
对于 [13, 20] 中提出的基于相机的检测器,在逐像素深度估计之后,通过 [29] 中提出的视图变换操作将图像特征从透视图投影到 BEV 中,以形成低级 BEV 特征Fc.
对于 [17, 43, 47] 中提出的基于 LiDAR 的探测器,非结构化点云首先分布到规则的体素或柱子上。然后提取体素或柱子的特征,并通过将同一列中的体素特征连接起来,将其重塑为低级 BEV 特征 Fl
在[22]中,作者提出构建一个激光-相机 的检测器,通过融合低级别低级 BEV的Fc和Fl。通过全卷积网络去处理融合后的特征Ffuse.
本研究的方案。一个BEV编码器是把低级别特征,作为输入,进行更远的编码 得到高级别特征Fhigh.然后检测器头去计算分类和回归heatmaps
3.2 蒸馏
利用 BEV 中上述类似的检测范式,我们提出了一个通用的跨模态知识蒸馏框架 (UniDistill),它可以轻松支持 LiDAR 到相机、相机到 LiDAR、融合到 LiDAR 和融合到相机的蒸馏路径。UniDistill 的概览如图 2 所示。在训练期间,将不同模态的老师和学生的低级特征转换为 BEV 后,计算三个蒸馏损失。最终将损失与原始检测损失相结合以训练学生。通过这种方式,学生可以模仿老师学习跨模态知识,从而获得更好的检测结果,而不会在推理过程中引入额外的成本。
将老师和学生的模态分别表示为 MT 和 MS,这三个蒸馏损失可以解释如下:
(1)第一个损失“feature distillation”,语义知识
F
M
T
F_{MT}
FMT,
F
M
S
F_{MS}
FMS,通过逐点对齐每个地面真实边界框的 9 个关键点的特征。
(2)第二个损失“relation distillation”,通过分组对齐每个地面真实边界框的 9 个关键点之间的关系,将高级 BEV 特征
F
M
T
F_{MT}
FMT 中的结构知识转移到
F
M
S
F_{MS}
FMS。
(3)第三个损失“response distillation”,通过在每个地面真实边界框的Gaussian-like mask 中将heatmaps (
F
M
S
c
l
s
,
F^{cls}_{MS},
FMScls,F^{reg}{MS}
)
与
(
) 与 (
)与(F{cls}_{MT}$,$F{reg}{MT}$) 对齐,缩小预测差距。
3.2.1 Feature Distillation
由于低级 BEV 特征为进一步处理提供了语义知识,一种直观的方法是将 F M T F_{MT} FMT与 F M S F_{MS} FMS完全对齐,但是,不同模态之间的背景信息错位会降低有效性。更糟糕的是,由于不同的物体占据不同大小的区域,它将更多地关注对齐大物体的特征而不是小物体。
为了减轻上述影响,在特征蒸馏中,我们仅对齐前景物体的特征,并为每个物体平等地选择 9 个关键点进行对齐。具体而言,在 BEV 中,一个前景物体的边界框可以看作是一个 2D 旋转框,并由其角 {(xi,yi)} 的坐标描述。基于四个角,可以计算出 4 条边的中点和框的中心的坐标。我们将这 9 个点集合为 {(xi,yi)},并将它们视为边界框的关键点。对于每个 pi=(xi,yi),我们计算其在
F
M
T
F_{MT}
FMT与
F
M
S
F_{MS}
FMS上的特征差异,以形成特征蒸馏损失:
此外,我们注意到,当教师检测器的性能比学生检测器差时,使用原始特征蒸馏甚至会降低最终性能。受到[3,31]中特征自适应操作的启发,在这种情况下,我们还在 F M S F_{MS} FMS之后引入了一个自适应层Adapt1,它是一个单层卷积网络,以产生新特征F,并使用F和 F M T F_{MT} FMT来计算特征蒸馏。在推理过程中,自适应层被删除,原始的低级特征 F M S F_{MS} FMS被进一步处理以生成预测。因此,学生检测器的结构没有修改。
3.2.2 Relation Distillation
高级特征可以提供有关场景结构的知识,我们提出关系蒸馏来对齐
F
M
T
F_{MT}
FMT与
F
M
S
F_{MS}
FMS 中物体不同部分之间的关系。具体来说,对于一个地面真实边界框,我们还认为它的 9 个关键点 {(xi,yi)}与特征蒸馏中的相同。我们首先在
F
M
S
F_{MS}
FMS上收集它们的特征并计算它们之间的关系以形成大小为 9×9 的关系矩阵 RelMatMS:
Φ
(
)
Φ()
Φ()是 cosine 相似函数。
同样获得真值的关系矩阵 RelMatMT。然后计算损失(完全对齐):
当老师的表现比学生差时,我们在
F
M
S
F_{MS}
FMS 之后引入另一个单层卷积网络作为自适应层 Adapt2
3.2.3 Response Distillation
基于高级 BEV 特征,检测头将生成分类热图 F c l s F_{cls} Fcls 和回归热图 F r e g F_{reg} Freg。
我们进一步收集
F
c
l
s
F_{cls}
Fcls 中每个位置的最大值以形成新的热图
F
c
l
s
m
a
x
F_{clsmax}
Fclsmax:
其中 H 和 W 是热图的高度和宽度,C 是要预测的类数,T 是回归目标的数量。
然后将 F c l s m a x F_{clsmax} Fclsmax 与 F r e g F_{reg} Freg 连接起来得到响应特征 F r e s p F_{resp} Fresp。这样,我们得到了老师和学生的响应特征,并计算响应蒸馏损失以将 F r e s p M S F_{respMS} FrespMS 与 F r e s p M T F_{respMT} FrespMT 对齐。为了减轻背景信息错位的影响,我们只对齐靠近前景物体的部分响应特征。
我们发现 F r e s p M T F_{respMT} FrespMT的真值中心点的质量是足够指导 F r e s p M S F_{respMS} FrespMS 。
因此,对于一个地面真实边界框,我们使用[6]中相同的方法生成一个高斯掩模,收集掩模内的响应值并计算响应蒸馏损失LResp来对齐它们:
其中 Mask 是计算出来的类高斯掩模,并且只有靠近真实边界框的区域才为非零。
3.2.4 Total Objectives
在计算每个真实边界框的蒸馏损失后,我们将所有边界框的蒸馏损失平均化。最后,我们将学生的检测损失 LDet 与蒸馏损失相结合,作为总损失 LTotal:
总结
我们提出了一个通用的跨模态知识蒸馏框架(UniDistill),以提高 BEV 中单模态 3D 物体检测器的性能。UniDistill 将老师和学生的特征投影到统一的 BEV 域中,然后计算三个蒸馏损失来对齐特征以进行知识转移。利用 BEV 中类似的检测范式,UniDistill 支持 LiDAR 到相机、相机到 LiDAR、融合到 LiDAR 和融合到相机的蒸馏路径。此外,提出的三个蒸馏损失稀疏地对齐前景特征以过滤未对齐的背景信息并在不同大小的物体之间进行平衡。大量实验表明,UniDistill 可以有效地提高学生检测器的性能。受分块蒸馏优点的启发,未来,我们计划以分块的方式利用蒸馏损失来加速,以进一步探索 UniDistill 的潜力。