YOLOv8 与YOLOv7:全面技术比较
物体检测模型发展迅速,其中YOLO (只看一次)系列在实时性能方面处于领先地位。选择 YOLOv8和 YOLOv7不仅要了解它们的原始指标,还要了解围绕它们的架构理念、开发人员经验和生态系统支持。YOLOv7 一经发布就树立了令人印象深刻的基准,而Ultralytics YOLOv8 则在可用性和多功能性方面引入了范式转变。
本指南提供详细的技术分析,帮助开发人员和研究人员为其计算机视觉项目选择合适的工具。
性能分析
在比较性能时,关键是要权衡推理速度和检测精度 (mAP).一般来说,YOLOv8 能提供更好的平衡,在模型大小相似的情况下提供更高的准确性,在现代硬件上提供更快的推理速度。
下表突出显示了COCO 数据集的性能差异。
| 模型 | 尺寸 (像素) | 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 |
主要内容
- 效率:效率 YOLOv8n(nano) 型号实现了卓越的速度(在GPU 上为 1.47 毫秒),使其成为对延迟要求极高的边缘人工智能应用的理想之选。
- 精确度:YOLOv8x在精度方面超过了YOLOv7x(53.9% 对 53.1%mAP),同时保持了有竞争力的参数数量。
- 优化: YOLOv8 模型具有更高的参数效率,每 FLOP 性能更高,从而降低了推理过程中的能耗。
Ultralytics YOLOv8:现代标准
由Ultralytics 于 2023 年初发布、 YOLOv8不仅在性能上,而且在灵活性和易用性上都达到了最先进的水平(SOTA)。它将多种计算机视觉任务整合到一个单一、精简的框架中。
- 作者: Glenn Jocher、Ayush Chaurasia 和 Jing Qiu
- 组织机构Ultralytics
- 日期: 2023-01-10
- GitHub:ultralytics
- 文档:YOLOv8 文档
建筑与创新
YOLOv8 引入了无锚点检测机制,无需手动计算锚点框,从而简化了训练过程。这减少了盒预测的数量,加快了非最大抑制 (NMS) 的速度。
该架构采用了C2f 模块(带两次卷积的跨阶段部分瓶颈),与之前的迭代相比,它能更有效地将高级特征与上下文信息结合起来。这将带来更丰富的梯度流和更好的学习收敛性。此外,YOLOv8 还采用了解耦头,独立处理对象性、分类和回归任务,从而提高了准确性。
优势
- 生态系统集成:与Ultralytics 生态系统完全集成,可通过简单的Python API 或CLI 进行无缝模型训练、验证和部署。
- 多功能性:本机支持对象检测、实例分割、姿势估计 、图像分类和定向边框检测(旋转框检测)。
- 开发人员经验: 安装简单
pip install ultralytics在 GitHub 和 Discord.
YOLOv7:效率标杆
YOLOv7 一经发布就引起了巨大的反响,它引入了以 "无用包 "方法为重点的架构优化,在不增加推理成本的情况下提高了准确性。
- 作者: Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao
- 组织机构中央研究院信息科学研究所
- 日期: 2022-07-06
- Arxiv:YOLOv7:可训练的免费书包树立了新标杆
- GitHub:WongKinYiu/yolov7
结构和方法
YOLOv7 采用了扩展高效层聚合网络 (E-ELAN),可控制最短和最长梯度路径,让网络高效地学习更多特征。它非常重视模型的缩放(同时改变深度和宽度),并引入了重新参数化技术,以便在推理过程中合并层,从而在不损失训练精度的情况下加快模型的速度。
优势与局限
YOLOv7 是一个功能强大的模型,具有出色的速度-精度比,特别是在GPU 设备上。其 "免费赠品包 "方法可确保模型在部署过程中保持轻量级。不过,与YOLOv8 相比,它缺乏开箱即用的统一多任务支持,需要更复杂的设置程序,包括克隆软件源和手动管理依赖关系。它主要是一个对象检测专家,其他任务通常需要单独的分支或实现。
深入的技术比较
可用性和生态系统
最明显的区别之一在于易用性。Ultralytics YOLOv8 打包成一个标准Python 库。这意味着开发人员只需编写最少的代码,就能将其集成到现有的管道中。相比之下,YOLOv7 通常作为一个独立的代码库运行,必须克隆和修改。
开发人员体验
YOLOv8 只需三行Python 代码就能训练一个模型。这种简化的用户体验大大缩短了人工智能解决方案的上市时间。
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load a pretrained model
# Train the model
results = model.train(data="coco8.yaml", epochs=100)
任务多样性
现代计算机视觉项目需要的往往不仅仅是边界框。
- YOLOv8: 真正的多任务模式。您可以从检测切换到 分割 或 姿势估计 只需更改模型权重文件(如
yolov8n-seg.pt)。 - YOLOv7:主要侧重于检测。虽然存在扩展功能,但它们没有在一个统一的框架内进行紧密集成或维护。
训练效率和记忆力
YOLOv8 优化了训练过程中的内存需求。它采用智能数据增强策略,在训练结束时关闭,以提高精确度。此外,Ultralytics 框架还支持各种数据集格式,并能处理标准数据集的自动下载,从而大大提高了训练效率。
Transformer模型通常需要大量的CUDA 内存,而且训练速度较慢。相比之下,YOLOv7 和YOLOv8 都是基于 CNN 的高效模型,但YOLOv8 的现代架构选择(如 C2f 块)通常能在消费级硬件上实现更快的收敛和更好的内存效率。
实际应用案例
零售和库存管理
对于零售分析而言,速度至关重要。 YOLOv8n可在摄像头或NVIDIA Jetson 模块等边缘设备上运行,以实时track 库存。其推理速度极快,可确保准确无误地清点移动产品。
自主系统与机器人学
机器人需要精确的空间理解能力。YOLOv8 的分割功能可让机器人分辨出障碍物的确切形状,而不仅仅是一个边界框。这种多功能性提高了导航的安全性。虽然YOLOv7 具备这种能力,但实施分割需要更多的努力和不同的代码库。
农业
在精准农业领域,模型可以detect 作物疾病或监控生长。Ultralytics 维护良好的生态系统意味着研究人员可以获得预训练的权重和专门针对这些利基数据集的社区教程,从而降低了入门门槛。
结论
尽管YOLOv7 在计算机视觉历史上仍然是一个值得尊敬的强大架构,但Ultralytics YOLOv8 代表了现代开发的最佳选择。它结合了最先进的性能、无与伦比的多功能性和开发人员优先的生态系统,使其成为学术研究和企业部署的首选解决方案。
Ultralytics 还为那些追求最新效率和架构改进的用户发布了 YOLO11,进一步拓展了产品范围。不过,如果要与第七代产品直接比较,YOLOv8 是最强大、最可靠、最易用的产品。
延伸阅读
探索其他模式比较,加深对YOLO 情况的了解:
- YOLO11 vsYOLOv8- 比较最新迭代版本。
- YOLOv5 vsYOLOv8- 查看架构与 v5 相比有何演变。
- YOLOv10 vsYOLOv8- 分析不同的架构方法。
- Ultralytics 术语表--了解mAP 和IoU 等关键术语。