| import tensorflow as tf |
| import numpy as np |
| import gradio as gr |
| from PIL import Image |
|
|
| |
| |
| |
| model = tf.keras.models.load_model("CModel.h5") |
| print(model.input_shape) |
|
|
|
|
| IMG_SIZE = (224, 224) |
|
|
| CLASS_NAMES = [ |
| "Normal", |
| "Monkeypox" |
| ] |
|
|
| |
| |
| |
| def predict_image(image): |
| image = image.convert("RGB") |
| image = image.resize(IMG_SIZE) |
|
|
| img_array = np.array(image) / 255.0 |
| img_array = np.expand_dims(img_array, axis=0) |
|
|
| pred = model.predict(img_array) |
|
|
| if pred.shape[1] == 1: |
| confidence = float(pred[0][0]) |
| label = CLASS_NAMES[1] if confidence > 0.5 else CLASS_NAMES[0] |
| return label, confidence |
| else: |
| class_index = int(np.argmax(pred)) |
| confidence = float(pred[0][class_index]) |
| return CLASS_NAMES[class_index], confidence |
|
|
| |
| |
| |
| interface = gr.Interface( |
| fn=predict_image, |
| inputs=gr.Image(type="pil"), |
| outputs=[ |
| gr.Label(label="Prediction"), |
| gr.Number(label="Confidence") |
| ], |
| title="Monkeypox Classification using CNN", |
| description="Upload a skin image to classify Monkeypox using a CNN model." |
| ) |
|
|
| interface.launch() |
|
|