第一课第三周1-2节-了解医学图像分割以及探索mri数据格式以及作业解读(代码片段)

Tina姐 Tina姐     2022-12-15     296

关键词:

本周将学习图像分割,图像分割在许多医学影像应用中起着至关重要的作用,例如组织大小的量化、疾病的定位和治疗计划。

我们将重温您在过去两周学到的一些相同的想法,看看它们是如何扩展到图像分割的。

在本课中,我们将学习 MRI 数据和肿瘤分割。了解MRI数据,对于指导我们如何在下一课中为构建分割模型和思考如何表示数据非常重要。

正如你很快就会看到的,使用3D医疗数据提供了一些重大挑战,你将学习一些创造性的想法来应对这些挑战。

MRI 数据

我们将首先讨论如何表示 MRI 数据。我们希望能够以一种可以输入到分割模型中的形式来表示 MRI 数据。

如你所见,我们的核磁共振图像不仅仅是一个像X光片那样的二维图像,而是一个三维立体图像。此外,一个MRI例子将由多个序列组成,这将包括多个3D体积。

我们将研究如何将这些多个3D体积合并为一个3D体积。

为此,让我们从大脑中挑一层。

我们将用于组合来自不同序列的信息的关键思想是将它们视为不同的通道。

我们可以说其中一个通道是红色的,一个是绿色的,还有一个是蓝色通道,就像我们有三个通道一样。

对代表RGB通道的三个通道的类比对于我们将如何组合这些通道非常有用。当有四个或五个序列时,这些序列可以用四个或五个通道来表示。

一旦每个序列用不同的通道表示,我们现在要做的就是将这些序列组合在一起生成一个图像,即所有序列的组合。

对我们来说,这是一个RGB图像。对于机器来说,这些是以深度维度堆叠的通道。

组合这些序列的一个挑战是它们可能彼此不一致。例如,如果患者在获取这些序列中的每一个序列之间移动,那么他们的头部可能会在一个序列中倾斜。

如果我们合并图像时,图像没有相互对齐,那么红色通道中某个位置的大脑区域与绿色通道或蓝色通道中的相同位置不对应。

那么,我们如何解决这个对齐问题呢?一种通常用来解决这个问题的预处理方法称为图像配准(image registration)

图像配准的基本思想是对图像进行变换,使它们彼此对齐或配准。我们将不再详细讨论图像配准。在作业中,你将使用已经配准的图像。

但是,在尝试合并三维体积时,注意图像配准是一种有用的工具

作业解读

想要更多的了解 MRI 数据,查看第一次作业

作业文件:

吴恩达-医学图像AI 专项课程-作业/第一课/week3/AI4M_C1_W3_lecture_ex_01.ipynb

使用的MRI数据来自 Medical Segmentation Decathlon

这是一个极其丰富的数据集,提供 3D 表示中每个点(体素)相关联的标签。最后,在本周的作业中,您将训练一个神经网络,对常见的脑部疾病进行三维空间分割预测。

在本次作业中你将学习如下内容

1 加载 nii.gz 数据

使用 nibabel 库加载数据

import nibabel as nib
image_path = "BraTS-Data/imagesTr/BRATS_001.nii.gz"
image_obj = nib.load(image_path)

2 提取数据为numpy array

image_data = image_obj.get_fdata()
height, width, depth, channels = image_data.shape
print(f"The image object has the following dimensions: height: height, width:width, depth:depth, channels:channels")

The image object has the following dimensions: height: 240, width:240, depth:155, channels:4

我们可以看到,这个 MRI 数据有4个通道,每个通道是一个240 * 240 * 155的三维体

3 交互查看数据

由于维度过大,用 plt 无法展示三维体积,但我们可以通过交互的方式分别展示每一层

def explore_3dimage(layer):
    plt.figure(figsize=(10, 5))
    channel = 3
    plt.imshow(image_data[:, :, layer, channel], cmap='gray');
    plt.title('Explore Layers of Brain MRI', fontsize=20)
    plt.axis('off')
    return layer

# Run the ipywidgets interact() function to explore the data
interact(explore_3dimage, layer=(0, image_data.shape[2] - 1));

如果经常处理三维图像,建议学习这个交互式方法

4 可视化 label

标签数据数组的尺寸高度:240,宽度:240,深度:155

标签里一共有4种值:[0. 1. 2. 3.],对应以下标签类别:

  • 0:正常
  • 1:水肿
  • 2:非强化肿瘤
  • 3:强化肿瘤

如果你不训练图像,我在作业文件中已经给出了3个数据示例,可以尝试查看一下图像信息。

图像地址:

吴恩达-医学图像AI 专项课程-作业/第一课/第一课大作业/week3seg/BraTS-Data

吴恩达-医学图像人工智能专项课程-第一课第一周6-10节总结+作业解读(代码片段)

...学习在医学图像分类问题上的一些前沿应用。本文将介绍第一课第一周6-10节的内容。主要讲解构建一个分类模型去识别胸片的肿块。以及分类模型将面临的三个挑战:类不平衡挑战、多任务挑战和数据集大小挑战。本节重点... 查看详情

第一课第三周3-4节--2d和3d分割的优缺点以及如何构建unet模型(代码片段)

...称为体素。让我们讨论两种利用MRI数据进行分割的方法。第一种是二维方法在2D方法中,我们将构建的3DMR 查看详情

第一课第三周5-6节-数据增强以及dice损失函数

既然我们已经讨论了分割体系结构,那么让我们来讨论一种可以应用于这种模型训练的技术,即数据扩充(数据增强dataaugumentation)。我们在前面学过,我们可以对输入胸部X光片的变换,这样每个例子的分... 查看详情

