Procédure de détection d’un objet difficile
Parfois, un objet peut s’avérer plus difficile à détecter. Par exemple :
- Lorsqu’une grande surface d’exposition n’est pas accessible parce que l’objet est adossé à un mur
- Lorsqu’un objet est trop volumineux et qu’il faut trop de temps pour le contourner
- Lorsque la surface de l’objet n’est pas détectée par les capteurs d’appareil
Ajustement des valeurs de requête d’objet
Voici quelques mécanismes offerts par le kit de développement logiciel (SDK) Azure Object Anchors qui peuvent être utiles dans ces cas :
La propriété
ObjectQuery.MinSurfaceCoverage
. Elle représente le ratio minimal de couverture de surface requis pour considérer une instance d’objet comme un vrai positif. Elle autorise une plage comprise entre 0 et 1 (qui représente de 0 % à 100 %). Le paramètre par défaut varie d’un objet à l’autre (plus la surface d’exposition est grande, plus la couverture minimale requise est petite). Elle fonctionne telle quelle dans la plupart des situations. Toutefois, lorsqu’il s’agit d’objets difficiles, il est recommandé de réduire la valeur de cette propriété afin qu’une couverture de surface plus petite soit requise pour détecter l’objet.La propriété
ObjectQuery.MaxScaleChange
. Si le modèle d’origine n’a pas de mise à l’échelle1:1
vers l’objet en cours de détection, ce paramètre peut être ajusté. Elle autorise une plage comprise entre 0 et 1 (qui représente de 0 % à 100 %). La valeur par défaut, à savoir 0, désactive l’estimation de l’échelle, ce qui nécessite un mappage de l'échelle1:1
. L’affectation de la valeur 10 % à cette propriété peut, par exemple, activer l’estimation de l’échelle et permettre une certaine flexibilité dans les cas où l’échelle du modèle n’a pas de correspondance1:1
avec l’objet.La propriété
ObjectQuery.ExpectedMaxVerticalOrientationInDegrees
. Elle représente l’angle maximal, en degrés, entre la direction vers le haut de l’objet et la gravité. Elle est comprise entre 0 et 180. En d’autres termes, elle représente l’inclinaison de l’objet par rapport au modèle d’origine. Le paramètre par défaut, à 3 degrés, peut être augmenté pour offrir une plus grande flexibilité dans les cas où l’inclinaison de l’objet ne correspond pas au modèle d’origine.La propriété
ObjectQuery.IsExpectedToBeStandingOnGroundPlane
. Il s’agit d’une valeur booléenne qui indique si l’objet est supposé être debout au niveau du sol ou non. La valeur par défaut est « False ». Vous pouvez basculer vers la valeur True pour accélérer la détection des cas où l’objet est au niveau du sol.La propriété
ObjectQuery.SearchAreas
. Elle représente une série de régions dans laquelle rechercher des objets. L’indication de zones de recherche étroites, couvrant toutefois la totalité ou une partie de l’objet, améliore la vitesse et la précision de la détection. Vous pouvez utiliser, au choix :- Un cadre englobant orienté, à l’aide de
ObjectSearchArea.FromOriented
. - Un champ de vue, à l’aide de
ObjectSearchArea.FromFieldOfView
. - Un emplacement, à l’aide de
ObjectSearchArea.FromLocation
. - Une sphère, à l’aide de
ObjectSearchArea.FromSphere
.
- Un cadre englobant orienté, à l’aide de
Pour plus d’informations, consultez la classe ObjectQuery
pour Unity ou HoloLens C++/WinRT.
Étapes suivantes
Dans ce guide de dépannage, vous avez appris à résoudre les problèmes de détection d’objets difficiles à détecter. Voici quelques articles connexes :