前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >crossMoDA2021——前庭神经鞘瘤分割

crossMoDA2021——前庭神经鞘瘤分割

作者头像
医学处理分析专家
发布2022-08-20 11:32:49
4420
发布2022-08-20 11:32:49
举报

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

一、比赛简介

挑战的目标是分割参与前庭神经鞘瘤(VS)的随访和治疗计划的两个关键脑结构:肿瘤和耳蜗。

所有图像都是在32通道Siemens Avanto 1.5T扫描仪上使用Siemens单通道磁头线圈获得的:

1、使用MPRAGE序列进行对比度增强的T1加权成像,该序列的面内分辨率为0.4×0.4 mm,面内矩阵为512×512,切片厚度为1.0至1.5 mm(TR = 1900 ms,TE = 2.97毫秒,TI = 1100毫秒)

2、使用3D CISS或FIESTA序列的面内分辨率为0.5x0.5 mm,面内矩阵为384x384或448x448以及切片厚度为1.0至1.5 mm(TR = 9.4 ms, TE = 4.23ms)。

二、技术路线

2.1、耳蜗分割

第一步、热力图回归

1、数据预处理

首先将训练数据中有效的数据提取出来,此处标签值1是肿瘤瘤,标签值2是耳蜗,在这里只分析标签值2,其他标签都是0。

然后通过连通域分析mask图像中每个连通域的中心点坐标和xyz的半径值,生成该点处的高斯热力图,高斯热力图的中心就是耳蜗的中心点坐标,高斯Sigma的数值是xyz半径值最大的数值,如果有多个耳蜗区域,将所有耳蜗的高斯热力图相加即可。效果图如下所示,左图是原始图,右图是高斯热力图。

2、准备训练数据

为了将整个图像输入到网络中去,需要对原始图像和热力图进行大小缩放,由于显卡是1080TI的11G显存的大小,所以图像缩放到固定大小(128,128,96),对图像进行(5,95)的均值为0,方差为1的归一化处理。

3、搭建回归网络结构

模型采用的是VNet主体结果,最后一层的激活函数设置成线性及无激活函数,损失函数采用的是L2-loss,学习率是0.001,droupout是0.5,迭代次数是300,训练数据一共200例,迭代次数是300epochs,bathsize是1,优化器是RMSPropOptimizer

4、网络训练和预测

损失函数曲线如下所示。

第二步、二值分类

1、数据预处理

统计所有数据的spacing大小和图像大小,平均值分别是(0.41,0.41,1.46),(512,512,123),耳蜗的boundingbox平均值是(16,13.5,5.0)。可以看到耳蜗的区域非常小,所以采用spacing缩放方式将原始图像和Mask图像统一到(0.3,0.3,0.3)。

2、准备训练数据

针对非耳蜗区域,在整个图像上随机裁切出50个(64,64,64),针对耳蜗区域,根据连通域分析Mask得到每个耳蜗的boundingbox,在该区域内随机获取点,并以此为中心裁切(64,64,64),裁切的个数是50/连通域个数。再对裁切出来的图像进行(5,95)的均值为0,方差为1的归一化处理。

3、搭建二分类网络结构

网络主体采用的是VGG16的残差连接网络,损失函数采用的是二值交叉熵,学习率是0.001,droupout是0.5,迭代次数是10epochs,batchsize是12。训练数据一共8000例,测试数据一共有1000例,验证数据一共有1000例,优化器是AdamOptimizer。

4、网络训练和预测

训练损失结果和精度结果

验证集损失结果和精度结果

在测试数据上进行测试

混淆矩阵是

[[499 1]

[ 0 500]]

ROC曲线是1.0,曲线如下

其他评价指标

precision recall f1-score support

0.0 1.00 1.00 1.00 500

1.0 1.00 1.00 1.00 500

avg / total 1.00 1.00 1.00 1000

第三步、二值分割

1、数据预处理

统计所有数据的spacing大小和图像大小,平均值分别是(0.41,0.41,1.46),(512,512,123),耳蜗的boundingbox平均值是(16,13.5,5.0)。可以看到耳蜗的区域非常小,所以采用spacing缩放方式将原始图像和Mask图像统一到(0.3,0.3,0.3)。

2、准备训练数据

对Mask进行连通域分析得到每个耳蜗的boundingbox,以boundingbox的中心裁切出(64,64,64),对裁切出来的图像进行(5,95)的均值为0,方差为1的归一化处理。

数据增强:为了增强多样性,对裁切出来的数据进行10倍数据扩充,随机旋转30度,x,y,z随机平移0.1大小,水平,垂直随机翻转等。

3、搭建二类分割网络结构

网络主体采用的是VNet的网络,损失函数采用的是二值dice,学习率是0.001,droupout是0.5,迭代次数是10epochs,batchsize是6。训练数据一共有200例,优化器是AdamOptimizer。

4、网络训练和预测

训练损失结果和精度结果

第四步、三网络级联预测耳蜗分割结果

1、输入原始图像,对图像按照图像大小缩放到(128,128,96)大小,采用(5,95)范围的均值为0,方差为1的归一化。

2、输入到热力图回归网络中预测,对结果进行二值化处理,这里采用三分之一的最大热力图值,进行二值化处理,然后再缩放到原始图像大小。

3、对原始图像和预测热力图结果,按照图像spacing缩放到(0.3,0.3,0.3)大小。

4、对采样后的二值热力图进行连通域分析,获得每个连通域的boundingbox范围。

