YOLOv5 与YOLO11:全面的技术比较
在快速发展的计算机视觉领域,选择正确的物体检测模型对于项目的成功至关重要。该领域最重要的两个里程碑是 YOLOv5和最近发布的 YOLO11.YOLOv5 在易用性和速度方面建立了一个传奇标准,而YOLO11 则利用多年的研发成果,在准确性和效率方面突破了界限。
本指南对这两种架构进行了详细的技术分析,帮助开发人员、研究人员和工程师为其人工智能应用做出明智的决策。
Ultralytics YOLOv5:可靠的主力军
YOLOv5 于 2020 年发布,彻底改变了物体检测的可访问性。它是第一个在 PyTorch中实现的第一个 "只看一次 "模型,使开发人员可以非常容易地进行训练和部署。它兼顾了速度和准确性,因此成为从工业检测到自动驾驶汽车的首选。
技术细节:
- 作者: Glenn Jocher
- 组织机构Ultralytics
- 日期: 2020-06-26
- GitHub:https://github.com/ultralytics/yolov5
- 文件:https://docs.ultralytics.com/models/yolov5/
主要特性和架构
YOLOv5 采用了基于锚的架构。它引入了 CSPDarknet 骨干网,与之前的迭代相比,大大改善了梯度流并降低了计算成本。该模型采用了路径聚合网络(PANet)颈部来促进信息流,并在训练过程中集成了马赛克数据增强技术,该技术已成为提高模型对较小物体鲁棒性的标准。
优势
YOLOv5 以其稳定性和成熟性而闻名。经过多年的社区测试,其生态系统包括大量教程、第三方集成和部署指南。对于已经针对其架构进行了特定硬件优化的传统系统或边缘设备来说,YOLOv5 是一个极佳的选择。
Ultralytics YOLO11:最新技术演进
2024 年底发射、 YOLO11代表了视觉人工智能的最前沿。它借鉴了YOLOv5 和 YOLOv8提供更快、更准确、计算效率更高的模型。
技术细节:
- 作者: Glenn Jocher, Jing Qiu
- 组织机构Ultralytics
- 日期: 2024-09-27
- GitHub:https://github.com/ultralytics/ultralytics
- 文件:https://docs.ultralytics.com/models/yolo11/
架构和主要特性
YOLO11 引入了重大的架构改进,包括 C3k2 块和 C2PSA(跨阶段部分空间注意力)模块。与YOLOv5 不同,YOLO11 采用了无锚点检测头,无需手动计算锚点框,从而简化了训练过程。这一设计转变增强了泛化能力,使模型能够更好地适应不同的数据集。
无与伦比的多功能性
YOLO11 的一个显著特点是在一个框架内支持多种计算机视觉任务。YOLOv5 主要侧重于检测(后来支持分割),而YOLO11 则从一开始就是为了处理以下任务而构建的:
这种多功能性使开发人员无需切换框架即可解决复杂的机器人和分析问题。
性能对比
从YOLOv5 过渡到YOLO11 后,性能大幅提升。这些指标表明,YOLO11 在速度和精度之间实现了出色的权衡。
精度与效率
与类似规模的YOLOv5 模型相比,YOLO11 在COCO 数据集上持续获得更高的平均精度 (mAP)。例如,YOLO11m模型的精确度(51.5 vs 50.7mAP)超过了规模更大的YOLOv5x,而运行参数(20.1M vs 97.2M)仅为其一小部分。模型大小的大幅缩减降低了训练和推理过程中的内存需求,这对于在资源有限的边缘人工智能硬件上部署来说是一个关键因素。
推理速度
得益于优化的架构选择,YOLO11 在CPU 推理速度方面大放异彩。YOLO11n型号为实时应用创建了一个新的基准,使用ONNX 时,CPU 速度仅为 56.1ms,大大快于上一代产品。
内存效率
Ultralytics YOLO11 型号专为优化内存使用而设计。与transformer探测器(如 RT-DETR相比,YOLO11 在训练过程中所需的CUDA 内存要少得多,因此开发人员可以使用标准的消费级 GPU。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
| YOLO11n | 640 | 39.5 | 56.1 | 1.5 | 2.6 | 6.5 |
| YOLO11s | 640 | 47.0 | 90.0 | 2.5 | 9.4 | 21.5 |
| YOLO11m | 640 | 51.5 | 183.2 | 4.7 | 20.1 | 68.0 |
| YOLO11l | 640 | 53.4 | 238.6 | 6.2 | 25.3 | 86.9 |
| YOLO11x | 640 | 54.7 | 462.8 | 11.3 | 56.9 | 194.9 |
培训和开发人员经验
这两种模式都受益于以 "易用性 "著称的Ultralytics 综合生态系统。
无缝集成
YOLO11 与现代 ultralytics Python 软件包将所有任务统一在一个简单的应用程序接口下。这样,只需几行代码就能完成培训、验证和部署。
from ultralytics import YOLO
# Load a COCO-pretrained YOLO11n model
model = YOLO("yolo11n.pt")
# Train on a custom dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
虽然YOLOv5 有自己专用的资源库,但它也可以通过PyTorch Hub轻松加载,或在更新的生态系统中用于某些任务。这两种模型都有强大的文档支持,无论您是要进行超参数调整,还是要导出到 OpenVINO都能简化流程。
生态系统效益
选择Ultralytics 模型意味着可以使用一套维护良好的工具。从与用于实验跟踪的 Comet集成到无缝数据集管理,该生态系统支持整个MLOps生命周期。这种积极的开发确保定期提供安全补丁和性能改进。
理想用例
何时选择YOLOv5
- 传统硬件:如果您有现有的边缘设备(如较旧的 Raspberry Pis),其流水线专门针对YOLOv5 架构进行了优化。
- 既定工作流程:适用于处于深度维护模式的项目,在这种模式下,更新核心模型架构会产生巨大的重构成本。
- 特定GPU 优化:在极少数情况下,特定的TensorRT 引擎会针对YOLOv5 的精确层结构进行大量调整。
何时选择YOLO11
- 新开发项目:对于几乎所有的新项目,YOLO11 都是推荐的起点,因为它具有卓越的精度与计算比。
- 实时CPU 应用程序:在笔记本电脑或云实例等标准处理器上运行的应用程序可从YOLO11 的CPU 速度优化中获益匪浅。
- 复杂任务:需要在检测的同时进行实例分割或姿势估计 项目。
- 高精度要求:在医疗成像或卫星图像分析等领域,高精度检测小物体至关重要。
结论
YOLOv5 仍然是高效、易用的人工智能设计的典范,在过去几年中为无数创新提供了动力。然而,YOLO11 代表着未来。凭借先进的无锚架构、出色的mAP 分数和增强的多功能性,它为开发人员提供了一个更强大的工具集,以解决现代计算机视觉挑战。
通过采用YOLO11,您不仅可以获得更好的性能,还可以在蓬勃发展的Ultralytics 生态系统中保护您的应用程序的未来。
探索其他模型
如果您有兴趣将这些架构与其他领先机型进行比较,请浏览我们的详细比较: