基于深度学习的目标检测算法综述

2023-10-28 09:28邹军张世义李军
传感器世界 2023年8期
关键词:网络结构精度图像

邹军,张世义,李军

1.重庆交通大学 机电与车辆工程学院,重庆 400074;2.重庆交通大学 航海与船舶工程学院,重庆 400041

0 引言

目标检测在计算机视觉中扮演着重要角色,应用于图像可以获取其中的重要信息。近年来,基于深度学习的目标检测飞速发展,被广泛应用于智能交通、工业检测、互联网、地质探测等领域。目标检测的发展可分为两个阶段:一是2000 年前后,该阶段提出的传统目标检测算法大多采用滑动窗口策略和人工设计特征算子;二是2014 年至今,该阶段提出的基于卷积神经网络(Deep Convolutional Neural Networks,DCNN)目标检测算法,利用深度学习技术自动提取图像中的隐藏层,使得对图像中的目标分类和定位更加精确,提高了算法性能。本文从传统目标检测器开始,主要阐述基于深度学习的目标检测算法,对算法的流程步骤、网络结构深入分析,梳理算法发展中常规改进操作和创新点,总结目标检测算法的发展历程,展望未来该领域的发展趋势。

1 发展历程

1.1 传统目标检测器

传统目标检测算法先对输入图像进行预处理,比如图像灰度化、边缘检测;再确定目标位置,利用不同的矩阵框对图像或图像序列进行遍历,构建候选框区域;接着,提取目标候选区域的视觉特征,选出特征向量,利用分类器将矩阵框选出的图像目标进行分类;最后,对输出图像后处理,通过非极大抑制(Non-Maximum Suppression,NMS)等方法过滤多余的检测框,具体的流程图如图1 所示。

传统目标检测方法有明显的缺点,一是滑动窗口的方法,计算时间长,复杂度高,还增加了硬盘负荷;二是鲁棒性差[1],难以满足人们对目标检测性能的实际需求。

1.2 基本性能指标

当前,用于评估检测模型的性能指标主要有两个:一个是判断模型运行速度的FPS;另一个是判断模型精度的平均精度均值mAP。FPS 表示每秒识别图像的数量,mAP 表示模型预测的图像和真实图像的差异。

交并比(Intersection over Union,IOU)为评价目标检测定位精度的指标,用于判断目标检测中预测框和真实框的重叠程度。

1.3 数据集

数据集是制约一个模型的性能条件之一。目前常用的大规模数据集包括:PASCAL VOC、ILSVRC、MS COCO。

PASCAL VOC 数据集是一个世界级的比赛用库,其中包罗万象,许多优秀计算机视觉模型都是基于该数据集。VOC 广泛运用于目标检测、目标分割、人体布局以及动作识别等领域,如今共有20 个目标类别。

ILSVRC 数据集是最早用于目标检测任务的数据集,最开始因模拟人类的识别系统而建立。该数据集采用top1 到top5 的投票制分级评估,很容易验证。近年来,ILSVRC 数据集不断更新,所以难度也有所提升,仍然是主流的应用数据集之一。

MS COCO主要用来解决图像检测和分割的问题。事实上,它相比另外两个数据集在实际应用中更加广泛,因为该数据集图片类别丰富,更贴合实际生活,且大多数都是小图片。目前,MS COCO 数据集已收集到超过33 万张图像,其中超过20 万张已标注图像,包含了80 个目标类别,91 个物体类别,且每张图片至少有5 段描述,可以说是所有数据集中的集大成者。

2 两阶段目标检测算法

两阶段目标检测算法基于候选框,需要通过两个步骤来实现,输入图像先经过候选框生成网格,再经过分类网络对候选框的内容进行分类,结果精度更高。相比一阶段的一次性处理,其速度比较慢。图2 展示了这两类算法的历程。

2.1 R-CNN

R-CNN[2]首次应用CNN[3](卷积神经网络),是典型的两阶段目标检测算法,不需要人工设计参数,在 Pascal VOC 2007 数据集上的mAP 高达 58.5%,为当时最优,但过程繁琐、耗时,不能端对端训练。该算法网络结构如图3 所示。

2.2 SPP-Net

SPP-Net[4]解决了R-CNN 算法的图像归一化后的形状改变问题。该算法在卷积层与全连接层之间增加了SPP(Spatial Pyramid Pooling)结构,使得输出的特征图直接为固定尺寸,避免了图像归一化过程,结果SPP-Net 的推理速度是R-CNN 的20 倍,精度不变。R-CNN 与SPP-Net 的流程对比如图4 所示,其中缩放表示图像归一化过程。

2.3 Fast R-CNN

Fast R-CNN[5]借鉴了SPP 的结构和功能,整合到一个网络上的思想,改进了算法网络结构。Fast R-CNN的网络结构图如图5 所示。

