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.
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 :
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.