Maison >Périphériques technologiques >IA >Le partage de brevets Microsoft AR/VR résout les problèmes d'occlusion ou de parallaxe causés par différents angles de caméra
(Nweon 3 novembre 2023) Étant donné que la position ne peut pas correspondre aux yeux, pour un affichage de la tête basé sur la perspective de la caméra, il peut être difficile pour les utilisateurs de percevoir correctement la relation spatiale des objets dans l'environnement par rapport à l'espace défini. De plus, plusieurs utilisateurs au sein du même espace défini peuvent avoir des perspectives différentes par rapport aux objets situés en dehors de l'espace défini.
Ainsi, dans la demande de brevet intitulée "Affichage dépendant de la perspective de l'environnement", Microsoft propose une image d'environnement qui représente correctement l'espace défini, notamment lorsqu'il se trouve dans une plateforme mobile comme une voiture. En bref, le système informatique construit une carte de profondeur et des données d'intensité d'au moins une partie de l'environnement entourant un espace défini. Les données d'intensité sont ensuite corrélées à l'emplacement de la carte de profondeur.
De plus, le système informatique peut obtenir des informations sur la posture de l'utilisateur dans l'espace défini et déterminer, sur la base de la posture de l'utilisateur, la partie de l'environnement de l'espace défini que l'utilisateur regarde. Le système informatique obtient en outre des données d'image représentant des parties de l'environnement du point de vue de l'utilisateur,
Ensuite, le système informatique génère une image à afficher en fonction des données d'intensité à l'emplacement de la carte de profondeur dans le champ de vision de l'utilisateur. De cette manière, la vue de l'environnement obtenue par une ou plusieurs caméras peut être reprojetée dans la perspective de l'utilisateur, fournissant ainsi une vue correcte de l'environnement sans problèmes d'occlusion ou de parallaxe dus aux différentes perspectives des caméras.
La figure 1 montre un exemple de scénario d'utilisation 100 où les utilisateurs 102 et 104 sont situés au sein d'un espace défini 106. Les utilisateurs 102 et 104 portent respectivement des dispositifs montés sur la tête 112 et 114.
Le système informatique 110 génère des données d'image représentant l'environnement entourant l'espace défini du point de vue de chaque utilisateur 102, 104. Pour ce faire, le système informatique 110 obtient des informations sur la posture de chaque utilisateur 102 et 104 dans l'espace défini 106.
Dans un mode de réalisation, la pose de chaque utilisateur 102, 104 peut être déterminée à partir d'un ou plusieurs dispositifs d'imagerie fixés dans un référentiel de l'espace défini et configurés pour imager l'utilisateur dans l'espace défini.
Sur la figure 1, quatre de ces dispositifs d'imagerie sont représentés par 116, 118, 120 et 122. Des exemples de tels dispositifs d'imagerie peuvent comprendre des dispositifs de caméra stéréo, des capteurs de profondeur, etc.
Le système informatique 110 peut être configuré pour générer une carte de profondeur de l'environnement entourant l'espace défini 106 à partir des données des caméras 108A-108E. Chaque caméra 108A-108E est configurée pour acquérir des données d'image d'intensité d'une partie de l'environnement environnant. Les caméras connaissent toutes leur relation spatiale les unes par rapport aux autres.
De plus, comme le montre la figure 1, les champs de vision des caméras adjacentes se chevauchent. Par conséquent, les techniques d’imagerie stéréo peuvent être utilisées pour déterminer la distance des objets dans l’environnement afin de générer des cartes de profondeur. Dans d'autres exemples, un capteur de profondeur facultatif 115 distinct des caméras 108A à 108E peut être utilisé pour obtenir une carte de profondeur de l'environnement environnant. Les exemples de capteurs de profondeur incluent des capteurs lidar et une ou plusieurs caméras de profondeur. Dans un tel exemple, les champs de vision des caméras qui acquièrent éventuellement des images d'intensité ne peuvent pas se chevaucher.
Les données d'intensité de la caméra sont associées à chaque emplacement de la carte de profondeur, comme chaque sommet d'un maillage ou chaque point d'un nuage de points. Dans d'autres exemples, les données d'intensité provenant de caméras sont combinées par calcul pour former des données d'intensité combinées calculées pour chaque emplacement dans la carte de profondeur. Par exemple, lorsqu'un emplacement de carte de profondeur est imagé par les pixels du capteur de deux ou plusieurs caméras différentes, les valeurs de pixels de deux ou plusieurs caméras différentes peuvent être calculées puis stockées.
Ensuite, sur la base au moins du geste de chaque utilisateur 102, 104, le système informatique 110 peut déterminer une partie de l'environnement entourant l'espace défini que chaque utilisateur 102, 104 regarde, obtenant une représentation de cette partie du point de vue de chaque utilisateur 102, 104 des données d'image de l'environnement et fournir les données d'image à chaque affichage principal 112, 114.
Par exemple, en connaissant la posture de l'utilisateur dans l'espace défini 106 et la relation spatiale de la carte de profondeur de l'environnement environnant par rapport à l'espace défini 106, la posture de chaque utilisateur peut être associée à la carte de profondeur. Le champ de vision de chaque utilisateur peut ensuite être défini et projeté sur la carte de profondeur pour déterminer la partie de la carte de profondeur qui se trouve dans le champ de vision de l'utilisateur.
Ensuite, des techniques telles que le lancer de rayons peuvent être utilisées pour déterminer où la carte de profondeur est visible dans le champ de vision. Les données d'intensité associées à l'emplacement peuvent être utilisées pour former une image à afficher. Le système informatique 110 peut éventuellement communiquer avec un système informatique distant 124 tel qu'un service cloud. Dans de tels cas, une ou plusieurs de ces étapes de traitement peuvent être effectuées par le système informatique distant 124.
De cette façon, dans un certain espace, différents utilisateurs peuvent observer des images de l'environnement d'un point de vue personnel. L'image affichée par le casque 112 du point de vue de l'utilisateur 102 peut inclure l'objet 126 et une vue de l'objet 128 dans l'environnement, tandis que la vue de l'objet 128 peut être masquée par l'objet 126 dans l'image affichée par le casque 114 du point de vue de l'utilisateur. 104 .
La figure 2 montre un schéma fonctionnel d'un exemple de système 200 configuré pour afficher une image de l'environnement entourant un espace défini à un utilisateur dans l'espace défini du point de vue de l'utilisateur. Le système 200 comprend un système informatique 202 local à un espace défini et un dispositif d'affichage 204 situé à l'intérieur de l'espace défini.
Le système 200 comprend une ou plusieurs caméras 210 et est configuré pour imager l'environnement. Dans un exemple, la caméra 210 est utilisée comme caméra stéréo passive et utilise des procédés d'imagerie stéréo pour acquérir des données d'intensité et des données de profondeur. Dans d'autres exemples, un ou plusieurs capteurs de profondeur 208 sont éventuellement utilisés pour obtenir des données de profondeur de l'environnement d'un espace défini.
Le système informatique 202 comprend des instructions exécutables pour construire une carte de profondeur 212 de l'environnement à partir des données de profondeur. La carte de profondeur 212 peut prendre n'importe quelle forme appropriée, telle qu'un nuage de points ou un maillage 3D. Comme décrit ci-dessus, le système informatique 202 peut recevoir et stocker des données d'intensité 214 associées à chaque emplacement dans la carte de profondeur 212 sur la base de données d'image acquises par une ou plusieurs caméras 210.
Les positions spatiales relatives du capteur de profondeur 208 et de la caméra 210 sont calibrées l'une par rapport à l'autre et à la géométrie de l'espace défini. En conséquence, la figure 2 illustre les paramètres d'étalonnage 216 qui peuvent être utilisés comme entrée pour aider à transposer la vue de la caméra 210 et du capteur de profondeur 208 à la posture de l'utilisateur, aidant ainsi à reprojeter les données d'image de la perspective de la caméra vers la perspective de l'utilisateur pour l'affichage. .
Dans un mode de réalisation, étant donné que le dispositif d'affichage 204 et/ou l'espace défini peuvent se déplacer continuellement par rapport à l'environnement environnant, un étalonnage externe continu peut être effectué pour calibrer la position du dispositif d'affichage 204 par rapport à la carte de profondeur 212. Par exemple, l'étalonnage de la carte de profondeur 212 par le dispositif d'affichage 204 peut être effectué à une fréquence d'images d'affichage par le dispositif d'affichage 204.
Le système informatique 202 peut en outre obtenir des informations sur la posture de l'utilisateur dans l'espace défini. La posture d'un utilisateur peut plus spécifiquement faire référence à la position et à l'orientation de la tête, ce qui permet de déterminer une partie de l'environnement entourant l'espace défini recherché par l'utilisateur. Le système informatique 202 est configuré pour recevoir des données de suivi de tête 218. Les données de suivi de tête 218 peuvent en outre ou en variante être reçues d'un ou plusieurs dispositifs d'imagerie fixés dans un cadre de référence dans un espace défini.
Comme décrit ci-dessus, le système informatique 202 utilise la carte de profondeur 212 et les données d'intensité correspondantes 214 en conjonction avec la posture de l'utilisateur déterminée à partir des données de suivi de la tête 218 pour déterminer les données d'image à afficher du point de vue de l'utilisateur du dispositif d'affichage 204.
Le système informatique 202 peut déterminer la partie de l'environnement que l'utilisateur regarde en fonction de la posture de l'utilisateur, projeter le champ de vision de l'utilisateur sur la carte de profondeur, puis obtenir des données d'intensité pour les emplacements de la carte de profondeur visibles du point de vue de l'utilisateur.
Les données d'image fournies au dispositif d'affichage pour affichage peuvent subir une post-reprojection dans le tampon de trame du dispositif d'affichage 204. Par exemple, la post-reprojection peut être utilisée pour mettre à jour la position des objets dans une image rendue directement avant l'affichage de l'image rendue.
Ici, le dispositif d'affichage 204 est situé dans un véhicule en mouvement, et les données d'image dans la mémoire tampon de trame du dispositif d'affichage 204 peuvent être reprojetées en fonction de la distance parcourue par le véhicule entre la formation de l'image et l'affichage de l'image en 226. Le système informatique 202 peut fournir des vecteurs de mouvement pour afficher le dispositif basé sur le mouvement du véhicule 204 pour une reprojection ultérieure. Dans d'autres exemples, les vecteurs de mouvement peuvent être déterminés à partir des données provenant d'une unité de mesure inertielle locale du dispositif d'affichage 204.
Dans un mode de réalisation, la fréquence d'images des données d'intensité acquises par la caméra 210 peut être différente de la fréquence d'images de la carte de profondeur acquise par le capteur de profondeur 208. Par exemple, la fréquence d'images utilisée pour acquérir des cartes de profondeur peut être inférieure à la fréquence d'images utilisée pour acquérir des données d'intensité.
De même, la fréquence d'images peut varier en fonction des changements de vitesse du véhicule, des objets en mouvement dans l'environnement et/ou d'autres facteurs environnementaux. Dans de tels exemples, avant d'associer les données d'intensité à l'emplacement de la carte de profondeur, les données d'intensité et/ou les données de profondeur peuvent être traduites pour corriger un mouvement qui se produit entre le moment où les données d'intensité sont obtenues et le moment où la carte de profondeur est obtenue.
Dans le cas de l'utilisation de plusieurs caméras 210 pour acquérir des données d'intensité, des objets dans l'environnement entourant l'espace défini peuvent apparaître dans les données d'image provenant de plusieurs caméras 210. Dans un tel exemple, les données d'intensité provenant de chaque caméra imageant l'objet peuvent être reprojetées dans la perspective de l'utilisateur.
Dans d'autres exemples, les données d'intensité d'une caméra ou d'un sous-ensemble de caméras imageant l'objet peuvent être reprojetées dans la perspective de l'utilisateur. Cela peut utiliser moins de ressources informatiques que la transposition des données d'image de toutes les caméras imageant l'objet dans la perspective de l'utilisateur.
Dans un tel exemple, les données d'image d'une caméra avec une perspective déterminée comme étant la plus proche de la perspective de l'utilisateur peuvent être utilisées. Dans un autre exemple, les données d'intensité de pixels provenant de multiples caméras pour un emplacement de carte de profondeur sélectionné peuvent être moyennées ou autrement combinées par calcul, puis stockées pour l'emplacement de carte de profondeur.
Dans l'exemple de la figure 1, les utilisateurs 102 et 104 visualisent des images dépendantes de la perspective générées par le système informatique 110 via les casques 112, 114. Dans l'exemple de scénario 300 de la figure 3, un utilisateur visualise les données d'image acquises par les caméras 306A à 306E sur un panneau d'affichage situé à un emplacement fixe dans un espace défini 304.
Cependant, au lieu d'afficher l'image du point de vue des caméras 306A-306E, les données d'image des caméras 306A-306E sont associées à une carte de profondeur déterminée à partir des données d'image, ou à une carte de profondeur déterminée à partir des données acquises par le capteur de profondeur.
Cela permet de convertir les données d'image en une vue en perspective de l'utilisateur 302. Les caméras 312, 314 imagent l'intérieur de l'espace défini 304 pour effectuer un suivi des gestes de l'utilisateur. Un ou plusieurs capteurs de profondeur sont en outre utilisés pour déterminer la posture de l'utilisateur. Les données d'image du point de vue de l'utilisateur 302 peuvent être affichées sur le panneau d'affichage 310 sur la base des données de gestes de l'utilisateur déterminées à partir des données des caméras 312, 314.
Dans cet exemple, la reprojection des données d'image dans la perspective de l'utilisateur 302, en plus des opérations décrites ci-dessus par rapport à la figure 2, peut également inclure des gestes de l'utilisateur pour afficher la transposition du panneau, puisque la position de l'utilisateur 302 par rapport au le panneau d'affichage change avec les changements à mesure que l'utilisateur se déplace dans l'espace de définition 304.
Ainsi, lorsque l'utilisateur 302 se déplace vers un nouvel emplacement 318, les objets 320, 322 dans l'environnement apparaîtront sous un angle différent de celui de l'emplacement d'origine de l'utilisateur 302. Le système informatique 316 peut éventuellement communiquer avec un système informatique distant 324 tel qu'un service cloud.
La figure 4 illustre un exemple de méthode 400 permettant de fournir des données d'image d'un environnement entourant un espace défini pour les afficher du point de vue d'un utilisateur dans l'espace défini.
En 402, le procédé 400 consiste à obtenir des informations sur la posture de l'utilisateur dans l'espace défini. Comme mentionné ci-dessus, par exemple, la posture d'un utilisateur peut refléter la position et l'orientation de la tête. Le geste de l'utilisateur peut être déterminé sur la base de données d'image provenant d'une ou plusieurs caméras fixées dans un cadre de référence spatiale. Comme autre exemple, en 406, le geste de l'utilisateur peut être reçu depuis un casque porté par l'utilisateur, par exemple déterminé à partir de données d'image provenant d'un ou plusieurs capteurs d'image du casque.
Au 408, comprend l'obtention d'une carte de profondeur de l'environnement entourant l'espace défini. La carte de profondeur peut être construite à partir de données d'image acquises par de multiples caméras imageant l'environnement en 410, ou peut être construite à partir de données lidar acquises par un capteur lidar en 412.
Dans d'autres exemples, d'autres types appropriés de détection de profondeur peuvent être utilisés, tels que l'imagerie de profondeur en temps de vol. Ensuite, en 414, le procédé 400 comprend le stockage de données d'intensité pour chaque emplacement dans la carte de profondeur.
Ensuite, en 416, en fonction de la posture de l'utilisateur, déterminez la partie de l'environnement qui entoure l'espace défini que l'utilisateur recherche. Cela peut inclure la détermination en 418 quelle partie de la carte de profondeur l'utilisateur regarde. Dans un exemple, le champ de vision de l'utilisateur peut être projeté sur la carte de profondeur pour déterminer l'emplacement dans la carte de profondeur qui est visible du point de vue de l'utilisateur.
Le procédé 400 comprend également, en 420, l'obtention de données d'image représentant la partie de l'environnement du point de vue de l'utilisateur. Le procédé 400 comprend également, en 426, la fourniture de données d'image à afficher par un dispositif d'affichage dans l'espace défini.
La figure 5 montre un organigramme d'un exemple de procédé 500 pour afficher des données d'image environnementale du point de vue d'un utilisateur via un visiocasque.
En 502, le procédé 500 consiste à obtenir des informations sur la pose du casque dans l'espace défini. La pose du casque peut être suivie sur la base de données d'image provenant d'une ou plusieurs caméras de suivi de tête du casque. En 504, la pose du casque peut être déterminée sur la base d'une ou plusieurs caméras fixées dans un cadre de référence qui définit l'espace. En 506, une ou plusieurs caméras fixes communiquent avec le casque.
En 508, le procédé 500 comprend également l'obtention d'une carte de profondeur, qui comprend des données de profondeur et des données d'intensité pour chaque emplacement de la carte de profondeur, la carte de profondeur représentant l'environnement entourant l'espace défini.
En 512, sur la base au moins de la posture du casque dans l'espace défini, déterminer une partie de l'environnement entourant l'espace défini que l'utilisateur du casque regarde. Cela peut inclure, en 514, la détermination de la partie de la carte de profondeur que l'utilisateur regarde. La partie de la carte d'environnement/de profondeur que l'utilisateur regarde peut en outre être basée au moins sur la position des yeux de l'utilisateur.
Le procédé 500 comprend en outre, en 518, l'obtention de données d'image contenant des données d'intensité pour chaque emplacement dans la partie de carte de profondeur, et en 520, l'affichage des données d'image.
Brevets associés : Brevet Microsoft | Affichage dépendant de la perspective de l'environnement environnant
La demande de brevet Microsoft intitulée « Affichage dépendant de la perspective de l'environnement » a été initialement soumise en mars 2022 et a été récemment publiée par l'Office américain des brevets et des marques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!