Problemen met objectdetectie oplossen

In dit artikel wordt ervan uitgenomen dat u al een 3D-model hebt geconverteerd naar een Azure Object Anchors-detectiemodel en het model in een toepassing hebt geladen.

Stappen voor probleemoplossing

  • Zorg ervoor dat het model dat u detecteert, binnen de ondersteunde grootte (1-10 meter) is voor de beste ervaring.
  • Zorg ervoor dat de ruimte voldoende texturen heeft door een paar posters toe te voegen.
  • Verwijder de huidige hologrammen om de kaart opnieuw in te stellen, zoals hieronder wordt beschreven.
  • Het object vollediger scannen.
  • Geef een nauw begrensingsvak op als zoekgebied dat het hele object of het grootste deel van het object bevat.
  • De cache voor ruimtelijke toewijzing wissen en het object opnieuw scannen.
  • Zorg ervoor dat de juiste ernstrichting en assetdimensie zijn gebruikt tijdens de modelconversie, zoals hieronder wordt beschreven.
  • Inspecteer het detectiemodel visueel, zoals hieronder wordt beschreven.
  • Pas de modelquerywaarden aan zoals hieronder wordt beschreven.
  • Leg diagnostische gegevens vast zoals hieronder wordt beschreven.

Hologrammen verwijderen om de kaart opnieuw in te stellen

Als er objecten worden gedetecteerd met een van de volgende problemen, kan het probleem worden opgelost door de kaart te verwijderen en opnieuw in te stellen:

  • Omgekeerde richting
  • Onjuiste houding
  • Gekanteld model

Als u hologrammen wilt verwijderen en de kaart opnieuw wilt instellen, opent u de Instellingen-app en gaat u naar System -> Hologrammen. Selecteer vervolgens Alle hologrammen verwijderen om met een nieuwe kaart te beginnen.

Het wissen van de hologrammen zorgt ervoor dat objecten correct kunnen worden gedetecteerd op hun huidige posities voor het geval ze onlangs zijn verplaatst.

Scan uw omgeving opnieuw door rond te lopen in de omgeving die de HoloLens. Doorloop alle objecten die u van plan bent een paar keer te detecteren van 1-2 meter.

Zorg ervoor dat de richting van de ernst en de activumdimensie-eenheid juist zijn

Wanneer u een 3D-model voor conversie indient met behulp van de Object Anchors Conversion SDK (zie hier ),moet u de juiste ernstrichting () en maateenheid () invoeren voor uw Gravity AssetDimensionUnit 3D-model. Als deze waarden niet juist zijn, is Object Anchors waarschijnlijk niet dat uw object correct wordt gedetecteerd.

De richting van de ernst is de down vector die naar de aarde wijst. Voor CAD-modellen is de richting van de ernst doorgaans het tegenovergestelde van een uprichting. In veel gevallen vertegenwoordigt +Z bijvoorbeeld, in welk geval -Z of de richting van Vector3(0.0, 0.0, -1.0) de ernst vertegenwoordigt. Bij het bepalen van de ernst moet u ook rekening houden met de richting waarin het model tijdens runtime wordt gezien. Als u in de echte wereld op een plat oppervlak een man probeert te detecteren, is de ernst mogelijk Vector3(0.0, 0.0, -1.0) . Als de mane echter een helling van 45 graden heeft, kan de ernst Vector3(0.0, -Sqrt(2)/2, -Sqrt(2)/2) zijn.

De richting van de ernst kan worden bepaald met een 3D-renderingprogramma, zoals MeshLab.

De maateenheid vertegenwoordigt de schaal van het model. Ondersteunde eenheden vindt u met behulp van de microsoft.Azure.ObjectAnchors.Conversion.AssetLengthUnit-inventaris.

U kunt hier ook de instructies volgen om een detectiemodel in Unity te visualiseren om die richting en schaal van de ernst visueel te inspecteren.

De mesh van het detectiemodel visueel inspecteren

Soms kan het handig zijn om de mesh van het detectiemodel visueel te inspecteren, zodat u eventuele problemen met de stand, schaal of functies kunt zien. Volg de instructies hier om een geconverteerd model in Unity te visualiseren.

Objectquerywaarden aanpassen

  • Bied nauwkeurige zoekgebieden om het volledige object in het ideale ideale gebied te omvatten om de detectiesnelheid en nauwkeurigheid te verbeteren.
  • De ObjectQuery.MinSurfaceCoverage standaardwaarde is vaak voldoende, maar u kunt een kleinere waarde gebruiken om sneller te detecteren.
  • Gebruik een kleine waarde ObjectQuery.ExpectedMaxVerticalOrientationInDegrees voor als het object naar verwachting up-right is.
  • Een app moet altijd een 1:1 objectmodel gebruiken voor detectie. De geschatte schaal zou idealiter dicht bij 1 moeten liggen, binnen de fout van 1%. Een app kan worden ingesteld op of om schaalschatting uit te schakelen of in te ObjectQuery.MaxScaleChange 0 0.1 schakelen, en de instantiehouding kwalitatieve evalueren.
  • Zie How to detect a difficult object (Een moeilijk object detecteren) voor meer informatie.

Diagnostische gegevens vastleggen

De toepassing kan diagnostische archieven vastleggen en opslaan met behulp van het object ObjectDiagnosticsSession.

De Unity-voorbeeld-app met MRTK schrijft diagnostische gegevens naar de map TempState. U kunt een diagnostische sessie starten door het menuhand te openen, Tracering starten te selecteren, een detectiepoging te reproduceren en vervolgens Tracering stoppen te selecteren om het diagnostische archief op te slaan. Vervolgens kunt u Windows Apparaatportal het diagnostische archief ophalen uit de map TempState van de app.

Het diagnostische archief kan vervolgens met ons worden gedeeld, zodat we het probleem kunnen oplossen.

Volgende stappen

In deze gids voor probleemoplossing hebt u geleerd hoe u problemen met de detectie van een fysiek object kunt oplossen met behulp van Azure Object Anchors. Hier zijn enkele verwante artikelen: