arthurpendragon's picture
Update app.py
2982642 verified
import streamlit as st
from PIL import Image, ImageOps
import numpy as np
import pandas as pd
import tensorflow as tf # Use TensorFlow's Keras API
# Load the TensorFlow Keras model
model = tf.keras.models.load_model('gastrointestinal_model.h5', compile=False)
# Load class names
with open('labels.txt', 'r') as f:
class_names = f.readlines()
# Function to predict gastrointestinal conditions
def predict_gastrointestinal(img):
np.set_printoptions(suppress=True)
data = np.ndarray(shape=(1, 224, 224, 3), dtype=np.float32)
size = (224, 224)
image_PIL = ImageOps.fit(img, size, Image.LANCZOS)
image_array = np.asarray(image_PIL)
normalized_image_array = (image_array.astype(np.float32) / 127.0) - 1
data[0] = normalized_image_array
prediction = model.predict(data)
index = np.argmax(prediction)
class_name = class_names[index].strip()
confidence_score = prediction[0][index]
other_class = [name for i, name in enumerate(class_names) if i != index][0].strip()
result = {
"Labels": [class_name, other_class],
"Confidence Score": [confidence_score * 100, (1 - confidence_score) * 100],
"Total": 100
}
if class_name == "Normal":
prediction_text = "The image is classified as Normal."
else:
prediction_text = f"The image shows signs of {class_name}."
return prediction_text
# Streamlit app
st.title("Gastrointestinal Classification Web App")
st.write("""
Welcome to the Gastrointestinal Classification Web App! This tool allows you to upload images of gastrointestinal conditions and receive classification results.
### How to Use:
1. **Upload an Image**: Click the "Upload a gastrointestinal image..." button to select and upload an image file in JPG, JPEG, or PNG format.
2. **View Classification**: Once the image is uploaded, it will be processed, and the app will classify it into one of the gastrointestinal conditions: Normal, Ulcerative Colitis, Polyp, or Esophagitis.
3. **See Results**: The app will display the classification result along with a confidence score.
### Next Steps:
- **For Medical Advice**: If the classification suggests a potential issue, we recommend consulting with a healthcare professional for a thorough examination and diagnosis.
- **Upload More Images**: Feel free to upload additional images if you wish to check more samples.
- **Contact Support**: If you encounter any issues or have questions about the app, please contact our support team for assistance.
Thank you for using our Gastrointestinal Classification Web App!
""")
uploaded_file = st.file_uploader("Upload a gastrointestinal image...", type=["jpg", "jpeg", "png"])
if uploaded_file is not None:
image = Image.open(uploaded_file)
st.image(image, caption='Uploaded Image', use_column_width=True)
st.write("Classifying...")
prediction = predict_gastrointestinal(image)
st.write(prediction)
st.write("""
**Next Steps:**
- If the result indicates a condition of concern, please seek advice from a healthcare professional.
- You can upload more images for further classification.
- For any issues or questions, reach out to our support team.
""")