【轻量化】YOLOv10: Real-Time End-to-End Object Detection

论文题目: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%而性能相同。

文章目录

    • 一、摘要
    • 二、关键问题
    • 三、创新点
    • 四、原理
      • Consistent Dual Assignments for NMS-free Training
      • Holistic Efficiency-Accuracy Driven Model Design
        • YOLOs的模型架构对效率-准确性权衡设计
    • 五、实验
      • Implementation Details
      • Comparison with state-of-the-arts
      • Model Analyses
    • 六、总结

二、关键问题

  • YOLOs通常在训练过程中采用一对多的标签分配策略,即一个地面真实对象对应多个正样本。尽管这种方法产生了优越的性能,但在推断过程中需要NMS来选择最佳的正预测。这减慢了推断速度,并使性能对NMS的超参数敏感,从而阻止了YOLOs实现最佳的端到端部署。

  • YOLOs中各个组件的综合检查仍然缺乏从效率和准确性两个角度的全面考虑。因此,YOLOs中仍存在相当大的计算冗余,导致参数利用效率低下和效率次优。此外,由此产生的受限模型能力也导致性能较差,为准确性改进留下了充足的空间。

三、创新点

  • 提出一种一致的双重分配策略来解决后处理中冗余预测的问题,该策略适用于无NMS的YOLOs,具有双重标签分配和一致匹配度量。这使得模型在训练过程中能够享受丰富和和谐的监督,同时在推断过程中消除了对NMS的需求,从而实现高效的竞争性能。

  • 提出了全面的效率-准确性驱动的模型设计策略,通过对YOLOs中各个组件进行全面检查。为了提高效率,提出了轻量级分类头部空间-通道解耦下采样排名引导的块设计,以减少显性计算冗余并实现更高效的架构。

  • 探索了大核卷积并提出了有效的部分自注意力模块,以增强模型的能力,在低成本下发挥性能改进的潜力。

在这里插入图片描述

四、原理

Consistent Dual Assignments for NMS-free Training

  在训练过程中,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(α,β)=spα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=umo2mmo2m,ju,对于 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=umo2omo2o,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,iI(i)to2m,i+k ito2m,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)所示,在一致的匹配度量下,对齐得到了改善。要更全面地理解数学证明,请参阅附录。

Holistic Efficiency-Accuracy Driven Model Design

YOLOs的模型架构对效率-准确性权衡设计

以效率为驱动的模型设计。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中,从而有效增强模型能力并提高性能。

五、实验

Implementation Details

  选择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]。

Comparison with state-of-the-arts

在这里插入图片描述

  如表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在不同模型规模下也展示了最先进的性能和效率,表明了我们的架构设计的有效性。

Model Analyses

  • 消融实验
    在这里插入图片描述

  在表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阶段中,因此可以采用高效的块设计而不会影响性能。这些结果表明,基于排名的块设计可以作为提高模型效率的有效策略

  • 准确性驱动模型设计分析
      展示了基于 YOLOv10-S/M 逐步整合准确性驱动设计元素的结果。基准是在融合效率驱动设计后的YOLOv10-S/M 模型,即在表2中的#3/#7。如表10所示,采用大卷积核和PSA 模块导致YOLOv10-S 的性能显著提升,分别为 0.4%AP 和1.4% AP,而延迟仅增加了0.03ms 和0.15ms。请注意,大卷积核未用于YOLOv10-M(见表12)
    大卷积核。首先基于表10中YOLOv10-S的#2号研究了不同卷积核尺寸的影响。如表11所示,性能随着卷积核尺寸的增加而提高,并在 7 × 7 7 \times 7 7×7的卷积核尺寸附近停滞,表明大感知范围的好处。此外,在训练过程中去除重新参数化分支可实现0.1%的AP降级,显示了其优化效果。此外,基于YOLOv10-N/S/M检查了大卷积核在模型规模上的益处。如表12所示,对于大模型,即YOLOv10-M,它并未带来改进,这是由于其固有的广泛感受野。因此,仅在小模型,即YOLOv10-N/S中采用大卷积核
    部分自注意力(PSA)。引入PSA以在最小成本下融入全局建模能力,以增强性能。首先基于表10中YOLOv10-S的#3验证其有效性。具体来说,引入Transformer块,即MHSA后跟FFN,作为基线,标记为“Trans.”。如表13所示,与其相比,PSA带来了0.3%的AP改进,同时减少了0.05ms的延迟。性能提升可能归因于在自注意力中缓解优化问题[62, 9],通过减少注意力头中的冗余。此外,研究了不同NPSA的影响。如表13所示,将NPSA增加到2可以获得0.2%的AP改进,但会增加0.1ms的延迟。因此默认将NPSA设置为1,以增强模型能力同时保持高效率。

六、总结

  本文针对YOLOs的检测流程中的后处理和模型架构进行了优化。对于后处理,提出了一种一致的双重分配方法,用于无NMS训练,实现了高效的端到端检测。对于模型架构,引入了整体效率-准确性驱动的模型设计策略,改善了性能和效率的权衡。这些优化使YOLOv10成为一种新的实时端到端目标检测器。大量实验证明,与其他先进的检测器相比,YOLOv10在性能和延迟方面均达到了最先进水平,充分展示了其优越性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/23730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

现代密码学-X.509认证业务

X.509的基础式公钥密码体制和数字签名。 证书 证书的格式 证书由可信的认证机构CA建立并由CA或者用户自己将其放入目录,以供其他用户方便访问。目录服务器本身并不负责为用户建立公钥证书,仅仅为用户访问公钥提供方便。 x.509证书格式 证书的获取 其…

微前端基于qiankun微前端应用间通信方案实践

【qiankunvue】微前端子应用之间的通信方式总结 ------------------------------------------------------------------补充--------------------------------------------------------- 什么是微前端? 微前端 微前端是一种多个团队通过独立发布功能的方式来共同构…

【Linux】用户和组的管理、综合实训

目录 实训1:用户的管理 实训2:组的管理 实训3:综合实训 实训1:用户的管理 (1)创建一个新用户userl,设置其主目录为/home/user 1。 (2)查看/etc/passwd 文件的最后一行,看看是如何记录的。 (3)查看文件/etc/shadow文件的最后一…

封装了一个仿照抖音评论轮播效果的iOS轮播视图

效果图 原理 就是我们在一个视图里面有两个子视图,一个是currentView, 一个是willShowView,在一次动画过程中,我们改变current View的frame,同时改变willShowView的frame,同时,需要改变currentVIew 的transform.y不然…

软件管理、rpm安装、yum安装、源码编译安装

