VM-UNet: Vision Mamba UNet for Medical Image Segmentation

news2024/11/27 12:47:04

VM-UNet: Vision Mamba UNet for Medical Image Segmentation

VM-UNet:基于视觉Mamba UNet架构的医学图像分割

论文链接:http://arxiv.org/abs/2402.02491
代码链接:https://github.com/JCruan519/VM-UNet

1、摘要

  文中利用状态空间模型SSMs,提出了一种针对医学图像分割的U形架构模型,称为Vision Mamba UNet(VM-UNet)。具体地,引入了视觉状态空间(VSS)块作为基础模块,以捕捉丰富的上下文信息,并构建了一个不对称的编码器-解码器结构。在ISIC17、ISIC18和Synapse数据集上进行了全面实验,结果显示VM-UNet在医学图像分割任务中表现出良好的性能。

2、创新点

  受VMamba[20]在图像分类任务中取得成功的影响,本文首次提出Vision Mamba UNet(VM-UNet),这是一种纯基于SSM的模型,旨在展示在医疗图像分割任务中的潜力。VM-UNet主要由编码器、解码器和跳跃连接三部分组成。编码器使用VMamba的VSS块进行特征提取,并通过拼接操作进行下采样。解码器包含VSS块和扩展操作,以恢复分割结果的大小。跳跃连接部分,为了突出最原始纯SSM模型的分割性能,采用了最简单的相加操作。

  在器官分割和皮肤病变分割任务上进行了广泛实验,以展示纯SSM模型在医疗图像分割中的潜力。VM-UNet代表了纯SSM分割模型的最基本形式,没有包含任何特殊设计的模块。

  本文的主要贡献可以总结如下:

1)提出了VM-UNet,这是首次探索纯SSM模型在医疗图像分割中的应用潜力;

2)在三个数据集上进行了全面实验,结果显示VM-UNet具有显著的竞争力;

3)为纯SSM模型在医疗图像分割任务中建立了基准,提供了有价值的见解,为开发更高效和有效的SSM分割方法铺平了道路。

目录

  • VM-UNet: Vision Mamba UNet for Medical Image Segmentation
    • 1、摘要
    • 2、创新点
    • 3、原理
      • Preliminaries
      • Vision Mamba UNet (VM-UNet)
      • VSS block
      • Loss function
    • 4、实验
      • Datasets
      • Implementation details
      • Main results
      • Ablation studies
    • 4、总结

3、原理

Preliminaries

  在现代基于状态空间模型(SSM)的模型中,如结构化状态空间序列模型(S4)和Mamba,它们都依赖于经典的连续系统,该系统通过映射一维输入函数或序列 x ( t ) ∈ R x(t) ∈ R x(t)R,通过中间隐状态 h ( t ) ∈ R N h(t) ∈ R^{N} h(t)RN到输出 y ( t ) ∈ R y(t) ∈ R y(t)R。这个过程可以表示为线性常微分方程(ODE):

