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

YOLO11改进-Backbone-引入TransXNet替换YOLO backbone 学习全局和局部动态信息,提高检测精度

Vision Transformer 的缺陷:Vision Transformer(ViT)运用多头自注意力机制在计算机视觉领域取得进展,但它缺乏卷积神经网络(CNNs)所具有的归纳偏差,导致泛化能力相对较弱。像 Swin Transformer 虽引入移位窗口自注意力融入归纳偏差并降低计算成本,可窗口化注意力的局部特性又限制了感受野。

CNN - Transformer 混合网络的困境:为解决 ViT 的问题,诸多研究构建了 CNN - Transformer 混合网络,将卷积和自注意力集成到令牌混合器中。然而,标准卷积存在局限性:一方面,卷积核是静态的,与能动态计算注意力矩阵的自注意力不同,这导致两者在表示能力上存在差异削弱了模型的建模能力;另一方面,在深度堆叠混合令牌混合器时,卷积的静态性质阻碍了其对自注意力生成特征的有效融合与利用。

大感受野和动态卷积的需求:网络需要大感受野和归纳偏差来捕捉丰富上下文信息。通过有效感受野(ERF)分析发现,在网络各阶段使用全局自注意力能扩大模型 ERF,而且将动态卷积与全局自注意力结合可进一步扩大感受野。所以,设计一种能与自注意力深度集成的输入相关动态卷积机制十分必要

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

改进后的

1. TransXNet介绍 

        D - Mixer 动态特征聚合:D - Mixer 将输入特征图沿通道维度均分为两个子特征图,分别由 OSRA 和 IDConv 处理,OSRA 用于捕捉全局信息,IDConv 用于提取局部特征,两者输出拼接后经 STE 聚合,这种方式使模型能根据输入动态聚合全局和局部信息,增强表示能力。

        IDConv 动态卷积:IDConv 通过自适应平均池化聚合空间上下文,经卷积生成注意力图,再经 softmax 等操作生成与输入相关的卷积核。与其他动态卷积相比,它能为每个注意力组生成空间变化的注意力图,更有效地编码局部特征,且计算开销更低。

         MS - FFN 多尺度信息融合:MS - FFN 使用四个不同尺度的并行深度卷积处理不同通道,可捕捉多尺度信息,相比普通 FFN 能更好地利用丰富通道表示,提升模型对不同尺度物体的特征提取能力。

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

         整体分层架构:TransXNet 采用分层架构,包含四个阶段。每个阶段都有一个补丁嵌入层,用于将图像转换为特征图,后续连接多个由 DPE、D - Mixer 和 MS - FFN 组成的块,实现特征的逐步提取和融合。

 基本块组成

         动态位置编码(DPE)层:通过残差 7×7 深度卷积实现,为输入特征添加位置信息,公式为DPE(X)=DWConv7×7​(X)+X。

        双动态令牌混合器(D - Mixer):是核心组件,由 OSRA、IDConv 和 STE 构成,实现全局和局部信息的动态融合。

       多尺度前馈网络(MS - FFN):采用四个不同尺度(1×1、3×3、5×3、7×7)的并行深度卷积,对特征进行多尺度处理,有效探索多尺度信息 。

2. YOLOv11与TransXNet的结合           

        使用 TransXNet 替换YOLO11的 backbone,能凭借其双动态令牌混合器,同时学习全局和局部动态信息,增强特征表示能力,进而提升目标检测精度;而且它计算成本较低,在保持性能的同时可减少计算资源消耗,提升检测效率。

3. TransXNet代码部分

视频讲解:

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

用一篇论文教您如何使用YOLOv11改进模块写一篇1、2区论文_哔哩哔哩_bilibili

YOLOv11模型改进讲解,教您如何替换原有的YOLO11 backbone提升精度_哔哩哔哩_bilibili

YOLOv11全部代码,现有一百多种改进机制。

 4. TransXNet引入到YOLOv11中

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

                     

第二:在task.py中导入

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

第三:在YOLOv11\ultralytics\nn\tasks.py中的模型配置部分下面代码

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

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

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

     第五:运行成功

from sympy import falsefrom ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorldif __name__=="__main__":# 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型model = YOLO(r"EE:\bilibili\model\YOLOV8_new\ultralytics-main\ultralytics\cfg\models\11\yolo11_transxnet_t.yaml")\.load(r'E:\Part_time_job_orders\YOLO\YOLOv11\yolo11n.pt')  # build from YAML and transfer weightsresults = 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)
http://www.xdnf.cn/news/105949.html

相关文章:

  • 面试经历(一)雪花算法
  • gem5 笔记01 gem5 基本应用流程
  • 【敏矽微ME32G030系列】介绍、环境搭建、工程测试
  • 2022 年 9 月青少年软编等考 C 语言六级真题解析
  • 基于PaddleOCR对图片中的excel进行识别并转换成word(一)
  • 第50讲:AI+农业金融与风险预测场景实战
  • 【QT】信号与槽中多个按钮(pushbutton)共用一个槽函数的两种实现方式
  • 解决 Spring Boot + MyBatis 项目迁移到 PostgreSQL 后的数据类型不匹配问题
  • 全面解析 classification_report:评估分类模型性能的利器
  • 模型 观测者效应
  • 11、认识redis的sentinel
  • 程序员思维体操:TDD修炼手册
  • [LangGraph教程]LangGraph03——为聊天机器人添加记忆
  • 大模型评估方法与工程实践指南:从指标设计到全链路优化
  • NHANES指标推荐:CTI
  • 熊海CMS Cookie脆弱
  • MySQL数据库精研之旅第十期:打造高效联合查询的实战宝典(一)
  • cJSON
  • 【泊松过程和指数分布】
  • Leetcode刷题记录17——三数之和
  • AIGC的商业化路径:哪些公司正在领跑赛道?
  • 2025.04.23【Treemap】树状图数据可视化指南
  • DasViewer软件显示设置
  • C# AutoResetEvent 详解
  • 2025.04.23【探索工具】| STEMNET:高效数据排序与可视化的新利器
  • windows端远程控制ubuntu运行脚本程序并转发ubuntu端脚本输出的网页
  • VTK-8.2.0源码编译(Cmake+VS2022+Qt5.12.12)
  • 数据预处理:前缀和算法详解
  • 23种设计模式-结构型模式之享元模式(Java版本)
  • Apache Flink 深度解析:流处理引擎的核心原理与生产实践指南