viernes, 9 de mayo de 2014

Eye tracker

Hola a todos, una nueva semana pasa y es hora de una nueva entrada, solo que esta semana es diferente, acordamos con la profesora de cambiar las lecturas por un poco de investigación práctica en cuanto a los eye tracker. Por lo general los eye tracker son dispositivos muy útiles, pero a su vez también tienen un alto costo, tanto monetario, como lo invasivo para quien lo usa.
Es por eso que el objetivo de estas últimas semanas fue encontrar un eye tracker que pudiera ser utilizado desde una cámara externa, como por ejemplo, la webcam de un computador.
Veamos primero lo que es un eye tracker y como funciona. Este es un dispositivo con cámaras calibradas que permite, dado un individuo, evaluar de forma certera el punto donde este fija su mirada. Hoy en día estos dispositivos, aunque cada vez mas pequeños y ligeros, siguen atados a un montaje físico sobre la persona, esta es una gran desventaja, puesto que fuerza a tener un dispositivo para cada usuario, o bien, pedirle a los usuarios que compartan un mismo dispositivo alternando su uso. Otra desventaja es la oclusión producida por el montaje y las cámaras; estos dispositivos cuentan con al menos dos cámaras, una apuntando en el mismo sentido que la cara, y la otra directamente sobre la pupila del ojo, de forma tal que con una se obtiene una idea del cono de visión y con la otra se puede saber que esta enfocando la persona dentro de ese foco. Pero estas cámaras y sus sostenedores pueden llegar a interferir en la vista, afectando la experiencia del usuario. Otro problema no menor de estos dispositivos es el precio, por ejemplo, un sistema de eye tracking de Turnkey HMD va desde los 10,698 USD (Monocular de 90 Hz) a los 18,998 USD (Binocular de 400 Hz) [1]. Con esto en mente, hablemos de algunas ventajas y usos de los eye tracker, por ejemplo, el control de dispositivos o software por medio de la vista (como en [2]), o mas enfocado al entorno del curso, el conocer el punto de observación del usuario intrínsecamente permite conocer el punto de interés, y se pueden extraer múltiples datos de esta información, por ejemplo, conociendo la permanencia dentro de un área, se puede medir que tan interesado, o bien cuales son los distractores mas frecuentes o potente, y otras aplicaciones de comportamiento predictivo (como en [3] y [4]).
Con lo anterior en mente, recurrimos a visión por computación para resolver este problema. 
Hay distintos algoritmos propuestos para hacer seguimiento del ojo con cámaras web, algunos basados en la segmentación por color, otros por features menos intuitivas. Les cuento en resumen y paso a paso del método que me pareció mas robusto y que termine por implementar.

1. Detección del rostro. Un método clásico es el método de Viola Jones [5], el cual consiste en un clasificador cuyo tiempo de entrenamiento es muy alto, pero su tiempo de ejecución es muy elevado. Usa Haar features, que son en resumen un filtro de cuadrados y rectángulos negros sobre un fondo blanco que se aplican a la imagen para resaltar áreas de interés, un ejemplo de estas: 

Para no entrar en detalle de este método, les dejo en este link http://www.cs.ubc.ca/~lowe/425/slides/13-ViolaJones.pdf una presentación bastante explicativa del funcionamiento y teoría de este para los más interesados.

2. Detección de los ojos. Una vez ya con el rostro detectado, acotamos la imagen a solo el área de interés, y podemos buscar, ya sea por un detector de Viola Jones como el anterior pero entrenado para buscar ojos, o un modelo probabilístico de donde se encuentran los ojos (la zona media superior), o bien una combinación de ambas.

3. Detección de la pupila. Para poder obtener la información deseada necesitamos tener la posición de la pupila, o un estimado de esta, considerando la luz del entorno invariante, se puede estimar su movimiento por el brillo sobre la zona obscura (mayormente pupila e iris). Esto anterior dada la baja resolución que se obtiene a este punto de la imagen.

4. Estimación de la posicion de la pupila con respecto al ojo. Podemos ahora estimar a grandes rasgos el foco de atención del usuario calculando la posición de la pupila con respecto al ojo y estimar la dirección de a donde mira.

Si bien es un método menos robusto a movimientos bruscos o muy amplios, aún permite ser utilizado por ejemplo, frente a la pantalla de un computador, tanto para ver si su atención esta arriba o abajo en el monitor, o si esta enfocado o no en la pantalla. 

Una de las mayores desventajas de este método es la perdida del foco cuando no se esta de frente a la cámara, perdiendo información. Sin embargo uno de sus mayores beneficios es el costo monetario, que se reduce a la implementación y el hardware que es una webcam común hoy en día en cualquier computador.

El código implementado está disponible en Matlab, probado en su versión 2013a, sobre Windows 8 en una maquina de 64 bits, aunque el clasificador de Viola Jones fue implementado en opencv. Por último un video de como funciona este método (por problemas con la cámara no pude subir una demo propia)





[1] http://www.arringtonresearch.com/prices.html
[2] http://citeseerx.ist.psu.edu/viewdoc/download?rep=rep1&type=pdf&doi=10.1.1.211.8026
[3] http://dl.acm.org/citation.cfm?id=1009079
[4] http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=4503342&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D4503342
[5] https://www.cs.cmu.edu/~efros/courses/LBMV07/Papers/viola-cvpr-01.pdf

1 comentario:

  1. Hola Erick,
    Me parece interesante el tema, es más complejo en términos de algoritmos y matemáticas que los de colaboración, cuya complejidad está en estudiar seres humanos que usualmente no son racionales.
    Sobre tu post, me parece que están bien identificados los artículos ya que cubren distintos algoritmos usados con distintos dispositivos y también me parece que la presentación del tema está buena.
    Lo que no me gustó es que la descripción de cada uno estuvo pobre, en cuanto a explicación y a análisis crítico. Eché de menos también la reflexión/conclusión personal.

    Saludos,
    C.

    ResponderEliminar