跳转至内容

YOLOv7 对比 YOLOv9:全面技术比较

YOLO(You Only Look Once)系列的发展以神经网络架构的持续创新为标志,平衡了推理速度、准确性和计算效率之间的关键权衡。本次比较深入探讨了 YOLOv7(2022 年发布的里程碑版本,以其可训练的“免费包”而闻名)和 YOLOv9(2024 年架构,引入了可编程梯度信息(PGI)以克服深度网络中的信息瓶颈)。

性能与效率分析

从 YOLOv7 到 YOLOv9 的转变代表了参数效率的显著飞跃。尽管 YOLOv7 旨在通过扩展高效层聚合网络 (E-ELAN) 突破实时目标检测的极限,但 YOLOv9 引入了架构上的改变,使其能够以更少的参数和浮点运算 (FLOPs) 实现更高的平均精度 (mAP)。

对于专注于边缘AI部署的开发者而言,这种效率至关重要。如下表所示,YOLOv9e 取得了领先的 55.6% mAP,超越了更大的 YOLOv7x,同时保持了具有竞争力的计算开销。相反,较小的 YOLOv9t 为高度受限的设备提供了轻量级解决方案,这是 YOLOv7 未能以相同粒度明确针对的层级。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(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.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0

YOLOv7: 优化可训练的免费赠品包

YOLOv7于2022年7月发布,对YOLO架构进行了一些结构性改革,重点在于优化训练过程,同时不增加推理成本。

架构亮点

YOLOv7 利用 E-ELAN(扩展高效层聚合网络),它控制最短和最长的梯度路径,以使网络能够有效学习更多特征。它还推广了基于拼接模型的模型缩放,允许同时缩放深度和宽度。一个关键创新是计划重参数化卷积,它在推理过程中简化了模型架构以提高速度。

传统状态

虽然YOLOv7仍然是一个有能力的模型,但它缺乏Ultralytics生态系统中新优化方案的原生支持。与新版本相比,开发者可能会发现与现代MLOps工具的集成更具挑战性。

了解更多关于YOLOv7的信息。

YOLOv9:解决信息瓶颈

YOLOv9 于 2024 年初推出,解决了深度学习中的一个根本问题:即数据通过连续层时信息丢失的问题。

架构亮点

YOLOv9的核心创新是可编程梯度信息 (PGI)。在深度网络中,有用信息在前向传播过程中可能会丢失,导致梯度不可靠。PGI提供了一个辅助监督框架,确保关键信息为损失函数所保留。此外,广义高效层聚合网络 (GELAN)通过允许任意阻塞来扩展ELAN的能力,从而最大化参数和计算资源的利用。

这种架构使得 YOLOv9 在复杂检测任务中表现出色,例如在杂乱环境中检测小目标或进行高分辨率航空影像分析

了解更多关于YOLOv9的信息。

为什么Ultralytics模型(YOLO11和YOLOv8)是首选

虽然YOLOv7和YOLOv9是令人印象深刻的学术成就,但Ultralytics YOLO系列——包括YOLOv8和最先进的YOLO11——专为实际、真实世界的应用开发而设计。这些模型优先考虑易用性生态系统集成操作效率,使其成为大多数工程团队的卓越选择。

简化的用户体验

Ultralytics 模型封装在一个统一的 Python API 中,抽象化了训练流程的复杂性。在目标检测实例分割姿势估计旋转框检测 (OBB) 任务之间切换只需更改一个参数,这种多功能性是标准 YOLOv7 或 YOLOv9 实现所不具备的。

from ultralytics import YOLO

# Load a model (YOLO11 automatically handles architecture)
model = YOLO("yolo11n.pt")  # Load a pretrained model

# Train the model with a single line of code
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Perform inference on an image
results = model("path/to/image.jpg")

维护良好的生态系统

选择 Ultralytics 模型可获得一个强大的生态系统。这包括与 Ultralytics HUB(以及即将推出的 Ultralytics Platform)的无缝集成,用于云训练和数据集管理。此外,活跃的社区和频繁的更新确保了与最新硬件的兼容性,例如导出到 TensorRTOpenVINO 以实现最佳推理速度。

内存与训练效率

Ultralytics 模型以其训练效率而闻名。与基于 Transformer 的模型(如RT-DETR)可能内存占用高且收敛缓慢不同,Ultralytics YOLO 模型利用优化的数据加载器和Mosaic 数据增强,以更低的 CUDA 内存需求实现快速训练。这使得开发者能够在消费级 GPU 上训练最先进的模型。

了解更多关于 YOLO11 的信息

理想用例

选择合适的模型取决于您项目的具体限制。

YOLOv9 的实际应用

  • 研究与基准测试:适用于需要 COCO dataset 上报告的绝对最高准确性的学术研究。
  • 高保真监控:在诸如安全警报系统等场景中,1-2% 的精度提升足以证明更高的实现复杂性是合理的。

YOLOv7 的实际应用

  • 传统系统:已在 Darknet 或早期 PyTorch 生态系统上构建的项目,需要稳定、已知的功能,而无需重构整个代码库。

Ultralytics YOLO11 的实际应用

  • 智慧城市:利用目标跟踪进行交通流量分析,在速度和部署便捷性至关重要的情况下。
  • 医疗保健:医学图像分析,通常需要同时进行 segment 和 detect。
  • 制造业: 在 NVIDIA Jetson 或 Raspberry Pi 等边缘设备上部署质量控制系统,得益于其到 TFLite 和 ONNX 的直接导出选项。

结论

YOLOv7 和 YOLOv9 都代表了计算机视觉史上的重要里程碑。YOLOv9 凭借其 PGI 架构,在 v7 的基础上进行了引人注目的升级,提供了更好的效率和精度。然而,对于寻求 通用、易用且支持良好解决方案 的开发者而言,Ultralytics YOLO11 仍然是推荐的选择。它在性能、全面文档和多任务能力(detect、segment、classify、姿势估计)之间的平衡,提供了从概念到生产的最快路径。

探索其他模型

要为您的特定计算机视觉任务找到最合适的模型,可以探索这些其他比较:


评论