叶嘉欣
摘要:目标检测是计算机视觉的重要研究方向之一,旨在准确识别图像中目标的位置和类别,因其较高的准确性,受到研究人员的广泛关注。近年来,计算机技术快速发展,相对于传统的目标检测算法,基于深度学习的目标检测算法的优势逐渐凸显,该算法精度高、实时性好。本文介绍了几种经典的两阶段目标检测算法,对其优缺点进行了比较,并对未来两阶段目标检测算法的发展进行了展望。
关键词:深度学习;目标检测算法;技术演变 ;计算机视觉
引言
自计算机诞生之时,研究人员就在思考如何使计算机变得智能。如今,人工智能已经成为一个热点领域,而在人工智能领域中,目标检测[1]一直是计算机视觉领域经久不衰的研究方向[2]。它主要通过综合利用图像处理、机器学习、人工智能等技术,从图像中查找对象,然后指定其位置和类别。在计算机视觉领域,由于各种外部环境因素的干扰,目标检测一直是具挑战性的问题之一。近年来,深度学习因为其优越性广泛应用于各种领域,基于深度学习的目标检测算法也逐渐被人们关注,如图1所示。本文首先简要说明传统的目标检测算法,并说明它的缺陷,还对当前经典的两阶段目标检测算法进行了详细的介绍与比较,最后展望了两阶段目标检测算法未来的研究方向。
1. 传统目标检测算法
传统的目标检测算法可以分为两个方向:根据特征进行目标识别、根据分割进行目标识别。在传统的算法中,主要的特征有Harr特征[3]、HOG特征[4]、SIFT特征等。人为提取特征的效果难以保证是传统目标检测算法的一大缺点,可移植性较差,时间复杂度高,存在大量的冗余计算,势必会导致运行速度难以提升,而且面对复杂多变的环境时,鲁棒性差,只有在一些特定的环境下才会有较好的表现,因此在现实生活中也得不到大规模的使用。在计算机视觉技术迅猛发展的今天,基于深度学习的目标检测算法因实时精度高,逐步替代了传统目标检测方法。在复杂场景下,背景变化剧烈时,传统的目标检测算法会出现误检或漏检等现象。为克服传统目标检测算法准确性不高的不足,提出一种两阶段目标检测算法。
2. 基于深度学习的两阶段目标检测算法
2013年Sermanet等人[5]提出了著名的OverFeat算法。OverFeat可以说是单阶段目标检测算法的经典开山之作,基于AlexNet[6]实现了识别、定位、检测共用同一个网络框架。这也是首篇介绍使用一个网络就能解决这一问题的方法。它利用了卷积神经网络的特征提取功能,把分类过程中提取到的特征又同时用于定位检测任务。该论文通过一种应用于回归边界框的贪婪合并策略,合并各个预测,是一种全新的定位与检测方法。整体没有全连接层,采用全卷积网络,消除了传统滑动窗口方法的很多冗余计算,提高了算法的鲁棒性又保证了效率。此算法对后续深度学习目标检测算法的发展有着重要意义。但是该算法对小目标的检测效果不理想,且存在较高错误率。
2014年,R-CNN搭载着“Region Proposal(候选框)+CNN”提取的分类网络的组合模式出现在大众视野中,这种两阶段目标检测算法以其优秀的准确度给目标检测算法提供了新思路。Two-stage(两阶段)目标检测算法将目标检测分为两大部分:候选区域的选取、目标的分类识别。两阶段目标检测算法的优势在于选取多个候选框可以充分提取目标的特征信息,检测的准确度高,同时可以实现精准定位,但是因为算法模型复杂且分两个步骤进行,所以检测速度较慢。下面简要介绍一些经典的两阶段检测算法以及它们的优缺点。
2.1 R-CNN
R-CNN[7]算法由Girshick等人在2014年提出,它开启了将深度学习运用在目标检测的大门,并为后续该系列检测算法奠定了基础。此后,目标检测算法的实时性与精确度不断提高。
R-CNN目标检测算法可分为四个步骤:第一步,利用选择性搜索算法SS(Selective Search)[8]从图像中提取约2000个候选框。第二步,利用深度卷积神经网络提取各候选框的函数向量。第三步,用AlexNet将各个函数向量发送给各个向量机(SVM),判断是否属于此类。第四步,使用边界框的回归和非极大值抑制算法来获得候选的最佳框。虽然该算法大幅提高了平均精确度,但是因为需要对2000个候选框进行特征提取,所以检测速度较慢。针对此问题,He等人在2015年提出了SPP-Net[9]算法。
2.2 SPP-Net
因为R-CNN算法只能对固定大小的图像进行卷积运算,这就会导致特征信息损失和运算速度慢的问题出现。为了解决R-CNN算法提取特征操作冗长的问题,He等人在2015年提出了SPP-Net算法。SPP-Net算法同样大致分为四个步骤:第一步,采用SS(Selective Search)方法让一张图片生成2000个候选区域;第二步,利用空间金字塔池化[10](Spatial Pyramid Pooling,SPP)操作,把每个候选区域对应的特征转换成固定长度的特征;第三步,输入全连接层;第四步,进行后续SVM的分类和回归。SPP-Net算法通过引入SPP来避免重复进行卷积运算,在保证同样或者更好的检测精度的同时,极大地提升了检测速度,相比R-CNN 算法快24~102倍[11]。首先,训练还处于多个阶段,接下来,SPP-Net只对完全连接的层进行了微调,忽略了之前的所有层,添加池化层后,网络只更新下面的完整连接层,忽略了以前层数对模型的影响,从而降低了检测精度。为了解决R-CNN和SPP网络的缺点,Girshick等人在2015年提出了Fast R-CNN算法。
2.3 Fast R-CNN
Fast R-CNN[12]是对R-CNN算法的改进,在卷积计算部分使用VGG16网络代替AlexNet网络,并且融合了SPP-net的思想,将网络的SPP层设计成为单独的一层,即ROI(Region of Interesting) Pooling层,进一步解决了权值更新的问题。该算法引入SVD(Singular Value Decomposition)对全连接层进行分解,使得处理一张图片的速度明显提升。Fast R-CNN将卷积神经网络提取的特征存储在显存中,减少了对磁盘空间的占用,提高了训练性能,加快了训练速度。同时在网络中加入多任务损失函数边框回归,整个训练过程仅包括候选区域提取和CNN训练两个阶段。但是,该算法存在一些缺陷。它仍然使用SS (Selective Search)方法来选择候选区域,这一步仍然会有大量的计算。Fast R-CNN雖然成功地融合了R-CNN和SPP-Net的优点,但仍然无法实现端到端的目标检测。例如,不能同时获得候选区域,速度仍有提高的空间。
2.4 Faster R-CNN
针对以上网络存在的不足,在 Fast R-CNN 之后不久,Ren等人在2015年提出了Faster R-CNN[13]算法。Faster R-CNN是第一个接近实时的深度学习检测算法。Faster R-CNN的主要贡献是引入了区域生成网络(Region Proposal Networks,RPN),代替Selective Search算法。尽管Faster R-CNN已经突破了Fast R-CNN的速度瓶颈,但是后续检测阶段仍存在计算冗余问题。它继续沿用ROI Pooling层,这就会导致降低目标检测中定位的准确性,而且Faster R-CNN对小目标的检测效果不佳,后来提出了各种改进方案,包括R-FCN[14]和Light head R-CNN[15]都对Faster R-CNN做了进一步的改进。
2.5 FPN
为了解决Faster R-CNN目标检测算法在应对多尺度变化问题时的不足,以及对小目标检测效果不佳等问题,Lin等人在Faster R-CNN的基础上提出了FPN[16]算法。文章将一种自顶向下、带有侧向连接的层次结构应用在Faster R-CNN算法中,使得算法在不增加计算量的同时,对小目标的检测能力大幅提升。在FPN出现之前,大多数基于深度学习的目标检测算法都只用顶层特征做预测,虽然深层的特征语义信息丰富,但是目标位置却很模糊。FPN通过连续上采样和跨层融合,使得输出特征既具有底层视觉信息,又具有深层语义信息。严格来说,FPN本身并不属于一种目标检测算法,它是一个骨干网络。同时它也具有一定的缺陷,因为不同层之间存在语义鸿沟,直接融合会降低多尺度表示能力,而且下采样过程会损失最高层金字塔特征信息。
结语
文中总结了当前阶段比较经典的两阶段目标检测算法,并分析和总结其优势和局限。总体来看,两阶段目标检测算法无论是检测精度还是检测速度都得到了提升与优化。相对于单阶段目标检测算法,两阶段目标检测算法虽然没有单阶段目标检测算法那么快,但其检测精度方面更具有优势。随着计算机视觉与深度学习的快速发展和其硬件性能的不断提高,给目标检测技术的发展提供了有利的环境与条件。与传统的目标检测算法相比,基于深度学习的目标检测算法不论是在速度还是精度方面都有了很大的提高,但仍有很大的发展空间。如何提升小目标的检测精度,使其更好地运用到遥感监测与军事领域中,如何使算法更加轻量化,使其能够在移动设备上平稳运行,如何运用到视频监控检测,这对自动驾驶有着重要意义,这些都将会是两阶段目标检测算法的重要研究方向。希望基于深度学习的两阶段目标检测算法在未来能够为人类带来更大的贡献。
参考文献:
[1]赵永强,饶元,董世鹏.深度学习目标检测方法综述[J].中国图象图形学报, 2020,25(4):629-654.
[2]张顺,龚怡宏,王进军.深度卷积神经网络的发展及其在计算机视觉领域的应用[J].计算机学报,2019,42(3):453-482.
[3]宋晓琳,邬紫阳,张伟伟.基于阴影和类Haar特征的动态车辆检测[J].电子测量與仪器学报2015,(9):1340-1347.
[4]徐渊,许晓亮,李才年.结合SVM分类器与HOG特征提取的行人检测[J].计算机工程2016,(1):56-60,65.
[5]Sermanet P,Eigen D,Zhang X,et al.Overfeat:Integrated recognition, localization and detection using convolutional networks[J].arXiv preprint arXiv:1312.6229,2013.
[6]Krizhevsky A,Sutskever I,Hinton GE.Imagenet classification with deep convolutional neural networks[J].Communications of the ACM,2017.60(6):84-90.
[7]Girshick R, Donahue J, Darrell T,et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition.2014:580-587.
[8]吴素雯,战荫伟.基于选择性搜索和卷积神经网络的人脸检测[J].计算机应用研究2017,(9),2854-2857,2876.
[9]He K,Zhang X,Ren S,et al.Spatial pyramid pooling in deep convolutional networks for visual recognition[J].IEEE transactions on pattern analysis and machine intelligence,2015,37(9):1904-1916.
[10]侯明伟.基于空间金字塔池化的卷积神经网络图像分类算法[D].武汉:武汉大学,2018.
[11]杨伟,杜学峰,张勇.基于深度学习的车辆目标检测算法综述[J].汽车实用技术2022,(2):24-26.
[12]Girshick R. Fast r-cnn[C]//Proceedings of the IEEE international conference on computer vision.2015:1440-1448.
[13]Ren S,He K,Girshick R,et al.Faster r-cnn:Towards real-time object detection with region proposal networks[C]//Advances in neural information processing systems. 2015,(1):91-99.
[14]Dai J,Li Y,He K,et al.R-fcn:Object detection via region-based fully convolutional networks[C]//Advances in neural information processing systems. 2016: 379-387.
[15]Li Z,Peng C,Yu G,et al.Light-head r-cnn:In defense of two-stage object detector[C]//arXiv preprint arXiv.2017:1711-7264.
[16]Lin TY,Dollár P,Girshick R,et al.Feature pyramid networks for object detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition.2017:2117-2125.
作者简介:叶嘉欣,本科在读,研究方向:日语、软件工程。