Ultralytics YOLO27:
Get Started

YOLOv5 与 YOLOX#

实时计算机视觉的发展历程中涌现了许多里程碑式成果,各种架构不断突破速度和准确率的极限。该领域两款影响深远的模型是 YOLOv5 和 YOLOX。两者都以出色的目标检测性能著称,但采用了截然不同的架构方法。

本指南将深入分析这两款模型,对比它们的架构、性能指标、训练方法和理想部署场景,帮助开发者和研究人员为视觉 AI 项目选择合适的工具。

模型概览与架构差异#

Ultralytics YOLOv5#

由 Ultralytics 推出后,YOLOv5 凭借出色的性能、易用性和内存效率之间的平衡,迅速成为行业标准。YOLOv5 原生基于 PyTorch 框架构建,采用基于锚框的架构。它依赖预定义的边界框形状来预测目标位置,因此在标准目标检测任务中表现出色。

YOLOv5 的一大优势是其维护完善的生态系统。它拥有详尽的文档、极其简洁的 Python API,并原生集成了 Ultralytics Platform。开发者可以借此顺畅地完成从数据集标注到模型训练,再到导出为 ONNX 和 TensorRT 等格式的整个流程。

生态系统优势

与复杂的基于 Transformer 的替代方案相比,Ultralytics YOLO 模型在训练期间通常需要少得多的 GPU 内存。较低的内存占用让使用消费级硬件的研究人员也能轻松使用 YOLOv5。

旷视 YOLOX#

YOLOX 由旷视的研究人员开发,它另辟蹊径,为 YOLO 系列引入了无锚框设计。通过移除锚框,YOLOX 简化了检测头,并大幅减少了训练期间需要手动调整的启发式参数数量。

YOLOX 还采用了解耦检测头——将分类和回归任务分配给不同的网络分支——并使用 SimOTA 标签分配策略。这些创新弥合了学术研究与工业应用之间的差距,使 YOLOX 在目标尺度差异很大的环境中尤其有效。

详细了解 YOLOX

性能与指标#

评估计算机视觉模型时,平均精度 (mAP) 与推理速度之间的权衡至关重要。两种模型都提供多种尺寸(从 Nano 到 Extra-Large),以适应不同的硬件限制。

模型尺寸
(像素)
mAP验证集
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(ms)
参数
(M)
FLOPs
(B)
YOLOv5n64028.0-1.121.94.5
YOLOv5s64037.4-1.927.216.5
YOLOv5m64045.4-4.0321.249.0
YOLOv5l64049.0-6.6146.5109.1
YOLOv5x64050.7-11.8986.7205.7
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

YOLOXx 的峰值精度略高(51.1 mAP),而 YOLOv5 在 CPU 和 GPU 硬件上提供了更加稳健且经过充分测试的部署流程。YOLOv5 的 TensorRT 速度体现了它针对边缘计算设备进行的深度优化,使其成为实时视频分析的可靠选择。

训练方法与易用性#

这两种架构带来的开发体验差异显著。

YOLOX 的开发方式#

训练 YOLOX 通常需要克隆原始代码库、管理特定依赖项并运行复杂的命令行脚本。虽然它通过 MegEngine 支持混合精度训练和多节点部署等高级功能,但对于需要快速原型开发的开发者来说,学习曲线可能较为陡峭。

Ultralytics 优势#

相比之下,Ultralytics 将极其流畅的用户体验放在首位。使用 ultralytics Python 软件包,开发者只需编写极少的样板代码,即可加载、训练和验证模型。Ultralytics 会自动处理复杂的数据增强、超参数演化和学习率调度。

from ultralytics import YOLO

# 加载预训练的 YOLOv5 小型模型
model = YOLO("yolov5su.pt")  # YOLOv5u:适用于 ultralytics 软件包的无锚框 YOLOv5 权重

# 使用 COCO8 数据集训练模型
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# 验证模型性能
metrics = model.val()

此外,YOLOv5 的多功能性不止于标准目标检测;通过完全一致的 API,它还稳健支持图像分类和实例分割。

简化部署

训练完成后,只需调用一次 model.export(format="onnx") 等命令,即可将 YOLOv5 模型导出为 ONNX、CoreML、LiteRT 或 OpenVINO 格式。这样便无需使用研究型代码库通常需要的第三方转换脚本。

实际应用#

