跳转至

Weakly Supervised 3D Object Detection via Multi-Level Visual Guidance

会议: ECCV 2024
arXiv: 2312.07530
代码: https://github.com/kuanchihhuang/VG-W3D
领域: 自动驾驶
关键词: 弱监督3D检测, 视觉引导, 伪标签, 2D-3D约束, 特征对齐

一句话总结

提出 VG-W3D 框架,仅使用 2D 标注(无需任何 3D 标签),通过特征级、输出级和训练级三层视觉引导来训练 3D 目标检测器,在 KITTI 上取得了与使用 500 帧 3D 标注方法相当的性能。

研究背景与动机

3D 目标检测是自动驾驶感知系统的核心,但 3D 标注成本极高(比 2D 标注慢 3-16 倍)。现有弱监督方法存在两个关键不足:

仍依赖部分 3D 标注:WS3D 需要 BEV 中心标注 + 534 个 3D 标注,MTrans/MAP-Gen 需要 500 帧精确 3D 标注

仅利用单一层次约束:FGR 只用了输出级的 frustum 几何关系,没有充分挖掘 2D 和 3D 域之间的多层次关联

作者观察到:2D 图像和 3D 点云之间的关联可以从三个层次进行利用——特征层面的物体感知对齐、输出层面的 2D-3D 框重叠约束、训练层面的高质量伪标签生成。这一洞察促成了多层次视觉引导的设计。

方法详解

整体框架

VG-W3D 由两个分支构成:

  • 图像分支:使用 CenterNet 作为 2D 检测器,训练后冻结参数,用于提供视觉引导信号(特征 \(\mathbf{F}_{\mathcal{I}}\)、2D 框 \(\mathbf{B}_{\mathcal{I}}\) 和置信度 \(\sigma_{\mathcal{I}}\)
  • 点云分支:使用 PointRCNN 作为 3D 检测器,提取点云特征 \(\mathbf{F}_{\mathcal{P}}\) 并预测 3D 框 \(\mathbf{B}_{\mathcal{P}}\)

初始 3D 标签由 FGR 的非学习方法生成(frustum 点云 + 启发式算法),然后通过迭代式自训练不断优化。推理时仅使用点云分支,图像分支被丢弃。

关键设计

  1. 特征级视觉引导(Feature-Level):将点云特征投影到图像平面后,利用 DINO 自监督分割生成物体前景图 \(\mathbf{S}\),分别对图像和点云特征学习 objectness 二分类。核心思路是不直接用 L2 模仿图像特征(会丢失几何信息),而是对齐物体性概率分布。损失包括:

    • 点云 objectness 分割损失:\(\mathcal{L}_{seg}^{\mathcal{P}} = \frac{1}{|\mathcal{A}|}\sum_{i \in \mathcal{A}} \text{FL}(\mathbf{C}_{\mathcal{P}'}(i), \mathbf{S}(i))\)
    • 图像 objectness 分割损失:\(\mathcal{L}_{seg}^{\mathcal{I}}\)(同形式)
    • KL 散度对齐:\(\mathcal{L}_{kl} = \text{KL}(\mathbf{C}_{\mathcal{I}} || \mathbf{C}_{\mathcal{P}'})\)
  2. 输出级视觉引导(Output-Level):利用 3D 框投影到图像平面后应与对应 2D GT 框高度重叠的先验,使用 GIoU 损失约束投影 3D 框与 2D 框的对齐。关键是引入 2D 检测置信度 \(\hat{\sigma}_{\mathcal{I}}\) 作为加权,低置信度的 2D 框给予更小权重: \(\mathcal{L}_{box} = \hat{\sigma}_{\mathcal{I}} (1 - \text{GIoU}(\mathbf{B}_{\mathcal{I}}, \mathbf{B}_{proj}))\) 使用 GIoU 而非 IoU 的原因:GIoU 能更好处理无重叠情况下的梯度消失问题。

  3. 训练级视觉引导(Training-Level):通过迭代式伪标签生成来提升 3D 标签质量。每轮包含三步:

    • 用当前伪标签训练 3D 检测器
    • 生成新的 3D 伪标签及置信度
    • 过滤伪标签:(a) 匹配集合 \(\mathbf{B}_{overlap}\):投影 3D 框与 2D GT 的 IoU > \(\alpha_0\) 且平均置信度 > \(\alpha_1\);(b) 高分集合 \(\mathbf{B}_{score}\):未匹配框中 3D 置信度 > \(\alpha_2\) 的保留
    • 最终伪标签 = \(\mathbf{B}_{overlap} + \mathbf{B}_{score}\)

损失函数 / 训练策略

对有 3D 伪标签的场景:\(\mathcal{L}_{pl} = \mathcal{L}_{rpn} + \mathcal{L}_{rcnn} + \mathcal{L}_{seg}^{\mathcal{P}} + \mathcal{L}_{kl}\)

对仅有 2D 标签的场景:\(\mathcal{L}_{weak} = \mathcal{L}_{seg}^{\mathcal{P}} + \mathcal{L}_{kl} + \mathcal{L}_{box}\)

训练参数:\(\alpha_0 = 0.5\)\(\alpha_1 = 0.5\)\(\alpha_2 = 0.95\),CenterNet 训练 140 epochs,PointRCNN 训练 30 epochs。迭代 2-3 轮后伪标签质量趋于饱和。

实验关键数据

主实验(KITTI test set)

方法 弱标签 需3D标注 AP3D Easy AP3D Mod. AP3D Hard
PointRCNN (全监督) - 86.96 75.64 70.70
WS3D (2021) BEV中心 534个 80.99 70.59 64.23
MTrans (PointRCNN) 2D框 500帧 83.42 75.07 68.26
FGR 2D框 80.26 68.47 61.57
VG-W3D (Ours) 2D框 84.09 74.28 67.90

消融实验(KITTI val set)

特征级 输出级 训练级 AP3D Easy AP3D Mod. AP3D Hard
87.19 74.00 68.34
89.12 74.29 70.78
88.95 76.42 71.58
88.95 77.75 73.31
91.32 78.89 74.70

关键发现

  • 三层视觉引导均有独立贡献,其中训练级提升最大(Mod. +3.75%)
  • 使用 KL 散度 + 分割掩码的特征引导优于 L2 损失或 2D 框掩码
  • GIoU 损失在输出级引导中优于 IoU 和 L1 损失
  • 伪标签质量经 2 轮迭代后 Recall@0.7 从 46.71% 提升到 74.22%
  • 可直接使用 COCO 预训练的 2D 检测器替代 KITTI 2D 标注,性能仍然有竞争力

亮点与洞察

  1. 完全无 3D 标注的弱监督检测:在同类方法中首次不需要任何 3D 标签即可达到接近全监督的性能
  2. 多层次约束设计精巧:特征级避免了直接特征模仿导致的几何信息损失,转而对齐 objectness 概率分布
  3. 伪标签过滤的 2D-3D 一致性约束:利用 2D 检测置信度过滤假阳性,有效抑制自训练中的噪声累积
  4. 实用性强:支持跨域 2D 检测器(COCO 预训练),降低了实际应用的数据标注需求

局限与展望

  1. 仅在 KITTI(单目/单相机)上验证,未在多相机数据集(如 nuScenes)上测试
  2. 初始伪标签依赖 FGR 的 frustum 几何方法,当点云极度稀疏时可能失效
  3. 迭代式训练增加了训练成本(需多轮训练)
  4. 图像分支在训练时需要冻结,未探索端到端联合优化

相关工作与启发

  • 与 DetMatch 等半监督方法思路类似,但完全去除了 3D 标注需求
  • DINO 自监督分割提供的 objectness 先验非常有用,可迁移到其他弱监督场景
  • 训练级伪标签的 2D-3D 一致性过滤策略可推广到多模态场景

评分

  • 新颖性: ⭐⭐⭐⭐ — 三层视觉引导的系统化设计较新颖,完全无 3D 标注的设定有实际价值
  • 实验充分度: ⭐⭐⭐⭐ — 消融实验全面,但仅在 KITTI 一个数据集上验证
  • 写作质量: ⭐⭐⭐⭐ — 结构清晰,三个 observation 的引入很自然
  • 价值: ⭐⭐⭐⭐ — 为降低 3D 检测标注成本提供了实用方案

相关论文