跳转至

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 采用统一框架,由三大核心组件构成:

  1. 前景自蒸馏(FSD):在同一模型中附加教师分支,教师和学生共享图像特征但使用不同深度/前景标签生成 BEV 特征
  2. 点云增强(PCI):通过帧合并和伪点分配补偿点云稀疏性
  3. 多尺度前景增强(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

关键发现

  1. 自蒸馏显著优于无蒸馏基线(+4% mAP),且不需要额外预训练教师模型
  2. 前景分割对教师分支性能提升极为关键(+11.6% mAP),验证了前景 only 蒸馏的必要性
  3. 点云增强主要提升对远处或稀疏物体的检测能力
  4. 仅用 2 帧即可与使用 4-8 帧的方法竞争甚至超越

亮点与洞察

  • 自蒸馏 vs 跨模态蒸馏:通过让教师和学生共享图像特征源,巧妙避免了跨模态蒸馏中最棘手的分布差异问题
  • 软硬标签互补:学生的软标签填补教师硬标签的稀疏空缺,形成了良性的协同成长机制
  • 无额外参数蒸馏:BEV Encoder 自然充当适配模块,L2 损失即可完成有效蒸馏
  • 伪点分配思路新颖:为无点云覆盖的物体分配伪点是对点云数据增强的实用方案

局限与展望

  1. 仍依赖 LiDAR 点云提供深度 GT 和前景分割 GT,推理时虽不需要但训练时必须
  2. 伪点分配使用启发式规则(框中心 + 角点最小深度),更精确的位置估计可能进一步提升
  3. 仅用 1 个历史帧,未充分利用时序信息
  4. MSFE 的椭圆高斯热力图标签仍是粗糙近似,实际前景形状可能更复杂

相关工作与启发

  • SA-BEV:FSD-BEV 的直接基础,提供了前景 BEV 生成的 SA-BEVPool 方法
  • BEVDistill / UniDistill / DistillBEV:跨模态蒸馏方法的代表,面临分布差异挑战
  • StreamPETR:基于注意力的强基线,使用更多历史帧
  • 自蒸馏思路可推广到其他需要知识蒸馏的 BEV 任务

评分

  • 创新性: 4/5 - 自蒸馏框架设计巧妙,软硬标签互补是亮点
  • 实验质量: 4/5 - 消融实验充分,多尺度 backbone 验证
  • 写作质量: 4/5 - 动机清晰,方法描述详细
  • 实用价值: 4/5 - 推理时不增加计算量,训练时也无需额外预训练