YOLOv8 与 YOLOv9#
实时目标检测的发展一直以追求更高精度、更低延迟和更高效的硬件利用率为特征。其中两个重要里程碑是 Ultralytics YOLOv8 和 YOLOv9。虽然这两个模型都代表了计算机视觉领域的先进能力,但它们面向不同的部署需求,采用不同的架构理念,也服务于不同的开发者生态。
本指南将全面解析两者在技术、架构创新和实际部署方面的差异,帮助你为下一个人工智能项目选择合适的模型。
模型谱系与核心理念#
在深入了解指标之前,务必先了解每个模型的起源和主要设计目标。
Ultralytics YOLOv8:灵活的生态系统标准#
YOLOv8 由 Ultralytics 团队发布,其设计目标不仅是作为一个独立的目标检测器,更是一个统一的多任务框架。它优先考虑流畅的开发者体验、较低的内存需求以及广泛的硬件兼容性。
- 作者: Glenn Jocher、Ayush Chaurasia 和 Jing Qiu
- 组织: Ultralytics
- 日期: 2023-01-10
- GitHub: ultralytics/ultralytics
- 文档: YOLOv8 文档
YOLOv9:可编程梯度信息#
YOLOv9 由中央研究院的研究人员独立开发,重点关注架构理论,尤其针对深度神经网络中的信息瓶颈现象。
- 作者: Chien-Yao Wang 和 Hong-Yuan Mark Liao
- 机构: 中国台湾中央研究院信息科学研究所
- 日期: 2024-02-21
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
如果你计划进行大规模商业部署,可以考虑探索 Ultralytics Platform,以简化云端训练、数据集管理和一键式 API 端点的使用。
架构深入解析#
深度学习中的架构选择决定了模型学习的效率,以及它在 NVIDIA Jetson 或 Intel CPU 等目标硬件上的运行速度。
YOLOv8 架构:C2f 与解耦头#
YOLOv8 引入了 C2f 模块(具有两个卷积的跨阶段部分瓶颈),取代了较早的 C3 模块。这一变化改善了梯度流,使网络能够学习更丰富的特征表示,同时不会过度消耗 GPU 内存。
此外,YOLOv8 采用了无锚框设计和解耦头。通过使用独立路径分别处理目标性、分类和回归,模型在训练期间收敛更快,并且能够更好地泛化到各种自定义数据集。
YOLOv9 架构:PGI 与 GELAN#
YOLOv9 引入了可编程梯度信息(PGI)和广义高效层聚合网络(GELAN)。PGI 确保关键数据在经过网络各层时不会丢失,从而为权重更新提供可靠的梯度。GELAN 最大限度地提高了参数效率,使模型能够在尽量控制 FLOPs 的同时实现较高的精度。
虽然 YOLOv9 在数学上颇具优势,但它在训练期间依赖特定的辅助可逆分支,因此与标准流水线相比,训练代码的定制可能更加复杂。
性能指标与基准测试#
下表对比了不同尺寸下的模型。性能在MS 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 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
注意:每列中的最佳值以粗体标出。
分析取舍#
YOLOv9 的峰值精度(mAP)略高,尤其是其更大的 e 变体。不过,这也带来了代价。Ultralytics YOLOv8 在推理速度方面保持着显著优势,尤其是在编译为 TensorRT 或 ONNX 等格式后。对于需要在受限边缘硬件(如 Raspberry Pi 或较旧的移动芯片)上实现高帧率(FPS)的应用,YOLOv8 的 n 和 s 变体能够提供更加实用的性能平衡。
训练效率与生态系统集成#
选择模型不能只看精度表;开发者体验至关重要。
Ultralytics 的优势:易于使用#
训练 YOLOv9 通常需要克隆复杂的 GitHub 代码仓库、仔细管理 PyTorch 环境,并手动配置辅助损失权重。
相比之下,Ultralytics YOLOv8 由极其简洁的 Python API 提供支持。它专为易用性而构建,能够原生处理数据增强、日志记录(记录到 Weights & Biases 和 Comet ML 等工具)以及硬件分发。
from ultralytics import YOLO
# Load a pre-trained YOLOv8 small model
model = YOLO("yolov8s.pt")
# Train the model efficiently on custom data
results = model.train(data="custom_dataset.yaml", epochs=100, imgsz=640)
# Export for edge deployment
model.export(format="engine", quantize=16) # TensorRT export这一单一 API 大幅缩短了从原型到生产的时间。此外,YOLOv8 在训练期间通常需要更少的 CUDA 内存,使开发者能够在消费级硬件上使用更大的批量大小。
任务多样性#
虽然 YOLOv9 是出色的边界框检测器,但现实世界中的视觉 AI 往往需要更多功能。YOLOv8 是一个功能多样的强大框架,原生支持实例分割、姿态估计、图像分类和定向边界框(OBB)。使用单一框架处理多项任务,可以大幅减少软件冗余和维护开销。
如果你正在启动新项目,也可以评估 Ultralytics YOLO11 或前沿的 YOLO26,它们原生采用端到端的无 NMS 设计。
实际应用场景#
这些模型在生产环境中的表现如何?
自主无人机与机器人#
对于需要快速避障的机器人,YOLOv8 是首选。YOLOv8n 的超低延迟可确保自主系统实时响应周围环境,避免碰撞。原生导出到 OpenVINO 和 CoreML 的能力,使其能够轻松部署到商用无人机常用的低功耗芯片上。
高分辨率缺陷检测#
在检测微观异常至关重要且可以接受离线处理的专业制造环境中,YOLOv9 可能非常有效。PGI 架构有助于网络保留识别发丝裂纹或 PCB 焊接错误所需的细粒度视觉细节。
智能零售与安全分析#
对于跟踪商店过道中的顾客或管理自动结账系统,YOLOv8 能够提供最佳平衡。它能够使用 BoT-SORT 等标准算法,同时运行检测和多目标跟踪,因此是多摄像头零售部署的可靠解决方案。
使用场景与建议#
在 YOLOv8 和 YOLOv9 之间进行选择,取决于你的具体项目需求、部署限制和生态系统偏好。
何时选择 YOLOv8#
YOLOv8 适合以下场景:
- 通用多任务部署: 需要在 Ultralytics 生态系统中使用成熟模型执行检测、分割、分类和姿态估计的项目。
- 成熟的生产系统: 已经基于 YOLOv8 架构构建,并拥有稳定且经过充分测试的部署流程的现有生产环境。
- 广泛的社区和生态系统支持: 能够受益于 YOLOv8 丰富教程、第三方集成和活跃社区资源的应用。
何时选择 YOLOv9#
以下场景推荐使用 YOLOv9:
- **信息瓶颈研究:**研究可编程梯度信息 (PGI) 和广义高效层聚合网络 (GELAN) 架构的学术项目。
- **梯度流优化研究:**专注于理解和缓解深度网络层在训练期间信息丢失问题的研究。
- **高精度检测基准测试:**需要将 YOLOv9 出色的 COCO 基准性能作为架构对比参考的场景。
何时选择 Ultralytics (YOLO26)#
对于大多数新项目,Ultralytics YOLO26 在性能和开发者体验之间提供了最佳组合:
- 无 NMS 边缘部署: 适用于需要稳定、低延迟推理,同时又不希望引入非极大值抑制后处理复杂性的应用。
- 仅使用 CPU 的环境: 适用于没有专用 GPU 加速的设备,此时 YOLO26 最高提升 43% 的 CPU 推理速度将带来决定性优势。
- 小目标检测: 适用于航空无人机影像或 IoT 传感器分析等具有挑战性的场景,在这些场景中,ProgLoss 和 STAL 能显著提升微小目标的准确率。
下一代演进:YOLO26#
YOLOv8 和 YOLOv9 虽然功能强大,但 AI 领域发展迅速。对于追求极致性能的团队,新发布的 YOLO26 在前几代成果的基础上实现了进一步发展。
YOLO26 引入了端到端无 NMS 设计,完全消除了复杂的后处理瓶颈,使部署更加简单、延迟更加可预测。借助全新的 MuSGD 优化器、增强的 ProgLoss + STAL 损失函数,以及 DFL Removal(移除 Distribution Focal Loss,以简化导出并改善对边缘设备和低功耗设备的兼容性),它在提升小目标识别能力的同时,可实现最高 43% 的 CPU 推理速度提升。对于希望突破边缘计算极限的开发者,强烈建议评估 YOLO26。
总的来说,YOLOv9 提供了引人入胜的架构研究成果和出色的峰值精度,但对于绝大多数希望快速交付可靠软件的计算机视觉工程师而言,Ultralytics YOLOv8 仍然是最实用、支持最完善且功能最全面的选择。