Ultralytics YOLO27:
Get Started

YOLOv7 与 YOLOv9#

实时目标检测领域发展迅速,每一代模型都在不断突破边缘设备和云服务器的能力边界。在为计算机视觉项目评估架构时,开发者经常会将成熟的基准模型与新兴创新成果进行比较。本指南全面对比 YOLO 系列中的两个重要里程碑:YOLOv7 和 YOLOv9。

我们将分析它们的架构突破、性能指标和理想部署场景,帮助你为应用选择合适的模型。我们还将探讨 Ultralytics Platform 和 Python API 如何让 YOLOv9 等受支持模型更易于训练、验证和部署。

模型演进与技术规格#

了解这些模型的起源和设计理念,有助于理解它们的能力。两种模型有着相同的研究渊源,但针对不同的架构瓶颈。

YOLOv7:免费赠品组合的先驱#

YOLOv7 于 2022 年年中发布,凭借高度可靠且经过充分优化的架构确立了自己的地位。它引入了结构重参数化和“可训练的免费技巧包”方法,在保持高推理速度的同时,不会牺牲平均精度均值 (mAP)。

架构创新:YOLOv7 采用扩展高效层聚合网络(E-ELAN),通过扩展、打乱和合并基数,让模型学习更多样的特征。这种设计充分利用 GPU,并实现出色的推理延迟。不过,与较新的模型相比,它在复杂训练过程中可能需要大量内存。

详细了解 YOLOv7

YOLOv9:解决信息瓶颈#

YOLOv9 于 2024 年初由同一研究团队推出,旨在解决深度神经网络固有的“信息瓶颈”问题。数据经过深层网络时,关键细节往往会丢失。YOLOv9 通过全新的层设计缓解了这一问题。

架构创新:YOLOv9 引入了可编程梯度信息(PGI)和广义高效层聚合网络(GELAN)。PGI 确保可靠的梯度得到保留,并反馈用于准确更新权重。GELAN 最大限度地提高参数效率,让 YOLOv9 能以比前代模型少得多的 FLOPs 实现高准确度。

了解有关 YOLOv9 的更多信息

性能分析#

选择架构时,AI 工程师必须在准确度、推理速度和计算成本之间取得平衡。下表重点展示了这些模型在标准 COCO 数据集上的性能差异。

模型尺寸
(像素)
mAP验证集
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(ms)
参数
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.226.7
YOLOv9m64051.4-6.4320.176.8
YOLOv9c64053.0-7.1625.5102.8
YOLOv9e64055.6-16.7758.1192.5

要点总结#

  • 参数效率:YOLOv9m 仅使用约少 45% 的参数(20.1M 对比 36.9M),就达到了与 YOLOv7l 相同的准确度(mAP 为 51.4%)。参数大幅减少,使 YOLOv9m 更容易部署到内存受限的边缘 AI设备上。
  • 微型部署:YOLOv9t(微型)版本的推出,为实时性要求极高的环境带来了惊人的速度(T4 上为 2.3ms TensorRT)。
  • 最高准确度:对于精度至关重要的应用,YOLOv9e 将检测准确度提升至 55.6% mAP,显著优于 YOLOv7x。
让你的计算机视觉项目面向未来

YOLOv7 和 YOLOv9 实力强劲,而新发布的 YOLO26 则代表着决定性的飞跃。YOLO26 引入了原生的 端到端无 NMS 设计(可通过 nms=False 选用),无需复杂的后处理,并可将 CPU 推理速度提升至多 43%。凭借全新的 MuSGD 优化器以及改进的 ProgLoss + STAL 损失函数,YOLO26 实现了卓越的训练稳定性和小目标检测精度。

Ultralytics 优势#

选择模型架构只是第一步。围绕模型的软件生态决定了你从原型开发迈向生产部署的速度。通过 Ultralytics Python API 集成 YOLOv9 等受支持的模型,能为开发者和研究人员带来显著优势。

易用性与训练效率#

过去,训练 YOLOv7 需要复杂的数据准备和大量定制脚本。Ultralytics 框架将这些深度学习的复杂性抽象化。开发者只需少量代码,就能轻松切换架构、尝试超参数调优,并使用智能数据增强流程。

此外,Ultralytics 还会在训练和推理期间优化内存使用。与庞大的 Transformer 模型(例如 RT-DETR)不同,Ultralytics YOLO 架构的训练速度显著更快,所需 CUDA 内存也少得多,因此非常适合消费级 GPU。

代码示例:简化训练流程#

在 Ultralytics 生态中,训练最先进的模型非常简单。下面是一个可直接运行的示例,演示如何训练和验证 YOLOv9 模型:

from ultralytics import YOLO

# 初始化模型(你可以将 'yolov9c.pt' 替换为 'yolo26n.pt')
model = YOLO("yolov9c.pt")

# 使用 COCO8 示例数据集训练模型
train_results = model.train(
    data="coco8.yaml",
    epochs=50,
    imgsz=640,
    device="0",  # 如果可用,使用 GPU 0
    batch=16,  # 优化批次大小以提高内存利用效率
)

# 在验证集上评估模型性能
metrics = model.val()

# 将训练好的模型导出为 ONNX 格式,以便部署
model.export(format="onnx")

跨任务的卓越多功能性#

完善维护的生态系统意味着你可以使用多种计算机视觉任务。YOLOv7 主要针对目标检测构建(后来也出现了用于其他任务的实验性分支),而现代 Ultralytics 模型则从设计之初就具备多功能性。开箱即用,你就能轻松完成实例分割、姿态估计、图像分类和旋转框 (OBB)检测。

理想用例与应用#

选择 YOLOv7 还是 YOLOv9,通常取决于你的行业特定限制和硬件可用性。

何时使用 YOLOv7#

  • 遗留边缘部署:对于已经针对 YOLOv7 的 E-ELAN 架构进行大量调优和优化的硬件环境,它仍然是工业物联网的可靠选择。
  • 交通监控:YOLOv7 的高帧率和经过验证的稳定性,使其非常适用于智慧城市基础设施和实时交通管理。
  • 机器人集成:在动态环境中导航需要低延迟处理,而 YOLOv7 的多个变体已在这类场景中经过广泛测试。

何时使用 YOLOv9#

  • 医学成像:YOLOv9 中的 PGI 架构能够在深层网络中出色地保留精细细节,这对于处理肿瘤检测等复杂的医学图像分析任务至关重要。
  • 零售密集场景分析:在零售货架上跟踪和计数密集摆放的商品时,YOLOv9 的特征融合能提供更高的精度,并减少漏检。
  • 航空和无人机影像:YOLOv9m 的参数效率使无人机能够处理高分辨率图像,有助于开展野生动物保护和农业监测,同时避免耗尽电池电量。

结论#

YOLOv7 和 YOLOv9 都已在计算机视觉发展史上占据重要地位。YOLOv7 引入了实时处理所需的重要优化,而 YOLOv9 则解决了深度学习的结构性瓶颈,以最大限度地提升参数效率。

不过,对于如今开始新项目的开发者来说,采用 Ultralytics 生态,尤其是 YOLO11 和 YOLO26 等新一代模型,能在速度、精度和开发体验之间实现最理想的平衡。借助 MuSGD 优化器等创新,以及移除 Distribution Focal Loss (DFL) 以提高硬件兼容性,Ultralytics 持续为视觉 AI 专业人士提供最易上手、功能强大的工具。

评论