YOLOv9 vs.YOLOv7:深入了解物体检测的演变
计算机视觉领域的特点是快速创新,架构上的突破不断重新定义速度和精度的界限。YOLOv9 和YOLOv7 是这一历程中的两个重要里程碑。 这两个模型都源自王建尧及其同事的研究,代表了 "You Only Look Once "家族的不同世代。
虽然 YOLOv7于 2022 年发布,为实时目标检测设定了标准、 YOLOv9于 2024 年出现,它采用了新的机制来解决深度网络中的信息丢失问题。本比较探讨了它们的技术规格、架构差异和实际应用,以帮助开发人员根据自己的需求选择最佳模型。
性能指标和效率
从YOLOv7 到YOLOv9 的演变最明显地体现在计算成本和检测性能之间的权衡上。YOLOv9 带来了显著的效率提升,与前代产品相比,它能以更少的参数实现更高的平均精度(mAP)。
例如,YOLOv9m模型实现了与YOLOv7l相同的 51.4%mAPval,但使用的参数(20.0M 对 36.9M)几乎只有YOLOv7l的一半,FLOP 也显著减少。这种效率使YOLOv9 对硬件资源有限的边缘人工智能应用特别有吸引力。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
YOLOv9:可编程渐变信息
YOLOv9 代表着深度神经网络处理层间数据传输的模式转变。它于 2024 年初发布,专门针对 "信息瓶颈 "问题,即数据在通过深度网络的连续层时丢失。
作者:王建尧、廖鸿源Chien-Yao Wang, Hong-Yuan Mark Liao
组织:中央研究院信息科学研究所
日期:2024-02-21
Arxiv:2402.13616
GitHub:WongKinYiu/yolov9
文档:Ultralytics YOLOv9
建筑创新
YOLOv9 的核心创新是引入了可编程梯度信息 (PGI)。PGI 提供了一个辅助监督框架,可确保梯度可靠地传播回初始层,从而保留在特征提取过程中可能丢失的重要输入信息。
通用高效层聚合网络(GELAN)是对 PGI 的补充。该架构允许开发人员灵活堆叠各种计算模块(如 CSP 或 ResBlocks),在不牺牲精度的情况下,针对特定硬件限制优化模型权重。
优势与劣势
- 优势:
- 弱点:
YOLOv7:免费赠品袋标准
YOLOv9 之前、 YOLOv7是YOLO 系列的卫冕冠军。它引入了架构上的改进,重点是在不增加推理成本的情况下优化训练过程,这一概念被称为 "bag-of-freebies"。
作者: Chien-Yao Wang、Alexey Bochkovskiy、Hong-Yuan Mark LiaoChien-Yao Wang, Alexey Bochkovskiy, Hong-Yuan Mark Liao
Organization:中央研究院信息科学研究所
日期:2022-07-06
Arxiv:2207.02696
GitHub:WongKinYiu/yolov7
文档:Ultralytics YOLOv7
建筑概览
YOLOv7 引入了E-ELAN(扩展高效层聚合网络),通过控制最短和最长梯度路径来提高网络的学习能力。它还利用模型缩放技术,同时修改网络的深度和宽度,确保为不同的目标设备提供最佳架构。
优势与劣势
- 优势:
- 经过验证的可靠性:经过数年的广泛社区使用和验证,使其成为传统系统的稳定选择。
- 高速:专为在标准GPU 硬件上进行实时推理而优化。
- 弱点:
- 效率较低:需要更多参数和 FLOP,才能达到YOLOv9 或YOLOv9 等新型号的精度水平。 YOLO11等新型号的精度水平。
- 工具陈旧:缺乏现代Ultralytics 生态系统中的一些本地集成和易用功能。
理想的使用案例和应用
在这两种模式之间做出选择,往往取决于部署环境的具体限制和任务所需的精确度。
何时选择YOLOv9
YOLOv9 非常适合要求最高精度-效率比的场景。
- 自主导航:在自动驾驶汽车中,探测远距离的小物体至关重要。YOLOv9 保存信息的能力有助于识别远处的危险。
- 医学影像:对于肿瘤检测等任务来说,漏检是至关重要的,而YOLOv9 的高召回率和准确率则非常有益。
- 边缘设备: 字段
yolov9t该变体为 物联网设备 如 Raspberry Pis,以最小的计算开销提供良好的精确度。
何时选择YOLOv7
YOLOv7 仍适用于已针对其架构进行优化的现有管道。
利用Ultralytics实现性能平衡
虽然YOLOv9 和YOLOv7 功能强大,但希望在速度、准确性和开发人员体验之间取得最终平衡的开发人员应该考虑 Ultralytics YOLO11.YOLO11 将前几代产品的最佳功能与精简的应用程序接口整合在一起,在单一框架中支持检测、分割、姿势估计 和分类。
Ultralytics 的优势
与使用原始研究资料库相比,在Ultralytics 生态系统中使用这些模型具有明显的优势。Ultralytics Python 应用程序接口抽象了复杂的模板代码,使研究人员和工程师能够专注于数据和结果。
- 易于使用:统一的界面让您只需一行代码即可在YOLOv8、YOLOv9 和YOLO11 之间进行切换。
- 训练效率: Ultralytics 模型经过优化,收敛速度更快,通常只需要更少的训练数据就能达到很高的精度。
- 内存要求:该框架旨在最大限度地减少CUDA 内存使用量,与内存密集型硬件相比,它能在消费级硬件上进行更大批量的训练。 Transformer模型。
- 多功能性:除了简单的边界框,该生态系统还支持实例分割、姿势估计 和定向边界框(旋转框检测)任务,使其成为应对各种人工智能挑战的综合工具。
实施实例
使用Ultralytics 库可以直接运行这些模型。下面的代码片段演示了如何加载预训练模型并在图像上运行推理。
from ultralytics import YOLO
# Load a pre-trained YOLOv9 model
model = YOLO("yolov9c.pt")
# Run inference on a local image
results = model.predict("path/to/image.jpg", save=True, conf=0.5)
# Process results
for result in results:
result.show() # Display predictions
对于那些有兴趣在自定义数据集上进行训练的人来说,利用框架内置的强大超参数调整和数据增强策略,训练过程同样简单。
# Train the model on a custom dataset
model.train(data="coco8.yaml", epochs=100, imgsz=640)
结论
YOLOv9 和YOLOv7 都代表了计算机视觉领域的重大成就。 YOLOv9通过其创新的 PGI 和 GELAN 体系结构提供了卓越的参数效率和准确性。对于希望从 Wang 等人的特定研究系列中获得高性能的用户来说,YOLOv9 是值得推荐的选择。
然而,对于寻求最全面的人工智能开发体验的开发人员来说,Ultralytics 是一个不错的选择、 Ultralytics YOLO11仍然是最值得推荐的。YOLO11 拥有积极的维护、丰富的文档以及对多模式任务的广泛支持,可确保您的项目面向未来并为生产做好准备。
探索其他模型
为了进一步拓宽您对物体检测领域的了解,请考虑探索这些相关模型并进行比较:
- YOLO11 与YOLOv9- 将最新的Ultralytics 模型与YOLOv9 进行比较。
- YOLOv8 vs.YOLOv7- 看看上一代产品的性能如何。
- RT-DETR 与YOLOv9-Transformer检测与 CNN 的比较。
- YOLOv10- 探索实时端到端物体检测模型。
- Ultralytics HUB- 训练和部署模型的最简单方法。