当前位置: 首页 > article >正文

nnMamba:基于状态空间模型的3D生物医学图像分割、分类和地标检测

摘要
本文提出了一种基于状态空间模型(SSMs)的创新架构——nnMamba,用于解决3D生物医学图像分割、分类及地标检测任务中的长距离依赖建模难题。nnMamba结合了卷积神经网络(CNN)的局部特征提取能力与SSMs的全局上下文建模优势,通过设计的MICCSS模块(通道-孪生空间学习)显著提升了模型性能。在BraTS 2023、ADNI等6个数据集上的实验表明,nnMamba在分割Dice系数(73.98%)、分类准确率(89.41%)及地标检测误差(2.11)等指标上均优于现有方法。该框架为医学图像分析提供了高效且轻量化的解决方案。
关键词:3D医学图像分析 状态空间模型 长距离依赖建模 图像分割


引言

生物医学图像分析在疾病诊断、治疗规划等领域至关重要,但面临高维数据处理和长距离依赖建模的挑战。传统CNN依赖局部感受野,难以捕捉全局上下文;Transformer虽能建模长距离关系,但计算复杂度高,尤其对3D医学图像(如MRI、CT)不友好。状态空间序列模型(SSMs)因其在长序列数据中的高效性受到关注,而Mamba模型进一步引入输入自适应机制,显著提升了密集数据场景的性能。

在这里插入图片描述
本文提出nnMamba,一种融合CNN与SSMs的新型架构,通过MICCSS模块在通道和空间维度建模长距离关系,并针对分割、分类和地标检测任务优化设计。实验表明,nnMamba在多项任务中达到SOTA,且参数和计算量更低,为医学图像分析提供了一种高效解决方案。


方法

在这里插入图片描述

1. 状态空间模型(SSMs)基础

SSMs通过线性常微分方程建模输入序列的全局关系。其数学形式为:
x ′ ( t ) = A x ( t ) + B u ( t ) , y ( t ) = C x ( t ) , x'(t)=A x(t)+B u(t), \quad y(t)=C x(t), x(t)=Ax(t)+Bu(t),y(t)=Cx(t),
其中, A A A B B B C C C为系统参数。结构化SSM(如图2 c)通过参数优化提升长序列建模能力,而Mamba进一步引入输入自适应机制,使其在医学图像等高维数据中更具优势。


2. MICCSS模块:通道-孪生空间学习

MICCSS是nnMamba的核心模块,结合CNN与SSMs,实现局部特征提取与全局关系建模的协同。

2.1 并行CNN与SSM设计
  • Mamba卷积(MIC):将SSM嵌入CNN框架(如图2 d),公式为:
    F o u t = Convs.O ( SSM ( Convs.I ( F i n ) ) + Convs.I ( F i n ) ) , F_{out} = \text{Convs.O}\left( \text{SSM}\left( \text{Convs.I}(F_{in}) \right) + \text{Convs.I}(F_{in}) \right), Fout=Convs.O(SSM(Convs.I(Fin))+Convs.I(Fin)),
    其中, Convs.I \text{Convs.I} Convs.I Convs.O \text{Convs.O} Convs.O为1×1卷积、批归一化及ReLU激活,用于特征过滤与增强。
2.2 通道-孪生空间(CSS)交互
  • 多维度翻转增强:将输入特征重塑为 B × C × L B \times C \times L B×C×L,通过翻转不同维度(如空间维度)生成增强特征,共享SSM权重以捕获多向长距离依赖(算法1)。

算法1 CSS:用于长距离建模的通道 - 孪生空间输入
1: SiamSSM // 具有共享参数的SSM
2: xflat ← 形状为[B, L, C]的输入特征 // 遍历翻转维度的组合
3: xmamba ← SiamSSM(xflat)
4: for d in {[1], [2], [1, 2]} do
5: xflip ← flip(xflat, dims = d)
6: xmamba ← xmamba + flip(SiamSSM(xflip), dims = d)
7: end for
8: xmamba ← 1/4 xmamba


3. 任务特定架构设计

