YOLOv12 ——基于卷积神经网络的快速推理速度与注意力机制带来的增强性能结合

概述

实时目标检测对于许多实际应用来说已经变得至关重要,而Ultralytics公司开发的YOLO(You Only Look Once,只看一次)系列一直是最先进的模型系列,在速度和准确性之间提供了稳健的平衡。注意力机制的低效阻碍了它们在像YOLO这样的高速系统中的应用。YOLOv12旨在通过将注意力机制集成到YOLO框架中来改变这一现状。

1.新特性

大多数目标检测架构传统上依赖于卷积神经网络(CNN),因为注意力机制效率低下,面临着二次计算复杂度和低效的内存访问操作问题。因此,在对推理速度要求很高的YOLO框架中,基于CNN的模型通常比基于注意力的系统表现更好。

YOLOv12通过引入三个关键改进来克服这些限制:

区域注意力模块(A2):

  • YOLOv12引入了一个简单而高效的区域注意力模块(A2),该模块将特征图分割成多个片段,在保留大感受野的同时降低了传统注意力机制的计算复杂度。这种简单的修改使模型在保持较大视野的同时提高了速度和效率。

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

  • YOLOv12利用R - ELAN来解决注意力机制带来的优化挑战。R - ELAN对之前的ELAN架构进行了改进,具体如下:
    • 块级残差连接和缩放技术,以确保训练的稳定性。
    • 重新设计的特征聚合方法,提高了性能和效率。

架构改进:

  • 快速注意力(Flash Attention):快速注意力的集成解决了注意力机制的内存访问瓶颈问题,优化了内存操作并提高了速度。
  • 去除位置编码:通过消除位置编码,YOLOv12简化了模型,使其更快、更简洁,同时不牺牲性能。
  • 调整多层感知机(MLP)比率:多层感知机的扩展比率从4降低到1.2,以平衡注意力网络和前馈网络之间的计算负载,提高效率。
  • 减少块深度:通过减少架构中堆叠块的数量,YOLOv12简化了优化过程并提高了推理速度。
  • 卷积算子:YOLOv12广泛使用卷积操作以利用其计算效率,进一步提高性能并降低延迟。

注:

由于两个因素,注意力机制本质上比卷积神经网络(CNN)慢:

  1. 复杂性。首先,自注意力操作的计算复杂度随输入序列长度 L 呈二次方增长。此外,另一个重要因素是,大多数基于注意力的视觉变压器由于其复杂的设计(例如,Swin 变压器中的窗口划分/反转
    )和额外模块的引入(例如,位置编码),逐渐积累了速度开销。
  2. 计算。其次,在注意力计算过程中,与 CNN 相比,内存访问模式效率较低,例如注意力图和 softmax 图。此外,与 CNN 相比,注意力中的不规则内存访问模式会引入更多的延迟。

2.YOLOv12的架构概述


图1:YOLOv12的主干网络和头部网络架构

3.区域注意力模块

图2:区域注意力可视化

为了解决普通注意力机制相关的计算成本问题,YOLOv12利用了局部注意力机制,如移位窗口注意力、十字交叉注意力和轴向注意力。虽然这些方法通过将全局注意力转换为局部注意力来降低复杂度,但由于感受野减小,它们在速度和准确性方面存在局限性。

  • 提出的解决方案:YOLOv12引入了一个简单而高效的区域注意力模块。该模块将分辨率为(H,W)的特征图分割成L个大小为(H/L,W)或(H,W/L)的片段。它不是使用显式的窗口划分,而是应用了一个简单的重塑操作。
  • 优点:这将感受野减小到原来的四分之一,但与其他局部注意力方法相比,仍然保持了较大的感受野。通过将计算成本从传统的(2n²hd)降低到(n²hd)/2,模型在不牺牲准确性的情况下变得更加高效。

4.残差高效层聚合网络(R - ELAN)


图3:YOLOv12中使用的R - ELAN

ELAN概述:

高效层聚合网络(ELAN) 在早期的YOLO模型中用于改进特征聚合。ELAN的工作方式如下:

  1. 对1×1卷积层的输出进行分割。
  2. 通过多个模块处理这些分割后的部分。
  3. 在应用另一个1×1卷积以对齐最终维度之前,将输出进行拼接。

ELAN存在的问题

  1. 梯度阻塞:由于从输入到输出缺乏残差连接,导致训练不稳定。
  2. 优化挑战:注意力机制和架构可能会导致收敛问题,L规模和X规模的模型即使使用Adam或AdamW优化器也无法收敛或保持不稳定。

提出的解决方案——R - ELAN

  1. 残差连接:引入了从输入到输出的残差捷径,带有一个缩放因子(默认值为0.01),以提高稳定性。
  2. 层缩放类比:类似于深度视觉Transformer中使用的层缩放,但避免了将层缩放应用于每个区域注意力模块而导致的速度下降。

新的聚合方法

  1. 修改后的设计:新方法不是在过渡层之后分割输出,而是调整通道维度并创建单个特征图。
  2. 瓶颈结构:在拼接之前通过后续块处理特征图,形成更高效的聚合方法。

5.架构改进

  • 快速注意力(Flash Attention):YOLO12利用了快速注意力,它最大限度地减少了内存访问开销。这解决了注意力机制的主要内存瓶颈问题,缩小了与CNN的速度差距。
  • MLP比率调整:前馈网络的扩展比率从Transformer中通常的4降低到YOLOv12中的约1.2。这防止了MLP在运行时占据主导地位,从而提高了整体效率。
  • 去除位置编码:YOLOv12在其注意力层中省略了显式的位置编码。这使得模型“快速且简洁”,同时在检测性能上没有损失。
  • 减少堆叠块:最近的YOLO主干网络在最后一个阶段堆叠了三个注意力/CNN块;而YOLOv12在该阶段只使用了一个R - ELAN块。较少的顺序块简化了优化过程并提高了推理速度,尤其是在更深的模型中。
  • 卷积算子:该架构还使用了带有批量归一化的卷积,而不是带有层归一化的线性层,以充分利用卷积算子的效率。

6.基准测试


图4:YOLOv12的比较

数据集:所有模型均在MS COCO 2017目标检测基准上进行评估。

YOLOv12 - N的性能:最小的YOLOv12 - N模型实现了40.6%的更高平均精度均值(mAP),相比之下,YOLOv10 - N为38.5%,YOLOv11 - N为39.4%,同时保持了相似的推理延迟。

YOLOv12 - S与RT - DETR的比较:YOLOv12 - S模型也优于RT - DETR模型。值得注意的是,它的运行速度比RT - DETR - R18模型快约42%,同时只使用了RT - DETR - R18模型约36%的计算量和约45%的参数。

每个YOLOv12模型(从N到X)在与YOLOv8、YOLOv9、YOLOv10、YOLOv11等类似大小的模型相比时,在相当或更低的延迟下实现了更好的mAP。这种优势从小型模型到大型模型都存在,证明了YOLOv12改进的可扩展性。

7. 最先进技术比较

例如:对于N 规模的模型,YOLOv12 - N 在平均精度均值(mAP)上分别比 YOLOv6–3.0 - N [32]、 YOLOv8-N [58]、 YOLOv10-N [53] 和 YOLOv11 [28] 高出 3.6%、3.3%、2.1% 和 1.2%,同时保持相似甚至更少的计算量和参数,并实现了1.64 毫秒/图像的快速延迟速度

  • 对于S 规模的模型,YOLOv12 - S 具有 21.4G 浮点运算量(FLOPs)和 9.3M 参数,在 2.61 毫秒/图像的延迟下实现了 48.0 mAP。它在平均精度均值(mAP)上分别比 YOLOv8-S [24]、YOLOv9-S [58]、YOLOv10-S [53] 和 YOLOv11 - S [28] 高出 3.0%、1.2%、1.7% 和 1.1%,同时保持相似或更少的计算量。
  • 对于M 规模的模型,YOLOv12 - M 具有 67.5G 浮点运算量(FLOPs)和 20.2M 参数,实现了 52.5 mAP 的性能和 4.86 毫秒/图像的速度。
  • 对于L 规模的模型,YOLOv12 - L 甚至比 YOLOv10-L [53] 少 31.4G 浮点运算量(FLOPs)。
  • 对于X 规模的模型,YOLOv12 - X 在平均精度均值(mAP)上分别比 YOLOv10-X [53] / YOLOv11 - X [28] 高出 0.8% 和 0.6%,同时具有相当的速度、浮点运算量(FLOPs)和参数。

