Detectando el Crecimiento del Cáncer Utilizando Inteligencia Artificial y Visión por Computadora.

Detecting Cancer Growth Using Artificial Intelligence and Computer Vision.

IA para el bien social: aplicaciones en imágenes médicas

Imagen de portada de unsplash.com

Introducción

El cáncer de mama es una de las formas más mortales de cáncer en mujeres. Según la Organización Mundial de la Salud (OMS), solo en 2020, se diagnosticaron alrededor de 2,3 millones de nuevos casos de cáncer de mama invasivo en todo el mundo, lo que resultó en 685.000 muertes.

A pesar de que los países en desarrollo representan la mitad de todos los casos de cáncer de mama, representan el 62% de todas las muertes causadas por el cáncer de mama. La supervivencia del cáncer de mama durante al menos 5 años después del diagnóstico varía desde más del 90% en los países de ingresos altos, hasta el 66% en India y el 40% en Sudáfrica.

Figura 1: Varios pasos en la detección de metástasis de cáncer de mama realizados por patólogos | Arriba a la izquierda: Imagen del desafío Camelyon17 | Arriba a la derecha: Imagen de unsplash.com | Centro: Imagen de unsplash.com | Abajo a la izquierda y abajo a la derecha: Imágenes del autor

Un paso clave para determinar en qué etapa se encuentra el cáncer es el examen microscópico de los ganglios linfáticos adyacentes a la mama para comprender si el cáncer se ha metastatizado (un término médico que significa propagación a otros sitios del cuerpo). Este paso no solo es sensible, intensivo en tiempo y laborioso, sino que también requiere patólogos médicos altamente capacitados. Impacta en decisiones relacionadas con el tratamiento, que incluyen consideraciones sobre la radioterapia, la quimioterapia y la posible extirpación quirúrgica de más ganglios linfáticos.

Con el advenimiento y el avance de la IA y las técnicas de visión por computadora, especialmente las Redes Neuronales Convolucionales (CNN), hemos podido mejorar la precisión en una amplia gama de tareas de visión por computadora, como el reconocimiento de imágenes, la detección de objetos y la segmentación. Estos han sido beneficiosos para resolver algunos de los problemas de atención médica más desafiantes, especialmente en regiones con acceso limitado a instalaciones médicas avanzadas.

Sobre esa base, en este artículo presentaré un marco que aprovecha las CNN de última generación y las tecnologías de visión por computadora para ayudar en la detección de metástasis en ganglios linfáticos. Una solución exitosa promete reducir la carga de trabajo de los patólogos, al mismo tiempo que reduce la subjetividad en el diagnóstico.

Metodología y enfoque

Dado una imagen completa de una sección de ganglios linfáticos, nuestro objetivo es generar una máscara que indique las posibles regiones cancerosas (células con tumores) en la sección. Un ejemplo se muestra en la Figura 2, que muestra una imagen de un tejido en la diapositiva junto con una máscara donde la región amarilla representa áreas en el tejido que son cancerosas.

Figura 2: Izquierda: Una imagen WSI del conjunto de datos | Derecha: Máscara binaria con regiones amarillas que indican regiones cancerosas - Imágenes del autor

La segmentación de imágenes es una de las tareas clásicas de visión por computadora, donde el objetivo es entrenar una red neuronal para producir una máscara de píxeles de la imagen (algo similar a la máscara en la Figura 2). Hay varias técnicas de aprendizaje profundo disponibles para la segmentación de imágenes que se describen detalladamente en este artículo. TensorFlow de Google también tiene un excelente tutorial que utiliza un enfoque codificador-decodificador para la segmentación de imágenes.

En lugar de utilizar un codificador-decodificador que se usa comúnmente en problemas de segmentación de imágenes, trataremos esto como un problema de clasificación binaria donde cada región definida personalizada en la diapositiva se clasifica como sana o tumoral utilizando una red neuronal. Estas regiones individuales de una imagen completa de la diapositiva se pueden unir para obtener la máscara deseada.

Usaremos el proceso estándar de ML para construir el modelo CV: Recopilación de datos → Preprocesamiento → División de entrenamiento y prueba → Selección del modelo → Ajuste y entrenamiento fino → Evaluación

Recopilación y preprocesamiento de datos

El conjunto de datos se obtiene del desafío CAMELYON16 que, según el sitio web del desafío, contiene un total de 400 imágenes de campos completos (WSIs) de ganglios linfáticos centinela recolectados en el Centro Médico de la Universidad Radboud (Nijmegen, Países Bajos) y el Centro Médico Universitario de Utrecht (Utrecht, Países Bajos)”.

Las imágenes de campos completos se almacenan en una estructura de pirámide de múltiples resoluciones y cada archivo de imagen contiene varias versiones reducidas de la imagen original. Cada imagen en la pirámide se almacena como una serie de mosaicos para facilitar la recuperación rápida de subregiones de la imagen (consulte la Figura 3 para una ilustración).

Más información sobre la imagen de campos completos se puede encontrar aquí.

La verdad fundamental para las diapositivas se proporciona como máscaras binarias WSI que indican las regiones en las diapositivas que contienen células con tumores (ver figura 2 anterior como ejemplo).

Figura 3: Ilustración de diferentes niveles de aumento en imágenes de campos completos (WSI). Imagen obtenida de https://camelyon16.grand-challenge.org/Data/

Los WSI en nuestro conjunto de datos tienen 8 niveles de zoom que nos permiten hacer zoom en las imágenes desde 1x hasta 40x. El nivel 0 se considera la resolución más alta (40x) y el nivel 7 es el más bajo (1x).

Debido a su enorme tamaño (cada WSI en nuestro conjunto de datos supera los 2 GB), las herramientas de imagen estándar son incapaces de leerlas y comprimirlas en la RAM del sistema. Utilizamos la implementación de la biblioteca OpenSlide en Python para leer eficientemente las imágenes en nuestro conjunto de datos y también proporcionar una interfaz para navegar por diferentes niveles de zoom.

Figura 4- Imágenes por el autor

Entrenar una CNN en un conjunto de datos completo de 400 WSIs es computacionalmente muy costoso (imagina entrenar en un conjunto de datos de 2 x 400 = 800 GB). Tuvimos acceso al nivel gratuito de Google Collab que tiene soporte de GPU limitado disponible. Por lo tanto, seleccionamos aleatoriamente 22 WSIs del conjunto de datos. Al principio, un conjunto de 22 imágenes puede parecer un conjunto de datos pequeño para entrenar con precisión una red neuronal convolucional, pero, como mencioné anteriormente, extraemos pequeños parches de cada uno de estos enormes WSIs y tratamos cada parche como una imagen independiente que se puede usar para entrenar nuestro modelo, como se muestra en la figura 5.

Figura 5: Cada WSI se divide en parches más pequeños para aumentar el conjunto de datos - Imágenes del autor

En el nivel de zoom más alto (nivel 0 = aumento de 40x), cada imagen tiene aproximadamente 62000 x 54000 píxeles, extrayendo parches de tamaño 299 x 299 nos daría alrededor de 35,000 imágenes individuales de cada WSI. Extraemos parches de cada nivel de zoom. A medida que aumenta el nivel de zoom, disminuye la resolución y el número de parches que podemos extraer del WSI también disminuye. En el nivel 7, podemos extraer menos de 200 parches por imagen.

Además, cada WSI tiene muchas áreas vacías donde las células del tejido no estaban presentes. Para mantener la integridad de los datos, evitamos los parches que tenían menos del 30% de células del tejido, lo que se calculó programáticamente utilizando la intensidad del área gris.

El conjunto de datos se equilibró para tener aproximadamente la misma cantidad de parches que contenían células sanas y tumorales. Se realizó una división de entrenamiento-prueba del 80-20 en este conjunto de datos final.