5、在boundingbox范围内,按照步长是(32,32,32)坐标获取(64,64,64)大小的ROI图像区域,采用(5,95)范围的均值为0,方差为1的归一化。

6、输入到二值分类网络中去,如果预测标签值为1,那么就进一步分割,直到遍历完该区域范围,否则处理下一个连通域。

7、对分类标签是1的目标进行分割。

8、将所有的分割结果采样回到原始图像大小,最后输出成预测的分割结果。

下图是整个图像上的金标准结果和预测结果,可以看到预测结果还是不错的。

2.2、肿瘤分割

第一步、热力图回归

1、数据预处理

首先将训练数据中有效的数据提取出来,此处标签值1是肿瘤,标签值2是耳蜗,在这里只分析标签值1,其他标签都是0。

然后通过连通域分析mask图像中每个连通域的中心点坐标和xyz的半径值,生成该点处的高斯热力图,高斯热力图的中心就是肿瘤的中心点坐标,高斯Sigma的数值是xyz半径值最大的数值,如果有多个肿瘤区域,将所有肿瘤的高斯热力图相加即可。效果图如下所示,左图是原始图,右图是高斯热力图。

2、准备训练数据

为了将整个图像输入到网络中去,需要对原始图像和热力图进行大小缩放,由于显卡是1080TI的11G显存的大小,所以图像缩放到固定大小(128,128,96),对图像进行(5,95)的均值为0,方差为1的归一化处理。

3、搭建回归网络结构

模型采用的是VNet主体结果,最后一层的激活函数设置成线性及无激活函数,损失函数采用的是L2-loss,学习率是0.001,droupout是0.5,迭代次数是300,训练数据一共200例,迭代次数是300epochs,bathsize是1,优化器是RMSPropOptimizer

4、网络训练和预测

损失函数曲线如下所示。

第二步、二值分类

1、数据预处理

统计所有数据的spacing大小和图像大小,平均值分别是(0.41,0.41,1.46),(512,512,123),肿瘤的boundingbox平均值是(46,38,11)。可以看到肿瘤的区域非常不大,所以采用spacing缩放方式将原始图像和Mask图像统一到(0.3,0.3,0.3)。

2、准备训练数据

针对非肿瘤区域,在整个图像上随机裁切出50个(64,64,64),针对肿瘤区域,根据连通域分析Mask得到每个肿瘤的boundingbox,在该区域内随机获取点,并以此为中心裁切(64,64,64),裁切的个数是50/连通域个数。再对裁切出来的图像进行(5,95)的均值为0,方差为1的归一化处理。

3、搭建二分类网络结构

网络主体采用的是VGG16的残差连接网络,损失函数采用的是二值交叉熵,学习率是0.001,droupout是0.5,迭代次数是10epochs,batchsize是12。训练数据一共8000例,测试数据一共有1000例,验证数据一共有1000例,优化器是AdamOptimizer。

4、网络训练和预测

训练损失结果和精度结果

验证集损失结果和精度结果

在测试数据上进行测试

混淆矩阵是

[[472 1]

[ 0 527]]

ROC曲线是1.0,曲线如下

其他评价指标

precision recall f1-score support

0.0 1.00 1.00 1.00 473

1.0 1.00 1.00 1.00 527

avg / total 1.00 1.00 1.00 1000

第三步、二值分割

1、数据预处理

统计所有数据的spacing大小和图像大小,平均值分别是(0.41,0.41,1.46),(512,512,123),肿瘤的boundingbox平均值是(46,38,11)。可以看到肿瘤的区域非常不大,所以采用spacing缩放方式将原始图像和Mask图像统一到(0.3,0.3,0.3)。

2、准备训练数据

对Mask进行连通域分析得到每个肿瘤的boundingbox,以boundingbox的中心裁切出(64,64,64),对裁切出来的图像进行(5,95)的均值为0,方差为1的归一化处理。

数据增强:为了增强多样性,对裁切出来的数据进行10倍数据扩充,随机旋转30度,x,y,z随机平移0.1大小,水平,垂直随机翻转等。

3、搭建二类分割网络结构

网络主体采用的是VNet的网络,损失函数采用的是二值dice,学习率是0.001,droupout是0.5,迭代次数是10epochs,batchsize是6。训练数据一共有100例,优化器是AdamOptimizer。

4、网络训练和预测

训练损失结果和精度结果

第四步、三网络级联预测肿瘤结果

1、输入原始图像,对图像按照图像大小缩放到(128,128,96)大小,采用(5,95)范围的均值为0,方差为1的归一化。

2、输入到热力图回归网络中预测,对结果进行二值化处理,这里采用三分之一的最大热力图值,进行二值化处理,然后再缩放到原始图像大小。

3、对原始图像和预测热力图结果,按照图像spacing缩放到(0.3,0.3,0.3)大小。

4、对采样后的二值热力图进行连通域分析,获得每个连通域的boundingbox范围。

5、在boundingbox范围内,按照步长是(32,32,32)坐标获取(64,64,64)大小的ROI图像区域,采用(5,95)范围的均值为0,方差为1的归一化。

6、输入到二值分类网络中去,如果预测标签值为1,那么就进一步分割,直到遍历完该区域范围,否则处理下一个连通域。

7、对分类标签是1的目标进行分割。

8、将所有的分割结果采样回到原始图像大小,最后输出成预测的分割结果。

下图是整个图像上的金标准结果和预测结果,可以看到预测结果还是不错的。

2.3、最后分割结果

最后将上述两步结合起来,在5例测试图像上进行分割,结果如下。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 最新医学影像技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档