RefineDet论文笔记

  1. RefineDet大致介绍
    a. 我们知道目标检测目前主要分为两个流派,以YOLO和SSD代表的一步流和Faster R-CNN代表的两步流。他们优点分别是快和精确。
    b. 那么有没有一种可能把两个流派的优点结合起来呢。于是作者就提出了RefineDet,他引入了先得到一个粗筛的回归框,再进行修正的思路。同时在第一步时筛选掉一些负样本,减少搜索空间。这样就给第二步提供了更好的Anchor。
    c. 第二部基本和SSD一样,不过加入了第一步时得到的特征上采样的结果,使得小物体的检测更准确。
    d. 所以整个网络结构看起来有点像RPN+SSD。

  2. 两步方法的三个优点
    a. 处理了正负样本不平衡的问题。
    b. 两部级联回归预测框,使得预测框更精确。
    c. 两步的方法对物体分类也进行了两次,先判断前后景再判断种类。

  3. 主要模块
    a. ARM(anchor refinement module):作用如下
    i. 粗筛回归框,减少负样本数量
    ii. 提供更好的初始Anchor给ODM模块。
    b. ODM(object detection module):作用如下
    i. 根据ARM得到的预测框和前后景判断,进一步调整,并预测物体类别。
    c. TCB(transfer connection block):连接对应的ARM,ODM。

  4. 网络结构
    在这里插入图片描述
    开局一张图,可以看出很像时两个SSD。
    a. backbone:VGG-16 and ResNet-101
    b. ARM:每个框的预测结果为4个位置参数和前后景判断的2个参数。整体就是基础网络去掉分类层,然后加上图上灰色部分。
    c. ODM:每个框的预测救国为4个位置参数和不同数据集对应的种类数。ODM实际是将ARM和上采样的结果进行融合后得到的。
    d. TCB:如何融合特征呢,就靠TCB了。TCB的结构如图所示:
    在这里插入图片描述
    e. 两步级联回归:One-stage对于小物体不够强大,为解决这个问题,这里使用两步级联的方法。也就是ARM得到粗筛框,再通过ODM得到最后的结果。
    f. 负样本过滤:训练时,如果某一个Anchor为背景的置信度大于0.99,他将不参与训练。还用了一个叫做Hard Negative Mining的技巧,控制正负比高于1:3.
    g. 损失函数:由ARM和ODM对应的两部分损失函数组成,注意这里只除以正样本的数量。如果各部分的正样本数为0,那么就不去处理了。
    h. 测试时,先筛掉高于阈值的负样本框,然后对于每个图输出置信度最高的400个框,做0.45的NMS。最后的输出结果为置信度最高的200个框作为最终结果。

  5. 为何这样的思路也是可以称为One-Stage方法
    a. 在这个问题上,我思考了很久,最后在知乎得到了解答,结合源码大致得到了如下理解:
    i. 如果不考虑实现方法,只看论文,RefineDet看起来就是RPN+SSD,也就是把Fast R-CNN变为了SSD,那无疑其实是一个Two-Stage方法。
    ii. 但是作者在实现时,并没有直接在第一步的结果上进行一个抑制,而是当第二步结果出来后,结合第一步结果,将不符合所要的框的loss设为0,也就是不参与训练。
    iii. 也就是两次筛选也都是在第二步完成的,统一抑制,所以更像是一个One-Stage方法。
    iv. 实际上,One/Two-Stage方法界限不再像当年Faster R-CNN和YOLO的差距那么的明显了,而且对于Two-Stage的研究似乎已经不再是那么多了。毕竟One-Stage其实就是对RPN的一个调整,两者相同之处还是很多的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值