Training Region-based Object Detectors with On line Hard Example Mining阅读笔记

1.Introduction

目标检测经常转换为目标classification问题。这样做的后果就是导致标注的目标和背景的比例严重不均衡。
在使用滑动窗口时,背景与目标框的比例约为100000:1.虽然近年来的object-proposal-based方法缓解了这一问题,但是这种不平衡依旧存在(如70:1,还是很是高)。通常的解决方法就是bootstraping(也经常被称为难例挖掘方法)。

bootstrap方法是用当前训练集先训练出一个检测模型,然后使用该模型在训练集上进行检测,将检测错误的样本作为新的抚养本添加进负样本集中,再开始新一轮的训练。通过这种不断迭代的方式,不断提升检测模型的性能。在训练迭代开始时,使用所有的目标真值作为正样本,随机选取的背景框作为负样本。

Bootstraping技术被证明使用SVM时可以在整个数据集上收敛到最优。

Fast-RCNN和其相关的后继方法都没有使用Bootstrap技术。可能是由于使用SGD时固定模型来挖掘难例会速度很慢。

本文的贡献是提出了一种基于deenConv的在线难例挖掘技术(OHEM)。该算法改进了SGD,样本采集时使用的方式是non-uniform,non-stationary,依赖于每一个样本的的当前loss。

将OHEM应用于Fast-RCNN,与原有算法相比有3个优势:
1. 不用再使用很多在region-based ConvNet中使用的heuristics以及hyper-parameter
2. 在mAP性能上有很大的提升
3. 其有效性随着数据集的增大(难度和数量)而增大

2.Related work

Bootstraping技术在使用SVM做检测的方法中应用的很多。但是Fast-RCNN及其相关的方法并没有使用SVM,而是仅仅通过SGD的在线训练来实现检测。这使得当前的难例挖掘技术没有应用在这类方法上。

在这里简单的回顾介绍一下难例挖掘,ConvNet-based目标检测算法,以及深度学习与当前难例挖掘技术的关系。

Hard example mining

有2种难例挖掘技术,一种是用于优化SVM的。通过一个working-set,训练一个收敛于该working-set的SVM,然后使用该SVM,将一些easy的sample剔除(这些sample通常是远离SVM分类边界的),增加hard example到working-set中(这些hard-example是超出模型边界的错误分类样本)。注意,working-set只是整个训练集的一个子集。

另一种是用于优化non-SVM的。如被应用于浅层神经网络,boosted decision tree等,这种方法首先开始训练模型,训练的数据集开始是由所有的positive example和随机的negative samples组成的,训练出来一个模型后,将该模型应用于一个更大的数据集,将model检测错误的样本(false positives)添加到训练集中再继续训练。不断迭代训练。但是论文中提到这个过程通常只迭代一次,且没有收敛的迹象。

ConvNet-based object detection

介绍一下基于卷积神经网络和region-based目标检测方法

Hard example selection in deep learning

目前已经有用于深度学习网络的难例挖掘技术

3.Overview of Fast RCNN

介绍了一下Fast-RCNN的工作原理

选用Fast-RCNN作为本文算法的base-detector除了它是一种端对端的系统,还有以下3个原因:
1. Fast-RCNN中的conv和ROIpooling等结构在最近提出的很多网络中都有使用(如SPPNet,MR-CNN等),这样可以使本文提出的算法有更广泛的应用;
2. FRCNN允许整个卷积网络得到训练,但是MR-CNN,SPPNet网络则将卷积网络参数固定(没太懂)
3. SPPNet,MR-CNN都要求缓存ROI network输出的feature,而FRCNN则仅仅使用ROI network本身来讯分类器,试试证明unified system使用SVM是没有必要的

3.1 Training

FRCNN使用SGD方法训练。每个mini-batch,是从数据集中取N张图片,每张图片取B/N个ROI作为一个mini-batch(实际取B=128,N=2时效果较好)。

Foreground ROIs: 与标注目标框的IOU>0.5作为前景区域

