Felsöka objektidentifiering

Den här artikeln förutsätter att du redan har konverterat en 3D-modell till en Azure Object Anchors-identifieringsmodell och har läst in modellen i ett program.

Felsökningsanvisningar

  • Se till att modellen du identifierar ligger inom den storlek som stöds (1–10 meter) för bästa möjliga upplevelse.
  • Se till att rummet har tillräckligt med strukturer genom att lägga till några affischer.
  • Ta bort aktuella hologram för att återställa kartan enligt beskrivningen nedan.
  • Genomsök objektet mer fullständigt.
  • Ange en nära avgränsad ruta som sökområde som innehåller alla eller de flesta av objektet.
  • Rensa cacheminnet för rumslig mappning och genomsöka objektet igen.
  • Se till att rätt allvarlighetsriktning och tillgångsdimension användes under modellkonverteringen enligt beskrivningen nedan.
  • Inspektera identifieringsmodellen visuellt enligt beskrivningen nedan.
  • Justera modellfrågevärdena enligt beskrivningen nedan.
  • Samla in diagnostik enligt beskrivningen nedan.

Ta bort hologram för att återställa kartan

Om du ser objekt som identifieras med något av följande problem kan du åtgärda problemet genom att ta bort och återställa kartan:

  • Inverterad orientering
  • Felaktig attityd
  • Lutningsmodell

Om du vill ta bort hologram och återställa kartan öppnar du Inställningar appen och går till System -> Hologram. Välj sedan Ta bort alla hologram för att börja med en ny karta.

Genom att rensa hologrammen ser du till att objekt kan identifieras korrekt i sina aktuella positioner om de nyligen har flyttats.

Genomsöka din miljö igen genom att gå runt i den miljö som använder HoloLens. Gå runt alla objekt som du tänker identifiera några gånger från 1–2 meter.

Se till att tyngdriktningen och tillgångsdimensionsenheten är korrekta

När du skickar in en 3D-modell för konvertering med hjälp av Object Anchors Conversion SDK (se här)måste du ange rätt allvarlighetsriktning ( ) och måttenhet ( ) för Gravity din AssetDimensionUnit 3D-modell. Om dessa värden inte är korrekta Object Anchors troligen inte att identifiera ditt objekt korrekt.

Allvarlighetsriktningen är nedåtvektorn som pekar på jorden. För CAD-modeller är tyngdriktningen vanligtvis motsatsen till en uppåtriktning. I många fall representerar till exempel +Z upp, i vilket fall -Z eller Vector3(0.0, 0.0, -1.0) representerar allvarlighetsriktningen. När du fastställer allvarlighetstydhet bör du även fundera på i vilken orientering modellen ska visas under körning. Om du försöker identifiera en jaga i den verkliga världen på en plan yta kan tyngdpunkten vara Vector3(0.0, 0.0, -1.0) . Men om isen är på en 45-gradig lutning kan allvarlighetsgraden vara Vector3(0.0, -Sqrt(2)/2, -Sqrt(2)/2) .

Allvarlighetsriktningen kan fastställas med ett 3D-återgivningsverktyg, som MeshLab.

Måttenheten representerar modellens skala. Enheter som stöds kan hittas med hjälp av uppräkningen Microsoft.Azure.ObjectAnchors.Conversion.AssetLengthUnit.

Du kan också följa anvisningarna här för att visualisera en identifieringsmodell i Unity för att visuellt kontrollera att allvarlighetsriktningen och skalan ser korrekt ut.

Inspektera identifieringsmodellens nät visuellt

Ibland kan det vara bra att visuellt inspektera identifieringsmodellens nät så att du kan se eventuella problem med orientering, skalning eller funktioner. Följ instruktionerna här för att visualisera en konverterad modell i Unity.

Justera objektfrågevärden

  • Tillhandahåll nära sökområden för att helst täcka hela objektet för att förbättra identifieringens hastighet och noggrannhet.
  • Standardvärdet ObjectQuery.MinSurfaceCoverage räcker ofta, men du kan använda ett mindre värde för att få en snabbare identifiering.
  • Använd ett litet ObjectQuery.ExpectedMaxVerticalOrientationInDegrees värde för om objektet förväntas vara rätt.
  • En app bör alltid använda en 1:1 objektmodell för identifiering. Den uppskattade skalan bör vara nära 1 helst inom 1 % fel. En app kan ange ObjectQuery.MaxScaleChange till eller för att inaktivera eller aktivera 0 0.1 skalningsuppskattning och utvärdera instansställningen kvalitativt.
  • Mer information finns i Så här identifierar du ett svårt objekt.

Samla in diagnostik

Programmet kan samla in och spara diagnostikarkiv med objektet ObjectDiagnosticsSession.

Unity-exempelappen med MRTK skriver diagnostik till tempstate-mappen. Du kan starta en diagnostiksession genom att öppna handmenyn,välja Starta spårning, återskapa ett identifieringsförsök och sedan välja Stoppa spårning för att spara diagnostikarkivet. Du kan sedan använda Windows Enhetsportalen för att hämta diagnostikarkivet från appens TempState-mapp.

Diagnostikarkivet kan sedan delas med oss så att vi kan felsöka problemet.

Nästa steg

I den här felsökningsguiden har du lärt dig hur du felsöker identifiering av ett fysiskt objekt med Azure Object Anchors. Här är några relaterade artiklar: