FAN-UNET:用于生物医学图像分割增强模型

 

目录

一、论文结构概述

二、创新点详解

三、创新点结构与原理

(1)Vision-FAN Block:全局与周期特征的融合引擎

(2)FANLayer2D:周期性建模的核心

四、代码复现思路

五、仿真结果分析

(1)SOTA模型对比

(2)消融实验

六、应用场景

总结


一、论文结构概述

本文采用经典学术论文框架:

  1. 摘要(ABSTRACT)​​:概述FAN-UNet的核心贡献——结合Vision-FAN Block与U-Net,解决长程依赖和周期性建模问题。
  2. 引言(Introduction)​​:阐述医疗图像分割的重要性,分析CNN和Transformer的局限性,并引出FAN在周期性建模的优势。
  3. 预备知识(Preliminaries)​​:介绍傅里叶分析基础,为方法部分奠定数学基础。
  4. 方法(Method)​​:详解FAN-UNet架构,包括Vision-FAN Block和FANLayer2D的设计。
  5. 实验(Experiment)​​:在ISIC2017/2018数据集上对比SOTA模型,并进行消融实验验证组件有效性。
  6. 结论(Conclusion)​​:总结模型优势,并展望未来方向。

该结构逻辑清晰,层层递进,从问题定义到解决方案再到实证验证。


二、创新点详解

FAN-UNet的三大核心创新:

  1. Vision-FAN Block​:首次将傅里叶分析层(FANLayer2D)与自注意力机制结合,同时捕捉长程依赖和周期性特征。
  2. 医疗分割首次应用​:这是FAN模型在医疗图像分割领域的首次探索,填补了周期性建模的空白。
  3. 高性能与轻量化​:实验显示,FAN-UNet在mIoU(78.99%)、DSC(88.25%)、Accuracy(96.30%)等指标上优于主流模型(如HC-Mamba、TransFuse),且模型复杂度可控。

这些创新解决了医疗图像中病变区域周期性模式(如皮肤纹理重复性)的建模难题,显著提升分割鲁棒性。


三、创新点结构与原理

(1)Vision-FAN Block:全局与周期特征的融合引擎

Vision-FAN Block是FAN-UNet的核心模块,其结构如图1(B)所示。它通过多阶段处理整合全局和局部信息:

  • 位置编码(Positional Embed)​​:为特征图添加位置信息,增强空间关系理解。
  • 窗口自注意力(Window-based Self-Attention)​​:计算特征图不同位置的交互,捕捉长程依赖。例如,在皮肤病变分割中,病变区域可能跨越多个空间位置,自注意力能有效关联这些区域。
  • FANLayer2D​:基于傅里叶分析,显式编码周期性特征(原理见下文)。
  • 残差连接与层归一化​:确保训练稳定性,避免梯度消失。

该模块的数学表达为:

# 伪代码示意  
def Vision_FAN_Block(input):  x = positional_embed(input)  # 位置编码  x = window_self_attention(x)  # 自注意力  x = FANLayer2D(x)           # 傅里叶分析层  x = layer_norm(x + input)    # 残差连接与归一化  return x  

(2)FANLayer2D:周期性建模的核心

FANLayer2D是Vision-FAN的关键组件,其结构如图2所示。原理基于傅里叶级数展开:

  • 数学基础​:将输入函数分解为正余弦分量(见公式5):
    fS​(x)=B+Wccos(Winx)+Wssin(Winx)
    其中 B,Win,Wc,Ws 为可学习参数,T 为周期。
  • 处理流程​:
    • 步骤1​:计算周期分量 P=Wp​∗X+bp​ 和非线性分量 G=Wg​∗X+bg​。
    • 步骤2​:对 G 应用非线性激活(如ReLU),生成 Gact​=ϕ(G)。
    • 步骤3​:对 P 应用傅里叶激活,得到 Pcos​=cos(P) 和 Psin​=sin(P)。
    • 步骤4​:沿通道维度拼接 Pcos​、Psin​ 和 Gact​,形成输出特征。
  • 优势​:显式学习周期性模式(如医学图像中组织的重复纹理),提升模型泛化能力。

 

四、代码复现思路

基于PyTorch实现FAN-UNet的关键步骤:

  1. 整体架构​:继承U-Net的编码器-解码器结构,在跳跃连接处插入Vision-FAN Block。
  2. FANLayer2D实现​:
