ECCV2020-Dynamic R-CNN | Dynamic R-CNN: Towards High Quality Object Detection via Dynamic Training

动态设定label阈值和动态smooth L1 loss
Github:https://github.com/hkzhang95/DynamicRCNN

在这里插入图片描述

Abstract:

尽管近年来两阶段目标检测器一直在不断提高其最先进的性能,但训练过程本身离crystal还很远。在这项工作中,我们首先指出固定网络设置与动态训练过程之间的不一致问题,这会极大地影响性能。例如,固定的标签分配策略和回归损失函数不能适应proposals的分布变化,因此不利于训练高质量的检测器。因此,我们提出Dynamic R-CNN根据训练期间proposals的统计信息自动调整标签分配标准(IoU阈值)和回归损失函数的shape(SmoothL1 Loss的参数)。这种动态设计更好地利用了训练样本,并推动了检测器以适应更多高质量的样本。特别是,我们的方法在MS COCO数据集上以1.9%的AP和5.5%的AP90改进了ResNet-50-FPN基线,而没有额外的开销。

Introduction:

在这里插入图片描述
目标检测中,尚不清楚如何在分类训练中为proposals分配正负样本的标签,因为它们之间的分隔可能不明确,这也就是label asignment问题。现有算法最广泛使用的策略是为proposals与对应的gt的IOU设定阈值。如表1所示,使用特定IoU阈值进行训练将导致分类器降低其他IoU的性能。但是,由于缺乏正样本,我们不能从训练开始就直接设置高IoU。 Cascade R-CNN 提供的解决方案是分几个阶段逐步完善proposals,这种方式既有效又耗时。至于回归器,问题是相似的。在训练过程中,proposals的质量得到了提高,但是固定了SmoothL1损失中的参数。因此,这导致对高质量proposals的训练不足(cascade rcnn中的阈值设置是固定,无法根据proposals的质量而进行动态调整,因此存在缺陷).

为了解决这个问题,本文首先验证了一个事实,即proposals的质量确实在训练过程中得到了改善,如图1所示。可以发现,即使在不同的IoU阈值下,正样本的数量仍然显着增加。受此启发,本文提出了Dynamic R-CNN,是一种简单有效的方法,可以更好地利用动态质量的目标检测proposals。 它由两个部分组成:动态标签分配和动态SmoothL1损失,分别用于分类和回归分支。

Dynamic R-CNN:

在这里插入图片描述
如图3所示,为了更好地利用训练过程的动态特性,本文提出了Dynamic R-CNN。主要创新是调整了第二阶段分类器和回归器以调整proposals的分布变化。 主要包含Dynamic Label Assignment与Dynamic SmoothL1 Loss两个部分。具体来说,训练过程中,首先逐步动态调整Label Assignment的阈值,然后动态调整SmoothL1 Loss的beta参数来适应proposals分布的变化.。

A.Dynamic Label Assignment

动态标签分配(DLA)过程如图3(a)所示,其公式可以表示为:
在这里插入图片描述
式中,Tnow代表当前的IoU阈值。 考虑到训练的动态特性,proposals的分布随时间而变化。 DLA会根据proposals的统计信息自动更新Tnow,以适应分布的变化。 具体来说,
1)首先计算proposals及其目标gt之间的IoU集合I,然后从I中选择第KI大的值作为阈值Tnow(第一次直接使用第KI大的Iou值作为阈值)。

2) 随着训练的进行,Tnow将逐渐增加,这反映了proposals质量的提高。 在实践中,首先计算每个批次中的KI个最大值,然后每C次迭代使用以上数值的平均值来更新Tnow以增强训练的鲁棒性。(后续迭代使用KI大的Iou数值的平均值作为阈值)。

应该注意的是,IoU的计算已经通过原始方法完成,因此本文方法几乎没有额外复杂性。 训练中使用的合成IoU阈值如图3(a)所示。

B.Dynamic SmoothL1 Loss

检测中常用的Smooth L1 Loss公式表示为:
在这里插入图片描述
式中,x代表回归误差。 beta是一个超参数,用于控制在哪个范围内应使用更软的损耗函数(如l1损失)而不是原始的l2损耗。 考虑到训练的鲁棒性,默认设置为1.0,以防止由于早期训练网络不良而导致的爆炸损失。 接下来详细解释一下 beta对于训练梯度的影响
在这里插入图片描述
如图4所示,其中beta变化导致损耗和梯度的曲线不同。 很容易发现,较小的值beta实际上会加速梯度幅度的饱和。图4(b)显示了,较小beta曲线下,回归误差较小值梯度值更大。因此,较小回归误差的样本,即高质量proposals对网络训练的贡献更大。

由于需要对proposals的分布变化进行调整并调整回归损失函数,以补偿高质量的样本。 因此,提了用Dynamic SmoothL1 Loss(DSL)来更改损失函数的shape,以逐渐关注高质量样本,如下所示:

在这里插入图片描述
类似于DLA,DSL将根据回归误差的统计信息来更改beta_now的值,该统计信息可反映定位精度。 具体地说:
1)首先获取proposals及其目标gt之间的回归误差E,然后从E中选择第K个最小值,以更新等式(5)中的值。
2)每C次迭代使用每批中K个最小误差的中位数来更新。 本文选择中位数代替分类中的均值,因为在回归误差中我们发现了更多异常值。 】

通过这种动态方式,现在将自动采用如图3(b)所示的适当方法,这将更好地利用训练样本并生成高质量的回归变量。

Experiments:

1.coco上相较于Faster R-CNN,稳定提升1.8个点左右
在这里插入图片描述
2.Ablation Experiments
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值