# Step 1: Install Required Libraries # pip install streamlit tensorflow pillow huggingface_hub # Step 2: Import Necessary Libraries import streamlit as st import tensorflow as tf from tensorflow.keras.preprocessing.image import load_img, img_to_array from huggingface_hub import hf_hub_download import numpy as np import os # Step 3: Download Model from Hugging Face @st.cache_resource def load_model(): model_path = hf_hub_download(repo_id="krishnamishra8848/Brain_Tumor_Detection_Model", filename="brain_tumor_model.h5") return tf.keras.models.load_model(model_path) model = load_model() # Step 4: Define Prediction Function def predict_image(image_path): IMG_HEIGHT, IMG_WIDTH = 128, 128 # Ensure this matches your model's input size img = load_img(image_path, target_size=(IMG_HEIGHT, IMG_WIDTH)) # Resize image img_array = img_to_array(img) # Convert image to array img_array = np.expand_dims(img_array, axis=0) # Add batch dimension img_array = img_array / 255.0 # Normalize pixel values to [0, 1] prediction = model.predict(img_array)[0][0] confidence = prediction if prediction > 0.5 else 1 - prediction return prediction, confidence # Step 5: Streamlit Interface st.title("Brain Tumor Detection") st.write("Upload a CT scan image to classify it as Healthy or Tumor with confidence score.") uploaded_file = st.file_uploader("Upload CT Scan Image", type=["png", "jpg", "jpeg"]) if uploaded_file is not None: # Save the uploaded file to a temporary location temp_file_path = os.path.join("temp_image.jpg") with open(temp_file_path, "wb") as f: f.write(uploaded_file.getbuffer()) # Make prediction prediction, confidence = predict_image(temp_file_path) os.remove(temp_file_path) # Clean up the temporary file # Convert confidence to percentage confidence_percentage = confidence * 100 # Display the result if prediction > 0.5: st.markdown( f"