| | import gradio as gr |
| | import tensorflow as tf |
| | import numpy as np |
| | from PIL import Image |
| | import cv2 |
| |
|
| | |
| | model = tf.keras.models.load_model("model/model.h5") |
| |
|
| | def preprocess_image(image): |
| | image = np.array(image) |
| | image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY) |
| | image = cv2.resize(image, (224, 224)) |
| | image = image / 255.0 |
| | image = image.reshape(1, 224, 224, 1) |
| | return image |
| |
|
| | def predict(image): |
| | image = preprocess_image(image) |
| | prediction = model.predict(image)[0][0] |
| |
|
| | if prediction > 0.5: |
| | return {"Fractured": float(prediction), "Normal": float(1 - prediction)} |
| | else: |
| | return {"Normal": float(1 - prediction), "Fractured": float(prediction)} |
| |
|
| | gr.Interface( |
| | fn=predict, |
| | inputs=gr.Image(type="pil"), |
| | outputs=gr.Label(num_top_classes=2), |
| | title="Bone Fracture Detection", |
| | description="Upload an X-ray image to detect bone fracture" |
| | ).launch() |