当前位置: 首页 > news >正文

YOLO12论文阅读:Attention-Centric Real-Time Object Detectors

文章链接:

2502.12524https://arxiv.org/pdf/2502.12524

摘要 (Abstract)​

长期以来,增强 YOLO 框架的网络架构至关重要,但尽管注意力机制在建模能力方面已被证明具有优越性,改进却主要集中在基于 CNN 的方面。这是因为基于注意力的模型无法匹配基于 CNN 模型的速度。本文提出了一种以注意力为中心的 YOLO 框架,即 YOLOv12,它在匹配先前基于 CNN 模型速度的同时,利用了注意力机制的性能优势。

YOLOv12 在精度上超越了所有流行的实时目标检测器,并具有有竞争力的速度。例如,YOLOv12-N 在 T4 GPU 上实现了 40.6% 的 mAP 和 1.64 ms 的推理延迟,优于先进的 YOLOv10-N/YOLOv11-N 2.1%/1.2% mAP,同时速度相当。这一优势延伸到其他模型规模。YOLOv12 也超越了改进 DETR 的端到端实时检测器,如 RT-DETR/RT-DETRv2:YOLOv12-S 击败了 RT-DETR-R18/RT-DETRv2-R18,同时运行速度快 42%,仅使用 36% 的计算量和 45% 的参数。更多比较如图 1 所示。

图 1. 与其他流行方法在延迟-精度(左)和 FLOPs-精度(右)权衡方面的比较。

1. 引言 (Introduction)​

实时目标检测因其低延迟特性(这提供了显著的实用性[4, 17, 24, 28])一直吸引着广泛关注。其中,YOLO 系列[3, 24, 28, 29, 32, 45-47, 53, 57, 58]有效地在延迟和精度之间建立了最佳平衡,从而主导了该领域。尽管 YOLO 的改进主要集中在损失函数[8, 35, 43, 44, 48, 67, 68]、标签分配[22, 23, 34, 59, 69]等领域,网络架构设计仍然是关键的研究重点[24, 28, 32, 57, 58]。尽管以注意力为中心的视觉变换器(ViT)架构已被证明具有更强的建模能力,即使在小型模型中也是如此[20, 21, 25, 50],但大多数架构设计仍主要集中于 CNN。

这种情况的主要原因在于注意力机制的低效性,这源于两个主要因素:注意力机制的二次计算复杂性和低效的内存访问操作(后者是 FlashAttention[13, 14] 解决的主要问题)。因此,在相似的计算预算下,基于 CNN 的架构性能比基于注意力的架构高出约 3 倍[38],这极大地限制了注意力机制在推理速度至关重要的 YOLO 系统中的采用。

本文旨在解决这些挑战,并进一步构建一个以注意力为中心的 YOLO 框架,即 YOLOv12。我们引入了三项关键改进。首先,我们提出了一个简单而高效的区域注意力模块(A2),它在保持大感受野的同时,以一种非常简单的方式降低了注意力的计算复杂度,从而提高了速度。其次,我们引入了残差高效层聚合网络(R-ELAN)以解决由注意力引入的优化挑战(主要是大规模模型)。R-ELAN 在原始 ELAN[57] 的基础上引入了两项改进:(i)采用缩放技术的块级残差设计,和(ii)重新设计的特征聚合方法。第三,我们在原始注意力之外进行了一些架构改进以适应 YOLO 系统。我们升级了传统的以注意力为中心的架构,包括:引入 FlashAttention 以克服注意力的内存访问问题;移除位置编码等设计以使模型快速简洁;将 MLP 比率从 4 调整到 1.2(或 2 用于 N-/S-/M 规模模型)以平衡注意力和前馈网络之间的计算量以获得更好的性能;减少堆叠块的深度以促进优化;并尽可能利用卷积算子以发挥其计算效率。

基于上述设计,我们开发了一个新的实时检测器系列,包含 5 种模型规模:YOLOv12-N、S、M、L 和 X。我们在标准目标检测基准上进行了大量实验,遵循 YOLOv11[28] 且不添加任何额外技巧,结果表明 YOLOv12 在这些规模上的延迟-精度和 FLOPs-精度权衡方面均显著优于先前的流行模型,如图 1 所示。例如,YOLOv12-N 实现了 40.6% 的 mAP,以相似的推理速度优于 YOLOv10-N[53] 2.1% mAP,优于 YOLOv11-N[28] 1.2% mAP。这一优势在其他规模模型上保持一致。与 RT-DETR-R18[66]/RT-DETRv2-R18[40] 相比,YOLOv12-S 的 mAP 高 1.5%/0.1%,同时延迟速度快 42%/42%,仅需其 36%/36% 的计算量和 45%/45% 的参数。

