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 训练,使模型能够直接预测独特的对象实例。结合以效率和准确性为导向的整体模型设计,它优化了各种组件,包括轻量级分类头和空间通道解耦下采样,以减少计算冗余。
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 通常具有更高的效率,以更少的参数和更快的推理时间实现了相似或更好的mAP (平均精度)。
下表概述了COCO 数据集的主要指标。
| 模型 | 尺寸 (像素) | 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 |
效率洞察
这些数据凸显了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 Pi或NVIDIA 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 生态系统拥有持续更新和广泛的工具支持,是构建视觉人工智能解决方案的最高效环境。