论文阅读《Training Region-based Object Detectors with Online Hard Example Mining》

Background & Motivation

hard negative mining(HNM,之前称作 bootstrap)早在1990年就被提出,用在人脸检测网络中。

Their key idea was to gradually grow, or bootstrap, the set of background examples by selecting those examples for which the detector triggers a false alarm. This strategy leads to an iterative training algorithm that alternates between updating the detection model given the current set of examples, and then using the updated model to find new false positives to add to the bootstrapped training set. The process typically commences with a training set consisting of all object examples and a small, random set of background examples.

之前的 HNM 常常被用在包含 SVM 的检测网络、浅层的神经网络以及决策树中。而在当时的最优方法 Fast Rcnn 中却没有使用 HNM,文中分析是因为 purely online learning algorithm(这里指 Fast Rcnn)的训练不适合使用 HNM。因为这些 HNM 需要不停的冻结和解冻网络(所以这是 offline?),这对包含了大量参数的深层神经网络的训练带来困难。

Motivation 是想要实现 online 版本的 HNM,即 OHEM(Online Hard Example Mining)。并且因为目标检测数据集中包含大量的 easy example 而只有少量的 hard example,而这些 hard example 对高效训练模型、提高模型泛化能力很有帮助。

OHEM

在此之前基于 SVM 的 HNM 算法,分为两步:

  • 固定模型参数,找到更多的 false positives 加入到 working set 中直到达到阈值。
  • 固定 working set,再训练模型。

重复上述两步直到训练完成。但是如果在深层的神经网络上用这个算法会使训练过慢。但是这个重复可以和 SGD 算法结合,传统的 SGD 算法中有一个 mini-batch 的概念。每个 mini-batch 包含 N 张图片,认为设定需要从这 N 张图片中抽样 B 个 RoI,每张图片中抽样 B/N 个 RoI,Fast Rcnn 中 N 取2,B 取128。每张图像抽样的 B/N 个 RoI 中用与 gt 的 IoU 值划分为前景和背景,Fast Rcnn 中前景为 IoU 值大于0.5的 RoI,背景为0.1到0.5之间的 RoI(控制在0.1~0.5是 Fast Rcnn 中原有的 HNM),还需要将前景与背景的比例控制到1:3。

Although this heuristic(指的是下边界设置为0.1)helps convergence and detection accuracy, it is suboptimal because it ignores some infrequent, but important, difficult background regions.

文中认为,虽然 SGD 每次迭代中的每一个 mini-batch 只包含少量图像(比如2张图像),但是从这些图像里可以采样出数千个 RoI,可以从这些 RoI 中选出 hard example 而不是设置下边界为0.1。这样的话就将 HNM 与 SGD 结合起来,融合到了网络训练中。

OHEM 总的网络结构图如上。具体来说,将 RoI Network 复制一个只读副本。

对于一次 SGD 迭代,先用 CNN 网络提取特征。用副本网络对所有 RoI 的进行前向计算并损失(图中绿线),将损失从大到小进行排序,选取 B/N 个损失最大的 RoI,输入到原本的 RoI Network 中(图中红线)再完成前向和反向的过程。这里选取 RoI 时使用了 NMS 来筛掉冗余的 RoI,这里的 IoU 设置为0.7。与损失高的 RoI 的 IoU 值如果大于0.7,那么该 RoI 就被舍弃。

21.12.17 记

“OHEM是只取3:1的负样本去计算 loss,之外的负样本权重置零,而 focal loss 取了所有负样本,根据难度给了不同的权重。”

OHEM 是用在 RPN 之后的,相当于在 RPN 中已经将正负样本的比例设为了1:3。

之前自己使用 focal loss 也有问题,直接将 RPN 中的分类损失换成了 focal loss,但是也是在 RPN 将正负样本的比例设为了1:3之后,而没有对所有的负样本使用 focal loss。

这么看来加上 focal loss 后精度没有提升的原因似乎就在这,RPN 中的二分类 focal loss 和 Fast Rcnn 中的多分类的 focal loss,都是不是直接施加在了所有的负样本上。后者也是在 RPN 中输出的2000个 RoI 上进一步进一步计算分类和回归的损失,但是这里有2000个似乎还好(FSCE 的 trick 是将这里改为了4000,并且是在 novel 微调时,base 训练时还是2000)。而对前者只采样了256个 RoI,正负例都只有128个,focal loss 似乎发挥不出来作用。

因为前向计算都是基于特征图,所以副本网络进行前向的计算开销不大。并且只有一小部分的 RoI 用来更新参数,计算开销相比之前并没有增加。

采用 OHEM 的方法就不用控制前景与背景的比例,如果挑中的 RoI 内不包含某个类别的话,那么下一次迭代时这个类别的损失就会更高,则更有可能选出包含该类别的 RoI。

Experiment

在 PASCAL VOC07 数据集上的消融实验

5和6是为了证明 N 取2时不影响模型精度,因此将 N 降低为1。

To address this concern, we experiment with N =1 in order to increase correlation in an effort to break our method.

计算开销

PASCAL VOC 数据集上的结果

COCO 数据集上的结果

multi-scale 和 iterative box regression 的影响

Conclusion

在 Faster Rcnn 中同样适用。

该算法是对 SGD 的一种简单修改,训练样本采样得到,采样取决于每个样本的当前损失。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值