今天将分享血管间隙的第三步二值化分割的完整实现过程,为了方便大家学习理解整个流程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧。
一、数据分析与预处理
首先将训练中有效的颅内血管间隙区域的数据提取出来,有一些数据没有血管间隙区域,不作为训练数据,在这里只分析标签值1,其他标签都是0。以一共40例数据,有血管间隙的数据有22例。
分析这22例数据的基础信息:图像平均大小[243.27777778, 298.5, 168.16666667], 图像Spacing平均大小[0.63042518,0.63042518,0.85555538], 血管间隙平均大小[5.05882353,5.62745098,3.70588235]。可以看到血管间隙的区域非常小,所以采用spacing缩放方式将原始图像和Mask图像统一到(0.3,0.3,0.3)。
对Mask进行连通域分析得到每个血管间隙的boundingbox,以boundingbox的中心裁切出(64,64,64),对裁切出来的三个模态图像进行(5,95)的均值为0,方差为1的归一化处理。
数据增强:为了增强多样性,对裁切出来的数据进行5倍数据扩充,随机旋转30度,x,y,z随机平移0.1大小,水平,垂直随机翻转等。
最后将数据分成训练集,验证集和测试集,比例是80%,10%,10%大小。
二、二分割网络
网络主体采用的是VNet的网络,损失函数采用的是二值dice,学习率是0.001,droupout是0.5,迭代次数是20epochs,batchsize是6。训练数据一共有1660例,优化器是AdamOptimizer。
三、网络训练和测试
训练损失结果和精度结果
在测试数据上通过人为指定一个中心点坐标,然后再对该中心点(64,64,64)的三个模态图像区域进行分割,分割结果如下所示,左图是金标准结果,右图是预测结果。