Artículo de Revisión
Análisis de Imágenes de Rayos X por Medio de Redes Neuronales Artificiales
X-Ray Images Analysis by Medium Artificial Neural Network
Ecuadorian Science Journal
GDEON, Ecuador
ISSN-e: 2602-8077
Periodicidad: Semestral
vol. 5, núm. 1, 2021
Recepción: 16 Julio 2020
Aprobación: 29 Noviembre 2020
Como citar:: Patiño Perez, D., Silva Bustillos, R., Botto-Tobar, M., & Munive Mora, C. (2021). Análisis de Imágenes de Rayos X por Medio de Redes Neuronales Artificiales. Ecuadorian Science Journal. 5(1), 55-60. DOI: https://doi.org/10.46480/esj.5.1.50
Resumen: Actualmente el mundo se ve afectado, por una nueva cepa de coronavirus denominado SARS-2, que es causante de una enfermedad infecciosa de tipo respiratorio denominado Covid-19; los síntomas son fiebre, tos seca, falta de aliento, cansancio y en algunos casos más graves puede causar neumonía llegando a causar la muerte. Según la organización mundial de la salud, la enfermedad se originó en Wuhan-China y se extendió rápidamente por todo el mundo, ocasionando serios problemas de salud a las poblaciones sin que se encuentre una cura o tratamiento efectivo que ayude a evitar la muerte y controlar su propagación. Los especialistas de la salud, no han podido encontrar una cura efectiva que evite la propagación del virus, aunque existen mecanismos para detectar la enfermedad, uno de los más efectivos está relacionado con el análisis de imágenes de rayos X del torax de un paciente; el procesar manualmente un grupo de imágenes de un paciente consume mucho tiempo, por lo que procesar grandes volúmenes de imágenes imposibilita el tratamiento oportuno de los pacientes en caso de detectarse el virus. En el presente manuscrito, se expone un mecanismo de análisis de imágenes de rayos X, que usa inteligencia artificial; y por medio de una técnica de machine learning, mediante un algoritmo basado en redes neuronales artificiales, se consigue que un programa aplique aprendizaje automático y aprenda a reconocer patrones en imágenes de tórax de pacientes contagiados y sanos, para que pueda clasificar, predecir y detectar una si una nueva imagen es de un paciente contagiado o sano.
Palabras clave: Covid-19, rayos X, machine learning, modelo de predicción, red neuronal convolucional.
Abstract: Currently the world is affected by a new strain of coronavirus called SARS-2, which is the cause of a respiratory-type infectious disease called Covid-19; the symptoms are fever, dry cough, shortness of breath, tiredness and in some more severe cases it can cause pneumonia, leading to death. According to the world health organization, the disease originated in Wuhan-China and spread rapidly throughout the world, causing serious health problems for populations without finding an effective cure or treatment to help prevent death and control its spread. Health specialists have not been able to find an effective cure that prevents the spread of the virus, although there are mechanisms to detect the disease, one of the most effective is related to the analysis of X-ray images of the chest of a patient; Manually processing a group of patient images is time consuming, so processing large volumes of images makes it impossible to promptly treat patients if the virus is detected. In the present manuscript, an X-ray image analysis mechanism is exposed, which uses artificial intelligence; and through a machine learning technique, through an algorithm based on artificial neural networks, a program is able to apply machine learning and learn to recognize patterns in chest images of infected and healthy patients, so that it can classify, predict and detect one if a new image is of a infected or healthy patient.
Keywords: Covid-19, X-ray, machine learning, prediction model, convolutional neural networks.
Introducción
El Covid-19, es una enfermedad contagiosa causada por un coronavirus (figura 1) que se propaga rápidamente, causando problemas respiratorios, que van desde una gripe hasta la muerte; en todo el mundo los seres humanos se han visto afectados por esta enfermedad este nuevo virus es la principal causa de muerte en los pacientes que lo contraen. China fue el primer país en donde se reportó una gran cantidad de muertes provocado por el contagio del virus. Brasil fue el segundo país más afectado reportando tres millones de casos confirmados y más de 100.000 muertes en los primeros días del mes de agosto(Grando et al., 2020). Hoy en día existe gran cantidad de información con respecto al COVID-19, todo relacionado con los métodos y diagnósticos para el estudio y la detección del virus en un individuo(López et al., 2020). Según la OMS entre los tipos de pruebas se destacan los RT-PCR, pruebas serológicas de anticuerpos, pruebas de antígenos, tomografía axial computarizada (TAC).
Los síntomas que comúnmente se presentan en una persona para determinar si esta posee COVID-19 son la tos seca, fiebre, malestar o cansancio, pérdida del gusto y olfato, congestión nasal y dolores de cabeza(Calvache, Rodríguez, Martínez, & Paucar, 2020). Aproximadamente el 80% de las personas se recuperan solas, sin necesidad de un tratamiento hospitalario determinado. Lo que indica 1 de cada 5 personas presenta un cuadro grave con complicaciones respiratorias, generalmente estos casos se dan en la población de alto riesgo de contagio(Rocha, n.d.), como los adultos mayores, diabéticos, personas con hipertensión arterial, problemas cardiacos etc. Por ello, las personas de cualquier edad que tengan estos síntomas deberán acudir al médico como medida de prevención(Cristina Coello, n.d.) con el fin de evitar la propagación del virus.
Para las imágenes del tórax, se utiliza radiografías de rayos X según (figura 2), ya que es rápida, indolora y en ella se puede apreciar los pulmones, vasos sanguíneos, así como otros órganos.
Con la ayuda de un modelo de predicción se puede detectar en una radiografía toráxica(Home & KidsHealth, n.d.) si un paciente se encuentra sano o enfermo por Covid-19, el procesar grandes cantidades de imágenes radiográficas es un tema que se lo puede manejar desde un subcampo del machine learning como el deep learning , se pueden utilizar algunos métodos que permitan obtener mejores resultados en la clasificación de imágenes(Liu, Fu, Deng, Li, & Liu, 2020).
Materiales y Métodos
Técnicas de Inteligencia Artificial
La inteligencia artificial (IA) se refiere a la simulación de la inteligencia humana, en máquinas que están programadas para pensar como humanos e imitar sus acciones. El término también se puede aplicar a cualquier máquina que exhiba rasgos asociados con una mente humana, así como el aprendizaje y la resolución de problemas(Tablado, n.d.).
Existen algunas aristas de la inteligencia artificial como por ejemplo el aprendizaje automático o machine learning donde existen algoritmos basados en los tipos de aprendizaje supervisado y no supervisado, esta rama de la inteligencia artificial se basa en la idea de que los sistemas pueden aprender de los datos, identificar patrones y tomar decisiones con una mínima intervención humana(Panesar, 2021); por otra parte el aprendizaje profundo o deep learning es una técnica del machine learning, con el cual se han logrados avances significativos usando redes neuronales artificiales las cuales imitan el funcionamiento del cerebro humano en el procesamiento de datos y la creación de patrones para su uso en la toma de decisiones.
El aprendizaje profundo es un subconjunto del aprendizaje automático en inteligencia artificial que tiene redes capaces de aprender sin supervisión a partir de datos que no están estructurados o etiquetados. También conocido como aprendizaje neuronal profundo o red neuronal profunda(Paluszek, Thomas, Paluszek, & Thomas, 2020); también existe el aprendizaje supervisado que es una técnica que consiste en proporcionar datos etiquetados a un modelo de aprendizaje automático. El conjunto de datos etiquetado generalmente son datos recopilados de la experiencia, también llamados datos empíricos, que a menudo requieren preparación para aumentar su calidad, llenar sus vacíos o simplemente optimizarlos para ser usados(B S, 2021).
Recursos de Hardware y Software
Los experimentos o pruebas se realizarán sobre Google Colaboratory que es un entorno gratuito que se ejecuta completamente en la nube; se puede desarrollar código Python(Müller & Guido, 2015) de manera dinámica, la máquina en un inicio cuenta con 12 GB de RAM y 50 GB de almacenamiento en disco disponibles para el uso con tres tipos de unidad de procesamiento como CPU, GPU Y TPU (Baltazar, 2018). Además, se usará una librería para el manejo de redes neuronales denominada Keras(Douglass, 2020) escrita en Python (Haghighat & Juanes, 2021), la misma que se ejecuta sobre la plataforma de código abierto de aprendizaje automático para el manejo de redes neuronales artificiales denominado TensorFlow (Aurélien Géron, 2019) y que es muy usado en Deep Learning (Abhishek, 2018).
Uso de Imágenes de Rayos X
Los rayos X producen radicación y emiten energía electromagnética, al momento de hacer contacto con el cuerpo humano es absorbida por los tejidos, órganos y huesos. Dichas imágenes médicas, pueden ser observadas mediante una estación de trabajo radiológico permitiendo al especialista observar anomalías dentro de la estructura del cuerpo. Las imágenes de radiografía de tórax, son muy fáciles y rápidas de obtener, utilizando poca radiación, permitiendo una revisión completa de los pulmones, corazón y pared torácica. Por medio de estas pruebas se puede realizar una valorización médica sobre el tipo de enfermedad que padece una persona, y determinar un tratamiento adecuado y seguro. Síntomas como fiebre, problemas respiratorios, tuberculosis, molestias en el pecho, neumonía y cáncer, son los casos más comunes que se pueden diagnosticar(Infosalud, n.d.).
Redes Neuronales Artificiales
Las redes neuronales artificiales (RNA) están formadas por neuronas, siendo el modelo más básico el denominado perceptrón, que se caracteriza por estar compuesto de una sola neurona o nodo; al igual que las neuronas biológicas, las neuronas artificiales poseen nodos de entradas que a su vez están conectadas y asociadas a un peso, es decir valores numéricos. Los cuales se conectan al núcleo o función de activación la cual es la encargada de realizar los cálculos para poder obtener los datos de salida deseados.
Existen algunos modelos como por ejemplo el perceptrón multicapa que consta de capas ocultas intermedias conectadas entre sí (Karlijn Willems, 2019), también están las redes neuronales convolucionales, que son muy utilizadas para el análisis, procesamiento y extracción de características de imágenes por su forma que tienen de trabajar son muy eficaz y precisas para poder realizar una predicción(Giancarlo Zaccone, Md. Rezaul Karim et al., 2019).
Cada neurona, tiene asociada una función de activación que sirve para obtener una salida a la siguiente capa, siendo las más usadas la función ReLu(Zou, Cao, Zhou, & Gu, 2020) (ver figura 1) o función sigmoidal (ver figura 2) cuya funcionalidad se aprecia en(Moolayil, 2019).
Metodología
El esquema a seguirse es el utilizado en machine learning en donde se plantean las siguientes etapas: análisis de la data, elaboración del modelo, entrenamiento, evaluación de métricas y predicción, conclusiones.
-Análisis de la Data
Se recopilaron imágenes de rayos X relacionadas con covid-19 de la plataforma GitHub. Por lo que el conjunto de datos (dataset) seleccionado para este estudio de análisis consistió de imágenes de radiografía de tórax de pacientes confirmados con Covid-19 (Fig. 3a) y de pacientes que se encuentren sanos (normal) (Fig. 3b).
Las imágenes en los dataset consisten de estructuras de 1024 x 1024 pixeles en formatos JPG y PNG. Previo al procesamiento se realiza la normalización de las imágenes a una dimensión de 224 x 224 pixeles, proceso que se lo mediante la función load_img () de la API de Keras en su argumento ' target_size ' que permite especificar una tupla de (alto, ancho), que cambia el tamaño de la imagen automáticamente después de ser cargada; por otra parte con la función img_to_array () para convertir una imagen cargada en formato PIL en una matriz NumPy para usar con modelos de RNA; Las imágenes a procesarse son matrices bidimensionales que necesitan reajustarse o normalizarse antes de que ingresen a la red neuronal y dado que estas solo aceptan vectores, se debe garantizar que la intensidad de cada pixel en las imágenes se encuentra en un rango de valores relativamente pequeño. Como cada pixel en el set de datos original tiene intensidades desde 0 (tonalidades oscuras) hasta 255 (tonalidades claras), esta normalización se la hace dividiendo cada imagen entre 255.
En la tabla 1 se puede observar cómo están distribuido los dataset y el número total de imágenes por cada modelo.
A continuación, en la tabla 2 se puede observar cómo están repartidas las imágenes según las clases Covid-19 y Normal, y el total general de todas las imágenes recopiladas.
-Elaboración del Modelo
Para realizar el modelo de predicción de Covid-19 usando redes neuronales artificiales, se utilizó el entorno de desarrollo de Google Colaboratory con el lenguaje de programación Python, en unidades de procesamiento gráfico (GPU). El uso de GPU permite procesos altamente paralelos, lo que permite acelerar los procesos de entrenamiento y ejecución del modelo.
En la tabla 3 se muestra la característica asignada al modelo A o modelo de RNA.
Se utilizó una arquitectura con 1 capa de entrada conforme a las dimensiones de las imágenes (224 x 224 x 3), 3 capas ocultas y 1 capa de salida con 2 neuronas full conectadas acorde a las 2 opciones posibles de resultado de clasificación (COVID-19, Normal).
-Entrenamiento
Se confirmó el tamaño del dataset y la arquitectura utilizada según lo observado en las tablas 1 y 2, la clasificación se la realizó con una RNA en la que se estableció la profundidad y los parámetros de entrada de esta. Las capas de entrada de la RNA determinaron el tamaño de la imagen de entrada a ser clasificada. La configuración de los parámetros establecidos en RNA utilizada para la clasificación de las imágenes se pueden consultar en la documentación de TensorFlow y Keras(Giancarlo Zaccone, Md. Rezaul Karim et al., 2019).
En el estudio se experimentó con el modelo observado en las (Fig. 4), con una arquitectura básica de 3 capas ocultas y función de activación ReLU. Se realizó el entrenamiento del modelo: se definieron 5 épocas, y se utilizaron 4 pasos por época dando un resultado de ejecución de 36.588 seg aproximadamente.
-Métricas en la Predicción
Para la verificación de los resultados obtenidos con el modelo, se usaron las métricas de calidad para realizar las comparaciones de los valores de precisión, sensibilidad (recall) y F1–Score y poder determinar la efectividad de predicción(Martinez, 2020).
1.Matriz de Confusión
Se uso la matriz de confusión donde TP (verdaderos positivos) es la cantidad de positivos que fueron clasificados correctamente como positivos por el modelo, TN (verdaderos negativos) es la cantidad de negativos que fueron clasificados correctamente como negativos por el modelo. FN (falsos negativos) es la cantidad de positivos que fueron clasificados incorrectamente como negativos y FP (falsos positivos) que es la cantidad de negativos que fueron clasificados incorrectamente como positivos.
2.Precisión
Se refiere a la calidad de los resultados obtenidos luego de realizar las clasificaciones de casos positivos y el total de predicciones positivas de forma correcta, un valor que se acerca más a una predicción verdadera(Abhishek Sharma, 2018).
3.Sensibilidad (Recall)
Con el Recall o Exhaustividad, es otra métrica presente en los modelos de machine learning, nos va a indicar la cantidad de datos de clase positiva que hemos sido capaces de identificar.
4.F1- Score
Es muy práctico utilizar el valor F1, para combinar y comparar el rendimiento de las medidas de precisión y sensibilidad, todas estas son métricas las cuales sirven para tener una mejor calidad del modelo.
-Cálculo de las Métricas por el Modelo.
Para el Modelo de RNA, se tomaron los datos de la figura 10 donde se puede observar que los valores de la diagonal principal TN= 13 y TP= 59 corresponden con los valores estimados de forma correcta por el modelo. Mientras que la otra diagonal, representa los casos en los que el modelo se ha equivocado FN= 4 y FP= 3
Discusión de Resultados
Como se observa en la tabla 6, para el modelo RNA se obtuvo una precisión del 0.9516 con una sensibilidad (Recall) del 0.9365 y un F1-Score de 0.9440.
Predicciones (ponderación y resultados)
Al realizar la predicción el modelo tomo una imagen del conjunto de validación que no ha visto en el proceso de entrenamiento para analizar y comprobar si el modelo está cumpliendo la función de clasificación correctamente. Se establecieron que aquellas predicciones con valores mayores a 0.5, sean categorizadas como Positivas (True), y aquellas predicciones con valores menores a 0.5, sean clasificadas como Negativas (False). A continuación, se muestra el resultado:
Conclusiones
Después de las pruebas experimentales realizadas sobre el modelo A o modelo de RNA se concluye que:
-El modelo tiene buenos resultados con un buen tiempo de rendimiento lográndose una precisión precisión del 0.9516 con una sensibilidad (Recall) del 0.9365 y un F1-Score de 0.9440, lo cual es un resultado muy bueno para lograr la clasificación y detección de patrones mediante imágenes de rayos x.
-El uso de redes neuronales artificiales para la elaboración de modelos computacionales fue satisfactorio permitiendo la clasificación y la detección de COVID-19 a través del análisis de imágenes. Por lo tanto, el modelo cumple con los requerimientos necesario para ser utilizado como una herramienta tecnológica de clasificación confiable y precisa de acuerdo con los resultados obtenidos.
-El tamaño del conjunto de datos también puede incidir en el rendimiento del modelo, mientras mayor sea el conjunto de datos el modelo aprenderá mucho más. La importancia del uso de las redes neuronales artificiales para el análisis de datos es efectiva, porque permite crear modelos de ML con tan solo unas pocas épocas para el entrenamiento, con el objetivo de disminuir la carga computacional haciendo más rápido el proceso de ejecución.
La importancia del modelo radica en su capacidad de clasificar y predecir de forma rápida (en minutos), si un paciente presenta o no síntomas de Covid-19 mediante el análisis de imágenes de rayos X. Según los resultados obtenidos el modelo actuará como una herramienta tecnológica para el diagnóstico y la toma de decisiones. Permitirá reducir los costos de una prueba tradicional de Covid-19, con el fin de disminuir el congestionamiento en los centros de salud y la ralentización de los procedimientos médicos.
Referencias Bibliográficas
Abhishek, N. (2018). Reinforcement learning with Open AI, TensorFlow and Keras Using Python. In Learning (Vol. 3).
Abhishek Sharma. (2018). Confusion Matrix in Machine Learning. Www.Geeksforgeeks.Org.
Aurélien Géron. (2019). Hands-on machine learning with Scikit-Learn, Keras and TensorFlow: concepts, tools, and techniques to build intelligent systems. In O’Reilly Media.
B S, L. (2021). Data Analysis and Data Classification in Machine Learning using Linear Regression and Principal Component Analysis. Turkish Journal of Computer and Mathematics Education (TURCOMAT), 12(2). https://doi.org/10.17762/turcomat.v12i2.1092
Baltazar, G. (2018). CPU vs GPU in Machine Learning.
Calvache, J. M. M., Rodríguez, A. D. E., Martínez, C. B. C., & Paucar, V. A. V. (2020). Utilidad de Pruebas de cadena de polimerasa, pruebas rápidas y Tomografías en pacientes con Covid-19. Journal of America Health, 3(2), 32–39. https://doi.org/10.37958/JAH.V3I2.28
Cristina Coello, B. N. (n.d.). Pruebas de antígeno, la nueva herramienta en la detección de la COVID-19. Retrieved July 6, 2021, from https://www.edicionmedica.ec/secciones/salud-publica/pruebas-de-antigeno-la-nueva-herramienta-en-la-deteccion-de-la-covid-19--96534
Douglass, M. J. J. (2020). Book Review: Hands-on Machine Learning with Scikit-Learn, Keras, and Tensorflow, 2nd edition by Aurélien Géron. Physical and Engineering Sciences in Medicine, 43(3). https://doi.org/10.1007/s13246-020-00913-z
Giancarlo Zaccone, Md. Rezaul Karim, A. M., Brownlee, J., Vasilev, I., Slater, D., Spacagna, G., Roelants, P., … Singh, A. (2019). Deep Learning With Python Develop Deep Learning Models On Theano And TensorFlow Using Keras. Machine Learning Using R, 26(3).
Grando, R. D., Brentano, V. B., Zanardo, A. P., Hertz, F. T., Anflor Júnior, L. C., Prietto dos Santos, J. F., … Gazzana, M. B. (2020). braz j infect dis 2 0 2 0;2 4(6):524-533 Clinical usefulness of tomographic standards for COVID-19 pneumonia diagnosis: Experience from a Brazilian reference center. https://doi.org/10.1016/j.bjid.2020.10.002
Haghighat, E., & Juanes, R. (2021). SciANN: A Keras/TensorFlow wrapper for scientific computations and physics-informed deep learning using artificial neural networks. Computer Methods in Applied Mechanics and Engineering, 373. https://doi.org/10.1016/j.cma.2020.113552
Home, & KidsHealth. (n.d.). Tomografía computada: tórax. Retrieved July 7, 2021, from https://www.brennerchildrens.org/KidsHealth/Padres/Centro-de-informacion-sobre-el-cancer/Posibles-examenes/Tomografia-computada-torax.htm?__t=2835
Infosalud. (n.d.). La tomografía de tórax es la mejor prueba para diagnosticar el coronavirus, según estudio. Retrieved July 6, 2021, from https://www.infosalus.com/asistencia/noticia-tomografia-torax-mejor-prueba-diagnosticar-coronavirus-estudio-20200227171650.html
Karlijn Willems. (2019). (Tutorial) KERAS Tutorial: DEEP LEARNING in PYTHON - DataCamp.
Liu, R., Fu, A., Deng, Z., Li, Y., & Liu, T. (2020). Promising methods for detection of novel coronavirus SARS‐CoV‐2. View, 1(1). https://doi.org/10.1002/VIW2.4
López, P., Ballesté, R., Seija, V., López, P., Ballesté, R., & Seija, V. (2020). Diagnóstico de laboratorio de COVID-19. Revista Médica Del Uruguay, 36(4), 131–155. https://doi.org/10.29193/RMU.36.4.7
Martinez, J. (2020, October). Precision, Recall, F1, Accuracy en clasificación - IArtificial.net.
Moolayil, J. (2019). Learn Keras for Deep Neural Networks. In Learn Keras for Deep Neural Networks. https://doi.org/10.1007/978-1-4842-4240-7
Müller, A. C., & Guido, S. (2015). Introduction to Machine Learning with Python and Scikit-Learn. In O’Reilly Media, Inc.
Paluszek, M., Thomas, S., Paluszek, M., & Thomas, S. (2020). What Is Deep Learning? In Practical MATLAB Deep Learning. https://doi.org/10.1007/978-1-4842-5124-9_1
Panesar, A. (2021). What Is Machine Learning? In Machine Learning and AI for Healthcare. https://doi.org/10.1007/978-1-4842-6537-6_3
Rocha, C. (n.d.). ¿Cómo se puede Diagnosticar el COVID-19? ¿Cuál es la Precisión de los Test Diagnósticos? | sociedadandaluzadeoftalmologia.es. Retrieved July 7, 2021, from https://sociedadandaluzadeoftalmologia.es/como-se-puede-diagnosticar-el-covid-19-cual-es-la-precision-de-los-test-diagnosticos/
Tablado, F. (n.d.). Inteligencia artificial: Definición, tipos y aplicaciones | Grupo Atico34. Retrieved July 6, 2021, from https://protecciondatos-lopd.com/empresas/inteligencia-artificial/
Zou, D., Cao, Y., Zhou, D., & Gu, Q. (2020). Gradient descent optimizes over-parameterized deep ReLU networks. Machine Learning, 109(3). https://doi.org/10.1007/s10994-019-05839-6
Notas
Información adicional
Como citar:: Patiño Perez, D., Silva Bustillos, R., Botto-Tobar, M., & Munive
Mora, C. (2021). Análisis de Imágenes de Rayos X por Medio de Redes Neuronales
Artificiales. Ecuadorian Science Journal. 5(1), 55-60.
DOI: https://doi.org/10.46480/esj.5.1.50