• No se han encontrado resultados

Implementación de técnicas de segmentación de instancias basadas en aprendizaje máquina

N/A
N/A
Protected

Academic year: 2023

Share "Implementación de técnicas de segmentación de instancias basadas en aprendizaje máquina"

Copied!
92
0
0

Texto completo

(1)

GRADUADO EN INGENIER Í A DE SISTEMAS DE TELECOMUNICACI Ó N

Implementación de técnicas de segmentación de instancias basadas en aprendizaje máquina

Oleksandr Kovalyk

Director: Juan Morales Sánchez

Departamento de Tecnologías de la Información y las Comunicaciones

7 de julio de 2020

(2)

Oleksandr Kovalyk

Agradecimientos

Con este proyecto pongo fin a una de las etapas más importantes de mi vida y quiero agra- decer a todos aquellos que me han ayudado a llegar hasta aquí.

En primer lugar, gracias a Dios por haberme guiado a lo largo de mi carrera y por haberme levantado en los momentos de dificultad.

En segundo lugar, gracias a mis padres por haberse atrevido salir de su país en busca de una vida mejor. Por enseñarnos que la moneda más preciada es la buena educación y por su gran paciencia.

En tercer lugar, gracias a todos mis profesores. A todos los profesores de primaria de la es- cuela ucraniana, de la escuela española, a los profesores de secundaria y a los profesores de la universidad. Querría agradecer de manera especial a Juan Morales Sánchez por haber- me dado la oportunidad de introducirme al campo del aprendizaje máquina y por haberme guiado en mi Trabajo Fin de Estudios. A todos ellos gracias por haber contribuido a mi edu- cación como persona y como profesional.

Por último, quisiera agradecer a todos los autores de los libros que me han ayudado a com- prender conceptos del campo aprendizaje máquina. A la empresa Matterport que propor- cionó la implementación del algoritmo con licencia libre. Y a todos aquellos que ayudaron en la corrección de este documento.

(3)

Este trabajo consiste en la aplicación del algoritmo Mask R-CNN [1] a dos bases de datos de imágenes de retinografías con el fin de automatizar el proceso de segmentación del disco óptico y la excavación óptica. Mask R-CNN es un algoritmo de aprendizaje máquina lanzado en 2018 por los investigadores de “Facebook”: Kaiming He, Georgia Gkioxari,Piotr Dollár y Ross Girshick. Mask R-CNN es un algoritmo capaz de dada una imagen: localizar el objeto de interés (disco óptico o excavación óptica), clasificar el objeto encontrado y segmentarlo. Se hará un breve recorrido histórico dando una breve pincelada sobre el funcionamiento cada uno de los algoritmos de lo cuales deriva Mask R-CNN. Hablaremos de algoritmos como:

R-CNN[2], Fast R-CNN[3] y Faster R-CNN[4]. Se explicará el funcionamiento de cada de las partes que compone el algoritmo Mask R-CNN tales como: la red FPN (Feature Pyramid Network), la red RPN (Region Proposal Network), la red ROI (Region of Interest), las redes FC (Full Connected Network) y la rama convolucional. También se hablará brevemente sobre la implementación del algoritmo: por quien está hecha ésta, las funciones que implementa y las modificaciones que ha hecho el alumno para el funcionamiento del algoritmo en las bases de datos deseadas. Las dos bases en las que se realizaran las pruebas son: la base de datos de Drions [5] que es una base de datos de 110 imágenes de retinografías con solo una instancia por imagen (disco óptico) y la base de datos de Rim-one [6] que es una ba- se de datos de 159 imágenes de retinografías con dos instancias por imagen (disco óptico y excavación óptica). Las pruebas que se realizaran en ambas bases de datos constaran de modificar los parámetros del algoritmo. Con el fin de facilitar la comprensión del trabajo, los parámetros se clasificaran acorde al área que del algoritmo que modifiquen. Ambas bases de datos, para las pruebas que se van a realizar, quedarán dividas en 3 partes: entrenamien- to, validación y test. En cada parte se realizaran las mediciones de error correspondientes.

El principal objetivo de este trabajo es averiguar si el algoritmo es capaz de auxiliar a los ex- pertos del campo de la medicina, en la tediosa tarea de la segmentación de instancias, en este caso del disco óptico y la excavación óptica. La labor principal del alumno es modificar los parámetros del algoritmo para conseguir los mejores resultados para cada una de las dos bases de datos en las que se harán las pruebas. Además de adquirir experiencia en el cam- po de aprendizaje máquina, concretamente en el área de visión artificial. Los test realizados en cada uno se presentarán en formato de tabla, además de algunas imágenes que ilustren las características del rendimiento del algoritmo. Una vez finalizadas todas las pruebas se harán una serie de correcciones en una de las dos base de datos, tales como: correcciones de iluminación, técnicas de aumento, técnicas de filtrado de valores atípicos. Por último se presentarán las conclusiones del trabajo acorde de los resultados obtenidos.

(4)

Índice general

1. Introducción 1

2. Antecedentes 3

2.1. Recorrido histórico . . . 3

2.1.1. R-CNN . . . 3

2.1.2. Fast R-CNN . . . 3

2.1.3. Faster R-CNN . . . 4

2.2. Mask R-CNN . . . 5

2.2.1. FPN . . . 6

2.2.2. RPN . . . 7

2.2.3. ROI Align . . . 9

2.2.4. Capas FC . . . 10

2.2.5. Mask . . . 11

2.3. Implementación . . . 11

3. Desarrollo y métodos 14 3.1. Bases de datos . . . 14

3.2. Organización de los tests . . . 15

3.3. Evaluación de los tests . . . 16

4. Evaluación y resultados 20 4.1. Número de capas a entrenar . . . 20

4.2. CNN . . . 22

4.3. RPN . . . 24

4.4. ROI . . . 29

4.5. Parámetros de regularización . . . 35

4.5.1. Tamaño de la mini-máscara . . . 35

4.5.2. Tamaño del lote . . . 36

4.5.3. Regularización . . . 37

4.5.4. Número de épocas . . . 40

(5)

4.6. Correcciones a la base de datos de Rim-one . . . 41

4.6.1. Aumento . . . 42

4.6.2. Correcciones de iluminación . . . 45

4.6.3. Reducción de la base de datos . . . 48

4.7. Resultados finales . . . 53

5. Conclusión 61 5.1. Competencias/conocimientos adquiridas por el alumno . . . 61

5.2. Conclusiones del proyecto . . . 63

5.3. Lineas Futuras . . . 66

A1. Plataforma de pruebas 67 A1.1. Características de la máquina de pruebas . . . 67

A1.2. Versión de librerías . . . 67

A2.Valor de los parámetros del algoritmo 69

Bibliografía 86

(6)

Oleksandr Kovalyk

Abreviaturas

CNN Covolutional Neural Network (Red Neuronal Con- volucional)

d.H Distancia Hausdorff

FC Full Connected Network (Red Enteramente Conec- tada)

FPN Feature Pyramid Network (Red Piramidal de carac- terísticas)

GD Gradient Decent (Descenso del Gradiente)

NMS Non-Maximum Suppression (No-Máxima Supre- sión)

R-CNN Region Covolutional Neural Network (Redes Neuro- nales Regionales Convolucioneles)

ROI Region of Interest (Región de Interés)

RPN Region Proposal Network (Red de Propuestas Re- gionales)

SL Selective search (Búsqueda Selectiva)

SVM Support Vector Machine (Máquina Vector Soporte) UoI Union of intersection (Unión de la intersección)

(7)

-Nunca se podrá crear una máquina que sustituya la mente humana, ésta hace muchas cosas que la máquina no podrá hacer.

“-Insiste que hay algo que la máquina no puede hacer. Si me dice con precisión qué es ese algo que la máquina no puede hacer, entonces siempre podre hacer una máquina que haga precisamente eso.

—Princeton 1948, John von Neumann Evidentemente la máquina no va a sustituir a la mente humana, no sería ético, no es el propósito del aprendizaje máquina. Su propósito es más bien el de asistir al ser humano para dotarlo de más precisión, rapidez y eficiencia a la hora de realizar sus tareas. Una de estas tareas es la visión humana. Reconocer patrones en las imágenes, hacer observaciones, es algo que el ser humano ha estado haciendo durante mucho tiempo. En el área de la medicina, donde el médico al ver ecografías, radiografías o retinografías tiene que deducir (a partir de lo observado) un diagnostico, no es tarea fácil y más si el número de pacientes es alto. Un alto número de imágenes para procesar en una cantidad de tiempo limitado por la enfermedad que pueden padecer estos pacientes ha supuesto la necesidad de acelerar esta labor. ¿Y si aceleráramos ésta lectura de las imágenes a la velocidad a la cual una calculadora devuelve un calculo complejo? ¿Podemos? Los nuevos algoritmos del área del aprendizaje máquina tienen algo que decir al respecto.

Este trabajo pretende estudiar si a día de hoy se puede prestar ayuda por medio de los al- goritmos de aprendizaje máquina al campo de la medicina, concretamente al área de la oftalmología. La tarea del algoritmo consistiría en la segmentación1del disco óptico y ex- cavación en retinografías. Este trabajo hasta ahora se ha hecho por los expertos a mano.

Uno de los fines de ésta labor es el diagnóstico del glaucoma. En esta tarea en concreto es de vital importancia hacer un diagnóstico rápido ya que el glaucoma se vuelve intratable en sus fases tardías. El glaucoma se detecta mediante la segmentación del disco óptico y la excavación óptica. Comparando diferencia de ambas partes (disco óptico y excavación).

Por lo tanto el hecho de automatizar esta tarea, supondría poder hacer más pruebas en un

1Segmentación es el proceso de localización y clasificación de un objeto o zona de interés. La clasificación consiste en asignar a cada píxel una etiqueta de la clase a la que pertenece.

(8)

Oleksandr Kovalyk

periodo de tiempo más corto, además de un alivio en la carga del trabajo del oftalmólogo.

Ésto desembocaría en una mejora importante de la productividad del experto, así como en la salud y seguridad de los pacientes que la pudiesen padecer.

El algoritmo candidato a realizar este cometido será Mask R-CNN [1], un algoritmo presen- tado en 2017 por los investigadores de “Facebook”, Kaiming He, Georgia Gkioxari, Piotr Dollár y Ross Girshick. El trabajo consistirá en comprobar si este algoritmo es capaz de dar resul- tados relativamente buenos, de manera que al experto médico le sirva como herramienta de trabajo. Para ello se han organizado una serie de pruebas, que consistirán en modificar los parámetros de la implementación del algoritmo, con el objetivo de conseguir los me- jores resultados en dos bases de datos “Drions”[5] y “Rim-one”[6]. El trabajo principal se centrara en modificar los parámetros del algoritmo, pero antes de pasar a la sección de los resultados se hará un tour explicando el origen del algoritmo, su funcionamiento (sin entrar en demasiado detalle) y la implementación del mismo.

(9)

En ésta sección se hablará brevemente del funcionamiento del algoritmo, de qué algoritmos deriva y de su implementación.

2.1. Recorrido histórico

Mask R-CNN se basa en el algoritmo Faster R-CNN que deriva del algoritmo Fast R-CNN y que este a su vez deriva de R-CNN.

2.1.1. R-CNN

En 2013 se propuso el modelo del algoritmo R-CNN “Regions with CNN”. Su propósito es encontrar un el objeto de interés en una imagen. Esto se consigue con el uso de una red CNN[2] y un algoritmo llamado “Selective Search” (SL) [7] búsqueda selectiva. El principio de funcionamiento de R-CNN es muy sencillo. SL propone regiones de interés que tienen mayor probabilidad de contener al objeto. La red CNN extrae las características de éstas regiones y se las pasa a dos algoritmos “Support Vector Machine” (SVM)[8] Máquina Vector Soporte para clasificar el objeto encontrado (persona, perro etc.) y al algoritmo de Regresión Lineal para la posición de las regiones de interés tal y como muestra la Fig. 2.1. El problema es que este algoritmo es computacionalmente costoso, ya se tiene que ejecutar una red convolucional (CNN) por cada región propuesta por el algoritmo SL.

2.1.2. Fast R-CNN

En 2015 Fast R-CNN [3] reduce el coste computacional de R-CNN utilizando una única red convolucional sobre toda la imagen. La Fig. 2.2 muestra el esquema de la nueva arquitectura.

Fast R-CNN funciona de la siguiente manera: en primer lugar se extraen las características de la imagen mediante la red CNN, a partir del tensor de características se generan las re- giones de interés con SL. Una vez hecho esto el tensor pasa a “ROI pooling” que es una red encargada de redimensionar la región de interés1a un tamaño fijo. Posteriormente se

1En una imagen los objetos de interés pueden variar de tamaño y forma.

(10)

Oleksandr Kovalyk

Figura 2.1: R-CNN fuente [9]

pasará a una red FC2 “Full Connected Network”, red enteramente conectada. También se sustituyen las SVMs con la ya mencionada red FC más Softmax, la cual en vez de devolver la clase a la que pertenece el objeto, nos devuelve la probabilidad de que un objeto locali- zado pertenezca a una clase. Como consecuencia tenemos una arquitectura más rápida y computacionalmente eficiente (×25 veces más rápida según [10]).

Figura 2.2: Fast R-CNN fuente [9]

2.1.3. Faster R-CNN

Faster R-CNN[4] es el padre de Mask R-CNN, una arquitectura propuesta en 2015 poco después de Fast R-CNN. Esta nueva arquitectura resuelve la necesidad de usar el lento al- goritmo SL por una red neuronal más rápida llamada “Region Proposal Network” RPN (Red de propuestas regionales). El trabajo principal de RPN es predecir cuándo una región de in-

2Nótese que las regiones de interés ROI (Region of Interest) pueden tener tamaños diferentes y una red FC acepta un número fijo de entradas.

(11)

terés contiene un objeto y cuándo no. Ésta arquitectura (Fig. 2.3) es ×250 veces más rápida (según [10]) que la arquitectura original R-CNN.

Figura 2.3: Faster R-CNN fuente [9]

2.2. Mask R-CNN

El algoritmo de Mask R-CNN[1] (Fig. 2.4) parte de la idea de Faster R-CNN, añade una rama para el cómputo de la máscara en paralelo con la localización de la región de interés y la clase de ésta. La máscara es un tensor del tamaño de la imagen. Supongamos una imagen con una dimensión de X × Y × 3 (el 3 por los canal RGB). Si ésta imagen contiene Z objetos, entonces su máscara correspondiente tendría un tamaño de X × Y × Z. Cada canal de la máscara es una matriz binaria que representa la forma y posición de un objeto en concreto.

El problema del cálculo de la máscara es que se necesita más precisión de la que lograba dar Fast R-CNN. Esto se consigue añadiendo las siguientes mejoras:

FPN “Feature Pyramid Network”[11] de los mismos autores de Mask R-CNN, con esto se consigue más precisión a la hora de la extracción de características de las imágenes, además no es computacionalmente costosa.

ROI Align, al contrario que ROI Pooling no pierde tanta información a la hora de extraer características de la región de interés, esto lo consiguen sustituyendo la cuantificación por la interpolación bilineal.

Antes de seguir, con el fin de comprender, más adelante, los parámetros que se van a mo- dificar en el algoritmo, se explicará cómo funciona cada una de las partes que componen el algoritmo siguiendo el esquema de la figura Fig. 2.4.

(12)

Oleksandr Kovalyk

Figura 2.4: Esquema Mask R-CNN fuente [12]

2.2.1. FPN

FPN [11] es una red que dada una imagen extrae su mapa de características y se divide en dos partes: el recorrido de abajo hasta arriba y el recorrido de arriba hacia abajo. El recorrido de abajo hacia arriba consiste en el recorrido desde la imagen hasta las características más importantes. De esto se encarga la red CNN resnet [13]. La la figura 2.5 muestra el esquema de la red FPN. Cuanto más alto en la pirámide menor es la resolución pero mayor el valor semántico. El camino de arriba hacia abajo construye una capa con mayor resolución a partir de las capas con mayor valor semántico. Aunque el valor semántico y la resolución son altos, la localización de los objetos no está del todo clara por lo que se añaden conexiones laterales (igual que las resnets), con el fin de ayudar a las capas posteriores a detectar el objeto. La FPN tiene dos salidas, una dirigida a la red RPN y otra a la red ROI Align.

2x up 1x1 conv +

predict predict predict

Figura 2.5: Esquema FPN fuente [11]

(13)

2.2.2. RPN

La subred RPN “Region Proposal Network” es una red que se encarga de generar contene- dores de objetos3y predecir si dicho contenedor contiene un objeto o no.

Y funciona de la siguiente manera:

En primer lugar, sobre el mapa de características extraídas por la red FPN, se desplaza una pequeña ventana de (3 × 3). Por cada centro de la ventana se generan “anclas”.

Estos anclas no son más que cuadriláteros de tamaños y proporciones variados, tal y como muestra la figura 2.6. Un ejemplo para nuestro caso es la figura 2.7. Los anclas generados son muchos por lo que hay mucho solapamiento (Fig. 2.8).

Figura 2.6: Proceso de generación de los anclas en RPN fuente. [9]

Figura 2.7: Anclas en RPN.

3Se entiende por contenedor del objeto como aquella zona del mapa de características que se cree que tiene una cierta probabilidad de contener el objeto buscado, en nuestro caso excavación óptica o disco óptico.

(14)

Oleksandr Kovalyk

Figura 2.8: Ejemplo de solapamientos de los anclas generados en RPN. Nota: Esta imagen es tras el filtrado NMS.

Una vez hecho esto, se calcula el valor de la UoI de estos anclas con el contenedor verdadero. Se filtran mediante el algoritmo NMS[14]. Todos aquellos anclas que estén igual o por encima de un umbral cierto umbral (superior) se consideran anclas positi- vos. Todos aquellos anclas que estén igual o por debajo de 0.3 puntos se consideran anclas negativos. Aquellos anclas que se encuentren entre 0.3 y el umbral superior se consideran anclas neutros y se descartan. Nótese que nos quedamos con anclas negativos para aprender dónde no suele estar el objeto, dadas unas características de entrada.