吴恩达-医学图像人工智能专项课程-第一课第一周16-18节-如何确保数据集病人不重叠+作业解说(代码片段)

模型测试既然你已经了解了如何训练医学诊断模型,那么让我们来谈谈如何测试这样的模型。接下来你会学习如何测试这样的一个模型。您将学习如何正确使用训练、验证和测试集。以及为了评估你的模型需要强大的groundtrut... 查看详情

吴恩达-医学图像人工智能专项课程-第一课第一周1-3节总结(代码片段)

点此了解课程吴恩达新课医学图像AI(AIforMedicine)专项课程推荐欢迎来到医学人工智能专业。如果你已经完成了深度学习专业化或机器学习课程,并且你正在寻找更深入掌握人工智能的应用领域,这是一个很好的... 查看详情

第一课第三周7-10节-ai算法这么棒,为什么我们周围的医院没有使用这些系统?

既然您已经了解了医学成像的分类和分割模型,并且您已经在前面构建了您的胸部x射线分类模型,那么您可能会想知道为什么我们周围的医院或诊所没有使用这些系统。在本课中,您将了解一些挑战和机会,使这... 查看详情

吴恩达-医学图像人工智能专项课程-第一课第一周11节总结(代码片段)

回顾一下医学图像深度学习面临的三个挑战三个挑战我们将讨论医学图像训练算法的三个关键挑战:类不平衡挑战、多任务挑战和数据集大小挑战。对于每一个挑战,我们将介绍一到两种应对方法。类别不平衡:可以... 查看详情

吴恩达-医学图像人工智能专项课程-第一课第一周4-5节总结(代码片段)

4-5节主要是例举了三个深度学习医学诊断案例。本周,我们将直接进入建立一个深度学习模型的任务胸部x光分类。通过这个例子,您将学到的许多想法在许多医学成像测试中都有广泛的应用。本周,我们将从三个医... 查看详情

吴恩达-医学图像人工智能专项课程-第一课第一周19-20节(代码片段)

...们回顾一下上一节提出的医学图像创建数据集的三个挑战第一个挑战涉及到我们如何使这些测试集独立第二个挑战涉及我们如何对它们进行采样第三个挑战涉及我们如何设置groundtruth让我们来讨论第二个挑战:集合抽样。sampl... 查看详情

吴恩达-医学图像人工智能专项课程-第一课第一周13-15节-迁移学习+数据增强

回顾一下医学图像深度学习面临的三个挑战三个挑战我们将讨论医学图像训练算法的三个关键挑战:类不平衡挑战、多任务挑战和数据集大小挑战。对于每一个挑战,我们将介绍一到两种应对方法。类别不平衡:可以... 查看详情

吴恩达-医学图像人工智能专项课程-第一课第一周1-3节(代码片段)

欢迎来到医学人工智能专业。如果你已经完成了深度学习专业化或机器学习课程,并且你正在寻找更深入掌握人工智能的应用领域,这是一个很好的专业化学习。要想成为真正优秀的机器学习,最重要的事情之一就是... 查看详情

吴恩达-第一课第二周1-7节总结-医学深度学习模型的评估汇总(代码片段)

医学深度学习模型的评估汇总本周我们将深入探讨医学深度学习模型的评估。在医学上,由于决策具有很高的影响力,我们关心的是准确地了解模型何时对患者起作用,什么时候不起作用。您将学习一下指标,包... 查看详情

吴恩达-第一课第二周8-10节-什么是置信区间,有什么作用

在这节课中,我们将了解评估医学模型的另一个非常重要的方面,即报告我们的评估中的可变性。我们将研究如何使用置信区间来显示这种可变性。假设一家医院有5万名病人,我们想知道我们的胸部x光模型对每个人... 查看详情

吴恩达-医学图像人工智能专项课程-第一课第一周12-13节多任挑战总结(代码片段)

前面我们已经学习了如何处理类别不平衡。这节课我们来探讨第二个挑战-多任务挑战目前为止,我们已经研究了二分类,我们关心的是一个例子是否是有mass疾病。然而,在现实世界中,我们关心的是对许多此类... 查看详情

第一课第一周大作业-胸部14种疾病分类-代码详解(代码片段)

深度学习胸部X射线诊断本次作业文件:在第一课/第一课大作业/week1classification欢迎来到课程1的第一个作业!在这个任务中!您将通过使用Keras构建最先进的胸部X射线分类器来探索医学图像诊断。你将学会一下内容... 查看详情

第二课第一周2节-做医学预后,你需要掌握什么?

我想谈谈这门课的要求。本课程的设计重点在于为你提供概念和实用工具。你需要成功地为医学建立机器学习模型。对于这门课程,你不需要任何深入学习方法的背景知识,也不需要任何医学背景。不过,在你上这门... 查看详情

第二课第一周第4-7节医学预后案例欣赏+作业解析(代码片段)

第二课第一周第4-7节医学预后案例欣赏+作业解析视频地址:B>Tina-姐预后的案例在这节课中,我们将看看预后临床例子。看看预后任务的输入和输出是什么样子的,以及我们如何权衡输入之间的权重。我们可以把... 查看详情

第二课第一周第4-6节医学预后案例欣赏+作业解析(代码片段)

第二课第一周第4-7节医学预后案例欣赏+作业解析视频地址:B>Tina-姐预后的案例在这节课中,我们将看看预后临床例子。看看预后任务的输入和输出是什么样子的,以及我们如何权衡输入之间的权重。我们可以把... 查看详情