您的位置:首页 > 其它

RCNN & SPP-net & Fast-RCNN & Faster-RCNN

2016-04-28 23:18 465 查看
转载自:http://blog.sina.com.cn/s/blog_9ae57c020102vopp.html

先截个图,这就是RCNN的原理图。




 该文是由UC-Berkeley(加利福尼亚大学伯克利分校)发表的。说明下RCNN的意思。CNN也就是众多周知的convolutional neural network, R是region的缩写,意为对图像进行局部区域的处理。 该文的主要亮点在于:,一是利用的region proposals对物体探测中位置信息的精确处理,二是利用监督式预训练和主域特殊化的微调方法,代替了传统的非监督式预训练和监督式微调,使得MAP(mean average precision )得到大幅提升。现在来介绍原理图的具体实现。
  由于在深度CNN中,FC(full-connected)层的输入是需要定的size的,所以对输入图像的大小需要做预处理以满足这一要求。本文中采取的是wrap方案。生成类别独立的region proposals 有许多可选方法,该文采取了selective search方案。在image中取出大约有2000个region proposals, 他们的维数都是4096维。之前提到的wrap接着对region proposals进行固定size的处理。接着通过CNN进行特征提取,然后再用这些特征训练SVM分类/预测器。在原理图实现中需要注意有以下几点:
1) selective search提取region proposals时,由于它对scale是敏感的,所以选取出来的region proposals的个数就会发生变化,为了使得region proposals的个数一定,在selective search之前还需要进行resize的处理。
2)原始图像进行wrap处理时,固定大小的选择,一般是227*227;
3)由于训练集庞大,分类器优化开销很大,该文采用了标准的hard negative mining method方法提高了存储利用率;
4)分类器采用的是非线性核的SV;
5)为了强化定位,引入Bounding-Box;
该文算是诸多文章优势的集成体现。它达到的MAP也再次刷新了记录:在PASCAL VOC 2010上,其MAP达到了53.7%;在ILSVRC2013 detection dataset达到了31.4%
但一如文章中提到的,该方法的主要缺陷在于计算的时间成本很大,根本达不到real-time的要求。原因也在于region proposals处理中所固有的缺陷:CNN需要对每个region proposals进行单独的特征提取,这是十分耗时的。同时在进入CNN之前的wrap处理也是存在问题的,这种预处理会使得图像失真,部分信息丢失。
 于是MSRA(微软亚洲研究院)的何凯明等人提出了SPP-net。
 SPP-net
还是先贴上图。首先需要声明的是这篇paper仍有些地方没搞明白(上边的RCNN虽然算是吧啦完了,但难免存在理解偏差,望大牛们多多指教。)

 




 


首先,我们看看截图二,很清楚的看到该文将crop/wrap这一预处理方法去掉了,同时在卷积层后加上了SPP。那我们就从这里开始谈起。
Crop/wrap,顾名思义就是对图像进行分割和变形。这两种方法都存在着丢失或者扭曲原始图像信息的缺陷。这样CNN获取的特征也就受到了限制,从而导致后续分类/预测的泛化能力不够。需要略作解释的是crop/wrap处理的充分性是由于FC层固有特性决定的,即FC层的输入必须固定大小。该文亮点在于,将这一固定大小的处理放在特征提取之后。这样原始图像得到保护,特征提取更加的充分,然后再利用该文中提出的SPP代替最后一个卷积层的max-pooling层,完成大小固定的处理。该文主要亮点如下:
1)对输入图像尺度无限制,同时输出的是定长特征,但运用滑动窗口的pooling技术就不能;
2) SPP可运用不同大小的pooling窗口,但CNN只能是单一的窗口;
3)SPP可以从尺度变化中提取特征;
4)大大提高了图像处理速度,24-102*faster than the R-CNN method;
接下来就来看看SPP到底是什么。上边已经谈到,SPP是代替了传统CNN中的pool5层,所以它也是一种pooling方法。同时,传统CNN中pooling层的滑动窗口是一定的,但在SPP中可以看到,它的pooling层是分层的,正如SPP自身的含义——金字塔式池化一样,它每层pooling  bins的大小是可变的,它的大小是个输入图像的大小成比例的;同时pooling bins的个数是确定的,这就相当于多尺度的pooling,相较于传统CNN中单尺度的pooling,肯定存在更多的优势。
SPP-net在物体探测中的效果也非常好。在RCNN中是对上千个region proposals分别进行CNN特征提取,而在SPP-net中则是对原始图像进行CNN特征提取,然后再对region 所对应的window利用SPP。这里需要理解的是,对图像的分割操作仍然是需要的,只是SPP中并不是立即对每个region直接特征抽取,而是将“对每个region的操作”放在了SPP这一过程中,即RCNN是多个regions+多次CNN+单个pooling,而SPP则是单个图像+单次CNN+多个region+多个pooling。
尽管如此,SPP-net仍存在缺陷:一是SPP-net虽然极大的提高了RCNN的速度,但和RCNN一样,他们的训练过程都是一个多阶段过程:即包含着特征抽取,网络微调,分类器SVM的训练以及最后的对BB回归器的匹配。二是SPP-net中用到的微调技术只能更新FC层,这无疑限制了深度CNN的潜力。
Fast-RCNN
在此基础上,MSRA又提出了Fast-RCNN。相较与RCNN和SPP-net,它的亮点在于:
1)MAP相较于RCNN也有很大的提高;
2)训练过程通过运用多任务损失,实现单步骤完成;
3)在训练过程中所有层都可以得到更新;
4)不再需要磁盘存储器作为特征缓存;
5)比RCNN的训练时间快9倍,测试时间快213倍,在 PASCAL VOC 2012上获得MAP也更高.。和SPPnet相比,训练时间快3倍,测试时间快10倍,MAP也有提升。
从下图可以看到如下变化:一是输入从单输入变为双输入;二是引入ROI pooling层(region of interest,它是只含一层的SPP);三是在FC层后有两个输入。接下看看这些变化的具体实现和影响。
 



  上述的变化都是在训练过程做的改变,在微调阶段曾谈及SPP-net只能更新FC层,这是因为卷积特征是线下计算的,从而无法再微调阶段反向传播误差。而在fast-RCNN中则是通过image-centric sampling提高了卷积层特征抽取的速度,从而保证了梯度可以通过SPP层(即ROI pooling层)反向传播。
      上述的变化都是在训练过程做的改变,在微调阶段曾谈及SPP-net只能更新FC层,这是因为卷积特征是线下计算的,从而无法再微调阶段反向传播误差。而在fast-RCNN中则是通过image-centric sampling提高了卷积层特征抽取的速度,从而保证了梯度可以通过SPP层(即ROI pooling层)反向传播。
输入除了batch大小为N的图像外,还有R大小的ROI序列。这种多任务训练机制避免了对顺序训练任务的pipeline的管理,同时也对MAP的提高起到了一定的作用。输出也因为变成两个输出而存在着两个loss function。一个输出对k个物体类别的可能性的softmax型预测,一个输出针对每个类的四位实数。
该文在随后还探讨了SVM和softmax两类分类器在VOC07上MAP的大小,发现softmax表现更为突出;同时发现region proposals并不是越多越好,这些都可作为一些trick指导自己的工作。
RCNN到SPP-net,再到Fast-RCNN,在MAP不断得到提升的同时,速度也不断的提升,但我们也注意到在proposals的计算中仍然存在的计算瓶颈,而最近MSRA提出的Faster-RCNN正是这一问题的解决方案。由于这篇文章才出来不久,还没来得及读,暂时写到这里。 
PS:文章完全来自个人理解,肯定很多漏洞或者理解过于表面的问题,此文后续会不断更新,以求更全面更简单的诠释。
参考文献:
[1] R. Girshick, J. Donahue, T. Darrell, and J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation,”in CVPR, 2014
[2] K. He, X. Zhang, S. Ren, and J. Sun. Spatial pyramid pooling in deep convolutional networks for visual recognition. In ECCV, 2014.
[3] R. Girshick. Fast R-CNN. arXiv:1504.08083, 2015.
[4] Shaoqing Ren Kaiming He Ross Girshick Jian Sun. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks.arXiv:1506.01497,2015
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: