YOLO12改进-模块-引入​多维协作注意力MCAM 抗背景干扰,增强多尺度、小目标

        传统卷积神经网络(CNN)通过局部感受野逐层提取特征,但缺乏动态聚焦关键区域的能力。后续提出的注意力机制(如SE、CBAM等)通过通道或空间维度增强特征表达,但仍存在显著缺陷:

        ​维度割裂:多数方法独立处理通道或空间注意力,忽略跨维度关联(例如通道与空间特征的协同作用)。

        ​信息损失:依赖全局平均池化(GAP)压缩特征,导致细节信息丢失,影响细粒度分类。

        ​计算冗余:引入全连接层或复杂模块(如多分支结构),增加参数量和计算成本。

MCA(多维协作注意力)的提出旨在解决上述问题,通过轻量化设计实现通道、高度、宽度三个维度的协同建模,在动态捕捉关键特征的同时保持计算效率。

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

改进后的模型

1. 多维协作注意力MCAM介绍 

      MCA(多维协作注意力)的核心在于打破传统注意力机制对通道与空间维度的割裂式处理,通过多维度协同感知动态轻量化计算,让网络更智能地捕捉特征间的复杂关联。其本质是让模型同时回答三个问题:“哪些特征重要”(通道维度)、“重要特征在垂直方向的位置”(高度维度)、“重要特征在水平方向的位置”(宽度维度),并将三者动态融合。例如,识别一只鸟时,MCA不仅会增强“羽毛纹理”对应的通道,还能在空间上聚焦“头部区域”,且这种多维度判断是相互关联的——羽毛纹理的显著性可能影响头部定位的权重。为实现这一目标,MCA摒弃了传统全连接层等复杂结构,转而通过一维卷积和动态门控机制,在几乎不增加计算量的前提下实现跨维度信息交互。

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

        MCA的整体结构由三个并行的注意力分支(通道、高度、宽度)和一个动态聚合模块组成,每个分支通过维度旋转轻量化计算实现多维度协作,以下是详细描述:

1. 通道分支:通道分支直接处理输入特征图的通道维度。首先,对每个通道同时计算全局平均池化​(提取特征整体强度)和全局标准差池化​(衡量特征分布的离散程度),两种统计量通过可学习权重融合,形成更全面的通道描述。融合后的统计量通过一维卷积​(而非全连接层)生成通道注意力权重,该卷积仅需极少的参数量即可捕捉通道间局部依赖关系。最后,权重与原始特征逐通道相乘,强化重要通道(如与目标类别相关的特征通道)的响应,抑制冗余通道。

2. 高度分支:高度分支的目标是定位垂直方向(图像上下区域)的关键位置。为实现轻量化设计,将输入特征图旋转,使高度维度转换为“伪通道”维度。例如,原始特征维度为“通道×高度×宽度”(如64×224×224),旋转后变为“高度×通道×宽度”(224×64×224),此时每个“伪通道”对应原始图像的一行像素。随后,复用通道分支的流程:对每个“伪通道”计算均值与标准差统计量,融合后通过一维卷积生成高度注意力权重。例如,在行人检测任务中,高度分支可能增强图像中上部(对应人体头部和躯干)的权重。最后将加权后的特征逆旋转回原始维度,完成垂直方向的特征增强。

3. 宽度分支:宽度分支与高度分支对称,关注水平方向(图像左右区域)的重要性。通过旋转操作将宽度维度转换为“伪通道”,例如原始特征变为“宽度×高度×通道”(224×224×64),每个“伪通道”对应原始图像的一列像素。复用通道分支的统计量融合与一维卷积生成宽度注意力权重。例如,在车辆检测中,宽度分支可能强化图像左右两侧(对应车轮位置)的特征响应。逆旋转后恢复原始维度,完成水平方向的特征增强。

4. 动态门控与特征聚合

        ​动态门控:在三个分支的一维卷积中引入轻量级自适应机制。根据输入特征的复杂度(如通过特征方差简单判断),动态选择卷积核大小。例如,复杂场景(如密集的树叶纹理)使用较大的卷积核(如核大小5),增强长程维度交互;简单场景(如纯色背景)则使用较小卷积核(如核大小3),减少计算量。

        特征聚合:将通道、高度、宽度分支的输出特征按元素取平均值,综合三个维度的注意力结果。例如,在鸟类识别中,通道分支增强羽毛纹理,高度分支聚焦头部区域,宽度分支定位翅膀伸展方向,聚合后形成判别性更强的特征表达。

2. YOLOv11与MCAM的结合          

 基于上述的想法,本文将其与A2C2f相结合,通过通道、高度、宽度三向协同建模,动态增强关键特征。同时MCA可显著提升多尺度目标检测精度(如小物体识别)

3. MCAM代码部分

YOLO12模型改进方法,快速发论文,总有适合你的改进,还不改进上车_哔哩哔哩_bilibili

 更多代码:https://github.com/tgf123/YOLOv8_improve/blob/master/YOLOV12.md

通过网盘分享的文件:YOLOv12模块
链接: https://pan.baidu.com/s/1roit42FxOING9kiy24A4Zw 提取码: ek72

YOLO12改进-模块-引入多维协作注意力MCAM 抗背景干扰,增强多尺度、小目标_哔哩哔哩_bilibili

 4. 将MCAM引入到YOLOv12中

第一: 先新建一个v12_changemodel,将下面的核心代码复制到下面这个路径当中,如下图如所示。E:\Part_time_job_orders\YOLO_NEW\YOLOv12\ultralytics\v12_changemodel。

            ​​​​​​ 

第二:在task.py中导入

 ​​​          

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

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

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

     ​​​​​​​ ​​​​​​​​​​​​​​ ​​​​​​​ ​​​​​​​​​​​​​第五:运行代码


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

if __name__=="__main__":

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

    results = model.train(data=r'E:\Part_time_job_orders\YOLO\YOLOv12\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
                          )
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值