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 posture du corps d'un sujet en temps réel à partir d'une vidéo statique ou d'une image statique. Une position décrit la position du corps à un moment donné 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 permettent de distinguer une position d'une autre.

iOS Android

La détection des postures du ML Kit produit une mise en correspondance squelettique avec 33 points, qui inclut des repères faciaux (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 vers 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 de postures pour 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 seulement quelques lignes de code.

Le visage de l'utilisateur doit être présent pour détecter une posture. La détection des postures fonctionne mieux lorsque l'ensemble du corps du sujet est visible dans le cadre, mais elle détecte également une posture partielle du corps. Dans ce cas, des coordonnées en dehors de l'image sont attribuées aux points de repère non reconnus.

Capacités clés

  • Compatibilité multiplate-forme Profitez de la même expérience sur Android et iOS.
  • Suivi du corps entier Le modèle renvoie 33 points de repère squelettiques clés, 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 des résultats à une vitesse d'environ 30 à 45 FPS, respectivement. Toutefois, la précision des coordonnées des points de repère 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.
  • Coordonnée Z pour l'analyse de profondeur : cette valeur permet de déterminer si des parties du corps des utilisateurs sont devant ou derrière les hanches des utilisateurs. Pour en savoir plus, consultez la section Coordonnée Z ci-dessous.

L'API Pose Detection est semblable à l'API Facial Recognition, car elle renvoie un ensemble de points de repère et leur emplacement. Toutefois, même si la détection des visages tente également de reconnaître des caractéristiques telles qu'une bouche souriante ou les yeux ouverts, la détection des postures n'associe aucun sens aux points de repère d'une position ou de la posture elle-même. Vous pouvez créer vos propres algorithmes pour interpréter une position. Consultez les conseils de classification de la position pour obtenir des exemples.

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

Coordonnée Z

La coordonnée Z est une valeur expérimentale calculée pour chaque point de repère. Elle est mesurée en pixels, comme les coordonnées X et Y, mais ce n'est pas une vraie valeur 3D. L'axe Z est perpendiculaire à l'appareil photo 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 en sont éloignées. La coordonnée Z n'a pas de limite supérieure ou inférieure.

Exemple de résultats

Le tableau suivant montre les coordonnées et la structure InFrameLikelihood pour quelques points de repère de la position de droite. Notez que les coordonnées Z de la main gauche de l'utilisateur sont négatives, car elles sont situées devant les hanches du sujet au centre et vers l'appareil photo.

Point de repèreTypePositionProbabilité
11GAUCHE_GAUCHE(734.9671, 550.7924, -118.11934)0,9999038
12 FROIDE DROITE (391.27032, 583.2485, -321.15836) 0,9999894
13 GAUCHE (903.83704, 754.676, -219.67009) 0,9836427
14 DROITE_EN-VOUS (322.18152, 842.5973, -179.28519) 0,99970156
15 POIGNET GAUCHE (1073.8956, 654.9725, -820.93463) 0,9737737
16 POIGNET DROIT (218.27956, 1015.70435, -683.6567) 0,995568
17 GAUCHE_PINKY (1146.1635, 609.6432, -956.9976) 0,95273364
18 DROITE_ÉQUIPE (176.17755, 1065.838, -776.5006) 0,9785348

Événements techniques

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

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