Scentolkning

Scentolkning ger Mixed Reality utvecklare en strukturerad miljörepresentation på hög nivå som är utformad för att göra utveckling för miljömedvetna program intuitiv. Scenförståelse gör detta genom att kombinera kraften i befintliga mixed reality-körningar, som den mycket exakta men mindre strukturerade rumsliga mappningen och nya AI-drivna körningar. Genom att kombinera dessa tekniker genererar Scene Understanding representationer av 3D-miljöer som liknar dem som du kan ha använt i ramverk som Unity eller ARKit/ARCore. Startpunkten för scentolkning börjar med en scenobservatör, som anropas av ditt program för att beräkna en ny scen. Idag kan tekniken generera tre distinkta men relaterade objektkategorier:

  • Förenklade vattentäta miljönät som härleder planarrumsstrukturen utan oreda
  • Planregioner för placering som vi kallar Quads
  • En ögonblicksbild av det rumsliga mappningsnätet som överensstämmer med de quads/vattentäta data som vi visar

Nät för rumslig mappning, märkta planarytor, vattentätt nät

Det här dokumentet är avsett att ge en scenarioöversikt och klargöra relationen mellan scentolkning och rumslig mappning. Om du vill se Scene Understanding i praktiken kan du titta på videodemon Designing Holograms – Spatial Awareness nedan:

Den här videon är hämtad från appen "Designing Holograms" HoloLens 2. Ladda ned och njut av den fullständiga upplevelsen här.

Utveckla med Scene Understanding

Den här artikeln används bara för att introducera Körning och begrepp för Scene Understanding. Om du letar efter dokumentation om hur du utvecklar med Scene Understanding kan du vara intresserad av följande artiklar:

Översikt över Scene Understanding SDK

Du kan ladda ned exempelappen Scene Understanding från GitHub-exempelwebbplatsen:

Exempel på scentolkning

Om du inte har någon enhet och vill komma åt exempelscener för att prova Scene Understanding finns det scener i exempeltillgångsmappen:

Scentolkning – exempelscener

SDK

Om du letar efter specifik information om hur du utvecklar med Scene Understanding kan du läsa översiktsdokumentationen för Scene Understanding SDK .

Exempel

Stöd för enheter

Funktion HoloLens (första generationen) HoloLens 2 Integrerande headset
Scentolkning ✔️

Vanliga användningsscenarier

Illustrationer av vanliga användningsscenarier för rumslig mappning: Placering, ocklusion, fysik och navigering
Vanliga användningsscenarier för rumslig mappning: placering, ocklusion, fysik och navigering.


Många av de viktigaste scenarierna för miljömedvetna program kan hanteras av både rumslig mappning och scenförststånd. Dessa kärnscenarier omfattar placering, ocklusion, fysik och så vidare. En viktig skillnad mellan scenförståelse och rumslig mappning är en kompromiss mellan maximal noggrannhet och svarstid för struktur och enkelhet. Om ditt program kräver minsta möjliga svarstid och nättrianglarna som bara du vill komma åt använder du Rumslig mappning direkt. Om du utför bearbetning på högre nivå kan du överväga att byta till modellen för scentolkning eftersom den bör ge dig en supermängd funktioner. Du kommer alltid att ha åtkomst till de mest fullständiga och korrekta spatiala mappningsdata som är möjliga eftersom scentolkning ger en ögonblicksbild av det rumsliga mappningsnätet som en del av dess representation.

I följande avsnitt går vi igenom de grundläggande scenarierna för rumslig mappning i kontexten för den nya scentolknings-SDK:n.

Placering

Scentolkning ger nya konstruktioner som är utformade för att förenkla placeringsscenarier. En scen kan beräkna primitiver som kallas SceneQuads, som beskriver plana ytor där hologram kan placeras. SceneQuads har utformats kring placering och beskriver en 2D-yta och tillhandahåller ett API för placering på den ytan. Tidigare, när du använder triangelnätet för att göra placering, var man tvungen att skanna alla områden i quad och göra hålfyllning / efterbearbetning för att identifiera bra platser för objektplacering. Detta är inte alltid nödvändigt med Quads, eftersom Körningsmiljön för scentolkning härleder vilka quadområden som inte genomsökts och ogiltigförklarar områden som inte är en del av ytan.

SceneQuads med slutsatsdragning inaktiverad, fånga placeringsområden för skannade regioner.
Bild nr 1 – SceneQuads med inferens inaktiverad, som samlar in placeringsområden för skannade regioner.

Quads med slutsatsdragning aktiverad, placeringen är inte längre begränsad till genomsökt område.
Bild 2 – Fyrhjulingar med inferens aktiverad, placeringen är inte längre begränsad till genomsökt område.


Om ditt program har för avsikt att placera 2D- eller 3D-hologram på fasta strukturer i din miljö är enkelheten och bekvämligheten med SceneQuads för placering att föredra framför att beräkna den här informationen från det rumsliga mappningsnätet . Mer information om det här avsnittet finns i SDK-referensen för Scentolkning

Observera För äldre placeringskod som är beroende av det rumsliga mappningsnätet kan det rumsliga mappningsnätet beräknas tillsammans med SceneQuads genom att ange inställningen EnableWorldMesh. Om API:et för scentolkning inte uppfyller programmets svarstidskrav rekommenderar vi att du fortsätter att använda API:et för rumslig mappning.

Ocklusion

Ocklusion för rumslig mappning är fortfarande det minst latenta sättet att fånga miljöns realtidstillstånd. Även om detta kan vara användbart för att tillhandahålla ocklusion i mycket dynamiska scener, kan du överväga scenförstålelse för ocklusion av flera skäl. Om du använder det spatiala mappningsnätet som genereras av Scene Understanding kan du begära data från rumslig mappning som inte skulle lagras i det lokala cacheminnet och som inte är tillgängligt från API:erna för uppfattning. Användning av rumslig mappning för ocklusion tillsammans med vattentäta nät ger extra värde, särskilt slutförande av oskadlig rumsstruktur.

Om dina krav kan tolerera den ökade svarstiden för scenförståelse bör programutvecklare överväga att använda det vattentäta nätet Scene Understanding och det rumsliga mappningsnätet tillsammans med planarrepresentationer. Detta skulle ge ett "bäst av två världar"-scenario där förenklad vattentät ocklusion är gift med finare icke-planisk geometri som ger de mest realistiska ocklusionskartorna som möjligt.

Fysik

Scentolkning genererar vattentäta nät som delar upp utrymme med semantik, särskilt för att åtgärda många begränsningar i fysiken som nät för rumslig mappning medför. Vattentäta strukturer säkerställer att fysikstrålen alltid träffar, och semantisk nedbrytning möjliggör enklare generering av navigeringsnät för inomhusnavigering. Enligt beskrivningen i avsnittet om ocklusion kommer skapandet av en scen med EnableSceneObjectMeshes och EnableWorldMesh att ge det mest fysiskt kompletta nätet som möjligt. Den vattentäta egenskapen för miljönätet förhindrar att träffar tester misslyckas med att träffa ytor. Nätdata säkerställer att fysiken interagerar med alla objekt i scenen och inte bara rumsstrukturen.

Planar-nät som delas upp av semantisk klass är idealiska konstruktioner för navigerings- och sökvägsplanering, vilket underlättar många av de problem som beskrivs i översikten över navigering med rumslig mappning . SceneMesh-objekten som beräknas i scenen avkomponeras av yttyp, vilket säkerställer att genereringen av navigeringsnät är begränsad till ytor som kan gås på. På grund av golvstrukturernas enkelhet kan dynamisk navigeringsnätgenerering i 3d-motorer som Unity uppnås beroende på realtidskrav.

Att generera korrekta navigeringsnät kräver för närvarande fortfarande efterbearbetning, nämligen att program fortfarande måste projicera occluders på golvet för att säkerställa att navigeringen inte passerar genom övrig e-post/tabeller och så vidare. Det mest exakta sättet att åstadkomma detta är att projicera världnätdata, som tillhandahålls om scenen beräknas med flaggan EnableWorldMesh.

Visualisering

Visualisering av rumslig mappning kan användas för feedback i realtid av miljön, men det finns många scenarier där enkelheten i planar- och vattentäta objekt ger bättre prestanda eller visuell kvalitet. Skuggprojektion och jordningstekniker som beskrivs med rumslig mappning kan vara mer tilltalande om de projiceras på planarytorna som tillhandahålls av Quads eller det planära vattentäta nätet. Detta gäller särskilt för miljöer/scenarier där noggrann förgenomsökning inte är optimalt eftersom scenen kommer att härleda, och fullständiga miljöer och planarantaganden minimerar artefakterna.

Dessutom begränsas det totala antalet ytor som returneras av spatial mappning av den interna rumsliga cachen, medan Scene Understandings version av nät för rumslig mappning kan komma åt spatiala mappningsdata som inte cachelagras. Därför passar scentolkning bättre för att samla in nätrepresentationer för större utrymmen (till exempel större än ett enda rum) för visualisering eller ytterligare nätbearbetning. Det världsnät som returneras med EnableWorldMesh kommer att ha en konsekvent detaljnivå genomgående, vilket kan ge en mer tilltalande visualisering om den återges som trådram.

Se även