YOLOX 与YOLOv6.0:技术比较
对于旨在平衡性能、速度和计算效率的开发人员和研究人员来说,选择合适的物体检测架构是一项关键决策。本综合比较探讨了 Megvii 的高性能无锚检测器YOLOX 和美团开发的工业级框架YOLOv6.0 之间的技术区别。通过分析它们的架构、基准和训练方法,我们旨在引导您选择最适合您特定计算机视觉应用的模型。
YOLOX:科研与产业的桥梁
作者:葛铮、刘松涛、王峰、李泽明、孙健Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, and Jian Sun
Organization:Megvii
Date:2021-07-18
Arxiv:https://arxiv.org/abs/2107.08430
GitHub:https://github.com/Megvii-BaseDetection/YOLOX
Docs:https://yolox.readthedocs.io/en/latest/
YOLOX 于 2021 年发布,它采用无锚机制,并集成了以前只用于学术研究的先进检测技术,代表了YOLO 系列的重大转变。通过消除对预定义锚框的依赖,YOLOX 简化了训练过程,并提高了对各种物体形状的泛化能力。
架构和主要特性
YOLOX 的与众不同之处在于其 "解耦头 "架构。传统的YOLO 模型将分类和定位任务耦合在一个分支中,而 YOLOX 则不同,它将这两个任务分开,从而显著提高了收敛速度和准确性。它采用SimOTA(简化最优传输分配)标签分配策略,动态地将正样本分配给地面实况对象,从而降低了训练的不稳定性。
无锚设计
YOLOX 消除了手动锚箱聚类的需要,这在以前的YOLO 版本中是常见的步骤。这减少了训练过程中启发式超参数和设计选择的数量,使模型无需大量调整就能更稳健地适应各种数据集。
优势与劣势
优势:
- 高精度:解耦头和高级标签分配使 YOLOX 能够获得极具竞争力的平均精度 (mAP)分数,尤其是在COCO 数据集上。
- 研究灵活性:简化的设计使其成为研究人员尝试新的检测头或分配策略的绝佳基线。
- 小物体检测:与基于刚性锚点的系统相比,无锚点方法有时能更好地检测小物体。
弱点:
- 推理延迟:虽然精确度很高,但解耦(decoupled)磁头会带来轻微的计算开销,与YOLOv6 等完全优化的工业模型相比,推理速度通常较慢。
- 生态系统成熟度:虽然代码是开源的,但由第三方工具、部署指南和社区支持组成的生态系统小于 Ultralytics YOLOv8或YOLOv5。
理想用例
YOLOX 特别适用于学术研究和优先考虑准确性而不是原始推理速度的情况。
- 医学成像:分析医学图像分析中的复杂结构,精度至关重要。
- 缺陷检测:识别生产过程中的细微异常,漏检代价高昂。
- 学术实验:为开发新型计算机视觉算法提供干净、无锚的基线。
YOLOv6.0:专为工业速度而设计
作者:李楚一、李露露、耿一飞、蒋洪亮、程萌、张博、柯在丹、徐晓明、储祥祥李楚怡、李露露、耿一飞、蒋洪亮、程萌、张博、柯在丹、徐晓明、储祥祥
机构:美团网
日期:2023-01-13
Arxiv:https://arxiv.org/abs/2301.05586
GitHubYOLOv6
Docsultralytics
YOLOv6.0 是一款专为实际工业应用而设计的物体检测器。3.0 "更新被称为 "全面重装",引入了重大的架构改进,以最大限度地提高NVIDIA ®)图形处理器等硬件的吞吐量。
架构和主要特性
YOLOv6.0 的核心是大量使用重参数化。该模型使用 EfficientRep主干网和 Rep-PAN 颈网,这使得网络在训练时具有复杂的多分支结构,而在推理时则折叠为简单的单路径结构。这种 "RepVGG-style "方法确保了高特征提取能力,而不会因为复杂分支而造成运行延迟。
此外,YOLOv6.0 还采用了锚点辅助训练 (AAT),结合了基于锚点和无锚点范例的优势,以稳定训练并加速收敛。
优势与劣势
优势:
- 超凡速度:针对 TensorRTYOLOv6.0 的延迟极低,是高帧率应用的理想之选。
- 部署就绪:支持模型量化等功能便于在边缘设备和服务器上进行部署。
- 效率:重新参数化技术在FLOP与精度之间实现了极佳的平衡。
弱点:
- 训练资源强度:与较简单的模型相比,复杂的训练时架构(重新参数化之前)可能需要大量GPU 内存。
- 任务范围有限: YOLOv6 主要侧重于检测。它缺乏对其他任务的本地集成支持,如在Ultralytics 产品的无缝 API 中对姿势估计 或定向边框(旋转框检测)的支持。
理想用例
YOLOv6.0 在严格要求实时推理速度的环境中大放异彩。
性能正面交锋
通过比较COCO 数据集上的性能指标,可以发现不同的设计理念。YOLOX 提供了一个简化的架构,准确性可圈可点,而YOLOv6.0 则通过结构优化推动了推理速度的提升。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
| 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 |
数据显示,YOLOv6.0n在GPU 硬件上的速度明显更快(1.17 毫秒,YOLOXs 为 2.56 毫秒),同时还保持了强大的mAP。对于资源有限的设备,每兆字节都很重要,YOLOXnano仍然是一个有趣的选择,其参数小于 100 万,但精度较低。在高端产品中,YOLOv6.0l 在精度(52.8 对 51.1mAP)和效率方面都优于 YOLOXx,使用的参数大约减少了 40%。
训练方法与生态系统
训练这些模型的用户体验差别很大。
YOLOX依靠强大的数据增强技术(如 Mosaic 和MixUp )来实现其结果,而无需预先训练权重。它的训练管道以研究为导向,为那些深入熟悉PyTorch 配置的人提供了灵活性。
YOLOv6.0采用了 "自我蒸馏"(self-distillation)方法,即在训练过程中由较大的教师模型指导学生模型,从而在不增加推理成本的情况下提高较小模型的准确性。这种方法功能强大,但增加了训练设置的复杂性。
然而,优先考虑简化工作流程的开发人员往往会发现Ultralytics 生态系统更胜一筹。与独立研究模型中常见的零散工具不同,Ultralytics 提供的是一个统一的平台。
- 易于使用:通过简单的Python 应用程序接口,只需几行代码即可完成训练、验证和推理。
- 维护良好的生态系统:频繁的更新可确保与最新版本的PyTorch、CUDA 以及导出格式(如 ONNX和 OpenVINO.
- 训练效率: Ultralytics 模型针对高效内存使用进行了优化,与transformer的同类架构相比,其训练速度更快,使用的GPU 内存更少。
Ultralytics 易于使用
使用Ultralytics 训练最先进的模型非常简单:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt")
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
结论:Ultralytics 的优势
YOLOX 提供适合研究的创新无锚设计,而YOLOv6.0 则为特定的工业硬件提供了惊人的速度、 Ultralytics YOLO11代表了当前计算机视觉技术的顶峰。
YOLO11 和已建立的 YOLOv8提供了卓越的性能平衡,在CPU 和GPU 上实现了最先进的mAP 分数和出色的推理速度。与主要局限于检测的竞争对手不同,Ultralytics 模型提供了无与伦比的多功能性,可原生支持以下功能:
对于寻求以积极开发、全面文档和蓬勃发展的社区为后盾的面向未来的解决方案的开发人员来说,Ultralytics 仍然是将项目从概念推向生产的推荐选择。
如需进一步比较,请阅读YOLOv5 vsYOLOv6或YOLO11 vsRT-DETR。