YOLOX 与 YOLOv10#
实时计算机视觉模型的发展历程经历了多次重大的架构跃迁。其中两个关键里程碑是 YOLOX 和 YOLOv10。YOLOX 于 2021 年发布,通过引入高效的无锚框设计,成功弥合了学术研究与工业应用之间的差距。三年后,YOLOv10 通过在后处理阶段消除对非极大值抑制 (NMS) 的需求,推动了效率与速度的极限,彻底改变了这一领域。
这份全面的技术对比将探讨这两个模型的架构、性能指标和理想应用场景,为你选择下一个目标检测项目的合适工具提供参考。
模型起源与元数据#
了解这些模型的起源,有助于理解它们的架构选择和预期部署环境。
YOLOX 详情
- 作者: Zheng Ge、Songtao Liu、Feng Wang、Zeming Li 和 Jian Sun
- 组织: Megvii
- 日期: 2021-07-18
- Arxiv: https://arxiv.org/abs/2107.08430
- GitHub: https://github.com/Megvii-BaseDetection/YOLOX
- 文档: https://github.com/Megvii-BaseDetection/YOLOX/tree/main/docs
YOLOv10 详情
- 作者: Ao Wang、Hui Chen、Lihao Liu、Kai Chen、Zijia Lin、Jungong Han 和 Guiguang Ding
- 机构: 清华大学
- 日期: 2024-05-23
- Arxiv: https://arxiv.org/abs/2405.14458
- GitHub: https://github.com/THU-MIG/yolov10
- Docs: https://docs.ultralytics.com/models/yolov10
架构创新#
YOLOX 与 YOLOv10 的核心差异在于它们处理边界框预测和后处理的方式不同。
YOLOX:开创性的无锚框设计#
YOLOX 通过将 YOLO 系列转向无锚框架构引起了广泛关注。YOLOX 预测目标的中心点,而不是依赖预定义的锚框,从而大幅减少了自定义数据集所需的设计参数数量和启发式调参工作。此外,它还引入了解耦头,将分类和回归任务分离到不同的路径中。这种方法解决了识别目标是什么与确定目标在哪里之间的冲突,显著提升了收敛速度和精度。
YOLOv10:无 NMS 革命#
虽然 YOLOX 简化了检测头,但仍然依赖 NMS 来过滤冗余的边界框预测。YOLOv10 解决了这一根本瓶颈。通过在训练期间采用一致的双重分配,YOLOv10 实现了原生端到端检测。它在训练期间使用一对多检测头来确保丰富的监督信号,同时在推理期间使用一对一检测头直接输出最终预测结果。这种兼顾效率与精度的整体设计完全消除了 NMS,显著降低了嵌入式芯片上的推理延迟。
在神经处理单元 (NPUs) 上加速非极大值抑制通常是一项复杂操作。移除该操作后,YOLOv10 可以让整个模型图在专用硬件上无缝执行,大幅提升与 OpenVINO 和 TensorRT 等优化框架的兼容性。
性能指标与对比#
在为生产环境评估模型时,平衡精度与计算开销至关重要。下表展示了 YOLOX 和 YOLOv10 不同规模之间的权衡。
| 模型 | 尺寸 (像素) | 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-S 的平均精度为 46.7%,而 YOLOX-m 为 46.9%;但 YOLOv10-S 使用的参数量不到后者的三分之一(7.2M 对比 25.3M),FLOPs 也显著更少。此外,顶级的 YOLOv10-X 将 mAP 提升至 54.4%,在满足高精度要求的任务中极具竞争力,同时速度仍快于较旧的 YOLOX-x 架构。
Ultralytics 生态系统优势#
虽然 YOLOX 仍然是一个稳健的开源研究实现,但采用 YOLOv10 可以立即获得 Ultralytics 所提供的维护完善的生态系统。选择 Ultralytics 支持的模型,能够获得由简洁 API 和丰富文档构成的流畅用户体验。
开发者将从该框架的内存需求优势中获益匪浅;训练 Ultralytics 模型通常比使用 RT-DETR 等大型 Transformer 架构替代方案消耗少得多的 CUDA 内存。这种高效的训练内存占用让你可以在消费级硬件上使用更大的批次大小,加快从数据采集到模型部署的过程。此外,该框架还提供无与伦比的灵活性,只需极少的代码改动,用户即可在目标检测、实例分割和姿态估计之间无缝切换。
训练与推理示例#
统一 API 让验证想法变得极其快速。以下代码片段展示了如何轻松地使用 PyTorch 后端训练和部署 YOLOv10 模型:
from ultralytics import YOLO
# Load a pre-trained YOLOv10 nano model
model = YOLO("yolov10n.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on a sample image
predictions = model.predict("https://ultralytics.com/images/bus.jpg")
# Export the model for edge deployment
model.export(format="engine", quantize=16)借助内置的导出例程,将模型转换为 TensorRT 或 ONNX 等格式只需一行代码,完全绕过复杂的编译障碍。
理想用例与部署场景#
在这些架构之间进行选择,很大程度上取决于你的硬件限制和具体领域需求。
实时视频分析#
对于自动驾驶或实时交通监控等需要超低延迟的应用,YOLOv10 是更优的选择。其端到端无 NMS 设计确保了确定性的执行时间,这对于无法容忍后处理延迟波动的安全系统至关重要。该模型在 NVIDIA Jetson 系列等设备上可以轻松实现高帧率。
学术基线与边缘微控制器#
YOLOX 在学术环境中仍然具有价值,研究人员可以将其作为简洁的解耦头基线,用于试验标签分配策略。此外,体积极小的 YOLOX-Nano(参数量不到 100 万)可以压缩部署到资源高度受限的边缘微控制器上,在这些设备中内存以千字节计,只要硬件支持标准卷积操作即可。
终极标准:Ultralytics YOLO26#
虽然 YOLOv10 通过移除 NMS 实现了巨大飞跃,但计算机视觉领域仍在快速发展。对于希望在当今实现顶尖性能的开发者,我们强烈建议你探索 YOLO26。
YOLO26 作为视觉 AI 的最新标准发布,继承了前代模型的基础理念并将其进一步强化。它提供了终极的性能平衡,原生支持检测、分割、姿态和定向边界框。
以下是 YOLO26 成为现代计算机视觉流水线推荐选择的原因:
- **端到端无 NMS 设计:**在 YOLOv10 突破的基础上,YOLO26 原生支持端到端处理,在没有后处理瓶颈的情况下,确保更快且具有确定性的推理时间。
- **CPU 推理速度最高提升 43%:**该模型针对边缘计算进行了专门优化,即使在移动处理器和缺少独立 GPU 的设备上,也能确保出色的性能。
- **MuSGD 优化器:**YOLO26 的设计灵感来自大语言模型训练(具体来说是 Moonshot AI 的 Kimi K2),采用 SGD 与 Muon 的混合方案,实现极其稳定的训练和快速收敛。
- **ProgLoss + STAL:**这些先进的损失函数显著提升了小目标识别能力,这对于航空影像和无人机导航等高要求领域至关重要。
- **移除 DFL:**通过移除 Distribution Focal Loss,YOLO26 简化了模型图,从而可以顺畅地导出到边缘设备和低功耗设备。
- **任务特定改进:**无论你是在姿态估计中使用残差对数似然估计 (RLE),还是在 OBB 中使用专用角度损失,YOLO26 都针对每项主要视觉任务进行了精细调优。
对于准备使用现有最高效训练和部署工具升级流水线的开发者而言,迁移到 Ultralytics Platform 并利用 YOLO26,可确保你始终处于人工智能发展的前沿。对较旧但稳定的架构感兴趣的用户,也可以查看 YOLO11 或 YOLOv8,以获得广泛的社区支持和经过验证的稳健性。