经典网络结构梳理:RCNN,FastRcnn,FasterRcnn目标检测

论文下载地址:RCNN:http://fcv2011.ulsan.ac.kr/files/announcement/513/r-cnn-cvpr.pdf

Fast RCNN:https://arxiv.org/abs/1504.08083

Faster RCNN:https://arxiv.org/abs/1506.01497

RCNN系列是应用最广泛的目标检测的算法。本章我们主要讲解一下RCNN,FastRCNN,FasterRCNN三个目标检测算法之间的联系和区别。

1.RCNN

RCNN的运行过程主要分为三个部分:1.候选区域的选取 2.CNN提取特征 3.分类和标注目标。

1.候选区域的选取:使用Selective Search方法在每张图片上选取1k~2k张候选区域,传入到网络中提取特征。这一步是最浪费时间的大约要耗时2-3秒左右。

2.CNN特征提取:将第一步得到的候选区域传送到CNN网络里面进行处理。

3.分类和标注:将第二步得到的特征向量传到SVM里面进行分类,之后再经过bbox回归得到标注框。

RCNN的整体流程如下图所示:

经典网络结构梳理:RCNN,FastRcnn,FasterRcnn目标检测_第1张图片

RCNN的缺点主要有:1.选取候选区域的时候会产生大量的候选区域占用磁盘空间。2.候选区域传到CNN里面的时候会预先进行归一化处理造成信息的丢失。3.每一个候选区域都放到网络里面造成相同的特征重复提取浪费资源。

2.Fast RCNN

 fast-Rcnn在rcnn的基础上做出了改进:

1.训练和测试速度得到了提升。

2.直接通过网络就行标注框回归和分类。

3.加入了ROI感兴趣区域。

下面我们就讲一下fast-rcnn是如何运行的。

1.候选区域的选取和rcnn的操作一样,都是通过Selective Search来选取2K张候选区域。

2.通过CNN来提取特征,CNN结构很简单是由CONV+RELU+POOLING组成。

3.这时候使用ROI对特征图进行统一化处理,传到fc层得到分类和标注框结果。

经典网络结构梳理:RCNN,FastRcnn,FasterRcnn目标检测_第2张图片

ROI详解:

我们详细的介绍一下ROI。如上图所示,左边后色标注框是我们传到网络里面的候选区域,经过卷积池化之后我们得到一个特征图,我们将特征图传到ROIpooling层里面进行处理:将特征图分成m*n大小,然后在每一块里面采用去最大值的方法这个无论候选区域及时大小不相同都可以得到一个m*n的特征图。

经典网络结构梳理:RCNN,FastRcnn,FasterRcnn目标检测_第3张图片

操作如上图所示。FAST RCNN仍然存在着很多问题:1.还是使用ss选取候选区域浪费时间。2.并不是严格意义上的端到端。

3.Faster RCNN

Faster-rcnn在前两个算法的基础上进行了改进。Faster-rcnn引入了RPN网络用来代替 Selective Search选取候选区域。

经典网络结构梳理:RCNN,FastRcnn,FasterRcnn目标检测_第4张图片

上图所示faster-rcnn的流程图,faster-rcnn主要分为四个部分:1.特征提取 2.RPN 3.ROI感兴趣区域 4.分类和回归。

  • Conv Layer: 卷积层包括一系列卷积(Conv + Relu)和池化(Pooling)操作,用于提取图像的特征(feature maps),一般直接使用现有的经典网络模型ZF或者VGG16,而且卷积层的权值参数为RPN和Fast RCNN所共享,这也是能够加快训练过程、提升模型实时性的关键所在。
  • Region Proposal Network: RPN网络用于生成区域候选框Proposal,基于网络模型引入的多尺度Anchor,通过Softmax对anchors属于目标(foreground)还是背景(background)进行分类判决,并使用Bounding Box Regression对anchors进行回归预测,获取Proposal的精确位置,并用于后续的目标识别与检测。
  • RoI Pooling: 综合卷积层特征feature maps和候选框proposal的信息,将propopal在输入图像中的坐标映射到最后一层feature map(conv5-3)中,对feature map中的对应区域进行池化操作,得到固定大小(7×77×7)输出的池化结果,并与后面的全连接层相连。
  • Classification and Regression: 全连接层后接两个子连接层——分类层(cls)和回归层(reg),分类层用于判断Proposal的类别,回归层则通过bounding box regression预测Proposal的准确位置。

RPN网络详解:

  Anchor是RPN网络中一个较为重要的概念,传统的检测方法中为了能够得到多尺度的检测框,需要通过建立图像金字塔的方式,对图像或者滤波器(滑动窗口)进行多尺度采样。RPN网络则是使用一个3×3的卷积核,在最后一个特征图(conv5-3)上滑动,将卷积核中心对应位置映射回输入图像,生成3种尺度(scale){128^2,256^2,512^2}{128^2,256^2,512^2}和3种长宽比(aspect ratio){1:1,1:2,2:1}{1:1,1:2,2:1}共9种Anchor,如下图所示。特征图conv5-3每个位置都对应9个anchors,如果feature map的大小为W×HW×H,则一共有9个anchors,滑动窗口的方式保证能够关联conv5-3的全部特征空间,最后在原图上得到多尺度多长宽比的anchors。

下图是faster-rcnn的流程图:

经典网络结构梳理:RCNN,FastRcnn,FasterRcnn目标检测_第5张图片

你可能感兴趣的:(深度学习)