Herramienta de código abierto para la anotación de imágenes oculares
RESUMEN
Introducción:

El seguimiento del centro de la pupila usando imágenes de videooculografía se usa ampliamente para el diagnóstico de enfermedades del sistema nervioso. La diferencia entre el valor detectado automáticamente del centro de la pupila y el valor de referencia marcado por un especialista (anotación) determina la exactitud del diagnóstico. El proceso de anotación manual es muy laborioso, tedioso y propenso a errores humanos. Las anotaciones son esenciales para desarrollar y evaluar los algoritmos en el área de visión artificial, principalmente aquellos basados en el aprendizaje supervisado, sin embargo, existen pocas herramientas interactivas para realizar la anotación fiable del centro de la pupila.

Objetivo:

Desarrollar una herramienta de código abierto para anotar el centro de la pupila.

Método:

Se definieron los requisitos funcionales y no funcionales de la herramienta y se implementaron dos algoritmos para la anotación semiautomática del centro de la pupila basados en los métodos de ajuste de elipse y de círculo, a partir de varios puntos marcados por el especialista.

Resultados:

La aplicación software, denominada PUPILA, fue desarrollada en Python, desde marzo de 2020 a septiembre de 2020, y proporciona varias funciones auxiliares que facilitan la tarea del anotador.

Conclusiones:

La nueva herramienta proporciona un ambiente agradable e interactivo para anotar el centro de la pupila garantizando comodidad, exactitud y reducción de subjetividades en el trabajo del especialista. Es de código abierto y multiplataforma, lo que permite su compatibilidad con diversos dispositivos y su uso gratuito. Ha permitido anotar imágenes de bases de datos públicas y otras adquiridas experimentalmente.

ABSTRACT
Introduction:

The tracking of the pupil center using videoculography images is widely used for the diagnosis of diseases of the nervous system. The difference between the automatically detected value of the pupil center and the reference value marked by a specialist (annotation) determines the accuracy of the diagnosis. The manual annotation process is very laborious, tedious, and prone to human error. Annotations are essential to develop and evaluate algorithms in the area of artificial vision, mainly those based on supervised learning, however, there are few interactive tools to perform reliable annotation of the center of the pupil.

Objective:

To develop an open source tool to annotate the center of the pupil.

Method:

The functional and non-functional requirements of the tool are defined and two algorithms are implemented for the semi-automatic annotation of the center of the pupil based on the ellipse and circle adjustment methods, from several points marked by the specialist.

Results:

The software application, called PUPILA, was developed in Python, from March 2020 to September 2020, and provides various auxiliary functions that facilitate the annotator's task.

Conclusions:

The new tool provides an agreeable and interactive environment to record the center of the pupil, guaranteeing comfort, accuracy and reduction of subjectivities in the specialist's work. It is open source and cross-platform, allowing it to be compatible with various devices and free to use. It has made it possible to annotate images from public databases and others acquired experimentally.

RESUMO
Introdução:

O rastreamento do centro pupilar por meio de imagens de vídeo-oculografia é amplamente utilizado para o diagnóstico de doenças do sistema nervoso. A diferença entre o valor detectado automaticamente do centro da pupila e o valor de referência marcado por um especialista (anotação) determina a precisão do diagnóstico. O processo de anotação manual é muito trabalhoso, tedioso e propenso a erros humanos. As anotações são essenciais para desenvolver e avaliar algoritmos na área de visão artificial, principalmente aqueles baseados em aprendizado supervisionado, porém, existem poucas ferramentas interativas para realizar anotação confiável do centro do aluno.

Objetivo:

Desenvolver uma ferramenta de código aberto para anotar o centro da pupila.

Método:

Foram definidos os requisitos funcionais e não funcionais da ferramenta e implementados dois algoritmos para a anotação semiautomática do centro da pupila com base nos métodos de ajuste de elipse e círculo, a partir de vários pontos marcados pelo especialista.

Resultados:

O aplicativo de software, denominado PUPILA, foi desenvolvido em Python, no período de março de 2020 a setembro de 2020, e disponibiliza diversas funções auxiliares que facilitam a tarefa do anotador.

Conclusões:

A nova ferramenta proporciona um ambiente legais e interativo para registrar o centro do aluno, garantindo conforto, precisão e redução de subjetividades no trabalho do especialista. É de código aberto e multiplataforma, permitindo que seja compatível com vários dispositivos e de uso gratuito. Tornou possível anotar imagens de bancos de dados públicos e outros adquiridos experimentalmente.

Palabras clave:
    • herramienta;
    • etiquetado de datos;
    • seguimiento ocular.
Keywords:
    • tool;
    • data labeling;
    • eye tracking.
