【YOLOv10改进实战】**【1】最全YOLO系列算法介绍:从yolov1-yolov10**

【YOLOv10改进实战】【1】You Only Look Once–最全YOLO系列算法介绍:从YOLOv1-YOLOv10🚀🚀


文章目录


提示:本文仅供学习使用,创作不易,未经作者允许,不得搬运或转载。


参考文献链接:
[1]https://doi.org/10.3390/make5040083
[2]https://arxiv.org/pdf/2007.12099


YOLO简介☘️☘️

YOLO的全称是“You Only Look Once”,指能够通过一次网络来完成检测任务。与先前的方案(如:RCNN系列)不同的是,YOLO是把目标检测转变为一个回归问题,利用整张图片作为网络的输入,使用单个神经网络,就可直接从完整图像上预测边界框和类别概率。
YOLO的发展历程如下:
yolo发展史


一、YOLOv1☘️☘️

论文链接:YOLOv1🚀
项目地址:project

1. YOLOv1简介

YOLO(You Only Look Once)v1 是一种由 Joseph Redmon 等人在2015年提出的实时物体检测系统。它相较于传统的物体检测方法,具有显著的速度优势,并在保持较高检测精度的同时,极大地提高了效率。

2. 主要特点

1、单阶段检测:
YOLO v1 采用单阶段检测方法,即通过单个神经网络直接从整张图片中进行预测,而不是像传统方法那样,先生成候选区域,再进行分类。这种方式极大地简化了检测流程。
2、高速检测:
由于 YOLO v1 是通过一次网络运行完成所有预测,它能够实现实时检测。这使得 YOLO v1 特别适合应用在需要快速处理的场景中,如视频流分析。
3、全局推理:
YOLO v1 在全图范围内进行预测,而不是仅关注局部区域。这种全局视角使得它在处理复杂场景和多物体检测时表现良好。

3. 网络结构

YOLOv1 架构包含 24 个卷积层,然后是两个用于预测边界框坐标和概率的全连接层。所有层都使用修正线性单元激活 (ReLU),除了最后一个使用线性激活函数。受 GoogLeNet 和Network In Network中的网络的启发,YOLO 使用 1×1 卷积层来减少特征图的数量并保持参数数量相对较低。YOLOv1的网络架构如下:
v1架构图
优缺点
优点:
1、速度快,YOLO v1 可以实现实时检测,非常适合应用在需要高实时性的场景中。
2、全局视野、由于在全图上进行预测,YOLO v1 能够有效处理包含多个物体的复杂场景。

缺点:
1、定位精度有限,由于图像被划分为固定网格,YOLO v1 在检测小物体或密集场景时可能不够精确。
2、置信度问题,置信度得分有时不准确,这可能影响检测结果的可靠性。


二、YOLO2☘️☘️

论文地址:YOLO2🚀

1. YOLOv2简介

YOLOv2(You Only Look Once Version 2),以识别超过9000种物体,因此被称为 YOLO9000。它是由 Joseph Redmon 和 Ali Farhadi 在2016年提出的改进版实时物体检测系统。相较于 YOLOv1,YOLOv2 在速度和精度上都有显著提升,并引入了多个关键改进。通过改进,YOLOv2在PASCAL VOC2007数据集上实现了78.6%的平均精度(AP),而YOLOv1的平均精度为63.4%。

2. 改进之处

  1. 批量归一化(Batch Normalization):在所有卷积层之后应用批量归一化,这不仅加速了模型的收敛过程,还作为正则化手段,减少了过拟合现象,提高了模型的稳定性。
  2. 高分辨率分类器(High-Resolution Classifier):像 YOLOv1 一样,YOLOv2 先在分辨率为 224×224 的 ImageNet 数据集上进行预训练。但这次他们进一步在分辨率为 448×448 的 ImageNet 上微调了模型十个周期,从而提升了模型在高分辨率输入上的性能。
  3. 全卷积架构(Fully Convolutional Architecture):移除了密集层(全连接层),采用全卷积网络架构,这使得模型更加紧凑和高效,同时减少了参数数量,提升了运行速度。
  4. 使用锚框预测边界框(Use Anchor Boxes to Predict Bounding Boxes):引入了一组预定义的锚框(prior boxes 或 anchor boxes),这些锚框与物体的典型形状相匹配。每个网格单元定义了多个锚框,系统预测每个锚框的坐标和类别。网络输出的大小与每个网格单元的锚框数量成正比。
  5. 维度聚类(Dimension Clusters):通过在训练边界框上运行 k-means 聚类算法来选择合适的先验框,作者选择了五个先验框,以在召回率和模型复杂度之间提供良好的平衡。
  6. 直接位置预测(Direct Location Prediction):与其他预测偏移的方法不同,YOLOv2 直接预测相对于网格单元的位置信息。网络为每个单元预测五个边界框,每个边界框包含五个值tx, ty, tw, th 和 to,其中 to 相当于 YOLOv1 中的置信度(Pc),最终边界框坐标通过这些值计算得出。
  7. 更细粒度的特征(Finer-Grained Features):YOLOv2 移除了一个池化层,使输出特征图或网格的尺寸为 13×13(对于 416×416 的输入图像)。YOLOv2 还使用了一种穿透层(Passthrough Layer),将 26×26×512 的特征图通过重新组织,堆叠到不同的通道中,生成 13×13×2048 的特征图,再与低分辨率的 13×13×1024 特征图在通道维度上连接,最终得到 13×13×3072 的特征图。
  8. 多尺度训练(Multi-Scale Training):由于 YOLOv2 不使用全连接层,输入可以是不同大小的。为了使 YOLOv2 能够适应不同的输入大小,作者在训练过程中每十个批次随机改变输入大小,从 320×320 到 608×608 不等

3. 网络结构

YOLOv2 使用 Darknet-19 来作为 backbone Darknet-19 的网络结构(1-23层),YOLOv2的网络结构如下:
v2

