论文笔记 | Training Region-based Object Detectors with Online Hard Example Mining
2016-07-07 10:56
645 查看
Authors
Abhinav Shrivastava Abhinav Gupta Ross GirshickAbhinav Shrivastava
这篇文章很多人说不值得在cvpr oral,不过有ross Girshick,还是要看一看的。
Abstract
本文提出了online hard example mining(OHEM),使用的是Bootstrapping技术,又一次说明了浅层学习的技术不能丢,我们熟悉的boosted decision trees就有应用(这里埋一个xgboost的链接http://dataunion.org/15787.html)。原本的bootstrapping一般循环迭代以下过程:
1. 某一时期,用于发现新的模型加入到active training set中
2. 用固定的active training set来训练模型
对于深度网络,如果我们强势加入sgd的过程,就会不断重复查找新数据,训练模型,sgd的steps是很多很多的,这样就会使训练过程减慢很多。
于是本文提出了OHEM,我们使用的minbatch sgd,每次只选用一两张图片,但是会有数以千计的候选区,这里我们每次直选用高loss的样本来进行反向传播,以为使用反向传播的样本少了,所以运算还是高效的。OHEM有以下三点优点:
1. 省去了region-based Convnets 的一些超参数和heuristics
2. 比较明显的提高了mAP
3. 当训练数据越大,越困难的时候效果越明显,而且这中方法还与multiscale iterative bbox regression啥的相互补充,可以用来combine。
2 related work
2.1 Hard example mining
一般来说有两种hard example mining1. 第一种是对svm的,方法是训练与样本更新不断交叉循环,样本的更新方法是每次去掉一部分容易分辨的,加上一部分不容易分类的样本。每次使用的样本数量相对全部的数量来说比较小。
2. 对于非svm比如浅层网络,boosted decision tree。首先使用一部分正样本和随机的负样本,训练到收敛,然后应用于更大的样本,然后收获一部分预测失败的样本,加入到测试集继续训练,一般这样的方法只使用一次,对于收敛似乎没有什么帮助
2.2 hard example selection in deep learning
有些相似的方法,有些是运用于分类上的。3 Overview of Fast RCNN
Foreground RoIs, 与groundtruthIoU大于0.5的称为ForegroundBackground RoIs,IoU在0.1-0.5之间的为background,相当于假设这样的样本是hard example,这样的做法忽略了一些,难以分清的比较重要的background regions。所以本文没有使用bg_lo
Balance fg-bg Rois,传统上限制正负比例为1:3,这样的设计很有必要,但是如果使用本文的方法,就可以去掉限制了。
4 our approach
4.1 online hard example mining
传统的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 detail
第一种实施方法:将easy example的loss设置为0,因此没有梯度传递,但是此时仍然需要占用内存和进行反向传播,这也是现有的框架的缺陷吧。第二种实施方法:
ROI网络设置两个,一个只为read,只有forward占用内存,另外一个是标准的,Rhard−sel是指被选择的hard Roi,累计到其值等于batchsize,反向传播,这样使用的内存差不多,但是收敛速度快了两倍。
5 analyze
5.1 实验设置
lr0.001decay lr by 0.1 every 30k iteration
5.2 OHEM vs heuristic
使用 bg_lo0.1时的启发式搜索比OHEM少2.4个百分点,bg-lo=0时少4.8个百分点5.3 Robust
使用OHEM时如果N(batchsize)=1,mAP基本没有变,但是使用原来的方法,下降一个点。5.4 Why not all examples?
首先回顾下fast 中如何选取roi,每张图64个,首先16个是大于0.5iou的,剩下48个从0.1-0.5抽样,作者做了一个实验,将64变大(1028,2048)得到结果确实好了一个百分点,但是还是不如OHEM5.5 Better optimization
作者比较了各种方法在不同迭代次数时所有的RoI的mAP:5.6 Cost
作者比较了computational cost 比较起来内存和时间都有所升高。7 bells and whistles
Multi-scaleIterative bounding-box regression
S. Gidaris and N. Komodakis. Object detection via a multi-region & semantic segmentation-aware cnn model. In ICCV, 2015.
看下ablation analysis的结果
conclusion
AuthorsAbstract
related work
1 Hard example mining
2 hard example selection in deep learning
Overview of Fast RCNN
our approach
1 online hard example mining
2 implementation detail
analyze
1 实验设置
2 OHEM vs heuristic
3 Robust
4 Why not all examples
5 Better optimization
6 Cost
bells and whistles
conclusion
相关文章推荐
- iOS学习(十)Objective-C 内存管理规则
- Objective-C-UI控件学习之下拉刷新
- iOS学习(九)Objective-C self和super
- 添加IObjectSafety接口使MFC写的OCX可信
- Object与RTTI
- JAVA源码分析之---Object类(一)---registerNatives,getClass方法的使用
- Objective-C 编程之道 iOS设计模式解析--第22章 代理
- 李洪强iOS开发之【Objective-C】07-自定义构造方法和description方法
- [精通Objective-C]运行时系统
- java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper
- 对象属性的遍历
- Objective-C语法之字符串NSString
- selenium+java+testNG+pageObject深入理解自动化测试框架
- Objective-C语法之KVC使用
- 正则表达式检索字符串
- JavaScriptCore和Objective-C 交互
- javascript 对象数组根据对象object key的值排序
- objc_setAssociatedObject/objc_getAssociatedObject
- 关于 warning CS0659:“***”重写Object.Equals(object o)但不重写Object.GetHashCode()
- SuperMap iObjects C++之MFC快速入门