VALDO2021——血管病变检测挑战赛之脑微出血检测(一)

2022-08-20 11:28:31 浏览数 (1)

今天将分享脑微出血检测的第一步热力图回归检测的完整实现过程,为了方便大家学习理解整个流程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧。

一、数据分析与预处理

首先将训练中有效的颅内微出血区域的数据提取出来,有一些数据没有微出血区域,不作为训练数据,在这里只分析标签值1,其他标签都是0。以一共72例数据,有微出血的数据有49例。

分析这49例数据的基础信息:图像平均大小[373.33333333, 373.33333333, 83.375], 图像Spacing平均大小[0.75895175, 0.75895175, 2.7124758 ], 微出血平均大小[4.93360996, 4.55186722, 2.17012448]。

然后根据每个微出血区域的boundingbox的中心和大小,生成该点处的高斯热力图,高斯热力图的中心就是微出血区域的中心点坐标,高斯Sigma的数值是boundingbox的最大值,如果一个图像上有多个微出血,将所有微出血的高斯热力图相加即可,效果图如下所示,左图是微出血原始图和mask图,右图是高斯热力图。

2、准备2d和3d训练数据

2.1、3d数据准备

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

2.2、2d数据准备

将图像首先按照xy方向大小缩放到(512,512)大小,然后按照z方向分析热力图二维图,判断是否有热力图结果,如果有的话就将该二维热力图和二维图像进行保存,其中图像进行(5,95)的均值为0,方差为1的归一化处理。

3、搭建回归网络结构

3.1、3d回归网络

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

3.2、2d回归网络

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

4、网络训练结果

3d回归网络损失函数曲线如下所示。

2d回归网络损失函数曲线如下所示。

5、网络预测结果

在1例数据上进行测试,3d和2d热力图结果如下所示,可以看到有很多候选区域,接下来需要对这些候选区域进行分类,进一步减少假阳性区域。

0 人点赞