Aller au contenu principal

Calibration oculométrique (fixation automatique)

Type : eyetracking_calibration | Version : v1

La tâche de calibration oculométrique par fixation automatique présente 9 points de fixation dans un ordre aléatoire. Le participant suit chaque point animé du regard pendant que WebGazer enregistre l'association caméra/regard. Une phase de validation optionnelle mesure ensuite la précision sur un point central retenu, ce qui permet d'obtenir une estimation non biaisée.

Vue d'ensemble

Cette tâche est une étape de configuration essentielle pour les études oculométriques par webcam avec WebGazer. La calibration entraîne le modèle en associant les images de la caméra à des positions connues sur l'écran. La phase de validation post-calibration fournit une estimation de précision non biaisée (le point central est exclu de l'entraînement) et produit un artefact calibration_validation_{taskIndex}.json que le pipeline d'analyse utilise pour rapporter accuracy_pct, mean_error_pct et un quality_flag si la précision est inférieure au seuil configuré.

Pour les études où les participants cliquent sur chaque point de calibration, voir Calibration oculométrique (Interaction).

Paramètres de configuration

Options de calibration

ParamètreDéfautDescription
Itérations1Nombre de passages complets sur la grille de 9 points (max 10). Plus d'itérations = plus de données d'entraînement.
Temps de fixation par point (ms)1000Durée d'affichage de chaque point avant avancement automatique.
Pause entre les points (ms)300Intervalle vide entre deux points consécutifs.
Pause finale (ms)600Brève pause après le dernier point avant d'entrer dans la phase de validation (ou de terminer, si la validation est désactivée).
Durée de l'animation de clignotement (ms)1200Durée de l'animation chirp-blink sur chaque point. Doit être ≤ au temps de fixation.

Options de la phase de validation

ParamètreDéfautDescription
Activer la validation de précisionOuiIndique si la phase de validation post-calibration doit être exécutée.
Délai de stabilisation (ms)1000Durée d'affichage de la croix de fixation avant la collecte des échantillons, afin de laisser au participant le temps de trouver le point central.
Nombre d'échantillons30Nombre maximum d'échantillons de regard à collecter.
Fenêtre de mesure (ms)1500Limite de durée de la fenêtre de mesure (la première des deux limites — nombre d'échantillons ou durée — arrête la collecte).
Rayon d'acceptation (% diag.)7Rayon dans lequel un échantillon est considéré comme « dans la cible », exprimé en pourcentage de la diagonale du viewport.
Seuil de faible précision (%)60Lorsque accuracy_pct est inférieur à cette valeur, l'artefact porte quality_flag: "low_accuracy".
Texte d'invitation à la validation(par défaut)HTML optionnel affiché sur l'écran d'invitation avant l'apparition de la croix de fixation. Laisser vide pour utiliser le texte par défaut traduit (« Regardez le centre de l'écran et restez immobile. »).

Expérience du participant

  1. Écran d'instructions — le texte main_instructions du chercheur est affiché. Le participant clique sur Démarrer (ou le modérateur avance en mode strictement contrôlé).
  2. Calibration — un point animé apparaît à chaque position de la grille de 9 points dans un ordre aléatoire. Le participant suit chaque point du regard. Les points avancent automatiquement après le temps de fixation configuré.
  3. Invitation à la validation (si activée) — un bref écran demande au participant de regarder le centre de l'écran.
  4. Fixation de validation — une croix de fixation apparaît au centre du viewport ; le participant maintient son regard dessus pendant le délai de stabilisation.
  5. Mesure de validation — un petit point rouge recouvre la croix de fixation ; les prédictions de regard WebGazer sont échantillonnées à ~20 Hz pendant au maximum sample_count échantillons ou measure_ms, selon ce qui arrive en premier.
  6. Fin de la tâche — le contrôle passe à la tâche suivante dans le pipeline.

Données de sortie

Marqueurs

La tâche émet les marqueurs suivants dans le journal de participation :

Phase de calibration :

MarqueurChampsDescription
point_shownpos, index, target_x_pct, target_y_pctÉmis à chaque affichage d'un point de calibration

Phase de validation (lorsque validation_enabled est vrai) :

MarqueurChampsDescription
validation_invite_showntarget_x_pct, target_y_pctÉcran d'invitation affiché au participant
validation_settle_startsettle_ms, target_x_pct, target_y_pctCroix de fixation affichée ; délai de stabilisation démarré
validation_settle_completetarget_x_pct, target_y_pctDélai de stabilisation écoulé ; émis en même temps que validation_point_shown
validation_point_showntarget_x_pct, target_y_pct, sample_count_target, measure_msFenêtre de mesure ouverte
validation_completetarget_x_pct, target_y_pct, sample_count, acceptance_radius_pct, accuracy_pct, mean_error_pct, median_error_pct, below_threshold, accuracy_threshold_pct, sample_errors_pctFenêtre de mesure fermée ; résultat complet

Le marqueur validation_complete contient toutes les métriques scalaires et le tableau complet sample_errors_pct pour que le journal des événements soit autonome.

Enregistrements de réponse

Un enregistrement de réponse est écrit par point de calibration (après expiration de sa fenêtre de fixation) :

ChampTypeDescription
poschaîneClé de position dans la grille (ex. "top_left", "middle_middle")
indexnombrePosition séquentielle dans la séquence de calibration (base 0)
target_x_pctnombrePosition horizontale cible en % de la largeur du viewport
target_y_pctnombrePosition verticale cible en % de la hauteur du viewport
dwell_msnombreFenêtre de fixation configurée pour ce point

La phase de validation n'émet pas d'enregistrements de réponse ; ses résultats se trouvent dans le marqueur validation_complete et l'artefact JSON.

Artefact de validation

Lorsque la validation est activée, la tâche émet calibration_validation_{taskIndex}.json :

{
"kind": "calibration_validation",
"task_index": 0,
"target_x_pct": 50,
"target_y_pct": 52,
"sample_count": 28,
"acceptance_radius_pct": 7,
"accuracy_pct": 78.6,
"mean_error_pct": 5.2,
"median_error_pct": 4.8,
"samples": [
{ "error_pct": 4.1 },
{ "error_pct": 6.3 }
],
"quality_flag": null,
"below_threshold": false,
"accuracy_threshold_pct": 60
}

Toutes les valeurs error_pct sont la distance euclidienne depuis la cible centrale, exprimée en pourcentage de la diagonale du viewport, ce qui les rend indépendantes de la résolution. quality_flag vaut "low_accuracy" lorsque accuracy_pct < accuracy_threshold_pct, sinon null.

Le pipeline d'analyse présente cet artefact sous eye_gaze.summary.validation.

Grille de calibration

Les 9 points se placent dans un rectangle inséré qui laisse de la marge par rapport aux éléments du navigateur (haut 12 %, côtés et bas 8 %). Le point de validation est toujours le centre de la grille (middle_middle, 50 % / 52 %) :

PositionGauche %Haut %
top_left812
top_middle5012
top_right9212
middle_left852
middle_middle (centre)5052
middle_right9252
bottom_left892
bottom_middle5092
bottom_right9292

Recommandations de conception

  • Éclairage : Éclairage frontal uniforme pour éviter les ombres qui perturberaient le détecteur de visage.
  • Distance : 50–70 cm de l'écran (longueur d'un bras).
  • Stabilité de la tête : Rappeler aux participants de garder la tête immobile. Le mouvement de tête est la principale source d'erreur avec le suivi par webcam.
  • Itérations : Une itération (9 points) suffit pour la plupart des études. Utiliser 2–3 itérations pour les tâches nécessitant une plus grande précision.
  • Seuil de validation : Le seuil de précision par défaut (60 % dans un rayon de 7 % de la diagonale) est conservateur. L'augmenter pour les tâches critiques en termes de précision.

Références

  • Papoutsaki, A., Sangkloy, P., Laskey, J., Daskalova, N., Huang, J., & Hays, J. (2016). WebGazer: Scalable webcam eye tracking using user interactions. IJCAI 2016 (pp. 3839–3845).
  • Semmelmann, K., & Weigelt, S. (2018). Online webcam-based eye tracking in cognitive science: A first look. Behavior Research Methods, 50(2), 451–465.

Voir aussi