MedLSAM将SAM应用于3D医学图像分割(2023+MedLSAM: Localize and Segment AnythingModel for 3D Medical Images)

11 篇文章 0 订阅

解决问题:

特别是通过微调,SAM模型在医学分割领域取得了令人印象深刻的表现。然而,由于需要人工标注,SAM在医学图像分割中的应用面临着很大的挑战。这些包括标记点或划定分割区域的边界框,它们既耗时又昂贵。

贡献点:

在本文中引入MedLSAM,一种自动医学图像分割模型,旨在显著减少标注工作量。如下图所示,MedLSAM采用两阶段方法。第一阶段涉及到在体积医学图像中自动识别目标器官位置的few-shot定位bbox。后续阶段利用第一阶段生成的边界框,应用SAM模型进行精确的图像分割。该过程是完全自动的,消除了人工干预的需要。

给定任意大小的数据集,MedLSAM首先应用定位过程(MedLAM)来识别任何感兴趣的解剖区域的六个极值点(在z, x和y方向上)。这个过程的结果是生成一个3D边界框,包围目标器官或结构。随后,对于该3D边界框内的每个切片,生成相应的2D边界框。然后利用这些二维边界框对目标解剖结构进行精确分割,从而实现整个分割过程的自动化。

方法:

整体方法包括两个阶段:第一阶到在体积医学图像中自动识别目标器官位置的few-shot定位边界框。后续阶段利用第一阶段生成的边界框,应用SAM模型(使用的是MedSAM)进行精确的图像分割。

第一阶段:MedLAM,由相对距离回归(RDR)和多尺度相似性(MSS)构成。

首先于在3D图像中抽取两个大的patch,记做x_{s}x_{q},经过一系列变换获得x_{s}^{'}x_{q}^{'}。这涉及到将来自不同个体的3D扫描图像映射到统一的隐式3D解剖坐标系上,确保来自不同个体的相同解剖结构共享相同的坐标,这样就可以对与我们感兴趣的点共享相同隐式坐标的点执行初始的、粗略的定位。RDR模型旨在预测查询补丁xq与支持补丁xs之间的3D偏移量

假设e∈R3为v的像素间距(某一像素中心到相邻像素中心的距离,像素是一个小方块),cq, cs∈R3分别为v中xq和xs的质心坐标(ground truth分割区域的质心坐标),则物理空间中从xq到xs的groud truth偏移量d ' qs可计算为:

d qs = ( c s c q ) · e
xs和xq都通过编码器进行处理,以提取高级功能。随后,全连通层将这些特征映射到相应的3D潜在向量ps和pq,每个向量∈R3。从查询补丁xq到支持补丁xs的预测偏移量dqs∈R3计算为:
d qs = r · tanh ( p s p q )

利用双曲正切函数tanh和超参数r来决定dqs的上界和下界,从而覆盖最大的可行偏移量。

最后,为了测量dqs和d ' qs之间的差异,采用均方误差(MSE)损失函数:

L D = || d qs d qs || 2
鉴于不同个体解剖定位的内在差异,在不同图像中共享相同潜坐标的区域仍然可能对应不同的解剖结构。因此,我们需要通过从感兴趣的点提取局部像素级特征来进一步提高定位的精度。这使我们能够精确定位初始定位点附近最相似的特征,从而提高整体定位精度。 MSS过程包括从xs和xs中提取的多尺度特征图,以及从xs中选择的点c1,其在x ' s中的对应点为c ' 1。

 我们从x的各种尺度特征映射中提取点c1对应的特征向量,并计算这些特征向量与x的相应尺度特征映射的相似度。在将结果相似图的大小调整为原始图像大小之后,我们将它们聚合起来。这个过程使我们能够在x中精确定位与c1点最相似的位置,从而进一步完善我们的定位。

第二阶段:

MedLSAM框架的推理阶段结合了MedLAM用于定位和MedSAM用于医学图像分割的优势,首先,我们利用MedLAM在查询图像中定位所需的地标。我们将定位任务定义为操纵智能体从随机初始位置向目标位置移动。从查询图像中的随机位置提取一个补丁,同时从支持图像中以预先指定的地标为中心提取一个支持补丁。在通过MedLAM模型处理这两个补丁后,我们得到一个3D偏移量,该偏移量表示查询和目标位置之间的估计相对空间位移。通过基于该偏移量更新代理的位置,我们实现了查询图像中地标的粗略定位。利用MedLAM的多尺度相似度(Multi - Scale Similarity, MSS)分量来细化地标定位。我们提取查询图像中粗定位点及其在支持图像中对应点周围的多尺度特征图,进行相似度计算,并对相似度图进行聚合,确定查询图像中特征相似度最高的位置。该方法显著提高了地标定位的精度。在成功地识别出地标之后,我们进入分割阶段。为此,我们同时利用了SAM和MedSAM, MedSAM是SAM的一种特殊变体,针对医学图像数据集进行了微调。这两个模型都是我们分割任务的基础。SAM的多功能性和MedSAM对特定领域的适应性帮助我们提供了健壮的分割结果,从而提高了MedSLAM系统的整体效率。

试验结果:

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你的时区字符串不确定,并且可能会有更多的值,你可以修改代码,使其能够处理任意数量的时区字符串。你可以使用Python的datetime模块和pytz库来实现。 首先,确保已经安装了pytz库。你可以使用以下命令安装: ``` pip install pytz ``` 以下是一个示例代码: ```python from datetime import datetime import pytz timezones = {'CDT 05:00', 'CST', 'GMT+1 01:00', 'WAT 01:00', 'EST', 'EDT 04:00', 'WAT', 'GMT-5 05:00', 'UTC+00:00', 'GMT-4 04:00', 'GMT+9 09:00', 'MDT 06:00', 'GMT+2 02:00', 'GMT+04:00', 'GMT+01:00', 'GMT-7 07:00', 'AKST'} date_strings = ['2022-01-01 12:00', '2022-02-15 08:30', '2022-03-10 18:45'] for date_string in date_strings: dt = datetime.strptime(date_string, '%Y-%m-%d %H:%M') for timezone in timezones: try: tz = pytz.timezone(timezone) dt_adjusted = tz.localize(dt) timestamp = dt_adjusted.timestamp() print(f"{date_string} in {timezone}: {timestamp}") except pytz.UnknownTimeZoneError: print(f"{date_string} in {timezone}: Unknown timezone abbreviation") ``` 上述代码使用了pytz库来处理不同的时区字符串。它尝试将日期对象用于每个时区,并使用localize方法将其转换为该时区的时间。然后,使用timestamp方法将其转换为时间戳。 运行上述代码将输出每个日期字符串在每个时区的时间戳。如果时区字符串无法识别,将输出"Unknown timezone abbreviation"。 希望这能帮助到你!如果有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值