zoukankan      html  css  js  c++  java
  • 两阶经典检测器: Faster RCNN (一) 发展史综述

         RCNN全称为Regions with CNN Features, 是将深度学习应用到物体检测领域的经典之作, 并凭借卷积网络出色的特征提取能力, 大幅度提升了物体检测的效果。 而随后基于RCNNFast RCNNFaster RCNN将物体检测问题进一步优化, 在实现方式、 速度、 精度上均有了大幅度提升。

         物体检测领域出现的新成果很大一部分也是基于RCNN系列的思想, 尤其是Faster RCNN, 并且在解决小物体、 拥挤等较难任务时,RCNN系列仍然具有较强的优势。 因此, 想要学习物体检测, RCNN系列是第一个需要全面掌握的算法。

    1. RCNN系列发展历程
         在2014RCNN算法问世之后, 经历了众多版本的改进, 但具有里程碑式意义的当属Fast RCNNFaster RCNN算法。 本节主要讲述这3种算法的思想、 优点及存在的问题。

     1.1 开山之作: RCNN
        RCNN算法由Ross Girshick等人发表在CVPR 2014, 将卷积神经网络应用于特征提取, 并借助于CNN良好的特征提取性能, 一举将PASCAL VOC数据集的检测率从35.1%提升到了53.7%

        RCNN算法流程如图4.1所示, RCNN仍然延续传统物体检测的思想, 将物体检测当做分类问题处理, 即先提取一系列的候选区域, 然后对候选区域进行分类。

       具体过程主要包含4步:
      (1) 候选区域生成。 采用Region Proposal提取候选区域, 例如Selective Search算法, 先将图像分割成小区域, 然后合并包含同一物体可能性高的区域, 并输出, 在这一步需要提取约2000个候选区域。 在提取完后, 还需要将每一个区域进行归一化处理, 得到固定大小的图像。

        (2) CNN特征提取。 将上述固定大小的图像, 利用CNN网络得到固定维度的特征输出。

      (3SVM分类器。 使用线性二分类器对输出的特征进行分类, 得到是否属于此类的结果, 并采用难样本挖掘来平衡正负样本的不平衡。
      (4) 位置精修。 通过一个回归器, 对特征进行边界回归以得到更为精确的目标区域。

       RCNN虽然显著提升了物体检测的效果, 但仍存在3个较大的问题:

               首先RCNN需要多步训练, 步骤烦琐且训练速度较慢;

               其次, 由于涉及分类中的全连接网络, 因此输入尺寸是固定的, 造成了精度的降低;

               最后, 候选区域需要提前提取并保存, 占用空间较大。

     1.2 端到端: Fast RCNN
        RCNN之后, SPPNet算法解决了重复卷积计算与固定输出尺度的两个问题, 但仍然存在RCNN的其他弊端。 在2015年, Ross Girshick独自提出了更快、 更强的Fast RCNN算法, 不仅训练的步骤可以实现端到端, 而且算法基于VGG16网络, 在训练速度上比RCNN快了近9倍, 在测试速度上快了213倍, 并在VOC 2012数据集上达到了68.4%的检测率。

        Fast RCNN算法框架图如图4.2所示, 相比起RCNN, 主要有3点改进:

           ·共享卷积: 将整幅图送到卷积网络中进行区域生成, 而不是像RCNN那样一个个的候选区域, 虽然仍采用Selective Search方法, 但共享卷积的优点使得计算量大大减少。
           ·RoI Pooling: 利用特征池化(RoI Pooling) 的方法进行特征尺度变换, 这种方法可以有任意大小图片的输入, 使得训练过程更加灵活、 准确。

           ·多任务损失: 将分类与回归网络放到一起训练, 并且为了避免SVM分类器带来的单独训练与速度慢的缺点, 使用了Softmax函数进行分类。

                                                       

        Fast RCNN算法虽然取得了显著的成果, 但在该算法中, Selective Search需要消耗2~3秒, 而特征提取仅需要0.2秒, 因此这种区域生成方法限制了Fast RCNN算法的发挥空间, 这也为后来的Faster RCNN算法提供了改进方向。

    1.3 走向实时: Faster RCNN

         Faster RCNN算法发表于NIPS 2015, 该算法最大的创新点在于提出了RPNRegion Proposal Network) 网络, 利用Anchor机制将区域生成与卷积网络联系到一起, 将检测速度一举提升到了17 FPSFrames PerSecond) , 并在VOC 2012测试集上实现了70.4%的检测结果。
         Anchor可以看做是图像上很多固定大小与宽高的方框, 由于需要检测的物体本身也都是一个个大小宽高不同的方框, 因此Faster RCNNAnchor当做强先验的知识, 接下来只需要将Anchor与真实物体进行匹配, 进行分类与位置的微调即可。 相比起没有Anchor的物体检测算法,这样的先验无疑降低了网络收敛的难度, 再加上一系列的工程优化, 使得Faster RCNN达到了物体检测中的一个高峰。

  • 相关阅读:
    JSON 操作
    生成下面的模块时,启用了优化或没有调试信息
    Emacs
    Integration rules
    Testing tools
    软件架构(读书笔记1)
    依赖于自己做计算
    POJO
    软件架构(读书笔记2)
    设计得不好
  • 原文地址:https://www.cnblogs.com/zhaopengpeng/p/13786650.html
Copyright © 2011-2022 走看看