8. 推理速度比较

YOLOv12 的推理速度比 YOLOv9 ** 显著提高**,同时与 YOLOv10 和 YOLOv11 相当

总结

YOLOv12目前的一个局限性是它依赖于快速注意力(FlashAttention)来实现最佳速度。快速注意力仅在相对较新的GPU架构(NVIDIA的图灵、安培、阿达·洛芙莱斯或霍珀系列)上得到支持,例如特斯拉T4、RTX 20/30/40系列、A100、H100等。

这意味着缺乏这些架构的旧GPU无法充分受益于YOLOv12的优化注意力实现。使用不支持的硬件的用户将不得不回退到标准注意力内核,从而失去一些速度优势。

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

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

相关文章

2022年全国职业院校技能大赛网络系统管理赛项模块A:网络构建(样题6)-网络部分解析-附详细代码

目录 附录1:拓扑图 附录2:地址规划表 1.SW1 2.SW2 3.SW3 4.SW4 5.VSU 6.SW7 7.R1 8.R2 9.R3 10.AC1 11.AC2 12.EG1 13.EG2 附录1:拓扑图 附录2:地址规划表

C#实现本地Deepseek模型及其他模型的对话

前言 1、C#实现本地AI聊天功能 WPFOllamaSharpe实现本地聊天功能,可以选择使用Deepseek 及其他模型。 2、此程序默认你已经安装好了Ollama。 在运行前需要线安装好Ollama,如何安装请自行搜索 Ollama下载地址: https://ollama.org.cn Ollama模型下载地址&#xf…

突破“第一崇拜“:五维心理重构之路

一、视频介绍 在这个崇尚"第一"的时代,我们如何找到自己的独特价值?本视频将带您踏上五维心理重构之旅,从诗意人生的角度探讨如何突破"圣人之下皆蝼蚁"的局限。我们将穿越人生的不同阶段,从青春的意气风发到…

SpringWeb

目录 一.SpringWeb 1.SpringWeb 概述 2.SpringWEB 特点 3.SpringWeb 运行流程 4.SpringWEB 组件 二.搭建SpringWeb 1.在pom.xml中导包 2.配置DispatcherServlet 3.开启SpringWEB注解 4.测试 三.接收请求 1.定义地址、请求方式 2.获取请求数据 1)使用r…

性能测试的方案编写与执行步骤

