El presente trabajo corresponde a una publicación en el Congreso de Microelectrónica Aplicada 2016 San Luis, Argentina y consiste en el desarrollo de un sistema de interacción humano-computador basado en un rastreador ocular de bajo costo para el control del cursor del mouse del computador a través del seguimiento de la mirada de la persona.
El sistema está destinado a las personas afectadas con algún tipo de discapacidad motora, que no tienen acceso al uso de las TIC y están excluidas del mundo digital.
El sistema permite interactuar con el computador de forma natural a través de la mirada, requiere poco esfuerzo consciente, pudiendo activar diversos mecanismos como escribir usando un teclado accesible en pantalla, navegar por Internet, enviar un correo electrónico, entre otras acciones. El sistema a su vez tiene la capacidad de adaptarse a cualquier persona, trabajar en tiempo real y bajo condiciones variables de iluminación.
El diseño del hardware del rastreador consistió en un marco de gafas estándar al cual se le añadió un brazo de extensión y diodos LED infrarrojos en forma de triángulo alrededor de una cámara modificada para trabajar en el espectro del infrarrojo cercano. El software desarrollado para el sistema rastreador está escrito en lenguaje de programación C++ y emplea las bibliotecas para visión artificial OpenCV.
Mediante procesamiento de imágenes y algoritmos de visión artificial, el sistema captura y segmenta la pupila de la persona en tiempo real consiguiendo, a través de una interfaz asistente para personas con discapacidades motoras, lograr el control del puntero del mouse de la PC.
1. Rastreador ocular para accesibilidad a computadoras
de personas con limitación física
Utilización de bibliotecas OpenCV
Christian G. Gomez
Facultad de Ciencias Físico Matemáticas y Naturales (FCFMyN)
Universidad Nacional de San Luis (UNSL)
San Luis, Argentina
cristian.gomez.86@gmail.com
Resumen— En este trabajo se describe la implementación de
un prototipo de rastreo ocular ligero y económico, para
accesibilidad a computadoras utilizando la biblioteca de visión
artificial OpenCV.
La aplicación está destinada a personas con limitaciones
físicas con el fin de ser un nexo de comunicación e inclusión entre
el sujeto y la sociedad.
El rastreador ocular permite seguir la trayectoria pupilar y
controlar el puntero del mouse permitiendo realizar diversas
tareas en el computador usando el movimiento de los ojos de
manera cómoda, natural y relajada.
Palabras Clave—Prototipo, Rastreador, Ocular,
Accesibilidad, Movimiento, Discapacidad.
I. INTRODUCCIÓN
El estudio de los movimientos oculares es un tipo de
medición biométrica [1] que ayuda a comprender el
inconsciente de los sujetos en observación. Esto se consigue
recolectando datos en tiempo real relativos a la dirección de la
mirada de los ojos de la persona el cual resulta muy útil en
muchas aplicaciones [2].
Las personas que padecen de inconvenientes físicos o con
discapacidades motoras pueden encontrar en la tecnología un
sostén adecuado para llevar una vida más plena e
independiente, gracias a los dispositivos y software
especializados existentes en el mercado [3].
Esto ha sido una de las principales motivaciones para
desarrollar un sistema de rastreo ocular económico, ligero y
seguro.
II. DESCRIPCIÓN FÍSICA
El hardware de la interfaz de rastreo ocular está basado en
los prototipos de bajo costo como sugieren los modelos [4] [5]
[6] dividido en tres partes bien definidas: la estructura del
rastreador, el módulo de captura y el iluminador infrarrojo.
A. Estructura del Rastreador Ocular
La principal parte de la construcción del prototipo de
rastreo ocular es una gafa de seguridad al cual se le retiran los
acrílicos de protección. El marco de la estructura posee puente
nasal para mejorar la estabilidad en el uso.
Fig. 1 Estructura del rastreador ocular.
La Fig. 1 muestra la estructura correspondiente del
prototipo rastreador ocular.
El módulo está compuesto por una cámara web USB
Genius FaceCam 320X VGA modificada para trabajar en el
rango de infrarrojo cercano. Para ello el filtro de bloqueo de
luz infrarroja que posee la lente.
B. Iluminador infrarrojo
El iluminador infrarrojo es un circuito que está compuesto
por tres diodos Led infrarrojos de 5mm cuya longitud de onda
de trabajo es de 850nm.
Los diodos están montados en forma de triángulo
alrededor de la cámara del módulo de captura, ver Fig. 2. De
esta manera, se pretende iluminar uniformemente el área
pupilar facilitando el uso en distintos ambientes con
iluminación no homogénea.
El circuito iluminador infrarrojo está alimentado con los 5
voltios desde el conector USB de la placa del módulo de
captura, a través de un resistor de 100 ohmios, Fig. 3.
Fig. 2 Iluminador infrarrojo.
2. Fig. 3 Alimentación del circuito iluminador infrarrojo.
Al iluminar y registrar el ojo con luz infrarroja la imagen
capturada tiene una pupila más distintiva que la ofrecida por
fuente de luz visible. Esto se debe a que la pupila no se
contrae con este tipo de fuente de luz. Aparece ya sea como
una pupila brillante u oscura [7] [8] y facilita el procesamiento
para su identificación.
La técnica de pupila oscura sucede cuando la fuente de luz
infrarroja esta fuera de eje respecto a la cámara. Este método
trabaja mejor tanto en ambientes interiores y exteriores. Es el
método mayormente empleado para seguimiento ocular.
Por otra parte, la técnica de pupila brillante sucede cuando
la luz infrarroja esta en eje (coaxial) respecto a la cámara. Este
tipo de sistema trabaja mejor en ambientes interiores.
La configuración empleada en el prototipo descripto en
este artículo se basa en la técnica de pupila oscura, ver Fig. 4.
III. PROCESAMIENTO DE LA IMAGEN OCULAR
El proceso del seguimiento de la mirada del usuario
empieza en el módulo de captura. Este recibe imágenes
fotogramas del ojo derecho de la persona y envía las señales
de video a la computadora en forma serial a través de un cable
USB.
En la computadora se ejecuta un algoritmo escrito en
lenguaje de programación C++, usando técnicas de visión
artificial [9] y empleando la biblioteca de OpenCV [10] [11].
Luego se realiza el procesamiento de las imágenes fotogramas
del ojo para identificar la pupila.
La secuencia de etapas se describe a continuación:
A. Adquisición de imágenes
La biblioteca OpenCV permite almacenar cada imagen
fotograma en un contenedor básico llamado Mat para la
gestión automática de memoria.
Fig. 4 Técnica de pupila oscura.
Fig. 5 El contenedor Mat.
Como se muestra en la Fig. 5, el contenedor Mat consiste
de filas y columnas, donde para cada pixel P(x, y) de la
imagen, es un envase que contiene los valores R (canal rojo),
G (canal verde), B (canal azul) y un escalar alpha (A) para la
codificación de la transparencia.
Cada valor R, G, B y A se representa con un número desde
0 a 255 (8 bits sin signo) indicando el nivel de intensidad de
los colores asociados y la transparencia a ese pixel P(x, y).
B. Pre-Procesamiento
En esta etapa se mejora la imagen resaltando determinadas
características y eliminando otras que no son necesarias.
El proceso inicia con el cálculo de la media ponderada de
los distintos componentes de color de cada pixel de la imagen
ocular original, Ec. 1. Se forma una nueva imagen con 256
niveles de gris por pixel con la información de luminancia.
Fig. 6a.
𝑌 = 0,3 ∗ 𝑅 + 0,59 ∗ 𝐺 + 0,11 ∗ 𝐵 (1)
Para suavizar y reducir el contenido en ruido presente en
cada imagen fotograma ocular se utiliza un filtro gaussiano
2D. Este filtro se aplica a cada pixel de la imagen. Fig. 6b.
Finalmente se maximiza el contraste de la imagen ocular
sin perder información de tipo estructural. Para ello se realiza
una ecualización de histograma como muestra la Fig. 6c.
C. Segmentación
La imagen ocular en escala de grises y ecualizada se
convierte a una nueva con sólo dos niveles, es decir una
imagen en blanco y negro (binaria). Este procedimiento se
conoce como umbralización.
Opencv ofrece seis funciones de umbralización entre las
cuales se encuentra la umbralización binaria invertida. Donde
cada pixel P(x, y) en la imagen se convierte en un nuevo pixel
P´(x, y) cuando su nivel de luminancia supera un determinado
umbral establecido. Esta conversión viene dada por la Ec. 2.
𝑃´(𝑥, 𝑦) = {
0 𝑠𝑖 𝑃(𝑥, 𝑦) > 𝑢𝑚𝑏𝑟𝑎𝑙
255 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜
(2)
3. Fig. 6 Imagen ocular: a) Escala de grises; b) Filtrado gaussiano; c)
Ecualización de histograma.
La Fig. 7 muestra la imagen ocular binaria y su
comportamiento para distintos valores de umbral. A medida
que se disminuye este valor, se descartan parpados, ceja,
pestaña que se interpretarían como ruido para el proceso de
identificación de la pupila.
Un umbral= 5 resulta aceptable para conseguir una pupila
notable y distintiva. Un valor menor a éste no resultaría
efectivo.
Luego se realiza un procesamiento morfológico con
elementos estructurantes para la supresión final del ruido. El
resultado puede verse en la Fig. 8a.
Finalmente se emplea el algoritmo de Canny provisto por
OpenCV para detectar los bordes de la pupila, Fig. 8b.
D. Identificación de la pupila
La etapa de identificación de la pupila consiste en el
etiquetado y reconocimiento de la misma en tiempo real. Para
ello, la detección de la pupila y su posición exacta de
fotograma en fotograma debe ser satisfactoria.
Se proponen dos métodos de identificación: La
transformada de Hough circular y contornos rasterizados.
Ambas funciones son provistas por OpenCV.
La transformada de Hough circular consiste en un
algoritmo de detección de círculos. Éste algoritmo recorre
todos los puntos fronteras de la figura a caracterizar; donde
para cada uno de ellos se plantean los infinitos círculos que
pasan por ese punto con distintos radios y distintos centros. El
algoritmo acumula un voto para aquellas curvas que cumplan
con la caracterización circular de dicha figura.
En cuanto a los contornos rasterizados, se pueden explicar
simplemente como una curva que une todos los puntos
continuos (pixeles a lo largo de la frontera), que tiene el
mismo color o intensidad.
Fig. 7 Umbralización: a) umbral=50; b) umbral=25; c) umbral=5.
Fig. 8 Pupila: a) segmentada; b) borde.
Los contornos son una herramienta útil para el análisis de
la forma, la detección y reconocimiento de objetos.
La sección de resultados muestra el comportamiento de
cada método propuesto.
Finalmente una vez detectada la pupila se calcula su centro
de masa o punto centroide (Cx, Cy), Fig. 9.
E. Calibración
Los procedimientos de calibración [12] para un sistema de
rastreo ocular se efectúan a través de una pantalla del
computador. En ella, se muestran puntos estímulos por los
cuales el usuario debe ir observando para determinar el área de
trabajo del sistema rastreador.
Para vincular la mirada del usuario respecto un objetivo en
la pantalla del ordenador, se utilizan funciones polinómicas y
transformadas geométricas de mapeo bilineal [13], Ec. 3.
{
𝑆𝑥 = 𝑎 . 𝐶𝑥 + 𝑏 . 𝐶𝑦 + 𝑐 . 𝐶𝑥 . 𝐶𝑦 + 𝑑
𝑆𝑦 = 𝑒 . 𝐶𝑥 + 𝑓 . 𝐶𝑦 + 𝑔 . 𝐶𝑥 . 𝐶𝑦 + ℎ
(3)
En la función polinómica de primer grado dada por la
ecuación anterior, (Cx, Cy) es la coordenada del punto
centroide de la pupila y (Sx, Sy) es la coordenada del punto
estímulo en pantalla del computador.
La función polinómica incluye además ocho parámetros el
cual consideran factores en dos dimensiones de rotación,
traslación, escalado, estabilidad en paralelo y distorsión entre
(Cx, Cy) y (Sx, Sy). Estos parámetros constantes se calculan
resolviendo la Ec. 3.
El prototipo rastreador ocular propuesto en este trabajo
utiliza un algoritmo de calibración que emplea cuatro puntos
estímulos en pantalla tal como muestra la Fig. 10.
El usuario mira cada uno de estos estímulos siguiendo un
orden. Es decir, observa el punto 1 y en simultáneo hace un
clic en forma manual con el ratón dentro del objetivo
cuadrado. Luego, se procede de la misma manera con los
demás puntos estímulos hasta el número 4.
Fig. 9 Pupila y centroide detectado e identificado.
4. Fig. 10 Ventana de calibración.
Posteriormente el punto calculado (Sx, Sy) se envía como
parámetro a la función de control del puntero del ratón.
Finalmente se prueba el prototipo rastreador ocular con un
software especializado para personas con discapacidades
motoras tal como GazeTalk5, entre otros [14].
Gazetalk5, Fig. 11, permite al usuario realizar distintas
acciones entre las cuales se destacan, escribir en un teclado
virtual predictivo en pantalla, navegar por internet, enviar y
recibir correos electrónicos, escuchar música, ver videos y leer
archivos pdf usando la mirada en forma natural y relajada.
El software Gazetalk5 permite configurar la interacción a
la interfaz gráfica de usuario por medio de la mirada fija
usando tiempos de permanencia o mediante clics por pestañeo.
IV. RESULTADOS EXPERIMENTALES
La Fig. 12, muestra el comportamiento en tiempo real de
los métodos descriptos en párrafos anteriores.
La Transformada de Hough (etiqueta roja) logra una buena
identificación de la pupila cuando la mirada es hacia el centro
de la pantalla, Fig. 12a. La identificación se pierde cuando la
mirada es hacia los costados con lo cual no sigue el contorno
de la pupila y presenta errores en la detección. Esto se debe a
que la pupila, en referencia a la cámara del módulo de captura,
toma una forma elíptica, Fig. 12b y Fig. 12c.
Fig. 11 Pantalla principal de Gazetalk5.
Fig. 12 Comportamiento de los métodos de identificación de la pupila:
Transformada de hough circular (etiqueta roja) y contornos rasterizados
(etiqueta azul).
Experimentalmente se comprobó que usando el método
por contornos rasterizados (etiqueta azul) presenta mejor
comportamiento de identificación de la pupila en tiempo real.
Éste método sigue perfectamente el contorno de la misma, Fig.
12c, por lo tanto es el procedimiento elegido para el propósito
de este trabajo.
Efectuada la calibración del prototipo rastreador ocular,
una plantilla de validación permite comprobar el normal
funcionamiento.
La plantilla consiste de cinco objetos cuadrados estímulos
desplegados en pantalla donde el usuario observa los mismos
y va dibujando el rastro de su mirada (línea azul) a medida que
interactúa con ellos, ver Fig. 13.
Los objetos estímulos se disponen de tal manera de cubrir
el área de trabajo del rastreador ocular verificando su
comportamiento en las esquinas y en su centro.
En el diseño de la plantilla se tuvo en cuenta emplear
objetos de color intenso, como el rojo y el naranja, que
estimulan la vista y dispuestos sobre fondo negro de tal
manera que el brillo no afecte a la contracción pupilar.
La precisión de los ojos está relacionada con el área de la
fóvea en la retina del ojo, una zona de alta resolución que tiene
un tamaño entre 1 y 2 grados de ángulo visual [15] [16]. Éste
ángulo corresponde a una región de 20 a 40 píxeles en una
pantalla de 17 pulgadas con una resolución de 1024x768
píxeles visto desde una distancia de 50 cm.
Posteriormente se utiliza una segunda plantilla de
validación para calcular el error de la mirada al estímulo tanto
en ángulo como en pixeles, Fig. 14a y Fig. 14b.
Para el cálculo del error mirada – estímulo (EME) se
emplea la Ec. 4.
𝐸𝑀𝐸(°) = 𝑇𝑎𝑛−1
(
√𝑋𝑒2 + 𝑌𝑒2
𝑍
) (4)
Donde Z es la distancia desde el ojo del usuario a la
pantalla. Xe es el error de la distancia entre la posición de
referencia del estímulo y la posición de la mirada calculado
sobre el eje x en la pantalla. Ye es el error de la distancia
5. Fig. 13 Plantilla de validación.
entre la posición de referencia del estímulo y la posición de la
mirada calculado sobre el eje y en la pantalla.
En la Tabla I se muestran los resultados para diez
mediciones a una distancia Z = 50cm de la pantalla del
ordenador.
Los rastreadores oculares actuales alcanzan una precisión
de un ángulo visual del usuario de 0,5º [17] [18]. Este es el
equivalente de una región de aproximadamente 10 píxeles en
una pantalla de 17 pulgadas con una resolución de 1024x768
píxeles visto desde una distancia de 50 cm.
El promedio de error para el rastreador ocular propuesto es
de 38,422 pixeles y 0,637 grados de error de ángulo visual.
La precisión relativa puede mejorarse haciendo los objetos
estímulos en la pantalla mucho más grande, tal como se puede
apreciar en la plantilla de validación. Esto los hace más fácil
de interactuar con ellos y mejora el rendimiento del ojo.
Se debe tener en cuenta el equilibrio entre el espacio
disponible y la precisión requerida mínima en cuanto al diseño
de una interfaz gráfica del usuario.
Fig.14: a) Plantilla para el cálculo del error mirada – estímulo; b) Errores de
medición.
TABLA I. ERROR MIRADA - ESTÍMULO
V. CONCLUSIONES Y TRABAJOS FUTUROS
El precio de los dispositivos rastreadores oculares
comerciales tiene un costo elevado y esto es una limitación. Es
por ello que surgen propuestas económicas, de código abierto,
las que pueden no ser robustas como los productos de alta
gama pero poseen una precisión aceptable. El sistema
propuesto no escapa a ello.
En este trabajo se describió cómo construir un rastreador
ocular a corto plazo, con bajo presupuesto y principalmente
pensado para su uso en accesibilidad a computadoras para
personas con discapacidades motoras.
Se evaluó la precisión del mismo siendo aceptable para
muchas aplicaciones y comparable con dispositivos similares
de alta gama. En definitiva con un previo entrenamiento se
puede alcanzar un control total sobre el dispositivo.
La principal desventaja del rastreador ocular es no poder
usarse en personas que usen anteojos o lentes de contacto. El
sistema no puede detectar e identificar la pupila debido a las
reflexiones de la luz infrarroja incidente. Ésta luz no es
recibida correctamente hacia la cámara del módulo de captura.
Se plantea esta problemática a solucionarse en trabajos
futuros.
Es posible agregar mayor robustez al prototipo rastreador
en cuanto a su comportamiento frente al ruido. Precisamente
el filtrado del ruido de oscilación del ojo (microsacadas) que
se presentan durante la mirada fija. Una alternativa es el uso
del Filtro de Kalman [19] que además se puede utilizar para
predecir los movimientos del ojo.
Se prevé a trabajos futuros la adición de una segunda
cámara que permita ampliar la perspectiva y rango de visión
monocular a binocular.
También está previsto adaptar una tercer cámara frontal o
cámara escénica para poder usar el sistema rastreador ocular
no solo sobre una pantalla de ordenador sino más bien en el
mundo exterior.
N° Medición Error en
pixeles
Error en ángulo
(grados)
1 54,08 0,82
2 16,28 0,31
3 44,64 0,73
4 48,38 0,77
5 24,17 0,45
6 45,80 0,74
7 39,82 0,67
8 33,24 0,59
9 50,22 0,79
10 27,59 0,50
6. VI. REFERENCIAS
[1] R. Bhatia, “Biometrics and Face Recognition Techniques”.
International Journal of Advanced Research in Computer
Science and Software Engineering, Volume 3, Issue 5, May
2013.
[2] R. G. Lupu, and F. Ungureanu, “A survey of eye tracking
methods and applications”. “Gheorghe Asachi” Technical
University of Iasi, Faculty of Automatic Control and Computer
Engineering. Romania, August 29, 2013.
[3] Assistive Technology in the Workplace for People with a
Disability. National Disability coordination Officer Programs
(NDCO). Published by Deakin University, Australian, 2014.
[4] M. Kowalik, “How to build low cost eye tracking glasses for
head mounted system”, Faculty of Computer Science and
Information Technology The West Pomeranian University of
Technology, Szczecin Poland 2010.
[5] R. Mantiuk, M. Kowalik, A. Nowosielski, and B. Bazyluk. “Do-
It-Yourself Eye Tracker: Low-Cost Pupil-Based Eye Tracker for
Computer Graphics Applications”, West Pomeranian University
of Technology in Szczecin, Faculty of Computer Science,
Szczecin, Poland 2010.
[6] C. G. Gomez, N. B. Perez. “Sistema de rastreo ocular para la
intervención de personas con discapacidades motoras”. Facultad
de Ciencias Físico Matemáticas y Naturales (FCFMyN)
Departamento de Física (DF) - Departamento de Informática
(DI) Universidad Nacional de San Luis (UNSL)
Argentina Ejercito de Los Andes 950 San Luis.
[7] C. Morimoto, D. Koons. A. Amir, and M. Flickner, “Pupil
detection and tracking using multiple light sources”. IBM
Almaden Research Center, 2000. San Jose, California.
[8] Z. Zhu, K. Fujimura, and Q. Ji, “Real-Time Eye Detection and
Tracking Under Various Light Conditions”. Computer vision
and Image understanding, Special Issue on Eye Detection and
Tracking, Volume 98, Issue 1, Pages 1-210 (April 2005).
[9] R.C Gonzalez, R.E. Woods, “Digital Image Processing”.
Prentice Hall, second edition 2002.
[10] Learning OpenCV, Computer Vision in C++ With the OpenCV
Library, Second Edition O’Reilly. A. Kaehler, G. Bradski.
2008.
[11] The OpenCV Tutorials, Release 2.4.9.0. 2014.
[12] K. Harezlak, P. Kasprowski, M. Stasch, “Towards accurate eye
tracker calibration – methods and procedures”. Knowledge-
Based and Intelligent Information & Engineering Systems 18th
Annual Conference, KES-2014 Gdynia, Poland, September
2014 Proceedings.
[13] R. Hartley, A. Zisserman, “Multiple View Geometry in
Computer Vision”, Second Edition. Cambridge University
Press, 2004.
[14] “Assistive technologies to support people with disabilities”,
European Parliament, European Union 2015.
[15] R. Matos, “Designing eye tracking experiments to measure
human behavior”. Tobii Technology, Eindhoven, the
Netherlands, August, 2010.
[16] Tobii technology, “Accuracy and precision test method for
remote eye trackers”. Test specification version 2.1.1, February
2011.
[17] Tobii technology. Product Description Tobii Pro Glasses 2
version 1.0.8, November 2015.
[18] SensoMotoric Instruments SMI. Product Description SMI Eye
Tracking Glasses 2 Wireless, Germany 2014.
[19] O. V. Komogortsev, andJ. I. Khan, “Eye Movement Prediction
by Kalman Filter with Integrated Linear Horizontal Oculomotor
Plant Mechanical Model”. Proceedings of the Eye Tracking
Research & Application Symposium, ETRA 2008, Savannah,
Georgia, USA, March, 2008.