前言🌟🌟
YOLOv10是清华大学的Ao Wang, HuiChen, LihaoLiu等人于 2024年5月发布的,是一种新的实时端到端目标检测器,也是YOLO系列最新的算法。
YOLOv10介绍🌟🌟
论文地址:YOLOv10: Real-Time End-to-End Object Detection
源码链接:code
一、创新点🌱🌱
1. 无NMS的一致双分配的训练策略(consistent dual assignments for NMS-free Training):
1.1 双标签分配(Dual label assignments):
一对一分配(one-to-one matching):仅一个预测框被分配给一个真实物体标签,避免了NMS,但是会导致弱监督,使得模型精度欠佳和影响收敛速度。
一对多分配(one-to-many matching):能解决一对一分配策略存在的问题,在训练期间,多个预测框被分配给一个真实物体标签。这种策略提供了丰富的监督信号,优化效果更好。
双头架构:模型在训练期间使用两个预测头,一个使用一对多分配,另一个使用一对一分配。这样,模型可以在训练期间利用一对多分配的丰富监督信号,而在推理期间则使用一对一分配的预测结果,从而实现无NMS的高效推理。
1.2 一致匹配度量(Consistent matching metric):
为实现两个分支的预测感知匹配,作者提出了一致匹配度量。通过调整匹配度量参数,使得一对一和一对多分配的监督信号一致,减少了训练期间的监督差距,提升了模型的预测质量。
2. 效率-精度驱动的模型设计(Holistic Efficiency-Accuracy Driven Model Design)
2.1. 效率驱动的模型设计:
轻量化分类头:通过分析分类误差和回归误差的影响后,发现回归头对YOLOs的性能影响更大,在不显著影响性能的情况下,可以适当减少分类头计算开销。
空间-通道解耦下采样:将空间缩减和通道增加操作解耦,实现更高效的下采样。最大限度地提高了下采样过程中的信息保留率,从而降低了延迟,带来了具有竞争力的性能。
基于秩的块设计:根据各阶段的内在秩适应块设计,降低冗余,提高效率。提出了一种紧凑的反向块(CIB)结构;设计了一种秩引导的块分配策略,以在保持竞争力的同时实现最佳效率。
2.2 精度驱动模型设计:
大核卷积:采用大核深度卷积可有效扩大感受野和增强模型能力,作者在深度阶段利用了CIB中的大核深度卷积。(只对小尺度模型采用大核卷积。)
部分自注意力PSA:解决自注意在视觉任务中出现很高的计算复杂度和内存占用的问题。
二、模型性能对比🌱🌱
相关模型比较:
四、v8、v10.yaml文件对比🌱🌱
1. 参数部分:
新增尺寸为b的模型
2. 主干部分
引入改进模块SCdown和C2fCIB,网络第10层新增PSA模块。
C2fCIB:将C2f中的Bottleneck模块换成CIB模块而得。 3. Neck部分
Neck:引入新模块SCdown和C2fCIB
4. Head部分
YOLOV10:
Heda:One-to-one Head 和One-to-many Head并行部署