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

YOLO11改进-模块-引入双分支特征提取(Twin-Branch Feature Extraction,TBFE)解决小目标问题、遮挡

        高光谱图像(HSI)分类旨在将每个像素准确分类,早期研究多聚焦于光谱特征,采用经典机器学习技术,但这些方法对 HSI 光谱特性分析不全面,且未充分利用空间域像素间特征相关性。随着深度学习发展,多种基于深度学习的方法被提出,如基于卷积神经网络(CNNs)和 Transformer 的方法。然而,现有方法在有效联合利用空间 - 光谱信息以及在传播过程中跨层保存信息方面仍面临挑战。CNNs 在分析空间特征方面有效,但难以充分利用 HSI 内在的序列光谱信息;Transformer 虽擅长识别空间和光谱数据间长程依赖关系,但在从卷积获得的浅层特征中提取多维特征时存在困难,可能导致特征提取不足。因此,需要一种新的模块来更好地提取 HSI 的空间和光谱特征。

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

改进后的模型

1. 双分支特征提取模块TBFE介绍 

       TBFE 模块的设计基于 CNN 强大的局部特征提取能力。通过并行使用 3D 和 2D 卷积,分别从光谱和空间维度对 HSI 数据进行特征提取,旨在在特征提取早期无缝集成光谱和空间信息。利用低输出通道的逐点卷积层调整 HSI 的通道维度,减少后续层的输入通道数,降低计算复杂度的同时提取光谱信息。3D 卷积结合扩展和挤压机制,增强对光谱特征的捕获能力;2D 卷积用于提取光谱 - 空间特征,两者结合可充分发挥各自优势,提升模型对光谱 - 空间特征的表示能力。

从提供的图片来看,极性感知注意力模块主要包含以下几个部分:

逐点卷积层:TBFE 模块以特定大小的训练样本补丁为输入。起始的逐点卷积层采用1x1卷积核,在不改变特征图空间尺寸的前提下,调整通道维度。这不仅降低后续层输入通道数,减少计算量,还能初步提取光谱信息。

3D 卷积分支:经逐点卷积的特征图进入 3D 卷积分支。先扩展维度以适配 3D 卷积,再使用1x1x3卷积核进行卷积,并通过填充保证输出维度不变。之后经挤压操作恢复到三维空间,得到专注光谱特征的 3D 特征图。

2D 卷积分支:与 3D 卷积分支并行的 2D 卷积分支,以相同的逐点卷积后特征图为输入。利用3x3卷积核捕捉光谱 - 空间特征,卷积前进行填充以保持特征图尺寸。后续集成激活函数和归一化层,增强模型学习能力并稳定训练。

融合与后续处理:3D 和 2D 卷积分支得到的特征图在通道维度拼接,融合光谱与空间特征优势。模块末尾添加激活函数和归一化层提升泛化能力,再堆叠两个 2D 卷积层,进一步优化特征提取效果,为后续分类任务提供更优质特征 。

2. YOLOv11与TBFE的结合          

 本文使用极性感知注意力模块替换C3K2模块中的普通卷积,增强YOLOv11模型空间特征,解决小目标、遮挡问题。

3. TBFE代码部分

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

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

 4. 将TBFE引入到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_TBFE.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
                          )

相关文章:

  • 探寻人工智能的领航之光
  • ubuntu20.04安装docker
  • chrome控制台报错就会进入debugger模式怎么取消
  • Solidity study
  • 编写一个程序,计算并输出1到100的和(Python版)
  • 7种内外网数据交换方案全解析 哪种安全、高效、合规?
  • C语言基本输入输出学习笔记
  • React + TypeScript 全栈开发最佳实践
  • 网络基础知识-2
  • spring中手写注解开发(创建对象篇)
  • Jenkins重启后Maven的Project加载失败
  • docker安装etcd:docker离线安装etcd、docker在线安装etcd、etcd镜像下载、etcd配置详解、etcd常用命令、安装常见问题总结
  • ViceVersa Pro: 2. 可靠的磁盘、服务器镜像及连续实时的服务器复制
  • 工具方法 - 合规性矩阵
  • BMS应用软件开发 — 13 Modbus协议详解
  • 机器学习中的嵌入(Embedding)学习笔记
  • 多模态人物视频驱动技术回顾与业务应用
  • 《迈向认知智能新高度:深度融合机器学习与知识图谱技术》
  • 一文读懂什么是K8s Admission Controller
  • C++ | 高级教程 | 命名空间
  • 教你用模板做网站/北京seo包年
  • 跨境独立站建站公司/360搜索推广官网
  • 黑龙江省住房和建设厅网站首页/艾滋病阻断药
  • 企业简介 网站建设/经典软文案例200字
  • 哪些网站可以做易拉宝/免费制作网站平台
  • 四川省建设厅网站打不开/百度搜索引擎首页