Ultralytics YOLO27:

YOLOv7 与 YOLOv5#

在构建现代计算机视觉流水线时,选择合适的目标检测架构对于平衡精度、推理速度和资源利用率至关重要。这篇全面的对比将研究计算机视觉领域中两个极具影响力的模型:YOLOv7 和 Ultralytics YOLOv5。

通过分析它们的架构差异、性能指标和理想部署场景,我们希望帮助开发者和研究人员根据具体需求选择最佳模型。

模型背景与起源#

了解这些模型的起源,有助于理解它们的设计理念和目标使用场景。

YOLOv5#

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

YOLOv7#

由来自台湾中央研究院资讯科学研究所的 Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao 于 2022 年 7 月 6 日推出,YOLOv7 非常专注于架构创新,例如扩展高效层聚合网络 (E-ELAN) 以及可训练的“免费赠品包”,以将准确率推向最新技术水平。 详细信息可以在官方 Arxiv 论文(official Arxiv paper)和 YOLOv7 GitHub 仓库(YOLOv7 GitHub repository)中找到。如需无缝集成,请查看 Ultralytics YOLOv7 文档(Ultralytics YOLOv7 documentation)。

了解更多关于 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
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数量
(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 的效率令人惊叹,在仅 2.6M 个参数的极小内存占用下,提供极快的推理延迟(T4 TensorRT 上为 1.12 ms)。这使其成为高度受限边缘部署中无可匹敌的选择。
  • 性能平衡: 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,进一步了解无锚框检测和多任务学习能力方面的进展。

新一代:Ultralytics YOLO26#

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

YOLO26 引入了多项颠覆范式的功能:

  • 端到端无 NMS 设计: YOLO26 在早期版本开创的理念基础上实现了原生端到端处理。这彻底消除了非极大值抑制(NMS)后处理,大幅削减延迟瓶颈,并显著简化部署逻辑。
  • MuSGD 优化器: 该革命性优化器受 Moonshot AI 的 Kimi K2 启发,将标准 SGD 的稳定性与 Muon 的加速动量相结合,把先进的 LLM 训练创新直接引入计算机视觉。
  • 增强的 CPU 速度: 通过有针对性地移除分布焦点损失(DFL),YOLO26 实现了高达 43% 的 CPU 推理速度提升,成为边缘设备和低功耗 IoT 设备部署的无可争议之选。
  • ProgLoss + STAL: 这些先进的损失函数大幅提升了小目标识别能力,这对于航空影像和精密机器人技术至关重要。
  • 特定任务改进: 引入用于生成掩码的语义分割损失、用于姿态跟踪的残差对数似然估计(RLE),以及用于解决棘手有向边界框(OBB)边界问题的专用角度损失。

结论#

YOLOv5 和 YOLOv7 都为实时目标检测提供了可靠的解决方案。YOLOv7 仍然是高算力硬件上追求原始精度的有力选择,而 YOLOv5 则凭借出色的速度、效率和世界级生态系统,成为对开发者最友好的终极工具。

不过,对于希望让流水线面向未来,并实现速度、简洁性和业界最先进精度终极结合的开发者,我们强烈建议迁移到 Ultralytics YOLO26。它在提供突破性架构创新的同时,保留了 Ultralytics 平台传奇般的易用性。

评论