| Literature DB >> 31049186 |
Okeke Stephen1, Mangal Sain2, Uchenna Joseph Maduh3, Do-Un Jeong2.
Abstract
This study proposes a convolutional neural network model trained from scratch to classify and detect the presence of pneumonia from a collection of chest X-ray image samples. Unlike other methods that rely solely on transfer learning approaches or traditional handcrafted techniques to achieve a remarkable classification performance, we constructed a convolutional neural network model from scratch to extract features from a given chest X-ray image and classify it to determine if a person is infected with pneumonia. This model could help mitigate the reliability and interpretability challenges often faced when dealing with medical imagery. Unlike other deep learning classification tasks with sufficient image repository, it is difficult to obtain a large amount of pneumonia dataset for this classification task; therefore, we deployed several data augmentation algorithms to improve the validation and classification accuracy of the CNN model and achieved remarkable validation accuracy.Entities:
Year: 2019 PMID: 31049186 PMCID: PMC6458916 DOI: 10.1155/2019/4180949
Source DB: PubMed Journal: J Healthc Eng ISSN: 2040-2295 Impact factor: 2.682
Figure 1Sample images without pneumonia.
Figure 2Sample images with pneumonia [10].
Settings for the image augmentation.
| Method | Setting |
|---|---|
| Rescale | 1/255 |
| Rotation range | 40 |
| Width shift | 0.2 |
| Height shift | 0.2 |
| Shear range | 0.2 |
| Zoom range | 0.2 |
| Horizontal flip | True |
Figure 3The proposed architecture.
The output of the proposed network architecture.
| Layer (type) | Output shape | Turtles |
|---|---|---|
| conv2d_9 (conv2D) | (None, 198, 198, 32) | 896 |
| max_Pooling2d_9 (MaxPooling2) | (None, 99, 99, 32) | 0 |
| conv2d_10 (conv2D) | (None, 97, 97, 64) | 18496 |
| max_Pooling2d_10 (MaxPooling2) | (None, 48, 48, 64) | 0 |
| conv2d_11 (conv2D) | (None, 46, 46, 128) | 73856 |
| max_Pooling2d_11 (MaxPooling2) | (None, 23, 23, 128) | 0 |
| conv2d_12 (conv2D) | (None, 21, 21, 128) | 147584 |
| max_Pooling2d_12 (MaxPooling2) | (None, 10, 10, 128) | 0 |
| flatten_3 (Flatten) | (None, 12800) | 0 |
| dropout_3 (Dropout) | (None, 12800) | 0 |
| dense_5 (Dense) | (None, 512) | 6554112 |
| dense_6 (Dense) | (None, 1) | 513 |
Figure 4Performance of the classification model on 200 × 200 × 3 data size.
Performance of the classification model on different data sizes.
| Data size | Training accuracy | Validation accuracy |
|---|---|---|
| 100 | 0.9375 | 0.9226 |
| 150 | 0.9422 | 0.9343 |
|
|
|
|
| 250 | 0.9513 | 0.9297 |
| 300 | 0.9566 | 0.9267 |
| Average | 0.94814 | 0.93012 |
Figure 5Performance of the classification model on varied data sizes.