import gradio as gr import numpy as np import tensorflow as tf from tensorflow.keras.models import load_model from tensorflow.keras.preprocessing import image # Cargar modelo MODEL_ISATRON_JEY = 'modelo_isatron_jeysshonl.h5' cnn_model = load_model(MODEL_ISATRON_JEY) def make_prediction(test_image): """Realiza la predicción de neumonía en la imagen de rayos X""" # Cargar y preprocesar imagen test_image = image.load_img(test_image, target_size=(224, 224)) test_image = image.img_to_array(test_image) / 255.0 test_image = np.expand_dims(test_image, axis=0) # Realizar predicción result = cnn_model.predict(test_image, verbose=0) # Retornar resultados return { "Normal": float(result[0][0]), "Neumonía": float(result[0][1]) } # Configuración de la interfaz image_input = gr.Image(type="filepath", label="Subir imagen de rayos X") description = """
El modelo IsaTron es una Red Neuronal Convolucional (CNN) diseñada como un método de apoyo médico para el diagnóstico en imágenes radiológicas de neumonía pediátrica. IsaTron analiza radiografías torácicas y proporciona un porcentaje de probabilidad para cada clase (Normal o Neumonía).

⚠️ Advertencia: Esta herramienta está diseñada exclusivamente como apoyo al diagnóstico y NO reemplaza la evaluación médica profesional. Los resultados deben ser interpretados por personal de salud calificado.

En la parte inferior encontrará imágenes de ejemplo que pueden ser usadas para probar el funcionamiento del modelo.

📚 Más información: Repositorio Universidad El Bosque
""" examples = [ ['1normal.jpeg'], ['image1_pneumonia_virus.jpeg'], ['image1_pneumonia_bacteria.jpeg'], ['image2_normal.jpeg'], ['image2_pneumonia_bacteria.jpeg'], ['image3_normal.jpeg'], ['image4_normal.jpeg'], ] article = """

IsaTron - Sistema de Apoyo al Diagnóstico de Neumonía

Desarrollado por Jeysshon Bustos

Universidad El Bosque ©

""" # Crear interfaz interface = gr.Interface( fn=make_prediction, inputs=image_input, outputs=gr.Label(label="Predicción", num_top_classes=2), title="🏥 IsaTron: Detección de Neumonía con IA", description=description, article=article, examples=examples, theme=gr.themes.Soft(), allow_flagging="never" ) # Lanzar aplicación if __name__ == "__main__": interface.launch()