今天将分享COVID的二值分割的完整改进实现过程,主要是采用了混合损失函数来训练网络模型,为了方便大家学习理解整个流程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧。
一、图像分析与预处理
(1)、199例COVID的CT原始数据和标注数据及训练标签文件可以在官网上下载获取得到。验证数据一共有50例CT数据,也可以在官网上下载了。
(2)、采用简单粗暴的方式来处理数据,由于训练的显卡是1080ti的11G显存的,所以首先将训练原始图像和标注图像进行图像大小缩放到固定大小,具体是160x160x64,如果你的显卡显存足够大的话,可以将该大小改的大一点,如果显存小的话,可以将该大小改小一点。
(3)、对缩放后的原始图像进行窗宽窗位设置,将-1000到0之间的Hu值进行保留,其他的范围进行截断处理。
(4)、然后在采用均值为0,方差为1的方式对原始图像进行归一化处理。
(5)、为了防止模型过拟合,还增加了数据增强的处理过程,采用旋转,平移,翻转等方法对图像和标注数据同时进行扩充处理,这里扩充了20倍。
二、分割网络
(1)、搭建VNet3d模型,网络输入大小是(160,160,64)。具体实现可以参考Tensorflow入门教程(十九)——基于VNet的前列腺分割案例。
(2)、loss采用的是二分类的dice函数和focalloss函数。具体实现可以参考Tensorflow入门教程(三十四)——常用两类图像分割损失函数。
(3)、分割损失结果和精度经过如下图所示。
三、验证数据结果
在50例数据上进行测试,验证数据结果排名在24名,结果相比第一次结果有一定提高,但是与第一名还是有差距。
在提交结果上可以看到详细评价指标数值,以dice指标为例,好的结果dice值可以到达0.85以上,差的结果dice值只有0.18。
为了方便大家更高效地学习,整个项目代码更新到github上,https://github.com/junqiangchen/COVID-19-20-Segmentation-Challenge。点击原文链接即可访问官方比赛网址,可以直接下载训练和验证数据。
如果大家觉得这个项目还不错,希望大家给个Star并Fork,可以让更多的人学习。如果有任何问题,随时给我留言我会及时回复的。