基于神经网络的目标检测技术研究综述及应用
2019-01-08吴燕如珠杰管美静
吴燕如 珠杰 管美静
摘要:随着深度学习的快速发展,目标检测技术已经越来越成熟。目前神经网络的目标检测技术已经被广泛应用在行人检测、自动驾驶、视频追踪等领域。本文首先分析了目标檢测技术的发展背景,介绍了神经网络的发展历程和目标检测中常用的卷积神经网络模型;其次分析了深度神经网络下的目标检测方法,指出现阶段不同检测方法存在的问题以及今后我们需要改进的方向;最后对深度神经网络的目标检测技术进行了总结和展望。
关键词:计算机视觉;目标检测;深度神经网络
中图分类号:TP18 文献标识码:A
文章编号:1009-3044(2019)33-0181-04
1概述
在研究过程中,计算机并不能像人一样能够直接感知到物体所属类别以及所在位置。计算机视觉技术就是像人一样来完成物体的及时定位,获取位置,并进行识别、分割的技术。在计算机视觉发展的早期,目标检测这一研究方向就激发了学者们浓厚的研究兴趣。随着计算机技术的发展,常见物体对象的检测,根据不同对象的特征信息,能够实现目标的定位、识别,像人脸检测、行为检测等一些特定目标对象的检测,现在已经有较成熟的技术川。计算机在检测过程中存在两种需要解决的难题,一是多目标对象的情形,二是前景和背景比较相似的情形,即使遇到这样有难度的检测对象,现阶段也已经有了有效的解决方法。
目标检测通常是指对输入的图像根据其目标对象的特征信息,首先画出能够把目标对象完整圈在框内的最小外接矩形;其次给矩形贴上类别标签;最后对物体的边框进行回归。传统的目标检测方法需要手动提取检测对象的特征,不可避免地会发生特征遗漏。此外,采用选择性搜索生成候选区域,也增加了计算复杂度。
当传统目标检测模型DPM的改进无所适从的时候,深度神经网络的目标检测方法问世,该方法在数据量比较大的时候能够自动提取检测对象的高层特征Cq,实现了在网络中快速提取特征、选择、分类和定位的完整操作,提高了目标检测的效率和准确率。大量数据端到端的训练方式,迅速在目标检测领域流传开来,传统的目标检测也由此过渡到深度神经网络的目标检测技术上。
2神经网络的发展
2.1神经网络的发展
神经网络是人类对神经元的功能和网络结构进行模拟,去完成认知任务的一类机器学习算法。早在1943年,McCunoc等就提出了人工神经网络的概念,并阐述了它的逻辑运算机制p)。约在1958年,Rosenblat模拟出“感知机”的神经网络模型,人工神经网络正式产生。1969年,《感知机》一书认为感知机并不能解决线性不可分问题,这种观念让人工神经网络的研究进入了停滞状态。在低潮期间仍有部分研究者坚持着神经网络的研究,1986年,Rummelhart等人再次提出了后向传播的学习方法16);1998年,LeCun提出Let5网络,实现了手写数字的识别。深度神经网络的再次复兴离不开这些研究成果的积淀。
2006年,Hinton首次提出深度神经网络的概念,实验采用含有多个隐藏层的网络进行训练,再用后向传播算法学习网络中的参数值。在这种情况下,深度神经网络的研究仍然不被大众接受。直到在2012年的ImageNet图像分类比赛中获得冠军,点燃了深度学习的热潮,使得深度神经网络重新进入复兴时期。
2.2神经网络基础模型
神经网络在图像检测过程中,首先输入待检测的数据集和检测的结果,网络在训练中自己学习参数,然后模型可以达到能够识别这一类图像的目的,最后根据测试集的测试结果,对网络的学习情况做出评价。在深度神经网络的目标检测方法中,基础网络采用卷积神经网络(CNN),在演化的过程中模型的网络深度和结构存在很大差异,但都属于卷积神经网络的范畴。CNN的演化过程如图1所示。
1998年,Lecun提出Lenet5网络。该模型作为最早的神经网络模型,但在网络结构和性能上并没有特别的地方,直到AlexNet出现,才真正成为深度神经网络的转折点。
2012年,Hinton等设计出AlextNet网络,同年在ImageNet比赛中获得了图像分类任务的冠军,CNN首次实现Top-5误差率降低了15.2%,标志着深度学习的开始。该网络结构简单,从可视化角度向我们展示了网络各层的具体分工和实现效果。利用两块GPU进行训练,首次引入ReLU激活函数,解决梯度消失问题;然后引入最大池化,扩大了感受野;最后是DropOut操作,有效避免了过拟合现象。为了探究网络深度对模型精确度的影响,学者们设计出了VGGNet网络。
2014年,牛津大学计算机视觉组合和GooSe DeepMind公司研究员共同设计出了VGGNet网络,在了op-5上的错误率仅为7.5%,在同年的ImageNet分类比赛中仅次于GoogLeNet。其主要思想是用两个3*3卷积核代替原来5*5的卷积核,池化核的大小均为2*2,减少了参数数量。该模型增加了网络深度,参数的数量并没有增加太多,在图像特征信息提取上取得了良好的效果。
2014年,ChristianSzegedy提出GooLeNet网络,在Top-5上的错误率降低到了6.67%,在同年的ImageNet比赛中获得了分类冠军叫。该网络引入了Inception模块,考虑了所有可能遇到的情况,网络结构趋于优化,不需人为指导网络训练过程,网络自己根据学习情况设置参数,不仅参数数量减少了12倍,而且大大提升了图片分类的准确率。但由于Inception模块对超参数设置的局限性,影响了网络的扩展,因此就有了广泛被作为基础网络的ResNet。
2015年,He等提出了ResNet网络,在同年的ImageNet和COCO比赛中,分别获得了图像检测、识别、分割领域的冠军。该网络的核心是跳层连接的方式,原始输入信息直接传到后面的层中,后面的层主要是学习上一个网络的输出残差,降低了学习难度。该网络深度增加至152层,参数没有额外增加,不改变网络训练复杂度,较好地解决了网络深度较深的情况下准确率不增加反而下降、梯度消失和爆炸的难题。
3神经网络的目标检测模型分类
目前,神经网络的目标检测已经有多种模型,按照是否需要提取候选区域可以将模型分为两类,一类是基于区域提名的模型,另一类是不用区域提名的模型。深度神经网络的目标检测模型进化过程如图2所示。
3.1基于域名提名的模型
目标检测中基于区域提名的模型主要有R-CNN、SPP-net、Fast R-CNN、Faster R-CNN、R-FCN,这一类模型的训练属于多阶段的训练,训练模型的时候首先需要找出感兴趣的候选区域,常用到的方式有滑动窗口、规则块、选择性搜索等,实验过程中要根据自己的研究对象选择合适的方法。
2013年,Ross B.Girshick提出R-CNN网络,该模型是首个用域名命名的深度神经网络检测模型。该网络在训练中使用标注好的数据集进行训练,大幅提升了数据集的平均精度,由于输入图片必须是相同尺寸,图片需要经过拉伸或者压缩进行转换,候选区域要进行重复的特征计算,时间消耗比较大,数据集的测试也比较缓慢。
2015年,Hc对R-CNN做出改进并提出了SPP-Net网络。该网络对输入图片的所有区域做共享卷积计算,提取出所有区域的特征,通过引入空间金字塔池化,实现不同尺寸区域的特征提取。该模型主要解决了R-CNN固定输入尺寸的问题,仍然是一个复杂的多阶段训练,需要存储大量图像特征,同时网络在金字塔池化层之前的所有卷积层参数不能进行finetun-ing,并没有实现误差反向传播。
2015年,Ross Girshiek提出了Fast R-CNN网络。该网络对R-CNN进行改进,同时也采纳了SPP-Net的方法,解决了候选区域重复的特征计算问题,实现了大量数据端到端单阶段的训练,不需要离线存储特征文件。Fast R-CNN是一种速度更快、性能更好的模型,但提取候选区域采用的还是传统做法,限制了它的使用。同年,Hc等人提出了Faster R-CNN检测算法,该算法实现用区域建议网络提取候选区域,提取出的建议区域大大减少。使用RPN网络提取出建议区域后,剩下的训练过程和Fast R-CNN一样。Fast R-CNN在速度上有了很大提升,然而还是未能实现物体的实时检测。
Faster R-CNN网络改进之后产生了R-FCN,目的是解决Faster R-CNN检测速度慢的问题,其主要是因为感兴趣池化层后的结构对建议区域没有实现共享叫。R-FCN在池化层前加入位置信息,较好的解决位置敏感性问题。该网络具有较深的共享卷积网络层,能够获取到更加抽象的高层特征,其检测速度比Faster R-CNN快2.5-20倍,但仍未能实现物体的实时检测。于是,基于回归思想的检测方法就应运而生。
3.2不基于域名提名模型
区域卷积神经的模型都需要生成建议区域,这会带来重复的特征计算问题。因此,学者们提出了不基于域名提名的目标检测方法,目标检测方法也由多阶段的训练过渡到单阶段的训练,训练过程很大限度地得到简化。目前,不基于域名提名的网络模型有YOLO、SSD。
2015年,在Faster R-CNN问世的同时,Ross Girshick等人又提出了YOLO检测方法,是首个不需要提取候选区域的算法。该算法采用回归的思想,每张图像只需要看一眼就能知道有哪些物体类别以及所在的位置。该算法从整体进行预测,通过卷积神经网络能够直接预测出boundingbox的定位置信度以及所属类别概率。由实验可知,YOLO检测过程简单,检测速度和准确度较高,但对密集小物体的检测效果欠佳,容易发生物体定位错误。
2016年,Liu提出SSD网络,目前已经成为主流的目标检测方法之一。该算法不但借鉴了YOLO回归的思想用CNN提取出不同尺度的特征图直接进行检测(Yolo是在全连接层之后做检测),而且采用FasterR-CNN中的anchor机制,降低了训练难度。该网络和FasterR-CNN有著同样的检测精确度,与YO-LO一样有着较快的检测速度,对于小物体的检测效果相比YO-LO有所提升。深度神经网络领域目标检测各模型性能对比如表1所示。
上述表1展示了两类不同的神经网络目标检测方法的性能指标,从各项性能指标可以看出由两阶段的训练到端到端的训练过程,训练的平均精度有了很大的提升,每秒处理图像的帧数也大幅增加,训练速度也是愈来愈快。由实验可知,FasterR-CNN对小物体的检测效果还是比较乐观的,SSD网络的训练速度最快,而YOLO则是融合了两者的特点,速度上要比FasterR-CNN快,对于小物体的检测要比SSD逊色。在未来的发展中,待提出的网络模型不但要能够适应各种尺寸的物体检测,而且要有较高的识别率和更快的检测速度。
4神经网络的目标检测方法存在的问题
目前深度神经网络技术发展迅速,在图像、语音、自然语言处理等领域都取得了可喜的成绩,这些成果离不开硬件处理单元GPU的快速改进,提升了计算机处理图像的能力。深度神经网络的目标检测技术作为一项发展中的技术,目前还存在一些急待解决的问题。
4.1数据集标注的问题
在深度神经网络的目标模型中,我们需要使用标注过的数据集进行训练。在大型的视觉类比赛中常用到的公开数据集有PASCALVOC、ImageNet、MS COCO等,但对于不同模型,数据集标注格式不同,需要我们足够熟悉各种模型的数据集标注格式,快速实现不同类型的标注数据集之间的转换。当数据集大小适中的情况下,深度神经网络方法能够对样本准确定位并分类;当数据集较大的时候,人工标注数据的工作量也不容乐观,增加了数据标注成本。然而,在深度神经网络的训练过程中,若数据集太小则会引起数据拟合问题,不利于模型的实现。因此,深度神经网络方法在小数据集上的应用,将是一个急待解决的问题。
4.2硬件处理单元的改进问题
在深度神经网络的训练中,不需要人工手动提取出目标对象的特征,网络能够自动提取出目标对象的特征,并对其进行分类和定位。在数据集较大的情况下,特征提取、特征计算问题也愈加繁杂,普通计算机的CPU处理器已经不能满足网络训练需要的计算能力。由英伟达公司开发的高性能显卡,实现了GPU硬件环境的搭建,在同种模型的训练中有效提升了神经网络训练的效率,显著减少了网络训练需要的时间。在未来的研究中,我们可能开发出更加深层次的网络结构,用其训练大量更加复杂的目标对象,这一训练的实现也依赖于计算机的计算能力,有效升级计算机硬件处理单元是我们需要努力改进的地方。
4.3目标检测模型的进化问题
在传统的目标检测方法中,研究者根据特定目标对象的特征设计出特定的检测器,比如:Harr特征、梯度方向直方图(HOG)、支持向量机(SVM)、多尺度形变部件(DPM)等,这些检测器都需要人为的提取出目标对象的特征,不可避免地会发生特征遗漏,影响最终的检测效果。自2013年问世的深度神经网络目标检测模型,能够自动提取出目标对象的特征,在计算机视觉领域已经得到了良好的应用。
目前深度神经网络的目标检测方法分为两类,一类是基于域名提名的多阶段训练模型;另一类是不基于域名提名的单阶段训练模型。现阶段这两类方法主要适用于普通物体检测,对于文本、版面等对象的检测效果不是很理想。这主要是因为物体本身具有封闭性、均匀性,文本、版面则是开放的,往往都是扁宽的形状,文本的纵横比也不尽相同,文字也呈现出水平、竖直、倾斜的方向。研究者需要根据自身实践经验,调整模型的参数,让模型也能够适应文本等不均匀目标对象的检测。
此外,现有的深度神经网络目标检测方法对于小物体的检测和存在遮挡的物体检测效果還不是很理想。尽管学者们也对此类问题提出了不同的解决方法,但还没有足够的理论依据去解释这一类问题。研究者需要加强自身理论的学习,从理论角度深刻理解并改进这一类问题,关于模型的进化也是未来需要解决的问题。
5总结和展望
本文回顾了目标检测的发展历程,引出了神经网络的目标检测技术。简单介绍了神经网络发展历程、基础网络的演化,分析了现阶段神经网络的目标检测方法各自的优缺点以及模型所能解决的问题。随着计算机硬件GPU和深度神经网络的发展,神经网络的目标检测技术逐渐成熟,在计算机视觉领域已经有了较为成功的应用。虽然目前已经取得了一些成绩,但仍存在一些应用方面的问题。在未来的研究中,深度神经网络在目标检测领域的应用也将会更加成熟,对复杂的研究对象的精确度和速度的提升面临突破,也将会有高层次领域的应用。