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, and 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),使模型能够在不破坏原始梯度路径的情况下学习更多样化的特征。此外,作者实施了一种“可训练的免费赠品包(trainable bag-of-freebies)”方法,在训练期间利用重参数化技术,这些技术可以在推理过程中融合掉以保持较快的执行速度。尽管有这些令人印象深刻的优化,YOLOv7 在后处理中仍然严重依赖 NMS,从而在密集场景分析中导致了不稳定的延迟。
YOLOv10 的突破
YOLOv10 直接解决了 NMS 的瓶颈问题。通过在训练期间引入一致的双重分配,清华大学团队实现了无 NMS 的端到端检测。这种双头方法使用一个具有“一对多”分配的分支在训练过程中提供丰富的监督信号,而另一个分支则具有“一对一”分配以进行无 NMS 的推理。这种架构转变确保了适用于高速视频分析的一致的超低 推理延迟。此外,YOLOv10 采用了一种整体的效率-精度驱动的模型设计,去除了早期版本中存在的计算冗余。
移除 NMS 后处理不仅加快了推理速度,还显著简化了在边缘 AI 硬件(如 AI 加速器和 NPU)上的部署,因为在这些硬件上,自定义 NMS 操作通常很难编译。
性能对比
当比较 MS COCO 数据集 上的原始指标时,代际差距显而易见。YOLOv10 在参数量、计算需求和精度之间实现了更优的权衡。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | 参数 (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 提供了 54.4% 的卓越 mAP,而 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 的实时检测: 得益于端到端检测且无需非极大值抑制,从而降低了部署复杂性的应用。
- 平衡的速度-精度权衡: 需要在不同模型规模下实现推理速度与检测精度之间良好平衡的项目。
- Consistent-Latency Applications: Deployment scenarios where predictable inference times are critical, such as robotics or autonomous systems.
何时选择 YOLOv7
推荐在以下情况下使用 YOLOv7:
- 学术基准测试: 重现 2022 年左右的最先进结果,或研究 E-ELAN 和可训练免费赠品包技术的效果。
- 重参数化研究: 探索规划重参数化卷积和复合模型缩放策略。
- 现有自定义流水线: 围绕 YOLOv7 特定架构构建且无法轻易重构的重度定制化流水线的项目。
何时选择 Ultralytics (YOLO26)
对于大多数新项目,Ultralytics YOLO26 提供了性能与开发者体验的最佳结合:
- 无需 NMS 的边缘部署: 需要持续、低延迟推理且无需复杂非极大值抑制后处理的应用。
- 仅 CPU 环境: 在没有专用 GPU 加速的设备上,YOLO26 的 CPU 推理速度提升高达 43%,这提供了决定性优势。
- 小目标检测: 具有挑战性的场景,如 航拍无人机图像 或 IoT 传感器分析,ProgLoss 和 STAL 在小目标上显著提升了准确性。
新标准:介绍 YOLO26
虽然 YOLOv10 在 2024 年实现了巨大飞跃,但计算机视觉领域发展极其迅速。对于所有新开发项目,我们强烈建议使用最新一代模型:Ultralytics YOLO26。它于 2026 年 1 月发布,代表了实时视觉 AI 的绝对巅峰,在很大程度上超越了 YOLOv7 和 YOLOv10。
YOLO26 带来了专为现代部署环境设计的史无前例的创新:
- 端到端无 NMS 设计: 在 YOLOv10 奠定的基础上,YOLO26 原生消除了 NMS 后处理,以实现更简单的部署流水线和一致的高速推理。
- CPU 推理速度提升高达 43%: 针对边缘计算和缺乏专用 GPU 的设备进行了深度优化,大幅节省了硬件成本。
- 移除 DFL: 分布焦点损失(Distribution Focal Loss)已被彻底移除,这从根本上简化了导出逻辑,并极大地提高了与低功耗边缘设备和微控制器的兼容性。
- MuSGD 优化器: 受 Moonshot AI 的 Kimi K2 启发,这种 SGD 和 Muon 的混合体将 大语言模型 (LLM) 的训练创新直接引入到计算机视觉中,产生了令人难以置信的稳定训练动态和更快的收敛速度。
- ProgLoss + STAL: 这些先进的损失函数在小目标识别方面带来了显著改进,这是一个历史上具有挑战性的领域,对于无人机、机器人和 智慧城市监控 至关重要。
- 任务特定的改进: YOLO26 不仅仅是一个检测器。它包括专门的语义分割损失、用于超精确姿态追踪的残差对数似然估计(RLE),以及专门的角度损失算法,以消除 OBB 边界问题。
若要获得管理数据集、训练 YOLO26 以及将模型部署到云端的最佳体验,请探索 Ultralytics 平台。它提供了一个与 Python SDK 完美互补的无代码界面。
实际应用场景
选择正确的架构很大程度上取决于你的硬件和应用限制。
何时使用 YOLOv7
YOLOv7 仍然是维护已与其特定张量结构深度集成的遗留流水线,或者在复现 2022 和 2023 年学术基准时的可靠选择。它在高端服务器 GPU 上表现优异。
何时使用 YOLOv10
YOLOv10 在需要严格、恒定延迟的场景中表现卓越。因为它不需要 NMS,所以非常适合高密度人群计数或 生产线缺陷检测,在这些场景中,物体数量波动剧烈,但每帧的处理时间必须保持恒定。
何时使用 YOLO26
YOLO26 是任何从零开始的项目的不二之选。从在基础 Raspberry Pi 上部署复杂的 安全报警系统,到运行大规模的云端视频分析,其卓越的 CPU 速度和先进的小目标检测能力使其远优于旧版本。
对于有兴趣探索其他现代架构的开发者,我们也提供对基于 Transformer 的检测器(如 RT-DETR)以及上一代主流产品(如 Ultralytics YOLO11)的广泛支持。