3.1 分割与地标检测
  • UNet式编码器-解码器:编码器采用残差块与MICCSS模块,解码器通过跳跃连接融合多尺度特征。跳跃连接公式为:
    X cat = [ X h ′ , X h ⋅ SE ( pooling ( X h ) ) ] , X_{\text{cat}} = \left[ X_h', X_h \cdot \text{SE}\left( \text{pooling}(X_h) \right) \right], Xcat=[Xh,XhSE(pooling(Xh))],
    其中, SE \text{SE} SE为通道注意力模块,用于特征缩放。
3.2 分类任务
  • 分层顺序学习:将不同分辨率的特征图池化后拼接为序列,由SSM提取全局上下文,公式为:
    P h = MaxPool ( X h ) , 序列 = Reshape ( [ P 2 , P 3 , P 4 ] ) . P_h = \text{MaxPool}(X_h), \quad \text{序列} = \text{Reshape}([P_2, P_3, P_4]). Ph=MaxPool(Xh),序列=Reshape([P2,P3,P4]).

实验

1. 实现细节

  • 优化器:Adam(学习率0.002,权重衰减0.001)
  • 评估指标:Dice系数、NSD(归一化表面Dice)、HD95(Hausdorff距离)、MRE(平均误差)等。

2. 分割性能

在这里插入图片描述

表1 BraTS 2023脑肿瘤分割结果

方法Dice (%)NSD (%)HD95 (mm)
TransUNet72.3463.218.45
nnFormer73.1264.787.89
nnMamba75.8666.026.23

在这里插入图片描述

表2 AMOS2022多器官分割结果

方法mDice (%)mNSD (%)Params (MB)
UNet68.2158.3432.10
SwinUNet71.4562.1545.22
nnMamba73.9865.1315.55

nnMamba在保持轻量化(仅15.55MB参数)的同时,分割性能显著领先。


3. 分类与地标检测

表3 ADNI分类结果

方法ACC (%)F1 (%)AUC (%)
ResNet-3D85.3284.1292.34
ViT-Base87.8986.4594.21
nnMamba89.4188.6895.81

表4 地标检测误差对比(单位:mm)

方法TCD1TCD2HDV1HDV2ADV1ADV2平均
ResUNet2.452.672.893.123.013.342.91
VitPose2.212.352.542.782.662.922.58
nnMamba1.982.052.112.242.172.282.11

结论

nnMamba通过融合CNN的局部特征提取与SSMs的全局建模能力,在3D医学图像分析中实现了高效的长距离依赖建模。实验表明其在分割、分类和地标检测任务中均达到SOTA性能,且模型轻量化优势显著。未来工作将探索其在更多模态医学图像中的应用。

代码开源地址:https://github.com/lhaof/nnMamba

相关文章:

nnMamba:基于状态空间模型的3D生物医学图像分割、分类和地标检测

摘要 本文提出了一种基于状态空间模型(SSMs)的创新架构——nnMamba,用于解决3D生物医学图像分割、分类及地标检测任务中的长距离依赖建模难题。nnMamba结合了卷积神经网络(CNN)的局部特征提取能力与SSMs的全局上下文建…...

安科瑞新能源充电桩解决方案:驱动绿色未来,赋能智慧能源

安科瑞顾强 引言 在“双碳”目标与新能源汽车产业高速发展的双重驱动下,充电基础设施正成为能源转型的核心环节。安科瑞电气股份有限公司凭借在电力监控与能效管理领域20余年的技术积淀,推出新一代新能源充电桩解决方案,以智能化、高兼容性…...

使用开源OPUS-MT模型进行文本翻译(python)

1. 环境准备 pip install transformers 2. 下载机器翻译模型: 2.1 代码从hugging face平台下载 from transformers import MarianMTModel, MarianTokenizer# 指定模型名称 model_name "Helsinki-NLP/opus-mt-zh-en" # 中译英模型# 下载并保存分词器到…...

通过 Docker openssl 容器生成生成Nginx证书文件

使用 alpine/openssl 镜像生成证书 1. 拉取容器 [rootlocalhost ~]# docker run --rm alpine/openssl version OpenSSL 3.3.3 11 Feb 2025 (Library: OpenSSL 3.3.3 11 Feb 2025)2. 运行 alpine/openssl 生成证书(Nginx) # 生成1个.key私钥文件&#…...

Elastic如何获取当前系统时间

文章目录 1. 使用 _ingest.timestamp 在 Ingest Pipeline 中获取当前时间2. 使用 Painless Script 获取当前时间3. 使用 now 关键字在查询中获取当前时间4. 使用 date 类型字段的默认值5. 使用 Kibana 的 Dev Tools 查看当前时间6. 使用 date 聚合获取当前时间7. 使用 Elastics…...

MLT媒体程序框架03:滤镜——loudness

EBU R.128协议 引用链接 EBU的全称为European Broadcasting Union ,既欧洲广播联盟,为欧洲与北非各广播业者(包含广播电台与电视台)的合作组织,成立于1950年2月12日,有五十多个正式加盟国,总部位于瑞士日内瓦,目前中国…...

jenkins配置连接k8s集群

jenkins配置连接k8s集群 前言 我这边jenkins是在一个服务器里面,k8s集群在其他服务器,实现连接 首先jenkins下载有k8s插件 进入配置页面 获取k8s-api-server地址 对应k8s服务器执行 kubectl config view --minify -o jsonpath{.clusters[0].cluste…...

如何选择缓存模式?

如何选择缓存模式 当一个系统引入缓存后,最大的挑战之一便是如何确保缓存与后端数据库的一致性。目前,常见的解决方案主要有Cache Aside、Read/Write Throught和Write Back这三种缓存更新策略。 Read/Write Throught策略 读操作方面,如果缓…...

机器学习常见面试题

常见基模型 1. 线性模型(Linear Models) 特点:通过线性组合特征进行预测,适合处理线性关系。常见类型: 线性回归(Linear Regression)逻辑回归(Logistic Regression)岭回…...

网络安全配置截图 网络安全i

网络安全概念及规范 1.网络安全定义 网络安全的概述和发展历史 网络安全 广义的网络安全:Cyber Security(网络空间安全) 网络空间有独立且相互依存的信息基础设施和网络组成,包括互联网、电信网、计算机系统、嵌入式处理器和控…...

k8s概念及k8s集群部署(Centos7)

Centos7部署k8s集群 部署之前,先简单说下k8s是个啥: 一、k8s简介: k8s,全称:kubernetes,它可以看作是一个分布式系统支撑平台。k8s的作用: 1、故障自愈: k8s这个玩意可以监控容器…...

Manus详细介绍,Manus核心能力介绍

文章目录 前言Manus产品定位与核心理念:Manus产品特性与未来体验战略:Manus商业价值与创新指标:Manus技术特点与竞争优势:Manus用户反馈与展望:Manus市场竞争优势与团队战略:Manus深度总结与启发: 前言 这是一篇关于Manus智能体产品的用户体验评价报告,主要介绍了M…...

Apache XTable:在数据湖仓一体中推进数据互作性

Apache XTable 通过以多种开放表格式提供对数据的访问,在增强互作性方面迈出了一大步。移动数据很困难,在过去,这意味着在为数据湖仓一体选择开放表格式时,您被锁定在该选择中。一个令人兴奋的项目当在数据堆栈的这一层引入互作性…...

Java直通车系列14【Spring MVC】(深入学习 Controller 编写)

目录 基本概念 编写 Controller 的步骤和要点 1. 定义 Controller 类 2. 映射请求 3. 处理请求参数 4. 调用业务逻辑 5. 返回响应 场景示例 1. 简单的 Hello World 示例 2. 处理路径变量和请求参数 3. 处理表单提交 4. 处理 JSON 数据 5. 异常处理 基本概念 Cont…...

36-Openwrt wifi命令工具iwconfig、iwinfo、iwpriv、iwlist

增对wifi的调试命令有很多,这边列出我们常用的命令提供参考,方便查看信息定位问题。 1、iwconfig 查看当前 WIFI 的工作信道以及工作带宽模式: root@openwrt:/# iwconfig ra0 ra0 mt7603e ESSID:"openwrt" Mode:Managed Channel:8 Access Point: DC:4B…...

tauri加载网页处理点击a链接默认浏览器打开问题

添加click事件,当点击了a标签,就阻止默认事件,然后自己处理,在自己窗口中打开这个页面。将这个js注入到页面中就可以了 const hookClick (e) > {console.log(hookClick, e)e.preventDefault()const origin e.target.closest…...

openharmony 软总线-设备发现流程

6.1 设备发现流程 6.1.1 Wi-Fi设备发现 6.1.1.1 Wi-Fi设备发现流程 Wi-Fi设备在出厂状态或者恢复出厂状态下,设备上电默认开启SoftAP模式,SoftAP的工作信道在1,6,11中随机选择,SoftAP的Beacon消息中携带的SSID eleme…...

大白话CSS 优先级计算规则的详细推导与示例

大白话CSS 优先级计算规则的详细推导与示例 答题思路 引入概念:先通俗地解释什么是 CSS 优先级,让读者明白为什么要有优先级规则,即当多个 CSS 样式规则作用于同一个元素时,需要确定哪个规则起作用。介绍优先级的分类&#xff1…...

【GoTeams】-4:为项目引入etcd

本文目录 1. 书接上回2. 引入etcddiscoverystruct{}{} resolverserver 3. 将服务注册到etcd中4. 梳理下etcd调用逻辑 1. 书接上回 本节是为项目引入etcd这个环节,然后我们来看看具体该怎么实现。 首先来谈谈为什么要引入服务发现? 动态服务注册与发现…...

DeepSeek + Kimi:高效制作PPT实战详解

在快节奏的职场环境中,制作高质量的PPT已成为许多人的日常任务。然而,从零开始构思、设计、撰写并优化一份精美的PPT往往耗时费力。幸运的是,AI技术的飞速发展为我们提供了全新的解决方案。本文将详细介绍如何利用DeepSeek与Kimi智能助手的高…...

计算机基础:二进制基础06,用八进制来计数

专栏导航 本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。 (一)WIn32 专栏导航 上一篇:计算机基础:二进制基础05,八进制简介 回…...

OSCP最新备考攻略:迎接2024改版后的OSCP+认证

OSCP(Offensive Security Certified Professional)是渗透测试领域一块金字招牌,由Offensive Security打造,因其硬核实战和高门槛备受推崇。2024年11月1日,OSCP迎来了一次重量级改版,推出了OSCP认证&#xf…...

Jmeter使用介绍

文章目录 前言Jmeter简介安装与配置JDK安装与配置JMeter安装与配置 打开JMeter方式一方式二 设置Jmeter语言为中文方法一(仅一次性)方法二(永久设置成中文) Jmeter文件常用目录 元件与组件元件组件元件的作用域元件的执行顺序第一个案例添加线程组添加 H…...

hooks useModule自定义hooks (二次封装AgGridReact ag-table)自定义表头,自定义表头搜索

场景业务: 多次运用AgGridReact的table 列表 思路: 运用自定义hooks进行二次封装: 通用配置例如:传参的参数,传参的url,需要缓存的key这些键值类 定制化配置例如:需要对table 的一些定制化传…...

Android Studio 配置国内镜像源

Android Studio版本号:2022.1.1 Patch 2 1、配置gradle国内镜像,用腾讯云 镜像源地址:https\://mirrors.cloud.tencent.com/gradle 2、配置Android SDK国内镜像 地址:Index of /AndroidSDK/...

OFA:通过简单的序列到序列学习框架统一架构、任务和模态

【摘要】 摘要总结 本文介绍了一种新的统一框架OFA(One For All),旨在通过一个简单的序列到序列学习框架来实现跨模态和单模态任务的统一预训练。OFA框架支持任务无关性和模态无关性,并能实现任务全面性。OFA统一了包括图像生成、视觉定位、图像字幕、图像分类、语言建模…...

C++11新特性2.空指针nullptr

目录 一.简介 1.基本概念 2.语法 二.使用示例 示例1:初始化指针 示例2:作为函数参数 三.nullptr与NULL的区别 1.类型安全 2.函数重载问题 3.注意事项 一.简介 1.基本概念 nullptr 是一个类型安全的空指针常量,它的类型是 std::nul…...

实战案例分享:WLAN TKIP/CCMP加密组件的选择

无线接入点(AP)与终端(STA)在连接过程中涉及多种加密算法,如CCMP、TKIP等,选择合适的加密组件对于保证网络安全和兼容性至关重要。本篇我们将分析Wi-Fi加密机制、Wi-Fi加密组件的选型要点、典型问题及解决方…...

Day(19)--IO流(三)

文件加密 ps:^异或: 两边相同就是false 两边不同就是true 如果比较的是数字,那就会把它转换成为二进制,从右自左依次比较 总结:如果一个数字被异或两次,结果还是原来的数字 缓冲流 字节缓冲流 BufferedInputStream------字节缓冲输入流 BufferedOutputStream----字节…...

解锁STM32外设:开启嵌入式开发新世界

✨✨✨这里是小韩学长yyds的BLOG(喜欢作者的点个关注吧) ✨✨✨想要了解更多内容可以访问我的主页 小韩学长yyds-CSDN博客 目录 探索 STM32 强大的外设家族 初窥门径:STM32 外设开发基础 开发方式与工具 外设配置基础步骤 深入剖析:常见外设应用实例…...