总之,YOLOv12 的贡献是双重的:1)它建立了一个以注意力为中心的、简单而高效的 YOLO 框架,通过方法创新和架构改进,打破了 CNN 模型在 YOLO 系列中的主导地位。2)在不依赖预训练等额外技术的情况下,YOLOv12 实现了具有快速推理速度和更高检测精度的最先进结果,展示了其潜力。

2. 相关工作 (Related Work)​

​实时目标检测器 (Real-time Object Detectors).​
由于其显著的实际价值,实时目标检测器一直吸引着学术界的关注。YOLO 系列[3,9,24,28,29,32,45-47,53,54,57,58]已成为实时目标检测的领先框架。早期的 YOLO 系统[45-47]从模型设计的角度为 YOLO 系列奠定了基础。YOLOv4[3] 和 YOLOv5[29] 在框架中添加了 CSPNet[55]、数据增强和多尺度特征。YOLOv6[32] 通过主干网络(backbone)和颈部网络(neck)的 BiC 和 SimCSPSPPF 模块以及基于锚框(anchor-aided)的训练进一步推进了这些改进。YOLOv7[57] 引入了 E-ELAN[56](高效层聚合网络)以改善梯度流以及各种免费礼包(bag-of-freebies),而 YOLOv8[24] 集成了高效的 C2f 模块以增强特征提取。在最近的迭代中,YOLOv9[58] 引入了 GELAN 进行架构优化和 PGI(可编程梯度信息)进行训练改进,而 YOLOv10[53] 采用具有双重分配(dual assignments)的无 NMS 训练以提高效率。YOLOv11[28] 通过在检测头中采用 C3K2 模块(GELAN[58] 的一种规格)和轻量级深度可分离卷积(depthwise separable convolution),进一步降低了延迟并提高了精度。最近,一种端到端的目标检测方法,即 RT-DETR[66],通过设计高效的编码器和不确定性最小化的查询选择机制,改进了传统的端到端检测器[7, 33, 37, 42, 71]以满足实时需求。RT-DETRv2[40] 通过引入免费礼包(bag-of-freebies)进一步增强了它。与之前的 YOLO 系列不同,本研究旨在构建一个以注意力为中心的 YOLO 框架,以利用注意力机制的优越性。

​高效视觉变换器 (Efficient Vision Transformers).​
降低全局自注意力(global self-attention)的计算成本对于有效地将视觉变换器应用于下游任务至关重要。PVT[61] 通过多分辨率阶段和下采样特征来解决这个问题。Swin Transformer[39] 将自注意力限制在局部窗口内,并调整窗口划分风格以连接非重叠窗口,在通信需求与内存和计算需求之间取得平衡。其他方法,例如轴向自注意力(axial self-attention)[26]和十字交叉注意力(criss-cross attention)[27],在水平和垂直窗口内计算注意力。CSWin transformer[16] 在此基础上构建,引入了十字形窗口自注意力(cross-shaped window self-attention),沿水平和垂直条纹并行计算注意力。此外,在诸如[12, 64]等工作中建立了局部-全局关系,通过减少对全局自注意力的依赖来提高效率。Fast-iTPN[50] 通过令牌迁移(token migration)和令牌聚集(token gathering)机制提高了下游任务的推理速度。一些方法[31,49,60,62]使用线性注意力(linear attention)来降低注意力的复杂度。尽管基于 Mamba 的视觉模型[38, 70]旨在实现线性复杂度,但它们仍然无法达到实时速度[38]。FlashAttention[13, 14] 识别出导致注意力计算效率低下的高带宽内存瓶颈,并通过 I/O 优化来解决这些问题,减少内存访问以提高计算效率。在本研究中,我们摒弃了复杂的设计,并提出了一种简单的区域注意力机制(area attention mechanism)来降低注意力的复杂度。此外,我们采用 FlashAttention 来克服注意力机制固有的内存访问问题[13,14]。

