YOLOv10 与 YOLOv7#
过去几年,计算机视觉的快速发展催生了越来越高效的实时应用架构。比较 YOLOv10 和 YOLOv7,可以突出这一演进过程中的关键过渡时期。YOLOv7 引入了高效的训练策略和架构缩放,而 YOLOv10 则通过消除长期以来对非极大值抑制 (NMS) 的依赖,彻底革新了部署方式。
这两个模型在各自发布时都推动了目标检测的发展边界,但如今的 Ultralytics 生态系统以及 YOLO26 等新一代模型的推出,为当今的 AI 从业者提供了更加优越的工作流程。
模型概览与起源#
了解这些模型的起源,有助于深入理解其架构设计选择以及背后的学术研究。
YOLOv10 详情#
- 作者: Ao Wang、Hui Chen、Lihao Liu 等。
- 机构: 清华大学
- 日期: 2024-05-23
- Arxiv: YOLOv10: Real-Time End-to-End Object Detection
- GitHub: THU-MIG/yolov10
- 文档: Ultralytics YOLOv10 文档
YOLOv7 详情#
- 作者: Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao
- 组织机构: 中国台湾中央研究院资讯科学研究所
- 日期: 2022-07-06
- Arxiv: YOLOv7: Trainable bag-of-freebies sets new state-of-the-art
- GitHub: WongKinYiu/yolov7
- 文档: Ultralytics YOLOv7 文档
架构创新#
YOLOv7 的方法#
YOLOv7 于 2022 年发布,重点优化梯度路径。它引入了扩展高效层聚合网络 (E-ELAN),使模型能够学习更多样化的特征,同时不会破坏原始梯度路径。此外,作者采用了“可训练的免费技巧组合”方法,在训练期间使用重参数化技术,并在推理时将其融合移除,从而保持较快的执行速度。尽管进行了这些令人印象深刻的优化,YOLOv7 在后处理阶段仍高度依赖 NMS,导致密集场景分析中的延迟不稳定。
YOLOv10 的突破#
YOLOv10 直接解决了 NMS 瓶颈。通过在训练期间引入一致的双重分配,清华大学团队实现了无需 NMS 的端到端检测。这种双头方法使用一个分支进行一对多分配,以便在训练期间提供丰富的监督信号;另一个分支则进行一对一分配,用于无需 NMS 的推理。这种架构转变确保了稳定且极低的推理延迟,适用于高速视频分析。此外,YOLOv10 采用以效率和精度为核心的整体模型设计,去除了早期代际模型中的计算冗余。
移除 NMS 后处理不仅能加快推理速度,还能显著简化在边缘 AI 硬件上的部署,例如 AI 加速器和 NPU,因为自定义 NMS 操作在这些设备上通常很难编译。
性能对比#
比较 MS COCO 数据集上的原始指标时,代际差距显而易见。YOLOv10 在参数量、计算需求和精度之间实现了更出色的权衡。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数量 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
如上所示,YOLOv10x 的 mAP 达到 54.4%,优于 YOLOv7x 的 53.1%,同时参数量减少了约 20%。此外,轻量级 YOLOv10 模型(Nano 和 Small)提供了出色的 TensorRT 部署速度,因此非常适合移动端部署。
Ultralytics 生态系统优势#
虽然研究架构论文很有启发性,但现代计算机视觉开发依赖于稳健且维护良好的框架。选择受 Ultralytics 支持的模型,可以为希望快速从原型迈向生产环境的开发者带来巨大优势。
简化开发#
YOLOv10 和 YOLOv7 都可以通过标准 Ultralytics Python 软件包使用。这带来了无与伦比的易用性,用简单直观的 API 取代了数千行样板代码。此外,与大型 Transformer 架构相比,Ultralytics YOLO 模型在训练期间需要的 CUDA 显存显著更少,因此可以在消费级硬件上使用更大的批次大小。
无与伦比的多功能性#
较旧的代码仓库通常严格专注于边界框检测,而集成式 Ultralytics 框架则无缝支持大量任务。无论你是在进行实例分割、姿态估计,还是定向边界框 (OBB)检测,工作流程都保持一致。
代码示例:一致的训练工作流#
以下代码片段演示了无缝的训练过程,该过程会自动处理数据增强和学习率调度:
from ultralytics import YOLO
# Load the desired model (YOLOv10, YOLOv7, or the recommended YOLO26)
model = YOLO("yolo26n.pt")
# Train the model effortlessly on your dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, batch=16, device=0)
# Export to ONNX format for rapid deployment
model.export(format="onnx")使用场景与建议#
在 YOLOv10 和 YOLOv7 之间进行选择,取决于你的具体项目需求、部署限制和生态系统偏好。
何时选择 YOLOv10#
YOLOv10 适合:
- 无 NMS 实时检测: 适用于能够从无需非极大值抑制的端到端检测中受益的应用,可降低部署复杂性。
- 速度与准确率的平衡: 适用于需要在各种模型规模之间实现推理速度和检测准确率良好平衡的项目。
- 延迟稳定的应用: 适用于推理时间可预测至关重要的部署场景,例如机器人技术或自主系统。
何时选择 YOLOv7#
推荐在以下情况下使用 YOLOv7:
- **学术基准测试:**复现 2022 年前后的最先进结果,或研究 E-ELAN 和可训练的免费技巧组合技术的影响。
- **重参数化研究:**研究规划好的重参数化卷积和复合模型缩放策略。
- **现有自定义流程:**围绕 YOLOv7 特定架构构建、难以轻松重构的高度定制化项目。
何时选择 Ultralytics (YOLO26)#
对于大多数新项目,Ultralytics YOLO26 在性能和开发者体验之间提供了最佳组合:
- 无 NMS 边缘部署: 适用于需要稳定、低延迟推理,同时又不希望引入非极大值抑制后处理复杂性的应用。
- 仅使用 CPU 的环境: 适用于没有专用 GPU 加速的设备,此时 YOLO26 最高提升 43% 的 CPU 推理速度将带来决定性优势。
- 小目标检测: 适用于航空无人机影像或 IoT 传感器分析等具有挑战性的场景,在这些场景中,ProgLoss 和 STAL 能显著提升微小目标的准确率。
新标准:YOLO26 介绍#
虽然 YOLOv10 在 2024 年实现了巨大飞跃,但计算机视觉领域的发展速度极快。对于所有新开发项目,我们强烈推荐最新一代模型:Ultralytics YOLO26。它于 2026 年 1 月发布,代表了实时视觉 AI 的最高水平,大幅超越了 YOLOv7 和 YOLOv10。
YOLO26 带来了专为现代部署环境设计的前所未有的创新:
- **端到端无 NMS 设计:**在 YOLOv10 奠定的基础上,YOLO26 原生消除 NMS 后处理,从而简化部署流程并实现稳定的高速推理。
- **CPU 推理速度最高提升 43%:**针对边缘计算和缺少专用 GPU 的设备进行了深度优化,大幅节省硬件成本。
- **移除 DFL:**完全移除了分布焦点损失,从根本上简化了导出逻辑,并显著提升了与低功耗边缘设备和微控制器的兼容性。
- **MuSGD 优化器:**受 Moonshot AI 的 Kimi K2 启发,这种 SGD 与 Muon 的混合优化器将大型语言模型 (LLM)训练创新直接引入计算机视觉,带来极其稳定的训练动态和更快的收敛速度。
- **ProgLoss + STAL:**这些先进的损失函数显著提升了小目标识别能力。小目标识别历来颇具挑战,但对于无人机、机器人和智慧城市监控至关重要。
- **任务专属改进:**YOLO26 不仅仅是一个检测器。它包含专用的语义分割损失、用于超高精度姿态跟踪的残差对数似然估计 (RLE),以及用于消除 OBB 边界问题的专用角度损失算法。
如果你希望获得数据集管理、YOLO26 训练以及将模型部署到云端的最佳体验,可以探索 Ultralytics 平台。它提供无代码界面,与 Python SDK 完美互补。
实际应用场景#
选择合适的架构在很大程度上取决于你的硬件和应用限制。
何时使用 YOLOv7#
对于维护已经与其特定张量结构深度集成的旧版流程,或复现 2022 年和 2023 年的学术基准测试,YOLOv7 仍然是可靠的选择。在高端服务器 GPU 上,它的表现令人满意。
何时使用 YOLOv10#
YOLOv10 在需要严格且恒定延迟的场景中表现出色。由于无需 NMS,它非常适合高密度人群计数或制造缺陷检测,因为这些场景中的目标数量可能大幅波动,但每帧的处理时间必须保持不变。
何时使用 YOLO26#
对于任何全新项目,YOLO26 都是明确的选择。从在基础 Raspberry Pi 上部署复杂的安全报警系统,到运行大规模云端视频分析,其出色的 CPU 速度和先进的小目标检测能力都使其远胜于早期代际模型。
如果你有兴趣探索其他现代架构,我们还为基于 Transformer 的检测器(如 RT-DETR)以及前代主流模型(如 Ultralytics YOLO11)提供广泛支持。