书书书ISSN 1004-9037,CODEN SCYCE4Journal of Data Acquisition and Processing Vol.31,No.1,Jan.2016,pp.1-17DOI:10.16337/j.1004-9037.2016.01.0012016by Journal of Data Acquisition and Processinghttp://sjcj.nuaa.edu.cnE-mail:sjcj@nuaa.edu.cnTel/Fax:+86-025-84892742 深度卷积神经网络在计算机视觉中的应用研究综述*卢宏涛 张秦川(上海交通大学计算机科学与工程系,上海,200240)摘 要:随着大数据时代的到来,含更多隐含层的深度卷积神经网络(Convolutional neural networks,CNNs)具有更复杂的网络结构,与传统机器学习方法相比具有更强大的特征学习和特征表达能力。使用深度学习算法训练的卷积神经网络模型自提出以来在计算机视觉领域的多个大规模识别任务上取得了令人瞩目的成绩。本文首先简要介绍深度学习和卷积神经网络的兴起与发展,概述卷积神经网络的基本模型结构、卷积特征提取和池化操作。然后综述了基于深度学习的卷积神经网络模型在图像分类、物体检测、姿态估计、图像分割和人脸识别等多个计算机视觉应用领域中的研究现状和发展趋势,主要从典型的网络结构的构建、训练方法和性能表现3个方面进行介绍。最后对目前研究中存在的一些问题进行简要的总结和讨论,并展望未来发展的新方向。关键词:深度学习;卷积神经网络;图像识别;目标检测;计算机视觉中图分类号:TP391 文献标志码:AApplications of Deep Convolutional Neural Network in Computer VisionLu Hongtao,Zhang Qinchuan(Department of Computer Science and Engineering,Shanghai Jiao Tong University,Shanghai,200240,China)Abstract:Deep learning has recently achieved breakthrough progress in speech recognition and image rec-ognition.With the advent of big data era,deep convolutional neural networks with more hidden layersand more complex architectures have more powerful ability of feature learning and feature representation.Convolutional neural network models trained by deep learning algorithm have attained remarkable per-formance in many large scale recognition tasks of computer vision since they are presented.In this paper,the arising and development of deep learning and convolutional neural network are briefly introduced,with emphasis on the basic structure of convolutional neural network as well as feature extraction usingconvolution and pooling operations.The current research status and trend of convolutional neural net-works based on deep learning and their applications in computer vision are reviewed,such as image classi-fication,object detection,pose estimation,image segmentation and face detection etc.Some relatedworks are introduced from the following three aspects,i.e.,construction of typical network structures,training methods and performance.Finally,some existing problems in the present research are brieflysummarized and discussed and some possible new directions for future development are prospected.Key words:deep learning;convolutional neural network;image recognition;object detection;computervision*基金项目:国家自然科学基金(61272247)资助项目。收稿日期:2015-12-10;修订日期:2016-01-10
引 言图像识别是一种利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对象的技术,是计算机视觉领域的一个主要研究方向,在以图像为主体的智能化数据采集与处理中具有十分重要的作用和影响。使用图像识别技术能够有效地处理特定目标物体的检测和识别(如人脸、手写字符或是商品)、图像的分类标注以及主观图像质量评估等问题。目前图像识别技术在图像搜索、商品推荐、用户行为分析以及人脸识别等互联网应用产品中具有巨大的商业市场和良好的应用前景,同时在智能机器人、无人自动驾驶和无人机等高新科技产业以及生物学、医学和地质学等众多学科领域具有广阔的应用前景。早期的图像识别系统主要采用尺度不变特征变换(Scale-invariant feature transform,SIFT[1])和方向梯度直方图(Histogram of oriented gradients,HOG[2])等特征提取方法,然后将提取到的特征输入至分类器中进行分类识别。这些特征本质上是一种手工设计的特征,针对不同的识别问题,提取到的特征好坏对系统性能有着直接的影响,因此需要研究人员对所要解决的问题领域进行深入的研究,以设计出适应性更好的特征,从而提高系统的性能。这个时期的图像识别系统一般都是针对某个特定的识别任务,且数据的规模不大,泛化能力较差,难以在实际应用问题当中实现精准的识别效果。深度学习是机器学习的一个分支,是近些年来机器学习领域取得的重大突破和研究热点之一。2006年,加拿大多伦多大学教授、机器学习领域的泰斗Geoffery Hinton和他的学生Ruslan Salakhutdi-nov在国际顶尖学术刊物《Science》上发表了一篇文章[3],第一次提出了深度学习的思想。这篇文章主要提出了两个观点:(1)含多个隐层的人工神经网络具有十分强大的特征学习能力,通过训练模型所提取的特征对原始输入数据具有更抽象和更本质的表述,从而有利于解决特征可视化或分类问题;(2)通过使用无监督学习算法实现一种称作“逐层初始化”的方法,实现对输入数据信息进行分级表达,从而可以有效地降低深度神经网络的训练难度。随后,深度学习在学术界和工业界持续升温,在语音识别、图像识别和自然语言处理等领域获得了突破性的进展。2011年以来,研究人员首先在语音识别问题上应用深度学习技术,将准确率提高了20%~30%,取得了十多年来最大的突破性进展。仅仅一年之后,基于卷积神经网络的深度学习模型就在大规模图像分类任务上取得了非常大的性能提高,掀起了深度学习研究的热潮。文献[4]提出了两种基于深度神经网络的声学建模方法,相比于传统建模方法提取到了更有效的声学特征,并在维吾尔语的大词汇量连续语音识别应用上取得了较大的性能提升。目前,谷歌、微软和Facebook等众多国际互联网科技企业争相投入大量的资源,研发布局大规模的深度学习系统。1 卷积神经网络20世纪60年代初期,Hubel和Wiesel等通过对猫的大脑视觉皮层系统的研究,提出了感受野[5]的概念,并进一步发现了视觉皮层通路中对于信息的分层处理机制,由此获得了诺贝尔生理学或医学奖。到了80年代中期,Fukushima等基于感受野概念提出的神经认知机[6],可以看作是卷积神经网络(Con-volution neural networks,CNNs)的第一次实现,也是第一个基于神经元之间的局部连接性和层次结构组织的人工神经网络。神经认知机是将一个视觉模式分解成许多子模式,通过逐层阶梯式相连的特征平面对这些子模式特征进行处理,使得即使在目标对象产生微小畸变的情况下,模型也具有很好的识别能力。在此之后,研究人员开始尝试使用一种被称作多层感知器[7]的人工神经网络(实际上是只含一层隐含层节点的浅层模型)来代替手工提取特征,并使用简单的随机梯度下降方法来训练该模型,于是进一步提出了用于计算误差梯度的反向传播算法,这一算法随后被证明十分有效[8]。1990年,LeCun等[9]在研究手写数字识别问题时,首先提出了使用梯度反向传播算法训练的卷积神经网络模型,并在MNIST[10]手写数字数据集上表现出了相对于当时其他方法更好的性能。梯度反向传播算法和卷积神经网络的成功给机器学习领域带来了新的希望,开启了基于统计学习模型的机器学习浪潮,同时也带动2数据采集与处理Journal of Data Acquisition and Processing Vol.31,No.1,2016
了人工神经网络进入到蓬勃发展的新阶段。目前,卷积神经网络已成为当前语音分析和图像识别领域的研究热点,它是第一个真正意义上的成功训练多层神经网络的学习算法模型,对于网络的输入是多维信号时具有更明显的优势。随着深度学习掀起的新的机器学习热潮,卷积神经网络已经应用于语音识别、图像识别和自然语音处理等不同的大规模机器学习问题中。1.1 概念卷积神经网络是一种为了处理二维输入数据而特殊设计的多层人工神经网络,网络中的每层都由多个二维平面组成,而每个平面由多个独立的神经元组成,相邻两层的神经元之间互相连接,而处于同一层的神经元之间没有连接。CNNs受到早期的时延神经网络(Time-delay neural networks[11],TDNNs)的启发,TDNN通过在时间维度上共享权值来降低网络训练过程中的计算复杂度,适用于处理语音信号和时间序列信号。CNNs采用了权值共享网络结构使之更类似于生物神经网络,同时模型的容量可以通过改变网络的深度和广度来调整,对自然图像也具有很强的假设(统计的平稳性和像素的局部相关性)。因此,与每层具有相当大小的全连接网络相比,CNNs能够有效降低网络模型的学习复杂度,具有更少的网络连接数和权值参数,从而更容易训练。图1 简化的卷积神经网络结构Fig.1 Simplified structure of convolutionalneural network1.2 网络结构一个简单的卷积神经网络模型的结构示意图如图1所示,该网络模型由两个卷积层(C1,C2)和两个子采样层(S1,S2)交替组成。首先,原始输入图像通过与3个可训练的滤波器(或称作卷积核)和可加偏置向量进行卷积运算,在C1层产生3个特征映射图,然后对每个特征映射图的局部区域进行加权平均求和,增加偏置后通过一个非线性激活函数在S1层得到3个新的特征映射图。随后这些特征映射图与C2层的3个可训练的滤波器进行卷积,并进一步通过S2层后输出3个特征映射图。最终S2层的3个输出分别被向量化,然后输入到传统的神经网络中进行训练。1.3 卷积特征提取自然图像有其固有特性,即对于图像的某一部分,其统计特性与其他部分相同。这意味着在这一部分学习到的特征也能用在另一部分上,因此对于图像上的所有位置,可以使用同样的学习特征。换句话说,对于大尺寸的图像识别问题,首先从图像中随机选取一小块局域作为训练样本,从该小块样本中学习到一些特征,然后将这些特征作为滤波器,与原始整个图像作卷积运算,从而得到原始图像中任一位置上的不同特征的激活值。给定分辨率为r×c的大尺寸图像,将其定义为xlarge,首先从xlarge中抽取a×b的小尺寸图像样本xsmall,通过训练稀疏自编码器得到k个特征和激活值f(W(1)xsmall+b(1)),其中W(1)和b(1)是训练得到的参数。然后对于xlarge中每个a×b大小的xs,计算对应的激活值fs(W(1)xsmall+b(1)),进一步使用xsmall的激活值与这些激活值fs作卷积运算,就可以得到k×(r-a+1)×(c-b+1)个卷积后的特征映射图。二维卷积计算的示意图如图2所示。例如,对于分辨率为128×128的原始输入图像,假设经过预训练已经得到了该图像的200个8×8大小的特征碎片。那么,通过使用这200个特征碎片对原始图像中每个8×8的小块区域进行卷积运算,每个特征碎片均可以得到121×121的卷积特征映射图,最终整幅图像可以得到200×121×121的卷积特征映射图。3 卢宏涛等:深度卷积神经网络在计算机视觉中的应用研究综述
图2 二维卷积运算操作示意图Fig.2 Illustration of two-dimensionalconvolution operation1.4 池化操作通过将卷积层提取到的特征输入至分类器中进行训练,可以实现输出最终的分类结果。理论上可以直接将卷积层提取到的所有特征输入至分类器中,然而这将需要非常大的计算开销,特别是对于大尺寸高分辨率图像。例如:对于一个输入为96×96大小的图像样本,假设在卷积层使用200个8×8大小的卷积核对该输入图像进行卷积运算操作,每个卷积核都输出一个(96-8+1)×(96-8+1)=7 921维的特征向量,最终卷积层将输出一个7 921×200=1 584 200维的特征向量。将如此高维度的特征输入至分类器中进行训练需要耗费非常庞大的计算资源,同时也会产生严重的过拟合问题。然而,由于图像具有一种“静态性”的属性,在图像的一个局部区域得到的特征极有可能在另一个局部区域同样适用。因此,可以对图像的一个局部区域中不同位置的特征进行聚合统计操作,这种操作称为“池化”。比如计算该局部区域中某个卷积特征的最大值(或平均值),称作最大池化(或平均池化)。具体来说,假设池化的区域大小为m×n,在获得卷积特征后,将卷积特征划分为多个m×n大小的不相交区域,然后在这些区域上进行池化操作,从而得到池化后的特征映射图。如图3所示,图3 最大池化运算操作示意图Fig.3 Illustration of max pooling operation在一幅图像的4块不重合子区域上使用3×3大小的窗口对其进行最大池化,得到池化后的特征映射图。如果选择图像中的连续范围作为池化区域,同时只对相同的隐含神经元产生的卷积特征使用池化,则这些池化后的特征单元具有平移不变性。也就是说,即使原始图像中的物体产生了一个较小的平移,依然可以得到相同的池化特征,分类器也依然能够输出相同的分类结果。与直接使用卷积后的特征相比,这些概要统计特征不仅能够极大地降低特征向量的维度,进一步降低训练分类器所需的计算量,而且能够有效地扩充训练数据,有利于防止过拟合。2 图像分类图像分类问题是通过对图像的分析,将图像划归为若干个类别中的某一种,主要强调对图像整体的语义进行判定。当下有很多用于评判图像分类算法的带标签的数据集,比如CIFAR-10/100[12],Caltech-101/256[13-14]和ImageNet[15],其中ImageNet包含超过15 000 000张带标签的高分辨率图像,这些图像被划分为超过22 000个类别。从2010年至今,每年举办的ImageNet Large Scale Visual Recog-nition Challenge(ILSVRC)图像分类比赛是评估图像分类算法的一个重要赛事。它的数据集是Ima-geNet的子集,包含上百万张图像,这些图像被划分为1 000个类别。其中,2010年与2011年的获胜团队采用的都是传统图像分类算法,主要使用SIFT,LBP[16]等算法来手动提取特征,再将提取的特征用于训练支持向量机(Support vector machine,SVM)等分类器进行分类,取得的最好结果是28.2%的错误率[17]。ILSVRC2012则是大规模图像分类领域的一个重要转折点。在这场赛事中,Alex Krizhevsky等提出的AlexNet[18]首次将深度学习应用于大规模图像分类,并取得了16.4%的错误率,该错误率比使4数据采集与处理Journal of Data Acquisition and Processing Vol.31,No.1,2016
用传统算法的第2名的参赛队低了大约10%。如图4所示,AlexNet是一个8层的卷积神经网络,前5层是卷积层,后3层为全连接层,其中最后一层采用softmax进行分类。该模型采用Rectified linear u-nits(ReLU)来取代传统的Sigmoid和tanh函数作为神经元的非线性激活函数,并提出了Dropout方法来减轻过拟合问题。图4 简化的AlexNet模型结构Fig.4 Simplified structure of AlexNet model自AlexNet提出以后,基于深度卷积神经网络的模型开始取代传统图像分类算法成为ILSVRC图像分类比赛参赛队伍所采用的主流方法。ILSVRC2013的获胜队伍Clarifai[19]提出了一套卷积神经网络的可视化方法,运用反卷积网络对AlexNet的每个卷积层进行可视化,以此来分析每一层所学习到的特征,从而加深了对于卷积神经网络为什么能够在图像分类上取得好的效果的理解,并据此改进了该模型,取得了11.7%的错误率。ILSVRC2014的图像分类比赛结果相比于前一年取得了重大的突破,其中获胜队伍Google团队所提出的GoogleNet[20]以6.7%的错误率将图像分类比赛的错误率降至以往最佳记录的一半。该网络有图5 简化的Inception模块结构[20]Fig.5 Simplified structure of Inception module[20]22层,受到赫布学习规则的启发,同时基于多尺度处理的方法对卷积神经网络作出改进。该文基于Network in network[21]思想提出了Inception模块。Inception模块的结构如图5所示,它的主要思想是想办法找出图像的最优局部稀疏结构,并将其近似地用稠密组件替代。这样做一方面可以实现有效的降维,从而能够在计算资源同等的情况下增加网络的宽度与深度;另一方面也可以减少需要训练的参数,从而减轻过拟合问题,提高模型的推广能力。在ILSVRC2014中,以8.1%的错误率获得第3名的是来自微软亚洲研究院的团队所设计的SPP-Net[22],他们提出了一个新的池化方法,叫作空间金字塔池化,如图6所示。之前大部分卷积神经网络模型都要求输入图像大小固定,因此需要对原始图像进行剪切,这样将导致原始图像信息的丢失;或者需要对图像的大小和长宽比进行调整,这样会使图像产生扭曲变形。注意到卷积层对输入图像的大小没有限制,只有全连接层由于参数个数固定,需要保证输入的维数固定。然而卷积层的输出维数随着输5 卢宏涛等:深度卷积神经网络在计算机视觉中的应用研究综述
图6 空间金字塔池化模型结构[22]Fig.6 Structure of spatial pyramid pooling model[22]入维数的变化而变化,所以需要保证输入图像大小固定。因此,空间金字塔池化的作用是对任意维数的输入均产生固定维数的输出,从而使网络可以接受任意大小的图像作为输入。该池化方法将输入划分为固定个数的局部空间块,在每个块内进行最大池化,从而保证输出维数固定。采用多层次的空间块划分方法,则可以提取不同尺度的特征。2015年年初,微软亚洲研究院的研究人员提出的PReLU-Nets[23],在ILSVRC的图像分类数据集上取得了4.94%的top-5错误率,成为在该数据集上首次超过人眼识别效果(错误率约5.1%[17])的模型。该模型相比于以往的卷积神经网络模型有两点改进,一是推广了传统的修正线性单元(ReLU),提出参数化修正线性单元(PReLU)。该激活函数可以适应性地学习修正单元的参数,并且能够在额外计算成本可以忽略不计的情况下提高识别的准确率。同时,该模型通过对修正线性单元(ReLU/PReLU)的建模,推导出了一套具有鲁棒性的初始化方法,能够使得层数较多的模型(比如含有30个带权层的模型)收敛。随后不久,Google在训练网络时对每个mini-batch进行正规化,并称其为Batch normalization,将该训练方法运用于GoogleNet,在ILSVRC2012的数据集上达到了4.82%的top-5错误率[24]。归一化是训练深度神经网络时常用的输入数据预处理手段,可以减少网络中训练参数初始权重对训练效果的影响,加速收敛。于是Google的研究人员将归一化的方法运用于网络内部的激活函数中,对层与层之间的传输数据进行归一化。由于训练时使用随机梯度下降法,这样的归一化只能在每个mini-batch内进行,所以被命名为Batch normalization。该方法可以使得训练时能够使用更高的学习率,减少训练时间;同时减少过拟合,提高准确率。尽管卷积神经网络已经拥有强大的图像学习能力,然而这类模型缺乏对于图像空间不变性的学习,尤其是缺乏对于图像旋转不变性的学习[19]。Google DeepMind提出的Spatial transformer[25]旨在通过提高卷积神经网络对于图像空间不变性的学习能力,来加强其图像分类的准确率。Spatial transformer是可以在卷积神经网络的任意深度位置加入的模块,它可以将输入数据进行一系列空间变换,使得输出特征更加易于进行分类。在训练过程中,该模块可以自主地学习到空间变换所需要的参数,并且不需要在训练中增加任何额外的监督处理。在2015年年底揭晓的ImageNet计算机视觉识别挑战赛ILSVRC2015的结果中,来自微软亚洲研究院团队所提出的深达152层的深层残差网络以绝对优势获得图像检测、图像分类和图像定位3个项目的冠军,其中在图像分类的数据集上取得了3.57%的错误率[26]。随着卷积神经网络层数的加深,网络的训练过程更加困难,从而导致准确率开始达到饱和甚至下降。该团队的研究人员认为,当一个网络达到最优训练效果时,可能要求某些层的输出与输入完全一致;这时让网络层学习值为0的残差函数比学习恒等函数更加容易。因此,深层残差网络将残差表示运用于网络中,提出了残差学习的思想。如图7所示,为了实现残差学习,将Shortcut connection的方法适当地运用于网络中部分层之间的连接,从而6数据采集与处理Journal of Data Acquisition and Processing Vol.31,No.1,2016
图7 残差学习模块[26]Fig.7 Building block of residuallearning[26]保证随着网络层数的增加,准确率能够不断提高,而不会下降。由于ImageNet具有数据集规模大、图像类别多等特点,运用ImageNet所训练的模型具有很强的推广能力,在其他数据集上也能取得良好的分类结果;而如果进一步在目标数据集上进行微调,与只用目标数据集进行训练相比大多能够获得更好的效果。首个将卷积神经网络很好地运用于物体检测的R-CNN模型[27],就是将使用ImageNet训练过的AlexNet模型在PASCAL VOC数据集上进行微调后用于提取图像特征,取得了比以往模型高出20%的准确率。除此之外,将用ImageNet数据集训练过的模型运用于遥感图像分类[28]、室内场景分类[29]等其他类型的数据集上,也取得了比以往方法更好的效果。从深度学习首次在ILSVRC2012中被运用于图像分类比赛并取得令人瞩目的成绩以来,基于深度学习方法模型开始在图像识别领域被广泛运用,新的深度神经网络模型的涌现在不断刷新着比赛记录的同时,也使得深度神经网络模型对于图像特征的学习能力不断提升。同时,由于ImageNet,MS CO-CO等大规模数据集的出现,使得深度网络模型能够得到很好的训练,通过大量数据训练出来的模型具有更强的泛化能力,能够更好地适应对于实际应用所需要的数据集的学习,提升分类效果。3 物体检测与图像分类比起来,物体检测是计算机视觉领域中一个更加复杂的问题,因为一张图像中可能含有属于不同类别的多个物体,需要对它们均进行定位并识别其种类。因此,在物体检测中要取得好的效果也比物体分类更具有挑战性,运用于物体检测的深度学习模型也会更加复杂。AlexNet在ILSVRC2012中所取得的成功不仅影响了图像分类方向的研究,也得到了计算机视觉领域中其他方向研究者的关注。在那个时期,物体检测仍然是运用传统算法进行,在PASCAL VOC等物体检测的标准测试数据集上的结果也没有取得较大的突破。因此,Ross Girshick等便将卷积神经网络运用于物体检测中,提出了R-CNN模型[27]。如图8所示,该模型首先使用Selective search[30]这一非深度学习算法来提出待分类的候选区域,然后将每个候选区域输入到卷积神经网络中提取特征,接着将这些特征输入到线性支持向量机中进行分类。为了使得定位更加准确,R-CNN中还训练了一个线性回图8 R-CNN物体检测系统概览[27]Fig.8 Overview of R-CNN:Regions with CNN features[27]归模型来对候选区域坐标进行修正,该过程被称为Bounding box regression。该模型在PASCAL VOC的物体检测数据集上取得了比传统算法高大约20%的平均正确率均值,奠定了以后使用卷积神经网络进行物体检测的模型结构的基础。由于PASCAL VOC数据集比ImageNet数据集小,R-CNN使用Im-7 卢宏涛等:深度卷积神经网络在计算机视觉中的应用研究综述
ageNet数据集对其中的卷积神经网络进行预训练,再将模型在PASCAL VOC数据集上进行微调,取得了更好的训练效果。这种微调方法也成为后来用于物体检测的深度学习模型常用的预处理手段。在R-CNN模型中,对于每张图像大约产生2 000个候选区域,而对于每张图像,它的所有候选区域都要分别进行特征提取,这就使得特征提取所消耗的时间成为总的测试时间的瓶颈。微软亚洲研究院的研究团队将SPP-Net运用于物体检测中,并改进了R-CNN的这一缺陷。SPP-Net针对用Selectivesearch算法产生的候选区域,将这些区域的坐标投射到最高层卷积层所输出的特征映射的对应位置上,然后把每个候选区域所对应的特征输入到空间金字塔池化层,得到一个固定长度的特征表示。接下来的步骤与R-CNN相似,都是将这些特征表示输入到全连接层、将全连接层输出的特征输入到线性支持向量机进行分类以及使用Bounding box regression修正候选区域坐标。在PASCAL VOC上,该网络取得了与R-CNN相近的准确率,但是由于时间消耗大的卷积操作对于每张输入图像只进行了一次,使得总的测试所用时间大大减少。SPP-Net在物体检测方面虽然对R-CNN的图像处理流程做出了一定改进,但仍然存在着一些缺陷。在进行训练和测试的过程中,提出候选区域、提取图像特征以及根据特征进行分类3个过程形成了多阶段流水线。这样做的一个直接结果是需要额外的空间来存储提取出来的特征,供分类器使用。于是R-CNN的设计者之一Ross Girshick便对R-CNN提出了进一步的改进方案,称为Fast R-CNN[31],其结构如图9所示。与R-CNN中的卷积神经网络相比,Fast R-CNN对最后一个池化层进行了改进,提出了Region of interest(RoI)pooling层。这个层的作用与SPP-Net用于物体检测网络中的空间金字塔池化层相似,作用都是对于任意大小的输入,输出固定维数的特征向量,只是RoI pooling层中只进行了单层次的空间块划分。这一改进使得Fast R-CNN与SPP-Net一样,可以将整张输入图像以及由Selectivesearch算法产生的候选区域坐标信息一起输入卷积神经网络中,在最后一层卷积层输出的特征映射上对每个候选区域所对应的输出特征进行RoI pooling,从而不再需要对每个候选区域都单独进行一次卷积计算操作。除此之外,Fast R-CNN将卷积神经网络的最后一个softmax分类层改为两个并列的全连接层,其中一层仍为softmax分类层,另一层为Bounding box regressor,用于修正候选区域的坐标信息。在训练过程中,Fast R-CNN设计了一个多任务损失函数,来同时训练用于分类和修正候选区域坐标信息的两个全连接层。这种训练方式比之前R-CNN所采用的分阶段训练方式所得到的网络在PASCALVOC数据集上取得了更好的检测效果,从而Fast R-CNN中不再需要额外训练SVM分类器,实现了从提取图像特征到完成检测的一体化。由于Fast R-CNN的卷积神经网络中卷积操作对于每张输入图像只需进行一次,而全连接层的计算对于每个候选区域均进行一次,从而使得全连接层的计算时间在总运行时间中占了很大的比例。因此,fast R-CNN提出了用截断奇异值分解来加快全连接层运行速度的方图9 Fast R-CNN结构示意图[31]Fig.9 Fast R-CNN architecture[31]8数据采集与处理Journal of Data Acquisition and Processing Vol.31,No.1,2016