× Inicio Proyecto Contacto Blog Iniciar Sesión

Paloma Pérez de Madrid

Proyecto de Fin de Carrera

¿Qué es ChestGAN?


El objetivo de este TFG es desarrollar una solución para la generación de datasets sintético de imágenes de tomografías computarizadas (TC) pulmonares. A tal fin, se propone inicialmente la implementación de modelos basados en arquitecturas de redes neuronales GAN (Generative Adversarial Network) que generen imágenes sintéticas de pulmones tanto sanos como con cáncer. Además, se explorará la aplicabilidad de este enfoque a otros tipos de imágenes médicas, como rayos X, donde la disponibilidad de datos es limitada por cuestiones de privacidad.


Icono pulmones

icono radiorgafía pulmones

Actualmente, los modelos basados en arquitecturas de Deep Learning están siendo utilizados en el ámbito médico para la detección de enfermedades. Estos modelos requieren de una gran cantidad de datos para ser eficaces.


La escasez de datos para el entrenamiento de modelos de Deep Learning ha derivado en el estudio de técnicas para la generación de datos sintéticos usando arquitecturas basadas en GAN. Esta tipología de redes se presenta, por tanto, como una solución para enfrentar la falta de datos de calidad en el entrenamiento de algoritmos de inteligencia artificial.


Así, por ejemplo, la detección de cáncer de pulmón puede beneficiarse de la generación de imágenes sintéticas realistas de pulmones sanos y con cáncer, lo que permitirá crear grandes conjuntos de datos artificiales para mejorar la precisión de los algoritmos de detección. Además, esta técnica es extensible a otras modalidades de imágenes médicas, como los rayos X, donde los problemas de privacidad limitan la disponibilidad de datos clínicos.


Este trabajo es relevante porque aborda el desafío de la falta de datos médicos disponibles debido a cuestiones de privacidad y acceso limitado.


Icono pulmones

Tecnología

Este proyecto utiliza las últimas tecnologías para mejorar la generación de imágenes médicas sintéticas y su integración en aplicaciones clínicas. Implementamos un modelo GAN basado en PyTorch para generar imágenes realistas de pulmones sanos y con cáncer, utilizando arquitecturas avanzadas de Deep Learning. Para el pipeline de MLOps, utilizamos AWS con Metaflow para entrenar, desplegar y mejorar continuamente el modelo, asegurando una gestión eficiente de los datos y el flujo de trabajo de Machine Learning. La interfaz gráfica, desarrollada con Node.js, permite a médicos y expertos evaluar las imágenes generadas, proporcionando retroalimentación valiosa para su mejora.

Imagen GAN

GAN - PyTorch

Las Generative Adversarial Networks (GAN) son una clase de modelos de Deep Learning que permiten la generación de datos sintéticos realistas. Utilizando PyTorch, una de las bibliotecas más populares para la construcción y entrenamiento de redes neuronales, las GANs se entrenan mediante un proceso adversarial en el que dos redes compiten entre sí para generar y evaluar imágenes, lo que lleva a una mejora progresiva en la calidad de los datos generados.

Imagen MLOps

MLOps - Metaflow

El enfoque de MLOps (Machine Learning Operations) busca integrar y automatizar el ciclo de vida completo de los modelos de machine learning. Utilizando Minikube y Kubernetes junto con un servidor local, garantizamos una infraestructura flexible y controlada para entrenar, validar y poner en producción los modelos. Kubernetes proporciona herramientas para gestionar y orquestar los recursos de forma escalable y reproducible, mientras que el servidor local ofrece un entorno seguro y personalizado para el despliegue y ejecución de los modelos.

Imagen Aplicación Web

Aplicación Web - Node.js

Node.js es un entorno de ejecución basado en JavaScript que permite desarrollar aplicaciones web rápidas y escalables. En este proyecto, se utiliza Node.js para crear una interfaz gráfica interactiva, que facilita la visualización de datos y la interacción con los modelos de machine learning. Gracias a su arquitectura asincrónica, Node.js maneja múltiples solicitudes simultáneamente de manera eficiente, lo que proporciona una experiencia de usuario fluida y ágil.


Icono pulmones

Arquitectura del proyecto

Este proyecto combina tres componentes clave: un modelo GAN para generar imágenes médicas sintéticas, un pipeline de MLOps para entrenar y mejorar continuamente el modelo, y una interfaz gráfica que permite a médicos y expertos evaluar la calidad de las imágenes generadas y proporcionar retroalimentación para su mejora.

Arquitectura

Icono pulmones

Pipeline del proyecto

En Metaflow, un pipeline o "flow" consta de varios "steps" (pasos), cada uno realizando una tarea específica y pasando datos al siguiente. Este pipeline tiene 7 pasos principales:

1. Start: Selección y preprocesamiento del dataset, transformando y filtrando imágenes para asegurar calidad y relevancia.
2. Train_model: Entrenamiento del modelo DCGAN con imágenes preprocesadas, configurando hiperparámetros y guardando resultados y modelos entrenados.
3. Eval_model: Evaluación del modelo con métricas personalizables para medir su rendimiento.
4. Generate_imgs: Generación de imágenes sintéticas si el modelo cumple un umbral de calidad, o ajuste y optimización de hiperparámetros en caso contrario.
5. Generate_report: Creación de un informe en PDF con métricas, gráficos y resultados relevantes del entrenamiento.
6. Upload_files_cloud: Subida segura de archivos a un almacenamiento en la nube con permisos restringidos.
7. End: Notificación al servidor web de la finalización del pipeline.

Arquitectura lógica del pipeline

Icono pulmones

Datos y evolución del modelo

Los datos utilizados para entrenar el modelo provienen de TCIA (The Cancer Imaging Archive), una base de datos pública y de alta calidad con imágenes médicas de cáncer disponibles para investigación.

Se compararon tres arquitecturas diferentes: Vanilla GAN, WGAN y DCGAN. Debido a recursos computacionales limitados, se optó por la DCGAN, que ofrecía el mejor equilibrio entre rendimiento y eficiencia.

Sobre esta base, se trabajó en mejorar los hiperparámetros de la DCGAN para optimizar la calidad y realismo de las imágenes generadas.

Este proceso iterativo permitió que el modelo evolucionara y se adaptara mejor a los datos, obteniendo resultados cada vez más precisos y útiles para aplicaciones médicas e investigación.

Resultados del modelo

Además de la evaluación visual, se analizaron métricas objetivas para cuantificar el rendimiento del modelo. Estas métricas incluyen medidas de similitud estructural, pérdida adversarial y estabilidad del entrenamiento.

La imagen siguiente recoge una comparativa clara de estas métricas entre la configuración inicial y la final:

Evaluación cuantitativa del modelo

Icono pulmones

Evolución del modelo: configuración inicial vs final

Durante el desarrollo del modelo DCGAN, se llevaron a cabo múltiples pruebas para optimizar su rendimiento. Inicialmente, se utilizó una configuración base estándar, con parámetros por defecto.

Sin embargo, tras varias iteraciones, se ajustaron hiperparámetros clave como la tasa de aprendizaje, el tamaño del batch, vector latente, ... Estos cambios permitieron mejorar la calidad visual de las imágenes generadas, haciendo que se parecieran más a las imágenes reales de tomografías.

La siguiente imagen muestra una comparación directa entre los resultados obtenidos con la configuración inicial y la configuración final optimizada.

Comparación de configuraciones del modelo

Icono pulmones

Generador de radiografías con neumonía

Además del modelo basado en tomografías, se desarrolló una versión adaptada de la arquitectura DCGAN para generar imágenes sintéticas de radiografías de tórax con neumonía.

La neumonía es una afección pulmonar comúnmente diagnosticada mediante radiografías, donde los pulmones afectados muestran infiltrados pulmonares que aparecen como zonas blancas en la imagen.

El modelo fue entrenado con el conjunto de datos "chest-xray-pneumonia" (Mooney, 2018), utilizando únicamente imágenes de neumonía viral. El objetivo fue evaluar la viabilidad de aplicar GANs a otro tipo de imagen médica bidimensional.

A continuación se muestra una animación del proceso de entrenamiento del modelo DCGAN aplicado a radiografías:

Evolución del entrenamiento con radiografías