基于深度卷积神经网络的目标检测研究综述
来自《光学精密工程》 ,作者范丽丽等
摘要:作为计算机视觉中的基本视觉识别问题,目标检测在过去的几十年中得到了广泛地研究。目标检测旨在给定图像中找到具有准确定位的特定对象,并为每个对象分配一个对应的标签。近年来,深度卷积神经网络DCNN(Deep Convolutional Neural Networks)凭借其特征学习和迁移学习的强大能力在图像分类方面取得了一系列突破,在目标检测方面,它越来越受到人们的重视。因此,如何将CNN应用于目标检测并获得更好的性能是一项重要的研究。首先回顾和介绍了几类经典的目标检测算法;然后将深度学习算法的产生过程作为切入点,以系统的方式全面概述了各种目标检测方法;最后针对目标检测和深度学习算法面临的重大挑战,讨论了一些未来的方向,以促进深度学习对目标检测的研究。
关 键 词:图像处理;深度卷积神经网络;目标检测;特征表示;深度学习
1 引 言
随着世界经济的飞速发展,目标检测已经成为社会安全、公共交通和国防军事等各个领域的基础性研究课题之一,在机器人导航[1]、航空航天[2]、工业检测[3-4]、行人追踪[5]和军事应用[6-7]等领域应用广泛。所谓的目标检测,是通过分析目标的几何特征,从图像或视频中定位感兴趣的目标,准确地判断每个目标的具体类别,并给出每个目标的边界框。然而,目标所处的环境缤纷复杂、目标本身通常具有不同的形态以及光亮、颜色和遮挡等多种因素的影响使目标检测在近年来受到广泛关注。
传统的目标检测的方法主要包括区域选择、特征提取和分类三个阶段。
(1)区域选择是定位目标位置。在定位的过程中,因为不能确定检测目标的大小、长宽比以及位置,因此使用多尺度滑动窗口,以便尽可能找到目标的所有可能位置;
(2)采用SIFT(Scale-Invariant Feature Transform)[8],Strip[9],Haar[10]等能提高特征的抗变形能力和表达能力的方法进行特征提取;
(3)利用AdaBoost[11]和DPM(Deformable Parts Model)[12]等方法通过提高分类器的准确度和速度进行特征分类。
尽管传统的目标检测算法广泛应用于各个领域,但是其缺点引起人们的关注:
(1)众多的候选窗口,不仅会产生很大的计算花销,并且还会产生许多多余的窗口;
(2)语义鸿沟无法通过人工手动设计的描述符和经过判别训练的浅层模型组合来弥补;
(3)分类训练效果受到提取特征的影响,大量的特征维数,不仅影响训练效果,还会产生“维数灾难”等问题;
(4)算法可迁移性差,并且对特定任务的依赖性高,当检测目标发生较大改变时,需要设计新的算法。
为了能让计算机模拟人类提取特征的过程而让计算机更自然地获取图像信息,人们进行不断地研究和尝试,2006年,深度学习被Hinton提出,他利用深度神经网络从大量数据中自动地学习高层语义特征。深度学习强大的表征能力以及丰富的特征表示使目标检测的准确度获得了很大提升,推动了目标检测的发展。
卷积神经网络不仅能够提取高层特征,提高特征的表达能力,还能够将特征提取、特征选择和特征分类融合在同一个模型中,通过端到端的训练,从整体上进行功能优化,增强特征的可分性。
2014年,Ross B.Girshick将检测抽象为两个过程,一是基于图片提出若干可能包含目标的区域(即图片的局部裁剪),二是在提出的这些区域上运行Alexnet分类网络,得到目标的类别。这就是检测任务转化为区域上的分类任务的R-CNN(Convolutional Neural Networks)框架,它在目标检测方面取得重大突破,影响着检测任务上的深度模型革命。基于卷积神经网络的目标检测成为计算机视觉领域的研究热点。
2 深度卷积神经网络概述
卷积神经网络是一种常用的深度学习网络框架。1959年,Hubel & Wiesel[13]发现视觉系统中的可视皮层处理信息是分级处理的。20世纪90年代,LeCun等人[14]建立了CNN的现代结构,并对其进行了改进。他们设计了一种可以对手写数字进行分类的LeNet-5网络。与其他神经网络相同,也能使用反向传播算法[15]对数据进行训练。
卷积神经网络可以获取原始图像的有效表示,这使得它能够通过很少的预处理直接从原始像素识别视觉之上的规则。但是,训练数据的不足限制了计算机的计算能力,从而制约了LeNet-5在处理复杂问题方面的能力。之后,设计了多种方法来克服卷积神经网络训练深度的困难。其中AlexNet[16]框架的提出促进了图像识别领域的发展,该框架类似于LeNet-5,但层次结构更深。同时使用了非线性激活函数ReLu[17]与Dropout[18]方法,取得了卓越的效果。
AlexNet之后,ZFNet[19],VGGNet[20],GoogleNet[21]和ResNet[22]等方法相继被提出。从结构上讲,CNN发展的一个方向是增加层数。通过增加深度,可以利用增加的非线性得到目标函数的近似结构,同时得到更好的特征。然而,这也使网络的整体复杂性和优化难度增加,并且会产生过度拟合现象。
自从2012年以来,多种改进CNN的方法被提出。ZFNet对AlexNet的改进首先通过将第一层的卷积核尺寸从11×11降为7×7,同时将卷积时的步长从4降至2。这样扩张中间的卷积层可以获取到更多的信息。VGGNet将网络的深度扩展到了19层,并且每个卷积层使用了3×3这种小尺寸的卷积核,结果证明深度对网络性能有着重要影响。GoogleNet同时增加了网络的宽度与深度,相比于更窄更浅的网络,在计算量没有增加的同时,网络性能明显增强。
3 通用的目标检测方法
通用的目标检测算法旨在任意一张图片中定位和分类已有对象,并用矩形框标记,最后显示置信度。其主要包括两种类型,一种是基于锚点的目标检测,一种是基于Anchor-free的检测,