目标检测
摘要:如今人们生活在日新月异的计算机革命时代,而计算机视觉已经成为多个领域的关键技术。目标检测是一种基于目标几何和统计特征的图像分割,它将目标的分割和识别合二为一,其准确性和实时性是整个系统的一项重要能力,尤其是在复杂的场景中,需要对多个目标进行实时处理,目标检测就显得尤为重要,随着计算机技术和计算机视觉的发展,目标检测已经运用到了智能化交通系统,智能监控系统,军事目标检测以及医疗等各个行业和领域,本文主要从目标检测的背景和意义,目标检测的研究现状以及目标检测的算法等三个方面进行说明,同时介绍最新的目标检测算法的基本流程和基本原理。
关键词:目标检测 SLFT R-CNN YOLO
1.文章说明
本文主要介绍目标检测的相关知识,目标检测可以根据时间分为两个阶段,在神经网络和深度学习的概念以前,人们对于目标检测任务主要是根据图像本身的特性做的,例如图像的灰度直方图,梯度等,因此此类方法又称为传统的目标检测方法,这类方法往往需要计算梯度和导数,因此计算量较大,且泛化能力差;而随着深度学习的提出,卷积神经网络成为计算机视觉常用的方法,而基于深度学习的目标检测方法又称为One- stage和Two- stage两类。
本文为目标检测综述,第一部分为文章说明,第二部分说明目标检测的背景和意义,第三部分为目标检测的研究现状,第四部分为目标检测的相关算法。
2.目标检测的背景和意义
1.目标检测的定义
目标检测的任务是找出图像中所有感兴趣的目标,确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测是计算机视觉领域具有挑战性的问题。
如上图所示,目标分类任务中,仅是需要判别上图中的鱼类属于哪一类即可,但是目标检测不仅仅是分类,同时需要将目标在图像中的位置找出,且图像中可能包含多个不用类别的生物。因此,目标检测比分类任务或者单纯的目标定位任务更加具有挑战性。
2、目标检测的发展
在2013年以前,目标检测大都基于手工特征提取方法,通过在低层特征表达的基础上构建复杂的模型及多模型集成来提升检测精度。
2012年CNN在ILSVRC图像分类项目中大放异彩,人们发现CNN能够学习鲁棒性非常强且具有一定表达能力的特征表示,于是2014年,提出了区域卷积神经网络目标检测R-CNN模型,目标检测研究开始以前所未有的速度发展。
3、目标检测的意义
目标检测的应用十分广泛,在人脸检测中的应用:智能门控、员工考勤、人脸支付、车票检查等。行人检测:智能键控、辅助驾驶;车辆检测:自动驾驶、违章检测;遥感:农作物检测、军事领域;等等。
不言而喻,目标识别是当前人工智能应用中最重要的环节之一,各种应用场景和需求也不断的促使其改进和演化。
3、 目标检测研究现状
1、核心内容
目标检测需要找出图像中感兴趣的物体,包含物体定位和为分类两个子任务,同时需要确定物体的类别和位置。
目标检测主要有以下核心问题:
1、 分类问题
2、 定位问题
3、 大小问题
4、 形状问题
2、研究现状
目标检测的发展大致经历了两个时期:传统的目标检测时期和深度学习的检测时期。早期的目标检测算法大多是基于手工特征构建的。
(1) Viola Jones Detectors:最初的 slide windows 算法,以作者的名字命名(VJ)检测器,以纪念他们的重大贡献.
(2) HOG Detector:方向梯度直方图用于描述特征, 方向梯度直方图(HOG)特征描述符最初是由 N. Dalal 和 B.Triggs 在 2005 年提出的。HOG 可以被认为是对当时的尺度不变特征变换(scale-invariant feature transform)和形状上下文(shape contexts)的重要改进。
(3) Deformable Part-based Model (基于可变形部件的模型,DPM), DPM 作为voco -07、-08、-09 检测挑战的优胜者,是传统目标检测方法的巅峰。DPM 最初是由 P. Felzenszwalb 提出的,于 2008 年作为 HOG 检测器的扩展,之后 R. Girshick 进行了各种改进。
在深度学习时代,目标检测可以分为两类:“ two-stage detection ” 和 “ one-stage detection ”,前者将检测框定为一个 “ 从粗到细 ” 的过程,而后者将其定义为 “ 一步完成 ”。
(1) RCNN,首先在图像中选取候选区域,接着在每个候选区域送入CNN提取特征,使用SVM将得到的特征进行分类,最后进行边界框的回归预测。R-CNN的贡献在于将深度学习引入目标检测,并将Pascal VOC 2007数据集上的mAP由之前的35.1%提升至66.0%。
(2) SPPNet, 由于R-CNN卷积层后全简介的输入尺寸是固定的,这就导致图像的大小不能随意调节,此外由于候选区域经常重叠,会导致大量的重复运算,针对这两个问题,2014 年,K. He 等人提出了空间金字塔池化网络( Spatial Pyramid Pooling Networks,SPPNet).
(3) Fast RCNN, 2015 年,R. Girshick 提出了 Fast RCNN 检测器,这是对 RCNN 和 SPPNet 的进一步改进。Fast RCNN 使能够在相同的网络配置下同时训练检测器和边界框回归器。
(4) Faster RCNN, 2015 年,S. Ren 等人提出了 Faster RCNN 检测器,在 Fast RCNN 之后不久。Faster RCNN 是第一个端到端的,也是第一个接近实时的深度学习检测器。
(5) Feature Pyramid Networks(FPN), 2017 年,T.-Y.Lin 等人基于 Faster RCNN 提出了特征金字塔网络(FPN)。
从R-CNN到R-FCN,都是目标检测中居于候选区域的检测方法,需要两步,第一步选出候选区域,第二部,对每个候选区域进行定位,都属于两阶段法,虽然其检测精度较高,但是速度上和实时性仍有差距。
为了满足实时性的要求,提出了单阶段目标检测方法。在单阶段检测方法中,不再使用候选区域进行“粗检测+精修”的流程,而采用“锚点+修正”的方法,这类算法速度很快,可以满足实时性的效果。
(6) You Only Look Once (YOLO), YOLO 由 R. Joseph 等人于 2015 年提出。它是深度学习时代[20]的第一个单级检测器。YOLO 非常快:YOLO 的一个快速版本运行速度为 155fps, VOC07 mAP=52.7%,而它的增强版本运行速度为 45fps, VOC07 mAP=63.4%, VOC12 mAP=57.9%。
(7) Single Shot MultiBox Detector (SSD), SSD由 W. Liu 等人于 2015 年提出。这是深度学习时代的第二款单级探测器。SSD 的主要贡献是引入了多参考和多分辨率检测技术,这大大提高了单级检测器的检测精度,特别是对于一些小目标。
(8)2018年,YOLO再次迎来改进版本,YOLOv3。YOLOv3用多个独立的分类器代替softmax函数,用类似特征金字塔的方法进行多尺度检测。
4、