Demostración de Seguimiento Ocular: SVGs como AOIs
Visión general
En esta demostración, nuestro objetivo es capturar datos de seguimiento ocular. Específicamente, queremos capturar los datos de la mirada asociados con áreas específicas de interés (AOIs) que están incluidas en el estudio como objetos SVG de forma.
A continuación se muestra una vista previa de la demostración en acción, con el círculo rojo proporcionando retroalimentación al indicar la ubicación de la mirada en tiempo real:
- NOTA: La grabación de la demostración se realizó con una opción de calibración de 5.5 minutos; el círculo rojo es un objeto que representa la mirada del participante en tiempo real y la configuración general se explica más adelante.
Eche un vistazo a este breve video que muestra la demostración en acción, así como una vista previa de los datos grabados al final:
Objetos
Esta demostración incluye una imagen de fondo de un muelle sobre el cual están colocados 4 objetos SVG de personas. También hay un objeto de retroalimentación de mirada (círculo rojo). Para los propósitos de esta demostración, queríamos representar la mirada en tiempo real y este círculo rojo refleja eso.
Variables Personalizadas Creadas
Para poder grabar datos, se requieren variables. A continuación se muestra una lista de todas las variables personalizadas que se crearon para esta demostración, accesibles a través de la pestaña ‘Variables’. La imagen a continuación muestra los detalles y configuraciones para las variables que utiliza esta demostración:
A continuación se explica las variables y su propósito:
Nombre de la Variable | Descripción | Tipo de Grabación |
---|---|---|
All Gaze Data | Usado para almacenar el array de coordenadas x/y [X,Y], así como el Tiempo de Captura [T] y el nivel de confianza [C] de la medición. | Todos los cambios / series de tiempo |
AOI1_gaze_data | Usado para almacenar el array de [X,Y,T,C] cuando el participante mira el objeto SVG llamado AOI1. | Todos los cambios / series de tiempo |
SVG1_path | Registra la ruta del nodo SVG en el que reposó la mirada de AOI1 (explicado más adelante). | Todos los cambios / series de tiempo |
AOI2_gaze_data | Usado para almacenar el array de [X,Y,T,C] cuando el participante mira el objeto SVG llamado AOI2. | Todos los cambios / series de tiempo |
SVG2_path | Registra la ruta del nodo SVG en el que reposó la mirada de AOI2. | Todos los cambios / series de tiempo |
Y así sucesivamente….
Eventos Configurados
Dado que estamos interesados en capturar datos de la mirada, se utilizan los siguientes eventos:
- Todos los Datos de la Mirada: Este evento se inicia tan pronto como comienza la tarea y graba datos de seguimiento ocular de forma continua.
- Datos de Mirada AOI: Este evento se inicia tan pronto como el participante mira una AOI específica (es decir, una de las cuatro personas) y graba los valores relacionados con la mirada.
- Finalizar Experimento: Un evento que acepta / finaliza la sesión y graba los datos cuando el sujeto hace clic en el botón ‘Finalizar’.
Evento 1: Todos los Datos de la Mirada
Para el primer evento, queremos lograr lo siguiente:
- grabar todos los datos de seguimiento ocular durante la duración del estudio
- mostrar la ubicación detectada de la mirada en la pantalla en tiempo real (para que usted, como investigador, pueda tener una idea del seguimiento de la webcam al probar la demostración)
Disparador
Por lo tanto, usamos un disparador de mirada de seguimiento ocular para iniciar este evento.
Acción
Una vez que se detecta la mirada, ocurrirán las siguientes acciones: Primero, llamamos a la variable All Gaze Data
que creamos anteriormente en una acción de Establecer / Grabar Variable
para grabar los datos como un array [X,Y,T,C].
Lo anterior se logra (como se muestra a continuación) haciendo clic en el botón verde, seleccionando la variable objetivo y luego haciendo clic en el icono de lápiz menú de selección de valores y luego eligiendo el array [X,Y,T,C] del menú específico del disparador (Seguimiento Ocular), como se muestra a continuación:
También agregamos la acción de Establecer Propiedad del Objeto
para establecer el objeto de círculo rojo (llamado 'mirada') de modo que la propiedad X
sea igual a la coordenada X y la propiedad Y
se establezca en la coordenada Y, respectivamente. En otras palabras, establecemos los valores x e y del objeto para que sean iguales a las coordenadas x e y… en última instancia, esto es lo que hace que el objeto se mueva en tiempo real.
NOTA: las opciones para Coordenada X
y Coordenada Y
se seleccionan del menú específico del disparador (Seguimiento Ocular).
Evento 2: Datos de Mirada AOI
En este evento, queremos configurar los eventos de tal manera que:
- la mirada también se grabe cuando la mirada se centre específicamente en las AOIs de destino (es decir, los objetos SVG que hemos subido)
- se informe de los datos específicos del nodo SVG de la AOI
Disparador
El disparador Seguimiento Ocular
también se utiliza como el disparador aquí. Pero en este contexto, indicamos que solo estamos interesados en elementos específicos al hacer clic en la opción respectiva y luego seleccionando los 4 objetos SVG que actúan como Áreas de Interés (AOIs).
Acción
Para establecer la llamada en cada AOI, necesitamos una Acción de Control
→ Acción de Requisito (Si… Entonces)
. Esencialmente, queremos que Labvanced haga lo siguiente…. “Si el participante está mirando AOI1, entonces queremos grabar los datos específicos para ella en una variable específica, así como la ruta SVG de esa mirada.”
Primero hacemos clic en el botón + Requisito
y aparecerán dos iconos de lápiz.
- Primer icono de lápiz: Para el primer campo seleccionamos, del menú específico del disparador (Seguimiento Ocular), la opción
Nombre del Estímulo
, que utiliza el nombre del objeto del estímulo en el que estuvo el disparador (en este caso la mirada). - Segundo icono de lápiz: Seleccionamos
Valor Constante
y luego seleccionamos la opciónCadena
y escribimos el nombre del objeto (es decir, AOI1):
Hasta este punto hemos establecido que cuando el disparador (mirada) está en el estímulo llamado AOI1... entonces:
- La variable
AOI_gaze_data
que creamos anteriormente grabará el array [X,Y,T,C]. - Además, la variable
SVG1_path
se grabará para contener laInformación del Estímulo
, que, en este caso, dado que el objetivo de interés (AOI1) es un SVG, la información del estímulo contendrá los nodos del SVG.
Para especificar la siguiente AOI, hacemos clic en el botón +Agregar Caso Else If
en el cuadro de diálogo y luego simplemente repetimos la estructura / configuración tal como se mostró anteriormente, pero con las diferencias principales siendo establecer el Nombre del Estímulo
como AOI2
y luego también llamar a las variables específicas para almacenar los datos, es decir, AOI2_gaze_data
y SVG2_Path
, como se muestra a continuación:
A continuación, para AOI3, elegimos Agregar Caso Else If
nuevamente y seguimos la misma estructura, pero con las variables personalizadas que hemos creado para almacenar los datos de esta AOI específica:
De nuevo, para AOI4, elegimos Agregar Caso Else If
nuevamente y seguimos la misma estructura, pero con las variables personalizadas que hemos creado para almacenar los datos de esta AOI específica:
Evento 3: Finalizar Experimento / Guardar Datos
Por último, para que los datos sean grabados y almacenados, necesitamos elegir la Acción de Salto
a Aceptar / Finalizar Sesión
una vez que se haga clic en el botón Finalizar
(que es el disparador), como se muestra a continuación.
Disparador
El disparador está especificado para ocurrir cuando se utiliza el 'Botón de Finalizar':
Acción
La acción que ocurrirá es que la sesión será aceptada, lo que, como resultado, significa que los datos serán grabados.
Datos Grabados
Los datos grabados incluyen todas las variables personalizadas más valores específicos del experimento, como el número de tarea, el número de sesión, etc.
En el ejemplo a continuación, la pestaña Dataview & Export
muestra cómo se ven los datos cuando están separados por archivos de series de tiempo. Cada variable de serie de tiempo (es decir, las variables que graban todos los cambios) se muestra con su propio archivo CSV en el panel izquierdo a continuación. Esto se puede lograr especificando la configuración relevante utilizando las Configuraciones de Formato de Exportación.
Cuando se selecciona el All Gaze Data.csv, se graban numerosas variables, incluyendo las mostradas a continuación. La columna ‘valor’ captura el array [X,Y,T,C] donde los valores están separados por comas:
La imagen a continuación muestra una vista previa de los arrays que se grabaron específicamente cuando la mirada estaba en AOI1, como se muestra en la columna ‘valor’:
La imagen a continuación muestra una vista previa de las rutas SVG que se grabaron específicamente cuando la mirada estaba en AOI1, como se muestra en la columna ‘valor’:
Conclusión
Esta demostración tiene como objetivo mostrar cómo grabar datos de la mirada y utilizar objetos SVG para registrar la mirada específicamente en el contexto de cuando la mirada ocurre en un Área de Interés (AOI).
Si tiene alguna pregunta, no dude en comunicarse con nosotros y háganos saber los detalles de su experimento, especialmente si necesita llevar a cabo un chequeo de viabilidad!