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} IRC×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} FSR32×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)} FlDR(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}} FlRC ×H ×W ×D <

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

88.[4]攻防世界 web php_rce

之前做过&#xff0c;回顾&#xff08;看了眼之前的wp,跟没做过一样&#xff09; 属于远程命令执行漏洞 在 PHP 里&#xff0c;system()、exec()、shell_exec()、反引号&#xff08;&#xff09;等都可用于执行系统命令。 直接访问index.php没效果 index.php?sindex/think\a…

软件工程概论试题五

一、多选 1.好的软件的基本属性包括()。 A. 效率 B. 可依赖性和信息安全性 C. 可维护性 D.可接受性 正答&#xff1a;ABCD 2.软件工程的三要素是什么()? A. 结构化 B. 工具 C.面向对象 D.数据流! E.方法 F.过程 正答&#xff1a;BEF 3.下面中英文术语对照哪些是正确的、且是属…

cf集合***

当周cf集合&#xff0c;我也不知道是不是当周的了&#xff0c;麻了&#xff0c;下下周争取写到e补f C. Kevin and Puzzle&#xff08;999&#xff09; 题解&#xff1a;一眼动态规划&#xff0c;但是具体这个状态应该如何传递呢&#xff1f; 关键点&#xff1a;撒谎的人不相…

蓝桥杯思维训练营(一)

文章目录 题目总览题目详解翻之一起做很甜的梦 蓝桥杯的前几题用到的算法较少&#xff0c;大部分考察的都是思维能力&#xff0c;方法比较巧妙&#xff0c;所以我们要积累对应的题目&#xff0c;多训练 题目总览 翻之 一起做很甜的梦 题目详解 翻之 思维分析&#xff1a;一开…

基于微信小程序的电子商城购物系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

变量和常量

一.变量 1.标准声明 var 变量名 变量类型 变量声明行末不需要分号 2..批量声明 package main import "fmt" func main(){var(a string b int c boold float32)}3.变量的初始化 var a int 10 var b float321.1 4.类型推导 var name"tom" var age18 fmt.Pr…

7. 马科维茨资产组合模型+金融研报AI长文本智能体(Qwen-Long)增强方案(理论+Python实战)

目录 0. 承前1. 深度金融研报准备2. 核心AI函数代码讲解2.1 函数概述2.2 输入参数2.3 主要流程2.4 异常处理2.5 清理工作2.7 get_ai_weights函数汇总 3. 汇总代码4. 反思4.1 不足之处4.2 提升思路 5. 启后 0. 承前 本篇博文是对前两篇文章&#xff0c;链接: 5. 马科维茨资产组…

Linux网络 HTTP cookie 与 session

Cookie 定义与功能&#xff1a;Cookie是服务器发送到用户浏览器并保存在本地的一小块数据&#xff0c;它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常&#xff0c;它用于告知服务端两个请求是否来自同一浏览器&#xff0c;如保持用户的登录状态、记录…

BW AO/工作簿权限配置

场景&#xff1a; 按事业部配置工作簿权限&#xff1b; 1、创建用户 事务码&#xff1a;SU01&#xff0c;用户主数据的维护&#xff0c;可以创建、修改、删除、锁定、解锁、修改密码等 用户设置详情页 2、创建权限角色 用户的权限菜单是通过权限角色分配来实现的 2.1、自定…

Python之Excel操作 - 写入数据

我们将使用 openpyxl 库&#xff0c;它是一个功能强大且易于使用的库&#xff0c;专门用于处理 Excel 文件。 1. 安装 openpyxl 首先&#xff0c;你需要安装 openpyxl 库。你可以使用 pip 命令进行安装&#xff1a; pip install openpyxl创建一个文件 example.xlsx&#xff…

【后端开发】字节跳动青训营之性能分析工具pprof

性能分析工具pprof 一、测试程序介绍二、pprof工具安装与使用2.1 pprof工具安装2.2 pprof工具使用 资料链接&#xff1a; 项目代码链接实验指南pprof使用指南 一、测试程序介绍 package mainimport ("log""net/http"_ "net/http/pprof" // 自…

2025开源DouyinLiveRecorder全平台直播间录制工具整合包,多直播同时录制、教学直播录制、教学视频推送、简单易用不占内存

一、DouyinLiveRecorder软件介绍&#xff08;文末提供下载&#xff09; 官方地址&#xff1a;GitHub - ihmily/DouyinLiveRecorder 本文信息来源于作者GitHub地址 一款简易的可循环值守的直播录制工具&#xff0c;基于FFmpeg实现多平台直播源录制&#xff0c;支持自定义配置录制…

大数据学习之SCALA分布式语言三

7.集合类 111.可变set一 112.可变set二 113.不可变MAP集合一 114.不可变MAP集合二 115.不可变MAP集合三 116.可变map一 package com . itbaizhan . chapter07 //TODO 2. 使用 mutable.Map 前导入如下包 import scala . collection . mutable // 可变 Map 集合 object Ma…

RAG是否被取代(缓存增强生成-CAG)吗?

引言&#xff1a; 本文深入研究一种名为缓存增强生成&#xff08;CAG&#xff09;的新技术如何工作并减少/消除检索增强生成&#xff08;RAG&#xff09;弱点和瓶颈。 LLMs 可以根据输入给他的信息给出对应的输出&#xff0c;但是这样的工作方式很快就不能满足应用的需要: 因…

使用 Tauri 2 + Next.js 开发跨平台桌面应用实践:Singbox GUI 实践

Singbox GUI 实践 最近用 Tauri Next.js 做了个项目 - Singbox GUI&#xff0c;是个给 sing-box 用的图形界面工具。支持 Windows、Linux 和 macOS。作为第一次接触这两个框架的新手&#xff0c;感觉收获还蛮多的&#xff0c;今天来分享下开发过程中的一些经验~ 为啥要做这个…

三甲医院大型生信服务器多配置方案剖析与应用(2024版)

一、引言 1.1 研究背景与意义 在当今数智化时代&#xff0c;生物信息学作为一门融合生物学、计算机科学和信息技术的交叉学科&#xff0c;在三甲医院的科研和临床应用中占据着举足轻重的地位。随着高通量测序技术、医学影像技术等的飞速发展&#xff0c;生物医学数据呈爆发式…

2025_2_1 C语言中关于字符串

1.字符串 C语言中的字符串都是字符数组&#xff0c;以空字符 ‘\0’结尾。 创建一个字符数组必须以空字符结尾&#xff0c;不然会访问非法区域&#xff0c;直到找到\0为止 char c[] {a, b, c, \0};长度为n的字符串字面值&#xff0c;会存储在虚拟内存中的只读数据段中&#…

Redis篇 Redis如何清理过期的key以及对应的解决方法

Redis设置Key过期时间 在 Redis 中&#xff0c;可以通过特定的命令为 Key 设置过期时间&#xff0c;使得 Key 在一定时间后自动删除&#xff0c;这对于管理缓存、验证码等临时数据非常有用。 解决方法 1. Redis过期删除策略 1.1 如何实现过期策略 对一个 key 设置了过期时间…

java练习(1)

两数之和&#xff08;题目来自力扣&#xff09; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相…

Python3 OS模块中的文件/目录方法说明十四

一. 简介 前面文章简单学习了 Python3 中 OS模块中的文件/目录的部分函数。 本文继续来学习 OS 模块中文件、目录的操作方法&#xff1a;os.statvfs() 方法&#xff0c;os.symlink() 方法。 二. Python3 OS模块中的文件/目录方法 1. os.statvfs() 方法 os.statvfs() 方法用…