今天将分享动脉瘤检测和分割的第一步热力图回归检测的完整实现过程,为了方便大家学习理解整个流程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧。
一、数据分析与预处理
首先将训练中有效的颅内动脉瘤的数据提取出来,有一些数据是没有动脉瘤,不作为训练数据,此外标签值1是未破裂的动脉瘤,标签值2是治疗过或破裂的动脉瘤,挑战的目的是自动检测或分割未治疗,未破裂的动脉瘤(标签0与标签1)。因此,不需要检测已治疗的动脉瘤的方法。
然后根据txt中的动脉瘤的图像中心线点坐标和半径值,生成该点处的高斯热力图,如果一个图像上有多个动脉瘤,将所有动脉瘤的高斯热力图相加即可。效果图如下所示,左图是动脉瘤原始图和mask图,右图是高斯热力图。
为了将整个图像输入到网络中去,需要对原始图像和热力图进行大小缩放,由于显卡是1080TI的11G显存的大小,所以图像缩放到固定大小(160,160,64),对图像进行(5,95)范围的均值为0,方差为1的归一化处理。
二、热力图回归网络
模型采用的是VNet3d网络结构,损失函数采用的是L2-loss,学习率是0.001,dropout是0.5,迭代次数是300,训练数据一共184例,迭代次数是300epochs,bathsize是1,优化器是RMSPropOptimizer。
三、网络训练和测试
损失函数曲线如下所示。
在测试数据上进行测试,热力图预测结果如下所示,可以看到有很多候选区域,接下来需要对这些候选区域进行分类,进一步减少假阳性区域。