社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

图像处理算法—基于深度学习的医学图像分割

机器人规划与控制研究所 • 6 天前 • 34 次点击  

机器人规划与控制研究所 ——机器人/自动驾驶规划与控制方向综合、全面、专业的平台。3万人订阅的微信大号。点击标题下蓝字“机器人规划与控制研究所”关注,我们将为您提供有价值、有深度的延伸阅读。




最近四足机器人和人形机器人技术非常火爆,因为笔者是做机器人/自动驾驶的路径规划和运动控制算法方向的,所以思考了下,如果四足机器人在不同楼层之间进行路径规划,四足机器人可以通过爬楼梯抵达各个楼层,需要考虑使用3D地图来做路径规划。

1999 年 9 月 23 日,美国宇航局的火星气候探测器(一艘价值 1.25 亿美元的航天器)准备进入火星轨道,研究其气候和大气。但就在它接近火星时,发生了严重事故。航天器没有进入稳定的轨道,而是坠入火星大气层并被摧毁。

经过分析,NASA 发现单位不匹配:他们的喷气推进器使用公制单位(牛顿),而他们从洛克希德马丁公司获得的航天器使用英制单位(磅力)。这导致导航错误,使航天器下降得太低,进入火星大气层;并造成 1.25 亿美元的损失。

人为错误每天都会发生在各种领域。2016 年,约翰霍普金斯大学发布的一份令人震惊的报告估计,医疗失误(包括误诊)每年在美国造成超过 25 万人死亡,是第三大死亡原因。 许多失误都是由于对医学图像(如 MRI、X 光、CT 扫描等)的分析错误造成的。

在本文中,我想向您展示如何使用医学图像分割来解决这个问题,我将从 3 点来做:

  1. 二维医学图像分割
  2. 3D 医学图像分割
  3. 示例/演示

让我们开始吧...


1 二维医学图像分割简介



2019 年,我主持了有史以来规模最大的 AI 医疗黑客马拉松在 20 多个城市同时举行!当时的目标是将公司、医疗团体和工程师融合在一起,使用深度学习构建医疗解决方案。经过 48 小时的编码,获胜团队将赢得10,000 美元,第二队赢得 4,000 美元,然后第 3、4、5 和 6 队将分别赢得 2,500 美元

伟大的计算机视觉项目出现了,事实上,巴黎(我的城市)通过Spot Implant获得了比赛第二名,这是一个 Shazam 牙齿植入项目,后来成为一家初创公司。当时,每个人都在研究 2D 图像。我们有皮肤黑色素瘤检测、X 射线分割、脑分割等项目......

让我向您展示医学图像分割中的几个任务,然后我们将研究算法



2D医学图像分割任务:


1. X 射线(最常见)


首先,我们有 X 射线。X 射线是人体的 2D 表示。我们经常在那里看到骨骼和器官,这是您在深度学习 x 医疗保健中能找到的最常见的图像。使用医学图像分割,我们可以帮助医生发现骨折、 肺部疾病和其他异常。它还可以帮助筛查大量 X 射线中的结核病,这在放射科医生有限的低收入国家尤其有用。


这确实是深度学习工程师中最广为人知的。我想向你展示分割的其他应用……

2.皮肤镜分割(皮肤病变分割)


皮肤镜分割是健康黑客马拉松的首选。它使用医学图像分割来识别和分离皮肤镜图像中的皮肤病变。通过在医学图像上应用深度学习,我们可以快速准确地检测出黑色素瘤等皮肤疾病。这有助于皮肤科医生更快地诊断和治疗患者,并更有效地管理大量数据。

让我们再看一两个……

3.乳房X光检查分割


乳房 X 光检查是一种专门的 X 射线图像,旨在显示乳房组织的内部结构。这些图像通常采用平面 2D 格式,从多个角度捕捉乳房,以确保全面查看。乳房 X 光检查中的细节可以显示从致密组织模式到肿块或钙化等潜在异常的一切。

