跳转至内容

YOLOv8 与 YOLOv7:一项全面的技术比较

计算机视觉领域不断发展,新架构不断突破实时目标检测的界限。在此深入探讨中,我们比较了两个极具影响力的模型:Ultralytics YOLOv8YOLOv7。这两种模型都对开发者社区和学术研究产生了重大影响,为解决复杂的视觉任务提供了独特的方法。

了解这两种模型在结构和方法上的差异,对于希望优化部署流程的机器学习工程师至关重要。YOLOv7引入了一种强大的“免费赠品包”方法,专为原始吞吐量量身定制,而Ultralytics YOLOv8则专注于创建一个全面、易用的生态系统,平衡了高精度、低内存消耗和多任务通用性。

Ultralytics YOLOv8:多功能生态系统标准

由Ultralytics于2023年初发布的YOLOv8代表了其前代产品的一次重大架构转变。它从头开始设计,不仅仅是一个实时目标检测器;它是一个能够开箱即用处理各种视觉任务的统一框架。

架构创新

YOLOv8 引入了创新的无锚框检测头。这从根本上简化了训练过程,因为它消除了根据自定义数据集的特定分布手动配置锚框的需要。这种设计选择使得模型高度鲁棒,并且更容易在不同环境中泛化。

此外,该架构还采用了C2f 模块(带有两个卷积的跨阶段部分瓶颈),这是一项结构升级,可改善梯度流,并使神经网络能够学习更丰富的特征表示,而不会大幅增加计算成本。这使得模型在使用PyTorch等标准深度学习框架进行推理时效率极高。

了解更多关于 YOLOv8

内存效率

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数据集等标准学术基准上取得了卓越性能,但其架构针对服务器级加速器进行了高度优化。与更现代、更精简的框架相比,将这些模型导出并部署到边缘设备有时需要更多的手动配置。

了解更多关于 YOLOv7

详细性能对比

评估这些模型时,速度、准确性和模型大小之间的权衡是首要考虑因素。下表重点介绍了这两种模型的指标。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9

数据显示,YOLOv8x 实现了最高的绝对准确度(53.9 mAP),而 nano 变体(YOLOv8n)则提供了卓越的推理速度和极其轻量级的占用空间。这种多样性使得 YOLOv8 更能适应受限的硬件环境。

Ultralytics 优势:易用性与生态系统

虽然YOLOv7提供了强大的原始detect指标,但Ultralytics YOLOv8在开发者体验、生态系统集成和多任务处理能力方面显著超越了它。

无与伦比的多功能性

YOLOv7 主要是一个 detect 模型,并带有其他任务的实验性分支。相比之下,YOLOv8 原生支持目标检测实例分割图像分类姿势估计旋转框检测 (OBB)。这种统一的方法意味着一个团队可以学习一个 API 并将其部署到完全不同的项目需求中。

简化的部署和集成

模型投入生产时的导出过程常常成为瓶颈。Ultralytics 包允许开发者通过一行 Python 代码将模型导出为 ONNXTensorRT 和 CoreML 等格式。这避免了在导出复杂的基于锚点的图时有时会遇到的算子支持问题。

此外,YOLOv8 与 MLOps 工具无缝集成。无论您是使用Weights & Biases跟踪实验,还是在Hugging Face Spaces上测试部署,Ultralytics 生态系统都能处理繁重的工作。

代码示例:训练与导出 YOLOv8

以下代码展示了 Ultralytics Python API 的简洁性。您可以在不到十行代码内完成从模型初始化到训练,再到边缘部署导出的全过程。

from ultralytics import YOLO

# Load a pretrained YOLOv8 nano model for fast inference
model = YOLO("yolov8n.pt")

# Train the model on the COCO8 dataset
# The API handles data loading, augmentation, and logging automatically
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on a test image
predictions = model("https://ultralytics.com/images/bus.jpg")

# Export the trained model to ONNX format for deployment
model.export(format="onnx")

部署灵活性

使用 model.export() 功能为高性能推理引擎提供了即时桥梁,使您能够轻松将YOLOv8集成到移动应用程序、嵌入式系统或高吞吐量云服务器中。

实际应用案例

两种模型之间的架构差异决定了它们理想的部署场景。

何时选择 YOLOv8:

  • 边缘 AI 和物联网设备: 超快的 Nano 和 Small 模型使 YOLOv8 非常适合计算能力有限的硬件,例如智能相机或无人机。
  • 多任务项目:如果您的流水线需要跟踪人体关节(姿势估计)同时映射障碍物(分割),YOLOv8原生支持此功能。
  • 从快速原型到生产:广泛的Ultralytics 文档和无缝的 Python API 使团队能够更快地将产品推向市场。

何时考虑 YOLOv7:

  • 学术基准测试:研究重参数化技术效果的研究人员常将YOLOv7用作标准基线,这在其在Papers With Code上的受欢迎程度中有所体现。
  • 遗留服务器管道:如果现有重计算管道已严格围绕 YOLOv7 的特定锚点输出进行优化,那么短期内维护它可能更实际。

展望未来:下一代

尽管YOLOv8仍然是一个多功能的强大模型,但人工智能领域发展迅速。对于启动新项目的团队,我们强烈建议探索Ultralytics产品线中的最新进展。

最新一代 YOLO26 代表了当前视觉 AI 的巅峰。它采用了端到端无 NMS 设计,消除了非极大值抑制后处理,从而实现更简单、更快速的部署。随着分布焦点损失 (DFL) 的移除和受 LLM 启发的 MuSGD 优化器的引入,YOLO26 提供了更稳定的训练和高达 43% 的 CPU 推理速度提升。其先进的 ProgLoss + STAL 损失函数显著改善了小目标识别,使其成为现代边缘计算和航空影像的终极选择。

对于从旧系统过渡的用户,高性能的YOLO11和经典的YOLOv5也仍然在统一的 Ultralytics 生态系统内得到全面支持,确保无论您的硬件限制如何,都有一个精简、高性能的模型可供部署。


评论