选择哪种模型取决于你的部署环境和技术要求:

  • 零售与库存管理:对于需要在 NVIDIA Jetson 等边缘设备上实时识别商品的应用,YOLOv5 非常合适。它的内存占用极低,TensorRT 推理速度快,可实现多摄像头跟踪而不丢帧。
  • 学术研究与自定义架构: YOLOX 在研究界备受推崇。其解耦头和无锚框特性,使其成为工程师尝试新型标签分配策略,或处理传统锚框难以泛化的数据集时的绝佳基线。
  • 农业 AI:对于通过无人机进行水果检测或杂草识别等精准农业任务,借助 Ultralytics Platform 训练和部署 YOLOv5 模型十分简单,领域专家无需深厚的机器学习工程背景也能实施 AI 解决方案。

用例与建议#

选择 YOLOv5 还是 YOLOX,取决于你的具体项目需求、部署限制和生态系统偏好。

何时选择 YOLOv5#

YOLOv5 适合以下场景:

  • 经过验证的生产系统: 现有部署重视 YOLOv5 长期积累的稳定记录、详尽文档和庞大社区支持。
  • 资源受限的训练: GPU 资源有限的环境中,YOLOv5 高效的训练流水线和较低的内存需求具有优势。
  • 广泛支持导出格式: 需要跨多种格式部署的项目,包括 ONNX、TensorRT、CoreML和 LiteRT。

何时选择 YOLOX#

以下情况推荐使用 YOLOX:

  • 无锚框检测研究:学术研究使用 YOLOX 简洁的无锚框架构作为基线,以试验新的检测头或损失函数。
  • 超轻量级边缘设备:部署到微控制器或旧款移动硬件时,YOLOX-Nano 变体极小的体积(0.91M 个参数)至关重要。
  • SimOTA 标签分配研究:研究项目用于探索基于最优传输的标签分配策略及其对训练收敛的影响。

何时选择 Ultralytics (YOLO26)#

对于大多数新项目,Ultralytics YOLO26在性能与开发体验之间实现了最佳平衡:

  • 无 NMS 的边缘部署:适用于要求推理延迟稳定且较低,同时不希望增加非极大值抑制后处理复杂度的应用。
  • 仅使用 CPU 的环境:适用于没有专用 GPU 加速的设备,此时 YOLO26 的 CPU 推理速度最高提升 43%,可带来显著优势。
  • 小目标检测:适用于无人机航拍影像等具有挑战性的场景,或 IoT 传感器分析等需要 ProgLoss 和 STAL 大幅提升微小目标准确率的场景。

视觉 AI 的未来:YOLO26 登场#

YOLOv5 和 YOLOX 都已在计算机视觉发展史上占据重要地位,但该领域仍在快速进步。对于如今开始新项目的开发者,Ultralytics 强烈建议你了解其最新旗舰模型 YOLO26。

YOLO26 于 2026 年 1 月发布,在性能和易用性方面都实现了巨大飞跃。它引入了突破性的端到端无 NMS 设计(通过 nms=False 选择),无需进行非极大值抑制后处理。这显著降低了延迟波动,并简化了低功耗设备上的部署逻辑。

此外,YOLO26 采用了全新的 MuSGD 优化器——这是受大语言模型训练创新启发、结合 SGD 和 Muon 的混合优化器——能够实现极其稳定且快速的收敛。通过移除 DFL(移除分布焦点损失以简化导出,并提升对边缘/低功耗设备的兼容性),YOLO26 的 CPU 推理速度最高可提升 43%,巩固了其作为现代边缘计算、机器人和 IoT 应用首选模型的地位。此外,ProgLoss + STAL 带来了改进的损失函数,在小目标识别方面显著提升,这对 IoT、机器人和航空影像至关重要。对前代产品感兴趣的用户也可以了解 YOLO11,不过 YOLO26 无疑是当前最先进的选择。

结论#

YOLOv5 和 YOLOX 都具备出色的目标检测能力。YOLOX 在 2021 年拓展了架构的边界,证明无锚框设计能够与传统方法竞争,甚至超越传统方法。不过,YOLOv5 凭借无与伦比的易用性、丰富的生态系统以及较低的训练内存需求,仍然占据主导地位。

对于绝大多数商业应用,Ultralytics 生态系统能够以最快速度将原始数据集转化为已部署的生产模型。无论是使用久经考验的 YOLOv5,还是升级到尖端的 YOLO26,开发者都能受益于一个旨在让视觉 AI 更易用、更高效且性能出色的框架。

评论