在分割的研究中,传统卷积神经网络(CNN)存在两大关键问题:一是池化操作虽能降低计算复杂度,却会导致特征图中有效空间信息丢失,尤其太阳暗条这类不规则、精细结构的特征易被削弱;二是传统 CNN 对特征图通道间依赖关系建模不足,各通道特征独立处理,难以充分挖掘通道间关联信息,且现有深度学习模型(如 Mask R-CNN、经典 U-Net)常因参数规模大、计算成本高,难以适配高度集成化的地基与天基观测设备需求。此外,复杂模型在硬件资源受限场景(如 GPU 内存不足)下,训练与推理效率显著下降。为解决这些问题,CSA-ConvBlock(通道自注意力卷积块)被提出,旨在通过优化通道特征权重分配,在强化特征提取能力的同时控制参数规模,为轻量化网络(如 Flat U-Net)提供核心组件,满足太阳暗条分割等天文图像任务对精度与效率的双重需求
1.CSA-ConvBlock原理
CSA-ConvBlock 的核心原理是借助通道自注意力机制,重构特征图通道间的关联关系,动态分配通道权重,同时结合残差连接与归一化操作,实现高效的特征提取。
1.输入层:接收经过预处理的特征图,该特征图通常由单通道的全日面 Hα 图像通过卷积操作扩展为多通道,特征图维度为(通道数 × 高度 × 宽度)。
2.无偏卷积层:包含三个并行的无偏卷积操作(卷积核权重初始化时无偏置),这三个操作分别将输入特征图转换为查询、键和值三种特征图,三种特征图的维度均与输入特征图保持一致,是实现通道自注意力机制的核心转换单元。
3.相似度计算模块:通过广播点积运算,计算查询与键的通道间相似度,生成相似度张量;同时引入归一化因子对相似度张量进行缩放,确保数值稳定性,为后续权重计算提供可靠基础。
4.全局平均池化层:对相似度张量的每个通道进行空间维度上的全局平均池化,将原本包含空间信息的张量压缩为仅包含通道信息的向量,实现空间信息向通道权重的转化。
5. Softmax 激活层:对全局平均池化得到的向量进行 Softmax 归一化处理,生成通道权重,明确各通道的重要性排序,使模型能聚焦于关键通道特征。
6.特征加权层:将 Softmax 层输出的通道权重与值特征图的每个通道进行逐元素乘法运算,对值特征图进行加权重构,强化有效特征信息。
7.残差连接与归一化激活层:先将加权重构后的特征图与输入层的原始特征图进行残差连接,再通过批量归一化层消除内部协变量偏移,最后经过 ReLU 激活函数引入非线性,输出维度与输入特征图一致的优化特征图,该输出可直接作为下一层网络的输入。
2.CSA-ConvBlock习作思路
CSA-ConvBlock在目标检测中的优点
在目标检测任务中,CSA-ConvBlock 能显著提升模型对目标特征的捕捉精度与效率。一方面,其通道自注意力机制可动态评估各通道重要性,针对性强化目标相关特征(如目标边缘、纹理、局部结构)对应的通道权重,同时抑制背景噪声通道干扰,尤其在复杂场景(如目标遮挡、光照变化)下,能有效降低背景误检率,提升目标定位准确性;另一方面,CSA-ConvBlock 仅通过少量无偏卷积、池化与激活操作实现注意力计算,参数增量极小,不会大幅增加模型计算复杂度,适配实时目标检测对速度的需求,即使处理小目标时,也能通过挖掘通道间关联信息,弥补小目标特征不完整的缺陷,提升小目标检测召回率,同时避免传统复杂注意力机制因大量矩阵运算导致的硬件资源占用过高问题。
CSA-ConvBlock在图像分割中的优点
在图像分割任务中,CSA-ConvBlock 对精细分割结果的提升作用尤为突出。首先,分割任务对像素级特征准确性要求极高,CSA-ConvBlock 通过全局通道权重分配,可充分挖掘不同通道间的互补信息(如部分通道聚焦目标轮廓、部分通道聚焦目标内部纹理),重构后的特征图能更全面地表征目标的像素级特征,减少因特征缺失导致的分割边缘模糊、孔洞等问题;其次,分割任务中池化操作易导致空间信息丢失,而 CSA-ConvBlock 的残差连接设计可保留原始输入的空间细节,结合注意力加权后的特征,有效缓解池化带来的信息损失,尤其在处理不规则、精细结构目标(如太阳暗条、医学影像中的器官边缘)时,能提升分割结果的完整性与精细度;此外,CSA-ConvBlock 的轻量化特性使其可嵌入分割网络的多个层级,从低维到高维特征均能进行通道优化,避免传统分割模型因层级加深导致的特征冗余问题,在保证分割精度的同时,降低模型内存占用与推理时间,适配资源受限场景下的分割需求。
3. YOLO与CSA-ConvBlock的结合
将 CSA-ConvBlock 融入 YOLO 模型,一方面,YOLO 通过多尺度特征融合检测不同大小目标,CSA-ConvBlock 能在特征提取阶段强化目标关键通道特征(如小目标的局部细节、大目标的结构特征),减少背景噪声干扰,尤其在复杂场景下,可显著提升小目标与遮挡目标的检测召回率及定位精度;另一方面,CSA-ConvBlock 参数规模小,不会大幅增加 YOLO 的计算负担,能在保证 YOLO 实时检测核心优势的前提下优化性能,即使在嵌入式设备等硬件资源受限场景,也能实现高效的目标检测推理。
4.CSA-ConvBlock代码部分
YOLO11|YOLO12|改进| 深度反向卷积Converse2D,通过非迭代的正则化优化实现特征精确恢复,增强特征上采样,减少特征丢失_哔哩哔哩_bilibili
YOLO12模型改进方法,快速发论文,总有适合你的改进,还不改进上车_哔哩哔哩_bilibili
代码获取:YOLOv8_improve/YOLOV12.md at master · tgf123/YOLOv8_improve · GitHub
5. CSA-ConvBlock引入到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_CSA_ConBlock.yaml")\# .load(r'E:\Part_time_job_orders\YOLO\YOLOv11\yolo11n.pt') # build from YAML and transfer weightsresults = 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)