YOLOv10 与YOLOv6.0:实时对象检测的演变
选择合适的计算机视觉架构是一个关键性的决定,会影响人工智能项目的效率、准确性和可扩展性。随着物体检测领域的加速发展,开发人员往往需要在成熟的工业标准和前沿创新之间做出选择。本指南全面比较了 YOLOv10和YOLOv6.0 这两个专为高性能应用而设计的杰出型号之间进行了全面的技术比较。
YOLOv10:NMS 检测的前沿
YOLOv10 代表了YOLO 系列的模式转变,重点是消除部署管道中的瓶颈,以实现真正的实时端到端效率。由清华大学研究人员开发的 YOLOv10 引入了架构变革,消除了对非最大抑制(NMS)的需求,而非最大抑制是一个常见的后处理步骤,传统上会增加延迟。
- 作者: Ao Wang, Hui Chen, Lihao Liu, et al.
- 组织机构: 清华大学清华大学
- 日期: 2024-05-23
- Arxiv:查看论文
- GitHub:YOLOv10 资源库
- 文档:YOLOv10 文档
架构与创新
YOLOv10 通过几个关键机制优化了推理延迟和模型性能:
- NMS 训练: YOLOv10 利用一致性双重分配(Consistent Dual Assignments)训练模型,在训练过程中产生丰富的监督信号,同时在推理过程中预测单一的高质量检测。这消除了NMS 的计算开销,简化了模型部署管道。
- 整体效率-精度设计:该架构采用轻量级分类头和空间通道解耦下采样。这些组件降低了计算成本(FLOPs),同时保留了重要的特征信息。
- 大核卷积:在深度阶段有选择地使用大核卷积可增强感受野,使模型能够更好地理解全局上下文,而不会明显降低速度。
YOLOv6.0:工业级优化
2023 年初发布的YOLOv6.0(通常简称为YOLOv6)是美团专为工业应用而设计的。它优先考虑硬件友好型设计,最大限度地提高 GPU 的吞吐量,使其成为工厂自动化和大规模视频处理的理想选择。
- 作者李楚怡 李璐璐 耿一飞等
- 组织机构美团
- 日期: 2023-01-13
- Arxiv:查看论文
- GitHub:YOLOv6 资源库
- 文档:YOLOv6 文档
架构与创新
YOLOv6.0 的重点是通过积极的结构调整来优化速度和精度之间的权衡:
- 可重参数骨干网:它采用了一种 EfficientRep 骨架,允许在训练过程中使用复杂的结构,而在推理过程中,这些结构会分解成更简单、更快速的模块。
- 混合通道策略:这种方法兼顾内存访问成本和计算能力,针对不同的硬件限制优化网络。
- 自我发散:一种训练策略,学生网络从自身(或教师版本)学习,在不增加推理成本的情况下提高收敛性和最终准确性。
硬件感知设计
YOLOv6 的明确设计目标是 "硬件友好",针对NVIDIA ®)图形处理器(如 T4 和 V100)的性能进行优化。这使得它在有特定硬件加速并经过调整的情况下特别有效。
性能分析
下面的比较采用了COCO 数据集的指标,该数据集是物体检测的标准基准。该表突出显示了YOLOv10 在参数效率和准确性方面的优势。
| 模型 | 尺寸 (像素) | 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 |
| YOLOv6.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
主要内容
- 参数效率: YOLOv10 显著缩小了模型规模。例如,与YOLOv6.0s(45.0%mAP)相比,YOLOv10s实现了更高的精度(46.7%mAP),而使用的参数却不到其一半(7.2M 对 18.5M)。这种较低的内存占用对于内存有限的边缘设备至关重要。
- 计算成本:在类似的层级中,YOLOv10 的 FLOPs(浮点运算)数明显降低,从而降低了功耗,并可能降低边缘人工智能硬件的运行温度。
- 精确度: YOLOv10 在所有量表中的mAP (平均精确度)得分一直较高,这表明它在不同条件下检测物体的能力更强。
- 速度:虽然YOLOv6.0n 在 T4 GPU 上的原始TensorRT 延迟方面略胜一筹,但YOLOv10 的NMS 架构在实际应用中的优势在于消除了CPU后处理瓶颈,从而提高了系统总吞吐量。
整合与生态系统
最显著的区别之一在于生态系统和易用性。YOLOv6 是一个功能强大的独立存储库、 YOLOv10则得益于与 Ultralytics生态系统。这为开发人员提供了从数据注释到部署的无缝工作流程。
Ultralytics的易用性
使用Ultralytics 模型可确保您访问标准化、简单的Python 应用程序接口。您可以在以下模型之间切换 YOLOv8和YOLOv10 等模型之间进行切换,只需修改极少的代码,这种灵活性是在不同框架之间切换时难以实现的。
from ultralytics import YOLO
# Load a pre-trained YOLOv10 model
model = YOLO("yolov10n.pt")
# Train the model on your custom data
model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model.predict("path/to/image.jpg")
多功能性和面向未来
虽然YOLOv6.0 主要侧重于检测,但Ultralytics 框架支持更广泛的计算机视觉任务,包括分割、分类和姿势估计 。对于需要多任务功能的用户,升级到 YOLO11通常是推荐的途径,因为它可以在相同的统一 API 中为所有这些模式提供最先进的性能。
简化培训
使用Ultralytics 进行训练时,您可以利用自动超参数调整、通过TensorBoard实时记录等功能,也可以通过以下方式进行训练 Weights & Biases等功能,从而大大加快从研究到生产的周期。
理想用例
何时选择YOLOv10
- 边缘部署: YOLOv10 参数数量少、NMS 设计,是NVIDIA Jetson 或 Raspberry Pi 等嵌入式系统的理想选择,因为在这些系统中,用于后处理的CPU 资源非常稀缺。
- 实时应用: 自动驾驶汽车或无人机导航等需要即时反馈的应用可受益于NMS 推理的可预测延迟。
- 新项目:对于任何新建项目而言,YOLOv10 在精确度和效率之间的出色权衡以及现代化的生态系统支持,使其成为超越旧架构的首选。
何时选择YOLOv6.0
- 传统系统:如果现有的生产流水线已经针对YOLOv6 的特定架构进行了大量优化,而重新设计的成本过高。
- 特定GPU 工作负载:在严格受TensorRT 原始吞吐量限制的TensorRT 时代硬件场景中,YOLOv6 的特定优化仍可能在原始帧数上保持微弱优势,特别是对于 nano 模型。
结论
YOLOv6.0一经发布,就成为工业对象检测的强大基准、 YOLOv10代表了视觉人工智能发展的下一步。YOLOv10 采用NMS 架构,参数数量大幅减少,精度更高,为现代计算机视觉挑战提供了更高效、可扩展的解决方案。
对于在检测、分割和姿势估计 方面寻求绝对最新的多功能性和性能的开发人员,我们还建议探索 YOLO11.作为积极维护的Ultralytics 生态系统的一部分,这些模型通过强大的社区支持和持续改进,确保您始终走在人工智能创新的前沿。
如需进一步了解型号比较,请查看我们对YOLOv10 与YOLOv8的分析,或探索 RT-DETRtransformer检测transformer。