YOLOX 与YOLOv10:技术比较
物体检测领域的发展日新月异,其驱动力来自于对兼顾高精度和实时推理速度的模型的需求。YOLOX和 YOLOv10是这一时间线上的两个重要里程碑。2021 年发布的 YOLOX 通过引入无锚架构重振了YOLO 系列,而 2024 年发布的YOLOv10 则通过消除对非最大值抑制NMS)的需求设定了新标准,从而显著减少了推理延迟。
本综合分析报告探讨了这两种模型的架构创新、性能指标和理想用例,帮助开发人员和研究人员为其计算机视觉应用选择最佳工具。
YOLOX:无锚先锋
2021 年,Megvii 推出了 YOLOX,标志着早期YOLO 版本不再采用基于锚的设计。YOLOX 采用无锚机制,并整合了去耦合头和 SimOTA 等先进技术,实现了极具竞争力的性能,缩小了研究框架与工业应用之间的差距。
技术细节:
作者:Zheng Ge, SongtaoLiu,Feng Wang,Zeming Li, andJian SunZheng Ge, Songtao Liu, Feng Wang, Zeming Li, and Jian Sun
Organization:Megvii
Date:2021-07-18
Arxiv:https://arxiv.org/abs/2107.08430
GitHub:https://github.com/Megvii-BaseDetection/YOLOX
Docs:https://yolox.readthedocs.io/en/latest/
架构和主要特性
YOLOX 与YOLOv4和YOLOv5等前代产品不同。 YOLOv5YOLOX 与 YOLOv4 和 YOLOv5 等前代产品的不同之处在于,YOLOX 实施了几项关键的架构变革,旨在提高泛化能力并简化训练管道。
- 无锚机制:通过移除预定义的锚点框,YOLOX 无需手动调整锚点,从而使模型对不同的物体形状更加稳健,并减少了设计参数的数量。
- 解耦头:与共享分类和定位特征的耦合头不同,YOLOX 使用的是解耦头。这种分离允许每个任务独立优化其参数,从而加快收敛速度,提高整体精度。
- SimOTA 标签分配:YOLOX 引入了 SimOTA(简化最优传输分配),这是一种动态标签分配策略,将分配问题视为最优传输任务。这种方法能有效适应不同的对象尺度,并提高训练的稳定性。
- 强大的增强功能:训练管道采用了MixUp 和 Mosaic数据增强技术,这对取得当时最先进的结果至关重要。
优势与劣势
优势:
- 高精确度:YOLOX 在COCO 数据集上的mAP 得分很高,尤其是其较大的变体,如 YOLOX-x。
- 简化设计:无锚方法减少了启发式超参数,简化了模型配置。
- 传统支持:作为一种成熟的模式,它已在各种学术和工业环境中进行了广泛测试。
弱点:
- 更高的延迟:与现代探测器相比,YOLOX 依靠NMS 后处理,这可能成为超低延迟应用的瓶颈。
- 计算成本:与较新的模型相比,它通常需要更多的FLOP和参数才能达到类似的精度。
- 集成:虽然它是开源的,但缺乏Ultralytics 生态系统中的无缝集成,可能需要在部署管道方面付出更多努力。
YOLOv10:实时端到端检测
YOLOv10 由清华大学的研究人员于 2024 年 5 月发布,它代表了实时目标检测领域的范式转变。通过消除对非最大抑制NMS)的需求和优化模型组件以提高效率,YOLOv10 以显著降低的计算开销实现了卓越的速度和精度。
技术细节:
作者:Ao Wang,Hui Chen,Lihao Liu,et al:Ao Wang, Hui Chen, Lihao Liu, et al.
Organization:清华大学
日期:2024-05-23
Arxiv:https://arxiv.org/abs/2405.14458
GitHub:https://github.com/THU-MIG/yolov10
Docsultralytics
建筑与创新
YOLOv10 侧重于以效率和准确性为导向的整体模型设计,同时涉及架构和后处理管道。
- NMS 训练:最具突破性的功能是使用一致的双重分配。这种策略允许使用丰富的监督信号对模型进行训练,同时在推理过程中实现一对一匹配。这消除了对NMS 的需求,而NMS 是部署中常见的延迟瓶颈。
- 整体模型设计: YOLOv10 采用了轻量级分类头、空间通道解耦下采样和等级引导块设计。这些优化措施在不影响性能的前提下减少了计算冗余和内存使用。
- 大内核卷积:该架构有选择性地使用大内核深度卷积来扩大感受野,从而增强对小型物体的检测。
优势和优点
优势:
- 最先进的效率: YOLOv10 在速度和精度之间实现了无与伦比的权衡。NMS 设计大大降低了端到端延迟。
- 参数效率:与前几代产品相比,它能以更少的参数实现更高的精度,因此非常适合Raspberry Pi 等边缘人工智能设备。
- Ultralytics 集成:作为Ultralytics 生态系统的一部分,Ultralytics 可确保其易于使用、文档齐全,并支持各种导出格式,如 ONNX和 TensorRT.
性能分析
下表比较了 YOLOX 和YOLOv10 在COCO 基准数据集上的性能。这些指标凸显了较新模型在效率方面的显著改进。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
分析: 数据清楚地表明了YOLOv10 在效率方面的优势。例如,YOLOv10的mAP 比YOLOX-s(40.5%)高出46.7%,而使用的参数却更少(7.2M 对 9.0M)。值得注意的是,YOLOv10的准确度(54.4% 对 51.1%)超过了YOLOX-x,而速度却大大加快(12.2ms 对 16.1ms),所需的参数(56.9M 对 99.1M)也减少了近一半。这种效率使YOLOv10 成为实时系统的更好选择。
效率洞察
YOLOv10 取消了NMS 后处理,这意味着推理时间更稳定、更可预测,这对于自动驾驶汽车和工业机器人等安全关键型应用来说是一个至关重要的因素。
训练方法与生态系统
YOLOX 引入了先进的增强技术,这些技术现已成为标准技术,而YOLOv10 则得益于成熟且用户友好的Ultralytics 培训管道。
- 易于使用: Ultralytics 模型以其精简的Python API 而闻名。训练YOLOv10 模型只需要几行代码,而使用 YOLOX 通常需要更复杂的配置文件和依赖性管理。
- 维护良好的生态系统: YOLOv10 已完全集成到Ultralytics 框架中。这样,用户就可以使用自动超参数调整、通过Ultralytics Explorer 进行无缝数据集管理以及各种部署选项等功能。
- 内存效率: Ultralytics 优化确保YOLOv10 等模型在训练过程中消耗的CUDA 内存少于旧架构或重型 transformer模型相比,YOLOv10 等模型在训练过程中消耗的 CUDA 内存更少,从而可以在消费级 GPU 上实现更大的批处理量。
代码示例:使用YOLOv10
下面的示例演示了开发人员如何使用Ultralytics 库轻松加载预训练的YOLOv10 模型并在图像上运行推理。
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Run inference on a local image
results = model("path/to/image.jpg")
# Display the results
results[0].show()
理想用例
这两种型号都有自己的用武之地,但YOLOv10 的现代结构使其适用于更广泛的现代应用。
- 边缘人工智能和物联网: YOLOv10 参数少、速度快,非常适合部署在计算能力有限的设备上,NVIDIA Jetson或智能摄像头。
- 高速制造:在传送带快速移动的工业检测中,YOLOv10 的NMS 推理可确保物体检测与生产线同步进行,不会出现瓶颈。
- 监控和安全:在同时分析多个视频流时,与YOLOv10 相比,YOLOv10 的计算效率允许每个服务器拥有更高密度的视频流。
- 研究基线:YOLOX 仍然是研究人员研究无锚探测器和最佳传输分配方法演变的宝贵基准。
结论
YOLOX 在普及无锚检测方面发挥了关键作用、 YOLOv10是现代开发的最佳选择。其创新的NMS 架构与全面的Ultralytics 生态系统相结合,可提供更快、更准确的强大解决方案。
对于寻求最佳性能平衡、易用性和长期支持的开发人员来说,YOLOv10 是他们的强烈推荐。此外,对于那些需要更多功能的任务,如姿势估计 或实例分割,强大的 YOLO11模型在相同的用户友好型框架内是一个极佳的替代方案。
通过选择Ultralytics 模型,您可以确保您的项目建立在尖端研究、积极的社区支持和生产就绪的可靠性基础之上。