YOLOv7 与 YOLOv8 对比#
计算机视觉迅速发展,为开发者和研究人员带来了许多功能强大的工具。为目标检测流程选择架构时,比较成熟模型至关重要。本指南将探讨两个有影响力的模型——YOLOv7 和 Ultralytics YOLOv8——的架构、性能指标和理想用例。
架构简介#
这两个模型都显著提升了性能,但在优化深度神经网络时采用了不同的设计方法。
YOLOv7:免费赠品组合的先驱#
YOLOv7 于 2022 年年中推出,重点优化了架构中的梯度路径,并采用“可训练的免费技巧包”理念,力求突破高端硬件上的实时检测极限。
- 作者: Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao
- 机构: 台湾中央研究院资讯科学研究所
- 日期: 2022-07-06
- arXiv: 2207.02696
- GitHub: WongKinYiu/yolov7
- 文档: Ultralytics YOLOv7 文档
架构亮点: YOLOv7 主要采用基于锚框的检测头(也试验过无锚框分支),并引入扩展高效层聚合网络(E-ELAN)。这种设计在不破坏原始梯度路径的情况下提升了网络的学习能力。它在服务器级 GPU 上表现出色,适合高负载视频分析。
优势与不足: YOLOv7 在专用硬件上延迟较低,但其工具链集成度较低。训练需要克隆代码库、手动管理 PyTorch 依赖项,并传入大量命令行参数。在消费级硬件上训练也可能需要大量内存。
Ultralytics YOLOv8:多功能标准模型#
YOLOv8 于 2023 年初发布,将出色的准确率与统一、适用于生产环境的训练、验证和部署框架结合起来。
- 作者: Glenn Jocher、Ayush Chaurasia 和 Jing Qiu
- 组织: Ultralytics
- 日期: 2023-01-10
- GitHub: ultralytics/ultralytics
- 平台:Ultralytics YOLOv8
架构亮点: YOLOv8 引入了原生无锚框检测头,无需根据 MS COCO 数据集或自定义数据分布手动配置锚框。它采用 C2f 模块改善梯度流,并使用解耦检测头结构分离分类和回归任务,从而加快收敛并提升准确率。
优势与不足: YOLOv8 内存效率高:与 YOLOv7 或更庞大的 Transformer 模型相比,它在训练期间通常需要更少的 CUDA 内存,因此可以使用更大的批量大小。它最大的优势是多功能性,原生支持实例分割、图像分类、姿态估计和有向边界框(OBB)。主要不足是,围绕 YOLOv7 输出张量构建的旧版流程可能需要重构。
Ultralytics YOLOv8 属于持续维护的生态系统。与独立研究代码库相比,它的 Python API、定期发布和社区支持缩短了从本地测试到生产部署的路径。
详细性能对比#
下表细分了不同关键模型尺寸的性能指标。YOLOv8 覆盖了广泛的速度与准确率权衡范围,从适用于边缘设备的紧凑型模型,到本次比较中准确率最高的大型模型。
| 模型 | 尺寸 (像素) | mAP验证集 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (ms) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| 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 |
注意:在这一组模型中,YOLOv8x 的 mAP 最高,而 YOLOv8n 的参数量最少、推理速度最快,因此非常适合在边缘 AI 设备上部署计算机视觉。
易用性与训练效率#
Ultralytics YOLOv8 注重易用性。YOLOv7 等旧架构需要克隆特定代码库,并运行冗长的命令行脚本来配置数据集和路径。
相比之下,YOLOv8 的 ultralytics 包提供了精简的工作流程,支持自动下载数据集、直接使用预训练权重,并内置了对 ONNX 和 TensorRT 等格式的导出支持。
下面的示例使用 Ultralytics Python API 加载模型、训练模型并运行推理:
from ultralytics import YOLO
# 加载预训练的 YOLOv8 nano 模型
model = YOLO("yolov8n.pt")
# 在 COCO8 数据集上高效训练模型
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# 在测试图像上快速运行推理
predictions = model("https://ultralytics.com/images/bus.jpg")
# 显示预测结果
predictions[0].show()YOLOv8 可集成 Weights & Biases 和 ClearML 等常用 MLOps 工具,让你实时监控超参数调优和训练指标。
理想应用场景#
选择这两种架构中的哪一种,通常取决于部署环境的具体限制。
何时选择 YOLOv7#
- 遗留基准测试:适合需要固定基线来对照 2022 年架构标准的研究人员。
- 现有的大型基础设施: 基于 NVIDIA V100 或 A100 GPU 构建、且 YOLOv7 输出张量已嵌入旧版 C++ 流程的环境。
何时选择 YOLOv8#
- 跨平台生产部署: 适合需要在云端 GPU、移动设备和浏览器上部署的团队。
- 多任务需求: 如果你的项目除了边界框之外,还需要实例分割掩码或姿态关键点。
- 资源受限的边缘环境: YOLOv8 Nano(
yolov8n)在准确率与速度之间实现了良好平衡,适用于机器人、无人机和 IoT 设备。
展望未来:迈向 YOLO26 的代际飞跃#
YOLOv8 仍是可靠的选择,但新项目也可以使用较新的 Ultralytics 模型:YOLO11 和当前推荐模型 YOLO26。
YOLO26 于 2026 年 1 月发布,专为在边缘设备上高效部署而设计:
- 端到端无 NMS 设计: YOLO26 支持原生端到端推理,通过可选的一对一检测头(
nms=False)跳过非极大值抑制(NMS)后处理。这简化了部署流程,并消除了单独执行 NMS 步骤带来的延迟。 - 移除 DFL: 移除 Distribution Focal Loss 可简化检测头,拓宽模型部署选项,并提高边缘设备兼容性。
- CPU 推理速度最高提升 43%: YOLO26n 在 CPU 上进行 ONNX 推理时,速度最高比 YOLO11n 快 43%,适用于 Raspberry Pi 等资源受限设备和其他嵌入式系统。
- MuSGD 优化器: YOLO26 借鉴大语言模型(LLM)训练的经验,融合 SGD 和 Muon,带来更稳定的训练和更快的收敛速度。
- ProgLoss + STAL: 渐进式损失和小目标感知标签分配(STAL)可改善小目标检测,这对航空图像、农业和机器人领域尤为重要。
无论你是在大型视频分析集群上部署 YOLOv8,还是在小型边缘设备上部署 YOLO26,Ultralytics Platform 都能提供覆盖整个 AI 生命周期的数据标注、模型训练和部署工具。