【论文阅读笔记】Segment Anything Model for Medical Image Segmentation: Current Applications and Future Direc

复旦大学,2024.1.7 arxiv

相关论文更新仓库

【文章概述】

本文是关于医学图像分割的"Segment Anything Model" (SAM) 的综述。它详细讨论了SAM的发展、在医学成像中的应用,以及面对自然图像与医学图像之间差异时的挑战。文章还探讨了SAM在不同成像方式中的应用和方法上的调整。综述强调了提升SAM在医学图像分析性能方面的持续努力,展示了其在未来临床应用中的潜力。同时,文中还讨论了大规模医学数据集对发展基础模型的重要性以及改善医学图像标注的策略。总的来说,文章反映了在使用SAM进行医学图像分割领域的显著进步和未来发展方向。

【2.背景】

2.1. Foundation Models

第2.1节讨论了人工智能中的基础模型概念。这些模型是大规模、通用性的,设计用于语言和视觉领域的任务。它们通过在大量数据上的训练,发展出可跨领域转移的通用能力。该部分强调了像GPT系列在自然语言处理中的影响,以及它们对计算机视觉领域类似模型开发的启发。这些模型在各种任务中的成功引起了广泛的兴趣和适应,包括医学图像分析。本节还探讨了这些模型在医学成像中的潜力,特别是在医学图像分割应用和面临的挑战。

2.2. Segment Anything Model

第2.2节详细介绍了医学图像分割的"Segment Anything Model"(SAM)。SAM是一个基于大规模SA-1B数据集训练的模型,拥有显著的零样本泛化能力。它采用基于变换器的架构,包括一个基于Vision Transformer(ViT)的图像编码器、一个集成不同提示模式的提示编码器和一个轻量级的掩膜解码器。这些组件协同工作,实现图像嵌入和提示嵌入的融合,以预测分割掩膜。SAM的训练使用混合几何提示,并通过专业标注者的交互式标注和自动阶段的伪掩膜标注来进行。尽管SAM在自然图像上表现出色,但其在医学图像分割上的适用性还有待考验

### 定制化用于医学图像分割的Segment Anything模型 对于医学图像分割而言,定制化的Segment Anything (SAM) 模型能够提供更精确的结果。为了实现这一目标,通常需要对原始模型进行调整以适应特定的数据集和应用场景。 #### 数据预处理 医学影像数据具有独特的特点,如高分辨率、多模态以及标注稀缺等问题。因此,在训练之前需对数据进行适当预处理[^1]: - **标准化**:由于不同设备采集到的图片可能存在亮度差异,故而要先做灰度值归一化; - **裁剪与填充**:考虑到实际应用中的视野范围有限,可依据临床需求选取感兴趣区域(ROI),并对其进行统一大小规整; ```python import numpy as np from skimage import exposure, transform def preprocess_image(image): """Preprocess a single image.""" # Normalize intensity values to [0, 1] normalized = exposure.rescale_intensity(image.astype(float), out_range=(0., 1.)) # Resize the image while preserving aspect ratio resized = transform.resize(normalized, output_shape=[256, 256], mode='reflect') return resized ``` #### 模型微调 基于现有的Segment Anything架构,通过迁移学习的方式可以快速构建起针对医疗领域的新版本网络结构。具体操作如下所示: - 对编码器部分保持冻结状态不变,仅更新解码端各层连接权值; - 增加额外辅助损失函数项促进边界平滑性和连通性约束; ```python import torch.nn.functional as F from segment_anything import sam_model_registry model_type = "vit_b" device = 'cuda' if torch.cuda.is_available() else 'cpu' sam_checkpoint = "./checkpoints/sam_vit_b_01ec64.pth" # Load pre-trained SAM model model = sam_model_registry[model_type](checkpoint=sam_checkpoint).to(device) for param in model.image_encoder.parameters(): param.requires_grad_(False) ``` #### 后处理优化 完成预测之后还需要进一步精炼输出结果的质量,比如去除孤立噪点、填补孔洞等后处理手段有助于提升最终呈现效果。常用方法有形态学运算、条件随机场(CRFs)建模等技术。 ```python from scipy.ndimage.morphology import binary_fill_holes from skimage.measure import label, regionprops def post_process_mask(mask): """Post-processes mask by filling holes and removing small objects""" filled = binary_fill_holes(mask>0.5) labeled = label(filled) regions = regionprops(labeled) cleaned = np.zeros_like(filled,dtype=np.uint8) for r in regions: if r.area >= min_area_threshold: coords = tuple(map(tuple,r.coords.T)) cleaned[coords]=1 return cleaned ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值