Begrip van scènes

Scènebegrip biedt Mixed Reality ontwikkelaars een gestructureerde, hoogwaardige omgevingsweergave die is ontworpen om ontwikkeling voor milieubewuste toepassingen intuïtief te maken. Scènekennis doet dit door de kracht van bestaande mixed reality-runtimes te combineren, zoals de zeer nauwkeurige maar minder gestructureerde ruimtelijke toewijzing en nieuwe AI-gestuurde runtimes. Door deze technologieën te combineren, genereert Scene understanding weergaven van 3D-omgevingen die vergelijkbaar zijn met die die u mogelijk hebt gebruikt in frameworks zoals Unity of ARKit/ARCore. De scène die het toegangspunt begrijpt, begint met een scèneobator, die door uw toepassing wordt aangeroepen om een nieuwe scène te berekenen. Tegenwoordig kan de technologie 3 afzonderlijke maar gerelateerde objectcategorieën genereren:

  • Vereenvoudigde waterdichte omgevingsnetten die de planaire ruimtestructuur afleiden zonder rommel
  • Vlakregio's voor plaatsing die we Quads noemen
  • Een momentopname van het mesh voor ruimtelijke toewijzing dat is afgestemd op de Quads/Watertight-gegevens die we aan het oppervlak brengen

Spatial mapping mesh, labeled planar surfaces, watertight mesh

Dit document is bedoeld om een scenariooverzicht te bieden en om de relatie te verduidelijken die scènes begrijpen en delen met ruimtelijke toewijzingen. Als u Scènebegrip in actie wilt zien, bekijkt u de onderstaande videodemo ontwerpen Hologrammen - Spatial Awareness:

Deze video is genomen uit de HoloLens 2 app 'Hologrammen ontwerpen'. Download en geniet hier van de volledige ervaring.

Ontwikkelen met Scène-begrip

In dit artikel worden alleen de Scène Understanding-runtime en -concepten geïntroduceerd. Als u op zoek bent naar documentatie over het ontwikkelen met Scene Understanding, bent u mogelijk geïnteresseerd in de volgende artikelen:

Overzicht van Scene Understanding SDK

U kunt de voorbeeld-app Scene Understanding downloaden van de voorbeeldsite GitHub:

Voorbeeld van scène begrijpen

Als u geen apparaat hebt en toegang wilt krijgen tot voorbeeldscènes om Scènes te begrijpen, staan er scènes in de map met voorbeeldassets:

Scènes begrijpen voorbeeldscènes

SDK

Raadpleeg de overzichtsdocumentatie van de Scene Understanding SDK als u specifieke informatie zoekt over het ontwikkelen met Scene Understanding.

Voorbeeld

Ondersteuning voor apparaten

Functie HoloLens (eerste generatie) HoloLens 2 Insluitende headsets
Begrip van scènes ✔️

Veelvoorkomende gebruiksscenario's

Illustrations of common Spatial mapping usage scenarios: Placement, Occlusion, Physics and Navigation
Algemene gebruiksscenario's voor ruimtelijke toewijzing: plaatsing, occlusie, natuurkunde en navigatie.


Veel van de belangrijkste scenario's voor milieubewuste toepassingen kunnen worden aangepakt door zowel ruimtelijke toewijzing als scènebegrip. Deze kernscenario's omvatten plaatsing, occlusie, natuurkunde, enzovoort. Een belangrijk verschil tussen scènes en ruimtelijke toewijzing is een compromis tussen maximale nauwkeurigheid en latentie voor structuur en eenvoud. Als voor uw toepassing de laagst mogelijke latentie en meshdriehoeken nodig zijn die alleen u wilt openen, gebruikt u Ruimtelijke toewijzing rechtstreeks. Als u verwerking op hoger niveau uitvoert, kunt u overwegen om over te schakelen naar het scènebegripmodel, omdat het u een superset van functionaliteit moet bieden. U hebt altijd toegang tot de meest volledige en nauwkeurige ruimtelijke toewijzingsgegevens die mogelijk zijn, omdat scènebegrip een momentopname biedt van het mesh voor ruimtelijke toewijzing als onderdeel van de weergave.

In de volgende secties worden de kernscenario's voor ruimtelijke toewijzing opnieuw beschreven in de context van de nieuwe Scène understanding SDK.

Plaatsing

Begrip van scènes biedt nieuwe constructies die zijn ontworpen om plaatsingsscenario's te vereenvoudigen. Een scène kan primitieven berekenen met de naam SceneQuads, waarin platte oppervlakken worden beschreven waarop hologrammen kunnen worden geplaatst. SceneQuads zijn ontworpen rond plaatsing en beschrijven een 2D-oppervlak en bieden een API voor plaatsing op dat oppervlak. Voorheen moest men bij het gebruik van het driehoekje om plaatsing uit te voeren alle gebieden van de quad scannen en gaten vullen/naverwerking uitvoeren om goede locaties voor objectplaatsing te identificeren. Dit is niet altijd nodig met Quads, omdat de Scène-inzicht in runtime afleiden welke quad-gebieden niet zijn gescand en ongeldige gebieden die geen deel uitmaken van het oppervlak.

SceneQuads with inference disabled, capturing placement areas for scanned regions.
Afbeelding 1 - SceneQuads met deductie uitgeschakeld, waarbij plaatsingsgebieden voor gescande regio's worden vastgelegd.

Quads with inference enabled, placement is no longer limited to scanned areas.
Afbeelding 2 - Quads waarvoor deductie is ingeschakeld, plaatsing is niet langer beperkt tot gescande gebieden.


Als uw toepassing 2D- of 3D-hologrammen wil plaatsen op stijve structuren van uw omgeving, is de eenvoud en het gemak van SceneQuads voor plaatsing de voorkeur om deze informatie te berekenen vanuit het ruimtelijke toewijzingsnetwerk . Zie de naslaginformatie over de Scene Understanding SDK voor meer informatie over dit onderwerp

Opmerking Voor verouderde plaatsingscode die afhankelijk is van de mesh voor ruimtelijke toewijzing, kan de mesh voor ruimtelijke toewijzing samen met SceneQuads worden berekend door de instelling EnableWorldMesh in te stellen. Als scènebegrip van de API niet voldoet aan de latentievereisten van uw toepassing, raden we u aan om de API voor ruimtelijke toewijzing te blijven gebruiken.

Occlusie

Occlusie van ruimtelijke toewijzing blijft de minst latente manier om de realtime status van de omgeving vast te leggen. Hoewel dit handig kan zijn om occlusie te bieden in zeer dynamische scènes, kunt u het begrip scène overwegen voor occlusie om verschillende redenen. Als u de mesh voor ruimtelijke toewijzing gebruikt die is gegenereerd door Scene Understanding, kunt u gegevens aanvragen van ruimtelijke toewijzing die niet in de lokale cache zouden worden opgeslagen en niet beschikbaar zijn via de perception-API's. Het gebruik van ruimtelijke toewijzing voor occlusie naast waterdichte meshes biedt extra waarde, met name voltooiing van niet-gescande ruimtestructuur.

Als uw vereisten de verhoogde latentie van Scènebegrip kunnen tolereren, moeten toepassingsontwikkelaars overwegen om het waterdichte mesh te gebruiken en de ruimtelijke toewijzingsmest in één met planaire representaties. Dit zou een "beste van beide werelden" scenario bieden waarbij vereenvoudigde waterdicht occlusie is getrouwd met fijnere niet-planaire geometrie die de meest realistische occlusiekaarten mogelijk maakt.

Natuurkunde

Het begrijpen van scènes genereert waterdichte meshes die ruimte ontleden met semantiek, met name om veel beperkingen voor natuurkunde aan te pakken die ruimtelijke toewijzingsnetten opleggen. Waterdichte structuren zorgen ervoor dat fysica ray casts altijd geraakt, en semantische ontleding maakt het eenvoudiger genereren van navigatienetten voor binnennavigatie. Zoals beschreven in de sectie over occlusie, zal het maken van een scène met EnableSceneObjectMeshes en EnableWorldMesh de meest fysiek volledige mesh produceren. De waterdichte eigenschap van het omgevingsnetwerk voorkomt dat hittests geen oppervlakken raken. De mesh-gegevens zorgen ervoor dat fysica communiceert met alle objecten in de scène en niet alleen de ruimtestructuur.

Planar-meshes die zijn uitgevouwen door semantische klasse zijn ideale constructies voor navigatie- en padplanning, waardoor veel van de problemen die worden beschreven in het navigatieoverzicht voor ruimtelijke toewijzingen worden versoepeld. De ScèneMesh-objecten die in de scène worden berekend, worden gedecomponeerd door het oppervlaktype, zodat navigatie-mesh-generatie wordt beperkt tot oppervlakken waarop kan worden gewandeld. Vanwege de eenvoud van de vloerstructuren zijn dynamische navigatie-mesh-generatie in 3d-motoren zoals Unity haalbaar, afhankelijk van realtime vereisten.

Voor het genereren van nauwkeurige navigatie-meshes is momenteel nog steeds naverwerking vereist, namelijk dat toepassingen nog steeds occluders op de vloer moeten projecteren om ervoor te zorgen dat navigatie niet door onbelangrijke/tabellen gaat, enzovoort. De meest nauwkeurige manier om dit te bereiken, is het projecteren van de world mesh-gegevens, die worden opgegeven als de scène wordt berekend met de vlag EnableWorldMesh.

Visualisatie

Hoewel visualisatie van ruimtelijke toewijzing kan worden gebruikt voor realtime feedback van de omgeving, zijn er veel scenario's waarin de eenvoud van planaire en waterdichte objecten meer prestaties of visuele kwaliteit biedt. Schaduwprojectie- en grondtechnieken die worden beschreven met behulp van ruimtelijke toewijzing, kunnen prettiger zijn als ze worden geprojecteerd op de planaire oppervlakken die door Quads of het waterdichte net worden geleverd. Dit geldt met name voor omgevingen/scenario's waarbij grondig scannen vooraf niet optimaal is, omdat de scène wordt afgeleid en volledige omgevingen en planaire veronderstellingen artefacten minimaliseren.

Daarnaast wordt het totale aantal oppervlakken dat wordt geretourneerd door ruimtelijke toewijzing beperkt door de interne ruimtelijke cache, terwijl scene understanding's versie van het mesh voor ruimtelijke toewijzing toegang heeft tot ruimtelijke toewijzingsgegevens die niet in de cache zijn opgeslagen. Daarom is scènebegrip geschikter voor het vastleggen van mesh-weergaven voor grotere ruimten (bijvoorbeeld groter dan één ruimte) voor visualisatie of verdere mesh-verwerking. De wereld-mesh die met EnableWorldMesh wordt geretourneerd, heeft een consistent detailniveau, wat een aangenamere visualisatie kan opleveren als deze wordt weergegeven als draadmodel.

Zie ook