YOLOv7 与 YOLOv5#
构建现代计算机视觉流程时,选择合适的目标检测架构对于平衡准确率、推理速度和资源利用率至关重要。本次比较将探讨计算机视觉领域两个有影响力的模型:YOLOv7 和 Ultralytics YOLOv5。
本指南通过分析它们的架构差异、性能指标和理想部署场景,帮助开发者和研究人员根据具体需求选择最佳模型。
模型背景与起源#
了解这些模型的起源,有助于理解它们的设计理念和目标用例。
YOLOv5#
YOLOv5 于 2020 年 6 月 26 日由 Glenn Jocher 和 Ultralytics 团队发布,提供了原生 PyTorch 实现,在不牺牲性能的前提下优先保证易用性。凭借精简的生态系统和可靠的训练动态,它迅速成为行业标准。 你可以在 YOLOv5 GitHub 代码库中查看源代码,也可以通过 Ultralytics Platform 直接使用模型。
YOLOv7#
2022 年 7 月 6 日,来自台湾中央研究院信息科学研究所的 Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao 推出了 YOLOv7。YOLOv7 着重于架构创新,例如扩展高效层聚合网络(E-ELAN)和可训练的“免费赠品包”,以推动准确率达到新的最先进水平。 详情请参阅他们的官方 arXiv 论文和YOLOv7 GitHub 仓库。如需使用 Ultralytics 运行导出的 YOLOv7 模型,请参阅 Ultralytics YOLOv7 文档。
YOLOv5 已完全集成到 Ultralytics Python 包中。YOLOv7 不受原生训练或 PyTorch 推理支持,但可以使用 Ultralytics 运行导出为 ONNX 或 TensorRT 的上游 YOLOv7 检查点,具体说明见 YOLOv7 文档。
架构创新#
Ultralytics YOLOv5 设计#
YOLOv5 使用经过修改的 CSPDarknet53 主干网络,并搭配路径聚合网络(PANet)颈部。这种设计针对快速特征提取和内存效率进行了高度优化。与旧架构或大型 Transformer 模型不同,YOLOv5 在训练时所需的 CUDA 内存明显更少,因此在标准消费级 GPU 上可以使用更大的批量大小。除了标准边界框外,YOLOv5 代码库还增加了实例分割(v7.0)和图像分类(v6.2)功能。
YOLOv7 设计#
YOLOv7 引入了多种结构重参数化技术和 E-ELAN 架构,使网络能够学习更多样的特征,同时保留原始梯度路径。它还在训练期间实现了用于中间监督的辅助头。尽管这些进展带来了较高的平均精度均值(mAP),但它们往往会引入复杂的张量结构,与 Ultralytics 模型原生支持的精简导出相比,这可能会让导出到 ONNX 或 TensorRT 等边缘格式变得稍具挑战性。
性能分析#
比较这些模型时,开发者必须在 mAPval、推理速度和计算复杂度(FLOPs)之间权衡。下表展示了两种架构在 COCO 数据集上的评估结果。
| 模型 | 尺寸 (像素) | 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 |
| 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 |
要点总结#
- 准确率上限: YOLOv7x 的总体准确率最高,达到 53.1 mAPval,因此在检测性能最大化是首要目标的场景中极具竞争力。
- 速度与效率: Ultralytics YOLOv5n 效率很高,在 T4 TensorRT 上的推理延迟仅为 1.12 ms,参数量也只有 1.9M。因此,它非常适合资源高度受限的边缘部署。
- 性能平衡: YOLOv5 系列提供多种模型尺寸。YOLOv5l 是一个不错的折中选择,准确率略低于 YOLOv7l,但部署流程非常成熟。
Ultralytics 生态系统的优势#
模型架构只占整体的一半;围绕模型构建的生态系统决定了模型在现实应用中的可行性,而 Ultralytics 模型正是基于这一点打造的。
易用性: Ultralytics 提供统一、直观的 Python API。借助全面的官方文档,你只需编写少量样板代码即可训练、验证和部署模型。 维护良好的生态系统: 持续开发带来定期更新、错误修复,并与 Weights & Biases 等现代跟踪工具集成。 训练效率: YOLOv5 采用经过优化的数据加载器和智能缓存来缩短训练时间。此外,可直接使用的预训练权重还能加快不同领域的迁移学习。
代码示例:简化训练流程#
使用 Ultralytics 包时,所有受支持架构的训练启动方式都相同。
from ultralytics import YOLO
# 加载预训练的 YOLOv5 模型
model = YOLO("yolov5su.pt") # YOLOv5u:适用于 ultralytics 软件包的无锚框 YOLOv5 权重
# 使用 COCO8 示例数据集训练模型
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# 将训练好的模型导出为 ONNX 格式,以便部署
success = model.export(format="onnx")理想应用场景#
何时选择 YOLOv7#
- 学术基准测试: 适合需要将新技术与记录详尽的 2022 年基线进行比较的研究人员。
- 高端 GPU 云端处理: 适用于部署在强大的服务器硬件上,且在密集场景中获得最高 mAP 比简化导出流程更重要的情况。
何时选择 YOLOv5#
- 生产部署:适用于需要高稳定性、直接明了的模型部署选项以及广泛跨平台兼容性的商业应用。
- 边缘设备: 较小的变体(YOLOv5n 和 YOLOv5s)可在手机和嵌入式系统上良好运行。
- 多任务需求: 如果你的项目需要使用统一框架,从简单检测扩展到实例分割或分类。
想了解更新的版本?不妨探索 Ultralytics YOLOv8 或 Ultralytics YOLO11,进一步了解无锚框检测和多任务学习能力方面的进展。
新一代模型:Ultralytics YOLO26#
虽然 YOLOv5 和 YOLOv7 在视觉 AI 发展史上占据重要地位,但这一领域仍在不断演进。Ultralytics YOLO26 于 2026 年 1 月发布,是 Ultralytics 的最新模型,在准确率、CPU 速度和部署简便性方面均优于前代产品。
YOLO26 引入了几项重要特性:
- 端到端无 NMS 设计:在 YOLOv10 为 YOLO 模型引入的无 NMS 训练基础上,YOLO26 提供可选的端到端检测头(
nms=False),跳过非极大值抑制(NMS)后处理,从而降低延迟并简化部署逻辑。 - MuSGD 优化器:该混合优化器受 Moonshot AI 的 Kimi K2 启发,将标准 SGD 与 Muon 结合,把 LLM 训练理念引入计算机视觉,从而实现更稳定的训练和更快的收敛。
- 提升 CPU 速度:移除分布焦点损失(DFL)后,YOLO26n 的 CPU 推理速度比 YOLO11n 最高快 43%,因此 YOLO26 非常适合边缘 AI 和低功耗 IoT 设备部署。
- ProgLoss + STAL:渐进式损失和小目标感知标签分配可提升小目标识别能力,这对航空影像分析和精密机器人至关重要。
- 针对特定任务的改进:采用语义分割损失生成掩码,使用残差对数似然估计(RLE)进行姿态估计,并通过专用角度损失解决 有向边界框(OBB) 边界问题。
结论#
YOLOv5 和 YOLOv7 都能为实时目标检测提供可靠方案。YOLOv7 在高算力硬件上具有出色的原始准确率,而 YOLOv5 则以开发者友好的特性、速度与效率之间的良好平衡以及成熟的生态系统脱颖而出。
不过,如果你希望通过速度、简洁性和准确率的最佳组合,让自己的工作流更具前瞻性,推荐迁移到 Ultralytics YOLO26。它保留了 Ultralytics 生态系统的易用性,同时加入了上述架构改进。