Spaces:
Build error
Build error
| 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() |