两阶段目标检测综述

两阶段目标检测

在上个世纪,深度神经网络就已经被提出了,但是在当时机器硬件还未达到实验要求,深度神经网络便沉浸了10年。在21世纪初,当机器硬件达到实验要求之后,深度神经网络就得到了快速的发展。在CNN[7]还未提出之前,在针对目标检测这个问题,人们一般是使用“设计受用特征+分类器”这个思路。当卷积神经网络一系列的模型被提出后,如ResNet[8]、GoogleNet[9]以及作为一个卷积神经网络里程碑的AlexNet[7]等等,图片中的特征能够很好地提取出来,因此目标检测的检测精确度得到极大的提高。到后来推出了一系列的目标检测模型,如R-CNN,SPP NET,Fast R-CNN以及Fast R-CNN等等。

2.1 R-CNN

    R-CNN是由Ross Girshick等人提出来的。R-CNN主要分为三个部分,第一部分为候选框提取,第二部分为图片特征提取,第三部分为目标分类与回归。R-CNN模型的结构图如图1所示。



图1 R-CNN结构图

目前有很多论文提供了许多生成类别无关的候选区域的方法,而文中则是使用了选择搜索算法[10]。在选择候选区域生成之后,大概生成了2000个候选框,之后再对候选区域进行裁剪,修正成为一个固定大小的图片(原文是217×217的尺寸)。之后再对处理后的图片进行卷积提取特征。特征提取方法,是采用Krizhevsky等人提出的CNN[7]算法,该算法主要是采用5个卷积层和两个全连接层向前传播来提取特征。最后在使用SVM分类器对目标进行分类,以及使用边框回归[11]对目标进行定位。

R-CNN使用的是PASCAL VOC2007数据集,其实验结果的mAP值从DPM HCS[12]的34.3%直接提高到了66%。R-CNN模型也存在着一些问题,在候选框提取时,大概生成了2000个proposals,而且每一个proposals都要进入CNN网络进行特征提取与SVM分类。这样就产生了许多的冗余操作,因此训练时间也花费很多。此外,由于CNN网络中的全连接层需要输入固定尺寸的图片,在生成候选区域之后对图片的预处理操作,即裁剪与修正,这会影响图片的质量与内容。于是,在2015年,Kaiming He等人提出的SPP NET[4]解决了这两个问题。

2.2 SPP NET

在针对R-CNN出现的两个问题,SPP NET模型提出了以下的解决方案:1.在输入CNN网络的时候,不是输入候选框的图片,而是一次性将图片进行卷积操作;2.提出了SPP Pooling[4],在CNN网络最后一层卷积的时候,添加了SPP Pooling。SPP Pooling使用不同尺寸的特征图输入,然后输出固定尺寸的图片。

SPP NET的空间金字塔思想是:在CNN网络最后一层卷积的时候,根据之前得到的候选区域,与输出的特征图,一一对应,然后就使用SPP Pooling。SPP Pooling对输入的图片进行3次池化。在文中,CNN第五层卷积输出的是256个滤波器,即256个feature maps。第一次池化操作就是对256个滤波器进行最大池化,结果输出一个256维度的向量。第二次池化是在第五层输出的256个滤波器的基础上,将feature map等分为4等份,得到4个feature map,然后对每一小块进行最大池化操作,结果输出4*256-d向量(d指dimension,维度)。第三次池化,是在第五层输出的256个滤波器的基础上,将将feature map等分为16等份,得到16个feature map,同上面的步骤,对每一小块进行最大池化操作,输出16*256-d向量。因此,无论输入的feature map的尺寸是多少,SPP Pooling输出的向量综述256+4*256+16*256=21*256维向量。其结构如图2所示。



图2 SPP Pooling结构图


