abstract
- 论文地址:Training Region-based Object Detectors with Online Hard Example Mining
- 在目标检测中,使用SS或者滑动窗口等方法得到的proposal中,正负样本的个数比例差距很大,之前的方法都是选择若干个负样本的proposal,使得正负比为1:3,论文中使用OHEM,对正负样本个数比例没有限制。
- OHEM在每次训练的过程中,选取那些loss更大的roi,对其进行bp,这个思想与bootstrapping类似。
- 基于OHEM的fastRCNN提升了几个mAP的点。
introduction
- 在目标检测中类别不均衡的情况一直很严重,即使引入region proposal,这种情况依然存在。
- bootstrapping之前在机器学习中应用得较多,主要是在每次迭代过程中,更加关注那些误分的样本,从而提升模型的精度。
- 本文中的OHEM主要以下几个优势
- 移除了之前的一些假设与超参数。
- 提升了检测任务的mAP。
- 当检测任务更加复杂的时候,OHEM的有效性更加明显。
fast RCNN overview
- fast RCNN主要流程图如下
- 在训练的过程中,因为每张图像上都有大量的proposal,因此基于一些假设,对其进行随机采样,最后每张图像中只取
B/N
个proposal给后面的RoI net进行运算。我们使用 - 在proposal中,任何与gt box的IOU大于一定阈值的都被视为
foreground roi
,任何在IOU在[bg_lo,0.5)范围内的roi都被视为background roi
,因为希望模型能够学习到更多的东西,因此在这里设置bg_lo=0.1
,因为与gtbox有部分重叠的box在检测过程中可能更加困难。 - 针对正负样本个数差距太大的问题,对负样本进行采样,使得最终正负样本在1:3左右。
our approach
- 之前是随机选择ROI进行之后roi net的操作,论文中则可以通过OHEM选择那些检测困难的样本,并进行之后的roi net。
- 在OHEM中,所有的proposal都先通过roi net进行forward操作,在backward的过程中,因为只对那些loss很大的roi进行了bp,因此计算量没有增加太多。
- 在使proposal经过roi net之前,使用NMS去除重叠的bbox。
- 在这里因为只使用那些loss很大的roi做bp,因此不需要设置fg-bg ratio,因为那些被忽视的正例的loss会越来越高,在之后样本选择的过程中会有更大的概率被选中进行bp。
implementation details
- 在实现的过程中,我们可以将所有non-hard roi的loss修改为0,但是这种方法仍然会对所有的roi进行bp的运算,这回造成大量的内存损耗。
- 针对以上问题,使用下列解决方案:使用2个RoI network,它们之间共享参数,一个roi network只用于forward,它是只读的,计算loss之后,选取hard example之后,将其作为另外一个roi network的输入,这个network是用于forward与backward的,整体的流程图如下
experiment and results
- 主要是在VOC和coco数据集上做了很多实验,并进行大量对比实验与调参(显卡要多才能做完这些啊。。。),具体的内容可以参考论文。
conclusion
- 主要就是介绍了OHEM这种困难样本挖掘的方法,可以提升检测任务的baseline。
- 论文中的方法是针对所有的类别进行的实验分析,之后的工作中,也可以研究在单一类别的性能上,不同训练方法的影响。