Tras filtrar los anclas con NMS se refinan los anclas que se han quedado. Modificando su tamaño y su posición (Fig. 2.9).

Tras el refinado los anclas pasan a llamarse regiones de interés (Fig. 2.9 derecha) y pasan al siguiente nivel, a la red ROI.

Por lo tanto RPN tiene dos salidas:

La clase del objeto, distinguiendo entre dos clases: objeto o fondo.

El contenedor puede no cubrir enteramente el objeto. Por lo que RPN estima su po- sición y tamaño.

(15)

Figura 2.9: Ejemplo ilustrativo del refinado de los anclas. A la izquierda los anclas refinados en linea continua. Y su posición y tamaño previo en linea punteada. A la derecha su posición final.

2.2.3. ROI Align

ROI Align es una red que se encarga de tres tareas:

Clasificar la región propuesta por RPN a la clase que pertenece (disco óptico o exca- vación óptica).

Ajustar el tamaño y la posición de las regiones propuestas por RPN.

Redimensionar estas regiones a un tamaño fijo para que estas puedan servir de en- trada a las redes FC. Recordemos que las redes FC solo aceptan entradas de tamaño fijo y nuestras regiones varían de tamaño. Para más detalle sobre cómo se consigue esto consulte [15].

Esto se consigue de la siguiente manera:

La red ROI recibe de la red RPN propuestas regionales o regiones de interés y las cla- sifica a la clase que pertenecen (Fig. 2.10).

Tras clasificar todas las regiones, éstas se refinan (Fig. 2.11).

Una vez refinadas las regiones se filran por confidencialidad quedándonos con aquella región con mayor valor de ésta.

Por último las regiones restantes se filtran con NMS obteniendo el resultado de la figura 2.12.

(16)

Oleksandr Kovalyk

Figura 2.10: Regiones de interés que recibe ROI de la red RPN. En linea punteada las regiones que se han clasificado como fondo y las regiones en linea continua como objeto.

ROI Align y RPN tienen las mismas salidas:

La clase del objeto. A diferencia de RPN que solo distingue entre fondo y objeto. ROI Align es capaz de clasificar el objeto con más precisión, en nuestro caso disco óptico o excavación óptica.

Región de interés refinada, con un cierto margen de variación para su posición y ta- maño.

2.2.4. Capas FC

Las capas FC “Full Conected Network” que están conectadas a la red ROI, manipulan las regiones propuestas por la red ROI y se encargan de dos tareas4:

1. Clasificación a la clase a la que pertenece un objeto y su probabilidad asociada.

2. El refinamiento del tamaño y forma de la región de interés. Las regiones de interés internamente se representan como un vector de cuatro puntos, las cuatro esquinas del cuadrilátero. Variando cada uno de estos puntos, las capas FC pretenden maximizar el valor de UoI entre la región varadera y la propuesta por la red ROI.

4Éstas tareas ya se mencionan en la red ROI, pero realmente no es la red ROI la que se encarga de realizarlas, sino que las redes FC, integradas en la red ROI.

(17)

Figura 2.11: Refinamiento de las regiones de interés. En linea punteada la posición anterior de la región y en linea continua la posición tras su refinamiento.

2.2.5. Mask

Hasta ahora todo lo que hemos visto es Faster R-CNN [4]. La rama añadida por Mask R- CNN[1] es nada más que una red convolucional. Esta red convolucional calcula una máscara para las regiones de interés propuestas por la red ROI. Con el fin de reducir la carga compu- tacional del cálculo de la máscara, ésta es transformada de formato binario y dimensión original, a un tamaño de (28 × 28) representadas por números en coma flotante. Esto se hace con el fin de que se pierda la menor cantidad de información. En modo inferencia esta máscara (una vez calculada) es transformada a tamaño original.

2.3. Implementación

La implementación del algoritmo que se usa en este trabajo no es la original [1] (que está he- cha en “coffe”). En este trabajo se usará [16] un “framework” en el lenguaje de programación Python de Mask R-CNN en “Keras” y “TensorFlow” que son librerías de aprendizaje máqui- na proporcionadas por Google. Éste “framework” viene muy bien documentado, todas las funciones clases y variables de la implementación están comentadas. Se explica cada pa- so del algoritmo con ejemplos ilustrativos. En ésta sección se listara el contenido de este

“framework”, además de los módulos añadidos por el alumno para el funcionamiento del algoritmo y su análisis en las bases de datos deseadas.

(18)

Oleksandr Kovalyk

Figura 2.12: Regiones de interés tras el refinamiento y el filtrado NMS. En linea punteada la posición anterior de la región y en linea continua la posición tras su refinamiento.

El “framework” contiene un amplio número de herramientas para el estudio del algoritmo, éstas están divididas en varios módulos, los principales son:

model.py: contiene la implementación del algoritmo.

config.py: contiene parámetros de configuración del algoritmo.

utils.py: contiene funciones auxiliares usadas por el algoritmo, herramientas de depu- ración, la superclase para la manipulación de la base de datos.

visualize.py: funciones de visualización de los resultados en inferencia y para depura- ción.

parallel_model.py: Soporte para entrenamiento Multi-GPU.

Además, los archivos “notebooks” de “IPython” que contiene algunas herramientas para tes- tear la base de datos (por ejemplo, si ésta está bien implementada) y herramientas para inferencia del modelo entrenado (resultados de entrenamiento).

Por otro lado los archivos añadidos y/o modificados por el alumno:

retinography.py: punto de arranque del algoritmo fue parcialmente modificado para adaptarlo a sus necesidades y a las necesidades de las bases de datos.

split_data_drions.py y split_data_rimone.py: modulo añadido por el alumno, usado para controlar la división de la bases de datos en entrenamiento, validación y test.

(19)

bench.py: modulo añadido por el alumno para tomar medidas de los datos de test.

Para más detalles en sobre la implementación del algoritmo y/o de los parámetros que con- tiene consulte [16].

(20)

3 Desarrollo y métodos

En esta sección veremos algunas de las características de las bases de datos que se usa- rán para entrenar el algoritmo. Las dos bases de datos (como es habitual en esta clase de trabajos de aprendizaje máquina) se dividirán en tres partes: entrenamiento, validación y prueba.

3.1. Bases de datos

Drions

Drions[5] es una base de datos de 110 retinografías escogidas al azar de la base de datos del Servicio de Oftalmología del hospital Miguel Servet, Zaragoza. Las imágenes fueron to- madas por una cámara especial para el fondo del ojo, centrada aproximadamente en la hipoplasia del nervio óptico, han sido digitalizadas usando HP-PhotoSmart-S20, escáner de alta resolución, formato RGB, resolución 600 × 400 y 8 bits/por píxel. Las imágenes fueron segmentadas por dos expertos diferentes en el área, habiendo 110 segmentaciones del primer experto y 110 del segundo. Las imágenes que se utilizarán en el entrenamiento del algoritmo procederán de una zona de recortada de las originales con una resolución de 400 × 400, ya que sólo nos interesa la zona central. Además, estas imágenes están alma- cenadas en archivo “.mat” con las 110 imágenes, 110 × 2 máscaras binarias del disco óptico segmentadas por ambos expertos. Drions solo contiene segmentaciones del disco óptico, tampoco se especifica si son pacientes sanos o no. Como ya se ha mencionado antes, se ha dividido ésta base de datos en: entrenamiento 90 imágenes, validación 10 imágenes y test 10 imágenes.

Rim-one

Rim-one[6] es una base de datos de 159 imágenes (Fig. 3.1), segmentadas por dos expertos del área de oftalmología. 74 imágenes corresponden a pacientes sospechosos de glaucoma y 85 imágenes corresponden a pacientes sanos. Del mismo modo que en Drions se usará una porción recortada de la imagen de resolución de 400 × 400. Hay un total de 159 más-

(21)

caras binarias del disco óptico, 159 máscaras binarias de la excavación óptica, segmentada por ambos expertos (tanto la excavación como el disco). En el trabajo se usará un archivo

“.mat” con todas las imágenes y máscaras. De la misma manera que Drions, Rim-one se ha dividido en: entrenamiento 125 imágenes, validación 17 imágenes y test 17 imágenes.

Figura 3.1: Base de datos Rim-one

3.2. Organización de los tests

El principal objetivo de este trabajo es encontrar la configuración más óptima del algoritmo para conseguir los mejores resultados. En el módulo “config.py” hay un total de 48 paráme- tros además de 2 parámetros adicionales (que no están en el módulo), que son el número de épocas y el número de capas a entrenar. Los 48 parámetros se dividirán en 2 partes: los llamados parámetros “triviales”. Estos parámetros triviales son: parámetros que tienen un valor muy concreto (por ejemplo, número de GPUs que se van a usar), que no se pueden modificar porque sino se modificaría la arquitectura del algoritmo (lo cual no es el objeti- vo de este trabajo) y por último los que no tienen ningún impacto en el rendimiento del algoritmo. La tabla 3.1 recoge los parámetros triviales.

