Link to this sectionYOLOv8 与 YOLOv5#
选择正确的计算机视觉架构是构建稳健机器学习流水线的关键一步。在这篇详细的技术比较中,我们将探讨视觉 AI 生态系统中最受欢迎的两个模型:YOLOv8 和 YOLOv5。这两个模型均由 Ultralytics 开发,显著塑造了实时 目标检测 的格局,并为速度、准确性和易用性设定了行业标准。
无论你是在部署到边缘设备还是在扩展云推理,了解这些模型的架构转换、性能指标和训练方法,都将帮助你为你的 计算机视觉 项目做出明智的决策。
Link to this sectionUltralytics YOLOv8:多功能标准#
YOLOv8 发布于 2023 年初,代表了与其前身相比的一次重大架构转变。它从零开始设计,旨在作为一个统一的框架,能够原生处理多种视觉任务,包括 实例分割、图像分类和 姿态估计。
- 作者: Glenn Jocher, Ayush Chaurasia, and Jing Qiu
- 组织: Ultralytics
- 日期: 2023-01-10
- GitHub: ultralytics/ultralytics
- 文档: YOLOv8 文档
Link to this section架构与方法#
YOLOv8 引入了 无锚点(anchor-free) 检测头,无需根据数据集分布手动配置锚框,从而简化了训练过程。这使得模型在泛化到自定义数据集时更加稳健,并减少了框预测的数量,加快了 非极大值抑制(NMS) 的速度。
该架构采用了 C2f 模块(带有两个卷积的跨阶段局部瓶颈结构),取代了 YOLOv5 中的 C3 模块。C2f 模块改善了梯度流,使模型能够在不大幅增加计算成本的情况下学习更丰富的特征表示。此外,YOLOv8 利用了 解耦头 结构,将目标性、分类和回归任务分离,这已被证明可以提高收敛速度和准确性。
包括 YOLOv8 在内的 Ultralytics YOLO 模型,相比许多基于 Transformer 的替代方案(如 RT-DETR),在训练期间针对较低的 CUDA 内存使用进行了优化。这使得开发者能够在 NVIDIA RTX 系列等标准消费级 GPU 上使用更大的批处理大小。
Link to this section优势与不足#
优势:
- 在简单边界框检测之外,具备跨多种任务的无与伦比的多功能性。
- 通过
ultralytics包实现简化的 Python API,使训练和导出变得高度直观。 - 与 YOLOv5 相比,所有尺寸变体在 平均精度均值(mAP) 上均更高。
劣势:
- 与完全对应的 YOLOv5 版本相比,解耦头和 C2f 模块在某些变体中引入了参数量和 FLOPs 的轻微增加。
Link to this sectionUltralytics YOLOv5:敏捷的先驱#
YOLOv5 于 2020 年推出,将 YOLO 带入了 PyTorch 生态系统,极大地提高了开发者的易用性。它很快成为了快速、可靠且易于部署的目标检测模型的行业标准。
- 作者: Glenn Jocher
- 组织: Ultralytics
- 日期: 2020-06-26
- GitHub: ultralytics/yolov5
- 文档: YOLOv5 文档
Link to this section架构与方法#
YOLOv5 依赖于 基于锚点(anchor-based) 的架构,并利用了修改后的 CSPDarknet53 主干网络。虽然基于锚点的方法在训练前需要仔细聚类数据集边界框以定义最佳锚点,但它们对于特定的、定义明确的数据集非常有效。
YOLOv5 集成了 C3 模块,该模块在保持低参数占用空间的同时高效提取特征。其损失函数严重依赖目标性损失(Objectness loss),并结合分类和边界框回归损失来引导网络实现准确预测。
Link to this section优势与不足#
优势:
- 极其轻量化,使得 Nano (YOLOv5n) 和 Small (YOLOv5s) 变体非常适合资源受限的 边缘 AI 部署。
- 出色的推理速度,特别是在 CPU 上。
- 一个根深蒂固的生态系统,拥有丰富的社区教程和第三方集成。
劣势:
- 需要进行锚框配置,这可能会使针对高度多样化或自定义数据集的设置变得复杂。
- 与 YOLOv8 和 YOLO26 等现代无锚点架构相比,整体准确率(mAP)较低。
Link to this section性能比较#
在评估这些模型时,在速度和准确性之间取得良好的平衡至关重要。下表概述了在 COCO 数据集 上评估的两种架构的性能指标。CPU 速度使用 ONNX 测量,而 GPU 速度则使用 TensorRT 进行测试。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | 参数量 (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 |
虽然 YOLOv5 在其 Nano 变体的参数量和绝对原始速度上保持微弱优势,但 YOLOv8 在 mAP 方面实现了全面的大幅跨越,为高要求的现实部署场景提供了更强的性能平衡。
Link to this section易用性与 Ultralytics 生态系统#
现代 Ultralytics 模型的一个定义特征是围绕它们的维护良好的生态系统。从 YOLOv5 到 YOLOv8 的过渡带来了统一的 ultralytics pip 包,创造了高度精简的用户体验。
开发者只需几行 Python 代码即可无缝处理 模型训练、验证、预测和导出,绕过了深度学习项目中历史上所需的复杂样板脚本。
from ultralytics import YOLO
# Load a pretrained YOLOv8 model
model = YOLO("yolov8n.pt")
# Train the model on custom data efficiently
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=0)
# Export the model to ONNX for production deployment
path = model.export(format="onnx")此外,与 Ultralytics Platform 等工具的集成简化了数据集管理、云训练和部署,确保了活跃的开发和强大的社区支持。
Link to this section理想使用场景#
何时选择 YOLOv5: 如果你正在维护遗留系统,在 Raspberry Pi 等严重受限的 CPU 上运行推理,或者从事一个节省每一兆字节模型大小都至关重要的项目,YOLOv5 仍然是一个可靠的主力。
何时选择 YOLOv8: 对于从今天开始的几乎所有新项目,强烈建议使用 YOLOv8 而非 YOLOv5。其先进的架构可以轻松处理复杂的追踪、旋转边界框 (OBB) 和分割任务。它是现代应用的理想选择,涵盖从自主机器人到医学图像分析和智慧城市基础设施等领域。
虽然 YOLOv8 功能极其强大,但追求极致性能的开发者应考虑 YOLO26。它于 2026 年发布,引入了多项突破性进展:
- 端到端无需 NMS 的设计: 取消了 NMS 后处理,实现更快、更简单的部署,这一概念最早在 YOLOv10 中开创。
- MuSGD 优化器: SGD 和 Muon 的混合体,将 LLM 训练创新引入计算机视觉,实现了更稳定的训练和更快的收敛。
- CPU 推理速度提升高达 43%: 针对没有专用 GPU 的边缘计算环境进行了深度优化。
- 移除 DFL: 移除了分布焦点损失 (Distribution Focal Loss),以简化导出并增强边缘设备的兼容性。
- ProgLoss + STAL: 先进的损失函数,显著改善了小目标识别,这对航空影像和物联网至关重要。
通过利用 Ultralytics 提供的全面文档和工具,你可以轻松部署 YOLOv8,或探索尖端的 YOLO26,以无与伦比的速度和准确性解决复杂的视觉挑战。如需进一步学习,请考虑查看我们关于 超参数调优 和 模型部署实践 的指南。