Palavras-chave:
    • ferramenta;
    • marcação de dados;
    • rastreamento ocular.

Introducción

En la última década, el desarrollo de los sistemas de videooculografía para diagnosticar enfermedades que afectan al sistema nervioso central ha sido un área en constante crecimiento. Las técnicas basadas en video han permitido reducir la invasividad del sujeto gracias al uso de cámaras y algoritmos de procesamiento de imágenes para estimar el centro de la pupila y, con ello, la dirección de la mirada.

Hasta el momento han sido propuestas una gran cantidad de técnicas para detectar la posición del centro de la pupila utilizando métodos tradicionales de procesamiento de imágenes y métodos basados en aprendizaje automático.1 A su vez, dentro de estos últimos, ha prevalecido el empleo de los métodos de aprendizaje supervisado, los cuales requieren de datos de entrenamiento etiquetados con exactitud.

Entre los enfoques de procesamiento de imágenes más usados están los basados en los operadores integro-diferenciales2, la transformada de Hough3, histograma4, ajuste de elipse5, mientras que entre los algoritmos de aprendizaje automático comúnmente referidos se encuentran los basados en modelos bayesianos6, máquinas de vectores de soporte7 y redes neuronales convolucionales.8 Muchos de los trabajos citados anteriormente han sido validados con imágenes propias, sin embargo, para la investigación científica resulta valioso el empleo de bases de datos debido a que contienen información de fácil acceso para los investigadores y constituye una referencia a la hora de establecer comparaciones entre los distintos métodos que se evalúan sobre estas imágenes.9

Las bases de datos públicas más utilizadas para el seguimiento ocular son la UBIRIS10 y la CASIA.11 Dichas bases de datos no poseen anotaciones del centro de la pupila que sirvan como referencia a la hora de aplicar métricas para evaluar el desempeño de los métodos. Actualmente, son muy escasas las herramientas interactivas que faciliten realizar una marcación (anotación) fiable del centro de la pupila y, en consecuencia, posibiliten el entrenamiento y la posterior validación de los algoritmos automatizados para estimar el centro de la pupila. El objetivo de este trabajo es desarrollar una herramienta de código abierto para anotar, de forma semiautomática e interactiva, el centro de la pupila por parte de un especialista.

Método

El diseño de la herramienta software se realizó teniendo en cuenta los requisitos funcionales y no funcionales descritos a continuación.

Entre los requisitos funcionales que debe cumplir la aplicación se encuentran: lectura y visualización de la imagen, operaciones opcionales de apoyo a la anotación, seleccionar el algoritmo de ajuste y puntos para la anotación semiautomática del centro de la pupila, guardar resultados de la anotación y visualizar la anotación guardada.

Por otra parte, la herramienta debe cumplir con requerimientos no funcionales como ser multiplataforma y tener un costo computacional moderado que permita su ejecución en ordenadores. con prestaciones limitadas.

La aplicación se desarrolló utilizando el lenguaje de programación Python, el cual cumple con el requerimiento multiplataforma, al igual que el marco de trabajo Qt, utilizado para el desarrollo de la interfaz gráfica a través de la integración para Python, PySide2.

El proceso de marcación depende de las características de la imagen y de la experiencia del anotador. En ocasiones se presenta una imagen clara y la anotación se realiza directamente sin mayor complejidad. Sin embargo, en otros casos aparecen efectos indeseables que constituyen perturbaciones y dificultan la anotación.9 En dichos casos, las operaciones opcionales de ajuste de contraste o los métodos de ajuste de elipse y círculo que se describen brevemente a continuación, pudieron facilitar la anotación.

  • a) Ajuste de elipse.

  • El algoritmo de ajuste de elipse que se utilizó en esta herramienta consistió en un método de ajuste de mínimos cuadrados enfocado en elipses12 sobre un conjunto de datos dispersos ubicados en el borde de la pupila. Este algoritmo proporcionó ventajas en términos de sensibilidad a las oclusiones y al ruido. Primero, se presentó un vector con las coordenadas x y y de 5 puntos marcados por un especialista; luego, estos datos se normalizaron y el ajuste de la cónica pudo ser abordado minimizando la suma de las distancias algebraicas cuadradas de la curva para los 5 puntos seleccionados.

  • b) Ajuste de círculo.

  • El método de ajuste de círculo geométrico implementado estuvo basado en dos pasos fundamentales: la selección de un círculo inicial y la minimización de forma iterativa de la distancia entre el círculo inicial y el conjunto de puntos seleccionados por el usuario. En la inicialización se construyó un círculo basado en la propiedad de que, para cualquier triplete dado de puntos no alineados, hay un solo círculo que pasa por los tres puntos. Una vez que se tuvo la suposición inicial para el centro del círculo, se realizó un proceso iterativo para obtener el mejor ajuste con relación a los puntos establecidos. El uso de un estimador de mínimos cuadrados basado en la distancia euclidiana entre los puntos y el círculo fue una opción común para dicho ajuste. Esta minimización se realizó usando el algoritmo de Levenberg-Marquardt13 con 50 iteraciones.

