跳转至

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

会议: ECCV 2024
arXiv: 2312.07530
代码: https://github.com/kuanchihhuang/VG-W3D
领域: 3D视觉
关键词: 弱监督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 轮迭代后 [email protected] 从 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 检测标注成本提供了实用方案