《博主简介》
小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。
✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~
👍感谢小伙伴们点赞、关注!
《------往期经典推荐------》
二、机器学习实战专栏【链接】 ,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】,持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~
《------正文------》
目录
引言
YOLO(You Only Look Once)是一种流行的计算机视觉算法,用于实现实时对象检测。它由Joseph Redmon等人首次在2015年提出,并随后进行了多次改进。YOLO的核心思想是将整个图像划分为一个固定数量的格子(grid cells),然后在每个格子内同时预测多个边界框(bounding boxes)和类别概率。
YOLOv5、YOLOv8、YOLOv10、YOLOv11是YOLO系列中最经典且常用的4个系列版本,他们均是基于先前YOLO版本在目标检测任务上的成功,对模型结构进行不断地优化改进,从而不断提升了性能和灵活性,在精度和速度方面都具有尖端性能。下面对这3个系列的模型进行简要介绍。
YOLOv5简介
YOLOv5算法是目前应用最广泛的目标检测算法之一,它基于深度学习技术,在卷积神经网络的基础上加入了特征金字塔网络和SPP结构等模块,从而实现了高精度和快速检测速度的平衡。
基本网络结构如下:
YOLOV5有YOLOv5n, YOLOv5s、YOLOv5m、YOLOv51、YOLOv5x五个版本。这几个模型的结构基本一样,不同的是depth_multiple模型深度和width_multiple模型宽度这两个参数。对应模型的深度与宽度因子,随着因子值的增大,模型不断加深、加宽。
YOLOv5不同模型尺寸信息:
YOLOv5提供了5种不同大小的模型尺寸信息,以及在coco数据集上的性能表现如下:
模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 A100 TensorRT (毫秒) | params (M) | FLOPs (B) |
---|---|---|---|---|---|---|
yolov5nu.pt | 640 | 34.3 | 73.6 | 1.06 | 2.6 | 7.7 |
yolov5su.pt | 640 | 43.0 | 120.7 | 1.27 | 9.1 | 24.0 |
yolov5mu.pt | 640 | 49.0 | 233.9 | 1.86 | 25.1 | 64.2 |
yolov5lu.pt | 640 | 52.2 | 408.4 | 2.50 | 53.2 | 135.0 |
yolov5xu.pt | 640 | 53.2 | 763.2 | 3.81 | 97.2 | 246.4 |
YOLOv5算法创新点:
- Anchor-free设计:传统目标检测算法中需要先确定物体位置并给出候选框,但yolov5采用了无锚设计方式,直接预测物体的位置和大小,从而避免了候选框对检测性能的影响。
- 多尺度检测:yolov5算法可以精确检测到不同尺度、各种形状和姿态的目标,具有很好的适应性。
- 目标定位精确:yolov5通过导出中心点坐标来实现目标的精准定位,并且在分类和回归两个方面都进行优化,从而提高了目标检测精度。
- 检测速度快:采用高效计算方法,并利用GPU等硬件加速技术,使得yolov5算法在保证高精度的同时,具有非常快的检测速度。
YOLOv8简介
Yolov8是一个SOTA模型,它建立在Yolo系列历史版本的基础上,并引入了新的功能和改进点,以进一步提升性能和灵活性,使其成为实现目标检测、图像分割、姿态估计等任务的最佳选择。其具体创新点包括一个新的骨干网络、一个新的Ancher-Free检测头和一个新的损失函数,可在CPU到GPU的多种硬件平台上运行。
YOLOv8网络结构如下:
YOLOv8创新点:
Yolov8主要借鉴了Yolov5、Yolov6、YoloX等模型的设计优点,其本身创新点不多,偏重在工程实践上,具体创新如下:
- 提供了一个全新的SOTA模型(包括P5 640和P6 1280分辨率的目标检测网络和基于YOLACT的实例分割模型)。并且,基于缩放系数提供了N/S/M/L/X不同尺度的模型,以满足不同部署平台和应用场景的需求。
- Backbone:同样借鉴了CSP模块思想,不过将Yolov5中的C3模块替换成了C2f模块,实现了进一步轻量化,同时沿用Yolov5中的SPPF模块,并对不同尺度的模型进行精心微调,不再是无脑式一套参数用于所有模型,大幅提升了模型性能。
- Neck:继续使用PAN的思想,但是通过对比YOLOv5与YOLOv8的结构图可以看到,YOLOv8移除了1*1降采样层。
- Head部分相比YOLOv5改动较大,Yolov8换成了目前主流的解耦头结构(Decoupled-Head),将分类和检测头分离,同时也从Anchor-Based换成了Anchor-Free。
- Loss计算:使用VFL Loss作为分类损失(实际训练中使用BCE Loss);使用DFL Loss+CIOU Loss作为回归损失。
- 标签分配:Yolov8抛弃了以往的IoU分配或者单边比例的分配方式,而是采用Task-Aligned Assigner正负样本分配策略。
YOLOv8不同模型尺寸信息:
YOLOv8提供了5种不同大小的模型尺寸信息,详情如下:
Model | size (pixels) | mAPval 50-95 | params (M) | FLOPs (B) |
---|---|---|---|---|
YOLOv8n | 640 | 37.3 | 3.2 | 8.7 |
YOLOv8s | 640 | 44.9 | 11.2 | 28.6 |
YOLOv8m | 640 | 50.2 | 25.9 | 78.9 |
YOLOv8l | 640 | 52.9 | 43.7 | 165.2 |
YOLOv8x | 640 | 53.9 | 68.2 | 257.8 |
一般来说,选择模型大小的原则如下:
数据集小(几百张图片):使用yolov8n或yolov8s。过大模型会过拟合。
数据集中等(几千张图片):yolov8s或yolov8m。能获得较高精度,不易过拟合。
数据集大(几万张图片):yolov8l或yolov8x。模型容量大,充分拟合大数据量,能发挥模型效果。
超大数据集(几十万张以上):首选yolov8x。超大模型才能处理海量数据并取得最优效果。
YOLOv10简介
YOLOv10 的架构建立在以前 YOLO 模型的优势之上,通过消除非最大抑制 (NMS) 和优化各种模型组件, 实现了最先进的性能,并显著降低了计算开销。
网络结构如下:
模型网络结构由以下组件组成:
主干:YOLOv10 中的主干网负责特征提取,使用增强版的 CSPNet(Cross Stage Partial Network)来改善梯度流并减少计算冗余。
颈部:颈部被设计成聚合来自不同尺度的特征,并将它们传递到头部。它包括 PAN(路径聚合网络)层,用于有效的多尺度特征融合。
一对多头:在训练过程中为每个对象生成多个预测,以提供丰富的监督信号,提高学习准确性。
一对一头:在推理过程中为每个对象生成一个最佳预测,消除对 NMS 的需求,从而减少延迟并提高效率。
YOLOv10创新点如下
无 NMS 训练
:利用一致的双重分配来消除对 NMS 的需求,从而减少推理延迟。
整体模型设计
:从效率和精度两个角度对各种组件进行全面优化,包括轻量级分类头、空间通道解耦下采样和秩引导块设计。
增强的模型功能
:整合大核卷积和部分自注意力模块,可在不增加大量计算成本的情况下提高性能。
YOLOv10不同模型尺寸信息:
YOLOv10 提供6种不同的型号规模模型,以满足不同的应用需求:
Model | Input Size | APval | params (M) | FLOPs (G) |
---|---|---|---|---|
YOLOv10-N | 640 | 38.5 | 2.7 | 6.7 |
YOLOv10-S | 640 | 46.3 | 7.2 | 21.6 |
YOLOv10-M | 640 | 51.1 | 15.4 | 59.1 |
YOLOv10-B | 640 | 52.5 | 19.1 | 92.0 |
YOLOv10-L | 640 | 53.2 | 24.4 | 120.3 |
YOLOv10-X | 640 | 54.4 | 29.5 | 160.4 |
YOLOv10-N:Nano 版本,适用于资源极度受限的环境。
YOLOv10-S:平衡速度和精度的小型版本。
YOLOv10-M:通用的中型版本。
YOLOv10-B:平衡版本,宽度增加,精度更高。
YOLOv10-L:大版本,以增加计算资源为代价,实现更高的精度。
YOLOv10-X:超大版本,可实现最大的精度和性能。
YOLO11简介
Ultralytics YOLO11是一款尖端的、最先进的模型,它在之前YOLO版本成功的基础上进行了构建,并引入了新功能和改进,以进一步提升性能和灵活性。YOLO11设计快速、准确且易于使用,使其成为各种物体检测和跟踪、实例分割、图像分类以及姿态估计任务的绝佳选择。
基本网络结构如下:
YOLO11创新点如下:
YOLO 11主要改进包括:
增强的特征提取
:YOLO 11采用了改进的骨干和颈部架构,增强了特征提取功能,以实现更精确的目标检测。
优化的效率和速度
:优化的架构设计和优化的训练管道提供更快的处理速度,同时保持准确性和性能之间的平衡。
更高的精度,更少的参数
:YOLO11m在COCO数据集上实现了更高的平均精度(mAP),参数比YOLOv8m少22%,使其在不影响精度的情况下提高了计算效率。
跨环境的适应性
:YOLO 11可以部署在各种环境中,包括边缘设备、云平台和支持NVIDIA GPU的系统。
广泛的支持任务
:YOLO 11支持各种计算机视觉任务,如对象检测、实例分割、图像分类、姿态估计和面向对象检测(OBB)。
YOLO11不同模型尺寸信息:
YOLO11 提供5种不同的型号规模模型,以满足不同的应用需求:
Model | size (pixels) | mAPval 50-95 | Speed CPU ONNX (ms) | Speed T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
---|---|---|---|---|---|---|
YOLO11n | 640 | 39.5 | 56.1 ± 0.8 | 1.5 ± 0.0 | 2.6 | 6.5 |
YOLO11s | 640 | 47.0 | 90.0 ± 1.2 | 2.5 ± 0.0 | 9.4 | 21.5 |
YOLO11m | 640 | 51.5 | 183.2 ± 2.0 | 4.7 ± 0.1 | 20.1 | 68.0 |
YOLO11l | 640 | 53.4 | 238.6 ± 1.4 | 6.2 ± 0.1 | 25.3 | 86.9 |
YOLO11x | 640 | 54.7 | 462.8 ± 6.7 | 11.3 ± 0.2 | 56.9 | 194.9 |
好了,这篇文章就介绍到这里,喜欢的小伙伴感谢给点个赞和关注,更多精彩内容持续更新~~
关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!