• +00 (123) 456 7890
  • info@domain.com
  • Quick Search:

PROTOTIPO DE BAJA RESOLUCIÓN



Hito 4


Para el aplicativo móvil se utilizó el programa Android Studio, con el lenguaje de programación kotlin para la creación de las siguientes secciones:






Para el algoritmo de diagnóstico se buscó modelos de clasificación de imágenes de retinopatía mediante Deep learning, se hallaron numerosos algoritmos, en esta oportunidad utilizamos un modelo de código abierto publicado en Git Hub que cuenta con el modelo publicado, este modelo cuenta con la arquitectura de la red neuronal, cuenta con los pesos que fueron recopilados por un entrenamiento previo y cuenta con la optimización del modelo, esto permite que podamos utilizarlo sin un previo entrenamiento lo que resuelve el limitante de tener un set de datos para el entrenamiento, una tarjeta gráfica potente para procesar este entrenamiento y el tiempo del entrenamiento que en algunos casos pueden llegar a numerosos días y semanas.



El entorno de desarrollo que se utilizó para testear el algoritmo fue Google colab, ya que nos permite utilizar el código y hacer modificaciones colaborativamente en tiempo real, también no requiere la instalación de frameworks ni uso de GPU, ya que este procesa el algoritmo en la nube.



El modelo implementa el aprendizaje por transferencia, utilizando un modelo pre entrenado de mobileNetV2, se uso 4 capas ocultas adicionales para mejorar los resultados de salida, el algoritmo fue optimizado mediante el método Adam, el set de datos que se utilizó para el entrenamiento del algoritmo fue uno publicado en Kaggle, este utiliza más de 35 000 imágenes de fondo de ojo, clasificadas en: no retinopatía, indicios de retinopatía, retinopatía moderada, retinopatía proliferativa y retinopatía severa.




Inicio y registro del medico:

En las imágenes (a) y (b) se muestran las secciones para registrar una nueva cuenta, la cual se guardará en la base de datos de Firebase, como se observa en la imagen (d). Finalmente, en la imagen (c) se señala el inicio de sesión del aplicativo móvil.





Perfil del médico y paciente:

En las imagen (a) se observa el perfil del médico, en la cual puede ingresar su nombre, asimismo agregar pacientes, lo que dirige a la imagen (b), en la que vemos la opción de ingresar el nombre del paciente, además de la opción de subir imagen, que redirigirá a la imagen (c), donde te pide ingresar una imagen de los archivos del dispositivo como se muestra en (d).Finalmente, los archivos se almacenan en la base de datos Firebase, como se observa en (e) y (f).




El algoritmo a usar tiene como entradas una imagen expresada en un array de números, por lo que se debe adaptar la imagen de entrada, esta debe de redimensionarse en una imagen de 224 x 224 píxeles, luego debe convertirse en un arreglo 224x224x3 mediante la función .img_to_array(), a cada valor del arreglo se debe dividir entre 255, lo cual permite que los valores vayas desde el 0 hasta el 1, ya con estos pasos se puede ingresar estos datos a la función del modelo.



Se debe subir el modelo en una capeta para poder importarlo al programa, este modelo tiene como nombre “retinopathy_model.h5”, que se lee mediante la función load_model() de la librería de tensorflow.keras.models.



Luego mediante la función model.predict(arreglo), se ingresa la imagen convertida en arreglo y el programa da como salida un arreglo de 5 números, los cuales representan el porcentaje de probabilidad de [no retinopatía, indicios de retinopatía, retinopatía moderada, retinopatía proliferativa y retinopatía severa] respectivamente



La posición del número con mayor valor nos brinda el diagnóstico resultante.



Por lo que al final tenemos un sistema que convierte una imagen de entrada en un diagnóstico de la fase de retinopatía en la que se encuentra.



En el presente trabajo se puede cambiar el algoritmo y adaptar el programa con sus especificaciones, como por ejemplo la resolución de la imagen , se recomienda entrenar un modelo de Deep learning entrenado con un set de datos de retinopatía del prematuro para una mejor precisión de los datos de salida, en el presente trabajo no se incluyó la unión de la aplicación móvil y el algoritmo de diagnóstico, se recomienda usar herramientas del framework tensorflowjs y tensorflowlite para poder exportar este programa tanto a una página web como en la propia aplicación en Android, de la misma manera se recomienda usar servicios de HTTP y tensorflow serving si es que el programa añadido o es muy pesado o no es compatible con los frameworks antes mencionados, esto para que el programa se ejecute en un servidor, reciba los datos de entrada de la aplicación y mande los datos de salida a la aplicación, este método requeriría conección a internet para el uso del algoritmo en la aplicación web.




Una vez implementado este sistema, teniendo en cuenta que el algoritmo de diagnóstico está enlazado con la aplicación, y siguiendo la Norma Técnica de Salud de atención del recién nacido Pretérmino con Riesgo de retinopatía prematura en el Perú [25], el protocolo que se tiene que seguir para su uso es el siguiente:


Antes de usar el sistema

Se debe asegurar que el recién nacido neonato que presente riesgo de padecer retinopatía se encuentre sin ningún problema y estable para poder ser evaluado.El médico que vaya a realizar el diagnóstico mediante este sistema debe de contar con un accesorio como el D-Eye [31] que se acople a su teléfono móvil para poder obtener la imagen de fondo de ojo de manera sencilla.El médico debe estar registrado como médico certificado de su centro de salud en la aplicación DISCURE desarrollado en este proyecto.



Protocolo de uso

El sistema debe de usarse en el tamizaje realizado a los neonatos antes de ser dado de alta de la Unidad de Cuidados Intensivos (UCI). Los pasos a seguir se indican a continuación:


  • Se ingresa al neonato para el tamizaje correspondiente.
  • Haciendo uso del accesorio del teléfono móvil, el médico encargado de realizar la evaluación captura una imagen de la retina.
  • El médico encargado ingresa a la aplicación DISCURE e inicia sesión.
  • Se ingresa un nuevo paciente, y se completa con los datos solicitados del neonato que se está evaluando.
  • Se inserta la imagen de retina anteriormente obtenida a la aplicación, donde se realizará el diagnóstico automatizado usando el algoritmo de diagnóstico de retinopatía.