Fast R-CNN 将 SPP 结构简化为ROI 池化层[6],最后并联了两个分支,一个采用 Softmax[7]进行分类;另一个采用bounding box regression来定位,这样分类和定位任务也整合到一个网络结构中,过程中还引入了多任务损失函数,极大地提高了检测精度和速度。

2.4 Faster R-CNN

Faster R-CNN[8-9]算法采用RPN(Region Proposal Network),将候选区也合并到一个网络结构中,从而实现了在R-CNN 中第一个真正意义的端到端网络训练模型。Faster R-CNN 网络结构如图6 所示。

RPN 引入了一个新的概念——anchor box[10](锚框),形成锚框机制,该方法可以用来检测同一位置上的多个目标,提高算法性能。对比Fast R-CNN,Faster R-CNN 算法的检测速度提升了10 倍。

2.5 其他两阶段算法

R-FCN[11]算法用ResNet 主干网络替换掉了Faster R-CNN算法中的VGG 网络,提升了网络的特征提取能力和分类的效果。

Mask R-CNN[12]算 法 用ROI Align 来 代 替Faster R-CNN 算法中的ROI Pooling,相较于ROI Pooling 未进行量化操作,直接使用线性插值算法解决像素浮点数的问题,从而使得实例分割更加精确[13]。

Cascade R-CNN[14]是一种级联结构的目标检测器,这种结构解决了低IOU 阈值状态下,网络训练出现的过拟合问题。

3 一阶段目标检测算法

一阶段算法是基于回归分析的算法,将图像的分类和定位问题转化为逻辑回归问题,不需要经过两阶段特有的建议框,直接产生物体的位置坐标值和类别概率,并且经过单次便可以直接得出检测结果[15]。

3.1 YOLOv1

YOLOv1[16]首次将检测问题转化为回归问题,真实地实现了端到端的检测,可用于自动驾驶、视频监控等实时检测任务。

3.1.1 网络结构

YOLOv1 算法先将每张图片都分割为S×S 个网格形式输入;然后经过卷积层、池化层、全连接层,每个子网格负责落入自己区域的目标,预测出物体类别、置信度和边界框位置[17],从而到全连接层后可以直接输出目标分类和边界框;最后通过 NMS 剔除重叠边界框。YOLOv1的网络结构图如图7 所示。

3.1.2 损失函数

YOLOv1 的损失函数公式定义如下:

计算位置误差公式为:

其中,x、y、w、h表示边界框坐标;S2表示网格化后的单元格总数;B表示每个单元格产生的边界框个数;表示第i个网格生成的第j个边界框内是否有目标;λcoord表示位置误差的权重。

计算是否包含目标边界框的置信度误差公式为:

其中,公式前半部分表示含有目标检测框的置信度预测;后半部分表示不含有目标检测框的置信度预测;λnoobj表示不含有目标检测框的置信度误差的权重;Ci表示第i个目标的置信度。

计算分类误差公式为:

最终的损失由公式(4)计算得出:

3.1.3 优缺点

YOLOv1 算法检测速度很快,但对重叠目标检测效果不佳;预测框的数量太少,小目标检测能力太弱,且不能多个标签分类,综合下来,其检测精度低,召回率低,定位不准,小目标检测效果不好,多目标情况下容易漏检。

3.2 YOLOv3 和 YOLO9000

针对YOLOv1 的问题,几乎同时做了两个版本的 改 进 即:YOLOv3 与YOLO9000。YOLO9000 简称YOLOv2[18],借鉴了Faster R-CNN 算法,在网络结构中引入了锚框机制,采用K-Means[19-20]聚类方式使得这种机制更科学,增加了候选框的预测,从而有效弥补了YOLOv1 中召回率低的问题。YOLOv3[21]对YOLOv2 又做了些改进,该算法采用性能更好的DarkNet53,引入FPN 结构,如图8 所示,FPN 将图像分解为不同分辨率和不同尺度的图像,再对其进行融合重构,可以在3 个不同的尺度上进行检测,提升了对小尺寸目标的检测能力。YOLOv3 相比于RCNN算法,精度低的缺点依然很明显。

3.3 YOLOv4

YOLOv4[22]算法融合了近些年多种先进方法。骨干网络为CSPDarkNet53[23],采用SPP+PAN 替代其FPN(Feature pyramid network)来增加感受野;在数据增强和损失函数方面都进行了改进,采用更强优化能力的 CIoU Loss,推理速度有所提升,精度也更高。CIoU_Loss 的具体计算公式为:

其中,α表示用于平衡比例的参数;v表示用来度量预测框和真实框的宽高相似性;b表示预测框;bgt表示真实框;wgt和hgt表示真实框的宽和高;w和h表示预测框的宽和高;ρ表示欧几里得距离;c表示b与bgt最小外界矩形的对角线距离。利用一系列的先进方法,最终,相对于YOLOv3,YOLOv4 在保证速度的同时大幅度的提高了模型的精度。

3.4 YOLOv5

YOLOv5 以YOLOv4 为基础架构,对模型的不同部分做了不同的优化,进一步提升了算法的性能。在主干网络上使用了Focus 结构,并提出了两种CSP 结构,利用Focus 切片操作,更有利于实现图像无损采样,从而提升网络速度。两种CSP 结构分别用在主干网络和neck 上,互为补充,融合计算,可以保留更完整的图像信息。

YOLOv5 没有发表论文,作者发布了它的源码。目前,v5 版本已有多种网络结构,分别为YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。这些模型根据不同的应用需求有着不同的检测性能。

3.5 YOLOv6

面对日益新增的工业检测需求,LI C 等[24]提出了一钟新的检测框架——YOLOv6,主要基于YOLOv5的整体架构进行改进,基于RepVGG style 设计了可重参数化、更高效的骨干网络EfficientRep Backbone 和Rep-PAN Neck。采用SimOTA 标签分配策略以及SIoU边界框回归损失来进一步提高检测精度。YOLOv6 在COCO 数据集上,测试结果在精度和速度方面均超越当时其他同体量算法。

3.6 YOLOv7

WANG C Y 等[25]综合了现有的trick 集合,模块结构重参数化与动态标签分配策略,通过分析梯度的传播路径来为网络中的不同层进行结构重参数优化,提出了一个新的动态标签分配办法——coarse-tofine,并采用模型缩放的方式减少大量参数,提高推理速度以及检测精度。

YOLOv7 的数据表现很好,但实际落地情况下可能虚高,另外还存在代码冗余问题。

3.7 YOLOv8

2023 年1 月,Ultralytics 公 司 在 其 开 源 的YOLOv5 下公布了一个重点更新版本——YOLOv8。严格来说,YOLOv8 不是一种特定的算法,而是定义一种可扩展性的算法框架。该算法框架是沿用PAN 的思想,并多次采用C2f 模块,使用Decoupled-Head,遵循Anchor-Free 理念,力求模型轻量化,且性能依然保持良好。 该框架检测部分设计参考了目前大量优异的最新的YOLO 改进算法,实现了新的SOTA。

3.8 SSD

LIU W 等[26]建立此算法,SSD 算法和YOLO 同属于一阶段的算法,算法结构却明显不同。YOLO 算法的检测结果是在全连接层之后,而SSD 算法是在卷积层之后。SSD 算法在原有骨干网络上多加了4 个卷积模块,同时对其特征图的不同候选框进行回归,并且完成归一化输出,这样可以得到对不同物体的良好检测效果。

3.9 其他一阶段算法

RetinaNet[27]网络架构采用一种FPN 的网络结构,引入新的损失函数,即Focal Loss,使得检测器在训练过程中会更加注重分类困难的样本,弥补了正负样本极不平衡这一不足,最终使得简单样本损失更少,优化了训练过程。

M2Det[28]的最大创新点是提出了用主干网络加多级金字塔网络(Multi-level Feature Pyramid Network,MLFPN)来提取图像特征,使提取的图像特征更鲜明。

4 总结与展望

本文首先介绍了传统目标检测器、基本性能指标和当前主流数据集;其次,按照基于回归和基于候选框两个大类别介绍深度学习的目标检测算法,对部分具有代表性的算法重点阐述,分析网络结构,对比优劣;最后,阐述对未来关于目标检测算法在实际应用中需要改进的方向,如下:

(1)研究更适合做目标检测任务的特征网络。特征网络的设计分为分类和检测两大模块,二者设计原则存在差异,如何构建一个符合实际任务需求的特征网络是未来的研究趋势之一。

(2)多模态目标检测。数据融合是实现目标检测应用的重要趋势,比如当光照不均导致相机记录失真,对场景记录不全,多模态的互补性可以很好地解决此问题,提高了模型鲁棒性。

(3)高质量的数据集。模型是需要训练的,训练对象就是预先采集好的数据集,一个好的数据集可以更好地训练出优秀的模型。

(4)模型轻量化。基于现有的计算机软硬件设备和日益增长的功能需求,模型轻量化是一个大趋势[29]。

猜你喜欢
网络结构精度图像
改进的LapSRN遥感图像超分辨重建
有趣的图像诗
基于DSPIC33F微处理器的采集精度的提高
GPS/GLONASS/BDS组合PPP精度分析
基于互信息的贝叶斯网络结构学习
知识网络结构维对于创新绩效的作用机制——远程创新搜寻的中介作用
沪港通下A+ H股票网络结构演化的实证分析
复杂网络结构比对算法研究进展
改进的Goldschmidt双精度浮点除法器
巧用磨耗提高机械加工精度