OHEM: online hard example mining
论文链接:https://arxiv.org/abs/1604.03540
主要特点:
1.不需要设置正负样本比例来解决数据类别不平衡问题
2.数据集越大,性能越明显
文中所说:
1.OHEM is a simple and intuitive algorithm that eliminates several heuristics and hyperparameters in common use. But more importantly, it yields consistent and significant boosts in detection performance on benchmarks like PASCAL VOC 2007 and 2012.
2.Its effectiveness increases as datasets become larger and more difficult, as demonstrated by the results on the MS COCO dataset.
算法详解:
OHEM应用在fast-rcnn
1.根据损失进行筛选,选出对分类和检测影响大的样本。
2.将原来的ROI网络扩充为两个ROI,一个ROI只有前向传播,用于计算损失;一个ROI正常前向后向传播,以hard example作为输入,计算损失并传递梯度。
问题1:如何选择hard sample?
选择ROI的损失最大的样本,对于ROI重合问题使用NMS去除重合较大的ROI,设置IOU=0.7,大于0.7就去除
问题2:如何选择正负样本?
当一个ROI和一个ground truth的IOU大于0.5,则为正样本;当一个ROI和所有ground truth的IOU的最大值小于0.5时为负样本。(这样选择一定会出现很多负样本,可以通过提高IOU抑制负样本数量,具体设置数值,得通过实验确定)
Fast-RCNN结构
主要包括:卷积网络,ROI pooling网络,全连接和两个输出
Fast-RCNN中使用OHEM网络
下图中的(a)ROI网络只计算损失值,不反向传播,计算得出hard samples;
下图中的(b)ROI网络将hard samples作为输入,并反向传播,计算得出两个输出(类别和位置)
文中每个mini-batch选择2张图像,每张图像2000个ROI,共4000个,然后每个batch筛选128个hard samples
在SSD中使用了hard negative mining,这是通过对负样本抽样,抽样时按照置信度误差(预测背景的置信度越小,误差越大)进行降序排列,选取误差较大的top-k作为训练的负样本,保证正负样本比例接近1:3.
而OHEM是通过对hard samples进行训练,解决样本不平衡问题,同时提高了算法识别率
M:使用多尺度;B:不同阶段的bbox回归
COCO数据集上的结果,