Detecting and Visualising the Infectious Regions of COVID-19 in X-ray Images and CT scans Using Different Pretrained-Networks in Tensorflow 2.x.
The Corona Virus Disease 2019 (COVID-19) pandemic continues to have an upsetting effect on the health and well-being of the global population. A critical step in the fight against COVID-19 is effective screening of infected patients, with one of the key screening approaches being radiological imaging using chest radiography. It was found in early studies that patients present abnormalities in chest radiography images that are characteristic of those infected with COVID-19 as discussed in a recent [Paper]. Therefore, in this Repository I have tested different Pretrained Networks for the detection of COVID-19 cases from chest radiography images that is open source and available to the general public. Finally a Novel Method will be introduced to get the maximum of Positive Predicted Values from these Pretrained Networks.
Dataset 01 is the first version introduced by the authors of the [Paper]. This dataset is comprised of a total of 5949 posetrior chest radiography images across 2839 patients. I have write a python script to categorize each X-ray image in the raw data folder to a separate Class as per corresponding label. The original data distribution was
Category | Number of Patients | Number of X-rays |
---|---|---|
0: Normal | 1203 | 1583 |
1: Bacteria | 931 | 2786 |
2: Viral | 660 | 1504 |
3: COVID-19 | 45 | 76 |
I have split the original data to train/test folders with following distrubtuions. This categorized dataset can be downloaded at Here. I have also write a python Script to make the NumpyFiles for the train/test images but without any normalization so that one can normalize the data as per his/her need. These NumpyFiles can also be accessed at Here.
Category | Train | Test |
---|---|---|
0: Normal | 1349 | 234 |
1: Bacteria | 2540 | 246 |
2: Viral | 1355 | 149 |
3: COVID-19 | 66 | 10 |
Dataset 02 is the second version introduced by the authors of the [Paper]. One can follow the steps given Here to generate this dataset. The NumpyFiles for this data can also be accessed at Here. The distribution of these Numpy files are as followed.
Category | Train | Test |
---|---|---|
0: Normal | 8751 | 100 |
1: Pneumonia | 5945 | 100 |
2: COVID-19 | 229 | 31 |
Dataset 03 is a generated version of three different datasets. Two of these datasets were origginally developed for segmentation tasks and can be found at Here and one is developed for identification/diagnosis task and can be found at Here. One can follow this simple Script to generate this dataset.
The core idea behind the Pretrained Networks and Transfer Learning can be studied in detail at my another GitHubRepository at Here. I have used the following Pretrained Networks for COVID-19 Detection. Each Pretrained Network is also described with its train/test History and a Confusion-Matrix for better visualization of the Generalization of the Trained Network.
Pretrained-VGG16 Accuracy-Graph | Pretrained-VGG16 Loss-Graph |
Pretrained-VGG16 Confusion Matrix | Pretrained-VGG16 ROC |
Pretrained-VGG19 Accuracy-Graph | Pretrained-VGG19 Loss-Graph |
Pretrained-VGG19 Confusion Matrix | Pretrained-VGG19 ROC |
Pretrained-DenseNet121 Accuracy-Graph | Pretrained-DenseNet121 Loss-Graph |
Pretrained-DenseNet121 Confusion Matrix | Pretrained-DenseNet121 ROC |
Pretrained-MobileNetV2 Accuracy-Graph | Pretrained-MobileNetV2 Loss-Graph |
Pretrained-MobileNetV2 Confusion Matrix | Pretrained-MobileNetV2 ROC |
Pretrained-DenseNet169 Accuracy-Graph | Pretrained-DenseNet169 Loss-Graph |
Pretrained-DenseNet169 Confusion Matrix | Pretrained-DenseNet169 ROC |
Pretrained-DenseNet121 Confusion Matrix | Pretrained-DenseNet121 ROC |