目标检测之OHEM

一、目标检测之OHEM

Training Region-based Object Detectors with Online Hard Example Mining

二、OHEM算法

目标检测之OHEM
步骤:

  1. 将Fast R-CNN分成两个部分:ConvNet和RoINet.;ConvNet为共享的底层卷积层,生成feature map;RoINet为RoI Pooling后的层,包括全连接层;
  2. 对于每张输入图像,经前向传播,用ConvNet获得feature maps(这里为RoI Pooling层的输入);
  3. 将事先计算好的proposals,经RoI Pooling层投影到feature maps上,获取固定的特征输出作为全连接层的输入; 需要注意的是,论文说,为了减少显存以及后向传播的时间,这里的RoINet是有两个的,它们共享权重,RoINet1是只读(只进行forward),如上图(a);RoINet2进行forward和backward,如上图(b):
    (1)将原图的所有props扔到RoINet1,计算它们的loss(这里有两个loss:cls和reg);
    (2)根据loss从高到低排序,以及利用NMS,来选出前K个props(K由论文里的N和B参数决定) !!!为什么要用NMS? ___显然对于那些高度overlap的props经RoI的投影后,其在feature maps上的位置和大小是差不多一样的,容易导致loss double counting问题;
    (3)将选出的K个props(可以理解成hard examples)扔到RoINet2,这时的RoINet2和Fast RCNN的RoINet一样,计算K个props的loss,并回传梯度/残差给ConvNet,来更新整个网络;

OHME优势:

  • 减少fg和bg的ratio,而且不需要人为设计这个ratio;
  • 加速收敛,减少显存需要这些硬件的条件依赖;
  • 放宽了定义negative example的bg_lo threshold,即从[0.1, 0.5)变化到[0, 0.5)。
  • 取消了正负样本在mini-batch里的ratio(原Fast-RCNN的ratio为1:3—postive:negtive)

结果
目标检测之OHEM

目标检测之OHEM