当前位置: 首页 > 科技观察

深度卷积神经网络在目标检测方面的进展

时间:2023-03-18 16:40:54 科技观察

近年来,深度卷积神经网络(DCNNs)在图像分类和识别方面取得了显着改进。回顾2014-2016这两年,R-CNN、FastR-CNN、FasterR-CNN、ION、HyperNet、SDP-CRC、YOLO、G-CNN、SSD等接连涌现,速度越来越快,精确的物体检测方法。1.基于RegionProposal的方法这类方法的基本思想是:先获取候选区域,然后对候选区域进行分类,回归框。1.1R-CNN[1]R-CNN是较早使用DCNN进行目标检测的方法。中心思想是使用DCNN对图像中的每个候选区域提取特征,并使用SVM进行分类。分类的结果是一个粗略的检测结果,然后再次利用DCNN的特征,结合另一个SVM回归模型得到更准确的结果。精确的边界框。获取候选区域的方法是常用的选择性搜索。一张图中可以得到大约2000个不同大小和类别的候选区域,需要将它们变换为相同的大小以适应CNN处理的图像大小(227x227)。本文使用的CNN结构来自AlexNet,它在ImageNet数据集上经过1000类分类任务的训练,然后通过参数微调使网络结构适应本文21类分类任务。该方法在VOC2011测试数据集上实现了71.8%的检测准确率。这种方法的缺点是:1.训练和测试过程分为几个阶段:获取候选区域、DCNN特征提取、SVM分类、SVM边界框回归,训练过程非常耗时。2.训练过程中,DCNN得到的特征需要保存,占用内存空间大。3、在测试过程中,每个候选区域都要提取一次特征,这些区域有一定的重叠,每个区域的特征提取都是独立计算的,效率不高,测试图像很慢。1.2FastR-CNN[2]在R-CNN的基础上,为了使训练和测试过程更快,RossGirshick提出了FastR-CNN,使用VGG19网络结构在训练和测试上比R-CNN更快分别是9次和213次。主要思想是:1.对整幅图像进行卷积得到特征图像,而不是对每个候选区域分别进行卷积;2.将候选区域分类和框拟合两个步骤结合起来,而不是分开做。示意图如下:本文采用ROIPoolingLayer将候选区域不同尺寸的特征转化为固定尺寸的特征图像。方法是:假设候选区域ROI的大小为,需要输出的大小为,则将ROI划分为网格,每个网格的大小为,然后对每个网格使用max-pooling得到特征目标大小的图像。候选区域的分类和框拟合的结合是通过双任务网络结构:两个全连接的输出层分别用于类别预测和框预测(如上图所示),同时训练这两个任务。利用联合成本函数:公式中的两项是分类损失和回归损失。这种方法比R-CNN快得多。特别是在测试新图像时,如果不考虑生成建议的时间,可以实现实时检测。用于生成候选区域的选择性搜索算法需要大约2秒来处理图像,因此成为该方法的瓶颈。1.3FasterR-CNN[3]以上两种方法都是靠selectivesearch来生成候选区域,非常耗时,那么我们是否可以直接使用卷积神经网络来获取候选区域呢?这样一来,几乎不需要额外花费时间。可以获得候选区域。ShaoqingRen提出FasterR-CNN来实现这个想法:假设有两个卷积神经网络,一个是区域生成网络,获取图像中的每个候选区域,另一个是候选区域的分类和框架回归网络。这两个网络的前几层都要计算卷积。如果它们在这些层中共享参数并且仅在最后几层中实现其特定目标任务,那么图像只需要这几层。共享卷积层进行前向卷积计算,可以同时得到候选区域和每个候选区域的类别和框。RegionProposalNetwork(RPN)方法的原理图如上。首先对输入图像进行几层卷积得到特征图像,然后在特征图像上生成候选区域。其方法是使用一个(3)滑动窗口将局部特征图像转化为低维特征,预测一个区域(cls层,输出)是否为候选区域和对应的边界(reg层,输出)。这里的区域称为锚点,对应于与滑动窗口同心的不同大小、不同纵横比的矩形框。假设卷积后特征图的大小为,那么一共有anchors。这种特征提取和区域提议生成的方法是位移不变的。在使用RPN得到候选区域后,仍然使用FastR-CNN对候选区域进行分类和框回归。两个网络都使用共同的卷积层。由于FastR-CNN在训练过程中需要使用固定的候选区域生成方式,因此RPN和FastR-CNN不能同时使用反向传播算法进行训练。本文使用四个步骤完成训练过程:1.单独训练RPN;2、使用步骤1得到的区域生成方法单独训练FastR-CNN;3.使用第2步得到的网络作为初始网络训练RPN。4.再次训练FastR-CNN,微调参数。FasterR-CNN达到与FastR-CNN大致相同的精度,但训练时间和测试时间减少了10倍。1.4ION:Inside-OutsideNet[4]ION也是基于RegionProposal。在获得候选区域的基础上,为了进一步提高每个候选感兴趣区域ROI的预测精度,ION考虑结合ROI和ROI内部的信息,有两个创新点:一是利用空间递归神经网络(spatial递归神经网络)结合上下文特征,而不是只使用ROI中的局部特征,另一种是结合不同的卷积层。这些特征被连接起来并用作预测的多尺度特征。ION在上、下、左、右四个方向独立使用RNN,将它们的输出连接起来,形成一个特征输出。将经过两次这样的过程得到的特征作为上下文特征,再与前面卷积层的输出特征进行级联,得到既包含上下文信息又包含多尺度信息的特征。1.5HyperNet[5]基于FasterR-CNN,HyperNet在获得更好的候选区域方面比FasterR-CNN中使用的RPN有了进一步的改进。其思想是将不同卷积层获得的特征图像结合起来,产生更好的区域提议和检测精度。在这篇文章中,通过组合不同卷积层的输出得到的特征成为HyperFeatures。由于不同卷积层的输出大小不同,较浅层的特征图像分辨率较高,有利于提高边界框的精度,但容易对边界框内的物体进行误分类;更深层得到的特征图像分辨率很低,较小物体的boundingbox定位容易不准确,但这些特征更抽象,可以使物体分类更准确。因此,两者的结合有助于目标检测的准确性和定位的准确性。1.6SDP-CRC[6]SDP-CRC提出了两种策略来处理不同尺度的目标,提高候选区域的计算效率。第一种策略是基于候选区域尺度的池化,即ScaleDepartmentPooling(SDP)。在CNN的框架下,由于输入图像要经过多次卷积,最后一层卷积输出上那些小尺寸物体的特征不能很好地描述物体。如果使用前一层的特征,可以更好地描述小物体,使用后一层的特征,可以更好地描述更大的物体。所以SDP的思想是根据物体的大小选择合适的卷积层上的特征来描述物体。例如,如果候选区域的高度在0-64像素之间,则使用第三个卷积层上的特征(如VGG中的Conv3)进行池化,作为分类器和边界回归的输入特征。如果候选区域的高度在128像素以上,则使用最后一个卷积层(如VGG中的Conv5)的特征进行分类和回归。第二种策略是使用丢弃负样本的级联分类器,即CascadedRejectionClassifer,CRC。FastRCNN的一个瓶颈是候选区域较多,对数千个候选区域进行完整的分类和回归计算非常耗时。CRC可以用来快速排除一些明显不包含物体的候选区域,只对那些极有可能包含物体的候选区域进行完整的计算。本文采用AdaBoost方法,依次利用每个卷积层的特征,并使用一些级联的弱分类器来排除负样本。在最后一层卷积的特征图像上,对剩余的候选区域进行分类返回。SDP-CRC的精度远高于FastRNN,检测时间缩短到每帧471ms。2.不使用RegionPropsal直接预测boundingbox的方法2.1YOLO[7]YOLO的思想是舍弃了生成候选区域的中间步骤,直接通过单个卷积神经网络对每个boundingbox进行回归和预测对应类别的概率。该方法将输入图像划分为大小为的网格。每个网格单元预测B个边界框和这些边界框的置信度。预测值有五个:边界框中心相对于网格单元中心的坐标,边界框相对于整幅图像的宽高,以及边界框的Confidence(基于IoUwithground真相)。每个单元格还预测了该单元格属于一个类的概率,因此整个网络的输出是一个大小为的张量。在实验中,,所以输出的大小是。在测试阶段,将一个单元格的类别概率乘以该单元格的B个边界框的置信度,得到每个边界框包含每个类别的对象的置信度。YOLO的优势在于它的速度。本文使用的24层卷积网络在测试图像上可以达到每秒45帧,而使用另一种简化的网络结构,可以达到每秒155帧。这种方法的缺点是:1.boundingbox的预测有很大的空间限制,比如每个cell只预测两个boundingbox,而且只有一个类别。2.这种方法无法检测到一些成群出现的小目标,比如一群鸟。3.如果检测目标的纵横比没有出现在训练数据中或者不常见,说明模型泛化能力弱。2.2G-CNN[8]G-CNN把目标检测问题看作是检测框从一些固定的网格逐渐变化到物体真实边界的问题。这是一个经过多次迭代并不断更新的过程。示意图如上所示。通过将整个图像划分为不同尺度的网格来获得初始检测框。卷积后得到物体的特征图像,将初始帧对应的特征图像通过FastR-CNN中的方法传递。将其转化为固定大小的特征图,通过回归得到一个更准确的帧,再次以这个新帧作为初始帧进行新的迭代。多次迭代后的边界框作为输出。G-CNN使用了大约180个初始边界,经过5次迭代后,检测帧率在3fps左右,精度优于FastR-CNN。2.3SSD[9]SSD也使用单个卷积神经网络对图像进行卷积,在特征图像的每个位置预测一系列不同尺寸和纵横比的边界框。在测试阶段,网络预测每个边界框包含每类对象的可能性,并调整边界框以适应目标对象的形状。SSD只需要一个输入图像和出现在该图像中的对象的边界框来进行训练。不同卷积层的输出是一张不同尺度的特征图(如上图中的求和),在几层特征图上的每个位置,计算几个(如4个)默认边界框,其中每个目标物体出现以及目标对象的ground-truth边界框相对于默认边界框的偏差。因此,对于大小为的特征图像,总共生成输出。这有点类似于FasterR-CNN中anchors的概念,只是将这个概念应用到不同分辨率的特征图像上。SSD与YOLO的对比如下:在VOC2007测试图像上,对于尺寸为300300的输入图像,SSD可以达到72.1%的mAP精度,速度为每秒58帧,可以预测超过7k个边界框,而YOLO只能预测98。下图是上面描述的几个算法在性能上的对比:参考文献[1]Girshick,Ross,etal.“用于准确对象检测和语义分割的丰富特征层次结构。”CVPR2014.[2]吉尔希克,罗斯。“快速r-cnn。”ICCV2015.[3]任少卿等。“FasterR-CNN:使用区域建议网络进行实时对象检测。”神经信息处理系统的进展。2015.[4]贝尔、肖恩等人。“Inside-outsidenet:使用skippooling和递归神经网络检测上下文中的对象。”arXiv预印本arXiv:1512.04143(2015).[5]孔,陶等。“HyperNet:实现准确的区域提议生成和联合目标检测。”arXiv预印本arXiv:1604.00600(2016).[6]Yang、Fan、WongunChoi和YuanqingLin。“利用所有层:具有比例依赖池和级联拒绝分类器的快速准确的cnn对象检测器。”CVPR2016.[7]雷德蒙、约瑟夫等人。“你只看一次:统一的实时对象检测。”arXiv预印本arXiv:1506.02640(2015)。[8]Najibi、Mahyar、MohammadRastegari和LarryS.Davis。“G-CNN:基于迭代网格的对象检测器。”arXiv预印本arXiv:1512.07729(2015).[9]Liu,Wei,etal."SSD:SingleShotMultiBoxDetector."arXivpreprintarXiv:1512.02325(2015).