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 principales articulations du corps (points clés).

Commencer

Si vous débutez avec TensorFlow Lite et que vous 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, de sorte que l'on puisse déterminer, par exemple, où le coude de quelqu'un 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 produisent des informations sur les points clés. Les points clés détectés sont indexés par un ID de partie, 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 à la pointe de la technologie disponible en deux versions : éclairage et tonnerre. 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 la 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
sept 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 illustré ci-dessous :

Animation montrant l'estimation de la pose

Références 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 aussi 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 avec des images d'action de remise en forme. 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 : processeur graphique Raspberry Pi 4 - CPU 4 threads
MoveNet.Thunder (FP16 quantifié) 12,6 Mo 72,0 155ms 45ms 594ms
MoveNet.Thunder (INT8 quantifié) 7,1 Mo 68,9 100ms 52ms 251ms
MoveNet.Lightning (FP16 quantifié) 4,8 Mo 63,0 60ms 25ms 186ms
MoveNet.Lightning (INT8 quantifié) 2,9 Mo 57,4 52ms 28ms 95ms
PoseNet (épine dorsale MobileNetV1, FP32) 13,3 Mo 45,6 80ms 40ms 338ms

Lectures complémentaires et ressources

  • Consultez cet article de blog pour en savoir plus sur l'estimation de pose à l'aide de MoveNet et de 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 Modèles optimisés pour EdgeTPU pour plus de détails.
  • Lire l'article PoseNet ici

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