SPP NET也是在VOC 2007数据集上进行实验,其在于R-CNN达到相同或更好的性能情况下,比R-CNN方法快了24-102倍。SPP-NET其优点是引入了空间金字塔结构,是其适应不同种尺寸的特征图。其次,它是对整张图片进行一次特征提取,很大程度上加快了运算速度,并提出了全职共享的策略。SPP NET也存在着一些的缺点,它的分类器使用的是SVM,不能实现端到端的训练。SPP NET是采用分阶段训练,其训练步骤复杂,而且再说会用SPP NET进行训练的时候,其消耗的物理空间高达几百G。

2.3 Fast R-CNN

R-CNN的作者,Ross Girshick在R-CNN的基础上提出了Fast R-CNN[5],解决了以上的问题。Fast R-CNN主要的流程是,首先将数据集经过SS算法(选择搜索算法),得出候选区域,将图片放入VGG16网络进行卷积计算,在VGG16[14]的最后一层卷积生成feature map的时候,将候选区域与feature map映射,之后将后续区域放入ROI Pooling[5]之中,生成固定尺寸的feature map。最后使用多任务损失函数对其进行分类与回归,分类的方法是采用Softmax Loss[5],回归是采用Smooth L1 Loss[5]。Fast R-CNN的结构图如图3所示。



图3 Fast R-CNN结构图


ROI Poolingde 具体操作如下,首先输入图片,将ROI映射到对应的feature map,然后将映射后的区域划分为相同大小的截面,之后再对每个截面进行最大池化操作。这样我们就可以得到固定大小的feature map了。

Fast R-CNN训练的网络是采用VGG16[13]进行训练的,而且其借鉴了SPP NET的思路,在训练的时候,是将一张图片放入卷积网络里,在输出特征时与候选框映射。同时,Fast R-CNN采用多任务损失函数,在进行分类和边框回归的时候,也是在训练网络里面进行训练的,这样就可以达到权值共享,提高了Fast R-CNN的训练速度和实验精度。经过实验对比,Fast R-CNN在PASCAL VOC上训练,比R-CNN快了9倍,测试时间快了213倍。Fast R-CNN与SPP NET相比,Fast R-CNN训练速度快了3倍,测试速度快了10倍,并且其准确度更高。

2.4 Faster R-CNN

在2016年,Shaoqing Ren等人在Fast R-CNN[6]的基础上继续做出了创新,提出了Faster R-CNN模型。Faster R-CNN在提取候选口的时候,取消了使用SS[10]算法,提出了一种RPN[6]网络。Faster R-CNN的结构是,首先将图片放入一个全卷积网络,在输出feature map的时候,将feature map送入RNP网络,RNP网络输出一批候选框,这些候选框与之前的feature map进行相应的映射,然后将其送入POI Pooling,生成固定的feature map,然后再对其进行特征提取,最后进行分类与回归。因此Faster R-CNN也可以理解为RPN+Fast R-CNN的结合。Faster R-CNN的结构图,如图4所示。



图4 Faster R-CNN结构图


RPN是一种全卷积网络,该网络是输入一张任意大小的图像,输出的则是一组候选框。生成的候选框送入Fast R-CNN的训练网络进行目标检测与精确定位。RNP在输入一张feature map之后,使用一个n×n的滑动窗口(文中n取3,即为3x3的滑动窗口),每一个滑动窗口映射到一个低维的特征(文中采用的是ZF网络,特征为256-d),该特征被输入两个全连接层,一个用作边框回归,另一个用作分类。每一个滑动窗口的位置,同时预测多个区域建议。每个区域建议的最大数目为k(文中k取9),因此边框回归层有4k个输出,分类层有2k个输出。分类层输出的数值表示这个候选框是前景或者背景,边框回归层则是输出该候选框的坐标与偏移量。RPN网络结构图如图5所示。



图5 RPN网络结构图


经过实验对比,Faster R-CNN在VOC 2007数据集上Fast R-CNN提取一张图片的候选框需要2秒,而Faster R-CNN仅需0.2秒,而且mAP值与Fast R-CNN保存一致。Faster R-CNN提出了RPN网络,使Faster R-CNN整个网络结构实现了全局权值共享,实现了两阶段目标检测的端对端的训练,这是两阶段目标检测的一个大的突破。

