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 läst in modellen i ett program.
Felsökningsanvisningar
- Se till att den modell som du identifierar är inom den storlek som stöds (1–10 meter) för bästa möjliga upplevelse.
- Se till att rummet har tillräckligt med texturer genom att lägga till några affischer.
- Ta bort aktuella hologram för att återställa kartan enligt beskrivningen nedan.
- Skanna objektet mer fullständigt.
- Ange en snäv avgränsningsruta som sökområde som innehåller hela eller större delen av objektet.
- Rensa cachen för spatial mappning och genomsök objektet igen.
- Se till att rätt gravitationsriktning och tillgångsdimension användes under modellkonverteringen enligt beskrivningen nedan.
- Granska 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 pose
- Lutad modell
Om du vill ta bort hologram och återställa kartan öppnar du appen Inställningar 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 hologram ser du till att objekten kan identifieras korrekt i sina aktuella positioner om de nyligen flyttades.
Genomsök din miljö genom att gå runt i miljön med HoloLens. Gå runt alla objekt som du tänker identifiera några gånger från 1–2 meter.
Se till att gravitationsriktningen 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 gravitationsriktning (Gravity
) och måttenhet (AssetDimensionUnit
) för din 3D-modell. Om dessa värden inte är korrekta är det osannolikt att Object Anchors identifierar objektet korrekt.
Gravitationsriktningen är nedvektorn som pekar mot jorden. För CAD-modeller är gravitationsriktningen vanligtvis motsatsen till en uppåtriktad riktning. I många fall representerar till exempel +Z uppåt, i vilket fall -Z eller Vector3(0.0, 0.0, -1.0)
skulle representera gravitationsriktningen. När du bestämmer gravitationen bör du också tänka på vilken orientering modellen ska visas i under körningen. Om du försöker identifiera en stol i den verkliga världen på en plan yta kan gravitationen vara Vector3(0.0, 0.0, -1.0)
. Men om stolen är på en 45-graders lutning kan gravitationen vara Vector3(0.0, -Sqrt(2)/2, -Sqrt(2)/2)
.
Gravitationsriktningen kan fastställas med ett 3D-återgivningsverktyg, som MeshLab.
Måttenheten representerar modellens skala. Enheter som stöds finns i 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 inspektera att gravitationsriktningen 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 problem med orientering, skalning eller funktioner. Följ anvisningarna här för att visualisera en konverterad modell i Unity.
Justera objektfrågevärden
- Ge snäva sökområden för att helst täcka hela objektet för att förbättra identifieringshastigheten och noggrannheten.
ObjectQuery.MinSurfaceCoverage
Standardvärdet räcker ofta, men du kan använda ett mindre värde för att få en snabbare identifiering.- Använd ett litet värde för
ObjectQuery.ExpectedMaxVerticalOrientationInDegrees
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 angeObjectQuery.MaxScaleChange
till0
eller0.1
för att inaktivera eller aktivera skalningsuppskattning och kvalitativt utvärdera instansens pose. - 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 mappen TempState . 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 hjälpa till att 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 hjälp av Azure Object Anchors. Här följer några relaterade artiklar: