Dev Agrawal's other Models Reports

Major Concepts

 

Sign-Up/Login to access Several ML Models and also Deploy & Monetize your own ML solutions for free

Pharyngitis Detection

Models Status

Model Overview


Problem Statement:


Pharyngitis is found in approximately 11 million patients in the United States each year. Although the majorly of these cases are caused by viruses, Streptococcus pyogenes (group A Streptococcus [GAS]) is a common bacterial cause of acute pharyngitis, accounting for 15 to 30% of cases in children and 5 to 10% of cases in adults. During the winter and spring in temperate climates, up to 20% of asymptomatic school-aged children may be GAS carriers and vessels for infecting others. GAS pharyngitis's signs and symptoms overlap extensively with those of other infectious causes, and it can be hard to distinguish between the type of causes.



Source: https://www.osfhealthcare.org/blog/what-to-know-about-strep-throat/


 


A deep learning model with throat images facilitating detection of severe pharyngitis is implemented.


Usage:


The recent global pandemic of coronavirus disease (COVID-19) encourages telemedicine for patients with respiratory symptoms. This study, therefore, purposes automated detection of severe pharyngitis using a deep learning framework with self-taken throat images.


Source:https://timesofindia.indiatimes.com/india/what-are-the-symptoms-of-novel-coronavirus-covid-19/articleshow/74668635.cms


Dataset:


Dataset link: https://data.mendeley.com/datasets/8ynyhnj2kz/2


Two clinicians manually labeled the images with the features of the pharyngitis, and the ambiguous images were confined to clarify the image domains. It consists of an initial dataset with two classes.


The classes are divided as follows:



  • There are 147 throat images with pharyngitis.

  • There are 215 normal throat images. 


Model Used:


The model used is the ResNet50 pre-trained model for feature extraction for transfer learning.



The “preprocess_input” is used as preprocess_function,  and data augmentation is applied to pre-process training images.


train_datagen = ImageDataGenerator(preprocessing_function=preprocess_input,rotation_range=40,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.3,
horizontal_flip=True)
training_set = train_datagen.flow_from_directory(train_path,
target_size = (224, 224),
shuffle=True,
color_mode='rgb',
batch_size = 32,
class_mode = 'categorical',
subset='training')

To implement resnet50, we will remove the last predicting layer of the pre-trained  model. Instead, we accomplish that by using "include_top=False". We do this to add our own fully connected layers to the ResNet50 model for our task-specific classification.


Weights of the pre-trained model are used as a feature extractor. Weights of the model are frozen by setting trainable as "False". This restricts any changes to the pre-trained weights during training the model. We don't want to train layers of resnet as we want to leverage the knowledge learned by NN trained from the previous dataset, which in our case is "imagenet."


resnet50 = ResNet50(input_shape=IMAGE_SIZE + [3],include_top=False,weights='imagenet')
x = resnet50.output
x= GlobalAveragePooling2D()(x)
x = Dense(1024, activation='relu')(x)
predictions = Dense(2,activation='softmax')(x)


for layer in resnet50.layers:
layer.trainable=False

model = Model(inputs=resnet50.input, outputs=predictions)

We create our model using Transfer Learning using Pre-trained ResNet50 by adding our own fully connected layer and the final classifier using the Softmax activation function.





Result:


The Classification report for the trained model is on the following dataset.


Note: There might be miss-classification, we can improve the model accuracy by increasing the size of the dataset.



0 comments