MALUNet:一种多关注,轻量级的皮肤病变分割UNet

news2025/2/21 4:22:24

Tittle:MALUNet: A Multi-Attention and Light-weight UNet for Skin Lesion Segmentation

摘要

本篇文章提出的目的是为了缓解计算资源的不足,轻量化模型提出的。简单来说本文提出了4个模块。

1)DGA:由扩展卷积和门控注意机制组成,提取全局和局部特征信息。(使网络模型更加关注目标区域,同时这一模块中的深度可分离卷积进一步减少了参数和计算复杂度)

2)IEA:基于外界关注来表征整体数据集,增强样本之间的联系。

3)CAB:由一维卷积和全连接层组成,对多阶段特征进行全局和局部融合,生成通道轴上的特征图

4)SAB:通过共享二维卷积对多阶段特征进行操作,生成空间轴上的特征图。

本文将这四个模块与UNet网络结合

Introduction

目前一些分割架构存在的问题是:

1)一些模型以大参数量的代价来换取模型的高性能,但是由于医疗设备内存有限无法很好的应用于现实的临床场景

2)样本数据之间的差异很小,但在医疗数据集内部中的差异很大,目前解决这一问题的是在自注意力机制及其改进结构上进行的。但是SA在建模样本之间关系方面效果不算好。

3)医学图像分割任务中,由于目标尺寸不同,必须充分利用多阶段,多尺度的信息。但是先前的一些网络结构忽略了这一点。

方法

1)Dilated Gated Attention Block-DGA

同时获取全局和局部信息对提高图像分割性能很重要。全局信息有助于模型了解病灶的整体结构及其与背景的关系,使得其更准确的定位到病灶区域。局部信息有助于获取病灶区域边缘和角落的细节,使得预测更加完整。

DGA模块的结构如下图所示:

 

模块由两个子单元构成分别为:Split Dilated Conv Unit (SDC) and Gated Attention Unit (GA).

SDC将输入特征图沿通道维度分成四部分,通过使用不同扩张率的深度可分离卷积,得到全局(扩张率为5和7的卷积)和局部(扩张率为1和2的卷积)特征信息。然后在通道维度上进行Concate操作,恢复特征图的大小,然后进行卷积操作,使得全局信息和局部信息得以交互

GA通过使用深度可分离卷积生成与输入特征形状一致的特征图,抑制SDC传输的特征信息中不重要的区域,使得模型更加关注重要的信息。最后应用残差连接来获得输出。用公式表示为

2)Inverted External Attention Block--IEA模块

External atttention(EA)称为外部注意力,它使用两个内存单元(两个共享参数的Conv1D操作)来表征整个数据集的特征信息。而本文提出的外部注意力块如下图所示:

 给定一个输入X\epsilon R^{C*H*W}经过1*1卷积核Reshape运算以后大小变为X\epsilon R^{C*HW}。我们使用Memory Unit 1将特征图的通道数扩展成原来的4倍得到Att\epsilon R^{4C*HW}。然后再应用Memory Unit2恢复尺寸,再进行Reshape操作恢复到原始特征图尺寸,再进行Reshape操作恢复到原始特征图大小。最后通过1*1卷积得到输出特征图并加入残差信息。

优点在于Memory Unit是将输入映射到更高维的空间,使得内存单元更全面的描述数据集的整体特征信息。

3)Channel Attention Bridge Block

多阶段多尺度信息的获取对不同尺度目标的分割起着至关重要的作用。这个模块在通道维度上提出了一个桥式注意模块称为CAB。这个方法将通道轴上不同阶段的特征串联起来,生成通道注意力图,从而更好的整合信息。CAB结构图如下所示:

其中GAP是全局平均池化,t_{i}为编码器获得的不同阶段的特征图,Contact是通道维度的级联运算。FC_{i}是第i阶段的全连接层。

如图所示,以五层模型(s = 5)为例,可视化CAB。注意,CAB将多阶段、多尺度的信息融合细分为局部信息融合(1D卷积运算)和全局信息融合(每个阶段不同的完全连接层),以提供更有信息量的注意特征图。