Eliminando los 28 parámetros triviales nos quedarían un total de 20 parámetros para modi- ficar, estos 20 parámetros se van a organizar en paquetes. Con un total de 5 paquetes, de los cuales 4 de ellos dividirán los 20 parámetros en: elementos regularizadores del algoritmo tabla 3.2, elementos que modifican la red RPN tabla 3.3, elementos que modifican la red

(22)

Oleksandr Kovalyk

ROI tabla 3.4 y parámetros de modifican la red CNN tabla 3.5. El quinto paquete que con- tendrá las demás pruebas tabla 3.6. Por otra parte, todos los entrenamientos del algoritmo se realizaran con las segmentaciones de un solo experto (experto 1).

Tabla 3.1: Parámetros de configuración del algoritmo que se consideran “triviales”

Nº Parámetro

1 NAME

2 GPU_COUNT

3 COMPUTE_BACKBONE_SHAPE

4 BACKBONE_STRIDES

5 FPN_CLASSIF_FC_LAYERS_SIZE 6 TOP_DOWN_PYRAMID_SIZE

7 NUM_CLASSES

8 IMAGE_RESIZE_MODE 9 IMAGE_MIN_SCALE

10 IMAGE_CHANNEL_COUNT 11 ROI_POSITIVE_RATIO 12 POOL_SIZE

13 MASK_POOL_SIZE 14 MASK_SHAPE

15 MAX_GT_INSTANCES

16 DETECTION_MAX_INSTANCES 17 USE_RPN_ROIS

18 TRAIN_BN

19 IMAGE_MIN_DIM 20 IMAGE_MAX_DIM 21 IMAGE_SHAPE 22 IMAGE_META_SIZE 23 MEAN_PIXEL 24 USE_MINI_MASK 25 RPN_ANCHOR_RATIOS 26 STEPS_PER_EPOCH 27 VALIDATION_STEPS 28 LOSS_WEIGHTS

3.3. Evaluación de los tests

La evaluación de los resultados en cada una de las tres partes en las que se ha divido la ba- ses de datos (entrenamiento, validación y pruebas), se realizará mediante la medición de 3 errores: error de validación, error de tests y error de entrenamiento. Las mediciones del error para los datos de entrenamiento y los datos de validación, se tomarán a la hora de entrenar tal y como se especifica en [1], y se visualizarán con la herramienta “tensorboard”. En los datos de pruebas se tomarán 6 mediciones. En primer lugar entre los expertos (experto 1 vs.

(23)

Tabla 3.2: Parámetros de configuración del algoritmo que se consideran regularizadores Nº Parámetro

1 IMAGES_PER_GPU 2 LEARNING_RATE

3 LEARNING_MOMENTUM

4 WEIGHT_DECAY

5 GRADIENT_CLIP_NORM 6 BATCH_SIZE

7 MINI_MASK_SHAPE

Tabla 3.3: Parámetros de configuración del algoritmo que modifican RPN Nº Parámetro

1 RPN_ANCHOR_SCALES 2 RPN_ANCHOR_STRIDE 3 RPN_NMS_THRESHOLD

4 RPN_TRAIN_ANCHORS_PER_IMAGE 5 RPN_BBOX_STD_DEV

Tabla 3.4: Parámetros de configuración del algoritmo que modifican ROI Nº Parámetro

1 PRE_NMS_LIMIT

2 POST_NMS_ROIS_TRAINING 3 POST_NMS_ROIS_INFERENCE

4 BBOX_STD_DEV

5 DETECTION_MIN_CONFIDENCE 6 DETECTION_NMS_THRESHOLD 7 TRAIN_ROIS_PER_IMAGE

Tabla 3.5: Parámetros de configuración de la CNN Nº Parámetro

1 BACKBONE

Tabla 3.6: Otras pruebas Nº Parámetro

1 Número de capas a entrenar 2 Número de épocas

experto 2) para tener unos valores de referencia. En segundo lugar mediciones entre exper- to y máquina (entrenada con las segmentaciones del experto 1). Además, se compararán ambos resultados entre ellos (“experto vs. experto” vs. “máquina vs. experto”).

(24)

Oleksandr Kovalyk

El algoritmo sera entrenado en la GPU, Nvidia RTX 2080Ti, para más detalle sobre la má- quina de pruebas consulte Apéndice A1.

Estas 6 medidas serán:

Tasa de falsos positivos y la tasa de falsos negativos

La tasa de falsos positivos o “Recall” y la tasa de falsos negativos “Precisision” son medidas en el intervalo de 0 a 1, que se toman en algoritmos de clasificación. Dadas dos máscaras (la predicha por el experto y la predicha por la maquina) se calcula su tasa de falsos positivos y la tasa falsos negativos. Como la predicción de la máscara es básicamente una tarea de cla- sificación (si un píxel pertenece a la clase 1 o 0) es una medida valida en este caso. Además, nos indica la tendencia del algoritmo, es decir, si este tiende a hacer segmentaciones más grandes que el experto o más pequeñas. Por ejemplo, con un Recall (tasa de falsos positivos) alto 0.98 puntos y un valor de Precision bajo o más bajo 0.7, nos indica que en esa imagen el algoritmo tiende a hacer segmentaciones más grandes que el experto. Nótese que si ambos valores son 1 la máquina he hecho una segmentación idéntica al experto.

Área de las máscaras

Aunque Recall y Precision nos dan una idea general de la tendencia en cuanto a tamaño de las segmentaciones de la máquina, a valores muy próximos de ambas medidas no se sabe con certeza cuál es la tendencia del algoritmo. Por eso, se toma el valor del área de las máscaras tanto en la segmentación del experto como en la segmentación de la máquina.

Una vez calculada el área, se resta el área obtenida por la máquina al área obtenida por el experto. De esa manera tendríamos valor positivo si el algoritmo tiene tendencia a sobres- timar y valor negativo si este tiene tendencias subestimar el tamaño de la máscara. Nótese que si el valor de la diferencia es 0, las áreas de ambos (máquina y experto) son idénticos, lo cual no indica que las máscaras sean totalmente iguales.

Circularidad

La circularidad nos indica cuan circular es la segmentación, con un valor entre 0 (nada circu- lar) y 1 (circulo perfecto), se calcula con la ecuación (1), de esa manera, comparando el valor de la circularidad del experto y de la máquina podemos ver si tiene una misma forma.

circularidad = 4 · π · ´area

per´ımetro2 (1)

(25)

Distancia Hausdorff

Dadas dos máscaras, se calcula la distancia máxima que existe entre dos bordes de las más- caras. El algoritmo podría hacer segmentaciones deformes en muy pocos píxeles, lo cual no se reflejaría en ninguna de las medidas, con esta medida podemos visualizar este tipo de patrones. Este cálculo, implementado por la librería “scipy” se normaliza con (2) donde X es la anchura de la imagen e Y es la altura.

d.Hnorm= √d.H

X · Y (2)

Unión de la intersección

Unión de la intersección, mide cuanto se solapan dos máscaras binarias (máscara del exper- to y la máscara obtenida por la máquina). Si no hay solapamiento el valor es 0 y si ambas máscaras son idénticas el valor es 1.

Error en los datos de prueba

Con el fin de evaluar de manera global el progreso en la base de datos de prueba, se calculará un valor de error entre los dos expertos, y entre experto y máquina. Este error será la suma ponderada de las medias de la unión de la intersección (UoI), la tasa de falsos positivos (Recall), la tasa de falsos negativos (Precision), la distancia Hausdorff (d.H) y el número de predicciones (N.pred) que ponderará el doble1. La ecuación (3) resume el calculo, donde m es el identificador de la imagen ({0, 1, ..., n} con n ∈ N) y N es número de imágenes en los datos de pruebas.

error= 1 N

m

X

i=0

(1 − UoIi) + (1 − Recalli) + (1 − Precisioni) + (d.H.normi) + |(1 − N.predi)| · 2

(3)

1Con el fin de penalizar más si no hay predicción o si hay más predicciones de las que deberían.

(26)

4 Evaluación y resultados

En esta sección se mostrarán paso a paso los resultados de modificar cada parámetro del algoritmo. El valor de cada parámetro se buscará de forma empírica en base a lo que se sa- be a partir de otros documentos y pruebas realizadas por investigadores en el campo del aprendizaje máquina. Los resultados para ambas bases de datos se mostrarán conjunta- mente. Se modificarán los mismos parámetros para ambas bases de datos y se mostrarán los resultados, eligiendo los más óptimos para cada caso. Vamos a partir de la configuración inicial del algoritmo que se encuentra en el apéndice A2 tabla A2.1 para Drions y tabla A2.2 para Rim-one.

4.1. Número de capas a entrenar

El primer parámetro en ser configurado será el número de capas a entrenar. Este parámetro controla cuántos niveles de la red entrenaremos. Hay 4 opciones: “heads” cabeceras, “3+”

