| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 第一课第三周大作业-- MRI 脑肿瘤自动分割教程 -> 正文阅读 |
|
[人工智能]第一课第三周大作业-- MRI 脑肿瘤自动分割教程 |
文章目录作业文件
欢迎来到“医学人工智能”课程 1 的最后一部分! 您将学习如何使用 MRI数据构建神经网络以自动分割大脑中的肿瘤区域。 你将学习:
作业目录 2.1 MRI data在这个作业中,我们将构建一个多类分割模型。我们将在每个图像中识别 3 种不同的异常:水肿、非增强肿瘤和增强肿瘤。 可以使用ITK-SNAP打开来看一下图像和标签 使用的MRI数据来自 Medical Segmentation Decathlon 这是一个极其丰富的数据集,提供 3D 表示中每个点(体素)相关联的标签。 2.2 探索数据我们的数据集以 第一个文件是一个图像文件,包含形状为 (240, 240, 155, 4) 的 MR 图像的 4D 阵列。
每个训练示例中的第二个文件是一个标签文件,其中包含一个形状为 (240, 240, 155) 的 3D 数组。
我们可以访问总共 484 张训练图像,我们将这些图像分成训练 (80%) 和验证 (20%) 数据集。 让我们从查看一个案例并可视化数据开始!您可以通过此笔记本访问 10 个不同的案例,我们强烈建议您自行进一步探索数据。 分别按横断位、冠状位、矢状位显示图像,并且把标签显示在图像上
我们还编写了一个实用函数,该函数生成一个GIF,显示在每个轴上迭代的效果
2.4 使用 patch 进行数据预处理虽然我们的数据集是在配准后以 NIfTI 格式提供给我们的,但在将数据提供给我们的模型之前,我们仍然需要做一些小的预处理。 生成子体积(sub-volumes) 我们将首先生成数据的“patch 补丁”,您可以将其视为整个 MR 图像的子体积。 我们生成补丁的原因是因为原始图像太大,容易超出内存。 因此,我们将使用这种通用技术来生成空间一致的数据子体积,这些子体积可以输入到我们的网络中。 具体来说,我们将从我们的图像中生成形状为 [160, 160, 16] 的随机采样子体积。 此外,由于随机采样子体积,可能会导致大部分子体积只是脑组织或黑色背景,没有任何肿瘤,我们希望生成的子体积中至少包含一定数量肿瘤体素。 因此,我们将只选择具有最多 95% 非肿瘤区域(或至少 5% 肿瘤)的补丁(这是生成的子体积中,肿瘤和非肿瘤体素的占比) 我们通过根据背景标签中存在的值过滤来做到这一点。
标准化最后,鉴于 MR 图像中的值涵盖的范围非常广泛,我们将这些值标准化为均值为 0,标准差为 1。 这是深度图像处理中的常用技术,因为标准化使网络更容易学习。
3D U-Net模型使用的是3D unet 4.1 骰子相似系数除了架构之外,任何深度学习方法中最重要的元素之一就是损失函数的选择。 您可能熟悉的一个自然选择是交叉熵损失函数。 然而,由于严重的类别不平衡(通常没有很多正区域),这种损失函数对于分割任务并不理想。 分割任务的一个更常见的损失是 Dice 相似系数,它是衡量两个轮廓重叠程度的指标。 Dice = 0 表示完全不匹, Dice =1 表示完美匹配 。
DSC
(
A
,
B
)
=
2
×
∣
A
∩
B
∣
∣
A
∣
+
∣
B
∣
.
\text{DSC}(A, B) = \frac{2 \times |A \cap B|}{|A| + |B|}.
DSC(A,B)=∣A∣+∣B∣2×∣A∩B∣?. 我们的模型会将每个体素映射到 0 或 1
DSC ( f , x , y ) = 2 × ∑ i , j f ( x ) i j × y i j + ? ∑ i , j f ( x ) i j + ∑ i , j y i j + ? \text{DSC}(f, x, y) = \frac{2 \times \sum_{i, j} f(x)_{ij} \times y_{ij} + \epsilon}{\sum_{i,j} f(x)_{ij} + \sum_{i, j} y_{ij} + \epsilon} DSC(f,x,y)=∑i,j?f(x)ij?+∑i,j?yij?+?2×∑i,j?f(x)ij?×yij?+??
4.2 soft dice lossL D i c e ( p , q ) = 1 ? 2 × ∑ i , j p i j q i j + ? ( ∑ i , j p i j 2 ) + ( ∑ i , j q i j 2 ) + ? \mathcal{L}_{Dice}(p, q) = 1 - \frac{2\times\sum_{i, j} p_{ij}q_{ij} + \epsilon}{\left(\sum_{i, j} p_{ij}^2 \right) + \left(\sum_{i, j} q_{ij}^2 \right) + \epsilon} LDice?(p,q)=1?(∑i,j?pij2?)+(∑i,j?qij2?)+?2×∑i,j?pij?qij?+??
soft dice loss 就是 1-DSC 如果是多类别,就把每个类别的 DSC 累加起来:
5 创建模型
模型在 utils.py 文件中提供 5.1 训练如果你想训练模型,将5.1 的代码运行一遍 6 评估训练好的模型,没有给到大家,你可以自己训练一个模型,再评估。或者直接阅读以下评估方法,不用实践。 对于分割模型,我们同样可以计算 敏感度,特异性 还可以可视化预测结果
我是Tina, 我们下篇博客见~ 白天工作晚上写文,呕心沥血 觉得写的不错的话最后,求点赞,评论,收藏。或者一键三连 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/17 22:37:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |