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ètre | Défaut | Description |
|---|---|---|
| Itérations | 1 | Nombre 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) | 1000 | Durée d'affichage de chaque point avant avancement automatique. |
| Pause entre les points (ms) | 300 | Intervalle vide entre deux points consécutifs. |
| Pause finale (ms) | 600 | Brè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) | 1200 | Durée de l'animation chirp-blink sur chaque point. Doit être ≤ au temps de fixation. |
Options de la phase de validation
| Paramètre | Défaut | Description |
|---|---|---|
| Activer la validation de précision | Oui | Indique si la phase de validation post-calibration doit être exécutée. |
| Délai de stabilisation (ms) | 1000 | Duré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'échantillons | 30 | Nombre maximum d'échantillons de regard à collecter. |
| Fenêtre de mesure (ms) | 1500 | Limite 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.) | 7 | Rayon dans lequel un échantillon est considéré comme « dans la cible », exprimé en pourcentage de la diagonale du viewport. |
| Seuil de faible précision (%) | 60 | Lorsque 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
- Écran d'instructions — le texte
main_instructionsdu chercheur est affiché. Le participant clique sur Démarrer (ou le modérateur avance en mode strictement contrôlé). - 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é.
- Invitation à la validation (si activée) — un bref écran demande au participant de regarder le centre de l'écran.
- 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.
- 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 oumeasure_ms, selon ce qui arrive en premier. - 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 :
| Marqueur | Champs | Description |
|---|---|---|
point_shown | pos, index, target_x_pct, target_y_pct | Émis à chaque affichage d'un point de calibration |
Phase de validation (lorsque validation_enabled est vrai) :
| Marqueur | Champs | Description |
|---|---|---|
validation_invite_shown | target_x_pct, target_y_pct | Écran d'invitation affiché au participant |
validation_settle_start | settle_ms, target_x_pct, target_y_pct | Croix de fixation affichée ; délai de stabilisation démarré |
validation_settle_complete | target_x_pct, target_y_pct | Délai de stabilisation écoulé ; émis en même temps que validation_point_shown |
validation_point_shown | target_x_pct, target_y_pct, sample_count_target, measure_ms | Fenêtre de mesure ouverte |
validation_complete | target_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_pct | Fenê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) :
| Champ | Type | Description |
|---|---|---|
pos | chaîne | Clé de position dans la grille (ex. "top_left", "middle_middle") |
index | nombre | Position séquentielle dans la séquence de calibration (base 0) |
target_x_pct | nombre | Position horizontale cible en % de la largeur du viewport |
target_y_pct | nombre | Position verticale cible en % de la hauteur du viewport |
dwell_ms | nombre | Fenê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 %) :
| Position | Gauche % | Haut % |
|---|---|---|
| top_left | 8 | 12 |
| top_middle | 50 | 12 |
| top_right | 92 | 12 |
| middle_left | 8 | 52 |
| middle_middle (centre) | 50 | 52 |
| middle_right | 92 | 52 |
| bottom_left | 8 | 92 |
| bottom_middle | 50 | 92 |
| bottom_right | 92 | 92 |
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
- Calibration oculométrique (Interaction) — variante avec clic sur chaque point