美文网首页
6. Faster R-CNN

6. Faster R-CNN

作者: 做只小考拉 | 来源:发表于2018-10-30 19:09 被阅读21次

    本文来源于https://www.cnblogs.com/skyfsm/p/6806246.html
    https://blog.csdn.net/amor_tila/article/details/78809791

    基于深度学习的目标检测技术演进:
    R-CNN -> SPP-Net -> Fast-RCNN -> Faster-RCNN -> R-FCN

    1.Faster-RCNN结构

    Fast R-CNN存在的问题:存在瓶颈:选择性搜索,找出所有的候选框,这个也非常耗时。那我们能不能找出一个更加高效的方法来求出这些候选框呢?
    解决:加入一个提取边缘的神经网络,也就说找到候选框的工作也交给神经网络来做了。
    做这样的任务的神经网络叫做Region Proposal Network(RPN)。

    SPP-Net和Fast-RCNN从特征提取角度,减少了工作量,但依然没解决Selective Search选择候选区域速度慢的问题。
    Faster-RCNN 使用RPN代替Selective Search算法,使目标识别实现真正端到端的计算。

    具体做法:
      • 将RPN放在最后一个卷积层的后面
      • RPN直接训练得到候选区域

    image

    Faster-RCNN由两大模块组成:

    1. RPN候选框提取模块
    2. Fast-RCNN检测模块
      其中,RPN是全卷积神经网络,用于提取候选框;Fast-RCNN基于RPN提取的proposal检测并识别propasal中的目标。

    2. RPN

    RPN的核心思想是使用CNN卷积神经网络直接产生Region Proposal,使用的方法本质上就是滑动窗口(只需在最后的卷积层上滑动一遍),因为anchor机制和边框回归可以得到多尺度多长宽比的Region Proposal。

    RPN网络也是全卷积网络(FCN,fully-convolutional network),可以针对生成检测建议框的任务端到端地训练,能够同时预测出object的边界和分数。只是在CNN上额外增加了2个卷积层(全卷积层cls和reg)。

    ①将每个特征图的位置编码成一个特征向量(256dfor ZF and 512d for VGG)。

    ②对每一个位置输出一个objectness score和regressedbounds for k个region proposal,即在每个卷积映射位置输出这个位置上多种尺度(3种)和长宽比(3种)的k个(3*3=9)区域建议的物体得分和回归边界。

    RPN简介:

    • 在feature map上滑动窗口操作,得到候选区域。
    • 建一个神经网络用于物体分类+框位置的回归。
    • 滑动窗口的位置提供了物体的大体位置信息。
    • 框的回归提供了框更精确的位置。
    • RPN网络输入的特征图和全连接层中的特征图共享计算。
    • RPN的使用,使Faster-RCNN能够在一个网络框架之内完成候选区域、特征提取、分类、定位修正等操作。

    因为我们的最终目标是和Fast R-CNN目标检测网络共享计算,所以假设这两个网络共享一系列卷积层。
    RPN的具体流程如下:使用一个小网络在最后卷积得到的特征图上进行滑动扫描,这个滑动网络每次与特征图上n*n(论文中n=3)的窗口全连接(图像的有效感受野很大,ZF是171像素,VGG是228像素),然后映射到一个低维向量(256d for ZF / 512d for VGG),最后将这个低维向量送入到两个全连接层,即bbox回归层(reg)和box分类层(cls)。sliding window的处理方式保证reg-layer和cls-layer关联了conv5-3的全部特征空间。

    reg层:预测proposal的anchor对应的proposal的(x,y,w,h)

    cls层:判断该proposal是前景(object)还是背景(non-object)。

    image.png

    在上图(RPN框架图)中,要注意,33卷积核的中心点对应原图(re-scale,源代码设置re-scale为6001000)上的位置(点),将该点作为anchor的中心点,在原图中框出多尺度、多种长宽比的anchors。所以,anchor不在conv特征图上,而在原图上。

    image.png 上图即为9种anchor图, image.png image.png

    上图即为Faster-RCNN卷积流程图。原图6001000经CNN卷积后,在CNN最后一层(conv5)得出的是4060大小的特征图。

    在RPN网络中,我们需要重点理解其中的anchors概念,Loss fucntions计算方式和RPN层训练数据生成的具体细节。

    一种网络,四个损失函数;
      • RPN calssification(anchor good.bad)
      • RPN regression(anchor->propoasal)
      • Fast R-CNN classification(over classes)
      • Fast R-CNN regression(proposal ->box)

    image

    速度对比

    image

    Faster R-CNN的主要贡献是设计了提取候选区域的网络RPN,代替了费时的选择性搜索,使得检测速度大幅提高。

    3. 优缺点

    优点:
    RPN使得Faster R-CNN在region proposal阶段只需10 ms,检测速度达到5 f/s (包括所有步骤),并且检测精度也得到提升,达到73.2%。

    缺点:

    1. Faster R-CNN仍然使用ROI Pooling,导致之后的网络特征失去平移不变性,影响最终定位准确性;
    2. ROI Pooling后每个区域经过多个全连接层,存在较多重复计算;
    3. Faster R-CNN在特征图上使用锚点框对应原图,而锚点框经过多次下采样操作,对应原图一块较大的区域,导致Faster R-CNN检测小目标的效果并不是很好。

    相关文章

      网友评论

          本文标题:6. Faster R-CNN

          本文链接:https://www.haomeiwen.com/subject/itwitqtx.html