Så här identifierar du ett svårt objekt

Ibland kan ett objekt visa sig vara svårare att identifiera. Till exempel:

  • När en stor yta inte är tillgänglig eftersom objektet är mot en vägg
  • När ett objekt är för stort och det tar för lång tid att gå runt det
  • När objektets yta inte identifieras av enhetssensorerna

Justera objektfrågevärden

Några mekanismer som erbjuds av Azure Object Anchors SDK som kan hjälpa dig i dessa situationer är:

  • Egenskapen ObjectQuery.MinSurfaceCoverage . Den representerar det minsta obligatoriska yttäckningsförhållandet för att betrakta en objektinstans som en sann positiv. Det tillåter ett intervall från 0 till 1,0 (representerar 0 % till 100 %). Standardinställningen varierar mellan objekt (ju större yta, desto mindre blir den minsta täckning som krävs). Det fungerar i de flesta situationer i så fall. Men när du ställs inför svåra objekt är rekommendationen att sänka värdet för den här egenskapen, så att mindre yttäckning krävs för att identifiera objektet.

  • Egenskapen ObjectQuery.MaxScaleChange . Om den ursprungliga modellen inte har någon 1:1 skalning mot objektet som identifieras kan den här inställningen justeras. Det tillåter ett intervall från 0 till 1,0 (representerar 0 % till 100 %). Standardinställningen 0 inaktiverar skalningsuppskattning, vilket kräver en 1:1 skalningsmappning. Om du till exempel anger den här egenskapen till 10 %, aktiveras skalningsuppskattning och viss flexibilitet i fall där modellskalan inte har någon 1:1 matchning mot objektet.

  • Egenskapen ObjectQuery.ExpectedMaxVerticalOrientationInDegrees . Den representerar den maximala vinkeln, i grader, mellan objektets uppåtriktade riktning och gravitationen. Det varierar från 0 till 180. Med andra ord representerar det objektets lutning i förhållande till den ursprungliga modellen. Standardinställningen, vid 3 grader, kan ökas för att ge större flexibilitet i fall där objektlutningen inte matchar den ursprungliga modellen.

  • Egenskapen ObjectQuery.IsExpectedToBeStandingOnGroundPlane . Det är ett booleskt värde som representerar om objektet förväntas stå på marknivå eller inte. Standardvärdet är falskt. Det kan växlas till true för att påskynda identifieringen för fall där objektet är på marknivå.

  • Egenskapen ObjectQuery.SearchAreas . Den representerar en samling regioner som ska söka efter objekt. Att tillhandahålla snäva sökområden, samtidigt som det täcker hela eller större delen av objektet, förbättrar identifieringshastigheten och noggrannheten. Du kan välja:

    • En orienterad avgränsningsruta med hjälp ObjectSearchArea.FromOrientedav .
    • Ett visningsfält med hjälp ObjectSearchArea.FromFieldOfViewav .
    • En plats med hjälp ObjectSearchArea.FromLocationav .
    • En sfär med hjälp ObjectSearchArea.FromSphereav .

Mer information finns i ObjectQuery klassen för Unity eller HoloLens C++/WinRT.

Nästa steg

I den här felsökningsguiden har du lärt dig hur du felsöker identifiering av svåra att identifiera objekt. Här följer några relaterade artiklar: