YOLOv6-3.0 与 YOLOv9#
实时目标检测不断发展,以满足更高精度、更低延迟和更高硬件利用率的需求。本比较将考察该领域的两个重要里程碑:面向工业吞吐量开发的 YOLOv6-3.0,以及引入新颖架构以克服深度学习信息瓶颈的 YOLOv9。
尽管这两种模型都带来了独特的架构创新,但追求性能与部署简易性之间最佳平衡的开发者,往往会转向现代生态系统。对于启动新项目的用户,推荐使用 Ultralytics YOLO26。它提供可选的端到端无 NMS 检测头,在带来先进精度的同时,也提供更精简的开发者体验。
YOLOv6-3.0:工业吞吐量优化#
由美团视觉 AI 部门开发的 YOLOv6-3.0经过大量工程优化,旨在工业应用中实现最大吞吐量,尤其针对 GPU 硬件。
- 作者: Chuyi Li、Lulu Li、Yifei Geng、Hongliang Jiang、Meng Cheng、Bo Zhang、Zaidan Ke、Xiaoming Xu 和 Xiangxiang Chu
- 组织: 美团
- 日期: 2023 年 1 月 13 日
- arXiv:2301.05586
- GitHub: meituan/YOLOv6
架构创新#
YOLOv6-3.0引入了多项关键改进,以增强特征融合和硬件效率。该架构在颈部集成了 双向拼接 (BiC) 模块,可提供更准确的定位信号。它还采用 锚框辅助训练 (AAT) 策略。该方法将基于锚框训练提供的丰富指导与无锚框范式的推理速度结合起来,在不降低部署速度的前提下提升性能。
其骨干网络基于 EfficientRep 设计,并针对 GPU 推理进行了硬件友好型优化。因此,它非常适合以大规模批处理为常态的工业制造场景。
优势与劣势#
YOLOv6-3.0的主要优势在于其在 NVIDIA T4 等 GPU 上可实现较高帧率,因此适用于高密度视频理解流。不过,它高度依赖特定硬件优化,因此在仅配备 CPU 的边缘设备上可能出现次优延迟。此外,与更统一的框架相比,其训练流水线的配置也较为复杂。
YOLOv9:可编程梯度信息#
一年后发布的 YOLOv9 致力于解决深度卷积神经网络(CNN)固有的信息瓶颈问题。
- 作者:Chien-Yao Wang 和 Hong-Yuan Mark Liao
- 机构:中央研究院信息科学研究所
- 日期: 2024 年 2 月 21 日
- arXiv:2402.13616
- GitHub: WongKinYiu/yolov9
架构创新#
YOLOv9 的主要贡献是可编程梯度信息(PGI),有助于在信息经过多个网络层时保留关键信息,从而实现更可靠的权重更新。除了 PGI,该模型还采用了广义高效层聚合网络(GELAN)。GELAN 可最大限度提高参数效率,使 YOLOv9 能够以比许多前代模型更少的 FLOPs 实现更高精度。
优势与劣势#
YOLOv9 在 COCO 等基准数据集上取得了较高的平均精度均值(mAP),因此深受重视原始精度的研究人员青睐。不过,与 YOLOv6 一样,它仍依赖传统的非极大值抑制(NMS)进行后处理。这会增加延迟并使模型部署流水线变得复杂,尤其是在将模型移植到使用 ONNX 或 TensorRT 等格式的边缘设备时。
性能对比#
比较这些模型时,务必关注精度、参数量和推理速度之间的平衡。
| 模型 | 尺寸 (像素) | mAP验证集 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (ms) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv6-3.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6-3.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6-3.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6-3.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
Ultralytics 的优势:认识 YOLO26#
尽管 YOLOv6-3.0 和 YOLOv9 提供了可靠的架构,但生产环境还需要维护良好的生态系统、较低的内存需求和易用性。Ultralytics Platform 以及 YOLO11 和更新的 YOLO26 等模型,正是为满足这些需求而设计的。
YOLO26 于 2026 年 1 月发布,通过移除多个旧有瓶颈提高了部署效率。
YOLO26 采用端到端无 NMS 设计:其可选的一对一检测头(nms=False)无需进行非极大值抑制后处理。这降低了推理延迟的波动,并简化了边缘部署逻辑。
YOLO26 的关键创新#
- MuSGD 优化器:受大型语言模型(LLM)训练技术(例如 Moonshot AI 的 Kimi K2)启发,YOLO26 采用 SGD 与 Muon 的混合优化器,为计算机视觉任务带来稳定训练和更快收敛。
- CPU 推理速度最高提升 43%:与侧重 GPU 的 YOLOv6 不同,YOLO26 针对边缘设备进行了优化:YOLO26n 的 CPU 运行速度最高比 YOLO11n 快 43%。移除分布焦点损失(DFL)简化了检测头,使其兼容低功耗 CPU 和边缘计算硬件。
- ProgLoss + STAL:渐进式损失和小目标感知标签分配策略可提升小目标检测能力,这对于航空影像和机器人应用至关重要。
- 多功能性:YOLOv6 仅用于目标检测,而 YOLO26 还支持实例分割、语义分割、深度估计、分类、姿态估计和旋转边界框(OBB)检测。
使用 Ultralytics 进行训练#
训练最先进的模型不应该依赖复杂的 bash 脚本。Ultralytics Python API 提供简化的使用体验,具备自动数据加载、极低的 CUDA 内存占用和内置跟踪功能。
from ultralytics import YOLO
# 加载 YOLO26 nano 模型
model = YOLO("yolo26n.pt")
# 在 COCO8 数据集上训练(optimizer='auto' 会为较长的训练任务选择 MuSGD)
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# 用一条命令将训练好的模型导出为 ONNX
model.export(format="onnx")理想应用场景#
选择合适的架构完全取决于你的目标部署环境:
- 适用 YOLOv6-3.0 的场景: 工厂自动化和缺陷检测,服务器级 GPU(例如 A100)充足,并且通过批处理最大限度提高吞吐量。
- 适用 YOLOv9 的场景:学术研究或竞赛,其中主要目标是在 COCO 等标准化数据集上取得尽可能高的 mAP。
- 适用 YOLO26 的场景:几乎所有现代商业应用。它支持可选的无 NMS 推理、显存占用低且 CPU 推理速度快,因此非常适合安全报警系统、智慧零售,以及在嵌入式设备上进行实时目标跟踪。
借助全面的 Ultralytics 生态系统,开发者可以轻松试用 YOLOv8、YOLO11 和 YOLO26,为特定的实际挑战找到合适的性能平衡。