Brevet FR3031603A1 — publié le 20160715

La présente invention concerne un procédé de calibration automatique et continue pour des logiciels informatiques utilisant un dispositif d'entrée de type « eye tracking » (suivi des yeux ou oculométrie). Ce type de dispositif d'entrée repose sur le mouvement de l'oeil capté par un capteur appelé « eye tracker » ou occulomètre permettant de déterminer automatiquement l'emplacement regardé par l'utilisateur sur un écran informatique par exemple ; ce dispositif est habituellement composé d'une micro caméra infrarouge et de LEDs infrarouges, ainsi que d'un logiciel calculant les coordonnées du regard par rapport à un écran informatique). Un système de « eye tracking » nécessite traditionnellement une phase de calibration permettant de tenir compte des caractéristiques physiologiques d'une personne. Cette phase de calibration consiste habituellement à présenter un 15 objet (cercle par exemple) à différents endroits de l'écran et à effectuer une mesure à chacun de ces endroits pour calculer ensuite les paramètres spécifiques de la personne. Cette phase est cependant fastidieuse et doit parfois être effectuée lorsque l'utilisateur s'est déplacé de manière importante par rapport à l'endroit où il était lors de la calibration initiale. 20 Le procédé de la présente invention permet de remédier à cet inconvénient et de supprimer la phase de calibration manuelle en effectuant la calibration automatiquement en tâche de fond de manière transparente pour l'utilisateur. La calibration s'effectue de manière permanente au fur et à mesure de l'utilisation 25 du logiciel permettant ainsi une amélioration continue et une adaptation constante aux éventuels changements physiologiques ou de positionnement de l'utilisateur. Les étapes du procédé de la présente invention sont les suivantes : 30 1) Le système de « eye tracking » est initialisé lors de la première utilisation par une personne donnée avec une calibration standard effectuée sur une personne adulte : cette calibration standard est effectuée une seule fois dans le logiciel en « usine », c'est-à-dire lors de la réalisation/génération du logiciel. 35 3031603 - 2- 2) Il est donc possible de déterminer avec cette calibration standard la zone vers laquelle l'utilisateur regarde, avec cependant une précision limitée. Si on appelle M le point du regard calculé avec la calibration standard, ses coordonnées dans l'écran sont (x,y), en prenant comme origine le centre 5 de l'écran, x est mesuré horizontalement et y mesuré verticalement comme l'illustre la figure (1). Les coordonnées (x,y) sont comprises entre -0.5 et +0.5 afin d'être centrées sur 0 et homogènes entre l'axe x et l'axe y. 3) Dès que le regard porte sur un objet qui puisse être sélectionné (le point de regard M est à l'intérieur de l'objet sélectionné), le système déplace le curseur (curseur de souris ou pointeur de « eye tracking ») automatiquement vers le centre de l'objet MO, afin d'éviter l'impression de décalage du curseur pour l'utilisateur, l'illustre la figure (2). Ce centrage automatique du point de regard permet de plus de déterminer le point réellement regardé, qui est le point MO. 4) Suivant le mode de déclenchement du système (pose de quelques centièmes de secondes sur le même objet, click sur la souris, clignement de l'oeil, ...), lorsque l'utilisateur déclenche l'activation de l'objet sélectionné, on mesure les coordonnées du centre de l'objet sélectionné MO et les coordonnées du regard M, M(x,y) étant fournies par le système de « eye tracking » avec la calibration standard comme l'illustre la figure (3). 5) On effectue plusieurs mesures de ce type sur différents objets, le nombre de mesures nécessaires n étant un paramètre prédéterminé (par exemple n=5). Pour chaque mesure, on a donc un couple de points MO, M comme l'illustre la figure (4). Lorsque le nombre de mesures n est atteint, on peut effectuer le calcul de calibration par la méthode du gradient stochastique : En effet, on suppose que l'on corrige l'écart de calibration standard par une fonction f, comme par exemple la fonction polynomiale suivante : 3031603 - 3- f(M) = M' correspond au point de regard après application de la calibration personnalisée automatique. Si M a pour coordonnées (x,y), les coordonnées de M' sont obtenues par application de f à M. Ainsi avec une fonction polynomiale de degré 2, M'(x',y') est obtenu par les formules suivantes : x' = a0 + al x + a2 y + a3 x y + a4 x2 + a5 y2 y' = b0 + bl x + b2 y + b3 x y + b4 x2 +b5 y2 10 a0, ai, a5 et b0, bi, b5 sont les paramètres de calibration que l'on souhaite déterminer. On cherche à déterminer la fonction f (donc les paramètres a0, 15 b5) qui optimise pour la majorité des points : f(M) MO Au départ on fixe les paramètres de telle manière que f(M) = M, donc : 20 a0=0, a1=1' a2=0, a3=0, a4=0, a5=0 b0=0, b1=0, b2=1, b3=0, b4=0, b5=0 On appelle Theta la matrice de calibration obtenue avec les paramètres aO, b5 : 25 Theta[0,0] = aO Theta[1,0] = al Theta[2,0] = a2 Theta[3,0] = a3 30 Theta[4,0] = a4 Theta[5,0] = a5 Theta[0,1] = b0 Theta[1,1] = bi 35 Theta[2,1] = b2 3031603 - 4- Theta[3,1] = b3 Theta[4,1] = b4 Theta[5,0] = b5 5 Le système de coordonnées (x,y) avec x et y compris entre -0.5 et +0.5 permet d'avoir immédiatement des données centrées sur la moyenne et normalisées, ce qui est une condition pour la bonne convergence de l'algorithme de gradient stochastique. 10 On nomme X la matrice de mesures données par le système de eye tracking, telle que pour chaque mesure i: X[i3O] = 1 X[i,1] = x X[i,2] = y 15 X[i,3] = x y X[i,4] = x2 X[i,5] = y2 Et Y la matrice des points de référence (centre des objets mesurés) 20 telle que pour chaque mesure i : Y[i3O] = x0 Y[i,1] = y0 La méthode du gradient stochastique faite sur n mesures (méthode 25 appelée « mini-batch », ou « batch SGD » gradient stochastique par mini-lots) permet de calculer les paramètres de calibration par la formule matricielle : Gradient = 1/n * X' * (X * Theta - Y) 30 Theta = Theta - alpha * Gradient Avec : X' étant la matrice transposée de X 3031603 - 5- alpha est le paramètre d'apprentissage (paramètre fixé pour l'application, par exemple égal à 0.1. Il détermine la rapidité de convergence de l'algorithme 5 6) Par application de la fonction de calibration f ainsi calculée, on améliore au fur et à mesure la précision du curseur et des mesures comme l'illustre la figure (5) qui montre les points mesurés après application de la fonction f, les points étant proche du centre des objets sélectionnés (NB : il n'est pas nécessaire de montrer à l'utilisateur cette figure, par contre au lieu 10 d'utiliser la calibration standard pour positionner le curseur, on utilise ensuite la calibration calculée). 7) La méthode est appliquée ensuite en permanence en tâche de fond dès que n mesures ont été réalisées. La calibration peut être sauvegardée au 15 fur et à mesure de l'application de l'algorithme du gradient stochastique, ce qui permet de démarrer ensuite le logiciel lors d'un redémarrage directement avec la calibration effectuée avec un bon niveau de précision. 20 Le procédé selon l'invention est particulièrement destiné aux applications informatiques utilisant les dispositifs de « eye tracking » (suivi des yeux) comme dispositif d'entrée. REVENDICATIONS1. Procédé de calibration automatique et continue pour des logiciels informatiques utilisant un dispositif d'entrée de type « eye tracking » (par suivi des yeux), caractérisé par l'absence de calibration initiale pour l'utilisateur, la calibration étant remplacée par une tâche de fond automatique qui effectue le centrage automatique du curseur au milieu des objets sélectionnables dans le logiciel, puis qui effectue le calcul de la calibration par application continue de la méthode de gradient stochastique 10 entre le centre de l'objet et la mesure fournie par le dispositif de « eye tracking ».