目标检测R-CNN系列算法改进对比总结

     在RCNN系列算法提出之前,目标检测是基于滑动窗口的方法。在图片上,选择大小适宜的窗口、合适的步进长度,进行从左到右、从上到下的滑动来遍历整张图片。每个窗口区域都送入CNN模型进行识别。滑动窗口目标检测方法明显的缺点是计算成本高。其中滑动窗口的大小、步幅是由人来设定。若窗口选择过大且步幅过大,可能会出现滑动窗不能完全覆盖目标的问题(如下图蓝色方框),会降低目标检测正确率;而窗口大小及步幅选择过小的话,每次滑动窗口区域都要经过一次CNN网络计算,计算成本高。

     R-CNN系列算法是将CNN方法引入目标检测领域的开山之作,极大改善目标检测的效果,R-CNN系列算法的改进流程如下所示。这里梳理以下这一系列的 two-state 的改进流程,每一部分附更详细的知识点总结。

1 R-CNN

     R-CNN方法的创新点主要是改用基于候选区域的方法(region proposals),主要通过选择性搜索(Selective Search)方法获取多个Region Proposal(候选区域)来预测位置。在RCNN中,不再对所有的滑动窗口跑算法,极大得减少了运算时间及计算成本。

     其检测流程为:

  1. 输入图像;
  2. 运行图像分割算法,利用selective search对图像生成1K~2K的候选区域(region proposal);
  3. 将每个Region Proposal缩放(warp)成227×227的大小并输入到CNN,将CNN的fc7层的输出作为特征;
  4. 对CNN的fc7层的输出特征输入到SVM进行分类;如果有十个类别,那么每个region proposal要经过10个SVM,得到预测的类别。
  5. 修正:对于SVM分好类的Region Proposal做边框回归,用Bounding box回归值校正原来的候选窗口,生成预测窗口坐标。

     其缺点为:

  1. 训练分为多个阶段,步骤繁琐:微调网络+训练SVM+训练边框回归器;
  2. 训练耗时,占用磁盘空间大;5000张图像产生几百G的特征文件;
  3. 测试速度慢:每个候选区域需要运行整个前向CNN计算;
  4. SVM和回归是事后操作,在SVM和回归过程中CNN特征没有被学习更新。

Selective Search详细知识点总结:Selective Search for Object Recognition【论文笔记】
R-CNN详细知识点总结:R-CNN 经典论文【论文笔记】

2 SPPNet

     Spatial Pyramid Pooling(空间金字塔池化):
     一般CNN后接全连接层或者分类器,它们都需要固定的输入尺寸,因此不得不对输入数据进行crop或者warp,这些预处理会造成数据的丢失或几何的失真。SPPNet的第一个贡献就是将金字塔思想加入到CNN,实现了数据的多尺度输入。

     如下图所示,在卷积层和全连接层之间加入了SPP layer。此时网络的输入可以是任意尺度的,在SPP layer可以根据输入调整大小,而SPP的输出尺度始终是固定的。

     那么SPPNet和Fast R-CNN有什么关系呢?

     Fast R-CNN中的ROI Pooling可以看做是单层的SPPNet的网络层,这个网络层可以把不同大小的输入映射到一个固定尺度的特征向量。对于不同尺寸大小的候选区域它们的特征图尺寸也不同,不能直接接到一个全连接层进行分类,但是可以加入这个神奇的ROI Pooling层,对每个region都提取一个固定维度的特征表示,再通过正常的softmax进行类型识别。

SPPNet详细知识点总结:SPPNET 经典论文【论文笔记 + pytorch实现】

3 Fast R-CNN

     相比于R-CNN,Fast R-CNN不再对每一个region proposal进行CNN特征提取,而是先将图片输入CNN网络进行特征提取,之后region proposal在特征图上进行截取;此外还提出了ROI Pooling池化层。

     其检测流程为:
在这里插入图片描述

  1. 输入图像;
  2. 将整张图片输入CNN,进行特征提取;
  3. 利用 selective search 算法在图像中提取2000个左右的建议窗口(Region Proposal);
  4. 在特征图中找到每一个region proposal对应的特征框,在ROI池化层中将每个特征框池化到统一大小;
  5. 统一大小的特征框经过全连接层得到固定大小的特征向量,分别进行softmax分类(使用softmax代替了RCNN里面的多个SVM分类器)和bbox回归。利用Softmax Loss(分类损失) 和Smooth L1 Loss(边框回归损失)对分类概率和边框回归(Bounding box regression)联合训练。

与R-CNN对比的不同:

  1. 最后一层卷积层后加了一个ROI pooling layer;
  2. 损失函数使用了多任务损失函数(multi-task loss),将边框回归直接加入到CNN网络中训练,实现了端到端的训练。

关于ROI Pooling(Region of Interest):

     该层的输入是特征图,输出是大小固定的 channel x H x W 的vector。ROI Pooling是将一个个大小不同的region proposals,映射成大小固定的(W x H)的矩形框。它的作用是根据region proposals的位置坐标在特征图中将相应区域池化为固定尺寸的特征图,以便进行后续的分类和输出回归框操作。

     ROI Pooling有两个输入,一个是图片进入CNN后的特征图,另一个是region proposals。ROI 的输出是一个 region_nums x channels x W x H 的向量。

Fast R-CNN详细知识点总结:Fast R-CNN 目标检测【论文笔记】

4 Faster R-CNN

     Faster RCNN将特征提取(feature extraction)、region proposal提取、bounding box regression、classification都整合在了一个网络中,使得综合性能有较大提高,在检测速度方面尤为明显。
     具体来说,它的网络结构长这样:

Faster -RCNN基本步骤:

  1. 提取特征:输入随机大小的图片,经过卷积层提取特征图;
  2. 生成region proposals: 经过Region Proposal Networks(RPN)生成先验框。该层通过softmax判断anchors属于foreground或者background,再利用 bounding box 回归修正anchors获得精确的候选区域。
  3. ROI Pooling: 该层的输入是feature maps和proposals,通过该层使每个RoI生成固定尺寸的特征向图;
  4. Classification: 将Roi pooling生成的固定尺寸的特征图分别传入softmax分类和bounding box regression获得检测物体类别和检测框最终的精确位置。

关于Region Proposal Network(RPN):

      Faster-RCNN的巨大优势主要在于第二步Region Proposal Networks(RPN)的设计。传统的Selective Search方法生成先验框非常耗时,而使用RPN生成先验框会快很多。

      RPN的作用是用来提取候选框的,类似于前面介绍的RCNN的第一步Selective Search。它的网络结构基于神经网络,输入是经过CNN网络提取出的特征图,输出是一系列可能存在目标的候选框,但不区分候选框之间的具体类别,只区分前景背景。

      相比Faster-RCNN,最重要的创新是使用RPN代替原来的Selective Search方法产生建议窗口。Faster-RCNN通过创造性地采用卷积网络自行产生候选框,并且该卷积网络和目标检测网络共享卷积网络,使得候选框数目从原有的约2000个减少为300个,且候选框的质量也有本质的提高。

Faster R-CNN详细知识点总结:Faster R-CNN 论文详解【论文笔记 + pytorch实现 附.pth权重文件】

5 三种目标检测神经网络对比说明

在这里插入图片描述
在这里插入图片描述
RCNN: 用SS去选框、CNN提特征、SVM分类、BB盒回归;

Fast: RCNN上面的四个步骤互不相关,就统一起来(实际上只统一了后面三个步骤),SS还用着呢!

Faster: SS太慢,丫的,也用CNN给你整进去,这样就更快了。

参考博客1
参考博客2

欢迎关注【OAOA

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值