Como detetar um objeto difícil
Às vezes, um objeto pode acabar sendo mais difícil de detetar. Por exemplo:
- Quando uma grande área de superfície não está acessível porque o objeto está contra uma parede
- Quando um objeto é muito grande e demora muito tempo a andar à sua volta
- Quando a superfície do objeto não é detetada pelos sensores do dispositivo
Ajustando valores de consulta de objeto
Alguns mecanismos oferecidos pelo SDK do Azure Object Anchors que podem ajudar nessas situações são:
A
ObjectQuery.MinSurfaceCoverage
propriedade. Ele representa a taxa mínima de cobertura de superfície necessária para considerar uma instância de objeto como um verdadeiro positivo. Permite um intervalo de 0 a 1,0 (representando 0% a 100%). A configuração padrão varia entre objetos (quanto maior a área de superfície, menor será a cobertura mínima necessária). Funcionará para a maioria das situações no estado em que se encontra. Mas, quando confrontados com objetos difíceis, a recomendação é baixar o valor para esta propriedade, de modo que menos cobertura de superfície é necessária para detetar o objeto.A
ObjectQuery.MaxScaleChange
propriedade. Se o modelo original não tiver uma1:1
escala para o objeto que está sendo detetado, essa configuração poderá ser ajustada. Permite um intervalo de 0 a 1,0 (representando 0% a 100%). A configuração padrão, em 0, desabilita a estimativa de escala, que requer um mapeamento de1:1
escala. Definir essa propriedade como 10%, por exemplo, permitiria a estimativa de escala e permitiria alguma flexibilidade nos casos em que a escala do modelo não tem uma1:1
correspondência com o objeto.A
ObjectQuery.ExpectedMaxVerticalOrientationInDegrees
propriedade. Representa o ângulo máximo, em graus, entre a direção ascendente do objeto e a gravidade. Varia de 0 a 180. Em outras palavras, representa a inclinação do objeto em relação ao modelo original. A configuração padrão, em 3 graus, pode ser aumentada para permitir mais flexibilidade nos casos em que a inclinação do objeto não corresponde ao modelo original.A
ObjectQuery.IsExpectedToBeStandingOnGroundPlane
propriedade. É um booleano que representa se se espera que o objeto esteja no nível do solo ou não. O padrão é false. Ele pode ser comutado para true para acelerar a deteção para casos em que o objeto está no nível do solo.A
ObjectQuery.SearchAreas
propriedade. Ele representa uma coleção de regiões para procurar objetos. Fornecer áreas de pesquisa apertadas, enquanto ainda cobre todo ou a maior parte do objeto, melhora a velocidade e a precisão de deteção. Você pode escolher:- Uma caixa delimitadora orientada, usando
ObjectSearchArea.FromOriented
. - Um campo de visão, usando
ObjectSearchArea.FromFieldOfView
. - Um local, usando
ObjectSearchArea.FromLocation
. - Uma esfera, usando
ObjectSearchArea.FromSphere
.
- Uma caixa delimitadora orientada, usando
Para obter mais informações, consulte a ObjectQuery
classe para Unity ou HoloLens C++/WinRT.
Próximos passos
Neste guia de solução de problemas, você aprendeu como solucionar problemas de deteção de objetos difíceis de detetar. Aqui estão alguns artigos relacionados: