YOLOv8 与 YOLOv7#
计算机视觉领域不断发展,新架构持续拓展实时目标检测的能力边界。本文将深入比较两个影响深远的模型:Ultralytics YOLOv8 和 YOLOv7。这两种模型都对开发者社区和学术研究产生了重大影响,并以各自独特的方式解决复杂视觉任务。
对于希望优化部署流程的机器学习工程师来说,了解这两种模型在结构和方法上的差异至关重要。YOLOv7 引入了针对原始吞吐量优化的强大“免费优化项”方法,而 Ultralytics YOLOv8 则专注于打造全面、易用的生态系统,在高准确率、低内存占用和多任务灵活性之间取得平衡。
Ultralytics YOLOv8:多功能生态系统标准#
YOLOv8 于 2023 年初由 Ultralytics 发布,与前代模型相比,它在架构上实现了重大转变。它从一开始就不仅仅是一款实时目标检测器,而是一个统一框架,能够开箱即用地处理多种视觉任务。
- 作者: Glenn Jocher、Ayush Chaurasia 和 Jing Qiu
- 组织: Ultralytics
- 日期: 2023-01-10
- GitHub: ultralytics/ultralytics
- 文档: YOLOv8 文档
架构创新#
YOLOv8 引入了创新的无锚框检测头。通过消除根据自定义数据集的具体分布手动配置锚框的需求,这种设计从根本上简化了训练过程。该设计让模型更加稳健,也更容易泛化到不同环境中。
此外,该架构还包含 C2f 模块(带两个卷积的跨阶段局部瓶颈模块)。这一结构升级改善了梯度流,让神经网络能够学习更丰富的特征表示,同时不会大幅增加计算成本。因此,通过 PyTorch 等标准深度学习框架运行推理时,模型效率很高。
Ultralytics YOLO 模型专为实现出色的训练效率而设计。与基于 Transformer 的架构或更大型的 CNN 相比,它们在训练期间通常需要少得多的 CUDA 内存。这样你就能在消费级硬件上使用更大的批次大小进行训练,加快开发周期。
YOLOv7:“免费优化项”方法#
YOLOv7 于 2022 年年中推出,很快就在学术界成为热门基准模型。它着重优化架构重参数化和梯度路径,以突破高端 GPU 上实时目标检测的性能上限。
- 作者: Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao
- 机构:台湾中央研究院信息科学研究所
- 日期: 2022-07-06
- arXiv: 2207.02696
- GitHub: WongKinYiu/yolov7
架构创新#
YOLOv7 采用扩展高效层聚合网络(E-ELAN),使模型能够持续学习更多样的特征。它主要采用基于锚框的范式,并引入可训练的“免费优化项”——一系列能够提升准确率且不会增加推理成本的优化方法。
虽然 YOLOv7 在 MS COCO 数据集等标准学术基准测试中表现出色,但其架构针对服务器级加速器进行了深度优化。与更现代、更精简的框架相比,将这些模型导出并部署到边缘设备有时需要更多手动配置。
详细性能对比#
评估这些模型时,速度、准确率和模型大小之间的权衡是首要考量。下表列出了两种模型的指标。
| 模型 | 尺寸 (像素) | mAP验证集 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (ms) | 参数 (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.1 |
| 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),而 nano 变体(YOLOv8n)推理速度出色,体积也极其轻量。这种多样性让 YOLOv8 更能适应资源受限的硬件环境。
Ultralytics 的优势:易用性与生态系统#
虽然 YOLOv7 的原始检测指标表现强劲,但在开发者体验、生态系统集成和多任务能力方面,Ultralytics YOLOv8 明显更胜一筹。
无与伦比的多功能性#
YOLOv7 主要是一款检测模型,也提供用于其他任务的实验性分支。相比之下,YOLOv8 原生支持目标检测、实例分割、图像分类、姿态估计和有向边界框(OBB)。这种统一方案意味着团队只需学习一个 API,就能将其用于完全不同的项目需求。
精简的部署与集成#
将模型导出以用于生产环境往往会成为瓶颈。Ultralytics 软件包支持开发者只用一行 Python 代码,就能将模型导出为 ONNX、TensorRT 和 CoreML 等格式。这样可以避免导出复杂的基于锚框计算图时有时会遇到的算子支持问题。
此外,YOLOv8 可与 MLOps 工具无缝集成。无论你是使用 Weights & Biases 跟踪实验,还是在 Hugging Face Spaces 上测试部署,繁重的工作都由 Ultralytics 生态系统处理。
代码示例:训练并导出 YOLOv8#
以下代码展示了 Ultralytics Python API 如何简单易用。不到十行代码,你就能从初始化模型转到训练,并导出模型以部署到边缘设备。
from ultralytics import YOLO
# 加载一个经过预训练的 YOLOv8 nano 模型,以实现快速推理
model = YOLO("yolov8n.pt")
# 使用 COCO8 数据集训练模型
# API 会自动处理数据加载、增强和日志记录
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# 对测试图像运行推理
predictions = model("https://ultralytics.com/images/bus.jpg")
# 将训练好的模型导出为 ONNX 格式,以便部署
model.export(format="onnx")使用 model.export() 函数,可以立即连接高性能推理引擎,让你轻松将 YOLOv8 集成到移动应用、嵌入式系统或高吞吐量云服务器中。
实际应用场景#
两种模型的架构差异决定了它们各自理想的部署场景。
适合选择 YOLOv8 的场景:
- 边缘 AI 和 IoT 设备: Nano 和 Small 模型速度极快,因此 YOLOv8 非常适合智能摄像头或无人机等计算能力有限的硬件。
- 多任务项目: 如果你的流程需要跟踪人体关节(姿态估计),同时绘制障碍物地图(分割),YOLOv8 可以原生处理这些任务。
- 从快速原型设计到产品落地: 完善的 Ultralytics 文档和流畅的 Python API 能帮助团队更快地将产品推向市场。
可以考虑 YOLOv7 的场景:
- 学术基准测试: 研究重参数化技术影响的研究人员常将 YOLOv7 用作标准基准模型,这也反映在它在 Hugging Face Papers 上的高人气。
- 遗留服务器流程: 如果现有的高算力流程已经针对 YOLOv7 特定的锚框输出进行了严格优化,那么短期内继续使用可能更实际。
展望未来:新一代模型#
YOLOv8 仍是一款用途广泛的强大模型,但 AI 领域瞬息万变。对于启动新项目的团队,我们强烈建议了解 Ultralytics 系列的最新进展。
最新一代模型 YOLO26 代表了当前视觉 AI 的巅峰水平。它提供端到端无 NMS 设计选项(nms=False),可跳过非极大值抑制后处理,从而简化并加快部署。YOLO26 移除了分布焦点损失(DFL),并引入了受 LLM 启发的 MuSGD 优化器,让训练更稳定,CPU 推理速度最高提升 43%。其先进的 ProgLoss + STAL 损失函数大幅提升了小目标识别能力,使其成为现代边缘计算和航空影像应用的理想选择。
对于从旧系统迁移过来的用户,功能强大的 YOLO11 和经典模型 YOLOv5 也继续在统一的 Ultralytics 生态系统中得到全面支持。无论你的硬件限制如何,都能找到可供部署的精简高性能模型。