Spaces:
Sleeping
Sleeping
import gradio as gr | |
import numpy as np | |
from PIL import Image | |
import tensorflow as tf | |
from keras.preprocessing import image | |
from keras.models import load_model | |
# Load the trained model | |
model_path = 'SCDSNet-H10K_Model-1.keras' | |
model = load_model(model_path) | |
# Define the class labels | |
classes = ['akiec', 'bcc', 'bkl', 'df', 'melanoma', 'nv', 'vasc'] | |
# Function to preprocess the image | |
def preprocess_image(image_bytes): | |
img = Image.open(image_bytes).convert('RGB') | |
img = img.resize((32, 32)) | |
img_array = image.img_to_array(img) | |
img_array = np.expand_dims(img_array, axis=0) | |
img_array = img_array / 255.0 | |
return img_array | |
# Function to predict class label and probability | |
def predict_image(image_bytes): | |
img_array = preprocess_image(image_bytes) | |
predictions = model.predict(img_array) | |
score = tf.nn.softmax(predictions[0]) | |
predicted_class = classes[np.argmax(score)] | |
return predicted_class | |
# Create a Gradio interface | |
iface = gr.Interface( | |
fn=predict_image, | |
inputs="file", | |
outputs=["label"], | |
title="Skin Cancer Classification", | |
description="Upload an image of a skin lesion for classification." | |
) | |
# Launch the interface | |
iface.launch() |