4)Spatial Attention Bridge Block--SAB

 CBAM模块认为通道注意和空间注意在抑制无关信息方面都发挥着重要的作用。因此在CABM的启发下,我们引入了另一种桥注意模块--SAB

如图6所示。同时,以五阶段SAB为例进行了可视化分析。该模块在空间轴上融合多阶段、多尺度的信息,生成各个阶段的注意图。

首先,对于每一阶段的特征图,在通道维度上分别采用最大池化和平均池化操作,并将其串联得到具有两个通道的特征图。而宽度和高度保持不变。利用共享的扩张卷积运算(扩张率为3,)再使用Sigmod激活函数生成每个阶段的空间注意图。最后将生成的空间注意力图按元素乘上原始特征图,并添加上残差连接得到最终输出。

5)MALUNet

将以上各个模块和UNet网络结合起来得到如下架构:

在这个网络结构中采用了六级U型结构,在UNet的基础上本文增加了一个阶段,将1-3阶段的卷积运算从两个减少到一个。

在阶段4到阶段6,我们使用IEA和DGA,它们是串联连接的。前者描述数据集的整体特征和样本之间的关系,后者获取样本中的全局信息和局部信息,此外我们使用SAB对两个桥注意模块进行了顺序排列。这两个注意力桥模块可以融合多个阶段,多个尺度的特征

阶段1-5,生成空间维度和通道维度的注意地图。然后,我们将桥式注意模块获得的特征与解码器部分的特征进行叠加,以减少编码器和解码器之间的特征语义差异,同时减轻采样过程中造成的信息损失。

总结

在本篇论文中,提出了四个注意力模块:1)获取全局和局部特征信息 2)描述这个数据集的样本特征,从而建立样本之间的关系 3)生成一个完整的融合局域和全局多阶段多尺度特征的通道 4)融合多阶段,多尺度的特征信息,得到空间轴上对应的空间注意图

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

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

相关文章

【数据结构初阶】复杂链表复制+带头双向循环链表+缓存级知识

我父亲曾将我高举过头顶,所以到哪我都不会觉得自己低人一等。 加油!少年! 文章目录一、复杂链表复制二、带头双向循环链表的实现2.1 简单介绍一哈2.2 结构的定义链表初始化2.3 开辟结点空间头插尾插头删尾删链表打印2.4 结点查找pos之前插入…

【读论文】DDcGAN

DDcGAN: A Dual-Discriminator ConditionalGenerative Adversarial Network for Multi-Resolution Image Fusion简介贡献提出的方法损失函数网络结构生成器结构辨别器结构MRI和PET图像融合处理思路公式损失函数处理过程训练总结参考论文: https://ieeexplore.ieee.o…

双11,用Python爬取4000多条笔记本电脑的销售数据并分析

双11,用Python爬取4000多条笔记本电脑的销售数据并分析 2022年,大部分电子产品的销量都在下滑,比如手机,一方面,产品的创新和提升不足,另一方面,大部分人更愿意把钱存起来,降低生活…

PolarDB for PostgreSQL透明加密

PolarDB for PostgreSQL透明加密简介透明加密TDE(Transparent Data Encryption)通过在数据库层执行静止数据加密,阻止可能的攻击者绕过数据库直接从存储读取敏感信息。经过数据库身份认证的应用和用户可以继续透明地访问数据,而尝试读取数据库文件中敏感…

基于BP神经网络的非线性函数拟合(一维高斯函数)研究-含Matlab代码

目录一、引言二、BP神经网络的结构与原理2.1 信息前向传播2.2 误差的反向传播过程三、基于BP神经网络的非线性函数拟合3.1 数据生成3.2 神经网络拟合结果四、参考文献五、Matlab代码获取一、引言 以生物学基础的BP网络为全局网络,于多变量函数逼近理论不同&#xf…

C语言之文件的使用(上)

目录 目录 前言 预备知识 一、为什么要使用文件? 二、什么是文件?文件有哪些分类? 1.程序文件 2.数据文件 三、文件名 四、对文件的操作 1.基础知识(含文件指针的介绍) 2.文件打开与关闭的相关函数 1.fope…

【前沿技术RPA】 RPA开发人员的日常

