YOLOv6.0 与YOLOv10:详细技术比较
选择最佳计算机视觉模型对人工智能计划的成功至关重要,它需要平衡推理延迟、准确性和计算效率等因素。这篇综合技术比较研究了两种著名的物体检测架构:YOLOv6.0 专为工业速度而设计,而 YOLOv10以实时端到端效率著称。我们分析了它们的架构创新、基准指标和理想用例,为您的选择过程提供指导。
YOLOv6.0:工业级速度和精度
YOLOv6.0由美团视觉智能部门开发,是专为工业应用优化的单级物体检测框架。该框架将于 2023 年初发布,优先采用硬件友好型设计,以最大限度地提高 GPU 和边缘设备的吞吐量,满足制造和物流领域对实时推理的严格要求。
- 作者: Chuyi Li, Lulu Li, Yifei Geng, Hongliang Jiang, Meng Cheng, Bo Zhang, Zaidan Ke, Xiaoming Xu, and Xiangxiang Chu
- 组织机构美团
- 日期: 2023-01-13
- Arxiv:https://arxiv.org/abs/2301.05586
- GitHub:https://github.com/meituan/YOLOv6
- 文件:https://docs.ultralytics.com/models/yolov6/
架构和主要特性
YOLOv6.0 对其架构进行了 "全面重装",纳入了多项先进技术,以提高特征提取和收敛速度:
- 高效的重参数化骨干网:它采用了硬件感知骨干网,可将复杂的训练结构简化为更快的推理层,在不影响精度的情况下优化FLOPS。
- 双向串联(BiC):颈部设计利用 BiC 改进定位信号,确保在不同尺度上更好地进行特征融合。
- 锚点辅助训练 (AAT):虽然YOLOv6.0 主要不使用锚点,但在训练过程中重新引入了基于锚点的辅助分支,以稳定收敛并提高性能。
优势与劣势
优势: YOLOv6.0 在需要高吞吐量的场景中表现出色。它支持模型量化,可在移动平台和嵌入式系统上有效部署。精简版 "特别适用于CPU环境。
弱点: 作为一个严格专注于对象检测的模型,它缺乏对更广泛任务的本机支持,如统一框架中的实例分割或姿势估计 ,如 YOLO11.此外,与较新的模型相比,它的参数效率较低,需要更多内存才能达到类似的精度水平。
理想应用案例:工业自动化
YOLOv6.0 是制造自动化的理想选择,因为装配线上的摄像机必须快速处理高分辨率图像,以detect 缺陷或对物品进行分类。
YOLOv10:端到端效率的前沿
YOLOv10 由清华大学的研究人员于 2024 年 5 月推出,在后处理过程中无需使用非最大抑制 (NMS),从而推动了YOLO 系列的发展。这一创新将其定位为适用于延迟关键型应用的下一代型号。
- 作者: Ao Wang, Hui Chen, Lihao Liu, et al.
- 组织机构: 清华大学清华大学
- 日期: 2024-05-23
- Arxiv:https://arxiv.org/abs/2405.14458
- GitHub:https://github.com/THU-MIG/yolov10
- 文件:https://docs.ultralytics.com/models/yolov10/
架构和主要特性
YOLOv10 采用以效率和精确度为导向的整体设计策略:
- NMS 训练:通过使用一致的双重分配(一对多用于训练,一对一用于推理),YOLOv10 可以为每个对象预测一个最佳方框。这消除了与NMS 后处理相关的计算开销和延迟变化。
- 整体模型设计:该架构具有轻量级分类头和空间通道解耦下采样功能,可显著降低模型参数和计算成本。
- 等级引导区块设计:为提高效率,该模型采用等级引导区块设计,以减少特征处理不那么重要的阶段的冗余。
优势与劣势
优势: YOLOv10 在速度和精度之间进行了出色的权衡,通常能实现更高的 mAP与前代产品相比,它的参数要少得多。它与Ultralytics Python 生态系统的集成使其非常容易与其他模型一起进行训练和部署。
弱点: 作为一款相对较新的产品,社区资源和第三方工具仍在不断增长。与YOLOv6 一样,它专门用于检测,而需要多任务功能的用户可能更喜欢 YOLO11.
性能分析:指标和基准
下表比较了YOLOv6.0 和YOLOv10 在COCO 数据集上的性能。主要指标包括模型大小、平均精度mAP)以及在CPU 和GPU 上的推理速度。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
重要见解
- 参数效率: YOLOv10 的效率非常高。例如,YOLOv10s实现的mAP (46.7%)高于YOLOv6.0s(45.0%),而使用的参数不到其一半(7.2M 对 18.5M)。这种内存占用的减少对边缘人工智能设备至关重要。
- 延迟:虽然YOLOv6.0n 显示原始TensorRT 延迟稍快(1.17ms 对 1.56ms),但YOLOv10 取消了NMS 步骤,而NMS 步骤通常会在真实世界的流水线中消耗额外的时间,而原始模型推理时间并不反映这一点。
- 准确性:在几乎所有尺度上,YOLOv10 都能提供更高的精度,使其成为在复杂环境中检测困难物体的更可靠选择。
使用和实施
Ultralytics 提供了使用这些模型的简化体验。YOLOv10 在 ultralytics 软件包,实现无缝 培训 和预测。
使用Ultralytics运行YOLOv10
只需几行代码,您就可以使用Python API 运行YOLOv10 。这凸显了Ultralytics 生态系统固有的易用性。
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Run inference on an image
results = model.predict("path/to/image.jpg", save=True)
# Train the model on a custom dataset
# model.train(data="coco8.yaml", epochs=100, imgsz=640)
使用YOLOv6.0
由于YOLOv6.0 采用了不同的代码库结构,因此通常需要克隆美团官方资源库来进行训练和推理。
# Clone the YOLOv6 repository
git clone https://github.com/meituan/YOLOv6
cd YOLOv6
pip install -r requirements.txt
# Inference using the official script
python tools/infer.py --weights yolov6s.pt --source path/to/image.jpg
总结:选择正确的模式
这两个型号代表了计算机视觉领域的重大成就。YOLOv6.0仍然是专门针对其架构进行优化的传统工业系统的可靠选择。但是 YOLOv10由于其NMS 架构、出色的参数效率和更高的精度,通常能为新项目提供更好的投资回报。
适用于寻求多功能性和生态系统支持的开发人员、 Ultralytics YOLO11强烈推荐。YOLO11 不仅能提供最先进的检测性能,还能原生支持姿势估计 、 旋转框检测Ultralytics 在一个维护良好的软件包中提供了大量的数据分析、分类和分析功能。Ultralytics 生态系统可确保高效的训练过程、低内存使用率,并可轻松导出为以下格式 ONNX和 TensorRT等格式,使您能够放心地部署强大的人工智能解决方案。
延伸阅读
- 探索多功能的 YOLO11用于多任务视觉人工智能。
- 比较YOLOv10 和RT-DETR,以了解transformer检测。
- 了解如何导出模型以实现最高部署速度。