性能测试计划书 在测试过程中我们如果编写一份性能测试计划书,需要一下几个背景板块及要点 性能测试的流程: 确认需求(确认正确的需求) —>编写测试方案(准备怎么动手)测试环节—>(尽量与生成配置一…

[AI]从零开始的树莓派运行DeepSeek模型教程

一、前言 在前面的教程中,教了大家如何在windows中使用llama.cpp来运行DeepSeek模型。根据前面的教程中,我们也了解到了,我们只需要编译好llama.cpp就可以运行DeepSeek以及类似的LLM模型。那么本次教程就来教大家如何使用树莓派来运行大模型。…

03_pyqt5 + vlc 实现视频播放器

1.功能需求如图 按钮: 播放/暂停, 前进/后退, 视频上一个/下一个, 打开视频进度条: 视频进度条显示, 进度条拖拽, 音量控制按键控制: 1,2,3,4缩放画面大小, 2.方案选择 开发语言: python UI界面: pyqt5 qt_designed 设计ui布局 视频编码: python-vlc 方案说明: 视频解码可…

Linux——高级IO(select后续poll,epoll)

目录 一、poll函数 1.函数原型 2.参数说明 3.struct pollfd 结构体 4.返回值 5.使用步骤 6.与 select 的对比 7.适用场景 8.缺点 9.总结 二、epoll函数 1.核心思想 2.核心函数 1. epoll_create - 创建 epoll 实例 2. epoll_ctl - 管理 epoll 事件表 3. epoll_w…

基于 ‌MySQL 数据库‌对三级视图(用户视图、DBA视图、内部视图)的详细解释

基于 ‌MySQL 数据库‌对三级视图(用户视图、DBA视图、内部视图)的详细解释,结合理论与实际操作说明: 一、三级视图核心概念 数据库的三级视图是 ANSI/SPARC 体系结构的核心思想,MySQL 的实现逻辑如下: …

突破性能极限:DeepSeek开源FlashMLA解码内核技术解析

引言:大模型时代的推理加速革命 在生成式AI大行其道的今天,如何提升大语言模型的推理效率已成为行业焦点。DeepSeek团队最新开源的FlashMLA项目凭借其惊人的性能表现引发关注——在H800 GPU上实现580 TFLOPS计算性能,这正是大模型推理优化的…

ROS ur10机械臂添加140夹爪全流程记录

ROS ur10机械臂添加140夹爪 系统版本:Ubuntu20.04 Ros版本:noetic Moveit版本:moveit-noetic 参考博客: ur3robotiq ft sensorrobotiq 2f 140配置rviz仿真环境_有末端力传感器的仿真环境-CSDN博客 UR5机械臂仿真实例&#xf…

Redis速成(1)VMware虚拟机安装Redis+Session验证登录注册+MybatisPlus

课程:黑马程序员Redis入门到实战教程,深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目_哔哩哔哩_bilibili Mybatis与MybatisPlus: 参考springboot,需要额外写mapper.class,在方法上Select等 在ssm中,…

thinkphp下的Job队列处理

需要think-queue扩展,没有的请composer安装一下 "require": {"php": ">7.2.5","topthink/framework": "^6.1","topthink/think-orm": "^2.0","topthink/think-multi-app": &qu…

2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(五)

2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(五) 第一部分:网络平台搭建与设备安全防护任务书第二部分:网络安全事件响应、数字取证调查、应用程序安全任务书任务 1:应急响应&…

JSON Schema 入门指南:如何定义和验证 JSON 数据结构

文章目录 一、引言二、什么是 JSON Schema?三、JSON Schema 的基本结构3.1 基本关键字3.2 对象属性3.3 数组元素3.4 字符串约束3.5 数值约束 四、示例:定义一个简单的 JSON Schema五、使用 JSON Schema 进行验证六、实战效果6.1 如何使用 七、总结 一、引…

VMware虚拟机Mac版安装Win10系统

介绍 Windows 10是由美国微软公司开发的应用于计算机和平板电脑的操作系统,于2015年7月29日发布正式版。系统有生物识别技术、Cortana搜索功能、平板模式、桌面应用、多桌面、开始菜单进化、任务切换器、任务栏的微调、贴靠辅助、通知中心、命令提示符窗口升级、文…

计算机网络:ICMP协议(Internet控制消息协议)介绍

目录 一、简介 二、为什么要有ICMP协议? 三、ICMP协议报文格式 四、ICMP报文的类型 4.1 差错报文 4.2 查询报文 五、ICMP报文的实际案例 5.1 Ping命令 5.2 Traceroute命令 总结 今天和大家聊聊ICMP协议相关的知识,感兴趣的可以一起了解一下! 一、简介 ICMP(Inte…

python读取sqlite温度数据,并画出折线图

需求: 在Windows下请用python画出折线图,x轴是时间,y轴是温度temperature 和体感温度feels_like_temperature 。可以选择县市近1小时,近1天,近1个月的。sqlite文件weather_data.db当前目录下,建表结构如下…

window下kafka安装

kafka下载 下载好,直接解压即可 默认是带有zookeeper(注册中心) 需要先启动zookeeper zookeeper配置 先配置下zookeeper 这个data文件夹是自定建的 随意建在哪里 注意 这里斜杠用和linux一样 启动zookeeper 进入bin/windows目录 启动zookeeper zookeeper-server-start.ba…

开发HarmonyOS NEXT版五子棋游戏实战

大家好,我是 V 哥。首先要公布一个好消息,V 哥原创的《鸿蒙HarmonyOS NEXT 开发之路 卷1:ArkTS 语言篇》图书终于出版了,有正在学习鸿蒙的兄弟可以关注一下,写书真是磨人,耗时半年之久,感概一下…