Resultados

La aplicación se implementó con la utilización del lenguaje de programación Python y proporcionó varias funciones auxiliares que facilitaron la tarea del anotador. La herramienta propuesta se denominó PUPILA (del inglés PUPIL Annotation). La interfaz gráfica de usuario principal de esta se muestra en la figura 1 y estuvo compuesta por las siguientes partes:

  • Panel izquierdo: permite previsualizar y acceder rápidamente a todas las imágenes oculares localizadas en el directorio de trabajo actual.

  • Panel central o principal: permite visualizar en detalle la imagen seleccionada, aumentar y disminuir la escala de visualización y desplazar el área visualizada de la imagen.

  • Panel derecho: permite visualizar los detalles de la anotación, guardarla, cancelarla y/o acceder rápidamente a la siguiente imagen del directorio.

  • Barra de menú: contiene una serie de elementos de menú que permiten acceder a las funcionalidades de la aplicación.

Interfaz gráfica de usuario de la herramienta software PUPILA.

Panel izquierdo

El panel izquierdo de la interfaz gráfica de la aplicación muestra una previsualización de todas las imágenes que se encuentran en el mismo directorio de la imagen cargada en el panel principal. Las imágenes previsualizadas serán visibles en tamaño original, en el panel central, una vez se haya realizado un clic sobre su miniatura. También, en la esquina inferior del panel izquierdo se expone continuamente el valor de las coordenadas (x, y) por las que se desplaza el cursor sobre la imagen que se visualiza en el panel principal.

Panel central o principal

El panel central constituye el visor de imágenes de la aplicación. Permite inspeccionar en detalle la imagen cargada, las operaciones de procesamiento aplicadas y la anotación guardada. Además, posibilita aumentar (zoom in) y disminuir (zoom out) el área de la pupila al mover la rueda del mouse y recorrer otras partes de la imagen, posterior al aumento de zoom.

Panel derecho

El panel derecho brinda información al usuario sobre los puntos que fueron seleccionados para el ajuste de elipse/círculo y sobre los parámetros resultantes de éste. Una vez realizado este proceso, se visualizan tres botones correspondientes a las funcionalidades de "Guardar", "Cancelar" y "Siguiente". Al presionar el primero de ellos, se exportan los parámetros calculados (centro, radio, semiejes, etc.) a un fichero *.csv y se notifica al usuario que el archivo fue guardado exitosamente o que ocurrió un error, en caso contrario. El botón “Cancelar” retorna la aplicación a su estado inicial, perdiendo todos los cambios realizados. El botón “Siguiente” carga la próxima imagen a anotar.

Barra de menú

La barra de menú contiene cinco menús principales, que agrupan una serie de funcionalidades para la gestión y edición de la imagen ocular (Figura 2). Menú "Archivo" (a): brinda todas las facilidades en cuanto a la administración del sistema en sí y gestión de archivos. Permite cargar la imagen y visualizar su anotación, así como salir de la aplicación. La opción “Abrir” (b), abre un cuadro de diálogo que permite acceder a la ubicación de la imagen ocular (en formato.jpg) para su lectura y visualización en el panel principal.

Barra de menú de PUPILA: (a) Archivo, (b) Abrir imagen.

La opción “Mostrar anotación” en el menú "Archivo" (a), permite una vez anotado el centro de la pupila en una imagen cargada, leer las coordenadas del archivo *.csv asociado y dibujar un círculo o una elipse, cuyo centro esté ubicado en las coordenadas leídas.

En Menú "Ajustar": se presentan dos algoritmos para realizar el ajuste de la pupila a una de dos formas geométricas, elipse o círculo. Para ambos casos, el usuario debe marcar 5 puntos (x, y) que se encuentren en el borde de la pupila, los cuales representan la entrada del algoritmo. Luego se realiza el ajuste por mínimos cuadrados. Si la opción seleccionada fue ajuste de elipse, los parámetros que serán notificados en el panel derecho de la aplicación serán: “Centro”, “Semieje Mayor”, “Semieje Menor”, “Ángulo de Rotación” (Figura 1). Si se escoge la opción de ajuste de círculo aparecerá en el panel derecho de la aplicación los parámetros “Centro” y “Radio”, devueltos por el algoritmo, como se muestra en la figura 3.

Opción ajuste de círculo en el Menú Ajustar.

