Grundlegendes zu Szenen

Feature HoloLens (1. Generation) HoloLens 2 Immersive Headsets
Grundlegendes zu Szenen ✔️

Allgemeine Verwendungsszenarios

Illustrations of common Spatial mapping usage scenarios: Placement, Occlusion, Physics and Navigation
Allgemeine Verwendungsszenarien für räumliche Zuordnungen: Platzierung, Verdeckung, Physik und Navigation.


Viele der Kernszenarien für fähige Anwendungen können sowohl durch räumliche Zuordnung als auch durch Szenenverständnis behandelt werden. Zu diesen Kernszenarien gehören Platzierung, Verdeckung, Physik usw. Ein Hauptunterschied zwischen Szenenverständnis und räumlicher Zuordnung ist ein Kompromiss zwischen maximaler Genauigkeit und Latenz gegenüber Struktur und Einfachheit. Wenn Ihre Anwendung die geringstmögliche Latenz und Gitterdreiecke erfordert, auf die nur Sie zugreifen möchten, verwenden Sie die räumliche Zuordnung direkt. Wenn Sie eine Verarbeitung auf höherer Ebene durchführen, können Sie in Betracht ziehen, zum Scene Understanding-Modell zu wechseln, da es Ihnen eine Obermenge an Funktionen bieten sollte. Sie haben immer Zugriff auf die vollständigsten und präzisesten räumlichen Zuordnungsdaten, da Scene Understanding eine Momentaufnahme des Gitternetzes für räumliche Zuordnungen als Teil seiner Darstellung bereitstellt.

In den folgenden Abschnitten werden die wichtigsten Szenarien für die räumliche Zuordnung im Kontext des neuen Scene Understanding SDK erneut erläutert.

Platzierung

Szenenverständnis bietet neue Konstrukte zur Vereinfachung von Platzierungsszenarien. Eine Szene kann Primitive mit dem Namen SceneQuads berechnen, die flache Oberflächen beschreiben, auf denen Hologramme platziert werden können. SceneQuads wurden für die Platzierung entworfen und beschreiben eine 2D-Oberfläche und stellen eine API für die Platzierung auf dieser Oberfläche bereit. Bei der Verwendung des Dreiecksgittermodells für die Platzierung mussten zuvor alle Bereiche des Quaders überprüft und Die Füllung/Nachbearbeitung von Löchern durchgeführt werden, um gute Positionen für die Objektplatzierung zu identifizieren. Dies ist bei Quads nicht immer erforderlich, da die Scene Understanding-Laufzeit leitet ab, welche Quaderbereiche nicht gescannt wurden, und ungültige Bereiche, die nicht Teil der Oberfläche sind.

SceneQuads with inference disabled, capturing placement areas for scanned regions.
Abbildung 1: SceneQuads mit deaktivierter Rückschlusserfassung von Platzierungsbereichen für gescannte Regionen.

Quads with inference enabled, placement is no longer limited to scanned areas.
Abbildung 2: Quads mit aktiviertem Rückschluss, die Platzierung ist nicht mehr auf gescannte Bereiche beschränkt.


Wenn Ihre Anwendung 2D- oder 3D-Hologramme auf starren Strukturen Ihrer Umgebung platzieren möchte, ist die Einfachheit und Einfachheit von SceneQuads für die Platzierung dem Berechnen dieser Informationen aus dem Gitternetz für räumliche Zuordnungen vorzuziehen. Weitere Informationen zu diesem Thema finden Sie in der Referenz zum Scene Understanding SDK.

Hinweis Für Legacyplatzierungscode, der vom Gitternetz für räumliche Zuordnungen abhängt, kann das Gitternetz für die räumliche Zuordnung zusammen mit SceneQuads berechnet werden, indem die Einstellung EnableWorldMesh festgelegt wird. Wenn die Scene Understanding-API die Latenzanforderungen Ihrer Anwendung nicht erfüllt, empfiehlt es sich, weiterhin die API für räumliche Zuordnungenzu verwenden.

Okklusion

Die Verdeckung räumlicher Zuordnungen bleibt die am wenigsten latente Möglichkeit, den Echtzeitzustand der Umgebung zu erfassen. Obwohl dies nützlich sein kann, um Okklusion in hochgradig dynamischen Szenen bereitzustellen, sollten Sie das Szenenverständnis aus verschiedenen Gründen für Verdeckung in Betracht ziehen. Wenn Sie das von Scene Understanding generierte Gitternetz für räumliche Zuordnungen verwenden, können Sie Daten von der räumlichen Zuordnung anfordern, die nicht im lokalen Cache gespeichert werden und nicht über die Perception-APIs verfügbar sind. Die Verwendung der räumlichen Zuordnung für die Verdeckung neben wasserdichten Gitternetzen bietet einen zusätzlichen Wert, insbesondere die Vervollständigung der nicht überprüften Raumstruktur.

Wenn Ihre Anforderungen die erhöhte Latenz des Szenenverständnisses tolerieren können, sollten Anwendungsentwickler erwägen, das gitterförmige Gitternetz scene understanding und das Gitternetz für räumliche Zuordnungen in Einklang mit planaren Darstellungen zu verwenden. Dies wäre ein "Best of Both Worlds"-Szenario, in dem eine vereinfachte, wasserdichte Verdeckung mit einer feineren nichtplanaren Geometrie zusammengestellt wird, die die realistischsten Verdeckungskarten bietet.

Physische Effekte

Szenenverständnis generiert wasserdichte Gitternetze, die den Raum mit Semantik zerlegen, insbesondere um viele Einschränkungen der Physik zu berücksichtigen, die räumliche Zuordnungsgitternetze vorgeben. Wasserdichte Strukturen stellen sicher, dass physikalische Raycasts immer getroffen werden, und die semantische Zerlegung ermöglicht eine einfachere Generierung von Navigationsleisten für die Gebäudenavigation. Wie im Abschnitt zur Verdeckungbeschrieben, erzeugt das Erstellen einer Szene mit EnableSceneObjectMeshes und EnableWorldMesh das physisch vollständigste Gitternetz. Die wasserdichte Eigenschaft des Umgebungsgitternetzes verhindert, dass Treffertests nicht auf Oberflächen treffen können. Die Gitternetzdaten stellen sicher, dass die Physik mit allen Objekten in der Szene und nicht nur mit der Raumstruktur interagiert.

Planare Gitternetze, die durch semantische Klassen zerlegt werden, sind ideale Konstrukte für die Navigation und Pfadplanung, die viele der in der Übersicht über die Navigation für räumliche Zuordnung beschriebenen Probleme erleichtern. Die in der Szene berechneten SceneMesh-Objekte werden nach Oberflächentyp dekomponiert, um sicherzustellen, dass die Navigationsgitternetzgenerierung auf Oberflächen beschränkt ist, die durchgehen können. Aufgrund der Einfachheit der Bodenstrukturen ist die dynamische Navigationsnetzgenerierung in 3D-Engines wie Unity je nach Echtzeitanforderungen erreichbar.

Das Generieren präziser Navigationsgitternetze erfordert derzeit noch eine Nachverarbeitung, d. h. Anwendungen müssen occluders immer noch auf den Boden prognostieren, um sicherzustellen, dass die Navigation nicht überladen/Tabellen durchgeht usw. Die genaueste Möglichkeit, dies zu erreichen, besteht darin, die weltweiten Gitternetzdaten zu projektieren, die bereitgestellt werden, wenn die Szene mit dem EnableWorldMesh-Flag berechnet wird.

Visualisierung

Die Visualisierung der räumlichen Zuordnung kann zwar für Echtzeitfeedback der Umgebung verwendet werden, es gibt jedoch viele Szenarien, in denen die Einfachheit planarer und wasserdichter Objekte eine größere Leistung oder visuelle Qualität bietet. Schattenprojektions- und Erdungstechniken, die mithilfe der räumlichen Zuordnung beschrieben werden, können ansprechender sein, wenn sie auf die planaren Oberflächen projiziert werden, die von Quads oder dem planaren, wasserdichten Gitternetz bereitgestellt werden. Dies gilt insbesondere für Umgebungen/Szenarien, in denen eine gründliche Vorabüberprüfung nicht optimal ist, da die Szene rückschlüsset und vollständige Umgebungen und planare Annahmen Artefakte minimieren.

Darüber hinaus wird die Gesamtzahl der von der räumlichen Zuordnung zurückgegebenen Oberflächen durch den internen räumlichen Cache beschränkt, während die Scene Understanding-Version des Gitternetzes für räumliche Zuordnungen auf daten zugreifen kann, die nicht zwischengespeichert werden. Aus diesem Grund eignet sich scene understanding besser für die Erfassung von Gitternetzdarstellungen für größere Räume (z. B. größer als ein einzelner Raum) für die Visualisierung oder die weitere Gitternetzverarbeitung. Das mit EnableWorldMesh zurückgegebene Weltgittermodell hat durchgängig einen konsistenten Detailgrad, der zu einer ansprechenderen Visualisierung führen kann, wenn es als Wireframe gerendert wird.

Weitere Informationen

Szenenverständnis bietet Mixed Reality-Entwicklern eine strukturierte, allgemeine Umgebungsdarstellung, die die Entwicklung für umgebungssensible Anwendungen intuitiv macht. Das Szenenverständnis kombiniert dazu die Leistungsfähigkeit vorhandener Mixed Reality-Runtimes, z. B. die äußerst genaue, aber weniger strukturierte räumliche Zuordnung und neue KI-gesteuerte Runtimes. Durch die Kombination dieser Technologien generiert Scene Understanding Darstellungen von 3D-Umgebungen, die denen ähneln, die Sie möglicherweise in Frameworks wie Unity oder ARKit/ARCore verwendet haben. Der Einstiegspunkt scene understanding beginnt mit einem Scene Observer, der von Ihrer Anwendung aufgerufen wird, um eine neue Szene zu berechnen. Heute kann die Technologie drei verschiedene, aber verwandte Objektkategorien generieren:

  • Vereinfachte, wasserdichte Umgebungsgitternetze, die die planare Raumstruktur ohne Überladen ableiten
  • Ebenenbereiche für die Platzierung, die wir Quads nennen
  • Eine Momentaufnahme des Raumzuordnungsgitters, das an den quads/Watertight-Daten ausgerichtet ist, die wir auffüllen

Spatial mapping mesh, labeled planar surfaces, watertight mesh

Dieses Dokument soll eine Szenarioübersicht bieten und die Beziehung verdeutlichen, die Szenenverständnis und räumliche Zuordnung teilen. Wenn Sie Scene Understanding in Aktion sehen möchten, sehen Sie sich unsere Videodemo zum Entwerfen Hologramme – Räumliche Wahrnehmung unten an:

Dieses Video stammt aus der HoloLens 2-App "Entwerfen von Hologrammen". Sie können das vollständige Erlebnis hier herunterladen und genießen.

Entwickeln mit Scene Understanding

In diesem Artikel werden nur die Scene Understanding-Laufzeit und -Konzepte vorgestellt. Wenn Sie nach Dokumentation zur Entwicklung mit Scene Understanding suchen, interessieren Sie sich möglicherweise für die folgenden Artikel:

Übersicht über das Scene Understanding SDK

Sie können die Scene Understanding-Beispiel-App von der Beispielwebsite GitHub herunterladen:

Scene Understanding-Beispiel

Wenn Sie kein Gerät haben und auf Beispielszenen zugreifen möchten, um Scene Understanding auszuprobieren, befinden sich Szenen im Beispielobjektordner:

Scene Understanding-Beispielszenen

SDK

Wenn Sie nach spezifischen Details zur Entwicklung mit Scene Understanding suchen, lesen Sie die Übersichtsdokumentation zum Scene Understanding SDK.

Beispiel

Geräteunterstützung