代码编织梦想

1 前言

最近在做目标检测模型相关的优化,重新看了一些新的论文,发现了几篇写得比较好的YOLO系列论文综述,所以写了这篇博文,总结一下YOLO从v1到v11的模型架构、优化、优势和局限性。(学术界太卷了,一年更新三版,到今年九月份就已经更新到v11了,印象中两年前还是YOLOv5的天下。)

参考论文:

  1. A COMPREHENSIVE REVIEW OF YOLO ARCHITECTURES IN COMPUTER VISION: FROM YOLOV1 TO YOLOV8 AND YOLO-NAS
  2. YOLOV1 TO YOLOV10: A COMPREHENSIVE REVIEW OF YOLO VARIANTS AND THEIR APPLICATION IN THE AGRICULTURAL
    DOMAIN
  3. YOLOV10 TO ITS GENESIS: A DECADAL AND COMPREHENSIVE REVIEW OF THE YOU ONLY LOOK ONCE (YOLO) SERIES

目标检测的发展经历了五个比较大的阶段:传统算法、Two-stage、One-stage、Anchor-free、Transformer。

在深度学习出现之前,主要是依赖于手工设计的特征与机器学习分类器的结合,包括相关滤波器、滑动窗口法和Viola-Jones检测器等,这些方法所涉及的特征提取技术包括Gabor特征、梯度方向直方图(Histogram of Oriented Gradients, HOG)、局部二值模式(Local Binary Patterns, LBP)和哈尔特征(Haar-like features)。这些检测器最常用的分类方法包括随机森林、支持向量机、统计分类器(例如贝叶斯分类器和Adaboost)以及多层感知器(MLP)等。

将卷积神经网络(Convolutional Neural Networks, CNN)引入物体检测之后,真正实现了自动化的特征提取和端到端的学习。

CNN的特点包括:

  • 层次化的特征学习:CNN在最开始几层可以学习一些低维的特征(如边缘、纹理),在深层可以学习一些高维的特征(如物体部件、形状);
  • 空间不变性:卷积层使得CNN能够识别图像中不论位置如何的对象,从而增强了检测的鲁棒性;
  • 可扩展性和泛化能力:CNN易于扩展,便于处理更大的数据集和更复杂的模型,在广泛的任务和应用环境中提高性能和鲁棒性。

下图展示了物体检测算法的主要发展历史。

时间线

如果直接通过滑动窗口的方法将CNN应用到物体检测中,这种暴力搜索的方法计算成本非常高,并且效率很低,难以做到实时处理。

2013年,Ross Girshick等人提出了R-CNN (Region-based CNN) 架构来解决这些挑战。R-CNN利用选择性搜索算法生成大约2000个区域proposals,然后通过CNN处理这些区域来提取特征。Fast R-CNN改进了这一过程,通过在单次传递中集成区域proposals特征提取和分类来提高效率。Faster R-CNN进一步优化了这种方法,引入了Region Proposal Networks(RPNs)进行端到端训练,去掉了选择性搜索的方法。

“You Only Look Once”(YOLO)物体检测算法是由Joseph Redmon等人在2015年首次提出,用一个单一的神经网络将region proposal和分类结合起来,极大地减少了计算时间,使得实时物体检测开启了新的里程碑。YOLO将图像分割成很多个网格,每个网格直接预测边界框和类别概率,实现了端到端的学习。

2 YOLO在不同领域的应用

YOLO的实时物体检测能力在自动驾驶车辆系统中具有不可估量的价值,能够快速识别和跟踪各种物体,如车辆、行人、自行车和其他障碍物。这些功能已被应用于多个领域,包括用于监控、体育分析和视频动作识别。

在农业方面,YOLO被用来检测和分类作物、害虫和疾病,辅助精准农业技术并实现农作过程自动化。它们也被调整用于生物识别、安全以及面部识别系统中的人脸检测任务。

在医学领域,YOLO已被用于癌症检测、皮肤分割和药片识别,提高了诊断准确性和治疗过程的效率。

在遥感领域,它被用于卫星和航空影像中的物体检测与分类,支持土地利用制图、城市规划和环境监测。

安全系统整合了YOLO模型进行视频流的实时监控和分析,允许快速检测可疑活动、社交距离保持及口罩佩戴检测。这些模型还被应用于表面检查以检测缺陷和异常情况,从而加强制造和生产过程中的质量控制。

在交通应用中,YOLO被用于车牌检测和交通标志识别等任务,为智能交通系统和交通管理解决方案的发展做出了贡献。它们还被用于野生动物检测和监测,以识别濒危物种,促进生物多样性保护和生态系统管理。

最后,YOLO在机器人应用和无人机物体检测中得到了广泛应用。

下图展示了Scopus中标题含有“YOLO”一词的所有论文的文献计量网络可视化,并通过物体检测关键词进行了筛选。

YOLO应用领域