总结

R-CNN是最经典两阶段目标检测模型,但其缺点有很多,比如说,训练步骤繁琐,训练的速度满,精度不够,训练的时候占据太多的物理空间。于是后面相继提出SPP NET,Fast R-CNN、Faster R-CNN以及Mask R-CNN[14](Mask R-CNN本文未进行介绍)等模型。

纵观本文介绍的几种目标检测模型的思路,其实其基本的思路就是去模拟一个人的思考的方式。当你去遇见一个陌生的物品的时候,首先你可以知道这个物品的具体位置,这就是候选框。然后我们就可以在这个物品上观察它的特征,比如说颜色,形状等等,这就是提取特征的过程。在特征提取结束之后,我们就可以将这个物品进行分类。所以说,想要在其进行创新,还是要抓住人的思维方式。此外,本人之前在查阅资料的时候,发现设计模式居然也可以改进CNN网络。之后如果CNN网络能够再进一步创新,那么再以Faster R-CNN或以Mask R-CNN模型为基础进行改进,那么目标检测的训练速度与精度又是有了新的创新。

参考文献


[1]Joseph Redmon; Santosh Divvala; Ross Girshick; Ali Farhadi.You Only Look Once: Unified, Real-Time Object Detection,IEEE Conference on Computer Vision and Pattern Recognition,2016

[2]W Liu;D Anguelov;D Erhan;C Szegedy;S Reed.Single Shot MultiBox Detector.European Conference on Computer Vision,2016

[3]Ross Girshick; Jeff Donahue; Trevor Darrell; Jitendra Malik,Rich feature hierarchies for accurate object detection and semantic segmentation.IEEE Conference on Computer Vision and Pattern Recognition,2014

[4]He, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian.Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition.IEEE Transactions on Pattern Analysis and Machine Intelligence,2015

[5]Ross Girshick.Fast R-CNN.IEEE International Conference on Computer Vision,2015

[6]Shaoqing Ren; Kaiming He; Girshick, R.; Jian Sun.Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks.IEEE Transactions on Pattern Analysis and Machine Intelligence,2016

[7]Krizhevsky Alex ;Hinton, Geoffrey E; Sutskever, Ilya .ImageNet Classification with Deep Convolutional Neural Network.Communications of the ACM,2012

[8]Kaiming He,Xiangyu Zhang,Shaoqing Ren,Jian Sun.Deep Residual Learning for Image Recognition.Computer Vision and Pattern Recognition,2015

[9]Christian Szegedy; Wei Liu; Yangqing Jia; Pierre Sermanet; Scott Reed; Dragomir Anguelov; Dumitru Erhan; Vincent Vanhoucke; Andrew Rabinovich.Going Deeper With Convolutions.IEEE Transactions on Pattern Analysis and Machine Intelligence,2015

[10]Uijlings, K. van de Sande, T. Gevers, and A. Smeulders. Selective search for object recognition. IJCV, 2013.

[11]Felzenszwalb, R. Girshick, D. McAllester, and D. Ramanan.Object detection with discriminatively trained part based models.IEEE Transactions on Pattern Analysis and Machine Intelligence,2010

[12]Ren and D. Ramanan. Histograms of sparse codes for object detection. In CVPR, 2013.

[13]Karen Simonyan; Andrew Zisserman.Very Deep Convolutional Networks for Large-Scale Image Recognition.Computer Science,2014

[14] Kaiming He; Georgia Gkioxari; Piotr Dollar; Ross Girshick,Mask R-CNN.IEEE Transactions on Pattern Analysis and Machine Intelligence.2018

---------------------

作者:正在学习的小天师兄

来源:CSDN

原文:https://blog.csdn.net/qq_28503457/article/details/96705441

版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(两阶段目标检测综述)