brain / app.py
bilal6913's picture
Update app.py
256fc75 verified
import streamlit as st
import tensorflow as tf
from tensorflow import keras
import cv2
st.title(":brain: Brain Tumor Detection (MRI)")
vggnet_19= keras.models.load_model("CNN_MODEL_0_9687.h5")
vggnet_16 = keras.models.load_model("CNN_MODEL_0_96414.h5")
resnet_152 = keras.models.load_model("CNN_MODEL_0_9794.h5")
mobilenet_v3= keras.models.load_model("CNN_MODEL_0_9771.h5")
def check_accuracy(model,img_input):
y_pred = model.predict(img_input).argmax(axis=1)
prediction = model.predict(img_input)
if y_pred[0] == 0:
return "Target: glioma_tumor",prediction.max()
elif y_pred[0] == 1:
return "Target: meningioma_tumor",prediction.max()
elif y_pred[0] == 2:
return "Target: no_tumor",prediction.max()
else:
return "Target: pituitary_tumor",prediction.max()
with st.container():
file = st.file_uploader("Upload the MRI Image")
if file is not None:
print(file)
save_image_path = "./upload_images/"+file.name
with open(save_image_path,"wb") as f:
f.write(file.getbuffer())
img = cv2.imread(save_image_path)
col1,col2 = st.columns(2)
with st.container():
if file is not None:
with col1:
st.write("Original Image:")
st.image(file)
with col2:
st.write("Processed Image:")
st.image(cv2.resize(img,(224,224)))
else:
st.error("First upload image")
with st.container():
if file is not None:
img = cv2.resize(img,(224,224))
img_input = img.reshape((1,224,224,3))
vgg19,v19 = check_accuracy(vggnet_19,img_input)
vgg16,v16 = check_accuracy(vggnet_16,img_input)
resnet,r152 = check_accuracy(resnet_152,img_input)
mobilenet,mv3 = check_accuracy(mobilenet_v3,img_input)
st.subheader(vgg19+" for"+ " VGGNET-19")
st.write("accuracy of the image",v19)
st.subheader(vgg16+" for"+ " VGGNET-16")
st.write("accuracy of the image",v16)
st.subheader(resnet+" for"+ " RESNET-152")
st.write("accuracy of the image",r152)
st.subheader(mobilenet+" for"+ " MOBILENET-V3")
st.write("accuracy of the image",mv3)