如何提升小计算量的BEV模型性能?也许DistillBEV是个答案!

人工智能 新闻
DistillBEV提出通过训练基于多目 BEV 的学生检测器模仿训练有素的基于 LiDAR 的教师检测器的特征来增强其表示学习。并提出了有效的平衡策略,以强制学生专注于从老师那里学习关键特征,并将知识转移到具有时间融合的多尺度层。

本文经自动驾驶之心公众号授权转载,转载请联系出处。

笔者的个人理解

BEV模型今年被越来越多自动驾驶公司落地上车,虽然Nvidia的Orin平台和地平线的J5系列算力都比较大,但由于功能模型较多,很多公司都在想办法将模型做小,但小模型计算量的减少会导致性能下降,那么如何提升小模型性能呢?领域常见的方法主要是半监督和蒸馏。今天的主角是知识蒸馏任务,蒸馏又分为同构蒸馏和异构蒸馏,由于现在大多方案是纯视觉,通过点云大模型蒸馏视觉小模型受到了许多团队的认可,是一种无痛涨点的方法。

如何设计蒸馏模型呢

多目BEV 3D感知方案由于相机的较低成本使其在自动驾驶领域大规模生产中成为主流,单/多目 BEV 和基于 LiDAR 的 3D 目标检测之间存在明显的性能差距。一个关键原因是 LiDAR 可以捕获准确的深度和其他几何测量结果,而仅从图像输入推断此类 3D 信息是非常具有挑战性的。DistillBEV提出通过训练基于多目 BEV 的学生检测器模仿训练有素的基于 LiDAR 的教师检测器的特征来增强其表示学习。并提出了有效的平衡策略,以强制学生专注于从老师那里学习关键特征,并将知识转移到具有时间融合的多尺度层。DistillBEV提出了 BEV 中的跨模式蒸馏,它自然地适用于 LiDAR 和基于多目 BEV 的探测器之间的知识传输。除此之外,有效的平衡设计,使学生能够专注于学习多尺度和时间融合的教师的关键特征。DistillBEV的方法比学生模型有了显着改进,在 nuScenes 上实现了最先进的性能。

知识蒸馏在检测任务中为什么重要

基于相机

该领域的许多方法基于单目视觉范式,如FCOS3D和DD3D,类似于2D目标检测。最近,基于多目的BEV(鸟瞰图)框架因其固有的优点而成为趋势。在这个框架中,视图转换模块起着将多视图图像特征转换为BEV的基础性作用。一些方法采用逆透视映射或多层感知器来执行从透视视图到BEV的转换。引入LSS来通过相应的逐bin深度分布提升图像特征的方法如BEVDet,BEVDet4D和BEVDepth。BEVFormer中提出,利用交叉注意力来查找和汇聚跨目的图像特征。此外,BEV表示提供了在多个时间戳上改善目标检测和运动状态估计的更理想的场景特征连接。BEVDet4D和BEVDepth通过空间对齐融合先前和当前的特征,而BEVFormer通过软注意力进行时间上的融合。

基于Lidar

由于该领域的大多数方法将不规则点云转换为规则网格,如柱状物或体素,因此自然而然地在BEV中提取特征。VoxelNet对每个体素内聚合的点特征应用3D卷积。SECOND利用稀疏的3D卷积提高计算效率。PointPillars提出将高度维度折叠并使用2D卷积以进一步减少推理延迟。CenterPoint是一种流行的无锚点方法,将目标表示为点。PillarNeXt表明,基于柱状物的模型在架构和训练方面的现代化设计在准确性和延迟方面都优于体素对应物。广泛使用融合多个传感器来增强检测性能。MVP是CenterPoint的传感器融合版本,通过虚拟图像点增强。

知识蒸馏

这项技术最初是为了通过将来自较大教师模型的信息传递给紧凑的学生模型来进行网络压缩而提出的。该领域中的大多数方法最初是为图像分类而设计的,但对于图像目标检测的改进却很少。最近一些方法已成功地将知识蒸馏应用于2D目标检测。然而,对于3D目标检测的蒸馏研究较少,特别是当教师和学生模型来自不同模态时。与DistillBEV提出的方法最相关的工作是BEVDistill,该工作引入了一种密集的前景引导特征模仿和一种稀疏的实例级蒸馏,以从激光雷达传递空间知识到多目3D目标检测。与这种方法相比,DistillBEV的方法通过引入区域分解和自适应缩放实现了更精细的蒸馏。此外,DistillBEV的设计适应多尺度蒸馏,可以增强在不同特征抽象层面上的跨模态知识传递。

