Spaces:
Runtime error
Runtime error
| import subprocess | |
| #port = $PORT | |
| #subprocess.run("uvicorn application.server.main:app --host 0.0.0.0 --port 7860", shell=True) | |
| import streamlit as st | |
| import json | |
| import requests | |
| from PIL import Image | |
| import os | |
| #option 2 | |
| import numpy as np | |
| from tensorflow.keras.models import load_model | |
| import cv2 | |
| #Hide Made with streamlit | |
| st.markdown( | |
| '''<style> | |
| #MainMenu{visibility: hidden;} footer{visibility: hidden;} | |
| #root>div:nth-child(1)>div>div>div>div>section>div{padding-top: .2rem; | |
| </style>''', unsafe_allow_html=True | |
| ) | |
| def load_image(image): | |
| img = Image.open(image) | |
| return img | |
| def save_uploadedfile(uploadedfile): | |
| with open(os.path.join("images/img",uploadedfile.name),"wb") as f: | |
| f.write(uploadedfile.getbuffer()) | |
| uploaded_location = os.path.join("images/img",uploadedfile.name) | |
| return uploaded_location#st.success("Saved File:{} to {}".format(uploadedfile.name, uploaded_location)) | |
| def image_predict (image_file): | |
| model_path = 'application/models/resnet_ct.h5' | |
| h5_model = load_model(model_path) | |
| image = cv2.imread(image_file) | |
| image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) | |
| image = cv2.resize(image, (224, 224)) | |
| image = np.array(image) / 255 | |
| image = np.expand_dims(image, axis=0) | |
| h5_prediction = h5_model.predict(image) | |
| print('Prediction from h5 model: {}'.format(h5_prediction)) | |
| print(h5_prediction) | |
| probability = h5_prediction[0] | |
| print("H5 Predictions:") | |
| print (probability) | |
| if probability[0] > 0.5: | |
| covid_chest_pred = str('%.2f' % (probability[0] * 100) + '% COVID-Positive') | |
| probability = (probability[0] * 100) | |
| else: | |
| covid_chest_pred = str('%.2f' % ((1 - probability[0]) * 100) + '% COVID-Negative') | |
| probability = ((1 - probability[0]) * 100) | |
| return covid_chest_pred | |
| st.title("Covid Prediction App from CT Images") | |
| #taking user inputs | |
| st.write("") | |
| #converting input to json | |
| image = st.file_uploader("Upload CT Scan", type=["png","jpg","jpeg"]) | |
| if image is not None: | |
| # To See details | |
| file_details = {"filename":image.name, "filetype":image.type, | |
| "filesize":image.size} | |
| st.write(file_details) | |
| #image1 = Image.open(image) | |
| #img_array = np.array(image1) | |
| #View Uploaded Image | |
| st.image(load_image(image),width=250) | |
| #save image to disk | |
| saved = save_uploadedfile(image) | |
| #if st.button ('Analyze'): | |
| #test_file = open(os.path.join("images/img", image.name), "rb") | |
| #response = requests.post('http://127.0.0.1:8000/predict/image', files={'file': test_file }) | |
| #prediction = response.json()##json_object["prediction"] | |
| #st.write(prediction) | |
| #st. subheader (f"Response from Covid Analyzer API = {prediction}") | |
| #OPTION 2 - NON API.. | |
| if st.button ('Analyze'): | |
| with st.spinner('Analyzing...'): | |
| prediction = image_predict(saved) | |
| #st.write(prediction) | |
| st. subheader (f"Image Prediction = {prediction}") | |
| st.success(f"Image Prediction = {prediction}", icon="✅") | |
| #RUN BOTH... | |
| #streamlit run app.py | |
| #uvicorn application.server.main:app | |
| #OPTION 2.... | |