Ultralytics YOLO27:
Get Started

YOLOv9 与 YOLOv7#

实时目标检测的发展,源于人们持续追求计算效率与高精度之间的平衡。在这一发展历程中,YOLOv9 和 YOLOv7 是两款里程碑式架构,均由中国台湾中央研究院信息科学研究所的研究人员开发。YOLOv7 引入了革命性的可训练免费赠品组合,而较新的 YOLOv9 则直面深度学习中的信息瓶颈问题。

本技术综合对比将探讨两款模型在架构上的差异、性能指标和理想部署场景,帮助机器学习工程师和研究人员为计算机视觉流程选择合适的工具。

性能与指标对比#

比较这些模型时,原始性能和效率是关键因素。下表详细列出了标准 COCO 数据集基准测试中的平均精度均值(mAP)和计算需求。

模型尺寸
(像素)
mAP验证集
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(ms)
参数
(M)
FLOPs
(B)
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
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
性能平衡

请注意,YOLOv9c 的精度(53.0 mAP)与 YOLOv7x(53.1 mAP)大致相同,但所需参数(25.5M 对 71.3M)和 FLOPs 显著更少。这体现了现代架构在性能平衡方面的改进。

YOLOv9:解决信息瓶颈#

YOLOv9 于 2024 年初推出,从根本上改变了深度神经网络在各层中保留数据的方式。

架构创新#

YOLOv9 引入了通用高效层聚合网络(GELAN)和可编程梯度信息(PGI)。GELAN 结合 CSPNet 和 ELAN 的优势,以优化参数效率和计算成本,确保在参数量更少的情况下依然保持高精度。PGI 是一种辅助监督框架,旨在防止深层网络中的数据丢失,并在训练过程中生成可靠的梯度来更新权重。

优势与局限#

YOLOv9 的主要优势是能够在不产生巨大计算开销的情况下提取细微特征,因此非常适合医学图像分析等要求特征保真度高的任务。不过,与结构更统一的框架相比,训练过程中复杂的 PGI 结构会让初学者更难进行自定义架构修改。

了解有关 YOLOv9 的更多信息

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

YOLOv7 于 2022 年发布,为消费级硬件所能实现的性能设立了新标杆,并通过架构创新显著提升了实时推理速度。

架构创新#

YOLOv7 的核心贡献是扩展高效层聚合网络(E-ELAN)。这种架构使模型能够持续学习更多样的特征。此外,YOLOv7 还采用了“可训练免费赠品组合”,包括预先规划的重参数化卷积和动态标签分配等技术。这些方法能够提高模型训练期间的精度,且不会增加部署时的推理成本。

优势与局限#

YOLOv7 针对实时边缘处理进行了高度优化,在旧系统和旧版 CUDA 环境中仍然广泛应用。如今,它的主要局限在于参数量大于较新的模型。如性能表所示,要达到顶级精度,需要使用大型 YOLOv7x 模型,其所需的 GPU 内存远多于同等的现代架构。

详细了解 YOLOv7

Ultralytics 的优势:简化部署#

YOLOv9 和 YOLOv7 的原始研究代码仓库为学术研究提供了出色的基础,但在生产环境中部署这些模型可能很复杂。通过 ultralytics 包集成 YOLOv9(YOLOv7 仅支持通过导出的 ONNX 或 TensorRT 模型使用),可带来无与伦比的易用性。

借助集成式 Ultralytics Platform,开发者可以使用维护完善的生态系统,其中包括直观的 Python API、活跃的社区支持和强大的实验跟踪功能。

借助 YOLO26 面向未来#

如果你正在启动新的计算机视觉项目,我们强烈建议优先考虑新发布的 YOLO26,而不是 YOLOv9 和 YOLOv7。作为全新的先进标准,YOLO26 带来了突破性进展:

  • 端到端无 NMS 设计:可选的一对一检测头(nms=False)跳过非极大值抑制后处理,大幅降低部署复杂度和延迟。
  • CPU 推理速度最高提升 43%:针对边缘计算环境进行了优化,确保你的应用即使没有独立 GPU 也能流畅运行。
  • MuSGD 优化器: 这是一种受 LLM 训练启发的混合优化器,可实现高度稳定的收敛并缩短训练时间。
  • 移除 DFL: 通过移除 Distribution Focal Loss 简化模型导出,提升与低功耗移动设备的兼容性。
  • ProgLoss + STAL: 大幅提升小目标检测性能,因此成为航拍图像和监控场景的首选。

生态系统中的其他热门替代方案包括 Ultralytics YOLOv8 和 YOLO11,两者都能灵活胜任多种任务,例如实例分割和姿态估计。

实现示例#

借助统一 API,训练和导出 YOLOv9 或 YOLO26 非常简单。以下代码展示了 Ultralytics 工具所具备的精简训练效率。

from ultralytics import YOLO

# 初始化 YOLOv9 或推荐的 YOLO26 模型
model = YOLO("yolov9c.pt")  # 替换为 "yolo26n.pt" 以提升边缘设备上的运行速度

# 使用内置数据增强在自定义数据集上训练
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, batch=16, device=0)

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

在消费级硬件上训练时,内存效率至关重要。与 Transformer 模型(例如 RT-DETR)在训练期间往往出现严重内存膨胀不同,Ultralytics 对 YOLOv9 和 YOLO26 的实现经过了大量优化,可减少显存峰值。

实际应用与理想用例#

如何选择这些架构,通常取决于你的生产环境所受的具体限制。

何时使用 YOLOv9: 在需要保留细微细节的场景中,YOLOv9 表现出色。其强大的特征提取能力使它非常适合用于零售分析,例如统计货架上密集摆放的商品;也适用于农业场景,因为识别小叶片上的早期作物病害至关重要。

何时使用 YOLOv7: 对于旧有部署流程,YOLOv7 仍是一个可靠的候选方案。如果你要集成到较旧的硬件系统(例如某些代际的 Google Coral Edge TPU),YOLOv7 简洁的 CNN 架构可能比新模型更容易编译。

何时使用 YOLO26(推荐): 对于任何现代部署场景——从自主无人机到智慧城市交通管理——YOLO26 都是更胜一筹的选择。其无需 NMS 的架构可确保推理时间确定,这对安全关键型机器人至关重要;同时,它在各方面的精度都超过 YOLOv9 和 YOLOv7。

评论