zl程序教程

您现在的位置是:首页 >  Java

当前栏目

2012心肌及心肌梗塞分割挑战赛

2023-02-18 16:34:19 时间

今天将分享心肌及心肌梗塞分割完整实现版本,为了方便大家学习理解整个流程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧。

一、2012心肌及心肌梗塞分割介绍

左心室心肌梗死分割算法的基准测试平台。图像数据库由 30 个多中心、多供应商和多分辨率数据集组成。

二、2012心肌及心肌梗塞分割任务

心肌及心肌梗死区域分割。

三、2012心肌及心肌梗塞分割数据集

30例心肌标注数据,10例心肌梗死标注数据。

四、技术路线

心肌及心肌梗塞分割采用两个网络来完成,第一个网络分割心肌区域,然后根据心肌区域ROI用第二个网络来细分心肌梗塞区域。

1、去除多余的背景干扰,采用固定阈值(10,最大像素值)分割,然后使用形态学开操作(核大小是3)和最大连通域分析得到人体ROI区域。

2、心肌分割

2.1、统计ROI图像平均大小294x297x19,平均Spacing大小是1.31x1.31x6.43。将图像缩放到固定大小为320x320x32,并采用z-score进行归一化处理,将数据划分成训练集(25例)和验证集(5例),其中训练集进行10倍数据增强处理(平移,旋转,翻转等)。

2.2、搭建VNet3d网络,使用AdamW优化器,学习率是0.001,batchsize是6,epoch是200,损失函数采用二值dice和ce。

2.3、训练结果和验证结果

2.4、验证集分割结果

左边是金标准结果,右边是网络预测结果。

3、心肌梗塞分割

3.1、对心肌Mask进行形态学膨胀操作(核大小是5),再使用最大连通域得到心肌ROI区域。

3.2、统计ROI图像平均大小90x93x20,平均Spacing大小是1.32x1.32x6。将图像缩放到固定大小为96x96x32,并采用z-score进行归一化处理,将数据划分成训练集(8例)和验证集(2例),其中训练集进行20倍数据增强处理(平移,旋转,翻转等)。

3.2、搭建VNet3d网络,使用AdamW优化器,学习率是0.001,batchsize是10,epoch是200,损失函数采用二值dice和ce。

3.3、训练结果和验证结果

3.4、验证集分割结果

左边是金标准结果,右边是网络预测结果。

4、测试集分割结果

在测试推理的时候,先使用心肌分割模型对心肌区域分割提取,然后对心肌mask进行形态学膨胀操作(核大小是5),再使用心肌梗塞分割模型对心肌梗塞ROI区域分割提取,然后将心肌和心肌梗塞结果进行合并得到最终结果。

为了方便大家更高效地学习,我将代码进行了整理并更新到github上,点击https://www.cardiacatlas.org/challenges/ventricular-infarct-segmentation/即可访问。由于之前都是使用tensorflow1.14的进行代码实验开发的,为了方便pytorch的朋友们也可以复现实验结果,我将tensorflow版本的代码翻译转换成pytorch版本的。

如果大家觉得这个项目还不错,希望大家给个Star并Fork,可以让更多的人学习。如果有任何问题,随时给我留言我会及时回复的。