
Bientôt, il y aura un an lorsque nous lancerons le produit avec un «étalonnage
eye-tracker » personnalisé à bord. Malheureusement, pour diverses raisons, cela n'a toujours pas fonctionné pour terminer cet article. Cependant, un incident drôle s'est récemment produit qui a incité à terminer ce qui avait commencé. Mais, tout d'abord. J'espère que quelqu'un bénéficiera toujours de notre expérience, malgré le fait que le message se soit avéré humide.
En bref,
Eye-tracker est un appareil qui vous permet de suivre la direction de la vue, ainsi que la position des yeux et de la tête.
Les eye-trackers ont de nombreux domaines d'application, dont l'un est l'industrie des jeux informatiques (un
peu plus ).
Souvent, la détection du regard est responsable d'actions secondaires (auxiliaires), mais importantes dans les jeux:
- mouvement de la caméra;
- viser;
- sélection d'objets pour l'interaction;
- sélection d'armes;
- pause automatique appel en cas de perte de vue;
- d'autres.
Dans la plupart des cas, l'étalonnage standard (nous parlerons de l'appareil
Tobii Eye Tracker 4C ) est suffisant pour une utilisation confortable de l'ère
Eye Track .
Mais, malheureusement, pour nos besoins, la précision de l'appareil obtenue par étalonnage standard n'est pas suffisante, car, dans notre projet, l'aspect est la principale mécanique de contrôle.
De ce qui précède, la
tâche a été formée: améliorer l'étalonnage standard;
conditions : appareil
Tobii Eye Tracker 4C , le langage de développement est
C # (WPF) .
Cela semble être une solution en surface: si vous voulez plus de précision - ajoutez plus de points d'étalonnage, mais ce n'est pas si simple.
Tobii AB dispose de nombreux
outils pour travailler avec ses appareils. Joy ne
connaissait aucune limite lorsque le
SDK Tobii Pro a été trouvé, qui a tous les petits pains pour travailler avec l'
étalonnage , mais comme il s'est avéré plus tard, ce
SDK n'est pas adapté pour travailler spécifiquement avec le modèle d'
eye tracker que nous avons (bien qu'il soit étrange que la détection du regard de l'appareil était toujours présente lors de l'utilisation de ce
SDK ). J'ai dû prendre les outils plus facilement -
Tobii.EyeX.Client .
Empiriquement, le nombre optimal de points d'étalonnage et leur emplacement ont été révélés: une matrice
4x3 avec
12 points d'étalonnage situés (chacun au centre de la cellule).
Les paramètres suivants ont également été trouvés empiriquement:
Algorithme de calibration (Simple to Madness)
L'étalonnage est effectué séquentiellement, pour chaque cellule de la matrice d'étalonnage:
- si la distance entre le point d'étalonnage actuel et le point reçu de l'appareil est inférieure à la déviation maximale autorisée , alors un tel point (reçu de l'appareil) tombe dans la collection pour un traitement ultérieur, sinon - l'étalonnage de la cellule actuelle est réinitialisé à son état d'origine (et encore une fois) ;
- une fois le temps d'étalonnage d'un point d'étalonnage épuisé, nous obtenons la valeur moyenne du déplacement à partir des données précédemment collectées.
À la fin de l'étalonnage, nous avons une collection de 12
valeurs de biais moyennes par région (cellules matricielles).
Utilisation (encore plus facile)
- déterminer dans quelle région se situe le point reçu du dispositif;
- nous décalons le point reçu de l'appareil de la valeur moyenne du décalage dans cette région.
Ainsi, il a été possible d'améliorer par programme la précision du dispositif
Tobii Eye Tracker 4C (en ajoutant un complément à l'étalonnage standard).
Malheureusement, en raison de l'accord de non-divulgation, je ne peux pas spécifier le nom du logiciel, ni exposer la source ou les captures d'écran. Heureusement, ils m'ont permis de partager l'algorithme. J'espère que quelqu'un poster sera toujours utile.
L'article fournit la description la plus simple du processus d'étalonnage principal. De plus, il y a un tas d'autre chose:
- faire la moyenne de la valeur du point avec la précédente (pour un lissage);
- vérifier pour aller au-delà des frontières de l'écran;
- suivi de la perte de la vue;
- suivre les changements de position des yeux dans l'espace;
- Suivi de l'état d' Eye Tracker ;
- suivre les changements de résolution d'écran;
- suivi de l'étalonnage interrompu;
- sélection aléatoire du type de marques d'étalonnage;
- et bien plus.
Et voici l'événement même qui a contribué à "l'achèvement" de l'article: pour une coïncidence inconcevable, mon ami (
du post précédent ) a eu la chance de discuter en direct avec le développeur de
Tobii AB . Au cours de la conversation, le développeur a mentionné que l'étalonnage standard n'était pas idéal et que nos efforts n'étaient pas vains.