FR 2967519 A1 20120518 FR 1059440 A 20101117 35 L'invention concerne un procédé d'affichage d'un objet virtuel sur un écran, un procédé d'émission de coordonnées d'un objet virtuel, et un procédé d'échange de telles coordonnées ainsi que des dispositifs et des programmes d'ordinateur associés. Ces dernières années ont vu le développement de systèmes de "réalité augmentée". Cette notion désigne l'ajout d'objets virtuels sur un écran où est affiché l'environnement réel de l'utilisateur (en général la partie de l'environnement située dans son champ de vision). Les objets virtuels sont générés par un système informatique qui superpose en outre l'image ainsi générée (représentant ces objets) à une image de l'environnement (c'est-à-dire du champ de vision de l'utilisateur) pris par un module de capture (typiquement une caméra) ; la superposition des deux images est présentée à l'utilisateur au moyen du dispositif d'affichage (par exemple un écran ou des lunettes adaptées) de telle sorte que l'utilisateur voit l'objet virtuel dans l'environnement réel. On complète ainsi le champ de vision de l'utilisateur par des objets virtuels dont les caractéristiques peuvent être déterminées de manière très souple du fait de leur génération par un système informatique, par exemple à des fins informatives, techniques ou ludiques. Ces solutions, qui visent à enrichir le champ de vision d'un utilisateur particulier, ne sont toutefois pas exploitable en l'état par un autre utilisateur, en particulier lorsque la position d'adjonction des objets virtuels est déterminée en fonction des images capturées par le module de capture propre à un utilisateur. Dans ce contexte, l'invention propose un procédé d'affichage d'un objet virtuel sur un écran d'un dispositif équipé d'un module de capture d'un environnement réel comprenant au moins un objet, caractérisé en ce qu'il comprend les étapes suivantes : - réception, en provenance d'un autre dispositif, de coordonnées de l'objet virtuel relativement à l'objet ; - détermination de la position de l'objet par analyse d'images fournies par le module de capture ; - affichage de l'objet virtuel sur l'écran à un endroit déterminé en fonction desdites coordonnées et de la position déterminée de l'objet. On utilise ainsi l'objet (réel) compris dans l'environnement réel comme référence commune aux deux dispositifs, ce qui rend possible l'affichage de l'objet virtuel en un lieu correspondant à un point particulier de l'environnement réel, malgré la différence de point de vue des deux dispositifs. L'objet virtuel est par exemple affiché en superposition sur une image représentative de l'environnement capturé par le module de capture. On propose ainsi une solution de réalité augmentée partagée par les utilisateurs des dispositifs. En variante, l'objet virtuel pourrait être affiché sans superposition de l'environnement réel. L'objet de l'environnement réel est toutefois également dans ce cas utilisé comme référence commune et permet de tenir compte de la position et de l'orientation (variables) des dispositifs. Le procédé d'affichage peut comprendre les étapes suivantes : - détermination des coordonnées d'un second objet virtuel en fonction de commandes reçues d'une interface utilisateur, - affichage du second objet virtuel sur l'écran à un endroit déterminé en fonction des coordonnées du second objet virtuel et de la position déterminée de l'objet. Le dispositif peut ainsi afficher l'objet virtuel dont les coordonnées ont été reçues avec le second objet virtuel, déplaçable en fonction de commandes de l'utilisateur, comme c'est typiquement le cas dans le cadre d'un jeu vidéo multi-joueurs. L'invention propose également un procédé d'émission de coordonnées d'un objet virtuel au moyen d'un dispositif équipé d'un module de capture d'un environnement réel comprenant au moins un objet, caractérisé en ce qu'il comprend les étapes suivantes : - détermination de la position de l'objet relativement au dispositif par analyse d'images fournies par le module de capture ; - détermination des coordonnées de l'objet virtuel en fonction de la position déterminée et de commandes reçues d'une interface utilisateur ; - émission des coordonnées à destination d'un autre dispositif. Un tel procédé permet ainsi l'élaboration des coordonnées utilisées comme présenté auparavant et participe donc des mêmes avantages. Le procédé d'émission comprend par exemple une étape d'affichage de l'objet virtuel sur un écran du dispositif à un endroit déterminé en fonction des coordonnées de l'objet virtuel, ce qui permet à l'utilisateur de localiser l'objet virtuel dont il communique les coordonnées relativement à l'objet (réel) de l'environnement réel. L'objet virtuel peut d'ailleurs alors être affiché en superposition sur une image représentative de l'environnement capturé par le module de capture. Selon la variante déjà évoquée, l'environnement réel n'est pas affiché. Le procédé d'émission peut comprendre les étapes suivantes : - réception, en provenance de l'autre dispositif, de coordonnées d'un second objet virtuel relativement à l'objet ; - affichage du second objet virtuel sur l'écran à un endroit déterminé en fonction des coordonnées reçues et de la position déterminée de l'objet. Les deux objets virtuels peuvent ainsi être affichés sur l'écran. L'invention propose également un programme d'ordinateur comportant des instructions pour la mise en oeuvre de l'un des procédés, présentés ci-dessus lorsque ce programme est exécuté par le processeur. 30 35 L'invention prévoit ainsi également un procédé d'échange de coordonnées d'un objet virtuel entre un premier et un second dispositifs équipés chacun d'un module de capture d'un environnement réel comprenant au moins un objet, caractérisé en ce qu'il comprend les étapes suivantes : - détermination de la position de l'objet relativement au dispositif par analyse d'images fournies par le module de capture du premier dispositif ; - détermination des coordonnées d'un objet virtuel en fonction de la position déterminée et de commandes reçues d'une interface utilisateur du premier dispositif ; - émission des coordonnées à destination du second dispositif ; - réception des coordonnées par le second dispositif ; - détermination de la position de l'objet par analyse d'images fournies par le module de capture du second dispositif ; - affichage de l'objet virtuel sur un écran du second dispositif à un endroit déterminé en fonction desdites coordonnées et de la position déterminée de l'objet. L'invention propose en outre un dispositif comprenant un écran et un module de capture d'un environnement réel comprenant au moins un objet, caractérisé en ce qu'il comprend : - des moyens de réception, en provenance d'un autre dispositif, de coordonnées d'un objet virtuel relativement à l'objet ; - des moyens de détermination de la position de l'objet par analyse d'images fournies par le module de capture ; - des moyens aptes à afficher l'objet virtuel sur l'écran à un endroit déterminé en fonction desdites coordonnées et de la position déterminée de l'objet. De même, l'invention propose un dispositif équipé d'une interface utilisateur et d'un module de capture d'un environnement réel comprenant au moins un objet, caractérisé en ce qu'il comprend : - des moyens de détermination de la position de l'objet relativement au dispositif par analyse d'images fournies par le module de capture ; - des moyens de détermination des coordonnées d'un objet virtuel en fonction de la position déterminée et de commandes reçues de l'interface utilisateur ; - des moyens d'émission des coordonnées de l'objet virtuel à destination d'un autre dispositif. Les caractéristiques optionnelles et les avantages présentés ci-dessus en termes de procédé s'appliquent également à ces dispositifs. D'autres caractéristiques et avantages de l'invention apparaîtront à la lumière de la description qui suit, fait en référence aux dessins annexés, dans lesquels : - la figure 1 représente des dispositifs aptes à mettre en oeuvre la présente invention ; - la figure 2 représente un exemple de contexte d'utilisation des dispositifs de la figure 1 ; - les figures 3 et 4 représentent respectivement l'affichage visible sur les écrans des dispositifs de la figure 1 dans le contexte de la figure 2. La figure 1 présente deux dispositifs 1, 2 de conception similaire, qui permettent de présenter à l'utilisateur des images de type "réalité augmentée". Il s'agit typiquement de dispositifs couramment désignés comme "dispositifs électroniques", tel qu'un téléphone cellulaire, une caméra vidéo, un appareil photo numérique, un assistant personnel numérique, etc. Le premier dispositif 1 et le second dispositif 2 étant similaires, seul le premier dispositif 1 sera décrit en détail dans la suite ; cette description s'applique également au dispositif 2. On remarque toutefois que l'invention s'applique même lorsque les deux dispositifs qui échangent des données comme expliqué dans la suite ont des conceptions différentes. Le premier dispositif 1 comprend un module de capture permettant la capture d'images représentatives d'un environnement réel situé dans un angle solide donné face au premier dispositif 1. Le module de capture comprend un capteur d'images 11 et un module de traitement IM 1. Le module de traitement IM1 reçoit du capteur 11 des signaux représentatifs de la partie d'environnement réelle capturée par le capteur 11, typiquement des valeurs de luminance et de colorimétrie pour un grand nombre de pixels porté par le capteur 11. Il s'agit typiquement d'un capteur du rayonnement incident (en provenance d'un grand nombre de directions comprises dans l'angle solide considéré et associées chacune à un pixel) dans le spectre de la lumière visible. Il pourrait toutefois s'agir en variante de capteurs dans le domaine infrarouge, ultraviolet ou des rayons X, comme ceux équipant les dispositifs d'imagerie. Le module de traitement IM1 transmet les images capturées (par exemple périodiquement afin d'obtenir une représentation de l'environnement réel par une image en mouvement) à un microprocesseur CPUl qui gère les différentes fonctionnalités du premier dispositif 1. Le microprocesseur CPUl peut par exemple commander l'affichage sur un écran SCR1 de l'image produite à chaque instant par le module de traitement IM1 : on visualise ainsi sur l'écran SCR1 la partie d'environnement réelle mesurée (c'est-à-dire capturée) par le capteur 11. Le microprocesseur CPUl peut également afficher des objets virtuels, tels que par exemple un avatar Al de l'utilisateur, en superposition sur l'image de l'environnement réel capturée par le capteur 11. Les caractéristiques de cet avatar (éventuellement modifiable par l'utilisateur) sont typiquement mémorisées dans une mémoire (non représentée) associée au microprocesseur CPU1. L'utilisateur peut déplacer l'objet virtuel (ici l'avatar Al) par action sur une interface utilisateur UIl ; chaque action de l'utilisateur sur l'interface utilisateur UIl est comprise comme une commande par le microprocesseur CPU1 qui modifie en conséquence notamment la position de superposition de l'objet virtuel dans l'environnement réel affiché sur l'écran SCR1. En pratique, l'interface utilisateur UIl est par exemple mise en oeuvre au moyen d'un écran tactile (typiquement dans ce cas l'écran SCR1) ou par une manette. En variante, il peut s'agir d'un accéléromètre, d'une boussole électronique ou d'un gyroscope. De manière générale, cette interface utilisateur UIl peut être réalisée par toute interface homme-machine, qui permet d'associer, à un mouvement ou à une position de l'utilisateur, une commande destinée au microprocesseur CPU1. Le module de capture reçoit notamment comme montré en figure 1 des images d'un objet réel tridimensionnel 3 situé dans l'environnement réel. L'objet tridimensionnel (ou "marqueur") est ici un cube présentant un motif spécifique sur chaque face afin de faciliter la localisation par analyse d'image décrite plus loin. Il pourrait en variante s'agir de tout autre objet tridimensionnel qui permette au premier dispositif 1 de déterminer sa position par rapport à cet objet par analyse d'image. Le microprocesseur CPU1 met en oeuvre un processus d'analyse d'image qui permet, en fonction de l'image (plane) de l'objet 3 vue par le capteur 11, de déterminer la position et l'orientation du capteur 11, c'est-à-dire du premier dispositif 1. Le premier dispositif 1 peut ainsi déterminer, par analyse d'image, sa position relativement à l'objet 3, par exemple ici en utilisant trois arêtes prédéterminées du cube 3 comme un repère orthonormé. La position et l'orientation du premier dispositif 1 peuvent donc s'exprimer comme coordonnées dans ce repère. La position et l'orientation de l'objet virtuel (ici l'avatar) Al peuvent également s'exprimer relativement à l'objet 3 (ici également sous forme de coordonnées). Ces coordonnées sont naturellement variables en fonction des mouvements de l'objet virtuel Al commandés par l'utilisateur au moyen de l'interface utilisateur UIl. Le premier dispositif 1 comprend également un module de communication COM1 qui permet l'échange de données le second dispositif 2. Le microprocesseur CPU1 peut ainsi commander l'émission des coordonnées de l'objet virtuel Al (coordonnées de position et coordonnées d'orientation exprimées relativement à l'objet 3 comme indiqué ci-dessus) à destination du second dispositif 2, où elles seront utilisées comme décrit ci- après. Le microprocesseur CPU1 commande également l'émission, à destination du second dispositif 2, de données représentatives de l'aspect de l'objet virtuel (notamment des données représentant sa forme, sa dimension et sa couleur). Le module de communication COM1 est dans l'exemple décrit ici un module de communication sans fil, par exemple de type Bluetooth (marque déposée). En variante, il pourrait s'agir d'un moyen de communication d'un autre type, tel qu'un moyen d'échange de données dans un réseau cellulaire, éventuellement via le réseau Internet. Les coordonnées de l'objet virtuel Al relativement à l'objet tridimensionnel 3 sont reçues par un module de communication COM2 du second dispositif 2. On décrit dans la suite la fonctionnalité utilisée à réception de ces données dans le second dispositif 2 pour plus de cohérence avec la description qui précède. Cette fonctionnalité existe toutefois également dans le premier dispositif 1 (qui est ainsi lui aussi apte à recevoir des données de positionnement et d'orientation d'un objet virtuel, par exemple un avatar A2, qui auront dans ce cas été déterminées dans le second dispositif 2 conformément à ce qui a été décrit ci-dessus pour le premier dispositif 1). Le microprocesseur CPU2 du dispositif 2 met en oeuvre un algorithme d'analyse des images capturées par le module de capture du dispositif 2 afin de déterminer, en fonction de l'image (plane) de l'objet tridimensionnel 3 vue du second dispositif 2 (précisément du capteur d'image 12), la position du second dispositif 2. Grâce à ces éléments (coordonnées de l'objet virtuel Al dans le repère lié à l'objet 3 telles que reçues du premier dispositif 1, coordonnées du dispositif 2 relativement à ce même objet 3 telles que déterminées par l'analyse d'image), le microprocesseur CPU2 peut commander l'affichage de l'objet virtuel Al sur l'écran SCR2 à une position qui corresponde à la position de l'objet (avatar Al) souhaité par l'utilisateur du premier dispositif 1. L'utilisateur du premier dispositif 1 et l'utilisateur du second dispositif 2 verront ainsi l'objet virtuel Al superposé au même endroit de l'environnement réel, bien que d'un point de vue propre à chaque dispositif. On remarque comme déjà évoqué que le second dispositif 2 peut, de la même manière que le premier dispositif 1, générer et positionner (notamment à l'aide de commandes reçues de l'interface utilisateur UI2) un second objet virtuel (ici un second avatar A2), afficher ce second objet virtuel A2 sur l'écran SCR2 du second dispositif en superposition dans l'environnement réel et émettre les coordonnées de ce second objet virtuel relativement à l'objet tridimensionnel 3 à destination du premier dispositif 1 afin que celui-ci puisse afficher le second objet virtuel A2 sur l'écran SCR1 à une position qui corresponde au positionnement désiré du second objet virtuel A2 dans l'environnement réel. La figure 2 représente un exemple de contexte d'utilisation de ce qui vient d'être décrit. L'objet tridimensionnel 3 est posé sur une table et on a représenté en pointillés les positions respectives des premier et second objets virtuels Al, A2, telles que déterminées par les actions des utilisateurs sur l'interface utilisateur UIl, UI2 correspondante. Comme visible en figure 3, l'écran SCR1 du premier dispositif 1 affiche l'objet 3 ainsi que le premier objet virtuel Al (au premier plan puisqu'il est situé entre le premier dispositif 1 et l'objet 3) et le second objet virtuel A2, partiellement masqué par l'objet 3 du fait de sa position (derrière l'objet 3 par rapport au premier dispositif 1 comme visible en figure 2). La figure 4 représente quant à elle l'affichage de l'écran SCR2 du second dispositif 2 : le premier objet virtuel Al est situé en arrière-plan tandis que le second objet virtuel A2 est au premier plan, devant l'objet 3. Le mode de réalisation qui vient d'être décrit n'est qu'un exemple possible de mise en oeuvre de l'invention, qui ne s'y limite pas. 20 25 30 REVENDICATIONS1. Procédé d'affichage d'un objet virtuel (A2; Al) sur un écran (SCRl; SCR2) d'un dispositif (1; 2) équipé d'un module de capture (IM1, 11; IM2, 12) d'un environnement réel comprenant au moins un objet (3), caractérisé en ce qu'il comprend les étapes suivantes : - réception, en provenance d'un autre dispositif (2; 1), de coordonnées de l'objet virtuel (A2; Al) relativement à l'objet ; - détermination de la position de l'objet (3) par analyse d'images fournies par le module de capture (IM1, 11; IM2, 12) ; - affichage de l'objet virtuel (A2; Al) sur l'écran (SCRl; SCR2) à un endroit déterminé en fonction desdites coordonnées et de la position déterminée de l'objet. 2. Procédé d'affichage selon la revendication 1, caractérisé en ce que l'objet virtuel est affiché en superposition sur une image représentative de l'environnement capturé par le module de capture (IM1, 11; IM2, 12). 3. Procédé d'affichage selon la revendication 1 ou 2, caractérisé en ce qu'il comprend les étapes suivantes : - détermination des coordonnées d'un second objet virtuel (Al; A2) en fonction de commandes reçues d'une interface utilisateur (UIl; UI2) ; - affichage du second objet virtuel (Al; A2) sur l'écran (SCRl; SCR2) à un endroit déterminé en fonction des coordonnées du second objet virtuel et de la position déterminée de l'objet. 4. Procédé d'émission de coordonnées d'un objet virtuel (Al; A2) au moyen d'un dispositif (1; 2) équipé d'un module de capture (IM1, 11; IM2, 12) d'un environnement réel comprenant au moins un objet (3), caractérisé en ce qu'il comprend les étapes suivantes : - détermination de la position de l'objet (3) relativement au dispositif (1; 2) par analyse d'images fournies par le module de capture (IM1, 11; IM2, 12) ; - détermination des coordonnées de l'objet virtuel (Al; A2) en fonction de la position déterminée et de commandes reçues d'une interface utilisateur (UIl; UI2) ; - émission des coordonnées à destination d'un autre dispositif (2; 1). 5. Procédé d'émission selon la revendication 4, caractérisé en ce qu'il comprend une étape 35 d'affichage de l'objet virtuel (Al; A2) sur un écran (SCRl; SCR2) du dispositif (1; 2) à un endroit déterminé en fonction des coordonnées de l'objet virtuel. 15 20 6. Procédé d'émission selon la revendication 5, caractérisé en ce que l'objet virtuel (Al; A2) est affiché en superposition sur une image représentative de l'environnement capturé par le module de capture (IM1, 11; IM2, 12). 7. Procédé d'émission selon la revendication 5 ou 6, caractérisé en ce qu'il comprend les étapes suivantes : - réception, en provenance de l'autre dispositif (2; 1), de coordonnées d'un second objet virtuel (A2; Al) relativement à l'objet (3) ; - affichage du second objet virtuel (A2; Al) sur l'écran (SCRl; SCR2) à un endroit déterminé en fonction des coordonnées reçues et de la position déterminée de l'objet. 8. Programme d'ordinateur comportant des instructions pour la mise en oeuvre du procédé selon l'une des revendications 1 à 7 lorsque ce programme est exécuté par le processeur. 9. Procédé d'échange de coordonnées d'un objet virtuel entre un premier (1) et un second (2) dispositifs équipés chacun d'un module de capture (IM1, 11; IM2, 12) d'un environnement réel comprenant au moins un objet (3), caractérisé en ce qu'il comprend les étapes suivantes : - détermination de la position de l'objet (3) relativement au dispositif par analyse d'images fournies par le module de capture (IM1, 11) du premier dispositif (1) ; - détermination des coordonnées d'un objet virtuel (Al) en fonction de la position déterminée et de commandes reçues d'une interface utilisateur (UIl) du premier dispositif (1) ; - émission des coordonnées à destination du second dispositif (2) ; - réception des coordonnées par le second dispositif (2) ; - détermination de la position de l'objet par analyse d'images fournies par le module de 25 capture (IM2, 12) du second dispositif (2) ; - affichage de l'objet virtuel (Al) sur un écran (SCR2) du second dispositif (2) à un endroit déterminé en fonction desdites coordonnées et de la position déterminée de l'objet. 10. Dispositif (1; 2) comprenant un écran (SCRl; SCR2) et un module de capture (IM1, 30 11; IM2, 12) d'un environnement réel comprenant au moins un objet (3), caractérisé en ce qu'il comprend : - des moyens de réception, en provenance d'un autre dispositif (2; 1), de coordonnées d'un objet virtuel (A2; Al) relativement à l'objet (3); - des moyens de détermination de la position de l'objet (3) par analyse d'images fournies 35 par le module de capture (IM1, 11; IM2, 12) ; - des moyens aptes à afficher l'objet virtuel sur l'écran (SCRl; SCR2) à un endroit déterminé en fonction desdites coordonnées et de la position déterminée de l'objet. 11. Dispositif (1; 2) équipé d'une interface utilisateur (UIl; UI2) et d'un module de capture (IM1, 11; IM2, 12) d'un environnement réel comprenant au moins un objet, caractérisé en ce qu'il comprend : - des moyens de détermination de la position de l'objet (3) relativement au dispositif (1; 5 2) par analyse d'images fournies par le module de capture (IM1, 11; IM2, 12) ; - des moyens de détermination des coordonnées d'un objet virtuel (Al; A2) en fonction de la position déterminée et de commandes reçues de l'interface utilisateur (UIl; UI2) ; - des moyens d'émission des coordonnées de l'objet virtuel (Al; A2) à destination d'un autre dispositif (2; 1). 10