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

2020-04-16 14:56:42 浏览数 (1)

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·

0 人点赞