YOLOv8 与YOLOv5:实时物体检测的演变
在快节奏的计算机视觉领域,很少有名字能像YOLO (你只需看一眼)那样引起强烈反响。由 Ultralytics开发,YOLOv5 和YOLOv8 都代表了物体检测历史上的关键时刻。YOLOv5 于 2020 年发布,在易用性和速度方面树立了行业标准,而YOLOv8 则于 2023 年推出,进一步推动了准确性和架构灵活性的发展。
这篇综合比较探讨了这两种强大模型的技术差异、架构演变和性能指标。无论您是在维护传统系统还是在构建尖端的人工智能解决方案,了解这些版本之间的细微差别对于做出明智的部署决策都至关重要。
建筑演变
从YOLOv5 到YOLOv8 标志着设计理念的重大转变,从基于锚的既定方法转变为现代的无锚方法。这一演变解决了模型训练和泛化过程中的常见挑战。
YOLOv5:锚式标准
YOLOv5 采用基于锚点的检测方案。这意味着模型会根据特定数据集,从预定义的 "锚点框 "中预测偏移量。虽然这种方法非常有效,但通常需要为自定义数据集计算最佳锚点尺寸,这一过程被称为 "自动锚点"。
- 主干网使用带有 Focus 层(早期版本)或 stem 层(后期版本)的 CSPDarknet53 主干网对图像进行降采样。
- 颈部采用 PANet(路径聚合网络)进行特征融合。
- 头部:耦合头部结构,分类和定位任务共享特征,直至最终输出层。
YOLOv8:无锚创新者
YOLOv8 引入了无锚点检测头,无需手动定义锚点框。这简化了训练管道,并提高了对具有不同形状和长宽比的物体的性能。
- C2f 模块:取代YOLOv5 中的 C3 模块。C2f(带两次卷积的跨阶段部分瓶颈)模块旨在提高梯度流和特征提取能力,同时保持轻量级的占用空间。
- 解耦头部:与YOLOv5 不同,YOLOv8 将对象性、分类和回归任务分离成不同的分支。这使得每个分支都能专注于各自的特定任务,从而提高准确率并加快收敛速度。
- 损失函数: YOLOv8 采用了任务对齐分配器和分布焦点损失,进一步完善了在训练过程中处理正负样本的方式。
YOLO11:最新一代
与YOLOv5 相比,YOLOv5 有了重大改进,同时Ultralytics 还在不断创新。最近发布的 YOLO11提供了更高的效率和准确性。对于新项目,强烈建议探索YOLO11 ,以确保您的应用受益于最新的架构进步。
性能分析
在比较性能时,必须同时考虑精确度mAP)和推理速度。下表显示,与YOLOv5 相比,YOLOv5 在COCO 数据集上始终获得更高的平均精确度(mAP),而YOLOv5 推理速度通常与之相当或更好。
| 模型 | 尺寸 (像素) | 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 |
主要内容
- 精确度飞跃:与YOLOv8n (28.0)相比,YOLOv8n (Nano)的mAP (37.3)实现了大幅飞跃,使最小的 v8 型号几乎与较大的 YOLOv5 一样精确。
- 计算效率:虽然YOLOv8 模型某些变体的 FLOPs 略高,但折衷后的精度却高得不成比例,计算投资回报率更高。
- 推理速度: YOLOv5 速度仍然非常快,尤其是在较旧的硬件或纯CPU 边缘设备上。不过,YOLOv8 已针对现代 GPU 和加速器(如 TensorRT等现代 GPU 和加速器进行了优化,大大缩小了速度差距。
Ultralytics YOLOv8:多任务处理器
作者:Glenn Jocher、Ayush Chaurasia 和 Jing QiuGlenn Jocher、Ayush Chaurasia 和 Jing Qiu
组织机构:Ultralytics
日期:2023-01-10
文档yolov8
GitHubultralytics
YOLOv8 是专为计算机视觉设计的多功能一体化解决方案。除简单的物体检测外,它还支持多种任务,包括实例分割、姿势估计 、分类和定向边界框(旋转框检测)检测。
优势
- 最先进的准确性:在COCO 和Roboflow 100 等标准基准中提供卓越的检测性能。
- 统一框架: 建立在
ultralyticsPython 软件包,确保为培训提供无缝体验、 验证和部署。 - 对开发人员友好:API 非常直观。任务之间的切换(例如,从检测到分割)通常只需要更改CLI 或Python 代码中的一个参数。
- 训练效率:智能 "数据集扩充和自动超参数调整等功能简化了从数据到部署模型的过程。
弱点
- 资源使用:与前代 v5 版本相比,较大的变体(L 和 X)在训练过程中可能更耗费资源,需要GPU 上更多的 VRAM。
Ultralytics YOLOv5:传统标准
作者:Glenn JocherGlenn Jocher
组织:Ultralytics
日期:2020-06-26
文档yolov5
GitHubyolov5
YOLOv5 彻底改变了人工智能的可及性。通过利用 PyTorch,让深度学习经验有限的开发人员也能训练自定义对象检测器。它的生态系统非常庞大,拥有成千上万的教程、集成和实际部署。
优势
- 经过验证的稳定性:多年来在生产环境中的积极使用使YOLOv5 成为最稳定、最可靠的视觉模型之一。
- 广泛的部署支持:广泛支持导出格式,包括 ONNX、CoreML 和TFLite 等导出格式,使其成为从手机到Raspberry Pi 等各种硬件目标的理想选择。
- 社区生态系统:庞大的社区可确保在论坛和GitHub 问题中随时提供几乎所有边缘情况或错误的解决方案。
弱点
- 精度上限较低:作为 2020 年的模型,其准确度指标落后于较新的架构,如 v8 和 YOLO11.
- 锚点管理:需要计算锚点框,这可能会成为拥有独特或高度可变数据集的用户的一个障碍。
代码集成和易用性
Ultralytics 模型的标志之一是共享、精简的应用程序接口。无论您是为了YOLOv8 的准确性而选择它,还是为了YOLOv5 的传统支持而选择它,Ultralytics 的应用程序接口都能满足您的需求。 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)是当之无愧的赢家。其卓越的准确性可确保您的应用程序保持竞争力和稳健性。
- 复杂任务:对于需要姿势估计 或分割 姿势估计 应用程序,YOLOv8 的本地多任务支持是不可或缺的。
- 高精度需求:在医学成像或缺陷检测等领域,YOLOv8 改进的mAP 可以显著减少假阴性。
何时选择YOLOv5
- 传统维护:如果您有一个围绕YOLOv5 构建的现有生产流水线,并且运行良好,则可能不需要立即迁移。
- 极端边缘限制:对于每毫秒延迟都很重要且精度是次要因素的极低功耗设备,较轻的YOLOv5 Nano 变体在特定老式 CPU 的原始吞吐量方面可能仍略胜一筹。
- 教程兼容性:如果您正在学习严重依赖原始YOLOv5 资源库结构的特定传统教程或课程。
结论
YOLOv5 和YOLOv8 都体现了Ultralytics 致力于让人工智能变得易用、快速和准确的承诺。 YOLOv5实现了物体检测的民主化,建立了一个庞大的社区,并为可用性设定了标准。 YOLOv8在此基础上进行了架构创新,提供了最先进的性能和多功能性。
对于绝大多数用户来说 YOLOv8-或更高级的 YOLO11-是推荐的选择。它在速度和准确性之间实现了最佳平衡,并以功能丰富的现代软件生态系统为后盾,简化了整个机器学习生命周期。
要进一步探索,请查看我们的指南,了解详细的部署说明,或访问Ultralytics GitHub,为视觉人工智能的未来献计献策。