图 2. 代表性局部注意力机制与我们的区域注意力(Area Attention)的比较。区域注意力采用最直接的平均划分方式,将特征图垂直或水平划分为 l 个区域(默认为 4)。这避免了复杂操作,同时确保了大感受野,从而实现了高效率。​

3. 方法 (Approach)​

本节介绍 YOLOv12,一个从网络架构角度结合注意力机制的 YOLO 框架创新。

3.1. 效率分析 (Efficiency Analysis)

注意力机制虽然在捕捉全局依赖关系和促进自然语言处理[5, 15]和计算机视觉[19, 39]等任务方面非常有效,但其固有速度慢于卷积神经网络(CNN)。导致这种速度差异的主要因素有两个。

​复杂度 (Complexity).​
首先,自注意力操作的计算复杂度随输入序列长度 L 呈二次方增长。具体来说,对于一个长度为 L、特征维度为 d 的输入序列,计算注意力矩阵需要 O(L²d) 次操作,因为每个令牌(token)都需要关注其他所有令牌。相比之下,CNN 中卷积操作的复杂度在空间或时间维度上是线性的,即 O(kLd),其中 k 是卷积核大小,通常远小于 L。因此,自注意力在计算上变得非常昂贵,特别是对于像高分辨率图像或长序列这样的大型输入。

此外,另一个重要因素是,大多数基于注意力的视觉变换器(Vision Transformers),由于其复杂的设计(例如,Swin Transformer[39] 中的窗口划分/反转)和额外模块的引入(例如,位置编码),逐渐累积了速度开销,导致其整体速度比 CNN 架构慢[38]。在本文中,设计模块使用简单干净的操作来实现注意力,尽最大程度确保效率。

​计算 (Computation).​
其次,在注意力计算过程中,与 CNN 相比,内存访问模式效率较低[13, 14]。具体来说,在自注意力期间,诸如注意力图(QKᵀ)和 softmax 图(L x L)这样的中间映射需要从高速 GPU SRAM(实际计算位置)存储到高带宽 GPU 内存(HBM),并在计算期间稍后检索,而前者的读写速度是后者的 10 倍以上,从而导致显著的内存访问开销并增加实际耗时(wall-clock time)¹。此外,注意力中不规则的内存访问模式引入了比 CNN 更多的延迟,CNN 利用结构化且局部化的内存访问。CNN 受益于空间受限的卷积核,由于其固定的感受野和滑动窗口操作,能够实现高效的内存缓存并减少延迟。

¹ (原文脚注)实际耗时(wall-clock time):指程序从开始执行到结束所用的实际物理时间。

这两个因素——二次计算复杂度和低效的内存访问——共同导致注意力机制比 CNN 慢,特别是在实时或资源受限的场景中。解决这些限制已成为一个关键的研究领域,旨在减轻二次方缩放(quadratic scaling)的方法,如稀疏注意力机制和内存高效近似(例如,Linformer[60] 或 Performer[11])已被提出。

3.2. 区域注意力 (Area Attention)

降低原始注意力计算成本的一个简单方法是使用线性注意力机制[49, 60],它将原始注意力的复杂度从二次方降低到线性。对于一个维度为 (n, h, d) 的视觉特征 f(其中 n 是令牌数量,h 是头数,d 是头大小),线性注意力将复杂度从 2n²hd 降低到 2nhd²,由于 n > d,从而降低了计算成本。然而,线性注意力存在全局依赖退化[30]、不稳定性[11]和分布敏感性[63]的问题。此外,由于低秩瓶颈[2, 10],当应用于输入分辨率为 640 × 640 的 YOLO 时,它仅提供有限的速度优势。

有效降低复杂度的另一种方法是局部注意力机制(例如,平移窗口[39]、十字交叉注意力[27]和轴向注意力[16]),如图 2 所示,它将全局注意力转换为局部注意力,从而降低计算成本。然而,将特征图划分为窗口会引入开销或减少感受野,影响速度和精度。在本研究中,我们提出了简单而高效的区域注意力模块(Area Attention)。如图 2 所示,将分辨率为 (H, W) 的特征图划分为 l 个大小为 \left ( \frac{H}{l},W \right ) 或 \left ( H,\frac{W}{l} \right ) 的段。这消除了显式的窗口划分,只需要一个简单的重塑(reshape)操作,从而实现更快的速度。我们经验性地将 l 的默认值设为 4,将感受野减小到原始的 1/4​,但它仍然保持一个大的感受野。采用这种方法,注意力机制的计算成本从 2n²hd 降低到 \frac{1}{2}n^2hd。我们证明,尽管复杂度为 n²,但当 n 固定在 640 时(如果输入分辨率增加,n 会增加),这仍然足够高效以满足 YOLO 系统的实时要求。有趣的是,我们发现这种修改对性能的影响很小,但显著提高了速度。

3.3. 残差高效层聚合网络 (Residual Efficient Layer Aggregation Networks)

高效层聚合网络(ELAN)[57]旨在改进特征聚合。如图 3(b) 所示,ELAN 分割过渡层(一个 1x1 卷积)的输出,通过多个模块处理其中一个分割块,然后连接所有输出并应用另一个过渡层(一个 1x1 卷积)来对齐维度。然而,正如[57]所分析的,这种架构可能引入不稳定性。我们认为这样的设计会导致梯度阻塞(gradient blocking),并且缺乏从输入到输出的残差连接。此外,我们围绕注意力机制构建网络,这带来了额外的优化挑战。经验表明,L 和 X 规模的模型要么无法收敛,要么保持不稳定,即使使用 Adam 或 AdamW 优化器也是如此。

为了解决这个问题,我们提出了残差高效层聚合网络(R-ELAN),如图 3(d) 所示。作为对比,我们引入了贯穿整个块的从输入到输出的残差捷径(residual shortcut),并带有缩放因子(默认 0.01)。这种设计与层缩放(layer scaling)[52]相似,后者被引入用于构建深度视觉变换器。然而,对每个区域注意力应用层缩放并不能克服优化挑战,并且会引入延迟上的减速。这表明注意力机制的引入并不是收敛困难的唯一原因,ELAN 架构本身也是原因,这验证了我们 R-ELAN 设计背后的基本原理。

我们还设计了一种新的聚合方法,如图 3(d) 所示。原始的 ELAN 层处理模块的输入时,首先将其通过一个过渡层,然后将其分割成两部分。一部分由后续块进一步处理,最后两部分连接起来产生输出。相比之下,我们的设计应用一个过渡层来调整通道维度并产生一个单一的特征图。然后这个特征图通过后续块处理,再进行连接,形成一个瓶颈结构。

图 3. 与流行模块的架构比较,包括 (a):CSPNet [55], (b) ELAN [56], (c) C3K2 (GELAN 的一个实例) [28, 58], 以及 (d) 提出的 R-ELAN(残差高效层聚合网络)。​

这种方法不仅保留了原始的特征整合能力,还减少了计算成本和参数/内存使用量。

3.4. 架构改进 (Architectural Improvements)

在本节中,我们将介绍整体架构以及对原始注意力机制的一些改进。其中一些改进并非我们首次提出。

许多以注意力为中心的视觉变换器设计为朴素风格(plain-style)架构[1, 18, 19, 21, 25, 51],而我们保留了先前 YOLO 系统[3, 24, 28, 29, 32, 45-47, 53, 57, 58]的分层设计,并将证明其必要性。我们移除了主干网络最后阶段堆叠三个块的设计,该设计存在于最近的版本中[24, 28, 53, 58]。相反,我们只保留一个 R-ELAN 块,减少了块的总数并有助于优化。我们继承了 YOLOv11[28] 主干网络的前两个阶段,不使用所提出的 R-ELAN。

此外,我们修改了原始注意力机制中的几个默认配置,以更好地适应 YOLO 系统。这些修改包括:将 MLP 比率从 4 调整到 1.2(或为 N-/S-/M 规模模型调整为 2),以更好地分配计算资源以获得更好的性能;采用 nn.Conv2d+BN(卷积+批量归一化)代替 nn.Linear+LN(线性+层归一化),以充分利用卷积算子的效率;移除位置编码(positional encoding);并引入一个大的可分离卷积(7x7)(称为位置感知器(position perceiver))来帮助区域注意力感知位置信息。这些修改的有效性将在第 4.5 节中得到验证。

4. 实验 (Experiment)​

本节分为四个部分:实验设置、与流行方法的系统比较、消融研究以验证我们的方法,以及通过可视化分析进一步探索 YOLOv12。

