FR3015092A1 - Controle d'un pointeur sur un ecran numerique - Google Patents
Controle d'un pointeur sur un ecran numerique Download PDFInfo
- Publication number
- FR3015092A1 FR3015092A1 FR1362757A FR1362757A FR3015092A1 FR 3015092 A1 FR3015092 A1 FR 3015092A1 FR 1362757 A FR1362757 A FR 1362757A FR 1362757 A FR1362757 A FR 1362757A FR 3015092 A1 FR3015092 A1 FR 3015092A1
- Authority
- FR
- France
- Prior art keywords
- interest
- image
- points
- face
- pointer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
La présente invention concerne un système informatique (100) de contrôle d'un pointeur (P) sur un écran numérique (S), comprenant : - une caméra numérique fixe (10) configurée pour capturer au moins une première (I1) et une deuxième (I2) images numériques comprenant chacune un visage (V) ; - un module informatique (20) de traitement d'images configuré pour détecter des contours (C) dudit visage (V) par balayage sélectif de ladite première image (I1) afin de sélectionner une zone (Z) comprenant ledit visage (V) ; - un deuxième circuit de traitement (22) configuré : a) pour déterminer dans ladite zone (Z) au moins N points d'intérêt ; b) pour attribuer un descripteur de point d'intérêt ; et c) pour détecter lesdits au moins N points d'intérêt dans la deuxième image (I2) en recherchant dans ladite deuxième image (I2) chacun desdits descripteurs ; - un premier calculateur (30) configuré pour calculer le barycentre des points d'intérêt de chacune desdites première (I1) et deuxième (I2) images afin de déterminer le déplacement relatif dudit barycentre entre les première (I1) et deuxième (I2) images.
Description
Domaine technique L'objet de la présente invention concerne le domaine du contrôle numérique d'un pointeur sur un écran tel que par exemple un écran d'ordinateur ou un écran de tablette numérique. Plus particulièrement, la présente invention concerne la technologie, dite de « headtracking », qui permet le contrôle numérique d'un pointeur en utilisant le mouvement d'une portion du corps telle que la tête. La présente invention trouve ainsi de nombreuses applications avantageuses, notamment dans le domaine de la santé ou de l'aide à la personne, en permettant par exemple à une personne dont les mains sont immobilisées de contrôler sur un écran numérique un pointeur. Ainsi, grâce à la présente invention, après une intervention médicale, une personne alitée dont les bras sont immobilisés peut accéder via une interface graphique à des applications informatiques et multimédia.
D'autres applications avantageuses peuvent également être envisagées dans le cadre de la présente invention, comme par exemple le contrôle sur un écran d'un pointeur pour un jeu vidéo, l'accès à internet, au téléphone, à la messagerie, à la vidéo-conférence, aux livres en ligne, aux livres audio, aux vidéos, etc. Par pointeur au sens de la présente invention, il faut comprendre ici dans toute la description qui suit un élément informatique qui se déplace sur une interface graphique telle qu'un écran numérique et qui permet de sélectionner par exemple une icône pour déclencher une action. On parle également de curseur. Etat de la technique De façon classique, un pointeur sur l'écran numérique d'un ordinateur est contrôlé par l'intermédiaire d'un dispositif de pointage tel que par exemple une souris d'ordinateur ou un bouton directionnel de type « trackpad ». Sur les écrans tactiles qui équipent les tablettes numériques et « Smartphones », les dispositifs de pointage utilisent principalement une technologie dite capacitive ou résistive. Par exemple, pour les systèmes capacitifs, les écrans présentent une couche à base d'indium qui est configurée pour accumuler les charges. Ainsi, lorsque l'utilisateur d'une tablette numérique touche cette plaque capacitive avec son doigt, certaines de ces charges lui sont transférées. Les charges qui quittent la plaque capacitive créent un déficit qui est quantifiable.
Selon cette technologie, l'écran tactile comporte un agencement de capteurs placés dans les coins de la plaque pour mesurer ce déficit de charge et ainsi déterminer les coordonnées du point de contact du doigt avec la plaque capacitive. Le déplacement de ce point de contact, et donc du doigt, permet de déterminer le déplacement relatif du pointeur sur l'écran. Ainsi, les technologies déployées classiquement, tant pour les dispositifs de pointage du type souris d'ordinateur ou bouton directionnel que pour les dispositifs de pointage intégrés dans un écran tactile, nécessitent l'utilisation des membres supérieurs, et plus précisément des mains ou au moins d'un doigt.
Dans ce contexte, on comprend ici que de tels dispositifs de pointage ne sont pas adaptés à un environnement hospitalier : une personne hospitalisée n'a pas nécessairement l'usage de ses mains et plus généralement de ses membres supérieurs. Par exemple, certaines opérations nécessitent l'immobilisation des membres supérieurs. Par ailleurs, dans certains cas, la personne hospitalisée peut ne pas avoir la force d'utiliser ses membres supérieurs, notamment pour des raisons médicales ou thérapeutiques. Il existe déjà des solutions de type « head-tracking » qui permettent de contrôler un pointeur à l'aide d'une caméra numérique de type « webcam » en détectant les mouvements de la tête. Cependant, les solutions d' « head-tracking » proposées dans l'état de la technique ne sont pas adaptées à un environnement hospitalier. En effet, dans cet environnement, les équipements informatiques ne possèdent souvent aucun système de ventilation ; il en ressort que la puissance de calcul des processeurs utilisés est généralement très faible. De plus, les caméras numériques déployées présentent une grande disparité de performance avec de faibles débits d'images et une faible résolution.
Or, les solutions d' « head-tracking » connues jusqu'à présent nécessitent une bonne résolution avec de bonnes performances de calcul. La demanderesse soumet donc que l'état de la technique ne propose pas de solution optimisée ne consommant pas trop de puissance de calcul et garantissant une fluidité totale des applications utilisées.
Objet et résumé de la présente invention La présente invention vise à améliorer la situation décrite ci-dessus. A cet effet, la présente invention concerne un procédé de contrôle d'un pointeur sur un écran numérique.
Selon la présente invention, le procédé est mis en oeuvre par des moyens informatiques et comporte une capture à l'aide d'une caméra numérique, de préférence fixe, d'un flux vidéo comprenant au moins une première et une deuxième image numérique. Avantageusement, la caméra est orientée en direction d'une personne ; ainsi, les 5 première et deuxième images numériques comprennent chacune un visage, ou à tout le moins une portion de visage. Suite à cette capture, le procédé selon la présente invention comporte une sélection dans la première image d'une zone qui comprend le visage. De préférence, cette sélection comporte un traitement numérique de la première image au cours duquel des contours du 10 visage sont détectés par balayage sélectif de la première image. De préférence, la détection des contours du visage est réalisée en recherchant dans la première image des éléments remarquables d'un visage fournis par un fichier de configuration )ML issus d'un apprentissage sur de multiples visages. Ce type de traitement permet de retrouver efficacement les contours d'un visage. 15 Avantageusement, le procédé selon la présente invention comporte une détermination dans la zone ainsi sélectionnée d'au moins N coordonnées, N étant un entier positif. De préférence, chacune de ces coordonnées correspondent à un point d'intérêt du visage (par exemple : la pupille d'un oeil, une narine, le coin de la bouche, un grain de beauté, etc.). Selon la présente invention, un descripteur de point d'intérêt est attribué à chaque 20 coordonnée. Ce descripteur comprend une information permettant de retrouver dans une image la position des coordonnées du point d'intérêt en question. Avantageusement, le procédé selon la présente invention comporte une détection des N points d'intérêt dans la deuxième image ; de préférence, cette détection est réalisée par la recherche dans la deuxième image de chacun des descripteurs. Ce mode de recherche peut 25 également utiliser l'information relative au positionnement du point d'intérêt dans la première image pour optimiser cette recherche. Par exemple, lorsque le point d'intérêt déterminé dans la première image correspond à une portion de la pupille d'un oeil, on comprend que cette portion de pupille présente une ou plusieurs caractéristiques qu'on cherche à retrouver dans la deuxième image. 30 Avantageusement, le procédé selon la présente invention comporte un calcul du barycentre des points d'intérêt pour chacune des première et deuxième images ; ce calcul permet de déterminer un point de contrôle pour chacune des images. Avantageusement, le procédé selon la présente invention comporte un calcul du déplacement relatif de ce point de contrôle entre les première et deuxième images.
Le calcul de ce déplacement relatif entre les deux images permet de déterminer une opération pour le contrôle du pointeur sur l'écran numérique. Ainsi, grâce à cette succession d'étapes techniques, caractéristique de la présente invention, il est possible de contrôler et de piloter un pointeur sur un écran numérique par les seuls mouvements de la tête. Dans une application avantageuse, la solution technique proposée ici permet par exemple aux personnes à mobilité réduite des membres supérieurs d'utiliser les services informatiques et multimédia qui sont fournis dans les chambres d'hôpitaux, à savoir par exemple l'accès à Internet, la composition d'un numéro de téléphone, la consultation des courriers électroniques, ou encore tout simplement l'appel d'un membre du personnel pour un problème de confort. Le suivi des mouvements de la tête est assuré par la capture d'images via une caméra numérique classique, bas débit, qui est embarquée dans l'écran mis à disposition du patient. Dans un mode de réalisation avantageux de la présente invention, le calcul du déplacement relatif du point de contrôle entre les première et deuxième images comporte le calcul de la distance entre la position relative du point de contrôle calculé pour la première image et la position relative du point de contrôle calculé pour la deuxième image. Dans un premier cas, si la distance calculée est sensiblement égale ou inférieure à une distance seuil déterminée, alors le pointeur reste immobile sur l'écran.
La distance seuil déterminée permet ici de définir la sensibilité du contrôle. Le réglage de cette sensibilité peut être important pour la personne hospitalisée à qui est destinée l'invention : en effet, pour une personne très faible qui a beaucoup de difficultés à déplacer sa tête, la sensibilité du process doit être forte : le moindre déplacement du visage ou de la tête doit être interprété comme un mouvement volontaire indiquant au système que le pointeur doit se déplacer. Deux cas de figure peuvent ainsi se présenter. Le premier cas correspond à une situation dans laquelle le visage du patient a peu ou pas bougé ; ce premier cas correspond à un déplacement accidentel de la tête, qui n'est pas significatif : il est donc considéré comme négligeable. Dans ce cas, le pointeur sur l'écran ne bouge pas. Lorsque le visage reste immobile (pendant une certaine durée prédéterminée), alors l'opération du pointeur peut être considérée comme une opération de validation équivalente au « clic gauche » d'une souris.
Le fait de ne pas bouger la tête pour l'utilisateur lui permet donc de valider une opération, par exemple après avoir déplacé le pointeur sur l'écran sur une icône correspondant à un service auquel il veut accéder. Dans un deuxième cas, la distance calculée est strictement supérieure à cette distance seuil. Ce deuxième cas correspond à un déplacement considéré comme volontaire de la tête. Dans ce cas, on calcule alors le vecteur de déplacement du point de contrôle entre les première et deuxième images ; l'opération du pointeur est déterminée comme un déplacement relatif du pointeur sur l'écran numérique en fonction de ce vecteur de déplacement. En d'autres termes, ce déplacement relatif du pointeur sur l'écran numérique se fait en fonction de la direction du vecteur de déplacement ainsi calculé, et peut être strictement égal ou proportionnel à la norme de ce vecteur de déplacement. Il est possible que, lors de l'étape de détection, tous les points d'intérêt déterminés dans la première image ne se retrouvent pas dans la deuxième image. Dans ce cas, on prévoit qu'en dessous un certain nombre de points d'intérêt prédéterminé le procédé n'est pas suffisamment fiable, et manque de précision. Selon une première approche, lorsque le nombre de points d'intérêt détectés dans la deuxième image lors de l'étape de détection est inférieur à un nombre de points d'intérêt seuil déterminé, alors les étapes de sélection et de détermination sont réitérées jusqu'à ce que le nombre de points d'intérêt détectés dans la deuxième image soit supérieur ou égal au nombre de points d'intérêt seuil déterminé. Selon une deuxième approche, qui peut éventuellement être combinée si nécessaire à la première approche, lorsque le nombre de points d'intérêt détectés dans la deuxième image lors de l'étape de détection est inférieur à un nombre de points d'intérêt optimal déterminé, alors l'étape de détection comporte une étape complémentaire au cours de laquelle sont déterminés des points d'intérêt complémentaires dans la deuxième image. Cette étape complémentaire est réalisée en recherchant dans la deuxième image de nouveaux points d'intérêt du visage, dits complémentaires. De préférence, le nombre de points d'intérêt seuil et/ou le nombre de points d'intérêt optimal sont paramétrables.
De préférence, le nombre de points d'intérêt seuil (indiquant un manque de précision) présente une valeur par défaut égale à 0,25N ; de préférence, le nombre de points d'intérêt optimal (qui nécessite la recherche de points d'intérêts complémentaires) est égale à 0,75N. De préférence, la détermination d'un point d'intérêt du visage dans la première ou la deuxième image comporte la recherche de gradients de luminosité ; en d'autres termes, il est prévu ici de rechercher dans la première ou la deuxième image le ou les gradients de luminosité qui constitueront les caractéristiques des descripteurs qui permettront de relier deux points d'intérêts de deux images ensembles. Dans un mode avantageux, suite à l'étape de sélection, le procédé comporte un découpage de la zone sélectionnée en une pluralité de zones caractéristiques qui sont de forme rectangulaire ; chaque zone caractéristique comprend un élément caractéristique du visage tel que par exemple l'oeil gauche, de l'oeil droit, ou encore la bouche. Suite à ce découpage, le procédé prévoit que la détermination desdites au moins N coordonnées est réalisée dans une zone réduite qui est de forme rectangulaire et qui englobe chacune des zones caractéristiques. De préférence, la capture respective des première et deuxième images numériques est espacée d'une période déterminée, de préférence comprise entre 30 millisecondes et 100 millisecondes. Corrélativement, l'objet de la présente invention porte sur un programme d'ordinateur qui comporte des instructions adaptées pour l'exécution des étapes du procédé tel que décrit ci-dessus, ceci notamment lorsque ledit programme d'ordinateur est exécuté par un ordinateur ou au moins un processeur. Un tel programme d'ordinateur peut utiliser n'importe quel langage de programmation, et être sous la forme d'un code source, d'un code objet, ou d'un code intermédiaire entre un code source et un code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. De même, l'objet de la présente invention porte sur un support d'enregistrement lisible par un ordinateur ou un processeur et sur lequel est enregistré un programme d'ordinateur comprenant des instructions pour l'exécution des étapes du procédé tel que décrit ci-dessus. D'une part, le support d'enregistrement peut être n'importe quel entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une mémoire ROM, par exemple un CD-ROM ou une mémoire ROM de type circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette de type « floppy disc » ou un disque dur. D'autre part, ce support d'enregistrement peut également être un support transmissible tel qu'un signal électrique ou optique, un tel signal pouvant être acheminé via un câble électrique ou optique, par radio classique ou hertzienne ou par faisceau laser autodirigé ou par d'autres moyens. Le programme d'ordinateur selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'enregistrement peut être un circuit intégré dans lequel le programme d'ordinateur est incorporé, le circuit intégré étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. L'objet de la présente invention porte également sur un système informatique de contrôle d'un pointeur sur un écran numérique. Le système informatique comprend avantageusement des moyens informatiques qui sont configurés pour la mise en oeuvre des différentes étapes du procédé décrit ci-dessus.
Plus particulièrement, le système informatique comporte : - une caméra numérique, de préférence fixe, qui est configurée pour capturer un flux vidéo comprenant au moins une première et une deuxième image numériques comprenant chacune un visage ; - un module informatique de traitement d'images comprenant : - un premier circuit de traitement configuré pour détecter des contours du visage par balayage sélectif de la première image afin de sélectionner dans la première image une zone comprenant le visage ; - un deuxième circuit de traitement configuré : a) pour déterminer dans la zone au moins N coordonnées correspondant chacun à des points d'intérêt du visage, N étant un entier positif ; b) pour attribuer un descripteur à chaque coordonnée ; et c) pour détecter lesdits au moins N points d'intérêt dans la deuxième image en recherchant dans la deuxième image chacun des descripteurs; - un premier calculateur configuré pour calculer le barycentre des points d'intérêt de chacune des première et deuxième images afin de déterminer un point de contrôle pour chacune de ces images ; et - un deuxième calculateur configuré pour déterminer le déplacement relatif du point de contrôle entre les première et deuxième images afin de déterminer une opération pour le contrôle du pointeur sur l'écran numérique.
Ainsi, par ses différents aspects fonctionnels et structurels décrits ci-dessus, la présente invention offre une solution se substituant aux dispositifs de pointage classiques et permettant le contrôle d'un pointeur sur un écran numérique par un simple mouvement de la tête et/ou du visage.
Brève description des figures annexées D'autres caractéristiques et avantages de la présente invention ressortiront de la description ci-dessous, en référence aux figures 1 et 4 annexées qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif et sur lesquelles : la figure 1 représente une vue schématique d'un système informatique conforme à un exemple de réalisation de la présente invention ; les figures 2a à 2i représentent étape par étape le traitement effectué sur les première et deuxième images pendant la mise en oeuvre du procédé selon l'invention ; la figure 3 représente le mouvement relatif d'un pointeur sur un écran numérique ; et la figure 4 représente un organigramme illustrant le procédé de contrôle selon un exemple de réalisation avantageux de la présente invention. Description détaillée d'un mode de réalisation de l'invention Un procédé de contrôle d'un pointeur sur un écran numérique ainsi que le système informatique qui lui est associé vont maintenant être décrits dans ce qui suit en faisant référence conjointement aux figures 1 à 4. Permettre le contrôle d'un pointeur sur un écran numérique sans utiliser les mains, à l'aide d'une caméra numérique classique et d'un matériel classique et standard présentant peu de ressources informatiques, est un des objectifs de la présente invention.
L'exemple décrit ici concerne le contrôle d'un pointeur sur un écran numérique, dans un contexte hospitalier. L'objectif ici est de permettre à une personne U, hospitalisée et ayant ses membres supérieurs immobilisés, de contrôler, avec sa tête, un pointeur P sur un écran S pour accéder à des services (voir notamment figure 3) du type consultation des courriers électroniques, accès Internet, appel téléphonique, appel hôtelier, etc.
Dans l'exemple décrit ici, on équipe une chambre d'hôpital d'un système informatique de contrôle 100. Ce système 100 permet de remédier aux différents inconvénients identifiés dans l'état de la technique. Notamment, le système 100 selon l'invention utilise peu de ressources informatiques et s'adapte à des caméras à basse résolution.
La demanderesse observe dès à présent que les briques fonctionnelles de la bibliothèque OpenCV peuvent être utilisées ici pour mettre en oeuvre la solution proposée dans l'invention.
Plus particulièrement, dans l'exemple décrit, le système informatique 100 comprend une caméra numérique fixe 10 qui est configurée pour capturer, lors d'une étape Si, un flux vidéo comprenant une première II et une deuxième 12 images numériques. Dans l'exemple décrit ici, la caméra 10 est fixe et est orientée de sorte que chacune des images D et 12 comprennent la tête de la personne U, et plus particulièrement le visage V de cette personne U. Traiter ces images I1 et 12 pour contrôler le pointeur P est un des objectifs de la présente invention. Afin de piloter le pointeur P, il est souhaitable de déterminer dans quelle zone de l'image se trouve le visage V. Ainsi, dans l'exemple décrit ici, le système 100 comporte un module informatique 20 de traitement d'images comprenant un premier circuit de traitement 21. Ce premier circuit 21 est configuré pour détecter, lors d'une étape S2, les contours C du visage V dans la première image H. Cette détection est réalisée par un balayage sélectif de la première image H. Au cours de cette étape, on recherche dans l'image I1 les contours du visage en recherchant les éléments remarquables d'un visage fournis par un fichier de configuration XML issus d'un apprentissage sur de multiples visages. Ce premier traitement de l'image I1 permet de sélectionner dans la première image une zone Z comprenant le visage V de la personne U (voir figure 2a).
Dans l'exemple décrit ici, le premier circuit de traitement 21 intègre un outil logiciel de détection de visages fournissant des primitives pour la détection d'un ou plusieurs contours du visage ainsi que les fichiers de configurations nécessaires. Cet outil, nommé « Haar Cascade », est disponible dans OpenCV. Ainsi, le premier circuit de traitement 21 peut repérer une ou plusieurs zones dans une image provenant de la caméra 10, ces zones pouvant éventuellement contenir un contour de visage à partir des fichiers de description de visages au format XML fourni par OpenCV. Si aucune zone n'est identifiée comme contenant un visage V, alors le procédé repasse à l'étape de sélection avec l'image suivante, et ce jusqu'à ce qu'un visage soit détecté. Une fois cette zone Z sélectionnée, le premier circuit de traitement 21 est configuré pour découper, lors d'une étape S3, la zone Z en une pluralité de zones caractéristiques ZC ; ces zones ZC sont de forme rectangulaire. Ce découpage illustré en figure 2b est réalisé de sorte que chaque zone caractéristique ZC comprend un élément caractéristique du visage tel que par exemple l'oeil gauche, l'oeil droit, ou la bouche.
L'homme du métier comprend ici que le découpage de cette zone Z en une pluralité de zones ZC nécessite ici les fonctions d'« Haar Cascade » dans OpenCV pour détecter les parties du visage telles que l'oeil gauche, l'oeil droit, et la bouche. Cette découpe en zones ZC permet ainsi de filtrer l'image I1 pour déterminer où se trouve réellement le visage V de la personne U. Pour chaque zone contenant potentiellement un contour de visage, le circuit 21 détecte ainsi la présence d'un oeil droit, d'un oeil gauche et d'une bouche. Pour ce faire, chaque zone fournie par la détection de contour de visage est découpée en zones (une zone haute droite qui doit contenir un oeil droit, une zone haute gauche qui doit contenir un oeil gauche, une zone basse qui doit contenir une bouche). Cette technique de découpe pour obtenir une zone réduite permet de limiter la taille et la portion de l'image dans laquelle il faut rechercher un élément du visage afin d'optimiser les temps de traitement. Ensuite, le circuit 21 est configuré pour rechercher un oeil droit, un oeil gauche, et une bouche dans la zone correspondante en utilisant à nouveau « Haar Cascade » et le fichier de description XML approprié pour l'oeil droit, l'oeil gauche et la bouche (fichiers fournis par OpenCV). Toutes les zones de l'image issue de la caméra 10 supposées contenir un contour de visage qui ne contiennent pas à la fois un oeil droit, un oeil gauche et une bouche au bon endroit sont rejetées et parmi les zones de contour de visages restantes, on sélectionne la zone contenant un contour de visage la plus grande (ce visage devant être celui de l'utilisateur qui devrait être le plus proche de l'écran donc de la webcam). A la fin de cette étape, on obtient une seule zone Z contenant un visage. A partir des différentes zones caractéristiques ZC, le circuit de traitement 21 est ensuite configuré pour déterminer une zone réduite ZR de forme rectangulaire englobant chacune des zones caractéristiques ZC ; le résultat de cette étape est illustré en figure 2c. Plus particulièrement, dans l'exemple décrit ici et illustré en figure 2c, le coin supérieur gauche de cette zone réduite ZR correspond au point supérieur gauche de la zone contenant l'oeil gauche (zone calculée dans l'étape précédente), le coin supérieur droit de cette zone réduite ZR correspond au point supérieur droit de la zone contenant l'oeil gauche (zone calculée dans l'étape précédente), et le segment de droite du bas du rectangle de cette zone réduite ZR se trouve confondu avec le segment de droite du bas de la zone contenant la bouche (zone calculée dans l'étape précédente). Dans l'exemple décrit ici, le module 20 comprend en outre un deuxième circuit de traitement 22 qui est configuré pour, lors d'une étape S4, déterminer dans la zone réduite ZR N coordonnées Pi, iE[1,N] correspondant chacune à des points d'intérêt du visage, N étant un entier positif. Cette étape exploite ici les résultats des travaux de Kanabe, Lucas et Tomasi (KLT) pour sélectionner différents points dans une zone d'un visage.
Ainsi, sur la zone réduite ZR, le deuxième circuit de traitement 22 est configuré pour exécuter l'algorithme KLT afin de récupérer un tableau de N points d'intérêts (caractéristiques remarquables qu'il doit être possible de suivre d'une image à l'autre) à l'intérieur de cette zone réduite ZR. Les résultats de cette étape S4 sont illustrés en figure 2g.
Le fait d'appliquer cette étape sur la zone réduite ZR permet d'éviter que certains des points d'intérêts retournés par l'algorithme KLT soient des points identifiés l'arrière-plan de l'image Il. Ici, il est prévu selon l'invention d'utiliser les fonctions « goodFeaturesToTrack » pour cette détection des points d'intérêt.
A la fin de cette étape S4, on dispose donc de N points d'intérêts associés au visage V de la personne U. Il s'agit ici de suivre ces points d'intérêt dans l'image 12, pour déterminer les mouvements du visage V. Plus particulièrement, l'objectif à ce stade du procédé est de suivre les points d'intérêts calculés en essayant de minimiser le temps de calcul utilisé tout en maintenant un taux de récupération des points d'intérêts maximum. Dans l'exemple décrit ici, le deuxième circuit de traitement 22 est configuré pour attribuer un descripteur à chaque coordonnée. Il est ainsi possible de détecter lors d'une étape S5 les N points d'intérêt dans la deuxième image 12 en recherchant dans cette image 12 chacun desdits descripteurs. Ici, il est prévu selon l'invention d'utiliser les fonctions « calcOpticalFlowPyrLK » pour suivre le déplacement des points d'intérêt entre deux images successives. Par ailleurs, il est prévu un paramètre supplémentaire qui définit un nombre minimum de points d'intérêts pour que la détection de la position du visage soit valide. On parle ici d'un nombre de points d'intérêt seuil déterminé Ns. Dans l'exemple décrit ici, si, à l'issue de l'étape S5, le nombre N12 de points d'intérêt détectés dans la deuxième image 12 est inférieur à un nombre de points d'intérêt seuil déterminé Ns, il est prévu dans ce cas un deuxième circuit de traitement 22 qui est configuré pour détecter à nouveau la position du visage V (que l'on considère comme perdu étant donné le faible nombre de points d'intérêts restant) et pour déterminer, lors d'une étape complémentaire, les nouveaux points d'intérêts de sorte que le nombre N12 de points d'intérêt détectés dans la deuxième image 12 est égale, voire supérieur, au nombre de points d'intérêt seuil déterminé Ns.
On dispose ainsi d'un nouvel ensemble de points d'intérêts qui sont associés au visage V de la personne U dans la deuxième image 12. Les résultats de cette étape S5 sont illustrés en figure 2f L'objectif maintenant est de déterminer le mouvement relatif du visage entre les images II et 12 pour ensuite calculer le déplacement du pointeur P sur l'écran S.
Ceci est rendu possible par un premier calculateur 30 qui est configuré pour calculer, lors d'une étape S6, le barycentre des points d'intérêt de chacune des première D et deuxième 12 images. Le calcul de ces barycentres permet ensuite de déterminer les points de contrôle B1 et B2 respectivement pour les images D et 12.
Les résultats de cette étape S6 sont représentés en figures 2g et 2h respectivement pour les images D et 12. La comparaison de ces points de contrôle B1 et B2 permet de déterminer si le visage V a bougé entre les deux images I1 et 12 ; cette comparaison permet de calculer le déplacement relatif du pointeur P sur l'écran S.
Ceci est réalisé par un deuxième calculateur 40 qui est configuré pour calculer lors d'une étape S7 la distance d entre la position relative du point de contrôle B1 calculé pour la première image I1 et la position relative du point de contrôle B2 calculé pour la deuxième image 12. La sensibilité du système est importante : par exemple, les mouvements d'une personne qui tremble (pour des raisons neurologiques) ne doivent pas être pris en considération. Inversement, le système doit être sensible aux mouvements d'une personne qui a des difficultés à bouger la tête. Pour ce faire, on peut régler une distance seuil déterminée ds en fonction de la pathologie ou de la condition physique de la personne qui est devant le système 100.
Dans l'exemple décrit ici, le calculateur 40 est configuré de telle manière que, si cette distance calculée d est sensiblement égale ou inférieure à cette distance seuil déterminée ds, alors le pointeur P est considéré comme devant rester immobile sur l'écran S. Dans ce cas, il est possible de prévoir que l'opération du pointeur P correspond à une opération de validation telle qu'un clic gauche d'une souris d'ordinateur.
Corrélativement, le calculateur 40 est configuré de telle manière que, si la distance calculée d est strictement supérieure à cette distance seuil ds, alors on calcule, lors de l'étape S7, le vecteur de déplacement vd du point de contrôle entre les première I1 et deuxième 12 images.
Ce déplacement relatif du point de contrôle entre les deux images est illustré en figure 2i. L'homme du métier comprend ici que, dans ce cas, le calculateur 40 est configuré de telle manière que, comme illustré en figure 3, le déplacement relatif du pointeur P sur l'écran numérique S est fonction de ce vecteur de déplacement vd : par exemple, le pointeur se déplace selon la direction et la norme de ce vecteur vd. Compte tenu du contexte matériel et des conditions optiques, un certain nombre de points d'intérêts risquent de ne pas être retrouvés d'une image il à l'autre 12. A cet effet, le procédé prévoit un mécanisme permettant de maintenir le nombre de points d'intérêt dans la deuxième image 12 à un niveau acceptable, ceci permet notamment de déterminer la nouvelle position du visage dans une nouvelle image sans consommer trop de ressources matérielles. Il est donc ici prévu un paramètre supplémentaire qui définit un nombre minimum de points d'intérêts pour que la détection de la position du visage reste valide. On parle ici d'un nombre de points d'intérêt optimum déterminé No.
Dans l'exemple décrit ici, si, à l'issue de l'étape S5, le nombre N12 de points d'intérêt détectés dans la deuxième image 12 est inférieur à un nombre de points d'intérêt optimum déterminé No, il est prévu dans ce cas une étape complémentaire au cours de laquelle sont déterminés des points d'intérêt complémentaires dans la deuxième image 12 en recherchant dans l'image 12 des points d'intérêt du visage V.
Le deuxième circuit de traitement 22 est ainsi configuré de sorte que, suite à cette étape complémentaire, le nombre N12 de points d'intérêt détectés dans la deuxième image 12 est égale, voire supérieur, au nombre de points d'intérêt seuil déterminé No. On dispose ainsi d'un nouvel ensemble de points d'intérêts qui sont associés au visage V de la personne U dans la deuxième image 12 qui devient la référence pour le traitement de la prochaine image. Ainsi, le traitement d'images décrit ci-dessus et proposé dans le cadre de la présente invention offre une solution utilisable en temps réel sur des matériels à faibles performances de calcul pour permettre le contrôle d'un pointeur P sur un écran S.
La présente invention répond donc à une demande accrue de la part des structures hospitalières et des cliniques qui, de plus en plus, mettent à disposition de leurs patients des outils informatiques et multimédia. Compte tenu de contraintes matérielles (équipements informatiques présentant peu de ressources et caméra faible débit), les solutions de « head- tracking » déployées jusqu'à présent ne peuvent pas être intégrées pour un contrôle sans les mains du pointeur sur un écran. Un tel contrôle est désormais possible grâce à la présente invention. En effet, grâce aux différentes caractéristiques décrites ci-dessus, la présente invention permet de remédier aux différents inconvénients ci-dessus de l'état de la technique.
Il devra être observé que cette description détaillée porte sur un exemple de réalisation particulier de la présente invention, mais qu'en aucun cas cette description ne revêt un quelconque caractère limitatif à l'objet de l'invention ; bien au contraire, elle a pour objectif d'ôter toute éventuelle imprécision ou toute mauvaise interprétation des revendications qui suivent.
Claims (15)
- REVENDICATIONS1. Procédé de contrôle d'un pointeur (P) sur un écran numérique (S), ledit procédé mis en oeuvre par des moyens informatiques comprenant les étapes suivantes : - une capture (51) à l'aide d'une caméra numérique (10) d'un flux vidéo comprenant au moins une première (I1) et une deuxième (I2) images numériques comprenant chacune un visage (V) ; - une sélection (S2) dans ladite première image (I1) d'une zone (Z) comprenant ledit visage (V) par un traitement numérique de ladite première image (I1) au cours duquel des contours (C) dudit visage (V) sont détectés par balayage sélectif de ladite première image (I1) ; - une détermination (S4) dans ladite zone (Z) d'au moins N coordonnées (13' ic[1,1\1]) correspondant chacune à un point d'intérêt du visage (V), N étant un entier positif, un descripteur étant attribué à chaque coordonnée ; - une détection (S5) desdits au moins N points d'intérêt dans la deuxième image (I2) par la recherche dans ladite deuxième image (I2) de chacun desdits descripteurs ; - un calcul (S6) du barycentre desdites points d'intérêt pour chacune desdites première (I1) et deuxième (I2) images afin de déterminer un point de contrôle (B1, B2) pour chacune desdites images (I1, 12) ; et - un calcul (S7) du déplacement relatif dudit point de contrôle (B1, B2) entre les première (I1) et deuxième (I2) images pour déterminer une opération pour le contrôle dudit pointeur (P) sur ledit écran numérique (S).
- 2. Procédé selon la revendication 1, dans lequel le calcul (S7) du déplacement relatif dudit point de contrôle (B1, B2) entre les première (I1) et deuxième (I2) images comporte le calcul de la distance (d) entre la position relative du point de contrôle (B1) calculé pour la première image (I1) et la position relative du point de contrôle (B2) calculé pour la deuxième image (I2). 30
- 3. Procédé selon la revendication 2, dans lequel, si la distance calculée (d) est sensiblement égale ou inférieure à une distance seuil déterminée (ds), alors le pointeur(P) reste immobile sur l'écran (S) et l'opération dudit pointeur correspond à une opération de validation telle qu'un clic gauche d'une souris d'ordinateur.
- 4. Procédé selon la revendication 2, dans lequel, si la distance calculée (d) est strictement supérieure à une distance seuil (ds), alors on calcule, lors de l'étape (S7), le vecteur de déplacement (vd) du point de contrôle (B1, B2) entre les première (I1) et deuxième (12) images, et l'opération dudit pointeur (P) est déterminée comme un déplacement relatif dudit pointeur (P) sur l'écran numérique (S) en fonction de ce vecteur de déplacement (vd).
- 5. Procédé selon l'une quelconque des revendications précédentes, dans lequel, lorsque le nombre (N12) de points d'intérêt détectés dans la deuxième image (12) lors de l'étape de détection (S5) est inférieur à un nombre de points d'intérêt seuil déterminé (Ns), alors les étapes de sélection (S2) et de détermination (S4) sont réitérées jusqu'à ce que le nombre (N12) de points d'intérêt détectés dans la deuxième image (I) soit supérieur ou égal audit nombre de points d'intérêt seuil déterminé (Ns).
- 6. Procédé selon l'une quelconque des revendications 1 à 5, dans lequel, lorsque le nombre (N12) de points d'intérêt détectés dans la deuxième image (12) lors de l'étape de détection (S5) est inférieur à un nombre de points d'intérêts optimal (No) déterminé, alors la détection (S5) comporte une étape complémentaire au cours de laquelle sont déterminés des points d'intérêt complémentaires dans ladite deuxième image (12) en recherchant dans ladite image (12) des points d'intérêt du visage (V).
- 7. Procédé selon la revendication 5 ou 6, dans lequel le nombre de points d'intérêt seuil (Ns) et/ou le nombre de points d'intérêts optimal (No) sont paramétrables.
- 8. Procédé selon la revendication 5 ou 6, dans lequel le nombre de points d'intérêt seuil (Ns) présente une valeur par défaut égal à 0,25N, et/ou le nombre de points d'intérêt optimum (No) présente une valeur par défaut égal à 0,75N.
- 9. Procédé selon l'une quelconque des revendications précédentes, comportant, suite à l'étape de sélection (S2), un découpage (S3) de la zone (Z) sélectionnée en une pluralité de zones caractéristiques (ZC) de forme rectangulaire, chaque zonecaractéristique comprenant un élément caractéristique du visage tel que par exemple l'oeil gauche, l'oeil droit, ou la bouche.
- 10. Procédé selon la revendication 9, dans lequel la détermination (S4) desdites au moins N coordonnées (13,, iE[1,N]) est réalisée dans une zone réduite (ZR) de forme rectangulaire englobant chacune des zones caractéristiques (ZC).
- 11. Procédé selon l'une quelconque des revendications précédentes, dans lequel la capture (Si) respective des première (I1) et deuxième (12) images numériques est espacée d'une période (T) déterminée, de préférence comprise entre 30 millisecondes et 100 millisecondes.
- 12. Programme d'ordinateur comportant des instructions adaptées pour l'exécution des étapes du procédé selon l'une quelconque des revendications 1 à 11 lorsque ledit programme d'ordinateur est exécuté par au moins un processeur.
- 13. Support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions pour l'exécution des étapes du procédé selon l'une quelconque des revendications 1 à 11.
- 14. Système informatique (100) de contrôle d'un pointeur (P) sur un écran numérique (S), comprenant : - une caméra numérique fixe (10) configurée pour capturer un flux vidéo comprenant au moins une première (I1) et une deuxième (12) images numériques comprenant chacune un visage (V) ; - un module informatique (20) de traitement d'images comprenant : - un premier circuit de traitement (21) configuré pour détecter des contours (C) dudit visage (V) par balayage sélectif de ladite première image (I1) afin de sélectionner dans ladite première image (I1) une zone (Z) comprenant ledit visage (V) ; - un deuxième circuit de traitement (22) configuré : a) pour déterminer dans ladite zone (Z) au moins N coordonnées (Pi, ic[1,N]) correspondant chacune à un point d'intérêt du visage, N étant un entier positif ;b) pour attribuer un descripteur à chaque coordonnée ; et c) pour détecter lesdits au moins N points d'intérêt dans la deuxième image (12) en recherchant dans ladite deuxième image (12) chacun desdits descripteurs; - un premier calculateur (30) configuré pour calculer le barycentre des points d'intérêt de chacune desdites première (I1) et deuxième (12) images afin de déterminer un point de contrôle (B1, B2) pour chacune de ces images (I1, 12) ; et - un deuxième calculateur (40) configuré pour déterminer le déplacement relatif dudit point de contrôle (B1, B2) entre les premières (I1) et deuxième (12) images afin de déterminer une opération pour le contrôle dudit pointeur (P) sur ledit écran numérique (S).
- 15. Système informatique (100) de contrôle selon la revendication 14, comprenant des moyens informatiques configurés pour la mise en oeuvre de l'une quelconque des revendications 2 à 11.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1362757A FR3015092A1 (fr) | 2013-12-17 | 2013-12-17 | Controle d'un pointeur sur un ecran numerique |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1362757A FR3015092A1 (fr) | 2013-12-17 | 2013-12-17 | Controle d'un pointeur sur un ecran numerique |
Publications (1)
Publication Number | Publication Date |
---|---|
FR3015092A1 true FR3015092A1 (fr) | 2015-06-19 |
Family
ID=50473454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1362757A Pending FR3015092A1 (fr) | 2013-12-17 | 2013-12-17 | Controle d'un pointeur sur un ecran numerique |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR3015092A1 (fr) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3050808B2 (ja) * | 1996-06-28 | 2000-06-12 | 財団法人大阪科学技術センター | 位置指示装置 |
JP2007072628A (ja) * | 2005-09-05 | 2007-03-22 | Aisin Seiki Co Ltd | 顔向き判別装置 |
US20080130961A1 (en) * | 2004-11-12 | 2008-06-05 | Koichi Kinoshita | Face Feature Point Detection Apparatus and Feature Point Detection Apparatus |
WO2010142455A2 (fr) * | 2009-06-12 | 2010-12-16 | Star Nav | Procédé pour déterminer la position d'un objet dans une image, l'expression du visage d'une personne et procédé pour commander un dispositif d'entrée en fonction de la détection de l'expression ou du regard |
US20120139832A1 (en) * | 2003-05-30 | 2012-06-07 | Microsoft Corporation | Head Pose Assessment Methods And Systems |
-
2013
- 2013-12-17 FR FR1362757A patent/FR3015092A1/fr active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3050808B2 (ja) * | 1996-06-28 | 2000-06-12 | 財団法人大阪科学技術センター | 位置指示装置 |
US20120139832A1 (en) * | 2003-05-30 | 2012-06-07 | Microsoft Corporation | Head Pose Assessment Methods And Systems |
US20080130961A1 (en) * | 2004-11-12 | 2008-06-05 | Koichi Kinoshita | Face Feature Point Detection Apparatus and Feature Point Detection Apparatus |
JP2007072628A (ja) * | 2005-09-05 | 2007-03-22 | Aisin Seiki Co Ltd | 顔向き判別装置 |
WO2010142455A2 (fr) * | 2009-06-12 | 2010-12-16 | Star Nav | Procédé pour déterminer la position d'un objet dans une image, l'expression du visage d'une personne et procédé pour commander un dispositif d'entrée en fonction de la détection de l'expression ou du regard |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11128792B2 (en) | Capturing and displaying images with multiple focal planes | |
US11671697B2 (en) | User interfaces for wide angle video conference | |
US11977731B2 (en) | Media capture lock affordance for graphical user interface | |
US20220286314A1 (en) | User interfaces for multi-participant live communication | |
EP3158418B1 (fr) | Architecture pour gérer des données de saisie | |
WO2020068374A1 (fr) | Enrôlement assisté par audio | |
WO2013074383A1 (fr) | Prise de photos avec plusieurs caméras | |
US20230262317A1 (en) | User interfaces for wide angle video conference | |
EP3120228A1 (fr) | Suivi d'objets dans des agrandissements de vidéos | |
US10735578B2 (en) | Method for unlocking a mobile terminal, devices using the same, and computer-readable storage media encoding the same | |
EP3489811B1 (fr) | Procédé d'affichage en réalité mixte d'au moins un objet virtuel, terminal et système associé | |
FR2917931A1 (fr) | Procede et systeme de mise en relation entre des personnes dans un systeme de telecommunications. | |
AU2022204465B2 (en) | Media capture lock affordance for graphical user interface | |
CN108156368A (zh) | 一种图像处理方法、终端及计算机可读存储介质 | |
WO2014174061A1 (fr) | Suivi visuel d'objet | |
FR3015092A1 (fr) | Controle d'un pointeur sur un ecran numerique | |
CN117061849A (zh) | 捕获和存储物理环境的图像 | |
US9721143B2 (en) | Modification of visual depictions | |
US20240259669A1 (en) | Capturing and displaying images with multiple focal planes | |
CN116886854B (zh) | 用于广角视频会议的用户界面 | |
US11829559B2 (en) | Facilitating interactions on a mobile device interface based on a captured image | |
US20160360118A1 (en) | Smartphone camera user interface | |
WO2024121075A1 (fr) | Procédé de génération d'une application de traitement d'au moins un flux multimédia, dispositif et programme d'ordinateur associés | |
FR3014572A1 (fr) | Procede de commande de l'interaction avec un ecran tactile et equipement mettant en oeuvre ce procede | |
FR3108998A1 (fr) | Procede et dispositif pour gerer des appuis « multitouch » sur une surface tactile |