【YOLOv8改进】CPCA(Channel prior convolutional attention)中的通道注意力,增强特征表征能力 (论文笔记+引入代码)

简介: 该专栏聚焦YOLO目标检测的创新改进与实战,介绍了一种针对医学图像分割的通道优先卷积注意力(CPCA)方法。CPCA结合通道和空间注意力,通过多尺度深度卷积提升性能。提出的CPCANet网络在有限计算资源下,于多个数据集上展现优越分割效果。代码已开源。了解更多详情,请访问提供的专栏链接。

YOLO目标检测创新改进与实战案例专栏

专栏目录: YOLO有效改进系列及项目实战目录 包含卷积,主干 注意力,检测头等创新机制 以及 各种目标检测分割项目实战案例

专栏链接: YOLO基础解析+创新改进+实战案例

摘要

医学图像通常展示出低对比度和显著的器官形状变化等特征。现有注意力机制通常不足以适应性地提升医学成像的分割性能。本文提出了一种有效的通道优先卷积注意力(CPCA)方法,支持在通道和空间维度上动态分配注意力权重。通过采用多尺度深度卷积模块,有效地提取空间关系同时保留通道优先。CPCA具有关注信息丰富通道和重要区域的能力。基于CPCA,我们提出了一个用于医学图像分割的网络,称为CPCANet。CPCANet在两个公开可用的数据集上进行了验证。与最先进的算法相比,CPCANet在需求较少的计算资源下实现了改进的分割性能。我们的代码已公开可用于https://github.com/Cuthbert-Huang/CPCANet。

基本原理

通道先验卷积注意力(Channel Prior Convolutional Attention,CPCA)是一种用于增强特征表示和动态分配注意力权重的注意力机制。CPCA结合了通道注意力和空间注意力,通过多尺度深度可分离卷积模块有效地提取空间关系并保留通道先验。下面是CPCA的详细技术原理:

  1. 通道注意力(Channel Attention)
    • 通道注意力模块用于动态学习每个通道的重要性,以提高特征的表征能力。通道注意力通过以下步骤实现:
      • 对输入特征进行全局平均池化和全局最大池化,得到两个不同的特征表示。
      • 将这两个特征表示分别通过两个卷积层和激活函数处理,以提取通道之间的关系。
      • 将处理后的特征通过Sigmoid函数生成通道注意力权重,用于动态调整每个通道的重要性。
  2. 空间注意力(Spatial Attention)
    • 空间注意力模块用于捕捉特征图中不同位置之间的关系,以提高空间信息的表征。空间注意力通过多尺度深度可分离卷积模块实现,可以有效地提取空间关系。
    • 多尺度深度可分离卷积模块使用不同大小的卷积核来捕获多尺度信息,从而更好地理解特征图的空间结构。
  3. CPCA的整体原理
    • CPCA结合了通道注意力和空间注意力,通过多尺度深度可分离卷积模块实现动态分配注意力权重,并保留通道先验。这种结合可以帮助网络更好地捕捉重要的特征,并提高特征的表征能力。

yolov8 引入

class CPCAChannelAttention(nn.Module):
    def __init__(self, input_channels, internal_neurons):
        super(CPCAChannelAttention, self).__init__()
        # 定义第一个1x1卷积层,将输入通道数减少到内部神经元数
        self.fc1 = nn.Conv2d(in_channels=input_channels, out_channels=internal_neurons, kernel_size=1, stride=1, bias=True)
        # 定义第二个1x1卷积层,将内部神经元数恢复到输入通道数
        self.fc2 = nn.Conv2d(in_channels=internal_neurons, out_channels=input_channels, kernel_size=1, stride=1, bias=True)
        self.input_channels = input_channels  # 保存输入的通道数

    def forward(self, inputs):
        # 自适应平均池化,将输入特征图缩小到1x1
        x1 = F.adaptive_avg_pool2d(inputs, output_size=(1, 1))
        # 通过第一个1x1卷积层
        x1 = self.fc1(x1)
        # 经过ReLU激活函数
        x1 = F.relu(x1, inplace=True)
        # 通过第二个1x1卷积层
        x1 = self.fc2(x1)
        # 应用Sigmoid激活函数
        x1 = torch.sigmoid(x1)

        # 自适应最大池化,将输入特征图缩小到1x1
        x2 = F.adaptive_max_pool2d(inputs, output_size=(1, 1))
        # 通过第一个1x1卷积层
        x2 = self.fc1(x2)
        # 经过ReLU激活函数
        x2 = F.relu(x2, inplace=True)
        # 通过第二个1x1卷积层
        x2 = self.fc2(x2)
        # 应用Sigmoid激活函数
        x2 = torch.sigmoid(x2)

        # 将自适应平均池化和自适应最大池化的结果相加
        x = x1 + x2
        # 调整形状,使其与输入特征图的通道数匹配
        x = x.view(-1, self.input_channels, 1, 1)
        return x

task与yaml配置

详见:https://blog.csdn.net/shangyanaf/article/details/139186904

相关文章
|
机器学习/深度学习 计算机视觉 网络架构
改进YOLOv8:添加CBAM注意力机制(涨点明显)
改进YOLOv8:添加CBAM注意力机制(涨点明显)
9874 1
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【损失函数篇】| WIoU v3:针对低质量样本的边界框回归损失函数
YOLOv11改进策略【损失函数篇】| WIoU v3:针对低质量样本的边界框回归损失函数
3754 6
|
机器学习/深度学习 移动开发 自然语言处理
【YOLOv8改进 - 注意力机制】ContextAggregation : 上下文聚合模块,捕捉局部和全局上下文,增强特征表示
【YOLOv8改进 - 注意力机制】ContextAggregation : 上下文聚合模块,捕捉局部和全局上下文,增强特征表示
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度
YOLOv11改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度
1549 9
YOLOv11改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度
|
机器学习/深度学习 编解码 计算机视觉
YOLOv11改进策略【注意力机制篇】| Mixed Local Channel Attention (MLCA) 同时融合通道、空间、局部信息和全局信息的新型注意力
YOLOv11改进策略【注意力机制篇】| Mixed Local Channel Attention (MLCA) 同时融合通道、空间、局部信息和全局信息的新型注意力
1040 1
YOLOv11改进策略【注意力机制篇】| Mixed Local Channel Attention (MLCA) 同时融合通道、空间、局部信息和全局信息的新型注意力
|
XML 机器学习/深度学习 数据格式
YOLOv8训练自己的数据集+常用传参说明
YOLOv8训练自己的数据集+常用传参说明
27528 3
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】EMA(Efficient Multi-Scale Attention):基于跨空间学习的高效多尺度注意力
【YOLOv11改进 - 注意力机制】EMA(Efficient Multi-Scale Attention):基于跨空间学习的高效多尺度注意力.EMA(Efficient Multi-Scale Attention)模块是一种高效多尺度注意力机制,旨在提高计算机视觉任务中的特征表示效果。该模块通过结合通道和空间信息、采用多尺度并行子网络结构以及优化坐标注意力机制,实现了更高效和有效的特征表示。EMA模块在图像分类和目标检测任务中表现出色,使用CIFAR-100、ImageNet-1k、MS COCO和VisDrone2019等数据集进行了广泛测试。
【YOLOv11改进 - 注意力机制】EMA(Efficient Multi-Scale Attention):基于跨空间学习的高效多尺度注意力
|
计算机视觉
【YOLOv8改进 - 特征融合NECK】 HS-FPN :用于处理多尺度特征融合的网络结构,降低参数
MFDS-DETR是针对白细胞检测的创新方法,它通过HS-FPN和可变形自注意力解决规模差异和特征稀缺问题。HS-FPN利用通道注意力模块增强特征表达,改善多尺度挑战。代码和数据集可在给定链接获取。此方法在WBCDD、LISC和BCCD数据集上表现优越,证明了其有效性和通用性。YOLO系列文章提供了更多目标检测改进和实战案例。
|
机器学习/深度学习
YOLOv10优改系列一:YOLOv10融合C2f_Ghost网络,让YoloV10实现性能的均衡
本文介绍了YOLOv10的性能优化,通过融合Ghost模块和C2f结构,实现了网络性能的均衡。GhostNet通过GhostModule和GhostBottleNeck减少参数量,适用于资源有限的场景。YOLOv10-C2f_Ghost在减少参数和计算量的同时,保持了与原始网络相当或更好的性能。文章还提供了详细的代码修改步骤和可能遇到的问题解决方案。
2455 1
YOLOv10优改系列一:YOLOv10融合C2f_Ghost网络,让YoloV10实现性能的均衡
|
机器学习/深度学习 计算机视觉
YOLOv8改进 | 注意力机制 | 添加混合局部通道注意力——MLCA【原理讲解】
YOLOv8专栏介绍了混合局部通道注意力(MLCA)模块,它结合通道、空间和局部信息,提升目标检测性能,同时保持低复杂度。文章提供MLCA原理、代码实现及如何将其集成到YOLOv8中,助力读者实战深度学习目标检测。[YOLOv8改进——更新各种有效涨点方法](https://blog.csdn.net/m0_67647321/category_12548649.html)