怎么设计一个BEV下的蒸馏网络

区域分解

根据GT以及teacher与student之间的差异程度进行区域划分,着重学习有GT区域和diff区域

在 2D 目标检测中由于前景和背景区域之间的不平衡,简单地在教师和学生之间进行特征对齐很难取得改进。这种现象在 3D 目标检测中更为严重,因为绝大多数 3D 空间没有目标。通过对 BEV 特征图的统计发现,平均不到 30% 的像素是非空的,意味着其中只有一小部分包含感兴趣的目标。为了进行有效的知识迁移,DistillBEV引入了区域分解来指导学生应重点关注关键区域,而不是平等对待所有区域。具体来说,将特征图分为四种类型:真阳性(TP)、假阳性(FP)、真阴性(TN)和假阴性(FN)。因此,定义区域分解掩模:

其中是特征图上的坐标,用来控制 FP 区域中像素的相对重要性。

这种分解使DistillBEV的方法能够灵活地为不同区域分配不同的重要性。考虑地面真值框覆盖的区域(即 TP 和 FN 区域的并集)是很简单的,它们准确地传达了前景目标的特征。然而,DistillBEV也以不同于 TN 区域的方式对待 FP 区域。当教师模型在某些区域产生高激活时,即使它们是 FP(例如,一根杆子被误检测为行人),鼓励学生模型模仿此类特征响应仍然有利于整体 3D 几何学习。可以通过对教师检测器和地面真实标签生成的置信度热图进行阈值化来找到 FP 区域:

其中和分别对应于从教师模型和地面实况获得的热图,是热图阈值化的超参数。

尺度自适应

目标面积越大,越缩放(大的前景),FP,TN区域(背景)被缩放,生成weight map约束损失

在 BEV 中从教师向学生提取知识的另一个挑战是各种目标尺寸的巨大跨度。例如,从鸟瞰角度看,一辆公共汽车的体积是行人的几十倍。此外,墙壁和植物等背景淹没了非空白区域。因此,背景目标和巨大的前景目标将主导蒸馏损失,因为更多的特征来自于它们。希望反映对蒸馏损失具有相似贡献的不同大小的目标或类别。引入自适应缩放因子来实现此目标:

其中  是 BEV 中边界框长度为  和宽度为  的第 k 个GT(TP 或 FN),   分别表示落入 FP 和 TN 区域的像素数。

空间注意力

由teacher的空间注意力以及student的多尺度自适应后(尺度对齐)的空间注意力构成一张attention map用于后续约束损失

DistillBEV采用基于提取的教师和学生特征的空间注意力图来进一步选择更多信息丰富的特征来关注。空间注意力图的构建方式如下:

是特征图,是沿着channel维度的特征图的平均池化结果,是 softmax 对所有空间位置的归一化注意力,τ是调整分布熵的温度。DistillBEV通过考虑教师  和学生  的特征图来获得最终的空间注意力图:

其中,是teacher特征图到student特征图的自适应模块。

多尺度蒸馏

蒸馏(尺度对齐后的)多尺度,但是区域划分基于有语义表达能力的head层

网络中不同深度的层编码不同的抽象特征,结合了不同级别的特征,可以更好地检测各种大小的对象。为了实现教师和学生之间的全面对齐,DistillBEV采用这种思想对基于CNN的模型进行多尺度的特征蒸馏。但教师和学生网络是分别设计的不同的架构,使得找到中间特征对应关系变得非常重要。例如,教师中的 BEV 特征图通常是学生中 BEV 特征图大小的 2 倍或 4 倍。简单地对齐相同分辨率的特征会导致特征抽象级别的不兼容。因此,DistillBEV引入了一个由上采样和投影层组成的轻量级适应模块,以在与类似级别的教师特征对齐之前映射学生特征。还发现,早期层的特征模仿不利于蒸馏,这是因为点云和图像之间的模态差距引起的表示差异在早期阶段仍然很大。因此,DistillBEV仅在 BEV 的最后一个编码层(即 pre-head 特征)识别和利用 FP 区域。这种设置效果最好,推测是因为最后一层出现的高级语义特征可以更好地表达 FP 区域。

蒸馏损失

上述设计均被用于雷达teacher对相机student的损失部分

DistillBEV用包括分类和回归的原始损失以及整体蒸馏损失来训练学生网络,首先定义教师  和学生  之间第  个蒸馏层的特征模仿损失

