Jak wykryć trudny obiekt
Czasami obiekt może okazać się trudniejszy do wykrycia. Przykład:
- Gdy duży obszar powierzchni nie jest dostępny, ponieważ obiekt znajduje się na ścianie
- Gdy obiekt jest zbyt duży i trwa zbyt długo, aby go obejść
- Gdy powierzchnia obiektu nie jest wykrywana przez czujniki urządzenia
Dostosowywanie wartości zapytania obiektu
Niektóre mechanizmy oferowane przez zestaw SDK usługi Azure Object Anchors, które mogą pomóc w takich sytuacjach, to:
Właściwość
ObjectQuery.MinSurfaceCoverage
. Reprezentuje minimalny wymagany współczynnik pokrycia powierzchni, aby rozważyć wystąpienie obiektu jako prawdziwie dodatnie. Umożliwia ona zakres od 0 do 1,0 (reprezentujący od 0% do 100%). Ustawienie domyślne różni się między obiektami (tym większy obszar powierzchni, tym mniejsze będzie minimalne wymagane pokrycie). Będzie działać w większości sytuacji, tak jak jest. Jednak w obliczu trudnych obiektów zaleca się obniżenie wartości tej właściwości, aby mniej pokrycia powierzchni było wymagane do wykrycia obiektu.Właściwość
ObjectQuery.MaxScaleChange
. Jeśli oryginalny model nie ma1:1
skali w kierunku wykrytego obiektu, to ustawienie można dostosować. Umożliwia ona zakres od 0 do 1,0 (reprezentujący od 0% do 100%). Ustawienie domyślne o wartości 0 wyłącza szacowanie skali, co wymaga1:1
mapowania skali. Ustawienie tej właściwości na wartość 10%, na przykład spowoduje włączenie szacowania skali i umożliwienie pewnej elastyczności w przypadkach, gdy skala modelu nie ma1:1
dopasowania względem obiektu.Właściwość
ObjectQuery.ExpectedMaxVerticalOrientationInDegrees
. Reprezentuje maksymalny kąt w stopniach między kierunkiem w górę obiektu a grawitacją. Waha się od 0 do 180. Innymi słowy, reprezentuje skłonność obiektu względem oryginalnego modelu. Ustawienie domyślne, o 3 stopnie, można zwiększyć, aby zapewnić większą elastyczność w przypadkach, gdy skłonność obiektu nie jest zgodna z oryginalnym modelem.Właściwość
ObjectQuery.IsExpectedToBeStandingOnGroundPlane
. Jest to wartość logiczna reprezentująca, czy obiekt ma stać na poziomie gruntu, czy nie. Wartość domyślna to false. Można go przełączyć na wartość true, aby przyspieszyć wykrywanie w przypadkach, w których obiekt znajduje się na poziomie gruntu.Właściwość
ObjectQuery.SearchAreas
. Reprezentuje kolekcję regionów do wyszukiwania obiektów. Zapewnienie ciasnych obszarów wyszukiwania, przy jednoczesnym zachowaniu całego lub większości obiektu, zwiększa szybkość i dokładność wykrywania. Możesz wybrać:- Ramka ograniczenia zorientowana przy użyciu polecenia
ObjectSearchArea.FromOriented
. - Pole widoku przy użyciu polecenia
ObjectSearchArea.FromFieldOfView
. - Lokalizacja przy użyciu polecenia
ObjectSearchArea.FromLocation
. - Sfera, przy użyciu polecenia
ObjectSearchArea.FromSphere
.
- Ramka ograniczenia zorientowana przy użyciu polecenia
Aby uzyskać więcej informacji, zobacz klasę ObjectQuery
Unitylub HoloLens C++/WinRT.
Następne kroki
W tym przewodniku rozwiązywania problemów przedstawiono sposób rozwiązywania problemów z wykrywaniem trudnych do wykrycia obiektów. Oto kilka powiązanych artykułów: