Zrozumienie sceny

Funkcja HoloLens (1. generacja) HoloLens 2 Immersyjne zestawy nagłowne
Zrozumienie sceny ✔️

Typowe scenariusze użycia

Illustrations of common Spatial mapping usage scenarios: Placement, Occlusion, Physics and Navigation
Typowe scenariusze użycia mapowania przestrzennego: umieszczanie, okluzowanie, fizyka i nawigacja.


Wiele podstawowych scenariuszy dla aplikacji z świadomość awarii można rozwiązać zarówno przez mapowanie przestrzenne, jak i zrozumienie sceny. Te podstawowe scenariusze obejmują umieszczanie, okluzację, fizykę i tak dalej. Podstawową różnicą między zrozumieniem sceny a mapowaniem przestrzennym jest kompromis maksymalnej dokładności i opóźnienia struktury i prostoty. Jeśli aplikacja wymaga możliwie najmniejszego opóźnienia i trójkątów siatki, do których chcesz uzyskać dostęp tylko wtedy, gdy chcesz uzyskać do nich dostęp, użyj mapowania przestrzennego bezpośrednio. Jeśli przetwarzasz na wyższym poziomie, możesz rozważyć przełączenie się do modelu rozumienia sceny, ponieważ powinien on zapewnić narzut funkcjonalności. Zawsze będziesz mieć dostęp do najbardziej kompletnych i dokładnych danych mapowania przestrzennego, ponieważ funkcja Scene Understanding udostępnia migawkę siatki mapowania przestrzennego w ramach jej reprezentacji.

W poniższych sekcjach ponownie przedstawiono podstawowe scenariusze mapowania przestrzennego w kontekście nowego zestawu SDK do rozpoznawania sceny.

Umieszczanie

Zrozumienie sceny udostępnia nowe konstrukcje zaprojektowane w celu uproszczenia scenariuszy umieszczania. Scena może obliczać prymitywów o nazwie SceneQuads, które opisują płaskie powierzchnie, na których można umieścić hologramy. SceneQuads zaprojektowano pod kątem umieszczania i opisano powierzchnię 2D oraz udostępniliśmy interfejs API do umieszczania na tej powierzchni. Wcześniej podczas umieszczania przy użyciu siatki trójkątów trzeba było przeskanować wszystkie obszary czworokąt i wykonać wypełnianie otworów/przetwarzanie po zakończeniu, aby zidentyfikować dobre lokalizacje do umieszczenia obiektów. Nie zawsze jest to konieczne w przypadku czworokąt, ponieważ środowisko uruchomieniowe Scene understanding wnioskuje, które obszary czworokąt nie zostały zeskanowane, i unieważnia obszary, które nie są częścią powierzchni.

SceneQuads with inference disabled, capturing placement areas for scanned regions.
Obraz nr 1 — SceneQuads z wyłączonym wnioskowaniem, przechwytując obszary umieszczania dla skanowanych regionów.

Quads with inference enabled, placement is no longer limited to scanned areas.
Obraz nr 2 — czworokąty z włączonym wnioskowaniem, umieszczanie nie jest już ograniczone do skanowanych obszarów.


Jeśli aplikacja zamierza umieszczać hologramy 2D lub 3D na sztywnych strukturach środowiska, prostota i wygoda umieszczania aplikacji SceneQuads jest preferowana do przetwarzania tych informacji z siatki mapowania przestrzennego. Aby uzyskać więcej informacji na ten temat, zobacz scene understanding SDK reference (Zestaw SDK do zrozumienia sceny)

Uwaga W przypadku starszego kodu umieszczania, który zależy od siatki mapowania przestrzennego, można obliczyć siatkę mapowania przestrzennego wraz z platformą SceneQuads, ustawiając ustawienie EnableWorldMesh. Jeśli interfejs API rozpoznawania sceny nie spełnia wymagań dotyczących opóźnień aplikacji, zalecamy dalsze korzystanie z interfejsu API mapowania przestrzennego.

Okluzji

Niedokładność mapowania przestrzennego pozostaje najmniej ukrytym sposobem przechwytywania stanu środowiska w czasie rzeczywistym. Chociaż może to być przydatne do zapewnienia oklulacji w bardzo dynamicznych scenach, warto rozważyć zrozumienie sceny z kilku powodów. Jeśli używasz siatki mapowania przestrzennego wygenerowanej przez usługę Scene Understanding, możesz zażądać danych z mapowania przestrzennego, które nie będą przechowywane w lokalnej pamięci podręcznej i nie będą dostępne z interfejsów API percepcji. Użycie mapowania przestrzennego dla oklulacji wraz z siatkami w watertight zapewni dodatkową wartość, w szczególności uzupełnianie nieskanowanej struktury pomieszczenia.

Jeśli wymagania mogą tolerować zwiększone opóźnienie zrozumienia sceny, deweloperzy aplikacji powinni rozważyć użycie siatki w watertight scene understanding oraz siatki mapowania przestrzennego w jednym z reprezentacji planarnych. Zapewniłoby to scenariusz "najlepszy z obu światów", w którym uproszczona okluzacja w watertight jest szemrana z bardziej dokładną nieplanowaną geometrią, zapewniając najbardziej realistyczne mapy oklulacji.

Fizyki

Zrozumienie sceny generuje siatki wkwantowe, które rozkładają przestrzeń z semantyką, w szczególności w celu rozwiązania wielu ograniczeń fizyki nakładanych przez siatki mapowania przestrzennego. Struktury w watertight zapewniają, że rzutowania promieni fizycznych są zawsze trafiane, a dekompozycja semantyczna umożliwia prostszą generację siatek nawigacyjnych do nawigacji w pomieszczeniu. Jak opisano w sekcji dotyczącej oklulacji,utworzenie sceny przy użyciu platform EnableSceneObjectMeshes i EnableWorldMesh spowoduje utworzenie możliwie najbardziej kompletnej siatki. Właściwość w watertight siatki środowiska zapobiega trafieniu powierzchni przez testy trafień. Dane siatki zapewniają interakcję fizyki ze wszystkimi obiektami w scenie, a nie tylko ze strukturą pomieszczenia.

Siatki planarne rozłożone według klasy semantycznej są idealnymi konstrukcjami do planowania nawigacji i ścieżek, co ułatwia wiele problemów opisanych w przeglądzie nawigacji mapowania przestrzennego. Obiekty SceneMesh obliczone w scenie są dekomponowane według typu powierzchni, dzięki czemu generowanie siatki nav-mesh jest ograniczone do powierzchni, na których można przechodzić. Ze względu na prostotę struktur podłogowych dynamiczne generowanie siatki nav-mesh w silnikach 3D, takich jak Unity, jest osiągalne w zależności od wymagań w czasie rzeczywistym.

Generowanie dokładnych siatek nawigacji wymaga obecnie przetwarzania po przetworzeniu, czyli aplikacje muszą nadal projektować okludery na powierzchni, aby upewnić się, że nawigacja nie przechodzi przez zaśmiecanie/tabele i tak dalej. Najdokładniejszym sposobem osiągnięcia tego celu jest rzutowanie danych siatki świata, które są udostępniane, jeśli scena jest obliczana przy użyciu flagi EnableWorldMesh.

Wizualizacja

Wizualizacja mapowania przestrzennego może być używana do obsługi opinii o środowisku w czasie rzeczywistym, jednak istnieje wiele scenariuszy, w których prostota obiektów planarnych i wdatowych zapewnia większą wydajność lub jakość wizualizacji. Techniki projekcji w tle i uzdatniania, które są opisane przy użyciu mapowania przestrzennego, mogą być bardziej przychylne, jeśli są rzutowane na powierzchni planarną zapewnianą przez czworokąta lub planarną siatkę w watertight. Jest to szczególnie istotne w przypadku środowisk/scenariuszy, w których dokładne wstępne skanowanie nie jest optymalne, ponieważ scena zostanie wywnioskowana, a kompletne środowiska i założenia planowe zminimalizują artefakty.

Ponadto łączna liczba powierzchni zwracanych przez mapowanie przestrzenne jest ograniczona przez wewnętrzną pamięć podręczną przestrzenną, podczas gdy wersja siatki mapowania przestrzennego w funkcji Scene Understanding może uzyskać dostęp do danych mapowania przestrzennego, które nie są buforowane. W związku z tym zrozumienie sceny jest bardziej odpowiednie do przechwytywania reprezentacji siatki dla większych przestrzeni (na przykład większych niż pojedyncze pomieszczenie) do wizualizacji lub dalszego przetwarzania siatki. Siatka świata zwracana przez platformę EnableWorldMesh będzie mieć spójny poziom szczegółowości w całym, co może zapewnić bardziej chętną wizualizację, jeśli zostanie wyrenderowana jako szkielet.

Zobacz też

Zrozumienie sceny Mixed Reality deweloperom ustrukturyzowanej reprezentacji środowiska wysokiego poziomu zaprojektowanej tak, aby tworzenie dla aplikacji z obsługą chłoniaka było intuicyjne. W tym celu można zrozumieć scenę, łącząc możliwości istniejących środowisk uruchomieniowych rzeczywistości mieszanej, takich jak wysoce dokładne, ale mniej ustrukturyzowane mapowanie przestrzenne i nowe środowiska uruchomieniowe oparte na AI. Łącząc te technologie, zrozumienie sceny generuje reprezentacje środowisk 3D, które są podobne do tych, które mogą być używane w platformach takich jak Unity lub ARKit/ARCore. Punkt wejścia do zrozumienia sceny rozpoczyna się od obserwatora sceny, który jest wywoływany przez aplikację w celu obliczenia nowej sceny. Obecnie technologia może generować 3 odrębne, ale powiązane kategorie obiektów:

  • Uproszczone siatki środowiska wodno-wywnioskują planarną strukturę pomieszczenia bez zaśmiecania
  • Regiony płaszczyzny do umieszczania, które nazywamy czworokątami
  • Migawka siatki mapowania przestrzennego, która jest wyrównana z danymi Czworokąta/Wodtight, które powierzchni

Spatial mapping mesh, labeled planar surfaces, watertight mesh

Ten dokument ma na celu omówienie scenariusza i wyjaśnienie relacji, która jest udostępniana przez bibliotekę Scene Understanding i mapowanie przestrzenne. Jeśli chcesz zobaczyć, jak działanie funkcji Scene Understanding jest w akcji, zapoznaj się z pokazem wideo Designing Hologramy - Spatial Awareness (Projektowanie Hologramy — świadomość przestrzenna) poniżej:

Ten film wideo pochodzi z aplikacji "Projektowanie Hologramy" HoloLens 2. Pobierz i korzystaj z pełnego doświadczenia tutaj.

Tworzenie przy użyciu zrozumienia sceny

Ten artykuł zawiera tylko wprowadzenie do środowiska uruchomieniowego i pojęć związanych z omówieniem sceny. Jeśli szukasz dokumentacji dotyczącej sposobu tworzenia aplikacji przy użyciu programu Scene Understanding, możesz zainteresować się następującymi artykułami:

Omówienie zestawu SDK do rozpoznawania scen

Przykładową aplikację Scene Understanding możesz pobrać z przykładowej GitHub witryny:

Scene Understanding Sample

Jeśli nie masz urządzenia i chcesz uzyskać dostęp do przykładowych scen, aby wypróbować usługę Scene Understanding, w folderze przykładowych zasobów znajdują się sceny:

Sceny z omówieniem przykładowych scen

SDK

Jeśli szukasz szczegółowych informacji na temat tworzenia aplikacji za pomocą usługi Scene Understanding, zapoznaj się z dokumentacją zestawu SDK do rozpoznawania scen.

Przykład

Obsługa urządzeń