RCNN学习笔记(0)-RCNN->SPPnet->Fast RCNN->Faster RCNN

来源:互联网 发布:华为防火墙开放端口 编辑:程序博客网 时间:2024/05/20 21:23

发展流程: RCNN->SPPnet->Fast-RCNN->Faster RCNN->YoLo

RCNN: RCNN可以看做是
RegionProposal+CNN这一框架的开山之作,在imgenet/voc/mscoco上基本上所有top的方法都是这个框架。RCNN的主要缺点是重复计算。
SPPnet:MSRA的kaiming组的SPPnet 对RCNN重复计算的缺点,做出了相应的加速。关键是解决了 传统CNN输入需要图片长宽固定的问题,把原来的“从原图上截取区域”转换为“从feature map 上截取区域”
意义:有了这个改变,同一张图片上不同区域的物体检测,可以共享同一个原图特征。
Fast-RCNN:这是RCNN的加速版本,除了加速还附带了一些其他的优点:1.提供了在caffe框架下,如何定义自己的层、参数、结构的【范例】2.training and testing end-to-end。已经定义了ROIPooling 层
意义是,因为有了fast-rcnn 使得基于 cnn的real-time的目标检测方法看到了希望,以至于后面出现了faster-rcnn 以及yolo

这里写图片描述
(图片来自:知乎:iker peng https://www.zhihu.com/people/ikerpeng)


DPM

      早期的detection的主流方法是DPM(Deformable parts models),在VOC2007上能到43%的mAP。Ross B.Girshick 在论文中提出“Deformable Part Models are Convolutional Neural Networks”
https://arxiv.org/abs/1409.5403


CNN

      CNN流行之后,Szegedy做过将detection问题作为回归问题的尝试(Deep Neural Networks for Object Detection),但是效果]很差,在VOC2007上mAP只有30.5%。


RCNN

      RBG的RCNN使用region proposal,来得到有可能得到是object的若干(大概10^3量级)图像局部区域,然后把这些区域分别输入到CNN中,得到区域的feature,再在feature上加上分类器,判断feature对应的区域是属于具体某类object还是背景。
      RCNN存在着重复计算的问题(proposal的region有几千个,多数都是互相重叠,重叠部分会被多次重复提取feature)
RCNN在VOC2007上的mAP是58%左右。


SPPnet

      SPP首先解决了传统CNN输入需要图片长宽固定的问题(这个问题在 proposal region上 被放大);把原来的“从原图上截取区域”转化为“从feature map上截取区域” 这个操作是的同一张图片上不同区域的物体检测可以共享同一张原图特征。
      SPP的区域同样特征提取是在卷积层参数固定后进行的,并且要额外进行SVM 分类和区域框回归。


Fast-RCNN

      Ross B.Girshick 借鉴了Kaiming He的SPP-net的思路,勾画了Fast-RCNN。
      与RCNN最大的区别就是Fast-RCNN将proposal 的region映射到CNN的最后一层conv-layer 的feature map上,这样的一张图片只需要提取一次feature,大大的提高了速度。
      外加其他一些流程的整合,在VOC2007上的mAP提高到了68%
Fast-RCNN解决了两个技术问题:

  1. 如何让区域的选择可导(提出了 ROI Pooling操作,区域特征选择像Max Pooling 一样可导)
  2. 如何让SGD高效(把同一张的不同区域放在同一个batch 里) 并把元年来的区域框回归作为一个Multitask接在网络里。这样除了区域推荐之外的全部任务都可以在一个网路里面完成。

Faster-RCNN

      Ross B.Girshick 和Kaiming He 将Region proposal 也交给CNN来做,提出了Faster-RCNN。
      Faster-RCNN 中的region proposal network 从本质上讲 就是一个Fast-RCNN。
其输入的region proposal 是固定的(把一张图片划分成n*n个区域,每个区域给出9个不同ratio和scale的proposal)
      其输出是对输入的固定proposal 是属于背景还是前景的判断 & 对其位置的修正。
      Region proposal network 的输出再输入第二个 Fast-RCNN做更精细的分类和BoundingBox 的位置修正。
      Fater-RCNN速度更快了,而且用VGG net作为feature extractor时在VOC2007上mAP能到73%


YOLO

     简单的提一下YoLo。
     将dectection问题转化成了对图片局部区域的分类问题后,不能充分利用图片局部object在整个图片中的context信息。 针对这一问题,Ross B.Girshick提出了YoLo。

https://arxiv.org/abs/1506.02640