ftx7go's picture
Update app.py
bcb038f verified
raw
history blame
2.09 kB
import gradio as gr
import tensorflow as tf
import numpy as np
from tensorflow.keras.preprocessing import image
from PIL import Image
import os
# Load the trained model
model = tf.keras.models.load_model("my_keras_model.h5")
# Define image size based on the model's input requirement
image_size = (224, 224)
# Function to make predictions
def predict_image(img):
img = img.resize(image_size) # Resize image to model's expected size
img_array = image.img_to_array(img)
img_array = np.expand_dims(img_array, axis=0) / 255.0 # Normalize
prediction = model.predict(img_array)
# Assuming binary classification (fractured or normal)
class_names = ['Fractured', 'Normal']
predicted_class = class_names[int(prediction[0] > 0.5)] # Threshold at 0.5
return f"Prediction: {predicted_class} (Confidence: {prediction[0][0]:.2f})"
# Get image paths dynamically
sample_images_dir = "samples"
sample_images = [os.path.join(sample_images_dir, f) for f in os.listdir(sample_images_dir) if f.endswith(('.jpg', '.png'))]
# Define Gradio Interface
interface = gr.Interface(
fn=predict_image,
inputs=gr.Image(type="pil"),
outputs=gr.Textbox(),
examples=sample_images, # Preloaded images for testing
title="Bone Fracture Detection",
description="Upload an X-ray image or select a sample image to check for fractures.",
article="""
## Instructions
- Type a question or statement
- Upload images or audio files
- You can combine text with media files
- Support 2 modalities at the same time
- The model can analyze images and transcribe audio
- For best results with images, use JPG or PNG files
- For audio, use WAV, MP3, or FLAC files
## Capabilities
This chatbot can:
- Answer questions and provide explanations
- Describe and analyze images
- Transcribe, translate, summarize, and analyze audio content
- Process multiple inputs in the same message
- Maintain context throughout the conversation
"""
)
# Launch the Gradio app
if __name__ == "__main__":
interface.launch()