0
点赞
收藏
分享

微信扫一扫

kaggle挑战赛——肺炎分类及检测

今天将分享kaggle系列挑战赛之肺炎分类及肺炎区域检测的完整实现过程,为了方便大家学习理解整个流程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧。

一、比赛介绍

对X光图像进行是否肺炎判断,并将有肺炎的区域标识出来。一共有26684张训练数据,3000张测试数据。

二、技术路线

A、判断是否有肺炎

1、加载csv文件,读取X光图像和对应类别标签值,统计正负样本比值:大约是1:3.5。

2、将所有标注数据分成9:1分成训练数据和验证数据,然后对训练数据中正样本进行2倍扩充,验证数据不扩充。

3、对所有的图像进行统一缩放处理,大小统一大小是256x256,图像归一化,用均值是0和方差是1的方式进行归一化。

4、网络采用的是VGG16网络结构,损失是交叉熵,学习率是0.001,droupout是0.5,epoch是20,batchsize是64。

5、训练结果

训练损失函数结果

kaggle挑战赛——肺炎分类及检测_归一化

训练精度函数结果

kaggle挑战赛——肺炎分类及检测_归一化_02

验证损失函数结果

kaggle挑战赛——肺炎分类及检测_数据_03

验证精度函数结果

kaggle挑战赛——肺炎分类及检测_数据_04

6、验证数据结果

通过上面曲线可以看到,随着训练的进行,训练结果越来越好,而验证数据却不是的,这说明出现过拟合现象,此时采用提早结束训练网络。将最后保存的网络权重用来对验证数据进行测试,并查看一下相关评价指标。

a、ROC曲线

kaggle挑战赛——肺炎分类及检测_归一化_05

 b、ROC曲线面积——0.8289450000000002

c、混淆矩阵

kaggle挑战赛——肺炎分类及检测_数据_06

d、其他评价指标

              precision  recall   f1-score   support

       0.0       0.86      0.89      0.87      2000

       1.0       0.58      0.52      0.55       600

avg / total   0.80      0.80      0.80      2600

B、标识肺炎区域

1、加载csv文件,读取X光图像和对应框的数值(左上点坐标和长宽数值),并将框生成区域实体框图像(使用opencv画框函数可实现该功能)。

2、将训练数据分成9:1分成网络训练数据和验证数据。

3、对所有的图像进行统一缩放处理,大小统一大小是256x256,图像归一化,用均值是0和方差是1的方式进行归一化。

4、网络采用的是VNet2d网络结构,损失是二值dice,学习率是0.001,droupout是0.5,epoch是20,batchsize是64。

5、训练结果

训练损失函数结果

kaggle挑战赛——肺炎分类及检测_数据_07

训练精度函数结果

kaggle挑战赛——肺炎分类及检测_损失函数_08

6、验证数据结果

下图是原始x光图像,左边是金标准图像,右边是预测结果。

  kaggle挑战赛——肺炎分类及检测_数据_09

kaggle挑战赛——肺炎分类及检测_损失函数_10kaggle挑战赛——肺炎分类及检测_损失函数_11

kaggle挑战赛——肺炎分类及检测_归一化_12

kaggle挑战赛——肺炎分类及检测_数据_13 kaggle挑战赛——肺炎分类及检测_归一化_14

kaggle挑战赛——肺炎分类及检测_损失函数_15

kaggle挑战赛——肺炎分类及检测_归一化_16 kaggle挑战赛——肺炎分类及检测_损失函数_17

kaggle挑战赛——肺炎分类及检测_数据_18

kaggle挑战赛——肺炎分类及检测_数据_19 kaggle挑战赛——肺炎分类及检测_损失函数_20

kaggle挑战赛——肺炎分类及检测_归一化_21

kaggle挑战赛——肺炎分类及检测_数据_22  kaggle挑战赛——肺炎分类及检测_损失函数_23

kaggle挑战赛——肺炎分类及检测_数据_24

kaggle挑战赛——肺炎分类及检测_损失函数_25 kaggle挑战赛——肺炎分类及检测_归一化_26


为了方便大家更高效地学习,后期会将相关项目代码更新到github上,点击原文链接即可访问官方比赛网址,可以直接下载训练和测试数据。

举报

相关推荐

0 条评论