FSD-BEV: Foreground Self-Distillation for Multi-View 3D Object Detection¶
会议: ECCV 2024
arXiv: 2407.10135
代码: GitHub
领域: 自动驾驶
关键词: BEV 3D检测, 自蒸馏, 前景增强, 点云增强, 多视图感知
一句话总结¶
提出前景自蒸馏(FSD)框架,在同一模型内构建教师-学生分支共享图像特征,避免跨模态蒸馏中的分布差异问题,配合点云增强和多尺度前景增强模块,在 nuScenes 上取得 SOTA 性能。
研究背景与动机¶
多视图相机的 BEV 3D 目标检测是自动驾驶中经济且易部署的方案,但与 LiDAR 方法仍存在性能差距。现有跨模态蒸馏方法(如 BEVDistill、UniDistill、DistillBEV)试图将 LiDAR 教师模型的知识转移给相机学生模型,但面临以下核心问题:
- 分布差异:教师和学生的 BEV 特征来源于不同模态(LiDAR vs 相机)和不同网络结构,导致特征分布差距大
- 额外预训练开销:需要单独训练一个 LiDAR 教师模型
- 复杂蒸馏策略:为弥补分布差异,需要设计繁琐的适配模块和蒸馏损失
- 背景干扰:BEV 特征中大量背景区域的对齐对检测精度无益甚至有害
本文的核心洞察是:如果教师和学生 BEV 特征共享同一来源的图像特征,分布差异将大幅减小,蒸馏效果将自然提升。
方法详解¶
整体框架¶
FSD-BEV 采用统一框架,由三大核心组件构成:
- 前景自蒸馏(FSD):在同一模型中附加教师分支,教师和学生共享图像特征但使用不同深度/前景标签生成 BEV 特征
- 点云增强(PCI):通过帧合并和伪点分配补偿点云稀疏性
- 多尺度前景增强(MSFE):利用椭圆高斯热力图提取多尺度前景特征
图像经 backbone 和 FPN 提取特征后,MSFE 增强前景信息,View Transformation Module 分别生成学生和教师 BEV 特征,沿 batch 维度拼接后通过共享的 BEV Encoder 和检测头进行联合训练与蒸馏。
关键设计¶
前景自蒸馏(FSD)¶
学生 BEV 生成:使用 DepthNet 预测深度图 D 和前景分割 S,结合上下文特征 C,通过 SA-BEVPool 生成仅含前景信息的学生 BEV 特征:B_s = SA-BEVPool(C, D, S)。
教师 BEV 生成:利用 LiDAR 点云生成的硬标签(ground truth 深度图和前景分割),结合学生预测的软标签填补硬标签缺失部分。组合标签公式为:
- 深度:D_bar = M * D_hat + (1-M) * D
- 前景:S_bar = M * S_hat + (1-M) * S
其中 M 是硬标签的有效掩码(有硬标签为 1,否则为 0)。教师 BEV 同样通过 SA-BEVPool 生成。这种设计的关键优势在于教师和学生共享图像特征 C,极大减小了分布差距。
协同训练:教师和学生 BEV 特征沿 batch 维度拼接后共同经过 BEV Encoder,BEV Encoder 自然充当了适配模块的角色,无需额外参数。两个分支同时接受检测损失监督,教师分支的损失较小不会严重影响学生训练。
点云增强(PCI)¶
帧合并(Frame Combination):将相邻帧的静止前景物体(如停放的汽车、无人骑的自行车、交通锥)的点云转换到当前帧坐标系进行合并,增加点云密度。仅选择静止物体避免动态物体引入误差。
伪点分配(Pseudo Point Assignment):对帧合并后仍无点云覆盖的物体,在其 2D 投影框中心位置分配伪点。伪点深度取 3D 框八个角点的最小深度值(接近物体表面深度)。分配条件:帧合并后框内无真实点、深度在感知范围内、可见性良好(nuScenes 中设为 3 或 4)。
多尺度前景增强(MSFE)¶
使用 FPN 输出的多尺度特征 F4、F8、F16,在高分辨率 F4 上预测前景分割 S4。由于高分辨率下 LiDAR 标签极其稀疏(约 80% 缺失),采用椭圆高斯热力图作为标签(与 CenterNet 的圆形高斯不同,椭圆形更好地填充 2D 框),使用 Focal Loss 训练。
增强后的特征通过前景分割加权和下采样聚合:F16_MSFE = F16 + DS2(F8 * DS2(S4_f)) + DS4(F4 * S4_f)。
损失函数 / 训练策略¶
蒸馏损失:对归一化后的教师和学生高层 BEV 特征使用 L2 损失。归一化防止两者通过减小幅度来走捷径,而非真正对齐特征。
总损失:检测损失(教师和学生分支均参与)+ 蒸馏损失 + 深度监督损失 + MSFE 的 Focal Loss。
训练配置:8x RTX 3090,AdamW(lr=2e-4),混合精度训练,24 epochs,CBGS 策略,1 past frame(间隔 0.5s)。
实验关键数据¶
主实验¶
nuScenes val 集(ResNet50, 256x704, 2帧):
| 方法 | mAP | NDS | mATE | mASE | mAOE |
|---|---|---|---|---|---|
| BEVDepth | 0.351 | 0.475 | 0.639 | 0.267 | 0.479 |
| BEVStereo | 0.372 | 0.500 | 0.598 | 0.270 | 0.438 |
| SA-BEV | 0.387 | 0.512 | 0.613 | 0.266 | 0.352 |
| FSD-BEV | 0.403 | 0.526 | 0.576 | 0.259 | 0.362 |
| FSD-BEV (256 BEV) | 0.412 | 0.538 | 0.527 | 0.256 | 0.363 |
nuScenes val 集(ResNet101, 512x1408, 2帧):
| 方法 | 帧数 | mAP | NDS |
|---|---|---|---|
| BEVFormer* | 4 | 0.416 | 0.517 |
| TiG-BEV | 2 | 0.440 | 0.544 |
| StreamPETR* | 8 | 0.504 | 0.592 |
| FSD-BEV | 2 | 0.488 | 0.589 |
| FSD-BEV* | 2 | 0.500 | 0.596 |
nuScenes test 集:FSD-BEV(V2-99)达到 54.3% mAP / 63.3% NDS,超越 SOLOFusion(17帧)和 SA-BEV。
消融实验¶
模块组合效果:
| FSD | PCI | MSFE | mAP | NDS |
|---|---|---|---|---|
| - | - | - | 0.363 | 0.486 |
| Y | - | - | 0.394 | 0.516 |
| Y | Y | - | 0.400 | 0.516 |
| Y | Y | Y | 0.403 | 0.526 |
前景分割对教师分支的影响:
| 前景分割 | 分支 | mAP |
|---|---|---|
| 无 | Teacher | 0.468 |
| 有 | Teacher | 0.584 |
| 无 | Student | 0.372 |
| 有 | Student | 0.393 |
关键发现¶
- 自蒸馏显著优于无蒸馏基线(+4% mAP),且不需要额外预训练教师模型
- 前景分割对教师分支性能提升极为关键(+11.6% mAP),验证了前景 only 蒸馏的必要性
- 点云增强主要提升对远处或稀疏物体的检测能力
- 仅用 2 帧即可与使用 4-8 帧的方法竞争甚至超越
亮点与洞察¶
- 自蒸馏 vs 跨模态蒸馏:通过让教师和学生共享图像特征源,巧妙避免了跨模态蒸馏中最棘手的分布差异问题
- 软硬标签互补:学生的软标签填补教师硬标签的稀疏空缺,形成了良性的协同成长机制
- 无额外参数蒸馏:BEV Encoder 自然充当适配模块,L2 损失即可完成有效蒸馏
- 伪点分配思路新颖:为无点云覆盖的物体分配伪点是对点云数据增强的实用方案
局限性 / 可改进方向¶
- 仍依赖 LiDAR 点云提供深度 GT 和前景分割 GT,推理时虽不需要但训练时必须
- 伪点分配使用启发式规则(框中心 + 角点最小深度),更精确的位置估计可能进一步提升
- 仅用 1 个历史帧,未充分利用时序信息
- MSFE 的椭圆高斯热力图标签仍是粗糙近似,实际前景形状可能更复杂
相关工作与启发¶
- SA-BEV:FSD-BEV 的直接基础,提供了前景 BEV 生成的 SA-BEVPool 方法
- BEVDistill / UniDistill / DistillBEV:跨模态蒸馏方法的代表,面临分布差异挑战
- StreamPETR:基于注意力的强基线,使用更多历史帧
- 自蒸馏思路可推广到其他需要知识蒸馏的 BEV 任务
评分¶
- 创新性: 4/5 - 自蒸馏框架设计巧妙,软硬标签互补是亮点
- 实验质量: 4/5 - 消融实验充分,多尺度 backbone 验证
- 写作质量: 4/5 - 动机清晰,方法描述详细
- 实用价值: 4/5 - 推理时不增加计算量,训练时也无需额外预训练