其中,,是区域分解掩模的逻辑补,表示自适应缩放因子,是空间注意力图,αβ是对这两项进行加权的超参数。

DistillBEV利用注意力模仿损失来强制学生学习生成注意力模式,与教师相似,因此关注教师网络认为更重要的空间位置:

总损失:

其中 是选择执行蒸馏的层数,λ控制两个损失函数之间的相对重要性。

时间融合的蒸馏

多相机 BEV 中表示的一项理想特性是促进多个时间戳特征的融合。利用时间融合开发的方法通过利用重要的动态线索极大地改进了 3D 对象检测和运动估计。至于基于激光雷达的模型,通常的做法是通过自运动补偿直接将过去的扫描转换到当前坐标系来融合多个点云,并将相对时间戳添加到每个点的测量中。因此,在DistillBEV的方法中进行时态知识迁移是很自然的,因为教师可以很容易地与使用时态信息的学生兼容。在实践中,对基于单帧和多帧的学生模型采用统一的教师模型,以通过时间融合进行蒸馏。

DistillBEV优势在哪里?

我们在大规模自动驾驶基准测试nuScenes上进行了评估。该数据集包括大约20秒的1,000个场景,由32束激光雷达和20Hz和10Hz频率下的6个目捕获。对于3D目标检测,总共有10个类别,标注以2Hz的频率提供。按照标准评估划分,分别使用700、150和150个场景进行训练、验证和测试。遵循官方评估指标,包括平均精度(mAP)和nuScenes检测分数(NDS)作为主要指标。还使用mATE、mASE、mAOE、mAVE和mAAE来测量平移、尺度、方向、速度和属性相关的错误。

教师和学生模型 为了验证DistillBEV方法的普适性,考虑了各种教师和学生模型。采用流行的CenterPoint或其传感器融合版本MVP作为教师模型。至于学生模型,选择BEVDet、BEVDet4D、BEVDepth和BEVFormer作为代表性的学生模型,它们代表了从CNN到Transformer、从base版本到时间("4D" 以融合时间)和空间("Depth" 以增强可信赖深度估计)扩展的广泛范围的学生模型。这些模型共同形成8种不同的教师-学生组合。

在PyTorch中实现,并使用8个NVIDIA Tesla V100 GPU进行网络训练,批量大小为64。采用AdamW作为优化器,学习率采用2e-4的余弦调度。所有模型均经过24个时期的训练,采用CBGS策略。遵循BEVDet和BEVDepth,在图像和BEV空间中都应用了数据增强。按照标准评估协议设置检测范围为[-51.2m, 51.2m]×[-51.2m, 51.2m]。ResNet-50在ImageNet-1K上预先训练,用作图像的骨干网络,图像大小处理为256×704,除非另有说明。采用通过教师的参数初始化学生的检测头,以实现更快的收敛。

Main Results

nuScenes验证集上基于多个base采用DistillBEV结果:

图片

nuScenes验证集:

nuScenes测试集:

Ablation Studies

Visualization

参考:DistillBEV: Boosting Multi-Camera 3D Object Detection with Cross-Modal Knowledge Distillation

原文链接:https://mp.weixin.qq.com/s/qlHnKpCDrbP4WQs9GCxXLA

责任编辑:张燕妮 来源: 自动驾驶之心
相关推荐

2024-09-27 10:31:22

2017-05-02 21:03:04

深度学习几何学人工智能

2017-05-02 09:54:03

深度学习几何学计算机

2023-02-21 14:16:42

2011-11-30 21:59:41

ibmdwDojo

2021-12-02 07:02:16

API性能设计

2023-08-16 17:44:38

2021-05-11 12:30:21

PyTorch代码Python

2023-03-01 15:14:48

数据集机器学习

2024-03-08 12:35:27

AI模型

2019-07-24 08:55:09

APP重设计界面

2012-04-13 10:00:04

LINQ

2019-06-11 15:25:03

JSON性能前端

2023-12-27 08:22:34

框架3D检测

2022-08-30 10:58:45

ViteEsbuild前端

2024-06-11 00:09:00

JavaScript模式变量

2009-03-22 19:19:15

多核多核服务器多核历史

2010-03-19 09:22:37

至强5600

2015-02-05 09:47:52

Web性能Web开发

2024-04-11 08:00:00

人工智能机器学习
点赞
收藏

51CTO技术栈公众号