Partager via


Compréhension des scènes

La compréhension des scènes fournit aux développeurs de réalité mixte une représentation d’environnement structurée et de haut niveau, conçue pour rendre intuitif le développement pour les applications compatibles avec l’environnement. Pour ce faire, la compréhension des scènes combine la puissance des runtimes de réalité mixte existants, comme le mappage spatial très précis mais moins structuré et les nouveaux runtimes pilotés par l’IA. En combinant ces technologies, scene understanding génère des représentations d’environnements 3D similaires à celles que vous avez peut-être utilisées dans des frameworks tels que Unity ou ARKit/ARCore. Le point d’entrée de compréhension de la scène commence par un observateur de scène, qui est appelé par votre application pour calculer une nouvelle scène. Aujourd’hui, la technologie peut générer 3 catégories d’objets distinctes mais connexes :

  • Maillages d’environnement étanches simplifiés qui déduisent la structure de la salle planaire sans encombrement
  • Régions de plan pour le placement que nous appelons Quads
  • Une instantané du maillage de mappage spatial qui s’aligne sur les données quads/étanches que nous surfaceons

Maillage de mappage spatial, surfaces planaires étiquetées, maillage étanche

Ce document est destiné à fournir une vue d’ensemble du scénario et à clarifier la relation que partagent la compréhension des scènes et le mappage spatial. Si vous souhaitez voir Scene Understanding en action, case activée notre démonstration vidéo Conception d’hologrammes - Reconnaissance spatiale ci-dessous :

Cette vidéo a été extraite de l’application HoloLens 2 « Designing Holograms ». Téléchargez et profitez de l’expérience complète ici.

Développement avec Scene Understanding

Cet article sert uniquement à présenter les concepts et le runtime Scene Understanding. Si vous recherchez de la documentation sur le développement avec Scene Understanding, vous serez peut-être intéressé par les articles suivants :

Vue d’ensemble du Kit de développement logiciel (SDK) Scene Understanding

Vous pouvez télécharger l’exemple d’application Scene Understanding à partir de l’exemple de site GitHub :

Exemple De compréhension de scène

Si vous n’avez pas d’appareil et que vous souhaitez accéder à des exemples de scènes pour essayer Scene Understanding, il existe des scènes dans le dossier de l’exemple de ressources :

Scene Understanding, exemples de scènes

Kit SDK

Si vous recherchez des détails spécifiques sur le développement avec Scene Understanding, consultez la documentation vue d’ensemble du Kit de développement logiciel (SDK) Scene Understanding .

Exemple

Prise en charge des appareils

Fonctionnalité HoloLens (1ère génération) HoloLens 2 Casques immersifs
Compréhension des scènes ✔️

Scénarios d’utilisation courants

Illustrations de scénarios courants d’utilisation du mappage spatial : Placement, Occlusion, Physique et Navigation
Scénarios courants d’utilisation du mappage spatial : placement, occlusion, physique et navigation.


La plupart des principaux scénarios pour les applications respectueuses de l’environnement peuvent être traités à la fois par le mappage spatial et la compréhension des scènes. Ces scénarios principaux incluent le placement, l’occlusion, la physique, etc. Une différence fondamentale entre la compréhension des scènes et le mappage spatial est un compromis entre une précision et une latence maximales pour la structure et la simplicité. Si votre application nécessite la latence la plus faible possible et des triangles de maillage auxquels vous seul souhaiterez accéder, utilisez directement le mappage spatial. Si vous effectuez un traitement de niveau supérieur, vous pouvez envisager de basculer vers le modèle de compréhension de la scène, car il devrait vous fournir un sur-ensemble de fonctionnalités. Vous aurez toujours accès aux données de mappage spatiale les plus complètes et les plus précises possibles, car la compréhension de la scène fournit une instantané du maillage de mappage spatial dans le cadre de sa représentation.

Les sections suivantes réexaminent les principaux scénarios de mappage spatial dans le contexte du nouveau Kit de développement logiciel (SDK) Scene Understanding.

Placement

La compréhension des scènes fournit de nouvelles constructions conçues pour simplifier les scénarios de placement. Une scène peut calculer des primitives appelées SceneQuads, qui décrivent des surfaces plates sur lesquelles des hologrammes peuvent être placés. Les SceneQuads ont été conçus autour du placement et décrivent une surface 2D et fournissent une API pour le placement sur cette surface. Auparavant, lors de l’utilisation du maillage triangle pour effectuer le placement, il fallait analyser toutes les zones du quad et effectuer le remplissage/post-traitement des trous pour identifier les emplacements appropriés pour le placement des objets. Cela n’est pas toujours nécessaire avec Quads, car le runtime de compréhension de la scène déduit les zones de quad qui n’ont pas été analysées et invalide les zones qui ne font pas partie de la surface.

SceneQuads avec inférence désactivée, capturant les zones de placement pour les régions analysées.
Image n°1 - SceneQuads avec inférence désactivée, capturant les zones de placement pour les régions analysées.

Quads avec inférence activée, le placement n’est plus limité aux zones analysées.
Image n°2 - Quads avec l’inférence activée, le placement n’est plus limité aux zones analysées.


Si votre application a l’intention de placer des hologrammes 2D ou 3D sur des structures rigides de votre environnement, la simplicité et la commodité de SceneQuads pour le placement sont préférables au calcul de ces informations à partir du maillage de mappage spatial . Pour plus d’informations sur ce sujet, consultez les informations de référence sur le Kit de développement logiciel (SDK) Scene Understanding.

Note Pour le code de placement hérité qui dépend du maillage de mappage spatial, le maillage de mappage spatial peut être calculé avec SceneQuads en définissant le paramètre EnableWorldMesh. Si l’API scene understanding ne répond pas aux exigences de latence de votre application, nous vous recommandons de continuer à utiliser l’API de mappage spatial.

Occlusion

L’occlusion de mappage spatial reste le moyen le moins latent de capturer l’état en temps réel de l’environnement. Bien que cela puisse être utile pour fournir une occlusion dans des scènes très dynamiques, vous pouvez envisager la compréhension de la scène pour l’occlusion pour plusieurs raisons. Si vous utilisez le maillage de mappage spatial généré par Scene Understanding, vous pouvez demander des données à partir du mappage spatial qui ne seraient pas stockées dans le cache local et qui ne sont pas disponibles à partir des API de perception. L’utilisation du mappage spatial pour l’occlusion avec des maillages étanches fournit une valeur supplémentaire, en particulier l’achèvement de la structure de la pièce non chiffrée.

Si vos besoins peuvent tolérer la latence accrue de la compréhension de la scène, les développeurs d’applications doivent envisager d’utiliser le maillage de compréhension de la scène et le maillage de mappage spatial à l’unisson avec des représentations planaires. Cela fournirait un scénario « best of both worlds » où l’occlusion étanche simplifiée est mariée avec une géométrie nonplanaire plus fine fournissant les cartes d’occlusion les plus réalistes possibles.

Physique

La compréhension des scènes génère des maillages étanches qui décomposent l’espace avec la sémantique, en particulier pour répondre à de nombreuses limitations de la physique imposées par les maillages de mappage spatial. Les structures étanches garantissent que les projections de rayons physiques sont toujours atteintes, et la décomposition sémantique permet de générer plus facilement des maillages de navigation pour la navigation intérieure. Comme décrit dans la section sur l’occlusion, la création d’une scène avec EnableSceneObjectMeshes et EnableWorldMesh produit le maillage physiquement le plus complet possible. La propriété d’étanchéité du maillage de l’environnement empêche les tests de frappe d’échouer sur les surfaces. Les données de maillage garantissent que la physique interagit avec tous les objets de la scène, et pas seulement avec la structure de la salle.

Les maillages planaires décomposés par la classe sémantique sont des constructions idéales pour la navigation et la planification des chemins, ce qui facilite la plupart des problèmes décrits dans la vue d’ensemble de la navigation de mappage spatial . Les objets SceneMesh calculés dans la scène sont délimités par type de surface, ce qui garantit que la génération de maillage de navigation est limitée aux surfaces qui peuvent être parcourues. En raison de la simplicité des structures de plancher, la génération dynamique de maillage de navigation dans les moteurs 3D tels que Unity est réalisable en fonction des exigences en temps réel.

Actuellement, la génération de maillages de navigation précis nécessite toujours un post-traitement, c’est-à-dire que les applications doivent toujours projeter des occludes sur le plancher pour s’assurer que la navigation ne passe pas à travers les tableaux et ainsi de suite. La façon la plus précise d’y parvenir consiste à projeter les données de maillage mondial, qui sont fournies si la scène est calculée avec l’indicateur EnableWorldMesh.

Visualisation

Bien que la visualisation de mappage spatial puisse être utilisée pour la rétroaction en temps réel de l’environnement, il existe de nombreux scénarios où la simplicité des objets planaires et étanches offre davantage de performances ou de qualité visuelle. Les techniques de projection d’ombre et de mise à la terre décrites à l’aide de la cartographie spatiale peuvent être plus agréables si elles sont projetées sur les surfaces planaires fournies par quads ou le maillage étanche planaire. Cela est particulièrement vrai pour les environnements/scénarios où l’analyse préalable approfondie n’est pas optimale, car la scène déduit, et les environnements complets et les hypothèses planaires réduisent les artefacts.

En outre, le nombre total de surfaces retournées par le mappage spatial est limité par le cache spatial interne, tandis que la version de Scene Understanding du maillage de mappage spatial peut accéder aux données de mappage spatial qui ne sont pas mises en cache. Pour cette raison, la compréhension des scènes est plus adaptée à la capture de représentations de maillage pour des espaces plus grands (par exemple, plus grands qu’une seule pièce) pour la visualisation ou un traitement de maillage supplémentaire. Le maillage mondial retourné avec EnableWorldMesh aura un niveau de détail cohérent tout au long de l’ensemble, ce qui peut produire une visualisation plus agréable s’il est rendu sous forme de trame filaire.

Voir aussi