YOLO算法综述

本文详细介绍了YOLO系列目标检测算法的发展,从YOLOv1到YOLOv7的改进,包括数据增强技术、骨干网络的选择、Anchor机制的演变等方面。文章还讨论了YOLO在不同领域的应用,如无人机、交通、口罩检测、人体检测等,并提出了未来研究方向,包括数据增强、网络结构优化和硬件适应性等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 引言

目标检测作为计算机视觉领域中的重要任务[1],其目的在于检测给定图像中的感兴趣目标的类别与位置,这项技术为医学、自动驾驶等多个领域[2-5]的发展做出了重要贡献,无数研究员对其研究并取得大量研究成果。目标检测算法发展经历了两个阶段,第一个阶段是基于传统目标检测算法,主要以VJ[6],HOG[7],DPM[8]等为代表。而从2014年起,由于深度学习的发展,出现了基于深度学习的目标检测算法[1]并取得了巨大进展。

基于深度学习目标检测算法的综述很多:例如JIAO L等人[3-4]从基于深度学习的两阶段目标检测算法和一阶段目标检测算法来对比分析算法的发展,ZHAO Z Q等人[9]按照算法历程简要介绍各个算法并根据目标检测任务对算法发展进行分析与展望,FEIFEI SHAO等人[10]对弱监督目标检测方法的发展进行总结,ZHENG LI等人[2-4,6,11]则是聚焦于不同的目标检测任务,对基于特定任务的目标检测算法进行总结分析。

上述综述各有其优点与侧重点,本文将焦点放在一阶段目标检测算法中备受欢迎的YOLO算法。YOLO算法作为一阶段目标检测算法的开山之作,与两阶段算法例如R-CNN系列算法[12-16]有本质上的区别,YOLO将目标检测任务转化为单个神经网络的回归问题,能够在保持较高准确性的同时实现实时的目标检测。并且YOLO的开放源代码实现促进了计算机视觉研究和应用的发展,激发了很多基于YOLO的改进和变体算法的出现,进一步推动了目标检测领域的进展。本文沿着YOLO算法的发展历程如图1,总结其各个版本的变化以及其应用到不同检测任务的特有改进,探索YOLO算法未来的发展趋势。

图1 YOLO系列算法发展历程
图1 YOLO系列算法发展历程

 

2 YOLO系列算法

YOLO将目标检测视为回归问题,使用一个神经网络同时预测目标的位置与类别,提高了检测速度,并且其学习的是目标的泛化表示,易于应用到新的领域。由于其具有的特性以及其开源的做法吸引了大量的科研员在其基础上进行改进与创新,获得了大量成果。

2.1 YOLO 主要算法

按照如下顺序:YOLOv1、YOLOv2、YOLOv3、YOLO4、YOLOv5、YOLOX、YOLOv6、YOLOv7进行介绍。

2.1.1 YOLOv1

在2015年,Redmon等人提出YOLO[17](便于区分,后续写作YOLOv1)算法使得基于深度学习的目标检测算法有了单阶段和两阶段的区分。与RCNN[13]系列不同,YOLOv1将物体检测看作一个单一的回归问题,直接从图像生成边界框的坐标和分类概率。RPN[13]预测的是预测框和anchor的偏移量,而YOLOv1预测的是预测边界框中心点相对于对应网格左上角位置的相对偏移值。

相比其他目标检测方法,其优点在于:

一、划分网格的方法,避免了大量的重复计算,使YOLOv1算法达到了较快的检测速度,在VOC 2007数据集中达到了每秒45帧的检测速度。

二、YOLOv1算法基于整个输入图像进行检测而非基于局部进行推断,这使其背景误检率只有13.6%,远小于YOLO推出前已有的两阶段目标检测算法。

但是YOLOv1也有很大的缺点:

一、精度相对较差。在VOC 2007上的精确性只有63.4%,低于同时期的Faster R-CNN[14]等两阶段目标检测算法,也低于一阶段SSD[18]。

二、对于成群的小目标、多个相邻的目标或具有异常尺寸的目标检测效果较差。

2.1.2 YOLOv2

在YOLOv1基础上,Redmon等人提出了改进的YOLOv2[19],做出了以下改进:

一、利用大型分类数据集ImageNet[20]扩大目标检测的数据种类,可以检测9000种类别的目标(YOLOv120种);

二、引入批量归一化[21],让网络提高了收敛性;

三、借鉴RPN[17]的先验框,有先验知识,预测更快;

