Sdílet prostřednictvím


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ěřítka 1: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.

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ů: