YOLOv10 与 YOLOv7#
过去几年,计算机视觉快速发展,催生了越来越高效的实时应用架构。比较 YOLOv10 和 YOLOv7,可以看到这一发展过程中的关键转变。YOLOv7 引入了高效的训练策略和架构扩展,而 YOLOv10 则通过移除长期依赖的非极大值抑制(NMS)简化了部署。
这两种模型在各自发布时都推动了目标检测的发展,而如今 Ultralytics 生态系统和 YOLO26 等更新的模型提供了更简单的训练与部署工作流。
模型概况与起源#
了解这些模型的起源,有助于深入理解其架构设计选择以及驱动这些设计的学术研究。
YOLOv10 详情#
- 作者: Ao Wang、Hui Chen、Lihao Liu 等
- 组织: 清华大学
- 日期: 2024-05-23
- arXiv:YOLOv10:实时端到端目标检测
- GitHub: THU-MIG/yolov10
- 文档: Ultralytics YOLOv10 文档
YOLOv7 详情#
- 作者: Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao
- 机构: 台湾中央研究院资讯科学研究所
- 日期: 2022-07-06
- arXiv:YOLOv7:可训练的免费增益组件包,树立新的最先进水平
- 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 在参数量、计算需求和准确率之间实现了更理想的权衡。
| 模型 | 尺寸 (像素) | mAP验证集 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (ms) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
如上所示,YOLOv10x 的 mAP 高于 YOLOv7x(54.4% 对 53.1%),而参数量不到后者的一半(29.5M 对 71.3M)。轻量级 YOLOv10 Nano 和 Small 模型也能实现快速的 TensorRT 部署速度(在 T4 上分别为 1.84 毫秒和 2.49 毫秒),因此很适合边缘部署。
Ultralytics 生态系统的优势#
研究架构论文很有启发性,但现代计算机视觉开发依赖维护完善的框架。对于希望快速从原型迈向生产的开发者,选择获得 Ultralytics 支持的模型是一项重要优势。
简化开发#
YOLOv10 原生支持标准 Ultralytics Python 软件包,而在上游训练的 YOLOv7 检查点只有经过导出为 ONNX 或 TensorRT后才能在 Ultralytics 中运行。原生支持带来了易用性,开发者可以用简单直观的 API 替代样板代码。与大型 Transformer 架构相比,Ultralytics YOLO 模型训练时也需要更少的 CUDA 显存,因此能在消费级硬件上使用更大的批次。
灵活性#
较旧的代码库通常只专注于边界框检测,而 Ultralytics 框架通过 YOLO26 和 YOLO11 等模型支持多种任务。无论你进行实例分割、姿态估计还是定向边界框(OBB)检测,工作流都保持不变。
代码示例:一致的训练工作流程#
以下代码片段展示了训练流程,该流程会自动处理数据增强和学习率调度:
from ultralytics import YOLO
# 加载所需模型(例如 YOLOv10 或推荐使用的 YOLO26)
model = YOLO("yolo26n.pt")
# 使用你的数据集训练模型
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, batch=16, device=0)
# 导出为 ONNX 格式,以便快速部署
model.export(format="onnx")用例与建议#
在 YOLOv10 和 YOLOv7 之间做选择,取决于你的具体项目需求、部署限制和生态系统偏好。
何时选择 YOLOv10#
以下场景适合使用 YOLOv10:
- 无 NMS 的实时检测:适用于需要从端到端检测中获益、无需使用非极大值抑制并能降低部署复杂度的应用。
- 均衡权衡速度与准确率:适用于需要在不同模型规模下兼顾推理速度和检测准确率的项目。
- 延迟稳定的应用:适用于推理时间可预测性至关重要的部署场景,例如机器人或自主系统。
何时选择 YOLOv7#
以下情况建议使用 YOLOv7:
- 学术基准测试:复现 2022 年的最先进成果,或研究 E-ELAN 和可训练的免费优势集合技术所带来的影响。
- 重参数化研究:研究计划中的重参数化卷积和复合模型缩放策略。
- 现有自定义流水线:项目已围绕 YOLOv7 特定架构构建了高度定制的流水线,且难以重构。
何时选择 Ultralytics (YOLO26)#
对于大多数新项目,Ultralytics YOLO26在性能与开发体验之间实现了最佳平衡:
- 无 NMS 的边缘部署:适用于要求推理延迟稳定且较低,同时不希望增加非极大值抑制后处理复杂度的应用。
- 仅使用 CPU 的环境:没有专用 GPU 加速的设备。在这类设备上,YOLO26n 的 CPU 运行速度最高可比 YOLO11n 快 43%。
- 小目标检测:具有挑战性的场景,例如无人机航拍图像或 IoT 传感器分析。在这些场景中,ProgLoss 和 STAL 可以提升微小目标的检测精度。
新标准:推出 YOLO26#
YOLOv10 在 2024 年实现了重大进步,但该领域发展迅速。对于新项目,Ultralytics 推荐使用最新一代模型 Ultralytics YOLO26。该模型于 2026 年 1 月发布,在实时视觉 AI 领域取代了 YOLOv7 和 YOLOv10。
YOLO26 提供了多项改进,适用于现代部署环境:
- 端到端无 NMS 设计:在 YOLOv10 奠定的基础上,YOLO26 可选的一对一检测头(
nms=False)会跳过 NMS 后处理,从而简化部署流程并保持推理速度稳定。 - CPU 推理速度最高提升 43%:YOLO26n 的 CPU 速度最高可比 YOLO11n 快 43%,适合边缘计算和没有专用 GPU 的设备,还能降低硬件成本。
- 移除 DFL:移除分布焦点损失(DFL)简化了导出逻辑,并提升了与低功耗边缘设备的兼容性。
- MuSGD 优化器:这种结合 SGD 和 Muon 的混合优化器受 Moonshot AI 的 Kimi K2 启发,将大语言模型(LLM)训练技术引入计算机视觉,实现更稳定的训练和更快的收敛。
- ProgLoss + STAL:渐进式损失和小目标感知标签分配策略可提升小目标识别能力。小目标识别一直颇具挑战,对无人机、机器人和智能城市监控至关重要。
- 针对特定任务的改进:YOLO26 不仅仅是一个检测器。它加入了语义分割损失,以改善实例分割的收敛;采用残差对数似然估计(RLE)提升姿态估计精度;并使用专用角度损失解决 OBB 边界问题。
如需管理数据集、训练 YOLO26 并将模型部署到云端,请了解 Ultralytics Platform。它的无代码界面可与 Python 软件包互为补充。
实际应用场景#
选择合适的架构,很大程度上取决于硬件和应用限制。
何时使用 YOLOv7#
对于已经深度集成其特定张量结构的旧版工作流,或需要复现 2022 和 2023 年的学术基准,YOLOv7 仍是可靠的选择。它在高端服务器 GPU 上表现良好。
何时使用 YOLOv10#
对于要求延迟稳定的场景,YOLOv10 很合适。由于它的无 NMS 检测头不需要执行随检测数量增加而变慢的后处理,因此适合高密度人群计数或制造缺陷检测等场景:目标数量可能波动,但每帧处理时间必须保持稳定。
何时使用 YOLO26#
YOLO26 是新项目的推荐选择。无论是在 Raspberry Pi 上部署安防报警系统,还是运行大型云端视频分析,其更快的 CPU 推理速度和更强的小目标检测能力都让它明显优于旧一代模型。
如果你对其他架构感兴趣,Ultralytics 也支持基于 Transformer 的检测器,例如 RT-DETR,以及较早的模型,例如 Ultralytics YOLO11。