Ante la amenaza que actualmente representa la COVID-19 para la población y el alto riesgo de que puedan surgir nuevos brotes rápidamente, es necesario crear soluciones para detectar a tiempo y de forma efectiva esta enfermedad.
Con este propósito, desde el Instituto de Ingeniería del Conocimiento (IIC), hemos realizado un estudio que analiza la aplicabilidad del Deep Learning para distinguir entre radiografías de pacientes sanos, pacientes con neumonía y aquellos que presenten una neumonía producto de la COVID-19. Lo que sería un ejemplo más de la aplicación de la Inteligencia Artificial en el sector salud.
Esta clasificación automática de radiografías podría servir de apoyo a los médicos en la detección precoz del coronavirus, para agilizar los protocolos tras una primera pista. Y en efecto, los resultados que se detallan más abajo muestran que se puede detectar la neumonía por COVID-19 en imágenes. El modelo desarrollado lo consigue con más de un 94% de exactitud.
Para ello, aplicamos técnicas de Transfer Learning, que consisten en utilizar modelos ya entrenados para adaptarlos a otras tareas con nuevas fuentes de datos. En este caso, se trabajó con arquitecturas de redes convolucionales, útiles en la clasificación de imágenes y que han demostrado ser eficientes en la resolución de tareas como la planteada por la base de datos ImageNet, donde se buscaba clasificar 1.000 objetos. Librerías como Tensorflow Keras en Python permiten descargar estas arquitecturas de forma gratuita, con herramientas que facilitan su modificación.
Desarrollo del modelo de clasificación de radiografías de COVID-19
El objetivo del estudio consiste en entrenar una red convolucional con imágenes de radiografías de tres tipos de pacientes: sin ninguna afección pulmonar (Normales), que presentan síntomas de la COVID-19 y personas con síntomas de neumonía no relacionados con la COVID-19.
Y es que los sistemas de Machine Learning y Deep Learning necesitan aprender de datos, en este caso imágenes, que reflejen lo que después tendrán que detectar automáticamente. En concreto, para el desarrollo del modelo de clasificación de radiografías, contamos con 3 fuentes de datos:
- Competición de Kaggle – Chest X-Ray Images (Pneumonia): contiene 5.851 imágenes, de las cuales 1.583 son radiografías de personas sin ninguna afección pulmonar y 4.268, de personas con neumonía que no guardan relación con la COVID-19.
- Github ieee8023 (Joseph Paul Cohen): contiene 150 imágenes de tomografías (23) y radiografías (127) de pacientes con COVID-19.
- Banco de Imágenes de la Comunidad Valenciana (BIMCV): contiene más de 22.000 radiografías frontales y laterales de pacientes con COVID-19, de las que tomamos las 15.684 radiografías frontales, para ser consistentes con las imágenes de las otras fuentes de datos.
Entrenamiento y validación del modelo de Deep Learning
Tras seleccionar los datos, se desarrolla y entrena el modelo de Deep Learning con los ejemplos, validando su progreso con nuevos datos. Luego se mide su efectividad para clasificar radiografías con un conjunto de imágenes que no se hayan utilizado en el entrenamiento de la red.
Por ello, dividimos las imágenes en 3 conjuntos de datos:
- Entrenamiento (train): datos con los que se entrenará la red.
- Validación (validation): datos usados para medir el rendimiento de la red convolucional en cada época de entrenamiento y guardar la red cuando se observen los mejores resultados.
- Testeo (test): datos que utilizaremos para medir el desempeño de la red neuronal.
Es importante resaltar que la separación de datos en train, validation y test de Normal y Neumonía se hizo manteniendo la misma distribución de Kaggle – Chest X-Ray Images (Pneumonia). El repositorio Github ieee8023 fue el que se dejó aparte para probar si el modelo detecta radiografías con COVID-19 ante una fuente de datos diferente.
Resultados de la clasificación de radiografías para la detección de COVID-19
Al probar el nuevo modelo con los datos de test obtuvimos una exactitud de más del 94% en la detección de COVID-19 en radiografías. Además, destacamos principalmente que todos los casos de COVID-19 son etiquetados correctamente (Recall =1) y solo 3 radiografías (2 Normal, 1 Neumonía) se etiquetan erróneamente como COVID-19.
En el caso de la Neumonía, el modelo acierta el 97,7% de los casos, mientras que el 12% de las imágenes etiquetadas como Neumonía son Normales (1- Precision). Finalmente, para las radiografías Normales, se obtiene un 77% de acierto, destacando una precisión del 95.7%, donde solo 8 radiografías son clasificadas como Normales cuando no lo son. Es esta última métrica la que tiene una mayor importancia, ya que el mayor riesgo que enfrentamos es etiquetar erróneamente como Normal a una persona con Neumonía o COVID-19.
CATEGORÍA | RECALL | PRECISIÓN |
---|---|---|
Normal | 0.769 | 0.957 |
COVID-19 | 1 | 0.994 |
Neumonía | 0.977 | 0.88 |
Value-1 | Value-2 | Value-3 |
Métricas de Recall y Precisión
Respecto a las 127 imágenes del repositorio Github ieee8023 que se dejaron para probar el modelo, todas fueron clasificadas correctamente como COVID-19, sin ser usadas entre los datos de entrenamiento o validación.
Resultados visuales del análisis de radiografías
Cuando hablamos de radiografías y, por tanto, de imágenes, aporta un valor extra que los resultados puedan comprobarse visualmente. En este caso, además, se mostrarían de una forma más sencilla e intuitiva para los profesionales de la salud.
Gradient-weighted Class Activation Mapping (Grad-Cam) es una técnica para producir un “explicación visual” de las decisiones tomadas por las redes convolucionales. De forma general, consiste en extraer los filtros de la última capa convolucional para obtener en qué partes de la imagen se activa la red para clasificarla.
En el caso de las radiografías, las zonas donde se activa la red pueden estar relacionadas con las zonas afectadas del pulmón, lo que puede ser una herramienta de ayuda a la hora de diagnosticar a pacientes. A continuación, podemos observar ejemplos para cada categoría: a la izquierda, tenemos la categoría predicha por el modelo y la imagen con un mapa de calor que muestra dónde se activaron los filtros de la red; y a la derecha, la categoría real con la imagen original.
En el caso de las radiografías de COVID-19, la red se activa en gran parte de la imagen, por lo que la clasificación como COVID-19 podría estar sesgada por la calidad de la imagen. Sin embargo, como comentábamos más arriba, el modelo probó ser efectivo al detectar COVID-19 ante una fuente de datos diferente.
IA de apoyo al médico en la detección de COVID-19
Esta investigación es otro ejemplo del potencial de la Inteligencia Artificial y, en concreto, del procesamiento de imágenes aplicado a la salud. Dada la alta probabilidad de una nueva oleada de COVID-19, es necesario poner cuanto antes a disposición de los profesionales las herramientas que puedan servirles de ayuda y mitigar la propagación de la enfermedad.
Los resultados del experimento muestran que es posible detectar en radiografías si un paciente sufre COVID-19 o una neumonía por otro tipo de bacteria o virus, con el uso de redes neuronales convolucionales. Hay que tener en cuenta que estos son resultados preliminares construidos sobre bases de datos concretas, por lo que es necesario probar el modelo con datos de imágenes de los hospitales donde se desee implementar este tipo algoritmo, para comprobar su efectividad ante nuevas fuentes de datos.
No obstante, comprobamos que la puesta en marcha de soluciones de Inteligencia Artificial para el análisis y clasificación de radiografías pueden ser de gran utilidad para la comunidad médica, para complementar la detección y el diagnóstico de la COVID-19.
buen post… mi duda ahí es como haces para poder dividir las imágenes en data de entrenamiento, validación y prueba?, no sé se debe abordar conjunto de datos no estructurados.