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

论文解析篇 | YOLOv12:以注意力机制为核心的实时目标检测算法

前言:Hello大家好,我是小哥谈。长期以来,改进YOLO框架的网络架构一直至关重要,但尽管注意力机制在建模能力方面已被证明具有优越性,相关改进仍主要集中在基于卷积神经网络(CNN)的方法上。这是因为基于注意力机制的模型无法达到基于CNN模型的速度。本文提出了一个以注意力机制为核心的YOLO框架即YOLOv12,它在利用注意力机制性能优势的同时,能达到之前基于CNN模型的速度。实验证明,YOLOv12在准确性上超越了所有流行的实时目标检测器,同时速度也具有竞争力。🌈

     目录

🚀1.论文简介

🚀2.具体改进

🍀🍀2.1 区域注意力(Area Attention, A²)

🍀🍀2.2 残差高效层聚合网络(R-ELAN)

🍀🍀2.3 适配 YOLO 的注意力机制优化

🚀3.论文总结

🚀1.论文简介

前言:

实时目标检测因其低延迟特性一直备受关注,具有很高的实用性。其中,YOLO系列有效地在延迟和准确性之间取得了最佳平衡,从而在该领域占据主导地位。尽管YOLO的改进主要集中在损失函数、标签分配等方面,但网络架构设计仍然是关键的研究重点。尽管以注意力机制为核心的视觉变换器(ViT)架构已被证明即使在小模型中也具有更强的建模能力,但大多数架构设计仍主要集中在卷积神经网络(CNN)上。

YOLOv12 是 YOLO 系列中首个打破传统基于卷积神经网络(CNN)方法的模型,它通过将注意力机制直接集成到目标检测过程中实现了这一突破。本文深入研究了 YOLOv12 的架构、创新模块、技术细节以及它在实际应用中的性能表现。该模型配备了区域注意力(Area Attention)方法残差高效层聚合网络(Residual Efficient Layer Aggregation Networks,R-ELAN)快速注意力(FlashAttention)等先进技术,既实现了高检测精度(平均精度均值,mAP),又具备实时推理速度,为工业应用、自动驾驶、安防等众多领域带来了革命性的提升。

背景与动机:

  • 传统 CNN 模型的局限性
    尽管传统的卷积神经网络(CNN)在目标检测中表现良好,但它们的建模能力不如基于 Transformer 的注意力机制强大。

  • 注意力机制的效率瓶颈
    注意力机制虽然具备强大的建模能力,但由于其计算复杂度较高(通常是 ),难以满足实时目标检测的需求。

  • YOLO 系列模型的改进空间
    虽然 YOLO 系列模型在速度和精度之间取得了良好的平衡,但在结合注意力机制方面仍有不足。

目标:

将注意力机制高效地集成到 YOLO 框架中,从而在保持实时推理速度的同时显著提升检测精度。

本文创新点:

本篇论文围绕实时目标检测,在网络架构设计上引入创新,克服了传统注意力机制在实时应用中的速度瓶颈,提升了检测性能。

  • 构建注意力中心框架突破传统 YOLO 依赖 CNN 架构的局限,以注意力机制为核心设计 YOLOv12 框架,发挥注意力机制强大的建模能力,打破 CNN 模型在 YOLO 系列中的主导地位。
  • 高效的区域注意力模块提出简单有效的区域注意力模块(A2),通过简单的特征图划分方式,在减少注意力计算复杂度的同时,保持较大的感受野,显著提升计算速度,且对性能影响较小。
  • 残差高效层聚合网络引入 R-ELAN 解决注意力机制带来的优化挑战。通过块级残差设计和重新设计的特征聚合方法,增强特征聚合能力,降低模型计算成本和参数 / 内存使用,保证大模型稳定训练。
  • 优化基础注意力机制对基础注意力机制进行多项改进,如调整 MLP 比例、采用卷积算子、去除位置编码并引入大的可分离卷积感知位置信息等,使模型更适配 YOLO 系统的实时性要求,提升综合性能。

论文题目:《YOLOv12: Attention-Centric Real-Time Object Detectors》

论文地址:  [2502.12524] YOLOv12: Attention-Centric Real-Time Object Detectors

代码地址:  https://github.com/sunsmarterjie/yolov12


🚀2.具体改进

YOLOv12 主要从以下 3 个方面进行改进:

🍀🍀2.1 区域注意力(Area Attention, A²)

问题:

  • 传统的全局自注意力计算复杂度为 O(n²),对大规模输入(如 640×640 图像)计算量过大,推理速度较慢。

  • 现有的局部注意力方法(如窗口注意力、轴向注意力等)通常引入额外计算开销或降低感受野。

解决方案:

  • 划分特征图:将输入特征图均匀划分为 4 个区域(默认),避免复杂的窗口划分策略,简化计算。

  • 局部计算注意力:对每个区域内部独立计算注意力,计算复杂度从 O(n²) 降至 O(n²/2),减少 50% 计算量,同时保持较大的感受野。

优势:

  • 计算量降低,相比全局注意力更快。

  • 推理速度提高,能满足 YOLO 框架的实时需求。

  • 感受野仍然较大,相比窗口注意力(如 Swin Transformer),仍能有效捕捉全局信息。

