目标检测中的RPN与Faster R-CNN、R-FCN

人工智能在图像处理领域的应用主要解决三方向:目标检测、目标分割和目标分类


目标检测的任务就是在图像中定位目标:
下面介绍目标检测的一些基本概念:
1、IoU(Intersection over Union)(交并比)

如下图:

IoU可以理解为你检测到的目标和实际目标的重合程度——精度(最大值100%)
2、mAP(平均精度均值)

(mean Average Precision,mAP),模型训练就是提高mAP。


3、Bounding Box(bbox)(边界框)

就是检测出的目标边界框,可以用如下格式表示:

p 可能性,(bx, by, bh, bw)边框位置,(c1, c2, c3)目标分类
[p, bx, by, bh, bw, c1, c2, c3]

4、非极大值抑制NMS( Non-max suppression)


图像目标检测的最初想法就是用一个框去从左到右从上到下(滑窗)扫描一张图片,这样的话就有可能有很多个点会声明(表示)自己发现了目标,只是p 可能性(或者IoU)有大有小,非极大值抑制就是把“不是最大可能性”的给抑制(“丢弃”),或者说保留可能性最大的。

滑窗技术逐点去扫描图片,效率很低下,于是产生了R-CNN。

5、R-CNN
基于区域的卷积神经网络(Region  based  Convolutional  Neural  Network)

 

由上图可知,R-CNN首先是将图像分割成感兴趣的区域RoI(region of interest),再进行卷积运算。R-CNN 的检测性能相较以往的方法有了很大的提升但是算法速度较慢,检测阶段也特别耗时。

6、Fast-RCNN

Fast-RCNN对R-CNN做了改良,在卷积层上做区域选择共享了权值,区域选择也不在原图上剪裁图像,因此极大的提升了训练速度。改进的算法在VOC2007 目标检测数据集上检测结果的 mAP 也从 R-CNN 的 66.0%提升到了 66.9%。简单来说,Fast R-CNN 在保证检测精度不变的情况下,极大的提升了目标检测的训练和测试速度。

Fast R-CNN 在 VOC2007 大数据集模型上检测速度能够达到4FPS,尽管这已经是 R-CNN 的 213 倍,但仍然不够快。其中一个问题是Fast R-CNN算法在得到候选区域聚类步骤非常缓慢……

7、区域候选网络RPN(Region Proposal Network)

在 2015 年,Ren 等人经过分析发现Fast-RCNN性能瓶颈是在区域选择上,于是提出了区域候选网络RPN。

RPN 网络将候选区域问题看作一个在特征图上的分类和回归问题。其参数可以通过训练得到。

RPN一般插入在最后一个卷积层和全连接层之间,卷积层结束后得到一个特征图,使用一个窗口在特征图上滑动。每次窗口都能得到一个框内是否是目标的分数(概率),同时对于边框的顶点位置进行回归。RPN首次提出了锚点(Anchor)的概念,即对于每个滑动窗口,使用 n 个尺度因子和 m 个不同长宽比共计 m×n 个不同的区域候选框。



8、Anchor(锚点)
Anchor Box(锚框)
锚点的提出使得候选框能够更加完整精确的框住不同类别的物体,对于最终检测精度的提升有着至关重要的作用。



RPN 是全卷积(full conv) 网络,其采用基础网络输出的卷积特征图作为输入. 首先,采用 512 channel,3×3 kernel 的卷积层,然后是两个并行的 1×1 kernel 的卷积层(一个分类,一个位置),该卷积层的 channels 数量取决每个点的 anchors 的数量



9、Faster R-CNN

Ren 等人在 2015 年末发表 Faster R-CNN,它是对 Fast R-CNN 的一种改进,在检测速度上和检测精度上得到了很大的提升。

RPN 结构的全卷积实现,k 是 anchors 数量






 由于 Faster R-CNN 可以采用 VGG16 的中间卷积层的输出,因此,不用关心输入的尺寸. 而且,模块仅利用了卷积层。在官方实现中是采用的卷积层 conv5/conv5_1的输出.在获得了特征图片后,需要寻找 proposals,如用于分类的 RoIs(regions of interest)、 Anchors 是用来解决长度不定问题的。 

10、R-FCN
( Region-based Fully Convolutional Networks),Faster R-CNN 对位置检测不够精确;
R-FCN是在Faster R-CNN的框架上进行改造,第一,把base的VGG16换车了ResNet,第二,把Faster R-CNN换成了先用卷积做prediction,再进行ROI pooling。由于ROI pooling会丢失位置信息,故在pooling前加入位置信息,即指定不同score map是负责检测目标的不同位置。pooling后把不同位置得到的score map进行组合就能复现原来的位置信息。




一个base的conv网络如ResNet101, 一个RPN(Faster RCNN来的),一个position sensitive的prediction层,最后的ROI pooling+投票的决策层,即:因为插入ROI pooling之后,后面的网络结构就不再具备平移不变性,所以把目标的位置信息(Position-sensitive score maps)融合进ROI pooling


从网络结构上看,R-FCN共享所有(101层)全卷积网络,所有运算速度也大大提高!





 

 
对应RoIs每个分类RoI,都对应的9个位置分别是:上左,上中,上右,中左,中中,中右,下左,下中,下右(上面的9层)都还有位置信息;通过vote平方,确定精确位置信息。

 

牛老师微信号1469289498:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值