目录
在本系列文章中,我们将应用深度学习网络ResNet50来诊断胸部X射线图像中的Covid-19。我们将使用Python的TensorFlow库在Jupyter Notebook上训练神经网络。
此项目所需的工具和库是:
IDE:
库:
我们假设您熟悉使用 Python 和 Jupyter notebook 进行深度学习。如果您不熟悉 Python,请从本教程开始。如果您还不熟悉 Jupyter,请从这里开始。
在上一篇文章中,我们训练并测试了一个 ResNet50模型,该模型经过迁移学习将胸部X射线分为COVID-19和正常图像。在本文中,我们将获得的结果与针对替代模型发布的结果进行比较,并分析其在新数据集上的性能。
结果比较
正如前一篇文章中提到的,我们的网络在对测试图像进行分类时表现出强大的性能,达到了95%的准确率。
表1显示了我们的网络与其他相关竞争解决方案的准确性的比较。您可以看到,我们经过微调的ResNet50在诊断COVID-19方面的表现优于多个网络。这证明了我们模型强大的泛化能力。
参考 |
预训练模型 |
数据集 |
测试精度 |
VGG16 |
COVID-19 和其他 |
88.1% |
|
Albahli (2020) |
ResNet152 |
COVID-19 和其他胸部疾病 |
87% |
Ozturk (2020) |
DarkCovidNet |
COVID-19、肺炎和正常 |
87% |
Ours |
ResNet50 |
COVID-19 和正常 |
95% |
在新数据集上测试
为了进一步验证所提出的基于迁移学习的COVID-19诊断系统的可行性,我们在从另一个公共数据集收集的一组新图像上对其进行了测试。在全新的数据集上测试网络可能具有挑战性,因为图像的类型和质量可能与训练网络的第一个数据集不同。我们通常在取自用于训练的同一数据集的一小组图像上测试网络性能。然而,在这个项目中,如果在从新数据集获取的新图像上进行测试,我们试图测量网络的鲁棒性。新数据集包含COVID-19和未找到图像,但我们只选择了300张COVID-19图像并将它们传递给我们的模型。首先,我们使用ImageDataGenerator从新数据集中加载测试图像。
# Testing nb2...ANOTHER DATASET
test_generator2 = train_datagen.flow_from_directory(r'C:\Users\abdul\Desktop\ContentLab\test2',
target_size = (224, 224),
color_mode = 'rgb',
batch_size = 3,
class_mode = 'Binary',
shuffle = True)
加载新的测试图像后,我们将它们传递给模型以计算准确度:
Testresults2 = model.evaluate(test_generator2)
print("test2 loss, test2 acc:", Testresults2)
很明显,我们的模型即使在来自新数据集的图像上运行时也保持了相对较好的准确性。
下一步
在接下来的文章中,我们将向您展示如何构建从零开始Covid-19检测网络。敬请关注!
https://www.codeproject.com/Articles/5294468/COVID-19-Diagnosis-Results-with-Deep-Learning-and