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

YOLO11改进-模块-引入多尺度小波池化变压器MWPT 通过结合小波变换、多尺度池化以及门控机制等技术解决多尺度、小目标、边缘模糊等问题

        手势识别在人机交互等领域应用广泛,但面临手部姿态多变、环境因素干扰等挑战。深度学习发展促使基于注意力的模型兴起,Transformer 在自然语言处理和计算机视觉诸多任务表现出色,也被用于手势识别。不过,传统 Transformer 处理视觉数据时,存在计算复杂度高(二次注意力机制计算复杂度达O(n2) )、空间复杂度高以及特征图维度处理不够灵活等问题。在这样的研究背景下,为了实现高效准确的动态手势识别,本文提出了一种全新的 Multiscale Wavelet Pooling Transformer(MWPT)模型,并将其应用于 GestFormer 架构中。该模型旨在克服传统 Transformer 的缺陷,通过引入多尺度小波池化注意力机制和门控网络,在减少计算成本的同时,提升模型对动态手势的识别性能,为手势识别领域的发展提供新的思路和方法。

上面是原模型,下面是改进模型

 改进后的模型

1. 多尺度小波池化变压器MWPT介绍 

       MWPT 模型的理论基础融合了 PoolFormer 的高效令牌混合机制、小波变换的特性、多尺度池化策略以及门控网络原理。它以 PoolFormer 为核心,用基于池化的令牌混合替代传统 Transformer 中计算复杂的注意力机制,降低模型复杂度。同时,引入多尺度小波池化注意力(MWPA)机制,借助小波变换将输入特征分解为不同频率的子带,获取多尺度信息,再经多尺度池化聚合这些信息,增强模型对不同尺度特征的捕捉能力。此外,门控深度可分离前馈网络(GDFN)通过门控机制和深度可分离卷积,对特征进行筛选和变换,使模型能够聚焦于关键信息,有效提升动态手势识别的性能

 

从提供的图片来看,MWPT模块主要包含以下几个部分:

        多尺度小波池化注意力(MWPA):MWPA 是 MWPT 中的关键创新组件。它先对输入特征进行小波变换,将输入特征 F 分解为 4 个子空间,即近似分量(LL)和水平(LH)、垂直(HL)、对角(HH)三个方向的细节分量。这些系数是小波变换后分解出的正弦波的幅度。之后,利用深度可分离卷积对这些系数分别进行增强处理,以突出重要特征。为了有效提取多尺度信息,MWPA 采用多尺度池化(MSP)机制。具体来说,使用 3 种不同大小的滤波器(3×3、5×5、7×7)对经过小波系数处理(WCP)块的输出特征进行池化操作。这 3 个不同尺度的池化层能够捕捉到不同大小和分辨率的特征信息,例如,较小的 3×3 滤波器可以关注到局部的细节特征,而较大的 7×7 滤波器则更擅长捕捉整体的结构特征。最后,将这 3 个池化层的输出进行平均,得到一个综合了多尺度信息的增强特征,作为 MWPA 块的最终输出。

        门控深度可分离前馈网络(GDFN):GDFN 主要用于对 MWPA 输出的特征进行进一步变换和筛选,以控制信息的流动。它基于前馈网络(FFN)进行了两项重要改进,即引入门控机制和深度可分离卷积。在结构上,GDFN 通过深度可分离卷积对输入特征进行线性变换,同时对两个并行的特征进行元素相乘操作,其中一个特征经过 GELU 激活函数处理。其计算公式为P′=Wp0​Gating(P)+P 、Gating(P)=ϕ(Wd1​Wp1​(P))⊙Wd2​Wp2​(P)。这种设计使得 GDFN 能够有选择地将重要特征和精细信息传递到 Transformer 块的后续阶段,让模型能够更加专注于图像中关键的细节信息,从而提升整体性能。

2. YOLOv11与MWPT的结合          

 本文使用MWPT模块替换C3K2模块中的普通卷积,在复杂场景目标检测中,二者分别提取动态变化与空间位置等特征,融合后提升检测精度,还能强化对不同尺度手势的感知,提高检测稳定性

3. MWPT代码部分

YOLOv8_improve/YOLOv11.md at master · tgf123/YOLOv8_improve · GitHub

视频讲解:YOLOv11模型改进讲解,教您如何修改YOLOv11_哔哩哔哩_bilibili

YOLOv11全部代码,现有几十种改进机制。

 4. 将MWPT引入到YOLOv11中

第一: 将下面的核心代码复制到D:\model\yolov11\ultralytics\change_model路径下,如下图所示。

     ​​​​​​​      

第二:在task.py中导入

 ​​​     ​​​​​​​   

第三:在task.py中的模型配置部分下面代码

 ​​​​​​​ ​​​​​​​ ​​​​​​​​​​​​​​   

第四:将模型配置文件复制到YOLOV11.YAMY文件中

     ​​​​​​​ ​​​​​​​​​​​​​​      

     第五:运行成功

from sympy import false

from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld

if __name__=="__main__":

    # 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型
    model = YOLO(r"E:\Part_time_job_orders\YOLO\YOLOv11\ultralytics\cfg\models\11\yolo11_PHA.yamy")\
        .load(r'E:\Part_time_job_orders\YOLO\YOLOv11\yolo11n.pt')  # build from YAML and transfer weights

    results = model.train(data=r'E:\Part_time_job_orders\YOLO\YOLOv11\ultralytics\cfg\datasets\VOC_my.yaml',
                          epochs=300,
                          imgsz=640,
                          batch=64,
                          # cache = False,
                          # single_cls = False,  # 是否是单类别检测
                          # workers = 0,
                          # resume=r'D:/model/yolov8/runs/detect/train/weights/last.pt',
                          amp = True
                          )

相关文章:

  • 【GNN】第二章:图数据
  • 【电路笔记 TMS320C6***DSP】外部存储器接口 A EMIFA向FPGA(作为异步存储器)写入数据的示例
  • Python学习(十四)pandas库入门手册
  • 自学Java-JavaSE基础加强(File、IO流)
  • 市场趋势解析与交易策略优化
  • C# Unity 面向对象补全计划 之 [反射]自动处理带有自定义[特性]的类
  • 对celery的,路径,任务路径问题。
  • QDBus:Qt对DBus的封装支持
  • Springboot集成dubbo完整过程(三)
  • gitbash忽略未追踪文件的解决方式
  • 四阶龙格-库塔(Runge-Kutta)算法详解
  • STM32Cubemx配置E22-xxxT22D lora模块实现定点传输
  • 数据库事务的 ACID,通过MVCC能做什么
  • qt将文件压缩成zip包
  • 【软件系统架构】系列三:数据库系统之三
  • Qt:day4
  • DeepSeek本机部署(基于Ollama和Docker管理)
  • 第六十:跨组件通信-依赖注入(父传递给其他组件)
  • C# | 委托 | 事件 | 异步
  • Varjo XR-4 混合现实驾驶仿真解决方案
  • 用java做的游戏下载网站有哪些/如何设计一个网页
  • 媒体查询做响应式网站有哪些/恢复2345网址导航
  • 在网站后台做网页/网络运营
  • 衡水做网站改版/微信小程序怎么做
  • 导航网站的广告怎么做的/seo网络优化公司
  • 河池市住房和城乡建设厅网站/seo视频教程百度云