desde la tercera hacia adelante, “4+” cuarta en adelante, “5+” quinta en adelante y “all” to- das. La última de ellas se ha descartado, dado que ambas bases de datos son demasiado pequeñas1. Por lo que se ha optado por entrenar: cabeceras, 3+, 4+ y 5+ capas. Los resulta- dos se muestran en la tabla 4.1 para Drions y 4.2 para Rim-one. Donde el “Error test” es el error medido en los datos de test con la ecuación 3. “Error val” es el error en los datos de validación medido por el algoritmo [1]. “Tiempo” es el tiempo que el algoritmo ha tardado en terminar el entrenamiento. Tanto los errores como el tiempo, son medias de ejecutar el algoritmo 3 veces para una misma configuración.

Tabla 4.1: Resultados de entrenar distintas capas para Drions.

Nº Test Capas Error test Error val Tiempo

1 heads 0.222 0.207 5m1s

2 3+ 0.175 0.173 6m16s

3 4+ 0.189 0.175 5m56s

4 5+ 0.214 0.211 5m25s

1Para entrenar todas las capas necesitaríamos bases de datos del orden de 10-100k.

(27)

Tabla 4.2: Resultados de entrenar distintas capas para Rim-one.

Nº Test Capas Error test disc/ex Error val Tiempo

1 heads 0.333/1.158 0.889 7m2s

2 3+ 0.385/1.317 1.352 7m4s

3 4+ 0.366/1.218 0.904 7m5s

4 5+ 0.331/1.297 0.958 7m5s

Para la base de datos de Drions tenemos un claro ganador “3+”. No solo ha obtenido mejores valores en ambas bases de datos (test y validación) sino que converge mejor en los datos de entrenamiento y validación.

Para la base datos de Rim-one es más complicado, no hay un claro ganador, todas las capas presentan mucho ruido en la base de datos de validación (Fig. 4.1), tampoco hay una clara tendencia del error a la cual aludir.

Figura 4.1: Valor del error por época en los datos de validación para Rim-one para todas las capas.

La base de datos Rim-one da resultados mucho peores que Drions, en el mejor de los casos hay 2 instancias de excavación sin predecir, esto puede ser debido a 3 factores:

1. Escaso número de ejemplos. La base de datos de Rim-one tiene imágenes de enfer- mos y de sanos con excavaciones de distintos tamaños. Puede que no haya suficientes ejemplos de cada tamaño para que el algoritmo comprenda, que la excavación puede variar de tamaño y forma.

2. La base de datos de Rim-one tiene imágenes con muy mala calidad. Hay imágenes totalmente oscuras, lo que se traduce a mucho ruido en la base de datos. Lo cual añade complejidad a la distribución estadística de la base de datos.

3. Baja UoI entre los expertos. En las excavaciones el valor de la unión de la intersección entre ambos expertos es de 0.64 puntos de media. Si dos seres humanos difieren tanto en la posición, tamaño o forma de un objeto, difícilmente un algoritmo podría generalizar a este objeto.

(28)

Oleksandr Kovalyk

De cara a las siguientes secciones no se sabe con certeza la configuración del algoritmo pa- ra la base de datos de Rim-one. Dado que los resultados no son concluyentes. Así que se usará la misma configuración que Drions: “3+” capas. El apéndice A2 recoge la configura- ción de ambas bases de datos en A2.3 para Drions y A2.4 para Rim-one para la siguiente sección.

4.2. CNN

El algoritmo ofrece la posibilidad de elegir entre dos CNNs (resnet50, resnet101). La red CNN (en esta caso resnet) es la red que junto a FPN se encarga de extraer el mapa de carac- terísticas de las imágenes. Recordemos que CNN es una red que se encuentra en el camino de abajo hacia arriba en la FPN (desde la imagen hasta el mapa de características de reso- lución más pequeña, figura 2.5). Hasta ahora hemos estado usando la resnet50. Aunque también tenemos la posibilidad de usar la resnet101, una red más profunda y capaz de extraer más características. Con esta nueva configuración se espera conseguir mejoras en la base de datos de Rim-one, dado que Drions ya obtuvo resultados muy buenos. Aun así, no se descarta la posibilidad de una mejora en la base de datos de Drions. Se ha ejecutado 30 épocas del algoritmo para ambas bases de datos, los resultados son los mostrados en la figuras 4.2 para Drions y 4.4 para Rim-one.

Figura 4.2: Valor del error por época en los datos de validación para Drions. 30 épocas. Verde:

resnet50. Rojo: resnet101.

Tabla 4.3: resnet50 vs. resnet101 para Drions Nº Test CNN Error test Error val Tiempo

4 resnet50 0.175 0.173 6m16s

5 resnet101 0.173 0.160 8m27s

Para Drions los resultados parecen mejorar ligeramente, aunque el tiempo de ejecución del

(29)

algoritmo también ha aumentado (+2 min). Teniendo en cuenta que el aumento del tiempo no es muy significativo, se priorizará la precisión. La tabla 4.3 recoge los valores del error para los datos de validación y pruebas para 30 épocas y 3 ejecuciones del algoritmo para cada CNN.

Sin embargo, para Rim-one los resultados empeoraron notablemente tanto en los datos de entrenamiento (Fig. 4.3) como en los datos de validación (Fig. 4.4). Esto se puede deber a la fuerte presencia del ruido en esta base de datos, y al usarse una red más profunda se manifiesta con mayor fuerza. Por lo que se usará la red resnet50 para la base de datos de Rim-one y resnet101 para Drions. La configuración del algoritmo para la siguiente sección se encuentra en el apéndice A2 tablas A2.5 y A2.6.

Figura 4.3: resnet50 vs resnet101 en los datos de entrenamiento para Rom-one. Rojo: res- net50. Gris: resnet101.

Figura 4.4: resnet50 vs resnet101 en los datos de validación para Rom-one. Rojo: resnet50.

Gris: resnet101.

(30)

Oleksandr Kovalyk

4.3. RPN

En ésta sección se modificarán los parámetros de la tabla 3.3. La red RPN es la encargada de generar región que contiene al objeto, en nuestro caso disco óptico o a la excavación. Esta región no es más que un contenedor que delimita la posición del objeto. En cuánto mejor sea la posición del contenedor con mayor facilidad y precisión será calcular su máscara co- rrespondiente. Para Drions no se espera una mejora significativa, ya que las cajas2generadas para Drions, de media, tienen mayor valor de UoI entre el experto y máquina que entre los propios expertos (Fig. 4.5). Pero para Rim-one podría suponer una mejora, sobre todo a la hora de buscar regiones pequeñas (excavaciones). Donde el valor medio de la unión de la intersección entre las cajas no es tan alto, además de presentar imágenes sin instancias (Fig.

4.6).

Figura 4.5: Valor de la unión de la intersección de las cajas entre máquina y experto (naranja) y entre experto y experto (azul) para Drions.

Escala de los anclas

Empezaremos con los valores de la escala de los anclas (RPN_ANCHOR_SCALES) en píxeles.

Este parámetro controla los tamaños de los distintos anclas que generamos (Fig. 2.7). Se espera una ligera mejora a la hora de disminuir estos valores, sobre todo en la base de datos de Rim-one. Dado que la excavación es una zona pequeña que podría beneficiarse de la redición de la escala de los anclas. Si generamos anclas más pequeños podemos ajustarlas mejor a las zonas pequeñas (por ejemplo, las excavaciones ópticas). Para cada valor de la escala de los anclas se ha ejecutado el algoritmo 2 veces.

2Las cajas son contenedores finales, que contienen el objeto en la propia imagen, no en el mapa de carac- terísticas. Dentro del cual se encuentra la máscara correspondiente.

(31)

Figura 4.6: Valor de la unión de la intersección de las cajas entre máquina y experto (naranja) y entre experto y experto (azul) para Rim-one.

Tabla 4.4: Resultados de los distintas escalas de los anclas para Drions. 30 épocas.

Nº Test Escalas de las cajas Error test Error val Tiempo 5 (32, 64, 128, 256, 512) 0.173 0.160 8m27s 6 (16, 32, 64, 128, 256) 0.165 0.153 8m32s

7 (8, 16, 32, 64, 128) 0.166 0.194 8m29s

Tabla 4.5: Resultados de los distintas escalas de los anclas para Rim-one. 30 épocas.

Nº Test Escalas de las cajas Error test disc/ex Error val Tiempo 5 (32, 64, 128, 256, 512) 0.333/1.158 0.889 7m2s 6 (16, 32, 64, 128, 256) 0.342/1.329 0.931 7m3s 7 (8, 16, 32, 64, 128) 0.340/0.960 0.920 7m7s

Tenemos una ligera mejora tanto en Drions como en Rim-one. Tal y como se ha supuesto a Rim-one se ha beneficiado de los valores más pequeños (tabla 4.5). Aunque habría que decir que para Rim-one es difícil sacar una conclusión debido al carácter inconcluso de sus resultados. El error oscila bastante, además en los datos de entrenamiento el algoritmo con- verge mucho más lento que Drions. Nótese que no tendría sentido aumentar los valores de la escalas de los anclas (por ejemplo 64, 128, 256, 512, 1024). Dado que nuestras imáge- nes son del tamaño 448 × 448 y ya el propio valor de 512 sale fuera de la dimensión de la

(32)

Oleksandr Kovalyk

imagen. Por lo tanto nos quedaremos con los valores en negrita de las tablas 4.4 y 4.5

