
Pronto habrá un año en el que lanzamos el producto con la "Calibración del
rastreador ocular "
personalizada a bordo. Desafortunadamente, por varias razones, todavía no funcionó para terminar este artículo. Sin embargo, recientemente ocurrió un incidente gracioso que llevó a completar lo que se inició. Pero, primero lo primero. Espero que alguien se beneficie de nuestra experiencia, a pesar de que la publicación resultó estar húmeda.
En resumen,
Eye-tracker es un dispositivo que le permite seguir la dirección de la vista, así como la posición de los ojos y la cabeza.
Los rastreadores de ojos tienen bastantes áreas de aplicación, una de las cuales es la industria de los juegos de computadora (un
poco más ).
A menudo, la detección de la mirada es responsable de las acciones secundarias (auxiliares), pero importantes en los juegos:
- movimiento de cámara;
- apuntando
- selección de objetos para la interacción;
- selección de armas;
- llamada de pausa automática ante la pérdida de la vista;
- otros
En la mayoría de los casos, la calibración estándar (hablaremos del dispositivo
Tobii Eye Tracker 4C ) es suficiente para un uso cómodo de la era del
Eye Track .
Pero, desafortunadamente, para nuestros propósitos, la precisión del dispositivo lograda por la calibración estándar no es suficiente, porque, en nuestro proyecto, la apariencia es la principal mecánica de control.
De lo anterior,
se formó la
tarea : mejorar la calibración estándar;
condiciones : dispositivo
Tobii Eye Tracker 4C , el lenguaje de desarrollo es
C # (WPF) .
Parece ser una solución en la superficie: si desea más precisión, agregue más puntos de calibración, pero no es tan simple.
Tobii AB tiene bastantes
herramientas para trabajar con sus dispositivos. Joy no
conoció límites cuando se descubrió el
Tobii Pro SDK , que tiene todos los bollos para trabajar con la
calibración , pero como resultó más tarde, este
SDK no
es adecuado para trabajar específicamente con el modelo de
rastreador ocular que tenemos (aunque es extraño que la detección de la mirada del dispositivo todavía estaba presente al usar este
SDK ). Tenía que tomar las herramientas con más facilidad:
Tobii.EyeX.Client .
Empíricamente, se reveló el número óptimo de puntos de calibración y su ubicación: una matriz
4x3 con
12 puntos de calibración ubicados (cada uno en el centro de la celda).
Los siguientes parámetros también se encontraron empíricamente:
Algoritmo de calibración (simple a la locura)
La calibración se realiza secuencialmente, para cada celda de la matriz de calibración:
- Si la distancia entre el punto de calibración actual y el punto recibido del dispositivo es menor que la desviación máxima permitida , dicho punto (recibido del dispositivo) cae en la colección para su posterior procesamiento; de lo contrario, la calibración de la celda actual se restablece a su estado original (y todo es nuevo) ;
- Una vez agotado el tiempo de calibración en un punto de calibración, obtenemos el valor promedio del desplazamiento a partir de los datos recopilados previamente.
Una vez completada la calibración, tenemos una colección de 12
valores promedio de sesgo por región (celdas de matriz).
Uso (aún más fácil)
- determinar en qué región cae el punto recibido del dispositivo;
- cambiamos el punto recibido del dispositivo por el valor promedio del desplazamiento en esta región.
Por lo tanto, fue posible mejorar programáticamente la precisión del dispositivo
Tobii Eye Tracker 4C (haciendo un complemento sobre la calibración estándar).
Desafortunadamente, debido al acuerdo de confidencialidad, no puedo especificar el nombre del software ni diseñar la fuente o las capturas de pantalla. Afortunadamente, me permitieron compartir el algoritmo. Espero que la publicación de alguien siga siendo útil.
El artículo proporciona la descripción más simple del proceso de calibración principal. Además, hay un montón de algo más:
- promediando el valor del punto con el anterior (para suavidad);
- compruebe si va más allá de los bordes de la pantalla;
- pérdida de seguimiento de la vista;
- seguimiento de cambios en la posición de los ojos en el espacio;
- Seguimiento del estado de Eye Tracker ;
- seguimiento de cambios en la resolución de pantalla;
- seguimiento de calibración abortada;
- selección aleatoria del tipo de marcas de calibración;
- y mucho mas
Y aquí está el evento que contribuyó a la "finalización" del artículo: por alguna coincidencia inconcebible, mi amigo (
de la publicación anterior ) tuvo la oportunidad de chatear en vivo con el desarrollador de
Tobii AB . Durante la conversación, el desarrollador mencionó que la calibración estándar no era ideal y que nuestros esfuerzos no fueron en vano.