YOLOv6.0 与YOLOv9:工业速度与先进效率的完美结合
选择最佳物体检测模型是计算机视觉开发中的关键决策,需要在准确性、推理速度和计算效率之间取得战略平衡。本比较深入探讨了美团针对工业吞吐量设计的模型YOLOv6.0 和YOLOv6 的技术细节。 YOLOv9和 YOLOv9 的技术细节,YOLOv9 是最先进的架构,通过信息保存重新定义了效率。
YOLOv6.0:针对工业应用进行了优化
YOLOv6.0 主要侧重于实际部署方案,其中硬件延迟是主要瓶颈。
- 作者: Chuyi Li, Lulu Li, Yifei Geng, Hongliang Jiang, Meng Cheng, Bo Zhang, Zaidan Ke, Xiaoming Xu, and Xiangxiang Chu
- 组织机构美团
- 日期: 2023-01-13
- Arxiv:https://arxiv.org/abs/2301.05586
- GitHub:https://github.com/meituan/YOLOv6
- 文件:https://docs.ultralytics.com/models/yolov6/
建筑与设计理念
YOLOv6.0 设计为硬件感知卷积神经网络(CNN)。该架构利用高效的重新参数化骨干和混合块(RepBi-PAN)来最大限度地提高 GPU 的吞吐量。通过根据特定硬件特性定制模型结构,YOLOv6 在不严重影响准确性的情况下实现高速推理。它是一种单级检测器,针对实时处理要求极高的工业自动化和监控领域进行了优化。
优势与局限
优势:
- 推理速度:该模型在低延迟环境中表现出色,特别是在NVIDIA T4 GPU 上,使其适用于高速生产线。
- 硬件优化:其 "硬件友好型 "设计可确保模型在部署过程中有效利用内存带宽和计算单元。
弱点:
- 特征表示:缺乏YOLOv9 等较新模型中的先进梯度信息保存技术,导致精度随着模型大小的减小而急剧下降。
- 生态系统支持:虽然效果显著,但与Ultralytics 框架相比,周边生态系统在工具、社区支持和轻松集成方面的覆盖面较小。
- 功能有限:主要专注于边界框检测,与多功能的Ultralytics 模型相比,对复杂任务(如分割或姿势估计 )的本地支持较少。
YOLOv9:重新定义准确性和信息流
YOLOv9 引入了新颖的架构概念,解决了深度网络中信息丢失的根本问题,实现了卓越的性能指标。
- 作者: Chien-Yao Wang 和 Hong-Yuan Mark Liao
- 组织机构台湾中央研究院资讯科学研究所
- 日期: 2024-02-21
- Arxiv:https://arxiv.org/abs/2402.13616
- GitHub:https://github.com/WongKinYiu/yolov9
- 文件:https://docs.ultralytics.com/models/yolov9/
建筑:PGI 和 GELAN
YOLOv9 凭借两项突破性创新脱颖而出:可编程梯度信息 (PGI)和通用高效层聚合网络 (GELAN )。
- PGI解决了深度神经网络固有的信息瓶颈问题。通过在各层之间保持关键梯度数据,PGI 可确保模型学习到更可靠的特征,从而实现更高的精度。
- 与传统架构相比,GELAN优化了参数利用率,使模型能够以更少的参数和计算成本达到更高的精度。
创新聚焦:可编程梯度信息 (PGI)
深度网络通常会在数据通过连续层时丢失信息,这种现象被称为信息瓶颈。YOLOv9 的PGI可充当辅助监督机制,确保在整个网络深度中都能保留用于学习目标对象的重要数据。这大大提高了收敛性和准确性,尤其是对于detect 检测的对象。
Ultralytics 生态系统的优势
将YOLOv9 集成到Ultralytics 生态系统中为开发人员提供了独特的优势:
- 易于使用:统一的Python 应用程序接口和 CLI简化了培训、验证和部署。
- 性能平衡: YOLOv9 达到最先进水平 mAP的推理速度,为各种应用提供了极佳的权衡。
- 内存效率: Ultralytics 实现经过优化,在训练过程中占用的内存更少,这与某些transformer的模型对 VRAM 的高要求形成鲜明对比。
- 多功能性:除了检测之外,Ultralytics 框架内的架构灵活性还支持扩展到其他任务,并有强大的社区和频繁的更新作为后盾。
性能对比分析
性能数据凸显了明显的区别:YOLOv6.0 优化了特定硬件上的原始速度,而YOLOv9 则在效率(每个参数的精确度)方面占据优势。
例如,YOLOv9c仅用25.3M 参数就实现了53.0% 的mAP,超过了YOLOv6.0l(52.8%mAP),而后者需要的参数(59.6M)是YOLOv6.0l的两倍多,FLOP 也高得多。这表明,YOLOv9 的架构创新(GELAN 和 PGI)使其能够 "用更少的资源学习更多的知识",从而使其成为资源受限环境下仍然需要高精度的高效选择。
相反,YOLOv6.0n的延迟极低(1.17 毫秒),因此可用于超快实时推理,在这种情况下,精度下降(37.5%mAP)是可以接受的。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv6.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6.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.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 |
培训和部署工作流程
这两种模式给开发人员带来的体验大相径庭。YOLOv6.0 通常依赖于涉及 shell 脚本和手动配置文件的特定版本库工作流程。虽然功能强大,但对于新手来说,学习曲线可能会比较陡峭。
相比之下,YOLOv9 可从简化的 Ultralytics工作流程。训练一个最先进的模型只需最少的代码,而且生态系统支持无缝导出为以下格式 ONNX, TensorRT和CoreML 等格式的无缝导出,以实现广泛的部署兼容性。
示例:使用Ultralytics训练YOLOv9
Ultralytics 的Python 界面只需几行代码就能启动训练运行,并自动处理数据扩充、日志记录和评估。
from ultralytics import YOLO
# Load a pre-trained YOLOv9 model
model = YOLO("yolov9c.pt")
# Train the model on your custom dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
部署灵活性
包括YOLOv9 在内的Ultralytics 模型支持一键导出为适合边缘人工智能和云部署的各种格式。这种灵活性简化了从研究到生产的过渡。
理想用例
YOLOv6.0
- 高速装配线: 传送带速度要求延迟低于 2 毫秒的质量控制系统。
- 专用硬件:在特定NVIDIA ®)图形处理器上运行的场景,可充分利用硬件感知架构。
YOLOv9
- 自主系统:自动驾驶汽车和机器人需要高精度才能在复杂环境中安全导航。
- 医学成像:在肿瘤检测等应用中,漏掉一个小特征(假阴性)是不可接受的。
- 通用简历:开发人员正在寻求一个功能强大、易于使用、具有出色文档和社区支持的模型,以完成各种任务。
结论
虽然YOLOv6.0仍然是在特定硬件上优先考虑原始吞吐量的专业工业应用的有力工具、 YOLOv9是大多数现代计算机视觉项目的最佳选择。
YOLOv9 的创新 PGI 和 GELAN 架构在准确性和效率之间实现了更好的平衡,在每参数性能指标方面往往超过YOLOv6 。此外,与Ultralytics 生态系统的集成确保了开发人员能够从简化的工作流程、积极的维护和一整套工具中获益,从而加快从数据到部署的过程。对于那些寻求面向未来、多功能和高性能模型的人来说,YOLOv9 是值得推荐的前进之路。
探索其他模型
如果您正在探索最先进的选项,请考虑Ultralytics 库中的其他强大模型:
- YOLO11: YOLO 系列的最新进化版,在检测、分割和姿势估计 方面具有最先进的性能。
- YOLOv8:一款非常受欢迎的多功能机型,以兼顾多种任务的速度和准确性而著称。
- RT-DETR: transformer探测器,无需非最大抑制NMS)即可实现卓越的精度。