3 物体检测指标和NMS

3.1 mAP和IOU

平均精度(Average Precision, AP),也称为平均平均精度(Mean Average Precision, mAP),衡量所有类别物体的平均精度,是评估物体检测模型性能的常用指标。COCO数据集对AP和mAP不做区分。下文中,我们提到的AP和mAP是等价的。

在YOLOv1和YOLOv2中,用于训练和基准测试的数据集是PASCAL VOC 2007和VOC 2012,但从YOLOv3开始,使用的是COCO(Common Objects in Context)数据集。

mAP指标是基于精确度-召回率指标,处理多个物体类别,并通过交并比(IoU)定义正预测。

精确度Precision:衡量模型正预测的准确性,简单理解就是模型输出的检测框里,检测正确的框的比例。

召回率Recall:衡量模型正确识别的正例的比例,换而言之,就是有多少正例被正常识别出来。

通常,精确度和召回率之间会互相影响,例如:增加检测到的对象数量(更高的召回率)可能导致更多的假阳性(更低的精确度)。为了综合考虑精确度和召回率,需要用mAP来衡量,mAP指标结合了不同置信度阈值下的精确度-召回率曲线,表示的是精确度-召回率曲线下的面积。

通常一个模型会检测多个类别,mAP指标通过分别计算每个类别的平均精度(AP),然后取所有类别AP的均值(这也是为什么它被称为平均平均精度的原因),这种方法能更全面地评估模型的整体性能。

交并比(Intersection over Union, IoU):物体检测旨在通过预测边界框准确地定位图像中的物体,mAP指标通过引入交并比(IoU)来评估预测边界框的质量。IoU是指预测边界框与真实边界框的交集面积与并集面积之比,表示了真实边界框与预测边界框之间的重叠程度。COCO基准采用多个IoU阈值来评估模型在不同定位精度水平上的表现。

IOU

3.2 mAP计算流程

在VOC和COCO数据集中,AP的计算方式有所不同。

3.2.1 VOC 数据集

该数据集包括20个物体类别,mAP计算步骤:

  1. 对于每个类别,通过改变模型预测的置信度阈值来计算精确度-召回率曲线。
  2. 使用精确度-召回率曲线上11点插值的方法来计算每个类别的平均精度(AP)。
  3. 通过取所有20个类别的AP均值来计算最终的平均精度(AP)。

3.2.2 微软 COCO 数据集

该数据集包含80个物体类别,并使用更复杂的方法来计算AP。与VOC使用11点插值不同,它使用101点插值,即从0到1以0.01为增量计算101个召回率阈值下的精确度。此外,AP是通过对多个IoU值而不是仅一个IoU值求平均得到的,除了一个常用的AP指标称为AP50,它是单个IoU阈值0.5时的AP。COCO中计算AP的步骤如下:

  1. 对于每个类别,通过改变模型预测的置信度阈值来计算精确度-召回率曲线。
  2. 使用101个召回率阈值来计算每个类别的平均精度(AP)。
  3. 在不同的交并比(IoU)阈值下计算AP,通常是从0.5到0.95,步长为0.05。较高的IoU阈值要求更准确的预测才能被视为TP。
  4. 对于每个IoU阈值,取所有80个类别的AP均值。
  5. 最后,通过对每个IoU阈值下计算出的AP值求平均来计算整体AP。

AP计算方法的不同使得直接比较两个数据集上的物体检测模型性能变得困难。目前的标准倾向于使用COCO AP,因为它对模型在不同IoU阈值下的表现进行了更细致的评估。

3.3 NMS

非极大值抑制(Non-Maximum Suppression, NMS)是一种在物体检测算法中使用的后处理技术,用于减少重叠边界框的数量并提高整体检测质量。物体检测算法通常会在同一个物体周围生成多个具有不同置信度分数的边界框,NMS通过过滤掉冗余和无关的边界框,只保留最准确的那些。

非极大值抑制(NMS)的工作原理:

  • 初始化:首先获取所有预测的边界框及其对应的置信度分数。
  • 排序:根据置信度分数对这些边界框进行降序排列。
    选择最高分框:选取置信度最高的边界框作为当前处理的对象。
  • 计算IoU:对于剩余的所有边界框,计算它们与当前最高分框之间的交并比(IoU)。
  • 抑制重叠框:如果某个边界框与当前最高分框的IoU超过了预设阈值(例如0.5),则认为该边界框是冗余的,并将其从列表中移除。
  • 重复步骤3-5:继续选取下一个置信度最高的边界框,并重复上述过程,直到所有边界框都被处理完毕。

通过这种方式,NMS能够有效地去除多余的重叠边界框,从而简化结果并提高检测准确性。这种方法对于确保每个物体只有一个最佳匹配的边界框特别有用,这对于后续的应用如跟踪或识别非常关键。

NMS

NMS示意图

从下一篇博文开始,我们逐一介绍每一版本YOLO的模型架构、改进点、优势和局限性。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_16020825/article/details/144068536

基于yolov8深度学习的脑肿瘤智能检测系统设计与实现(pyqt5界面+数据集+训练代码)-爱代码爱编程

本研究提出了一种基于深度学习的脑肿瘤检测系统,旨在通过先进的卷积神经网络(CNN)架构,自动化地检测和分类脑部肿瘤,从而为临床诊断提供更高效和可靠的辅助工具。该系统的核心是利用最新的YOLOv8模型,该模型以其快速和精准的目标检测能力著称,能够有效识别脑部MRI图像中的肿瘤区域。为了提升模型的检测性能,本研究引入了多种数据增强技术,包括旋转、缩放、平移和对

基于yolov8和deepsort实现车辆检测、追踪和计数,支持视频和摄像实时检测与追踪,可用自己的数据集训练模型【pytorch框架,python源码】-爱代码爱编程

更多目标检测、图像分类识别、目标检测与追踪等项目可看我主页其他文章 功能演示: yolov8+deepsort实现车辆检测、追踪和计数(支持视频和摄像实时检测与追踪),可用自己的数据集训练模型【pytorch框架,python源码】_哔哩哔哩_bilibili (一)简介 基于yolov8和deepsort实现车辆检测、追踪和计数,支持视频和摄像实

yolo-爱代码爱编程

文章目录 一、摘要二、引言相关工作方法预训练公式模型架构可重新参数化的视觉-语言路径聚合网络(RepVL-PAN) 3.4 预训练方案 实验YOLO-World: 利用多样化数据集进行开放词汇对象

yolov8-爱代码爱编程

tal.py ultralytics\utils\tal.py 目录 tal.py 1.所需的库和模块 2.class TaskAlignedAssigner(nn.Module):  3.class RotatedTaskAlignedAssigner(TaskAlignedAssigner):  4.def make_anchors(fe

yolov8完整网络结构详细介绍_yolov8网络结构-爱代码爱编程

一、整体网络预览 整体网络结构和以往的YOLOv4,v5等版本大致相同,由特征提取骨干Backbone、特征融合Neck以及回归分类Head组成。 和以往对比不同点是三个结构的细节模块,其特有的模块来体现出优越性。 二、特征提取骨干Backbone Backbone的作用是提取图像的详细信息特征,可以说是网络后续的根本。一个好的特征提取网络

yolo格式数据集介绍_yolo 数据集-爱代码爱编程

yolo数据集 yolo数据集标注格式主要是 yolov5 项目需要用到。 标签使用txt文本进行保存。yolo的目录如下所示: dataset ├─images │ ├─train │ │ ├─ flip_

基于yolov8深度学习的智慧课堂教师上课行为检测系统研究与实现(pyqt5界面+数据集+训练代码)_yolo与工业机器人课程教学深度融合的实践与探索-爱代码爱编程

随着人工智能技术的迅猛发展,智能课堂行为分析逐渐成为提高教学质量和提升教学效率的关键工具之一。在现代教学环境中,能够实时了解教师的课堂表现和行为,对于促进互动式教学和个性化辅导具有重要意义。传统的课堂行为分析依赖于人工观测,既耗费时间,又存在主观偏差,而基于计算机视觉和深度学习的自动化系本研究旨在设计并实现一个基于YOLOv8深度学习的教师上课行为检测系统

yolov11改进,yolov11添加se注意力机制+c2fcib模块,二次创新c3k2结构-爱代码爱编程

摘要 理论介绍 SE 注意力机制是一种提升卷积神经网络(CNN)性能的模块,SE更关注重要的特征图,增强了网络的表现,同时仅增加了较少的参数。SE 机制包含两个主要步骤: Squeeze (压缩

yolov9改进,yolov9引入gnconv递归门控卷积,二次创新repncspelan4结构-爱代码爱编程

摘要 视觉 Transformer 在多种任务中取得了显著的成功,这得益于基于点积自注意力的新空间建模机制。视觉 Transformer 中的关键因素——即输入自适应、长距离和高阶空间交互——也可以通过卷积框架

yolox的正负样本分配问题-爱代码爱编程

正负样本分配策略 正解举个例子 YOLOX的正负样本分配策略是目标检测中的一个重要环节,它直接影响模型的训练效果和最终的检测性能。以下是YOLOX正负样本分配策略的总结: 正解 PAN的不同分支

三、计算机视觉_07yolo图像分类-爱代码爱编程

0、前言 在《LeNet5及手势识别案例》文章中,我们基于LeNet-5网络结构,根据【gestures】手势数据集做了模型训练和预测 YOLO作为目前CV领域的扛把子,分类、检测等任务样样精通,本文将根据之前的gestures】手势数据集,换用YOLO来做手势预测的分类任务,看看效果如何 1、准备工作 要进行模型训练,首先要导入对应的数据集 安