IoU-aware Single-stage Object Detector for Accurate Localization 论文笔记

前言

一般来说,multi-stage目标检测器的AP较好,而检测效率较低,而single-stage目标检测器虽然检测效率较高,但AP不如multi-stage检测器。本文就是希望在保持检测效率的同时,提高single-stage检测器的AP,尤其是定位精度。论文证明了single-stage检测器中分类分数和定位精度之间的低相关性,导致了模型的性能尤其是定位精度较低。而过低的相关性主要是因为分类子网和定位子网是相互独立的,它们并不了解对方的信息。在提取anchor之后,分类子网会在不了解IoU(anchor与gt box)的情况下为每个anchor预测分类分数,造成分类与定位间的mismatch问题,比如说,一些检测结果的分类分数很高但IoU较低,而另一些检测结果则相反。在推理时,缺失IoU会带来两个严重的问题:

  • 在NMS中,所有的检测结果基于分类分数进行排序,如果有一些检测结果的分类分数很高但IoU较低,它肯定排在前面,从而导致那些高IoU但分类分数较低的检测结果被过滤;
  • 在计算AP时,所有的检测结果依然按照分类分数进行排序,如果高分类分数低IoU的检测结果排在低分类分数高IoU的检测结果前面,那么高IoU阈值的AP会降低。

为了解决这个问题,本文提出了基于RetinaNet的IoU-aware single-stage目标检测器,在回归分支中平行于regression head添加了一个预测IoU的head,来为每个选中的anchor预测IoU。

  • 在训练时,IoU head与另外两个分支一起训练;
  • 在inference时,通过将分类分数与预测的IoU相乘,得到最终的检测分数,并用于最后的NMS和AP计算。

由于最终的检测分数与IoU之间更具有相关性,因此前面提出的问题得以被解决,同时模型的定位精度也得到了提升。

本文的贡献如下:

  • 提出IoU-aware single-stage目标检测器来解决single-stage检测器中分类分数与定位精度之间的mismatch问题,在不牺牲检测效率的情况下,模型的定位精度得以提升;
  • 分析了IoU-aware single-stage检测器为什么有用,性能的上限,以及预测的IoU和gt IoU之间的差别。

模型设计

在这里插入图片描述
IoU-aware single-stage检测器对RetinaNet进行修改,backbone和FPN都是一样的,只是在回归分支中添加了一个IoU prediction head,这个head和regression head的结构是平行的,分类分支依然保持不变,如上图所示。

为了保持模型的效率,IoU prediction head仅包含一个 3 × 3 3 \times 3 3×3的卷积层,后跟一个sigmoid激活层,用于将预测的IoU控制在[0,1]之间。本文也考虑过其它方法来设计这个IoU head,比如设计一个平行于分类分支和回归分支的IoU预测分支,但这样做会降低模型的效率。本文的设计方法带来的计算开销基本可忽略不计,并能提升模型的性能。


Training & Inference

training

与RetinaNet相同,采用focal loss作为分类损失,L1 loss作为回归损失,如下式(1)(2)所示。而对于IoU prediction损失,采用的是二值交叉熵损失,并且只计算正样本的损失,如下式(3)所示。其中 I o U i IoU_i IoUi表示为每个detected box预测的IoU, I o U i ^ \hat{IoU_i}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值