logo

PHNet医学图像分割新突破:MLP与CNN融合的港科大2023力作

作者:demo2025.09.26 17:00浏览量:0

简介:香港科技大学2023年提出PHNet模型,通过将MLP(多层感知机)与CNN(卷积神经网络)巧妙结合,在医学图像分割领域实现精度与效率的双重提升,为临床诊断提供新工具。

一、医学图像分割的技术挑战与现状

医学图像分割是临床诊断、手术规划和疗效评估的核心环节,其精度直接影响疾病诊断的可靠性。传统方法依赖手工特征提取,存在效率低、泛化能力差等问题。近年来,深度学习特别是CNN的引入,极大提升了分割性能,但依然面临两大挑战:

  1. 局部与全局信息平衡:CNN通过卷积核捕捉局部特征,但难以建模长距离依赖关系,导致分割结果在边界模糊或结构复杂区域出现断裂。
  2. 计算效率与模型复杂度:为提升精度,模型层数和参数量不断增加,导致推理速度下降,难以满足实时临床需求。

现有改进方案如U-Net系列通过编码器-解码器结构融合多尺度特征,Transformer模型通过自注意力机制捕获全局信息,但均存在局限性:U-Net的跳跃连接可能引入噪声,Transformer的计算复杂度随序列长度平方增长。

二、PHNet的核心创新:MLP与CNN的协同设计

PHNet(Pyramid Hybrid Network)由香港科技大学团队提出,其核心思想是通过分层特征融合动态权重分配,将MLP的全局建模能力与CNN的局部感知能力有机结合。模型架构包含三大模块:

1. 分层特征提取模块(Hierarchical Feature Extraction, HFE)

采用改进的ResNet作为主干网络,通过堆叠卷积块提取多尺度特征。与传统CNN不同,HFE在每个阶段后插入MLP-based特征增强单元(MFEU),其结构如下:

  1. class MFEU(nn.Module):
  2. def __init__(self, in_channels, out_channels):
  3. super().__init__()
  4. self.mlp = nn.Sequential(
  5. nn.Linear(in_channels, out_channels*2), # 扩展通道数以增强表达能力
  6. nn.ReLU(),
  7. nn.Linear(out_channels*2, out_channels)
  8. )
  9. self.conv = nn.Conv2d(in_channels, out_channels, kernel_size=1) # 1x1卷积调整通道
  10. def forward(self, x):
  11. # x: [B, C, H, W]
  12. global_feat = x.mean(dim=[2,3]) # 全局平均池化获取空间无关特征 [B, C]
  13. mlp_out = self.mlp(global_feat).view(x.size(0), -1, 1, 1) # 恢复空间维度 [B, C', 1, 1]
  14. return self.conv(x) + mlp_out # 残差连接融合局部与全局信息

MFEU通过全局池化获取图像级特征,经MLP变换后与局部特征相加,实现跨尺度信息交互。实验表明,该设计使模型在肝脏分割任务中的Dice系数提升2.3%。

2. 动态权重分配模块(Dynamic Weight Assignment, DWA)

为解决不同尺度特征贡献不均的问题,DWA引入通道注意力机制,自适应调整各层特征的权重:

  1. class DWA(nn.Module):
  2. def __init__(self, channels):
  3. super().__init__()
  4. self.mlp = nn.Sequential(
  5. nn.AdaptiveAvgPool2d(1),
  6. nn.Flatten(),
  7. nn.Linear(channels, channels//4),
  8. nn.ReLU(),
  9. nn.Linear(channels//4, channels),
  10. nn.Sigmoid()
  11. )
  12. def forward(self, x):
  13. # x: [B, C, H, W]
  14. weight = self.mlp(x).view(x.size(0), x.size(1), 1, 1) # [B, C, 1, 1]
  15. return x * weight # 通道级加权

DWA通过MLP生成通道重要性权重,使模型更关注任务相关特征。在脑肿瘤分割中,该模块使边缘区域分割精度提升1.8%。

3. 轻量化解码器(Lightweight Decoder, LD)

传统解码器通过转置卷积上采样,存在棋盘状伪影问题。PHNet采用亚像素卷积(Sub-pixel Convolution)结合MLP预测上采样核,在保持精度的同时减少参数量:

  1. class LD(nn.Module):
  2. def __init__(self, in_channels, out_channels, scale_factor=2):
  3. super().__init__()
  4. self.mlp_kernel = nn.Sequential(
  5. nn.Linear(in_channels, in_channels*scale_factor**2),
  6. nn.ReLU()
  7. )
  8. self.conv = nn.Conv2d(in_channels, out_channels*scale_factor**2, kernel_size=3, padding=1)
  9. def forward(self, x):
  10. # x: [B, C, H, W]
  11. B, C, H, W = x.shape
  12. kernel = self.mlp_kernel(x.mean(dim=[2,3])).view(B, C, -1, scale_factor, scale_factor) # [B, C, 1, s, s]
  13. feat = self.conv(x) # [B, C*s^2, H, W]
  14. feat = feat.view(B, C, -1, H, W).permute(0, 1, 3, 4, 2) # [B, C, H, W, s^2]
  15. upsampled = torch.einsum('bchw,bchsw->bchsw', feat, kernel) # 动态核上采样
  16. return upsampled.view(B, -1, H*scale_factor, W*scale_factor) # [B, C, H*s, W*s]

LD模块使模型参数量减少37%,而分割精度仅下降0.5%,在移动端部署具有显著优势。

三、实验验证与对比分析

团队在三个公开数据集上进行了验证:

  1. LiTS 2017(肝脏肿瘤):PHNet达到96.2%的Dice系数,较U-Net++提升1.5%,推理速度加快22%。
  2. BraTS 2020(脑肿瘤):在增强肿瘤区域分割中,PHNet的Hausdorff距离较nnUNet降低1.2mm,表明边界预测更精确。
  3. ACDC 2017(心脏结构):模型参数量仅12.3M,低于Transformer类模型的45.7M,而平均Dice达91.8%。

消融实验表明,MFEU和DWA模块分别贡献了1.8%和1.2%的精度提升,证明MLP与CNN的融合设计有效性。

四、对开发者的实践启示

  1. 模型轻量化方向:PHNet的LD模块提供了动态上采样的新思路,开发者可借鉴其MLP预测核的思想,设计更高效的解码器。
  2. 多模态融合扩展:MLP的全局建模能力适合处理多模态医学图像(如CT+MRI),未来可探索在PHNet中加入模态注意力机制。
  3. 部署优化建议:针对移动端部署,建议将MLP部分替换为深度可分离卷积,进一步减少计算量。

PHNet的成功表明,MLP与CNN的结合并非简单堆砌,而是通过分层特征融合和动态权重分配实现能力互补。这一设计为医学图像分割提供了新的范式,值得开发者深入研究与应用。

相关文章推荐

发表评论