Dynamic R-CNN: Towards High Quality Object Detection via Dynamic Training论文阅读翻译 - 2020ECCV

Dynamic R-CNN: Towards High Quality Object Detection via Dynamic Training论文阅读翻译


论文下载地址: 点击此链接跳转.
这是博主自己在github整理的目标检测方向论文的合集,应该算比较全,2020ECCV(细分版)已更新完毕,欢迎下载…

一、Abstract

       尽管近年来two-stage目标检测器的性能一直在不断提升,但训练过程并不清晰。本文作者首先指出固定的网络设置和动态训练过程之间的不一致问题会极大地影响检测性能。例如固定的标签分配策略和回归损失函数并不能适应proposals的分布变化,不利于训练高质量的检测器。因此作者提出Dnamic R-CNN,根据训练过程中的proposals的统计信息来自动调整标签分配标准(loU阈值)和回归损失函数(SmoothL1 Loss的参数)。这种动态设计能够更好地利用训练样本,推动检测器适应更多的高质量样本。作者的方法能够对ResNet-50-FPN基线在MS COCO数据集上有1.9%AP和5.5%AP90的增益,且没有额外的开销。

二、Introduction

       随着CNN的发展,目标检测在最近几年取得了显著进步。当前的一些检测框架可分为两类:one-stage检测器和two-stage检测器。两类检测器的训练都是通过分类器和回归器来解决识别和定位任务,因此一个有效的训练过程是实现高质量目标检测的关键。
       与图像分类任务不同,在目标检测中分类任务的注释是GT框的类别标签。如何在分类器的训练中为proposals分配正负标签也是一个问题,因为它们之间的分隔可能并不明确。最广泛使用的策略是为proposals和相应GT的IoU值设定一个阈值。如Cascade R-CNN中所说,使用特定IoU阈值进行训练将导致分类器在其他IoU值的性能的降低。由于缺少正样本,不能从训练一开始就直接设置高IoU阈值。 Cascade R-CNN提出分几个阶段来逐步细化proposals,这种方法有效但耗时。而回归器的问题是相似的。训练过程中proposals的质量有所提高,但是SmoothL1损失中的参数是固定的,导致对高质量proposals的训练不足。
       为解决这个问题,作者先确定了一个事实,如图1所示,训练过程中proposals的质量确实有在改善。可以看到即使在不同的IoU阈值下,正样本数量仍显著增加。受此启发,作者提出了一种简单有效的方法–动态RCNN,可以更好地利用proposals。它由两个组件组成:动态标签分配和动态SmoothL1损失,分别用于分类和回归分支。首先,为了训练一个能够更好判别高IOU值proposals的分类器,作者根据训练过程中proposals的分布去逐渐调整正/负样本的IoU阈值。具体来说,作者将阈值设置为proposals某个百分比的IOU值,因为其可以反映总体分布的质量。对于回归,作者对回归损失函数做出改进以适应回归标签的分布变化,确保高质量样本对训练的贡献。作者根据回归标签分布来调整Smooth L1 Loss中的β,因为β控制着回归误差的梯度大小(如图4所示)。
在这里插入图片描述
在这里插入图片描述
       通过这种动态机制不仅可以缓解训练刚开始时的数据短缺问题,而且还能够有高IoU训练的好处。这两个模块是针对检测器不同部分做出的改进,可以协同工作以实现高质量的目标检测。尽管方法简单,但是动态R-CNN可以在MS COCO上带来一致的性能提升,且在训练中几乎没有额外的计算复杂性。在推理阶段,作者的方法不会带来任何额外的开销。此外大量实验证明了该方法可以推广到其他性能更强的基线。

三、Dynamic Quality in the Training Procedure

       目标检测的两个主要任务:分类和定位。分类任务需要区分前景和背景,并确定它们的语义类别。定位任务需要为不同的目标找到准确的边界框。为实现高质量的目标检测,需要对这两个任务的训练过程做进一步的探索。

3.1 Proposal Classication

       目标检测的分类器应该如何分配标签。目标检测中分类任务的注释是图像中的GT框。如果proposals与GT不重叠,显然该proposals应为负样本;如果该proposals与GT的IOU为100%,则该proposals应为正样本。但是,IoU值为0.5的proposals应标记为正样本还是负样本?这是一个问题。
       在Faster R-CNN中是通过预定义IoU阈值将检测框与GTs的最高IoU进行比较来分配标签。其范式可表述如下(为简单起见,我们采用二进制分类损失):
在这里插入图片描述
       b表示边界框,G表示GT,T+和T-是IOU正负阈值,1,0,-1表示正,负,忽略样本。在Faster RCNN的第二阶段,T+和T-默认设置为0.5,即正反样本的定义基本上是手工设置的。
       由于分类器的目的是区分正负样本,因此使用不同IoU阈值进行训练会导致分类器的质量不同。为实现高质量的检测,我们需要训练高IoU阈值的分类器。但是如Cascade R-CNN中所述,由于直接提高IoU阈值会导致正样本消失,这种做法是不切实际的。 Cascade R-CNN使用几个连续的阶段来提升proposals的IoU,有效但很耗时。
       proposals的质量会随着训练而提高。这一观察结果启发了作者去采取渐进的训练方法:一开始,proposal网络无法生成质量足够高的proposals,因此我们使用较低的IoU阈值来更好地适应这些不是很好的proposals。随着训练的进行,proposals的质量不断提高,逐渐有了足够高质量的proposals。这时我们就可以增加阈值以更好地利用这些proposals来训练高质量的检测器,在更高的IoU时有更好的判别性。

