我读R-FCN

背景

论文地址:R-FCN: Object Detection via Region-based Fully Convolutional Networks
代码地址:GitHub

贡献

文章发表于 NIPS 2016,何凯明组新品。训练和测试速度比上一篇 Faster R-CNN 都有提高,单张图片测试用时 170ms,比 Faster R-CNN 快 2.5-20 倍,并且准确度略有提升(0.2%?)。

之前做法

R-CNN 系列对物体检测主要步骤是先提 proposals,然后对每个 proposal 单独做分类,同时微调 proposal 位置,最终使用非极大值抑制方法去除重叠的 proposal 得到最终结果。
Fast R-CNN 将提取 proposal 纳入神经网络范围,将神经网络最后一个 Pooling 层修改为 RoI 层,自此神经网络基于这个 RoI 层被分为前后两部分,Fast/Faster R-CNN 在 RoI 层之后的神经网络对每个 proposal 进行运算时,都有一个神经子网络,产生大量计算。

方法

本文通过 pooling + voting 方法去除了 RoI 后面子网络引出的大量计算,提高了训练和测试速度。下表可以看到,RoI 层后面子网络层数越来越少,在 R-FCN 中彻底干掉了。
这里写图片描述
那没有了子网络产生了一个问题,RoI 层后面接什么,怎么训练?

物体检测模型

作者这里提出了一个理论,图片分类要求网络具有平移不变性(这也是为什么在 RoI 之前加入全连接层表现不好的原因),而物体检测恰恰需要平移可变性。为了使 RoI 层后面具有平移可变性,作者提出在提出 RoI 层之后加入 k2 个 position-sensitive score map。Map 中一点的值为点到某一 Region 的距离,如到物体左上角/中心距离(此处留疑如何通过卷积获取)。
这里写图片描述
到这里我们可以看到每个 RoI 都对应了 k2(C+1) 个 map,假设有一个 RoI 宽高为 w, h ,做 selective pooling。具体为将 RoI 也划为 k2 个相同面积网格,每个网格 pooling 一个值,但注意一点是前面的 k2(C+1) 个 map 中,每个种类只 pooling 其中一个 position-sensitive score map。
说了这么多大家可能有点懵,看上面那张图,第三步中的颜色表示到不同位置距离产生的 map,而每种颜色中 map 只取网格中一块进行 pooling,输出结果到第四步图。简单求和(voting)产生第五步图,使用 softmax 标准 loss function。

边界回归模型

使用和物体检测相似方法,对 t=(tx,ty,tw,th) 产生 4k2 个 position-sensitive map,使用 selective pooling 得到 4 维向量,同 Faster R-CNN 相同的方法更新。

训练

  • Loss Function 和 Fast R-CNN 相同
  • weight decay = 0.0005
  • momentum = 0.9
  • single scale, shorter size of image = 600 pixel
  • 交叉训练 RPN & F-RCN,同 Faster R-CNN
  • -

实验

  • 非极大值抑制的 IoU 阈值为0.3
  • 洞洞算法1

这里写图片描述

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值