优缺点
优点:

  1. 高速度:YOLOv2 能够实现实时检测,适合应用在需要高实时性的场景中,如视频流分析。
  2. 高精度:相比 YOLOv1,YOLOv2 提高了检测精度,尤其是在处理小物体和复杂背景时表现更好。
  3. 更好的泛化能力:多尺度训练和批量归一化使模型在不同场景下的表现更加稳定。

缺点:

  1. 对小物体检测的局限:尽管 YOLOv2 在小物体检测上有所改进,但相较于一些更复杂的检测模型,仍然存在一定局限。
  2. 对密集物体检测的局限:在密集物体检测场景中,可能会出现漏检或误检现象。

三、YOLOv3☘️☘️

论文地址:YOLOv3🚀
源码地址:code

1. YOLOv3简介

YOLOv3(You Only Look Once Version 3)是 Joseph Redmon 和 Ali Farhadi 于2018年提出的改进版实时物体检测系统。相较于前两个版本,YOLOv3 在模型结构和检测性能上都进行了显著改进,进一步提升了检测精度和速度。
YOLOv3发布时,目标检测的基准数据集已经从PASCAL VOC更改为Microsoft COCO,此后,所有 YOLO 在 MS COCO 数据集中进行评估。YOLOv3-spp在20 FPS下的平均精度AP为36.2%,AP50为60.6%,当时达到了最先进的水平,速度快了2倍。

2. 改进之处

  1. 多尺度特征检测(Multi-Scale Predictions):YOLOv3 在三个不同尺度上进行预测,使得模型能够更好地检测不同大小的物体。这种多尺度检测通过在网络的不同层次进行预测来实现,分别在高、中、低分辨率特征图上进行。
  2. 改进的网络架构(Improved Network Architecture):使用了一个新的骨干网络 Darknet-53,这是一种更深、更复杂的卷积神经网络,包括53个卷积层。Darknet-53 采用残差结构(ResNet)使得训练更稳定,收敛更快。
  3. 基于逻辑回归的分类器(Logistic Regression for Class Predictions):YOLOv3 使用独立的逻辑回归分类器来预测每个类的存在概率,而不是采用之前的 softmax 分类器,这使得模型能够处理多标签分类问题。
  4. 更多的边界框预测(More Bounding Box Predictions):每个网格单元预测三个边界框,而不是 YOLOv2 的两个。这些边界框与先验锚框(anchor boxes)相对应,提高了检测的灵活性和准确性。
  5. 标签平滑(Label Smoothing):标签平滑技术被引入,以减少过拟合,提升模型在实际应用中的表现。

3. 网络架构

YOLOv3 使用 Darknet-53 来作为 backbone ,YOLOv3网络结构如下(图源:MiltonY):
在这里插入图片描述

4. 从YOLOv3开始目标检测器的架构开始分为三个部分:Backbone, Neck, and Head:

在这里插入图片描述

  1. Backbone(骨干网络):Backbone 是负责提取输入图像特征的主要部分。它通常是一个深层的卷积神经网络,用于提取图像的低级和高级特征。YOLOv3 使用了 Darknet-53 作为其 Backbone。
  2. Neck(颈部网络):Neck 是连接 Backbone 和 Head 的中间部分。它的作用是进一步处理 Backbone 提取的特征,并生成用于检测的特征图。这一部分通常包含一些特征金字塔网络(FPN)或路径聚合网络(PAN)结构。
  3. Head(头部网络):Head 是 YOLO 模型中最终进行目标检测的部分。它接受来自 Neck 的特征图,输出预测结果,包括边界框的位置、类别以及置信度。

优缺点
优点:

  1. 高速度和高效性:YOLOv3 保持了 YOLO 系列的高速检测特点,适合实时应用。
  2. 高精度: 多尺度特征检测和改进的网络架构显著提高了检测精度,特别是在处理小物体和复杂背景时表现更好。
  3. 灵活性强:能够处理多标签分类问题,更适应实际应用中的多样化需求。稳定。

缺点:

  1. 对小物体检测的局限:尽管有所改进,YOLOv3 在极小物体检测上仍然存在一定局限。
  2. 复杂度提高:网络结构的复杂性增加,导致训练和推理过程的资源需求提高。

四、YOLOv4☘️☘️

论文地址:YOLOv4🚀
源码地址:code

1. YOLOv4简介

YOLOv4(You Only Look Once Version 4)是由 Alexey Bochkovskiy、Chien-Yao Wang 和 Hong-Yuan Mark Liao 在2020年提出的一种改进版实时物体检测系统。YOLOv4 在速度、精度和功能上都有显著提升。YOLOv4 在 MS COCO dataset test-dev2017 上进行评估,在 NVIDIA V100 上以超过 50 FPS 的速度实现了 43.5%的AP 和 65.7% 的 AP50 。

2. 改进之处

  1. 改进的网络架构:YOLOv4 使用了一种新的网络架构,称为 CSPDarknet53,它基于 Darknet-53,但引入了 Cross-Stage Partial Networks (CSP) 结构,提高了特征提取的效率和稳定性。
  2. 数据增强:引入了大量新的数据增强技术,如 Mosaic 数据增强、Random interpolation、CutMix 和 MixUp 等,增强了模型对不同数据分布的适应能力。
  3. Bag of Freebies (BoF) 和 Bag of Specials (BoS):引入了 Bag of Freebies(BoF)和 Bag of Specials(BoS)两个模块,用于增强模型的训练和推理能力,包括特征金字塔网络(FPN)、自注意力机制、残差连接和空间金字塔池化等。
    4.多尺度训练和测试:采用了多尺度训练和测试的策略,使得模型能够适应不同尺度和大小的物体检测,提高了模型的泛化能力。
  4. 策略改进:优化了损失函数的设计,引入了多尺度训练、Class Label Smoothing 和 Eliminate Grid Sensitivity 策略,提升了检测性能和鲁棒性。

3. 网络架构

