前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用深度学习技术检测x射线图像中的COVID-19

利用深度学习技术检测x射线图像中的COVID-19

作者头像
HuangWeiAI
发布2020-04-16 14:56:42
9430
发布2020-04-16 14:56:42
举报
文章被收录于专栏:浊酒清味

01

前言

作者:Adrian Rosebrock

编译:HuangweiAI

原文:文末阅读原文

在本教程中,您将学习:

  1. 采样COVID-19阳性的患者x射线图像的开源数据集
  2. 采样“正常”样本健康病人的x光照片
  3. 通过我们创建的数据集训练一个CNN自动检测x射线图像中的COVID-19

免责声明:本文所使用的方法和技巧仅供教学用途。这不是一项科学严谨的研究,也不会发表在期刊上。这篇文章是为那些对计算机视觉/深度学习感兴趣,并希望通过实际的、动手操作的方法来学习的读者准备的。

02

COVID-19如何在x射线图像中被检测到?

COVID-19测试目前很难获得——它们的数量根本不够,而且制造的速度也不够快,这造成了恐慌。鉴于COVID-19测试套件有限,我们需要依赖其他诊断措施。

出于本教程的目的,我想探讨x射线图像,因为医生经常使用x射线和CT扫描来诊断肺炎、肺部炎症、脓肿和/或淋巴结肿大。

由于COVID-19攻击我们呼吸道的上皮细胞,我们可以用x射线来分析病人肺部的健康状况。考虑到几乎所有的医院都有x射线成像仪,在没有专门的测试工具的情况下,使用x射线来测试COVID-19是有可能的。

缺点是,x射线分析需要一位放射学专家,而且需要大量的时间——当世界各地的人们生病时,这是很宝贵的。因此,开发一个自动化的分析系统是必要的,以节省医疗专业人员的宝贵时间。

03

我们的COVID-19患者x射线图像数据集

我们本教程中使用的COVID-19 x射线图像数据集是由蒙特利尔大学博士后Joseph Cohen博士管理的。一周前,科恩博士开始收集COVID-19病例的x射线图像,并将其发布在以下GitHub repo上:

https://github.com/ieee8023/covid-chestxray-dataset

你会发现19例一氧化碳中毒病例,以及中东呼吸综合征、SARS和ARDS。为了创建本教程的COVID-19 x射线图像数据集,我解析了在Cohen博士的存储库中找到的metada .csv文件。选择COVID-19阳性(忽略中东呼吸综合征、SARS和ARDS病例)。

最后留下了25张阳性COVID-19例的x线图像(如下图)。

下一步是采集健康病人的x光图像。

为此,我使用Kaggle的胸部x射线图像(肺炎)数据集:

https://www.kaggle.com/paultimothymooney/chest-xray-pneumonia

并从健康患者中取样25张x射线图像(上图右侧)。Kaggle的胸部x光数据集有很多问题,即有噪声/不正确的标签,但是它作为一个足够好的起点来证明COVID-19概念探测器。

我得到了总共50张图像,平均分为25张COVID-19阳性x射线图像和25张健康病人x射线图像。

04

使用Keras和TensorFlow实现我们的COVID-19训练脚本

现在我们使用深度学习脚本自动诊断covid19。代码下载请访问这个网站:

https://www.getdrip.com/forms/637913414/submissions

这个脚本通过选择TensorFlow来利用TensorFlow 2.0和Keras深度学习库。

此外,我们使用scikit-learn(用于机器学习的Python库)绘图的matplotlib和用于在数据集中加载和预处理图像的OpenCV。

05

用Keras和TensorFlow训练我们的COVID-19探测器

实现了脚本之后,现在就可以训练我们的自动COVID-19检测器了:

Epoch 24/25

5/5 [==============================] - 27s 5s/step - loss: 0.3175 - accuracy: 0.9250 - val_loss: 0.2395 - val_accuracy: 0.9000

Epoch 25/25

5/5 [==============================] - 1s 101ms/step - loss: 0.3655 - accuracy: 0.8250 - val_loss: 0.2522 - val_accuracy: 0.9000

[INFO] evaluating network...

precision recall f1-score support

covid 0.83 1.00 0.91 5

normal 1.00 0.80 0.89 5

accuracy 0.90 10

macro avg 0.92 0.90 0.90 10

weighted avg 0.92 0.90 0.90 10

[[50]

[14]]

acc: 0.9000

sensitivity: 1.0000

specificity: 0.8000

从上面的结果可以看出,我们的COVID-19自动探测器仅基于x射线图像,在样本数据集上获得了约90-92%的准确率,而没有使用地理位置、人口密度等其他数据来训练这个模型。

我们还获得了100%的敏感性和80%的特异性,这意味着:有COVID-19的患者(即,我们可以准确地识别他们“COVID-19阳性”100%的时间使用我们的模型。没有COVID-19的患者(即,我们可以准确地识别他们为“COVID-19阴性”。正如我们的训练历史图表所示,我们的网络并没有过度拟合,尽管我们的训练数据非常有限:

·END·

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

本文分享自 Python与机器学习之路 微信公众号,前往查看

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

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

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