| | 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() |
| |
|