VM-UNet: Vision Mamba UNet for Medical Image Segmentation

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.mzph.cn/news/802924.shtml

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

相关文章

【攻防世界】Confusion1

php的标志是大象,Python的标志是蛇 。Python 的 Flask 框架( Flask 使用 Jinja2 作为模板引擎 ) 点进register.php 输入{{3*4}} 输入 {{config}} 也有回显,ssti 判断是否存在ssti注入: 1. {{8*8}} 2. {{config}} 过滤了关键字&#xff0…

人工智能前沿成科技竞争新高地

以下文章来源:经济参考报 近日,首届中国具身智能大会(CEAI 2024)在上海举行。作为人工智能领域的前沿热点,具身智能正逐步走进现实,成为当前全球科技竞争的新高地、未来产业的新赛道、经济发展的新引擎。 “…

vue3中项目优化(Web Worker的使用)

1.Web Worker的作用 本人的理解:js是单线程执行代码,也就是代码需要从上往下执行,而使用Web Worker后相当于分了一条线程出来执行代码,那么两条线程肯定是比一条线程执行的快。 2.新建Web Worker文件 在public文件夹下新建work…

Linux:gcc

Linux:gcc gcc概述语言发展史gcc的编译过程预处理编译汇编 gcc的链接过程动态库与静态库 gcc概述 GCC(英文全拼:GNU Compiler Collection)是 GNU 工具链的主要组成部分,是一套以 GPL 和 LGPL 许可证发布的程序语言编译…

SpringBoot整合RabbitMQ-应答模式

一、应答模式 RabbitMQ 中的消息应答模式主要包括两种:自动应答(Automatic Acknowledgement)和手动应答(Manual Acknowledgement)。(一般交换机发送消息,RabbitMQ只有在接收到消费者的确认后才…

LeetCode-139. 单词拆分【字典树 记忆化搜索 数组 哈希表 字符串 动态规划】

LeetCode-139. 单词拆分【字典树 记忆化搜索 数组 哈希表 字符串 动态规划】 题目描述:解题思路一:Python动态规划五部曲:定推初遍举【先遍历背包 后遍历物品】必须是排列解题思路二:Python动态规划版本二解题思路三:回…

C++——优先级队列

前言:这篇文章我们继续来分享一个c的容器——优先级队列。 一.理解优先级 何为优先级一说?实际上就是有顺序的意思。 优先级队列,即有顺序的队列,是一个无需我们自己进行排序操作,在数据传入时就会由容器自己排好序的…

冒泡排序解读

在信息爆炸的时代,数据无处不在,而如何有效地管理和处理这些数据,成为了现代计算机科学的一个重要课题。排序算法,作为数据处理的基本工具之一,对于数据的组织、搜索和分析起着至关重要的作用。今天,我们就…

在家学机器人技术指南

机器人技术是一个跨学科的领域,涉及计算机科学、电子工程、机械工程、人工智能等多个方面。在家自学机器人技术是完全可能的,但需要有计划和系统的学习路径,以及对相关领域的基础知识有一定的了解。 以下是一些建议,可以帮助你在家…

[C++][算法基础]合并集合(并查集)

一共有 n 个数,编号是 1∼n,最开始每个数各自在一个集合中。 现在要进行 m 个操作,操作共有两种: M a b,将编号为 a 和 b 的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操…

力扣刷题Days33-209. 长度最小的子数组(js)

目录 1,题目-滑动窗口 2,代码 滑动窗口 3,学习与总结 1,题目-滑动窗口 给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1,…

动态路由-基于vue-admin-template

基于 vue-admin-template的动态路由 1. 拆分静态路由与动态路由 静态路由----所有人都可以访问—首页/登录/404 动态路由–有权限的人才可以访问—组织/角色/员工/权限 2. 根据用户权限添加动态路由 获取对应的权限标识(vuex中actions中把用户资料通过return 进行返回&…

代码算法训练营day14 | 理论基础、递归遍历

day14: 理论基础二叉树的分类:二叉树的种类:满二叉树完全二叉树二叉搜索树平衡二叉搜索树 二叉树的存储方式:链式存储顺序存储 二叉树的遍历方式:深度优先和广度优先遍历实现方式 二叉树的定义: 递归遍历递…

(学习日记)2024.04.11:UCOSIII第三十九节:软件定时器

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

Vue文档

Vue是什么?为什么要学习他 Vue是什么? Vue是前端优秀框架, 是一套用于构建用户界面的渐进式框架 为什么要学习Vue Vue是目前前端最火的框架之一Vue是目前企业技术栈中要求的知识点Vue可以提升开发体验Vue学习难度较低… Vue开发前的准备 安…

分享 3 个实时人工智能图像生成工具

如果有人还需要开源人工智能技术快速发展的实例,那就是实时 Diffusion 。一年前,如果想分析单个单词对图像提示的影响,甚至尝试使用 Diffusion 模型替换视频中的面孔,需要两件事: 处理开源代码自建 WEB 应用程序 到 …

springboot项目引入swagger

1.引入依赖 创建项目后&#xff0c;在 pom.xml 文件中引入 Swagger3 的相关依赖。回忆一下&#xff0c;我们集成 Swagger2 时&#xff0c;引入的依赖如下&#xff1a; <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2&…

2024智能计算、大数据应用与信息科学国际会议(ICBDAIS2024)

2024智能计算、大数据应用与信息科学国际会议(ICBDAIS2024) 会议简介 智能计算、大数据应用与信息科学之间存在相互依存、相互促进的关系。智能计算和大数据应用的发展离不开信息科学的支持和推动&#xff0c;而信息科学的发展又需要智能计算和大数据应用的不断拓展和应用。智…

Jmeter —— jmeter利用取样器中http发送请求

使用Jmeter发送HTTP请求 取样器是用来模拟用户操作&#xff0c;向服务器发送请求以及接收服务器的响应数 据的一类元件&#xff0c;其中HTTP请求取样器是用来模拟常用的http请求的 步骤如下&#xff1a; 步骤一&#xff1a;添加线程组 右击测试计划——添加——线程&#x…

如何制作exe文件第一步

目录 0.图片链接1.Welcome&#xff08;可跳过&#xff09;2.Project type--作用选择制作jar包的模式3.定义生成exe应用文件命名和输出地址4.配置执行信息4.1配置应用执行显示方式、安装名称、和显示图标4.2是否重定向日志文件&#xff08;根据需要进行选择&#xff09;4.3配置安…