[深度学习] RCNNs系列(4)Faster RCNN介绍

Faster RCNN是Kaming He与RCNN作者共同完成的一项工作,也是目前在目标检测领域非常知名并应用广泛的一种深度学习框架。自2016年被提出以后成为了Detection领域的baseline,众多的算法都是在Faster RCNN的基础上进行的改进,同时介绍结果时也是一Faster RCNN的结果为标准。Faster RCNN实现了RCNNs系列中目标检测的端到端检测的过程。我现在做的工作也是基于Faster RCNN的,我在使用Faster RCNN训练自己的数据时的过程和方法已经记录在我的博客 [深度学习] RCNNs系列(1) Ubuntu下Faster RCNN配置及训练和测试自己的数据方法里,下面我们来详细介绍一下这个深度学习框架。

一、背景介绍

整个RCNNs系列框架对目标检测这个问题的处理流程都是:(1)提出proposal;(2)使用CNN对proposal区域进行特征提取;(3)对proposal的位置区域进行识别回归从而完成检测流程。
经过RCNN,SPPnet和Fast RCNN的发展,目标检测领域已经取得了极大的进步,然而我们都知道深度学习的一个好处也是目标就是端到端的学习。尽管Fast RCNN已经把上面提到的第2、3步进行了整合,然而proposal的提出还是靠selective search,第1步还没有整合到深度学习框架中。我们这里介绍的Faster RCNN的主要贡献就是把proposal的提出也归一化的深度网络中,从而彻底把目标检测问题(不管训练还是测试)用一个端到端的卷积神经网络进行处理。

二、Faster RCNN介绍

Faster RCNN主要由两部分组成:(1)一个用于提出proposal的卷积神经网络(Regiin Proposal Network, RPN);(2)一个Fast RCNN的detector。按照惯例,我们先来看一下Faster RCNN的整体架构,如下图所示:


这里写图片描述

继承自Fast RCNN,Faster RCNN首先用卷积网络对整幅图像进行特征提取,然后使用RPN网络进行proposal的提出,最终将proposal对应的特征图区域放入Fast RCNN的detector中进行分类和回归。

2.1 Region Proposal Networks

RPN网络要做的就是把一幅输入图像转换成若干个矩形框,每个矩形框有一个对应是否是目标物体的分值(objectness score)。其实RPN网络非常的简单,就是在已有的公有卷积层(RPN和后面的detector公用的)上加上了一个n*n(文中n=3)的卷积层,并在该卷积层的基础上有两个1*1的兄弟卷积层(sibling layers,一个classify,一个regression)。
我们都知道目标检测的难点之一在于目标的大小和形状各异,如果使用固定大小的图像或者固定大小的filter其检测效果会很不理想,因此作者首先回顾了一下已有的一些目标检测时proposal的提取方法,如下图所示:


这里写图片描述

图中a和b是目前已有的方法,即使用不同尺度的图像或者filter以适应不同大小的物体,然而这样做的缺点是需要多次计算,计算要求比较高。图中c是作者提出的anchors,这就是RPN网络的精髓。

2.1.1 Anchors

Anchor机制是Faster RCNN中最出彩的创新点,所以理解Anchor机制是理解整个Faster RCNN中最重要的一部分。这一部分有点绕,我也是反反复复看了好多遍才彻底搞定,下面我们来详细介绍一下Anchor机制。
前面我们说RPN网络的本质就是一个n*n的卷积层后面跟两个1*1的兄弟卷积层,这是RPN网络实现后的结构,而我们需要理解的是RPN网络这样做的意义。
我们都知道卷积层做卷积的时候其实是把filter窗口在上一层的输出上进行以stride为步长的平移,然后在计算,这样的平移做法正好与目标检测领域很早以前应用的滑动窗口技术不谋而合,因此我们可以把 nn 的卷积层看作是一个 nn 的窗口在输入的feature map上进行滑动。那么我们假设每个滑动窗口都有可能有 k 个目标存在,那么我们后面的regression层则需要有 4k 个输出(对应矩形的四个点),我们的classify层则需要有 2k 个输出(对应每个目标是目标还是不是目标的概率)。我们这里讲的 k 个目标所对应的矩形框就是anchor。
(也可以这样理解,我们确定anchor所做的工作其实是ROIPooling的一个逆过程,ROIPooling中我们是知道确切的目标区域,然后把这个目标区域划分为若干块分别进行Pooling(例如把目标区域划分为 33 ,最终Pooling后的结果是 33 的方格)。现在我们是已知有

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值