今天将分享心脏心肌的二值分割的完整实现过程,为了方便大家学习理解整个流程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧。
一、图像分析与预处理
(1)、83例MR原始数据和标注数据及训练标签文件可以在官网上下载获取得到。测试数据有72例MR数据,也可以在官网上下载了。详情点击原文链接。
(2)、采用简单粗暴的方式来处理数据,由于训练的显卡是1080ti的11G显存的,所以首先将训练原始图像和标注图像进行图像大小缩放到固定大小,具体是224x224x32,如果你的显卡显存足够大的话,可以将该大小改的大一点,如果显存小的话,可以将该大小改小一点。
(3)、对缩放后的原始图像进行异常值截断处理,将95%以上的灰度值和5%以下的灰度值进行截断。
(4)、然后在采用均值为0,方差为1的方式对原始图像进行归一化处理。
(5)、为了防止模型过拟合,还增加了数据增强的处理过程,采用旋转,平移,翻转等方法对图像和标注数据同时进行扩充处理,这里扩充了50倍。
二、分割网络
(1)、搭建VNet3d模型,网络输入大小是(224,224,32)。具体实现可以参考Tensorflow入门教程(十九)——基于VNet的前列腺分割案例。
(2)、loss采用的是二分类的dice函数。具体实现可以参考Tensorflow入门教程(三十四)——常用两类图像分割损失函数。
(3)、训练损失函数和精度结果如下所示。
三、测试数据结果
输入图像统一缩放到(224,224,32),设置截断范围(5%,95%),再采用均值为0,方差为1的方式对多序列图像进行归一化,输入到网络中预测,最后将结果缩放到原始图像大小。下面是部分10例测试数据预测分割结果。