跳转至内容

YOLOv10 对比 YOLOv7:推进实时目标检测架构

YOLO(You Only Look Once)系列的发展不断推动计算机视觉的边界,为实时应用平衡了速度和准确性。本次比较探讨了清华大学研究人员发布的先进模型 YOLOv10 与中研院开发的极具影响力的模型 YOLOv7 之间的架构转变和性能差异。尽管这两个模型都对 目标检测 领域做出了重大贡献,但它们采用不同的策略来实现各自的性能目标。

模型架构的演进

从 YOLOv7 到 YOLOv10 的转变标志着神经网络在处理后处理和特征集成方式上的范式转变。

YOLOv10:免 NMS 革命

YOLOv10清华大学的王敖、陈辉等人于 2024 年 5 月 23 日发布的 YOLOv10 介绍了一种突破性的NMS 训练策略。传统上,物体检测器依靠非最大值抑制(NMS)来过滤重复的边界框,这会造成推理延迟的瓶颈。

YOLOv10 利用一致双重分配进行无 NMS 训练,使模型能够直接预测唯一的对象实例。结合整体效率-精度驱动的模型设计,它优化了各种组件——包括轻量级分类头和空间-通道解耦下采样——以减少计算冗余。

了解更多关于YOLOv10的信息。

YOLOv7: 针对可训练的免费赠品包进行优化

YOLOv7YOLOv7于2022年7月6日发布,由来自中央研究院的Chien-Yao Wang、Alexey Bochkovskiy和Hong-Yuan Mark Liao共同完成,其重点是在不增加推理成本的情况下优化训练过程。它引入了扩展高效层聚合网络(E-ELAN),通过控制梯度路径来增强网络的学习能力。

YOLOv7大量利用了“免费包”——这些方法在训练期间提高精度而不影响推理速度——以及高效复合参数的模型缩放技术。尽管非常有效,但其对传统NMS后处理的依赖意味着其端到端延迟通常高于较新的无NMS架构。

了解更多关于YOLOv7的信息。

技术性能比较

评估这些模型时,在效率和原始检测能力方面出现了明显的模式。与 YOLOv7 相比,YOLOv10 通常提供卓越的效率,以显著更少的参数和更快的推理时间实现相似或更好的 mAP (Mean Average Precision)

下表概述了COCO数据集上的关键指标。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9

效率洞察

数据突出显示了 YOLOv10 在资源受限环境中的关键优势。YOLOv10m 实现了与 YOLOv7l (51.4% mAP) 几乎相同的精度 (51.3% mAP),但其参数量不到一半 (15.4M vs 36.9M),且 FLOPs 显著降低 (59.1B vs 104.7B)。

延迟与吞吐量

YOLOv10 移除了 NMS 步骤,显著降低了在拥挤场景中常见的延迟波动。在 自动驾驶汽车无人机监控等毫秒必争的应用中,YOLOv10 可预测的推理时间提供了关键的安全优势。YOLOv7 在高端 GPU 上的吞吐量仍具竞争力,但需要消耗更多内存和计算资源才能达到可比结果。

应用案例与应用

架构差异决定了每种模型的理想部署场景。

YOLOv10 的理想应用场景

  • 边缘AI:由于其低参数量和FLOPs,YOLOv10非常适合树莓派NVIDIA Jetson等设备。
  • 实时视频分析:高推理速度支持高FPS处理,适用于交通管理和零售分析。
  • 机器人技术:更低的延迟意味着机器人导航和操作任务的反应时间更快。

YOLOv7 的理想应用场景

  • 传统系统:已与 YOLOv7 代码库集成的项目可能会发现其足够稳定,无需立即重构即可维护。
  • 通用 detect:对于 VRAM 充足的服务器端部署,YOLOv7 的大型模型仍然提供强大的 detect 能力,尽管它们不如YOLO11等新型替代方案高效。

Ultralytics 优势

尽管这两个模型都功能强大,但利用 Ultralytics 生态系统为开发人员和研究人员提供了独特的优势。Ultralytics 框架标准化了训练、验证和部署的接口,使得在模型之间切换和基准测试性能变得显著更容易。

易用性与训练效率

深度学习的主要障碍之一是训练管道的复杂性。Ultralytics 模型,包括 YOLOv10 和 YOLO11,利用简化的 python API 自动处理数据增强、超参数调优导出

  • 简单API: 仅需几行代码即可训练模型。
  • 内存效率:与原始实现相比,Ultralytics 优化通常会使训练期间的 CUDA 内存使用更低。
  • 预训练权重:访问ImageNet和COCO上的高质量预训练模型可加速迁移学习

跨任务多功能性

现代 Ultralytics 模型超越了简单的边界框检测。它们在同一框架内支持 实例分割姿势估计旋转框检测 (OBB) 以及 分类。这种多功能性是相对于旧版独立存储库的关键优势。

代码示例:使用Ultralytics运行YOLOv10

以下示例展示了使用 Ultralytics API 加载预训练的 YOLOv10 模型并运行推理的简便性。这种易用性与 YOLOv7 等旧架构通常需要更手动设置的情况形成对比。

from ultralytics import YOLO

# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")

# Run inference on an image
results = model("path/to/image.jpg")

# Display the results
results[0].show()

结论与建议

对于新项目,YOLOv10 或更先进的 YOLO11 是推荐的选择。YOLOv10 的无 NMS 架构在速度和准确性之间实现了卓越平衡,使其高度适应现代 边缘计算 需求。它解决了前几代的延迟瓶颈,同时减少了计算开销。

尽管 YOLOv7 在计算机视觉历史上仍是一个受人尊敬的里程碑,但其架构按今天的标准来看效率较低。寻求最佳性能、长期维护和易于部署的开发者会发现,Ultralytics 生态系统凭借其持续更新和广泛的工具支持,是构建视觉 AI 解决方案最富有成效的环境。

了解更多


评论