OHEM论文解读
参考:http://blog.****.net/yaoqi_isee/article/details/63796423
Training Region-based Object Detectors with Online Hard Example Mining论文解读:
在FRCN中,定义background roi为和任意gt box的IOU在[bg_lo,0.5)的region proposal,bg_lo是一个超参数,在FRCN中设置为0.1。因为作者认为(0.1,0.5)的IOU对应的region proposal更有可能成为一些比较难分辨的ROI,也就是说,这么设置其实是一种简单粗暴的hard negative mining
Online hard example mining:对所有的ROIs进行前向传播,对ROIs根据loss(分类loss+回归loss)进行排序,选取前B / N个ROIs进行反向传播,(因为前向传播中ROIs的特征提取层是共享的,所以多余的前向传播计算很小,又因为只有一部分ROIs被选来进行反向传播更新参数,所以也不会有多余的反向传播计算)。
因为一张图上的ROI很多相互之间的overlap都很大,如果一个ROI是hard example,那么和它overlap很大的ROI很有可能也是一个hard example,这样反向传播的时候相当于就进行了一次重复的梯度计算。为了避免这个,我们可以先根据loss排序,然后进行非极大值抑制,最后再选择B/N个ROI进行反向传播。作者实验中,非极大值抑制的阈值选取的是0.7。
作者指出了因为当前深度学习框架设计的限制,即使我们在最终的loss层将除掉B/N个要反向传播的ROI之外的ROI的loss都设置成0,这些ROI还是会进行反向传播,还是会为每一个ROI分配梯度对应的内存空间。这样显然不够efficient。因此作者在实现的时候采用了如下所示的网络结构: