Grundlegendes zu SzenenScene understanding

Das Verständnis von Szenen bietet Entwicklern gemischter Realität eine strukturierte, allgemeine Darstellung in der Umgebung, die entwickelt wurde, um die Entwicklung für Anwendungen mit hoher Ebene intuitiv zu gestalten.Scene understanding provides Mixed Reality developers with a structured, high-level environment representation designed to make developing for environmentally aware applications intuitive. Der Einblick in die Szene ermöglicht das Kombinieren der Leistungsfähigkeit vorhandener gemischter Laufzeiten, z. b. der hochgradig präzisen, aber weniger strukturierten räumlichen Zuordnung und neuer Ki-gesteuerter Runtimes.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. Durch die Kombination dieser Technologien generiert das Szene Verständnis Darstellungen von 3D-Umgebungen, die denen ähneln, die Sie möglicherweise in Frameworks wie Unity oder Arkit/Arcore verwendet haben.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. Der Einstiegspunkt der Szene beginnt mit einem Szenen Beobachter, der von Ihrer Anwendung aufgerufen wird, um eine neue Szene zu berechnen.The Scene understanding entry point begins with a Scene Observer, which is called by your application to compute a new scene. Heute kann die Technologie drei verschiedene, aber verwandte Objektkategorien generieren:Today, the technology can generate 3 distinct but related object categories:

  • Vereinfachte wasserdichte Umgebungs Netze, die die planare Raumstruktur ohne Übersichtlichkeit ableitenSimplified watertight environment meshes that infer the planar room structure without clutter
  • Ebenen für die Platzierung, die wir als Quads bezeichnenPlane regions for placement that we call Quads
  • Eine Momentaufnahme des Netzes für räumliche Zuordnung , das sich auf die von uns angezeigten Daten mit Quads/wasserdichten richtetA snapshot of the spatial mapping mesh that aligns with the Quads/Watertight data that we surface

Räumliches Mapping-Mesh, Bezeichnung planare Oberflächen, wasserdichtes Mesh

Dieses Dokument soll eine Szenarioübersicht bereitstellen und die Beziehung erläutern, die von der Szene und der räumlichen Zuordnung gemeinsam genutzt wird.This document is intended to provide a scenario overview and to clarify the relationship that Scene understanding and Spatial mapping share.

Entwickeln mit Szenen VerständnisDeveloping with Scene Understanding

Dieser Artikel bietet nur eine Einführung in die Szene, die Laufzeit und Konzepte versteht.This article only serves to introduce the Scene Understanding runtime and concepts. Wenn Sie nach einer Dokumentation zur Entwicklung mit Szenen Verständnis suchen, sind Sie möglicherweise an den folgenden Artikeln interessiert:If you're looking for documentation on how to develop with Scene Understanding, you may be interested in the following articles:

Übersicht über das Szene Verständnis von SDKScene Understanding SDK overview

Sie können die Beispiel-App für szeneninformationen von der GitHub-Beispiel Website herunterladen:You can download the Scene Understanding Sample app from the sample GitHub site:

Beispiel für Szenen VerständnisScene Understanding Sample

Wenn Sie nicht über ein Gerät verfügen und auf Beispiel Szenen zugreifen möchten, um szeneninformationen auszuprobieren, gibt es im Beispiel Ordner "Asset" Szenen: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:

Szenen Einblick in Beispiel SzenenScene Understanding Sample Scenes

SDKSDK

Wenn Sie nach bestimmten Details zum Entwickeln mit Szenen Verständnis suchen, finden Sie in der Dokumentation zum Thema " Scene Understanding SDK Overview " Weitere Informationen.If you're looking for specific details on developing with Scene Understanding, see the Scene Understanding SDK overview documentation.

BeispielSample

GeräteunterstützungDevice support

FeatureFeature HoloLens (1. Generation)HoloLens (1st gen) HoloLens 2HoloLens 2 Immersive HeadsetsImmersive headsets
Grundlegendes zu SzenenScene understanding ✔️✔️

Allgemeine VerwendungsszenariosCommon usage scenarios

Abbildungen allgemeiner Verwendungs Szenarien für räumliche Zuordnung: Platzierung, oksion, Physik und NavigationIllustrations of common Spatial mapping usage scenarios: Placement, Occlusion, Physics and Navigation
Gängige Verwendungs Szenarien für räumliche Zuordnung: Platzierung, oksion, Physik und Navigation.Common spatial mapping usage scenarios: placement, occlusion, physics, and navigation.


Viele der Kern Szenarien für umweltbewusste Anwendungen können sowohl durch räumliche Zuordnung als auch durch Szenen Verständnis behandelt werden.Many of the core scenarios for environmentally aware applications can be addressed by both Spatial mapping and Scene understanding. Diese Kern Szenarien umfassen Platzierung, Okklusion, Physik und so weiter.These core scenarios include placement, occlusion, physics, and so on. Ein Hauptunterschied zwischen Szenen Verständnis und räumlicher Zuordnung ist der Nachteil der maximalen Genauigkeit und Latenz bei der Struktur und Einfachheit.A core difference between Scene understanding and Spatial mapping is a tradeoff of maximal accuracy and latency to structure and simplicity. Wenn für Ihre Anwendung die möglichen Werte mit niedrigster Latenz und Gitter Dreiecke erforderlich sind, auf die nur Sie zugreifen möchten, verwenden Sie die räumliche Zuordnung direkt.If your application requires the lowest-latency possible and mesh triangles that only you'll want to access, use Spatial Mapping directly. Wenn Sie die Verarbeitung auf höherer Ebene durcharbeiten, können Sie in Erwägung gezogen werden, dass Sie in das Szene Verständnis Modell wechseln, da Sie eine Reihe von Funktionen bereitstellen sollten.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. Sie können jederzeit auf die vollständigsten und präziseren räumlichen Zuordnungsdaten zugreifen, da die Darstellung von Szenen eine Momentaufnahme des Netzes der räumlichen Zuordnung als Teil der Darstellung bietet.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.

In den folgenden Abschnitten werden die wichtigsten Szenarios für räumliche Mapping im Kontext des neuen Szenarios für die Szenarios erläutert.The following sections revisit the core spatial mapping scenarios in the context of the new Scene understanding SDK.

PlatzierungPlacement

Das Verständnis von Szenen bietet neue Konstrukte zur Vereinfachung von Platzierungs Szenarios.Scene understanding provides new constructs designed to simplify placement scenarios. Eine Szene kann primitive als scenequads berechnen, die flache Oberflächen beschreiben, auf denen holograms platziert werden können.A scene can compute primitives called SceneQuads, which describe flat surfaces on which holograms can be placed. Scenequads wurden um die Platzierung entworfen und beschreiben eine 2D-Oberfläche und stellen eine API für die Platzierung auf dieser Oberfläche bereit.SceneQuads have been designed around placement and describe a 2D surface and provide an API for placement on that surface. Zuvor musste bei Verwendung des Dreiecks Netzes für die Platzierung alle Bereiche der vier vier Punkte durchsucht werden, um für die Objekt Platzierung gute Positionen zu ermitteln.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. Dies ist bei Quads nicht immer erforderlich, da die Szene, die Laufzeitumgebung versteht, ermittelt, welche vier Bereiche nicht gescannt wurden, und die Bereiche, die nicht Teil der Oberfläche sind, ungültig machenThis 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 mit deaktiviertem Rückschluss, wobei Platzierungs Bereiche für überprüfte Bereiche erfasst werden.SceneQuads with inference disabled, capturing placement areas for scanned regions.
Bild #1 -scenequads mit deaktiviertem Rückschluss, wobei Platzierungs Bereiche für überprüfte Bereiche erfasst werden.Image #1 - SceneQuads with inference disabled, capturing placement areas for scanned regions.

Quads mit aktiviertem Inferenz ist die Platzierung nicht mehr auf überprüfte Bereiche beschränkt.Quads with inference enabled, placement is no longer limited to scanned areas.
Image #2 -Quads mit aktiviertem Typrückschluss ist die Platzierung nicht mehr auf überprüfte Bereiche beschränkt.Image #2 - Quads with inference enabled, placement is no longer limited to scanned areas.


Wenn Ihre Anwendung die Möglichkeit hat, 2D-oder 3D-Hologramme in starre Strukturen Ihrer Umgebung zu platzieren, ist die Einfachheit und Vereinfachung von scenequads für die Platzierung besser, wenn diese Informationen aus dem räumlichen Mapping -Mesh berechnet werden.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. Weitere Informationen zu diesem Thema finden Sie in der Scene Understanding SDK-Referenz .For more information on this topic, see the Scene understanding SDK reference

Hinweis Für Legacy-Platzierungs Code, der vom Mesh für räumliche Zuordnungen abhängt, kann das räumliche Zuordnungen-Mesh zusammen mit scenequads berechnet werden, indem die enableworldmesh-Einstellung festgelegt wird.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. Wenn die Scene Understanding API die Latenz Anforderungen Ihrer Anwendung nicht erfüllt, wird empfohlen, weiterhin die räumliche Mapping-APIzu verwenden.If Scene understanding API doesn't satisfy your application's latency requirements, we recommend you continue to use the Spatial mapping API.

OkklusionOcclusion

Die Okklusion für räumliche Zuordnungen ist die niedrigste Methode zum Erfassen des Echt Zeit Zustands der Umgebung.Spatial mapping occlusion remains the least latent way to capture the real-time state of the environment. Obwohl dies nützlich sein kann, um die Okklusion in sehr dynamischen Szenen bereitzustellen, empfiehlt es sich unter Umständen, das Verständnis der Szene in der Szene aus verschiedenen Gründen zu verstehen.Though this may be useful to provide occlusion in highly dynamic scenes, you may wish to consider Scene understanding for occlusion for several reasons. Wenn Sie das durch Szene Verständnis generierte räumliche zuordnungsmesh verwenden, können Sie Daten aus räumlicher Zuordnung anfordern, die nicht im lokalen Cache gespeichert werden und nicht über die perception-APIs verfügbar sind.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. Die Verwendung der räumlichen Zuordnung für die Okklusion neben wasserdichten Netzen stellt zusätzlichen Wert bereit, insbesondere den Abschluss der nicht gescannten Raumstruktur.Using Spatial Mapping for occlusion alongside watertight meshes will provide extra value, specifically completion of unscanned room structure.

Wenn Ihre Anforderungen die zunehmende Latenz von Szenen Verständnis tolerieren können, sollten Anwendungsentwickler die Verwendung der Szene verstehen, die das Wasser enge Mesh und das räumliche Mapping-Mesh in gemeinsamen mit planaren Darstellungen unterliegt.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. Dies wäre ein "Beste aus beiden Welten"-Szenario, in dem die vereinfachte wasserdichte mit einer feineren nicht planaren Geometrie verheiratet ist, die die realistischsten Karten für die Karten Zuordnung bereitstellt.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.

Physische EffektePhysics

Szenen Verständnis generiert Wasser enge Netze, die Leerzeichen mit Semantik zerlegen, insbesondere, um viele Einschränkungen der Physik zu berücksichtigen, die von den Netzen räumlicher Zuordnung auferlegt werden.Scene understanding generates watertight meshes that decompose space with semantics, specifically to address many limitations to physics that spatial mapping meshes impose. Wasserdichte Strukturen sorgen für eine einfachere Generierung von physikalischer Ray-Umwandlungen, und die semantische Zerlegung ermöglicht eine einfachere Generierung von Navigations Netzen für die Navigation in einemWatertight structures ensure physics ray casts always hit, and semantic decomposition allows for simpler generation of nav meshes for indoor navigation. Wie im Abschnitt zu Okklusionbeschrieben, wird durch das Erstellen einer Szene mit enablesceneobjectmeshes und enableworldmesh das am meisten physisch umfassende Mesh ermöglicht.As described in the section on occlusion, creating a scene with EnableSceneObjectMeshes and EnableWorldMesh will produce the most physically complete mesh possible. Die Eigenschaft "Watertight" des Umgebungs Netzes verhindert, dass Treffer Tests auf Oberflächen verzichten.The watertight property of the environment mesh prevents hit tests from failing to hit surfaces. Mithilfe der Mesh-Daten wird sichergestellt, dass die Physik mit allen Objekten in der Szene und nicht nur mit der Raumstruktur interagiert.The mesh data will ensure physics are interacting with all objects in the scene and not just the room structure.

Planare Netzen, die durch die semantische Klasse zerlegt werden, sind ideale Konstrukte für die Navigation und die Pfad Planung. Dadurch werden viele der Probleme, die in der Übersicht über die Navigation über räumlichePlanar 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. Die scenemesh-Objekte, die in der Szene berechnet werden, werden aus dem Surface-Typ zerlegt, um sicherzustellen, dass die NAV-Mesh-Generierung auf Oberflächen beschränkt ist, auf die Sie sichThe 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. Aufgrund der Einfachheit der Bodenstrukturen ist die dynamische NAV-Mesh-Generierung in 3D--Engines wie Unity abhängig von den Echtzeitanforderungen erreichbar.Because of the floor structures' simplicity, dynamic nav-mesh generation in 3d engines such as Unity are attainable depending on real-time requirements.

Das Erstellen von exakten NAV-Meshes erfordert zurzeit noch die Nachbearbeitung. Anwendungen müssen nach wie vor in der-Etage auf dem Boden stehen, um sicherzustellen, dass die Navigation nicht durch Übersichtlichkeit/Tabellen verläuft und so weiter.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. Die präzisere Methode hierfür ist das Projizieren der World Mesh-Daten, die bereitgestellt werden, wenn die Szene mit dem enableworldmesh-Flag berechnet wird.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.

VisualisierungVisualization

Obwohl die Visualisierung für die räumliche Zuordnung für Echtzeitfeedback der Umgebung verwendet werden kann, gibt es viele Szenarios, in denen die Einfachheit von planaren und wasserdichten Objekten mehr Leistung oder visuelle Qualität bietet.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. Schattenprojektions-und Erdungs Techniken, die mithilfe räumlicher Zuordnung beschrieben werden, sind möglicherweise ansprechender, wenn Sie auf den planaren Oberflächen projiziert werden, die von Quads oder dem planaren wasserdichten MeshShadow 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. Dies gilt insbesondere für Umgebungen/Szenarien, in denen eine gründliche vorab Überprüfung nicht optimal ist, da die Szene nicht optimal istThis 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.

Außerdem wird die Gesamtanzahl der von der räumlichen Zuordnung zurückgegebenen Oberflächen durch den internen räumlichen Cache beschränkt, während die Version des Netzes für räumliche Zuordnung auf räumliche Zuordnungsdaten zugreifen kann, die nicht zwischengespeichert werden.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. Aus diesem Grund ist das Verständnis der Szene besser für die Erfassung von Netz Darstellungen für größere Bereiche (z. b. mehr als einen einzelnen Raum) für die Visualisierung oder weitere Gitter Verarbeitung geeignet.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. Das mit enableworldmesh zurückgegebene World Mesh verfügt über eine konsistente Detailebene, die bei gerenderter Darstellung als Wireframe eine ansprechendere Visualisierung ergeben kann.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.

Weitere InformationenSee Also