PP-YOLOE+ 与 YOLOX:高级无锚物体检测比较
选择最佳物体检测架构需要深入了解准确性、推理速度和部署复杂性之间的权衡。本指南对百度的工业级检测器PP-YOLOE+ 和 Megvii 的高性能无锚模型YOLOX 进行了技术比较。这两种架构都是向无锚点检测器转变的重要里程碑,为计算机视觉工程师提供了强大的解决方案。
PP-YOLOE+:来自百度的工业精品
PP-YOLOE+是 PP-YOLOE 的进化版,由PaddlePaddle 作者在 百度.它于 2022 年 4 月发布,是综合PaddleDetection套件的一部分。PP-YOLOE+ 专为工业应用而设计,利用PaddlePaddle 框架的功能,优化了训练效率和推理精度之间的平衡。
技术细节:
- 作者: PaddlePaddle Authors
- 组织机构:百度
- 日期: 2022-04-02
- Arxiv 链接:PP-YOLOE:YOLO的进化版
- GitHub 链接:PaddleDetection 代码库
- 文档链接:PP-YOLOE+ 文档
架构和主要特性
PP-YOLOE+ 在架构上进行了多项创新,旨在最大限度地提高各种硬件的性能:
- 可扩展骨干网:它采用CSPRepResNet 主干网,将残差网络的特征提取能力与跨阶段部分(CSP)连接的效率相结合。
- 任务对齐学习(TAL):TAL 是一种专门的损失函数,可动态对齐分类和定位任务,确保最高置信度分数与最精确的边界框相对应,这是 TAL 的一项重要创新。
- 高效任务对齐探测头(ET-Head):该模型采用无锚磁头,简化了检测磁头的设计,在保持高精度的同时减少了计算开销。
优势与劣势
PP-YOLOE+ 在特定的部署方案中发挥了强大的作用,但也受到生态系统的限制。
优势:
- 最先进的准确性:该模型在COCO 数据集上取得了优异的成绩,PP-YOLOE+x 变体的 mAP 达到54.7%,使其适用于缺陷检测等高精度任务。
- 推理效率:通过在PaddlePaddle 框架中进行算子融合等优化,它在GPU 硬件上提供了具有竞争力的速度,尤其是对于较大的模型尺寸。
弱点:
- 框架依赖性:主要依赖于 PaddlePaddle生态系统的主要依赖可能会成为使用 PyTorch或TensorFlow
- 部署复杂:将这些模型移植到其他推理引擎(如ONNX Runtime 或TensorRT)通常需要特定的转换工具,而这些工具可能并不支持所有自定义运算符。
YOLOX:无锚先锋
YOLOX于 2021 年由美国 Megvii 公司的研究人员推出。 Megvii.与之前的YOLO 迭代相比,此举大大简化了训练管道。YOLOX 在学术研究和实际工业应用之间架起了一座桥梁,影响了许多后续的物体检测架构。
技术细节:
- 作者: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, 和 Jian Sun
- 组织机构Megvii
- 日期: 2021-07-18
- Arxiv 链接:YOLOX:2021 年超越YOLO 系列
- GitHub 链接:YOLOX 代码库
- 文档链接:YOLOX 文档
架构和主要特性
YOLOX 为YOLO 系列引入了 "无锚杆 "设计理念:
- 解耦磁头:与在耦合分支中执行分类和定位的传统YOLO 磁头不同,YOLOX 将这些任务分开。这种分离提高了收敛速度和最终精度。
- SimOTA 标签分配:YOLOX 采用SimOTA(简化最优传输分配),这是一种动态标签分配策略,可自动为每个地面实况对象选择最佳正样本,从而减少了对复杂超参数调整的需求。
- 无锚机制:通过消除预定义的锚点框,YOLOX 减少了设计参数的数量,并提高了对象形状的通用性,尤其是对于那些具有极端长宽比的对象。
优势与劣势
优势:
- 实施简单:移除锚点和使用标准PyTorch 操作,使代码库相对容易理解,并可为研究目的进行修改。
- 强大的基准线:它是学术界研究先进培训技术和建筑改造的绝佳基线。
弱点:
- 性能老化:虽然在 2021 年具有革命性意义,但其原始性能指标(速度/精确度权衡)已被更新的机型超越,如 YOLOv8和YOLO11。
- 训练资源强度:与简单的静态分配方法相比,SimOTA 等高级分配策略会增加训练阶段的计算负荷。
遗产支持
虽然 YOLOX 仍广泛应用于研究领域,但寻求长期支持和主动更新的开发人员可能会发现更新的架构更有利于生产环境。
技术性能比较
在选择 PP-YOLOE+ 和 YOLOX 时,标准基准的性能指标为决策提供了最客观的依据。以下数据着重说明了它们在COCO 验证集上的性能。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| PP-YOLOE+t | 640 | 39.9 | - | 2.84 | 4.85 | 19.15 |
| PP-YOLOE+s | 640 | 43.7 | - | 2.62 | 7.93 | 17.36 |
| PP-YOLOE+m | 640 | 49.8 | - | 5.56 | 23.43 | 49.91 |
| PP-YOLOE+l | 640 | 52.9 | - | 8.36 | 52.2 | 110.07 |
| PP-YOLOE+x | 640 | 54.7 | - | 14.3 | 98.42 | 206.59 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
分析
- 精度优势:在模型规模相当的情况下,PP-YOLOE+ 始终优于 YOLOX。PP-YOLOE+x 模型的 mAP 为54.7%,比 YOLOX-x 的 51.1% 有显著提高。
- 效率: PP-YOLOE+ 显示出卓越的参数效率。例如
s变体的准确率更高(43.7% 对 40.5%),而使用的参数(7.93M 对 9.0M)和 FLOP 更少。 - 推理速度:虽然 YOLOX 在较小尺寸上仍具有竞争力,但 PP-YOLOE+ 在GPU 硬件(T4TensorRT)上的扩展能力更强,尽管精度更高,但其大型和超大型模型的推理速度更快。
Ultralytics YOLO11:现代标准
虽然 PP-YOLOE+ 和 YOLOX 是功能强大的探测器,但计算机视觉领域的发展日新月异。对于寻求性能、可用性和生态系统支持的最佳组合的开发人员来说,PP-YOLOE+ 和 YOLOX 是最佳选择、 Ultralytics YOLO11是最先进的选择。
为什么选择 Ultralytics YOLO11?
- 易于使用:与研究资源库或特定框架工具通常需要的复杂设置不同,YOLO11 提供了精简的Python API和CLI。从安装到推理只需几秒钟。
- 维护良好的生态系统: Ultralytics 模型拥有强大的生态系统支持,包括频繁的更新、广泛的文档以及与 MLOps 工具的无缝集成。
- 性能平衡: YOLO11 的设计在速度和准确性之间进行了有利的权衡,在训练和推理过程中,其性能往往优于内存需求较低的前几代产品。
- 多功能性:PP-YOLOE+ 和 YOLOX 主要侧重于边界框检测,而YOLO11 则在一个框架内原生支持实例分割、姿势估计 、定向边界框(旋转框检测)和分类。
- 训练效率: Ultralytics 模型针对高效训练进行了优化,利用先进的增强技术和随时可用的预训练权重来减少达到收敛所需的时间和计算资源。
真实案例
使用YOLO11 进行物体检测非常直观。下面的示例演示了如何加载预训练模型并对图像执行推理:
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Perform inference on a local image
results = model("path/to/image.jpg")
# Display the results
results[0].show()
这种简便性与其他架构通常需要的多步骤配置形成鲜明对比,使开发人员能够专注于解决业务问题,而不是纠结于代码。
结论
PP-YOLOE+和YOLOX都在计算机视觉领域做出了重大贡献。PP-YOLOE+ 是深度集成到百度PaddlePaddle 生态系统、需要高工业精度的用户的绝佳选择。对于研究无锚方法的研究人员来说,YOLOX 仍然是备受推崇的基准。
然而,对于大多数新项目而言,Ultralytics Ultralytics YOLO11提供了最有吸引力的软件包。它集尖端性能、低内存使用率和无与伦比的开发人员体验于一身,是部署可扩展实时推理解决方案的最佳选择。