目录 一、Windows安装/卸载 二、软件的卸载: 三、Linux的软件安装和卸载 3.1rpm安装 第一步:挂在光盘 第二步:查看/mnt 第三步:切换到/mnt/Packages 第四步:安装 3.2yum安装(使用关盘作为yum源&…

Facechain系列: constants.py文件解读

在根目录下还有个facechain目录,其中的constants.py文件中定义了代码控制的重要参数。 1.姿态控制 在应用代码进行推理(见这里Facechain系列: 通过代码进行推理)中,如果将以下代码 use_pose_model False 修改为 use_pose_mo…

低代码专题 | 低代码开发平台一般都有哪些功能和模块?

在上一篇文章中,我们已经对低代码开发平台的概念进行了初步的探讨,认识到了低代码开发平台提高开发效率、降低技术门槛方面的巨大潜力。 然而,要真正掌握并应用低代码开发平台,还需要深入了解其背后的功能与模块构成。这篇就对低…

【数据结构】平衡二叉树(AVL树)

目录 前言 一、AVL树概念 二、AVL树节点定义 三、AVL树插入 1. 按照二叉搜索树的方式插入新节点 2. 维护节点的平衡因子与调整树的结构 a. 新节点插入较高左子树的左侧---左左:右单旋 b. 新节点插入较高右子树的右侧---右右:左单旋 c. 新节点插入…

IIS 服务器,下载APK 文件,用于发布更新最新的APK包

IIS 默认情况下无法下载 .apk 文件,需要对 IIS 服务进行设置 1、打开 IIS 对应的应用 选中MIME 类型 右键 打开功能 2、右键添加 文件扩展名:.apk MIME 类型输入:application/vnd.android.package-archive 3、重启应用 4、浏览器访问 服务地…

OpenMV学习笔记4——二维码识别

一、示例程序 按照下图顺序点击,即可打开官方在IDE中准备好的二维码实例程序: # QRCode Example # # This example shows the power of the OpenMV Cam to detect QR Codes # using lens correction (see the qrcodes_with_lens_corr.py script for hig…

后端开发面经系列 -- 华为C++一面面经

HUAWEI – C一面面经 公众号:阿Q技术站 来源:https://www.nowcoder.com/feed/main/detail/b8113ff340d7444985b32a73c207c826 1、计网的协议分几层?分别叫什么? OSI七层模型 物理层 (Physical Layer): 负责物理设备之间的原始比…

苹果手机数据不见了怎么恢复?3个方法,搞定苹果手机数据恢复!

在许多错误的情况下,当你更新到最新的 iOS 版本或使用越狱来获得更多功能和权限、误删重要的手机文件时,苹果手机中的数据可能会丢失或被意外删除。一旦发现数据丢失,你就会查看 iTunes 备份或 iCloud 备份,并希望在其中恢复丢失的…

纷享销客安全体系: 组织及人员安全

组织及人员安全是纷享销客安全战略中的重要组成部分。 我们致力于确保组织内部和员工的安全,并采取一系列措施来预防和应对安全威胁。我们将持续改进和更新安全措施,以适应不断变化的威胁环境,并确保组织和员工的安全意识和培训得到充分关注…

inBuilder 低代码平台新特性推荐 - 第二十期

今天来给大家带来的是 inBuilder 低代码平台特性推荐系列第二十期——菜单导航模式个性化示例。 场景介绍 目前平台提供了四种菜单导航模式,包括分组视图、列表视图、横向视图、平铺视图,均为横向导航,这些也是主流的菜单导航模式。 在某些…

05-控制流(分支结构)

05-控制流(分支结构) 一、二路分支 程序中某一段代码需要满足一定的条件才会被执行。 if 语句:用于表达一种条件,如果条件满足则执行某个代码块。if-else 语句:用于表达一种条件,如果条件满足则执行某个代码块,否则…

车载以太网测试要测些什么呢?

车载以太网测试大致可以分成两块:TC8测试和以太网通信测试。 TC8测试全称TC8一致性测试,其规范由OPEN联盟制定,包括车载以太网ECU从物理层到应用层的各层互操作性以及常规基础功能服务。目的在于提高不同ECU之间的兼容性。 TC8测试规范可以…

差分原理+练习

差分的原理和前缀和相似,我们先联想一下前缀和。 前缀和计算下标从0到n的和,记为sum[n1];如果想要求出[l,r]区间的和,可以快速的通过sum[r1]-sum[l]来得到 。 前缀和适用于需要多次获取指定连续区间和的情景 而差分即计算相邻两个元素的差…

搜索与图论:树的重心

搜索与图论&#xff1a;树的重心 题目描述参考代码 题目描述 输入样例 9 1 2 1 7 1 4 2 8 2 5 4 3 3 9 4 6输出样例 4参考代码 #include <cstring> #include <iostream> #include <algorithm>using namespace std;const int N 100010, M N * 2;int n, m…

【VUE 具名插槽的应用】

具名插槽类似于提前将布局安排好&#xff0c;但内容为空&#xff0c;一旦有具体内容填充进来&#xff0c;可以很和谐的展示&#xff0c;不影响整体效果。&#x1f347; “举个&#x1f330;&#xff1a;系统里大部分页面的查询条件是相同的&#xff0c;所以需要封装一个公用的查…

如何在QGIS中加载高清卫星影像?

我们在《如何在GlobalMapper中加载高清卫星影像》一文中&#xff0c;分享了在GlobalMapper中加载卫星影像的方法。 这里再为你分享如何在QGIS中加载高清卫星影像的方法&#xff0c;并可以在文末查看领取软件安装包和图源的方法。 如何加载高清图源&#xff1f; 要在QGIS中在…