赞
踩
论文题目:YOLOv10: Real-Time End-to-End Object Detection
研究单位:清华大学
论文链接:http://arxiv.org/abs/2405.14458
代码链接:https://github.com/THU-MIG/yolov10
推荐测试博客:YOLOv10最全使用教程(含ONNX和TensorRT推理)
研究人员已经探索了YOLOs的架构设计、优化目标、数据增强策略等方面,取得了显著进展。然而,依赖非极大值抑制(NMS)进行后处理阻碍了YOLOs的端到端部署,并且对推理延迟产生不利影响。此外,YOLOs中各个组件的设计缺乏全面和彻底的检查,导致明显的计算冗余并限制了模型的能力。这使得效率不佳,同时具有相当大的性能改进潜力。在这项工作中,作者旨在从后处理和模型架构两方面进一步推进YOLOs的性能-效率边界。为此,首先提出了NMS-free训练的一致双重分配,为YOLOs带来了竞争性能和低推理延迟。此外,引入了全面的效率-准确性驱动的模型设计策略用于YOLOs。从效率和准确性的角度全面优化了YOLOs的各个组件,大大减少了计算开销并增强了模型的能力。提出一代新的实时端到端目标检测YOLO系列,名为YOLOv10。实验证明,YOLOv10在各种模型规模上实现了最先进的性能和效率。例如,我们的YOLOv10-S在COCO上的类似AP下比RT-DETR-R18快1.8倍,同时拥有2.8倍更少的参数和FLOPs。与YOLOv9-C相比,YOLOv10-B的延迟减少了46%,参数减少了25%而性能相同。
YOLOs通常在训练过程中采用一对多的标签分配策略,即一个地面真实对象对应多个正样本。尽管这种方法产生了优越的性能,但在推断过程中需要NMS来选择最佳的正预测。这减慢了推断速度,并使性能对NMS的超参数敏感,从而阻止了YOLOs实现最佳的端到端部署。
YOLOs中各个组件的综合检查仍然缺乏从效率和准确性两个角度的全面考虑。因此,YOLOs中仍存在相当大的计算冗余,导致参数利用效率低下和效率次优。此外,由此产生的受限模型能力也导致性能较差,为准确性改进留下了充足的空间。
提出一种一致的双重分配策略来解决后处理中冗余预测的问题,该策略适用于无NMS的YOLOs,具有双重标签分配和一致匹配度量。这使得模型在训练过程中能够享受丰富和和谐的监督,同时在推断过程中消除了对NMS的需求,从而实现高效的竞争性能。
提出了全面的效率-准确性驱动的模型设计策略,通过对YOLOs中各个组件进行全面检查。为了提高效率,提出了轻量级分类头部、空间-通道解耦下采样和排名引导的块设计,以减少显性计算冗余并实现更高效的架构。
探索了大核卷积并提出了有效的部分自注意力模块,以增强模型的能力,在低成本下发挥性能改进的潜力。
在训练过程中,YOLOs [20, 59, 27, 64]通常利用TAL [14]为每个实例分配多个正样本。采用一对多分配方式产生了丰富的监督信号,有助于优化并实现卓越性能。然而,这需要YOLOs依赖NMS后处理,导致部署时推理效率不佳。
提出了一种无NMS的训练策略,通过双重标签分配和一致的匹配度量,实现了高效率和竞争性性能。
双重标签分配。与一对多分配不同,一对一匹配将每个真实标签分配给一个预测,避免了NMS后处理。然而,这导致了弱监督,导致次优的准确性和收敛速度[75]。幸运的是,这种不足可以通过一对多分配来弥补[5]。为了实现这一点,作者为YOLOs引入了双重标签分配,结合了两种策略的优点。具体来说,如2(a)所示,作者为YOLOs引入了另一个一对一头Head。它保留了相同的结构,并采用与原始一对多分支相同的优化目标,但利用一对一匹配来获取标签分配。在训练过程中,两个头与模型一起进行联合优化,使得Backbone和Neck部能够享受一对多分配提供的丰富监督。在推理过程中,舍弃一对多头,利用一对一头进行预测。这使得YOLOs能够端到端部署,而不会产生任何额外的推理成本。此外,在一对一匹配中,采用最高概率对应的选择,其在较少额外训练时间的情况下实现了与匈牙利匹配相同的性能。
一致匹配度量。在分配过程中,一对一和一对多方法都利用度量标准来定量评估预测与实例之间的一致性水平。为了实现对两个分支都进行预测感知匹配,作者采用了一种统一的匹配度量,即:
m
(
α
,
β
)
=
s
⋅
p
α
⋅
I
O
U
(
b
ˉ
,
b
)
β
,
(
1
)
m(\alpha, \beta) = s \cdot p^{\alpha} \cdot IOU(\bar{b}, b)^{\beta}, \ (1)
m(α,β)=s⋅pα⋅IOU(bˉ,b)β, (1)
其中
p
p
p是分类得分,
b
ˉ
\bar{b}
bˉ和
b
b
b分别表示预测和实例的边界框。s代表空间先验,指示预测的锚点是否在实例内[20, 59, 27, 64]。
α
\alpha
α和β是平衡语义预测任务和位置回归任务影响的两个重要超参数。将一对多和一对一指标表示为
m
o
2
m
=
m
(
α
o
2
m
,
β
o
2
o
)
m_{o2m}=m(\alpha_{o2m},\beta_{o2o})
mo2m=m(αo2m,βo2o)和
m
o
2
o
=
m
(
α
o
2
o
,
β
o
2
o
)
m_{o2o}=m(\alpha_{o2o},\beta_{o2o})
mo2o=m(αo2o,βo2o),这些指标影响两个头部的标签分配和监督信息。
在双重标签分配中,一对多分支提供比一对一分支更丰富的监督信号。直觉上,如果可以协调一对一头部的监督与一对多头部的监督,可以将一对一头部优化朝着一对多头部的优化方向。因此,一对一头部在推理期间可以提供改进的样本质量,从而实现更好的性能。为此,首先分析两个头部之间的监督差距。由于训练过程中的随机性,从一开始就使用具有相同值和产生相同预测的两个头部进行检查,即一对一头部和一对多头部为每个预测-实例对生成相同的
p
p
p和IoU。注意到两个分支的回归目标不冲突,因为匹配的预测共享相同的目标,而不匹配的预测则被忽略。因此,监督差距在不同的分类目标中。给定一个实例,将其与预测的最大IoU表示为
u
∗
u^{∗}
u∗,将最大的一对多和一对一匹配分数分别表示为
m
o
2
m
∗
m^{∗}_{o2m}
mo2m∗和
m
o
2
o
∗
m^{∗}_{o2o}
mo2o∗。假设一对多分支产生正样本
Ω
Ω
Ω,一对一分支选择第
i
i
i个预测,并使用度量
m
o
2
o
,
i
=
m
o
2
o
∗
m_{o2o,i}=m^{∗}_{o2o}
mo2o,i=mo2o∗,可以推导出分类目标
t
o
2
m
,
j
=
u
∗
⋅
m
o
2
m
,
j
m
o
2
m
∗
≤
u
∗
t_{o2m,j}=u^{∗} \cdot \frac{m_{o2m,j}}{m^{∗}_{o2m}} ≤ u^{∗}
to2m,j=u∗⋅mo2m∗mo2m,j≤u∗,对于
j
∈
Ω
j \in Ω
j∈Ω,以及
t
o
2
o
,
i
=
u
∗
⋅
m
o
2
o
,
i
m
o
2
o
∗
=
u
∗
t_{o2o,i}=u^{∗} \cdot \frac{m_{o2o,i}}{m^{∗}_{o2o}}=u^{∗}
to2o,i=u∗⋅mo2o∗mo2o,i=u∗,作为任务对齐损失中的目标,如[20, 59, 27, 64, 14]。因此,两个分支之间的监督差距可以通过不同分类目标的1-Wasserstein距离[41]来推导,即
A
=
t
o
2
o
,
i
−
I
(
i
∈
Ω
)
t
o
2
m
,
i
+
∑
k
∈
Ω
i
t
o
2
m
,
k
,
(
2
)
A = t_{o2o,i} − I(i \in Ω)t_{o2m,i} + \sum_{k \in Ω \ {i}} t_{o2m,k}, \ (2)
A=to2o,i−I(i∈Ω)to2m,i+k∈Ω i∑to2m,k, (2)
可以观察到随着 t o 2 m , i t_{o2m,i} to2m,i的增加,差距减小,即 i i i在 Ω Ω Ω中的排名更高。当 t o 2 m , i = u ∗ t_{o2m,i}=u^{∗} to2m,i=u∗时,即 i i i是 Ω Ω Ω中最佳的正样本时,差距达到最小,如3(a)所示。为了实现这一点,作者提出了一致的匹配度量,即 α o 2 o = r ⋅ α o 2 m \alpha_{o2o}=r \cdot \alpha_{o2m} αo2o=r⋅αo2m和 β o 2 o = r ⋅ β o 2 m \beta_{o2o} = r \cdot \beta_{o2m} βo2o=r⋅βo2m,这意味着 m o 2 o = m o 2 m r m_{o2o}=m^{r}_{o2m} mo2o=mo2mr。因此,对于一对多头部来说,最佳的正样本也是一对一头部的最佳样本。因此,两个头部可以一致和和谐地进行优化。为简单取 r = 1 r=1 r=1,默认情况下,即 α o 2 o = α o 2 m \alpha_{o2o}=\alpha_{o2m} αo2o=αo2m和 β o 2 o = β o 2 m \beta_{o2o}=\beta_{o2m} βo2o=βo2m。为了验证改进的监督对齐,在训练后统计了一对多结果中前1/5/10名的一对一匹配对的数量。如3(b)所示,在一致的匹配度量下,对齐得到了改善。要更全面地理解数学证明,请参阅附录。
以效率为驱动的模型设计。YOLO中的组件包括stem、下采样层、具有基本构建块的Stage和头部。stem主干产生少量计算成本,因此对其他三个部分进行以效率为驱动的模型设计。
(1) 轻量级分类头(Lightweight classification head)。在YOLOs中,分类和回归头通常共享相同的架构。然而,它们在计算开销上存在显著差异。例如,在YOLOv8-S中,分类头的FLOPs和参数数量(5.95G/1.51M)分别是回归头的2.5×和2.4×(2.34G/0.64M)。然而,在分析分类误差和回归误差的影响后(见Tab. 6),发现回归头对YOLOs的性能更为重要。因此,可以减少分类头的开销,而不必担心对性能造成严重影响。因此,简单地采用了一个轻量级架构的分类头,其中包括两个
3
×
3
3 \times 3
3×3的深度可分离卷积DW,后跟一个
1
×
1
1 \times 1
1×1卷积。
(2) 空间-通道解耦的下采样(Spatial-channel decoupled downsampling)。YOLOs通常利用带有步幅2的常规
3
×
3
3 \times 3
3×3标准卷积,同时实现空间下采样(从
H
×
W
H \times W
H×W到
H
2
×
W
2
\frac{H}{2} \times \frac{W}{2}
2H×2W)和通道转换(从
C
C
C到
2
C
2C
2C)。这引入了不可忽略的计算成本
O
(
9
2
H
W
C
2
)
O(\frac{9}{2} HWC^{2})
O(29HWC2)和参数数量
O
(
18
C
2
)
O(18C^{2})
O(18C2)。相反,提出解耦空间减少和通道增加操作,实现更高效的下采样。
具体而言,首先利用逐点卷积调制通道维度,然后利用深度卷积执行空间下采样。这将计算成本降低到
O
(
2
H
W
C
2
+
9
2
H
W
C
)
O(2HWC^{2} + \frac{9}{2} HWC)
O(2HWC2+29HWC),参数数量降低到
O
(
2
C
2
+
18
C
)
O(2C^{2} + 18C)
O(2C2+18C)。同时,它在下采样过程中最大限度地保留信息,从而实现具有延迟降低的竞争性性能。
(3) 基于排名引导的块设计。YOLO通常在所有阶段使用相同的基本构建块[27, 59],例如,在YOLOv8中的瓶颈块[20]。为了彻底检验YOLO的这种同质设计,利用内在排名[31, 15] 来分析每个阶段的冗余性(较低的排名意味着更大的冗余性,而较高的排名表示更紧凑的信息)。具体来说,计算每个阶段最后一个基本块中最后一个卷积的数值排名,该排名计算大于阈值的奇异值的数量。如图3(a)所示,YOLOv8的结果表明深层次和大型模型更容易表现出更多的冗余性。这一观察结果表明,简单地在所有阶段应用相同的块设计对于最佳容量效率权衡是次优的。为了解决这个问题,提出了一个基于排名引导的块设计方案,旨在通过紧凑的架构设计降低已被证明冗余的阶段的复杂性。首先提出了一种紧凑的反向块(CIB)结构,采用廉价的深度卷积进行空间混合和成本效益的逐点卷积进行通道混合,如图3(b)所示。
它可以作为高效的基本构建块,例如嵌入在ELAN结构中[58, 20](图3(b))。然后,作者提倡一种基于排名引导的块分配策略,以实现最佳效率同时保持竞争力的容量。具体来说,给定一个模型,根据它们的内在排名按升序对所有阶段进行排序。进一步检查用CIB替换领先阶段的基本块是否会导致性能下降。如果与给定模型相比没有性能下降,将继续用CIB替换下一个阶段,否则停止该过程。因此,可以在各个阶段和模型规模之间实现自适应的紧凑块设计,实现更高的效率而不损害性能。由于页面限制,将算法的详细信息放在附录中。
(4) 精度驱动的模型设计。一步探索了大卷积核和自注意力机制,以实现精度驱动设计,旨在在最小成本下提升性能。
大卷积核
采用大卷积核深度卷积是扩大感受野和增强模型能力的有效方式[9, 38, 37]。然而,在所有阶段简单地利用它们可能会引入用于检测小目标的浅层特征的污染,同时在高分辨率阶段引入显著的I/O开销和延迟[7]。因此,作者建议在深层次的CIB中利用大卷积核深度卷积。具体来说,将CIB中第二个
3
×
3
3 \times 3
3×3深度卷积的卷积核大小增加到
7
×
7
7 \times 7
7×7,遵循[37]。此外,采用结构重参数化技术[10, 9, 53],引入另一个
3
×
3
3 \times 3
3×3深度卷积分支以减轻优化问题而无需推断开销。此外,随着模型尺寸的增加,其感受野自然扩大,使用大卷积核的好处逐渐减弱。因此,仅在小型模型规模下采用大卷积核。
部分自注意力(PSA)
自注意力 [52]由于其出色的全局建模能力而被广泛应用于各种视觉任务 [36, 13, 70]。然而,它具有较高的计算复杂度和内存占用。为了解决这个问题,鉴于普遍存在的注意力头冗余 [63],作者提出了一种高效的部分自注意力(PSA)模块设计,如图3©所示。具体来说,在
1
×
1
1 \times 1
1×1卷积之后,将特征均分成两部分。只将其中一部分馈送到由多头自注意力模块(MHSA)和前馈网络(FFN)组成的NPSA个块中。然后,两部分通过
1
×
1
1 \times 1
1×1卷积进行连接和融合。此外,遵循 [21],将MHSA中查询Q和键K的维度分配为值V的一半,并将LayerNorm [1]替换为BatchNorm [26]以实现快速推断。此外,PSA仅在具有最低分辨率的第4阶段之后放置,避免自注意力的二次计算复杂度带来的过度开销。通过这种方式,全局表示学习能力可以融入到低计算成本的YOLO中,从而有效增强模型能力并提高性能。
选择YOLOv8 [20]作为基准模型,因为它在延迟-准确性平衡方面表现出色,并且有各种模型尺寸可用。采用一致的双重分配进行无NMS训练,并基于此进行整体效率-准确性驱动的模型设计,从而推出我们的YOLOv10模型。YOLOv10与YOLOv8具有相同的变体,即N/S/M/L/X。此外,通过简单增加YOLOv10-M的宽度比例因子,衍生出一个新的变体YOLOv10-B。在COCO [33]上使用相同的从头训练设置[20, 59, 56] 验证了所提出的检测器。此外,所有模型的延迟均在T4 GPU上使用TensorRT FP16进行测试,遵循[71]。
如表1所示,所提的YOLOv10在各种模型规模下实现了最先进的性能和端到端延迟。首先将YOLOv10与基准模型,即YOLOv8进行比较。在N/ S / M / L / X五个变体上,YOLOv10分别实现了1.2% / 1.4% / 0.5% / 0.3% / 0.5%的AP改进,参数减少了28%/ 36% / 41% / 44% / 57%,计算量减少了23% / 24% / 25% / 27% / 38%,延迟降低了70% / 65% / 50% / 41% / 37%。与其他YOLO相比,YOLOv10在准确性和计算成本之间也表现出卓越的权衡。具体来说,对于轻量级和小型模型,YOLOv10-N / S的性能优于YOLOv6-3.0-N / S分别达到1.5 AP和2.0 AP,参数减少了51% / 61%,计算量减少了41% / 52%。对于中等模型,与YOLOv9-C / YOLO-MS相比,YOLOv10-B / M在相同或更好的性能下,延迟减少了46% / 62%。对于大型模型,与Gold-YOLO-L相比,YOLOv10-L参数减少了68%,延迟降低了32%,AP显著提高了1.4%。此外,与RT-DETR相比,YOLOv10在性能和延迟上都取得了显著的改进。值得注意的是,YOLOv10-S / X的推理速度分别比RT-DETR-R18 / R101快了1.8倍和1.3倍,性能相似。这些结果充分展示了YOLOv10作为实时端到端检测器的优越性。
作者还使用原始的一对多训练方法将YOLOv10与其他YOLO进行比较。在这种情况下,考虑模型前向过程的性能和延迟( L a t e n c y f Latency^{f} Latencyf),参考文献 [56, 20, 54]。如表1所示,YOLOv10在不同模型规模下也展示了最先进的性能和效率,表明了我们的架构设计的有效性。
在表2中基于YOLOv10-S和YOLOv10-M提出了消融结果。可以观察到,采用无NMS的训练方法,通过一致的双重分配显著减少了YOLOv10-S的端到端延迟4.63毫秒,同时保持了44.3%的AP竞争性能。此外,效率驱动模型设计导致了YOLOv10-M参数减少了11.8百万个,GFlOPs减少了20.8,YOLOv10-M的延迟显著减少了0.65毫秒,充分展示了其有效性。此外,精度驱动模型设计分别为YOLOv10-S和YOLOv10-M实现了1.8 AP和0.7 AP的显著改进,仅有0.18毫秒和0.17毫秒的延迟开销,充分展示了其优越性。
Analyses for NMS-free training.
双重标签分配。作者提出了适用于无NMS的YOLO的双重标签分配,这可以
在训练过程中为一对多(o2m)分支提供丰富的监督,并在推断过程中为一对一(o2o)分支提供高效性。基于YOLOv8-S验证了其益处,即表2中的排名第一。具体来说,文中分别介绍了仅使用o2m分支和仅使用o2o分支进行训练的基线。如表3所示,双重标签分配实现了最佳的AP-延迟权衡。
一致匹配度量。引入一致匹配度量,使一对一头更加协调一对多头。基于YOLOv8-S,在不同的
α
o
2
o
\alpha_{o2o}
αo2o和
β
o
2
o
\beta_{o2o}
βo2o下验证了其益处,即表2中的#1。如表4所示,提出的一致匹配度量,即
α
o
2
o
=
r
⋅
α
o
2
m
\alpha_{o2o}=r \cdot \alpha_{o2m}
αo2o=r⋅αo2m和
β
o
2
o
=
r
⋅
β
o
2
m
\beta_{o2o} = r \cdot \beta_{o2m}
βo2o=r⋅βo2m,可以实现最佳性能,其中
α
o
2
m
=
0.5
\alpha_{o2m} = 0.5
αo2m=0.5,
β
o
2
m
=
6.0
\beta_{o2m} = 6.0
βo2m=6.0在一对多头中 [20]。这种改进可以归因于监督间隙的减少(公式 (2)),提供了两个分支之间更好的监督对齐。此外,提出的一致匹配度量消除了对详尽的超参数调整的需求,在实际场景中具有吸引力。
效率驱动模型设计分析
逐步将基于 YOLOv10-S/M 的效率驱动设计元素纳入其中。基准模型是YOLOv10-S/M 模型,没有效率-准确性驱动的模型设计,即在表2中的#2/#6。如表5所示,每个设计组件,包括轻量级分类头、空间-通道解耦下采样和排名引导的块设计,都有助于减少参数数量、FLOPs 和延迟。重要的是,这些改进是在保持竞争性能的同时实现的。
轻量级分类头。分析了预测中类别和定位错误对性能的影响,基于表5中YOLOv10-S的#1和#2的结果,如[6]所示。具体来说,通过一对一的分配将预测与实例进行匹配。然后,用实例标签替换预测的类别分数,得到没有分类错误的
A
P
w
/
o
c
v
a
l
AP^{val}_{w/o \ c}
APw/o cval。类似地,用实例的位置替换预测的位置,得到没有回归错误的
A
P
w
/
o
r
v
a
l
AP^{val}_{w/o \ r}
APw/o rval。如表6所示,
A
P
w
/
o
r
v
a
l
AP^{val}_{w/o \ r}
APw/o rval远高于
A
P
w
/
o
c
v
a
l
AP^{val}_{w/o \ c}
APw/o cval,表明消除回归错误可以实现更大的改进。性能瓶颈因此更多地存在于回归任务中。因此,采用轻量级分类头可以在不影响性能的情况下实现更高的效率。
空间通道解耦下采样。为了提高效率而解耦下采样操作,首先通过点卷积(PW)增加通道维度,然后通过深度卷积(DW)降低分辨率,以实现最大信息保留。将其与基线方法进行比较,基线方法是通过DW进行空间降维,然后通过PW进行通道调制,基于表5中YOLOv10-S的#3。如表7所示,下采样策略在下采样过程中减少信息丢失,实现了0.7%的AP改进。
紧凑倒置块(CIB)。将CIB引入为紧凑的基本构建块。基于表5中YOLOv10-S的#4验证了其有效性。具体来说,引入了倒置残差块 (IRB)作为基准,其在表8中显示为次优的43.7% AP [46]。然后在其后附加了一个
3
×
3
3 \times 3
3×3深度卷积(DW),表示为“IRB-DW”,带来了0.5% AP的改进。与“IRB-DW”相比,CIB通过在其前面添加另一个DW并带来最小开销,进一步实现了0.3% AP的改进,表明其优越性。
基于排名的块设计。引入了基于排名的块设计,以自适应地整合紧凑的块设计,以提高模型的效率。根据表5中YOLOv10-S的第3名验证了其益处。根据内在排名按升序排序的阶段为Stage 8-4-7-3-5-1-6-2,如图3(a)。如表9所示,当逐渐用高效的CIB替换每个阶段中的瓶颈块时,观察到从第7阶段开始性能下降。在具有较低内在排名和更多冗余性的第8和4阶段中,因此可以采用高效的块设计而不会影响性能。这些结果表明,基于排名的块设计可以作为提高模型效率的有效策略。
本文针对YOLOs的检测流程中的后处理和模型架构进行了优化。对于后处理,提出了一种一致的双重分配方法,用于无NMS训练,实现了高效的端到端检测。对于模型架构,引入了整体效率-准确性驱动的模型设计策略,改善了性能和效率的权衡。这些优化使YOLOv10成为一种新的实时端到端目标检测器。大量实验证明,与其他先进的检测器相比,YOLOv10在性能和延迟方面均达到了最先进水平,充分展示了其优越性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。