文章目录
Training Region-based Object Detectors with Online Hard Example Mining论文阅读笔记2016
Abstract
目前标检测领域由于基于region的CNN的出现,取得了很大的进展。**但是它们的训练过程仍然包括了许多探索的方法(启发式)(heuristics)以及超参数,tune很耗时。**我们提出了一个简单然而非常有效的在线hard exanple mining(OHEM)算法来训练R-CNN。**我们受到的启发是:检测数据集中包含大量的easy example和一小部分hard examples。自动地选择这些hard examples可以使得训练更有效,且更有效率。**OHEM是一种简单直观的算法,它消除了一些常用的启发式(heuristics)和通常使用的超参数。更重要的是,在PSACAL VOC2007和2012中,它使得模型的检测表现获得提升,当使用MS COCO数据集时,效率提升以及表现提升更加明显。组合了一些其他的本领域进展,OHEM在PSACAL VOC 2007和2012分别取得了78.9%mAP和76.3%mAP,达到了SOTA。
1. Introduction
图像分类和目标检测是计算机视觉的两个基本任务。目标检测器通常通过“降维”训练,来将目标检测转化为图像分类问题。这种reduction就引入了一个新的挑战:**训练集的标注目标数量与背景examples的数量有着极大的不平衡。**在滑窗的目标检测器,比如DPM中,这种不平衡可能会达到100000个背景样本:一个目标。最近的proposal-based的方法一定程度上减轻了这种不平衡,但是仍有大概70:1。这个挑战为接下来更高更快的方法提供了解决的方向。
这不是一个新的挑战,一个标准的解决方法,原来叫做bootstrapping,现在叫做hard negative mining,已经存在超过20年了。Booststrapping最开始在1990s中期为了训练人脸检测模型而提出的。**关键的想法是通过选择那些使得检测器触发false alarm的样本来逐渐grow,or bootstrap背景样本的集合。**这种策略是==一种迭代的训练算法,交替进行下列更新:根据目前的示例集更新检测模型,使用更新后的模型找到新的false positives增加到bootstrapped训练集。==这个过程通常从一个包含所有目标样本和一小部分背景样本的训练集开始进行。
Bootstrapping在过去的研究中被广泛使用。Felzenszwalb等人发现,一种bootstrapping的形式可以使得SVMs收敛到整个数据集的全局最优解,他们的算法称为hard negative mining,之后广泛应用于目标检测的SVM的训练中,甚至R-CNN和SPPnet也使用了这种方法训练它们的SVM。
似乎很奇怪,目前最好的检测模型Fast R-CNN以及其变形,没有使用bootstrapping。其根本原因在于转向纯online 学习算法,尤其是使用SGD在数百万样本上训练的深度卷积网络带来的技术难题。Bootstrapping及其变体,依赖于上述提到的模板:
- 一段时间中,固定的模型用来找到新的examples来添加到目前的训练集中。
- 然后,一段时间,模型在当前固定的训练集中被训练更新。
使用SGD训练深度卷积网络需要上万次SGD迭代,仅仅冻结模型几个迭代也是一个很慢的过程。我们需要一个纯线上形式的hard example selection。
**本文提出了一种新的bootstrapping技术,叫做OHEM(online hard example mining),用来训练基于深度卷积网络的目标检测模型。**这个算法是对SGD的简单修正,SGD中训练的examples根据非均匀,非平稳分布进行采样,该分布取决于所考虑的每个示例的当前损失。**我们的方法利用针对检测的模型结构——每个SGD mini-batch只由一两张图片的上千个候选组成。候选examples按照一个有利于diverse和高损失的instances的分布进行采样,采样到更加hard的examples。**因为只处理一小部分候选,反向传播过程也很有效率。我们将OHEM应用到标准的Fast R-CNN方法中,并取得了三个优点:
- 不再需要several heuristics and hyperparameters。
- 在mAP上取得了稳定的有效的提