4.1. 实验设置 (Experimental Setup)

我们在 MSCOCO 2017 数据集[36]上验证所提出的方法。YOLOv12 系列包括 5 个变体:YOLOv12-N、YOLOv12-S、YOLOv12-M、YOLOv12-L 和 YOLOv12-X。所有模型均使用 SGD 优化器训练 600 个 epoch,初始学习率为 0.01,与 YOLOv11[28]相同。我们采用线性学习率衰减计划,并在前 3 个 epoch 执行线性预热(warm-up)。遵循[53, 66]中的方法,所有模型的延迟均在配备 TensorRT FP16 的 T4 GPU 上进行测试。

​基线 (Baseline).​
我们选择先前版本 YOLOv11[28] 作为基线。模型缩放策略也与其一致。我们使用了其提出的几个 C3K2 模块(这是 GELAN[58] 的一种特例)。我们没有使用超出 YOLOv11[28] 的任何额外技巧。

4.2. 与最先进方法的比较 (Comparison with State-of-the-arts)

我们在表 1 中展示了 YOLOv12 与其他流行实时检测器之间的性能比较。

表 1. 与流行最先进实时目标检测器的比较。所有结果均使用 640×640 输入获得。

对于 N 规模模型,YOLOv12-N 在 mAP 上分别优于 YOLOv6-3.0-N[32]、YOLOv8-N[24]、YOLOv10-N[53] 和 YOLOv11[28] 3.6%、3.3%、2.1% 和 1.2%,同时保持相似甚至更少的计算量和参数,并实现了 1.64 ms/图像的快速延迟。

对于 S 规模模型,YOLOv12-S 具有 21.4G FLOPs 和 9.3M 参数,以 2.61 ms/图像的延迟实现了 48.0 mAP。它分别优于 YOLOv8-S[24]、YOLOv9-S[58]、YOLOv10-S[53] 和 YOLOv11-S[28] 3.0%、1.2%、1.7% 和 1.1%,同时保持相似或更少的计算量。与端到端检测器 RT-DETR-R18[66]/RT-DETRv2-R18[41] 相比,YOLOv12-S 实现了可媲美的性能,但具有更好的推理速度以及更少的计算成本和参数。

对于 M 规模模型,YOLOv12-M 具有 67.5G FLOPs 和 20.2M 参数,以 4.86 ms/图像的速度实现了 52.5 mAP 的性能。与 Gold-YOLOvM[54]、YOLOv8-M[24]、YOLOv9-M[58]、YOLOv10[53]、YOLOv11[28] 以及 RT-DETR-R34[66]/RT-DETRv2-R34[40] 相比,YOLOv12-S 具有优越性。

对于 L 规模模型,YOLOv12-L 甚至以少 31.4G FLOPs 的优势超越了 YOLOv10-L[53]。YOLOv12-L 以可比的 FLOPs 和参数,在 mAP 上优于 YOLOv11[28] 0.4%。YOLOv12-L 也以更快的速度、更少的 FLOPs(34.6%)和更少的参数(37.1%)优于 RT-DERT-R50[66]/RT-DERTv2-R50[41]。

对于 X 规模模型,YOLOv12-X 分别显著优于 YOLOv10-X[53]/YOLOv11-X[28] 0.8% 和 0.6%,同时具有可比较的速度、FLOPs 和参数。YOLOv12-X 再次以更快的速度、更少的 FLOPs(23.4%)和更少的参数(22.2%)击败了 RT-DETR-R101[66]/RT-DETRv2-R101[40]。

特别地,如果使用 FP32 精度评估 L-/X 规模模型(这需要单独以 FP32 格式保存模型),YOLOv12 将实现约 ∼0.2% mAP 的改进。这意味着 YOLOv12-L/X 将报告 33.9%/55.4% mAP。

4.3. 消融研究 (Ablation Studies)

表 2. 所提出的残差高效层聚合网络(R-ELAN)的消融研究。Vanilla:使用原始 ELAN 设计;Re-Aggre.:采用我们提出的特征整合方法;Resi.:利用残差块技术;Scaling:残差连接的缩放因子。​

