YOLOv9: A Leap Forward in Object Detection Technology
YOLOv9 marks a significant advancement in real-time object detection, introducing groundbreaking techniques such as Programmable Gradient Information (PGI) and the Generalized Efficient Layer Aggregation Network (GELAN). This model demonstrates remarkable improvements in efficiency, accuracy, and adaptability, setting new benchmarks on the MS COCO dataset. The YOLOv9 project, while developed by a separate open-source team, builds upon the robust codebase provided by Ultralytics YOLOv5, showcasing the collaborative spirit of the AI research community.
Watch: YOLOv9 Training on Custom Data using Ultralytics | Industrial Package Dataset
Introduction to YOLOv9
In the quest for optimal real-time object detection, YOLOv9 stands out with its innovative approach to overcoming information loss challenges inherent in deep neural networks. By integrating PGI and the versatile GELAN architecture, YOLOv9 not only enhances the model's learning capacity but also ensures the retention of crucial information throughout the detection process, thereby achieving exceptional accuracy and performance.
Core Innovations of YOLOv9
YOLOv9's advancements are deeply rooted in addressing the challenges posed by information loss in deep neural networks. The Information Bottleneck Principle and the innovative use of Reversible Functions are central to its design, ensuring YOLOv9 maintains high efficiency and accuracy.
Information Bottleneck Principle
The Information Bottleneck Principle reveals a fundamental challenge in deep learning: as data passes through successive layers of a network, the potential for information loss increases. This phenomenon is mathematically represented as:
where I
denotes mutual information, and f
and g
represent transformation functions with parameters theta
and phi
, respectively. YOLOv9 counters this challenge by implementing Programmable Gradient Information (PGI), which aids in preserving essential data across the network's depth, ensuring more reliable gradient generation and, consequently, better model convergence and performance.
Reversible Functions
The concept of Reversible Functions is another cornerstone of YOLOv9's design. A function is deemed reversible if it can be inverted without any loss of information, as expressed by:
with psi
and zeta
as parameters for the reversible and its inverse function, respectively. This property is crucial for deep learning architectures, as it allows the network to retain a complete information flow, thereby enabling more accurate updates to the model's parameters. YOLOv9 incorporates reversible functions within its architecture to mitigate the risk of information degradation, especially in deeper layers, ensuring the preservation of critical data for object detection tasks.
Impact on Lightweight Models
Addressing information loss is particularly vital for lightweight models, which are often under-parameterized and prone to losing significant information during the feedforward process. YOLOv9's architecture, through the use of PGI and reversible functions, ensures that even with a streamlined model, the essential information required for accurate object detection is retained and effectively utilized.
Programmable Gradient Information (PGI)
PGI is a novel concept introduced in YOLOv9 to combat the information bottleneck problem, ensuring the preservation of essential data across deep network layers. This allows for the generation of reliable gradients, facilitating accurate model updates and improving the overall detection performance.
Generalized Efficient Layer Aggregation Network (GELAN)
GELAN代表了战略架构的进步,使YOLOv9能够实现卓越的参数利用率和计算效率。其设计允许灵活集成各种计算模块,使YOLOv9能够适应广泛的应用场景,而不会牺牲速度或准确性。
YOLOv9基准测试
在YOLOv9中使用Ultralytics进行基准测试涉及评估您训练和验证模型在实际场景中的性能。此过程包括:
- 性能评估: 评估模型的速度和准确性。
- 导出格式: 在不同导出格式下测试模型,以确保其符合必要标准并在各种环境中表现良好。
- 框架支持: 在Ultralytics YOLOv8中提供一个全面的框架,以促进这些评估并确保一致且可靠的结果。
通过基准测试,您可以确保您的模型不仅在受控测试环境中表现良好,而且在实际应用中也能保持高性能。
观看: 如何使用Ultralytics Python包对YOLOv9模型进行基准测试
在MS COCO数据集上的性能
YOLOv9在COCO数据集上的性能展示了其在实时目标检测方面的显著进步,为各种模型尺寸设定了新的基准。表1展示了最先进的实时目标检测器的全面比较,展示了YOLOv9在效率和准确性方面的优越性。
表1. 最先进的实时目标检测器比较
性能
模型 | 尺寸 (像素) |
mAPval 50-95 |
mAPval 50 |
参数 (M) |
FLOPs (B) |
---|---|---|---|---|---|
YOLOv9t | 640 | 38.3 | 53.1 | 2.0 | 7.7 |
YOLOv9s | 640 | 46.8 | 63.4 | 7.2 | 26.7 |
YOLOv9m | 640 | 51.4 | 68.1 | 20.1 | 76.8 |
YOLOv9c | 640 | 53.0 | 70.2 | 25.5 | 102.8 |
YOLOv9e | 640 | 55.6 | 72.8 | 58.1 | 192.5 |
模型 | 尺寸 (像素) |
mAPbox 50-95 |
mAPmask 50-95 |
参数 (M) |
FLOPs (B) |
---|---|---|---|---|---|
YOLOv9c-seg | 640 | 52.4 | 42.2 | 27.9 | 159.4 |
YOLOv9e-seg | 640 | 55.1 | 44.3 | 60.5 | 248.4 |
YOLOv9的迭代,从微小的t
变体到广泛的e
模型,不仅在准确性(mAP指标)上有所提升,而且在效率上也通过减少参数数量和计算需求(FLOPs)实现了改进。此表强调了YOLOv9在保持或降低计算开销的同时,提供高精度的能力,相较于之前的版本和竞争模型。
相比之下,YOLOv9展示了显著的提升:
- 轻量级模型:YOLOv9s在参数效率和计算负载方面超越了YOLO MS-S,同时在AP上实现了0.4∼0.6%的提升。
- 中大型模型:YOLOv9m和YOLOv9e在模型复杂性与检测性能之间的平衡上显示出显著进步,在提高准确性的同时,显著减少了参数和计算量。
特别是YOLOv9c模型,突显了架构优化的有效性。它的参数减少了42%,计算需求降低了21%,相比YOLOv7 AF,却达到了相当的准确性,展示了YOLOv9在效率上的显著提升。此外,YOLOv9e模型为大型模型树立了新标准,其参数减少了15%,计算需求降低了25%,相比YOLOv8x,AP提升了1.7%。
这些结果展示了YOLOv9在模型设计上的战略性进步,强调了在不牺牲实时目标检测任务所需精度的前提下,提升了效率。该模型不仅推动了性能指标的边界,还强调了计算效率的重要性,使其成为计算机视觉领域的重要发展。
结论
YOLOv9代表了实时目标检测领域的关键发展,在效率、准确性和适应性方面提供了显著改进。通过创新的解决方案如PGI和GELAN来应对关键挑战,YOLOv9为该领域的未来研究和应用设定了新标准。随着AI社区的不断发展,YOLOv9证明了合作与创新在推动技术进步中的力量。
使用示例
此示例提供了简单的YOLOv9训练和推理示例。有关这些模式和其他模式的完整文档,请参阅预测、训练、验证和导出文档页面。
示例
PyTorch预训练的*.pt
模型以及配置*.yaml
文件可以传递给YOLO()
类,以在Python中创建模型实例:
from ultralytics import YOLO
# 从头构建一个YOLOv9c模型
model = YOLO("yolov9c.yaml")
# 从预训练权重构建一个YOLOv9c模型
model = YOLO("yolov9c.pt")
# 显示模型信息(可选)
model.info()
# 在COCO8示例数据集上训练模型100个周期
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# 在'bus.jpg'图像上使用YOLOv9c模型进行推理
results = model("path/to/bus.jpg")
支持的任务和模式
YOLOv9系列提供了多种模型,每种模型都针对高性能目标检测进行了优化。这些模型适应不同的计算需求和精度要求,使其适用于广泛的实际应用。
模型 | 文件名 | 任务 | 推理 | 验证 | 训练 | 导出 |
---|---|---|---|---|---|---|
YOLOv9 | yolov9t yolov9s yolov9m yolov9c.pt yolov9e.pt |
目标检测 | ✅ | ✅ | ✅ | ✅ |
YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt |
实例分割 | ✅ | ✅ | ✅ | ✅ |
该表格详细概述了YOLOv9模型的变体,突出了它们在目标检测任务中的能力以及与各种操作模式(如推理、验证、训练和导出)的兼容性。这种全面的支持确保用户可以在广泛的目标检测场景中充分利用YOLOv9模型的能力。 |
Note
训练YOLOv9模型将需要更多资源并且比同等大小的YOLOv8模型花费更长时间。
引用和致谢
我们感谢YOLOv9的作者在实时目标检测领域做出的重大贡献:
原始的YOLOv9论文可以在arXiv上找到。作者已将其工作公开,代码库可以在GitHub上访问。我们感谢他们在推动该领域进步并使其工作对更广泛的社区可访问方面所做的努力。
常见问题
YOLOv9为实时目标检测引入了哪些创新?
YOLOv9引入了开创性的技术,如可编程梯度信息(PGI)和广义高效层聚合网络(GELAN)。这些创新解决了深度神经网络中的信息丢失挑战,确保了高效率、准确性和适应性。PGI在网络层之间保留了关键数据,而GELAN优化了参数利用和计算效率。了解更多关于YOLOv9的核心创新,这些创新在MS COCO数据集上设定了新的基准。
与其它模型相比,YOLOv9在MS COCO数据集上的表现如何?
YOLOv9在实现更高准确性和效率方面优于最先进的实时目标检测器。在COCO数据集上,YOLOv9模型在各种尺寸上表现出优越的mAP分数,同时保持或减少了计算开销。例如,YOLOv9c在参数减少42%和计算需求减少21%的情况下,实现了与YOLOv7 AF相当的准确性。探索性能比较以获取详细指标。
如何使用Python和CLI训练YOLOv9模型?
您可以使用Python和CLI命令训练YOLOv9模型。对于Python,使用YOLO
类实例化一个模型并调用train
方法:
from ultralytics import YOLO
# 从预训练权重构建YOLOv9c模型并训练
model = YOLO("yolov9c.pt")
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
对于CLI训练,执行:
了解更多关于使用示例以进行训练和推理。
使用Ultralytics YOLOv9进行轻量级模型的优势是什么?
YOLOv9旨在缓解信息丢失问题,这对于经常丢失大量信息的轻量级模型尤为重要。通过集成可编程梯度信息(PGI)和可逆函数,YOLOv9确保了关键数据的保留,增强了模型的准确性和效率。这使其非常适合需要高性能紧凑模型的应用。了解更多关于YOLOv9对轻量级模型的影响。
YOLOv9支持哪些任务和模式?
YOLOv9支持各种任务,包括目标检测和实例分割。它兼容多种操作模式,如推理、验证、训练和导出。这种多功能性使YOLOv9适用于多样化的实时计算机视觉应用。参考支持的任务和模式部分以获取更多信息。