看看下面的图片:看看医生/放射科医生是如何找到这些突出显示区域的。图像分割的作用是协助医生,所以他并不是一个人在做发现问题这项高风险的任务(当然,不用说,医生所做的工作远不止发现问题,从了解钙化有多严重,到找到治疗方法,等等……)。

其他类型:超声波👶🏽、内窥镜检查🤢等等……

我们刚刚看到了 3 种类型:X 射线、皮肤镜检查和乳房 X 线摄影。还有其他类型,例如超声图像(例如婴儿),可以是 2D 或 3D;或内窥镜检查等等……下图显示了许多 2D 分割应用:

那么如何构建分割结果?使用什么?让我们来看看...


2D 医学图像分割模型



听说过 UNet 吗?你知道,2015 年的模型副标题是“用于生物医学图像分割的卷积网络”。好吧,它可能来自 2015 年,但它是一个很好的开始!事实上, UNet已经有很多改进,包括UNet++、 Trans-UNetSwin-UNet,都保留了“U”形,但使用了不同的模式识别技术,如 Swin Transformers、CNN 等……

这是一类语义图像分割算法,其结果如下:

为了获得真实的数字,使用 Dice 相似度系数 (DSC) 和平均豪斯多夫距离 (HD) 作为评估指标来评估这些算法。

这些都很棒,但是如果你没有数百万个带标签的数据会发生什么?在医疗保健领域,获取带标签的免费数据并不容易;尤其是针对特定医院的某些疾病类型,等等……在这些情况下,你可以使用更多“基础”语义分割模型,例如SAM(Segment Anything)或 SAM2。这些模型已在“整个互联网”上使用自监督学习进行训练,因此应该能更好地发现问题。

例如,MEDSAM是一个医学 SAM(Segment Anything),我在上面的图像中使用了它。它是常规的 SAM,但针对医学图像分割进行了调整,以提高分割性能。该模型的性能相当高,我们使用图像分割获得了一个一流的计算机视觉项目……它甚至可以将您的提示作为感兴趣区域边界框来返回分割的蒙版:

这是关于 2D 图像的第一部分...那么什么是 3D 图像?



3D 医学图像分割:CT 扫描和 MRI


现在来看看 3D 图像!在这一部分,我将讨论两个用例(CT 扫描和 MRI)并一起讨论算法。

CT 扫描:用例和算法

CT 扫描和 3D 表示的用例

FLARE 2022 数据集(快速且低资源半监督腹部器官分割)中,我们可以访问数百个标记和未标记的肝脏、肾脏、脾脏或胰腺疾病病例,以及子宫体子宫内膜、尿路上皮膀胱、胃、肉瘤或卵巢疾病的实例。

嘿,放松点。我只是吓唬你而已。我也不知道那是什么意思。除了:

这些是CT 扫描(计算机断层扫描)。CT 扫描使用 X 射线来创建身体内部的详细横截面(逐层)图像。它们比传统 X 射线更详细,因为它们通过从不同角度拍摄多张 X 射线图像并使用计算机将它们组合起来来生成 3D 图像。

那么“3D”输出是什么样的?体素点云不完全是。正如我所说,这些是用多个“层”(或维度)拍摄的图像。因此,您的输入图像尺寸不是 (512, 512, 3),而是 (512, 512, 129) 或类似的尺寸。您有一个多维图像,您可以在其上将图像分割应用于每个 2D 切片:

在此示例中,我使用 MedSAM 处理单个 2D 图像。如果您对整个 3D CT 扫描执行此操作,则会得到如下结果:

如果你明白了,你就会明白,从这些图像中,我们可以将其放入一个可以重建 3D 扫描的软件中:

从那时起,人们就变得疯狂,甚至试图将其变成点云(我不知道为什么,但这很酷,向Beau Seymour 的视频致敬)。

MRI 扫描:先进的医学图像计算