● ​​R-ELAN.​​ 表 2 使用 YOLOv12-N/L/X 模型评估了所提出的残差高效层聚合网络(R-ELAN)的有效性。结果揭示了两个关键发现:(i) 对于像 YOLOv12-N 这样的小型模型,残差连接不影响收敛但会降低性能。相反,对于大型模型(YOLOv12-L/X),它们对于稳定训练至关重要。特别是,YOLOv12-X 需要一个最小的缩放因子(0.01)来确保收敛。(ii) 所提出的特征整合方法有效地减少了模型的 FLOPs 和参数方面的复杂性,同时仅边际下降地保持可比性能。

● ​​区域注意力 (Area Attention).​​ 我们进行了消融实验以验证区域注意力的有效性,结果在表 3 中呈现。在 YOLOv12-N/S/X 模型上进行了评估,测量了在 GPU(CUDA) 和 CPU 上的推理速度。CUDA 结果使用 RTX 3080 和 A5000 获得,而 CPU 性能在 Intel Core i7-10700K@ 3.80GHz 上测量。结果证明了采用区域注意力带来的显著加速。例如,在 RTX 3080 上使用 FP32,YOLOv12-N 的速度提高了约 0.7ms。这种加速在 FP16 和 CPU 上也是一致的。这表明区域注意力有效地减少了速度差异。

表 3. 所提出的区域注意力的消融研究。使用区域注意力(√),YOLOv12-N/S/X 模型在 GPU(CUDA)和 CPU 上运行均显著更快。CUDA 结果在 RTX 3080/A5000 上测量。推理延迟:FP32 和 FP16 精度的毫秒(ms)。(所有结果均在不使用 FlashAttention[13,14] 的情况下获得)​

4.4. 速度比较 (Speed Comparison)

表 4. 不同 GPU(RTX 3080, RTX A5000, 和 RTX A6000)上推理速度的比较分析。推理延迟:FP32 和 FP16 精度的毫秒(ms)。​

表 4 展示了在不同 GPU(RTX 3080、RTX A5000 和 RTX A6000)上推理速度的比较分析,使用 FP32 和 FP16 精度评估了 YOLOv9[58]、YOLOv10[53]、YOLOv11[28] 和我们的 YOLOv12。为确保一致性,所有结果均在同一硬件上获得,并使用 ultralytics[28] 的集成代码库评估 YOLOv9[58] 和 YOLOv10[53]。结果表明,YOLOv12 实现了比 YOLOv9[58] 显著更高的推理速度,同时与 YOLOv10[53] 和 YOLOv11[28] 相当。例如,在 RTX 3080 上,YOLOv9 报告为 2.4 ms (FP32) 和 1.5 ms (FP16),而 YOLOv12-N 实现了 1.7 ms (FP32) 和 1.1 ms (FP16)。类似的趋势在其他配置中也成立。

图 4 展示了额外的比较。左子图展示了与流行方法的精度-参数权衡比较,其中 YOLOv12 建立了一个超越同类方法的优势边界,甚至超过了 YOLOv10(一个以显著更少参数为特点的 YOLO 版本),展示了 YOLOv12 的有效性。我们在右子图中比较了 YOLOv12 与先前 YOLO 版本在 CPU 上的推理延迟(所有结果均在 Intel Core i7-10700K@ 3.80GHz 上测量)。如图所示,YOLOv12 以更有利的边界超越了其他竞争者,突显了其在多样化硬件平台上的效率。

图 4. 与流行方法在精度-参数(左)和 CPU 上精度-延迟权衡(右)方面的比较。​

4.5. 诊断与可视化 (Diagnosis & Visualization)

表 5. 诊断研究。为节省空间,我们仅在每个子表中显示待诊断的因子。默认参数为(除非另有说明):使用 YOLOv12-N 模型从头开始训练 600 个周期。​

我们在表 5a 至 5h 中诊断了 YOLOv12 的设计。除非另有说明,我们在 YOLOv12-N 上执行这些诊断,默认从头开始训练 600 个 epoch。

● ​​注意力实现 (Attention Implementation):​​ 表 5a。我们检查了实现注意力的两种方法。基于卷积的方法由于卷积的计算效率而比基于线性(linear-based)的方法更快。此外,我们探索了两种归一化方法(层归一化 (LN) 和批量归一化 (BN)),发现结果:虽然层归一化通常用于注意力机制,但与卷积一起使用时,其性能不如批量归一化。值得注意的是,这已在 PSA 模块[53]中使用,我们的发现与其设计一致。

