Ultralytics YOLO27:
Get Started

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 文档。

详细了解 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)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
YOLOv5n64028.0-1.121.94.5
YOLOv5s64037.4-1.927.216.5
YOLOv5m64045.4-4.0321.249.0
YOLOv5l64049.0-6.6146.5109.1
YOLOv5x64050.7-11.8986.7205.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 一贯出色的易用性,同时带来突破性的架构创新。

评论