今天我将分享对腹部CT图像进行13种不同器官分割。为了方便大家学习理解整个分割流程,我将整个流程步骤进行了整理,并给出每个步骤的结果,希望对大家有所帮助。

一、腹部CT图像分析与预处理

(1)、获取图像属性信息。读取原始图像,显示图像大小,Spacing信息,设置合适的窗宽窗位信息来截断非腹部器官区域的图像。

(2)、获取Mask图像信息。读取Mask图像,输出Mask的全部标签值,0是背景,1是脾脏,2是右肾,3是左肾,4是胆囊,5是食管,6是肝脏,7是胃,8是大动脉,9是下腔静脉,10是门静脉和脾静脉,11是胰腺,12是右肾上腺,13是左肾上腺。

(3)、准备腹部多器官分割数据。根据金标准的Mask图像确定器官的起始和结束范围;截取该范围内的原始图像和mask图像,然后将截取的图像和Mask图像进行插值操作,按照Spacing的方式进行插值,将图像全部插值到(1x1x3)大小;最后对插值后的图像进行分块取Patch操作,生成若干个(256,256,16)大小的图像和Mask,判断并输出非零的Mask和对应的图像。

二、腹部器官分割

(1)、搭建VNet3d模型,与二分类VNet3d模型的不同之处就在于最后一层输出采用SoftMax激活函数,网络输入大小是(256,256,16)。

腹部多器官分割挑战赛_插值

(2)、loss采用的是多分类函数,包括交叉熵,dice系数,Focalloss,dice+Focalloss,具体实现可以点击原文链接查看具体代码。

(3)、损失结果和精度经过如下图所示。

交叉熵损失和精度

腹部多器官分割挑战赛_分块_02

腹部多器官分割挑战赛_3d_03

focalloss损失和精度

腹部多器官分割挑战赛_3d_04

腹部多器官分割挑战赛_分块_05

dice损失和精度

腹部多器官分割挑战赛_3d_06

腹部多器官分割挑战赛_插值_07

dice+focalloss损失和精度

腹部多器官分割挑战赛_插值_08

腹部多器官分割挑战赛_插值_09

(4)、分割推理过程:首先对图像以Spacing方式进行插值成(1x1x3),并设置窗宽窗位,输入到网络中去,网络输入大小是(512x512x32),在xyz方向上分块输入并拼接得到分割结果,再将分割结果插值回到原始图像spacing大小,最后去除小目标物体,策略是小于0.01倍的最大物体体积的目标去除。

三、在测试数据上进行分割试验

上述四种损失函数在测试数据上预测并计算每类dice值如下图所示。

腹部多器官分割挑战赛_3d_10

分割Mask结果如下图所示,图1是金标准Mask图像,2是交叉熵Mask图像,3是focallossMask图像,4是dice+focallossMask图像。

腹部多器官分割挑战赛_分块_11