Zancada

El siguiente parámetro es la zancada de la RPN (RPN_ANCHOR_STRIDE) que controla cada cuántos pasos se genera los anclas. La red FPN le pasa 5 mapas de características a la red RPN. Recordemos que por cada centro de una ventana del tamaño 3×3. RPN genera anclas del formato de la figura 2.7. Esto se hace para cada uno de los 5 mapas, es decir, dicha ventana se desliza generando anclas por cada uno de los 5 mapas. Si el valor de zancada es 1, ésta ventana se desplaza una posición en el mapa de características. Si el valor de la zancada es de 2, nuestra ventana se desplazaría con saltos de 2 posiciones por el mapa de características y así sucesivamente. De este parámetro no se espera una mejora en cuanto al error, pero si en cuanto al tiempo de ejecución del algoritmo. Ya que si aumentamos el valor de la zancada generaremos menos anclas, esto se traduce a un menor número de anclas a procesar. Aumentar la zancada puede tener un impacto negativo en la precisión del algoritmo. Ya que al generarse menos anclas, disminuye la probabilidad de un ancla sea generado en una posición más favorable. La tabla 4.6 muestra resultados para Drions y la tabla 4.7 para Rim-one.

Tabla 4.6: Resultados para distintos valores de la zancada en Drions. 30 épocas.

Nº Test Zancada Error test Error val Tiempo

6 1 0.165 0.153 8m32s

8 2 0.180 0.144 8m18s

9 3 0.169 0.355 8m21s

Tabla 4.7: Resultados para distintos valores de la zancada en Rim-one. 30 épocas.

Nº Test Zancada Error test disc/ex Error val Tiempo

7 1 0.394/0.937 1.916 6m56s

8 2 0.357/1.088 1.443 6m53s

Como podemos ver en la tabla 4.6 y la tabla 4.7 no hay ninguna mejora ni en cuanto al tiempo de ejecución del algoritmo ni en cuanto al error. Como se había deducido, el error ha crecido conforme aumentamos el valor de la zancada. Se cree que aumentar el valor de la zancada podría dar mejor resultado para imágenes de mayor resolución y máscaras pequeñas. Dado que nuestras bases de datos no son el caso, ambas zancadas tendrán el valor de 1. Además en la base de datos Rim-one se ha descartado el valor de 3 zancadas.

Dado que el valor de 2 de la zancada, empeoró notablemente los resultados.

(33)

Umbral NMS (RPN)

En la red RPN, el algoritmo NMS se encarga de filtrar los anclas, mediante el valor UoI. Que- dándose con los que tienen mayor valor de unión de la intersección con la posición real.

Todos los anclas que estén por debajo del umbral NMS (RPN_NMS_THRESHOLD) y por debajo de 0.3 puntos se descartarán. Aumentar este umbral supondría generar más contenedores y por lo tanto aumentar la probabilidad de que un contenedor tenga mejor posición. Co- mo ya se ha dicho antes, Drions por el poco margen de mejora tal vez no se beneficiaría tanto de este cambio. Pero Rim-one si lo podría hacer, sobre todo para las regiones de las excavaciones ópticas.

Tabla 4.8: Resultados para distintos valores del umbral NMS para Drions. 30 épocas.

Nº Test Umbral Error test Error val Tiempo

6 0.7 0.165 0.153 8m32s

10 0.5 0.152 0.167 8m35s

11 0.9 0.203 0.164 8m32s

12 0.99 0.169 0.200 8m32s

13 0.8 0.155 0.127 8m28s

Tabla 4.9: Resultados para distintos valores del umbral NMS para Rim-one. 30 épocas.

Nº Test Umbral Error test disc/ex Error val Tiempo

7 0.7 0.340/0.960 0.920 7m7s

9 0.5 0.72/4.508 1.029 7m1s

10 0.9 0.342/1.139 1.181 6m56s

11 0.99 0.361/1.097 1.537 7m2s

12 0.8 0.361/0.981 1.118 7m1s

Como podemos ver, modificar el valor del umbral NMS (RPN) no ha afectado ni al error ni al tiempo de convergencia del algoritmo en ambas bases de datos. Drions mejora ligeramente con un umbral 0.1 puntos superior. Mientras que Rim-one la modificación de este valor no supone mejora alguna. Nótese en la tabla 4.9 test numero 9 que el error de la excavación en los datos de pruebas ha crecido hasta 4.5 puntos. Y eso que hay solo una imagen sin instancia. Esto es porque en muchas imágenes el algoritmo había predicho 5-6 instancias de la excavación. Con esto se entiende que bajar el mucho el umbral NMS hace que no se filtren correctamente las instancias.

Número de anclas a entrenar (RPN)

Este parámetro (RPN_TRAIN_ANCHORS_PER_IMAGE) indica cuántos anclas por imagen va- mos a usar para entrenar la red RPN. Se cree que si se disminuye podría reducir el coste

(34)

Oleksandr Kovalyk

computacional y por lo tanto el tiempo de ejecución del algoritmo.

Tabla 4.10: Resultados para distintos números de anclas a entrenar por imagen para Drions.

30 épocas.

Nº Test Cajas por imagen Error test Error val Tiempo

13 256 0.155 0.127 8m27s

14 512 0.163 0.125 8m31s

15 128 0.169 0.154 8m33s

16 64 0.167 0.179 8m38s

17 32 0.160 0.231 8m36s

Tabla 4.11: Resultados para distintos números de anclas a entrenar por imagen para Rim-one.

30 épocas.

Nº Test Cajas por imagen Error test disc/ex Error val Tiempo

7 256 0.340/0.960 0.920 7m7s

13 512 0.402/0.849 1.063 7m21s

14 128 0.331/1.046 0.944 7m22s

15 64 0.340/1.261 1.220 7m24s

En ambas bases de datos no dio resultado la modificación del número de anclas a entrenar.

Como podemos observar (tabla 4.10 y tabla 4.11) el tiempo no ha bajado, ni el error ha subido de manera significativa.

Desviación típica (RPN)

El valor de la desviación típica del contenedor (RPN_BBOX_STD_DEV) es cuánto se puede desviar el contenedor de su posición original sin considerarse como error. Aumentar este valor disminuiría el error en los datos de entrenamiento y validación, pero no tendría valor alguno. Ya que el error disminuiría gracias a que los contenedores que antes se descartarían ahora serían dados por buenas. Por el contrario, disminuirlo en Drions no tiene sentido por el poco margen de mejora que hay. En Rim-one tan solo aumentaría el error, es decir, lo poco que generamos tiene un error significativo, si reducimos el margen de aceptación incluso podríamos quedarnos sin instancia.

Tal y como se esperaba para los valores de desviación típica tampoco han dado ningún resultado en ambas bases de datos. En Drions disminuir este valor parece haber disminuido el error. Pero viendo la unión de la intersección de las cajas para el test 18 de la tabla 4.12 (Fig. 4.7). Nos damos cuenta de que la diferencia media ha disminuido en 0.002 puntos (de 0.005 a 0.002), por lo que se ha descartado el valor de la desviación típica de (0.05, 0.05, 0.1, 0.1) para la base de datos de Drions.

(35)

Tabla 4.12: Resultados para distintos valores de la desviación típica de las anclas para Drions (RPN). 30 épocas.

Nº Test Desviación típica Error test Error val Tiempo

13 [0.1, 0.1, 0.2, 0.2] 0.155 0.127 8m28s

18 [0.05, 0.05, 0.15, 0.15] 0.148 0.117 8m31s 19 [0.15, 0.15, 0.25, 0.25] 0.156 0.168 8m30s

Tabla 4.13: Resultados para distintos valores de la desviación típica de las anclas para Rim- one (RPN). 30 épocas.

Nº Test Desviación típica Error test disc/ex Error val Tiempo 7 [0.05, 0.05, 0.1, 0.1] 0.340/0.920 0.920 7m7s 16 [0.05, 0.05, 0.15, 0.15] 0.311/1.047 2.321 7m32s 17 [0.2, 0.2, 0.25, 0.25,] 0.335/0.848 1.096 7m22s

El bloque RPN en la base de datos de Drions ha mejorado ligeramente el error tabla 4.14.

La mejora no es muy significativa, Drions ya daba muy buenos resultados con solo ajustar el número de capas a entrenar. Por lo que el margen de mejora ya era muy pequeño.

Para Rim-one los resultados siguen inconclusos, nada pudo hacer la red RPN para mejorar sus resultados. Como ya se había dicho, se esperaba que quizás refinando la generación de los anclas diese mejor resultado. Pero el algoritmo sigue dejando dos instancias sin prede- cir. Se deduce que el problema no es del algoritmo, sino que de la compleja distribución estadística de Rim-one. Que junto a la poca cantidad de datos. Hace los resultados inmejo- rables. Independientemente de qué parámetros se modifiquen en la configuración RPN. La configuración del algoritmo para las siguientes secciones se puede encontrar en el apéndice A2 tablas A2.7 y A2.8.

Tabla 4.14: Mejora del error para Drions después de modificar los parámetros de RPN. 30 épocas.