import torch  
import torch.nn as nn  class FANLayer2D(nn.Module):  def __init__(self, in_channels, out_channels):  super().__init__()  self.conv_p = nn.Conv2d(in_channels, out_channels // 2, kernel_size=3, padding=1)  # 周期分量卷积  self.conv_g = nn.Conv2d(in_channels, out_channels // 2, kernel_size=3, padding=1)  # 非线性分量卷积  self.act = nn.ReLU()  # 非线性激活  def forward(self, x):  P = self.conv_p(x)  # 周期分量  G = self.conv_g(x)  # 非线性分量  G_act = self.act(G)  # 激活  P_cos = torch.cos(P)  # 余弦激活  P_sin = torch.sin(P)  # 正弦激活  return torch.cat([P_cos, P_sin, G_act], dim=1)  # 通道拼接  
  1. 损失函数​:组合Dice Loss和交叉熵:
    def combined_loss(input, target, alpha=0.5):  ce_loss = nn.CrossEntropyLoss()(input, target)  dice_loss = 1 - (2 * (input * target).sum() / (input.sum() + target.sum() + 1e-5))  return (1 - alpha) * ce_loss + alpha * dice_loss  

    五、仿真结果分析

    实验基于ISIC2017/2018皮肤病变数据集,关键结果如下:

    (1)SOTA模型对比
    数据集模型mIoU(%)DSC(%)Accuracy(%)
    ISIC17FAN-UNet78.9988.2596.30
    HC-Mamba77.8887.3895.17
    ISIC18FAN-UNet78.7488.1194.31
    Med-TTT78.5988.0194.30
  2. 结论​:FAN-UNet在mIoU和DSC上全面领先,尤其在ISIC17上Accuracy达96.30%,证明其在复杂病变分割中的鲁棒性。
  3. 结论​:Vision-FAN Block贡献最大(mIoU提升0.88%),位置编码次之,验证了周期性建模和空间关系的关键性。
  4. (2)消融实验
    配置mIoU(%)DSC(%)
    完整FAN-UNet(Proposed)78.7488.11
    移除Vision-FAN Block77.8687.55
    移除位置编码78.4287.89

 

六、应用场景

FAN-UNet在以下医疗场景潜力突出:

  1. 皮肤病变分割​:如ISIC数据集中的黑色素瘤,其边界纹理常呈周期性,FANLayer2D能精准捕捉此类模式。
  2. 肿瘤分析​:脑瘤(论文提及MRI数据)的形状变异大,但内部纹理有重复性,Vision-FAN Block可联合建模全局结构和局部周期特征。
  3. 多模态医疗图像​:未来可扩展至CT、MRI等多模态数据,傅里叶分析对噪声鲁棒性强,适合低质量临床图像。

实际部署时,需针对特定数据集微调周期参数 T,以适配不同器官的纹理尺度。

总结

FAN-UNet通过傅里叶分析 + 自注意力机制的创新融合,解决了医疗图像分割中的长程依赖和周期性建模难题。实验证明其在精度和泛化性上的显著优势,代码复现也较为直观。未来可探索其在3D分割或实时诊断中的应用。

 论文地址:https://arxiv.org/pdf/2410.02675

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/92094.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/92094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot的篮球运动员体测数据分析及训练管理系统论文

第1章 绪论 1.1 课题背景 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。所以各行业,尤其是规模较大的企业和学校等…

矩阵算法题

矩阵算法题1、矩阵置零2、螺旋矩阵3、旋转图像4、搜索二维矩阵1、矩阵置零 解题思路:这道题核心是要确定哪些行和哪些列要置零。所以定义两个数组,一个记录要置零的行,一个记录要置零的列。遍历整个矩阵,如果当前位置是0的话&…

Spring底层(二)Spring IOC容器加载流程原理

一、怎么理解SpringIoc IOC:Inversion Of Control,即控制反转,是一种设计思想。之前对象又程序员自己new自己创建,现在Spring注入给我们,这样的创建权力被反转了。 所谓控制就是对象的创建、初始化、销毁。 创建对象…

UDP中的单播,多播,广播

文章目录UDP 简单回顾一、单播(Unicast)定义特点应用举例二、广播(Broadcast)定义特点应用三、多播(Multicast)定义特点应用UDP 单播、广播、多播的对比总结额外说明代码简要示例(C)…

数据库练习3

一、建立product表,操作方式operate表要求:1.定义触发器实现在产品表(product)中每多一个产品,就在操作表(operate)中记录操作方式和时间以及编号记录。注:操作说明:标记执行delete 、insert、 update2.定义触发器实现在产品表(pr…

pycharm和anaconda安装,并配置python虚拟环境

1、pycharm和anaconda安装 PyCharm与Anaconda超详细安装配置教程_anaconda pycharm安装-CSDN博客https://blog.csdn.net/qq_32892383/article/details/116137730 2、pycharm汉化 PyCharm汉化:简单两步搞定!PyCharm怎么设置中文简体,为什么…

EP04:【Python 第一弹】函数编程

一、定义 函数指将一组语句的集合通过一个变量名封装起来,调用这个函数变量名,就可以执行函数。 二、特点 减少重复逻辑代码的编写将程序中的逻辑可以进行扩展维护项目程序的代码更简单 三、创建 def 函数名():逻辑代码1逻辑代码2return 结果 函数名…

linux安装Mysql后添加mysql的用户和密码

在 MySQL 中创建用户并设置密码的完整指南如下: 方法 1:使用 CREATE USER 语句(推荐) -- 创建新用户并设置密码 CREATE USER newuserlocalhost IDENTIFIED BY your_password;-- 授予权限(示例:授予所有数据…

React hooks——memo

一、简介React.memo 是 React 提供的一个高阶组件(Higher-Order Component),用于优化函数组件的渲染性能,它通过浅比较(shallow compare)props 的变化来决定是否重新渲染组件。1.1 基本用法const MyCompone…

leetcode15.三数之和题解:逻辑清晰带你分析

介绍 题源 分析 1.双指针固定一个数 首先明白一点,我们有三个数,我们想使用双指针,那就必须固定一个数。 2.二分 本题还涉及二分,双指针经常和二分结合使用(二分本质就是双指针,仔细思考这思考这句话&…

exports使用 package.json字段控制如何访问你的 npm 包

目录 想象一下你正在开发一个 npm 包…… 术语 什么是exports领域? exports好处 保护内部文件 多格式包 将子路径映射到dist目录 子路径导出 单一入口点 多个入口点 公开软件包文件的子集 有条件出口 设置使用条件 默认条件 句法 针对 Node.js 和浏…

AngularJS 安装使用教程

一、AngularJS 简介 AngularJS 是 Google 开发的一款前端 JavaScript 框架,采用 MVVM 架构,提供了数据双向绑定、依赖注入、模块化、路由管理等强大功能,适合构建单页面应用(SPA)。注意:AngularJS&#xf…

基于python和neo4j构建知识图谱医药问答系统

一、pyahocorasick1.安装 pyahocorasick 包: pip install pyahocorasick -i https://pypi.tuna.tsinghua.edu.cn/simple/pip install pyahocorasick :安装名为 pyahocorasick 的第三方库👉 这个库是一个 Aho-Corasick 多模匹配算法 的 Python…

片上网络(NoC)拓扑结构比较

1. 拓扑结构拓扑结构延迟吞吐量跳数功耗面积开销可扩展性容错性布线复杂度适合通信模式Mesh(网格)低(O(√N))高(多路径并行)O(√N)中高(路由器多)中高(规则布线&#xff…

git merge 命令有什么作用?具体如何使用?

回答重点git merge 命令主要用于将两个分支的历史和内容合并在一起。简而言之,它会将一个分支的更改引入到当前分支中。常见的使用场景是将功能分支(feature branch)的修改合并回主分支(main branch)或者开发分支&…

【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - jieba库分词简介及使用

大家好,我是java1234_小锋老师,最近写了一套【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts)视频教程,持续更新中,计划月底更新完,感谢支持。今天讲解 jieba库分词简介及使用 视频在线地址&…

大模型的后训练与逻辑能力

《DeepSeek原生应用与智能体开发实践》【摘要 书评 试读】- 京东图书 在人工智能与机器学习领域,模型的后训练阶段不仅是技术流程中的关键环节,更是提升模型性能,尤其是数学逻辑能力的“黄金时期”。这一阶段,通过对已初步训练好…

pycharm安装教程-PyCharm2025安装步骤【MAC版】附带安装包

pycharm安装教程-PyCharm2025安装详细步骤【MAC版】安装安装包获取(文章末尾)今天来给大家分享 Mac 系统安装 PyCharm,附带安装包资源安装, PyCharm 相关就不叙述了,直接开始安装! 安装 2024版本、2025年…

【React Native】路由跳转

Link 跳转的路径,就在href里写/details。路径都是相对于app目录来写的,也就是说app目录就是/。很多时候,需要跳转的组件比较复杂。比方说,要在里面要嵌套按钮,或者其他东西。这种情况下,就可以在Link组件里…

使用 Spring Boot + AbstractRoutingDataSource 实现动态切换数据源

1. 动态切换数据源的原理AbstractRoutingDataSource 是 Spring 提供的一个抽象类,它通过实现 determineCurrentLookupKey 方法,根据上下文信息决定当前使用的数据源。核心流程如下:定义多数据源配置:注册多个数据源。实现动态数据…