MONODISTILL: LEARNING SPATIAL FEATURES FOR MONOCULAR 3D OBJECT DETECTION

Paper name

MONODISTILL: LEARNING SPATIAL FEATURES FOR MONOCULAR 3D OBJECT DETECTION

Paper Reading Note

URL: https://arxiv.org/pdf/2201.10830.pdf

TL;DR

  • ICLR 2022 文章,仅使用单目图像进行 3D 目标检测因为缺乏 spatial cues 的原因一般效果不好,提出了一种在训练阶段引入 LiDAR 信号蒸馏的方法,在测试阶段不增加耗时,并在 KITTI 上取得了 SOTA 效果

Introduction

背景

  • 仅使用单目图像进行 3D 目标检测因为缺乏 spatial cues 的原因一般效果不好,比如下图中的 (a),当前已有的利用 depth 来提升 spatial cues 的方法有使用单目深度模型估计出 depth,然后通过以下方式:
    • (b):基于depth 对 rgb 数据进行增强
    • ©:将 depth 转换为伪雷达数据后进行 3d 检测
    • (d):改为预测 depth 分布,基于分布与图像域特征做外积,然后进行 3d 检测
      在这里插入图片描述

本文方案

  • 本文提出了一种在训练阶段引入 LiDAR 信号监督的方法,在测试阶段不增加耗时,并在 KITTI 上取得了 SOTA 效果
    • 将 LiDAR 点云投影到图像平面,基于该深度信息训练一个 LiDAR模型,该模型与 RGB 图像训练的模型结构一样
    • 基于训练好的 LiDAR 模型对 rgb 输入的模型进行蒸馏

Dataset/Algorithm/Model/Experiment Detail

实现方式

在这里插入图片描述

网络结构
  • 整体分为 3 个模块
    • 图像域 3d 检测模块(student): MonoDLE,DLA-34 作为 backbone,一些并行的 heads 用于预测 3d 目标检测信息,这里进一步使用估计的深度不确定度对预测目标的 confidence 进行 normalize 操作,提升了 1AP
    • LiDAR 3d 检测模块(teacher):为了保证 LiDAR 和 rgb 的特征一致性,使用和图像域 3d 检测模块一样的模型结构,只是输入换成深度补全后的 LiDAR 深度图
    • 蒸馏模块:主要是设计了在特征空间和结果空间的三个蒸馏模块
  • 深度图补全,用现有的 IP-Basic 做
    在这里插入图片描述
单目蒸馏

主要基于以下 3 种蒸馏模块

  • Scene-level distillation in the feature space

    • 考虑到不同模块的 feature 直接蒸馏可能是次优解,这里使用 affinity map (对每个特征向量对的相似性进行编码)来进行蒸馏,学习特征间的相对关系
      在这里插入图片描述
      其中 fi 和 fj 代表 i 和 j 位置的特征向量,然后使用 L1 norm 来蒸馏
      在这里插入图片描述
      其中 K 是 特征向量的数量。实际使用的时候将特征进行空间分块从而降低计算量
  • Object-level distillation in the feature space

    • 基于 gt 2d 框信息扣取特征中的目标区域,对该部分区域进行蒸馏,主要是为了避免背景中噪声大区域带来影响
      在这里插入图片描述
      其中 Mof 是目标区域抠图的 mask,Npos 是有效特征向量的数量
  • Object-level distillation in the result space

    • 将 teacher 模型预测的前景样本作为 soft label 来蒸馏 student 模型,这里选取物体中心及周围一定区域进行蒸馏
      在这里插入图片描述
      其中 Mor 是代表正负样本的mask,yk 是检测 head 预测的第 k 个输出, N 是预测 heads 数目,选取的区域示意图如下
      在这里插入图片描述
训练策略
  • feature 空间的蒸馏只在后三个 block 上做,原因是浅层特征主要是 low-level 信息,比如边缘纹理等,而LiDAR 和 RGB 的浅层 low-level 特征可能不一致
  • 为了更好学习 spatial-aware 特征表达,使用 attention based fusion module (FF)
  • 整体 loss,其中 Lsrc 是原始 3d 检测的 loss
    在这里插入图片描述

实验结果

数据集
  • 使用 KITTI 3d 检测数据集
    • 7481 训练图片,7518 测试图片,训练图又分为 3712 训练图和 3769 验证图
    • 最终结果是 test 数据集上得到,消融实验是 val 数据集上得到
消融实验
  • 其中每个蒸馏模块单独增加都涨点明显,使用 OR 涨点最明显,所有模块一起使用并加上特征融合模块的精度最高
    在这里插入图片描述
  • 在 OR 蒸馏时,使用diffused label 涨点明显
    在这里插入图片描述
实验对比

在这里插入图片描述

蒸馏分析
  • 使用 baseline 模型的输出预测替代蒸馏后模型输出,可以看出蒸馏模型主要是对于 loc 的预测帮助较大(b->f)
    在这里插入图片描述
  • 使用稀疏的深度训练 teacher 模型,虽然 teacher 模型的精度大幅下降,但是蒸馏还是能带来涨点
    在这里插入图片描述
可视化对比

在这里插入图片描述

Thoughts

  • 不增加测试时间的蒸馏方法看起来很适合业务模型
  • 稀疏 depth 训练的低精度模型也能稳定涨点看起来该蒸馏还是有一定鲁棒性的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值