Entrenamiento del modelo

Construimos múltiples modelos CNN que se entrenaron en los parches de imagen generados utilizando el mecanismo descrito en la sección anterior.

Función Objetivo

Nuestros objetivos de optimización principales fueron la sensibilidad y la recuperación, pero también monitoreamos de cerca el Área Bajo la Curva (AUC) de la Característica de Operación del Receptor (ROC) para asegurarnos de que no estábamos produciendo un número excesivo de falsos positivos.

En el contexto de la detección del cáncer, es crucial que minimicemos el número de falsos negativos, es decir, instancias en las que el modelo clasifica incorrectamente una muestra cancerosa como no cancerosa. Un alto número de falsos negativos podría retrasar el diagnóstico y tratamiento para los pacientes que realmente tienen cáncer. La sensibilidad (o recuperación) mide la proporción de verdaderos positivos que se identifican correctamente, y al optimizar para una alta recuperación, buscamos identificar correctamente tantos casos positivos reales como sea posible.

Sin embargo, centrarse solo en la sensibilidad podría llevar al modelo a predecir la mayoría de las muestras como positivas, aumentando así el número de falsos positivos (casos en los que una muestra no cancerosa se clasifica como cancerosa). Esto es indeseable ya que podría conducir a intervenciones médicas innecesarias y causar ansiedad indebida para los pacientes. Aquí es donde el monitoreo del AUC-ROC se vuelve extremadamente importante.

Construcción del Modelo

Comenzamos construyendo una línea base que tenía una arquitectura muy simple que constaba de 2 capas convolucionales con max pooling y dropout para la regularización. Para mejorar la línea base, ajustamos modelos de reconocimiento de imágenes de última generación como VGG16 e Inception v3 en nuestro conjunto de datos.

Como teníamos imágenes disponibles en diferentes niveles de zoom, entrenamos múltiples modelos, cada uno de los cuales consumía imágenes de un nivel de zoom para ver si ver imágenes en un nivel de zoom particular mejora el rendimiento de la red. Debido a un número limitado de parches extraídos disponibles en niveles de zoom más bajos, se combinaron 3,4,5 imágenes en estos niveles de zoom en un solo conjunto de entrenamiento. Se construyeron modelos separados para imágenes en 0, 1 y 2 niveles de zoom.

Figura 6: Modelo Inception v3 estándar con una capa Global Max Pool y Sigmoid Activation. Imagen de Inception v3 obtenida de: https://cloud.google.com/tpu/docs/inception-v3-advanced

Curiosamente, el modelo con mejor rendimiento fue el modelo Inception v3 pre-entrenado en pesos de ImageNet con una capa adicional de Global Max Pooling (ver figura 6). La función de activación sigmoidea toma cualquier número real y lo aplasta en un rango entre 0 y 1. Esto es particularmente útil en nuestros escenarios, donde nos gustaría mapear las predicciones a las probabilidades de dos clases (0 y 1).

Configuraciones del Modelo

Hicimos validación cruzada para aprender los mejores hiperparámetros para el modelo. A continuación se muestran las configuraciones finales de nuestro conjunto de datos ImageNet v3 aumentado, incluido el optimizador, la tasa de aprendizaje, rho, épocas y tamaño del lote utilizados. Al usar pesos de clase, mejoramos el enfoque del modelo en la clase minoritaria (casos tumorales), mejorando su capacidad para identificar y diagnosticar correctamente los casos de cáncer, un requisito esencial en este contexto de salud crítico.

Figura 7: Configuraciones y hiperparámetros del modelo - Imagen del autor

Evaluación del Modelo

Observamos la pérdida, el AUC y la recuperación para ejecuciones de entrenamiento con diferentes hiperparámetros y parches de imagen muestreados en diferentes niveles de zoom.

