YOLOv7 与 YOLOv5#
在构建现代计算机视觉流水线时,选择合适的目标检测架构对于平衡准确率、推理速度和资源利用率至关重要。本篇全面比较将深入探讨计算机视觉领域中两个影响深远的模型:YOLOv7 和 Ultralytics YOLOv5。
通过分析它们在架构、性能指标和理想部署场景方面的差异,我们希望帮助开发者和研究人员根据自身需求选出最佳模型。
模型背景与起源#
了解这些模型的起源,有助于理解它们的设计理念和目标用例。
YOLOv5#
YOLOv5 于 2020 年 6 月 26 日由 Glenn Jocher 和 Ultralytics 团队发布。它采用原生 PyTorch 实现,在不牺牲性能的前提下优先考虑易用性,彻底革新了这一领域。凭借极其精简的生态系统和可靠的训练动态,它很快成为行业标准。 你可以在 YOLOv5 GitHub 代码库中查看源代码,也可以通过 Ultralytics Platform直接使用该模型。
YOLOv7#
YOLOv7 于 2022 年 7 月 6 日由中国台湾中央研究院信息科学研究所的 Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao 推出。YOLOv7 着重于架构创新,例如扩展高效层聚合网络(E-ELAN)和可训练的“免费礼包”,以推动准确率达到新的先进水平。 详情请参阅他们的官方 Arxiv 论文和 YOLOv7 GitHub 代码库。如需无缝集成,请查看 Ultralytics YOLOv7 文档。
YOLOv5 已全面集成到 Ultralytics Python 软件包中。Ultralytics 不原生支持 YOLOv7 训练或 PyTorch 推理,但可以运行上游 YOLOv7 导出为 ONNX 或 TensorRT 格式的检查点,具体说明请参阅 YOLOv7 文档。
架构创新#
Ultralytics YOLOv5 设计#
YOLOv5 使用经过修改的 CSPDarknet53 主干网络,并搭配路径聚合网络(PANet)颈部结构。该设计针对快速特征提取和内存效率进行了高度优化。与较旧的架构或大型 Transformer 模型不同,YOLOv5 在训练期间所需的 CUDA 内存显著更少,因此可在标准消费级 GPU 上使用更大的批次大小。此外,Ultralytics 框架原生支持多种标准边界框以外的任务,包括图像分割和图像分类。
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 月发布,代表了目标检测技术的最前沿,在所有指标上都超越了此前的各代模型。
YOLO26 带来了多项颠覆性功能:
- 端到端无 NMS 设计:YOLO26 延续早期版本开创的理念,提供原生端到端检测头(
nms=False),无需非极大值抑制(NMS)后处理,从而消除延迟瓶颈并大幅简化部署逻辑。 - MuSGD 优化器:该革命性优化器受到 Moonshot AI 的 Kimi K2 启发,将标准 SGD 的稳定性与 Muon 的加速动量相结合,把先进的大语言模型训练创新直接应用于计算机视觉。
- 更快的 CPU 速度:通过有针对性地移除分布焦点损失(DFL),YOLO26 的 CPU 推理速度最高可提升 43%,使其成为边缘设备和低功耗 IoT 设备部署的无可争议之选。
- ProgLoss + STAL:这些先进的损失函数显著提升了小目标识别能力,这对航空影像和精密机器人技术至关重要。
- 特定任务改进:提供用于生成掩码的语义分割损失、用于姿态估计的残差对数似然估计(RLE),以及用于解决棘手有向边界框(OBB)边界问题的专用角度损失。
结论#
YOLOv5 和 YOLOv7 都是可靠的实时目标检测解决方案。YOLOv7 在高算力硬件上追求极致准确率方面仍是有力选择,而 YOLOv5 则是对开发者最友好的理想工具,在速度、效率和一流生态系统之间实现了出色平衡。
不过,对于希望让流水线经得起未来考验,并实现速度、简洁性和先进准确率最佳组合的开发者,我们强烈建议迁移到 Ultralytics YOLO26。它融合了 Ultralytics Platform 一贯出色的易用性,同时带来突破性的架构创新。