Ultralytics YOLO27:

YOLOv9 与 YOLOv5#

计算机视觉领域取得了巨大发展,目标检测已成为无数工业和研究应用的支柱。选择合适的架构通常需要仔细评估平均精度(mAP)、推理速度和内存开销。在这篇比较中,我们将探讨两个影响深远的模型:YOLOv9 因其在梯度信息保留方面的架构突破而备受赞誉,而经过实战验证的行业标准 Ultralytics YOLOv5 则以极高的易用性和无与伦比的部署灵活性著称。

架构创新与技术起源#

了解这两个模型的底层机制,有助于深入理解它们各自的性能表现。

YOLOv9:可编程梯度信息#

YOLOv9 由中国台湾中央研究院信息科学研究所的研究人员 Chien-Yao Wang 和 Hong-Yuan Mark Liao 开发,于 2024 年 2 月 21 日发布。该模型引入了两个突破性概念,用于解决深度神经网络中常见的信息瓶颈:可编程梯度信息(PGI)和广义高效层聚合网络(GELAN)。

借助 PGI,YOLOv9 能确保关键信息在前馈过程中始终得到保留,从而实现高度准确的梯度更新。同时,GELAN 架构最大限度地提升了参数效率,使模型能够以出人意料的低计算开销达到最先进的精度。你可以在官方 YOLOv9 Arxiv 论文 中了解技术细节,也可以查看 YOLOv9 GitHub 代码库

了解更多关于 YOLOv9 的信息

Ultralytics YOLOv5:生产标准#

YOLOv5 由 Glenn Jocher 主导开发,并于 2020 年 6 月 26 日由 Ultralytics 发布,彻底改变了计算机视觉的易用性。作为首批原生构建于 PyTorch 框架之上的目标检测模型之一,它绕过了旧版 Darknet C 框架的复杂性。YOLOv5 采用高度优化的 CSPNet 主干网络和 PANet 颈部网络,优先实现速度与精度之间的无缝平衡。

然而,它最突出的成就是融入更广泛的 Ultralytics 生态系统。YOLOv5 针对快速的训练效率和低内存环境进行了深度优化,因此在边缘部署中极其稳定。

内存效率

在评估边缘设备模型时,请记住,与基于大型 Transformer 的架构相比,Ultralytics YOLO 模型通常在训练和推理期间都需要低得多的 GPU 内存。

性能分析:速度与精度#

在设计计算机视觉流水线时,开发者必须权衡精度与延迟之间的取舍。下表展示了在标准 COCO 数据集上的性能差异。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数量
(M)
FLOPs
(B)
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0
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

分析取舍#

YOLOv9 在原始精度方面占据绝对优势。YOLOv9e 将 mAP 推至 55.6% 的新高度,并利用其 GELAN 层保留细粒度细节。这使其成为医学影像或需要对小目标进行严格精确识别的场景的出色选择。

相比之下,YOLOv5 在原始部署速度和硬件灵活性方面表现出色。YOLOv5n(Nano)以轻量著称,通过 TensorRT 在 T4 GPU 上仅需 1.12ms 即可完成推理。如果你要部署到资源受限的 IoT 设备、手机或 Raspberry Pi,YOLOv5 的内存占用会使其极其可靠。

Ultralytics 生态系统优势#

选择模型时,一个重要考量因素是周边软件生态系统。虽然 YOLOv9 提供顶级研究基准,但通过现代化的 Ultralytics Python API 使用这两个模型可以弥合差距,为开发者提供统一而简洁的体验。

易用性与导出#

Ultralytics 抽象了复杂的工程难题。自动数据增强超参数调优等功能开箱即用。将模型投入生产同样简单,内置导出命令可将模型转换为 ONNXOpenVINOTFLite 格式。

任务多样性#

虽然这两个模型都擅长目标检测,但现代 Ultralytics 模型还旨在应对各种计算机视觉挑战。更广泛的框架原生支持图像分类实例分割姿态估计有向边界框(OBB),让开发者无需切换代码库即可解决多种视觉问题。

使用场景与建议#

在 YOLOv9 和 YOLOv5 之间进行选择,取决于你的具体项目需求、部署限制和生态系统偏好。

何时选择 YOLOv9#

YOLOv9 适合以下场景:

  • **信息瓶颈研究:**研究可编程梯度信息 (PGI) 和广义高效层聚合网络 (GELAN) 架构的学术项目。
  • **梯度流优化研究:**专注于理解和缓解深度网络层在训练期间信息丢失问题的研究。
  • **高精度检测基准测试:**需要将 YOLOv9 出色的 COCO 基准性能作为架构对比参考的场景。

何时选择 YOLOv5#

推荐在以下情况下使用 YOLOv5:

  • 经过生产验证的系统: 重视 YOLOv5 长期稳定记录、完善文档和庞大社区支持的现有部署项目。
  • 资源受限的训练: GPU 资源有限的环境,此时 YOLOv5 高效的训练流水线和较低的内存需求更具优势。
  • 广泛的导出格式支持: 需要跨多种格式部署的项目,包括 ONNXTensorRTCoreMLTFLite

何时选择 Ultralytics (YOLO26)#

对于大多数新项目,Ultralytics YOLO26 在性能和开发者体验之间提供了最佳组合:

  • 无 NMS 边缘部署: 适用于需要稳定、低延迟推理,同时又不希望引入非极大值抑制后处理复杂性的应用。
  • 仅使用 CPU 的环境: 适用于没有专用 GPU 加速的设备,此时 YOLO26 最高提升 43% 的 CPU 推理速度将带来决定性优势。
  • 小目标检测: 适用于航空无人机影像或 IoT 传感器分析等具有挑战性的场景,在这些场景中,ProgLoss 和 STAL 能显著提升微小目标的准确率。

实现示例#

Ultralytics 生态系统的优势在于,你只需更改权重字符串,就能在 YOLOv5 模型和 YOLOv9 模型之间切换。

from ultralytics import YOLO

# Load a pretrained YOLOv9 model (swap to "yolov5s.pt" to use YOLOv5)
model = YOLO("yolov9c.pt")

# Train the model efficiently on a custom dataset
train_results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on new images
predictions = model.predict("https://ultralytics.com/images/zidane.jpg")

# Export to ONNX for seamless deployment
model.export(format="onnx")

探索更新的架构#

YOLOv5 和 YOLOv9 都是各具优势的优秀模型,但该领域仍在持续发展。探索新项目的用户也可以评估 Ultralytics 的最新迭代版本。

  • YOLO11 YOLOv8 系列的强大而精炼的演进版本,在所有视觉任务中都能提供出色的速度与精度平衡。
  • YOLO26 YOLO26 于 2026 年发布,是现代流水线的终极推荐。它引入了端到端无 NMS 设计,彻底消除了后处理瓶颈。借助 DFL 移除(移除分布式焦点损失,从而简化导出并提升对边缘设备和低功耗设备的兼容性),其 CPU 推理速度最高可提升 43%。全新的 MuSGD 优化器大幅提升了训练稳定性,而 ProgLoss + STAL 则带来了改进的损失函数,并显著提升了小目标识别能力;这一点对于 IoT、机器人和航空影像至关重要,使其成为边缘部署和云端部署中最稳健的架构。

对于管理大型数据集和复杂部署流水线的团队而言,使用 Ultralytics Platform 可提供无代码解决方案,轻松训练、跟踪和部署这些尖端模型。

评论