● ​​分层设计 (Hierarchical Design):​​ 表 5b。与其他检测系统(如 Mask R-CNN[1,25])不同,其中朴素视觉变换器的架构可以产生强大的结果,YOLOv12 表现出不同的行为。当使用朴素视觉变换器(N/A)时,检测器的性能显著下降,仅达到 38.3% mAP。一个更温和的调整,例如省略第一阶段(ST)或第四阶段(S),同时通过调整特征维度保持相似的 FLOPs,分别导致轻微的性能下降 0.5% mAP 和 0.8% mAP。与先前的 YOLO 模型一致,分层设计仍然是最有效的,在 YOLOv12 中产生最佳性能。

● ​​训练周期 (Training Epochs):​​ 表 5c。我们检查了改变训练周期数量对性能(从头开始训练)的影响。虽然一些现有的 YOLO 检测器在大约 500 个训练周期后达到最佳结果[24, 53, 58],但 YOLOv12 需要更长的训练周期(约 600 个 epoch)才能达到峰值性能,保持与 YOLOv11[28] 相同的配置。

● ​​位置感知器 (Position Perceiver):​​ 表 5d。在注意力机制中,我们应用了一个具有大卷积核的可分离卷积到注意力值 v,将其输出加到 v@attn。我们将此组件称为位置感知器(Position Perceiver),因为卷积的平滑效应保留了图像像素的原始位置,它有助于注意力机制感知位置信息(这已在 PSA 模块[53]中使用,但我们扩展了卷积核,在不影响速度的情况下实现了性能改进)。如表所示,增加卷积核大小提高了性能但逐渐降低了速度。当核大小达到 9x9 时,减速变得显著。因此,我们将 7x7 设置为默认核大小。

● ​​位置嵌入 (Position Embedding):​​ 表 5e。我们检查了大多数基于注意力的模型中常用的位置嵌入(RPE:相对位置嵌入; APE:绝对位置编码)对性能的影响。有趣的是,性能最佳的配置是在没有任何位置嵌入的情况下实现的,这带来了更简洁的架构和更快的推理延迟。

● ​​区域注意力 (Area Attention):​​ 表 5f。在此表中,我们默认使用 FlashAttention 技术。这导致虽然区域注意力机制增加了计算复杂度(带来性能提升),但由此产生的减速仍然很小。关于区域注意力有效性的进一步验证,请参阅表 3。

● ​​MLP 比率 (MLP Ratio):​​ 表 5g。在传统的视觉变换器中,注意力模块内的 MLP 比率通常设置为 4.0。然而,我们在 YOLOv12 中观察到了不同的行为。在表中,改变 MLP 比率会影响模型大小,因此我们调整特征维度以保持整体模型一致性。特别是,YOLOv12 在 MLP 比率为 1.2 时实现了更好的性能,这背离了常规做法。这种调整将计算负载更多地转向注意力机制,突显了区域注意力的重要性。

● ​​FlashAttention:​​ 表 5h。此表验证了 FlashAttention 在 YOLOv12 中的作用。它显示 FlashAttention 将 YOLOv12-N 加速约 0.3ms,将 YOLOv12-S 加速约 0.4ms,且没有其他成本。

图 5. YOLOv10[53]、YOLOv11[28] 和所提出的 YOLOv12 的热力图比较。与先进的 YOLOv10 和 YOLOv11 相比,YOLOv12 展示了对图像中目标更清晰的感知。所有结果均使用 X 规模模型获得。放大查看以比较细节。​​

可视化:热力图比较 (Visualization: Heat Map Comparison).​​ 图 5 比较了 YOLOv12 与最先进的 YOLOv10[53] 和 YOLOv11[28] 的热力图。这些热力图是从 X 规模模型主干的第三阶段提取的,突出了模型激活的区域,反映了其目标感知能力。如图所示,与 YOLOv10 和 YOLOv11 相比,YOLOv12 产生了更清晰的目标轮廓和更精确的前景激活,表明感知能力得到改善。我们的解释是,这种改进源于区域注意力机制,它比卷积网络具有更大的感受野,因此被认为更擅长捕捉整体上下文,从而产生更精确的前景激活。我们相信这一特性赋予了 YOLOv12 性能优势。

5. 结论 (Conclusion)​