四、用k-means聚类算法,得到YOLO2的先验框,将预测的偏移量限制在一个网格范围内,模型更稳定;

五、多尺度输入图像进行训练FCN网络[22],不固定输入大小;

六、提出新的主干网络Darknet-19,参考了VGG[23]等,具有较少的参数和计算量,平衡计算速度和精度,在训练过程中具有较高的准确率和收敛速度;

七、YOLOv2提出一种联合训练机制,混合来自检测和分类数据集的图像进行训练。

此外在YOLOv2上,Yechan Yu等人[24]使用轻量级嵌入式GPGPU环境实现Tiny-YOLO2的优化设计参数。

2.1.3 YOLOv3

在YOLOv2的基础上,原作者很快又提出了YOLOv3[25],其改进点如下:

一、主干网络提出了Darknet-53,去掉了池化层,特征图的缩小通过增加卷积核的步长实现,基本采用全卷积,另外引入了残差模块[26]

二、利用多尺度特征进行对象检测,对于小目标的检测有了一定的提升;

三、类别预测方面主要是将原来的单标签分类改进为多标签分类。

在YOLOv3基础上:HORZYK A等人[27]提出了一种新的后处理方法,称为“加权置信中心选择”;基于通信信号检测和图像目标检测之间的相似性LI R等人[28]提出一种通用的、新颖的盲检测方法,改进YOLOv3模型;LONG X提出PP-YOLO[29]使用新的锚点自由范式——点聚合以及新的骨干网络SPP-net来平衡检测进度与速度,随后他们在PP-YOLO上做出一些细节上的更新推出了更好的PP-YOLO2[30];HE X等人[31-32]使用轻量级特强骨干网络提升模型性能。

2.1.4 YOLOv4

BOCHKOVSKIY A 等人[33]提出了YOLOv4,相对于YOLOv3其主要改进点如下:

一、数据增强借鉴CutMix[34],提出了Mosaic方法;使用DropBlock正则化[35], 有助于避免过拟合。

二、对主干网络Darknet-53改进,借鉴CSPNet[36],减少了模型的参数量和FLOPS数值,保证了推理速度和准确率。

三、颈部结构中采用了SPP[37]增加主干网络感受野,借鉴PANet[38],将用于融合的addition方法改为concatenation方法。

四、损失函数部分,使用CIoU损失函数[39]代替了MSE。

在YOLOv4上:WANG C Y等人[40]以YOLOv4-CSP为基线模型,利用隐形知识进行改进得到YOLOR。

2.1.5 YOLOv5

Ultralytics公司在Github上推出了YOLOv5,YOLOv5并没有过多的创新,其主要优点在以下:

一、多种网络架构使用起来更加灵活,模型尺寸非常轻量级,准确率与YOLOv4基准相当。

二、PyTorch框架用户友好,代码易读,融合了大量计算机视觉技术,有利于学习和参考。

三、环境配置简单,模型训练非常快,批量推理实时出结果。

在YOLOv5上:WANG H等人[41]提出DDH-YOLOv5引入双IoU感知解耦头,将分类任务和回归任务分开处理;基于2D局部特征叠加自注意力机制LI W与HUANG[42]提出改进的YOLOSA目标检测算法;LIU H等人[43]使用改进的特征融合模式得到SF-YOLOv5模型,提高了对小目标物体的检测。

2.1.6 YOLOX

GE Z等人[44]在YOLOv3的基础上提出了YOLOX,通过使用各种训练技巧,得到YOLOX-Darknet53。YOLOX还具备Yolox-s、Yolox-m、Yolox-l、Yolox-x系列,这些系列原理与YOLOV5的相同。其改进如下:

  • 引入解耦检测头,提高检测精度。

二、数据增强方面使用Mosaic和Mixup[45]。

三、采用无锚检测,并在样本匹配方面基于OTA[46]提出了SimOTA样本匹配算法。

受YOLOX启发,Shangliang Xu等人[47]推出了PP-YOLOE,同样采用无锚方法,并且提出新的RepResNet块用于构建骨干网络和颈部。

2.1.7 YOLOv6

YOLOv6[48]是美团视觉智能部研发的一款目标检测框架,致力于工业应用,其改进如下:

一、基于RepVGG[49]设计了可重参数化、更高效的骨干网络。

二、改进了PAN[38],提出了Rep-PAN颈部结构。

三、借鉴了YOLOX解耦头的结构。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值