Spaces:
Sleeping
Sleeping
| 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 = """ | |
| <div style='text-align: justify;'> | |
| El modelo <strong>IsaTron</strong> 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). | |
| </div> | |
| <br> | |
| <div style='text-align: justify;'> | |
| <strong>⚠️ Advertencia:</strong> 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. | |
| </div> | |
| <br> | |
| <div style='text-align: justify;'> | |
| En la parte inferior encontrará imágenes de ejemplo que pueden ser usadas para probar el funcionamiento del modelo. | |
| </div> | |
| <br> | |
| <div style='text-align: center;'> | |
| 📚 Más información: <a href="https://repositorio.unbosque.edu.co/handle/20.500.12495/9514" target="_blank"> | |
| Repositorio Universidad El Bosque</a> | |
| </div> | |
| """ | |
| 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 = """ | |
| <hr> | |
| <div style='text-align: center;'> | |
| <p><strong>IsaTron - Sistema de Apoyo al Diagnóstico de Neumonía</strong></p> | |
| <p>Desarrollado por <strong>Jeysshon Bustos</strong></p> | |
| <p>Universidad El Bosque © </p> | |
| </div> | |
| """ | |
| # 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() |