Brevet FR2889324A1 — publié le 20070202

La présente invention concerne un procédé pour le contrôle d'une interface graphique à l'aide d'une caméra équipant un terminal de communication. Ce procédé s'applique notamment, mais non exclusivement, au calcul en temps réel d'un mouvement apparent à l'aide d'une caméra équipant un terminal de communication, à l'interprétation de ce mouvement apparent en commandes utilisateur, puis à la modification de l'interface graphique qui en résulte. Le procédé selon l'invention est particulièrement adapté aux terminaux de communication disposant de ressources limitées tant en puissance de calcul qu'en 20 capacité mémoire. Ce procédé peut se substituer à ou compléter avantageusement certaines séquences répétitives d'appui sur les touches d'un terminal. Suite à l'évolution des besoins et de la technologie, il est intéressant de constater que les terminaux de communication embarquent de plus en plus de contenu multimédia riche. Non seulement les terminaux graphiques proposent une plus grande diversité de média, mais également la taille de ceux-ci ne cesse d'augmenter; les images sont de plus en plus grandes et les textes stockés de plus en plus importants. De par la faible taille de la plupart des terminaux de communication, les capacités de l'affichage ou des dispositifs d'entrée de commandes sont limitées. Ceci a pour conséquence immédiate d'alourdir considérablement les interfaces graphiques de ces terminaux. Par exemple, les images ou les textes doivent être affichés partiellement pour conserver une lisibilité confortable. Ainsi, le déplacement de l'image ou du texte nécessite l'appui fréquent de plusieurs touches. Dans de très nombreux cas, le nombre d'appui sur les touches devient rapidement prohibitif et rédhibitoire pour un utilisateur; citons également et de manière non exclusive la navigation dans un menu ou un ensemble d'icônes, le déplacement d'un pointeur graphique, le défilement d'un texte ou d'une image, le changement d'échelle à laquelle est affichée une image/un texte, ou encore le contrôle de jeux d'action. On sait que l'entrée de commandes utilisateur par de simples mouvements volontaires du terminal de communication peut avantageusement remplacer certaines séquences répétitives d'appui sur des touches. Notamment, ce principe rend possible l'emploi de commandes proportionnelles au déplacement du terminal, offrant une forme de rétro-contrôle favorable à une meilleure interaction entre l'utilisateur et le terminal, et donc à un plus grand confort d'utilisation. Par ailleurs, l'utilisation de commandes formées par des mouvements volontaires du terminal de communication offre de nouvelles perspectives. Cette nouvelle entrée utilisateur peut avantageusement être utilisée en conjonction avec d'autres terminaux. Par exemple, ce procédé permet de contrôler le pointeur graphique d'un ordinateur de bureau grâce aux mouvements du terminal de communication. De même, des événements extérieurs peuvent influencer le terminal de communication dans son interprétation du mouvement apparent en commandes; citons à cet effet comme exemples et de manière non exhaustive, une communication entrante qui inhibe le procédé afin de pouvoir prendre cette communication, ou encore un jeu en réseau prenant en compte les actions des autres joueurs. Le mouvement du terminal de communication peut être obtenu par l'intermédiaire de capteurs spécifiques embarqués dans le terminal. Ces capteurs sont traditionnellement des accéléromètres, ou des gyroscopes. Ceux-ci permettent bien souvent de référencer de manière absolue la position ou l'orientation du terminal dans l'espace. Toutefois, ces capteurs posent des problèmes d'intégration dans des terminaux de plus en plus réduits et induisent un sur-coût de production. Or les terminaux de communication sont de plus en plus nombreux à intégrer une caméra. Il est alors légitime de vouloir utiliser cette caméra intégrée pour obtenir des informations de mouvement du terminal. Il est connu que des informations de mouvement peuvent être calculées à l'aide d'une caméra observant une surface plane texturée et illuminée. Cependant, la difficulté de calculer ces informations de mouvement devient insurmontable lorsque la caméra, équipant un terminal de communication, observe une scène quelconque sans contrainte d'illumination. Une première difficulté est que la caméra équipant un terminal de communication n'observe généralement pas une surface plane ni même un seul objet, et donc que le mouvement observé résulte des mouvements de la caméra et des objets présents. Le calcul du mouvement tridimensionnel de la caméra avec pour seule information une séquence d'image quelconque est pour une large part encore un problème ouvert, où la plupart des difficultés restent entières. Il n'est donc pas envisageable, dans l'état actuel des connaissances, de restituer a posteriori tous les mouvements du terminal seulement à partir des images acquises par la caméra. Une deuxième difficulté importante est que l'illumination de la scène n'étant pas maîtrisable par le dispositif, même en utilisant un flash, les intensités de couleur des textures enregistrées dans les images de la caméra varient de manière imprévisible dans les images successives. Ceci interdit alors l'emploi des techniques bien connues de calcul du mouvement apparent basées sur la constance des intensités de couleurs des textures observées. La présente invention a pour but de remédier à ces inconvénients et de permettre le calcul du mouvement apparent en temps réel à l'aide des images issues de la caméra, puis d'interpréter ce mouvement apparent en commandes utilisateur. Ce type de système peut-être avantageusement utilisé lorsqu'on souhaite naviguer dans un menu, déplacer une image ou un texte, ou pour positionner un pointeur graphique, ou bien encore lorsque l'on joue à des jeux nécessitent de commander un mouvement dans plusieurs directions simultanément et intuitivement. Ainsi, le procédé selon l'invention comprend les étapes suivantes: L'acquisition d'une première image qu'on mémorise, ou bien la mémorisation d'au moins une image déjà acquise et éventuellement pré- traitée. L'acquisition et la mémorisation d'une nouvelle image et la suppression éventuelle des images inutiles de la mémoire. Le prétraitement de la nouvelle image et éventuellement de celles précédemment mémorisées. Le calcul du mouvement apparent à l'aide des images prétraitées et d'une 10 technique de mise en correspondance des images. Le filtrage du mouvement apparent en amplitude et/ou temporellement. L'interprétation, selon un mode de contrôle prédéterminé, du mouvement apparent en commandes utilisateur. Le stockage dans une mémoire dudit terminal et/ou la transmission à destination d'un second terminal, des commandes utilisateur. La modification de l'affichage du terminal et/ou d'un second terminal conformément aux commandes utilisateur. L'entrée éventuelle d'une commande de validation d'un élément ou d'une zone graphique, ou d'ouverture de menu, ou d'exécution d'une tâche ou application par l'utilisateur sur le terminal de communication et sa transmission éventuelle à destination d'un second terminal. Le calcul du mouvement apparent est un problème largement traité dans la littérature, dont on peut notamment trouver une synthèse exhaustive dans les articles des revues Brown, L. G., A survey of Image Registration Techniques, 1992, et Zitova et Flusser, Image Registration Methods: a survey, 2003. En dehors du calcul d'un mouvement dense qui est n'est pas pertinent dans notre cas où une seule information de mouvement est nécessaire, nous relevons deux approches principales pour le calcul du mouvement apparent à l'aide de modèles paramétriques: une approche indirecte qui consiste à mettre en correspondance des primitives issues des images; et une approche directe qui exploite l'équation de conservation du flux optique. décrite dans Horn et Schunck, Determining Optical Flow, 1981. Cette dernière approche très répandue prend pour postulat que toute variation d'intensité des images au cours du temps, est uniquement due au déplacement d'un objet, dont l'intensité perçue est supposée constante dans les images successives, ou du point d'observation de la scène. Les méthodes indirectes procèdent au calcul du mouvement en trois étapes: (i) extraction des primitives (coins, régions, etc.), (ii) appariement des primitives sur plusieurs images, (iii) ajustement du modèle paramétrique. Les points délicats de ces méthodes portent sur le choix des primitives à extraire, de leurs nombres, et aussi sur le rejet des faux appariements. Ces méthodes permettent de retrouver des mouvements de grande amplitude si certaines primitives peuvent être appariées entre les images successives. Néanmoins, chacune de ces étapes peut s'avérer coûteuse aussi bien en terme de complexité de calcul qu'en occupation mémoire. En conséquence, ces méthodes ne semblent pas indiquées dans le cadre d'applications embarquées sur des terminaux dont les ressources en mémoire et en puissance de calcul sont limitées, dont les caméras ont une faible résolution en mode prévisualisation. Les méthodes directes calculent le mouvement à partir des intensités de l'image. Le calcul du mouvement dense est un problème sous-déterminé qui nécessite l'ajout d'une contrainte supplémentaire. Par exemple, l'estimation d'un champ de déplacement dense s'effectue à l'aide d'un a priori de régularité comme dans Horn et Schunck, Determining Optical Flow, 1981, ou d'une contrainte d'uniformité locale comme dans Lucas et Kanade, An Iterative Image Registration Technique with an Application to Stereo Vision, 1981. En cherchant un mouvement décrit à l'aide d'un modèle paramétrique global, comme c'est décrit dans Bergen et al, Hierarchical model-based motion estimation, 1992, nous introduisons une contrainte suffisante sur le champ de déplacement. Pour calculer le mouvement entre deux images, on cherche les paramètres du modèle de mouvement qui minimisent un critère donné. Ce critère est le plus souvent un critère de type moindres carrés, et se calcule globalement sur l'ensemble des pixels de l'image. Il est également possible de généraliser ce critère à l'aide d'une norme robuste de manière similaire à celle décrite dans Odobez et Bouthemy, Robust Multiresolution Estimation of Parametric Motion Models, 1995. Cependant, la minimisation d'un tel critère devient itérative et lourde en terme de coût de calcul. Il est connu que les techniques de calcul directes ne permettent pas d'estimer des mouvements de fortes amplitudes et cela malgré l'emploi de techniques multiéchelles comme dans Burt et Adelson, The laplacian pyramid as a compact image code, 1983. Pour remédier à ces inconvénients et ainsi réduire le temps de calcul et calculer des mouvements apparents de grande amplitude, le procédé selon l'invention propose de prétraiter les images en les réduisant d'un facteur f prédéterminé. Comme expliqué plus haut, en raison des changements fréquents et imprévisibles des conditions d'éclairement de la scène et du contrôle automatique de la balance des blancs de la caméra, les intensités de couleur des textures enregistrées dans les images varient dans les images successives. Or les méthodes directes basées sur les différences d'intensités des images y sont très sensibles et peuvent alors fournir des résultats approximatifs ou même aberrants. Pour remédier à cet inconvénient, le procédé selon l'invention comprend un prétraitement des images par égalisation d'histogramme pour se ramener à une suite d'images dont les niveaux d'intensités sont alors normalisés. De plus, les images acquises en mode économique par la caméra sont généralement de faible résolution et bruitées. Pour supprimer cet inconvénient, l'invention propose de les prétraiter en réduisant le nombre de niveaux de représentation des intensités de couleurs. Il est connu que les techniques multi-échelles posent le problème délicat de la propagation de l'information du mouvement d'une échelle à l'autre. Cependant, ces méthodes calculent un mouvement précis lorsqu'elles sont bien initialisées. Le procédé selon l'invention a notamment pour but de remédier à cet inconvénient en effectuant le calcul du mouvement apparent à l'aide de deux images successives éventuellement prétraitées comme suit: On réduit les deux images d'un facteur f On calcule le mouvement grossier à l'aide des images précédemment réduites et on le multiplie par le facteur f On calcule une image recalée à l'aide d'une première image non réduite et du mouvement grossier On calcule le mouvement résiduel à l'aide de l'image recalée et de la seconde image non réduite On calcule le mouvement apparent par addition du mouvement grossier et du mouvement résiduel. Le procédé selon l'invention propose que le calcul d'un mouvement apparent de translation m s'effectue à l'aide de deux images Il et I2, et de la formule suivante: m = M-1.b = 1 cof(M).b det(M) avec: M = j) ÉtVII(i,J) (,1) b = EVI, (i,J)É(I2(i,J) I, (i,J)) (i,>) cof(M) désigne la matrice des cofacteurs de la matrice M, det(M) désigne le déterminant de la matrice M, VI1 désigne le gradient de l'image Il. En raison de la dégradation des images transmises par la caméra en mode d'acquisition économique, le calcul peut fournir un mouvement apparent qui est corrompu par du bruit, ou bien qui peut présenter des valeurs aberrantes. Avantageusement, le filtrage du mouvement apparent pourra alors consister à annuler chacune de ses composantes si celle-ci est, en valeur absolue, inférieure à un seuil prédéterminé et, dans les autres cas, à la diminuer ou à l'augmenter de ce même seuil. Un exemple non limitatif d'un tel filtrage, dans le cas de la translation, est donné par la formule suivante: m'= (mi ',m2') = (sign(m1).max(0,1 mll-s) , sign(m2).max(0,l m2l-s)). Avantageusement, pour filtrer les résultats aberrants du calcul du mouvement, le filtrage pourra consister à imposer une borne supérieure et une borne inférieure pour chacune de ses composantes. Avantageusement, le déplacement des éléments graphiques se fera de manière proportionnelle au mouvement apparent calculé, avec un gain éventuellement 15 proportionnel à ce mouvement apparent. La présente invention propose également que le mouvement apparent soit interprété en commandes de l'interface graphique selon le contexte applicatif et/ou l'appui simultané sur une ou plusieurs touches du clavier par l'utilisateur. Les différents modes de contrôle de l'interface graphique selon l'invention concernent: le déplacement le changement d'échelle la rotation le défilement la navigation dans un menu la sélection et/ou la validation Les éléments graphiques pouvant être contrôlés de cette manière peuvent consister en: une image un texte ou un document un pointeur une zone de sélection un icône un menu une liste Par exemple, un mouvement apparent dans une certaine direction pourra être interprété comme une commande de changement d'échelle par zoom avant, et comme une commande de changement d'échelle par zoom arrière dans la direction opposée. De même, un mouvement apparent dans une certaine direction pourra être interprété comme une commande de déplacement d'élément graphique dans la même direction ou dans la direction opposée. Enfin, un mouvement apparent dans une certaine direction pourra être interprété comme une commande de rotation d'élément graphique dans un certain sens et dans le sens contraire quand le mouvement apparent filtré est de direction opposée. Le procédé selon l'invention peut également être utilisé pour contrôler des éléments graphiques d'un autre terminal connecté par voie filaire ou aérienne (via Infrarouge, Bluetooth, Wifi, GSM, GPRS, UMTS, CDMA ou WCDMA ou Internet) au terminal de communication réalisant la mesure du mouvement apparent. Une application de ce procédé pourrait donc consister au contrôle du pointeur graphique d'un pc ou d'un autre terminal à partir d'un terminal de communication équipé d'une caméra intégrée. Avantageusement, le mouvement apparent pourra n'être calculé et interprété en commande utilisateur que lorsqu'une touche préalablement associée à un contrôle de l'interface est maintenue appuyée, et n'être plus ni calculé ni interprété en commande utilisateur si aucune de ces touches n'est appuyée. Le procédé selon l'invention permet également de prendre en compte d'autres entrées utilisateur en combinaison avec le mouvement apparent comme les commandes vocales, les commandes reçues d'un clavier externe ou d'un autre terminal connecté physiquement ou par Infrarouge, Bluetooth, Wifi, GSM, GPRS, UMTS, CDMA ou W-CDMA ou Internet. Des modes d'exécution de l'invention seront décrits ci-après, à titre d'exemples non limitatifs, avec référence aux dessins annexés, dans lesquels: La figure 1 est une représentation schématique d'un système permettant le contrôle de l'interface graphique d'un terminal de communication à l'aide d'une caméra équipant ce même terminal; La figure 2 est une représentation schématique d'un système permettant le contrôle de l'interface graphique d'un ordinateur portable ou de bureau, un autre terminal de communication ou encore un quelconque dispositif relié au travers d'un réseau local ou même d'Internet, à l'aide d'une caméra équipant un terminal de communication; Dans l'exemple présenté sur la Figure 1, le système pour la mise en oeuvre du procédé selon l'invention fait intervenir un dispositif intégrant au minimum un affichage graphique (A), une unité centrale (U), une mémoire (M), une caméra (C), un clavier (T), des moyens de communication (G) et éventuellement des interfaces filaires ou aériennes (E) avec d'autres dispositifs. Dans l'exemple présenté sur la Figure 2, le système pour la mise en oeuvre du procédé selon l'invention fait intervenir, en plus des éléments déjà décrits dans la Figure 1, plusieurs autres dispositifs comme un ordinateur (D) portable ou de bureau, un autre terminal de communication (P), ou encore un quelconque dispositif relié au travers d'un réseau local ou même d'Internet (I), dont l'interface graphique peut être ainsi contrôlée à distance. -11-Revendications 1. Procédé pour le contrôle d'une interface graphique à l'aide d'une caméra équipant un terminal de communication, caractérisé en ce qu'il comprend les étapes 5 suivantes: - l'acquisition d'une première image qu'on mémorise, ou bien la mémorisation d'au moins une image déjà acquise et éventuellement pré-traitée, l'acquisition et la mémorisation d'une nouvelle image et la suppression 10 éventuelle des images inutiles de la mémoire, - le prétraitement de la nouvelle image et éventuellement de celles précédemment mémorisées, - le calcul du mouvement apparent à l'aide des images prétraitées et d'une technique de mise en correspondance des images, le filtrage du mouvement apparent en amplitude et/ou temporellement, - l'interprétation, selon un mode de contrôle prédéterminé, du mouvement apparent en commandes utilisateur, - le stockage dans une mémoire dudit terminal et/ou la transmission à destination d'un second terminal, des commandes utilisateur, la modification de l'affichage du terminal et/ou d'un second terminal conformément aux commandes utilisateur, l'entrée éventuelle d'une commande de validation d'un élément ou d'une zone graphique, ou d'ouverture de menu, ou d'exécution d'une tâche ou application par l'utilisateur sur le terminal de communication et sa transmission éventuelle à destination d'un second terminal. 2. Procédé selon la revendication 1 caractérisé en ce que les prétraitements comprennent une réduction de l'image, et/ou une réduction du nombre des couleurs, et/ou une normalisation des niveaux d'intensité de l'image par des techniques d'égalisation d'histogramme. 3. Procédé selon la revendication 1 tel que la technique de mise en correspondance utilisée pour le calcul du mouvement apparent estime un modèle paramétrique global. 4. Procédé selon les revendications 1 et 3 tel que la technique de mise en correspondance utilisée consiste à minimiser un critère quadratique formé sur la différence d'intensité entre les images. 5. Procédé selon les revendications 1, 3 ou 4 caractérisé en ce que le calcul du mouvement apparent à l'aide de deux images successives éventuellement prétraitées comprend les étapes suivantes: la réduction des deux images d'un facteur f prédéterminé le calcul du mouvement grossier à l'aide des images précédemment réduites et sa multiplication par le facteur f le calcul d'une image recalée à l'aide d'une première image non réduite et du mouvement grossier le calcul du mouvement résiduel à l'aide de l'image recalée et de la seconde image non réduite Le calcul du mouvement apparent en additionnant le mouvement grossier et le mouvement résiduel. 6. Procédé selon les revendications 1, 3, 4 ou 5 caractérisé en ce le mouvement apparent de translation m entre deux images h et Iz est calculé à l'aide de la formule suivante: m == M-' .b = det(M) cof(M).b, où m = (i, J) , b = ol, (i,J)É('2(i,J) h (i,J)), (j,]) (I,]) 7. Procédé selon la revendication 1 tel que la technique de mise en correspondance des images comprend les étapes suivantes: l'extraction des points d'intérêts l'appariement des points d'intérêts entre les images - 13 - le calcul du mouvement apparent qui est cohérent avec les appariements trouvés. 8. Procédé selon la revendication 1 caractérisé en ce que filtrage du mouvement apparent consiste à annuler chacune de ses composantes, si celle-ci est, en valeur absolue, inférieure à un seuil prédéterminé et, dans les autres cas, à la diminuer ou à l'augmenter de ce même seuil. 9. Procédé selon la revendication 1 caractérisé en ce que le filtrage du mouvement apparent limite les valeurs de chacune de ses composantes entre une borne inférieure et une borne supérieure. 10. Procédé selon la revendication 1 caractérisé en ce que le déplacement d'éléments graphiques est proportionnel au mouvement apparent calculé, avec un gain éventuellement proportionnel au mouvement apparent. 11. Procédé selon la revendication 1 caractérisé en ce que le mode de contrôle de l'interface graphique à l'aide du mouvement apparent concerne le déplacement ou le changement d'échelle ou la rotation ou le défilement ou la navigation dans un menu ou la sélection et/ou la validation d'éléments graphiques. 12. Procédé selon la revendication 1 tel que la modification de l'affichage du terminal de communication ou d'un second terminal concerne une image ou un texte ou un document ou un pointeur ou une zone de sélection ou un icône ou un menu ou une liste. 13. Procédé selon les revendications 1 ou 11, caractérisé en ce que le mode de contrôle de l'interface graphique est choisi par l'utilisateur grâce à l'appui sur une touche du clavier qui lui est préalablement associée. 14. Procédé selon les revendications 1, 11 ou 13, caractérisé en ce que le mouvement apparent est calculé si une touche préalablement associée à un mode de contrôle de l'interface est maintenue appuyée, et n'est plus calculé ni interprété en commande utilisateur si aucune de ces touches n'est appuyée. - 14 - 15. Procédé selon les revendications 1, 11, 13 ou 14 caractérisé en ce que le mode de contrôle est choisi par l'utilisateur grâce à une commande vocale, une commande reçue d'un clavier externe ou d'un autre terminal connecté physiquement ou par Infrarouge, Bluetooth, Wifi, GSM, GPRS, UMTS, CDMA ou W-CDMA ou Internet. 16. Procédé selon les revendications 1, 10, 11 ou 12, caractérisé en ce qu'un mouvement apparent dans une certaine direction est interprété comme une commande de changement d'échelle par zoom avant, et comme une commande de changement d'échelle par zoom arrière dans la direction opposée. 17. Procédé selon les revendications 1, 10, 11 ou 12, caractérisé en ce qu'un mouvement apparent dans une certaine direction est interprété comme une commande de déplacement d'élément graphique dans la même direction ou dans la direction opposée. 18. Procédé selon les revendications 1, 10, 11 ou 12, caractérisé en ce qu'un mouvement apparent dans une certaine direction est interprété comme une commande de rotation d'élément graphique dans un certain sens et dans le sens contraire au cas où le mouvement apparent filtré est dans la direction opposée.