深度学习论文: YOLOv10: Real-Time End-to-End Object Detection
YOLOv10: Real-Time End-to-End Object Detection
PDF: https://arxiv.org/pdf/2405.14458
PyTorch代码: https://github.com/shanglianlm0525/CvPytorch
PyTorch代码: https://github.com/shanglianlm0525/PyTorch-Networks
1 概述
YOLO在实时物体检测领域因计算成本与检测性能的平衡而领先。尽管研究人员在架构、优化目标和数据增强方面取得显著进展,但YOLO对NMS的依赖影响了其端到端部署和推理速度。此外,YOLO组件设计的不足导致计算冗余和性能限制。为此,YOLOv10专注于后处理和模型架构,提出了无NMS训练的一致对偶分配方法,实现高性能和低延迟。同时,YOLOv10采用效率-准确度驱动的策略,全面优化YOLO组件,降低计算成本并提高性能。
2 YOLOv10
2-1 Consistent Dual Assignments for NMS-free Training
YOLO 算法在训练时通常使用 TAL 技术为每个实例分配多个正样本,这有助于优化并提升性能,但需要依赖 NMS 后处理,影响部署时的推理效率。先前研究尝试一对一匹配减少冗余预测,但可能增加推理开销或性能不佳。
本文提出了一种无需 NMS 的 YOLO 训练策略,采用双重标签分配和一致匹配度量,实现了高效和性能优异。
双重标签分配: 结合一对一和一对多匹配的优势,引入额外的一对一头部,与原有的一对多分支共享结构和优化目标,但在训练时采用一对一匹配获得标签。这样,训练时两个头部联合优化,享受一对多匹配的丰富监督,推理时只使用一对一头部,避免额外推理成本。
一致的匹配度量: 使用统一的匹配度量标准,结合分类得分、预测框和实例框的 IoU,以及空间先验,通过超参数平衡语义预测和位置回归任务。一致的匹配度量确保一对一头部在训练中与一对多头部对齐,优化方向一致。
通过这种策略,YOLO 可以在不牺牲性能的情况下,实现端到端部署,减少推理成本。研究还验证了监督对齐的改善,并提供了数学证明。
2-2 Holistic Efficiency-Accuracy Driven Model Design
YOLO模型在效率和准确性之间需要权衡,尽管之前的研究尝试了不同的设计策略,但对YOLO各组件的全面检查仍然不足。为了提升效率和性能,我们从效率和准确性两方面对YOLO模型进行了整体设计。
效率驱动的模型设计:
- 轻量级分类头部:简化分类头部以减少计算负担,因为回归头部对YOLO性能的影响更大。因此,为分类头部采用了一个轻量级架构,由两个深度可分离卷积和1×1卷积组成。
- 空间-通道解耦下采样:通过分离空间缩减和通道增加操作,使用逐点卷积和深度卷积实现更高效的下采样。
- 等级引导的块设计:根据模型各阶段的内在等级分析冗余,采用紧凑的倒置块(CIB)结构,并通过等级引导的块分配策略优化效率。
准确性驱动的模型设计:
- 大核心卷积:在深层阶段使用大核心深度卷积来扩大感受野,同时采用结构重参数化技术减轻优化问题。
- 部分自注意力(PSA):为减少计算复杂性,仅在低分辨率阶段使用部分自注意力模块,通过合理分配查询和键的维度,并使用BatchNorm加速推理。
通过这些设计,YOLO模型在保持准确性的同时,能够实现更高的效率和性能。