LightM-UNet(2024 CVPR)
| 论文标题 | LightM-UNet: Mamba Assists in Lightweight UNet for Medical Image Segmentation |
|---|---|
| 论文作者 | Weibin Liao, Yinghao Zhu, Xinyuan Wang, Chengwei Pan, Yasha Wang and Liantao Ma |
| 发表日期 | 2024年01月01日 |
| GB引用 | > Weibin Liao, Yinghao Zhu, Xinyuan Wang, et al. LightM-UNet: Mamba Assists in Lightweight UNet for Medical Image Segmentation[J]., 2024. > [1]Weibin Liao, Yinghao Zhu, Xinyuan Wang, et al. LightM-UNet: Mamba Assists in Lightweight UNet for Medical Image Segmentation[J]. Arxiv E-prints, 2024, abs/2403.05246. |
| DOI | 10.48550/arXiv.2403.05246 |
摘要
UNet及其变体在医学图像分割中得到了广泛的应用。然而,这些模型,特别是基于Transformer架构的模型,由于参数数量众多和计算负担重,给移动健康应用带来了挑战。最近,以Mamba为代表的State Space Models(SSMs)作为CNN和Transformer架构的有力竞争者出现。基于此,我们采用Mamba作为UNet中CNN和Transformer的轻量级替代品,旨在解决真实医疗环境中计算资源限制带来的挑战。为此,我们引入了轻量级的Mamba UNet(LightM-UNet),它在一个轻量级框架中集成了Mamba和UNet。具体来说,LightM-UNet以纯粹的Mamba方式利用残差视觉Mamba层提取深层语义特征和建模长距离空间依赖关系,具有线性计算复杂度。在两个真实世界的2D/3D数据集上进行的广泛实验表明,LightM-UNet超越了现有的最先进文献。值得注意的是,与著名的nnU-Net相比,LightM-UNet在显著降低参数和计算成本116倍和21倍的同时,实现了更优越的分割性能。这突显了Mamba在促进模型轻量化方面的潜力。我们的代码实现公开可访问于https://github.com/MrBlankness/LightM-UNet。
研究问题
基于Transformer架构的模型,由于参数数量众多和计算负担重,给移动健康应用带来了挑战。
- 残差视觉Mamba层(RVM Layer):用于提取深层语义特征,同时几乎不增加新的参数和计算复杂度。
- Vision State-Space Module(VSS Module):用于长距离空间建模,通过并行分支和Hadamard乘积来聚合特征。
- 编码器和解码器块:编码器块仅包含Mamba结构,解码器块用于解码特征图并恢复图像分辨率。
研究方法
论文通过以下主要方法解决了医疗图像分割模型的轻量化问题:
- 引入Mamba模型:Mamba是一种状态空间模型(SSM),它能够有效地建立长距离依赖关系,并且具有线性的输入大小复杂度。论文中提出使用Mamba作为UNet中的轻量级替代方案,以减少模型的参数数量和计算负担。
- 设计LightM-UNet架构:LightM-UNet结合了UNet的架构和Mamba的特点,创建了一个轻量级的网络。这个网络在保持UNet的对称U形结构的同时,通过集成Mamba来提取深层语义特征和建模长距离空间依赖。
- 提出残差视觉Mamba层(RVM Layer):为了在不增加额外参数和计算复杂度的情况下增强SSM的能力,论文提出了RVM Layer。这一层利用残差连接和调整因子来提取图像的深层特征,并增强对长距离空间依赖的建模能力。
- 实现Vision State-Space Module(VSS Module):VSS Module用于长距离空间建模,它通过两个并行分支处理特征,并通过Hadamard乘积聚合特征,以生成具有相同形状的输出。
- 优化编码器和解码器块:LightM-UNet的编码器块仅包含Mamba结构,以最小化参数和计算成本。解码器块则用于解码特征图并恢复图像分辨率,同时利用跳跃连接提供多级特征图。
- 实验验证:通过在LiTs和Montgomery&Shenzhen数据集上的实验,论文验证了LightM-UNet在2D和3D分割任务中的性能。实验结果表明,LightM-UNet在参数数量和计算成本上显著低于现有的最先进模型,同时在性能上达到了或超过了这些模型。
- 消融研究:为了证明所提出模块的有效性,论文进行了消融研究,分析了在UNet框架中CNN、Transformer和Mamba的表现,并验证了RVM Layer中调整因子和残差连接的重要性。
通过这些方法,论文成功地开发了一个轻量级且高效的医疗图像分割模型,该模型在保持高性能的同时,显著降低了模型的参数数量和计算成本。
LightM-UNet以纯Mamba的方式利用Residual Vision Mamba Layer来**提取深度语义特征,并建模长期空间依赖关系,具有线性计算复杂度**。
技术上,我们提出了残差视觉Mamba层(RVM层),以纯Mamba方式从图像中提取深度特征。通过引入最少的新参数和计算开销,我们**利用残差连接和调整因子,进一步增强了SSM模拟视觉图像中长距离空间依赖的能力**。
💡(以3D版本为例的方法论)
总体架构

提出的LightM-UNet的整体架构如图2所示。
给定一个输入图像 I ∈ R C × H × W × D I\in\mathbb{R}^{C\times H\times W\times D} I∈RC×H×W×D ,其中 C C C、 H H H、 W W W 和 D D D分别表示 3 D 3D 3D医学图像的通道数、高度、宽度和切片数。LightM-UNet首先使用深度卷积(DWConv)层进行浅层特征提取,生成浅层特征图 F S ∈ R 32 × H × W × D F_S\in\mathbb{R}^{32\times H\times W\times D} FS∈R32×H×W×D,其中32表示固定的滤波器数量。
💡为什么使用深度卷积(DWConv)层进行浅层特征提取?
- DWConv可以有效地降低网络的复杂度,减少训练参数的数目。它通过局部连接、权值共享及池化操作等特性,使得网络更轻量级。
- DWConv使模型对平移、扭曲、缩放具有一定程度的不变性,并具有强鲁棒性和容错能力。这有利于浅层特征提取。
- DWConv层可以提取图像的局部特征,保留空间信息。这对于后续深层特征提取和语义建模非常有用。
- 在LightM-UNet中,使用DWConv层进行浅层特征提取,可以减少参数和计算量,使得整个网络更轻量级。这与LightM-UNet的设计目标一致。
- DWConv层输出的特征图,可以直接作为后续Encoder Block的输入,参与深层特征提取和建模。
综上所述,使用DWConv层进行浅层特征提取,可以有效地降低网络复杂度,同时保留有用的局部特征信息,为深层特征建模打下良好基础。这与LightM-UNet的轻量化和高性能目标是一致的。
💡相对于其他卷积(如普通卷积、点卷积、空洞卷积等),有什么优势吗?
- 参数数量减少:DWConv通过分离输入通道和输出通道的卷积操作,只对输入的每个通道单独进行卷积,大大减少了参数数量。对于输入通道数为C的图像,普通卷积的参数数量为C×C×k×k(k为卷积核大小),而DWConv的参数数量仅为C×k×k。这降低了模型的复杂度和内存占用。
- 计算效率提高:由于参数数量减少,DWConv的计算效率相比普通卷积更高。这对于移动设备和边缘计算等资源受限的场景尤为重要。
- 保持空间信息:DWConv保留了输入特征图的空间信息,因为每个输入通道的卷积操作都是独立的。这有助于在后续的神经网络层中保持位置信息。
- 易于集成:DWConv可以很容易地集成到现有的神经网络架构中,作为单独的层使用,或者与其他类型的卷积层组合使用。
💡相比于其他卷积的劣势:
- 普通卷积:相比DWConv,普通卷积的参数数量多,计算量大,但在某些情况下能够更好地捕捉多通道之间的交互信息。
- 点卷积:点卷积(Pointwise Convolution)实际上是一种1×1的卷积,用于实现跨通道的交互。它的参数数量比DWConv多,但能够灵活地融合不同通道的信息。
- 空洞卷积:空洞卷积(Atrous Convolution)通过引入空洞来扩大感受野,但不增加参数数量。它在某些任务中能够提供更大的感受野,但相比DWConv,空洞卷积的计算效率可能较低。
总的来说,DWConv在轻量化和计算效率方面具有优势,适合用于构建轻量级的神经网络模型,尤其是在资源受限的设备上。然而,具体使用哪种卷积操作还需要根据具体的应用场景和任务需求来决定。
💡那在实际应用中怎么选择呢?
任务需求:
如果任务需要模型具有很高的空间分辨率和细节捕捉能力,可能会倾向于使用普通卷积。 如果任务需要模型具有较宽的视野和捕捉长期依赖关系,可能会选择空洞卷积。 对于轻量级模型或移动设备上的实时任务,深度卷积可能是更好的选择。
资源限制:
在资源受限的环境(如移动设备、嵌入式系统)中,深度卷积由于其较低的参数数量和计算复杂度而更具优势。 如果计算资源不是限制因素,可以使用普通卷积或点卷积来构建更复杂的模型。
模型性能:
需要评估不同卷积类型对模型性能的影响。有时,虽然深度卷积减少了参数和计算量,但可能会牺牲一些性能。需要通过实验来确定最佳的平衡点。 可以通过消融研究来比较不同卷积类型对模型性能的影响。
训练时间:
深度卷积通常训练速度更快,因为它有更少的参数需要优化。 普通卷积和空洞卷积的训练时间可能更长,因为它们有更多的参数。
模型集成:
考虑到模型是否需要与其他组件或网络层集成。例如,深度卷积可以很容易地与其他类型的卷积层组合使用,形成混合卷积层。
实际应用场景:
对于实时应用,如自动驾驶、视频监控等,需要快速响应,因此轻量级模型和深度卷积可能更合适。 对于需要高精度和复杂特征提取的任务,如医学图像分析,可能会使用普通卷积或空洞卷积。
最终,选择哪种卷积类型通常需要通过实验来确定。可以尝试不同的卷积类型,并使用验证集来评估模型的性能,从而找到最适合当前任务和资源限制的卷积类型。
随后,LightM-UNet结合三个连续的编码器块(Encoder Blocks)来从图像中提取深度特征。在每个编码器块之后,特征图的通道数翻倍,而分辨率减半。因此,在第 l l l个编码器块中,LightM-UNet提取深度特征 F l D ∈ R ( 32 × 2 l ) × ( H / 2 l ) × ( W / 2 l ) × ( D / 2 l ) F_l^D\in \mathbb{R}^{(32\times2^l)\times(H/2^l)\times(W/2^l)\times(D/2^l)} FlD∈R(32×2l)×(H/2l)×(W/2l)×(D/2l),其中 I ∈ { 1 , 2 , 3 } I\in\{1,2,3\} I∈{1,2,3}。
在此之后,LightM-UNet使用一个瓶颈块(Bottleneck Block)来模拟长距离空间依赖,同时保持特征图的大小不变。接着,LightM-UNet整合了三个连续的解码器块(Decoder Blocks)进行特征解码和图像分辨率恢复。在每个解码器块之后,特征图的通道数减半,分辨率翻倍。最后,最后一个解码器块的输出达到与原始图像相同的分辨率,包含32个特征通道。LightM-UNet使用深度卷积(DWConv)层将通道数映射到分割目标的数量,并应用SoftMax激活函数来生成图像掩码。与UNet的设计一致,LightM-UNet也采用跳跃连接(skip connections)为解码器提供多级特征图。
Encoder Block
为了最小化参数数量和计算成本
LightM-UNet采用仅包含Mamba结构的编码器块(Encoder Blocks)来从图像中提取深度特征。具体来说,给定一个特征图 F l ∈ R C ~ × H ~ × W ~ × D ~ F_l\in\mathbb{R}^{\widetilde{C}\times\widetilde{H}\times\widetilde{W}\times\widetilde{D}} Fl∈RC ×H ×W ×D <
相关文章:
LightM-UNet(2024 CVPR)
论文标题LightM-UNet: Mamba Assists in Lightweight UNet for Medical Image Segmentation论文作者Weibin Liao, Yinghao Zhu, Xinyuan Wang, Chengwei Pan, Yasha Wang and Liantao Ma发表日期2024年01月01日GB引用> Weibin Liao, Yinghao Zhu, Xinyuan Wang, et al. Ligh…...
stm32硬件实现与w25qxx通信
使用的型号为stm32f103c8t6与w25q64。 STM32CubeMX配置与引脚衔接 根据stm32f103c8t6引脚手册,采用B12-B15四个引脚与W25Q64连接,实现SPI通信。 W25Q64SCK(CLK)PB13MOSI(DI)PB15MISO(DO)PB14CS(…...
FPGA 使用 CLOCK_DEDICATED_ROUTE 约束
使用 CLOCK_DEDICATED_ROUTE 约束 CLOCK_DEDICATED_ROUTE 约束通常在从一个时钟区域中的时钟缓存驱动到另一个时钟区域中的 MMCM 或 PLL 时使 用。默认情况下, CLOCK_DEDICATED_ROUTE 约束设置为 TRUE ,并且缓存 /MMCM 或 PLL 对必须布局在相同…...
一个开源 GenBI AI 本地代理(确保本地数据安全),使数据驱动型团队能够与其数据进行互动,生成文本到 SQL、图表、电子表格、报告和 BI
一、GenBI AI 代理介绍(文末提供下载) github地址:https://github.com/Canner/WrenAI 本文信息图片均来源于github作者主页 在 Wren AI,我们的使命是通过生成式商业智能 (GenBI) 使组织能够无缝访问数据&…...
C动态库的生成与在Python和QT中的调用方法
目录 一、动态库生成 1)C语言生成动态库 2)c类生成动态库 二、动态库调用 1)Python调用DLL 2)QT调用DLL 三、存在的一些问题 1)python调用封装了类的DLL可能调用不成功 2)DLL格式不匹配的问题 四、…...
C++ Primer 自定义数据结构
欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...
解析 Oracle 中的 ALL_SYNONYMS 和 ALL_VIEWS 视图:查找同义词与视图的基础操作
目录 前言1. ALL_SYNONYMS 视图2. ALL_VIEWS 视图3. 扩展 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 1. ALL_SYNONYMS 视图 在 Oracle 数据库中,同义词(Synonym)是对数…...
PyTorch框架——基于深度学习YOLOv8神经网络学生课堂行为检测识别系统
基于YOLOv8深度学习的学生课堂行为检测识别系统,其能识别三种学生课堂行为:names: [举手, 读书, 写字] 具体图片见如下: 第一步:YOLOv8介绍 YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本…...
深入探索 Vue 3 Markdown 编辑器:高级功能与实现
目录 1. 为什么选择 Markdown 编辑器?2. 选择合适的 Markdown 编辑器3. 安装与基本配置安装 配置 Markdown 编辑器代码说明 4. 高级功能实现4.1 实时预览与双向绑定4.2 插入图片和图像上传安装图像上传插件配置图像上传插件 4.3 数学公式支持安装 KaTeX配置 KaTeX 插…...
7.攻防世界fileclude
题目描述 进入题目页面如下 看到题目提示应该为文件包含漏洞 解释上述代码 // 输出提示信息:错误的方式! WRONG WAY! <?php // 包含名为 "flag.php" 的文件,通常这个文件里可能包含重要的敏感信息,如 flag inclu…...
【自然语言处理(NLP)】深度学习架构:Transformer 原理及代码实现
文章目录 介绍Transformer核心组件架构图编码器(Encoder)解码器(Decoder) 优点应用代码实现导包基于位置的前馈网络残差连接后进行层规范化编码器 Block编码器解码器 Block解码器训练预测 个人主页:道友老李 欢迎加入社…...
【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(二)
目录 1 -> HML语法 1.1 -> 页面结构 1.2 -> 数据绑定 1.3 -> 普通事件绑定 1.4 -> 冒泡事件绑定5 1.5 -> 捕获事件绑定5 1.6 -> 列表渲染 1.7 -> 条件渲染 1.8 -> 逻辑控制块 1.9 -> 模板引用 2 -> CSS语法 2.1 -> 尺寸单位 …...
当WebGIS遇到智慧文旅-以长沙市不绕路旅游攻略为例
目录 前言 一、旅游数据组织 1、旅游景点信息 2、路线时间推荐 二、WebGIS可视化实现 1、态势标绘实现 2、相关位置展示 三、成果展示 1、第一天旅游路线 2、第二天旅游路线 3、第三天旅游路线 4、交通、订票、住宿指南 四、总结 前言 随着信息技术的飞速发展&…...
《大数据时代“快刀”:Flink实时数据处理框架优势全解析》
在数字化浪潮中,数据呈爆发式增长,实时数据处理的重要性愈发凸显。从金融交易的实时风险监控,到电商平台的用户行为分析,各行业都急需能快速处理海量数据的工具。Flink作为一款开源的分布式流处理框架,在这一领域崭露头…...
【机器学习理论】朴素贝叶斯网络
基础知识: 先验概率:对某个事件发生的概率的估计。可以是基于历史数据的估计,可以由专家知识得出等等。一般是单独事件概率。 后验概率:指某件事已经发生,计算事情发生是由某个因素引起的概率。一般是一个条件概率。 …...
使用Pygame制作“吃豆人”游戏
本篇博客展示如何使用 Python Pygame 编写一个简易版的“吃豆人(Pac-Man)” 风格游戏。这里我们暂且命名为 Py-Man。玩家需要控制主角在一个网格地图里移动、吃掉散布在各处的豆子,并躲避在地图中巡逻的幽灵。此示例可帮助你理解网格地图、角…...
使用 Docker(Podman) 部署 MongoDB 数据库及使用详解
在现代开发环境中,容器化技术(如 Docker 和 Podman)已成为部署和管理应用程序的标准方式。本文将详细介绍如何使用 Podman/Docker 部署 MongoDB 数据库,并确保其他应用程序容器能够通过 Docker 网络成功连接到 MongoDB。我们将逐步…...
SQL入门到精通 理论+实战 -- 在 MySQL 中学习SQL语言
目录 一、环境准备 1、MySQL 8.0 和 Navicat 下载安装 2、准备好的表和数据文件: 二、SQL语言简述 1、数据库基础概念 2、什么是SQL 3、SQL的分类 4、SQL通用语法 三、DDL(Data Definition Language):数据定义语言 1、操…...
Electricity Market Optimization 探索系列(一)
本文参考链接:Linear Programming Mini Example 先从一个线性规划的例子说起: 问题背景: 现在需要使用两台发电机满足用户的用电需求,发电机一的发电功率上限是 6MW,发电机二的发电功率上限是 4MW,发电…...
x86-64数据传输指令
关于汇编语言一些基础概念的更详细的介绍,可移步MIPS指令集(一)基本操作_mips指令 sw-CSDN博客 该指令集中一个字2字节。 该架构有16个64位寄存器,名字都以%r开头,每个寄存器的最低位字节,低1~2位字节&…...
【ESP32】ESP-IDF开发 | WiFi开发 | TCP传输控制协议 + TCP服务器和客户端例程
1. 简介 TCP(Transmission Control Protocol),全称传输控制协议。它的特点有以下几点:面向连接,每一个TCP连接只能是点对点的(一对一);提供可靠交付服务;提供全双工通信&…...
算法基础学习——快排与归并(附带java模版)
快速排序和归并排序是两种速度较快的排序方式,是最应该掌握的两种排序算法, (一)快速排序(不稳定的) 基本思想:分治 平均时间复杂度:O(nlogn) / 最慢O(n^2) / 最快O(n) 步骤&…...
指针的进化—sizeof和strlen对比(字符串和字符数组的区分)
1.前言 如果你对各个数组的内容存放是什么没有个清晰的概念,对指针偏移之后的数量算不出来或者模棱两可,那么本篇就来详细介绍sizeof和strlen来具象化的显示数组的内容存放了多少内容,偏移量变化后的变化,这个数组进行运算后会不会…...
TensorFlow简单的线性回归任务
如何使用 TensorFlow 和 Keras 创建、训练并进行预测 1. 数据准备与预处理 2. 构建模型 3. 编译模型 4. 训练模型 5. 评估模型 6. 模型应用与预测 7. 保存与加载模型 8.完整代码 1. 数据准备与预处理 我们将使用一个简单的线性回归问题,其中输入特征 x 和标…...
【memgpt】letta 课程1/2:从头实现一个自我编辑、记忆和多步骤推理的代理
llms-as-operating-systems-agent-memory llms-as-operating-systems-agent-memory内存 操作系统的内存管理...
6-图像金字塔与轮廓检测
文章目录 6.图像金字塔与轮廓检测(1)图像金字塔定义(2)金字塔制作方法(3)轮廓检测方法(4)轮廓特征与近似(5)模板匹配方法6.图像金字塔与轮廓检测 (1)图像金字塔定义 高斯金字塔拉普拉斯金字塔 高斯金字塔:向下采样方法(缩小) 高斯金字塔:向上采样方法(放大)…...
深入理解Java引用传递
先看一段代码: public static void add(String a) {a "new";System.out.println("add: " a); // 输出内容:add: new}public static void main(String[] args) {String a null;add(a);System.out.println("main: " a);…...
925.长按键入
目录 一、题目二、思路三、解法四、收获 一、题目 你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。 你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字&am…...
【Rust自学】15.2. Deref trait Pt.1:什么是Deref、解引用运算符*与实现Deref trait
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 15.2.1. 什么是Deref trait Deref的全写是Dereference,就是引用的英文reference加上"de"这个反义前缀,…...
图书管理系统 Axios 源码__新增图书
目录 功能介绍 核心代码解析 源码:新增图书功能 总结 本项目基于 HTML、Bootstrap、JavaScript 和 Axios 开发,实现了图书的增删改查功能。以下是新增图书的功能实现,适合前端开发学习和项目实践。 功能介绍 用户可以通过 模态框…...