本研究提出了 YOLOv12,它成功地将传统上被认为难以满足实时要求的以注意力为中心的设计引入到 YOLO 框架中,实现了最先进的延迟-精度权衡。为了实现高效推理,我们提出了一种新颖的网络,该网络利用区域注意力(area attention)来降低计算复杂度,并利用残差高效层聚合网络(R-ELAN)来增强特征聚合。此外,我们改进了原始注意力机制的关键组件,以更好地适应 YOLO 的实时约束,同时保持高速性能。因此,YOLOv12 通过有效结合区域注意力、R-ELAN 和架构优化,实现了最先进的性能,在精度和效率方面都带来了显著提升。全面的消融研究进一步验证了这些创新的有效性。本研究挑战了 CNN 基于设计在 YOLO 系统中的主导地位,并推进了注意力机制在实时目标检测中的集成,为更高效、更强大的 YOLO 系统铺平了道路。

​6. 局限性 (Limitations)​

YOLOv12 需要 FlashAttention[13, 14],该库目前支持 Turing、Ampere、Ada Lovelace 或 Hopper 架构的 GPU(例如,T4, Quadro RTX 系列, RTX20 系列, RTX30 系列, RTX40 系列, RTX A5000/6000, A30/40, A100, H100 等)。

​7. 更多细节 (More Details)​

​微调细节 (Fine-tuning Details).​​ 默认情况下,所有 YOLOv12 模型都使用 SGD 优化器训练 600 个 epoch。遵循先前的工作[24, 53, 57, 58],SGD 动量和权重衰减分别设置为 0.937 和 5 x 10⁻⁴。初始学习率设置为 1×10−2,并在整个训练过程中线性衰减至 1×10−4。应用数据增强技术,包括 Mosaic[3, 57]、Mixup[71] 和 copy-paste 增强[65] 来提升训练效果。遵循 YOLOv11[28],我们采用 Albumentations 库[6]。详细的超参数如表 7 所示。所有模型均在 8 张 NVIDIA A6000 GPU 上训练。遵循既定惯例[24, 28, 53, 58],我们在不同目标尺度和 IoU 阈值上报告标准平均精度(mAP)。此外,我们报告所有图像的平均延迟。我们建议在官方代码库查看更多细节:https://github.com/sunsmarterjie/yolov12。

​结果细节 (Result Details).​​ 我们在表 6 中报告了结果的更多细节。

表6:YOLOv12在COCO数据集上的详细表现。

http://www.lryc.cn/news/595854.html

相关文章:

  • Linux操作系统从入门到实战(十二)Linux操作系统第一个程序(进度条)
  • iOS组件化详解
  • 深入浅出控制反转与依赖注入:从理论到实践
  • SOLIDWORKS 2025电脑硬件配置指南-代理商硕迪科技
  • [pdf epub]《软件方法》电子书202507更新下载
  • 【ArcGIS Pro】设置临时存储文件夹(计算缓存数据存放位置)
  • 用org.apache.pdfbox 转换 PDF 到 图片格式
  • 前端自动化埋点:页面模块级行为跟踪与问题定位系统​​的技术设计方案
  • AngularJS 动画
  • 厌氧菌数据挖掘可行性评估报告
  • 类对马岛之魂 落叶交互
  • “闪存普惠”如何一步到位? 华为在商业市场破题
  • 【QT常用技术讲解】QSystemTrayIcon系统托盘
  • 【bug】 jetson上opencv无法录制h264本地视频
  • 华为服务器操作系统openEuler介绍与安装
  • 【LeetCode 热题 100】46. 全排列——回溯
  • Kafka灰度方案
  • Lua语言
  • LNMP平台部署
  • 数据库—修改某字段默认值
  • [08006][1033] ORA-01033: ORACLE 正在初始化或关闭--问题修复
  • 从ZooKeeper到KRaft:Kafka架构演进与无ZooKeeper部署指南
  • 第13天 | openGauss逻辑结构:表管理1
  • CanOpen--SDO 数据帧分析
  • RabbitMQ应用问题
  • 新手向:基于Python的剪贴板历史增强工具
  • MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
  • Go 并发(协程,通道,锁,协程控制)
  • 基于 FFT + VMD 预处理的 1DCNN‑Informer 双支路并行、多头注意力融合分类模型
  • 【JS】获取元素宽高(例如div)