Background ROIs: labeled as background(bg) :一个区域与GT的最大IOU在[bg_low,0.5)之间时,标记为bg。

这种生硬的使用bg_low固定值的方式在一些hard example中效果不是最优的,本文提出的方法不再使用bg_low这个参数。

Balancing fg-bg ROIs: 文献[14]提出一种将每个mini-batch中fg-bg比例rebalance到1:3的启发式方法:随机降采样背景样本,这样保证25%的mini-batch是fg-ROIs.这种策略是很重要的,如果不使用这种采样比例,增加或减少这种比例,都会使得mAP下降约3个百分点。

4.Our approach

我们会证明当前为SGD创建mini-batch的方法是次优的并且不是高效的。

4.1 Online hard example mining

交替训练:

  1. fixed model used to find new examples to add to the active trainings set
  2. fixed training set to train the new model

交替训练直到training set包含了所有的support vector。

传统的hard example mining无法使用在sgd中是因为在寻找新样本的时候无法进行训练模型,而深度网络需要的迭代次数较多,这样会导致训练很慢。

作者想到了一个新的方法:
在一个minibatch中和往常一样不升级模型,这时候选择样本(ROI),选择完再进行backwards,于是模型的更新次数和原来是一样的,只能是说想法比较简单,但是大家却没有向这方面想,这来源于作者扎实的基本功吧。
这样的方法,先讲RoI向前计算,挑选hard,然后反向传播,因为forward时RoI计算量的大部分是共享的,所以计算量不是很大,而且向后计算的时候计算量更小了(roi少了)。
但是,在向前计算的时候RoI可能会有较大的overlap,他们的loss 会相似,所以作者使用了NMS,threshold设置为0.7,比较松,每次都使用nms来选择样本。

这样做的另外一个好处就是不需要设定fg-bg的比例。

4.2 Implementation details

第一种实施方法:将easy example的loss设置为0,因此没有梯度传递,但是此时仍然需要占用内存和进行反向传播,这也是现有的框架的缺陷吧。

第二种实施方法:
ROI网络设置两个,一个只为read,只有forward占用内存,另外一个是标准的, Rhardsel 是指被选择的hard Roi,累计到其值等于batchsize B,反向传播,这样使用的内存差不多,但是收敛速度快了两倍。

5. Analyzing online hard example mining

FRCN with OHEM与baseline heuristic sampling方法比较;
FRCN with OHEM与一种不够高效的方法比较(使用所有available ROIs,而不是B hardest examples)

5.1 Experimental Setup
5.2 OHEM vs. heuristic

结果显示heuristic for hard example mining 得到的检测器性能是sub-optimal的。

5.3 Robust gradient estimates

N=2时,每个mini-batch使用的images太少,可能会导致训练收敛太慢以及梯度不稳定的问题。

实验了N=1,为了break本文提出的方法,发现mAP性能基本不会下降。这表明,有时候为了减少GPU内存压力,减少每个mini-batch中的图片数量不会导致性能下降,说明了OHEM算法对梯度估计得稳定性。

5.4 Why just hard examples, when you can use all?

B=2048,使用所有的RoIs,mAP性能仅仅提高了约1个百分点,但是本文的方法也提高了约1个点,且计算速度更快,因为使用更少的mini-batch size来做梯度计算。

5.5 Better optimization

作者比较了各种方法在不同迭代次数时所有的RoI的mAP

5.6 Computational Cost

作者比较了computational cost 比较起来内存和时间都有所升高。

6. PASCAL VOC and MS COCO results

在VOC2007和VOC2012, MS COCO数据集上都取得最好的mAP性能

在MS COCO数据集上的测试结果表明,OHEM对于小尺寸目标的检测有性能提高。

7. Adding bells and whistles

  1. Multi-scale: 设置一系列尺度(最短边长),训练和测试时随机选择一个
  2. Iterative bounding-box regression:

8.Conclusion

提出了一种用于 region-based ConvNet的难例挖掘训练方法。该方法可以使得训练过程收敛更加迅速并能提高检测性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值