YOLOv7 与 YOLOv5:实时检测器的技术对比

在构建现代 计算机视觉 流水线时,选择正确的对象检测架构对于平衡准确性、推理速度和资源利用率至关重要。本次综合对比审视了计算机视觉领域两个极具影响力的模型:YOLOv7 和 Ultralytics YOLOv5。

通过分析它们的架构差异、性能指标和理想部署场景,我们旨在帮助开发人员和研究人员为特定需求选择最合适的模型。

模型背景与起源

了解这些模型的起源能为理解其设计理念和目标用例提供背景信息。

YOLOv5

YOLOv5 由 Glenn Jocher 和 Ultralytics 团队于 2020 年 6 月 26 日发布,它通过提供原生的 PyTorch 实现彻底改变了该领域,在不牺牲性能的前提下优先考虑了易用性。凭借其极其精简的生态系统和可靠的训练动态,它很快成为了行业标准。 你可以在 YOLOv5 GitHub 仓库 中浏览源代码,或通过 Ultralytics 平台 直接访问该模型。

了解更多关于 YOLOv5 的信息

YOLOv7

由中国台湾中央研究院信息科学研究所的王建尧(Chien-Yao Wang)、Alexey Bochkovskiy 和廖弘源(Hong-Yuan Mark Liao)于 2022 年 7 月 6 日推出。YOLOv7 着重于诸如扩展高效层聚合网络(E-ELAN)和可训练的“免费赠品(bag-of-freebies)”等架构创新,以提升准确性的最先进水平。 详细信息可以在其 官方 Arxiv 论文YOLOv7 GitHub 仓库 中找到。若需无缝集成,请查阅 Ultralytics YOLOv7 文档

了解更多关于 YOLOv7 的信息

无缝实验

这两个模型都已完全集成到 Ultralytics Python 包中,让你只需更改代码中的模型字符串即可在它们之间切换!

架构创新

Ultralytics YOLOv5 设计

YOLOv5 利用改进的 CSPDarknet53 主干网络搭配路径聚合网络(PANet)颈部。该设计针对快速 特征提取 和内存效率进行了高度优化。与较旧的架构或重型 Transformer 模型不同,YOLOv5 在训练期间所需的 CUDA 内存显著减少,从而允许在标准消费级 GPU 上使用更大的 批大小。此外,Ultralytics 框架原生支持除标准边界框之外的多种任务,包括 图像分割图像分类

YOLOv7 设计

YOLOv7 引入了几种结构重参数化和 E-ELAN 架构,允许网络学习更多样化的特征而不破坏原始梯度路径。它还实现了一个用于训练期间中间监督的辅助头。虽然这些进步带来了高平均精度均值(mAP),但它们往往会引入复杂的张量结构,与 Ultralytics 模型原生的精简导出相比,向 ONNXTensorRT 等边缘格式导出可能会更具挑战性。

性能分析

在比较这些模型时,开发人员必须平衡 mAPval、推理速度和计算复杂度(FLOPs)。下表展示了两种架构在 COCO 数据集 上评估后的性能表现。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(ms)
速度
T4 TensorRT10
(ms)
参数
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4

关键要点

  • 准确性上限: YOLOv7x 实现了高达 53.1 mAPval 的最高总体准确率,使其在以最大化检测性能为主要目标的场景中极具竞争力。
  • 速度与效率: Ultralytics YOLOv5n 是效率的奇迹,它提供闪电般的 推理延迟(在 T4 TensorRT 上为 1.12 毫秒),参数量仅为 2.6M,内存占用极小。这使其成为高度受限的边缘部署中无可比拟的选择。
  • 性能平衡: YOLOv5 系列提供了卓越的模型梯度。YOLOv5l 提供了一个绝佳的中间平衡点,尽管其准确率略逊于 YOLOv7l,但它拥有高度成熟的部署流水线。

Ultralytics 生态系统的优势

模型架构只是等式的一半;围绕它的生态系统决定了其在现实世界中的可行性。这正是 Ultralytics 模型真正闪耀之处。

