SAM 2最新应用落地!牛津大学团队发布Medical SAM 2,刷新医学图像分割SOTA榜

2023 年 4 月,Meta 公司发布了 Segment Anything Model (SAM),号称能够「分割一切」,犹如一颗重磅炸弹震荡了整个计算机视觉领域,甚至被很多人看作是颠覆传统 CV 任务的研究。

时隔 1 年多,Meta 再度发布里程碑式更新—— SAM 2 能够为静态图像和动态视频内容提供实时、可提示的对象分割,将图像与视频分割功能整合到了同一个系统中。 可想而知,强大的实力使得业界开始加速探索 SAM 在不同领域的应用,尤其是在医学图像分割领域,不少实验室和学术研究团队已经将其视为医学图像分割模型的不二之选。

所谓医学图像分割,就是将医学图像中具有特殊含义的部分分割出来,并提取相关特征,进而为临床诊断、病理学研究等提供可靠依据。

近年来,随着深度学习技术的不断进步,基于神经网络模型的分割已逐渐成为医学图像分割的主流方法,自动化的分割方法大大提升了效率与准确性。然而,鉴于医学图像分割领域的特殊性,其中仍有一些挑战亟待解决。

首先是模型泛化, 针对特定目标 (如器官或组织) 训练的模型很难适应其他目标,因此往往需要针对不同的分割目标重新开发相应的模型;其次是数据差异, 许多为计算机视觉开发的标准深度学习框架都是为 2D 图像所设计,但在医学成像中,数据通常是 3D 格式,如 CT、MRI 以及超声图像等,这种差异无疑为模型训练造成了巨大的困扰。

为了解决上述问题,牛津大学团队开发了名为 Medical SAM 2 (MedSAM-2) 的医学图像分割模型, 该模型基于 SAM 2 框架设计,将医学图像视作视频,不仅在 3D 医学图像分割任务上表现卓越,同时还解锁了一种新的单次提示分割的能力。用户只需为一种新的特定对象提供一个提示,后续图像中同类对象的分割就可以由模型自动完成,而无需进一步输入。

相关论文及成果目前以「Medical SAM 2: Segment medical images as video via Segment Anything Model 2」为题,已发表于预印本平台 arXiv 上。

研究亮点:

  • 团队率先推出基于 SAM 2 的医学图像分割模型 MedSAM-2
  • 团队采用了一种新颖的「medical-images-as-videos」的理念,解锁了「单次提示分割功能」

不方便下载的论文资料已打包好,还整理了一份研究生及SCI论文攻略包 

### 医学图像分割领域2023年SOTA模型总结 在2023年,医学图像分割领域涌现了多个具有突破性性能的模型,这些模型通过不同的技术手段提升了分割的精度和效率,同时在特定任务中实现了新的SOTA(State-of-the-Art)表现。 #### SegVol:基于SAM的交互式体积医学图像分割模型 SegVol是由Du等人提出的一种交互式体积医学图像分割模型,其基于SAM(Segment Anything Model)架构。该模型通过使用空间和文本提示,支持对200多个解剖类别进行分割。SegVol通过对90k个未标记CT序列和6k个标记CT序列进行训练,在多个分割基准上显著优于SOTA方法[^1]。 #### MedNeXt:医学图像分割SOTA MedNeXt是nnUNet原创团队2023年推出的新作品,该模型受ConvNeXt启发,根据Transformer改进了现有的UNet架构。MedNeXt不仅改进了UNet,还改进了上采样和下采样块,提出了一个用小卷积核网络初始化大卷积核网络的方法,并设计了可以对网络在深度、宽度和感受野大小上进行复合缩放的机制。MedNeXt在四个具有代表性的医学图像处理任务上实现了SOTA[^2]。 #### PP-LiteSeg:高精度轻量级图像分割SOTA模型 虽然PP-LiteSeg主要是针对通用图像分割设计的模型,但它同样适用于医学图像分割。PP-LiteSeg在Cityscapes数据集上展示了卓越的性能,在1080ti GPU上实现了mIoU 72.0时高达273.6 FPS的速度,而在mIoU 77.5时FPS为102.6,超越了现有的CVPR SOTA模型STDC[^3]。 #### Mamba-based模型:基于Mamba的医学图像分割SOTA 基于Mamba的医学图像分割模型通过结合CNN的局部特征提取能力和Transformer的全局上下文理解能力,更有效地处理医学图像中复杂的结构和模式。Mamba的设计允许模型在保持线性计算复杂度的同时,仍然能够捕捉到长距离的依赖关系[^4]。 ### 示例代码 以下是一个简单的示例代码,展示如何使用PyTorch框架构建一个基本的UNet模型,这可以作为进一步开发更复杂模型的基础。 ```python import torch import torch.nn as nn class UNet(nn.Module): def __init__(self): super(UNet, self).__init__() # 定义UNet的各个部分 self.encoder = nn.Sequential( nn.Conv2d(1, 64, kernel_size=3, padding=1), nn.ReLU(inplace=True), nn.Conv2d(64, 64, kernel_size=3, padding=1), nn.ReLU(inplace=True) ) self.decoder = nn.Sequential( nn.Conv2d(64, 64, kernel_size=3, padding=1), nn.ReLU(inplace=True), nn.Conv2d(64, 1, kernel_size=1) ) def forward(self, x): x1 = self.encoder(x) x2 = self.decoder(x1) return x2 # 创建模型实例 model = UNet() print(model) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值