Cervix2015——宫颈器官分割案例实现

2022-08-20 11:24:26 浏览数 (1)

今天将分享宫颈器官的多类分割的完整实现过程,为了方便大家学习理解整个流程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧。

一、图像分析与预处理

(1)、宫颈器官数据集包括计划对处于不同疾病阶段但都符合放疗条件的子宫颈癌患者的CT扫描。CT扫描由512x512体素的148至241个轴向切片(取决于身体大小)组成。体素分辨率为1.27x1.27或0.977x0.977,两者的切片厚度均为2.5mm。扫描是通过全膀胱饮水方案进行的,这意味着要求患者在治疗前每小时喝300毫升水。大多数患者使用腹板在俯卧位上进行扫描,但是出于实际原因,有些患者在仰卧位上进行扫描(患者编号1577656、1689606、2609008、5463446、5681868、6776202、67998630)。所有图像均由训练有素的放射肿瘤学家描绘。这些划定已在临床实践中使用,并提供了四个已一致重命名的结构:(1)膀胱,(2)子宫,(3)直肠,(4)小肠。

(2)、采用简单粗暴的方式来处理数据,由于训练的显卡是1080ti的11G显存的,所以首先将训练原始图像和标注图像进行图像大小缩放到固定大小,具体是128x128x96,如果你的显卡显存足够大的话,可以将该大小改的大一点,如果显存小的话,可以将该大小改小一点。。

(3)、对缩放后的原始图像进行窗宽窗位设置,将-200到300之间的Hu值进行保留,其他的范围进行截断处理。

(4)、然后在采用均值为0,方差为1的方式对原始图像进行归一化处理。

(5)、为了防止模型过拟合,还增加了数据增强的处理过程,采用旋转,平移,翻转等方法对图像和标注数据同时进行扩充处理,这里扩充了50倍。

二、分割网络

(1)、搭建VNet3d模型,网络输入大小是(128,128,96)。具体实现可以参考Tensorflow入门教程(十九)——基于VNet的前列腺分割案例

(2)、loss采用的是多分类的focalloss函数。具体实现可以参考Tensorflow入门教程(三十五)——常用多类图像分割损失函数

(3)、训练损失函数和精度结果如下所示。

三、测试数据结果

首先将输入图像统一缩放到(128,128,96),设置窗宽窗位(-200,300),并采用均值为0,方差为1的方式归一化,然后输入到网络中预测,最后将结果恢复到原始图像大小。下面是10例测试数据分割结果。

0 人点赞