目标检测:VarifocalNet: An IoU-aware Dense Object Detector(CVPR2021)

VarifocalNet: An IoU-aware Dense Object Detector
在这里插入图片描述

Motivation

文中第三章作者基于FCOS+ATSS网络的实验结果是本文的动机,首先对这个实验中的每个AP逐一解析:在这里插入图片描述

1	38.5:训练时没有centerness(ctr)分支
2	39.2:训练和测试时加入ctr分支,该方法设为baseline
3	41.1:基于baseline,把测试时的ctr换成label值,AP小幅提升0.9
4	43.5:基于baseline,把测试时的ctr换成预测框与gt框的iou,AP提升了4.3,比使用ctr高。
5	56.1:没有ctr分支,将测试时的bbox推理结果替换为gt bbox,分类结果仍是网络的预测结果
6	56.3:与上一个为对比实验,训练测试时多加入ctr,多引入的ctr只将AP提升了0.2
7	43.1:没有ctr分支,将预测的分类结果替换为gt的类别标签,AP为43.1,只比实验14.6
8	58.1:与上一个为对比实验,多引入ctr分支,AP提升了15
9	74.7:没有ctr分支,将预测的分类结果替换为gt与预测框的IoU。
'''基于实验1,对比该实验和实验5,说明定位很准的框已经被预测出来了,但由于做NMS时分数不是最高的所以被淘汰了'''

10	67.4:与上一个为对比实验,多引入ctr分支,AP反而降低了

上述发现了一个问题:
目标检测网络的设计中 分类与定位 的相关性低,低分类得分数但高定位精度的预测框可能会被nms掉。
也就说其实定位精度已经很高的,但可惜被nms淘汰掉了,实验中发现这很影响最后的AP值。因为如果NMS中的排序分数是 预测框与gt框的IoU 的话那么定位最准的框就会被保留下来,但在实际中,网络预测的分类分数与 预测框与gt框的IoU 的差别还是很大的。所以如果让NMS使用的排序分数与IoU更靠近,那么就能提升AP值。FCOS中的centerness方法对此提升很有限。这个问题算是老问题了,GFL中就有提到过,但本文的实验让我们见识到了这个问题的重要性,把它完全挑明了。作者把具有IoU感知功能的分类分数缩写为IACS( IoU-aware Classification Score)。

VarifocalNet

作者基于以上发现,设计了新的检测器,称作 VarifocalNet,有三个创新点:Varifocal Loss, 星形边界框特征表达(star-shaped bounding box feature representation) 和更精致化的边界框(bounding box refinement )。

1. Varifocal Loss

作者设计了一个新的VFL来训练检测器去预测IACS。

Focal loss:
在这里插入图片描述VarFocal loss:
在这里插入图片描述
上式中p是预测的 IACS( IoU-aware classification score),q是目标分数,对于前景来说,q是 预测框与gt类的框 的IoU,背景则设置为0。
观察VFL,与GFL中的QFL相同,都是将交叉熵部分 − log ⁡ ( p ) - \log(p) log(p) 扩展为了 − [ ( 1 − q ) log ⁡ ( 1 − p ) + q log ⁡ ( p ) ] -[(1-q) \log (1-p)+q \log (p)] [(1q)log(1p)+qlog(p)], 即根据target q与0或1的距离对logp进行分解加权。
由于负样本远多于正样本,所以负样本项乘了 p γ p^{\gamma} pγ降低比重,但对正样本并没有使用相同的项进行缩放,等于仍是加大了正样本对损失的贡献 。另一方面,前景却是乘了target q,这样训练更能关注到具有高质量bbox回归的正样本的分类分支的训练,因为这对得到高AP更重要。
最后,相比FL,整个式子使用α加权的方式也是不同的,只对负样本乘了α。

2. 星形的边界框特征表达

在这里插入图片描述
如上图红色的预测框属于最大的黄色中心锚点,蓝色框是本文另一个创新点微调后的最终预测框。现有anchor free的目标检测头(如FCOS),每个预测框对应的cls的预测是基于预测框所属锚点上抽取的特征做的,但预测框所属锚点所做的cls预测可能会感受野有限,无法精准覆盖整个预测框内的特征,更好的cls预测应该是基于预测的红框上的采样点去做。
新的九个采样点(图中黄圈)包含1个中心锚点,以及基于中心锚点和预测框的偏移量(l’, t’, r’, b’)得到的8个采样点,这八个点相对中心锚点的偏移量就作为可变形卷积的偏移量。最后将这9个采样点的特征用可变形卷积进行运算来表示一个边界框。由于是手选的采样点,没有多余预测负担,所以计算是很高效的。

3. Bounding Box Refinement

在这里插入图片描述

文章将Bounding Box Refinement作为一个残余学习问题( residual learning problem)进行建模(看head的这个结构就是像resnet的残差结构)。
如上图的head部分,模型首先进行回归预测得到一个初始的bbox(一般网络结构就是这样了),该初始bbox有(l’, t’, r’, b’)四个参数,
然后对该初始bbox使用星形表达进行编码。之后基于该表达,学习到四个距离缩放因子 (∆l, ∆t, ∆r, ∆b) ,去调整初始的bbox, 公式为(l, t, r, b) = (∆l×l’, ∆t×t’, ∆r×r’,∆b×b’),这样最后得到的bbox就更接近gt了(如figure1中初始框的offset被缩放了,形成了最终的蓝色预测框)。

这样关于bbox该网络会学到两组4D向量,也就会有两个有关bbox回归的损失函数。

损失函数

最后看一下损失:
在这里插入图片描述
正负样本是用ATSS确定的,分类就用VFL, L b b o x L_{bbox} Lbbox是GIoU损失,
λ是初始bbox和最终bbox损失的平衡系数,分别取1.5和2.0。注意 L b b o x L_{bbox} Lbbox有乘gt_IoU这一项,这个gt_IoU是当前bbox与gt bbox的交并比。
剩下就是实验结果啥的,不赘述了。

我的感受:

  1. IACS应该尽可能位于预测框上做,这样相关度更高,感受野更准确,那更好的做法不应该是在图一中的蓝色框上做吗?毕竟红色框还只是中间结果,最终的蓝色框是由Bounding Box Refinement进行了微调才得到的。
  2. 我其实对这个星形边界框表征比较感兴趣,使判断类别和估计框质量时使用的特征更完整,但消融实验中却没有分开做,是和精细化的边界框这个trick一起提高了0.9AP。
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值