YOLOv7 与YOLOv9:全面技术比较
YOLO (You Only Look Once,只看一次)系列的发展以神经网络架构的不断创新为标志,在推理速度、准确性和计算效率之间进行了重要的权衡。本比较深入探讨了 YOLOv7和 YOLOv9 的比较。 YOLOv9和 YOLOv9,YOLOv9 是 2024 年推出的架构,引入了可编程梯度信息 (PGI),以克服深度网络中的信息瓶颈。
性能和效率分析
从YOLOv7 到YOLOv9 的过渡代表着参数效率的重大飞跃。YOLOv7 经过优化,利用扩展高效层聚合网络 (E-ELAN) 突破了实时对象检测的极限,而YOLOv9 则引入了架构变化,使其能够以更少的参数和浮点运算 (FLOP) 实现更高的平均精度mAP)。
对于专注于边缘人工智能部署的开发人员来说,这种效率至关重要。如下表所示,YOLOv9e的 mAP 率高达55.6%,超过了较大的YOLOv7x,同时保持了具有竞争力的计算占用空间。相反,较小的YOLOv9t为高度受限的设备提供了轻量级解决方案,而YOLOv7 并没有明确针对这一层级提供相同的粒度。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
YOLOv7:优化可培训的免费赠品包
YOLOv7 于 2022 年 7 月发布,对YOLO 架构进行了多项结构改革,重点是在不增加推理成本的情况下优化训练过程。
- 作者: Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao
- 组织机构台湾中央研究院资讯科学研究所
- 日期: 2022-07-06
- Arxiv:YOLOv7:可训练的免费书包树立了新标杆
- GitHub:WongKinYiu/yolov7
建筑亮点
YOLOv7 利用E-ELAN(扩展高效层聚合网络)控制最短和最长梯度路径,使网络能够有效地学习更多特征。它还推广了基于串联模型的模型缩放,允许同时缩放深度和宽度。一项关键创新是计划中的重新参数化卷积,它简化了推理过程中的模型架构,从而提高了速度。
遗产状态
虽然YOLOv7 仍然是一个有能力的模型,但它缺乏对Ultralytics 生态系统中更新优化的本地支持。与更新的迭代版本相比,开发人员可能会发现与现代 MLOps 工具的集成更具挑战性。
YOLOv9:解决信息瓶颈问题
2024 年初推出的YOLOv9 解决了深度学习中的一个基本问题:数据通过连续层时的信息丢失。
- 作者: Chien-Yao Wang 和 Hong-Yuan Mark Liao
- 组织机构台湾中央研究院资讯科学研究所
- 日期: 2024-02-21
- Arxiv:YOLOv9:使用 PGI 学习你想学的东西
- GitHub:WongKinYiu/yolov9
建筑亮点
YOLOv9 的核心创新是可编程梯度信息 (PGI)。在深度网络中,有用的信息可能会在前馈过程中丢失,从而导致不可靠的梯度。PGI 提供了一个辅助监督框架,确保为损失函数保留关键信息。此外,广义高效层聚合网络(GELAN)扩展了 ELAN 的功能,允许任意阻塞,最大限度地利用了参数和计算资源。
这种架构使YOLOv9 在执行复杂的检测任务(如检测杂乱环境中的小物体或高分辨率航空图像分析)时异常强大。
为什么Ultralytics 模型YOLO11 和YOLOv8)是首选?
虽然YOLOv7 和YOLOv9 取得了令人瞩目的学术成就,但 Ultralytics YOLO系列,包括 YOLOv8和最先进的 YOLO11-是专为实际应用开发而设计的。这些机型将易用性、生态系统集成和运行效率放在首位,是大多数工程团队的上佳选择。
简化用户体验
Ultralytics 模型封装在统一的Python 应用程序接口中,抽象化了训练管道的复杂性。在对象检测、实例分割、姿势估计 和定向边界框(旋转框检测)任务之间切换,只需更改一个参数,这是标准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)无缝集成,用于云培训和数据集管理。此外,活跃的社区和频繁的更新确保了与最新硬件的兼容性,例如导出到 TensorRT或 OpenVINO以获得最佳推理速度。
记忆和训练效率
Ultralytics 模型以其训练效率而闻名。与transformer模型(如 RT-DETR等)可能会占用内存且收敛速度较慢,Ultralytics YOLO 模型利用优化的数据加载器和Mosaic 增强技术,以较低的CUDA 内存需求实现快速训练。这样,开发人员就可以在消费级 GPU 上训练最先进的模型。
理想用例
选择正确的模型取决于项目的具体限制因素。
YOLOv9在现实世界中的应用
YOLOv7在现实世界中的应用
- 传统系统:已在 Darknet 或早期PyTorch 生态系统上构建的项目,这些项目需要稳定的已知数量,而无需重构整个代码库。
Ultralytics 在现实世界中的应用YOLO11
- 智能城市:利用物体追踪技术进行交通流量分析,在这种情况下,速度和部署的简便性至关重要。
- 医疗:医学图像分析通常需要同时进行分割和检测。
- 制造:在NVIDIA Jetson 或 Raspberry Pi 等边缘设备上部署质量控制系统,受益于向TFLite 和ONNX 的直接输出选项。
结论
YOLOv7 和YOLOv9 都是计算机视觉发展史上的重要里程碑。 YOLOv9凭借其 PGI 架构,在 v7 的基础上进行了引人注目的升级,提供了更高的效率和准确性。然而,对于正在寻找多功能、易用性和支持良好的解决方案的开发人员来说,YOLOv9 是一个很好的选择、 Ultralytics YOLO11仍然是值得推荐的选择。它兼顾了性能、全面的文档和多任务功能detect、segment、classify、姿势估计),提供了从概念到生产的最快途径。
探索其他模型
要找到最适合您的特定计算机视觉任务的产品,请考虑进行其他比较:
- YOLOv8 与YOLOv9- 将广泛采用的 v8 与注重研究的 v9 进行比较。
- YOLOv10 vs.YOLOv9- 看看端到端YOLOv10 的性能如何。
- YOLO11 vs.YOLOv8- 了解Ultralytics 最新版本的改进之处。
- RT-DETR 与YOLOv9-Transformer检测与 CNN 的比较。