HIFUSE:用于医学图像分类的分层多尺度特征融合网络

HIFUSE: HIERARCHICAL MULTI-SCALE FEATURE FUSION NETWORK FOR MEDICAL IMAGE CLASSIFICATION

摘要

在卷积神经网络(CNN)的推动下,医学图像分类得到了快速发展。由于卷积核的感受野大小固定,很难捕获医学图像的全局特征。尽管基于自注意的Transformer可以对长程依赖关系进行建模,但它具有较高的计算复杂性,并且缺乏局部归纳偏差。大量研究表明,全局和局部特征对图像分类至关重要。然而,医学图像具有许多噪声、分散的特征、类内变异和类间相似性。
本文方法

  1. 提出了一种三分支层次多尺度特征融合网络结构HiFuse,作为一种新的医学图像分类方法。
  2. 可以从多尺度层次融合Transformer和CNN的优势,而不破坏各自的建模,从而提高各种医学图像的分类精度。
  3. 设计了局部和全局特征块的并行层次结构,以在不同语义尺度上有效地提取局部特征和全局表示,具有在不同尺度上建模的灵活性和与图像大小相关的线性计算复杂性。
  4. 此外,设计了一种自适应层次特征融合块(HFF块),以综合利用在不同层次上获得的特征。
  5. HFF块包含空间注意力、通道注意力、残差反向MLP以及自适应融合每个分支的各种尺度特征之间的语义信息的快捷方式
    代码地址

本文方法

在这里插入图片描述
旨在有效地获取不同尺度医学图像的局部空间信息和全局语义表示。我们使用并行结构从全局和局部特征块中提取医学图像的全局和局部信息,通过HFF块融合不同层次的特征,下采样步骤,最终获得分类结果。在接下来的部分中,我们首先介绍了HiFuse模型的总体结构,然后分别介绍了全局特征块和局部特征块。下面是HFF区块的详细信息
在这里插入图片描述
自适应层次特征融合块可以根据输入特征,自适应地融合来自不同层次的局部特征、全局表示以及来自先前层次的融合后的语义信息,如图2所示。其中,Gi表示全局特征块输出的特征矩阵,Li表示局部特征块输出特征矩阵,Fi−1表示前一阶段HFF输出的特征阵,Fi表示该阶段HFF融合生成的特征阵

由于全局特征块中的自注意可以捕获空间和时间全局信息,在一定程度上,HFF块将传入的全局特征馈送到通道注意力(CA)机制中,该机制利用通道映射之间的相互依赖性来改进特定语义的特征表示。

局部特征被输入到空间注意力(SA)机制中,以增强局部细节并抑制不相关区域。最后,每个注意力产生的结果和融合路径将进行特征融合,并连接残差反向MLP(IRMLP)。在一定程度上,避免了梯度消失、爆炸和网络退化的问题,从而有效地捕捉了每个层次的全局和局部特征信息。对于ResNet、Swin Transformer、ConvneXt和我们的HFF块的结构比较,如图3所示。该过程如所示
在这里插入图片描述

实验结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### 不同注意力机制的效果差异 在图像处理领域,多种注意力机制被广泛应用并取得了显著成果。多视角融合注意力机制通过结合多尺度特征融合和注意力机制,如BACNN、HiFuse 和 PA-Unet++等方法,能够更有效地捕捉图像中的复杂结构信息,从而提升模型的整体表现[^1]。 #### 通道注意力机制 通道注意力机制专注于调整各通道之间的权重分布,以此来增强重要特征的同时抑制不重要的部分。这种机制可以动态地根据输入数据自适应地分配资源,使得网络更加灵活高效。研究表明,该机制特别适用于那些需要区分不同语义区域的任务,因为它能更好地理解全局上下文关系[^2]。 #### 空间注意力机制 相比之下,空间注意力机制则侧重于关注特定位置上的像素级关联性。它通过对整个感受野内的响应图施加软掩码操作,突出显示最具代表性的局部模式。这种方法有助于改善细粒度分类以及目标检测等任务的表现,因为这些任务往往依赖于精确的位置信息。 当两者结合起来时——即实现空间与通道双重注意力建模,则可以在更大程度上提高模型鲁棒性和泛化能力。例如,在医学影像分析中,这样的组合可以帮助识别微小病变;而在自然场景解析方面,则可促进对物体边界及其内部纹理细节的理解。 ```python import torch.nn as nn class SpatialAttention(nn.Module): def __init__(self, kernel_size=7): super(SpatialAttention, self).__init__() assert kernel_size in (3, 7), 'kernel size must be 3 or 7' padding = 3 if kernel_size == 7 else 1 self.conv1 = nn.Conv2d(2, 1, kernel_size, padding=padding, bias=False) self.sigmoid = nn.Sigmoid() def forward(self, x): avg_out = torch.mean(x, dim=1, keepdim=True) max_out, _ = torch.max(x, dim=1, keepdim=True) x = torch.cat([avg_out, max_out], dim=1) x = self.conv1(x) return self.sigmoid(x) class ChannelAttention(nn.Module): def __init__(self, in_planes, ratio=16): super(ChannelAttention, self).__init__() self.avg_pool = nn.AdaptiveAvgPool2d(1) self.max_pool = nn.AdaptiveMaxPool2d(1) self.fc1 = nn.Conv2d(in_planes, in_planes // ratio, 1, bias=False) self.relu1 = nn.ReLU() self.fc2 = nn.Conv2d(in_planes // ratio, in_planes, 1, bias=False) self.sigmoid = nn.Sigmoid() def forward(self, x): avg_out = self.fc2(self.relu1(self.fc1(self.avg_pool(x)))) max_out = self.fc2(self.relu1(self.fc1(self.max_pool(x)))) out = avg_out + max_out return self.sigmoid(out) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小杨小杨1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值