skin_disease_detection / interfaz.py
weoweke23's picture
Create interfaz.py
ebb3fab verified
Raw
History Blame
1.63 kB
import gradio as gr
import tensorflow as tf
import numpy as np
from PIL import Image
# Cargar el modelo
modelo = tf.keras.models.load_model('/content/drive/MyDrive/modelo_deteccion_cancer.keras')
# Funci贸n para preparar la imagen antes de pasarla al modelo
def preparar_imagen(ruta_imagen, tama帽o=(224, 224)):
img = Image.open(ruta_imagen)
img = img.resize(tama帽o)
img_array = np.array(img)
img_array = img_array / 255.0
img_array = np.expand_dims(img_array, axis=0) # Forma: (1, 224, 224, 3)
return img_array
# Funci贸n para predecir la clase de la imagen
def predecir_imagen(ruta_imagen):
img_array = preparar_imagen(ruta_imagen)
predicciones = modelo.predict(img_array)
clase_predicha = np.argmax(predicciones, axis=1)[0]
probabilidad = np.max(predicciones)
return clase_predicha, probabilidad
# Funci贸n para mostrar la imagen y el resultado de la predicci贸n
def mostrar_resultado(ruta_imagen):
clase_predicha, probabilidad = predecir_imagen(ruta_imagen)
clases = {
0: "Sin c谩ncer",
1: "Melanoma (MEL)",
2: "Carcinoma basocelular (BCC)",
3: "Lesi贸n precancerosa (AKIEC)"
}
nombre_clase = clases.get(clase_predicha, "Desconocido")
return f"Predicci贸n: {nombre_clase}\nProbabilidad: {probabilidad:.2f}"
# Crear la interfaz de Gradio
iface = gr.Interface(
fn=mostrar_resultado,
inputs=gr.Image(type="filepath"),
outputs=gr.Textbox(label="Resultado"),
title="Detecci贸n de C谩ncer de Piel",
description="Sube una imagen de una lesi贸n de piel para clasificarla."
)
# Lanzar la interfaz
iface.launch()