|
|
|
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) |
|
|
|
|
|
|
|
|
|
|