Il est relativement facile de construire un Eye Tracker ou Oculomètres convenable qui fonctionne pour la plupart des gens dans la plupart des situations. Au niveau de base, tout ce dont vous avez besoin est une caméra, une source de lumière et une unité de traitement. La lumière éclaire les yeux de la personne, augmentant le contraste entre la pupille et l'iris et créant des reflets sur la cornée. La caméra prend des images des yeux de la personne et l'unité de traitement trouve la pupille et ces reflets dans la cornée. Avec ces informations, les positions connues de la caméra et de la source lumineuse, et l'anatomie de l'œil humain, il est possible de calculer la position et l'angle de rotation de chaque œil. Calibrez le système d'eye tracking en demandant à l'utilisateur de regarder un objet dont la position est connue, et vous avez tout ce qu'il faut pour déterminer où une personne regarde.
Cependant, chaque nouveau cas d'utilisation présente de nouveaux défis et j'aimerais qu'il y ait une sorte de formule secrète qui résoudrait tout, mais malheureusement, ce n'est pas le cas. Il faut un travail acharné et dévoué pour transformer un système d'eye tracking de base en quelque chose de fiable.
Pour commencer, nous devons généralement générer d'énormes ensembles de données. Nous devons savoir quelles informations rechercher et comment découper les données pour l'application cible. Un scénario de recherche, par exemple, ne nécessite pas les mêmes exigences en matière de couverture de la population qu'une fonction native d'un produit de grande consommation, telle que le rendu avec fovéation dans un casque de réalité virtuelle.
Et puis il y a la question de la latence. Une application gourmande en graphiques qui utilise un rendu fractionné, effectuant une partie du calcul sur l'appareil et une autre dans le nuage, par exemple, nécessite une connexion à faible latence à la fois avec le réseau et avec l'Eye Tracker ou Oculomètres. En revanche, une application qui prend en charge la sélection de menus commandée par l'œil n'aura pas les mêmes exigences en matière de latence, ce qui permet un filtrage temporel assez poussé pour améliorer l'expérience de l'utilisateur.
Certains pourraient affirmer que l'eye tracking est un problème purement informatique, et que l'apprentissage automatique résoudra tout pour vous. Et bien que l'apprentissage automatique soit un élément essentiel de notre solution, lors de la conception d'algorithmes d'eye tracking, vous devez tenir compte de l'anatomie de l'œil, de la façon dont le cerveau interprète les signaux visuels, ainsi que des objectifs de l'application cible.
Mais je pense que la plus grande difficulté survient lorsque l'on passe de l'idéation à la commercialisation. L'échec n'est pas une option pour un scénario de marché de masse où des millions d'appareils dépendent de votre technologie pour être pleinement fonctionnels. Atteindre une couverture de 99 % de la population et au-delà signifie que des scénarios et des personnes qui étaient considérés comme aberrants lors de l'idéation doivent maintenant être résolus. Les paupières tombantes, le maquillage couvrant des éléments vitaux, les lunettes de vue, les lentilles de contact et les yeux paresseux ou dominants sont autant de cas typiques. En outre, vous devrez probablement gérer le glissement du casque, ainsi que les variations de la distance interpupillaire (IPD), la forme du visage, la réflectance de la peau dans le proche infrarouge, la couleur de l'iris et les tolérances des composants et de l'emplacement.