YOLOv4 使用 CSPDDarknet-53 网络架构 ,YOLOv4的网络结构如下(图源:MiltonY):
在这里插入图片描述
优缺点
优点:

  1. 高速度和高效性:YOLOv4 在保持实时性能的同时,提升了检测精度。
  2. 高度灵活性:引入了大量新的技术和策略,使得模型更加灵活适应不同的数据和场景。
  3. 功能丰富:YOLOv4 综合了最新的目标检测技术和策略,具备强大的功能和性能。

缺点:

  1. 计算资源需求高:由于引入了大量的改进和增强技术,YOLOv4 的训练和推理过程需要较高的计算资源。
  2. 模型复杂度高:相比之前版本,YOLOv4 的模型结构更加复杂,需要更多的参数和计算量。

五、YOLOv5☘️☘️

源码地址:code

1. YOLOv5简介

YOLOv5 是由 Glenn Jocher 在2020年提出的一种实时目标检测系统,它是 YOLO 系列的最新版本。YOLOv5 在模型架构、训练策略和性能方面进行了多方面的改进,以提高检测速度和精度。在MS COCOdataset test-dev 2017上进行评估,YOLOv5x在图像大小为640像素的情况下实现了50.7%的AP。使用32 个批次的大小,它在NVIDIA V100 上可以达到200 FPS 的速度。使用更大的输入尺寸1536 像素, YOLOv5实现了55.8%的AP。

2. 改进之处

  1. 改进的模型架构:YOLOv5 使用了一种全新的模型架构,包括 CSPDarknet53、CSPDarknet-slim 和 CSPDarknet-Large 等变体,这些架构改进了模型的特征提取效率和速度。
  2. 轻量化设计:引入了轻量级网络架构,如 CSPDarknet-slim 和 CSPDarknet-Lite,这些架构在保持高性能的同时,减少了模型的参数数量和计算量。
  3. AutoML 训练策略:采用了基于 AutoML 的训练策略,通过自动搜索最优超参数和模型结构,提高了模型的性能和泛化能力。
  4. 多尺度训练和测试:支持多尺度训练和测试,使得模型能够适应不同尺度和大小的物体检测,提高了检测的稳定性和准确性。
  5. 数据增强和数据处理:引入了大量新的数据增强技术,如 Mosaic 数据增强、MixUp 数据增强和 AutoAugment 等,增强了模型对不同数据分布的适应能力。
  6. 简化的推理流程:通过简化模型架构和优化推理流程,提高了模型的推理速度和效率。

3. 网络架构

YOLOv5结构简图如下(图源:MiltonY):
在这里插入图片描述
优缺点
优点:

  1. 高速度和高效性:YOLOv5 在保持实时性能的同时,提升了检测精度。
  2. 灵活性:引入了轻量级网络架构和 AutoML 训练策略,使得模型更加灵活适应不同的数据和场景。
  3. 简化的推理流程:通过简化模型结构和优化推理流程,提高了模型的推理速度和效率。

缺点:

  1. 计算资源需求较高:虽然引入了轻量级网络架构,但仍需要较高的计算资源进行训练和推理。
  2. 模型复杂度较高:相比之前版本,YOLOv5 的模型结构较为复杂,需要更多的参数和计算量。

六、Scaled-YOLOv4☘️☘️

论文地址:Scaled-YOLOv4🚀
源码地址:code

1. Scaled-YOLOv4简介

Scaled-YOLOv4 是在 YOLOv4 之后由同一组作者于2021年在 CVPR 会议上提出的。与 YOLOv4 不同,Scaled-YOLOv4 是基于 PyTorch 而不是 Darknet 开发的。其主要创新点在于引入了模型的缩放技术,包括向上缩放和向下缩放。

2. 改进之处

  1. 基于 PyTorch 的实现:Scaled-YOLOv4 从 Darknet 转移到 PyTorch,使得模型在训练和部署时具有更好的灵活性和可扩展性
  2. 缩放技术:
    向上缩放:通过增加模型的复杂度和容量来提高精度,适用于对检测精度要求较高的应用场景。
    向下缩放:通过减少模型的复杂度来提高速度,适用于对计算资源有限的嵌入式系统或实时应用场景。
  3. 轻量级架构 YOLOv4-tiny:设计了适用于低端 GPU 的 YOLOv4-tiny 版本,可以在嵌入式系统上高效运行。例如,在 Jetson TX2 上能达到 46 FPS,在 RTX2080Ti 上能达到 440 FPS,同时在 MS COCO 数据集上实现 22% 的平均精度(AP)。

优缺点
优点:

  1. 灵活性高:通过缩放技术,用户可以根据具体需求在精度和速度之间进行权衡选择。
    2 适应性强:Scaled-YOLOv4 能适应从高性能服务器到资源受限的嵌入式系统的各种硬件环境。
  2. 易于使用:基于 PyTorch 实现,使得模型训练、部署和调整更加方便。

缺点:

  1. 计算资源需求:尽管有轻量级版本,但高精度的模型仍然需要较高的计算资源,可能不适用于所有应用场景。
  2. 实现复杂度:引入多种模型缩放技术后,模型的结构和训练过程变得更加复杂,可能增加开发和维护的难度

七、YOLOR☘️☘️

论文地址:YOLOR🚀
源码地址:code

1. YOLOR简介

YOLOvR(You Only Learn One Representation)由 YOLOv4 的研究团队于 2021 年 5 月在 ArXiv 上发布。YOLOvR 采用了一种多任务学习的方法,旨在通过学习通用表示来创建一个模型,能够执行各种任务(如分类、检测、姿态估计),并通过子网络创建特定任务的表示。YOLOvRSHIYONG 使用NVIDIA V100 在 MS COCO 数据集 test-dev 2017 上以30 FPS 的速度,达到了 55.4% 的平均精度(AP)和 73.3% 的 AP50。

