Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
RESUMEN i Resumen En este proyecto se ha desarrollado un método de segmentación automática de estructuras craneales a partir de imágenes de Tomografía Axial Computarizada. El algoritmo se ha basado en técnicas de aprendizaje profundo y redes neuronales convolucionales. El objetivo final es realizar un modelo alternativo de segmentación de imágenes médicas bidimensionales de corte axial que sirva de herramienta de guiado durante las cirugías craneales y de apoyo al diagnóstico. Debido a la aparición de determinados tipos de Inteligencia Artificial como el Deep Learning, han surgido nuevas técnicas de segmentación semántica que han proporcionado la posibilidad de segmentar imágenes en tiempos de ejecución realmente bajos. La metodología del proyecto opta por la implementación de una red neuronal convolucional que se entrenará desde cero con el propósito de obtener imágenes segmentadas bidimensionales de corte axial de cualquier paciente. El resultado esperado es un conjunto de máscaras que proporcionarán una vista de las regiones de tejido óseo de las imágenes originales. ABSTRACT iii Abstract An automatic segmentation method related to computed tomography scan is performed in this project. Moreover, the algorithm is based on Deep Learning and Convolution Neuronal Networks. The main purpose is to execute an alternative segmentation model of bidimentional axial cut images in order to develop a tool for an image-guided system of craneal surgeries and to dictate diagnoses. New semantic segmentation techniques have appeared due to the implementation of artificial intelligence types as Deep Learning. These ones, make posible to segment images on really low run times. This project performs a Convolution Neuronal Networks that it is trained from the beginning, with the purpose of getting bidimentional axial cut segmented images coming from any patient. The expected result is a series of masks that provide a bone tissue regions view from the original images. AGRADECIMIENTOS v Agradecimientos A mis padres, por dejaros la piel para que pueda cumplir mis metas y sueños. Vicenta, mi madre, gracias por ser siempre la luz que ilumina mi camino. Paco, mi padre, gracias por ser la voz crítica que intenta inculcarme valores como el sacrificio y la constancia. A mis hermanos Paco y Álvaro, por ser las principales causantes de que sea feliz. Sigamos quemando etapas, capítulos y aventuras juntos. A Bea, por aparecer en nuestras vidas, formar parte de nuestra familia y ser un ejemplo para mí. A mis amigos de toda la vida, Miguel, Daniel, Alfonso y Victor, por subirse al tren y querer soñar junto a mí. A mis amigos de la universidad, Elías, Javier, Daniel, Pedro y Guillermo, por acompañarme en esta preciosa vida universitaria. Horas y horas de biblioteca, cantina y sala de ordenadores han merecido la pena solo por el simple hecho de estar con vosotros. A Elia, mi compañera de viaje, por cuidarme, por mantenerme los pies en el suelo, por confiar y hacer de mí una mejor persona. A mi tutor, Juan Ignacio, por darme la oportunidad de disfrutar de este proyecto. Gracias por mostrarme el camino del buen hacer. Mi devoción por las nuevas tecnologías es mayor gracias a ti. Gracias a todos los que perdéis tiempo de vuestras vidas para preocuparos por mí y ser partícipes de mi desarrollo persona ÍNDICE vii Índice Índice ...................................................................................................................... vii Introducción ............................................................................................................. 3 Objetivos................................................................................................................... 5 Revisión de técnicas y conceptos............................................................................... 7 3.1 Estructuras anatómicas craneales ................................................................... 7 3.2 Tomografía Axial Computarizada.................................................................. 9 3.3 DICOM ...................................................................................................... 10 3.4 Machine Learning ....................................................................................... 12 3.5 Redes Neuronales Artificiales ..................................................................... 15 3.6 Deep Learning ............................................................................................ 19 3.7 Aspectos importantes de la CNN ................................................................. 21 3.8 Tipos de Redes Neuronales Convolucionales ............................................... 23 3.9 U-Net ......................................................................................................... 24 3.10 Segmentación semántica de imágenes médicas ............................................ 25 Estado de la cuestión .............................................................................................. 27 Materiales y métodos .............................................................................................. 29 5.1 Conjunto de datos ....................................................................................... 29 5.2 Partición del conjunto de datos .................................................................... 31 5.3 Preprocesado digital de conjunto de datos .................................................... 31 5.4 Entorno de trabajo y herramientas computacionales ..................................... 33 5.5 Librerías empleadas .................................................................................... 34 5.6 Método propuesto ....................................................................................... 35 5.7 Arquitectura de la red.................................................................................. 35 5.8 Detalles de la red ........................................................................................ 37 5.9 Procesado final ........................................................................................... 37 Resultados............................................................................................................... 39 Discusión................................................................................................................. 53 Conclusiones ........................................................................................................... 59 Anexo 1 ................................................................................................................... 61 Anexo 2 ................................................................................................................... 69 Referencias ............................................................................................................. 73 ÍNDICE viii Índice de figuras Figura 1. Vista frontal del cráneo con las estructuras óseas principales. Imagen adaptada [15] ............................................................................................................................ 7 Figura 2. Vista lateral del cráneo con las estructuras óseas principales. Imagen adaptada [15] ............................................................................................................................ 8 Figura 3. Localización de estructuras anatómicas en el cráneo. Imagen adaptada [16] ... 8 Figura 4. Slice de un corte axial de TAC de la cabeza de un paciente............................ 9 Figura 5. Slice de un corte coronal de TAC de la cabeza de un paciente...................... 10 Figura 6. Slice de un corte sagital de TAC de la cabeza de un paciente....................... 10 Figura 7. Esquema simplificado de la estructura de Entidades de DICOM. Imagen adaptada [21]............................................................................................................ 11 Figura 8. Ejemplo de parámetros de un TAC en formato DICOM............................... 11 Figura 9. Tipos de Machine Learning según el estilo de aprendizaje ........................... 13 Figura 10. Procesos del aprendizaje supervisado. Imagen adaptada [25] ..................... 13 Figura 11. Ejemplo esquemático de técnica de aprendizaje supervisado y aprendizaje no supervisado. Imagen Adaptada [26]........................................................................... 14 Figura 12. Una simple neurona. Imagen adaptada [27] ............................................... 15 Figura 13. Definición de perceptrón a alto nivel. Imagen adaptada [29] ...................... 16 Figura 14. Función de activación ReLU. Imagen adaptada [30] .................................. 17 Figura 15. Función de activación sigmoidal o sigmoide. Imagen adaptada [30] ........... 17 Figura 16. Estructura básica de una red neuronal. Imagen adaptada [34] ..................... 18 Figura 17. Clasificación de las Redes Neuronales Convolucionales según IBM. Imagen adaptada [35]............................................................................................................ 19 Figura 18. Ejemplo de obtención de mapa de características en una convolución a partir de un kernel. Imagen adaptada [38] ........................................................................... 20 Figura 19. Ejemplo de una estructura capa convolucional y capa pooling aplicada a una imagen ..................................................................................................................... 20 Figura 20. Esquema de una red neuronal convolucional, Imagen adaptada [34]........... 21 Figura 21. Arquitectura U-Net original desarrollada por Olaf Ronneberger, Philipp Fischer y Thomas Brox. Imagen adaptada [46] .......................................................... 25 Figura 22. Ejemplo de segmentación de una imagen en persona y fondo. Imagen adaptada [47] .......................................................................................................................... 26 Figura 23. Segmentación manual de slices 67, 90, 112 y 137 del paciente 5 ................ 30 Figura 24. Exportar imágenes del corte axial en formato png desde Microdicom......... 31 Figura 25. Imagen exportada de MicroDicom en formato png (a), imagen editada con GIMP en formato png (b).......................................................................................... 32 Figura 26. Imagen preprocesada (a), máscara preprocesada (b)................................... 32 Figura 27. Interfaz de línea de comandos de Ananconda ............................................ 33 Figura 28. Entorno Jupyter Notebook para desarrollar el código del algoritmo ............ 34 Figura 29. Segmentación de una imagen 2D del corte axial de una Tomografía Axial Computarizada ......................................................................................................... 35 Figura 30. Arquitectura del algoritmo propuesto. Imagen adaptada [46] ..................... 36 file:///D:/t727327/Desktop/borrador_memoria_v8.docx%23_Toc74676878 ÍNDICE ix Figura 31. Error al intentar introducir en el algoritmo imágenes con una resolución de 256x256 ................................................................................................................... 37 Figura 32. Entrenamiento y validación con 120 épocas y tasa de aprendizaje 0.001..... 39 Figura 33. Entrenamiento y validación con 120 épocas y tasa de aprendizaje 0.0001... 39 Figura 34. Entrenamiento y validación con 20 épocas ................................................ 40 Figura 35. Entrenamiento y validación con 50 épocas ................................................ 40 Figura 36. Entrenamiento y validación con 90 épocas ................................................ 41 Figura 37. Entrenamiento y validación con 120 épocas .............................................. 41 Figura 38. Imágenes y máscaras (automáticas y manuales) de los slices 0, 10, 15 y 20 del TAC segmentado ...................................................................................................... 43 Figura 39. Imágenes y máscaras (automáticas y manuales) de los slices 25, 31,34 y 38 del TAC segmentado ................................................................................................ 44 Figura 40. Imágenes y máscaras (manuales y automáticas) de los slices 42 ,50, 52 y 54 del TAC segmentado ................................................................................................ 45 Figura 41. Imágenes y máscaras (manuales y automáticas) de los slices 59, 61, 64 y 67 del TAC segmentado ................................................................................................ 46 Figura 42. Imagen original e imagen enventanada...................................................... 47 Figura 43. Imágenes enventanadas y máscaras (automáticas y manuales) de los slices 0, 15, 20 y 25 del TAC segmentado .............................................................................. 48 Figura 44. Imágenes enventanadas y máscaras (manuales y automáticas) de los slices 34, 42, 52 y 61 del TAC segmentado .............................................................................. 49 Figura 45. Coeficiente DICE obtenido....................................................................... 50 Figura 46. Reconstrucción 3D del TAC segmentado por el algoritmo propuesto ......... 51 Figura 47. Máscara obtenida por el algoritmo y máscara obtenida por la segmentación manual ..................................................................................................................... 53 Figura 48 . Comparación de resultados de los slices 25 y 59 del TAC segmentado ...... 54 Figura 49 . Resultados a la altura de los senos etmoidales de los slices 42 y 52 del TAC segmentado .............................................................................................................. 55 Figura 50. Resultados de la segmentación del slice 64 donde aparece el hueso frontal y parietal. Máscara automática y máscara manual ......................................................... 55 Figura 51. Resultados de la segmentación del slice 67 donde aparece el hueso frontal y parietal. Máscara automática y máscara manual ......................................................... 56 Figura 52. Resultados de segmentar slice 15 donde aparece el hueso occipital. Máscara automática y máscara manual................................................................................... 56 Figura 53. Fila de arriba hacia abajo: (a) Imágenes originales, (b) imágenes enventanadas, (c) máscaras automáticas sin enventanar, (d) máscaras automáticas con enventanado y (e) máscaras manuales de los slices 42, 47 y 52 del TAC segmentado.............................. 57 Figura 54. Comparación entre segmentación manual (verde) y segmentación automática enventanda (rojo). (a) slice 15, (b) slice 42, (c) slice 52 y (d) slice 67 del TAC segmentado ................................................................................................................................ 58 Figura 55. Lanzamiento de versiones python de [57].................................................. 61 Figura 56. Comprobación controlador NVIDIA de [66] ............................................. 62 Figura 57. Versiones de instalación CUDA de [58] .................................................... 62 Figura 58. Versiones de instalación cuDNN de [59] ................................................... 62 Figura 59. Ejemplo de creación de un entorno virtual................................................. 63 Figura 60. Activación del entorno virtual...................................................................63 file:///D:/t727327/Desktop/borrador_memoria_v8.docx%23_Toc74676902 file:///D:/t727327/Desktop/borrador_memoria_v8.docx%23_Toc74676902 file:///D:/t727327/Desktop/borrador_memoria_v8.docx%23_Toc74676909 file:///D:/t727327/Desktop/borrador_memoria_v8.docx%23_Toc74676909 file:///D:/t727327/Desktop/borrador_memoria_v8.docx%23_Toc74676909 ÍNDICE x Figura 61. Comprobación de la instalación correcta de Tensorflow y Keras en un entorno virtual ...................................................................................................................... 63 Figura 62. Ejecución de Jupyter Notebook................................................................. 64 Figura 63. Interfaz gráfica de Jupyter Notebook......................................................... 64 Figura 64. Interfaz gráfico y celdas del código ........................................................... 64 Figura 65. Introducir en la variable data_path la ruta raíz ..................................... 65 Figura 66. Introducción del directorio donde se van a guardar las máscaras obtenidas . 65 Figura 67. Introducir ruta de directorios de los datos de entrenamiento y validación.... 66 Figura 68. Introducir ruta de los pesos de entrenamiento ............................................ 66 Figura 69. Introducir ruta del fichero numpy de las máscaras automáticas obtenidas ... 66 Figura 70. Introducir nombre de la caperta que se va a generar con las máscaras automáticas .............................................................................................................. 67 ACRÓNIMOS 1 Acrónimos TAC: Tomografía Axial Computarizada IA: Inteligencia Artificial ML: Machine Learning DL: Deep Learning RNA: Red Neuronal Artificial CNN: Red Neuronal Convolucional RAM: Memoria de Acceso Aleatorio INTRODUCCIÓN 3 Capítulo 1 Introducción Durante las últimas décadas, la segmentación de estructuras craneales ha sido una técnica de procesado de gran importancia en el ámbito de la Medicina y la Bioingeniería. Algunas de las aplicaciones, que implican un segmentado, son el guido asistido en cirugías [1-3], simulaciones quirúrgicas [4-5] y creaciones de modelos a escala real de estructuras como el cráneo [6]. Una segmentación precisa resulta compleja debido a la variabilidad del tamaño, densidad y número de estructuras anatómicas en cada paciente. En muchos casos, prótesis o deformaciones patológicas introducen dificultades a la hora de segmentar las imágenes. Además, el proceso de obtención las imágenes, el tipo de imagen y la calidad de la propia imagen influyen en el proceso de segmentación. Parámetros como una mala resolución o ruido excesivo pueden suponer una pérdida de precisión llegando incluso a causar situaciones en las que no se distinga entre una región de hueso, tejido blando o aire. Todo el conjunto provoca el desafío de buscar nuevas técnicas que proporcionen resultados precisos en tiempos de cómputo relativamente bajos. La irrupción de tipos de Inteligencia Artificial (IA) como el aprendizaje profundo ha supuesto la aparición de algoritmos automáticos de segmentación basados en la experiencia [7-9] como alternativa a los modelos tradicionales [10-11]. Gracias a la aparición del Big Data, la aportación de la Inteligencia Artificial, y la posibilidad de manejar recursos de cómputo de altas capacidades, ha sido posible estrechar la relación entre la precisión, el esfuerzo y los tiempos de cómputo. En este documento se propone un algoritmo de segmentación automática de estructuras craneales de imágenes bidimensionales (2D) basado en técnicas de aprendizaje profundo. Las imágenes 2D corresponden con las rebanadas (slices) del corte axial de la Tomografía Axial Computarizada (TAC) de diferentes pacientes. El conjunto de datos ha sido cedido por el Hospital Gregorio Marañón de Madrid y fue obtenido a partir de la tomografía computarizada por rayos X realizada por un tomógrafo helicoidal. Las imágenes son segmentadas de manera manual para obtener las máscaras que se han usado en el entrenamiento y validación del algoritmo. Se escoge realizar una segmentación manual para intentar proporcionar la máxima precisión en los contornos de los tejidos óseos. La cabeza presenta estructuras anatómicas, como los huesos etmoidales, que varían en número en cada paciente, que presentan grosores muy finos y que requieren de un gran cuidado a la hora de distinguir que tipo de tejido corresponde con cada región de la imagen. INTRODUCCIÓN 4 Una vez adaptado los parámetros y validado el entrenamiento, el algoritmo segmenta imágenes craneales de manera automática. Finalmente, se procede a exponer los resultados obtenidos y se indica las ventajas e inconvenientes que se han detectado durante el proyecto. El propósito del proyecto consiste en proporcionar un modelo de segmentación que pueda reducir esfuerzos, que no sea tan costoso como una segmentación manual y que el tiempo de ejecución de un TAC sea relativamente bajo. Es decir, plantear una posible alternativa de segmentación de estructuras anatómicas craneales. OBJETIVOS 5 Capítulo 2 Objetivos El proyecto académico tiene como objetivo principal la implementación de un algoritmo basado en técnicas de aprendizaje profundo cuya funcionalidad es la segmentación y clasificación de estructuras craneales a partir de un conjunto de TAC. Además, se establecen los siguientes objetivos secundarios: • Adaptar una red neuronal convolucional (CNN) U-Net al problema de segmentar estructuras anatómicas craneales. • Entrenar un algoritmo basado en técnicas de aprendizaje profundo y comprobar su funcionamiento. • Diseñar un modelo que segmente imágenes médicas de TAC en tiempos de cómputo relativamente bajos. • Comparar resultados obtenidos con un algoritmo de segmentación automática y una segmentación manual de imágenes. REVISIÓN DE TÉCNICAS Y CONCEPTOS 7 Capítulo 3 Revisión de técnicas y conceptos En este capítulo se procede a repasar las técnicas y conceptos que se han empleado durante el desarrollo del algoritmo de clasificación propuesto para la segmentación de estructuras craneales. 3.1 Estructuras anatómicas craneales El cráneo, según la Real Academia Española (RAE), se define como “una caja ósea en la que está contenido el encéfalo” [12]. En términos de anatomía, el cráneo es una estructura formada por dos regiones: craneal y facial [13]. La región craneal recubre el encéfalo y el resto de las estructuras óseas del cráneo se localizan en la región facial. El cráneo está formado por una gran variedad de estructuras anatómicas [14], por consiguiente, resulta complejo abarcar todo el conjunto sin llevar a cabo un estudio profundo de su anatomía. Por esa razón, el proyecto académico se centra en el estudio de los resultados obtenidos de la segmentación de los principales tejidos óseos (figura 1 y 2). Figura 1. Vista frontal del cráneo con las estructuras óseas principales. Imagen adaptada [15] REVISIÓN DE TÉCNICAS Y CONCEPTOS 8 Figura 2. Vista lateral del cráneo con las estructuras óseas principales. Imagen adaptada [15] Además, el cráneo consta de una variedad estructuras como las cavidades y los tejidos blandos, o senos, como indica la literatura [14]. La figura 3 muestra ejemplos de estructuras anatómicas que componen el interior del cráneo. Figura 3. Localización de estructuras anatómicas en el cráneo. Imagen adaptada [16] Para la interpretación y localización de las estructuras craneales en las imágenes médicas, usadas en elproyecto, se ha consultado la literatura [17]. REVISIÓN DE TÉCNICAS Y CONCEPTOS 9 3.2 Tomografía Axial Computarizada La tomografía es un método de obtención de una secuencia de imágenes por cortes de un área u objeto. Existen diferentes técnicas de tomografía: tomografía computarizada por rayos X (TAC), tomografía por resonancia magnética (IRM) o tomografía por emisión de positrones (PET) entre otras [10]. La tomografía computarizada, también conocida como tomografía axial computarizada (TAC), es una técnica de captación de imágenes que emplea rayos X. Con el paso del tiempo se ha convertido en un método universal de obtener imágenes tridimensionales de cualquier estructura anatómica. Actualmente la TAC se aplica al estudio y seguimiento de tratamientos para pacientes en cualquier ámbito de la medicina [18]. El principio del TAC está fundamentado en la detección de las proyecciones originadas a partir de la rotación del tubo de rayos X alrededor del paciente. Cuanto mayor sea el número de proyecciones, más precisa es la reconstrucción del objeto. El valor de cada píxel, que compone la imagen originada, presenta una relación directamente proporcional a la atenuación del tejido correspondiente. Es decir, se establece una relación entre la intensidad del haz inicial del rayo X y el coeficiente de atenuación lineal del tejido del material anatómico [18]. Las imágenes se obtienen a partir del empleo de algoritmos de reconstrucción [19]. Los cortes, conocidos como axiales, coronales o sagitales, proporcionan una vista bidimensional de las estructuras en función del plano establecido. Las figuras 4, 5, 6 son ejemplos de imágenes (slices) bidimensionales de los tres cortes de un TAC de cabeza: corte axial, coronal y sagital. Figura 4. Slice de un corte axial de TAC de la cabeza de un paciente REVISIÓN DE TÉCNICAS Y CONCEPTOS 10 Figura 5. Slice de un corte coronal de TAC de la cabeza de un paciente Figura 6. Slice de un corte sagital de TAC de la cabeza de un paciente 3.3 DICOM DICOM (Digital Imaging and Communication On Medicine) es un protocolo de almacenamiento y transmisión de imágenes biomédicas y de sus metadatos asociados entre herramientas de diagnóstico. Su aparición supuso la solución a la falta de interoperabilidad entre equipos. El estándar, como punto de referencia para medir o valorar imágenes, permite funcionalidades como visualizar, almacenar, procesar y transmitir imágenes obtenidas a partir de métodos como la tomografía computarizada. El protocolo se basa en una sintaxis binaria y permite una gran resolución de imágenes [20]. La estructura genérica de entidades del protocolo se presenta en la figura 7 de manera simplificada. REVISIÓN DE TÉCNICAS Y CONCEPTOS 11 Figura 7. Esquema simplificado de la estructura de Entidades de DICOM. Imagen adaptada [21] Los archivos DICOM, con formato .dcm, contienen metadatos como el número del slice, dimensiones, parámetros de adquisición, datos del paciente o el estudio aplicado, entre otros. Algunos de los parámetros más relevantes del proyecto son el espesor nominal del slice (slice Thinkness), el ancho de la ventana (window width) o el centro de la ventana (window center). MicroDicom [22] permite la funcionalidad de manipular estos dos últimos parámetros con la finalidad de enventanar las slices de los TAC. Los valores de anchura y centro de la ventana dependen del contraste necesario para percibir con mayor claridad unos tejidos u otros. En la figura 8 se pueden apreciar algunos de los ejemplos de metadatos de un TAC, en formato .dcm, mediante el software MicroDicom. Figura 8. Ejemplo de parámetros de un TAC en formato DICOM. REVISIÓN DE TÉCNICAS Y CONCEPTOS 12 3.4 Machine Learning El aprendizaje profundo (Machine Learning - ML) es un campo de las ciencias de la computación y rama de la Inteligencia Artificial (IA). La IA se pude describir como un conjunto de técnicas capaces de simular ciertos comportamientos inteligentes propios del ser humano. Máquinas, ordenadores y sistemas computacionales buscan aprender a base de técnicas con el fin de percibir el entorno, entender su comportamiento y actuar sobre él [23]. Los principios fundamentales son la imitación de las funciones cognitivas de la mente humana y la búsqueda del aprendizaje de una manera análoga a la desarrollada por el ser humano a medida que va creciendo y adquiriendo experiencia. Sin embargo, esto no hubiera sido posible sin la irrupción del Big Data y la posibilidad de acceder y procesar grandes cantidades de datos. No obstante, las compañías tecnológicas han tenido que reinventarse para desarrollar dispositivos con recursos capaces de procesar grandes conjuntos de datos. El ML persiste en la búsqueda de desarrollar sistemas que resuelvan tareas que a priori requieren de la inteligencia humana. Para ello, es necesario la colaboración de diferentes ramas como la ingeniería, matemáticas, estadística, psicología o neurociencia. En términos de la ingeniería computacional, ML se define como un área de la IA que se centra en el desarrollo de técnicas que busquen patrones para establecer modelos de procesado de datos. El aprendizaje automático subyace en la idea de comprender el comportamiento de los seres humanos cuando reaccionan a un estímulo o desarrollan una educación basada en ensayo, prueba y error. Un concepto clave, aportado por la neurociencia, es la categorización de conceptos y objetos a partir de atributos o características. La categorización se describe como una regla inicial que se modifica a medida que el humano se enfrenta a nuevos ejemplos. Como propósito de implementación se establece la posibilidad de automatizar y simplificar procesos tediosos y complejos mediante métodos de análisis matemático y estadístico. Dicho lo cual, es fundamental el desarrollo de modelos genéricos con salidas precisas. La precisión de los modelos es una variable que tiene una relación directamente proporcional a la cantidad de datos que se manejen. Entre las numerosas ventajas que pueden proporcionar este tipo de sistemas, se pueden mencionar la resolución de tareas complejas con solidez, la utilización de datos reales en lugar de datos teóricos y la adaptabilidad a situaciones desconocidas. Existen varias formas de crear algoritmos según el estilo del aprendizaje empleado. Según esta taxonomía y como se muestra en la figura 9, el aprendizaje automático se agrupa en: aprendizaje supervisado (supervised learning), no supervisado (unsupervised learning), semi-supervisado (semi-supervised learning) y por refuerzo (reinforcement learning) [24]. REVISIÓN DE TÉCNICAS Y CONCEPTOS 13 Figura 9. Tipos de Machine Learning según el estilo de aprendizaje Los algoritmos de aprendizaje supervisado asignan entradas específicas a salidas conocidas. La principal aplicación es la clasificación por clases o etiquetas apoyada en el mapeo del vector entrada-salida. Es decir, se les asigna etiquetas, previamente conocidas y variables en función de la salida, a los datos de entrada. La figura 10 describe, de manera simplificada, los procesos y flujos empleados en algoritmos de aprendizaje supervisado. Un aspecto importante es la necesidad de ayuda humana como supervisor externo para orientar el camino [25]. Figura 10. Procesos del aprendizaje supervisado. Imagen adaptada [25] REVISIÓN DE TÉCNICAS Y CONCEPTOS 14 Los algoritmos basados en aprendizaje no supervisado configuran el conjunto de entradas, aunque las salidas no están disponibles para su modelado en la búsqueda de la precisión del modelo. El sistema no tiene datos de referencia y por lo general el algoritmoaprende de la información de entrada del problema en cuestión. La red determina el error y ajusta los parámetros para minimizarlo. A diferencia de los algoritmos de aprendizaje supervisado y como se puede apreciar en la figura 11, los datos de entrada no son clasificados a priori, sino que las técnicas de aprendizaje deben categorizarlos de manera correcta encontrando características comunes durante el procesado. Por lo tanto, los algoritmos buscan patrones en conjuntos de datos que no tienen respuestas etiquetadas. Hay que mencionar que no es necesario un supervisor externo como en el caso de las técnicas de aprendizaje supervisado. Figura 11. Ejemplo esquemático de técnica de aprendizaje supervisado y aprendizaje no supervisado. Imagen Adaptada [26] Los algoritmos de aprendizaje semi-supervisado combinan conjuntos etiquetados y no etiquetados para generar la función o clasificador apropiado [24]. Los modelos basados en técnicas de aprendizaje por refuerzo se basan en realizar una serie de acciones que tienen algún impacto en el entorno, y este, a su vez, proporciona reportes para establecer un guiado hacía el modelo ideal [25]. En pocas palabras, las técnicas de aprendizaje por refuerzo buscan establecer un sistema que aprenda a partir de las interacciones con el entorno. Posteriormente, estas se traducen en recompensas y penalizaciones a medida que se aproximan o se alejan del objetivo. Además, existen agentes externos que determinan cuál debe ser el comportamiento del proceso y deciden sobre las acciones a aplicar dependiendo del resultado obtenido. Las compañías punteras en el ámbito de la tecnología como el caso de Internal Bussiness Machines Corporation (IBM), Apple o Google están realizando grandes inversiones en investigación de algoritmos de aprendizaje por refuerzo debido a que pretenden desarrollar aplicaciones como el entrenamiento a robots con el propósito de que realicen tareas sencillas de manera autónoma. REVISIÓN DE TÉCNICAS Y CONCEPTOS 15 3.5 Redes Neuronales Artificiales Las redes neuronales artificiales (RNAs) son modelos electrónicos basados en la estructura neuronal del cerebro, gracias a la cual, el cerebro almacena información en patrones. Para describir las RNAs, es necesario comentar el papel de la neurona en el cerebro. En primer lugar, ella misma recibe entradas de distintas fuentes, que después, se combinan mediante operaciones lineales o no lineales generando un resultado. La neurona está formada, como muestra la figura 12, por cuatro componentes básicos: dendritas, soma, axón y sinapsis. Las primeras reciben la información de impulsos nerviosos a través de la sinapsis con otras neuronas y transportan la información hacia el soma. El soma es la parte central del cuerpo de la célula y el núcleo para el tratamiento de los procesos. El axón es la ramificación extendida del soma que comunica la información procesada a otras neuronas. La sinapsis es la estructura que establece la conexión entre la parte terminal del axón y las dendritas de la siguiente neurona. Figura 12. Una simple neurona. Imagen adaptada [27] A medida que la neurociencia proporciona un mejor entendimiento de las neuronas, el avance en el desarrollo y adaptación de modelos de RNA va incrementando [27]. REVISIÓN DE TÉCNICAS Y CONCEPTOS 16 Las investigaciones en redes neuronales artificiales pretenden adaptar los componentes de la neurona a unidades de cómputo que permitan resolver problemas de una manera semejante alejado de los sistemas de computación tradicional. Frank Rosenblatt propuso el perceptrón [28] como unidad básica de procesamiento de una red neuronal artificial. En la figura 13 se pueden apreciar los conceptos básicos de un perceptrón basados en las ecuaciones Ec(1) y Ec(2). La suma ponderada, Z, combina varias entradas, xi . En la ecuación Ec(1), cada una de las entradas tiene asignada unos pesos, wi, cuyo valor tiene una relación directamente proporcional a la importancia que se le proporcione a la entrada. En la ecuación Ec(1) aparece un concepto estadístico denominado sesgo, b, que se describe como una constante obtenida a partir de la diferencia entre el valor del parámetro y su valor esperado. Además, es atribuido al error humano o sistemático que poseen los sistemas. A medida que se ejecuta el entrenamiento, el sesgo es menor. Z = b + ∑ wi xi n i=0 Ec(1) o = g(Z) Ec(2) Figura 13. Definición de perceptrón a alto nivel. Imagen adaptada [29] La función de activación, g(.) de la Ec(2), es una función de transferencia que se encarga de transformar las salidas a un formato no lineal, dependiendo de las necesidades, para su posterior transmisión a la siguiente capa. En términos generales, la función de transferencia define un valor umbral que indica si la neurona debe activarse o no. Es decir, la neurona se activa en caso de que el valor de la entrada sea superior al umbral establecido. El empleo de funciones de activación proporciona a la red neuronal dinamismo, salidas coherentes en función de los datos aleatorios de entrada y optimización de errores que llegan a propagar los pesos. Existe diversas funciones de activación que se clasifican en lineales o no lineales [30]. REVISIÓN DE TÉCNICAS Y CONCEPTOS 17 Para escoger la función de activación correcta es necesario un estudio de la red basado en comparar los diferentes resultados que proporcionan cada una de ellas. En nuestro caso, el algoritmo usa las funciones unidad lineal rectificada (ReLU) y sigmoidal (sigmoide) como operadores de las capas de activación. La función ReLU es una función de activación no lineal que se emplea de manera frecuente en las redes neuronales. Los valores negativos de entrada se transforman en valores nulos y los positivos se mantienen igual (Ec(3)). Los perceptrones no se activan al mismo tiempo y se desactivan a medida que la salida de la transformación es cero [30]. La función ReLU presenta un buen comportamiento en entornos cuyas entradas son imágenes. En la figura 14 se muestra la gráfica de la función ReLU. g(x) = max (0, x) Ec(3) Figura 14. Función de activación ReLU. Imagen adaptada [30] La función sigmoidal es una función de activación no lineal que transforma las entradas a valores (0,1) interpretándose como una probabilidad (Ec(4)). Por lo tanto, los valores altos tienden a 1 y los valores bajos a 0. La función presenta un buen rendimiento en la última capa de la red neuronal [30]. En la figura 15 se muestra la gráfica de la función sigmoidal. g(x) = 1 1+ e−x Ec(4) Figura 15. Función de activación sigmoidal o sigmoide. Imagen adaptada [30] REVISIÓN DE TÉCNICAS Y CONCEPTOS 18 La RNA combina diversas capas que se encuentran interconectadas mediante perceptrones en las que la entrada de una capa se corresponde con la salida de la capa anterior [31]. Como se puede ver en la figura 16, la red neuronal artificial está formada por tres tipos de capas: capa de entrada, capas ocultas y capa de salida. Para entender el funcionamiento de una RNA, hay que introducir el concepto de propagación hacia delante. Método en el cual el conjunto de datos realiza una pasada por cada una de las capas proporcionando una salida. El resultado final es comparado con la etiqueta real y en función del error arrastrado se ajustan de manera progresiva los pesos [32]. Una vez estimado el error, se suele ejecutar un algoritmo de propagación hacia atrás (backropagation) [33] encargado de ajustar los pesos capa a capa hasta alcanzar la primera capa, también conocida como la capa de entrada. El proceso de propagación hacia delante y backropagation es iterativo y se repite hasta adquirir una etiqueta óptima. La importancia de este proceso recae en la ideade proporcionar a las neuronas de las capas ocultas una autonomía para organizarse, y así poder reconocer características a lo largo de la ejecución de iteraciones y entrenamientos. En general, la RNA no requiere de conocimientos previos de la red y sencilla de programar. Un aspecto que se puede considerar negativo es su alto coste computacional, sin embargo, las unidades de procesamiento gráfico (graphics processing units – GPUs) actuales han hecho posible su ejecución [33]. La estructura mencionada resulta útil para redes neuronales artificiales que trabajen en proyectos propensos a errores, como puede ser el caso de aplicaciones de segmentación de imágenes. Figura 16. Estructura básica de una red neuronal. Imagen adaptada [34] Cada neurona de la capa oculta se encuentra conectada con otras y cada una de las interconexiones tiene adjudicada un peso. El número de capas depende de la naturaleza del problema y del tamaño del conjunto de datos de entrada. Además, un número elevado de capas supone una mayor complejidad en el diseño y desarrollo. REVISIÓN DE TÉCNICAS Y CONCEPTOS 19 3.6 Deep Learning Las redes neuronales artificiales se pueden clasificar dependiendo del número de capas ocultas (hidden layer). En el caso de diseñar un modelo compuesto por una sola capa oculta, la red se denomina red neuronal poco profunda o superficial. Si la red está formada un conjunto de capas ocultas, se llama red neuronal profunda (Deep Learning). Las redes basadas en aprendizaje profundo (Deep Learning) son redes neuronales artificiales formadas por un número de capas ocultas en función de las necesidades del problema. Existen diferentes maneras de organizar y clasificar los algoritmos profundos. Un ejemplo de clasificación, como muestra la figura 17, es la propuesta realizada por la empresa estadounidense IBM, distinguiendo entre algoritmos supervisados y no supervisados [35]. En nuestro caso, nos centramos en la red neuronal convolucional (Convolucional Neuronal Network - CNN) ya que la propuesta del proyecto consiste en un algoritmo de red neuronal convolucional. Figura 17. Clasificación de las Redes Neuronales Convolucionales según IBM. Imagen adaptada [35] La CNN es una red neuronal multicapa. La principal diferencia con el resto de las arquitecturas es el empleo del operador convolución en las capas de la red. Este tipo de red presenta una arquitectura que se adapta a la complejidad del problema [34]. A diferencia de clasificadores tradicionales, la CNN permite extraer características sin necesidad de un procesado previo. Las operaciones responsables de la ejecución de este método son las convoluciones [36]. La capa de entrada alimenta la red con datos, las capas profundas realizan las funciones de extracción de características y la capa de salida clasifica. Dependiendo de la capa, las operaciones implementadas son diferentes. Los datos, como puede ser el caso de una imagen, forman una matriz de MxN dimensiones y alimentan a la red por medio de la capa entrada. REVISIÓN DE TÉCNICAS Y CONCEPTOS 20 En las capas ocultas se realizan operaciones específicas en función de las características a extraer. Si los datos son imágenes, las características pueden ser aristas, líneas o contornos entre otras. Las características se pueden obtener a partir de repeticiones de etapas (stages). Una etapa es la combinación de una capa convolucional y una capa de agrupación (pooling) que se encuentran interconectas. En función de la complejidad del problema, la red está compuesta por más o menos etapas [37]. En la capa convolucional, como bien indica su nombre, se realiza la operación convolucional. Esta, como se muestra en la figura 18, se encarga de recorrer el array de datos y aplicar filtros a cada uno de los componentes. La salida de los filtros (kernels) son los mapas de características [34]. Figura 18. Ejemplo de obtención de mapa de características en una convolución a partir de un kernel. Imagen adaptada [38] El rol del operador convolución es fundamental en las capas ocultas, y, por consiguiente, en las redes neuronales convolucionales. Las primeras capas convolucionales de la red obtienen mapas de características simples, como el contorno de las imágenes, y a medida que se pasa por cada una de las sucesivas capas se obtienen características más complejas hasta la adquisición del mapa de características deseado. El operador de la capa de agrupación, como muestra la figura 19, simplifica el mapa de características obtenido de la capa convolucionales quedándose con las características más comunes. Aunque existen diversos métodos para reducir la matriz [37], la figura 16 hace referencia al método agrupación máxima (max-pooling) ya que es el método utilizado en el algoritmo de segmentación. Figura 19. Ejemplo de una estructura capa convolucional y capa pooling aplicada a una imagen REVISIÓN DE TÉCNICAS Y CONCEPTOS 21 Algunos diseños de CNN, dependiendo del problema, introducen entre la capa convolucional y de agrupación una capa intermedia para afinar el mapa de características. En estos casos se usan funciones de activación como operadores de la capa. La función de activación más común empleada es la unidad lineal rectificada (ReLU) [30]. Las redes neuronales convolucionales suelen tener en su diseño un clasificador como capa de salida que se encuentra totalmente conectada con la última capa oculta. Proporciona un vector de K elementos que contiene la probabilidad para cada clase de cualquier dato que se clasifique. El valor de K corresponde con el número de clases que la CNN es capaz de identificar [34]. La capa de salida está formada de tantas neuronas como clases sean necesarias. La figura 20 muestra un ejemplo esquemático de las distintas capas comentadas anteriormente y que forman una red neuronal convolucional. El ejemplo muestra la clasificación de la imagen de un coche entre las clases: coche, camión, bicicleta y tren. El valor P indica la probabilidad, entre 0 y 1, que tiene la imagen de ser cada una de las clases. Figura 20. Esquema de una red neuronal convolucional, Imagen adaptada [34] 3.7 Aspectos importantes de la CNN A continuación, se enumeran una serie de conceptos importantes a la hora de desarrollar un algoritmo basado en redes neuronales convolucionales. • Fases de desarrollo de una CNN Una red neuronal convolucional consta de tres fases de desarrollo: entrenamiento, validación y test. El entrenamiento de la red es el proceso en el cual se generan los pesos (weigths) y se adaptan los parámetros en función de la arquitectura y el tipo de datos que se introducen. REVISIÓN DE TÉCNICAS Y CONCEPTOS 22 La validación es la fase donde la red evalúa los pesos y la precisión a partir de un conjunto de datos diferente al usado durante el entrenamiento. En la fase de prueba o test, la red realiza de manera automática la aplicación en cuestión. En nuestro caso, la red segmenta estructuras craneales de imágenes TAC. • Función de Coste La función de coste es una función que calcula la relación, denominado error, entre el valor esperado y el valor que obtiene la red. Resulta un parámetro imprescindible en la optimización de los diversos parámetros durante el entrenamiento de la CNN. • Optimizador El optimizador colabora en la fase de entrenamiento para reducir la función de coste a partir de la búsqueda de los pesos más adecuados. Para ello, es necesario establecer una tasa de aprendizaje óptima. Este último parámetro es un valor que se encarga de establecer la velocidad con la cual los pesos convergen durante el entrenamiento hacia el objetivo propuesto. Existen una variedad de optimizadores que se emplean en algoritmos basados en redesneuronales convolucionales. Un algoritmo usado habitualmente como elemento que proporciona los pesos de la red es el optimizador Adam [39]. • Métrica La métrica es el parámetro que mide el rendimiento de la red y la calidad de los datos de salida. En nuestro caso, se emplea, como métrica el coeficiente de Sorensen-Dice (DICE) cuya función es comparar la similitud entre dos muestras [40]. • Época La época es un parámetro que se define como el número de veces que se itera el conjunto completo de datos en el algoritmo durante la fase de entrenamiento, de validación o de prueba. El número de épocas se obtiene a partir de un proceso empírico ya que resulta variable en función de las necesidades de cada red. REVISIÓN DE TÉCNICAS Y CONCEPTOS 23 • Tamaño de lote El tamaño del lote (batch size) se define como el número de muestras que procesa la red a la vez durante una fase (de entrenamiento, validación o test). Dicho lo cual, una época se segmenta en lotes. El valor de este parámetro tiene una relación directamente proporcional con el tiempo que tarda el algoritmo en procesar una época. • Dropout El parámetro evita un sobreajuste de los datos durante el entrenamiento. Es una técnica de normalización que se suele usar en algoritmos donde los datos del entrenamiento son muy limitados. 3.8 Tipos de Redes Neuronales Convolucionales Una de las ventajas que presenta la CNN es la posibilidad de adaptar su arquitectura a diversos problemas de la Ciencia de los Datos. Dicho lo cual, el diseño de una red neuronal convolucional no suele partir desde cero, sino que toma como referencia una red preentrenada que resuelva un problema similar. En la actualidad, existen diferentes tipos de redes neuronales convolucionales que suelen adaptarse para afrontar nuevos desafíos en el ámbito de la segmentación y clasificación de imágenes. • AlexNet AlexNet es una red neuronal convolucional creada por Alex Krizhevsky, Ilya Sutskever y Geoffrey E. Hinton que clasifica millones de imágenes en 1000 clases diferentes [41]. La implementación de la red aportó grandes avances en el ámbito del reconocimiento visual de imágenes. • VGG VGG es una red diseñada por Karen Simonyan y Andrew Zisserman que busca estandarizar un modelo de red neuronal profunda para el reconocimiento de imágenes. El desarrollo de la red se encuentra en la literatura [42]. • GoogLeNet La red es un modelo de red neuronal profunda que clasifica imágenes entre más de 1000 clases. La red se encuentra descrita en [43] y los autores emplearon la base de datos ImageNet [44] para su desarrollo. REVISIÓN DE TÉCNICAS Y CONCEPTOS 24 • ResNet La CNN se diseñó en 2016 como propuesta alternativa de modelo de reconocimiento de imágenes al resto de redes ya mencionadas anteriormente. El diseño y desarrollo de la red neuronal está publicado en [45]. • U-Net Olaf Ronneberger, Philipp Fischer y Thomas Brox han diseño una red neuronal convolucional que permite la segmentación y clasificación de imágenes a partir de convoluciones y deconvoluciones que manipulan la resolución de las imágenes [46]. El algoritmo propuesto presenta un diseño adaptado de la red neuronal U-Net. El motivo de esta elección se debe a la buena adaptación de la red a estudios de segmentación y clasificación de estructuras anatómicas, mencionados en el estado de la cuestión (capítulo 4), similares al objetivo principal del proyecto. 3.9 U-Net U-Net es la red neuronal convolucional más conocida para algoritmos de clasificación y segmentación semántica de imágenes médicas (figura 21). La red se desarrolló en el Departamento de Ciencia de Computación de Friburgo y se basa en una red totalmente convolucional (Fully Convolutional Network). La arquitectura está formada por un camino de contracción (left side) y un camino de expansión (right side). El camino de contracción o codificador (encoder) busca reducir la resolución de las imágenes a medida que se va duplicando el número de características obtenidas. El camino de expansión o decodificador (decoder) busca aumentar progresivamente la resolución y tamaño de la imagen a partir de interpolaciones. El último paso del camino de contracción coincide con el primer paso del camino de extracción. Se puede denominar “cuello” y tiene un procesamiento específico al problema en cuestión. Esta parte de la U-Net es la encargada de obtener las características “más profundas” y complejas. La capa de entrada de la U-Net original se alimenta de una secuencia de imágenes en escala de grises por medio de un canal. La capa de salida de la U-Net es una operación convolución que mapea los canales del mapa de características al número de clases deseadas. REVISIÓN DE TÉCNICAS Y CONCEPTOS 25 Durante el camino por los diferentes trayectos, se realizan diversas operaciones como convoluciones, submuestreo, deconvoluciones o concatenaciones. La explicación detallada de la arquitectura se encuentra publicada en [46]. Es una red flexible y adaptable a cualquier problema de segmentación de imágenes médicas. Figura 21. Arquitectura U-Net original desarrollada por Olaf Ronneberger, Philipp Fischer y Thomas Brox. Imagen adaptada [46] 3.10 Segmentación semántica de imágenes médicas La segmentación de imágenes se define como el proceso de dividir la imagen en regiones o grupos de píxeles. Más concretamente, se describe como una clasificación que asigna a cada píxel una categoría en función de sus características. Las categorías se identifican con números enteros denominados etiquetas (labels). A nivel de aplicación, resulta una técnica de procesado imprescindible a la hora de realizar diagnósticos ya que proporciona una máscara muy representativa de los datos que componen las imágenes. Existen diferentes tipos de segmentación, sin embargo, se ha escogido la técnica de segmentación semántica para el algoritmo propuesto. La segmentación semántica, como muestra la figura 22, asigna etiquetas a partir de algoritmos de procesado [47]. REVISIÓN DE TÉCNICAS Y CONCEPTOS 26 Figura 22. Ejemplo de segmentación de una imagen en persona y fondo. Imagen adaptada [47] ESTADO DE LA CUESTIÓN 27 Capítulo 4 Estado de la cuestión En la actualidad, existe una amplia variedad de estudios de algoritmos de segmentación de estructuras anatómicas de diferentes partes del cuerpo basadas en técnicas de aprendizaje profundo. El departamento de Diagnóstico de Imágenes y Medicina Nuclear de la Universidad de Kyoto de Japón propone un algoritmo de segmentación automático de imágenes TAC de huesos de todo el cuerpo a partir de una red neuronal convolucional [48]. Dicho lo cual, los autores han adaptado la arquitectura de la red U-Net desarrollada por Olaf Ronneberger, Philipp Fischer y Thomas Brox [46]. Para validar la precisión, han empleado tres conjuntos de datos diferentes, técnicas de aumento de datos y han comparado resultados con una umbralización tradicional. Los autores concluyen que los resultados más favorables son obtenidos a partir del empleo de técnicas de aumento de datos y con el uso del coeficiente DICE como métrica de entrenamiento y validación. El valor del coeficiente DICE obtenido, para los tres conjuntos de datos, ha sido de 0.979 ± 0.004, 0.946 ± 0.009 y 0.954 ± 0.007 respectivamente. Un grupo de investigadores de diferentes universidades de Suecia y Dinamarca proponen un algoritmo de segmentación automática de 49 tipos de hueso de diferente tamaño y grosor [49]. Los autores han diseñado una red neuronal totalmente convolucional cuya precisión ha sido comparada con una segmentación manual realizada por expertos en radiología y medicina nuclear. La métrica que se ha empleado para realizaruna valoración objetiva ha sido el coeficiente DICE. El algoritmo propuesto ha reportado, para el conjunto de datos, unos resultados con una precisión de: 0.84 para la séptima costilla derecha, 0.86 para la séptima vértebra torácica, 0.88 para el sacro o 0.83 para el esternón. Varios departamentos de la Universidad de Linköping y el hospital universitario de Karolishka han colaborado en la implementación de un algoritmo de segmentación de huesos para la representación en 3D del área del abdomen y la pelvis [50]. El algoritmo que proponen es una adaptación de la arquitectura 3D U-Net y el conjunto de datos está constituido por imágenes TAC de diferente procedencia. Los resultados obtenidos han mostrado un coeficiente DICE por slice de 0.9620 ± 0.027 y 0.9626 ± 0.033 en los respectivos conjuntos de datos. ESTADO DE LA CUESTIÓN 28 Jordi Minnema y otros [51], han desarrollado una segmentación automática de tomografía axial computarizada de estructuras craneales para la reconstrucción en 3D de las propias estructuras. El modelo de segmentación que propone está basado en técnicas de CNN y adaptado de la solución expuesta por N. Aldenborgh como segmentación del cerebro [52]. Las capas ocultas de la red están formadas por una secuencia de bloques o etapas compuestas por una capa convolucional, capa de activación, capa de normalización y capa de agrupación. Las máscaras para el entrenamiento han sido obtenidas a partir de la técnica de umbral global combinado con correcciones manuales realizadas en un software de edición. Los TAC segmentados de manera automática presentan un coeficiente DICE de similitud de 0.92 ± 0.04 con las máscaras semi-automáticas. Martin Torriani y otros [53], proponen una red neuronal convolucional para la segmentación de imágenes TAC de los distintos tejidos que componen la pelvis. Los resultados de las segmentaciones de la red son comparados con una segmentación semiautomática en la cual se emplean técnicas de umbralización supervisadas por un especialista en segmentación de imágenes. La red neuronal es una adaptación de la arquitectura U-Net en la cual la capa de salida clasifica las imágenes en 6 clases de tejidos de la pelvis. Entre los tejidos estudiados, los autores proporcionan una segmentación automática con un coeficiente DICE de 0.97 para músculo o 0.92 para tejido óseo. Francesco La Rosa expone en su estudio un algoritmo de segmentación automática de huesos a partir de imágenes TAC y basándose en técnicas de aprendizaje profundo [54]. La red proporciona una máscara segmentada de la imagen original e indica el tipo de hueso que es en función de la clasificación. La red neuronal convolucional que propone es una red adaptada de la U-Net original [46] en la que se ha modificado la entrada a la resolución del conjunto de datos y la salida a un modelo que clasifique las imágenes entre 6 tipos de huesos (columna vertebral, cadera, esternón, costilla, sacro y femoral). El algoritmo presenta una precisión de 0.91467 para columna vertebral, 0.96160 para cadera, 0.95506 para esternón, 0.98573 para costilla, 0.96617 para sacro, 0.98404 hueso femoral y 0.96153 para otros huesos segmentados. Los algoritmos basados en técnicas de aprendizaje profundo también han proporcionado resultados muy precisos en segmentación de múltiples órganos dentro de una misma imagen [55]. Una vez enumerado un conjunto de algoritmos de segmentación de diferentes estructuras anatómicas del cuerpo humano, se observa una tendencia a investigar y desarrollar nuevas técnicas de segmentación basados en técnicas de aprendizaje profundo y más concretamente, en redes neuronales convolucionales. MATERIALES Y MÉTODOS 29 Capítulo 5 Materiales y métodos A lo largo del capítulo se enumeran los diversos métodos y materiales empleados para el desarrollo del algoritmo propuesto: la segmentación de estructuras craneales a partir de técnicas de aprendizaje profundo. 5.1 Conjunto de datos El estudio del algoritmo de segmentación incluye un conjunto de datos formado por 6 TAC de cabeza. Los TAC, obtenidos a partir de un tomógrafo Aquilon de Toshiba, han sido cedidos por el departamento de Radiología del Hospital Gregorio Marañón de Madrid. Los parámetros utilizados en la tomografía axial computarizada están resumidos en la Tabla 1. Para el desarrollo del algoritmo, se han utilizado las imágenes bidimensionales (2D) del corte axial. Las mismas son visualizadas por el software MicroDicom [22] ya que muestra las imágenes de manera ordenada permitiendo conocer a qué altura de la cabeza corresponde cada imagen. Las imágenes 2D presentan una resolución de 512x512 píxeles. Tabla 1. Parámetros del tomógrafo MATERIALES Y MÉTODOS 30 Las máscaras de las imágenes, como se pueden apreciar en la figura 23, se han obtenido a partir de una segmentación manual realizada mediante el software de edición GIMP [56]. En primer lugar, se ha procedido a realizar el contorno de las estructuras óseas y posteriormente se ha realizado una máscara distinguiendo entre estructura ósea y fondo. Imagen original Contorno de hueso Máscara manual Figura 23. Segmentación manual de slices 67, 90, 112 y 137 del paciente 5 MATERIALES Y MÉTODOS 31 5.2 Partición del conjunto de datos Los 6 TAC se dividen en tres conjuntos de datos: datos de entrenamiento, de validación y de pruebas o test. Los datos de entrenamientos están formados por 4 TAC compuesto por 277 imágenes de 2D de corte axial y sus respectivas máscaras manuales. El conjunto de datos de entrenamiento se usa para alimentar el algoritmo de segmentación durante el entrenamiento de la red. Los datos de validación están formados por 1 TAC compuesto por 65 imágenes 2D de corte axial y sus respectivas máscaras manuales. El conjunto de datos de validación se emplea para validar la precisión del entrenamiento una vez que haya terminado. Los datos de prueba están formados por 1 TAC compuesto por 70 imágenes 2D de corte axial y sus respectivas máscaras manuales. Las imágenes originales se introducen en la red para ser segmentadas. Las máscaras manuales se comparan con los resultados obtenidos de la segmentación automática del TAC para obtener una valoración final de la precisión de la red. 5.3 Preprocesado digital de conjunto de datos Las imágenes de corte axial se encuentran en formato DICOM y los valores de los píxeles se encuentran codificados en 12 bits. Por lo tanto, los valores varían entre -2048 (fondo) y 2047 (hueso). Sin embargo, necesitamos extraer el conjunto de datos en un formato estándar de imágenes. Para ello, se ha escogido el formato Gráficos de Red Portátiles, png, que exporta las imágenes desde el MicroDicom (figura 24) a partir de un algoritmo de compresión sin pérdidas. El protocolo dispone de diversas codificaciones, pero en nuestro caso consiste en una codificación de 8 bits entre 0 y 255. Figura 24. Exportar imágenes del corte axial en formato png desde Microdicom MATERIALES Y MÉTODOS 32 La segmentación manual se realiza a partir de imágenes en formato png que alimentan el algoritmo de segmentación automático. Previamente, dichas imágenes han sido adaptadas a niveles de grises. Alguna de las imágenes 2D de los pacientes presentan artefactos detectados durante la tomografía axial computarizada. En ese caso, se eliminan los artefactos de las imágenes de manera manual, como se muestra en la figura 25, mediante el programa de edición. Debido a las limitaciones de la GPU del ordenador y la arquitectura del algoritmo, que se comenta posteriormente, es necesario realizar un diezmado para reducir el tamaño de las imágenes y las máscaras manuales a una resolución de 128x128. Esta técnica implica eliminar píxeles de la imagen conllevando la pérdida de información que, en nuestrocaso, puede ser tejido óseo. Se muestra en la figura 26 un ejemplo de imagen y su correspondiente máscara de un TAC, una vez aplicado el preprocesado, que se introduce en el algoritmo durante el entrenamiento. Cabe mencionar que previamente, se procede a realizar una normalización de la amplitud de las imágenes y máscaras para tener valores comprendido entre 0 y 1. Figura 25. Imagen exportada de MicroDicom en formato png (a), imagen editada con GIMP en formato png (b) Figura 26. Imagen preprocesada (a), máscara preprocesada (b) MATERIALES Y MÉTODOS 33 5.4 Entorno de trabajo y herramientas computacionales Tanto el despliegue del entorno virtual como el desarrollo del código están implementados en Python 3.6.13 [57]. Resulta imprescindible desplegar un entorno estable para garantizar un correcto desarrollo del software y el máximo rendimiento de los recursos computaciones. En nuestro caso, se ha creado un entorno virtual en un Windows 10 que corre en un ordenador HP con procesador i7, una Memoria de Acceso Aleatorio, RAM, de 16 GB y una tarjeta gráfica NVIDIA GeForce GTX 1050. Se ha optado por ejecutar las librerías de deep learning sobre un entorno virtual nuevo, en vez de sobre el entorno base de Windows, para proporcionar un espacio dedicado de manera íntegra al desarrollo del proyecto. Un entorno virtual dedicado a trabajar con la unidad de procesamiento del ordenador (GPU) requiere la instalación de Cuda Toolkit [58] y CuDNN [59]. CUDA es una plataforma de computación en paralelo desarrollada por NVIDIA que busca explotar los recursos y ventajas de las tarjetas gráficas. CuDNN es una librería para técnicas de aprendizaje profundo que permite la aceleración de Tensorflow [60] y Keras [61]. Un requisito necesario es la compatibilidad de versiones entre la plataforma, la librería de NVIDIA y el controlador (driver) de la tarjeta gráfica. Las versiones dependen de la GPU que disponga el dispositivo en cuestión. En nuestro caso y siguiendo las recomendaciones del fabricante, las versiones instaladas han sido: • Controlador NVDIA de la tarjeta gráfica: 466.47 • Cuda Toolkit: 11.3 • CuDNN: 8.2.0 Anaconda, una distribución libre y abierta para lenguajes como Python [62], ha sido empleada como interfaz para crear y trabajar con el entorno (figura 27). Se ha utilizado la versión 3 de anaconda. Figura 27. Interfaz de línea de comandos de Ananconda MATERIALES Y MÉTODOS 34 El código del algoritmo de segmentación ha sido implementado sobre Jupyter Notebook, un entorno de desarrollo extensible, modular e interactivo basado en web y celdas de trabajo [63] (figura 28). Figura 28. Entorno Jupyter Notebook para desarrollar el código del algoritmo Sobre la librería Keras trabaja el código del algoritmo de aprendizaje profundo. Sin embargo, requiere de Tensorflow para la ejecución de las instancias. En nuestro caso, Tensorflow ejecuta el código sobre la GPU del ordenador. 5.5 Librerías empleadas Las librerías empleadas en el entorno de trabajo son las siguientes: • Python: 3.6.13 • Tensorflow: 2.1.0 • Keras: 2.3.1 • Numpy: 1.19.2. Análisis numérico y aritmético. • Matplotlib: 3.3.4. Generación de gráficos. • Imageio: 2.9.0. Interfaz para leer y escribir archivos de imágenes. • OpenCV: 4.5.2.52. Análisis y tratamiento de imágenes. • Pillow: 8.2.0. Edición de imágenes en Python. MATERIALES Y MÉTODOS 35 5.6 Método propuesto El método propuesto es un algoritmo automático de segmentación de estructuras craneales basado en técnicas de aprendizaje profundo El algoritmo presenta un modelo adaptado de la red original U-Net [46] basado en redes neuronales convolucionales. El propósito de la red, como se muestra en la figura 29, consiste segmentar y clasificar una imagen 2D de corte axial entre dos clases: hueso y fondo. La capa de entrada del algoritmo se alimenta de imágenes de resolución 128x128 con valores de nivel de grises, y la red neuronal convolucional proporciona las máscaras con las imágenes segmentadas de 128x128 píxeles en la capa de salida. Figura 29. Segmentación de una imagen 2D del corte axial de una Tomografía Axial Computarizada 5.7 Arquitectura de la red La arquitectura y la estrategia para el desarrollo del algoritmo están diseñadas a partir de una red neuronal convolucional propuesta en [54] y de una red U-Net adaptada para segmentar la rodilla [64]. La arquitectura, como muestra la figura 30, tiene una forma simétrica en forma de U y está compuesta por dos caminos: camino de contracción y camino de expansión. Para entender mejor la arquitectura del algoritmo se define un concepto que denominamos etapa. Una etapa es un conjunto de capas ocultas formadas por una capa de convolución con kernel 3x3 y una capa de activación con operador la función ReLu [30]. El camino de contracción está constituido por cinco bloques que reducen la resolución de las imágenes de 128x128 a 8x8. Los tres primeros bloques están formados por dos etapas y una operación de agrupación máxima de 2x2 para reducir el tamaño. El cuarto bloque tiene dos etapas, un dropout y una agrupación máxima de 2x2. El quinto bloque, correspondiente con el primer bloque del camino de expansión, está constituido por dos etapas y un dropout. MATERIALES Y MÉTODOS 36 El camino de expansión se basa en cinco bloques que realizan una serie de interpolaciones que aumentan la resolución de las imágenes de 8x8 al tamaño de entrada de la imagen, en este caso 128x128. El primer bloque corresponde con el último bloque del camino de contracción más la aplicación de un muestro ascendente (upsampling) para aumentar el tamaño. Los tres siguientes bloques están formados por la misma estructura: una operación de concatenación, dos etapas y un muestro ascendente. El último bloque consta de una concatenación, tres etapas y otra etapa adaptada a la salida. La etapa adaptada a la salida está formada por una capa convolucional con kernel 1x1 seguida de una capa de activación. El operador de activación es la función sigmoide [30] ya que la salida esperada es una clasificación entre dos clases. Cuando se menciona el muestreo ascendente, se hace referencia al aumento de tamaño y la aplicación de una función ReLu a la salida del muestro. Figura 30. Arquitectura del algoritmo propuesto. Imagen adaptada [46] MATERIALES Y MÉTODOS 37 5.8 Detalles de la red La capa de entrada tiene que alimentarse de imágenes 128x128 píxeles por limitación de la GPU. Para tamaños superiores, la GPU reporta un error, figura 31, mostrando que el procesado de las imágenes no es soportado. Figura 31. Error al intentar introducir en el algoritmo imágenes con una resolución de 256x256 Durante el entrenamiento y validación se introducen las máscaras manuales junto con las imágenes originales con el propósito de adaptar la red al problema en cuestión y evaluar la precisión. Las máscaras manuales alimentan a la red con la misma resolución que las imágenes originales, 128x128 píxeles en formato de grises. La capa de salida presenta la función de activación sigmoide para proporcionar la clasificación entre hueso y fondo. El algoritmo emplea el optimizador Adam para actualizar los pesos durante el entrenamiento. La tasa de aprendizaje asignada para el optimizador es de 0.0001. La métrica usada para validar la precisión es el coeficiente DICE que compara la similitud entre la imagen original y la máscara manual. La función de pérdidas definida para el algoritmo tiene una relación inversamente proporcional al coeficiente DICE (𝐷). El algoritmo ha sido entrenado usando 50 épocas y un tamaño del lote de 8. El tamaño del lote de la prueba es de 6. 5.9 Procesado final Las máscaras son extraídas del algoritmo con una resolución de 128x128 píxeles. Las imágenes originales se encuentran conuna resolución de 512x512, por lo tanto, la adaptación de las máscaras a esa resolución requiere de alguna técnica de procesado que incremente el tamaño. Un ejemplo puede ser una interpolación bicúbica. Sin embargo, hay que tener en cuenta que la resolución es afectada cuando se incrementa por cuatro la resolución de la imagen. RESULTADOS 39 Capítulo 6 Resultados Alguno de los parámetros mencionados en el apartado 5.8 han sido obtenidos mediante un proceso empírico. Para ello, se comprueba el histórico de la función de pérdidas (model loss) y la precisión (model accuarcy) durante el entrenamiento (train) y validación (validation) del algoritmo. La precisión se mide con el coeficiente DICE (Dice function). En primer lugar, se pretende obtener el valor de la tasa de aprendizaje a introducir en el optimizador Adam, (figuras 32 y 33). Para la prueba se ha fijado en 120 el número de épocas. Figura 32. Entrenamiento y validación con 120 épocas y tasa de aprendizaje 0.001 Figura 33. Entrenamiento y validación con 120 épocas y tasa de aprendizaje 0.0001 RESULTADOS 40 La tabla 2 indica los valores de precisión y función de pérdidas obtenidas en función de la tasa de aprendizaje. El valor escogido es 0.0001 ya que presenta mejores resultados. Tabla 2. Coeficiente DICE y pérdidas en función de la tasa de aprendizaje Posteriormente, es necesario obtener el número óptimo de épocas para realizar un entrenamiento adecuado (figuras 34, 35, 36 y 37). Figura 34. Entrenamiento y validación con 20 épocas Figura 35. Entrenamiento y validación con 50 épocas RESULTADOS 41 Figura 36. Entrenamiento y validación con 90 épocas Figura 37. Entrenamiento y validación con 120 épocas La tabla 3 indica los valores de precisión y función de pérdidas obtenidas en función del número de épocas. Para elegir el número adecuado de épocas es necesario comprobar que la curva exponencial de la precisión del entrenamiento se mantiene prácticamente constante en un valor cercano a 0. En nuestro caso, se escoge 50 épocas ya que un valor muy alto de épocas puede provocar un sobreentrenamiento. Un valor óptimo es escoger un valor intermedio de la curva de la precisión cuando el coeficiente DICE es prácticamente constante. Además, hay que tener en cuenta el tiempo de ejecución y valorar si un mayor tiempo entrenando proporciona un incremento notable de la precisión. RESULTADOS 42 Tabla 3. Coeficiente DICE y pérdidas en función del número de épocas Una vez finalizado el proceso empírico, se realiza el entrenamiento y validación con los siguientes parámetros: • Tasa de aprendizaje para optimizador Adam: 0.0001 • Número de épocas: 50 • Tamaño de lotes de entrenamiento: 8 • Tamaño de lotes del test: 6 • Resolución de las imágenes: 128x128 • Resolución de las máscaras de entrenamiento y validación: 128x128 • Métrica del modelo: coeficiente DICE El tiempo de ejecución del entrenamiento y la validación es de 15 minutos. A continuación, se ejecuta la fase de prueba o test del algoritmo. El algoritmo segmenta el TAC de prueba en 10 segundos. Las figuras 38, 39, 40 y 41 muestran: • Las imágenes originales que se introducen en la capa de entrada del algoritmo. • Las imágenes segmentadas (máscaras automáticas) obtenidas del clasificador de la red. • Las máscaras manuales. Las máscaras manuales son imágenes obtenidas a partir de una segmentación manual mediante un programa de edición. Las imágenes segmentadas tienen una resolución 512x512 y han sido exportadas en formato png y en niveles grises. Sin embargo, se aplica el diezmado a las máscaras manuales para alimentar la red durante el entrenamiento y la fase de validación. RESULTADOS 43 Figura 38. Imágenes y máscaras (automáticas y manuales) de los slices 0, 10, 15 y 20 del TAC segmentado Máscara automática Imagen original Máscara manual RESULTADOS 44 Figura 39. Imágenes y máscaras (automáticas y manuales) de los slices 25, 31,34 y 38 del TAC segmentado Máscara automática Imagen original Máscara manual RESULTADOS 45 Figura 40. Imágenes y máscaras (manuales y automáticas) de los slices 42 ,50, 52 y 54 del TAC segmentado Máscara automática Imagen original Máscara manual RESULTADOS 46 Figura 41. Imágenes y máscaras (manuales y automáticas) de los slices 59, 61, 64 y 67 del TAC segmentado Máscara manual Máscara automática Imagen original RESULTADOS 47 Posteriormente, se realiza una prueba aplicando un enventanado, durante el preprocesado, al conjunto de datos de pruebas para comprobar si la segmentación de los huesos etmoidales y maxilar mejora. El enventanado realizado sobre las imágenes originales (figura 42): • Nivel de ventana (window level): 170 • Ancho de ventana (window width): 180 Figura 42. Imagen original e imagen enventanada Se introducen las imágenes enventanadas al algoritmo y las figuras 43 y 44 muestran los resultados de la segmentación. Imagen original Imagen enventanada RESULTADOS 48 Figura 43. Imágenes enventanadas y máscaras (automáticas y manuales) de los slices 0, 15, 20 y 25 del TAC segmentado Imagen enventanda Máscara automática Máscara manual RESULTADOS 49 Figura 44. Imágenes enventanadas y máscaras (manuales y automáticas) de los slices 34, 42, 52 y 61 del TAC segmentado Imagen enventanda Máscara automática Máscara manual RESULTADOS 50 Después, se realiza una valoración objetiva de la precisión del algoritmo comparando la similitud entre las máscaras automáticas y las máscaras manuales. Para ello, empleamos el coeficiente DICE como métrica (tabla 4). La figura 45 muestra parte del código que calcula el coeficiente DICE entre el TAC segmentado manual y el TAC segmentado automáticamente a partir de las imágenes originales enventanadas. Figura 45. Coeficiente DICE obtenido Las máscaras automáticas enventanadas hacen referencia a las imágenes que segmenta el algoritmo a partir de las imágenes originales con enventanado. De la misma manera, las máscaras automáticas no enventandas hacen referencia a las imágenes segmentadas por la red cuando se alimenta de imágenes sin enventanado. Tabla 4. Coeficiente DICE obtenido en la fase test o prueba El algoritmo propuesto para la segmentación de imágenes TAC craneales tiene una precisión de 0.883±0.004. RESULTADOS 51 Finalmente, se lleva a cabo la reconstrucción en 3D del TAC de prueba segmentado a partir de las máscaras automáticas enventanadas (figura 46). La reconstrucción 3D se hace con el software 3DSlicer [65]. Figura 46. Reconstrucción 3D del TAC segmentado por el algoritmo propuesto DISCUSIÓN 53 Capítulo 7 Discusión A la hora de valorar los resultados, hay que mencionar que el conjunto de datos, utilizados durante las fases de desarrollo, ha sido muy limitado en comparación con otras técnicas de segmentación basadas en aprendizaje profundo. Los autores proponen un algoritmo de segmentación de hueso a partir del uso de más de 20.000 imágenes bidimensionales [41]. La red neuronal convolucional para segmentación de 6 huesos distintos del cuerpo usa un conjunto de datos de entrenamiento formado por 21 TAC, 15653 imágenes [47]. La limitación del conjunto de datos influye en la calidad de los resultados proporcionados por el modelo y más teniendo en cuenta la complejidad de segmentar ciertas estructuras anatómicas de cráneo como pueden ser los huesos etmoidales o los maxilares a cierta altura de la cabeza. Los resultados obtenidos indican que existe una pérdida de resolución de la imagen durante el proceso de segmentación. La figura 47 muestra una diferencia considerable entre la resolución de la máscara obtenida
Compartir