YOLO11改进-模块-引入混合结构模块Mix Structure Block 提高多尺度、小目标

在图像去雾领域,传统的基于卷积神经网络(CNN)和 Transformer 的方法存在局限性。CNN 方法大多存在感受野不足的问题,限制了单个像素在神经网络中的参考范围,部分考虑大感受野的 CNN 方法又忽略了图像的多尺度特性;Transformer 方法虽有全局建模能力和大感受野,但参数数量庞大,训练成本高。同时,以往去雾网络中的注意力机制设计未充分考虑雾气分布的不均匀性,现有方法往往单独设计像素注意力模块和通道注意力模块,不能很好地编码大气光 A 和介质传输图 t (x)。为解决这些问题,提出 Mix Structure Block,将多尺度并行大卷积核模块和增强并行注意力模块相结合,以提升图像去雾效果。

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


改进后的结果

1. 混合结构模块Mix Structure Block介绍

多尺度并行大卷积核模块(MSPLCK):大卷积核具有更大的有效感受野和更高的形状偏差,能通过扩大感受野在学习的潜在域空间中捕获更多结构化信息,帮助单个像素基于大范围周围像素恢复图像并还原物体形状;小卷积核则专注于细节特征,恢复纹理细节。不同大小的卷积核并行工作,可从不同尺度关注图像区域,提取多尺度特征,这些特征在通道维度上连接,再经多层感知器处理,既能融合不同类型特征,又能拟合去雾特征。

增强并行注意力模块(EPA):根据大气散射模型,通道注意力更适合编码全局大气光 A,像素注意力更适合编码介质传输图 t (x)。通过并行简单像素注意力、通道注意力和像素注意力,可同时从原始特征中提取位置相关的局部信息和共享的全局信息,以更好地适应不均匀的雾气分布。这三种注意力机制的结果在通道维度连接后,经多层感知器处理,减少连接特征通道维度至与输入相同,并与原始特征相加,实现对原始特征的优化。

结合图片信息,MixStructureBlock的结构主要包含以下几个关键部分:

1. 多尺度并行大卷积核模块(MSPLCK)

批量归一化(Batch Norm):输入特征图首先经过 Batch Norm 层,对数据进行归一化处理,加速模型训练的收敛速度,增强模型的稳定性。

卷积层:接着进入两个并行的卷积层,分别是 1×1 卷积和 5×5 卷积。1×1 卷积用于调整通道维度,5×5 卷积能获取相对较大范围的局部特征。

深度扩张卷积(DWConv):经过卷积处理后的特征图分别进入三个并行的深度扩张卷积层,即 DWConv7、DWConv13 和 DWConv19,扩张率不同,可获取不同尺度的特征,其中较大的卷积核和扩张率能扩大感受野,捕获更多结构化信息。

特征融合与处理:三个深度扩张卷积层输出的特征图进行拼接(Concat),然后依次经过 1×1 卷积、GELU 激活函数和另一个 1×1 卷积。GELU 激活函数增加模型的非线性表达能力,两次 1×1 卷积进一步调整通道维度并融合特征,最后与输入特征图进行逐元素相加(Entry-Wise Addition),残差连接有助于梯度传播和避免梯度消失。

2. 增强并行注意力模块(EPA)

批量归一化(Batch Norm):MSPLCK 模块的输出先经过 Batch Norm 层,再次对数据进行归一化,使数据分布更稳定。

注意力机制:接着数据被分流到三个并行的注意力模块,分别是简单像素注意力(Simple Pixel Attention)、通道注意力(Channel Attention)和像素注意力(Pixel Attention)。简单像素注意力关注局部像素间关系;通道注意力关注不同通道间的信息交互,编码全局大气光;像素注意力则侧重于捕捉位置相关的局部信息,编码介质传输图。

特征融合与处理 :三个注意力模块的输出进行拼接(Concat),然后经过一个深度扩张卷积 DWConv7,进一步提取特征。之后依次经过 1×1 卷积、GELU 激活函数和另一个 1×1 卷积,调整通道维度并增强非线性表达。最后与该模块的输入特征图进行逐元素相加(Entry-Wise Addition),完成对特征的优化。

2. YOLOv11与 MixStructureBlock 的结合

本文使用MixStructureBlock替换C2PSA模块中的自注意力机制,使用多尺度结构和并行注意力方法增强YOLOv11模型的小目标和多尺度特征提取。

3. MixStructureBlock模块代码部分

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

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

4. 将MixStructureBlock模块 引入到YOLOv11中

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

第二:在task.py中导入

​​​ ​​​​​​​

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

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

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

第五:运行成功

python 复制代码
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_MixStructure.yaml")\
        .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
                          )
相关推荐
꧁执笔小白꧂5 小时前
详细pyenv+venv+pip安装ultralytics
yolo·venv·pyenv·ultralytics
延卿13 小时前
nnDetection:基于 PyTorch 的目标检测框架
人工智能·pytorch·目标检测
前网易架构师-高司机17 小时前
带标注的细胞有丝分裂数据集数据集,识别率95.9%,304张图,支持yolo,coco json,voc xml,文末有模型训练代码
yolo·细胞·显微镜·生物·有丝分裂·显微
动物园猫19 小时前
PCB表面缺陷目标检测数据集:6类别、3,500张图像 | 目标检测
人工智能·目标检测·计算机视觉
前网易架构师-高司机1 天前
带标注的移动通信基站信号塔,可识别塔架和塔身数据集,识别率93.5%,1008张图,支持yolo,coco json,voc xml,文末有模型训练代码
yolo·数据集·通信基站·信号塔·塔架·塔身
AI棒棒牛2 天前
第11讲 | 目标检测任务:边界框、IoU、类别与置信度
人工智能·yolo·目标检测·yolo26
深度研习笔记2 天前
OpenCV工业视觉实战06|ROI区域截取+局部精细化检测,锁定作业区域、屏蔽无效背景,大幅提升YOLO检测准确率
人工智能·opencv·yolo
FriendshipT2 天前
Ultralytics:解读CBLinear模块
人工智能·pytorch·python·深度学习·目标检测
ShallWeL2 天前
Orin 上用 Docker 跑通目标检测功能
人工智能·目标检测·docker·容器
皓悦编程记3 天前
【免费数据集010期】Grape Leaf Diseases 葡萄叶病害检测数据集(4类):面向智慧农业的叶片病害识别基准
yolo·目标检测·视觉检测·数据集·yolo26