跳转至内容

YOLOX 与YOLOv9:技术比较

物体检测选择正确的架构是一项关键决策,会影响计算机视觉项目的速度、准确性和部署可行性。本分析比较了 2021 年发布的关键无锚模型YOLOXYOLOv9和 2024 年推出的利用可编程梯度信息 (PGI) 的先进架构 YOLOv9 进行了比较。

YOLOX 改变了无锚检测的模式,而YOLOv9 则引入了新的机制来保留深度网络中的信息,并提供了卓越的性能指标。本指南对它们的架构、基准和理想用例进行了分析,以帮助您选择最适合您需求的模型。

YOLOX:无锚先锋

YOLOX 的发布旨在通过简化检测头和消除对预定义锚箱的依赖,缩小研究界与工业应用之间的差距。

作者:葛铮、刘松涛、王峰、李泽明、孙健Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, and Jian Sun
Organization:Megvii
Date:2021-07-18
Arxiv:arXiv:2107.08430
GitHub:Megvii-BaseDetection/YOLOX
Docs:YOLOX Documentation

建筑亮点

YOLOX 引入了一种解耦头架构,将分类和回归任务分离开来。这种分离使模型收敛更快,精度更高。它还采用了无锚机制,无需通过聚类分析来确定最佳锚框大小,从而使模型对不同的物体形状更加稳健。此外,YOLOX 利用SimOTA进行标签分配,将这一过程视为最佳传输问题,从而提高了训练的稳定性。

优势与劣势

  • 优势:无锚设计简化了超参数调整过程。与那个时代的耦合磁头相比,解耦磁头通常能为定位任务提供更高的精度。
  • 弱点:作为 2021 模型,它缺乏更新架构中的现代优化功能。与使用先进数据增强和层聚合技术的模型相比,它可能需要更多的训练数据才能达到峰值性能。

YOLOv9:可编程渐变信息

YOLOv9 是一次重大飞跃,它解决了深度神经网络固有的 "信息瓶颈 "问题。

作者:王建尧、廖鸿源Chien-Yao Wang, Hong-Yuan Mark Liao
组织:中央研究院信息科学研究所
日期:2024-02-21
Arxiv:arXiv:2402.13616
GitHub:WongKinYiu/yolov9
文档:Ultralytics YOLOv9 文档

建筑亮点

YOLOv9 引入了可编程梯度信息 (PGI)广义高效层聚合网络 (GELAN )。PGI 可防止数据通过深层时丢失关键输入信息,确保为模型更新生成可靠的梯度。GELAN 优化了参数利用率,使模型既轻便又精确。这些创新使YOLOv9 在效率和平均精度(mAP)方面都大大优于前代产品。

优势与劣势

  • 优势:出色的精度参数比,使其在实时应用中非常高效。与之前的迭代相比,该架构能更好地保护信息流,从而更好地检测小型物体。
  • 缺点作为一种较新的架构,与传统型号相比,它可能需要更新CUDA 驱动程序和硬件支持。

了解有关YOLOv9的更多信息

性能对比

下表对比了 YOLOX 和YOLOv9 在COCO 数据集上的性能。YOLOv9 始终以较少的参数获得较高的mAP 分数,这突出表明了 GELAN 架构的效率。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.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

分析: YOLOv9 的性能密度大幅提升。例如,YOLOv9c仅用25.3M 个参数就获得了53.0% 的mAP,而YOLOX-L则需要54.2M 个参数才能获得49.7%mAP的较低分数。这表明,YOLOv9 在这一精度等级的参数使用效率方面大约是YOLOv9 的两倍。

效率问题

边缘设备上部署时,FLOP 和参数与mAP 同等重要。YOLOv9 的 GELAN 架构大大降低了计算开销,从而使移动部署中的设备运行速度更快,电池寿命更长。

Ultralytics 的优势

虽然 YOLOX 是一个强大的独立存储库,但在Ultralytics 生态系统中使用YOLOv9 为开发人员和研究人员提供了独特的优势。

易于使用和集成

Ultralytics 框架统一了模型交互。您可以使用简单、直观的Python API 对 YOLOv9 进行训练、验证和部署。这与 YOLOX 代码库形成鲜明对比,后者通常需要对环境变量和数据集路径进行更多手动配置。

from ultralytics import YOLO

# Load a pre-trained YOLOv9 model
model = YOLO("yolov9c.pt")

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

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

维护良好的生态系统

Ultralytics 模型受益于持续更新、错误修复和社区支持。与Ultralytics HUB的集成实现了无缝MLOps,使团队能够管理数据集、track 实验并将模型部署为各种格式ONNX、TensorRT、CoreML),而无需编写复杂的导出脚本。

性能平衡与内存效率

Ultralytics YOLO 模型的设计在速度和精度之间实现了实用的平衡。此外,与老式架构或transformer重型transformer的模型相比,它们在训练过程中通常内存需求较低。这种效率降低了云计算成本,并使消费级GPU 也能进行训练。

多功能性

虽然 YOLOX 主要是一个对象检测器,但Ultralytics 框架扩展了其支持模型的功能。用户可以使用类似的语法和工作流程在实例分割姿势估计 定向边界框(旋转框检测)检测等任务之间轻松切换,这是独立研究资源库通常缺乏的多功能性。

理想用例

何时选择YOLOv9

  • 自主系统: YOLOv9 的高精确度非常适合自动驾驶汽车,在这种汽车中,探测远处的小障碍物对安全至关重要。
  • 实时分析:对于零售或交通管理,YOLOv9c 可提供高帧频和精确检测。
  • 边缘人工智能:GELAN 的架构效率使 YOLOv9t 和 YOLOv9s 非常适合部署在NVIDIA Jetson 或 Raspberry Pi 等设备上。

何时选择 YOLOX

  • 传统集成:如果现有的生产流水线已经围绕特定的 YOLOX 无锚磁头格式进行了大量设计。
  • 学术研究:专门研究早期无锚探测器中去耦磁头行为的研究人员可能会发现 YOLOX 是一个非常有价值的比较基准。

结论

这两种架构在计算机视觉史上都占有一席之地。2021 年,YOLOX 成功挑战了基于锚点的现状。然而、 YOLOv9代表了现代标准,融合了多年来在梯度流优化和层聚合方面的进步。

对于大多数新开发项目而言,YOLOv9 是值得推荐的选择。Ultralytics 每参数性能优越,加上Ultralytics 生态系统提供的易用性、培训效率和强大的部署选项,确保了从概念到生产的快速通道。

探索生态系统中的其他现代选择,如 YOLO11YOLOv8以找到最适合您特定应用限制的方案。


评论