3.2 Bounding Box Regression

       边界框回归是将正proposalb回归到GT g,在回归损失函数Lreg的监督下学习。为使回归标签不随规模和位置变化,偏移△=(δx, δy, δw, δh)定义为:
在这里插入图片描述
       由于边界框回归是对偏移进行的预测,因此上式的绝对值可能会非常小。为平衡多任务学习中的不同项,△通常用预定义的平均值和标准差来标准化。
       但是我们发现回归标签的分布在训练期间会发生变化,如下图所示,作者在不同的迭代和IoU阈值下计算了回归标签的统计信息。首先从前两列中作者发现在相同的JoU正阈值下,随着训练的进行proposals质量会提高,其均值和标准差都在下降。在归一化因子相同时,高质量样本对损失的贡献会由于Smooth L1损失函数的定义而减少,这不利于训练高质量的回归器。此外随着loU阈值的提升,正样本的质量会提高,它们对损失的贡献也会进一步降低,从而限制整体性能。因此要实现高质量的目标检测,需要适应proposals的分布变化并调整回归损失函数,以对高质量proposals的增加做出补偿。

在这里插入图片描述

四、Dynamic R-CNN

       为了更好地利用训练过程的动态特性,作者提出了动态R-CNN,主要是对分类器和回归器进行了调整以适应proposals的分布变化。

4.1 Dynamic Label Assignment

       动态标签分配(DLA)过程如下图a所示:
在这里插入图片描述
       根据目标检测中标签分配公式,DLA模块可以表示为:
在这里插入图片描述
       Tnow表示当前的IOU阈值,考虑到训练过程中的动态因素,proposals的分布是随时间变化的,DLA会根据proposals的统计数据自动更新Tnow,以适应这种分布变化。具体来说,作者首先计算proposals与其目标GT之间的IoU I,然后从I中选择第KI个最大值作为阈值Tnow,随着训练的进行,Tnow也会不断的增大,也反映出proposals质量的增加。在实践中,作者首先计算每个batch中第KI个最大值,然后每C个迭代就使用这些最大值的平均值来更新Tnow,以提高训练的鲁棒性。另外,由于IoU的计算不变,作者的方法几乎没有其他复杂性。训练中使用的IoU阈值如上图(a)所示。

4.2 Dynamic SmoothL1 Loss

目标检测的定位任务通常用的SmoothL1损失,可表示为:
在这里插入图片描述
       这里x代表回归标签,β是超参数,控制在哪个范围内使用softer的损失函数(如l1损失)而不是原本的l2损失。考虑到训练的鲁棒性,将β设置为默认值1.0,以防止早期训练不足的网络导致损失爆炸。作者还在下图中说明了β的影响,改变β的值会导致损失和梯度曲线有所不同,可以看到较小的β实际上会加快梯度大小的饱和,从而使更精确的样本对网络的训练贡献更多。
在这里插入图片描述
       作者想要去拟合分布的变化并调整回归损失函数以对高质量样本进行补偿。因此,作者提出了Dynamic SmoothL1 Loss(DSL)来改变损失函数的形状,从而使其逐渐地关注高质量样本:
在这里插入图片描述
       与DLA相似,DSL会根据回归标签的统计信息更改βnow的值,这可以反映定位精度。为了更加具体,作者先获取proposals及其目标GT之间的回归标签E,然后从E中选择第Kp个最小值来更新smoothl1 loss中βnow。作者同样是每C个迭代使用每个batch中第Kβ个最小标签的中位数来更新βnow。作者在这里使用中位数而不是均值是因为回归标签中有更多的离群值,通过这种动态方式,能够自动采用到合适的βnow,这将更好地利用训练样本并得到高品质的回归器。

       总结,作者在以下算法中描述了提出的动态R-CNN。除了proposals P和GT G,动态R-CNN还有三个超参数:IoU阈值top-k KI,β top-k Kβ和更新迭代计数C。与baseline相比,作者仅引入了一个额外的超参数。并且检测结果对于这些超参数的选择实际上是非常健壮的。
在这里插入图片描述

五、Experiments

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、个人总结

       本文的两个点很清晰,第一个DLA其实是将Cascade RCNN分别在多个阶段调整IOU阈值的操作给整合到一个阶段内完成,每C个迭代利用每个batch中第KI个最大值的平均值对IOU阈值做出调整,不断去提升IOU阈值使其适应样本的分布变化。而DSL的目的也是去拟合分布变化并对回归损失函数做出一定调整以对高质量样本进行补偿,不然高质量样本对损失的贡献越来越低,会降低检测器检测效果,这里用的中位数而不是平均值是因为回归标签中有很多离群值。好文,推荐!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值