YOLO12 改进、魔改| 通道与空间注意力模块CASAB,筛选关键特征、抑制冗余信息,提升复杂场景中的检测能力

CASAB模块赋能YOLO12检测

        在计算机视觉领域,特征提取的有效性直接决定模型性能,但传统特征提取方法面临显著局限。CNN 模型受局部感受野约束,难以在通道层面区分特征重要性,也无法精准锁定空间关键区域,导致特征冗余与关键信息流失;Transformer 虽能捕捉长程依赖,却在局部特征建模上存在短板,且缺乏对通道和空间特征的协同优化能力。随着复杂场景任务增多,多尺度目标、遮挡干扰、边界模糊等问题加剧了特征提取的难度,单一维度的注意力机制已无法兼顾通道筛选与空间定位的双重需求,难以输出高效精准的特征表达。为突破这一技术瓶颈,CASAB 模块被设计出来,通过双维度注意力协同的创新思路,解决特征优化不全面的核心问题。

原模型
改进后的

1.CASAB原理   

        CASAB 的核心原理是基于 “通道筛选 + 空间聚焦” 的双维度注意力协同机制。通道层面,通过全局平均池化获取特征整体分布信息,结合全局最大池化和平均池化捕捉关键激活信号,两种池化结果融合后经全连接层与非线性激活函数处理,生成通道注意力权重,实现对有用特征通道的强化和冗余通道的抑制;空间层面,采用均值、最大、最小、求和四种池化方式,全面捕获空间特征的存在、强度、薄弱响应等多维信息,经深度卷积与激活函数生成空间注意力图,精准定位有价值的空间区域。最终通过元素相加将两维度注意力输出融合,实现对输入特征的双重优化,提升特征表达的有效性。

        CASAB 的结构呈模块化串联设计,主要包含四个核心部分。首先是特征预处理单元,对输入特征图进行初步精炼,为后续注意力计算奠定基础;其次是通道注意力模块(CAM),由 GAP、GMP 池化层、全连接层(FC)、Swish 激活函数和 Sigmoid 激活函数组成,负责生成通道注意力权重;再者是空间注意力模块(SAM),涵盖多类型池化层、7x7 深度卷积层、Swish 激活函数和 1x1 卷积层,完成空间注意力图的构建;最后是特征融合单元,通过元素 - wise 加法运算,将 CAM 和 SAM 的输出进行融合,输出优化后的特征图。

2.CASAB习作思路

(一)目标检测场景

        在目标检测任务中,CASAB 通过通道注意力机制,能自适应筛选出与目标识别高度相关的特征通道,有效过滤背景噪声和无关特征带来的干扰,提升特征的辨识度;同时,空间注意力机制可快速聚焦图像中潜在的目标区域,提升目标定位的精准度。这种双维度协同优化的特性,使其能很好地适配多尺度目标检测场景,无论是大目标还是小目标,都能得到针对性的特征强化,进而提升检测任务的召回率和精确率。

(二)图像分割场景

        在分割任务中,CASAB 的通道注意力能够精准强化与目标边界、内部细节相关的特征通道,为精准分割提供有力支撑;空间注意力则能精准捕捉目标的边缘轮廓和内部结构信息,有效缓解边界模糊、区域混淆等问题。两种注意力机制的融合,不仅能减少背景区域的特征干扰,还能自适应适配不同形态、不同尺度的分割目标,让模型生成的分割结果更细腻、边界更清晰、区域划分更准确。

3. YOLO与CASAB的结合     

         将 CASAB 融入 YOLO 模型,可借助其双维度注意力机制,增强模型对小目标、遮挡目标的特征提取能力,有效改善这类目标检测精度不足的问题;同时,CASAB 能筛选关键特征、抑制冗余信息,在提升检测性能的同时降低无效计算,助力 YOLO 模型在保持实时性优势的前提下,进一步提升检测的精准度和鲁棒性。

4.CASAB代码部分

YOLO11|YOLO12|改进| 通道与空间注意力模块CASAB ,通过双维度注意力机制自适应强化关键特征、抑制冗余信息,提升模型对重要特征的捕捉与利用能力_哔哩哔哩_bilibili

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

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

 代码获取:YOLOv8_improve/YOLOV12.md at master · tgf123/YOLOv8_improve · GitHub

5. CASAB引入到YOLOv12中


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

          

第二:在task.py中导入

 ​​​                          

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

                          ​​​​​​​    

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

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

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

from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld
import torch
if __name__=="__main__":



    # 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型
    model = YOLO("/home/tgf/tgf/yolo/model/YOLO12_All/ultralytics/cfg/models/12/yolo12_CASAB.yaml")\
        # .load(r'E:\Part_time_job_orders\YOLO\YOLOv11\yolo11n.pt')  # build from YAML and transfer weights

    results = model.train(data="/home/shengtuo/tangfan/YOLO11/ultralytics/cfg/datasets/VOC_my.yaml",
                          epochs=300,
                          imgsz=640,
                          batch=4,
                          # cache = False,
                          # single_cls = False,  # 是否是单类别检测
                          # workers = 0,
                          # resume=r'D:/model/yolov8/runs/detect/train/weights/last.pt',
                          amp = True
                          )
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值