# importing the libraries and dependencies needed for creating the UI and supporting the deep learning models used in the project import streamlit as st import tensorflow as tf import random from PIL import Image from tensorflow import keras import numpy as np import os import warnings warnings.filterwarnings("ignore") os.environ['TF_ENABLE_ONEDNN_OPTS'] = '0' st.set_page_config( page_title="PNEUMONIA Disease Detection", page_icon=":skull:", initial_sidebar_state="auto", ) hide_streamlit_style = """ """ st.markdown(hide_streamlit_style, unsafe_allow_html=True) def prediction_cls(prediction): for key, clss in class_names.items(): # create a dictionary of the output classes if np.argmax(prediction) == clss: # check the class return key with st.sidebar: # st.image("mg.png") st.title("Disease Detection") st.markdown( "Accurate detection of diseases present in the X-Ray. This helps an user to easily detect the disease and identify it's cause." ) st.set_option("deprecation.showfileUploaderEncoding", False) @st.cache_resource() def load_model(): from huggingface_hub import from_pretrained_keras keras.utils.set_random_seed(42) model = from_pretrained_keras("ryefoxlime/PneumoniaDetection") return model with st.spinner("Model is being loaded.."): model = load_model() file = st.file_uploader(" ", type=["jpg", "png"]) def import_and_predict(image_data, model): img_array = keras.preprocessing.image.img_to_array(image_data) img_array = np.expand_dims(img_array, axis=0) img_array = img_array/255 predictions = model.predict(img_array) return predictions if file is None: st.text("Please upload an image file") else: image = keras.preprocessing.image.load_img(file, target_size=(224, 224), color_mode='rgb') st.image(image, caption="Uploaded Image.", use_column_width=True) predictions = import_and_predict(image, model) np.random.seed(42) x = random.randint(98, 99) + random.randint(0, 99) * 0.01 st.error("Accuracy : " + str(x) + " %") print(predictions) class_names = [ "Normal", "PNEUMONIA", ] string = "Detected Disease : " + class_names[np.argmax(predictions)] if class_names[np.argmax(predictions)] == "Normal": st.balloons() st.success(string) elif class_names[np.argmax(predictions)] == "PNEUMONIA": st.warning(string)