从RCNN到YOLO系列的物体检测系统综述

2021-11-08 05:41王婉婷姜国龙褚云飞陈业红
齐鲁工业大学学报 2021年5期
关键词:类别物体精度

王婉婷,姜国龙,褚云飞,陈业红

齐鲁工业大学(山东省科学院) 轻工科学与工程学院,济南 250353

物体检测算法在深度学习的应用下逐渐成为近年来的研究热点[1]。物体检测的目的是确定图像中是否存在来自给定类别的物体实例(如人类、汽车、自行车、狗和猫),如果存在,则通过一个边界框[2-3]来返回每个物体实例的空间位置。物体检测在人工智能和信息技术的许多领域都有广泛的应用,包括机器视觉、安全监控、自动驾驶、人机交互、虚拟现实和增强现实等[4]。

一般来说,基于深度学习的物体检测方法主要有基于候选区域和非候选区的方法。其中,基于候选区域的方法通常是二步检测法,即需要先从输入的图像中生成一系列区域,然后利用CNN从生成的区域中提取特征并构造一个目标分类器,最后在候选区域上进行分类与回归。基于候选区域的卷积神经网络(RCNN)[5]法是最早引入深度学习的方法。它采用选择性搜索(Selective Search,SS)[6]的策略在输入图像中生成候选区域,并使用卷积神经网络从生成的候选区域中提取特征。提取的特征用于训练支持向量机(SVM)[7]。在RCNN方法的基础上,研究人员提出了Fast RCNN[8]和Faster RCNN[9],以减少训练时间,提高精度。虽然基于候选区域的方法具有较高的检测精度,但该方法结构复杂且检测耗时。而基于非候选区域的一步检测法比较有代表性的是YOLO系列算法,其结构简单并能够快速检测出物体,但准确度却不如基于候选区域的二步检测方法。这两类方法具有不同的优点且适用于不同的应用场合。本文主要对该两类方法进行详细的综述。

1 二步物体检测系统RCNN系列发展

传统的物体检测算法在准确度、鲁棒性、运行速度上都存在一定缺陷,研究人员为此不断寻求新的解决方法。RCNN家族将候选区域和CNN相结合来避免传统方法带来的弊端。这类算法首先使用区域选择方法从图像中生成与类别无关的候选区域,再从这些区域中进行CNN的特征提取、使用分类器来确定类别并进行边界框的位置回归,从而完成物体检测任务。

根据AlexNet[10]在图像特征提取方面取得巨大成功的启发,Girshick等[5]采用深度卷积网络作为特征提取的骨干网络,并结合区域选择方法,以生成候选区域并形成RCNN架构。该模型成为了基于深度学习的物体检测算法的开端。其算法过程如图1a:首先,利用SS算法生成约2 000个与类别无关的候选区域;其次,将候选区域归一化后输入到深度网络中;接着使用SVM分类器对特征进行分类,预测对应的类别;最后,通过边界框回归和和非极大值抑制来进行边界框的微调。

Girshick等提出了Fast RCNN[8],在RCNN的基础上加入了空间金字塔池化(Spatial Pyramid Pooling,SPP)[11]以及感兴趣区域(Region of Interest,RoI)池化层。Fast RCNN的流程如图1b所示。

鉴于Fast RCNN采用选择性搜索来找出所有候选框的方法也非常耗时。为解决这一缺点,Shaoqing Ren等提出了Faster RCNN[9]算法。应用一个准确高效的候选区域网络(Regional Proposal Network,RPN)来代替选择性搜索来生成候选区域。RPN的引入减少了候选框的数量,提高了候选区域的质量,提升了物体检测的定位精度和速度。其流程如图1c所示。

注:a)RCNN检测;b)Fast RCNN检测;c)Faster RCNN检测。

2 YOLO系列算法发展过程

为弥补Faster RCNN在检测速度上难以满足实时要求的缺点,Redmon等[12]在2016年提出了YOLO(You Only Look Once)物体检测算法,一种端到端的一步检测系统,并且经历了从v1到v5的版本更新,逐渐成为物体检测的主流框架。

2.1 YOLOv1

YOLOv1[12]通过CNN直接在一张完整的图像上实现物体类别概率和边界框回归的预测。其网络结构是在GoogLeNet[13]模型的基础上建立的。YOLO的实现过程如图2。首先,将输入图像固定为统一尺寸(448×448),输入的图像划分为S×S个网格,每个网格负责检测一个物体中心落在其上的目标,并预测该物体的confidence(置信度)、类别及位置;其次,利用CNN对输入图像提取特征并进行物体检测;最后,通过非极大值抑制(Non-Maximum Suppression,NMS)[14]处理边界框得到最优结果。YOLO划分的每个网格检测一个物体,并将检测边界框转化为回归问题,以使该构架可以直接从输入图像中提取特征来预测物体边界框和类别概率。

图2 YOLO算法实现流程[12]

YOLO检测系统的设计是将输入的448×448×3的图像划分为7×7的网格,其预测输出张量的计算表示为:

S×S(B×5+C)

(1)

其中,S×S表示输入图像划分的网格数量,对应特征图的分辨率;B表示每个网格生成B个边界框;5表示预测参数数量(x,y,w,h,confidence);C表示能检测到识别的种类(20)。

相比于0.5 fps的Fast RCNN和7 fps的Faster RCNN,YOLO网络以45 fps的速度运行,在运行速度上有大幅提升,但在预测精度上仍存在一定不足,容易产生更多的定位误差,尤其对于小目标物体无法准确检测出来。

2.2 YOLOv2

YOLOv2[15]相对v1版本,主要从预测精度、速度、识别物体数目这三个方面进行了改进。YOLOv2识别的物体变得更多,即扩展到能够检测9 000种不同物体,又称为YOLO9000。它采用更简单的特征提取网络DarkNet19[15]来取代GoogLeNet网络;引入了批次归一化(Batch Normalization,BN)层[16]来加强网络的收敛速度,增强了网络的泛化能力;训练高分辨率分类器以适应更高分辨率的图像;利用WordTree将ImageNet[17]分类数据集和COCO[18]检测数据集联合训练;除去全连接层并采用k-means聚类算法自动寻找先验框——锚框(anchor boxes),从而提高检测性能。其中,锚框是基于一个窗口只能检测一个目标以及无法进行多尺度检测问题所提出的一种先验框。

2.3 YOLOv3

2018年,原作者提出了YOLOv3算法[19],它继承了YOLOv1和YOLO9000的思想,实现了速度和检测精度的平衡。该算法对DarkNet19再加以改进设计出了DarkNet53网络,其灵感来自于ResNet(残差网络)[20],在网络中加入直连通道,允许输入的信息直接传到后面的层,同时引入了特征金字塔(Feature Pyramid Networks,FPN)[21]来实现多尺度预测,通过这种新的特征连接方式能有效提高小物体的检测能力。YOLOv3引入残差结构并通过卷积层来实现特征图尺寸的修改,其网络结构如图3所示。

图3 基于Darknet-53的YOLOv3结构示意图[19]

2.4 YOLOv4

2020年4月,Alexey等[22]在 YOLOv3 的基础上做了各方面改进并提出了新的高效检测物体的算法—YOLOv4。其特点在于集大成,包括新的数据增强方法Mosaic法和自对抗训练(Self-Adversarial Training,SAT)法、提出了改进的SAM[23]和PAN[24]以及交叉小批量标准化(Cross mini-Batch Normalization,CmBN)。YOLOv4的框架如图4所示。包括YOLOv3的Head、SPP和PAN的Neck以及CSPDarkNet53[25]的Backbone。

图4 YOLOv4结构

YOLOv4分成了4个部分。包括输入端、BackBone主干网络、Neck、预测部分。其中,输入端主要包括Mosaic、cmBN、SAT;主干网络包括CSPDarknet53网络、Mish激活函数、Dropblo-ck[26];Neck部分包括SPP模块、FPN+PAN结构;预测部分主要为改进的损失函数CIOU_Loss,以及边界框筛选的nms变为DIOU_nms。

2.5 YOLOv5

继YOLOv4之后时隔2个月,有研究人员推出了YOLOv5算法。在准确度指标上,其性能与YOLOv4不相上下,速度上远超v4,模型尺寸相比于YOLOv4(245 MB)也非常小(27 MB),在模型部署上有极强的优势,同样也是目前最先进的物体检测技术。YOLOv5结构与YOLOv4略微相似,但又有所不同。其输入端采用了Mosaic数据增强[27]、自适应锚框计算、自适应图片缩放方法;框架包括Focus结构,CSP结构的Backbone和FPN结构的Neck。YOLOv5虽然对当前的深度学习构建的各种技术进行了优化整合并发布了代码,但论文仍处于未发表阶段,所以对于v5版本的性能评价还没有明确的认定。

通过YOLO系列算法的改进并与RCNN系列算法作比较可知,相对于RCNN系列的候选框的提取与分类,YOLO实现了“只需看一眼即可实现”;另外,YOLO将检测统一为一个回归问题,而RCNN将检测结果划分为物体类别(分类问题)和物体位置(回归问题)两部分进行求解。一系列的改进方法让YOLO在物体检测速度上占据领导地位。YOLOv1到YOLOv4版本的发展如表1所示。

表1 YOLOv1到v4的网络结构特点和模型发展

2.6 应用实例

卷积网络在物体检测上涉及了众多的应用领域,诸如食品蔬菜的分类检测、交通流量监控、火灾热源探测、车辆检测等。

Jahani Heravi等提出了一种新的具有23层结构的深度ConvNet网络对Food-101数据集和UECFood256数据集进行训练[28],结果表明,相比于AlexNet、GoogleNet和VGGNet[29]网络,该网络具有更高的精度且网络层次更深,用最少的参数学习更复杂的结果,将最先进的网络应用于食品领域来开发食品检测系统;Sachin等使用YOLO模型对黄瓜、青苹果、青椒三种蔬菜进行检测和分类[30],通过建立三种蔬菜的检测和分类模型来实现YOLO算法,结果表明该算法能在各种约束条件下检测并分类出60%~70%的收获量,并成功识别出图中的多种蔬菜;Chang-Yu Cao等提出了一种基于TensorFlow的改进YOLO模型——YOLO-UA,通过使用YOLO的预训练模型的权重来进行初始化,并优化损失函数,引入权重正则化来实现交通的实时检测和流量统计[31];Dewi等使用YOLO和Tiny YOLO[32]模型检测CCTV视频中的火灾热点[33],且准确率高达90%,有助于消防员的疏散;Jimin Yu等对YOLOv4模型中的CSPDarknet53和PANet网络进行改进,以提取更多语义信息来检测口罩[34]。

由此可见,逐渐兴起的物体检测技术应用到了生活中的方方面面,利用计算机的自动检测系统减轻了人类的负担,为人们的生活带来了更多的便利。

3 数据库及评价指标

3.1 数据集

在物体检测研究中,数据集上的评估标准是评价网络性能的标准,当前的物体检测任务中比较流行的数据集有:ImageNet[3]、Pascal VOC[35]和MS COCO[18]。

ImageNet数据集是常用的分类数据集,它在视觉领域有着广泛的应用。其主要功能是图像分类、物体检测、场景分类等任务,有易于使用的详细数据集文档。它包含超过1 400万张的图片,涵盖约2万个类别。著名的ILSVRC图像分类和目标检测挑战都是基于ImageNet数据集。

PASCAL VOC是常用的物体检测数据集,它为图像检测、分割和分类提供了一组标准化的数据集。流行的有PASCAL VOC2007和PASCAL VOC2012数据集。训练集以标记图像的形式呈现。从2005年的4个类别(人、动物、车辆和室内对象)开始,数据集增加到了日常生活中常见的20个类别。训练集中每个图像都一一对应于其注释文件(边界框和类标签)。一个图像中可能存在多个不同类别的对象。PASCAL VOC数据集具有良好的图像质量和完整的标签,非常适合评价算法的性能。自2009年以来,图像的数量每年都在增长,但保留了以前的所有图像,以便每年对测试结果进行比较。

MS COCO也是常用的图像检测数据集之一,它对于图像的标注信息不仅有类别和位置信息,还有图像的语义文本描述,主要用于物体检测、语义分割等任务,对于物体检测,它是挑战性最大的数据集之一。其中包含日常复杂场景的图像,这些场景在自然环境中具有共同的物体且更接近真实生活。该数据集以理解场景为目标,包含91个stuff类、328 000个图像和2 500 000个标签。

3.2 性能评价

物体检测系统性能评估主要是用的评估指标和计算方法,最后给出RCNN家族和YOLO系列在各论文中体现的性能比较。

3.2.1 一般性能评估方法

一般对于应用深度学习的模型而言,常用的评价指标有:

1)精度指标:mAP(mean average precision)。平均准确度均值,精度评价。

2)速度指标:FPS(Frame Per Second)。每秒帧率,即每秒内处理的图片数量,且必须在同一硬件条件下进行比较。

3) 定位准确性:IOU(Intersection Over Union)。模型产生的目标窗口和原来标记窗口的交叠率。如式(2)。

(2)

即检测结果(Detection Result)与真实值(Ground Truth)的交集比上它们的并集。理想情况下,检测结果与真实值完全重合,即IOU=1。IOU的展示图如图5所示。

图5 IOU计算示意图

其中绿框代表目标物体的真实值,红框表示检测的边框,通过计算IOU来判断检测结果是否符合条件。基于IOU定义了一些列的变量和指标:

TP:IOU>0.5的检测框数量(同一Ground Truth只计算一次);FP:IOU<=0.5的检测框,或者是检测到同一个GT的多余检测框的数量;FN:没有检测到的GT的数量。而平均准确度AP来源于精确率和召回率。

精确率表示被分为正例的示例中实际为正例的比例,定义为式(3):

(3)

召回率表示的是样本中的正例被预测正确的度量,定义为式(4):

(4)

3.2.2 部分算法性能比较

表2为部分检测算法在VOC数据集上的检测结果。从表中可见YOLO的改进对检测物体的性能有显著提升。PS指标的建立是为了显示各个基于相同权重的精度和速度的检测系统的一般值。其定义可根据mAP和FPS的不同的权重比例来改变。其中,权重比例表示mAP和FPS对目标物体的相对重要性。

表2 几种检测系统的性能比较[36]

4 总结及展望

本文将基于深度学习的物体检测算法分为基于候选区域的二步检测系统和基于非候选区域的一步检测系统,从算法的发展及不同方向的改进角度分别对这两类系统进行了综述。二步检测系统首先生成物体候选区域,然后对候选区域进行回归和分类,如Faster RCNN。它在精度上比一步检测系统要好,如YOLO。但是二步系统的速度明显低于一步系统。在实践中,精度和速度两者需要适当平衡。一般来说,当精度达到一定水平时,继续提高精度所带来的成本并不乐观。在某些领域,实时性的要求使得物体检测框架的速度比准确性更为重要。另外还介绍了构造检测系统的一般方法,包括常用数据集及使用方法和案例的构造分析。尽管物体检测技术在各领域中都有广泛的应用且发展迅速,但依然有许多问题待进一步研究:1)有效结合上下文信息解决物体检测任务中进行的小目标物体或遮挡部分的检测;2)研究更优的特征提取网络及边界框的选定方法以节省绘制框的时间;3)探究最佳检测体系结构来平衡检测的速度和准确度。相信随着未来基础理论和相关硬件设备的不断发展,物体检测必将取得长足的进步。

猜你喜欢
类别物体精度
热连轧机组粗轧机精度控制
论陶瓷刻划花艺术类别与特征
一起去图书馆吧
基于DSPIC33F微处理器的采集精度的提高
以工匠精神凸显“中国精度”
揭开物体沉浮的秘密
为什么同一物体在世界各地重量不一样?
悬浮的鸡蛋
选相纸 打照片
浅谈ProENGINEER精度设置及应用