首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >kaggle挑战赛——肺炎分类及检测

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

作者头像
医学处理分析专家
发布2022-08-20 11:36:55
发布2022-08-20 11:36:55
7860
举报

今天将分享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、训练结果

训练损失函数结果

训练精度函数结果

验证损失函数结果

验证精度函数结果

6、验证数据结果

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

a、ROC曲线

b、ROC曲线面积——0.8289450000000002

c、混淆矩阵

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、训练结果

训练损失函数结果

训练精度函数结果

6、验证数据结果

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 最新医学影像技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档