跳转至

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 教师模型的知识转移给相机学生模型,但面临以下核心问题:

  1. 分布差异:教师和学生的 BEV 特征来源于不同模态(LiDAR vs 相机)和不同网络结构,导致特征分布差距大
  2. 额外预训练开销:需要单独训练一个 LiDAR 教师模型
  3. 复杂蒸馏策略:为弥补分布差异,需要设计繁琐的适配模块和蒸馏损失
  4. 背景干扰: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 - 推理时不增加计算量,训练时也无需额外预训练