易用性: Ultralytics 提供了一个统一且高度直观的 Python API。你可以在最少的样板代码下训练、验证和部署模型,并得到详尽的 官方文档 支持。 维护良好的生态系统: 活跃的开发确保了持续的更新、错误修复以及与诸如 Weights & Biases 等现代跟踪工具的无缝集成。 训练效率: 利用优化的数据加载器和 智能缓存,YOLOv5 大幅缩短了训练时间。此外,现成的预训练权重加速了跨多个领域的迁移学习。

代码示例:精简的训练

使用 Ultralytics 包,无论你选择哪种架构,发起训练运行的操作几乎是一样的。

from ultralytics import YOLO

# Load a pre-trained YOLOv5 model (can easily swap to "yolov7.pt")
model = YOLO("yolov5s.pt")

# Train the model on the COCO8 example dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Export the trained model to ONNX format for deployment
success = model.export(format="onnx")

理想用例

何时选择 YOLOv7

  • 学术基准测试: 非常适合需要针对记录良好的 2022 年基线对比创新技术的研究人员。
  • 高端 GPU 云处理: 当部署在强大的服务器硬件上,且在密集场景中实现绝对最高的 mAP 比导出简易性更重要时。

何时选择 YOLOv5

  • 生产部署: 理想用于需要高稳定性、直接的 模型部署选项 以及广泛跨平台兼容性的商业应用。
  • 边缘设备: 较小的变体(YOLOv5n 和 YOLOv5s)在手机和嵌入式系统上运行效果极佳。
  • 多任务需求: 如果你的项目需要使用统一框架从简单的检测演进到 姿态估计 或分割任务。
探索其他架构

寻找更新的版本?可以考虑探索 Ultralytics YOLOv8Ultralytics YOLO11,以获得在无锚框(anchor-free)检测和多任务学习能力方面的进一步提升。

下一代:Ultralytics YOLO26

虽然 YOLOv5 和 YOLOv7 在视觉 AI 历史上占据着重要地位,但该领域在不断演进。于 2026 年 1 月发布的 Ultralytics YOLO26 代表了对象检测技术的绝对前沿,在所有指标上都超越了前几代产品。

了解关于 YOLO26 的更多信息

YOLO26 引入了几个范式转换功能:

  • 端到端无 NMS 设计: 基于早期迭代中开创的概念,YOLO26 是原生的端到端模型。这完全消除了非极大值抑制(NMS)后处理,削减了延迟瓶颈并大幅简化了部署逻辑。
  • MuSGD 优化器: 受 Moonshot AI 的 Kimi K2 启发,这款革命性的优化器融合了标准 SGD 的稳定性和 Muon 的加速动量,将先进的 LLM 训练创新直接带入计算机视觉领域。
  • 增强的 CPU 速度: 通过策略性地移除分布焦点损失(DFL),YOLO26 实现了高达 43% 的 CPU 推理速度提升,使其成为边缘和低功耗物联网设备部署中无可争议的冠军。
  • ProgLoss + STAL: 这些先进的损失函数在小目标识别方面取得了巨大改进,这对航空影像和精密机器人技术至关重要。
  • 特定任务改进: 具备用于掩码生成的语义分割损失、用于姿态跟踪的残差对数似然估计(RLE),以及专门的角度损失,以解决棘手的 旋转边界框(OBB) 边界问题。

总结

YOLOv5 和 YOLOv7 都为实时对象检测提供了强大的解决方案。YOLOv7 在高计算硬件上追求原始准确性时依然是强有力的选择,而 YOLOv5 则以其卓越的开发者友好型工具脱颖而出,提供了速度、效率和世界级生态系统的绝佳平衡。

然而,对于那些希望实现流水线未来保障,并获得速度、简洁性和最先进准确性的终极结合的开发人员,我们强烈建议迁移到 Ultralytics YOLO26。它秉承了 Ultralytics 平台传奇般的易用性,同时带来了突破性的架构创新。

评论