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 uma 1: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 de 1: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 uma 1: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.

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: