YOLOv8 与 YOLOv5#
选择合适的计算机视觉架构,是构建可靠机器学习流水线的关键一步。在这篇详细的技术对比中,我们将探讨视觉 AI 生态系统中两种最受欢迎模型的差异:YOLOv8 和 YOLOv5。这两种模型均由 Ultralytics 开发,并深刻影响了实时目标检测领域,为速度、准确率和易用性树立了行业标准。
无论你要将模型部署到边缘设备,还是扩展云端推理规模,了解这些模型的架构变化、性能指标和训练方法,都有助于你为自己的计算机视觉项目做出明智的选择。
Ultralytics YOLOv8:多功能标准模型#
YOLOv8 于 2023 年初发布,相较于前代模型实现了重大的架构转变。它从设计之初就是一个统一框架,能够原生处理多种视觉任务,包括实例分割、图像分类和姿态估计。
- 作者: Glenn Jocher、Ayush Chaurasia 和 Jing Qiu
- 组织: Ultralytics
- 日期: 2023-01-10
- GitHub: ultralytics/ultralytics
- 文档: YOLOv8 文档
架构与方法#
YOLOv8 引入了无锚框检测头,通过免去根据数据集分布手动配置锚框,简化了训练过程。这让模型在泛化到自定义数据集时更加稳健,并减少了边界框预测数量,从而加快非极大值抑制 (NMS)的处理速度。
该架构采用 C2f 模块(带两个卷积层的跨阶段局部瓶颈结构),取代了 YOLOv5 中的 C3 模块。C2f 模块改善了梯度流,使模型能够学习更丰富的特征表示,同时不会显著增加计算成本。此外,YOLOv8 采用解耦头结构,将分类和回归任务分开;这种做法已被证明能够提升收敛速度和准确率。
与许多基于 Transformer 的替代方案(如 RT-DETR)相比,Ultralytics YOLO 模型(包括 YOLOv8)针对训练期间降低 CUDA 显存占用进行了优化。因此,开发者可以在 NVIDIA RTX 系列等标准消费级 GPU 上使用更大的批次大小。
优势与劣势#
优势:
- 除了简单的边界框检测之外,还能以无与伦比的灵活性处理多种任务。
- 通过
ultralytics软件包提供精简的 Python API,让训练和导出过程直观易用。 - 与 YOLOv5 相比,所有尺寸变体的平均精度均值 (mAP)都更高。
不足:
- 与对应的 YOLOv5 型号相比,解耦头和 C2f 模块使较小变体的参数量和 FLOPs 有所增加。
Ultralytics YOLOv5:灵活敏捷的先行者#
YOLOv5 于 2020 年推出,将 YOLO 带入了 PyTorch 生态系统,大幅提升了开发者的使用便利性。它很快成为快速、可靠且易于部署的目标检测模型的行业标准。
- 作者: Glenn Jocher
- 组织: Ultralytics
- 日期: 2020-06-26
- GitHub: ultralytics/yolov5
- 文档: YOLOv5 文档
架构与方法#
YOLOv5 采用基于锚框的架构,并使用经过修改的 CSPDarknet53 主干网络。基于锚框的方法需要在训练前对数据集边界框进行仔细聚类,以确定最佳锚框,但对于定义明确的特定数据集,这类方法非常有效。
YOLOv5 采用 C3 模块,能以较少的参数高效提取特征。其损失函数主要依靠目标性损失,并结合分类损失和边界框回归损失,引导网络做出准确预测。
优势与劣势#
优势:
- 模型极为轻量,Nano(YOLOv5n)和 Small(YOLOv5s)变体非常适合部署到资源受限的边缘 AI设备上。
- 推理速度极快,尤其是在 CPU 上。
- 生态系统成熟,拥有大量社区教程和第三方集成。
不足:
- 需要配置锚框,这可能会让高度多样化或自定义数据集的设置变得复杂。
- 与 YOLOv8 和 YOLO26 等现代无锚框架构相比,整体准确率 (mAP) 较低。
性能对比#
评估这些模型时,在速度和准确率之间取得良好权衡至关重要。下表列出了这两种架构在 COCO 数据集上的性能指标。CPU 速度使用 ONNX 测量,GPU 速度则使用 TensorRT 测试。
| 模型 | 尺寸 (像素) | mAP验证集 50-95 | 速度 CPU ONNX (毫秒) | 速度 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.1 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
YOLOv5 的 Nano 变体在参数量和绝对原始速度方面仍占优势,但 YOLOv8 的 mAP 全面大幅提升,在要求严苛的真实世界部署场景中实现了更出色的性能平衡。
易用性与 Ultralytics 生态系统#
现代 Ultralytics 模型的一个显著特点是其背后维护完善的生态系统。从 YOLOv5 转向 YOLOv8 时,推出了统一的 ultralytics pip 软件包,带来高度精简的用户体验。
开发者只需编写几行 Python 代码,就能轻松完成模型训练、验证、预测和导出,无需再编写深度学习项目中以往常见的复杂样板脚本。
from ultralytics import YOLO
# 加载预训练的 YOLOv8 模型
model = YOLO("yolov8n.pt")
# 在自定义数据上高效训练模型
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=0)
# 将模型导出为 ONNX,以便用于生产部署
path = model.export(format="onnx")此外,与 Ultralytics Platform 等工具集成后,数据集管理、云端训练和部署都会更加简便,并能确保持续开发和强大的社区支持。
理想应用场景#
何时选择 YOLOv5: 如果你正在维护旧系统、需要在 Raspberry Pi 等资源极其有限的 CPU 上运行推理,或者项目要求尽可能节省模型文件的每一兆字节,那么 YOLOv5 仍然是一款可靠的主力模型。
何时选择 YOLOv8: 对于如今启动的几乎所有新项目,我们都强烈建议选择 YOLOv8,而不是 YOLOv5。其先进架构能够轻松处理复杂跟踪、有向边界框 (OBB)和分割任务。它非常适合现代应用,涵盖从自主机器人到医学图像分析和智慧城市基础设施等领域。
YOLOv8 的能力非常出色,但如果你追求极致性能前沿,不妨考虑YOLO26。它于 2026 年发布,并带来了多项突破性进展:
- 端到端无 NMS 设计:可选的一对一检测头(
nms=False)无需进行 NMS 后处理,让部署更快、更简单。这一理念最早由 YOLOv10 开创。 - MuSGD 优化器:结合 SGD 和 Muon 的混合优化器,将 LLM 训练创新引入计算机视觉,实现更稳定的训练和更快的收敛。
- CPU 推理速度最高提升 43%:针对没有专用 GPU 的边缘计算环境进行了深度优化。
- 移除 DFL:移除了 Distribution Focal Loss,简化导出流程,并增强了对边缘设备的兼容性。
- ProgLoss + STAL:渐进式损失和小目标感知标签分配显著提升了小目标识别能力,这对航空影像和 IoT 至关重要。
利用 Ultralytics 提供的全面文档和工具,你可以轻松部署 YOLOv8,或探索前沿的 YOLO26,以前所未有的速度和准确率解决复杂的视觉问题。想进一步学习,可以查看我们的超参数调优和模型部署实践指南。