跳转至内容

YOLOv5 与YOLOv8:实时物体检测的演变

YOLO (You Only Look Once)系列模型对物体检测技术的发展产生了重大影响。由 UltralyticsYOLOv5 和YOLOv8 都是计算机视觉历史上的关键时刻。YOLOv5 凭借其简洁性和速度成为世界上最受喜爱、应用最广泛的检测架构,而YOLOv8 则引入了一个具有尖端架构创新的统一框架,以支持更广泛的视觉任务。

在这两个强大的处理器之间做出选择,取决于您的具体项目限制、硬件可用性以及对多任务功能的需求。本指南提供深入的技术分析,帮助计算机视觉工程师和研究人员做出正确的决定。

YOLOv5:久经考验的行业标准

作者:Glenn JocherGlenn Jocher
组织:Ultralytics
日期:2020-06-26
GitHubyolov5
文档yolov5

YOLOv5 于 2020 年中期发布,彻底改变了物体检测的可访问性。它是第一个YOLO PyTorch中实现的第一个 YOLO 模型,摆脱了其前身所使用的 Darknet 框架。这一转变使得开发人员可以非常容易地对自定义数据集进行训练、部署和实验。

YOLOv5 采用CSPDarknet 骨干网,是一种基于锚点的探测器。这意味着它依靠预定义的锚点框来预测物体位置。虽然这种方法需要对一些超参数进行调整,才能在独特的数据集上获得最佳性能,但它仍然非常有效。它的架构强调推理速度和低内存容量,因此最适合部署在资源有限的硬件上,如Raspberry Pi和早期的NVIDIA Jetson

YOLOv5的主要优势

  • 传统稳定性:多年来在生产环境中的积极使用使其成为最稳定、最无漏洞的视觉模型之一。
  • 边缘优化:特别是在较旧的 CPU 和特定的移动处理器上,YOLOv5 的简单架构有时可以提供更快的推理延迟。
  • 庞大的生态系统:由教程、第三方集成和论坛讨论组成的庞大社区为故障排除和开发提供支持。

了解更多关于 YOLOv5 的信息

YOLOv8:多重任务的动力源泉

作者:Glenn Jocher、Ayush Chaurasia 和 Jing QiuGlenn Jocher、Ayush Chaurasia 和 Jing Qiu
组织机构:Ultralytics
日期:2023-01-10
GitHubultralytics
文档yolov8

YOLOv8 不仅是一个物体检测器,还是一个用于图像分割姿势估计 分类定向边界框(旋转框检测)检测的综合框架,它的设计代表了一个重大的飞跃。

从架构上讲,YOLOv8 采用了无锚点设计,头部解耦,将对象性、分类和回归任务分离开来。它还引入了C2f 模块(带 2 个卷积的交叉阶段部分瓶颈),取代了YOLOv5 中的 C3 模块。C2f 模块改进了梯度流和特征融合,使模型能够学习更复杂的模式,而不会大量增加计算成本。

YOLOv8的主要优势

  • 最先进的准确性:与YOLOv5 相比,在COCO 和自定义数据集上持续获得更高的mAP (平均精度)分数。
  • 无锚检测:无需计算或调整锚点框,从而简化了训练管道,并提高了对异常长宽比物体的泛化能力。
  • 多功能性:使用相同的应用程序接口即可在检测、分割和姿势估计 之间切换,大大缩短了复杂项目的开发时间。

了解更多关于 YOLOv8 的信息

技术深度挖掘:架构与性能

从YOLOv5 到YOLOv8 ,"引擎盖下 "的几个变化推动了性能的提升。

建筑转变

最显著的区别在于检测头。YOLOv5 采用耦合头,分类和定位共享特征。YOLOv8 采用的是解耦头,允许网络独立调整权重,以识别物体是什么在哪里。这通常会带来更好的收敛性和更高的准确性。

此外,从C3 到 C2f的骨干网演变使YOLOv8 能够捕捉到更丰富的梯度信息。虽然这使得架构略显复杂,但Ultralytics 对实施进行了优化,以确保保持较高的训练效率。

性能指标

在对标准COCO 数据集上的模型进行比较时,YOLOv8 显示出更高的准确度与计算比率。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8

如图所示、 YOLOv8n(Nano) 的mAP 达到 37.3,与更大的YOLOv5s(Small) 的 37.4 几乎相当,但FLOPs 明显更少。这种效率对于现代边缘人工智能应用至关重要。

训练方法与生态系统

Ultralytics 模型的一个显著特点是注重开发人员的体验。这两种模式都受益于全面的Ultralytics 生态系统,但访问方式略有不同。

易用性和应用程序接口

YOLOv8 引入了 ultralytics Python 软件包,一个统一的CLI 和Python 界面。该软件包可有效管理依赖关系,并为 培训, 验证预报.有趣的是,现代 ultralytics 软件包还可以加载和运行YOLOv5 模型,弥补了两代产品之间的差距。

from ultralytics import YOLO

# Load a YOLOv8 model (Official)
model_v8 = YOLO("yolov8n.pt")

# Load a YOLOv5 model (Legacy support via Ultralytics package)
model_v5 = YOLO("yolov5nu.pt")

# Training is identical for both
results = model_v8.train(data="coco8.yaml", epochs=100)

内存和效率

与transformerRT-DETR相比,YOLOv5 和YOLOv8 都非常节省内存。转换器通常需要大量的CUDA 内存和较长的训练时间才能收敛。相比之下,Ultralytics YOLO 模型经过优化,可以在消费级 GPU 甚至 CPU 上运行,从而实现了高性能人工智能的平民化。

综合生态系统

这两种模型与Ultralytics HUB 完全兼容,可实现无缝数据集管理、模型可视化和一键部署到现实世界的设备上。

理想用例

选择合适的模型通常取决于部署模型的具体环境。

何时选择YOLOv5

YOLOv5 仍然是您的最佳选择:

  • 遗留系统:更新已围绕YOLOv5 架构构建基础设施的现有管道。
  • 特定边缘硬件:一些较旧的 NPU(神经处理单元)驱动程序专门针对YOLOv5 架构提供了高度优化的支持。
  • 超低延迟:在CPU 推理每毫秒都很重要的情况下,YOLOv5n 更简单的耦合头有时会比 v8n 提供更快的速度优势。

何时选择YOLOv8

建议选择YOLOv8 :

  • 新进展:今天开始一个项目,YOLOv8 (或更新的 YOLO11) 提供了更好的面向未来的路径。
  • 复杂任务:需要实例分割(如医学细胞分析)或关键点检测(如体育分析)的应用。
  • 高精度要求:自动驾驶汽车安全系统或安全监控等场景中,漏检至关重要。

结论

YOLOv5 和YOLOv8 都是Ultralytics 致力于开源创新的证明。 YOLOv5仍然是这一领域的传奇--可靠、快速且得到广泛支持。但是 YOLOv8在此基础上进行了架构改进,提供了更高的准确性和更大的通用性,同时又不牺牲开发人员所期望的易用性。

对于大多数新项目,我们建议利用YOLOv8 中的先进功能或升级到最新的 YOLO11,它进一步完善了这些概念,实现了速度与精度的终极平衡。

探索其他模型

如果您有兴趣探索绝对最新的检测技术,不妨考虑了解一下:

  • YOLO11最新进化版,与YOLOv8 相比,处理速度更快,特征提取能力更强。
  • RT-DETR transformer模型,可为实时应用提供高精度,是GPU 内存限制较少的理想选择。

评论