跳转至内容

YOLOv10 与YOLOv7:推进实时物体检测架构

YOLO (You Only Look Once,只看一次)系列的发展不断推动计算机视觉技术的进步,在实时应用的速度和精度之间取得了平衡。本对比探讨了 YOLOv10 和 YOLOv10 之间的架构转变和性能差异。 YOLOv10和 YOLOv7 之间的架构转变和性能差异。 YOLOv7之间的架构转变和性能差异。虽然这两个模型都对物体检测领域做出了重大贡献,但它们采用了不同的策略来实现各自的性能目标。

模型架构的演变

从YOLOv7 到YOLOv10 的过渡标志着神经网络处理后处理和特征整合的模式发生了转变。

YOLOv10:NMS 革命

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

YOLOv10 利用一致性双分配(Consistent Dual Assignments)进行NMS 训练,使模型能够直接预测独特的对象实例。结合以效率和准确性为导向的整体模型设计,它优化了各种组件,包括轻量级分类头和空间通道解耦下采样,以减少计算冗余。

了解有关YOLOv10的更多信息

YOLOv7:为可培训的免费书包进行优化

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

YOLOv7 大量采用了 "免费包"(Bag-of-Freebies)--在不影响推理速度的情况下提高训练精确度的方法,以及高效复合参数的模型扩展技术。虽然 YOLOv7 非常有效,但它对传统NMS 后处理的依赖意味着它的端到端延迟往往高于最新的NMS 架构。

了解有关YOLOv7的更多信息

技术性能比较

在对这些模型进行评估时,在效率和原始检测能力方面出现了不同的模式。与YOLOv7 相比,YOLOv7 通常具有更高的效率,以更少的参数和更快的推理时间实现了相似或更好的mAP (平均精度)

下表概述了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 对 36.9M)不到YOLOv7l一半,FLOPs(59.1B 对 104.7B)显著降低。

延迟和吞吐量

YOLOv10 取消了NMS 步骤,大大降低了在拥挤场景中经常出现的延迟差异。在自动驾驶汽车无人机监控等每毫秒都至关重要的应用中,YOLOv10 的可预测推理时间提供了安全关键的优势。在高端 GPU 上,YOLOv7 的吞吐量仍然具有竞争力,但要实现类似的结果,需要消耗更多的内存和计算量。

应用案例与应用

架构上的差异决定了每种模式的理想部署方案。

YOLOv10的理想场景

  • 边缘人工智能: YOLOv10 参数数量少、FLOPs 低,非常适合Raspberry PiNVIDIA Jetson 等设备。
  • 实时视频分析:高推理速度可支持交通管理和零售分析的高每秒处理速度。
  • 机器人:延迟时间越短,机器人导航和操纵任务的反应时间就越快。

YOLOv7的理想场景

  • 遗留系统:已经与YOLOv7 代码库集成的项目可能会发现它足够稳定,无需立即重构即可维护。
  • 通用检测:对于 VRAM 资源丰富的服务器端部署,YOLOv7 的较大型号仍可提供强大的检测功能,但其效率低于较新的替代产品,如 YOLO11.

Ultralytics 的优势

虽然两种模型都很强大,但利用Ultralytics 生态系统能为开发人员和研究人员带来明显的好处。Ultralytics 框架实现了训练、验证和部署界面的标准化,大大方便了模型之间的切换和性能基准的设定。

易用性和培训效率

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

  • 简单的应用程序接口:只需几行代码即可训练一个模型。
  • 内存效率:与原始实现相比,Ultralytics 优化通常会降低训练过程中的CUDA 内存使用量。
  • 预训练权重:访问在 ImageNet和COCO 上的高质量预训练模型可加速迁移学习

适用于各种任务

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

代码示例:使用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虽然 YOLOv7 仍是计算机视觉史上备受推崇的里程碑,但其架构在当今的标准下效率较低。寻求最佳性能、长期维护和易于部署的开发人员会发现,Ultralytics 生态系统拥有持续更新和广泛的工具支持,是构建视觉人工智能解决方案的最高效环境。

探索更多


评论