Zjištění obtížného objektu
Někdy se může stát, že je objekt obtížnější rozpoznat. Příklad:
- Pokud není k dispozici velká plocha, protože objekt je proti zdi
- Pokud je objekt příliš velký a jeho procházení trvá příliš dlouho
- Když senzory zařízení nezjistí povrch objektu
Úprava hodnot dotazu objektu
Mezi mechanismy, které nabízí sada AZURE Object Anchors SDK, které můžou pomoct v těchto situacích, patří:
Vlastnost
ObjectQuery.MinSurfaceCoverage
. Představuje minimální požadovaný poměr pokrytí povrchu pro zvážení instance objektu jako pravdivě pozitivní. Umožňuje rozsah od 0 do 1,0 (představuje 0 až 100 %). Výchozí nastavení se liší mezi objekty (čím větší je plocha povrchu, tím menší bude minimální požadované pokrytí). Bude fungovat ve většině situací tak, jak je. Pokud se ale setkáte s obtížnými objekty, doporučujeme snížit hodnotu této vlastnosti, aby bylo pro detekci objektu vyžadováno méně pokrytí povrchu.Vlastnost
ObjectQuery.MaxScaleChange
. Pokud původní model nemá1:1
měřítko směrem k zjištěnému objektu, můžete toto nastavení upravit. Umožňuje rozsah od 0 do 1,0 (představuje 0 až 100 %). Výchozí nastavení na 0 zakáže odhad měřítka, které vyžaduje mapování měřítka1:1
. Nastavení této vlastnosti na 10 % by například umožnilo odhad měřítka a umožnilo by určité flexibilitě v případech, kdy měřítko modelu nemá1:1
odpovídající hodnotu s objektem.Vlastnost
ObjectQuery.ExpectedMaxVerticalOrientationInDegrees
. Představuje maximální úhel ve stupních mezi směrem nahoru objektu a závažností. Pohybuje se od 0 do 180. Jinými slovy, představuje sklon objektu vzhledem k původnímu modelu. Výchozí nastavení ve 3 stupních je možné zvýšit, aby bylo možné v případech, kdy se sklon objektu neshoduje s původním modelem, větší flexibilitu.Vlastnost
ObjectQuery.IsExpectedToBeStandingOnGroundPlane
. Jedná se o logickou hodnotu, která představuje, jestli se očekává, že objekt stojí na základní úrovni nebo ne. Výchozí hodnota je false. Lze ji přepnout na true, aby se urychlilo zjišťování případů, kdy je objekt na základní úrovni.Vlastnost
ObjectQuery.SearchAreas
. Představuje kolekci oblastí, ve kterých se mají hledat objekty. Poskytuje těsné oblasti hledání, zatímco stále pokrývá všechny nebo většinu objektu, zlepšuje rychlost a přesnost detekce. Můžete si vybrat jednu z těchto akcí:- Orientovaný ohraničující rámeček pomocí
ObjectSearchArea.FromOriented
. - Pole zobrazení pomocí .
ObjectSearchArea.FromFieldOfView
- Umístění pomocí .
ObjectSearchArea.FromLocation
- Kouli, pomocí
ObjectSearchArea.FromSphere
.
- Orientovaný ohraničující rámeček pomocí
Další informace najdete v ObjectQuery
třídě Unity nebo HoloLens C++/WinRT.
Další kroky
V tomto průvodci odstraňováním potíží jste zjistili, jak řešit potíže s detekcí obtížně rozpoznatelných objektů. Tady je několik souvisejících článků: