论文笔记:Training Region-based Object Detectors with Online Hard Example Mining

论文:https://arxiv.org/pdf/1604.03540.pdf
简单来说,本文就是在Fast RCNN的基础上加入了在线难样本挖掘(Online Hard Example Mining, OHEM)。因此笔记也相应包含2部分:Fast RCNN的简单回顾&OHEM的介绍

Fast RCNN的回顾

  • Fast RCNN主要包含两个步骤:1. Convolution Network 在全图中通过CNN提取全局特征;2. ROI Network,通过ROI Pooling的方式提取出ROI相关的特征,最后通过FC Layer输出2路结果:

    • Softmax 分类输出,接Cross Entropy Loss
    • 坐标回归输出,接L1 Loss
      在这里插入图片描述
  • 对于Fast RCNN,我们需要指定每个输入ROI的Label(分类&回归)

    • 分类:需要根据ROI框以及GT框的IOU + 一个阈值来判断这个ROI本应属于正样本还是负样本
    • 回归:如果是正样本的话需要给定基于这个ROI框的偏移量,从而做到基于ROI的修正
  • 训练过程中,每次从训练集中取出N张图片,然后从每张图中取出 B / N 个ROI,作为网络的输入,通常N = 2, B = 128 ,而通常将这些ROI进行ROI Pooling,然后基于Pooling的Feature Map进行分类的过程是人工设定的,具体情况如下:

    • Foreground ROIs(正样本): 一个ROI(其实就是Selective Search的一个输出)与某个GT框的IOU如果大于0.5,就判定这个ROI是正样本,然后再通过坐标的回归去修正这个Selective Search结果
    • Background ROIs(负样本):一个ROI与若干个GT之间的最大的IOU在[bg_iou, 0.5)之间,就是负样本(在本方法中bg_iou被去掉了,因为这样会忽略掉小于bg_iou的一些重要的,不频繁的,难样本)
  • 正负样本的均衡:由正负样本的定义可以得知,正负样本必然是非常不均衡的(因为GT少,必然小于0.5的情况会更多)。为了解决这种问题,Fast RCNN强制要求正负样本的比例是1:3,保证25%的样本是正的,这对最终性能非常重要。然而这个参数非常敏感

OHEM

  • 本方法首先对RCNN中的Hard Sample给出了定义:根据Loss值来指定Hard Sample。 一个样本的Loss越大,表明该样本在当前的模型下表现越差,也就是说这个样本越难训
  • 所以针对一个Mini Batch(N张图,总共取出B个ROI),可以用以下的方式对ROI进行采样:
    • 对所有的ROI,也就是Selective Search的输入都进行ROI Pooling —— FC —— Classification —— Reg
    • 求出Reg Loss & Cls Loss,然后根据Cls 来排序,在每张图中取出B/N个样本。这里会产生一个问题:如果是只排序然后取出Loss最大的样本的话,这里的样本通常会重叠率很高(很有可能ROI坐标都差不多,Loss也相似)
    • 因此在排序之后加上一个NMS操作:以Loss作为得分,或者说是判断依据,然后用0.7作为阈值来筛出重复的ROI,从而减少不同的ROI之间Loss的相似度
  • 这种方式的好处在于,不需要强制指定正负样本的比例,可以相对自由地选择正负样本:
    • 如果正样本都很简单,如典型视角的车辆(Loss小),那么网络有可能都采用背景来作为输入
    • 反之,如果背景都是一些easy样本(天空,草地),那可以将所有的正样本ROI送入前景作为输入

OHEM的实现细节

  • 如果直接基于上图的Loss OP中修改,有一个问题是Hard样本会占用大量显存(具体的做法是指将hard样本的Loss置0,并且这部分Loss依然会回传,增加多余的计算量)(注:但其实现在很多的框架都可以实现Loss Mask)
  • 因此使用了下图的框架:
    在这里插入图片描述
    用一个共享参数的头部分支来处理Hard Sample。首先将所有的ROI经过绿色的ROI Network,并计算所有Loss,但只做前向,不做反向传播;然后通过难样本挖掘,取出其中的B/N 个样本,做反向传播。
    论文在实验中取了N=2,Selective Search的输出ROI数目大概是4000,batch size = 128,减少了非难样本的反向传播,速度会快2倍以上。

实验:略

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值