| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【论文笔记 医疗影像分割—nnUNet】nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation -> 正文阅读 |
|
[人工智能]【论文笔记 医疗影像分割—nnUNet】nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation |
文章目录说明:本文是对原版论文和一位大神解读的基础上,加以自己的理解而作,如有错误,欢迎指正。 大神的文章链接 1.Abstract对于深度学习模型来说,当用在一个新的问题上,就需要对可变设置进行人为设定。对新问题的适应包括精确架构、预训练、训练、推理对个自由度,这些选择对整体性能有很大的影响。 本文提出
本文对原始U-net仅有微小改动,未使用残差连接、密集连接或注意机制。 2. 网络架构模型提供了三种Unet架构:2D U-Net, 3D U-Net and a U-Net Cascade(U-Net级联)。三者特点如下:
2.1 Unet优点(写论文参考)U-Net[6]是近年来备受关注的一种成功的编解码网络。其编码器部分的工作原理与传统的分类CNN相似,它以减少空间信息为代价,连续地聚集语义信息。由于在分割过程中,语义和空间信息对网络的成功都至关重要,因此必须以某种方式恢复丢失的空间信息。U-Net通过解码器来实现这一点,解码器接收来自“U”底部的语义信息,并将其与通过跳过连接直接从编码器获得的更高分辨率特征图进行重新组合。与其他分割网络(如FCN[9]和以前的DeepLab迭代[10])不同,这使得U-Net能够很好地分割精细结构。 对原始unet的小改动:①激活函数:用 leaky ReLUs ②归一化方法:使用 2.2 2D U-Net3D医学图像分割使用2D U-Net似乎不是最佳选择,忽略沿z轴的有价值的信息 特点:如果数据集是各向异性的,则常规3D分割方法的性能会下降 2.3 3D U-Net3D U-Net似乎是选择3D图像数据的适当方法 训练方法:理想情况下,在整个患者的图像上训练;实际上,GPU内存量的限制,只能在切成图像块(image patches)训练。小结构(例如脑肿瘤,海马和前列腺)适合切块,但是像肝这种大结构,切了之后就会损失很多上下文信息。 特点:适合小尺寸物体的分割 2.4 U-Net Cascade特点:解决3D U-Net在具有大图像尺寸的数据集上的实际缺陷 首先要对降采样的图像进行3D U-Net训练(阶段1)。然后,将阶段1结果上采样到原始尺寸,作为附加输入通道传递到第二个3D U-Net,第二个3D U-Net在上以全分辨率进行训练(第2阶段)。 总结:这里给出了三种算法各自的优缺点,可以针对自己的任务进行选择。也可以都跑一遍,看哪个方法更优。 3. 动态调整网络拓扑提出原因:由于不同数据集图片尺寸的明显不同,输入patch大小和池化操作数必须自动适应每个数据集,使空间信息的充分聚合。除了适应图像几何形状之外,还有一些技术限制,比如可用的内存需要考虑。 具体实现:根据硬件支持能力进行网络配置。下面以2D Unet为例:
根据动态调整网络拓扑策略所获得的网络配置 4. 预处理预处理是我们的方法组成的全自动分割流程的一部分,下面展示的步骤是在没有任何用户干预的情况下进行的。 4.1 Crop—剪裁所有数据都裁剪到非零值区域。 这对大多数数据集(例如肝脏CT)没有影响,但会减少颅骨剥脱大脑MRI的大小(从而减少计算负担)。 4.2 Resampling—重采样CNN不了解体素间距。医学图像中不同协议的slice的采集间隔是不同的。为了使网络更好的学到空间语义信息,将所有患者重新采样到其各自数据集的体素间距的中值,其中 U-Net Cascade级联的必要性由下方式决定:如果重采样数据集的shape的中值超过3D U-Net输入patch处理voxels量限度的4倍(批大小为2),它符合U-Net级联,并且该数据集另外被重新采样到更低的分辨率。这是通过增加体素间距(降低分辨率)2倍来实现的,直到达到上述标准。如果数据集是各向异性的,则首先对高分辨率的轴进行降采样,直到它们与低分辨率的轴/轴相匹配,然后才对所有的轴同时进行降采样。 4.3 Normalization因为CT扫描的强度范围是绝对的,所有CT图像都根据整个各自数据集的统计数据自动归一化:①对训练数据集分割掩码内像素强度的均值和方差进行zscore归一化,并裁剪这些强度值的到[0.5,99.5]。
对于MRI或其他图像模态,则将简单的zscore归一化分别应用于患者。 如果裁剪将数据集中(体素)中患者的平均大小减少了1/4或更多,则只在非零元素的掩码中进行归一化,并且掩码之外的所有值都设置为0。 5. 训练程序5.1 损失函数损失函数为diceloss+交叉熵损失函数: L = L d i c e + L C E L=L_{dice}+L_{CE} L=Ldice?+LCE?,其中,dice loss公式如下: 5.2 学习率—当某指标不再变化调整学习率当训练loss在过去30个时期内没有改善至少5×10?3时,学习率就会降低5因子。如果测试loss在过去60个时代内没有提高超过5×10?3,但在学习率小于10?6之前,训练将自动终止。 5.3 数据增广在训练过程中,以下增强技术被实时应用(applied on the fly during training):随机旋转,随机缩放,随机弹性变形,伽玛校正增强和镜像。 如果3D U-Net的输入面片大小的最大边缘长度大于最短长度的两倍,则应用三维数据增强可能不是最佳选择。 对于应用此标准的数据集,我们改用2D数据增强,然后将其逐片应用于每个样本。 U-Net级联的第二阶段接收上一步的分段作为附加输入通道。 为了防止强烈的共适应,我们应用了随机的形态学运算符(腐蚀,扩张,打开,闭合),并随机删除了这些分割的连接部分。 5.4 Patch Sampling为了提高我们网络训练的稳定性,我们强制要求一批中的三分之一以上的样本包含至少一个随机选择的前景类。 6. 推理推断也都基于patch进行。 由于网络准确性朝着patch的边界降低,因此,当汇总跨patch的预测时,我们将靠近中心的体素的权重提高为接近边界的体素。 通过按patch大小/ 2选择patch以使其重叠,我们通过沿所有有效轴镜像所有patch来进一步利用test time data augmentation(测试时间数据扩充, 也叫TTA, 是一种在比赛中常用的方法)。 对于测试用例,我们使用从训练集交叉验证中获得的五个网络作为整体,以进一步提高模型的鲁棒性。 7. 后处理使用 8. 结果 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/27 6:36:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |