| Literature DB >> 35615749 |
Mahmoud M Bassiouni1, Islam Hegazy2, Nouhad Rizk3, El-Sayed A El-Dahshan1,4, Abdelbadeeh M Salem2.
Abstract
One of the pandemics that have caused many deaths is the Coronavirus disease 2019 (COVID-19). It first appeared in late 2019, and many deaths are increasing day by day until now. Therefore, the early diagnosis of COVID-19 has become a salient issue. Additionally, the current diagnosis methods have several demerits, and a new investigation is required to enhance the diagnosis performance. In this paper, a set of phases are performed, such as collecting data, filtering and augmenting images, extracting features, and classifying ECG images. The data were obtained from two publicly available ECG image datasets, and one of them contained COVID ECG reports. A set of preprocessing methods are applied to the ECG images, and data augmentation is performed to balance the ECG images based on the classes. A deep learning approach based on a convolutional neural network (CNN) is performed for feature extraction. Four different pre-trained models are applied, such as Vgg16, Vgg19, ResNet-101, and Xception. Moreover, an ensemble of Xception and the temporary convolutional network (TCN), which is named ECGConvnet, is proposed. Finally, the results obtained from the former models are fed to four main classifiers. These classifiers are softmax, random forest (RF), multilayer perception (MLP), and support vector machine (SVM). The former classifiers are used to evaluate the diagnosis ability of the proposed methods. The classification scenario is based on fivefold cross-validation. Seven experiments are presented to evaluate the performance of the ECGConvnet. Three of them are multi-class, and the remaining are binary class diagnosing. Six out of seven experiments diagnose COVID-19 patients. The aforementioned experimental results indicated that ECGConvnet has the highest performance over other pre-trained models, and the SVM classifier showed higher accuracy in comparison with the other classifiers. The resulting accuracies from ECGConvnet based on SVM are (99.74%, 98.6%, 99.1% on the multi-class diagnosis tasks) and (99.8% on one of the binary-class diagnoses, while the remaining achieved 100%). It is possible to develop an automatic diagnosis system for COVID based on deep learning using ECG data.Entities:
Keywords: COVID-19 Diagnosis; Convolutional neural network (CNN); Deep learning; ECGConvnet; Paper-based ECG image reports
Year: 2022 PMID: 35615749 PMCID: PMC9122255 DOI: 10.1007/s00034-022-02035-1
Source DB: PubMed Journal: Circuits Syst Signal Process ISSN: 0278-081X Impact factor: 2.311
Fig. 1The proposed COVID-19 overall methodology using ECG images
Fig. 2Full description of each ECG category collected in the dataset
Fig. 3Unsharp Masking Technique
Fig. 4a COVID-19 ECG image report b Filtered COVID-19 ECG Image report
Total number of ECG images after augmentation of the first dataset
| Category no | Category name | Augmentation operation | No. of ECG images after augmentation |
|---|---|---|---|
| 1 | COVID-19 | Random rotation [− 5 5] | 750 |
| Shearing horizontal [− 0.05 0.05] | |||
| 2 | MI | Random rotation [− 5 5] | 747 |
| Random rotation [5 10] | |||
| Shearing horizontal [− 0.05 0.05] | |||
| Shearing vertical [− 0.05 0.05] | |||
| Shearing horizontal [0.1 0.2] | |||
| Shearing vertical [0.1 0.2] | |||
| Shearing horizontal [0.2 0.3] | |||
| 3 | PMI | Random rotation [− 5 5] | 812 |
| Shearing horizontal [− 0.05 0.05] | |||
| Shearing vertical [− 0.05 0.05] | |||
| 4 | Normal | No augmentation | 856 |
| 5 | Abnormal | Random rotation [− 5 5] | 750 |
Fig. 5Proposed ECGConvnet
TCN blocks’ parameters
| Proposed Model Layer Parameters | Assigned values experimentally | ||
|---|---|---|---|
| Number of blocks | 4 | ||
| Number of filters | 175 | ||
| Filter size | 3 × 3 | ||
| Dropout factor | 0.07 | ||
| Number of input channels | 5 | ||
| Dilated Causal Conv 1 | Dilated Causal Conv 2 | Dilated Causal Conv 3 | |
| Weights = 175 × 5 × 3 | Weights = 175 × 5 × 3 | Weights = 175 × 5 × 3 | |
| Block 1 | Bias = 175 × 1 | Bias = 175 × 1 | Bias = 175 × 1 |
| Stride = 1 | Stride = 1 | Stride = 1 | |
| Dilation factor = 1 | Dilation factor = 1 | Dilation factor = 1 | |
| Padding = [2; 0] | Padding = [2; 0] | Padding = [2; 0] | |
| Dilated Causal Conv 1 | Dilated Causal Conv 2 | ||
| Weights = 175 × 175 × 3 | Weights = 175 × 175 × 3 | ||
| Block2 | Bias = 175 × 1 | Bias = 175 × 1 | |
| Stride = 1 | Stride = 1 | ||
| Dilation factor = 2 | Dilation factor = 2 | ||
| Padding = [4; 0] | Padding = [4; 0] | ||
| Dilated Causal Conv 1 | Dilated Causal Conv 2 | ||
| Block3 | Weights = 175 × 175 × 3 | Weights = 175 × 175 × 3 | |
| Bias = 175 × 1 | Bias = 175 × 1 | ||
| Stride = 1 | Stride = 1 | ||
| Dilation factor = 4 | Dilation factor = 4 | ||
| Padding = [8; 0] | Padding = [8; 0] | ||
| Block4 | Dilated Causal Conv 1 | Dilated Causal Conv 2 | |
| Weights = 175 × 175 × 3 | Weights = 175 × 175 × 3 | ||
| Bias = 175 × 1 | Bias = 175 × 1 | ||
| Stride = 1 | Stride = 1 | ||
| Dilation factor = 8 | Dilation factor = 8 | ||
| Padding = [16; 0] | Padding = [16; 0] | ||
| Optional 1 × 1 convolutional layer | Weights = 1 × 5 × 175 | ||
| Bias = 175 × 1 | |||
| Fully connected | Weight = 5 * 175 | ||
| Bias = 5 * 1 | |||
Hyperparameters of the five DL models
| Hyperparameters training | Vgg16 | Vgg19 | Resnet101 | Xception | Proposed ECG convent | |
|---|---|---|---|---|---|---|
| Xception | TCN | |||||
| Network solver optimizer | Sgdm | Sgdm | Sgdm | Rmsprop | Rmsprop | Adam |
| Mom/GDF/SGDF | Mom = 0.7 | Mom = 0.4 | Mom = 0.5 | SGDF = 0.99 | SGDF = 0.99 | GDF = 0.990 |
| SGDF: 0.999 | ||||||
| Max epochs | 30 | 50 | 20 | 20 | 20 | 400 |
| Iterations per epoch | 391 | 391 | 391 | 391 | 391 | 1 |
| Maximum iterations | 11,730 | 19,550 | 7820 | 7820 | 7820 | 400 |
| Mini batch size | 8 | 8 | 8 | 8 | 8 | 1 |
| Initial learning rate | 0.1 | |||||
| Learn rate drop factor | 0.4 | 0.25 | 0.5 | 0.65 | 0.65 | 0.9 |
| Learn rate drop period | 2 | 4 | 2 | 2 | 2 | 5 |
| Learn rate drop schedule | “Piecewise” | “Piecewise” | “Piecewise” | “Piecewise” | “Piecewise” | “Piecewise” |
| Gradient threshold method | “L2norm” | “L2norm” | “global L2-norm” | “global L2-norm” | “global L2-norm” | “global L2-norm” |
| Gradient threshold value | “Inf” | “Inf” | “Inf” | “Inf” | “Inf” | 1 |
| L2 Regularization | 0.0005 | 0.0004 | 0.0002 | 0.0011 | 0.00011 | 0.0001 |
| Verbose | 1 | 1 | 1 | 1 | 1 | 0 |
| Verbose frequency | 100 | 100 | 100 | 100 | 100 | 50 |
| Execution environment | ‘gpu’ | ‘gpu’ | ‘gpu’ | ‘gpu’ | ‘gpu’ | ‘gpu’ |
| Validation accuracy | 96.4% | 91.8% | 97.5% | 99.0% | 99.6% | |
Classification parameters adjusted for the classifiers on the five models
| Classifier | Parameters |
|---|---|
| Softmax | Loss function = “Cross Entropy Function” |
| Random forest (RF) | Max Depth = 0, Number of trees = [100,200,300,500] |
| Seed = 1 Number of features = log2 (no. of predictors) + 1 | |
| Multilayer perception (MLP) | Learning rate = [0.05, 0.1, 0.2, 0.3] |
| Backpropagation = MOBP | |
| Momentum = [0.1, 0.15, 0.2] | |
| Number of iterations = [500,1000,2000] | |
| Support vector machine (SVM) | Batch Size = [50, 100, 200, 500] |
| Calibration Method = “Logistic” | |
| Kernel function = “Polynomial function” | |
| Tolerance = 0.0001, Epsilon = [ 0, 1 x 10-12] | |
| Complexity parameter C = [ |
Classification results on the five DL models
| Classifiers/models | Average fivefold cross-validation | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | TP | FP | K | TPR | FPR | P | R | F1 | MCC | ROC | PRC | ||
| Softmax | Vgg16 | 91.69 | 3589 | 326 | 0.895 | 0.916 | 0.02 | 0.921 | 0.916 | 0.915 | 0.897 | 0.954 | 0.867 |
| Vgg19 | 95.66 | 3745 | 170 | 0.945 | 0.956 | 0.010 | 0.959 | 0.956 | 0.956 | 0.946 | 0.973 | 0.926 | |
| Resnet101 | 97.44 | 3815 | 100 | 0.967 | 0.974 | 0.006 | 0.974 | 0.974 | 0.974 | 0.968 | 0.968 | 0.96 | |
| Xception | 99.07 | 3870 | 36 | 0.988 | 0.991 | 0.002 | 0.991 | 0.991 | 0.991 | 0.988 | 0.994 | 0.983 | |
| ECGConvnet | 99.64 | 3900 | 15 | 0.994 | 0.996 | 0.001 | 0.996 | 0.996 | 0.996 | 0.995 | 0.999 | 0.997 | |
| RF | Vgg16 | 91.97 | 3601 | 314 | 0.899 | 0.919 | 0.019 | 0.923 | 0.919 | 0.919 | 0.901 | 0.985 | 0.985 |
| Vgg19 | 96.72 | 3788 | 129 | 0.958 | 0.967 | 0.008 | 0.968 | 0.967 | 0.965 | 0.967 | 0.993 | 0.986 | |
| Resnet101 | 97.26 | 3808 | 107 | 0.965 | 0.972 | 0.006 | 0.973 | 0.972 | 0.972 | 0.966 | 0.997 | 0.990 | |
| Xception | 98.9 | 3875 | 40 | 0.986 | 0.990 | 0.002 | 0.990 | 0.990 | 0.990 | 0.987 | 0.998 | 0.994 | |
| ECGConvnet | 99.66 | 3902 | 13 | 0.995 | 0.996 | 0.000 | 0.996 | 0.996 | 0.996 | 0.996 | 0.999 | 0.996 | |
| MLP | Vgg16 | 91.36 | 3576 | 339 | 0.891 | 0.913 | 0.020 | 0.917 | 0.913 | 0.913 | 0.893 | 0.981 | 0.948 |
| Vgg19 | 96.85 | 3791 | 124 | 0.960 | 0.968 | 0.007 | 0.969 | 0.968 | 0.966 | 0.961 | 0.996 | 0.990 | |
| Resnet101 | 97.41 | 3814 | 101 | 0.967 | 0.974 | 0.006 | 0.974 | 0.974 | 0.974 | 0.968 | 0.996 | 0.991 | |
| Xception | 99.20 | 3884 | 31 | 0.989 | 0.992 | 0.001 | 0.992 | 0.992 | 0.992 | 0.990 | 0.997 | 0.989 | |
| ECGConvnet | 99.69 | 3903 | 12 | 0.996 | 0.997 | 0.008 | 0.997 | 0.997 | 0.997 | 0.996 | 0.999 | 0.999 | |
| SVM | Vgg16 | 92.94 | 3638 | 277 | 0.911 | 0.929 | 0.017 | 0.933 | 0.929 | 0.928 | 0.913 | 0.966 | 0.891 |
| Vgg19 | 97.16 | 3804 | 111 | 0.964 | 0.971 | 0.007 | 0.972 | 0.971 | 0.971 | 0.964 | 0.989 | 0.955 | |
| Resnet101 | 97.79 | 3828 | 87 | 0.971 | 0.977 | 0.005 | 0.978 | 0.977 | 0.977 | 0.972 | 0.992 | 0.965 | |
| Xception | 99.25 | 3886 | 29 | 0.990 | 0.992 | 0.002 | 0.992 | 0.992 | 0.992 | 0.990 | 0.997 | 0.991 | |
| ECGConvnet | 99.74 | 3906 | 9 | 0.996 | 0.997 | 0.000 | 0.997 | 0.997 | 0.997 | 0.997 | 0.998 | 0.996 | |
Fig. 6a and b The number of correctly and incorrectly classified instances after performing fivefold cross-validation, c and d represent the kappa statistic and Matthew correlation coefficient result over the five deep learning models
Fig. 7a and b The accuracy and precision, c and d represent the recall and F1-measure after performing fivefold cross-validation
Fig. 8a–e The ROC curves of each fold based on the proposed deep learning models using SVM classifiers
Fig. 9a–d The overlapped confusion matrix of fivefold results using the four classifiers on ECGConvnet
The results of six experiments fold by a fold in terms of statistical performance measurements using ECGConvnet
| Experiments/folds | Fivefold cross-validation based on ECGConvnet with SVM classifier | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | TP | FP | K | TPR | FPR | P | R | F1 | MCC | ROC | PRC | ||
| MI vs PMI vs normal vs abnormal | Fold1 | 98.92 | 184 | 2 | 0.985 | 0.989 | 0.004 | 0.989 | 0.989 | 0.989 | 0.986 | 0.994 | 0.985 |
| Fold2 | 100 | 186 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
| Fold3 | 97.31 | 181 | 5 | 0.963 | 0.973 | 0.008 | 0.974 | 0.973 | 0.973 | 0.965 | 0.991 | 0.960 | |
| Fold4 | 100 | 185 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
| Fold5 | 96.75 | 179 | 6 | 0.956 | 0.968 | 0.012 | 0.968 | 0.968 | 0.967 | 0.957 | 0.999 | 0.997 | |
| Normal vs COVID vs other abnormalities | Fold1 | 100 | 150 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| Fold2 | 99.33 | 149 | 1 | 0.990 | 0.993 | 0.003 | 0.993 | 0.993 | 0.993 | 0.990 | 1.000 | 1.000 | |
| Fold3 | 100 | 150 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
| Fold4 | 97.33 | 146 | 4 | 0.960 | 0.973 | 0.013 | 0.975 | 0.973 | 0.973 | 0.961 | 0.989 | 0.984 | |
| Fold5 | 98.66 | 148 | 2 | 0.980 | 0.987 | 0.007 | 0.987 | 0.987 | 0.987 | 0.980 | 0.999 | 0.999 | |
| COVID vs (no-findings of first dataset) | Fold1 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| Fold2 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
| Fold3 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
| Fold4 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
| Fold5 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
| Positive vs (negative of first dataset) | Fold1 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| Fold2 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
| Fold3 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
| Fold4 | 99 | 99 | 1 | 0.98 | 0.990 | 0.010 | 0.990 | 0.990 | 0.990 | 0.980 | 0.990 | 0.985 | |
| Fold5 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
| COVID vs (no-findings of second dataset) | Fold1 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| Fold2 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
| Fold3 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
| Fold4 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
| Fold5 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
| Positive vs (negative of second dataset) | Fold1 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| Fold2 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
| Fold3 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
| Fold4 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
| Fold5 | 100 | 100 | 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | |
Fig. 10a–f The ROC of the five folds resulting from six experiments using ECGConvnet
Fig. 11a–f The overlapped confusion matrices resulting from six experiments based on fivefold cross-validation using ECGConvnet
Fig. 12a and b Low-dimensional points representing fold 4 and fold 3 test ECG paper-based reports in their original form gathered from the first, and the second dataset c and d shows low-dimensional points representing fold 4 and fold 3 test ECG paper-based reports after applying ECGConvnet model on them
Related work using ECG image reports based on deep learning methodologies
| Authors | No. of classes and leads | Experiments | Methodology | Accuracy |
|---|---|---|---|---|
| Khan et al. (2021b) | 4 classes | Data resizing and labeling + SSD + Mobile v2 | ||
| 12- ECG leads | MI (172) vs PMI (233) vs | 80% Training 20% Test | ||
| Normal (284) vs abnormal (233) | A = 98.33% | |||
| Ozdemir et al. (2021) | 2 classes | Hexaxial feature mapping by GLCM + CNN | Fivefold Cross-validation | |
| 12- ECG leads | COVID (250) vs no findings | |||
| (250 Normal) | A = 96.20%, F1-measure = 96.30% | |||
| For positive (250 COVID) vs negative (84 MI, 83 normal, 83 PMI, 83 abnormal) | A = 93.00%, F1-measure = 93.20% | |||
| Rahman et al. (2022) | 2, 3, and 5 classes | Resnet-18 | Fivefold Cross-validation | |
| 12-ECG Leads | Normal (859) vs COVID (250) | Resnet-50 | ||
| Resnet101 | A = 99.1% | |||
| Normal (859) vs COVID (250) vs abnormalities (828) | InceptionV3 | |||
| Densenet | Densenet A = 97.36% | |||
| COVID (250) VS MI (77) VS PMI (203) VS normal (859) VS abnormal (548) | MobileNetV2 | |||
| InceptionV3 A = 97.83% | ||||
| Anwar et al. (2021) | 5 classes | Efficient B3 | ||
| 12- ECG Leads | COVID (250) vs MI (77) vs PMI (203) vs normal (859) vs abnormal (548) | Without augmentation: | ||
| A = 81.8% F1-Score: 77.6% | ||||
| With augmentation: | ||||
| A: 76.4% F1-Score: 76.8% | ||||
| Attallah (2022) | 2 and 3 classes | ECG-BiCoNet | Tenfold Cross-validation | |
| 12-ECG Leads | Normal (250) vs COVID (250) | + | ||
| LDA, RF, SVM | ||||
| Normal (250) vs COVID (250) vs abnormal (250) | ||||
| Fivefold cross-validation on each experiment | ||||
| COVID (750) vs MI (747) vs PMI (812) vs normal (856) vs abnormal (750) | ||||
| MI (172) vs PMI (233) vs | Five classes diagnosis: A = 99.74% | |||
| Normal (284) vs abnormal (233) | Four classes diagnosis: A = 98.6%, | |||
| Three classes diagnosis: A = 99.1%, | ||||
| Normal (250) vs COVID (250) vs abnormalities (250) | ||||
| COVID vs (No Findings FD): A = 100% | ||||
| COVID (250) vs no findings (250) | Positive vs (Negative FD): A = 99.8% | |||
| Positive (250) vs negative (250) | COVID vs (No Findings SD): A = 100% | |||
| COVID (250) vs no findings (250) | Positive vs (Negative SD): A = 100% | |||
| Positive (250) vs negative (250) |
FD: First dataset SD: Second dataset