h ′ ( t ) = A h ( t ) + B x ( t ) , h^{'}(t) = Ah(t) + Bx(t), h(t)=Ah(t)+Bx(t),
y ( t ) = C h ( t ) , ( 1 ) y(t) = Ch(t), (1) y(t)=Ch(t),(1)

其中 A ∈ R N × N A ∈ R^{N \times N} ARN×N表示状态矩阵, B ∈ R N × 1 B ∈ R^{N \times 1} BRN×1 C ∈ R N × 1 C ∈ R^{N \times 1} CRN×1分别表示投影参数。

  S4和Mamba将这个连续系统离散化,使其更适合深度学习环境。它们引入一个时间尺度参数 Δ \Delta Δ,并通过固定的离散化规则(如零阶保持法,ZOH)将 A A A B B B转换为离散参数 A ˉ \bar A Aˉ B ˉ \bar B Bˉ

A = e x p ( Δ A ) , A = exp(\Delta A), A=exp(ΔA),
B = ( Δ A ) ( − 1 ) ∗ ( e x p ( Δ A ) − I ) ⋅ Δ B .   ( 2 ) B = (\Delta A)^{(-1)} * (exp(\Delta A) - I) \cdot \Delta B. \ (2) B=(ΔA)(1)(exp(ΔA)I)ΔB. (2)

  离散化后,SSM模型可以通过线性递归或全局卷积两种方式计算。线性递归和全局卷积分别定义为:

h ′ ( t ) = A ˉ h ( t ) + B ˉ x ( t ) , h^{'}(t) = \bar{A} h(t) + \bar{B} x(t), h(t)=Aˉh(t)+Bˉx(t),
h ′ ( t ) = C h ( t ) .   ( 3 ) h^{'}(t) = C h(t). \ (3) h(t)=Ch(t). (3)

K = ( C B ˉ , C A ˉ B ˉ , . . . , C A ˉ L − 1 B ˉ ) , K = (C\bar{B}, C\bar{A} \bar{B}, ..., C \bar{A}^{L-1} \bar{B}), K=(CBˉ,CAˉBˉ,...,CAˉL1Bˉ),
y = x ∗ K ˉ ,   ( 4 ) y = x * \bar{K}, \ (4) y=xKˉ, (4)

其中 K ˉ ∈ R L \bar{K} ∈ R^{L} KˉRL表示结构化卷积核, L L L表示输入序列 x x x的长度。

Vision Mamba UNet (VM-UNet)

在这里插入图片描述

  VM-UNet的整体架构如图1(a)所示。VM-UNet包括一个Patch Embedding层、一个编码器、一个解码器、一个Final Projection层以及跳跃连接。与先前的方法[9]不同,采用了非对称设计,而非传统的对称结构。

  Patch Embedding层将输入图像 x ∈ R H × W × 3 x ∈ R^{H \times W \times 3} xRH×W×3分割成不重叠的 4 × 4 4 \times 4 4×4大小的patch,然后将图像维度映射到 C C C C C C默认为96。这过程产生嵌入后的图像 x ′ ∈ R H 4 × W 4 × C x^{'} ∈ R^{\frac{H}{4} \times \frac{W}{4} \times C} xR4H×4W×C。最后,使用Layer Normalization [7] 对 x ′ x^{'} x进行标准化,然后将其输入编码器进行特征提取。编码器由四个阶段组成,每个阶段末尾进行patch合并操作,以减小输入特征的高宽同时增加通道数。四个阶段使用了[2, 2, 2, 2]个VSS块,每个阶段的通道数分别为[C, 2C, 4C, 8C]

  解码器同样分为四个阶段,前三个阶段开始时使用patch expanding操作,以减少特征通道数并增加高宽。四个阶段使用了[2, 2, 2, 1]个VSS块,每个阶段的通道数为[8C, 4C, 2C, C]。解码器之后,使用Final Projection层恢复特征的大小,以匹配分割目标。具体来说,通过4倍的ppatch expanding进行上采样,恢复特征的高宽,然后通过投影层恢复通道数。

  对于跳跃连接,采用简单的相加操作,没有额外的复杂性,不会引入额外参数。

VSS block

  VSS块源自于VMamba模型[20],是VM-UNet的核心模块,如图1(b)所示。输入首先经过层归一化,然后分为两个分支。在第一个分支中,输入通过一个线性层后接一个激活函数处理。在第二个分支中,输入经过线性层、深度可分离卷积DWConv和激活函数处理,然后送入2D选择性扫描(SS2D)模块以进一步提取特征。接着,特征通过层归一化进行规范化,然后与第一个分支的输出进行逐元素相乘,以融合两条路径。最后,特征通过一个线性层混合,并与残差连接相结合,形成VSS块的输出。本文默认使用SiLU[14]作为激活函数。

在这里插入图片描述

  SS2D模块由三个部分组成:scan expanding操作、S6块和scan merging操作。如图2所示,这四个方向的扫描能够将输出图像恢复到与输入相同的大小。S6块源自Mamba[16],在S4[17]的基础上引入了选择性机制,通过调整SSM的参数来适应输入。这样,模型能够区分并保留重要的信息,同时过滤掉无关的细节。S6块的伪代码在算法1中给出。
在这里插入图片描述

Loss function

  VM-UNet的引入旨在验证纯基于状态空间模型(SSM)在医学图像分割任务中的应用潜力。因此,仅采用基础的二元交叉熵损失(BceDice损失)和Dice损失(CeDice损失),分别针对二分类和多分类任务,如公式5和6所示。

  BceDice损失函数为:
L B c e D i c e = λ 1 L B c e + λ 2 L D i c e . (5) L_{BceDice} = \lambda_1 L_{Bce} + \lambda_2 L_{Dice}. \quad \text{(5)} LBceDice=λ1LBce+λ2LDice.(5)

  CeDice损失函数为:
L C e D i c e = λ 1 L C e + λ 2 L D i c e , (6) L_{CeDice} = \lambda_1 L_{Ce} + \lambda_2 L_{Dice}, \quad \text{(6)} LCeDice=λ1LCe+λ2LDice,(6)

其中, N N N表示样本总数, C C C表示类别总数。 y i y_{i} yi y ^ i \hat{y}_i y^i分别代表真实标签和预测值。 y i , c y_{i,c} yi,c是一个指示符,如果样本 i i i属于类别 c c c则为1,否则为0。 y ^ i , c \hat{y}_{i,c} y^i,c是模型预测样本 i i i属于类别 c c c的概率。 ∣ X ∣ |X| X ∣ Y ∣ |Y| Y分别代表真值和预测结果。 l a m b d a 1 lambda_1 lambda1 l a m b d a 2 lambda_2 lambda2是损失函数的权重,通常默认设置为1。

  具体地,BCE损失计算如下:
L B c e = − 1 N ∑ i = 1 N [ y i log ⁡ ( y ^ i ) + ( 1 − y i ) log ⁡ ( 1 − y ^ i ) ] . (7) L_{Bce} = -\frac{1}{N} \sum_{i=1}^{N} [y_i \log(\hat{y}_i) + (1 - y_{i}) \log(1 - \hat{y}_i)]. \quad \text{(7)} LBce=N1i=1N[yilog(y^i)+(1yi)log(1y^i)].(7)

  而Cross-Entropy损失计算为:
L C e = − 1 N ∑ i = 1 N ∑ c = 1 C y i , c log ⁡ ( y ^ i , c ) . (7) L_{Ce} = -\frac{1}{N} \sum_{i=1}^{N} \sum_{c=1}^{C} y_{i,c} \log(\hat{y}_{i,c}). \quad \text{(7)} LCe=N1i=1Nc=1Cyi,clog(y^i,c).(7)

  公式(7)中的最后一项是Dice损失,它衡量了预测和真值的交集与两者并集的比例

4、实验

Datasets

  ISIC17和ISIC18数据集:国际皮肤图像协作组织2017年和2018年的挑战数据集(ISIC17和ISIC18)[8,1,12,2]是两个公开的皮肤病变分割数据集,分别包含2,150和2,694张带分割标签的皮肤镜像。作者遵循先前工作[28],以7:3的比例划分数据集作为训练和测试集。具体来说,ISIC17数据集中,训练集包含1,500张图像,测试集包含650张图像。ISIC18数据集中,训练集包括1,886张图像,而测试集包含808张图像。对于这两个数据集,我们详细评估了包括平均交并比(mIoU)、Dice相似系数(DSC)、准确率(Acc)、敏感性(Sen)和特异性(Spe)在内的多个指标。

  Synapse多器官分割数据集(Synapse):Synapse[19,3]是一个公开的多器官分割数据集,包含30个腹部CT病例,共有3,779张轴向腹部临床CT图像,涵盖了8种腹部器官(主动脉、胆囊、左肾、右肾、肝脏、胰腺、脾脏和胃)。按照先前研究[10,9]的设置,我们使用18个病例进行训练,12个病例进行测试。对于这个数据集,我们报告Dice相似系数(DSC)和95% Hausdorff距离(HD95)作为评估指标。

Implementation details

  在实施细节部分,作者遵循先前研究[28,9]的做法,将ISIC17和ISIC18数据集的图像调整为 256 × 256 256 \times 256 256×256尺寸,而Synapse数据集的图像调整为 224 × 224 224 \times 224 224×224。为了防止过拟合,我们采用了随机翻转和随机旋转等数据增强技术。在ISIC17和ISIC18数据集上,我们使用BceDice损失函数,而在Synapse数据集上采用CeDice损失函数。我们设置批次大小为32,并使用AdamW优化器[23],初始学习率为 1 e − 3 1e-3 1e3。CosineAnnealingLR调度器[22]被选用,最大迭代次数为50,最小学习率为 1 e − 5 1e-5 1e5。训练轮数设置为300。对于VM-UNet,使用预训练在ImageNet-1k上的VMamba-S的权重初始化编码器和解码器。所有实验都在单个NVIDIA RTX A6000 GPU上进行。

Main results

在这里插入图片描述在这里插入图片描述
  作者对VM-UNet与当前最先进的模型进行了比较,并在表1中展示了实验结果。实验评估了模型在ISIC17、ISIC18和Synapse等常用医疗图像分割数据集上的性能,包括 Dice 约束系数(Dice Score)、Intersection over Union (IoU) 和平均 Hausdorff 距离(Mean Hausdorff Distance,MHD)等关键指标。VM-UNet在这些指标上显示出与同类模型相当甚至优于的结果,证明了其在处理医学图像时的有效性和竞争力。这些对比实验不仅验证了文中所提的设计策略,也为基于状态空间模型的医疗图像分割提供了新的参考点。

Ablation studies

在这里插入图片描述
  本节针对ISIC17和ISIC18数据集对VM-UNet的初始化进行了消融实验。我们分别使用预训练的VMamba-T和VMamba-S权重初始化VM-UNet。实验结果显示(见表3),更强大的预训练权重显著提升了VM-UNet的下游性能,这表明VM-UNet在很大程度上受到预训练权重的影响。

4、总结

  文中引入了一种基于状态空间模型的纯模型VM-UNet,作为医学图像分割的基线。通过VSS块构建VM-UNet,并使用预训练的VMamba-S初始化权重。在皮肤病变和多器官分割数据集上的全面实验表明,纯基于状态空间模型的模型在医学图像分割任务中表现出强大的竞争力。

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

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

相关文章

Vue2 —— 学习(四)

一、收集表单数据 (一)介绍 前面其实已经 学过了 v-model 双向绑定事件,能获取到表单中的内容到 vm 实例对象中 但是前面只是收集文本框,下面学习一下 各种类型表单数据收集 (单/多 选,下拉框&#xff0…

Java - 赋值运算符

在这个实战中,我们将学习赋值运算符的使用方法。首先,我们将介绍简单赋值运算符的基本概念和语法格式。然后,我们将通过案例演示来加深对赋值运算符的理解。接下来,我们将对比Java和Python这两种不同的编程语言,探讨它…

linux进阶篇:文件查找的利器——grep命令+管道操作详解

Linux文件查找的利器——grep命令管道操作详解 1 grep简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 Uni…

4.2.4 理解路由器数据包过程

1、实验目的 通过本实验可以掌握: 了解IP路由原理了解数据包封装和解封装的概念了解路由器路由和交换过程 2、实验拓扑 观察路由器路由数据包过程的实验拓扑如图4-3所示,设备接口地址信息如表4-2所示。 图4-3 观察路由器路由数据包过程的实验拓扑 本…

常见深度学习之十二大激活函数【函数定义、性质、数学公式、代码实现】

目录 前言 1、激活函数的定义与作用 2、激活函数的性质 二、常见的激活函数 2.1 Sigmoid函数: 1. 作用 2. 优点 3. 缺点 4. 数学公式 5.Sigmoid函数实现及可视化图像 2.2 Tanh函数 1. 函数定义 2.优点 3.缺点 4.Tanh函数实现及可视化图像 2.3ReLU 函数 :…

盘点那些好用的FIORI App(六)-导出金税批量开票文件

着全电发票政策的推行,越来越多的企业由原来的纸质专票以及电子票转向了全电发票,全电发票与原来票的区别在于,企业不再需要金税盘,可以直接登录电子开票平台,开具电子发票。税务平台提供了一个可以批量上传发票进行开…

SpringBoot学习笔记三-原理分析

SpringBoot学习笔记三-原理分析 SpringBoot自动装配1.1 案例1.2 通过注解方式管理Bean1.3 小结1.4 Enable注解1.5 Import注解1.5.1 ImportSelector实现类1.5.2 导入ImportBeanDefinitionRegistrar 1.5 EnableAutoConfiguration1.6 案例 SpringBoot自动装配 当再pom.xml中导入对…

数据结构|排序总结(1)|直接插入排序

排序分类 插入排序:直接插入排序,希尔排序 选择排序:选择排序,堆排序 交换排序:冒泡排序,快速排序 归并排序 插入排序 直接插入排序 相当于摸牌,例如我们现在手上有{2,4&#xff0…

无法解析符号 ‘mybatis‘(类似这种报错)

问题:无法解析符号 mybatis(类似这种报错) 解决:

安科瑞用户侧35kV用户变电站系统结构【110kV/66kV/35kV】

35kV综自系统项目怎么做?客户群体是什么?能带来多大的业绩? 1)主要客户群体是设计院(电力设计院、行业设计院)、甲方、总包。 2)综自系统本身的体量和业绩: a.大约35kV&#xff08…

螺旋矩阵.

0螺旋矩阵 - 蓝桥云课 (lanqiao.cn) 题目描述 对于一个n行m列的表格,我们可以使用螺旋的方式给表格依次填上正整数,我们称填好的表格为一个螺旋矩阵。 例如,一个4行5列的螺旋矩阵如下: 1 2 3 4 5 14 15 16 17 6 13 20 19 18 7 12 …

微服务(狂神)

什么是微服务: 微服务方案: 1. SpringCloud NetFlix 2. Dubbo 3. SpringCloud Alibaba 解决了什么问题: 1. 服务过多,客户端怎么访问 2. 服务过多,服务间怎么传值 3. 服务过多,如何治理 4. 服务过多…

【HTML】简单制作一个分形动画

目录 前言 开始 HTML部分 效果图 ​编辑​编辑​编辑​编辑总结 前言 无需多言,本文将详细介绍一段代码,具体内容如下: 开始 首先新建文件夹,创建一个文本文档,其中HTML的文件名改为[index.html]&a…

Python中csr_matrix的两种初始化方法

本文以csr_matrix为例来说明sparse矩阵的使用方法,其他类型的sparse矩阵可以参考https://docs.scipy.org/doc/scipy/reference/sparse.html csr_matrix是Compressed Sparse Row matrix的缩写组合,下面介绍其两种初始化方法 csr_matrix((data, (row_ind…

京东云16核64G云服务器租用优惠价格500元1个月、5168元一年,35M带宽

京东云16核64G云服务器租用优惠价格500元1个月、5168元一年,35M带宽,配置为:16C64G-450G SSD系统盘-35M带宽-8000G月流量 华北-北京,京东云活动页面 yunfuwuqiba.com/go/jd 活动链接打开如下图: 京东云16核64G云服务器…

Python-VBA函数之旅-bool函数

目录 1、bool函数 1-1、Python: 1-2、VBA: 2、相关文章: 个人主页:非风V非雨-CSDN博客 bool函数(Boolean Function)用于将给定的值转换为布尔值(True或False)。常见的应用场景有: 1、条件判断:bool()…

vulhub之ActiveMQ篇

ActiveMQ的web控制台分三个应用,admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口;admin和api都需要登录后才能使用,fileserver无需登录。fileserver是一个RESTful API…

冻干可以天天给成年猫吃吗?5大好口碑不翻车专家直入!

近年来,冻干猫粮因其高品质而备受喜爱,吸引了无数猫主人的目光,像我这样的资深养猫人早已开始选择冻干喂养。新手养猫就弄不明白了,什么是冻干猫粮呢?冻干可以天天给成年猫吃吗? 一、什么是冻干 简单来说&…

【微服务】------微服务架构技术栈

目前微服务早已火遍大江南北,对于开发来说,我们时刻关注着技术的迭代更新,而项目采用什么技术栈选型落地是开发、产品都需要关注的事情,该篇博客主要分享一些目前普遍公司都在用的技术栈,快来分享一下你当前所在用的技…

2024 Flutter iOS 隐私清单上线,5 月 1 号最后期限,你收到 「ITMS-91053」 了吗?

2023 年底的时候,我就发过了 《Flutter 上了 Apple 第三方重大列表,2024 春季 iOS 的隐私清单究竟是什么?》 相关内容,如果你还对隐私清单等相关要求不了解,建议先看看前文。 如果你已经有相关了解,并且近…