🍀🍀2.2 残差高效层聚合网络(R-ELAN)

问题:

  • 传统 ELAN(Efficient Layer Aggregation Network)结构中,多分支特征聚合容易导致梯度阻塞(Gradient Blocking),使大模型难以优化。

  • YOLO 结构本身主要依赖 CNN,而注意力机制的加入会引入新的优化挑战。

解决方案:

  • 引入残差连接:在 ELAN 结构基础上,增加残差连接,提升梯度流动,减少梯度阻塞,提高大规模模型(L, X 规模)的稳定性。

  • 缩放因子(Scaling Factor):

    • 采用一个小的缩放因子(0.01),确保残差分支不会影响整体优化,同时改善梯度流动。

    • 适用于 L 级别及以上的 YOLOv12,防止大模型训练不稳定或无法收敛。

优势:

  • 提高大模型稳定性:L、X 级别模型优化更稳定,梯度流动顺畅。

  • 减少计算开销:在不增加计算量的前提下,提高训练稳定性和推理精度。

🍀🍀2.3 适配 YOLO 的注意力机制优化

在 YOLO 框架中直接引入注意力机制会导致推理速度下降,因此 YOLOv12 对注意力机制进行了多项优化:

(1)引入 FlashAttention

问题:

  • 传统自注意力计算涉及大量 GPU 内存访问,导致速度下降。

  • YOLO 需要高效的推理速度,但注意力机制通常较慢。

解决方案:

  • 采用 FlashAttention(适用于 Turing, Ampere, Ada Lovelace, Hopper 架构的 GPU,如 T4, A5000)。

  • 优化 GPU 内存访问,减少高带宽 GPU 内存(HBM)的读写需求,提高计算效率。

优势:

  • 速度相比普通注意力机制提升 约 20%-30%。

  • 降低内存占用,使 YOLOv12 适用于实时推理场景。

(2)去除位置编码(Positional Encoding)

问题:

  • 绝对位置编码(APE)和相对位置编码(RPE)会增加计算复杂度,同时带来额外的参数量。

  • YOLO 框架主要依赖 CNN 进行特征提取,已有的卷积感受野本身具有一定的位置信息。

解决方案:

  • 直接去除位置编码,改用 7×7 大核卷积(Position Perceiver)增强位置信息。

  • 不影响模型精度,同时减少额外计算。

优势:

  • 计算量降低,减少额外参数。

  • 速度更快,适应实时检测任务。

(3) 调整 MLP 结构

问题:

  • 传统 Transformer 结构中,MLP 比例为 4:1,即前馈网络比注意力计算量大 4 倍。

  • 这种配置对 YOLO 结构而言不够高效,容易浪费计算资源。

解决方案:

  • 调整 MLP 比例:

    • N, S, M 规模:MLP 比例设为 2

    • L, X 规模:MLP 比例设为 1.2

  • 使注意力机制的计算量与前馈网络计算量更加均衡。

优势:

  • 计算资源分配更合理,提升推理速度。

  • 减少冗余计算,提升 YOLO 结构适应性。


🚀3.论文总结

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

http://www.xdnf.cn/news/14951.html

相关文章:

  • 从零用java实现 小红书 springboot vue uniapp(13)模仿抖音视频切换
  • 飞算AI-idea强大的AI工具
  • 函数-3-日期函数
  • Android ViewModel机制与底层原理详解
  • 深度学习 必然用到的 微积分知识
  • 整合Spring、Spring MVC与MyBatis:构建高效Java Web应用
  • 【实习篇】之Http头部字段之Disposition介绍
  • vue快速上手
  • 解决IDEA缺少Add Framework Support选项的可行性方案
  • 跨平台ROS2视觉数据流:服务器运行IsaacSim+Foxglove本地可视化全攻略
  • 单片机STM32F103:DMA的原理以及应用
  • Python通关秘籍之基础教程(一)
  • 供应链管理-采购:谈判方式、理念、技巧
  • 【C++】第四章—— 函数重载 Function Overloading 笔记
  • android activity生命周期温习
  • JSP数据交互
  • JAVA如何实现Redis同步
  • 软件发布的完整流程梳理
  • 每日mysql
  • Debezium:一款基于CDC的开源数据同步工具
  • 如何使用Pytest进行测试?
  • Ubuntu22.04 设置显示存在双屏却无法双屏显示
  • MS32C001-C单片机,32位ARM M0+内核,宽电压、低功耗、小封装。
  • 【图像处理基石】如何检测到画面中的ppt并对其进行增强?
  • 【问题思考总结】两个向量之和的二范数公式是什么?
  • Shell 脚本0基础教学(一)
  • 景观桥 涵洞 城门等遮挡物对汽车安全性的影响数学建模和计算方法,需要收集那些数据
  • Windows Subsystem for Linux (WSL):现代开发的终极跨平台方案
  • 专题一_双指针_有效三角形的个数
  • 【Linux | 网络】socket编程 - 使用TCP实现服务端向客户端提供简单的服务