2. 改进之处

  1. 多任务学习:YOLOvR 的核心创新在于其多任务学习框架。通过学习通用表示,模型能够同时处理分类、目标检测和姿态估计等多种任务。
  2. 隐式知识编码:传统的联合学习方法通常会导致次优的特征生成。YOLOvR 通过编码神经网络的隐式知识,利用过去的经验来解决新问题,类似于人类利用过往经验来应对新问题。
  3. 子网络结构:在通用表示的基础上,YOLOvR 使用子网络来创建特定任务的表示,从而提高了各任务的性能和准确性。
  4. 引入隐式知识显著提升了模型在多个任务上的表现。

3. 不同版本的网络结构

(1)YOLOR_P6(图源:算法小乔在这里插入图片描述(2)YOLOR_W6在这里插入图片描述
(3)YOLOR_CSP
在这里插入图片描述
(4)YOLOR_CSP_X
在这里插入图片描述
优缺点
优点:

  1. 高效的多任务处理:通过多任务学习框架,YOLOvR 可以同时处理多个任务,减少了单独训练多个模型的需求。
  2. 性能提升:隐式知识编码和子网络结构显著提高了模型在各任务上的表现。
  3. 通用性强:模型能够通过通用表示适应不同任务,提高了模型的泛化能力。

缺点:

  1. 计算复杂度:由于引入了多任务学习和复杂的网络结构,YOLOvR 的训练和推理过程可能需要较高的计算资源。
  2. 模型复杂性:模型结构和训练过程较为复杂,可能增加开发和调试的难度。

八、YOLOX☘️☘️

论文地址:YOLOX🚀
源码地址:code

1. YOLOX简介

YOLOX由旷视科技于2021年7月在ArXiv上发表。它在Pytorch中开发,以Ultralytics的YOLOV3为起点,有五个主要变化:无锚架构、多个阳性,解耦头部,高级标签分配和强大的增强。

2. 改进之处

  1. 无锚框设计:自 YOLOv2 以来,所有后续版本的 YOLO 都是基于锚框的检测器。YOLOvX 借鉴了 CornerNet、CenterNet 和 FCOS 等先进的无锚框目标检测器,回归到无锚框架构,简化了训练和解码过程。无锚框设计使得相对于 YOLOv3 基线的平均精度(AP)提高了 0.9 点。
  2. 多正样本策略:由于缺乏锚框会导致样本不平衡问题,YOLOvX 采用中心采样方法,将中心 3×3 区域作为正样本。这种方法使得 AP 提高了 2.1 点。
  3. 解耦头结构:研究表明,分类置信度和定位精度之间可能存在不一致性。为了解决这个问题,YOLOvX 将这两者分离为两个独立的头,一个用于分类任务,另一个用于回归任务。这种解耦头结构使得 AP 提高了 1.1 点,并加快了模型的收敛速度。
  4. 先进的标签分配:在目标重叠情况下,标签分配可能存在歧义。YOLOvX 受到 Optimal Transport(OT)问题的启发,提出了一种简化版本的标签分配方法 simOTA。这一改进使得 AP 提高了 2.3 点。
  5. 强数据增强:YOLOvX 使用了 MixUP 和 Mosaic 数据增强技术。研究发现,在使用这些强数据增强后,ImageNet 预训练不再有益。这些数据增强技术使得 AP 提高了 2.4 点。

3. 网络架构

YOLOX网络结构如下(图源:MiltonY):
在这里插入图片描述
优缺点
优点:

  1. 高精度:通过多项创新性改进,YOLOvX 显著提高了检测精度。
  2. 高效训练:无锚框设计和先进的标签分配方法简化了训练过程,增强了模型的鲁棒性。
  3. 快速收敛:解耦头结构不仅提高了精度,还加快了模型的收敛速度。
  4. 强适应性:强数据增强技术使得模型具有更好的泛化能力,能够适应不同的数据分布和任务需求。

缺点:

  1. 计算复杂度:尽管在精度上有显著提升,YOLOvX 的复杂度也相应增加,需要更多的计算资源进行训练和推理。
  2. 实现复杂性:多项改进增加了模型的实现难度和调试难度,可能对开发者提出更高的技术要求。

九、YOLOv6☘️☘️

论文地址:YOLOv6🚀
源码地址:code

1. YOLOv6简介

YOLOv6由美团视觉AI部门于2022年9月在ArXiv上发表,总体而言,YOLOv6在精度和速度指标上优于以前最先进的型号,如YOLOv5, YOLOX和PP-YOLOE。作者提供了从YOLOv6-N到YOLOv6-L6的八个缩放模型。在MS COCO数据集test-dev 2017上进行评估,最大的模型在NVIDIA Tesla T4上以29 FPS左右的速度实现了57.2%的AP。

2. 改进之处

  1. 提出基于 RepVGG 的新骨干网络 EfficientRep,它比之前的 YOLO 骨干网络具有更高的并行性。
  2. 对于颈部,使用增强型 PAN 结构,并为较大的模型使用 RepBlocks 或 CSPStackRep Blocks,从而提升特征融合和表示能力。
  3. 借鉴 YOLOX开发了一个高效的解耦头部结构,提高了分类和定位任务的性能。。
  4. 使用 TOOD 中介绍的Task alignment learning方法进行标签分配,改进了分类置信度和定位精度的一致性。
  5. 新的分类和回归损失。使用了分类 VariFocal loss 和 SIoU /GIoU 回归损失。
  6. 使用了用于回归和分类任务的自蒸馏策略。
  7. 使用RepOptimizer和通道蒸馏检测的量化方案,有助于实现更快的检测。

3. 网络架构

YOLOv6的网络架构如下(图源:MiltonY):
在这里插入图片描述
优缺点
优点:

  1. 高精度:通过多项改进,YOLOv6 在精度上有显著提升,尤其在小目标检测方面表现优异。
  2. 改进特征提取:引入了更先进的特征提取网络和优化策略,如GhostNet和CBNet,提升了检测性能。
  3. 训练优化:采用了更有效的训练策略和损失函数,如Focal Loss和GIoU Loss,增强了模型的学习能力。
  4. 高效推理:优化了推理过程,适用于实时检测任务,保持了YOLO系列的实时性特点。

缺点:

  1. 复杂性增加:模型结构和训练策略的复杂性增加了实现和调试的难度。
  2. 硬件需求:尽管优化了推理过程,YOLOv6对训练时的硬件资源需求依然较高,不适合资源极度受限的环境。
  3. 训练时间:改进的训练策略和更复杂的模型结构可能导致训练时间延长,需要更多的计算资源支持。

十、YOLOv7☘️☘️

论文地址:YOLOv7🚀
源码地址:code

1. YOLOv7简介

YOLOv7由YOLOv4和YOLOR的同作者于2022年发布。当时,在5 FPS到160 FPS的范围内,它的速度和准确度超过了所有已知的物体检测器。与YOLOv4一样,它只使用MS COCO数据集进行训练,没有预训练的骨干。YOLOv7提出了一些架构上的变化和一系列的免费包,在不影响推理速度的情况下提高了准确率,但影响了训练时间。在MS COCO数据集test-dev 2017上评估,YOLOv7-E6在输入尺寸为1280像素的情况下,在NVIDIA V100上取得了55.9%的AP和73.5%的AP50 ,速度为50 FPS。

2. 改进之处

YOLOv7架构的变化:

  1. 扩展高效层聚合网络(E-ELAN)。ELAN策略,通过控制最短的最长梯度路径,让深度模型更有效地学习和收敛。YOLOv7提出的E-ELAN适用于具有无限叠加计算块的模型。E-ELAN通过洗牌和合并cardinality结合不同组的特征,在不破坏原始梯度路径的情况下增强网络的学习。
  2. 基于串联的模型的模型缩放。缩放通过调整一些模型属性来生成不同大小的模型。YOLOv7的架构是一个基于串联的架构,其中标准的缩放技术,如深度缩放,导致过渡层的输入通道和输出通道之间的比例变化,这反过来又导致了模型的硬件使用量的减少。YOLOv7提出了一种新的基于串联模型的缩放策略,其中块的深度和宽度以相同的因素进行缩放,以保持模型的最佳结构。

YOLOv7中使用的bag-of-freebies包括:

  1. 计划中的重新参数化卷积。YOLOv7的架构也是受到重新参数化卷积(RepConv) 的启发。由于RepConv中的身份连接会破坏ResNet中的残差和DenseNet中的串联,故删除了身份连接,并称之为RepConvN。
  2. 对辅助头进行粗略的标签分配,对主导头进行精细的标签分配。主导头负责最终输出,而辅助头则协助训练。
  3. conv-bn-activation中的批量归一化。这将批量归一化的平均值和方差整合到推理阶段的卷积层的偏置和权重中。
  4. YOLOR中启发的隐性知识。
  5. 指数移动平均线作为最终推断模型。

3. 网络架构

YOLOv7的网络架构如下(图源:MiltonY):

在这里插入图片描述
优缺点
优点:

  1. 综合性能:YOLOv7在速度和精度上达到了较好的平衡,是YOLO系列中性能最为优越的版本之一。
  2. 优化架构:采用了改进的网络架构和优化技术,如E-ELAN(Efficient Extended Linear Attention Network),提高了特征提取和表示能力。
  3. 模块化设计:模型设计更加模块化,便于根据具体需求进行调整和优化。
  4. 训练策略改进:引入了更有效的训练策略和数据增强技术,提升了模型的泛化能力和鲁棒性。

缺点:

  1. 实现复杂:相比于早期版本,YOLOv7的实现和调试难度更高,需要更高的专业知识。
  2. 计算资源需求:由于采用了多个改进模块,对计算资源的需求较高,训练和推理时可能需要更强大的硬件支持。
  3. 模型规模:模型规模较大,占用更多的存储和内存资源,不适合极端资源受限的环境。

十一、DAMO-YOLO☘️☘️

论文地址:DAMO-YOLO🚀
源码地址:code

1. DAMO-YOLO简介

DAMO-YOLO由阿里巴巴集团2022年11月于ArXiv发布。作者生发布了DAMO-YOLO-Tiny/Small/Medium模型,最佳模型在NVIDIA V100上以233 FPS的速度实现了50.0%的AP

2. 改进之处

DAMO-YOLO受到当前技术的启发,提出了以下创新:

  1. 神经架构搜索 (NAS):使用了阿里巴巴开发的 MAE-NAS 方法,自动寻找高效的模型架构。
  2. 大颈部设计:受 GiraffeDet、CSPNet 和 ELAN 的启发,设计了名为 Efficient-RepGFPN 的颈部结构,能够在实时应用中运行。
  3. 小头部设计:研究发现大颈部和小头部的组合可以带来更好的性能,仅保留了用于分类的一个线性层和用于回归的一个线性层,这种方法被称为 ZeroHead。
  4. AlignedOTA 标签分配:动态标签分配方法,如 OTA 和 TOOD,由于其显著的改进而变得流行。然而,分类和回归之间的对齐问题依然存在,部分原因是分类和回归损失之间的不平衡。为了解决这个问题,AlignOTA 方法在分类成本中引入了焦点损失,并使用预测框和真实框的 IoU 作为软标签,从而能够为每个目标选择对齐的样本,并从全局角度解决问题。
  5. 知识的提炼。该策略包括两个阶段:教师在第一阶段指导学生,学生在第二阶段独立进行微调。此外,在蒸馏方法中加入了两项增强功能:对齐模块,它将学生的特征调整为与教师的特征相同的分辨率,以及通道动态温度,它将教师和学生的特征归一化,以减少实际价值差异的影响。

3. 网络架构

DAMO-YOLO的网络结构如下:
在这里插入图片描述
优缺点
优点:

  1. 高精度:DAMO-YOLO采用了多种改进技术,如动态锚框和自适应特征提取,显著提升了检测精度。
  2. 高效性:通过优化模型架构和引入轻量级模块,DAMO-YOLO在保持高精度的同时,实现了较高的检测速度。
  3. 创新技术:集成了最新的神经网络设计和优化技术,如动态卷积和自适应特征融合,提高了模型的表现。
  4. 多场景适应:具有良好的泛化能力,能够适应各种复杂场景和不同的检测任务。

缺点:

  1. 复杂性:模型结构较为复杂,增加了实现和调试的难度。
  2. 硬件要求高:由于采用了多种高性能计算模块,对硬件资源的需求较高,可能不适合资源受限的设备。
  3. 训练成本:模型训练需要较高的计算资源和时间成本。

十二、YOLOv8☘️☘️

源码地址:YOLOv8 🚀

1. YOLOv8简介

YOLOv8由开发YOLOv5的公司Ultralytics于2023年1月发布。目前支持图像分类、物体检测和实例分割任务,在还没有开源时就收到了用户的广泛关注。YOLOv8 抛弃了前几代模型的 Anchor-Base,提供了一个全新的 SOTA 模型,包括 P5 640 和 P6 1280 分辨率的目标检测网络和基于 YOLACT 的实例分割模型。和 YOLOv5 一样,基于缩放系数也提供了 N/S/M/L/X 尺度的不同大小模型。在MS COCO数据集test-dev 2017上进行评估,YOLOv8x在图像大小为640像素的情况下实现了53.9%的AP( YOLOv5在相同大小的输入上为50.7%),在NVIDIA A100和TensorRT上的速度为280 FPS。

2. 改进之处

  1. YOLOv8的整体架构与YOLOv5有相似之处,主干从之前的C3结构过渡到更梯度丰富的C2f结构。
  2. 在头部段中实现了一种流行的解耦头部结构,分离了分类和检测头。
  3. 从anchor-based过渡到anchor-free,TaskAlignedAssigner正样本分配策略的实现,distribution focal loss的引入细化了损失计算方面。
  4. 数据增强策略受到YOLOX的启发,在最后十个epoch禁用马赛克增强操作。

3. 网络架构

YOLOv8的网络架构如下(图源:OpenMMLab):
在这里插入图片描述

优缺点
优点:

  1. 高精度:YOLOv8 在精度方面取得显著提升,尤其是在检测小物体和重叠物体时表现突出​ ​。利用改进的主干网络和新型训练策略,YOLOv8 在COCO基准测试中展示了更高的mAP值。
  2. 速度快:YOLOv8 保持了YOLO系列模型的实时处理能力,优化了模型结构,使其在保证高精度的同时,依然能够快速处理图像。
  3. 模块化架构:YOLOv8 采用模块化架构,用户可以根据需要定制和调整模型。这种灵活性使其适用于多种计算机视觉任务​。
  4. 无锚框检测:YOLOv8 采用无锚框检测方法,直接预测物体的中心位置,简化了预测过程,提升了检测速度和精度。

缺点:

  1. 复杂性:虽然精度和速度有所提升,但YOLOv8的架构和训练策略更加复杂,可能需要更多的计算资源和时间来训练。
  2. 硬件要求高:为了充分发挥YOLOv8的性能,通常需要使用高性能GPU,这对硬件条件有一定要求,可能不适合资源受限的环境​。
  3. 训练成本:由于需要处理更多的数据增强和复杂的模型结构,训练YOLOv8可能需要更高的计算成本和更长的时间​。

十三、YOLOv9☘️☘️

论文地址:YOLOv9🚀
项目地址:code

1. YOLOv9简介

YOLOv9是yolox系列最新的算法之一,于2024年提出,论文一作和YOLOv7一样。通过将 PGI 和 GELAN 结合设计的 YOLOv9 在 MS COCO 数据集上表现出强大的竞争力。与 YOLOv8 相比,深度模型的参数数量减少了 49%,计算量减少了 43%,但在 MS COCO 数据集上仍然有 0.6% 的平均准确率提升。

2. 贡献

  1. 作者从可逆功能的角度对现有深度神经网络架构进行了理论分析,在这一过程中成功解释了许多过去难以解释的现象。还根据这一分析设计了可编程梯度信息(PGI)和辅助可逆分支,PGI可以为目标任务提供完整的输入信息来计算目标函数,从而获得可靠的梯度信息以更新网络权重。
  2. 作者设计的PGI解决了深度监督只能用于极深神经网络架构的问题,从而使新的轻量级架构能够真正应用于日常生活。
  3. 作者基于梯度路径规划设计了一种新的轻量级网络架构——广义高效层聚合网络(GELAN),GELAN的设计同时考虑了参数数量、计算复杂性、准确性和推理速度。这种设计允许用户随意选择适合不同推理设备的计算块。GELAN只使用传统卷积,以实现比基于最先进技术的深度卷积设计更高的参数使用率,同时显示出轻量、快速和准确的巨大优势。
  4. 结合所提出的PGI和GELAN,YOLOv9在MS COCO数据集上的目标检测性能在各个方面大大超过了现有的实时目标检测器。

3. 网络架构

YOLOv9的网络架构如下(图源:AI学长):
在这里插入图片描述

十四、YOLOv10☘️☘️

论文地址:YOLOv10🚀
项目地址:code

1. YOLOv10简介

YOLOv10是由清华大学的Ao Wang, HuiChen, LihaoLiu等人于 2024年5月发布的,是YOLO系列最新的算法之一。YOLOv10是一种新的实时端到端对象检测器。针对后处理,提出了无NMS训练的一致双重分配,实现了高效的端到端检测。对于模型架构,引入了整体效率-精度驱动的模型设计策略,提高了性能-效率的权衡。

2. 创新点

1. 无NMS的一致双分配的训练策略(consistent dual assignments for NMS-free Training):

1.1 双标签分配(Dual label assignments):

  • 一对一分配(one-to-one matching):仅一个预测框被分配给一个真实物体标签,避免了NMS,但是会导致弱监督,使得模型精度欠佳和影响收敛速度。
  • 一对多分配(one-to-many matching):能解决一对一分配策略存在的问题,在训练期间,多个预测框被分配给一个真实物体标签。这种策略提供了丰富的监督信号,优化效果更好。
  • 双头架构:模型在训练期间使用两个预测头,一个使用一对多分配,另一个使用一对一分配。这样,模型可以在训练期间利用一对多分配的丰富监督信号,而在推理期间则使用一对一分配的预测结果,从而实现无NMS的高效推理。

1.2 一致匹配度量(Consistent matching metric):

  • 为实现两个分支的预测感知匹配,作者提出了一致匹配度量。通过调整匹配度量参数,使得一对一和一对多分配的监督信号一致,减少了训练期间的监督差距,提升了模型的预测质量。

在这里插入图片描述

2. 效率-精度驱动的模型设计(Holistic Efficiency-Accuracy Driven Model Design):

2.1. 效率驱动的模型设计:

  • 轻量化分类头:通过分析分类误差和回归误差的影响后,发现回归头对YOLOs的性能影响更大,在不显著影响性能的情况下,可以适当减少分类头计算开销。
  • 空间-通道解耦下采样:将空间缩减和通道增加操作解耦,实现更高效的下采样。最大限度地提高了下采样过程中的信息保留率,从而降低了延迟,带来了具有竞争力的性能。
  • 基于秩的块设计:根据各阶段的内在秩适应块设计,降低冗余,提高效率。提出了一种紧凑的反向块(CIB)结构;设计了一种秩引导的块分配策略,以在保持竞争力的同时实现最佳效率。

2.2 精度驱动模型设计:

  • 大核卷积:采用大核深度卷积可有效扩大感受野和增强模型能力,作者在深度阶段利用了CIB中的大核深度卷积。(只对小尺度模型采用大核卷积。)
  • 部分自注意力PSA:解决自注意在视觉任务中出现很高的计算复杂度和内存占用的问题。
    在这里插入图片描述

3. 网络结构

YOLOv10的网络结构简图如下:
在这里插入图片描述

  1. 局限
    由于计算资源有限,作者未能在大规模数据集(如 Objects365)上对 YOLOv10 进行预训练。此外,尽管在无 NMS 训练下作者使用一对一头可以实现有竞争力的端到端性能,但与使用 NMS 的原始一对多训练相比,仍存在性能差距,尤其是在小模型中尤为明显。例如,在 YOLOv10-N 和 YOLOv10-S 模型中,使用 NMS 的一对多训练的性能分别比无 NMS 训练高 1.0% AP 和 0.5% AP。

十五、PP-YOLO☘️☘️

论文地址:PP-YOLO🚀
源码地址:code

1. PP-YOLO简介

PP-YOLO 是由百度于2020年提出的一种高效的目标检测模型,旨在在保持高准确度的同时实现高推理速度。PP-YOLO 在 YOLOv3 的基础上进行了多项改进,使得模型在各种实际应用中表现更加出色。在MS COCO数据集test-dev 2017上进行评估,PP-YOLO在NVIDIA V100上取得了45.9%的AP和65.2%的AP50,73 FPS。

2. 改进之处

  1. 优化的骨干网络:使用 ResNet50-vd 作为骨干网络,提升了特征提取能力,相比于普通 ResNet50,在精度上有显著提升。
  2. 路径聚合网络:引入了路径聚合网络(Path Aggregation Network, PAN),增强了不同层级特征之间的信息流,提高了检测精度。
  3. IoU 损失函数:使用 IoU 损失函数代替原来的 L2 损失函数,使得预测的边界框更加精确。
  4. 增强的标签分配:采用 Grid Sensitive 和 Matrix NMS 技术,改进了标签分配策略,减少了假阳性,提高了检测性能。
  5. 数据增强:使用了 Mosaic 和 MixUp 数据增强技术,增加了训练数据的多样性,提升了模型的泛化能力。

3. 网络架构

PP-YOLO 网络结构如下:
在这里插入图片描述
优缺点
优点:

  1. 高效性:PP-YOLO通过优化YOLOv3的基础架构,提升了检测速度和精度。。
  2. 增强特征提取:引入了Path Aggregation Network (PANet) 和跨阶段部分网络 (CSPNet),提高了特征提取能力和检测性能。
  3. 数据增强:采用了Mosaic数据增强和其他先进的数据增强技术,提高了模型的泛化能力。
  4. 更好的定位:引入了IoU感知损失函数,增强了边界框的定位准确性。
  5. 实用性:保持了YOLO系列模型的实时检测能力,适合各种实时检测任务。

缺点:

  1. 模型复杂性:相比于原始YOLO版本,PP-YOLO的结构更复杂,实现和调试需要更多的专业知识。
  2. 硬件需求:由于引入了更多的优化和改进,PP-YOLO对硬件资源的需求更高,不太适合资源受限的设备。

十六、PP-YOLOv2☘️☘️

论文地址:PP-YOLOv2🚀
源码地址:code

1. PP-YOLOv2简介

PP-YOLOv2 是 PP-YOLO 的改进版本,由百度在 PP-YOLO 的基础上提出,于2021年4月发表在ArXiv上。PP-YOLOv2 进一步优化了模型结构和训练策略,使得模型在保持高精度的同时,推理速度也得到了显著提升。在NVIDIA V100上69FPS时,性能从45.9%AP提高到49.5%AP。

2. 改进之处

  1. 更优的骨干网络:使用了 ResNet101 作为骨干网络,相比 ResNet50-vd,提高了特征提取能力,从而提升了模型精度。
  2. 优化的路径聚合网络:采用了更为优化的路径聚合网络(PAN),增强了不同层级特征之间的信息流通,使得模型在复杂场景下表现更佳。
  3. IoU 损失和 CIOU 损失:结合了 IoU 和 CIOU 损失函数,使得边界框预测更加准确,进一步提升了检测精度。
  4. Matrix NMS:引入了 Matrix NMS(非极大值抑制)技术,有效减少了假阳性,提高了检测性能。
  5. 智能数据增强:使用了更为智能的 Mosaic 和 MixUp 数据增强技术,增加了训练数据的多样性,提升了模型的泛化能力。
  6. 更高的推理速度:优化了模型的计算过程,使其在保持高精度的同时,大幅提升了推理速度,适合实时检测应用。
  7. 更小的模型尺寸:通过优化网络架构,减少了模型参数量,使得模型更加轻量化,适合在资源受限的设备上运行。

3. 网络架构

PP-YOLOv2 网络结构如下:
在这里插入图片描述
优缺点
优点:

  1. 进一步优化:在PP-YOLO的基础上进行了进一步优化,包括更高效的特征提取和检测头设计。
  2. 速度和精度提升:通过引入更多优化技术和改进策略,PP-YOLOv2在速度和精度上都有显著提升。
  3. 更强的数据增强:采用了更先进的数据增强技术,进一步提高了模型的鲁棒性和泛化能力。
  4. 自适应性:引入自适应的训练策略,使得模型在不同数据集和应用场景下具有更好的表现。
  5. 改进的检测头:通过优化检测头设计,进一步提升了检测的精度和速度。

缺点:

  1. 计算开销:虽然性能有所提升,但PP-YOLOv2的计算复杂度和资源需求也随之增加,对硬件要求较高。
  2. 实现复杂性:由于引入了更多的改进和优化,PP-YOLOv2的实现和调试更加复杂,需要更高的技术门槛。
  3. 模型规模:相比于PP-YOLO,PP-YOLOv2的模型规模可能更大,占用更多的存储和内存资源,不适合资源受限的环境。

十七、PP-YOLOE☘️☘️

论文地址:PP-YOLOE🚀
源码地址:code

1. PP-YOLOE简介

PP-YOLOE 是 PP-YOLO 系列的最新改进版本,由百度于2022年提出,旨在进一步提升目标检测的精度和效率。PP-YOLOE 在前作 PP-YOLOv2 的基础上进行了多项优化和创新,使得模型在各种实际应用中表现更加优异。在NVIDIA V100上实现了51.4%的AP,78.1 FPS的性能。

2. 改进之处

  1. 无锚架构:PP-YOLOE 使用了一种无锚点架构,简化了训练和推理过程。
  2. 新的骨干网络和颈部设计:受 TreeNet 启发,作者修改了骨干网络和颈部架构,使用了结合残差连接和密集连接的 RepResBlocks。
  3. 任务对齐学习 (TAL):YOLOX 首次提出了任务不对齐问题,即分类置信度和定位准确度在所有情况下并不一致。为减少这一问题,PP-YOLOE 实施了 TOOD 提出的 TAL,包括动态标签分配和任务对齐损失。
  4. 高效任务对齐头 (ET-head):与 YOLOX 将分类和定位头分离不同,PP-YOLOE 采用了基于 TOOD 的单一头设计,以提高速度和精度。
  5. 变焦损失 (VFL) 和分布焦点损失 (DFL):VFL使用目标分数加权正样本的损失,对具有高 IoU 的样本给予更高权重,从而在训练过程中优先考虑高质量样本。同样,VFL 使用 IoU 感知分类分数 (IACS) 作为目标,允许分类和定位质量的联合学习,实现训练和推理的一致性。另一方面,DFL 将焦点损失从离散标签扩展到连续标签,优化改进的表示,结合质量估计和类别预测。

3. 网络架构

PP-YOLOE 网络结构如下:
在这里插入图片描述
优缺点
优点:

  1. 高效性:PP-YOLOE在优化基础架构和训练策略方面进行了多项改进,显著提升了检测速度和精度。
  2. 增强的特征提取:引入了CSPNet和PAN等先进的特征提取网络,提高了模型的表示能力和检测性能。
  3. 多尺度检测:增强了对不同大小目标的检测能力,提升了检测的鲁棒性和准确性。
  4. 训练策略优化:采用了更有效的数据增强和训练策略,如Mosaic数据增强和IoU感知损失函数,提高了模型的泛化能力。

缺点:

  1. 复杂性:相比于原始YOLO版本,PP-YOLOE的模型结构更复杂,增加了实现和部署的难度。
  2. 资源需求:由于模型的复杂性和大量的优化,PP-YOLOE对硬件资源和计算能力的要求较高,不适合资源受限的设备。

十八、YOLO-NAS☘️☘️

论文地址:YOLO-NAS🚀
源码地址:code

1. YOLO-NAS简介

YOLO-NAS由Deci于2023年5月发布,Deci是一家开发生产级模型和工具以构建、优化和部署深度学习模型的公司。YOLO-NAS旨在检测小物体,提高定位精度,并提高每次计算的性能比,使其适用于实时边缘设备应用。

2. 改进之处

  1. 量化感知模块(QSP和QCI):结合了8位量化的重新参数化,以最大限度地减少训练后量化过程中的准确性损失。
  2. 自动化架构设计采用AutoNAC。
  3. 混合量化方法,选择性地量化模型的某些部分,以平衡延迟和准确性,而不是标准量化,其中所有层都受到影响。
  4. 具有自动标记数据、自蒸馏和大型数据集的预训练方案。

3. 网络架构

在这里插入图片描述
优缺点
优点:

  1. 灵活性:YOLO-NAS(Neural Architecture Search)通过自动化搜索优化网络架构,使得模型能够根据特定任务和数据集进行定制,达到最佳性能。
  2. 高性能:通过NAS技术,YOLO-NAS在速度和精度上找到了更好的平衡点,提升了检测效果。
  3. 自适应性:能够根据不同的应用场景和硬件平台进行优化,实现更高的效率和适应性

缺点:

  1. 复杂性和计算成本:NAS过程需要大量的计算资源和时间,增加了模型开发的复杂性和成本。
  2. 可解释性:由于NAS自动化生成的架构较为复杂,模型的可解释性和调试难度增加。
  3. 依赖性:高度依赖于NAS框架和工具,对于一些没有强大计算资源和NAS经验的团队来说,使用和优化可能存在困难。

文章持续更新中,敬请期待!!
请添加图片描述
下一篇:YOLOv10解析:实时端到端目标检测🥤🥤

  • 67
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值