Es relativamente fácil construir un Eye tracker decente que funcione para la mayoría de la gente en la mayoría de las situaciones. En un nivel básico, todo lo que necesita es una cámara, una fuente de luz y una unidad de procesamiento. La luz ilumina los ojos de la persona, aumentando el contraste entre la pupila y el iris y creando reflejos en la córnea. La cámara toma imágenes de los ojos de la persona y la unidad de procesamiento localiza la pupila y estos reflejos en la córnea. Con esta información, las posiciones conocidas de la cámara y la fuente de luz, y la anatomía del ojo humano, es posible calcular la posición y el ángulo de rotación de cada ojo. Si se calibra el sistema de eye tracking pidiendo al usuario que mire un objeto cuya posición se conoce, se tiene todo lo necesario para determinar hacia dónde mira una persona.
Sin embargo, cada nuevo caso de uso presenta nuevos retos y me gustaría que hubiera algún tipo de fórmula secreta que lo resolviera todo pero, por desgracia, no la hay. Se requiere un trabajo duro y dedicado para convertir un sistema básico de Eye tracking en algo fiable.
Para empezar, normalmente necesitamos generar conjuntos de datos masivos. Tenemos que saber qué información buscar y cómo trocear los datos para la aplicación de destino. Un escenario de investigación, por ejemplo, no requiere los mismos requisitos de cobertura de población que una función nativa de un dispositivo en un producto de venta masiva, como el renderizado foveated en un casco de realidad virtual.
Y luego está el problema de la latencia. Una aplicacion con muchos graficos que utiliza el renderizado dividido, realizando parte de la computacion en el dispositivo y parte en la nube, por ejemplo, requiere una conexion de baja latencia tanto con la red como con el Eye tracker. Por otro lado, una aplicacion que permita la seleccion de menu controlada por el ojo no tendra los mismos requisitos de latencia, lo que permite bastante filtrado temporal para mejorar la experiencia del usuario.
Algunos podrían argumentar que el eye tracking es un problema puramente informático y que el aprendizaje automático lo resolverá todo por usted. Y aunque el aprendizaje automático es una parte vital de nuestra solución, a la hora de diseñar algoritmos de eye tracking hay que tener en cuenta la anatomía del ojo, cómo interpreta el cerebro las señales visuales, así como los objetivos de la aplicación de destino.
Pero creo que la mayor lucha se produce cuando se pasa de la ideación a la comercialización. El fracaso no es una opción en un escenario de mercado masivo en el que millones de dispositivos dependen de tu tecnología para ser plenamente funcionales. Alcanzar una cobertura del 99% de la población y más allá significa que ahora hay que resolver situaciones y personas que se consideraban atípicas durante la ideación. Los párpados caídos, el maquillaje que cubre rasgos vitales, las gafas graduadas, las lentes de contacto y los ojos perezosos o dominantes son situaciones típicas. Además, es probable que tenga que gestionar el deslizamiento de los auriculares, así como las variaciones en la distancia interpupilar (IPD), la forma de la cara, la reflectancia de la piel en el infrarrojo cercano, el color del iris y las tolerancias de los componentes y la colocación.