Como se mencionó anteriormente, se combinaron imágenes en niveles de zoom 3,4,5 en un solo conjunto de entrenamiento y se construyeron modelos separados para imágenes en niveles de zoom 0, 1 y 2. Los gráficos a continuación muestran el rendimiento para diferentes niveles de zoom en el conjunto de validación. El rendimiento fue mejor en el nivel de zoom 1 en términos del AUC y la recuperación, en el conjunto de datos modificado de Imagenet v3.

Figura 8: Configuraciones y rendimiento del modelo ajustado final - Imagen del autor

Inferencia

Una vez que el modelo ha sido ajustado, podemos usarlo para generar “máscaras” para cualquier nueva imagen de diapositiva completa. Para hacer esto, primero necesitaríamos generar parches de resolución 299 x 299 (el tamaño de entrada para la arquitectura estándar Imagenet v3) de la imagen en el nivel de zoom que nos interesa (ya sea nivel 1 o nivel 2).

Luego, las imágenes individuales se pasan a través del modelo ajustado para clasificar cada una de ellas como que contienen células tumorales o no tumorales. Las imágenes se unen para generar la máscara.

Aquí están las salidas y las máscaras reales para dos imágenes de diapositivas completas en nuestro conjunto de pruebas. Como puede ver, las máscaras generadas por nuestro modelo se parecen decentemente a la máscara real.

Figura 9: Resultados del modelo en un par de imágenes en el conjunto de pruebas - Imagen por el autor

Observaciones finales

En esta publicación, exploramos cómo los modelos de visión por computadora pueden ajustarse para detectar metástasis cancerosas en imágenes de patología de gigapíxeles. La siguiente imagen resume el flujo de trabajo para el entrenamiento del modelo y el proceso de inferencia para clasificar nuevas imágenes.

Figura 9: Resumen del flujo de trabajo de entrenamiento e inferencia - Imagen por el autor

Este modelo integrado en el flujo de trabajo existente de los patólogos puede actuar como una herramienta de asistencia, y puede ser de alta relevancia clínica especialmente en organizaciones con capacidades limitadas de recursos, y también puede ser utilizado como la primera línea de defensa para diagnosticar la enfermedad subyacente de manera oportuna.

Se necesita hacer más trabajo para evaluar el impacto en los flujos de trabajo clínicos reales y los resultados de los pacientes. Sin embargo, mantengamos una perspectiva positiva de que las tecnologías de aprendizaje profundo meticulosamente verificadas, junto con instrumentos clínicos cuidadosamente diseñados, tienen el potencial de mejorar la precisión y accesibilidad de los diagnósticos patológicos a nivel mundial.

Eche un vistazo al código fuente en mi Github: https://github.com/saranggupta94/detecting_cancer_metastasis .

Puede encontrar los resultados finales de la competencia CAMELYON aquí: https://jamanetwork.com/journals/jama/article-abstract/2665774

Si está interesado en colaborar en un proyecto o le gustaría conectarse, no dude en conectarse conmigo en LinkedIn o enviarme un mensaje a [email protected].

Gracias a Niti Jain por sus contribuciones a este artículo.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

¿Cómo sobrevivir en el mundo de la IA? ¿Está en riesgo tu trabajo?

¿Está en riesgo tu trabajo? Es una pregunta que atormenta a muchos trabajadores, y no estoy hablando en el contexto d...

Inteligencia Artificial

Apple presenta MLX, un marco de trabajo de aprendizaje automático de código abierto

En un importante paso hacia la promoción de la colaboración y la innovación en el campo del aprendizaje automático, A...

Aprendizaje Automático

DeepMind presenta AlphaDev un agente de aprendizaje por refuerzo profundo que descubre algoritmos de clasificación más rápidos desde cero.

Desde la Inteligencia Artificial y el Análisis de Datos hasta la Criptografía y la Optimización, los algoritmos juega...

Inteligencia Artificial

Herramientas de IA principales para emprendedores 2023

Grammarly es una herramienta de escritura impulsada por IA que garantiza que tu escritura esté libre de errores y pul...