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. La compréhension des scènes fait cela en combinant la puissance des runtimes de réalité mixte existants, comme le mappage spatial hautement précis mais moins structuré et les nouveaux runtimes pilotés par l’IA. En combinant ces technologies, la compréhension de scène génère des représentations d’environnements 3D similaires à ceux que vous avez peut-être utilisés dans des frameworks tels que Unity ou ARKit/ARCore. Le point d’entrée de compréhension de scène commence par un observateur de scène, 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 étanche simplifiés qui déduitnt la structure de la pièce planaire sans encombrement
  • Régions de plan pour le placement que nous appelons Quads
  • Capture instantanée du maillage de mappage spatial qui s’aligne sur les données Quads/Watertight que nous surfacerons

Spatial mapping mesh, labeled planar surfaces, watertight mesh

Ce document est destiné à fournir une vue d’ensemble du scénario et à clarifier la relation que la compréhension des scènes et le partage de mappage spatial. Si vous souhaitez voir Scene Understanding en action, consultez notre démonstration vidéo Conception 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 ne sert qu’à présenter le runtime et les concepts 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 GitHub site :

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 l’exemple de dossier de ressources :

Exemples de scènes de compréhension des scènes

Kit SDK

Si vous recherchez des détails spécifiques sur le développement avec Scene Understanding, consultez la documentation de présentation 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 of common Spatial mapping usage scenarios: Placement, Occlusion, Physics and 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 par la compréhension du mappage spatial et de la scène. Ces principaux scénarios incluent le placement, l’occlusion, la physique, etc. Une différence essentielle entre la compréhension de scène et le mappage spatial est un compromis entre la précision et la latence maximales pour la structure et la simplicité. Si votre application nécessite la latence la plus faible possible et les triangles de maillage auxquels vous souhaitez uniquement accéder, utilisez le mappage spatial directement. Si vous effectuez un traitement de niveau supérieur, vous pouvez envisager de passer au modèle de compréhension de scène, car il doit vous fournir un sur-ensemble de fonctionnalités. Vous aurez toujours accès aux données de mappage spatiale les plus complètes et précises possibles, car la compréhension de scène fournit un 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 les surfaces plates sur lesquelles les hologrammes peuvent être placés. SceneQuads a été conçu autour du placement et décrit une surface 2D et fournit une API de placement sur cette surface. Auparavant, lors de l’utilisation du maillage triangle pour effectuer un placement, il fallait analyser toutes les zones du quad et effectuer des remplissages de trous/post-traitement 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 scène déduit les zones quad qui n’ont pas été analysées et invalide les zones qui ne font pas partie de la surface.

SceneQuads with inference disabled, capturing placement areas for scanned regions.
Image #1 - SceneQuads avec inférence désactivée, capture des zones de positionnement pour les régions analysées.

Quads with inference enabled, placement is no longer limited to scanned areas.
Image #2 - Quads avec inférence activée, le positionnement n’est plus limité aux zones analysées.


Si votre application envisage 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 à l’informatique de ces informations à partir du maillage de mappage spatial . Pour plus d’informations sur cette rubrique, consultez la référence du Kit de développement logiciel (SDK) Scene Understanding

Note Pour le code de positionnement 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 De compréhension de scène 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 l’occlusion dans des scènes très dynamiques, vous pouvez envisager la compréhension des scènes 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 serait pas stocké dans le cache local et qui n’est pas disponible à partir des API de perception. L’utilisation du mappage spatial pour l’occlusion en même temps que les maillages étanches fournit une valeur supplémentaire, en particulier l’achèvement de la structure de salle nonscannée.

Si vos besoins peuvent tolérer l’augmentation de la latence de la compréhension de scène, les développeurs d’applications doivent envisager d’utiliser le maillage étanche de la scène et le maillage de mappage spatial dans l’unisson avec des représentations planaires. Cela fournirait un scénario « meilleur des deux mondes » 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 à la physique que les maillages de mappage spatial imposent. Les structures étanches garantissent que les casts de rayons physiques atteignent toujours, et la décomposition sémantique permet une génération plus simple de 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 le plus physiquement possible. La propriété étanche du maillage de l’environnement empêche les tests de frappe de ne pas atteindre 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 classe sémantique sont des constructions idéales pour la planification de la navigation et du chemin d’accès, 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.

La génération de maillages de navigation précis nécessite toujours un post-traitement, à savoir que les applications doivent toujours projeter des obstrueurs sur le sol pour s’assurer que la navigation ne passe pas par l’encombrement/les tables, et ainsi de suite. La façon la plus précise d’y parvenir consiste à projeter les données de maillage du monde, 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 les commentaires en temps réel de l’environnement, il existe de nombreux scénarios où la simplicité des objets planaires et étanches offre plus de performances ou de qualité visuelle. Les techniques de projection d’ombre et de sol décrites à l’aide du mappage spatial 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ù la pré-analyse 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 la compréhension de scène 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 des 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 en tant que filaire.

Voir aussi