磁共振成像 (MRI) 扫描是医学成像中的另一个强大工具。与 CT 扫描不同,MRI 使用强大的磁铁和无线电波来创建体内器官和组织的详细图像。该技术特别适合软组织对比,使其成为大脑、脊髓和关节成像的理想选择。通过利用医学图像分割,MRI 扫描可以帮助精确识别肿瘤、神经系统疾病和肌肉骨骼问题。

以下是 MRI 扫描及其分割任务的示例:

那么现在,让我们看看如何处理它...


3D 医学图像分割领域的算法


我们已经讨论了 SAM(Segment Anything)及其如何在单个切片上工作。现实情况是,医学图像分割涉及大量复杂的“工作”知识;使用专门的人工智能模型可能更好,以实现最佳模型性能。今天,在人工智能中,我们有两种类型的模型:

  • 基础模型,非常通用,无所不知
  • 特定和标记模型,只能处理经过训练的图像

我想向您展示两个可以同时完成这两项任务的模型:TotalSegmentor 和 Vista-3D。

Total Segmentator:用于 2D 和 3D 分割的特定模型

TotalSegmentator可能是最常用、最知名的 2D 和 3D 数据图像分割“框架”之一。它不是一个简单的机器学习模型,而是一个可以自动标记的完整框架。

它可以分割的 CT 和 MRI 数据类别数量非常庞大:

该模型基于 nn-UNet 架构与 UNet 类似,但也可以采用不同的医学成像模式。

VISTA-3D:3D 医学图像分割的基础模型

VISTA-3D是 Nvidia 的 2024 年“基础模型”,可直接在 3D 补丁上运行。虽然被称为“基础”模型,但它非常特定于医学图像分割任务。在这里,我们纯粹是3D 深度学习

我们已经看到了很多:

  • 2D 分割可以通过 UNet、UNet++ 等模型(具体)或 SAM(基础)来完成
  • 3D 分割可以通过 nnUNet/TotalSegmentator(特定)或 Vista-3D 和 SAM(基础)等模型完成

现在让我们看一些例子...

示例 1:使用 Vista-3D 进行 CT 扫描分割

Nvidia 的这个平台上,我能够选择 CT 扫描并调用 Vista-3D 来处理它。

注意我们如何选择腹部,然后选择所有要分割的器官。最后,我们可以从 3 个不同的“角度”获取视图并对其进行处理!

示例 2:使用 TotalSegmentator 进行 CT 扫描分割

在totalsegmentator.com上,我们可以上传图像,并要求进行完整分割。在这里,我将上传上面提到的 FLARE2022 数据集的扫描图。该平台以奇怪的“nii.gz”格式返回数百个器官:

我可以将其中的一些可视化,并看看输出是什么样的:

好吧!这是我们的第二个示例,并且都有可玩的演示!现在让我们做一个总结...


总结及后续步骤



  • 医学图像分割通过处理 MRI 和 X 射线等 2D 和 3D 医学图像来帮助减少人为错误。
  • 2D 医学图像分割任务包括 X 射线、皮肤镜检查(皮肤病变分析)、内窥镜检查、乳房 X 线摄影分割(乳房)等......
  • UNet 及其变体是利用 CNN 或 Transformer 方法进行 2D 医学图像分析的流行模型。SAM(任意分割模型)等基础模型也可以在医学图像上进行微调,例如使用 MedSam。
  • 3D 医学图像分割涉及 CT(计算机断层扫描)和 MRI(磁共振成像)扫描。它们之所以被称为 3D 图像,是因为它们是不同视角下同一图像的多个切片。
  • MedSAM 可以处理 3D 扫描的 2D 切片,允许对每个切片进行单独分割。然后我们可以将其放入软件中,重建为完整的 3D 图像。
  • 对于 3D 处理,TotalSegmentator 和 Vista-3D 是可靠的解决方案,无论是特定的还是基于基础的。











版权声明:

本文翻译自https://www.thinkautonomous.ai/blog/medical-image-segmentation/,如有侵权,请联系博主立即删除。


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/180064
 
34 次点击