En Menú "Imagen": se proporcionan operaciones de procesamiento digital de imágenes para mejorar la calidad de la imagen o destacar determinados atributos dentro de la misma, como ecualización de histograma, umbralización, corrección gamma y logarítmica (Figura 4).

Opciones del menú Imagen (izquierda) y corrección Gamma (derecha).

La opción “Ecualizar histograma” permite mejorar el contraste de la imagen mediante la redistribución de las frecuencias con que aparecen los diferentes niveles de grises en el histograma de una imagen en escala de grises.

La funcionalidad de “Umbralización” es uno de los métodos de segmentación más importantes, cuyo objetivo es convertir una imagen en escala de grises a una nueva con solo dos niveles, de manera que los objetos queden separados del fondo. Para extraer el objeto del fondo se selecciona un umbral de intensidad que separe los dos conjuntos. En esta aplicación, inicialmente el umbral se selecciona usando el método de Otsu y luego se puede modificar por parte del usuario, desplazando una barra horizontal en el panel derecho de la interfaz gráfica.

La corrección gamma y logarítmica son una familia de funciones que se encargan de comprimir y ampliar el rango dinámico del brillo de una imagen. En la corrección logarítmica se les asigna a las regiones oscuras un mayor rango dinámico en la salida, mejorando el contraste en las zonas con poca iluminación. Por otro lado, en la corrección gamma se comprimen los valores de los píxeles oscuros y se expanden los brillantes, por lo que visualmente la imagen se oscurece mejorando la diferenciación de detalles en zonas brillosas.

La configuración de la ganancia para las operaciones de corrección gamma y logarítmica se establece seleccionando un valor desplazando una barra horizontal en el panel derecho de la interfaz gráfica como se observa en la parte superior derecha de la figura 4 de la derecha.

En Menú "Configuración": permite seleccionar el idioma de visualización de la aplicación. Los idiomas disponibles son: español, inglés y francés. Por defecto, la aplicación se muestra en el mismo idioma del sistema operativo del usuario.

En Menú "Ayuda": brinda ayuda sobre funcionamiento del sistema y cómo resolver pequeños problemas debido a errores de manipulación del usuario.

Discusión

La anotación manual del centro de la pupila es un proceso laborioso, tedioso y propenso a errores aun cuando la morfología de la pupila y/o el iris se visualice claramente y no se encuentre interferida por diversos elementos como oclusiones, destellos, desenfoques, problemas de contraste iris-pupila, presencia de pestañas y cabellos, entre otros. La selección de realizar un ajuste circular o elíptico depende de la morfología que muestre la pupila o el iris en presencia de elementos interferentes o no.

Cuando la pupila es pequeña o el sujeto mira al centro de la videocámara, el ajuste de círculo es más conveniente. Si la pupila está dilatada o el sujeto mira a un lateral de la videocámara, el ajuste de elipse es más eficaz. Cuando hay oclusión de la pupila, se puede usar indistintamente uno u otro, aunque el ajuste de círculo suele ser más conveniente. La anotación del centro de la pupila usando diversas funciones de preprocesamiento para mejorar la calidad de la imagen y los métodos de ajuste de círculo y de elipse facilitan el trabajo del anotador, permitiendo mejorar la exactitud obtenida.

Hasta el momento, la herramienta ha permitido anotar 1 000 imágenes de las bases de datos CASIA, UBIRIS y otras adquiridas experimentalmente. Además, abre nuevas posibilidades para el desarrollo de nuevos algoritmos de detección del centro de la pupila basados en métodos de aprendizaje automático supervisado y ayuda a la comunidad científica a incrementar el número de bases de datos anotadas que puedan ser usadas por otros especialistas en futuros experimentos.

Conclusiones

La nueva herramienta desarrollada, única de su tipo hasta el momento, es de código abierto y multiplataforma, lo cual brinda grandes ventajas para el usuario en términos de la compatibilidad con todo tipo de dispositivos y de su uso gratuito. Además, proporciona un ambiente agradable e interactivo para anotar el centro de la pupila mediante el uso de una serie de prestaciones que garantizan comodidad, exactitud y reducción de subjetividades en el trabajo del especialista.

Notas al pie:
  • No se recibió financiación para el desarrollo del presente artículo.

Referencias bibliográficas
Historial:
  • » Recibido: 20/02/2022
  • » Aceptado: 02/04/2022
  • » Publicado : 09/05/2022




Copyright (c) 2022 Talía Vázquez-Romaguera, Carlos Abraham Pérez-Marrero, Carlos Román Vázquez-Seisdedos

Licencia de Creative Commons
Esta obra está bajo una licencia de Creative Commons Reconocimiento 4.0 Internacional.