YOLOv8 与 YOLOv5:实时目标检测的演进
在快节奏的计算机视觉领域,很少有名字能像YOLO (你只需看一眼)那样引起强烈反响。由 Ultralytics开发,YOLOv5 和YOLOv8 都代表了物体检测历史上的关键时刻。YOLOv5 于 2020 年发布,在易用性和速度方面树立了行业标准,而YOLOv8 则于 2023 年推出,进一步推动了准确性和架构灵活性的发展。
这项全面比较探讨了这两种强大模型的技术差异、架构演进和性能指标。无论您是维护传统系统还是构建尖端 AI 解决方案,理解这些版本之间的细微差别对于做出明智的部署决策都至关重要。
架构演进
从 YOLOv5 到 YOLOv8 的转变标志着设计理念的重大转变,从成熟的基于锚点的方法转向现代的无锚点方法。这一演进解决了模型训练和泛化中的常见挑战。
YOLOv5:基于锚框的标准
YOLOv5 采用基于锚框的检测方案。这意味着模型预测与特定数据集量身定制的预定义“锚框”的偏移量。虽然非常有效,但这种方法通常需要为自定义数据集计算最佳锚框尺寸,这个过程被称为“自动锚框”。
- 主干网络:使用 CSPDarknet53 主干网络,带有 Focus 层(早期版本)或 stem 层(后期版本)来对图像进行下采样。
- 颈部:集成了 PANet(路径聚合网络)用于特征融合。
- 检测头:耦合的检测头结构,其中分类和定位任务在最终输出层之前共享特征。
YOLOv8:无锚点创新者
YOLOv8 引入了无锚点检测头,消除了手动锚框定义的需要。这简化了训练流程,并提高了对具有不同形状和长宽比的物体的性能。
- C2f 模块:取代了 YOLOv5 中的 C3 模块。C2f(带两个卷积的跨阶段部分瓶颈)模块旨在改善梯度流和特征提取能力,同时保持轻量级。
- 解耦头:与YOLOv5不同,YOLOv8 将目标性、分类和回归任务分离到不同的分支中。这使得每个分支能够专注于其特定任务,从而实现更高的精度和更快的收敛。
- 损失函数: YOLOv8采用任务对齐分配器和分布焦点损失,进一步优化了训练期间正负样本的处理方式。
YOLO11:最新一代
虽然YOLOv8比YOLOv5提供了显著改进,但Ultralytics仍在不断创新。最近发布的YOLO11提供了更高的效率和准确性。对于新项目,强烈建议探索YOLO11,以确保您的应用程序受益于最新的架构进展。
性能分析
在比较性能时,同时关注精度 (mAP) 和推理速度至关重要。下表显示,与相似尺寸的 YOLOv5 模型相比,YOLOv8 在 COCO 数据集上始终实现更高的 平均精度 (mAP),并且通常具有可比或更优的推理速度。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
主要内容
- 精度飞跃: 与 YOLOv5n (28.0) 相比,YOLOv8n (Nano) 在 mAP (37.3) 方面实现了巨大的飞跃,使得最小的 v8 模型几乎与较大的 YOLOv5s 一样准确。
- 计算效率:尽管 YOLOv8 模型在某些变体中 FLOPs 略高,但这种权衡带来了不成比例的更高精度,从而提供了更好的计算投资回报。
- 推理速度:YOLOv5仍然极快,尤其是在较旧的硬件或纯基于CPU的边缘设备上。然而,YOLOv8针对现代GPU和TensorRT等加速器进行了优化,显著缩小了速度差距。
Ultralytics YOLOv8:多任务强力引擎
作者: Glenn Jocher, Ayush Chaurasia, and Jing Qiu
机构:Ultralytics
日期: 2023-01-10
文档:https://docs.ultralytics.com/models/yolov8/
GitHub:https://github.com/ultralytics/ultralytics
YOLOv8 旨在成为计算机视觉领域的多功能一体化解决方案。它原生支持除简单目标检测之外的广泛任务,包括 实例分割、姿势估计、分类 以及 旋转框检测 (OBB)。
优势
- 领先的准确性:在 COCO 和 Roboflow 100 等标准基准测试中提供卓越的 detect 性能。
- 统一框架: 基于
ultralyticsPython 包,确保了无缝的训练体验, 验证,以及部署。 - 开发者友好:API 非常直观。在任务之间切换(例如,从 detect 到 segmentation)通常只需在 CLI 或 python 代码中更改一个参数。
- 训练效率:诸如“智能”数据集增强和自动超参数调优等功能,简化了从数据到部署模型的路径。
弱点
- 资源使用:与v5前身相比,较大的变体(L和X)在训练期间可能更耗费资源,需要在GPU上占用更多显存。
Ultralytics YOLOv5:经典标准
作者:Glenn JocherGlenn Jocher
组织:Ultralytics
日期:2020-06-26
文档yolov5
GitHubyolov5
YOLOv5 彻底改变了 AI 的可访问性。通过利用PyTorch,它使深度学习经验有限的开发者也能训练自定义目标检测器。其生态系统庞大,拥有数千个教程、集成和实际部署案例。
优势
- 经验证的稳定性:YOLOv5 在生产环境中多年的积极使用,使其成为目前最稳定和可靠的视觉模型之一。
- 广泛部署支持:对包括 ONNX、CoreML 和 TFLite 在内的导出格式的广泛支持,使其成为从手机到 Raspberry Pi 等各种硬件目标的理想选择。
- 社区生态系统:庞大的社区确保了几乎所有边缘情况或错误的解决方案都可以在论坛和GitHub 问题中轻松找到。
弱点
- 较低的精度上限:作为2020年的模型,其精度指标落后于v8和YOLO11等较新的架构。
- 锚框管理: 需要锚框计算,这对于具有独特或高度可变数据集的用户来说可能是一个摩擦点。
代码集成与易用性
Ultralytics模型的一个显著特点是其共享的、流线型API。无论您选择YOLOv8以获得其精度,还是选择YOLOv5以获得其旧版支持, ultralytics 包统一了工作流程。这显著降低了入门门槛,并便于轻松进行实验。
您只需几行Python代码即可进行训练、验证和预测。
from ultralytics import YOLO
# Load a YOLOv8 model (recommended for new projects)
model_v8 = YOLO("yolov8n.pt")
# Train the model on the COCO8 dataset
results_v8 = model_v8.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
model_v8.predict("https://ultralytics.com/images/bus.jpg", save=True)
# Load a YOLOv5 model (automatically handled by the same package)
model_v5 = YOLO("yolov5su.pt") # 'u' suffix indicates updated v5 model structure
# The same API works for training and inference
results_v5 = model_v5.train(data="coco8.yaml", epochs=100, imgsz=640)
统一生态系统优势
通过使用统一的 Ultralytics 生态系统,您可以访问强大的工具,例如 Ultralytics HUB,用于无代码模型训练和可视化。该平台简化了数据集管理和协作,使团队能够专注于解决问题,而不是管理基础设施。
用例推荐
选择 YOLOv8 还是 YOLOv5 取决于您的具体项目需求、硬件限制和开发目标。
何时选择 YOLOv8
- 新项目:如果您从头开始,YOLOv8(或更新的YOLO11)无疑是最佳选择。其卓越的精度确保您的应用程序保持竞争力和鲁棒性。
- 复杂任务:对于需要姿势估计或segment的应用,YOLOv8的原生多任务支持不可或缺。
- 高精度需求:在医学影像或缺陷检测等领域,YOLOv8 改进的 mAP 可以显著减少假阴性。
何时选择 YOLOv5
- 传统维护:如果您有一个现有且运行良好的基于 YOLOv5 的生产管道,迁移可能不是立即必要的。
- 极端边缘约束:对于功耗极低的设备,其中每一毫秒的延迟都至关重要且精度是次要的,更轻量级的YOLOv5 Nano变体在特定旧款CPU上的原始吞吐量方面可能仍略占优势。
- 教程兼容性:如果您正在遵循一个特定且严重依赖原始 YOLOv5 仓库结构的传统教程或课程。
结论
YOLOv5 和 YOLOv8 都体现了 Ultralytics 致力于使 AI 易于访问、快速且准确的承诺。YOLOv5 普及了目标 detect,建立了庞大的社区并树立了可用性标准。YOLOv8 在此基础上,引入了架构创新,提供了最先进的性能和通用性。
对于绝大多数用户而言,YOLOv8——或更先进的YOLO11——是推荐的选择。它提供了速度和精度的最佳平衡,并由一个现代化、功能丰富的软件生态系统支持,该生态系统简化了整个机器学习生命周期。
要进一步探索,请查阅我们的指南,获取详细的部署说明,或访问Ultralytics GitHub,为视觉 AI 的未来做出贡献。