YOLO11改进-模块-引入增强层间特征相关性(EFC)模块

        无人机图像目标检测在多领域应用广泛,但小目标测面临诸多挑战。一方面,无人机图像分辨率高、背景噪声大,小目标分辨率低,易受噪声影响,特征信息有限,在卷积神经网络特征提取时易出现特征消失问题。另一方面,传统特征金字塔网络(FPN)的融合方法,如简单拼接或相加操作,无法充分利用多尺度融合优势,不同层特征相关性弱,融合后易产生冗余特征,且深层大卷积核会导致语义偏差,不利于小目标检测。因此,需要一种新的方法来改进特征融合,提升小目标检测性能。

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

改进后的模型

1. 增强层间特征相关性(EFC)模块介绍          

        EFC 模块通过增强层间特征相关性来优化特征融合。其核心在于利用分组特征聚焦单元(GFF)和多级特征重建模块(MFR)。GFF 通过空间集中、特征相关和空间映射归一化操作,聚焦不同特征的上下文信息,增强各层特征相关性;MFR 则对不同层特征中的强弱信息进行分离、定向融合、特征变换和层级融合,减少冗余特征融合,保留小目标信息,降低深层网络中小目标信息的不可逆损失。

        分组特征聚焦单元(GFF):先对低分辨率特征上采样并与高分辨率特征相加得到粗略特征,再用 1×1 卷积和 sigmoid 激活生成空间聚合权重,得到含空间信息的特征。然后将该特征按通道分组,组内进行特征交互生成注意力掩码,以增强相邻特征相关性,最后将分组特征拼接并归一化,得到相关性强且空间信息丰富的特征。

        多级特征重建模块(MFR):先对不同阶段单级特征处理得到特征\(P_{c}\) ,通过平均池化和 sigmoid 函数生成特征权重阈值,再将单级特征经批归一化和 sigmoid 激活得到权重信息,与阈值比较分离出强弱特征。强特征融合生成丰富特征,弱特征融合生成弱特征,分别进行特征变换,最后将变换后的强弱特征合并,得到包含详细信息和跨通道信息交换的特征。

2. YOLOv11与增强层间特征相关性(EFC)模块的结合       

        本文使用增强层间特征相关性(EFC)模块替换原有的YOLOv11模型的特征拼接方法,增强YOLO目标检测的小目标能力。       

3. EFC代码部分

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

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

YOLOv11模型改进讲解,教您如何根据自己的数据集选择最优的模块提升精度_哔哩哔哩_bilibili

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

 4. 将EFC引入到YOLOv11中

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

  

第二:在task.py中导入

  

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

 ​​​​​​​ 

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

    

     第五:运行成功

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

if __name__=="__main__":

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

    results = model.train(data=r'D:\model\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
                          )

### 融合算法 GFF 的实现方法 #### 1. GFF 的核心概念 GFF(Gate-controlled Feature Fusion)是一种门控全融合语义分割技术,旨在通过多级特征融合和门控机制来增强模型性能。该方法受到上下文建模、多级特征融合以及门控机制的启发[^1]。 #### 2. GFF 的具体结构 GFF 模块通常由两部分组成: - **1×1 卷积**:用于自适应地融合来自多个次的特征向量。这一过程能够减少通道冗余并提升计算效率。 - **3×3 卷积**:进一步提取经过初步融合后的特征,并将其传递到后续网络中以完成全局残差学习 (Global Residual Learning, GRL)[^3]。 以下是基于 PyTorch 的简单代码示例: ```python import torch.nn as nn class GFFModule(nn.Module): def __init__(self, in_channels, out_channels): super(GFFModule, self).__init__() # 自适应特征融合阶段 self.conv_1x1 = nn.Conv2d(in_channels=in_channels, out_channels=out_channels, kernel_size=1) # 进一步特征提取阶段 self.conv_3x3 = nn.Conv2d(in_channels=out_channels, out_channels=out_channels, kernel_size=3, padding=1) def forward(self, x): fused_features = self.conv_1x1(x) # 特征融合 refined_features = self.conv_3x3(fused_features) # 提取更深特征 return refined_features ``` 此代码实现了基础版本的 GFF 模块,其中 `in_channels` 和 `out_channels` 是输入与输出特征图的通道数。 #### 3. 基于导向滤波的图像融合扩展 除了上述卷积操作外,另一种形式的 GFF 可能涉及导向滤波器的应用。这种方法的核心在于利用不同类型的滤波器获取互补的信息流[^2]。例如,在 MATLAB 中可以这样处理两张图片的数据预处理部分: ```matlab % 图像读入与转换为双精度浮点型数据 im1 = im2double(imread('image1.jpg')); im2 = im2double(imread('image2.jpg')); % 导向滤波或其他特定滤波逻辑... filtered_im1 = guidedFilter(im1, im1, 5, 0.01); % 使用自身作为引导图 filtered_im2 = guidedFilter(im2, im2, 5, 0.01); % 合并过滤后的结果 fused_image = max(filtered_im1, filtered_im2); imshow(fused_image); ``` 这段代码展示了如何使用 MATLAB 对原始图像应用导向滤波器,并最终生成一张融合后的图像。 #### 4. 结论 无论是采用深度学习框架中的卷积神经网络还是传统信号处理手段下的滤波方式,GFF 都体现了强大的跨尺度信息整合能力。它不仅适用于语义分割领域,还可能被推广至其他计算机视觉任务之中[^1][^3]。 ---
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值