YOLOv5 与 YOLOv10#
过去几年,实时计算机视觉领域飞速发展,各种架构不断突破现代硬件上的性能极限。评估先进架构时,YOLOv5 与 YOLOv10 的对比展现了目标检测领域的重要演进。本篇技术深度解析将探讨它们的架构范式、性能权衡,以及开发者如何在生产环境中利用这些工具。
深入剖析架构#
了解这些模型在结构上的差异,对于在真实场景中高效部署至关重要。
Ultralytics YOLOv5:行业标准#
YOLOv5 由 Ultralytics 推出,长期以来以速度、精度和易用性之间无可匹敌的平衡而闻名。
- 作者: Glenn Jocher
- 组织: Ultralytics
- 日期: 2020-06-26
- GitHub:YOLOv5 仓库
- 文档:YOLOv5 文档
YOLOv5 采用基于锚框的检测机制,并结合了经过深度优化的 CSPDarknet 主干网络。该架构主要依赖几乎所有推理引擎都支持的标准操作,因此具有极强的通用性。它的一大优势是 Ultralytics Python SDK,该 SDK 提供流畅的用户体验、简洁的 API 和详尽的文档。此外,与基于 Transformer 的模型相比,YOLOv5 所需的内存更少,因此可以在消费级 GPU 上快速训练,无需承担高昂的显存开销。
YOLOv10:推进范式发展#
YOLOv10 由清华大学的研究人员开发,旨在解决以往架构中存在的特定延迟瓶颈。
- 作者: Ao Wang、Hui Chen、Lihao Liu 等
- 组织: 清华大学
- 日期: 2024-05-23
- ArXiv: 2405.14458
- GitHub:YOLOv10 仓库
- 文档: YOLOv10 文档
YOLOv10 的标志性特点是原生支持无 NMS(非极大值抑制)设计。通过在训练期间采用一致的双重分配机制,该模型在推理时无需进行 NMS 后处理。这种理论上的延迟降低对使用强大 NVIDIA TensorRT 加速的高端硬件部署非常有利,不过也可能给边缘设备带来结构上的复杂性。
YOLOv10 带来了一些有趣的架构创新,但 YOLOv5 和较新的 YOLO26 等 Ultralytics 模型可在 Ultralytics Platform 中原生使用,并提供更高的训练效率、自动超参数演进,以及开箱即用的丰富导出选项。
性能分析#
比较这些模型时,准确率(mAP)与计算成本(延迟和参数量)之间的平衡决定了最佳适用场景。以下是这些模型在 COCO 数据集上的技术性能对比。
| 模型 | 尺寸 (像素) | mAP验证集 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (ms) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
在相同规模下,YOLOv10 的 mAP50-95 明显更高,这得益于其现代化的效率与准确率兼顾的模型设计。不过,YOLOv5 仍保持着极具竞争力的延迟,尤其是在 Nano 和 Small 级别,因此在 NVIDIA Jetson 系列等受限嵌入式环境中,或通过 OpenVINO 在标准 CPU 上运行时,都非常可靠。
训练方法与生态系统#
模型的价值与其周边生态密切相关。Ultralytics 维护着一个质量出色、支持任务范围极广的生态系统。YOLOv10 严格专注于 2D 目标检测,而 Ultralytics 原生支持实例分割、图像分类、姿态估计和有向边界框(OBB)。
此外,与其他基于 Transformer 的方法相比,训练 Ultralytics 模型所需的内存开销低得多,因此开发周期更快、成本效益更高。
流畅执行代码#
训练、验证和导出模型都通过单一 API 统一完成。只需更改一个字符串,你就可以切换模型。
from ultralytics import YOLO
# 加载预训练的 YOLOv5 模型进行基线测试
model_v5 = YOLO("yolov5su.pt") # YOLOv5u:适用于 ultralytics 软件包的无锚框 YOLOv5 权重
# 加载 YOLOv10 模型进行对比
model_v10 = YOLO("yolov10s.pt")
# 在 COCO8 数据集上高效训练模型
results = model_v5.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
device="0", # 自动使用 PyTorch CUDA 加速
batch=16,
)
# 导出为 ONNX,以便在 CPU 上部署推理
model_v5.export(format="onnx", simplify=True)用例与建议#
在 YOLOv5 和 YOLOv10 之间做出选择,取决于你的具体项目需求、部署限制和生态系统偏好。
何时选择 YOLOv5#
YOLOv5 适合以下场景:
- 经过验证的生产系统: 现有部署重视 YOLOv5 长期积累的稳定记录、详尽文档和庞大社区支持。
- 资源受限的训练: GPU 资源有限的环境中,YOLOv5 高效的训练流水线和较低的内存需求具有优势。
- 广泛支持导出格式: 需要跨多种格式部署的项目,包括 ONNX、TensorRT、CoreML和 LiteRT。
何时选择 YOLOv10#
以下场景推荐使用 YOLOv10:
- 无 NMS 的实时检测:适用于需要从端到端检测中获益、无需使用非极大值抑制并能降低部署复杂度的应用。
- 均衡权衡速度与准确率:适用于需要在不同模型规模下兼顾推理速度和检测准确率的项目。
- 延迟稳定的应用:适用于推理时间可预测性至关重要的部署场景,例如机器人或自主系统。
何时选择 Ultralytics (YOLO26)#
对于大多数新项目,Ultralytics YOLO26在性能与开发体验之间实现了最佳平衡:
- 无 NMS 的边缘部署:适用于要求推理延迟稳定且较低,同时不希望增加非极大值抑制后处理复杂度的应用。
- 仅使用 CPU 的环境:适用于没有专用 GPU 加速的设备,此时 YOLO26 的 CPU 推理速度最高提升 43%,可带来显著优势。
- 小目标检测:适用于无人机航拍影像等具有挑战性的场景,或 IoT 传感器分析等需要 ProgLoss 和 STAL 大幅提升微小目标准确率的场景。
未来方向:Ultralytics YOLO26#
YOLOv5 让更多人能够使用目标检测,YOLOv10 则拓展了无 NMS 架构的边界,而前沿技术仍在不断发展。对于新项目,我们强烈推荐于 2026 年 1 月发布的尖端模型 Ultralytics YOLO26。
YOLO26 将 Ultralytics 生态系统的可靠性与突破性进展融为一体:
- 端到端无 NMS 设计:YOLO26 将无 NMS 范式直接集成到 Ultralytics 框架中,作为可选的一对一检测头(
nms=False),从而简化部署并降低延迟。 - CPU 推理速度最高提升 43%:移除分布焦点损失(DFL)后,YOLO26 在没有 GPU 的边缘设备上速度显著提升。
- MuSGD 优化器:MuSGD 优化器借鉴了 Moonshot AI 在 LLM 训练方面的创新,带来前所未有的稳定性和快速收敛能力。
- ProgLoss + STAL:这些新型损失函数显著提升了小目标识别能力,这对无人机影像和机器人等领域至关重要。
你可以直接通过 Ultralytics Platform 管理、训练和部署 YOLO26。
结论#
在 YOLOv5 和 YOLOv10 之间做选择,通常取决于具体的项目限制。YOLOv10 能为研究人员和利用原始 GPU 吞吐量的应用提供出色的 mAP。相比之下,YOLOv5 仍然是可靠且兼容性极强的主力模型,适用于标准部署。
不过,计算机视觉领域瞬息万变。为了获得最佳的性能平衡、通用性和易用性,开发者应关注 Ultralytics YOLO26。它将无 NMS 推理的速度与完善且文档齐全的 Ultralytics 生态系统相结合,确保你的视觉 AI 解决方案能够面向未来。针对特定使用场景,开发者还可以选择 YOLO11 来获得出色的通用鲁棒性,或选择基于 Transformer、精度出色的 RT-DETR。