Compréhension des scènesScene understanding

La présentation 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 le développement pour les applications compatibles avec l’environnement intuitif.Scene understanding provides Mixed Reality developers with a structured, high-level environment representation designed to make developing for environmentally aware applications intuitive. Pour ce faire, il 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 reposant sur l’intelligence artificielle.Scene understanding does this by combining the power of existing mixed reality runtimes, like the highly accurate but less structured spatial mapping and new AI driven runtimes. En combinant ces technologies, la compréhension des scènes génère des représentations d’environnements 3D similaires à celles que vous avez pu utiliser dans des infrastructures telles que Unity ou ARKit/ARCore.By combining these technologies, Scene understanding generates representations of 3D environments that are similar to those you may have used in frameworks such as Unity or ARKit/ARCore. La scène comprendre le point d’entrée commence par un observateur de scène, qui est appelé par votre application pour calculer une nouvelle scène.The Scene understanding entry point begins with a Scene Observer, which is called by your application to compute a new scene. Aujourd’hui, la technologie peut générer 3 catégories d’objets distinctes, mais connexes :Today, the technology can generate 3 distinct but related object categories:

  • Maillages d’environnement étanches simplifiés qui déduirent la structure de la pièce planaire sans encombrementSimplified watertight environment meshes that infer the planar room structure without clutter
  • Régions de plan pour le positionnement que nous appelons quadsPlane regions for placement that we call Quads
  • Un instantané du maillage de mappage spatial qui s’aligne sur les quadruples/les données étanches que nous avons surfaceA snapshot of the spatial mapping mesh that aligns with the Quads/Watertight data that we surface

Maillage de mappage spatial, intitulé surfaces planées, maillage étanche

Ce document est destiné à fournir une vue d’ensemble du scénario et à clarifier la relation avec la compréhension des scènes et le partage spatial.This document is intended to provide a scenario overview and to clarify the relationship that Scene understanding and Spatial mapping share.

Développement avec la compréhension de la scèneDeveloping with Scene Understanding

Cet article sert uniquement à présenter la scène présentation du runtime et des concepts.This article only serves to introduce the Scene Understanding runtime and concepts. Si vous recherchez de la documentation sur la manière de développer avec la compréhension des scènes, vous pouvez être intéressé par les articles suivants :If you're looking for documentation on how to develop with Scene Understanding, you may be interested in the following articles:

Présentation du SDK présentation de SceneScene Understanding SDK overview

Vous pouvez télécharger l’exemple d’application Scene Understanding à partir de l’exemple de site GitHub :You can download the Scene Understanding Sample app from the sample GitHub site:

Exemple de compréhension de scèneScene Understanding Sample

Si vous n’avez pas d’appareil et que vous souhaitez accéder à des exemples de scènes pour essayer de comprendre les scènes, il existe des scènes dans l’exemple de dossier de ressources :If you don't have a device and wish to access sample scenes to try Scene Understanding out, there are scenes in the sample asset folder:

Exemples de scènes de visionScene Understanding Sample Scenes

Kit SDKSDK

Si vous recherchez des informations spécifiques sur le développement avec la compréhension de la scène, consultez la documentation de Présentation de Scene Understanding SDK .If you're looking for specific details on developing with Scene Understanding, see the Scene Understanding SDK overview documentation.

ExempleSample

Prise en charge des appareilsDevice support

FonctionnalitéFeature HoloLens (1ère génération)HoloLens (1st gen) HoloLens 2HoloLens 2 Casques immersifsImmersive headsets
Compréhension des scènesScene understanding ✔️✔️

Scénarios d’utilisation courantsCommon usage scenarios

Illustrations de scénarios courants d’utilisation de mappages spatiaux : placement, occlusion, physique et navigationIllustrations of common Spatial mapping usage scenarios: Placement, Occlusion, Physics and Navigation
Scénarios courants d’utilisation du mappage spatial : placement, occlusion, physique et navigation.Common spatial mapping usage scenarios: placement, occlusion, physics, and navigation.


La plupart des scénarios de base pour les applications sensibles à l’environnement peuvent être résolus à l’aide du mappage spatial et de la compréhension des scènes.Many of the core scenarios for environmentally aware applications can be addressed by both Spatial mapping and Scene understanding. Ces scénarios de base incluent le placement, l’occlusion, la physique, etc.These core scenarios include placement, occlusion, physics, and so on. L’une des principales différences entre la compréhension des scènes et le mappage spatial est un compromis entre la précision et la latence maximales de la structure et de la simplicité.A core difference between Scene understanding and Spatial mapping is a tradeoff of maximal accuracy and latency to structure and simplicity. Si votre application nécessite la latence la plus faible possible et les triangles de maillage auxquels vous seul souhaitez accéder, utilisez le mappage spatial directement.If your application requires the lowest-latency possible and mesh triangles that only you'll want to access, use Spatial Mapping directly. Si vous effectuez un traitement de niveau supérieur, vous pouvez envisager de basculer vers le modèle de compréhension de scène, car il doit vous fournir un sur-ensemble de fonctionnalités.If you're doing higher-level processing, you may consider switching to the Scene understanding model as it should provide you with a superset of functionality. Vous avez 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.You'll always have access to the most complete and accurate spatial mapping data possible because Scene understanding provides a snapshot of the spatial mapping mesh as part of its representation.

