模型对比:YOLOv8 与 YOLOv7 的目标检测
选择正确的物体检测模型对于在计算机视觉任务中获得最佳性能至关重要。本页提供了 Ultralytics YOLOv8 和 YOLOv7 这两个该领域的重要模型之间的技术比较。我们将分析它们的架构细微差别、性能基准和理想应用,以指导您的模型选择过程,重点介绍 Ultralytics 生态系统提供的优势。虽然这两种模型都提升了技术水平,但 YOLOv8 凭借其增强的性能、多功能性和出色的易用性,成为现代应用的更佳选择。
YOLOv8:前沿的效率和适应性
Ultralytics YOLOv8于2023年发布,是Ultralytics的最新旗舰模型。它建立在其前身成功的基础之上,引入了新的性能、灵活性和效率水平。作为一种先进的模型,YOLOv8旨在跨越广泛的计算机视觉任务中表现出色。
作者: Glenn Jocher, Ayush Chaurasia, 和 Jing Qiu
机构: Ultralytics
日期: 2023-01-10
GitHub: https://github.com/ultralytics/ultralytics
文档: https://docs.ultralytics.com/models/yolov8/
架构与设计
YOLOv8 采用了一种精细的架构,既强大又用户友好。关键的架构改进包括一个新的无锚框检测头和一个更高效的骨干网络。无锚框设计减少了框预测的数量,从而简化了诸如 非极大值抑制 (NMS) 之类的后处理步骤,并加快了推理速度。这使得 YOLOv8 更容易适应各种物体形状和大小,而无需手动调整锚框。
优势
- 卓越的性能: YOLOv8 在准确性和速度之间实现了出色的平衡,在所有尺度上均优于之前的模型。其较小的模型比同类 YOLOv7 变体更快、更准确,而较大的模型则为精度树立了新标准。
- 无与伦比的多功能性: 与主要作为目标检测器的 YOLOv7 不同,YOLOv8 是一个统一的框架,开箱即用地支持多项任务:目标检测、实例分割、姿势估计、图像分类和旋转框检测 (OBB)。
- 易用性: Ultralytics 优先考虑简化的开发者体验。YOLOv8 随附简单的 Python API 和 CLI、全面的 文档,并与 Ultralytics HUB 等工具无缝集成,以实现无代码训练和部署。
- 完善的维护生态系统: 作为 Ultralytics 的官方模型,YOLOv8 受益于积极的开发、频繁的更新和强大的开源社区。这确保了可靠性、对最新功能的访问和广泛的支持。
- 训练和内存效率: YOLOv8 模型专为高效训练而设计,通常比其他架构(如 transformers)需要更少的 CUDA 内存。在COCO等数据集上提供随时可用的预训练权重,从而可以更快地在自定义数据上实现收敛。
弱点
- 作为一个高度先进的模型,最大的 YOLOv8 变体需要大量的计算资源进行训练,但它们的性能水平仍然非常高效。
理想用例
YOLOv8 卓越的性能和多功能性使其成为从 边缘设备 到云服务器等各种应用的理想选择。
- 实时工业自动化: 通过高速、准确的检测为制造业中的质量控制和过程监控提供支持。
- 高级 AI 解决方案: 在农业领域实现复杂的应用,用于作物监测,在医疗保健领域用于医学图像分析。
- 自主系统: 为自动驾驶车辆和机器人技术提供强大的感知能力。
YOLOv7:实时检测的基准
YOLOv7于2022年推出,是实时目标检测领域的一个重大进步,在发布时树立了新的技术水平标杆。它专注于优化训练过程,以提高准确性,同时不增加推理成本。
作者: Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao
组织: 台湾中研院资讯科学研究所
日期: 2022-07-06
Arxiv: https://arxiv.org/abs/2207.02696
GitHub: https://github.com/WongKinYiu/yolov7
文档: https://docs.ultralytics.com/models/yolov7/
架构与设计
YOLOv7 引入了几项架构创新,包括其 backbone 中的扩展高效层聚合网络 (E-ELAN),以提高学习效率。其最显著的贡献是“可训练的免费技巧包”的概念,这些是增强模型准确性而不增加推理开销的训练策略。这些策略包括辅助头和由粗到精的标签分配等技术。
优势
- 发布时的高性能: YOLOv7 提供了速度和准确性的完美结合,优于当时可用的其他检测器。
- 高效训练: “免费赠品”概念使其能够通过优化的训练程序实现高精度。
- 已建立的基准: 这是一个备受推崇的模型,已经在MS COCO等标准数据集上进行了广泛的测试。
弱点
- 多功能性有限: YOLOv7 主要是一个目标检测器。将其扩展到分割或姿势估计等其他任务需要单独的、通常由社区驱动的实现,这与 YOLOv8 的集成方法不同。
- 架构复杂性: 相比 YOLOv8 的精简设计,其训练技术和架构组件可能更复杂,难以理解和修改。
- 被新型号超越: 尽管 YOLOv7 功能强大,但其速度和准确性已被 YOLOv8 超越。Ultralytics 生态系统还提供了更友好的用户体验和更全面的功能。
理想用例
对于在更新的替代方案发布之前已集成 YOLOv7 的应用,它仍然是一个强大的模型。
- 实时安全系统: 适用于 防盗 等应用,在这些应用中,快速准确的检测是关键。
- 遗留项目: 对于维护或扩展基于 YOLOv7 架构构建的现有系统来说,这是一个可行的选择。
性能与基准测试:YOLOv8 vs. YOLOv7
性能比较清楚地说明了 YOLOv8 所取得的进步。总的来说,YOLOv8 模型在准确性和速度之间提供了更好的权衡。
模型 | 尺寸 (像素) |
mAPval 50-95 |
速度 CPU ONNX (毫秒) |
速度 T4 TensorRT10 (毫秒) |
参数 (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
从数据中,可以得出几个关键的见解:
- 卓越的精度: 最大的模型 YOLOv8x 实现了 53.9 mAP,超过了 YOLOv7x 模型的 53.1 mAP。
- 无与伦比的速度: YOLOv8 模型速度明显更快,尤其是在 CPU 上。YOLOv8n 模型在 CPU 上使用 ONNX 仅需 80.4 毫秒 的推理时间,这是 YOLOv7 所不具备的指标,但在实践中明显更快。在 GPU 上,YOLOv8n 使用 TensorRT 实现了惊人的 1.47 毫秒,远远超过了 YOLOv7 的效率。
- 更高的效率: YOLOv8 模型以更少的参数和 FLOPs 实现了相当或更好的性能。例如,YOLOv8l 实现了与 YOLOv7x 几乎相同的 mAP(52.9 对 53.1),但参数(43.7M 对 71.3M)和 FLOPs(165.2B 对 189.9B)明显更少。
结论:为什么 YOLOv8 是首选
虽然 YOLOv7 是一个强大的模型,但对于新项目和开发而言,YOLOv8 显然是赢家。其卓越的架构、最先进的性能和令人难以置信的通用性使其成为可用于对象检测和其他计算机视觉任务的最强大且用户友好的工具。
集成的 Ultralytics 生态系统提供了一个显著的优势,从训练到部署,提供无缝的体验。对于寻求强大、良好支持和高性能模型的开发人员和研究人员来说,YOLOv8 是明确的选择。
探索其他模型
对于那些有兴趣进一步探索的用户,Ultralytics 提供了一系列模型和比较。 考虑研究:
- YOLOv8 vs. YOLOv5:将 YOLOv8 与另一种广泛采用的高效模型进行比较。
- YOLOv8 与 RT-DETR:了解 YOLOv8 如何与基于 Transformer 的架构相抗衡。
- YOLO11 vs. YOLOv8:探索最新的 Ultralytics 模型 YOLO11 的改进之处。