🐋作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。 🐬个人主页:会敲键盘的肘子 🐰系列专栏:UiPath 🦀专栏简介:UiPath在传统的RPA(Robotic…

C语言经典题目之青蛙跳台阶问题

目录 一、问题描述 二、问题分析 1.当n1时 2.当n2时 3.当n3时 4.n4,n5........nn时 三、代码实现 总结 一、问题描述 一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。 二、问题分析 青蛙跳台阶&a…

python的opencv操作记录(八)——小波变换

文章目录什么是小波从一个例子入手把例子再深化一下各种个样的小波基哈尔小波其他小波小波分解图像(二维)小波变换什么是小波 上一篇里提到了stft,短时傅里叶变换,是针对不稳定信号进行加窗来做每一个小窗口的频谱分析。然后一个一个的时间窗就可以理解…

STM32F103 UART4串口使用DMA接收不定长数据和DMA中断发送

一、前言 使用DMA通信的好处是,不占用单片机资源(不像普通串口中断,发送一个字节触发一次中断,发送100个字节触发100次中断;接收一个字节触发一次中断,接收200个字节触发200次中断),…

第五章 栈的讲解与实现

初阶数据结构 第一章 时间复杂度和空间复杂度 第二章 动态顺序表的实现 第三章 单向链表的讲解与实现 第四章 带头双向链表的讲解与实现 第五章 栈的讲解与实现 文章目录初阶数据结构前言一、栈1、什么是栈?二、栈的定义三、接口函数的实现1、初始化2、判断是否为空…

前端js手写面试题看这篇就够了

实现一个JSON.stringify JSON.stringify(value[, replacer [, space]]):Boolean | Number| String类型会自动转换成对应的原始值。undefined、任意函数以及symbol,会被忽略(出现在非数组对象的属性值中时),或者被转换…

利用opencv 做一个疲劳检测系统(2)

文章目录杂谈实现步骤核心算法交互界面界面代码检测效果源代码杂谈 最近发现视力下降严重, 可能跟我的过度用眼有关,于是想着能不能做一个检测用眼疲劳的,灵感来自特斯拉的疲劳检测系统。 效果如下: 实现步骤 实现核心算法制作…

【消息队列笔记】chp2-如何选择消息队列

一、选择消息队列的基本标准 不同的消息队列产品在功能和特性方面是各有优劣的,但是我们在选择的时候应尽量保证一个通用的最低标准。 1.必须是开源的产品 开源很重要,如果在使用该产品时遇到了影响业务的bug,可以通过修改源代码来进行修复…

音视频开发基础概念

目录一、音视频如何采集和表示1、音视频录制原理2、音视频播放原理二、视频基础概念1、图像基础概念2、RGB、 YUV深入讲解3、RGB和YUV的转换4、YUV Stride对齐问题三、视频为什么要做编码四、音频基础概念1、基本概念2、声音的物理性质-频率-音频采样率3、数字声音的表示4、音频…

【数据结构】——顺序表

目录 1.线性表 2.顺序表 2.1概念及结构 3.静态顺序表 4.动态顺序表 1.定义一个顺序表 2.顺序表的初始化和销毁 3.顺序表尾插 4.顺序表打印 5.顺序表尾删 6.顺序表头插 7.顺序表头删 8.在pos(任意)位置的插入 9.在pos(任意&#…

[附源码]计算机毕业设计JAVAjsp美容院业务管理系统

[附源码]计算机毕业设计JAVAjsp美容院业务管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM m…

用DIV+CSS技术设计的体育篮球主题 校园体育网页与实现制作(web前端网页制作课作业)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

SpringBoot(二):基础配置文件、yaml语法、多环境开发配置

目录 一、配置文件 1、配置文件格式 2、自动提示功能失灵解决方案 3、SpringBoot配置文件加载顺序 二、yaml 1、yaml介绍 2、yaml语法规则 3、yaml数组数据 4、yaml数据读取 三、多环境开发配置 1、多环境启动配置 2、多环境启动命令格式 3、多环境开发控制 四、…

VS Code常用操作

文章目录常用快捷键修改VS Code底部状态栏颜色VS Code添加Anaconda的Python源常用快捷键 (1) 对于 行 的操作: 重开一行:光标在行尾的话,回车即可;      不在行尾,Ctrl Enter 向下重开一行;    …