Les sections suivantes réexaminent les scénarios de mappage spatial de base dans le contexte du nouveau kit de développement logiciel (SDK).The following sections revisit the core spatial mapping scenarios in the context of the new Scene understanding SDK.

Sélection électivePlacement

La compréhension des scènes fournit de nouvelles constructions conçues pour simplifier les scénarios de placement.Scene understanding provides new constructs designed to simplify placement scenarios. Une scène peut calculer des primitives appelées SceneQuads, qui décrivent des surfaces plates sur lesquelles des hologrammes peuvent être placés.A scene can compute primitives called SceneQuads, which describe flat surfaces on which holograms can be placed. Les SceneQuads ont été conçus autour du placement et décrivent une surface 2D et fournissent une API pour l’emplacement de cette surface.SceneQuads have been designed around placement and describe a 2D surface and provide an API for placement on that surface. Auparavant, lors de l’utilisation du maillage de triangles pour le placement, vous deviez analyser toutes les zones du quadruple et effectuer le remplissage/le traitement des trous pour identifier les emplacements corrects pour le placement des objets.Previously, when using the triangle mesh to do placement, one had to scan all areas of the quad and do hole filling/post-processing to identify good locations for object placement. Cela n’est pas toujours nécessaire avec les quadruples, car l’exécution de la compréhension de la scène déduit les zones Quad qui n’ont pas été analysées et invalident les zones qui ne font pas partie de la surface.This isn't always necessary with Quads, as the Scene understanding runtime infers which quad areas weren't scanned, and invalidate areas that aren't part of the surface.

SceneQuads avec l’inférence désactivée, capturant les zones de positionnement pour les régions numérisées.SceneQuads with inference disabled, capturing placement areas for scanned regions.
Image #1 -SceneQuads avec l’inférence désactivée, capturant les zones de positionnement pour les régions numérisées.Image #1 - SceneQuads with inference disabled, capturing placement areas for scanned regions.

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


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 à la détermination de ces informations à partir du maillage de mappage spatial .If your application intends to place 2D or 3D holograms on rigid structures of your environment, the simplicity and convenience of SceneQuads for placement is preferable to computing this information from the spatial mapping mesh. Pour plus d’informations sur cette rubrique, consultez la documentation de référence du kit de développement SDKFor more information on this topic, see the Scene understanding SDK reference

Remarque 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.Note For legacy placement code that depends on the spatial mapping mesh, the spatial mapping mesh can be computed along with SceneQuads by setting EnableWorldMesh setting. Si la compréhension de l’API Scene ne répond pas aux exigences de latence de votre application, nous vous recommandons de continuer à utiliser l' API de mappage spatial.If Scene understanding API doesn't satisfy your application's latency requirements, we recommend you continue to use the Spatial mapping API.

OcclusionOcclusion

L' occlusion de mappage spatial reste le moyen le moins latent de capturer l’État en temps réel de l’environnement.Spatial mapping occlusion remains the least latent way to capture the real-time state of the environment. Bien que cela puisse être utile pour fournir une occlusion dans des scènes très dynamiques, vous pouvez envisager une compréhension de scène pour l’occlusion pour plusieurs raisons.Though this may be useful to provide occlusion in highly dynamic scenes, you may wish to consider Scene understanding for occlusion for several reasons. Si vous utilisez le maillage de mappage spatial généré par la compréhension des scènes, 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 dans les API de perception.If you use the spatial mapping mesh generated by Scene Understanding, you can request data from spatial mapping that wouldn't be stored in the local cache and isn't available from the perception APIs. L’utilisation du mappage spatial pour l’occlusion avec les mailles étanches fournira une valeur supplémentaire, en particulier l’achèvement de la structure de salle non scannée.Using Spatial Mapping for occlusion alongside watertight meshes will provide extra value, specifically completion of unscanned room structure.

Si vos exigences peuvent tolérer l’augmentation de la latence de la compréhension des scènes, les développeurs d’applications doivent envisager d’utiliser la scène avec la vue de la maille étanche, et la maille de mappage spatiale avec des représentations planaires.If your requirements can tolerate the increased latency of Scene understanding, application developers should consider using the Scene understanding watertight mesh, and the spatial mapping mesh in unison with planar representations. Cela fournit un scénario de « meilleur des deux mondes » dans lequel l’occlusion à l’eau simplifiée est marié avec une géométrie non planive plus fine qui offre les cartes d’occlusion les plus réalistes possibles.This would provide a "best of both worlds" scenario where simplified watertight occlusion is married with finer nonplanar geometry providing the most realistic occlusion maps possible.

PhysiquePhysics

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 imposées par les maillages spatiaux.Scene understanding generates watertight meshes that decompose space with semantics, specifically to address many limitations to physics that spatial mapping meshes impose. Les structures étanches garantissent que les conversions de rayon physique sont toujours atteintes, et la décomposition sémantique permet une génération plus simple de maillages de navigation pour la navigation intérieure.Watertight structures ensure physics ray casts always hit, and semantic decomposition allows for simpler generation of nav meshes for indoor navigation. Comme décrit dans la section sur l' occlusion, la création d’une scène avec EnableSceneObjectMeshes et EnableWorldMesh produira le maillage le plus physique possible.As described in the section on occlusion, creating a scene with EnableSceneObjectMeshes and EnableWorldMesh will produce the most physically complete mesh possible. La propriété étanche de la maille d’environnement empêche les tests de positionnement de basculer vers les surfaces d’atteinte.The watertight property of the environment mesh prevents hit tests from failing to hit surfaces. Les données de maillage garantissent que la physique interagit avec tous les objets de la scène, et pas seulement la structure de la pièce.The mesh data will ensure physics are interacting with all objects in the scene and not just the room structure.

Les maillages planaires décomposés par la classe sémantique sont des constructions idéales pour la navigation et la planification des chemins d’accès, ce qui simplifie la plupart des problèmes décrits dans la vue d’ensemble de la navigation dans le mappage spatial .Planar meshes decomposed by semantic class are ideal constructs for navigation and path planning, easing many of the issues described in the Spatial mapping navigation overview. Les objets SceneMesh calculés dans la scène sont décomposés de type surface, ce qui garantit que la génération du maillage de navigation est limitée aux surfaces qui peuvent être parcourues.The SceneMesh objects computed in the scene are de-composed by surface type ensuring that nav-mesh generation is limited to surfaces that can be walked on. En raison de la simplicité des structures de plancher, la génération dynamique de maillages de navigation dans les moteurs 3D comme Unity est réalisable en fonction des exigences en temps réel.Because of the floor structures' simplicity, dynamic nav-mesh generation in 3d engines such as Unity are attainable depending on real-time requirements.

La génération de panneaux de navigation précis nécessite toujours un traitement de la suite, à savoir que les applications doivent toujours projeter Occluders sur le plancher pour s’assurer que la navigation ne passe pas par l’encombrement, les tables, etc.Generating accurate nav-meshes currently still requires post-processing, namely applications must still project occluders on to the floor to ensure that navigation doesn't pass through clutter/tables and so on. La méthode la plus précise pour y parvenir consiste à projeter les données de maillage universel, qui sont fournies si la scène est calculée avec l’indicateur EnableWorldMesh.The most accurate way to accomplish this is to project the world mesh data, which is provided if the scene is computed with the EnableWorldMesh flag.

VisualisationVisualization

Bien qu’il soit possible d’utiliser la visualisation de mappage spatial pour obtenir des commentaires en temps réel sur l’environnement, il existe de nombreux scénarios dans lesquels la simplicité des objets planaires et étanches améliore les performances ou la qualité visuelle.While spatial mapping visualization can be used for real-time feedback of the environment, there are many scenarios where the simplicity of planar and watertight objects provides more performance or visual quality. La projection d’ombre et les techniques de mise à la terre décrites à l’aide du mappage spatial peuvent être plus attrayantes si elles sont projetées sur les surfaces planes fournies par quads ou la maille étanche planaire.Shadow projection and grounding techniques that are described using spatial mapping may be more pleasing if projected on the planar surfaces provided by Quads or the planar watertight mesh. Cela est particulièrement vrai pour les environnements/scénarios où la pré-analyse minutieuse n’est pas optimale, car la scène est déduite, et les environnements complets et les hypothèses planaires réduisent les artefacts.This is especially true for environments/scenarios where thorough pre-scanning isn't optimal because the scene will infer, and complete environments and planar assumptions will minimize artifacts.

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 vue de la carte de mappage spatiale peut accéder aux données de mappage spatiales qui ne sont pas mises en cache.Additionally, the total number of surfaces returned by Spatial Mapping is limited by the internal spatial cache, while Scene understanding's version of the Spatial Mapping mesh can access spatial mapping data that isn't cached. Pour cette raison, la compréhension de la scène est plus adaptée à la capture des représentations de maillage pour les espaces plus larges (par exemple, plus grande qu’une seule pièce) pour la visualisation ou le traitement du maillage.Because of this, Scene understanding is more suited to capturing mesh representations for larger spaces (for example, larger than a single room) for visualization or further mesh processing. La maille mondiale retournée avec EnableWorldMesh aura un niveau de détail cohérent tout au long de, ce qui peut générer une visualisation plus agréable si elle est rendue sous forme filaire.The world mesh returned with EnableWorldMesh will have a consistent level of detail throughout, which may yield a more pleasing visualization if rendered as wireframe.

Voir aussiSee Also