détection des postures

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

L'API ML Kit Pose Detection est une solution légère et polyvalente permettant aux développeurs d'applications de détecter la pose du corps d'un sujet en temps réel à partir d'une vidéo statique ou d'une image statique. Une posture décrit la position du corps à un moment précis avec un ensemble de points de repère squelettiques. Les points de repère correspondent à différentes parties du corps, telles que les épaules et les hanches. Les positions relatives des points de repère peuvent être utilisées pour distinguer une pose d'une autre.

iOS Android

ML Kit de détection des postures produit une correspondance squelettique sur 33 points du corps entier, qui inclut des points de repère sur le visage (oreilles, yeux, bouche et nez) et des points sur les mains et les pieds. La figure 1 ci-dessous montre les points de repère qui regardent l'appareil photo et qui représentent l'utilisateur. Il s'agit donc d'une image miroir. Le côté droit de l'utilisateur apparaît à gauche de l'image:

Figure 1. Points de repère

La détection des postures dans ML Kit ne nécessite pas d'équipement spécialisé ni d'expertise en ML pour obtenir d'excellents résultats. Grâce à cette technologie, les développeurs peuvent créer des expériences uniques pour leurs utilisateurs en quelques lignes de code.

Le visage de l'utilisateur doit être présent pour détecter une position. La détection des postures fonctionne mieux lorsque l'ensemble du corps du sujet est visible dans l'image, mais aussi une posture partielle du corps. Dans ce cas, les points de repère non reconnus se voient attribuer des coordonnées en dehors de l'image.

Capacités clés

  • Compatibilité multiplate-forme Profitez de la même expérience sur Android et iOS.
  • Suivi complet du corps : le modèle renvoie 33 points squelettiques emblématiques, y compris la position des mains et des pieds.
  • Score InFrameLikelihood pour chaque point de repère, une mesure qui indique la probabilité que le point de repère se trouve dans le cadre de l'image. Le score est compris entre 0,0 et 1,0, où 1,0 indique un niveau de confiance élevé.
  • Deux SDK optimisés : le SDK de base s'exécute en temps réel sur les téléphones modernes tels que le Pixel 4 et l'iPhone X. Elle renvoie les résultats à environ 30 et environ 45 FPS, respectivement. Cependant, la précision des coordonnées peut varier. Le SDK précis renvoie des résultats à une fréquence d'images plus lente, mais produit des valeurs de coordonnées plus précises.
  • Z Coordinate pour l'analyse approfondie : cette valeur peut vous aider à déterminer si des parties du corps des utilisateurs sont devant ou derrière le bassin. Pour en savoir plus, consultez la section Coordonnée Z ci-dessous.

L'API Pose Detection est semblable à l'API de reconnaissance faciale, car elle renvoie un ensemble de points de repère et leur emplacement. Toutefois, bien que la détection des visages tente également de reconnaître des caractéristiques comme une bouche souriante ou des yeux ouverts, la détection des postures n'attache aucune signification aux points de repère d'une posture ni à la pose elle-même. Vous pouvez créer vos propres algorithmes pour interpréter une posture. Pour obtenir des exemples, consultez les conseils de classification des postures.

La détection des postures ne peut détecter qu'une seule personne dans une image. Si deux personnes se trouvent dans l'image, le modèle attribue des points de repère à la personne détectée avec le niveau de confiance le plus élevé.

Z Coordinate

Z Coordinate est une valeur expérimentale calculée pour chaque point de repère. Elle est mesurée en "pixels d'image" comme les coordonnées X et Y, mais il ne s'agit pas d'une véritable valeur 3D. L'axe Z est perpendiculaire à la caméra et passe entre les hanches d'un sujet. L'origine de l'axe Z correspond approximativement au point central entre les hanches (gauche/droite et avant/arrière par rapport à la caméra). Les valeurs Z négatives sont orientées vers l'appareil photo ; les valeurs positives sont éloignées. La coordonnée Z n'a pas de limite supérieure ou inférieure.

Exemple de résultats

Le tableau suivant présente les coordonnées et InFrameLikelihood pour quelques points de repère sur la droite. Notez que les coordonnées Z de la main gauche de l'utilisateur sont négatives, car elles sont face au centre du bassin du sujet et en direction de la caméra.

Point de repèreTypePosteInFrameLikelihood
11GAUCHE_GAUCHE(734.9671, 550.7924, -118.11934)0,9999038
12 AUGMENTATION_DROITE (391.27032, 583.2485, -321.15836) 0,9999894
13 EN COURS_DE_GAUCHE (903.83704, 754.676, -219.67009) 0,9836427
14 CELUI_DROIT (322.18152, 842.5973, -179.28519) 0,99970156
15 POIGNET_GAUCHE (1073.8956, 654.9725, -820.93463) 0,9737737
16 POIDS DROIT (218.27956, 1015.70435, -683.6567) 0,995568
17 LEFT_PINKY (1146.1635, 609.6432, -956.9976) 0,95273364
18 RIGHT_PINKY (176.17755, 1065.838, -776.5006) 0,9785348

Détails techniques

Pour en savoir plus sur les modèles de ML sous-jacents à cette API, consultez notre article de blog sur l'IA Google.

Pour en savoir plus sur nos pratiques en matière d'équité en matière de ML et la façon dont les modèles ont été entraînés, consultez notre fiche de modèle.