Faster R-CNN 详解

Faster R-CNN是一种实时目标检测算法,通过Region Proposal Network(RPN)提升精度和速度。它创新性地将RPN与Fast R-CNN的检测网络共享卷积层,从而实现效率的提升。
摘要由CSDN通过智能技术生成

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

论文链接 1  论文链接 2


Faster R-CNN 是一个 end-to-end 的目标检测算法。相比 Fast R-CNN 有更高的精度和速度。其 主要思想有以下 2 点
(1)提出了 Region Proposal Network【RPN】,替代了传统的生成候选框的方法。
(2)将 Region Proposal Network【RPN】与检测网络【Fast R-CNN】共享卷积层,大幅提高网络的检测速度。


一、详解 RPN


(一)网络结构

图 1

图 1:RPN 网络结构

  Faster R-CNN 相比 Fast R-CNN 的最大改进就在于提出了 RPN 网络。所以 Faster R-CNN 可以看做:RPN + Fast R-CNN。RPN 网络使用卷积神经网络提取候选框,替代了传统的基于底层视觉信息的生成候选框的方法,比如 selective search、edge boxes。在速度上和精度上都有了显著的提高。

  RPN 网络的输入: 经过 CNN 后生成的 feature map
  RPN 网络的输出: 分类【objectness 置信度】+ 回归【所有 proposals 的左上角坐标(x, y),宽高(w, h)】

  因为我们的最终目标是要将 RPN 和 Fast R-CNN 共享卷积。对于共享部分的网络的输出是一个 feature map。所以对于 RPN 网络非共享的第一层。我们使用一个 n × n n \times n n×n 的卷积核,对共享部分生成的 feature map 进行卷积操作,并将最后的维度缩减至低维(ZF 256 维,VGG 512 维)。

  然后使用 两个并列的全连接层(使用 1 × 1 1 \times 1 1×1 卷积实现),分别输出分类和回归的结果。其中分类的分支用来判断是否是一个物体([0, 1]),即判断候选框中的 objectness(对象性)。或者说是判断候选框中的物体是背景还是前景。回归的分支用于最小化候选框与 ground truth 的差值。其中 分类的输出通道数为 2k回归的输出通道数为 4k(k 为一个 feature map 中的点生成的 anchor 的个数)。网络的结构见图 1。


(二)Anchor

  对于 RPN 网络,最重要的一个概念就是 anchor。那么 什么是 anchor?

图 2

图 2:Anchor 的定义

  在引入 Anchor 之前,我们需要思考一个问题。我们 如何生成一系列大小各不相同的 region proposals 呢? 其实可以这样,我们可以 先在原始图片中生成各种大小,长宽比例的窗口。对于与 ground truth 有高重叠的窗口,我们对其进行修正。对于那些与 ground truth 重叠很低的窗口,我们不进行修正。最后筛选出于 ground truth 重叠很高的窗口,就得到了最后的 region proposals。

  那么如何生成各种大小,长宽比例的窗口呢? 记生成窗口的边长(正方形)为 scale,窗口的长宽比为 aspect ratio。记它们的个数为 N s c a l e , N a s p e c t    r a t i o N_{scale},N_{aspect \; ratio} Nscale,Naspectratio。那么我们就可以 先生成一个正方形,然后再将长宽缩放到对应的比例。即为生成的窗口。那么一次,我们能生成 N s c a l e × N a s p e c t    r a t i o N_{scale}\times N_{aspect \; ratio} Nscale×Naspectratio 个窗口。

  我们 将 feature map 上的点,映射到原始图片上的一个区域。以这个区域的中心点生成如上我们所说的窗口,那么这个窗口,就叫做 anchor。设 feature map 的长和宽分别为 w 和 h,那么生成的 anchor 的个数为 w × h × N s c a l e × N a s p e c t    r a t i o w \times h \times N_{scale}\times N_{aspect \; ratio} w×h×Nscale×Naspectratio

  Faster R-CNN 中的 anchor 有 3 种不同的尺度 { 128 × 128 , 256 × 256 , 512 × 512 } \{128 \times 128,256×256,512×512\} { 128×128,256×

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值