Estimation de la pose

L'estimation de la pose consiste à utiliser un modèle ML pour estimer la pose d'une personne à partir d'une image ou d'une vidéo en estimant les emplacements spatiaux des articulations clés du corps (points clés).

Commencer

Si vous débutez avec TensorFlow Lite et travaillez avec Android ou iOS, explorez les exemples d'applications suivants qui peuvent vous aider à démarrer.

Exemple Android Exemple iOS

Si vous connaissez les API TensorFlow Lite , téléchargez le modèle d'estimation de pose MoveNet de démarrage et les fichiers de support.

Télécharger le modèle de démarrage

Si vous souhaitez essayer l'estimation de pose sur un navigateur Web, consultez la démo TensorFlow JS .

Description du modèle

Comment ça fonctionne

L'estimation de pose fait référence à des techniques de vision par ordinateur qui détectent des figures humaines dans des images et des vidéos, afin de pouvoir déterminer, par exemple, où le coude d'une personne apparaît dans une image. Il est important d’être conscient du fait que l’estimation de la pose estime simplement où se trouvent les principales articulations du corps et ne reconnaît pas qui se trouve dans une image ou une vidéo.

Les modèles d'estimation de pose prennent une image de caméra traitée comme entrée et génèrent des informations sur les points clés. Les points clés détectés sont indexés par un identifiant de pièce, avec un score de confiance compris entre 0,0 et 1,0. Le score de confiance indique la probabilité qu'un point clé existe à cette position.

Nous fournissons une implémentation de référence de deux modèles d'estimation de pose TensorFlow Lite :

  • MoveNet : le modèle d'estimation de pose de pointe disponible en deux versions : Lighting et Thunder. Voir une comparaison entre ces deux dans la section ci-dessous.
  • PoseNet : le modèle d'estimation de pose de la génération précédente publié en 2017.

Les différentes articulations du corps détectées par le modèle d'estimation de pose sont présentées ci-dessous :

Identifiant Partie
0 nez
1 oeil gauche
2 l'œil droit
3 oreille gauche
4 oreille droite
5 épaule gauche
6 épaule droite
7 coude gauche
8 Coude droit
9 poignet gauche
dix poignet droit
11 hanche gauche
12 hanche droite
13 genou gauche
14 genou droit
15 cheville gauche
16 cheville droite

Un exemple de sortie est présenté ci-dessous :

Animation montrant l'estimation de la pose

Repères de performances

MoveNet est disponible en deux versions :

  • MoveNet.Lightning est plus petit, plus rapide mais moins précis que la version Thunder. Il peut fonctionner en temps réel sur les smartphones modernes.
  • MoveNet.Thunder est la version la plus précise mais également plus grande et plus lente que Lightning. Il est utile pour les cas d’utilisation qui nécessitent une plus grande précision.

MoveNet surpasse PoseNet sur une variété d'ensembles de données, en particulier dans les images contenant des images d'actions de fitness. Par conséquent, nous vous recommandons d'utiliser MoveNet plutôt que PoseNet.

Les numéros de référence de performance sont générés avec l'outil décrit ici . Les nombres de précision (mAP) sont mesurés sur un sous-ensemble de l' ensemble de données COCO dans lequel nous filtrons et recadrons chaque image pour qu'elle ne contienne qu'une seule personne.

Modèle Taille (Mo) carte Latence (ms)
Pixel 5 – Processeur 4 threads Pixel 5 – GPU Raspberry Pi 4 - CPU 4 threads
MoveNet.Thunder (FP16 quantifié) 12,6 Mo 72,0 155 ms 45 ms 594 ms
MoveNet.Thunder (INT8 quantifié) 7,1 Mo 68,9 100 ms 52 ms 251 ms
MoveNet.Lightning (FP16 quantifié) 4,8 Mo 63,0 60 ms 25 ms 186 ms
MoveNet.Lightning (quantisé INT8) 2,9 Mo 57.4 52 ms 28 ms 95 ms
PoseNet (épine dorsale MobileNetV1, FP32) 13,3 Mo 45,6 80 ms 40 ms 338 ms

Lectures complémentaires et ressources

  • Consultez cet article de blog pour en savoir plus sur l'estimation de pose à l'aide de MoveNet et TensorFlow Lite.
  • Consultez cet article de blog pour en savoir plus sur l’estimation de pose sur le Web.
  • Consultez ce didacticiel pour en savoir plus sur l'exécution de MoveNet sur Python à l'aide d'un modèle de TensorFlow Hub.
  • Coral/EdgeTPU peut accélérer l'estimation de la pose sur les appareils périphériques. Voir les modèles optimisés EdgeTPU pour plus de détails.
  • Lisez l'article PoseNet ici

Consultez également ces cas d’utilisation de l’estimation de pose.