Training Region-based Object Detectors with Online Hard Example Mining
写在前面
目标检测任务的一个特点就是类别不平衡问题,常常会有非常多的背景样本,例如在deformable parts model(DPM)
中背景与待检目标的比例就达到了100000:1
本文发表在CVPR-2016,是一种为了解决目标检测中类别不平衡问题
引出的方法
基于Faster-RCNN
,OHEM
最终在PASCAL VOC 2007
和2012
上分别取得了78.9%
,76.3% mAP
主要思想
本文提出的对Faster-RCNN
改进的OHEM
算法如下图所示:
我们知道,基于SVM的检测器,在训练时,使用hard example mining来选择样本需要交替训练,先固定模型,选择样本,然后再用样本集更新模型, 这样反复交替训练直到模型收敛
作者认为可以把交替训练的步骤和SGD结合起来。之所以可以这样,作者认为虽然SGD每迭代一次只用到少量的图片,但每张图片都包含上千个RoI,可以从中选择hard examples,这样的策略可以只在一个mini-batch中固定模型
,因此模型参数是一直在更新的。
更具体的,在第t次迭代时,输入图片到卷积网络中得到特征图,然后 把特征图和所有的RoIs输入到RoI网络中并计算所有RoIs的损失,把损失从高到低排序,然后选择B/N个RoIs。这里有个小问题,位置上相邻的RoIs通过RoI网络后会输出相近的损失,这样损失就翻倍。作者为了解决这个问题,使用了NMS
(非最大值抑制)算法,先把损失按高到低排 序,然后选择最高的损失,并计算其他RoI这个RoI的IoU(交叉比),移除IoU大于一定阈值的RoI,然后反复上述流程直到选择了B/N个RoIs。
为了解决这个问题,作者提出了Figure 2
这样的架构。这个架构有两个相同的RoI网络,不同的是其中一个只可读,另一个可读可写。我们看到(a)是只可读的,只对所有RoI做前向计算,所以只需分配内存给前向计算操作,(b)既可读也可写,对被选择的hard RoIs不仅做前向计算也做反向传播计算。
对于一次SGD迭代,计算过程如下:
- CNN先计算出特征图,可读RoI网络对所有RoI执行前向计算得到每个RoI的loss
- 选择hard RoIs。把这些hard RoIs输入到可读可写的RoI网络进行前向计算和反向传播更新网络
- 可读可写的RoI网络的参数赋值给只可读的网络,一次迭代就完成了。