YOLOv9:物体检测技术的飞跃发展
YOLO是基于深度学习和计算机视觉领域的尖端技术,在速度和准确性方面具有无与伦比的性能。其流线型设计使其适用于各种应用,并可轻松适应从边缘设备到云 API 等不同硬件平台。
相关链接
YOLOv9 引入了可编程梯度信息 (PGI) 和广义高效层聚合网络 (GELAN) 等开创性技术,标志着实时目标检测领域的重大进步。该模型在效率、准确性和适应性方面都有显著提高,在 MS COCO 数据集上树立了新的标杆。
YOLOv9 简介
通过整合 PGI 和多功能 GELAN 架构,YOLOv9 不仅增强了模型的学习能力,还确保了在整个检测过程中保留关键信息。
YOLOv9创新
信息瓶颈原理和可逆函数的创新使用是其设计的核心,可确保 YOLOv9 保持高效率和高精度。
信息瓶颈原理
信息瓶颈原理揭示了深度学习中的一个基本挑战:当数据通过网络的连续层时,信息丢失的可能性会增加。这一现象在数学上表现为
I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))
其中I 表示互信息
,而 f 和 g 表示带参数的变换函数 theta 和 phi分别为YOLOv9 通过实施可编程梯度信息(PGI)应对了这一挑战,PGI 有助于保留整个网络深度的重要数据,确保更可靠的梯度生成,从而提高模型的收敛性和性能。
可逆函数
可逆函数的概念是 YOLOv9 设计的另一个基石。如果一个函数可以在不丢失任何信息的情况下被反转,那么这个函数就被认为是可逆的:
X = v_zeta(r_psi(X))
与 psi 和 zeta 分别作为可逆函数及其反函数的参数。这一特性对深度学习架构至关重要,因为它能让网络保留完整的信息流,从而更准确地更新模型参数。YOLOv9 在其架构中加入了可逆函数,以降低信息退化的风险,尤其是在较深的层中,从而确保为物体检测任务保留关键数据。
对轻型模型的影响
解决信息丢失问题对于轻量级模型尤为重要,因为轻量级模型通常参数化不足,在前馈过程中容易丢失大量信息。YOLOv9 的架构通过使用 PGI 和可逆函数,确保即使是精简的模型,也能保留并有效利用准确检测物体所需的基本信息。
可编程梯度信息 (PGI)
PGI 是 YOLOv9 为解决信息瓶颈问题而引入的一个新概念,可确保在深层网络中保留重要数据。这样就可以生成可靠的梯度,促进模型的准确更新,提高整体检测性能。
通用高效层聚合网络(GELAN)
GELAN 是一项战略性的架构进步,使 YOLOv9 能够实现更高的参数利用率和计算效率。它的设计允许灵活集成各种计算模块,使 YOLOv9 能够适应广泛的应用,而不会牺牲速度或精度。
MS COCO 数据集的性能
YOLOv9 在COCO 数据集上的表现体现了其在实时物体检测方面的显著进步,为各种模型大小设定了新的基准。表 1 对最先进的实时物体检测器进行了全面比较,显示了 YOLOv9 的卓越效率和准确性。
表 1.最新实时物体检测器的比较
模型 | 尺寸(像素) | APval 50-95 | APval 50 | APval 75 | params (M) | FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv9-S | 640 | 46.8 | 63.4 | 50.7 | 7.2 | 26.7 |
YOLOv9-M | 640 | 51.4 | 68.1 | 56.1 | 20.1 | 76.8 |
YOLOv9-C | 640 | 53.0 | 70.2 | 57.8 | 25.5 | 102.8 |
YOLOv9-E | 640 | 55.6 | 72.8 | 60.6 | 58.1 | 192.5 |
YOLOv9 的迭代,从较小的 S 变体到广泛的 E 模型,不仅在精度(AP 指标)上有所改进,而且在参数数量和计算需求(FLOPs)减少的情况下提高了效率
。该表强调了 YOLOv9 在提供高精度的同时,与之前的版本和竞争模型相比保持或减少计算开销的能力。
与之相比,YOLOv9 则有显著提高:
··轻量级模型:
YOLOv9-S 在参数效率和计算负荷方面超过了YOLO MS-S,同时在 AP 方面提高了 0.4% 至 0.6%。
··中大型模型:
YOLOv9 模型性能对比
YOLOv9-M 和 YOLOv9-E 在平衡模型复杂性和检测性能之间取得了显著进步。它们在提高精度的同时,大幅减少了参数和计算量。
YOLOv9-C 模型
YOLOv9-C 模型凸显了架构优化的有效性。与 YOLOv7 AF 相比,它的运行参数减少了 42%,计算需求减少了 21%,但却达到了相当的精度。这表明 YOLOv9 的效率有了显著提高。
YOLOv9-E 模型
YOLOv9-E 模型为大型模型设定了新标准。其参数比 YOLOv7 AF 少 15%,计算需求比 YOLOv7 AF 少 25%。相比于 YOLOv8x,参数减少了 15%,计算需求减少了 25%,同时 AP 大幅提高了 1.7%。
这些结果展示了 YOLOv9 在模型设计方面的战略性进步,强调了它在提高效率的同时并没有降低实时物体检测任务所必需的精度。该模型不仅推动了性能指标的发展,而且强调了计算效率的重要性,使其成为计算机视觉领域的一项关键性发展。
YOLOv9 模型性能对比
模型 | 参数数量减少 (%) | 计算需求减少 (%) | AP 提升 (%) |
---|---|---|---|
YOLOv9-C | 42 | 21 | - |
YOLOv9-M | - | - | - |
YOLOv9-E | 15 | 25 | 1.7 |
结论
YOLOv9 代表了实时目标检测领域的关键发展,在效率、准确性和适应性方面都有显著提高。通过 PGI 和 GELAN 等创新解决方案解决关键挑战,YOLOv9 为该领域的未来研究和应用开创了新的先例。随着人工智能领域的不断发展,YOLOv9 充分证明了合作与创新在推动技术进步方面的力量。
示例
Python
from ultralytics import YOLO
# Build a YOLOv9c model from scratch
model = YOLO('yolov9c.yaml')
# Build a YOLOv9c model from pretrained weight
model = YOLO('yolov9c.pt')
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data='coco8.yaml', epochs=100, imgsz=640)
# Run inference with the YOLOv9c model on the 'bus.jpg' image
results = model('path/to/bus.jpg')
CLI
yolo train --data coco8.yaml --epochs 100 --imgsz 640
yolo detect --source path/to/bus.jpg
支持的任务和模式
型号 | 预训练重量 | 支持的任务 | 推论 | 验证 | 培训 | 出口 |
---|---|---|---|---|---|---|
YOLOv9-C | yolov9c.pt | 物体检测 | ✅ | ✅ | ✅ | ✅ |
YOLOv9-E | yolov9e.pt | 物体检测 | ✅ | ✅ | ✅ | ✅ |
本表提供了 YOLOv9 模型变体的详细概述,重点介绍了它们在物体检测任务中的功能以及与推理、验证、训练和导出等各种操作模式的兼容性。
这种全面的支持可确保用户在各种物体检测场景中充分利用 YOLOv9 模型的功能。
未完待续……后续更新训练等教程