Nº Test Error test Error val Tiempo

5 0.173 0.160 8m27s

13 0.155 0.127 8m28s

4.4. ROI

La red ROI, como ya sabemos, hace prácticamente lo mismo que RPN. La única diferencia que introduce es que clasifica el objeto encontrado a la clase que pertenece (el objeto en nuestro caso es el disco óptico y excavación óptica). Además de redimensionar el tamaño de la región de interés. Tampoco se espera un cambio significativo al modificar los parámetros

(36)

Oleksandr Kovalyk

Figura 4.7: Valor de la unión de la intersección de las cajas entre máquina y experto (naranja) y entre experto y experto (azul) para Drions.

de ROI. Como ya se ha dicho antes, en la base de datos de Drions porque el margen de mejor es muy pequeño. En Rim-one porque el problema no está en el ajuste de las cajas.

Sino en la compleja distribución estadística de los datos. Junto a su escasa cantidad. Aun así, se probará a modificar los valores para darle verosimilitud a la hipótesis. Los parámetros que se van a modificar son los de la tabla 3.4.

Número de regiones de interés antes de NMS

Empezaremos con el parámetro PRE_NMS_LIMIT que son el número de regiones de interés que se conservan antes del aplicar el algoritmo NMS. Estas son regiones que provienen de RPN y son tanto las regiones negativas como las positivas. RPN puede generar muchas regiones pero nos quedaremos con un número fijo de éstas, delimitado por el parámetro PRE_NMS_LIMIT. Incrementar este número podría aumentar la precisión del algoritmo y por lo tanto bajar el error. Aunque NMS ahora tendrá que procesar más regiones de interés por lo que podría afectar negativamente al tiempo de entrenamiento.

Tabla 4.15: Resultados para distintos valores del límite pre-NMS para Drions. 30 épocas.

Nº Test límite pre-NMS Error test Error val Tiempo

13 6000 0.155 0.127 8m28s

20 3000 0.162 0.138 8m44s

21 9000 0.170 0.095 8m41s

22 12000 0.149 0.110 8m41s

(37)

Tabla 4.16: Resultados para distintos valores del límite pre-NMS para Rim-one. 30 épocas.

Nº Test límite pre-NMS Error test disc/ex Error val Tiempo

7 6000 0.340/0.920 0.920 7m7s

18 3000 0.386/1.003 0.778 7m23s

19 9000 0.372/1.004 0.690 7m30s

20 12000 0.444/1.096 0.904 7m29s

Ambas bases de datos se han beneficiado del incremento del número de regiones de inte- rés. Drions se ha quedado con 12000 y Rim-one con 9000, sin ninguna penalización en cuanto al tiempo de ejecución del algoritmo.

Número de regiones de interés después de NMS

El siguiente parámetro es (POST_NMS_ROIS_TRAINING) y (POST_NMS_ROIS_INFERENCE) que son el número de regiones de interés que se conservan después del algoritmo NMS. Durante el entrenamiento y en inferencia.

Tabla 4.17: Resultados para distintos valores del límite post-NMS para Drions. 30 épocas.

Nº Test Post-NMS Entr./Inf. Error test Error val Tiempo

22 2000/1000 0.170 0.095 8m41s

23 1500/500 0.169 0.124 8m39s

24 2500/1500 0.153 0.085 8m39s

25 3000/2000 0.153 0.107 8m39s

Tabla 4.18: Resultados para distintos valores del límite post-NMS (Entrenamien- to/Inferencia) para Rim-one. 30 épocas.

Nº Test Post-NMS Entr./Inf. Error test disc/ex Error val Tiempo

19 2000/1000 0.372/1.004 0.690 7m30s

21 1500/500 0.393/1.119 0.934 7m24s

22 2500/1500 0.394/0.939 1.448 7m23s

23 3000/2000 0.259/1.050 0.579 7m25s

24 3500/2500 0.542/1.218 1.111 7m31s

Aumentando el número de regiones de interés después del algoritmo NMS se aprecia una ligera mejora en ambas bases de datos. Se cree que al aumentar este número se fuerza al algoritmo a descartar menos regiones de interés. Por lo tanto crece la probabilidad de que dicha región se posicione mejor.

(38)

Oleksandr Kovalyk

Número de regiones de interés a entrenar (ROI)

El siguiente parámetro es el número de regiones de interés que pasarán a la rama de las mascaras y a la rama de las red FC (TRAIN_ROIS_PER_IMAGE). Se cree que un valor más bajo no afectaría demasiado al error. Pero si que podría acelerar el tiempo de convergencia.

Ya que esta red es más profunda que RPN por lo tanto requiere de más tiempo de cómputo.

Por otro lado, un valor más alto podría disminuir ligeramente el error pero con ello aumentar el tiempo de cómputo. Vamos a intentar encontrar un compromiso entre el error y el tiempo de ejecución.

Tabla 4.19: Resultados para distintos valores del número de regiones de interés a entrenar para Drions. 30 épocas.

Nº Test Nº de ROI Error test Error val Tiempo

24 200 0.153 0.085 8m39s

26 100 0.170 0.136 7m20s

27 300 0.177 0.070 9m59s

28 50 0.158 0.159 6m45s

Tabla 4.20: Resultados para distintos valores del número de regiones de interés a entrenar para Rim-one. 30 épocas.

Nº Test Nº de ROI Error test disc/ex Error val Tiempo

23 200 0.259/1.050 0.579 7m25s

25 100 0.376/1.118 1.199 5m53s

26 300 0.306/1.070 0.460 9m8s

Como podemos ver el error disminuye ligeramente para valores elevados del número de regiones de interés a entrenar. Rero el tiempo aumenta de manera significativa. La relación error tiempo de ejecución es lo que hace que se descarte el incremento de este paráme- tro. Además en Rim-one sigue habiendo dos instancias sin predecir y en Drions apenas se aprecia mejora alguna.

Desviación típica (ROI)

Igual en RPN, ROI también tiene un margen de tolerancia para las regiones de interés. En RPN modificar este parámetro (BBOX_STD_DEV) no dio resultado. Se espera que en ROI tam- poco tenga un impacto significativo.

Como se esperaba la modificación de la desviación típica o margen de tolerancia no ha dado resultado.

(39)

Tabla 4.21: Resultados para distintos valores de la desviación típica de las cajas para Drions (ROI). 30 épocas.

Nº Test Desviación típica Error test Error val Tiempo 24 [0.1, 0.1, 0.2, 0.2] 0.153 0.085 8m39s 29 [0.05, 0.05, 0.15, 0.15] 0.153 0.126 8m41s 30 [0.15, 0.15, 0.25, 0.25] 0.172 0.109 8m41s

Tabla 4.22: Resultados para distintos valores de la desviación típica de las cajas para Rim-one (ROI). 30 épocas.

Nº Test Desviación típica Error test disc/ex Error val Tiempo 23 [0.05, 0.05, 0.1, 0.1] 0.259/1.050 0.579 7m25s 28 [0.05, 0.05, 0.15, 0.15] 0.530/1.109 1.596 7m31s 29 [0.15, 0.15, 0.25, 0.25] 0.332/0.874 0.664 7m31s

Umbral de confianza

El siguiente parámetro es el umbral de confianza mínimo para la detección de un objeto (DETECTION_MIN_CONFIDENCE). Este umbral es la probabilidad mínima que tiene que tener una región de interés de contener un objeto, para que ésta sea aceptada. Todas las regiones con una probabilidad menor que el valor del parámetro serán descartadas.

Tabla 4.23: Resultados para distintos valores del umbral de confianza para Drions. 30 épo- cas.

Nº Test Umbral de detección Error test Error val Tiempo

24 0.7 0.153 0.085 8m39s

31 0 0.165 0.143 8m31s

32 0.5 0.139 0.183 8m38s

33 0.9 0.158 0.146 8m42s

Tabla 4.24: Resultados para distintos valores del umbral de confianza para Rim-one. 30 épocas.

Nº Test Umbral de detección Error test disc/ex Error val Tiempo

23 0.7 0.259/1.050 0.579 7m25s

30 0 0.629/1.511 0.927 7m30s

31 0.5 0.413/1.001 0.666 7m25s

32 0.9 0.329/0.974 0.789 7m26s

La modificación del umbral de confianza no ha tenido ningún impacto en ambas bases de datos. En Drions para cualquier valor del umbral el error oscilaba entre 0.139 y 0.165. En

(40)

Oleksandr Kovalyk

Rim-one para el valor de 0 del parámetro el error ha subido. En los datos de pruebas se ha notado el incrementó de instancias por cada imagen, es decir, se predecían 2 instancias de excavación por imagen. El resto de valores del parámetro no han supuesto mejora tampo- co.

Umbral NMS (ROI)

Al igual que RPN, ROI hace uso del algoritmo NMS para filtrar las regiones con un mayor valor

de la unión de la intersección con la región verdadera. El umbral NMS (DETECTION_NMS_THRESHOLD) descarta valores por debajo de valor del umbral.

Tabla 4.25: Resultados para distintos valores del umbral de NMS para Drions (ROI). 30 épo- cas.

Nº Test Umbral NMS (ROI) Error test Error val Tiempo

24 0.3 0.153 0.085 8m39s

34 0.7 0.152 0.114 8m42s

35 0.9 0.191 0.187 8m50s

36 0.8 0.166 0.125 8m49s

Tabla 4.26: Resultados para distintos valores del umbral de NMS para Rim-one (ROI). 30 épocas.

Nº Test Umbral NMS (ROI) Error test disc/ex Error val Tiempo

23 0.3 0.259/1.050 0.579 7m25s

33 0.5 0.429/1.185 1.014 7m30s

34 0.2 0.315/0.956 1.183 7m25s

La modificación del umbral NMS no ha dado ningún resultado. Conforme se subía el valor del umbral los resultados empeoraban en ambas bases de datos. Además, se observó un fenómeno. Cuando el umbral NMS (ROI) coincide con el umbral de confianza. El algoritmo devuelve un gran número de instancias para cada imagen, lo cual es un error de implemen- tación.

Tal y como se esperaba la red ROI no ha tenido ningún impacto en el rendimiento del algo- ritmo sobre ambas bases de datos. Es verdad que los resultados mejoraron ligeramente con el aumento de los parámetros (PRE_NMS_LIMIT) y (POST_NMS_ROIS_TRAINING) pero nada relevante. Como ya se había explicado, Drions tiene muy buenas instancias, con valores de unión de la intersección muy cercanos a la de los expertos. Sin embargo, el problema de Rim-one es que el algoritmo no es capaz de ver con claridad las características relevantes.

Haría falta entrenar más capas del algoritmo. Por lo tanto una base de datos más grande

(41)

para aprender una distribución de características tan complejas. En el apéndice A2 están las configuraciones de los algoritmos de cara a la siguiente sección, tabla A2.9 y A2.10.

4.5. Parámetros de regularización

Este apartado se centrará en parámetros que se consideran regularizadores (tabla 3.2). Con parámetros regularizadores se entiende por aquellos parámetros que controlan la conver- gencia de algoritmo, es decir, que modifican el algoritmo Descenso del Gradiente3. Nótese que el tamaño de la mini-máscara no es un parámetro regularizador. Pero dado que afecta al tiempo de cómputo y a la carga de la memoria se ha incluido en este apartado.

4.5.1. Tamaño de la mini-máscara

La mini-máscara es una opción que nos da el algoritmo para reducir el tamaño máscara binaria. La máscara binaria es en la que se va a fijar el algoritmo a la hora de entrenar pa- ra el cálculo del error. Con el fin de reducir la carga de la memoria se va redimensionar la máscara binaria del tamaño original a uno más reducido. Nuestras imágenes del tamaño de 448 × 448 tienen una máscara binaria asociada del mismo tamaño. Esto supone una carga de memoria por cada máscara de 200KB. Además en Rim-one tenemos dos máscaras bi- narias del tamaño 448 × 448 por lo tanto solo para las máscaras estamos usando 400KB (2×200KB). En vez de guardar toda la máscara en memoria se guarda solo lo contenido en la en la caja4. Cualquier tamaño de caja que supera el valor del parámetro (MINI_MASK_SHAPE) (por ejemplo, 56 × 56) se redimensiona al tamaño indicado por este parámetro. Se pier- de un poco de precisión, lo cual es de gran importancia en esta situación. Con estos tests se pretende aumentar la dimensión de la mini-máscara sin desbordar la memoria y ver si mejora la precisión del algoritmo. Las tablas 4.27 y 4.28 muestran los resultados.

Tabla 4.27: Resultado de variar el tamaño de la mini-máscara para Drions. 30 épocas.

Nº Test Tamaño mini-máscara Error test Error val Tiempo

24 56 × 56 0.153 0.085 8m39s

37 128 × 128 0.163 0.213 8m43s

38 48 × 48 0.148 0.155 8m33s

De estos resultados concluimos que el tamaño de la mini-máscara no tiene apenas efecto en el rendimiento del algoritmo. En ambas bases de datos aumentar el tamaño hacía que el algoritmo tardase más en terminar las 30 épocas, aunque el error no bajaba. Por otro lado

3El Descenso del Gradiente que se usa el esta implementación del algoritmo es Stochastic Gradient Des- cent (SDG), proveniente de la librería “Keras”.

4Recordemos que se consideraba caja al contenedor que contenía al objeto y su máscara correspondiente en la imagen.

(42)

Oleksandr Kovalyk

Tabla 4.28: Resultado de variar el tamaño de la mini-máscara para Rim-one. 30 épocas.

Nº Test Tamaño mini-máscara Error test disc/ex Error val Tiempo

23 56 × 56 0.259/1.050 0.579 7m25s

35 96 × 96 0.264/1.337 1.094 7m32s

36 100 × 100 0.388/1.080 0.734 7m41s

37 116 × 116 0.347/1.369 0.662 7m46s

38 48 × 48 0.405/1.266 1.054 7m46s

bajar el tamaño tampoco ha supuesto un incremento significativo en cuanto al tiempo de convergencia. Por lo que se ha decidido dejar el valor del parámetro en 56×56. El hecho de variar el tamaño de la mini-máscara no ha afectado mucho en el rendimiento del algorit- mo tiene su explicación: en primer lugar en Rim-one seguimos con el mismo problema (la complejidad de la base de datos), en cuanto a Drions, el escaso margen de mejora. Y ade- más que con tener la forma del objeto valdría para que el algoritmo aprenda a identificarlo.

Con lo cual subir o bajar el tamaño de la mini-máscara, no tendría prácticamente ningún efecto.

4.5.2. Tamaño del lote

El tamaño del lote en SGD es el número de datos que se van a usar para el calculo del gradiente, en nuestro caso el número de imágenes. Para el tamaño del lote se sabe que a menor lote más precisión [17]. Aun así se ha probado varios tamaños del lote ya que al aumentarlo podría disminuir el tiempo de entrenamiento, sin perder precisión. El tamaño del lote se controla mediante el producto del número de GPUs y el número de las imágenes por cada GPU. Dado que solo se dispone una GPU se modificará el número imágenes por GPU (IMAGES_PER_GPU). Las tablas 4.29 y 4.30 muestran los resultados.

Tabla 4.29: Resultados para distintos tamaños del lote para Drions.

Nº Test Imágenes por GPU error test error validación Tiempo

24 1 0.153 0.085 8m39s

39 2 0.156 0.115 6m59s

40 3 0.151 0.138 6m44s

Tabla 4.30: Resultados para distintos tamaños del lote para Rim-one.

Nº Test Imágenes por GPU error test disc/ex error validación Tiempo

23 1 0.259/1.050 0.579 7m25s

39 2 0.598/1.223 1.238 6m31s

40 3 0.433/1.205 1.200 6m18s

(43)

Drions no empeora apenas con el aumento del lote, aunque el tiempo de ejecución dis- minuye. Sin embargo, con Rim-one el error sube drásticamente con el aumento del lote.

Vistos los resultados para ambas bases de datos, donde el tiempo que se gana en Drions no es muy significativo5, se usara un lote de tamaño 1, priorizando la precisión. Nótese que no se a probado lotes más grandes porque conforme aumentamos el tamaño del lote el error crecía.

4.5.3. Regularización

En esta sección se modificarán parámetros que regularizan el algoritmo del descenso del gradiente. De estos parámetros no se espera una mejora significativa por tres factores:

1. Poco margen de mejora en Drions y complejidad de Rim-one.

2. Estos parámetros tendrían mayor impacto entrenado una red desde cero, dado que en nuestro caso partimos de una red preentrenada y entrenando desde la tercera capa.

3. El valor de estos parámetros suele ser muy concreto para el tipo de red que se usa.

Aun así, se probará a modificar los valores de estos parámetros. Con el fin de constatar si merece la pena cambiar estos valores en un futuro, dada la misma situación (base de dato pequeña que parte de pesos preentrenados).

Tasa de aprendizaje

El primer valor es la tasa de aprendizaje (LEARNING_RATE) este valor es el que controla cuán- to actualizar el valor de los pesos. Dando solución al problema de la divergencia del algorit- mo por la brusca actualización de los pesos.

Tabla 4.31: Resultados para los distintos valores de la tasa de aprendizaje para Drions.

Nº Test Tasa de aprendizaje error test error validación Tiempo

24 0.001 0.153 0.085 8m39s

41 0.005 0.153 0.126 8m35s

42 0.0002 0.243 0.195 8m33s

43 0.01 0.143 0.163 8m36s

Como podemos ver los resultados en Rim-one no han supuesto ninguna mejora, lo mismo para Drions pero con una variación del error bastante menor.

5Para esta base de datos ganar 2 min. no es muy significativo, quizás para una base de datos de miles de imágenes sería una opción a considerar, pero para nuestro caso no lo es.

Referencias

Documento similar

[r]

En el caso de realizar una análisis estructural dinámico lineal de un edificio en particular, se necesita disponer de la información correspondiente a las dimensiones en planta y

"No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones

D) El equipamiento constitucional para la recepción de las Comisiones Reguladoras: a) La estructura de la administración nacional, b) La su- prema autoridad administrativa

b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación